-define({\r "name": "xCALLY Motion API",\r "version": "2.0.83",\r "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",\r "title": "xCALLY MOTION API",\r "header": {\r "title": "Introduction",\r "content": "<h2>The API</h2>\n<p>This is the documentation for the xCALLY MOTION API.</p>\n<p>We make changes to the APIs from time to time. For more information, see <a href=\"https://wiki.xcallymotion.com/display/XMV/Motion+GUI\">Changelog</a>.</p>\n<p>The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.</p>\n<p>The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].</p>\n<p>Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:</p>\n<pre><code class=\"language-sh\">GET /api/users\n</code></pre>\n<p>Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:</p>\n<pre><code class=\"language-sh\">https://motion.xcally.com/api/users\n</code></pre>\n<p>Curly braces, <code>{}</code>, indicate values you have to supply. Example:</p>\n<pre><code class=\"language-sh\">GET /api/users/{id}\n</code></pre>\n<p>The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].</p>\n<p>The examples use basic authentication requiring a xCALLY username and password.</p>\n<h2>Security and Authentication</h2>\n<p>This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.</p>\n<p>Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.</p>\n<h3>Basic authentication</h3>\n<p>Use the following authentication format with your username and password:\n<code>{username}:{password}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -u admin:password https://motion.xcally.com/api/users\n</code></pre>\n<h3>OAuth access token</h3>\n<p>The xCALLY API supports OAuth authorization flows.</p>\n<p>OAuth access tokens also permit client-side API requests.</p>\n<p>In your requests, specify the access token in an Authorization header as follows:\n<code>Authorization: Bearer {token}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n</code></pre>\n<h2>Request Format</h2>\n<p>The xCALLY API is a JSON API. You must supply a <code>Content-Type: application/json</code> header in <code>PUT</code> and <code>POST</code> requests. You must set an <code>Accept: application/json</code> header on all requests. You may get a <code>text/plain</code> response in case of an error like a bad request. You should treat this as an error you need to fix.</p>\n<h2>Response Format</h2>\n<p>The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.</p>\n<p>Responses may have the status codes described in the following sections.</p>\n<h3>200 range</h3>\n<p>The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.</p>\n<h3>400 range</h3>\n<p>The request was not successful. The content type of the response may be <code>text/plain</code> for API-level error messages, such as when trying to call the API without SSL. The content type is <code>application/json</code> for business-level error messages because the response includes a JSON object with information about the error.</p>\n<p>If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.</p>\n<h3>500 range</h3>\n<p>When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.</p>\n<p>If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.</p>\n<h2>Data Types</h2>\n<p>The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.</p>\n<h2>ID integers</h2>\n<p>Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.</p>\n<p>The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.</p>\n<h2>Time stamps</h2>\n<p>Time stamps use UTC time and are formatted as ISO 8601 strings. Example: <code>2017-04-16T09:14:57Z</code></p>\n"\r },\r "template": {\r "withGenerator": false,\r "withCompare": false,\r "forceLanguage": "en"\r },\r "sampleUrl": false,\r "defaultVersion": "0.0.0",\r "apidoc": "0.3.0",\r "generator": {\r "name": "apidoc",\r "time": "2019-06-21T13:03:19.913Z",\r "url": "http://apidocjs.com",\r "version": "0.17.7"\r }\r});
+define({\r "name": "xCALLY Motion API",\r "version": "2.0.84",\r "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",\r "title": "xCALLY MOTION API",\r "header": {\r "title": "Introduction",\r "content": "<h2>The API</h2>\n<p>This is the documentation for the xCALLY MOTION API.</p>\n<p>We make changes to the APIs from time to time. For more information, see <a href=\"https://wiki.xcallymotion.com/display/XMV/Motion+GUI\">Changelog</a>.</p>\n<p>The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.</p>\n<p>The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].</p>\n<p>Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:</p>\n<pre><code class=\"language-sh\">GET /api/users\n</code></pre>\n<p>Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:</p>\n<pre><code class=\"language-sh\">https://motion.xcally.com/api/users\n</code></pre>\n<p>Curly braces, <code>{}</code>, indicate values you have to supply. Example:</p>\n<pre><code class=\"language-sh\">GET /api/users/{id}\n</code></pre>\n<p>The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].</p>\n<p>The examples use basic authentication requiring a xCALLY username and password.</p>\n<h2>Security and Authentication</h2>\n<p>This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.</p>\n<p>Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.</p>\n<h3>Basic authentication</h3>\n<p>Use the following authentication format with your username and password:\n<code>{username}:{password}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -u admin:password https://motion.xcally.com/api/users\n</code></pre>\n<h3>OAuth access token</h3>\n<p>The xCALLY API supports OAuth authorization flows.</p>\n<p>OAuth access tokens also permit client-side API requests.</p>\n<p>In your requests, specify the access token in an Authorization header as follows:\n<code>Authorization: Bearer {token}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n</code></pre>\n<h2>Request Format</h2>\n<p>The xCALLY API is a JSON API. You must supply a <code>Content-Type: application/json</code> header in <code>PUT</code> and <code>POST</code> requests. You must set an <code>Accept: application/json</code> header on all requests. You may get a <code>text/plain</code> response in case of an error like a bad request. You should treat this as an error you need to fix.</p>\n<h2>Response Format</h2>\n<p>The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.</p>\n<p>Responses may have the status codes described in the following sections.</p>\n<h3>200 range</h3>\n<p>The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.</p>\n<h3>400 range</h3>\n<p>The request was not successful. The content type of the response may be <code>text/plain</code> for API-level error messages, such as when trying to call the API without SSL. The content type is <code>application/json</code> for business-level error messages because the response includes a JSON object with information about the error.</p>\n<p>If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.</p>\n<h3>500 range</h3>\n<p>When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.</p>\n<p>If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.</p>\n<h2>Data Types</h2>\n<p>The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.</p>\n<h2>ID integers</h2>\n<p>Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.</p>\n<p>The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.</p>\n<h2>Time stamps</h2>\n<p>Time stamps use UTC time and are formatted as ISO 8601 strings. Example: <code>2017-04-16T09:14:57Z</code></p>\n"\r },\r "template": {\r "withGenerator": false,\r "withCompare": false,\r "forceLanguage": "en"\r },\r "sampleUrl": false,\r "defaultVersion": "0.0.0",\r "apidoc": "0.3.0",\r "generator": {\r "name": "apidoc",\r "time": "2019-07-04T16:42:31.715Z",\r "url": "http://apidocjs.com",\r "version": "0.17.7"\r }\r});
-{\r "name": "xCALLY Motion API",\r "version": "2.0.83",\r "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",\r "title": "xCALLY MOTION API",\r "header": {\r "title": "Introduction",\r "content": "<h2>The API</h2>\n<p>This is the documentation for the xCALLY MOTION API.</p>\n<p>We make changes to the APIs from time to time. For more information, see <a href=\"https://wiki.xcallymotion.com/display/XMV/Motion+GUI\">Changelog</a>.</p>\n<p>The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.</p>\n<p>The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].</p>\n<p>Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:</p>\n<pre><code class=\"language-sh\">GET /api/users\n</code></pre>\n<p>Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:</p>\n<pre><code class=\"language-sh\">https://motion.xcally.com/api/users\n</code></pre>\n<p>Curly braces, <code>{}</code>, indicate values you have to supply. Example:</p>\n<pre><code class=\"language-sh\">GET /api/users/{id}\n</code></pre>\n<p>The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].</p>\n<p>The examples use basic authentication requiring a xCALLY username and password.</p>\n<h2>Security and Authentication</h2>\n<p>This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.</p>\n<p>Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.</p>\n<h3>Basic authentication</h3>\n<p>Use the following authentication format with your username and password:\n<code>{username}:{password}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -u admin:password https://motion.xcally.com/api/users\n</code></pre>\n<h3>OAuth access token</h3>\n<p>The xCALLY API supports OAuth authorization flows.</p>\n<p>OAuth access tokens also permit client-side API requests.</p>\n<p>In your requests, specify the access token in an Authorization header as follows:\n<code>Authorization: Bearer {token}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n</code></pre>\n<h2>Request Format</h2>\n<p>The xCALLY API is a JSON API. You must supply a <code>Content-Type: application/json</code> header in <code>PUT</code> and <code>POST</code> requests. You must set an <code>Accept: application/json</code> header on all requests. You may get a <code>text/plain</code> response in case of an error like a bad request. You should treat this as an error you need to fix.</p>\n<h2>Response Format</h2>\n<p>The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.</p>\n<p>Responses may have the status codes described in the following sections.</p>\n<h3>200 range</h3>\n<p>The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.</p>\n<h3>400 range</h3>\n<p>The request was not successful. The content type of the response may be <code>text/plain</code> for API-level error messages, such as when trying to call the API without SSL. The content type is <code>application/json</code> for business-level error messages because the response includes a JSON object with information about the error.</p>\n<p>If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.</p>\n<h3>500 range</h3>\n<p>When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.</p>\n<p>If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.</p>\n<h2>Data Types</h2>\n<p>The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.</p>\n<h2>ID integers</h2>\n<p>Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.</p>\n<p>The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.</p>\n<h2>Time stamps</h2>\n<p>Time stamps use UTC time and are formatted as ISO 8601 strings. Example: <code>2017-04-16T09:14:57Z</code></p>\n"\r },\r "template": {\r "withGenerator": false,\r "withCompare": false,\r "forceLanguage": "en"\r },\r "sampleUrl": false,\r "defaultVersion": "0.0.0",\r "apidoc": "0.3.0",\r "generator": {\r "name": "apidoc",\r "time": "2019-06-21T13:03:19.913Z",\r "url": "http://apidocjs.com",\r "version": "0.17.7"\r }\r}
+{\r "name": "xCALLY Motion API",\r "version": "2.0.84",\r "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.",\r "title": "xCALLY MOTION API",\r "header": {\r "title": "Introduction",\r "content": "<h2>The API</h2>\n<p>This is the documentation for the xCALLY MOTION API.</p>\n<p>We make changes to the APIs from time to time. For more information, see <a href=\"https://wiki.xcallymotion.com/display/XMV/Motion+GUI\">Changelog</a>.</p>\n<p>The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.</p>\n<p>The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].</p>\n<p>Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:</p>\n<pre><code class=\"language-sh\">GET /api/users\n</code></pre>\n<p>Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:</p>\n<pre><code class=\"language-sh\">https://motion.xcally.com/api/users\n</code></pre>\n<p>Curly braces, <code>{}</code>, indicate values you have to supply. Example:</p>\n<pre><code class=\"language-sh\">GET /api/users/{id}\n</code></pre>\n<p>The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].</p>\n<p>The examples use basic authentication requiring a xCALLY username and password.</p>\n<h2>Security and Authentication</h2>\n<p>This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.</p>\n<p>Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.</p>\n<h3>Basic authentication</h3>\n<p>Use the following authentication format with your username and password:\n<code>{username}:{password}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -u admin:password https://motion.xcally.com/api/users\n</code></pre>\n<h3>OAuth access token</h3>\n<p>The xCALLY API supports OAuth authorization flows.</p>\n<p>OAuth access tokens also permit client-side API requests.</p>\n<p>In your requests, specify the access token in an Authorization header as follows:\n<code>Authorization: Bearer {token}</code></p>\n<p>Example:</p>\n<pre><code class=\"language-sh\">curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n</code></pre>\n<h2>Request Format</h2>\n<p>The xCALLY API is a JSON API. You must supply a <code>Content-Type: application/json</code> header in <code>PUT</code> and <code>POST</code> requests. You must set an <code>Accept: application/json</code> header on all requests. You may get a <code>text/plain</code> response in case of an error like a bad request. You should treat this as an error you need to fix.</p>\n<h2>Response Format</h2>\n<p>The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.</p>\n<p>Responses may have the status codes described in the following sections.</p>\n<h3>200 range</h3>\n<p>The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.</p>\n<h3>400 range</h3>\n<p>The request was not successful. The content type of the response may be <code>text/plain</code> for API-level error messages, such as when trying to call the API without SSL. The content type is <code>application/json</code> for business-level error messages because the response includes a JSON object with information about the error.</p>\n<p>If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.</p>\n<h3>500 range</h3>\n<p>When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.</p>\n<p>If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.</p>\n<h2>Data Types</h2>\n<p>The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.</p>\n<h2>ID integers</h2>\n<p>Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.</p>\n<p>The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.</p>\n<h2>Time stamps</h2>\n<p>Time stamps use UTC time and are formatted as ISO 8601 strings. Example: <code>2017-04-16T09:14:57Z</code></p>\n"\r },\r "template": {\r "withGenerator": false,\r "withCompare": false,\r "forceLanguage": "en"\r },\r "sampleUrl": false,\r "defaultVersion": "0.0.0",\r "apidoc": "0.3.0",\r "generator": {\r "name": "apidoc",\r "time": "2019-07-04T16:42:31.715Z",\r "url": "http://apidocjs.com",\r "version": "0.17.7"\r }\r}
{
"name": "motion",
- "version": "2.0.83",
+ "version": "2.0.84",
"description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
"main": "server/app.js",
"engines": {
"test": "mocha server/test --timeout 5000"
},
"dependencies": {
- "apiai-promise": "^1.0.0",
+ "apiai-promise": "github:gcareri/apiai-promise",
"archiver": "^2.1.1",
"asterisk-manager": "^0.1.15",
"aws-sdk": "^2.133.0",
"html-to-text": "^4.0.0",
"iconv": "^2.3.0",
"imap": "^0.8.19",
+ "ioredis": "^4.10.0",
"ipaddr.js": "^1.5.4",
"jayson": "^2.0.2",
"jsforce": "^1.7.1",
"sequelize": "^3.24.3",
"serve-favicon": "^2.3.0",
"simple-git": "^1.73.0",
- "socket.io": "^1.7.3",
- "socket.io-emitter": "^1.0.0",
- "socket.io-redis": "^1.0.0",
+ "socket.io": "^2.2.0",
+ "socket.io-emitter": "^3.1.1",
+ "socket.io-redis": "^5.2.0",
"socketio-jwt": "^4.5.0",
"sox": "github:gcareri/node-sox",
"squel": "^5.5.0",
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"ERRORS": {
"DSN_REQUIRED": "إسم مصدر البيانات المطلوب",
"SELECTED_USERS": "المستخدمين المختارين",
"TILDEASR": "",
"AWS_BOT_NAME": "اسم بوت",
- "AWS_LEX_REGION": "منطقة"
+ "AWS_LEX_REGION": "منطقة",
+ "NDASSISTANT_URL": "رابط NDASSISTANT",
+ "NDAUTH_URL": "عنوان NDAUTH Url",
+ "PASSWORD": "كلمه السر",
+ "USERNAME": "اسم المستخدم"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Navnet",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Tilføj brugere til projektet",
"SELECTED_USERS": "Udvalgte brugere",
"AWS_BOT_NAME": "Bot navn",
- "AWS_LEX_REGION": "Område"
+ "AWS_LEX_REGION": "Område",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Adgangskode",
+ "USERNAME": "Brugernavn"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Name",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Fügen Sie dem Projekt Benutzer hinzu",
"SELECTED_USERS": "Ausgewählte Benutzer",
"AWS_BOT_NAME": "Botname",
- "AWS_LEX_REGION": "Region"
+ "AWS_LEX_REGION": "Region",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Passwort",
+ "USERNAME": "Nutzername"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "NDAUTH_URL": "NDAUTH Url",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "USERNAME": "Username",
+ "PASSWORD": "Password",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"AWS_LEX_REGION": "Region",
"AWS_BOT_NAME": "Bot name",
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"ERRORS": {
"DSN_REQUIRED": "Campo obligatorio",
"PERMISSIONADD_PROJECTS": "Añadir usuarios al proyecto",
"SELECTED_USERS": "Usuarios seleccionados",
"AWS_BOT_NAME": "Nombre del bot",
- "AWS_LEX_REGION": "Región"
+ "AWS_LEX_REGION": "Región",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Contraseña",
+ "USERNAME": "Nombre de usuario"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "نام",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "افزودن کاربران به پروژه",
"SELECTED_USERS": "کاربران انتخاب شده",
"AWS_BOT_NAME": "نام بت",
- "AWS_LEX_REGION": "منطقه"
+ "AWS_LEX_REGION": "منطقه",
+ "NDASSISTANT_URL": "آدرس دلخواه",
+ "NDAUTH_URL": "آدرس غیرمستقیم",
+ "PASSWORD": "کلمه عبور",
+ "USERNAME": "نام کاربری"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Nimi",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Lisää käyttäjät projektiin",
"SELECTED_USERS": "Valitut käyttäjät",
"AWS_BOT_NAME": "Botin nimi",
- "AWS_LEX_REGION": "alue"
+ "AWS_LEX_REGION": "alue",
+ "NDASSISTANT_URL": "NDASSISTANT-URL-osoite",
+ "NDAUTH_URL": "NDAUTH-URL-osoite",
+ "PASSWORD": "Salasana",
+ "USERNAME": "Käyttäjätunnus"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Nom",
"ODBC": "Etat ODBC",
"PERMISSIONADD_PROJECTS": "Ajouter des utilisateurs au projet",
"SELECTED_USERS": "Utilisateurs sélectionnés",
"AWS_BOT_NAME": "Nom de bot",
- "AWS_LEX_REGION": "Région"
+ "AWS_LEX_REGION": "Région",
+ "NDASSISTANT_URL": "URL NDASSISTANT",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Mot de passe",
+ "USERNAME": "Nom d'utilisateur"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"AWS_LEX_REGION": "אזור",
"AWS_BOT_NAME": "שם הבוט",
"GRAMMAR": "דקדוק",
"TILDEASR": "Tilde ASR",
"APPID": "מזהה יישום",
- "APPSECRET": "סוד של יישום"
+ "APPSECRET": "סוד של יישום",
+ "NDASSISTANT_URL": "כתובת נסתרת",
+ "NDAUTH_URL": "כתובת אתר של NDAUTH",
+ "PASSWORD": "סיסמה",
+ "USERNAME": "שם משתמש"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "नाम",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "उपयोगकर्ताओं को प्रोजेक्ट में जोड़ें",
"SELECTED_USERS": "चयनित उपयोगकर्ता",
"AWS_BOT_NAME": "बॉट नाम",
- "AWS_LEX_REGION": "क्षेत्र"
+ "AWS_LEX_REGION": "क्षेत्र",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "पारण शब्द",
+ "USERNAME": "उपयोगकर्ता नाम"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"ERRORS": {
"DSN_REQUIRED": "Bidang wajib",
"PERMISSIONADD_PROJECTS": "Tambahkan Pengguna ke Proyek",
"SELECTED_USERS": "Pengguna yang Dipilih",
"AWS_BOT_NAME": "Nama bot",
- "AWS_LEX_REGION": "Wilayah"
+ "AWS_LEX_REGION": "Wilayah",
+ "NDASSISTANT_URL": "Url NDASSISTANT",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Kata sandi",
+ "USERNAME": "Nama pengguna"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "NDAUTH_URL": "NDAUTH Url",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "USERNAME": "Username",
+ "PASSWORD": "Password",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"AWS_LEX_REGION": "Regione",
"AWS_BOT_NAME": "Nome Bot",
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"ERRORS": {
"DSN_REQUIRED": "必須フィールド",
"PERMISSIONADD_PROJECTS": "プロジェクトにユーザーを追加する",
"SELECTED_USERS": "選択したユーザー",
"AWS_BOT_NAME": "ボット名",
- "AWS_LEX_REGION": "領域"
+ "AWS_LEX_REGION": "領域",
+ "NDASSISTANT_URL": "NDASSISTANT URL",
+ "NDAUTH_URL": "NDAUTH URL",
+ "PASSWORD": "パスワード",
+ "USERNAME": "ユーザー名"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "이름",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "프로젝트에 사용자 추가",
"SELECTED_USERS": "선택된 사용자",
"AWS_BOT_NAME": "봇 이름",
- "AWS_LEX_REGION": "부위"
+ "AWS_LEX_REGION": "부위",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "암호",
+ "USERNAME": "사용자 이름"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "\"Amazon Lex\"",
"ERRORS": {
"NAME_REQUIRED": "Obligāts lauks",
"PERMISSIONADD_PROJECTS": "Pievienot lietotājus projektam",
"SELECTED_USERS": "Atlasītie lietotāji",
"AWS_BOT_NAME": "Robotprogrammatūras nosaukums",
- "AWS_LEX_REGION": "Reģions"
+ "AWS_LEX_REGION": "Reģions",
+ "NDASSISTANT_URL": "NDASSISTANT URL",
+ "NDAUTH_URL": "NDAUTH URL",
+ "PASSWORD": "Parole",
+ "USERNAME": "Lietotājvārds"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Naam",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Gebruikers toevoegen aan project",
"SELECTED_USERS": "Geselecteerde gebruikers",
"AWS_BOT_NAME": "Botnaam",
- "AWS_LEX_REGION": "Regio"
+ "AWS_LEX_REGION": "Regio",
+ "NDASSISTANT_URL": "NDASSISTANT URL",
+ "NDAUTH_URL": "NDAUTH-URL",
+ "PASSWORD": "Wachtwoord",
+ "USERNAME": "Gebruikersnaam"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Navn",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Legg til brukere til prosjektet",
"SELECTED_USERS": "Utvalgte brukere",
"AWS_BOT_NAME": "Bot navn",
- "AWS_LEX_REGION": "Region"
+ "AWS_LEX_REGION": "Region",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Passord",
+ "USERNAME": "Brukernavn"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Nazwa",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Dodaj użytkowników do projektu",
"SELECTED_USERS": "Wybrani użytkownicy",
"AWS_BOT_NAME": "Nazwa bota",
- "AWS_LEX_REGION": "Region"
+ "AWS_LEX_REGION": "Region",
+ "NDASSISTANT_URL": "Url NDASSISTANT",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Hasło",
+ "USERNAME": "Nazwa Użytkownika"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"AWS_LEX_REGION": "Região",
"AWS_BOT_NAME": "Nome BOT",
"GRAMMAR": "Gramática",
"TILDEASR": "Tilde ASR",
"APPID": "ID do aplicativo",
- "APPSECRET": "App Secret"
+ "APPSECRET": "App Secret",
+ "NDASSISTANT_URL": "URL NDASSISTANT",
+ "NDAUTH_URL": "URL do NDAUTH",
+ "PASSWORD": "Senha",
+ "USERNAME": "Nome de usuário"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Nome",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Adicionar usuários ao projeto",
"SELECTED_USERS": "Usuários Selecionados",
"AWS_BOT_NAME": "Nome do bot",
- "AWS_LEX_REGION": "Região"
+ "AWS_LEX_REGION": "Região",
+ "NDASSISTANT_URL": "URL NDASSISTANT",
+ "NDAUTH_URL": "URL do NDAUTH",
+ "PASSWORD": "Senha",
+ "USERNAME": "Nome de usuário"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Имя",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Добавить пользователей в проект",
"SELECTED_USERS": "Выбранные пользователи",
"AWS_BOT_NAME": "Имя бота",
- "AWS_LEX_REGION": "Область, край"
+ "AWS_LEX_REGION": "Область, край",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "Ндаут URL",
+ "PASSWORD": "пароль",
+ "USERNAME": "имя пользователя"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Namn",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Lägg till användare till projektet",
"SELECTED_USERS": "Valda användare",
"AWS_BOT_NAME": "Bot namn",
- "AWS_LEX_REGION": "Område"
+ "AWS_LEX_REGION": "Område",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "PASSWORD": "Lösenord",
+ "USERNAME": "Användarnamn"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "Adı",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "Projeye Kullanıcı Ekleme",
"SELECTED_USERS": "Seçilmiş Kullanıcılar",
"AWS_BOT_NAME": "Bot adı",
- "AWS_LEX_REGION": "bölge"
+ "AWS_LEX_REGION": "bölge",
+ "NDASSISTANT_URL": "NDASSISTANT URL'si",
+ "NDAUTH_URL": "NDAUTH URL'si",
+ "PASSWORD": "Parola",
+ "USERNAME": "Kullanıcı adı"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "名称",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "将用户添加到项目",
"SELECTED_USERS": "选定用户",
"AWS_BOT_NAME": "机器人的名字",
- "AWS_LEX_REGION": "区域"
+ "AWS_LEX_REGION": "区域",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH网址",
+ "PASSWORD": "密码",
+ "USERNAME": "用户名"
}
}
\ No newline at end of file
{
"CALLYSQUARE": {
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
"AWSLEX": "Amazon Lex",
"NAME": "名稱",
"ODBC": "ODBC",
"PERMISSIONADD_PROJECTS": "將用戶添加到項目",
"SELECTED_USERS": "選定用戶",
"AWS_BOT_NAME": "機器人的名字",
- "AWS_LEX_REGION": "區域"
+ "AWS_LEX_REGION": "區域",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH網址",
+ "PASSWORD": "密碼",
+ "USERNAME": "用戶名"
}
}
\ No newline at end of file
"VOICE_WAITING": "انتظار",
"VOICE_WAITING_TEXT": "انتظار مكالمات كيو",
"DOWNLOAD": "تحميل",
- "SCHEDULED_CALLS": "المكالمات المجدولة"
+ "SCHEDULED_CALLS": "المكالمات المجدولة",
+ "PRIVATE": "نشر",
+ "PUBLIC": "عامة",
+ "PUBLIC_INTERACTION": "التفاعل عام",
+ "VISIBILITY": "رؤية"
}
}
\ No newline at end of file
"VOICE_WAITING": "VENTER",
"VOICE_WAITING_TEXT": "VENTENDE QUEUE CALLS",
"DOWNLOAD": "Hent",
- "SCHEDULED_CALLS": "Planlagte opkald"
+ "SCHEDULED_CALLS": "Planlagte opkald",
+ "PRIVATE": "Privat",
+ "PUBLIC": "Offentlig",
+ "PUBLIC_INTERACTION": "Samspillet er offentligt",
+ "VISIBILITY": "Sigtbarhed"
}
}
\ No newline at end of file
"VOICE_WAITING": "WARTEN",
"VOICE_WAITING_TEXT": "WARTEN DER QUEUE-ANRUFE",
"DOWNLOAD": "Herunterladen",
- "SCHEDULED_CALLS": "Geplante Anrufe"
+ "SCHEDULED_CALLS": "Geplante Anrufe",
+ "PRIVATE": "Privatgelände",
+ "PUBLIC": "Öffentlichkeit",
+ "PUBLIC_INTERACTION": "Die Interaktion ist öffentlich",
+ "VISIBILITY": "Sichtweite"
}
}
\ No newline at end of file
{
"DASHBOARDS": {
+ "VISIBILITY": "Visibility",
+ "PUBLIC": "Public",
+ "PRIVATE": "Private",
+ "PUBLIC_INTERACTION": "The interaction is public",
"SCHEDULED_CALLS": "Scheduled Calls",
"DOWNLOAD": "Download",
"UNMANAGED_RATE": "Unmanaged Rate",
"VOICE_WAITING": "ESPERANDO",
"VOICE_WAITING_TEXT": "LLAMADAS EN ESPERA EN ESPERA",
"DOWNLOAD": "Descargar",
- "SCHEDULED_CALLS": "Llamadas programadas"
+ "SCHEDULED_CALLS": "Llamadas programadas",
+ "PRIVATE": "Privado",
+ "PUBLIC": "Público",
+ "PUBLIC_INTERACTION": "La interacción es pública.",
+ "VISIBILITY": "Visibilidad"
}
}
\ No newline at end of file
"VOICE_WAITING": "در انتظار",
"VOICE_WAITING_TEXT": "منتظر صدای زنگ",
"DOWNLOAD": "دانلود",
- "SCHEDULED_CALLS": "تماس های برنامه ریزی شده"
+ "SCHEDULED_CALLS": "تماس های برنامه ریزی شده",
+ "PRIVATE": "خصوصی",
+ "PUBLIC": "عمومی",
+ "PUBLIC_INTERACTION": "تعامل عمومی است",
+ "VISIBILITY": "دید"
}
}
\ No newline at end of file
"VOICE_WAITING": "ODOTUS",
"VOICE_WAITING_TEXT": "KÄYNNISTYS PUHELUT",
"DOWNLOAD": "ladata",
- "SCHEDULED_CALLS": "Ajoitetut puhelut"
+ "SCHEDULED_CALLS": "Ajoitetut puhelut",
+ "PRIVATE": "yksityinen",
+ "PUBLIC": "Julkinen",
+ "PUBLIC_INTERACTION": "Vuorovaikutus on julkinen",
+ "VISIBILITY": "näkyvyys"
}
}
\ No newline at end of file
"VOICE_WAITING": "ATTENDRE",
"VOICE_WAITING_TEXT": "ATTENTE D'APPELS DE FILE D'ATTENTE",
"DOWNLOAD": "Télécharger",
- "SCHEDULED_CALLS": "Appels programmés"
+ "SCHEDULED_CALLS": "Appels programmés",
+ "PRIVATE": "Privé",
+ "PUBLIC": "Publique",
+ "PUBLIC_INTERACTION": "L'interaction est publique",
+ "VISIBILITY": "Visibilité"
}
}
\ No newline at end of file
"TRANSFER_NUMBER": "העבר",
"CALL_SAVED": "השיחה נשמרה בהצלחה",
"CALL_DISPOSED": "השיחה נפרסה בהצלחה",
- "SCHEDULED_CALLS": "שיחות מתוזמנות"
+ "SCHEDULED_CALLS": "שיחות מתוזמנות",
+ "PRIVATE": "פרטי",
+ "PUBLIC": "ציבורי",
+ "PUBLIC_INTERACTION": "האינטראקציה היא ציבורית",
+ "VISIBILITY": "חשיפה"
}
}
\ No newline at end of file
"VOICE_WAITING": "इंतज़ार कर रही",
"VOICE_WAITING_TEXT": "क्यूई कॉल कॉलिंग",
"DOWNLOAD": "डाउनलोड",
- "SCHEDULED_CALLS": "अनुसूचित कॉल"
+ "SCHEDULED_CALLS": "अनुसूचित कॉल",
+ "PRIVATE": "निजी",
+ "PUBLIC": "जनता",
+ "PUBLIC_INTERACTION": "बातचीत सार्वजनिक है",
+ "VISIBILITY": "दृश्यता"
}
}
\ No newline at end of file
"VOICE_WAITING": "MENUNGGU",
"VOICE_WAITING_TEXT": "MENUNGGU PANGGILAN ANTRIAN",
"DOWNLOAD": "Unduh",
- "SCHEDULED_CALLS": "Panggilan Terjadwal"
+ "SCHEDULED_CALLS": "Panggilan Terjadwal",
+ "PRIVATE": "Pribadi",
+ "PUBLIC": "Publik",
+ "PUBLIC_INTERACTION": "Interaksi bersifat publik",
+ "VISIBILITY": "Visibilitas"
}
}
\ No newline at end of file
{
"DASHBOARDS": {
+ "VISIBILITY": "Visibilità",
+ "PUBLIC": "Pubblica",
+ "PRIVATE": "Privata",
+ "PUBLIC_INTERACTION": "L'interazione è pubblica",
"SCHEDULED_CALLS": "Chiamate Schedulate",
"DOWNLOAD": "Download",
"UNMANAGED_RATE": "Tasso di Gestione",
"VOICE_WAITING": "待機",
"VOICE_WAITING_TEXT": "待機キュー呼び出し",
"DOWNLOAD": "ダウンロード",
- "SCHEDULED_CALLS": "スケジュールされた通話"
+ "SCHEDULED_CALLS": "スケジュールされた通話",
+ "PRIVATE": "非公開",
+ "PUBLIC": "パブリック",
+ "PUBLIC_INTERACTION": "相互作用は公開されています",
+ "VISIBILITY": "視認性"
}
}
\ No newline at end of file
"VOICE_WAITING": "기다리는",
"VOICE_WAITING_TEXT": "대기열 대기열",
"DOWNLOAD": "다운로드",
- "SCHEDULED_CALLS": "예정된 통화"
+ "SCHEDULED_CALLS": "예정된 통화",
+ "PRIVATE": "은밀한",
+ "PUBLIC": "공공의",
+ "PUBLIC_INTERACTION": "상호 작용이 공개되었습니다.",
+ "VISIBILITY": "시계"
}
}
\ No newline at end of file
"VOICE_WAITING": "GAIDA",
"VOICE_WAITING_TEXT": "GAIDA RINDAS ZVANUS",
"DOWNLOAD": "Lejupielādēt",
- "SCHEDULED_CALLS": "Plānotie zvani"
+ "SCHEDULED_CALLS": "Plānotie zvani",
+ "PRIVATE": "Privāts",
+ "PUBLIC": "Publiska",
+ "PUBLIC_INTERACTION": "Mijiedarbība ir publiska",
+ "VISIBILITY": "Redzamība"
}
}
\ No newline at end of file
"VOICE_WAITING": "AAN HET WACHTEN",
"VOICE_WAITING_TEXT": "WACHTRIJWACHTOPROEPEN",
"DOWNLOAD": "Download",
- "SCHEDULED_CALLS": "Geplande gesprekken"
+ "SCHEDULED_CALLS": "Geplande gesprekken",
+ "PRIVATE": "Privaat",
+ "PUBLIC": "Openbaar",
+ "PUBLIC_INTERACTION": "De interactie is openbaar",
+ "VISIBILITY": "Zichtbaarheid"
}
}
\ No newline at end of file
"VOICE_WAITING": "VENTER",
"VOICE_WAITING_TEXT": "VENTE QUEUE CALLS",
"DOWNLOAD": "nedlasting",
- "SCHEDULED_CALLS": "Planlagte samtaler"
+ "SCHEDULED_CALLS": "Planlagte samtaler",
+ "PRIVATE": "Privat",
+ "PUBLIC": "Offentlig",
+ "PUBLIC_INTERACTION": "Samspillet er offentlig",
+ "VISIBILITY": "Synlighet"
}
}
\ No newline at end of file
"VOICE_WAITING": "CZEKANIE",
"VOICE_WAITING_TEXT": "OCZEKUJĄCE POŁĄCZENIA KOLEJOWE",
"DOWNLOAD": "Ściągnij",
- "SCHEDULED_CALLS": "Zaplanowane połączenia"
+ "SCHEDULED_CALLS": "Zaplanowane połączenia",
+ "PRIVATE": "Prywatny",
+ "PUBLIC": "Publiczny",
+ "PUBLIC_INTERACTION": "Interakcja jest publiczna",
+ "VISIBILITY": "Widoczność"
}
}
\ No newline at end of file
"TRANSFER_NUMBER": "Transferir",
"CALL_SAVED": "Chamada devidamente salva",
"CALL_DISPOSED": "Chamada devidamente eliminada",
- "SCHEDULED_CALLS": "Chamadas agendadas"
+ "SCHEDULED_CALLS": "Chamadas agendadas",
+ "PRIVATE": "Privado",
+ "PUBLIC": "Público",
+ "PUBLIC_INTERACTION": "A interação é pública",
+ "VISIBILITY": "Visibilidade"
}
}
\ No newline at end of file
"VOICE_WAITING": "ESPERANDO",
"VOICE_WAITING_TEXT": "AGUARDANDO CHAMADAS DE FILA",
"DOWNLOAD": "Baixar",
- "SCHEDULED_CALLS": "Chamadas agendadas"
+ "SCHEDULED_CALLS": "Chamadas agendadas",
+ "PRIVATE": "Privado",
+ "PUBLIC": "Público",
+ "PUBLIC_INTERACTION": "A interação é pública",
+ "VISIBILITY": "Visibilidade"
}
}
\ No newline at end of file
"VOICE_WAITING": "ОЖИДАНИЯ",
"VOICE_WAITING_TEXT": "ОЖИДАНИЕ ЗВОНОКОВ",
"DOWNLOAD": "Скачать",
- "SCHEDULED_CALLS": "Запланированные звонки"
+ "SCHEDULED_CALLS": "Запланированные звонки",
+ "PRIVATE": "Частный",
+ "PUBLIC": "общественного",
+ "PUBLIC_INTERACTION": "Взаимодействие публично",
+ "VISIBILITY": "видимость"
}
}
\ No newline at end of file
"VOICE_WAITING": "VÄNTAR",
"VOICE_WAITING_TEXT": "Väntar QUEUE CALLS",
"DOWNLOAD": "Ladda ner",
- "SCHEDULED_CALLS": "Schemalagda samtal"
+ "SCHEDULED_CALLS": "Schemalagda samtal",
+ "PRIVATE": "Privat",
+ "PUBLIC": "offentlig",
+ "PUBLIC_INTERACTION": "Samspelet är offentligt",
+ "VISIBILITY": "Synlighet"
}
}
\ No newline at end of file
"VOICE_WAITING": "BEKLEME",
"VOICE_WAITING_TEXT": "QUEUE CALLS BEKLİYOR",
"DOWNLOAD": "İndir",
- "SCHEDULED_CALLS": "Planlanmış Aramalar"
+ "SCHEDULED_CALLS": "Planlanmış Aramalar",
+ "PRIVATE": "Özel",
+ "PUBLIC": "halka açık",
+ "PUBLIC_INTERACTION": "Etkileşim halka açıktır",
+ "VISIBILITY": "görünürlük"
}
}
\ No newline at end of file
"VOICE_WAITING": "等候",
"VOICE_WAITING_TEXT": "等待队列呼叫",
"DOWNLOAD": "下载",
- "SCHEDULED_CALLS": "预定电话"
+ "SCHEDULED_CALLS": "预定电话",
+ "PRIVATE": "私人的",
+ "PUBLIC": "上市",
+ "PUBLIC_INTERACTION": "互动是公开的",
+ "VISIBILITY": "能见度"
}
}
\ No newline at end of file
"VOICE_WAITING": "等候",
"VOICE_WAITING_TEXT": "等待隊列呼叫",
"DOWNLOAD": "下載",
- "SCHEDULED_CALLS": "預定電話"
+ "SCHEDULED_CALLS": "預定電話",
+ "PRIVATE": "私人的",
+ "PUBLIC": "上市",
+ "PUBLIC_INTERACTION": "互動是公開的",
+ "VISIBILITY": "能見度"
}
}
\ No newline at end of file
numberOrLettersOrAll=Insert numbers, letters or -.
asr=ASR
lumenvoxtts=LumenvoxTTS
+sestektts=SestekTTS
lumenvoxasr=LumenvoxASR
+sestekasr=SestekASR
noGrammarSelected=No grammar inserted
noAppIdInserted=App ID not inserted
noAppSecretInserted=App Secret not inserted
agent_management=Agent Management
noFindBySelected=Find by is not specified.
login=Login
-logout=Logout
\ No newline at end of file
+logout=Logout
+noUrlInserted=Url is not specified
+noUsernameSelected=Username is not specified
+noPasswordSelected=Password is not specified
\ No newline at end of file
numberOrLettersOrAll=Inserire numeri, lettere o -.
asr=ASR
lumenvoxtts=LumenvoxTTS
+sestektts=SestekTTS
lumenvoxasr=LumenvoxASR
+sestekasr=SestekASR
noGrammarSelected=Grammatica non inserita
noAppIdInserted=App ID non inserito
noAppSecretInserted=App Secret non inserito
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
- <link rel="stylesheet" href="styles/vendor.49bcf20e.css">
+ <link rel="stylesheet" href="styles/vendor.228fad49.css">
<link rel="stylesheet" href="styles/app.637e2da0.css">
<script src="scripts/vendor.3b384498.js"></script>
- <script src="scripts/app.1008d79d.js"></script>
+ <script src="scripts/app.82ce0480.js"></script>
<!-- CKEDITOR -->
<script src="assets/plugins/ckeditor/ckeditor.js"></script>
-!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","gridster","ds.clock","angucomplete-alt"])}(),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";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),t.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","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.marketplace","app.plugins","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,t){e.state("app.login",{url:"/login?token&userId",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,basename,savename,type,startDate,endDate,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","$q","describeTable",function(e,t,a,i){var o;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:t.id}).then(function(e){var t=[];if((o=e).joins)try{o.joins=JSON.parse(o.joins);for(var n=0;n<o.joins.length;n+=1)t.push(i.getColumns(o.joins[n].foreignTable))}catch(e){console.log(e)}return a.all(t)}).then(function(e){for(var t=0;t<e.length;t+=1)o.joins[t].foreignTableFields=_.difference(_.keys(e[t]),["$promise","$resolved"]);return o})}]},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,filename,projectName,uniqueid,callerid,extension,audio",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getSquareProjects",{id:t.getCurrentUser().id,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:!0})}],trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,type:"inbound",fields:"id,name",sort:"name",nolimit:!0,channel:"voice"})}],sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver",function(e){return e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver",function(e){return e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0})}]},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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getChatWebsites",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",controller:"AgentsChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"chat",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getChatQueues")}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).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,dialPrefix",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,dialPrefix",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",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:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var t={},n=0;n<e.rows.length;n++)t[e.rows[n].id]=e.rows[n].name;return t}],tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"id,name",sort:"name",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,priority,recallme,VoiceQueueId,CampaignId,UserId",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(t,e){var a;return(e.hasRole("admin")?t.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):t.resolve("user@getQueues",{id:e.getCurrentUser().id,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,t.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var t,n=0;n<e.rows.length;n+=1)(t=_.find(a.rows,{id:e.rows[n].id}))&&_.merge(t,_.pick(e.rows[n],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).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",["ngMaterialDateRangePicker","app.dashboards.general.user"]).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",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0})}],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",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],chatWebsites:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getChatWebsites",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],mailAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getMailAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],smsAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getSmsAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],openchannelAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("user@getOpenchannelAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],faxAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getFaxAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getFaxAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",controller:"AgentsFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/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:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"fax",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getFaxQueues")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getFaxAccounts",{id:t.getCurrentUser().id,sort:"-updatedAt",limit:10,offset:0})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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,type,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,type,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,type,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,type,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:1305,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:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver",function(e){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver",function(e){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver",function(e){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",limit:10,offset:0})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:t.id})}]},authenticate:!0,permissionId:1308,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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,enableUncompleteSave,description,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,enableUncompleteSave,description,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getMailAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",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,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:t.id})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver",function(e){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:603,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",controller:"AgentsMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"mail",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getMailQueues")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getMailAccounts",{id:t.getCurrentUser().id,sort:"-updatedAt",limit:10,offset:0})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver",function(e){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"name",limit:10,offset:0})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,t){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:t.id})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),t.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",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,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,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,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",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,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:1510}).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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:1510}).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:1510}).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,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}]},authenticate:!0,permissionId:1510}).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:1510}).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:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getOpenchannelAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",controller:"AgentsOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"openchannel",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getOpenchannelQueues")}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),t.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).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,securePassword,callRecordingEncryption,chatTimeout,stunaddr,turnaddr,turnusername,turnpassword,phoneBarAutoUpdater,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,messagesAlignment,phoneBarRememberMeEnabled",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,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,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",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,defaultPageTitle,pageTitle,defaultPreferred",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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?tab",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",{latest:!0})}]},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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getSmsAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",controller:"AgentsSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"sms",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getSmsQueues")}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).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,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,permissions,crudPermissions,passwordResetAt",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,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,permissions,crudPermissions,passwordResetAt",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",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,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",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,context,callgroup,pickupgroup,encryption,phone,mobile",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,context,callgroup,pickupgroup,encryption,phone,mobile",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"}).state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver",function(e){return e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",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,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,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,DefaultReportId,CustomReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}]},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,save_name,converted_format,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,color",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,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,t38pt_udptl,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,t38pt_udptl,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:411}).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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:411}).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:411}).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:411}).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:411}).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,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}]},authenticate:!0,permissionId:411}).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:411}).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:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).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","Auth",function(e,t){return t.hasRole("admin")?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",channel:"voice",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,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",channel:"voice",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,recordingFormat,cutdigits,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,recordingFormat,cutdigits,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",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,membername,rating,audio,userDisposition",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.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver",function(e){return e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",limit:10,offset:0})}]},authenticate:!0,permissionId:410,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,t){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),t.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).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,n,t,a){e.$on("$stateChangeStart",function(e,t){return t.hasOwnProperty("authenticate")&&t.authenticate&&!a.isLoggedIn()?(e.preventDefault(),n.go("app.login",{},{reload:!0,notify:!0})):a.isLoggedIn()&&t.hasOwnProperty("permissionId")&&t.permissionId&&!a.hasPermission(t.permissionId)&&!a.hasRole("admin")?(e.preventDefault(),n.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(a,i,o,s,t,r){var l,d=["id","role","fullname","name","internal","email","userpic","permissions","md5secret","phoneBarAutoAnswer","phoneBarAutoAnswerDelay","phoneBarEnableRecording","phoneBarEnableDtmfTone","voicePause","chatPause","mailPause","faxPause","smsPause","openchannelPause","phoneBarEnableSettings","phoneBarExpires","pauseType","showWebBar","phoneBarRemoteControlPort","phoneBarRemoteControl","lastLoginAt","lastPauseAt","crudPermissions","allowmessenger","passwordResetAt","alias","phoneBarPrefixRequired","hotdesk"];function c(e){var t=o.defer();return m("agent")&&0!==l.showWebBar?s.user.login({id:l.id,device:"web",intrf:e}).$promise.then(function(){console.log("AGENT LOGGED IN"),t.resolve()}).catch(function(e){console.error(e),t.reject(e)}):m("admin")||m("user")?s.user.update({id:l.id},{online:!0,lastLoginAt:moment().format("YYYY-MM-DD HH:mm:ss")}).$promise.catch(function(e){console.error(e)}).finally(function(){t.resolve()}):t.resolve(),t.promise}function n(){if(i.remove("motion.user"),i.remove("motion.token"),l&&l.id){var e=l.id;l=null,t.localStorage.removeItem("motion.user:"+e)}}function m(e){return!!l&&l.role===e}function e(){return i.get("motion.token")}function u(e){return l=_.assign(l,_.pick(e,d)),i.put("motion.user",JSON.stringify(l)),l}return function(){if(i.get("motion.user"))l=JSON.parse(i.get("motion.user")),s.user.get({id:l.id,fields:d.join(",")}).$promise.then(function(e){if(e)return u(e)}).catch(function(e){console.log("Error retrieving user",e)})}(),{login:function(e){var t,n=o.defer();return s.auth.local(e).$promise.then(function(e){return t=e,i.put("motion.token",e.token),s.user.get({id:e.id,fields:d.join(",")}).$promise}).then(function(e){(l=e).lastLoginAt=moment(),i.put("motion.user",JSON.stringify(e))}).then(function(){if(m("agent")&&1==l.showWebBar&&l.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver","Auth",function(e,t){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return c(e)}).catch(function(e){n.reject(e.data)}).finally(function(){s.user.get({id:t.id,fields:d.join(",")}).$promise.then(function(e){l=e,n.resolve()}).catch(function(e){console.log("Error update user login",e),n.reject(e.data)})}),n.promise},logout:function(e){var t;return o.defer(),e?(n(),o.resolve()):(t=o.defer(),m("agent")&&0!==l.showWebBar?s.user.logout({id:l.id,device:"web"}).$promise.then(function(){console.log("AGENT LOGGED OUT")}).catch(function(e){console.error(e)}).finally(function(){t.resolve()}):m("admin")||m("user")?s.user.update({id:l.id},{online:!1}).$promise.catch(function(e){console.error(e)}).finally(function(){t.resolve()}):t.resolve(),t.promise).then(n).catch(function(e){console.error(e)})},queueLogin:c,isLoggedIn:function(){return!(!l||!e())},hasRole:m,hasPermission:function(e){return!!l&&_.includes(l.permissions,e)},getToken:e,getCurrentUser:function(){return l},updateCurrentUser:u,removeCookies:n}}e.$inject=["$mdDialog","$cookies","$q","api","$window","$document"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(t,e){this.telephones=e,this.closeDialog=function(e){t.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",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(t){var n={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(i,e){return i=n.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(n.urlParse)).push(t.location),1<=(e=e.filter(function(e){var t=i.hostname===e.hostname,n=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return t&&n&&a})).length}};return n}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var n={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(n[e]))return!1;return n[e]},setConfig:function(e,t){n[e]=t}};return 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(s,l,d){return{restrict:"E",compile:function(e,t){var o;return t.code||(o=e.html(),e.empty()),function(n,a,r){r.code&&(o=n.$eval(r.code));var i=n.$eval(r.shouldInterpolate);l.when(o).then(function(e){if(e){i&&(e=d(e)(n));var t=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(t),s(function(){!function(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 s=hljs.highlight(r.language||r.lang,a.join("\n"),!0);s.value=s.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),n.append(s.value).addClass("highlight")}(e,t)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){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){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",t)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(n,t,a,i,o,s,e,r,l){function d(e){switch(n.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(n.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return t.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}n.currentUser=e.getCurrentUser(),n.showMenu=function(){return n.target&&n.target.indexOf("@")<0&&n.target!=n.currentUser.internal&&n.target!=n.currentUser.name&&(0==n.currentUser.showWebBar&&n.currentUser.phoneBarRemoteControl||2==n.currentUser.showWebBar&&n.license.webrtc)&&!n.disabled},n.call=function(e){return 2!==n.currentUser.showWebBar?(t=e,l.user.getVoicePrefixes({id:n.currentUser.id}).$promise.then(function(e){if(e.count)return s.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!0,locals:{prefixes:e,required:n.currentUser.phoneBarPrefixRequired}})}).then(function(e){n.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+t):e&&-1!==e?d(e+t):e||d(t)})):d(e);var t},n.transfer=function(e){switch(n.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(n.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:t.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,t,n,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var t={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){return t}}).directive("msDatepickerFix",e)}(),function(){"use strict";angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(s){s.transfer=function(e,t,n,a){var i=[];if(0<=n)i.push(e[n]),t.push(e[n]),e.splice(n,1);else{for(var o=0;o<e.length;o+=1)t.push(e[o]);e.length=0,i=t}s.options.transferCallback&&s.options.transferCallback(i,a)},s.getLine=function(e,t){var n="";if(_.isNil(t))return n;if(_.isArray(t)){for(var a=0;a<t.length;a++)n+=" "+(e[t[a]]?e[t[a]]:"");return n}return e[t]?e[t]:""}}],templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(n,e){var t=e.emojioneArea({pickerPosition:n.pickerPosition,search:n.search,recentEmojis:n.recentEmojis,placeholder:a.instant(n.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,t){n.ngModel=this.getText(),n.onReply({event:t,body:this.getText()})},emojibtn_click:function(){n.ngModel=this.getText()}}});n.ngModel&&t[0].emojioneArea.setText(n.ngModel),n.internalControl=n.ctrlMethods||{},n.internalControl.setText=function(e){t[0].emojioneArea.setText(e)},n.internalControl.getText=function(){return t[0].emojioneArea.getText()},n.$watch("ngModel",function(e){e||t[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var t=this;function e(){return t.forms.length}function n(){return 0===t.selectedIndex}function a(){return t.selectedIndex===e()-1}t.forms=[],t.selectedIndex=0,t.registerForm=function(e){t.forms.push(e)},t.previousStep=function(){if(n())return;t.selectedIndex--},t.nextStep=function(){if(a())return;t.selectedIndex++},t.firstStep=function(){t.selectedIndex=0},t.lastStep=function(){t.selectedIndex=e()-1},t.totalSteps=e,t.isFirstStep=n,t.isLastStep=a,t.currentStepInvalid=function(){return angular.isDefined(t.forms[t.selectedIndex])&&t.forms[t.selectedIndex].$invalid},t.previousStepInvalid=function(){return 0<t.selectedIndex&&angular.isDefined(t.forms[t.selectedIndex-1])&&t.forms[t.selectedIndex-1].$invalid},t.formsIncomplete=function(){for(var e=0;e<t.forms.length;e++)if(t.forms[e].$invalid)return!0;return!1},t.resetForm=function(){for(var e=t.selectedIndex=0;e<t.forms.length;e++)t.forms[e].$setPristine(),t.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){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],o=a[1];o.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,t){var n=i.find("ms-info-bar-active"),a="ms-info-bar-active";n.addClass(a),e.removeInfoBar=function(){n.removeClass(a),t.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,t={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},n=!0;function i(){n&&e.cancel(n),n=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("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}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),t=0;t<d.items.length;t++){var n,a,i,o,s=d.items[t];(s=angular.element(s)).scope()&&s.scope().$broadcast("msMasonryItem:startReLayout"),s.css({width:d.columnWidth}),d.options.respectItemOrder?(i=t%d.columnCount,o=e[i]):(o=Math.min.apply(Math,e),i=e.indexOf(o)),e[i]=o+s[0].getBoundingClientRect().height,n=Math.round(i*d.columnWidth),a=o,s.css({transform:"translate3d("+n+"px,"+a+"px,0px)"}),s.addClass("placed"),s.scope()&&s.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(t,d.options):t,r.$watch(function(){return d.container.width()},function(e,t){e!==t&&i()})},d.waitImagesLoaded=function(e,t){if("undefined"!=typeof imagesLoaded){var n=a.imagesLoaded(e);n.on("done",function(){t()})}else t()},r.$on("msMasonry:relayout",function(){i()})}function t(s){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,o){return{pre:function(e,t,n,a){a.options=angular.fromJson(o.options||"{}"),a.container=i},post:function(e,t,n,a){s(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",t).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(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()})}}})}(),function(){"use strict";function e(n,e,a,i){var o=this;function s(e,t){o.selectedPalette=e,o.selectedHues=t}function r(){s(!(o.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,t){o.selectedColor={palette:e,hue:t,class:"md-"+e+"-"+t+"-bg",bgColorValue:i.rgba(o.palettes[e][t].value),fgColorValue:i.rgba(o.palettes[e][t].contrast)},"obj"!==o.msModelType||angular.equals(o.selectedColor,o.modelCtrl.$viewValue)||d(),s(e,o.palettes[e]),n.$selectedColor=o.selectedColor}function d(){"class"===o.msModelType?o.modelCtrl.$setViewValue(o.selectedColor.class):"obj"===o.msModelType&&o.modelCtrl.$setViewValue(o.selectedColor)}o.palettes=e,o.selectedPalette=!1,o.selectedHues=!1,n.$selectedColor={},o.activateHueSelection=s,o.selectColor=function(e,t){l(e,t),d(),a.hide()},o.removeColor=r,n.$watch("ngModel",function(){if(!o.modelCtrl.$viewValue||""===o.modelCtrl.$viewValue)return void r();var e,t;if("class"===o.msModelType){var n=o.modelCtrl.$viewValue.split("-");t=5<=n.length?(e=n[1]+"-"+n[2],n[3]):(e=n[1],n[2])}else"obj"===o.msModelType&&(e=o.modelCtrl.$viewValue.palette,t=o.modelCtrl.$viewValue.hue||500);l(e,t)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){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)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,t,n){var a="true"===n.msNavIsFolded,i=!1,o=angular.element(p[0].body),s=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=t.parent();function d(){o.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),t.scrollTop(0),l.append(s),s.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),o.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(s).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),t.scrollTop(0),o.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(s),s.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){o.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),t.off("mouseenter mouseleave")}v.setFoldable(e,t,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){s.off("mouseenter touchstart"),r.off("mouseenter touchstart"),t.off("mouseenter mouseleave")})}}}function t(n,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){n.$broadcast("msNav::expandMatchingToggles");var t=n.$on("$stateChangeSuccess",function(){n.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){t()})}}}}function n(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,t){return e.addClass("ms-nav-toggle"),angular.isUndefined(t.collapsed)&&(t.collapsed=!0),e.attr("collapsed",t.collapsed),function(a,i,e,n){var o={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},t=i.find("a"),s=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var t=angular.element(i.find("ms-nav-toggle-items")[0]);t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=t[0].offsetHeight;return t.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(t,{display:"block",height:"0px"},{height:n+"px"},o.expandAnimation).then(function(){t.addClass(o.expanded),t.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var t=angular.element(i.find("ms-nav-toggle-items")[0]),n=t[0].offsetHeight;return a.$evalAsync(function(){p.animate(t,{height:n+"px"},{height:"0px"},o.collapseAnimation).then(function(){t.removeClass(o.expanded),t.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(t,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(r,""),s.push(t))}),n.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(n.isDisabled())return;n.disable(),l()?(n.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){n.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=n.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(t=!0)}),t||c().then(function(){n.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){n.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var t=g.current.name,n=!1;angular.forEach(s,function(e){t===e&&(n=!0)}),n?d():c()}),a.$on("msNav::pushToLockedList",function(){n.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],t.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],n.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var n={};return{setFoldable:function(e,t){n={scope:e,element:t}},isNavFoldedOpen:function(){return n.scope.isNavFoldedOpen()},toggleFold:function(){n.scope.toggleFold()},openFolded:function(){n.scope.openFolded()},closeFolded:function(){n.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,t=!1,n=[],a=[];e.isDisabled=function(){return t},e.enable=function(){t=!1},e.disable=function(){t=!0},e.setToggleItem=function(e,t){n.push({element:e,scope:t})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,t){a.push({element:e,scope:t})},e.clearLockedItems=function(){a=[]}}).directive("msNav",t).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",n)}(),function(){"use strict";function e(e,t){e.root?this.navigation=t.getNavigation(e.root):this.navigation=t.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},t.sort()}function t(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,t){var n=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),o=u("navigation");function s(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),n.addClass("ms-navigation-folded"),r();else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),n.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){t.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),n.addClass("ms-navigation-folded-open"),a.remove(),n.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),n.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),n.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return o.isLockedOpen()},function(e,t){if(!angular.isUndefined(e)&&!angular.equals(e,t)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||s(e)}),e.toggleFolded=function(){s(!p.getFolded())},e.$on("$stateChangeStart",function(){o.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function n(n,e,a,i,t,o){var s=this;s.element=e,s.node=n.node,s.hasChildren=void 0,s.collapsed=void 0,s.collapsable=void 0,s.group=void 0,s.animateHeightClass="animate-height",s.toggleCollapsed=function(){s.collapsed?s.expand():s.collapse()},s.collapse=function(){var e=s.element.children("ul"),t=e[0].offsetHeight;n.$evalAsync(function(){s.collapsed=!0,s.element.addClass("collapsing"),i.animate(e,{display:"block",height:t+"px"},{height:"0px"},s.animateHeightClass).then(function(){e.css({display:"",height:""}),s.element.removeClass("collapsing")}),n.$broadcast("msNavigation::collapse")})},s.expand=function(){var e=s.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),n.$evalAsync(function(){s.collapsed=!1,s.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:t+"px"},s.animateHeightClass).then(function(){e.css({height:""}),s.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",s.node._path)})},s.getClass=function(){return s.node.class},s.isHidden=function(){if(angular.isDefined(s.node.hidden)&&angular.isFunction(s.node.hidden))return s.node.hidden();return!1},function(){s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),!s.hasChildren||s.group?s.collapsable=!1:s.collapsable=!(!angular.isUndefined(s.node.collapsable)&&"boolean"==typeof s.node.collapsable&&!0!==s.node.collapsable);s.collapsable?s.collapsed=!(!angular.isUndefined(s.node.collapsed)&&"boolean"==typeof s.node.collapsed&&!0!==s.node.collapsed):s.collapsed=!1;if(s.node.state===t.current.name||t.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(t.params)&&!angular.equals(s.node.stateParams,t.params))return;n.$emit("msNavigation::stateMatched"),o.setActiveItem(s.node,n)}n.$on("msNavigation::stateMatched",function(){s.collapsable&&s.collapsed&&n.$evalAsync(function(){s.collapsed=!1})}),n.$on("msNavigation::collapse",function(e,t){if(!s.collapsed&&s.collapsable)if(angular.isUndefined(t))s.collapse();else{var n=t.split("."),a=[],i=o.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<n.indexOf(s.node._id))return;if(-1<a.indexOf(s.node._id))return;s.collapse()}}),n.$on("$stateChangeSuccess",function(){if(s.node.state===t.current.name){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(t.params)&&!angular.equals(s.node.stateParams,t.params))return;o.setActiveItem(s.node,n),a.$broadcast("msNavigation::collapse",s.node._path)}if(t.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(t.params)&&!angular.equals(s.node.stateParams,t.params))return;n.$emit("msNavigation::stateMatched")}})}()}function a(t){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){t.setNavigationScope(e)}}}}function i(n,e,t,a,i){var o=this;o.element=e,o.node=n.node,o.hasChildren=void 0,o.group=void 0,o.getClass=function(){return o.node.class},function(){if(o.isActive=!1,o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),o.node.state===a.current.name||a.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(o.node.stateParams,a.params))return;n.$emit("msNavigation::stateMatched"),i.setActiveItem(o.node,n)}n.$on("msNavigation::stateMatched",function(){o.hasChildren&&n.$evalAsync(function(){o.isActive=!0})}),n.$on("msNavigation::clearActive",function(){if(o.hasChildren){var e=[],t=i.getActiveItem();t&&(e=t.node._path.split(".")),-1<e.indexOf(o.node._id)?n.$evalAsync(function(){o.isActive=!0}):n.$evalAsync(function(){o.isActive=!1})}}),n.$on("$stateChangeSuccess",function(){if(o.node.state===a.current.name||a.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(o.node.stateParams,a.params))return;i.setActiveItem(o.node,n),t.$broadcast("msNavigation::clearActive")}})}()}function o(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,t,n,a){t.on("click",function(){if(!a.hasChildren||i("gt-md"))return;t.toggleClass("expanded")}),e.$on("$destroy",function(){t.off("click")})}}}}e.$inject=["$scope","msNavigationService"],t.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],n.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],o.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function s(e,t){if(angular.isString(e)){for(var n=e.split("."),a=n[n.length-1],i=function(e){var t=l;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}(n),o=!1,s=0;s<i.length;s++)if(i[s]._id===a){o=i[s];break}o?(angular.extend(o,t),o.uisref=m(o)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=a,t._path=e,t.uisref=m(t),i.push(t))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){if(angular.isString(e)){for(var t=l,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}r.error("path must be a string (eg. `dashboard.project`)")}function c(e){e||(e=l).sort(a);for(var t=0;t<e.length;t++){var n=e[t].children;1<n.length&&n.sort(a),0<n.length&&c(n)}}function a(e,t){return parseInt(e.weight)-parseInt(t.weight)}function m(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}this.saveItem=s,this.deleteItem=d,this.sortByWeight=c,this.$get=function(){var n=null,t=null,a=null,i=null,e={saveItem:s,deleteItem:d,sort:c,clearNavigation:function(){l=[],t&&(t.vm.navigation=l)},setActiveItem:function(e,t){n={node:e,scope:t}},getActiveItem:function(){return n},getNavigation:o,getFlatNavigation:function(e){return function e(t){var n=[];for(var a=0;a<t.length;a++){var i=angular.copy(t[a]);i.children=[],n.push(i),0<t[a].children.length&&(n=n.concat(e(t[a].children)))}return n}(o(e))},setNavigationScope:function(e){t=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){t.toggleFolded()}};return e;function o(e){if(e){for(var t=0;t<l.length;t++)if(l[t]._id===e)return[l[t]];return null}return l}}}).controller("MsNavigationController",e).directive("msNavigation",t).controller("MsNavigationNodeController",n).directive("msNavigationNode",function(){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")}}}}).directive("msNavigationItem",function(){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")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){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")}}}}).directive("msNavigationHorizontalItem",o)}(),function(){"use strict";function e(i,n,o,e,a,s,t,r,l,d,c){var m=this,u=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],p=JSON.parse(t.localStorage.getItem("motion2.user:"+m.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function g(e){switch(e){case"ringing":m.conf.ringingMute?m.soundPlayer.muted=!0:m.soundPlayer.muted=!1,m.conf.ringingId&&m.soundPlayer.setSinkId(m.conf.ringingId).then(function(){m.soundPlayer.volume=m.conf.ringingVolume}).then(b).catch(function(e){console.info(e.message,m.conf.ringingId)});break;case"speaker":m.conf.speakerMute?m.remotePlayer.muted=!0:m.remotePlayer.muted=!1,m.conf.speakerId&&m.remotePlayer.setSinkId(m.conf.speakerId).then(function(){m.remotePlayer.volume=m.conf.speakerVolume}).then(b).catch(function(e){console.info(e.message,m.conf.speakerId)});break;case"microphone":for(var t=0;t<m.sessions.length;t+=1)m.conf.microphoneMute?m.sessions[t].mute():m.sessions[t].unmute();b();break;default:console.log("unknown device")}}function v(e,t,n){m.calls.unshift({target:e,fullname:n||e,inbound:t,time:moment().format("HH:mm")}),50<m.calls.length&&m.calls.pop()}function h(){return m.conf.license&&m.conf.isWebRTCSupported&&m.conf.hasMicrophone&&m.conf.hasSpeakers&&"https"===m.conf.protocol&&("chrome"===m.conf.browserName.toLowerCase()||"opera"===m.conf.browserName.toLowerCase()||"safari"===m.conf.browserName.toLowerCase())}function b(){p.webrtc=_.pick(m.conf,u),t.localStorage.setItem("motion2.user:"+m.conf.id,JSON.stringify(p))}function f(e){this.remotePlayer.srcObject=e.stream}function A(e){var t,n,a=e.session;switch(e.originator){case"local":a.outgoing=!0,a.name=e.request.ruri.user,a.user=e.request.ruri.user,v(a.user,!1);break;case"remote":a.incoming=!0,a.name=e.request.from.display_name,a.user=e.request.from.uri.user,t=e.session,n=t.name?t.name+" <"+t.user+">":t.user,c.create("Incoming call from: ",n,null,function(){t.answer(m.sessionConf)},function(){t.terminate()}).then(function(e){t.notification=e}).catch(function(e){console.error(e)}),v(e.session.user,!0),m.conf.autoAnswer&&o(function(){a.isInProgress()&&(a.autoAnswer=!0,m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0,a.answer(m.sessionConf))},m.conf.autoAnswerDelay?1e3*m.conf.autoAnswerDelay:0)}a.call_id=e.request.call_id,a.connection&&(a.connection.onaddstream=f.bind(this)),a.on("progress",function(e,t){var n=!1;switch(t.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),n=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),n=!0}n&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)}))}.bind(this,a)),a.on("confirmed",function(n,e){return n.confirmed=!0,"remote"===e.originator&&n.connection&&(n.connection.onaddstream=f.bind(this),_.head(n.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(n.connection.getRemoteStreams()))),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(n),g("speaker"),g("microphone"),n.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log(e.message)})),d.rpc.getVoiceChannels().$promise.then(function(e){var t=_.find(e.rows,function(e){return e.sipcalllinkedid===n.call_id?e:e.sipcalluniqueid===n.call_id?e:null});t&&(n.monitor=t.monitor,n.uniqueid=t.uniqueid,n.monitors=t.monitors)}).catch(function(e){console.error(e)})}.bind(this,a)),a.on("hold",function(e,t){"local"===t.originator&&(e.localHold=!0)}.bind(this,a)),a.on("unhold",function(e,t){"local"===t.originator&&(e.localHold=!1)}.bind(this,a)),a.on("ended",function(e,t){_.remove(this.sessions,{id:e.id})}.bind(this,a)),a.on("failed",function(e,t){this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),_.remove(this.sessions,{id:e.id})}.bind(this,a)),this.sessions.push(a)}function E(){m.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",i.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function y(e,t,n,a){return function(){s.show(s.simple().textContent(t).position(n).hideDelay(a)),e.terminate()}}function S(t){return d.user.getVoicePrefixes({id:m.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{prefixes:e,required:m.conf.phoneBarPrefixRequired}})}).then(function(e){if(m.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+t}else{if(e&&-1!==e)return e+t;if(!e)return t}})}e(function(){},999),m.direction="right",m.selectedMode="md-scale",m.target="",m.showDialpad=!1,m.soundPlayer=document.createElement("audio"),m.remotePlayer=document.getElementById(m.conf.remotePlayerId),m.soundPlayer.volume=1,m.sessionConf={mediaConstraints:{audio:!0,video:!1}},m.sessions=[],m.calls=[],m.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+m.conf.host+":8089/ws")],uri:new JsSIP.URI("sip",m.conf.name,m.conf.host,5060,null,null).toString(),authorization_user:m.conf.name,ha1:m.conf.ha1,realm:m.conf.realm,user_agent:m.conf.ua,session_timers_refresh_method:"invite",register_expires:m.conf.phoneBarExpires||60,register:!0}),m.conf=_.merge(p.webrtc,m.conf),n.bind("keyup",function(e){switch(e.keyCode){case 27:o(function(){m.showDialpad=!1})}}),m.$onInit=function(){g("ringing"),g("speaker"),this.ua.on("registered",function(){console.log("registered"),this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){console.log("unregistered"),this.registered=!1}.bind(this)),this.ua.on("newRTCSession",A.bind(this)),DetectRTC.load(function(){this.conf.hasMicrophone=DetectRTC.hasMicrophone,this.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,this.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,this.conf.osName=DetectRTC.osName,this.conf.osVersion=DetectRTC.osVersion,this.conf.browserName=DetectRTC.browser.name,this.conf.browserVersion=DetectRTC.browser.version,h()?this.ua.start():this.conf.license||l.warning({title:r.instant("TOOLBAR.WARNING"),msg:r.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))}.bind(this),m.type=function(e,t){var n=e;switch(m.target||(m.target=""),t&&(m.target+=e,i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target)),e){case"*":n="asterisk";break;case"#":n="pound"}m.conf.enableDtmfTone&&(m.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+n+".ogg"),m.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<m.sessions.length;a+=1)m.sessions[a].isEstablished()&&!m.sessions[a].isOnHold().local&&m.sessions[a].sendDTMF(e)},m.call=function(){if(m.target&&m.target!==m.conf.name&&m.target!==m.conf.internal){m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0;var e=m.target.replace(/ /g,"");return S(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&m.ua.call(e,m.sessionConf)}).then(function(){E()})}},m.hold=function(e){e.hold({useUpdate:!1})},m.refer=function(t){var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return S(e)}).then(function(e){t.refer(e,{eventHandlers:{requestSucceeded:y(t,"requestSucceeded","top right",3e3),requestFailed:y(t,"requestFailed","top right",3e3)}})})},m.record=function(e){a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{session:e,sessions:m.sessions}})},m.unhold=function(e){e.unhold({useUpdate:!1}),m.putOtherCallsOnHold(e)},m.answer=function(e){m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0,e.answer(m.sessionConf)},m.terminate=function(e){e.terminate()},m.selectSession=function(e){e.unhold({useUpdate:!1}),m.putOtherCallsOnHold(e)},m.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":m.type(e.key);break;case"enter":m.call()}},m.toggleDialpad=function(){m.showDialpad=!m.showDialpad},m.referAttended=function(e){a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(m.sessions,{id:e.id})}})},m.closeDialpad=function(){m.showDialpad=!1},m.initDevice=g,m.putOtherCallsOnHold=function(e){if(1<m.sessions.length)for(var t=0;t<m.sessions.length;t+=1)m.sessions[t].id===e.id||m.sessions[t].isOnHold().remote||m.sessions[t].hold({useUpdate:!1})},m.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|\-)*$/.test(e)?(m.target=e,i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target)):m.target?i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target):E():E()},m.targetSelected=function(e){e&&(m.target=e.originalObject.target,m.call(),E())},i.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:m.conf}}).then(function(e){e&&(m.conf=e,g("ringing"),g("speaker"))})}),i.$on("webrtc::logout",function(){m.ua.stop()}),i.$on("webrtc::call",function(e,t){t.target&&(m.target=t.target,m.call())}),i.$on("webrtc::transfer",function(e,t){if(t.target)for(var n=0;n<m.sessions.length;n+=1)if(m.sessions[n].isEstablished()&&!m.sessions[n].isOnHold().local)return S(t.target).then(function(e){e&&m.sessions[n].refer(e,{eventHandlers:{requestSucceeded:y(m.sessions[n],"requestSucceeded","top right",3e3),requestFailed:y(m.sessions[n],"requestFailed","top right",3e3)}})})})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","toasty","api","motNotification"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(t,e,n){var a=this;a.prefixes=e,a.required=n,a.closeDialog=function(e){t.hide(e)},a.call=function(){t.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,t){function n(){t.css("display","inline"),i(a,1e3)}function a(){t.css("display","none"),i(n,1e3)}n()}],replace:!0}}function t(t,i,o,e,n){var s=this;function a(t,e){console.log("startMonitor");var n=i.defer(),a=(e||t.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return o.rpc.startMonitor({uniqueid:s.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){t.filename=a+".wav",t.mixmonitorid=e.mixmonitorid,t.status="rec",s.session.monitor=!0,n.resolve(t)}).catch(function(e){n.reject(e)}),n.promise}s.title="Record",s.sessions=e,s.session=n,s.closeDialog=function(){t.hide()},s.addRecording=function(){var e=t.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");t.show(e).then(function(e){return a({},e)}).then(function(e){s.session.monitors.push(e)})},s.stop=function(t){return console.log("stopMonitor"),o.rpc.stopMonitor({uniqueid:s.session.uniqueid,mixmonitorid:t.mixmonitorid}).$promise.then(function(e){t.status="pause",s.session.monitor=_.includes(s.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},s.start=a}e.$inject=["$timeout"],t.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",t)}(),function(){"use strict";function e(t,a,i,e){var o=this;function s(e){t.hide(e)}o.title="Refer Attended",o.sessions=i,o.session=e,o.sessionTarget=null,i.length&&(o.target=i[0].user),o.closeDialog=s,o.transfer=function(){var e,t,n=_.find(i,function(e){if(e.user===o.target)return e});t=n.outgoing?(e=n,o.session):(e=o.session,n);t.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:function(e){a.show(a.simple().textContent("requestSucceeded").position("top right").hideDelay(3e3)),s(),t.terminate()},requestFailed:function(e){a.show(a.simple().textContent("requestFailed").position("top right").hideDelay(3e3)),s(),t.terminate()}}})}}e.$inject=["$mdDialog","$mdToast","sessions","session"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,o,t){var n=this;function a(e,t,n){var a;if(o[n]){if(a=_.find(e,function(e){return e.deviceId===o[n]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===t});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===t}))&&(o[n]=a.deviceId);return o[n]||null}o.ringingId=a(t,"audiooutput","ringingId"),o.speakerId=a(t,"audiooutput","speakerId"),o.microphoneId=a(t,"audioinput","microphoneId"),o.ringingVolume=o.ringingVolume||.5,o.speakerVolume=o.speakerVolume||.5,o.microphoneVolume=o.microphoneVolume||1,o.ringingMute=o.ringingMute||!1,o.speakerMute=o.speakerMute||!1,o.microphoneMute=o.microphoneMute||!1,n.conf=angular.copy(o),n.devices=t,n.saveSettings=function(){e.hide(n.conf)},n.closeDialog=function(){e.hide()},n.isCompatibleBrowser=function(){return"chrome"===n.conf.browserName.toLowerCase()||"opera"===n.conf.browserName.toLowerCase()||"safari"===n.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,t){var n=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];t.addClass(n)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(t,e){var n=!1,a=document.createElement("audio");t.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){n||(n=!0,e.preventDefault(),i[t.model||"voiceRecording"].download({id:t.id}).$promise.then(function(e){var t=[e.buffer],n=new Blob(t,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(n)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,t){var n=angular.element('<div class="ms-responsive-table-wrapper"></div>');t.after(n),n.append(t)}}})}(),function(){"use strict";function e(o,s,t,n){return{restrict:"AE",compile:function(e){if(!(n.getConfig("disableCustomScrollbars")||n.getConfig("disableCustomScrollbarsOnMobile")&&t.isMobile()))return e.addClass("ms-scroll"),function(e,t,n){var a={};function i(){PerfectScrollbar.update(t[0])}n.msScroll&&(a=e.$eval(n.msScroll)),a=angular.extend({},s.getConfig(),a),o(function(){PerfectScrollbar.initialize(t[0],a)},0),t.on("mouseenter",i),e.$watch(function(){return t.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||i()}),e.$watch(function(){return t.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||i()}),e.$on("$destroy",function(){t.off("mouseenter"),PerfectScrollbar.destroy(t[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){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=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(){return t}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(o,i,e){var s=this;s.collapsed=!0,s.query="",s.queryOptions={debounce:s.debounce||0};var t=!(!s.collapseOnBlur||"true"!=s.collapseOnBlur);s.resultsLoading=!1,s.results=null,s.selectedResultIndex=0,s.ignoreMouseEvents=!1,s.populateResults=function(e){if(s.collapsed)return;var t=angular.isArray(e),n=null===e;if(!t&&!n)return;s.selectedResultIndex=0,s.results=e},s.expand=function(){s.collapsed=!1,o.expand(),s.onExpand&&angular.isFunction(s.onExpand)&&s.onExpand()},s.collapse=function(){s.query="",s.populateResults(null),s.collapsed=!0,o.collapse(),s.onCollapse&&angular.isFunction(s.onCollapse)&&s.onCollapse()},s.blurCollapse=function(){if(!t)return;s.collapse()},s.absorbEvent=function(e){e.preventDefault()},s.handleKeydown=function(e){var t=e.keyCode;-1<[27,38,40].indexOf(t)&&e.preventDefault();switch(t){case 13:if(!s.results)return;s.handleResultClick(s.results[s.selectedResultIndex]);break;case 27:s.collapse();break;case 38:0<=s.selectedResultIndex-1&&(s.selectedResultIndex--,s.ensureSelectedResultIsVisible());break;case 40:if(!s.results)return;s.selectedResultIndex+1<s.results.length&&(s.selectedResultIndex++,s.ensureSelectedResultIsVisible())}},s.handleMouseenter=function(e){if(s.ignoreMouseEvents)return;s.selectedResultIndex=e},s.temporarilyIgnoreMouseEvents=function(){s.ignoreMouseEvents=!0,e.cancel(s.mouseEventIgnoreTimeout),s.mouseEventIgnoreTimeout=e(function(){s.ignoreMouseEvents=!1},250)},s.handleResultClick=function(e){s.onResultClick&&s.onResultClick({item:e});s.collapse()},s.ensureSelectedResultIsVisible=function(){var e=i.find(".ms-search-bar-results"),t=angular.element(e.find(".result")[s.selectedResultIndex]);if(e&&t){var n=t.position().top-8,a=t.position().top+t.outerHeight()+8;s.temporarilyIgnoreMouseEvents(),e.scrollTop()>n&&e.scrollTop(n),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},o.$watch("MsSearchBar.query",function(e,t){if(!angular.isUndefined(e)&&!angular.equals(e,t)&&!s.collapsed){var n=o.$parent.$eval(s.onSearch,{query:e}),a=angular.isArray(n),i=n&&!!n.then;a&&s.populateResults(n),i&&(s.resultsLoading=!0,n.then(function(e){s.populateResults(e)},function(){s.populateResults([])}).finally(function(){s.resultsLoading=!1}))}})}function t(i){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(e){return e.addClass("ms-search-bar"),function(e,t){var n,a=i.find("body");e.collapse=function(){t.removeClass("expanded"),a.removeClass("ms-search-bar-expanded")},e.expand=function(){t.addClass("expanded"),a.addClass("ms-search-bar-expanded"),n.focus()},n=t.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,n,i,s,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],t=l.getFlatNavigation(),n=r.defer(),a=0;a<t.length;a++)t[a].uisref&&e.push(t[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var o=0;o<d.shortcuts.length;o++)if(d.shortcuts[o]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,s(function(){n.resolve(e)},250),n.promise},d.loadShortcuts=function(){var e=r.defer(),t=angular.fromJson(n.get("motion.shortcuts"));angular.isUndefined(t)&&(t=[{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}],n.put("motion.shortcuts",angular.toJson(t)));return e.resolve(t),e.promise},d.saveShortcuts=function(){var e=r.defer();return n.put("motion.shortcuts",angular.toJson(d.shortcuts)),s(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var t=0;t<d.shortcuts.length;t++)d.shortcuts[t]._id===e._id&&(d.shortcuts.splice(t,1),d.query||(0===d.shortcuts.length?d.results=null:t>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var t=e.keyCode;-1<[38,40].indexOf(t)&&e.preventDefault();switch(t){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,s.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=s(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),t=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&t){var n=t.position().top-8,a=t.position().top+t.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>n&&e.scrollTop(n),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){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){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){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))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,t){var n=e.$on("msSplashScreen::remove",function(){a.leave(t).then(function(){n(),e=t=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function t(){i.setCurrentStep(1)}function n(e){return s(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return s(e)?!!i.steps[e-1].scope.hideStep:null}function o(e){return s(e)?!!n(e)||i.steps[e-1].form.$valid:null}function s(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||i.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),t()})},i.setCurrentStep=function(e){if(!s(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,t=e;1<=t;t--)if(!a(t)){e=t;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,t=e;t<=i.steps.length;t++)if(!a(t)){e=t;break}i.setCurrentStep(e)},i.gotoFirstStep=t,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return s(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!s(e))return null;for(var t=!1,n=1;n<e;n++)if(!o(n)){t=!0;break}return t},i.isStepOptional=n,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=o,i.isStepNumberValid=s,i.isFormValid=function(){return i.mainForm.$valid}}function t(s){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(e){return e.addClass("ms-stepper"),function(e,t,n,a){var i=a[0],o=a[1];s(function(){o.setOrientation("vertical"),o.registerMainForm(i),o.setupSteps()})}}}}e.$inject=["$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){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()}}}}).directive("msHorizontalStepperStep",function(){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()}}}}).directive("msVerticalStepper",t).directive("msVerticalStepperStep",function(){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()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,t){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function t(){var e=document.getElementById("bar-container"),t=document.getElementById("tab-container");return t.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==t.scrollLeft?"right":t.scrollWidth>e.scrollWidth&&t.scrollLeft>e.scrollLeft&&e.scrollWidth+t.scrollLeft>=t.scrollWidth?"left":t.scrollWidth>e.scrollWidth&&t.scrollLeft>e.scrollLeft&&e.scrollWidth+t.scrollLeft<t.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(t()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,n,t,a){var i=72,o=!1,s=!1,r=a.getScrollEl();!function(){n.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,t){var n=angular.element(t[0]);d(n).then(function(){m(function(){o=!0})})}):d(n).then(function(){m(function(){o=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return o&&s},function(e,t){angular.equals(e,t)||e&&(n.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var t=u.defer(),n=e.find("img");return 0<n.length?n.on("load",function(){t.resolve("Image is loaded")}):t.resolve("No images"),t.promise}function c(){r.scrollTop()+r.height()>n.position().top+i&&(m(function(){s=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var t=this;t.scrollEl=void 0,t.setScrollEl=function(e){t.scrollEl=e},t.getScrollEl=function(){return t.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');t.append(i);var o={scrollEl:"#content"};o=angular.extend(o,e.msTimeline,{});var s=angular.element(o.scrollEl);a.setScrollEl(s);var r=144;function l(){s.scrollTop()+s.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){s.on("scroll",l)}function c(){s.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,t,n,i,o,s,r,l){function d(){a.timeoutId&&clearTimeout(a.timeoutId)}function c(){void 0!==s.startTime&&(a.millis=moment().diff(moment(a.startTime))),a.maxTimeUnit&&"day"!==a.maxTimeUnit?"second"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3),a.minutes=0,a.hours=0,a.days=0,a.months=0,a.years=0):"minute"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4),a.hours=0,a.days=0,a.months=0,a.years=0):"hour"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5),a.days=0,a.months=0,a.years=0):"month"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30),a.years=0):"year"===a.maxTimeUnit&&(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30%12),a.years=Math.floor(a.millis/36e5/24/365)):(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24),a.months=0,a.years=0),a.secondsS=1===a.seconds||0===a.seconds?"":"s",a.minutesS=1===a.minutes||0===a.minutes?"":"s",a.hoursS=1===a.hours||0===a.hours?"":"s",a.daysS=1===a.days||0===a.days?"":"s",a.monthsS=1===a.months||0===a.months?"":"s",a.yearsS=1===a.years||0===a.years?"":"s",a.sseconds=a.seconds<10?"0"+a.seconds:a.seconds,a.mminutes=a.minutes<10?"0"+a.minutes:a.minutes,a.hhours=a.hours<10?"0"+a.hours:a.hours,a.ddays=a.days<10?"0"+a.days:a.days,a.mmonths=a.months<10?"0"+a.months:a.months,a.yyears=a.years<10?"0"+a.years:a.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),a.autoStart=s.autoStart||s.autostart,0===r.html().trim().length?r.append(l("<span>{{millis}}</span>")(a)):r.append(l(r.contents())(a)),a.interval=a.intervalAttr||1e3,a.startTime=null,a.endTime=null,a.timeoutId=null,a.countdown=a.countdownAttr&&0<=parseInt(a.countdownAttr,10)?parseInt(a.countdownAttr,10):void 0,a.isRunning=!1,a.$watch("startTimeAttr",function(e,t){e!==t&&a.isRunning&&a.start()}),a.$on("timer-start",function(){a.start()}),a.$on("timer-resume",function(){a.resume()}),a.$on("timer-stop",function(){a.stop()}),a.$on("timer-clear",function(){a.clear()}),a.$on("timer-set-countdown",function(e,t){a.countdown=t}),a.start=r[0].start=function(){var e=moment(),t=a.startTimeAttr?moment(a.startTimeAttr):null;a.startTime=!t||e<t?e:t;var n=a.endTimeAttr?moment(a.endTimeAttr):null;a.endTime=!n||n<e?null:n,a.countdown||(a.countdown=a.countdownAttr&&0<parseInt(a.countdownAttr,10)?parseInt(a.countdownattr,10):void 0),d(),m(),a.isRunning=!0},a.resume=r[0].resume=function(){d(),a.countdownAttr&&(a.countdown+=1),a.startTime=moment().diff(moment(a.stoppedTime).diff(moment(a.startTime))),m(),a.isRunning=!0},a.stop=a.pause=r[0].stop=r[0].pause=function(){a.clear(),a.$emit("timer-stopped",{timeoutId:a.timeoutId,millis:a.millis,seconds:a.seconds,minutes:a.minutes,hours:a.hours,days:a.days})},a.clear=r[0].clear=function(){a.stoppedTime=moment(),d(),a.timeoutId=null,a.isRunning=!1},r.bind("$destroy",function(){d(),a.isRunning=!1});var m=function(){a.millis=moment().diff(a.startTime);var e=a.millis%1e3;if(a.endTimeAttr&&(a.millis=moment(a.endTime).diff(moment()),e=a.interval-a.millis%1e3),a.countdownAttr&&(a.millis=1e3*a.countdown),a.millis<0)return a.stop(),a.millis=0,c(),void(a.finishCallback&&a.$eval(a.finishCallback));c(),a.timeoutId=setTimeout(function(){m(),a.$digest()},a.interval-e),a.$emit("timer-tick",{timeoutId:a.timeoutId,millis:a.millis}),0<a.countdown?a.countdown--:a.countdown<=0&&(a.stop(),a.finishCallback&&a.$eval(a.finishCallback))};void 0!==a.autoStart&&!0!==a.autoStart||a.start()}e.$inject=["$scope","$document","$timeout","$interval","$window","$translate","$attrs","$element","$compile"],angular.module("app.core").controller("MsTimerController",e).directive("timer",function(){return{restrict:"EA",replace:!1,scope:{intervalAttr:"=interval",startTimeAttr:"=startTime",endTimeAttr:"=endTime",countdownAttr:"=countdown",autoStart:"&autoStart",maxTimeUnit:"="},controller:"MsTimerController"}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{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"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var t=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var n=0;n<e.voiceQueues.rows.length;n+=1)_.includes(a.filter,e.voiceQueues.rows[n].id)&&(t+=e.voiceQueues.rows[n][e.attrs[0].value]?parseInt(e.voiceQueues.rows[n][e.attrs[0].value]):0)}return t}})}(),function(){"use strict";function e(s,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var t=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,t),r.multiBarChart.data.splice(0,t)}for(var n=0;n<r.properties.length;n+=1){if(r.multiBarChart.series[n]=s.instant("TOOLS."+r.properties[n].toUpperCase()),_.isNil(r.multiBarChart.data[n])&&(r.multiBarChart.data[n]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[n].splice(0,a)}for(var i=0,o=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[o]=e.voiceQueues.rows[i].name,r.multiBarChart.data[n][o]=e.voiceQueues.rows[i][r.properties[n]]?parseInt(e.voiceQueues.rows[i][r.properties[n]]):0,o+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.xAxes.length;t+=1)r.multiBarChart.options.scales.xAxes[t].ticks.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.yAxes.length;n+=1)r.multiBarChart.options.scales.yAxes[n].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(o){var s=this;s.filter=[],s.filtered=!1,s.properties=[],s.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},s.getPieChart=function(e){e&&(e.attrs&&function(e){s.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(s.filtered=!0,s.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(s.filtered=!1,s.filter=e.voiceQueuesSelected);if(s.pieChart.labels.length>s.properties.length){var t=s.pieChart.labels.length-s.properties.length;s.pieChart.labels.splice(0,t),s.pieChart.data.splice(0,t)}for(var n=0,a=0;n<s.properties.length;n+=1){s.pieChart.labels[n]=o.instant("TOOLS."+s.properties[n].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(s.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][s.properties[n]]?parseInt(e.voiceQueues.rows[i][s.properties[n]]):0);s.pieChart.data[n]=a,a=0}}(e),e.foreground&&(t=e,s.pieChart.options.legend.fontColor=t.foreground));var t}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,n,a,i){var o=this;function t(e){o.results=e||{count:0,rows:[]}}function s(){o.query.offset=(o.query.page-1)*o.query.limit,o.promise=i[o.reportRoute].run(o.query,t).$promise}o.countDown=0,o.refresh=0,o.title="",o.columns=[],o.results={rows:[],count:0},o.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},o.onInit=function e(t){t&&t.attrs&&(t.attrs[0]&&t.attrs[0].value&&(o.query.id=t.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===t.attrs[0].type?t.attrs[0].value:void 0,CustomReportId:"custom"===t.attrs[0].type?t.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(o.columns=e.rows),t.attrs[0].type){case"default":o.reportRoute="analyticDefaultReport";break;case"custom":o.reportRoute="analyticCustomReport"}return i[o.reportRoute].get({id:t.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(o.title=e.name),s()}).catch(function(e){console.log(e)})),t.attrs[1]&&t.attrs[1].value&&(o.refresh=parseInt(t.attrs[1].value),!_.isNaN(o.refresh)&&0<o.refresh?(o.countDown=parseInt(t.attrs[1].value),o.interval=a(function(){o.countDown-=1},1e3,0),o.timeout=n(function(){o.interval&&a.cancel(o.interval),e(t)},1e3*o.refresh)):(o.interval&&a.cancel(o.interval),o.timeout&&n.cancel(o.timeout))))},o.getResults=s,o.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t},e.$on("$destroy",function(){o.interval&&a.cancel(o.interval),o.timeout&&n.cancel(o.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,t){this.getTrustedURL=function(e){return t.trustAsResourceUrl(e)}}function t(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],t.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",t)}(),function(){"use strict";function e(e,t){var n=this;n.flipped=!1,n.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;n.flipped=!n.flipped,t.toggleClass("flipped",n.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){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)})}}}}).directive("msWidgetFront",function(){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}}}}).directive("msWidgetBack",function(){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}}}})}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){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()}})}(),function(){"use strict";function e(t){return function(e){return t.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){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}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){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(-1<o[t].indexOf(l)){s=!0;break}}s&&a.push(o)}return a}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,n){if(0===e.length||0===n.length)return e;var a=[];return e.forEach(function(e){var t=n.every(function(t){var n=!1;return e.tags.forEach(function(e){e.name!==t.name||(n=!0)}),n});t&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,t){if(0!==e.length&&0!==t.length){if(e.length<t.length)return[];var n=[],a=t.every(function(t){var n=!1;return e.forEach(function(e){e.name!==t.name||(n=!0)}),n});return a&&n.push(e),n}}})}(),function(){"use strict";function c(e,t,n,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=t,this.accept=n,this.reject=a,this.close=i}function m(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var n=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var t=_.find(e,function(e){return e.data.id===n.id});t&&t.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var l,n,d=[];"serviceWorker"in navigator&&m()?navigator.serviceWorker.register("notification.js").then(function(e){(l=e).update(),l.installing?n=l.installing:l.waiting?n=l.waiting:l.active&&(n=l.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===n){var t=_.find(d,{id:e.data.id});if(t)switch(e.data.action){case"accept":t.accept&&t.accept();break;case"reject":t.reject&&t.reject()}}}),{create:function(e,i,o,s,r){return new Promise(function(t,n){var a;m()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new c(e||"MyTitle",i||"MyBody",s,r),d.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return l.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:o||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,t){var n=e.split("@"),a=n[0],i=n[1],o=t||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var s=l.defer(),r=function(e){for(var t=e.split("."),n=c,a=0;a<t.length;a++){if(angular.isUndefined(n[t[a]])){d.error('Resource part "'+t[a]+'" is not defined!'),n=!1;break}n=n[t[a]]}return n||!1}(a);r?r[i](o,function(e){s.resolve(e)},function(e){s.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),s.reject('Resource "'+a+'" is not defined in the api service!'));return s.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var n=angular.injector(["ng"]).get("$log"),a="",v=[];function t(e){a=e}function i(){return a}function o(e,t){angular.isString(e)?angular.isArray(t)?v[e]={url:a+(t[0]||""),paramDefaults:t[1]||[],actions:t[2]||[],options:t[3]||{}}:n.error('"resource" must be an array and it must follow $resource definition'):n.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=t,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=o,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:t,getBaseUrl:i,register:o,resolve:function(e,t){g.$broadcast("msApi::resolveStart");var n=e.split("@"),a=n[0],i=n[1],o=t||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var s=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](o,function(e){s.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){s.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),s.reject('Resource "'+a+'" is not defined in the api service!');return s.promise},request:function(e,t,n,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),o=i[0],s=i[1],r=t||{};if(!o||!s)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[o];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[s](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(n)&&angular.isFunction(n)&&n(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+o+'" is not defined in the api service!'),l.reject('Resource "'+o+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,t){return-1<t.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],t=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function n(e){for(var t=0;t<e.length;t++){var n=e[t].string,a=e[t].prop;if(i=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 a(e){var t=e.indexOf(i);if(-1!==t)return parseInt(e.substring(t+i.length+1))}var o=n(e)||"unknown-browser",s=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=n(t)||"unknown-os";return o=o.toLowerCase(),s=o+"-"+s,r=r.toLowerCase(),d={browser:o,version:s,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,t){-1===t.indexOf(e)?t.push(e):t.splice(t.indexOf(e),1)}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,t){var n=this;n.themes=t.themes,n.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],n.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"}],n.layoutMode="wide",n.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",n.setActiveTheme=function(e){t.setActiveTheme(e)},n.getActiveTheme=function(){return t.themes.active},n.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===n.layoutMode)},n.updateLayoutStyle=function(){e.put("motion.layoutStyle",n.layoutStyle),location.reload()}}function t(t){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){t("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],t.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",t)}(),function(){"use strict";function e(i,a,o){var s={};return{generate:function(){var e=angular.copy(o.getRegisteredThemes()),a=angular.copy(o.getRegisteredPalettes());angular.forEach(e,function(n){s[n.name]={},angular.forEach(n.colors,function(e,t){s[n.name][t]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var t=angular.copy(e);angular.forEach(t,function(n){angular.forEach(n,function(e,t){n[t]=e.levels,n[t].color=e.levels.default.color,n[t].contrast1=e.levels.default.contrast1,n[t].contrast2=e.levels.default.contrast2,n[t].contrast3=e.levels.default.contrast3,n[t].contrast4=e.levels.default.contrast4,delete n[t].default})}),o.setThemesList(t);var n=i.get("motion.selectedTheme");n?o.setActiveTheme(n):o.setActiveTheme("default")}(s);var r={};angular.forEach(s,function(e,t){var n,a,i,o,s;(r={})["@themeName"]=t,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,n){angular.forEach(e,function(e,t){r["@"+a+d(n)+d(t)]=e})})}),n=r,a=new RegExp(Object.keys(n).join("|"),"gi"),i='/* 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(a,function(e){return n[e]}),o=angular.element("head"),(s=angular.element('<style type="text/css"></style>')).html(i),o.append(s)})},rgba:l};function l(e,t){var n=t||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),n&&(e=function(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"}};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]);return e}(e,n)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{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"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{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"}}}})}(),function(){"use strict";function e(n,e,t){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(t.custom=i),n.alwaysWatchTheme(!0),angular.forEach(e,function(e){n.definePalette(e.name,e.options)}),angular.forEach(t,function(e,t){n.theme(t).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(t,n,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void n.error('You must have at least one theme named "default"'):(n.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void t.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],t.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(t,o,s,r){this.search=function(t){for(var e=[],n=r.getFlatNavigation(),a=s.defer(),i=0;i<n.length;i+=1)n[i].uisref&&e.push(n[i]);t&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(t)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?t.go(e.state,e.stateParams):t.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,t){var n=this;n.code="",n.send=!1,n.error=e.params,n.sendReport=function(){t.post("/api/jira",n.error).then(function(e){n.send=!0,e.data&&(n.code=e.data.id)},function(e){n.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,t){var n=this;n.currentUser=e.getCurrentUser(),n.cookieAlertHide=t.get("motion.cookieAlertHide:"+n.currentUser.id)||!1,n.cookieAlertOnClose=function(){t.put("motion.cookieAlertHide:"+n.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.form={},o.forgotPassword=function(){return i.auth.forgot(o.form).$promise.then(function(){t.success({title:n.instant("FORGOTPASSWORD.LINK_SENT"),msg:n.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&t.error({title:n.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,t){var n=this;n.currentUser=e.getCurrentUser(),n.newsAlertHide=t.get("motion.newsAlertHide:"+n.currentUser.id)||!1,n.newsAlertOnClose=function(){t.put("motion.newsAlertHide:"+n.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e){var t={baseUrl:"api/"};return t.auth=e(t.baseUrl+"auth/local",{},{local:{method:"post",url:t.baseUrl+"auth/local"},forgot:{method:"post",url:t.baseUrl+"auth/local/forgot"},reset:{method:"post",url:t.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},google:{method:"post",url:t.baseUrl+"auth/google"}}),t.jira=e(t.baseUrl+"jira"),t.rpc=e(t.baseUrl+"rpc",{},{startMonitor:{method:"get",url:t.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:t.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:t.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:t.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:t.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:t.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:t.baseUrl+"rpc/sms/queues"},getOpenchannelQueues:{method:"get",url:t.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:t.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:t.baseUrl+"rpc/voice/queues/preview/:id"},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"},setAgentCapacity:{method:"put",url:t.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:t.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:t.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:t.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:t.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:t.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/fax/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:t.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:t.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:t.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:t.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:t.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:t.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),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",{},{killProcess:{method:"get",url:t.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),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"},clone:{method:"post",url:t.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:t.baseUrl+"users/create_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"},getGroups:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/recordings"},getChatInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/fax/interactions"},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"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/openchannel_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/chat_websites"},getSquareProjects:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/scheduled_calls"}}),t.voiceChanSpy=e(t.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:t.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceContext=e(t.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:t.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceExtension=e(t.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:t.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/downloads"}}),t.voiceMail=e(t.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/describe"},clone:{method:"post",url:t.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.voiceCallReport=e(t.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceDialReport=e(t.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceAgentReport=e(t.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceQueueReport=e(t.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/reports/index"}}),t.memberReport=e(t.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"members/reports/describe"},clone:{method:"post",url:t.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.trunk=e(t.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"trunks/describe"},clone:{method:"post",url:t.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceTransferReport=e(t.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailServerOut=e(t.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:t.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailAccount=e(t.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:t.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/canned_answers"},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"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/users"}}),t.mailQueue=e(t.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/queues/describe"},clone:{method:"post",url:t.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/members"},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.mailSubstatus=e(t.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:t.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailInteraction=e(t.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:t.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.mailMessage=e(t.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/messages/describe"},clone:{method:"post",url:t.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:t.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.mailApplication=e(t.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/applications/describe"},clone:{method:"post",url:t.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailQueueReport=e(t.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.dashboard=e(t.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/describe"},clone:{method:"post",url:t.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),t.faxAccount=e(t.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:t.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"fax/accounts/:id/canned_answers"},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"},addAccountApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/users"}}),t.faxApplication=e(t.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/applications/describe"},clone:{method:"post",url:t.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.faxInteraction=e(t.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:t.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.faxMessage=e(t.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/messages/describe"},clone:{method:"post",url:t.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:t.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.faxQueue=e(t.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/queues/describe"},clone:{method:"post",url:t.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/members"},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.faxQueueReport=e(t.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.smsAccount=e(t.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:t.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/users"}}),t.smsApplication=e(t.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/applications/describe"},clone:{method:"post",url:t.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.smsInteraction=e(t.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:t.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.smsMessage=e(t.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/messages/describe"},clone:{method:"post",url:t.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:t.baseUrl+"sms/messages/:id/status"}}),t.smsQueue=e(t.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/queues/describe"},clone:{method:"post",url:t.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/members"},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"},clone:{method:"post",url:t.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/send"}}),t.openchannelApplication=e(t.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.openchannelInteraction=e(t.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.openchannelMessage=e(t.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"openchannel/messages/:id/reject"}}),t.openchannelQueue=e(t.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/members"},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"},clone:{method:"post",url:t.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/applications"},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"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/users"}}),t.openchannelQueueReport=e(t.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatApplication=e(t.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/applications/describe"},clone:{method:"post",url:t.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatInteraction=e(t.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:t.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},customUpdate:{isArray:!1,method:"put",url:t.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:t.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:t.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.chatMessage=e(t.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/messages/describe"},clone:{method:"post",url:t.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"chat/messages/:id/reject"}}),t.chatOfflineMessage=e(t.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:t.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatQueue=e(t.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/queues/describe"},clone:{method:"post",url:t.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/members"},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.chatGroup=e(t.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/groups/describe"},clone:{method:"post",url:t.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:t.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:t.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:t.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/groups/:id/messages"}}),t.chatProactiveAction=e(t.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:t.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmCompany=e(t.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/companies/describe"},clone:{method:"post",url:t.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"cm/contacts/:id/tags"},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"},uploadCsv:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/upload/:id"}}),t.cmHopper=e(t.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:t.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/opencontacts"}}),t.cmHopperBlack=e(t.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmHopperFinal=e(t.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:t.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:t.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:t.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:t.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:t.baseUrl+"cm/hopper_final/checkContactHopper"}}),t.cmHopperHistory=e(t.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmCustomField=e(t.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:t.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.action=e(t.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"actions/describe"},clone:{method:"post",url:t.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),t.automation=e(t.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"automations/describe"},clone:{method:"post",url:t.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),t.disposition=e(t.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dispositions/describe"},clone:{method:"post",url:t.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),t.condition=e(t.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"conditions/describe"},clone:{method:"post",url:t.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),t.interval=e(t.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"intervals/describe"},clone:{method:"post",url:t.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),t.cdr=e(t.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cdr/describe"},clone:{method:"post",url:t.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceQueuesLog=e(t.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:t.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),t.schedule=e(t.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"schedules/describe"},clone:{method:"post",url:t.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:t.baseUrl+"schedules/:id/run"}}),t.sound=e(t.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sounds/describe"},clone:{method:"post",url:t.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},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"},clone:{method:"post",url:t.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),t.template=e(t.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"templates/describe"},clone:{method:"post",url:t.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),t.trigger=e(t.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"triggers/describe"},clone:{method:"post",url:t.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),t.integration=e(t.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),t.integrationReport=e(t.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:t.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.analyticCustomReport=e(t.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:t.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.analyticMetric=e(t.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:t.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),t.analyticFieldReport=e(t.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:t.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.intSalesforceAccount=e(t.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intSugarcrmAccount=e(t.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intDeskAccount=e(t.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/accounts/:id/fields"}}),t.intDeskConfiguration=e(t.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/desk/configurations/:id/tags"}}),t.intDeskField=e(t.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:t.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intZohoAccount=e(t.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/accounts/:id/fields"}}),t.intZohoConfiguration=e(t.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),t.intZohoField=e(t.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intZendeskAccount=e(t.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intFreshdeskAccount=e(t.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intVtigerAccount=e(t.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),t.intVtigerConfiguration=e(t.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),t.intVtigerField=e(t.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:t.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.network=e(t.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"networks/describe"},clone:{method:"post",url:t.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatQueueReport=e(t.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatInternalMessage=e(t.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:t.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:t.baseUrl+"chat/internal/messages/users"}}),t.jscriptyAnswerReport=e(t.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.jscriptyQuestionReport=e(t.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.jscriptySessionReport=e(t.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/sessions/reports/:id/questions"}}),t.smsQueueReport=e(t.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.squareReport=e(t.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/reports/describe"},clone:{method:"post",url:t.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.squareReportDetail=e(t.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:t.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.jscriptyProject=e(t.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.setting=e(t.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"settings/describe"},clone:{method:"post",url:t.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},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"},gdpr:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/preferred"}}),t.squareOdbc=e(t.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/odbc/describe"},clone:{method:"post",url:t.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:t.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:t.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:t.baseUrl+"square/projects/:id/users"}}),t.squareRecording=e(t.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/recordings/describe"},clone:{method:"post",url:t.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.squareMessage=e(t.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/messages/describe"},clone:{method:"post",url:t.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),t.team=e(t.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"teams/describe"},clone:{method:"post",url:t.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),t.campaign=e(t.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"campaigns/describe"},clone:{method:"post",url:t.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},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.migration=e(t.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"migrations/describe"},clone:{method:"post",url:t.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),t.attachment=e(t.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"attachments/describe"},clone:{method:"post",url:t.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.plugin=e(t.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"plugins/describe"},clone:{method:"post",url:t.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:t.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:t.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:t.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:t.baseUrl+"plugins/webhook"}}),t.mailTransferReport=e(t.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatTransferReport=e(t.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.faxTransferReport=e(t.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.openchannelTransferReport=e(t.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.smsTransferReport=e(t.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmList=e(t.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/lists/describe"},clone:{method:"post",url:t.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",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",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},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.voicePrefix=e(t.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:t.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"voice/prefixes/:id/users"}}),t}e.$inject=["$resource"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,t){t.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,t,n){this.themes=e.themes;var a=n.get("motion.language");a&&t.use(a)}e.$inject=["motionTheming","$translate","$cookies"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var t=new Date,n=new Date(e);return n.getDate()===t.getDate()&&n.getMonth()===t.getMonth()&&n.getFullYear()===t.getFullYear()?a("date")(n.getTime(),"shortTime"):n.getDate()===t.getDate()-1&&n.getMonth()===t.getMonth()&&n.getFullYear()===t.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(n.getTime(),"shortTime"):a("date")(n.getTime(),"MMM d, y h:mm a")}}function t(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],t.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,t,n){var a,i={},o=0;for(a in e)if(n<=o&&(i[a]=e[a]),++o===n+t)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){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}}}).factory("dateFilterLocalizationFactory",t).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,t,n){var a;n.html5Mode(!0),t.otherwise("/dashboards/general"),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",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.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"},"header@app":{templateUrl:o[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:o[i].footer,controller:"FooterController 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(a,e){var i;function o(){i=io({query:"id="+e.getCurrentUser().id,transports:["websocket","polling"]})}return{connect:o,on:function(e,t){t=t||angular.noop,i||o(),i.on(e,function(){var e=arguments;a.$apply(function(){t.apply(i,e)})})},onWithoutApply:function(e,t){t=t||angular.noop,i||o(),i.on(e,function(){t.apply(i,arguments)})},emit:function(e,t,n){n=n||angular.noop,i||o(),i.emit(e,t,function(){var e=arguments;a.$apply(function(){n.apply(i,e)})})},removeAllListeners:function(e){i||o(),i.removeAllListeners(e)},removeListener:function(e,t){i||o(),i.removeListener(e,t)},disconnect:function(){i||o(),i.disconnect()}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(t,n,e,a,i,o){var s=this;s.progresslogin=!1,s.login=function(){return s.progresslogin=!0,s.message="",o.login(s.form).then(function(){return t.go("app.dashboards.general")}).catch(function(e){s.message=e.message}).finally(function(){s.progresslogin=!1})},s.loginOauth=function(e){s.message="",n.location.href="/api/auth/"+e},s.onInit=function(){{if(t.params.token&&t.params.userId)return o.removeCookies(),s.progresslogin=!0,e.put("motion.token",t.params.token),i.user.get({id:t.params.userId}).$promise.then(function(e){e&&(o.updateCurrentUser(e),t.go("app.dashboards.general"))}).finally(function(){s.progresslogin=!1});o.isLoggedIn()&&t.go("app.dashboards.general")}},s.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="ANALYTICS.EDIT_EXTRACTEDREPORT",u.extractedReport=angular.copy(r),u.extractedReports=s,u.newExtractedReport=!1,u.extractedReport||(u.extractedReport={},u.title="ANALYTICS.NEW_EXTRACTEDREPORT",u.newExtractedReport=!0),u.addNewExtractedReport=function(){u.errors=[],l.analyticExtractedReport.save(u.extractedReport).$promise.then(function(e){u.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:u.extractedReport.name?u.extractedReport.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.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.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveExtractedReport=function(){u.errors=[],l.analyticExtractedReport.update({id:u.extractedReport.id},u.extractedReport).$promise.then(function(e){var t=_.find(u.extractedReports,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ExtractedReport properly saved!",msg:u.extractedReport.name?u.extractedReport.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var t=0;t<e.data.errors.length;t++)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.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteExtractedReport=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.analyticExtractedReport.delete({id:u.extractedReport.id}).$promise.then(function(){_.remove(u.extractedReports,{id:u.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(u.extractedReport.name||"extractedReport")+" has been deleted!"}),p(u.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var t=0;t<e.data.errors.length;t++)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.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","extractedReports","extractedReport","api","Auth","license","setting"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.extractedReports=r||{count:0,rows:[]},v.table="extractedReports",v.listOrder="",v.listOrderAsc=null,v.selectedExtractedReports=[],v.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.extractedReports.rows,license:v.license,setting:null}})},v.downloadfile2=function(o,e){return l.analyticExtractedReport.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getExtractedReports=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.analyticExtractedReport.get(v.query,f).$promise},v.createOrEditExtractedReport=function(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:v.extractedReports.rows,license:v.license,setting:v.setting}})},v.deleteExtractedReport=A,v.exportSelectedExtractedReports=function(){var e=angular.copy(v.selectedExtractedReports);return v.selectedExtractedReports=[],e},v.deleteSelectedExtractedReports=function(e){var t=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+v.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedExtractedReports.forEach(function(e){A(e)}),v.selectedExtractedReports=[]})},v.deselectExtractedReports=function(){v.selectedExtractedReports=[]},v.selectAllExtractedReports=function(){v.selectedExtractedReports=v.extractedReports.rows};var h=!0,b=1;function f(e){v.extractedReports=e||{count:0,rows:[]}}function A(e){l.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(v.extractedReports.rows,{id:e.id}),v.extractedReports.count-=1,v.extractedReports.rows.length||v.getExtractedReports(),c.success({title:"ExtractedReport deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","extractedReports","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="ANALYTICS.EDIT_METRIC",u.metric=angular.copy(r),u.metrics=s,u.newMetric=!1,u.metric||(u.metric={table:"report_agent"},u.title="ANALYTICS.NEW_METRIC",u.newMetric=!0),u.addNewMetric=function(){u.errors=[],l.analyticMetric.save(u.metric).$promise.then(function(e){u.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:u.metric.name?u.metric.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.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.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMetric=function(){u.errors=[],l.analyticMetric.update({id:u.metric.id},u.metric).$promise.then(function(e){var t=_.find(u.metrics,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Metric properly saved!",msg:u.metric.name?u.metric.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var t=0;t<e.data.errors.length;t++)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.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMetric=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.analyticMetric.delete({id:u.metric.id}).$promise.then(function(){_.remove(u.metrics,{id:u.metric.id}),o.success({title:"Metric properly deleted!",msg:(u.metric.name||"metric")+" has been deleted!"}),p(u.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var t=0;t<e.data.errors.length;t++)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.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","metrics","metric","api","Auth","license","setting"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.metrics=r||{count:0,rows:[]},v.table="metrics",v.listOrder="",v.listOrderAsc=null,v.selectedMetrics=[],v.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},v.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Integration Report",value:"'report_integration'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Queue Report",value:"'report_queue'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(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:v.metrics.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMetrics=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.analyticMetric.get(v.query,f).$promise},v.createOrEditMetric=function(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:v.metrics.rows,license:v.license,setting:v.setting}})},v.deleteMetric=A,v.exportSelectedMetrics=function(){var e=angular.copy(v.selectedMetrics);return v.selectedMetrics=[],e},v.deleteSelectedMetrics=function(e){var t=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+v.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMetrics.forEach(function(e){A(e)}),v.selectedMetrics=[]})},v.deselectMetrics=function(){v.selectedMetrics=[]},v.selectAllMetrics=function(){v.selectedMetrics=v.metrics.rows};var h=!0,b=1;function f(e){v.metrics=e||{count:0,rows:[]}}function A(e){l.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(v.metrics.rows,{id:e.id}),v.metrics.count-=1,v.metrics.rows.length||v.getMetrics(),c.success({title:"Metric deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","metrics","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,t,a,n,i,o,s){var r=this;function l(){t.hide()}r.errors=[],r.report=angular.copy(n),r.report.name+="-copy",r.treeCustomData=s,r.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"]},r.treeCustomEvents={select_node:function(e,t){r.currentNode=t.node}},r.copyReport=function(){var n;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){n=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var t={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return t["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(t).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:n.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}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,l){var d=this;function c(){t.hide()}d.errors=[],d.joinTables=[],d.title="ANALYTICS.EDIT_REPORT",d.report=angular.copy(i),d.reports=a,d.newReport=!1,d.tables=l.getMap(),d.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"outer_join",value:"Outer Join"},{key:"cross_join",value:"Cross Join"}],d.report||(d.report={name:"",table:"report_agent",description:"",parent:r.id},d.title="ANALYTICS.NEW_REPORT",d.newReport=!0),d.addNewReport=function(){d.errors=[],d.report.joins=_.map(d.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),d.report.joins=JSON.stringify(d.report.joins),o[s].save(d.report).$promise.then(function(e){d.reports.unshift(e),n.success({title:"Report properly created",msg:d.report.name?d.report.name+" has been created!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.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()})})},d.saveReport=function(){d.errors=[],o[s].update({id:d.report.id},d.report).$promise.then(function(e){var t=_.find(d.reports,{id:e.id});t&&_.merge(t,e),n.success({title:"Report properly saved!",msg:d.report.name?d.report.name+" has been saved!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.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()})})},d.deleteReport=function(){d.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:d.report.id}).$promise.then(function(){_.remove(d.reports,{id:d.report.id}),n.success({title:"Report properly deleted!",msg:d.report.name?d.report.name+" has been deleted!":""}),c()}).catch(function(e){d.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},d.closeDialog=c,d.selectedTableChange=function(e){e&&(delete d.selectedItem,d.joinTables.push(e))},d.removeJoin=function(e){d.joinTables.splice(e,1)},d.getFields=function(t,n,e){var a=_.find(d.tables,{name:e});a&&a.api&&o[a.api].describe().$promise.then(function(e){t[n]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,a,o,e){var s=this;s.report={},s.conditions=e.getConditions,s.init=function(e){s.report=e,s.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}};for(var t=0;t<s.report.condition.group.rules.length;t++)if(s.report.condition.group.rules[t].field){var n=s.report.condition.group.rules[t].field.split(".");1===n.length&&(s.report.condition.group.rules[t].field=s.report.table+"."+s.report.condition.group.rules[t].field)}a.getColumns(s.report.table).then(function(e){s.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},s.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},s.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(t,1)},function(){console.log("CANCEL")})},s.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(t){var a={cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr"};return{getMap:function(){var n=[];return _.forIn(a,function(e,t){n.push({name:t,api:e})}),n},getColumns:function(e){return t[a[e]].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,c){var m=this;(m.errors=[],m.title="Edit Report Field",m.report=i,m.reportField=angular.copy(s),m.reportFields=o,m.metrics=r,m.columns=l,m.sqlUtil=d,m.newReportField=!1,m.reportField)?(m.reportField.type=m.reportField.custom?"custom":m.reportField.MetricId?"metric":"column",m.reportField.field&&!m.reportField.custom&&_.isNil(m.reportField.MetricId)&&1===m.reportField.field.split(".").length&&(m.reportField.field=m.report.table+"."+m.reportField.field)):(m.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},m.title="New Report Field",m.newReportField=!0);function u(){n.hide()}m.addNewReportField=function(){m.errors=[],m.reportField.custom="custom"===m.reportField.type,m.reportField.MetricId="metric"===m.reportField.type?m.reportField.MetricId:null,m.reportField.CustomReportId=m.report.id,c.analyticFieldReport.save(m.reportField).$promise.then(function(e){m.reportFields.push(e),a.success({title:"Report field properly created",msg:m.reportField.field?m.reportField.field+" has been created!":m.reportField.type+" has been created!"}),u()}).catch(function(e){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},m.saveReportField=function(){m.errors=[],m.reportField.custom="custom"===m.reportField.type,m.reportField.MetricId="metric"===m.reportField.type?m.reportField.MetricId:null,c.analyticFieldReport.update({id:m.reportField.id},m.reportField).$promise.then(function(e){var t=_.find(m.reportFields,{id:e.id});t&&_.merge(t,e),a.success({title:"Report Field properly saved!",msg:m.reportField.field?m.reportField.field+" has been saved!":""}),u()}).catch(function(e){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},m.deleteReportField=function(e){m.errors=[];var t=n.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){c.analyticFieldReport.delete({id:m.reportField.id}).$promise.then(function(){_.remove(m.reportFields,{id:m.reportField.id}),a.success({title:"Report Field properly deleted!",msg:m.reportField.field?m.reportField.field+" has been deleted!":""}),u()}).catch(function(e){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},m.closeDialog=u}e.$inject=["$scope","$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){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){s.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e){c.report=e,c.query.CustomReportId=c.report.id,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),s.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.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()})}),c.getReportFields()},c.deleteConfirm=function(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(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=s.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(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:c.report,reportField:t,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var t=_.find(c.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var t=_.find(c.metrics,{id:e});return t?t.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){s.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.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()})})}t.$watch("vm_rf.query.filter",function(e,t){m?n(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){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"]}})}(),function(){"use strict";function e(e,t,n,a){var i=this;function o(e){return _.isArray(e)}i.report=a||{},i.selectedTab=e.params.tab||0,i.gotoReports=function(){e.go("app.analytics.reports")},i.saveReport=function(){i.report.conditions=angular.toJson(i.report.condition),n.analyticCustomReport.update({id:i.report.id},_.omit(i.report,"joins")).$promise.then(function(){t.success({title:"Report updated!",msg:i.report.name?i.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()})})},i.previewReport=function(){i.columns=[],i.rows=[],i.error=!1,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:i.report.id}).$promise.then(function(e){return i.columns=e?e.rows:[],n.analyticCustomReport.preview({id:i.report.id}).$promise}).then(function(e){i.rows=e}).catch(function(e){console.log(e),i.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(i.error)})},i.queryReport=function(){return i.queryResult="Loading...",n.analyticCustomReport.query({id:i.report.id}).$promise.then(function(e){i.queryResult=e.sql}).catch(function(e){i.queryResult="",console.log(e),i.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(i.error)})},i.mapArray=function(e,t){if(o(e))return _.map(e,t).join(",");return""},i.isArray=o,i.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t}}e.$inject=["$state","toasty","api","report"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.errors=[],s.report=angular.copy(a),s.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t},s.closeDialog=function(){t.hide()},function(){s.columns=[],s.rows=[],s.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=s.report.id,s.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return s.columns=e?e.rows:[],i[o].preview({id:s.report.id}).$promise}).then(function(e){s.rows=e}).catch(function(e){console.log(e),s.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(s.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,n,a,i,o,s,t,r,l,d,c){var m=this;m.currentUser=c.getCurrentUser(),m.reports={count:0,rows:[]},m.selectedReports=[],m.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},m.apiName=null,m.currentPath="",m.customTree=!0,m.editstate=function(e,t){o.go("app.analytics.reports.edit",{id:e.id})},m.copydialog=function(e,t){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:m.apiName,treeCustomData:m.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},m.previewdialog=function(e,t){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:m.apiName}})},m.rundialog=function(e,t){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:m.apiName,currentPath:m.currentPath}})},m.downloadfile=function(a,e){var i;r.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var t={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return t["analyticCustomReport"===m.apiName?"CustomReportId":"DefaultReportId"]=a.id,r.analyticFieldReport.get(t).$promise}).then(function(e){for(var t=0;t<e.rows.length;t+=1)e.rows[t].MetricId&&(e.rows[t].field=i[e.rows[t].MetricId].metric,e.rows[t].custom=!0),delete e.rows[t].MetricId;var n=s.document.createElement("a");n.href="data:text/json;charset=utf-8,"+s.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),n.download=a.name+".json",n.target="_self",n.click(),d.success({title:"Report downloaded!",msg:a.name?a.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()})})},m.deleteconfirm=function(e,t){var n=i.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");i.show(n).then(function(){h(e)},function(){console.log("CANCEL")})},m.success=g,m.getReports=v,m.createOrEditReport=function(e,t){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:t,reports:m.reports.rows,apiName:m.apiName,currentNode:m.currentNode,setting:null}})},m.importReport=function(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var n=atob(e.target.result.split(",")[1]);n=angular.fromJson(n),r.analyticCustomReport.save({name:n.name,description:n.description,table:n.table,conditions:n.conditions,joins:n.joins,parent:m.currentNode.id}).$promise.then(function(t){m.reports.rows.unshift(t),d.success({title:"Report saved!",msg:t.name?t.name+" has been saved!":""});var e=_.map(n.fields,function(e){return _.extend({},e,{CustomReportId:t.id})});return r.analyticFieldReport.bulkCreate(e).$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"})},m.deleteReport=h,m.exportSelectedReports=function(){var e=angular.copy(m.selectedReports);return m.selectedReports=[],e},m.deleteSelectedReports=function(e){var t=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+m.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){m.selectedReports.forEach(function(e){h(e)}),m.selectedReports=[]})},m.deselectReports=function(){m.selectedReports=[]},m.selectAllReports=function(){m.selectedReports=m.reports.rows},m.treeDefaultData=l.rows[0]?angular.fromJson(l.rows[0].tree):[],m.treeCustomData=l.rows[1]?angular.fromJson(l.rows[1].tree):[],m.treeDefaultConfig=E(!1),m.treeCustomConfig=E(!0),m.treeDefaultEvents=y(!1),m.treeCustomEvents=y(!0);var u=!0,p=1;function g(e){m.reports=e||{count:0,rows:[]}}function v(){m.query.offset=(m.query.page-1)*m.query.limit,m.apiName&&(m.promise=r[m.apiName].get(m.query,g).$promise)}function h(e){m.apiName&&r[m.apiName].delete({id:e.id}).$promise.then(function(){_.remove(m.reports.rows,{id:e.id}),m.reports.count-=1,m.reports.rows.length||m.getReports(),d.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var t=0;t<e.data.errors.length;t++)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function b(e,t){m.treeDefaultInstance.jstree(!0).deselect_all(),m.treeDefaultInstance.jstree(!0).close_all(),m.currentNode=t.node,m.currentNode.custom=!0,m.currentPath=m.treeCustomInstance.jstree(!0).get_path(m.currentNode).join("/ "),m.apiName="analyticCustomReport",m.query.parent=t.node.id,v()}function f(e,t){m.treeCustomInstance.jstree(!0).deselect_all(),m.treeCustomInstance.jstree(!0).close_all(),m.currentNode=t.node,m.currentNode.custom=!1,m.currentPath=m.treeDefaultInstance.jstree(!0).get_path(m.currentNode).join("/ "),m.apiName="analyticDefaultReport",m.query.parent=t.node.id,v()}function A(e,t){var n=angular.toJson(m.treeCustomInstance.jstree(!0).get_json("#"));r.analyticTreeReport.update({id:2,tree:n}).$promise.then(function(){l.rows[1]&&(l.rows[1].tree=n),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 E(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(n){return{create:{label:t.instant("ANALYTICS.CREATE"),action:function(){n=m.treeCustomInstance.jstree(!0).create_node(n),m.treeCustomInstance.jstree(!0).edit(n)}},rename:{_disabled:"#"===n.parent,label:t.instant("ANALYTICS.RENAME"),action:function(){m.treeCustomInstance.jstree(!0).edit(n)}},remove:{_disabled:"#"===n.parent||"admin"!==m.currentUser.role&&0!==m.currentUser.crudPermissions,label:t.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(n.text?n.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t=m.treeCustomInstance.jstree(!0).get_parent(n);t=m.treeCustomInstance.jstree(!0).get_node(t),m.treeCustomInstance.jstree(!0).delete_node(n),e=[n.id].concat(n.children_d||[]),r.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){h(e)})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),m.treeCustomInstance.jstree(!0).select_node(t)})}}}}}}}function y(e){return e?{create_node:A,rename_node:A,move_node:A,delete_node:A,select_node:b}:{select_node:f}}e.$watch("vm.query.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=p),m.getReports())}),e.$watch("vm.search",function(e,t){m.treeDefaultInstance&&m.treeDefaultInstance.jstree(!0).search(e),m.treeCustomInstance&&m.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){n.hide()}l.errors=[],l.report=angular.copy(t),l.export={},l.runReport=function(t){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[o].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?n.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(s.body),targetEvent:t,skipHide:!0,locals:{apiName:o,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var t={fields:"field,alias",nolimit:!0};return t["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",t)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){s.offset=(r.query.page-1)*r.query.limit,s.limit=r.query.limit,r.promise=n[o].run(s,l).$promise},r.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CALLYSQUARE.EDIT_ODBC",u.odbc=angular.copy(r),u.odbcs=s,u.newOdbc=!1,u.odbc||(u.odbc={},u.title="CALLYSQUARE.NEW_ODBC",u.newOdbc=!0),u.addNewOdbc=function(){u.errors=[],l.squareOdbc.save(u.odbc).$promise.then(function(e){u.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:u.odbc.name?u.odbc.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.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.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOdbc=function(){u.errors=[],l.squareOdbc.update({id:u.odbc.id},u.odbc).$promise.then(function(e){var t=_.find(u.odbcs,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Odbc properly saved!",msg:u.odbc.name?u.odbc.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var t=0;t<e.data.errors.length;t++)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.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOdbc=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.squareOdbc.delete({id:u.odbc.id}).$promise.then(function(){_.remove(u.odbcs,{id:u.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(u.odbc.name||"odbc")+" has been deleted!"}),p(u.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var t=0;t<e.data.errors.length;t++)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.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","odbcs","odbc","api","Auth","license","setting"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.odbcs=r||{count:0,rows:[]},v.table="odbcs",v.listOrder="",v.listOrderAsc=null,v.selectedODBC=[],v.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.odbcs.rows,license:v.license,setting:null}})},v.testtestOdbc=function(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()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getODBC=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.squareOdbc.get(v.query,f).$promise},v.createOrEditOdbc=function(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:v.odbcs.rows,license:v.license,setting:v.setting}})},v.deleteOdbc=A,v.exportSelectedODBC=function(){var e=angular.copy(v.selectedODBC);return v.selectedODBC=[],e},v.deleteSelectedODBC=function(e){var t=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+v.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedODBC.forEach(function(e){A(e)}),v.selectedODBC=[]})},v.deselectODBC=function(){v.selectedODBC=[]},v.selectAllODBC=function(){v.selectedODBC=v.odbcs.rows};var h=!0,b=1;function f(e){v.odbcs=e||{count:0,rows:[]}}function A(e){l.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(v.odbcs.rows,{id:e.id}),v.odbcs.count-=1,v.odbcs.rows.length||v.getODBC(),c.success({title:"Odbc deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","odbcs","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(t,n,e,a,i,o,s,r,l){var d=this;function c(e){t.hide(e)}d.errors=[],d.title="CALLYSQUARE.EDIT_PROJECT",d.project=angular.copy(a),d.newWindow=!0,d.projects=e,d.newProject=!1,d.openFromEditor=o,d.project||(d.project={name:"",description:""},d.title="CALLYSQUARE.NEW_PROJECT",d.newProject=!0),d.addNewProject=function(){d.errors=[],i.squareProject.save(d.project).$promise.then(function(e){return i.user.addSquareProjects({id:l.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){d.projects.unshift(e),n.success({title:"Project properly created",msg:d.project.name?d.project.name+" has been created!":""}),c(e),d.openFromEditor&&(d.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){d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.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.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveProject=function(){d.errors=[],i.squareProject.update({id:d.project.id},d.project).$promise.then(function(e){var t=_.find(d.projects,{id:e.id});t&&_.merge(t,e),n.success({title:"Project properly saved!",msg:d.project.name?d.project.name+" has been saved!":""}),c(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.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.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteProject=function(){d.errors=[];var e=t.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);t.show(e).then(function(){i.squareProject.delete({id:d.project.id}).$promise.then(function(){return i.squareProject.getUsers({id:d.project.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(i.user.removeSquareProjects({id:l.getCurrentUser().id,ids:[d.project.id]}).$promise);return $q.all(t)}).then(function(){_.remove(d.projects,{id:d.project.id}),n.success({title:"Project properly deleted!",msg:d.project.name?d.project.name+" has been deleted!":""}),c(d.project)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},d.closeDialog=c}e.$inject=["$mdDialog","toasty","projects","project","api","openFromEditor","$window","$state","Auth"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,o,s,r,l,d,c,m,u,p,g,v,h,b,f,A,E,y,S,T,C,x,O){var w,I,R,N,D,L,k=this,M={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:["sms_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"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],lumenvoxasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"]},U={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},F={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function P(e,t,n,a){return _.map(e,function(e){return{value:e[t],option:e[n],group:a?e[a]:void 0}})}k.cellName=A.tagName,k.attributes=_.map(A.attributes,function(e){return{name:e.name,value:e.value,defaultValue:U[k.cellName]&&_.includes(U[k.cellName],e.name),required:M[k.cellName]&&_.includes(M[k.cellName],e.name),help:F[k.cellName]&&_.includes(F[k.cellName],e.name)}}),k.values={sip_id:P(r,"id","fullname","role"),trunk_name:P(l,"name","name"),trunk_id:P(l,"id","name"),queue_id:P(d,"id","name"),file_id:P(c,"id","name"),variable_id:P(m,"id","name"),odbc_id:P(u,"id","name"),project_id:P(p,"id","name"),context:P(g,"id","name"),interval_id:(w=v,I="id",R="name",N="IntervalId",D=_.filter(w,function(e){return null===e[N]}),L=[],_.forEach(D,function(t){L.push({value:t[I],option:t[R]});var e=_.filter(w,function(e){return e[N]===t.id});_.forEach(e,function(e){L.push({value:e[I],option:" - "+e[R]})})}),L),account_id:P(h,"id","name"),template_id:P(b,"id","name"),list_id:P(f,"id","name"),sms_account_id:P(T,"id","name"),pause_id:P(C,"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:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:n,ispeech_asr_language:a,ispeech_tts_language:o,google_tts_language:s,google_asr_language:i,aws_polly_region:S,aws_polly_voice:y,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:x,aws_lex_region:O},k.closeDialog=function(e){e&&E(k.attributes),t.hide()},k.getMap=P}e.$inject=["$mdDialog","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","awsLexRegion"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,t,n,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){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"}]}).factory("ispeechAsrLanguage",function(){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)"}]}).factory("ispeechTtsLanguage",function(){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"}]}).factory("googleTtsLanguage",function(){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"}]}).factory("googleAsrLanguage",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"am-ET",option:"Amharic (Ethiopia)"},{value:"hy-AM",option:"Armenian (Armenia)"},{value:"az-AZ",option:"Azerbaijani (Azerbaijan)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"bn-BD",option:"Bengali (Bangladesh)"},{value:"bn-IN",option:"Bengali (India)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"de-DE",option:"German (Germany)"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GH",option:"English (Ghana)"},{value:"en-GB",option:"English (United Kingdom)"},{value:"en-IN",option:"English (India)"},{value:"en-IE",option:"English (Ireland)"},{value:"en-KE",option:"English (Kenya)"},{value:"en-NZ",option:"English (New Zealand)"},{value:"en-NG",option:"English (Nigeria)"},{value:"en-PH",option:"English (Philippines)"},{value:"en-ZA",option:"English (South Africa)"},{value:"en-TZ",option:"English (Tanzania)"},{value:"en-US",option:"English (United States)"},{value:"es-AR",option:"Spanish (Argentina)"},{value:"es-BO",option:"Spanish (Bolivia)"},{value:"es-CL",option:"Spanish (Chile)"},{value:"es-CO",option:"Spanish (Colombia)"},{value:"es-CR",option:"Spanish (Costa Rica)"},{value:"es-EC",option:"Spanish (Ecuador)"},{value:"es-SV",option:"Spanish (El Salvador)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (United States)"},{value:"es-GT",option:"Spanish (Guatemala)"},{value:"es-HN",option:"Spanish (Honduras)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"es-NI",option:"Spanish (Nicaragua)"},{value:"es-PA",option:"Spanish (Panama)"},{value:"es-PY",option:"Spanish (Paraguay)"},{value:"es-PE",option:"Spanish (Peru)"},{value:"es-PR",option:"Spanish (Puerto Rico)"},{value:"es-DO",option:"Spanish (Dominican Republic)"},{value:"es-UY",option:"Spanish (Uruguay)"},{value:"es-VE",option:"Spanish (Venezuela)"},{value:"eu-ES",option:"Basque (Spain)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"gl-ES",option:"Galician (Spain)"},{value:"ka-GE",option:"Georgian (Georgia)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hr-HR",option:"Croatian (Croatia)"},{value:"zu-ZA",option:"Zulu (South Africa)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"it-IT",option:"Italian (Italy)"},{value:"jv-ID",option:"Javanese (Indonesia)"},{value:"kn-IN",option:"Kannada (India)"},{value:"km-KH",option:"Khmer (Cambodia)"},{value:"lo-LA",option:"Lao (Laos)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"lt-LT",option:"Lithuanian (Lithuania)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"mr-IN",option:"Marathi (India)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"ne-NP",option:"Nepali (Nepal)"},{value:"nb-NO",option:"Norwegian Bokmal (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"si-LK",option:"Sinhala (Srilanka)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"sl-SI",option:"Slovenian (Slovenia)"},{value:"su-ID",option:"Sundanese (Indonesia)"},{value:"sw-TZ",option:"Swahili (Tanzania)"},{value:"sw-KE",option:"Swahili (Kenya)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"ta-SG",option:"Tamil (Singapore)"},{value:"ta-LK",option:"Tamil (Sri Lanka)"},{value:"ta-MY",option:"Tamil (Malaysia)"},{value:"te-IN",option:"Telugu (India)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"ur-PK",option:"Urdu (Pakistan)"},{value:"ur-IN",option:"Urdu (India)"},{value:"el-GR",option:"Greek (Greece)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Serbia)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"he-IL",option:"Hebrew (Israel)"},{value:"ar-IL",option:"Arabic (Israel)"},{value:"ar-JO",option:"Arabic (Jordan)"},{value:"ar-AE",option:"Arabic (United Arab Emirates)"},{value:"ar-BH",option:"Arabic (Bahrain)"},{value:"ar-DZ",option:"Arabic (Algeria)"},{value:"ar-SA",option:"Arabic (Saudi Arabia)"},{value:"ar-IQ",option:"Arabic (Iraq)"},{value:"ar-KW",option:"Arabic (Kuwait)"},{value:"ar-MA",option:"Arabic (Morocco)"},{value:"ar-TN",option:"Arabic (Tunisia)"},{value:"ar-OM",option:"Arabic (Oman)"},{value:"ar-PS",option:"Arabic (State of Palestine)"},{value:"ar-QA",option:"Arabic (Qatar)"},{value:"ar-LB",option:"Arabic (Lebanon)"},{value:"ar-EG",option:"Arabic (Egypt)"},{value:"fa-IR",option:"Persian (Iran)"},{value:"hi-IN",option:"Hindi (India)"},{value:"th-TH",option:"Thai (Thailand)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"cmn-Hant-TW",option:"Chinese, Mandarin (Traditional, Taiwan)"},{value:"yue-Hant-HK",option:"Chinese, Cantonese (Traditional, Hong Kong)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"cmn-Hans-HK",option:"Chinese, Mandarin (Simplified, Hong Kong)"},{value:"cmn-Hans-CN",option:"Chinese, Mandarin (Simplified, China)"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]})}(),function(){"use strict";function e(t,e,n,a){var i=this;i.project={preproduction:n},i.closeDialog=function(e){e?(a(i.project.preproduction),t.hide(i.project.preproduction)):t.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(t,n){var a=this;function i(e){e?(n(e),t.hide(e)):t.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var t=new FileReader;t.onload=function(e){i(e.target.result)},t.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(t,n,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){t.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){n.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),t.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;o.projects=n,o.id="",o.newWindow=!0,o.closeDialog=function(e){o.errors=[],e?(t.hide(),o.newWindow?a.open("/callysquare/projects/"+o.id,"_blank"):i.go("app.callysquare.projects.edit",{id:o.id})):t.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=t,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:o.instant("CALLYSQUARE.ALL_USERS"),labelSelected:o.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,t){a.squareProject[t?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){n.success({title:"Project properly "+(t?"removed":"added"),msg:"Project has been "+(t?"removed":"added")+"!"}),t||l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(t,n,e,a,i,o,s){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){t.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){n.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),t.hide(e),r.newWindow?o.open("/callysquare/projects/"+e.id,"_blank"):s.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,n,a,i,o,t,s,r,l,d,c,m,u,p,g,v,h,b,f,A,E){var y=this;y.project=t||{},y.saveOrPublishProject=function(e,t){var n={preproduction:e};t&&(n.production=e);o.squareProject.update({id:y.project.id},n).$promise.then(function(e){i.success({title:"Project "+(t?"published":"saved")+"!",msg:y.project.name?y.project.name+" has been "+(t?"published":"saved")+"!":""}),y.project.preproduction=e.preproduction}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},y.$onInit=function(){new EditorUi(y,new Editor,document.getElementById("geEditor")).openString(y.project.preproduction,y.project.name,y.project)},y.openDialog=function(e,t){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(n.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:v.rows||[],smsAccounts:f.rows||[],pauses:A.rows||[],templates:h.rows||[],lists:b.rows||[],cell:e,saveCallback:t}})},y.newProject=function(e){a.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{project:e,projects:p.rows,openFromEditor:!0,setting:null}})},y.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{projects:p.rows||[]}})},y.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{project:y.project,currentXML:e}}).then(function(e){e&&p.rows.push(e)})},y.newVariable=function(e){a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{variable:e,variables:c.rows,license:null,setting:null}})},y.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:y.project}}).then(function(e){e&&_.merge(y.project,e)})},y.editXML=function(e,t){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:t}}).then(function(e){e&&(y.project.preproduction=e)})},y.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(y.project.preproduction=e)})},y.gotoProjects=function(){e.go("app.callysquare.projects")}}e.$inject=["$state","$document","$mdDialog","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","$window"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c){var m=this;m.currentUser=c.getCurrentUser(),m.projects=a||{count:0,rows:[]},m.table="projects",m.listOrder="",m.listOrderAsc=null,m.selectedProjects=[],m.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},m.editstate=function(e,t){n.go("app.callysquare.projects.edit",{id:e.id})},m.deleteconfirm=function(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(){v(e)},function(){console.log("CANCEL")})},m.success=g,m.getProjects=function(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=i.squareProject.get(m.query,g).$promise},m.createOrEditProject=function(e,t){s.show({controller:"CreateOrEditSquareProjectDialogController",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:m.projects.rows,openFromEditor:null,setting:null}})},m.deleteProject=v,m.exportSelectedProjects=function(){var e=angular.copy(m.selectedProjects);return m.selectedProjects=[],e},m.deleteSelectedProjects=function(e){var t=s.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+m.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).then(function(){m.selectedProjects.forEach(function(e){v(e)}),m.selectedProjects=[]})},m.deselectProjects=function(){m.selectedProjects=[]},m.selectAllProjects=function(){m.selectedProjects=m.projects.rows},m.managePermissions=function(e,t){s.show({controller:"ProjectspermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/permissionadd/permissionadd.html",parent:angular.element(r.body),targetEvent:t,clickOutsideToClose:!0,locals:{project:e,projects:m.projects?m.projects.rows:[]}})};var u=!0,p=1;function g(e){m.projects=e||{count:0,rows:[]}}function v(e){i.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(m.projects.rows,{id:e.id}),m.projects.count-=1,m.projects.rows.length||m.getProjects(),d.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var t=0;t<e.data.errors.length;t++)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){u?l(function(){u=!1}):(t||(p=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=p),m.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CALLYSQUARE.EDIT_SQUARERECORDING",u.squareRecording=angular.copy(r),u.squareRecordings=s,u.newSquareRecording=!1,u.squareRecording||(u.squareRecording={},u.title="CALLYSQUARE.NEW_SQUARERECORDING",u.newSquareRecording=!0),u.addNewSquareRecording=function(){u.errors=[],l.squareRecording.save(u.squareRecording).$promise.then(function(e){u.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:u.squareRecording.name?u.squareRecording.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.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.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSquareRecording=function(){u.errors=[],l.squareRecording.update({id:u.squareRecording.id},u.squareRecording).$promise.then(function(e){var t=_.find(u.squareRecordings,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SquareRecording properly saved!",msg:u.squareRecording.name?u.squareRecording.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var t=0;t<e.data.errors.length;t++)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.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSquareRecording=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.squareRecording.delete({id:u.squareRecording.id}).$promise.then(function(){_.remove(u.squareRecordings,{id:u.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(u.squareRecording.name||"squareRecording")+" has been deleted!"}),p(u.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var t=0;t<e.data.errors.length;t++)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.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","squareRecordings","squareRecording","api","Auth","license","setting"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.squareRecordings=r||{count:0,rows:[]},v.table="squareRecordings",v.listOrder="",v.listOrderAsc=null,v.selectedSquareRecordings=[],v.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio",sort:"-updatedAt",limit:10,page:1},v.downloadfile2=function(o,e){return l.squareRecording.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.uniqueid+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSquareRecordings=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.squareRecording.get(v.query,f).$promise},v.createOrEditSquareRecording=function(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:v.squareRecordings.rows,license:v.license,setting:v.setting}})},v.deleteSquareRecording=A,v.exportSelectedSquareRecordings=function(){var e=angular.copy(v.selectedSquareRecordings);return v.selectedSquareRecordings=[],e},v.deleteSelectedSquareRecordings=function(e){var t=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+v.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSquareRecordings.forEach(function(e){A(e)}),v.selectedSquareRecordings=[]})},v.deselectSquareRecordings=function(){v.selectedSquareRecordings=[]},v.selectAllSquareRecordings=function(){v.selectedSquareRecordings=v.squareRecordings.rows};var h=!0,b=1;function f(e){v.squareRecordings=e||{count:0,rows:[]}}function A(e){l.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(v.squareRecordings.rows,{id:e.id}),v.squareRecordings.count-=1,v.squareRecordings.rows.length||v.getSquareRecordings(),c.success({title:"SquareRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","squareRecordings","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.chatQueues=r||{count:0,rows:[]},v.table="chatQueues",v.listOrder="",v.listOrderAsc=null,v.selectedChatQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:v.chatQueues?v.chatQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:v.chatQueues?v.chatQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.chat.realtime.queues",{})},v.success=f,v.getChatQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.chatQueue.get(v.query,f).$promise},v.createOrEditChatQueue=function(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:v.chatQueues.rows,license:v.license,setting:v.setting}})},v.deleteChatQueue=A,v.exportSelectedChatQueues=function(){var e=angular.copy(v.selectedChatQueues);return v.selectedChatQueues=[],e},v.deleteSelectedChatQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+v.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatQueues.forEach(function(e){A(e)}),v.selectedChatQueues=[]})},v.deselectChatQueues=function(){v.selectedChatQueues=[]},v.selectAllChatQueues=function(){v.selectedChatQueues=v.chatQueues.rows};var h=!0,b=1;function f(e){v.chatQueues=e||{count:0,rows:[]}}function A(e){l.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.chatQueues.rows,{id:e.id}),v.chatQueues.count-=1,v.chatQueues.rows.length||v.getChatQueues(),c.success({title:"ChatQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATQUEUE",u.chatQueue=angular.copy(r),u.chatQueues=s,u.newChatQueue=!1,u.chatQueue||(u.chatQueue={strategy:"beepall",timeout:10},u.title="CHAT.NEW_CHATQUEUE",u.newChatQueue=!0),u.addNewChatQueue=function(){u.errors=[],l.chatQueue.save(u.chatQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"chat",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:u.chatQueue.name?u.chatQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.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.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatQueue=function(){u.errors=[],l.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(e){var t=_.find(u.chatQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatQueue properly saved!",msg:u.chatQueue.name?u.chatQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.chatQueue.delete({id:u.chatQueue.id}).$promise.then(function(){return l.chatQueue.getAgents({id:u.chatQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.chatQueue.id],channel:"chat",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.chatQueues,{id:u.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(u.chatQueue.name||"chatQueue")+" has been deleted!"}),p(u.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chatQueues","chatQueue","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.chatQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.chatQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CHAT.ALL_AGENTS"),labelSelected:s.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,t){a.chatQueue[t?"removeAgents":"addAgents"]({id:l.chatQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"ChatQueue properly "+(t?"removed":"added"),msg:"ChatQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.chatQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.chatQueue[t?"removeTeams":"addTeams"]({id:o.chatQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.chatQueue.getTeams({id:o.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.chatQueue=d||e.params.chatQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:c.chatQueues?c.chatQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:c.chatQueues?c.chatQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoChatQueues=function(){e.go("app.chat.chatQueues")},c.saveChatQueue=function(){s.chatQueue.update({id:c.chatQueue.id},c.chatQueue).$promise.then(function(){r.success({title:"ChatQueue updated!",msg:c.chatQueue.name?c.chatQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","chatQueue"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.chatWebsites=r||{count:0,rows:[]},v.table="chatWebsites",v.listOrder="",v.listOrderAsc=null,v.selectedChatWebsites=[],v.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e})},v.interactionsgoto=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,tab:9})},v.offlinemessagesgoto=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},v.agentadddialog=function(e,t){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:v.chatWebsites?v.chatWebsites.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getChatWebsites=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.chatWebsite.get(v.query,f).$promise},v.createOrEditChatWebsite=function(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:v.chatWebsites.rows,license:v.license,setting:v.setting}})},v.deleteChatWebsite=A,v.exportSelectedChatWebsites=function(){var e=angular.copy(v.selectedChatWebsites);return v.selectedChatWebsites=[],e},v.deleteSelectedChatWebsites=function(e){var t=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+v.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatWebsites.forEach(function(e){A(e)}),v.selectedChatWebsites=[]})},v.deselectChatWebsites=function(){v.selectedChatWebsites=[]},v.selectAllChatWebsites=function(){v.selectedChatWebsites=v.chatWebsites.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.chatWebsites=e||{count:0,rows:[]}}function A(e){l.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(v.chatWebsites.rows,{id:e.id}),v.chatWebsites.count-=1,v.chatWebsites.rows.length||v.getChatWebsites(),c.success({title:"ChatWebsite deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatWebsites","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATWEBSITE",u.chatWebsite=angular.copy(r),u.chatWebsites=s,u.newChatWebsite=!1,u.chatWebsite||(u.chatWebsite={remote:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="CHAT.NEW_CHATWEBSITE",u.newChatWebsite=!0),t.params.id&&(u.chatWebsite.ChatWebsiteId=t.params.id),u.addNewChatWebsite=function(){u.errors=[],l.chatWebsite.save(u.chatWebsite).$promise.then(function(e){var t="add"+_.upperFirst("chatWebsite")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.chatWebsites.unshift(e.toJSON()),i.success({title:"ChatWebsite properly created",msg:u.chatWebsite.name?u.chatWebsite.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.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.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatWebsite=function(){u.errors=[],l.chatWebsite.update({id:u.chatWebsite.id},u.chatWebsite).$promise.then(function(e){var t=_.find(u.chatWebsites,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"ChatWebsite properly saved!",msg:u.chatWebsite.name?u.chatWebsite.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteChatWebsite=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.chatWebsite.delete({id:u.chatWebsite.id}).$promise.then(function(){return l.chatWebsite.getAgents({id:u.chatWebsite.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("chatWebsite")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.chatWebsite.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.chatWebsites,{id:u.chatWebsite.id}),i.success({title:"ChatWebsite properly deleted!",msg:(u.chatWebsite.name||"chatWebsite")+" has been deleted!"}),p(u.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.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","$q","toasty","chatWebsites","chatWebsite","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.chatWebsiteApps.rows.length){var n=r.chatWebsiteApps.rows[t]?r.chatWebsiteApps.rows[t]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:n,chatWebsite:r.chatWebsite}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[t]=e:r.chatWebsiteApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.chatWebsiteApps.rows.length;n++,0){var a=r.chatWebsiteApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(t,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",maxlength:255,required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.chatWebsite=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=s.chatWebsite.getApplications(r.query,n).$promise},r.editChatWebsiteApp=t,r.editInterval=function(e,t){if(r.chatWebsiteApps.rows.length){var n=r.chatWebsiteApps.rows[t]?r.chatWebsiteApps.rows[t]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.chatWebsite[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.chatWebsite=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CHAT.ALL_AGENTS"),labelSelected:s.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,t){a.chatWebsite[t?"removeAgents":"addAgents"]({id:l.chatWebsite.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"ChatWebsite properly "+(t?"removed":"added"),msg:"ChatWebsite has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatWebsite.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.amazonlex=angular.copy(n),o.amazonlex.appdata)switch(o.amazonlex.appType?o.amazonlex.appType.toLowerCase():o.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.amazonlex.appdata.split(",");o.amazonlex.key=s[0],o.amazonlex.language=s[1],o.amazonlex.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.amazonlex.appdata.split(",");o.amazonlex.accesskeyid=s[0],o.amazonlex.secretaccesskey=s[1],o.amazonlex.lexregion=s[2],o.amazonlex.botname=s[3],o.amazonlex.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.amazonlex.appdata.split(",");o.amazonlex.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.amazonlex.text=s.slice(1,s.length).join(",");break;case"message":o.amazonlex.text=o.amazonlex.appdata;break;case"set":o.amazonlex.name=o.amazonlex.appdata.split("=")[0],o.amazonlex.value=o.amazonlex.appdata.split("=")[1];break;case"agi":o.amazonlex.project=o.amazonlex.appdata;break;default:var r=o.amazonlex.appdata.split(",");o.amazonlex.accesskeyid=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.amazonlex.secretaccesskey=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.amazonlex.lexregion=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.amazonlex.botname=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),o.amazonlex.welcomemessage=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10)}else o.amazonlex.lexregion="us-east-1";function l(e){t.hide(e)}o.amazonlex.type&&"outbound"===o.amazonlex.type.toLowerCase()&&"outbounddial"===o.amazonlex.appType.toLowerCase()&&(o.amazonlex.prefix=o.amazonlex.phone?o.amazonlex.phone.split("$")[0]:void 0,o.amazonlex.callerId=o.amazonlex.callerID?"CALLERID(all)="+o.amazonlex.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.amazonlex.type&&"outbound"===o.amazonlex.type.toLowerCase()&&"outboundDial"===o.amazonlex.appType&&(o.amazonlex.phone=a.cutdigits?(o.amazonlex.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.amazonlex.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.amazonlex.options+="U(xcally-mixmonitor-context)"):o.amazonlex.options=o.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(o.amazonlex.appType&&"custom"===o.amazonlex.appType);else switch((o.amazonlex.app||o.amazonlex.appType).toLowerCase()){case"set":o.amazonlex.appdata=o.amazonlex.name+"="+o.amazonlex.value;break;case"custom":break;default:e[0]=o.amazonlex.accesskeyid,e[1]=o.amazonlex.secretaccesskey,e[2]=o.amazonlex.lexregion,e[3]=o.amazonlex.botname,e[4]=o.amazonlex.welcomemessage,o.amazonlex.appdata=e.join(",")}l(o.amazonlex)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.dialogflow=angular.copy(n),o.dialogflow.appdata)switch(o.dialogflow.appType?o.dialogflow.appType.toLowerCase():o.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.dialogflow.appdata.split(",");o.dialogflow.key=s[0],o.dialogflow.language=s[1],o.dialogflow.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.dialogflow.appdata.split(",");o.dialogflow.accesskeyid=s[0],o.dialogflow.secretaccesskey=s[1],o.dialogflow.lexregion=s[2],o.dialogflow.botname=s[3],o.dialogflow.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.dialogflow.appdata.split(",");o.dialogflow.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.dialogflow.text=s.slice(1,s.length).join(",");break;case"message":o.dialogflow.text=o.dialogflow.appdata;break;case"set":o.dialogflow.name=o.dialogflow.appdata.split("=")[0],o.dialogflow.value=o.dialogflow.appdata.split("=")[1];break;case"agi":o.dialogflow.project=o.dialogflow.appdata;break;default:var r=o.dialogflow.appdata.split(",");o.dialogflow.key=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.dialogflow.language=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.dialogflow.welcomemessage=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}else o.dialogflow.language="en";function l(e){t.hide(e)}o.dialogflow.type&&"outbound"===o.dialogflow.type.toLowerCase()&&"outbounddial"===o.dialogflow.appType.toLowerCase()&&(o.dialogflow.prefix=o.dialogflow.phone?o.dialogflow.phone.split("$")[0]:void 0,o.dialogflow.callerId=o.dialogflow.callerID?"CALLERID(all)="+o.dialogflow.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.dialogflow.type&&"outbound"===o.dialogflow.type.toLowerCase()&&"outboundDial"===o.dialogflow.appType&&(o.dialogflow.phone=a.cutdigits?(o.dialogflow.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.dialogflow.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.dialogflow.options+="U(xcally-mixmonitor-context)"):o.dialogflow.options=o.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(o.dialogflow.appType&&"custom"===o.dialogflow.appType);else switch((o.dialogflow.app||o.dialogflow.appType).toLowerCase()){case"set":o.dialogflow.appdata=o.dialogflow.name+"="+o.dialogflow.value;break;case"custom":break;default:e[0]=o.dialogflow.key,e[1]=o.dialogflow.language,e[2]=o.dialogflow.welcomemessage,o.dialogflow.appdata=e.join(",")}l(o.dialogflow)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("chat")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteChatCannedAnswers={count:0,rows:[]},c.selectedChatWebsiteChatCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.query.ChatWebsiteId=c.chatWebsite.id,c.getChatWebsiteChatCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteChatCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getAnswers(c.query,p).$promise},c.createOrEditChatWebsiteChatCannedAnswer=function(e,t){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatCannedAnswer:t,chatCannedAnswers:c.chatWebsiteChatCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(c.selectedChatWebsiteChatCannedAnswers);return c.selectedChatWebsiteChatCannedAnswers=[],e},c.deleteChatWebsiteChatCannedAnswer=g,c.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+c.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),c.selectedChatWebsiteChatCannedAnswers=[]})};var m=!0,u=1;function p(e){c.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteChatCannedAnswers.rows,{id:e.id}),c.chatWebsiteChatCannedAnswers.count-=1,c.chatWebsiteChatCannedAnswers.rows.length||c.getChatWebsiteChatCannedAnswers(),r.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteChatCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATCANNEDANSWER",u.chatCannedAnswer=angular.copy(r),u.chatCannedAnswers=s,u.newChatCannedAnswer=!1,u.chatCannedAnswer||(u.chatCannedAnswer={},u.title="CHAT.NEW_CHATCANNEDANSWER",u.newChatCannedAnswer=!0),t.params.id&&(u.chatCannedAnswer.ChatWebsiteId=t.params.id),u.addNewChatCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.chatCannedAnswer).$promise.then(function(e){u.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:u.chatCannedAnswer.name?u.chatCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.chatCannedAnswer.id},u.chatCannedAnswer).$promise.then(function(e){var t=_.find(u.chatCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatCannedAnswer properly saved!",msg:u.chatCannedAnswer.name?u.chatCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.chatCannedAnswer.id}).$promise.then(function(){_.remove(u.chatCannedAnswers,{id:u.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(u.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),p(u.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteChatDispositions={count:0,rows:[]},c.selectedChatWebsiteChatDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.query.ChatWebsiteId=c.chatWebsite.id,c.getChatWebsiteChatDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the chatDisposition?").htmlContent("<b>"+(e.name||"chatDisposition")+"</b> will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteChatDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getDispositions(c.query,p).$promise},c.createOrEditChatWebsiteChatDisposition=function(e,t){o.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatDisposition:t,chatDispositions:c.chatWebsiteChatDispositions.rows,license:null,setting:null}})},c.exportSelectedChatWebsiteChatDispositions=function(){var e=angular.copy(c.selectedChatWebsiteChatDispositions);return c.selectedChatWebsiteChatDispositions=[],e},c.deleteChatWebsiteChatDisposition=g,c.deleteSelectedChatWebsiteChatDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent("<b>"+c.selectedChatWebsiteChatDispositions.length+" selected</b> will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteChatDispositions.forEach(function(e){g(e)}),c.selectedChatWebsiteChatDispositions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteChatDispositions.rows,{id:e.id}),c.chatWebsiteChatDispositions.count-=1,c.chatWebsiteChatDispositions.rows.length||c.getChatWebsiteChatDispositions(),r.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteChatDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATDISPOSITION",u.chatDisposition=angular.copy(r),u.chatDispositions=s,u.newChatDisposition=!1,u.chatDisposition||(u.chatDisposition={},u.title="CHAT.NEW_CHATDISPOSITION",u.newChatDisposition=!0),t.params.id&&(u.chatDisposition.ChatWebsiteId=t.params.id),u.addNewChatDisposition=function(){u.errors=[],l.disposition.save(u.chatDisposition).$promise.then(function(e){u.chatDispositions.unshift(e.toJSON()),o.success({title:"ChatDisposition properly created",msg:u.chatDisposition.name?u.chatDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatDisposition=function(){u.errors=[],l.disposition.update({id:u.chatDisposition.id},u.chatDisposition).$promise.then(function(e){var t=_.find(u.chatDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatDisposition properly saved!",msg:u.chatDisposition.name?u.chatDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatDisposition will be deleted.").ariaLabel("Delete ChatDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.chatDisposition.id}).$promise.then(function(){_.remove(u.chatDispositions,{id:u.chatDisposition.id}),o.success({title:"ChatDisposition properly deleted!",msg:(u.chatDisposition.name||"chatDisposition")+" has been deleted!"}),p(u.chatDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chatDispositions","chatDisposition","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatDispositionDialogController",e)}(),function(){"use strict";function e(n,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var t=0;t<e.rows.length;t++)i.customFields.push({key:"cf_"+e.rows[t].id,value:e.rows[t].alias});return a.cmContact.describe().$promise}).then(function(e){for(var t=_.keys(e),n=0;n<t.length;n++)_.includes(i.uselessFields,t[n])||_.startsWith(t[n],"cf_")||i.fields.unshift({key:t[n],value:t[n]});return a.variable.get().$promise}).then(function(e){i.variables=e.rows}).catch(function(e){console.error(e)})},i.up=function(e,t){if(0!==t){var n=i.chatWebsite.offlineForm.items[t-1];i.chatWebsite.offlineForm.items[t]=n,i.chatWebsite.offlineForm.items[t-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===t?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===t-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,t){if(t!==i.chatWebsite.offlineForm.items.length-1){var n=i.chatWebsite.offlineForm.items[t+1];i.chatWebsite.offlineForm.items[t]=n,i.chatWebsite.offlineForm.items[t+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===t?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===t+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var t=n.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");n.show(t).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})}}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(n,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var t=0;t<e.rows.length;t++)i.customFields.push({key:"cf_"+e.rows[t].id,value:e.rows[t].alias});return a.cmContact.describe().$promise}).then(function(e){for(var t=_.keys(e),n=0;n<t.length;n++)_.includes(i.uselessFields,t[n])||_.startsWith(t[n],"cf_")||i.fields.unshift({key:t[n],value:t[n]});return a.variable.get().$promise}).then(function(e){i.variables=e.rows}).catch(function(e){console.error(e)})},i.up=function(e,t){if(0!==t){var n=i.chatWebsite.onlineForm.items[t-1];i.chatWebsite.onlineForm.items[t]=n,i.chatWebsite.onlineForm.items[t-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===t?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===t-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,t){if(t!==i.chatWebsite.onlineForm.items.length-1){var n=i.chatWebsite.onlineForm.items[t+1];i.chatWebsite.onlineForm.items[t]=n,i.chatWebsite.onlineForm.items[t+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===t?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===t+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var t=n.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");n.show(t).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})}}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteInteractions={count:0,rows:[]},c.selectedChatWebsiteInteractions=[],c.query={fields:"createdAt,updatedAt,UserId,ContactId,ChatWebsiteId,id,closedAt,Contact.firstName,Owner.name,disposition,ratingValue,ratingType,note,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.getChatWebsiteInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.chatInteractionDownload=function(o,e,t){return l.chatInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="chat-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getChatWebsiteInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getInteractions(c.query,p).$promise},c.createOrEditChatWebsiteInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,interaction:t,interactions:c.chatWebsiteInteractions.rows,license:null,setting:null}})},c.spychatInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"chat",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(c.selectedChatWebsiteInteractions);return c.selectedChatWebsiteInteractions=[],e},c.deleteChatWebsiteInteraction=g,c.deleteSelectedChatWebsiteInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),c.selectedChatWebsiteInteractions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteInteractions=e||{count:0,rows:[]}}function g(e){l.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteInteractions.rows,{id:e.id}),c.chatWebsiteInteractions.count-=1,c.chatWebsiteInteractions.rows.length||c.getChatWebsiteInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteOfflineMessages={count:0,rows:[]},c.selectedChatWebsiteOfflineMessages=[],c.query={fields:"createdAt,updatedAt,id,ContactId",sort:"-createdAt",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.getChatWebsiteOfflineMessages()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteOfflineMessages=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getOfflineMessages(c.query,p).$promise},c.createOrEditChatWebsiteOfflineMessage=function(e,t){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,offlineMessage:t,offlineMessages:c.chatWebsiteOfflineMessages.rows,license:null,setting:null}})},c.showOfflineMessageChatWebsiteOfflineMessage=function(e,n){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,t){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:n.id})}]}})},c.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(c.selectedChatWebsiteOfflineMessages);return c.selectedChatWebsiteOfflineMessages=[],e},c.deleteChatWebsiteOfflineMessage=g,c.deleteSelectedChatWebsiteOfflineMessages=function(e){var t=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+c.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),c.selectedChatWebsiteOfflineMessages=[]})},l.cmContact.get({fields:"id,firstName,lastName",nolimit:"true"}).$promise.then(function(e){c.contacts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontacts",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function g(e){l.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteOfflineMessages.rows,{id:e.id}),c.chatWebsiteOfflineMessages.count-=1,c.chatWebsiteOfflineMessages.rows.length||c.getChatWebsiteOfflineMessages(),r.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteOfflineMessages())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(t,e){this.title="CHAT.OFFLINE_MESSAGE",this.message=e,this.closeDialog=function(e){t.hide(e)}}e.$inject=["$mdDialog","message"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteProactiveActions={count:0,rows:[]},c.selectedChatWebsiteProactiveActions=[],c.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},c.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.query.ChatWebsiteId=c.chatWebsite.id,c.getChatWebsiteProactiveActions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteProactiveActions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getProactiveActions(c.query,p).$promise},c.createOrEditChatWebsiteChatProactiveAction=function(e,t){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatProactiveAction:t,proactive:c.chatWebsiteProactiveActions.rows,license:null,setting:null}})},c.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(c.selectedChatWebsiteProactiveActions);return c.selectedChatWebsiteProactiveActions=[],e},c.deleteChatWebsiteChatProactiveAction=g,c.deleteSelectedChatWebsiteProactiveActions=function(e){var t=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+c.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),c.selectedChatWebsiteProactiveActions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function g(e){l.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteProactiveActions.rows,{id:e.id}),c.chatWebsiteProactiveActions.count-=1,c.chatWebsiteProactiveActions.rows.length||c.getChatWebsiteProactiveActions(),r.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteProactiveActions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATPROACTIVEACTION",u.chatProactiveAction=angular.copy(r),u.proactive=s,u.newChatProactiveAction=!1,u.chatProactiveAction||(u.chatProactiveAction={type:"mouseOver"},u.title="CHAT.NEW_CHATPROACTIVEACTION",u.newChatProactiveAction=!0),t.params.id&&(u.chatProactiveAction.ChatWebsiteId=t.params.id),u.addNewChatProactiveAction=function(){u.errors=[],l.chatProactiveAction.save(u.chatProactiveAction).$promise.then(function(e){u.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:u.chatProactiveAction.name?u.chatProactiveAction.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.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.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatProactiveAction=function(){u.errors=[],l.chatProactiveAction.update({id:u.chatProactiveAction.id},u.chatProactiveAction).$promise.then(function(e){var t=_.find(u.proactive,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatProactiveAction properly saved!",msg:u.chatProactiveAction.name?u.chatProactiveAction.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var t=0;t<e.data.errors.length;t++)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.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatProactiveAction=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.chatProactiveAction.delete({id:u.chatProactiveAction.id}).$promise.then(function(){_.remove(u.proactive,{id:u.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(u.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),p(u.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var t=0;t<e.data.errors.length;t++)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.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","proactive","chatProactiveAction","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var t=this;t.chatWebsite={},t.init=function(e){t.chatWebsite=e,t.start="\n\x3c!-- START Motion Chat Script --\x3e",t.script='\n <script src="'+t.chatWebsite.remote+"/api/chat/websites/"+t.chatWebsite.id+"/snippet?token="+t.chatWebsite.token+'"><\/script>',t.end="\n\x3c!-- START Motion Chat Script --\x3e"},t.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){t.script='\n <script src="'+t.chatWebsite.remote+"/api/chat/websites/"+t.chatWebsite.id+"/snippet?token="+t.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.chatWebsite=d||e.params.chatWebsite||{},c.selectedTab=e.params.tab||0,c.agentadddialog=function(e,t){n.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:c.chatWebsites?c.chatWebsites.rows:[],realtime:!1}})},c.alert=r.info,c.gotoChatWebsites=function(){e.go("app.chat.chatWebsites")},c.saveChatWebsite=function(){s.chatWebsite.update({id:c.chatWebsite.id},c.chatWebsite).$promise.then(function(){r.success({title:"ChatWebsite updated!",msg:c.chatWebsite.name?c.chatWebsite.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.templates=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","chatWebsite"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"chat",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.chatQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].ChatQueueId].paused++,u.queues[e[t].rows[n].ChatQueueId].loggedInDb++,u.queues[e[t].rows[n].ChatQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].ChatQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"chat",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.chatQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditChatQueue=function(e,t){a.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.chatQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.ChatQueueId]&&u.queues[e.ChatQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.ChatQueueId]&&u.queues[e.ChatQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.ChatQueueId]&&(u.queues[e.ChatQueueId].loggedInDb+=1,u.queues[e.ChatQueueId].agents[e.UserId]=e.ChatQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.ChatQueueId]&&0<u.queues[e.ChatQueueId].loggedInDb&&(u.queues[e.ChatQueueId].loggedInDb-=1,delete u.queues[e.ChatQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("chat_queue:save",u.onSave),d.on("userChatQueue:save",u.onSaveMember),d.on("userChatQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("chat_queue:save"),d.removeAllListeners("userChatQueue:remove"),d.removeAllListeners("userChatQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,n.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.chat.realtime.agents");break;case 1:n.go("app.chat.realtime.queues");break;default:n.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.companies=r||{count:0,rows:[]},v.table="companies",v.listOrder="",v.listOrderAsc=null,v.selectedCompanies=[],v.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},v.editstate=function(e,t){n.go("app.contactmanager.companies.edit",{id:e.id,company:e})},v.gotocontactsgoto=function(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getCompanies=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cmCompany.get(v.query,f).$promise},v.createOrEditCompany=function(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:v.companies.rows,license:v.license,setting:v.setting}})},v.deleteCompany=A,v.exportSelectedCompanies=function(){var e=angular.copy(v.selectedCompanies);return v.selectedCompanies=[],e},v.deleteSelectedCompanies=function(e){var t=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+v.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedCompanies.forEach(function(e){A(e)}),v.selectedCompanies=[]})},v.deselectCompanies=function(){v.selectedCompanies=[]},v.selectAllCompanies=function(){v.selectedCompanies=v.companies.rows};var h=!0,b=1;function f(e){v.companies=e||{count:0,rows:[]}}function A(e){l.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(v.companies.rows,{id:e.id}),v.companies.count-=1,v.companies.rows.length||v.getCompanies(),c.success({title:"Company deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","companies","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_COMPANY",u.company=angular.copy(r),u.companies=s,u.newCompany=!1,u.company||(u.company={},u.title="CONTACTMANAGER.NEW_COMPANY",u.newCompany=!0),u.addNewCompany=function(){u.errors=[],l.cmCompany.save(u.company).$promise.then(function(e){u.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:u.company.name?u.company.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.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.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCompany=function(){u.errors=[],l.cmCompany.update({id:u.company.id},u.company).$promise.then(function(e){var t=_.find(u.companies,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Company properly saved!",msg:u.company.name?u.company.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCompany=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmCompany.delete({id:u.company.id}).$promise.then(function(){_.remove(u.companies,{id:u.company.id}),o.success({title:"Company properly deleted!",msg:(u.company.name||"company")+" has been deleted!"}),p(u.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","companies","company","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.company=d||n.params.company||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})},c.alert=r.info,c.gotoCompanies=function(){n.go("app.contactmanager.companies")},c.saveCompany=function(){s.cmCompany.update({id:c.company.id},c.company).$promise.then(function(){r.success({title:"Company updated!",msg:c.company.name?c.company.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","company"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(t,i,n,a,o,s,e,r,l,d,c,m,u,p,g,v){var h=this,b=(h.currentUser=p.getCurrentUser(),60),f=1024*b*1024;h.license=v,h.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:f,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.contacts=e||{count:0,rows:[]},h.options={hidden:!1,hover:!1,isOpen:!1},h.table="cm_contacts",h.selectedContacts=[],h.lists=r||{rows:[],count:0},h.companies=d||{rows:[],count:0},h.tags=m||{rows:[],count:0},h.listsMap=l,h.companiesMap=c,h.selectedTags=[],h.selectedList=null,h.selectedCompany=null,h.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},g),h.editdialog=function(e,t){a.go("app.contactmanager.contacts.edit",{id:e.id})},h.deleteconfirm=function(e,t){var n=o.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");o.show(n).then(function(){S(e)})},h.success=y,h.getContacts=function(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=s.cmContact.get(h.query,y).$promise},h.mergeContact=function(e,t){o.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:h.contacts.rows}})},h.duplicateContact=function(e,t){o.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:h.contacts.rows}})},h.createOrEditContact=function(e,t){t&&t.dateOfBirth&&(t.dateOfBirth=new Date(t.dateOfBirth));o.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:h.query.ListId||a.params.ListId,CompanyId:h.query.CompanyId||a.params.CompanyId,contact:t,contacts:h.contacts.rows,setting:null},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"})}]}})},h.deleteContact=S,h.exportSelectedContacts=function(){var e=angular.copy(h.selectedContacts);return h.selectedContacts=[],e},h.deleteSelectedContacts=function(e){var t=o.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+h.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){h.selectedContacts.forEach(function(e){S(e)}),h.selectedContacts=[]})},h.deselectContacts=function(){h.selectedContacts=[]},h.selectAllContacts=function(){h.selectedContacts=h.contacts.rows},h.createTag=function(e){var t=o.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return o.show(t).then(function(e){if(e)return s.tag.save({name:e});u.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(h.tags.rows.push(e),u.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},h.createList=function(e){var t=o.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return o.show(t).then(function(e){if(e)return s.cmList.save({name:e});u.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(h.lists.rows.push(e),u.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},h.createCompany=function(e){var t=o.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return o.show(t).then(function(e){if(e)return s.cmCompany.save({name:e});u.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(h.companies.rows.push(e),u.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},h.importContacts=function(e,t,n){var a=JSON.parse(t);o.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:r,companies:d,file:a.file,fields:a.fields,license:h.license}}).then(function(){h.getContacts()}).catch(function(e){console.error()})},h.hasPermission=function(){return p.hasPermission(303)||p.hasRole("admin")},h.fileAdded=function(e){var t=["csv"];if(!_.includes(t,e.getExtension()))return u.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(e.size>f)return u.error({title:"File too big",msg:"The max allowed size is "+b+"MB"}),!1;return!0},a.params.ListId&&(h.selectedList=a.params.ListId),a.params.CompanyId&&(h.selectedCompany=a.params.CompanyId),t.$watch("vm.options.isOpen",function(e){e?n(function(){t.tooltipVisible=h.options.isOpen},600):t.tooltipVisible=h.options.isOpen});var A=!0,E=1;function y(e){h.contacts=e||{count:0,rows:[]}}function S(e){s.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(h.contacts.rows,{id:e.id}),h.contacts.count-=1,h.contacts.rows.length||h.getContacts(),u.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var t=0;t<e.data.errors.length;t++)u.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm.query.filter",function(e,t){A?n(function(){A=!1}):(t||(E=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=E),h.getContacts())},!0),t.$watch("vm.selectedList",function(e,t){e!==t&&(h.query.ListId=h.selectedList||void 0,h.getContacts())}),t.$watch("vm.selectedCompany",function(e,t){e!==t&&(h.query.CompanyId=h.selectedCompany||void 0,h.getContacts())}),t.$watch("vm.selectedTags",function(e,t){(e.length||t.length)&&h.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$mdDialog","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","$stateParams","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(n,a,e,t,i,o,s,r,l){var d=this;function c(){n.hide()}d.errors=[],d.title="CONTACTMANAGER.EDIT_CONTACT",d.contact=angular.copy(o),d.contacts=e||{rows:[],count:0},d.lists=t||{rows:[],count:0},d.companies=i||{rows:[],count:0},d.customFields={rows:[],count:0},d.newContact=!1,d.contact?(delete d.contact.List,d.ListId=d.contact.ListId||void 0):(d.contact={ListId:s?parseInt(s,10):void 0,CompanyId:r?parseInt(r,10):void 0},d.title="CONTACTMANAGER.NEW_CONTACT",d.newContact=!0),d.addNewContact=function(){d.errors=[],l.cmContact.save(d.contact).$promise.then(function(e){d.contacts.unshift(e),a.success({title:"Contact properly created",msg:d.contact.name?d.contact.name+" has been created!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveContact=function(){d.errors=[],l.cmContact.update({id:d.contact.id},d.contact).$promise.then(function(e){var t=_.find(d.contacts,{id:e.id});t&&_.merge(t,e),a.success({title:"Contact properly saved!",msg:d.contact.name?d.contact.name+" has been saved!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var t=0;t<e.data.errors.length;t++)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteContact=function(e){d.errors=[];var t=n.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){l.cmContact.delete({id:d.contact.id}).$promise.then(function(){_.remove(d.contacts,{id:d.contact.id}),a.success({title:"Contact properly deleted!",msg:d.contact.name?d.contact.name+" has been deleted!":""}),c()}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},d.closeDialog=c,d.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){e&&(d.customFields=e)}).catch(function(e){console.error(e)});d.customFields={rows:[],count:0}}},d.getDateFromString=function(e){return null===e?void 0:new Date(e)}}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){var s=this;function r(){e.hide()}s.errors=[],s.title="CONTACTMANAGER.COPY_CONTACT",s.contact=angular.copy(n),s.lists=i||{rows:[],count:0},s.addNewContact=function(){s.errors=[],delete s.contact.id,s.contact.tags&&!s.contact.tags.length&&delete s.contact.tags;o.cmContact.save(s.contact).$promise.then(function(e){a.unshift(e),t.success({title:"Contact properly created",msg:s.contact.name?s.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},s.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){var l=this;function d(e){a.hide(e)}l.errors=[],l.title="CONTACTMANAGER.EDIT_HOPPER",l.hopper=angular.copy(s),l.hoppers=o,l.newHopper=!1,l.hopper||(l.hopper={},l.title="CONTACTMANAGER.NEW_HOPPER",l.newHopper=!0),l.saveHopper=function(){l.errors=[],r.cmHopper.update({id:l.hopper.id},l.hopper).$promise.then(function(e){var t=_.find(l.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:l.hopper.name?l.hopper.name+" has been saved!":""}),d(e)}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},l.getDateFromString=function(e){return null===e?void 0:new Date(e)},l.closeDialog=d}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c,m,u,p,g,v,h,b){var f=this;f.license=b,f.journey=[],f.contact=r||{},f.hoppers=l||{rows:[],count:0},f.finals=d||{rows:[],count:0},f.histories=c||{rows:[],count:0},f.companies=u||{rows:[],count:0},f.lists=p||{rows:[],count:0},f.customFields=g||{rows:[],count:0},f.tags=v||{rows:[],count:0},f.jscriptySessions=h||{rows:[],count:0},f.timelineOptions={scrollEl:"#interaction-content"},f.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},f.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},f.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},f.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},f.selectedTab=t.params.tab||0,f.gotoContacts=function(){t.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},f.duplicateContact=function(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}})},f.saveContact=function(){s.cmContact.update({id:f.contact.id},f.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:f.contact.name?f.contact.name+" has been updated!":""})}).then(function(){return s.cmContact.setTags({id:f.contact.id,ids:f.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.editCompany=function(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:[],license:null,setting:null},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:t})}]}})},f.onSelectList=function(e){if(f.contact.ListId){var t=i.confirm().title("You are selecting the list number: "+f.contact.ListId).textContent("Warning! You won't select a different list for the contact "+f.contact.firstName||f.contact.lastName||f.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(f.onSelectListSuccess).catch(function(){f.contact.ListId=null})}},f.onSelectListSuccess=function(){return s.cmList.getCustomFields({id:f.contact.ListId}).$promise.then(function(e){f.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},f.getDateFromString=function(e){return null===e?void 0:new Date(e)},f.getHoppers=function(){f.queryHopper.offset=(f.queryHopper.page-1)*f.queryHopper.limit,f.queryHopper.id=f.contact.id,f.promise=s.cmContact.getHoppers(f.queryHopper,y("hoppers")).$promise},f.getFinals=function(){f.queryFinal.offset=(f.queryFinal.page-1)*f.queryFinal.limit,f.queryFinal.id=f.contact.id,f.promise=s.cmContact.getHopperFinals(f.queryFinal,y("finals")).$promise},f.getHistories=function(){f.queryHistory.offset=(f.queryHistory.page-1)*f.queryHistory.limit,f.queryHistory.id=f.contact.id,f.promise=s.cmContact.getHopperHistories(f.queryHistory,y("histories")).$promise},f.getJscriptySessions=function(){f.queryJscriptySession.offset=(f.queryJscriptySession.page-1)*f.queryJscriptySession.limit,f.queryJscriptySession.id=f.contact.id,f.promise=s.cmContact.getJscriptySessions(f.queryJscriptySession,y("jscriptySessions")).$promise},f.deleteconfirm=function(t,e){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(t.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){var e;e=t,s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(f.hoppers.rows,{id:e.id}),f.hoppers.count--,f.hoppers.rows.length||f.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(){console.log("CANCEL")})},f.editHopper=function(e,t){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:f.hoppers.rows,license:null,setting:null}})},f.createOrEditIvrCampaignHopper=function(e,t){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:f.hoppers.rows,license:null,setting:null}})},f.getColorByItem=function(e){var t="";e.FaxAccountId?t="fax":e.OpenchannelAccountId?t="openchannel":e.SmsAccountId?t="sms":e.MailAccountId?t="mail":e.ChatWebsiteId?t="chat":e.amaflags&&(t="voice");return function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"blue-A700"}}(t)};var A=!0,E=1;function y(t){return function(e){f[t]=e||{count:0,rows:[]}}}function S(e){e&&e.count&&e.rows.length&&(f.journey=_.concat(f.journey,e.rows))}e.$watch("vm.queryHopper.filter",function(e,t){A?n(function(){A=!1}):(t||(E=f.queryHopper.page),e!==t&&(f.queryHopper.page=1),e||(f.queryHopper.page=E),f.getHoppers())}),e.$watch("vm.queryFinal.filter",function(e,t){A?n(function(){A=!1}):(t||(E=f.queryFinal.page),e!==t&&(f.queryFinal.page=1),e||(f.queryFinal.page=E),f.getFinals())}),e.$watch("vm.queryHistory.filter",function(e,t){A?n(function(){A=!1}):(t||(E=f.queryHistory.page),e!==t&&(f.queryHistory.page=1),e||(f.queryHistory.page=E),f.getHistories())}),s.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){f.users=e||{count:0,rows:[]},f.usersMap=_.mapValues(_.keyBy(f.users.rows,"id"),"fullname"),f.Tags=_.map(f.contact.Tags,"id")}).then(function(e){var t=["mail","chat","sms","openchannel","fax"];if(e&&e.id){for(var n=0;n<t.length;n++)s[t[n]+"Interaction"].get({ContactId:e.id,includeAll:!0}).$promise.then(S);s.voiceCallReport.get({fields:"id,uniqueid,type,source,destination,callerid,starttime,endtime,duration,disposition,amaflags,note,UserId,ContactId",ContactId:e.id,includeAll:!0}).$promise.then(S).catch(function(e){console.error(e)})}}(r))}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},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.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=o||{rows:[],count:0},g.companies=s||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),t.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],t=0;t<g.result.errors.length;t+=1){var n=g.result.errors[t].row;n.contact_import_error=g.result.errors[t].message,e.push(n)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(n){i(function(){if(g.result.rows=n.rows,n.errors)for(var e=0;e<n.errors.length;e++)g.result.errors.push(n.errors[e]);if(n.finish){g.result.finish=!0,g.result.affectedRows=n.affectedRows,g.result.failedRows=g.result.errors.length;var t=g.result.rows-g.result.affectedRows-g.result.errors.length;t&&0<t&&(g.duplicates.length?g.result.duplicatedRows=t:g.result.failedRows+=t),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,o,t,s,n,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(t),a.lists=n||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:t.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,t,n){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+n.id+" will be overwritten by the fields of the contact #"+t.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:n.id,from:t.id}).$promise}).then(function(e){i.hide({new:e,to:n,from:t}),_.remove(s,{id:n.id}),_.remove(s,{id:t.id}),s.unshift(e)}).then(function(){o.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,t,n,i,o,s,r,l,d,c,m){var u=this;function p(e){n.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",u.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},u.globalCustomField=r,u.globalCustomFields=s,u.newGlobalCustomField=!1,u.globalCustomField||(u.globalCustomField={type:"text"},u.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",u.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,t){if(e!==t)switch(e){case"text":u.globalCustomField.values="";break;case"select":u.globalCustomField.values=[]}}),u.addNewGlobalCustomField=function(){u.errors=[],l.cmCustomField.save(u.globalCustomField).$promise.then(function(e){u.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:u.globalCustomField.name?u.globalCustomField.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.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.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveGlobalCustomField=function(){u.errors=[],l.cmCustomField.update({id:u.globalCustomField.id},u.globalCustomField).$promise.then(function(e){var t=_.find(u.globalCustomFields,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"GlobalCustomField properly saved!",msg:u.globalCustomField.name?u.globalCustomField.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteGlobalCustomField=function(e){u.errors=[];var t=n.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){l.cmCustomField.delete({id:u.globalCustomField.id}).$promise.then(function(){_.remove(u.globalCustomFields,{id:u.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(u.globalCustomField.name||"globalCustomField")+" has been deleted!"}),p(u.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},u.removeItem=function(e,t){e.splice(t,1),a.globalCustomFieldForm.$pristine=!1},u.removeItems=function(e){for(var t=e.length,n=0;n<t;n++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.globalCustomFields=r||{count:0,rows:[]},v.table="globalCustomFields",v.listOrder="",v.listOrderAsc=null,v.selectedGlobalCustomFields=[],v.query={fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,page:1},v.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"),"")}),v.editdialog=function(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:v.globalCustomFields.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getGlobalCustomFields=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cmCustomField.get(v.query,f).$promise},v.createOrEditGlobalCustomField=function(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:v.globalCustomFields.rows,license:v.license,setting:v.setting}})},v.deleteGlobalCustomField=A,v.exportSelectedGlobalCustomFields=function(){var e=angular.copy(v.selectedGlobalCustomFields);return v.selectedGlobalCustomFields=[],e},v.deleteSelectedGlobalCustomFields=function(e){var t=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+v.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedGlobalCustomFields.forEach(function(e){A(e)}),v.selectedGlobalCustomFields=[]})},v.deselectGlobalCustomFields=function(){v.selectedGlobalCustomFields=[]},v.selectAllGlobalCustomFields=function(){v.selectedGlobalCustomFields=v.globalCustomFields.rows};var h=!0,b=1;function f(e){v.globalCustomFields=e||{count:0,rows:[]}}function A(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(v.globalCustomFields.rows,{id:e.id}),v.globalCustomFields.count-=1,v.globalCustomFields.rows.length||v.getGlobalCustomFields(),c.success({title:"GlobalCustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","globalCustomFields","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_LIST",u.list=angular.copy(r),u.lists=s,u.newList=!1,u.list||(u.list={},u.title="CONTACTMANAGER.NEW_LIST",u.newList=!0),u.addNewList=function(){u.errors=[],l.cmList.save(u.list).$promise.then(function(e){u.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:u.list.name?u.list.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.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.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveList=function(){u.errors=[],l.cmList.update({id:u.list.id},u.list).$promise.then(function(e){var t=_.find(u.lists,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"List properly saved!",msg:u.list.name?u.list.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteList=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmList.delete({id:u.list.id}).$promise.then(function(){_.remove(u.lists,{id:u.list.id}),o.success({title:"List properly deleted!",msg:(u.list.name||"list")+" has been deleted!"}),p(u.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","lists","list","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.cmList[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.list=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:s.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,t){a.cmList[t?"removeAgents":"addAgents"]({id:l.list.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:cmList.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","list","lists","realtime","$translate","Auth"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.list={},c.listCustomFields={count:0,rows:[]},c.selectedListCustomFields=[],c.query={fields:"createdAt,updatedAt,id,alias,type,values,required",limit:10,page:1},c.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"),"")}),c.init=function(e){c.list=e,c.query.id=c.list.id,c.query.ListId=c.list.id,c.getListCustomFields()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getListCustomFields=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.cmList.getCustomFields(c.query,p).$promise},c.createOrEditListCustomField=function(e,t){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:c.list,customField:t,customFields:c.listCustomFields.rows,license:null,setting:null}})},c.exportSelectedListCustomFields=function(){var e=angular.copy(c.selectedListCustomFields);return c.selectedListCustomFields=[],e},c.deleteListCustomField=g,c.deleteSelectedListCustomFields=function(e){var t=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+c.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedListCustomFields.forEach(function(e){g(e)}),c.selectedListCustomFields=[]})};var m=!0,u=1;function p(e){c.listCustomFields=e||{count:0,rows:[]}}function g(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(c.listCustomFields.rows,{id:e.id}),c.listCustomFields.count-=1,c.listCustomFields.rows.length||c.getListCustomFields(),r.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getListCustomFields())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,t,n,i,o,s,r,l,d,c,m){var u=this;function p(e){n.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",u.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},u.customField=r,u.customFields=s,u.newCustomField=!1,u.customField||(u.customField={type:"text"},u.title="CONTACTMANAGER.NEW_CUSTOMFIELD",u.newCustomField=!0),e.params.id&&(u.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,t){if(e!==t)switch(e){case"text":u.customField.values="";break;case"select":u.customField.values=[]}}),u.addNewCustomField=function(){u.errors=[],l.cmList.addCustomField({id:e.params.id},u.customField).$promise.then(function(e){u.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:u.customField.name?u.customField.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.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.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCustomField=function(){u.errors=[],l.cmCustomField.update({id:u.customField.id},u.customField).$promise.then(function(e){var t=_.find(u.customFields,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"CustomField properly saved!",msg:u.customField.name?u.customField.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCustomField=function(e){u.errors=[];var t=n.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){l.cmCustomField.delete({id:u.customField.id}).$promise.then(function(){_.remove(u.customFields,{id:u.customField.id}),o.success({title:"CustomField properly deleted!",msg:(u.customField.name||"customField")+" has been deleted!"}),p(u.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},u.removeItem=function(e,t){e.splice(t,1),a.customFieldForm.$pristine=!1},u.removeItems=function(e){for(var t=e.length,n=0;n<t;n++)e.splice(0,1);a.customFieldForm.$pristine=!1},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","customFields","customField","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.list=d||n.params.list||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})},c.agentadddialog=function(e,t){a.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{list:e,lists:c.lists?c.lists.rows:[],realtime:!1}})},c.alert=r.info,c.gotoLists=function(){n.go("app.contactmanager.lists")},c.saveList=function(){s.cmList.update({id:c.list.id},c.list).$promise.then(function(){r.success({title:"List updated!",msg:c.list.name?c.list.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","list"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.list={},c.listVoiceDispositions={count:0,rows:[]},c.selectedListVoiceDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.list=e,c.query.id=c.list.id,c.query.ListId=c.list.id,c.getListVoiceDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the voiceDisposition?").htmlContent("<b>"+(e.name||"voiceDisposition")+"</b> will be deleted.").ariaLabel("delete voiceDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getListVoiceDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.cmList.getDispositions(c.query,p).$promise},c.createOrEditListVoiceDisposition=function(e,t){o.show({controller:"CreateOrEditVoiceDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:c.list,voiceDisposition:t,voiceDispositions:c.listVoiceDispositions.rows,license:null,setting:null}})},c.exportSelectedListVoiceDispositions=function(){var e=angular.copy(c.selectedListVoiceDispositions);return c.selectedListVoiceDispositions=[],e},c.deleteListVoiceDisposition=g,c.deleteSelectedListVoiceDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected voiceDispositions?").htmlContent("<b>"+c.selectedListVoiceDispositions.length+" selected</b> will be deleted.").ariaLabel("delete voiceDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedListVoiceDispositions.forEach(function(e){g(e)}),c.selectedListVoiceDispositions=[]})};var m=!0,u=1;function p(e){c.listVoiceDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.listVoiceDispositions.rows,{id:e.id}),c.listVoiceDispositions.count-=1,c.listVoiceDispositions.rows.length||c.getListVoiceDispositions(),r.success({title:"VoiceDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getListVoiceDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListVoiceDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_VOICEDISPOSITION",u.voiceDisposition=angular.copy(r),u.voiceDispositions=s,u.newVoiceDisposition=!1,u.voiceDisposition||(u.voiceDisposition={},u.title="CONTACTMANAGER.NEW_VOICEDISPOSITION",u.newVoiceDisposition=!0),t.params.id&&(u.voiceDisposition.ListId=t.params.id),u.addNewVoiceDisposition=function(){u.errors=[],l.disposition.save(u.voiceDisposition).$promise.then(function(e){u.voiceDispositions.unshift(e.toJSON()),o.success({title:"VoiceDisposition properly created",msg:u.voiceDisposition.name?u.voiceDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoiceDisposition=function(){u.errors=[],l.disposition.update({id:u.voiceDisposition.id},u.voiceDisposition).$promise.then(function(e){var t=_.find(u.voiceDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VoiceDisposition properly saved!",msg:u.voiceDisposition.name?u.voiceDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoiceDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voiceDisposition will be deleted.").ariaLabel("Delete VoiceDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.voiceDisposition.id}).$promise.then(function(){_.remove(u.voiceDispositions,{id:u.voiceDisposition.id}),o.success({title:"VoiceDisposition properly deleted!",msg:(u.voiceDisposition.name||"voiceDisposition")+" has been deleted!"}),p(u.voiceDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voiceDispositions","voiceDisposition","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditVoiceDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.lists=r||{count:0,rows:[]},v.table="lists",v.listOrder="",v.listOrderAsc=null,v.selectedLists=[],v.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.contactmanager.lists.edit",{id:e.id,list:e})},v.gotocontactsgoto=function(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})},v.exportcsvcontactsexport=function(i,e){return l.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var t=[e.buffer],n=new Blob(t,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(n)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else c.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},v.agentadddialog=function(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:v.lists?v.lists.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getLists=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cmList.get(v.query,f).$promise},v.createOrEditList=function(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:v.lists.rows,license:v.license,setting:v.setting}})},v.deleteList=A,v.exportSelectedLists=function(){var e=angular.copy(v.selectedLists);return v.selectedLists=[],e},v.deleteSelectedLists=function(e){var t=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+v.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedLists.forEach(function(e){A(e)}),v.selectedLists=[]})},v.deselectLists=function(){v.selectedLists=[]},v.selectAllLists=function(){v.selectedLists=v.lists.rows};var h=!0,b=1;function f(e){v.lists=e||{count:0,rows:[]}}function A(e){l.cmList.delete({id:e.id}).$promise.then(function(){_.remove(v.lists.rows,{id:e.id}),v.lists.count-=1,v.lists.rows.length||v.getLists(),c.success({title:"List deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","lists","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){var r=this;r.currentUser=o.getCurrentUser(),r.customDashboard={},r.voiceQueues=s&&s.count?s:{count:0,rows:[]},r.voiceQueuesSelected=s&&s.count?_.map(s.rows,"id"):[],r.interval=t(function(){},1e3),r.onChangeVoiceQueues=function(){for(var e=0;e<r.customDashboard.widgets.length;e+=1)r.customDashboard.widgets[e].voiceQueuesSelected=r.voiceQueuesSelected},r.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:r.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var t=_.find(r.voiceQueues.rows,{id:e.id});t&&_.merge(t,_.pick(e,_.keys(t)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return r.customDashboard=e,r.customDashboard.widgets=[],r.customDashboard.preview=!0,r.customDashboard.draggable={enabled:!1},r.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:r.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var t=0;t<e.rows.length;t+=1)e.rows[t].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[t].type+"/ms-widget-engine."+e.rows[t].type+".html",e.rows[t].voiceQueues=r.voiceQueues,e.rows[t].voiceQueuesSelected=r.voiceQueuesSelected,r.customDashboard.widgets.push(e.rows[t])}).catch(function(e){r.customDashboard=void 0}),n.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),r.interval&&t.cancel(r.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,n,a,s,i,t,l,o,r,d,c,m,u,p,g,v,h){var b=this;b.license=p,b.setting=g;function f(e){var t={};for(var n in b.tabs)b.tabs.hasOwnProperty(n)&&(t[n]=b.tabs[n],b.tabs[n].interaction&&(t[n].interaction=_.pick(b.tabs[n].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","closed","draft"])));a.localStorage.setItem("motion2.user:"+b.user.id,JSON.stringify({tabs:t,currentTab:b.currentTab})),A(e)}function A(e){if(_.isNil(e)||e&&"interaction"===e.type){var t={id:b.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],openchannel:[],chat:[]}};for(var n in b.tabs)b.tabs.hasOwnProperty(n)&&t.capacity.hasOwnProperty(b.tabs[n].channel)&&b.tabs[n].interaction&&!b.tabs[n].interaction.closed&&(t.capacity[b.tabs[n].channel]+=1,t.interaction[b.tabs[n].channel].push(b.tabs[n].interaction.id));if(!_.isEqual(b.agentCapacity,t.capacity))return b.agentCapacity=t.capacity,l.rpc.setAgentCapacity(t)}}function E(t){if(b.tabs[t.id]&&(function(e){if(e.channel&&e.interaction)l.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:b.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(b.tabs[t.id]),delete b.tabs[t.id],b.currentTab=0,f(t),"interaction"===t.type))return l[t.channel+"Interaction"].get({id:t.interaction.id}).$promise.then(function(e){return l.user["remove"+_.upperFirst(t.channel)+"Interactions"]({id:b.user.id,ids:[e.id]}).$promise}).catch(function(e){console.error(e)})}function y(e){e.id=_.random(1e10),e.openedAt=new Date,e.saved=!1,e.badges=0,b.tabs[e.id]=e,b.currentTab=e.id,f(e)}function S(t,n){var e={type:"interaction",title:t?t.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";default:return"icon-hangouts"}}(t),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"grey"}}(t),channel:t,interaction:n},a=_.find(b.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===n.id&&e.channel===t});a?b.currentTab=a.id:y(e)}function T(e){e&&e.uniqueid&&b.notifications[e.uniqueid]&&(r.clear(b.notifications[e.uniqueid]),delete b.notifications[e.uniqueid])}function C(e,t){return 0<=t&&(e.calls[t].disposedAt=new Date,o.removeAllListeners("voice_queue_channel:remove"),o.removeAllListeners("voice_outbound_channel:remove"),!0)}function x(){return function(e){if(404===e.status)r.warning({title:s.instant("DASHBOARDS.ATTENTION"),msg:s.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}b.detectBrowser=h.detectBrowser(),b.user=t.getCurrentUser(),b.currentTab=0,b.notifications={},b.tabs={},b.agentCapacity={},b.globalUserLists=d||{count:0,rows:[]},b.globalLists=c||{count:0,rows:[]},b.globalCompanies=m||{count:0,rows:[]},b.globalTags=u||{count:0,rows:[]},b.onContactManager=function(t){var e={ListId:t.ListId,limit:1,offset:0,sort:"-updatedAt"},n=!1,a=t.calleridname&&"<unknown>"!==t.calleridname?t.calleridname:t.calleridnum||t.uniqueid,i=t.calleridnum;_.isNil(t["xmd-contactid"])?_.isNil(t.routeId)?e.phone=t.calleridnum:(e.phone=t.destcalleridnum,a=t.destcalleridname&&"<unknown>"!==t.destcalleridname?t.destcalleridname:t.destcalleridnum||t.uniqueid,i=t.destcalleridnum):(e.id=t["xmd-contactid"],n=!0,_.isNil(t["xmd-listid"])||parseInt(t["xmd-listid"],10)===t.ListId||t["xmd-contactid2"]&&(e.id=t["xmd-contactid2"]));return l.cmContact.get(e).$promise.then(function(e){n?e&&b.addContactTab(e,t):e.count&&e.rows[0]?b.addContactTab(e.rows[0],t):b.addContactTab({firstName:a,ListId:t.ListId,phone:i},t)}).catch(x())},b.onJscripty=function(n){return l.jscriptyProject.get({id:n.ProjectId}).$promise.then(function(t){if(t){if(!_.isUndefined(n["xmd-contactid"]))return l.cmContact.get({id:n["xmd-contactid"]}).$promise.then(function(e){try{t.formData=Mustache.render(t.formData,_.merge(n,{user:b.user,contact:e}))}catch(e){console.error(e)}y({type:"jscripty",title:t.name,icon:"icon-script",color:"grey",project:t,call:n,contact:e})}).catch(x());try{t.formData=Mustache.render(t.formData,_.merge(n,{user:b.user}))}catch(e){console.error(e)}y({type:"jscripty",title:t.name,icon:"icon-script",color:"grey",project:t,call:n})}}).catch(x())},b.onBot=function(t){var n=t.calleridname&&"<unknown>"!==t.calleridname?t.calleridname:t.calleridnum,a=t.calleridnum;return l.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:t.uniqueid}).$promise.then(function(e){e.count&&y({type:"bot",title:n+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:t.uniqueid}})})},b.onBrowserUrl=function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":a.open(e.uri);break;case"1":a.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;default:a.open(e.uri)}else a.open(e.uri)},b.onBrowserPopup=function(e){e&&e.html&&y({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})},b.onNotificationSave=function(e){if(e&&e.uniqueid){n=e,v.isSupported()?v.requestPermission().then(function(){var e,t;t={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=n).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},v.show(e.title,t)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var t=b.alreadyExistsTab(e);if(t){if(l[e.channel+"Message"])return b.currentTab!==t.id&&(t.badges+=1),l[e.channel+"Message"].accept({id:e.id,UserId:b.user.id}).$promise.catch(x())}else r.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){b.notifications[e.uniqueid]=this.id},onAccept:function(){if(T(e),l[e.channel+"Message"])return l[e.channel+"Message"].accept({id:e.id,UserId:b.user.id,manual:!0}).$promise.then(function(e){S(e.channel,e.interaction),r.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(x())},onReject:function(){if(T(e),l[e.channel+"Message"])return l[e.channel+"Message"].reject({id:e.id,UserId:b.user.id}).$promise.then(function(e){r.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(x())}})}var n},b.onNotificationRemove=T,b.onVoiceChannelRemove=function(t){var e=b.currentTab?b.tabs[b.currentTab]:null;e||(e=_.find(b.tabs,{calls:[{uniqueid:t.uniqueid}]}));var n=_.findLastIndex(e.calls,function(e){return e.uniqueid===t.uniqueid});if(!C(e,n)){var a=_.find(b.tabs,{calls:[{uniqueid:t.uniqueid}]});if(a){var i=_.findLastIndex(a.calls,function(e){return e.uniqueid===t.uniqueid});C(a,i)}}b.contact&&b.contact.id&&$timeout((o=t.uniqueid,s=b.contact.id,r=e,function(){var e=_.find(r.calls,function(e){return e.uniqueid===o});if(e)return l.voiceCallReport.update({id:o,ContactId:s}).$promise.catch(function(e){console.error(e)})}),1e3);var o,s,r},b.onClickTab=function(e){b.currentTab=e,f(b.tabs[e])},b.isActiveTab=function(e){return e===b.currentTab},b.alreadyExistsTab=function(t){return _.find(b.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==t.interactionId&&e.channel==t.channel})},b.addContactTab=function(t,n){var a={type:"contact",title:t?function(e){var t="";e&&(e.firstName||e.lastName?(e.firstName&&(t+=e.firstName+" "),e.lastName&&(t+=e.lastName)):e.phone&&(t=e.phone));return t}(t):s.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:t,userLists:d,lists:c,companies:m,tags:u,calls:n?[n]:[],autoCreate:n?n.autoCreate:0};if(n){if(n["xmd-cdrtype"]&&"dialer"===n["xmd-cdrtype"])n.answeredAt=n.agentcalledAt?moment(n.agentcalledAt,"YYYY-MM-DD HH:mm:ss").toDate():new Date;else if(n.uniqueid){var e=n.uniqueid.split(".")[0];n.answeredAt=e?new Date(1e3*parseInt(e)):new Date}(n.agentcompleteAt||n.endtime)&&(n.disposedAt=new Date)}if(t){var i=_.find(b.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==t.id:"contact"===e.type&&e.contact&&e.contact.phone==t.phone});if(i){if(n)if(i.calls){var o=_.find(i.calls,function(e){return e.uniqueid===n.uniqueid});o||i.calls.push(n)}else i.calls=[n];b.currentTab=i.id}else{if(t.ListId)return l.disposition.get({ListId:t.ListId}).$promise.then(function(e){return a.dispositions=e,l.cmList.getCustomFields({id:t.ListId}).$promise}).then(function(e){a.customFields=e}).catch(x()).finally(function(){y(a)});y(a)}}else y(a)},b.addInteractionTab=S,b.addTab=y,b.removeTab=E,b.updateLocalStorage=f,b.closeTab=function(e){var t=n.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved)return n.show(t).then(function(){"interaction"===e.type&&n.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(i.body),clickOutsideToClose:!0,locals:{user:b.user,channel:e.channel,interaction:e.interaction}}),E(e)}).catch(function(){"interaction"===e.type&&E(e)});if("contact"===e.type&&0<e.calls.length)return t._options.textContent="There is a call that hasn't been disposed yet.",n.show(t).then(function(){E(e)});E(e)}},o.on("trigger:contactmanager",b.onContactManager),o.on("trigger:jscripty",b.onJscripty),o.on("trigger:bot",b.onBot),o.on("trigger:browser:url",b.onBrowserUrl),o.on("trigger:browser:popup",b.onBrowserPopup),o.on("notification:save",b.onNotificationSave),o.on("notification:remove",b.onNotificationRemove),function(){var e=a.localStorage.getItem("motion2.user:"+b.user.id);if(e)try{e=JSON.parse(e),b.tabs=e.tabs?e.tabs:{},b.currentTab=e.currentTab?e.currentTab:0,A(b.tabs[b.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in b.notifications)b.notifications.hasOwnProperty(e)&&T({uniqueid:e});o.removeAllListeners("trigger:contactmanager"),o.removeAllListeners("trigger:jscripty"),o.removeAllListeners("trigger:browser:url"),o.removeAllListeners("trigger:browser:popup"),o.removeAllListeners("notification:save"),o.removeAllListeners("notification:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var b={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var t in e)b.hasOwnProperty(t)&&null!=e[t]&&(b[t]=e[t])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,t,p){var g=t.Notification||t.mozNotification||t.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var n=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?n.resolve(e):n.reject(e)}):g.requestPermission(function(e,t){p.GRANTED===e?n.resolve(e):n.reject(e)});return n.promise},show:function(e,t){if(t=t||{},!v()||(n=e,a=t,i=angular.isString(n),o=!a.onClick||angular.isFunction(a.onClick),!i||!o)||function(e){if(e||b.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(t.showOnPageHidden)||h()!==p.GRANTED)return;var n,a,i,o;var s=new g(e,t),r=t.duration||b.duration,l=void 0===t.autoClose?b.autoClose:t.autoClose;s.onclick=function(){t.onClick&&t.onClick(),t.focusOnclick&&window.focus(),t.closeOnClick&&s.close()},l&&(d=s,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return s},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function t(e,t){if(angular.isString(e)){for(var n=e.split("."),a=n[n.length-1],i=function(e){var t=l;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}(n),o=!1,s=0;s<i.length;s++)if(i[s]._id===a){o=i[s];break}o?(angular.extend(o,t),o.uisref=d(o)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=a,t._path=e,t.uisref=d(t),i.push(t))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(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}this.saveItem=t,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var t=l,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},this.$get=function(){var e={saveItem:t,getNavigation:function(e){if(e){for(var t=0;t<l.length;t++)if(l[t]._id===e)return[l[t]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(n){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,t){{if(a.setting=t,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return n.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(s,r,n,l,d,c,t,e,a,i){var m=this;function o(e){e&&e.count&&e.rows.length&&(m.journey=_.concat(m.journey,e.rows))}m.user=t.getCurrentUser(),m.detectBrowser=i.detectBrowser(),m.journey=[],m.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},m.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},m.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},m.hoppers={rows:[],count:0},m.finals={rows:[],count:0},m.histories={rows:[],count:0},m.addNewContact=function(){m.errors=[],d.cmContact.save(m.contact).$promise.then(function(e){return m.contact.id=e.id,m.newContact=!1,m.tab.title=e.firstName||e.phone,m.tab.contact=m.contact,d.user.addContacts({id:t.getCurrentUser().id,ids:[e.id]})}).then(function(){m.detailForm.$pristine=!0,m.customFieldsForm.$pristine=!0,c.success({title:"Contact properly created",msg:m.contact.firstName?m.contact.firstName+" has been created!":""})}).then(function(){return d.cmContact.setTags({id:m.contact.id,ids:m.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveContact=function(){m.errors=[],d.cmContact.update({id:m.contact.id},m.contact).$promise.then(function(e){return m.tab.title=e.firstName||e.phone,m.tab.contact=m.contact,l.$parent.vm.updateLocalStorage(),d.user.addContacts({id:t.getCurrentUser().id,ids:[e.id]})}).then(function(){return d.cmContact.setTags({id:m.contact.id,ids:m.tab.Tags}).$promise}).then(function(){m.detailForm.$pristine=!0,m.customFieldsForm.$pristine=!0,c.success({title:"Contact properly updated!",msg:m.contact.name?m.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getCustomFields=function(e){return d.cmList.getCustomFields({id:e}).$promise.then(function(e){m.tab.customFields=e}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.call=l.$parent.vm.call,m.disposeCall=function(e,t){if(m.newContact)return void c.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});s.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(r.body),targetEvent:t,clickOutsideToClose:!1,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null"})}]},locals:{dispositions:m.tab.dispositions,contact:m.contact,call:t}}).then(function(e){e&&("BLACKLIST"===e?c.success({title:a.instant("DASHBOARDS.INFO"),msg:a.instant("DASHBOARDS.CALL_DISPOSED")+" "+e}):"RECALLME"===e||"RESCHEDULE"===e||c.success({title:a.instant("DASHBOARDS.INFO"),msg:a.instant("DASHBOARDS.CALL_SAVED")})),_.remove(m.tab.calls,function(e){return e.uniqueid==t.uniqueid})})},m.duplicateContact=function(e){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:m.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},m.mergeContact=function(e){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:m.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var t in l.$parent.$parent.$parent.vm.tabs)if(l.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var n=l.$parent.$parent.$parent.vm.tabs[t];n&&n.contact&&(e.from&&e.from.id&&e.from.id===n.contact.id&&l.$parent.$parent.$parent.vm.removeTab(n),e.to&&e.to.id&&e.to.id===n.contact.id&&l.$parent.$parent.$parent.vm.removeTab(n))}e.new&&l.$parent.$parent.$parent.vm.addContactTab(e.new)}})},m.getDateFromString=function(e){return null===e?void 0:new Date(e)},m.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:m.contact,user:m.user})}catch(e){console.error(e)}try{l.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:m.contact})}catch(e){c.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},m.getHoppers=function(){m.contact&&m.contact.id&&(m.queryHopper.ContactId=m.contact.id,m.queryHopper.offset=(m.queryHopper.page-1)*m.queryHopper.limit,m.promise=d.cmHopper.get(m.queryHopper,g("hoppers")).$promise)},m.getFinals=function(){m.contact&&m.contact.id&&(m.queryFinal.ContactId=m.contact.id,m.queryFinal.offset=(m.queryFinal.page-1)*m.queryFinal.limit,m.promise=d.cmHopperFinal.get(m.queryFinal,g("finals")).$promise)},m.getHistories=function(){m.contact&&m.contact.id&&(m.queryHistory.ContactId=m.contact.id,m.queryHistory.offset=(m.queryHistory.page-1)*m.queryHistory.limit,m.promise=d.cmHopperHistory.get(m.queryHistory,g("histories")).$promise)},m.getJscriptyProjects=function(){d.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){m.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.jscripty.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscripty.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getMailAccounts=function(){d.user.getMailAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.mailAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.mail.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mail.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getFaxAccounts=function(){d.user.getFaxAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.faxAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.fax.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.fax.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getSmsAccounts=function(){d.user.getSmsAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.smsAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.sms.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sms.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getOpenchannelAccounts=function(){d.user.getOpenchannelAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.openchannelAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.sms.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannel.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getChatWebsites=function(){d.user.getChatWebsites({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.chatAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.chatAccounts.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatAccounts.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getLists=function(){d.user.getLists({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.lists=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.cm.lists"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cm.lists",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.composeInteraction=function(e,i,t,n){var o=i.toLowerCase();s.show({controller:"Compose"+i+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose"+i+"/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{account:t,message:{to:"mail"==o?n:n.split(",")},type:"new",interaction:{Contact:m.contact}},fullscreen:!0}).then(function(a){return d[o+"Account"].send({id:t.id},a).$promise.then(function(e){if("Mail"===i){var t=e;if(t&&t.Messages&&t.Messages.length){if(a.attachments&&a.attachments.length)for(var n=0;n<a.attachments.length;n+=1)d.attachment.update({id:a.attachments[n].id},{MailMessageId:_.head(t.Messages).id});c.success({title:"Message properly sent!",msg:"Message has been sent!"}),t.closed?(t.disposition=null,s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!0,locals:{user:m.user,channel:"mail",interaction:t}})):l.$parent.vm.addInteractionTab("mail",t)}}else c.success({title:"Message properly sent!",msg:"Message has been sent!"}),l.$parent.vm.addInteractionTab(o,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else"fax"===o?c.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):c.error({title:e.status?"API:"+e.status+" - "+e.statusText:i.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.init=function(e,t){m.tab=e,l.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){m.tab.saved=e[0]&&e[1]}),m.license=t,m.contact=m.tab.contact,m.newContact=!1,m.currentTab=0,m.contact&&m.contact.id?(d.user.addContacts({id:m.user.id,ids:[m.contact.id]}),m.contact.ListId&&(m.tab.userLists.rows=_.unionBy(m.tab.userLists.rows,_.filter(m.tab.lists.rows,{id:m.contact.ListId}),"id"),m.list=_.find(m.tab.userLists.rows,{id:m.contact.ListId})),m.getHoppers(),m.getFinals(),m.getHistories(),m.getMailAccounts(),m.getFaxAccounts(),m.getSmsAccounts(),m.getOpenchannelAccounts(),m.getChatWebsites(),m.getLists()):(m.newContact=!0,e.autoCreate&&(console.log("autoCreate"),m.addNewContact()));d.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){m.users=e||{count:0,rows:[]},m.usersMap=_.mapValues(_.keyBy(m.users.rows,"id"),"fullname")}).then(function(){if(m.contact&&m.contact.id)return d.cmContact.getTags({id:m.contact.id}).$promise}).then(function(e){e&&(m.tab.Tags=_.map(e.rows,"id"))}).then(function(e){var t=["mail","chat","sms","openchannel","fax"];if(e&&e.id){for(var n=0;n<t.length;n++)d[t[n]+"Interaction"].get({ContactId:e.id,includeAll:!0}).$promise.then(o);d.voiceCallReport.get({ContactId:e.id,includeAll:!0}).$promise.then(o).catch(function(e){console.error(e)})}}(m.contact))},m.hasPermission=function(e){return t.hasPermission(e)},m.openInteraction=function(e,t){try{if(t.MailAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("mail",t);if(t.ChatWebsiteId)return l.$parent.$parent.$parent.vm.addInteractionTab("chat",t);if(t.SmsAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("sms",t);if(t.OpenchannelAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("openchannel",t);if(t.FaxAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("fax",t)}catch(e){c.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},m.getColorByItem=function(e){var t="";e.FaxAccountId?t="fax":e.OpenchannelAccountId?t="openchannel":e.SmsAccountId?t="sms":e.MailAccountId?t="mail":e.ChatWebsiteId?t="chat":e.amaflags&&(t="voice");return function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"blue-A700"}}(t)},m.isMyAccount=function(e){{if(e.FaxAccountId)return _.includes(_.map(m.faxAccounts?m.faxAccounts.rows:[],"id"),e.FaxAccountId);if(e.OpenchannelAccountId)return _.includes(_.map(m.openchannelAccounts?m.openchannelAccounts.rows:[],"id"),e.OpenchannelAccountId);if(e.SmsAccountId)return _.includes(_.map(m.smsAccounts?m.smsAccounts.rows:[],"id"),e.SmsAccountId);if(e.MailAccountId)return _.includes(_.map(m.mailAccounts?m.mailAccounts.rows:[],"id"),e.MailAccountId);if(e.ChatWebsiteId)return _.includes(_.map(m.chatAccounts?m.chatAccounts.rows:[],"id"),e.ChatWebsiteId);if(e.amaflags)return!0}return!1},e.on("voice_queue_channel:remove",l.$parent.vm.onVoiceChannelRemove),e.on("voice_outbound_channel:remove",l.$parent.vm.onVoiceChannelRemove),m.getJscriptyProjects(),l.$watch("currentTab",function(e,t){1===m.currentTab&&(m.getHoppers(),m.getFinals(),m.getHistories())});var u=!0,p=1;function g(t){return function(e){m[t]=e||{count:0,rows:[]}}}l.$watch("queryHopper.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.queryHopper.page),e!==t&&(m.queryHopper.page=1),e||(m.queryHopper.page=p),m.getHoppers())}),l.$watch("queryFinal.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.queryFinal.page),e!==t&&(m.queryFinal.page=1),e||(m.queryFinal.page=p),m.getFinals())}),l.$watch("queryHistory.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.queryHistory.page),e!==t&&(m.queryHistory.page=1),e||(m.queryHistory.page=p),m.getHistories())}),l.$on("$destroy",function(){})}e.$inject=["$mdDialog","$document","$timeout","$scope","api","toasty","Auth","socket","$translate","msUtils"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(t,i,o,s,e,n,a,r,l,d){var c=this;function m(){var e=c.choice?c.choice.toLowerCase():void 0;return{id:c.call.uniqueid,disposition:c.choice,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?l.getCurrentUser().id:null,OwnerId:l.getCurrentUser().id}}c.choice=null,c.isReschedule=!1,c.recallme=!1,c.queueCampaigns={count:0,rows:[]},c.queueCampaign=void 0,c.dispositions=e,c.globalDispositions=n,c.contact=r,c.call=a,c.note=c.call.note||void 0,c.dialerCall=!1,c.hasBlackLists=!1,c.hopper={minDate:new Date,dateTime:new Date},c.call&&c.call.variables&&c.call.variables["xmd-voicequeueid"]?(c.dialerCall=!0,s.voiceQueue.getBlackLists({id:c.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(c.hasBlackLists=!0)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):s.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){c.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),c.saveDisposition=function(e){c.choice=_.isNil(e)?c.choice:e,c.call.note=c.note,s.voiceCallReport.update({id:c.call.uniqueid,userDisposition:c.choice,note:c.note,UserId:l.getCurrentUser().id,ContactId:c.contact.id}).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.voiceRecording.get({uniqueid:c.call.uniqueid}).$promise.then(function(e){if(e)for(var t=0;t<e.rows.length;t+=1)s.voiceRecording.update({id:e.rows[t].id,userDisposition:c.choice}).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.dialerCall&&(s.cmHopperFinal.update(m()).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmHopperHistory.update(m()).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(c.choice))t.hide(c.choice?c.choice.toUpperCase():"");else switch(c.choice.toLowerCase()){case"blacklist":c.call&&c.call.variables&&c.call.variables["xmd-voicequeueid"]&&function(e){if(e)s.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var t=[];if(e&&0<e.count){for(var n=0;n<e.rows.length;n+=1){var a=angular.copy(c.contact);delete a.id,a.ListId=e.rows[n].id,t.push(s.cmContact.save(a).$promise)}return i.all(t)}o.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+c.choice}),c.choice=void 0}).then(function(e){e&&t.hide(c.choice?c.choice.toUpperCase():"")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),t.hide(c.choice?c.choice.toUpperCase():"")})}(c.call.variables["xmd-voicequeueid"]);break;case"reschedule":c.isReschedule=!0,c.recallme=!1;break;case"recallme":c.isReschedule=!0,c.recallme=!0;break;default:t.hide(c.choice?c.choice.toUpperCase():"")}},c.closeDialog=function(){t.cancel()},c.saveReschedule=function(){return c.disable=!0,s.cmHopper.save({phone:c.contact.phone,UserId:c.recallme?l.getCurrentUser().id:null,ContactId:c.contact.id,ListId:c.contact.ListId,VoiceQueueId:c.dialerCall?Number(c.call["xmd-voicequeueid"]):c.queueCampaign?c.queueCampaign.id:null,scheduledat:moment(c.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:c.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){c.dialerCall&&s.cmHopperFinal.update({id:c.call.uniqueid,rescheduled:!0,rescheduledat:moment(c.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){o.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){t.hide(c.choice?c.choice.toUpperCase():"")}).finally(function(){c.disable=!1,t.hide(c.choice?c.choice.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,s.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,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"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){s.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){o.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,t){var n=t(function(){},999);e.$on("$destroy",function(){n&&(t.cancel(n),n=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c){var m=this,u=!0;function p(){var e=i.localStorage.getItem("motion2.home.abandoned.bull.contacts:"+m.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(m.query=_.merge(e.query,_.omit(m.query,["sort","limit","page"])),m.query=_.omit(m.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){m.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){m.queues=e||{count:0,rows:[]},m.queuesMap=_.mapValues(_.keyBy(m.queues.rows,"name"),"name"),m.defaultQueues=m.queues.rows?_.map(m.queues.rows,"name").join(","):void 0}).catch(function(e){console.error(e)}).finally(function(){m.getContacts()})}function g(e){m.contacts=e||{count:0,rows:[]},u=!1,m.refresh=!0}m.showTooltip=!1,m.refresh=!0,m.disable=[],m.disposition={count:0,rows:[]},m.currentUser=r.getCurrentUser(),m.localizationMap=c,m.pickerModel={dateStart:null,dateEnd:null},m.queues={},m.contacts={count:0,rows:[]},m.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},m.clearAll=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel={dateStart:null,dateEnd:null},m.getContacts()},m.getContacts=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&!u&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd);m.query.queue=m.query.queue||m.defaultQueues,m.query.offset=(m.query.page-1)*m.query.limit,i.localStorage.setItem("motion2.home.abandoned.bull.contacts:"+m.currentUser.id,JSON.stringify({query:_.omit(m.query,"queue")})),m.promise=s.voiceQueueReport.getVoiceQueuesReport(m.query,g).$promise},m.refreshContacts=function(){m.showTooltip=!1,m.getContacts()},m.onInit=p,m.reserved=function(e,t){e&&(m.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?m.currentUser.name:null,assigned:e.assigned,disposition:t||null}).$promise.catch(function(e){console.log(e)}).finally(function(){m.disable[e.id]=!1}))},m.onSavevoiceQueueReport=function(e){m.queuesMap&&"outbound"===e.type&&m.queuesMap[e.queue]&&(m.showTooltip=!0)},m.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(m.contacts.rows,["id",e.id]);0<=t&&_.merge(m.contacts.rows[t],e)}},m.call=e.$parent.$parent.$parent.$parent.vm.call,m.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,m.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,m.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",m.onSavevoiceQueueReport),l.onWithoutApply("voiceQueueReport:update",m.onUpdatevoiceQueueReport),p();var v=!0,h=1;e.$watch("vm_bull.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=h),m.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c){var m=this,u=!0;function p(){var e=i.localStorage.getItem("motion2.home.abandoned.voice.contacts:"+m.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(m.query=_.merge(e.query,_.omit(m.query,["sort","limit","page"])),m.query=_.omit(m.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){m.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){m.queues=e||{count:0,rows:[]},m.queuesMap=_.mapValues(_.keyBy(m.queues.rows,"name"),"name"),m.defaultQueues=m.queues.rows?_.map(m.queues.rows,"name").join(","):void 0}).catch(function(e){console.error(e)}).finally(function(){m.getContacts()})}function g(e){m.contacts=e||{count:0,rows:[]},u=!1,m.refresh=!0}m.showTooltip=!1,m.refresh=!0,m.disable=[],m.disposition={count:0,rows:[]},m.currentUser=r.getCurrentUser(),m.localizationMap=c,m.pickerModel={dateStart:null,dateEnd:null},m.queues={},m.contacts={count:0,rows:[]},m.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},m.clearAll=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel={dateStart:null,dateEnd:null},m.getContacts()},m.getContacts=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&!u&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd);m.query.queue=m.query.queue||m.defaultQueues,m.query.offset=(m.query.page-1)*m.query.limit,i.localStorage.setItem("motion2.home.abandoned.voice.contacts:"+m.currentUser.id,JSON.stringify({query:_.omit(m.query,"queue")})),m.promise=s.voiceQueueReport.getVoiceQueuesReport(m.query,g).$promise},m.refreshContacts=function(){m.showTooltip=!1,m.getContacts()},m.onInit=p,m.reserved=function(e,t){e&&(m.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?m.currentUser.name:null,assigned:e.assigned,disposition:t||null}).$promise.catch(function(e){console.log(e)}).finally(function(){m.disable[e.id]=!1}))},m.onSavevoiceQueueReport=function(e){m.queuesMap&&"inbound"===e.type&&m.queuesMap[e.queue]&&(m.showTooltip=!0)},m.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(m.contacts.rows,["id",e.id]);0<=t&&_.merge(m.contacts.rows[t],e)}},m.call=e.$parent.$parent.$parent.$parent.vm.call,m.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,m.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,m.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",m.onSavevoiceQueueReport),l.onWithoutApply("voiceQueueReport:update",m.onUpdatevoiceQueueReport),p();var v=!0,h=1;e.$watch("vm_voice.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=h),m.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(t,e,a,n,i,o,s){var r=this;r.user=i.getCurrentUser(),r.license={},r.plugin={},r.setting={},r.sidebar="dashboard",r.navigation=s.getNavigation(),r.addContactTab=t.$parent.vm.addContactTab,r.addInteractionTab=t.$parent.vm.addInteractionTab,r.init=function(e,t){r.license=e,r.setting=t;var n=a.localStorage.getItem("motion2.home:"+r.user.id);if(n)try{n=JSON.parse(n),r.sidebar=n.currentSidebarTab?n.currentSidebarTab:"dashboard"}catch(e){console.error(e),r.sidebar="dashboard"}},r.changeSidebarTab=function(e){r.sidebar=e.view,"plugin"===r.sidebar&&(r.plugin=e.stateParams,r.pluginId=e.id,t.$broadcast("pluginUpdated",{plugin:r.plugin}));a.localStorage.setItem("motion2.home:"+r.user.id,JSON.stringify({currentSidebarTab:e.view}))},r.hasPermission=function(e){return i.hasPermission(e)}}e.$inject=["$scope","$timeout","$window","api","Auth","socket","msNavigationAgentService"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(n,a,e,t,i,o,s,r,l,d){var c=this;function m(e){c.chatInteractions=e||{count:0,rows:[]};for(var t=0;t<c.chatInteractions.rows.length;t+=1)p(c.chatInteractions.rows[t])}function u(){c.query.dateStart=void 0,c.query.dateEnd=void 0,c.pickerModel.dateStart&&(c.query.dateStart=c.pickerModel.dateStart,c.query.dateEnd=c.pickerModel.dateEnd),c.chatAccounts.rows.length?(_.includes(_.map(c.chatAccounts.rows,"id"),c.query.account)||(c.query.account=null),c.query.ChatWebsiteId=c.query.account||_.map(c.chatAccounts.rows,"id").join()):c.query.ChatWebsiteId=-1,c.query.offset=(c.query.page-1)*c.query.limit,i.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify({query:c.query})),c.promise=s.chatInteraction.get(c.query,m).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}c.user=r.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,t){n.$parent.vm.addInteractionTab("chat",t)},c.downloadChatInteraction=function(e,o,t){s.chatInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="chat-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.getContactLabel=function(e){if(e.Contact){var t="";t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||"");var n=e.Account?e.Account.mapKey:void 0;return t+=n&&e.Contact[n]?" <"+e.Contact[n]+">":""}return o.instant("DASHBOARDS.UNKNOWN")},c.getUserLabel=function(e){if(e.UserId)return e.UserId===r.getCurrentUser().id?o.instant("DASHBOARDS.ME"):c.usersByKey[e.UserId].fullname+" <"+c.usersByKey[e.UserId].internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.clearAll=function(){c.calendarModel={dateStart:null},c.pickerModel={dateStart:null},c.serviceModel={dateStart:null},c.getChatInteractions()},c.onInit=function(e,t){return c.license=e,c.setting=t,s.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},s.tag.get().$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){return s.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){c.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),c.query=_.omit(c.query,"filter"),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0)}catch(e){console.error(e)}l.on("chatInteraction:save",c.onChatInteractionSave),l.on("chatInteraction:update",c.onChatInteractionSave),l.on("chatInteractionTags:save",c.onChatInteractionTagsSave),l.on("chatMessage:save",c.onChatMessageSave),l.on("chatMessage:update",c.onChatMessageSave),l.on("user_has_chat_interactions:save",c.onChatInteractionOpen),l.on("user_has_chat_interactions:remove",c.onChatInteractionClose),c.getChatInteractions()})},c.onChatInteractionSave=function(e){if(e){var t=_.find(c.chatInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},c.onChatInteractionTagsSave=function(e){if(e){var t=_.find(c.chatInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},c.onChatMessageSave=function(e){if(e&&!e.secret){var t=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},c.onChatInteractionOpen=function(e){var t=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},c.onChatInteractionClose=function(e){var t=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},c.localizationMap={Today:o.instant("DASHBOARDS.TODAY"),Yesterday:o.instant("DASHBOARDS.YESTERDAY"),"This Week":o.instant("DASHBOARDS.THIS_WEEK"),"Last Week":o.instant("DASHBOARDS.LAST_WEEK"),"This Month":o.instant("DASHBOARDS.THIS_MONTH"),"Last Month":o.instant("DASHBOARDS.LAST_MONTH"),"This Year":o.instant("DASHBOARDS.THIS_YEAR"),"Last Year":o.instant("DASHBOARDS.LAST_YEAR"),January:o.instant("DASHBOARDS.JANUARY"),February:o.instant("DASHBOARDS.FEBRUARY"),March:o.instant("DASHBOARDS.MARCH"),April:o.instant("DASHBOARDS.APRIL"),May:o.instant("DASHBOARDS.MAY"),June:o.instant("DASHBOARDS.JUNE"),July:o.instant("DASHBOARDS.JULY"),August:o.instant("DASHBOARDS.AUGUST"),September:o.instant("DASHBOARDS.SEPTEMBER"),October:o.instant("DASHBOARDS.OCTOBER"),November:o.instant("DASHBOARDS.NOVEMBER"),December:o.instant("DASHBOARDS.DECEMBER"),Mon:o.instant("DASHBOARDS.MON"),Tue:o.instant("DASHBOARDS.TUE"),Wed:o.instant("DASHBOARDS.WED"),Thu:o.instant("DASHBOARDS.THU"),Fri:o.instant("DASHBOARDS.FRI"),Sat:o.instant("DASHBOARDS.SAT"),Sun:o.instant("DASHBOARDS.SUN")},c.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=v),c.getChatInteractions())}),n.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(n,t,a,i,e,o,s,r){var l=this;l.currentUser=o.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.getContacts=function(){l.query.ListId=l.getListId(),l.query.offset=(l.query.page-1)*l.query.limit,r.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify({query:l.query})),l.promise=s.cmContact.get(l.query,m).$promise},l.refreshContacts=function(){l.getContacts()},l.mergeContact=function(e,t){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,t){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return s.cmContact.get({id:e}).$promise.then(function(e){t.$parent.vm.addContactTab(e)})},l.call=t.$parent.vm.call,l.onInit=u,l.getListId=function(){var e=_.toString(l.query.ListId);if(e){var t=e.split(","),n=l.defaultLists.split(",");_.isEqual(t,n)||(1<t.length?e=l.defaultLists:_.indexOf(n,t[0])<0&&(e=l.defaultLists))}else e=l.defaultLists;return e},u();var d=!0,c=1;function m(e){l.contacts=e||{count:0,rows:[]}}function u(){var e=r.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(l.query=_.merge(l.query,e.query),l.query=_.omit(l.query,"filter")),s.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),l.defaultLists=l.lists.rows?_.map(l.lists.rows,"id").join(","):void 0,s.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){l.getContacts()})}t.$watch("vm.query.filter",function(e,t){d?a(function(){d=!1}):(t||(c=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=c),l.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,t){var n=t(function(){},999);e.$on("$destroy",function(){n&&(t.cancel(n),n=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,t){c.rpcVoiceQueues[t]&&(c.voiceQueues[t].waiting=c.rpcVoiceQueues[t].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),s.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},s.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,t){c.rpcChatQueues[t]&&(c.chatQueues[t].waiting=c.rpcChatQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("chatQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),s.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,t){c.rpcFaxQueues[t]&&(c.faxQueues[t].waiting=c.rpcFaxQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("faxQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),s.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,t){c.rpcMailQueues[t]&&(c.mailQueues[t].waiting=c.rpcMailQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("mailQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),s.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,t){c.rpcOpenchannelQueues[t]&&(c.openchannelQueues[t].waiting=c.rpcOpenchannelQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),s.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,t){c.rpcSmsQueues[t]&&(c.smsQueues[t].waiting=c.rpcSmsQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("smsQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),s.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,t){c.rpcVoiceQueues[t]&&(c.voiceQueues[t].waiting=c.rpcVoiceQueues[t].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),s.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,s.rpc.getVoiceQueues().$promise}).then(function(e){for(var t=e.rows,n=_.keyBy(t,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=n[i.id]}return s.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(n,a,i,o,s,r,l,t,d,c){var m=this;function e(e){m.faxInteractions=e||{count:0,rows:[]};for(var t=0;t<m.faxInteractions.rows.length;t+=1)p(m.faxInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.faxAccounts.rows.length?(_.includes(_.map(m.faxAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.FaxAccountId=m.query.account||_.map(m.faxAccounts.rows,"id").join()):m.query.FaxAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.faxInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getFaxInteractions=u,m.showFaxInteraction=function(e,t){n.$parent.vm.addInteractionTab("fax",t)},m.downloadFaxInteraction=function(e,o,t){l.faxInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="fax-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),t+=" <"+(e.Contact.fax||"unknown")+">"}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getFaxInteractions()},m.composeFaxInteraction=function(e,t){i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:t.id},e).$promise.then(function(e){c.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("faxInteraction:save",m.onFaxInteractionSave),d.on("faxInteraction:update",m.onFaxInteractionSave),d.on("faxInteractionTags:save",m.onFaxInteractionTagsSave),d.on("faxMessage:save",m.onFaxMessageSave),d.on("faxMessage:update",m.onFaxMessageSave),d.on("user_has_fax_interactions:save",m.onFaxInteractionOpen),d.on("user_has_fax_interactions:remove",m.onFaxInteractionClose),m.getFaxInteractions()})},m.onFaxInteractionSave=function(e){if(e){var t=_.find(m.faxInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onFaxInteractionTagsSave=function(e){if(e){var t=_.find(m.faxInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onFaxMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onFaxInteractionOpen=function(e){var t=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onFaxInteractionClose=function(e){var t=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getFaxInteractions())}),n.$on("$destroy",function(){d.removeAllListeners("faxMessage:save"),d.removeAllListeners("faxMessage:update"),d.removeAllListeners("faxInteraction:save"),d.removeAllListeners("faxInteractionTags:save"),d.removeAllListeners("faxInteraction:update"),d.removeAllListeners("user_has_fax_interactions:save"),d.removeAllListeners("user_has_fax_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(a,n,i,o,s,r,l,t,d,c){var m=this;function e(e){m.mailInteractions=e||{count:0,rows:[]};for(var t=0;t<m.mailInteractions.rows.length;t+=1)p(m.mailInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.mailAccounts.rows.length?(_.includes(_.map(m.mailAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.MailAccountId=m.query.account||_.map(m.mailAccounts.rows,"id").join()):m.query.MailAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.mail:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.mailInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.mailInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getMailInteractions=u,m.showMailInteraction=function(e,t){a.$parent.vm.addInteractionTab("mail",t)},m.downloadMailInteraction=function(e,o,t){l.mailInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="mail-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),e.to&&e.Account&&e.to.indexOf(e.Account.email)<0?t=e.to:t+=" <"+(e.Contact.email||"unknown")+">",t}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getMailInteractions()},m.composeMailInteraction=function(e,t){i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(n){return l.mailAccount.send({id:t.id},n).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(n.attachments&&n.attachments.length)for(var t=0;t<n.attachments.length;t+=1)l.attachment.update({id:n.attachments[t].id},{MailMessageId:_.head(e.Messages).id});c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed?(e.disposition=null,i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!0,locals:{user:m.user,channel:"mail",interaction:e}})):a.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("mailAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.mailAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).then(function(){return l.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){m.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.mail:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("mailInteraction:save",m.onMailInteractionSave),d.on("mailInteraction:update",m.onMailInteractionSave),d.on("mailInteractionTags:save",m.onMailInteractionTagsSave),d.on("mailMessage:save",m.onMailMessageSave),d.on("mailMessage:update",m.onMailMessageSave),d.on("user_has_mail_interactions:save",m.onMailInteractionOpen),d.on("user_has_mail_interactions:remove",m.onMailInteractionClose),m.getMailInteractions()})},m.onMailInteractionSave=function(e){if(e){var t=_.find(m.mailInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onMailInteractionTagsSave=function(e){if(e){var t=_.find(m.mailInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onMailMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.mailInteractions.rows,{id:e.MailInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onMailInteractionOpen=function(e){var t=_.find(m.mailInteractions.rows,{id:e.MailInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onMailInteractionClose=function(e){var t=_.find(m.mailInteractions.rows,{id:e.MailInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;a.$watch("vm.query.filter",function(e,t){g?n(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getMailInteractions())}),a.$on("$destroy",function(){d.removeAllListeners("mailMessage:save"),d.removeAllListeners("mailMessage:update"),d.removeAllListeners("mailInteraction:save"),d.removeAllListeners("mailInteractionTags:save"),d.removeAllListeners("mailInteraction:update"),d.removeAllListeners("user_has_mail_interactions:save"),d.removeAllListeners("user_has_mail_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(n,a,i,o,e,t,s){var r=this;r.currentUser=e.getCurrentUser(),r.lists={},r.contacts={count:0,rows:[]},r.tags={count:0,rows:[]},r.query={includeAll:!0,id:r.currentUser.id,sort:"-updatedAt",limit:10,page:1},r.getContacts=function(){r.query.ListId=r.getListId(),r.query.offset=(r.query.page-1)*r.query.limit,s.localStorage.setItem("motion2.home.mycontacts:"+r.currentUser.id,JSON.stringify({query:r.query})),r.promise=t.user.getContacts(r.query,c).$promise},r.refreshContacts=function(){r.getContacts()},r.mergeContact=function(e,t){o.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:r.currentUser.id,fields:"id,name"})}]},locals:{contacts:r.contacts.rows}})},r.duplicateContact=function(e,t){o.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:r.currentUser.id,fields:"id,name"})}]},locals:{contacts:r.contacts.rows}})},r.openContact=function(e,t){a.$parent.vm.addContactTab(t)},r.call=a.$parent.vm.call,r.onInit=function(){var e=s.localStorage.getItem("motion2.home.mycontacts:"+r.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(r.query=_.omit(e.query,"filter"))}catch(e){console.error(e)}t.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return r.lists=e||{count:0,rows:[]},r.listsMap=_.keyBy(r.lists.rows,"id"),r.defaultLists=r.lists.rows?_.map(r.lists.rows,"id").join(","):void 0,t.tag.get().$promise}).then(function(e){r.tags=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){r.getContacts()})},r.getListId=function(){var e=_.toString(r.query.ListId);if(e){var t=e.split(","),n=r.defaultLists.split(",");_.isEqual(t,n)||(1<t.length?e=r.defaultLists:_.indexOf(n,t[0])<0&&(e=r.defaultLists))}else e=r.defaultLists;return e};var l=!0,d=1;function c(e){r.contacts=e||{count:0,rows:[]}}a.$watch("vm.query.filter",function(e,t){l?i(function(){l=!1}):(t||(d=r.query.page),e!==t&&(r.query.page=1),e||(r.query.page=d),r.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(n,a,i,o,s,r,l,t,d,c){var m=this;function e(e){m.openchannelInteractions=e||{count:0,rows:[]};for(var t=0;t<m.openchannelInteractions.rows.length;t+=1)p(m.openchannelInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.openchannelAccounts.rows.length?(_.includes(_.map(m.openchannelAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.OpenchannelAccountId=m.query.account||_.map(m.openchannelAccounts.rows,"id").join()):m.query.OpenchannelAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.openchannelInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getOpenchannelInteractions=u,m.showOpenchannelInteraction=function(e,t){n.$parent.vm.addInteractionTab("openchannel",t)},m.downloadOpenchannelInteraction=function(e,o,t){l.openchannelInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="openchannel-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),e.from&&(t=e.from),t}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getOpenchannelInteractions()},m.composeOpenchannelInteraction=function(e,t){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeOpenchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){return l.openchannelAccount.send({id:t.id},e).$promise.then(function(e){c.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("openchannelInteraction:save",m.onOpenchannelInteractionSave),d.on("openchannelInteraction:update",m.onOpenchannelInteractionSave),d.on("openchannelInteractionTags:save",m.onOpenchannelInteractionTagsSave),d.on("openchannelMessage:save",m.onOpenchannelMessageSave),d.on("openchannelMessage:update",m.onOpenchannelMessageSave),d.on("user_has_openchannel_interactions:save",m.onOpenchannelInteractionOpen),d.on("user_has_openchannel_interactions:remove",m.onOpenchannelInteractionClose),m.getOpenchannelInteractions()})},m.onOpenchannelInteractionSave=function(e){if(e){var t=_.find(m.openchannelInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onOpenchannelInteractionTagsSave=function(e){if(e){var t=_.find(m.openchannelInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onOpenchannelMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onOpenchannelInteractionOpen=function(e){var t=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onOpenchannelInteractionClose=function(e){var t=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getOpenchannelInteractions())}),n.$on("$destroy",function(){d.removeAllListeners("openchannelMessage:save"),d.removeAllListeners("openchannelMessage:update"),d.removeAllListeners("openchannelInteraction:save"),d.removeAllListeners("openchannelInteractionTags:save"),d.removeAllListeners("openchannelInteraction:update"),d.removeAllListeners("user_has_openchannel_interactions:save"),d.removeAllListeners("user_has_openchannel_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){var d=this;function c(e,t,n){d.license=e,d.setting=t,d.plugin=n}d.currentUser=s.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return o.trustAsResourceUrl(d.plugin.agentUrl)},c(),t.$on("pluginUpdated",function(e,t){d.plugin=t.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){p.voiceRecordings=e||{count:0,rows:[]}}p.currentUser=c.getCurrentUser(),p.voiceRecordings={},p.localizationMap=u,p.pickerModel={dateStart:null},p.table="voiceRecordings",p.query={UserId:p.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,UserId",sort:"-updatedAt",limit:10,page:1,type:null},p.downloadfile=function(i,e){return r.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var t=[e.buffer],n=new Blob(t,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(n)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.success=g,p.getVoiceRecordings=function(){p.query.dateStart=void 0,p.query.dateEnd=void 0,p.pickerModel.dateStart&&(p.query.dateStart=p.pickerModel.dateStart,p.query.dateEnd=p.pickerModel.dateEnd);p.query.offset=(p.query.page-1)*p.query.limit,t.localStorage.setItem("motion2.home.recordings:"+p.currentUser.id,JSON.stringify({query:p.query})),p.promise=r.voiceRecording.get(p.query,g).$promise},p.onInit=function(){var e=t.localStorage.getItem("motion2.home.recordings:"+p.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(p.query=_.omit(e.query,["filter","id"]),p.query.fields="createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,UserId",p.query.UserId=p.currentUser.id)}catch(e){console.error(e)}p.getVoiceRecordings()},p.clearAll=function(){p.pickerModel={dateStart:null},p.getVoiceRecordings()};var v=!0,h=1;e.$watch("vm.query.filter",function(e,t){v?s(function(){v=!1}):(t||(h=p.query.page),e!==t&&(p.query.page=1),e||(p.query.page=h),p.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","api","msUtils","toasty","Auth","$translate","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){var d=this;function c(e){d.scheduledCalls=e||{count:0,rows:[]}}d.currentUser=r.getCurrentUser(),d.priorities=["Lowest","Low","Medium","High","Highest"],d.localizationMap=l,d.pickerModel={dateStart:null},d.scheduledCalls={},d.query={id:d.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},d.queueCampaigns={rows:[],count:0},d.success=c,d.getScheduledCalls=function(){d.query.dateStart=void 0,d.query.dateEnd=void 0,d.pickerModel.dateStart&&(d.query.dateStart=d.pickerModel.dateStart,d.query.dateEnd=d.pickerModel.dateEnd);d.query.id=d.currentUser.id,d.query.includeAll=!0,d.query.offset=(d.query.page-1)*d.query.limit,t.localStorage.setItem("motion2.home.scheduled:"+d.currentUser.id,JSON.stringify({query:d.query})),d.promise=s.user.getScheduledCalls(d.query,c).$promise},d.onInit=function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+d.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(d.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){d.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){d.getScheduledCalls()})},d.clearAll=function(){d.pickerModel={dateStart:null},d.getScheduledCalls()},d.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},d.createOrEditQueueCampaignHopper=function(e,t){a.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:t,hoppers:d.scheduledCalls.rows,license:null,setting:null}})},d.deleteConfirm=function(t,e){var n=a.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){var e;e=t,s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(d.scheduledCalls.rows,{id:e.id}),d.scheduledCalls.count-=1,d.scheduledCalls.rows.length||d.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var t=0;t<e.data.errors.length;t++)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:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var m=!0,u=1;e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=d.query.page),e!==t&&(d.query.page=1),e||(d.query.page=u),d.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(n,a,i,o,s,r,l,t,d,c){var m=this;function e(e){m.smsInteractions=e||{count:0,rows:[]};for(var t=0;t<m.smsInteractions.rows.length;t+=1)p(m.smsInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.smsAccounts.rows.length?(_.includes(_.map(m.smsAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.SmsAccountId=m.query.account||_.map(m.smsAccounts.rows,"id").join()):m.query.SmsAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.smsInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getSmsInteractions=u,m.showSmsInteraction=function(e,t){n.$parent.vm.addInteractionTab("sms",t)},m.downloadSmsInteraction=function(e,o,t){l.smsInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="sms-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),t+=" <"+(e.Contact.mobile||"unknown")+">"}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getSmsInteractions()},m.composeSmsInteraction=function(e,t){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){return l.smsAccount.send({id:t.id},e).$promise.then(function(e){c.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("smsInteraction:save",m.onSmsInteractionSave),d.on("smsInteraction:update",m.onSmsInteractionSave),d.on("smsInteractionTags:save",m.onSmsInteractionTagsSave),d.on("smsMessage:save",m.onSmsMessageSave),d.on("smsMessage:update",m.onSmsMessageSave),d.on("user_has_sms_interactions:save",m.onSmsInteractionOpen),d.on("user_has_sms_interactions:remove",m.onSmsInteractionClose),m.getSmsInteractions()})},m.onSmsInteractionSave=function(e){if(e){var t=_.find(m.smsInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onSmsInteractionTagsSave=function(e){if(e){var t=_.find(m.smsInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onSmsMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onSmsInteractionOpen=function(e){var t=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onSmsInteractionClose=function(e){var t=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getSmsInteractions())}),n.$on("$destroy",function(){d.removeAllListeners("smsMessage:save"),d.removeAllListeners("smsMessage:update"),d.removeAllListeners("smsInteraction:save"),d.removeAllListeners("smsInteractionTags:save"),d.removeAllListeners("smsInteraction:update"),d.removeAllListeners("user_has_sms_interactions:save"),d.removeAllListeners("user_has_sms_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(t,n,e,a,i,o,s,r,l,d){var c=this;function m(e){c.voiceCalls=e||{count:0,rows:[]}}c.currentUser=i.getCurrentUser(),c.voiceCalls={},c.localizationMap=d,c.pickerModel={dateStart:null},c.table="voiceCalls",c.query={UserId:c.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},c.success=m,c.getVoiceCalls=function(){c.query.dateStart=void 0,c.query.dateEnd=void 0,c.pickerModel.dateStart&&(c.query.dateStart=c.pickerModel.dateStart,c.query.dateEnd=c.pickerModel.dateEnd);c.query.offset=(c.query.page-1)*c.query.limit,s.localStorage.setItem("motion2.home.voice:"+c.currentUser.id,JSON.stringify({query:c.query})),c.promise=e.voiceCallReport.get(c.query,m).$promise},c.onInit=function(){return e.tag.get().$promise.then(function(e){c.tags=e||{count:0,rows:[]}}).catch(function(e){a.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),c.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+c.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.omit(e.query,"filter"))}catch(e){console.error(e)}c.getVoiceCalls()})},c.showDetails=function(e){t.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{call:e}})},c.clearAll=function(){c.pickerModel={dateStart:null},c.getVoiceCalls()};var u=!0,p=1;r.$watch("vm.query.filter",function(e,t){u?l(function(){u=!1}):(t||(p=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=p),c.getVoiceCalls())})}e.$inject=["$mdDialog","$document","api","toasty","Auth","$translate","$window","$scope","$timeout","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,t){this.call=t,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this,g=25,v=1024*g*1024;function h(){i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{user:p.user,channel:p.tab.channel,interaction:p.tab.interaction}}).then(function(e){p.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(p.tab)})}function b(e,t){p.tab.message||(p.tab.message=t),i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,message:p.tab.message,type:e,interaction:p.interaction},fullscreen:!0,skipHide:Boolean(p.tab.spy)}).then(function(t){t&&A(t),t.Interaction&&p.interaction&&p.interaction.id&&(t.Interaction.id=p.interaction.id,l.mailInteraction.update(t.Interaction).$promise.then(function(e){e&&e.closed?(p.tab.saved=!0,p.interaction.closed=!0,p.interaction.closedAt=e.closedAt,h()):null!==t.Interaction.substatus&&(p.tab.saved=!0,p.tab.interaction.substatus=t.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(p.tab))}).catch(function(e){console.error(e)}))})}function f(){"mail"!==p.tab.channel&&t(function(){var e=angular.element(n.find("md-content[name*='interaction-content-"+p.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function A(n){if(n)return n["chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId"]=p.interaction["chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId"],n[_.capitalize(p.tab.channel)+"InteractionId"]=p.interaction.id,n.UserId=p.user.id,n.ContactId=p.interaction.ContactId,n.direction="out",n.secret=Boolean(p.tab.spy||n.secret),l[p.tab.channel+"Message"].save(n).$promise.then(function(e){if(e&&e.id&&n.attachments&&n.attachments.length)for(var t=0;t<n.attachments.length;t+=1)l.attachment.update({id:n.attachments[t].id},{MailMessageId:e.id})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){p.tab.areaText="",f()})}function E(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"blue-A700"}}function y(e){e&&e.count&&e.rows.length&&(p.journey=_.concat(p.journey,e.rows))}p.showFooter=!1,p.showInteraction=!1,p.user=c.getCurrentUser(),p.detectBrowser=u.detectBrowser(),p.journey=[],p.acceptedMessages=[],p.omniChannels=["mail","chat","sms","openchannel","fax"],p.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:v,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},p.ngFlow={flow:{}},p.selectedMailShowDetails={},p.selectedMailShowSystemMessage={},p.setting={},p.ctrlMethods={},p.init=function(e,t){p.tab=e,p.tab.saved=!0,p.tab.badges=0,p.setting=t||{},p.tab&&p.tab.channel&&p.tab.interaction&&(p.interaction=p.tab.interaction,l[p.tab.channel+"Interaction"].get({id:p.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(p.interaction=e,p.tab.interaction=e),p.tab.saved=p.interaction.closed,p.queryMessage={id:p.interaction.id,includeAll:!0},"mail"===p.tab.channel?(p.queryMessage.sort="-id",p.queryMessage.offset=0,p.queryMessage.limit=3):(p.queryMessage.sort="id",p.queryMessage.nolimit=!0),l[p.tab.channel+"Interaction"].getMessages(p.queryMessage).$promise}).then(function(e){return p.messages=e||{count:0,rows:[]},l["chat"===p.tab.channel?"chatWebsite":p.tab.channel+"Account"].get({id:p.interaction["chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(p.account=e,p.tab.title=p.account.key||p.account.name,p.interaction.ContactId)return l.cmContact.get({id:p.interaction.ContactId}).$promise}).then(function(e){return e&&(p.contact=e),p.showInteraction=!0,p.contact?(!function(e){if(e&&e.id){for(var t=0;t<p.omniChannels.length;t++)l[p.omniChannels[t]+"Interaction"].get({ContactId:e.id,includeAll:!0}).$promise.then(y);l.voiceCallReport.get({ContactId:e.id,includeAll:!0}).$promise.then(y)}}(p.contact),p.tab.title+=" - "+p.contact.firstName):p.tab.title+=" - "+r.instant(p.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){p.users=e||{count:0,rows:[]},p.usersMap=_.mapValues(_.keyBy(p.users.rows,"id"),"fullname")}).then(function(){if(p.tab.channel&&p.interaction)return l.user["add"+_.upperFirst(p.tab.channel)+"Interactions"]({id:p.user.id,ids:[p.interaction.id]})}).then(function(){return l.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){p.subStatuses=e||{count:0,rows:[]}}).then(function(){return p.getMailAccounts()}).then(function(){return p.getFaxAccounts()}).then(function(){return p.getSmsAccounts()}).then(function(){return p.getOpenchannelAccounts()}).then(function(){return p.getChatWebsites()}).then(function(){return p.getLists()}).catch(function(e){console.error(e),p.showInteraction=!0}).finally(function(){!function(){if(!p.tab.spy)for(var e=0;e<p.messages.rows.length;e+=1)"in"!==p.messages.rows[e].direction||p.messages.rows[e].read||(l[p.tab.channel+"Message"].accept({id:p.messages.rows[e].id,UserId:p.user.id}),p.acceptedMessages.push(p.messages.rows[e].id))}(),f(),m.on(p.tab.channel+"Message:save",p.onMessageSave),m.on(p.tab.channel+"Message:update",p.onMessageSave),m.on(p.tab.channel+"Interaction:save",p.onInteractionSave),m.on(p.tab.channel+"Interaction:update",p.onInteractionSave),m.on("user_has_"+p.tab.channel+"_interactions:save",p.onInteractionOpen),m.on("user_has_"+p.tab.channel+"_interactions:remove",p.onInteractionClose),p.showFooter=!0}))},p.getLabelByMessage=function(e){var t="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":t:e.UserId?p.usersMap?p.usersMap[e.UserId]:t:"System"},p.openContact=function(e,t){try{p.tab&&!p.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(t||p.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},p.openInteraction=function(e,t){try{if(t.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",t);if(t.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",t);if(t.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",t);if(t.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",t);if(t.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",t)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},p.disposeInteraction=h,p.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,skipHide:Boolean(p.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{nolimit:!0,fields:"id,name,color"})}]},locals:{channel:p.tab.channel,interaction:p.tab.interaction}})},p.composeMailInteraction=function(t,e){if(e.inReplyTo){var n=_.find(p.messages.rows,{messageId:e.inReplyTo});if(!n)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){b(t,e&&e.count?e.rows[0]:void 0)}).catch(function(e){console.error(e),b(t,void 0)});b(t,n)}else b(t,e)},p.composeFaxInteraction=function(e){var t={to:[]};t.to.push(p.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,message:t,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:p.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},p.composeSmsInteraction=function(e,t){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,message:t,type:e},fullscreen:!0,skipHide:Boolean(p.tab.spy)}).then(function(e){e&&A(e)})},p.transferLastMessage=function(){if(p.interaction){var e=_.findLast(p.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,interaction:p.interaction,message:e,channel:p.tab.channel}}).then(function(e){p.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(p.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},p.downloadMessage=function(o,e){p.tab.channel&&o.id&&l[p.tab.channel+"Message"].download({id:o.id,attachments:e}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=p.tab.channel+"-message"+o.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.downloadInteraction=function(o,e){p.tab.channel&&o.id&&l[p.tab.channel+"Interaction"].download({id:o.id,attachments:e}).$promise.then(function(e){var t=[e.buffer],n=p.tab.channel+"-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.getMailAccounts=function(){l.user.getMailAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.mailAccounts=e||{count:0,rows:[]}})},p.getFaxAccounts=function(){l.user.getFaxAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.faxAccounts=e||{count:0,rows:[]}})},p.getSmsAccounts=function(){l.user.getSmsAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.smsAccounts=e||{count:0,rows:[]}})},p.getOpenchannelAccounts=function(){l.user.getOpenchannelAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.openchannelAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mail.account"}];for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mail.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.getChatWebsites=function(){l.user.getChatWebsites({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.chatAccounts=e||{count:0,rows:[]}})},p.getLists=function(){l.user.getLists({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.voiceAccounts=e||{count:0,rows:[]}})},p.reply=function(e,t){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===t.trim())return;A(function(e){var t={},n="chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId";t[n]=p.interaction[n].toString(),t[_.capitalize(p.tab.channel)+"InteractionId"]=p.interaction.id,"sms"===p.tab.channel&&(t.phone=p.interaction.phone);e&&(t.UserId=p.user.id,t.ContactId=p.interaction.ContactId,t.body=e,t.createdAt=Date.now());return t}(t.replace(/\n$/,"")))},p.upload=function(){p.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},p.ngFlow.flow.upload()},p.fileAdded=function(e){if(e.size>v)return d.error({title:"File too big",msg:"The max allowed size is "+g+"MB"}),!1;return!0},p.fileSuccess=function(e,t){var n=JSON.parse(t),a=n.name;"chat"===p.tab.channel&&(a='<a href="'+(p.account.remote?p.account.remote:s.protocol()+"://"+s.host())+"/api/chat/interactions/"+p.interaction.id+"/attachment_download?attachId="+n.id+"&token="+p.account.token+'" target="_self">'+n.name+"</a>");A({body:a,AttachmentId:n.id})},p.onMessageSave=function(e){if(e&&p.interaction.id!=e[_.capitalize(p.tab.channel)+"InteractionId"])return;var t=!1;p.messages?t=_.find(p.messages.rows,{id:e.id}):p.messages={rows:[],count:0};t?_.merge(t,e):("mail"===p.tab.channel?p.messages.rows.unshift(e):p.messages.rows.push(e),f())},p.onInteractionSave=function(e){if(e&&p.interaction.id!==e.id)return;e.closed&&(p.tab.saved=!0);_.merge(p.interaction,e)},p.searchTextChange=function(t){var n=o.defer(),a=[],e={},i="chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId";return e.filter=t,e[i]=p.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},p.selectedItemChange=function(t){if(t){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(t.value),n={user:p.user,account:p.account,interaction:p.interaction,contact:p.interaction&&p.interaction.Contact?p.interaction.Contact:{}};p.tab.areaText+=" "+e(n),p.ctrlMethods.setText(p.tab.areaText)}catch(e){p.tab.areaText+=" "+t.value,p.ctrlMethods.setText(p.tab.areaText)}p.selectedItem=null,p.changeDisplayCannedAnswerInputValue()}},p.getIconByChannel=function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";default:return"icon-hangouts"}},p.getColorByChannel=E,p.getColorByItem=function(e){var t="";e.FaxAccountId?t="fax":e.OpenchannelAccountId?t="openchannel":e.SmsAccountId?t="sms":e.MailAccountId?t="mail":e.ChatWebsiteId?t="chat":e.amaflags&&(t="voice");return E(t)},p.getMessagesAlignment=function(e){if(e.secret&&p.user.id!=e.UserId)return"in";switch(p.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},p.displayCannedAnswerInput=!1,p.changeDisplayCannedAnswerInputValue=function(){p.displayCannedAnswerInput=!p.displayCannedAnswerInput},p.setAs=function(e){p.tab.channel&&p.interaction&&p.interaction.id&&l[p.tab.channel+"Interaction"].update({id:p.interaction.id,substatus:e,substatusAt:Date.now()}).$promise.catch(function(e){console.error(e)})},p.markAsUnread=function(){if(p.tab.channel&&p.interaction&&p.interaction.id)if(p.acceptedMessages.length)for(var e=0;e<p.acceptedMessages.length;e+=1)l[p.tab.channel+"Message"].update({id:p.acceptedMessages[e],read:!1,UserId:null});else for(var t=0;t<p.messages.rows.length;t+=1)if("in"===p.messages.rows[t].direction){p.messages.rows[t].UserId===p.user.id?l[p.tab.channel+"Message"].update({id:p.messages.rows[t].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}p.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(p.tab)},p.isMyAccount=function(e){{if(e.FaxAccountId)return _.includes(_.map(p.faxAccounts?p.faxAccounts.rows:[],"id"),e.FaxAccountId);if(e.OpenchannelAccountId)return _.includes(_.map(p.openchannelAccounts?p.openchannelAccounts.rows:[],"id"),e.OpenchannelAccountId);if(e.SmsAccountId)return _.includes(_.map(p.smsAccounts?p.smsAccounts.rows:[],"id"),e.SmsAccountId);if(e.MailAccountId)return _.includes(_.map(p.mailAccounts?p.mailAccounts.rows:[],"id"),e.MailAccountId);if(e.ChatWebsiteId)return _.includes(_.map(p.chatAccounts?p.chatAccounts.rows:[],"id"),e.ChatWebsiteId);if(e.amaflags)return!0}return!1},p.getAttachments=function(t){return l.attachment.get({MailMessageId:t.id}).$promise.then(function(e){e&&e.rows&&(t.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var t=new Blob([e.buffer],{type:e.type}),n=document.createElement("a"),a=window.URL.createObjectURL(t);n.href=a,n.target="_self",n.download=i.name,document.body.appendChild(n),n.click(),setTimeout(function(){document.body.removeChild(n),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},p.onInteractionOpen=function(e){var t;p.interaction.id==e[_.upperFirst(p.tab.channel)+"InteractionId"]&&(p.interaction.Users&&(t=_.find(p.interaction.Users,{id:e.UserId})),t||p.interaction.Users.push({id:e.UserId}))},p.onInteractionClose=function(e){p.interaction.id==e[_.upperFirst(p.tab.channel)+"InteractionId"]&&p.interaction.Users&&_.remove(p.interaction.Users,{id:e.UserId})},p.loadNextPage=function(){var n=o.defer();if(p.queryMessage)return p.queryMessage.offset=p.messages.rows.length,l[p.tab.channel+"Interaction"].getMessages(p.queryMessage).$promise.then(function(e){for(var t=0;t<e.rows.length;t+=1)p.messages.rows.push(e.rows[t]),"in"!==e.rows[t].direction||e.rows[t].read||(l[p.tab.channel+"Message"].accept({id:e.rows[t].id,UserId:p.user.id}),p.acceptedMessages.push(e.rows[t].id));return n.resolve(e)}).catch(function(e){return n.reject(e)});return n.reject()},p.timelineOptions={scrollEl:"#interaction-content"},a.$on("$destroy",function(){m.removeAllListeners(p.tab.channel+"Message:save"),m.removeAllListeners(p.tab.channel+"Message:update"),m.removeAllListeners(p.tab.channel+"Interaction:save"),m.removeAllListeners(p.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+p.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+p.tab.channel+"_interactions:remove")})}function t(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(n){n.updateView=function(){var e,t=_.replace(n.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');n.trustedHtml=a.trustAsHtml(t)},n.$watch("ngBindHtmlUnsafe",function(e,t){n.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils"],t.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",t).filter("getChannelByItem",function(){return function(e,t,n,a){for(var i=[],o=0;o<e.length;o+=1){var s=!0;switch(t){case"voice":s=Boolean(e[o].uniqueid);break;case"chat":s=Boolean(e[o].ChatWebsiteId);break;case"mail":s=Boolean(e[o].MailAccountId);break;case"sms":s=Boolean(e[o].SmsAccountId);break;case"fax":s=Boolean(e[o].FaxAccountId);break;case"openchannel":s=Boolean(e[o].OpenchannelAccountId);break;default:s=!0}s&&n&&a&&(s=moment(e[o].createdAt).isBetween(n,a)),s&&i.push(e[o])}return i}}).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(o.draft=void 0,n.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,t){try{(t=JSON.parse(t)).size=e.size,c.message.attachments.push(t)}catch(e){console.error(e)}},c.fileAdded=function(e){var t=["pdf","tif"];if(!_.includes(t,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+t.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var t="";e.firstName&&e.firstName!==e.fax&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(t+=e.lastName+" ");return t+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var t=e;if(_.isObject(e))return e.fax;if(n=t,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(n))return t;var n;return l.error("Fax "+t+" is not valid"),null},c.closeDialog=function(){o.draft=c.message,n.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(t,e,i,n,o,s,a,r,l,d,c,m){var u=this,p=25,g=1024*p*1024;switch(u.currentUser=c.getCurrentUser(),u.secret="note"===a,u.hiddenCC=!0,u.hiddenBCC=!0,u.verifySmtp=!0,u.errors=[],u.separatorKeys=[n.KEY_CODE.ENTER,n.KEY_CODE.COMMA,n.KEY_CODE.TAB],u.searchTextChange=function(t){var n=d.defer(),a=[];return r.cannedAnswer.get({filter:t,MailAccountId:o.id}).$promise.then(function(e){return a=_.concat(a,e.rows),r.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},u.selectedItemChange=function(t){if(t&&t.value&&u.ckEditorInstance)try{var e=_.template(t.value),n={user:u.currentUser,account:o,interaction:m,contact:m&&m.Contact?m.Contact:{}};u.ckEditorInstance.insertHtml(e(n))}catch(e){console.error(e),u.ckEditorInstance.insertHtml(t.value)}document.getElementById("html-area").focus(),u.selectedItem=null},u.onReadyEditor=function(e){try{u.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,u.fromTemplate=_.template("{{ name }} <{{ email }}>"),u.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),u.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),u.message={from:u.fromTemplate({name:o.name,email:o.email||o.Smtp.user}),to:[],cc:[],bcc:[],body:b(),type:a,attachments:[],showLastMessage:!0},u.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:u.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,font_defaultLabel:o.fontFamily?o.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:o.fontSize||"12",removePlugins:"magicline"},u.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:g,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},u.ngFlow={flow:{}},u.reply=function(e){angular.isDefined(s)&&(u.message.type="reply",u.message.to="in"===s.direction?s.from.split(","):s.to.split(","),u.message.subject=_.startsWith(s.subject,"Re:")?s.subject:"Re: "+s.subject,u.message.inReplyTo=s.messageId,u.message.body=s.draft&&s.draft.inReplyTo?s.draft.body:b(),u.message.attachments=s.draft?s.draft.attachments:[],e&&s.cc&&(u.hiddenCC=!1,u.message.cc=s.cc.split(",")),u.message.showLastMessage=!!s.draft&&s.draft.showLastMessage)},u.newMail=function(){angular.isDefined(s)&&(u.message.type="new",u.message.to=s.to?s.to.split(","):[])},u.forward=function(){if(angular.isDefined(s)){if(u.message.type="forward",u.message.subject=_.startsWith(s.subject,"Fwd:")?s.subject:"Fwd: "+s.subject,u.message.body=s.draft&&!s.draft.inReplyTo?s.draft.body:b(),s.Attachments&&s.Attachments.length)for(var e=0;e<s.Attachments.length;e++)u.message.attachments.push(s.Attachments[e]);u.message.showLastMessage=!!s.draft&&s.draft.showLastMessage}},u.send=function(e,t,n){if(u.message.to&&u.message.body)if(u.message.to.length)if(s.draft=void 0,_.isEmpty(u.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){v(t,n)})}else v(t,n);else l.error("To is mandatory")},u.note=function(){u.type="note",u.secret=!0,u.message.body='<div style="font-family:'+o.fontFamily+";font-size:"+o.fontSize+'px"><p></p></div>'},u.addNote=function(){u.message.body&&(u.message.draft=void 0,i.hide({secret:!0,body:u.message.body,attach:u.message.attachments.length,attachments:u.message.attachments}))},u.upload=function(e){u.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+t.get("motion.token")},u.ngFlow.flow.upload()},u.fileSuccess=function(e,t){try{(t=JSON.parse(t)).size=e.size,u.message.attachments.push(t)}catch(e){console.error(e)}},u.deleteAttachment=function(e){u.message.attachments=_.reject(u.message.attachments,{id:e.id}),r.attachment.delete({id:e.id}).$promise.then(function(){l.success({title:"Attachment deleted!",msg:e.name?e.name+" has been deleted!":""})})},u.fileAdded=function(e){if(e.size>g)return l.error({title:"File too big",msg:"The max allowed size is "+p+"MB"}),!1;return!0},u.getContact=function(e){var t="";e.firstName&&e.firstName!==e.email&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(t+=e.lastName+" ");return t+="<"+e.email+">"},u.contactSearch=function(e){return o&&o.ListId?r.cmContact.get({ListId:o.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},u.transformContact=function(e,t){if(_.isObject(e))return e.email;if(_.isString(e)){if(h(e))return e;for(var n=e.split(","),a=0;a<n.length;a+=1)h(n[a])?_.isArray(t)&&_.indexOf(t,n[a])<0&&t.push(n[a]):l.error("Email "+n[a]+" is not valid");return null}return l.error("Email field is not valid"),null},u.closeDialog=function(){angular.isDefined(s)&&(s.draft=u.message);i.cancel()},u.loadLastMessage=function(){u.message.body+=f(u.message.type)},a){case"reply":u.reply(!1);break;case"replyAll":u.reply(!0);break;case"forward":u.forward();break;case"new":u.newMail();break;case"note":u.note()}function v(e,t){var n={from:u.message.from,to:u.message.to.join(","),cc:u.message.cc.join(","),bcc:u.message.bcc.join(","),subject:u.message.subject,body:u.message.showLastMessage?u.message.body:u.message.body+f(u.message.type),inReplyTo:u.message.inReplyTo,attach:u.message.attachments.length,attachments:u.message.attachments,Interaction:{lastMsgAt:moment().format("YYYY-MM-DD HH:mm:ss"),lastMsgDirection:"out",lastMsgBody:u.message.body,substatus:t,substatusAt:moment().format("YYYY-MM-DD HH:mm:ss")}};n.html='<div id="xm-mail-content">'+_.replace(n.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(n.Interaction.closed=!0,n.Interaction.closedAt=moment().format("YYYY-MM-DD HH:mm:ss")),i.hide(n)}function h(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function b(){return'<div style="font-family:'+o.fontFamily+";font-size:"+o.fontSize+'px">'+function(){if(_.isNil(o.template))return"";try{return _.template(o.template)({user:u.currentUser,account:o,interaction:m,contact:m&&m.Contact?m.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function f(e){var t,n,a='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":a+=u.replyTemplate({date:moment(s.createdAt).format("D MMM YYYY")||"",time:moment(s.createdAt).format("HH:mm")||"",from:_.escape(s.from)||""});break;case"forward":a+=u.forwardTemplate({date:moment(s.createdAt).format("D MMM YYYY")||"",time:moment(s.createdAt).format("HH:mm")||"",from:_.escape(s.from)||"",to:_.escape(s.to)||"",subject:_.escape(s.subject)||""})}return a+="<br><br>",a+=(t=s.body?_.replace(s.body,'<div id="xm-mail-content"',"<div"):"",(n=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?n[1]:t),a+="</blockquote></div>",e?a:""}r.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){u.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.secret||r.mailAccount.verifySmtp({id:o.id}).$promise.catch(function(e){u.verifySmtp=!1,u.errors.push({message:e.data,type:e.status}),u.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","Auth","interaction"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(t){var n=c.defer(),a=[];return l.cannedAnswer.get({filter:t,OpenchannelAccountId:o.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},p.selectedItemChange=function(t){if(t){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(t.value),n={user:p.currentUser,account:o};p.message.body+=" "+e(n),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+t.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:o.phone,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(t=p.message.body,a.hide({to:p.message.to.join(","),body:t})):d.error("To is mandatory"));var t},p.getContact=function(e){var t="";e.firstName&&e.firstName!==e[o.mapKey]&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e[o.mapKey]&&(t+=e.lastName+" ");return t+="<"+e[o.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(o&&o.ListId){var t="firstName,lastName,phone,mobile";return o.mapKey&&(t+=","+o.mapKey),l.cmContact.get({ListId:o.ListId,nolimit:!0,filter:e,fields:t}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var t=e;if(_.isObject(t))return e[o.mapKey];return t},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(t){var n=c.defer(),a=[];return l.cannedAnswer.get({filter:t,SmsAccountId:o.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},p.selectedItemChange=function(t){if(t){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(t.value),n={user:p.currentUser,account:o};p.message.body+=" "+e(n),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+t.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:o.phone,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(t=p.message.body,a.hide({to:p.message.to.join(","),body:t})):d.error("To is mandatory"));var t},p.getContact=function(e){var t="";e.firstName&&e.firstName!==e.mobile&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(t+=e.lastName+" ");return t+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(o&&o.ListId)return l.cmContact.get({ListId:o.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var t=e;if(_.isObject(t))return e.mobile;if(n=t,/^(\+|\d)[0-9]{7,16}$/.test(n))return t;var n;return d.error("Mobile "+t+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(t,n,a,i,o,s){var r=this;function l(e){t.hide(e)}r.errors=[],r.interaction=angular.copy(i),r.dispositions={count:0,rows:[]},r.globalDispositions={count:0,rows:[]},r.channel=o,r.interactionMethod=r.channel+"Interaction",r.interaction.disposition||(r.interaction.disposition=null),r.saveDisposition=function(e){r.errors=[],r.interaction.closed||(r.interaction.closedAt=Date.now());r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",a[r.interactionMethod]?a[r.interactionMethod].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","ChatWebsiteId","OpenchannelId","closed","closedAt","closeReason","disposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,n.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"}),l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l,function(){var e={fields:"id,name",sort:"name",nolimit:!0};switch(o){case"chat":e.ChatWebsiteId=i.ChatWebsiteId;break;case"mail":case"sms":case"fax":case"openchannel":var t=_.capitalize(o)+"AccountId";e[t]=i[t]}a.disposition.get(e).$promise.then(function(e){r.dispositions=e}).catch(function(e){console.error(e)}),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null"}).$promise.then(function(e){r.globalDispositions=e}).catch(function(e){console.error(e)})}()}e.$inject=["$mdDialog","toasty","api","interaction","channel","user"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i,o){var s=this;function r(e){t.hide(e)}s.errors=[],s.tags=o,s.interaction=angular.copy(a),s.interaction.Tags=_.map(s.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),s.channel=i,s.autocompleteRequireMatch=!0,s.saveTag=function(){{if(s.errors=[],e[s.interactionMethod])return e[s.interactionMethod].addTags({id:s.interaction.id,ids:_.map(s.interaction.Tags,"id")}).$promise.then(function(){n.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=s.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},s.closeDialog=r,s.interactionMethod=s.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,o,s,r){var l=this;function d(e){t.hide(e)}l.currentUser=n.getCurrentUser(),l.channel=o.toLowerCase(),l.message=s,l.account=r,l.transfer={id:0,type:"queue"},l.agents=l.queues={count:0,rows:[]},l.queueMethod=l.channel+"Queue",l.queueNotifyMethod=l.channel+"QueueNotify",l.onTransfer=function(){d(!0),e(function(){return a.rpc["agent"===l.transfer.type?"agentNotify":l.queueNotifyMethod]({id:l.transfer.id,messageId:l.message.id,channel:l.channel}).$promise.then(function(e){i.success({title:"Trasfer properly done!",msg:"Transfer "+l.transfer.type+" has been done!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];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.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},l.closeDialog=d,l.init=function(){return a.user.get({fields:"id,name",role:"agent",nolimit:!0}).$promise.then(function(e){return l.agents=e||{count:0,rows:[]},a[l.queueMethod].get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){l.queues=e||{count:0,rows:[]}}).catch(function(e){console.error(e)})},l.init()}e.$inject=["$mdDialog","$timeout","Auth","api","toasty","channel","message","account"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,o,s,e,l,d,t,n,a,r,c){var m=this;function u(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){d.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function p(n,e){var r=t.getCurrentUser();l.jscriptySessionReport.save({starttime:m.starttime,membername:m.call&&m.call.membername?m.call.membername:r.name,calleridname:m.call&&m.call.calleridname?m.call.calleridname:void 0,calleridnum:m.call&&m.call.calleridnum?m.call.calleridnum:void 0,queue:m.call&&m.call.queue?m.call.queue:void 0,uniqueid:m.call&&m.call.uniqueid?m.call.uniqueid:void 0,VoiceQueueId:m.call&&m.call["xmd-voicequeueid"]?m.call["xmd-voicequeueid"]:void 0,ProjectId:m.project&&m.project.id?m.project.id:void 0,projectname:m.project&&m.project.name?m.project.name:void 0,ContactId:m.contact&&m.contact.id?m.contact.id:void 0,completed:e}).$promise.then(function(e){if(e)for(var t=m.getResponseSheetHeaders(),n=m.getResponseSheetRow(),a=m.getQuestionWithResponseList(),i=0;i<t.length;i+=1)if(!_.isEmpty(n[i])){l.jscriptyQuestionReport.save({question:t[i],answer:n[i],questionId:a[i].id,membername:m.call&&m.call.membername?m.call.membername:r.name,calleridname:m.call&&m.call.calleridname?m.call.calleridname:void 0,calleridnum:m.call&&m.call.calleridnum?m.call.calleridnum:void 0,queue:m.call&&m.call.queue?m.call.queue:void 0,uniqueid:m.call&&m.call.uniqueid?m.call.uniqueid:void 0,SessionId:e.id,ProjectId:m.project.id,projectname:m.project.name});for(var o=n[i].toString().split(";"),s=0;s<o.length;s+=1)l.jscriptyAnswerReport.save({question:t[i],questionId:a[i].id,answer:o[s].trim(),membername:m.call&&m.call.membername?m.call.membername:r.name,calleridname:m.call&&m.call.calleridname?m.call.calleridname:void 0,calleridnum:m.call&&m.call.calleridnum?m.call.calleridnum:void 0,queue:m.call&&m.call.queue?m.call.queue:void 0,uniqueid:m.call&&m.call.uniqueid?m.call.uniqueid:void 0,SessionId:e.id,ProjectId:m.project.id,projectname:m.project.name})}return e}).then(function(e){e?n.resolve(!0):n.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});n.reject()})}m.formViewer={},m.showResetButton=!0,m.showIncompleteSubmitButton=!1,m.detectBrowser=c.detectBrowser(),m.onSubmit=function(e,t){var n=o.defer();if(t){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){p(n,!1)},function(){n.resolve()})}else p(n,!0);return n.promise.then(function(e){e&&(d.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){d.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(m.tab))}).catch(function(e){d.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},m.openContact=function(e,t){try{i.$parent.$parent.$parent.vm.addContactTab(t)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},m.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},m.getResponseSheet=function(){return e.getResponseSheet(m.project.formData,m.project.responseData,!1)},m.getResponseSheetRow=function(){return e.getResponseSheetRow(m.project.formData,m.project.responseData)},m.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(m.project.formData,!1)},m.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(m.project.formData,m.project.responseData)},m.init=function(e){m.tab=e,m.tab&&(m.call=m.tab.call,m.starttime=m.tab.openedAt,m.contact=m.tab.contact,m.project=m.tab.project,m.project&&(_.isObjectLike(m.project.formData)?m.project.formData=m.project.formData:m.isJsonString(m.project.formData)?m.project.formData=JSON.parse(m.project.formData):m.project.formData=void 0,m.project.responseData=m.project.responseData||{},void 0!==m.project.currentPage&&r(function(){a.$broadcast("mwForm.pageEvents.changePage",{page:m.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,t){if(t.currentPage&&(m.project.currentPage=t.currentPage.number-1,u(),m.project.enableUncompleteSave&&(1<=t.currentPage.number&&t.currentPage.number<m.project.formData.pages.length?m.showIncompleteSubmitButton=!0:m.showIncompleteSubmitButton=!1),m.project.formData&&m.project.formData.pages))for(var n=0,a=m.project.formData.pages.length;n<a;n++)if(t.currentPage.number<n+1&&m.project.formData.pages[n].elements)for(var i=0,o=m.project.formData.pages[n].elements.length;i<o;i++)"question"===m.project.formData.pages[n].elements[i].type&&m.project.formData.pages[n].elements[i].question&&delete m.project.responseData[m.project.formData.pages[n].elements[i].question.id]})))},m.resetViewer=function(e){if(m.formViewer.reset){var t=s.confirm().title(n.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(n.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(n.instant("JSCRIPTY.YES")).cancel(n.instant("JSCRIPTY.NO"));s.show(t).then(function(){m.showIncompleteSubmitButton=!1,m.project.currentPage=void 0,u(),m.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(n,a,e,t,i){var o=this;function s(){return function(e){if(404===e.status)a.info({title:n.instant("DASHBOARDS.ATTENTION"),msg:n.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}o.notification=e,o.user=i.getCurrentUser(),o.accept=function(e){{if(t[o.notification.channel+"Message"])return t[o.notification.channel+"Message"].accept({id:o.notification.id,UserId:o.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(s());a.error({title:"API:ERROR",msg:"API accept message not found: "+o.notification.channel+"Message"})}},o.reject=function(e){{if(t[o.notification.channel+"Message"])return t[o.notification.channel+"Message"].reject({id:o.notification.id,UserId:o.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(s());a.error({title:"API:ERROR",msg:"API reject message not found: "+o.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var t=this;t.init=function(e){t.tab=e,t.tab&&(t.tab.saved=!0,t.html=t.tab.html)}})}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:e.ChatWebsiteId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("chatInteraction:save",i.onSaveChatInteraction),t.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("chatInteraction:save"),t.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;function d(){o({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){s({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking: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},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},n.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=t(function(){d(),c()},999),n.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){n.removeAllListeners("voice_queue:save"),n.removeAllListeners("campaign:save"),l.interval&&t.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:e.FaxAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("faxInteraction:save",i.onSaveFaxInteraction),t.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("faxInteraction:save"),t.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:e.MailAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("mailInteraction:save",i.onSaveMailInteraction),t.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("mailInteraction:save"),t.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:e.OpenchannelAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),t.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("openchannelInteraction:save"),t.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:e.SmsAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("smsInteraction:save",i.onSaveSmsInteraction),t.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("smsInteraction:save"),t.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(n){var i=[],o=function(){var n=i[0],a={waiting:0,talking:0,pTalking: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(n.queues,function(e,t){n.rpcQueues[t]&&(a.waiting+=n.rpcQueues[t].waiting||0,a.talking+=(n.rpcQueues[t].talking||0)+(n.rpcQueues[t].pTalking||0),a.answered+=n.rpcQueues[t].answered||0,a.abandoned+=n.rpcQueues[t].abandoned||0,a.sumHoldTime+=n.rpcQueues[t].sumHoldTime||0,a.sumBillable+=n.rpcQueues[t].sumBillable||0,a.total+=n.rpcQueues[t].total||0,a.originated+=n.rpcQueues[t].originated||0,a.outboundDropCallsDayCallersExit+=n.rpcQueues[t].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=n.rpcQueues[t].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),n.defer.resolve(a),0<i.length&&o()};return function(e){var t=n.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:t}),1===i.length&&o(),t.promise}}function t(n){var i=[],o=function(){var n=i[0],a={originated:0,limitCalls:0};_.forIn(n.rpcCampaigns,function(e,t){n.rpcCampaigns[t]&&(a.originated+=n.rpcCampaigns[t].originated||0,a.limitCalls+=n.rpcCampaigns[t].limitCalls||0)}),i.shift(),n.defer.resolve(a),0<i.length&&o()};return function(e){var t=n.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:t}),1===i.length&&o(),t.promise}}function n(e,s,t,n){var r=this;r.hasPermission=function(){return t.hasPermission(101)||t.hasRole("admin")},r.license=n,e.$on("$stateChangeSuccess",function(e,t,n,a,i){var o=[];r.license.voice&&o.push("app.dashboards.general.voice"),r.license.dialer&&o.push("app.dashboards.general.dialer"),r.license.chat&&o.push("app.dashboards.general.chat"),r.license.mail&&o.push("app.dashboards.general.mail"),r.license.messaging&&o.push("app.dashboards.general.sms"),r.license.openchannel&&o.push("app.dashboards.general.openchannel"),r.license.fax&&o.push("app.dashboards.general.fax"),r.selectedTab=_.indexOf(o,t.name),r.selectedTab<0&&(r.selectedTab=0)<o.length&&s.go(_.first(o))})}e.$inject=["$q"],t.$inject=["$q"],n.$inject=["$scope","$state","Auth","license"],angular.module("app.dashboards").filter("secToTime",function(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",t).controller("UserDashboardGeneralController",n)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){o({queues:s.inboundQueues,rpcQueues:s.rpcQueues}).then(function(e){s.inbound=e})}s.inboundQueues=n?_.keyBy(n.rows?n.rows:[],"id"):{},s.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.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},s.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},s.onSaveQueue=function(e){s.inboundQueues[e.id]&&s.rpcQueues[e.id]&&(s.rpcQueues[e.id]=e,r())},s.onSaveOutbound=function(e){s.outbound=e},t.on("voice_queue:save",s.onSaveQueue),t.on("voice_outbound:save",s.onSaveOutbound),r(),e.$on("$destroy",function(){t.removeAllListeners("voice_queue:save"),t.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="FAX.EDIT_FAXACCOUNT",u.faxAccount=angular.copy(r),u.faxAccounts=s,u.newFaxAccount=!1,u.faxAccount||(u.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="FAX.NEW_FAXACCOUNT",u.newFaxAccount=!0),t.params.id&&(u.faxAccount.FaxAccountId=t.params.id),u.addNewFaxAccount=function(){u.errors=[],l.faxAccount.addAccountApplications(u.faxAccount).$promise.then(function(e){var t="add"+_.upperFirst("faxAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.faxAccounts.unshift(e.toJSON()),i.success({title:"FaxAccount properly created",msg:u.faxAccount.name?u.faxAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.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.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFaxAccount=function(){u.errors=[],l.faxAccount.updateAccountApplications(u.faxAccount).$promise.then(function(e){var t=_.find(u.faxAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"FaxAccount properly saved!",msg:u.faxAccount.name?u.faxAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteFaxAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.faxAccount.delete({id:u.faxAccount.id}).$promise.then(function(){return l.faxAccount.getAgents({id:u.faxAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("faxAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.faxAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.faxAccounts,{id:u.faxAccount.id}),i.success({title:"FaxAccount properly deleted!",msg:(u.faxAccount.name||"faxAccount")+" has been deleted!"}),p(u.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})}),l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","faxAccounts","faxAccount","api","Auth","license","setting"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.faxAccountApps.rows.length){var n=r.faxAccountApps.rows[t]?r.faxAccountApps.rows[t]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:n,faxAccount:r.faxAccount}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[t]=e:r.faxAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.faxAccountApps.rows.length;n++,0){var a=r.faxAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.faxAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=s.faxAccount.getApplications(r.query,n).$promise},r.editFaxAccountApp=t,r.editInterval=function(e,t){if(r.faxAccountApps.rows.length){var n=r.faxAccountApps.rows[t]?r.faxAccountApps.rows[t]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.faxAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.faxAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("FAX.ALL_AGENTS"),labelSelected:s.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,t){a.faxAccount[t?"removeAgents":"addAgents"]({id:l.faxAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"FaxAccount properly "+(t?"removed":"added"),msg:"FaxAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("fax")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.faxAccount={},c.faxAccountFaxDispositions={count:0,rows:[]},c.selectedFaxAccountFaxDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.faxAccount=e,c.query.id=c.faxAccount.id,c.query.FaxAccountId=c.faxAccount.id,c.getFaxAccountFaxDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the faxDisposition?").htmlContent("<b>"+(e.name||"faxDisposition")+"</b> will be deleted.").ariaLabel("delete faxDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getFaxAccountFaxDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.faxAccount.getDispositions(c.query,p).$promise},c.createOrEditFaxAccountFaxDisposition=function(e,t){o.show({controller:"CreateOrEditFaxDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:c.faxAccount,faxDisposition:t,faxDispositions:c.faxAccountFaxDispositions.rows,license:null,setting:null}})},c.exportSelectedFaxAccountFaxDispositions=function(){var e=angular.copy(c.selectedFaxAccountFaxDispositions);return c.selectedFaxAccountFaxDispositions=[],e},c.deleteFaxAccountFaxDisposition=g,c.deleteSelectedFaxAccountFaxDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected faxDispositions?").htmlContent("<b>"+c.selectedFaxAccountFaxDispositions.length+" selected</b> will be deleted.").ariaLabel("delete faxDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedFaxAccountFaxDispositions.forEach(function(e){g(e)}),c.selectedFaxAccountFaxDispositions=[]})};var m=!0,u=1;function p(e){c.faxAccountFaxDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.faxAccountFaxDispositions.rows,{id:e.id}),c.faxAccountFaxDispositions.count-=1,c.faxAccountFaxDispositions.rows.length||c.getFaxAccountFaxDispositions(),r.success({title:"FaxDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getFaxAccountFaxDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountFaxDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="FAX.EDIT_FAXDISPOSITION",u.faxDisposition=angular.copy(r),u.faxDispositions=s,u.newFaxDisposition=!1,u.faxDisposition||(u.faxDisposition={},u.title="FAX.NEW_FAXDISPOSITION",u.newFaxDisposition=!0),t.params.id&&(u.faxDisposition.FaxAccountId=t.params.id),u.addNewFaxDisposition=function(){u.errors=[],l.disposition.save(u.faxDisposition).$promise.then(function(e){u.faxDispositions.unshift(e.toJSON()),o.success({title:"FaxDisposition properly created",msg:u.faxDisposition.name?u.faxDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFaxDisposition=function(){u.errors=[],l.disposition.update({id:u.faxDisposition.id},u.faxDisposition).$promise.then(function(e){var t=_.find(u.faxDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FaxDisposition properly saved!",msg:u.faxDisposition.name?u.faxDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFaxDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The faxDisposition will be deleted.").ariaLabel("Delete FaxDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.faxDisposition.id}).$promise.then(function(){_.remove(u.faxDispositions,{id:u.faxDisposition.id}),o.success({title:"FaxDisposition properly deleted!",msg:(u.faxDisposition.name||"faxDisposition")+" has been deleted!"}),p(u.faxDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","faxDispositions","faxDisposition","api","Auth","license","setting"],angular.module("app.fax").controller("CreateOrEditFaxDispositionDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.faxAccount={},c.faxAccountInteractions={count:0,rows:[]},c.selectedFaxAccountInteractions=[],c.query={fields:"createdAt,updatedAt,id,Contact.firstName,Owner.name,closedAt,disposition,note,UserId,ContactId,FaxAccountId,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.faxAccount=e,c.query.id=c.faxAccount.id,c.getFaxAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.faxInteractionDownload=function(o,e,t){return l.faxInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="fax-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getFaxAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.faxAccount.getInteractions(c.query,p).$promise},c.createOrEditFaxAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:c.faxAccount,interaction:t,interactions:c.faxAccountInteractions.rows,license:null,setting:null}})},c.spyfaxInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"fax",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(c.selectedFaxAccountInteractions);return c.selectedFaxAccountInteractions=[],e},c.deleteFaxAccountInteraction=g,c.deleteSelectedFaxAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedFaxAccountInteractions.forEach(function(e){g(e)}),c.selectedFaxAccountInteractions=[]})};var m=!0,u=1;function p(e){c.faxAccountInteractions=e||{count:0,rows:[]}}function g(e){l.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.faxAccountInteractions.rows,{id:e.id}),c.faxAccountInteractions.count-=1,c.faxAccountInteractions.rows.length||c.getFaxAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getFaxAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.faxAccount=d||n.params.faxAccount||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.fax.realtime.accounts",{})},c.agentadddialog=function(e,t){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:c.faxAccounts?c.faxAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoFaxAccounts=function(){n.go("app.fax.faxAccounts")},c.saveFaxAccount=function(){s.faxAccount.updateAccountApplications(c.faxAccount).$promise.then(function(){r.success({title:"FaxAccount updated!",msg:c.faxAccount.name?c.faxAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","faxAccount"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.faxAccounts=r||{count:0,rows:[]},v.table="faxAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedFaxAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.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"),"")}),v.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"),"")}),v.editstate=function(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e})},v.interactionsgoto=function(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},v.gotorealtimegoto=function(e,t){n.go("app.fax.realtime.accounts",{})},v.agentadddialog=function(e,t){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:v.faxAccounts?v.faxAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getFaxAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.faxAccount.get(v.query,f).$promise},v.createOrEditFaxAccount=function(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:v.faxAccounts.rows,license:v.license,setting:v.setting}})},v.deleteFaxAccount=A,v.exportSelectedFaxAccounts=function(){var e=angular.copy(v.selectedFaxAccounts);return v.selectedFaxAccounts=[],e},v.deleteSelectedFaxAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+v.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFaxAccounts.forEach(function(e){A(e)}),v.selectedFaxAccounts=[]})},v.deselectFaxAccounts=function(){v.selectedFaxAccounts=[]},v.selectAllFaxAccounts=function(){v.selectedFaxAccounts=v.faxAccounts.rows},l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.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.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.faxAccounts=e||{count:0,rows:[]}}function A(e){l.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.faxAccounts.rows,{id:e.id}),v.faxAccounts.count-=1,v.faxAccounts.rows.length||v.getFaxAccounts(),c.success({title:"FaxAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="FAX.EDIT_FAXQUEUE",u.faxQueue=angular.copy(r),u.faxQueues=s,u.newFaxQueue=!1,u.faxQueue||(u.faxQueue={strategy:"beepall",timeout:10},u.title="FAX.NEW_FAXQUEUE",u.newFaxQueue=!0),u.addNewFaxQueue=function(){u.errors=[],l.faxQueue.save(u.faxQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"fax",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:u.faxQueue.name?u.faxQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.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.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFaxQueue=function(){u.errors=[],l.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(e){var t=_.find(u.faxQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FaxQueue properly saved!",msg:u.faxQueue.name?u.faxQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFaxQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.faxQueue.delete({id:u.faxQueue.id}).$promise.then(function(){return l.faxQueue.getAgents({id:u.faxQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.faxQueue.id],channel:"fax",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.faxQueues,{id:u.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(u.faxQueue.name||"faxQueue")+" has been deleted!"}),p(u.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","faxQueues","faxQueue","api","Auth","license","setting"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.faxQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.faxQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("FAX.ALL_AGENTS"),labelSelected:s.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,t){a.faxQueue[t?"removeAgents":"addAgents"]({id:l.faxQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"FaxQueue properly "+(t?"removed":"added"),msg:"FaxQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.faxQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.faxQueue[t?"removeTeams":"addTeams"]({id:o.faxQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.faxQueue.getTeams({id:o.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.faxQueue=d||e.params.faxQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:c.faxQueues?c.faxQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:c.faxQueues?c.faxQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoFaxQueues=function(){e.go("app.fax.faxQueues")},c.saveFaxQueue=function(){s.faxQueue.update({id:c.faxQueue.id},c.faxQueue).$promise.then(function(){r.success({title:"FaxQueue updated!",msg:c.faxQueue.name?c.faxQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","faxQueue"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.faxQueues=r||{count:0,rows:[]},v.table="faxQueues",v.listOrder="",v.listOrderAsc=null,v.selectedFaxQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:v.faxQueues?v.faxQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:v.faxQueues?v.faxQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.fax.realtime.queues",{})},v.success=f,v.getFaxQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.faxQueue.get(v.query,f).$promise},v.createOrEditFaxQueue=function(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:v.faxQueues.rows,license:v.license,setting:v.setting}})},v.deleteFaxQueue=A,v.exportSelectedFaxQueues=function(){var e=angular.copy(v.selectedFaxQueues);return v.selectedFaxQueues=[],e},v.deleteSelectedFaxQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+v.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFaxQueues.forEach(function(e){A(e)}),v.selectedFaxQueues=[]})},v.deselectFaxQueues=function(){v.selectedFaxQueues=[]},v.selectAllFaxQueues=function(){v.selectedFaxQueues=v.faxQueues.rows};var h=!0,b=1;function f(e){v.faxQueues=e||{count:0,rows:[]}}function A(e){l.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.faxQueues.rows,{id:e.id}),v.faxQueues.count-=1,v.faxQueues.rows.length||v.getFaxQueues(),c.success({title:"FaxQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this;function m(){_.forIn(c.faxAccounts,function(e,t){c.rpcFaxAccounts[t]&&_.merge(e,c.rpcFaxAccounts[t])}),_.forIn(c.faxAccounts,function(t,e){var n={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss")};o.faxAccount.getMessages(n).$promise.then(function(e){return e&&(t.in=e.count||0,t.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),n.direction="out",o.faxAccount.getMessages(n).$promise}).then(function(e){e&&(t.out=e.count||0,t.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}c.count=l&&l.count?l.count:0,c.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},c.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},c.query={sort:"-name",limit:10,page:1},c.success=g,c.$onInit=m,c.getFaxAccounts=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.faxAccount.get(c.query,g).$promise},c.onSave=function(e){c.faxAccounts[e.id]&&_.merge(c.faxAccounts[e.id],e)},c.onFaxMessageSave=function(e){c.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(c.faxAccounts[e.FaxAccountId].in+=1,c.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(c.faxAccounts[e.FaxAccountId].out+=1,c.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},c.goToFaxAccount=function(e,t){i.go("app.fax.faxAccounts.edit",{id:t.id,faxAccount:t})},c.order=[],_.forIn(c.faxAccounts,function(e,t){c.order.push(e.id)}),s.on("faxAccount:save",c.onSave),s.on("faxAccount:update",c.onSave),s.on("faxMessage:save",c.onFaxMessageSave);var u=!0,p=1;function g(e){if(c.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){c.order=[];for(var t=0;t<e.rows.length;t++)c.order.push(e.rows[t].id)}m()}e.$watch("vm.query.filter",function(e,t){u?n(function(){u=!1}):(t||(p=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=p),c.getFaxAccounts())}),e.$on("$destroy",function(){s.removeAllListeners("faxAccount:save"),s.removeAllListeners("faxAccount:update"),s.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"fax",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.faxQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].FaxQueueId].paused++,u.queues[e[t].rows[n].FaxQueueId].loggedInDb++,u.queues[e[t].rows[n].FaxQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].FaxQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"fax",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.faxQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditFaxQueue=function(e,t){a.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.faxQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.FaxQueueId]&&u.queues[e.FaxQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.FaxQueueId]&&u.queues[e.FaxQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.FaxQueueId]&&(u.queues[e.FaxQueueId].loggedInDb+=1,u.queues[e.FaxQueueId].agents[e.UserId]=e.FaxQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.FaxQueueId]&&0<u.queues[e.FaxQueueId].loggedInDb&&(u.queues[e.FaxQueueId].loggedInDb-=1,delete u.queues[e.FaxQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("fax_queue:save",u.onSave),d.on("userFaxQueue:save",u.onSaveMember),d.on("userFaxQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("fax_queue:save"),d.removeAllListeners("userFaxQueue:remove"),d.removeAllListeners("userFaxQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,n.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.fax.realtime.agents");break;case 1:n.go("app.fax.realtime.trunks");break;case 2:n.go("app.fax.realtime.queues");break;case 3:n.go("app.fax.realtime.accounts");break;default:n.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l){var d=this,c=["status","stateRegistry","registry","host","port","internal","state","status"];function m(){for(var e,t=0;t<d.trunks.length;t+=1)0<=(e=_.findIndex(d.rpcTrunks,["id",d.trunks[t].id]))&&_.merge(d.trunks[t],_.pick(d.rpcTrunks[e],c))}function u(e,t,n){0<=t&&_.merge(e[t],_.pick(n,c))}d.count=a.count,d.trunks=a?a.rows:[],d.rpcTrunks=i&&i.rows?i.rows:[],d.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},d.statusClass=r.status,d.stateClass=r.state,d.success=v,d.$onInit=m,d.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},d.getTrunks=function(){d.query.offset=(d.query.page-1)*d.query.limit,d.promise=o.trunk.get(d.query,v).$promise},d.goToTrunk=function(e,t){l.go("app.tools.trunks.edit",{id:t.id})},d.onSave=function(e){var t=_.findIndex(d.trunks,["id",e.id]),n=_.findIndex(d.rpcTrunks,["id",e.id]);u(d.trunks,t,e),u(d.rpcTrunks,n,e)},s.on("trunk:save",d.onSave);var p=!0,g=1;function v(e){d.count=e.count,d.trunks=e&&e.rows?e.rows:[],m()}e.$watch("vm.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=d.query.page),e!==t&&(d.query.page=1),e||(d.query.page=g),d.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,t){this.info=e,this.license=t}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_DESKACCOUNT",u.deskAccount=angular.copy(r),u.deskAccounts=s,u.newDeskAccount=!1,u.deskAccount||(u.deskAccount={type:"integrationTab",authType:"basic",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_DESKACCOUNT",u.newDeskAccount=!0),u.addNewDeskAccount=function(){u.errors=[],l.intDeskAccount.save(u.deskAccount).$promise.then(function(e){u.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:u.deskAccount.name?u.deskAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.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.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDeskAccount=function(){u.errors=[],l.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(e){var t=_.find(u.deskAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"DeskAccount properly saved!",msg:u.deskAccount.name?u.deskAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDeskAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intDeskAccount.delete({id:u.deskAccount.id}).$promise.then(function(){_.remove(u.deskAccounts,{id:u.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(u.deskAccount.name||"deskAccount")+" has been deleted!"}),p(u.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","deskAccounts","deskAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.deskAccounts=r||{count:0,rows:[]},v.table="deskAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedDeskAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",limit:10,page:1},v.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the deskAccount?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getDeskAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intDeskAccount.get(v.query,f).$promise},v.createOrEditDeskAccount=function(e,t){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:t,deskAccounts:v.deskAccounts.rows,license:v.license,setting:v.setting}})},v.deleteDeskAccount=A,v.exportSelectedDeskAccounts=function(){var e=angular.copy(v.selectedDeskAccounts);return v.selectedDeskAccounts=[],e},v.deleteSelectedDeskAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+v.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedDeskAccounts.forEach(function(e){A(e)}),v.selectedDeskAccounts=[]})},v.deselectDeskAccounts=function(){v.selectedDeskAccounts=[]},v.selectAllDeskAccounts=function(){v.selectedDeskAccounts=v.deskAccounts.rows};var h=!0,b=1;function f(e){v.deskAccounts=e||{count:0,rows:[]}}function A(e){l.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.deskAccounts.rows,{id:e.id}),v.deskAccounts.count-=1,v.deskAccounts.rows.length||v.getDeskAccounts(),c.success({title:"DeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","deskAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.deskAccount={},s.deskConfiguration={},s.configurations=[],s.selectedDeskConfiguration=-1,s.init=function(e){s.deskAccount=e,i.intDeskAccount.getConfigurations({id:s.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getDeskConfiguration=function(e){s.deskConfiguration=s.configurations[e],s.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:s.deskConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:s.deskConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:s.deskConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:s.deskConfiguration.id}).$promise.then(function(e){s.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditDeskConfiguration=function(e,t){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getDeskConfiguration(0)})},s.deleteDeskConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(t.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intDeskConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"DeskConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.deskConfiguration.id},s.deskConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedTags=[],s.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:s.deskConfiguration.id,ids:s.selectedTags}).$promise.then(function(){o.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){s.tags=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.deskConfiguration,account:s.deskAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.deskConfiguration,account:s.deskAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.deskConfiguration,account:s.deskAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",u.deskConfiguration=angular.copy(r),u.configurations=s,u.newDeskConfiguration=!1,u.deskConfiguration||(u.deskConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_DESKCONFIGURATION",u.newDeskConfiguration=!0),u.addNewDeskConfiguration=function(){u.errors=[],l.intDeskAccount.addConfiguration({id:t.params.id},u.deskConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:u.deskConfiguration.name?u.deskConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.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.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDeskConfiguration=function(){u.errors=[],l.intDeskConfiguration.update({id:u.deskConfiguration.id},u.deskConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"DeskConfiguration properly saved!",msg:u.deskConfiguration.name?u.deskConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDeskConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intDeskConfiguration.delete({id:u.deskConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(u.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),p(u.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","deskConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intDeskField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intDeskField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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.intDeskField.delete({id:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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.intDeskAccount.getFields({id:l.id}).$promise.then(function(e){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.deskAccount=d||e.params.deskAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts")},c.saveDeskAccount=function(){s.intDeskAccount.update({id:c.deskAccount.id},c.deskAccount).$promise.then(function(){r.success({title:"DeskAccount updated!",msg:c.deskAccount.name?c.deskAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","deskAccount"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",u.freshdeskAccount=angular.copy(r),u.freshdeskAccounts=s,u.newFreshdeskAccount=!1,u.freshdeskAccount||(u.freshdeskAccount={serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",u.newFreshdeskAccount=!0),u.addNewFreshdeskAccount=function(){u.errors=[],l.intFreshdeskAccount.save(u.freshdeskAccount).$promise.then(function(e){u.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.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.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFreshdeskAccount=function(){u.errors=[],l.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(e){var t=_.find(u.freshdeskAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FreshdeskAccount properly saved!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFreshdeskAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intFreshdeskAccount.delete({id:u.freshdeskAccount.id}).$promise.then(function(){_.remove(u.freshdeskAccounts,{id:u.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(u.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),p(u.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.freshdeskAccount={},s.freshdeskConfiguration={},s.configurations=[],s.selectedFreshdeskConfiguration=-1,s.init=function(e){s.freshdeskAccount=e,i.intFreshdeskAccount.getConfigurations({id:s.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getFreshdeskConfiguration=function(e){s.freshdeskConfiguration=s.configurations[e],s.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:s.freshdeskConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:s.freshdeskConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:s.freshdeskConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:s.freshdeskConfiguration.id}).$promise.then(function(e){s.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditFreshdeskConfiguration=function(e,t){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getFreshdeskConfiguration(0)})},s.deleteFreshdeskConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(t.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intFreshdeskConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"FreshdeskConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.freshdeskConfiguration.id},s.freshdeskConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedTags=[],s.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:s.freshdeskConfiguration.id,ids:s.selectedTags}).$promise.then(function(){o.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){s.tags=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.freshdeskConfiguration,account:s.freshdeskAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.freshdeskConfiguration,account:s.freshdeskAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.freshdeskConfiguration,account:s.freshdeskAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",u.freshdeskConfiguration=angular.copy(r),u.configurations=s,u.newFreshdeskConfiguration=!1,u.freshdeskConfiguration||(u.freshdeskConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",u.newFreshdeskConfiguration=!0),u.addNewFreshdeskConfiguration=function(){u.errors=[],l.intFreshdeskAccount.addConfiguration({id:t.params.id},u.freshdeskConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:u.freshdeskConfiguration.name?u.freshdeskConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.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.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFreshdeskConfiguration=function(){u.errors=[],l.intFreshdeskConfiguration.update({id:u.freshdeskConfiguration.id},u.freshdeskConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FreshdeskConfiguration properly saved!",msg:u.freshdeskConfiguration.name?u.freshdeskConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFreshdeskConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intFreshdeskConfiguration.delete({id:u.freshdeskConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(u.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),p(u.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intFreshdeskField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intFreshdeskField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.freshdeskAccount=d||e.params.freshdeskAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts")},c.saveFreshdeskAccount=function(){s.intFreshdeskAccount.update({id:c.freshdeskAccount.id},c.freshdeskAccount).$promise.then(function(){r.success({title:"FreshdeskAccount updated!",msg:c.freshdeskAccount.name?c.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","freshdeskAccount"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.freshdeskAccounts=r||{count:0,rows:[]},v.table="freshdeskAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedFreshdeskAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,page:1},v.editstate=function(e,t){n.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getFreshdeskAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intFreshdeskAccount.get(v.query,f).$promise},v.createOrEditFreshdeskAccount=function(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:v.freshdeskAccounts.rows,license:v.license,setting:v.setting}})},v.deleteFreshdeskAccount=A,v.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(v.selectedFreshdeskAccounts);return v.selectedFreshdeskAccounts=[],e},v.deleteSelectedFreshdeskAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+v.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFreshdeskAccounts.forEach(function(e){A(e)}),v.selectedFreshdeskAccounts=[]})},v.deselectFreshdeskAccounts=function(){v.selectedFreshdeskAccounts=[]},v.selectAllFreshdeskAccounts=function(){v.selectedFreshdeskAccounts=v.freshdeskAccounts.rows};var h=!0,b=1;function f(e){v.freshdeskAccounts=e||{count:0,rows:[]}}function A(e){l.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.freshdeskAccounts.rows,{id:e.id}),v.freshdeskAccounts.count-=1,v.freshdeskAccounts.rows.length||v.getFreshdeskAccounts(),c.success({title:"FreshdeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","freshdeskAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",u.salesforceAccount=angular.copy(r),u.salesforceAccounts=s,u.newSalesforceAccount=!1,u.salesforceAccount||(u.salesforceAccount={type:"integrationTab",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",u.newSalesforceAccount=!0),u.addNewSalesforceAccount=function(){u.errors=[],l.intSalesforceAccount.save(u.salesforceAccount).$promise.then(function(e){u.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.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.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSalesforceAccount=function(){u.errors=[],l.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(e){var t=_.find(u.salesforceAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SalesforceAccount properly saved!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSalesforceAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSalesforceAccount.delete({id:u.salesforceAccount.id}).$promise.then(function(){_.remove(u.salesforceAccounts,{id:u.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(u.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),p(u.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.salesforceAccount={},s.salesforceConfiguration={},s.configurations=[],s.selectedSalesforceConfiguration=-1,s.init=function(e){s.salesforceAccount=e,i.intSalesforceAccount.getConfigurations({id:s.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getSalesforceConfiguration=function(e){s.salesforceConfiguration=s.configurations[e],s.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:s.salesforceConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:s.salesforceConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:s.salesforceConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditSalesforceConfiguration=function(e,t){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getSalesforceConfiguration(0)})},s.deleteSalesforceConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(t.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intSalesforceConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"SalesforceConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.salesforceConfiguration.id},s.salesforceConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.salesforceConfiguration,account:s.salesforceAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.salesforceConfiguration,account:s.salesforceAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.salesforceConfiguration,account:s.salesforceAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",u.salesforceConfiguration=angular.copy(r),u.configurations=s,u.newSalesforceConfiguration=!1,u.salesforceConfiguration||(u.salesforceConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",u.newSalesforceConfiguration=!0),u.addNewSalesforceConfiguration=function(){u.errors=[],l.intSalesforceAccount.addConfiguration({id:t.params.id},u.salesforceConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:u.salesforceConfiguration.name?u.salesforceConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.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.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSalesforceConfiguration=function(){u.errors=[],l.intSalesforceConfiguration.update({id:u.salesforceConfiguration.id},u.salesforceConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SalesforceConfiguration properly saved!",msg:u.salesforceConfiguration.name?u.salesforceConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSalesforceConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSalesforceConfiguration.delete({id:u.salesforceConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(u.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),p(u.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","salesforceConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSalesforceField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSalesforceField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.salesforceAccount=d||e.params.salesforceAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts")},c.saveSalesforceAccount=function(){s.intSalesforceAccount.update({id:c.salesforceAccount.id},c.salesforceAccount).$promise.then(function(){r.success({title:"SalesforceAccount updated!",msg:c.salesforceAccount.name?c.salesforceAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","salesforceAccount"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.salesforceAccounts=r||{count:0,rows:[]},v.table="salesforceAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedSalesforceAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,page:1},v.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSalesforceAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intSalesforceAccount.get(v.query,f).$promise},v.createOrEditSalesforceAccount=function(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:v.salesforceAccounts.rows,license:v.license,setting:v.setting}})},v.deleteSalesforceAccount=A,v.exportSelectedSalesforceAccounts=function(){var e=angular.copy(v.selectedSalesforceAccounts);return v.selectedSalesforceAccounts=[],e},v.deleteSelectedSalesforceAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+v.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSalesforceAccounts.forEach(function(e){A(e)}),v.selectedSalesforceAccounts=[]})},v.deselectSalesforceAccounts=function(){v.selectedSalesforceAccounts=[]},v.selectAllSalesforceAccounts=function(){v.selectedSalesforceAccounts=v.salesforceAccounts.rows};var h=!0,b=1;function f(e){v.salesforceAccounts=e||{count:0,rows:[]}}function A(e){l.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.salesforceAccounts.rows,{id:e.id}),v.salesforceAccounts.count-=1,v.salesforceAccounts.rows.length||v.getSalesforceAccounts(),c.success({title:"SalesforceAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","salesforceAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",u.sugarcrmAccount=angular.copy(r),u.sugarcrmAccounts=s,u.newSugarcrmAccount=!1,u.sugarcrmAccount||(u.sugarcrmAccount={serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",u.newSugarcrmAccount=!0),u.addNewSugarcrmAccount=function(){u.errors=[],l.intSugarcrmAccount.save(u.sugarcrmAccount).$promise.then(function(e){u.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.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.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSugarcrmAccount=function(){u.errors=[],l.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(e){var t=_.find(u.sugarcrmAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SugarcrmAccount properly saved!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSugarcrmAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSugarcrmAccount.delete({id:u.sugarcrmAccount.id}).$promise.then(function(){_.remove(u.sugarcrmAccounts,{id:u.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(u.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),p(u.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.sugarcrmAccount={},s.sugarcrmConfiguration={},s.configurations=[],s.selectedSugarcrmConfiguration=-1,s.init=function(e){s.sugarcrmAccount=e,i.intSugarcrmAccount.getConfigurations({id:s.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getSugarcrmConfiguration=function(e){s.sugarcrmConfiguration=s.configurations[e],s.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:s.sugarcrmConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:s.sugarcrmConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:s.sugarcrmConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditSugarcrmConfiguration=function(e,t){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getSugarcrmConfiguration(0)})},s.deleteSugarcrmConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(t.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intSugarcrmConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"SugarcrmConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.sugarcrmConfiguration.id},s.sugarcrmConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.sugarcrmConfiguration,account:s.sugarcrmAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.sugarcrmConfiguration,account:s.sugarcrmAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.sugarcrmConfiguration,account:s.sugarcrmAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",u.sugarcrmConfiguration=angular.copy(r),u.configurations=s,u.newSugarcrmConfiguration=!1,u.sugarcrmConfiguration||(u.sugarcrmConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",u.newSugarcrmConfiguration=!0),u.addNewSugarcrmConfiguration=function(){u.errors=[],l.intSugarcrmAccount.addConfiguration({id:t.params.id},u.sugarcrmConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:u.sugarcrmConfiguration.name?u.sugarcrmConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.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.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSugarcrmConfiguration=function(){u.errors=[],l.intSugarcrmConfiguration.update({id:u.sugarcrmConfiguration.id},u.sugarcrmConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SugarcrmConfiguration properly saved!",msg:u.sugarcrmConfiguration.name?u.sugarcrmConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSugarcrmConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSugarcrmConfiguration.delete({id:u.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(u.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),p(u.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSugarcrmField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSugarcrmField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.sugarcrmAccount=d||e.params.sugarcrmAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts")},c.saveSugarcrmAccount=function(){s.intSugarcrmAccount.update({id:c.sugarcrmAccount.id},c.sugarcrmAccount).$promise.then(function(){r.success({title:"SugarcrmAccount updated!",msg:c.sugarcrmAccount.name?c.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","sugarcrmAccount"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.sugarcrmAccounts=r||{count:0,rows:[]},v.table="sugarcrmAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedSugarcrmAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,page:1},v.editstate=function(e,t){n.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSugarcrmAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intSugarcrmAccount.get(v.query,f).$promise},v.createOrEditSugarcrmAccount=function(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:v.sugarcrmAccounts.rows,license:v.license,setting:v.setting}})},v.deleteSugarcrmAccount=A,v.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(v.selectedSugarcrmAccounts);return v.selectedSugarcrmAccounts=[],e},v.deleteSelectedSugarcrmAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+v.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSugarcrmAccounts.forEach(function(e){A(e)}),v.selectedSugarcrmAccounts=[]})},v.deselectSugarcrmAccounts=function(){v.selectedSugarcrmAccounts=[]},v.selectAllSugarcrmAccounts=function(){v.selectedSugarcrmAccounts=v.sugarcrmAccounts.rows};var h=!0,b=1;function f(e){v.sugarcrmAccounts=e||{count:0,rows:[]}}function A(e){l.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.sugarcrmAccounts.rows,{id:e.id}),v.sugarcrmAccounts.count-=1,v.sugarcrmAccounts.rows.length||v.getSugarcrmAccounts(),c.success({title:"SugarcrmAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sugarcrmAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",u.vtigerAccount=angular.copy(r),u.vtigerAccounts=s,u.newVtigerAccount=!1,u.vtigerAccount||(u.vtigerAccount={serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_VTIGERACCOUNT",u.newVtigerAccount=!0),u.addNewVtigerAccount=function(){u.errors=[],l.intVtigerAccount.save(u.vtigerAccount).$promise.then(function(e){u.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.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.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVtigerAccount=function(){u.errors=[],l.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(e){var t=_.find(u.vtigerAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VtigerAccount properly saved!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVtigerAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intVtigerAccount.delete({id:u.vtigerAccount.id}).$promise.then(function(){_.remove(u.vtigerAccounts,{id:u.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(u.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),p(u.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.vtigerAccount={},s.vtigerConfiguration={},s.configurations=[],s.selectedVtigerConfiguration=-1,s.init=function(e){s.vtigerAccount=e,i.intVtigerAccount.getConfigurations({id:s.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getVtigerConfiguration=function(e){s.vtigerConfiguration=s.configurations[e],s.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:s.vtigerConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:s.vtigerConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:s.vtigerConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditVtigerConfiguration=function(e,t){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getVtigerConfiguration(0)})},s.deleteVtigerConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(t.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intVtigerConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"VtigerConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.vtigerConfiguration.id},s.vtigerConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.vtigerConfiguration,account:s.vtigerAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.vtigerConfiguration,account:s.vtigerAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.vtigerConfiguration,account:s.vtigerAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",u.vtigerConfiguration=angular.copy(r),u.configurations=s,u.newVtigerConfiguration=!1,u.vtigerConfiguration||(u.vtigerConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",u.newVtigerConfiguration=!0),u.addNewVtigerConfiguration=function(){u.errors=[],l.intVtigerAccount.addConfiguration({id:t.params.id},u.vtigerConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:u.vtigerConfiguration.name?u.vtigerConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.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.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVtigerConfiguration=function(){u.errors=[],l.intVtigerConfiguration.update({id:u.vtigerConfiguration.id},u.vtigerConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VtigerConfiguration properly saved!",msg:u.vtigerConfiguration.name?u.vtigerConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVtigerConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intVtigerConfiguration.delete({id:u.vtigerConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(u.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),p(u.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","vtigerConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intVtigerField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intVtigerField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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.intVtigerField.delete({id:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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.intVtigerAccount.getFields({id:l.id}).$promise.then(function(e){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.vtigerAccount=d||e.params.vtigerAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts")},c.saveVtigerAccount=function(){s.intVtigerAccount.update({id:c.vtigerAccount.id},c.vtigerAccount).$promise.then(function(){r.success({title:"VtigerAccount updated!",msg:c.vtigerAccount.name?c.vtigerAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","vtigerAccount"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.vtigerAccounts=r||{count:0,rows:[]},v.table="vtigerAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedVtigerAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",limit:10,page:1},v.editstate=function(e,t){n.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the vtigerAccount?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVtigerAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intVtigerAccount.get(v.query,f).$promise},v.createOrEditVtigerAccount=function(e,t){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:t,vtigerAccounts:v.vtigerAccounts.rows,license:v.license,setting:v.setting}})},v.deleteVtigerAccount=A,v.exportSelectedVtigerAccounts=function(){var e=angular.copy(v.selectedVtigerAccounts);return v.selectedVtigerAccounts=[],e},v.deleteSelectedVtigerAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+v.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVtigerAccounts.forEach(function(e){A(e)}),v.selectedVtigerAccounts=[]})},v.deselectVtigerAccounts=function(){v.selectedVtigerAccounts=[]},v.selectAllVtigerAccounts=function(){v.selectedVtigerAccounts=v.vtigerAccounts.rows};var h=!0,b=1;function f(e){v.vtigerAccounts=e||{count:0,rows:[]}}function A(e){l.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.vtigerAccounts.rows,{id:e.id}),v.vtigerAccounts.count-=1,v.vtigerAccounts.rows.length||v.getVtigerAccounts(),c.success({title:"VtigerAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","vtigerAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",u.zendeskAccount=angular.copy(r),u.zendeskAccounts=s,u.newZendeskAccount=!1,u.zendeskAccount||(u.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",u.newZendeskAccount=!0),u.addNewZendeskAccount=function(){u.errors=[],l.intZendeskAccount.save(u.zendeskAccount).$promise.then(function(e){u.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.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.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZendeskAccount=function(){u.errors=[],l.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(e){var t=_.find(u.zendeskAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZendeskAccount properly saved!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZendeskAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZendeskAccount.delete({id:u.zendeskAccount.id}).$promise.then(function(){_.remove(u.zendeskAccounts,{id:u.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(u.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),p(u.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZendeskField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZendeskField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.zendeskAccount=d||e.params.zendeskAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts")},c.saveZendeskAccount=function(){s.intZendeskAccount.update({id:c.zendeskAccount.id},c.zendeskAccount).$promise.then(function(){r.success({title:"ZendeskAccount updated!",msg:c.zendeskAccount.name?c.zendeskAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","zendeskAccount"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.zendeskAccount={},s.zendeskConfiguration={},s.zendeskConfigurations=[],s.selectedZendeskConfiguration=-1,s.init=function(e){s.zendeskAccount=e,i.intZendeskAccount.getConfigurations({id:s.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.zendeskConfigurations=e.rows?e.rows:[],s.zendeskConfigurations.length&&s.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getZendeskConfiguration=function(e){s.zendeskConfiguration=s.zendeskConfigurations[e],s.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:s.zendeskConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:s.zendeskConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:s.zendeskConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:s.zendeskConfiguration.id}).$promise.then(function(e){s.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditZendeskConfiguration=function(e,t){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:t,zendeskConfigurations:s.zendeskConfigurations,license:null,setting:null}}).finally(function(){s.getZendeskConfiguration(0)})},s.deleteZendeskConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(t.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intZendeskConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.zendeskConfigurations,{id:t.id}),o.success({title:"ZendeskConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.zendeskConfiguration.id},s.zendeskConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedTags=[],s.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:s.zendeskConfiguration.id,ids:s.selectedTags}).$promise.then(function(){o.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){s.tags=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.zendeskConfiguration,account:s.zendeskAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.zendeskConfiguration,account:s.zendeskAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.zendeskConfiguration,account:s.zendeskAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",u.zendeskConfiguration=angular.copy(r),u.zendeskConfigurations=s,u.newZendeskConfiguration=!1,u.zendeskConfiguration||(u.zendeskConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",u.newZendeskConfiguration=!0),u.addNewZendeskConfiguration=function(){u.errors=[],l.intZendeskAccount.addConfiguration({id:t.params.id},u.zendeskConfiguration).$promise.then(function(e){u.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:u.zendeskConfiguration.name?u.zendeskConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.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.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZendeskConfiguration=function(){u.errors=[],l.intZendeskConfiguration.update({id:u.zendeskConfiguration.id},u.zendeskConfiguration).$promise.then(function(e){var t=_.find(u.zendeskConfigurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZendeskConfiguration properly saved!",msg:u.zendeskConfiguration.name?u.zendeskConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZendeskConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZendeskConfiguration.delete({id:u.zendeskConfiguration.id}).$promise.then(function(){_.remove(u.zendeskConfigurations,{id:u.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(u.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),p(u.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.zendeskAccounts=r||{count:0,rows:[]},v.table="zendeskAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedZendeskAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",limit:10,page:1},v.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getZendeskAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intZendeskAccount.get(v.query,f).$promise},v.createOrEditZendeskAccount=function(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:v.zendeskAccounts.rows,license:v.license,setting:v.setting}})},v.deleteZendeskAccount=A,v.exportSelectedZendeskAccounts=function(){var e=angular.copy(v.selectedZendeskAccounts);return v.selectedZendeskAccounts=[],e},v.deleteSelectedZendeskAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+v.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedZendeskAccounts.forEach(function(e){A(e)}),v.selectedZendeskAccounts=[]})},v.deselectZendeskAccounts=function(){v.selectedZendeskAccounts=[]},v.selectAllZendeskAccounts=function(){v.selectedZendeskAccounts=v.zendeskAccounts.rows};var h=!0,b=1;function f(e){v.zendeskAccounts=e||{count:0,rows:[]}}function A(e){l.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.zendeskAccounts.rows,{id:e.id}),v.zendeskAccounts.count-=1,v.zendeskAccounts.rows.length||v.getZendeskAccounts(),c.success({title:"ZendeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zendeskAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",u.zohoAccount=angular.copy(r),u.zohoAccounts=s,u.newZohoAccount=!1,u.zohoAccount||(u.zohoAccount={host:"zoho.com",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_ZOHOACCOUNT",u.newZohoAccount=!0),u.addNewZohoAccount=function(){u.errors=[],l.intZohoAccount.save(u.zohoAccount).$promise.then(function(e){u.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:u.zohoAccount.name?u.zohoAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.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.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZohoAccount=function(){u.errors=[],l.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(e){var t=_.find(u.zohoAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZohoAccount properly saved!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZohoAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZohoAccount.delete({id:u.zohoAccount.id}).$promise.then(function(){_.remove(u.zohoAccounts,{id:u.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(u.zohoAccount.name||"zohoAccount")+" has been deleted!"}),p(u.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.zohoAccount={},s.zohoConfiguration={},s.configurations=[],s.selectedZohoConfiguration=-1,s.init=function(e){s.zohoAccount=e,i.intZohoAccount.getConfigurations({id:s.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getZohoConfiguration=function(e){s.zohoConfiguration=s.configurations[e],s.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:s.zohoConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:s.zohoConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:s.zohoConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditZohoConfiguration=function(e,t){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getZohoConfiguration(0)})},s.deleteZohoConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(t.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intZohoConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"ZohoConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.zohoConfiguration.id},s.zohoConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.zohoConfiguration,account:s.zohoAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.zohoConfiguration,account:s.zohoAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.zohoConfiguration,account:s.zohoAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",u.zohoConfiguration=angular.copy(r),u.configurations=s,u.newZohoConfiguration=!1,u.zohoConfiguration||(u.zohoConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",u.newZohoConfiguration=!0),u.addNewZohoConfiguration=function(){u.errors=[],l.intZohoAccount.addConfiguration({id:t.params.id},u.zohoConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:u.zohoConfiguration.name?u.zohoConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.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.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZohoConfiguration=function(){u.errors=[],l.intZohoConfiguration.update({id:u.zohoConfiguration.id},u.zohoConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZohoConfiguration properly saved!",msg:u.zohoConfiguration.name?u.zohoConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZohoConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZohoConfiguration.delete({id:u.zohoConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(u.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),p(u.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","zohoConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZohoField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZohoField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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.intZohoField.delete({id:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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.intZohoAccount.getFields({id:l.id}).$promise.then(function(e){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.zohoAccount=d||e.params.zohoAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts")},c.saveZohoAccount=function(){s.intZohoAccount.update({id:c.zohoAccount.id},c.zohoAccount).$promise.then(function(){r.success({title:"ZohoAccount updated!",msg:c.zohoAccount.name?c.zohoAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","zohoAccount"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.zohoAccounts=r||{count:0,rows:[]},v.table="zohoAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedZohoAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",limit:10,page:1},v.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the zohoAccount?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getZohoAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intZohoAccount.get(v.query,f).$promise},v.createOrEditZohoAccount=function(e,t){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:t,zohoAccounts:v.zohoAccounts.rows,license:v.license,setting:v.setting}})},v.deleteZohoAccount=A,v.exportSelectedZohoAccounts=function(){var e=angular.copy(v.selectedZohoAccounts);return v.selectedZohoAccounts=[],e},v.deleteSelectedZohoAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+v.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedZohoAccounts.forEach(function(e){A(e)}),v.selectedZohoAccounts=[]})},v.deselectZohoAccounts=function(){v.selectedZohoAccounts=[]},v.selectAllZohoAccounts=function(){v.selectedZohoAccounts=v.zohoAccounts.rows};var h=!0,b=1;function f(e){v.zohoAccounts=e||{count:0,rows:[]}}function A(e){l.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.zohoAccounts.rows,{id:e.id}),v.zohoAccounts.count-=1,v.zohoAccounts.rows.length||v.getZohoAccounts(),c.success({title:"ZohoAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zohoAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="JSCRIPTY.EDIT_PROJECT",u.project=angular.copy(r),u.projects=s,u.newProject=!1,u.project||(u.project={enableUncompleteSave:!0},u.title="JSCRIPTY.NEW_PROJECT",u.newProject=!0),u.addNewProject=function(){u.errors=[],l.jscriptyProject.save(u.project).$promise.then(function(e){u.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:u.project.name?u.project.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.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.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveProject=function(){u.errors=[],l.jscriptyProject.update({id:u.project.id},u.project).$promise.then(function(e){var t=_.find(u.projects,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Project properly saved!",msg:u.project.name?u.project.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var t=0;t<e.data.errors.length;t++)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.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteProject=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.jscriptyProject.delete({id:u.project.id}).$promise.then(function(){_.remove(u.projects,{id:u.project.id}),o.success({title:"Project properly deleted!",msg:(u.project.name||"project")+" has been deleted!"}),p(u.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var t=0;t<e.data.errors.length;t++)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.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","projects","project","api","Auth","license","setting"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.project={},s.localizationMap=o;var r=new Date;r.setHours(0,0,0,0),s.pickerModel={dateStart:r,dateEnd:null,selectedTemplate:"TD"},s.init=function(e){s.project=e,s.getAnswers()},s.getSummary=function(){return a.jscriptyProject.getSummary({id:s.project.id,dateStart:moment(s.pickerModel.dateStart).format("YYYY-MM-DD HH:mm:ss"),dateEnd:moment(s.pickerModel.dateEnd).format("YYYY-MM-DD HH:mm:ss"),nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var t=[e.buffer],n=new Blob(t,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(n)),a.setAttribute("download","jscriptyProjectSummary_"+s.project.id+".csv"),a.click()}else i.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getAnswers=function(){return s.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:s.project.id,sort:"-createdAt,questionId",dateStart:s.pickerModel.dateStart,dateEnd:s.pickerModel.dateEnd,nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){s.answers={};for(var t=0,n=e.count;t<n;t++)e.rows[t].questionId&&(s.hasIdAnswers=!0,s.answers.hasOwnProperty(e.rows[t].questionId)||(s.answers[e.rows[t].questionId]={question:e.rows[t].question,answers:{},sum:0}),""===e.rows[t].answer&&(e.rows[t].answer="NO_ANSWER"),s.answers[e.rows[t].questionId].answers[e.rows[t].answer]?s.answers[e.rows[t].questionId].answers[e.rows[t].answer]+=1:s.answers[e.rows[t].questionId].answers[e.rows[t].answer]=1,s.answers[e.rows[t].questionId].sum+=1)}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var t=this;t.project={},t.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},t.init=function(e){t.project=e,_.isObjectLike(e.formData)?t.project.formData=e.formData:t.isJsonString(e.formData)?t.project.formData=JSON.parse(e.formData):t.project.formData={}},t.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=o,r.title=s.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),n.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,t){var s=this;s.project={},s.responseData={},s.formViewer={},s.init=function(e){s.project=e,t.$on("mwForm.pageEvents.pageCurrentChanged",function(e,t){if(t.currentPage&&s.project.formData&&s.project.formData.pages)for(var n=0,a=s.project.formData.pages.length;n<a;n++)if(t.currentPage.number<n+1&&s.project.formData.pages[n].elements)for(var i=0,o=s.project.formData.pages[n].elements.length;i<o;i++)"question"===s.project.formData.pages[n].elements[i].type&&s.project.formData.pages[n].elements[i].question&&delete s.responseData[s.project.formData.pages[n].elements[i].question.id]})},s.onSubmit=function(e){var t=a.defer(),n=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(n).then(function(){t.resolve(!0)},function(){t.reject()}),t.promise},s.resetViewer=function(){s.formViewer.reset&&s.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.project={},c.projectSessions={count:0,rows:[]},c.selectedProjectSessions=[],c.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},c.init=function(e){c.project=e,c.query.id=c.project.id,c.getProjectSessions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getProjectSessions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.jscriptyProject.getSessions(c.query,p).$promise},c.createOrEditProjectSession=function(e,t){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:c.project,session:t,sessions:c.projectSessions.rows,license:null,setting:null}})},c.showQuestionsProjectSession=function(e,n){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,t){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:n.id})}]},locals:{project:c.project,session:n}})},c.exportSelectedProjectSessions=function(){var e=angular.copy(c.selectedProjectSessions);return c.selectedProjectSessions=[],e},c.deleteProjectSession=g,c.deleteSelectedProjectSessions=function(e){var t=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+c.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedProjectSessions.forEach(function(e){g(e)}),c.selectedProjectSessions=[]})};var m=!0,u=1;function p(e){c.projectSessions=e||{count:0,rows:[]}}function g(e){l.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(c.projectSessions.rows,{id:e.id}),c.projectSessions.count-=1,c.projectSessions.rows.length||c.getProjectSessions(),r.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getProjectSessions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=o,this.questions=s,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.project=d||e.params.project||{},c.selectedTab=e.params.tab||0,c.clonedialog=function(e,t){n.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{project:e,projects:c.projects?c.projects.rows:[]}})},c.alert=r.info,c.gotoProjects=function(){e.go("app.jscripty.projects")},c.saveProject=function(){s.jscriptyProject.update({id:c.project.id},c.project).$promise.then(function(){r.success({title:"Project updated!",msg:c.project.name?c.project.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","project"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.projects=r||{count:0,rows:[]},v.table="projects",v.listOrder="",v.listOrderAsc=null,v.selectedProjects=[],v.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,description,formData",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.jscripty.projects.edit",{id:e.id,project:e})},v.clonedialog=function(e,t){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{project:e,projects:v.projects?v.projects.rows:[]}})},v.sessionsgoto=function(e,t){n.go("app.jscripty.projects.edit",{id:e.id,tab:3})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getProjects=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.jscriptyProject.get(v.query,f).$promise},v.createOrEditProject=function(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:v.projects.rows,license:v.license,setting:v.setting}})},v.deleteProject=A,v.exportSelectedProjects=function(){var e=angular.copy(v.selectedProjects);return v.selectedProjects=[],e},v.deleteSelectedProjects=function(e){var t=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+v.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedProjects.forEach(function(e){A(e)}),v.selectedProjects=[]})},v.deselectProjects=function(){v.selectedProjects=[]},v.selectAllProjects=function(){v.selectedProjects=v.projects.rows};var h=!0,b=1;function f(e){v.projects=e||{count:0,rows:[]}}function A(e){l.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(v.projects.rows,{id:e.id}),v.projects.count-=1,v.projects.rows.length||v.getProjects(),c.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","projects","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILACCOUNT",u.mailAccount=angular.copy(r),u.mailAccounts=s,u.newMailAccount=!1,u.mailAccount||(u.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="MAIL.NEW_MAILACCOUNT",u.newMailAccount=!0),t.params.id&&(u.mailAccount.MailAccountId=t.params.id),u.addNewMailAccount=function(){u.errors=[],l.mailAccount.save(u.mailAccount).$promise.then(function(e){var t="add"+_.upperFirst("mailAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.mailAccounts.unshift(e.toJSON()),i.success({title:"MailAccount properly created",msg:u.mailAccount.name?u.mailAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.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.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailAccount=function(){u.errors=[],l.mailAccount.update({id:u.mailAccount.id},u.mailAccount).$promise.then(function(e){var t=_.find(u.mailAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"MailAccount properly saved!",msg:u.mailAccount.name?u.mailAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteMailAccount=function(e){if(u.mailAccount.service)return i.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailAccount.delete({id:u.mailAccount.id}).$promise.then(function(){return l.mailAccount.getAgents({id:u.mailAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("mailAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.mailAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.mailAccounts,{id:u.mailAccount.id}),i.success({title:"MailAccount properly deleted!",msg:(u.mailAccount.name||"mailAccount")+" has been deleted!"}),p(u.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailAccounts","mailAccount","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.mailAccountApps.rows.length){var n=r.mailAccountApps.rows[t]?r.mailAccountApps.rows[t]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:n,mailAccount:r.mailAccount}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[t]=e:r.mailAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.mailAccountApps.rows.length;n++,0){var a=r.mailAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"html",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.mailAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=s.mailAccount.getApplications(r.query,n).$promise},r.editMailAccountApp=t,r.editInterval=function(e,t){if(r.mailAccountApps.rows.length){var n=r.mailAccountApps.rows[t]?r.mailAccountApps.rows[t]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.mailAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.mailAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MAIL.ALL_AGENTS"),labelSelected:s.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,t){a.mailAccount[t?"removeAgents":"addAgents"]({id:l.mailAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"MailAccount properly "+(t?"removed":"added"),msg:"MailAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("mail")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.mailAccount={},c.mailAccountInteractions={count:0,rows:[]},c.selectedMailAccountInteractions=[],c.query={fields:"createdAt,updatedAt,UserId,ContactId,MailAccountId,id,Contact.firstName,Owner.name,closedAt,disposition,note,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.mailAccount=e,c.query.id=c.mailAccount.id,c.getMailAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.mailInteractionDownload=function(o,e,t){return l.mailInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="mail-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getMailAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.mailAccount.getInteractions(c.query,p).$promise},c.createOrEditMailAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:c.mailAccount,interaction:t,interactions:c.mailAccountInteractions.rows,license:null,setting:null}})},c.spymailInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"mail",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedMailAccountInteractions=function(){var e=angular.copy(c.selectedMailAccountInteractions);return c.selectedMailAccountInteractions=[],e},c.deleteMailAccountInteraction=g,c.deleteSelectedMailAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMailAccountInteractions.forEach(function(e){g(e)}),c.selectedMailAccountInteractions=[]})};var m=!0,u=1;function p(e){c.mailAccountInteractions=e||{count:0,rows:[]}}function g(e){l.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.mailAccountInteractions.rows,{id:e.id}),c.mailAccountInteractions.count-=1,c.mailAccountInteractions.rows.length||c.getMailAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMailAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.mailAccount={},c.mailAccountMailCannedAnswers={count:0,rows:[]},c.selectedMailAccountMailCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.mailAccount=e,c.query.id=c.mailAccount.id,c.query.MailAccountId=c.mailAccount.id,c.getMailAccountMailCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getMailAccountMailCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.mailAccount.getAnswers(c.query,p).$promise},c.createOrEditMailAccountMailCannedAnswer=function(e,t){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:c.mailAccount,mailCannedAnswer:t,mailCannedAnswers:c.mailAccountMailCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(c.selectedMailAccountMailCannedAnswers);return c.selectedMailAccountMailCannedAnswers=[],e},c.deleteMailAccountMailCannedAnswer=g,c.deleteSelectedMailAccountMailCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+c.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),c.selectedMailAccountMailCannedAnswers=[]})};var m=!0,u=1;function p(e){c.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.mailAccountMailCannedAnswers.rows,{id:e.id}),c.mailAccountMailCannedAnswers.count-=1,c.mailAccountMailCannedAnswers.rows.length||c.getMailAccountMailCannedAnswers(),r.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMailAccountMailCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILCANNEDANSWER",u.mailCannedAnswer=angular.copy(r),u.mailCannedAnswers=s,u.newMailCannedAnswer=!1,u.mailCannedAnswer||(u.mailCannedAnswer={},u.title="MAIL.NEW_MAILCANNEDANSWER",u.newMailCannedAnswer=!0),t.params.id&&(u.mailCannedAnswer.MailAccountId=t.params.id),u.addNewMailCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.mailCannedAnswer).$promise.then(function(e){u.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:u.mailCannedAnswer.name?u.mailCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.mailCannedAnswer.id},u.mailCannedAnswer).$promise.then(function(e){var t=_.find(u.mailCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailCannedAnswer properly saved!",msg:u.mailCannedAnswer.name?u.mailCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.mailCannedAnswer.id}).$promise.then(function(){_.remove(u.mailCannedAnswers,{id:u.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(u.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),p(u.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.mailAccount={},c.mailAccountMailDispositions={count:0,rows:[]},c.selectedMailAccountMailDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.mailAccount=e,c.query.id=c.mailAccount.id,c.query.MailAccountId=c.mailAccount.id,c.getMailAccountMailDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the mailDisposition?").htmlContent("<b>"+(e.name||"mailDisposition")+"</b> will be deleted.").ariaLabel("delete mailDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getMailAccountMailDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.mailAccount.getDispositions(c.query,p).$promise},c.createOrEditMailAccountMailDisposition=function(e,t){o.show({controller:"CreateOrEditMailDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:c.mailAccount,mailDisposition:t,mailDispositions:c.mailAccountMailDispositions.rows,license:null,setting:null}})},c.exportSelectedMailAccountMailDispositions=function(){var e=angular.copy(c.selectedMailAccountMailDispositions);return c.selectedMailAccountMailDispositions=[],e},c.deleteMailAccountMailDisposition=g,c.deleteSelectedMailAccountMailDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected mailDispositions?").htmlContent("<b>"+c.selectedMailAccountMailDispositions.length+" selected</b> will be deleted.").ariaLabel("delete mailDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMailAccountMailDispositions.forEach(function(e){g(e)}),c.selectedMailAccountMailDispositions=[]})};var m=!0,u=1;function p(e){c.mailAccountMailDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.mailAccountMailDispositions.rows,{id:e.id}),c.mailAccountMailDispositions.count-=1,c.mailAccountMailDispositions.rows.length||c.getMailAccountMailDispositions(),r.success({title:"MailDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMailAccountMailDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILDISPOSITION",u.mailDisposition=angular.copy(r),u.mailDispositions=s,u.newMailDisposition=!1,u.mailDisposition||(u.mailDisposition={},u.title="MAIL.NEW_MAILDISPOSITION",u.newMailDisposition=!0),t.params.id&&(u.mailDisposition.MailAccountId=t.params.id),u.addNewMailDisposition=function(){u.errors=[],l.disposition.save(u.mailDisposition).$promise.then(function(e){u.mailDispositions.unshift(e.toJSON()),o.success({title:"MailDisposition properly created",msg:u.mailDisposition.name?u.mailDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailDisposition=function(){u.errors=[],l.disposition.update({id:u.mailDisposition.id},u.mailDisposition).$promise.then(function(e){var t=_.find(u.mailDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailDisposition properly saved!",msg:u.mailDisposition.name?u.mailDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailDisposition will be deleted.").ariaLabel("Delete MailDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.mailDisposition.id}).$promise.then(function(){_.remove(u.mailDispositions,{id:u.mailDisposition.id}),o.success({title:"MailDisposition properly deleted!",msg:(u.mailDisposition.name||"mailDisposition")+" has been deleted!"}),p(u.mailDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailDispositions","mailDisposition","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailDispositionDialogController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.mailAccount=d||n.params.mailAccount||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.mail.realtime.accounts",{})},c.agentadddialog=function(e,t){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:c.mailAccounts?c.mailAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoMailAccounts=function(){n.go("app.mail.mailAccounts")},c.saveMailAccount=function(){s.mailAccount.update({id:c.mailAccount.id},c.mailAccount).$promise.then(function(){r.success({title:"MailAccount updated!",msg:c.mailAccount.name?c.mailAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","mailAccount"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.mailAccounts=r||{count:0,rows:[]},v.table="mailAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedMailAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e})},v.verifysmtpverifysmtp=function(e,t){{if(e&&e.id)return l.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){c.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});c.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},v.interactionsgoto=function(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,tab:6})},v.gotorealtimegoto=function(e,t){n.go("app.mail.realtime.accounts",{})},v.agentadddialog=function(e,t){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:v.mailAccounts?v.mailAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMailAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.mailAccount.get(v.query,f).$promise},v.createOrEditMailAccount=function(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:v.mailAccounts.rows,license:v.license,setting:v.setting}})},v.deleteMailAccount=A,v.exportSelectedMailAccounts=function(){var e=angular.copy(v.selectedMailAccounts);return v.selectedMailAccounts=[],e},v.deleteSelectedMailAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+v.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailAccounts.forEach(function(e){A(e)}),v.selectedMailAccounts=[]})},v.deselectMailAccounts=function(){v.selectedMailAccounts=[]},v.selectAllMailAccounts=function(){v.selectedMailAccounts=v.mailAccounts.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.mailAccounts=e||{count:0,rows:[]}}function A(e){if(e.service)return c.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});l.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.mailAccounts.rows,{id:e.id}),v.mailAccounts.count-=1,v.mailAccounts.rows.length||v.getMailAccounts(),c.success({title:"MailAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILQUEUE",u.mailQueue=angular.copy(r),u.mailQueues=s,u.newMailQueue=!1,u.mailQueue||(u.mailQueue={strategy:"beepall",timeout:10},u.title="MAIL.NEW_MAILQUEUE",u.newMailQueue=!0),u.addNewMailQueue=function(){u.errors=[],l.mailQueue.save(u.mailQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"mail",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:u.mailQueue.name?u.mailQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.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.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailQueue=function(){u.errors=[],l.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(e){var t=_.find(u.mailQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailQueue properly saved!",msg:u.mailQueue.name?u.mailQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailQueue.delete({id:u.mailQueue.id}).$promise.then(function(){return l.mailQueue.getAgents({id:u.mailQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.mailQueue.id],channel:"mail",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.mailQueues,{id:u.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(u.mailQueue.name||"mailQueue")+" has been deleted!"}),p(u.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailQueues","mailQueue","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.mailQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.mailQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MAIL.ALL_AGENTS"),labelSelected:s.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,t){a.mailQueue[t?"removeAgents":"addAgents"]({id:l.mailQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"MailQueue properly "+(t?"removed":"added"),msg:"MailQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.mailQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.mailQueue[t?"removeTeams":"addTeams"]({id:o.mailQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.mailQueue.getTeams({id:o.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.mailQueue=d||e.params.mailQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:c.mailQueues?c.mailQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:c.mailQueues?c.mailQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoMailQueues=function(){e.go("app.mail.mailQueues")},c.saveMailQueue=function(){s.mailQueue.update({id:c.mailQueue.id},c.mailQueue).$promise.then(function(){r.success({title:"MailQueue updated!",msg:c.mailQueue.name?c.mailQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","mailQueue"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.mailQueues=r||{count:0,rows:[]},v.table="mailQueues",v.listOrder="",v.listOrderAsc=null,v.selectedMailQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:v.mailQueues?v.mailQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:v.mailQueues?v.mailQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.mail.realtime.queues",{})},v.success=f,v.getMailQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.mailQueue.get(v.query,f).$promise},v.createOrEditMailQueue=function(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:v.mailQueues.rows,license:v.license,setting:v.setting}})},v.deleteMailQueue=A,v.exportSelectedMailQueues=function(){var e=angular.copy(v.selectedMailQueues);return v.selectedMailQueues=[],e},v.deleteSelectedMailQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+v.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailQueues.forEach(function(e){A(e)}),v.selectedMailQueues=[]})},v.deselectMailQueues=function(){v.selectedMailQueues=[]},v.selectAllMailQueues=function(){v.selectedMailQueues=v.mailQueues.rows};var h=!0,b=1;function f(e){v.mailQueues=e||{count:0,rows:[]}}function A(e){l.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.mailQueues.rows,{id:e.id}),v.mailQueues.count-=1,v.mailQueues.rows.length||v.getMailQueues(),c.success({title:"MailQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILSUBSTATUS",u.mailSubstatus=angular.copy(r),u.mailSubtatuses=s,u.newMailSubstatus=!1,u.mailSubstatus||(u.mailSubstatus={},u.title="MAIL.NEW_MAILSUBSTATUS",u.newMailSubstatus=!0),u.addNewMailSubstatus=function(){u.errors=[],l.mailSubstatus.save(u.mailSubstatus).$promise.then(function(e){u.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:u.mailSubstatus.name?u.mailSubstatus.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.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.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailSubstatus=function(){u.errors=[],l.mailSubstatus.update({id:u.mailSubstatus.id},u.mailSubstatus).$promise.then(function(e){var t=_.find(u.mailSubtatuses,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailSubstatus properly saved!",msg:u.mailSubstatus.name?u.mailSubstatus.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var t=0;t<e.data.errors.length;t++)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.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailSubstatus=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailSubstatus.delete({id:u.mailSubstatus.id}).$promise.then(function(){_.remove(u.mailSubtatuses,{id:u.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(u.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),p(u.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var t=0;t<e.data.errors.length;t++)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.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.mailSubtatuses=r||{count:0,rows:[]},v.table="mailSubtatuses",v.listOrder="",v.listOrderAsc=null,v.selectedMailSubstatuses=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(e,t){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:v.mailSubtatuses.rows,license:v.license,setting:null}})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the mailSubstatus?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMailSubstatuses=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.mailSubstatus.get(v.query,f).$promise},v.createOrEditMailSubstatus=function(e,t){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:t,mailSubtatuses:v.mailSubtatuses.rows,license:v.license,setting:v.setting}})},v.deleteMailSubstatus=A,v.exportSelectedMailSubstatuses=function(){var e=angular.copy(v.selectedMailSubstatuses);return v.selectedMailSubstatuses=[],e},v.deleteSelectedMailSubstatuses=function(e){var t=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+v.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailSubstatuses.forEach(function(e){A(e)}),v.selectedMailSubstatuses=[]})},v.deselectMailSubstatuses=function(){v.selectedMailSubstatuses=[]},v.selectAllMailSubstatuses=function(){v.selectedMailSubstatuses=v.mailSubtatuses.rows};var h=!0,b=1;function f(e){v.mailSubtatuses=e||{count:0,rows:[]}}function A(e){l.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(v.mailSubtatuses.rows,{id:e.id}),v.mailSubtatuses.count-=1,v.mailSubtatuses.rows.length||v.getMailSubstatuses(),c.success({title:"MailSubstatus deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailSubtatuses","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this;function m(){_.forIn(c.mailAccounts,function(e,t){c.rpcMailAccounts[t]&&_.merge(e,c.rpcMailAccounts[t])}),_.forIn(c.mailAccounts,function(t,e){var n={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss")};o.mailAccount.getMessages(n).$promise.then(function(e){return e&&(t.in=e.count||0,t.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),n.direction="out",o.mailAccount.getMessages(n).$promise}).then(function(e){e&&(t.out=e.count||0,t.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}c.count=l&&l.count?l.count:0,c.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},c.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},c.query={sort:"-name",limit:10,page:1},c.success=g,c.$onInit=m,c.getMailAccounts=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.mailAccount.get(c.query,g).$promise},c.onSave=function(e){c.mailAccounts[e.id]&&_.merge(c.mailAccounts[e.id],e)},c.onMailMessageSave=function(e){c.mailAccounts[e.MailAccountId]&&("in"==e.direction?(c.mailAccounts[e.MailAccountId].in+=1,c.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(c.mailAccounts[e.MailAccountId].out+=1,c.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},c.goToMailAccount=function(e,t){i.go("app.mail.mailAccounts.edit",{id:t.id,mailAccount:t})},c.verifySmtp=function(e,t){{if(t&&t.id)return o.mailAccount.verifySmtp({id:t.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},c.order=[],_.forIn(c.mailAccounts,function(e,t){c.order.push(e.id)}),s.on("mailAccount:save",c.onSave),s.on("mailAccount:update",c.onSave),s.on("mailMessage:save",c.onMailMessageSave);var u=!0,p=1;function g(e){if(c.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){c.order=[];for(var t=0;t<e.rows.length;t++)c.order.push(e.rows[t].id)}m()}e.$watch("vm.query.filter",function(e,t){u?n(function(){u=!1}):(t||(p=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=p),c.getMailAccounts())}),e.$on("$destroy",function(){s.removeAllListeners("mailAccount:save"),s.removeAllListeners("mailAccount:update"),s.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"mail",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.mailQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].MailQueueId].paused++,u.queues[e[t].rows[n].MailQueueId].loggedInDb++,u.queues[e[t].rows[n].MailQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].MailQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"mail",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.mailQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditMailQueue=function(e,t){a.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.mailQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.MailQueueId]&&u.queues[e.MailQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.MailQueueId]&&u.queues[e.MailQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.MailQueueId]&&(u.queues[e.MailQueueId].loggedInDb+=1,u.queues[e.MailQueueId].agents[e.UserId]=e.MailQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.MailQueueId]&&0<u.queues[e.MailQueueId].loggedInDb&&(u.queues[e.MailQueueId].loggedInDb-=1,delete u.queues[e.MailQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("mail_queue:save",u.onSave),d.on("userMailQueue:save",u.onSaveMember),d.on("userMailQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("mail_queue:save"),d.removeAllListeners("userMailQueue:remove"),d.removeAllListeners("userMailQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,n.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.mail.realtime.agents");break;case 1:n.go("app.mail.realtime.queues");break;case 2:n.go("app.mail.realtime.accounts");break;default:n.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MARKETPLACE.EDIT_PLUGIN",u.plugin=angular.copy(r),u.plugins=s,u.newPlugin=!1,u.plugin||(u.plugin={},u.title="MARKETPLACE.NEW_PLUGIN",u.newPlugin=!0),u.addNewPlugin=function(){u.errors=[],l.plugin.save(u.plugin).$promise.then(function(e){u.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:u.plugin.name?u.plugin.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.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.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savePlugin=function(){u.errors=[],l.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(e){var t=_.find(u.plugins,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Plugin properly saved!",msg:u.plugin.name?u.plugin.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var t=0;t<e.data.errors.length;t++)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.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletePlugin=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.plugin.delete({id:u.plugin.id}).$promise.then(function(){_.remove(u.plugins,{id:u.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(u.plugin.name||"plugin")+" has been deleted!"}),p(u.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var t=0;t<e.data.errors.length;t++)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.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","plugins","plugin","api","Auth","license","setting"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.plugin=d||e.params.plugin||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoPlugins=function(){e.go("app.marketplace.plugins")},c.savePlugin=function(){s.plugin.update({id:c.plugin.id},c.plugin).$promise.then(function(){r.success({title:"Plugin updated!",msg:c.plugin.name?c.plugin.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","plugin"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.plugins=r||{count:0,rows:[]},v.table="plugins",v.listOrder="",v.listOrderAsc=null,v.selectedPlugins=[],v.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"name",limit:10,page:1},v.installing=!1,v.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.installplugin=function(e){{if("script"!==e.type)return e.active=!0,l.plugin.update({id:e.id},e).$promise.then(function(){c.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});v.installing=!0,l.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,l.plugin.update({id:e.id},e).$promise}).then(function(){v.installing=!1,c.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},v.editstate=function(e,t){n.go("app.marketplace.plugins.edit",{id:e.id,plugin:e})},v.stopplugin=function(e,t){var n=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){var n;n=e,l.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var t=_.find(e.rows,{name:n.scriptName});if(!t)throw new Error("No corresponding process found");l.pm2.update({id:t.pm_id,status:"stopped"}).$promise.then(function(){c.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},v.restartplugin=function(e,t){var n=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){var n;n=e,l.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var t=_.find(e.rows,{name:n.scriptName});if(!t)throw new Error("No corresponding process found");l.pm2.update({id:t.pm_id,status:"online"}).$promise.then(function(){c.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},v.downloadfile2=function(o,e){return l.plugin.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.uninstallplugin=function(e,t){var n=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){!function(n){"script"===n.type&&l.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var t=_.find(e.rows,{name:n.scriptName});if(!t)throw new Error("No corresponding process found");l.pm2.delete({id:t.pm_id,name:n.scriptName}).$promise}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});n.active=!1,l.plugin.update({id:n.id},n).$promise.then(function(){c.success({title:"Plugin uninstalled!",msg:n.name?n.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getPlugins=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.plugin.get(v.query,f).$promise},v.createOrEditPlugin=function(e,t){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:t,plugins:v.plugins.rows,license:v.license,setting:v.setting}})},v.deletePlugin=A,v.exportSelectedPlugins=function(){var e=angular.copy(v.selectedPlugins);return v.selectedPlugins=[],e},v.deleteSelectedPlugins=function(e){var t=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+v.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedPlugins.forEach(function(e){A(e)}),v.selectedPlugins=[]})},v.deselectPlugins=function(){v.selectedPlugins=[]},v.selectAllPlugins=function(){v.selectedPlugins=v.plugins.rows},v.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:v.plugins.rows}})};var h=!0,b=1;function f(e){v.plugins=e||{count:0,rows:[]}}function A(n){n.active&&"script"==n.type&&l.pm2.get().$promise.then(function(e){if(!e||!e.rows)return c.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var t=_.find(e.rows,{name:n.scriptName});t?l.pm2.delete({id:t.pm_id,name:n.scriptName}).$promise:console.log("No '%s' process found",n.scriptName)}).catch(function(e){return c.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),l.plugin.delete({id:n.id}).$promise.then(function(){_.remove(v.plugins.rows,{id:n.id}),v.plugins.count-=1,v.plugins.rows.length||v.getPlugins(),c.success({title:"Plugin deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","plugins","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:2097152,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var t=["zip"];if(!_.includes(t,e.getExtension()))return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(2097152<e.size)return n.error({title:"File too big",msg:"The max allowed size is 2MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result}}})},o.uploadError=function(e,t){o.ngFlow.flow.cancel(),n.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",n.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){t.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",u.ivrCampaign=angular.copy(r),u.ivrCampaigns=s,u.newIvrCampaign=!1,u.ivrCampaign||(u.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},u.title="MOTIONDIALER.NEW_IVRCAMPAIGN",u.newIvrCampaign=!0),u.addNewIvrCampaign=function(){u.errors=[],l.campaign.save(u.ivrCampaign).$promise.then(function(e){u.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.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.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveIvrCampaign=function(){u.errors=[],l.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(e){var t=_.find(u.ivrCampaigns,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"IvrCampaign properly saved!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var t=0;t<e.data.errors.length;t++)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.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteIvrCampaign=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.campaign.delete({id:u.ivrCampaign.id}).$promise.then(function(){_.remove(u.ivrCampaigns,{id:u.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(u.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),p(u.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var t=0;t<e.data.errors.length;t++)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.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){o.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){u.projects=e.rows||[]}).catch(function(e){o.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){u.interval=e.rows||[]}).catch(function(e){o.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","$q","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.ivrCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.campaign[t?"removeBlackLists":"addBlackLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=o,r.title=s.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.ivrCampaign={},c.ivrCampaignHopperBlacks={count:0,rows:[]},c.selectedIvrCampaignHopperBlacks=[],c.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHopperBlacks()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHopperBlacks=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHopperBlacks(c.query,p).$promise},c.createOrEditIvrCampaignHopperBlack=function(e,t){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopperBlack:t,hopperBlacks:c.ivrCampaignHopperBlacks.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(c.selectedIvrCampaignHopperBlacks);return c.selectedIvrCampaignHopperBlacks=[],e},c.deleteIvrCampaignHopperBlack=g,c.deleteSelectedIvrCampaignHopperBlacks=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+c.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),c.selectedIvrCampaignHopperBlacks=[]})};var m=!0,u=1;function p(e){c.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function g(e){l.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHopperBlacks.rows,{id:e.id}),c.ivrCampaignHopperBlacks.count-=1,c.ivrCampaignHopperBlacks.rows.length||c.getIvrCampaignHopperBlacks(),r.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.contacts={},c.ivrCampaign={},c.ivrCampaignHopperFinals={count:0,rows:[]},c.selectedIvrCampaignHopperFinals=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHopperFinals()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHopperFinals=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHopperFinals(c.query,p).$promise},c.createOrEditIvrCampaignHopperFinal=function(e,t){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopperFinal:t,hopperFinals:c.ivrCampaignHopperFinals.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(c.selectedIvrCampaignHopperFinals);return c.selectedIvrCampaignHopperFinals=[],e},c.deleteIvrCampaignHopperFinal=g,c.deleteSelectedIvrCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+c.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),c.selectedIvrCampaignHopperFinals=[]})},c.moveIvrCampaignHopperFinal=v,c.moveContactsIvrCampaignHopperFinal=function(e){l.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:c.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?r.info({title:"Restored Contacts",msg:"0"}):r.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.countContactsIvrCampaignHopperFinal=function(e){l.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(c.contacts,e[0])}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.moveConfirm=function(e,t){var n=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){v(e)},function(){console.log("CANCEL")})},c.moveSelectedIvrCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),c.selectedIvrCampaignHopperFinals=[]})};var m=!0,u=1;function p(e){c.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function g(e){l.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHopperFinals.rows,{id:e.id}),c.ivrCampaignHopperFinals.count-=1,c.ivrCampaignHopperFinals.rows.length||c.getIvrCampaignHopperFinals(),r.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){l.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){r.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var t,n;"Not Found"===e.data?l.cmHopper.save((t=a,n={},n.phone=t.calleridnum,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=0,n.countcongestionretry=0,n.countnoanswerretry=0,n.countglobal=0,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=t.deleted?null:t.UserId,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.priority=t.recallme?3:2,n.recallme=!!t.recallme,n)).$promise.then(function(e){var t,n;r.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&l.cmHopperHistory.save(((n={}).calleridnum=(t=a).calleridnum,n.calleridname=t.calleridname,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=t.countbusyretry,n.countcongestionretry=t.countcongestionretry,n.countnoanswerretry=t.countnoanswerretry,n.countglobal=t.countglobal,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=d.getCurrentUser().id,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),n.edited=!0,n.state=25,n.statedesc="Restored",n.campaign=t.campaign,n.campaigntype=t.VoiceQueueId?"queue":"ivr",n))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):r.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.ivrCampaign={},c.ivrCampaignHopperHistories={count:0,rows:[]},c.selectedIvrCampaignHopperHistories=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHopperHistories()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHopperHistories=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHopperHistories(c.query,p).$promise},c.createOrEditIvrCampaignHopperHistory=function(e,t){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopperHistory:t,hopperHistories:c.ivrCampaignHopperHistories.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(c.selectedIvrCampaignHopperHistories);return c.selectedIvrCampaignHopperHistories=[],e},c.deleteIvrCampaignHopperHistory=g,c.deleteSelectedIvrCampaignHopperHistories=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+c.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),c.selectedIvrCampaignHopperHistories=[]})};var m=!0,u=1;function p(e){c.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function g(e){l.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHopperHistories.rows,{id:e.id}),c.ivrCampaignHopperHistories.count-=1,c.ivrCampaignHopperHistories.rows.length||c.getIvrCampaignHopperHistories(),r.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.ivrCampaign={},c.ivrCampaignHoppers={count:0,rows:[]},c.selectedIvrCampaignHoppers=[],c.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},c.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHoppers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHoppers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHoppers(c.query,p).$promise},c.createOrEditIvrCampaignHopper=function(e,t){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopper:t,hoppers:c.ivrCampaignHoppers.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(c.selectedIvrCampaignHoppers);return c.selectedIvrCampaignHoppers=[],e},c.deleteIvrCampaignHopper=g,c.deleteSelectedIvrCampaignHoppers=function(e){var t=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+c.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),c.selectedIvrCampaignHoppers=[]})},l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){c.agents=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.ivrCampaignHoppers=e||{count:0,rows:[]}}function g(e){l.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHoppers.rows,{id:e.id}),c.ivrCampaignHoppers.count-=1,c.ivrCampaignHoppers.rows.length||c.getIvrCampaignHoppers(),r.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_HOPPER",u.hopper=angular.copy(r),u.hoppers=o,u.newHopper=!1,u.hopper||(u.hopper={},u.title="MOTIONDIALER.NEW_HOPPER",u.newHopper=!0),t.params.id&&(u.hopper.CampaignId=t.params.id),u.addNewHopper=function(){u.errors=[],l.cmHopper.save(u.hopper).$promise.then(function(e){u.hoppers.unshift(e.toJSON()),s.success({title:"Hopper properly created",msg:u.hopper.name?u.hopper.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t+=1)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveHopper=function(){var n,a,i,o;u.errors=[],u.hopper.UserId=u.hopper.recallme?u.hopper.UserId:null,u.hopper.OwnerId=d.getCurrentUser().id,l.cmHopper.get({id:u.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){n=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){l.cmHopper.update({id:u.hopper.id},_.omit(u.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,l.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){l.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){o=e.name}).catch(function(e){o=void 0}).finally(function(){l.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:n,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:o,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:d.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var t=_.find(u.hoppers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),s.success({title:"Hopper properly saved!",msg:u.hopper.name?u.hopper.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},u.deleteHopper=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmHopper.delete({id:u.hopper.id}).$promise.then(function(){_.remove(u.hoppers,{id:u.hopper.id}),s.success({title:"Hopper properly deleted!",msg:(u.hopper.name||"hopper")+" has been deleted!"}),p(u.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","hoppers","hopper","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(n,a){var i=this;i.ivrCampaign={},i.init=function(t){i.ivrCampaign=t,n.cmHopper.get({limit:0,CampaignId:t.id}).$promise.then(function(e){return i.total=e.count||0,n.cmHopper.get({limit:0,CampaignId:t.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,n.cmHopperFinal.get({limit:0,CampaignId:t.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.ivrCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.campaign[t?"removeLists":"addLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,a,i,o,n,s,r){var l=this;function d(){t.hide()}function c(e,t){var n=t.id;s.enqueue(function(){return i.campaign.removeLists({id:e,ids:n}).$promise.then(function(){return i.campaign.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=n||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,t){return-1<t.indexOf(e)},l.toggle=function(e,t){var n=t.indexOf(e);-1<n?t.splice(n,1):t.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,t){for(var n=0;n<l.selected.length;n+=1)c(o.id,l.selected[n]);var a;a=e,s.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(n,e,i,o,t,a,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=a,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.ivrCampaign=d||n.params.ivrCampaign||{},c.selectedTab=n.params.tab||0,c.clonedialog=function(e,t){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})},c.listadddialog=function(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:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})},c.blacklistadddialog=function(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:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})},c.resetlistdialog=function(t,n){s.campaign.getLists({id:t.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))r.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(n).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t,n;e=c.ivrCampaign.id,t=a.rows[0],n=t.id,s.campaign.removeLists({id:e,ids:n}).$promise.then(function(){return s.campaign.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){r.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(o.body),targetEvent:n,clickOutsideToClose:!1,locals:{ivrCampaign:t,listsCampaign:a?a.rows:[]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.gotogoto=function(e,t){n.go("app.motiondialer.realtime.ivr_campaigns",{})},c.alert=r.info,c.gotoIvrCampaigns=function(){n.go("app.motiondialer.ivrCampaigns")},c.saveIvrCampaign=function(){s.campaign.update({id:c.ivrCampaign.id},c.ivrCampaign).$promise.then(function(){r.success({title:"IvrCampaign updated!",msg:c.ivrCampaign.name?c.ivrCampaign.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","ivrCampaign"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.ivrCampaigns=r||{count:0,rows:[]},v.table="ivrCampaigns",v.listOrder="",v.listOrderAsc=null,v.selectedIvrCampaigns=[],v.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},v.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e})},v.clonedialog=function(e,t){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:v.ivrCampaigns?v.ivrCampaigns.rows:[]}})},v.listadddialog=function(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:v.ivrCampaigns?v.ivrCampaigns.rows:[]}})},v.blacklistadddialog=function(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:v.ivrCampaigns?v.ivrCampaigns.rows:[]}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.motiondialer.realtime.ivr_campaigns",{})},v.success=f,v.getIvrCampaigns=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.campaign.get(v.query,f).$promise},v.createOrEditIvrCampaign=function(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:v.ivrCampaigns.rows,license:v.license,setting:v.setting}})},v.deleteIvrCampaign=A,v.exportSelectedIvrCampaigns=function(){var e=angular.copy(v.selectedIvrCampaigns);return v.selectedIvrCampaigns=[],e},v.deleteSelectedIvrCampaigns=function(e){var t=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+v.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIvrCampaigns.forEach(function(e){A(e)}),v.selectedIvrCampaigns=[]})},v.deselectIvrCampaigns=function(){v.selectedIvrCampaigns=[]},v.selectAllIvrCampaigns=function(){v.selectedIvrCampaigns=v.ivrCampaigns.rows},l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.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){v.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){v.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 h=!0,b=1;function f(e){v.ivrCampaigns=e||{count:0,rows:[]}}function A(e){l.campaign.delete({id:e.id}).$promise.then(function(){_.remove(v.ivrCampaigns.rows,{id:e.id}),v.ivrCampaigns.count-=1,v.ivrCampaigns.rows.length||v.getIvrCampaigns(),c.success({title:"IvrCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","ivrCampaigns","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",u.queueCampaign=angular.copy(r),u.queueCampaigns=s,u.newQueueCampaign=!1,u.queueCampaign||(u.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber: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},u.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",u.newQueueCampaign=!0),u.addNewQueueCampaign=function(){u.errors=[],l.voiceQueue.save(u.queueCampaign).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"voice",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:u.queueCampaign.name?u.queueCampaign.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.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.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveQueueCampaign=function(){u.errors=[],l.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(e){var t=_.find(u.queueCampaigns,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"QueueCampaign properly saved!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteQueueCampaign=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceQueue.delete({id:u.queueCampaign.id}).$promise.then(function(){return l.voiceQueue.getAgents({id:u.queueCampaign.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.queueCampaign.id],channel:"voice",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.queueCampaigns,{id:u.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(u.queueCampaign.name||"queueCampaign")+" has been deleted!"}),p(u.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){o.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){u.interval=e.rows||[]}).catch(function(e){o.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","$q","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.voiceQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.queueCampaign=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,t){a.voiceQueue[t?"removeAgents":"addAgents"]({id:l.queueCampaign.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"QueueCampaign properly "+(t?"removed":"added"),msg:"QueueCampaign has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.queueCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.voiceQueue[t?"removeBlackLists":"addBlackLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=o,r.title=s.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),n.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.queueCampaign={},c.queueCampaignHopperBlacks={count:0,rows:[]},c.selectedQueueCampaignHopperBlacks=[],c.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHopperBlacks()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHopperBlacks=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHopperBlacks(c.query,p).$promise},c.createOrEditQueueCampaignHopperBlack=function(e,t){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopperBlack:t,hopperBlacks:c.queueCampaignHopperBlacks.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(c.selectedQueueCampaignHopperBlacks);return c.selectedQueueCampaignHopperBlacks=[],e},c.deleteQueueCampaignHopperBlack=g,c.deleteSelectedQueueCampaignHopperBlacks=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+c.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),c.selectedQueueCampaignHopperBlacks=[]})};var m=!0,u=1;function p(e){c.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function g(e){l.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHopperBlacks.rows,{id:e.id}),c.queueCampaignHopperBlacks.count-=1,c.queueCampaignHopperBlacks.rows.length||c.getQueueCampaignHopperBlacks(),r.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.contacts={},c.queueCampaign={},c.queueCampaignHopperFinals={count:0,rows:[]},c.selectedQueueCampaignHopperFinals=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHopperFinals()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHopperFinals=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHopperFinals(c.query,p).$promise},c.createOrEditQueueCampaignHopperFinal=function(e,t){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopperFinal:t,hopperFinals:c.queueCampaignHopperFinals.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(c.selectedQueueCampaignHopperFinals);return c.selectedQueueCampaignHopperFinals=[],e},c.deleteQueueCampaignHopperFinal=g,c.deleteSelectedQueueCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+c.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),c.selectedQueueCampaignHopperFinals=[]})},c.moveQueueCampaignHopperFinal=v,c.moveContactsQueueCampaignHopperFinal=function(e){l.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:c.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?r.info({title:"Restored Contacts",msg:"0"}):r.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.countContactsQueueCampaignHopperFinal=function(e){l.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(c.contacts,e[0])}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.moveConfirm=function(e,t){var n=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){v(e)},function(){console.log("CANCEL")})},c.moveSelectedQueueCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),c.selectedQueueCampaignHopperFinals=[]})};var m=!0,u=1;function p(e){c.queueCampaignHopperFinals=e||{count:0,rows:[]}}function g(e){l.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHopperFinals.rows,{id:e.id}),c.queueCampaignHopperFinals.count-=1,c.queueCampaignHopperFinals.rows.length||c.getQueueCampaignHopperFinals(),r.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){l.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){r.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var t,n;"Not Found"===e.data?l.cmHopper.save((t=a,n={},n.phone=t.calleridnum,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=0,n.countcongestionretry=0,n.countnoanswerretry=0,n.countglobal=0,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=t.deleted?null:t.UserId,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.priority=t.recallme?3:2,n.recallme=!!t.recallme,n)).$promise.then(function(e){var t,n;r.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&l.cmHopperHistory.save(((n={}).calleridnum=(t=a).calleridnum,n.calleridname=t.calleridname,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=t.countbusyretry,n.countcongestionretry=t.countcongestionretry,n.countnoanswerretry=t.countnoanswerretry,n.countglobal=t.countglobal,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=d.getCurrentUser().id,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),n.edited=!0,n.state=25,n.statedesc="Restored",n.campaign=t.campaign,n.campaigntype=t.VoiceQueueId?"queue":"ivr",n))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):r.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.queueCampaign={},c.queueCampaignHopperHistories={count:0,rows:[]},c.selectedQueueCampaignHopperHistories=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHopperHistories()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHopperHistories=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHopperHistories(c.query,p).$promise},c.createOrEditQueueCampaignHopperHistory=function(e,t){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopperHistory:t,hopperHistories:c.queueCampaignHopperHistories.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(c.selectedQueueCampaignHopperHistories);return c.selectedQueueCampaignHopperHistories=[],e},c.deleteQueueCampaignHopperHistory=g,c.deleteSelectedQueueCampaignHopperHistories=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+c.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),c.selectedQueueCampaignHopperHistories=[]})};var m=!0,u=1;function p(e){c.queueCampaignHopperHistories=e||{count:0,rows:[]}}function g(e){l.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHopperHistories.rows,{id:e.id}),c.queueCampaignHopperHistories.count-=1,c.queueCampaignHopperHistories.rows.length||c.getQueueCampaignHopperHistories(),r.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.queueCampaign={},c.queueCampaignHoppers={count:0,rows:[]},c.selectedQueueCampaignHoppers=[],c.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},c.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHoppers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHoppers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHoppers(c.query,p).$promise},c.createOrEditQueueCampaignHopper=function(e,t){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopper:t,hoppers:c.queueCampaignHoppers.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(c.selectedQueueCampaignHoppers);return c.selectedQueueCampaignHoppers=[],e},c.deleteQueueCampaignHopper=g,c.deleteSelectedQueueCampaignHoppers=function(e){var t=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+c.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),c.selectedQueueCampaignHoppers=[]})},l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){c.agents=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.queueCampaignHoppers=e||{count:0,rows:[]}}function g(e){l.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHoppers.rows,{id:e.id}),c.queueCampaignHoppers.count-=1,c.queueCampaignHoppers.rows.length||c.getQueueCampaignHoppers(),r.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_HOPPER",u.hopper=angular.copy(r),u.hoppers=o,u.newHopper=!1,u.hopper||(u.hopper={},u.title="MOTIONDIALER.NEW_HOPPER",u.newHopper=!0),t.params.id&&(u.hopper.VoiceQueueId=t.params.id),u.addNewHopper=function(){u.errors=[],l.cmHopper.save(u.hopper).$promise.then(function(e){u.hoppers.unshift(e.toJSON()),s.success({title:"Hopper properly created",msg:u.hopper.name?u.hopper.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t+=1)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveHopper=function(){var n,a,i,o;u.errors=[],u.hopper.UserId=u.hopper.recallme?u.hopper.UserId:null,u.hopper.OwnerId=d.getCurrentUser().id,l.cmHopper.get({id:u.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){n=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){l.cmHopper.update({id:u.hopper.id},_.omit(u.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,l.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){l.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){o=e.name}).catch(function(e){o=void 0}).finally(function(){l.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:n,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:o,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:d.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var t=_.find(u.hoppers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),s.success({title:"Hopper properly saved!",msg:u.hopper.name?u.hopper.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},u.deleteHopper=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmHopper.delete({id:u.hopper.id}).$promise.then(function(){_.remove(u.hoppers,{id:u.hopper.id}),s.success({title:"Hopper properly deleted!",msg:(u.hopper.name||"hopper")+" has been deleted!"}),p(u.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","hoppers","hopper","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(n,a){var i=this;i.queueCampaign={},i.init=function(t){i.queueCampaign=t,n.cmHopper.get({limit:0,VoiceQueueId:t.id}).$promise.then(function(e){return i.total=e.count||0,n.cmHopper.get({limit:0,VoiceQueueId:t.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,n.cmHopperFinal.get({limit:0,VoiceQueueId:t.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.queueCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.voiceQueue[t?"removeLists":"addLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,a,i,o,n,s,r){var l=this;function d(){t.hide()}function c(e,t){var n=t.id;s.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:n}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=n||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,t){return-1<t.indexOf(e)},l.toggle=function(e,t){var n=t.indexOf(e);-1<n?t.splice(n,1):t.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,t){for(var n=0;n<l.selected.length;n+=1)c(o.id,l.selected[n]);var a;a=e,s.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.queueCampaign=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.voiceQueue[t?"removeTeams":"addTeams"]({id:o.queueCampaign.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.voiceQueue.getTeams({id:o.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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(n,e,i,o,t,a,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=a,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.queueCampaign=d||n.params.queueCampaign||{},c.selectedTab=n.params.tab||0,c.clonedialog=function(e,t){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.listadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.blacklistadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.teamadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.agentadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[],realtime:!1}})},c.resetlistdialog=function(t,n){s.voiceQueue.getLists({id:t.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))r.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(n).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t,n;e=c.queueCampaign.id,t=a.rows[0],n=t.id,s.voiceQueue.removeLists({id:e,ids:n}).$promise.then(function(){return s.voiceQueue.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){r.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(o.body),targetEvent:n,clickOutsideToClose:!1,locals:{queueCampaign:t,listsCampaign:a?a.rows:[]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.gotogoto=function(e,t){n.go("app.motiondialer.realtime.queues",{})},c.alert=r.info,c.gotoQueueCampaigns=function(){n.go("app.motiondialer.queueCampaigns")},c.saveQueueCampaign=function(){s.voiceQueue.update({id:c.queueCampaign.id},c.queueCampaign).$promise.then(function(){r.success({title:"QueueCampaign updated!",msg:c.queueCampaign.name?c.queueCampaign.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","queueCampaign"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.queueCampaigns=r||{count:0,rows:[]},v.table="queueCampaigns",v.listOrder="",v.listOrderAsc=null,v.selectedQueueCampaigns=[],v.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},v.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e})},v.clonedialog=function(e,t){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.listadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.blacklistadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.teamadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.agentadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.motiondialer.realtime.queues",{})},v.success=f,v.getQueueCampaigns=function(){v.query.offset=(v.query.page-1)*v.query.limit,m.hasRole("admin")?v.promise=l.voiceQueue.get(v.query,f).$promise:(v.query.id=v.currentUser.id,v.promise=l.user.getQueues(v.query,f).$promise)},v.createOrEditQueueCampaign=function(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:v.queueCampaigns.rows,license:v.license,setting:v.setting}})},v.deleteQueueCampaign=A,v.exportSelectedQueueCampaigns=function(){var e=angular.copy(v.selectedQueueCampaigns);return v.selectedQueueCampaigns=[],e},v.deleteSelectedQueueCampaigns=function(e){var t=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+v.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedQueueCampaigns.forEach(function(e){A(e)}),v.selectedQueueCampaigns=[]})},v.deselectQueueCampaigns=function(){v.selectedQueueCampaigns=[]},v.selectAllQueueCampaigns=function(){v.selectedQueueCampaigns=v.queueCampaigns.rows},l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.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){v.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 h=!0,b=1;function f(e){v.queueCampaigns=e||{count:0,rows:[]}}function A(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.queueCampaigns.rows,{id:e.id}),v.queueCampaigns.count-=1,v.queueCampaigns.rows.length||v.getQueueCampaigns(),c.success({title:"QueueCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","queueCampaigns","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c,m){var u=this,p=!0;function g(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.contacts:"+u.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(u.query=_.merge(e.query,_.omit(u.query,["sort","limit","page"])),u.query=_.omit(u.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){u.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queues=e||{count:0,rows:[]},u.queuesMap=_.mapValues(_.keyBy(u.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){u.getContacts()})}function v(e){u.contacts=e||{count:0,rows:[]},p=!1,u.refresh=!0}u.showTooltip=!1,u.refresh=!0,u.disable=[],u.agents=m||[],u.currentUser=r.getCurrentUser(),u.localizationMap=c,u.pickerModel={dateStart:null,dateEnd:null},u.queues={},u.contacts={count:0,rows:[]},u.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},u.clearAll=function(){u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel={dateStart:null,dateEnd:null},u.getContacts()},u.getContacts=function(){u.refresh=!1,u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel.dateStart&&!p&&(u.query.dateStart=u.pickerModel.dateStart,u.query.dateEnd=u.pickerModel.dateEnd);u.query.queue=u.query.queue,u.query.offset=(u.query.page-1)*u.query.limit,!r.hasRole("admin")&&_.isNil(u.query.queue)&&(u.query.queue=_.map(u.queues.rows,"name").join());i.localStorage.setItem("motion2.realtime.abandoned.bull.contacts:"+u.currentUser.id,JSON.stringify({query:_.omit(u.query,"queue")})),u.promise=s.voiceQueueReport.getVoiceQueuesReport(u.query,v).$promise},u.refreshContacts=function(){u.showTooltip=!1,u.getContacts()},u.onInit=g,u.assignedA=function(e,t){e&&(u.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:t?t.name:null,assigned:!!t}).$promise.catch(function(e){console.log(e)}).finally(function(){u.disable[e.id]=!1}))},u.disposed=function(e,t){e&&s.voiceQueueReport.update({id:e.id,disposition:t||null}).$promise.catch(function(e){console.log(e)})},u.onSavevoiceQueueReport=function(e){e&&u.queuesMap&&"outbound"===e.type&&u.queuesMap[e.queue]&&(u.showTooltip=!0)},u.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(u.contacts.rows,["id",e.id]);0<=t&&_.merge(u.contacts.rows[t],e)}},l.onWithoutApply("voiceQueueReport:save",u.onSavevoiceQueueReport),l.on("voiceQueueReport:update",u.onUpdatevoiceQueueReport),g();var h=!0,b=1;e.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=b),u.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory","agents"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,i,t,o,s,r,l,d){var c=this,m=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function u(){_.forIn(c.campaigns,function(e,t){c.rpcCampaigns[t]&&_.merge(e,_.pick(c.rpcCampaigns[t],m))})}c.count=s.count,c.campaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.rpcCampaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},c.query={sort:"-updatedAt",limit:10,page:1},c.success=v,c.getCampaigns=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=r.campaign.get(c.query,v).$promise},c.onSave=function(e){c.campaigns[e.id]&&(_.merge(c.campaigns[e.id],_.pick(e,m)),_.merge(c.rpcCampaigns[e.id],_.pick(e,m)))},c.$onInit=u,c.createOrEditIvrCampaign=function(e,t){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:_.values(c.campaigns),license:null,setting:null}})},l.onWithoutApply("campaign:save",c.onSave),c.interval=t(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=g),c.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),c.interval&&t.cancel(c.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,o,s,r,l,d){var c=this;c.agents=n||{count:0,rows:[]},c.queues=i?_.keyBy(i.rows?i.rows:[],"name"):{},c.rpcVoiceQueuesChannelsTmp=o?_.keyBy(o.rows?_.filter(o.rows,{type:"outbound"}):[],"uniqueid"):{},c.rpcVoiceQueuesChannels={},c.queryChannels={limit:10,page:1},c.getSize=function(e){return _.size(e)},c.$onInit=function(){_.forIn(c.rpcVoiceQueuesChannelsTmp,function(e,t){_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[t]=e)})},c.onSave=function(e){"outbound"===e.type&&_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[e.uniqueid]=e)},c.onRemove=function(e){c.rpcVoiceQueuesChannels[e.uniqueid]&&delete c.rpcVoiceQueuesChannels[e.uniqueid]},c.hangup=function(t){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:t}).$promise.then(function(e){d.success({title:"Channel "+t+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToAgent=function(t,e,n){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e,context:n}).$promise.then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToNumber=function(e,t){var n=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(n).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",c.onSave),r.on("voice_queue_channel:remove",c.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r){var l=this,d=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function c(){_.forIn(l.queues,function(e,t){l.rpcQueues[t]&&_.merge(e,_.pick(l.rpcQueues[t],d))})}l.count=a.count,l.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},r.hasRole("admin")?l.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:l.query={id:r.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},l.success=p,l.getQueues=function(){l.query.offset=(l.query.page-1)*l.query.limit,r.hasRole("admin")?l.promise=o.voiceQueue.get(l.query,p).$promise:l.promise=o.user.getQueues(l.query,p).$promise},l.onSave=function(e){l.queues[e.id]&&_.merge(l.queues[e.id],_.pick(e,d))},l.$onInit=c,s.onWithoutApply("voice_queue:save",l.onSave),l.interval=t(function(){},999);var m=!0,u=1;function p(e){l.count=e.count,l.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},c()}e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=u),l.getQueues())}),e.$on("$destroy",function(){s.removeAllListeners("voice_queue:save"),l.interval&&t.cancel(l.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.voiceQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].VoiceQueueId].paused++,u.queues[e[t].rows[n].VoiceQueueId].loggedInDb++,u.queues[e[t].rows[n].VoiceQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].VoiceQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"outbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.voiceQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditMotionDialerQueue=function(e,t){a.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(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:u.queues?u.queues.rows:[],realtime:!0}})},u.updateQueue=function(e){return l.voiceQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.MotionDialerQueueId]&&u.queues[e.MotionDialerQueueId].loggedInDb++},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.VoiceQueueId]&&(u.queues[e.VoiceQueueId].loggedInDb+=1,u.queues[e.VoiceQueueId].agents[e.UserId]=e.VoiceQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.VoiceQueueId]&&0<u.queues[e.VoiceQueueId].loggedInDb&&(u.queues[e.VoiceQueueId].loggedInDb-=1,delete u.queues[e.VoiceQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.onWithoutApply("voice_queue:save",u.onSave),u.interval=o(function(){},999),d.on("userVoiceQueueRt:save",u.onSaveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("voice_queue:save"),u.interval&&o.cancel(u.interval),d.removeAllListeners("userVoiceQueueRt:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.selectedTab=0,n.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.motiondialer.realtime.agents");break;case 1:n.go("app.motiondialer.realtime.queues");break;case 2:n.go("app.motiondialer.realtime.queue_calls");break;case 3:n.go("app.motiondialer.realtime.abandonedcalls");break;case 4:n.go("app.motiondialer.realtime.queue_params");break;case 5:n.go("app.motiondialer.realtime.ivr_campaigns");break;default:n.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,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",u.openchannelAccount=angular.copy(r),u.openchannelAccounts=s,u.newOpenchannelAccount=!1,u.openchannelAccount||(u.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",u.newOpenchannelAccount=!0),t.params.id&&(u.openchannelAccount.OpenchannelAccountId=t.params.id),u.addNewOpenchannelAccount=function(){u.errors=[],l.openchannelAccount.save(u.openchannelAccount).$promise.then(function(e){var t="add"+_.upperFirst("openchannelAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.openchannelAccounts.unshift(e.toJSON()),i.success({title:"OpenchannelAccount properly created",msg:u.openchannelAccount.name?u.openchannelAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.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.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelAccount=function(){u.errors=[],l.openchannelAccount.update({id:u.openchannelAccount.id},u.openchannelAccount).$promise.then(function(e){var t=_.find(u.openchannelAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"OpenchannelAccount properly saved!",msg:u.openchannelAccount.name?u.openchannelAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteOpenchannelAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.openchannelAccount.delete({id:u.openchannelAccount.id}).$promise.then(function(){return l.openchannelAccount.getAgents({id:u.openchannelAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("openchannelAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.openchannelAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.openchannelAccounts,{id:u.openchannelAccount.id}),i.success({title:"OpenchannelAccount properly deleted!",msg:(u.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),p(u.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.openchannelAccountApps.rows.length){var n=r.openchannelAccountApps.rows[t]?r.openchannelAccountApps.rows[t]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:n,openchannelAccount:r.openchannelAccount}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[t]=e:r.openchannelAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.openchannelAccountApps.rows.length;n++,0){var a=r.openchannelAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",maxlength:255,required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.openchannelAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=s.openchannelAccount.getApplications(r.query,n).$promise},r.editOpenchannelAccountApp=t,r.editInterval=function(e,t){if(r.openchannelAccountApps.rows.length){var n=r.openchannelAccountApps.rows[t]?r.openchannelAccountApps.rows[t]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.openchannelAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.openchannelAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:s.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,t){a.openchannelAccount[t?"removeAgents":"addAgents"]({id:l.openchannelAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"OpenchannelAccount properly "+(t?"removed":"added"),msg:"OpenchannelAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("openChannel")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.openchannelAccount={},c.openchannelAccountInteractions={count:0,rows:[]},c.selectedOpenchannelAccountInteractions=[],c.query={fields:"createdAt,updatedAt,id,Contact.firstName,Owner.name,closedAt,disposition,note,UserId,ContactId,OpenchannelAccountId,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.openchannelAccount=e,c.query.id=c.openchannelAccount.id,c.getOpenchannelAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.openchannelInteractionDownload=function(o,e,t){return l.openchannelInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="openchannel-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getOpenchannelAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.openchannelAccount.getInteractions(c.query,p).$promise},c.createOrEditOpenchannelAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:c.openchannelAccount,interaction:t,interactions:c.openchannelAccountInteractions.rows,license:null,setting:null}})},c.spyopenchannelInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"openchannel",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(c.selectedOpenchannelAccountInteractions);return c.selectedOpenchannelAccountInteractions=[],e},c.deleteOpenchannelAccountInteraction=g,c.deleteSelectedOpenchannelAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),c.selectedOpenchannelAccountInteractions=[]})};var m=!0,u=1;function p(e){c.openchannelAccountInteractions=e||{count:0,rows:[]}}function g(e){l.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.openchannelAccountInteractions.rows,{id:e.id}),c.openchannelAccountInteractions.count-=1,c.openchannelAccountInteractions.rows.length||c.getOpenchannelAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getOpenchannelAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.openchannelAccount={},c.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},c.selectedOpenchannelAccountOpenchannelCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.openchannelAccount=e,c.query.id=c.openchannelAccount.id,c.query.OpenchannelAccountId=c.openchannelAccount.id,c.getOpenchannelAccountOpenchannelCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getOpenchannelAccountOpenchannelCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.openchannelAccount.getAnswers(c.query,p).$promise},c.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,t){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:c.openchannelAccount,openchannelCannedAnswer:t,openchannelCannedAnswers:c.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(c.selectedOpenchannelAccountOpenchannelCannedAnswers);return c.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},c.deleteOpenchannelAccountOpenchannelCannedAnswer=g,c.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+c.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),c.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})};var m=!0,u=1;function p(e){c.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),c.openchannelAccountOpenchannelCannedAnswers.count-=1,c.openchannelAccountOpenchannelCannedAnswers.rows.length||c.getOpenchannelAccountOpenchannelCannedAnswers(),r.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getOpenchannelAccountOpenchannelCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",u.openchannelCannedAnswer=angular.copy(r),u.openchannelCannedAnswers=s,u.newOpenchannelCannedAnswer=!1,u.openchannelCannedAnswer||(u.openchannelCannedAnswer={},u.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",u.newOpenchannelCannedAnswer=!0),t.params.id&&(u.openchannelCannedAnswer.OpenchannelAccountId=t.params.id),u.addNewOpenchannelCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.openchannelCannedAnswer).$promise.then(function(e){u.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:u.openchannelCannedAnswer.name?u.openchannelCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.openchannelCannedAnswer.id},u.openchannelCannedAnswer).$promise.then(function(e){var t=_.find(u.openchannelCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:u.openchannelCannedAnswer.name?u.openchannelCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOpenchannelCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(u.openchannelCannedAnswers,{id:u.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(u.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),p(u.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.openchannelAccount={},c.openchannelAccountOpenchannelDispositions={count:0,rows:[]},c.selectedOpenchannelAccountOpenchannelDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.openchannelAccount=e,c.query.id=c.openchannelAccount.id,c.query.OpenchannelAccountId=c.openchannelAccount.id,c.getOpenchannelAccountOpenchannelDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the openchannelDisposition?").htmlContent("<b>"+(e.name||"openchannelDisposition")+"</b> will be deleted.").ariaLabel("delete openchannelDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getOpenchannelAccountOpenchannelDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.openchannelAccount.getDispositions(c.query,p).$promise},c.createOrEditOpenchannelAccountOpenchannelDisposition=function(e,t){o.show({controller:"CreateOrEditOpenchannelDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:c.openchannelAccount,openchannelDisposition:t,openchannelDispositions:c.openchannelAccountOpenchannelDispositions.rows,license:null,setting:null}})},c.exportSelectedOpenchannelAccountOpenchannelDispositions=function(){var e=angular.copy(c.selectedOpenchannelAccountOpenchannelDispositions);return c.selectedOpenchannelAccountOpenchannelDispositions=[],e},c.deleteOpenchannelAccountOpenchannelDisposition=g,c.deleteSelectedOpenchannelAccountOpenchannelDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected openchannelDispositions?").htmlContent("<b>"+c.selectedOpenchannelAccountOpenchannelDispositions.length+" selected</b> will be deleted.").ariaLabel("delete openchannelDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedOpenchannelAccountOpenchannelDispositions.forEach(function(e){g(e)}),c.selectedOpenchannelAccountOpenchannelDispositions=[]})};var m=!0,u=1;function p(e){c.openchannelAccountOpenchannelDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.openchannelAccountOpenchannelDispositions.rows,{id:e.id}),c.openchannelAccountOpenchannelDispositions.count-=1,c.openchannelAccountOpenchannelDispositions.rows.length||c.getOpenchannelAccountOpenchannelDispositions(),r.success({title:"OpenchannelDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getOpenchannelAccountOpenchannelDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION",u.openchannelDisposition=angular.copy(r),u.openchannelDispositions=s,u.newOpenchannelDisposition=!1,u.openchannelDisposition||(u.openchannelDisposition={},u.title="OPENCHANNEL.NEW_OPENCHANNELDISPOSITION",u.newOpenchannelDisposition=!0),t.params.id&&(u.openchannelDisposition.OpenchannelAccountId=t.params.id),u.addNewOpenchannelDisposition=function(){u.errors=[],l.disposition.save(u.openchannelDisposition).$promise.then(function(e){u.openchannelDispositions.unshift(e.toJSON()),o.success({title:"OpenchannelDisposition properly created",msg:u.openchannelDisposition.name?u.openchannelDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelDisposition=function(){u.errors=[],l.disposition.update({id:u.openchannelDisposition.id},u.openchannelDisposition).$promise.then(function(e){var t=_.find(u.openchannelDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"OpenchannelDisposition properly saved!",msg:u.openchannelDisposition.name?u.openchannelDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOpenchannelDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelDisposition will be deleted.").ariaLabel("Delete OpenchannelDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.openchannelDisposition.id}).$promise.then(function(){_.remove(u.openchannelDispositions,{id:u.openchannelDisposition.id}),o.success({title:"OpenchannelDisposition properly deleted!",msg:(u.openchannelDisposition.name||"openchannelDisposition")+" has been deleted!"}),p(u.openchannelDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelDispositions","openchannelDisposition","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.openchannelAccount=d||e.params.openchannelAccount||{},c.selectedTab=e.params.tab||0,c.agentadddialog=function(e,t){n.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:c.openchannelAccounts?c.openchannelAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts")},c.saveOpenchannelAccount=function(){s.openchannelAccount.update({id:c.openchannelAccount.id},c.openchannelAccount).$promise.then(function(){r.success({title:"OpenchannelAccount updated!",msg:c.openchannelAccount.name?c.openchannelAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmContact.describe({}).$promise.then(function(e){if(e){var t=_.keys(e.toJSON());c.attributes=[],c.excludedFields=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"];for(var n=0;n<t.length;n++)_.includes(c.excludedFields,t[n])||_.startsWith(t[n],"cf_")||c.attributes.push({option:t[n],value:t[n]})}}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETattributes",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmList.getCustomFields({id:c.openchannelAccount.ListId}).$promise.then(function(e){if(e){c.customFields=[];for(var t=0;t<e.rows.length;t++)c.customFields.push({option:e.rows[t].alias,value:"cf_"+e.rows[t].id})}}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","openchannelAccount"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.openchannelAccounts=r||{count:0,rows:[]},v.table="openchannelAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedOpenchannelAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e})},v.interactionsgoto=function(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},v.agentadddialog=function(e,t){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:v.openchannelAccounts?v.openchannelAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getOpenchannelAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.openchannelAccount.get(v.query,f).$promise},v.createOrEditOpenchannelAccount=function(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:v.openchannelAccounts.rows,license:v.license,setting:v.setting}})},v.deleteOpenchannelAccount=A,v.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(v.selectedOpenchannelAccounts);return v.selectedOpenchannelAccounts=[],e},v.deleteSelectedOpenchannelAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+v.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOpenchannelAccounts.forEach(function(e){A(e)}),v.selectedOpenchannelAccounts=[]})},v.deselectOpenchannelAccounts=function(){v.selectedOpenchannelAccounts=[]},v.selectAllOpenchannelAccounts=function(){v.selectedOpenchannelAccounts=v.openchannelAccounts.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.openchannelAccounts=e||{count:0,rows:[]}}function A(e){l.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.openchannelAccounts.rows,{id:e.id}),v.openchannelAccounts.count-=1,v.openchannelAccounts.rows.length||v.getOpenchannelAccounts(),c.success({title:"OpenchannelAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",u.openchannelQueue=angular.copy(r),u.openchannelQueues=s,u.newOpenchannelQueue=!1,u.openchannelQueue||(u.openchannelQueue={strategy:"beepall",timeout:10},u.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",u.newOpenchannelQueue=!0),u.addNewOpenchannelQueue=function(){u.errors=[],l.openchannelQueue.save(u.openchannelQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"openChannel",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.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.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelQueue=function(){u.errors=[],l.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(e){var t=_.find(u.openchannelQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"OpenchannelQueue properly saved!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOpenchannelQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.openchannelQueue.delete({id:u.openchannelQueue.id}).$promise.then(function(){return l.openchannelQueue.getAgents({id:u.openchannelQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.openchannelQueue.id],channel:"openChannel",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.openchannelQueues,{id:u.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(u.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),p(u.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.openchannelQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.openchannelQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:s.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,t){a.openchannelQueue[t?"removeAgents":"addAgents"]({id:l.openchannelQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"OpenchannelQueue properly "+(t?"removed":"added"),msg:"OpenchannelQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.openchannelQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.openchannelQueue[t?"removeTeams":"addTeams"]({id:o.openchannelQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.openchannelQueue.getTeams({id:o.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.openchannelQueue=d||e.params.openchannelQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:c.openchannelQueues?c.openchannelQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:c.openchannelQueues?c.openchannelQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues")},c.saveOpenchannelQueue=function(){s.openchannelQueue.update({id:c.openchannelQueue.id},c.openchannelQueue).$promise.then(function(){r.success({title:"OpenchannelQueue updated!",msg:c.openchannelQueue.name?c.openchannelQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","openchannelQueue"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.openchannelQueues=r||{count:0,rows:[]},v.table="openchannelQueues",v.listOrder="",v.listOrderAsc=null,v.selectedOpenchannelQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:v.openchannelQueues?v.openchannelQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:v.openchannelQueues?v.openchannelQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.openchannel.realtime.queues",{})},v.success=f,v.getOpenchannelQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.openchannelQueue.get(v.query,f).$promise},v.createOrEditOpenchannelQueue=function(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:v.openchannelQueues.rows,license:v.license,setting:v.setting}})},v.deleteOpenchannelQueue=A,v.exportSelectedOpenchannelQueues=function(){var e=angular.copy(v.selectedOpenchannelQueues);return v.selectedOpenchannelQueues=[],e},v.deleteSelectedOpenchannelQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+v.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOpenchannelQueues.forEach(function(e){A(e)}),v.selectedOpenchannelQueues=[]})},v.deselectOpenchannelQueues=function(){v.selectedOpenchannelQueues=[]},v.selectAllOpenchannelQueues=function(){v.selectedOpenchannelQueues=v.openchannelQueues.rows};var h=!0,b=1;function f(e){v.openchannelQueues=e||{count:0,rows:[]}}function A(e){l.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.openchannelQueues.rows,{id:e.id}),v.openchannelQueues.count-=1,v.openchannelQueues.rows.length||v.getOpenchannelQueues(),c.success({title:"OpenchannelQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"openchannel",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.openchannelQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].OpenchannelQueueId].paused++,u.queues[e[t].rows[n].OpenchannelQueueId].loggedInDb++,u.queues[e[t].rows[n].OpenchannelQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].OpenchannelQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"openchannel",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.openchannelQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditOpenchannelQueue=function(e,t){a.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.openchannelQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.OpenchannelQueueId]&&u.queues[e.OpenchannelQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.OpenchannelQueueId]&&u.queues[e.OpenchannelQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.OpenchannelQueueId]&&(u.queues[e.OpenchannelQueueId].loggedInDb+=1,u.queues[e.OpenchannelQueueId].agents[e.UserId]=e.OpenchannelQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.OpenchannelQueueId]&&0<u.queues[e.OpenchannelQueueId].loggedInDb&&(u.queues[e.OpenchannelQueueId].loggedInDb-=1,delete u.queues[e.OpenchannelQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("openchannel_queue:save",u.onSave),d.on("userOpenchannelQueue:save",u.onSaveMember),d.on("userOpenchannelQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("openchannel_queue:save"),d.removeAllListeners("userOpenchannelQueue:remove"),d.removeAllListeners("userOpenchannelQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,n.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.openchannel.realtime.agents");break;case 1:n.go("app.openchannel.realtime.queues");break;default:n.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.currentUser=o.getCurrentUser(),s.plugin={},s.getTrustedURL=function(){return n.trustAsResourceUrl(s.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return s.plugin=e,a.plugin.get({id:s.plugin.id}).$promise}).catch(function(e){s.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_CUSTOMIZATION",u.customization=angular.copy(r),u.customizations=s,u.newCustomization=!1,u.customization||(u.customization={},u.title="SETTINGS.NEW_CUSTOMIZATION",u.newCustomization=!0),u.addNewCustomization=function(){u.errors=[],l.setting.save(u.customization).$promise.then(function(e){u.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:u.customization.name?u.customization.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.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.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCustomization=function(){u.errors=[],l.setting.update({id:u.customization.id},u.customization).$promise.then(function(e){var t=_.find(u.customizations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Customization properly saved!",msg:u.customization.name?u.customization.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)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.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCustomization=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.setting.delete({id:u.customization.id}).$promise.then(function(){_.remove(u.customizations,{id:u.customization.id}),o.success({title:"Customization properly deleted!",msg:(u.customization.name||"customization")+" has been deleted!"}),p(u.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var t=0;t<e.data.errors.length;t++)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.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","customizations","customization","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.license=a,i.customizations=e,i.customization={},i.customizations&&i.customizations.rows&&i.customizations.rows.length&&(i.customization=i.customizations.rows[0]),i.saveCustomization=function(){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()})})}}e.$inject=["customizations","api","toasty","license"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_GENERAL",u.general=angular.copy(r),u.generals=s,u.newGeneral=!1,u.general||(u.general={min_internal:1e3,chatTimeout:10,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0},u.title="SETTINGS.NEW_GENERAL",u.newGeneral=!0),u.addNewGeneral=function(){u.errors=[],l.setting.save(u.general).$promise.then(function(e){u.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:u.general.name?u.general.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.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.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveGeneral=function(){u.errors=[],l.setting.update({id:u.general.id},u.general).$promise.then(function(e){var t=_.find(u.generals,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"General properly saved!",msg:u.general.name?u.general.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)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.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteGeneral=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.setting.delete({id:u.general.id}).$promise.then(function(){_.remove(u.generals,{id:u.general.id}),o.success({title:"General properly deleted!",msg:(u.general.name||"general")+" has been deleted!"}),p(u.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var t=0;t<e.data.errors.length;t++)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.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","generals","general","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.license=a,i.generals=e,i.general={},i.generals&&i.generals.rows&&i.generals.rows.length&&(i.general=i.generals.rows[0]),i.saveGeneral=function(){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()})})}}e.$inject=["generals","api","toasty","license"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(t,n,a,i,e,o){var s=this;s.license=i||{},s.agents=0,s.users=0,s.telephones=0,s.channels=[{name:"voice",icon:"icon-phone"},{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"}],s.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],s.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"}],s.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],s.others=[{name:"update",icon:"icon-cloud-download"}],s.requestLicense=function(e){n.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:s.channels,modules:s.modules,addons:s.addons,sessions:s.sessions,others:s.others}})},s.updateLicense=function(e){n.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},s.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},o.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return s.agents=e&&e.count?e.count:0,o.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return s.users=e&&e.count?e.count:0,o.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){s.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(n),m.channels=a,m.modules=i,m.addons=o,m.sessions=s,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(n[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==n[e]?n[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==n[e]?n[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){t.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.errors=[],o.license=angular.copy(n),o.licenseKey,o.updateLicense=function(){return a.license.update({id:1,key:o.licenseKey}).$promise.then(function(e){e&&(e.demo?t.error({title:"License update failed!",msg:"Invalid license key"}):t.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_NETWORK",u.network=angular.copy(r),u.networks=s,u.newNetwork=!1,u.network||(u.network={type:"localnet"},u.title="SETTINGS.NEW_NETWORK",u.newNetwork=!0),u.addNewNetwork=function(){u.errors=[],l.network.save(u.network).$promise.then(function(e){u.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:u.network.name?u.network.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.network.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.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveNetwork=function(){u.errors=[],l.network.update({id:u.network.id},u.network).$promise.then(function(e){var t=_.find(u.networks,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Network properly saved!",msg:u.network.name?u.network.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var t=0;t<e.data.errors.length;t++)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.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteNetwork=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.network.delete({id:u.network.id}).$promise.then(function(){_.remove(u.networks,{id:u.network.id}),o.success({title:"Network properly deleted!",msg:(u.network.name||"network")+" has been deleted!"}),p(u.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var t=0;t<e.data.errors.length;t++)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.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.networks=r||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(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:v.networks.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.network.get(v.query,f).$promise},v.createOrEditNetwork=function(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:v.networks.rows,license:v.license,setting:v.setting}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var t=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,b=1;function f(e){v.networks=e||{count:0,rows:[]}}function A(e){l.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),c.success({title:"Network deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","networks","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_SMTP",u.smtp=angular.copy(r),u.smtps=s,u.newSmtp=!1,u.smtp||(u.smtp={service:!0},u.title="SETTINGS.NEW_SMTP",u.newSmtp=!0),u.addNewSmtp=function(){u.errors=[],l.mailAccount.save(u.smtp).$promise.then(function(e){u.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:u.smtp.name?u.smtp.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.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.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmtp=function(){u.errors=[],l.mailAccount.update({id:u.smtp.id},u.smtp).$promise.then(function(e){var t=_.find(u.smtps,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Smtp properly saved!",msg:u.smtp.name?u.smtp.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmtp=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailAccount.delete({id:u.smtp.id}).$promise.then(function(){_.remove(u.smtps,{id:u.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(u.smtp.name||"smtp")+" has been deleted!"}),p(u.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smtps","smtp","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.license=a,i.smtps=e,i.smtp={},i.smtps&&i.smtps.rows&&i.smtps.rows.length?i.smtp=i.smtps.rows[0]:i.smtp={service:!0,Smtp:{service:null}},i.saveSmtp=function(){i.smtp.id?t.mailAccount.update({id:i.smtp.id},i.smtp).$promise.then(function(){n.success({title:"Smtp updated!",msg:i.smtp.name?i.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(i.smtp).$promise.then(function(e){_.merge(i.smtp,e),n.success({title:"Smtp updated!",msg:i.smtp.name?i.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()})})},i.verifySmtp=function(){i.smtp.id&&t.mailAccount.verifySmtp({id:i.smtp.id}).$promise.then(function(){n.success({title:"Smtp verified!",msg:i.smtp.name?i.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})})}}e.$inject=["smtps","api","toasty","license"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,o,t,n,a,s,r){var l,d=this;d.system=n||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=t.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,t,n){var a=o.confirm().title("Would you like to change the status of the process #"+t+"?").textContent("The status will be changed to: "+n.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");o.show(a).then(function(){return r.pm2.update({id:t,status:n})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){s.success({title:"Process updated!",msg:"Status properly changed to: "+n})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.title="SETTINGS.UPDATE",o.progress=0,o.updating=!0,o.output="Waiting...",o.success=!0,o.interval=t(function(){o.progress<90&&(o.progress+=1)},1e3),o.closeDialog=function(){e.hide()},o.reload=function(){n.location.reload()},o.stopInterval=function(){angular.isDefined(o.interval)&&(t.cancel(o.interval),o.interval=void 0);o.progress=100,o.updating=!1},i.version.fetch().$promise.then(function(e){return o.output=e.output+"...",i.version.reset().$promise}).then(function(e){return o.output=e.output+"...",i.version.pull().$promise}).then(function(e){return o.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return o.output=e.output+"...",i.version.restart().$promise}).then(function(e){o.output="Waiting to restart motion...",a(function(){o.stopInterval()},3e4)}).catch(function(e){o.success=!1,o.stopInterval(),o.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(n,e,a,t,i){this.version=t||{},this.updateConfirm=function(e){var t=n.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(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");n.show(t).then(function(){n.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"sms",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.smsQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].SmsQueueId].paused++,u.queues[e[t].rows[n].SmsQueueId].loggedInDb++,u.queues[e[t].rows[n].SmsQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].SmsQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"sms",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.smsQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditSmsQueue=function(e,t){a.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.smsQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.SmsQueueId]&&u.queues[e.SmsQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.SmsQueueId]&&u.queues[e.SmsQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.SmsQueueId]&&(u.queues[e.SmsQueueId].loggedInDb+=1,u.queues[e.SmsQueueId].agents[e.UserId]=e.SmsQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.SmsQueueId]&&0<u.queues[e.SmsQueueId].loggedInDb&&(u.queues[e.SmsQueueId].loggedInDb-=1,delete u.queues[e.SmsQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("sms_queue:save",u.onSave),d.on("userSmsQueue:save",u.onSaveMember),d.on("userSmsQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("sms_queue:save"),d.removeAllListeners("userSmsQueue:remove"),d.removeAllListeners("userSmsQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,n.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.sms.realtime.agents");break;case 1:n.go("app.sms.realtime.queues");break;default:n.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSACCOUNT",u.smsAccount=angular.copy(r),u.smsAccounts=s,u.newSmsAccount=!1,u.smsAccount||(u.smsAccount={remote:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="SMS.NEW_SMSACCOUNT",u.newSmsAccount=!0),t.params.id&&(u.smsAccount.SmsAccountId=t.params.id),u.addNewSmsAccount=function(){u.errors=[],l.smsAccount.save(u.smsAccount).$promise.then(function(e){var t="add"+_.upperFirst("smsAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.smsAccounts.unshift(e.toJSON()),i.success({title:"SmsAccount properly created",msg:u.smsAccount.name?u.smsAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.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.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsAccount=function(){u.errors=[],l.smsAccount.update({id:u.smsAccount.id},u.smsAccount).$promise.then(function(e){var t=_.find(u.smsAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"SmsAccount properly saved!",msg:u.smsAccount.name?u.smsAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteSmsAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.smsAccount.delete({id:u.smsAccount.id}).$promise.then(function(){return l.smsAccount.getAgents({id:u.smsAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("smsAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.smsAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.smsAccounts,{id:u.smsAccount.id}),i.success({title:"SmsAccount properly deleted!",msg:(u.smsAccount.name||"smsAccount")+" has been deleted!"}),p(u.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsAccounts","smsAccount","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.smsAccountApps.rows.length){var n=r.smsAccountApps.rows[t]?r.smsAccountApps.rows[t]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:n,smsAccount:r.smsAccount}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[t]=e:r.smsAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.smsAccountApps.rows.length;n++,0){var a=r.smsAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",maxlength:255,required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.smsAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=s.smsAccount.getApplications(r.query,n).$promise},r.editSmsAccountApp=t,r.editInterval=function(e,t){if(r.smsAccountApps.rows.length){var n=r.smsAccountApps.rows[t]?r.smsAccountApps.rows[t]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.smsAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.smsAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("SMS.ALL_AGENTS"),labelSelected:s.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,t){a.smsAccount[t?"removeAgents":"addAgents"]({id:l.smsAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"SmsAccount properly "+(t?"removed":"added"),msg:"SmsAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("sms")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.smsAccount={},c.smsAccountInteractions={count:0,rows:[]},c.selectedSmsAccountInteractions=[],c.query={fields:"createdAt,updatedAt,id,Contact.firstName,Owner.name,closedAt,disposition,note,UserId,ContactId,SmsAccountId,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.smsAccount=e,c.query.id=c.smsAccount.id,c.getSmsAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.smsInteractionDownload=function(o,e,t){return l.smsInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="sms-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getSmsAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.smsAccount.getInteractions(c.query,p).$promise},c.createOrEditSmsAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:c.smsAccount,interaction:t,interactions:c.smsAccountInteractions.rows,license:null,setting:null}})},c.spysmsInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"sms",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(c.selectedSmsAccountInteractions);return c.selectedSmsAccountInteractions=[],e},c.deleteSmsAccountInteraction=g,c.deleteSelectedSmsAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedSmsAccountInteractions.forEach(function(e){g(e)}),c.selectedSmsAccountInteractions=[]})};var m=!0,u=1;function p(e){c.smsAccountInteractions=e||{count:0,rows:[]}}function g(e){l.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.smsAccountInteractions.rows,{id:e.id}),c.smsAccountInteractions.count-=1,c.smsAccountInteractions.rows.length||c.getSmsAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getSmsAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.smsAccount={},c.smsAccountSmsCannedAnswers={count:0,rows:[]},c.selectedSmsAccountSmsCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.smsAccount=e,c.query.id=c.smsAccount.id,c.query.SmsAccountId=c.smsAccount.id,c.getSmsAccountSmsCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getSmsAccountSmsCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.smsAccount.getAnswers(c.query,p).$promise},c.createOrEditSmsAccountSmsCannedAnswer=function(e,t){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:c.smsAccount,smsCannedAnswer:t,smsCannedAnswers:c.smsAccountSmsCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(c.selectedSmsAccountSmsCannedAnswers);return c.selectedSmsAccountSmsCannedAnswers=[],e},c.deleteSmsAccountSmsCannedAnswer=g,c.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+c.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),c.selectedSmsAccountSmsCannedAnswers=[]})};var m=!0,u=1;function p(e){c.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.smsAccountSmsCannedAnswers.rows,{id:e.id}),c.smsAccountSmsCannedAnswers.count-=1,c.smsAccountSmsCannedAnswers.rows.length||c.getSmsAccountSmsCannedAnswers(),r.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getSmsAccountSmsCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSCANNEDANSWER",u.smsCannedAnswer=angular.copy(r),u.smsCannedAnswers=s,u.newSmsCannedAnswer=!1,u.smsCannedAnswer||(u.smsCannedAnswer={},u.title="SMS.NEW_SMSCANNEDANSWER",u.newSmsCannedAnswer=!0),t.params.id&&(u.smsCannedAnswer.SmsAccountId=t.params.id),u.addNewSmsCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.smsCannedAnswer).$promise.then(function(e){u.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:u.smsCannedAnswer.name?u.smsCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.smsCannedAnswer.id},u.smsCannedAnswer).$promise.then(function(e){var t=_.find(u.smsCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SmsCannedAnswer properly saved!",msg:u.smsCannedAnswer.name?u.smsCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmsCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.smsCannedAnswer.id}).$promise.then(function(){_.remove(u.smsCannedAnswers,{id:u.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(u.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),p(u.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.smsAccount={},c.smsAccountSmsDispositions={count:0,rows:[]},c.selectedSmsAccountSmsDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.smsAccount=e,c.query.id=c.smsAccount.id,c.query.SmsAccountId=c.smsAccount.id,c.getSmsAccountSmsDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the smsDisposition?").htmlContent("<b>"+(e.name||"smsDisposition")+"</b> will be deleted.").ariaLabel("delete smsDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getSmsAccountSmsDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.smsAccount.getDispositions(c.query,p).$promise},c.createOrEditSmsAccountSmsDisposition=function(e,t){o.show({controller:"CreateOrEditSmsDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:c.smsAccount,smsDisposition:t,smsDispositions:c.smsAccountSmsDispositions.rows,license:null,setting:null}})},c.exportSelectedSmsAccountSmsDispositions=function(){var e=angular.copy(c.selectedSmsAccountSmsDispositions);return c.selectedSmsAccountSmsDispositions=[],e},c.deleteSmsAccountSmsDisposition=g,c.deleteSelectedSmsAccountSmsDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected smsDispositions?").htmlContent("<b>"+c.selectedSmsAccountSmsDispositions.length+" selected</b> will be deleted.").ariaLabel("delete smsDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedSmsAccountSmsDispositions.forEach(function(e){g(e)}),c.selectedSmsAccountSmsDispositions=[]})};var m=!0,u=1;function p(e){c.smsAccountSmsDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.smsAccountSmsDispositions.rows,{id:e.id}),c.smsAccountSmsDispositions.count-=1,c.smsAccountSmsDispositions.rows.length||c.getSmsAccountSmsDispositions(),r.success({title:"SmsDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getSmsAccountSmsDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSDISPOSITION",u.smsDisposition=angular.copy(r),u.smsDispositions=s,u.newSmsDisposition=!1,u.smsDisposition||(u.smsDisposition={},u.title="SMS.NEW_SMSDISPOSITION",u.newSmsDisposition=!0),t.params.id&&(u.smsDisposition.SmsAccountId=t.params.id),u.addNewSmsDisposition=function(){u.errors=[],l.disposition.save(u.smsDisposition).$promise.then(function(e){u.smsDispositions.unshift(e.toJSON()),o.success({title:"SmsDisposition properly created",msg:u.smsDisposition.name?u.smsDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsDisposition=function(){u.errors=[],l.disposition.update({id:u.smsDisposition.id},u.smsDisposition).$promise.then(function(e){var t=_.find(u.smsDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SmsDisposition properly saved!",msg:u.smsDisposition.name?u.smsDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmsDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsDisposition will be deleted.").ariaLabel("Delete SmsDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.smsDisposition.id}).$promise.then(function(){_.remove(u.smsDispositions,{id:u.smsDisposition.id}),o.success({title:"SmsDisposition properly deleted!",msg:(u.smsDisposition.name||"smsDisposition")+" has been deleted!"}),p(u.smsDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsDispositions","smsDisposition","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.smsAccount=d||e.params.smsAccount||{},c.selectedTab=e.params.tab||0,c.agentadddialog=function(e,t){n.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:c.smsAccounts?c.smsAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts")},c.saveSmsAccount=function(){s.smsAccount.update({id:c.smsAccount.id},c.smsAccount).$promise.then(function(){r.success({title:"SmsAccount updated!",msg:c.smsAccount.name?c.smsAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","smsAccount"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.smsAccounts=r||{count:0,rows:[]},v.table="smsAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedSmsAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"CSCTelecom",value:"'csc'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e})},v.interactionsgoto=function(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},v.agentadddialog=function(e,t){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:v.smsAccounts?v.smsAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSmsAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.smsAccount.get(v.query,f).$promise},v.createOrEditSmsAccount=function(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:v.smsAccounts.rows,license:v.license,setting:v.setting}})},v.deleteSmsAccount=A,v.exportSelectedSmsAccounts=function(){var e=angular.copy(v.selectedSmsAccounts);return v.selectedSmsAccounts=[],e},v.deleteSelectedSmsAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+v.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSmsAccounts.forEach(function(e){A(e)}),v.selectedSmsAccounts=[]})},v.deselectSmsAccounts=function(){v.selectedSmsAccounts=[]},v.selectAllSmsAccounts=function(){v.selectedSmsAccounts=v.smsAccounts.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.smsAccounts=e||{count:0,rows:[]}}function A(e){l.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.smsAccounts.rows,{id:e.id}),v.smsAccounts.count-=1,v.smsAccounts.rows.length||v.getSmsAccounts(),c.success({title:"SmsAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSQUEUE",u.smsQueue=angular.copy(r),u.smsQueues=s,u.newSmsQueue=!1,u.smsQueue||(u.smsQueue={strategy:"beepall",timeout:10},u.title="SMS.NEW_SMSQUEUE",u.newSmsQueue=!0),u.addNewSmsQueue=function(){u.errors=[],l.smsQueue.save(u.smsQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"sms",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:u.smsQueue.name?u.smsQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.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.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsQueue=function(){u.errors=[],l.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(e){var t=_.find(u.smsQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SmsQueue properly saved!",msg:u.smsQueue.name?u.smsQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmsQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.smsQueue.delete({id:u.smsQueue.id}).$promise.then(function(){return l.smsQueue.getAgents({id:u.smsQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.smsQueue.id],channel:"sms",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.smsQueues,{id:u.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(u.smsQueue.name||"smsQueue")+" has been deleted!"}),p(u.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsQueues","smsQueue","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.smsQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.smsQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("SMS.ALL_AGENTS"),labelSelected:s.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,t){a.smsQueue[t?"removeAgents":"addAgents"]({id:l.smsQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"SmsQueue properly "+(t?"removed":"added"),msg:"SmsQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.smsQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.smsQueue[t?"removeTeams":"addTeams"]({id:o.smsQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.smsQueue.getTeams({id:o.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.smsQueue=d||e.params.smsQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:c.smsQueues?c.smsQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:c.smsQueues?c.smsQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoSmsQueues=function(){e.go("app.sms.smsQueues")},c.saveSmsQueue=function(){s.smsQueue.update({id:c.smsQueue.id},c.smsQueue).$promise.then(function(){r.success({title:"SmsQueue updated!",msg:c.smsQueue.name?c.smsQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","smsQueue"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.smsQueues=r||{count:0,rows:[]},v.table="smsQueues",v.listOrder="",v.listOrderAsc=null,v.selectedSmsQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:v.smsQueues?v.smsQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:v.smsQueues?v.smsQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.sms.realtime.queues",{})},v.success=f,v.getSmsQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.smsQueue.get(v.query,f).$promise},v.createOrEditSmsQueue=function(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:v.smsQueues.rows,license:v.license,setting:v.setting}})},v.deleteSmsQueue=A,v.exportSelectedSmsQueues=function(){var e=angular.copy(v.selectedSmsQueues);return v.selectedSmsQueues=[],e},v.deleteSelectedSmsQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+v.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSmsQueues.forEach(function(e){A(e)}),v.selectedSmsQueues=[]})},v.deselectSmsQueues=function(){v.selectedSmsQueues=[]},v.selectAllSmsQueues=function(){v.selectedSmsQueues=v.smsQueues.rows};var h=!0,b=1;function f(e){v.smsQueues=e||{count:0,rows:[]}}function A(e){l.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.smsQueues.rows,{id:e.id}),v.smsQueues.count-=1,v.smsQueues.rows.length||v.getSmsQueues(),c.success({title:"SmsQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.agents=r||{count:0,rows:[]},v.table="agents",v.listOrder="",v.listOrderAsc=null,v.selectedAgents=[],v.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",role:"agent",sort:"-updatedAt",limit:10,page:1},v.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'",ngIf:"vm.agent.showWebBar == 1"},{option:"wss",value:"'wss'",ngIf:"vm.agent.showWebBar == 1"},{option:"tls",value:"'tls'",ngIf:"vm.agent.showWebBar == 1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayextensionMonitor=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.staff.agents.edit",{id:e.id,agent:e})},v.teamadddialog=function(e,t){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:v.agents?v.agents.rows:[]}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getAgents=function(){v.query.offset=(v.query.page-1)*v.query.limit,m.hasRole("admin")?v.promise=l.user.get(v.query,f).$promise:(v.query.id=v.currentUser.id,v.promise=l.user.getAgents(v.query,f).$promise)},v.createOrEditAgent=function(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:v.agents.rows,license:v.license,setting:v.setting}})},v.deleteAgent=A,v.exportSelectedAgents=function(){var e=angular.copy(v.selectedAgents);return v.selectedAgents=[],e},v.deleteSelectedAgents=function(e){var t=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+v.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedAgents.forEach(function(e){A(e)}),v.selectedAgents=[]})},v.deselectAgents=function(){v.selectedAgents=[]},v.selectAllAgents=function(){v.selectedAgents=v.agents.rows};var h=!0,b=1;function f(e){v.agents=e||{count:0,rows:[]}}function A(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(v.agents.rows,{id:e.id}),v.agents.count-=1,v.agents.rows.length||v.getAgents(),c.success({title:"Agent deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","agents","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_AGENT",u.agent=angular.copy(r),u.agents=s,u.newAgent=!1,u.agent||(u.agent={role:"agent",showWebBar:"0",autointernal:!0,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0},u.title="STAFF.NEW_AGENT",u.newAgent=!0),u.addNewAgent=function(){u.errors=[],l.user.save(u.agent).$promise.then(function(e){u.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:u.agent.name?u.agent.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.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.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAgent=function(){u.errors=[],l.user.update({id:u.agent.id},u.agent).$promise.then(function(e){var t=_.find(u.agents,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Agent properly saved!",msg:u.agent.name?u.agent.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)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.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAgent=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.user.delete({id:u.agent.id}).$promise.then(function(){_.remove(u.agents,{id:u.agent.id}),o.success({title:"Agent properly deleted!",msg:(u.agent.name||"agent")+" has been deleted!"}),p(u.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var t=0;t<e.data.errors.length;t++)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.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","agents","agent","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.agent=angular.copy(e),i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.currentUser=o.getCurrentUser(),s.errors=[],s.setting=i,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.agent=a,s.password="",s.oldPassword="",s.savePassword=function(){s.errors=[];var e={id:s.agent.id,newPassword:s.password};s.currentUser.id==s.agent.id&&(e.oldPassword=s.oldPassword);n.user.changePassword(e).$promise.then(function(){t.success({title:"Agent password properly updated!"}),r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(n,a,i,e,t,o){var s=this;s.agent={},s.navigation=t.getNavigation(),s.init=function(e){s.agent=e},s.onChange=function(t,n){if((n||t).enabled){if(n)n.enabled=!0,s.agent.permissions.push(n.id);else for(var e=0;e<t.children.length;e++)t.children[e].enabled=!0,s.agent.permissions.push(t.children[e].id);t.enabled=!0,s.agent.permissions.push(t.id)}else if(n)n.enabled=!1,_.remove(s.agent.permissions,function(e){return n.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(s.agent.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(s.agent.permissions,function(e){return t.id===e});for(var a=0;a<t.children.length;a++)t.children[a].enabled=!1,_.remove(s.agent.permissions,function(e){return t.children[a].id===e})}return i.user.update({id:s.agent.id,permissions:_.uniq(s.agent.permissions)}).$promise.then(function(){o.success({title:"agent updated!",msg:s.agent.name?s.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})},s.addPermissions=function(e,t){a.show({controller:"UserpermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/permissionadd/permissionadd.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:s.user,users:[],section:e}})},s.allowPermissions=function(e){if(e&&-1!==[401,501,502,601,602,701,702,801,802,901,902,1103,1501].indexOf(e.id))return!0;return!1}}e.$inject=["$document","$mdDialog","api","msNavigationService","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l){var d=this;function c(){a.user[d.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:d.agent.id,fields:d.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy,type",channel:i,nolimit:!0}).$promise.then(function(e){return d.isVoiceRealtime()?d.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:""}}):[]:d.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],l.hasRole("admin")?a[d.apiname].get({fields:"id,name,strategy,type",nolimit:!0,type:s}).$promise:a.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,strategy,type",nolimit:!0,type:s,channel:i}).$promise}).then(function(e){d.items=e.rows?e.rows:[],d.selectedItems=_.intersectionBy(d.selectedItems,d.items,"id"),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.items,d.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}d.agent=t,d.penalty=0,d.apiname=i+"Queue",d.title=r.instant("STAFF.QUEUEADD_AGENT_"+i.toUpperCase()+"_"+s.toUpperCase()),d.items=[],d.selectedItems=[],d.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"name",line2:"type",line3:"agent"===d.agent.role?"penalty":"",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,t){a.user[t?"removeQueues":"addQueues"]({id:d.agent.id,ids:_.map(e,"id"),channel:i,penalty:d.penalty||0,realtime:o}).$promise.then(function(){c(),n.success({title:"Queue properly "+(t?"removed":"added"),msg:"Queue has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d.closeDialog=function(){e.hide()},d.isVoiceRealtime=function(){return o&&"voice"===i},d.isVoiceChannel=function(){return"voice"===i},c()}e.$inject=["$mdDialog","toasty","api","agent","channel","realtime","direction","$translate","Auth"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.agent=t,o.penalty=0,o.items=[],o.selectedItems=[],o.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("STAFF.ALL_TEAMS"),labelSelected:i.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,t){a.user[t?"removeTeams":"addTeams"]({id:o.agent.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:agent.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.user.getTeams({id:o.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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","agent","$translate"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,t,i,o,n,a,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=n,c.setting=a,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.agent=d||e.params.agent||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=function(e,t,n,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(o.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[],channel:t,realtime:!1,direction:a||"inbound"}})},c.teamadddialog=function(e,t){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[]}})},c.changepassworddialog=function(e,t){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,setting:a,agents:c.agents?c.agents.rows:[]}})},c.alert=r.info,c.gotoAgents=function(){e.go("app.staff.agents")},c.saveAgent=function(){c.agent=_.omit(c.agent,"userpic"),s.user.update({id:c.agent.id},c.agent).$promise.then(function(){r.success({title:"Agent updated!",msg:c.agent.name?c.agent.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","agent"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_TEAM",u.team=angular.copy(r),u.teams=s,u.newTeam=!1,u.team||(u.team={},u.title="STAFF.NEW_TEAM",u.newTeam=!0),u.addNewTeam=function(){u.errors=[],l.team.save(u.team).$promise.then(function(e){u.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:u.team.name?u.team.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.team.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.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTeam=function(){u.errors=[],l.team.update({id:u.team.id},u.team).$promise.then(function(e){var t=_.find(u.teams,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Team properly saved!",msg:u.team.name?u.team.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var t=0;t<e.data.errors.length;t++)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.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTeam=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.team.delete({id:u.team.id}).$promise.then(function(){_.remove(u.teams,{id:u.team.id}),o.success({title:"Team properly deleted!",msg:(u.team.name||"team")+" has been deleted!"}),p(u.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var t=0;t<e.data.errors.length;t++)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.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","teams","team","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.team[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.team=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("STAFF.ALL_AGENTS"),labelSelected:s.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,t){a.team[t?"removeAgents":"addAgents"]({id:l.team.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:team.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","team","teams","realtime","$translate","Auth"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.teams=r||{count:0,rows:[]},v.table="teams",v.listOrder="",v.listOrderAsc=null,v.selectedTeams=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.teams.rows,license:v.license,setting:null}})},v.agentadddialog=function(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:v.teams?v.teams.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTeams=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.team.get(v.query,f).$promise},v.createOrEditTeam=function(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:v.teams.rows,license:v.license,setting:v.setting}})},v.deleteTeam=A,v.exportSelectedTeams=function(){var e=angular.copy(v.selectedTeams);return v.selectedTeams=[],e},v.deleteSelectedTeams=function(e){var t=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+v.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTeams.forEach(function(e){A(e)}),v.selectedTeams=[]})},v.deselectTeams=function(){v.selectedTeams=[]},v.selectAllTeams=function(){v.selectedTeams=v.teams.rows};var h=!0,b=1;function f(e){v.teams=e||{count:0,rows:[]}}function A(e){l.team.delete({id:e.id}).$promise.then(function(){_.remove(v.teams.rows,{id:e.id}),v.teams.count-=1,v.teams.rows.length||v.getTeams(),c.success({title:"Team deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","teams","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_TELEPHONE",u.telephone=angular.copy(r),u.telephones=s,u.newTelephone=!1,u.telephone||(u.telephone={role:"telephone",autointernal:!0,context:"from-sip"},u.title="STAFF.NEW_TELEPHONE",u.newTelephone=!0),u.addNewTelephone=function(){u.errors=[],l.user.save(u.telephone).$promise.then(function(e){u.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:u.telephone.name?u.telephone.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.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.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTelephone=function(){u.errors=[],l.user.update({id:u.telephone.id},u.telephone).$promise.then(function(e){var t=_.find(u.telephones,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Telephone properly saved!",msg:u.telephone.name?u.telephone.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)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.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTelephone=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.user.delete({id:u.telephone.id}).$promise.then(function(){_.remove(u.telephones,{id:u.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(u.telephone.name||"telephone")+" has been deleted!"}),p(u.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var t=0;t<e.data.errors.length;t++)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.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","telephones","telephone","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.currentUser=o.getCurrentUser(),s.errors=[],s.setting=i,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.telephone=a,s.password="",s.oldPassword="",s.savePassword=function(){s.errors=[];var e={id:s.telephone.id,newPassword:s.password};s.currentUser.id==s.telephone.id&&(e.oldPassword=s.oldPassword);n.user.changePassword(e).$promise.then(function(){t.success({title:"Telephone password properly updated!"}),r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.telephone=d||e.params.telephone||{},c.selectedTab=e.params.tab||0,c.changepassworddialog=function(e,t){n.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:c.telephones?c.telephones.rows:[]}})},c.alert=r.info,c.gotoTelephones=function(){e.go("app.staff.telephones")},c.saveTelephone=function(){s.user.update({id:c.telephone.id},c.telephone).$promise.then(function(){r.success({title:"Telephone updated!",msg:c.telephone.name?c.telephone.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","telephone"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.telephones=r||{count:0,rows:[]},v.table="telephones",v.listOrder="",v.listOrderAsc=null,v.selectedTelephones=[],v.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},v.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"),"")}),v.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"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.staff.telephones.edit",{id:e.id,telephone:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTelephones=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.user.get(v.query,f).$promise},v.createOrEditTelephone=function(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:v.telephones.rows,license:v.license,setting:v.setting}})},v.deleteTelephone=A,v.exportSelectedTelephones=function(){var e=angular.copy(v.selectedTelephones);return v.selectedTelephones=[],e},v.deleteSelectedTelephones=function(e){var t=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+v.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTelephones.forEach(function(e){A(e)}),v.selectedTelephones=[]})},v.deselectTelephones=function(){v.selectedTelephones=[]},v.selectAllTelephones=function(){v.selectedTelephones=v.telephones.rows};var h=!0,b=1;function f(e){v.telephones=e||{count:0,rows:[]}}function A(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(v.telephones.rows,{id:e.id}),v.telephones.count-=1,v.telephones.rows.length||v.getTelephones(),c.success({title:"Telephone deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","telephones","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_USER",u.user=angular.copy(r),u.users=s,u.newUser=!1,u.user||(u.user={role:"user",autointernal:!0,context:"from-sip",crudPermissions:"0"},u.title="STAFF.NEW_USER",u.newUser=!0),u.addNewUser=function(){u.errors=[],l.user.save(u.user).$promise.then(function(e){u.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:u.user.name?u.user.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.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.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveUser=function(){u.errors=[],l.user.update({id:u.user.id},u.user).$promise.then(function(e){var t=_.find(u.users,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"User properly saved!",msg:u.user.name?u.user.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)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.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteUser=function(e){if(d.getCurrentUser().id===u.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});u.errors=[];var t=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.user.delete({id:u.user.id}).$promise.then(function(){_.remove(u.users,{id:u.user.id}),o.success({title:"User properly deleted!",msg:(u.user.name||"user")+" has been deleted!"}),p(u.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var t=0;t<e.data.errors.length;t++)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.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","users","user","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.user=angular.copy(e),i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.currentUser=o.getCurrentUser(),s.errors=[],s.setting=i,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.user=a,s.password="",s.oldPassword="",s.savePassword=function(){s.errors=[];var e={id:s.user.id,newPassword:s.password};s.currentUser.id==s.user.id&&(e.oldPassword=s.oldPassword);n.user.changePassword(e).$promise.then(function(){t.success({title:"User password properly updated!"}),r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,i,o,t,n,a,s,r){var l=this;function d(){return o.user[l.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:l.user.id,fields:l.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy,type",nolimit:!0,channel:"bull"===r.channel?"voice":r.channel,type:l.direction}).$promise.then(function(e){return l.isVoiceRealtime()?l.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:""}}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,s.hasRole("admin")?o[r.route].get({fields:"id,name,strategy,type",nolimit:!0,type:l.direction}).$promise:o.user.getQueues({id:s.getCurrentUser().id,fields:"id,name,strategy,type",nolimit:!0,type:l.direction,channel:"bull"===r.channel?"voice":r.channel}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+r.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function c(){var e="get"+_.upperFirst([r.route])+"s";return o.user[e]({id:l.user.id,nolimit:!0}).$promise.then(function(e){return l.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,o[r.route].get({nolimit:!0}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+r.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}l.user=t,l.penalty=0,l.section=r,l.direction=void 0!==r.channel&&"bull"===r.channel?"outbound":"inbound",l.realtime=!1,l.title=a.instant("STAFF.USERADD_"+r.title.toUpperCase()),l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return l.realtime&&"voice"===l.section.channel},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:a.instant("STAFF.ALL_"+r.title.toUpperCase()),labelSelected:a.instant("STAFF.SELECTED_"+r.title.toUpperCase()),transferCallback:function(e,t){if(void 0!==r.channel&&_.includes(r.route,"Queue")){var n=t?"removeQueues":"addQueues";o.user[n]({id:l.user.id,ids:_.map(e,"id"),channel:"bull"===r.channel?"voice":r.channel,penalty:l.penalty||0,realtime:l.realtime}).$promise.then(function(){i.success({title:"Queue properly "+(t?"removed":"added"),msg:"Queue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}else{var a=_.upperFirst([r.route])+"s";n=t?"remove"+a:"add"+a;o.user[n]({id:l.user.id,ids:_.map(e,"id")}).$promise.then(function(){i.success({title:l.section.title+" properly "+(t?"removed":"added"),msg:l.section.title+" has been "+(t?"removed":"added")+"!"}),t||c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:user.ADD"+r.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}}},void 0!==r.channel&&_.includes(r.route,"Queue")?d():c()}e.$inject=["$mdDialog","toasty","api","user","users","$translate","Auth","section"],angular.module("app.staff").controller("UserpermissionaddController",e)}(),function(){"use strict";function e(n,a,i,e,t,o){var s=this;s.user={},s.navigation=e.getNavigation(),s.init=function(e){s.user=e},s.onChange=function(t,n){if((n||t).enabled){if(n)n.enabled=!0,s.user.permissions.push(n.id);else for(var e=0;e<t.children.length;e++)t.children[e].enabled=!0,s.user.permissions.push(t.children[e].id);t.enabled=!0,s.user.permissions.push(t.id)}else if(n)n.enabled=!1,_.remove(s.user.permissions,function(e){return n.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(s.user.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(s.user.permissions,function(e){return t.id===e});for(var a=0;a<t.children.length;a++)t.children[a].enabled=!1,_.remove(s.user.permissions,function(e){return t.children[a].id===e})}return i.user.update({id:s.user.id,permissions:_.uniq(s.user.permissions)}).$promise.then(function(){o.success({title:"user updated!",msg:s.user.name?s.user.name+" has been updated!":""})}).catch(function(e){console.error(e)})},s.addPermissions=function(e,t){a.show({controller:"UserpermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/permissionadd/permissionadd.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:s.user,users:[],section:e}})},s.allowPermissions=function(e){if(e&&-1!==[401,501,502,601,602,701,702,801,802,901,902,1103,1501].indexOf(e.id))return!0;return!1}}e.$inject=["$document","$mdDialog","api","msNavigationService","msNavigationAgentService","toasty"],angular.module("app.staff").controller("UserPermissionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.user=d||e.params.user||{},c.selectedTab=e.params.tab||0,c.permissionadddialog=function(e,t){n.show({controller:"UserpermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/permissionadd/permissionadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[]}})},c.changepassworddialog=function(e,t){n.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:e,setting:o,users:c.users?c.users.rows:[]}})},c.alert=r.info,c.gotoUsers=function(){e.go("app.staff.users")},c.saveUser=function(){c.user=_.omit(c.user,"userpic"),s.user.update({id:c.user.id},c.user).$promise.then(function(){r.success({title:"User updated!",msg:c.user.name?c.user.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","user"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.users=r||{count:0,rows:[]},v.table="users",v.listOrder="",v.listOrderAsc=null,v.selectedUsers=[],v.query={fields:"createdAt,updatedAt,role,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,permissions,crudPermissions,passwordResetAt",role:"admin,user",sort:"-updatedAt",limit:10,page:1},v.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.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"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraycrudPermissions=_.keyBy([{option:"readAndEditAndDelete",value:"0"},{option:"readAndEdit",value:"1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.staff.users.edit",{id:e.id,user:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getUsers=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.user.get(v.query,f).$promise},v.createOrEditUser=function(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:v.users.rows,license:v.license,setting:v.setting}})},v.deleteUser=A,v.exportSelectedUsers=function(){var e=angular.copy(v.selectedUsers);return v.selectedUsers=[],e},v.deleteSelectedUsers=function(e){var t=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+v.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedUsers.forEach(function(e){A(e)}),v.selectedUsers=[]})},v.deselectUsers=function(){v.selectedUsers=[]},v.selectAllUsers=function(){v.selectedUsers=v.users.rows};var h=!0,b=1;function f(e){v.users=e||{count:0,rows:[]}}function A(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(v.users.rows,{id:e.id}),v.users.count-=1,v.users.rows.length||v.getUsers(),c.success({title:"User deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","users","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.cannedAnswers=r||{count:0,rows:[]},v.table="cannedAnswers",v.listOrder="",v.listOrderAsc=null,v.selectedCannedAnswers=[],v.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},v.editdialog=function(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:v.cannedAnswers.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getCannedAnswers=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cannedAnswer.get(v.query,f).$promise},v.createOrEditCannedAnswer=function(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:v.cannedAnswers.rows,license:v.license,setting:v.setting}})},v.deleteCannedAnswer=A,v.exportSelectedCannedAnswers=function(){var e=angular.copy(v.selectedCannedAnswers);return v.selectedCannedAnswers=[],e},v.deleteSelectedCannedAnswers=function(e){var t=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+v.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedCannedAnswers.forEach(function(e){A(e)}),v.selectedCannedAnswers=[]})},v.deselectCannedAnswers=function(){v.selectedCannedAnswers=[]},v.selectAllCannedAnswers=function(){v.selectedCannedAnswers=v.cannedAnswers.rows};var h=!0,b=1;function f(e){v.cannedAnswers=e||{count:0,rows:[]}}function A(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(v.cannedAnswers.rows,{id:e.id}),v.cannedAnswers.count-=1,v.cannedAnswers.rows.length||v.getCannedAnswers(),c.success({title:"CannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","cannedAnswers","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_CANNEDANSWER",u.cannedAnswer=angular.copy(r),u.cannedAnswers=s,u.newCannedAnswer=!1,u.cannedAnswer||(u.cannedAnswer={},u.title="TOOLS.NEW_CANNEDANSWER",u.newCannedAnswer=!0),u.addNewCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.cannedAnswer).$promise.then(function(e){u.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:u.cannedAnswer.name?u.cannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.cannedAnswer.id},u.cannedAnswer).$promise.then(function(e){var t=_.find(u.cannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"CannedAnswer properly saved!",msg:u.cannedAnswer.name?u.cannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.cannedAnswer.id}).$promise.then(function(){_.remove(u.cannedAnswers,{id:u.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(u.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),p(u.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_CUSTOMDASHBOARD",u.customDashboard=angular.copy(r),u.customDashboards=s,u.newCustomDashboard=!1,u.customDashboard||(u.customDashboard={},u.title="TOOLS.NEW_CUSTOMDASHBOARD",u.newCustomDashboard=!0),u.addNewCustomDashboard=function(){u.errors=[],l.dashboard.save(u.customDashboard).$promise.then(function(e){u.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:u.customDashboard.name?u.customDashboard.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.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.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCustomDashboard=function(){u.errors=[],l.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(e){var t=_.find(u.customDashboards,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"CustomDashboard properly saved!",msg:u.customDashboard.name?u.customDashboard.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var t=0;t<e.data.errors.length;t++)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.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCustomDashboard=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.dashboard.delete({id:u.customDashboard.id}).$promise.then(function(){_.remove(u.customDashboards,{id:u.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(u.customDashboard.name||"customDashboard")+" has been deleted!"}),p(u.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var t=0;t<e.data.errors.length;t++)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.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","customDashboards","customDashboard","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.customDashboards=r||{count:0,rows:[]},v.table="customDashboards",v.listOrder="",v.listOrderAsc=null,v.selectedCustomDashboards=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e})},v.useradddialog=function(e,t){i.show({controller:"CustomDashboarduseraddController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/useradd/useradd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:v.customDashboards?v.customDashboards.rows:[]}})},v.clonedialog=function(e,t){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:v.customDashboards?v.customDashboards.rows:[]}})},v.gotodashboardgoto=function(e,t){n.go("app.dashboards.custom",{id:e.id})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getCustomDashboards=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.dashboard.get(v.query,f).$promise},v.createOrEditCustomDashboard=function(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:v.customDashboards.rows,license:v.license,setting:v.setting}})},v.deleteCustomDashboard=A,v.exportSelectedCustomDashboards=function(){var e=angular.copy(v.selectedCustomDashboards);return v.selectedCustomDashboards=[],e},v.deleteSelectedCustomDashboards=function(e){var t=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+v.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedCustomDashboards.forEach(function(e){A(e)}),v.selectedCustomDashboards=[]})},v.deselectCustomDashboards=function(){v.selectedCustomDashboards=[]},v.selectAllCustomDashboards=function(){v.selectedCustomDashboards=v.customDashboards.rows};var h=!0,b=1;function f(e){v.customDashboards=e||{count:0,rows:[]}}function A(e){l.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(v.customDashboards.rows,{id:e.id}),v.customDashboards.count-=1,v.customDashboards.rows.length||v.getCustomDashboards(),c.success({title:"CustomDashboard deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","customDashboards","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=o,r.title=s.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),n.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(n,a,e,i,o){var s=this;function t(e,t,n){return o.dashboardItem.update(n).$promise.catch(function(e){console.error(e)})}s.customDashboard={},s.voiceQueues=o.rpc.getVoiceQueues({fields:"id,name"}),s.init=function(e){return s.customDashboard=e,s.customDashboard.draggable={enabled:!0,handle:".draggable",stop:t},s.customDashboard.resizable={enabled:!0,handle:".resizable",stop:t},s.customDashboard.widgets=[],o.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var t=0;t<e.rows.length;t+=1)e.rows[t].voiceQueues=s.voiceQueues,e.rows[t].voiceQueuesSelected=_.map(s.voiceQueues.rows,"id"),e.rows[t].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[t].type+"/ms-widget-engine."+e.rows[t].type+".html",s.customDashboard.widgets.push(e.rows[t])}).catch(function(e){console.error(e)})},s.createOrEditWidget=function(e){if(e&&e.attrs)for(var t=0;t<e.attrs.length;t+=1)"attrReport"===e.attrs[t].name&&(e.reportType=e.attrs[t].type),e[e.attrs[t].name]=e.attrs[t].value;n.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:s.customDashboard.widgets,license:null,setting:null}}).then(function(e){if(e)for(var t=0;t<s.customDashboard.widgets.length;t+=1)s.customDashboard.widgets[t].id===e.id&&(s.customDashboard.widgets[t].attrs=e.attrs,s.customDashboard.widgets[t].voiceQueues=s.voiceQueues,s.customDashboard.widgets[t].voiceQueuesSelected=_.map(s.voiceQueues.rows,"id"),s.customDashboard.widgets[t].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+s.customDashboard.widgets[t].type+"/ms-widget-engine."+s.customDashboard.widgets[t].type+".html")})},s.deleteWidget=function(t){var e=n.confirm().title("Would you like to delete "+t.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");n.show(e).then(function(){return o.dashboardItem.delete({id:t.id}).$promise.then(function(e){_.remove(s.customDashboard.widgets,{id:t.id}),i.success({title:"Widget deleted!",msg:t.name?t.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];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:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(){var e={};switch(u.reportType){case"default":e=u.treeReports[0]?angular.fromJson(u.treeReports[0].tree):[];break;case"custom":e=u.treeReports[1]?angular.fromJson(u.treeReports[1].tree):[]}return u.reportFolders=e[0].children,u.rootHasChildren=0<u.reportFolders.length,e}function g(){var e,t=u.rootHasChildren&&u.dashboarditem.folder?u.folderHasChildren?u.dashboarditem.subfolder:u.dashboarditem.folder:u.treeStructure[0];switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({fields:"id,name,parent",sort:"name",parent:u.subfolderHasChildren?void 0:t.id,filter:u.subfolderHasChildren?t.id:void 0}).$promise.then(function(e){u.reports=e.rows||[],u.reports=0<u.reports.length?_.map(u.reports,function(e){var t,n;return e.path=(t=e.parent,n=u.treeStructure[0].text,n=function e(t,n,a){if(!a||_.isEmpty(a.children))return t;var a=_.find(a.children,function(e){return _.includes(n,e.id)?e:void 0});return t+=a?"/"+a.text:"",e(t,n,a)}(n,t,u.treeStructure[0])).replace(" ","_"),e}):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){switch(e){case"subfolder":u.dashboarditem.subfolder=null,u.reports=[];break;case"report":u.reports=[];break;default:u.dashboarditem.folder=null,u.dashboarditem.subfolder=null,u.rootHasChildren=!1,u.folderHasChildren=!1,u.reports=[]}}function h(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_DASHBOARDITEM",u.dashboarditem=angular.copy(r),u.dashboard=s,u.newDashboardItem=!1,u.dashboarditem||(u.dashboarditem={type:"counter",attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,reportType:"custom",attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},u.title="TOOLS.NEW_DASHBOARDITEM",u.newDashboardItem=!0),u.addNewDashboardItem=function(){u.errors=[],l.dashboard.addItem({id:t.params.id},u.dashboarditem).$promise.then(function(e){u.dashboard.unshift(e.toJSON()),o.success({title:"DashboardItem properly created",msg:u.dashboarditem.name?u.dashboarditem.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.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.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDashboardItem=function(){u.errors=[],l.dashboardItem.update({id:u.dashboarditem.id},u.dashboarditem).$promise.then(function(e){var t=_.find(u.dashboard,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"DashboardItem properly saved!",msg:u.dashboarditem.name?u.dashboarditem.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var t=0;t<e.data.errors.length;t++)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.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDashboardItem=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.dashboardItem.delete({id:u.dashboarditem.id}).$promise.then(function(){_.remove(u.dashboard,{id:u.dashboarditem.id}),o.success({title:"DashboardItem properly deleted!",msg:(u.dashboarditem.name||"dashboarditem")+" has been deleted!"}),h(u.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var t=0;t<e.data.errors.length;t++)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.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.reportType=u.dashboarditem.reportType,u.onReportTypeSelection=function(){u.reportType=u.dashboarditem.reportType,v(),u.treeStructure=p(),g()},u.onReportFolderSelection=function(){v("subfolder"),u.reportSubfolders=_.isEmpty(u.dashboarditem.folder.children)?[]:u.dashboarditem.folder.children,u.folderHasChildren=0<u.reportSubfolders.length,u.folderHasChildren||g()},u.onReportSubfolderSelection=function(){v("report"),u.subfolderHasChildren=!_.isEmpty(u.dashboarditem.subfolder.children),g()},u.closeDialog=h,l.analyticTreeReport.get({}).$promise.then(function(e){u.treeReports=e.rows||[],u.treeStructure=p(),u.newDashboardItem||function(){var e,t=u.dashboarditem.attrReport;switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({id:t,fields:"id,name,parent"}).$promise.then(function(e){if(e){var t=u.treeStructure[0].id===e.parent?[]:function e(t,n,a){var i;var o=_.find(n.children,function(e){return _.includes(a,e.id)&&(i=e,t.push(e)),e.id===a});o||e(t,i,a);return t}([],u.treeStructure[0],e.parent);_.isEmpty(t)?u.rootHasChildren=!1:(u.dashboarditem.folder=t[0],u.reportSubfolders=u.dashboarditem.folder&&!_.isEmpty(u.dashboarditem.folder.children)?u.dashboarditem.folder.children:void 0,u.dashboarditem.subfolder=1<t.length?t[1]:void 0,u.folderHasChildren=!!u.reportSubfolders,u.subfolderHasChildren=!(!u.dashboarditem.subfolder||_.isEmpty(u.dashboarditem.subfolder.children))),g()}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtreeReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceQueue.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.voiceQueues=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","dashboard","dashboarditem","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(e,i,o,s,t,n,a){var r=this;r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:n.instant("TOOLS.ALL_USERS"),labelSelected:n.instant("TOOLS.SELECTED_USERS"),transferCallback:function(e,t){for(var n=0,a=0;n<e.length;n+=1)a=99999+s.id,e[n].permissions=t?_.without(e[n].permissions,a):_.concat(e[n].permissions,a),o.user.update(e[n]).$promise.then(function(){i.success({title:"User properly "+(t?"removed":"added"),msg:"User has been "+(t?"removed":"added")+"!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:dashboard.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},function(){if(s&&s.id){var t=99999+s.id;o.user.get({fields:"id,fullname,name,internal,permissions",role:"user",nolimit:!0}).$promise.then(function(e){r.dualMultiselectOptions.selectedItems=_.filter(e.rows,function(e){return _.includes(e.permissions,t)}),r.dualMultiselectOptions.items=_.differenceBy(e.rows,r.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}}()}e.$inject=["$mdDialog","toasty","api","customDashboard","customDashboards","$translate","Auth"],angular.module("app.tools").controller("CustomDashboarduseraddController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.customDashboard=d||n.params.customDashboard||{},c.selectedTab=n.params.tab||0,c.useradddialog=function(e,t){a.show({controller:"CustomDashboarduseraddController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/useradd/useradd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:c.customDashboards?c.customDashboards.rows:[]}})},c.clonedialog=function(e,t){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:c.customDashboards?c.customDashboards.rows:[]}})},c.gotogoto=function(e,t){n.go("app.dashboards.custom",{id:e.id})},c.alert=r.info,c.gotoCustomDashboards=function(){n.go("app.tools.customDashboards")},c.saveCustomDashboard=function(){s.dashboard.update({id:c.customDashboard.id},c.customDashboard).$promise.then(function(){r.success({title:"CustomDashboard updated!",msg:c.customDashboard.name?c.customDashboard.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","customDashboard"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_DISPOSITION",u.disposition=angular.copy(r),u.dispositions=s,u.newDisposition=!1,u.disposition||(u.disposition={},u.title="TOOLS.NEW_DISPOSITION",u.newDisposition=!0),u.addNewDisposition=function(){u.errors=[],l.disposition.save(u.disposition).$promise.then(function(e){u.dispositions.unshift(e.toJSON()),o.success({title:"Disposition properly created",msg:u.disposition.name?u.disposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDisposition=function(){u.errors=[],l.disposition.update({id:u.disposition.id},u.disposition).$promise.then(function(e){var t=_.find(u.dispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Disposition properly saved!",msg:u.disposition.name?u.disposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The disposition will be deleted.").ariaLabel("Delete Disposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.disposition.id}).$promise.then(function(){_.remove(u.dispositions,{id:u.disposition.id}),o.success({title:"Disposition properly deleted!",msg:(u.disposition.name||"disposition")+" has been deleted!"}),p(u.disposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","dispositions","disposition","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.dispositions=r||{count:0,rows:[]},v.table="dispositions",v.listOrder="",v.listOrderAsc=null,v.selectedDispositions=[],v.query={fields:"createdAt,updatedAt,id,name",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",limit:10,page:1},v.editdialog=function(e,t){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{disposition:e,dispositions:v.dispositions.rows,license:v.license,setting:null}})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the disposition?").htmlContent("<b>"+(e.name||"disposition")+"</b> will be deleted.").ariaLabel("delete disposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getDispositions=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.disposition.get(v.query,f).$promise},v.createOrEditDisposition=function(e,t){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:t,dispositions:v.dispositions.rows,license:v.license,setting:v.setting}})},v.deleteDisposition=A,v.exportSelectedDispositions=function(){var e=angular.copy(v.selectedDispositions);return v.selectedDispositions=[],e},v.deleteSelectedDispositions=function(e){var t=i.confirm().title("Are you sure want to delete the selected dispositions?").htmlContent("<b>"+v.selectedDispositions.length+" selected</b> will be deleted.").ariaLabel("delete Dispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedDispositions.forEach(function(e){A(e)}),v.selectedDispositions=[]})},v.deselectDispositions=function(){v.selectedDispositions=[]},v.selectAllDispositions=function(){v.selectedDispositions=v.dispositions.rows};var h=!0,b=1;function f(e){v.dispositions=e||{count:0,rows:[]}}function A(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(v.dispositions.rows,{id:e.id}),v.dispositions.count-=1,v.dispositions.rows.length||v.getDispositions(),c.success({title:"Disposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getDispositions())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","dispositions","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(r),u.intervals=s,u.newInterval=!1,u.interval||(u.interval={},u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0),u.addNewInterval=function(){u.errors=[],l.interval.save(u.interval).$promise.then(function(e){u.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.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.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInterval=function(){u.errors=[],l.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Interval properly saved!",msg:u.interval.name?u.interval.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)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.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInterval=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.interval.delete({id:u.interval.id}).$promise.then(function(){_.remove(u.intervals,{id:u.interval.id}),o.success({title:"Interval properly deleted!",msg:(u.interval.name||"interval")+" has been deleted!"}),p(u.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var t=0;t<e.data.errors.length;t++)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.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","intervals","interval","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.interval={},c.intervalIntervals={count:0,rows:[]},c.selectedIntervalIntervals=[],c.sortableTable={animation:100,onSort:function(e){l.interval.addIntervals({id:c.interval.id},e.models).$promise.then(function(e){c.intervalIntervals.rows=e}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},c.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},c.init=function(e){c.interval=e,c.query.id=c.interval.id,c.getIntervalIntervals()},c.deleteConfirm=function(e,t){var n=o.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");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIntervalIntervals=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.interval.getIntervals(c.query,p).$promise},c.createOrEditIntervalInterval=function(e,t){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:c.interval,interval:t,intervals:c.intervalIntervals.rows,license:null,setting:null}})},c.exportSelectedIntervalIntervals=function(){var e=angular.copy(c.selectedIntervalIntervals);return c.selectedIntervalIntervals=[],e},c.deleteIntervalInterval=g,c.deleteSelectedIntervalIntervals=function(e){var t=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+c.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIntervalIntervals.forEach(function(e){g(e)}),c.selectedIntervalIntervals=[]})};var m=!0,u=1;function p(e){c.intervalIntervals=e||{count:0,rows:[]}}function g(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(c.intervalIntervals.rows,{id:e.id}),c.intervalIntervals.count-=1,c.intervalIntervals.rows.length||c.getIntervalIntervals(),r.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIntervalIntervals())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(r),u.intervals=s,u.newInterval=!1,u.interval||(u.interval={},u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0),u.addNewInterval=function(){u.errors=[],l.interval.save(u.interval).$promise.then(function(e){u.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.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.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInterval=function(){u.errors=[],l.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Interval properly saved!",msg:u.interval.name?u.interval.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)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.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInterval=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.interval.delete({id:u.interval.id}).$promise.then(function(){_.remove(u.intervals,{id:u.interval.id}),o.success({title:"Interval properly deleted!",msg:(u.interval.name||"interval")+" has been deleted!"}),p(u.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var t=0;t<e.data.errors.length;t++)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.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","intervals","interval","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.interval=d||e.params.interval||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoIntervals=function(){e.go("app.tools.intervals")},c.saveInterval=function(){s.interval.update({id:c.interval.id},c.interval).$promise.then(function(){r.success({title:"Interval updated!",msg:c.interval.name?c.interval.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","interval"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.intervals=r||{count:0,rows:[]},v.table="intervals",v.listOrder="",v.listOrderAsc=null,v.selectedIntervals=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},v.editstate=function(e,t){n.go("app.tools.intervals.edit",{id:e.id,interval:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getIntervals=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.interval.get(v.query,f).$promise},v.createOrEditInterval=function(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:v.intervals.rows,license:v.license,setting:v.setting}})},v.deleteInterval=A,v.exportSelectedIntervals=function(){var e=angular.copy(v.selectedIntervals);return v.selectedIntervals=[],e},v.deleteSelectedIntervals=function(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+v.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIntervals.forEach(function(e){A(e)}),v.selectedIntervals=[]})},v.deselectIntervals=function(){v.selectedIntervals=[]},v.selectAllIntervals=function(){v.selectedIntervals=v.intervals.rows};var h=!0,b=1;function f(e){v.intervals=e||{count:0,rows:[]}}function A(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(v.intervals.rows,{id:e.id}),v.intervals.count-=1,v.intervals.rows.length||v.getIntervals(),c.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","intervals","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_PAUSE",u.pause=angular.copy(r),u.pauses=s,u.newPause=!1,u.pause||(u.pause={},u.title="TOOLS.NEW_PAUSE",u.newPause=!0),u.addNewPause=function(){u.errors=[],l.pause.save(u.pause).$promise.then(function(e){u.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:u.pause.name?u.pause.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.pause.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.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savePause=function(){u.errors=[],l.pause.update({id:u.pause.id},u.pause).$promise.then(function(e){var t=_.find(u.pauses,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Pause properly saved!",msg:u.pause.name?u.pause.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var t=0;t<e.data.errors.length;t++)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.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletePause=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.pause.delete({id:u.pause.id}).$promise.then(function(){_.remove(u.pauses,{id:u.pause.id}),o.success({title:"Pause properly deleted!",msg:(u.pause.name||"pause")+" has been deleted!"}),p(u.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var t=0;t<e.data.errors.length;t++)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.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","pauses","pause","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.pauses=r||{count:0,rows:[]},v.table="pauses",v.listOrder="",v.listOrderAsc=null,v.selectedPauses=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.pauses.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getPauses=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.pause.get(v.query,f).$promise},v.createOrEditPause=function(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:v.pauses.rows,license:v.license,setting:v.setting}})},v.deletePause=A,v.exportSelectedPauses=function(){var e=angular.copy(v.selectedPauses);return v.selectedPauses=[],e},v.deleteSelectedPauses=function(e){var t=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+v.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedPauses.forEach(function(e){A(e)}),v.selectedPauses=[]})},v.deselectPauses=function(){v.selectedPauses=[]},v.selectAllPauses=function(){v.selectedPauses=v.pauses.rows};var h=!0,b=1;function f(e){v.pauses=e||{count:0,rows:[]}}function A(e){l.pause.delete({id:e.id}).$promise.then(function(){_.remove(v.pauses.rows,{id:e.id}),v.pauses.count-=1,v.pauses.rows.length||v.getPauses(),c.success({title:"Pause deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","pauses","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(){var e={};switch(u.reportType){case"default":e=u.treeReports[0]?angular.fromJson(u.treeReports[0].tree):[];break;case"custom":e=u.treeReports[1]?angular.fromJson(u.treeReports[1].tree):[]}return u.reportFolders=e[0].children,u.rootHasChildren=0<u.reportFolders.length,e}function g(){var e,t=u.rootHasChildren&&u.schedule.folder?u.folderHasChildren?u.schedule.subfolder:u.schedule.folder:u.treeStructure[0];switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({fields:"id,name,parent",sort:"name",parent:u.subfolderHasChildren?void 0:t.id,filter:u.subfolderHasChildren?t.id:void 0}).$promise.then(function(e){u.reports=e.rows||[],u.reports=0<u.reports.length?_.map(u.reports,function(e){var t,n;return e.path=(t=e.parent,n=u.treeStructure[0].text,n=function e(t,n,a){if(!a||_.isEmpty(a.children))return t;var a=_.find(a.children,function(e){return _.includes(n,e.id)?e:void 0});return t+=a?"/"+a.text:"",e(t,n,a)}(n,t,u.treeStructure[0])).replace(" ","_"),e}):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){switch(e){case"subfolder":u.schedule.subfolder=null,u.schedule.DefaultReportId=null,u.schedule.CustomReportId=null,u.reports=[];break;case"report":u.schedule.DefaultReportId=null,u.schedule.CustomReportId=null,u.reports=[];break;default:u.schedule.folder=null,u.schedule.subfolder=null,u.schedule.DefaultReportId=null,u.schedule.CustomReportId=null,u.rootHasChildren=!1,u.folderHasChildren=!1,u.reports=[]}}function h(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_SCHEDULE",u.schedule=angular.copy(r),u.schedules=s,u.newSchedule=!1,u.schedule||(u.schedule={type:"custom",output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},u.title="TOOLS.NEW_SCHEDULE",u.newSchedule=!0),u.addNewSchedule=function(){u.errors=[],l.schedule.save(u.schedule).$promise.then(function(e){u.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:u.schedule.name?u.schedule.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.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.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSchedule=function(){u.errors=[],l.schedule.update({id:u.schedule.id},u.schedule).$promise.then(function(e){var t=_.find(u.schedules,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Schedule properly saved!",msg:u.schedule.name?u.schedule.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var t=0;t<e.data.errors.length;t++)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.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSchedule=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.schedule.delete({id:u.schedule.id}).$promise.then(function(){_.remove(u.schedules,{id:u.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(u.schedule.name||"schedule")+" has been deleted!"}),h(u.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var t=0;t<e.data.errors.length;t++)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.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.reportType=u.schedule.type,u.onReportTypeSelection=function(){u.reportType=u.schedule.type,v(),u.treeStructure=p(),g()},u.onReportFolderSelection=function(){v("subfolder"),u.reportSubfolders=_.isEmpty(u.schedule.folder.children)?[]:u.schedule.folder.children,u.folderHasChildren=0<u.reportSubfolders.length,u.folderHasChildren||g()},u.onReportSubfolderSelection=function(){v("report"),u.subfolderHasChildren=!_.isEmpty(u.schedule.subfolder.children),g()},u.closeDialog=h,l.analyticTreeReport.get({}).$promise.then(function(e){u.treeReports=e.rows||[],u.treeStructure=p(),u.newSchedule||function(){var e,t="default"===u.reportType?u.schedule.DefaultReportId:u.schedule.CustomReportId;switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({id:t,fields:"id,name,parent"}).$promise.then(function(e){if(e){var t=u.treeStructure[0].id===e.parent?[]:function e(t,n,a){var i;var o=_.find(n.children,function(e){return _.includes(a,e.id)&&(i=e,t.push(e)),e.id===a});o||e(t,i,a);return t}([],u.treeStructure[0],e.parent);_.isEmpty(t)?u.rootHasChildren=!1:(u.schedule.folder=t[0],u.reportSubfolders=u.schedule.folder&&!_.isEmpty(u.schedule.folder.children)?u.schedule.folder.children:void 0,u.schedule.subfolder=1<t.length?t[1]:void 0,u.folderHasChildren=!!u.reportSubfolders,u.subfolderHasChildren=!(!u.schedule.subfolder||_.isEmpty(u.schedule.subfolder.children))),g()}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtreeReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","schedules","schedule","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.schedules=r||{count:0,rows:[]},v.table="schedules",v.listOrder="",v.listOrderAsc=null,v.selectedScheduler=[],v.query={fields:"createdAt,updatedAt,id,name,type,DefaultReportId,CustomReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"Default",value:"'default'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,t){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{schedule:e,schedules:v.schedules.rows,license:v.license,setting:null}})},v.runconfirm=function(e,t){var n=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){return l.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getScheduler=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.schedule.get(v.query,f).$promise},v.createOrEditSchedule=function(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:v.schedules.rows,license:v.license,setting:v.setting}})},v.deleteSchedule=A,v.exportSelectedScheduler=function(){var e=angular.copy(v.selectedScheduler);return v.selectedScheduler=[],e},v.deleteSelectedScheduler=function(e){var t=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+v.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedScheduler.forEach(function(e){A(e)}),v.selectedScheduler=[]})},v.deselectScheduler=function(){v.selectedScheduler=[]},v.selectAllScheduler=function(){v.selectedScheduler=v.schedules.rows},l.analyticTreeReport.get({}).$promise.then(function(e){v.treeReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtreeReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.schedules=e||{count:0,rows:[]}}function A(e){l.schedule.delete({id:e.id}).$promise.then(function(){_.remove(v.schedules.rows,{id:e.id}),v.schedules.count-=1,v.schedules.rows.length||v.getScheduler(),c.success({title:"Schedule deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","schedules","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_SOUND",u.sound=angular.copy(r),u.sounds=s,u.newSound=!1,u.sound||(u.sound={},u.title="TOOLS.NEW_SOUND",u.newSound=!0),u.addNewSound=function(){u.errors=[],l.sound.save(u.sound).$promise.then(function(e){u.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:u.sound.name?u.sound.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.sound.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.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSound=function(){u.errors=[],l.sound.update({id:u.sound.id},u.sound).$promise.then(function(e){var t=_.find(u.sounds,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Sound properly saved!",msg:u.sound.name?u.sound.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var t=0;t<e.data.errors.length;t++)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.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSound=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.sound.delete({id:u.sound.id}).$promise.then(function(){_.remove(u.sounds,{id:u.sound.id}),o.success({title:"Sound properly deleted!",msg:(u.sound.name||"sound")+" has been deleted!"}),p(u.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var t=0;t<e.data.errors.length;t++)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.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","sounds","sound","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.sounds=r||{count:0,rows:[]},v.table="sounds",v.listOrder="",v.listOrderAsc=null,v.selectedSounds=[],v.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.sounds.rows,license:v.license,setting:null}})},v.downloadfile2=function(o,e){return l.sound.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.converted_format?o.save_name+"."+o.converted_format:o.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSounds=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.sound.get(v.query,f).$promise},v.createOrEditSound=function(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:v.sounds.rows,license:v.license,setting:v.setting}})},v.deleteSound=A,v.exportSelectedSounds=function(){var e=angular.copy(v.selectedSounds);return v.selectedSounds=[],e},v.deleteSelectedSounds=function(e){var t=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+v.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSounds.forEach(function(e){A(e)}),v.selectedSounds=[]})},v.deselectSounds=function(){v.selectedSounds=[]},v.selectAllSounds=function(){v.selectedSounds=v.sounds.rows},v.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:v.sounds.rows}})};var h=!0,b=1;function f(e){v.sounds=e||{count:0,rows:[]}}function A(e){l.sound.delete({id:e.id}).$promise.then(function(){_.remove(v.sounds.rows,{id:e.id}),v.sounds.count-=1,v.sounds.rows.length||v.getSounds(),c.success({title:"Sound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sounds","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:15728640,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var t=["wav","mp3","gsm"];if(!_.includes(t,e.getExtension()))return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(15728640<e.size)return n.error({title:"File too big",msg:"The max allowed size is 15MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result}}})},o.uploadError=function(e,t){o.ngFlow.flow.cancel(),n.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",n.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){t.hide()}}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,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TAG",u.tag=angular.copy(r),u.tags=s,u.newTag=!1,u.tag||(u.tag={},u.title="TOOLS.NEW_TAG",u.newTag=!0),u.addNewTag=function(){u.errors=[],l.tag.save(u.tag).$promise.then(function(e){u.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:u.tag.name?u.tag.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.tag.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.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTag=function(){u.errors=[],l.tag.update({id:u.tag.id},u.tag).$promise.then(function(e){var t=_.find(u.tags,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Tag properly saved!",msg:u.tag.name?u.tag.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var t=0;t<e.data.errors.length;t++)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.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTag=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.tag.delete({id:u.tag.id}).$promise.then(function(){_.remove(u.tags,{id:u.tag.id}),o.success({title:"Tag properly deleted!",msg:(u.tag.name||"tag")+" has been deleted!"}),p(u.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var t=0;t<e.data.errors.length;t++)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.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","tags","tag","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.tags=r||{count:0,rows:[]},v.table="tags",v.listOrder="",v.listOrderAsc=null,v.selectedTags=[],v.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.tags.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTags=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.tag.get(v.query,f).$promise},v.createOrEditTag=function(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:v.tags.rows,license:v.license,setting:v.setting}})},v.deleteTag=A,v.exportSelectedTags=function(){var e=angular.copy(v.selectedTags);return v.selectedTags=[],e},v.deleteSelectedTags=function(e){var t=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+v.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTags.forEach(function(e){A(e)}),v.selectedTags=[]})},v.deselectTags=function(){v.selectedTags=[]},v.selectAllTags=function(){v.selectedTags=v.tags.rows};var h=!0,b=1;function f(e){v.tags=e||{count:0,rows:[]}}function A(e){l.tag.delete({id:e.id}).$promise.then(function(){_.remove(v.tags.rows,{id:e.id}),v.tags.count-=1,v.tags.rows.length||v.getTags(),c.success({title:"Tag deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","tags","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TEMPLATE",u.template=angular.copy(r),u.templates=s,u.newTemplate=!1,u.template||(u.template={},u.title="TOOLS.NEW_TEMPLATE",u.newTemplate=!0),u.addNewTemplate=function(){u.errors=[],l.template.save(u.template).$promise.then(function(e){u.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:u.template.name?u.template.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.template.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.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTemplate=function(){u.errors=[],l.template.update({id:u.template.id},u.template).$promise.then(function(e){var t=_.find(u.templates,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Template properly saved!",msg:u.template.name?u.template.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var t=0;t<e.data.errors.length;t++)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.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTemplate=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.template.delete({id:u.template.id}).$promise.then(function(){_.remove(u.templates,{id:u.template.id}),o.success({title:"Template properly deleted!",msg:(u.template.name||"template")+" has been deleted!"}),p(u.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var t=0;t<e.data.errors.length;t++)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.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","templates","template","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.templates=r||{count:0,rows:[]},v.table="templates",v.listOrder="",v.listOrderAsc=null,v.selectedTemplates=[],v.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.templates.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTemplates=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.template.get(v.query,f).$promise},v.createOrEditTemplate=function(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:v.templates.rows,license:v.license,setting:v.setting}})},v.deleteTemplate=A,v.exportSelectedTemplates=function(){var e=angular.copy(v.selectedTemplates);return v.selectedTemplates=[],e},v.deleteSelectedTemplates=function(e){var t=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+v.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTemplates.forEach(function(e){A(e)}),v.selectedTemplates=[]})},v.deselectTemplates=function(){v.selectedTemplates=[]},v.selectAllTemplates=function(){v.selectedTemplates=v.templates.rows};var h=!0,b=1;function f(e){v.templates=e||{count:0,rows:[]}}function A(e){l.template.delete({id:e.id}).$promise.then(function(){_.remove(v.templates.rows,{id:e.id}),v.templates.count-=1,v.templates.rows.length||v.getTemplates(),c.success({title:"Template deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","templates","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TRIGGER",u.trigger=angular.copy(r),u.triggers=s,u.newTrigger=!1,u.trigger||(u.trigger={channel:"voice"},u.title="TOOLS.NEW_TRIGGER",u.newTrigger=!0),u.addNewTrigger=function(){u.errors=[],l.trigger.save(u.trigger).$promise.then(function(e){u.triggers.unshift(e.toJSON()),o.success({title:"Trigger properly created",msg:u.trigger.name?u.trigger.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.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.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTrigger=function(){u.errors=[],l.trigger.update({id:u.trigger.id},u.trigger).$promise.then(function(e){var t=_.find(u.triggers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Trigger properly saved!",msg:u.trigger.name?u.trigger.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var t=0;t<e.data.errors.length;t++)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.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTrigger=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The trigger will be deleted.").ariaLabel("Delete Trigger").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.trigger.delete({id:u.trigger.id}).$promise.then(function(){_.remove(u.triggers,{id:u.trigger.id}),o.success({title:"Trigger properly deleted!",msg:(u.trigger.name||"trigger")+" has been deleted!"}),p(u.trigger)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var t=0;t<e.data.errors.length;t++)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.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","triggers","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.trigger={},c.triggerActions={count:0,rows:[]},c.selectedTriggerActions=[],c.query={fields:"createdAt,updatedAt,id,action,data1,data2,data7,data3,data4,data5,data6",limit:10,page:1},c.arrayaction=_.keyBy([{option:"CONTACT_MANAGER",value:"'contactManager'",ngIf:"vm.trigger.channel == 'voice'"},{option:"INTEGRATIONS",value:"'integration'",ngIf:"vm.trigger.channel == 'voice'"},{option:"MOTION_BAR",value:"'motionbar'"},{option:"JSCRIPTY",value:"'jscripty'"},{option:"URL_FORWARD",value:"'urlForward'"},{option:"BROWSER",value:"'browser'"},{option:"BOT",value:"'bot'",ngIf:"vm.trigger.channel == 'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.browserValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.autoCreateContact=_.keyBy([{option:"yes",value:"'1'"},{option:"no",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.urlForwardValues=_.keyBy([{option:"GET",value:"'GET'"},{option:"POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.integrationValues=_.keyBy([{option:"Zendesk",value:"'zendesk'"},{option:"Salesforce",value:"'salesforce'"},{option:"SugarCRM",value:"'sugarcrm'"},{option:"Freshdesk",value:"'freshdesk'"},{option:"Desk",value:"'desk'"},{option:"Zoho",value:"'zoho'"},{option:"vTiger",value:"'vtiger'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.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"),"")}),c.eventVariables=_.keyBy([{option:"yes",value:"'1'"},{option:"no",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.location=_.keyBy([{option:"NEW_TAB",value:"'0'"},{option:"NEW_WINDOW",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.trigger=e,c.query.id=c.trigger.id,c.query.ActionId=c.trigger.id,c.getTriggerActions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the action?").htmlContent("<b>"+(e.name||"action")+"</b> will be deleted.").ariaLabel("delete action").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getTriggerActions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.trigger.getActions(c.query,p).$promise},c.createOrEditTriggerAction=function(e,t){o.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:c.trigger,action:t,actions:c.triggerActions.rows,license:null,setting:null}})},c.exportSelectedTriggerActions=function(){var e=angular.copy(c.selectedTriggerActions);return c.selectedTriggerActions=[],e},c.deleteTriggerAction=g,c.deleteSelectedTriggerActions=function(e){var t=o.confirm().title("Are you sure want to delete the selected actions?").htmlContent("<b>"+c.selectedTriggerActions.length+" selected</b> will be deleted.").ariaLabel("delete actions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedTriggerActions.forEach(function(e){g(e)}),c.selectedTriggerActions=[]})},l.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zendeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intDeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.deskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZohoAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zohoAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.salesforceAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.sugarcrmAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.freshdeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intVtigerAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.vtigerAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zendeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intDeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.deskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZohoConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zohoConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.salesforceConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.sugarcrmConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.freshdeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intVtigerConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.vtigerConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.templates=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.triggerActions=e||{count:0,rows:[]}}function g(e){l.action.delete({id:e.id}).$promise.then(function(){_.remove(c.triggerActions.rows,{id:e.id}),c.triggerActions.count-=1,c.triggerActions.rows.length||c.getTriggerActions(),r.success({title:"Action deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getTriggerActions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.errors=[],p.setting=u,p.license=m,p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="TOOLS.EDIT_ACTION",p.action=angular.copy(r),p.actions=s,p.newAction=!1,p.trigger=angular.copy(l),p.action||(p.action={data3:"0",data4:"0",data5:"800",data6:"600"},p.title="TOOLS.NEW_ACTION",p.newAction=!0),t.params.id&&(p.action.ActionId=t.params.id),p.addNewAction=function(){p.errors=[],d.trigger.addAction({id:t.params.id},p.action).$promise.then(function(e){p.actions.unshift(e.toJSON()),o.success({title:"Action properly created",msg:p.action.name?p.action.name+" has been created!":""}),g(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+=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.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAction=function(){p.errors=[],d.action.update({id:p.action.id},p.action).$promise.then(function(e){var t=_.find(p.actions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Action properly saved!",msg:p.action.name?p.action.name+" has been saved!":""}),g(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++)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.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAction=function(e){p.errors=[];var t=a.confirm().title("Are you sure?").content("The action will be deleted.").ariaLabel("Delete Action").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){d.action.delete({id:p.action.id}).$promise.then(function(){_.remove(p.actions,{id:p.action.id}),o.success({title:"Action properly deleted!",msg:(p.action.name||"action")+" has been deleted!"}),g(p.action)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var t=0;t<e.data.errors.length;t++)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.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g,d.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intDeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.deskAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZohoAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zohoAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intVtigerAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.vtigerAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intDeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.deskConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZohoConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zohoConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intVtigerConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.vtigerConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.templates=e.rows||[]}).catch(function(e){o.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","$q","toasty","actions","action","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.trigger={},c.triggerAllConditions={count:0,rows:[]},c.selectedTriggerAllConditions=[],c.query={fields:"createdAt,updatedAt,id,field,operator,value",limit:10,page:1},c.arrayfield=_.keyBy([{option:"Queue",value:"'queue'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Call_Status",value:"'lastevent'",ngIf:"vm.trigger.channel == 'voice'"},{option:"OutboundRoute",value:"'routeId'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Account",value:"'account'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Interaction",value:"'interaction'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Message",value:"'message'",ngIf:"vm.trigger.channel != 'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.callStatusValues=_.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"),"")}),c.interactionStatusValues=_.keyBy([{option:"Opened",value:"'opened'"},{option:"Closed",value:"'closed'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.messageStatusValues=_.keyBy([{option:"Incoming",value:"'in'"},{option:"Outgoing",value:"'out'"},{option:"Accepted",value:"'accept'"},{option:"Rejected",value:"'reject'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.trigger=e,c.query.id=c.trigger.id,c.query.TriggerAllId=c.trigger.id,c.getTriggerAllConditions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the allCondition?").htmlContent("<b>"+(e.name||"allCondition")+"</b> will be deleted.").ariaLabel("delete allCondition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getTriggerAllConditions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.trigger.getAllConditions(c.query,p).$promise},c.createOrEditTriggerAllCondition=function(e,t){o.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:c.trigger,allCondition:t,allconditions:c.triggerAllConditions.rows,license:null,setting:null}})},c.exportSelectedTriggerAllConditions=function(){var e=angular.copy(c.selectedTriggerAllConditions);return c.selectedTriggerAllConditions=[],e},c.deleteTriggerAllCondition=g,c.deleteSelectedTriggerAllConditions=function(e){var t=o.confirm().title("Are you sure want to delete the selected allconditions?").htmlContent("<b>"+c.selectedTriggerAllConditions.length+" selected</b> will be deleted.").ariaLabel("delete allconditions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedTriggerAllConditions.forEach(function(e){g(e)}),c.selectedTriggerAllConditions=[]})},l.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.chatAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.smsAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.faxAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.openchannelAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){c.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){c.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.triggerAllConditions=e||{count:0,rows:[]}}function g(e){l.condition.delete({id:e.id}).$promise.then(function(){_.remove(c.triggerAllConditions.rows,{id:e.id}),c.triggerAllConditions.count-=1,c.triggerAllConditions.rows.length||c.getTriggerAllConditions(),r.success({title:"AllCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getTriggerAllConditions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.errors=[],p.setting=u,p.license=m,p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="TOOLS.EDIT_ALLCONDITION",p.allCondition=angular.copy(r),p.allconditions=s,p.newAllCondition=!1,p.trigger=angular.copy(l),p.allCondition||(p.allCondition={field:"queue",operator:"equals",value:"abandoned",value:"opened",value:"in"},p.title="TOOLS.NEW_ALLCONDITION",p.newAllCondition=!0),t.params.id&&(p.allCondition.TriggerAllId=t.params.id),p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:t.params.id},p.allCondition).$promise.then(function(e){p.allconditions.unshift(e.toJSON()),o.success({title:"AllCondition properly created",msg:p.allCondition.name?p.allCondition.name+" has been created!":""}),g(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+=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.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(e){var t=_.find(p.allconditions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"AllCondition properly saved!",msg:p.allCondition.name?p.allCondition.name+" has been saved!":""}),g(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++)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.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var t=a.confirm().title("Are you sure?").content("The allCondition will be deleted.").ariaLabel("Delete AllCondition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){_.remove(p.allconditions,{id:p.allCondition.id}),o.success({title:"AllCondition properly deleted!",msg:(p.allCondition.name||"allCondition")+" has been deleted!"}),g(p.allCondition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g,d.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.chatAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.smsAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.faxAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.openchannelAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){o.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","$q","toasty","allconditions","allCondition","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.trigger={},c.triggerAnyConditions={count:0,rows:[]},c.selectedTriggerAnyConditions=[],c.query={fields:"createdAt,updatedAt,id,field,operator,value",limit:10,page:1},c.arrayfield=_.keyBy([{option:"Queue",value:"'queue'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Call_Status",value:"'lastevent'",ngIf:"vm.trigger.channel == 'voice'"},{option:"OutboundRoute",value:"'routeId'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Account",value:"'account'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Interaction",value:"'interaction'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Message",value:"'message'",ngIf:"vm.trigger.channel != 'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.callStatusValues=_.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"),"")}),c.interactionStatusValues=_.keyBy([{option:"Opened",value:"'opened'"},{option:"Closed",value:"'closed'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.messageStatusValues=_.keyBy([{option:"Incoming",value:"'in'"},{option:"Outgoing",value:"'out'"},{option:"Accepted",value:"'accept'"},{option:"Rejected",value:"'reject'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.trigger=e,c.query.id=c.trigger.id,c.query.TriggerAnyId=c.trigger.id,c.getTriggerAnyConditions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the anyCondition?").htmlContent("<b>"+(e.name||"anyCondition")+"</b> will be deleted.").ariaLabel("delete anyCondition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getTriggerAnyConditions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.trigger.getAnyConditions(c.query,p).$promise},c.createOrEditTriggerAnyCondition=function(e,t){o.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:c.trigger,anyCondition:t,anyconditions:c.triggerAnyConditions.rows,license:null,setting:null}})},c.exportSelectedTriggerAnyConditions=function(){var e=angular.copy(c.selectedTriggerAnyConditions);return c.selectedTriggerAnyConditions=[],e},c.deleteTriggerAnyCondition=g,c.deleteSelectedTriggerAnyConditions=function(e){var t=o.confirm().title("Are you sure want to delete the selected anyconditions?").htmlContent("<b>"+c.selectedTriggerAnyConditions.length+" selected</b> will be deleted.").ariaLabel("delete anyconditions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedTriggerAnyConditions.forEach(function(e){g(e)}),c.selectedTriggerAnyConditions=[]})},l.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.chatAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.smsAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.faxAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.openchannelAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){c.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){c.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.triggerAnyConditions=e||{count:0,rows:[]}}function g(e){l.condition.delete({id:e.id}).$promise.then(function(){_.remove(c.triggerAnyConditions.rows,{id:e.id}),c.triggerAnyConditions.count-=1,c.triggerAnyConditions.rows.length||c.getTriggerAnyConditions(),r.success({title:"AnyCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getTriggerAnyConditions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.errors=[],p.setting=u,p.license=m,p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="TOOLS.EDIT_ANYCONDITION",p.anyCondition=angular.copy(r),p.anyconditions=s,p.newAnyCondition=!1,p.trigger=angular.copy(l),p.anyCondition||(p.anyCondition={field:"queue",operator:"equals",value:"abandoned",value:"opened",value:"in"},p.title="TOOLS.NEW_ANYCONDITION",p.newAnyCondition=!0),t.params.id&&(p.anyCondition.TriggerAnyId=t.params.id),p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:t.params.id},p.anyCondition).$promise.then(function(e){p.anyconditions.unshift(e.toJSON()),o.success({title:"AnyCondition properly created",msg:p.anyCondition.name?p.anyCondition.name+" has been created!":""}),g(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+=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.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(e){var t=_.find(p.anyconditions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"AnyCondition properly saved!",msg:p.anyCondition.name?p.anyCondition.name+" has been saved!":""}),g(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++)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.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var t=a.confirm().title("Are you sure?").content("The anyCondition will be deleted.").ariaLabel("Delete AnyCondition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){_.remove(p.anyconditions,{id:p.anyCondition.id}),o.success({title:"AnyCondition properly deleted!",msg:(p.anyCondition.name||"anyCondition")+" has been deleted!"}),g(p.anyCondition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g,d.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.chatAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.smsAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.faxAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.openchannelAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){o.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","$q","toasty","anyconditions","anyCondition","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.trigger=d||e.params.trigger||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoTriggers=function(){e.go("app.tools.triggers")},c.saveTrigger=function(){s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){r.success({title:"Trigger updated!",msg:c.trigger.name?c.trigger.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","trigger"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.triggers=r||{count:0,rows:[]},v.table="triggers",v.listOrder="",v.listOrderAsc=null,v.selectedTriggers=[],v.query={fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,page:1},v.arraychannel=_.keyBy([{option:"Voice",value:"'voice'"},{option:"Openchannel",value:"'openchannel'",ngIf:"vm.license.openchannel"},{option:"Chat",value:"'chat'",ngIf:"vm.license.chat"},{option:"Mail",value:"'mail'",ngIf:"vm.license.mail"},{option:"Sms",value:"'sms'",ngIf:"vm.license.messaging"},{option:"Fax",value:"'fax'",ngIf:"vm.license.fax"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.tools.triggers.edit",{id:e.id,trigger:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTriggers=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.trigger.get(v.query,f).$promise},v.createOrEditTrigger=function(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:v.triggers.rows,license:v.license,setting:v.setting}})},v.deleteTrigger=A,v.exportSelectedTriggers=function(){var e=angular.copy(v.selectedTriggers);return v.selectedTriggers=[],e},v.deleteSelectedTriggers=function(e){var t=i.confirm().title("Are you sure want to delete the selected triggers?").htmlContent("<b>"+v.selectedTriggers.length+" selected</b> will be deleted.").ariaLabel("delete Triggers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTriggers.forEach(function(e){A(e)}),v.selectedTriggers=[]})},v.deselectTriggers=function(){v.selectedTriggers=[]},v.selectAllTriggers=function(){v.selectedTriggers=v.triggers.rows};var h=!0,b=1;function f(e){v.triggers=e||{count:0,rows:[]}}function A(e){l.trigger.delete({id:e.id}).$promise.then(function(){_.remove(v.triggers.rows,{id:e.id}),v.triggers.count-=1,v.triggers.rows.length||v.getTriggers(),c.success({title:"Trigger deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTriggers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","triggers","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TRUNK",u.trunk=angular.copy(r),u.trunks=s,u.newTrunk=!1,u.trunk||(u.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},u.title="TOOLS.NEW_TRUNK",u.newTrunk=!0),u.addNewTrunk=function(){u.errors=[],l.trunk.save(u.trunk).$promise.then(function(e){u.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:u.trunk.name?u.trunk.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.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.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTrunk=function(){u.errors=[],l.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(e){var t=_.find(u.trunks,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Trunk properly saved!",msg:u.trunk.name?u.trunk.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var t=0;t<e.data.errors.length;t++)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.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTrunk=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.trunk.delete({id:u.trunk.id}).$promise.then(function(){_.remove(u.trunks,{id:u.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(u.trunk.name||"trunk")+" has been deleted!"}),p(u.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var t=0;t<e.data.errors.length;t++)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.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","trunks","trunk","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=o,r.title=s.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),n.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.trunk=d||n.params.trunk||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.voice.realtime.trunks",{})},c.clonedialog=function(e,t){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{trunk:e,trunks:c.trunks?c.trunks.rows:[]}})},c.alert=r.info,c.gotoTrunks=function(){n.go("app.tools.trunks")},c.saveTrunk=function(){s.trunk.update({id:c.trunk.id},c.trunk).$promise.then(function(){r.success({title:"Trunk updated!",msg:c.trunk.name?c.trunk.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","trunk"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.trunks=r||{count:0,rows:[]},v.table="trunks",v.listOrder="",v.listOrderAsc=null,v.selectedTrunks=[],v.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,t38pt_udptl,otherFields",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.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"),"")}),v.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{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"),"")}),v.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.editstate=function(e,t){n.go("app.tools.trunks.edit",{id:e.id,trunk:e})},v.clonedialog=function(e,t){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{trunk:e,trunks:v.trunks?v.trunks.rows:[]}})},v.gotorealtimegoto=function(e,t){n.go("app.voice.realtime.trunks",{})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTrunks=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.trunk.get(v.query,f).$promise},v.createOrEditTrunk=function(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:v.trunks.rows,license:v.license,setting:v.setting}})},v.deleteTrunk=A,v.exportSelectedTrunks=function(){var e=angular.copy(v.selectedTrunks);return v.selectedTrunks=[],e},v.deleteSelectedTrunks=function(e){var t=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+v.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTrunks.forEach(function(e){A(e)}),v.selectedTrunks=[]})},v.deselectTrunks=function(){v.selectedTrunks=[]},v.selectAllTrunks=function(){v.selectedTrunks=v.trunks.rows};var h=!0,b=1;function f(e){v.trunks=e||{count:0,rows:[]}}function A(e){l.trunk.delete({id:e.id}).$promise.then(function(){_.remove(v.trunks.rows,{id:e.id}),v.trunks.count-=1,v.trunks.rows.length||v.getTrunks(),c.success({title:"Trunk deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","trunks","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_VARIABLE",u.variable=angular.copy(r),u.variables=s,u.newVariable=!1,u.variable||(u.variable={},u.title="TOOLS.NEW_VARIABLE",u.newVariable=!0),u.addNewVariable=function(){u.errors=[],l.variable.save(u.variable).$promise.then(function(e){u.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:u.variable.name?u.variable.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.variable.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.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVariable=function(){u.errors=[],l.variable.update({id:u.variable.id},u.variable).$promise.then(function(e){var t=_.find(u.variables,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Variable properly saved!",msg:u.variable.name?u.variable.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var t=0;t<e.data.errors.length;t++)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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVariable=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.variable.delete({id:u.variable.id}).$promise.then(function(){_.remove(u.variables,{id:u.variable.id}),o.success({title:"Variable properly deleted!",msg:(u.variable.name||"variable")+" has been deleted!"}),p(u.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var t=0;t<e.data.errors.length;t++)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.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","variables","variable","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.variables=r||{count:0,rows:[]},v.table="variables",v.listOrder="",v.listOrderAsc=null,v.selectedVariables=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.variables.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVariables=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.variable.get(v.query,f).$promise},v.createOrEditVariable=function(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:v.variables.rows,license:v.license,setting:v.setting}})},v.deleteVariable=A,v.exportSelectedVariables=function(){var e=angular.copy(v.selectedVariables);return v.selectedVariables=[],e},v.deleteSelectedVariables=function(e){var t=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+v.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVariables.forEach(function(e){A(e)}),v.selectedVariables=[]})},v.deselectVariables=function(){v.selectedVariables=[]},v.selectAllVariables=function(){v.selectedVariables=v.variables.rows};var h=!0,b=1;function f(e){v.variables=e||{count:0,rows:[]}}function A(e){l.variable.delete({id:e.id}).$promise.then(function(){_.remove(v.variables.rows,{id:e.id}),v.variables.count-=1,v.variables.rows.length||v.getVariables(),c.success({title:"Variable deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","variables","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.chanSpies=r||{count:0,rows:[]},v.table="chanSpies",v.listOrder="",v.listOrderAsc=null,v.selectedChanSpies=[],v.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},v.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"),"")}),v.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:v.chanSpies.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getChanSpies=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceChanSpy.get(v.query,f).$promise},v.createOrEditchanSpy=function(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:v.chanSpies.rows,license:v.license,setting:v.setting}})},v.deletechanSpy=A,v.exportSelectedChanSpies=function(){var e=angular.copy(v.selectedChanSpies);return v.selectedChanSpies=[],e},v.deleteSelectedChanSpies=function(e){var t=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+v.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChanSpies.forEach(function(e){A(e)}),v.selectedChanSpies=[]})},v.deselectChanSpies=function(){v.selectedChanSpies=[]},v.selectAllChanSpies=function(){v.selectedChanSpies=v.chanSpies.rows};var h=!0,b=1;function f(e){v.chanSpies=e||{count:0,rows:[]}}function A(e){l.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(v.chanSpies.rows,{id:e.id}),v.chanSpies.count-=1,v.chanSpies.rows.length||v.getChanSpies(),c.success({title:"chanSpy deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chanSpies","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_CHANSPY",u.chanSpy=angular.copy(r),u.chanSpies=s,u.newchanSpy=!1,u.chanSpy||(u.chanSpy={recordingFormat:"wav"},u.title="VOICE.NEW_CHANSPY",u.newchanSpy=!0),u.addNewchanSpy=function(){u.errors=[],l.voiceChanSpy.save(u.chanSpy).$promise.then(function(e){u.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:u.chanSpy.name?u.chanSpy.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.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.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savechanSpy=function(){u.errors=[],l.voiceChanSpy.update({id:u.chanSpy.id},u.chanSpy).$promise.then(function(e){var t=_.find(u.chanSpies,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"chanSpy properly saved!",msg:u.chanSpy.name?u.chanSpy.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletechanSpy=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceChanSpy.delete({id:u.chanSpy.id}).$promise.then(function(){_.remove(u.chanSpies,{id:u.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(u.chanSpy.name||"chanSpy")+" has been deleted!"}),p(u.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chanSpies","chanSpy","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.contexts=r||{count:0,rows:[]},v.table="contexts",v.listOrder="",v.listOrderAsc=null,v.selectedContexts=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},v.editdialog=function(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:v.contexts.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getContexts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceContext.get(v.query,f).$promise},v.createOrEditContext=function(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:v.contexts.rows,license:v.license,setting:v.setting}})},v.deleteContext=A,v.exportSelectedContexts=function(){var e=angular.copy(v.selectedContexts);return v.selectedContexts=[],e},v.deleteSelectedContexts=function(e){var t=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+v.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedContexts.forEach(function(e){A(e)}),v.selectedContexts=[]})},v.deselectContexts=function(){v.selectedContexts=[]},v.selectAllContexts=function(){v.selectedContexts=v.contexts.rows};var h=!0,b=1;function f(e){v.contexts=e||{count:0,rows:[]}}function A(e){l.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(v.contexts.rows,{id:e.id}),v.contexts.count-=1,v.contexts.rows.length||v.getContexts(),c.success({title:"Context deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","contexts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_CONTEXT",u.context=angular.copy(r),u.contexts=s,u.newContext=!1,u.context||(u.context={},u.title="VOICE.NEW_CONTEXT",u.newContext=!0),u.addNewContext=function(){u.errors=[],l.voiceContext.save(u.context).$promise.then(function(e){u.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:u.context.name?u.context.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.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.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveContext=function(){u.errors=[],l.voiceContext.update({id:u.context.id},u.context).$promise.then(function(e){var t=_.find(u.contexts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Context properly saved!",msg:u.context.name?u.context.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteContext=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceContext.delete({id:u.context.id}).$promise.then(function(){_.remove(u.contexts,{id:u.context.id}),o.success({title:"Context properly deleted!",msg:(u.context.name||"context")+" has been deleted!"}),p(u.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","contexts","context","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_INBOUNDROUTE",u.inboundroute=angular.copy(r),u.inboundroutes=s,u.newInboundRoute=!1,u.inboundroute||(u.inboundroute={appdata:"Inbound Call",type:"inbound",context:"from-voip-provider"},u.title="VOICE.NEW_INBOUNDROUTE",u.newInboundRoute=!0),u.addNewInboundRoute=function(){u.errors=[],l.voiceExtension.save(u.inboundroute).$promise.then(function(e){u.inboundroutes.unshift(e.toJSON()),o.success({title:"InboundRoute properly created",msg:u.inboundroute.name?u.inboundroute.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.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.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInboundRoute=function(){u.errors=[],l.voiceExtension.update({id:u.inboundroute.id},u.inboundroute).$promise.then(function(e){var t=_.find(u.inboundroutes,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"InboundRoute properly saved!",msg:u.inboundroute.name?u.inboundroute.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInboundRoute=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The inboundroute will be deleted.").ariaLabel("Delete InboundRoute").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceExtension.delete({id:u.inboundroute.id}).$promise.then(function(){_.remove(u.inboundroutes,{id:u.inboundroute.id}),o.success({title:"InboundRoute properly deleted!",msg:(u.inboundroute.name||"inboundroute")+" has been deleted!"}),p(u.inboundroute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){o.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","$q","toasty","inboundroutes","inboundroute","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(m,i,a,o,e){var u=this;function t(e,t){if(u.inboundrouteApps.rows.length){var n=u.inboundrouteApps.rows[t]?u.inboundrouteApps.rows[t]:u.inboundrouteApps.rows[0];i.show({controller:"EditInboundApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundrouteApp:n,inboundroute:u.inboundroute}}).then(function(e){e&&(e.id?u.inboundrouteApps.rows[t]=e:u.inboundrouteApps.rows.splice(t,0,e),s())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function s(){var e=["queue","playback"],t=2,n=[];n.push({type:"inbound",app:"Set",appdata:"CDR(type)=inbound",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id}),n.push({type:"inbound",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id}),n.push({type:"inbound",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id}),n.push({type:"inbound",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id});for(var a=0,i=0;a<u.inboundrouteApps.rows.length;a++,i=0){var o=u.inboundrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(u.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=u.inboundroute.context,o.exten=u.inboundroute.exten,o.type&&(o.type=o.type.toLowerCase()),o.hasOwnProperty("answer")&&e.includes(o.app.toLowerCase())&&"custom"!==o.appType&&(o.answer?(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-ANSWER}=0]?Answer",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-ANSWER=1",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.id})):(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-PROGRESS}=0]?Progress",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-PROGRESS=1",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.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:"inbound",app:"GotoIfTime",appdata:o.intervals[l]+"?"+u.inboundroute.context+",${EXTEN},"+d+":"+u.inboundroute.context+",${EXTEN},"+c,exten:u.inboundroute.exten,context:u.inboundroute.context,priority:t+l,VoiceExtensionId:u.inboundroute.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:"inbound",app:"Hangup",exten:u.inboundroute.exten,context:u.inboundroute.context,priority:t,VoiceExtensionId:u.inboundroute.id}),m.voiceExtension.addApplications({id:u.inboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){u.inboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){u.inboundrouteApps=e||{count:0,rows:[]}}u.currentUser=e.getCurrentUser(),u.inboundroute={},u.inboundrouteApps={count:0,rows:[]},u.selectedInboundRouteApps=[],u.query={sort:"priority"},u.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:"*,*,*,*",extraApi:[{name:"variables",route:"variable",filters:{fields:"name",sort:"name"}}],isApp:!0,fields:[{title:"Variable",name:"name",type:"apiselect",values:"variables",value:"name.name",option:"name.name",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}),u.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},u.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){s()}},u.init=function(e){u.inboundroute=e,u.query.VoiceExtensionId=e.id,u.query.isApp=!0,u.query.nolimit=!0,u.getInboundRouteApps(),u.getIntervals()},u.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){u.inboundrouteApps.rows.splice(t,1),s()},function(){console.log("CANCEL")})},u.getInboundRouteApps=function(){u.promise=m.voiceExtension.get(u.query,n).$promise},u.editInboundRouteApp=t,u.editInterval=function(e,t){if(u.inboundrouteApps.rows.length){var n=u.inboundrouteApps.rows[t]?u.inboundrouteApps.rows[t]:u.inboundrouteApps.rows[0];i.show({controller:"EditInboundAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,s())})}},u.deleteInboundRouteApp=function(e){_.remove(u.inboundrouteApps.rows,{id:e.id}),s(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},u.deleteSelectedInboundRouteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+u.selectedInboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){u.selectedInboundRouteApps.forEach(function(e){_.remove(u.inboundrouteApps.rows,{id:e.id})}),u.selectedInboundRouteApps=[],s()})},u.rewriteRouting=s,u.getIntervals=function(){return m.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.voice").controller("InboundRouteActionsController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.agi=angular.copy(e),o.agi.appdata)switch(o.agi.appType?o.agi.appType.toLowerCase():o.agi.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agi.appdata.split(",");o.agi.key=s[0],o.agi.language=s[1],o.agi.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agi.appdata.split(",");o.agi.accesskeyid=s[0],o.agi.secretaccesskey=s[1],o.agi.lexregion=s[2],o.agi.botname=s[3],o.agi.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agi.appdata.split(",");o.agi.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agi.text=s.slice(1,s.length).join(",");break;case"message":o.agi.text=o.agi.appdata;break;case"set":o.agi.name=o.agi.appdata.split("=")[0],o.agi.value=o.agi.appdata.split("=")[1];break;case"agi":o.agi.project=o.agi.appdata;break;default:var r=o.agi.appdata.split(",");o.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outbounddial"===o.agi.appType.toLowerCase()&&(o.agi.prefix=o.agi.phone?o.agi.phone.split("$")[0]:void 0,o.agi.callerId=o.agi.callerID?"CALLERID(all)="+o.agi.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outboundDial"===o.agi.appType&&(o.agi.phone=a.cutdigits?(o.agi.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agi.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agi.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agi.options+="U(xcally-mixmonitor-context)"):o.agi.options=o.agi.options.replace("U(xcally-mixmonitor-context)",""));if(o.agi.appType&&"custom"===o.agi.appType);else switch((o.agi.app||o.agi.appType).toLowerCase()){case"set":o.agi.appdata=o.agi.name+"="+o.agi.value;break;case"custom":break;default:e[0]=o.agi.project,o.agi.appdata=e.join(",")}l(o.agi)},o.closeDialog=l,i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){o.projects=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppagiDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.custom=angular.copy(n),o.custom.appdata)switch(o.custom.appType?o.custom.appType.toLowerCase():o.custom.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.custom.appdata.split(",");o.custom.key=s[0],o.custom.language=s[1],o.custom.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.custom.appdata.split(",");o.custom.accesskeyid=s[0],o.custom.secretaccesskey=s[1],o.custom.lexregion=s[2],o.custom.botname=s[3],o.custom.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.custom.appdata.split(",");o.custom.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.custom.text=s.slice(1,s.length).join(",");break;case"message":o.custom.text=o.custom.appdata;break;case"set":o.custom.name=o.custom.appdata.split("=")[0],o.custom.value=o.custom.appdata.split("=")[1];break;case"agi":o.custom.project=o.custom.appdata;break;default:var r=o.custom.appdata.split(",");o.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outbounddial"===o.custom.appType.toLowerCase()&&(o.custom.prefix=o.custom.phone?o.custom.phone.split("$")[0]:void 0,o.custom.callerId=o.custom.callerID?"CALLERID(all)="+o.custom.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outboundDial"===o.custom.appType&&(o.custom.phone=a.cutdigits?(o.custom.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.custom.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.custom.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.custom.options+="U(xcally-mixmonitor-context)"):o.custom.options=o.custom.options.replace("U(xcally-mixmonitor-context)",""));if(o.custom.appType&&"custom"===o.custom.appType);else switch((o.custom.app||o.custom.appType).toLowerCase()){case"set":o.custom.appdata=o.custom.name+"="+o.custom.value;break;case"custom":break;default:e[0]=o.custom.app,e[1]=o.custom.appdata,o.custom.appdata=e.join(",")}l(o.custom)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppcustomDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.dial=angular.copy(n),o.dial.appdata)switch(o.dial.appType?o.dial.appType.toLowerCase():o.dial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.dial.appdata.split(",");o.dial.key=s[0],o.dial.language=s[1],o.dial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.dial.appdata.split(",");o.dial.accesskeyid=s[0],o.dial.secretaccesskey=s[1],o.dial.lexregion=s[2],o.dial.botname=s[3],o.dial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.dial.appdata.split(",");o.dial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.dial.text=s.slice(1,s.length).join(",");break;case"message":o.dial.text=o.dial.appdata;break;case"set":o.dial.name=o.dial.appdata.split("=")[0],o.dial.value=o.dial.appdata.split("=")[1];break;case"agi":o.dial.project=o.dial.appdata;break;default:var r=o.dial.appdata.split(",");o.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outbounddial"===o.dial.appType.toLowerCase()&&(o.dial.prefix=o.dial.phone?o.dial.phone.split("$")[0]:void 0,o.dial.callerId=o.dial.callerID?"CALLERID(all)="+o.dial.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outboundDial"===o.dial.appType&&(o.dial.phone=a.cutdigits?(o.dial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.dial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.dial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.dial.options+="U(xcally-mixmonitor-context)"):o.dial.options=o.dial.options.replace("U(xcally-mixmonitor-context)",""));if(o.dial.appType&&"custom"===o.dial.appType);else switch((o.dial.app||o.dial.appType).toLowerCase()){case"set":o.dial.appdata=o.dial.name+"="+o.dial.value;break;case"custom":break;default:e[0]=o.dial.tech,e[1]=o.dial.timeout,e[2]=o.dial.options,e[3]=o.dial.url,o.dial.appdata=e.join(",")}l(o.dial)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppdialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.externaldial=angular.copy(e),o.externaldial.appdata)switch(o.externaldial.appType?o.externaldial.appType.toLowerCase():o.externaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.externaldial.appdata.split(",");o.externaldial.key=s[0],o.externaldial.language=s[1],o.externaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.externaldial.appdata.split(",");o.externaldial.accesskeyid=s[0],o.externaldial.secretaccesskey=s[1],o.externaldial.lexregion=s[2],o.externaldial.botname=s[3],o.externaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.externaldial.appdata.split(",");o.externaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.externaldial.text=s.slice(1,s.length).join(",");break;case"message":o.externaldial.text=o.externaldial.appdata;break;case"set":o.externaldial.name=o.externaldial.appdata.split("=")[0],o.externaldial.value=o.externaldial.appdata.split("=")[1];break;case"agi":o.externaldial.project=o.externaldial.appdata;break;default:var r=o.externaldial.appdata.split(",");o.externaldial.trunk=r[0].split("/")[1],o.externaldial.phone=r[0].split("/")[2],o.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outbounddial"===o.externaldial.appType.toLowerCase()&&(o.externaldial.prefix=o.externaldial.phone?o.externaldial.phone.split("$")[0]:void 0,o.externaldial.callerId=o.externaldial.callerID?"CALLERID(all)="+o.externaldial.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outboundDial"===o.externaldial.appType&&(o.externaldial.phone=a.cutdigits?(o.externaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.externaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.externaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.externaldial.options+="U(xcally-mixmonitor-context)"):o.externaldial.options=o.externaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.externaldial.appType&&"custom"===o.externaldial.appType);else switch((o.externaldial.app||o.externaldial.appType).toLowerCase()){case"set":o.externaldial.appdata=o.externaldial.name+"="+o.externaldial.value;break;case"custom":break;default:e[0]=["SIP",o.externaldial.trunk,o.externaldial.phone].join("/"),e[1]=o.externaldial.timeout,e[2]=o.externaldial.options,e[3]=o.externaldial.url,o.externaldial.appdata=e.join(",")}l(o.externaldial)},o.closeDialog=l,i.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){o.trunks=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppexternaldialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.goto=angular.copy(e),o.goto.appdata)switch(o.goto.appType?o.goto.appType.toLowerCase():o.goto.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.goto.appdata.split(",");o.goto.key=s[0],o.goto.language=s[1],o.goto.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.goto.appdata.split(",");o.goto.accesskeyid=s[0],o.goto.secretaccesskey=s[1],o.goto.lexregion=s[2],o.goto.botname=s[3],o.goto.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.goto.appdata.split(",");o.goto.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.goto.text=s.slice(1,s.length).join(",");break;case"message":o.goto.text=o.goto.appdata;break;case"set":o.goto.name=o.goto.appdata.split("=")[0],o.goto.value=o.goto.appdata.split("=")[1];break;case"agi":o.goto.project=o.goto.appdata;break;default:var r=o.goto.appdata.split(",");o.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outbounddial"===o.goto.appType.toLowerCase()&&(o.goto.prefix=o.goto.phone?o.goto.phone.split("$")[0]:void 0,o.goto.callerId=o.goto.callerID?"CALLERID(all)="+o.goto.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outboundDial"===o.goto.appType&&(o.goto.phone=a.cutdigits?(o.goto.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.goto.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.goto.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.goto.options+="U(xcally-mixmonitor-context)"):o.goto.options=o.goto.options.replace("U(xcally-mixmonitor-context)",""));if(o.goto.appType&&"custom"===o.goto.appType);else switch((o.goto.app||o.goto.appType).toLowerCase()){case"set":o.goto.appdata=o.goto.name+"="+o.goto.value;break;case"custom":break;default:e[0]=o.goto.context,e[1]=o.goto.extension,e[2]=o.goto.priority,o.goto.appdata=e.join(",")}l(o.goto)},o.closeDialog=l,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){o.contexts=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppgotoDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.hangup=angular.copy(n),o.hangup.appdata)switch(o.hangup.appType?o.hangup.appType.toLowerCase():o.hangup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.hangup.appdata.split(",");o.hangup.key=s[0],o.hangup.language=s[1],o.hangup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.hangup.appdata.split(",");o.hangup.accesskeyid=s[0],o.hangup.secretaccesskey=s[1],o.hangup.lexregion=s[2],o.hangup.botname=s[3],o.hangup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.hangup.appdata.split(",");o.hangup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.hangup.text=s.slice(1,s.length).join(",");break;case"message":o.hangup.text=o.hangup.appdata;break;case"set":o.hangup.name=o.hangup.appdata.split("=")[0],o.hangup.value=o.hangup.appdata.split("=")[1];break;case"agi":o.hangup.project=o.hangup.appdata;break;default:var r=o.hangup.appdata.split(",");o.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outbounddial"===o.hangup.appType.toLowerCase()&&(o.hangup.prefix=o.hangup.phone?o.hangup.phone.split("$")[0]:void 0,o.hangup.callerId=o.hangup.callerID?"CALLERID(all)="+o.hangup.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outboundDial"===o.hangup.appType&&(o.hangup.phone=a.cutdigits?(o.hangup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.hangup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.hangup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.hangup.options+="U(xcally-mixmonitor-context)"):o.hangup.options=o.hangup.options.replace("U(xcally-mixmonitor-context)",""));if(o.hangup.appType&&"custom"===o.hangup.appType);else switch((o.hangup.app||o.hangup.appType).toLowerCase()){case"set":o.hangup.appdata=o.hangup.name+"="+o.hangup.value;break;case"custom":break;default:e[0]=o.hangup.appdata,o.hangup.appdata=e.join(",")}l(o.hangup)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundApphangupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.internaldial=angular.copy(e),o.internaldial.appdata)switch(o.internaldial.appType?o.internaldial.appType.toLowerCase():o.internaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.internaldial.appdata.split(",");o.internaldial.key=s[0],o.internaldial.language=s[1],o.internaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.internaldial.appdata.split(",");o.internaldial.accesskeyid=s[0],o.internaldial.secretaccesskey=s[1],o.internaldial.lexregion=s[2],o.internaldial.botname=s[3],o.internaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.internaldial.appdata.split(",");o.internaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.internaldial.text=s.slice(1,s.length).join(",");break;case"message":o.internaldial.text=o.internaldial.appdata;break;case"set":o.internaldial.name=o.internaldial.appdata.split("=")[0],o.internaldial.value=o.internaldial.appdata.split("=")[1];break;case"agi":o.internaldial.project=o.internaldial.appdata;break;default:var r=o.internaldial.appdata.split(",");o.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outbounddial"===o.internaldial.appType.toLowerCase()&&(o.internaldial.prefix=o.internaldial.phone?o.internaldial.phone.split("$")[0]:void 0,o.internaldial.callerId=o.internaldial.callerID?"CALLERID(all)="+o.internaldial.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outboundDial"===o.internaldial.appType&&(o.internaldial.phone=a.cutdigits?(o.internaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.internaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.internaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.internaldial.options+="U(xcally-mixmonitor-context)"):o.internaldial.options=o.internaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.internaldial.appType&&"custom"===o.internaldial.appType);else switch((o.internaldial.app||o.internaldial.appType).toLowerCase()){case"set":o.internaldial.appdata=o.internaldial.name+"="+o.internaldial.value;break;case"custom":break;default:e[0]=o.internaldial.user,e[1]=o.internaldial.timeout,e[2]=o.internaldial.options,e[3]=o.internaldial.url,o.internaldial.appdata=e.join(",")}l(o.internaldial)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInboundAppintervalDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.playback=angular.copy(e),o.playback.appdata)switch(o.playback.appType?o.playback.appType.toLowerCase():o.playback.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.playback.appdata.split(",");o.playback.key=s[0],o.playback.language=s[1],o.playback.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.playback.appdata.split(",");o.playback.accesskeyid=s[0],o.playback.secretaccesskey=s[1],o.playback.lexregion=s[2],o.playback.botname=s[3],o.playback.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.playback.appdata.split(",");o.playback.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.playback.text=s.slice(1,s.length).join(",");break;case"message":o.playback.text=o.playback.appdata;break;case"set":o.playback.name=o.playback.appdata.split("=")[0],o.playback.value=o.playback.appdata.split("=")[1];break;case"agi":o.playback.project=o.playback.appdata;break;default:var r=o.playback.appdata.split(",");o.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outbounddial"===o.playback.appType.toLowerCase()&&(o.playback.prefix=o.playback.phone?o.playback.phone.split("$")[0]:void 0,o.playback.callerId=o.playback.callerID?"CALLERID(all)="+o.playback.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outboundDial"===o.playback.appType&&(o.playback.phone=a.cutdigits?(o.playback.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.playback.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.playback.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.playback.options+="U(xcally-mixmonitor-context)"):o.playback.options=o.playback.options.replace("U(xcally-mixmonitor-context)",""));if(o.playback.appType&&"custom"===o.playback.appType);else switch((o.playback.app||o.playback.appType).toLowerCase()){case"set":o.playback.appdata=o.playback.name+"="+o.playback.value;break;case"custom":break;default:e[0]=o.playback.appdata,e[1]=o.playback.options,o.playback.appdata=e.join(",")}l(o.playback)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppplaybackDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),o.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),o.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),o.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),o.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),o.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),o.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.options,e[2]=o.queue.URL,e[3]=o.queue.sound,e[4]=o.queue.timeout,e[5]=o.queue.agi,e[6]=o.queue.macro,e[7]=o.queue.gosub,e[8]=o.queue.rule,e[9]=o.queue.position,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.ringgroup=angular.copy(e),o.ringgroup.appdata)switch(o.ringgroup.appType?o.ringgroup.appType.toLowerCase():o.ringgroup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.ringgroup.appdata.split(",");o.ringgroup.key=s[0],o.ringgroup.language=s[1],o.ringgroup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.ringgroup.appdata.split(",");o.ringgroup.accesskeyid=s[0],o.ringgroup.secretaccesskey=s[1],o.ringgroup.lexregion=s[2],o.ringgroup.botname=s[3],o.ringgroup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.ringgroup.appdata.split(",");o.ringgroup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.ringgroup.text=s.slice(1,s.length).join(",");break;case"message":o.ringgroup.text=o.ringgroup.appdata;break;case"set":o.ringgroup.name=o.ringgroup.appdata.split("=")[0],o.ringgroup.value=o.ringgroup.appdata.split("=")[1];break;case"agi":o.ringgroup.project=o.ringgroup.appdata;break;default:var r=o.ringgroup.appdata.split(",");o.ringgroup.multipleUsers=r[0].split("&"),o.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outbounddial"===o.ringgroup.appType.toLowerCase()&&(o.ringgroup.prefix=o.ringgroup.phone?o.ringgroup.phone.split("$")[0]:void 0,o.ringgroup.callerId=o.ringgroup.callerID?"CALLERID(all)="+o.ringgroup.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outboundDial"===o.ringgroup.appType&&(o.ringgroup.phone=a.cutdigits?(o.ringgroup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.ringgroup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.ringgroup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.ringgroup.options+="U(xcally-mixmonitor-context)"):o.ringgroup.options=o.ringgroup.options.replace("U(xcally-mixmonitor-context)",""));if(o.ringgroup.appType&&"custom"===o.ringgroup.appType);else switch((o.ringgroup.app||o.ringgroup.appType).toLowerCase()){case"set":o.ringgroup.appdata=o.ringgroup.name+"="+o.ringgroup.value;break;case"custom":break;default:e[0]=o.ringgroup.multipleUsers.join("&"),e[1]=o.ringgroup.timeout,e[2]=o.ringgroup.options,e[3]=o.ringgroup.url,o.ringgroup.appdata=e.join(",")}l(o.ringgroup)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppringgroupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.set=angular.copy(e),o.set.appdata)switch(o.set.appType?o.set.appType.toLowerCase():o.set.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.set.appdata.split(",");o.set.key=s[0],o.set.language=s[1],o.set.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.set.appdata.split(",");o.set.accesskeyid=s[0],o.set.secretaccesskey=s[1],o.set.lexregion=s[2],o.set.botname=s[3],o.set.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.set.appdata.split(",");o.set.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.set.text=s.slice(1,s.length).join(",");break;case"message":o.set.text=o.set.appdata;break;case"set":o.set.name=o.set.appdata.split("=")[0],o.set.value=o.set.appdata.split("=")[1];break;case"agi":o.set.project=o.set.appdata;break;default:var r=o.set.appdata.split("=");o.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outbounddial"===o.set.appType.toLowerCase()&&(o.set.prefix=o.set.phone?o.set.phone.split("$")[0]:void 0,o.set.callerId=o.set.callerID?"CALLERID(all)="+o.set.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outboundDial"===o.set.appType&&(o.set.phone=a.cutdigits?(o.set.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.set.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.set.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.set.options+="U(xcally-mixmonitor-context)"):o.set.options=o.set.options.replace("U(xcally-mixmonitor-context)",""));if(o.set.appType&&"custom"===o.set.appType);else switch((o.set.app||o.set.appType).toLowerCase()){case"set":o.set.appdata=o.set.name+"="+o.set.value;break;case"custom":break;default:e[0]=o.set.name,e[1]=o.set.value,o.set.appdata=e.join("=")}l(o.set)},o.closeDialog=l,i.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppsetDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.voicemail=angular.copy(e),o.voicemail.appdata)switch(o.voicemail.appType?o.voicemail.appType.toLowerCase():o.voicemail.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.voicemail.appdata.split(",");o.voicemail.key=s[0],o.voicemail.language=s[1],o.voicemail.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.voicemail.appdata.split(",");o.voicemail.accesskeyid=s[0],o.voicemail.secretaccesskey=s[1],o.voicemail.lexregion=s[2],o.voicemail.botname=s[3],o.voicemail.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.voicemail.appdata.split(",");o.voicemail.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.voicemail.text=s.slice(1,s.length).join(",");break;case"message":o.voicemail.text=o.voicemail.appdata;break;case"set":o.voicemail.name=o.voicemail.appdata.split("=")[0],o.voicemail.value=o.voicemail.appdata.split("=")[1];break;case"agi":o.voicemail.project=o.voicemail.appdata;break;default:var r=o.voicemail.appdata.split(",");o.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outbounddial"===o.voicemail.appType.toLowerCase()&&(o.voicemail.prefix=o.voicemail.phone?o.voicemail.phone.split("$")[0]:void 0,o.voicemail.callerId=o.voicemail.callerID?"CALLERID(all)="+o.voicemail.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outboundDial"===o.voicemail.appType&&(o.voicemail.phone=a.cutdigits?(o.voicemail.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.voicemail.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.voicemail.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.voicemail.options+="U(xcally-mixmonitor-context)"):o.voicemail.options=o.voicemail.options.replace("U(xcally-mixmonitor-context)",""));if(o.voicemail.appType&&"custom"===o.voicemail.appType);else switch((o.voicemail.app||o.voicemail.appType).toLowerCase()){case"set":o.voicemail.appdata=o.voicemail.name+"="+o.voicemail.value;break;case"custom":break;default:e[0]=o.voicemail.voiceMail,e[1]=o.voicemail.options,o.voicemail.appdata=e.join(",")}l(o.voicemail)},o.closeDialog=l,i.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){o.voiceMails=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.inboundroute=d||e.params.inboundroute||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoInboundRoutes=function(){e.go("app.voice.inboundroutes")},c.saveInboundRoute=function(){s.voiceExtension.update({id:c.inboundroute.id},c.inboundroute).$promise.then(function(){r.success({title:"InboundRoute updated!",msg:c.inboundroute.name?c.inboundroute.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","inboundroute"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.inboundroutes=r||{count:0,rows:[]},v.table="inboundroutes",v.listOrder="",v.listOrderAsc=null,v.selectedInboundRoutes=[],v.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},v.editstate=function(e,t){n.go("app.voice.inboundroutes.edit",{id:e.id,inboundroute:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getInboundRoutes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceExtension.get(v.query,f).$promise},v.createOrEditInboundRoute=function(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:v.inboundroutes.rows,license:v.license,setting:v.setting}})},v.deleteInboundRoute=A,v.exportSelectedInboundRoutes=function(){var e=angular.copy(v.selectedInboundRoutes);return v.selectedInboundRoutes=[],e},v.deleteSelectedInboundRoutes=function(e){var t=i.confirm().title("Are you sure want to delete the selected inboundroutes?").htmlContent("<b>"+v.selectedInboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedInboundRoutes.forEach(function(e){A(e)}),v.selectedInboundRoutes=[]})},v.deselectInboundRoutes=function(){v.selectedInboundRoutes=[]},v.selectAllInboundRoutes=function(){v.selectedInboundRoutes=v.inboundroutes.rows},l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.inboundroutes=e||{count:0,rows:[]}}function A(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(v.inboundroutes.rows,{id:e.id}),v.inboundroutes.count-=1,v.inboundroutes.rows.length||v.getInboundRoutes(),c.success({title:"InboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getInboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","inboundroutes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_INTERNALROUTE",u.internalroute=angular.copy(r),u.internalroutes=s,u.newInternalRoute=!1,u.internalroute||(u.internalroute={appdata:"Internal Call",type:"internal",context:"from-sip"},u.title="VOICE.NEW_INTERNALROUTE",u.newInternalRoute=!0),u.addNewInternalRoute=function(){u.errors=[],l.voiceExtension.save(u.internalroute).$promise.then(function(e){u.internalroutes.unshift(e.toJSON()),o.success({title:"InternalRoute properly created",msg:u.internalroute.name?u.internalroute.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.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.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInternalRoute=function(){u.errors=[],l.voiceExtension.update({id:u.internalroute.id},u.internalroute).$promise.then(function(e){var t=_.find(u.internalroutes,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"InternalRoute properly saved!",msg:u.internalroute.name?u.internalroute.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInternalRoute=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The internalroute will be deleted.").ariaLabel("Delete InternalRoute").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceExtension.delete({id:u.internalroute.id}).$promise.then(function(){_.remove(u.internalroutes,{id:u.internalroute.id}),o.success({title:"InternalRoute properly deleted!",msg:(u.internalroute.name||"internalroute")+" has been deleted!"}),p(u.internalroute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){o.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","$q","toasty","internalroutes","internalroute","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(m,i,a,o,e){var u=this;function t(e,t){if(u.internalrouteApps.rows.length){var n=u.internalrouteApps.rows[t]?u.internalrouteApps.rows[t]:u.internalrouteApps.rows[0];i.show({controller:"EditInternalApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalrouteApp:n,internalroute:u.internalroute}}).then(function(e){e&&(e.id?u.internalrouteApps.rows[t]=e:u.internalrouteApps.rows.splice(t,0,e),s())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function s(){var e=["queue","playback"],t=2,n=[];n.push({type:"internal",app:"Set",appdata:"CDR(type)=internal",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id}),n.push({type:"internal",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id}),n.push({type:"internal",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id}),n.push({type:"internal",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id});for(var a=0,i=0;a<u.internalrouteApps.rows.length;a++,i=0){var o=u.internalrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(u.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=u.internalroute.context,o.exten=u.internalroute.exten,o.type&&(o.type=o.type.toLowerCase()),o.hasOwnProperty("answer")&&e.includes(o.app.toLowerCase())&&"custom"!==o.appType&&(o.answer?(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-ANSWER}=0]?Answer",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-ANSWER=1",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.id})):(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-PROGRESS}=0]?Progress",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-PROGRESS=1",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.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:"internal",app:"GotoIfTime",appdata:o.intervals[l]+"?"+u.internalroute.context+",${EXTEN},"+d+":"+u.internalroute.context+",${EXTEN},"+c,exten:u.internalroute.exten,context:u.internalroute.context,priority:t+l,VoiceExtensionId:u.internalroute.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:"internal",app:"Hangup",exten:u.internalroute.exten,context:u.internalroute.context,priority:t,VoiceExtensionId:u.internalroute.id}),m.voiceExtension.addApplications({id:u.internalroute.id},_.sortBy(n,"priority")).$promise.then(function(e){u.internalrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){u.internalrouteApps=e||{count:0,rows:[]}}u.currentUser=e.getCurrentUser(),u.internalroute={},u.internalrouteApps={count:0,rows:[]},u.selectedInternalRouteApps=[],u.query={sort:"priority"},u.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:"*,*,*,*",extraApi:[{name:"variables",route:"variable",filters:{fields:"name",sort:"name"}}],isApp:!0,fields:[{title:"Variable",name:"name",type:"apiselect",values:"variables",value:"name.name",option:"name.name",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}),u.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},u.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){s()}},u.init=function(e){u.internalroute=e,u.query.VoiceExtensionId=e.id,u.query.isApp=!0,u.query.nolimit=!0,u.getInternalRouteApps(),u.getIntervals()},u.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){u.internalrouteApps.rows.splice(t,1),s()},function(){console.log("CANCEL")})},u.getInternalRouteApps=function(){u.promise=m.voiceExtension.get(u.query,n).$promise},u.editInternalRouteApp=t,u.editInterval=function(e,t){if(u.internalrouteApps.rows.length){var n=u.internalrouteApps.rows[t]?u.internalrouteApps.rows[t]:u.internalrouteApps.rows[0];i.show({controller:"EditInternalAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,s())})}},u.deleteInternalRouteApp=function(e){_.remove(u.internalrouteApps.rows,{id:e.id}),s(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},u.deleteSelectedInternalRouteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+u.selectedInternalRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){u.selectedInternalRouteApps.forEach(function(e){_.remove(u.internalrouteApps.rows,{id:e.id})}),u.selectedInternalRouteApps=[],s()})},u.rewriteRouting=s,u.getIntervals=function(){return m.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.voice").controller("InternalRouteActionsController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.agi=angular.copy(e),o.agi.appdata)switch(o.agi.appType?o.agi.appType.toLowerCase():o.agi.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agi.appdata.split(",");o.agi.key=s[0],o.agi.language=s[1],o.agi.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agi.appdata.split(",");o.agi.accesskeyid=s[0],o.agi.secretaccesskey=s[1],o.agi.lexregion=s[2],o.agi.botname=s[3],o.agi.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agi.appdata.split(",");o.agi.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agi.text=s.slice(1,s.length).join(",");break;case"message":o.agi.text=o.agi.appdata;break;case"set":o.agi.name=o.agi.appdata.split("=")[0],o.agi.value=o.agi.appdata.split("=")[1];break;case"agi":o.agi.project=o.agi.appdata;break;default:var r=o.agi.appdata.split(",");o.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outbounddial"===o.agi.appType.toLowerCase()&&(o.agi.prefix=o.agi.phone?o.agi.phone.split("$")[0]:void 0,o.agi.callerId=o.agi.callerID?"CALLERID(all)="+o.agi.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outboundDial"===o.agi.appType&&(o.agi.phone=a.cutdigits?(o.agi.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agi.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agi.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agi.options+="U(xcally-mixmonitor-context)"):o.agi.options=o.agi.options.replace("U(xcally-mixmonitor-context)",""));if(o.agi.appType&&"custom"===o.agi.appType);else switch((o.agi.app||o.agi.appType).toLowerCase()){case"set":o.agi.appdata=o.agi.name+"="+o.agi.value;break;case"custom":break;default:e[0]=o.agi.project,o.agi.appdata=e.join(",")}l(o.agi)},o.closeDialog=l,i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){o.projects=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppagiDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.custom=angular.copy(n),o.custom.appdata)switch(o.custom.appType?o.custom.appType.toLowerCase():o.custom.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.custom.appdata.split(",");o.custom.key=s[0],o.custom.language=s[1],o.custom.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.custom.appdata.split(",");o.custom.accesskeyid=s[0],o.custom.secretaccesskey=s[1],o.custom.lexregion=s[2],o.custom.botname=s[3],o.custom.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.custom.appdata.split(",");o.custom.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.custom.text=s.slice(1,s.length).join(",");break;case"message":o.custom.text=o.custom.appdata;break;case"set":o.custom.name=o.custom.appdata.split("=")[0],o.custom.value=o.custom.appdata.split("=")[1];break;case"agi":o.custom.project=o.custom.appdata;break;default:var r=o.custom.appdata.split(",");o.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outbounddial"===o.custom.appType.toLowerCase()&&(o.custom.prefix=o.custom.phone?o.custom.phone.split("$")[0]:void 0,o.custom.callerId=o.custom.callerID?"CALLERID(all)="+o.custom.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outboundDial"===o.custom.appType&&(o.custom.phone=a.cutdigits?(o.custom.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.custom.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.custom.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.custom.options+="U(xcally-mixmonitor-context)"):o.custom.options=o.custom.options.replace("U(xcally-mixmonitor-context)",""));if(o.custom.appType&&"custom"===o.custom.appType);else switch((o.custom.app||o.custom.appType).toLowerCase()){case"set":o.custom.appdata=o.custom.name+"="+o.custom.value;break;case"custom":break;default:e[0]=o.custom.app,e[1]=o.custom.appdata,o.custom.appdata=e.join(",")}l(o.custom)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalAppcustomDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.dial=angular.copy(n),o.dial.appdata)switch(o.dial.appType?o.dial.appType.toLowerCase():o.dial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.dial.appdata.split(",");o.dial.key=s[0],o.dial.language=s[1],o.dial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.dial.appdata.split(",");o.dial.accesskeyid=s[0],o.dial.secretaccesskey=s[1],o.dial.lexregion=s[2],o.dial.botname=s[3],o.dial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.dial.appdata.split(",");o.dial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.dial.text=s.slice(1,s.length).join(",");break;case"message":o.dial.text=o.dial.appdata;break;case"set":o.dial.name=o.dial.appdata.split("=")[0],o.dial.value=o.dial.appdata.split("=")[1];break;case"agi":o.dial.project=o.dial.appdata;break;default:var r=o.dial.appdata.split(",");o.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outbounddial"===o.dial.appType.toLowerCase()&&(o.dial.prefix=o.dial.phone?o.dial.phone.split("$")[0]:void 0,o.dial.callerId=o.dial.callerID?"CALLERID(all)="+o.dial.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outboundDial"===o.dial.appType&&(o.dial.phone=a.cutdigits?(o.dial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.dial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.dial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.dial.options+="U(xcally-mixmonitor-context)"):o.dial.options=o.dial.options.replace("U(xcally-mixmonitor-context)",""));if(o.dial.appType&&"custom"===o.dial.appType);else switch((o.dial.app||o.dial.appType).toLowerCase()){case"set":o.dial.appdata=o.dial.name+"="+o.dial.value;break;case"custom":break;default:e[0]=o.dial.tech,e[1]=o.dial.timeout,e[2]=o.dial.options,e[3]=o.dial.url,o.dial.appdata=e.join(",")}l(o.dial)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalAppdialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.externaldial=angular.copy(e),o.externaldial.appdata)switch(o.externaldial.appType?o.externaldial.appType.toLowerCase():o.externaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.externaldial.appdata.split(",");o.externaldial.key=s[0],o.externaldial.language=s[1],o.externaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.externaldial.appdata.split(",");o.externaldial.accesskeyid=s[0],o.externaldial.secretaccesskey=s[1],o.externaldial.lexregion=s[2],o.externaldial.botname=s[3],o.externaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.externaldial.appdata.split(",");o.externaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.externaldial.text=s.slice(1,s.length).join(",");break;case"message":o.externaldial.text=o.externaldial.appdata;break;case"set":o.externaldial.name=o.externaldial.appdata.split("=")[0],o.externaldial.value=o.externaldial.appdata.split("=")[1];break;case"agi":o.externaldial.project=o.externaldial.appdata;break;default:var r=o.externaldial.appdata.split(",");o.externaldial.trunk=r[0].split("/")[1],o.externaldial.phone=r[0].split("/")[2],o.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outbounddial"===o.externaldial.appType.toLowerCase()&&(o.externaldial.prefix=o.externaldial.phone?o.externaldial.phone.split("$")[0]:void 0,o.externaldial.callerId=o.externaldial.callerID?"CALLERID(all)="+o.externaldial.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outboundDial"===o.externaldial.appType&&(o.externaldial.phone=a.cutdigits?(o.externaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.externaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.externaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.externaldial.options+="U(xcally-mixmonitor-context)"):o.externaldial.options=o.externaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.externaldial.appType&&"custom"===o.externaldial.appType);else switch((o.externaldial.app||o.externaldial.appType).toLowerCase()){case"set":o.externaldial.appdata=o.externaldial.name+"="+o.externaldial.value;break;case"custom":break;default:e[0]=["SIP",o.externaldial.trunk,o.externaldial.phone].join("/"),e[1]=o.externaldial.timeout,e[2]=o.externaldial.options,e[3]=o.externaldial.url,o.externaldial.appdata=e.join(",")}l(o.externaldial)},o.closeDialog=l,i.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){o.trunks=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppexternaldialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.goto=angular.copy(e),o.goto.appdata)switch(o.goto.appType?o.goto.appType.toLowerCase():o.goto.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.goto.appdata.split(",");o.goto.key=s[0],o.goto.language=s[1],o.goto.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.goto.appdata.split(",");o.goto.accesskeyid=s[0],o.goto.secretaccesskey=s[1],o.goto.lexregion=s[2],o.goto.botname=s[3],o.goto.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.goto.appdata.split(",");o.goto.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.goto.text=s.slice(1,s.length).join(",");break;case"message":o.goto.text=o.goto.appdata;break;case"set":o.goto.name=o.goto.appdata.split("=")[0],o.goto.value=o.goto.appdata.split("=")[1];break;case"agi":o.goto.project=o.goto.appdata;break;default:var r=o.goto.appdata.split(",");o.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outbounddial"===o.goto.appType.toLowerCase()&&(o.goto.prefix=o.goto.phone?o.goto.phone.split("$")[0]:void 0,o.goto.callerId=o.goto.callerID?"CALLERID(all)="+o.goto.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outboundDial"===o.goto.appType&&(o.goto.phone=a.cutdigits?(o.goto.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.goto.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.goto.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.goto.options+="U(xcally-mixmonitor-context)"):o.goto.options=o.goto.options.replace("U(xcally-mixmonitor-context)",""));if(o.goto.appType&&"custom"===o.goto.appType);else switch((o.goto.app||o.goto.appType).toLowerCase()){case"set":o.goto.appdata=o.goto.name+"="+o.goto.value;break;case"custom":break;default:e[0]=o.goto.context,e[1]=o.goto.extension,e[2]=o.goto.priority,o.goto.appdata=e.join(",")}l(o.goto)},o.closeDialog=l,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){o.contexts=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppgotoDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.hangup=angular.copy(n),o.hangup.appdata)switch(o.hangup.appType?o.hangup.appType.toLowerCase():o.hangup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.hangup.appdata.split(",");o.hangup.key=s[0],o.hangup.language=s[1],o.hangup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.hangup.appdata.split(",");o.hangup.accesskeyid=s[0],o.hangup.secretaccesskey=s[1],o.hangup.lexregion=s[2],o.hangup.botname=s[3],o.hangup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.hangup.appdata.split(",");o.hangup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.hangup.text=s.slice(1,s.length).join(",");break;case"message":o.hangup.text=o.hangup.appdata;break;case"set":o.hangup.name=o.hangup.appdata.split("=")[0],o.hangup.value=o.hangup.appdata.split("=")[1];break;case"agi":o.hangup.project=o.hangup.appdata;break;default:var r=o.hangup.appdata.split(",");o.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outbounddial"===o.hangup.appType.toLowerCase()&&(o.hangup.prefix=o.hangup.phone?o.hangup.phone.split("$")[0]:void 0,o.hangup.callerId=o.hangup.callerID?"CALLERID(all)="+o.hangup.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outboundDial"===o.hangup.appType&&(o.hangup.phone=a.cutdigits?(o.hangup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.hangup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.hangup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.hangup.options+="U(xcally-mixmonitor-context)"):o.hangup.options=o.hangup.options.replace("U(xcally-mixmonitor-context)",""));if(o.hangup.appType&&"custom"===o.hangup.appType);else switch((o.hangup.app||o.hangup.appType).toLowerCase()){case"set":o.hangup.appdata=o.hangup.name+"="+o.hangup.value;break;case"custom":break;default:e[0]=o.hangup.appdata,o.hangup.appdata=e.join(",")}l(o.hangup)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalApphangupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.internaldial=angular.copy(e),o.internaldial.appdata)switch(o.internaldial.appType?o.internaldial.appType.toLowerCase():o.internaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.internaldial.appdata.split(",");o.internaldial.key=s[0],o.internaldial.language=s[1],o.internaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.internaldial.appdata.split(",");o.internaldial.accesskeyid=s[0],o.internaldial.secretaccesskey=s[1],o.internaldial.lexregion=s[2],o.internaldial.botname=s[3],o.internaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.internaldial.appdata.split(",");o.internaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.internaldial.text=s.slice(1,s.length).join(",");break;case"message":o.internaldial.text=o.internaldial.appdata;break;case"set":o.internaldial.name=o.internaldial.appdata.split("=")[0],o.internaldial.value=o.internaldial.appdata.split("=")[1];break;case"agi":o.internaldial.project=o.internaldial.appdata;break;default:var r=o.internaldial.appdata.split(",");o.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outbounddial"===o.internaldial.appType.toLowerCase()&&(o.internaldial.prefix=o.internaldial.phone?o.internaldial.phone.split("$")[0]:void 0,o.internaldial.callerId=o.internaldial.callerID?"CALLERID(all)="+o.internaldial.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outboundDial"===o.internaldial.appType&&(o.internaldial.phone=a.cutdigits?(o.internaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.internaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.internaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.internaldial.options+="U(xcally-mixmonitor-context)"):o.internaldial.options=o.internaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.internaldial.appType&&"custom"===o.internaldial.appType);else switch((o.internaldial.app||o.internaldial.appType).toLowerCase()){case"set":o.internaldial.appdata=o.internaldial.name+"="+o.internaldial.value;break;case"custom":break;default:e[0]=o.internaldial.user,e[1]=o.internaldial.timeout,e[2]=o.internaldial.options,e[3]=o.internaldial.url,o.internaldial.appdata=e.join(",")}l(o.internaldial)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInternalAppintervalDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.playback=angular.copy(e),o.playback.appdata)switch(o.playback.appType?o.playback.appType.toLowerCase():o.playback.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.playback.appdata.split(",");o.playback.key=s[0],o.playback.language=s[1],o.playback.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.playback.appdata.split(",");o.playback.accesskeyid=s[0],o.playback.secretaccesskey=s[1],o.playback.lexregion=s[2],o.playback.botname=s[3],o.playback.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.playback.appdata.split(",");o.playback.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.playback.text=s.slice(1,s.length).join(",");break;case"message":o.playback.text=o.playback.appdata;break;case"set":o.playback.name=o.playback.appdata.split("=")[0],o.playback.value=o.playback.appdata.split("=")[1];break;case"agi":o.playback.project=o.playback.appdata;break;default:var r=o.playback.appdata.split(",");o.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outbounddial"===o.playback.appType.toLowerCase()&&(o.playback.prefix=o.playback.phone?o.playback.phone.split("$")[0]:void 0,o.playback.callerId=o.playback.callerID?"CALLERID(all)="+o.playback.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outboundDial"===o.playback.appType&&(o.playback.phone=a.cutdigits?(o.playback.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.playback.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.playback.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.playback.options+="U(xcally-mixmonitor-context)"):o.playback.options=o.playback.options.replace("U(xcally-mixmonitor-context)",""));if(o.playback.appType&&"custom"===o.playback.appType);else switch((o.playback.app||o.playback.appType).toLowerCase()){case"set":o.playback.appdata=o.playback.name+"="+o.playback.value;break;case"custom":break;default:e[0]=o.playback.appdata,e[1]=o.playback.options,o.playback.appdata=e.join(",")}l(o.playback)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppplaybackDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),o.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),o.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),o.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),o.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),o.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),o.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.options,e[2]=o.queue.URL,e[3]=o.queue.sound,e[4]=o.queue.timeout,e[5]=o.queue.agi,e[6]=o.queue.macro,e[7]=o.queue.gosub,e[8]=o.queue.rule,e[9]=o.queue.position,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.ringgroup=angular.copy(e),o.ringgroup.appdata)switch(o.ringgroup.appType?o.ringgroup.appType.toLowerCase():o.ringgroup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.ringgroup.appdata.split(",");o.ringgroup.key=s[0],o.ringgroup.language=s[1],o.ringgroup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.ringgroup.appdata.split(",");o.ringgroup.accesskeyid=s[0],o.ringgroup.secretaccesskey=s[1],o.ringgroup.lexregion=s[2],o.ringgroup.botname=s[3],o.ringgroup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.ringgroup.appdata.split(",");o.ringgroup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.ringgroup.text=s.slice(1,s.length).join(",");break;case"message":o.ringgroup.text=o.ringgroup.appdata;break;case"set":o.ringgroup.name=o.ringgroup.appdata.split("=")[0],o.ringgroup.value=o.ringgroup.appdata.split("=")[1];break;case"agi":o.ringgroup.project=o.ringgroup.appdata;break;default:var r=o.ringgroup.appdata.split(",");o.ringgroup.multipleUsers=r[0].split("&"),o.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outbounddial"===o.ringgroup.appType.toLowerCase()&&(o.ringgroup.prefix=o.ringgroup.phone?o.ringgroup.phone.split("$")[0]:void 0,o.ringgroup.callerId=o.ringgroup.callerID?"CALLERID(all)="+o.ringgroup.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outboundDial"===o.ringgroup.appType&&(o.ringgroup.phone=a.cutdigits?(o.ringgroup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.ringgroup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.ringgroup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.ringgroup.options+="U(xcally-mixmonitor-context)"):o.ringgroup.options=o.ringgroup.options.replace("U(xcally-mixmonitor-context)",""));if(o.ringgroup.appType&&"custom"===o.ringgroup.appType);else switch((o.ringgroup.app||o.ringgroup.appType).toLowerCase()){case"set":o.ringgroup.appdata=o.ringgroup.name+"="+o.ringgroup.value;break;case"custom":break;default:e[0]=o.ringgroup.multipleUsers.join("&"),e[1]=o.ringgroup.timeout,e[2]=o.ringgroup.options,e[3]=o.ringgroup.url,o.ringgroup.appdata=e.join(",")}l(o.ringgroup)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppringgroupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.set=angular.copy(e),o.set.appdata)switch(o.set.appType?o.set.appType.toLowerCase():o.set.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.set.appdata.split(",");o.set.key=s[0],o.set.language=s[1],o.set.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.set.appdata.split(",");o.set.accesskeyid=s[0],o.set.secretaccesskey=s[1],o.set.lexregion=s[2],o.set.botname=s[3],o.set.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.set.appdata.split(",");o.set.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.set.text=s.slice(1,s.length).join(",");break;case"message":o.set.text=o.set.appdata;break;case"set":o.set.name=o.set.appdata.split("=")[0],o.set.value=o.set.appdata.split("=")[1];break;case"agi":o.set.project=o.set.appdata;break;default:var r=o.set.appdata.split("=");o.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outbounddial"===o.set.appType.toLowerCase()&&(o.set.prefix=o.set.phone?o.set.phone.split("$")[0]:void 0,o.set.callerId=o.set.callerID?"CALLERID(all)="+o.set.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outboundDial"===o.set.appType&&(o.set.phone=a.cutdigits?(o.set.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.set.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.set.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.set.options+="U(xcally-mixmonitor-context)"):o.set.options=o.set.options.replace("U(xcally-mixmonitor-context)",""));if(o.set.appType&&"custom"===o.set.appType);else switch((o.set.app||o.set.appType).toLowerCase()){case"set":o.set.appdata=o.set.name+"="+o.set.value;break;case"custom":break;default:e[0]=o.set.name,e[1]=o.set.value,o.set.appdata=e.join("=")}l(o.set)},o.closeDialog=l,i.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalAppsetDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.voicemail=angular.copy(e),o.voicemail.appdata)switch(o.voicemail.appType?o.voicemail.appType.toLowerCase():o.voicemail.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.voicemail.appdata.split(",");o.voicemail.key=s[0],o.voicemail.language=s[1],o.voicemail.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.voicemail.appdata.split(",");o.voicemail.accesskeyid=s[0],o.voicemail.secretaccesskey=s[1],o.voicemail.lexregion=s[2],o.voicemail.botname=s[3],o.voicemail.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.voicemail.appdata.split(",");o.voicemail.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.voicemail.text=s.slice(1,s.length).join(",");break;case"message":o.voicemail.text=o.voicemail.appdata;break;case"set":o.voicemail.name=o.voicemail.appdata.split("=")[0],o.voicemail.value=o.voicemail.appdata.split("=")[1];break;case"agi":o.voicemail.project=o.voicemail.appdata;break;default:var r=o.voicemail.appdata.split(",");o.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outbounddial"===o.voicemail.appType.toLowerCase()&&(o.voicemail.prefix=o.voicemail.phone?o.voicemail.phone.split("$")[0]:void 0,o.voicemail.callerId=o.voicemail.callerID?"CALLERID(all)="+o.voicemail.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outboundDial"===o.voicemail.appType&&(o.voicemail.phone=a.cutdigits?(o.voicemail.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.voicemail.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.voicemail.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.voicemail.options+="U(xcally-mixmonitor-context)"):o.voicemail.options=o.voicemail.options.replace("U(xcally-mixmonitor-context)",""));if(o.voicemail.appType&&"custom"===o.voicemail.appType);else switch((o.voicemail.app||o.voicemail.appType).toLowerCase()){case"set":o.voicemail.appdata=o.voicemail.name+"="+o.voicemail.value;break;case"custom":break;default:e[0]=o.voicemail.voiceMail,e[1]=o.voicemail.options,o.voicemail.appdata=e.join(",")}l(o.voicemail)},o.closeDialog=l,i.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){o.voiceMails=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.internalroute=d||e.params.internalroute||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoInternalRoutes=function(){e.go("app.voice.internalroutes")},c.saveInternalRoute=function(){s.voiceExtension.update({id:c.internalroute.id},c.internalroute).$promise.then(function(){r.success({title:"InternalRoute updated!",msg:c.internalroute.name?c.internalroute.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","internalroute"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.internalroutes=r||{count:0,rows:[]},v.table="internalroutes",v.listOrder="",v.listOrderAsc=null,v.selectedInternalRoutes=[],v.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},v.editstate=function(e,t){n.go("app.voice.internalroutes.edit",{id:e.id,internalroute:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getInternalRoutes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceExtension.get(v.query,f).$promise},v.createOrEditInternalRoute=function(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:v.internalroutes.rows,license:v.license,setting:v.setting}})},v.deleteInternalRoute=A,v.exportSelectedInternalRoutes=function(){var e=angular.copy(v.selectedInternalRoutes);return v.selectedInternalRoutes=[],e},v.deleteSelectedInternalRoutes=function(e){var t=i.confirm().title("Are you sure want to delete the selected internalroutes?").htmlContent("<b>"+v.selectedInternalRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InternalRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedInternalRoutes.forEach(function(e){A(e)}),v.selectedInternalRoutes=[]})},v.deselectInternalRoutes=function(){v.selectedInternalRoutes=[]},v.selectAllInternalRoutes=function(){v.selectedInternalRoutes=v.internalroutes.rows},l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.internalroutes=e||{count:0,rows:[]}}function A(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(v.internalroutes.rows,{id:e.id}),v.internalroutes.count-=1,v.internalroutes.rows.length||v.getInternalRoutes(),c.success({title:"InternalRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getInternalRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","internalroutes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_MUSICONHOLD",u.musiconhold=angular.copy(r),u.musiconholds=s,u.newMusicOnHold=!1,u.musiconhold||(u.musiconhold={mode:"files"},u.title="VOICE.NEW_MUSICONHOLD",u.newMusicOnHold=!0),u.addNewMusicOnHold=function(){u.errors=[],l.voiceMusicOnHold.save(u.musiconhold).$promise.then(function(e){u.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:u.musiconhold.name?u.musiconhold.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.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.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMusicOnHold=function(){u.errors=[],l.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(e){var t=_.find(u.musiconholds,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MusicOnHold properly saved!",msg:u.musiconhold.name?u.musiconhold.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMusicOnHold=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceMusicOnHold.delete({id:u.musiconhold.id}).$promise.then(function(){_.remove(u.musiconholds,{id:u.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(u.musiconhold.name||"musiconhold")+" has been deleted!"}),p(u.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","musiconholds","musiconhold","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.musiconhold={},c.musiconholdMohSounds={count:0,rows:[]},c.selectedMusicOnHoldMohSounds=[],c.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},c.init=function(e){c.musiconhold=e,c.query.id=c.musiconhold.id,c.query.VoiceMusicOnHoldId=c.musiconhold.id,c.getMusicOnHoldMohSounds()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.voiceMusicOnHoldDownload=function(o,e,t){return l.sound.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="mohSound"+o.id,a=new Blob(t,{type:e.type});n=o.converted_format?o.save_name+"."+o.converted_format:o.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getMusicOnHoldMohSounds=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceMusicOnHold.getSounds(c.query,p).$promise},c.createOrEditMusicOnHoldMohSound=function(e,t){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:c.musiconhold,mohSound:t,mohSounds:c.musiconholdMohSounds.rows,license:null,setting:null}})},c.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(c.selectedMusicOnHoldMohSounds);return c.selectedMusicOnHoldMohSounds=[],e},c.deleteMusicOnHoldMohSound=g,c.deleteSelectedMusicOnHoldMohSounds=function(e){var t=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+c.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),c.selectedMusicOnHoldMohSounds=[]})},l.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){c.sounds=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.musiconholdMohSounds=e||{count:0,rows:[]}}function g(e){l.voiceMusicOnHold.removeSound({id:n.params.id,id2:e.id}).$promise.then(function(){_.remove(c.musiconholdMohSounds.rows,{id:e.id}),c.musiconholdMohSounds.count-=1,c.musiconholdMohSounds.rows.length||c.getMusicOnHoldMohSounds(),r.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMusicOnHoldMohSounds())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_MOHSOUND",u.mohSound=angular.copy(r),u.mohSounds=s,u.newMohSound=!1,u.mohSound||(u.mohSound={},u.title="VOICE.NEW_MOHSOUND",u.newMohSound=!0),t.params.id&&(u.mohSound.VoiceMusicOnHoldId=t.params.id),u.addNewMohSound=function(){u.errors=[],l.voiceMusicOnHold.addSound({id:t.params.id},u.mohSound).$promise.then(function(e){u.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:u.mohSound.name?u.mohSound.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.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.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMohSound=function(){u.errors=[],l.voiceMusicOnHold.update({id:u.mohSound.id},u.mohSound).$promise.then(function(e){var t=_.find(u.mohSounds,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MohSound properly saved!",msg:u.mohSound.name?u.mohSound.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMohSound=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceMusicOnHold.delete({id:u.mohSound.id}).$promise.then(function(){_.remove(u.mohSounds,{id:u.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(u.mohSound.name||"mohSound")+" has been deleted!"}),p(u.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){o.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","$q","toasty","mohSounds","mohSound","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.musiconhold=d||e.params.musiconhold||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds")},c.saveMusicOnHold=function(){s.voiceMusicOnHold.update({id:c.musiconhold.id},c.musiconhold).$promise.then(function(){r.success({title:"MusicOnHold updated!",msg:c.musiconhold.name?c.musiconhold.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","musiconhold"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.musiconholds=r||{count:0,rows:[]},v.table="musiconholds",v.listOrder="",v.listOrderAsc=null,v.selectedMusicOnHolds=[],v.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},v.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMusicOnHolds=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceMusicOnHold.get(v.query,f).$promise},v.createOrEditMusicOnHold=function(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:v.musiconholds.rows,license:v.license,setting:v.setting}})},v.deleteMusicOnHold=A,v.exportSelectedMusicOnHolds=function(){var e=angular.copy(v.selectedMusicOnHolds);return v.selectedMusicOnHolds=[],e},v.deleteSelectedMusicOnHolds=function(e){var t=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+v.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMusicOnHolds.forEach(function(e){A(e)}),v.selectedMusicOnHolds=[]})},v.deselectMusicOnHolds=function(){v.selectedMusicOnHolds=[]},v.selectAllMusicOnHolds=function(){v.selectedMusicOnHolds=v.musiconholds.rows};var h=!0,b=1;function f(e){v.musiconholds=e||{count:0,rows:[]}}function A(e){l.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(v.musiconholds.rows,{id:e.id}),v.musiconholds.count-=1,v.musiconholds.rows.length||v.getMusicOnHolds(),c.success({title:"MusicOnHold deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","musiconholds","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,h,l,d,c){var b=this;function m(){var e=2,t=[];t.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"CDR(destination)="+(b.outboundroute.cutdigits?"${EXTEN:"+b.outboundroute.cutdigits+"}":"${EXTEN}"),context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+b.outboundroute.id,context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),b.outboundroute.hasOwnProperty("recordingFormat")&&"none"!==b.outboundroute.recordingFormat&&(t.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_FORMAT="+b.outboundroute.recordingFormat||"wav",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}));for(var n=0,a=0;n<b.outboundrouteApps.rows.length;n++,a=0){var i=b.outboundrouteApps.rows[n],o=[],s=[];i.intervals="*,*,*,*"!==i.interval?[i.interval]:i.IntervalId?_.map(_.filter(b.intervals.rows,{IntervalId:i.IntervalId}),"interval"):[],i.context=b.outboundroute.context,i.exten=b.outboundroute.exten,i.type&&(i.type=i.type.toLowerCase()),i.hasOwnProperty("tag")&&i.tag&&"--"!==i.tag&&o.push({type:i.type.toLowerCase(),app:"Set",appdata:"CDR(tag)="+i.tag,context:b.outboundroute.context,exten:b.outboundroute.exten,priority:i.intervals.length+e+a++,VoiceExtensionId:b.outboundroute.id}),i.callerID?o.push({type:i.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)="+i.callerID+")",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:i.intervals.length+e+a++,VoiceExtensionId:b.outboundroute.id}):o.push({type:i.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No number available)",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:i.intervals.length+e+a++,VoiceExtensionId:b.outboundroute.id});for(var r=0;r<i.intervals.length;r++){var l=e+i.intervals.length,d=r===i.intervals.length-1?e+o.length+s.length+2:e+r+1;o.splice(r,0,{type:"outbound",app:"GotoIfTime",appdata:i.intervals[r]+"?"+b.outboundroute.context+",${EXTEN},"+l+":"+b.outboundroute.context+",${EXTEN},"+d,exten:b.outboundroute.exten,context:b.outboundroute.context,priority:e+r,VoiceExtensionId:b.outboundroute.id})}if("outboundDial"===i.appType){var c=_.find(b.apps,{appType:"outboundDial"});if(c&&c.fields){for(var m={},u=i.appdata.split(","),p=[],g=0,v=c.fields.length;g<v;g++)if(c.fields[g].hasOwnProperty("param"))switch(c.fields[g].name){case"trunk":m.trunk=u[c.fields[g].param].split("/")[1],m.phone=u[c.fields[g].param].split("/")[2],m.prefix=m.phone?m.phone.split("$")[0]:void 0,m.phone=b.outboundroute.cutdigits?(m.prefix||"")+"${EXTEN:"+b.outboundroute.cutdigits+"}":(m.prefix||"")+"${EXTEN}",p[c.fields[g].param]=["SIP",m.trunk,m.phone].join("/");break;case"options":m.options=u[c.fields[g].param],"none"!==b.outboundroute.recordingFormat?m.options.indexOf("U(xcally-mixmonitor-context)")<0&&(m.options+="U(xcally-mixmonitor-context)"):m.options=m.options.replace("U(xcally-mixmonitor-context)",""),p[c.fields[g].param]=m.options;break;default:p[c.fields[g].param]=u[c.fields[g].param]}i.appdata=p.join(",")}}i.priority=o.length?_.last(o).priority+1:e,e=(s.length?_.last(s).priority:i.priority)+1,t=_.concat(t,o,[i],s)}t.push({type:"outbound",app:"Hangup",exten:b.outboundroute.exten,context:b.outboundroute.context,priority:e,VoiceExtensionId:b.outboundroute.id}),h.voiceExtension.addApplications({id:b.outboundroute.id},_.sortBy(t,"priority")).$promise.then(function(e){b.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function u(e){a.hide(e)}b.errors=[],b.setting=c,b.license=d,b.passwordPattern=b.setting&&b.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",b.title="VOICE.EDIT_OUTBOUNDROUTE",b.outboundroute=angular.copy(r),b.outboundroutes=s,b.newOutboundRoute=!1,b.outboundrouteApps={count:0,rows:[]},b.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!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",nolimit:!0}}],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",ngPattern:"/"(.*)"\\s<(.*?)>$/",help:!0},{title:"Prefix",name:"prefix",type:"text"},{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}),b.outboundroute||(b.outboundroute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},b.title="VOICE.NEW_OUTBOUNDROUTE",b.newOutboundRoute=!0),b.addNewOutboundRoute=function(){b.errors=[],h.voiceExtension.save(b.outboundroute).$promise.then(function(e){b.outboundroutes.unshift(e.toJSON()),o.success({title:"OutboundRoute properly created",msg:b.outboundroute.name?b.outboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.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.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.saveOutboundRoute=function(){b.errors=[],h.voiceExtension.update({id:b.outboundroute.id},b.outboundroute).$promise.then(function(e){var t=_.find(b.outboundroutes,{id:e.id});t&&(_.merge(t,_.pick(e.toJSON(),_.keys(t))),h.voiceExtension.get({sort:"priority",VoiceExtensionId:t.id,isApp:!0,nolimit:!0}).$promise.then(function(e){b.outboundrouteApps=e,m()})),o.success({title:"OutboundRoute properly saved!",msg:b.outboundroute.name?b.outboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.deleteOutboundRoute=function(n){h.voicePrefix.get({VoiceExtensionId:r.id}).$promise.then(function(e){if(e&&e.rows&&0<e.rows.length)return o.error({title:"Outbound route not deleted!",msg:"You can't remove an outbound route associated to an out prefix"});b.errors=[];var t=a.confirm().title("Are you sure?").content("The outboundroute will be deleted.").ariaLabel("Delete OutboundRoute").ok("Delete").cancel("Cancel").targetEvent(n);a.show(t).then(function(){h.voiceExtension.delete({id:b.outboundroute.id}).$promise.then(function(){_.remove(b.outboundroutes,{id:b.outboundroute.id}),o.success({title:"OutboundRoute properly deleted!",msg:(b.outboundroute.name||"outboundroute")+" has been deleted!"}),u(b.outboundroute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})})},b.getDateFromString=function(e){return null===e?void 0:new Date(e)},b.rewriteRouting=m,b.closeDialog=u,h.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){b.contexts=e.rows||[]}).catch(function(e){o.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","$q","toasty","outboundroutes","outboundroute","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(f,i,a,o,t,e,n){var A=this;function s(e,t){if(A.outboundrouteApps.rows.length){var n=A.outboundrouteApps.rows[t]?A.outboundrouteApps.rows[t]:A.outboundrouteApps.rows[0];i.show({controller:"EditoutboundApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundrouteApp:n,outboundroute:A.outboundroute}}).then(function(e){e&&(e.id?A.outboundrouteApps.rows[t]=e:A.outboundrouteApps.rows.splice(t,0,e),r())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e){var t=2,n=[];n.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"CDR(destination)="+(A.outboundroute.cutdigits?"${EXTEN:"+A.outboundroute.cutdigits+"}":"${EXTEN}"),context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"CDR(routeid)="+A.outboundroute.id,context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id});var a=t++;n.push({type:"outbound",app:"ExecIf",appdata:"$[${LEN(${CDR(prefix)})} > 0]?Goto("+(a+2)+"):Goto("+(a+1)+")",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:a,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:A.outboundroute.cutdigits?"CDR(prefix)=${EXTEN:0:"+A.outboundroute.cutdigits+"}":"CDR(prefix)=noprefix",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+A.outboundroute.id,context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),A.outboundroute.hasOwnProperty("recordingFormat")&&"none"!==A.outboundroute.recordingFormat&&(n.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_FORMAT="+A.outboundroute.recordingFormat||"wav",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}));for(var i=0,o=0;i<A.outboundrouteApps.rows.length;i++,o=0){var s=A.outboundrouteApps.rows[i],r=[],l=[];s.intervals="*,*,*,*"!==s.interval?[s.interval]:s.IntervalId?_.map(_.filter(A.intervals.rows,{IntervalId:s.IntervalId}),"interval"):[],s.context=A.outboundroute.context,s.exten=A.outboundroute.exten,s.type&&(s.type=s.type.toLowerCase()),s.hasOwnProperty("tag")&&s.tag&&"--"!==s.tag&&r.push({type:s.type.toLowerCase(),app:"Set",appdata:"CDR(tag)="+s.tag,context:A.outboundroute.context,exten:A.outboundroute.exten,priority:s.intervals.length+t+o++,VoiceExtensionId:A.outboundroute.id}),s.callerID?r.push({type:s.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)="+s.callerID+")",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:s.intervals.length+t+o++,VoiceExtensionId:A.outboundroute.id}):r.push({type:s.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No number available)",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:s.intervals.length+t+o++,VoiceExtensionId:A.outboundroute.id});for(var d=0;d<s.intervals.length;d++){var c=t+s.intervals.length,m=d===s.intervals.length-1?t+r.length+l.length+2:t+d+1;r.splice(d,0,{type:"outbound",app:"GotoIfTime",appdata:s.intervals[d]+"?"+A.outboundroute.context+",${EXTEN},"+c+":"+A.outboundroute.context+",${EXTEN},"+m,exten:A.outboundroute.exten,context:A.outboundroute.context,priority:t+d,VoiceExtensionId:A.outboundroute.id})}if(e&&"outboundDial"===s.appType){var u=_.find(A.apps,{appType:"outboundDial"});if(u&&u.fields){for(var p={},g=s.appdata.split(","),v=[],h=0,b=u.fields.length;h<b;h++)if(u.fields[h].hasOwnProperty("param"))switch(u.fields[h].name){case"trunk":p.trunk=g[u.fields[h].param].split("/")[1],p.phone=g[u.fields[h].param].split("/")[2],p.prefix=p.phone?p.phone.split("$")[0]:void 0,p.phone=A.outboundroute.cutdigits?(p.prefix||"")+"${EXTEN:"+A.outboundroute.cutdigits+"}":(p.prefix||"")+"${EXTEN}",v[u.fields[h].param]=["SIP",p.trunk,p.phone].join("/");break;case"options":p.options=g[u.fields[h].param],"none"!==A.outboundroute.recordingFormat?p.options.indexOf("U(xcally-mixmonitor-context)")<0&&(p.options+="U(xcally-mixmonitor-context)"):p.options=p.options.replace("U(xcally-mixmonitor-context)",""),v[u.fields[h].param]=p.options;break;default:v[u.fields[h].param]=g[u.fields[h].param]}s.appdata=v.join(",")}}s.priority=r.length?_.last(r).priority+1:t,t=(l.length?_.last(l).priority:s.priority)+1,n=_.concat(n,r,[s],l)}n.push({type:"outbound",app:"Hangup",exten:A.outboundroute.exten,context:A.outboundroute.context,priority:t,VoiceExtensionId:A.outboundroute.id}),f.voiceExtension.addApplications({id:A.outboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){A.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function l(e){A.outboundrouteApps=e||{count:0,rows:[]}}A.currentUser=n.getCurrentUser(),A.outboundroute={},A.outboundrouteApps={count:0,rows:[]},A.selectedOutboundRouteApps=[],A.query={sort:"priority"},A.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!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",nolimit:!0}}],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",help:!0},{title:"Prefix",name:"prefix",type:"text"},{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}),A.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},A.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){r()}},A.init=function(e){A.outboundroute=e,t.on("voiceExtension:update",A.onVoiceExtensionUpdate),A.query.VoiceExtensionId=e.id,A.query.isApp=!0,A.query.nolimit=!0,A.getOutboundRouteApps(),A.getIntervals()},A.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){A.outboundrouteApps.rows.splice(t,1),r()},function(){console.log("CANCEL")})},A.getOutboundRouteApps=function(){A.promise=f.voiceExtension.get(A.query,l).$promise},A.editOutboundRouteApp=s,A.editInterval=function(e,t){if(A.outboundrouteApps.rows.length){var n=A.outboundrouteApps.rows[t]?A.outboundrouteApps.rows[t]:A.outboundrouteApps.rows[0];i.show({controller:"EditoutboundAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,r())})}},A.deleteOutboundRouteApp=function(e){_.remove(A.outboundrouteApps.rows,{id:e.id}),r(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},A.deleteSelectedOutboundRouteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+A.selectedOutboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOutboundRouteApps.forEach(function(e){_.remove(A.outboundrouteApps.rows,{id:e.id})}),A.selectedOutboundRouteApps=[],r()})},A.rewriteRouting=r,A.getIntervals=function(){return f.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){A.intervals=e}).catch(function(e){console.error(e)})},A.onVoiceExtensionUpdate=function(e){e.VoiceExtensionId===A.outboundroute.id&&r(!0)},e.$on("$destroy",function(){t.removeAllListeners("voiceExtension:update")})}e.$inject=["api","$mdDialog","$document","toasty","socket","$scope","Auth"],angular.module("app.voice").controller("OutboundRouteActionsController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.custom=angular.copy(n),o.custom.appdata)switch(o.custom.appType?o.custom.appType.toLowerCase():o.custom.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.custom.appdata.split(",");o.custom.key=s[0],o.custom.language=s[1],o.custom.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.custom.appdata.split(",");o.custom.accesskeyid=s[0],o.custom.secretaccesskey=s[1],o.custom.lexregion=s[2],o.custom.botname=s[3],o.custom.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.custom.appdata.split(",");o.custom.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.custom.text=s.slice(1,s.length).join(",");break;case"message":o.custom.text=o.custom.appdata;break;case"set":o.custom.name=o.custom.appdata.split("=")[0],o.custom.value=o.custom.appdata.split("=")[1];break;case"agi":o.custom.project=o.custom.appdata;break;default:var r=o.custom.appdata.split(",");o.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outbounddial"===o.custom.appType.toLowerCase()&&(o.custom.prefix=o.custom.phone?o.custom.phone.split("$")[0]:void 0,o.custom.callerId=o.custom.callerID?"CALLERID(all)="+o.custom.callerID:void 0),o.saveOutboundRouteApp=function(){o.errors=[];var e=[];o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outboundDial"===o.custom.appType&&(o.custom.phone=a.cutdigits?(o.custom.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.custom.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.custom.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.custom.options+="U(xcally-mixmonitor-context)"):o.custom.options=o.custom.options.replace("U(xcally-mixmonitor-context)",""));if(o.custom.appType&&"custom"===o.custom.appType);else switch((o.custom.app||o.custom.appType).toLowerCase()){case"set":o.custom.appdata=o.custom.name+"="+o.custom.value;break;case"custom":break;default:e[0]=o.custom.app,e[1]=o.custom.appdata,o.custom.appdata=e.join(",")}l(o.custom)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","outboundrouteApp","outboundroute","api"],angular.module("app.voice").controller("EditoutboundAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditoutboundAppintervalDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.outbounddial=angular.copy(e),o.outbounddial.appdata)switch(o.outbounddial.appType?o.outbounddial.appType.toLowerCase():o.outbounddial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.outbounddial.appdata.split(",");o.outbounddial.key=s[0],o.outbounddial.language=s[1],o.outbounddial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.outbounddial.appdata.split(",");o.outbounddial.accesskeyid=s[0],o.outbounddial.secretaccesskey=s[1],o.outbounddial.lexregion=s[2],o.outbounddial.botname=s[3],o.outbounddial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.outbounddial.appdata.split(",");o.outbounddial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.outbounddial.text=s.slice(1,s.length).join(",");break;case"message":o.outbounddial.text=o.outbounddial.appdata;break;case"set":o.outbounddial.name=o.outbounddial.appdata.split("=")[0],o.outbounddial.value=o.outbounddial.appdata.split("=")[1];break;case"agi":o.outbounddial.project=o.outbounddial.appdata;break;default:var r=o.outbounddial.appdata.split(",");o.outbounddial.trunk=r[0].split("/")[1],o.outbounddial.phone=r[0].split("/")[2],o.outbounddial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.outbounddial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.outbounddial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.outbounddial.type&&"outbound"===o.outbounddial.type.toLowerCase()&&"outbounddial"===o.outbounddial.appType.toLowerCase()&&(o.outbounddial.prefix=o.outbounddial.phone?o.outbounddial.phone.split("$")[0]:void 0,o.outbounddial.callerId=o.outbounddial.callerID?"CALLERID(all)="+o.outbounddial.callerID:void 0),o.saveOutboundRouteApp=function(){o.errors=[];var e=[];o.outbounddial.type&&"outbound"===o.outbounddial.type.toLowerCase()&&"outboundDial"===o.outbounddial.appType&&(o.outbounddial.phone=a.cutdigits?(o.outbounddial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.outbounddial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.outbounddial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.outbounddial.options+="U(xcally-mixmonitor-context)"):o.outbounddial.options=o.outbounddial.options.replace("U(xcally-mixmonitor-context)",""));if(o.outbounddial.appType&&"custom"===o.outbounddial.appType);else switch((o.outbounddial.app||o.outbounddial.appType).toLowerCase()){case"set":o.outbounddial.appdata=o.outbounddial.name+"="+o.outbounddial.value;break;case"custom":break;default:e[0]=["SIP",o.outbounddial.trunk,o.outbounddial.phone].join("/"),e[1]=o.outbounddial.timeout,e[2]=o.outbounddial.options,e[3]=o.outbounddial.url,o.outbounddial.appdata=e.join(",")}l(o.outbounddial)},o.closeDialog=l,i.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){o.trunks=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.tag.get({fields:"name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.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","outboundroute","api"],angular.module("app.voice").controller("EditoutboundAppoutbounddialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.outboundroute=d||e.params.outboundroute||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoOutboundRoutes=function(){e.go("app.voice.outboundroutes")},c.saveOutboundRoute=function(){s.voiceExtension.update({id:c.outboundroute.id},c.outboundroute).$promise.then(function(){r.success({title:"OutboundRoute updated!",msg:c.outboundroute.name?c.outboundroute.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","outboundroute"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.outboundroutes=r||{count:0,rows:[]},v.table="outboundroutes",v.listOrder="",v.listOrderAsc=null,v.selectedOutboundRoutes=[],v.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,recordingFormat,cutdigits,description",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},v.arrayrecordingFormat=_.keyBy([{option:"none",value:"'none'"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.outboundroutes.edit",{id:e.id,outboundroute:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getOutboundRoutes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceExtension.get(v.query,f).$promise},v.createOrEditOutboundRoute=function(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:v.outboundroutes.rows,license:v.license,setting:v.setting}})},v.deleteOutboundRoute=A,v.exportSelectedOutboundRoutes=function(){var e=angular.copy(v.selectedOutboundRoutes);return v.selectedOutboundRoutes=[],e},v.deleteSelectedOutboundRoutes=function(e){var t=i.confirm().title("Are you sure want to delete the selected outboundroutes?").htmlContent("<b>"+v.selectedOutboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete OutboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOutboundRoutes.forEach(function(e){A(e)}),v.selectedOutboundRoutes=[]})},v.deselectOutboundRoutes=function(){v.selectedOutboundRoutes=[]},v.selectAllOutboundRoutes=function(){v.selectedOutboundRoutes=v.outboundroutes.rows},l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.outboundroutes=e||{count:0,rows:[]}}function A(t){l.voicePrefix.get({VoiceExtensionId:t.id}).$promise.then(function(e){if(e&&e.rows&&0<e.rows.length)return c.error({title:"Outbound route not deleted!",msg:"You can't remove an outbound route associated to an out prefix"});l.voiceExtension.delete({id:t.id}).$promise.then(function(){_.remove(v.outboundroutes.rows,{id:t.id}),v.outboundroutes.count-=1,v.outboundroutes.rows.length||v.getOutboundRoutes(),c.success({title:"OutboundRoute deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getOutboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","outboundroutes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c,m){var u=this,p=!0;function g(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.contacts:"+u.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(u.query=_.merge(e.query,_.omit(u.query,["sort","limit","page"])),u.query=_.omit(u.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){u.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){u.queues=e||{count:0,rows:[]},u.queuesMap=_.mapValues(_.keyBy(u.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){u.getContacts()})}function v(e){u.contacts=e||{count:0,rows:[]},p=!1,u.refresh=!0}u.showTooltip=!1,u.refresh=!0,u.disable=[],u.agents=m||[],u.currentUser=r.getCurrentUser(),u.localizationMap=c,u.pickerModel={dateStart:null,dateEnd:null},u.queues={},u.contacts={count:0,rows:[]},u.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},u.clearAll=function(){u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel={dateStart:null,dateEnd:null},u.getContacts()},u.getContacts=function(){u.refresh=!1,u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel.dateStart&&!p&&(u.query.dateStart=u.pickerModel.dateStart,u.query.dateEnd=u.pickerModel.dateEnd);u.query.queue=u.query.queue,u.query.offset=(u.query.page-1)*u.query.limit,!r.hasRole("admin")&&_.isNil(u.query.queue)&&(u.query.queue=_.map(u.queues.rows,"name").join());i.localStorage.setItem("motion2.realtime.abandoned.voice.contacts:"+u.currentUser.id,JSON.stringify({query:_.omit(u.query,"queue")})),u.promise=s.voiceQueueReport.getVoiceQueuesReport(u.query,v).$promise},u.refreshContacts=function(){u.showTooltip=!1,u.getContacts()},u.onInit=g,u.assignedA=function(e,t){e&&(u.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:t?t.name:null,assigned:!!t}).$promise.catch(function(e){console.log(e)}).finally(function(){u.disable[e.id]=!1}))},u.disposed=function(e,t){e&&s.voiceQueueReport.update({id:e.id,disposition:t||null}).$promise.catch(function(e){console.log(e)})},u.onSavevoiceQueueReport=function(e){e&&u.queuesMap&&"inbound"===e.type&&u.queuesMap[e.queue]&&(u.showTooltip=!0)},u.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(u.contacts.rows,["id",e.id]);0<=t&&_.merge(u.contacts.rows[t],e)}},l.onWithoutApply("voiceQueueReport:save",u.onSavevoiceQueueReport),l.on("voiceQueueReport:update",u.onUpdatevoiceQueueReport),g();var h=!0,b=1;e.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=b),u.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory","agents"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o){var s=this;s.calls=i||{rows:[],count:0},s.query={limit:10,page:1},s.channelStatus=o.channelStatusOut,s.onSave=function(e){var t=_.find(s.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",t?_.merge(t,e):e.channel&&s.calls.rows.push(e)},s.onRemove=function(e){var t=_.findIndex(s.calls.rows,{channel:e.channel});0<=t&&(s.calls.rows[t].status="hangup");n(function(){s.calls.rows.splice(t,1)},5e3)},a.on("voice_outbound_channel:save",s.onSave),a.on("voice_outbound_channel:remove",s.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,a,n,i,o,s,r,l,d){var c=this;c.agents=n||{count:0,rows:[]},c.queues=i?_.keyBy(i.rows?i.rows:[],"name"):{},c.rpcVoiceQueuesChannelsTmp=o?_.keyBy(o.rows?_.filter(o.rows,{type:"inbound"}):[],"uniqueid"):{},c.rpcVoiceQueuesChannels={},c.queryChannels={limit:10,page:1},c.getSize=function(e){return _.size(e)},c.$onInit=function(){_.forIn(c.rpcVoiceQueuesChannelsTmp,function(e,t){_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[t]=e)})},c.onSave=function(e){"inbound"===e.type&&_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[e.uniqueid]=e)},c.onRemove=function(e){c.rpcVoiceQueuesChannels[e.uniqueid]&&delete c.rpcVoiceQueuesChannels[e.uniqueid]},c.hangup=function(t){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:t}).$promise.then(function(e){d.success({title:"Channel "+t+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToAgent=function(t,e,n){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e,context:n}).$promise.then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToNumber=function(e,t){var n=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(n).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",c.onSave),r.on("voice_queue_channel:remove",c.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r){var l=this,d=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function c(){_.forIn(l.queues,function(e,t){l.rpcQueues[t]&&_.merge(e,_.pick(l.rpcQueues[t],d))})}l.count=a.count,l.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},r.hasRole("admin")?l.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:l.query={id:r.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},l.success=p,l.getQueues=function(){l.query.offset=(l.query.page-1)*l.query.limit,r.hasRole("admin")?l.promise=o.voiceQueue.get(l.query,p).$promise:l.promise=o.user.getQueues(l.query,p).$promise},l.onSave=function(e){l.queues[e.id]&&_.merge(l.queues[e.id],_.pick(e,d))},l.$onInit=c,s.onWithoutApply("voice_queue:save",l.onSave),l.interval=t(function(){},999);var m=!0,u=1;function p(e){l.count=e.count,l.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},c()}e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=u),l.getQueues())}),e.$on("$destroy",function(){s.removeAllListeners("voice_queue:save"),l.interval&&t.cancel(l.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.voiceQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].VoiceQueueId].paused++,u.queues[e[t].rows[n].VoiceQueueId].loggedInDb++,u.queues[e[t].rows[n].VoiceQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].VoiceQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.voiceQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditVoiceQueue=function(e,t){a.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(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.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:u.queues?u.queues.rows:[],realtime:!0}})},u.updateQueue=function(e){return l.voiceQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.VoiceQueueId]&&(u.queues[e.VoiceQueueId].loggedInDb+=1,u.queues[e.VoiceQueueId].agents[e.UserId]=e.VoiceQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.VoiceQueueId]&&0<u.queues[e.VoiceQueueId].loggedInDb&&(u.queues[e.VoiceQueueId].loggedInDb-=1,delete u.queues[e.VoiceQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.onWithoutApply("voice_queue:save",u.onSave),u.interval=o(function(){},999),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("voice_queue:save"),u.interval&&o.cancel(u.interval),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){var a=this;switch(t.disconnect(),t.connect(),a.selectedTab=0,n.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.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;break;default:a.selectedTab=0,n.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.voice.realtime.agents");break;case 1:n.go("app.voice.realtime.telephones");break;case 2:n.go("app.voice.realtime.trunks");break;case 3:n.go("app.voice.realtime.queues");break;case 4:n.go("app.voice.realtime.queue_calls");break;case 5:n.go("app.voice.realtime.abandonedcalls");break;case 6:n.go("app.voice.realtime.queue_params");break;case 7:n.go("app.voice.realtime.outbound_calls");break;default:n.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r){var l=this,d=["fullname","internal","state","status"];function c(){_.forIn(l.telephones,function(e,t){l.rpcTelephones[t]&&_.merge(e,_.pick(l.rpcTelephones[t],d))})}l.count=a.count,l.attributes=["fullname","internal","state","status","address"],l.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},l.statusClass=r.status,l.stateClass=r.state,l.success=p,l.$onInit=c,l.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},l.getTelephones=function(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.user.get(l.query,p).$promise},l.onSave=function(e){l.telephones[e.id]&&_.merge(l.telephones[e.id],_.pick(e,d))},s.on("telephone:save",l.onSave);var m=!0,u=1;function p(e){l.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},c()}e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=u),l.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,n,t,a,i,o,s,r,l){var d=this,c=["status","stateRegistry","registry","host","port","internal","state","status"];function m(){for(var e,t=0;t<d.trunks.length;t+=1)0<=(e=_.findIndex(d.rpcTrunks,["id",d.trunks[t].id]))&&_.merge(d.trunks[t],_.pick(d.rpcTrunks[e],c))}function u(e,t,n){0<=t&&_.merge(e[t],_.pick(n,c))}d.count=a.count,d.trunks=a?a.rows:[],d.rpcTrunks=i&&i.rows?i.rows:[],d.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},d.statusClass=r.status,d.stateClass=r.state,d.success=v,d.$onInit=m,d.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},d.getTrunks=function(){d.query.offset=(d.query.page-1)*d.query.limit,d.promise=o.trunk.get(d.query,v).$promise},d.goToTrunk=function(e,t){l.go("app.tools.trunks.edit",{id:t.id})},d.onSave=function(e){var t=_.findIndex(d.trunks,["id",e.id]),n=_.findIndex(d.rpcTrunks,["id",e.id]);u(d.trunks,t,e),u(d.rpcTrunks,n,e)},s.on("trunk:save",d.onSave);var p=!0,g=1;function v(e){d.count=e.count,d.trunks=e&&e.rows?e.rows:[],m()}e.$watch("vm.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=d.query.page),e!==t&&(d.query.page=1),e||(d.query.page=g),d.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICEMAIL",u.voicemail=angular.copy(r),u.voicemails=s,u.newVoicemail=!1,u.voicemail||(u.voicemail={attach:"no"},u.title="VOICE.NEW_VOICEMAIL",u.newVoicemail=!0),u.addNewVoicemail=function(){u.errors=[],l.voiceMail.save(u.voicemail).$promise.then(function(e){u.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:u.voicemail.name?u.voicemail.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.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.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoicemail=function(){u.errors=[],l.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(e){var t=_.find(u.voicemails,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Voicemail properly saved!",msg:u.voicemail.name?u.voicemail.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoicemail=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceMail.delete({id:u.voicemail.id}).$promise.then(function(){_.remove(u.voicemails,{id:u.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(u.voicemail.name||"voicemail")+" has been deleted!"}),p(u.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voicemails","voicemail","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.voicemail={},c.voicemailMessages={count:0,rows:[]},c.selectedVoicemailMessages=[],c.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},c.init=function(e){c.voicemail=e,c.query.id=c.voicemail.id,c.getVoicemailMessages()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.voiceMailMessageDownload=function(o,e,t){return l.voiceMailMessage.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="message"+o.id,a=new Blob(t,{type:e.type});n=o.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getVoicemailMessages=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceMail.getMessages(c.query,p).$promise},c.createOrEditVoicemailMessage=function(e,t){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:c.voicemail,message:t,messages:c.voicemailMessages.rows,license:null,setting:null}})},c.exportSelectedVoicemailMessages=function(){var e=angular.copy(c.selectedVoicemailMessages);return c.selectedVoicemailMessages=[],e},c.deleteVoicemailMessage=g,c.deleteSelectedVoicemailMessages=function(e){var t=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+c.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedVoicemailMessages.forEach(function(e){g(e)}),c.selectedVoicemailMessages=[]})};var m=!0,u=1;function p(e){c.voicemailMessages=e||{count:0,rows:[]}}function g(e){l.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(c.voicemailMessages.rows,{id:e.id}),c.voicemailMessages.count-=1,c.voicemailMessages.rows.length||c.getVoicemailMessages(),r.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getVoicemailMessages())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.voicemail=d||e.params.voicemail||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoVoicemails=function(){e.go("app.voice.voicemails")},c.saveVoicemail=function(){s.voiceMail.update({id:c.voicemail.id},c.voicemail).$promise.then(function(){r.success({title:"Voicemail updated!",msg:c.voicemail.name?c.voicemail.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","voicemail"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voicemails=r||{count:0,rows:[]},v.table="voicemails",v.listOrder="",v.listOrderAsc=null,v.selectedVoicemails=[],v.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},v.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.voicemails.edit",{id:e.id,voicemail:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVoicemails=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceMail.get(v.query,f).$promise},v.createOrEditVoicemail=function(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:v.voicemails.rows,license:v.license,setting:v.setting}})},v.deleteVoicemail=A,v.exportSelectedVoicemails=function(){var e=angular.copy(v.selectedVoicemails);return v.selectedVoicemails=[],e},v.deleteSelectedVoicemails=function(e){var t=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+v.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoicemails.forEach(function(e){A(e)}),v.selectedVoicemails=[]})},v.deselectVoicemails=function(){v.selectedVoicemails=[]},v.selectAllVoicemails=function(){v.selectedVoicemails=v.voicemails.rows};var h=!0,b=1;function f(e){v.voicemails=e||{count:0,rows:[]}}function A(e){l.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(v.voicemails.rows,{id:e.id}),v.voicemails.count-=1,v.voicemails.rows.length||v.getVoicemails(),c.success({title:"Voicemail deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicemails","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICEPREFIX",u.voicePrefix=angular.copy(r),u.voicePrefixes=s,u.newvoicePrefix=!1,u.voicePrefix||(u.voicePrefix={},u.title="VOICE.NEW_VOICEPREFIX",u.newvoicePrefix=!0),u.addNewvoicePrefix=function(){u.errors=[],l.voicePrefix.save(u.voicePrefix).$promise.then(function(e){u.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:u.voicePrefix.name?u.voicePrefix.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.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.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savevoicePrefix=function(){u.errors=[],l.voicePrefix.update({id:u.voicePrefix.id},u.voicePrefix).$promise.then(function(e){var t=_.find(u.voicePrefixes,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"voicePrefix properly saved!",msg:u.voicePrefix.name?u.voicePrefix.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var t=0;t<e.data.errors.length;t++)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.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletevoicePrefix=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voicePrefix.delete({id:u.voicePrefix.id}).$promise.then(function(){_.remove(u.voicePrefixes,{id:u.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(u.voicePrefix.name||"voicePrefix")+" has been deleted!"}),p(u.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){o.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","$q","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.voicePrefix[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.voicePrefix=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,t){a.voicePrefix[t?"removeAgents":"addAgents"]({id:l.voicePrefix.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"voicePrefix properly "+(t?"removed":"added"),msg:"voicePrefix has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voicePrefix.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voicePrefixes=r||{count:0,rows:[]},v.table="voicePrefixes",v.listOrder="",v.listOrderAsc=null,v.selectedVoicePrefixes=[],v.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",limit:10,page:1},v.editdialog=function(e,t){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:v.voicePrefixes.rows,license:v.license,setting:null}})},v.agentadddialog=function(e,t){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:v.voicePrefixes?v.voicePrefixes.rows:[],realtime:!1}})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the voicePrefix?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVoicePrefixes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voicePrefix.get(v.query,f).$promise},v.createOrEditvoicePrefix=function(e,t){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:t,voicePrefixes:v.voicePrefixes.rows,license:v.license,setting:v.setting}})},v.deletevoicePrefix=A,v.exportSelectedVoicePrefixes=function(){var e=angular.copy(v.selectedVoicePrefixes);return v.selectedVoicePrefixes=[],e},v.deleteSelectedVoicePrefixes=function(e){var t=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+v.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoicePrefixes.forEach(function(e){A(e)}),v.selectedVoicePrefixes=[]})},v.deselectVoicePrefixes=function(){v.selectedVoicePrefixes=[]},v.selectAllVoicePrefixes=function(){v.selectedVoicePrefixes=v.voicePrefixes.rows},l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){v.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.voicePrefixes=e||{count:0,rows:[]}}function A(e){l.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(v.voicePrefixes.rows,{id:e.id}),v.voicePrefixes.count-=1,v.voicePrefixes.rows.length||v.getVoicePrefixes(),c.success({title:"voicePrefix deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicePrefixes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICEQUEUE",u.voiceQueue=angular.copy(r),u.voiceQueues=s,u.newVoiceQueue=!1,u.voiceQueue||(u.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"},u.title="VOICE.NEW_VOICEQUEUE",u.newVoiceQueue=!0),u.addNewVoiceQueue=function(){u.errors=[],l.voiceQueue.save(u.voiceQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"voice",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:u.voiceQueue.name?u.voiceQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.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.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoiceQueue=function(){u.errors=[],l.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(e){var t=_.find(u.voiceQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VoiceQueue properly saved!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoiceQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceQueue.delete({id:u.voiceQueue.id}).$promise.then(function(){return l.voiceQueue.getAgents({id:u.voiceQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.voiceQueue.id],channel:"voice",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.voiceQueues,{id:u.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(u.voiceQueue.name||"voiceQueue")+" has been deleted!"}),p(u.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voiceQueues","voiceQueue","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.voiceQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.voiceQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,t){a.voiceQueue[t?"removeAgents":"addAgents"]({id:l.voiceQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"VoiceQueue properly "+(t?"removed":"added"),msg:"VoiceQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.voiceQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.voiceQueue[t?"removeTeams":"addTeams"]({id:o.voiceQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.voiceQueue.getTeams({id:o.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.voiceQueue=d||n.params.voiceQueue||{},c.selectedTab=n.params.tab||0,c.teamadddialog=function(e,t){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[]}})},c.agentadddialog=function(e,t){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[],realtime:!1}})},c.gotogoto=function(e,t){n.go("app.voice.realtime.queues",{})},c.alert=r.info,c.gotoVoiceQueues=function(){n.go("app.voice.voiceQueues")},c.saveVoiceQueue=function(){s.voiceQueue.update({id:c.voiceQueue.id},c.voiceQueue).$promise.then(function(){r.success({title:"VoiceQueue updated!",msg:c.voiceQueue.name?c.voiceQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.sound.get({fields:"name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.sounds=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","voiceQueue"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voiceQueues=r||{count:0,rows:[]},v.table="voiceQueues",v.listOrder="",v.listOrderAsc=null,v.selectedVoiceQueues=[],v.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",channel:"voice",limit:10,page:1},v.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"),"")}),v.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"),"")}),v.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"),"")}),v.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e})},v.teamadddialog=function(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:v.voiceQueues?v.voiceQueues.rows:[]}})},v.agentadddialog=function(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:v.voiceQueues?v.voiceQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.voice.realtime.queues",{})},v.success=f,v.getVoiceQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,m.hasRole("admin")?v.promise=l.voiceQueue.get(v.query,f).$promise:(v.query.id=v.currentUser.id,v.promise=l.user.getQueues(v.query,f).$promise)},v.createOrEditVoiceQueue=function(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:v.voiceQueues.rows,license:v.license,setting:v.setting}})},v.deleteVoiceQueue=A,v.exportSelectedVoiceQueues=function(){var e=angular.copy(v.selectedVoiceQueues);return v.selectedVoiceQueues=[],e},v.deleteSelectedVoiceQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+v.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoiceQueues.forEach(function(e){A(e)}),v.selectedVoiceQueues=[]})},v.deselectVoiceQueues=function(){v.selectedVoiceQueues=[]},v.selectAllVoiceQueues=function(){v.selectedVoiceQueues=v.voiceQueues.rows};var h=!0,b=1;function f(e){v.voiceQueues=e||{count:0,rows:[]}}function A(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.voiceQueues.rows,{id:e.id}),v.voiceQueues.count-=1,v.voiceQueues.rows.length||v.getVoiceQueues(),c.success({title:"VoiceQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICERECORDING",u.voiceRecording=angular.copy(r),u.voiceRecordings=s,u.newVoiceRecording=!1,u.voiceRecording||(u.voiceRecording={},u.title="VOICE.NEW_VOICERECORDING",u.newVoiceRecording=!0),u.addNewVoiceRecording=function(){u.errors=[],l.voiceRecording.save(u.voiceRecording).$promise.then(function(e){u.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:u.voiceRecording.name?u.voiceRecording.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.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.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoiceRecording=function(){u.errors=[],l.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(e){var t=_.find(u.voiceRecordings,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VoiceRecording properly saved!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoiceRecording=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceRecording.delete({id:u.voiceRecording.id}).$promise.then(function(){_.remove(u.voiceRecordings,{id:u.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(u.voiceRecording.name||"voiceRecording")+" has been deleted!"}),p(u.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voiceRecordings=r||{count:0,rows:[]},v.table="voiceRecordings",v.listOrder="",v.listOrderAsc=null,v.selectedVoiceRecordings=[],v.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition",sort:"-updatedAt",limit:10,page:1},v.localizationMap=g,v.pickerModel={dateStart:null},v.downloadfile2=function(o,e){return l.voiceRecording.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.uniqueid+o.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVoiceRecordings=function(){v.query.dateStart=void 0,v.query.dateEnd=void 0,v.pickerModel.dateStart&&(v.query.dateStart=v.pickerModel.dateStart,v.query.dateEnd=v.pickerModel.dateEnd);v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceRecording.get(v.query,f).$promise},v.createOrEditVoiceRecording=function(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:v.voiceRecordings.rows,license:v.license,setting:v.setting}})},v.deleteVoiceRecording=A,v.exportSelectedVoiceRecordings=function(){var e=angular.copy(v.selectedVoiceRecordings);return v.selectedVoiceRecordings=[],e},v.deleteSelectedVoiceRecordings=function(e){var t=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+v.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoiceRecordings.forEach(function(e){A(e)}),v.selectedVoiceRecordings=[]})},v.deselectVoiceRecordings=function(){v.selectedVoiceRecordings=[]},v.selectAllVoiceRecordings=function(){v.selectedVoiceRecordings=v.voiceRecordings.rows},v.clearDateFilter=function(){v.pickerModel={dateStart:null},v.getVoiceRecordings()};var h=!0,b=1;function f(e){v.voiceRecordings=e||{count:0,rows:[]}}function A(e){l.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(v.voiceRecordings.rows,{id:e.id}),v.voiceRecordings.count-=1,v.voiceRecordings.rows.length||v.getVoiceRecordings(),c.success({title:"VoiceRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(t,n,o,a,s,e,i,r){var l=this;function d(e,t){return{id:e,title:t.name||"NONAME",state:"app.dashboards.custom",stateParams:t,weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(e)&&!s.hasRole("admin")}}}function c(e,t){return{id:e,title:t.name||"NONAME",state:"app.plugins.plugin",stateParams:t,weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(e)&&!s.hasRole("admin")}}}function m(e,t){a.saveItem("apps.home.plugin_"+e,{id:e,title:t.name,translate:t.name,state:"plugin_"+t.id,stateParams:t,view:"plugin",icon:t.icon,weight:12,hidden:function(){return!s.hasPermission(e)}})}l.isAgent=function(){return s.getCurrentUser()&&s.hasRole("agent")},o.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return s.hasRole("agent")}}),i.version.get().$promise.then(function(e){l.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){l.version="UNKNOWN"}).finally(function(){o.saveItem("version",{title:"VERSION "+l.version,group:!0,weight:2,hidden:function(){return s.hasRole("agent")}})}),s.isLoggedIn()&&(i.dashboard.get().$promise.then(function(e){for(var t=0,n=0;n<e.rows.length;n+=1)t=99999+e.rows[n].id,o.saveItem("apps.dashboards.custom_"+t,d(t,e.rows[n]))}),i.plugin.get({active:!0}).$promise.then(function(e){var t=0;if(e.count){var n=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<n.length){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1900)&&!s.hasRole("admin")}});for(var a=0;a<n.length;a+=1)t=88888+n[a].id,o.saveItem("apps.plugins.plugin_"+t,c(t,n[a]));o.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)m(t=88888+i[a].id,i[a])}})),e.custom&&!r.defaultPageTitle&&r.pageTitle&&angular.element("#pageTitle").html(r.pageTitle),o.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(100)&&!s.hasRole("admin")}}),o.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(101)&&!s.hasRole("admin")}}),o.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(200)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",weight:1,hidden:function(){return s.hasRole("agent")||s.hasRole("user")||!s.hasPermission(201)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(202)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(203)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(204)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",weight:4,hidden:function(){return!e.cm||s.hasRole("agent")||!s.hasPermission(300)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(301)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(302)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",weight:4,hidden:function(){return s.hasRole("agent")||!s.hasPermission(304)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(303)&&!s.hasRole("admin")}}),o.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",weight:5,hidden:function(){return!e.voice||s.hasRole("agent")||!s.hasPermission(400)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(401)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.inboundroutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundroutes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(402)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.outboundroutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundroutes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(403)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.internalroutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalroutes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(404)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(405)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(406)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(407)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(408)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(409)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(410)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(411)&&!s.hasRole("admin")}}),o.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",weight:6,hidden:function(){return!e.chat||s.hasRole("agent")||!s.hasPermission(500)&&!s.hasRole("admin")}}),o.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(501)&&!s.hasRole("admin")}}),o.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(502)&&!s.hasRole("admin")}}),o.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(510)&&!s.hasRole("admin")}}),o.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",weight:7,hidden:function(){return!e.mail||s.hasRole("agent")||!s.hasPermission(600)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(601)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(602)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(603)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(610)&&!s.hasRole("admin")}}),o.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",weight:8,hidden:function(){return!e.messaging||s.hasRole("agent")||!s.hasPermission(700)&&!s.hasRole("admin")}}),o.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(701)&&!s.hasRole("admin")}}),o.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(702)&&!s.hasRole("admin")}}),o.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(710)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",weight:9,hidden:function(){return!e.openchannel||s.hasRole("agent")||!s.hasPermission(800)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(801)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(802)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(810)&&!s.hasRole("admin")}}),o.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",weight:10,hidden:function(){return!e.fax||s.hasRole("agent")||!s.hasPermission(900)&&!s.hasRole("admin")}}),o.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(901)&&!s.hasRole("admin")}}),o.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(902)&&!s.hasRole("admin")}}),o.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(910)&&!s.hasRole("admin")}}),o.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:13,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1e3)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.cannedAnswers",{id:1002,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1002)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1002)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1003)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1004)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1005)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.schedules",{id:42,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return s.hasRole("agent")||!s.hasPermission(42)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.sounds",{id:1006,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1006)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.tags",{id:1007,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1007)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.templates",{id:1008,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1008)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.triggers",{id:1009,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1009)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.trunks",{id:1010,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1010)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.variables",{id:1011,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1011)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",weight:11,hidden:function(){return!e.voice||s.hasRole("agent")||!s.hasPermission(1100)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1101)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1102)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1103)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:14,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1200)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1201)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1202)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1203)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:15,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1300)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1301)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1302)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1303)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1305)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1306)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1307)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",weight:1,badge:{content:"beta",color:"orange"},hidden:function(){return s.hasRole("agent")||!s.hasPermission(1308)&&!s.hasRole("admin")}}),o.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",weight:18,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1400)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1401)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1402)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1403)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!e.custom||s.hasRole("agent")||!s.hasPermission(1407)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!e.update||s.hasRole("agent")||!s.hasPermission(1404)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1405)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1406)&&!s.hasRole("admin")}}),o.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",weight:19,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1600)&&!s.hasRole("admin")}}),o.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1601)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",weight:5,hidden:function(){return!e.dialer||s.hasRole("agent")||!s.hasPermission(1500)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1501)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1502)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1510)&&!s.hasRole("admin")}}),o.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",weight:12,hidden:function(){return!e.jscripty||s.hasRole("agent")||!s.hasPermission(1700)&&!s.hasRole("admin")}}),o.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1701)&&!s.hasRole("admin")}}),o.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:16,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1800)&&!s.hasRole("admin")}}),o.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1801)&&!s.hasRole("admin")}}),o.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!s.hasPermission(101)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:2,hidden:function(){return!e.cm||!s.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:3,hidden:function(){return!e.cm||!s.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:3,hidden:function(){return!e.dialer||!s.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:4,hidden:function(){return!e.voice||!s.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:5,hidden:function(){return!e.voice||!s.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:6,hidden:function(){return!e.voice||!s.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:7,hidden:function(){return!e.chat||!s.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:8,hidden:function(){return!e.mail||!s.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:9,hidden:function(){return!e.messaging||!s.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-A200-fg",weight:10,hidden:function(){return!e.openchannel||!s.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:11,hidden:function(){return!e.fax||!s.hasPermission(109)}}),t.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===t.$id&&n.$broadcast("msSplashScreen::remove")})}e.$inject=["$scope","$rootScope","msNavigationService","msNavigationAgentService","Auth","license","api","setting"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,t,n,a,s,r){var i=this;function o(e){if(e&&e.id){var t=99999+e.id;s.saveItem("apps.dashboards.custom_"+t,{id:t,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(t)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var t=88888+e.id;s.saveItem("apps.plugins.plugin_"+t,{id:t,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(t)&&!r.hasRole("admin")}}),s.sort()}}else{t=88888+e.id;n=1900,a=t,i=s.getNavigation(),(o=_.find(i[0].children,{id:n}))&&_.some(o.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(s.deleteItem("apps.plugins.plugin_"+t),d(1900)||s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var n,a,i,o}function d(e){var t=s.getNavigation(),n=_.find(t[0].children,{id:e});return!!(n&&0<n.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=n,i.$onInit=function(){i.folded="true"===t.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,t.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",o),a.on("dashboard:update",o),a.on("dashboard:remove",function(e){if(e&&e.id){var t=99999+e.id;s.deleteItem("apps.dashboards.custom_"+t)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var t=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(s.deleteItem("apps.plugins.plugin_"+t),d(1900)||s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,t,n,o,s,r){var l=this;function d(n){s.isSupported()?s.requestPermission().then(function(){var e,t;t={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=n).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},s.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),t)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=t.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},n.on("chatInternalMessage:save",l.onMessageSave),n.on("chatInternalMessage:update",l.onMessageUpdate),o.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),o.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(o.chatGroup.getUnread({id:n[a].id}).$promise);return i.all(t)}).then(function(e){for(var t=0;t<e.length;t++)l.unreadTotalGroupMessages+=e[t].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){n.removeAllListeners("chatInternalMessage:save"),n.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){var t=angular.element("#chat-dialog");a(function(){t.animate({scrollTop:t[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){t.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){t.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return t.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",n.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var t=0;t<u.user.messages.rows.length;t+=1)!1===u.user.messages.rows[t].read&&u.user.messages.rows[t].ToId===u.currentUser.id&&n.chatInternalMessage.update({id:u.user.messages.rows[t].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",n.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),n.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var t=_.find(u.users.rows,{id:e.FromId});t&&(t.lastMessageAt=e.createdAt,t.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var t=_.find(u.user.messages.rows,{id:e.id});t&&_.merge(t,e)}var n=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});n&&n.lastMessage&&_.merge(n.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var t=_.find(u.users.rows,{id:e.id});t&&(_.isNil(e.online)||t.online===e.online||(t.online=e.online),_.isNil(e.allowmessenger)||t.allowmessenger===e.allowmessenger||(t.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},o.on("chatInternalMessage:save",u.onMessageSave),o.on("chatInternalMessage:update",u.onMessageUpdate),o.on("user:update",u.onUserUpdate),s("quick-panel").onClose(function(){u.user=void 0}),n.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),n.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){o.removeAllListeners("chatInternalMessage:save"),o.removeAllListeners("chatInternalMessage:update"),o.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=s.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var n;return d.errors=[],o.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var t=_.map(d.group.members,"id");return t.unshift(d.currentUser.id),n=e,o.chatGroup.addMembers({id:n.id,ids:t}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:n.name+" has been saved!"}),c(n)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((t=e,n=angular.lowercase(t),function(e){var t=e.name.toLowerCase();return-1!=t.indexOf(n)})):[];var t,n}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,n,a,o,t,s,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var t=angular.element("#chat-group-dialog");a(function(){t.animate({scrollTop:t[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var t=0,n=[];t<e.rows.length;t++)e.rows[t].unreadGroupMessages=0,c.groups[e.rows[t].id]=e.rows[t],n.push(r.chatGroup.getUnread({id:e.rows[t].id}).$promise);return s.all(n)}).then(function(e){for(var t=0;t<e.length;t++)c.groups[e[t].id].unreadGroupMessages+=e[t].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,t){o.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return r.user.get({role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,t){var n=o.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){o.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var t=[];a.messages=e.rows,a.messages.unshift(i);for(var n=0;n<a.messages.length;n++)t.push(r.user.get({id:a.messages[n].ToId,fields:"id,name,fullname,userpic"}).$promise);return s.all(t)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(t){c.group={id:t.id,write:t.write,messages:{}},r.chatGroup.getMembers({id:t.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:t.id,nolimit:!0}).$promise}).then(function(e){for(var t,n=0,a=[];n<e.count;n++)e.rows[n].ToId===c.currentUser.id&&(t=e.rows[n],c.group.messages[t.id]=t,e.rows[n].ToId!=c.currentUser.id||e.rows[n].FromId===c.currentUser.id||t.read||a.push(r.chatInternalMessage.update({id:t.id,read:!0})));return s.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var n={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(n).$promise.then(function(e){n.read=!1,n.ChatInternalMessageId=e.id;for(var t=0;t<c.group.members.length;t++)c.group.members[t].id!==c.currentUser.id&&(n.ToId=c.group.members[t].id,a.push(r.chatGroup.addMessage(angular.copy(n)).$promise));return s.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(t){if(!c.group&&t.ToId===c.currentUser.id&&t.FromId!==c.currentUser.id&&!t.read&&t.ChatGroupId){var e=c.groups[t.ChatGroupId];if(!e)return r.chatGroup.get({id:t.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&t.ChatGroupId===c.group.id&&t.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:t.id,read:!0}).$promise.then(function(){var e;e=t,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),t("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.form={token:o.token},s.setting={},s.resetPassword=function(){return i.auth.reset(s.form).$promise.then(function(){t.success({title:n.instant("RESETPASSWORD.PASSWORD_RESET"),msg:n.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&t.error({title:n.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){s.setting=e,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&t.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.errors=[],s.user=a,s.setting=i,s.reset=o,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.savePassword=function(){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)),r()}).catch(function(e){console.error(e),s.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;function d(e){_.isNil(e)&&o.cmHopper.update({id:l.preview.id,UserId:null}),a.hide()}l.customFieldsMap=r&&r.rows?_.mapValues(_.keyBy(r.rows,function(e){return"cf_"+e.id}),"name"):{},l.errors=[],l.hopperIds=[],l.preview=s,l.originated=!1,l.disable=!1,l.disableGetContact=!1,l.hopperIds.push(l.preview.id),l.originatePreview=function(){l.originated=!0,l.disable=!0,_.isEmpty(l.preview)?(i.error({title:"Message",msg:"Contact not available"}),l.disable=!1,l.hopperIds=[],d(!0)):o.rpc.getVoiceQueuesPreview({id:l.preview.id}).$promise.then(function(e){d(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),d(!0)}).finally(function(){l.disable=!1,l.hopperIds=[]})},l.closeDialog=d,l.nextContact=function(){return l.disableGetContact=!0,o.cmHopper.getPreview({hopperIds:l.hopperIds,direction:"next"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||o.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(l.disableGetContact=!1,l.hopperIds=[],404===e.status)l.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();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 a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.previousContact=function(){if(l.disableGetContact=!0,1<l.hopperIds.length){var e=_.without(l.hopperIds,l.preview.id);return o.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(l.hopperIds,function(e){return e==l.preview.id}),l.originated||o.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e)}).catch(function(e){if(404===e.status)l.hopperIds=[l.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){l.hopperIds=[],a.hide();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 l.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},l.getFirstAvailableContact=function(){return l.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),o.cmHopper.getPreview({hopperIds:[l.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||o.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)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 preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){l.disableGetContact=!1})},l.isCustomField=function(e){return _.startsWith(e,"cf_")},l.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},l.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){l.originated||o.cmHopper.update({id:l.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(e,t,o,n,s,a,i,r,l,d,c,m,u,p,g,v,h,b,f,A,E){var y,S=this;function T(e){S.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function C(){S.promise=b.user.getQueues(S.query,T).$promise}function x(e){return v.logout(e).then(function(){return h.disconnect(),t.$broadcast("webrtc::logout"),n.go("app.login")}).catch(function(e){console.error(e)})}function O(e,t){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!t,locals:{user:S.user,setting:A,reset:t}})}S.voiceQueues={},S.polling=!0,t.global={search:""},S.pauses=[],S.license=f,S.currentUser=v.getCurrentUser(),S.unreadTotalMessages=0,S.unreadTotalGroupMessages=0,S.contcts=0,"agent"===S.currentUser.role&&(y=E(function(){_.some(S.voiceQueues,{dialMethod:"preview",dialActive:!0})&&S.license.dialer&&S.polling?(S.polling=!1,b.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(S.contacts=e.contacts)}).finally(function(){S.polling=!0})):S.contacts=0},14999)),S.setting=A,S.bodyEl=angular.element("body"),S.conf={realm:"asterisk",host:a.host(),protocol:a.protocol(),remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:S.license.webrtc,phoneBarExpires:S.currentUser.phoneBarExpires,phoneBarPrefixRequired:S.currentUser.phoneBarPrefixRequired},S.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},S.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"}],S.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"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"}},S.toggleSidenav=function(e){i(e).toggle()},S.logout=x,S.changeLanguage=function(e){if(!S.languages.hasOwnProperty(e.code)){return void l.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"})}S.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===n.current.name&&d.location.reload()},S.setUserStatus=function(e){S.userStatus=e},S.toggleHorizontalMobileMenu=function(){S.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},S.toggleMsNavigationFolded=function(){g.toggleFolded()},S.search=function(t){for(var e=[],n=g.getFlatNavigation(),a=o.defer(),i=0;i<n.length;i++)n[i].uisref&&e.push(n[i]);t&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(t)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},S.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))},S.openSettings=function(e){t.$broadcast("webrtc::settings")},S.changePassword=O,S.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},S.onUserUpdate=function(e){if(e.id===S.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==S.user.showWebBar){var t=c.confirm().title(r.instant("TOOLBAR.WARNING")+"!").textContent(r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")).ariaLabel(r.instant("TOOLBAR.WARNING")+"!").ok(r.instant("TOOLBAR.STAY_LOGGED")).cancel("Logout");c.show(t).then(function(){v.queueLogin()}).catch(function(e){x(!0)}).finally(function(){_.merge(S.user,e),v.updateCurrentUser(S.user)})}else x(!0),_.merge(S.user,e),v.updateCurrentUser(S.user);else _.merge(S.user,e),v.updateCurrentUser(S.user)},S.onUserCalled=function(e){2===S.currentUser.showWebBar&&"agent"===S.currentUser.role&&S.currentUser.name===e.membername&&p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+e.calleridnum+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})},S.pause=function(e){return b.user.pause({id:S.user.id,type:e||"DEFAULT PAUSE"}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},S.unpause=function(){return b.user.unpause({id:S.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},S.preview=function(t){return S.disable=!0,b.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:t,clickOutsideToClose:!0,locals:{preview:e},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){S.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t<e.data.errors.length;t+=1)p.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){S.disable=!1})},S.getLogo=function(){return S.setting.defaultHeaderWhiteLabel?"xCALLY Motion":S.setting.headerWhiteLabel},S.userIsNotPhonebar=function(){return"admin"===S.currentUser.role||"user"===S.currentUser.role||"agent"===S.currentUser.role&&0!==S.currentUser.showWebBar},S.onInternalMessageSave=function(e){e.ToId!==S.currentUser.id||e.ChatGroupId||(S.unreadTotalMessages+=1);e.ToId===S.currentUser.id&&e.FromId!==S.currentUser.id&&!e.read&&e.ChatGroupId&&S.unreadTotalGroupMessages++},S.onInternalMessageUpdate=function(e){e.ToId===S.currentUser.id&&e.read&&0<S.unreadTotalMessages&&!e.ChatGroupId&&(S.unreadTotalMessages-=1);e.ToId===S.currentUser.id&&e.read&&e.ChatGroupId&&0<S.unreadTotalGroupMessages&&S.unreadTotalGroupMessages--},S.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&C()},S.onVoiceQueue=function(e){C()},h.connect(),h.on("user:update",S.onUserUpdate),h.on("user:called",S.onUserCalled),h.on("chatInternalMessage:save",S.onInternalMessageSave),h.on("chatInternalMessage:update",S.onInternalMessageUpdate),h.on("userVoiceQueue:save",S.onUserVoiceQueue),h.on("voiceQueue:save",S.onVoiceQueue),h.on("userVoiceQueue:remove",S.onUserVoiceQueue),h.on("voiceQueue:remove",S.onVoiceQueue),h.on("voiceQueue:update",S.onVoiceQueue),function(){S.user=v.getCurrentUser(),S.conf.ha1=S.user.md5secret,S.conf.id=S.user.id,S.conf.name=S.user.name,S.conf.fullname=S.user.fullname,S.conf.internal=S.user.internal,S.conf.recording=S.user.phoneBarEnableRecording,S.conf.autoAnswer=S.user.phoneBarAutoAnswer,S.conf.enableSettings=S.user.phoneBarEnableSettings,S.conf.enableDtmfTone=S.user.phoneBarEnableDtmfTone,S.conf.autoAnswerDelay=S.user.phoneBarAutoAnswerDelay,S.userStatus=S.userStatusOptions[0];var e=u.get("motion.language");e&&S.languages.hasOwnProperty(e)?S.selectedLanguage=S.languages[e]:S.selectedLanguage=S.languages[r.preferredLanguage()];if(b.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){S.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),S.setting.securePassword)if(S.user.passwordResetAt){var t=moment(S.user.passwordResetAt).add(S.setting.passwordExpiresDays||90,"day");moment().isAfter(t)?O(null,!0):moment().add(15,"day").isAfter(t)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(t.diff(moment(),"days",!0)),timeout:2e4})}else O(null,!0)}(),C(),b.chatInternalMessage.get({fields:"FromId",ToId:S.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){S.unreadTotalMessages=e.rows.length}),e.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),y&&(E.cancel(y),y=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var t=new Object,n=e.lastIndexOf("?");if(0<n)for(var a=e.substring(n+1).split("&"),i=0;i<a.length;i++)0<(n=a[i].indexOf("="))&&(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/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT: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.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,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:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,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,a="number"==typeof window.innerWidth?(n=window.innerHeight,window.innerWidth):(n=document.documentElement.clientHeight||document.body.clientHeight,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]}};function mxDictionary(){this.clear()}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}};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}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(l,d,c){var m=0,u=function(){for(var e=!1,t=0;t<d.length;t++){var n=d[t];if(n instanceof mxGeometryChange||n instanceof mxTerminalChange||n instanceof mxValueChange||n instanceof mxChildChange||n instanceof mxStyleChange){var a=l.getView().getState(n.cell||n.child,!1);if(null!=a)if(e=!0,n.constructor!=mxGeometryChange||l.model.isEdge(n.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,o=(n.geometry.x-n.previous.x)*i,s=(n.geometry.y-n.previous.y)*i,r=(n.geometry.width-n.previous.width)*i;i=(n.geometry.height-n.previous.height)*i;0==m?(a.x-=o,a.y-=s,a.width-=r,a.height-=i):(a.x+=o/10,a.y+=s/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,n.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},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: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: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){var t=null;if(null!=e)if(null!=e.name)t=e.name;else{for(e=e.toString(),t=9;" "==e.charAt(t);)t++;var n=e.indexOf("(",t);t=e.substring(t,n)}return t},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:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var t=mxUtils.createXmlDocument();return t.async="false",t.loadXML(e),t}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection: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=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==t||t)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,t){var n="";return null!=e&&(n=null==(n=e.xml)?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.replace(/\n/g,t||"
")},getTextContent:function(e){var t="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),t=e.nodeValue||""),t},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";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("")}: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=(n=null!=n?n:document).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);o<t+n&&(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))<t+n&&(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 e=(t=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).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 null==(e=null!=e?e[t]:null)?e=n:e==mxConstants.NONE&&(e=null),e},clone:function(e,t,n){n=null!=n&&n;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==t||mxUtils.indexOf(t,i)<0)&&(a[i]=n||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},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])n=n+(t+" => [")+mxUtils.getFunctionName(e[t].constructor)+"]\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 h;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+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(o=1<(v=(c=i*i)/(g=n*n)+(p=d*d)/(A=a*a))?(n*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,o===s&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*n*d/a)-h*(p=-1*o*a*i/n)+r/2,l=h*c+m*p+l/2,o=0<=(g=Math.atan2((d-p)/a,(i-c)/n)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/n)-Math.atan2((d-p)/a,(i-c)/n))?g:2*Math.PI+g,0==s&&0<i?i-=2*Math.PI:0!=s&&i<0&&(i+=2*Math.PI),s=2*i/Math.PI,i/=s=Math.ceil(s<0?-1*s:s),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*n,m*=a,n*=h,a*=h;for(var u=Math.cos(o),p=-d*(c*(f=Math.sin(o))+a*u),g=-d*(n*f-m*u),v=A=0,h=[],b=0;b<s;++b){o+=i;var f,A=c*(u=Math.cos(o))-a*(f=Math.sin(o))+r,E=(v=n*u+m*f+l,-d*(c*f+a*u));u=-d*(n*f-m*u);h[f=6*b]=Number(p+e),h[f+1]=Number(g+t),h[f+2]=Number(A-E+e),h[f+3]=Number(v-u+t),h[f+4]=Number(A+e),h[f+5]=Number(v+t),p=A+E,g=v+u}return h},getBoundingBox:function(e,t){var n=null;if(null!=e&&null!=t&&0!=t){var a=mxUtils.toRadians(t),i=(n=Math.cos(a),Math.sin(a)),o=new mxPoint(e.x+e.width/2,e.y+e.height/2),s=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);s=mxUtils.getRotatedPoint(s,n,i,o),a=mxUtils.getRotatedPoint(a,n,i,o),r=mxUtils.getRotatedPoint(r,n,i,o),l=mxUtils.getRotatedPoint(l,n,i,o);(n=new mxRectangle(s.x,s.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),n.add(new mxRectangle(r.x,r.y,0,0)),n.add(new mxRectangle(l.x,l.y,0,0))}return n},getRotatedPoint:function(e,t,n,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*t-(e=e.y-a.y)*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){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(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),s<r&&(r=s),e<i&&(e=i),r<e)return!1;i=t.y,s=n.y;var l=n.x-t.x;return 1e-7<Math.abs(l)&&(i=(n=(n.y-t.y)/l)*e+(t=t.y-n*t.x),s=n*r+t),s<i&&(t=s,s=i,i=t),o<s&&(s=o),i<a&&(i=a),!(s<i)},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(i<=0||o<=0||n<=0||a<=0)return!1;var s=e.x,r=e.y,l=t.x,d=t.y;o+=d,n+=s,a+=r;return((i=i+l)<l||s<i)&&(o<d||r<o)&&(n<s||l<n)&&(a<r||d<a)},intersectsHotspot:function(e,t,n,a,i,o){if(i=null!=i?i:0,o=null!=o?o:0,0<(a=null!=a?a:1)){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()),t=(e=mxUtils.getRotatedPoint(new mxPoint(t,n),i,o,s)).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)).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&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!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&&s<=1&&0<=i&&i<=1?new mxPoint(e+s*(n-e),t+s*(a-t)):null},ptSegDistSq:function(e,t,n,a,i,o){return n=(i-=e)*(n-=e)+(o-=t)*(a-=t)<=0?0:(e=(i=n-i)*n+(o=a-o)*a)<=0?0:e*e/(n*n+a*a),(i=i*i+o*o-n)<0&&(i=0),i},relativeCcw:function(e,t,n,a,i,o){return 0==(e=(i-=e)*(a-=t)-(o-=t)*(n-=e))&&(0<(e=i*n+o*a)&&((e=(i-n)*n+(o-a)*a)<0&&(e=0))),e<0?-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||document.documentMode<9)?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,i){i=null==i||i;var o=new mxDictionary;return e.sort(function(e,t){var n=o.get(e);null==n&&(n=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),o.put(e,n));var a=o.get(t);return null==a&&(a=mxCellPath.create(t).split(mxCellPath.PATH_SEPARATOR),o.put(t,a)),0==(n=mxCellPath.compare(n,a))?0:0<n==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)e[n].indexOf("=")<0&&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 mxUtils.indexOfStylename(e,t)<0&&(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+"=");i<0?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+(i<n?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(i<0)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=o<0?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(e<1)return 1;a=null!=a?a:0;var i=(n=null!=n?n:mxConstants.PAGE_FORMAT_A4_PORTRAIT).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,n<1&&e<a){var s=a/e;a=e,n/=s}for(a<1&&e<n&&(s=n/e,n=e,a/=s),s=Math.ceil(n)*Math.ceil(a),o=0;e<s;){s=Math.floor(n)/n;var r=Math.floor(a)/a;if(1==s&&(s=Math.floor(n-1)/n),1==r&&(r=Math.floor(a-1)/a),n*=s=r<s?s:r,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," "),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()):((a=(n=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),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,i,a,o,s,r,l,d){return(e=new mxDragSource(e,n)).dragOffset=new mxPoint(null!=a?a: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!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var t=i.cloneNode(!0),n=parseInt(t.style.width),a=parseInt(t.style.height);return t.style.width=Math.round(n*e.view.scale)+"px",t.style.height=Math.round(a*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"};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)}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)&&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 a=function(e,t,n){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:t,f:n})};return window.addEventListener?function(e,t,n){e.addEventListener(t,n,!1),a(e,t,n)}:function(e,t,n){e.attachEvent("on"+t,n),a(e,t,n)}}(),removeListener:function(){var a=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(e,t,n){e.removeEventListener(t,n,!1),a(e,t,n)}:function(e,t,n){e.detachEvent("on"+t,n),a(e,t,n)}}(),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,n,t,a,i,o,s){var r=function(e){return"function"==typeof t?t(e):t};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||n.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||n.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=o?o(e):mxEvent.isConsumed(e)||n.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 t=r(e);n.dblClick(e,null!=t?t.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(n){if(null!=n){var e=function(e){null==e&&(e=window.event);var t=0;0!=(t=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&n(e,0<t)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?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||document.documentMode<9)?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)&&(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"};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}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=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++){if(0<(s=i[o].indexOf("="))){var s,r=i[o].substring(0,s),l=i[o].substring(s+1);(s=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),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)}}};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(t,e,n,a){this.model=t,this.urlInit=e,this.urlPoll=n,this.urlNotify=a,null!=t&&(this.codec=new mxCodec,this.codec.lookup=function(e){return t.getCell(e)}),t.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()}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){navigator.userAgent.indexOf("Presto/2.5")<0&&(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).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 a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),o=this.div.offsetWidth,s=this.div.offsetHeight,t=mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e)-a,n=mxEvent.getClientY(e)-i;this.setSize(o+t,s+n),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),n=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,t,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,t,n),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 n=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),n)n=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{n=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var t=this.getMinimumSize();0<t.height&&(mxClient.IS_IE||(this.div.style.height=t.height+"px"),this.table.style.height=t.height+"px"),0<t.width&&(mxClient.IS_IE||(this.div.style.width=t.width+"px"),this.table.style.width=t.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},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 n=!1,a=null,i=null,o=null,s=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(n)n=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=o,this.div.style.width=s,"auto"!=(t=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=o,this.table.style.width=s,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(n=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),o=this.table.style.height,s=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 t=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=t.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),o=this.getX(),s=this.getY(),t=mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e)-a,n=mxEvent.getClientY(e)-i;this.setLocation(o+t,s+n),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),n=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,t,n),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,t,n),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);a=document.createElement("td");var 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");a=this.isGridEnabled()&&e.isGridEnabledEvent(t);var o=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(t))o=new mxRectangle(0,0,o=parseInt(this.previewElement.style.width),s=parseInt(this.previewElement.style.height)),n=new mxPoint(i,n),n=this.currentGuide.move(o,n,a),o=!1,i=n.x,n=n.y;else if(a){a=e.view.scale;var 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),null!=(e=(this.selectedMode=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="
",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(n,a,t){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=t?t(e):this.stop(e)});mxUtils.get(n,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",n,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var t=e.getDocumentElement();null==t?i("Invalid response: "+e.getText()):this.receive(t)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},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 n=!0,a=null,i=null;return{isEnabled:function(){return n},setEnabled:function(e){n=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=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(n&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var t=(a=i+location.pathname).lastIndexOf("/");0<t&&(a=a.substring(0,t+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(o){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()})},o.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var s=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(o.container),this.scrollLeft=o.container.scrollLeft,this.scrollTop=o.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-o.container.scrollLeft-Math.ceil(this.dx),t=-o.container.scrollTop-Math.ceil(this.dy);o.panGraph(e,t),o.panDx=this.scrollLeft-o.container.scrollLeft,o.panDy=this.scrollTop-o.container.scrollTop,o.fireEvent(new mxEventObject(mxEvent.PAN))}else o.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=o.view.translate.x,this.t0y=o.view.translate.y,this.active=!0},this.panTo=function(e,t,n,a){this.active||this.start(),this.scrollLeft=o.container.scrollLeft,this.scrollTop=o.container.scrollTop,a=null!=a?a:0;var i=o.container;this.dx=e+(null!=n?n:0)-i.scrollLeft-i.clientWidth,this.dx<0&&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=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=t+a-i.scrollTop-i.clientHeight,this.dy<0&&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=t-i.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=s())):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)o.panDx=0,o.panDy=0,o.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=o.panDx,t=o.panDy;0==e&&0==t||(o.panGraph(0,0),o.view.setTranslate(this.t0x+e/o.view.scale,this.t0y+t/o.view.scale))}},this.destroy=function(){o.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=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()))}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")).src=t,r.appendChild(i)):null!=i&&((t=document.createElement("div")).className=i,r.appendChild(t)),s.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==o||o?"":" disabled"),mxUtils.write(r,e),r.align="left",s.appendChild(r),(e=document.createElement("td")).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=new mxPoint(-(t=this.graph.view.getTranslate()).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,n){null!=e.overlays&&e.overlays.visit(function(e,t){t instanceof mxShape&&t.paint(n)})},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)==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=n<1?";stop-opacity:"+n:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+n),o.appendChild(i),n=a<1?";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;e.alpha<1&&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()),e.alpha<1&&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"),l.alpha<1&&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")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),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"),u.alpha<1&&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 v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),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,u.alpha<1&&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+")",e=(t=this.rotatePoint((e+n/2)*u.scale,(t+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).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){var 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),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=t+m-1,s==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:s==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+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,v,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;null!=(c=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),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,new mxRectangle(c.x,c.y+(t?0:1),c.width,c.height+(t?1:0))):((c=document.createElement("div")).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),new mxRectangle((n+1)*d.scale,(a+2)*d.scale,i*d.scale,(o+1)*d.scale)))&&((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};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}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 e.alpha<1&&(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",e.alpha<1&&(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),s=(i=Math.sin(i),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;s+=2/3*((t=(t+i.dy)*i.scale)-s);var 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)).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)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).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)).src=i,s&&r?l.style.rotation="180":s?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(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")).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).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&&(e=(t=this.rotatePoint(e,t,u.rotation,u.rotationCx,u.rotationCy)).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=(v=mxUtils.getAlignmentAsPoint(o,s)).x,v=v.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")).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)),(n%=2*Math.PI)<0&&(n+=2*Math.PI),(n%=Math.PI)>Math.PI/2&&(n=Math.PI-n),s=Math.cos(n);var h=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)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*s+n*-h)/2-m*n*(g+.5)+r*a*(v+.5),d=(n-n*s+a*-h)/2+r*n*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).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,this.state.alpha<1&&(o.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",o.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(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&&a<p&&(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*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}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&&(s=(n.style.rotation=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)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,t){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var n=this.graph.getView().translate,i=this.graph.getView().scale,o=e.x,s=e.y,r=!1,l=!1,d=b=this.getGuideTolerance(),c=b;(b=a.clone()).x+=e.x,b.y+=e.y;var m=b.x,u=b.x+b.width,p=b.getCenterX(),g=b.y,v=b.y+b.height,h=b.getCenterY();e=function(e){e+=this.graph.panDx;var t=!1;if(Math.abs(e-p)<d?(o=e-a.getCenterX(),d=Math.abs(e-p),t=!0):Math.abs(e-m)<d?(o=e-a.x,d=Math.abs(e-m),t=!0):Math.abs(e-u)<d&&(o=e-a.x-a.width,d=Math.abs(e-u),t=!0),t){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 n=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,n.scrollHeight-3-this.graph.panDy)]}r=r||t};for(var b=function(e){e+=this.graph.panDy;var t=!1;if(Math.abs(e-h)<c?(s=e-a.getCenterY(),c=Math.abs(e-h),t=!0):Math.abs(e-g)<c?(s=e-a.y,c=Math.abs(e-g),t=!0):Math.abs(e-v)<c&&(s=e-a.y-a.height,c=Math.abs(e-v),t=!0),t){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 n=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(n.scrollWidth-3-this.graph.panDx,e)]}l=l||t},f=0;f<this.states.length;f++){var A=this.states[f];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(b.call(this,A.getCenterY()),b.call(this,A.y),b.call(this,A.y+A.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",t&&(r||(t=a.x-(this.graph.snap(a.x/i-n.x)+n.x)*i,o=this.graph.snap(o/i)*i-t),l||(n=a.y-(this.graph.snap(a.y/i-n.y)+n.y)*i,s=this.graph.snap(s/i)*i-n)),e=new mxPoint(o,s)}return e},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)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(t=this.getSvgScreenOffset())?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()){n=n+(s=(i-o)/2),a=a-s;var 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 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,v,h,b,f,A){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=v,this.wrap=null!=h&&h,this.clipped=null!=b&&b,this.overflow=null!=f?f:"visible",this.labelPadding=null!=A?A: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&&(0==(s.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,s)<0&&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(){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(this.opacity<100&&(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,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=o.x-c/2+n*r)+c),u=(o=o.y-a/2+n*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,b=v-3*a;e.begin(),e.moveTo(i,o),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(s.x-n*r,s.y-n*l),e.lineTo(h,b),e.lineTo(h+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,a=null!=this.offsetWidth&&null!=this.offsetHeight?(n=this.wrap?this.bounds.width:this.offsetWidth*this.scale,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.offsetHeight*this.scale):(n=this.wrap?this.bounds.width:e.offsetWidth*this.scale,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=this.opacity<1?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{var 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);s*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),o=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(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{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var 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=this.opacity<100?"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 new mxRectangle(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,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 new mxRectangle(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,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],o=(a=(t=n?t[0]:t[a-1]).x-i.x,t.y-i.y),s=(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),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 new mxRectangle(t,n,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},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 3*n*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},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 null!=(t=null!=(n=this.graph.view.getState(t))?n.style:this.graph.getCellStyle(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]&&(null==(a=n(i[o]=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),o=(i=this.getParentOffset(i),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&&(t-=(s=this.getParentOffset(s)).x,n-=s.y)),i.x==t&&i.y==n||((i=i.clone()).x=t,i.y=n,a.setGeometry(e,i))}return o},mxGraphLayout.prototype.getVertexBounds=function(e){var t=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var n=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/n,o=Math.max(r.y-a.y,0)/n,s=Math.max(a.x+a.width-(r.x+r.width),0)/n,r=Math.max(a.y+a.height-(r.y+r.height),0)/n;t=new mxRectangle(t.x-i,t.y-o,t.width+i+s,t.height+o+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),t=t.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),t.x+=e.x,t.y+=e.y)),new mxRectangle(t.x,t.y,t.width,t.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()).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&&t<n)break;r=n}o=i.getIndex(e),o=Math.max(0,s-(o<s?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);i=i-(2*this.spacing+2*this.border);var 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{l=0,r=null;for(var 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){var i=0,o=0,s=n.getChildCount(a);for(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&&t<r)break;o=r}}t=a.getIndex(e),t=Math.max(0,i-(t<i?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++){var r=n.getChildAt(e,s);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(o=i.length)){var l=this.border,d=this.border,c=(c=t?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=t?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(o-1)*this.spacing,0<(a=t?(a.width-l-e)/o:(a.height-d-e)/o)){n.beginUpdate();try{for(s=0;s<o;s++){r=i[s];var m=n.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,t?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),n.setGeometry(r,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)!=(r=this.isHorizontal()?this.horizontalLayout(i,o,s):this.verticalLayout(i,null,o,s))){var l=a=0;r.x<0&&(a=Math.abs(o-r.x)),r.y<0&&(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;i=this.createNode(e),a=this.graph.getModel();var 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++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=s.getState(l))?d.getVisibleTerminal(this.invert):s.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,t,n))&&null!=a.getGeometry(l)&&(null==o?i.child=d:o.next=d,o=d)}}}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;var a=n.width+t,i=a;for(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;return i<=e||e+n<=0?0:0<(s=0<i*a-n*o?e<0?e*a/n-t:0<e?e*o/i-t:-t:i<e+n?o-(t+(i-e)*a/n):e+n<i?(n+e)*o/i-(t+a):o-(t+a))?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++;var 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);o=this.minEdgeJetty-this.prefVertEdgeOff;for(var s=0,r=this.getVertexBounds(n),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(n,d,!1),[]),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:a/2<l&&(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=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var s=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(s);this.indices[r]=a;var l=this.getVertexBounds(s),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),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 p=this.graph.getConnections(this.vertexArray[a],e);n=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<n.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(n[d]);var g=this.indices[r];this.neighbours[a][d]=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!=(l=this.getVertexBounds(s))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(s,m,u),n=null==n?m:Math.min(n,m),e=null==e?u:Math.min(e,u)));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]){(n=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(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]){(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])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,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),a=a/o*(s=this.forceConstantSquared/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+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var t=e[0];if((s=(n=this.graph.getModel()).getGeometry(n.getTerminal(t,!0)))==(o=n.getGeometry(n.getTerminal(t,!1)))){t=s.x+s.width+this.spacing;for(var 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){t=s.x+s.width/2,n=s.y+s.height/2,a=o.x+o.width/2-t;var i=o.y+o.height/2-n,o=Math.sqrt(a*a+i*i),s=i*this.spacing/o;for(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))&&(null!=(o=o.clone()).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){l=new mxGraphHierarchyEdge(r);for(var 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],mxUtils.indexOf(n[i].connectsAsSource,l)<0&&n[i].connectsAsSource.push(l)}}}n[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var t=0;t<this.roots.length;t++){var n=mxCellPath.create(this.roots[t]);null!=(n=this.vertexMapper[n])&&e.push(n)}for(var a in this.vertexMapper)(n=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var o,s;o=(n=e[0]).connectsAsTarget,s=n.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(t=0;t<o.length;t++){var d=o[t];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(n.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=s)for(t=0;t<s.length;t++)(d=s[t]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(t=e.shift(),e.push(n),t==n&&1==e.length)break}for(a in this.vertexMapper)(n=this.vertexMapper[a]).temp[0]-=this.maxRank;for(t=0;t<i.length;t++)for(e=0,o=(n=i[t]).connectsAsSource,a=0;a<o.length;a++)d=(d=o[a]).target,n.temp[0]=Math.max(e,d.temp[0]+1),e=n.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var o=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)o[e]=[],this.ranks[e]=o[e];var t=null;if(null!=this.roots){var n=this.roots;for(t=[],e=0;e<n.length;e++){var a=mxCellPath.create(n[e]);t[e]=this.vertexMapper[a]}}this.visit(function(e,t,n,a,i){if(0==i&&t.maxRank<0&&t.minRank<0&&(o[t.temp[0]].push(t),t.maxRank=t.temp[0],t.minRank=t.temp[0],t.temp[0]=o[t.maxRank].length-1),null!=e&&null!=n&&1<e.maxRank-t.maxRank)for(n.maxRank=e.maxRank,n.minRank=t.maxRank,n.temp=[],n.x=[],n.y=[],e=n.minRank+1;e<n.maxRank;e++)o[e].push(n),n.setGeneralPurposeVariable(e,o[e].length-1)},t,!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(a(e,i[s]=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),null==i[s=mxCellPath.create(t.cell)])for(a(e,i[s]=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(var t=0;t<e.ranks.length;t++)this.nestedBestRanks[t]=e.ranks[t].slice();var n=0,a=this.calculateCrossings(e);for(t=0;t<this.maxIterations&&n<this.maxNoImprovementIterations;t++){this.weightedMedian(t,e),this.transpose(t,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=n=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(n++,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==a)break}for(n=[],a=[],t=0;t<e.maxRank+1;t++)a[t]=[],n[t]=a[t];for(t=0;t<this.nestedBestRanks.length;t++)for(i=0;i<this.nestedBestRanks[t].length;i++)a[t].push(this.nestedBestRanks[t][i]);e.ranks=n},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=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);s[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<o;c++)if(201207==s[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==s[a][l]&&n++;for(a=0;a<r;a++)for(l=c+1;l<o;l++)201207==s[a][l]&&n++}return n/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,t){for(var n=!0,a=0;n&&a++<10;)for(var i=1==e%2&&1==a%2,o=(n=!1,0);o<t.ranks.length;o++){for(var s=t.ranks[o],r=[],l=0;l<s.length;l++){(f=(b=s[l]).getGeneralPurposeVariable(o))<0&&(f=l),r[f]=b}var d=f=b=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<s.length-1;l++){if(0==l){for(var b=(v=r[l]).getNextLayerConnectedCells(o),f=v.getPreviousLayerConnectedCells(o),A=(m=[],u=[],0);A<b.length;A++)m[A]=b[A].getGeneralPurposeVariable(o+1);for(A=0;A<f.length;A++)u[A]=f[A].getGeneralPurposeVariable(o-1)}else b=d,f=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(o),c=h.getPreviousLayerConnectedCells(o),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(o+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(o-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(o),v.setGeneralPurposeVariable(o,h.getGeneralPurposeVariable(o)),h.setGeneralPurposeVariable(o,d),d=b,c=f,p=m,g=u,h=v,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,r,l=this.nestedBestRanks[e][o],d=new MedianCellSorter;d.cell=l,r=t?e+1:e-1,null!=(s=t?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=s.length?(d.medianValue=this.medianValue(s,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),o=0;o<n;o++)null==i[o]&&(l=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:(o=n[(i=a/2)-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(),o={},s=mxUtils.clone(t.vertexMapper,null,!0),n=null;if(null!=t.roots){var a=t.roots;n=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);n[e]=t.vertexMapper[i]}}if(t.visit(function(e,t,n,a,i){t.isAncestor(e)&&(n.invert(),mxUtils.remove(n,e.connectsAsSource),e.connectsAsTarget.push(n),mxUtils.remove(n,t.connectsAsTarget),t.connectsAsSource.push(n)),e=mxCellPath.create(t.cell),o[e]=t,delete s[e]},n,!0,null),n=null,0<s.lenth&&(n=mxUtils.clone(s,null,!0)),e=mxUtils.clone(o,null,!0),t.visit(function(e,t,n,a,i){t.isAncestor(e)&&(n.invert(),mxUtils.remove(n,e.connectsAsSource),t.connectsAsSource.push(n),e.connectsAsTarget.push(n),mxUtils.remove(n,t.connectsAsTarget)),e=mxCellPath.create(t.cell),o[e]=t,delete s[e]},s,!0,e),a=this.layout.getGraph(),null!=n&&0<n.length)for(t=t.roots,e=0;e<n.length;e++)i=n[e].cell,0==a.getIncomingEdges(i).length&&t.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};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)}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++){var s=a[i][o];(r=new WeightedCellSorter(s,i)).rankIndex=o,r.visited=!0,t.push(r),n[s=mxCellPath.create(s.getCoreCell())]=r}}for(e=10*t.length,o=0;0<t.length&&o<=e;){i=(r=t.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(s=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=s.length,u=c.length,p=this.medianXValue(s,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),b=h;if(0<v&&(b=(p*m+g*u)/v),m=!1,b<h-1?0==d?(i.setGeneralPurposeVariable(l,b),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<b?(i.setGeneralPurposeVariable(l,b),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<b&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,b),m=!0):b<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,b),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<s.length;i++)l=s[i],null!=(l=n[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,t.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=n[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,t.push(l))}r.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=0<(r=l.length)?this.medianXValue(l,n):s.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[o].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(t[c].getCoreCell())])){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(null!=(m=i[m=mxCellPath.create(t[c].getCoreCell())])){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++)}l<=r&&r<=u?s.setGeneralPurposeVariable(e,r):r<l?(s.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(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)]:(n[(a=e.length/2)-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(!(i.maxRank-i.minRank-1<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){s=o=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(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--)m==(u=i.getX(l-1))?(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(r<s||r<o)if(o<=s)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(s<o)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(i<0)return!1;if(a<(o=t.getGeneralPurposeVariable(n))){if(0==i)return!0;if(!((n=(n=(e=e[i-1]).getGeneralPurposeVariable(n))+e.width/2+this.intraCellSpacing+t.width/2)<=a))return!1}else if(o<a){if(i==e.length-1)return!0;if(!(a<=(n=(n=(e=e[i+1]).getGeneralPurposeVariable(n))-e.width/2-this.intraCellSpacing-t.width/2)))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){var s=o[a];if(this.setVertexLocation(s),this.layout.resizeParent){s=e.model.getParent(s.cell);var r=mxCellPath.create(s);null==n[r]&&(n[r]=s)}}for(a in this.layout.resizeParent&&null!=n&&this.adjustParents(n),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(t),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;r<2;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);var m=(c=i.x[0]-i.width/2)+i.width,u=o=0;for(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 v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(o+=p[v].edges.length,u++,s.push(p[v]))}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,v=mxCellPath.create(s[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<o/2?m+=this.prefVertEdgeOff:o/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+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]),s=(o=this.jettyPositions[o],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,v=p?this.rankTopY[a]:this.rankBottomY[n],h=o[4*i+1+g];p&&(h=-h),v+=h,g=o[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?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,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+t;var b=(this.rankTopY[c]+this.rankBottomY[c+1])/2,f=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=b;b=f,f=A}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+=v}null!=o&&(g=p?2:0,v=p?this.rankBottomY[n]:this.rankTopY[a],h=o[4*i+3-g],p&&(h=-h),v-=h,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=null!=(g=r.view.getState(p))?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,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,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),s<(l=d-c)&&(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&&(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;){var s=this.findRoots(e,a);for(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]);for(i in o=!0,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++){for(i in a=[],r=t[o])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){var n=null;if(null!=e){n=[];for(var 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){var n=[];t=t||this.getRoot(),(null==e||e(t))&&n.push(t);for(var a=this.getChildCount(t),i=0;i<a;i++){var o=this.getChildAt(t,i);n=n.concat(this.filterDescendants(e,o))}return n},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())if((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){n=t;var i=a,o=(a=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);(l==e&&d==t||!n&&(d==e&&l==t))&&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(this.updateLevel--,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={};for(var i in this.mergeChildrenImpl(e,t,n,a),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||mxUtils.indexOf(this.edges,e)<0)&&(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,n=(e=n).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]){a=0==e[i].length||0==t[i].length?e[i]==t[i]?0:e[i]>t[i]?1:-1:(n=parseInt(e[i]))==(i=parseInt(t[i]))?0:i<n?1:-1;break}return 0==a&&((n=e.length)!=(i=t.length)&&(a=i<n?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||r-d<o?(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(o<=n&&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(i<=t&&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 d-=(i=m/c)*l,l=i*(s=(-(e=-2*l*(o=s*s*i*i+r*r))+(r=Math.sqrt(e*e-4*o*(s*s*i*i*l*l+r*r*l*l-s*s*r*r))))/(2*o))+d,d=i*(r=(-e-r)/(2*o))+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,o=i<t?(n=s,l):(n=r,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 new mxPoint(s,n<r?i:i+e);if(r==n)return new mxPoint(l<s?t:t+o,r);var d=s,c=r;return a&&(t<=l&&l<=t+o?d=l:i<=n&&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,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=t==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?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),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)))&&(v=new mxPoint(l,d)),v}};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(){}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(var g=0;g<b.length;g++)e(b[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*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,A=g*m+b+1;(n=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-f,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(n,null!=v||g<u-1||b<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.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,"svg"==(t=n.nodeName.toLowerCase())?(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){var n=t;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(n=null!=n&&";"!=e.charAt(0)?mxUtils.clone(n):{},0);i<a.length;i++){var o=(s=a[i]).indexOf("=");if(0<=o){var s,r=s.substring(0,o);(s=s.substring(o+1))==mxConstants.NONE?delete n[r]:mxUtils.isNumeric(s)?n[r]=parseFloat(s):n[r]=s}else if(null!=(s=this.styles[s]))for(r in s)n[r]=s[r]}return n},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 null!=(e=this.getVisibleTerminalState(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);if(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;else if(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+=" "),a=mxUtils.htmlEntities(a,!1),n?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),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)!=n.text&&this.isHideLabel(n)&&(this.textNode=n.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(n.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,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))==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))==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=(n=e.view).graph.getModel();if(n.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(n.graph.keepEdgesInBackground){var n,a=e.shape.node,i=a.parentNode;t=t.getParent(e.cell);null!=(i=null!=(n=n.getState(t))&&null!=n.shape&&null!=n.shape.node?n.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)!=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(n,e){var a=n.view.graph;if(a.getModel().isEdge(n.cell),0<n.style[mxConstants.STYLE_FONTSIZE]||null==n.style[mxConstants.STYLE_FONTSIZE]){var t=a.isHtmlLabel(n.cell)||null!=e&&mxUtils.isNode(e);n.text=new this.defaultTextShape(e,new mxRectangle,n.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(n),n.style[mxConstants.STYLE_FONTCOLOR],n.style[mxConstants.STYLE_FONTFAMILY],n.style[mxConstants.STYLE_FONTSIZE],n.style[mxConstants.STYLE_FONTSTYLE],n.style[mxConstants.STYLE_SPACING],n.style[mxConstants.STYLE_SPACING_TOP],n.style[mxConstants.STYLE_SPACING_RIGHT],n.style[mxConstants.STYLE_SPACING_BOTTOM],n.style[mxConstants.STYLE_SPACING_LEFT],n.style[mxConstants.STYLE_HORIZONTAL],n.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],n.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(n.cell)&&a.isHtmlLabel(n.cell),a.isLabelClipped(n.cell),n.style[mxConstants.STYLE_OVERFLOW],n.style[mxConstants.STYLE_LABEL_PADDING]),n.text.opacity=mxUtils.getValue(n.style,mxConstants.STYLE_TEXT_OPACITY,100),n.text.dialect=t?mxConstants.DIALECT_STRICTHTML:n.view.graph.dialect,n.text.state=n,this.initializeLabel(n);var i=!1,o=function(e){var t=n;return(mxClient.IS_TOUCH||i)&&(t=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,t,e),t=a.view.getState(a.getCellAt(e.x,e.y))),t};mxEvent.addGestureListeners(n.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,o(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,o(e))),i=!1)})),mxEvent.addListener(n.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&(a.dblClick(e,n.cell),mxEvent.consume(e))}))}},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){n=new mxDictionary;for(var 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)).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(t,n,e){var a=t.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),n.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",t.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,t))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){n.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",t.cell))})},mxCellRenderer.prototype.createControl=function(n){var a=n.view.graph,e=a.getFoldingImage(n);if(a.foldingEnabled&&null!=e){if(null==n.control){var t=new mxRectangle(0,0,e.width,e.height);n.control=new mxImageShape(t,e.src),n.control.preserveImageAspect=!1,n.control.dialect=a.dialect,this.initControl(n,n.control,!0,function(e){if(a.isEnabled()){var t=!a.isCellCollapsed(n.cell);a.foldCells(t,!1,[n.cell]),mxEvent.consume(e)}})}}else null!=n.control&&(n.control.destroy(),n.control=null)},mxCellRenderer.prototype.initControl=function(t,e,n,a){var i=t.view.graph;return i.isHtmlLabel(t.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(t.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),n&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,t))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,t){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,t){return!0},mxCellRenderer.prototype.installListeners=function(n){var a=n.view.graph,t=function(e){var t=n;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(t=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,t,e),t=a.view.getState(a.getCellAt(e.x,e.y))),t},i=!1;mxEvent.addListener(n.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(n.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(n,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:n)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(n,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:t(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(n,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:t(e))):i&&mxEvent.consume(e)}));var o=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(n.shape.node,o,mxUtils.bind(this,function(e){i=!1,"gestureend"==o?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(n,e),mxEvent.consume(e))):this.isShapeEvent(n,e)&&(a.dblClick(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:n.cell),mxEvent.consume(e))}))},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)&&(0<(t=t.getStartSize(e.cell)).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()){var 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]){n=e.view.scale;var 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(o,s){if(this.createCellOverlays(o),null!=o.overlays){var r=mxUtils.mod(mxUtils.getValue(o.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);o.overlays.visit(function(e,t){var n=t.overlay.getBounds(o);if(!o.view.graph.getModel().isEdge(o.cell)&&null!=o.shape&&0!=r){var a=n.getCenterX(),i=n.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(o.getCenterX(),o.getCenterY()))).x,i=i.y;n.x=Math.round(a-n.width/2),n.y=Math.round(i-n.height/2)}!s&&null!=t.bounds&&t.scale==o.view.scale&&t.bounds.equals(n)||(t.bounds=n,t.scale=o.view.scale,t.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)return null;var t=e.control.scale,n=e.control.bounds.width/t,a=(t=e.control.bounds.height/t,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),i=(o=mxUtils.getRotatedPoint(new mxPoint(i,o),s,r,new mxPoint(e.getCenterX(),e.getCenterY()))).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))},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).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)).relative?d=r.x<=.5:null!=n&&(d=n.x+n.width<t.x)}r=!0,null!=l?((n=new mxCellState).x=l.x,n.y=l.y):null!=n&&((c=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=s.getCellGeometry(n.cell)).relative?r=e.x<=.5: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){var o=(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 s=0,r=0,l=0,d=0;o=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,o.gridSize)*n.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(s=n.getRoutingCenterX(t),r=o):(l=n.getRoutingCenterY(t),d=o),null==a||a.x<t.x||a.x>t.x+t.width?null!=a?(s=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=t.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=t.y+t.height+2*r:s=e==mxConstants.DIRECTION_EAST?t.x-2*d:t.x+t.width+2*d:null!=a&&(s=n.getRoutingCenterX(t),r=Math.max(Math.abs(s-a.x),d),l=a.y,d=0),i.push(new mxPoint(s-r,l-d)),i.push(new mxPoint(s+r,l+d))}},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),c=(r=Math.min(t.y,n.y),Math.max(t.y+t.height,n.y+n.height));s=(o=e.view.transformControlPoint(e,o)).y<r||o.y>c,r=o.x<l||o.x>d}else(s=(l=Math.max(t.x,n.x))==(d=Math.min(t.x+t.width,n.x+n.width)))||(r=(r=Math.max(t.y,n.y))==(c=Math.min(t.y+t.height,n.y+n.height)));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).x=s.x,t.y=s.y),null!=r&&((n=new mxCellState).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).x=s.x,t.y=s.y),null!=r&&((n=new mxCellState).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){r=e.view.transformControlPoint(e,a[0]);for(var c=t,m=o[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=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=h||null==m&&c;if(null!=m&&!b&&!h&&(f||c)){s=!f;break}if(p||u){s=u,1==v&&(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,v=0;v<a.length;v++)s=!s,r=e.view.transformControlPoint(e,a[v]),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;s=null!=t?t.y:r.y;var 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,v=(o=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=t&&(v[0]=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=n&&(v[1]=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,s,d,c],[m,u,p,g]],d=0;d<2;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),d<(s=0)?s=c<0?2:1:c<=0&&(s=3,0==d&&(s=2)),(c=null)!=t&&(c=r),t=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(t[d][0]=(c.x-a[d][0])/a[d][2],t[d][0]<.01?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],t[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<t[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=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]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*o<m&&2*o<c&&(0<(r[0]&v[0])&&0<(l[1]&v[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]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*o<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*o<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),n[d]=u[d][0]&v[d],n[d]|=(u[d][1]&v[d])<<8,n[d]|=(u[1-d][d]&v[d])<<16,n[d]|=(u[1-d][1-d]&v[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],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=s)<1&&(d+=4),(v-=s)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-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(r=n=(o=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[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 h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<s)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(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)<1&&(i+=4),(e-=t)<1&&(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}};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(var a=0;a<n.length;a++)e.validateBounds(t,n[a]);var i=null;for(a=0;a<n.length;a++){var o=e.validatePoints(t,n[a]);null==i?i=o:i.add(o)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}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(t){if(null!=t){this.editor=t,this.handler=new mxKeyHandler(t.graph);var n=this.handler.escape;this.handler.escape=function(e){n.apply(this,arguments),t.hideProperties(),t.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}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()})))}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)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(o=this.graph.getCellGeometry(t))){if(!n.isEdge(t)){var i=o.offset||this.EMPTY_POINT;o.relative?(a.origin.x+=o.x*e.width/this.scale+i.x,a.origin.y+=o.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=o.x,a.origin.y+=o.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*o.width,a.height=this.scale*o.height,n.isVertex(t)){if(o.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var o=Math.cos(i),s=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());o=mxUtils.getRotatedPoint(s,o,i,r);a.x=o.x-a.width/2,a.y=o.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(t);null!=(i=this.graph.getChildOffsetForCell(t))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(o=n.getChildCount(t),i=0;i<o;i++)s=n.getChildAt(t,i),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)o(e,n=this.getTerminalPort(e,n,!0),a=this.getTerminalPort(e,a,!1),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;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;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;a=0;var s=[];if(null!=(o=n)){n=o.x;for(var 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;r+s<o&&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){a=t.y;var 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],l=(r=e.absolutePoints[d+1]).x,o=r.y,o=(l=(e=s.x-l)-(l=t-l))*e+(o=(d=s.y-o)-(o=n-o))*d,a<(e=Math.sqrt(o<=0?0:o*o/(e*e+d*d)))&&(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){var t=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=t&&0<t.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(n=this.getPoint(e,i))&&(e.absoluteOffset=n)}else{var n=t[0],a=t[t.length-1];if(null!=n&&null!=a){t=a.x-n.x;var i,o=a.y-n.y,s=a=0;null!=(i=i.offset)&&(a=i.x,s=i.y),i=n.y+o/2+s*this.scale,e.absoluteOffset.x=n.x+t/2+a*this.scale,e.absoluteOffset.y=i}}},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){var t=this.graph.getCellStyle(e);return e=new mxCellState(this,e,t),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){var t=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-t.x,e.clientY-t.y);t=this.graph.container.offsetWidth;var n=this.graph.container.clientWidth;return n<t&&e.x>n+2&&e.x<=t||(t=this.graph.container.offsetHeight,(n=this.graph.container.clientHeight)<t&&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 a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,t){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var t,n;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(t=e,n=null,mxClient.IS_TOUCH&&(n=mxEvent.getClientX(t),t=mxEvent.getClientY(t),t=mxUtils.convertPoint(i,n,t),n=a.view.getState(a.getCellAt(t.x,t.y))),n)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),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&&mxUtils.indexOf(t,i)<0&&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(n,e,t,a){return null!=e&&0<e.length?(e=new mxCellOverlay(t=null!=t?t:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,t){this.isEnabled()&&this.setSelectionCell(n)})),this.addCellOverlay(n,e)):(this.removeCellOverlays(n),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).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)).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)).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){var a;(t=null!=t&&t,null!=(n=n||this.getSelectionCells())&&0<n.length)&&(null!=(a=null!=(a=this.view.getState(n[0]))?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){var i;if(null==n)null!=(i=null!=(i=this.view.getState(a[0]))?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;var n=null;if(null!=e){for(var a={},i=(n=[],0);i<e.length;i++){a[o=mxCellPath.create(e[i])]=e[i],n.push(e[i])}if(0<n.length){var o=this.view.scale,s=this.view.translate;for(n=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!t&&this.model.isEdge(n[i])&&null!=this.getEdgeValidationError(n[i],this.model.getTerminal(n[i],!0),this.model.getTerminal(n[i],!1)))n[i]=null;else{var r=this.model.getGeometry(n[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(n[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[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==a[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 n=[]}return n},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)).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;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!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(null==a[o=mxCellPath.create(s[r])]){if(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=null!=(n=this.view.getState(e))?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.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){var t=null;if(null!=e){var n=this.view.getState(e),a=null!=n?n.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,o=0;t=0;null==this.getImage(n)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(o+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(t+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),o+=2*(a[mxConstants.STYLE_SPACING]||0),o+=a[mxConstants.STYLE_SPACING_LEFT]||0,o+=a[mxConstants.STYLE_SPACING_RIGHT]||0,t+=2*(a[mxConstants.STYLE_SPACING]||0),t+=a[mxConstants.STYLE_SPACING_TOP]||0,t+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(n=this.getFoldingImage(n))&&(o+=n.width+8),t=null!=(n=this.getLabel(e))&&0<n.length?(this.isHtmlLabel(e)||(n=n.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(n,i,a[mxConstants.STYLE_FONTFAMILY])).width+o,t=i.height+t,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=t,t=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),t=this.snap(t+this.gridSize/2)),new mxRectangle(0,0,e,t)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return t},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()).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())if(null!=(i=this.model.getGeometry(t))){var n=e=0,a=i.width,i=i.height;return this.isSwimlane(t)&&(e=(t=this.getStartSize(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()).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])){if(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 v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/t-n.x+l,c[v].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(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(n.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;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";var o=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=n.parentNode?o.appendChild(a):o=this.shiftPreview2,a=i;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)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var o=(e-1)/(2*n);a=a*-o,i=i*-o}else a*=o=(1/e-1)/(2*this.view.scale),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,t<1?(n=((t=e.height/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):(n=((t*=e.width)-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{s=-this.view.translate.x;var 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)return this.allowDanglingEdges?null:"";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},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,n,t,a){var i=null;return null!=e&&(null==e.control||n!=e.control.node&&n.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,t){null!=i||n!=t.node&&n.parentNode!=t.node||(i=t.overlay.toString())}),null==i&&(null!=(t=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof t.getTooltipForNode&&(i=t.getTooltipForNode(n))),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){var t;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(t=null!=(t=this.view.getState(e))?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)return!1;var t=this.cellEditor.getEditingCell();return null==e?null!=t:e==t},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))).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)&&mxUtils.indexOf(e,n)<0?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()),t=(i=mxUtils.getRotatedPoint(new mxPoint(t,n),a,i,o)).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++)l=null!=(c=this.view.getState(s[d]))?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&&(null==o[d=mxCellPath.create(r)]&&(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),r<(c=n?u-m:m-u)&&(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]&&(null==(a=n(i[o]=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=e?(t++,this.model.getChildAt(i,t%o)):(t--,this.model.getChildAt(i,t<0?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(t,n,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&t||this.model.isEdge(e)&&n)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},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&&(t=this.model.isEdge(e.cell)?(t=this.view.getEdgeStyle(e),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)):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?a=1==(t=e.absolutePoints).length%2?t[Math.floor(t.length/2)]:(e=t[(a=t.length/2)-1],t=t[a],new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2)):((a=new mxPoint).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(),o=(a=Math.max(i.width/t,o.width),t=Math.max(i.height/t,o.height),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);i=(t=this.source.view.translate).x+this.source.panDx;var s=t.y+this.source.panDy;null!=(o=this.getOutlineOffset(o))&&(i+=o.x,s+=o.y),n.x<0&&(i-=n.x),n.y<0&&(s-=n.y),a.translate.x==i&&a.translate.y==s||(a.translate.x=i,a.translate.y=s,e=!0);n=a.translate,i=(o=this.source.getView().scale)/a.scale,s=1/a.scale;var 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)a=n/((i=this.source.container).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){a=this.selectionBorder.bounds.width;var 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,c=(n=i.x-o.origin.x-l.x*d,o=i.y-o.origin.y-l.y*d,l=i.x+i.width,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();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=o)(p=p.clone()).translate(-t,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=s)(p=p.clone()).translate(0,-n);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),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,r=(o=t.getParent(o),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))if(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)).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))o=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),s)).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,a=(i=this.snap(new mxPoint(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);l=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled();var 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,s=(a=this.currentDy/a,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)!=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),null!=(t=this.getStateToMark(t.getState(cell)))&&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 a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,t){return t=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(t)?(null!=t?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,t),null!=this.error&&0==this.error.length&&(t=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(t)||(t=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),t):null}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,t,n){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,t){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},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)return null;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},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)){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))){n=Math.cos(o);var o=Math.sin(o),s=new mxPoint(t.getCenterX(),t.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),n,o,s)).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)!=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)!=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=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,o=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,o,!1))&&(n=i)}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).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)).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),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).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,s=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(o=this.getImageForConstraint(e.getState(),this.constraints[i],s)).src;(o=new mxImageShape(o=new mxRectangle(s.x-o.width/2,s.y-o.height/2,o.width,o.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,o.preserveImageAspect=!1,o.init(this.graph.getView().getOverlayPane()),null!=o.node.previousSibling&&o.node.parentNode.insertBefore(o.node,o.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),o.redraw(),mxEvent.redirectMouseEvents(o.node,this.graph,r),this.currentFocusArea.add(o.bounds),this.focusIcons.push(o),this.focusPoints.push(s)}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)).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;a=t.getX()+n.x,n=t.getY()+n.y;var 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),mxGraphHandler.prototype.maxCells<=0||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)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||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())).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=new mxRectangle(0,0,n=n||mxConstants.HANDLE_SIZE,n),(a=this.createSizerShape(n,t,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,n=(t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,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:s<0?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()),m=(o=n.x-this.startX,s=n.y-this.startY,n=this.graph.view.translate,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){var n=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 a=this.graph.isGridEnabledEvent(t.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(-i),s=Math.sin(-i),r=(n=s*(r=n.x-this.startX)+o*(l=n.y-this.startY),o*r-s*l),l=n,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),t.consume()}},mxVertexHandler.prototype.rotateCell=function(e,t){var n=this.graph.getModel();if(n.isVertex(e)){if(null!=(o=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(o.style[mxConstants.STYLE_ROTATION]||0)+t,[e]),this.state.cell!=e&&(null!=(o=this.graph.getCellGeometry(e))&&!o.relative))if(0!=t){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!o.relative&&null!=i){var o,s=mxUtils.toRadians(t),r=(a=Math.cos(s),s=Math.sin(s),new mxPoint(o.getCenterX(),o.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,s,i);(o=o.clone()).x=a.x-o.width/2,o.y=a.y-o.height/2,n.setGeometry(e,o)}}else(o=o.clone()).x+=dx,o.y+=dy,n.setGeometry(e,o);for(o=n.getChildCount(e),a=0;a<o;a++)this.rotateCell(n.getChildAt(e,a),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,null==(o=o.clone()).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()).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)):a<3&&(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)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(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),r=(o=Math.sin(o),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){var t=this.state.cell;if(null!=this.index){var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));t=this.graph.getCellAt(n.x,n.y);this.graph.isSwimlane(t)&&this.graph.hitsSwimlaneContent(t,n.x,n.y)&&(t=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(t)))}),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||mxGraphHandler.prototype.maxCells<=0)&&(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())).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),a=this;return e.getCell=function(e){var t=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(t))return null;var n=a.graph.getModel();return(t==a.state.cell||null!=t&&!a.graph.connectableEdges&&n.isEdge(t))&&(t=null),t},e.isValidState=function(e){var t=a.graph.getModel();t=null!=(t=a.graph.view.getTerminalPort(e,a.graph.view.getState(t.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?t.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:t,a.isSource?t:e.cell),null==a.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,n=(t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,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 n=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),t=this.graph.getView(),i=!1,o=!1;if(this.snapToTerminals&&0<a){var s=function(e){if(null!=e){var t=e.x;Math.abs(n.x-t)<a&&(n.x=t,i=!0),e=e.y,Math.abs(n.y-e)<a&&(n.y=e,o=!0)}},r=function(e){null!=e&&s.call(this,new mxPoint(t.getRoutingCenterX(e),t.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=t.scale,r=t.translate,i||(n.x=(this.graph.snap(n.x/e-r.x)+r.x)*e),o||(n.y=(this.graph.snap(n.y/e-r.y)+r.y)*e)),n},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()).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(),null!=(t=this.graph.getLabel(e))&&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,a=(e=this.abspoints[0],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();a=this.abspoints[n];var i=this.abspoints[n].x,o=(n=this.abspoints[n].y,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)||(i=(a=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"),d=(l=mxResources.get(l)||l,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(t,n){var a=document.createElement("img");a.setAttribute("src",t.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*t.offsetWidth+"px",a.style.height=2*t.offsetHeight+"px",mxUtils.makeDraggable(t,this.editor.graph,n,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},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="
",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(t,e,n){var a=this.actions[t];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+t+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+t,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)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var t=null,n=i.graph.getModel();return null!=n.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),t=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==n.getParent(n.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),t=i.diagramLayout)),t},e},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(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,t){var n=t.getProperty("cell");null!=n&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,n),t.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");this.undoManager.undoableEditHappened(n)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,t){var n=t.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(n))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},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(o){var e=mxUtils.bind(this,function(e,t){this.setModified(!0),1==this.validating&&o.validateGraph();for(var n=t.getProperty("edit").changes,a=0;a<n.length;a++){var i=n[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});o.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var n=this;e.addMouseListener({mouseDown:function(e,t){null==n.insertFunction||t.isPopupTrigger()||!n.forcedInserting&&null!=t.getState()||(n.graph.clearSelection(),n.insertFunction(t.getEvent(),t.getCell()),this.isActive=!0,t.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(t){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){t.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(t)},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(t,n){this.escapePostData&&(n=encodeURIComponent(n)),mxUtils.post(t,this.postParameterName+"="+n,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",t,"data",n))}))},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(n){var a=this.graph.getModel(),e=a.getValue(n);if(mxUtils.isNode(e)){var t=new mxForm("properties");t.addText("ID",n.getId()).setAttribute("readonly","true");var i=null,o=null,s=null,r=null,l=null;a.isVertex(n)&&(null!=(i=a.getGeometry(n))&&(o=t.addText("top",i.y),s=t.addText("left",i.x),r=t.addText("width",i.width),l=t.addText("height",i.height)));var d=a.getStyle(n),c=t.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=t.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(s.value),i.y=parseFloat(o.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(n,i)),0<c.value.length?a.setStyle(n,c.value):a.setStyle(n,null);for(var e=0;e<m.length;e++){var t=new mxCellAttributeChange(n,m[e].nodeName,u[e].value);a.execute(t)}this.graph.isAutoSizeCell(n)&&this.graph.updateCellSize(n)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),t.addButtons(e,d),t.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 t=document.createElement("div");t.style.padding="4px",t.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,t,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var n=mxUtils.bind(this,function(e){mxEvent.release(t),t.innerHTML="",this.createTasks(t)});this.graph.getModel().addListener(mxEvent.CHANGE,n),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,n),this.graph.addListener(mxEvent.ROOT,n),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(t)}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){r=s.width;var d=s.height,c=l.x+l.width;c<n+r&&(n-=n+r-c),(c=l.y+l.height)<a+d&&(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){var t=null;if(null!=e){t=mxUtils.getFunctionName(e);var 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}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,t,n,a){for(var i in this.template=e,this.exclude=null!=t?t:[],this.idrefs=null!=n?n:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}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),c.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)!=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){for(var a in e.setAttribute(n,"id",e.getId(t)),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="value"==a?t.nodeValue: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)return!1;if(null!=(t=t.getAttribute("name")))try{var a=mxUtils.load(t).getDocumentElement();null!=a&&e.decode(a,n)}catch(e){}return!0},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?(null!=(a=t.getElementsByTagName(i)[0])&&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++){i=this.idrefs[t];var 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,a){var t=new mxObjectCodec(e,["model","previous"],["cell"]);return t.afterDecode=function(e,t,n){return mxUtils.isNode(n.cell)&&(n.cell=e.decodeCell(n.cell,!1)),n.previous=n[a],n},t};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(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){for(var s in o.setAttribute("as",n),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"),o=(i=mxResources.get(i)||i,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)!=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++)"separator"==(c=s[i]).nodeName?n.addOption(d,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),c=c.getAttribute("action"),n.addActionOption(d,o,c));else{var g=null,v=n.addPrototype(i,o,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),t=g.options[g.selectedIndex].cellStyle;return null!=t&&e.setStyle(t),e},null,null,c);g=n.addCombo();for(mxEvent.addListener(g,"change",function(){n.toolbar.selectMode(v,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++)"separator"==(c=s[i]).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{a=parseInt(e.getAttribute("x"));var 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;this.container.style.overflow="hidden",(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,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[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","awspolly","getdigits","getsecretdigits","lumenvoxtts"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[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","googleasr","lumenvoxasr","tildeasr","dialogflow","awslex"],[[1,1],[1,1],[1,1],[1,1],[1,1],[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"]]),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,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),!this.isEnabled()||mxEvent.isConsumed(e)||t.isConsumed()||(this.getModel().isEdge(n)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(n.source.value.tagName)&&this.startEditingAtCell(n):this.getModel().isVertex(n)&&i.projectDesignController.openDialog(n.getValue(),function(e){for(var t=0;t<e.length;t+=1)n.setAttribute(e[t].name,e[t].value);a.refresh(n)}),t.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(),this.refresh()},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=190,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,a=(e=null!=e?e:n.model.getRoot(),t=null!=t?t:{},!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=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":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+=1<=e.value.getAttribute("priority")?"":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+=-1<=e.value.getAttribute("timeout")?"":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+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":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")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":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=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":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"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUriInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n"}if(n.model.isEdge(e))switch(n.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{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"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\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(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(t){var n=this.editor.graph,e=n.getDefaultParent(),a=0;return e.children.forEach(function(e){n.model.isVertex(e)&&e.value.nodeName==t&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var t=null!=e?e:window.location.pathname,n=0<t.indexOf("?")?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(var o=0;o<i.length;o++){var s=i[o];if(e.getModel().isEdge(s)&&(a=!0),e.getModel().isVertex(s)&&(n=!0),a&&n)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(o=0;o<r.length;o++)this.actions.get(r[o]).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(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=n&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(o=0;o<d.length;o++)this.menus.get(d[o]).setEnabled(t);d=["line","lineend","linestart"];for(o=0;o<d.length;o++)this.menus.get(d[o]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),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+390,n=this.container.clientHeight+190;this.container==document.body&&(t=document.body.clientWidth||document.documentElement.clientWidth,n=e&&document.body.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.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.diagramContainer.style.left=a+this.splitSize+"px",this.diagramContainer.style.top=this.sidebarContainer.style.top,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.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=s+"px",this.diagramContainer.style.width=t-a-this.splitSize+"px";var r=n-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"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.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",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(t,n,a,i){var o=null,s=null;function r(e){if(null!=o){var t=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,s+(n?t.x-o.x:o.y-t.y)-a)),mxEvent.consume(e)}}function e(e){r(e),s=o=null}mxEvent.addGestureListeners(t,function(e){o=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),s=parseInt(n?t.style.left:t.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},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){var a=this.editor.graph,s=new mxKeyHandler(a);function t(e){if(!a.isSelectionEmpty()){var t=0,n=0;37==e?t=-1:38==e?n=-1:39==e?t=1:40==e&&(n=1),a.moveCells(a.getSelectionCells(),t,n),a.scrollCellToVisible(a.getSelectionCell())}}s.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var n=mxUtils.bind(this,function(e,t,n,a){var i=this.actions.get(n);if(null!=i){var o=function(){i.enabled&&i.funct()};t?a?s.bindControlShiftKey(e,o):s.bindControlKey(e,o):a?s.bindShiftKey(e,o):s.bindKey(e,o)}});return s.enter=function(){},s.bindKey(8,function(){a.foldCells(!0)}),s.bindKey(13,function(){a.foldCells(!1)}),s.bindKey(33,function(){a.exitGroup()}),s.bindKey(34,function(){a.enterGroup()}),s.bindKey(36,function(){a.home()}),s.bindKey(35,function(){a.refresh()}),s.bindKey(37,function(){t(37)}),s.bindKey(38,function(){t(38)}),s.bindKey(39,function(){t(39)}),s.bindKey(40,function(){t(40)}),s.bindKey(113,function(){a.startEditingAtCell()}),n(46,!1,"delete"),n(82,!0,"tilt"),n(83,!0,"save"),n(83,!0,"saveAs",!0),n(107,!1,"zoomIn"),n(109,!1,"zoomOut"),n(65,!0,"selectAll"),n(86,!0,"selectVertices",!0),n(69,!0,"selectEdges",!0),n(69,!0,"export"),n(66,!0,"toBack"),n(70,!0,"toFront"),n(68,!0,"duplicate"),n(90,!0,"undo"),n(89,!0,"redo"),n(88,!0,"cut"),n(67,!0,"copy"),n(81,!0,"connect"),n(86,!0,"paste"),n(71,!0,"group"),n(71,!0,"grid",!0),n(85,!0,"ungroup"),n(112,!1,"about"),n(80,!0,"publish",!0),s},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){}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,n,a,i,t,o,s,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+t.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(t){r&&t[a]==r||((m=document.createElement("option")).text=t[a],o&&s?(m.value=s,o.forEach(function(e){m.value=m.value.replace("%"+e+"%",t[e])}),m.selected=m.value==n):(m.value=t[i],m.selected=t[i]==n),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,(0<t||""!=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(0<i.status){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,(0<e||""!=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(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),o=n.createHeader("h4");mxUtils.write(o,mxResources.get("import")+" XML");var s=mxUtils.button("",function(){n.hideDialog()});s.className="close",t.appendChild(s),t.appendChild(o);var r=n.createDiv("row"),l=n.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(e){var t=mxUtils.parseXml(d.value);n.editor.setGraphXml(t.documentElement),n.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}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="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),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 v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(h),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 v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(h),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function RenameDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),o=n.createHeader("h4");mxUtils.write(o,mxResources.get("rename"));var s=mxUtils.button("",function(){n.hideDialog()});s.className="close",t.appendChild(s),t.appendChild(o);var r=n.createDiv("row"),l=n.createDiv("col-md-4"),d=n.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=n.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+n.editor.data.id,!0),t.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),t.setRequestHeader("Authorization","Bearer "+n.editor.data.token),t.send("name="+u.value),t.onload=function(e){200===t.status?(n.editor.setStatus("Project successfully renamed"),n.editor.filename=u.value):(console.log(t.response),n.editor.setStatus(JSON.parse(t.response).errors[0].message))},t.onerror=function(e){mxUtils.alert(t.statusText)},n.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),o=t.createHeader("h4");mxUtils.write(o,mxResources.get("edit"));var s=mxUtils.button("",function(){t.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=t.createDiv("row"),l=t.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(t.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var t=e.dataTransfer.files[0],n=new FileReader;n.onload=function(e){d.value=e.target.result},n.readAsText(t)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);t.editor.setGraphXml(e.documentElement),t.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body form"),i=t.createDiv("modal-footer"),o=t.createHeader("h4");mxUtils.write(o,mxResources.get("export")+" XML");var s=mxUtils.button("",function(){t.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=t.createDiv("form-horizontal form-row-seperated"),l=t.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",t.editor.getOrCreateFilename()),c.className="form-control";var m=t.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(e){t.save(!1);encodeURIComponent(mxUtils.getXml(t.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+t.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),t.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,o){console.log("general");var s=i.editor.graph,e=i.createDiv("md-dialog"),t=i.createDiv("md-toolbar"),n=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(o.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",t.appendChild(l),t.appendChild(r);for(var d=o.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=o.value.attributes[m].name,g="_"+p,v=o.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),b=document.createElement("label");switch(b.className="col-sm-4 control-label",mxUtils.write(b,mxResources.get(p)),h.appendChild(b),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==o.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var f=i.createDiv("col-sm-8");if(f.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),f.appendChild(A)}h.appendChild(f),c.appendChild(h)}n.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var t=0;t<o.value.attributes.length;t++){var n="_"+o.value.attributes[t].name,a=o.value.attributes[t].name;o.setAttribute(a,document.getElementById(n).value)}s.refresh(o),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(t),e.appendChild(n),e.appendChild(a),this.container=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=Number(e.getAttribute("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&&0<o.length&&(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)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),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&&9<=document.documentMode?"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 n=e.apply(this,arguments);return n.intersects=mxUtils.bind(this,function(e,t){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(n,arguments)}),n},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=0<e.width?e.x/this.scale-this.translate.x:0,n=0<e.height?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 n=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,t){n.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=t+"px")};var a=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();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);if(this.graph.pageVisible){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("+a.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&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var o=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){for(var a=0;a<t.length;a++)if(this.graph.getModel().isVertex(t[a])){var i=this.graph.getCellGeometry(t[a]);if(null!=i&&i.relative)return!1}return o.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,t,n,a,i,o){var s=r.apply(this,arguments);return null==o||o||mxEvent.addListener(s,"mousedown",function(e){mxEvent.consume(e)}),s};var s=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var t=this.graph.getModel(),n=t.getParent(this.graph.getSelectionCell()),a=s.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 l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var t=l.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 o=this.graph,n=new mxUndoManager,e=function(e,t){n.undoableEditHappened(t.getProperty("edit"))};o.getModel().addListener(mxEvent.UNDO,e),o.getView().addListener(mxEvent.UNDO,e);var t=function(e,t){for(var n=o.getSelectionCellsForChanges(t.getProperty("edit").changes),a=[],i=1;i<n.length;i++)null!=o.view.getState(n[i])&&a.push(n[i]);o.setSelectionCells(a)};return n.addListener(mxEvent.UNDO,t),n.addListener(mxEvent.REDO,t),n},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},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(0<t.length&&"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("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),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","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["tts","ispeechtts","awspolly","lumenvoxtts"],["GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","awslex"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","AWSLex"]),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=5<=document.documentMode?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{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=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),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),t=e.width+2*this.tooltipBorder+4,n=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(n+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=t+"px",this.tooltipTitles&&null!=g&&0<g.length){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.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;n+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(n-=6,this.tooltipTitle.style.top=n-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=n+"px";var i=-Math.round(e.x-this.tooltipBorder),o=-Math.round(e.y-this.tooltipBorder),s=document.body,r=document.documentElement,l=(s.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-n/2+16);mxClient.IS_SVG?0!=i||0!=o?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+o+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=o+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+n/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},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&&0<e.length)for(var n=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<n.length;a++)if(n[a]=n[a].replace(/\.*\d*$/,""),1<n[a].length){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(0<o[c].length){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 v=l.length;a(l.slice(n*t,(n+1)*t),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;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(" ")},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 r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var n=document.createElement("div");n.style.whiteSpace="nowrap",n.style.textOverflow="clip",n.style.paddingBottom="8px",n.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",n.appendChild(a);var i,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?(a.style.height="28px",o.style.top="-4px"):o.style.top="2px",o.style.background="url('"+this.editorUi.editor.transparentImage+"')",n.appendChild(o),r.appendChild(n);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var t=e.nextSibling;e!=n&&e!=l&&e.parentNode.removeChild(e),e=t}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var s=new Object;this.currentSearch=s,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,t,n){if(this.currentSearch==s){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(n?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var o=document.createElement("div");o.className="geTitle",o.style.backgroundColor="transparent",o.style.borderColor="transparent",o.style.color="gray",o.style.padding="0px",o.style.margin="0px 8px 0px 8px",o.style.paddingTop="6px",o.style.textAlign="center",o.style.cursor="default",mxUtils.write(o,mxResources.get("noResultsFor",[c])),r.appendChild(o)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",o.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",o.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var s=document.createElement("div");s.appendChild(r),this.container.appendChild(s),this.palettes.search=[t,s]},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(t,n,a,e,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(t,this.thumbWidth,this.thumbHeight,r,n,a,e,i,o);var d=new mxRectangle(0,0,i,o);if(1<t.length||t[0].vertex){var c=this.createDragSource(r,this.createDropHandler(t,!0,s,d),this.createDragPreview(i,o),t,d);this.addClickHandler(r,c,t),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=t[0]&&t[0].edge){c=this.createDragSource(r,this.createDropHandler(t,!1,s,d),this.createDragPreview(i,o),t,d);this.addClickHandler(r,c,t)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,t,d.width,d.height,n,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,b){return h=null==h||h,mxUtils.bind(this,function(e,t,n,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var o=null!=n&&e.isValidDropTarget(n,g,t),s=null;if(null==n||o||(n=null),!e.isCellLocked(n||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(n,g,t)){var r=e.cloneCells(g);e.splitEdge(n,r,null,a-b.width/2,i-b.height/2),s=r}else 0<g.length&&(s=e.importCells(g,a,i,n));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(n);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<s.length;p++)l.moveCell(s[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",s))}finally{e.model.endUpdate()}null!=s&&0<s.length&&(e.scrollCellToVisible(s[0]),e.setSelectionCells(s))}}mxEvent.consume(t)}})},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,a){var i=this.editorUi.editor.graph,o=null;mxEvent.addGestureListeners(e,function(e){o=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var s=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=o){var t=i.tolerance;if(Math.abs(o.x-mxEvent.getClientX(e))<=t&&Math.abs(o.y-mxEvent.getClientY(e))<=t){var n=i.getGridSize();a.drop(i,e,null,n,n)}}s.apply(this,arguments),o=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,t,n,a,i,o,s,r){return r=null!=r&&0<r.length?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"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","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"lumenvoxtts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];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","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_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;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];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(n,a,i){var o=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(n.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="0% 50%",mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(o)a.style.display="block";else if(o=!0,null!=i){n.style.cursor="wait";var t=n.innerHTML;n.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",n.style.cursor="",n.innerHTML=t},0)}else a.style.display="block";n.style.backgroundImage="url('"+this.expandedImage+"')"}else n.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,t,o,s,r,n,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,t,n){if(null==n){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");n=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+o+e+s,this.defaultImageWidth,this.defaultImageHeight,r[d],t,!1,!0,this.filterTags(n)))})(r[d],null!=n?n[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,t,!1,l)},"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)&&1<this.graph.getSelectionCount()&&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&&0<t.length?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 o=!1,s=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(e,t,n){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(o=!1,s=null):(s=t.getCell(),o=null!=s?this.isCellSelected(s):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(o&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(t.getEvent()),i=mxEvent.getClientY(t.getEvent());this.panningHandler.popup(a+16,i,s,t.getEvent())}return o=!1,s=null,void t.consume()}o=!1,s=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&t.isConsumed()&&(o=!1,s=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 n=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,t){n.apply(this,arguments),this.graph.isCellSelected(t.getCell())&&1<this.graph.getSelectionCount()&&(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 a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,t){if(null==t){var n=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));t=this.getCellAt(n.x,n.y)}a.call(this,e,t)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var t=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(t),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()};var o=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){o.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"))};var s=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){s.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=t}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=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("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.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()};o=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){o.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"))};s=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){s.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var t=this.editorUi,l=t.editor,d=l.graph;this.addAction("new",function(){t.projectDesignController.newProject()}),this.addAction("open",function(){t.projectDesignController.openProject()}),this.addAction("save",function(){t.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),t.editor.modified=!1},null,null,"Ctrl+S"),this.addAction("saveAs",function(){t.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+Shift+S"),this.addAction("publish",function(){t.editor.setStatus(""),null===t.validate()?(t.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),t.editor.modified=!1):(t.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){t.editor.setStatus("")},3e3))},null,null,"Ctrl+Shift+P"),this.addAction("variable",function(){t.projectDesignController.newVariable()}),this.addAction("import",function(){t.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("export",function(){t.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){t.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),t=d.getLinkForCell(e);null==t&&(t=""),null!=(t=mxUtils.prompt(mxResources.get("enterValue"),t))&&d.setLinkForCell(e,t)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),t=d.getLinkForCell(e);null!=t&&window.open(t)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var n=e[t];d.getModel().getChildCount(n)?d.updateGroupBounds([n],20):d.updateCellSize(n)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),t="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(t=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,t)}),this.addAction("rotation",function(){var e="0",t=d.getView().getState(d.getSelectionCell());null!=t&&(e=t.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var n=e[t];if(d.getModel().isVertex(n)&&0==d.getModel().getChildCount(n)){var a=d.getCellGeometry(n);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(n,a);var o=d.view.getState(n);if(null!=o){var s=o.style[mxConstants.STYLE_DIRECTION]||"east";"east"==s?s="south":"south"==s?s="west":"west"==s?s="north":"north"==s&&(s="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,s,[n])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,t=d.pageScale,n=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(n/e.width/t,a/e.height/t))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*t*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*t*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,t=d.pageScale,n=d.container.clientWidth-20,a=Math.floor(100*n/e.width/t)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*t*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*t*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,t=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(t*d.view.scale)}else{var n=d.view.translate;d.view.setTranslate(n.x-d.container.scrollLeft/d.view.scale,n.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var n=mxUtils.bind(this,function(e,t){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,t)})});n("bold",mxConstants.FONT_BOLD),n("italic",mxConstants.FONT_ITALIC),n("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var t=d.getModel(),n=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",t.getStyle(e[0])||"");null!=n&&d.setCellStyle(n,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var t=l.graph.selectionCellsHandler.getHandler(e);if(t instanceof mxEdgeHandler){var n=d.view.translate,a=d.view.scale,i=n.x,o=n.y,s=d.getModel().getParent(e),r=d.getCellGeometry(s);d.getModel().isVertex(s)&&null!=r&&(i+=r.x,o+=r.y),t.addPointAt(t.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-o)}}}),this.addAction("removeWaypoint",function(){var e=t.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",t=d.getView().getState(d.getSelectionCell());if(null!=t&&(e=t.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var n=new Image;n.onload=function(){!function(e,t,n){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var o=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",o,o,t,n)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=t&&null!=n){var s=i[0],r=d.getModel().getGeometry(s);null!=r&&((r=r.clone()).width=t,r.height=n,d.getModel().setGeometry(s,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,n.width,n.height)},n.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},n.src=e}})},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},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 i=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(e,t){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,t),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,t),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,t),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,t),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,t),e.addSeparator(t),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},t,null,!0),e.addSeparator(t),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,t)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,t),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,t),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,t),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,t),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,t),e.addSeparator(t),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},t,null,!0),e.addSeparator(t),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,t)}))),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(e,t){var n=this.get("text").enabled;e.addSeparator(t),this.addSubmenu("fontFamily",e,t),this.addSubmenu("fontSize",e,t),this.addMenuItems(e,["-","bold","italic","underline","-"],t),this.addSubmenu("alignment",e,t),this.addMenuItem(e,"wordWrap",t),e.addSeparator(t),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,t,n),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},t,null,n)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,t),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,t),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,t),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,t),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,t),e.addSeparator(t),this.addSubmenu("position",e,t),this.addSubmenu("spacing",e,t),e.addSeparator(t);var n=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},t,null,n)}))),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(e,t){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},t),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},t),this.addMenuItems(e,["-","tilt","rotation"],t)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,t){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},t),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},t),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},t),e.addSeparator(t),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},t),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},t),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},t)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,t){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),t),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),t)}))),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 e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){t.addItem(100*e+"%",null,function(){i.zoomTo(e)},n)}(e[a]);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,a,i,o,n,s){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,t=i,n=e.getView().getState(e.getSelectionCell());null!=n&&(t=n.style[o]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),t))&&0<t.length&&e.setCellStyles(o,t)}),n,null,s)},Menus.prototype.addMenuItem=function(e,t,n){var a=this.editorUi.actions.get(t);if(null==a||!e.showDisabled&&!a.enabled)return null;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},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()),0<a.getSelectionCount()){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&&2<o.bends.length){var s=o.getHandleForEvent(new mxMouseEvent(n)),r=this.editorUi.actions.get("removeWaypoint");r.handler=o,i=0<(r.index=s)&&s<o.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(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{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,o){if(null!=o){var s=!0,t=mxUtils.bind(this,function(e){if(s&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var t=new mxPopupMenu(o);t.div.className+=" geMenubarMenu",t.smartSeparators=!0,t.showDisabled=!0,t.autoExpand=!0,t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments),t.destroy(),this.currentMenu=null,this.currentElt=null});var n=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;t.popup(n,a,null,e),this.currentMenu=t,this.currentElt=i}s=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),t(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){s=this.currentElt!=i})),mxEvent.addListener(i,"click",t)}},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(n){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),t=0;t<n.length;t++)n[t].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var t=i.getSelectionCells(),n=0;n<t.length;n++)if(i.getModel().isEdge(t[n])){e=!0;break}for(n=0;n<a.length;n++)a[n].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,t){e.setAttribute("tabindex","0"),null!=t&&e.setAttribute("title",t),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(t){var n=t.className;t.setEnabled=function(e){t.enabled=e,t.className=e?n:n+" geDisabled"},t.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(t,n){null!=n&&mxEvent.addListener(t,"click",function(e){t.enabled&&n(e),mxEvent.consume(e)})},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(t,n,a,i){if(null!=a){var o=this.editorUi.editor.graph,s=null;mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){(null==t.enabled||t.enabled)&&(o.panningHandler.hideMenu(),(s=new mxPopupMenu(a)).div.className+=" geToolbarMenu",s.showDisabled=i,s.labels=n,s.autoExpand=!0,s.popup(t.offsetLeft,t.offsetTop+t.offsetHeight+34,null,e),this.currentMenu=s),mxEvent.consume(e)}))}},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/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),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-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()">{{target}}</span>\n\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix">{{prefix}}-</span>{{target}}\n </a>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{prefix ? prefix + \'-\' + target : target}})\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{prefix ? prefix + \'-\' + target : target}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{prefix ? prefix + \'-\' + target : target}})\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n'+" {{'DASHBOARDS.TRANSFER_NUMBER' | translate}} ({{prefix ? prefix + '-' + target : target}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>"),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">{{getLine(item, options.line1)}}</h3>\n <h4 ng-if="options.line2">{{getLine(item, options.line2)}}</h4>\n <p ng-if="options.line3">{{getLine(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">{{getLine(item, options.line1)}}</h3>\n <h4 ng-if="options.line2">{{getLine(item, options.line2)}}</h4>\n <p ng-if="options.line3">{{getLine(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-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value" <span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),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 s20"></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"\n 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"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n 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"\n ng-class="{\'has-children\': vm.hasChildren}"\n 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 margin-right-20" 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 margin-right-20" 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"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\')" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\')" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\')" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input Area --\x3e\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">{{ (session.user == session.name) ? session.user : (session.name + \' \' + session.user) }}</span>\n <span class="session-info" layout="row" layout="start center">\n <timer interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length > 1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" 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="TOOLBAR.SETTINGS">Settings</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 class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\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.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$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/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" ng-click="MsSearchBar.expand()" 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" 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}" 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 \x3c!-- <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"\n 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"\n 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"\n 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\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n 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"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n 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"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\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)}" 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)}" 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-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground}" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit</md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),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="header" ui-view="header"></div>\n\n<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>\n\n<div id="footer" ui-view="footer"></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}" 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/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),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" class="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 ng-if="!vm.progressLogin">\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 <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <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> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\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.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" 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.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'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="10">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="basename ">{{extractedReport.basename}}</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 ng-if="extractedReport.status == \'Completed\'">\n <md-button ng-click="vm.downloadfile2(extractedReport, $event)" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" aria-label="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="\'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="\'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-option ng-value="\'report_integration\'">Integration Report</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'report_queue\'">Queue 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-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" ng-required="true">\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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</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\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\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.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}}\n </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}}\n </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}}\n </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-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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 <pre></pre>\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-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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">{{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">{{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">{{gb.value ? \'Yes\' : \'No\'}}</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">{{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-stretch-tabs="always" flex layout-fill 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 </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 class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</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)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></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">{{ vm.valueReplacer(key, 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 md-progress="vm.promise">\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">{{ vm.valueReplacer(key, 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" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.currentNode.custom && (vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\')" 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" ng-model-options="{ debounce: 1000 }" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\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.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="vm.currentNode.custom && 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 && (vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\')">\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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</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($event)" 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/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show 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">Web 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>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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>\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 md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\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/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" ng-required="true" 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\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" ng-required="true">\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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language" 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|googleasr" 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" 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|text" 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-if="attribute.help">\n <span 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></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></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></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></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/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</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/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></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" ng-model-options="{ debounce: 1000 }" 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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.managePermissions(project, ev)" translate="CALLYSQUARE.ADDUSER_PROJECTS">\n Add User To Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename 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.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$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.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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</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 ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.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="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.downloadfile2(squareRecording, $event)" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(chatQueue, $event)" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(chatQueue, $event)" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event)" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime 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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" aria-label="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="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_CHATQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\n <span ng-if="vm.chatQueue.exten">{{vm.chatQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" aria-label="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="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{chatWebsite.key}}</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="remote ">{{chatWebsite.remote}}</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.interactionsgoto(chatWebsite, $event)" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event)" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event)" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></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.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'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 <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" aria-label="Interval">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="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\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/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</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/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" aria-label="lexregion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" md-maxlength="255" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.TEXT_MAX_LENGTH" translate-values=\'{max: 255}\'>Text must have a maximum length equal to 255</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" aria-label="language" required>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable 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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag 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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.chatCannedAnswer.description">\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$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.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($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" md-maxlength="255" ng-required="true" 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/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\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-content flex layout-padding>\n <pre>{{vm.message.body}}</pre>\n </md-content>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" 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.chatProactiveAction.name" ng-required="true" autofocus>\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type" aria-label="Type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</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.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$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.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($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}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\n <span ng-if="vm.chatWebsite.exten">{{vm.chatWebsite.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></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.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\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 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" ng-required="true">\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.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n <form name="scriptForm" flex="100" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n </form>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container interval 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.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" aria-label="Interval" autofocus>\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone">\n < <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span>\n </div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="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" 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true">\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" aria-label="headershape">\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.showAgentAvatar" aria-label="ShowAgentAvatar"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" aria-label="snippetSwipeOut">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" ng-required="true">\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" aria-label="messagesAlignment">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255">\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus 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.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" 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" md-maxlength="255" autofocus>\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</span>\n </div>\n\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" md-maxlength="255">\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus 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.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\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" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform 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.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255">\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" aria-label="ratingType">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true">\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255">\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true">\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus 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.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255">\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255">\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true">\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction 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.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" aria-label="agentIdentifier" autofocus>\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true">\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true">\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255">\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255">\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255">\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true">\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255">\n <div ng-messages="interactionForm[\'noteTitle\'].$error" ng-show="interactionForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255">\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true">\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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 name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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 <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="logoimage in vm_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-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="chatWebsite-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 <div class="chatWebsite-detail-form-container agentavatar 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.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-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="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar 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.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-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="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar 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.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-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="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.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="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="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 ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</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.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\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.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($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.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\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="type">{{ \'CHAT.TYPE\' | translate }}</th>\n <th md-column md-order-by="selector">{{ \'CHAT.SELECTOR\' | translate }}</th>\n <th md-column md-order-by="timeout">{{ \'CHAT.TIMEOUT\' | 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="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.id}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.name}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.selector}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.timeout}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.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.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\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.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <span class="text-boxed-ligth" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" 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.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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</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.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\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.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($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.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'CHAT.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | 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="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.value}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.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.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\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.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" 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.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 ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" 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 translate="VOICE.APPLICATIONS_LIST">\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="CHAT.{{(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.selectedChatWebsiteApps.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.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.chatWebsiteApps.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.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($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.editChatWebsiteApp($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.editChatWebsiteApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</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.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($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.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'CHAT.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'CHAT.CLOSEDAT\' | translate }}</th>\n <th md-column>{{ \'CHAT.CONTACT\' | translate }}</th>\n <th md-column>{{ \'CHAT.AGENT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'CHAT.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="ratingValue">{{ \'CHAT.RATING\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'CHAT.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'CHAT.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="interaction.ratingValue != null && (!interaction.ratingType || interaction.ratingType == \'star\')" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:interaction.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="interaction.ratingValue != null && interaction.ratingType && interaction.ratingType == \'thumb\' && interaction.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="interaction.ratingValue != null && interaction.ratingType && interaction.ratingType == \'thumb\' && interaction.ratingValue == 0"></md-icon><span ng-show="interaction.ratingValue == null" translate="CHAT.NO_RATINGVALUE">No ratingValue</span>\n </td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\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.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="15">\n <span class="text-boxed-ligth" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" 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.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</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.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($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.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="ContactId">{{ \'CHAT.CONTACT\' | 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="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>{{offlineMessage.id}}</td>\n <td md-cell>{{ ContactId = vm_dc.contacts[offlineMessage.ContactId]; ContactId.firstName }}</td>\n <td md-cell>{{offlineMessage.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.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\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.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="5">\n <span class="text-boxed-ligth" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" 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/chat/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="CHAT.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'CHAT.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'CHAT.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'CHAT.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'CHAT.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'CHAT.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'CHAT.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'CHAT.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="CHAT.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $event)" translate="CHAT.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()" class="text-capitalize" translate="CHAT.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><em translate="CHAT.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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" translate="CHAT.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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/chat/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="CHAT.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 md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.READY\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | 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="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditChatQueue($event, vm.queues[value])" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="CHAT.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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/chat/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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\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\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\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\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" md-maxlength="255">\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\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n\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\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\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}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\n <span ng-if="vm.company.exten">{{vm.company.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\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\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\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\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\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" md-maxlength="255">\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\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n\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\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\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\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\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\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\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\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\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\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\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="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 <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="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: 1000 }" 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.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="CONTACTS.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" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.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 \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" 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-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a companie" 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-input-container>\n\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()" multiple>\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\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="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | 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="8">\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 ng-click="vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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(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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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 md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\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 class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | 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 \x3c!-- / ADD USER BUTTON --\x3e\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">\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 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">{{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" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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 && socialForm.$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-stretch-tabs="always" flex layout-fill 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 layout="column" flex="70">\n <md-card class="contact-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 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">\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 <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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.Tags" multiple>\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" 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 </md-card>\n <md-card class="contact-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 text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\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" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click 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 </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\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">{{value.value}}</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-block" 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 class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\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 ng-if="vm.license.dialer">\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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | 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>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</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-if="hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.license.jscripty">\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"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="interaction-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'"></div>\n </md-content>\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/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\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" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" 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.processing || vm.result.finish" 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\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </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\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <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" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.affectedRows"></span>\n </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 ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.failedRows"></span>\n </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 ng-if="vm.result.duplicatedRows && vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </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\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 ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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.png" 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/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" ng-required="true" 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 name="type" ng-model="vm.globalCustomField.type" aria-label="Type" required ng-disabled="!vm.newGlobalCustomField">\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 <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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" ng-required="true" 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 name="type" ng-model="vm.customField.type" aria-label="Type" required ng-disabled="!vm.newCustomField">\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 <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\n <span ng-if="vm.list.exten">{{vm.list.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix">\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.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_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n Edit CustomField\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListVoiceDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.currentUser.role == \'admin\'" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs" ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'"></md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}} <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs" ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n \x3c!-- <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40"\n ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt" interval="1000">{{ days > 0 ? days + \'d\' :\n \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div> --\x3e\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.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 vm.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 ng-if="call.answeredAt" class="text-boxed indigo-100-bg">\n <timer start-time="call.answeredAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n <div flex></div>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n <div class="p-16">\n <div class="title h1">\n <md-icon ng-if="!call.routeId" md-font-icon="icon-phone-incoming"></md-icon>\n <md-icon ng-if="call.routeId" md-font-icon="icon-phone-outgoing"></md-icon>\n {{ call.routeId ? call.destcalleridnum : call.calleridnum }}\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\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="vm.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="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.firstName" class="text-truncate" required>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.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>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event)" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.jscriptyProjects && vm.jscriptyProjects.rows.length" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon> {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.jscriptyProjects || !vm.jscriptyProjects.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon> No jscripty projects available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\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="vm.contact.lastName" class="text-truncate">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.phone" class="text-truncate">\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.mobile" class="text-truncate">\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event)" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.smsAccounts && vm.smsAccounts.rows.length" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon> {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.smsAccounts || !vm.smsAccounts.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon> No sms accounts available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.email" class="text-truncate">\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.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>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event)" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.mailAccounts && vm.mailAccounts.rows.length" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon> {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.mailAccounts || !vm.mailAccounts.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon> No email accounts available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.fax">\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event)" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.faxAccounts && vm.faxAccounts.rows.length" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon> {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.faxAccounts || !vm.faxAccounts.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon> No fax accounts available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.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="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.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="vm.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="vm.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="vm.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="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="DASHBOARDS.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 </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate></form>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block" ng-if="!vm.contact.ListId">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-model="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.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="vm.contact.ListId">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select ng-disabled="!vm.newContact" name="list" ng-model="vm.contact.ListId" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.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 vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click 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 </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\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">{{value.value}}</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-block" 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}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\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 </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="interaction-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'"></div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></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 ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITIONS">Dispositions</label>\n <md-select name="disposition" ng-model="vm.choice" required>\n <md-option ng-value="g.name" ng-repeat="g in vm.dispositions.rows">{{ g.name }}</md-option>\n <md-option ng-value="gd.name" ng-repeat="gd in vm.globalDispositions.rows">{{ gd.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n\n <div ng-if="vm.isReschedule">\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="disposition.date.$error" ng-show="disposition.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="disposition.time.$error" ng-show="disposition.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-input-container ng-if="!vm.dialerCall" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">{{ queueCampaign.name }} ({{ queueCampaign.dialActive ? \'Active\' : \'Not Active\' }})</md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n {{(vm.choice ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" 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/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-background-bg">\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-disabled="vm.disable" 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/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="Voice">\n <div ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n <md-content ng-if="vm.selectedTab==0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" class="md-padding">\n </md-content>\n </div>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="Bull">\n <div ng-controller="AgentHomeAbandonedBullController as vm_bull">\n <md-content ng-if="vm.selectedTab==1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" class="md-padding">\n </md-content>\n </div>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.query.filter = query" on-collapse="vm_bull.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm_bull.pickerModel.dateStart" ng-click="vm_bull.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm_bull.localizationMap" ng-model="vm_bull.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_bull.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_bull.query.lastAssignedTo" ng-change="vm_bull.getContacts()">\n <md-option ng-value="vm_bull.currentUser.name" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div ng-if="vm_bull.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_bull.query.queue" ng-change="vm_bull.getContacts()">\n <md-option ng-value="vm_bull.defaultQueues" ng-if="vm_bull.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm_bull.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" ng-click="vm_bull.refresh && vm_bull.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-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.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_bull.contacts.rows">\n <td md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.calleridnum" license="vm_home.license" disabled="contact.lastAssignedTo !== vm_bull.currentUser.name"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitAt ? (contact.queuecallerexitAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitreason}}</td>\n <td md-cell class="list">{{contact.disposition}}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="contact.lastAssignedTo === vm_bull.currentUser.name || !contact.lastAssignedTo" ng-disabled="vm_bull.disable[contact.id]" ng-model="contact.assigned" aria-label="reserved" ng-change="vm_bull.reserved(contact, contact.disposition)">\n \x3c!-- <span>{{ contact.assigned ? \'DASHBOARDS.RESERVED\' : \'DASHBOARDS.FREE\' | translate }}</span> --\x3e\n </md-switch>\n </td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="contact.lastAssignedTo === vm_bull.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm_bull.disposition.length" ng-repeat="disposition in vm_bull.disposition">\n <md-button ng-click="vm_bull.reserved(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.contacts.count}}" md-on-paginate="vm_bull.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.query.filter = query" on-collapse="vm_voice.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm_voice.pickerModel.dateStart" ng-click="vm_voice.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm_voice.localizationMap" ng-model="vm_voice.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_voice.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_voice.query.lastAssignedTo" ng-change="vm_voice.getContacts()">\n <md-option ng-value="vm_voice.currentUser.name" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div ng-if="vm_voice.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_voice.query.queue" ng-change="vm_voice.getContacts()">\n <md-option ng-value="vm_voice.defaultQueues" ng-if="vm_voice.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm_voice.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" ng-click="vm_voice.refresh && vm_voice.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-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.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_voice.contacts.rows">\n <td md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.calleridnum" license="vm_home.license" disabled="contact.lastAssignedTo !== vm_voice.currentUser.name"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.disposition}}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="contact.lastAssignedTo === vm_voice.currentUser.name || !contact.lastAssignedTo" ng-disabled="vm_voice.disable[contact.id]" ng-model="contact.assigned" aria-label="reserved" ng-change="vm_voice.reserved(contact, contact.disposition)">\n \x3c!-- <span>{{ contact.assigned ? \'DASHBOARDS.RESERVED\' : \'DASHBOARDS.FREE\' | translate }}</span> --\x3e\n </md-switch>\n </td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="contact.lastAssignedTo === vm_voice.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm_voice.disposition.length" ng-repeat="disposition in vm_voice.disposition">\n <md-button ng-click="vm_voice.reserved(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.contacts.count}}" md-on-paginate="vm_voice.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span></md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getChatInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getChatInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getChatInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_WEBSITE">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getChatInteractions()">\n <md-option ng-value="chatAccount.id" ng-repeat="chatAccount in vm.chatAccounts.rows">{{chatAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getChatInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getChatInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </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.getChatInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.WEBSITE\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="chatInteraction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': chatInteraction.unread}">\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{chatInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!chatInteraction.closed && chatInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in chatInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!chatInteraction.closed && chatInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'chat\')" layout-margin>{{chatInteraction.unread}}</span>\n <md-icon ng-if="chatInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(chatInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{chatInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <div layout="row" ng-if="chatInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{chatInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{chatInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!chatInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <span ng-if="chatInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="chatInteraction.disposition">- {{chatInteraction.disposition}}</span></span>\n <md-tooltip ng-if="chatInteraction.closed">{{chatInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!chatInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="chatInteraction.substatus"> - {{chatInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(chatInteraction)}}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(chatInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="chatInteraction.Tags.length">\n <div ng-if="chatInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': chatInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{chatInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="chatInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in chatInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, chatInteraction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadChatInteraction($event, chatInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Chat\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card>\n <md-toolbar class="md-table-toolbar md-default table-header red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_LIST">Select a list</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getContacts()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" 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 <md-button class="md-icon-button interaction-new" 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 </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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | 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>{{\'DASHBOARDS.TAGS\' | 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(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax">{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email">{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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(contact.id)" 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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="Voice">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="Bull">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="Chat">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="Email">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="Sms">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="Open Channel">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="Fax">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\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="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.getSize(vm_bull.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_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.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_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.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_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.getSize(vm_voice.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_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.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_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getFaxInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getFaxInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getFaxInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getFaxInteractions()">\n <md-option ng-value="faxAccount.id" ng-repeat="faxAccount in vm.faxAccounts.rows">{{faxAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getFaxInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getFaxInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">{{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getFaxInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="faxInteraction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': faxInteraction.unread}">\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{faxInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!faxInteraction.closed && faxInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in faxInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!faxInteraction.closed && faxInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'fax\')" layout-margin>{{faxInteraction.unread}}</span>\n <md-icon ng-if="faxInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(faxInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{faxInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <div layout="row" ng-if="faxInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{faxInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{faxInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!faxInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <span ng-if="faxInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="faxInteraction.disposition">- {{faxInteraction.disposition}}</span></span>\n <md-tooltip ng-if="faxInteraction.closed">{{faxInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!faxInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="faxInteraction.substatus"> - {{faxInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(faxInteraction)}}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(faxInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="faxInteraction.Tags.length">\n <div ng-if="faxInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': faxInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{faxInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="faxInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in faxInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, faxInteraction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadFaxInteraction($event, faxInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getMailInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getMailInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getMailInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column" ng-if="vm.query.closed == 0">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_SUBSTATUS">Select a sub status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.substatus" ng-change="vm.getMailInteractions()">\n <md-option ng-repeat="subStatus in vm.subStatuses.rows" ng-value="subStatus.name">{{subStatus.name}}</md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NONE"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getMailInteractions()">\n <md-option ng-value="mailAccount.id" ng-repeat="mailAccount in vm.mailAccounts.rows">{{mailAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getMailInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getMailInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">{{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getMailInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject" style="width:200px">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="mailInteraction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': mailInteraction.unread}">\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{mailInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!mailInteraction.closed && mailInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in mailInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!mailInteraction.closed && mailInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'mail\')" layout-margin>{{mailInteraction.unread}}</span>\n <md-icon ng-if="mailInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(mailInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && mailInteraction.lastMsgBody" class="tooltip-preview">\n <span class="text-truncate font-size-12" style="width:200px">{{mailInteraction.subject}}</span>\n <md-card class="tooltip-preview-text" ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}">\n <md-card-content>{{mailInteraction.lastMsgBody}}<br>...</md-card-content>\n </md-card>\n </div>\n <span ng-if="!mailInteraction.lastMsgBody || !vm.setting.enableEmailPreview" class="text-truncate font-size-12" style="width:200px">{{mailInteraction.subject}}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{mailInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <div layout="row" ng-if="mailInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{mailInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{mailInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!mailInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <span ng-if="mailInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="mailInteraction.disposition">- {{mailInteraction.disposition}}</span></span>\n <md-tooltip ng-if="mailInteraction.closed">{{mailInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!mailInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="mailInteraction.substatus"> - {{mailInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(mailInteraction)}}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(mailInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="mailInteraction.Tags.length">\n <div ng-if="mailInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': mailInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{mailInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="mailInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in mailInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, mailInteraction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMailInteraction($event, mailInteraction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMailInteraction($event, mailInteraction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_LIST">Select a list</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\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-select>\n </div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getContacts()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" 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 <md-button class="md-icon-button interaction-new" 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 </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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | 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>{{\'DASHBOARDS.TAGS\' | 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">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax">{{contact.fax}}</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].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getOpenchannelInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getOpenchannelInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getOpenchannelInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getOpenchannelInteractions()">\n <md-option ng-value="openchannelAccount.id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">{{openchannelAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getOpenchannelInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getOpenchannelInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)">{{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getOpenchannelInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="openchannelInteraction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': openchannelInteraction.unread}">\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{openchannelInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!openchannelInteraction.closed && openchannelInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in openchannelInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!openchannelInteraction.closed && openchannelInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'openchannel\')" layout-margin>{{openchannelInteraction.unread}}</span>\n <md-icon ng-if="openchannelInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(openchannelInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{openchannelInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <div layout="row" ng-if="openchannelInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{openchannelInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{openchannelInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!openchannelInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <span ng-if="openchannelInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="openchannelInteraction.disposition">- {{openchannelInteraction.disposition}}</span></span>\n <md-tooltip ng-if="openchannelInteraction.closed">{{openchannelInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!openchannelInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="openchannelInteraction.substatus"> - {{openchannelInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(openchannelInteraction)}}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(openchannelInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="openchannelInteraction.Tags.length">\n <div ng-if="openchannelInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': openchannelInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{openchannelInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="openchannelInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in openchannelInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, openchannelInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Openchannel\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="VOICE.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'VOICE.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getVoiceRecordings()" placeholder="{{ \'VOICE.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="VOICE.SELECT_TYPE">Select a type</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.type" ng-change="vm.getVoiceRecordings()">\n <md-option value="internal" translate="VOICE.INTERNAL">Internal</md-option>\n <md-option value="inbound" translate="VOICE.INBOUND">Inbound</md-option>\n <md-option value="outbound" translate="VOICE.OUTBOUND">Outbound</md-option>\n <md-option value="dialer" translate="VOICE.DIALER">Dialer</md-option>\n <md-option ng-value="null" translate="VOICE.ALL">All</md-option>\n </md-select>\n </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>{{ \'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">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </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>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\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, 50, 100, 250]" 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/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n \x3c!-- <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar> --\x3e\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="MOTIONDIALER.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'VOICE.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getScheduledCalls()" placeholder="{{ \'MOTIONDIALER.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div ng-if="vm.queueCampaigns.count" layout="column">\n <span class="font-size-10" translate="MOTIONDIALER.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.VoiceQueueId" ng-change="vm.getScheduledCalls()">\n <md-option ng-value="undefined"><em translate="MOTIONDIALER.ALL">All</em></md-option>\n <md-option ng-value="queueCampaign.id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">{{queueCampaign.name}}</md-option>\n </md-select>\n </div>\n \x3c!-- <div layout="column">\n <span class="font-size-10" translate="MOTIONDIALER.SELECT_TYPE">Select type</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.recallme" ng-change="vm.getScheduledCalls()">\n <md-option ng-value="undefined"><em translate="MOTIONDIALER.ALL">All</em></md-option>\n <md-option ng-value="1" translate="MOTIONDIALER.RECALLME">Recall me</md-option>\n <md-option ng-value="0" translate="MOTIONDIALER.INQUEUE">Recall in queue</md-option>\n </md-select>\n </div> --\x3e\n <md-button class="md-icon-button" ng-click="vm.getScheduledCalls()" aria-label="refresh scheuled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\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.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\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="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}"></md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\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.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getSmsInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getSmsInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getSmsInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getSmsInteractions()">\n <md-option ng-value="smsAccount.id" ng-repeat="smsAccount in vm.smsAccounts.rows">{{smsAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getSmsInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getSmsInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">{{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getSmsInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="smsInteraction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': smsInteraction.unread}">\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{smsInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!smsInteraction.closed && smsInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in smsInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!smsInteraction.closed && smsInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'sms\')" layout-margin>{{smsInteraction.unread}}</span>\n <md-icon ng-if="smsInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(smsInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{smsInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <div layout="row" ng-if="smsInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{smsInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{smsInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!smsInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <span ng-if="smsInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="smsInteraction.disposition">- {{smsInteraction.disposition}}</span></span>\n <md-tooltip ng-if="smsInteraction.closed">{{smsInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!smsInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="smsInteraction.substatus"> - {{smsInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(smsInteraction)}}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(smsInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="smsInteraction.Tags.length">\n <div ng-if="smsInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': smsInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{smsInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="smsInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in smsInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, smsInteraction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadSmsInteraction($event, smsInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="VOICE.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'VOICE.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getVoiceCalls()" placeholder="{{ \'VOICE.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="VOICE.SELECT_TYPE">Select a type</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.type" ng-change="vm.getVoiceCalls()">\n <md-option value="internal" translate="VOICE.INTERNAL">Internal</md-option>\n <md-option value="inbound">Inbound</md-option>\n <md-option value="outbound">Outbound</md-option>\n <md-option ng-value="null" translate="VOICE.ALL">All</md-option>\n </md-select>\n </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.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="8">\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="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{voiceCall.type}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{voiceCall.userDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></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="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.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></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>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }} </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'"></md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'"></div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'"></div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="!vm.interaction.closed && vm.tab.channel != \'mail\' && vm.tab.channel !== \'fax\' && (vm.tab.channel != \'sms\' || !vm.tab.spy)" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'"></div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'"></md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",'<md-dialog class="compose-dialog-fax" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n \x3c!-- <input ng-model="vm.message.subject" type="text"> --\x3e\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n \x3c!-- <md-icon md-font-icon="icon-close" class="s16"></md-icon> --\x3e\n </md-button>\n </div>\n </div>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-style="{\n \'max-width\': {true: \'620px\', false: \'90%\'}[ vm.secret ],\n \'width\': {true: \'620px\', false: \'100%\'}[ vm.secret ],\n \'max-height\': {true: undefined, false: \'97%\'}[ vm.secret ]\n }">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </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.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text">\n </md-input-container>\n\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n\n <md-button ng-click="vm.deleteAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16"></md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} - {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeOpenchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></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="DASHBOARDS.DISPOSITIONS">Dispositions</label>\n <md-select name="disposition" ng-model="vm.interaction.disposition" required>\n \x3c!-- <md-select ng-disabled="vm.interaction.closed && vm.interaction.disposition" name="disposition" ng-model="vm.interaction.disposition" required> --\x3e\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-value="d.name" ng-repeat="d in vm.dispositions.rows">{{ d.name }}</md-option>\n <md-option ng-value="gd.name" ng-repeat="gd in vm.globalDispositions.rows">{{ gd.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n \x3c!-- <textarea ng-disabled="vm.interaction.closed && vm.interaction.disposition" ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></textarea> --\x3e\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></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 \x3c!-- <md-dialog-actions ng-if="!vm.interaction.closed || !vm.interaction.disposition" layout="row" layout-align="space-between center"> --\x3e\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.saveDisposition(true)" class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && vm.interaction.disposition" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.interaction.disposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" class="send-button md-accent md-raised" ng-if="vm.interaction.closed" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></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-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\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.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" 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/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\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="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type" required>\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n <div ng-messages="transferForm.type.$error" ng-show="transferForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.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.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows" ng-if="vm.currentUser.id != agent.id">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent 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 \x3c!-- <md-dialog-actions ng-if="!vm.interaction.closed || !vm.interaction.disposition" layout="row" layout-align="space-between center"> --\x3e\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.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align "center center" flex>\n <div layout="row" layout-align="center center" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{item.browserName}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{item.osName}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{item.deviceModel}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{item.referer}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Customer IP</p>\n <h4>{{item.customerIp}}</h4>\n </div>\n </md-list-item>\n <md-divider></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{item.ratingMessage}}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled>\n </md-input-container>\n\n <md-input-container ng-if="vm.tab.channel != \'fax\'" class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled>\n </md-input-container>\n\n <md-input-container ng-if="vm.tab.channel == \'fax\'" class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'"></div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'"></div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'"></div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{item.externalUrl}}" target="_blank">\n <h4>{{item.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{item.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-if="item.ChatWebsiteId">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'"></div>\n </div>\n <div ng-if="item.MailAccountId">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'"></div>\n </div>\n\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{item.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <md-list-item ng-if="item.Tags.length">\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<md-content layout="column" layout-align="end center">\n <div layout-margin>\n <md-input-container>\n <md-select ng-model="vm.channel" placeholder="Channel">\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL">All</md-option>\n <md-option ng-value="\'voice\'" translate="DASHBOARDS.VOICE">Voice</md-option>\n <md-option ng-value="\'chat\'">Chat</md-option>\n <md-option ng-value="\'mail\'">Mail</md-option>\n <md-option ng-value="\'sms\'">Sms</md-option>\n <md-option ng-value="\'fax\'">Fax</md-option>\n <md-option ng-value="\'openchannel\'">Openchannel</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div layout-margin layout="row" layout-align="space-between center">\n <div flex-gt-xs>\n <md-datepicker ng-model="vm.dateFrom" md-placeholder="Enter date"></md-datepicker>\n </div>\n\n <div flex-gt-xs>\n <md-datepicker ng-model="vm.dateTo" md-placeholder="Enter date"></md-datepicker>\n </div>\n </div>\n</md-content>\n\n<div id="timeline" ms-timeline="vm.timelineOptions" layout="column" ng-if="vm.journey && vm.journey.length">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey | getChannelByItem:vm.channel:vm.dateFrom:vm.dateTo | orderBy:\'-createdAt\'">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div class="header p-6" layout="row" layout-align="space-between center">\n\n <md-button class="md-fab md-mini" aria-label="icon-channel" ng-class="vm.getColorByItem(item) + \'-bg\'">\n <md-icon ng-if="item.FaxAccountId" md-font-icon="icon-deskphone"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-google-earth"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text"></md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email"></md-icon>\n <md-icon ng-if="item.ChatWebsiteId" md-font-icon="icon-hangouts"></md-icon>\n <md-icon ng-if="item.amaflags" md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate">#{{item.id}} - {{ item.Account.key || item.destination }}</span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-hide="item.showMore" ng-click="item.showMore = !item.showMore" translate="DASHBOARDS.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="item.showMore" ng-click="item.showMore = !item.showMore" translate="DASHBOARDS.HIDE_DETAILS">\n Hide Details\n </a>\n </span>\n </div>\n\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n\n </div>\n\n <div ng-if="item.showMore">\n <div ng-if="!item.amaflags" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'"></div>\n <div ng-if="item.amaflags" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'"></div>\n </div>\n\n <md-divider></md-divider>\n\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && !amaflags" class="text-truncate white-fg">\n <span class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.CLOSED\' | translate}} ({{ item.disposition || (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate)}})">{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.CLOSED\' | translate}} ({{ item.disposition || (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }})</span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && !item.amaflags" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}<span ng-if="item.substatus"> - {{ item.substatus }}</span></span>\n <span ng-if="item.amaflags" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.DISPOSITION\' | translate}}: {{ item.userDisposition || \'No Dispose\'}}">{{ \'DASHBOARDS.DISPOSITION\' | translate}}: {{ item.userDisposition || (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate)}}</span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && vm.isMyAccount(item)" ng-disabled="item.amaflags" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction($event, item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n\n </div>\n </md-card>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</div>\n<div ng-if="!vm.journey || !vm.journey.length" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{item.type ? item.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4>{{item.source ? item.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4>{{item.destination ? item.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4>{{item.callerid ? item.callerid : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{item.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{item.uniqueid ? item.uniqueid : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{item.endtime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{item.duration ? item.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{item.note ? item.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{item.subject}}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n {{ vm.getLabelByMessage(message) }} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n {{ vm.getLabelByMessage(message) }} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n {{ vm.getLabelByMessage(message) }} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n </div>\n <div ng-if="!message.AttachmentId" ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.timelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon><span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">{{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">[{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)"><strong>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate">{{ message.originTo || message.to }}</span></div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0"><em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are registered as a</span> <span class="blue-grey">CC</span></em></div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0"><em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are registered as a</span> <span class="red-fg">BCC</span></em></div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail">{{message.from}}</span>\n <span class="detail">{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc">{{ message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc">{{ message.cc }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc">{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'">{{message.from.indexOf(vm.contact.email) >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n \x3c!-- <md-button class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button> --\x3e\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon><span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">{{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center">\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> - {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'"></div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'"></div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'"></div>\n </div>\n </div>\n <md-button ng-if="vm.tab.channel !== \'mail\'" class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\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.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-menu class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n</md-menu>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.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-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | 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 </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\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 </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 \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 </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 </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_MANAGED_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_MANAGED_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_MANAGED_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 </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.MANAGED_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.MANAGED_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.MANAGED_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 \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 </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.ABANDONED_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.ABANDONED_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.ABANDONED_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 </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'),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.VOICE_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.VOICE_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.VOICE_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) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.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-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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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/fax/user.general.fax.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-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.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-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.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-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.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-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\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 ng-if="vm.hasPermission()" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasPermission()" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" aria-label="trunk" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'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 <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\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/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</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/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.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="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable 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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag 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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\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" ng-required="true" 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}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\n <span ng-if="vm.faxAccount.exten">{{vm.faxAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></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.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" aria-label="trunk" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" aria-label="List" required>\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 <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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 <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" aria-label="ECM" required autofocus>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" aria-label="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 name="maxrate" ng-model="vm.faxAccount.maxrate" aria-label="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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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 name="tech" ng-model="vm.faxAccount.tech" aria-label="SIP" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountFaxDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.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 ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="FAX.{{(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.selectedFaxAccountApps.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.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.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.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.faxAccountApps.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.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($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.editFaxAccountApp($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.editFaxAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</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.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($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.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'FAX.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'FAX.CONTACT\' | translate }}</th>\n <th md-column>{{ \'FAX.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'FAX.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'FAX.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'FAX.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'FAX.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\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.faxAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'FAX.KEY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{faxAccount.key}}</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.interactionsgoto(faxAccount, $event)" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event)" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(faxAccount, $event)" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_FAXQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\n <span ng-if="vm.faxQueue.exten">{{vm.faxQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(faxQueue, $event)" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(faxQueue, $event)" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event)" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime 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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/fax/views/realtime/accounts/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="FAX.ACCOUNTS">Accounts</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!-- 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.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.KEY\' | translate }}</th>\n <th md-column>{{ \'FAX.TOTAL\' | translate }}</th>\n <th md-column>{{ \'FAX.IN\' | translate }}</th>\n <th md-column>{{ \'FAX.OUT\' | 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">\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="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\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.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getfaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/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="FAX.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'FAX.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'FAX.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'FAX.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'FAX.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'FAX.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'FAX.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'FAX.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'FAX.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="FAX.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $event)" translate="FAX.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()" class="text-capitalize" translate="FAX.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><em translate="FAX.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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" translate="FAX.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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/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="FAX.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 md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.READY\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | 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="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditFaxQueue($event, vm.queues[value])" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="FAX.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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/fax/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</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/fax/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="FAX.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 \x3c!-- <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n <i class="icon-information-outline grey-600-fg">\n <md-tooltip>{{\'FAX.INFO\' | translate}}</md-tooltip>\n </i>\n </md-button> --\x3e\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | 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">\n <td md-cell colspan="3">\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 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>{{\'FAX.\' + 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>{{\'FAX.\' + 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="FAX.NO_REGISTRY">\n No Registry\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="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),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="/api/settings/1/logo_login" alt="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" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" 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/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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 Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" 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 ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\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" ng-if="!vm.license.custom">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 ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><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/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" 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.deskAccount.name" ng-required="true" autofocus>\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'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">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" aria-label="AuthType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl">\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'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\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.deskAccount.description">\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$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.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newDeskAccount" ng-click="vm.deleteDeskAccount($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/deskAccounts/deskAccounts.html",'<div id="deskAccounts" 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.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.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.selectedDeskAccounts =[]">\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-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.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="DESKACCOUNTS.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.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" 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.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedDeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="DESKACCOUNTS.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\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\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="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</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(deskAccount, $event)" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event)" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event)" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT 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 DESKACCOUNT BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" 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.deskConfiguration.name" ng-required="true" autofocus>\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'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 name="channel" ng-model="vm.deskConfiguration.channel" aria-label="Channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'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 name="type" ng-model="vm.deskConfiguration.type" aria-label="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="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'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.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$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.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($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/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" 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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.$invalid || deskAccountItemForm.$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="deskAccountItemForm.$invalid || deskAccountItemForm.$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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.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/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" 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-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\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="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n <span ng-if="vm.deskAccount.exten">{{vm.deskAccount.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" 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-stretch-tabs="always" flex layout-fill 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="deskAccount-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.deskAccount.name" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" aria-label="AuthType" required>\n <md-option ng-value="\'basic\'">Basic</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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.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\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.deskAccount.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\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="deskAccount-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="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount)" 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.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\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="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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.createOrEditDeskConfiguration($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/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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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" 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" ng-required="true" 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 name="channel" ng-model="vm.freshdeskConfiguration.channel" aria-label="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 name="type" ng-model="vm.freshdeskConfiguration.type" aria-label="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" 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" 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}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\n <span ng-if="vm.freshdeskAccount.exten">{{vm.freshdeskAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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" 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" ng-required="true" 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 name="channel" ng-model="vm.salesforceConfiguration.channel" aria-label="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 name="type" ng-model="vm.salesforceConfiguration.type" aria-label="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" 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" 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}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\n <span ng-if="vm.salesforceAccount.exten">{{vm.salesforceAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">{{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">{{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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" 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" ng-required="true" 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 name="channel" ng-model="vm.sugarcrmConfiguration.channel" aria-label="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 name="type" ng-model="vm.sugarcrmConfiguration.type" aria-label="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" 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" 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}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\n <span ng-if="vm.sugarcrmAccount.exten">{{vm.sugarcrmAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" 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.vtigerAccount.name" ng-required="true" autofocus>\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\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.vtigerAccount.description">\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n\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.vtigerAccount.serverUrl">\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'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\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.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$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.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($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/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" 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.vtigerConfiguration.name" ng-required="true" autofocus>\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'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 name="channel" ng-model="vm.vtigerConfiguration.channel" aria-label="Channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'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 name="type" ng-model="vm.vtigerConfiguration.type" aria-label="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="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'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.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$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.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($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/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" 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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.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/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" 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-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\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="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n <span ng-if="vm.vtigerAccount.exten">{{vm.vtigerAccount.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" 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-stretch-tabs="always" flex layout-fill 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="vtigerAccount-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.vtigerAccount.name" ng-required="true" 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\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.vtigerAccount.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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n\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.vtigerAccount.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\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="vtigerAccount-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="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount)" 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.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\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="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditVtigerConfiguration($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/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" 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.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.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.selectedVtigerAccounts =[]">\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-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.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="VTIGERACCOUNTS.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.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" 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.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedVtigerAccounts($event)" aria-label="delete selected" translate translate-attr-label="VTIGERACCOUNTS.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\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\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.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.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(vtigerAccount, $event)" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event)" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event)" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT 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 VTIGERACCOUNT BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" aria-label="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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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\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\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" 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}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\n <span ng-if="vm.zendeskAccount.exten">{{vm.zendeskAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" aria-label="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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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" ng-required="true" 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 name="channel" ng-model="vm.zendeskConfiguration.channel" aria-label="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 name="type" ng-model="vm.zendeskConfiguration.type" aria-label="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" 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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" 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.zohoAccount.name" ng-required="true" autofocus>\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" aria-label="Host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.zohoAccount.authToken" ng-required="true">\n <div ng-messages="zohoAccountForm[\'authToken\'].$error" ng-show="zohoAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\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.zohoAccount.serverUrl">\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'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\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.zohoAccount.description">\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$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.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newZohoAccount" ng-click="vm.deleteZohoAccount($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/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" 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.zohoConfiguration.name" ng-required="true" autofocus>\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'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 name="channel" ng-model="vm.zohoConfiguration.channel" aria-label="Channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'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 name="type" ng-model="vm.zohoConfiguration.type" aria-label="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="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'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.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$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.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($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/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" 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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.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/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" 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-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\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="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n <span ng-if="vm.zohoAccount.exten">{{vm.zohoAccount.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" 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-stretch-tabs="always" flex layout-fill 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="zohoAccount-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.zohoAccount.name" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" aria-label="Host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.zohoAccount.authToken" ng-required="true">\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\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.zohoAccount.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\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.zohoAccount.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\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="zohoAccount-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="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount)" 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.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\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="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditZohoConfiguration($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/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" 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.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.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.selectedZohoAccounts =[]">\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-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.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="ZOHOACCOUNTS.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.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" 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.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedZohoAccounts($event)" aria-label="delete selected" translate translate-attr-label="ZOHOACCOUNTS.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\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\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="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].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="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(zohoAccount, $event)" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event)" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event)" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT 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 ZOHOACCOUNT BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT 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" ng-required="true" autofocus ng-disabled="!vm.newProject">\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\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\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\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/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newProject">\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\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\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 <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" 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 <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-ligth" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\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}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n <span ng-if="vm.project.exten">{{vm.project.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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) || (sessionsForm.$invalid) || (answersForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></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\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" read-only="false"></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-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</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.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($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 </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'JSCRIPTY.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'JSCRIPTY.ENDTIME\' | translate }}</th>\n <th md-column md-order-by="membername">{{ \'JSCRIPTY.MEMBERNAME\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'JSCRIPTY.CALLERIDNUM\' | translate }}</th>\n <th md-column md-order-by="completed">{{ \'JSCRIPTY.COMPLETE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.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.calleridnum}}</td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'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="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_dc.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\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.projectSessions.rows.length">\n <td md-cell colspan="8">\n <span class="text-boxed-ligth" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" 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="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project)">\n <div class="pb-16" layout="row" layout-align="space-between center">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS">Answers</div>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-ligth" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.clonedialog(project, $event)" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.sessionsgoto(project, $event)" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="email" ng-model="vm.mailAccount.email" ng-required="true">\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" aria-label="Service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" ng-required="true">\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" ng-required="true">\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</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/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable 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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag 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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$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.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($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" ng-required="true" 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}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\n <span ng-if="vm.mailAccount.exten">{{vm.mailAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></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.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="email" ng-model="vm.mailAccount.email" ng-required="true">\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" aria-label="List" required>\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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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="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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" aria-label="Service" required autofocus>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\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.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" ng-required="true">\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.IMAP_PORT_REQUIRED">IMAP_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.Imap.tls" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\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 class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.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 ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" min="1" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</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" min="1" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</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.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.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" aria-label="Service" required autofocus>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\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.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" ng-required="true">\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.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</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.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\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.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($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.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'MAIL.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | 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="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.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.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\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.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" 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.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 ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="MAIL.{{(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.selectedMailAccountApps.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.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.mailAccountApps.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.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($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.editMailAccountApp($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.editMailAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</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.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($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.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'MAIL.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'MAIL.CONTACT\' | translate }}</th>\n <th md-column>{{ \'MAIL.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'MAIL.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'MAIL.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'MAIL.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'MAIL.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\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.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </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.verifysmtpverifysmtp(mailAccount, $event)" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event)" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event)" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(mailAccount, $event)" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_MAILQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\n <span ng-if="vm.mailQueue.exten">{{vm.mailQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(mailQueue, $event)" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(mailQueue, $event)" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event)" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime 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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" 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.mailSubstatus.name" ng-required="true" autofocus>\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\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.mailSubstatus.description">\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$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.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($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/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" 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.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.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.selectedMailSubstatuses =[]">\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-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.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="MAILSUBSTATUSES.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.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" 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.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAILSUBSTATUSES.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\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\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="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.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.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.editdialog(mailSubstatus, $event)" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event)" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS 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 MAILSUBSTATUS BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/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="MAIL.ACCOUNTS">Accounts</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!-- 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.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column>{{ \'MAIL.TOTAL\' | translate }}</th>\n <th md-column>{{ \'MAIL.IN\' | translate }}</th>\n <th md-column>{{ \'MAIL.OUT\' | translate }}</th>\n <th md-column>{{ \'MAIL.IMAP_STATUS\' | translate }}</th>\n <th md-column>{{ \'MAIL.SMTP_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.mailAccounts">\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="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</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.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getmailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/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="MAIL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MAIL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MAIL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MAIL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MAIL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MAIL.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'MAIL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'MAIL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="MAIL.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $event)" translate="MAIL.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()" class="text-capitalize" translate="MAIL.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><em translate="MAIL.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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" translate="MAIL.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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/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="MAIL.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 md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.READY\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | 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="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditMailQueue($event, vm.queues[value])" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="MAIL.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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/mail/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</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/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" 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="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" aria-label="Sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n\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.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" 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-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\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="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n <span ng-if="vm.plugin.exten">{{vm.plugin.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="plugin-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="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="true">\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" aria-label="Sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="true">\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="true">\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n\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/marketplace/views/plugins/plugins.html",'<div id="plugins" 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-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.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.selectedPlugins =[]">\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="MARKETPLACE.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-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.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="PLUGINS.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.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.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.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="PLUGINS.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 <div ng-if="vm.installing">\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="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\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="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</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="MARKETPLACE.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 ng-if="!plugin.active">\n <md-button ng-click="vm.installplugin(plugin, $event)" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.editstate(plugin, $event)" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="plugin.active && plugin.type == \'script\'">\n <md-button ng-click="vm.stopplugin(plugin, $event)" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="plugin.active && plugin.type == \'script\'">\n <md-button ng-click="vm.restartplugin(plugin, $event)" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadfile2(plugin, $event)" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="plugin.active">\n <md-button ng-click="vm.uninstallplugin(plugin, $event)" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(plugin, $event)" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\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-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN 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!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="MARKETPLACE.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="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" aria-label="Trunk" 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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" aria-label="CallySquareProject" 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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority" aria-label="Priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.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-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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" 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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\n <span ng-if="vm.ivrCampaign.exten">{{vm.ivrCampaign.exten}}</span>\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 <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak>\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></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.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" aria-label="Trunk" 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 name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" aria-label="BackupTrunk">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" ng-required="true">\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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\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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" aria-label="CallySquareProject" 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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/">\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n\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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</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 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 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" aria-label="DialOrderByScheduledAt" autofocus>\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\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" ng-required="true" 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\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>\n </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 <div class="ivrCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | 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 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{ vm_dc.arraypriority[hopper.priority].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_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="10">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="IVRCAMPAIGNS.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\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="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="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.ContactId}}</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 <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.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\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.ivrCampaignHopperFinals.rows.length">\n <td md-cell colspan="23">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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.clonedialog(ivrCampaign, $event)" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event)" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" aria-label="Trunk" 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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="dialMethod" ng-model="vm.queueCampaign.dialMethod" aria-label="Method" 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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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 name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" aria-label="PredictiveOptimization">\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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</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" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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 <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority" aria-label="Priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority 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.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" aria-label="Agent" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent 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.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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" 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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\n <span ng-if="vm.queueCampaign.exten">{{vm.queueCampaign.exten}}</span>\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 <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak>\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></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.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) || (advancedpreviewForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" aria-label="Trunk" 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 name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" aria-label="BackupTrunk">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" ng-required="true">\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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\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 name="dialMethod" ng-model="vm.queueCampaign.dialMethod" aria-label="Method" 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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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 name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" aria-label="PredictiveOptimization">\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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</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" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" aria-label="Strategy" required>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" aria-label="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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" aria-label="CallySquareProject">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\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 <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" aria-label="CallySquareProject2">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" aria-label="CallySquareProjectPreview">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" aria-label="CallySquareProjectPreview2">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/">\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n\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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.queueCampaign.autopause" aria-label="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 name="ringinuse" ng-model="vm.queueCampaign.ringinuse" aria-label="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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" aria-label="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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" aria-label="MonitorFormat">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" aria-label="SetInterfaceVariables">\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 name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" aria-label="SetQueueVariables">\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 name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" aria-label="SetQueueEntryVariables">\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 <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" aria-label="DialOrderByScheduledAt">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview 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.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" 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" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" aria-label="MonitorFormat">\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="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'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.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" aria-label="DialOrderByScheduledAt">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme 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.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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" ng-required="true" 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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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>\n </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 <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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 <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLAGENT\' | 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 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{ vm_dc.arraypriority[hopper.priority].option }}</td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'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_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="12">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="QUEUECAMPAIGNS.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\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="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="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.ContactId}}</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 <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.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\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.queueCampaignHopperFinals.rows.length">\n <td md-cell colspan="23">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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.clonedialog(queueCampaign, $event)" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event)" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/abandonedcalls/view.html",' <md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 black-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.lastAssignedTo" ng-change="vm.getContacts()">\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents.rows">{{agent.name}}</md-option>\n </md-select>\n </div>\n <div ng-if="vm.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.queue" ng-change="vm.getContacts()">\n <md-option ng-value="undefined" ng-if="vm.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button" ng-click="vm.refresh && 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-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\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="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | 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 md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="list">{{contact.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitAt ? (contact.queuecallerexitAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitreason}}</td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="list">{{contact.disposition}}</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="2">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">Assigned a</md-button>\n <md-menu-content>\n <md-menu-item ng-if="contact.lastAssignedTo">\n <md-button ng-click="vm.assignedA(contact)"><em translate="DASHBOARDS.NONE">Not Assigned</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignedA(contact,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.disposition.length" ng-repeat="disposition in vm.disposition">\n <md-button ng-click="vm.disposed(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>'),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; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MOTIONDIALER.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MOTIONDIALER.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MOTIONDIALER.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MOTIONDIALER.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MOTIONDIALER.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'MOTIONDIALER.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="MOTIONDIALER.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $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()" class="text-capitalize" translate="MOTIONDIALER.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.context)">{{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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 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}} ({{(queue.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (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.outboundDropCallsDayTimeout) ? (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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 md-order-by="name">{{ \'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 md-order-by="dialActive">{{ \'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="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(vm.queues[value].talking || 0) + (vm.queues[value].pTalking || 0)}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].originated || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].message ? (\'MOTIONDIALER.\'+vm.queues[value].message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].dialMethod || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].Trunk ? vm.queues[value].Trunk.name : \'--\'}}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{vm.queues[value].dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{vm.queues[value].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.createOrEditMotionDialerQueue($event, vm.queues[value])" 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, vm.queues[value])" 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'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 <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\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" 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/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</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/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" md-maxlength="255" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.TEXT_MAX_LENGTH" translate-values=\'{max: 255}\'>Text must have a maximum length equal to 255</span>\n </div>\n\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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable 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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag 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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.openchannelCannedAnswer.description">\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($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" ng-required="true" 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" 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" 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}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\n <span ng-if="vm.openchannelAccount.exten">{{vm.openchannelAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></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.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\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 <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" aria-label="MapKey">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.value" ng-repeat="mapKey in vm.attributes">{{ mapKey.option }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.value" ng-repeat="mapKey in vm.customFields">{{ mapKey.option }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey 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.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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text});" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus ng-disabled="true">\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n\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.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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</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.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\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.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($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.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'OPENCHANNEL.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | 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="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.value}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.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.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\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.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" 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.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 ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="OPENCHANNEL.{{(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.selectedOpenchannelAccountApps.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.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.openchannelAccountApps.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.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($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.editOpenchannelAccountApp($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.editOpenchannelAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</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.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($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.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'OPENCHANNEL.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.CONTACT\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'OPENCHANNEL.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'OPENCHANNEL.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'OPENCHANNEL.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'OPENCHANNEL.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\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.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ ListId = vm.lists[openchannelAccount.ListId]; ListId.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.interactionsgoto(openchannelAccount, $event)" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event)" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" 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/agentadd/agentadd.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.AGENTADD_OPENCHANNELQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\n <span ng-if="vm.openchannelQueue.exten">{{vm.openchannelQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(openchannelQueue, $event)" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event)" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event)" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime 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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/openchannel/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="OPENCHANNEL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'OPENCHANNEL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'OPENCHANNEL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'OPENCHANNEL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'OPENCHANNEL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'OPENCHANNEL.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'OPENCHANNEL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="OPENCHANNEL.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $event)" translate="OPENCHANNEL.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()" class="text-capitalize" translate="OPENCHANNEL.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><em translate="OPENCHANNEL.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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" translate="OPENCHANNEL.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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/openchannel/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="OPENCHANNEL.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 md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.READY\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | 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="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditOpenchannelQueue($event, vm.queues[value])" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="OPENCHANNEL.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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/openchannel/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</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/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</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.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="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$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="customizationsForm" 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" ng-required="true">\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\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()" 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()" 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 ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred 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.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.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="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.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="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.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="{{preferredimage.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" ng-required="true" 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 ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</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="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" ng-required="true">\n <div ng-messages="generalForm[\'chatTimeout\'].$error" ng-show="generalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURNADDR">Turnaddr</label>\n <input type="text" name="turnaddr" ng-model="vm.general.turnaddr">\n <div ng-messages="generalForm[\'turnaddr\'].$error" ng-show="generalForm[\'turnaddr\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURNADDR_REQUIRED">Turnaddr field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_USERNAME">Turn_Username</label>\n <input type="text" name="turnusername" ng-model="vm.general.turnusername">\n <div ng-messages="generalForm[\'turnusername\'].$error" ng-show="generalForm[\'turnusername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_USERNAME_REQUIRED">Turn_Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_PASSWORD">Turn_Password</label>\n <input type="text" name="turnpassword" ng-model="vm.general.turnpassword">\n <div ng-messages="generalForm[\'turnpassword\'].$error" ng-show="generalForm[\'turnpassword\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_PASSWORD_REQUIRED">Turn_Password field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv">\n <div ng-messages="generalForm[\'splitSizeCsv\'].$error" ng-show="generalForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf">\n <div ng-messages="generalForm[\'splitSizePdf\'].$error" ng-show="generalForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx">\n <div ng-messages="generalForm[\'splitSizeXlsx\'].$error" ng-show="generalForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx 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="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$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="globalForm" 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" ng-required="true" autofocus>\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'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 ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</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="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" ng-required="true">\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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="globalForm[\'stunaddr\'].$error" ng-show="globalForm[\'stunaddr\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURNADDR">Turnaddr</label>\n <input type="text" name="turnaddr" ng-model="vm.general.turnaddr">\n <div ng-messages="globalForm[\'turnaddr\'].$error" ng-show="globalForm[\'turnaddr\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURNADDR_REQUIRED">Turnaddr field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_USERNAME">Turn_Username</label>\n <input type="text" name="turnusername" ng-model="vm.general.turnusername">\n <div ng-messages="globalForm[\'turnusername\'].$error" ng-show="globalForm[\'turnusername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_USERNAME_REQUIRED">Turn_Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_PASSWORD">Turn_Password</label>\n <input type="text" name="turnpassword" ng-model="vm.general.turnpassword">\n <div ng-messages="globalForm[\'turnpassword\'].$error" ng-show="globalForm[\'turnpassword\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_PASSWORD_REQUIRED">Turn_Password field is required</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar 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.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" ng-required="vm.general.phoneBarAutoUpdater">\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl must be a valid url http://www.xcally.com</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report 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.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv">\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf">\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx">\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface 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.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment" aria-label="messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment 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.xcally.com/en/index.html#pricing-table2-h" 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 ng-if="!vm.license.demo && !vm.license.gray" 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"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></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 ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.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>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\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.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></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" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></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 flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</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" flex="33">\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\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</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" flex="33">\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'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</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-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</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" layout-align="space-between center">\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" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><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" layout-align="space-between center">\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.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\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/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\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" translate="SETTINGS.UPDATE_LICENSE">Update 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\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key 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.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\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 name="type" ng-model="vm.network.type" aria-label="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])$/" ng-required="true">\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\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])$/" ng-required="true">\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" 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.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" aria-label="SMTP_Service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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" ng-required="true">\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\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" ng-required="true">\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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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="(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="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="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" aria-label="SMTP_Service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'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" ng-required="true">\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'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\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" ng-required="true">\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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="generalForm[\'description\'].$error" ng-show="generalForm[\'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-stretch-tabs="always" md-border-bottom flex layout-fill 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 class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</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.total / 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 == \'agi\' ? \'agi (Cally Square IVR)\' : 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 <id | name></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 <id | name | all></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 <id | name></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/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="SMS.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'SMS.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'SMS.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'SMS.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'SMS.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'SMS.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'SMS.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'SMS.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'SMS.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="SMS.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $event)" translate="SMS.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()" class="text-capitalize" translate="SMS.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><em translate="SMS.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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" translate="SMS.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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/sms/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="SMS.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 md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.READY\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | 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="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditSmsQueue($event, vm.queues[value])" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="SMS.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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/sms/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</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/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" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" aria-label="Type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" aria-label="Method" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n\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\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/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</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/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" md-maxlength="255" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.TEXT_MAX_LENGTH" translate-values=\'{max: 255}\'>Text must have a maximum length equal to 255</span>\n </div>\n\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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable 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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag 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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.smsCannedAnswer.description">\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$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.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($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" ng-required="true" 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}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\n <span ng-if="vm.smsAccount.exten">{{vm.smsAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></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.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" aria-label="Type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" aria-label="Method" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i">\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text});" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( (vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text});" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus ng-disabled="true">\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n\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.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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</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.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\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.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($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.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'SMS.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | 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="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.value}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.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.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\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.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" 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.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 ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="SMS.{{(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.selectedSmsAccountApps.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.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.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.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.smsAccountApps.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.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($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.editSmsAccountApp($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.editSmsAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</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.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($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.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'SMS.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'SMS.CONTACT\' | translate }}</th>\n <th md-column>{{ \'SMS.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'SMS.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'SMS.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'SMS.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'SMS.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\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.smsAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ ListId = vm.lists[smsAccount.ListId]; ListId.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="phone ">{{smsAccount.phone}}</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.interactionsgoto(smsAccount, $event)" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(smsAccount, $event)" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_SMSQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\n <span ng-if="vm.smsQueue.exten">{{vm.smsQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(smsQueue, $event)" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(smsQueue, $event)" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event)" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime 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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</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="phone ">{{agent.phone}}</td>\n <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</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.teamadddialog(agent, $event)" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true" ng-disabled="!vm.newAgent">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" aria-label="ShowWebControl">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true">\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-required="true" 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\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\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 <md-input-container ng-if="vm.agent.showWebBar == 0" 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 && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" ng-required="true">\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'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 <md-input-container ng-if="vm.newUser" 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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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\' && vm.isVoiceChannel()">\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/teamadd/teamadd.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 translate="STAFF.TEAMADD_AGENT">Add Team in AGENT</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/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}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\n <span ng-if="vm.agent.exten">{{vm.agent.exten}}</span>\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 <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"><span translate="STAFF.CHANNELS">Channels</span></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, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" 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"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" 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"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" 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"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" 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"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" 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"><span translate="FAX.FAX">Fax</span></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.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></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.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) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true" ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" aria-label="ShowWebControl">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true">\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone">\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile">\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\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 <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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" ng-disabled="true">\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n\n </div>\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()" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" aria-label="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\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" aria-label="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 name="type" ng-model="vm.agent.type" aria-label="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 name="allow" ng-model="vm.agent.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" aria-label="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="STAFF.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="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\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\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 <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" aria-label="MonitorExtension" required>\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension 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.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 ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" 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 ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\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 ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" ng-required="true">\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableVideoRecording" aria-label="EnableVideoRecording"><span translate="STAFF.ENABLEVIDEORECORDING">EnableVideoRecording</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 ng-if="vm.agent.showWebBar == 0" 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 && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" ng-required="true">\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" ng-required="true" 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" ng-required="true">\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 <div class="agent-detail-form-container callforwarding 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.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true">\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber field is required</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc 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_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus>\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true">\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n\n </div>\n </md-input-container>\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 ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" ng-required="true">\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc 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_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" 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" ng-required="true" autofocus>\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'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\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="agent-detail-form-container general_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.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-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="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></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.agent.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" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-button ng-if="vm_pc.allowPermissions(child)" ng-disabled="!father.enabled || !child.enabled" class="md-fab md-mini md-primary" aria-label="Permissions" ng-click="vm_pc.addPermissions(child)">\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.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/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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true" ng-disabled="!vm.newTelephone">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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" ng-required="true" 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\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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\n <span ng-if="vm.telephone.exten">{{vm.telephone.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true" ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone">\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile">\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n\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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" aria-label="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="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 name="nat" ng-model="vm.telephone.nat" aria-label="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 name="allow" ng-model="vm.telephone.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" aria-label="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="STAFF.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="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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" aria-label="Encryption" required>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 name="role" ng-model="vm.user.role" aria-label="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" ng-required="true">\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\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" ng-required="true" ng-disabled="!vm.newUser">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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" ng-required="true" 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\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.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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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/permissionadd/permissionadd.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 <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}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\n <span ng-if="vm.user.exten">{{vm.user.exten}}</span>\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>\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) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (general_permissionsForm.$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-stretch-tabs="always" flex layout-fill 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 name="role" ng-model="vm.user.role" aria-label="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" ng-required="true">\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\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" ng-required="true" ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone">\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile">\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n\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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" ng-disabled="true">\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n\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()" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" aria-label="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 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 name="nat" ng-model="vm.user.nat" aria-label="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 name="allow" ng-model="vm.user.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" aria-label="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="STAFF.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="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\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\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 ng-if="vm.currentUser.role === \'admin\' && vm.user.role !== \'admin\'" class="user-detail-form-container general_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.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.EDITPERMISSIONS">EditPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.user.crudPermissions" aria-label="EditPermissions" autofocus>\n\n <md-option ng-value="0"> {{ \'STAFF.READANDEDITANDDELETE\' | translate }} </md-option>\n\n <md-option ng-value="1"> {{ \'STAFF.READANDEDIT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="general_permissionsForm[\'crudPermissions\'].$error" ng-show="general_permissionsForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EDITPERMISSIONS_REQUIRED">EditPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\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\' && !father.hidden()"></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" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-button ng-if="vm_pc.allowPermissions(child)" ng-disabled="!father.enabled || !child.enabled" class="md-fab md-mini md-primary" aria-label="Permissions" ng-click="vm_pc.addPermissions(child)">\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n <md-switch 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 </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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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\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="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="phone ">{{user.phone}}</td>\n <td ng-click="vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</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 ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" md-maxlength="255" ng-required="true" 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\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.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\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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="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="4">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="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 ng-if="vm.currentUser.role == \'admin\'">\n <md-button ng-click="vm.useradddialog(customDashboard, $event)" translate="TOOLS.USERADD_CUSTOMDASHBOARD">\n useradd CustomDashboard\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.clonedialog(customDashboard, $event)" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event)" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone 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" ng-required="true" 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\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 <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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 name="type" ng-model="vm.dashboarditem.type" aria-label="Type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | 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\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | 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 <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\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\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" aria-label="Timezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" aria-label="Metric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" aria-label="Serie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2" aria-label="Serie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3" aria-label="Serie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORTTYPE">ReportType</label>\n <md-select name="reportType" ng-model="vm.dashboarditem.reportType" aria-label="ReportType" required ng-change="vm.onReportTypeSelection()">\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="dashboarditemForm[\'reportType\'].$error" ng-show="dashboarditemForm[\'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.dashboarditem.type == \'web-report\' && vm.rootHasChildren" class="md-block">\n <label translate="TOOLS.REPORTFOLDER">ReportFolder</label>\n <md-select name="folder" ng-model="vm.dashboarditem.folder" aria-label="ReportFolder" ng-required="vm.rootHasChildren" ng-change="vm.onReportFolderSelection()">\n <md-option ng-value="folder" ng-repeat="folder in vm.reportFolders">{{ folder.text }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'folder\'].$error" ng-show="dashboarditemForm[\'folder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTFOLDER_REQUIRED">ReportFolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\' && vm.folderHasChildren" class="md-block">\n <label translate="TOOLS.REPORTSUBFOLDER">ReportSubfolder</label>\n <md-select name="subfolder" ng-model="vm.dashboarditem.subfolder" aria-label="ReportSubfolder" ng-required="vm.folderHasChildren" ng-change="vm.onReportSubfolderSelection()">\n <md-option ng-value="subfolder" ng-repeat="subfolder in vm.reportSubfolders">{{ subfolder.text }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'subfolder\'].$error" ng-show="dashboarditemForm[\'subfolder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTSUBFOLDER_REQUIRED">ReportSubfolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <md-select name="attrReport" ng-model="vm.dashboarditem.attrReport" aria-label="Report" required>\n <md-option ng-value="attrReport.id" ng-repeat="attrReport in vm.reports">{{ attrReport.name }} </br><span class="md-option-info-text">{{ attrReport.path }}</span> </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrReport\'].$error" ng-show="dashboarditemForm[\'attrReport\'].$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="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" aria-label="FilterVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link must be a valid url http://www.xcally.com</span>\n </div>\n\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/useradd/useradd.html",'<md-dialog class="customDashboard-dialog" aria-label="customDashboard">\n <form name="customDashboardForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="TOOLS.USERADD_CUSTOMDASHBOARD">Add User to customDashboard</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/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}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\n <span ng-if="vm.customDashboard.exten">{{vm.customDashboard.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.useradddialog(vm.customDashboard, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="useradd" ng-if="vm.currentUser.role == \'admin\'">\n <md-tooltip><span translate="TOOLS.USERADD_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\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="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\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/dispositions/create/dialog.html",'<md-dialog class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" 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.disposition.name" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length equal to 255</span>\n </div>\n\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.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$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.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newDisposition" ng-click="vm.deleteDisposition($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/dispositions/dispositions.html",'<div id="dispositions" 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.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.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.selectedDispositions =[]">\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-dispositions-count">\n <span>{{vm.selectedDispositions.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="DISPOSITIONS.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.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" 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.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="DISPOSITIONS.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\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\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 width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dispositions.rows.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td md-cell ng-if="disposition.userpic"><img class="avatar" alt="{{disposition.name}}" ng-src="api/users/{{disposition.id}}/avatar" /></td>\n <td md-cell ng-if="!disposition.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{disposition.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">{{disposition.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="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(disposition, $event)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION 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 DISPOSITION BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\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" ng-required="true" 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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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" ng-required="true" 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}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\n <span ng-if="vm.interval.exten">{{vm.interval.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORTTYPE">ReportType</label>\n <md-select name="type" ng-model="vm.schedule.type" aria-label="ReportType" required ng-change="vm.onReportTypeSelection()">\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[\'type\'].$error" ng-show="scheduleForm[\'type\'].$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.rootHasChildren" class="md-block">\n <label translate="TOOLS.REPORTFOLDER">ReportFolder</label>\n <md-select name="folder" ng-model="vm.schedule.folder" aria-label="ReportFolder" ng-required="vm.rootHasChildren" ng-change="vm.onReportFolderSelection()">\n <md-option ng-value="folder" ng-repeat="folder in vm.reportFolders">{{ folder.text }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'folder\'].$error" ng-show="scheduleForm[\'folder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTFOLDER_REQUIRED">ReportFolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.folderHasChildren" class="md-block">\n <label translate="TOOLS.REPORTSUBFOLDER">ReportSubfolder</label>\n <md-select name="subfolder" ng-model="vm.schedule.subfolder" aria-label="ReportSubfolder" ng-required="vm.folderHasChildren" ng-change="vm.onReportSubfolderSelection()">\n <md-option ng-value="subfolder" ng-repeat="subfolder in vm.reportSubfolders">{{ subfolder.text }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subfolder\'].$error" ng-show="scheduleForm[\'subfolder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTSUBFOLDER_REQUIRED">ReportSubfolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.type == \'default\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <md-select name="DefaultReportId" ng-model="vm.schedule.DefaultReportId" aria-label="Report" required>\n <md-option ng-value="DefaultReportId.id" ng-repeat="DefaultReportId in vm.reports">{{ DefaultReportId.name }} </br><span class="md-option-info-text">{{ DefaultReportId.path }}</span> </md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'DefaultReportId\'].$error" ng-show="scheduleForm[\'DefaultReportId\'].$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.type == \'custom\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <md-select name="CustomReportId" ng-model="vm.schedule.CustomReportId" aria-label="Report" required>\n <md-option ng-value="CustomReportId.id" ng-repeat="CustomReportId in vm.reports">{{ CustomReportId.name }} </br><span class="md-option-info-text">{{ CustomReportId.path }}</span> </md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'CustomReportId\'].$error" ng-show="scheduleForm[\'CustomReportId\'].$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 name="output" ng-model="vm.schedule.output" aria-label="Output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$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 <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" ng-required="true">\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" aria-label="LastUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit 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.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" aria-label="MailAccount" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount 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="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</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.editdialog(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.runconfirm(schedule, $event)" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </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.downloadfile2(sound, $event)" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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!-- UPLOAD SOUND BUTTON --\x3e\n <md-button class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="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 your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" 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" ng-required="true" 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\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\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.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" open-on-input="true"></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.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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 md-order-by="color">{{ \'TOOLS.COLOR\' | 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="5">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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 ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" aria-label="Channel" required ng-disabled="!vm.newTrigger">\n\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | 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 <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="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\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 name="action" ng-model="vm.action.action" aria-label="Action" required autofocus ng-disabled="!vm.newAction">\n\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'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\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | 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 name="data1" ng-model="vm.action.data1" aria-label="Project" 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 name="data1" ng-model="vm.action.data1" aria-label="Type" 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 name="data1" ng-model="vm.action.data1" aria-label="List" 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 == \'contactManager\'" class="md-block">\n <label translate="TOOLS.AUTOCREATECONTACT">AutoCreateContact</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="AutoCreateContact" required>\n\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </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.AUTOCREATECONTACT_REQUIRED">AutoCreateContact 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 name="data1" ng-model="vm.action.data1" aria-label="Type" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && vm.action.data1 == \'POST\'" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></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 name="data1" ng-model="vm.action.data1" aria-label="Integration" 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-option ng-value="\'desk\'">Desk</md-option>\n <md-option ng-value="\'zoho\'">Zoho</md-option>\n <md-option ng-value="\'vtiger\'">vTiger</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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 == \'desk\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="Account" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.deskAccounts">{{ 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 == \'zoho\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="Account" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.zohoAccounts">{{ 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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 == \'vtiger\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="Account" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.vtigerAccounts">{{ 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 == \'desk\' && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="Configuration" required>\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.deskConfigurations | 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 == \'zoho\' && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="Configuration" required>\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.zohoConfigurations | 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 == \'integration\' && vm.action.data1 == \'vtiger\' && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="Configuration" required>\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.vtigerConfigurations | 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 name="data1" ng-model="vm.action.data1" aria-label="Type" 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" ng-required="true">\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\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" ng-required="true">\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\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\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 name="data2" ng-model="vm.action.data2" aria-label="Template" 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 name="data2" ng-model="vm.action.data2" aria-label="Template" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.action.action == \'motionbar\' || vm.action.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="EventVariables" required>\n\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables 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.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" aria-label="Location" required>\n\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'1\'"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight field is required</span>\n </div>\n\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 name="field" ng-model="vm.allCondition.field" aria-label="Field" required autofocus>\n\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }} </md-option>\n\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }} </md-option>\n\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }} </md-option>\n\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | 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 name="operator" ng-model="vm.allCondition.operator" aria-label="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 == \'account\' && vm.trigger.channel == \'chat\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.chatAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'mail\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.mailAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'sms\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.smsAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'fax\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.faxAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'openchannel\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.openchannelAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Queue" 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="OutboundRoute" 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 name="value" ng-model="vm.allCondition.value" aria-label="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 <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</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 <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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 name="field" ng-model="vm.anyCondition.field" aria-label="Field" required autofocus>\n\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }} </md-option>\n\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }} </md-option>\n\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }} </md-option>\n\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | 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 name="operator" ng-model="vm.anyCondition.operator" aria-label="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 == \'account\' && vm.trigger.channel == \'chat\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.chatAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'mail\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.mailAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'sms\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.smsAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'fax\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.faxAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'openchannel\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.openchannelAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Queue" 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="OutboundRoute" 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 name="value" ng-model="vm.anyCondition.value" aria-label="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 <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</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 <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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}}\n <span ng-if="vm.trigger.name">{{vm.trigger.name}}</span>\n <span ng-if="vm.trigger.exten">{{vm.trigger.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" aria-label="Channel" required ng-disabled="true">\n\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | 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\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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.value" md-cell>{{allCondition.value}}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.chatAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.mailAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.smsAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.faxAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.openchannelAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>{{ vm_dc.callStatusValues[allCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>{{ vm_dc.interactionStatusValues[allCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>{{ vm_dc.messageStatusValues[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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="17">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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.value" md-cell>{{anyCondition.value}}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.chatAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.mailAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.smsAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.faxAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.openchannelAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>{{ vm_dc.callStatusValues[anyCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>{{ vm_dc.interactionStatusValues[anyCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>{{ vm_dc.messageStatusValues[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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="17">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 == \'contactManager\'" md-cell>{{ \'TOOLS.\' + vm_dc.autoCreateContact[action.data2].option | uppercase | translate }}</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.data1" md-cell>{{action.data1}}</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 == \'urlForward\' && action.data1 == \'POST\'" md-cell>{{action.data7}}</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 == \'desk\'" md-cell>{{ data2 = vm_dc.deskAccounts[action.data2]; data2.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>{{ data2 = vm_dc.zohoAccounts[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 == \'integration\' && action.data1 == \'vtiger\'" md-cell>{{ data2 = vm_dc.vtigerAccounts[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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="40">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\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" ng-required="true">\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\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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">\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\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\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\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/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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 <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\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}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\n <span ng-if="vm.trunk.exten">{{vm.trunk.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\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" ng-required="true">\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\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" aria-label="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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" aria-label="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 name="dtmfmode" ng-model="vm.trunk.dtmfmode" aria-label="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 name="nat" ng-model="vm.trunk.nat" aria-label="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 name="qualify" ng-model="vm.trunk.qualify" aria-label="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 name="allow" ng-model="vm.trunk.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</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 name="insecure" ng-model="vm.trunk.insecure" aria-label="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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" aria-label="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 name="callcounter" ng-model="vm.trunk.callcounter" aria-label="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\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\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\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 name="usereqphone" ng-model="vm.trunk.usereqphone" aria-label="Add_phone_to_URI" 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 name="trustrpid" ng-model="vm.trunk.trustrpid" aria-label="Trust_Remote_Party_ID" 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 name="sendrpid" ng-model="vm.trunk.sendrpid" aria-label="Send_Remote_Party_ID_header" 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\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | 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 name="encryption" ng-model="vm.trunk.encryption" aria-label="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 name="transport" ng-model="vm.trunk.transport" aria-label="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 <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl">\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl 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 name="otherFields" ng-model="vm.trunk.otherFields" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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.clonedialog(trunk, $event)" translate="TOOLS.CLONE_TRUNK">\n clone 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </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.editdialog(chanSpy, $event)" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" aria-label="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 <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="chanSpyForm[\'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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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 name="recordingFormat" ng-model="vm.chanSpy.recordingFormat" aria-label="recordingFormat" required>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'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="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\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundroute.context" aria-label="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\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 name="project" ng-model="vm.agi.project" aria-label="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" ng-required="true" 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\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\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" ng-required="true" 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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="trunk" ng-model="vm.externaldial.trunk" aria-label="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" ng-required="true">\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="context" ng-model="vm.goto.context" aria-label="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" ng-required="true">\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\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" ng-required="true">\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\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 name="appdata" ng-model="vm.hangup.appdata" aria-label="Hangup_Cause" 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 name="user" ng-model="vm.internaldial.user" aria-label="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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 name="appdata" ng-model="vm.playback.appdata" aria-label="Audio_Files" 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\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 name="queue" ng-model="vm.queue.queue" aria-label="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\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\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 name="sound" ng-model="vm.queue.sound" aria-label="Announce_Overrides">\n <md-option ng-value="\'\'">None</md-option>\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-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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or equal than</span> <span>0</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 name="multipleUsers" ng-model="vm.ringgroup.multipleUsers" aria-label="User" 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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 <md-select name="name" ng-model="vm.set.name" aria-label="Variable" required autofocus>\n <md-option ng-value="name.name" ng-repeat="name in vm.variables">{{ name.name }}</md-option>\n </md-select>\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" ng-required="true">\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\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 name="voiceMail" ng-model="vm.voicemail.voiceMail" aria-label="Mailbox@Context" 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\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}}\n <span ng-if="vm.inboundroute.name">{{vm.inboundroute.name}}</span>\n <span ng-if="vm.inboundroute.exten">{{vm.inboundroute.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundroute.context" aria-label="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\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 translate="VOICE.APPLICATIONS_LIST">\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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" 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>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="inboundroutes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalroute.context" aria-label="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\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 name="project" ng-model="vm.agi.project" aria-label="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" ng-required="true" 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\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\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" ng-required="true" 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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="trunk" ng-model="vm.externaldial.trunk" aria-label="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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="context" ng-model="vm.goto.context" aria-label="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" ng-required="true">\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\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" ng-required="true">\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\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 name="appdata" ng-model="vm.hangup.appdata" aria-label="Hangup_Cause" 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 name="user" ng-model="vm.internaldial.user" aria-label="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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 name="appdata" ng-model="vm.playback.appdata" aria-label="Audio_Files" 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\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 name="queue" ng-model="vm.queue.queue" aria-label="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\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\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 name="sound" ng-model="vm.queue.sound" aria-label="Announce_Overrides">\n <md-option ng-value="\'\'">None</md-option>\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-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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or equal than</span> <span>0</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 name="multipleUsers" ng-model="vm.ringgroup.multipleUsers" aria-label="User" 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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 <md-select name="name" ng-model="vm.set.name" aria-label="Variable" required autofocus>\n <md-option ng-value="name.name" ng-repeat="name in vm.variables">{{ name.name }}</md-option>\n </md-select>\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" ng-required="true">\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\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 name="voiceMail" ng-model="vm.voicemail.voiceMail" aria-label="Mailbox@Context" 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\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}}\n <span ng-if="vm.internalroute.name">{{vm.internalroute.name}}</span>\n <span ng-if="vm.internalroute.exten">{{vm.internalroute.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalroute.context" aria-label="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\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 translate="VOICE.APPLICATIONS_LIST">\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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" 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>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="internalroutes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" aria-label="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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true">\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\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 name="sort" ng-model="vm.musiconhold.sort" aria-label="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 name="id" ng-model="vm.mohSound.id" aria-label="File" 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}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\n <span ng-if="vm.musiconhold.exten">{{vm.musiconhold.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" aria-label="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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true">\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\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 name="sort" ng-model="vm.musiconhold.sort" aria-label="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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </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 class="md-primary" ng-click="vm_dc.voiceMusicOnHoldDownload(mohSound, $event)" translate="VOICE.DOWNLOAD_MOHSOUND">\n Download MohSound\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="8">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundroute.context" aria-label="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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundroute.recordingFormat" aria-label="Recording" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundroute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater or equal than</span> <span>0</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\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/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" ng-required="true" 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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 name="trunk" ng-model="vm.outbounddial.trunk" aria-label="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 class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.outbounddial.tag" aria-label="Tags">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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}}\n <span ng-if="vm.outboundroute.name">{{vm.outboundroute.name}}</span>\n <span ng-if="vm.outboundroute.exten">{{vm.outboundroute.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundroute.context" aria-label="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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundroute.recordingFormat" aria-label="Recording" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundroute.cutdigits" min="0">\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater or equal than</span> <span>0</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\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 translate="VOICE.APPLICATIONS_LIST">\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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" 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>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="outboundroutes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/abandonedcalls/view.html",' <md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 black-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.lastAssignedTo" ng-change="vm.getContacts()">\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents.rows">{{agent.name}}</md-option>\n </md-select>\n </div>\n <div ng-if="vm.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.queue" ng-change="vm.getContacts()">\n <md-option ng-value="undefined" ng-if="vm.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button" ng-click="vm.refresh && 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-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\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="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | 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 md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="list">{{contact.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="list">{{contact.disposition}}</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="2">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">Assigned a</md-button>\n <md-menu-content>\n <md-menu-item ng-if="contact.lastAssignedTo">\n <md-button ng-click="vm.assignedA(contact)"><em translate="DASHBOARDS.NONE">Not Assigned</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignedA(contact,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.disposition.length" ng-repeat="disposition in vm.disposition">\n <md-button ng-click="vm.disposed(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>'),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; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n \x3c!-- <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> --\x3e\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n \x3c!-- <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSE\' | translate }}</th>\n <th md-column width="10px"></th> --\x3e\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'busy\':\'indigo-100-bg\',\'*pause\':\'amber-50-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].globalStatus]">{{ vm.isPause(vm.agents[value].globalStatus) ? \'\' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? \'*\'+vm.agents[value].pauseType || \'DEFAULT PAUSE\' : vm.agents[value].pauseType || \'DEFAULT PAUSE\') : \'\'}}</span>\n </td>\n <td class="bt custom-column">\n <timer start-time="vm.agents[value].lastLoginAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt custom-column">\n <timer ng-if="vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)" start-time="vm.agents[value].lastPauseAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class="bt bl">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'talking\':\'indigo-100-bg\',\'ringing\':\'orange-400-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt bl">\n <div layout="column">\n <span ng-if="vm.agents[value].queue" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].queue }}</span>\n <span ng-if="vm.agents[value].destconnectedlinenum" class="padding-5" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class="padding-5" ng-if="vm.agents[value].queue || vm.agents[value].destconnectedlinenum">\n <timer start-time="vm.agents[value].voiceStatusTime" interval="1000" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].voiceStatus]">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n \x3c!-- <td class="bt">--</td>\n <td class="bt">--</td> --\x3e\n <td class="bt bl" ng-if="vm.license.chat">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n \x3c!-- <td class="bt padding-5 text-center">{{ agent.chatCurrentCapacity }}/{{ agent.chatCapacity > 0 ? agent.chatCapacity : \'∞\' }}</td> --\x3e\n <td md-number class="bt text-center font-size-20" ng-if="vm.license.chat" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].chatStatus]">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.mail">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.mail" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].mailStatus]">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class="bl bt" ng-if="vm.license.messaging">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">5</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">10</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.messaging" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].smsStatus]">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.openchannel">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">4</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">89</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.openchannel" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].openchannelStatus]">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class="bt bl" ng-if="vm.license.fax">\n <div layout="row">\n \x3c!-- <div class="column">\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon></span>\n <span class="md-capture green-fg">7</span>\n </div>\n <div class="row">\n <span><md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon></span>\n <span class="md-capture blue-fg">2</span>\n </div>\n </div> --\x3e\n <div layout="column" layout-align="center center">\n <span class="text-boxed md-background-bg bl bt padding-5" ng-class="{\'idle\':\'lime-300-bg\',\'maxcapacity\':\'red-A200-bg\',\'working\':\'indigo-100-bg\',\'pause\':\'amber-200-bg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5 text-center font-size-20" ng-if="vm.license.fax" ng-class="{\'idle\':\'lime-300-fg\',\'maxcapacity\':\'red-A200-fg\',\'working\':\'indigo-100-fg\',\'pause\':\'amber-200-fg\'}[vm.agents[value].faxStatus]">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class="bl bt padding-5 text-center">\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(vm.agents[value], $event)" translate="VOICE.LOGOUT">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.queueAdd(vm.agents[value], $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()" class="text-capitalize" translate="VOICE.PAUSE">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=" vm.agents[value].voicePause && \'DEFAULT PAUSE\' === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value])"><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-disabled="vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType" ng-click="vm.pause(vm.agents[value], 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 ng-if="vm.isPause(vm.agents[value].globalStatus)">\n <md-button ng-click="vm.unPause(vm.agents[value])" 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.filteredAgents.length}}" md-on-paginate="vm.onInit" 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.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 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">\n <timer ng-if="call.answertime" start-time="call.answertime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.context)">{{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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 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.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 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 || 0) / 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 || 0) / 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 md-order-by="name">{{ \'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="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(vm.queues[value].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, vm.queues[value])" 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, vm.queues[value])" 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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 \x3c!-- <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> --\x3e\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n <i class="icon-information-outline grey-600-fg">\n <md-tooltip>{{\'FAX.INFO\' | translate}}</md-tooltip>\n </i>\n </md-button> --\x3e\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | 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">\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 <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.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" 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" ng-required="true" 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\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" ng-required="vm.voicemail.attach === \'yes\'">\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" aria-label="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="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\n <span ng-if="vm.voicemail.exten">{{vm.voicemail.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="vm.voicemail.attach === \'yes\'">\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-required="true" 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\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 name="context" ng-model="vm.voicemail.context" aria-label="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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" aria-label="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 name="envelope" ng-model="vm.voicemail.envelope" aria-label="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 name="delete" ng-model="vm.voicemail.delete" aria-label="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\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </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 class="md-primary" ng-click="vm_dc.voiceMailMessageDownload(message, $event)" translate="VOICE.DOWNLOAD_MESSAGE">\n Download Message\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="8">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" 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.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" aria-label="OutboundRoute" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </span>\n </div>\n\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.voicePrefix.description">\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$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.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($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/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</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/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" 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.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.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.selectedVoicePrefixes =[]">\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-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.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="VOICEPREFIXES.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.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" 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.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedVoicePrefixes($event)" aria-label="delete selected" translate translate-attr-label="VOICEPREFIXES.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\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\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="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | 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.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ VoiceExtensionId = vm.outboundRoutes[voicePrefix.VoiceExtensionId]; VoiceExtensionId.exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.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(voicePrefix, $event)" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event)" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event)" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX 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 VOICEPREFIX BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX 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" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" aria-label="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\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}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\n <span ng-if="vm.voiceQueue.exten">{{vm.voiceQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" aria-label="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="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" ng-required="true">\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</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 name="joinempty" ng-model="vm.voiceQueue.joinempty" aria-label="JoinWhenEmpty" 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 name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" aria-label="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 name="musiconhold" ng-model="vm.voiceQueue.musiconhold" aria-label="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 name="announce" ng-model="vm.voiceQueue.announce" aria-label="AnnounceToAgent">\n <md-option ng-value="\'FALSE\'">None</md-option>\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-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\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 ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</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 name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" aria-label="RandomPeriodicAnnounce">\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 name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" aria-label="AnnounceHoldtime">\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 name="announce_position" ng-model="vm.voiceQueue.announce_position" aria-label="AnnounceCallerPosition">\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 name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" aria-label="ReportHoldtimeAgent">\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 name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" aria-label="PeriodicAnnounce" autofocus multiple>\n <md-option ng-value="\'\'">Default</md-option>\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-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 name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" aria-label="HoldTimeAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" aria-label="YouareNextAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" aria-label="ThereareAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" aria-label="WaitingCallsAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" aria-label="EstimatedHoldTimeAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" aria-label="MinutesAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_minute" ng-model="vm.voiceQueue.queue_minute" aria-label="MinuteAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" aria-label="SecondsAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" aria-label="ThankYouAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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" ng-required="true">\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 ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.voiceQueue.autopause" aria-label="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 name="ringinuse" ng-model="vm.voiceQueue.ringinuse" aria-label="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 ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" aria-label="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 name="monitor_format" ng-model="vm.voiceQueue.monitor_format" aria-label="MonitorFormat">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" aria-label="SetInterfaceVariables">\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 name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" aria-label="SetQueueVariables">\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 name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" aria-label="SetQueueEntryVariables">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event)" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 name="rating" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n \x3c!-- DATE FILTER --\x3e\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE_RANGE">Select Date Range</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearDateFilter()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.CLEAR\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getVoiceRecordings()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n \x3c!-- /DATE FILTER --\x3e\n </div>\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" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="membername">{{ \'VOICE.AGENT\' | 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 md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | 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="12">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="membername ">{{voiceRecording.membername}}</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>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\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 ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</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.downloadfile2(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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"></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>\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\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\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_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">{{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">{{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" 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_ct.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_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" 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/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" 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(null)">\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!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.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 \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\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.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></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/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" 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(null)">\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 ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),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/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</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="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\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\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),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 class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" 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="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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</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/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\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() | uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\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-diameter="32"></md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt">{{ days > 0 ? days + \'d\' : \'\' }} {{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 layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt">{{ days > 0 ? days + \'d\' : \'\' }} {{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 || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></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.png" 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"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\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 ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\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)"><span translate="TOOLBAR.CHANGEPASSWORD">Change Password</span></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\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></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 <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" 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 </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 flag-24" 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 ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" 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 <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">{{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\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/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">Preview</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 layout="row" ng-if="vm.preview">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
+!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","gridster","ds.clock","angucomplete-alt"])}(),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";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),t.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","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.marketplace","app.plugins","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,t){e.state("app.login",{url:"/login?token&userId",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,basename,savename,type,startDate,endDate,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","$q","describeTable",function(e,t,a,i){var o;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:t.id}).then(function(e){var t=[];if((o=e).joins)try{o.joins=JSON.parse(o.joins);for(var n=0;n<o.joins.length;n+=1)t.push(i.getColumns(o.joins[n].foreignTable))}catch(e){console.log(e)}return a.all(t)}).then(function(e){for(var t=0;t<e.length;t+=1)o.joins[t].foreignTableFields=_.difference(_.keys(e[t]),["$promise","$resolved"]);return o})}]},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,filename,projectName,uniqueid,callerid,extension,audio",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getSquareProjects",{id:t.getCurrentUser().id,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:!0})}],trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,type:"inbound",fields:"id,name",sort:"name",nolimit:!0,channel:"voice"})}],sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver",function(e){return e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver",function(e){return e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0})}]},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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getChatWebsites",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",controller:"AgentsChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"chat",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getChatQueues")}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).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,dialPrefix",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,dialPrefix",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",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:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var t={},n=0;n<e.rows.length;n++)t[e.rows[n].id]=e.rows[n].name;return t}],tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"id,name",sort:"name",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,priority,recallme,VoiceQueueId,CampaignId,UserId",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(t,e){var a;return(e.hasRole("admin")?t.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):t.resolve("user@getQueues",{id:e.getCurrentUser().id,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,t.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var t,n=0;n<e.rows.length;n+=1)(t=_.find(a.rows,{id:e.rows[n].id}))&&_.merge(t,_.pick(e.rows[n],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).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",["ngMaterialDateRangePicker","app.dashboards.general.user"]).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",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0})}],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",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],chatWebsites:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getChatWebsites",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],mailAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getMailAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],smsAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getSmsAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],openchannelAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("user@getOpenchannelAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{dateStart:moment().startOf("day").toString(),dateEnd:moment().endOf("day").toString()})}],faxAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getFaxAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getFaxAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",controller:"AgentsFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/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:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"fax",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getFaxQueues")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getFaxAccounts",{id:t.getCurrentUser().id,sort:"-updatedAt",limit:10,offset:0})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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,type,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,type,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,type,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,type,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:1305,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:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver",function(e){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver",function(e){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver",function(e){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",limit:10,offset:0})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:t.id})}]},authenticate:!0,permissionId:1308,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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,enableUncompleteSave,description,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,enableUncompleteSave,description,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getMailAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",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,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:t.id})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver",function(e){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:603,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",controller:"AgentsMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"mail",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getMailQueues")}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getMailAccounts",{id:t.getCurrentUser().id,sort:"-updatedAt",limit:10,offset:0})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver",function(e){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"name",limit:10,offset:0})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,t){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:t.id})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),t.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",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,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,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,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",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,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:1510}).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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:1510}).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:1510}).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,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}]},authenticate:!0,permissionId:1510}).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:1510}).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:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getOpenchannelAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",controller:"AgentsOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("openchannelQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"openchannel",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getOpenchannelQueues")}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),t.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).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,securePassword,callRecordingEncryption,chatTimeout,stunaddr,turnaddr,turnusername,turnpassword,phoneBarAutoUpdater,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,messagesAlignment,phoneBarRememberMeEnabled",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,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,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",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,defaultPageTitle,pageTitle,defaultPreferred",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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?tab",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",{latest:!0})}]},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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getSmsAccounts",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",controller:"AgentsSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("smsQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"sms",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getSmsQueues")}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).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,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,permissions,crudPermissions,passwordResetAt",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,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,permissions,crudPermissions,passwordResetAt",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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",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,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",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,context,callgroup,pickupgroup,encryption,phone,mobile",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,context,callgroup,pickupgroup,encryption,phone,mobile",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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"}).state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver",function(e){return e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",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,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,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,DefaultReportId,CustomReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}]},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,save_name,converted_format,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,color",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,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,t38pt_udptl,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,t38pt_udptl,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","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:411}).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","Auth",function(e,t){return t.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("user@getAgents",{id:t.getCurrentUser().id,fields:"id,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,mailPause,pauseType,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity",role:"agent",sort:"fullname",nolimit:!0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:411}).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:411}).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:411}).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:411}).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,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}]},authenticate:!0,permissionId:411}).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:411}).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:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).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","Auth",function(e,t){return t.hasRole("admin")?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",channel:"voice",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,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",channel:"voice",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,recordingFormat,cutdigits,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,recordingFormat,cutdigits,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",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,membername,rating,audio,userDisposition",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.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver",function(e){return e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",limit:10,offset:0})}]},authenticate:!0,permissionId:410,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","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,t){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),t.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).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,n,t,a){e.$on("$stateChangeStart",function(e,t){return t.hasOwnProperty("authenticate")&&t.authenticate&&!a.isLoggedIn()?(e.preventDefault(),n.go("app.login",{},{reload:!0,notify:!0})):a.isLoggedIn()&&t.hasOwnProperty("permissionId")&&t.permissionId&&!a.hasPermission(t.permissionId)&&!a.hasRole("admin")?(e.preventDefault(),n.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(a,i,o,s,t,r){var l,d=["id","role","fullname","name","internal","email","userpic","permissions","md5secret","phoneBarAutoAnswer","phoneBarAutoAnswerDelay","phoneBarEnableRecording","phoneBarEnableDtmfTone","voicePause","chatPause","mailPause","faxPause","smsPause","openchannelPause","phoneBarEnableSettings","phoneBarExpires","pauseType","showWebBar","phoneBarRemoteControlPort","phoneBarRemoteControl","lastLoginAt","lastPauseAt","crudPermissions","allowmessenger","passwordResetAt","alias","phoneBarPrefixRequired","hotdesk"];function c(e){var t=o.defer();return m("agent")&&0!==l.showWebBar?s.user.login({id:l.id,device:"web",intrf:e}).$promise.then(function(){console.log("AGENT LOGGED IN"),t.resolve()}).catch(function(e){console.error(e),t.reject(e)}):m("admin")||m("user")?s.user.update({id:l.id},{online:!0,lastLoginAt:moment().format("YYYY-MM-DD HH:mm:ss")}).$promise.catch(function(e){console.error(e)}).finally(function(){t.resolve()}):t.resolve(),t.promise}function n(){if(i.remove("motion.user"),i.remove("motion.token"),l&&l.id){var e=l.id;l=null,t.localStorage.removeItem("motion.user:"+e)}}function m(e){return!!l&&l.role===e}function e(){return i.get("motion.token")}function u(e){return l=_.assign(l,_.pick(e,d)),i.put("motion.user",JSON.stringify(l)),l}return function(){if(i.get("motion.user"))l=JSON.parse(i.get("motion.user")),s.user.get({id:l.id,fields:d.join(",")}).$promise.then(function(e){if(e)return u(e)}).catch(function(e){console.log("Error retrieving user",e)})}(),{login:function(e){var t,n=o.defer();return s.auth.local(e).$promise.then(function(e){return t=e,i.put("motion.token",e.token),s.user.get({id:e.id,fields:d.join(",")}).$promise}).then(function(e){(l=e).lastLoginAt=moment(),i.put("motion.user",JSON.stringify(e))}).then(function(){if(m("agent")&&1==l.showWebBar&&l.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver","Auth",function(e,t){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return c(e)}).catch(function(e){n.reject(e.data)}).finally(function(){s.user.get({id:t.id,fields:d.join(",")}).$promise.then(function(e){l=e,n.resolve()}).catch(function(e){console.log("Error update user login",e),n.reject(e.data)})}),n.promise},logout:function(e){var t;return o.defer(),e?(n(),o.resolve()):(t=o.defer(),m("agent")&&0!==l.showWebBar?s.user.logout({id:l.id,device:"web"}).$promise.then(function(){console.log("AGENT LOGGED OUT")}).catch(function(e){console.error(e)}).finally(function(){t.resolve()}):m("admin")||m("user")?s.user.update({id:l.id},{online:!1}).$promise.catch(function(e){console.error(e)}).finally(function(){t.resolve()}):t.resolve(),t.promise).then(n).catch(function(e){console.error(e)})},queueLogin:c,isLoggedIn:function(){return!(!l||!e())},hasRole:m,hasPermission:function(e){return!!l&&_.includes(l.permissions,e)},getToken:e,getCurrentUser:function(){return l},updateCurrentUser:u,removeCookies:n}}e.$inject=["$mdDialog","$cookies","$q","api","$window","$document"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(t,e){this.telephones=e,this.closeDialog=function(e){t.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",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(t){var n={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(i,e){return i=n.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(n.urlParse)).push(t.location),1<=(e=e.filter(function(e){var t=i.hostname===e.hostname,n=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return t&&n&&a})).length}};return n}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var n={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(n[e]))return!1;return n[e]},setConfig:function(e,t){n[e]=t}};return 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(s,l,d){return{restrict:"E",compile:function(e,t){var o;return t.code||(o=e.html(),e.empty()),function(n,a,r){r.code&&(o=n.$eval(r.code));var i=n.$eval(r.shouldInterpolate);l.when(o).then(function(e){if(e){i&&(e=d(e)(n));var t=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(t),s(function(){!function(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 s=hljs.highlight(r.language||r.lang,a.join("\n"),!0);s.value=s.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),n.append(s.value).addClass("highlight")}(e,t)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){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){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",t)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(n,t,a,i,o,s,e,r,l){function d(e){switch(n.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(n.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return t.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}n.currentUser=e.getCurrentUser(),n.showMenu=function(){return n.target&&n.target.indexOf("@")<0&&n.target!=n.currentUser.internal&&n.target!=n.currentUser.name&&(0==n.currentUser.showWebBar&&n.currentUser.phoneBarRemoteControl||2==n.currentUser.showWebBar&&n.license.webrtc)&&!n.disabled},n.call=function(e){return 2!==n.currentUser.showWebBar?(t=e,l.user.getVoicePrefixes({id:n.currentUser.id}).$promise.then(function(e){if(e.count)return s.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!0,locals:{prefixes:e,required:n.currentUser.phoneBarPrefixRequired}})}).then(function(e){n.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+t):e&&-1!==e?d(e+t):e||d(t)})):d(e);var t},n.transfer=function(e){switch(n.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(n.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:t.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,t,n,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var t={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){return t}}).directive("msDatepickerFix",e)}(),function(){"use strict";angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(s){s.transfer=function(e,t,n,a){var i=[];if(0<=n)i.push(e[n]),t.push(e[n]),e.splice(n,1);else{for(var o=0;o<e.length;o+=1)t.push(e[o]);e.length=0,i=t}s.options.transferCallback&&s.options.transferCallback(i,a)},s.getLine=function(e,t){var n="";if(_.isNil(t))return n;if(_.isArray(t)){for(var a=0;a<t.length;a++)n+=" "+(e[t[a]]?e[t[a]]:"");return n}return e[t]?e[t]:""}}],templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(n,e){var t=e.emojioneArea({pickerPosition:n.pickerPosition,search:n.search,recentEmojis:n.recentEmojis,placeholder:a.instant(n.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,t){n.ngModel=this.getText(),n.onReply({event:t,body:this.getText()})},emojibtn_click:function(){n.ngModel=this.getText()}}});n.ngModel&&t[0].emojioneArea.setText(n.ngModel),n.internalControl=n.ctrlMethods||{},n.internalControl.setText=function(e){t[0].emojioneArea.setText(e)},n.internalControl.getText=function(){return t[0].emojioneArea.getText()},n.$watch("ngModel",function(e){e||t[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var t=this;function e(){return t.forms.length}function n(){return 0===t.selectedIndex}function a(){return t.selectedIndex===e()-1}t.forms=[],t.selectedIndex=0,t.registerForm=function(e){t.forms.push(e)},t.previousStep=function(){if(n())return;t.selectedIndex--},t.nextStep=function(){if(a())return;t.selectedIndex++},t.firstStep=function(){t.selectedIndex=0},t.lastStep=function(){t.selectedIndex=e()-1},t.totalSteps=e,t.isFirstStep=n,t.isLastStep=a,t.currentStepInvalid=function(){return angular.isDefined(t.forms[t.selectedIndex])&&t.forms[t.selectedIndex].$invalid},t.previousStepInvalid=function(){return 0<t.selectedIndex&&angular.isDefined(t.forms[t.selectedIndex-1])&&t.forms[t.selectedIndex-1].$invalid},t.formsIncomplete=function(){for(var e=0;e<t.forms.length;e++)if(t.forms[e].$invalid)return!0;return!1},t.resetForm=function(){for(var e=t.selectedIndex=0;e<t.forms.length;e++)t.forms[e].$setPristine(),t.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){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],o=a[1];o.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,t){var n=i.find("ms-info-bar-active"),a="ms-info-bar-active";n.addClass(a),e.removeInfoBar=function(){n.removeClass(a),t.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,t={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},n=!0;function i(){n&&e.cancel(n),n=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("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}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),t=0;t<d.items.length;t++){var n,a,i,o,s=d.items[t];(s=angular.element(s)).scope()&&s.scope().$broadcast("msMasonryItem:startReLayout"),s.css({width:d.columnWidth}),d.options.respectItemOrder?(i=t%d.columnCount,o=e[i]):(o=Math.min.apply(Math,e),i=e.indexOf(o)),e[i]=o+s[0].getBoundingClientRect().height,n=Math.round(i*d.columnWidth),a=o,s.css({transform:"translate3d("+n+"px,"+a+"px,0px)"}),s.addClass("placed"),s.scope()&&s.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(t,d.options):t,r.$watch(function(){return d.container.width()},function(e,t){e!==t&&i()})},d.waitImagesLoaded=function(e,t){if("undefined"!=typeof imagesLoaded){var n=a.imagesLoaded(e);n.on("done",function(){t()})}else t()},r.$on("msMasonry:relayout",function(){i()})}function t(s){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,o){return{pre:function(e,t,n,a){a.options=angular.fromJson(o.options||"{}"),a.container=i},post:function(e,t,n,a){s(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",t).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(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()})}}})}(),function(){"use strict";function e(n,e,a,i){var o=this;function s(e,t){o.selectedPalette=e,o.selectedHues=t}function r(){s(!(o.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,t){o.selectedColor={palette:e,hue:t,class:"md-"+e+"-"+t+"-bg",bgColorValue:i.rgba(o.palettes[e][t].value),fgColorValue:i.rgba(o.palettes[e][t].contrast)},"obj"!==o.msModelType||angular.equals(o.selectedColor,o.modelCtrl.$viewValue)||d(),s(e,o.palettes[e]),n.$selectedColor=o.selectedColor}function d(){"class"===o.msModelType?o.modelCtrl.$setViewValue(o.selectedColor.class):"obj"===o.msModelType&&o.modelCtrl.$setViewValue(o.selectedColor)}o.palettes=e,o.selectedPalette=!1,o.selectedHues=!1,n.$selectedColor={},o.activateHueSelection=s,o.selectColor=function(e,t){l(e,t),d(),a.hide()},o.removeColor=r,n.$watch("ngModel",function(){if(!o.modelCtrl.$viewValue||""===o.modelCtrl.$viewValue)return void r();var e,t;if("class"===o.msModelType){var n=o.modelCtrl.$viewValue.split("-");t=5<=n.length?(e=n[1]+"-"+n[2],n[3]):(e=n[1],n[2])}else"obj"===o.msModelType&&(e=o.modelCtrl.$viewValue.palette,t=o.modelCtrl.$viewValue.hue||500);l(e,t)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){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)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,t,n){var a="true"===n.msNavIsFolded,i=!1,o=angular.element(p[0].body),s=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=t.parent();function d(){o.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),t.scrollTop(0),l.append(s),s.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),o.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(s).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),t.scrollTop(0),o.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(s),s.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){o.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),t.off("mouseenter mouseleave")}v.setFoldable(e,t,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){s.off("mouseenter touchstart"),r.off("mouseenter touchstart"),t.off("mouseenter mouseleave")})}}}function t(n,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){n.$broadcast("msNav::expandMatchingToggles");var t=n.$on("$stateChangeSuccess",function(){n.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){t()})}}}}function n(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,t){return e.addClass("ms-nav-toggle"),angular.isUndefined(t.collapsed)&&(t.collapsed=!0),e.attr("collapsed",t.collapsed),function(a,i,e,n){var o={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},t=i.find("a"),s=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var t=angular.element(i.find("ms-nav-toggle-items")[0]);t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=t[0].offsetHeight;return t.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(t,{display:"block",height:"0px"},{height:n+"px"},o.expandAnimation).then(function(){t.addClass(o.expanded),t.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var t=angular.element(i.find("ms-nav-toggle-items")[0]),n=t[0].offsetHeight;return a.$evalAsync(function(){p.animate(t,{height:n+"px"},{height:"0px"},o.collapseAnimation).then(function(){t.removeClass(o.expanded),t.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(t,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(r,""),s.push(t))}),n.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(n.isDisabled())return;n.disable(),l()?(n.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){n.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=n.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(t=!0)}),t||c().then(function(){n.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){n.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var t=g.current.name,n=!1;angular.forEach(s,function(e){t===e&&(n=!0)}),n?d():c()}),a.$on("msNav::pushToLockedList",function(){n.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],t.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],n.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var n={};return{setFoldable:function(e,t){n={scope:e,element:t}},isNavFoldedOpen:function(){return n.scope.isNavFoldedOpen()},toggleFold:function(){n.scope.toggleFold()},openFolded:function(){n.scope.openFolded()},closeFolded:function(){n.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,t=!1,n=[],a=[];e.isDisabled=function(){return t},e.enable=function(){t=!1},e.disable=function(){t=!0},e.setToggleItem=function(e,t){n.push({element:e,scope:t})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,t){a.push({element:e,scope:t})},e.clearLockedItems=function(){a=[]}}).directive("msNav",t).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",n)}(),function(){"use strict";function e(e,t){e.root?this.navigation=t.getNavigation(e.root):this.navigation=t.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},t.sort()}function t(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,t){var n=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),o=u("navigation");function s(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),n.addClass("ms-navigation-folded"),r();else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),n.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){t.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),n.addClass("ms-navigation-folded-open"),a.remove(),n.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),n.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),n.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return o.isLockedOpen()},function(e,t){if(!angular.isUndefined(e)&&!angular.equals(e,t)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||s(e)}),e.toggleFolded=function(){s(!p.getFolded())},e.$on("$stateChangeStart",function(){o.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function n(n,e,a,i,t,o){var s=this;s.element=e,s.node=n.node,s.hasChildren=void 0,s.collapsed=void 0,s.collapsable=void 0,s.group=void 0,s.animateHeightClass="animate-height",s.toggleCollapsed=function(){s.collapsed?s.expand():s.collapse()},s.collapse=function(){var e=s.element.children("ul"),t=e[0].offsetHeight;n.$evalAsync(function(){s.collapsed=!0,s.element.addClass("collapsing"),i.animate(e,{display:"block",height:t+"px"},{height:"0px"},s.animateHeightClass).then(function(){e.css({display:"",height:""}),s.element.removeClass("collapsing")}),n.$broadcast("msNavigation::collapse")})},s.expand=function(){var e=s.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),n.$evalAsync(function(){s.collapsed=!1,s.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:t+"px"},s.animateHeightClass).then(function(){e.css({height:""}),s.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",s.node._path)})},s.getClass=function(){return s.node.class},s.isHidden=function(){if(angular.isDefined(s.node.hidden)&&angular.isFunction(s.node.hidden))return s.node.hidden();return!1},function(){s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),!s.hasChildren||s.group?s.collapsable=!1:s.collapsable=!(!angular.isUndefined(s.node.collapsable)&&"boolean"==typeof s.node.collapsable&&!0!==s.node.collapsable);s.collapsable?s.collapsed=!(!angular.isUndefined(s.node.collapsed)&&"boolean"==typeof s.node.collapsed&&!0!==s.node.collapsed):s.collapsed=!1;if(s.node.state===t.current.name||t.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(t.params)&&!angular.equals(s.node.stateParams,t.params))return;n.$emit("msNavigation::stateMatched"),o.setActiveItem(s.node,n)}n.$on("msNavigation::stateMatched",function(){s.collapsable&&s.collapsed&&n.$evalAsync(function(){s.collapsed=!1})}),n.$on("msNavigation::collapse",function(e,t){if(!s.collapsed&&s.collapsable)if(angular.isUndefined(t))s.collapse();else{var n=t.split("."),a=[],i=o.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<n.indexOf(s.node._id))return;if(-1<a.indexOf(s.node._id))return;s.collapse()}}),n.$on("$stateChangeSuccess",function(){if(s.node.state===t.current.name){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(t.params)&&!angular.equals(s.node.stateParams,t.params))return;o.setActiveItem(s.node,n),a.$broadcast("msNavigation::collapse",s.node._path)}if(t.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(t.params)&&!angular.equals(s.node.stateParams,t.params))return;n.$emit("msNavigation::stateMatched")}})}()}function a(t){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){t.setNavigationScope(e)}}}}function i(n,e,t,a,i){var o=this;o.element=e,o.node=n.node,o.hasChildren=void 0,o.group=void 0,o.getClass=function(){return o.node.class},function(){if(o.isActive=!1,o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),o.node.state===a.current.name||a.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(o.node.stateParams,a.params))return;n.$emit("msNavigation::stateMatched"),i.setActiveItem(o.node,n)}n.$on("msNavigation::stateMatched",function(){o.hasChildren&&n.$evalAsync(function(){o.isActive=!0})}),n.$on("msNavigation::clearActive",function(){if(o.hasChildren){var e=[],t=i.getActiveItem();t&&(e=t.node._path.split(".")),-1<e.indexOf(o.node._id)?n.$evalAsync(function(){o.isActive=!0}):n.$evalAsync(function(){o.isActive=!1})}}),n.$on("$stateChangeSuccess",function(){if(o.node.state===a.current.name||a.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(o.node.stateParams,a.params))return;i.setActiveItem(o.node,n),t.$broadcast("msNavigation::clearActive")}})}()}function o(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,t,n,a){t.on("click",function(){if(!a.hasChildren||i("gt-md"))return;t.toggleClass("expanded")}),e.$on("$destroy",function(){t.off("click")})}}}}e.$inject=["$scope","msNavigationService"],t.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],n.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],o.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function s(e,t){if(angular.isString(e)){for(var n=e.split("."),a=n[n.length-1],i=function(e){var t=l;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}(n),o=!1,s=0;s<i.length;s++)if(i[s]._id===a){o=i[s];break}o?(angular.extend(o,t),o.uisref=m(o)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=a,t._path=e,t.uisref=m(t),i.push(t))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){if(angular.isString(e)){for(var t=l,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}r.error("path must be a string (eg. `dashboard.project`)")}function c(e){e||(e=l).sort(a);for(var t=0;t<e.length;t++){var n=e[t].children;1<n.length&&n.sort(a),0<n.length&&c(n)}}function a(e,t){return parseInt(e.weight)-parseInt(t.weight)}function m(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}this.saveItem=s,this.deleteItem=d,this.sortByWeight=c,this.$get=function(){var n=null,t=null,a=null,i=null,e={saveItem:s,deleteItem:d,sort:c,clearNavigation:function(){l=[],t&&(t.vm.navigation=l)},setActiveItem:function(e,t){n={node:e,scope:t}},getActiveItem:function(){return n},getNavigation:o,getFlatNavigation:function(e){return function e(t){var n=[];for(var a=0;a<t.length;a++){var i=angular.copy(t[a]);i.children=[],n.push(i),0<t[a].children.length&&(n=n.concat(e(t[a].children)))}return n}(o(e))},setNavigationScope:function(e){t=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){t.toggleFolded()}};return e;function o(e){if(e){for(var t=0;t<l.length;t++)if(l[t]._id===e)return[l[t]];return null}return l}}}).controller("MsNavigationController",e).directive("msNavigation",t).controller("MsNavigationNodeController",n).directive("msNavigationNode",function(){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")}}}}).directive("msNavigationItem",function(){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")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){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")}}}}).directive("msNavigationHorizontalItem",o)}(),function(){"use strict";function e(i,n,o,e,a,s,t,r,l,d,c){var m=this,u=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],p=JSON.parse(t.localStorage.getItem("motion2.user:"+m.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function g(e){switch(e){case"ringing":m.conf.ringingMute?m.soundPlayer.muted=!0:m.soundPlayer.muted=!1,m.conf.ringingId&&m.soundPlayer.setSinkId(m.conf.ringingId).then(function(){m.soundPlayer.volume=m.conf.ringingVolume}).then(b).catch(function(e){console.info(e.message,m.conf.ringingId)});break;case"speaker":m.conf.speakerMute?m.remotePlayer.muted=!0:m.remotePlayer.muted=!1,m.conf.speakerId&&m.remotePlayer.setSinkId(m.conf.speakerId).then(function(){m.remotePlayer.volume=m.conf.speakerVolume}).then(b).catch(function(e){console.info(e.message,m.conf.speakerId)});break;case"microphone":for(var t=0;t<m.sessions.length;t+=1)m.conf.microphoneMute?m.sessions[t].mute():m.sessions[t].unmute();b();break;default:console.log("unknown device")}}function v(e,t,n){m.calls.unshift({target:e,fullname:n||e,inbound:t,time:moment().format("HH:mm")}),50<m.calls.length&&m.calls.pop()}function h(){return m.conf.license&&m.conf.isWebRTCSupported&&m.conf.hasMicrophone&&m.conf.hasSpeakers&&"https"===m.conf.protocol&&("chrome"===m.conf.browserName.toLowerCase()||"opera"===m.conf.browserName.toLowerCase()||"safari"===m.conf.browserName.toLowerCase())}function b(){p.webrtc=_.pick(m.conf,u),t.localStorage.setItem("motion2.user:"+m.conf.id,JSON.stringify(p))}function f(e){this.remotePlayer.srcObject=e.stream}function A(e){var t,n,a=e.session;switch(e.originator){case"local":a.outgoing=!0,a.name=e.request.ruri.user,a.user=e.request.ruri.user,v(a.user,!1);break;case"remote":a.incoming=!0,a.name=e.request.from.display_name,a.user=e.request.from.uri.user,t=e.session,n=t.name?t.name+" <"+t.user+">":t.user,c.create("Incoming call from: ",n,null,function(){t.answer(m.sessionConf)},function(){t.terminate()}).then(function(e){t.notification=e}).catch(function(e){console.error(e)}),v(e.session.user,!0),m.conf.autoAnswer&&o(function(){a.isInProgress()&&(a.autoAnswer=!0,m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0,a.answer(m.sessionConf))},m.conf.autoAnswerDelay?1e3*m.conf.autoAnswerDelay:0)}a.call_id=e.request.call_id,a.connection&&(a.connection.onaddstream=f.bind(this)),a.on("progress",function(e,t){var n=!1;switch(t.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),n=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),n=!0}n&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)}))}.bind(this,a)),a.on("confirmed",function(n,e){return n.confirmed=!0,"remote"===e.originator&&n.connection&&(n.connection.onaddstream=f.bind(this),_.head(n.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(n.connection.getRemoteStreams()))),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(n),g("speaker"),g("microphone"),n.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log(e.message)})),d.rpc.getVoiceChannels().$promise.then(function(e){var t=_.find(e.rows,function(e){return e.sipcalllinkedid===n.call_id?e:e.sipcalluniqueid===n.call_id?e:null});t&&(n.monitor=t.monitor,n.uniqueid=t.uniqueid,n.monitors=t.monitors)}).catch(function(e){console.error(e)})}.bind(this,a)),a.on("hold",function(e,t){"local"===t.originator&&(e.localHold=!0)}.bind(this,a)),a.on("unhold",function(e,t){"local"===t.originator&&(e.localHold=!1)}.bind(this,a)),a.on("ended",function(e,t){_.remove(this.sessions,{id:e.id})}.bind(this,a)),a.on("failed",function(e,t){this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),_.remove(this.sessions,{id:e.id})}.bind(this,a)),this.sessions.push(a)}function E(){m.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",i.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function y(e,t,n,a){return function(){s.show(s.simple().textContent(t).position(n).hideDelay(a)),e.terminate()}}function S(t){return d.user.getVoicePrefixes({id:m.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{prefixes:e,required:m.conf.phoneBarPrefixRequired}})}).then(function(e){if(m.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+t}else{if(e&&-1!==e)return e+t;if(!e)return t}})}e(function(){},999),m.direction="right",m.selectedMode="md-scale",m.target="",m.showDialpad=!1,m.soundPlayer=document.createElement("audio"),m.remotePlayer=document.getElementById(m.conf.remotePlayerId),m.soundPlayer.volume=1,m.sessionConf={mediaConstraints:{audio:!0,video:!1}},m.sessions=[],m.calls=[],m.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+m.conf.host+":8089/ws")],uri:new JsSIP.URI("sip",m.conf.name,m.conf.host,5060,null,null).toString(),authorization_user:m.conf.name,ha1:m.conf.ha1,realm:m.conf.realm,user_agent:m.conf.ua,session_timers_refresh_method:"invite",register_expires:m.conf.phoneBarExpires||60,register:!0}),m.conf=_.merge(p.webrtc,m.conf),n.bind("keyup",function(e){switch(e.keyCode){case 27:o(function(){m.showDialpad=!1})}}),m.$onInit=function(){g("ringing"),g("speaker"),this.ua.on("registered",function(){console.log("registered"),this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){console.log("unregistered"),this.registered=!1}.bind(this)),this.ua.on("newRTCSession",A.bind(this)),DetectRTC.load(function(){this.conf.hasMicrophone=DetectRTC.hasMicrophone,this.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,this.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,this.conf.osName=DetectRTC.osName,this.conf.osVersion=DetectRTC.osVersion,this.conf.browserName=DetectRTC.browser.name,this.conf.browserVersion=DetectRTC.browser.version,h()?this.ua.start():this.conf.license||l.warning({title:r.instant("TOOLBAR.WARNING"),msg:r.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))}.bind(this),m.type=function(e,t){var n=e;switch(m.target||(m.target=""),t&&(m.target+=e,i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target)),e){case"*":n="asterisk";break;case"#":n="pound"}m.conf.enableDtmfTone&&(m.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+n+".ogg"),m.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<m.sessions.length;a+=1)m.sessions[a].isEstablished()&&!m.sessions[a].isOnHold().local&&m.sessions[a].sendDTMF(e)},m.call=function(){if(m.target&&m.target!==m.conf.name&&m.target!==m.conf.internal){m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0;var e=m.target.replace(/ /g,"");return S(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&m.ua.call(e,m.sessionConf)}).then(function(){E()})}},m.hold=function(e){e.hold({useUpdate:!1})},m.refer=function(t){var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return S(e)}).then(function(e){t.refer(e,{eventHandlers:{requestSucceeded:y(t,"requestSucceeded","top right",3e3),requestFailed:y(t,"requestFailed","top right",3e3)}})})},m.record=function(e){a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{session:e,sessions:m.sessions}})},m.unhold=function(e){e.unhold({useUpdate:!1}),m.putOtherCallsOnHold(e)},m.answer=function(e){m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0,e.answer(m.sessionConf)},m.terminate=function(e){e.terminate()},m.selectSession=function(e){e.unhold({useUpdate:!1}),m.putOtherCallsOnHold(e)},m.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":m.type(e.key);break;case"enter":m.call()}},m.toggleDialpad=function(){m.showDialpad=!m.showDialpad},m.referAttended=function(e){a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(m.sessions,{id:e.id})}})},m.closeDialpad=function(){m.showDialpad=!1},m.initDevice=g,m.putOtherCallsOnHold=function(e){if(1<m.sessions.length)for(var t=0;t<m.sessions.length;t+=1)m.sessions[t].id===e.id||m.sessions[t].isOnHold().remote||m.sessions[t].hold({useUpdate:!1})},m.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|\-)*$/.test(e)?(m.target=e,i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target)):m.target?i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target):E():E()},m.targetSelected=function(e){e&&(m.target=e.originalObject.target,m.call(),E())},i.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:m.conf}}).then(function(e){e&&(m.conf=e,g("ringing"),g("speaker"))})}),i.$on("webrtc::logout",function(){m.ua.stop()}),i.$on("webrtc::call",function(e,t){t.target&&(m.target=t.target,m.call())}),i.$on("webrtc::transfer",function(e,t){if(t.target)for(var n=0;n<m.sessions.length;n+=1)if(m.sessions[n].isEstablished()&&!m.sessions[n].isOnHold().local)return S(t.target).then(function(e){e&&m.sessions[n].refer(e,{eventHandlers:{requestSucceeded:y(m.sessions[n],"requestSucceeded","top right",3e3),requestFailed:y(m.sessions[n],"requestFailed","top right",3e3)}})})})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","toasty","api","motNotification"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(t,e,n){var a=this;a.prefixes=e,a.required=n,a.closeDialog=function(e){t.hide(e)},a.call=function(){t.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,t){function n(){t.css("display","inline"),i(a,1e3)}function a(){t.css("display","none"),i(n,1e3)}n()}],replace:!0}}function t(t,i,o,e,n){var s=this;function a(t,e){console.log("startMonitor");var n=i.defer(),a=(e||t.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return o.rpc.startMonitor({uniqueid:s.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){t.filename=a+".wav",t.mixmonitorid=e.mixmonitorid,t.status="rec",s.session.monitor=!0,n.resolve(t)}).catch(function(e){n.reject(e)}),n.promise}s.title="Record",s.sessions=e,s.session=n,s.closeDialog=function(){t.hide()},s.addRecording=function(){var e=t.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");t.show(e).then(function(e){return a({},e)}).then(function(e){s.session.monitors.push(e)})},s.stop=function(t){return console.log("stopMonitor"),o.rpc.stopMonitor({uniqueid:s.session.uniqueid,mixmonitorid:t.mixmonitorid}).$promise.then(function(e){t.status="pause",s.session.monitor=_.includes(s.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},s.start=a}e.$inject=["$timeout"],t.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",t)}(),function(){"use strict";function e(t,a,i,e){var o=this;function s(e){t.hide(e)}o.title="Refer Attended",o.sessions=i,o.session=e,o.sessionTarget=null,i.length&&(o.target=i[0].user),o.closeDialog=s,o.transfer=function(){var e,t,n=_.find(i,function(e){if(e.user===o.target)return e});t=n.outgoing?(e=n,o.session):(e=o.session,n);t.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:function(e){a.show(a.simple().textContent("requestSucceeded").position("top right").hideDelay(3e3)),s(),t.terminate()},requestFailed:function(e){a.show(a.simple().textContent("requestFailed").position("top right").hideDelay(3e3)),s(),t.terminate()}}})}}e.$inject=["$mdDialog","$mdToast","sessions","session"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,o,t){var n=this;function a(e,t,n){var a;if(o[n]){if(a=_.find(e,function(e){return e.deviceId===o[n]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===t});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===t}))&&(o[n]=a.deviceId);return o[n]||null}o.ringingId=a(t,"audiooutput","ringingId"),o.speakerId=a(t,"audiooutput","speakerId"),o.microphoneId=a(t,"audioinput","microphoneId"),o.ringingVolume=o.ringingVolume||.5,o.speakerVolume=o.speakerVolume||.5,o.microphoneVolume=o.microphoneVolume||1,o.ringingMute=o.ringingMute||!1,o.speakerMute=o.speakerMute||!1,o.microphoneMute=o.microphoneMute||!1,n.conf=angular.copy(o),n.devices=t,n.saveSettings=function(){e.hide(n.conf)},n.closeDialog=function(){e.hide()},n.isCompatibleBrowser=function(){return"chrome"===n.conf.browserName.toLowerCase()||"opera"===n.conf.browserName.toLowerCase()||"safari"===n.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,t){var n=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];t.addClass(n)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(t,e){var n=!1,a=document.createElement("audio");t.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){n||(n=!0,e.preventDefault(),i[t.model||"voiceRecording"].download({id:t.id}).$promise.then(function(e){var t=[e.buffer],n=new Blob(t,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(n)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,t){var n=angular.element('<div class="ms-responsive-table-wrapper"></div>');t.after(n),n.append(t)}}})}(),function(){"use strict";function e(o,s,t,n){return{restrict:"AE",compile:function(e){if(!(n.getConfig("disableCustomScrollbars")||n.getConfig("disableCustomScrollbarsOnMobile")&&t.isMobile()))return e.addClass("ms-scroll"),function(e,t,n){var a={};function i(){PerfectScrollbar.update(t[0])}n.msScroll&&(a=e.$eval(n.msScroll)),a=angular.extend({},s.getConfig(),a),o(function(){PerfectScrollbar.initialize(t[0],a)},0),t.on("mouseenter",i),e.$watch(function(){return t.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||i()}),e.$watch(function(){return t.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||i()}),e.$on("$destroy",function(){t.off("mouseenter"),PerfectScrollbar.destroy(t[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){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=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(){return t}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(o,i,e){var s=this;s.collapsed=!0,s.query="",s.queryOptions={debounce:s.debounce||0};var t=!(!s.collapseOnBlur||"true"!=s.collapseOnBlur);s.resultsLoading=!1,s.results=null,s.selectedResultIndex=0,s.ignoreMouseEvents=!1,s.populateResults=function(e){if(s.collapsed)return;var t=angular.isArray(e),n=null===e;if(!t&&!n)return;s.selectedResultIndex=0,s.results=e},s.expand=function(){s.collapsed=!1,o.expand(),s.onExpand&&angular.isFunction(s.onExpand)&&s.onExpand()},s.collapse=function(){s.query="",s.populateResults(null),s.collapsed=!0,o.collapse(),s.onCollapse&&angular.isFunction(s.onCollapse)&&s.onCollapse()},s.blurCollapse=function(){if(!t)return;s.collapse()},s.absorbEvent=function(e){e.preventDefault()},s.handleKeydown=function(e){var t=e.keyCode;-1<[27,38,40].indexOf(t)&&e.preventDefault();switch(t){case 13:if(!s.results)return;s.handleResultClick(s.results[s.selectedResultIndex]);break;case 27:s.collapse();break;case 38:0<=s.selectedResultIndex-1&&(s.selectedResultIndex--,s.ensureSelectedResultIsVisible());break;case 40:if(!s.results)return;s.selectedResultIndex+1<s.results.length&&(s.selectedResultIndex++,s.ensureSelectedResultIsVisible())}},s.handleMouseenter=function(e){if(s.ignoreMouseEvents)return;s.selectedResultIndex=e},s.temporarilyIgnoreMouseEvents=function(){s.ignoreMouseEvents=!0,e.cancel(s.mouseEventIgnoreTimeout),s.mouseEventIgnoreTimeout=e(function(){s.ignoreMouseEvents=!1},250)},s.handleResultClick=function(e){s.onResultClick&&s.onResultClick({item:e});s.collapse()},s.ensureSelectedResultIsVisible=function(){var e=i.find(".ms-search-bar-results"),t=angular.element(e.find(".result")[s.selectedResultIndex]);if(e&&t){var n=t.position().top-8,a=t.position().top+t.outerHeight()+8;s.temporarilyIgnoreMouseEvents(),e.scrollTop()>n&&e.scrollTop(n),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},o.$watch("MsSearchBar.query",function(e,t){if(!angular.isUndefined(e)&&!angular.equals(e,t)&&!s.collapsed){var n=o.$parent.$eval(s.onSearch,{query:e}),a=angular.isArray(n),i=n&&!!n.then;a&&s.populateResults(n),i&&(s.resultsLoading=!0,n.then(function(e){s.populateResults(e)},function(){s.populateResults([])}).finally(function(){s.resultsLoading=!1}))}})}function t(i){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(e){return e.addClass("ms-search-bar"),function(e,t){var n,a=i.find("body");e.collapse=function(){t.removeClass("expanded"),a.removeClass("ms-search-bar-expanded")},e.expand=function(){t.addClass("expanded"),a.addClass("ms-search-bar-expanded"),n.focus()},n=t.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,n,i,s,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],t=l.getFlatNavigation(),n=r.defer(),a=0;a<t.length;a++)t[a].uisref&&e.push(t[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var o=0;o<d.shortcuts.length;o++)if(d.shortcuts[o]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,s(function(){n.resolve(e)},250),n.promise},d.loadShortcuts=function(){var e=r.defer(),t=angular.fromJson(n.get("motion.shortcuts"));angular.isUndefined(t)&&(t=[{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}],n.put("motion.shortcuts",angular.toJson(t)));return e.resolve(t),e.promise},d.saveShortcuts=function(){var e=r.defer();return n.put("motion.shortcuts",angular.toJson(d.shortcuts)),s(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var t=0;t<d.shortcuts.length;t++)d.shortcuts[t]._id===e._id&&(d.shortcuts.splice(t,1),d.query||(0===d.shortcuts.length?d.results=null:t>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var t=e.keyCode;-1<[38,40].indexOf(t)&&e.preventDefault();switch(t){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,s.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=s(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),t=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&t){var n=t.position().top-8,a=t.position().top+t.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>n&&e.scrollTop(n),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){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){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){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))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,t){var n=e.$on("msSplashScreen::remove",function(){a.leave(t).then(function(){n(),e=t=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function t(){i.setCurrentStep(1)}function n(e){return s(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return s(e)?!!i.steps[e-1].scope.hideStep:null}function o(e){return s(e)?!!n(e)||i.steps[e-1].form.$valid:null}function s(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||i.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),t()})},i.setCurrentStep=function(e){if(!s(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,t=e;1<=t;t--)if(!a(t)){e=t;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,t=e;t<=i.steps.length;t++)if(!a(t)){e=t;break}i.setCurrentStep(e)},i.gotoFirstStep=t,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return s(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!s(e))return null;for(var t=!1,n=1;n<e;n++)if(!o(n)){t=!0;break}return t},i.isStepOptional=n,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=o,i.isStepNumberValid=s,i.isFormValid=function(){return i.mainForm.$valid}}function t(s){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(e){return e.addClass("ms-stepper"),function(e,t,n,a){var i=a[0],o=a[1];s(function(){o.setOrientation("vertical"),o.registerMainForm(i),o.setupSteps()})}}}}e.$inject=["$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){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()}}}}).directive("msHorizontalStepperStep",function(){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()}}}}).directive("msVerticalStepper",t).directive("msVerticalStepperStep",function(){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()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,t){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function t(){var e=document.getElementById("bar-container"),t=document.getElementById("tab-container");return t.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==t.scrollLeft?"right":t.scrollWidth>e.scrollWidth&&t.scrollLeft>e.scrollLeft&&e.scrollWidth+t.scrollLeft>=t.scrollWidth?"left":t.scrollWidth>e.scrollWidth&&t.scrollLeft>e.scrollLeft&&e.scrollWidth+t.scrollLeft<t.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(t()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,n,t,a){var i=72,o=!1,s=!1,r=a.getScrollEl();!function(){n.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,t){var n=angular.element(t[0]);d(n).then(function(){m(function(){o=!0})})}):d(n).then(function(){m(function(){o=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return o&&s},function(e,t){angular.equals(e,t)||e&&(n.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var t=u.defer(),n=e.find("img");return 0<n.length?n.on("load",function(){t.resolve("Image is loaded")}):t.resolve("No images"),t.promise}function c(){r.scrollTop()+r.height()>n.position().top+i&&(m(function(){s=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var t=this;t.scrollEl=void 0,t.setScrollEl=function(e){t.scrollEl=e},t.getScrollEl=function(){return t.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');t.append(i);var o={scrollEl:"#content"};o=angular.extend(o,e.msTimeline,{});var s=angular.element(o.scrollEl);a.setScrollEl(s);var r=144;function l(){s.scrollTop()+s.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){s.on("scroll",l)}function c(){s.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,t,n,i,o,s,r,l){function d(){a.timeoutId&&clearTimeout(a.timeoutId)}function c(){void 0!==s.startTime&&(a.millis=moment().diff(moment(a.startTime))),a.maxTimeUnit&&"day"!==a.maxTimeUnit?"second"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3),a.minutes=0,a.hours=0,a.days=0,a.months=0,a.years=0):"minute"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4),a.hours=0,a.days=0,a.months=0,a.years=0):"hour"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5),a.days=0,a.months=0,a.years=0):"month"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30),a.years=0):"year"===a.maxTimeUnit&&(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30%12),a.years=Math.floor(a.millis/36e5/24/365)):(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24),a.months=0,a.years=0),a.secondsS=1===a.seconds||0===a.seconds?"":"s",a.minutesS=1===a.minutes||0===a.minutes?"":"s",a.hoursS=1===a.hours||0===a.hours?"":"s",a.daysS=1===a.days||0===a.days?"":"s",a.monthsS=1===a.months||0===a.months?"":"s",a.yearsS=1===a.years||0===a.years?"":"s",a.sseconds=a.seconds<10?"0"+a.seconds:a.seconds,a.mminutes=a.minutes<10?"0"+a.minutes:a.minutes,a.hhours=a.hours<10?"0"+a.hours:a.hours,a.ddays=a.days<10?"0"+a.days:a.days,a.mmonths=a.months<10?"0"+a.months:a.months,a.yyears=a.years<10?"0"+a.years:a.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),a.autoStart=s.autoStart||s.autostart,0===r.html().trim().length?r.append(l("<span>{{millis}}</span>")(a)):r.append(l(r.contents())(a)),a.interval=a.intervalAttr||1e3,a.startTime=null,a.endTime=null,a.timeoutId=null,a.countdown=a.countdownAttr&&0<=parseInt(a.countdownAttr,10)?parseInt(a.countdownAttr,10):void 0,a.isRunning=!1,a.$watch("startTimeAttr",function(e,t){e!==t&&a.isRunning&&a.start()}),a.$on("timer-start",function(){a.start()}),a.$on("timer-resume",function(){a.resume()}),a.$on("timer-stop",function(){a.stop()}),a.$on("timer-clear",function(){a.clear()}),a.$on("timer-set-countdown",function(e,t){a.countdown=t}),a.start=r[0].start=function(){var e=moment(),t=a.startTimeAttr?moment(a.startTimeAttr):null;a.startTime=!t||e<t?e:t;var n=a.endTimeAttr?moment(a.endTimeAttr):null;a.endTime=!n||n<e?null:n,a.countdown||(a.countdown=a.countdownAttr&&0<parseInt(a.countdownAttr,10)?parseInt(a.countdownattr,10):void 0),d(),m(),a.isRunning=!0},a.resume=r[0].resume=function(){d(),a.countdownAttr&&(a.countdown+=1),a.startTime=moment().diff(moment(a.stoppedTime).diff(moment(a.startTime))),m(),a.isRunning=!0},a.stop=a.pause=r[0].stop=r[0].pause=function(){a.clear(),a.$emit("timer-stopped",{timeoutId:a.timeoutId,millis:a.millis,seconds:a.seconds,minutes:a.minutes,hours:a.hours,days:a.days})},a.clear=r[0].clear=function(){a.stoppedTime=moment(),d(),a.timeoutId=null,a.isRunning=!1},r.bind("$destroy",function(){d(),a.isRunning=!1});var m=function(){a.millis=moment().diff(a.startTime);var e=a.millis%1e3;if(a.endTimeAttr&&(a.millis=moment(a.endTime).diff(moment()),e=a.interval-a.millis%1e3),a.countdownAttr&&(a.millis=1e3*a.countdown),a.millis<0)return a.stop(),a.millis=0,c(),void(a.finishCallback&&a.$eval(a.finishCallback));c(),a.timeoutId=setTimeout(function(){m(),a.$digest()},a.interval-e),a.$emit("timer-tick",{timeoutId:a.timeoutId,millis:a.millis}),0<a.countdown?a.countdown--:a.countdown<=0&&(a.stop(),a.finishCallback&&a.$eval(a.finishCallback))};void 0!==a.autoStart&&!0!==a.autoStart||a.start()}e.$inject=["$scope","$document","$timeout","$interval","$window","$translate","$attrs","$element","$compile"],angular.module("app.core").controller("MsTimerController",e).directive("timer",function(){return{restrict:"EA",replace:!1,scope:{intervalAttr:"=interval",startTimeAttr:"=startTime",endTimeAttr:"=endTime",countdownAttr:"=countdown",autoStart:"&autoStart",maxTimeUnit:"="},controller:"MsTimerController"}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{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"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var t=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var n=0;n<e.voiceQueues.rows.length;n+=1)_.includes(a.filter,e.voiceQueues.rows[n].id)&&(t+=e.voiceQueues.rows[n][e.attrs[0].value]?parseInt(e.voiceQueues.rows[n][e.attrs[0].value]):0)}return t}})}(),function(){"use strict";function e(s,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var t=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,t),r.multiBarChart.data.splice(0,t)}for(var n=0;n<r.properties.length;n+=1){if(r.multiBarChart.series[n]=s.instant("TOOLS."+r.properties[n].toUpperCase()),_.isNil(r.multiBarChart.data[n])&&(r.multiBarChart.data[n]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[n].splice(0,a)}for(var i=0,o=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[o]=e.voiceQueues.rows[i].name,r.multiBarChart.data[n][o]=e.voiceQueues.rows[i][r.properties[n]]?parseInt(e.voiceQueues.rows[i][r.properties[n]]):0,o+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.xAxes.length;t+=1)r.multiBarChart.options.scales.xAxes[t].ticks.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.yAxes.length;n+=1)r.multiBarChart.options.scales.yAxes[n].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(o){var s=this;s.filter=[],s.filtered=!1,s.properties=[],s.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},s.getPieChart=function(e){e&&(e.attrs&&function(e){s.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(s.filtered=!0,s.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(s.filtered=!1,s.filter=e.voiceQueuesSelected);if(s.pieChart.labels.length>s.properties.length){var t=s.pieChart.labels.length-s.properties.length;s.pieChart.labels.splice(0,t),s.pieChart.data.splice(0,t)}for(var n=0,a=0;n<s.properties.length;n+=1){s.pieChart.labels[n]=o.instant("TOOLS."+s.properties[n].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(s.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][s.properties[n]]?parseInt(e.voiceQueues.rows[i][s.properties[n]]):0);s.pieChart.data[n]=a,a=0}}(e),e.foreground&&(t=e,s.pieChart.options.legend.fontColor=t.foreground));var t}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,n,a,i){var o=this;function t(e){o.results=e||{count:0,rows:[]}}function s(){o.query.offset=(o.query.page-1)*o.query.limit,o.promise=i[o.reportRoute].run(o.query,t).$promise}o.countDown=0,o.refresh=0,o.title="",o.columns=[],o.results={rows:[],count:0},o.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},o.onInit=function e(t){t&&t.attrs&&(t.attrs[0]&&t.attrs[0].value&&(o.query.id=t.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===t.attrs[0].type?t.attrs[0].value:void 0,CustomReportId:"custom"===t.attrs[0].type?t.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(o.columns=e.rows),t.attrs[0].type){case"default":o.reportRoute="analyticDefaultReport";break;case"custom":o.reportRoute="analyticCustomReport"}return i[o.reportRoute].get({id:t.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(o.title=e.name),s()}).catch(function(e){console.log(e)})),t.attrs[1]&&t.attrs[1].value&&(o.refresh=parseInt(t.attrs[1].value),!_.isNaN(o.refresh)&&0<o.refresh?(o.countDown=parseInt(t.attrs[1].value),o.interval=a(function(){o.countDown-=1},1e3,0),o.timeout=n(function(){o.interval&&a.cancel(o.interval),e(t)},1e3*o.refresh)):(o.interval&&a.cancel(o.interval),o.timeout&&n.cancel(o.timeout))))},o.getResults=s,o.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t},e.$on("$destroy",function(){o.interval&&a.cancel(o.interval),o.timeout&&n.cancel(o.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,t){this.getTrustedURL=function(e){return t.trustAsResourceUrl(e)}}function t(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],t.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",t)}(),function(){"use strict";function e(e,t){var n=this;n.flipped=!1,n.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;n.flipped=!n.flipped,t.toggleClass("flipped",n.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){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)})}}}}).directive("msWidgetFront",function(){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}}}}).directive("msWidgetBack",function(){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}}}})}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){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()}})}(),function(){"use strict";function e(t){return function(e){return t.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){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}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){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(-1<o[t].indexOf(l)){s=!0;break}}s&&a.push(o)}return a}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,n){if(0===e.length||0===n.length)return e;var a=[];return e.forEach(function(e){var t=n.every(function(t){var n=!1;return e.tags.forEach(function(e){e.name!==t.name||(n=!0)}),n});t&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,t){if(0!==e.length&&0!==t.length){if(e.length<t.length)return[];var n=[],a=t.every(function(t){var n=!1;return e.forEach(function(e){e.name!==t.name||(n=!0)}),n});return a&&n.push(e),n}}})}(),function(){"use strict";function c(e,t,n,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=t,this.accept=n,this.reject=a,this.close=i}function m(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var n=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var t=_.find(e,function(e){return e.data.id===n.id});t&&t.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var l,n,d=[];"serviceWorker"in navigator&&m()?navigator.serviceWorker.register("notification.js").then(function(e){(l=e).update(),l.installing?n=l.installing:l.waiting?n=l.waiting:l.active&&(n=l.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===n){var t=_.find(d,{id:e.data.id});if(t)switch(e.data.action){case"accept":t.accept&&t.accept();break;case"reject":t.reject&&t.reject()}}}),{create:function(e,i,o,s,r){return new Promise(function(t,n){var a;m()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new c(e||"MyTitle",i||"MyBody",s,r),d.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return l.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:o||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,t){var n=e.split("@"),a=n[0],i=n[1],o=t||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var s=l.defer(),r=function(e){for(var t=e.split("."),n=c,a=0;a<t.length;a++){if(angular.isUndefined(n[t[a]])){d.error('Resource part "'+t[a]+'" is not defined!'),n=!1;break}n=n[t[a]]}return n||!1}(a);r?r[i](o,function(e){s.resolve(e)},function(e){s.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),s.reject('Resource "'+a+'" is not defined in the api service!'));return s.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var n=angular.injector(["ng"]).get("$log"),a="",v=[];function t(e){a=e}function i(){return a}function o(e,t){angular.isString(e)?angular.isArray(t)?v[e]={url:a+(t[0]||""),paramDefaults:t[1]||[],actions:t[2]||[],options:t[3]||{}}:n.error('"resource" must be an array and it must follow $resource definition'):n.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=t,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=o,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:t,getBaseUrl:i,register:o,resolve:function(e,t){g.$broadcast("msApi::resolveStart");var n=e.split("@"),a=n[0],i=n[1],o=t||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var s=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](o,function(e){s.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){s.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),s.reject('Resource "'+a+'" is not defined in the api service!');return s.promise},request:function(e,t,n,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),o=i[0],s=i[1],r=t||{};if(!o||!s)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[o];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[s](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(n)&&angular.isFunction(n)&&n(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+o+'" is not defined in the api service!'),l.reject('Resource "'+o+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,t){return-1<t.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],t=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function n(e){for(var t=0;t<e.length;t++){var n=e[t].string,a=e[t].prop;if(i=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 a(e){var t=e.indexOf(i);if(-1!==t)return parseInt(e.substring(t+i.length+1))}var o=n(e)||"unknown-browser",s=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=n(t)||"unknown-os";return o=o.toLowerCase(),s=o+"-"+s,r=r.toLowerCase(),d={browser:o,version:s,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,t){-1===t.indexOf(e)?t.push(e):t.splice(t.indexOf(e),1)}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,t){var n=this;n.themes=t.themes,n.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],n.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"}],n.layoutMode="wide",n.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",n.setActiveTheme=function(e){t.setActiveTheme(e)},n.getActiveTheme=function(){return t.themes.active},n.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===n.layoutMode)},n.updateLayoutStyle=function(){e.put("motion.layoutStyle",n.layoutStyle),location.reload()}}function t(t){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){t("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],t.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",t)}(),function(){"use strict";function e(i,a,o){var s={};return{generate:function(){var e=angular.copy(o.getRegisteredThemes()),a=angular.copy(o.getRegisteredPalettes());angular.forEach(e,function(n){s[n.name]={},angular.forEach(n.colors,function(e,t){s[n.name][t]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var t=angular.copy(e);angular.forEach(t,function(n){angular.forEach(n,function(e,t){n[t]=e.levels,n[t].color=e.levels.default.color,n[t].contrast1=e.levels.default.contrast1,n[t].contrast2=e.levels.default.contrast2,n[t].contrast3=e.levels.default.contrast3,n[t].contrast4=e.levels.default.contrast4,delete n[t].default})}),o.setThemesList(t);var n=i.get("motion.selectedTheme");n?o.setActiveTheme(n):o.setActiveTheme("default")}(s);var r={};angular.forEach(s,function(e,t){var n,a,i,o,s;(r={})["@themeName"]=t,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,n){angular.forEach(e,function(e,t){r["@"+a+d(n)+d(t)]=e})})}),n=r,a=new RegExp(Object.keys(n).join("|"),"gi"),i='/* 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(a,function(e){return n[e]}),o=angular.element("head"),(s=angular.element('<style type="text/css"></style>')).html(i),o.append(s)})},rgba:l};function l(e,t){var n=t||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),n&&(e=function(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"}};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]);return e}(e,n)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{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"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{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"}}}})}(),function(){"use strict";function e(n,e,t){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(t.custom=i),n.alwaysWatchTheme(!0),angular.forEach(e,function(e){n.definePalette(e.name,e.options)}),angular.forEach(t,function(e,t){n.theme(t).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(t,n,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void n.error('You must have at least one theme named "default"'):(n.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void t.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],t.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(t,o,s,r){this.search=function(t){for(var e=[],n=r.getFlatNavigation(),a=s.defer(),i=0;i<n.length;i+=1)n[i].uisref&&e.push(n[i]);t&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(t)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?t.go(e.state,e.stateParams):t.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,t){var n=this;n.code="",n.send=!1,n.error=e.params,n.sendReport=function(){t.post("/api/jira",n.error).then(function(e){n.send=!0,e.data&&(n.code=e.data.id)},function(e){n.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,t){var n=this;n.currentUser=e.getCurrentUser(),n.cookieAlertHide=t.get("motion.cookieAlertHide:"+n.currentUser.id)||!1,n.cookieAlertOnClose=function(){t.put("motion.cookieAlertHide:"+n.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.form={},o.forgotPassword=function(){return i.auth.forgot(o.form).$promise.then(function(){t.success({title:n.instant("FORGOTPASSWORD.LINK_SENT"),msg:n.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&t.error({title:n.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,t){var n=this;n.currentUser=e.getCurrentUser(),n.newsAlertHide=t.get("motion.newsAlertHide:"+n.currentUser.id)||!1,n.newsAlertOnClose=function(){t.put("motion.newsAlertHide:"+n.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e){var t={baseUrl:"api/"};return t.auth=e(t.baseUrl+"auth/local",{},{local:{method:"post",url:t.baseUrl+"auth/local"},forgot:{method:"post",url:t.baseUrl+"auth/local/forgot"},reset:{method:"post",url:t.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},google:{method:"post",url:t.baseUrl+"auth/google"}}),t.jira=e(t.baseUrl+"jira"),t.rpc=e(t.baseUrl+"rpc",{},{startMonitor:{method:"get",url:t.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:t.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:t.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:t.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:t.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:t.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:t.baseUrl+"rpc/sms/queues"},getOpenchannelQueues:{method:"get",url:t.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:t.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:t.baseUrl+"rpc/voice/queues/preview/:id"},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"},setAgentCapacity:{method:"put",url:t.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:t.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:t.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:t.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:t.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:t.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:t.baseUrl+"rpc/fax/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:t.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:t.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:t.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:t.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:t.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:t.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),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",{},{killProcess:{method:"get",url:t.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),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"},clone:{method:"post",url:t.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:t.baseUrl+"users/create_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"},getGroups:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/recordings"},getChatInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/fax/interactions"},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"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/openchannel_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/chat_websites"},getSquareProjects:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/scheduled_calls"}}),t.voiceChanSpy=e(t.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:t.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceContext=e(t.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:t.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceExtension=e(t.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:t.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/downloads"}}),t.voiceMail=e(t.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/describe"},clone:{method:"post",url:t.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.voiceCallReport=e(t.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceDialReport=e(t.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceAgentReport=e(t.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceQueueReport=e(t.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/reports/index"}}),t.memberReport=e(t.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"members/reports/describe"},clone:{method:"post",url:t.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.trunk=e(t.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"trunks/describe"},clone:{method:"post",url:t.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceTransferReport=e(t.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:t.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailServerOut=e(t.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:t.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailAccount=e(t.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:t.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/canned_answers"},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"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/users"}}),t.mailQueue=e(t.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/queues/describe"},clone:{method:"post",url:t.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/members"},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.mailSubstatus=e(t.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:t.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailInteraction=e(t.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:t.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.mailMessage=e(t.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/messages/describe"},clone:{method:"post",url:t.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:t.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.mailApplication=e(t.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/applications/describe"},clone:{method:"post",url:t.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.mailQueueReport=e(t.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.dashboard=e(t.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/describe"},clone:{method:"post",url:t.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),t.faxAccount=e(t.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:t.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"fax/accounts/:id/canned_answers"},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"},addAccountApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/users"}}),t.faxApplication=e(t.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/applications/describe"},clone:{method:"post",url:t.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.faxInteraction=e(t.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:t.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.faxMessage=e(t.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/messages/describe"},clone:{method:"post",url:t.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:t.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.faxQueue=e(t.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/queues/describe"},clone:{method:"post",url:t.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/members"},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.faxQueueReport=e(t.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.smsAccount=e(t.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:t.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/users"}}),t.smsApplication=e(t.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/applications/describe"},clone:{method:"post",url:t.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.smsInteraction=e(t.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:t.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.smsMessage=e(t.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/messages/describe"},clone:{method:"post",url:t.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:t.baseUrl+"sms/messages/:id/status"}}),t.smsQueue=e(t.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/queues/describe"},clone:{method:"post",url:t.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/members"},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"},clone:{method:"post",url:t.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/send"}}),t.openchannelApplication=e(t.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.openchannelInteraction=e(t.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.openchannelMessage=e(t.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"openchannel/messages/:id/reject"}}),t.openchannelQueue=e(t.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/members"},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"},clone:{method:"post",url:t.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:t.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:t.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/applications"},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"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/users"}}),t.openchannelQueueReport=e(t.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatApplication=e(t.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/applications/describe"},clone:{method:"post",url:t.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatInteraction=e(t.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:t.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},customUpdate:{isArray:!1,method:"put",url:t.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:t.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:t.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:t.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.chatMessage=e(t.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/messages/describe"},clone:{method:"post",url:t.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:t.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"chat/messages/:id/reject"}}),t.chatOfflineMessage=e(t.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:t.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatQueue=e(t.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/queues/describe"},clone:{method:"post",url:t.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/members"},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.chatGroup=e(t.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/groups/describe"},clone:{method:"post",url:t.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:t.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:t.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:t.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/groups/:id/messages"}}),t.chatProactiveAction=e(t.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:t.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmCompany=e(t.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/companies/describe"},clone:{method:"post",url:t.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"cm/contacts/:id/tags"},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"},uploadCsv:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/upload/:id"}}),t.cmHopper=e(t.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:t.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/opencontacts"}}),t.cmHopperBlack=e(t.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmHopperFinal=e(t.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:t.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:t.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:t.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:t.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:t.baseUrl+"cm/hopper_final/checkContactHopper"}}),t.cmHopperHistory=e(t.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:t.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmCustomField=e(t.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:t.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.action=e(t.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"actions/describe"},clone:{method:"post",url:t.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),t.automation=e(t.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"automations/describe"},clone:{method:"post",url:t.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),t.disposition=e(t.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dispositions/describe"},clone:{method:"post",url:t.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),t.condition=e(t.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"conditions/describe"},clone:{method:"post",url:t.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),t.interval=e(t.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"intervals/describe"},clone:{method:"post",url:t.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),t.cdr=e(t.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cdr/describe"},clone:{method:"post",url:t.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),t.voiceQueuesLog=e(t.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:t.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),t.schedule=e(t.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"schedules/describe"},clone:{method:"post",url:t.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:t.baseUrl+"schedules/:id/run"}}),t.sound=e(t.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sounds/describe"},clone:{method:"post",url:t.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},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"},clone:{method:"post",url:t.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),t.template=e(t.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"templates/describe"},clone:{method:"post",url:t.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),t.trigger=e(t.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"triggers/describe"},clone:{method:"post",url:t.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),t.integration=e(t.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),t.integrationReport=e(t.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:t.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.analyticCustomReport=e(t.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:t.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.analyticMetric=e(t.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:t.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),t.analyticFieldReport=e(t.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:t.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.intSalesforceAccount=e(t.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intSugarcrmAccount=e(t.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intDeskAccount=e(t.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/accounts/:id/fields"}}),t.intDeskConfiguration=e(t.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/desk/configurations/:id/tags"}}),t.intDeskField=e(t.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:t.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intZohoAccount=e(t.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/accounts/:id/fields"}}),t.intZohoConfiguration=e(t.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),t.intZohoField=e(t.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intZendeskAccount=e(t.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intFreshdeskAccount=e(t.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.intVtigerAccount=e(t.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:t.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),t.intVtigerConfiguration=e(t.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:t.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),t.intVtigerField=e(t.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:t.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),t.network=e(t.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"networks/describe"},clone:{method:"post",url:t.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatQueueReport=e(t.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatInternalMessage=e(t.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:t.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:t.baseUrl+"chat/internal/messages/users"}}),t.jscriptyAnswerReport=e(t.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.jscriptyQuestionReport=e(t.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.jscriptySessionReport=e(t.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/sessions/reports/:id/questions"}}),t.smsQueueReport=e(t.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:t.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),t.squareReport=e(t.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/reports/describe"},clone:{method:"post",url:t.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.squareReportDetail=e(t.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:t.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),t.jscriptyProject=e(t.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:t.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.setting=e(t.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"settings/describe"},clone:{method:"post",url:t.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},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"},gdpr:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/preferred"}}),t.squareOdbc=e(t.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/odbc/describe"},clone:{method:"post",url:t.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:t.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:t.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:t.baseUrl+"square/projects/:id/users"}}),t.squareRecording=e(t.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/recordings/describe"},clone:{method:"post",url:t.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.squareMessage=e(t.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/messages/describe"},clone:{method:"post",url:t.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),t.team=e(t.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"teams/describe"},clone:{method:"post",url:t.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},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"},clone:{method:"post",url:t.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),t.campaign=e(t.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"campaigns/describe"},clone:{method:"post",url:t.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},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.migration=e(t.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"migrations/describe"},clone:{method:"post",url:t.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),t.attachment=e(t.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"attachments/describe"},clone:{method:"post",url:t.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}}}),t.plugin=e(t.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"plugins/describe"},clone:{method:"post",url:t.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:t.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:t.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:t.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:t.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:t.baseUrl+"plugins/webhook"}}),t.mailTransferReport=e(t.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.chatTransferReport=e(t.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.faxTransferReport=e(t.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.openchannelTransferReport=e(t.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.smsTransferReport=e(t.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:t.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),t.cmList=e(t.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/lists/describe"},clone:{method:"post",url:t.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",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",responseType:"arraybuffer",cache:!1,transformResponse:function(e,t){var n=t();return{type:n["content-type"],length:n["content-length"],buffer:e}}},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.voicePrefix=e(t.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:t.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"voice/prefixes/:id/users"}}),t}e.$inject=["$resource"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,t){t.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,t,n){this.themes=e.themes;var a=n.get("motion.language");a&&t.use(a)}e.$inject=["motionTheming","$translate","$cookies"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var t=new Date,n=new Date(e);return n.getDate()===t.getDate()&&n.getMonth()===t.getMonth()&&n.getFullYear()===t.getFullYear()?a("date")(n.getTime(),"shortTime"):n.getDate()===t.getDate()-1&&n.getMonth()===t.getMonth()&&n.getFullYear()===t.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(n.getTime(),"shortTime"):a("date")(n.getTime(),"MMM d, y h:mm a")}}function t(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],t.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,t,n){var a,i={},o=0;for(a in e)if(n<=o&&(i[a]=e[a]),++o===n+t)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){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}}}).factory("dateFilterLocalizationFactory",t).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,t,n){var a;n.html5Mode(!0),t.otherwise("/dashboards/general"),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",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.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"},"header@app":{templateUrl:o[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:o[i].footer,controller:"FooterController 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(a,e){var i;function o(){i=io({query:"id="+e.getCurrentUser().id,transports:["websocket","polling"]})}return{connect:o,on:function(e,t){t=t||angular.noop,i||o(),i.on(e,function(){var e=arguments;a.$apply(function(){t.apply(i,e)})})},onWithoutApply:function(e,t){t=t||angular.noop,i||o(),i.on(e,function(){t.apply(i,arguments)})},emit:function(e,t,n){n=n||angular.noop,i||o(),i.emit(e,t,function(){var e=arguments;a.$apply(function(){n.apply(i,e)})})},removeAllListeners:function(e){i||o(),i.removeAllListeners(e)},removeListener:function(e,t){i||o(),i.removeListener(e,t)},disconnect:function(){i||o(),i.disconnect()}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(t,n,e,a,i,o){var s=this;s.progresslogin=!1,s.login=function(){return s.progresslogin=!0,s.message="",o.login(s.form).then(function(){return t.go("app.dashboards.general")}).catch(function(e){s.message=e.message}).finally(function(){s.progresslogin=!1})},s.loginOauth=function(e){s.message="",n.location.href="/api/auth/"+e},s.onInit=function(){{if(t.params.token&&t.params.userId)return o.removeCookies(),s.progresslogin=!0,e.put("motion.token",t.params.token),i.user.get({id:t.params.userId}).$promise.then(function(e){e&&(o.updateCurrentUser(e),t.go("app.dashboards.general"))}).finally(function(){s.progresslogin=!1});o.isLoggedIn()&&t.go("app.dashboards.general")}},s.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="ANALYTICS.EDIT_EXTRACTEDREPORT",u.extractedReport=angular.copy(r),u.extractedReports=s,u.newExtractedReport=!1,u.extractedReport||(u.extractedReport={},u.title="ANALYTICS.NEW_EXTRACTEDREPORT",u.newExtractedReport=!0),u.addNewExtractedReport=function(){u.errors=[],l.analyticExtractedReport.save(u.extractedReport).$promise.then(function(e){u.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:u.extractedReport.name?u.extractedReport.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.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.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveExtractedReport=function(){u.errors=[],l.analyticExtractedReport.update({id:u.extractedReport.id},u.extractedReport).$promise.then(function(e){var t=_.find(u.extractedReports,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ExtractedReport properly saved!",msg:u.extractedReport.name?u.extractedReport.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var t=0;t<e.data.errors.length;t++)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.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteExtractedReport=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.analyticExtractedReport.delete({id:u.extractedReport.id}).$promise.then(function(){_.remove(u.extractedReports,{id:u.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(u.extractedReport.name||"extractedReport")+" has been deleted!"}),p(u.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var t=0;t<e.data.errors.length;t++)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.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","extractedReports","extractedReport","api","Auth","license","setting"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.extractedReports=r||{count:0,rows:[]},v.table="extractedReports",v.listOrder="",v.listOrderAsc=null,v.selectedExtractedReports=[],v.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.extractedReports.rows,license:v.license,setting:null}})},v.downloadfile2=function(o,e){return l.analyticExtractedReport.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getExtractedReports=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.analyticExtractedReport.get(v.query,f).$promise},v.createOrEditExtractedReport=function(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:v.extractedReports.rows,license:v.license,setting:v.setting}})},v.deleteExtractedReport=A,v.exportSelectedExtractedReports=function(){var e=angular.copy(v.selectedExtractedReports);return v.selectedExtractedReports=[],e},v.deleteSelectedExtractedReports=function(e){var t=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+v.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedExtractedReports.forEach(function(e){A(e)}),v.selectedExtractedReports=[]})},v.deselectExtractedReports=function(){v.selectedExtractedReports=[]},v.selectAllExtractedReports=function(){v.selectedExtractedReports=v.extractedReports.rows};var h=!0,b=1;function f(e){v.extractedReports=e||{count:0,rows:[]}}function A(e){l.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(v.extractedReports.rows,{id:e.id}),v.extractedReports.count-=1,v.extractedReports.rows.length||v.getExtractedReports(),c.success({title:"ExtractedReport deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","extractedReports","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="ANALYTICS.EDIT_METRIC",u.metric=angular.copy(r),u.metrics=s,u.newMetric=!1,u.metric||(u.metric={table:"report_agent"},u.title="ANALYTICS.NEW_METRIC",u.newMetric=!0),u.addNewMetric=function(){u.errors=[],l.analyticMetric.save(u.metric).$promise.then(function(e){u.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:u.metric.name?u.metric.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.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.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMetric=function(){u.errors=[],l.analyticMetric.update({id:u.metric.id},u.metric).$promise.then(function(e){var t=_.find(u.metrics,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Metric properly saved!",msg:u.metric.name?u.metric.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var t=0;t<e.data.errors.length;t++)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.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMetric=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.analyticMetric.delete({id:u.metric.id}).$promise.then(function(){_.remove(u.metrics,{id:u.metric.id}),o.success({title:"Metric properly deleted!",msg:(u.metric.name||"metric")+" has been deleted!"}),p(u.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var t=0;t<e.data.errors.length;t++)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.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","metrics","metric","api","Auth","license","setting"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.metrics=r||{count:0,rows:[]},v.table="metrics",v.listOrder="",v.listOrderAsc=null,v.selectedMetrics=[],v.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},v.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Integration Report",value:"'report_integration'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Queue Report",value:"'report_queue'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(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:v.metrics.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMetrics=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.analyticMetric.get(v.query,f).$promise},v.createOrEditMetric=function(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:v.metrics.rows,license:v.license,setting:v.setting}})},v.deleteMetric=A,v.exportSelectedMetrics=function(){var e=angular.copy(v.selectedMetrics);return v.selectedMetrics=[],e},v.deleteSelectedMetrics=function(e){var t=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+v.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMetrics.forEach(function(e){A(e)}),v.selectedMetrics=[]})},v.deselectMetrics=function(){v.selectedMetrics=[]},v.selectAllMetrics=function(){v.selectedMetrics=v.metrics.rows};var h=!0,b=1;function f(e){v.metrics=e||{count:0,rows:[]}}function A(e){l.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(v.metrics.rows,{id:e.id}),v.metrics.count-=1,v.metrics.rows.length||v.getMetrics(),c.success({title:"Metric deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","metrics","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,t,a,n,i,o,s){var r=this;function l(){t.hide()}r.errors=[],r.report=angular.copy(n),r.report.name+="-copy",r.treeCustomData=s,r.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"]},r.treeCustomEvents={select_node:function(e,t){r.currentNode=t.node}},r.copyReport=function(){var n;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){n=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var t={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return t["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(t).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:n.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}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,l){var d=this;function c(){t.hide()}d.errors=[],d.joinTables=[],d.title="ANALYTICS.EDIT_REPORT",d.report=angular.copy(i),d.reports=a,d.newReport=!1,d.tables=l.getMap(),d.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"outer_join",value:"Outer Join"},{key:"cross_join",value:"Cross Join"}],d.report||(d.report={name:"",table:"report_agent",description:"",parent:r.id},d.title="ANALYTICS.NEW_REPORT",d.newReport=!0),d.addNewReport=function(){d.errors=[],d.report.joins=_.map(d.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),d.report.joins=JSON.stringify(d.report.joins),o[s].save(d.report).$promise.then(function(e){d.reports.unshift(e),n.success({title:"Report properly created",msg:d.report.name?d.report.name+" has been created!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.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()})})},d.saveReport=function(){d.errors=[],o[s].update({id:d.report.id},d.report).$promise.then(function(e){var t=_.find(d.reports,{id:e.id});t&&_.merge(t,e),n.success({title:"Report properly saved!",msg:d.report.name?d.report.name+" has been saved!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.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()})})},d.deleteReport=function(){d.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:d.report.id}).$promise.then(function(){_.remove(d.reports,{id:d.report.id}),n.success({title:"Report properly deleted!",msg:d.report.name?d.report.name+" has been deleted!":""}),c()}).catch(function(e){d.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},d.closeDialog=c,d.selectedTableChange=function(e){e&&(delete d.selectedItem,d.joinTables.push(e))},d.removeJoin=function(e){d.joinTables.splice(e,1)},d.getFields=function(t,n,e){var a=_.find(d.tables,{name:e});a&&a.api&&o[a.api].describe().$promise.then(function(e){t[n]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,a,o,e){var s=this;s.report={},s.conditions=e.getConditions,s.init=function(e){s.report=e,s.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}};for(var t=0;t<s.report.condition.group.rules.length;t++)if(s.report.condition.group.rules[t].field){var n=s.report.condition.group.rules[t].field.split(".");1===n.length&&(s.report.condition.group.rules[t].field=s.report.table+"."+s.report.condition.group.rules[t].field)}a.getColumns(s.report.table).then(function(e){s.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},s.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},s.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(t,1)},function(){console.log("CANCEL")})},s.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(t){var a={cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr"};return{getMap:function(){var n=[];return _.forIn(a,function(e,t){n.push({name:t,api:e})}),n},getColumns:function(e){return t[a[e]].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,c){var m=this;(m.errors=[],m.title="Edit Report Field",m.report=i,m.reportField=angular.copy(s),m.reportFields=o,m.metrics=r,m.columns=l,m.sqlUtil=d,m.newReportField=!1,m.reportField)?(m.reportField.type=m.reportField.custom?"custom":m.reportField.MetricId?"metric":"column",m.reportField.field&&!m.reportField.custom&&_.isNil(m.reportField.MetricId)&&1===m.reportField.field.split(".").length&&(m.reportField.field=m.report.table+"."+m.reportField.field)):(m.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},m.title="New Report Field",m.newReportField=!0);function u(){n.hide()}m.addNewReportField=function(){m.errors=[],m.reportField.custom="custom"===m.reportField.type,m.reportField.MetricId="metric"===m.reportField.type?m.reportField.MetricId:null,m.reportField.CustomReportId=m.report.id,c.analyticFieldReport.save(m.reportField).$promise.then(function(e){m.reportFields.push(e),a.success({title:"Report field properly created",msg:m.reportField.field?m.reportField.field+" has been created!":m.reportField.type+" has been created!"}),u()}).catch(function(e){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},m.saveReportField=function(){m.errors=[],m.reportField.custom="custom"===m.reportField.type,m.reportField.MetricId="metric"===m.reportField.type?m.reportField.MetricId:null,c.analyticFieldReport.update({id:m.reportField.id},m.reportField).$promise.then(function(e){var t=_.find(m.reportFields,{id:e.id});t&&_.merge(t,e),a.success({title:"Report Field properly saved!",msg:m.reportField.field?m.reportField.field+" has been saved!":""}),u()}).catch(function(e){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},m.deleteReportField=function(e){m.errors=[];var t=n.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){c.analyticFieldReport.delete({id:m.reportField.id}).$promise.then(function(){_.remove(m.reportFields,{id:m.reportField.id}),a.success({title:"Report Field properly deleted!",msg:m.reportField.field?m.reportField.field+" has been deleted!":""}),u()}).catch(function(e){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},m.closeDialog=u}e.$inject=["$scope","$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){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){s.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e){c.report=e,c.query.CustomReportId=c.report.id,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),s.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.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()})}),c.getReportFields()},c.deleteConfirm=function(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(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=s.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(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:c.report,reportField:t,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var t=_.find(c.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var t=_.find(c.metrics,{id:e});return t?t.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){s.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.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()})})}t.$watch("vm_rf.query.filter",function(e,t){m?n(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){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"]}})}(),function(){"use strict";function e(e,t,n,a){var i=this;function o(e){return _.isArray(e)}i.report=a||{},i.selectedTab=e.params.tab||0,i.gotoReports=function(){e.go("app.analytics.reports")},i.saveReport=function(){i.report.conditions=angular.toJson(i.report.condition),n.analyticCustomReport.update({id:i.report.id},_.omit(i.report,"joins")).$promise.then(function(){t.success({title:"Report updated!",msg:i.report.name?i.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()})})},i.previewReport=function(){i.columns=[],i.rows=[],i.error=!1,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:i.report.id}).$promise.then(function(e){return i.columns=e?e.rows:[],n.analyticCustomReport.preview({id:i.report.id}).$promise}).then(function(e){i.rows=e}).catch(function(e){console.log(e),i.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(i.error)})},i.queryReport=function(){return i.queryResult="Loading...",n.analyticCustomReport.query({id:i.report.id}).$promise.then(function(e){i.queryResult=e.sql}).catch(function(e){i.queryResult="",console.log(e),i.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(i.error)})},i.mapArray=function(e,t){if(o(e))return _.map(e,t).join(",");return""},i.isArray=o,i.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t}}e.$inject=["$state","toasty","api","report"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.errors=[],s.report=angular.copy(a),s.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t},s.closeDialog=function(){t.hide()},function(){s.columns=[],s.rows=[],s.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=s.report.id,s.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return s.columns=e?e.rows:[],i[o].preview({id:s.report.id}).$promise}).then(function(e){s.rows=e}).catch(function(e){console.log(e),s.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(s.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,n,a,i,o,s,t,r,l,d,c){var m=this;m.currentUser=c.getCurrentUser(),m.reports={count:0,rows:[]},m.selectedReports=[],m.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},m.apiName=null,m.currentPath="",m.customTree=!0,m.editstate=function(e,t){o.go("app.analytics.reports.edit",{id:e.id})},m.copydialog=function(e,t){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:m.apiName,treeCustomData:m.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},m.previewdialog=function(e,t){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:m.apiName}})},m.rundialog=function(e,t){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:m.apiName,currentPath:m.currentPath}})},m.downloadfile=function(a,e){var i;r.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var t={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return t["analyticCustomReport"===m.apiName?"CustomReportId":"DefaultReportId"]=a.id,r.analyticFieldReport.get(t).$promise}).then(function(e){for(var t=0;t<e.rows.length;t+=1)e.rows[t].MetricId&&(e.rows[t].field=i[e.rows[t].MetricId].metric,e.rows[t].custom=!0),delete e.rows[t].MetricId;var n=s.document.createElement("a");n.href="data:text/json;charset=utf-8,"+s.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),n.download=a.name+".json",n.target="_self",n.click(),d.success({title:"Report downloaded!",msg:a.name?a.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()})})},m.deleteconfirm=function(e,t){var n=i.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");i.show(n).then(function(){h(e)},function(){console.log("CANCEL")})},m.success=g,m.getReports=v,m.createOrEditReport=function(e,t){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:t,reports:m.reports.rows,apiName:m.apiName,currentNode:m.currentNode,setting:null}})},m.importReport=function(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var n=atob(e.target.result.split(",")[1]);n=angular.fromJson(n),r.analyticCustomReport.save({name:n.name,description:n.description,table:n.table,conditions:n.conditions,joins:n.joins,parent:m.currentNode.id}).$promise.then(function(t){m.reports.rows.unshift(t),d.success({title:"Report saved!",msg:t.name?t.name+" has been saved!":""});var e=_.map(n.fields,function(e){return _.extend({},e,{CustomReportId:t.id})});return r.analyticFieldReport.bulkCreate(e).$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"})},m.deleteReport=h,m.exportSelectedReports=function(){var e=angular.copy(m.selectedReports);return m.selectedReports=[],e},m.deleteSelectedReports=function(e){var t=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+m.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){m.selectedReports.forEach(function(e){h(e)}),m.selectedReports=[]})},m.deselectReports=function(){m.selectedReports=[]},m.selectAllReports=function(){m.selectedReports=m.reports.rows},m.treeDefaultData=l.rows[0]?angular.fromJson(l.rows[0].tree):[],m.treeCustomData=l.rows[1]?angular.fromJson(l.rows[1].tree):[],m.treeDefaultConfig=E(!1),m.treeCustomConfig=E(!0),m.treeDefaultEvents=y(!1),m.treeCustomEvents=y(!0);var u=!0,p=1;function g(e){m.reports=e||{count:0,rows:[]}}function v(){m.query.offset=(m.query.page-1)*m.query.limit,m.apiName&&(m.promise=r[m.apiName].get(m.query,g).$promise)}function h(e){m.apiName&&r[m.apiName].delete({id:e.id}).$promise.then(function(){_.remove(m.reports.rows,{id:e.id}),m.reports.count-=1,m.reports.rows.length||m.getReports(),d.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var t=0;t<e.data.errors.length;t++)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function b(e,t){m.treeDefaultInstance.jstree(!0).deselect_all(),m.treeDefaultInstance.jstree(!0).close_all(),m.currentNode=t.node,m.currentNode.custom=!0,m.currentPath=m.treeCustomInstance.jstree(!0).get_path(m.currentNode).join("/ "),m.apiName="analyticCustomReport",m.query.parent=t.node.id,v()}function f(e,t){m.treeCustomInstance.jstree(!0).deselect_all(),m.treeCustomInstance.jstree(!0).close_all(),m.currentNode=t.node,m.currentNode.custom=!1,m.currentPath=m.treeDefaultInstance.jstree(!0).get_path(m.currentNode).join("/ "),m.apiName="analyticDefaultReport",m.query.parent=t.node.id,v()}function A(e,t){var n=angular.toJson(m.treeCustomInstance.jstree(!0).get_json("#"));r.analyticTreeReport.update({id:2,tree:n}).$promise.then(function(){l.rows[1]&&(l.rows[1].tree=n),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 E(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(n){return{create:{label:t.instant("ANALYTICS.CREATE"),action:function(){n=m.treeCustomInstance.jstree(!0).create_node(n),m.treeCustomInstance.jstree(!0).edit(n)}},rename:{_disabled:"#"===n.parent,label:t.instant("ANALYTICS.RENAME"),action:function(){m.treeCustomInstance.jstree(!0).edit(n)}},remove:{_disabled:"#"===n.parent||"admin"!==m.currentUser.role&&0!==m.currentUser.crudPermissions,label:t.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(n.text?n.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t=m.treeCustomInstance.jstree(!0).get_parent(n);t=m.treeCustomInstance.jstree(!0).get_node(t),m.treeCustomInstance.jstree(!0).delete_node(n),e=[n.id].concat(n.children_d||[]),r.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){h(e)})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),m.treeCustomInstance.jstree(!0).select_node(t)})}}}}}}}function y(e){return e?{create_node:A,rename_node:A,move_node:A,delete_node:A,select_node:b}:{select_node:f}}e.$watch("vm.query.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=p),m.getReports())}),e.$watch("vm.search",function(e,t){m.treeDefaultInstance&&m.treeDefaultInstance.jstree(!0).search(e),m.treeCustomInstance&&m.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){n.hide()}l.errors=[],l.report=angular.copy(t),l.export={},l.runReport=function(t){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[o].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?n.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(s.body),targetEvent:t,skipHide:!0,locals:{apiName:o,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var t={fields:"field,alias",nolimit:!0};return t["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",t)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){s.offset=(r.query.page-1)*r.query.limit,s.limit=r.query.limit,r.promise=n[o].run(s,l).$promise},r.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CALLYSQUARE.EDIT_ODBC",u.odbc=angular.copy(r),u.odbcs=s,u.newOdbc=!1,u.odbc||(u.odbc={},u.title="CALLYSQUARE.NEW_ODBC",u.newOdbc=!0),u.addNewOdbc=function(){u.errors=[],l.squareOdbc.save(u.odbc).$promise.then(function(e){u.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:u.odbc.name?u.odbc.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.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.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOdbc=function(){u.errors=[],l.squareOdbc.update({id:u.odbc.id},u.odbc).$promise.then(function(e){var t=_.find(u.odbcs,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Odbc properly saved!",msg:u.odbc.name?u.odbc.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var t=0;t<e.data.errors.length;t++)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.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOdbc=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.squareOdbc.delete({id:u.odbc.id}).$promise.then(function(){_.remove(u.odbcs,{id:u.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(u.odbc.name||"odbc")+" has been deleted!"}),p(u.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var t=0;t<e.data.errors.length;t++)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.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","odbcs","odbc","api","Auth","license","setting"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.odbcs=r||{count:0,rows:[]},v.table="odbcs",v.listOrder="",v.listOrderAsc=null,v.selectedODBC=[],v.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.odbcs.rows,license:v.license,setting:null}})},v.testtestOdbc=function(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()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getODBC=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.squareOdbc.get(v.query,f).$promise},v.createOrEditOdbc=function(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:v.odbcs.rows,license:v.license,setting:v.setting}})},v.deleteOdbc=A,v.exportSelectedODBC=function(){var e=angular.copy(v.selectedODBC);return v.selectedODBC=[],e},v.deleteSelectedODBC=function(e){var t=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+v.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedODBC.forEach(function(e){A(e)}),v.selectedODBC=[]})},v.deselectODBC=function(){v.selectedODBC=[]},v.selectAllODBC=function(){v.selectedODBC=v.odbcs.rows};var h=!0,b=1;function f(e){v.odbcs=e||{count:0,rows:[]}}function A(e){l.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(v.odbcs.rows,{id:e.id}),v.odbcs.count-=1,v.odbcs.rows.length||v.getODBC(),c.success({title:"Odbc deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","odbcs","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(t,n,e,a,i,o,s,r,l){var d=this;function c(e){t.hide(e)}d.errors=[],d.title="CALLYSQUARE.EDIT_PROJECT",d.project=angular.copy(a),d.newWindow=!0,d.projects=e,d.newProject=!1,d.openFromEditor=o,d.project||(d.project={name:"",description:""},d.title="CALLYSQUARE.NEW_PROJECT",d.newProject=!0),d.addNewProject=function(){d.errors=[],i.squareProject.save(d.project).$promise.then(function(e){return i.user.addSquareProjects({id:l.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){d.projects.unshift(e),n.success({title:"Project properly created",msg:d.project.name?d.project.name+" has been created!":""}),c(e),d.openFromEditor&&(d.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){d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.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.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveProject=function(){d.errors=[],i.squareProject.update({id:d.project.id},d.project).$promise.then(function(e){var t=_.find(d.projects,{id:e.id});t&&_.merge(t,e),n.success({title:"Project properly saved!",msg:d.project.name?d.project.name+" has been saved!":""}),c(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.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.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteProject=function(){d.errors=[];var e=t.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);t.show(e).then(function(){i.squareProject.delete({id:d.project.id}).$promise.then(function(){return i.squareProject.getUsers({id:d.project.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(i.user.removeSquareProjects({id:l.getCurrentUser().id,ids:[d.project.id]}).$promise);return $q.all(t)}).then(function(){_.remove(d.projects,{id:d.project.id}),n.success({title:"Project properly deleted!",msg:d.project.name?d.project.name+" has been deleted!":""}),c(d.project)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},d.closeDialog=c}e.$inject=["$mdDialog","toasty","projects","project","api","openFromEditor","$window","$state","Auth"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,o,s,r,l,d,c,m,u,p,g,v,h,b,f,A,E,y,S,T,C,x,O){var w,I,R,N,D,L,k=this,M={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:["sms_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"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"]},U={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},F={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function P(e,t,n,a){return _.map(e,function(e){return{value:e[t],option:e[n],group:a?e[a]:void 0}})}k.cellName=A.tagName,k.attributes=_.map(A.attributes,function(e){return{name:e.name,value:e.value,defaultValue:U[k.cellName]&&_.includes(U[k.cellName],e.name),required:M[k.cellName]&&_.includes(M[k.cellName],e.name),help:F[k.cellName]&&_.includes(F[k.cellName],e.name)}}),k.values={sip_id:P(r,"id","fullname","role"),trunk_name:P(l,"name","name"),trunk_id:P(l,"id","name"),queue_id:P(d,"id","name"),file_id:P(c,"id","name"),variable_id:P(m,"id","name"),odbc_id:P(u,"id","name"),project_id:P(p,"id","name"),context:P(g,"id","name"),interval_id:(w=v,I="id",R="name",N="IntervalId",D=_.filter(w,function(e){return null===e[N]}),L=[],_.forEach(D,function(t){L.push({value:t[I],option:t[R]});var e=_.filter(w,function(e){return e[N]===t.id});_.forEach(e,function(e){L.push({value:e[I],option:" - "+e[R]})})}),L),account_id:P(h,"id","name"),template_id:P(b,"id","name"),list_id:P(f,"id","name"),sms_account_id:P(T,"id","name"),pause_id:P(C,"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:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:n,ispeech_asr_language:a,ispeech_tts_language:o,google_tts_language:s,google_asr_language:i,aws_polly_region:S,aws_polly_voice:y,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:x,aws_lex_region:O},k.closeDialog=function(e){e&&E(k.attributes),t.hide()},k.getMap=P}e.$inject=["$mdDialog","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","awsLexRegion"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,t,n,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){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"}]}).factory("ispeechAsrLanguage",function(){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)"}]}).factory("ispeechTtsLanguage",function(){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"}]}).factory("googleTtsLanguage",function(){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"}]}).factory("googleAsrLanguage",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"am-ET",option:"Amharic (Ethiopia)"},{value:"hy-AM",option:"Armenian (Armenia)"},{value:"az-AZ",option:"Azerbaijani (Azerbaijan)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"bn-BD",option:"Bengali (Bangladesh)"},{value:"bn-IN",option:"Bengali (India)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"de-DE",option:"German (Germany)"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GH",option:"English (Ghana)"},{value:"en-GB",option:"English (United Kingdom)"},{value:"en-IN",option:"English (India)"},{value:"en-IE",option:"English (Ireland)"},{value:"en-KE",option:"English (Kenya)"},{value:"en-NZ",option:"English (New Zealand)"},{value:"en-NG",option:"English (Nigeria)"},{value:"en-PH",option:"English (Philippines)"},{value:"en-ZA",option:"English (South Africa)"},{value:"en-TZ",option:"English (Tanzania)"},{value:"en-US",option:"English (United States)"},{value:"es-AR",option:"Spanish (Argentina)"},{value:"es-BO",option:"Spanish (Bolivia)"},{value:"es-CL",option:"Spanish (Chile)"},{value:"es-CO",option:"Spanish (Colombia)"},{value:"es-CR",option:"Spanish (Costa Rica)"},{value:"es-EC",option:"Spanish (Ecuador)"},{value:"es-SV",option:"Spanish (El Salvador)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (United States)"},{value:"es-GT",option:"Spanish (Guatemala)"},{value:"es-HN",option:"Spanish (Honduras)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"es-NI",option:"Spanish (Nicaragua)"},{value:"es-PA",option:"Spanish (Panama)"},{value:"es-PY",option:"Spanish (Paraguay)"},{value:"es-PE",option:"Spanish (Peru)"},{value:"es-PR",option:"Spanish (Puerto Rico)"},{value:"es-DO",option:"Spanish (Dominican Republic)"},{value:"es-UY",option:"Spanish (Uruguay)"},{value:"es-VE",option:"Spanish (Venezuela)"},{value:"eu-ES",option:"Basque (Spain)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"gl-ES",option:"Galician (Spain)"},{value:"ka-GE",option:"Georgian (Georgia)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hr-HR",option:"Croatian (Croatia)"},{value:"zu-ZA",option:"Zulu (South Africa)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"it-IT",option:"Italian (Italy)"},{value:"jv-ID",option:"Javanese (Indonesia)"},{value:"kn-IN",option:"Kannada (India)"},{value:"km-KH",option:"Khmer (Cambodia)"},{value:"lo-LA",option:"Lao (Laos)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"lt-LT",option:"Lithuanian (Lithuania)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"mr-IN",option:"Marathi (India)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"ne-NP",option:"Nepali (Nepal)"},{value:"nb-NO",option:"Norwegian Bokmal (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"si-LK",option:"Sinhala (Srilanka)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"sl-SI",option:"Slovenian (Slovenia)"},{value:"su-ID",option:"Sundanese (Indonesia)"},{value:"sw-TZ",option:"Swahili (Tanzania)"},{value:"sw-KE",option:"Swahili (Kenya)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"ta-SG",option:"Tamil (Singapore)"},{value:"ta-LK",option:"Tamil (Sri Lanka)"},{value:"ta-MY",option:"Tamil (Malaysia)"},{value:"te-IN",option:"Telugu (India)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"ur-PK",option:"Urdu (Pakistan)"},{value:"ur-IN",option:"Urdu (India)"},{value:"el-GR",option:"Greek (Greece)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Serbia)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"he-IL",option:"Hebrew (Israel)"},{value:"ar-IL",option:"Arabic (Israel)"},{value:"ar-JO",option:"Arabic (Jordan)"},{value:"ar-AE",option:"Arabic (United Arab Emirates)"},{value:"ar-BH",option:"Arabic (Bahrain)"},{value:"ar-DZ",option:"Arabic (Algeria)"},{value:"ar-SA",option:"Arabic (Saudi Arabia)"},{value:"ar-IQ",option:"Arabic (Iraq)"},{value:"ar-KW",option:"Arabic (Kuwait)"},{value:"ar-MA",option:"Arabic (Morocco)"},{value:"ar-TN",option:"Arabic (Tunisia)"},{value:"ar-OM",option:"Arabic (Oman)"},{value:"ar-PS",option:"Arabic (State of Palestine)"},{value:"ar-QA",option:"Arabic (Qatar)"},{value:"ar-LB",option:"Arabic (Lebanon)"},{value:"ar-EG",option:"Arabic (Egypt)"},{value:"fa-IR",option:"Persian (Iran)"},{value:"hi-IN",option:"Hindi (India)"},{value:"th-TH",option:"Thai (Thailand)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"cmn-Hant-TW",option:"Chinese, Mandarin (Traditional, Taiwan)"},{value:"yue-Hant-HK",option:"Chinese, Cantonese (Traditional, Hong Kong)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"cmn-Hans-HK",option:"Chinese, Mandarin (Simplified, Hong Kong)"},{value:"cmn-Hans-CN",option:"Chinese, Mandarin (Simplified, China)"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]})}(),function(){"use strict";function e(t,e,n,a){var i=this;i.project={preproduction:n},i.closeDialog=function(e){e?(a(i.project.preproduction),t.hide(i.project.preproduction)):t.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(t,n){var a=this;function i(e){e?(n(e),t.hide(e)):t.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var t=new FileReader;t.onload=function(e){i(e.target.result)},t.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(t,n,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){t.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){n.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),t.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;o.projects=n,o.id="",o.newWindow=!0,o.closeDialog=function(e){o.errors=[],e?(t.hide(),o.newWindow?a.open("/callysquare/projects/"+o.id,"_blank"):i.go("app.callysquare.projects.edit",{id:o.id})):t.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=t,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:o.instant("CALLYSQUARE.ALL_USERS"),labelSelected:o.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,t){a.squareProject[t?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){n.success({title:"Project properly "+(t?"removed":"added"),msg:"Project has been "+(t?"removed":"added")+"!"}),t||l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(t,n,e,a,i,o,s){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){t.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){n.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),t.hide(e),r.newWindow?o.open("/callysquare/projects/"+e.id,"_blank"):s.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,n,a,i,o,t,s,r,l,d,c,m,u,p,g,v,h,b,f,A,E){var y=this;y.project=t||{},y.saveOrPublishProject=function(e,t){var n={preproduction:e};t&&(n.production=e);o.squareProject.update({id:y.project.id},n).$promise.then(function(e){i.success({title:"Project "+(t?"published":"saved")+"!",msg:y.project.name?y.project.name+" has been "+(t?"published":"saved")+"!":""}),y.project.preproduction=e.preproduction}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},y.$onInit=function(){new EditorUi(y,new Editor,document.getElementById("geEditor")).openString(y.project.preproduction,y.project.name,y.project)},y.openDialog=function(e,t){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(n.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:v.rows||[],smsAccounts:f.rows||[],pauses:A.rows||[],templates:h.rows||[],lists:b.rows||[],cell:e,saveCallback:t}})},y.newProject=function(e){a.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{project:e,projects:p.rows,openFromEditor:!0,setting:null}})},y.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{projects:p.rows||[]}})},y.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{project:y.project,currentXML:e}}).then(function(e){e&&p.rows.push(e)})},y.newVariable=function(e){a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{variable:e,variables:c.rows,license:null,setting:null}})},y.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:y.project}}).then(function(e){e&&_.merge(y.project,e)})},y.editXML=function(e,t){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:t}}).then(function(e){e&&(y.project.preproduction=e)})},y.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(y.project.preproduction=e)})},y.gotoProjects=function(){e.go("app.callysquare.projects")}}e.$inject=["$state","$document","$mdDialog","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","$window"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c){var m=this;m.currentUser=c.getCurrentUser(),m.projects=a||{count:0,rows:[]},m.table="projects",m.listOrder="",m.listOrderAsc=null,m.selectedProjects=[],m.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},m.editstate=function(e,t){n.go("app.callysquare.projects.edit",{id:e.id})},m.deleteconfirm=function(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(){v(e)},function(){console.log("CANCEL")})},m.success=g,m.getProjects=function(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=i.squareProject.get(m.query,g).$promise},m.createOrEditProject=function(e,t){s.show({controller:"CreateOrEditSquareProjectDialogController",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:m.projects.rows,openFromEditor:null,setting:null}})},m.deleteProject=v,m.exportSelectedProjects=function(){var e=angular.copy(m.selectedProjects);return m.selectedProjects=[],e},m.deleteSelectedProjects=function(e){var t=s.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+m.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).then(function(){m.selectedProjects.forEach(function(e){v(e)}),m.selectedProjects=[]})},m.deselectProjects=function(){m.selectedProjects=[]},m.selectAllProjects=function(){m.selectedProjects=m.projects.rows},m.managePermissions=function(e,t){s.show({controller:"ProjectspermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/permissionadd/permissionadd.html",parent:angular.element(r.body),targetEvent:t,clickOutsideToClose:!0,locals:{project:e,projects:m.projects?m.projects.rows:[]}})};var u=!0,p=1;function g(e){m.projects=e||{count:0,rows:[]}}function v(e){i.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(m.projects.rows,{id:e.id}),m.projects.count-=1,m.projects.rows.length||m.getProjects(),d.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var t=0;t<e.data.errors.length;t++)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){u?l(function(){u=!1}):(t||(p=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=p),m.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CALLYSQUARE.EDIT_SQUARERECORDING",u.squareRecording=angular.copy(r),u.squareRecordings=s,u.newSquareRecording=!1,u.squareRecording||(u.squareRecording={},u.title="CALLYSQUARE.NEW_SQUARERECORDING",u.newSquareRecording=!0),u.addNewSquareRecording=function(){u.errors=[],l.squareRecording.save(u.squareRecording).$promise.then(function(e){u.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:u.squareRecording.name?u.squareRecording.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.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.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSquareRecording=function(){u.errors=[],l.squareRecording.update({id:u.squareRecording.id},u.squareRecording).$promise.then(function(e){var t=_.find(u.squareRecordings,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SquareRecording properly saved!",msg:u.squareRecording.name?u.squareRecording.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var t=0;t<e.data.errors.length;t++)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.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSquareRecording=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.squareRecording.delete({id:u.squareRecording.id}).$promise.then(function(){_.remove(u.squareRecordings,{id:u.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(u.squareRecording.name||"squareRecording")+" has been deleted!"}),p(u.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var t=0;t<e.data.errors.length;t++)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.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","squareRecordings","squareRecording","api","Auth","license","setting"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.squareRecordings=r||{count:0,rows:[]},v.table="squareRecordings",v.listOrder="",v.listOrderAsc=null,v.selectedSquareRecordings=[],v.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio",sort:"-updatedAt",limit:10,page:1},v.downloadfile2=function(o,e){return l.squareRecording.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.uniqueid+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSquareRecordings=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.squareRecording.get(v.query,f).$promise},v.createOrEditSquareRecording=function(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:v.squareRecordings.rows,license:v.license,setting:v.setting}})},v.deleteSquareRecording=A,v.exportSelectedSquareRecordings=function(){var e=angular.copy(v.selectedSquareRecordings);return v.selectedSquareRecordings=[],e},v.deleteSelectedSquareRecordings=function(e){var t=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+v.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSquareRecordings.forEach(function(e){A(e)}),v.selectedSquareRecordings=[]})},v.deselectSquareRecordings=function(){v.selectedSquareRecordings=[]},v.selectAllSquareRecordings=function(){v.selectedSquareRecordings=v.squareRecordings.rows};var h=!0,b=1;function f(e){v.squareRecordings=e||{count:0,rows:[]}}function A(e){l.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(v.squareRecordings.rows,{id:e.id}),v.squareRecordings.count-=1,v.squareRecordings.rows.length||v.getSquareRecordings(),c.success({title:"SquareRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","squareRecordings","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.chatQueues=r||{count:0,rows:[]},v.table="chatQueues",v.listOrder="",v.listOrderAsc=null,v.selectedChatQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:v.chatQueues?v.chatQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:v.chatQueues?v.chatQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.chat.realtime.queues",{})},v.success=f,v.getChatQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.chatQueue.get(v.query,f).$promise},v.createOrEditChatQueue=function(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:v.chatQueues.rows,license:v.license,setting:v.setting}})},v.deleteChatQueue=A,v.exportSelectedChatQueues=function(){var e=angular.copy(v.selectedChatQueues);return v.selectedChatQueues=[],e},v.deleteSelectedChatQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+v.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatQueues.forEach(function(e){A(e)}),v.selectedChatQueues=[]})},v.deselectChatQueues=function(){v.selectedChatQueues=[]},v.selectAllChatQueues=function(){v.selectedChatQueues=v.chatQueues.rows};var h=!0,b=1;function f(e){v.chatQueues=e||{count:0,rows:[]}}function A(e){l.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.chatQueues.rows,{id:e.id}),v.chatQueues.count-=1,v.chatQueues.rows.length||v.getChatQueues(),c.success({title:"ChatQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATQUEUE",u.chatQueue=angular.copy(r),u.chatQueues=s,u.newChatQueue=!1,u.chatQueue||(u.chatQueue={strategy:"beepall",timeout:10},u.title="CHAT.NEW_CHATQUEUE",u.newChatQueue=!0),u.addNewChatQueue=function(){u.errors=[],l.chatQueue.save(u.chatQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"chat",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:u.chatQueue.name?u.chatQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.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.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatQueue=function(){u.errors=[],l.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(e){var t=_.find(u.chatQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatQueue properly saved!",msg:u.chatQueue.name?u.chatQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.chatQueue.delete({id:u.chatQueue.id}).$promise.then(function(){return l.chatQueue.getAgents({id:u.chatQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.chatQueue.id],channel:"chat",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.chatQueues,{id:u.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(u.chatQueue.name||"chatQueue")+" has been deleted!"}),p(u.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chatQueues","chatQueue","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.chatQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.chatQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CHAT.ALL_AGENTS"),labelSelected:s.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,t){a.chatQueue[t?"removeAgents":"addAgents"]({id:l.chatQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"ChatQueue properly "+(t?"removed":"added"),msg:"ChatQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.chatQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.chatQueue[t?"removeTeams":"addTeams"]({id:o.chatQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.chatQueue.getTeams({id:o.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.chatQueue=d||e.params.chatQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:c.chatQueues?c.chatQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:c.chatQueues?c.chatQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoChatQueues=function(){e.go("app.chat.chatQueues")},c.saveChatQueue=function(){s.chatQueue.update({id:c.chatQueue.id},c.chatQueue).$promise.then(function(){r.success({title:"ChatQueue updated!",msg:c.chatQueue.name?c.chatQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","chatQueue"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.chatWebsites=r||{count:0,rows:[]},v.table="chatWebsites",v.listOrder="",v.listOrderAsc=null,v.selectedChatWebsites=[],v.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e})},v.interactionsgoto=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,tab:9})},v.offlinemessagesgoto=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},v.agentadddialog=function(e,t){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:v.chatWebsites?v.chatWebsites.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getChatWebsites=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.chatWebsite.get(v.query,f).$promise},v.createOrEditChatWebsite=function(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:v.chatWebsites.rows,license:v.license,setting:v.setting}})},v.deleteChatWebsite=A,v.exportSelectedChatWebsites=function(){var e=angular.copy(v.selectedChatWebsites);return v.selectedChatWebsites=[],e},v.deleteSelectedChatWebsites=function(e){var t=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+v.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatWebsites.forEach(function(e){A(e)}),v.selectedChatWebsites=[]})},v.deselectChatWebsites=function(){v.selectedChatWebsites=[]},v.selectAllChatWebsites=function(){v.selectedChatWebsites=v.chatWebsites.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.chatWebsites=e||{count:0,rows:[]}}function A(e){l.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(v.chatWebsites.rows,{id:e.id}),v.chatWebsites.count-=1,v.chatWebsites.rows.length||v.getChatWebsites(),c.success({title:"ChatWebsite deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatWebsites","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATWEBSITE",u.chatWebsite=angular.copy(r),u.chatWebsites=s,u.newChatWebsite=!1,u.chatWebsite||(u.chatWebsite={remote:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="CHAT.NEW_CHATWEBSITE",u.newChatWebsite=!0),t.params.id&&(u.chatWebsite.ChatWebsiteId=t.params.id),u.addNewChatWebsite=function(){u.errors=[],l.chatWebsite.save(u.chatWebsite).$promise.then(function(e){var t="add"+_.upperFirst("chatWebsite")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.chatWebsites.unshift(e.toJSON()),i.success({title:"ChatWebsite properly created",msg:u.chatWebsite.name?u.chatWebsite.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.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.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatWebsite=function(){u.errors=[],l.chatWebsite.update({id:u.chatWebsite.id},u.chatWebsite).$promise.then(function(e){var t=_.find(u.chatWebsites,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"ChatWebsite properly saved!",msg:u.chatWebsite.name?u.chatWebsite.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteChatWebsite=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.chatWebsite.delete({id:u.chatWebsite.id}).$promise.then(function(){return l.chatWebsite.getAgents({id:u.chatWebsite.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("chatWebsite")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.chatWebsite.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.chatWebsites,{id:u.chatWebsite.id}),i.success({title:"ChatWebsite properly deleted!",msg:(u.chatWebsite.name||"chatWebsite")+" has been deleted!"}),p(u.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.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","$q","toasty","chatWebsites","chatWebsite","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.chatWebsiteApps.rows.length){var n=r.chatWebsiteApps.rows[t]?r.chatWebsiteApps.rows[t]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:n,chatWebsite:r.chatWebsite}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[t]=e:r.chatWebsiteApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.chatWebsiteApps.rows.length;n++,0){var a=r.chatWebsiteApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(t,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",maxlength:255,required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.chatWebsite=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=s.chatWebsite.getApplications(r.query,n).$promise},r.editChatWebsiteApp=t,r.editInterval=function(e,t){if(r.chatWebsiteApps.rows.length){var n=r.chatWebsiteApps.rows[t]?r.chatWebsiteApps.rows[t]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.chatWebsite[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.chatWebsite=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CHAT.ALL_AGENTS"),labelSelected:s.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,t){a.chatWebsite[t?"removeAgents":"addAgents"]({id:l.chatWebsite.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"ChatWebsite properly "+(t?"removed":"added"),msg:"ChatWebsite has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatWebsite.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.amazonlex=angular.copy(n),o.amazonlex.appdata)switch(o.amazonlex.appType?o.amazonlex.appType.toLowerCase():o.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.amazonlex.appdata.split(",");o.amazonlex.key=s[0],o.amazonlex.language=s[1],o.amazonlex.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.amazonlex.appdata.split(",");o.amazonlex.accesskeyid=s[0],o.amazonlex.secretaccesskey=s[1],o.amazonlex.lexregion=s[2],o.amazonlex.botname=s[3],o.amazonlex.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.amazonlex.appdata.split(",");o.amazonlex.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.amazonlex.text=s.slice(1,s.length).join(",");break;case"message":o.amazonlex.text=o.amazonlex.appdata;break;case"set":o.amazonlex.name=o.amazonlex.appdata.split("=")[0],o.amazonlex.value=o.amazonlex.appdata.split("=")[1];break;case"agi":o.amazonlex.project=o.amazonlex.appdata;break;default:var r=o.amazonlex.appdata.split(",");o.amazonlex.accesskeyid=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.amazonlex.secretaccesskey=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.amazonlex.lexregion=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.amazonlex.botname=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),o.amazonlex.welcomemessage=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10)}else o.amazonlex.lexregion="us-east-1";function l(e){t.hide(e)}o.amazonlex.type&&"outbound"===o.amazonlex.type.toLowerCase()&&"outbounddial"===o.amazonlex.appType.toLowerCase()&&(o.amazonlex.prefix=o.amazonlex.phone?o.amazonlex.phone.split("$")[0]:void 0,o.amazonlex.callerId=o.amazonlex.callerID?"CALLERID(all)="+o.amazonlex.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.amazonlex.type&&"outbound"===o.amazonlex.type.toLowerCase()&&"outboundDial"===o.amazonlex.appType&&(o.amazonlex.phone=a.cutdigits?(o.amazonlex.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.amazonlex.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.amazonlex.options+="U(xcally-mixmonitor-context)"):o.amazonlex.options=o.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(o.amazonlex.appType&&"custom"===o.amazonlex.appType);else switch((o.amazonlex.app||o.amazonlex.appType).toLowerCase()){case"set":o.amazonlex.appdata=o.amazonlex.name+"="+o.amazonlex.value;break;case"custom":break;default:e[0]=o.amazonlex.accesskeyid,e[1]=o.amazonlex.secretaccesskey,e[2]=o.amazonlex.lexregion,e[3]=o.amazonlex.botname,e[4]=o.amazonlex.welcomemessage,o.amazonlex.appdata=e.join(",")}l(o.amazonlex)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.dialogflow=angular.copy(n),o.dialogflow.appdata)switch(o.dialogflow.appType?o.dialogflow.appType.toLowerCase():o.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.dialogflow.appdata.split(",");o.dialogflow.key=s[0],o.dialogflow.language=s[1],o.dialogflow.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.dialogflow.appdata.split(",");o.dialogflow.accesskeyid=s[0],o.dialogflow.secretaccesskey=s[1],o.dialogflow.lexregion=s[2],o.dialogflow.botname=s[3],o.dialogflow.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.dialogflow.appdata.split(",");o.dialogflow.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.dialogflow.text=s.slice(1,s.length).join(",");break;case"message":o.dialogflow.text=o.dialogflow.appdata;break;case"set":o.dialogflow.name=o.dialogflow.appdata.split("=")[0],o.dialogflow.value=o.dialogflow.appdata.split("=")[1];break;case"agi":o.dialogflow.project=o.dialogflow.appdata;break;default:var r=o.dialogflow.appdata.split(",");o.dialogflow.key=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.dialogflow.language=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.dialogflow.welcomemessage=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}else o.dialogflow.language="en";function l(e){t.hide(e)}o.dialogflow.type&&"outbound"===o.dialogflow.type.toLowerCase()&&"outbounddial"===o.dialogflow.appType.toLowerCase()&&(o.dialogflow.prefix=o.dialogflow.phone?o.dialogflow.phone.split("$")[0]:void 0,o.dialogflow.callerId=o.dialogflow.callerID?"CALLERID(all)="+o.dialogflow.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.dialogflow.type&&"outbound"===o.dialogflow.type.toLowerCase()&&"outboundDial"===o.dialogflow.appType&&(o.dialogflow.phone=a.cutdigits?(o.dialogflow.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.dialogflow.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.dialogflow.options+="U(xcally-mixmonitor-context)"):o.dialogflow.options=o.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(o.dialogflow.appType&&"custom"===o.dialogflow.appType);else switch((o.dialogflow.app||o.dialogflow.appType).toLowerCase()){case"set":o.dialogflow.appdata=o.dialogflow.name+"="+o.dialogflow.value;break;case"custom":break;default:e[0]=o.dialogflow.key,e[1]=o.dialogflow.language,e[2]=o.dialogflow.welcomemessage,o.dialogflow.appdata=e.join(",")}l(o.dialogflow)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("chat")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="CHAT.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveChatWebsiteApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","chatWebsite","api"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteChatCannedAnswers={count:0,rows:[]},c.selectedChatWebsiteChatCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.query.ChatWebsiteId=c.chatWebsite.id,c.getChatWebsiteChatCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteChatCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getAnswers(c.query,p).$promise},c.createOrEditChatWebsiteChatCannedAnswer=function(e,t){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatCannedAnswer:t,chatCannedAnswers:c.chatWebsiteChatCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(c.selectedChatWebsiteChatCannedAnswers);return c.selectedChatWebsiteChatCannedAnswers=[],e},c.deleteChatWebsiteChatCannedAnswer=g,c.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+c.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),c.selectedChatWebsiteChatCannedAnswers=[]})};var m=!0,u=1;function p(e){c.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteChatCannedAnswers.rows,{id:e.id}),c.chatWebsiteChatCannedAnswers.count-=1,c.chatWebsiteChatCannedAnswers.rows.length||c.getChatWebsiteChatCannedAnswers(),r.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteChatCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATCANNEDANSWER",u.chatCannedAnswer=angular.copy(r),u.chatCannedAnswers=s,u.newChatCannedAnswer=!1,u.chatCannedAnswer||(u.chatCannedAnswer={},u.title="CHAT.NEW_CHATCANNEDANSWER",u.newChatCannedAnswer=!0),t.params.id&&(u.chatCannedAnswer.ChatWebsiteId=t.params.id),u.addNewChatCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.chatCannedAnswer).$promise.then(function(e){u.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:u.chatCannedAnswer.name?u.chatCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.chatCannedAnswer.id},u.chatCannedAnswer).$promise.then(function(e){var t=_.find(u.chatCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatCannedAnswer properly saved!",msg:u.chatCannedAnswer.name?u.chatCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.chatCannedAnswer.id}).$promise.then(function(){_.remove(u.chatCannedAnswers,{id:u.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(u.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),p(u.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteChatDispositions={count:0,rows:[]},c.selectedChatWebsiteChatDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.query.ChatWebsiteId=c.chatWebsite.id,c.getChatWebsiteChatDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the chatDisposition?").htmlContent("<b>"+(e.name||"chatDisposition")+"</b> will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteChatDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getDispositions(c.query,p).$promise},c.createOrEditChatWebsiteChatDisposition=function(e,t){o.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatDisposition:t,chatDispositions:c.chatWebsiteChatDispositions.rows,license:null,setting:null}})},c.exportSelectedChatWebsiteChatDispositions=function(){var e=angular.copy(c.selectedChatWebsiteChatDispositions);return c.selectedChatWebsiteChatDispositions=[],e},c.deleteChatWebsiteChatDisposition=g,c.deleteSelectedChatWebsiteChatDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent("<b>"+c.selectedChatWebsiteChatDispositions.length+" selected</b> will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteChatDispositions.forEach(function(e){g(e)}),c.selectedChatWebsiteChatDispositions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteChatDispositions.rows,{id:e.id}),c.chatWebsiteChatDispositions.count-=1,c.chatWebsiteChatDispositions.rows.length||c.getChatWebsiteChatDispositions(),r.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteChatDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATDISPOSITION",u.chatDisposition=angular.copy(r),u.chatDispositions=s,u.newChatDisposition=!1,u.chatDisposition||(u.chatDisposition={},u.title="CHAT.NEW_CHATDISPOSITION",u.newChatDisposition=!0),t.params.id&&(u.chatDisposition.ChatWebsiteId=t.params.id),u.addNewChatDisposition=function(){u.errors=[],l.disposition.save(u.chatDisposition).$promise.then(function(e){u.chatDispositions.unshift(e.toJSON()),o.success({title:"ChatDisposition properly created",msg:u.chatDisposition.name?u.chatDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatDisposition=function(){u.errors=[],l.disposition.update({id:u.chatDisposition.id},u.chatDisposition).$promise.then(function(e){var t=_.find(u.chatDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatDisposition properly saved!",msg:u.chatDisposition.name?u.chatDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatDisposition will be deleted.").ariaLabel("Delete ChatDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.chatDisposition.id}).$promise.then(function(){_.remove(u.chatDispositions,{id:u.chatDisposition.id}),o.success({title:"ChatDisposition properly deleted!",msg:(u.chatDisposition.name||"chatDisposition")+" has been deleted!"}),p(u.chatDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chatDispositions","chatDisposition","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatDispositionDialogController",e)}(),function(){"use strict";function e(n,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var t=0;t<e.rows.length;t++)i.customFields.push({key:"cf_"+e.rows[t].id,value:e.rows[t].alias});return a.cmContact.describe().$promise}).then(function(e){for(var t=_.keys(e),n=0;n<t.length;n++)_.includes(i.uselessFields,t[n])||_.startsWith(t[n],"cf_")||i.fields.unshift({key:t[n],value:t[n]});return a.variable.get().$promise}).then(function(e){i.variables=e.rows}).catch(function(e){console.error(e)})},i.up=function(e,t){if(0!==t){var n=i.chatWebsite.offlineForm.items[t-1];i.chatWebsite.offlineForm.items[t]=n,i.chatWebsite.offlineForm.items[t-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===t?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===t-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,t){if(t!==i.chatWebsite.offlineForm.items.length-1){var n=i.chatWebsite.offlineForm.items[t+1];i.chatWebsite.offlineForm.items[t]=n,i.chatWebsite.offlineForm.items[t+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===t?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===t+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var t=n.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");n.show(t).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})}}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(n,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var t=0;t<e.rows.length;t++)i.customFields.push({key:"cf_"+e.rows[t].id,value:e.rows[t].alias});return a.cmContact.describe().$promise}).then(function(e){for(var t=_.keys(e),n=0;n<t.length;n++)_.includes(i.uselessFields,t[n])||_.startsWith(t[n],"cf_")||i.fields.unshift({key:t[n],value:t[n]});return a.variable.get().$promise}).then(function(e){i.variables=e.rows}).catch(function(e){console.error(e)})},i.up=function(e,t){if(0!==t){var n=i.chatWebsite.onlineForm.items[t-1];i.chatWebsite.onlineForm.items[t]=n,i.chatWebsite.onlineForm.items[t-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===t?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===t-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,t){if(t!==i.chatWebsite.onlineForm.items.length-1){var n=i.chatWebsite.onlineForm.items[t+1];i.chatWebsite.onlineForm.items[t]=n,i.chatWebsite.onlineForm.items[t+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===t?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===t+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var t=n.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");n.show(t).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})}}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteInteractions={count:0,rows:[]},c.selectedChatWebsiteInteractions=[],c.query={fields:"createdAt,updatedAt,UserId,ContactId,ChatWebsiteId,id,closedAt,Contact.firstName,Owner.name,disposition,ratingValue,ratingType,note,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.getChatWebsiteInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.chatInteractionDownload=function(o,e,t){return l.chatInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="chat-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getChatWebsiteInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getInteractions(c.query,p).$promise},c.createOrEditChatWebsiteInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,interaction:t,interactions:c.chatWebsiteInteractions.rows,license:null,setting:null}})},c.spychatInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"chat",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(c.selectedChatWebsiteInteractions);return c.selectedChatWebsiteInteractions=[],e},c.deleteChatWebsiteInteraction=g,c.deleteSelectedChatWebsiteInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),c.selectedChatWebsiteInteractions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteInteractions=e||{count:0,rows:[]}}function g(e){l.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteInteractions.rows,{id:e.id}),c.chatWebsiteInteractions.count-=1,c.chatWebsiteInteractions.rows.length||c.getChatWebsiteInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteOfflineMessages={count:0,rows:[]},c.selectedChatWebsiteOfflineMessages=[],c.query={fields:"createdAt,updatedAt,id,ContactId",sort:"-createdAt",limit:10,page:1},c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.getChatWebsiteOfflineMessages()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteOfflineMessages=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getOfflineMessages(c.query,p).$promise},c.createOrEditChatWebsiteOfflineMessage=function(e,t){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,offlineMessage:t,offlineMessages:c.chatWebsiteOfflineMessages.rows,license:null,setting:null}})},c.showOfflineMessageChatWebsiteOfflineMessage=function(e,n){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,t){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:n.id})}]}})},c.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(c.selectedChatWebsiteOfflineMessages);return c.selectedChatWebsiteOfflineMessages=[],e},c.deleteChatWebsiteOfflineMessage=g,c.deleteSelectedChatWebsiteOfflineMessages=function(e){var t=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+c.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),c.selectedChatWebsiteOfflineMessages=[]})},l.cmContact.get({fields:"id,firstName,lastName",nolimit:"true"}).$promise.then(function(e){c.contacts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontacts",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function g(e){l.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteOfflineMessages.rows,{id:e.id}),c.chatWebsiteOfflineMessages.count-=1,c.chatWebsiteOfflineMessages.rows.length||c.getChatWebsiteOfflineMessages(),r.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteOfflineMessages())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(t,e){this.title="CHAT.OFFLINE_MESSAGE",this.message=e,this.closeDialog=function(e){t.hide(e)}}e.$inject=["$mdDialog","message"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.chatWebsite={},c.chatWebsiteProactiveActions={count:0,rows:[]},c.selectedChatWebsiteProactiveActions=[],c.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},c.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.chatWebsite=e,c.query.id=c.chatWebsite.id,c.query.ChatWebsiteId=c.chatWebsite.id,c.getChatWebsiteProactiveActions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteProactiveActions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getProactiveActions(c.query,p).$promise},c.createOrEditChatWebsiteChatProactiveAction=function(e,t){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatProactiveAction:t,proactive:c.chatWebsiteProactiveActions.rows,license:null,setting:null}})},c.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(c.selectedChatWebsiteProactiveActions);return c.selectedChatWebsiteProactiveActions=[],e},c.deleteChatWebsiteChatProactiveAction=g,c.deleteSelectedChatWebsiteProactiveActions=function(e){var t=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+c.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),c.selectedChatWebsiteProactiveActions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function g(e){l.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteProactiveActions.rows,{id:e.id}),c.chatWebsiteProactiveActions.count-=1,c.chatWebsiteProactiveActions.rows.length||c.getChatWebsiteProactiveActions(),r.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getChatWebsiteProactiveActions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CHAT.EDIT_CHATPROACTIVEACTION",u.chatProactiveAction=angular.copy(r),u.proactive=s,u.newChatProactiveAction=!1,u.chatProactiveAction||(u.chatProactiveAction={type:"mouseOver"},u.title="CHAT.NEW_CHATPROACTIVEACTION",u.newChatProactiveAction=!0),t.params.id&&(u.chatProactiveAction.ChatWebsiteId=t.params.id),u.addNewChatProactiveAction=function(){u.errors=[],l.chatProactiveAction.save(u.chatProactiveAction).$promise.then(function(e){u.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:u.chatProactiveAction.name?u.chatProactiveAction.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.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.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveChatProactiveAction=function(){u.errors=[],l.chatProactiveAction.update({id:u.chatProactiveAction.id},u.chatProactiveAction).$promise.then(function(e){var t=_.find(u.proactive,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ChatProactiveAction properly saved!",msg:u.chatProactiveAction.name?u.chatProactiveAction.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var t=0;t<e.data.errors.length;t++)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.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteChatProactiveAction=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.chatProactiveAction.delete({id:u.chatProactiveAction.id}).$promise.then(function(){_.remove(u.proactive,{id:u.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(u.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),p(u.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var t=0;t<e.data.errors.length;t++)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.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","proactive","chatProactiveAction","api","Auth","license","setting"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var t=this;t.chatWebsite={},t.init=function(e){t.chatWebsite=e,t.start="\n\x3c!-- START Motion Chat Script --\x3e",t.script='\n <script src="'+t.chatWebsite.remote+"/api/chat/websites/"+t.chatWebsite.id+"/snippet?token="+t.chatWebsite.token+'"><\/script>',t.end="\n\x3c!-- START Motion Chat Script --\x3e"},t.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){t.script='\n <script src="'+t.chatWebsite.remote+"/api/chat/websites/"+t.chatWebsite.id+"/snippet?token="+t.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.chatWebsite=angular.copy(e),i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.chatWebsite=d||e.params.chatWebsite||{},c.selectedTab=e.params.tab||0,c.agentadddialog=function(e,t){n.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:c.chatWebsites?c.chatWebsites.rows:[],realtime:!1}})},c.alert=r.info,c.gotoChatWebsites=function(){e.go("app.chat.chatWebsites")},c.saveChatWebsite=function(){s.chatWebsite.update({id:c.chatWebsite.id},c.chatWebsite).$promise.then(function(){r.success({title:"ChatWebsite updated!",msg:c.chatWebsite.name?c.chatWebsite.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.templates=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","chatWebsite"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"chat",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.chatQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].ChatQueueId].paused++,u.queues[e[t].rows[n].ChatQueueId].loggedInDb++,u.queues[e[t].rows[n].ChatQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].ChatQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"chat",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.chatQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditChatQueue=function(e,t){a.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.chatQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.ChatQueueId]&&u.queues[e.ChatQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.ChatQueueId]&&u.queues[e.ChatQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.ChatQueueId]&&(u.queues[e.ChatQueueId].loggedInDb+=1,u.queues[e.ChatQueueId].agents[e.UserId]=e.ChatQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.ChatQueueId]&&0<u.queues[e.ChatQueueId].loggedInDb&&(u.queues[e.ChatQueueId].loggedInDb-=1,delete u.queues[e.ChatQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("chat_queue:save",u.onSave),d.on("userChatQueue:save",u.onSaveMember),d.on("userChatQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("chat_queue:save"),d.removeAllListeners("userChatQueue:remove"),d.removeAllListeners("userChatQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,n.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.chat.realtime.agents");break;case 1:n.go("app.chat.realtime.queues");break;default:n.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.companies=r||{count:0,rows:[]},v.table="companies",v.listOrder="",v.listOrderAsc=null,v.selectedCompanies=[],v.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},v.editstate=function(e,t){n.go("app.contactmanager.companies.edit",{id:e.id,company:e})},v.gotocontactsgoto=function(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getCompanies=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cmCompany.get(v.query,f).$promise},v.createOrEditCompany=function(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:v.companies.rows,license:v.license,setting:v.setting}})},v.deleteCompany=A,v.exportSelectedCompanies=function(){var e=angular.copy(v.selectedCompanies);return v.selectedCompanies=[],e},v.deleteSelectedCompanies=function(e){var t=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+v.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedCompanies.forEach(function(e){A(e)}),v.selectedCompanies=[]})},v.deselectCompanies=function(){v.selectedCompanies=[]},v.selectAllCompanies=function(){v.selectedCompanies=v.companies.rows};var h=!0,b=1;function f(e){v.companies=e||{count:0,rows:[]}}function A(e){l.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(v.companies.rows,{id:e.id}),v.companies.count-=1,v.companies.rows.length||v.getCompanies(),c.success({title:"Company deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","companies","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_COMPANY",u.company=angular.copy(r),u.companies=s,u.newCompany=!1,u.company||(u.company={},u.title="CONTACTMANAGER.NEW_COMPANY",u.newCompany=!0),u.addNewCompany=function(){u.errors=[],l.cmCompany.save(u.company).$promise.then(function(e){u.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:u.company.name?u.company.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.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.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCompany=function(){u.errors=[],l.cmCompany.update({id:u.company.id},u.company).$promise.then(function(e){var t=_.find(u.companies,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Company properly saved!",msg:u.company.name?u.company.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCompany=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmCompany.delete({id:u.company.id}).$promise.then(function(){_.remove(u.companies,{id:u.company.id}),o.success({title:"Company properly deleted!",msg:(u.company.name||"company")+" has been deleted!"}),p(u.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","companies","company","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.company=d||n.params.company||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})},c.alert=r.info,c.gotoCompanies=function(){n.go("app.contactmanager.companies")},c.saveCompany=function(){s.cmCompany.update({id:c.company.id},c.company).$promise.then(function(){r.success({title:"Company updated!",msg:c.company.name?c.company.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","company"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(t,i,n,a,o,s,e,r,l,d,c,m,u,p,g,v){var h=this,b=(h.currentUser=p.getCurrentUser(),60),f=1024*b*1024;h.license=v,h.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:f,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.contacts=e||{count:0,rows:[]},h.options={hidden:!1,hover:!1,isOpen:!1},h.table="cm_contacts",h.selectedContacts=[],h.lists=r||{rows:[],count:0},h.companies=d||{rows:[],count:0},h.tags=m||{rows:[],count:0},h.listsMap=l,h.companiesMap=c,h.selectedTags=[],h.selectedList=null,h.selectedCompany=null,h.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},g),h.editdialog=function(e,t){a.go("app.contactmanager.contacts.edit",{id:e.id})},h.deleteconfirm=function(e,t){var n=o.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");o.show(n).then(function(){S(e)})},h.success=y,h.getContacts=function(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=s.cmContact.get(h.query,y).$promise},h.mergeContact=function(e,t){o.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:h.contacts.rows}})},h.duplicateContact=function(e,t){o.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:h.contacts.rows}})},h.createOrEditContact=function(e,t){t&&t.dateOfBirth&&(t.dateOfBirth=new Date(t.dateOfBirth));o.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:h.query.ListId||a.params.ListId,CompanyId:h.query.CompanyId||a.params.CompanyId,contact:t,contacts:h.contacts.rows,setting:null},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"})}]}})},h.deleteContact=S,h.exportSelectedContacts=function(){var e=angular.copy(h.selectedContacts);return h.selectedContacts=[],e},h.deleteSelectedContacts=function(e){var t=o.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+h.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){h.selectedContacts.forEach(function(e){S(e)}),h.selectedContacts=[]})},h.deselectContacts=function(){h.selectedContacts=[]},h.selectAllContacts=function(){h.selectedContacts=h.contacts.rows},h.createTag=function(e){var t=o.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return o.show(t).then(function(e){if(e)return s.tag.save({name:e});u.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(h.tags.rows.push(e),u.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},h.createList=function(e){var t=o.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return o.show(t).then(function(e){if(e)return s.cmList.save({name:e});u.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(h.lists.rows.push(e),u.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},h.createCompany=function(e){var t=o.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return o.show(t).then(function(e){if(e)return s.cmCompany.save({name:e});u.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(h.companies.rows.push(e),u.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},h.importContacts=function(e,t,n){var a=JSON.parse(t);o.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:r,companies:d,file:a.file,fields:a.fields,license:h.license}}).then(function(){h.getContacts()}).catch(function(e){console.error()})},h.hasPermission=function(){return p.hasPermission(303)||p.hasRole("admin")},h.fileAdded=function(e){var t=["csv"];if(!_.includes(t,e.getExtension()))return u.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(e.size>f)return u.error({title:"File too big",msg:"The max allowed size is "+b+"MB"}),!1;return!0},a.params.ListId&&(h.selectedList=a.params.ListId),a.params.CompanyId&&(h.selectedCompany=a.params.CompanyId),t.$watch("vm.options.isOpen",function(e){e?n(function(){t.tooltipVisible=h.options.isOpen},600):t.tooltipVisible=h.options.isOpen});var A=!0,E=1;function y(e){h.contacts=e||{count:0,rows:[]}}function S(e){s.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(h.contacts.rows,{id:e.id}),h.contacts.count-=1,h.contacts.rows.length||h.getContacts(),u.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var t=0;t<e.data.errors.length;t++)u.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm.query.filter",function(e,t){A?n(function(){A=!1}):(t||(E=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=E),h.getContacts())},!0),t.$watch("vm.selectedList",function(e,t){e!==t&&(h.query.ListId=h.selectedList||void 0,h.getContacts())}),t.$watch("vm.selectedCompany",function(e,t){e!==t&&(h.query.CompanyId=h.selectedCompany||void 0,h.getContacts())}),t.$watch("vm.selectedTags",function(e,t){(e.length||t.length)&&h.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$mdDialog","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","$stateParams","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(n,a,e,t,i,o,s,r,l){var d=this;function c(){n.hide()}d.errors=[],d.title="CONTACTMANAGER.EDIT_CONTACT",d.contact=angular.copy(o),d.contacts=e||{rows:[],count:0},d.lists=t||{rows:[],count:0},d.companies=i||{rows:[],count:0},d.customFields={rows:[],count:0},d.newContact=!1,d.contact?(delete d.contact.List,d.ListId=d.contact.ListId||void 0):(d.contact={ListId:s?parseInt(s,10):void 0,CompanyId:r?parseInt(r,10):void 0},d.title="CONTACTMANAGER.NEW_CONTACT",d.newContact=!0),d.addNewContact=function(){d.errors=[],l.cmContact.save(d.contact).$promise.then(function(e){d.contacts.unshift(e),a.success({title:"Contact properly created",msg:d.contact.name?d.contact.name+" has been created!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveContact=function(){d.errors=[],l.cmContact.update({id:d.contact.id},d.contact).$promise.then(function(e){var t=_.find(d.contacts,{id:e.id});t&&_.merge(t,e),a.success({title:"Contact properly saved!",msg:d.contact.name?d.contact.name+" has been saved!":""}),c()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var t=0;t<e.data.errors.length;t++)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteContact=function(e){d.errors=[];var t=n.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){l.cmContact.delete({id:d.contact.id}).$promise.then(function(){_.remove(d.contacts,{id:d.contact.id}),a.success({title:"Contact properly deleted!",msg:d.contact.name?d.contact.name+" has been deleted!":""}),c()}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},d.closeDialog=c,d.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){e&&(d.customFields=e)}).catch(function(e){console.error(e)});d.customFields={rows:[],count:0}}},d.getDateFromString=function(e){return null===e?void 0:new Date(e)}}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){var s=this;function r(){e.hide()}s.errors=[],s.title="CONTACTMANAGER.COPY_CONTACT",s.contact=angular.copy(n),s.lists=i||{rows:[],count:0},s.addNewContact=function(){s.errors=[],delete s.contact.id,s.contact.tags&&!s.contact.tags.length&&delete s.contact.tags;o.cmContact.save(s.contact).$promise.then(function(e){a.unshift(e),t.success({title:"Contact properly created",msg:s.contact.name?s.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},s.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){var l=this;function d(e){a.hide(e)}l.errors=[],l.title="CONTACTMANAGER.EDIT_HOPPER",l.hopper=angular.copy(s),l.hoppers=o,l.newHopper=!1,l.hopper||(l.hopper={},l.title="CONTACTMANAGER.NEW_HOPPER",l.newHopper=!0),l.saveHopper=function(){l.errors=[],r.cmHopper.update({id:l.hopper.id},l.hopper).$promise.then(function(e){var t=_.find(l.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:l.hopper.name?l.hopper.name+" has been saved!":""}),d(e)}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},l.getDateFromString=function(e){return null===e?void 0:new Date(e)},l.closeDialog=d}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c,m,u,p,g,v,h,b){var f=this;f.license=b,f.journey=[],f.contact=r||{},f.hoppers=l||{rows:[],count:0},f.finals=d||{rows:[],count:0},f.histories=c||{rows:[],count:0},f.companies=u||{rows:[],count:0},f.lists=p||{rows:[],count:0},f.customFields=g||{rows:[],count:0},f.tags=v||{rows:[],count:0},f.jscriptySessions=h||{rows:[],count:0},f.timelineOptions={scrollEl:"#interaction-content"},f.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},f.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},f.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},f.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},f.selectedTab=t.params.tab||0,f.gotoContacts=function(){t.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},f.duplicateContact=function(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}})},f.saveContact=function(){s.cmContact.update({id:f.contact.id},f.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:f.contact.name?f.contact.name+" has been updated!":""})}).then(function(){return s.cmContact.setTags({id:f.contact.id,ids:f.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.editCompany=function(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:[],license:null,setting:null},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:t})}]}})},f.onSelectList=function(e){if(f.contact.ListId){var t=i.confirm().title("You are selecting the list number: "+f.contact.ListId).textContent("Warning! You won't select a different list for the contact "+f.contact.firstName||f.contact.lastName||f.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(f.onSelectListSuccess).catch(function(){f.contact.ListId=null})}},f.onSelectListSuccess=function(){return s.cmList.getCustomFields({id:f.contact.ListId}).$promise.then(function(e){f.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},f.getDateFromString=function(e){return null===e?void 0:new Date(e)},f.getHoppers=function(){f.queryHopper.offset=(f.queryHopper.page-1)*f.queryHopper.limit,f.queryHopper.id=f.contact.id,f.promise=s.cmContact.getHoppers(f.queryHopper,y("hoppers")).$promise},f.getFinals=function(){f.queryFinal.offset=(f.queryFinal.page-1)*f.queryFinal.limit,f.queryFinal.id=f.contact.id,f.promise=s.cmContact.getHopperFinals(f.queryFinal,y("finals")).$promise},f.getHistories=function(){f.queryHistory.offset=(f.queryHistory.page-1)*f.queryHistory.limit,f.queryHistory.id=f.contact.id,f.promise=s.cmContact.getHopperHistories(f.queryHistory,y("histories")).$promise},f.getJscriptySessions=function(){f.queryJscriptySession.offset=(f.queryJscriptySession.page-1)*f.queryJscriptySession.limit,f.queryJscriptySession.id=f.contact.id,f.promise=s.cmContact.getJscriptySessions(f.queryJscriptySession,y("jscriptySessions")).$promise},f.deleteconfirm=function(t,e){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(t.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){var e;e=t,s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(f.hoppers.rows,{id:e.id}),f.hoppers.count--,f.hoppers.rows.length||f.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(){console.log("CANCEL")})},f.editHopper=function(e,t){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:f.hoppers.rows,license:null,setting:null}})},f.createOrEditIvrCampaignHopper=function(e,t){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:f.hoppers.rows,license:null,setting:null}})},f.getColorByItem=function(e){var t="";e.FaxAccountId?t="fax":e.OpenchannelAccountId?t="openchannel":e.SmsAccountId?t="sms":e.MailAccountId?t="mail":e.ChatWebsiteId?t="chat":e.amaflags&&(t="voice");return function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"blue-A700"}}(t)};var A=!0,E=1;function y(t){return function(e){f[t]=e||{count:0,rows:[]}}}function S(e){e&&e.count&&e.rows.length&&(f.journey=_.concat(f.journey,e.rows))}e.$watch("vm.queryHopper.filter",function(e,t){A?n(function(){A=!1}):(t||(E=f.queryHopper.page),e!==t&&(f.queryHopper.page=1),e||(f.queryHopper.page=E),f.getHoppers())}),e.$watch("vm.queryFinal.filter",function(e,t){A?n(function(){A=!1}):(t||(E=f.queryFinal.page),e!==t&&(f.queryFinal.page=1),e||(f.queryFinal.page=E),f.getFinals())}),e.$watch("vm.queryHistory.filter",function(e,t){A?n(function(){A=!1}):(t||(E=f.queryHistory.page),e!==t&&(f.queryHistory.page=1),e||(f.queryHistory.page=E),f.getHistories())}),s.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){f.users=e||{count:0,rows:[]},f.usersMap=_.mapValues(_.keyBy(f.users.rows,"id"),"fullname"),f.Tags=_.map(f.contact.Tags,"id")}).then(function(e){var t=["mail","chat","sms","openchannel","fax"];if(e&&e.id){for(var n=0;n<t.length;n++)s[t[n]+"Interaction"].get({ContactId:e.id,includeAll:!0}).$promise.then(S);s.voiceCallReport.get({fields:"id,uniqueid,type,source,destination,callerid,starttime,endtime,duration,disposition,amaflags,note,UserId,ContactId",ContactId:e.id,includeAll:!0}).$promise.then(S).catch(function(e){console.error(e)})}}(r))}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},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.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=o||{rows:[],count:0},g.companies=s||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),t.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],t=0;t<g.result.errors.length;t+=1){var n=g.result.errors[t].row;n.contact_import_error=g.result.errors[t].message,e.push(n)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(n){i(function(){if(g.result.rows=n.rows,n.errors)for(var e=0;e<n.errors.length;e++)g.result.errors.push(n.errors[e]);if(n.finish){g.result.finish=!0,g.result.affectedRows=n.affectedRows,g.result.failedRows=g.result.errors.length;var t=g.result.rows-g.result.affectedRows-g.result.errors.length;t&&0<t&&(g.duplicates.length?g.result.duplicatedRows=t:g.result.failedRows+=t),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,o,t,s,n,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(t),a.lists=n||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:t.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,t,n){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+n.id+" will be overwritten by the fields of the contact #"+t.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:n.id,from:t.id}).$promise}).then(function(e){i.hide({new:e,to:n,from:t}),_.remove(s,{id:n.id}),_.remove(s,{id:t.id}),s.unshift(e)}).then(function(){o.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,t,n,i,o,s,r,l,d,c,m){var u=this;function p(e){n.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",u.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},u.globalCustomField=r,u.globalCustomFields=s,u.newGlobalCustomField=!1,u.globalCustomField||(u.globalCustomField={type:"text"},u.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",u.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,t){if(e!==t)switch(e){case"text":u.globalCustomField.values="";break;case"select":u.globalCustomField.values=[]}}),u.addNewGlobalCustomField=function(){u.errors=[],l.cmCustomField.save(u.globalCustomField).$promise.then(function(e){u.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:u.globalCustomField.name?u.globalCustomField.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.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.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveGlobalCustomField=function(){u.errors=[],l.cmCustomField.update({id:u.globalCustomField.id},u.globalCustomField).$promise.then(function(e){var t=_.find(u.globalCustomFields,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"GlobalCustomField properly saved!",msg:u.globalCustomField.name?u.globalCustomField.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteGlobalCustomField=function(e){u.errors=[];var t=n.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){l.cmCustomField.delete({id:u.globalCustomField.id}).$promise.then(function(){_.remove(u.globalCustomFields,{id:u.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(u.globalCustomField.name||"globalCustomField")+" has been deleted!"}),p(u.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},u.removeItem=function(e,t){e.splice(t,1),a.globalCustomFieldForm.$pristine=!1},u.removeItems=function(e){for(var t=e.length,n=0;n<t;n++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.globalCustomFields=r||{count:0,rows:[]},v.table="globalCustomFields",v.listOrder="",v.listOrderAsc=null,v.selectedGlobalCustomFields=[],v.query={fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,page:1},v.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"),"")}),v.editdialog=function(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:v.globalCustomFields.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getGlobalCustomFields=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cmCustomField.get(v.query,f).$promise},v.createOrEditGlobalCustomField=function(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:v.globalCustomFields.rows,license:v.license,setting:v.setting}})},v.deleteGlobalCustomField=A,v.exportSelectedGlobalCustomFields=function(){var e=angular.copy(v.selectedGlobalCustomFields);return v.selectedGlobalCustomFields=[],e},v.deleteSelectedGlobalCustomFields=function(e){var t=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+v.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedGlobalCustomFields.forEach(function(e){A(e)}),v.selectedGlobalCustomFields=[]})},v.deselectGlobalCustomFields=function(){v.selectedGlobalCustomFields=[]},v.selectAllGlobalCustomFields=function(){v.selectedGlobalCustomFields=v.globalCustomFields.rows};var h=!0,b=1;function f(e){v.globalCustomFields=e||{count:0,rows:[]}}function A(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(v.globalCustomFields.rows,{id:e.id}),v.globalCustomFields.count-=1,v.globalCustomFields.rows.length||v.getGlobalCustomFields(),c.success({title:"GlobalCustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","globalCustomFields","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_LIST",u.list=angular.copy(r),u.lists=s,u.newList=!1,u.list||(u.list={},u.title="CONTACTMANAGER.NEW_LIST",u.newList=!0),u.addNewList=function(){u.errors=[],l.cmList.save(u.list).$promise.then(function(e){u.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:u.list.name?u.list.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.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.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveList=function(){u.errors=[],l.cmList.update({id:u.list.id},u.list).$promise.then(function(e){var t=_.find(u.lists,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"List properly saved!",msg:u.list.name?u.list.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteList=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmList.delete({id:u.list.id}).$promise.then(function(){_.remove(u.lists,{id:u.list.id}),o.success({title:"List properly deleted!",msg:(u.list.name||"list")+" has been deleted!"}),p(u.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","lists","list","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.cmList[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.list=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:s.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,t){a.cmList[t?"removeAgents":"addAgents"]({id:l.list.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:cmList.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","list","lists","realtime","$translate","Auth"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.list={},c.listCustomFields={count:0,rows:[]},c.selectedListCustomFields=[],c.query={fields:"createdAt,updatedAt,id,alias,type,values,required",limit:10,page:1},c.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"),"")}),c.init=function(e){c.list=e,c.query.id=c.list.id,c.query.ListId=c.list.id,c.getListCustomFields()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getListCustomFields=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.cmList.getCustomFields(c.query,p).$promise},c.createOrEditListCustomField=function(e,t){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:c.list,customField:t,customFields:c.listCustomFields.rows,license:null,setting:null}})},c.exportSelectedListCustomFields=function(){var e=angular.copy(c.selectedListCustomFields);return c.selectedListCustomFields=[],e},c.deleteListCustomField=g,c.deleteSelectedListCustomFields=function(e){var t=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+c.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedListCustomFields.forEach(function(e){g(e)}),c.selectedListCustomFields=[]})};var m=!0,u=1;function p(e){c.listCustomFields=e||{count:0,rows:[]}}function g(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(c.listCustomFields.rows,{id:e.id}),c.listCustomFields.count-=1,c.listCustomFields.rows.length||c.getListCustomFields(),r.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getListCustomFields())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,t,n,i,o,s,r,l,d,c,m){var u=this;function p(e){n.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",u.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},u.customField=r,u.customFields=s,u.newCustomField=!1,u.customField||(u.customField={type:"text"},u.title="CONTACTMANAGER.NEW_CUSTOMFIELD",u.newCustomField=!0),e.params.id&&(u.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,t){if(e!==t)switch(e){case"text":u.customField.values="";break;case"select":u.customField.values=[]}}),u.addNewCustomField=function(){u.errors=[],l.cmList.addCustomField({id:e.params.id},u.customField).$promise.then(function(e){u.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:u.customField.name?u.customField.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.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.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCustomField=function(){u.errors=[],l.cmCustomField.update({id:u.customField.id},u.customField).$promise.then(function(e){var t=_.find(u.customFields,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"CustomField properly saved!",msg:u.customField.name?u.customField.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCustomField=function(e){u.errors=[];var t=n.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);n.show(t).then(function(){l.cmCustomField.delete({id:u.customField.id}).$promise.then(function(){_.remove(u.customFields,{id:u.customField.id}),o.success({title:"CustomField properly deleted!",msg:(u.customField.name||"customField")+" has been deleted!"}),p(u.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},u.removeItem=function(e,t){e.splice(t,1),a.customFieldForm.$pristine=!1},u.removeItems=function(e){for(var t=e.length,n=0;n<t;n++)e.splice(0,1);a.customFieldForm.$pristine=!1},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","customFields","customField","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.list=d||n.params.list||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})},c.agentadddialog=function(e,t){a.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{list:e,lists:c.lists?c.lists.rows:[],realtime:!1}})},c.alert=r.info,c.gotoLists=function(){n.go("app.contactmanager.lists")},c.saveList=function(){s.cmList.update({id:c.list.id},c.list).$promise.then(function(){r.success({title:"List updated!",msg:c.list.name?c.list.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","list"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.list={},c.listVoiceDispositions={count:0,rows:[]},c.selectedListVoiceDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.list=e,c.query.id=c.list.id,c.query.ListId=c.list.id,c.getListVoiceDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the voiceDisposition?").htmlContent("<b>"+(e.name||"voiceDisposition")+"</b> will be deleted.").ariaLabel("delete voiceDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getListVoiceDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.cmList.getDispositions(c.query,p).$promise},c.createOrEditListVoiceDisposition=function(e,t){o.show({controller:"CreateOrEditVoiceDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:c.list,voiceDisposition:t,voiceDispositions:c.listVoiceDispositions.rows,license:null,setting:null}})},c.exportSelectedListVoiceDispositions=function(){var e=angular.copy(c.selectedListVoiceDispositions);return c.selectedListVoiceDispositions=[],e},c.deleteListVoiceDisposition=g,c.deleteSelectedListVoiceDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected voiceDispositions?").htmlContent("<b>"+c.selectedListVoiceDispositions.length+" selected</b> will be deleted.").ariaLabel("delete voiceDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedListVoiceDispositions.forEach(function(e){g(e)}),c.selectedListVoiceDispositions=[]})};var m=!0,u=1;function p(e){c.listVoiceDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.listVoiceDispositions.rows,{id:e.id}),c.listVoiceDispositions.count-=1,c.listVoiceDispositions.rows.length||c.getListVoiceDispositions(),r.success({title:"VoiceDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getListVoiceDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListVoiceDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="CONTACTMANAGER.EDIT_VOICEDISPOSITION",u.voiceDisposition=angular.copy(r),u.voiceDispositions=s,u.newVoiceDisposition=!1,u.voiceDisposition||(u.voiceDisposition={},u.title="CONTACTMANAGER.NEW_VOICEDISPOSITION",u.newVoiceDisposition=!0),t.params.id&&(u.voiceDisposition.ListId=t.params.id),u.addNewVoiceDisposition=function(){u.errors=[],l.disposition.save(u.voiceDisposition).$promise.then(function(e){u.voiceDispositions.unshift(e.toJSON()),o.success({title:"VoiceDisposition properly created",msg:u.voiceDisposition.name?u.voiceDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoiceDisposition=function(){u.errors=[],l.disposition.update({id:u.voiceDisposition.id},u.voiceDisposition).$promise.then(function(e){var t=_.find(u.voiceDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VoiceDisposition properly saved!",msg:u.voiceDisposition.name?u.voiceDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoiceDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voiceDisposition will be deleted.").ariaLabel("Delete VoiceDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.voiceDisposition.id}).$promise.then(function(){_.remove(u.voiceDispositions,{id:u.voiceDisposition.id}),o.success({title:"VoiceDisposition properly deleted!",msg:(u.voiceDisposition.name||"voiceDisposition")+" has been deleted!"}),p(u.voiceDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voiceDispositions","voiceDisposition","api","Auth","license","setting"],angular.module("app.contactmanager").controller("CreateOrEditVoiceDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.lists=r||{count:0,rows:[]},v.table="lists",v.listOrder="",v.listOrderAsc=null,v.selectedLists=[],v.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.contactmanager.lists.edit",{id:e.id,list:e})},v.gotocontactsgoto=function(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})},v.exportcsvcontactsexport=function(i,e){return l.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var t=[e.buffer],n=new Blob(t,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(n)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else c.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},v.agentadddialog=function(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:v.lists?v.lists.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getLists=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cmList.get(v.query,f).$promise},v.createOrEditList=function(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:v.lists.rows,license:v.license,setting:v.setting}})},v.deleteList=A,v.exportSelectedLists=function(){var e=angular.copy(v.selectedLists);return v.selectedLists=[],e},v.deleteSelectedLists=function(e){var t=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+v.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedLists.forEach(function(e){A(e)}),v.selectedLists=[]})},v.deselectLists=function(){v.selectedLists=[]},v.selectAllLists=function(){v.selectedLists=v.lists.rows};var h=!0,b=1;function f(e){v.lists=e||{count:0,rows:[]}}function A(e){l.cmList.delete({id:e.id}).$promise.then(function(){_.remove(v.lists.rows,{id:e.id}),v.lists.count-=1,v.lists.rows.length||v.getLists(),c.success({title:"List deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","lists","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){var r=this;r.currentUser=o.getCurrentUser(),r.customDashboard={},r.voiceQueues=s&&s.count?s:{count:0,rows:[]},r.voiceQueuesSelected=s&&s.count?_.map(s.rows,"id"):[],r.interval=t(function(){},1e3),r.onChangeVoiceQueues=function(){for(var e=0;e<r.customDashboard.widgets.length;e+=1)r.customDashboard.widgets[e].voiceQueuesSelected=r.voiceQueuesSelected},r.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:r.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var t=_.find(r.voiceQueues.rows,{id:e.id});t&&_.merge(t,_.pick(e,_.keys(t)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return r.customDashboard=e,r.customDashboard.widgets=[],r.customDashboard.preview=!0,r.customDashboard.draggable={enabled:!1},r.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:r.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var t=0;t<e.rows.length;t+=1)e.rows[t].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[t].type+"/ms-widget-engine."+e.rows[t].type+".html",e.rows[t].voiceQueues=r.voiceQueues,e.rows[t].voiceQueuesSelected=r.voiceQueuesSelected,r.customDashboard.widgets.push(e.rows[t])}).catch(function(e){r.customDashboard=void 0}),n.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),r.interval&&t.cancel(r.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,n,a,s,i,t,l,o,r,d,c,m,u,p,g,v,h){var b=this;b.license=p,b.setting=g;function f(e){var t={};for(var n in b.tabs)b.tabs.hasOwnProperty(n)&&(t[n]=b.tabs[n],b.tabs[n].interaction&&(t[n].interaction=_.pick(b.tabs[n].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","closed","draft"])));a.localStorage.setItem("motion2.user:"+b.user.id,JSON.stringify({tabs:t,currentTab:b.currentTab})),A(e)}function A(e){if(_.isNil(e)||e&&"interaction"===e.type){var t={id:b.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],openchannel:[],chat:[]}};for(var n in b.tabs)b.tabs.hasOwnProperty(n)&&t.capacity.hasOwnProperty(b.tabs[n].channel)&&b.tabs[n].interaction&&!b.tabs[n].interaction.closed&&(t.capacity[b.tabs[n].channel]+=1,t.interaction[b.tabs[n].channel].push(b.tabs[n].interaction.id));if(!_.isEqual(b.agentCapacity,t.capacity))return b.agentCapacity=t.capacity,l.rpc.setAgentCapacity(t)}}function E(t){if(b.tabs[t.id]&&(function(e){if(e.channel&&e.interaction)l.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:b.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(b.tabs[t.id]),delete b.tabs[t.id],b.currentTab=0,f(t),"interaction"===t.type))return l[t.channel+"Interaction"].get({id:t.interaction.id}).$promise.then(function(e){return l.user["remove"+_.upperFirst(t.channel)+"Interactions"]({id:b.user.id,ids:[e.id]}).$promise}).catch(function(e){console.error(e)})}function y(e){e.id=_.random(1e10),e.openedAt=new Date,e.saved=!1,e.badges=0,b.tabs[e.id]=e,b.currentTab=e.id,f(e)}function S(t,n){var e={type:"interaction",title:t?t.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";default:return"icon-hangouts"}}(t),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"grey"}}(t),channel:t,interaction:n},a=_.find(b.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===n.id&&e.channel===t});a?b.currentTab=a.id:y(e)}function T(e){e&&e.uniqueid&&b.notifications[e.uniqueid]&&(r.clear(b.notifications[e.uniqueid]),delete b.notifications[e.uniqueid])}function C(e,t){return 0<=t&&(e.calls[t].disposedAt=new Date,o.removeAllListeners("voice_queue_channel:remove"),o.removeAllListeners("voice_outbound_channel:remove"),!0)}function x(){return function(e){if(404===e.status)r.warning({title:s.instant("DASHBOARDS.ATTENTION"),msg:s.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}b.detectBrowser=h.detectBrowser(),b.user=t.getCurrentUser(),b.currentTab=0,b.notifications={},b.tabs={},b.agentCapacity={},b.globalUserLists=d||{count:0,rows:[]},b.globalLists=c||{count:0,rows:[]},b.globalCompanies=m||{count:0,rows:[]},b.globalTags=u||{count:0,rows:[]},b.onContactManager=function(t){var e={ListId:t.ListId,limit:1,offset:0,sort:"-updatedAt"},n=!1,a=t.calleridname&&"<unknown>"!==t.calleridname?t.calleridname:t.calleridnum||t.uniqueid,i=t.calleridnum;_.isNil(t["xmd-contactid"])?_.isNil(t.routeId)?e.phone=t.calleridnum:(e.phone=t.destcalleridnum,a=t.destcalleridname&&"<unknown>"!==t.destcalleridname?t.destcalleridname:t.destcalleridnum||t.uniqueid,i=t.destcalleridnum):(e.id=t["xmd-contactid"],n=!0,_.isNil(t["xmd-listid"])||parseInt(t["xmd-listid"],10)===t.ListId||t["xmd-contactid2"]&&(e.id=t["xmd-contactid2"]));return l.cmContact.get(e).$promise.then(function(e){n?e&&b.addContactTab(e,t):e.count&&e.rows[0]?b.addContactTab(e.rows[0],t):b.addContactTab({firstName:a,ListId:t.ListId,phone:i},t)}).catch(x())},b.onJscripty=function(n){return l.jscriptyProject.get({id:n.ProjectId}).$promise.then(function(t){if(t){if(!_.isUndefined(n["xmd-contactid"]))return l.cmContact.get({id:n["xmd-contactid"]}).$promise.then(function(e){try{t.formData=Mustache.render(t.formData,_.merge(n,{user:b.user,contact:e}))}catch(e){console.error(e)}y({type:"jscripty",title:t.name,icon:"icon-script",color:"grey",project:t,call:n,contact:e})}).catch(x());try{t.formData=Mustache.render(t.formData,_.merge(n,{user:b.user}))}catch(e){console.error(e)}y({type:"jscripty",title:t.name,icon:"icon-script",color:"grey",project:t,call:n})}}).catch(x())},b.onBot=function(t){var n=t.calleridname&&"<unknown>"!==t.calleridname?t.calleridname:t.calleridnum,a=t.calleridnum;return l.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:t.uniqueid}).$promise.then(function(e){e.count&&y({type:"bot",title:n+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:t.uniqueid}})})},b.onBrowserUrl=function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":a.open(e.uri);break;case"1":a.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;default:a.open(e.uri)}else a.open(e.uri)},b.onBrowserPopup=function(e){e&&e.html&&y({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})},b.onNotificationSave=function(e){if(e&&e.uniqueid){n=e,v.isSupported()?v.requestPermission().then(function(){var e,t;t={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=n).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},v.show(e.title,t)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var t=b.alreadyExistsTab(e);if(t){if(l[e.channel+"Message"])return b.currentTab!==t.id&&(t.badges+=1),l[e.channel+"Message"].accept({id:e.id,UserId:b.user.id}).$promise.catch(x())}else r.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){b.notifications[e.uniqueid]=this.id},onAccept:function(){if(T(e),l[e.channel+"Message"])return l[e.channel+"Message"].accept({id:e.id,UserId:b.user.id,manual:!0}).$promise.then(function(e){S(e.channel,e.interaction),r.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(x())},onReject:function(){if(T(e),l[e.channel+"Message"])return l[e.channel+"Message"].reject({id:e.id,UserId:b.user.id}).$promise.then(function(e){r.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(x())}})}var n},b.onNotificationRemove=T,b.onVoiceChannelRemove=function(t){var e=b.currentTab?b.tabs[b.currentTab]:null;e||(e=_.find(b.tabs,{calls:[{uniqueid:t.uniqueid}]}));var n=_.findLastIndex(e.calls,function(e){return e.uniqueid===t.uniqueid});if(!C(e,n)){var a=_.find(b.tabs,{calls:[{uniqueid:t.uniqueid}]});if(a){var i=_.findLastIndex(a.calls,function(e){return e.uniqueid===t.uniqueid});C(a,i)}}b.contact&&b.contact.id&&$timeout((o=t.uniqueid,s=b.contact.id,r=e,function(){var e=_.find(r.calls,function(e){return e.uniqueid===o});if(e)return l.voiceCallReport.update({id:o,ContactId:s}).$promise.catch(function(e){console.error(e)})}),1e3);var o,s,r},b.onClickTab=function(e){b.currentTab=e,f(b.tabs[e])},b.isActiveTab=function(e){return e===b.currentTab},b.alreadyExistsTab=function(t){return _.find(b.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==t.interactionId&&e.channel==t.channel})},b.addContactTab=function(t,n){var a={type:"contact",title:t?function(e){var t="";e&&(e.firstName||e.lastName?(e.firstName&&(t+=e.firstName+" "),e.lastName&&(t+=e.lastName)):e.phone&&(t=e.phone));return t}(t):s.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:t,userLists:d,lists:c,companies:m,tags:u,calls:n?[n]:[],autoCreate:n?n.autoCreate:0};if(n){if(n["xmd-cdrtype"]&&"dialer"===n["xmd-cdrtype"])n.answeredAt=n.agentcalledAt?moment(n.agentcalledAt,"YYYY-MM-DD HH:mm:ss").toDate():new Date;else if(n.uniqueid){var e=n.uniqueid.split(".")[0];n.answeredAt=e?new Date(1e3*parseInt(e)):new Date}(n.agentcompleteAt||n.endtime)&&(n.disposedAt=new Date)}if(t){var i=_.find(b.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==t.id:"contact"===e.type&&e.contact&&e.contact.phone==t.phone});if(i){if(n)if(i.calls){var o=_.find(i.calls,function(e){return e.uniqueid===n.uniqueid});o||i.calls.push(n)}else i.calls=[n];b.currentTab=i.id}else{if(t.ListId)return l.disposition.get({ListId:t.ListId}).$promise.then(function(e){return a.dispositions=e,l.cmList.getCustomFields({id:t.ListId}).$promise}).then(function(e){a.customFields=e}).catch(x()).finally(function(){y(a)});y(a)}}else y(a)},b.addInteractionTab=S,b.addTab=y,b.removeTab=E,b.updateLocalStorage=f,b.closeTab=function(e){var t=n.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved)return n.show(t).then(function(){"interaction"===e.type&&n.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(i.body),clickOutsideToClose:!0,locals:{user:b.user,channel:e.channel,interaction:e.interaction}}),E(e)}).catch(function(){"interaction"===e.type&&E(e)});if("contact"===e.type&&0<e.calls.length)return t._options.textContent="There is a call that hasn't been disposed yet.",n.show(t).then(function(){E(e)});E(e)}},o.on("trigger:contactmanager",b.onContactManager),o.on("trigger:jscripty",b.onJscripty),o.on("trigger:bot",b.onBot),o.on("trigger:browser:url",b.onBrowserUrl),o.on("trigger:browser:popup",b.onBrowserPopup),o.on("notification:save",b.onNotificationSave),o.on("notification:remove",b.onNotificationRemove),function(){var e=a.localStorage.getItem("motion2.user:"+b.user.id);if(e)try{e=JSON.parse(e),b.tabs=e.tabs?e.tabs:{},b.currentTab=e.currentTab?e.currentTab:0,A(b.tabs[b.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in b.notifications)b.notifications.hasOwnProperty(e)&&T({uniqueid:e});o.removeAllListeners("trigger:contactmanager"),o.removeAllListeners("trigger:jscripty"),o.removeAllListeners("trigger:browser:url"),o.removeAllListeners("trigger:browser:popup"),o.removeAllListeners("notification:save"),o.removeAllListeners("notification:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var b={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var t in e)b.hasOwnProperty(t)&&null!=e[t]&&(b[t]=e[t])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,t,p){var g=t.Notification||t.mozNotification||t.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var n=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?n.resolve(e):n.reject(e)}):g.requestPermission(function(e,t){p.GRANTED===e?n.resolve(e):n.reject(e)});return n.promise},show:function(e,t){if(t=t||{},!v()||(n=e,a=t,i=angular.isString(n),o=!a.onClick||angular.isFunction(a.onClick),!i||!o)||function(e){if(e||b.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(t.showOnPageHidden)||h()!==p.GRANTED)return;var n,a,i,o;var s=new g(e,t),r=t.duration||b.duration,l=void 0===t.autoClose?b.autoClose:t.autoClose;s.onclick=function(){t.onClick&&t.onClick(),t.focusOnclick&&window.focus(),t.closeOnClick&&s.close()},l&&(d=s,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return s},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function t(e,t){if(angular.isString(e)){for(var n=e.split("."),a=n[n.length-1],i=function(e){var t=l;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}(n),o=!1,s=0;s<i.length;s++)if(i[s]._id===a){o=i[s];break}o?(angular.extend(o,t),o.uisref=d(o)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=a,t._path=e,t.uisref=d(t),i.push(t))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(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}this.saveItem=t,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var t=l,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},this.$get=function(){var e={saveItem:t,getNavigation:function(e){if(e){for(var t=0;t<l.length;t++)if(l[t]._id===e)return[l[t]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(n){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,t){{if(a.setting=t,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return n.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(s,r,n,l,d,c,t,e,a,i){var m=this;function o(e){e&&e.count&&e.rows.length&&(m.journey=_.concat(m.journey,e.rows))}m.user=t.getCurrentUser(),m.detectBrowser=i.detectBrowser(),m.journey=[],m.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},m.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},m.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},m.hoppers={rows:[],count:0},m.finals={rows:[],count:0},m.histories={rows:[],count:0},m.addNewContact=function(){m.errors=[],d.cmContact.save(m.contact).$promise.then(function(e){return m.contact.id=e.id,m.newContact=!1,m.tab.title=e.firstName||e.phone,m.tab.contact=m.contact,d.user.addContacts({id:t.getCurrentUser().id,ids:[e.id]})}).then(function(){m.detailForm.$pristine=!0,m.customFieldsForm.$pristine=!0,c.success({title:"Contact properly created",msg:m.contact.firstName?m.contact.firstName+" has been created!":""})}).then(function(){return d.cmContact.setTags({id:m.contact.id,ids:m.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveContact=function(){m.errors=[],d.cmContact.update({id:m.contact.id},m.contact).$promise.then(function(e){return m.tab.title=e.firstName||e.phone,m.tab.contact=m.contact,l.$parent.vm.updateLocalStorage(),d.user.addContacts({id:t.getCurrentUser().id,ids:[e.id]})}).then(function(){return d.cmContact.setTags({id:m.contact.id,ids:m.tab.Tags}).$promise}).then(function(){m.detailForm.$pristine=!0,m.customFieldsForm.$pristine=!0,c.success({title:"Contact properly updated!",msg:m.contact.name?m.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getCustomFields=function(e){return d.cmList.getCustomFields({id:e}).$promise.then(function(e){m.tab.customFields=e}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.call=l.$parent.vm.call,m.disposeCall=function(e,t){if(m.newContact)return void c.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});s.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(r.body),targetEvent:t,clickOutsideToClose:!1,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null"})}]},locals:{dispositions:m.tab.dispositions,contact:m.contact,call:t}}).then(function(e){e&&("BLACKLIST"===e?c.success({title:a.instant("DASHBOARDS.INFO"),msg:a.instant("DASHBOARDS.CALL_DISPOSED")+" "+e}):"RECALLME"===e||"RESCHEDULE"===e||c.success({title:a.instant("DASHBOARDS.INFO"),msg:a.instant("DASHBOARDS.CALL_SAVED")})),_.remove(m.tab.calls,function(e){return e.uniqueid==t.uniqueid})})},m.duplicateContact=function(e){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:m.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},m.mergeContact=function(e){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:m.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var t in l.$parent.$parent.$parent.vm.tabs)if(l.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var n=l.$parent.$parent.$parent.vm.tabs[t];n&&n.contact&&(e.from&&e.from.id&&e.from.id===n.contact.id&&l.$parent.$parent.$parent.vm.removeTab(n),e.to&&e.to.id&&e.to.id===n.contact.id&&l.$parent.$parent.$parent.vm.removeTab(n))}e.new&&l.$parent.$parent.$parent.vm.addContactTab(e.new)}})},m.getDateFromString=function(e){return null===e?void 0:new Date(e)},m.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:m.contact,user:m.user})}catch(e){console.error(e)}try{l.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:m.contact})}catch(e){c.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},m.getHoppers=function(){m.contact&&m.contact.id&&(m.queryHopper.ContactId=m.contact.id,m.queryHopper.offset=(m.queryHopper.page-1)*m.queryHopper.limit,m.promise=d.cmHopper.get(m.queryHopper,g("hoppers")).$promise)},m.getFinals=function(){m.contact&&m.contact.id&&(m.queryFinal.ContactId=m.contact.id,m.queryFinal.offset=(m.queryFinal.page-1)*m.queryFinal.limit,m.promise=d.cmHopperFinal.get(m.queryFinal,g("finals")).$promise)},m.getHistories=function(){m.contact&&m.contact.id&&(m.queryHistory.ContactId=m.contact.id,m.queryHistory.offset=(m.queryHistory.page-1)*m.queryHistory.limit,m.promise=d.cmHopperHistory.get(m.queryHistory,g("histories")).$promise)},m.getJscriptyProjects=function(){d.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){m.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.jscripty.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscripty.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getMailAccounts=function(){d.user.getMailAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.mailAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.mail.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mail.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getFaxAccounts=function(){d.user.getFaxAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.faxAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.fax.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.fax.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getSmsAccounts=function(){d.user.getSmsAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.smsAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.sms.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sms.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getOpenchannelAccounts=function(){d.user.getOpenchannelAccounts({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.openchannelAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.sms.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannel.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getChatWebsites=function(){d.user.getChatWebsites({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.chatAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.chatAccounts.account"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatAccounts.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getLists=function(){d.user.getLists({id:m.user.id,nolimit:!0}).$promise.then(function(e){m.lists=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.cm.lists"}];for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cm.lists",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.composeInteraction=function(e,i,t,n){var o=i.toLowerCase();s.show({controller:"Compose"+i+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose"+i+"/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{account:t,message:{to:"mail"==o?n:n.split(",")},type:"new",interaction:{Contact:m.contact}},fullscreen:!0}).then(function(a){return d[o+"Account"].send({id:t.id},a).$promise.then(function(e){if("Mail"===i){var t=e;if(t&&t.Messages&&t.Messages.length){if(a.attachments&&a.attachments.length)for(var n=0;n<a.attachments.length;n+=1)d.attachment.update({id:a.attachments[n].id},{MailMessageId:_.head(t.Messages).id});c.success({title:"Message properly sent!",msg:"Message has been sent!"}),t.closed?(t.disposition=null,s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!0,locals:{user:m.user,channel:"mail",interaction:t}})):l.$parent.vm.addInteractionTab("mail",t)}}else c.success({title:"Message properly sent!",msg:"Message has been sent!"}),l.$parent.vm.addInteractionTab(o,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else"fax"===o?c.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):c.error({title:e.status?"API:"+e.status+" - "+e.statusText:i.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.init=function(e,t){m.tab=e,l.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){m.tab.saved=e[0]&&e[1]}),m.license=t,m.contact=m.tab.contact,m.newContact=!1,m.currentTab=0,m.contact&&m.contact.id?(d.user.addContacts({id:m.user.id,ids:[m.contact.id]}),m.contact.ListId&&(m.tab.userLists.rows=_.unionBy(m.tab.userLists.rows,_.filter(m.tab.lists.rows,{id:m.contact.ListId}),"id"),m.list=_.find(m.tab.userLists.rows,{id:m.contact.ListId})),m.getHoppers(),m.getFinals(),m.getHistories(),m.getMailAccounts(),m.getFaxAccounts(),m.getSmsAccounts(),m.getOpenchannelAccounts(),m.getChatWebsites(),m.getLists()):(m.newContact=!0,e.autoCreate&&(console.log("autoCreate"),m.addNewContact()));d.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){m.users=e||{count:0,rows:[]},m.usersMap=_.mapValues(_.keyBy(m.users.rows,"id"),"fullname")}).then(function(){if(m.contact&&m.contact.id)return d.cmContact.getTags({id:m.contact.id}).$promise}).then(function(e){e&&(m.tab.Tags=_.map(e.rows,"id"))}).then(function(e){var t=["mail","chat","sms","openchannel","fax"];if(e&&e.id){for(var n=0;n<t.length;n++)d[t[n]+"Interaction"].get({ContactId:e.id,includeAll:!0}).$promise.then(o);d.voiceCallReport.get({ContactId:e.id,includeAll:!0}).$promise.then(o).catch(function(e){console.error(e)})}}(m.contact))},m.hasPermission=function(e){return t.hasPermission(e)},m.openInteraction=function(e,t){try{if(t.MailAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("mail",t);if(t.ChatWebsiteId)return l.$parent.$parent.$parent.vm.addInteractionTab("chat",t);if(t.SmsAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("sms",t);if(t.OpenchannelAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("openchannel",t);if(t.FaxAccountId)return l.$parent.$parent.$parent.vm.addInteractionTab("fax",t)}catch(e){c.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},m.getColorByItem=function(e){var t="";e.FaxAccountId?t="fax":e.OpenchannelAccountId?t="openchannel":e.SmsAccountId?t="sms":e.MailAccountId?t="mail":e.ChatWebsiteId?t="chat":e.amaflags&&(t="voice");return function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"blue-A700"}}(t)},m.isMyAccount=function(e){{if(e.FaxAccountId)return _.includes(_.map(m.faxAccounts?m.faxAccounts.rows:[],"id"),e.FaxAccountId);if(e.OpenchannelAccountId)return _.includes(_.map(m.openchannelAccounts?m.openchannelAccounts.rows:[],"id"),e.OpenchannelAccountId);if(e.SmsAccountId)return _.includes(_.map(m.smsAccounts?m.smsAccounts.rows:[],"id"),e.SmsAccountId);if(e.MailAccountId)return _.includes(_.map(m.mailAccounts?m.mailAccounts.rows:[],"id"),e.MailAccountId);if(e.ChatWebsiteId)return _.includes(_.map(m.chatAccounts?m.chatAccounts.rows:[],"id"),e.ChatWebsiteId);if(e.amaflags)return!0}return!1},e.on("voice_queue_channel:remove",l.$parent.vm.onVoiceChannelRemove),e.on("voice_outbound_channel:remove",l.$parent.vm.onVoiceChannelRemove),m.getJscriptyProjects(),l.$watch("currentTab",function(e,t){1===m.currentTab&&(m.getHoppers(),m.getFinals(),m.getHistories())});var u=!0,p=1;function g(t){return function(e){m[t]=e||{count:0,rows:[]}}}l.$watch("queryHopper.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.queryHopper.page),e!==t&&(m.queryHopper.page=1),e||(m.queryHopper.page=p),m.getHoppers())}),l.$watch("queryFinal.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.queryFinal.page),e!==t&&(m.queryFinal.page=1),e||(m.queryFinal.page=p),m.getFinals())}),l.$watch("queryHistory.filter",function(e,t){u?n(function(){u=!1}):(t||(p=m.queryHistory.page),e!==t&&(m.queryHistory.page=1),e||(m.queryHistory.page=p),m.getHistories())}),l.$on("$destroy",function(){})}e.$inject=["$mdDialog","$document","$timeout","$scope","api","toasty","Auth","socket","$translate","msUtils"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(t,i,o,s,e,n,a,r,l,d){var c=this;function m(){var e=c.choice?c.choice.toLowerCase():void 0;return{id:c.call.uniqueid,disposition:c.choice,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?l.getCurrentUser().id:null,OwnerId:l.getCurrentUser().id}}c.choice=null,c.isReschedule=!1,c.recallme=!1,c.queueCampaigns={count:0,rows:[]},c.queueCampaign=void 0,c.dispositions=e,c.globalDispositions=n,c.contact=r,c.call=a,c.note=c.call.note||void 0,c.dialerCall=!1,c.hasBlackLists=!1,c.hopper={minDate:new Date,dateTime:new Date},c.call&&c.call.variables&&c.call.variables["xmd-voicequeueid"]?(c.dialerCall=!0,s.voiceQueue.getBlackLists({id:c.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(c.hasBlackLists=!0)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):s.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){c.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),c.saveDisposition=function(e){c.choice=_.isNil(e)?c.choice:e,c.call.note=c.note,s.voiceCallReport.update({id:c.call.uniqueid,userDisposition:c.choice,note:c.note,UserId:l.getCurrentUser().id,ContactId:c.contact.id}).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.voiceRecording.get({uniqueid:c.call.uniqueid}).$promise.then(function(e){if(e)for(var t=0;t<e.rows.length;t+=1)s.voiceRecording.update({id:e.rows[t].id,userDisposition:c.choice}).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.dialerCall&&(s.cmHopperFinal.update(m()).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmHopperHistory.update(m()).$promise.catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(c.choice))t.hide(c.choice?c.choice.toUpperCase():"");else switch(c.choice.toLowerCase()){case"blacklist":c.call&&c.call.variables&&c.call.variables["xmd-voicequeueid"]&&function(e){if(e)s.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var t=[];if(e&&0<e.count){for(var n=0;n<e.rows.length;n+=1){var a=angular.copy(c.contact);delete a.id,a.ListId=e.rows[n].id,t.push(s.cmContact.save(a).$promise)}return i.all(t)}o.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+c.choice}),c.choice=void 0}).then(function(e){e&&t.hide(c.choice?c.choice.toUpperCase():"")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),t.hide(c.choice?c.choice.toUpperCase():"")})}(c.call.variables["xmd-voicequeueid"]);break;case"reschedule":c.isReschedule=!0,c.recallme=!1;break;case"recallme":c.isReschedule=!0,c.recallme=!0;break;default:t.hide(c.choice?c.choice.toUpperCase():"")}},c.closeDialog=function(){t.cancel()},c.saveReschedule=function(){return c.disable=!0,s.cmHopper.save({phone:c.contact.phone,UserId:c.recallme?l.getCurrentUser().id:null,ContactId:c.contact.id,ListId:c.contact.ListId,VoiceQueueId:c.dialerCall?Number(c.call["xmd-voicequeueid"]):c.queueCampaign?c.queueCampaign.id:null,scheduledat:moment(c.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:c.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){c.dialerCall&&s.cmHopperFinal.update({id:c.call.uniqueid,rescheduled:!0,rescheduledat:moment(c.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){o.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){t.hide(c.choice?c.choice.toUpperCase():"")}).finally(function(){c.disable=!1,t.hide(c.choice?c.choice.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,s.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,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"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){s.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){o.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,t){var n=t(function(){},999);e.$on("$destroy",function(){n&&(t.cancel(n),n=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c){var m=this,u=!0;function p(){var e=i.localStorage.getItem("motion2.home.abandoned.bull.contacts:"+m.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(m.query=_.merge(e.query,_.omit(m.query,["sort","limit","page"])),m.query=_.omit(m.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){m.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){m.queues=e||{count:0,rows:[]},m.queuesMap=_.mapValues(_.keyBy(m.queues.rows,"name"),"name"),m.defaultQueues=m.queues.rows?_.map(m.queues.rows,"name").join(","):void 0}).catch(function(e){console.error(e)}).finally(function(){m.getContacts()})}function g(e){m.contacts=e||{count:0,rows:[]},u=!1,m.refresh=!0}m.showTooltip=!1,m.refresh=!0,m.disable=[],m.disposition={count:0,rows:[]},m.currentUser=r.getCurrentUser(),m.localizationMap=c,m.pickerModel={dateStart:null,dateEnd:null},m.queues={},m.contacts={count:0,rows:[]},m.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},m.clearAll=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel={dateStart:null,dateEnd:null},m.getContacts()},m.getContacts=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&!u&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd);m.query.queue=m.query.queue||m.defaultQueues,m.query.offset=(m.query.page-1)*m.query.limit,i.localStorage.setItem("motion2.home.abandoned.bull.contacts:"+m.currentUser.id,JSON.stringify({query:_.omit(m.query,"queue")})),m.promise=s.voiceQueueReport.getVoiceQueuesReport(m.query,g).$promise},m.refreshContacts=function(){m.showTooltip=!1,m.getContacts()},m.onInit=p,m.reserved=function(e,t){e&&(m.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?m.currentUser.name:null,assigned:e.assigned,disposition:t||null}).$promise.catch(function(e){console.log(e)}).finally(function(){m.disable[e.id]=!1}))},m.onSavevoiceQueueReport=function(e){m.queuesMap&&"outbound"===e.type&&m.queuesMap[e.queue]&&(m.showTooltip=!0)},m.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(m.contacts.rows,["id",e.id]);0<=t&&_.merge(m.contacts.rows[t],e)}},m.call=e.$parent.$parent.$parent.$parent.vm.call,m.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,m.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,m.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",m.onSavevoiceQueueReport),l.onWithoutApply("voiceQueueReport:update",m.onUpdatevoiceQueueReport),p();var v=!0,h=1;e.$watch("vm_bull.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=h),m.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c){var m=this,u=!0;function p(){var e=i.localStorage.getItem("motion2.home.abandoned.voice.contacts:"+m.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(m.query=_.merge(e.query,_.omit(m.query,["sort","limit","page"])),m.query=_.omit(m.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){m.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){m.queues=e||{count:0,rows:[]},m.queuesMap=_.mapValues(_.keyBy(m.queues.rows,"name"),"name"),m.defaultQueues=m.queues.rows?_.map(m.queues.rows,"name").join(","):void 0}).catch(function(e){console.error(e)}).finally(function(){m.getContacts()})}function g(e){m.contacts=e||{count:0,rows:[]},u=!1,m.refresh=!0}m.showTooltip=!1,m.refresh=!0,m.disable=[],m.disposition={count:0,rows:[]},m.currentUser=r.getCurrentUser(),m.localizationMap=c,m.pickerModel={dateStart:null,dateEnd:null},m.queues={},m.contacts={count:0,rows:[]},m.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},m.clearAll=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel={dateStart:null,dateEnd:null},m.getContacts()},m.getContacts=function(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&!u&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd);m.query.queue=m.query.queue||m.defaultQueues,m.query.offset=(m.query.page-1)*m.query.limit,i.localStorage.setItem("motion2.home.abandoned.voice.contacts:"+m.currentUser.id,JSON.stringify({query:_.omit(m.query,"queue")})),m.promise=s.voiceQueueReport.getVoiceQueuesReport(m.query,g).$promise},m.refreshContacts=function(){m.showTooltip=!1,m.getContacts()},m.onInit=p,m.reserved=function(e,t){e&&(m.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?m.currentUser.name:null,assigned:e.assigned,disposition:t||null}).$promise.catch(function(e){console.log(e)}).finally(function(){m.disable[e.id]=!1}))},m.onSavevoiceQueueReport=function(e){m.queuesMap&&"inbound"===e.type&&m.queuesMap[e.queue]&&(m.showTooltip=!0)},m.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(m.contacts.rows,["id",e.id]);0<=t&&_.merge(m.contacts.rows[t],e)}},m.call=e.$parent.$parent.$parent.$parent.vm.call,m.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,m.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,m.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",m.onSavevoiceQueueReport),l.onWithoutApply("voiceQueueReport:update",m.onUpdatevoiceQueueReport),p();var v=!0,h=1;e.$watch("vm_voice.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=h),m.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(t,e,a,n,i,o,s){var r=this;r.user=i.getCurrentUser(),r.license={},r.plugin={},r.setting={},r.sidebar="dashboard",r.navigation=s.getNavigation(),r.addContactTab=t.$parent.vm.addContactTab,r.addInteractionTab=t.$parent.vm.addInteractionTab,r.init=function(e,t){r.license=e,r.setting=t;var n=a.localStorage.getItem("motion2.home:"+r.user.id);if(n)try{n=JSON.parse(n),r.sidebar=n.currentSidebarTab?n.currentSidebarTab:"dashboard"}catch(e){console.error(e),r.sidebar="dashboard"}},r.changeSidebarTab=function(e){r.sidebar=e.view,"plugin"===r.sidebar&&(r.plugin=e.stateParams,r.pluginId=e.id,t.$broadcast("pluginUpdated",{plugin:r.plugin}));a.localStorage.setItem("motion2.home:"+r.user.id,JSON.stringify({currentSidebarTab:e.view}))},r.hasPermission=function(e){return i.hasPermission(e)}}e.$inject=["$scope","$timeout","$window","api","Auth","socket","msNavigationAgentService"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(n,a,e,t,i,o,s,r,l,d){var c=this;function m(e){c.chatInteractions=e||{count:0,rows:[]};for(var t=0;t<c.chatInteractions.rows.length;t+=1)p(c.chatInteractions.rows[t])}function u(){c.query.dateStart=void 0,c.query.dateEnd=void 0,c.pickerModel.dateStart&&(c.query.dateStart=c.pickerModel.dateStart,c.query.dateEnd=c.pickerModel.dateEnd),c.chatAccounts.rows.length?(_.includes(_.map(c.chatAccounts.rows,"id"),c.query.account)||(c.query.account=null),c.query.ChatWebsiteId=c.query.account||_.map(c.chatAccounts.rows,"id").join()):c.query.ChatWebsiteId=-1,c.query.offset=(c.query.page-1)*c.query.limit,i.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify({query:c.query})),c.promise=s.chatInteraction.get(c.query,m).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}c.user=r.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,t){n.$parent.vm.addInteractionTab("chat",t)},c.downloadChatInteraction=function(e,o,t){s.chatInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="chat-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.getContactLabel=function(e){if(e.Contact){var t="";t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||"");var n=e.Account?e.Account.mapKey:void 0;return t+=n&&e.Contact[n]?" <"+e.Contact[n]+">":""}return o.instant("DASHBOARDS.UNKNOWN")},c.getUserLabel=function(e){if(e.UserId)return e.UserId===r.getCurrentUser().id?o.instant("DASHBOARDS.ME"):c.usersByKey[e.UserId].fullname+" <"+c.usersByKey[e.UserId].internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.clearAll=function(){c.calendarModel={dateStart:null},c.pickerModel={dateStart:null},c.serviceModel={dateStart:null},c.getChatInteractions()},c.onInit=function(e,t){return c.license=e,c.setting=t,s.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},s.tag.get().$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){return s.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){c.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),c.query=_.omit(c.query,"filter"),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0)}catch(e){console.error(e)}l.on("chatInteraction:save",c.onChatInteractionSave),l.on("chatInteraction:update",c.onChatInteractionSave),l.on("chatInteractionTags:save",c.onChatInteractionTagsSave),l.on("chatMessage:save",c.onChatMessageSave),l.on("chatMessage:update",c.onChatMessageSave),l.on("user_has_chat_interactions:save",c.onChatInteractionOpen),l.on("user_has_chat_interactions:remove",c.onChatInteractionClose),c.getChatInteractions()})},c.onChatInteractionSave=function(e){if(e){var t=_.find(c.chatInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},c.onChatInteractionTagsSave=function(e){if(e){var t=_.find(c.chatInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},c.onChatMessageSave=function(e){if(e&&!e.secret){var t=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},c.onChatInteractionOpen=function(e){var t=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},c.onChatInteractionClose=function(e){var t=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},c.localizationMap={Today:o.instant("DASHBOARDS.TODAY"),Yesterday:o.instant("DASHBOARDS.YESTERDAY"),"This Week":o.instant("DASHBOARDS.THIS_WEEK"),"Last Week":o.instant("DASHBOARDS.LAST_WEEK"),"This Month":o.instant("DASHBOARDS.THIS_MONTH"),"Last Month":o.instant("DASHBOARDS.LAST_MONTH"),"This Year":o.instant("DASHBOARDS.THIS_YEAR"),"Last Year":o.instant("DASHBOARDS.LAST_YEAR"),January:o.instant("DASHBOARDS.JANUARY"),February:o.instant("DASHBOARDS.FEBRUARY"),March:o.instant("DASHBOARDS.MARCH"),April:o.instant("DASHBOARDS.APRIL"),May:o.instant("DASHBOARDS.MAY"),June:o.instant("DASHBOARDS.JUNE"),July:o.instant("DASHBOARDS.JULY"),August:o.instant("DASHBOARDS.AUGUST"),September:o.instant("DASHBOARDS.SEPTEMBER"),October:o.instant("DASHBOARDS.OCTOBER"),November:o.instant("DASHBOARDS.NOVEMBER"),December:o.instant("DASHBOARDS.DECEMBER"),Mon:o.instant("DASHBOARDS.MON"),Tue:o.instant("DASHBOARDS.TUE"),Wed:o.instant("DASHBOARDS.WED"),Thu:o.instant("DASHBOARDS.THU"),Fri:o.instant("DASHBOARDS.FRI"),Sat:o.instant("DASHBOARDS.SAT"),Sun:o.instant("DASHBOARDS.SUN")},c.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=v),c.getChatInteractions())}),n.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(n,t,a,i,e,o,s,r){var l=this;l.currentUser=o.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.getContacts=function(){l.query.ListId=l.getListId(),l.query.offset=(l.query.page-1)*l.query.limit,r.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify({query:l.query})),l.promise=s.cmContact.get(l.query,m).$promise},l.refreshContacts=function(){l.getContacts()},l.mergeContact=function(e,t){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,t){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return s.cmContact.get({id:e}).$promise.then(function(e){t.$parent.vm.addContactTab(e)})},l.call=t.$parent.vm.call,l.onInit=u,l.getListId=function(){var e=_.toString(l.query.ListId);if(e){var t=e.split(","),n=l.defaultLists.split(",");_.isEqual(t,n)||(1<t.length?e=l.defaultLists:_.indexOf(n,t[0])<0&&(e=l.defaultLists))}else e=l.defaultLists;return e},u();var d=!0,c=1;function m(e){l.contacts=e||{count:0,rows:[]}}function u(){var e=r.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(l.query=_.merge(l.query,e.query),l.query=_.omit(l.query,"filter")),s.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),l.defaultLists=l.lists.rows?_.map(l.lists.rows,"id").join(","):void 0,s.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){l.getContacts()})}t.$watch("vm.query.filter",function(e,t){d?a(function(){d=!1}):(t||(c=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=c),l.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,t){var n=t(function(){},999);e.$on("$destroy",function(){n&&(t.cancel(n),n=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,t){c.rpcVoiceQueues[t]&&(c.voiceQueues[t].waiting=c.rpcVoiceQueues[t].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),s.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},s.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,t){c.rpcChatQueues[t]&&(c.chatQueues[t].waiting=c.rpcChatQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("chatQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),s.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,t){c.rpcFaxQueues[t]&&(c.faxQueues[t].waiting=c.rpcFaxQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("faxQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),s.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,t){c.rpcMailQueues[t]&&(c.mailQueues[t].waiting=c.rpcMailQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("mailQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),s.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,t){c.rpcOpenchannelQueues[t]&&(c.openchannelQueues[t].waiting=c.rpcOpenchannelQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),s.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,t){c.rpcSmsQueues[t]&&(c.smsQueues[t].waiting=c.rpcSmsQueues[t].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("smsQueue:update",c.onUpdateVoiceQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),s.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return s.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,s.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var t=_.filter(e.rows,function(e){return _.includes(c.myQueues,{id:e.queue_id})});e.rows=t,e.count=t.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,b=1;e.$watch("vm_dc.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=b),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,t){c.rpcVoiceQueues[t]&&(c.voiceQueues[t].waiting=c.rpcVoiceQueues[t].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=s.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),s.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,s.rpc.getVoiceQueues().$promise}).then(function(e){for(var t=e.rows,n=_.keyBy(t,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=n[i.id]}return s.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(n,a,i,o,s,r,l,t,d,c){var m=this;function e(e){m.faxInteractions=e||{count:0,rows:[]};for(var t=0;t<m.faxInteractions.rows.length;t+=1)p(m.faxInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.faxAccounts.rows.length?(_.includes(_.map(m.faxAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.FaxAccountId=m.query.account||_.map(m.faxAccounts.rows,"id").join()):m.query.FaxAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.faxInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getFaxInteractions=u,m.showFaxInteraction=function(e,t){n.$parent.vm.addInteractionTab("fax",t)},m.downloadFaxInteraction=function(e,o,t){l.faxInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="fax-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),t+=" <"+(e.Contact.fax||"unknown")+">"}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getFaxInteractions()},m.composeFaxInteraction=function(e,t){i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:t.id},e).$promise.then(function(e){c.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("faxInteraction:save",m.onFaxInteractionSave),d.on("faxInteraction:update",m.onFaxInteractionSave),d.on("faxInteractionTags:save",m.onFaxInteractionTagsSave),d.on("faxMessage:save",m.onFaxMessageSave),d.on("faxMessage:update",m.onFaxMessageSave),d.on("user_has_fax_interactions:save",m.onFaxInteractionOpen),d.on("user_has_fax_interactions:remove",m.onFaxInteractionClose),m.getFaxInteractions()})},m.onFaxInteractionSave=function(e){if(e){var t=_.find(m.faxInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onFaxInteractionTagsSave=function(e){if(e){var t=_.find(m.faxInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onFaxMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onFaxInteractionOpen=function(e){var t=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onFaxInteractionClose=function(e){var t=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getFaxInteractions())}),n.$on("$destroy",function(){d.removeAllListeners("faxMessage:save"),d.removeAllListeners("faxMessage:update"),d.removeAllListeners("faxInteraction:save"),d.removeAllListeners("faxInteractionTags:save"),d.removeAllListeners("faxInteraction:update"),d.removeAllListeners("user_has_fax_interactions:save"),d.removeAllListeners("user_has_fax_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(a,n,i,o,s,r,l,t,d,c){var m=this;function e(e){m.mailInteractions=e||{count:0,rows:[]};for(var t=0;t<m.mailInteractions.rows.length;t+=1)p(m.mailInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.mailAccounts.rows.length?(_.includes(_.map(m.mailAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.MailAccountId=m.query.account||_.map(m.mailAccounts.rows,"id").join()):m.query.MailAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.mail:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.mailInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.mailInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getMailInteractions=u,m.showMailInteraction=function(e,t){a.$parent.vm.addInteractionTab("mail",t)},m.downloadMailInteraction=function(e,o,t){l.mailInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="mail-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),e.to&&e.Account&&e.to.indexOf(e.Account.email)<0?t=e.to:t+=" <"+(e.Contact.email||"unknown")+">",t}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getMailInteractions()},m.composeMailInteraction=function(e,t){i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(n){return l.mailAccount.send({id:t.id},n).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(n.attachments&&n.attachments.length)for(var t=0;t<n.attachments.length;t+=1)l.attachment.update({id:n.attachments[t].id},{MailMessageId:_.head(e.Messages).id});c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed?(e.disposition=null,i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!0,locals:{user:m.user,channel:"mail",interaction:e}})):a.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("mailAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.mailAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).then(function(){return l.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){m.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.mail:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("mailInteraction:save",m.onMailInteractionSave),d.on("mailInteraction:update",m.onMailInteractionSave),d.on("mailInteractionTags:save",m.onMailInteractionTagsSave),d.on("mailMessage:save",m.onMailMessageSave),d.on("mailMessage:update",m.onMailMessageSave),d.on("user_has_mail_interactions:save",m.onMailInteractionOpen),d.on("user_has_mail_interactions:remove",m.onMailInteractionClose),m.getMailInteractions()})},m.onMailInteractionSave=function(e){if(e){var t=_.find(m.mailInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onMailInteractionTagsSave=function(e){if(e){var t=_.find(m.mailInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onMailMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.mailInteractions.rows,{id:e.MailInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onMailInteractionOpen=function(e){var t=_.find(m.mailInteractions.rows,{id:e.MailInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onMailInteractionClose=function(e){var t=_.find(m.mailInteractions.rows,{id:e.MailInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;a.$watch("vm.query.filter",function(e,t){g?n(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getMailInteractions())}),a.$on("$destroy",function(){d.removeAllListeners("mailMessage:save"),d.removeAllListeners("mailMessage:update"),d.removeAllListeners("mailInteraction:save"),d.removeAllListeners("mailInteractionTags:save"),d.removeAllListeners("mailInteraction:update"),d.removeAllListeners("user_has_mail_interactions:save"),d.removeAllListeners("user_has_mail_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(n,a,i,o,e,t,s){var r=this;r.currentUser=e.getCurrentUser(),r.lists={},r.contacts={count:0,rows:[]},r.tags={count:0,rows:[]},r.query={includeAll:!0,id:r.currentUser.id,sort:"-updatedAt",limit:10,page:1},r.getContacts=function(){r.query.ListId=r.getListId(),r.query.offset=(r.query.page-1)*r.query.limit,s.localStorage.setItem("motion2.home.mycontacts:"+r.currentUser.id,JSON.stringify({query:r.query})),r.promise=t.user.getContacts(r.query,c).$promise},r.refreshContacts=function(){r.getContacts()},r.mergeContact=function(e,t){o.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:r.currentUser.id,fields:"id,name"})}]},locals:{contacts:r.contacts.rows}})},r.duplicateContact=function(e,t){o.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:t.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:r.currentUser.id,fields:"id,name"})}]},locals:{contacts:r.contacts.rows}})},r.openContact=function(e,t){a.$parent.vm.addContactTab(t)},r.call=a.$parent.vm.call,r.onInit=function(){var e=s.localStorage.getItem("motion2.home.mycontacts:"+r.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(r.query=_.omit(e.query,"filter"))}catch(e){console.error(e)}t.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return r.lists=e||{count:0,rows:[]},r.listsMap=_.keyBy(r.lists.rows,"id"),r.defaultLists=r.lists.rows?_.map(r.lists.rows,"id").join(","):void 0,t.tag.get().$promise}).then(function(e){r.tags=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){r.getContacts()})},r.getListId=function(){var e=_.toString(r.query.ListId);if(e){var t=e.split(","),n=r.defaultLists.split(",");_.isEqual(t,n)||(1<t.length?e=r.defaultLists:_.indexOf(n,t[0])<0&&(e=r.defaultLists))}else e=r.defaultLists;return e};var l=!0,d=1;function c(e){r.contacts=e||{count:0,rows:[]}}a.$watch("vm.query.filter",function(e,t){l?i(function(){l=!1}):(t||(d=r.query.page),e!==t&&(r.query.page=1),e||(r.query.page=d),r.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(n,a,i,o,s,r,l,t,d,c){var m=this;function e(e){m.openchannelInteractions=e||{count:0,rows:[]};for(var t=0;t<m.openchannelInteractions.rows.length;t+=1)p(m.openchannelInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.openchannelAccounts.rows.length?(_.includes(_.map(m.openchannelAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.OpenchannelAccountId=m.query.account||_.map(m.openchannelAccounts.rows,"id").join()):m.query.OpenchannelAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.openchannelInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getOpenchannelInteractions=u,m.showOpenchannelInteraction=function(e,t){n.$parent.vm.addInteractionTab("openchannel",t)},m.downloadOpenchannelInteraction=function(e,o,t){l.openchannelInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="openchannel-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),e.from&&(t=e.from),t}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getOpenchannelInteractions()},m.composeOpenchannelInteraction=function(e,t){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeOpenchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){return l.openchannelAccount.send({id:t.id},e).$promise.then(function(e){c.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("openchannelInteraction:save",m.onOpenchannelInteractionSave),d.on("openchannelInteraction:update",m.onOpenchannelInteractionSave),d.on("openchannelInteractionTags:save",m.onOpenchannelInteractionTagsSave),d.on("openchannelMessage:save",m.onOpenchannelMessageSave),d.on("openchannelMessage:update",m.onOpenchannelMessageSave),d.on("user_has_openchannel_interactions:save",m.onOpenchannelInteractionOpen),d.on("user_has_openchannel_interactions:remove",m.onOpenchannelInteractionClose),m.getOpenchannelInteractions()})},m.onOpenchannelInteractionSave=function(e){if(e){var t=_.find(m.openchannelInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onOpenchannelInteractionTagsSave=function(e){if(e){var t=_.find(m.openchannelInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onOpenchannelMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onOpenchannelInteractionOpen=function(e){var t=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onOpenchannelInteractionClose=function(e){var t=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getOpenchannelInteractions())}),n.$on("$destroy",function(){d.removeAllListeners("openchannelMessage:save"),d.removeAllListeners("openchannelMessage:update"),d.removeAllListeners("openchannelInteraction:save"),d.removeAllListeners("openchannelInteractionTags:save"),d.removeAllListeners("openchannelInteraction:update"),d.removeAllListeners("user_has_openchannel_interactions:save"),d.removeAllListeners("user_has_openchannel_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){var d=this;function c(e,t,n){d.license=e,d.setting=t,d.plugin=n}d.currentUser=s.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return o.trustAsResourceUrl(d.plugin.agentUrl)},c(),t.$on("pluginUpdated",function(e,t){d.plugin=t.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){p.voiceRecordings=e||{count:0,rows:[]}}p.currentUser=c.getCurrentUser(),p.voiceRecordings={},p.localizationMap=u,p.pickerModel={dateStart:null},p.table="voiceRecordings",p.query={UserId:p.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,UserId",sort:"-updatedAt",limit:10,page:1,type:null},p.downloadfile=function(i,e){return r.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var t=[e.buffer],n=new Blob(t,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(n)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.success=g,p.getVoiceRecordings=function(){p.query.dateStart=void 0,p.query.dateEnd=void 0,p.pickerModel.dateStart&&(p.query.dateStart=p.pickerModel.dateStart,p.query.dateEnd=p.pickerModel.dateEnd);p.query.offset=(p.query.page-1)*p.query.limit,t.localStorage.setItem("motion2.home.recordings:"+p.currentUser.id,JSON.stringify({query:p.query})),p.promise=r.voiceRecording.get(p.query,g).$promise},p.onInit=function(){var e=t.localStorage.getItem("motion2.home.recordings:"+p.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(p.query=_.omit(e.query,["filter","id"]),p.query.fields="createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,UserId",p.query.UserId=p.currentUser.id)}catch(e){console.error(e)}p.getVoiceRecordings()},p.clearAll=function(){p.pickerModel={dateStart:null},p.getVoiceRecordings()};var v=!0,h=1;e.$watch("vm.query.filter",function(e,t){v?s(function(){v=!1}):(t||(h=p.query.page),e!==t&&(p.query.page=1),e||(p.query.page=h),p.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","api","msUtils","toasty","Auth","$translate","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){var d=this;function c(e){d.scheduledCalls=e||{count:0,rows:[]}}d.currentUser=r.getCurrentUser(),d.priorities=["Lowest","Low","Medium","High","Highest"],d.localizationMap=l,d.pickerModel={dateStart:null},d.scheduledCalls={},d.query={id:d.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},d.queueCampaigns={rows:[],count:0},d.success=c,d.getScheduledCalls=function(){d.query.dateStart=void 0,d.query.dateEnd=void 0,d.pickerModel.dateStart&&(d.query.dateStart=d.pickerModel.dateStart,d.query.dateEnd=d.pickerModel.dateEnd);d.query.id=d.currentUser.id,d.query.includeAll=!0,d.query.offset=(d.query.page-1)*d.query.limit,t.localStorage.setItem("motion2.home.scheduled:"+d.currentUser.id,JSON.stringify({query:d.query})),d.promise=s.user.getScheduledCalls(d.query,c).$promise},d.onInit=function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+d.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(d.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){d.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}).finally(function(){d.getScheduledCalls()})},d.clearAll=function(){d.pickerModel={dateStart:null},d.getScheduledCalls()},d.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},d.createOrEditQueueCampaignHopper=function(e,t){a.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:t,hoppers:d.scheduledCalls.rows,license:null,setting:null}})},d.deleteConfirm=function(t,e){var n=a.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){var e;e=t,s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(d.scheduledCalls.rows,{id:e.id}),d.scheduledCalls.count-=1,d.scheduledCalls.rows.length||d.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var t=0;t<e.data.errors.length;t++)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:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var m=!0,u=1;e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=d.query.page),e!==t&&(d.query.page=1),e||(d.query.page=u),d.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(n,a,i,o,s,r,l,t,d,c){var m=this;function e(e){m.smsInteractions=e||{count:0,rows:[]};for(var t=0;t<m.smsInteractions.rows.length;t+=1)p(m.smsInteractions.rows[t])}function u(){m.query.dateStart=void 0,m.query.dateEnd=void 0,m.pickerModel.dateStart&&(m.query.dateStart=m.pickerModel.dateStart,m.query.dateEnd=m.pickerModel.dateEnd),m.smsAccounts.rows.length?(_.includes(_.map(m.smsAccounts.rows,"id"),m.query.account)||(m.query.account=null),m.query.SmsAccountId=m.query.account||_.map(m.smsAccounts.rows,"id").join()):m.query.SmsAccountId=-1,m.query.offset=(m.query.page-1)*m.query.limit,s.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify({query:m.query})),m.promise=l.smsInteraction.get(m.query,e).$promise}function p(e){e&&e.Messages?e.unread=_.filter(e.Messages||[],{direction:"in",read:!1}).length:e.unread=0}m.user=t.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null,account:null},m.success=e,m.getSmsInteractions=u,m.showSmsInteraction=function(e,t){n.$parent.vm.addInteractionTab("sms",t)},m.downloadSmsInteraction=function(e,o,t){l.smsInteraction.download({id:o.id,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="sms-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.getContactLabel=function(e){if(e.Contact){var t="";return t+=(e.Contact.firstName||"")+""+(e.Contact.lastName||""),t+=" <"+(e.Contact.mobile||"unknown")+">"}return r.instant("DASHBOARDS.UNKNOWN")},m.getUserLabel=function(e){if(e.UserId)return e.UserId===t.getCurrentUser().id?r.instant("DASHBOARDS.ME"):m.usersByKey[e.UserId].fullname+" <"+m.usersByKey[e.UserId].internal+">";return r.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return r.instant("DASHBOARDS.UNKNOWN")},m.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},m.clearAll=function(){m.calendarModel={dateStart:null},m.pickerModel={dateStart:null},m.serviceModel={dateStart:null},m.getSmsInteractions()},m.composeSmsInteraction=function(e,t){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:t,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){return l.smsAccount.send({id:t.id},e).$promise.then(function(e){c.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.onInit=function(e,t){return m.license=e,m.setting=t,l.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},l.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return l.user.get({nolimit:!0,fields:"id,fullname,userpic,internal"}).$promise}).then(function(e){m.usersByKey=_.keyBy(e.rows,"id")}).catch(function(e){console.error(e)}).finally(function(){var e=s.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),m.query=_.omit(m.query,"filter"),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0)}catch(e){console.error(e)}d.on("smsInteraction:save",m.onSmsInteractionSave),d.on("smsInteraction:update",m.onSmsInteractionSave),d.on("smsInteractionTags:save",m.onSmsInteractionTagsSave),d.on("smsMessage:save",m.onSmsMessageSave),d.on("smsMessage:update",m.onSmsMessageSave),d.on("user_has_sms_interactions:save",m.onSmsInteractionOpen),d.on("user_has_sms_interactions:remove",m.onSmsInteractionClose),m.getSmsInteractions()})},m.onSmsInteractionSave=function(e){if(e){var t=_.find(m.smsInteractions.rows,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):u(),p(e)}},m.onSmsInteractionTagsSave=function(e){if(e){var t=_.find(m.smsInteractions.rows,{id:e.id});t&&(t.Tags=e.tags||[],_.merge(t,_.pick(e,_.keys(t))))}},m.onSmsMessageSave=function(e){if(e&&!e.secret){var t=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(t){var n=_.find(t.Messages,{id:e.id});n?_.merge(n,_.pick(e,_.keys(n))):(_.isNil(t.Messages)&&(t.Messages=[]),t.Messages.push(e)),p(t)}}},m.onSmsInteractionOpen=function(e){var t=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});t&&t.Users&&(_.find(t.Users,{id:e.UserId})||t.Users.push({id:e.UserId}))},m.onSmsInteractionClose=function(e){var t=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});t&&t.Users&&_.remove(t.Users,{id:e.UserId})},m.localizationMap={Today:r.instant("DASHBOARDS.TODAY"),Yesterday:r.instant("DASHBOARDS.YESTERDAY"),"This Week":r.instant("DASHBOARDS.THIS_WEEK"),"Last Week":r.instant("DASHBOARDS.LAST_WEEK"),"This Month":r.instant("DASHBOARDS.THIS_MONTH"),"Last Month":r.instant("DASHBOARDS.LAST_MONTH"),"This Year":r.instant("DASHBOARDS.THIS_YEAR"),"Last Year":r.instant("DASHBOARDS.LAST_YEAR"),January:r.instant("DASHBOARDS.JANUARY"),February:r.instant("DASHBOARDS.FEBRUARY"),March:r.instant("DASHBOARDS.MARCH"),April:r.instant("DASHBOARDS.APRIL"),May:r.instant("DASHBOARDS.MAY"),June:r.instant("DASHBOARDS.JUNE"),July:r.instant("DASHBOARDS.JULY"),August:r.instant("DASHBOARDS.AUGUST"),September:r.instant("DASHBOARDS.SEPTEMBER"),October:r.instant("DASHBOARDS.OCTOBER"),November:r.instant("DASHBOARDS.NOVEMBER"),December:r.instant("DASHBOARDS.DECEMBER"),Mon:r.instant("DASHBOARDS.MON"),Tue:r.instant("DASHBOARDS.TUE"),Wed:r.instant("DASHBOARDS.WED"),Thu:r.instant("DASHBOARDS.THU"),Fri:r.instant("DASHBOARDS.FRI"),Sat:r.instant("DASHBOARDS.SAT"),Sun:r.instant("DASHBOARDS.SUN")},m.pickerModel={dateStart:null};var g=!0,v=1;n.$watch("vm.query.filter",function(e,t){g?a(function(){g=!1}):(t||(v=m.query.page),e!==t&&(m.query.page=1),e||(m.query.page=v),m.getSmsInteractions())}),n.$on("$destroy",function(){d.removeAllListeners("smsMessage:save"),d.removeAllListeners("smsMessage:update"),d.removeAllListeners("smsInteraction:save"),d.removeAllListeners("smsInteractionTags:save"),d.removeAllListeners("smsInteraction:update"),d.removeAllListeners("user_has_sms_interactions:save"),d.removeAllListeners("user_has_sms_interactions:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(t,n,e,a,i,o,s,r,l,d){var c=this;function m(e){c.voiceCalls=e||{count:0,rows:[]}}c.currentUser=i.getCurrentUser(),c.voiceCalls={},c.localizationMap=d,c.pickerModel={dateStart:null},c.table="voiceCalls",c.query={UserId:c.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},c.success=m,c.getVoiceCalls=function(){c.query.dateStart=void 0,c.query.dateEnd=void 0,c.pickerModel.dateStart&&(c.query.dateStart=c.pickerModel.dateStart,c.query.dateEnd=c.pickerModel.dateEnd);c.query.offset=(c.query.page-1)*c.query.limit,s.localStorage.setItem("motion2.home.voice:"+c.currentUser.id,JSON.stringify({query:c.query})),c.promise=e.voiceCallReport.get(c.query,m).$promise},c.onInit=function(){return e.tag.get().$promise.then(function(e){c.tags=e||{count:0,rows:[]}}).catch(function(e){a.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),c.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+c.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.omit(e.query,"filter"))}catch(e){console.error(e)}c.getVoiceCalls()})},c.showDetails=function(e){t.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{call:e}})},c.clearAll=function(){c.pickerModel={dateStart:null},c.getVoiceCalls()};var u=!0,p=1;r.$watch("vm.query.filter",function(e,t){u?l(function(){u=!1}):(t||(p=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=p),c.getVoiceCalls())})}e.$inject=["$mdDialog","$document","api","toasty","Auth","$translate","$window","$scope","$timeout","dateFilterLocalizationFactory"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,t){this.call=t,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this,g=25,v=1024*g*1024;function h(){i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{user:p.user,channel:p.tab.channel,interaction:p.tab.interaction}}).then(function(e){p.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(p.tab)})}function b(e,t){p.tab.message||(p.tab.message=t),i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,message:p.tab.message,type:e,interaction:p.interaction},fullscreen:!0,skipHide:Boolean(p.tab.spy)}).then(function(t){t&&A(t),t.Interaction&&p.interaction&&p.interaction.id&&(t.Interaction.id=p.interaction.id,l.mailInteraction.update(t.Interaction).$promise.then(function(e){e&&e.closed?(p.tab.saved=!0,p.interaction.closed=!0,p.interaction.closedAt=e.closedAt,h()):null!==t.Interaction.substatus&&(p.tab.saved=!0,p.tab.interaction.substatus=t.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(p.tab))}).catch(function(e){console.error(e)}))})}function f(){"mail"!==p.tab.channel&&t(function(){var e=angular.element(n.find("md-content[name*='interaction-content-"+p.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function A(n){if(n)return n["chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId"]=p.interaction["chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId"],n[_.capitalize(p.tab.channel)+"InteractionId"]=p.interaction.id,n.UserId=p.user.id,n.ContactId=p.interaction.ContactId,n.direction="out",n.secret=Boolean(p.tab.spy||n.secret),l[p.tab.channel+"Message"].save(n).$promise.then(function(e){if(e&&e.id&&n.attachments&&n.attachments.length)for(var t=0;t<n.attachments.length;t+=1)l.attachment.update({id:n.attachments[t].id},{MailMessageId:e.id})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){p.tab.areaText="",f()})}function E(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";default:return"blue-A700"}}function y(e){e&&e.count&&e.rows.length&&(p.journey=_.concat(p.journey,e.rows))}p.showFooter=!1,p.showInteraction=!1,p.user=c.getCurrentUser(),p.detectBrowser=u.detectBrowser(),p.journey=[],p.acceptedMessages=[],p.omniChannels=["mail","chat","sms","openchannel","fax"],p.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:v,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},p.ngFlow={flow:{}},p.selectedMailShowDetails={},p.selectedMailShowSystemMessage={},p.setting={},p.ctrlMethods={},p.init=function(e,t){p.tab=e,p.tab.saved=!0,p.tab.badges=0,p.setting=t||{},p.tab&&p.tab.channel&&p.tab.interaction&&(p.interaction=p.tab.interaction,l[p.tab.channel+"Interaction"].get({id:p.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(p.interaction=e,p.tab.interaction=e),p.tab.saved=p.interaction.closed,p.queryMessage={id:p.interaction.id,includeAll:!0},"mail"===p.tab.channel?(p.queryMessage.sort="-id",p.queryMessage.offset=0,p.queryMessage.limit=3):(p.queryMessage.sort="id",p.queryMessage.nolimit=!0),l[p.tab.channel+"Interaction"].getMessages(p.queryMessage).$promise}).then(function(e){return p.messages=e||{count:0,rows:[]},l["chat"===p.tab.channel?"chatWebsite":p.tab.channel+"Account"].get({id:p.interaction["chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(p.account=e,p.tab.title=p.account.key||p.account.name,p.interaction.ContactId)return l.cmContact.get({id:p.interaction.ContactId}).$promise}).then(function(e){return e&&(p.contact=e),p.showInteraction=!0,p.contact?(!function(e){if(e&&e.id){for(var t=0;t<p.omniChannels.length;t++)l[p.omniChannels[t]+"Interaction"].get({ContactId:e.id,includeAll:!0}).$promise.then(y);l.voiceCallReport.get({ContactId:e.id,includeAll:!0}).$promise.then(y)}}(p.contact),p.tab.title+=" - "+p.contact.firstName):p.tab.title+=" - "+r.instant(p.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){p.users=e||{count:0,rows:[]},p.usersMap=_.mapValues(_.keyBy(p.users.rows,"id"),"fullname")}).then(function(){if(p.tab.channel&&p.interaction)return l.user["add"+_.upperFirst(p.tab.channel)+"Interactions"]({id:p.user.id,ids:[p.interaction.id]})}).then(function(){return l.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){p.subStatuses=e||{count:0,rows:[]}}).then(function(){return p.getMailAccounts()}).then(function(){return p.getFaxAccounts()}).then(function(){return p.getSmsAccounts()}).then(function(){return p.getOpenchannelAccounts()}).then(function(){return p.getChatWebsites()}).then(function(){return p.getLists()}).catch(function(e){console.error(e),p.showInteraction=!0}).finally(function(){!function(){if(!p.tab.spy)for(var e=0;e<p.messages.rows.length;e+=1)"in"!==p.messages.rows[e].direction||p.messages.rows[e].read||(l[p.tab.channel+"Message"].accept({id:p.messages.rows[e].id,UserId:p.user.id}),p.acceptedMessages.push(p.messages.rows[e].id))}(),f(),m.on(p.tab.channel+"Message:save",p.onMessageSave),m.on(p.tab.channel+"Message:update",p.onMessageSave),m.on(p.tab.channel+"Interaction:save",p.onInteractionSave),m.on(p.tab.channel+"Interaction:update",p.onInteractionSave),m.on("user_has_"+p.tab.channel+"_interactions:save",p.onInteractionOpen),m.on("user_has_"+p.tab.channel+"_interactions:remove",p.onInteractionClose),p.showFooter=!0}))},p.getLabelByMessage=function(e){var t="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":t:e.UserId?p.usersMap?p.usersMap[e.UserId]:t:"System"},p.openContact=function(e,t){try{p.tab&&!p.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(t||p.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},p.openInteraction=function(e,t){try{if(t.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",t);if(t.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",t);if(t.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",t);if(t.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",t);if(t.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",t)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},p.disposeInteraction=h,p.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,skipHide:Boolean(p.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{nolimit:!0,fields:"id,name,color"})}]},locals:{channel:p.tab.channel,interaction:p.tab.interaction}})},p.composeMailInteraction=function(t,e){if(e.inReplyTo){var n=_.find(p.messages.rows,{messageId:e.inReplyTo});if(!n)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){b(t,e&&e.count?e.rows[0]:void 0)}).catch(function(e){console.error(e),b(t,void 0)});b(t,n)}else b(t,e)},p.composeFaxInteraction=function(e){var t={to:[]};t.to.push(p.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,message:t,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:p.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},p.composeSmsInteraction=function(e,t){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,message:t,type:e},fullscreen:!0,skipHide:Boolean(p.tab.spy)}).then(function(e){e&&A(e)})},p.transferLastMessage=function(){if(p.interaction){var e=_.findLast(p.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!1,locals:{account:p.account,interaction:p.interaction,message:e,channel:p.tab.channel}}).then(function(e){p.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(p.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},p.downloadMessage=function(o,e){p.tab.channel&&o.id&&l[p.tab.channel+"Message"].download({id:o.id,attachments:e}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=p.tab.channel+"-message"+o.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.downloadInteraction=function(o,e){p.tab.channel&&o.id&&l[p.tab.channel+"Interaction"].download({id:o.id,attachments:e}).$promise.then(function(e){var t=[e.buffer],n=p.tab.channel+"-interaction"+o.id+".zip",a=new Blob(t,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.getMailAccounts=function(){l.user.getMailAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.mailAccounts=e||{count:0,rows:[]}})},p.getFaxAccounts=function(){l.user.getFaxAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.faxAccounts=e||{count:0,rows:[]}})},p.getSmsAccounts=function(){l.user.getSmsAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.smsAccounts=e||{count:0,rows:[]}})},p.getOpenchannelAccounts=function(){l.user.getOpenchannelAccounts({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.openchannelAccounts=e||{count:0,rows:[]}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mail.account"}];for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mail.account",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.getChatWebsites=function(){l.user.getChatWebsites({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.chatAccounts=e||{count:0,rows:[]}})},p.getLists=function(){l.user.getLists({id:p.user.id,nolimit:!0}).$promise.then(function(e){p.voiceAccounts=e||{count:0,rows:[]}})},p.reply=function(e,t){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===t.trim())return;A(function(e){var t={},n="chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId";t[n]=p.interaction[n].toString(),t[_.capitalize(p.tab.channel)+"InteractionId"]=p.interaction.id,"sms"===p.tab.channel&&(t.phone=p.interaction.phone);e&&(t.UserId=p.user.id,t.ContactId=p.interaction.ContactId,t.body=e,t.createdAt=Date.now());return t}(t.replace(/\n$/,"")))},p.upload=function(){p.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},p.ngFlow.flow.upload()},p.fileAdded=function(e){if(e.size>v)return d.error({title:"File too big",msg:"The max allowed size is "+g+"MB"}),!1;return!0},p.fileSuccess=function(e,t){var n=JSON.parse(t),a=n.name;"chat"===p.tab.channel&&(a='<a href="'+(p.account.remote?p.account.remote:s.protocol()+"://"+s.host())+"/api/chat/interactions/"+p.interaction.id+"/attachment_download?attachId="+n.id+"&token="+p.account.token+'" target="_self">'+n.name+"</a>");A({body:a,AttachmentId:n.id})},p.onMessageSave=function(e){if(e&&p.interaction.id!=e[_.capitalize(p.tab.channel)+"InteractionId"])return;var t=!1;p.messages?t=_.find(p.messages.rows,{id:e.id}):p.messages={rows:[],count:0};t?_.merge(t,e):("mail"===p.tab.channel?p.messages.rows.unshift(e):p.messages.rows.push(e),f())},p.onInteractionSave=function(e){if(e&&p.interaction.id!==e.id)return;e.closed&&(p.tab.saved=!0);_.merge(p.interaction,e)},p.searchTextChange=function(t){var n=o.defer(),a=[],e={},i="chat"===p.tab.channel?"ChatWebsiteId":_.capitalize(p.tab.channel)+"AccountId";return e.filter=t,e[i]=p.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},p.selectedItemChange=function(t){if(t){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(t.value),n={user:p.user,account:p.account,interaction:p.interaction,contact:p.interaction&&p.interaction.Contact?p.interaction.Contact:{}};p.tab.areaText+=" "+e(n),p.ctrlMethods.setText(p.tab.areaText)}catch(e){p.tab.areaText+=" "+t.value,p.ctrlMethods.setText(p.tab.areaText)}p.selectedItem=null,p.changeDisplayCannedAnswerInputValue()}},p.getIconByChannel=function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";default:return"icon-hangouts"}},p.getColorByChannel=E,p.getColorByItem=function(e){var t="";e.FaxAccountId?t="fax":e.OpenchannelAccountId?t="openchannel":e.SmsAccountId?t="sms":e.MailAccountId?t="mail":e.ChatWebsiteId?t="chat":e.amaflags&&(t="voice");return E(t)},p.getMessagesAlignment=function(e){if(e.secret&&p.user.id!=e.UserId)return"in";switch(p.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},p.displayCannedAnswerInput=!1,p.changeDisplayCannedAnswerInputValue=function(){p.displayCannedAnswerInput=!p.displayCannedAnswerInput},p.setAs=function(e){p.tab.channel&&p.interaction&&p.interaction.id&&l[p.tab.channel+"Interaction"].update({id:p.interaction.id,substatus:e,substatusAt:Date.now()}).$promise.catch(function(e){console.error(e)})},p.markAsUnread=function(){if(p.tab.channel&&p.interaction&&p.interaction.id)if(p.acceptedMessages.length)for(var e=0;e<p.acceptedMessages.length;e+=1)l[p.tab.channel+"Message"].update({id:p.acceptedMessages[e],read:!1,UserId:null});else for(var t=0;t<p.messages.rows.length;t+=1)if("in"===p.messages.rows[t].direction){p.messages.rows[t].UserId===p.user.id?l[p.tab.channel+"Message"].update({id:p.messages.rows[t].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}p.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(p.tab)},p.isMyAccount=function(e){{if(e.FaxAccountId)return _.includes(_.map(p.faxAccounts?p.faxAccounts.rows:[],"id"),e.FaxAccountId);if(e.OpenchannelAccountId)return _.includes(_.map(p.openchannelAccounts?p.openchannelAccounts.rows:[],"id"),e.OpenchannelAccountId);if(e.SmsAccountId)return _.includes(_.map(p.smsAccounts?p.smsAccounts.rows:[],"id"),e.SmsAccountId);if(e.MailAccountId)return _.includes(_.map(p.mailAccounts?p.mailAccounts.rows:[],"id"),e.MailAccountId);if(e.ChatWebsiteId)return _.includes(_.map(p.chatAccounts?p.chatAccounts.rows:[],"id"),e.ChatWebsiteId);if(e.amaflags)return!0}return!1},p.getAttachments=function(t){return l.attachment.get({MailMessageId:t.id}).$promise.then(function(e){e&&e.rows&&(t.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var t=new Blob([e.buffer],{type:e.type}),n=document.createElement("a"),a=window.URL.createObjectURL(t);n.href=a,n.target="_self",n.download=i.name,document.body.appendChild(n),n.click(),setTimeout(function(){document.body.removeChild(n),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},p.onInteractionOpen=function(e){var t;p.interaction.id==e[_.upperFirst(p.tab.channel)+"InteractionId"]&&(p.interaction.Users&&(t=_.find(p.interaction.Users,{id:e.UserId})),t||p.interaction.Users.push({id:e.UserId}))},p.onInteractionClose=function(e){p.interaction.id==e[_.upperFirst(p.tab.channel)+"InteractionId"]&&p.interaction.Users&&_.remove(p.interaction.Users,{id:e.UserId})},p.loadNextPage=function(){var n=o.defer();if(p.queryMessage)return p.queryMessage.offset=p.messages.rows.length,l[p.tab.channel+"Interaction"].getMessages(p.queryMessage).$promise.then(function(e){for(var t=0;t<e.rows.length;t+=1)p.messages.rows.push(e.rows[t]),"in"!==e.rows[t].direction||e.rows[t].read||(l[p.tab.channel+"Message"].accept({id:e.rows[t].id,UserId:p.user.id}),p.acceptedMessages.push(e.rows[t].id));return n.resolve(e)}).catch(function(e){return n.reject(e)});return n.reject()},p.timelineOptions={scrollEl:"#interaction-content"},a.$on("$destroy",function(){m.removeAllListeners(p.tab.channel+"Message:save"),m.removeAllListeners(p.tab.channel+"Message:update"),m.removeAllListeners(p.tab.channel+"Interaction:save"),m.removeAllListeners(p.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+p.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+p.tab.channel+"_interactions:remove")})}function t(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(n){n.updateView=function(){var e,t=_.replace(n.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');n.trustedHtml=a.trustAsHtml(t)},n.$watch("ngBindHtmlUnsafe",function(e,t){n.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils"],t.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",t).filter("getChannelByItem",function(){return function(e,t,n,a){for(var i=[],o=0;o<e.length;o+=1){var s=!0;switch(t){case"voice":s=Boolean(e[o].uniqueid);break;case"chat":s=Boolean(e[o].ChatWebsiteId);break;case"mail":s=Boolean(e[o].MailAccountId);break;case"sms":s=Boolean(e[o].SmsAccountId);break;case"fax":s=Boolean(e[o].FaxAccountId);break;case"openchannel":s=Boolean(e[o].OpenchannelAccountId);break;default:s=!0}s&&n&&a&&(s=moment(e[o].createdAt).isBetween(n,a)),s&&i.push(e[o])}return i}}).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(o.draft=void 0,n.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,t){try{(t=JSON.parse(t)).size=e.size,c.message.attachments.push(t)}catch(e){console.error(e)}},c.fileAdded=function(e){var t=["pdf","tif"];if(!_.includes(t,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+t.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var t="";e.firstName&&e.firstName!==e.fax&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(t+=e.lastName+" ");return t+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var t=e;if(_.isObject(e))return e.fax;if(n=t,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(n))return t;var n;return l.error("Fax "+t+" is not valid"),null},c.closeDialog=function(){o.draft=c.message,n.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(t,e,i,n,o,s,a,r,l,d,c,m){var u=this,p=25,g=1024*p*1024;switch(u.currentUser=c.getCurrentUser(),u.secret="note"===a,u.hiddenCC=!0,u.hiddenBCC=!0,u.verifySmtp=!0,u.errors=[],u.separatorKeys=[n.KEY_CODE.ENTER,n.KEY_CODE.COMMA,n.KEY_CODE.TAB],u.searchTextChange=function(t){var n=d.defer(),a=[];return r.cannedAnswer.get({filter:t,MailAccountId:o.id}).$promise.then(function(e){return a=_.concat(a,e.rows),r.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},u.selectedItemChange=function(t){if(t&&t.value&&u.ckEditorInstance)try{var e=_.template(t.value),n={user:u.currentUser,account:o,interaction:m,contact:m&&m.Contact?m.Contact:{}};u.ckEditorInstance.insertHtml(e(n))}catch(e){console.error(e),u.ckEditorInstance.insertHtml(t.value)}document.getElementById("html-area").focus(),u.selectedItem=null},u.onReadyEditor=function(e){try{u.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,u.fromTemplate=_.template("{{ name }} <{{ email }}>"),u.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),u.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),u.message={from:u.fromTemplate({name:o.name,email:o.email||o.Smtp.user}),to:[],cc:[],bcc:[],body:b(),type:a,attachments:[],showLastMessage:!0},u.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:u.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,font_defaultLabel:o.fontFamily?o.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:o.fontSize||"12",removePlugins:"magicline"},u.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:g,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},u.ngFlow={flow:{}},u.reply=function(e){angular.isDefined(s)&&(u.message.type="reply",u.message.to="in"===s.direction?s.from.split(","):s.to.split(","),u.message.subject=_.startsWith(s.subject,"Re:")?s.subject:"Re: "+s.subject,u.message.inReplyTo=s.messageId,u.message.body=s.draft&&s.draft.inReplyTo?s.draft.body:b(),u.message.attachments=s.draft?s.draft.attachments:[],e&&s.cc&&(u.hiddenCC=!1,u.message.cc=s.cc.split(",")),u.message.showLastMessage=!!s.draft&&s.draft.showLastMessage)},u.newMail=function(){angular.isDefined(s)&&(u.message.type="new",u.message.to=s.to?s.to.split(","):[])},u.forward=function(){if(angular.isDefined(s)){if(u.message.type="forward",u.message.subject=_.startsWith(s.subject,"Fwd:")?s.subject:"Fwd: "+s.subject,u.message.body=s.draft&&!s.draft.inReplyTo?s.draft.body:b(),s.Attachments&&s.Attachments.length)for(var e=0;e<s.Attachments.length;e++)u.message.attachments.push(s.Attachments[e]);u.message.showLastMessage=!!s.draft&&s.draft.showLastMessage}},u.send=function(e,t,n){if(u.message.to&&u.message.body)if(u.message.to.length)if(s.draft=void 0,_.isEmpty(u.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){v(t,n)})}else v(t,n);else l.error("To is mandatory")},u.note=function(){u.type="note",u.secret=!0,u.message.body='<div style="font-family:'+o.fontFamily+";font-size:"+o.fontSize+'px"><p></p></div>'},u.addNote=function(){u.message.body&&(u.message.draft=void 0,i.hide({secret:!0,body:u.message.body,attach:u.message.attachments.length,attachments:u.message.attachments}))},u.upload=function(e){u.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+t.get("motion.token")},u.ngFlow.flow.upload()},u.fileSuccess=function(e,t){try{(t=JSON.parse(t)).size=e.size,u.message.attachments.push(t)}catch(e){console.error(e)}},u.deleteAttachment=function(e){u.message.attachments=_.reject(u.message.attachments,{id:e.id}),r.attachment.delete({id:e.id}).$promise.then(function(){l.success({title:"Attachment deleted!",msg:e.name?e.name+" has been deleted!":""})})},u.fileAdded=function(e){if(e.size>g)return l.error({title:"File too big",msg:"The max allowed size is "+p+"MB"}),!1;return!0},u.getContact=function(e){var t="";e.firstName&&e.firstName!==e.email&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(t+=e.lastName+" ");return t+="<"+e.email+">"},u.contactSearch=function(e){return o&&o.ListId?r.cmContact.get({ListId:o.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},u.transformContact=function(e,t){if(_.isObject(e))return e.email;if(_.isString(e)){if(h(e))return e;for(var n=e.split(","),a=0;a<n.length;a+=1)h(n[a])?_.isArray(t)&&_.indexOf(t,n[a])<0&&t.push(n[a]):l.error("Email "+n[a]+" is not valid");return null}return l.error("Email field is not valid"),null},u.closeDialog=function(){angular.isDefined(s)&&(s.draft=u.message);i.cancel()},u.loadLastMessage=function(){u.message.body+=f(u.message.type)},a){case"reply":u.reply(!1);break;case"replyAll":u.reply(!0);break;case"forward":u.forward();break;case"new":u.newMail();break;case"note":u.note()}function v(e,t){var n={from:u.message.from,to:u.message.to.join(","),cc:u.message.cc.join(","),bcc:u.message.bcc.join(","),subject:u.message.subject,body:u.message.showLastMessage?u.message.body:u.message.body+f(u.message.type),inReplyTo:u.message.inReplyTo,attach:u.message.attachments.length,attachments:u.message.attachments,Interaction:{lastMsgAt:moment().format("YYYY-MM-DD HH:mm:ss"),lastMsgDirection:"out",lastMsgBody:u.message.body,substatus:t,substatusAt:moment().format("YYYY-MM-DD HH:mm:ss")}};n.html='<div id="xm-mail-content">'+_.replace(n.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(n.Interaction.closed=!0,n.Interaction.closedAt=moment().format("YYYY-MM-DD HH:mm:ss")),i.hide(n)}function h(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function b(){return'<div style="font-family:'+o.fontFamily+";font-size:"+o.fontSize+'px">'+function(){if(_.isNil(o.template))return"";try{return _.template(o.template)({user:u.currentUser,account:o,interaction:m,contact:m&&m.Contact?m.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function f(e){var t,n,a='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":a+=u.replyTemplate({date:moment(s.createdAt).format("D MMM YYYY")||"",time:moment(s.createdAt).format("HH:mm")||"",from:_.escape(s.from)||""});break;case"forward":a+=u.forwardTemplate({date:moment(s.createdAt).format("D MMM YYYY")||"",time:moment(s.createdAt).format("HH:mm")||"",from:_.escape(s.from)||"",to:_.escape(s.to)||"",subject:_.escape(s.subject)||""})}return a+="<br><br>",a+=(t=s.body?_.replace(s.body,'<div id="xm-mail-content"',"<div"):"",(n=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?n[1]:t),a+="</blockquote></div>",e?a:""}r.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){u.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.secret||r.mailAccount.verifySmtp({id:o.id}).$promise.catch(function(e){u.verifySmtp=!1,u.errors.push({message:e.data,type:e.status}),u.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","Auth","interaction"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(t){var n=c.defer(),a=[];return l.cannedAnswer.get({filter:t,OpenchannelAccountId:o.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},p.selectedItemChange=function(t){if(t){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(t.value),n={user:p.currentUser,account:o};p.message.body+=" "+e(n),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+t.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:o.phone,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(t=p.message.body,a.hide({to:p.message.to.join(","),body:t})):d.error("To is mandatory"));var t},p.getContact=function(e){var t="";e.firstName&&e.firstName!==e[o.mapKey]&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e[o.mapKey]&&(t+=e.lastName+" ");return t+="<"+e[o.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(o&&o.ListId){var t="firstName,lastName,phone,mobile";return o.mapKey&&(t+=","+o.mapKey),l.cmContact.get({ListId:o.ListId,nolimit:!0,filter:e,fields:t}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var t=e;if(_.isObject(t))return e[o.mapKey];return t},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(t){var n=c.defer(),a=[];return l.cannedAnswer.get({filter:t,SmsAccountId:o.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:t}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),n.resolve(a)}).catch(function(e){n.reject(e)}),n.promise},p.selectedItemChange=function(t){if(t){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(t.value),n={user:p.currentUser,account:o};p.message.body+=" "+e(n),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+t.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:o.phone,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(t=p.message.body,a.hide({to:p.message.to.join(","),body:t})):d.error("To is mandatory"));var t},p.getContact=function(e){var t="";e.firstName&&e.firstName!==e.mobile&&(t+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(t+=e.lastName+" ");return t+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(o&&o.ListId)return l.cmContact.get({ListId:o.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var t=e;if(_.isObject(t))return e.mobile;if(n=t,/^(\+|\d)[0-9]{7,16}$/.test(n))return t;var n;return d.error("Mobile "+t+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(t,n,a,i,o,s){var r=this;function l(e){t.hide(e)}r.errors=[],r.interaction=angular.copy(i),r.dispositions={count:0,rows:[]},r.globalDispositions={count:0,rows:[]},r.channel=o,r.interactionMethod=r.channel+"Interaction",r.interaction.disposition||(r.interaction.disposition=null),r.saveDisposition=function(e){r.errors=[],r.interaction.closed||(r.interaction.closedAt=Date.now());r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",a[r.interactionMethod]?a[r.interactionMethod].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","ChatWebsiteId","OpenchannelId","closed","closedAt","closeReason","disposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,n.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"}),l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l,function(){var e={fields:"id,name",sort:"name",nolimit:!0};switch(o){case"chat":e.ChatWebsiteId=i.ChatWebsiteId;break;case"mail":case"sms":case"fax":case"openchannel":var t=_.capitalize(o)+"AccountId";e[t]=i[t]}a.disposition.get(e).$promise.then(function(e){r.dispositions=e}).catch(function(e){console.error(e)}),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null"}).$promise.then(function(e){r.globalDispositions=e}).catch(function(e){console.error(e)})}()}e.$inject=["$mdDialog","toasty","api","interaction","channel","user"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i,o){var s=this;function r(e){t.hide(e)}s.errors=[],s.tags=o,s.interaction=angular.copy(a),s.interaction.Tags=_.map(s.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),s.channel=i,s.autocompleteRequireMatch=!0,s.saveTag=function(){{if(s.errors=[],e[s.interactionMethod])return e[s.interactionMethod].addTags({id:s.interaction.id,ids:_.map(s.interaction.Tags,"id")}).$promise.then(function(){n.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=s.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},s.closeDialog=r,s.interactionMethod=s.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,o,s,r){var l=this;function d(e){t.hide(e)}l.currentUser=n.getCurrentUser(),l.channel=o.toLowerCase(),l.message=s,l.account=r,l.transfer={id:0,type:"queue"},l.agents=l.queues={count:0,rows:[]},l.queueMethod=l.channel+"Queue",l.queueNotifyMethod=l.channel+"QueueNotify",l.onTransfer=function(){d(!0),e(function(){return a.rpc["agent"===l.transfer.type?"agentNotify":l.queueNotifyMethod]({id:l.transfer.id,messageId:l.message.id,channel:l.channel}).$promise.then(function(e){i.success({title:"Trasfer properly done!",msg:"Transfer "+l.transfer.type+" has been done!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];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.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},l.closeDialog=d,l.init=function(){return a.user.get({fields:"id,name",role:"agent",nolimit:!0}).$promise.then(function(e){return l.agents=e||{count:0,rows:[]},a[l.queueMethod].get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){l.queues=e||{count:0,rows:[]}}).catch(function(e){console.error(e)})},l.init()}e.$inject=["$mdDialog","$timeout","Auth","api","toasty","channel","message","account"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,o,s,e,l,d,t,n,a,r,c){var m=this;function u(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){d.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function p(n,e){var r=t.getCurrentUser();l.jscriptySessionReport.save({starttime:m.starttime,membername:m.call&&m.call.membername?m.call.membername:r.name,calleridname:m.call&&m.call.calleridname?m.call.calleridname:void 0,calleridnum:m.call&&m.call.calleridnum?m.call.calleridnum:void 0,queue:m.call&&m.call.queue?m.call.queue:void 0,uniqueid:m.call&&m.call.uniqueid?m.call.uniqueid:void 0,VoiceQueueId:m.call&&m.call["xmd-voicequeueid"]?m.call["xmd-voicequeueid"]:void 0,ProjectId:m.project&&m.project.id?m.project.id:void 0,projectname:m.project&&m.project.name?m.project.name:void 0,ContactId:m.contact&&m.contact.id?m.contact.id:void 0,completed:e}).$promise.then(function(e){if(e)for(var t=m.getResponseSheetHeaders(),n=m.getResponseSheetRow(),a=m.getQuestionWithResponseList(),i=0;i<t.length;i+=1)if(!_.isEmpty(n[i])){l.jscriptyQuestionReport.save({question:t[i],answer:n[i],questionId:a[i].id,membername:m.call&&m.call.membername?m.call.membername:r.name,calleridname:m.call&&m.call.calleridname?m.call.calleridname:void 0,calleridnum:m.call&&m.call.calleridnum?m.call.calleridnum:void 0,queue:m.call&&m.call.queue?m.call.queue:void 0,uniqueid:m.call&&m.call.uniqueid?m.call.uniqueid:void 0,SessionId:e.id,ProjectId:m.project.id,projectname:m.project.name});for(var o=n[i].toString().split(";"),s=0;s<o.length;s+=1)l.jscriptyAnswerReport.save({question:t[i],questionId:a[i].id,answer:o[s].trim(),membername:m.call&&m.call.membername?m.call.membername:r.name,calleridname:m.call&&m.call.calleridname?m.call.calleridname:void 0,calleridnum:m.call&&m.call.calleridnum?m.call.calleridnum:void 0,queue:m.call&&m.call.queue?m.call.queue:void 0,uniqueid:m.call&&m.call.uniqueid?m.call.uniqueid:void 0,SessionId:e.id,ProjectId:m.project.id,projectname:m.project.name})}return e}).then(function(e){e?n.resolve(!0):n.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)d.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});n.reject()})}m.formViewer={},m.showResetButton=!0,m.showIncompleteSubmitButton=!1,m.detectBrowser=c.detectBrowser(),m.onSubmit=function(e,t){var n=o.defer();if(t){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){p(n,!1)},function(){n.resolve()})}else p(n,!0);return n.promise.then(function(e){e&&(d.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){d.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(m.tab))}).catch(function(e){d.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},m.openContact=function(e,t){try{i.$parent.$parent.$parent.vm.addContactTab(t)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},m.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},m.getResponseSheet=function(){return e.getResponseSheet(m.project.formData,m.project.responseData,!1)},m.getResponseSheetRow=function(){return e.getResponseSheetRow(m.project.formData,m.project.responseData)},m.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(m.project.formData,!1)},m.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(m.project.formData,m.project.responseData)},m.init=function(e){m.tab=e,m.tab&&(m.call=m.tab.call,m.starttime=m.tab.openedAt,m.contact=m.tab.contact,m.project=m.tab.project,m.project&&(_.isObjectLike(m.project.formData)?m.project.formData=m.project.formData:m.isJsonString(m.project.formData)?m.project.formData=JSON.parse(m.project.formData):m.project.formData=void 0,m.project.responseData=m.project.responseData||{},void 0!==m.project.currentPage&&r(function(){a.$broadcast("mwForm.pageEvents.changePage",{page:m.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,t){if(t.currentPage&&(m.project.currentPage=t.currentPage.number-1,u(),m.project.enableUncompleteSave&&(1<=t.currentPage.number&&t.currentPage.number<m.project.formData.pages.length?m.showIncompleteSubmitButton=!0:m.showIncompleteSubmitButton=!1),m.project.formData&&m.project.formData.pages))for(var n=0,a=m.project.formData.pages.length;n<a;n++)if(t.currentPage.number<n+1&&m.project.formData.pages[n].elements)for(var i=0,o=m.project.formData.pages[n].elements.length;i<o;i++)"question"===m.project.formData.pages[n].elements[i].type&&m.project.formData.pages[n].elements[i].question&&delete m.project.responseData[m.project.formData.pages[n].elements[i].question.id]})))},m.resetViewer=function(e){if(m.formViewer.reset){var t=s.confirm().title(n.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(n.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(n.instant("JSCRIPTY.YES")).cancel(n.instant("JSCRIPTY.NO"));s.show(t).then(function(){m.showIncompleteSubmitButton=!1,m.project.currentPage=void 0,u(),m.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(n,a,e,t,i){var o=this;function s(){return function(e){if(404===e.status)a.info({title:n.instant("DASHBOARDS.ATTENTION"),msg:n.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}o.notification=e,o.user=i.getCurrentUser(),o.accept=function(e){{if(t[o.notification.channel+"Message"])return t[o.notification.channel+"Message"].accept({id:o.notification.id,UserId:o.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(s());a.error({title:"API:ERROR",msg:"API accept message not found: "+o.notification.channel+"Message"})}},o.reject=function(e){{if(t[o.notification.channel+"Message"])return t[o.notification.channel+"Message"].reject({id:o.notification.id,UserId:o.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(s());a.error({title:"API:ERROR",msg:"API reject message not found: "+o.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var t=this;t.init=function(e){t.tab=e,t.tab&&(t.tab.saved=!0,t.html=t.tab.html)}})}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:e.ChatWebsiteId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("chatInteraction:save",i.onSaveChatInteraction),t.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("chatInteraction:save"),t.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;function d(){o({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){s({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking: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},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},n.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=t(function(){d(),c()},999),n.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){n.removeAllListeners("voice_queue:save"),n.removeAllListeners("campaign:save"),l.interval&&t.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:e.FaxAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("faxInteraction:save",i.onSaveFaxInteraction),t.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("faxInteraction:save"),t.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:e.MailAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("mailInteraction:save",i.onSaveMailInteraction),t.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("mailInteraction:save"),t.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:e.OpenchannelAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),t.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("openchannelInteraction:save"),t.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this,o=[];function s(e,t){e.closed||e.UserId||!t||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(o,e.id)||(i.inbound.talking+=1,o.push(e.id),!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!t&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!t&&i.inbound.waiting&&(i.inbound.waiting-=1)),t&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:e.SmsAccountId})}function d(e){return moment(e).isBetween(moment().startOf("day").toString(),moment().endOf("day").toString())}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.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},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(s(e,!1),r())},t.on("smsInteraction:save",i.onSaveSmsInteraction),t.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<n.rows.length;e+=1)if(l(n.rows[e])){var t=n.rows[e];s(t,!0),r()}}(),e.$on("$destroy",function(){t.removeAllListeners("smsInteraction:save"),t.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(n){var i=[],o=function(){var n=i[0],a={waiting:0,talking:0,pTalking: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(n.queues,function(e,t){n.rpcQueues[t]&&(a.waiting+=n.rpcQueues[t].waiting||0,a.talking+=(n.rpcQueues[t].talking||0)+(n.rpcQueues[t].pTalking||0),a.answered+=n.rpcQueues[t].answered||0,a.abandoned+=n.rpcQueues[t].abandoned||0,a.sumHoldTime+=n.rpcQueues[t].sumHoldTime||0,a.sumBillable+=n.rpcQueues[t].sumBillable||0,a.total+=n.rpcQueues[t].total||0,a.originated+=n.rpcQueues[t].originated||0,a.outboundDropCallsDayCallersExit+=n.rpcQueues[t].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=n.rpcQueues[t].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),n.defer.resolve(a),0<i.length&&o()};return function(e){var t=n.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:t}),1===i.length&&o(),t.promise}}function t(n){var i=[],o=function(){var n=i[0],a={originated:0,limitCalls:0};_.forIn(n.rpcCampaigns,function(e,t){n.rpcCampaigns[t]&&(a.originated+=n.rpcCampaigns[t].originated||0,a.limitCalls+=n.rpcCampaigns[t].limitCalls||0)}),i.shift(),n.defer.resolve(a),0<i.length&&o()};return function(e){var t=n.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:t}),1===i.length&&o(),t.promise}}function n(e,s,t,n){var r=this;r.hasPermission=function(){return t.hasPermission(101)||t.hasRole("admin")},r.license=n,e.$on("$stateChangeSuccess",function(e,t,n,a,i){var o=[];r.license.voice&&o.push("app.dashboards.general.voice"),r.license.dialer&&o.push("app.dashboards.general.dialer"),r.license.chat&&o.push("app.dashboards.general.chat"),r.license.mail&&o.push("app.dashboards.general.mail"),r.license.messaging&&o.push("app.dashboards.general.sms"),r.license.openchannel&&o.push("app.dashboards.general.openchannel"),r.license.fax&&o.push("app.dashboards.general.fax"),r.selectedTab=_.indexOf(o,t.name),r.selectedTab<0&&(r.selectedTab=0)<o.length&&s.go(_.first(o))})}e.$inject=["$q"],t.$inject=["$q"],n.$inject=["$scope","$state","Auth","license"],angular.module("app.dashboards").filter("secToTime",function(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",t).controller("UserDashboardGeneralController",n)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){o({queues:s.inboundQueues,rpcQueues:s.rpcQueues}).then(function(e){s.inbound=e})}s.inboundQueues=n?_.keyBy(n.rows?n.rows:[],"id"):{},s.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.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},s.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},s.onSaveQueue=function(e){s.inboundQueues[e.id]&&s.rpcQueues[e.id]&&(s.rpcQueues[e.id]=e,r())},s.onSaveOutbound=function(e){s.outbound=e},t.on("voice_queue:save",s.onSaveQueue),t.on("voice_outbound:save",s.onSaveOutbound),r(),e.$on("$destroy",function(){t.removeAllListeners("voice_queue:save"),t.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="FAX.EDIT_FAXACCOUNT",u.faxAccount=angular.copy(r),u.faxAccounts=s,u.newFaxAccount=!1,u.faxAccount||(u.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="FAX.NEW_FAXACCOUNT",u.newFaxAccount=!0),t.params.id&&(u.faxAccount.FaxAccountId=t.params.id),u.addNewFaxAccount=function(){u.errors=[],l.faxAccount.addAccountApplications(u.faxAccount).$promise.then(function(e){var t="add"+_.upperFirst("faxAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.faxAccounts.unshift(e.toJSON()),i.success({title:"FaxAccount properly created",msg:u.faxAccount.name?u.faxAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.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.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFaxAccount=function(){u.errors=[],l.faxAccount.updateAccountApplications(u.faxAccount).$promise.then(function(e){var t=_.find(u.faxAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"FaxAccount properly saved!",msg:u.faxAccount.name?u.faxAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteFaxAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.faxAccount.delete({id:u.faxAccount.id}).$promise.then(function(){return l.faxAccount.getAgents({id:u.faxAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("faxAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.faxAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.faxAccounts,{id:u.faxAccount.id}),i.success({title:"FaxAccount properly deleted!",msg:(u.faxAccount.name||"faxAccount")+" has been deleted!"}),p(u.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})}),l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","faxAccounts","faxAccount","api","Auth","license","setting"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.faxAccountApps.rows.length){var n=r.faxAccountApps.rows[t]?r.faxAccountApps.rows[t]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:n,faxAccount:r.faxAccount}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[t]=e:r.faxAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.faxAccountApps.rows.length;n++,0){var a=r.faxAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.faxAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=s.faxAccount.getApplications(r.query,n).$promise},r.editFaxAccountApp=t,r.editInterval=function(e,t){if(r.faxAccountApps.rows.length){var n=r.faxAccountApps.rows[t]?r.faxAccountApps.rows[t]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.faxAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.faxAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("FAX.ALL_AGENTS"),labelSelected:s.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,t){a.faxAccount[t?"removeAgents":"addAgents"]({id:l.faxAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"FaxAccount properly "+(t?"removed":"added"),msg:"FaxAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("fax")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="FAX.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveFaxAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","faxAccountApp","faxAccount","api"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.faxAccount={},c.faxAccountFaxDispositions={count:0,rows:[]},c.selectedFaxAccountFaxDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.faxAccount=e,c.query.id=c.faxAccount.id,c.query.FaxAccountId=c.faxAccount.id,c.getFaxAccountFaxDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the faxDisposition?").htmlContent("<b>"+(e.name||"faxDisposition")+"</b> will be deleted.").ariaLabel("delete faxDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getFaxAccountFaxDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.faxAccount.getDispositions(c.query,p).$promise},c.createOrEditFaxAccountFaxDisposition=function(e,t){o.show({controller:"CreateOrEditFaxDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:c.faxAccount,faxDisposition:t,faxDispositions:c.faxAccountFaxDispositions.rows,license:null,setting:null}})},c.exportSelectedFaxAccountFaxDispositions=function(){var e=angular.copy(c.selectedFaxAccountFaxDispositions);return c.selectedFaxAccountFaxDispositions=[],e},c.deleteFaxAccountFaxDisposition=g,c.deleteSelectedFaxAccountFaxDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected faxDispositions?").htmlContent("<b>"+c.selectedFaxAccountFaxDispositions.length+" selected</b> will be deleted.").ariaLabel("delete faxDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedFaxAccountFaxDispositions.forEach(function(e){g(e)}),c.selectedFaxAccountFaxDispositions=[]})};var m=!0,u=1;function p(e){c.faxAccountFaxDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.faxAccountFaxDispositions.rows,{id:e.id}),c.faxAccountFaxDispositions.count-=1,c.faxAccountFaxDispositions.rows.length||c.getFaxAccountFaxDispositions(),r.success({title:"FaxDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getFaxAccountFaxDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountFaxDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="FAX.EDIT_FAXDISPOSITION",u.faxDisposition=angular.copy(r),u.faxDispositions=s,u.newFaxDisposition=!1,u.faxDisposition||(u.faxDisposition={},u.title="FAX.NEW_FAXDISPOSITION",u.newFaxDisposition=!0),t.params.id&&(u.faxDisposition.FaxAccountId=t.params.id),u.addNewFaxDisposition=function(){u.errors=[],l.disposition.save(u.faxDisposition).$promise.then(function(e){u.faxDispositions.unshift(e.toJSON()),o.success({title:"FaxDisposition properly created",msg:u.faxDisposition.name?u.faxDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFaxDisposition=function(){u.errors=[],l.disposition.update({id:u.faxDisposition.id},u.faxDisposition).$promise.then(function(e){var t=_.find(u.faxDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FaxDisposition properly saved!",msg:u.faxDisposition.name?u.faxDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFaxDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The faxDisposition will be deleted.").ariaLabel("Delete FaxDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.faxDisposition.id}).$promise.then(function(){_.remove(u.faxDispositions,{id:u.faxDisposition.id}),o.success({title:"FaxDisposition properly deleted!",msg:(u.faxDisposition.name||"faxDisposition")+" has been deleted!"}),p(u.faxDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","faxDispositions","faxDisposition","api","Auth","license","setting"],angular.module("app.fax").controller("CreateOrEditFaxDispositionDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.faxAccount={},c.faxAccountInteractions={count:0,rows:[]},c.selectedFaxAccountInteractions=[],c.query={fields:"createdAt,updatedAt,id,Contact.firstName,Owner.name,closedAt,disposition,note,UserId,ContactId,FaxAccountId,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.faxAccount=e,c.query.id=c.faxAccount.id,c.getFaxAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.faxInteractionDownload=function(o,e,t){return l.faxInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="fax-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getFaxAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.faxAccount.getInteractions(c.query,p).$promise},c.createOrEditFaxAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:c.faxAccount,interaction:t,interactions:c.faxAccountInteractions.rows,license:null,setting:null}})},c.spyfaxInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"fax",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(c.selectedFaxAccountInteractions);return c.selectedFaxAccountInteractions=[],e},c.deleteFaxAccountInteraction=g,c.deleteSelectedFaxAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedFaxAccountInteractions.forEach(function(e){g(e)}),c.selectedFaxAccountInteractions=[]})};var m=!0,u=1;function p(e){c.faxAccountInteractions=e||{count:0,rows:[]}}function g(e){l.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.faxAccountInteractions.rows,{id:e.id}),c.faxAccountInteractions.count-=1,c.faxAccountInteractions.rows.length||c.getFaxAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getFaxAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.faxAccount=d||n.params.faxAccount||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.fax.realtime.accounts",{})},c.agentadddialog=function(e,t){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:c.faxAccounts?c.faxAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoFaxAccounts=function(){n.go("app.fax.faxAccounts")},c.saveFaxAccount=function(){s.faxAccount.updateAccountApplications(c.faxAccount).$promise.then(function(){r.success({title:"FaxAccount updated!",msg:c.faxAccount.name?c.faxAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","faxAccount"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.faxAccounts=r||{count:0,rows:[]},v.table="faxAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedFaxAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.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"),"")}),v.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"),"")}),v.editstate=function(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e})},v.interactionsgoto=function(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},v.gotorealtimegoto=function(e,t){n.go("app.fax.realtime.accounts",{})},v.agentadddialog=function(e,t){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:v.faxAccounts?v.faxAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getFaxAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.faxAccount.get(v.query,f).$promise},v.createOrEditFaxAccount=function(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:v.faxAccounts.rows,license:v.license,setting:v.setting}})},v.deleteFaxAccount=A,v.exportSelectedFaxAccounts=function(){var e=angular.copy(v.selectedFaxAccounts);return v.selectedFaxAccounts=[],e},v.deleteSelectedFaxAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+v.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFaxAccounts.forEach(function(e){A(e)}),v.selectedFaxAccounts=[]})},v.deselectFaxAccounts=function(){v.selectedFaxAccounts=[]},v.selectAllFaxAccounts=function(){v.selectedFaxAccounts=v.faxAccounts.rows},l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.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.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.faxAccounts=e||{count:0,rows:[]}}function A(e){l.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.faxAccounts.rows,{id:e.id}),v.faxAccounts.count-=1,v.faxAccounts.rows.length||v.getFaxAccounts(),c.success({title:"FaxAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="FAX.EDIT_FAXQUEUE",u.faxQueue=angular.copy(r),u.faxQueues=s,u.newFaxQueue=!1,u.faxQueue||(u.faxQueue={strategy:"beepall",timeout:10},u.title="FAX.NEW_FAXQUEUE",u.newFaxQueue=!0),u.addNewFaxQueue=function(){u.errors=[],l.faxQueue.save(u.faxQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"fax",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:u.faxQueue.name?u.faxQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.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.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFaxQueue=function(){u.errors=[],l.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(e){var t=_.find(u.faxQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FaxQueue properly saved!",msg:u.faxQueue.name?u.faxQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFaxQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.faxQueue.delete({id:u.faxQueue.id}).$promise.then(function(){return l.faxQueue.getAgents({id:u.faxQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.faxQueue.id],channel:"fax",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.faxQueues,{id:u.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(u.faxQueue.name||"faxQueue")+" has been deleted!"}),p(u.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","faxQueues","faxQueue","api","Auth","license","setting"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.faxQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.faxQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("FAX.ALL_AGENTS"),labelSelected:s.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,t){a.faxQueue[t?"removeAgents":"addAgents"]({id:l.faxQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"FaxQueue properly "+(t?"removed":"added"),msg:"FaxQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.faxQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.faxQueue[t?"removeTeams":"addTeams"]({id:o.faxQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.faxQueue.getTeams({id:o.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.faxQueue=d||e.params.faxQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:c.faxQueues?c.faxQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:c.faxQueues?c.faxQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoFaxQueues=function(){e.go("app.fax.faxQueues")},c.saveFaxQueue=function(){s.faxQueue.update({id:c.faxQueue.id},c.faxQueue).$promise.then(function(){r.success({title:"FaxQueue updated!",msg:c.faxQueue.name?c.faxQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","faxQueue"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.faxQueues=r||{count:0,rows:[]},v.table="faxQueues",v.listOrder="",v.listOrderAsc=null,v.selectedFaxQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:v.faxQueues?v.faxQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:v.faxQueues?v.faxQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.fax.realtime.queues",{})},v.success=f,v.getFaxQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.faxQueue.get(v.query,f).$promise},v.createOrEditFaxQueue=function(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:v.faxQueues.rows,license:v.license,setting:v.setting}})},v.deleteFaxQueue=A,v.exportSelectedFaxQueues=function(){var e=angular.copy(v.selectedFaxQueues);return v.selectedFaxQueues=[],e},v.deleteSelectedFaxQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+v.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFaxQueues.forEach(function(e){A(e)}),v.selectedFaxQueues=[]})},v.deselectFaxQueues=function(){v.selectedFaxQueues=[]},v.selectAllFaxQueues=function(){v.selectedFaxQueues=v.faxQueues.rows};var h=!0,b=1;function f(e){v.faxQueues=e||{count:0,rows:[]}}function A(e){l.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.faxQueues.rows,{id:e.id}),v.faxQueues.count-=1,v.faxQueues.rows.length||v.getFaxQueues(),c.success({title:"FaxQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this;function m(){_.forIn(c.faxAccounts,function(e,t){c.rpcFaxAccounts[t]&&_.merge(e,c.rpcFaxAccounts[t])}),_.forIn(c.faxAccounts,function(t,e){var n={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss")};o.faxAccount.getMessages(n).$promise.then(function(e){return e&&(t.in=e.count||0,t.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),n.direction="out",o.faxAccount.getMessages(n).$promise}).then(function(e){e&&(t.out=e.count||0,t.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}c.count=l&&l.count?l.count:0,c.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},c.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},c.query={sort:"-name",limit:10,page:1},c.success=g,c.$onInit=m,c.getFaxAccounts=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.faxAccount.get(c.query,g).$promise},c.onSave=function(e){c.faxAccounts[e.id]&&_.merge(c.faxAccounts[e.id],e)},c.onFaxMessageSave=function(e){c.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(c.faxAccounts[e.FaxAccountId].in+=1,c.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(c.faxAccounts[e.FaxAccountId].out+=1,c.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},c.goToFaxAccount=function(e,t){i.go("app.fax.faxAccounts.edit",{id:t.id,faxAccount:t})},c.order=[],_.forIn(c.faxAccounts,function(e,t){c.order.push(e.id)}),s.on("faxAccount:save",c.onSave),s.on("faxAccount:update",c.onSave),s.on("faxMessage:save",c.onFaxMessageSave);var u=!0,p=1;function g(e){if(c.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){c.order=[];for(var t=0;t<e.rows.length;t++)c.order.push(e.rows[t].id)}m()}e.$watch("vm.query.filter",function(e,t){u?n(function(){u=!1}):(t||(p=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=p),c.getFaxAccounts())}),e.$on("$destroy",function(){s.removeAllListeners("faxAccount:save"),s.removeAllListeners("faxAccount:update"),s.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"fax",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.faxQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].FaxQueueId].paused++,u.queues[e[t].rows[n].FaxQueueId].loggedInDb++,u.queues[e[t].rows[n].FaxQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].FaxQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"fax",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.faxQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditFaxQueue=function(e,t){a.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.faxQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.FaxQueueId]&&u.queues[e.FaxQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.FaxQueueId]&&u.queues[e.FaxQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.FaxQueueId]&&(u.queues[e.FaxQueueId].loggedInDb+=1,u.queues[e.FaxQueueId].agents[e.UserId]=e.FaxQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.FaxQueueId]&&0<u.queues[e.FaxQueueId].loggedInDb&&(u.queues[e.FaxQueueId].loggedInDb-=1,delete u.queues[e.FaxQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("fax_queue:save",u.onSave),d.on("userFaxQueue:save",u.onSaveMember),d.on("userFaxQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("fax_queue:save"),d.removeAllListeners("userFaxQueue:remove"),d.removeAllListeners("userFaxQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,n.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.fax.realtime.agents");break;case 1:n.go("app.fax.realtime.trunks");break;case 2:n.go("app.fax.realtime.queues");break;case 3:n.go("app.fax.realtime.accounts");break;default:n.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l){var d=this,c=["status","stateRegistry","registry","host","port","internal","state","status"];function m(){for(var e,t=0;t<d.trunks.length;t+=1)0<=(e=_.findIndex(d.rpcTrunks,["id",d.trunks[t].id]))&&_.merge(d.trunks[t],_.pick(d.rpcTrunks[e],c))}function u(e,t,n){0<=t&&_.merge(e[t],_.pick(n,c))}d.count=a.count,d.trunks=a?a.rows:[],d.rpcTrunks=i&&i.rows?i.rows:[],d.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},d.statusClass=r.status,d.stateClass=r.state,d.success=v,d.$onInit=m,d.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},d.getTrunks=function(){d.query.offset=(d.query.page-1)*d.query.limit,d.promise=o.trunk.get(d.query,v).$promise},d.goToTrunk=function(e,t){l.go("app.tools.trunks.edit",{id:t.id})},d.onSave=function(e){var t=_.findIndex(d.trunks,["id",e.id]),n=_.findIndex(d.rpcTrunks,["id",e.id]);u(d.trunks,t,e),u(d.rpcTrunks,n,e)},s.on("trunk:save",d.onSave);var p=!0,g=1;function v(e){d.count=e.count,d.trunks=e&&e.rows?e.rows:[],m()}e.$watch("vm.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=d.query.page),e!==t&&(d.query.page=1),e||(d.query.page=g),d.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,t){this.info=e,this.license=t}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_DESKACCOUNT",u.deskAccount=angular.copy(r),u.deskAccounts=s,u.newDeskAccount=!1,u.deskAccount||(u.deskAccount={type:"integrationTab",authType:"basic",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_DESKACCOUNT",u.newDeskAccount=!0),u.addNewDeskAccount=function(){u.errors=[],l.intDeskAccount.save(u.deskAccount).$promise.then(function(e){u.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:u.deskAccount.name?u.deskAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.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.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDeskAccount=function(){u.errors=[],l.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(e){var t=_.find(u.deskAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"DeskAccount properly saved!",msg:u.deskAccount.name?u.deskAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDeskAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intDeskAccount.delete({id:u.deskAccount.id}).$promise.then(function(){_.remove(u.deskAccounts,{id:u.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(u.deskAccount.name||"deskAccount")+" has been deleted!"}),p(u.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","deskAccounts","deskAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.deskAccounts=r||{count:0,rows:[]},v.table="deskAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedDeskAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",limit:10,page:1},v.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the deskAccount?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getDeskAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intDeskAccount.get(v.query,f).$promise},v.createOrEditDeskAccount=function(e,t){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:t,deskAccounts:v.deskAccounts.rows,license:v.license,setting:v.setting}})},v.deleteDeskAccount=A,v.exportSelectedDeskAccounts=function(){var e=angular.copy(v.selectedDeskAccounts);return v.selectedDeskAccounts=[],e},v.deleteSelectedDeskAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+v.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedDeskAccounts.forEach(function(e){A(e)}),v.selectedDeskAccounts=[]})},v.deselectDeskAccounts=function(){v.selectedDeskAccounts=[]},v.selectAllDeskAccounts=function(){v.selectedDeskAccounts=v.deskAccounts.rows};var h=!0,b=1;function f(e){v.deskAccounts=e||{count:0,rows:[]}}function A(e){l.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.deskAccounts.rows,{id:e.id}),v.deskAccounts.count-=1,v.deskAccounts.rows.length||v.getDeskAccounts(),c.success({title:"DeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","deskAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.deskAccount={},s.deskConfiguration={},s.configurations=[],s.selectedDeskConfiguration=-1,s.init=function(e){s.deskAccount=e,i.intDeskAccount.getConfigurations({id:s.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getDeskConfiguration=function(e){s.deskConfiguration=s.configurations[e],s.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:s.deskConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:s.deskConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:s.deskConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:s.deskConfiguration.id}).$promise.then(function(e){s.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditDeskConfiguration=function(e,t){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getDeskConfiguration(0)})},s.deleteDeskConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(t.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intDeskConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"DeskConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.deskConfiguration.id},s.deskConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedTags=[],s.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:s.deskConfiguration.id,ids:s.selectedTags}).$promise.then(function(){o.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){s.tags=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.deskConfiguration,account:s.deskAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.deskConfiguration,account:s.deskAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.deskConfiguration,account:s.deskAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",u.deskConfiguration=angular.copy(r),u.configurations=s,u.newDeskConfiguration=!1,u.deskConfiguration||(u.deskConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_DESKCONFIGURATION",u.newDeskConfiguration=!0),u.addNewDeskConfiguration=function(){u.errors=[],l.intDeskAccount.addConfiguration({id:t.params.id},u.deskConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:u.deskConfiguration.name?u.deskConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.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.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDeskConfiguration=function(){u.errors=[],l.intDeskConfiguration.update({id:u.deskConfiguration.id},u.deskConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"DeskConfiguration properly saved!",msg:u.deskConfiguration.name?u.deskConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDeskConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intDeskConfiguration.delete({id:u.deskConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(u.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),p(u.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","deskConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intDeskField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intDeskField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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.intDeskField.delete({id:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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.intDeskAccount.getFields({id:l.id}).$promise.then(function(e){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.deskAccount=d||e.params.deskAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts")},c.saveDeskAccount=function(){s.intDeskAccount.update({id:c.deskAccount.id},c.deskAccount).$promise.then(function(){r.success({title:"DeskAccount updated!",msg:c.deskAccount.name?c.deskAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","deskAccount"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",u.freshdeskAccount=angular.copy(r),u.freshdeskAccounts=s,u.newFreshdeskAccount=!1,u.freshdeskAccount||(u.freshdeskAccount={serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",u.newFreshdeskAccount=!0),u.addNewFreshdeskAccount=function(){u.errors=[],l.intFreshdeskAccount.save(u.freshdeskAccount).$promise.then(function(e){u.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.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.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFreshdeskAccount=function(){u.errors=[],l.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(e){var t=_.find(u.freshdeskAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FreshdeskAccount properly saved!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFreshdeskAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intFreshdeskAccount.delete({id:u.freshdeskAccount.id}).$promise.then(function(){_.remove(u.freshdeskAccounts,{id:u.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(u.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),p(u.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.freshdeskAccount={},s.freshdeskConfiguration={},s.configurations=[],s.selectedFreshdeskConfiguration=-1,s.init=function(e){s.freshdeskAccount=e,i.intFreshdeskAccount.getConfigurations({id:s.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getFreshdeskConfiguration=function(e){s.freshdeskConfiguration=s.configurations[e],s.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:s.freshdeskConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:s.freshdeskConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:s.freshdeskConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:s.freshdeskConfiguration.id}).$promise.then(function(e){s.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditFreshdeskConfiguration=function(e,t){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getFreshdeskConfiguration(0)})},s.deleteFreshdeskConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(t.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intFreshdeskConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"FreshdeskConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.freshdeskConfiguration.id},s.freshdeskConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedTags=[],s.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:s.freshdeskConfiguration.id,ids:s.selectedTags}).$promise.then(function(){o.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){s.tags=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.freshdeskConfiguration,account:s.freshdeskAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.freshdeskConfiguration,account:s.freshdeskAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.freshdeskConfiguration,account:s.freshdeskAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",u.freshdeskConfiguration=angular.copy(r),u.configurations=s,u.newFreshdeskConfiguration=!1,u.freshdeskConfiguration||(u.freshdeskConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",u.newFreshdeskConfiguration=!0),u.addNewFreshdeskConfiguration=function(){u.errors=[],l.intFreshdeskAccount.addConfiguration({id:t.params.id},u.freshdeskConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:u.freshdeskConfiguration.name?u.freshdeskConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.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.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveFreshdeskConfiguration=function(){u.errors=[],l.intFreshdeskConfiguration.update({id:u.freshdeskConfiguration.id},u.freshdeskConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"FreshdeskConfiguration properly saved!",msg:u.freshdeskConfiguration.name?u.freshdeskConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteFreshdeskConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intFreshdeskConfiguration.delete({id:u.freshdeskConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(u.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),p(u.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intFreshdeskField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intFreshdeskField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.freshdeskAccount=d||e.params.freshdeskAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts")},c.saveFreshdeskAccount=function(){s.intFreshdeskAccount.update({id:c.freshdeskAccount.id},c.freshdeskAccount).$promise.then(function(){r.success({title:"FreshdeskAccount updated!",msg:c.freshdeskAccount.name?c.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","freshdeskAccount"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.freshdeskAccounts=r||{count:0,rows:[]},v.table="freshdeskAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedFreshdeskAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,page:1},v.editstate=function(e,t){n.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getFreshdeskAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intFreshdeskAccount.get(v.query,f).$promise},v.createOrEditFreshdeskAccount=function(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:v.freshdeskAccounts.rows,license:v.license,setting:v.setting}})},v.deleteFreshdeskAccount=A,v.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(v.selectedFreshdeskAccounts);return v.selectedFreshdeskAccounts=[],e},v.deleteSelectedFreshdeskAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+v.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFreshdeskAccounts.forEach(function(e){A(e)}),v.selectedFreshdeskAccounts=[]})},v.deselectFreshdeskAccounts=function(){v.selectedFreshdeskAccounts=[]},v.selectAllFreshdeskAccounts=function(){v.selectedFreshdeskAccounts=v.freshdeskAccounts.rows};var h=!0,b=1;function f(e){v.freshdeskAccounts=e||{count:0,rows:[]}}function A(e){l.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.freshdeskAccounts.rows,{id:e.id}),v.freshdeskAccounts.count-=1,v.freshdeskAccounts.rows.length||v.getFreshdeskAccounts(),c.success({title:"FreshdeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","freshdeskAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",u.salesforceAccount=angular.copy(r),u.salesforceAccounts=s,u.newSalesforceAccount=!1,u.salesforceAccount||(u.salesforceAccount={type:"integrationTab",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",u.newSalesforceAccount=!0),u.addNewSalesforceAccount=function(){u.errors=[],l.intSalesforceAccount.save(u.salesforceAccount).$promise.then(function(e){u.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.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.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSalesforceAccount=function(){u.errors=[],l.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(e){var t=_.find(u.salesforceAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SalesforceAccount properly saved!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSalesforceAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSalesforceAccount.delete({id:u.salesforceAccount.id}).$promise.then(function(){_.remove(u.salesforceAccounts,{id:u.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(u.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),p(u.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.salesforceAccount={},s.salesforceConfiguration={},s.configurations=[],s.selectedSalesforceConfiguration=-1,s.init=function(e){s.salesforceAccount=e,i.intSalesforceAccount.getConfigurations({id:s.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getSalesforceConfiguration=function(e){s.salesforceConfiguration=s.configurations[e],s.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:s.salesforceConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:s.salesforceConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:s.salesforceConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditSalesforceConfiguration=function(e,t){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getSalesforceConfiguration(0)})},s.deleteSalesforceConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(t.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intSalesforceConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"SalesforceConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.salesforceConfiguration.id},s.salesforceConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.salesforceConfiguration,account:s.salesforceAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.salesforceConfiguration,account:s.salesforceAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.salesforceConfiguration,account:s.salesforceAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",u.salesforceConfiguration=angular.copy(r),u.configurations=s,u.newSalesforceConfiguration=!1,u.salesforceConfiguration||(u.salesforceConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",u.newSalesforceConfiguration=!0),u.addNewSalesforceConfiguration=function(){u.errors=[],l.intSalesforceAccount.addConfiguration({id:t.params.id},u.salesforceConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:u.salesforceConfiguration.name?u.salesforceConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.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.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSalesforceConfiguration=function(){u.errors=[],l.intSalesforceConfiguration.update({id:u.salesforceConfiguration.id},u.salesforceConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SalesforceConfiguration properly saved!",msg:u.salesforceConfiguration.name?u.salesforceConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSalesforceConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSalesforceConfiguration.delete({id:u.salesforceConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(u.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),p(u.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","salesforceConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSalesforceField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSalesforceField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.salesforceAccount=d||e.params.salesforceAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts")},c.saveSalesforceAccount=function(){s.intSalesforceAccount.update({id:c.salesforceAccount.id},c.salesforceAccount).$promise.then(function(){r.success({title:"SalesforceAccount updated!",msg:c.salesforceAccount.name?c.salesforceAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","salesforceAccount"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.salesforceAccounts=r||{count:0,rows:[]},v.table="salesforceAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedSalesforceAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,page:1},v.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSalesforceAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intSalesforceAccount.get(v.query,f).$promise},v.createOrEditSalesforceAccount=function(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:v.salesforceAccounts.rows,license:v.license,setting:v.setting}})},v.deleteSalesforceAccount=A,v.exportSelectedSalesforceAccounts=function(){var e=angular.copy(v.selectedSalesforceAccounts);return v.selectedSalesforceAccounts=[],e},v.deleteSelectedSalesforceAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+v.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSalesforceAccounts.forEach(function(e){A(e)}),v.selectedSalesforceAccounts=[]})},v.deselectSalesforceAccounts=function(){v.selectedSalesforceAccounts=[]},v.selectAllSalesforceAccounts=function(){v.selectedSalesforceAccounts=v.salesforceAccounts.rows};var h=!0,b=1;function f(e){v.salesforceAccounts=e||{count:0,rows:[]}}function A(e){l.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.salesforceAccounts.rows,{id:e.id}),v.salesforceAccounts.count-=1,v.salesforceAccounts.rows.length||v.getSalesforceAccounts(),c.success({title:"SalesforceAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","salesforceAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",u.sugarcrmAccount=angular.copy(r),u.sugarcrmAccounts=s,u.newSugarcrmAccount=!1,u.sugarcrmAccount||(u.sugarcrmAccount={serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",u.newSugarcrmAccount=!0),u.addNewSugarcrmAccount=function(){u.errors=[],l.intSugarcrmAccount.save(u.sugarcrmAccount).$promise.then(function(e){u.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.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.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSugarcrmAccount=function(){u.errors=[],l.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(e){var t=_.find(u.sugarcrmAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SugarcrmAccount properly saved!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSugarcrmAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSugarcrmAccount.delete({id:u.sugarcrmAccount.id}).$promise.then(function(){_.remove(u.sugarcrmAccounts,{id:u.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(u.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),p(u.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.sugarcrmAccount={},s.sugarcrmConfiguration={},s.configurations=[],s.selectedSugarcrmConfiguration=-1,s.init=function(e){s.sugarcrmAccount=e,i.intSugarcrmAccount.getConfigurations({id:s.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getSugarcrmConfiguration=function(e){s.sugarcrmConfiguration=s.configurations[e],s.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:s.sugarcrmConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:s.sugarcrmConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:s.sugarcrmConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditSugarcrmConfiguration=function(e,t){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getSugarcrmConfiguration(0)})},s.deleteSugarcrmConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(t.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intSugarcrmConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"SugarcrmConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.sugarcrmConfiguration.id},s.sugarcrmConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.sugarcrmConfiguration,account:s.sugarcrmAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.sugarcrmConfiguration,account:s.sugarcrmAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.sugarcrmConfiguration,account:s.sugarcrmAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",u.sugarcrmConfiguration=angular.copy(r),u.configurations=s,u.newSugarcrmConfiguration=!1,u.sugarcrmConfiguration||(u.sugarcrmConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",u.newSugarcrmConfiguration=!0),u.addNewSugarcrmConfiguration=function(){u.errors=[],l.intSugarcrmAccount.addConfiguration({id:t.params.id},u.sugarcrmConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:u.sugarcrmConfiguration.name?u.sugarcrmConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.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.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSugarcrmConfiguration=function(){u.errors=[],l.intSugarcrmConfiguration.update({id:u.sugarcrmConfiguration.id},u.sugarcrmConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SugarcrmConfiguration properly saved!",msg:u.sugarcrmConfiguration.name?u.sugarcrmConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSugarcrmConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intSugarcrmConfiguration.delete({id:u.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(u.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),p(u.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSugarcrmField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intSugarcrmField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.sugarcrmAccount=d||e.params.sugarcrmAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts")},c.saveSugarcrmAccount=function(){s.intSugarcrmAccount.update({id:c.sugarcrmAccount.id},c.sugarcrmAccount).$promise.then(function(){r.success({title:"SugarcrmAccount updated!",msg:c.sugarcrmAccount.name?c.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","sugarcrmAccount"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.sugarcrmAccounts=r||{count:0,rows:[]},v.table="sugarcrmAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedSugarcrmAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,page:1},v.editstate=function(e,t){n.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSugarcrmAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intSugarcrmAccount.get(v.query,f).$promise},v.createOrEditSugarcrmAccount=function(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:v.sugarcrmAccounts.rows,license:v.license,setting:v.setting}})},v.deleteSugarcrmAccount=A,v.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(v.selectedSugarcrmAccounts);return v.selectedSugarcrmAccounts=[],e},v.deleteSelectedSugarcrmAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+v.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSugarcrmAccounts.forEach(function(e){A(e)}),v.selectedSugarcrmAccounts=[]})},v.deselectSugarcrmAccounts=function(){v.selectedSugarcrmAccounts=[]},v.selectAllSugarcrmAccounts=function(){v.selectedSugarcrmAccounts=v.sugarcrmAccounts.rows};var h=!0,b=1;function f(e){v.sugarcrmAccounts=e||{count:0,rows:[]}}function A(e){l.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.sugarcrmAccounts.rows,{id:e.id}),v.sugarcrmAccounts.count-=1,v.sugarcrmAccounts.rows.length||v.getSugarcrmAccounts(),c.success({title:"SugarcrmAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sugarcrmAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",u.vtigerAccount=angular.copy(r),u.vtigerAccounts=s,u.newVtigerAccount=!1,u.vtigerAccount||(u.vtigerAccount={serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_VTIGERACCOUNT",u.newVtigerAccount=!0),u.addNewVtigerAccount=function(){u.errors=[],l.intVtigerAccount.save(u.vtigerAccount).$promise.then(function(e){u.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.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.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVtigerAccount=function(){u.errors=[],l.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(e){var t=_.find(u.vtigerAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VtigerAccount properly saved!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVtigerAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intVtigerAccount.delete({id:u.vtigerAccount.id}).$promise.then(function(){_.remove(u.vtigerAccounts,{id:u.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(u.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),p(u.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.vtigerAccount={},s.vtigerConfiguration={},s.configurations=[],s.selectedVtigerConfiguration=-1,s.init=function(e){s.vtigerAccount=e,i.intVtigerAccount.getConfigurations({id:s.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getVtigerConfiguration=function(e){s.vtigerConfiguration=s.configurations[e],s.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:s.vtigerConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:s.vtigerConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:s.vtigerConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditVtigerConfiguration=function(e,t){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getVtigerConfiguration(0)})},s.deleteVtigerConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(t.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intVtigerConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"VtigerConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.vtigerConfiguration.id},s.vtigerConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.vtigerConfiguration,account:s.vtigerAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.vtigerConfiguration,account:s.vtigerAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.vtigerConfiguration,account:s.vtigerAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",u.vtigerConfiguration=angular.copy(r),u.configurations=s,u.newVtigerConfiguration=!1,u.vtigerConfiguration||(u.vtigerConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",u.newVtigerConfiguration=!0),u.addNewVtigerConfiguration=function(){u.errors=[],l.intVtigerAccount.addConfiguration({id:t.params.id},u.vtigerConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:u.vtigerConfiguration.name?u.vtigerConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.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.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVtigerConfiguration=function(){u.errors=[],l.intVtigerConfiguration.update({id:u.vtigerConfiguration.id},u.vtigerConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VtigerConfiguration properly saved!",msg:u.vtigerConfiguration.name?u.vtigerConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVtigerConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intVtigerConfiguration.delete({id:u.vtigerConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(u.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),p(u.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","vtigerConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intVtigerField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intVtigerField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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.intVtigerField.delete({id:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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.intVtigerAccount.getFields({id:l.id}).$promise.then(function(e){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.vtigerAccount=d||e.params.vtigerAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts")},c.saveVtigerAccount=function(){s.intVtigerAccount.update({id:c.vtigerAccount.id},c.vtigerAccount).$promise.then(function(){r.success({title:"VtigerAccount updated!",msg:c.vtigerAccount.name?c.vtigerAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","vtigerAccount"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.vtigerAccounts=r||{count:0,rows:[]},v.table="vtigerAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedVtigerAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",limit:10,page:1},v.editstate=function(e,t){n.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the vtigerAccount?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVtigerAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intVtigerAccount.get(v.query,f).$promise},v.createOrEditVtigerAccount=function(e,t){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:t,vtigerAccounts:v.vtigerAccounts.rows,license:v.license,setting:v.setting}})},v.deleteVtigerAccount=A,v.exportSelectedVtigerAccounts=function(){var e=angular.copy(v.selectedVtigerAccounts);return v.selectedVtigerAccounts=[],e},v.deleteSelectedVtigerAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+v.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVtigerAccounts.forEach(function(e){A(e)}),v.selectedVtigerAccounts=[]})},v.deselectVtigerAccounts=function(){v.selectedVtigerAccounts=[]},v.selectAllVtigerAccounts=function(){v.selectedVtigerAccounts=v.vtigerAccounts.rows};var h=!0,b=1;function f(e){v.vtigerAccounts=e||{count:0,rows:[]}}function A(e){l.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.vtigerAccounts.rows,{id:e.id}),v.vtigerAccounts.count-=1,v.vtigerAccounts.rows.length||v.getVtigerAccounts(),c.success({title:"VtigerAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","vtigerAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",u.zendeskAccount=angular.copy(r),u.zendeskAccounts=s,u.newZendeskAccount=!1,u.zendeskAccount||(u.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",u.newZendeskAccount=!0),u.addNewZendeskAccount=function(){u.errors=[],l.intZendeskAccount.save(u.zendeskAccount).$promise.then(function(e){u.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.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.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZendeskAccount=function(){u.errors=[],l.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(e){var t=_.find(u.zendeskAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZendeskAccount properly saved!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZendeskAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZendeskAccount.delete({id:u.zendeskAccount.id}).$promise.then(function(){_.remove(u.zendeskAccounts,{id:u.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(u.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),p(u.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZendeskField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZendeskField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.zendeskAccount=d||e.params.zendeskAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts")},c.saveZendeskAccount=function(){s.intZendeskAccount.update({id:c.zendeskAccount.id},c.zendeskAccount).$promise.then(function(){r.success({title:"ZendeskAccount updated!",msg:c.zendeskAccount.name?c.zendeskAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","zendeskAccount"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.zendeskAccount={},s.zendeskConfiguration={},s.zendeskConfigurations=[],s.selectedZendeskConfiguration=-1,s.init=function(e){s.zendeskAccount=e,i.intZendeskAccount.getConfigurations({id:s.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.zendeskConfigurations=e.rows?e.rows:[],s.zendeskConfigurations.length&&s.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getZendeskConfiguration=function(e){s.zendeskConfiguration=s.zendeskConfigurations[e],s.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:s.zendeskConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:s.zendeskConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:s.zendeskConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:s.zendeskConfiguration.id}).$promise.then(function(e){s.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditZendeskConfiguration=function(e,t){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:t,zendeskConfigurations:s.zendeskConfigurations,license:null,setting:null}}).finally(function(){s.getZendeskConfiguration(0)})},s.deleteZendeskConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(t.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intZendeskConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.zendeskConfigurations,{id:t.id}),o.success({title:"ZendeskConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.zendeskConfiguration.id},s.zendeskConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedTags=[],s.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:s.zendeskConfiguration.id,ids:s.selectedTags}).$promise.then(function(){o.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){s.tags=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.zendeskConfiguration,account:s.zendeskAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.zendeskConfiguration,account:s.zendeskAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.zendeskConfiguration,account:s.zendeskAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",u.zendeskConfiguration=angular.copy(r),u.zendeskConfigurations=s,u.newZendeskConfiguration=!1,u.zendeskConfiguration||(u.zendeskConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",u.newZendeskConfiguration=!0),u.addNewZendeskConfiguration=function(){u.errors=[],l.intZendeskAccount.addConfiguration({id:t.params.id},u.zendeskConfiguration).$promise.then(function(e){u.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:u.zendeskConfiguration.name?u.zendeskConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.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.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZendeskConfiguration=function(){u.errors=[],l.intZendeskConfiguration.update({id:u.zendeskConfiguration.id},u.zendeskConfiguration).$promise.then(function(e){var t=_.find(u.zendeskConfigurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZendeskConfiguration properly saved!",msg:u.zendeskConfiguration.name?u.zendeskConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZendeskConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZendeskConfiguration.delete({id:u.zendeskConfiguration.id}).$promise.then(function(){_.remove(u.zendeskConfigurations,{id:u.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(u.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),p(u.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.zendeskAccounts=r||{count:0,rows:[]},v.table="zendeskAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedZendeskAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",limit:10,page:1},v.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getZendeskAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intZendeskAccount.get(v.query,f).$promise},v.createOrEditZendeskAccount=function(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:v.zendeskAccounts.rows,license:v.license,setting:v.setting}})},v.deleteZendeskAccount=A,v.exportSelectedZendeskAccounts=function(){var e=angular.copy(v.selectedZendeskAccounts);return v.selectedZendeskAccounts=[],e},v.deleteSelectedZendeskAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+v.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedZendeskAccounts.forEach(function(e){A(e)}),v.selectedZendeskAccounts=[]})},v.deselectZendeskAccounts=function(){v.selectedZendeskAccounts=[]},v.selectAllZendeskAccounts=function(){v.selectedZendeskAccounts=v.zendeskAccounts.rows};var h=!0,b=1;function f(e){v.zendeskAccounts=e||{count:0,rows:[]}}function A(e){l.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.zendeskAccounts.rows,{id:e.id}),v.zendeskAccounts.count-=1,v.zendeskAccounts.rows.length||v.getZendeskAccounts(),c.success({title:"ZendeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zendeskAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",u.zohoAccount=angular.copy(r),u.zohoAccounts=s,u.newZohoAccount=!1,u.zohoAccount||(u.zohoAccount={host:"zoho.com",serverUrl:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():"")},u.title="INTEGRATIONS.NEW_ZOHOACCOUNT",u.newZohoAccount=!0),u.addNewZohoAccount=function(){u.errors=[],l.intZohoAccount.save(u.zohoAccount).$promise.then(function(e){u.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:u.zohoAccount.name?u.zohoAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.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.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZohoAccount=function(){u.errors=[],l.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(e){var t=_.find(u.zohoAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZohoAccount properly saved!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZohoAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZohoAccount.delete({id:u.zohoAccount.id}).$promise.then(function(){_.remove(u.zohoAccounts,{id:u.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(u.zohoAccount.name||"zohoAccount")+" has been deleted!"}),p(u.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,n,i,o,e){var s=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(s.subjects,{id:e.id}),o.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(s.descriptions,{id:e.id}),o.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(s.fields,{id:e.id}),o.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}s.currentUser=e.getCurrentUser(),s.zohoAccount={},s.zohoConfiguration={},s.configurations=[],s.selectedZohoConfiguration=-1,s.init=function(e){s.zohoAccount=e,i.intZohoAccount.getConfigurations({id:s.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return s.configurations=e.rows?e.rows:[],s.configurations.length&&s.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){s.variables=e.rows?e.rows:[],s.variablesById=_.keyBy(s.variables,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getZohoConfiguration=function(e){s.zohoConfiguration=s.configurations[e],s.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:s.zohoConfiguration.id}).$promise.then(function(e){return s.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:s.zohoConfiguration.id}).$promise}).then(function(e){return s.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:s.zohoConfiguration.id}).$promise}).then(function(e){s.fields=e.rows?e.rows:[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.createOrEditZohoConfiguration=function(e,t){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:t,configurations:s.configurations,license:null,setting:null}}).finally(function(){s.getZohoConfiguration(0)})},s.deleteZohoConfiguration=function(e,t){var n=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(t.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){i.intZohoConfiguration.delete({id:t.id}).$promise.then(function(){_.remove(s.configurations,{id:t.id}),o.success({title:"ZohoConfiguration deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){s.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},s.selectChangedAdvanced=function(){return i.intSalesforceConfiguration.update({id:s.zohoConfiguration.id},s.zohoConfiguration).$promise.then(function(){o.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.selectedSubjects=[],s.createOrEditSubject=function(e,t){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:t,items:s.subjects,configuration:s.zohoConfiguration,account:s.zohoAccount,license:null,setting:null}})},s.deleteSubjectConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){r(t)},function(){console.log("CANCEL")})},s.deleteSelectedSubjects=function(e){var t=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+s.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedSubjects.forEach(function(e){r(e)}),s.selectedSubjects=[]})},s.selectedDescriptions=[],s.createOrEditDescription=function(e,t){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:t,items:s.descriptions,configuration:s.zohoConfiguration,account:s.zohoAccount,license:null,setting:null}})},s.deleteDescriptionConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){l(t)},function(){console.log("CANCEL")})},s.deleteSelectedDescriptions=function(e){var t=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+s.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedDescriptions.forEach(function(e){l(e)}),s.selectedDescriptions=[]})},s.selectedFields=[],s.createOrEditField=function(e,t){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:t,items:s.fields,configuration:s.zohoConfiguration,account:s.zohoAccount,license:null,setting:null}})},s.deleteFieldConfirm=function(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){d(t)},function(){console.log("CANCEL")})},s.deleteSelectedFields=function(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+s.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){s.selectedFields.forEach(function(e){d(e)}),s.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",u.zohoConfiguration=angular.copy(r),u.configurations=s,u.newZohoConfiguration=!1,u.zohoConfiguration||(u.zohoConfiguration={channel:"voice",type:"inbound"},u.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",u.newZohoConfiguration=!0),u.addNewZohoConfiguration=function(){u.errors=[],l.intZohoAccount.addConfiguration({id:t.params.id},u.zohoConfiguration).$promise.then(function(e){u.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:u.zohoConfiguration.name?u.zohoConfiguration.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.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.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveZohoConfiguration=function(){u.errors=[],l.intZohoConfiguration.update({id:u.zohoConfiguration.id},u.zohoConfiguration).$promise.then(function(e){var t=_.find(u.configurations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"ZohoConfiguration properly saved!",msg:u.zohoConfiguration.name?u.zohoConfiguration.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteZohoConfiguration=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.intZohoConfiguration.delete({id:u.zohoConfiguration.id}).$promise.then(function(){_.remove(u.configurations,{id:u.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(u.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),p(u.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var t=0;t<e.data.errors.length;t++)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.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","configurations","zohoConfiguration","api","Auth","license","setting"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){a.hide()}m.errors=[],m.title="INTEGRATIONS.EDIT_"+_.toUpper(d),m.item=angular.copy(r),m.items=s,m.type=d,m.newItem=!1,m.item||(m.item={type:"string"},m.item[_.capitalize(d)+"Id"]=o.id,m.title="INTEGRATIONS.NEW_"+_.toUpper(d),m.newItem=!0),m.addNewItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZohoField.save(m.item).$promise.then(function(e){m.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},m.saveItem=function(){m.errors=[],m.customField&&(m.item.idField=m.customField.id,m.item.nameField=m.customField.name,m.item.customField=m.customField.custom);c.intZohoField.update({id:m.item.id},m.item).$promise.then(function(e){var t=_.find(m.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},m.deleteItem=function(e){m.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.intZohoField.delete({id:m.item.id}).$promise.then(function(){_.remove(m.items,{id:m.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),u()}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},m.getSelectedVariable=function(){return void 0!==m.item.variableName?m.item.variableName:"Please select a variable"},m.closeDialog=u,c.variable.get({nolimit:!0}).$promise.then(function(e){return m.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return m.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){m.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),m.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.intZohoAccount.getFields({id:l.id}).$promise.then(function(e){m.accountConnected=!0,m.fields=e.rows?e.rows:[],m.item.idField&&(m.customField=_.find(m.fields,{id:m.item.idField}))}).catch(function(e){m.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.zohoAccount=d||e.params.zohoAccount||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts")},c.saveZohoAccount=function(){s.intZohoAccount.update({id:c.zohoAccount.id},c.zohoAccount).$promise.then(function(){r.success({title:"ZohoAccount updated!",msg:c.zohoAccount.name?c.zohoAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","zohoAccount"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.zohoAccounts=r||{count:0,rows:[]},v.table="zohoAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedZohoAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",limit:10,page:1},v.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e})},v.testtestintegrationaccount=function(e,t){return l.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){c.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the zohoAccount?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getZohoAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.intZohoAccount.get(v.query,f).$promise},v.createOrEditZohoAccount=function(e,t){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:t,zohoAccounts:v.zohoAccounts.rows,license:v.license,setting:v.setting}})},v.deleteZohoAccount=A,v.exportSelectedZohoAccounts=function(){var e=angular.copy(v.selectedZohoAccounts);return v.selectedZohoAccounts=[],e},v.deleteSelectedZohoAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+v.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedZohoAccounts.forEach(function(e){A(e)}),v.selectedZohoAccounts=[]})},v.deselectZohoAccounts=function(){v.selectedZohoAccounts=[]},v.selectAllZohoAccounts=function(){v.selectedZohoAccounts=v.zohoAccounts.rows};var h=!0,b=1;function f(e){v.zohoAccounts=e||{count:0,rows:[]}}function A(e){l.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.zohoAccounts.rows,{id:e.id}),v.zohoAccounts.count-=1,v.zohoAccounts.rows.length||v.getZohoAccounts(),c.success({title:"ZohoAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zohoAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="JSCRIPTY.EDIT_PROJECT",u.project=angular.copy(r),u.projects=s,u.newProject=!1,u.project||(u.project={enableUncompleteSave:!0},u.title="JSCRIPTY.NEW_PROJECT",u.newProject=!0),u.addNewProject=function(){u.errors=[],l.jscriptyProject.save(u.project).$promise.then(function(e){u.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:u.project.name?u.project.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.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.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveProject=function(){u.errors=[],l.jscriptyProject.update({id:u.project.id},u.project).$promise.then(function(e){var t=_.find(u.projects,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Project properly saved!",msg:u.project.name?u.project.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var t=0;t<e.data.errors.length;t++)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.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteProject=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.jscriptyProject.delete({id:u.project.id}).$promise.then(function(){_.remove(u.projects,{id:u.project.id}),o.success({title:"Project properly deleted!",msg:(u.project.name||"project")+" has been deleted!"}),p(u.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var t=0;t<e.data.errors.length;t++)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.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","projects","project","api","Auth","license","setting"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.project={},s.localizationMap=o;var r=new Date;r.setHours(0,0,0,0),s.pickerModel={dateStart:r,dateEnd:null,selectedTemplate:"TD"},s.init=function(e){s.project=e,s.getAnswers()},s.getSummary=function(){return a.jscriptyProject.getSummary({id:s.project.id,dateStart:moment(s.pickerModel.dateStart).format("YYYY-MM-DD HH:mm:ss"),dateEnd:moment(s.pickerModel.dateEnd).format("YYYY-MM-DD HH:mm:ss"),nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var t=[e.buffer],n=new Blob(t,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(n)),a.setAttribute("download","jscriptyProjectSummary_"+s.project.id+".csv"),a.click()}else i.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.getAnswers=function(){return s.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:s.project.id,sort:"-createdAt,questionId",dateStart:s.pickerModel.dateStart,dateEnd:s.pickerModel.dateEnd,nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){s.answers={};for(var t=0,n=e.count;t<n;t++)e.rows[t].questionId&&(s.hasIdAnswers=!0,s.answers.hasOwnProperty(e.rows[t].questionId)||(s.answers[e.rows[t].questionId]={question:e.rows[t].question,answers:{},sum:0}),""===e.rows[t].answer&&(e.rows[t].answer="NO_ANSWER"),s.answers[e.rows[t].questionId].answers[e.rows[t].answer]?s.answers[e.rows[t].questionId].answers[e.rows[t].answer]+=1:s.answers[e.rows[t].questionId].answers[e.rows[t].answer]=1,s.answers[e.rows[t].questionId].sum+=1)}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var t=this;t.project={},t.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},t.init=function(e){t.project=e,_.isObjectLike(e.formData)?t.project.formData=e.formData:t.isJsonString(e.formData)?t.project.formData=JSON.parse(e.formData):t.project.formData={}},t.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=o,r.title=s.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),n.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,t){var s=this;s.project={},s.responseData={},s.formViewer={},s.init=function(e){s.project=e,t.$on("mwForm.pageEvents.pageCurrentChanged",function(e,t){if(t.currentPage&&s.project.formData&&s.project.formData.pages)for(var n=0,a=s.project.formData.pages.length;n<a;n++)if(t.currentPage.number<n+1&&s.project.formData.pages[n].elements)for(var i=0,o=s.project.formData.pages[n].elements.length;i<o;i++)"question"===s.project.formData.pages[n].elements[i].type&&s.project.formData.pages[n].elements[i].question&&delete s.responseData[s.project.formData.pages[n].elements[i].question.id]})},s.onSubmit=function(e){var t=a.defer(),n=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(n).then(function(){t.resolve(!0)},function(){t.reject()}),t.promise},s.resetViewer=function(){s.formViewer.reset&&s.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.project={},c.projectSessions={count:0,rows:[]},c.selectedProjectSessions=[],c.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},c.init=function(e){c.project=e,c.query.id=c.project.id,c.getProjectSessions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getProjectSessions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.jscriptyProject.getSessions(c.query,p).$promise},c.createOrEditProjectSession=function(e,t){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:c.project,session:t,sessions:c.projectSessions.rows,license:null,setting:null}})},c.showQuestionsProjectSession=function(e,n){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,t){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:n.id})}]},locals:{project:c.project,session:n}})},c.exportSelectedProjectSessions=function(){var e=angular.copy(c.selectedProjectSessions);return c.selectedProjectSessions=[],e},c.deleteProjectSession=g,c.deleteSelectedProjectSessions=function(e){var t=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+c.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedProjectSessions.forEach(function(e){g(e)}),c.selectedProjectSessions=[]})};var m=!0,u=1;function p(e){c.projectSessions=e||{count:0,rows:[]}}function g(e){l.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(c.projectSessions.rows,{id:e.id}),c.projectSessions.count-=1,c.projectSessions.rows.length||c.getProjectSessions(),r.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getProjectSessions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=o,this.questions=s,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.project=d||e.params.project||{},c.selectedTab=e.params.tab||0,c.clonedialog=function(e,t){n.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{project:e,projects:c.projects?c.projects.rows:[]}})},c.alert=r.info,c.gotoProjects=function(){e.go("app.jscripty.projects")},c.saveProject=function(){s.jscriptyProject.update({id:c.project.id},c.project).$promise.then(function(){r.success({title:"Project updated!",msg:c.project.name?c.project.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","project"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.projects=r||{count:0,rows:[]},v.table="projects",v.listOrder="",v.listOrderAsc=null,v.selectedProjects=[],v.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,description,formData",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.jscripty.projects.edit",{id:e.id,project:e})},v.clonedialog=function(e,t){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{project:e,projects:v.projects?v.projects.rows:[]}})},v.sessionsgoto=function(e,t){n.go("app.jscripty.projects.edit",{id:e.id,tab:3})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getProjects=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.jscriptyProject.get(v.query,f).$promise},v.createOrEditProject=function(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:v.projects.rows,license:v.license,setting:v.setting}})},v.deleteProject=A,v.exportSelectedProjects=function(){var e=angular.copy(v.selectedProjects);return v.selectedProjects=[],e},v.deleteSelectedProjects=function(e){var t=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+v.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedProjects.forEach(function(e){A(e)}),v.selectedProjects=[]})},v.deselectProjects=function(){v.selectedProjects=[]},v.selectAllProjects=function(){v.selectedProjects=v.projects.rows};var h=!0,b=1;function f(e){v.projects=e||{count:0,rows:[]}}function A(e){l.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(v.projects.rows,{id:e.id}),v.projects.count-=1,v.projects.rows.length||v.getProjects(),c.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","projects","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILACCOUNT",u.mailAccount=angular.copy(r),u.mailAccounts=s,u.newMailAccount=!1,u.mailAccount||(u.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="MAIL.NEW_MAILACCOUNT",u.newMailAccount=!0),t.params.id&&(u.mailAccount.MailAccountId=t.params.id),u.addNewMailAccount=function(){u.errors=[],l.mailAccount.save(u.mailAccount).$promise.then(function(e){var t="add"+_.upperFirst("mailAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.mailAccounts.unshift(e.toJSON()),i.success({title:"MailAccount properly created",msg:u.mailAccount.name?u.mailAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.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.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailAccount=function(){u.errors=[],l.mailAccount.update({id:u.mailAccount.id},u.mailAccount).$promise.then(function(e){var t=_.find(u.mailAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"MailAccount properly saved!",msg:u.mailAccount.name?u.mailAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteMailAccount=function(e){if(u.mailAccount.service)return i.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailAccount.delete({id:u.mailAccount.id}).$promise.then(function(){return l.mailAccount.getAgents({id:u.mailAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("mailAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.mailAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.mailAccounts,{id:u.mailAccount.id}),i.success({title:"MailAccount properly deleted!",msg:(u.mailAccount.name||"mailAccount")+" has been deleted!"}),p(u.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailAccounts","mailAccount","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.mailAccountApps.rows.length){var n=r.mailAccountApps.rows[t]?r.mailAccountApps.rows[t]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:n,mailAccount:r.mailAccount}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[t]=e:r.mailAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.mailAccountApps.rows.length;n++,0){var a=r.mailAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"html",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.mailAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=s.mailAccount.getApplications(r.query,n).$promise},r.editMailAccountApp=t,r.editInterval=function(e,t){if(r.mailAccountApps.rows.length){var n=r.mailAccountApps.rows[t]?r.mailAccountApps.rows[t]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.mailAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.mailAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MAIL.ALL_AGENTS"),labelSelected:s.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,t){a.mailAccount[t?"removeAgents":"addAgents"]({id:l.mailAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"MailAccount properly "+(t?"removed":"added"),msg:"MailAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("mail")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="MAIL.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveMailAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","mailAccountApp","mailAccount","api"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.mailAccount={},c.mailAccountInteractions={count:0,rows:[]},c.selectedMailAccountInteractions=[],c.query={fields:"createdAt,updatedAt,UserId,ContactId,MailAccountId,id,Contact.firstName,Owner.name,closedAt,disposition,note,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.mailAccount=e,c.query.id=c.mailAccount.id,c.getMailAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.mailInteractionDownload=function(o,e,t){return l.mailInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="mail-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getMailAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.mailAccount.getInteractions(c.query,p).$promise},c.createOrEditMailAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:c.mailAccount,interaction:t,interactions:c.mailAccountInteractions.rows,license:null,setting:null}})},c.spymailInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"mail",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedMailAccountInteractions=function(){var e=angular.copy(c.selectedMailAccountInteractions);return c.selectedMailAccountInteractions=[],e},c.deleteMailAccountInteraction=g,c.deleteSelectedMailAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMailAccountInteractions.forEach(function(e){g(e)}),c.selectedMailAccountInteractions=[]})};var m=!0,u=1;function p(e){c.mailAccountInteractions=e||{count:0,rows:[]}}function g(e){l.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.mailAccountInteractions.rows,{id:e.id}),c.mailAccountInteractions.count-=1,c.mailAccountInteractions.rows.length||c.getMailAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMailAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.mailAccount={},c.mailAccountMailCannedAnswers={count:0,rows:[]},c.selectedMailAccountMailCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.mailAccount=e,c.query.id=c.mailAccount.id,c.query.MailAccountId=c.mailAccount.id,c.getMailAccountMailCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getMailAccountMailCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.mailAccount.getAnswers(c.query,p).$promise},c.createOrEditMailAccountMailCannedAnswer=function(e,t){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:c.mailAccount,mailCannedAnswer:t,mailCannedAnswers:c.mailAccountMailCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(c.selectedMailAccountMailCannedAnswers);return c.selectedMailAccountMailCannedAnswers=[],e},c.deleteMailAccountMailCannedAnswer=g,c.deleteSelectedMailAccountMailCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+c.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),c.selectedMailAccountMailCannedAnswers=[]})};var m=!0,u=1;function p(e){c.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.mailAccountMailCannedAnswers.rows,{id:e.id}),c.mailAccountMailCannedAnswers.count-=1,c.mailAccountMailCannedAnswers.rows.length||c.getMailAccountMailCannedAnswers(),r.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMailAccountMailCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILCANNEDANSWER",u.mailCannedAnswer=angular.copy(r),u.mailCannedAnswers=s,u.newMailCannedAnswer=!1,u.mailCannedAnswer||(u.mailCannedAnswer={},u.title="MAIL.NEW_MAILCANNEDANSWER",u.newMailCannedAnswer=!0),t.params.id&&(u.mailCannedAnswer.MailAccountId=t.params.id),u.addNewMailCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.mailCannedAnswer).$promise.then(function(e){u.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:u.mailCannedAnswer.name?u.mailCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.mailCannedAnswer.id},u.mailCannedAnswer).$promise.then(function(e){var t=_.find(u.mailCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailCannedAnswer properly saved!",msg:u.mailCannedAnswer.name?u.mailCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.mailCannedAnswer.id}).$promise.then(function(){_.remove(u.mailCannedAnswers,{id:u.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(u.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),p(u.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.mailAccount={},c.mailAccountMailDispositions={count:0,rows:[]},c.selectedMailAccountMailDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.mailAccount=e,c.query.id=c.mailAccount.id,c.query.MailAccountId=c.mailAccount.id,c.getMailAccountMailDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the mailDisposition?").htmlContent("<b>"+(e.name||"mailDisposition")+"</b> will be deleted.").ariaLabel("delete mailDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getMailAccountMailDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.mailAccount.getDispositions(c.query,p).$promise},c.createOrEditMailAccountMailDisposition=function(e,t){o.show({controller:"CreateOrEditMailDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:c.mailAccount,mailDisposition:t,mailDispositions:c.mailAccountMailDispositions.rows,license:null,setting:null}})},c.exportSelectedMailAccountMailDispositions=function(){var e=angular.copy(c.selectedMailAccountMailDispositions);return c.selectedMailAccountMailDispositions=[],e},c.deleteMailAccountMailDisposition=g,c.deleteSelectedMailAccountMailDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected mailDispositions?").htmlContent("<b>"+c.selectedMailAccountMailDispositions.length+" selected</b> will be deleted.").ariaLabel("delete mailDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMailAccountMailDispositions.forEach(function(e){g(e)}),c.selectedMailAccountMailDispositions=[]})};var m=!0,u=1;function p(e){c.mailAccountMailDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.mailAccountMailDispositions.rows,{id:e.id}),c.mailAccountMailDispositions.count-=1,c.mailAccountMailDispositions.rows.length||c.getMailAccountMailDispositions(),r.success({title:"MailDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMailAccountMailDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILDISPOSITION",u.mailDisposition=angular.copy(r),u.mailDispositions=s,u.newMailDisposition=!1,u.mailDisposition||(u.mailDisposition={},u.title="MAIL.NEW_MAILDISPOSITION",u.newMailDisposition=!0),t.params.id&&(u.mailDisposition.MailAccountId=t.params.id),u.addNewMailDisposition=function(){u.errors=[],l.disposition.save(u.mailDisposition).$promise.then(function(e){u.mailDispositions.unshift(e.toJSON()),o.success({title:"MailDisposition properly created",msg:u.mailDisposition.name?u.mailDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailDisposition=function(){u.errors=[],l.disposition.update({id:u.mailDisposition.id},u.mailDisposition).$promise.then(function(e){var t=_.find(u.mailDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailDisposition properly saved!",msg:u.mailDisposition.name?u.mailDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailDisposition will be deleted.").ariaLabel("Delete MailDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.mailDisposition.id}).$promise.then(function(){_.remove(u.mailDispositions,{id:u.mailDisposition.id}),o.success({title:"MailDisposition properly deleted!",msg:(u.mailDisposition.name||"mailDisposition")+" has been deleted!"}),p(u.mailDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailDispositions","mailDisposition","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailDispositionDialogController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.mailAccount=d||n.params.mailAccount||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.mail.realtime.accounts",{})},c.agentadddialog=function(e,t){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:c.mailAccounts?c.mailAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoMailAccounts=function(){n.go("app.mail.mailAccounts")},c.saveMailAccount=function(){s.mailAccount.update({id:c.mailAccount.id},c.mailAccount).$promise.then(function(){r.success({title:"MailAccount updated!",msg:c.mailAccount.name?c.mailAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","mailAccount"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.mailAccounts=r||{count:0,rows:[]},v.table="mailAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedMailAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e})},v.verifysmtpverifysmtp=function(e,t){{if(e&&e.id)return l.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){c.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});c.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},v.interactionsgoto=function(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,tab:6})},v.gotorealtimegoto=function(e,t){n.go("app.mail.realtime.accounts",{})},v.agentadddialog=function(e,t){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:v.mailAccounts?v.mailAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMailAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.mailAccount.get(v.query,f).$promise},v.createOrEditMailAccount=function(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:v.mailAccounts.rows,license:v.license,setting:v.setting}})},v.deleteMailAccount=A,v.exportSelectedMailAccounts=function(){var e=angular.copy(v.selectedMailAccounts);return v.selectedMailAccounts=[],e},v.deleteSelectedMailAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+v.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailAccounts.forEach(function(e){A(e)}),v.selectedMailAccounts=[]})},v.deselectMailAccounts=function(){v.selectedMailAccounts=[]},v.selectAllMailAccounts=function(){v.selectedMailAccounts=v.mailAccounts.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.mailAccounts=e||{count:0,rows:[]}}function A(e){if(e.service)return c.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});l.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.mailAccounts.rows,{id:e.id}),v.mailAccounts.count-=1,v.mailAccounts.rows.length||v.getMailAccounts(),c.success({title:"MailAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILQUEUE",u.mailQueue=angular.copy(r),u.mailQueues=s,u.newMailQueue=!1,u.mailQueue||(u.mailQueue={strategy:"beepall",timeout:10},u.title="MAIL.NEW_MAILQUEUE",u.newMailQueue=!0),u.addNewMailQueue=function(){u.errors=[],l.mailQueue.save(u.mailQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"mail",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:u.mailQueue.name?u.mailQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.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.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailQueue=function(){u.errors=[],l.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(e){var t=_.find(u.mailQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailQueue properly saved!",msg:u.mailQueue.name?u.mailQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailQueue.delete({id:u.mailQueue.id}).$promise.then(function(){return l.mailQueue.getAgents({id:u.mailQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.mailQueue.id],channel:"mail",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.mailQueues,{id:u.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(u.mailQueue.name||"mailQueue")+" has been deleted!"}),p(u.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailQueues","mailQueue","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.mailQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.mailQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MAIL.ALL_AGENTS"),labelSelected:s.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,t){a.mailQueue[t?"removeAgents":"addAgents"]({id:l.mailQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"MailQueue properly "+(t?"removed":"added"),msg:"MailQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.mailQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.mailQueue[t?"removeTeams":"addTeams"]({id:o.mailQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.mailQueue.getTeams({id:o.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.mailQueue=d||e.params.mailQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:c.mailQueues?c.mailQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:c.mailQueues?c.mailQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoMailQueues=function(){e.go("app.mail.mailQueues")},c.saveMailQueue=function(){s.mailQueue.update({id:c.mailQueue.id},c.mailQueue).$promise.then(function(){r.success({title:"MailQueue updated!",msg:c.mailQueue.name?c.mailQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","mailQueue"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.mailQueues=r||{count:0,rows:[]},v.table="mailQueues",v.listOrder="",v.listOrderAsc=null,v.selectedMailQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:v.mailQueues?v.mailQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:v.mailQueues?v.mailQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.mail.realtime.queues",{})},v.success=f,v.getMailQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.mailQueue.get(v.query,f).$promise},v.createOrEditMailQueue=function(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:v.mailQueues.rows,license:v.license,setting:v.setting}})},v.deleteMailQueue=A,v.exportSelectedMailQueues=function(){var e=angular.copy(v.selectedMailQueues);return v.selectedMailQueues=[],e},v.deleteSelectedMailQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+v.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailQueues.forEach(function(e){A(e)}),v.selectedMailQueues=[]})},v.deselectMailQueues=function(){v.selectedMailQueues=[]},v.selectAllMailQueues=function(){v.selectedMailQueues=v.mailQueues.rows};var h=!0,b=1;function f(e){v.mailQueues=e||{count:0,rows:[]}}function A(e){l.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.mailQueues.rows,{id:e.id}),v.mailQueues.count-=1,v.mailQueues.rows.length||v.getMailQueues(),c.success({title:"MailQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MAIL.EDIT_MAILSUBSTATUS",u.mailSubstatus=angular.copy(r),u.mailSubtatuses=s,u.newMailSubstatus=!1,u.mailSubstatus||(u.mailSubstatus={},u.title="MAIL.NEW_MAILSUBSTATUS",u.newMailSubstatus=!0),u.addNewMailSubstatus=function(){u.errors=[],l.mailSubstatus.save(u.mailSubstatus).$promise.then(function(e){u.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:u.mailSubstatus.name?u.mailSubstatus.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.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.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMailSubstatus=function(){u.errors=[],l.mailSubstatus.update({id:u.mailSubstatus.id},u.mailSubstatus).$promise.then(function(e){var t=_.find(u.mailSubtatuses,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MailSubstatus properly saved!",msg:u.mailSubstatus.name?u.mailSubstatus.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var t=0;t<e.data.errors.length;t++)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.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMailSubstatus=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailSubstatus.delete({id:u.mailSubstatus.id}).$promise.then(function(){_.remove(u.mailSubtatuses,{id:u.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(u.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),p(u.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var t=0;t<e.data.errors.length;t++)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.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.mailSubtatuses=r||{count:0,rows:[]},v.table="mailSubtatuses",v.listOrder="",v.listOrderAsc=null,v.selectedMailSubstatuses=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(e,t){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:v.mailSubtatuses.rows,license:v.license,setting:null}})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the mailSubstatus?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMailSubstatuses=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.mailSubstatus.get(v.query,f).$promise},v.createOrEditMailSubstatus=function(e,t){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:t,mailSubtatuses:v.mailSubtatuses.rows,license:v.license,setting:v.setting}})},v.deleteMailSubstatus=A,v.exportSelectedMailSubstatuses=function(){var e=angular.copy(v.selectedMailSubstatuses);return v.selectedMailSubstatuses=[],e},v.deleteSelectedMailSubstatuses=function(e){var t=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+v.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailSubstatuses.forEach(function(e){A(e)}),v.selectedMailSubstatuses=[]})},v.deselectMailSubstatuses=function(){v.selectedMailSubstatuses=[]},v.selectAllMailSubstatuses=function(){v.selectedMailSubstatuses=v.mailSubtatuses.rows};var h=!0,b=1;function f(e){v.mailSubtatuses=e||{count:0,rows:[]}}function A(e){l.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(v.mailSubtatuses.rows,{id:e.id}),v.mailSubtatuses.count-=1,v.mailSubtatuses.rows.length||v.getMailSubstatuses(),c.success({title:"MailSubstatus deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailSubtatuses","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d){var c=this;function m(){_.forIn(c.mailAccounts,function(e,t){c.rpcMailAccounts[t]&&_.merge(e,c.rpcMailAccounts[t])}),_.forIn(c.mailAccounts,function(t,e){var n={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss")};o.mailAccount.getMessages(n).$promise.then(function(e){return e&&(t.in=e.count||0,t.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),n.direction="out",o.mailAccount.getMessages(n).$promise}).then(function(e){e&&(t.out=e.count||0,t.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}c.count=l&&l.count?l.count:0,c.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},c.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},c.query={sort:"-name",limit:10,page:1},c.success=g,c.$onInit=m,c.getMailAccounts=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.mailAccount.get(c.query,g).$promise},c.onSave=function(e){c.mailAccounts[e.id]&&_.merge(c.mailAccounts[e.id],e)},c.onMailMessageSave=function(e){c.mailAccounts[e.MailAccountId]&&("in"==e.direction?(c.mailAccounts[e.MailAccountId].in+=1,c.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(c.mailAccounts[e.MailAccountId].out+=1,c.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},c.goToMailAccount=function(e,t){i.go("app.mail.mailAccounts.edit",{id:t.id,mailAccount:t})},c.verifySmtp=function(e,t){{if(t&&t.id)return o.mailAccount.verifySmtp({id:t.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},c.order=[],_.forIn(c.mailAccounts,function(e,t){c.order.push(e.id)}),s.on("mailAccount:save",c.onSave),s.on("mailAccount:update",c.onSave),s.on("mailMessage:save",c.onMailMessageSave);var u=!0,p=1;function g(e){if(c.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){c.order=[];for(var t=0;t<e.rows.length;t++)c.order.push(e.rows[t].id)}m()}e.$watch("vm.query.filter",function(e,t){u?n(function(){u=!1}):(t||(p=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=p),c.getMailAccounts())}),e.$on("$destroy",function(){s.removeAllListeners("mailAccount:save"),s.removeAllListeners("mailAccount:update"),s.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"mail",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.mailQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].MailQueueId].paused++,u.queues[e[t].rows[n].MailQueueId].loggedInDb++,u.queues[e[t].rows[n].MailQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].MailQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"mail",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.mailQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditMailQueue=function(e,t){a.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.mailQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.MailQueueId]&&u.queues[e.MailQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.MailQueueId]&&u.queues[e.MailQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.MailQueueId]&&(u.queues[e.MailQueueId].loggedInDb+=1,u.queues[e.MailQueueId].agents[e.UserId]=e.MailQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.MailQueueId]&&0<u.queues[e.MailQueueId].loggedInDb&&(u.queues[e.MailQueueId].loggedInDb-=1,delete u.queues[e.MailQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("mail_queue:save",u.onSave),d.on("userMailQueue:save",u.onSaveMember),d.on("userMailQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("mail_queue:save"),d.removeAllListeners("userMailQueue:remove"),d.removeAllListeners("userMailQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,n.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.mail.realtime.agents");break;case 1:n.go("app.mail.realtime.queues");break;case 2:n.go("app.mail.realtime.accounts");break;default:n.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MARKETPLACE.EDIT_PLUGIN",u.plugin=angular.copy(r),u.plugins=s,u.newPlugin=!1,u.plugin||(u.plugin={},u.title="MARKETPLACE.NEW_PLUGIN",u.newPlugin=!0),u.addNewPlugin=function(){u.errors=[],l.plugin.save(u.plugin).$promise.then(function(e){u.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:u.plugin.name?u.plugin.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.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.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savePlugin=function(){u.errors=[],l.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(e){var t=_.find(u.plugins,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Plugin properly saved!",msg:u.plugin.name?u.plugin.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var t=0;t<e.data.errors.length;t++)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.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletePlugin=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.plugin.delete({id:u.plugin.id}).$promise.then(function(){_.remove(u.plugins,{id:u.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(u.plugin.name||"plugin")+" has been deleted!"}),p(u.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var t=0;t<e.data.errors.length;t++)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.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","plugins","plugin","api","Auth","license","setting"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.plugin=d||e.params.plugin||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoPlugins=function(){e.go("app.marketplace.plugins")},c.savePlugin=function(){s.plugin.update({id:c.plugin.id},c.plugin).$promise.then(function(){r.success({title:"Plugin updated!",msg:c.plugin.name?c.plugin.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","plugin"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.plugins=r||{count:0,rows:[]},v.table="plugins",v.listOrder="",v.listOrderAsc=null,v.selectedPlugins=[],v.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"name",limit:10,page:1},v.installing=!1,v.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.installplugin=function(e){{if("script"!==e.type)return e.active=!0,l.plugin.update({id:e.id},e).$promise.then(function(){c.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});v.installing=!0,l.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,l.plugin.update({id:e.id},e).$promise}).then(function(){v.installing=!1,c.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},v.editstate=function(e,t){n.go("app.marketplace.plugins.edit",{id:e.id,plugin:e})},v.stopplugin=function(e,t){var n=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){var n;n=e,l.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var t=_.find(e.rows,{name:n.scriptName});if(!t)throw new Error("No corresponding process found");l.pm2.update({id:t.pm_id,status:"stopped"}).$promise.then(function(){c.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},v.restartplugin=function(e,t){var n=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){var n;n=e,l.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var t=_.find(e.rows,{name:n.scriptName});if(!t)throw new Error("No corresponding process found");l.pm2.update({id:t.pm_id,status:"online"}).$promise.then(function(){c.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},v.downloadfile2=function(o,e){return l.plugin.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.uninstallplugin=function(e,t){var n=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){!function(n){"script"===n.type&&l.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var t=_.find(e.rows,{name:n.scriptName});if(!t)throw new Error("No corresponding process found");l.pm2.delete({id:t.pm_id,name:n.scriptName}).$promise}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});n.active=!1,l.plugin.update({id:n.id},n).$promise.then(function(){c.success({title:"Plugin uninstalled!",msg:n.name?n.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getPlugins=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.plugin.get(v.query,f).$promise},v.createOrEditPlugin=function(e,t){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:t,plugins:v.plugins.rows,license:v.license,setting:v.setting}})},v.deletePlugin=A,v.exportSelectedPlugins=function(){var e=angular.copy(v.selectedPlugins);return v.selectedPlugins=[],e},v.deleteSelectedPlugins=function(e){var t=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+v.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedPlugins.forEach(function(e){A(e)}),v.selectedPlugins=[]})},v.deselectPlugins=function(){v.selectedPlugins=[]},v.selectAllPlugins=function(){v.selectedPlugins=v.plugins.rows},v.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:v.plugins.rows}})};var h=!0,b=1;function f(e){v.plugins=e||{count:0,rows:[]}}function A(n){n.active&&"script"==n.type&&l.pm2.get().$promise.then(function(e){if(!e||!e.rows)return c.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var t=_.find(e.rows,{name:n.scriptName});t?l.pm2.delete({id:t.pm_id,name:n.scriptName}).$promise:console.log("No '%s' process found",n.scriptName)}).catch(function(e){return c.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),l.plugin.delete({id:n.id}).$promise.then(function(){_.remove(v.plugins.rows,{id:n.id}),v.plugins.count-=1,v.plugins.rows.length||v.getPlugins(),c.success({title:"Plugin deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","plugins","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:2097152,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var t=["zip"];if(!_.includes(t,e.getExtension()))return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(2097152<e.size)return n.error({title:"File too big",msg:"The max allowed size is 2MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result}}})},o.uploadError=function(e,t){o.ngFlow.flow.cancel(),n.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",n.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){t.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",u.ivrCampaign=angular.copy(r),u.ivrCampaigns=s,u.newIvrCampaign=!1,u.ivrCampaign||(u.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},u.title="MOTIONDIALER.NEW_IVRCAMPAIGN",u.newIvrCampaign=!0),u.addNewIvrCampaign=function(){u.errors=[],l.campaign.save(u.ivrCampaign).$promise.then(function(e){u.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.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.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveIvrCampaign=function(){u.errors=[],l.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(e){var t=_.find(u.ivrCampaigns,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"IvrCampaign properly saved!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var t=0;t<e.data.errors.length;t++)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.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteIvrCampaign=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.campaign.delete({id:u.ivrCampaign.id}).$promise.then(function(){_.remove(u.ivrCampaigns,{id:u.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(u.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),p(u.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var t=0;t<e.data.errors.length;t++)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.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){o.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){u.projects=e.rows||[]}).catch(function(e){o.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){u.interval=e.rows||[]}).catch(function(e){o.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","$q","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.ivrCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.campaign[t?"removeBlackLists":"addBlackLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=o,r.title=s.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.ivrCampaign={},c.ivrCampaignHopperBlacks={count:0,rows:[]},c.selectedIvrCampaignHopperBlacks=[],c.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHopperBlacks()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHopperBlacks=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHopperBlacks(c.query,p).$promise},c.createOrEditIvrCampaignHopperBlack=function(e,t){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopperBlack:t,hopperBlacks:c.ivrCampaignHopperBlacks.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(c.selectedIvrCampaignHopperBlacks);return c.selectedIvrCampaignHopperBlacks=[],e},c.deleteIvrCampaignHopperBlack=g,c.deleteSelectedIvrCampaignHopperBlacks=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+c.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),c.selectedIvrCampaignHopperBlacks=[]})};var m=!0,u=1;function p(e){c.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function g(e){l.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHopperBlacks.rows,{id:e.id}),c.ivrCampaignHopperBlacks.count-=1,c.ivrCampaignHopperBlacks.rows.length||c.getIvrCampaignHopperBlacks(),r.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.contacts={},c.ivrCampaign={},c.ivrCampaignHopperFinals={count:0,rows:[]},c.selectedIvrCampaignHopperFinals=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHopperFinals()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHopperFinals=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHopperFinals(c.query,p).$promise},c.createOrEditIvrCampaignHopperFinal=function(e,t){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopperFinal:t,hopperFinals:c.ivrCampaignHopperFinals.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(c.selectedIvrCampaignHopperFinals);return c.selectedIvrCampaignHopperFinals=[],e},c.deleteIvrCampaignHopperFinal=g,c.deleteSelectedIvrCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+c.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),c.selectedIvrCampaignHopperFinals=[]})},c.moveIvrCampaignHopperFinal=v,c.moveContactsIvrCampaignHopperFinal=function(e){l.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:c.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?r.info({title:"Restored Contacts",msg:"0"}):r.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.countContactsIvrCampaignHopperFinal=function(e){l.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(c.contacts,e[0])}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.moveConfirm=function(e,t){var n=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){v(e)},function(){console.log("CANCEL")})},c.moveSelectedIvrCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),c.selectedIvrCampaignHopperFinals=[]})};var m=!0,u=1;function p(e){c.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function g(e){l.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHopperFinals.rows,{id:e.id}),c.ivrCampaignHopperFinals.count-=1,c.ivrCampaignHopperFinals.rows.length||c.getIvrCampaignHopperFinals(),r.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){l.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){r.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var t,n;"Not Found"===e.data?l.cmHopper.save((t=a,n={},n.phone=t.calleridnum,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=0,n.countcongestionretry=0,n.countnoanswerretry=0,n.countglobal=0,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=t.deleted?null:t.UserId,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.priority=t.recallme?3:2,n.recallme=!!t.recallme,n)).$promise.then(function(e){var t,n;r.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&l.cmHopperHistory.save(((n={}).calleridnum=(t=a).calleridnum,n.calleridname=t.calleridname,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=t.countbusyretry,n.countcongestionretry=t.countcongestionretry,n.countnoanswerretry=t.countnoanswerretry,n.countglobal=t.countglobal,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=d.getCurrentUser().id,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),n.edited=!0,n.state=25,n.statedesc="Restored",n.campaign=t.campaign,n.campaigntype=t.VoiceQueueId?"queue":"ivr",n))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):r.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.ivrCampaign={},c.ivrCampaignHopperHistories={count:0,rows:[]},c.selectedIvrCampaignHopperHistories=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHopperHistories()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHopperHistories=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHopperHistories(c.query,p).$promise},c.createOrEditIvrCampaignHopperHistory=function(e,t){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopperHistory:t,hopperHistories:c.ivrCampaignHopperHistories.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(c.selectedIvrCampaignHopperHistories);return c.selectedIvrCampaignHopperHistories=[],e},c.deleteIvrCampaignHopperHistory=g,c.deleteSelectedIvrCampaignHopperHistories=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+c.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),c.selectedIvrCampaignHopperHistories=[]})};var m=!0,u=1;function p(e){c.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function g(e){l.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHopperHistories.rows,{id:e.id}),c.ivrCampaignHopperHistories.count-=1,c.ivrCampaignHopperHistories.rows.length||c.getIvrCampaignHopperHistories(),r.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.ivrCampaign={},c.ivrCampaignHoppers={count:0,rows:[]},c.selectedIvrCampaignHoppers=[],c.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},c.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.ivrCampaign=e,c.query.id=c.ivrCampaign.id,c.query.CampaignId=c.ivrCampaign.id,c.getIvrCampaignHoppers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIvrCampaignHoppers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.campaign.getHoppers(c.query,p).$promise},c.createOrEditIvrCampaignHopper=function(e,t){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:c.ivrCampaign,hopper:t,hoppers:c.ivrCampaignHoppers.rows,license:null,setting:null}})},c.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(c.selectedIvrCampaignHoppers);return c.selectedIvrCampaignHoppers=[],e},c.deleteIvrCampaignHopper=g,c.deleteSelectedIvrCampaignHoppers=function(e){var t=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+c.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),c.selectedIvrCampaignHoppers=[]})},l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){c.agents=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.ivrCampaignHoppers=e||{count:0,rows:[]}}function g(e){l.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(c.ivrCampaignHoppers.rows,{id:e.id}),c.ivrCampaignHoppers.count-=1,c.ivrCampaignHoppers.rows.length||c.getIvrCampaignHoppers(),r.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIvrCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_HOPPER",u.hopper=angular.copy(r),u.hoppers=o,u.newHopper=!1,u.hopper||(u.hopper={},u.title="MOTIONDIALER.NEW_HOPPER",u.newHopper=!0),t.params.id&&(u.hopper.CampaignId=t.params.id),u.addNewHopper=function(){u.errors=[],l.cmHopper.save(u.hopper).$promise.then(function(e){u.hoppers.unshift(e.toJSON()),s.success({title:"Hopper properly created",msg:u.hopper.name?u.hopper.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t+=1)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveHopper=function(){var n,a,i,o;u.errors=[],u.hopper.UserId=u.hopper.recallme?u.hopper.UserId:null,u.hopper.OwnerId=d.getCurrentUser().id,l.cmHopper.get({id:u.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){n=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){l.cmHopper.update({id:u.hopper.id},_.omit(u.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,l.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){l.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){o=e.name}).catch(function(e){o=void 0}).finally(function(){l.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:n,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:o,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:d.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var t=_.find(u.hoppers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),s.success({title:"Hopper properly saved!",msg:u.hopper.name?u.hopper.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},u.deleteHopper=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmHopper.delete({id:u.hopper.id}).$promise.then(function(){_.remove(u.hoppers,{id:u.hopper.id}),s.success({title:"Hopper properly deleted!",msg:(u.hopper.name||"hopper")+" has been deleted!"}),p(u.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","hoppers","hopper","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(n,a){var i=this;i.ivrCampaign={},i.init=function(t){i.ivrCampaign=t,n.cmHopper.get({limit:0,CampaignId:t.id}).$promise.then(function(e){return i.total=e.count||0,n.cmHopper.get({limit:0,CampaignId:t.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,n.cmHopperFinal.get({limit:0,CampaignId:t.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.ivrCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.campaign[t?"removeLists":"addLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,a,i,o,n,s,r){var l=this;function d(){t.hide()}function c(e,t){var n=t.id;s.enqueue(function(){return i.campaign.removeLists({id:e,ids:n}).$promise.then(function(){return i.campaign.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=n||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,t){return-1<t.indexOf(e)},l.toggle=function(e,t){var n=t.indexOf(e);-1<n?t.splice(n,1):t.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,t){for(var n=0;n<l.selected.length;n+=1)c(o.id,l.selected[n]);var a;a=e,s.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(n,e,i,o,t,a,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=a,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.ivrCampaign=d||n.params.ivrCampaign||{},c.selectedTab=n.params.tab||0,c.clonedialog=function(e,t){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})},c.listadddialog=function(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:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})},c.blacklistadddialog=function(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:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})},c.resetlistdialog=function(t,n){s.campaign.getLists({id:t.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))r.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(n).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t,n;e=c.ivrCampaign.id,t=a.rows[0],n=t.id,s.campaign.removeLists({id:e,ids:n}).$promise.then(function(){return s.campaign.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){r.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(o.body),targetEvent:n,clickOutsideToClose:!1,locals:{ivrCampaign:t,listsCampaign:a?a.rows:[]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.gotogoto=function(e,t){n.go("app.motiondialer.realtime.ivr_campaigns",{})},c.alert=r.info,c.gotoIvrCampaigns=function(){n.go("app.motiondialer.ivrCampaigns")},c.saveIvrCampaign=function(){s.campaign.update({id:c.ivrCampaign.id},c.ivrCampaign).$promise.then(function(){r.success({title:"IvrCampaign updated!",msg:c.ivrCampaign.name?c.ivrCampaign.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","ivrCampaign"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.ivrCampaigns=r||{count:0,rows:[]},v.table="ivrCampaigns",v.listOrder="",v.listOrderAsc=null,v.selectedIvrCampaigns=[],v.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},v.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e})},v.clonedialog=function(e,t){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:v.ivrCampaigns?v.ivrCampaigns.rows:[]}})},v.listadddialog=function(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:v.ivrCampaigns?v.ivrCampaigns.rows:[]}})},v.blacklistadddialog=function(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:v.ivrCampaigns?v.ivrCampaigns.rows:[]}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.motiondialer.realtime.ivr_campaigns",{})},v.success=f,v.getIvrCampaigns=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.campaign.get(v.query,f).$promise},v.createOrEditIvrCampaign=function(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:v.ivrCampaigns.rows,license:v.license,setting:v.setting}})},v.deleteIvrCampaign=A,v.exportSelectedIvrCampaigns=function(){var e=angular.copy(v.selectedIvrCampaigns);return v.selectedIvrCampaigns=[],e},v.deleteSelectedIvrCampaigns=function(e){var t=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+v.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIvrCampaigns.forEach(function(e){A(e)}),v.selectedIvrCampaigns=[]})},v.deselectIvrCampaigns=function(){v.selectedIvrCampaigns=[]},v.selectAllIvrCampaigns=function(){v.selectedIvrCampaigns=v.ivrCampaigns.rows},l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.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){v.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){v.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 h=!0,b=1;function f(e){v.ivrCampaigns=e||{count:0,rows:[]}}function A(e){l.campaign.delete({id:e.id}).$promise.then(function(){_.remove(v.ivrCampaigns.rows,{id:e.id}),v.ivrCampaigns.count-=1,v.ivrCampaigns.rows.length||v.getIvrCampaigns(),c.success({title:"IvrCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","ivrCampaigns","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",u.queueCampaign=angular.copy(r),u.queueCampaigns=s,u.newQueueCampaign=!1,u.queueCampaign||(u.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber: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},u.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",u.newQueueCampaign=!0),u.addNewQueueCampaign=function(){u.errors=[],l.voiceQueue.save(u.queueCampaign).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"voice",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:u.queueCampaign.name?u.queueCampaign.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.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.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveQueueCampaign=function(){u.errors=[],l.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(e){var t=_.find(u.queueCampaigns,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"QueueCampaign properly saved!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteQueueCampaign=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceQueue.delete({id:u.queueCampaign.id}).$promise.then(function(){return l.voiceQueue.getAgents({id:u.queueCampaign.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.queueCampaign.id],channel:"voice",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.queueCampaigns,{id:u.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(u.queueCampaign.name||"queueCampaign")+" has been deleted!"}),p(u.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){o.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){u.interval=e.rows||[]}).catch(function(e){o.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","$q","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.voiceQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.queueCampaign=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,t){a.voiceQueue[t?"removeAgents":"addAgents"]({id:l.queueCampaign.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"QueueCampaign properly "+(t?"removed":"added"),msg:"QueueCampaign has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.queueCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.voiceQueue[t?"removeBlackLists":"addBlackLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=o,r.title=s.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),n.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.queueCampaign={},c.queueCampaignHopperBlacks={count:0,rows:[]},c.selectedQueueCampaignHopperBlacks=[],c.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHopperBlacks()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHopperBlacks=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHopperBlacks(c.query,p).$promise},c.createOrEditQueueCampaignHopperBlack=function(e,t){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopperBlack:t,hopperBlacks:c.queueCampaignHopperBlacks.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(c.selectedQueueCampaignHopperBlacks);return c.selectedQueueCampaignHopperBlacks=[],e},c.deleteQueueCampaignHopperBlack=g,c.deleteSelectedQueueCampaignHopperBlacks=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+c.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),c.selectedQueueCampaignHopperBlacks=[]})};var m=!0,u=1;function p(e){c.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function g(e){l.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHopperBlacks.rows,{id:e.id}),c.queueCampaignHopperBlacks.count-=1,c.queueCampaignHopperBlacks.rows.length||c.getQueueCampaignHopperBlacks(),r.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.contacts={},c.queueCampaign={},c.queueCampaignHopperFinals={count:0,rows:[]},c.selectedQueueCampaignHopperFinals=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHopperFinals()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHopperFinals=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHopperFinals(c.query,p).$promise},c.createOrEditQueueCampaignHopperFinal=function(e,t){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopperFinal:t,hopperFinals:c.queueCampaignHopperFinals.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(c.selectedQueueCampaignHopperFinals);return c.selectedQueueCampaignHopperFinals=[],e},c.deleteQueueCampaignHopperFinal=g,c.deleteSelectedQueueCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+c.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),c.selectedQueueCampaignHopperFinals=[]})},c.moveQueueCampaignHopperFinal=v,c.moveContactsQueueCampaignHopperFinal=function(e){l.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:c.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?r.info({title:"Restored Contacts",msg:"0"}):r.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.countContactsQueueCampaignHopperFinal=function(e){l.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(c.contacts,e[0])}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},c.moveConfirm=function(e,t){var n=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){v(e)},function(){console.log("CANCEL")})},c.moveSelectedQueueCampaignHopperFinals=function(e){var t=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),c.selectedQueueCampaignHopperFinals=[]})};var m=!0,u=1;function p(e){c.queueCampaignHopperFinals=e||{count:0,rows:[]}}function g(e){l.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHopperFinals.rows,{id:e.id}),c.queueCampaignHopperFinals.count-=1,c.queueCampaignHopperFinals.rows.length||c.getQueueCampaignHopperFinals(),r.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){l.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){r.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var t,n;"Not Found"===e.data?l.cmHopper.save((t=a,n={},n.phone=t.calleridnum,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=0,n.countcongestionretry=0,n.countnoanswerretry=0,n.countglobal=0,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=t.deleted?null:t.UserId,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.priority=t.recallme?3:2,n.recallme=!!t.recallme,n)).$promise.then(function(e){var t,n;r.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&l.cmHopperHistory.save(((n={}).calleridnum=(t=a).calleridnum,n.calleridname=t.calleridname,n.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),n.countbusyretry=t.countbusyretry,n.countcongestionretry=t.countcongestionretry,n.countnoanswerretry=t.countnoanswerretry,n.countglobal=t.countglobal,n.ContactId=t.ContactId,n.ListId=t.ListId,n.UserId=d.getCurrentUser().id,n.VoiceQueueId=t.VoiceQueueId,n.CampaignId=t.CampaignId,n.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),n.edited=!0,n.state=25,n.statedesc="Restored",n.campaign=t.campaign,n.campaigntype=t.VoiceQueueId?"queue":"ivr",n))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):r.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.queueCampaign={},c.queueCampaignHopperHistories={count:0,rows:[]},c.selectedQueueCampaignHopperHistories=[],c.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHopperHistories()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHopperHistories=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHopperHistories(c.query,p).$promise},c.createOrEditQueueCampaignHopperHistory=function(e,t){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopperHistory:t,hopperHistories:c.queueCampaignHopperHistories.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(c.selectedQueueCampaignHopperHistories);return c.selectedQueueCampaignHopperHistories=[],e},c.deleteQueueCampaignHopperHistory=g,c.deleteSelectedQueueCampaignHopperHistories=function(e){var t=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+c.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),c.selectedQueueCampaignHopperHistories=[]})};var m=!0,u=1;function p(e){c.queueCampaignHopperHistories=e||{count:0,rows:[]}}function g(e){l.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHopperHistories.rows,{id:e.id}),c.queueCampaignHopperHistories.count-=1,c.queueCampaignHopperHistories.rows.length||c.getQueueCampaignHopperHistories(),r.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.queueCampaign={},c.queueCampaignHoppers={count:0,rows:[]},c.selectedQueueCampaignHoppers=[],c.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},c.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.queueCampaign=e,c.query.id=c.queueCampaign.id,c.query.VoiceQueueId=c.queueCampaign.id,c.getQueueCampaignHoppers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getQueueCampaignHoppers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceQueue.getHoppers(c.query,p).$promise},c.createOrEditQueueCampaignHopper=function(e,t){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:c.queueCampaign,hopper:t,hoppers:c.queueCampaignHoppers.rows,license:null,setting:null}})},c.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(c.selectedQueueCampaignHoppers);return c.selectedQueueCampaignHoppers=[],e},c.deleteQueueCampaignHopper=g,c.deleteSelectedQueueCampaignHoppers=function(e){var t=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+c.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),c.selectedQueueCampaignHoppers=[]})},l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){c.agents=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.queueCampaignHoppers=e||{count:0,rows:[]}}function g(e){l.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(c.queueCampaignHoppers.rows,{id:e.id}),c.queueCampaignHoppers.count-=1,c.queueCampaignHoppers.rows.length||c.getQueueCampaignHoppers(),r.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getQueueCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="MOTIONDIALER.EDIT_HOPPER",u.hopper=angular.copy(r),u.hoppers=o,u.newHopper=!1,u.hopper||(u.hopper={},u.title="MOTIONDIALER.NEW_HOPPER",u.newHopper=!0),t.params.id&&(u.hopper.VoiceQueueId=t.params.id),u.addNewHopper=function(){u.errors=[],l.cmHopper.save(u.hopper).$promise.then(function(e){u.hoppers.unshift(e.toJSON()),s.success({title:"Hopper properly created",msg:u.hopper.name?u.hopper.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t+=1)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveHopper=function(){var n,a,i,o;u.errors=[],u.hopper.UserId=u.hopper.recallme?u.hopper.UserId:null,u.hopper.OwnerId=d.getCurrentUser().id,l.cmHopper.get({id:u.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){n=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){l.cmHopper.update({id:u.hopper.id},_.omit(u.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,l.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){l.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){o=e.name}).catch(function(e){o=void 0}).finally(function(){l.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:n,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:o,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:d.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var t=_.find(u.hoppers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),s.success({title:"Hopper properly saved!",msg:u.hopper.name?u.hopper.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},u.deleteHopper=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cmHopper.delete({id:u.hopper.id}).$promise.then(function(){_.remove(u.hoppers,{id:u.hopper.id}),s.success({title:"Hopper properly deleted!",msg:(u.hopper.name||"hopper")+" has been deleted!"}),p(u.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var t=0;t<e.data.errors.length;t++)s.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","hoppers","hopper","api","Auth","license","setting"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(n,a){var i=this;i.queueCampaign={},i.init=function(t){i.queueCampaign=t,n.cmHopper.get({limit:0,VoiceQueueId:t.id}).$promise.then(function(e){return i.total=e.count||0,n.cmHopper.get({limit:0,VoiceQueueId:t.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,n.cmHopperFinal.get({limit:0,VoiceQueueId:t.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o){var s=this;s.queueCampaign=t,s.items=[],s.selectedItems=[],s.loading=!1,s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,t){s.loading=!0,a.voiceQueue[t?"removeLists":"addLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){n.success({title:"List properly "+(t?"removed":"added"),msg:"List has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){s.loading=!1})}},s.closeDialog=function(){e.hide()},a.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,a.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){n.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","$timeout"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,a,i,o,n,s,r){var l=this;function d(){t.hide()}function c(e,t){var n=t.id;s.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:n}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=n||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,t){return-1<t.indexOf(e)},l.toggle=function(e,t){var n=t.indexOf(e);-1<n?t.splice(n,1):t.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,t){for(var n=0;n<l.selected.length;n+=1)c(o.id,l.selected[n]);var a;a=e,s.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.queueCampaign=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.voiceQueue[t?"removeTeams":"addTeams"]({id:o.queueCampaign.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.voiceQueue.getTeams({id:o.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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(n,e,i,o,t,a,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=a,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.queueCampaign=d||n.params.queueCampaign||{},c.selectedTab=n.params.tab||0,c.clonedialog=function(e,t){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.listadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.blacklistadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.teamadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[]}})},c.agentadddialog=function(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:c.queueCampaigns?c.queueCampaigns.rows:[],realtime:!1}})},c.resetlistdialog=function(t,n){s.voiceQueue.getLists({id:t.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))r.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(n).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t,n;e=c.queueCampaign.id,t=a.rows[0],n=t.id,s.voiceQueue.removeLists({id:e,ids:n}).$promise.then(function(){return s.voiceQueue.addLists({id:e,ids:n,dialCheckDuplicateType:"never"}).$promise}).then(function(){r.success({title:"Reset Succesfull",msg:"List "+t.name+" has been reset"})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(o.body),targetEvent:n,clickOutsideToClose:!1,locals:{queueCampaign:t,listsCampaign:a?a.rows:[]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.gotogoto=function(e,t){n.go("app.motiondialer.realtime.queues",{})},c.alert=r.info,c.gotoQueueCampaigns=function(){n.go("app.motiondialer.queueCampaigns")},c.saveQueueCampaign=function(){s.voiceQueue.update({id:c.queueCampaign.id},c.queueCampaign).$promise.then(function(){r.success({title:"QueueCampaign updated!",msg:c.queueCampaign.name?c.queueCampaign.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","queueCampaign"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.queueCampaigns=r||{count:0,rows:[]},v.table="queueCampaigns",v.listOrder="",v.listOrderAsc=null,v.selectedQueueCampaigns=[],v.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},v.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e})},v.clonedialog=function(e,t){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.listadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.blacklistadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.teamadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[]}})},v.agentadddialog=function(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:v.queueCampaigns?v.queueCampaigns.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.motiondialer.realtime.queues",{})},v.success=f,v.getQueueCampaigns=function(){v.query.offset=(v.query.page-1)*v.query.limit,m.hasRole("admin")?v.promise=l.voiceQueue.get(v.query,f).$promise:(v.query.id=v.currentUser.id,v.promise=l.user.getQueues(v.query,f).$promise)},v.createOrEditQueueCampaign=function(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:v.queueCampaigns.rows,license:v.license,setting:v.setting}})},v.deleteQueueCampaign=A,v.exportSelectedQueueCampaigns=function(){var e=angular.copy(v.selectedQueueCampaigns);return v.selectedQueueCampaigns=[],e},v.deleteSelectedQueueCampaigns=function(e){var t=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+v.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedQueueCampaigns.forEach(function(e){A(e)}),v.selectedQueueCampaigns=[]})},v.deselectQueueCampaigns=function(){v.selectedQueueCampaigns=[]},v.selectAllQueueCampaigns=function(){v.selectedQueueCampaigns=v.queueCampaigns.rows},l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.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){v.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 h=!0,b=1;function f(e){v.queueCampaigns=e||{count:0,rows:[]}}function A(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.queueCampaigns.rows,{id:e.id}),v.queueCampaigns.count-=1,v.queueCampaigns.rows.length||v.getQueueCampaigns(),c.success({title:"QueueCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","queueCampaigns","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c,m){var u=this,p=!0;function g(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.contacts:"+u.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(u.query=_.merge(e.query,_.omit(u.query,["sort","limit","page"])),u.query=_.omit(u.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){u.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queues=e||{count:0,rows:[]},u.queuesMap=_.mapValues(_.keyBy(u.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){u.getContacts()})}function v(e){u.contacts=e||{count:0,rows:[]},p=!1,u.refresh=!0}u.showTooltip=!1,u.refresh=!0,u.disable=[],u.agents=m||[],u.currentUser=r.getCurrentUser(),u.localizationMap=c,u.pickerModel={dateStart:null,dateEnd:null},u.queues={},u.contacts={count:0,rows:[]},u.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},u.clearAll=function(){u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel={dateStart:null,dateEnd:null},u.getContacts()},u.getContacts=function(){u.refresh=!1,u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel.dateStart&&!p&&(u.query.dateStart=u.pickerModel.dateStart,u.query.dateEnd=u.pickerModel.dateEnd);u.query.queue=u.query.queue,u.query.offset=(u.query.page-1)*u.query.limit,!r.hasRole("admin")&&_.isNil(u.query.queue)&&(u.query.queue=_.map(u.queues.rows,"name").join());i.localStorage.setItem("motion2.realtime.abandoned.bull.contacts:"+u.currentUser.id,JSON.stringify({query:_.omit(u.query,"queue")})),u.promise=s.voiceQueueReport.getVoiceQueuesReport(u.query,v).$promise},u.refreshContacts=function(){u.showTooltip=!1,u.getContacts()},u.onInit=g,u.assignedA=function(e,t){e&&(u.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:t?t.name:null,assigned:!!t}).$promise.catch(function(e){console.log(e)}).finally(function(){u.disable[e.id]=!1}))},u.disposed=function(e,t){e&&s.voiceQueueReport.update({id:e.id,disposition:t||null}).$promise.catch(function(e){console.log(e)})},u.onSavevoiceQueueReport=function(e){e&&u.queuesMap&&"outbound"===e.type&&u.queuesMap[e.queue]&&(u.showTooltip=!0)},u.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(u.contacts.rows,["id",e.id]);0<=t&&_.merge(u.contacts.rows[t],e)}},l.onWithoutApply("voiceQueueReport:save",u.onSavevoiceQueueReport),l.on("voiceQueueReport:update",u.onUpdatevoiceQueueReport),g();var h=!0,b=1;e.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=b),u.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory","agents"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,i,t,o,s,r,l,d){var c=this,m=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function u(){_.forIn(c.campaigns,function(e,t){c.rpcCampaigns[t]&&_.merge(e,_.pick(c.rpcCampaigns[t],m))})}c.count=s.count,c.campaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.rpcCampaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},c.query={sort:"-updatedAt",limit:10,page:1},c.success=v,c.getCampaigns=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=r.campaign.get(c.query,v).$promise},c.onSave=function(e){c.campaigns[e.id]&&(_.merge(c.campaigns[e.id],_.pick(e,m)),_.merge(c.rpcCampaigns[e.id],_.pick(e,m)))},c.$onInit=u,c.createOrEditIvrCampaign=function(e,t){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:_.values(c.campaigns),license:null,setting:null}})},l.onWithoutApply("campaign:save",c.onSave),c.interval=t(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=g),c.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),c.interval&&t.cancel(c.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,o,s,r,l,d){var c=this;c.agents=n||{count:0,rows:[]},c.queues=i?_.keyBy(i.rows?i.rows:[],"name"):{},c.rpcVoiceQueuesChannelsTmp=o?_.keyBy(o.rows?_.filter(o.rows,{type:"outbound"}):[],"uniqueid"):{},c.rpcVoiceQueuesChannels={},c.queryChannels={limit:10,page:1},c.getSize=function(e){return _.size(e)},c.$onInit=function(){_.forIn(c.rpcVoiceQueuesChannelsTmp,function(e,t){_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[t]=e)})},c.onSave=function(e){"outbound"===e.type&&_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[e.uniqueid]=e)},c.onRemove=function(e){c.rpcVoiceQueuesChannels[e.uniqueid]&&delete c.rpcVoiceQueuesChannels[e.uniqueid]},c.hangup=function(t){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:t}).$promise.then(function(e){d.success({title:"Channel "+t+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToAgent=function(t,e,n){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e,context:n}).$promise.then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToNumber=function(e,t){var n=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(n).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",c.onSave),r.on("voice_queue_channel:remove",c.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r){var l=this,d=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function c(){_.forIn(l.queues,function(e,t){l.rpcQueues[t]&&_.merge(e,_.pick(l.rpcQueues[t],d))})}l.count=a.count,l.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},r.hasRole("admin")?l.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:l.query={id:r.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},l.success=p,l.getQueues=function(){l.query.offset=(l.query.page-1)*l.query.limit,r.hasRole("admin")?l.promise=o.voiceQueue.get(l.query,p).$promise:l.promise=o.user.getQueues(l.query,p).$promise},l.onSave=function(e){l.queues[e.id]&&_.merge(l.queues[e.id],_.pick(e,d))},l.$onInit=c,s.onWithoutApply("voice_queue:save",l.onSave),l.interval=t(function(){},999);var m=!0,u=1;function p(e){l.count=e.count,l.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},c()}e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=u),l.getQueues())}),e.$on("$destroy",function(){s.removeAllListeners("voice_queue:save"),l.interval&&t.cancel(l.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.voiceQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].VoiceQueueId].paused++,u.queues[e[t].rows[n].VoiceQueueId].loggedInDb++,u.queues[e[t].rows[n].VoiceQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].VoiceQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"outbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.voiceQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditMotionDialerQueue=function(e,t){a.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(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:u.queues?u.queues.rows:[],realtime:!0}})},u.updateQueue=function(e){return l.voiceQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.MotionDialerQueueId]&&u.queues[e.MotionDialerQueueId].loggedInDb++},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.VoiceQueueId]&&(u.queues[e.VoiceQueueId].loggedInDb+=1,u.queues[e.VoiceQueueId].agents[e.UserId]=e.VoiceQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.VoiceQueueId]&&0<u.queues[e.VoiceQueueId].loggedInDb&&(u.queues[e.VoiceQueueId].loggedInDb-=1,delete u.queues[e.VoiceQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.onWithoutApply("voice_queue:save",u.onSave),u.interval=o(function(){},999),d.on("userVoiceQueueRt:save",u.onSaveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("voice_queue:save"),u.interval&&o.cancel(u.interval),d.removeAllListeners("userVoiceQueueRt:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.selectedTab=0,n.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.motiondialer.realtime.agents");break;case 1:n.go("app.motiondialer.realtime.queues");break;case 2:n.go("app.motiondialer.realtime.queue_calls");break;case 3:n.go("app.motiondialer.realtime.abandonedcalls");break;case 4:n.go("app.motiondialer.realtime.queue_params");break;case 5:n.go("app.motiondialer.realtime.ivr_campaigns");break;default:n.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,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",u.openchannelAccount=angular.copy(r),u.openchannelAccounts=s,u.newOpenchannelAccount=!1,u.openchannelAccount||(u.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",u.newOpenchannelAccount=!0),t.params.id&&(u.openchannelAccount.OpenchannelAccountId=t.params.id),u.addNewOpenchannelAccount=function(){u.errors=[],l.openchannelAccount.save(u.openchannelAccount).$promise.then(function(e){var t="add"+_.upperFirst("openchannelAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.openchannelAccounts.unshift(e.toJSON()),i.success({title:"OpenchannelAccount properly created",msg:u.openchannelAccount.name?u.openchannelAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.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.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelAccount=function(){u.errors=[],l.openchannelAccount.update({id:u.openchannelAccount.id},u.openchannelAccount).$promise.then(function(e){var t=_.find(u.openchannelAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"OpenchannelAccount properly saved!",msg:u.openchannelAccount.name?u.openchannelAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteOpenchannelAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.openchannelAccount.delete({id:u.openchannelAccount.id}).$promise.then(function(){return l.openchannelAccount.getAgents({id:u.openchannelAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("openchannelAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.openchannelAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.openchannelAccounts,{id:u.openchannelAccount.id}),i.success({title:"OpenchannelAccount properly deleted!",msg:(u.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),p(u.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.openchannelAccountApps.rows.length){var n=r.openchannelAccountApps.rows[t]?r.openchannelAccountApps.rows[t]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:n,openchannelAccount:r.openchannelAccount}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[t]=e:r.openchannelAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.openchannelAccountApps.rows.length;n++,0){var a=r.openchannelAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",maxlength:255,required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.openchannelAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=s.openchannelAccount.getApplications(r.query,n).$promise},r.editOpenchannelAccountApp=t,r.editInterval=function(e,t){if(r.openchannelAccountApps.rows.length){var n=r.openchannelAccountApps.rows[t]?r.openchannelAccountApps.rows[t]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.openchannelAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.openchannelAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:s.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,t){a.openchannelAccount[t?"removeAgents":"addAgents"]({id:l.openchannelAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"OpenchannelAccount properly "+(t?"removed":"added"),msg:"OpenchannelAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("openChannel")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="OPENCHANNEL.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveOpenchannelAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","openchannelAccount","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.openchannelAccount={},c.openchannelAccountInteractions={count:0,rows:[]},c.selectedOpenchannelAccountInteractions=[],c.query={fields:"createdAt,updatedAt,id,Contact.firstName,Owner.name,closedAt,disposition,note,UserId,ContactId,OpenchannelAccountId,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.openchannelAccount=e,c.query.id=c.openchannelAccount.id,c.getOpenchannelAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.openchannelInteractionDownload=function(o,e,t){return l.openchannelInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="openchannel-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getOpenchannelAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.openchannelAccount.getInteractions(c.query,p).$promise},c.createOrEditOpenchannelAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:c.openchannelAccount,interaction:t,interactions:c.openchannelAccountInteractions.rows,license:null,setting:null}})},c.spyopenchannelInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"openchannel",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(c.selectedOpenchannelAccountInteractions);return c.selectedOpenchannelAccountInteractions=[],e},c.deleteOpenchannelAccountInteraction=g,c.deleteSelectedOpenchannelAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),c.selectedOpenchannelAccountInteractions=[]})};var m=!0,u=1;function p(e){c.openchannelAccountInteractions=e||{count:0,rows:[]}}function g(e){l.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.openchannelAccountInteractions.rows,{id:e.id}),c.openchannelAccountInteractions.count-=1,c.openchannelAccountInteractions.rows.length||c.getOpenchannelAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getOpenchannelAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.openchannelAccount={},c.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},c.selectedOpenchannelAccountOpenchannelCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.openchannelAccount=e,c.query.id=c.openchannelAccount.id,c.query.OpenchannelAccountId=c.openchannelAccount.id,c.getOpenchannelAccountOpenchannelCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getOpenchannelAccountOpenchannelCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.openchannelAccount.getAnswers(c.query,p).$promise},c.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,t){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:c.openchannelAccount,openchannelCannedAnswer:t,openchannelCannedAnswers:c.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(c.selectedOpenchannelAccountOpenchannelCannedAnswers);return c.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},c.deleteOpenchannelAccountOpenchannelCannedAnswer=g,c.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+c.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),c.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})};var m=!0,u=1;function p(e){c.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),c.openchannelAccountOpenchannelCannedAnswers.count-=1,c.openchannelAccountOpenchannelCannedAnswers.rows.length||c.getOpenchannelAccountOpenchannelCannedAnswers(),r.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getOpenchannelAccountOpenchannelCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",u.openchannelCannedAnswer=angular.copy(r),u.openchannelCannedAnswers=s,u.newOpenchannelCannedAnswer=!1,u.openchannelCannedAnswer||(u.openchannelCannedAnswer={},u.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",u.newOpenchannelCannedAnswer=!0),t.params.id&&(u.openchannelCannedAnswer.OpenchannelAccountId=t.params.id),u.addNewOpenchannelCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.openchannelCannedAnswer).$promise.then(function(e){u.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:u.openchannelCannedAnswer.name?u.openchannelCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.openchannelCannedAnswer.id},u.openchannelCannedAnswer).$promise.then(function(e){var t=_.find(u.openchannelCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:u.openchannelCannedAnswer.name?u.openchannelCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOpenchannelCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(u.openchannelCannedAnswers,{id:u.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(u.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),p(u.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.openchannelAccount={},c.openchannelAccountOpenchannelDispositions={count:0,rows:[]},c.selectedOpenchannelAccountOpenchannelDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.openchannelAccount=e,c.query.id=c.openchannelAccount.id,c.query.OpenchannelAccountId=c.openchannelAccount.id,c.getOpenchannelAccountOpenchannelDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the openchannelDisposition?").htmlContent("<b>"+(e.name||"openchannelDisposition")+"</b> will be deleted.").ariaLabel("delete openchannelDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getOpenchannelAccountOpenchannelDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.openchannelAccount.getDispositions(c.query,p).$promise},c.createOrEditOpenchannelAccountOpenchannelDisposition=function(e,t){o.show({controller:"CreateOrEditOpenchannelDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:c.openchannelAccount,openchannelDisposition:t,openchannelDispositions:c.openchannelAccountOpenchannelDispositions.rows,license:null,setting:null}})},c.exportSelectedOpenchannelAccountOpenchannelDispositions=function(){var e=angular.copy(c.selectedOpenchannelAccountOpenchannelDispositions);return c.selectedOpenchannelAccountOpenchannelDispositions=[],e},c.deleteOpenchannelAccountOpenchannelDisposition=g,c.deleteSelectedOpenchannelAccountOpenchannelDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected openchannelDispositions?").htmlContent("<b>"+c.selectedOpenchannelAccountOpenchannelDispositions.length+" selected</b> will be deleted.").ariaLabel("delete openchannelDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedOpenchannelAccountOpenchannelDispositions.forEach(function(e){g(e)}),c.selectedOpenchannelAccountOpenchannelDispositions=[]})};var m=!0,u=1;function p(e){c.openchannelAccountOpenchannelDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.openchannelAccountOpenchannelDispositions.rows,{id:e.id}),c.openchannelAccountOpenchannelDispositions.count-=1,c.openchannelAccountOpenchannelDispositions.rows.length||c.getOpenchannelAccountOpenchannelDispositions(),r.success({title:"OpenchannelDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getOpenchannelAccountOpenchannelDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION",u.openchannelDisposition=angular.copy(r),u.openchannelDispositions=s,u.newOpenchannelDisposition=!1,u.openchannelDisposition||(u.openchannelDisposition={},u.title="OPENCHANNEL.NEW_OPENCHANNELDISPOSITION",u.newOpenchannelDisposition=!0),t.params.id&&(u.openchannelDisposition.OpenchannelAccountId=t.params.id),u.addNewOpenchannelDisposition=function(){u.errors=[],l.disposition.save(u.openchannelDisposition).$promise.then(function(e){u.openchannelDispositions.unshift(e.toJSON()),o.success({title:"OpenchannelDisposition properly created",msg:u.openchannelDisposition.name?u.openchannelDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelDisposition=function(){u.errors=[],l.disposition.update({id:u.openchannelDisposition.id},u.openchannelDisposition).$promise.then(function(e){var t=_.find(u.openchannelDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"OpenchannelDisposition properly saved!",msg:u.openchannelDisposition.name?u.openchannelDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOpenchannelDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelDisposition will be deleted.").ariaLabel("Delete OpenchannelDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.openchannelDisposition.id}).$promise.then(function(){_.remove(u.openchannelDispositions,{id:u.openchannelDisposition.id}),o.success({title:"OpenchannelDisposition properly deleted!",msg:(u.openchannelDisposition.name||"openchannelDisposition")+" has been deleted!"}),p(u.openchannelDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelDispositions","openchannelDisposition","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.openchannelAccount=d||e.params.openchannelAccount||{},c.selectedTab=e.params.tab||0,c.agentadddialog=function(e,t){n.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:c.openchannelAccounts?c.openchannelAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts")},c.saveOpenchannelAccount=function(){s.openchannelAccount.update({id:c.openchannelAccount.id},c.openchannelAccount).$promise.then(function(){r.success({title:"OpenchannelAccount updated!",msg:c.openchannelAccount.name?c.openchannelAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmContact.describe({}).$promise.then(function(e){if(e){var t=_.keys(e.toJSON());c.attributes=[],c.excludedFields=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"];for(var n=0;n<t.length;n++)_.includes(c.excludedFields,t[n])||_.startsWith(t[n],"cf_")||c.attributes.push({option:t[n],value:t[n]})}}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETattributes",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.cmList.getCustomFields({id:c.openchannelAccount.ListId}).$promise.then(function(e){if(e){c.customFields=[];for(var t=0;t<e.rows.length;t++)c.customFields.push({option:e.rows[t].alias,value:"cf_"+e.rows[t].id})}}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","openchannelAccount"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.openchannelAccounts=r||{count:0,rows:[]},v.table="openchannelAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedOpenchannelAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e})},v.interactionsgoto=function(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},v.agentadddialog=function(e,t){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:v.openchannelAccounts?v.openchannelAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getOpenchannelAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.openchannelAccount.get(v.query,f).$promise},v.createOrEditOpenchannelAccount=function(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:v.openchannelAccounts.rows,license:v.license,setting:v.setting}})},v.deleteOpenchannelAccount=A,v.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(v.selectedOpenchannelAccounts);return v.selectedOpenchannelAccounts=[],e},v.deleteSelectedOpenchannelAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+v.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOpenchannelAccounts.forEach(function(e){A(e)}),v.selectedOpenchannelAccounts=[]})},v.deselectOpenchannelAccounts=function(){v.selectedOpenchannelAccounts=[]},v.selectAllOpenchannelAccounts=function(){v.selectedOpenchannelAccounts=v.openchannelAccounts.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.openchannelAccounts=e||{count:0,rows:[]}}function A(e){l.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.openchannelAccounts.rows,{id:e.id}),v.openchannelAccounts.count-=1,v.openchannelAccounts.rows.length||v.getOpenchannelAccounts(),c.success({title:"OpenchannelAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",u.openchannelQueue=angular.copy(r),u.openchannelQueues=s,u.newOpenchannelQueue=!1,u.openchannelQueue||(u.openchannelQueue={strategy:"beepall",timeout:10},u.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",u.newOpenchannelQueue=!0),u.addNewOpenchannelQueue=function(){u.errors=[],l.openchannelQueue.save(u.openchannelQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"openChannel",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.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.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveOpenchannelQueue=function(){u.errors=[],l.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(e){var t=_.find(u.openchannelQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"OpenchannelQueue properly saved!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteOpenchannelQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.openchannelQueue.delete({id:u.openchannelQueue.id}).$promise.then(function(){return l.openchannelQueue.getAgents({id:u.openchannelQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.openchannelQueue.id],channel:"openChannel",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.openchannelQueues,{id:u.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(u.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),p(u.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.openchannelQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.openchannelQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:s.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,t){a.openchannelQueue[t?"removeAgents":"addAgents"]({id:l.openchannelQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"OpenchannelQueue properly "+(t?"removed":"added"),msg:"OpenchannelQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.openchannelQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.openchannelQueue[t?"removeTeams":"addTeams"]({id:o.openchannelQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.openchannelQueue.getTeams({id:o.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.openchannelQueue=d||e.params.openchannelQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:c.openchannelQueues?c.openchannelQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:c.openchannelQueues?c.openchannelQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues")},c.saveOpenchannelQueue=function(){s.openchannelQueue.update({id:c.openchannelQueue.id},c.openchannelQueue).$promise.then(function(){r.success({title:"OpenchannelQueue updated!",msg:c.openchannelQueue.name?c.openchannelQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","openchannelQueue"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.openchannelQueues=r||{count:0,rows:[]},v.table="openchannelQueues",v.listOrder="",v.listOrderAsc=null,v.selectedOpenchannelQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:v.openchannelQueues?v.openchannelQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:v.openchannelQueues?v.openchannelQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.openchannel.realtime.queues",{})},v.success=f,v.getOpenchannelQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.openchannelQueue.get(v.query,f).$promise},v.createOrEditOpenchannelQueue=function(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:v.openchannelQueues.rows,license:v.license,setting:v.setting}})},v.deleteOpenchannelQueue=A,v.exportSelectedOpenchannelQueues=function(){var e=angular.copy(v.selectedOpenchannelQueues);return v.selectedOpenchannelQueues=[],e},v.deleteSelectedOpenchannelQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+v.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOpenchannelQueues.forEach(function(e){A(e)}),v.selectedOpenchannelQueues=[]})},v.deselectOpenchannelQueues=function(){v.selectedOpenchannelQueues=[]},v.selectAllOpenchannelQueues=function(){v.selectedOpenchannelQueues=v.openchannelQueues.rows};var h=!0,b=1;function f(e){v.openchannelQueues=e||{count:0,rows:[]}}function A(e){l.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.openchannelQueues.rows,{id:e.id}),v.openchannelQueues.count-=1,v.openchannelQueues.rows.length||v.getOpenchannelQueues(),c.success({title:"OpenchannelQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"openchannel",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.openchannelQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].OpenchannelQueueId].paused++,u.queues[e[t].rows[n].OpenchannelQueueId].loggedInDb++,u.queues[e[t].rows[n].OpenchannelQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].OpenchannelQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"openchannel",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.openchannelQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditOpenchannelQueue=function(e,t){a.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.openchannelQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.OpenchannelQueueId]&&u.queues[e.OpenchannelQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.OpenchannelQueueId]&&u.queues[e.OpenchannelQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.OpenchannelQueueId]&&(u.queues[e.OpenchannelQueueId].loggedInDb+=1,u.queues[e.OpenchannelQueueId].agents[e.UserId]=e.OpenchannelQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.OpenchannelQueueId]&&0<u.queues[e.OpenchannelQueueId].loggedInDb&&(u.queues[e.OpenchannelQueueId].loggedInDb-=1,delete u.queues[e.OpenchannelQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("openchannel_queue:save",u.onSave),d.on("userOpenchannelQueue:save",u.onSaveMember),d.on("userOpenchannelQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("openchannel_queue:save"),d.removeAllListeners("userOpenchannelQueue:remove"),d.removeAllListeners("userOpenchannelQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,n.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.openchannel.realtime.agents");break;case 1:n.go("app.openchannel.realtime.queues");break;default:n.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.currentUser=o.getCurrentUser(),s.plugin={},s.getTrustedURL=function(){return n.trustAsResourceUrl(s.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return s.plugin=e,a.plugin.get({id:s.plugin.id}).$promise}).catch(function(e){s.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_CUSTOMIZATION",u.customization=angular.copy(r),u.customizations=s,u.newCustomization=!1,u.customization||(u.customization={},u.title="SETTINGS.NEW_CUSTOMIZATION",u.newCustomization=!0),u.addNewCustomization=function(){u.errors=[],l.setting.save(u.customization).$promise.then(function(e){u.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:u.customization.name?u.customization.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.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.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCustomization=function(){u.errors=[],l.setting.update({id:u.customization.id},u.customization).$promise.then(function(e){var t=_.find(u.customizations,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Customization properly saved!",msg:u.customization.name?u.customization.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)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.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCustomization=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.setting.delete({id:u.customization.id}).$promise.then(function(){_.remove(u.customizations,{id:u.customization.id}),o.success({title:"Customization properly deleted!",msg:(u.customization.name||"customization")+" has been deleted!"}),p(u.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var t=0;t<e.data.errors.length;t++)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.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","customizations","customization","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.license=a,i.customizations=e,i.customization={},i.customizations&&i.customizations.rows&&i.customizations.rows.length&&(i.customization=i.customizations.rows[0]),i.saveCustomization=function(){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()})})}}e.$inject=["customizations","api","toasty","license"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_GENERAL",u.general=angular.copy(r),u.generals=s,u.newGeneral=!1,u.general||(u.general={min_internal:1e3,chatTimeout:10,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0},u.title="SETTINGS.NEW_GENERAL",u.newGeneral=!0),u.addNewGeneral=function(){u.errors=[],l.setting.save(u.general).$promise.then(function(e){u.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:u.general.name?u.general.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.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.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveGeneral=function(){u.errors=[],l.setting.update({id:u.general.id},u.general).$promise.then(function(e){var t=_.find(u.generals,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"General properly saved!",msg:u.general.name?u.general.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)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.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteGeneral=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.setting.delete({id:u.general.id}).$promise.then(function(){_.remove(u.generals,{id:u.general.id}),o.success({title:"General properly deleted!",msg:(u.general.name||"general")+" has been deleted!"}),p(u.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var t=0;t<e.data.errors.length;t++)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.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","generals","general","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.license=a,i.generals=e,i.general={},i.generals&&i.generals.rows&&i.generals.rows.length&&(i.general=i.generals.rows[0]),i.saveGeneral=function(){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()})})}}e.$inject=["generals","api","toasty","license"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(t,n,a,i,e,o){var s=this;s.license=i||{},s.agents=0,s.users=0,s.telephones=0,s.channels=[{name:"voice",icon:"icon-phone"},{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"}],s.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],s.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"}],s.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],s.others=[{name:"update",icon:"icon-cloud-download"}],s.requestLicense=function(e){n.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:s.channels,modules:s.modules,addons:s.addons,sessions:s.sessions,others:s.others}})},s.updateLicense=function(e){n.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},s.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},o.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return s.agents=e&&e.count?e.count:0,o.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return s.users=e&&e.count?e.count:0,o.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){s.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(n),m.channels=a,m.modules=i,m.addons=o,m.sessions=s,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(n[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==n[e]?n[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==n[e]?n[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){t.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.errors=[],o.license=angular.copy(n),o.licenseKey,o.updateLicense=function(){return a.license.update({id:1,key:o.licenseKey}).$promise.then(function(e){e&&(e.demo?t.error({title:"License update failed!",msg:"Invalid license key"}):t.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_NETWORK",u.network=angular.copy(r),u.networks=s,u.newNetwork=!1,u.network||(u.network={type:"localnet"},u.title="SETTINGS.NEW_NETWORK",u.newNetwork=!0),u.addNewNetwork=function(){u.errors=[],l.network.save(u.network).$promise.then(function(e){u.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:u.network.name?u.network.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.network.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.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveNetwork=function(){u.errors=[],l.network.update({id:u.network.id},u.network).$promise.then(function(e){var t=_.find(u.networks,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Network properly saved!",msg:u.network.name?u.network.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var t=0;t<e.data.errors.length;t++)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.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteNetwork=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.network.delete({id:u.network.id}).$promise.then(function(){_.remove(u.networks,{id:u.network.id}),o.success({title:"Network properly deleted!",msg:(u.network.name||"network")+" has been deleted!"}),p(u.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var t=0;t<e.data.errors.length;t++)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.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.networks=r||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(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:v.networks.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.network.get(v.query,f).$promise},v.createOrEditNetwork=function(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:v.networks.rows,license:v.license,setting:v.setting}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var t=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,b=1;function f(e){v.networks=e||{count:0,rows:[]}}function A(e){l.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),c.success({title:"Network deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","networks","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SETTINGS.EDIT_SMTP",u.smtp=angular.copy(r),u.smtps=s,u.newSmtp=!1,u.smtp||(u.smtp={service:!0},u.title="SETTINGS.NEW_SMTP",u.newSmtp=!0),u.addNewSmtp=function(){u.errors=[],l.mailAccount.save(u.smtp).$promise.then(function(e){u.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:u.smtp.name?u.smtp.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.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.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmtp=function(){u.errors=[],l.mailAccount.update({id:u.smtp.id},u.smtp).$promise.then(function(e){var t=_.find(u.smtps,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Smtp properly saved!",msg:u.smtp.name?u.smtp.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)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.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmtp=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.mailAccount.delete({id:u.smtp.id}).$promise.then(function(){_.remove(u.smtps,{id:u.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(u.smtp.name||"smtp")+" has been deleted!"}),p(u.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var t=0;t<e.data.errors.length;t++)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.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smtps","smtp","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.license=a,i.smtps=e,i.smtp={},i.smtps&&i.smtps.rows&&i.smtps.rows.length?i.smtp=i.smtps.rows[0]:i.smtp={service:!0,Smtp:{service:null}},i.saveSmtp=function(){i.smtp.id?t.mailAccount.update({id:i.smtp.id},i.smtp).$promise.then(function(){n.success({title:"Smtp updated!",msg:i.smtp.name?i.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(i.smtp).$promise.then(function(e){_.merge(i.smtp,e),n.success({title:"Smtp updated!",msg:i.smtp.name?i.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()})})},i.verifySmtp=function(){i.smtp.id&&t.mailAccount.verifySmtp({id:i.smtp.id}).$promise.then(function(){n.success({title:"Smtp verified!",msg:i.smtp.name?i.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})})}}e.$inject=["smtps","api","toasty","license"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,o,t,n,a,s,r){var l,d=this;d.system=n||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=t.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,t,n){var a=o.confirm().title("Would you like to change the status of the process #"+t+"?").textContent("The status will be changed to: "+n.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");o.show(a).then(function(){return r.pm2.update({id:t,status:n})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){s.success({title:"Process updated!",msg:"Status properly changed to: "+n})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.title="SETTINGS.UPDATE",o.progress=0,o.updating=!0,o.output="Waiting...",o.success=!0,o.interval=t(function(){o.progress<90&&(o.progress+=1)},1e3),o.closeDialog=function(){e.hide()},o.reload=function(){n.location.reload()},o.stopInterval=function(){angular.isDefined(o.interval)&&(t.cancel(o.interval),o.interval=void 0);o.progress=100,o.updating=!1},i.version.fetch().$promise.then(function(e){return o.output=e.output+"...",i.version.reset().$promise}).then(function(e){return o.output=e.output+"...",i.version.pull().$promise}).then(function(e){return o.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return o.output=e.output+"...",i.version.restart().$promise}).then(function(e){o.output="Waiting to restart motion...",a(function(){o.stopInterval()},3e4)}).catch(function(e){o.success=!1,o.stopInterval(),o.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(n,e,a,t,i){this.version=t||{},this.updateConfirm=function(e){var t=n.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(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");n.show(t).then(function(){n.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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:"sms",realtime:!0,direction:"inbound"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.smsQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].SmsQueueId].paused++,u.queues[e[t].rows[n].SmsQueueId].loggedInDb++,u.queues[e[t].rows[n].SmsQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].SmsQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"sms",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.smsQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditSmsQueue=function(e,t){a.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:_.values(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:u.queues?u.queues.rows:[],realtime:!1}})},u.updateQueue=function(e){return l.smsQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onSaveMember=function(e){u.queues[e.SmsQueueId]&&u.queues[e.SmsQueueId].loggedInDb++},u.onRemoveMember=function(e){u.queues[e.SmsQueueId]&&u.queues[e.SmsQueueId].loggedInDb--},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.SmsQueueId]&&(u.queues[e.SmsQueueId].loggedInDb+=1,u.queues[e.SmsQueueId].agents[e.UserId]=e.SmsQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.SmsQueueId]&&0<u.queues[e.SmsQueueId].loggedInDb&&(u.queues[e.SmsQueueId].loggedInDb-=1,delete u.queues[e.SmsQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.on("sms_queue:save",u.onSave),d.on("userSmsQueue:save",u.onSaveMember),d.on("userSmsQueue:remove",u.onRemoveMember),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("sms_queue:save"),d.removeAllListeners("userSmsQueue:remove"),d.removeAllListeners("userSmsQueue:save"),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){switch(t.disconnect(),t.connect(),this.selectedTab=0,n.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,n.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.sms.realtime.agents");break;case 1:n.go("app.sms.realtime.queues");break;default:n.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,o,i,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSACCOUNT",u.smsAccount=angular.copy(r),u.smsAccounts=s,u.newSmsAccount=!1,u.smsAccount||(u.smsAccount={remote:n.protocol()+"://"+n.host()+(n.port()?":"+n.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},u.title="SMS.NEW_SMSACCOUNT",u.newSmsAccount=!0),t.params.id&&(u.smsAccount.SmsAccountId=t.params.id),u.addNewSmsAccount=function(){u.errors=[],l.smsAccount.save(u.smsAccount).$promise.then(function(e){var t="add"+_.upperFirst("smsAccount")+"s";return l.user[t]({id:d.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){u.smsAccounts.unshift(e.toJSON()),i.success({title:"SmsAccount properly created",msg:u.smsAccount.name?u.smsAccount.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.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.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsAccount=function(){u.errors=[],l.smsAccount.update({id:u.smsAccount.id},u.smsAccount).$promise.then(function(e){var t=_.find(u.smsAccounts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),i.success({title:"SmsAccount properly saved!",msg:u.smsAccount.name?u.smsAccount.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.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()})})},u.deleteSmsAccount=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.smsAccount.delete({id:u.smsAccount.id}).$promise.then(function(){return l.smsAccount.getAgents({id:u.smsAccount.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a="remove"+_.upperFirst("smsAccount")+"s",i=0;i<n.length;i++)t.push(l.user[a]({id:d.getCurrentUser().id,ids:[u.smsAccount.id]}).$promise);return o.all(t)}).then(function(){_.remove(u.smsAccounts,{id:u.smsAccount.id}),i.success({title:"SmsAccount properly deleted!",msg:(u.smsAccount.name||"smsAccount")+" has been deleted!"}),p(u.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];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.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.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()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsAccounts","smsAccount","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(s,i,a,o,e){var r=this;function t(e,t){if(r.smsAccountApps.rows.length){var n=r.smsAccountApps.rows[t]?r.smsAccountApps.rows[t]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:n,smsAccount:r.smsAccount}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[t]=e:r.smsAccountApps.rows.splice(t,0,e),l())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,t=[],n=0;n<r.smsAccountApps.rows.length;n++,0){var a=r.smsAccountApps.rows[n],i=[],o=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(o.length?_.last(o).priority:a.priority)+1,t=_.concat(t,i,[a],o)}s.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(t,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"1"},{option:"Always",value:"0"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",maxlength:255,required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e){r.smsAccount=e,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=s.smsAccount.getApplications(r.query,n).$promise},r.editSmsAccountApp=t,r.editInterval=function(e,t){if(r.smsAccountApps.rows.length){var n=r.smsAccountApps.rows[t]?r.smsAccountApps.rows[t]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return s.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.smsAccount[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.smsAccount=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("SMS.ALL_AGENTS"),labelSelected:s.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,t){a.smsAccount[t?"removeAgents":"addAgents"]({id:l.smsAccount.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"SmsAccount properly "+(t?"removed":"added"),msg:"SmsAccount has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsAccount.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.agent=angular.copy(e),o.agent.appdata)switch(o.agent.appType?o.agent.appType.toLowerCase():o.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agent.appdata.split(",");o.agent.key=s[0],o.agent.language=s[1],o.agent.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agent.appdata.split(",");o.agent.accesskeyid=s[0],o.agent.secretaccesskey=s[1],o.agent.lexregion=s[2],o.agent.botname=s[3],o.agent.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agent.appdata.split(",");o.agent.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agent.text=s.slice(1,s.length).join(",");break;case"message":o.agent.text=o.agent.appdata;break;case"set":o.agent.name=o.agent.appdata.split("=")[0],o.agent.value=o.agent.appdata.split("=")[1];break;case"agi":o.agent.project=o.agent.appdata;break;default:var r=o.agent.appdata.split(",");o.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.agent.timeout=30;function l(e){t.hide(e)}o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outbounddial"===o.agent.appType.toLowerCase()&&(o.agent.prefix=o.agent.phone?o.agent.phone.split("$")[0]:void 0,o.agent.callerId=o.agent.callerID?"CALLERID(all)="+o.agent.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.agent.type&&"outbound"===o.agent.type.toLowerCase()&&"outboundDial"===o.agent.appType&&(o.agent.phone=a.cutdigits?(o.agent.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agent.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agent.options+="U(xcally-mixmonitor-context)"):o.agent.options=o.agent.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.agents,{name:o.agent.agent});t&&(o.agent.UserId=t.id);if(o.agent.appType&&"custom"===o.agent.appType);else switch((o.agent.app||o.agent.appType).toLowerCase()){case"set":o.agent.appdata=o.agent.name+"="+o.agent.value;break;case"custom":break;default:e[0]=o.agent.agent,e[1]=o.agent.timeout,o.agent.appdata=e.join(",")}l(o.agent)},o.closeDialog=l,i.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){o.agents=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.autoreply=angular.copy(n),o.autoreply.appdata)switch(o.autoreply.appType?o.autoreply.appType.toLowerCase():o.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.autoreply.appdata.split(",");o.autoreply.key=s[0],o.autoreply.language=s[1],o.autoreply.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.autoreply.appdata.split(",");o.autoreply.accesskeyid=s[0],o.autoreply.secretaccesskey=s[1],o.autoreply.lexregion=s[2],o.autoreply.botname=s[3],o.autoreply.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.autoreply.appdata.split(",");o.autoreply.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.autoreply.text=s.slice(1,s.length).join(",");break;case"message":o.autoreply.text=o.autoreply.appdata;break;case"set":o.autoreply.name=o.autoreply.appdata.split("=")[0],o.autoreply.value=o.autoreply.appdata.split("=")[1];break;case"agi":o.autoreply.project=o.autoreply.appdata;break;default:var r=o.autoreply.appdata.split(",");o.autoreply.times=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.autoreply.text=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.autoreply.times=1;function l(e){t.hide(e)}o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outbounddial"===o.autoreply.appType.toLowerCase()&&(o.autoreply.prefix=o.autoreply.phone?o.autoreply.phone.split("$")[0]:void 0,o.autoreply.callerId=o.autoreply.callerID?"CALLERID(all)="+o.autoreply.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.autoreply.type&&"outbound"===o.autoreply.type.toLowerCase()&&"outboundDial"===o.autoreply.appType&&(o.autoreply.phone=a.cutdigits?(o.autoreply.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.autoreply.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.autoreply.options+="U(xcally-mixmonitor-context)"):o.autoreply.options=o.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(o.autoreply.appType&&"custom"===o.autoreply.appType);else switch((o.autoreply.app||o.autoreply.appType).toLowerCase()){case"set":o.autoreply.appdata=o.autoreply.name+"="+o.autoreply.value;break;case"custom":break;default:e[0]=o.autoreply.times,e[1]=o.autoreply.text,o.autoreply.appdata=e.join(",")}l(o.autoreply)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.close=angular.copy(n),o.close.appdata)switch(o.close.appType?o.close.appType.toLowerCase():o.close.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.close.appdata.split(",");o.close.key=s[0],o.close.language=s[1],o.close.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.close.appdata.split(",");o.close.accesskeyid=s[0],o.close.secretaccesskey=s[1],o.close.lexregion=s[2],o.close.botname=s[3],o.close.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.close.appdata.split(",");o.close.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.close.text=s.slice(1,s.length).join(",");break;case"message":o.close.text=o.close.appdata;break;case"set":o.close.name=o.close.appdata.split("=")[0],o.close.value=o.close.appdata.split("=")[1];break;case"agi":o.close.project=o.close.appdata;break;default:var r=o.close.appdata.split(",");o.close.disposition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outbounddial"===o.close.appType.toLowerCase()&&(o.close.prefix=o.close.phone?o.close.phone.split("$")[0]:void 0,o.close.callerId=o.close.callerID?"CALLERID(all)="+o.close.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.close.type&&"outbound"===o.close.type.toLowerCase()&&"outboundDial"===o.close.appType&&(o.close.phone=a.cutdigits?(o.close.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.close.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.close.options+="U(xcally-mixmonitor-context)"):o.close.options=o.close.options.replace("U(xcally-mixmonitor-context)",""));if(o.close.appType&&"custom"===o.close.appType);else switch((o.close.app||o.close.appType).toLowerCase()){case"set":o.close.appdata=o.close.name+"="+o.close.value;break;case"custom":break;default:e[0]=o.close.disposition,o.close.appdata=e.join(",")}l(o.close)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotoif=angular.copy(n),o.gotoif.appdata)switch(o.gotoif.appType?o.gotoif.appType.toLowerCase():o.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotoif.appdata.split(",");o.gotoif.key=s[0],o.gotoif.language=s[1],o.gotoif.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotoif.appdata.split(",");o.gotoif.accesskeyid=s[0],o.gotoif.secretaccesskey=s[1],o.gotoif.lexregion=s[2],o.gotoif.botname=s[3],o.gotoif.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotoif.appdata.split(",");o.gotoif.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotoif.text=s.slice(1,s.length).join(",");break;case"message":o.gotoif.text=o.gotoif.appdata;break;case"set":o.gotoif.name=o.gotoif.appdata.split("=")[0],o.gotoif.value=o.gotoif.appdata.split("=")[1];break;case"agi":o.gotoif.project=o.gotoif.appdata;break;default:var r=o.gotoif.appdata.split(",");o.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outbounddial"===o.gotoif.appType.toLowerCase()&&(o.gotoif.prefix=o.gotoif.phone?o.gotoif.phone.split("$")[0]:void 0,o.gotoif.callerId=o.gotoif.callerID?"CALLERID(all)="+o.gotoif.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.gotoif.type&&"outbound"===o.gotoif.type.toLowerCase()&&"outboundDial"===o.gotoif.appType&&(o.gotoif.phone=a.cutdigits?(o.gotoif.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotoif.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotoif.options+="U(xcally-mixmonitor-context)"):o.gotoif.options=o.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotoif.appType&&"custom"===o.gotoif.appType);else switch((o.gotoif.app||o.gotoif.appType).toLowerCase()){case"set":o.gotoif.appdata=o.gotoif.name+"="+o.gotoif.value;break;case"custom":break;default:e[0]=o.gotoif.condition,e[1]=o.gotoif.truepriority,e[2]=o.gotoif.falsepriority,o.gotoif.appdata=e.join(",")}l(o.gotoif)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.gotop=angular.copy(n),o.gotop.appdata)switch(o.gotop.appType?o.gotop.appType.toLowerCase():o.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.gotop.appdata.split(",");o.gotop.key=s[0],o.gotop.language=s[1],o.gotop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.gotop.appdata.split(",");o.gotop.accesskeyid=s[0],o.gotop.secretaccesskey=s[1],o.gotop.lexregion=s[2],o.gotop.botname=s[3],o.gotop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.gotop.appdata.split(",");o.gotop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.gotop.text=s.slice(1,s.length).join(",");break;case"message":o.gotop.text=o.gotop.appdata;break;case"set":o.gotop.name=o.gotop.appdata.split("=")[0],o.gotop.value=o.gotop.appdata.split("=")[1];break;case"agi":o.gotop.project=o.gotop.appdata;break;default:var r=o.gotop.appdata.split(",");o.gotop.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outbounddial"===o.gotop.appType.toLowerCase()&&(o.gotop.prefix=o.gotop.phone?o.gotop.phone.split("$")[0]:void 0,o.gotop.callerId=o.gotop.callerID?"CALLERID(all)="+o.gotop.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.gotop.type&&"outbound"===o.gotop.type.toLowerCase()&&"outboundDial"===o.gotop.appType&&(o.gotop.phone=a.cutdigits?(o.gotop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.gotop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.gotop.options+="U(xcally-mixmonitor-context)"):o.gotop.options=o.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(o.gotop.appType&&"custom"===o.gotop.appType);else switch((o.gotop.app||o.gotop.appType).toLowerCase()){case"set":o.gotop.appdata=o.gotop.name+"="+o.gotop.value;break;case"custom":break;default:e[0]=o.gotop.priority,o.gotop.appdata=e.join(",")}l(o.gotop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(n.appType||n.app).toUpperCase(),o.noop=angular.copy(n),o.noop.appdata)switch(o.noop.appType?o.noop.appType.toLowerCase():o.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.noop.appdata.split(",");o.noop.key=s[0],o.noop.language=s[1],o.noop.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.noop.appdata.split(",");o.noop.accesskeyid=s[0],o.noop.secretaccesskey=s[1],o.noop.lexregion=s[2],o.noop.botname=s[3],o.noop.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.noop.appdata.split(",");o.noop.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.noop.text=s.slice(1,s.length).join(",");break;case"message":o.noop.text=o.noop.appdata;break;case"set":o.noop.name=o.noop.appdata.split("=")[0],o.noop.value=o.noop.appdata.split("=")[1];break;case"agi":o.noop.project=o.noop.appdata;break;default:var r=o.noop.appdata.split(",");o.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outbounddial"===o.noop.appType.toLowerCase()&&(o.noop.prefix=o.noop.phone?o.noop.phone.split("$")[0]:void 0,o.noop.callerId=o.noop.callerID?"CALLERID(all)="+o.noop.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.noop.type&&"outbound"===o.noop.type.toLowerCase()&&"outboundDial"===o.noop.appType&&(o.noop.phone=a.cutdigits?(o.noop.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.noop.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.noop.options+="U(xcally-mixmonitor-context)"):o.noop.options=o.noop.options.replace("U(xcally-mixmonitor-context)",""));if(o.noop.appType&&"custom"===o.noop.appType);else switch((o.noop.app||o.noop.appType).toLowerCase()){case"set":o.noop.appdata=o.noop.name+"="+o.noop.value;break;case"custom":break;default:e[0]=o.noop.value,o.noop.appdata=e.join(",")}l(o.noop)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.queue.queue=300,o.queue.timeout=300;function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.queues,{name:o.queue.queue});t&&(o.queue[_.capitalize("sms")+"QueueId"]=t.id);if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.timeout,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.system=angular.copy(e),o.system.appdata)switch(o.system.appType?o.system.appType.toLowerCase():o.system.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.system.appdata.split(",");o.system.key=s[0],o.system.language=s[1],o.system.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.system.appdata.split(",");o.system.accesskeyid=s[0],o.system.secretaccesskey=s[1],o.system.lexregion=s[2],o.system.botname=s[3],o.system.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.system.appdata.split(",");o.system.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.system.text=s.slice(1,s.length).join(",");break;case"message":o.system.text=o.system.appdata;break;case"set":o.system.name=o.system.appdata.split("=")[0],o.system.value=o.system.appdata.split("=")[1];break;case"agi":o.system.project=o.system.appdata;break;default:var r=o.system.appdata.split(",");o.system.command=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.system.variable=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else o.system.variable="";function l(e){t.hide(e)}o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outbounddial"===o.system.appType.toLowerCase()&&(o.system.prefix=o.system.phone?o.system.phone.split("$")[0]:void 0,o.system.callerId=o.system.callerID?"CALLERID(all)="+o.system.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.system.type&&"outbound"===o.system.type.toLowerCase()&&"outboundDial"===o.system.appType&&(o.system.phone=a.cutdigits?(o.system.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.system.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.system.options+="U(xcally-mixmonitor-context)"):o.system.options=o.system.options.replace("U(xcally-mixmonitor-context)",""));if(o.system.appType&&"custom"===o.system.appType);else switch((o.system.app||o.system.appType).toLowerCase()){case"set":o.system.appdata=o.system.name+"="+o.system.value;break;case"custom":break;default:e[0]=o.system.command,e[1]=o.system.variable,o.system.appdata=e.join(",")}l(o.system)},o.closeDialog=l,i.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="SMS.EDIT_"+(e.appType||e.app).toUpperCase(),o.tag=angular.copy(e),o.tag.appdata)switch(o.tag.appType?o.tag.appType.toLowerCase():o.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.tag.appdata.split(",");o.tag.key=s[0],o.tag.language=s[1],o.tag.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.tag.appdata.split(",");o.tag.accesskeyid=s[0],o.tag.secretaccesskey=s[1],o.tag.lexregion=s[2],o.tag.botname=s[3],o.tag.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.tag.appdata.split(",");o.tag.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.tag.text=s.slice(1,s.length).join(",");break;case"message":o.tag.text=o.tag.appdata;break;case"set":o.tag.name=o.tag.appdata.split("=")[0],o.tag.value=o.tag.appdata.split("=")[1];break;case"agi":o.tag.project=o.tag.appdata;break;default:var r=o.tag.appdata.split(",");o.tag.tag=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outbounddial"===o.tag.appType.toLowerCase()&&(o.tag.prefix=o.tag.phone?o.tag.phone.split("$")[0]:void 0,o.tag.callerId=o.tag.callerID?"CALLERID(all)="+o.tag.callerID:void 0),o.saveSmsAccountApp=function(){o.errors=[];var e=[];o.tag.type&&"outbound"===o.tag.type.toLowerCase()&&"outboundDial"===o.tag.appType&&(o.tag.phone=a.cutdigits?(o.tag.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.tag.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.tag.options+="U(xcally-mixmonitor-context)"):o.tag.options=o.tag.options.replace("U(xcally-mixmonitor-context)",""));var t=_.find(o.tags,{name:o.tag.tag});t&&(o.tag.TagId=t.id);if(o.tag.appType&&"custom"===o.tag.appType);else switch((o.tag.app||o.tag.appType).toLowerCase()){case"set":o.tag.appdata=o.tag.name+"="+o.tag.value;break;case"custom":break;default:e[0]=o.tag.tag,o.tag.appdata=e.join(",")}l(o.tag)},o.closeDialog=l,i.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","smsAccountApp","smsAccount","api"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,t,n,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.smsAccount={},c.smsAccountInteractions={count:0,rows:[]},c.selectedSmsAccountInteractions=[],c.query={fields:"createdAt,updatedAt,id,Contact.firstName,Owner.name,closedAt,disposition,note,UserId,ContactId,SmsAccountId,tag",sort:"-createdAt",includeAll:"true",limit:10,page:1},c.init=function(e){c.smsAccount=e,c.query.id=c.smsAccount.id,c.getSmsAccountInteractions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.smsInteractionDownload=function(o,e,t){return l.smsInteraction.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+o.id,a=new Blob(t,{type:e.type});n="sms-interaction"+o.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getSmsAccountInteractions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.smsAccount.getInteractions(c.query,p).$promise},c.createOrEditSmsAccountInteraction=function(e,t){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:c.smsAccount,interaction:t,interactions:c.smsAccountInteractions.rows,license:null,setting:null}})},c.spysmsInteraction=function(e,n){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,t){e.vm.init({id:1,channel:"sms",interaction:n,spy:!0},a.$parent.vm.setting)}})},c.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(c.selectedSmsAccountInteractions);return c.selectedSmsAccountInteractions=[],e},c.deleteSmsAccountInteraction=g,c.deleteSelectedSmsAccountInteractions=function(e){var t=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+c.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedSmsAccountInteractions.forEach(function(e){g(e)}),c.selectedSmsAccountInteractions=[]})};var m=!0,u=1;function p(e){c.smsAccountInteractions=e||{count:0,rows:[]}}function g(e){l.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.smsAccountInteractions.rows,{id:e.id}),c.smsAccountInteractions.count-=1,c.smsAccountInteractions.rows.length||c.getSmsAccountInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}a.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getSmsAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.smsAccount={},c.smsAccountSmsCannedAnswers={count:0,rows:[]},c.selectedSmsAccountSmsCannedAnswers=[],c.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},c.init=function(e){c.smsAccount=e,c.query.id=c.smsAccount.id,c.query.SmsAccountId=c.smsAccount.id,c.getSmsAccountSmsCannedAnswers()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getSmsAccountSmsCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.smsAccount.getAnswers(c.query,p).$promise},c.createOrEditSmsAccountSmsCannedAnswer=function(e,t){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:c.smsAccount,smsCannedAnswer:t,smsCannedAnswers:c.smsAccountSmsCannedAnswers.rows,license:null,setting:null}})},c.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(c.selectedSmsAccountSmsCannedAnswers);return c.selectedSmsAccountSmsCannedAnswers=[],e},c.deleteSmsAccountSmsCannedAnswer=g,c.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var t=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+c.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),c.selectedSmsAccountSmsCannedAnswers=[]})};var m=!0,u=1;function p(e){c.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.smsAccountSmsCannedAnswers.rows,{id:e.id}),c.smsAccountSmsCannedAnswers.count-=1,c.smsAccountSmsCannedAnswers.rows.length||c.getSmsAccountSmsCannedAnswers(),r.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getSmsAccountSmsCannedAnswers())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSCANNEDANSWER",u.smsCannedAnswer=angular.copy(r),u.smsCannedAnswers=s,u.newSmsCannedAnswer=!1,u.smsCannedAnswer||(u.smsCannedAnswer={},u.title="SMS.NEW_SMSCANNEDANSWER",u.newSmsCannedAnswer=!0),t.params.id&&(u.smsCannedAnswer.SmsAccountId=t.params.id),u.addNewSmsCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.smsCannedAnswer).$promise.then(function(e){u.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:u.smsCannedAnswer.name?u.smsCannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.smsCannedAnswer.id},u.smsCannedAnswer).$promise.then(function(e){var t=_.find(u.smsCannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SmsCannedAnswer properly saved!",msg:u.smsCannedAnswer.name?u.smsCannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmsCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.smsCannedAnswer.id}).$promise.then(function(){_.remove(u.smsCannedAnswers,{id:u.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(u.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),p(u.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.smsAccount={},c.smsAccountSmsDispositions={count:0,rows:[]},c.selectedSmsAccountSmsDispositions=[],c.query={fields:"createdAt,updatedAt,id,name",limit:10,page:1},c.init=function(e){c.smsAccount=e,c.query.id=c.smsAccount.id,c.query.SmsAccountId=c.smsAccount.id,c.getSmsAccountSmsDispositions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the smsDisposition?").htmlContent("<b>"+(e.name||"smsDisposition")+"</b> will be deleted.").ariaLabel("delete smsDisposition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getSmsAccountSmsDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.smsAccount.getDispositions(c.query,p).$promise},c.createOrEditSmsAccountSmsDisposition=function(e,t){o.show({controller:"CreateOrEditSmsDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:c.smsAccount,smsDisposition:t,smsDispositions:c.smsAccountSmsDispositions.rows,license:null,setting:null}})},c.exportSelectedSmsAccountSmsDispositions=function(){var e=angular.copy(c.selectedSmsAccountSmsDispositions);return c.selectedSmsAccountSmsDispositions=[],e},c.deleteSmsAccountSmsDisposition=g,c.deleteSelectedSmsAccountSmsDispositions=function(e){var t=o.confirm().title("Are you sure want to delete the selected smsDispositions?").htmlContent("<b>"+c.selectedSmsAccountSmsDispositions.length+" selected</b> will be deleted.").ariaLabel("delete smsDispositions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedSmsAccountSmsDispositions.forEach(function(e){g(e)}),c.selectedSmsAccountSmsDispositions=[]})};var m=!0,u=1;function p(e){c.smsAccountSmsDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.smsAccountSmsDispositions.rows,{id:e.id}),c.smsAccountSmsDispositions.count-=1,c.smsAccountSmsDispositions.rows.length||c.getSmsAccountSmsDispositions(),r.success({title:"SmsDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getSmsAccountSmsDispositions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSDISPOSITION",u.smsDisposition=angular.copy(r),u.smsDispositions=s,u.newSmsDisposition=!1,u.smsDisposition||(u.smsDisposition={},u.title="SMS.NEW_SMSDISPOSITION",u.newSmsDisposition=!0),t.params.id&&(u.smsDisposition.SmsAccountId=t.params.id),u.addNewSmsDisposition=function(){u.errors=[],l.disposition.save(u.smsDisposition).$promise.then(function(e){u.smsDispositions.unshift(e.toJSON()),o.success({title:"SmsDisposition properly created",msg:u.smsDisposition.name?u.smsDisposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsDisposition=function(){u.errors=[],l.disposition.update({id:u.smsDisposition.id},u.smsDisposition).$promise.then(function(e){var t=_.find(u.smsDispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SmsDisposition properly saved!",msg:u.smsDisposition.name?u.smsDisposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmsDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsDisposition will be deleted.").ariaLabel("Delete SmsDisposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.smsDisposition.id}).$promise.then(function(){_.remove(u.smsDispositions,{id:u.smsDisposition.id}),o.success({title:"SmsDisposition properly deleted!",msg:(u.smsDisposition.name||"smsDisposition")+" has been deleted!"}),p(u.smsDisposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsDispositions","smsDisposition","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.smsAccount=d||e.params.smsAccount||{},c.selectedTab=e.params.tab||0,c.agentadddialog=function(e,t){n.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:c.smsAccounts?c.smsAccounts.rows:[],realtime:!1}})},c.alert=r.info,c.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts")},c.saveSmsAccount=function(){s.smsAccount.update({id:c.smsAccount.id},c.smsAccount).$promise.then(function(){r.success({title:"SmsAccount updated!",msg:c.smsAccount.name?c.smsAccount.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.lists=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","smsAccount"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.smsAccounts=r||{count:0,rows:[]},v.table="smsAccounts",v.listOrder="",v.listOrderAsc=null,v.selectedSmsAccounts=[],v.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"CSCTelecom",value:"'csc'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e})},v.interactionsgoto=function(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},v.agentadddialog=function(e,t){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:v.smsAccounts?v.smsAccounts.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSmsAccounts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.smsAccount.get(v.query,f).$promise},v.createOrEditSmsAccount=function(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:v.smsAccounts.rows,license:v.license,setting:v.setting}})},v.deleteSmsAccount=A,v.exportSelectedSmsAccounts=function(){var e=angular.copy(v.selectedSmsAccounts);return v.selectedSmsAccounts=[],e},v.deleteSelectedSmsAccounts=function(e){var t=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+v.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSmsAccounts.forEach(function(e){A(e)}),v.selectedSmsAccounts=[]})},v.deselectSmsAccounts=function(){v.selectedSmsAccounts=[]},v.selectAllSmsAccounts=function(){v.selectedSmsAccounts=v.smsAccounts.rows},l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.smsAccounts=e||{count:0,rows:[]}}function A(e){l.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(v.smsAccounts.rows,{id:e.id}),v.smsAccounts.count-=1,v.smsAccounts.rows.length||v.getSmsAccounts(),c.success({title:"SmsAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsAccounts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="SMS.EDIT_SMSQUEUE",u.smsQueue=angular.copy(r),u.smsQueues=s,u.newSmsQueue=!1,u.smsQueue||(u.smsQueue={strategy:"beepall",timeout:10},u.title="SMS.NEW_SMSQUEUE",u.newSmsQueue=!0),u.addNewSmsQueue=function(){u.errors=[],l.smsQueue.save(u.smsQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"sms",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:u.smsQueue.name?u.smsQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.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.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSmsQueue=function(){u.errors=[],l.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(e){var t=_.find(u.smsQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"SmsQueue properly saved!",msg:u.smsQueue.name?u.smsQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSmsQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.smsQueue.delete({id:u.smsQueue.id}).$promise.then(function(){return l.smsQueue.getAgents({id:u.smsQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.smsQueue.id],channel:"sms",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.smsQueues,{id:u.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(u.smsQueue.name||"smsQueue")+" has been deleted!"}),p(u.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","smsQueues","smsQueue","api","Auth","license","setting"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.smsQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.smsQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("SMS.ALL_AGENTS"),labelSelected:s.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,t){a.smsQueue[t?"removeAgents":"addAgents"]({id:l.smsQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"SmsQueue properly "+(t?"removed":"added"),msg:"SmsQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.smsQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.smsQueue[t?"removeTeams":"addTeams"]({id:o.smsQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.smsQueue.getTeams({id:o.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.smsQueue=d||e.params.smsQueue||{},c.selectedTab=e.params.tab||0,c.teamadddialog=function(e,t){n.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:c.smsQueues?c.smsQueues.rows:[]}})},c.agentadddialog=function(e,t){n.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:c.smsQueues?c.smsQueues.rows:[],realtime:!1}})},c.alert=r.info,c.gotoSmsQueues=function(){e.go("app.sms.smsQueues")},c.saveSmsQueue=function(){s.smsQueue.update({id:c.smsQueue.id},c.smsQueue).$promise.then(function(){r.success({title:"SmsQueue updated!",msg:c.smsQueue.name?c.smsQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","smsQueue"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.smsQueues=r||{count:0,rows:[]},v.table="smsQueues",v.listOrder="",v.listOrderAsc=null,v.selectedSmsQueues=[],v.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},v.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e})},v.teamadddialog=function(e,t){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:v.smsQueues?v.smsQueues.rows:[]}})},v.agentadddialog=function(e,t){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:v.smsQueues?v.smsQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.sms.realtime.queues",{})},v.success=f,v.getSmsQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.smsQueue.get(v.query,f).$promise},v.createOrEditSmsQueue=function(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:v.smsQueues.rows,license:v.license,setting:v.setting}})},v.deleteSmsQueue=A,v.exportSelectedSmsQueues=function(){var e=angular.copy(v.selectedSmsQueues);return v.selectedSmsQueues=[],e},v.deleteSelectedSmsQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+v.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSmsQueues.forEach(function(e){A(e)}),v.selectedSmsQueues=[]})},v.deselectSmsQueues=function(){v.selectedSmsQueues=[]},v.selectAllSmsQueues=function(){v.selectedSmsQueues=v.smsQueues.rows};var h=!0,b=1;function f(e){v.smsQueues=e||{count:0,rows:[]}}function A(e){l.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.smsQueues.rows,{id:e.id}),v.smsQueues.count-=1,v.smsQueues.rows.length||v.getSmsQueues(),c.success({title:"SmsQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.agents=r||{count:0,rows:[]},v.table="agents",v.listOrder="",v.listOrderAsc=null,v.selectedAgents=[],v.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,extensionMonitor,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,phoneBarEnableVideoRecording",role:"agent",sort:"-updatedAt",limit:10,page:1},v.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'",ngIf:"vm.agent.showWebBar == 1"},{option:"wss",value:"'wss'",ngIf:"vm.agent.showWebBar == 1"},{option:"tls",value:"'tls'",ngIf:"vm.agent.showWebBar == 1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayextensionMonitor=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.staff.agents.edit",{id:e.id,agent:e})},v.teamadddialog=function(e,t){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:v.agents?v.agents.rows:[]}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getAgents=function(){v.query.offset=(v.query.page-1)*v.query.limit,m.hasRole("admin")?v.promise=l.user.get(v.query,f).$promise:(v.query.id=v.currentUser.id,v.promise=l.user.getAgents(v.query,f).$promise)},v.createOrEditAgent=function(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:v.agents.rows,license:v.license,setting:v.setting}})},v.deleteAgent=A,v.exportSelectedAgents=function(){var e=angular.copy(v.selectedAgents);return v.selectedAgents=[],e},v.deleteSelectedAgents=function(e){var t=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+v.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedAgents.forEach(function(e){A(e)}),v.selectedAgents=[]})},v.deselectAgents=function(){v.selectedAgents=[]},v.selectAllAgents=function(){v.selectedAgents=v.agents.rows};var h=!0,b=1;function f(e){v.agents=e||{count:0,rows:[]}}function A(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(v.agents.rows,{id:e.id}),v.agents.count-=1,v.agents.rows.length||v.getAgents(),c.success({title:"Agent deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","agents","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_AGENT",u.agent=angular.copy(r),u.agents=s,u.newAgent=!1,u.agent||(u.agent={role:"agent",showWebBar:"0",autointernal:!0,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0},u.title="STAFF.NEW_AGENT",u.newAgent=!0),u.addNewAgent=function(){u.errors=[],l.user.save(u.agent).$promise.then(function(e){u.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:u.agent.name?u.agent.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.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.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAgent=function(){u.errors=[],l.user.update({id:u.agent.id},u.agent).$promise.then(function(e){var t=_.find(u.agents,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Agent properly saved!",msg:u.agent.name?u.agent.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)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.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAgent=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.user.delete({id:u.agent.id}).$promise.then(function(){_.remove(u.agents,{id:u.agent.id}),o.success({title:"Agent properly deleted!",msg:(u.agent.name||"agent")+" has been deleted!"}),p(u.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var t=0;t<e.data.errors.length;t++)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.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","agents","agent","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.agent=angular.copy(e),i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.currentUser=o.getCurrentUser(),s.errors=[],s.setting=i,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.agent=a,s.password="",s.oldPassword="",s.savePassword=function(){s.errors=[];var e={id:s.agent.id,newPassword:s.password};s.currentUser.id==s.agent.id&&(e.oldPassword=s.oldPassword);n.user.changePassword(e).$promise.then(function(){t.success({title:"Agent password properly updated!"}),r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(n,a,i,e,t,o){var s=this;s.agent={},s.navigation=t.getNavigation(),s.init=function(e){s.agent=e},s.onChange=function(t,n){if((n||t).enabled){if(n)n.enabled=!0,s.agent.permissions.push(n.id);else for(var e=0;e<t.children.length;e++)t.children[e].enabled=!0,s.agent.permissions.push(t.children[e].id);t.enabled=!0,s.agent.permissions.push(t.id)}else if(n)n.enabled=!1,_.remove(s.agent.permissions,function(e){return n.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(s.agent.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(s.agent.permissions,function(e){return t.id===e});for(var a=0;a<t.children.length;a++)t.children[a].enabled=!1,_.remove(s.agent.permissions,function(e){return t.children[a].id===e})}return i.user.update({id:s.agent.id,permissions:_.uniq(s.agent.permissions)}).$promise.then(function(){o.success({title:"agent updated!",msg:s.agent.name?s.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})},s.addPermissions=function(e,t){a.show({controller:"UserpermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/permissionadd/permissionadd.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:s.user,users:[],section:e}})},s.allowPermissions=function(e){if(e&&-1!==[401,501,502,601,602,701,702,801,802,901,902,1103,1501].indexOf(e.id))return!0;return!1}}e.$inject=["$document","$mdDialog","api","msNavigationService","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l){var d=this;function c(){a.user[d.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:d.agent.id,fields:d.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy,type",channel:i,nolimit:!0}).$promise.then(function(e){return d.isVoiceRealtime()?d.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:""}}):[]:d.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],l.hasRole("admin")?a[d.apiname].get({fields:"id,name,strategy,type",nolimit:!0,type:s}).$promise:a.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,strategy,type",nolimit:!0,type:s,channel:i}).$promise}).then(function(e){d.items=e.rows?e.rows:[],d.selectedItems=_.intersectionBy(d.selectedItems,d.items,"id"),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.items,d.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}d.agent=t,d.penalty=0,d.apiname=i+"Queue",d.title=r.instant("STAFF.QUEUEADD_AGENT_"+i.toUpperCase()+"_"+s.toUpperCase()),d.items=[],d.selectedItems=[],d.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"name",line2:"type",line3:"agent"===d.agent.role?"penalty":"",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,t){a.user[t?"removeQueues":"addQueues"]({id:d.agent.id,ids:_.map(e,"id"),channel:i,penalty:d.penalty||0,realtime:o}).$promise.then(function(){c(),n.success({title:"Queue properly "+(t?"removed":"added"),msg:"Queue has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d.closeDialog=function(){e.hide()},d.isVoiceRealtime=function(){return o&&"voice"===i},d.isVoiceChannel=function(){return"voice"===i},c()}e.$inject=["$mdDialog","toasty","api","agent","channel","realtime","direction","$translate","Auth"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.agent=t,o.penalty=0,o.items=[],o.selectedItems=[],o.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("STAFF.ALL_TEAMS"),labelSelected:i.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,t){a.user[t?"removeTeams":"addTeams"]({id:o.agent.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:agent.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.user.getTeams({id:o.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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","agent","$translate"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,t,i,o,n,a,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=n,c.setting=a,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.agent=d||e.params.agent||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=function(e,t,n,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(o.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[],channel:t,realtime:!1,direction:a||"inbound"}})},c.teamadddialog=function(e,t){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[]}})},c.changepassworddialog=function(e,t){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,setting:a,agents:c.agents?c.agents.rows:[]}})},c.alert=r.info,c.gotoAgents=function(){e.go("app.staff.agents")},c.saveAgent=function(){c.agent=_.omit(c.agent,"userpic"),s.user.update({id:c.agent.id},c.agent).$promise.then(function(){r.success({title:"Agent updated!",msg:c.agent.name?c.agent.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","agent"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_TEAM",u.team=angular.copy(r),u.teams=s,u.newTeam=!1,u.team||(u.team={},u.title="STAFF.NEW_TEAM",u.newTeam=!0),u.addNewTeam=function(){u.errors=[],l.team.save(u.team).$promise.then(function(e){u.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:u.team.name?u.team.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.team.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.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTeam=function(){u.errors=[],l.team.update({id:u.team.id},u.team).$promise.then(function(e){var t=_.find(u.teams,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Team properly saved!",msg:u.team.name?u.team.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var t=0;t<e.data.errors.length;t++)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.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTeam=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.team.delete({id:u.team.id}).$promise.then(function(){_.remove(u.teams,{id:u.team.id}),o.success({title:"Team properly deleted!",msg:(u.team.name||"team")+" has been deleted!"}),p(u.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var t=0;t<e.data.errors.length;t++)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.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","teams","team","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.team[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.team=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("STAFF.ALL_AGENTS"),labelSelected:s.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,t){a.team[t?"removeAgents":"addAgents"]({id:l.team.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:team.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","team","teams","realtime","$translate","Auth"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.teams=r||{count:0,rows:[]},v.table="teams",v.listOrder="",v.listOrderAsc=null,v.selectedTeams=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.teams.rows,license:v.license,setting:null}})},v.agentadddialog=function(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:v.teams?v.teams.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTeams=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.team.get(v.query,f).$promise},v.createOrEditTeam=function(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:v.teams.rows,license:v.license,setting:v.setting}})},v.deleteTeam=A,v.exportSelectedTeams=function(){var e=angular.copy(v.selectedTeams);return v.selectedTeams=[],e},v.deleteSelectedTeams=function(e){var t=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+v.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTeams.forEach(function(e){A(e)}),v.selectedTeams=[]})},v.deselectTeams=function(){v.selectedTeams=[]},v.selectAllTeams=function(){v.selectedTeams=v.teams.rows};var h=!0,b=1;function f(e){v.teams=e||{count:0,rows:[]}}function A(e){l.team.delete({id:e.id}).$promise.then(function(){_.remove(v.teams.rows,{id:e.id}),v.teams.count-=1,v.teams.rows.length||v.getTeams(),c.success({title:"Team deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","teams","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_TELEPHONE",u.telephone=angular.copy(r),u.telephones=s,u.newTelephone=!1,u.telephone||(u.telephone={role:"telephone",autointernal:!0,context:"from-sip"},u.title="STAFF.NEW_TELEPHONE",u.newTelephone=!0),u.addNewTelephone=function(){u.errors=[],l.user.save(u.telephone).$promise.then(function(e){u.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:u.telephone.name?u.telephone.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.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.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTelephone=function(){u.errors=[],l.user.update({id:u.telephone.id},u.telephone).$promise.then(function(e){var t=_.find(u.telephones,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Telephone properly saved!",msg:u.telephone.name?u.telephone.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)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.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTelephone=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.user.delete({id:u.telephone.id}).$promise.then(function(){_.remove(u.telephones,{id:u.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(u.telephone.name||"telephone")+" has been deleted!"}),p(u.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var t=0;t<e.data.errors.length;t++)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.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","telephones","telephone","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.currentUser=o.getCurrentUser(),s.errors=[],s.setting=i,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.telephone=a,s.password="",s.oldPassword="",s.savePassword=function(){s.errors=[];var e={id:s.telephone.id,newPassword:s.password};s.currentUser.id==s.telephone.id&&(e.oldPassword=s.oldPassword);n.user.changePassword(e).$promise.then(function(){t.success({title:"Telephone password properly updated!"}),r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.telephone=d||e.params.telephone||{},c.selectedTab=e.params.tab||0,c.changepassworddialog=function(e,t){n.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:c.telephones?c.telephones.rows:[]}})},c.alert=r.info,c.gotoTelephones=function(){e.go("app.staff.telephones")},c.saveTelephone=function(){s.user.update({id:c.telephone.id},c.telephone).$promise.then(function(){r.success({title:"Telephone updated!",msg:c.telephone.name?c.telephone.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","telephone"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.telephones=r||{count:0,rows:[]},v.table="telephones",v.listOrder="",v.listOrderAsc=null,v.selectedTelephones=[],v.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},v.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"),"")}),v.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"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.staff.telephones.edit",{id:e.id,telephone:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTelephones=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.user.get(v.query,f).$promise},v.createOrEditTelephone=function(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:v.telephones.rows,license:v.license,setting:v.setting}})},v.deleteTelephone=A,v.exportSelectedTelephones=function(){var e=angular.copy(v.selectedTelephones);return v.selectedTelephones=[],e},v.deleteSelectedTelephones=function(e){var t=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+v.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTelephones.forEach(function(e){A(e)}),v.selectedTelephones=[]})},v.deselectTelephones=function(){v.selectedTelephones=[]},v.selectAllTelephones=function(){v.selectedTelephones=v.telephones.rows};var h=!0,b=1;function f(e){v.telephones=e||{count:0,rows:[]}}function A(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(v.telephones.rows,{id:e.id}),v.telephones.count-=1,v.telephones.rows.length||v.getTelephones(),c.success({title:"Telephone deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","telephones","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="STAFF.EDIT_USER",u.user=angular.copy(r),u.users=s,u.newUser=!1,u.user||(u.user={role:"user",autointernal:!0,context:"from-sip",crudPermissions:"0"},u.title="STAFF.NEW_USER",u.newUser=!0),u.addNewUser=function(){u.errors=[],l.user.save(u.user).$promise.then(function(e){u.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:u.user.name?u.user.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.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.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveUser=function(){u.errors=[],l.user.update({id:u.user.id},u.user).$promise.then(function(e){var t=_.find(u.users,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"User properly saved!",msg:u.user.name?u.user.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)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.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteUser=function(e){if(d.getCurrentUser().id===u.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});u.errors=[];var t=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.user.delete({id:u.user.id}).$promise.then(function(){_.remove(u.users,{id:u.user.id}),o.success({title:"User properly deleted!",msg:(u.user.name||"user")+" has been deleted!"}),p(u.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var t=0;t<e.data.errors.length;t++)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.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","users","user","api","Auth","license","setting"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var n={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(n),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result},t.type="image"}})},i.init=function(e){i.user=angular.copy(e),i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.currentUser=o.getCurrentUser(),s.errors=[],s.setting=i,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.user=a,s.password="",s.oldPassword="",s.savePassword=function(){s.errors=[];var e={id:s.user.id,newPassword:s.password};s.currentUser.id==s.user.id&&(e.oldPassword=s.oldPassword);n.user.changePassword(e).$promise.then(function(){t.success({title:"User password properly updated!"}),r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,i,o,t,n,a,s,r){var l=this;function d(){return o.user[l.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:l.user.id,fields:l.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy,type",nolimit:!0,channel:"bull"===r.channel?"voice":r.channel,type:l.direction}).$promise.then(function(e){return l.isVoiceRealtime()?l.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:""}}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,s.hasRole("admin")?o[r.route].get({fields:"id,name,strategy,type",nolimit:!0,type:l.direction}).$promise:o.user.getQueues({id:s.getCurrentUser().id,fields:"id,name,strategy,type",nolimit:!0,type:l.direction,channel:"bull"===r.channel?"voice":r.channel}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+r.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function c(){var e="get"+_.upperFirst([r.route])+"s";return o.user[e]({id:l.user.id,nolimit:!0}).$promise.then(function(e){return l.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,o[r.route].get({nolimit:!0}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+r.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}l.user=t,l.penalty=0,l.section=r,l.direction=void 0!==r.channel&&"bull"===r.channel?"outbound":"inbound",l.realtime=!1,l.title=a.instant("STAFF.USERADD_"+r.title.toUpperCase()),l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return l.realtime&&"voice"===l.section.channel},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:a.instant("STAFF.ALL_"+r.title.toUpperCase()),labelSelected:a.instant("STAFF.SELECTED_"+r.title.toUpperCase()),transferCallback:function(e,t){if(void 0!==r.channel&&_.includes(r.route,"Queue")){var n=t?"removeQueues":"addQueues";o.user[n]({id:l.user.id,ids:_.map(e,"id"),channel:"bull"===r.channel?"voice":r.channel,penalty:l.penalty||0,realtime:l.realtime}).$promise.then(function(){i.success({title:"Queue properly "+(t?"removed":"added"),msg:"Queue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}else{var a=_.upperFirst([r.route])+"s";n=t?"remove"+a:"add"+a;o.user[n]({id:l.user.id,ids:_.map(e,"id")}).$promise.then(function(){i.success({title:l.section.title+" properly "+(t?"removed":"added"),msg:l.section.title+" has been "+(t?"removed":"added")+"!"}),t||c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:user.ADD"+r.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}}},void 0!==r.channel&&_.includes(r.route,"Queue")?d():c()}e.$inject=["$mdDialog","toasty","api","user","users","$translate","Auth","section"],angular.module("app.staff").controller("UserpermissionaddController",e)}(),function(){"use strict";function e(n,a,i,e,t,o){var s=this;s.user={},s.navigation=e.getNavigation(),s.init=function(e){s.user=e},s.onChange=function(t,n){if((n||t).enabled){if(n)n.enabled=!0,s.user.permissions.push(n.id);else for(var e=0;e<t.children.length;e++)t.children[e].enabled=!0,s.user.permissions.push(t.children[e].id);t.enabled=!0,s.user.permissions.push(t.id)}else if(n)n.enabled=!1,_.remove(s.user.permissions,function(e){return n.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(s.user.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(s.user.permissions,function(e){return t.id===e});for(var a=0;a<t.children.length;a++)t.children[a].enabled=!1,_.remove(s.user.permissions,function(e){return t.children[a].id===e})}return i.user.update({id:s.user.id,permissions:_.uniq(s.user.permissions)}).$promise.then(function(){o.success({title:"user updated!",msg:s.user.name?s.user.name+" has been updated!":""})}).catch(function(e){console.error(e)})},s.addPermissions=function(e,t){a.show({controller:"UserpermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/permissionadd/permissionadd.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:s.user,users:[],section:e}})},s.allowPermissions=function(e){if(e&&-1!==[401,501,502,601,602,701,702,801,802,901,902,1103,1501].indexOf(e.id))return!0;return!1}}e.$inject=["$document","$mdDialog","api","msNavigationService","msNavigationAgentService","toasty"],angular.module("app.staff").controller("UserPermissionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.user=d||e.params.user||{},c.selectedTab=e.params.tab||0,c.permissionadddialog=function(e,t){n.show({controller:"UserpermissionaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/permissionadd/permissionadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[]}})},c.changepassworddialog=function(e,t){n.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{user:e,setting:o,users:c.users?c.users.rows:[]}})},c.alert=r.info,c.gotoUsers=function(){e.go("app.staff.users")},c.saveUser=function(){c.user=_.omit(c.user,"userpic"),s.user.update({id:c.user.id},c.user).$promise.then(function(){r.success({title:"User updated!",msg:c.user.name?c.user.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","user"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.users=r||{count:0,rows:[]},v.table="users",v.listOrder="",v.listOrderAsc=null,v.selectedUsers=[],v.query={fields:"createdAt,updatedAt,role,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,permissions,crudPermissions,passwordResetAt",role:"admin,user",sort:"-updatedAt",limit:10,page:1},v.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.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"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraycrudPermissions=_.keyBy([{option:"readAndEditAndDelete",value:"0"},{option:"readAndEdit",value:"1"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.staff.users.edit",{id:e.id,user:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getUsers=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.user.get(v.query,f).$promise},v.createOrEditUser=function(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:v.users.rows,license:v.license,setting:v.setting}})},v.deleteUser=A,v.exportSelectedUsers=function(){var e=angular.copy(v.selectedUsers);return v.selectedUsers=[],e},v.deleteSelectedUsers=function(e){var t=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+v.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedUsers.forEach(function(e){A(e)}),v.selectedUsers=[]})},v.deselectUsers=function(){v.selectedUsers=[]},v.selectAllUsers=function(){v.selectedUsers=v.users.rows};var h=!0,b=1;function f(e){v.users=e||{count:0,rows:[]}}function A(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(v.users.rows,{id:e.id}),v.users.count-=1,v.users.rows.length||v.getUsers(),c.success({title:"User deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","users","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.cannedAnswers=r||{count:0,rows:[]},v.table="cannedAnswers",v.listOrder="",v.listOrderAsc=null,v.selectedCannedAnswers=[],v.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},v.editdialog=function(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:v.cannedAnswers.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getCannedAnswers=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.cannedAnswer.get(v.query,f).$promise},v.createOrEditCannedAnswer=function(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:v.cannedAnswers.rows,license:v.license,setting:v.setting}})},v.deleteCannedAnswer=A,v.exportSelectedCannedAnswers=function(){var e=angular.copy(v.selectedCannedAnswers);return v.selectedCannedAnswers=[],e},v.deleteSelectedCannedAnswers=function(e){var t=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+v.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedCannedAnswers.forEach(function(e){A(e)}),v.selectedCannedAnswers=[]})},v.deselectCannedAnswers=function(){v.selectedCannedAnswers=[]},v.selectAllCannedAnswers=function(){v.selectedCannedAnswers=v.cannedAnswers.rows};var h=!0,b=1;function f(e){v.cannedAnswers=e||{count:0,rows:[]}}function A(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(v.cannedAnswers.rows,{id:e.id}),v.cannedAnswers.count-=1,v.cannedAnswers.rows.length||v.getCannedAnswers(),c.success({title:"CannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","cannedAnswers","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_CANNEDANSWER",u.cannedAnswer=angular.copy(r),u.cannedAnswers=s,u.newCannedAnswer=!1,u.cannedAnswer||(u.cannedAnswer={},u.title="TOOLS.NEW_CANNEDANSWER",u.newCannedAnswer=!0),u.addNewCannedAnswer=function(){u.errors=[],l.cannedAnswer.save(u.cannedAnswer).$promise.then(function(e){u.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:u.cannedAnswer.name?u.cannedAnswer.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.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.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCannedAnswer=function(){u.errors=[],l.cannedAnswer.update({id:u.cannedAnswer.id},u.cannedAnswer).$promise.then(function(e){var t=_.find(u.cannedAnswers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"CannedAnswer properly saved!",msg:u.cannedAnswer.name?u.cannedAnswer.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCannedAnswer=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.cannedAnswer.delete({id:u.cannedAnswer.id}).$promise.then(function(){_.remove(u.cannedAnswers,{id:u.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(u.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),p(u.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var t=0;t<e.data.errors.length;t++)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.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_CUSTOMDASHBOARD",u.customDashboard=angular.copy(r),u.customDashboards=s,u.newCustomDashboard=!1,u.customDashboard||(u.customDashboard={},u.title="TOOLS.NEW_CUSTOMDASHBOARD",u.newCustomDashboard=!0),u.addNewCustomDashboard=function(){u.errors=[],l.dashboard.save(u.customDashboard).$promise.then(function(e){u.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:u.customDashboard.name?u.customDashboard.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.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.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveCustomDashboard=function(){u.errors=[],l.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(e){var t=_.find(u.customDashboards,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"CustomDashboard properly saved!",msg:u.customDashboard.name?u.customDashboard.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var t=0;t<e.data.errors.length;t++)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.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteCustomDashboard=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.dashboard.delete({id:u.customDashboard.id}).$promise.then(function(){_.remove(u.customDashboards,{id:u.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(u.customDashboard.name||"customDashboard")+" has been deleted!"}),p(u.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var t=0;t<e.data.errors.length;t++)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.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","customDashboards","customDashboard","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.customDashboards=r||{count:0,rows:[]},v.table="customDashboards",v.listOrder="",v.listOrderAsc=null,v.selectedCustomDashboards=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editstate=function(e,t){n.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e})},v.useradddialog=function(e,t){i.show({controller:"CustomDashboarduseraddController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/useradd/useradd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:v.customDashboards?v.customDashboards.rows:[]}})},v.clonedialog=function(e,t){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:v.customDashboards?v.customDashboards.rows:[]}})},v.gotodashboardgoto=function(e,t){n.go("app.dashboards.custom",{id:e.id})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getCustomDashboards=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.dashboard.get(v.query,f).$promise},v.createOrEditCustomDashboard=function(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:v.customDashboards.rows,license:v.license,setting:v.setting}})},v.deleteCustomDashboard=A,v.exportSelectedCustomDashboards=function(){var e=angular.copy(v.selectedCustomDashboards);return v.selectedCustomDashboards=[],e},v.deleteSelectedCustomDashboards=function(e){var t=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+v.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedCustomDashboards.forEach(function(e){A(e)}),v.selectedCustomDashboards=[]})},v.deselectCustomDashboards=function(){v.selectedCustomDashboards=[]},v.selectAllCustomDashboards=function(){v.selectedCustomDashboards=v.customDashboards.rows};var h=!0,b=1;function f(e){v.customDashboards=e||{count:0,rows:[]}}function A(e){l.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(v.customDashboards.rows,{id:e.id}),v.customDashboards.count-=1,v.customDashboards.rows.length||v.getCustomDashboards(),c.success({title:"CustomDashboard deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","customDashboards","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=o,r.title=s.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),n.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(n,a,e,i,o){var s=this;function t(e,t,n){return o.dashboardItem.update(n).$promise.catch(function(e){console.error(e)})}s.customDashboard={},s.voiceQueues=o.rpc.getVoiceQueues({fields:"id,name"}),s.init=function(e){return s.customDashboard=e,s.customDashboard.draggable={enabled:!0,handle:".draggable",stop:t},s.customDashboard.resizable={enabled:!0,handle:".resizable",stop:t},s.customDashboard.widgets=[],o.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var t=0;t<e.rows.length;t+=1)e.rows[t].voiceQueues=s.voiceQueues,e.rows[t].voiceQueuesSelected=_.map(s.voiceQueues.rows,"id"),e.rows[t].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[t].type+"/ms-widget-engine."+e.rows[t].type+".html",s.customDashboard.widgets.push(e.rows[t])}).catch(function(e){console.error(e)})},s.createOrEditWidget=function(e){if(e&&e.attrs)for(var t=0;t<e.attrs.length;t+=1)"attrReport"===e.attrs[t].name&&(e.reportType=e.attrs[t].type),e[e.attrs[t].name]=e.attrs[t].value;n.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:s.customDashboard.widgets,license:null,setting:null}}).then(function(e){if(e)for(var t=0;t<s.customDashboard.widgets.length;t+=1)s.customDashboard.widgets[t].id===e.id&&(s.customDashboard.widgets[t].attrs=e.attrs,s.customDashboard.widgets[t].voiceQueues=s.voiceQueues,s.customDashboard.widgets[t].voiceQueuesSelected=_.map(s.voiceQueues.rows,"id"),s.customDashboard.widgets[t].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+s.customDashboard.widgets[t].type+"/ms-widget-engine."+s.customDashboard.widgets[t].type+".html")})},s.deleteWidget=function(t){var e=n.confirm().title("Would you like to delete "+t.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");n.show(e).then(function(){return o.dashboardItem.delete({id:t.id}).$promise.then(function(e){_.remove(s.customDashboard.widgets,{id:t.id}),i.success({title:"Widget deleted!",msg:t.name?t.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];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:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(){var e={};switch(u.reportType){case"default":e=u.treeReports[0]?angular.fromJson(u.treeReports[0].tree):[];break;case"custom":e=u.treeReports[1]?angular.fromJson(u.treeReports[1].tree):[]}return u.reportFolders=e[0].children,u.rootHasChildren=0<u.reportFolders.length,e}function g(){var e,t=u.rootHasChildren&&u.dashboarditem.folder?u.folderHasChildren?u.dashboarditem.subfolder:u.dashboarditem.folder:u.treeStructure[0];switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({fields:"id,name,parent",sort:"name",parent:u.subfolderHasChildren?void 0:t.id,filter:u.subfolderHasChildren?t.id:void 0}).$promise.then(function(e){u.reports=e.rows||[],u.reports=0<u.reports.length?_.map(u.reports,function(e){var t,n;return e.path=(t=e.parent,n=u.treeStructure[0].text,n=function e(t,n,a){if(!a||_.isEmpty(a.children))return t;var a=_.find(a.children,function(e){return _.includes(n,e.id)?e:void 0});return t+=a?"/"+a.text:"",e(t,n,a)}(n,t,u.treeStructure[0])).replace(" ","_"),e}):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){switch(e){case"subfolder":u.dashboarditem.subfolder=null,u.reports=[];break;case"report":u.reports=[];break;default:u.dashboarditem.folder=null,u.dashboarditem.subfolder=null,u.rootHasChildren=!1,u.folderHasChildren=!1,u.reports=[]}}function h(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_DASHBOARDITEM",u.dashboarditem=angular.copy(r),u.dashboard=s,u.newDashboardItem=!1,u.dashboarditem||(u.dashboarditem={type:"counter",attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,reportType:"custom",attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},u.title="TOOLS.NEW_DASHBOARDITEM",u.newDashboardItem=!0),u.addNewDashboardItem=function(){u.errors=[],l.dashboard.addItem({id:t.params.id},u.dashboarditem).$promise.then(function(e){u.dashboard.unshift(e.toJSON()),o.success({title:"DashboardItem properly created",msg:u.dashboarditem.name?u.dashboarditem.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.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.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDashboardItem=function(){u.errors=[],l.dashboardItem.update({id:u.dashboarditem.id},u.dashboarditem).$promise.then(function(e){var t=_.find(u.dashboard,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"DashboardItem properly saved!",msg:u.dashboarditem.name?u.dashboarditem.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var t=0;t<e.data.errors.length;t++)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.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDashboardItem=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.dashboardItem.delete({id:u.dashboarditem.id}).$promise.then(function(){_.remove(u.dashboard,{id:u.dashboarditem.id}),o.success({title:"DashboardItem properly deleted!",msg:(u.dashboarditem.name||"dashboarditem")+" has been deleted!"}),h(u.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var t=0;t<e.data.errors.length;t++)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.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.reportType=u.dashboarditem.reportType,u.onReportTypeSelection=function(){u.reportType=u.dashboarditem.reportType,v(),u.treeStructure=p(),g()},u.onReportFolderSelection=function(){v("subfolder"),u.reportSubfolders=_.isEmpty(u.dashboarditem.folder.children)?[]:u.dashboarditem.folder.children,u.folderHasChildren=0<u.reportSubfolders.length,u.folderHasChildren||g()},u.onReportSubfolderSelection=function(){v("report"),u.subfolderHasChildren=!_.isEmpty(u.dashboarditem.subfolder.children),g()},u.closeDialog=h,l.analyticTreeReport.get({}).$promise.then(function(e){u.treeReports=e.rows||[],u.treeStructure=p(),u.newDashboardItem||function(){var e,t=u.dashboarditem.attrReport;switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({id:t,fields:"id,name,parent"}).$promise.then(function(e){if(e){var t=u.treeStructure[0].id===e.parent?[]:function e(t,n,a){var i;var o=_.find(n.children,function(e){return _.includes(a,e.id)&&(i=e,t.push(e)),e.id===a});o||e(t,i,a);return t}([],u.treeStructure[0],e.parent);_.isEmpty(t)?u.rootHasChildren=!1:(u.dashboarditem.folder=t[0],u.reportSubfolders=u.dashboarditem.folder&&!_.isEmpty(u.dashboarditem.folder.children)?u.dashboarditem.folder.children:void 0,u.dashboarditem.subfolder=1<t.length?t[1]:void 0,u.folderHasChildren=!!u.reportSubfolders,u.subfolderHasChildren=!(!u.dashboarditem.subfolder||_.isEmpty(u.dashboarditem.subfolder.children))),g()}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtreeReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceQueue.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.voiceQueues=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","dashboard","dashboarditem","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(e,i,o,s,t,n,a){var r=this;r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:n.instant("TOOLS.ALL_USERS"),labelSelected:n.instant("TOOLS.SELECTED_USERS"),transferCallback:function(e,t){for(var n=0,a=0;n<e.length;n+=1)a=99999+s.id,e[n].permissions=t?_.without(e[n].permissions,a):_.concat(e[n].permissions,a),o.user.update(e[n]).$promise.then(function(){i.success({title:"User properly "+(t?"removed":"added"),msg:"User has been "+(t?"removed":"added")+"!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:dashboard.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},function(){if(s&&s.id){var t=99999+s.id;o.user.get({fields:"id,fullname,name,internal,permissions",role:"user",nolimit:!0}).$promise.then(function(e){r.dualMultiselectOptions.selectedItems=_.filter(e.rows,function(e){return _.includes(e.permissions,t)}),r.dualMultiselectOptions.items=_.differenceBy(e.rows,r.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}}()}e.$inject=["$mdDialog","toasty","api","customDashboard","customDashboards","$translate","Auth"],angular.module("app.tools").controller("CustomDashboarduseraddController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.customDashboard=d||n.params.customDashboard||{},c.selectedTab=n.params.tab||0,c.useradddialog=function(e,t){a.show({controller:"CustomDashboarduseraddController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/useradd/useradd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:c.customDashboards?c.customDashboards.rows:[]}})},c.clonedialog=function(e,t){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:c.customDashboards?c.customDashboards.rows:[]}})},c.gotogoto=function(e,t){n.go("app.dashboards.custom",{id:e.id})},c.alert=r.info,c.gotoCustomDashboards=function(){n.go("app.tools.customDashboards")},c.saveCustomDashboard=function(){s.dashboard.update({id:c.customDashboard.id},c.customDashboard).$promise.then(function(){r.success({title:"CustomDashboard updated!",msg:c.customDashboard.name?c.customDashboard.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","customDashboard"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_DISPOSITION",u.disposition=angular.copy(r),u.dispositions=s,u.newDisposition=!1,u.disposition||(u.disposition={},u.title="TOOLS.NEW_DISPOSITION",u.newDisposition=!0),u.addNewDisposition=function(){u.errors=[],l.disposition.save(u.disposition).$promise.then(function(e){u.dispositions.unshift(e.toJSON()),o.success({title:"Disposition properly created",msg:u.disposition.name?u.disposition.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.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.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveDisposition=function(){u.errors=[],l.disposition.update({id:u.disposition.id},u.disposition).$promise.then(function(e){var t=_.find(u.dispositions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Disposition properly saved!",msg:u.disposition.name?u.disposition.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteDisposition=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The disposition will be deleted.").ariaLabel("Delete Disposition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.disposition.delete({id:u.disposition.id}).$promise.then(function(){_.remove(u.dispositions,{id:u.disposition.id}),o.success({title:"Disposition properly deleted!",msg:(u.disposition.name||"disposition")+" has been deleted!"}),p(u.disposition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","dispositions","disposition","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.dispositions=r||{count:0,rows:[]},v.table="dispositions",v.listOrder="",v.listOrderAsc=null,v.selectedDispositions=[],v.query={fields:"createdAt,updatedAt,id,name",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",limit:10,page:1},v.editdialog=function(e,t){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{disposition:e,dispositions:v.dispositions.rows,license:v.license,setting:null}})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the disposition?").htmlContent("<b>"+(e.name||"disposition")+"</b> will be deleted.").ariaLabel("delete disposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getDispositions=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.disposition.get(v.query,f).$promise},v.createOrEditDisposition=function(e,t){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:t,dispositions:v.dispositions.rows,license:v.license,setting:v.setting}})},v.deleteDisposition=A,v.exportSelectedDispositions=function(){var e=angular.copy(v.selectedDispositions);return v.selectedDispositions=[],e},v.deleteSelectedDispositions=function(e){var t=i.confirm().title("Are you sure want to delete the selected dispositions?").htmlContent("<b>"+v.selectedDispositions.length+" selected</b> will be deleted.").ariaLabel("delete Dispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedDispositions.forEach(function(e){A(e)}),v.selectedDispositions=[]})},v.deselectDispositions=function(){v.selectedDispositions=[]},v.selectAllDispositions=function(){v.selectedDispositions=v.dispositions.rows};var h=!0,b=1;function f(e){v.dispositions=e||{count:0,rows:[]}}function A(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(v.dispositions.rows,{id:e.id}),v.dispositions.count-=1,v.dispositions.rows.length||v.getDispositions(),c.success({title:"Disposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getDispositions())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","dispositions","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(r),u.intervals=s,u.newInterval=!1,u.interval||(u.interval={},u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0),u.addNewInterval=function(){u.errors=[],l.interval.save(u.interval).$promise.then(function(e){u.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.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.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInterval=function(){u.errors=[],l.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Interval properly saved!",msg:u.interval.name?u.interval.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)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.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInterval=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.interval.delete({id:u.interval.id}).$promise.then(function(){_.remove(u.intervals,{id:u.interval.id}),o.success({title:"Interval properly deleted!",msg:(u.interval.name||"interval")+" has been deleted!"}),p(u.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var t=0;t<e.data.errors.length;t++)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.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","intervals","interval","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.interval={},c.intervalIntervals={count:0,rows:[]},c.selectedIntervalIntervals=[],c.sortableTable={animation:100,onSort:function(e){l.interval.addIntervals({id:c.interval.id},e.models).$promise.then(function(e){c.intervalIntervals.rows=e}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},c.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},c.init=function(e){c.interval=e,c.query.id=c.interval.id,c.getIntervalIntervals()},c.deleteConfirm=function(e,t){var n=o.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");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getIntervalIntervals=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.interval.getIntervals(c.query,p).$promise},c.createOrEditIntervalInterval=function(e,t){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:c.interval,interval:t,intervals:c.intervalIntervals.rows,license:null,setting:null}})},c.exportSelectedIntervalIntervals=function(){var e=angular.copy(c.selectedIntervalIntervals);return c.selectedIntervalIntervals=[],e},c.deleteIntervalInterval=g,c.deleteSelectedIntervalIntervals=function(e){var t=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+c.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedIntervalIntervals.forEach(function(e){g(e)}),c.selectedIntervalIntervals=[]})};var m=!0,u=1;function p(e){c.intervalIntervals=e||{count:0,rows:[]}}function g(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(c.intervalIntervals.rows,{id:e.id}),c.intervalIntervals.count-=1,c.intervalIntervals.rows.length||c.getIntervalIntervals(),r.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getIntervalIntervals())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(r),u.intervals=s,u.newInterval=!1,u.interval||(u.interval={},u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0),u.addNewInterval=function(){u.errors=[],l.interval.save(u.interval).$promise.then(function(e){u.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.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.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInterval=function(){u.errors=[],l.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Interval properly saved!",msg:u.interval.name?u.interval.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)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.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInterval=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.interval.delete({id:u.interval.id}).$promise.then(function(){_.remove(u.intervals,{id:u.interval.id}),o.success({title:"Interval properly deleted!",msg:(u.interval.name||"interval")+" has been deleted!"}),p(u.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var t=0;t<e.data.errors.length;t++)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.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","intervals","interval","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.interval=d||e.params.interval||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoIntervals=function(){e.go("app.tools.intervals")},c.saveInterval=function(){s.interval.update({id:c.interval.id},c.interval).$promise.then(function(){r.success({title:"Interval updated!",msg:c.interval.name?c.interval.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","interval"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.intervals=r||{count:0,rows:[]},v.table="intervals",v.listOrder="",v.listOrderAsc=null,v.selectedIntervals=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},v.editstate=function(e,t){n.go("app.tools.intervals.edit",{id:e.id,interval:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getIntervals=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.interval.get(v.query,f).$promise},v.createOrEditInterval=function(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:v.intervals.rows,license:v.license,setting:v.setting}})},v.deleteInterval=A,v.exportSelectedIntervals=function(){var e=angular.copy(v.selectedIntervals);return v.selectedIntervals=[],e},v.deleteSelectedIntervals=function(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+v.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIntervals.forEach(function(e){A(e)}),v.selectedIntervals=[]})},v.deselectIntervals=function(){v.selectedIntervals=[]},v.selectAllIntervals=function(){v.selectedIntervals=v.intervals.rows};var h=!0,b=1;function f(e){v.intervals=e||{count:0,rows:[]}}function A(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(v.intervals.rows,{id:e.id}),v.intervals.count-=1,v.intervals.rows.length||v.getIntervals(),c.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","intervals","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_PAUSE",u.pause=angular.copy(r),u.pauses=s,u.newPause=!1,u.pause||(u.pause={},u.title="TOOLS.NEW_PAUSE",u.newPause=!0),u.addNewPause=function(){u.errors=[],l.pause.save(u.pause).$promise.then(function(e){u.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:u.pause.name?u.pause.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.pause.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.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savePause=function(){u.errors=[],l.pause.update({id:u.pause.id},u.pause).$promise.then(function(e){var t=_.find(u.pauses,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Pause properly saved!",msg:u.pause.name?u.pause.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var t=0;t<e.data.errors.length;t++)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.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletePause=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.pause.delete({id:u.pause.id}).$promise.then(function(){_.remove(u.pauses,{id:u.pause.id}),o.success({title:"Pause properly deleted!",msg:(u.pause.name||"pause")+" has been deleted!"}),p(u.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var t=0;t<e.data.errors.length;t++)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.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","pauses","pause","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.pauses=r||{count:0,rows:[]},v.table="pauses",v.listOrder="",v.listOrderAsc=null,v.selectedPauses=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.pauses.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getPauses=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.pause.get(v.query,f).$promise},v.createOrEditPause=function(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:v.pauses.rows,license:v.license,setting:v.setting}})},v.deletePause=A,v.exportSelectedPauses=function(){var e=angular.copy(v.selectedPauses);return v.selectedPauses=[],e},v.deleteSelectedPauses=function(e){var t=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+v.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedPauses.forEach(function(e){A(e)}),v.selectedPauses=[]})},v.deselectPauses=function(){v.selectedPauses=[]},v.selectAllPauses=function(){v.selectedPauses=v.pauses.rows};var h=!0,b=1;function f(e){v.pauses=e||{count:0,rows:[]}}function A(e){l.pause.delete({id:e.id}).$promise.then(function(){_.remove(v.pauses.rows,{id:e.id}),v.pauses.count-=1,v.pauses.rows.length||v.getPauses(),c.success({title:"Pause deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","pauses","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(){var e={};switch(u.reportType){case"default":e=u.treeReports[0]?angular.fromJson(u.treeReports[0].tree):[];break;case"custom":e=u.treeReports[1]?angular.fromJson(u.treeReports[1].tree):[]}return u.reportFolders=e[0].children,u.rootHasChildren=0<u.reportFolders.length,e}function g(){var e,t=u.rootHasChildren&&u.schedule.folder?u.folderHasChildren?u.schedule.subfolder:u.schedule.folder:u.treeStructure[0];switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({fields:"id,name,parent",sort:"name",parent:u.subfolderHasChildren?void 0:t.id,filter:u.subfolderHasChildren?t.id:void 0}).$promise.then(function(e){u.reports=e.rows||[],u.reports=0<u.reports.length?_.map(u.reports,function(e){var t,n;return e.path=(t=e.parent,n=u.treeStructure[0].text,n=function e(t,n,a){if(!a||_.isEmpty(a.children))return t;var a=_.find(a.children,function(e){return _.includes(n,e.id)?e:void 0});return t+=a?"/"+a.text:"",e(t,n,a)}(n,t,u.treeStructure[0])).replace(" ","_"),e}):[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){switch(e){case"subfolder":u.schedule.subfolder=null,u.schedule.DefaultReportId=null,u.schedule.CustomReportId=null,u.reports=[];break;case"report":u.schedule.DefaultReportId=null,u.schedule.CustomReportId=null,u.reports=[];break;default:u.schedule.folder=null,u.schedule.subfolder=null,u.schedule.DefaultReportId=null,u.schedule.CustomReportId=null,u.rootHasChildren=!1,u.folderHasChildren=!1,u.reports=[]}}function h(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_SCHEDULE",u.schedule=angular.copy(r),u.schedules=s,u.newSchedule=!1,u.schedule||(u.schedule={type:"custom",output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},u.title="TOOLS.NEW_SCHEDULE",u.newSchedule=!0),u.addNewSchedule=function(){u.errors=[],l.schedule.save(u.schedule).$promise.then(function(e){u.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:u.schedule.name?u.schedule.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.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.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSchedule=function(){u.errors=[],l.schedule.update({id:u.schedule.id},u.schedule).$promise.then(function(e){var t=_.find(u.schedules,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Schedule properly saved!",msg:u.schedule.name?u.schedule.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var t=0;t<e.data.errors.length;t++)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.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSchedule=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.schedule.delete({id:u.schedule.id}).$promise.then(function(){_.remove(u.schedules,{id:u.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(u.schedule.name||"schedule")+" has been deleted!"}),h(u.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var t=0;t<e.data.errors.length;t++)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.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.reportType=u.schedule.type,u.onReportTypeSelection=function(){u.reportType=u.schedule.type,v(),u.treeStructure=p(),g()},u.onReportFolderSelection=function(){v("subfolder"),u.reportSubfolders=_.isEmpty(u.schedule.folder.children)?[]:u.schedule.folder.children,u.folderHasChildren=0<u.reportSubfolders.length,u.folderHasChildren||g()},u.onReportSubfolderSelection=function(){v("report"),u.subfolderHasChildren=!_.isEmpty(u.schedule.subfolder.children),g()},u.closeDialog=h,l.analyticTreeReport.get({}).$promise.then(function(e){u.treeReports=e.rows||[],u.treeStructure=p(),u.newSchedule||function(){var e,t="default"===u.reportType?u.schedule.DefaultReportId:u.schedule.CustomReportId;switch(u.reportType){case"default":e="analyticDefaultReport";break;case"custom":e="analyticCustomReport"}l[e].get({id:t,fields:"id,name,parent"}).$promise.then(function(e){if(e){var t=u.treeStructure[0].id===e.parent?[]:function e(t,n,a){var i;var o=_.find(n.children,function(e){return _.includes(a,e.id)&&(i=e,t.push(e)),e.id===a});o||e(t,i,a);return t}([],u.treeStructure[0],e.parent);_.isEmpty(t)?u.rootHasChildren=!1:(u.schedule.folder=t[0],u.reportSubfolders=u.schedule.folder&&!_.isEmpty(u.schedule.folder.children)?u.schedule.folder.children:void 0,u.schedule.subfolder=1<t.length?t[1]:void 0,u.folderHasChildren=!!u.reportSubfolders,u.subfolderHasChildren=!(!u.schedule.subfolder||_.isEmpty(u.schedule.subfolder.children))),g()}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+_.startCase(u.reportType)+"Reports",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtreeReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","schedules","schedule","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.schedules=r||{count:0,rows:[]},v.table="schedules",v.listOrder="",v.listOrderAsc=null,v.selectedScheduler=[],v.query={fields:"createdAt,updatedAt,id,name,type,DefaultReportId,CustomReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"Default",value:"'default'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,t){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{schedule:e,schedules:v.schedules.rows,license:v.license,setting:null}})},v.runconfirm=function(e,t){var n=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){return l.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getScheduler=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.schedule.get(v.query,f).$promise},v.createOrEditSchedule=function(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:v.schedules.rows,license:v.license,setting:v.setting}})},v.deleteSchedule=A,v.exportSelectedScheduler=function(){var e=angular.copy(v.selectedScheduler);return v.selectedScheduler=[],e},v.deleteSelectedScheduler=function(e){var t=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+v.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedScheduler.forEach(function(e){A(e)}),v.selectedScheduler=[]})},v.deselectScheduler=function(){v.selectedScheduler=[]},v.selectAllScheduler=function(){v.selectedScheduler=v.schedules.rows},l.analyticTreeReport.get({}).$promise.then(function(e){v.treeReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtreeReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){v.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.schedules=e||{count:0,rows:[]}}function A(e){l.schedule.delete({id:e.id}).$promise.then(function(){_.remove(v.schedules.rows,{id:e.id}),v.schedules.count-=1,v.schedules.rows.length||v.getScheduler(),c.success({title:"Schedule deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","schedules","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_SOUND",u.sound=angular.copy(r),u.sounds=s,u.newSound=!1,u.sound||(u.sound={},u.title="TOOLS.NEW_SOUND",u.newSound=!0),u.addNewSound=function(){u.errors=[],l.sound.save(u.sound).$promise.then(function(e){u.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:u.sound.name?u.sound.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.sound.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.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveSound=function(){u.errors=[],l.sound.update({id:u.sound.id},u.sound).$promise.then(function(e){var t=_.find(u.sounds,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Sound properly saved!",msg:u.sound.name?u.sound.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var t=0;t<e.data.errors.length;t++)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.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteSound=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.sound.delete({id:u.sound.id}).$promise.then(function(){_.remove(u.sounds,{id:u.sound.id}),o.success({title:"Sound properly deleted!",msg:(u.sound.name||"sound")+" has been deleted!"}),p(u.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var t=0;t<e.data.errors.length;t++)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.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","sounds","sound","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.sounds=r||{count:0,rows:[]},v.table="sounds",v.listOrder="",v.listOrderAsc=null,v.selectedSounds=[],v.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.sounds.rows,license:v.license,setting:null}})},v.downloadfile2=function(o,e){return l.sound.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.converted_format?o.save_name+"."+o.converted_format:o.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getSounds=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.sound.get(v.query,f).$promise},v.createOrEditSound=function(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:v.sounds.rows,license:v.license,setting:v.setting}})},v.deleteSound=A,v.exportSelectedSounds=function(){var e=angular.copy(v.selectedSounds);return v.selectedSounds=[],e},v.deleteSelectedSounds=function(e){var t=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+v.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSounds.forEach(function(e){A(e)}),v.selectedSounds=[]})},v.deselectSounds=function(){v.selectedSounds=[]},v.selectAllSounds=function(){v.selectedSounds=v.sounds.rows},v.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:v.sounds.rows}})};var h=!0,b=1;function f(e){v.sounds=e||{count:0,rows:[]}}function A(e){l.sound.delete({id:e.id}).$promise.then(function(){_.remove(v.sounds.rows,{id:e.id}),v.sounds.count-=1,v.sounds.rows.length||v.getSounds(),c.success({title:"Sound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sounds","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:15728640,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var t=["wav","mp3","gsm"];if(!_.includes(t,e.getExtension()))return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(15728640<e.size)return n.error({title:"File too big",msg:"The max allowed size is 15MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(t,e){if(t.id===a.uniqueIdentifier){var n=new FileReader;n.readAsDataURL(t.file.file),n.onload=function(e){t.url=e.target.result}}})},o.uploadError=function(e,t){o.ngFlow.flow.cancel(),n.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",n.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){t.hide()}}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,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TAG",u.tag=angular.copy(r),u.tags=s,u.newTag=!1,u.tag||(u.tag={},u.title="TOOLS.NEW_TAG",u.newTag=!0),u.addNewTag=function(){u.errors=[],l.tag.save(u.tag).$promise.then(function(e){u.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:u.tag.name?u.tag.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.tag.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.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTag=function(){u.errors=[],l.tag.update({id:u.tag.id},u.tag).$promise.then(function(e){var t=_.find(u.tags,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Tag properly saved!",msg:u.tag.name?u.tag.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var t=0;t<e.data.errors.length;t++)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.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTag=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.tag.delete({id:u.tag.id}).$promise.then(function(){_.remove(u.tags,{id:u.tag.id}),o.success({title:"Tag properly deleted!",msg:(u.tag.name||"tag")+" has been deleted!"}),p(u.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var t=0;t<e.data.errors.length;t++)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.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","tags","tag","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.tags=r||{count:0,rows:[]},v.table="tags",v.listOrder="",v.listOrderAsc=null,v.selectedTags=[],v.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.tags.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTags=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.tag.get(v.query,f).$promise},v.createOrEditTag=function(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:v.tags.rows,license:v.license,setting:v.setting}})},v.deleteTag=A,v.exportSelectedTags=function(){var e=angular.copy(v.selectedTags);return v.selectedTags=[],e},v.deleteSelectedTags=function(e){var t=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+v.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTags.forEach(function(e){A(e)}),v.selectedTags=[]})},v.deselectTags=function(){v.selectedTags=[]},v.selectAllTags=function(){v.selectedTags=v.tags.rows};var h=!0,b=1;function f(e){v.tags=e||{count:0,rows:[]}}function A(e){l.tag.delete({id:e.id}).$promise.then(function(){_.remove(v.tags.rows,{id:e.id}),v.tags.count-=1,v.tags.rows.length||v.getTags(),c.success({title:"Tag deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","tags","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TEMPLATE",u.template=angular.copy(r),u.templates=s,u.newTemplate=!1,u.template||(u.template={},u.title="TOOLS.NEW_TEMPLATE",u.newTemplate=!0),u.addNewTemplate=function(){u.errors=[],l.template.save(u.template).$promise.then(function(e){u.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:u.template.name?u.template.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.template.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.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTemplate=function(){u.errors=[],l.template.update({id:u.template.id},u.template).$promise.then(function(e){var t=_.find(u.templates,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Template properly saved!",msg:u.template.name?u.template.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var t=0;t<e.data.errors.length;t++)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.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTemplate=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.template.delete({id:u.template.id}).$promise.then(function(){_.remove(u.templates,{id:u.template.id}),o.success({title:"Template properly deleted!",msg:(u.template.name||"template")+" has been deleted!"}),p(u.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var t=0;t<e.data.errors.length;t++)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.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","templates","template","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.templates=r||{count:0,rows:[]},v.table="templates",v.listOrder="",v.listOrderAsc=null,v.selectedTemplates=[],v.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.templates.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTemplates=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.template.get(v.query,f).$promise},v.createOrEditTemplate=function(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:v.templates.rows,license:v.license,setting:v.setting}})},v.deleteTemplate=A,v.exportSelectedTemplates=function(){var e=angular.copy(v.selectedTemplates);return v.selectedTemplates=[],e},v.deleteSelectedTemplates=function(e){var t=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+v.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTemplates.forEach(function(e){A(e)}),v.selectedTemplates=[]})},v.deselectTemplates=function(){v.selectedTemplates=[]},v.selectAllTemplates=function(){v.selectedTemplates=v.templates.rows};var h=!0,b=1;function f(e){v.templates=e||{count:0,rows:[]}}function A(e){l.template.delete({id:e.id}).$promise.then(function(){_.remove(v.templates.rows,{id:e.id}),v.templates.count-=1,v.templates.rows.length||v.getTemplates(),c.success({title:"Template deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","templates","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TRIGGER",u.trigger=angular.copy(r),u.triggers=s,u.newTrigger=!1,u.trigger||(u.trigger={channel:"voice"},u.title="TOOLS.NEW_TRIGGER",u.newTrigger=!0),u.addNewTrigger=function(){u.errors=[],l.trigger.save(u.trigger).$promise.then(function(e){u.triggers.unshift(e.toJSON()),o.success({title:"Trigger properly created",msg:u.trigger.name?u.trigger.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.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.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTrigger=function(){u.errors=[],l.trigger.update({id:u.trigger.id},u.trigger).$promise.then(function(e){var t=_.find(u.triggers,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Trigger properly saved!",msg:u.trigger.name?u.trigger.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var t=0;t<e.data.errors.length;t++)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.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTrigger=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The trigger will be deleted.").ariaLabel("Delete Trigger").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.trigger.delete({id:u.trigger.id}).$promise.then(function(){_.remove(u.triggers,{id:u.trigger.id}),o.success({title:"Trigger properly deleted!",msg:(u.trigger.name||"trigger")+" has been deleted!"}),p(u.trigger)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var t=0;t<e.data.errors.length;t++)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.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","triggers","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.trigger={},c.triggerActions={count:0,rows:[]},c.selectedTriggerActions=[],c.query={fields:"createdAt,updatedAt,id,action,data1,data2,data7,data3,data4,data5,data6",limit:10,page:1},c.arrayaction=_.keyBy([{option:"CONTACT_MANAGER",value:"'contactManager'",ngIf:"vm.trigger.channel == 'voice'"},{option:"INTEGRATIONS",value:"'integration'",ngIf:"vm.trigger.channel == 'voice'"},{option:"MOTION_BAR",value:"'motionbar'"},{option:"JSCRIPTY",value:"'jscripty'"},{option:"URL_FORWARD",value:"'urlForward'"},{option:"BROWSER",value:"'browser'"},{option:"BOT",value:"'bot'",ngIf:"vm.trigger.channel == 'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.browserValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.autoCreateContact=_.keyBy([{option:"yes",value:"'1'"},{option:"no",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.urlForwardValues=_.keyBy([{option:"GET",value:"'GET'"},{option:"POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.integrationValues=_.keyBy([{option:"Zendesk",value:"'zendesk'"},{option:"Salesforce",value:"'salesforce'"},{option:"SugarCRM",value:"'sugarcrm'"},{option:"Freshdesk",value:"'freshdesk'"},{option:"Desk",value:"'desk'"},{option:"Zoho",value:"'zoho'"},{option:"vTiger",value:"'vtiger'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.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"),"")}),c.eventVariables=_.keyBy([{option:"yes",value:"'1'"},{option:"no",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.location=_.keyBy([{option:"NEW_TAB",value:"'0'"},{option:"NEW_WINDOW",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.trigger=e,c.query.id=c.trigger.id,c.query.ActionId=c.trigger.id,c.getTriggerActions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the action?").htmlContent("<b>"+(e.name||"action")+"</b> will be deleted.").ariaLabel("delete action").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getTriggerActions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.trigger.getActions(c.query,p).$promise},c.createOrEditTriggerAction=function(e,t){o.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:c.trigger,action:t,actions:c.triggerActions.rows,license:null,setting:null}})},c.exportSelectedTriggerActions=function(){var e=angular.copy(c.selectedTriggerActions);return c.selectedTriggerActions=[],e},c.deleteTriggerAction=g,c.deleteSelectedTriggerActions=function(e){var t=o.confirm().title("Are you sure want to delete the selected actions?").htmlContent("<b>"+c.selectedTriggerActions.length+" selected</b> will be deleted.").ariaLabel("delete actions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedTriggerActions.forEach(function(e){g(e)}),c.selectedTriggerActions=[]})},l.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zendeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intDeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.deskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZohoAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zohoAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.salesforceAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.sugarcrmAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.freshdeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intVtigerAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.vtigerAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zendeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intDeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.deskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intZohoConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.zohoConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.salesforceConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.sugarcrmConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.freshdeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.intVtigerConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){c.vtigerConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.templates=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.triggerActions=e||{count:0,rows:[]}}function g(e){l.action.delete({id:e.id}).$promise.then(function(){_.remove(c.triggerActions.rows,{id:e.id}),c.triggerActions.count-=1,c.triggerActions.rows.length||c.getTriggerActions(),r.success({title:"Action deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getTriggerActions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.errors=[],p.setting=u,p.license=m,p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="TOOLS.EDIT_ACTION",p.action=angular.copy(r),p.actions=s,p.newAction=!1,p.trigger=angular.copy(l),p.action||(p.action={data3:"0",data4:"0",data5:"800",data6:"600"},p.title="TOOLS.NEW_ACTION",p.newAction=!0),t.params.id&&(p.action.ActionId=t.params.id),p.addNewAction=function(){p.errors=[],d.trigger.addAction({id:t.params.id},p.action).$promise.then(function(e){p.actions.unshift(e.toJSON()),o.success({title:"Action properly created",msg:p.action.name?p.action.name+" has been created!":""}),g(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+=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.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAction=function(){p.errors=[],d.action.update({id:p.action.id},p.action).$promise.then(function(e){var t=_.find(p.actions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Action properly saved!",msg:p.action.name?p.action.name+" has been saved!":""}),g(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++)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.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAction=function(e){p.errors=[];var t=a.confirm().title("Are you sure?").content("The action will be deleted.").ariaLabel("Delete Action").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){d.action.delete({id:p.action.id}).$promise.then(function(){_.remove(p.actions,{id:p.action.id}),o.success({title:"Action properly deleted!",msg:(p.action.name||"action")+" has been deleted!"}),g(p.action)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var t=0;t<e.data.errors.length;t++)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.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g,d.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intDeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.deskAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZohoAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zohoAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intVtigerAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.vtigerAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intDeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.deskConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intZohoConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zohoConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.intVtigerConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.vtigerConfigurations=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvtigerConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.templates=e.rows||[]}).catch(function(e){o.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","$q","toasty","actions","action","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.trigger={},c.triggerAllConditions={count:0,rows:[]},c.selectedTriggerAllConditions=[],c.query={fields:"createdAt,updatedAt,id,field,operator,value",limit:10,page:1},c.arrayfield=_.keyBy([{option:"Queue",value:"'queue'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Call_Status",value:"'lastevent'",ngIf:"vm.trigger.channel == 'voice'"},{option:"OutboundRoute",value:"'routeId'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Account",value:"'account'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Interaction",value:"'interaction'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Message",value:"'message'",ngIf:"vm.trigger.channel != 'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.callStatusValues=_.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"),"")}),c.interactionStatusValues=_.keyBy([{option:"Opened",value:"'opened'"},{option:"Closed",value:"'closed'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.messageStatusValues=_.keyBy([{option:"Incoming",value:"'in'"},{option:"Outgoing",value:"'out'"},{option:"Accepted",value:"'accept'"},{option:"Rejected",value:"'reject'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.trigger=e,c.query.id=c.trigger.id,c.query.TriggerAllId=c.trigger.id,c.getTriggerAllConditions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the allCondition?").htmlContent("<b>"+(e.name||"allCondition")+"</b> will be deleted.").ariaLabel("delete allCondition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getTriggerAllConditions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.trigger.getAllConditions(c.query,p).$promise},c.createOrEditTriggerAllCondition=function(e,t){o.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:c.trigger,allCondition:t,allconditions:c.triggerAllConditions.rows,license:null,setting:null}})},c.exportSelectedTriggerAllConditions=function(){var e=angular.copy(c.selectedTriggerAllConditions);return c.selectedTriggerAllConditions=[],e},c.deleteTriggerAllCondition=g,c.deleteSelectedTriggerAllConditions=function(e){var t=o.confirm().title("Are you sure want to delete the selected allconditions?").htmlContent("<b>"+c.selectedTriggerAllConditions.length+" selected</b> will be deleted.").ariaLabel("delete allconditions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedTriggerAllConditions.forEach(function(e){g(e)}),c.selectedTriggerAllConditions=[]})},l.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.chatAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.smsAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.faxAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.openchannelAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){c.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){c.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.triggerAllConditions=e||{count:0,rows:[]}}function g(e){l.condition.delete({id:e.id}).$promise.then(function(){_.remove(c.triggerAllConditions.rows,{id:e.id}),c.triggerAllConditions.count-=1,c.triggerAllConditions.rows.length||c.getTriggerAllConditions(),r.success({title:"AllCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getTriggerAllConditions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.errors=[],p.setting=u,p.license=m,p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="TOOLS.EDIT_ALLCONDITION",p.allCondition=angular.copy(r),p.allconditions=s,p.newAllCondition=!1,p.trigger=angular.copy(l),p.allCondition||(p.allCondition={field:"queue",operator:"equals",value:"abandoned",value:"opened",value:"in"},p.title="TOOLS.NEW_ALLCONDITION",p.newAllCondition=!0),t.params.id&&(p.allCondition.TriggerAllId=t.params.id),p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:t.params.id},p.allCondition).$promise.then(function(e){p.allconditions.unshift(e.toJSON()),o.success({title:"AllCondition properly created",msg:p.allCondition.name?p.allCondition.name+" has been created!":""}),g(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+=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.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(e){var t=_.find(p.allconditions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"AllCondition properly saved!",msg:p.allCondition.name?p.allCondition.name+" has been saved!":""}),g(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++)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.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var t=a.confirm().title("Are you sure?").content("The allCondition will be deleted.").ariaLabel("Delete AllCondition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){_.remove(p.allconditions,{id:p.allCondition.id}),o.success({title:"AllCondition properly deleted!",msg:(p.allCondition.name||"allCondition")+" has been deleted!"}),g(p.allCondition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g,d.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.chatAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.smsAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.faxAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.openchannelAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){o.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","$q","toasty","allconditions","allCondition","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.trigger={},c.triggerAnyConditions={count:0,rows:[]},c.selectedTriggerAnyConditions=[],c.query={fields:"createdAt,updatedAt,id,field,operator,value",limit:10,page:1},c.arrayfield=_.keyBy([{option:"Queue",value:"'queue'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Call_Status",value:"'lastevent'",ngIf:"vm.trigger.channel == 'voice'"},{option:"OutboundRoute",value:"'routeId'",ngIf:"vm.trigger.channel == 'voice'"},{option:"Account",value:"'account'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Interaction",value:"'interaction'",ngIf:"vm.trigger.channel != 'voice'"},{option:"Message",value:"'message'",ngIf:"vm.trigger.channel != 'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.callStatusValues=_.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"),"")}),c.interactionStatusValues=_.keyBy([{option:"Opened",value:"'opened'"},{option:"Closed",value:"'closed'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.messageStatusValues=_.keyBy([{option:"Incoming",value:"'in'"},{option:"Outgoing",value:"'out'"},{option:"Accepted",value:"'accept'"},{option:"Rejected",value:"'reject'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),c.init=function(e){c.trigger=e,c.query.id=c.trigger.id,c.query.TriggerAnyId=c.trigger.id,c.getTriggerAnyConditions()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the anyCondition?").htmlContent("<b>"+(e.name||"anyCondition")+"</b> will be deleted.").ariaLabel("delete anyCondition").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getTriggerAnyConditions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.trigger.getAnyConditions(c.query,p).$promise},c.createOrEditTriggerAnyCondition=function(e,t){o.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:c.trigger,anyCondition:t,anyconditions:c.triggerAnyConditions.rows,license:null,setting:null}})},c.exportSelectedTriggerAnyConditions=function(){var e=angular.copy(c.selectedTriggerAnyConditions);return c.selectedTriggerAnyConditions=[],e},c.deleteTriggerAnyCondition=g,c.deleteSelectedTriggerAnyConditions=function(e){var t=o.confirm().title("Are you sure want to delete the selected anyconditions?").htmlContent("<b>"+c.selectedTriggerAnyConditions.length+" selected</b> will be deleted.").ariaLabel("delete anyconditions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedTriggerAnyConditions.forEach(function(e){g(e)}),c.selectedTriggerAnyConditions=[]})},l.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.chatAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.smsAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.faxAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){c.openchannelAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){c.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){c.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.triggerAnyConditions=e||{count:0,rows:[]}}function g(e){l.condition.delete({id:e.id}).$promise.then(function(){_.remove(c.triggerAnyConditions.rows,{id:e.id}),c.triggerAnyConditions.count-=1,c.triggerAnyConditions.rows.length||c.getTriggerAnyConditions(),r.success({title:"AnyCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getTriggerAnyConditions())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.errors=[],p.setting=u,p.license=m,p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="TOOLS.EDIT_ANYCONDITION",p.anyCondition=angular.copy(r),p.anyconditions=s,p.newAnyCondition=!1,p.trigger=angular.copy(l),p.anyCondition||(p.anyCondition={field:"queue",operator:"equals",value:"abandoned",value:"opened",value:"in"},p.title="TOOLS.NEW_ANYCONDITION",p.newAnyCondition=!0),t.params.id&&(p.anyCondition.TriggerAnyId=t.params.id),p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:t.params.id},p.anyCondition).$promise.then(function(e){p.anyconditions.unshift(e.toJSON()),o.success({title:"AnyCondition properly created",msg:p.anyCondition.name?p.anyCondition.name+" has been created!":""}),g(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+=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.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(e){var t=_.find(p.anyconditions,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"AnyCondition properly saved!",msg:p.anyCondition.name?p.anyCondition.name+" has been saved!":""}),g(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++)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.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var t=a.confirm().title("Are you sure?").content("The anyCondition will be deleted.").ariaLabel("Delete AnyCondition").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){_.remove(p.anyconditions,{id:p.anyCondition.id}),o.success({title:"AnyCondition properly deleted!",msg:(p.anyCondition.name||"anyCondition")+" has been deleted!"}),g(p.anyCondition)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var t=0;t<e.data.errors.length;t++)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.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g,d.chatWebsite.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.chatAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.mailAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.smsAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.smsAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.faxAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.faxAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.openchannelAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.openchannelAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){o.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","$q","toasty","anyconditions","anyCondition","trigger","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.trigger=d||e.params.trigger||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoTriggers=function(){e.go("app.tools.triggers")},c.saveTrigger=function(){s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){r.success({title:"Trigger updated!",msg:c.trigger.name?c.trigger.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","trigger"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.triggers=r||{count:0,rows:[]},v.table="triggers",v.listOrder="",v.listOrderAsc=null,v.selectedTriggers=[],v.query={fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,page:1},v.arraychannel=_.keyBy([{option:"Voice",value:"'voice'"},{option:"Openchannel",value:"'openchannel'",ngIf:"vm.license.openchannel"},{option:"Chat",value:"'chat'",ngIf:"vm.license.chat"},{option:"Mail",value:"'mail'",ngIf:"vm.license.mail"},{option:"Sms",value:"'sms'",ngIf:"vm.license.messaging"},{option:"Fax",value:"'fax'",ngIf:"vm.license.fax"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.tools.triggers.edit",{id:e.id,trigger:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTriggers=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.trigger.get(v.query,f).$promise},v.createOrEditTrigger=function(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:v.triggers.rows,license:v.license,setting:v.setting}})},v.deleteTrigger=A,v.exportSelectedTriggers=function(){var e=angular.copy(v.selectedTriggers);return v.selectedTriggers=[],e},v.deleteSelectedTriggers=function(e){var t=i.confirm().title("Are you sure want to delete the selected triggers?").htmlContent("<b>"+v.selectedTriggers.length+" selected</b> will be deleted.").ariaLabel("delete Triggers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTriggers.forEach(function(e){A(e)}),v.selectedTriggers=[]})},v.deselectTriggers=function(){v.selectedTriggers=[]},v.selectAllTriggers=function(){v.selectedTriggers=v.triggers.rows};var h=!0,b=1;function f(e){v.triggers=e||{count:0,rows:[]}}function A(e){l.trigger.delete({id:e.id}).$promise.then(function(){_.remove(v.triggers.rows,{id:e.id}),v.triggers.count-=1,v.triggers.rows.length||v.getTriggers(),c.success({title:"Trigger deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTriggers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","triggers","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_TRUNK",u.trunk=angular.copy(r),u.trunks=s,u.newTrunk=!1,u.trunk||(u.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},u.title="TOOLS.NEW_TRUNK",u.newTrunk=!0),u.addNewTrunk=function(){u.errors=[],l.trunk.save(u.trunk).$promise.then(function(e){u.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:u.trunk.name?u.trunk.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.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.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveTrunk=function(){u.errors=[],l.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(e){var t=_.find(u.trunks,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Trunk properly saved!",msg:u.trunk.name?u.trunk.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var t=0;t<e.data.errors.length;t++)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.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteTrunk=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.trunk.delete({id:u.trunk.id}).$promise.then(function(){_.remove(u.trunks,{id:u.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(u.trunk.name||"trunk")+" has been deleted!"}),p(u.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var t=0;t<e.data.errors.length;t++)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.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","trunks","trunk","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(t,n,a,e,i,o,s){var r=this;function l(e){t.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=o,r.title=s.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),n.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var t=0;t<e.data.errors.length;t+=1)a.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.trunk=d||n.params.trunk||{},c.selectedTab=n.params.tab||0,c.gotogoto=function(e,t){n.go("app.voice.realtime.trunks",{})},c.clonedialog=function(e,t){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{trunk:e,trunks:c.trunks?c.trunks.rows:[]}})},c.alert=r.info,c.gotoTrunks=function(){n.go("app.tools.trunks")},c.saveTrunk=function(){s.trunk.update({id:c.trunk.id},c.trunk).$promise.then(function(){r.success({title:"Trunk updated!",msg:c.trunk.name?c.trunk.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","trunk"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.trunks=r||{count:0,rows:[]},v.table="trunks",v.listOrder="",v.listOrderAsc=null,v.selectedTrunks=[],v.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,t38pt_udptl,otherFields",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.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"),"")}),v.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{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"),"")}),v.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.editstate=function(e,t){n.go("app.tools.trunks.edit",{id:e.id,trunk:e})},v.clonedialog=function(e,t){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{trunk:e,trunks:v.trunks?v.trunks.rows:[]}})},v.gotorealtimegoto=function(e,t){n.go("app.voice.realtime.trunks",{})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getTrunks=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.trunk.get(v.query,f).$promise},v.createOrEditTrunk=function(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:v.trunks.rows,license:v.license,setting:v.setting}})},v.deleteTrunk=A,v.exportSelectedTrunks=function(){var e=angular.copy(v.selectedTrunks);return v.selectedTrunks=[],e},v.deleteSelectedTrunks=function(e){var t=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+v.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTrunks.forEach(function(e){A(e)}),v.selectedTrunks=[]})},v.deselectTrunks=function(){v.selectedTrunks=[]},v.selectAllTrunks=function(){v.selectedTrunks=v.trunks.rows};var h=!0,b=1;function f(e){v.trunks=e||{count:0,rows:[]}}function A(e){l.trunk.delete({id:e.id}).$promise.then(function(){_.remove(v.trunks.rows,{id:e.id}),v.trunks.count-=1,v.trunks.rows.length||v.getTrunks(),c.success({title:"Trunk deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","trunks","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="TOOLS.EDIT_VARIABLE",u.variable=angular.copy(r),u.variables=s,u.newVariable=!1,u.variable||(u.variable={},u.title="TOOLS.NEW_VARIABLE",u.newVariable=!0),u.addNewVariable=function(){u.errors=[],l.variable.save(u.variable).$promise.then(function(e){u.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:u.variable.name?u.variable.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.variable.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.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVariable=function(){u.errors=[],l.variable.update({id:u.variable.id},u.variable).$promise.then(function(e){var t=_.find(u.variables,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Variable properly saved!",msg:u.variable.name?u.variable.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var t=0;t<e.data.errors.length;t++)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.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVariable=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.variable.delete({id:u.variable.id}).$promise.then(function(){_.remove(u.variables,{id:u.variable.id}),o.success({title:"Variable properly deleted!",msg:(u.variable.name||"variable")+" has been deleted!"}),p(u.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var t=0;t<e.data.errors.length;t++)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.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","variables","variable","api","Auth","license","setting"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.variables=r||{count:0,rows:[]},v.table="variables",v.listOrder="",v.listOrderAsc=null,v.selectedVariables=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},v.editdialog=function(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:v.variables.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVariables=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.variable.get(v.query,f).$promise},v.createOrEditVariable=function(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:v.variables.rows,license:v.license,setting:v.setting}})},v.deleteVariable=A,v.exportSelectedVariables=function(){var e=angular.copy(v.selectedVariables);return v.selectedVariables=[],e},v.deleteSelectedVariables=function(e){var t=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+v.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVariables.forEach(function(e){A(e)}),v.selectedVariables=[]})},v.deselectVariables=function(){v.selectedVariables=[]},v.selectAllVariables=function(){v.selectedVariables=v.variables.rows};var h=!0,b=1;function f(e){v.variables=e||{count:0,rows:[]}}function A(e){l.variable.delete({id:e.id}).$promise.then(function(){_.remove(v.variables.rows,{id:e.id}),v.variables.count-=1,v.variables.rows.length||v.getVariables(),c.success({title:"Variable deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","variables","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.chanSpies=r||{count:0,rows:[]},v.table="chanSpies",v.listOrder="",v.listOrderAsc=null,v.selectedChanSpies=[],v.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},v.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"),"")}),v.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:v.chanSpies.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getChanSpies=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceChanSpy.get(v.query,f).$promise},v.createOrEditchanSpy=function(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:v.chanSpies.rows,license:v.license,setting:v.setting}})},v.deletechanSpy=A,v.exportSelectedChanSpies=function(){var e=angular.copy(v.selectedChanSpies);return v.selectedChanSpies=[],e},v.deleteSelectedChanSpies=function(e){var t=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+v.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChanSpies.forEach(function(e){A(e)}),v.selectedChanSpies=[]})},v.deselectChanSpies=function(){v.selectedChanSpies=[]},v.selectAllChanSpies=function(){v.selectedChanSpies=v.chanSpies.rows};var h=!0,b=1;function f(e){v.chanSpies=e||{count:0,rows:[]}}function A(e){l.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(v.chanSpies.rows,{id:e.id}),v.chanSpies.count-=1,v.chanSpies.rows.length||v.getChanSpies(),c.success({title:"chanSpy deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chanSpies","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_CHANSPY",u.chanSpy=angular.copy(r),u.chanSpies=s,u.newchanSpy=!1,u.chanSpy||(u.chanSpy={recordingFormat:"wav"},u.title="VOICE.NEW_CHANSPY",u.newchanSpy=!0),u.addNewchanSpy=function(){u.errors=[],l.voiceChanSpy.save(u.chanSpy).$promise.then(function(e){u.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:u.chanSpy.name?u.chanSpy.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.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.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savechanSpy=function(){u.errors=[],l.voiceChanSpy.update({id:u.chanSpy.id},u.chanSpy).$promise.then(function(e){var t=_.find(u.chanSpies,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"chanSpy properly saved!",msg:u.chanSpy.name?u.chanSpy.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletechanSpy=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceChanSpy.delete({id:u.chanSpy.id}).$promise.then(function(){_.remove(u.chanSpies,{id:u.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(u.chanSpy.name||"chanSpy")+" has been deleted!"}),p(u.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","chanSpies","chanSpy","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.contexts=r||{count:0,rows:[]},v.table="contexts",v.listOrder="",v.listOrderAsc=null,v.selectedContexts=[],v.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},v.editdialog=function(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:v.contexts.rows,license:v.license,setting:null}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getContexts=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceContext.get(v.query,f).$promise},v.createOrEditContext=function(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:v.contexts.rows,license:v.license,setting:v.setting}})},v.deleteContext=A,v.exportSelectedContexts=function(){var e=angular.copy(v.selectedContexts);return v.selectedContexts=[],e},v.deleteSelectedContexts=function(e){var t=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+v.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedContexts.forEach(function(e){A(e)}),v.selectedContexts=[]})},v.deselectContexts=function(){v.selectedContexts=[]},v.selectAllContexts=function(){v.selectedContexts=v.contexts.rows};var h=!0,b=1;function f(e){v.contexts=e||{count:0,rows:[]}}function A(e){l.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(v.contexts.rows,{id:e.id}),v.contexts.count-=1,v.contexts.rows.length||v.getContexts(),c.success({title:"Context deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","contexts","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_CONTEXT",u.context=angular.copy(r),u.contexts=s,u.newContext=!1,u.context||(u.context={},u.title="VOICE.NEW_CONTEXT",u.newContext=!0),u.addNewContext=function(){u.errors=[],l.voiceContext.save(u.context).$promise.then(function(e){u.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:u.context.name?u.context.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.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.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveContext=function(){u.errors=[],l.voiceContext.update({id:u.context.id},u.context).$promise.then(function(e){var t=_.find(u.contexts,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Context properly saved!",msg:u.context.name?u.context.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteContext=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceContext.delete({id:u.context.id}).$promise.then(function(){_.remove(u.contexts,{id:u.context.id}),o.success({title:"Context properly deleted!",msg:(u.context.name||"context")+" has been deleted!"}),p(u.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","contexts","context","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_INBOUNDROUTE",u.inboundroute=angular.copy(r),u.inboundroutes=s,u.newInboundRoute=!1,u.inboundroute||(u.inboundroute={appdata:"Inbound Call",type:"inbound",context:"from-voip-provider"},u.title="VOICE.NEW_INBOUNDROUTE",u.newInboundRoute=!0),u.addNewInboundRoute=function(){u.errors=[],l.voiceExtension.save(u.inboundroute).$promise.then(function(e){u.inboundroutes.unshift(e.toJSON()),o.success({title:"InboundRoute properly created",msg:u.inboundroute.name?u.inboundroute.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.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.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInboundRoute=function(){u.errors=[],l.voiceExtension.update({id:u.inboundroute.id},u.inboundroute).$promise.then(function(e){var t=_.find(u.inboundroutes,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"InboundRoute properly saved!",msg:u.inboundroute.name?u.inboundroute.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInboundRoute=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The inboundroute will be deleted.").ariaLabel("Delete InboundRoute").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceExtension.delete({id:u.inboundroute.id}).$promise.then(function(){_.remove(u.inboundroutes,{id:u.inboundroute.id}),o.success({title:"InboundRoute properly deleted!",msg:(u.inboundroute.name||"inboundroute")+" has been deleted!"}),p(u.inboundroute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){o.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","$q","toasty","inboundroutes","inboundroute","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(m,i,a,o,e){var u=this;function t(e,t){if(u.inboundrouteApps.rows.length){var n=u.inboundrouteApps.rows[t]?u.inboundrouteApps.rows[t]:u.inboundrouteApps.rows[0];i.show({controller:"EditInboundApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundrouteApp:n,inboundroute:u.inboundroute}}).then(function(e){e&&(e.id?u.inboundrouteApps.rows[t]=e:u.inboundrouteApps.rows.splice(t,0,e),s())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function s(){var e=["queue","playback"],t=2,n=[];n.push({type:"inbound",app:"Set",appdata:"CDR(type)=inbound",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id}),n.push({type:"inbound",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id}),n.push({type:"inbound",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id}),n.push({type:"inbound",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:t++,VoiceExtensionId:u.inboundroute.id});for(var a=0,i=0;a<u.inboundrouteApps.rows.length;a++,i=0){var o=u.inboundrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(u.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=u.inboundroute.context,o.exten=u.inboundroute.exten,o.type&&(o.type=o.type.toLowerCase()),o.hasOwnProperty("answer")&&e.includes(o.app.toLowerCase())&&"custom"!==o.appType&&(o.answer?(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-ANSWER}=0]?Answer",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-ANSWER=1",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.id})):(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-PROGRESS}=0]?Progress",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-PROGRESS=1",context:u.inboundroute.context,exten:u.inboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.inboundroute.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:"inbound",app:"GotoIfTime",appdata:o.intervals[l]+"?"+u.inboundroute.context+",${EXTEN},"+d+":"+u.inboundroute.context+",${EXTEN},"+c,exten:u.inboundroute.exten,context:u.inboundroute.context,priority:t+l,VoiceExtensionId:u.inboundroute.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:"inbound",app:"Hangup",exten:u.inboundroute.exten,context:u.inboundroute.context,priority:t,VoiceExtensionId:u.inboundroute.id}),m.voiceExtension.addApplications({id:u.inboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){u.inboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){u.inboundrouteApps=e||{count:0,rows:[]}}u.currentUser=e.getCurrentUser(),u.inboundroute={},u.inboundrouteApps={count:0,rows:[]},u.selectedInboundRouteApps=[],u.query={sort:"priority"},u.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:"*,*,*,*",extraApi:[{name:"variables",route:"variable",filters:{fields:"name",sort:"name"}}],isApp:!0,fields:[{title:"Variable",name:"name",type:"apiselect",values:"variables",value:"name.name",option:"name.name",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}),u.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},u.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){s()}},u.init=function(e){u.inboundroute=e,u.query.VoiceExtensionId=e.id,u.query.isApp=!0,u.query.nolimit=!0,u.getInboundRouteApps(),u.getIntervals()},u.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){u.inboundrouteApps.rows.splice(t,1),s()},function(){console.log("CANCEL")})},u.getInboundRouteApps=function(){u.promise=m.voiceExtension.get(u.query,n).$promise},u.editInboundRouteApp=t,u.editInterval=function(e,t){if(u.inboundrouteApps.rows.length){var n=u.inboundrouteApps.rows[t]?u.inboundrouteApps.rows[t]:u.inboundrouteApps.rows[0];i.show({controller:"EditInboundAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,s())})}},u.deleteInboundRouteApp=function(e){_.remove(u.inboundrouteApps.rows,{id:e.id}),s(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},u.deleteSelectedInboundRouteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+u.selectedInboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){u.selectedInboundRouteApps.forEach(function(e){_.remove(u.inboundrouteApps.rows,{id:e.id})}),u.selectedInboundRouteApps=[],s()})},u.rewriteRouting=s,u.getIntervals=function(){return m.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.voice").controller("InboundRouteActionsController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.agi=angular.copy(e),o.agi.appdata)switch(o.agi.appType?o.agi.appType.toLowerCase():o.agi.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agi.appdata.split(",");o.agi.key=s[0],o.agi.language=s[1],o.agi.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agi.appdata.split(",");o.agi.accesskeyid=s[0],o.agi.secretaccesskey=s[1],o.agi.lexregion=s[2],o.agi.botname=s[3],o.agi.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agi.appdata.split(",");o.agi.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agi.text=s.slice(1,s.length).join(",");break;case"message":o.agi.text=o.agi.appdata;break;case"set":o.agi.name=o.agi.appdata.split("=")[0],o.agi.value=o.agi.appdata.split("=")[1];break;case"agi":o.agi.project=o.agi.appdata;break;default:var r=o.agi.appdata.split(",");o.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outbounddial"===o.agi.appType.toLowerCase()&&(o.agi.prefix=o.agi.phone?o.agi.phone.split("$")[0]:void 0,o.agi.callerId=o.agi.callerID?"CALLERID(all)="+o.agi.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outboundDial"===o.agi.appType&&(o.agi.phone=a.cutdigits?(o.agi.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agi.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agi.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agi.options+="U(xcally-mixmonitor-context)"):o.agi.options=o.agi.options.replace("U(xcally-mixmonitor-context)",""));if(o.agi.appType&&"custom"===o.agi.appType);else switch((o.agi.app||o.agi.appType).toLowerCase()){case"set":o.agi.appdata=o.agi.name+"="+o.agi.value;break;case"custom":break;default:e[0]=o.agi.project,o.agi.appdata=e.join(",")}l(o.agi)},o.closeDialog=l,i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){o.projects=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppagiDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.custom=angular.copy(n),o.custom.appdata)switch(o.custom.appType?o.custom.appType.toLowerCase():o.custom.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.custom.appdata.split(",");o.custom.key=s[0],o.custom.language=s[1],o.custom.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.custom.appdata.split(",");o.custom.accesskeyid=s[0],o.custom.secretaccesskey=s[1],o.custom.lexregion=s[2],o.custom.botname=s[3],o.custom.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.custom.appdata.split(",");o.custom.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.custom.text=s.slice(1,s.length).join(",");break;case"message":o.custom.text=o.custom.appdata;break;case"set":o.custom.name=o.custom.appdata.split("=")[0],o.custom.value=o.custom.appdata.split("=")[1];break;case"agi":o.custom.project=o.custom.appdata;break;default:var r=o.custom.appdata.split(",");o.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outbounddial"===o.custom.appType.toLowerCase()&&(o.custom.prefix=o.custom.phone?o.custom.phone.split("$")[0]:void 0,o.custom.callerId=o.custom.callerID?"CALLERID(all)="+o.custom.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outboundDial"===o.custom.appType&&(o.custom.phone=a.cutdigits?(o.custom.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.custom.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.custom.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.custom.options+="U(xcally-mixmonitor-context)"):o.custom.options=o.custom.options.replace("U(xcally-mixmonitor-context)",""));if(o.custom.appType&&"custom"===o.custom.appType);else switch((o.custom.app||o.custom.appType).toLowerCase()){case"set":o.custom.appdata=o.custom.name+"="+o.custom.value;break;case"custom":break;default:e[0]=o.custom.app,e[1]=o.custom.appdata,o.custom.appdata=e.join(",")}l(o.custom)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppcustomDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.dial=angular.copy(n),o.dial.appdata)switch(o.dial.appType?o.dial.appType.toLowerCase():o.dial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.dial.appdata.split(",");o.dial.key=s[0],o.dial.language=s[1],o.dial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.dial.appdata.split(",");o.dial.accesskeyid=s[0],o.dial.secretaccesskey=s[1],o.dial.lexregion=s[2],o.dial.botname=s[3],o.dial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.dial.appdata.split(",");o.dial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.dial.text=s.slice(1,s.length).join(",");break;case"message":o.dial.text=o.dial.appdata;break;case"set":o.dial.name=o.dial.appdata.split("=")[0],o.dial.value=o.dial.appdata.split("=")[1];break;case"agi":o.dial.project=o.dial.appdata;break;default:var r=o.dial.appdata.split(",");o.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outbounddial"===o.dial.appType.toLowerCase()&&(o.dial.prefix=o.dial.phone?o.dial.phone.split("$")[0]:void 0,o.dial.callerId=o.dial.callerID?"CALLERID(all)="+o.dial.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outboundDial"===o.dial.appType&&(o.dial.phone=a.cutdigits?(o.dial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.dial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.dial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.dial.options+="U(xcally-mixmonitor-context)"):o.dial.options=o.dial.options.replace("U(xcally-mixmonitor-context)",""));if(o.dial.appType&&"custom"===o.dial.appType);else switch((o.dial.app||o.dial.appType).toLowerCase()){case"set":o.dial.appdata=o.dial.name+"="+o.dial.value;break;case"custom":break;default:e[0]=o.dial.tech,e[1]=o.dial.timeout,e[2]=o.dial.options,e[3]=o.dial.url,o.dial.appdata=e.join(",")}l(o.dial)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppdialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.externaldial=angular.copy(e),o.externaldial.appdata)switch(o.externaldial.appType?o.externaldial.appType.toLowerCase():o.externaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.externaldial.appdata.split(",");o.externaldial.key=s[0],o.externaldial.language=s[1],o.externaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.externaldial.appdata.split(",");o.externaldial.accesskeyid=s[0],o.externaldial.secretaccesskey=s[1],o.externaldial.lexregion=s[2],o.externaldial.botname=s[3],o.externaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.externaldial.appdata.split(",");o.externaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.externaldial.text=s.slice(1,s.length).join(",");break;case"message":o.externaldial.text=o.externaldial.appdata;break;case"set":o.externaldial.name=o.externaldial.appdata.split("=")[0],o.externaldial.value=o.externaldial.appdata.split("=")[1];break;case"agi":o.externaldial.project=o.externaldial.appdata;break;default:var r=o.externaldial.appdata.split(",");o.externaldial.trunk=r[0].split("/")[1],o.externaldial.phone=r[0].split("/")[2],o.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outbounddial"===o.externaldial.appType.toLowerCase()&&(o.externaldial.prefix=o.externaldial.phone?o.externaldial.phone.split("$")[0]:void 0,o.externaldial.callerId=o.externaldial.callerID?"CALLERID(all)="+o.externaldial.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outboundDial"===o.externaldial.appType&&(o.externaldial.phone=a.cutdigits?(o.externaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.externaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.externaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.externaldial.options+="U(xcally-mixmonitor-context)"):o.externaldial.options=o.externaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.externaldial.appType&&"custom"===o.externaldial.appType);else switch((o.externaldial.app||o.externaldial.appType).toLowerCase()){case"set":o.externaldial.appdata=o.externaldial.name+"="+o.externaldial.value;break;case"custom":break;default:e[0]=["SIP",o.externaldial.trunk,o.externaldial.phone].join("/"),e[1]=o.externaldial.timeout,e[2]=o.externaldial.options,e[3]=o.externaldial.url,o.externaldial.appdata=e.join(",")}l(o.externaldial)},o.closeDialog=l,i.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){o.trunks=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppexternaldialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.goto=angular.copy(e),o.goto.appdata)switch(o.goto.appType?o.goto.appType.toLowerCase():o.goto.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.goto.appdata.split(",");o.goto.key=s[0],o.goto.language=s[1],o.goto.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.goto.appdata.split(",");o.goto.accesskeyid=s[0],o.goto.secretaccesskey=s[1],o.goto.lexregion=s[2],o.goto.botname=s[3],o.goto.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.goto.appdata.split(",");o.goto.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.goto.text=s.slice(1,s.length).join(",");break;case"message":o.goto.text=o.goto.appdata;break;case"set":o.goto.name=o.goto.appdata.split("=")[0],o.goto.value=o.goto.appdata.split("=")[1];break;case"agi":o.goto.project=o.goto.appdata;break;default:var r=o.goto.appdata.split(",");o.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outbounddial"===o.goto.appType.toLowerCase()&&(o.goto.prefix=o.goto.phone?o.goto.phone.split("$")[0]:void 0,o.goto.callerId=o.goto.callerID?"CALLERID(all)="+o.goto.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outboundDial"===o.goto.appType&&(o.goto.phone=a.cutdigits?(o.goto.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.goto.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.goto.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.goto.options+="U(xcally-mixmonitor-context)"):o.goto.options=o.goto.options.replace("U(xcally-mixmonitor-context)",""));if(o.goto.appType&&"custom"===o.goto.appType);else switch((o.goto.app||o.goto.appType).toLowerCase()){case"set":o.goto.appdata=o.goto.name+"="+o.goto.value;break;case"custom":break;default:e[0]=o.goto.context,e[1]=o.goto.extension,e[2]=o.goto.priority,o.goto.appdata=e.join(",")}l(o.goto)},o.closeDialog=l,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){o.contexts=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppgotoDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.hangup=angular.copy(n),o.hangup.appdata)switch(o.hangup.appType?o.hangup.appType.toLowerCase():o.hangup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.hangup.appdata.split(",");o.hangup.key=s[0],o.hangup.language=s[1],o.hangup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.hangup.appdata.split(",");o.hangup.accesskeyid=s[0],o.hangup.secretaccesskey=s[1],o.hangup.lexregion=s[2],o.hangup.botname=s[3],o.hangup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.hangup.appdata.split(",");o.hangup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.hangup.text=s.slice(1,s.length).join(",");break;case"message":o.hangup.text=o.hangup.appdata;break;case"set":o.hangup.name=o.hangup.appdata.split("=")[0],o.hangup.value=o.hangup.appdata.split("=")[1];break;case"agi":o.hangup.project=o.hangup.appdata;break;default:var r=o.hangup.appdata.split(",");o.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outbounddial"===o.hangup.appType.toLowerCase()&&(o.hangup.prefix=o.hangup.phone?o.hangup.phone.split("$")[0]:void 0,o.hangup.callerId=o.hangup.callerID?"CALLERID(all)="+o.hangup.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outboundDial"===o.hangup.appType&&(o.hangup.phone=a.cutdigits?(o.hangup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.hangup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.hangup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.hangup.options+="U(xcally-mixmonitor-context)"):o.hangup.options=o.hangup.options.replace("U(xcally-mixmonitor-context)",""));if(o.hangup.appType&&"custom"===o.hangup.appType);else switch((o.hangup.app||o.hangup.appType).toLowerCase()){case"set":o.hangup.appdata=o.hangup.name+"="+o.hangup.value;break;case"custom":break;default:e[0]=o.hangup.appdata,o.hangup.appdata=e.join(",")}l(o.hangup)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundApphangupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.internaldial=angular.copy(e),o.internaldial.appdata)switch(o.internaldial.appType?o.internaldial.appType.toLowerCase():o.internaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.internaldial.appdata.split(",");o.internaldial.key=s[0],o.internaldial.language=s[1],o.internaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.internaldial.appdata.split(",");o.internaldial.accesskeyid=s[0],o.internaldial.secretaccesskey=s[1],o.internaldial.lexregion=s[2],o.internaldial.botname=s[3],o.internaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.internaldial.appdata.split(",");o.internaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.internaldial.text=s.slice(1,s.length).join(",");break;case"message":o.internaldial.text=o.internaldial.appdata;break;case"set":o.internaldial.name=o.internaldial.appdata.split("=")[0],o.internaldial.value=o.internaldial.appdata.split("=")[1];break;case"agi":o.internaldial.project=o.internaldial.appdata;break;default:var r=o.internaldial.appdata.split(",");o.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outbounddial"===o.internaldial.appType.toLowerCase()&&(o.internaldial.prefix=o.internaldial.phone?o.internaldial.phone.split("$")[0]:void 0,o.internaldial.callerId=o.internaldial.callerID?"CALLERID(all)="+o.internaldial.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outboundDial"===o.internaldial.appType&&(o.internaldial.phone=a.cutdigits?(o.internaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.internaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.internaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.internaldial.options+="U(xcally-mixmonitor-context)"):o.internaldial.options=o.internaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.internaldial.appType&&"custom"===o.internaldial.appType);else switch((o.internaldial.app||o.internaldial.appType).toLowerCase()){case"set":o.internaldial.appdata=o.internaldial.name+"="+o.internaldial.value;break;case"custom":break;default:e[0]=o.internaldial.user,e[1]=o.internaldial.timeout,e[2]=o.internaldial.options,e[3]=o.internaldial.url,o.internaldial.appdata=e.join(",")}l(o.internaldial)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInboundAppintervalDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.playback=angular.copy(e),o.playback.appdata)switch(o.playback.appType?o.playback.appType.toLowerCase():o.playback.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.playback.appdata.split(",");o.playback.key=s[0],o.playback.language=s[1],o.playback.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.playback.appdata.split(",");o.playback.accesskeyid=s[0],o.playback.secretaccesskey=s[1],o.playback.lexregion=s[2],o.playback.botname=s[3],o.playback.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.playback.appdata.split(",");o.playback.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.playback.text=s.slice(1,s.length).join(",");break;case"message":o.playback.text=o.playback.appdata;break;case"set":o.playback.name=o.playback.appdata.split("=")[0],o.playback.value=o.playback.appdata.split("=")[1];break;case"agi":o.playback.project=o.playback.appdata;break;default:var r=o.playback.appdata.split(",");o.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outbounddial"===o.playback.appType.toLowerCase()&&(o.playback.prefix=o.playback.phone?o.playback.phone.split("$")[0]:void 0,o.playback.callerId=o.playback.callerID?"CALLERID(all)="+o.playback.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outboundDial"===o.playback.appType&&(o.playback.phone=a.cutdigits?(o.playback.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.playback.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.playback.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.playback.options+="U(xcally-mixmonitor-context)"):o.playback.options=o.playback.options.replace("U(xcally-mixmonitor-context)",""));if(o.playback.appType&&"custom"===o.playback.appType);else switch((o.playback.app||o.playback.appType).toLowerCase()){case"set":o.playback.appdata=o.playback.name+"="+o.playback.value;break;case"custom":break;default:e[0]=o.playback.appdata,e[1]=o.playback.options,o.playback.appdata=e.join(",")}l(o.playback)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppplaybackDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),o.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),o.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),o.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),o.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),o.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),o.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.options,e[2]=o.queue.URL,e[3]=o.queue.sound,e[4]=o.queue.timeout,e[5]=o.queue.agi,e[6]=o.queue.macro,e[7]=o.queue.gosub,e[8]=o.queue.rule,e[9]=o.queue.position,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.ringgroup=angular.copy(e),o.ringgroup.appdata)switch(o.ringgroup.appType?o.ringgroup.appType.toLowerCase():o.ringgroup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.ringgroup.appdata.split(",");o.ringgroup.key=s[0],o.ringgroup.language=s[1],o.ringgroup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.ringgroup.appdata.split(",");o.ringgroup.accesskeyid=s[0],o.ringgroup.secretaccesskey=s[1],o.ringgroup.lexregion=s[2],o.ringgroup.botname=s[3],o.ringgroup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.ringgroup.appdata.split(",");o.ringgroup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.ringgroup.text=s.slice(1,s.length).join(",");break;case"message":o.ringgroup.text=o.ringgroup.appdata;break;case"set":o.ringgroup.name=o.ringgroup.appdata.split("=")[0],o.ringgroup.value=o.ringgroup.appdata.split("=")[1];break;case"agi":o.ringgroup.project=o.ringgroup.appdata;break;default:var r=o.ringgroup.appdata.split(",");o.ringgroup.multipleUsers=r[0].split("&"),o.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outbounddial"===o.ringgroup.appType.toLowerCase()&&(o.ringgroup.prefix=o.ringgroup.phone?o.ringgroup.phone.split("$")[0]:void 0,o.ringgroup.callerId=o.ringgroup.callerID?"CALLERID(all)="+o.ringgroup.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outboundDial"===o.ringgroup.appType&&(o.ringgroup.phone=a.cutdigits?(o.ringgroup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.ringgroup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.ringgroup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.ringgroup.options+="U(xcally-mixmonitor-context)"):o.ringgroup.options=o.ringgroup.options.replace("U(xcally-mixmonitor-context)",""));if(o.ringgroup.appType&&"custom"===o.ringgroup.appType);else switch((o.ringgroup.app||o.ringgroup.appType).toLowerCase()){case"set":o.ringgroup.appdata=o.ringgroup.name+"="+o.ringgroup.value;break;case"custom":break;default:e[0]=o.ringgroup.multipleUsers.join("&"),e[1]=o.ringgroup.timeout,e[2]=o.ringgroup.options,e[3]=o.ringgroup.url,o.ringgroup.appdata=e.join(",")}l(o.ringgroup)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppringgroupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.set=angular.copy(e),o.set.appdata)switch(o.set.appType?o.set.appType.toLowerCase():o.set.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.set.appdata.split(",");o.set.key=s[0],o.set.language=s[1],o.set.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.set.appdata.split(",");o.set.accesskeyid=s[0],o.set.secretaccesskey=s[1],o.set.lexregion=s[2],o.set.botname=s[3],o.set.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.set.appdata.split(",");o.set.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.set.text=s.slice(1,s.length).join(",");break;case"message":o.set.text=o.set.appdata;break;case"set":o.set.name=o.set.appdata.split("=")[0],o.set.value=o.set.appdata.split("=")[1];break;case"agi":o.set.project=o.set.appdata;break;default:var r=o.set.appdata.split("=");o.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outbounddial"===o.set.appType.toLowerCase()&&(o.set.prefix=o.set.phone?o.set.phone.split("$")[0]:void 0,o.set.callerId=o.set.callerID?"CALLERID(all)="+o.set.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outboundDial"===o.set.appType&&(o.set.phone=a.cutdigits?(o.set.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.set.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.set.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.set.options+="U(xcally-mixmonitor-context)"):o.set.options=o.set.options.replace("U(xcally-mixmonitor-context)",""));if(o.set.appType&&"custom"===o.set.appType);else switch((o.set.app||o.set.appType).toLowerCase()){case"set":o.set.appdata=o.set.name+"="+o.set.value;break;case"custom":break;default:e[0]=o.set.name,e[1]=o.set.value,o.set.appdata=e.join("=")}l(o.set)},o.closeDialog=l,i.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppsetDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.voicemail=angular.copy(e),o.voicemail.appdata)switch(o.voicemail.appType?o.voicemail.appType.toLowerCase():o.voicemail.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.voicemail.appdata.split(",");o.voicemail.key=s[0],o.voicemail.language=s[1],o.voicemail.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.voicemail.appdata.split(",");o.voicemail.accesskeyid=s[0],o.voicemail.secretaccesskey=s[1],o.voicemail.lexregion=s[2],o.voicemail.botname=s[3],o.voicemail.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.voicemail.appdata.split(",");o.voicemail.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.voicemail.text=s.slice(1,s.length).join(",");break;case"message":o.voicemail.text=o.voicemail.appdata;break;case"set":o.voicemail.name=o.voicemail.appdata.split("=")[0],o.voicemail.value=o.voicemail.appdata.split("=")[1];break;case"agi":o.voicemail.project=o.voicemail.appdata;break;default:var r=o.voicemail.appdata.split(",");o.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outbounddial"===o.voicemail.appType.toLowerCase()&&(o.voicemail.prefix=o.voicemail.phone?o.voicemail.phone.split("$")[0]:void 0,o.voicemail.callerId=o.voicemail.callerID?"CALLERID(all)="+o.voicemail.callerID:void 0),o.saveInboundRouteApp=function(){o.errors=[];var e=[];o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outboundDial"===o.voicemail.appType&&(o.voicemail.phone=a.cutdigits?(o.voicemail.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.voicemail.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.voicemail.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.voicemail.options+="U(xcally-mixmonitor-context)"):o.voicemail.options=o.voicemail.options.replace("U(xcally-mixmonitor-context)",""));if(o.voicemail.appType&&"custom"===o.voicemail.appType);else switch((o.voicemail.app||o.voicemail.appType).toLowerCase()){case"set":o.voicemail.appdata=o.voicemail.name+"="+o.voicemail.value;break;case"custom":break;default:e[0]=o.voicemail.voiceMail,e[1]=o.voicemail.options,o.voicemail.appdata=e.join(",")}l(o.voicemail)},o.closeDialog=l,i.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){o.voiceMails=e.rows||[]}).catch(function(e){n.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","inboundroute","api"],angular.module("app.voice").controller("EditInboundAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.inboundroute=d||e.params.inboundroute||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoInboundRoutes=function(){e.go("app.voice.inboundroutes")},c.saveInboundRoute=function(){s.voiceExtension.update({id:c.inboundroute.id},c.inboundroute).$promise.then(function(){r.success({title:"InboundRoute updated!",msg:c.inboundroute.name?c.inboundroute.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","inboundroute"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.inboundroutes=r||{count:0,rows:[]},v.table="inboundroutes",v.listOrder="",v.listOrderAsc=null,v.selectedInboundRoutes=[],v.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},v.editstate=function(e,t){n.go("app.voice.inboundroutes.edit",{id:e.id,inboundroute:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getInboundRoutes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceExtension.get(v.query,f).$promise},v.createOrEditInboundRoute=function(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:v.inboundroutes.rows,license:v.license,setting:v.setting}})},v.deleteInboundRoute=A,v.exportSelectedInboundRoutes=function(){var e=angular.copy(v.selectedInboundRoutes);return v.selectedInboundRoutes=[],e},v.deleteSelectedInboundRoutes=function(e){var t=i.confirm().title("Are you sure want to delete the selected inboundroutes?").htmlContent("<b>"+v.selectedInboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedInboundRoutes.forEach(function(e){A(e)}),v.selectedInboundRoutes=[]})},v.deselectInboundRoutes=function(){v.selectedInboundRoutes=[]},v.selectAllInboundRoutes=function(){v.selectedInboundRoutes=v.inboundroutes.rows},l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.inboundroutes=e||{count:0,rows:[]}}function A(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(v.inboundroutes.rows,{id:e.id}),v.inboundroutes.count-=1,v.inboundroutes.rows.length||v.getInboundRoutes(),c.success({title:"InboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getInboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","inboundroutes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_INTERNALROUTE",u.internalroute=angular.copy(r),u.internalroutes=s,u.newInternalRoute=!1,u.internalroute||(u.internalroute={appdata:"Internal Call",type:"internal",context:"from-sip"},u.title="VOICE.NEW_INTERNALROUTE",u.newInternalRoute=!0),u.addNewInternalRoute=function(){u.errors=[],l.voiceExtension.save(u.internalroute).$promise.then(function(e){u.internalroutes.unshift(e.toJSON()),o.success({title:"InternalRoute properly created",msg:u.internalroute.name?u.internalroute.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.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.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveInternalRoute=function(){u.errors=[],l.voiceExtension.update({id:u.internalroute.id},u.internalroute).$promise.then(function(e){var t=_.find(u.internalroutes,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"InternalRoute properly saved!",msg:u.internalroute.name?u.internalroute.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteInternalRoute=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The internalroute will be deleted.").ariaLabel("Delete InternalRoute").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceExtension.delete({id:u.internalroute.id}).$promise.then(function(){_.remove(u.internalroutes,{id:u.internalroute.id}),o.success({title:"InternalRoute properly deleted!",msg:(u.internalroute.name||"internalroute")+" has been deleted!"}),p(u.internalroute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){o.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","$q","toasty","internalroutes","internalroute","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(m,i,a,o,e){var u=this;function t(e,t){if(u.internalrouteApps.rows.length){var n=u.internalrouteApps.rows[t]?u.internalrouteApps.rows[t]:u.internalrouteApps.rows[0];i.show({controller:"EditInternalApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalrouteApp:n,internalroute:u.internalroute}}).then(function(e){e&&(e.id?u.internalrouteApps.rows[t]=e:u.internalrouteApps.rows.splice(t,0,e),s())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function s(){var e=["queue","playback"],t=2,n=[];n.push({type:"internal",app:"Set",appdata:"CDR(type)=internal",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id}),n.push({type:"internal",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id}),n.push({type:"internal",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id}),n.push({type:"internal",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:u.internalroute.context,exten:u.internalroute.exten,priority:t++,VoiceExtensionId:u.internalroute.id});for(var a=0,i=0;a<u.internalrouteApps.rows.length;a++,i=0){var o=u.internalrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(u.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=u.internalroute.context,o.exten=u.internalroute.exten,o.type&&(o.type=o.type.toLowerCase()),o.hasOwnProperty("answer")&&e.includes(o.app.toLowerCase())&&"custom"!==o.appType&&(o.answer?(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-ANSWER}=0]?Answer",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-ANSWER=1",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.id})):(s.push({type:o.type.toLowerCase(),app:"ExecIf",appdata:"$[${XCALLY-MOTION-PROGRESS}=0]?Progress",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.id}),s.push({type:o.type.toLowerCase(),app:"Set",appdata:"XCALLY-MOTION-PROGRESS=1",context:u.internalroute.context,exten:u.internalroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:u.internalroute.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:"internal",app:"GotoIfTime",appdata:o.intervals[l]+"?"+u.internalroute.context+",${EXTEN},"+d+":"+u.internalroute.context+",${EXTEN},"+c,exten:u.internalroute.exten,context:u.internalroute.context,priority:t+l,VoiceExtensionId:u.internalroute.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:"internal",app:"Hangup",exten:u.internalroute.exten,context:u.internalroute.context,priority:t,VoiceExtensionId:u.internalroute.id}),m.voiceExtension.addApplications({id:u.internalroute.id},_.sortBy(n,"priority")).$promise.then(function(e){u.internalrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function n(e){u.internalrouteApps=e||{count:0,rows:[]}}u.currentUser=e.getCurrentUser(),u.internalroute={},u.internalrouteApps={count:0,rows:[]},u.selectedInternalRouteApps=[],u.query={sort:"priority"},u.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:"*,*,*,*",extraApi:[{name:"variables",route:"variable",filters:{fields:"name",sort:"name"}}],isApp:!0,fields:[{title:"Variable",name:"name",type:"apiselect",values:"variables",value:"name.name",option:"name.name",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}),u.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},u.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){t(e,e.newIndex)},onSort:function(e){s()}},u.init=function(e){u.internalroute=e,u.query.VoiceExtensionId=e.id,u.query.isApp=!0,u.query.nolimit=!0,u.getInternalRouteApps(),u.getIntervals()},u.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){u.internalrouteApps.rows.splice(t,1),s()},function(){console.log("CANCEL")})},u.getInternalRouteApps=function(){u.promise=m.voiceExtension.get(u.query,n).$promise},u.editInternalRouteApp=t,u.editInterval=function(e,t){if(u.internalrouteApps.rows.length){var n=u.internalrouteApps.rows[t]?u.internalrouteApps.rows[t]:u.internalrouteApps.rows[0];i.show({controller:"EditInternalAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,s())})}},u.deleteInternalRouteApp=function(e){_.remove(u.internalrouteApps.rows,{id:e.id}),s(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},u.deleteSelectedInternalRouteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+u.selectedInternalRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){u.selectedInternalRouteApps.forEach(function(e){_.remove(u.internalrouteApps.rows,{id:e.id})}),u.selectedInternalRouteApps=[],s()})},u.rewriteRouting=s,u.getIntervals=function(){return m.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.voice").controller("InternalRouteActionsController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.agi=angular.copy(e),o.agi.appdata)switch(o.agi.appType?o.agi.appType.toLowerCase():o.agi.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.agi.appdata.split(",");o.agi.key=s[0],o.agi.language=s[1],o.agi.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.agi.appdata.split(",");o.agi.accesskeyid=s[0],o.agi.secretaccesskey=s[1],o.agi.lexregion=s[2],o.agi.botname=s[3],o.agi.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.agi.appdata.split(",");o.agi.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.agi.text=s.slice(1,s.length).join(",");break;case"message":o.agi.text=o.agi.appdata;break;case"set":o.agi.name=o.agi.appdata.split("=")[0],o.agi.value=o.agi.appdata.split("=")[1];break;case"agi":o.agi.project=o.agi.appdata;break;default:var r=o.agi.appdata.split(",");o.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outbounddial"===o.agi.appType.toLowerCase()&&(o.agi.prefix=o.agi.phone?o.agi.phone.split("$")[0]:void 0,o.agi.callerId=o.agi.callerID?"CALLERID(all)="+o.agi.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.agi.type&&"outbound"===o.agi.type.toLowerCase()&&"outboundDial"===o.agi.appType&&(o.agi.phone=a.cutdigits?(o.agi.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.agi.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.agi.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.agi.options+="U(xcally-mixmonitor-context)"):o.agi.options=o.agi.options.replace("U(xcally-mixmonitor-context)",""));if(o.agi.appType&&"custom"===o.agi.appType);else switch((o.agi.app||o.agi.appType).toLowerCase()){case"set":o.agi.appdata=o.agi.name+"="+o.agi.value;break;case"custom":break;default:e[0]=o.agi.project,o.agi.appdata=e.join(",")}l(o.agi)},o.closeDialog=l,i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){o.projects=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppagiDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.custom=angular.copy(n),o.custom.appdata)switch(o.custom.appType?o.custom.appType.toLowerCase():o.custom.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.custom.appdata.split(",");o.custom.key=s[0],o.custom.language=s[1],o.custom.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.custom.appdata.split(",");o.custom.accesskeyid=s[0],o.custom.secretaccesskey=s[1],o.custom.lexregion=s[2],o.custom.botname=s[3],o.custom.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.custom.appdata.split(",");o.custom.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.custom.text=s.slice(1,s.length).join(",");break;case"message":o.custom.text=o.custom.appdata;break;case"set":o.custom.name=o.custom.appdata.split("=")[0],o.custom.value=o.custom.appdata.split("=")[1];break;case"agi":o.custom.project=o.custom.appdata;break;default:var r=o.custom.appdata.split(",");o.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outbounddial"===o.custom.appType.toLowerCase()&&(o.custom.prefix=o.custom.phone?o.custom.phone.split("$")[0]:void 0,o.custom.callerId=o.custom.callerID?"CALLERID(all)="+o.custom.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outboundDial"===o.custom.appType&&(o.custom.phone=a.cutdigits?(o.custom.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.custom.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.custom.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.custom.options+="U(xcally-mixmonitor-context)"):o.custom.options=o.custom.options.replace("U(xcally-mixmonitor-context)",""));if(o.custom.appType&&"custom"===o.custom.appType);else switch((o.custom.app||o.custom.appType).toLowerCase()){case"set":o.custom.appdata=o.custom.name+"="+o.custom.value;break;case"custom":break;default:e[0]=o.custom.app,e[1]=o.custom.appdata,o.custom.appdata=e.join(",")}l(o.custom)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalAppcustomDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.dial=angular.copy(n),o.dial.appdata)switch(o.dial.appType?o.dial.appType.toLowerCase():o.dial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.dial.appdata.split(",");o.dial.key=s[0],o.dial.language=s[1],o.dial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.dial.appdata.split(",");o.dial.accesskeyid=s[0],o.dial.secretaccesskey=s[1],o.dial.lexregion=s[2],o.dial.botname=s[3],o.dial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.dial.appdata.split(",");o.dial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.dial.text=s.slice(1,s.length).join(",");break;case"message":o.dial.text=o.dial.appdata;break;case"set":o.dial.name=o.dial.appdata.split("=")[0],o.dial.value=o.dial.appdata.split("=")[1];break;case"agi":o.dial.project=o.dial.appdata;break;default:var r=o.dial.appdata.split(",");o.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outbounddial"===o.dial.appType.toLowerCase()&&(o.dial.prefix=o.dial.phone?o.dial.phone.split("$")[0]:void 0,o.dial.callerId=o.dial.callerID?"CALLERID(all)="+o.dial.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.dial.type&&"outbound"===o.dial.type.toLowerCase()&&"outboundDial"===o.dial.appType&&(o.dial.phone=a.cutdigits?(o.dial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.dial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.dial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.dial.options+="U(xcally-mixmonitor-context)"):o.dial.options=o.dial.options.replace("U(xcally-mixmonitor-context)",""));if(o.dial.appType&&"custom"===o.dial.appType);else switch((o.dial.app||o.dial.appType).toLowerCase()){case"set":o.dial.appdata=o.dial.name+"="+o.dial.value;break;case"custom":break;default:e[0]=o.dial.tech,e[1]=o.dial.timeout,e[2]=o.dial.options,e[3]=o.dial.url,o.dial.appdata=e.join(",")}l(o.dial)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalAppdialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.externaldial=angular.copy(e),o.externaldial.appdata)switch(o.externaldial.appType?o.externaldial.appType.toLowerCase():o.externaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.externaldial.appdata.split(",");o.externaldial.key=s[0],o.externaldial.language=s[1],o.externaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.externaldial.appdata.split(",");o.externaldial.accesskeyid=s[0],o.externaldial.secretaccesskey=s[1],o.externaldial.lexregion=s[2],o.externaldial.botname=s[3],o.externaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.externaldial.appdata.split(",");o.externaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.externaldial.text=s.slice(1,s.length).join(",");break;case"message":o.externaldial.text=o.externaldial.appdata;break;case"set":o.externaldial.name=o.externaldial.appdata.split("=")[0],o.externaldial.value=o.externaldial.appdata.split("=")[1];break;case"agi":o.externaldial.project=o.externaldial.appdata;break;default:var r=o.externaldial.appdata.split(",");o.externaldial.trunk=r[0].split("/")[1],o.externaldial.phone=r[0].split("/")[2],o.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outbounddial"===o.externaldial.appType.toLowerCase()&&(o.externaldial.prefix=o.externaldial.phone?o.externaldial.phone.split("$")[0]:void 0,o.externaldial.callerId=o.externaldial.callerID?"CALLERID(all)="+o.externaldial.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.externaldial.type&&"outbound"===o.externaldial.type.toLowerCase()&&"outboundDial"===o.externaldial.appType&&(o.externaldial.phone=a.cutdigits?(o.externaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.externaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.externaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.externaldial.options+="U(xcally-mixmonitor-context)"):o.externaldial.options=o.externaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.externaldial.appType&&"custom"===o.externaldial.appType);else switch((o.externaldial.app||o.externaldial.appType).toLowerCase()){case"set":o.externaldial.appdata=o.externaldial.name+"="+o.externaldial.value;break;case"custom":break;default:e[0]=["SIP",o.externaldial.trunk,o.externaldial.phone].join("/"),e[1]=o.externaldial.timeout,e[2]=o.externaldial.options,e[3]=o.externaldial.url,o.externaldial.appdata=e.join(",")}l(o.externaldial)},o.closeDialog=l,i.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){o.trunks=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppexternaldialDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.goto=angular.copy(e),o.goto.appdata)switch(o.goto.appType?o.goto.appType.toLowerCase():o.goto.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.goto.appdata.split(",");o.goto.key=s[0],o.goto.language=s[1],o.goto.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.goto.appdata.split(",");o.goto.accesskeyid=s[0],o.goto.secretaccesskey=s[1],o.goto.lexregion=s[2],o.goto.botname=s[3],o.goto.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.goto.appdata.split(",");o.goto.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.goto.text=s.slice(1,s.length).join(",");break;case"message":o.goto.text=o.goto.appdata;break;case"set":o.goto.name=o.goto.appdata.split("=")[0],o.goto.value=o.goto.appdata.split("=")[1];break;case"agi":o.goto.project=o.goto.appdata;break;default:var r=o.goto.appdata.split(",");o.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}function l(e){t.hide(e)}o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outbounddial"===o.goto.appType.toLowerCase()&&(o.goto.prefix=o.goto.phone?o.goto.phone.split("$")[0]:void 0,o.goto.callerId=o.goto.callerID?"CALLERID(all)="+o.goto.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.goto.type&&"outbound"===o.goto.type.toLowerCase()&&"outboundDial"===o.goto.appType&&(o.goto.phone=a.cutdigits?(o.goto.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.goto.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.goto.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.goto.options+="U(xcally-mixmonitor-context)"):o.goto.options=o.goto.options.replace("U(xcally-mixmonitor-context)",""));if(o.goto.appType&&"custom"===o.goto.appType);else switch((o.goto.app||o.goto.appType).toLowerCase()){case"set":o.goto.appdata=o.goto.name+"="+o.goto.value;break;case"custom":break;default:e[0]=o.goto.context,e[1]=o.goto.extension,e[2]=o.goto.priority,o.goto.appdata=e.join(",")}l(o.goto)},o.closeDialog=l,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){o.contexts=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppgotoDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.hangup=angular.copy(n),o.hangup.appdata)switch(o.hangup.appType?o.hangup.appType.toLowerCase():o.hangup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.hangup.appdata.split(",");o.hangup.key=s[0],o.hangup.language=s[1],o.hangup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.hangup.appdata.split(",");o.hangup.accesskeyid=s[0],o.hangup.secretaccesskey=s[1],o.hangup.lexregion=s[2],o.hangup.botname=s[3],o.hangup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.hangup.appdata.split(",");o.hangup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.hangup.text=s.slice(1,s.length).join(",");break;case"message":o.hangup.text=o.hangup.appdata;break;case"set":o.hangup.name=o.hangup.appdata.split("=")[0],o.hangup.value=o.hangup.appdata.split("=")[1];break;case"agi":o.hangup.project=o.hangup.appdata;break;default:var r=o.hangup.appdata.split(",");o.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}function l(e){t.hide(e)}o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outbounddial"===o.hangup.appType.toLowerCase()&&(o.hangup.prefix=o.hangup.phone?o.hangup.phone.split("$")[0]:void 0,o.hangup.callerId=o.hangup.callerID?"CALLERID(all)="+o.hangup.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.hangup.type&&"outbound"===o.hangup.type.toLowerCase()&&"outboundDial"===o.hangup.appType&&(o.hangup.phone=a.cutdigits?(o.hangup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.hangup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.hangup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.hangup.options+="U(xcally-mixmonitor-context)"):o.hangup.options=o.hangup.options.replace("U(xcally-mixmonitor-context)",""));if(o.hangup.appType&&"custom"===o.hangup.appType);else switch((o.hangup.app||o.hangup.appType).toLowerCase()){case"set":o.hangup.appdata=o.hangup.name+"="+o.hangup.value;break;case"custom":break;default:e[0]=o.hangup.appdata,o.hangup.appdata=e.join(",")}l(o.hangup)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalApphangupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.internaldial=angular.copy(e),o.internaldial.appdata)switch(o.internaldial.appType?o.internaldial.appType.toLowerCase():o.internaldial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.internaldial.appdata.split(",");o.internaldial.key=s[0],o.internaldial.language=s[1],o.internaldial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.internaldial.appdata.split(",");o.internaldial.accesskeyid=s[0],o.internaldial.secretaccesskey=s[1],o.internaldial.lexregion=s[2],o.internaldial.botname=s[3],o.internaldial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.internaldial.appdata.split(",");o.internaldial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.internaldial.text=s.slice(1,s.length).join(",");break;case"message":o.internaldial.text=o.internaldial.appdata;break;case"set":o.internaldial.name=o.internaldial.appdata.split("=")[0],o.internaldial.value=o.internaldial.appdata.split("=")[1];break;case"agi":o.internaldial.project=o.internaldial.appdata;break;default:var r=o.internaldial.appdata.split(",");o.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outbounddial"===o.internaldial.appType.toLowerCase()&&(o.internaldial.prefix=o.internaldial.phone?o.internaldial.phone.split("$")[0]:void 0,o.internaldial.callerId=o.internaldial.callerID?"CALLERID(all)="+o.internaldial.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.internaldial.type&&"outbound"===o.internaldial.type.toLowerCase()&&"outboundDial"===o.internaldial.appType&&(o.internaldial.phone=a.cutdigits?(o.internaldial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.internaldial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.internaldial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.internaldial.options+="U(xcally-mixmonitor-context)"):o.internaldial.options=o.internaldial.options.replace("U(xcally-mixmonitor-context)",""));if(o.internaldial.appType&&"custom"===o.internaldial.appType);else switch((o.internaldial.app||o.internaldial.appType).toLowerCase()){case"set":o.internaldial.appdata=o.internaldial.name+"="+o.internaldial.value;break;case"custom":break;default:e[0]=o.internaldial.user,e[1]=o.internaldial.timeout,e[2]=o.internaldial.options,e[3]=o.internaldial.url,o.internaldial.appdata=e.join(",")}l(o.internaldial)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInternalAppintervalDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.playback=angular.copy(e),o.playback.appdata)switch(o.playback.appType?o.playback.appType.toLowerCase():o.playback.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.playback.appdata.split(",");o.playback.key=s[0],o.playback.language=s[1],o.playback.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.playback.appdata.split(",");o.playback.accesskeyid=s[0],o.playback.secretaccesskey=s[1],o.playback.lexregion=s[2],o.playback.botname=s[3],o.playback.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.playback.appdata.split(",");o.playback.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.playback.text=s.slice(1,s.length).join(",");break;case"message":o.playback.text=o.playback.appdata;break;case"set":o.playback.name=o.playback.appdata.split("=")[0],o.playback.value=o.playback.appdata.split("=")[1];break;case"agi":o.playback.project=o.playback.appdata;break;default:var r=o.playback.appdata.split(",");o.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outbounddial"===o.playback.appType.toLowerCase()&&(o.playback.prefix=o.playback.phone?o.playback.phone.split("$")[0]:void 0,o.playback.callerId=o.playback.callerID?"CALLERID(all)="+o.playback.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.playback.type&&"outbound"===o.playback.type.toLowerCase()&&"outboundDial"===o.playback.appType&&(o.playback.phone=a.cutdigits?(o.playback.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.playback.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.playback.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.playback.options+="U(xcally-mixmonitor-context)"):o.playback.options=o.playback.options.replace("U(xcally-mixmonitor-context)",""));if(o.playback.appType&&"custom"===o.playback.appType);else switch((o.playback.app||o.playback.appType).toLowerCase()){case"set":o.playback.appdata=o.playback.name+"="+o.playback.value;break;case"custom":break;default:e[0]=o.playback.appdata,e[1]=o.playback.options,o.playback.appdata=e.join(",")}l(o.playback)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppplaybackDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.queue=angular.copy(e),o.queue.appdata)switch(o.queue.appType?o.queue.appType.toLowerCase():o.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.queue.appdata.split(",");o.queue.key=s[0],o.queue.language=s[1],o.queue.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.queue.appdata.split(",");o.queue.accesskeyid=s[0],o.queue.secretaccesskey=s[1],o.queue.lexregion=s[2],o.queue.botname=s[3],o.queue.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.queue.appdata.split(",");o.queue.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.queue.text=s.slice(1,s.length).join(",");break;case"message":o.queue.text=o.queue.appdata;break;case"set":o.queue.name=o.queue.appdata.split("=")[0],o.queue.value=o.queue.appdata.split("=")[1];break;case"agi":o.queue.project=o.queue.appdata;break;default:var r=o.queue.appdata.split(",");o.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),o.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),o.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),o.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),o.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),o.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),o.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}function l(e){t.hide(e)}o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outbounddial"===o.queue.appType.toLowerCase()&&(o.queue.prefix=o.queue.phone?o.queue.phone.split("$")[0]:void 0,o.queue.callerId=o.queue.callerID?"CALLERID(all)="+o.queue.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.queue.type&&"outbound"===o.queue.type.toLowerCase()&&"outboundDial"===o.queue.appType&&(o.queue.phone=a.cutdigits?(o.queue.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.queue.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.queue.options+="U(xcally-mixmonitor-context)"):o.queue.options=o.queue.options.replace("U(xcally-mixmonitor-context)",""));if(o.queue.appType&&"custom"===o.queue.appType);else switch((o.queue.app||o.queue.appType).toLowerCase()){case"set":o.queue.appdata=o.queue.name+"="+o.queue.value;break;case"custom":break;default:e[0]=o.queue.queue,e[1]=o.queue.options,e[2]=o.queue.URL,e[3]=o.queue.sound,e[4]=o.queue.timeout,e[5]=o.queue.agi,e[6]=o.queue.macro,e[7]=o.queue.gosub,e[8]=o.queue.rule,e[9]=o.queue.position,o.queue.appdata=e.join(",")}l(o.queue)},o.closeDialog=l,i.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){o.sounds=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){o.queues=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppqueueDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.ringgroup=angular.copy(e),o.ringgroup.appdata)switch(o.ringgroup.appType?o.ringgroup.appType.toLowerCase():o.ringgroup.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.ringgroup.appdata.split(",");o.ringgroup.key=s[0],o.ringgroup.language=s[1],o.ringgroup.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.ringgroup.appdata.split(",");o.ringgroup.accesskeyid=s[0],o.ringgroup.secretaccesskey=s[1],o.ringgroup.lexregion=s[2],o.ringgroup.botname=s[3],o.ringgroup.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.ringgroup.appdata.split(",");o.ringgroup.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.ringgroup.text=s.slice(1,s.length).join(",");break;case"message":o.ringgroup.text=o.ringgroup.appdata;break;case"set":o.ringgroup.name=o.ringgroup.appdata.split("=")[0],o.ringgroup.value=o.ringgroup.appdata.split("=")[1];break;case"agi":o.ringgroup.project=o.ringgroup.appdata;break;default:var r=o.ringgroup.appdata.split(",");o.ringgroup.multipleUsers=r[0].split("&"),o.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outbounddial"===o.ringgroup.appType.toLowerCase()&&(o.ringgroup.prefix=o.ringgroup.phone?o.ringgroup.phone.split("$")[0]:void 0,o.ringgroup.callerId=o.ringgroup.callerID?"CALLERID(all)="+o.ringgroup.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.ringgroup.type&&"outbound"===o.ringgroup.type.toLowerCase()&&"outboundDial"===o.ringgroup.appType&&(o.ringgroup.phone=a.cutdigits?(o.ringgroup.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.ringgroup.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.ringgroup.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.ringgroup.options+="U(xcally-mixmonitor-context)"):o.ringgroup.options=o.ringgroup.options.replace("U(xcally-mixmonitor-context)",""));if(o.ringgroup.appType&&"custom"===o.ringgroup.appType);else switch((o.ringgroup.app||o.ringgroup.appType).toLowerCase()){case"set":o.ringgroup.appdata=o.ringgroup.name+"="+o.ringgroup.value;break;case"custom":break;default:e[0]=o.ringgroup.multipleUsers.join("&"),e[1]=o.ringgroup.timeout,e[2]=o.ringgroup.options,e[3]=o.ringgroup.url,o.ringgroup.appdata=e.join(",")}l(o.ringgroup)},o.closeDialog=l,i.user.get({fields:"name",sort:"name"}).$promise.then(function(e){o.users=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppringgroupDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.set=angular.copy(e),o.set.appdata)switch(o.set.appType?o.set.appType.toLowerCase():o.set.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.set.appdata.split(",");o.set.key=s[0],o.set.language=s[1],o.set.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.set.appdata.split(",");o.set.accesskeyid=s[0],o.set.secretaccesskey=s[1],o.set.lexregion=s[2],o.set.botname=s[3],o.set.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.set.appdata.split(",");o.set.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.set.text=s.slice(1,s.length).join(",");break;case"message":o.set.text=o.set.appdata;break;case"set":o.set.name=o.set.appdata.split("=")[0],o.set.value=o.set.appdata.split("=")[1];break;case"agi":o.set.project=o.set.appdata;break;default:var r=o.set.appdata.split("=");o.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outbounddial"===o.set.appType.toLowerCase()&&(o.set.prefix=o.set.phone?o.set.phone.split("$")[0]:void 0,o.set.callerId=o.set.callerID?"CALLERID(all)="+o.set.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.set.type&&"outbound"===o.set.type.toLowerCase()&&"outboundDial"===o.set.appType&&(o.set.phone=a.cutdigits?(o.set.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.set.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.set.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.set.options+="U(xcally-mixmonitor-context)"):o.set.options=o.set.options.replace("U(xcally-mixmonitor-context)",""));if(o.set.appType&&"custom"===o.set.appType);else switch((o.set.app||o.set.appType).toLowerCase()){case"set":o.set.appdata=o.set.name+"="+o.set.value;break;case"custom":break;default:e[0]=o.set.name,e[1]=o.set.value,o.set.appdata=e.join("=")}l(o.set)},o.closeDialog=l,i.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){o.variables=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","internalroute","api"],angular.module("app.voice").controller("EditInternalAppsetDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.voicemail=angular.copy(e),o.voicemail.appdata)switch(o.voicemail.appType?o.voicemail.appType.toLowerCase():o.voicemail.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.voicemail.appdata.split(",");o.voicemail.key=s[0],o.voicemail.language=s[1],o.voicemail.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.voicemail.appdata.split(",");o.voicemail.accesskeyid=s[0],o.voicemail.secretaccesskey=s[1],o.voicemail.lexregion=s[2],o.voicemail.botname=s[3],o.voicemail.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.voicemail.appdata.split(",");o.voicemail.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.voicemail.text=s.slice(1,s.length).join(",");break;case"message":o.voicemail.text=o.voicemail.appdata;break;case"set":o.voicemail.name=o.voicemail.appdata.split("=")[0],o.voicemail.value=o.voicemail.appdata.split("=")[1];break;case"agi":o.voicemail.project=o.voicemail.appdata;break;default:var r=o.voicemail.appdata.split(",");o.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outbounddial"===o.voicemail.appType.toLowerCase()&&(o.voicemail.prefix=o.voicemail.phone?o.voicemail.phone.split("$")[0]:void 0,o.voicemail.callerId=o.voicemail.callerID?"CALLERID(all)="+o.voicemail.callerID:void 0),o.saveInternalRouteApp=function(){o.errors=[];var e=[];o.voicemail.type&&"outbound"===o.voicemail.type.toLowerCase()&&"outboundDial"===o.voicemail.appType&&(o.voicemail.phone=a.cutdigits?(o.voicemail.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.voicemail.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.voicemail.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.voicemail.options+="U(xcally-mixmonitor-context)"):o.voicemail.options=o.voicemail.options.replace("U(xcally-mixmonitor-context)",""));if(o.voicemail.appType&&"custom"===o.voicemail.appType);else switch((o.voicemail.app||o.voicemail.appType).toLowerCase()){case"set":o.voicemail.appdata=o.voicemail.name+"="+o.voicemail.value;break;case"custom":break;default:e[0]=o.voicemail.voiceMail,e[1]=o.voicemail.options,o.voicemail.appdata=e.join(",")}l(o.voicemail)},o.closeDialog=l,i.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){o.voiceMails=e.rows||[]}).catch(function(e){n.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","internalroute","api"],angular.module("app.voice").controller("EditInternalAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.internalroute=d||e.params.internalroute||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoInternalRoutes=function(){e.go("app.voice.internalroutes")},c.saveInternalRoute=function(){s.voiceExtension.update({id:c.internalroute.id},c.internalroute).$promise.then(function(){r.success({title:"InternalRoute updated!",msg:c.internalroute.name?c.internalroute.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","internalroute"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.internalroutes=r||{count:0,rows:[]},v.table="internalroutes",v.listOrder="",v.listOrderAsc=null,v.selectedInternalRoutes=[],v.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},v.editstate=function(e,t){n.go("app.voice.internalroutes.edit",{id:e.id,internalroute:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getInternalRoutes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceExtension.get(v.query,f).$promise},v.createOrEditInternalRoute=function(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:v.internalroutes.rows,license:v.license,setting:v.setting}})},v.deleteInternalRoute=A,v.exportSelectedInternalRoutes=function(){var e=angular.copy(v.selectedInternalRoutes);return v.selectedInternalRoutes=[],e},v.deleteSelectedInternalRoutes=function(e){var t=i.confirm().title("Are you sure want to delete the selected internalroutes?").htmlContent("<b>"+v.selectedInternalRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InternalRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedInternalRoutes.forEach(function(e){A(e)}),v.selectedInternalRoutes=[]})},v.deselectInternalRoutes=function(){v.selectedInternalRoutes=[]},v.selectAllInternalRoutes=function(){v.selectedInternalRoutes=v.internalroutes.rows},l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.internalroutes=e||{count:0,rows:[]}}function A(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(v.internalroutes.rows,{id:e.id}),v.internalroutes.count-=1,v.internalroutes.rows.length||v.getInternalRoutes(),c.success({title:"InternalRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getInternalRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","internalroutes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_MUSICONHOLD",u.musiconhold=angular.copy(r),u.musiconholds=s,u.newMusicOnHold=!1,u.musiconhold||(u.musiconhold={mode:"files"},u.title="VOICE.NEW_MUSICONHOLD",u.newMusicOnHold=!0),u.addNewMusicOnHold=function(){u.errors=[],l.voiceMusicOnHold.save(u.musiconhold).$promise.then(function(e){u.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:u.musiconhold.name?u.musiconhold.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.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.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMusicOnHold=function(){u.errors=[],l.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(e){var t=_.find(u.musiconholds,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MusicOnHold properly saved!",msg:u.musiconhold.name?u.musiconhold.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMusicOnHold=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceMusicOnHold.delete({id:u.musiconhold.id}).$promise.then(function(){_.remove(u.musiconholds,{id:u.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(u.musiconhold.name||"musiconhold")+" has been deleted!"}),p(u.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","musiconholds","musiconhold","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.musiconhold={},c.musiconholdMohSounds={count:0,rows:[]},c.selectedMusicOnHoldMohSounds=[],c.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},c.init=function(e){c.musiconhold=e,c.query.id=c.musiconhold.id,c.query.VoiceMusicOnHoldId=c.musiconhold.id,c.getMusicOnHoldMohSounds()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.voiceMusicOnHoldDownload=function(o,e,t){return l.sound.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="mohSound"+o.id,a=new Blob(t,{type:e.type});n=o.converted_format?o.save_name+"."+o.converted_format:o.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getMusicOnHoldMohSounds=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceMusicOnHold.getSounds(c.query,p).$promise},c.createOrEditMusicOnHoldMohSound=function(e,t){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:c.musiconhold,mohSound:t,mohSounds:c.musiconholdMohSounds.rows,license:null,setting:null}})},c.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(c.selectedMusicOnHoldMohSounds);return c.selectedMusicOnHoldMohSounds=[],e},c.deleteMusicOnHoldMohSound=g,c.deleteSelectedMusicOnHoldMohSounds=function(e){var t=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+c.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),c.selectedMusicOnHoldMohSounds=[]})},l.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){c.sounds=_.keyBy(e.rows||[],"id")}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.musiconholdMohSounds=e||{count:0,rows:[]}}function g(e){l.voiceMusicOnHold.removeSound({id:n.params.id,id2:e.id}).$promise.then(function(){_.remove(c.musiconholdMohSounds.rows,{id:e.id}),c.musiconholdMohSounds.count-=1,c.musiconholdMohSounds.rows.length||c.getMusicOnHoldMohSounds(),r.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getMusicOnHoldMohSounds())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_MOHSOUND",u.mohSound=angular.copy(r),u.mohSounds=s,u.newMohSound=!1,u.mohSound||(u.mohSound={},u.title="VOICE.NEW_MOHSOUND",u.newMohSound=!0),t.params.id&&(u.mohSound.VoiceMusicOnHoldId=t.params.id),u.addNewMohSound=function(){u.errors=[],l.voiceMusicOnHold.addSound({id:t.params.id},u.mohSound).$promise.then(function(e){u.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:u.mohSound.name?u.mohSound.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.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.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveMohSound=function(){u.errors=[],l.voiceMusicOnHold.update({id:u.mohSound.id},u.mohSound).$promise.then(function(e){var t=_.find(u.mohSounds,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"MohSound properly saved!",msg:u.mohSound.name?u.mohSound.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteMohSound=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceMusicOnHold.delete({id:u.mohSound.id}).$promise.then(function(){_.remove(u.mohSounds,{id:u.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(u.mohSound.name||"mohSound")+" has been deleted!"}),p(u.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){o.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","$q","toasty","mohSounds","mohSound","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.musiconhold=d||e.params.musiconhold||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds")},c.saveMusicOnHold=function(){s.voiceMusicOnHold.update({id:c.musiconhold.id},c.musiconhold).$promise.then(function(){r.success({title:"MusicOnHold updated!",msg:c.musiconhold.name?c.musiconhold.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","musiconhold"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.musiconholds=r||{count:0,rows:[]},v.table="musiconholds",v.listOrder="",v.listOrderAsc=null,v.selectedMusicOnHolds=[],v.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},v.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getMusicOnHolds=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceMusicOnHold.get(v.query,f).$promise},v.createOrEditMusicOnHold=function(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:v.musiconholds.rows,license:v.license,setting:v.setting}})},v.deleteMusicOnHold=A,v.exportSelectedMusicOnHolds=function(){var e=angular.copy(v.selectedMusicOnHolds);return v.selectedMusicOnHolds=[],e},v.deleteSelectedMusicOnHolds=function(e){var t=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+v.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMusicOnHolds.forEach(function(e){A(e)}),v.selectedMusicOnHolds=[]})},v.deselectMusicOnHolds=function(){v.selectedMusicOnHolds=[]},v.selectAllMusicOnHolds=function(){v.selectedMusicOnHolds=v.musiconholds.rows};var h=!0,b=1;function f(e){v.musiconholds=e||{count:0,rows:[]}}function A(e){l.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(v.musiconholds.rows,{id:e.id}),v.musiconholds.count-=1,v.musiconholds.rows.length||v.getMusicOnHolds(),c.success({title:"MusicOnHold deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","musiconholds","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,h,l,d,c){var b=this;function m(){var e=2,t=[];t.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"CDR(destination)="+(b.outboundroute.cutdigits?"${EXTEN:"+b.outboundroute.cutdigits+"}":"${EXTEN}"),context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+b.outboundroute.id,context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),b.outboundroute.hasOwnProperty("recordingFormat")&&"none"!==b.outboundroute.recordingFormat&&(t.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}),t.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_FORMAT="+b.outboundroute.recordingFormat||"wav",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:e++,VoiceExtensionId:b.outboundroute.id}));for(var n=0,a=0;n<b.outboundrouteApps.rows.length;n++,a=0){var i=b.outboundrouteApps.rows[n],o=[],s=[];i.intervals="*,*,*,*"!==i.interval?[i.interval]:i.IntervalId?_.map(_.filter(b.intervals.rows,{IntervalId:i.IntervalId}),"interval"):[],i.context=b.outboundroute.context,i.exten=b.outboundroute.exten,i.type&&(i.type=i.type.toLowerCase()),i.hasOwnProperty("tag")&&i.tag&&"--"!==i.tag&&o.push({type:i.type.toLowerCase(),app:"Set",appdata:"CDR(tag)="+i.tag,context:b.outboundroute.context,exten:b.outboundroute.exten,priority:i.intervals.length+e+a++,VoiceExtensionId:b.outboundroute.id}),i.callerID?o.push({type:i.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)="+i.callerID+")",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:i.intervals.length+e+a++,VoiceExtensionId:b.outboundroute.id}):o.push({type:i.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No number available)",context:b.outboundroute.context,exten:b.outboundroute.exten,priority:i.intervals.length+e+a++,VoiceExtensionId:b.outboundroute.id});for(var r=0;r<i.intervals.length;r++){var l=e+i.intervals.length,d=r===i.intervals.length-1?e+o.length+s.length+2:e+r+1;o.splice(r,0,{type:"outbound",app:"GotoIfTime",appdata:i.intervals[r]+"?"+b.outboundroute.context+",${EXTEN},"+l+":"+b.outboundroute.context+",${EXTEN},"+d,exten:b.outboundroute.exten,context:b.outboundroute.context,priority:e+r,VoiceExtensionId:b.outboundroute.id})}if("outboundDial"===i.appType){var c=_.find(b.apps,{appType:"outboundDial"});if(c&&c.fields){for(var m={},u=i.appdata.split(","),p=[],g=0,v=c.fields.length;g<v;g++)if(c.fields[g].hasOwnProperty("param"))switch(c.fields[g].name){case"trunk":m.trunk=u[c.fields[g].param].split("/")[1],m.phone=u[c.fields[g].param].split("/")[2],m.prefix=m.phone?m.phone.split("$")[0]:void 0,m.phone=b.outboundroute.cutdigits?(m.prefix||"")+"${EXTEN:"+b.outboundroute.cutdigits+"}":(m.prefix||"")+"${EXTEN}",p[c.fields[g].param]=["SIP",m.trunk,m.phone].join("/");break;case"options":m.options=u[c.fields[g].param],"none"!==b.outboundroute.recordingFormat?m.options.indexOf("U(xcally-mixmonitor-context)")<0&&(m.options+="U(xcally-mixmonitor-context)"):m.options=m.options.replace("U(xcally-mixmonitor-context)",""),p[c.fields[g].param]=m.options;break;default:p[c.fields[g].param]=u[c.fields[g].param]}i.appdata=p.join(",")}}i.priority=o.length?_.last(o).priority+1:e,e=(s.length?_.last(s).priority:i.priority)+1,t=_.concat(t,o,[i],s)}t.push({type:"outbound",app:"Hangup",exten:b.outboundroute.exten,context:b.outboundroute.context,priority:e,VoiceExtensionId:b.outboundroute.id}),h.voiceExtension.addApplications({id:b.outboundroute.id},_.sortBy(t,"priority")).$promise.then(function(e){b.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function u(e){a.hide(e)}b.errors=[],b.setting=c,b.license=d,b.passwordPattern=b.setting&&b.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",b.title="VOICE.EDIT_OUTBOUNDROUTE",b.outboundroute=angular.copy(r),b.outboundroutes=s,b.newOutboundRoute=!1,b.outboundrouteApps={count:0,rows:[]},b.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!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",nolimit:!0}}],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",ngPattern:"/"(.*)"\\s<(.*?)>$/",help:!0},{title:"Prefix",name:"prefix",type:"text"},{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}),b.outboundroute||(b.outboundroute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},b.title="VOICE.NEW_OUTBOUNDROUTE",b.newOutboundRoute=!0),b.addNewOutboundRoute=function(){b.errors=[],h.voiceExtension.save(b.outboundroute).$promise.then(function(e){b.outboundroutes.unshift(e.toJSON()),o.success({title:"OutboundRoute properly created",msg:b.outboundroute.name?b.outboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.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.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.saveOutboundRoute=function(){b.errors=[],h.voiceExtension.update({id:b.outboundroute.id},b.outboundroute).$promise.then(function(e){var t=_.find(b.outboundroutes,{id:e.id});t&&(_.merge(t,_.pick(e.toJSON(),_.keys(t))),h.voiceExtension.get({sort:"priority",VoiceExtensionId:t.id,isApp:!0,nolimit:!0}).$promise.then(function(e){b.outboundrouteApps=e,m()})),o.success({title:"OutboundRoute properly saved!",msg:b.outboundroute.name?b.outboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.deleteOutboundRoute=function(n){h.voicePrefix.get({VoiceExtensionId:r.id}).$promise.then(function(e){if(e&&e.rows&&0<e.rows.length)return o.error({title:"Outbound route not deleted!",msg:"You can't remove an outbound route associated to an out prefix"});b.errors=[];var t=a.confirm().title("Are you sure?").content("The outboundroute will be deleted.").ariaLabel("Delete OutboundRoute").ok("Delete").cancel("Cancel").targetEvent(n);a.show(t).then(function(){h.voiceExtension.delete({id:b.outboundroute.id}).$promise.then(function(){_.remove(b.outboundroutes,{id:b.outboundroute.id}),o.success({title:"OutboundRoute properly deleted!",msg:(b.outboundroute.name||"outboundroute")+" has been deleted!"}),u(b.outboundroute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})})},b.getDateFromString=function(e){return null===e?void 0:new Date(e)},b.rewriteRouting=m,b.closeDialog=u,h.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){b.contexts=e.rows||[]}).catch(function(e){o.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","$q","toasty","outboundroutes","outboundroute","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(f,i,a,o,t,e,n){var A=this;function s(e,t){if(A.outboundrouteApps.rows.length){var n=A.outboundrouteApps.rows[t]?A.outboundrouteApps.rows[t]:A.outboundrouteApps.rows[0];i.show({controller:"EditoutboundApp"+(n.appType||n.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/"+(n.appType||n.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundrouteApp:n,outboundroute:A.outboundroute}}).then(function(e){e&&(e.id?A.outboundrouteApps.rows[t]=e:A.outboundrouteApps.rows.splice(t,0,e),r())}).catch(function(e){e&&o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e){var t=2,n=[];n.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"CDR(destination)="+(A.outboundroute.cutdigits?"${EXTEN:"+A.outboundroute.cutdigits+"}":"${EXTEN}"),context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"CDR(routeid)="+A.outboundroute.id,context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id});var a=t++;n.push({type:"outbound",app:"ExecIf",appdata:"$[${LEN(${CDR(prefix)})} > 0]?Goto("+(a+2)+"):Goto("+(a+1)+")",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:a,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:A.outboundroute.cutdigits?"CDR(prefix)=${EXTEN:0:"+A.outboundroute.cutdigits+"}":"CDR(prefix)=noprefix",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-ANSWER=0",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"XCALLY-MOTION-PROGRESS=0",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"MONITOR_OPTIONS=ab",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+A.outboundroute.id,context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),A.outboundroute.hasOwnProperty("recordingFormat")&&"none"!==A.outboundroute.recordingFormat&&(n.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"_XCALLY_MIXMONITOR_FORMAT="+A.outboundroute.recordingFormat||"wav",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:t++,VoiceExtensionId:A.outboundroute.id}));for(var i=0,o=0;i<A.outboundrouteApps.rows.length;i++,o=0){var s=A.outboundrouteApps.rows[i],r=[],l=[];s.intervals="*,*,*,*"!==s.interval?[s.interval]:s.IntervalId?_.map(_.filter(A.intervals.rows,{IntervalId:s.IntervalId}),"interval"):[],s.context=A.outboundroute.context,s.exten=A.outboundroute.exten,s.type&&(s.type=s.type.toLowerCase()),s.hasOwnProperty("tag")&&s.tag&&"--"!==s.tag&&r.push({type:s.type.toLowerCase(),app:"Set",appdata:"CDR(tag)="+s.tag,context:A.outboundroute.context,exten:A.outboundroute.exten,priority:s.intervals.length+t+o++,VoiceExtensionId:A.outboundroute.id}),s.callerID?r.push({type:s.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)="+s.callerID+")",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:s.intervals.length+t+o++,VoiceExtensionId:A.outboundroute.id}):r.push({type:s.type.toLowerCase(),app:"ExecIf",appdata:"$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No number available)",context:A.outboundroute.context,exten:A.outboundroute.exten,priority:s.intervals.length+t+o++,VoiceExtensionId:A.outboundroute.id});for(var d=0;d<s.intervals.length;d++){var c=t+s.intervals.length,m=d===s.intervals.length-1?t+r.length+l.length+2:t+d+1;r.splice(d,0,{type:"outbound",app:"GotoIfTime",appdata:s.intervals[d]+"?"+A.outboundroute.context+",${EXTEN},"+c+":"+A.outboundroute.context+",${EXTEN},"+m,exten:A.outboundroute.exten,context:A.outboundroute.context,priority:t+d,VoiceExtensionId:A.outboundroute.id})}if(e&&"outboundDial"===s.appType){var u=_.find(A.apps,{appType:"outboundDial"});if(u&&u.fields){for(var p={},g=s.appdata.split(","),v=[],h=0,b=u.fields.length;h<b;h++)if(u.fields[h].hasOwnProperty("param"))switch(u.fields[h].name){case"trunk":p.trunk=g[u.fields[h].param].split("/")[1],p.phone=g[u.fields[h].param].split("/")[2],p.prefix=p.phone?p.phone.split("$")[0]:void 0,p.phone=A.outboundroute.cutdigits?(p.prefix||"")+"${EXTEN:"+A.outboundroute.cutdigits+"}":(p.prefix||"")+"${EXTEN}",v[u.fields[h].param]=["SIP",p.trunk,p.phone].join("/");break;case"options":p.options=g[u.fields[h].param],"none"!==A.outboundroute.recordingFormat?p.options.indexOf("U(xcally-mixmonitor-context)")<0&&(p.options+="U(xcally-mixmonitor-context)"):p.options=p.options.replace("U(xcally-mixmonitor-context)",""),v[u.fields[h].param]=p.options;break;default:v[u.fields[h].param]=g[u.fields[h].param]}s.appdata=v.join(",")}}s.priority=r.length?_.last(r).priority+1:t,t=(l.length?_.last(l).priority:s.priority)+1,n=_.concat(n,r,[s],l)}n.push({type:"outbound",app:"Hangup",exten:A.outboundroute.exten,context:A.outboundroute.context,priority:t,VoiceExtensionId:A.outboundroute.id}),f.voiceExtension.addApplications({id:A.outboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){A.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function l(e){A.outboundrouteApps=e||{count:0,rows:[]}}A.currentUser=n.getCurrentUser(),A.outboundroute={},A.outboundrouteApps={count:0,rows:[]},A.selectedOutboundRouteApps=[],A.query={sort:"priority"},A.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!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",nolimit:!0}}],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",help:!0},{title:"Prefix",name:"prefix",type:"text"},{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}),A.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},A.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){r()}},A.init=function(e){A.outboundroute=e,t.on("voiceExtension:update",A.onVoiceExtensionUpdate),A.query.VoiceExtensionId=e.id,A.query.isApp=!0,A.query.nolimit=!0,A.getOutboundRouteApps(),A.getIntervals()},A.deleteConfirm=function(e,t,n){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){A.outboundrouteApps.rows.splice(t,1),r()},function(){console.log("CANCEL")})},A.getOutboundRouteApps=function(){A.promise=f.voiceExtension.get(A.query,l).$promise},A.editOutboundRouteApp=s,A.editInterval=function(e,t){if(A.outboundrouteApps.rows.length){var n=A.outboundrouteApps.rows[t]?A.outboundrouteApps.rows[t]:A.outboundrouteApps.rows[0];i.show({controller:"EditoutboundAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.IntervalId=e.IntervalId||null,r())})}},A.deleteOutboundRouteApp=function(e){_.remove(A.outboundrouteApps.rows,{id:e.id}),r(),o.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},A.deleteSelectedOutboundRouteApps=function(e){var t=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+A.selectedOutboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOutboundRouteApps.forEach(function(e){_.remove(A.outboundrouteApps.rows,{id:e.id})}),A.selectedOutboundRouteApps=[],r()})},A.rewriteRouting=r,A.getIntervals=function(){return f.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){A.intervals=e}).catch(function(e){console.error(e)})},A.onVoiceExtensionUpdate=function(e){e.VoiceExtensionId===A.outboundroute.id&&r(!0)},e.$on("$destroy",function(){t.removeAllListeners("voiceExtension:update")})}e.$inject=["api","$mdDialog","$document","toasty","socket","$scope","Auth"],angular.module("app.voice").controller("OutboundRouteActionsController",e)}(),function(){"use strict";function e(t,e,n,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),o.custom=angular.copy(n),o.custom.appdata)switch(o.custom.appType?o.custom.appType.toLowerCase():o.custom.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.custom.appdata.split(",");o.custom.key=s[0],o.custom.language=s[1],o.custom.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.custom.appdata.split(",");o.custom.accesskeyid=s[0],o.custom.secretaccesskey=s[1],o.custom.lexregion=s[2],o.custom.botname=s[3],o.custom.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.custom.appdata.split(",");o.custom.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.custom.text=s.slice(1,s.length).join(",");break;case"message":o.custom.text=o.custom.appdata;break;case"set":o.custom.name=o.custom.appdata.split("=")[0],o.custom.value=o.custom.appdata.split("=")[1];break;case"agi":o.custom.project=o.custom.appdata;break;default:var r=o.custom.appdata.split(",");o.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),o.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}function l(e){t.hide(e)}o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outbounddial"===o.custom.appType.toLowerCase()&&(o.custom.prefix=o.custom.phone?o.custom.phone.split("$")[0]:void 0,o.custom.callerId=o.custom.callerID?"CALLERID(all)="+o.custom.callerID:void 0),o.saveOutboundRouteApp=function(){o.errors=[];var e=[];o.custom.type&&"outbound"===o.custom.type.toLowerCase()&&"outboundDial"===o.custom.appType&&(o.custom.phone=a.cutdigits?(o.custom.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.custom.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.custom.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.custom.options+="U(xcally-mixmonitor-context)"):o.custom.options=o.custom.options.replace("U(xcally-mixmonitor-context)",""));if(o.custom.appType&&"custom"===o.custom.appType);else switch((o.custom.app||o.custom.appType).toLowerCase()){case"set":o.custom.appdata=o.custom.name+"="+o.custom.value;break;case"custom":break;default:e[0]=o.custom.app,e[1]=o.custom.appdata,o.custom.appdata=e.join(",")}l(o.custom)},o.closeDialog=l}e.$inject=["$mdDialog","toasty","outboundrouteApp","outboundroute","api"],angular.module("app.voice").controller("EditoutboundAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;if(l.errors=[],l.title="TOOLS.EDIT_INTERVAL",l.interval=angular.copy(i),l.intervals=o,l.newInterval=!1,l.types=["always","custom","list"],l.daysOfWeek=a.getDaysOfWeek(),l.monthNumber=a.getMonthNumber(),l.monthName=a.getMonthName(),l.daysOfMonth=a.getDaysOfMonth(),l.interval)if("*,*,*,*"!==l.interval.interval){l.type="custom";var d=l.interval.interval.split(","),c=d[0],m=d[1],u=d[2],p=d[3];if("*"!==c){var g,v=c.split("-")[0],h=c.split("-")[1];(g=new Date).setHours(Number(v.split(":")[0])),g.setMinutes(Number(v.split(":")[1])),l.timeRangeFrom=g,(g=new Date).setHours(Number(h.split(":")[0])),g.setMinutes(Number(h.split(":")[1])),l.timeRangeTo=g}"*"!==m&&(l.dayOfWeekFrom=m.split("-")[0],l.dayOfWeekTo=m.split("-")[1]),"*"!==u&&(l.monthDayFrom=u.split("-")[0],l.monthDayTo=u.split("-")[1]),"*"!==p&&(l.monthFrom=p.split("-")[0],l.monthTo=p.split("-")[1])}else l.type="always";else l.interval={interval:"*,*,*,*"},l.type="always",l.title="TOOLS.NEW_INTERVAL",l.newInterval=!0;function b(){switch(l.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var t=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),n=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return l.dayOfWeekFrom?l.dayOfWeekTo?e.push(l.dayOfWeekFrom+"-"+l.dayOfWeekTo):e.push(l.dayOfWeekFrom):e.push("*"),l.monthDayFrom?l.monthDayTo?e.push(l.monthDayFrom+"-"+l.monthDayTo):e.push(l.monthDayFrom):e.push("*"),l.monthFrom?l.monthTo?e.push(l.monthFrom+"-"+l.monthTo):e.push(l.monthFrom):e.push("*"),e.join()}}function f(e){t.hide(e)}e.params.id&&!l.interval.application&&(l.interval.IntervalId=e.params.id),l.interval.IntervalId&&l.interval.application&&(l.type="list"),l.addNewInterval=function(){l.errors=[],l.interval.interval=b(),r.interval.save(l.interval).$promise.then(function(e){l.intervals.push(e),s.success({title:"Interval properly created",msg:l.interval.name?l.interval.name+" has been created!":""}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},l.saveInterval=function(){l.errors=[],l.interval.interval=b(),l.interval.application?("list"!==l.type&&(l.interval.IntervalId=null),f(l.interval)):r.interval.update({id:l.interval.id},l.interval).$promise.then(function(e){var t=_.find(l.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),f()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},l.closeDialog=f,l.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){l.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditoutboundAppintervalDialogController",e)}(),function(){"use strict";function e(t,n,e,a,i){var o=this;if(o.errors=[],o.title="VOICE.EDIT_"+(e.appType||e.app).toUpperCase(),o.outbounddial=angular.copy(e),o.outbounddial.appdata)switch(o.outbounddial.appType?o.outbounddial.appType.toLowerCase():o.outbounddial.app.toLowerCase()){case"custom":break;case"dialogflow":var s=o.outbounddial.appdata.split(",");o.outbounddial.key=s[0],o.outbounddial.language=s[1],o.outbounddial.welcomemessage=s.slice(2,s.length).join(",");case"amazonlex":s=o.outbounddial.appdata.split(",");o.outbounddial.accesskeyid=s[0],o.outbounddial.secretaccesskey=s[1],o.outbounddial.lexregion=s[2],o.outbounddial.botname=s[3],o.outbounddial.welcomemessage=s.slice(4,s.length).join(",");case"autoreply":s=o.outbounddial.appdata.split(",");o.outbounddial.times=isNaN(s[0])?s[0]:parseInt(s[0],10),o.outbounddial.text=s.slice(1,s.length).join(",");break;case"message":o.outbounddial.text=o.outbounddial.appdata;break;case"set":o.outbounddial.name=o.outbounddial.appdata.split("=")[0],o.outbounddial.value=o.outbounddial.appdata.split("=")[1];break;case"agi":o.outbounddial.project=o.outbounddial.appdata;break;default:var r=o.outbounddial.appdata.split(",");o.outbounddial.trunk=r[0].split("/")[1],o.outbounddial.phone=r[0].split("/")[2],o.outbounddial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),o.outbounddial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),o.outbounddial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}function l(e){t.hide(e)}o.outbounddial.type&&"outbound"===o.outbounddial.type.toLowerCase()&&"outbounddial"===o.outbounddial.appType.toLowerCase()&&(o.outbounddial.prefix=o.outbounddial.phone?o.outbounddial.phone.split("$")[0]:void 0,o.outbounddial.callerId=o.outbounddial.callerID?"CALLERID(all)="+o.outbounddial.callerID:void 0),o.saveOutboundRouteApp=function(){o.errors=[];var e=[];o.outbounddial.type&&"outbound"===o.outbounddial.type.toLowerCase()&&"outboundDial"===o.outbounddial.appType&&(o.outbounddial.phone=a.cutdigits?(o.outbounddial.prefix||"")+"${EXTEN:"+a.cutdigits+"}":(o.outbounddial.prefix||"")+"${EXTEN}","none"!==a.recordingFormat?o.outbounddial.options.indexOf("U(xcally-mixmonitor-context)")<0&&(o.outbounddial.options+="U(xcally-mixmonitor-context)"):o.outbounddial.options=o.outbounddial.options.replace("U(xcally-mixmonitor-context)",""));if(o.outbounddial.appType&&"custom"===o.outbounddial.appType);else switch((o.outbounddial.app||o.outbounddial.appType).toLowerCase()){case"set":o.outbounddial.appdata=o.outbounddial.name+"="+o.outbounddial.value;break;case"custom":break;default:e[0]=["SIP",o.outbounddial.trunk,o.outbounddial.phone].join("/"),e[1]=o.outbounddial.timeout,e[2]=o.outbounddial.options,e[3]=o.outbounddial.url,o.outbounddial.appdata=e.join(",")}l(o.outbounddial)},o.closeDialog=l,i.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){o.trunks=e.rows||[]}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.tag.get({fields:"name",sort:"name",nolimit:"true"}).$promise.then(function(e){o.tags=e.rows||[]}).catch(function(e){n.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","outboundroute","api"],angular.module("app.voice").controller("EditoutboundAppoutbounddialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.outboundroute=d||e.params.outboundroute||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoOutboundRoutes=function(){e.go("app.voice.outboundroutes")},c.saveOutboundRoute=function(){s.voiceExtension.update({id:c.outboundroute.id},c.outboundroute).$promise.then(function(){r.success({title:"OutboundRoute updated!",msg:c.outboundroute.name?c.outboundroute.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","outboundroute"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.outboundroutes=r||{count:0,rows:[]},v.table="outboundroutes",v.listOrder="",v.listOrderAsc=null,v.selectedOutboundRoutes=[],v.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,recordingFormat,cutdigits,description",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},v.arrayrecordingFormat=_.keyBy([{option:"none",value:"'none'"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.outboundroutes.edit",{id:e.id,outboundroute:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getOutboundRoutes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceExtension.get(v.query,f).$promise},v.createOrEditOutboundRoute=function(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:v.outboundroutes.rows,license:v.license,setting:v.setting}})},v.deleteOutboundRoute=A,v.exportSelectedOutboundRoutes=function(){var e=angular.copy(v.selectedOutboundRoutes);return v.selectedOutboundRoutes=[],e},v.deleteSelectedOutboundRoutes=function(e){var t=i.confirm().title("Are you sure want to delete the selected outboundroutes?").htmlContent("<b>"+v.selectedOutboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete OutboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOutboundRoutes.forEach(function(e){A(e)}),v.selectedOutboundRoutes=[]})},v.deselectOutboundRoutes=function(){v.selectedOutboundRoutes=[]},v.selectAllOutboundRoutes=function(){v.selectedOutboundRoutes=v.outboundroutes.rows},l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){v.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 h=!0,b=1;function f(e){v.outboundroutes=e||{count:0,rows:[]}}function A(t){l.voicePrefix.get({VoiceExtensionId:t.id}).$promise.then(function(e){if(e&&e.rows&&0<e.rows.length)return c.error({title:"Outbound route not deleted!",msg:"You can't remove an outbound route associated to an out prefix"});l.voiceExtension.delete({id:t.id}).$promise.then(function(){_.remove(v.outboundroutes.rows,{id:t.id}),v.outboundroutes.count-=1,v.outboundroutes.rows.length||v.getOutboundRoutes(),c.success({title:"OutboundRoute deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getOutboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","outboundroutes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r,l,d,c,m){var u=this,p=!0;function g(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.contacts:"+u.currentUser.id);e&&(e=JSON.parse(e))&&e.query&&(u.query=_.merge(e.query,_.omit(u.query,["sort","limit","page"])),u.query=_.omit(u.query,"filter")),s.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null"}).$promise.then(function(e){u.disposition=e?e.rows:[]}).catch(function(e){console.log(e)}),s.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){u.queues=e||{count:0,rows:[]},u.queuesMap=_.mapValues(_.keyBy(u.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){u.getContacts()})}function v(e){u.contacts=e||{count:0,rows:[]},p=!1,u.refresh=!0}u.showTooltip=!1,u.refresh=!0,u.disable=[],u.agents=m||[],u.currentUser=r.getCurrentUser(),u.localizationMap=c,u.pickerModel={dateStart:null,dateEnd:null},u.queues={},u.contacts={count:0,rows:[]},u.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},u.clearAll=function(){u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel={dateStart:null,dateEnd:null},u.getContacts()},u.getContacts=function(){u.refresh=!1,u.query.dateStart=void 0,u.query.dateEnd=void 0,u.pickerModel.dateStart&&!p&&(u.query.dateStart=u.pickerModel.dateStart,u.query.dateEnd=u.pickerModel.dateEnd);u.query.queue=u.query.queue,u.query.offset=(u.query.page-1)*u.query.limit,!r.hasRole("admin")&&_.isNil(u.query.queue)&&(u.query.queue=_.map(u.queues.rows,"name").join());i.localStorage.setItem("motion2.realtime.abandoned.voice.contacts:"+u.currentUser.id,JSON.stringify({query:_.omit(u.query,"queue")})),u.promise=s.voiceQueueReport.getVoiceQueuesReport(u.query,v).$promise},u.refreshContacts=function(){u.showTooltip=!1,u.getContacts()},u.onInit=g,u.assignedA=function(e,t){e&&(u.disable[e.id]=!0,s.voiceQueueReport.update({id:e.id,lastAssignedTo:t?t.name:null,assigned:!!t}).$promise.catch(function(e){console.log(e)}).finally(function(){u.disable[e.id]=!1}))},u.disposed=function(e,t){e&&s.voiceQueueReport.update({id:e.id,disposition:t||null}).$promise.catch(function(e){console.log(e)})},u.onSavevoiceQueueReport=function(e){e&&u.queuesMap&&"inbound"===e.type&&u.queuesMap[e.queue]&&(u.showTooltip=!0)},u.onUpdatevoiceQueueReport=function(e){if(e){var t=_.findIndex(u.contacts.rows,["id",e.id]);0<=t&&_.merge(u.contacts.rows[t],e)}},l.onWithoutApply("voiceQueueReport:save",u.onSavevoiceQueueReport),l.on("voiceQueueReport:update",u.onUpdatevoiceQueueReport),g();var h=!0,b=1;e.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(b=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=b),u.getContacts())}),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","dateFilterLocalizationFactory","agents"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,s,t,n,a,i,o,r,l,d,c,m,u,p,g,v){var h=this,b=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","onhold"],f=["chatPause","openchannelPause","mailPause","smsPause","faxPause","voicePause","online"];for(var A in h.availableStates=["ringing","inuse","busy","onhold","not_inuse"],h.pauses=o||{count:0,rows:[]},h.license=g,h.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},h.paginatedAgents={},h.load=!1,h.order=[],h.agentInternal={},h.agents)h.agents.hasOwnProperty(A)&&(h.agents[A].init=!0);h.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},h.logout=function(e,t){return d.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){m.success({title:"Agent logout",msg:e.fullname+" properly logout"}),h.agents[e.id]&&(h.agents[e.id].online=!1),h.rpcAgents[e.id]&&(h.rpcAgents[e.id].online=!1),y()}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.queueAdd=function(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"}})},h.pause=function(t,e){return d.user.pause({id:t.id,type:e}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.unPause=function(t){return d.user.unpause({id:t.id}).$promise.then(function(e){h.agents[t.id]&&_.merge(h.agents[t.id],_.pick(e,b)),h.rpcAgents[t.id]&&_.merge(h.rpcAgents[t.id],_.pick(e,b)),x(h.agents[t.id])}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},h.getAgentStatus=C,h.getAgentGlobalStatus=x,h.isPause=S,h.checkPause=function(e){return"pause"===e},h.isPartialPause=function(e){return"*pause"===e},h.onSave=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(_.omit(e,f),b)),_.merge(h.rpcAgents[e.id],_.pick(_.omit(e,f),b)),x(h.agents[e.id]))},h.onUpdate=function(e){h.agents[e.id]&&(_.merge(h.agents[e.id],_.pick(e,b)),_.merge(h.rpcAgents[e.id],_.pick(e,b)),e.lastPauseAt&&(h.agents[e.id].globalStatusTime=e.lastPauseAt,h.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),x(h.agents[e.id]))},h.onInit=y,h.onConnect=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(_.merge(h.agents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])),_.merge(h.rpcAgents[h.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum"])))},h.onComplete=function(e){h.agents[h.agentInternal[e.destaccountcode]]&&(h.agents[h.agentInternal[e.destaccountcode]]=_.omit(h.agents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),h.rpcAgents[h.agentInternal[e.destaccountcode]]=_.omit(h.rpcAgents[h.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},c.on("user:save",h.onSave),c.on("user:update",h.onUpdate),c.on("user:agentconnect",h.onConnect),c.on("user:agentcomplete",h.onComplete),y();var E=v(function(){h.load&&(h.load=!1,y())},999);function y(e){h.load=!1;var t,n,a=s.defer();h.promise=a.promise,h.filteredAgents=[],h.order=[],_.forIn(h.agents,function(e,t){h.rpcAgents[t]&&_.merge(e,_.pick(_.omit(h.rpcAgents[t],f),b)),x(e),e.online?(h.filteredAgents.push(e),h.agentInternal[e.internal]=t):e.globalStatusTime=_.toNumber(moment().format("x"))}),h.query.globalStatusFilter&&_.remove(h.filteredAgents,function(e){return e.globalStatus!==h.query.globalStatusFilter}),h.query.pauseTypeFilter&&_.remove(h.filteredAgents,function(e){return e.pauseType!==h.query.pauseTypeFilter}),h.query.filter&&_.remove(h.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(h.query.filter.toLowerCase())<0}),h.filteredAgents=(t=h.filteredAgents,n=_.startsWith(h.query.order,"-")?"desc":"asc",_.orderBy(t,[h.query.order.replace("-","")],[n]));var i=(h.query.page-1)*h.query.limit;h.paginatedAgents=_.drop(h.filteredAgents,i).slice(0,h.query.limit);for(var o=0;o<h.paginatedAgents.length;o+=1)h.order.push(h.paginatedAgents[o].id);a.resolve(),h.load=!0}function S(e){return"pause"===e||"*pause"===e}function T(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function C(e,t){return"voice"===t?"idle"!==e[t+"Status"]?e[t+"Status"]:e[t+"Pause"]?e[t+"Status"]="pause":"idle":e[t+"Pause"]?e[t+"Status"]="pause":e[t+"Status"]}function x(e){var t="unknown";t=_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"pause":_.some([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],S)?"*pause":_.every([C(e,"voice"),C(e,"chat"),C(e,"mail"),C(e,"openchannel"),C(e,"sms"),C(e,"fax")],T)?"idle":"busy",e.globalStatus!==t&&(e.globalStatus=t,e.init?(e.init=!1,e.globalStatusTime=S(t)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.openchannelStatusTime,e.faxStatusTime])):e.globalStatusTime=_.toNumber(moment().format("x")))}e.$on("$destroy",function(){c.removeAllListeners("user:save"),c.removeAllListeners("user:update"),c.removeAllListeners("user:agentconnect"),c.removeAllListeners("user:agentcomplete"),E&&(v.cancel(E),E=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o){var s=this;s.calls=i||{rows:[],count:0},s.query={limit:10,page:1},s.channelStatus=o.channelStatusOut,s.onSave=function(e){var t=_.find(s.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",t?_.merge(t,e):e.channel&&s.calls.rows.push(e)},s.onRemove=function(e){var t=_.findIndex(s.calls.rows,{channel:e.channel});0<=t&&(s.calls.rows[t].status="hangup");n(function(){s.calls.rows.splice(t,1)},5e3)},a.on("voice_outbound_channel:save",s.onSave),a.on("voice_outbound_channel:remove",s.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,a,n,i,o,s,r,l,d){var c=this;c.agents=n||{count:0,rows:[]},c.queues=i?_.keyBy(i.rows?i.rows:[],"name"):{},c.rpcVoiceQueuesChannelsTmp=o?_.keyBy(o.rows?_.filter(o.rows,{type:"inbound"}):[],"uniqueid"):{},c.rpcVoiceQueuesChannels={},c.queryChannels={limit:10,page:1},c.getSize=function(e){return _.size(e)},c.$onInit=function(){_.forIn(c.rpcVoiceQueuesChannelsTmp,function(e,t){_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[t]=e)})},c.onSave=function(e){"inbound"===e.type&&_.find(c.queues,{name:e.name})&&(c.rpcVoiceQueuesChannels[e.uniqueid]=e)},c.onRemove=function(e){c.rpcVoiceQueuesChannels[e.uniqueid]&&delete c.rpcVoiceQueuesChannels[e.uniqueid]},c.hangup=function(t){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:t}).$promise.then(function(e){d.success({title:"Channel "+t+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToAgent=function(t,e,n){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e,context:n}).$promise.then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},c.redirectToNumber=function(e,t){var n=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(n).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",c.onSave),r.on("voice_queue_channel:remove",c.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r){var l=this,d=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function c(){_.forIn(l.queues,function(e,t){l.rpcQueues[t]&&_.merge(e,_.pick(l.rpcQueues[t],d))})}l.count=a.count,l.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},r.hasRole("admin")?l.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:l.query={id:r.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},l.success=p,l.getQueues=function(){l.query.offset=(l.query.page-1)*l.query.limit,r.hasRole("admin")?l.promise=o.voiceQueue.get(l.query,p).$promise:l.promise=o.user.getQueues(l.query,p).$promise},l.onSave=function(e){l.queues[e.id]&&_.merge(l.queues[e.id],_.pick(e,d))},l.$onInit=c,s.onWithoutApply("voice_queue:save",l.onSave),l.interval=t(function(){},999);var m=!0,u=1;function p(e){l.count=e.count,l.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},c()}e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=u),l.getQueues())}),e.$on("$destroy",function(){s.removeAllListeners("voice_queue:save"),l.interval&&t.cancel(l.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused"];function g(){var n=[];return _.forIn(u.queues,function(e,t){e.paused=0,e.loggedInDb=0,u.queues[t].agents={},n.push(l.voiceQueue.getMembers({id:t}).$promise),u.rpcQueues[t]&&_.merge(e,_.pick(u.rpcQueues[t],p))}),t.all(n).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&&u.queues[e[t].rows[n].VoiceQueueId].paused++,u.queues[e[t].rows[n].VoiceQueueId].loggedInDb++,u.queues[e[t].rows[n].VoiceQueueId].agents[e[t].rows[n].UserId]=e[t].rows[n].VoiceQueueId}).catch(function(e){console.error(e)})}u.count=s.count?s.count:0,u.queues=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},m.hasRole("admin")?u.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:u.query={id:m.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1},u.success=b,u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=l.voiceQueue.get(u.query,b).$promise:u.promise=l.user.getQueues(u.query,b).$promise},u.createOrEditVoiceQueue=function(e,t){a.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(u.queues),license:null,setting:null}})},u.agentAdd=function(e,t){a.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:u.queues?u.queues.rows:[],realtime:!0}})},u.updateQueue=function(e){return l.voiceQueue.update(e).$promise.then(function(){c.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){c.error({title:"Error creating queue!",msg:e.message})})},u.onSave=function(e){u.queues[e.id]&&_.merge(u.queues[e.id],_.pick(e,p))},u.onPause=function(n){console.log("onPause",n),n.voicePause?_.forIn(u.queues,function(e,t){e.agents[n.id]&&(e.paused+=1,console.log("pause"))}):n.voicePause||_.forIn(u.queues,function(e,t){e.agents[n.id]&&0<e.paused&&(e.paused-=1,console.log("unpause"))})},u.onLogin=function(e){console.log("onLogged",e),u.queues[e.VoiceQueueId]&&(u.queues[e.VoiceQueueId].loggedInDb+=1,u.queues[e.VoiceQueueId].agents[e.UserId]=e.VoiceQueueId)},u.onLogout=function(e){console.log("onLogout",e),u.queues[e.VoiceQueueId]&&0<u.queues[e.VoiceQueueId].loggedInDb&&(u.queues[e.VoiceQueueId].loggedInDb-=1,delete u.queues[e.VoiceQueueId].agents[e.UserId])},u.$onInit=g,u.order=[],_.forIn(u.queues,function(e,t){u.order.push(e.id)}),d.onWithoutApply("voice_queue:save",u.onSave),u.interval=o(function(){},999),d.on("user:update",u.onPause),d.on("userVoiceQueue:remove",u.onLogout),d.on("userVoiceQueue:save",u.onLogin);var v=!0,h=1;function b(e){if(u.count=e.count,u.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){u.order=[];for(var t=0;t<e.rows.length;t++)u.order.push(e.rows[t].id)}g()}e.$watch("vm.query.filter",function(e,t){v?n(function(){v=!1}):(t||(h=u.query.page),e!==t&&(u.query.page=1),e||(u.query.page=h),u.getQueues())}),e.$on("$destroy",function(){d.removeAllListeners("voice_queue:save"),u.interval&&o.cancel(u.interval),d.removeAllListeners("user:update"),d.removeAllListeners("userVoiceQueue:remove"),d.removeAllListeners("userVoiceQueue:save")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","$interval","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){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"}}})}(),function(){"use strict";function e(e,n,t){var a=this;switch(t.disconnect(),t.connect(),a.selectedTab=0,n.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.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;break;default:a.selectedTab=0,n.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,t){if(e!==t)switch(e){case 0:n.go("app.voice.realtime.agents");break;case 1:n.go("app.voice.realtime.telephones");break;case 2:n.go("app.voice.realtime.trunks");break;case 3:n.go("app.voice.realtime.queues");break;case 4:n.go("app.voice.realtime.queue_calls");break;case 5:n.go("app.voice.realtime.abandonedcalls");break;case 6:n.go("app.voice.realtime.queue_params");break;case 7:n.go("app.voice.realtime.outbound_calls");break;default:n.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,o,s,r){var l=this,d=["fullname","internal","state","status"];function c(){_.forIn(l.telephones,function(e,t){l.rpcTelephones[t]&&_.merge(e,_.pick(l.rpcTelephones[t],d))})}l.count=a.count,l.attributes=["fullname","internal","state","status","address"],l.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},l.statusClass=r.status,l.stateClass=r.state,l.success=p,l.$onInit=c,l.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},l.getTelephones=function(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.user.get(l.query,p).$promise},l.onSave=function(e){l.telephones[e.id]&&_.merge(l.telephones[e.id],_.pick(e,d))},s.on("telephone:save",l.onSave);var m=!0,u=1;function p(e){l.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},c()}e.$watch("vm.query.filter",function(e,t){m?n(function(){m=!1}):(t||(u=l.query.page),e!==t&&(l.query.page=1),e||(l.query.page=u),l.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,n,t,a,i,o,s,r,l){var d=this,c=["status","stateRegistry","registry","host","port","internal","state","status"];function m(){for(var e,t=0;t<d.trunks.length;t+=1)0<=(e=_.findIndex(d.rpcTrunks,["id",d.trunks[t].id]))&&_.merge(d.trunks[t],_.pick(d.rpcTrunks[e],c))}function u(e,t,n){0<=t&&_.merge(e[t],_.pick(n,c))}d.count=a.count,d.trunks=a?a.rows:[],d.rpcTrunks=i&&i.rows?i.rows:[],d.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},d.statusClass=r.status,d.stateClass=r.state,d.success=v,d.$onInit=m,d.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},d.getTrunks=function(){d.query.offset=(d.query.page-1)*d.query.limit,d.promise=o.trunk.get(d.query,v).$promise},d.goToTrunk=function(e,t){l.go("app.tools.trunks.edit",{id:t.id})},d.onSave=function(e){var t=_.findIndex(d.trunks,["id",e.id]),n=_.findIndex(d.rpcTrunks,["id",e.id]);u(d.trunks,t,e),u(d.rpcTrunks,n,e)},s.on("trunk:save",d.onSave);var p=!0,g=1;function v(e){d.count=e.count,d.trunks=e&&e.rows?e.rows:[],m()}e.$watch("vm.query.filter",function(e,t){p?n(function(){p=!1}):(t||(g=d.query.page),e!==t&&(d.query.page=1),e||(d.query.page=g),d.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICEMAIL",u.voicemail=angular.copy(r),u.voicemails=s,u.newVoicemail=!1,u.voicemail||(u.voicemail={attach:"no"},u.title="VOICE.NEW_VOICEMAIL",u.newVoicemail=!0),u.addNewVoicemail=function(){u.errors=[],l.voiceMail.save(u.voicemail).$promise.then(function(e){u.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:u.voicemail.name?u.voicemail.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.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.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoicemail=function(){u.errors=[],l.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(e){var t=_.find(u.voicemails,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"Voicemail properly saved!",msg:u.voicemail.name?u.voicemail.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoicemail=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceMail.delete({id:u.voicemail.id}).$promise.then(function(){_.remove(u.voicemails,{id:u.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(u.voicemail.name||"voicemail")+" has been deleted!"}),p(u.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voicemails","voicemail","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=d.getCurrentUser(),c.voicemail={},c.voicemailMessages={count:0,rows:[]},c.selectedVoicemailMessages=[],c.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},c.init=function(e){c.voicemail=e,c.query.id=c.voicemail.id,c.getVoicemailMessages()},c.deleteConfirm=function(e,t){var n=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.voiceMailMessageDownload=function(o,e,t){return l.voiceMailMessage.download({id:o.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="message"+o.id,a=new Blob(t,{type:e.type});n=o.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t+=1)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.success=p,c.getVoicemailMessages=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.voiceMail.getMessages(c.query,p).$promise},c.createOrEditVoicemailMessage=function(e,t){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:c.voicemail,message:t,messages:c.voicemailMessages.rows,license:null,setting:null}})},c.exportSelectedVoicemailMessages=function(){var e=angular.copy(c.selectedVoicemailMessages);return c.selectedVoicemailMessages=[],e},c.deleteVoicemailMessage=g,c.deleteSelectedVoicemailMessages=function(e){var t=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+c.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(t).then(function(){c.selectedVoicemailMessages.forEach(function(e){g(e)}),c.selectedVoicemailMessages=[]})};var m=!0,u=1;function p(e){c.voicemailMessages=e||{count:0,rows:[]}}function g(e){l.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(c.voicemailMessages.rows,{id:e.id}),c.voicemailMessages.count-=1,c.voicemailMessages.rows.length||c.getVoicemailMessages(),r.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var t=0;t<e.data.errors.length;t++)r.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}t.$watch("vm_dc.query.filter",function(e,t){m?i(function(){m=!1}):(t||(u=c.query.page),e!==t&&(c.query.page=1),e||(c.query.page=u),c.getVoicemailMessages())})}e.$inject=["$cookies","$scope","$state","$q","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=i,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=t.protocol()+"://"+t.host(),c.voicemail=d||e.params.voicemail||{},c.selectedTab=e.params.tab||0,c.alert=r.info,c.gotoVoicemails=function(){e.go("app.voice.voicemails")},c.saveVoicemail=function(){s.voiceMail.update({id:c.voicemail.id},c.voicemail).$promise.then(function(){r.success({title:"Voicemail updated!",msg:c.voicemail.name?c.voicemail.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){c.contexts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","voicemail"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voicemails=r||{count:0,rows:[]},v.table="voicemails",v.listOrder="",v.listOrderAsc=null,v.selectedVoicemails=[],v.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},v.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.voicemails.edit",{id:e.id,voicemail:e})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVoicemails=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceMail.get(v.query,f).$promise},v.createOrEditVoicemail=function(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:v.voicemails.rows,license:v.license,setting:v.setting}})},v.deleteVoicemail=A,v.exportSelectedVoicemails=function(){var e=angular.copy(v.selectedVoicemails);return v.selectedVoicemails=[],e},v.deleteSelectedVoicemails=function(e){var t=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+v.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoicemails.forEach(function(e){A(e)}),v.selectedVoicemails=[]})},v.deselectVoicemails=function(){v.selectedVoicemails=[]},v.selectAllVoicemails=function(){v.selectedVoicemails=v.voicemails.rows};var h=!0,b=1;function f(e){v.voicemails=e||{count:0,rows:[]}}function A(e){l.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(v.voicemails.rows,{id:e.id}),v.voicemails.count-=1,v.voicemails.rows.length||v.getVoicemails(),c.success({title:"Voicemail deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicemails","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICEPREFIX",u.voicePrefix=angular.copy(r),u.voicePrefixes=s,u.newvoicePrefix=!1,u.voicePrefix||(u.voicePrefix={},u.title="VOICE.NEW_VOICEPREFIX",u.newvoicePrefix=!0),u.addNewvoicePrefix=function(){u.errors=[],l.voicePrefix.save(u.voicePrefix).$promise.then(function(e){u.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:u.voicePrefix.name?u.voicePrefix.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.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.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.savevoicePrefix=function(){u.errors=[],l.voicePrefix.update({id:u.voicePrefix.id},u.voicePrefix).$promise.then(function(e){var t=_.find(u.voicePrefixes,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"voicePrefix properly saved!",msg:u.voicePrefix.name?u.voicePrefix.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var t=0;t<e.data.errors.length;t++)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.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deletevoicePrefix=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voicePrefix.delete({id:u.voicePrefix.id}).$promise.then(function(){_.remove(u.voicePrefixes,{id:u.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(u.voicePrefix.name||"voicePrefix")+" has been deleted!"}),p(u.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p,l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){o.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","$q","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.voicePrefix[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.voicePrefix=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,t){a.voicePrefix[t?"removeAgents":"addAgents"]({id:l.voicePrefix.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"voicePrefix properly "+(t?"removed":"added"),msg:"voicePrefix has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voicePrefix.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voicePrefixes=r||{count:0,rows:[]},v.table="voicePrefixes",v.listOrder="",v.listOrderAsc=null,v.selectedVoicePrefixes=[],v.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",limit:10,page:1},v.editdialog=function(e,t){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:v.voicePrefixes.rows,license:v.license,setting:null}})},v.agentadddialog=function(e,t){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:v.voicePrefixes?v.voicePrefixes.rows:[],realtime:!1}})},v.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the voicePrefix?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVoicePrefixes=function(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voicePrefix.get(v.query,f).$promise},v.createOrEditvoicePrefix=function(e,t){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:t,voicePrefixes:v.voicePrefixes.rows,license:v.license,setting:v.setting}})},v.deletevoicePrefix=A,v.exportSelectedVoicePrefixes=function(){var e=angular.copy(v.selectedVoicePrefixes);return v.selectedVoicePrefixes=[],e},v.deleteSelectedVoicePrefixes=function(e){var t=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+v.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoicePrefixes.forEach(function(e){A(e)}),v.selectedVoicePrefixes=[]})},v.deselectVoicePrefixes=function(){v.selectedVoicePrefixes=[]},v.selectAllVoicePrefixes=function(){v.selectedVoicePrefixes=v.voicePrefixes.rows},l.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){v.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var h=!0,b=1;function f(e){v.voicePrefixes=e||{count:0,rows:[]}}function A(e){l.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(v.voicePrefixes.rows,{id:e.id}),v.voicePrefixes.count-=1,v.voicePrefixes.rows.length||v.getVoicePrefixes(),c.success({title:"voicePrefix deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicePrefixes","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICEQUEUE",u.voiceQueue=angular.copy(r),u.voiceQueues=s,u.newVoiceQueue=!1,u.voiceQueue||(u.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"},u.title="VOICE.NEW_VOICEQUEUE",u.newVoiceQueue=!0),u.addNewVoiceQueue=function(){u.errors=[],l.voiceQueue.save(u.voiceQueue).$promise.then(function(e){return l.user.addQueues({id:d.getCurrentUser().id,ids:[e.id],channel:"voice",penalty:0,realtime:!1}).$promise,e}).then(function(e){u.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:u.voiceQueue.name?u.voiceQueue.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.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.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoiceQueue=function(){u.errors=[],l.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(e){var t=_.find(u.voiceQueues,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VoiceQueue properly saved!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoiceQueue=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceQueue.delete({id:u.voiceQueue.id}).$promise.then(function(){return l.voiceQueue.getAgents({id:u.voiceQueue.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(l.user.removeQueues({id:d.getCurrentUser().id,ids:[u.voiceQueue.id],channel:"voice",penalty:0,realtime:!1}).$promise);return i.all(t)}).then(function(){_.remove(u.voiceQueues,{id:u.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(u.voiceQueue.name||"voiceQueue")+" has been deleted!"}),p(u.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voiceQueues","voiceQueue","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,n,a,t,i,o,s,r){var l=this;function d(){return a.voiceQueue[l.isVoiceRealtime()?"getMembers":"getAgents"]({id:l.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return l.isVoiceRealtime()?l.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")?"<"+e.internal+">":"",e}):[]:l.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.selectedItems=l.selectedItems,r.hasRole("admin")?a.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:a.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){l.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],l.dualMultiselectOptions.items=_.differenceBy(l.items,l.selectedItems,"id")}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}l.voiceQueue=t,l.penalty=0,l.items=[],l.selectedItems=[],l.closeDialog=function(){e.hide()},l.isVoiceRealtime=function(){return o},l.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,t){a.voiceQueue[t?"removeAgents":"addAgents"]({id:l.voiceQueue.id,ids:_.map(e,l.isVoiceRealtime()&&t?"UserId":"id"),penalty:l.penalty||0,realtime:o||!1}).$promise.then(function(){n.success({title:"VoiceQueue properly "+(t?"removed":"added"),msg:"VoiceQueue has been "+(t?"removed":"added")+"!"}),t||d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},d()}e.$inject=["$mdDialog","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,n,a,t,i){var o=this;o.voiceQueue=t,o.penalty=0,o.items=[],o.selectedItems=[],o.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,t){a.voiceQueue[t?"removeTeams":"addTeams"]({id:o.voiceQueue.id,ids:_.map(e,"id"),penalty:o.penalty||0}).$promise.then(function(){n.success({title:"Team properly "+(t?"removed":"added"),msg:"Team has been "+(t?"removed":"added")+"!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},o.closeDialog=function(){e.hide()},a.voiceQueue.getTeams({id:o.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return o.selectedItems=e.rows?e.rows:[],o.dualMultiselectOptions.selectedItems=o.selectedItems,a.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){o.items=e.rows?e.rows:[],o.dualMultiselectOptions.items=_.differenceBy(o.items,o.selectedItems,"id")}).catch(function(e){n.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(n,e,a,i,t,o,s,r,l,d){var c=this;c.currentUser=l.getCurrentUser(),c.license=t,c.setting=o,c.passwordPattern=c.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",c.location=e.protocol()+"://"+e.host(),c.voiceQueue=d||n.params.voiceQueue||{},c.selectedTab=n.params.tab||0,c.teamadddialog=function(e,t){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[]}})},c.agentadddialog=function(e,t){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[],realtime:!1}})},c.gotogoto=function(e,t){n.go("app.voice.realtime.queues",{})},c.alert=r.info,c.gotoVoiceQueues=function(){n.go("app.voice.voiceQueues")},c.saveVoiceQueue=function(){s.voiceQueue.update({id:c.voiceQueue.id},c.voiceQueue).$promise.then(function(){r.success({title:"VoiceQueue updated!",msg:c.voiceQueue.name?c.voiceQueue.name+" has been updated!":""})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.sound.get({fields:"name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.sounds=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","license","setting","api","toasty","Auth","voiceQueue"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voiceQueues=r||{count:0,rows:[]},v.table="voiceQueues",v.listOrder="",v.listOrderAsc=null,v.selectedVoiceQueues=[],v.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",channel:"voice",limit:10,page:1},v.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"),"")}),v.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"),"")}),v.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"),"")}),v.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.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"),"")}),v.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editstate=function(e,t){n.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e})},v.teamadddialog=function(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:v.voiceQueues?v.voiceQueues.rows:[]}})},v.agentadddialog=function(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:v.voiceQueues?v.voiceQueues.rows:[],realtime:!1}})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.gotorealtimegoto=function(e,t){n.go("app.voice.realtime.queues",{})},v.success=f,v.getVoiceQueues=function(){v.query.offset=(v.query.page-1)*v.query.limit,m.hasRole("admin")?v.promise=l.voiceQueue.get(v.query,f).$promise:(v.query.id=v.currentUser.id,v.promise=l.user.getQueues(v.query,f).$promise)},v.createOrEditVoiceQueue=function(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:v.voiceQueues.rows,license:v.license,setting:v.setting}})},v.deleteVoiceQueue=A,v.exportSelectedVoiceQueues=function(){var e=angular.copy(v.selectedVoiceQueues);return v.selectedVoiceQueues=[],e},v.deleteSelectedVoiceQueues=function(e){var t=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+v.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoiceQueues.forEach(function(e){A(e)}),v.selectedVoiceQueues=[]})},v.deselectVoiceQueues=function(){v.selectedVoiceQueues=[]},v.selectAllVoiceQueues=function(){v.selectedVoiceQueues=v.voiceQueues.rows};var h=!0,b=1;function f(e){v.voiceQueues=e||{count:0,rows:[]}}function A(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(v.voiceQueues.rows,{id:e.id}),v.voiceQueues.count-=1,v.voiceQueues.rows.length||v.getVoiceQueues(),c.success({title:"VoiceQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceQueues","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){a.hide(e)}u.errors=[],u.setting=m,u.license=c,u.passwordPattern=u.setting&&u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.title="VOICE.EDIT_VOICERECORDING",u.voiceRecording=angular.copy(r),u.voiceRecordings=s,u.newVoiceRecording=!1,u.voiceRecording||(u.voiceRecording={},u.title="VOICE.NEW_VOICERECORDING",u.newVoiceRecording=!0),u.addNewVoiceRecording=function(){u.errors=[],l.voiceRecording.save(u.voiceRecording).$promise.then(function(e){u.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:u.voiceRecording.name?u.voiceRecording.name+" has been created!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.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.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveVoiceRecording=function(){u.errors=[],l.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(e){var t=_.find(u.voiceRecordings,{id:e.id});t&&_.merge(t,_.pick(e.toJSON(),_.keys(t))),o.success({title:"VoiceRecording properly saved!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been saved!":""}),p(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var t=0;t<e.data.errors.length;t++)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.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteVoiceRecording=function(e){u.errors=[];var t=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){l.voiceRecording.delete({id:u.voiceRecording.id}).$promise.then(function(){_.remove(u.voiceRecordings,{id:u.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(u.voiceRecording.name||"voiceRecording")+" has been deleted!"}),p(u.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var t=0;t<e.data.errors.length;t++)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.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.getDateFromString=function(e){return null===e?void 0:new Date(e)},u.closeDialog=p}e.$inject=["$scope","$state","$location","$mdDialog","$q","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g){var v=this;v.license=u,v.setting=p,v.currentUser=m.getCurrentUser(),v.voiceRecordings=r||{count:0,rows:[]},v.table="voiceRecordings",v.listOrder="",v.listOrderAsc=null,v.selectedVoiceRecordings=[],v.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition",sort:"-updatedAt",limit:10,page:1},v.localizationMap=g,v.pickerModel={dateStart:null},v.downloadfile2=function(o,e){return l.voiceRecording.download({id:o.id}).$promise.then(function(e){var t=[e.buffer],n="download",a=new Blob(t,{type:e.type});n=o.uniqueid+o.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.deleteconfirm=function(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(){A(e)},function(){console.log("CANCEL")})},v.success=f,v.getVoiceRecordings=function(){v.query.dateStart=void 0,v.query.dateEnd=void 0,v.pickerModel.dateStart&&(v.query.dateStart=v.pickerModel.dateStart,v.query.dateEnd=v.pickerModel.dateEnd);v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.voiceRecording.get(v.query,f).$promise},v.createOrEditVoiceRecording=function(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:v.voiceRecordings.rows,license:v.license,setting:v.setting}})},v.deleteVoiceRecording=A,v.exportSelectedVoiceRecordings=function(){var e=angular.copy(v.selectedVoiceRecordings);return v.selectedVoiceRecordings=[],e},v.deleteSelectedVoiceRecordings=function(e){var t=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+v.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoiceRecordings.forEach(function(e){A(e)}),v.selectedVoiceRecordings=[]})},v.deselectVoiceRecordings=function(){v.selectedVoiceRecordings=[]},v.selectAllVoiceRecordings=function(){v.selectedVoiceRecordings=v.voiceRecordings.rows},v.clearDateFilter=function(){v.pickerModel={dateStart:null},v.getVoiceRecordings()};var h=!0,b=1;function f(e){v.voiceRecordings=e||{count:0,rows:[]}}function A(e){l.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(v.voiceRecordings.rows,{id:e.id}),v.voiceRecordings.count-=1,v.voiceRecordings.rows.length||v.getVoiceRecordings(),c.success({title:"VoiceRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var t=0;t<e.data.errors.length;t++)c.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,t){h?s(function(){h=!1}):(t||(b=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=b),v.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty","Auth","license","setting","dateFilterLocalizationFactory"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(t,n,o,a,s,e,i,r){var l=this;function d(e,t){return{id:e,title:t.name||"NONAME",state:"app.dashboards.custom",stateParams:t,weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(e)&&!s.hasRole("admin")}}}function c(e,t){return{id:e,title:t.name||"NONAME",state:"app.plugins.plugin",stateParams:t,weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(e)&&!s.hasRole("admin")}}}function m(e,t){a.saveItem("apps.home.plugin_"+e,{id:e,title:t.name,translate:t.name,state:"plugin_"+t.id,stateParams:t,view:"plugin",icon:t.icon,weight:12,hidden:function(){return!s.hasPermission(e)}})}l.isAgent=function(){return s.getCurrentUser()&&s.hasRole("agent")},o.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return s.hasRole("agent")}}),i.version.get().$promise.then(function(e){l.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){l.version="UNKNOWN"}).finally(function(){o.saveItem("version",{title:"VERSION "+l.version,group:!0,weight:2,hidden:function(){return s.hasRole("agent")}})}),s.isLoggedIn()&&(i.dashboard.get().$promise.then(function(e){for(var t=0,n=0;n<e.rows.length;n+=1)t=99999+e.rows[n].id,o.saveItem("apps.dashboards.custom_"+t,d(t,e.rows[n]))}),i.plugin.get({active:!0}).$promise.then(function(e){var t=0;if(e.count){var n=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<n.length){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1900)&&!s.hasRole("admin")}});for(var a=0;a<n.length;a+=1)t=88888+n[a].id,o.saveItem("apps.plugins.plugin_"+t,c(t,n[a]));o.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)m(t=88888+i[a].id,i[a])}})),e.custom&&!r.defaultPageTitle&&r.pageTitle&&angular.element("#pageTitle").html(r.pageTitle),o.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(100)&&!s.hasRole("admin")}}),o.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(101)&&!s.hasRole("admin")}}),o.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(200)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",weight:1,hidden:function(){return s.hasRole("agent")||s.hasRole("user")||!s.hasPermission(201)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(202)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(203)&&!s.hasRole("admin")}}),o.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(204)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",weight:4,hidden:function(){return!e.cm||s.hasRole("agent")||!s.hasPermission(300)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(301)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(302)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",weight:4,hidden:function(){return s.hasRole("agent")||!s.hasPermission(304)&&!s.hasRole("admin")}}),o.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(303)&&!s.hasRole("admin")}}),o.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",weight:5,hidden:function(){return!e.voice||s.hasRole("agent")||!s.hasPermission(400)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(401)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.inboundroutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundroutes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(402)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.outboundroutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundroutes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(403)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.internalroutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalroutes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(404)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(405)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(406)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(407)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(408)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(409)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(410)&&!s.hasRole("admin")}}),o.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(411)&&!s.hasRole("admin")}}),o.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",weight:6,hidden:function(){return!e.chat||s.hasRole("agent")||!s.hasPermission(500)&&!s.hasRole("admin")}}),o.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(501)&&!s.hasRole("admin")}}),o.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(502)&&!s.hasRole("admin")}}),o.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(510)&&!s.hasRole("admin")}}),o.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",weight:7,hidden:function(){return!e.mail||s.hasRole("agent")||!s.hasPermission(600)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(601)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(602)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(603)&&!s.hasRole("admin")}}),o.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(610)&&!s.hasRole("admin")}}),o.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",weight:8,hidden:function(){return!e.messaging||s.hasRole("agent")||!s.hasPermission(700)&&!s.hasRole("admin")}}),o.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(701)&&!s.hasRole("admin")}}),o.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(702)&&!s.hasRole("admin")}}),o.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(710)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",weight:9,hidden:function(){return!e.openchannel||s.hasRole("agent")||!s.hasPermission(800)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(801)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(802)&&!s.hasRole("admin")}}),o.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(810)&&!s.hasRole("admin")}}),o.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",weight:10,hidden:function(){return!e.fax||s.hasRole("agent")||!s.hasPermission(900)&&!s.hasRole("admin")}}),o.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(901)&&!s.hasRole("admin")}}),o.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(902)&&!s.hasRole("admin")}}),o.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(910)&&!s.hasRole("admin")}}),o.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:13,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1e3)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.cannedAnswers",{id:1002,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1002)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1002)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1003)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1004)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1005)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.schedules",{id:42,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return s.hasRole("agent")||!s.hasPermission(42)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.sounds",{id:1006,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1006)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.tags",{id:1007,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1007)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.templates",{id:1008,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1008)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.triggers",{id:1009,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1009)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.trunks",{id:1010,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1010)&&!s.hasRole("admin")}}),o.saveItem("apps.tools.variables",{id:1011,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1011)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",weight:11,hidden:function(){return!e.voice||s.hasRole("agent")||!s.hasPermission(1100)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1101)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1102)&&!s.hasRole("admin")}}),o.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1103)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:14,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1200)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1201)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",weight:2,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1202)&&!s.hasRole("admin")}}),o.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1203)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:15,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1300)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1301)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1302)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1303)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1305)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1306)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1307)&&!s.hasRole("admin")}}),o.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",weight:1,badge:{content:"beta",color:"orange"},hidden:function(){return s.hasRole("agent")||!s.hasPermission(1308)&&!s.hasRole("admin")}}),o.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",weight:18,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1400)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1401)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1402)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1403)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!e.custom||s.hasRole("agent")||!s.hasPermission(1407)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!e.update||s.hasRole("agent")||!s.hasPermission(1404)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1405)&&!s.hasRole("admin")}}),o.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1406)&&!s.hasRole("admin")}}),o.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",weight:19,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1600)&&!s.hasRole("admin")}}),o.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1601)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",weight:5,hidden:function(){return!e.dialer||s.hasRole("agent")||!s.hasPermission(1500)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1501)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1502)&&!s.hasRole("admin")}}),o.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1510)&&!s.hasRole("admin")}}),o.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",weight:12,hidden:function(){return!e.jscripty||s.hasRole("agent")||!s.hasPermission(1700)&&!s.hasRole("admin")}}),o.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1701)&&!s.hasRole("admin")}}),o.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:16,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1800)&&!s.hasRole("admin")}}),o.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return s.hasRole("agent")||!s.hasPermission(1801)&&!s.hasRole("admin")}}),o.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!s.hasPermission(101)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:2,hidden:function(){return!e.cm||!s.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:3,hidden:function(){return!e.cm||!s.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:3,hidden:function(){return!e.dialer||!s.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:4,hidden:function(){return!e.voice||!s.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:5,hidden:function(){return!e.voice||!s.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:6,hidden:function(){return!e.voice||!s.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:7,hidden:function(){return!e.chat||!s.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:8,hidden:function(){return!e.mail||!s.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:9,hidden:function(){return!e.messaging||!s.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-A200-fg",weight:10,hidden:function(){return!e.openchannel||!s.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:11,hidden:function(){return!e.fax||!s.hasPermission(109)}}),t.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===t.$id&&n.$broadcast("msSplashScreen::remove")})}e.$inject=["$scope","$rootScope","msNavigationService","msNavigationAgentService","Auth","license","api","setting"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,t,n,a,s,r){var i=this;function o(e){if(e&&e.id){var t=99999+e.id;s.saveItem("apps.dashboards.custom_"+t,{id:t,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(t)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var t=88888+e.id;s.saveItem("apps.plugins.plugin_"+t,{id:t,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(t)&&!r.hasRole("admin")}}),s.sort()}}else{t=88888+e.id;n=1900,a=t,i=s.getNavigation(),(o=_.find(i[0].children,{id:n}))&&_.some(o.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(s.deleteItem("apps.plugins.plugin_"+t),d(1900)||s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var n,a,i,o}function d(e){var t=s.getNavigation(),n=_.find(t[0].children,{id:e});return!!(n&&0<n.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=n,i.$onInit=function(){i.folded="true"===t.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,t.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",o),a.on("dashboard:update",o),a.on("dashboard:remove",function(e){if(e&&e.id){var t=99999+e.id;s.deleteItem("apps.dashboards.custom_"+t)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var t=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(s.deleteItem("apps.plugins.plugin_"+t),d(1900)||s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,t,n,o,s,r){var l=this;function d(n){s.isSupported()?s.requestPermission().then(function(){var e,t;t={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=n).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},s.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),t)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=t.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},n.on("chatInternalMessage:save",l.onMessageSave),n.on("chatInternalMessage:update",l.onMessageUpdate),o.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),o.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var t=[],n=e.rows,a=0;a<n.length;a++)t.push(o.chatGroup.getUnread({id:n[a].id}).$promise);return i.all(t)}).then(function(e){for(var t=0;t<e.length;t++)l.unreadTotalGroupMessages+=e[t].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){n.removeAllListeners("chatInternalMessage:save"),n.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){var u=this;function p(e){var t=angular.element("#chat-dialog");a(function(){t.animate({scrollTop:t[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){t.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){t.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return t.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",n.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var t=0;t<u.user.messages.rows.length;t+=1)!1===u.user.messages.rows[t].read&&u.user.messages.rows[t].ToId===u.currentUser.id&&n.chatInternalMessage.update({id:u.user.messages.rows[t].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",n.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),n.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var t=_.find(u.users.rows,{id:e.FromId});t&&(t.lastMessageAt=e.createdAt,t.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var t=_.find(u.user.messages.rows,{id:e.id});t&&_.merge(t,e)}var n=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});n&&n.lastMessage&&_.merge(n.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var t=_.find(u.users.rows,{id:e.id});t&&(_.isNil(e.online)||t.online===e.online||(t.online=e.online),_.isNil(e.allowmessenger)||t.allowmessenger===e.allowmessenger||(t.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},o.on("chatInternalMessage:save",u.onMessageSave),o.on("chatInternalMessage:update",u.onMessageUpdate),o.on("user:update",u.onUserUpdate),s("quick-panel").onClose(function(){u.user=void 0}),n.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),n.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){o.removeAllListeners("chatInternalMessage:save"),o.removeAllListeners("chatInternalMessage:update"),o.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=s.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var n;return d.errors=[],o.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var t=_.map(d.group.members,"id");return t.unshift(d.currentUser.id),n=e,o.chatGroup.addMembers({id:n.id,ids:t}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:n.name+" has been saved!"}),c(n)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((t=e,n=angular.lowercase(t),function(e){var t=e.name.toLowerCase();return-1!=t.indexOf(n)})):[];var t,n}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,n,a,o,t,s,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var t=angular.element("#chat-group-dialog");a(function(){t.animate({scrollTop:t[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var t=0,n=[];t<e.rows.length;t++)e.rows[t].unreadGroupMessages=0,c.groups[e.rows[t].id]=e.rows[t],n.push(r.chatGroup.getUnread({id:e.rows[t].id}).$promise);return s.all(n)}).then(function(e){for(var t=0;t<e.length;t++)c.groups[e[t].id].unreadGroupMessages+=e[t].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,t){o.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return r.user.get({role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,t){var n=o.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(t).ok("OK").cancel("CANCEL");o.show(n).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){o.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var t=[];a.messages=e.rows,a.messages.unshift(i);for(var n=0;n<a.messages.length;n++)t.push(r.user.get({id:a.messages[n].ToId,fields:"id,name,fullname,userpic"}).$promise);return s.all(t)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(t){c.group={id:t.id,write:t.write,messages:{}},r.chatGroup.getMembers({id:t.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:t.id,nolimit:!0}).$promise}).then(function(e){for(var t,n=0,a=[];n<e.count;n++)e.rows[n].ToId===c.currentUser.id&&(t=e.rows[n],c.group.messages[t.id]=t,e.rows[n].ToId!=c.currentUser.id||e.rows[n].FromId===c.currentUser.id||t.read||a.push(r.chatInternalMessage.update({id:t.id,read:!0})));return s.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var n={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(n).$promise.then(function(e){n.read=!1,n.ChatInternalMessageId=e.id;for(var t=0;t<c.group.members.length;t++)c.group.members[t].id!==c.currentUser.id&&(n.ToId=c.group.members[t].id,a.push(r.chatGroup.addMessage(angular.copy(n)).$promise));return s.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(t){if(!c.group&&t.ToId===c.currentUser.id&&t.FromId!==c.currentUser.id&&!t.read&&t.ChatGroupId){var e=c.groups[t.ChatGroupId];if(!e)return r.chatGroup.get({id:t.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&t.ChatGroupId===c.group.id&&t.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:t.id,read:!0}).$promise.then(function(){var e;e=t,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),t("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;s.form={token:o.token},s.setting={},s.resetPassword=function(){return i.auth.reset(s.form).$promise.then(function(){t.success({title:n.instant("RESETPASSWORD.PASSWORD_RESET"),msg:n.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&t.error({title:n.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){s.setting=e,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&t.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){var s=this;function r(){e.hide()}s.errors=[],s.user=a,s.setting=i,s.reset=o,s.passwordPattern=s.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",s.savePassword=function(){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)),r()}).catch(function(e){console.error(e),s.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},s.closeDialog=r}e.$inject=["$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){var l=this;function d(e){_.isNil(e)&&o.cmHopper.update({id:l.preview.id,UserId:null}),a.hide()}l.customFieldsMap=r&&r.rows?_.mapValues(_.keyBy(r.rows,function(e){return"cf_"+e.id}),"name"):{},l.errors=[],l.hopperIds=[],l.preview=s,l.originated=!1,l.disable=!1,l.disableGetContact=!1,l.hopperIds.push(l.preview.id),l.originatePreview=function(){l.originated=!0,l.disable=!0,_.isEmpty(l.preview)?(i.error({title:"Message",msg:"Contact not available"}),l.disable=!1,l.hopperIds=[],d(!0)):o.rpc.getVoiceQueuesPreview({id:l.preview.id}).$promise.then(function(e){d(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),d(!0)}).finally(function(){l.disable=!1,l.hopperIds=[]})},l.closeDialog=d,l.nextContact=function(){return l.disableGetContact=!0,o.cmHopper.getPreview({hopperIds:l.hopperIds,direction:"next"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||o.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(l.disableGetContact=!1,l.hopperIds=[],404===e.status)l.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();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 a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.previousContact=function(){if(l.disableGetContact=!0,1<l.hopperIds.length){var e=_.without(l.hopperIds,l.preview.id);return o.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(l.hopperIds,function(e){return e==l.preview.id}),l.originated||o.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e)}).catch(function(e){if(404===e.status)l.hopperIds=[l.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){l.hopperIds=[],a.hide();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 l.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},l.getFirstAvailableContact=function(){return l.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),o.cmHopper.getPreview({hopperIds:[l.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||o.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)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 preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){l.disableGetContact=!1})},l.isCustomField=function(e){return _.startsWith(e,"cf_")},l.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},l.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){l.originated||o.cmHopper.update({id:l.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(e,t,o,n,s,a,i,r,l,d,c,m,u,p,g,v,h,b,f,A,E){var y,S=this;function T(e){S.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function C(){S.promise=b.user.getQueues(S.query,T).$promise}function x(e){return v.logout(e).then(function(){return h.disconnect(),t.$broadcast("webrtc::logout"),n.go("app.login")}).catch(function(e){console.error(e)})}function O(e,t){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!t,locals:{user:S.user,setting:A,reset:t}})}S.voiceQueues={},S.polling=!0,t.global={search:""},S.pauses=[],S.license=f,S.currentUser=v.getCurrentUser(),S.unreadTotalMessages=0,S.unreadTotalGroupMessages=0,S.contcts=0,"agent"===S.currentUser.role&&(y=E(function(){_.some(S.voiceQueues,{dialMethod:"preview",dialActive:!0})&&S.license.dialer&&S.polling?(S.polling=!1,b.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(S.contacts=e.contacts)}).finally(function(){S.polling=!0})):S.contacts=0},14999)),S.setting=A,S.bodyEl=angular.element("body"),S.conf={realm:"asterisk",host:a.host(),protocol:a.protocol(),remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:S.license.webrtc,phoneBarExpires:S.currentUser.phoneBarExpires,phoneBarPrefixRequired:S.currentUser.phoneBarPrefixRequired},S.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},S.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"}],S.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"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"}},S.toggleSidenav=function(e){i(e).toggle()},S.logout=x,S.changeLanguage=function(e){if(!S.languages.hasOwnProperty(e.code)){return void l.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"})}S.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===n.current.name&&d.location.reload()},S.setUserStatus=function(e){S.userStatus=e},S.toggleHorizontalMobileMenu=function(){S.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},S.toggleMsNavigationFolded=function(){g.toggleFolded()},S.search=function(t){for(var e=[],n=g.getFlatNavigation(),a=o.defer(),i=0;i<n.length;i++)n[i].uisref&&e.push(n[i]);t&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(t)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},S.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))},S.openSettings=function(e){t.$broadcast("webrtc::settings")},S.changePassword=O,S.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},S.onUserUpdate=function(e){if(e.id===S.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==S.user.showWebBar){var t=c.confirm().title(r.instant("TOOLBAR.WARNING")+"!").textContent(r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")).ariaLabel(r.instant("TOOLBAR.WARNING")+"!").ok(r.instant("TOOLBAR.STAY_LOGGED")).cancel("Logout");c.show(t).then(function(){v.queueLogin()}).catch(function(e){x(!0)}).finally(function(){_.merge(S.user,e),v.updateCurrentUser(S.user)})}else x(!0),_.merge(S.user,e),v.updateCurrentUser(S.user);else _.merge(S.user,e),v.updateCurrentUser(S.user)},S.onUserCalled=function(e){2===S.currentUser.showWebBar&&"agent"===S.currentUser.role&&S.currentUser.name===e.membername&&p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+e.calleridnum+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})},S.pause=function(e){return b.user.pause({id:S.user.id,type:e||"DEFAULT PAUSE"}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},S.unpause=function(){return b.user.unpause({id:S.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},S.preview=function(t){return S.disable=!0,b.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:t,clickOutsideToClose:!0,locals:{preview:e},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){S.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t<e.data.errors.length;t+=1)p.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){S.disable=!1})},S.getLogo=function(){return S.setting.defaultHeaderWhiteLabel?"xCALLY Motion":S.setting.headerWhiteLabel},S.userIsNotPhonebar=function(){return"admin"===S.currentUser.role||"user"===S.currentUser.role||"agent"===S.currentUser.role&&0!==S.currentUser.showWebBar},S.onInternalMessageSave=function(e){e.ToId!==S.currentUser.id||e.ChatGroupId||(S.unreadTotalMessages+=1);e.ToId===S.currentUser.id&&e.FromId!==S.currentUser.id&&!e.read&&e.ChatGroupId&&S.unreadTotalGroupMessages++},S.onInternalMessageUpdate=function(e){e.ToId===S.currentUser.id&&e.read&&0<S.unreadTotalMessages&&!e.ChatGroupId&&(S.unreadTotalMessages-=1);e.ToId===S.currentUser.id&&e.read&&e.ChatGroupId&&0<S.unreadTotalGroupMessages&&S.unreadTotalGroupMessages--},S.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&C()},S.onVoiceQueue=function(e){C()},h.connect(),h.on("user:update",S.onUserUpdate),h.on("user:called",S.onUserCalled),h.on("chatInternalMessage:save",S.onInternalMessageSave),h.on("chatInternalMessage:update",S.onInternalMessageUpdate),h.on("userVoiceQueue:save",S.onUserVoiceQueue),h.on("voiceQueue:save",S.onVoiceQueue),h.on("userVoiceQueue:remove",S.onUserVoiceQueue),h.on("voiceQueue:remove",S.onVoiceQueue),h.on("voiceQueue:update",S.onVoiceQueue),function(){S.user=v.getCurrentUser(),S.conf.ha1=S.user.md5secret,S.conf.id=S.user.id,S.conf.name=S.user.name,S.conf.fullname=S.user.fullname,S.conf.internal=S.user.internal,S.conf.recording=S.user.phoneBarEnableRecording,S.conf.autoAnswer=S.user.phoneBarAutoAnswer,S.conf.enableSettings=S.user.phoneBarEnableSettings,S.conf.enableDtmfTone=S.user.phoneBarEnableDtmfTone,S.conf.autoAnswerDelay=S.user.phoneBarAutoAnswerDelay,S.userStatus=S.userStatusOptions[0];var e=u.get("motion.language");e&&S.languages.hasOwnProperty(e)?S.selectedLanguage=S.languages[e]:S.selectedLanguage=S.languages[r.preferredLanguage()];if(b.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){S.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),S.setting.securePassword)if(S.user.passwordResetAt){var t=moment(S.user.passwordResetAt).add(S.setting.passwordExpiresDays||90,"day");moment().isAfter(t)?O(null,!0):moment().add(15,"day").isAfter(t)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(t.diff(moment(),"days",!0)),timeout:2e4})}else O(null,!0)}(),C(),b.chatInternalMessage.get({fields:"FromId",ToId:S.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){S.unreadTotalMessages=e.rows.length}),e.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),y&&(E.cancel(y),y=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var t=new Object,n=e.lastIndexOf("?");if(0<n)for(var a=e.substring(n+1).split("&"),i=0;i<a.length;i++)0<(n=a[i].indexOf("="))&&(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/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT: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.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,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:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,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,a="number"==typeof window.innerWidth?(n=window.innerHeight,window.innerWidth):(n=document.documentElement.clientHeight||document.body.clientHeight,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]}};function mxDictionary(){this.clear()}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}};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}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(l,d,c){var m=0,u=function(){for(var e=!1,t=0;t<d.length;t++){var n=d[t];if(n instanceof mxGeometryChange||n instanceof mxTerminalChange||n instanceof mxValueChange||n instanceof mxChildChange||n instanceof mxStyleChange){var a=l.getView().getState(n.cell||n.child,!1);if(null!=a)if(e=!0,n.constructor!=mxGeometryChange||l.model.isEdge(n.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,o=(n.geometry.x-n.previous.x)*i,s=(n.geometry.y-n.previous.y)*i,r=(n.geometry.width-n.previous.width)*i;i=(n.geometry.height-n.previous.height)*i;0==m?(a.x-=o,a.y-=s,a.width-=r,a.height-=i):(a.x+=o/10,a.y+=s/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,n.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},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: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: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){var t=null;if(null!=e)if(null!=e.name)t=e.name;else{for(e=e.toString(),t=9;" "==e.charAt(t);)t++;var n=e.indexOf("(",t);t=e.substring(t,n)}return t},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:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var t=mxUtils.createXmlDocument();return t.async="false",t.loadXML(e),t}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection: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=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==t||t)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,t){var n="";return null!=e&&(n=null==(n=e.xml)?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.replace(/\n/g,t||"
")},getTextContent:function(e){var t="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),t=e.nodeValue||""),t},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";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("")}: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=(n=null!=n?n:document).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);o<t+n&&(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))<t+n&&(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 e=(t=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).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 null==(e=null!=e?e[t]:null)?e=n:e==mxConstants.NONE&&(e=null),e},clone:function(e,t,n){n=null!=n&&n;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==t||mxUtils.indexOf(t,i)<0)&&(a[i]=n||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},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])n=n+(t+" => [")+mxUtils.getFunctionName(e[t].constructor)+"]\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 h;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+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(o=1<(v=(c=i*i)/(g=n*n)+(p=d*d)/(A=a*a))?(n*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,o===s&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*n*d/a)-h*(p=-1*o*a*i/n)+r/2,l=h*c+m*p+l/2,o=0<=(g=Math.atan2((d-p)/a,(i-c)/n)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/n)-Math.atan2((d-p)/a,(i-c)/n))?g:2*Math.PI+g,0==s&&0<i?i-=2*Math.PI:0!=s&&i<0&&(i+=2*Math.PI),s=2*i/Math.PI,i/=s=Math.ceil(s<0?-1*s:s),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*n,m*=a,n*=h,a*=h;for(var u=Math.cos(o),p=-d*(c*(f=Math.sin(o))+a*u),g=-d*(n*f-m*u),v=A=0,h=[],b=0;b<s;++b){o+=i;var f,A=c*(u=Math.cos(o))-a*(f=Math.sin(o))+r,E=(v=n*u+m*f+l,-d*(c*f+a*u));u=-d*(n*f-m*u);h[f=6*b]=Number(p+e),h[f+1]=Number(g+t),h[f+2]=Number(A-E+e),h[f+3]=Number(v-u+t),h[f+4]=Number(A+e),h[f+5]=Number(v+t),p=A+E,g=v+u}return h},getBoundingBox:function(e,t){var n=null;if(null!=e&&null!=t&&0!=t){var a=mxUtils.toRadians(t),i=(n=Math.cos(a),Math.sin(a)),o=new mxPoint(e.x+e.width/2,e.y+e.height/2),s=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);s=mxUtils.getRotatedPoint(s,n,i,o),a=mxUtils.getRotatedPoint(a,n,i,o),r=mxUtils.getRotatedPoint(r,n,i,o),l=mxUtils.getRotatedPoint(l,n,i,o);(n=new mxRectangle(s.x,s.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),n.add(new mxRectangle(r.x,r.y,0,0)),n.add(new mxRectangle(l.x,l.y,0,0))}return n},getRotatedPoint:function(e,t,n,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*t-(e=e.y-a.y)*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){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(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),s<r&&(r=s),e<i&&(e=i),r<e)return!1;i=t.y,s=n.y;var l=n.x-t.x;return 1e-7<Math.abs(l)&&(i=(n=(n.y-t.y)/l)*e+(t=t.y-n*t.x),s=n*r+t),s<i&&(t=s,s=i,i=t),o<s&&(s=o),i<a&&(i=a),!(s<i)},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(i<=0||o<=0||n<=0||a<=0)return!1;var s=e.x,r=e.y,l=t.x,d=t.y;o+=d,n+=s,a+=r;return((i=i+l)<l||s<i)&&(o<d||r<o)&&(n<s||l<n)&&(a<r||d<a)},intersectsHotspot:function(e,t,n,a,i,o){if(i=null!=i?i:0,o=null!=o?o:0,0<(a=null!=a?a:1)){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()),t=(e=mxUtils.getRotatedPoint(new mxPoint(t,n),i,o,s)).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)).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&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!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&&s<=1&&0<=i&&i<=1?new mxPoint(e+s*(n-e),t+s*(a-t)):null},ptSegDistSq:function(e,t,n,a,i,o){return n=(i-=e)*(n-=e)+(o-=t)*(a-=t)<=0?0:(e=(i=n-i)*n+(o=a-o)*a)<=0?0:e*e/(n*n+a*a),(i=i*i+o*o-n)<0&&(i=0),i},relativeCcw:function(e,t,n,a,i,o){return 0==(e=(i-=e)*(a-=t)-(o-=t)*(n-=e))&&(0<(e=i*n+o*a)&&((e=(i-n)*n+(o-a)*a)<0&&(e=0))),e<0?-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||document.documentMode<9)?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,i){i=null==i||i;var o=new mxDictionary;return e.sort(function(e,t){var n=o.get(e);null==n&&(n=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),o.put(e,n));var a=o.get(t);return null==a&&(a=mxCellPath.create(t).split(mxCellPath.PATH_SEPARATOR),o.put(t,a)),0==(n=mxCellPath.compare(n,a))?0:0<n==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)e[n].indexOf("=")<0&&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 mxUtils.indexOfStylename(e,t)<0&&(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+"=");i<0?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+(i<n?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(i<0)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=o<0?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(e<1)return 1;a=null!=a?a:0;var i=(n=null!=n?n:mxConstants.PAGE_FORMAT_A4_PORTRAIT).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,n<1&&e<a){var s=a/e;a=e,n/=s}for(a<1&&e<n&&(s=n/e,n=e,a/=s),s=Math.ceil(n)*Math.ceil(a),o=0;e<s;){s=Math.floor(n)/n;var r=Math.floor(a)/a;if(1==s&&(s=Math.floor(n-1)/n),1==r&&(r=Math.floor(a-1)/a),n*=s=r<s?s:r,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," "),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()):((a=(n=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),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,i,a,o,s,r,l,d){return(e=new mxDragSource(e,n)).dragOffset=new mxPoint(null!=a?a: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!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var t=i.cloneNode(!0),n=parseInt(t.style.width),a=parseInt(t.style.height);return t.style.width=Math.round(n*e.view.scale)+"px",t.style.height=Math.round(a*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"};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)}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)&&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 a=function(e,t,n){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:t,f:n})};return window.addEventListener?function(e,t,n){e.addEventListener(t,n,!1),a(e,t,n)}:function(e,t,n){e.attachEvent("on"+t,n),a(e,t,n)}}(),removeListener:function(){var a=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(e,t,n){e.removeEventListener(t,n,!1),a(e,t,n)}:function(e,t,n){e.detachEvent("on"+t,n),a(e,t,n)}}(),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,n,t,a,i,o,s){var r=function(e){return"function"==typeof t?t(e):t};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||n.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||n.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=o?o(e):mxEvent.isConsumed(e)||n.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 t=r(e);n.dblClick(e,null!=t?t.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(n){if(null!=n){var e=function(e){null==e&&(e=window.event);var t=0;0!=(t=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&n(e,0<t)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?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||document.documentMode<9)?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)&&(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"};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}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=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++){if(0<(s=i[o].indexOf("="))){var s,r=i[o].substring(0,s),l=i[o].substring(s+1);(s=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),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)}}};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(t,e,n,a){this.model=t,this.urlInit=e,this.urlPoll=n,this.urlNotify=a,null!=t&&(this.codec=new mxCodec,this.codec.lookup=function(e){return t.getCell(e)}),t.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()}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){navigator.userAgent.indexOf("Presto/2.5")<0&&(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).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 a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),o=this.div.offsetWidth,s=this.div.offsetHeight,t=mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e)-a,n=mxEvent.getClientY(e)-i;this.setSize(o+t,s+n),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),n=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,t,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,t,n),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 n=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),n)n=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{n=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var t=this.getMinimumSize();0<t.height&&(mxClient.IS_IE||(this.div.style.height=t.height+"px"),this.table.style.height=t.height+"px"),0<t.width&&(mxClient.IS_IE||(this.div.style.width=t.width+"px"),this.table.style.width=t.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},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 n=!1,a=null,i=null,o=null,s=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(n)n=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=o,this.div.style.width=s,"auto"!=(t=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=o,this.table.style.width=s,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(n=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),o=this.table.style.height,s=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 t=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=t.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),o=this.getX(),s=this.getY(),t=mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e)-a,n=mxEvent.getClientY(e)-i;this.setLocation(o+t,s+n),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),n=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,t,n),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,t,n),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);a=document.createElement("td");var 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");a=this.isGridEnabled()&&e.isGridEnabledEvent(t);var o=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(t))o=new mxRectangle(0,0,o=parseInt(this.previewElement.style.width),s=parseInt(this.previewElement.style.height)),n=new mxPoint(i,n),n=this.currentGuide.move(o,n,a),o=!1,i=n.x,n=n.y;else if(a){a=e.view.scale;var 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),null!=(e=(this.selectedMode=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="
",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(n,a,t){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=t?t(e):this.stop(e)});mxUtils.get(n,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",n,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var t=e.getDocumentElement();null==t?i("Invalid response: "+e.getText()):this.receive(t)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},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 n=!0,a=null,i=null;return{isEnabled:function(){return n},setEnabled:function(e){n=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=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(n&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var t=(a=i+location.pathname).lastIndexOf("/");0<t&&(a=a.substring(0,t+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(o){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()})},o.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var s=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(o.container),this.scrollLeft=o.container.scrollLeft,this.scrollTop=o.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-o.container.scrollLeft-Math.ceil(this.dx),t=-o.container.scrollTop-Math.ceil(this.dy);o.panGraph(e,t),o.panDx=this.scrollLeft-o.container.scrollLeft,o.panDy=this.scrollTop-o.container.scrollTop,o.fireEvent(new mxEventObject(mxEvent.PAN))}else o.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=o.view.translate.x,this.t0y=o.view.translate.y,this.active=!0},this.panTo=function(e,t,n,a){this.active||this.start(),this.scrollLeft=o.container.scrollLeft,this.scrollTop=o.container.scrollTop,a=null!=a?a:0;var i=o.container;this.dx=e+(null!=n?n:0)-i.scrollLeft-i.clientWidth,this.dx<0&&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=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=t+a-i.scrollTop-i.clientHeight,this.dy<0&&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=t-i.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=s())):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)o.panDx=0,o.panDy=0,o.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=o.panDx,t=o.panDy;0==e&&0==t||(o.panGraph(0,0),o.view.setTranslate(this.t0x+e/o.view.scale,this.t0y+t/o.view.scale))}},this.destroy=function(){o.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=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()))}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")).src=t,r.appendChild(i)):null!=i&&((t=document.createElement("div")).className=i,r.appendChild(t)),s.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==o||o?"":" disabled"),mxUtils.write(r,e),r.align="left",s.appendChild(r),(e=document.createElement("td")).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=new mxPoint(-(t=this.graph.view.getTranslate()).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,n){null!=e.overlays&&e.overlays.visit(function(e,t){t instanceof mxShape&&t.paint(n)})},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)==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=n<1?";stop-opacity:"+n:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+n),o.appendChild(i),n=a<1?";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;e.alpha<1&&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()),e.alpha<1&&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"),l.alpha<1&&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")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),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"),u.alpha<1&&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 v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),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,u.alpha<1&&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+")",e=(t=this.rotatePoint((e+n/2)*u.scale,(t+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).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){var 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),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=t+m-1,s==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:s==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+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,v,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;null!=(c=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),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,new mxRectangle(c.x,c.y+(t?0:1),c.width,c.height+(t?1:0))):((c=document.createElement("div")).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),new mxRectangle((n+1)*d.scale,(a+2)*d.scale,i*d.scale,(o+1)*d.scale)))&&((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};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}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 e.alpha<1&&(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",e.alpha<1&&(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),s=(i=Math.sin(i),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;s+=2/3*((t=(t+i.dy)*i.scale)-s);var 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)).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)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).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)).src=i,s&&r?l.style.rotation="180":s?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(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")).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).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&&(e=(t=this.rotatePoint(e,t,u.rotation,u.rotationCx,u.rotationCy)).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=(v=mxUtils.getAlignmentAsPoint(o,s)).x,v=v.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")).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)),(n%=2*Math.PI)<0&&(n+=2*Math.PI),(n%=Math.PI)>Math.PI/2&&(n=Math.PI-n),s=Math.cos(n);var h=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)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*s+n*-h)/2-m*n*(g+.5)+r*a*(v+.5),d=(n-n*s+a*-h)/2+r*n*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).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,this.state.alpha<1&&(o.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",o.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(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&&a<p&&(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*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}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&&(s=(n.style.rotation=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)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,t){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var n=this.graph.getView().translate,i=this.graph.getView().scale,o=e.x,s=e.y,r=!1,l=!1,d=b=this.getGuideTolerance(),c=b;(b=a.clone()).x+=e.x,b.y+=e.y;var m=b.x,u=b.x+b.width,p=b.getCenterX(),g=b.y,v=b.y+b.height,h=b.getCenterY();e=function(e){e+=this.graph.panDx;var t=!1;if(Math.abs(e-p)<d?(o=e-a.getCenterX(),d=Math.abs(e-p),t=!0):Math.abs(e-m)<d?(o=e-a.x,d=Math.abs(e-m),t=!0):Math.abs(e-u)<d&&(o=e-a.x-a.width,d=Math.abs(e-u),t=!0),t){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 n=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,n.scrollHeight-3-this.graph.panDy)]}r=r||t};for(var b=function(e){e+=this.graph.panDy;var t=!1;if(Math.abs(e-h)<c?(s=e-a.getCenterY(),c=Math.abs(e-h),t=!0):Math.abs(e-g)<c?(s=e-a.y,c=Math.abs(e-g),t=!0):Math.abs(e-v)<c&&(s=e-a.y-a.height,c=Math.abs(e-v),t=!0),t){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 n=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(n.scrollWidth-3-this.graph.panDx,e)]}l=l||t},f=0;f<this.states.length;f++){var A=this.states[f];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(b.call(this,A.getCenterY()),b.call(this,A.y),b.call(this,A.y+A.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",t&&(r||(t=a.x-(this.graph.snap(a.x/i-n.x)+n.x)*i,o=this.graph.snap(o/i)*i-t),l||(n=a.y-(this.graph.snap(a.y/i-n.y)+n.y)*i,s=this.graph.snap(s/i)*i-n)),e=new mxPoint(o,s)}return e},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)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(t=this.getSvgScreenOffset())?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()){n=n+(s=(i-o)/2),a=a-s;var 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 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,v,h,b,f,A){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=v,this.wrap=null!=h&&h,this.clipped=null!=b&&b,this.overflow=null!=f?f:"visible",this.labelPadding=null!=A?A: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&&(0==(s.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,s)<0&&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(){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(this.opacity<100&&(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,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=o.x-c/2+n*r)+c),u=(o=o.y-a/2+n*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,b=v-3*a;e.begin(),e.moveTo(i,o),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(s.x-n*r,s.y-n*l),e.lineTo(h,b),e.lineTo(h+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,a=null!=this.offsetWidth&&null!=this.offsetHeight?(n=this.wrap?this.bounds.width:this.offsetWidth*this.scale,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.offsetHeight*this.scale):(n=this.wrap?this.bounds.width:e.offsetWidth*this.scale,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=this.opacity<1?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{var 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);s*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),o=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(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{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var 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=this.opacity<100?"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 new mxRectangle(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,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 new mxRectangle(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,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],o=(a=(t=n?t[0]:t[a-1]).x-i.x,t.y-i.y),s=(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),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 new mxRectangle(t,n,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},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 3*n*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},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 null!=(t=null!=(n=this.graph.view.getState(t))?n.style:this.graph.getCellStyle(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]&&(null==(a=n(i[o]=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),o=(i=this.getParentOffset(i),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&&(t-=(s=this.getParentOffset(s)).x,n-=s.y)),i.x==t&&i.y==n||((i=i.clone()).x=t,i.y=n,a.setGeometry(e,i))}return o},mxGraphLayout.prototype.getVertexBounds=function(e){var t=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var n=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/n,o=Math.max(r.y-a.y,0)/n,s=Math.max(a.x+a.width-(r.x+r.width),0)/n,r=Math.max(a.y+a.height-(r.y+r.height),0)/n;t=new mxRectangle(t.x-i,t.y-o,t.width+i+s,t.height+o+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),t=t.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),t.x+=e.x,t.y+=e.y)),new mxRectangle(t.x,t.y,t.width,t.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()).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&&t<n)break;r=n}o=i.getIndex(e),o=Math.max(0,s-(o<s?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);i=i-(2*this.spacing+2*this.border);var 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{l=0,r=null;for(var 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){var i=0,o=0,s=n.getChildCount(a);for(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&&t<r)break;o=r}}t=a.getIndex(e),t=Math.max(0,i-(t<i?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++){var r=n.getChildAt(e,s);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(o=i.length)){var l=this.border,d=this.border,c=(c=t?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=t?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(o-1)*this.spacing,0<(a=t?(a.width-l-e)/o:(a.height-d-e)/o)){n.beginUpdate();try{for(s=0;s<o;s++){r=i[s];var m=n.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,t?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),n.setGeometry(r,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)!=(r=this.isHorizontal()?this.horizontalLayout(i,o,s):this.verticalLayout(i,null,o,s))){var l=a=0;r.x<0&&(a=Math.abs(o-r.x)),r.y<0&&(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;i=this.createNode(e),a=this.graph.getModel();var 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++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=s.getState(l))?d.getVisibleTerminal(this.invert):s.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,t,n))&&null!=a.getGeometry(l)&&(null==o?i.child=d:o.next=d,o=d)}}}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;var a=n.width+t,i=a;for(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;return i<=e||e+n<=0?0:0<(s=0<i*a-n*o?e<0?e*a/n-t:0<e?e*o/i-t:-t:i<e+n?o-(t+(i-e)*a/n):e+n<i?(n+e)*o/i-(t+a):o-(t+a))?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++;var 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);o=this.minEdgeJetty-this.prefVertEdgeOff;for(var s=0,r=this.getVertexBounds(n),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(n,d,!1),[]),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:a/2<l&&(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=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var s=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(s);this.indices[r]=a;var l=this.getVertexBounds(s),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),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 p=this.graph.getConnections(this.vertexArray[a],e);n=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<n.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(n[d]);var g=this.indices[r];this.neighbours[a][d]=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!=(l=this.getVertexBounds(s))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(s,m,u),n=null==n?m:Math.min(n,m),e=null==e?u:Math.min(e,u)));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]){(n=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(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]){(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])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,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),a=a/o*(s=this.forceConstantSquared/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+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var t=e[0];if((s=(n=this.graph.getModel()).getGeometry(n.getTerminal(t,!0)))==(o=n.getGeometry(n.getTerminal(t,!1)))){t=s.x+s.width+this.spacing;for(var 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){t=s.x+s.width/2,n=s.y+s.height/2,a=o.x+o.width/2-t;var i=o.y+o.height/2-n,o=Math.sqrt(a*a+i*i),s=i*this.spacing/o;for(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))&&(null!=(o=o.clone()).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){l=new mxGraphHierarchyEdge(r);for(var 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],mxUtils.indexOf(n[i].connectsAsSource,l)<0&&n[i].connectsAsSource.push(l)}}}n[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var t=0;t<this.roots.length;t++){var n=mxCellPath.create(this.roots[t]);null!=(n=this.vertexMapper[n])&&e.push(n)}for(var a in this.vertexMapper)(n=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var o,s;o=(n=e[0]).connectsAsTarget,s=n.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(t=0;t<o.length;t++){var d=o[t];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(n.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=s)for(t=0;t<s.length;t++)(d=s[t]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(t=e.shift(),e.push(n),t==n&&1==e.length)break}for(a in this.vertexMapper)(n=this.vertexMapper[a]).temp[0]-=this.maxRank;for(t=0;t<i.length;t++)for(e=0,o=(n=i[t]).connectsAsSource,a=0;a<o.length;a++)d=(d=o[a]).target,n.temp[0]=Math.max(e,d.temp[0]+1),e=n.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var o=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)o[e]=[],this.ranks[e]=o[e];var t=null;if(null!=this.roots){var n=this.roots;for(t=[],e=0;e<n.length;e++){var a=mxCellPath.create(n[e]);t[e]=this.vertexMapper[a]}}this.visit(function(e,t,n,a,i){if(0==i&&t.maxRank<0&&t.minRank<0&&(o[t.temp[0]].push(t),t.maxRank=t.temp[0],t.minRank=t.temp[0],t.temp[0]=o[t.maxRank].length-1),null!=e&&null!=n&&1<e.maxRank-t.maxRank)for(n.maxRank=e.maxRank,n.minRank=t.maxRank,n.temp=[],n.x=[],n.y=[],e=n.minRank+1;e<n.maxRank;e++)o[e].push(n),n.setGeneralPurposeVariable(e,o[e].length-1)},t,!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(a(e,i[s]=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),null==i[s=mxCellPath.create(t.cell)])for(a(e,i[s]=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(var t=0;t<e.ranks.length;t++)this.nestedBestRanks[t]=e.ranks[t].slice();var n=0,a=this.calculateCrossings(e);for(t=0;t<this.maxIterations&&n<this.maxNoImprovementIterations;t++){this.weightedMedian(t,e),this.transpose(t,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=n=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(n++,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==a)break}for(n=[],a=[],t=0;t<e.maxRank+1;t++)a[t]=[],n[t]=a[t];for(t=0;t<this.nestedBestRanks.length;t++)for(i=0;i<this.nestedBestRanks[t].length;i++)a[t].push(this.nestedBestRanks[t][i]);e.ranks=n},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=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);s[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<o;c++)if(201207==s[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==s[a][l]&&n++;for(a=0;a<r;a++)for(l=c+1;l<o;l++)201207==s[a][l]&&n++}return n/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,t){for(var n=!0,a=0;n&&a++<10;)for(var i=1==e%2&&1==a%2,o=(n=!1,0);o<t.ranks.length;o++){for(var s=t.ranks[o],r=[],l=0;l<s.length;l++){(f=(b=s[l]).getGeneralPurposeVariable(o))<0&&(f=l),r[f]=b}var d=f=b=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<s.length-1;l++){if(0==l){for(var b=(v=r[l]).getNextLayerConnectedCells(o),f=v.getPreviousLayerConnectedCells(o),A=(m=[],u=[],0);A<b.length;A++)m[A]=b[A].getGeneralPurposeVariable(o+1);for(A=0;A<f.length;A++)u[A]=f[A].getGeneralPurposeVariable(o-1)}else b=d,f=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(o),c=h.getPreviousLayerConnectedCells(o),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(o+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(o-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(o),v.setGeneralPurposeVariable(o,h.getGeneralPurposeVariable(o)),h.setGeneralPurposeVariable(o,d),d=b,c=f,p=m,g=u,h=v,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,r,l=this.nestedBestRanks[e][o],d=new MedianCellSorter;d.cell=l,r=t?e+1:e-1,null!=(s=t?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=s.length?(d.medianValue=this.medianValue(s,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),o=0;o<n;o++)null==i[o]&&(l=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:(o=n[(i=a/2)-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(),o={},s=mxUtils.clone(t.vertexMapper,null,!0),n=null;if(null!=t.roots){var a=t.roots;n=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);n[e]=t.vertexMapper[i]}}if(t.visit(function(e,t,n,a,i){t.isAncestor(e)&&(n.invert(),mxUtils.remove(n,e.connectsAsSource),e.connectsAsTarget.push(n),mxUtils.remove(n,t.connectsAsTarget),t.connectsAsSource.push(n)),e=mxCellPath.create(t.cell),o[e]=t,delete s[e]},n,!0,null),n=null,0<s.lenth&&(n=mxUtils.clone(s,null,!0)),e=mxUtils.clone(o,null,!0),t.visit(function(e,t,n,a,i){t.isAncestor(e)&&(n.invert(),mxUtils.remove(n,e.connectsAsSource),t.connectsAsSource.push(n),e.connectsAsTarget.push(n),mxUtils.remove(n,t.connectsAsTarget)),e=mxCellPath.create(t.cell),o[e]=t,delete s[e]},s,!0,e),a=this.layout.getGraph(),null!=n&&0<n.length)for(t=t.roots,e=0;e<n.length;e++)i=n[e].cell,0==a.getIncomingEdges(i).length&&t.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};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)}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++){var s=a[i][o];(r=new WeightedCellSorter(s,i)).rankIndex=o,r.visited=!0,t.push(r),n[s=mxCellPath.create(s.getCoreCell())]=r}}for(e=10*t.length,o=0;0<t.length&&o<=e;){i=(r=t.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(s=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=s.length,u=c.length,p=this.medianXValue(s,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),b=h;if(0<v&&(b=(p*m+g*u)/v),m=!1,b<h-1?0==d?(i.setGeneralPurposeVariable(l,b),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<b?(i.setGeneralPurposeVariable(l,b),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<b&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,b),m=!0):b<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,b),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<s.length;i++)l=s[i],null!=(l=n[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,t.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=n[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,t.push(l))}r.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=0<(r=l.length)?this.medianXValue(l,n):s.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[o].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(t[c].getCoreCell())])){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(null!=(m=i[m=mxCellPath.create(t[c].getCoreCell())])){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++)}l<=r&&r<=u?s.setGeneralPurposeVariable(e,r):r<l?(s.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(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)]:(n[(a=e.length/2)-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(!(i.maxRank-i.minRank-1<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){s=o=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(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--)m==(u=i.getX(l-1))?(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(r<s||r<o)if(o<=s)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(s<o)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(i<0)return!1;if(a<(o=t.getGeneralPurposeVariable(n))){if(0==i)return!0;if(!((n=(n=(e=e[i-1]).getGeneralPurposeVariable(n))+e.width/2+this.intraCellSpacing+t.width/2)<=a))return!1}else if(o<a){if(i==e.length-1)return!0;if(!(a<=(n=(n=(e=e[i+1]).getGeneralPurposeVariable(n))-e.width/2-this.intraCellSpacing-t.width/2)))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){var s=o[a];if(this.setVertexLocation(s),this.layout.resizeParent){s=e.model.getParent(s.cell);var r=mxCellPath.create(s);null==n[r]&&(n[r]=s)}}for(a in this.layout.resizeParent&&null!=n&&this.adjustParents(n),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(t),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;r<2;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);var m=(c=i.x[0]-i.width/2)+i.width,u=o=0;for(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 v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(o+=p[v].edges.length,u++,s.push(p[v]))}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,v=mxCellPath.create(s[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<o/2?m+=this.prefVertEdgeOff:o/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+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]),s=(o=this.jettyPositions[o],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,v=p?this.rankTopY[a]:this.rankBottomY[n],h=o[4*i+1+g];p&&(h=-h),v+=h,g=o[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?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,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+t;var b=(this.rankTopY[c]+this.rankBottomY[c+1])/2,f=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=b;b=f,f=A}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+=v}null!=o&&(g=p?2:0,v=p?this.rankBottomY[n]:this.rankTopY[a],h=o[4*i+3-g],p&&(h=-h),v-=h,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=null!=(g=r.view.getState(p))?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,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,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),s<(l=d-c)&&(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&&(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;){var s=this.findRoots(e,a);for(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]);for(i in o=!0,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++){for(i in a=[],r=t[o])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){var n=null;if(null!=e){n=[];for(var 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){var n=[];t=t||this.getRoot(),(null==e||e(t))&&n.push(t);for(var a=this.getChildCount(t),i=0;i<a;i++){var o=this.getChildAt(t,i);n=n.concat(this.filterDescendants(e,o))}return n},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())if((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){n=t;var i=a,o=(a=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);(l==e&&d==t||!n&&(d==e&&l==t))&&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(this.updateLevel--,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={};for(var i in this.mergeChildrenImpl(e,t,n,a),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||mxUtils.indexOf(this.edges,e)<0)&&(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,n=(e=n).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]){a=0==e[i].length||0==t[i].length?e[i]==t[i]?0:e[i]>t[i]?1:-1:(n=parseInt(e[i]))==(i=parseInt(t[i]))?0:i<n?1:-1;break}return 0==a&&((n=e.length)!=(i=t.length)&&(a=i<n?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||r-d<o?(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(o<=n&&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(i<=t&&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 d-=(i=m/c)*l,l=i*(s=(-(e=-2*l*(o=s*s*i*i+r*r))+(r=Math.sqrt(e*e-4*o*(s*s*i*i*l*l+r*r*l*l-s*s*r*r))))/(2*o))+d,d=i*(r=(-e-r)/(2*o))+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,o=i<t?(n=s,l):(n=r,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 new mxPoint(s,n<r?i:i+e);if(r==n)return new mxPoint(l<s?t:t+o,r);var d=s,c=r;return a&&(t<=l&&l<=t+o?d=l:i<=n&&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,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=t==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?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),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)))&&(v=new mxPoint(l,d)),v}};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(){}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(var g=0;g<b.length;g++)e(b[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*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,A=g*m+b+1;(n=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-f,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(n,null!=v||g<u-1||b<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.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,"svg"==(t=n.nodeName.toLowerCase())?(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){var n=t;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(n=null!=n&&";"!=e.charAt(0)?mxUtils.clone(n):{},0);i<a.length;i++){var o=(s=a[i]).indexOf("=");if(0<=o){var s,r=s.substring(0,o);(s=s.substring(o+1))==mxConstants.NONE?delete n[r]:mxUtils.isNumeric(s)?n[r]=parseFloat(s):n[r]=s}else if(null!=(s=this.styles[s]))for(r in s)n[r]=s[r]}return n},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 null!=(e=this.getVisibleTerminalState(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);if(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;else if(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+=" "),a=mxUtils.htmlEntities(a,!1),n?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),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)!=n.text&&this.isHideLabel(n)&&(this.textNode=n.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(n.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,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))==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))==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=(n=e.view).graph.getModel();if(n.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(n.graph.keepEdgesInBackground){var n,a=e.shape.node,i=a.parentNode;t=t.getParent(e.cell);null!=(i=null!=(n=n.getState(t))&&null!=n.shape&&null!=n.shape.node?n.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)!=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(n,e){var a=n.view.graph;if(a.getModel().isEdge(n.cell),0<n.style[mxConstants.STYLE_FONTSIZE]||null==n.style[mxConstants.STYLE_FONTSIZE]){var t=a.isHtmlLabel(n.cell)||null!=e&&mxUtils.isNode(e);n.text=new this.defaultTextShape(e,new mxRectangle,n.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(n),n.style[mxConstants.STYLE_FONTCOLOR],n.style[mxConstants.STYLE_FONTFAMILY],n.style[mxConstants.STYLE_FONTSIZE],n.style[mxConstants.STYLE_FONTSTYLE],n.style[mxConstants.STYLE_SPACING],n.style[mxConstants.STYLE_SPACING_TOP],n.style[mxConstants.STYLE_SPACING_RIGHT],n.style[mxConstants.STYLE_SPACING_BOTTOM],n.style[mxConstants.STYLE_SPACING_LEFT],n.style[mxConstants.STYLE_HORIZONTAL],n.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],n.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(n.cell)&&a.isHtmlLabel(n.cell),a.isLabelClipped(n.cell),n.style[mxConstants.STYLE_OVERFLOW],n.style[mxConstants.STYLE_LABEL_PADDING]),n.text.opacity=mxUtils.getValue(n.style,mxConstants.STYLE_TEXT_OPACITY,100),n.text.dialect=t?mxConstants.DIALECT_STRICTHTML:n.view.graph.dialect,n.text.state=n,this.initializeLabel(n);var i=!1,o=function(e){var t=n;return(mxClient.IS_TOUCH||i)&&(t=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,t,e),t=a.view.getState(a.getCellAt(e.x,e.y))),t};mxEvent.addGestureListeners(n.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,o(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,o(e))),i=!1)})),mxEvent.addListener(n.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(n,e)&&(a.dblClick(e,n.cell),mxEvent.consume(e))}))}},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){n=new mxDictionary;for(var 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)).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(t,n,e){var a=t.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),n.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",t.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,t))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){n.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",t.cell))})},mxCellRenderer.prototype.createControl=function(n){var a=n.view.graph,e=a.getFoldingImage(n);if(a.foldingEnabled&&null!=e){if(null==n.control){var t=new mxRectangle(0,0,e.width,e.height);n.control=new mxImageShape(t,e.src),n.control.preserveImageAspect=!1,n.control.dialect=a.dialect,this.initControl(n,n.control,!0,function(e){if(a.isEnabled()){var t=!a.isCellCollapsed(n.cell);a.foldCells(t,!1,[n.cell]),mxEvent.consume(e)}})}}else null!=n.control&&(n.control.destroy(),n.control=null)},mxCellRenderer.prototype.initControl=function(t,e,n,a){var i=t.view.graph;return i.isHtmlLabel(t.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(t.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),n&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,t))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,t){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,t){return!0},mxCellRenderer.prototype.installListeners=function(n){var a=n.view.graph,t=function(e){var t=n;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(t=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,t,e),t=a.view.getState(a.getCellAt(e.x,e.y))),t},i=!1;mxEvent.addListener(n.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(n.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(n,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:n)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(n,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:t(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(n,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:t(e))):i&&mxEvent.consume(e)}));var o=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(n.shape.node,o,mxUtils.bind(this,function(e){i=!1,"gestureend"==o?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(n,e),mxEvent.consume(e))):this.isShapeEvent(n,e)&&(a.dblClick(e,null!=n.shape&&mxEvent.getSource(e)==n.shape.content?null:n.cell),mxEvent.consume(e))}))},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)&&(0<(t=t.getStartSize(e.cell)).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()){var 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]){n=e.view.scale;var 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(o,s){if(this.createCellOverlays(o),null!=o.overlays){var r=mxUtils.mod(mxUtils.getValue(o.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);o.overlays.visit(function(e,t){var n=t.overlay.getBounds(o);if(!o.view.graph.getModel().isEdge(o.cell)&&null!=o.shape&&0!=r){var a=n.getCenterX(),i=n.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(o.getCenterX(),o.getCenterY()))).x,i=i.y;n.x=Math.round(a-n.width/2),n.y=Math.round(i-n.height/2)}!s&&null!=t.bounds&&t.scale==o.view.scale&&t.bounds.equals(n)||(t.bounds=n,t.scale=o.view.scale,t.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)return null;var t=e.control.scale,n=e.control.bounds.width/t,a=(t=e.control.bounds.height/t,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),i=(o=mxUtils.getRotatedPoint(new mxPoint(i,o),s,r,new mxPoint(e.getCenterX(),e.getCenterY()))).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))},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).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)).relative?d=r.x<=.5:null!=n&&(d=n.x+n.width<t.x)}r=!0,null!=l?((n=new mxCellState).x=l.x,n.y=l.y):null!=n&&((c=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=s.getCellGeometry(n.cell)).relative?r=e.x<=.5: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){var o=(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 s=0,r=0,l=0,d=0;o=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,o.gridSize)*n.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(s=n.getRoutingCenterX(t),r=o):(l=n.getRoutingCenterY(t),d=o),null==a||a.x<t.x||a.x>t.x+t.width?null!=a?(s=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=t.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=t.y+t.height+2*r:s=e==mxConstants.DIRECTION_EAST?t.x-2*d:t.x+t.width+2*d:null!=a&&(s=n.getRoutingCenterX(t),r=Math.max(Math.abs(s-a.x),d),l=a.y,d=0),i.push(new mxPoint(s-r,l-d)),i.push(new mxPoint(s+r,l+d))}},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),c=(r=Math.min(t.y,n.y),Math.max(t.y+t.height,n.y+n.height));s=(o=e.view.transformControlPoint(e,o)).y<r||o.y>c,r=o.x<l||o.x>d}else(s=(l=Math.max(t.x,n.x))==(d=Math.min(t.x+t.width,n.x+n.width)))||(r=(r=Math.max(t.y,n.y))==(c=Math.min(t.y+t.height,n.y+n.height)));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).x=s.x,t.y=s.y),null!=r&&((n=new mxCellState).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).x=s.x,t.y=s.y),null!=r&&((n=new mxCellState).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){r=e.view.transformControlPoint(e,a[0]);for(var c=t,m=o[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=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=h||null==m&&c;if(null!=m&&!b&&!h&&(f||c)){s=!f;break}if(p||u){s=u,1==v&&(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,v=0;v<a.length;v++)s=!s,r=e.view.transformControlPoint(e,a[v]),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;s=null!=t?t.y:r.y;var 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,v=(o=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=t&&(v[0]=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=n&&(v[1]=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,s,d,c],[m,u,p,g]],d=0;d<2;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),d<(s=0)?s=c<0?2:1:c<=0&&(s=3,0==d&&(s=2)),(c=null)!=t&&(c=r),t=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(t[d][0]=(c.x-a[d][0])/a[d][2],t[d][0]<.01?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],t[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<t[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=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]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*o<m&&2*o<c&&(0<(r[0]&v[0])&&0<(l[1]&v[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]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*o<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*o<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),n[d]=u[d][0]&v[d],n[d]|=(u[d][1]&v[d])<<8,n[d]|=(u[1-d][d]&v[d])<<16,n[d]|=(u[1-d][1-d]&v[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],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=s)<1&&(d+=4),(v-=s)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-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(r=n=(o=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[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 h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<s)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(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)<1&&(i+=4),(e-=t)<1&&(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}};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(var a=0;a<n.length;a++)e.validateBounds(t,n[a]);var i=null;for(a=0;a<n.length;a++){var o=e.validatePoints(t,n[a]);null==i?i=o:i.add(o)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}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(t){if(null!=t){this.editor=t,this.handler=new mxKeyHandler(t.graph);var n=this.handler.escape;this.handler.escape=function(e){n.apply(this,arguments),t.hideProperties(),t.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}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()})))}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)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(o=this.graph.getCellGeometry(t))){if(!n.isEdge(t)){var i=o.offset||this.EMPTY_POINT;o.relative?(a.origin.x+=o.x*e.width/this.scale+i.x,a.origin.y+=o.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=o.x,a.origin.y+=o.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*o.width,a.height=this.scale*o.height,n.isVertex(t)){if(o.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var o=Math.cos(i),s=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());o=mxUtils.getRotatedPoint(s,o,i,r);a.x=o.x-a.width/2,a.y=o.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(t);null!=(i=this.graph.getChildOffsetForCell(t))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(o=n.getChildCount(t),i=0;i<o;i++)s=n.getChildAt(t,i),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)o(e,n=this.getTerminalPort(e,n,!0),a=this.getTerminalPort(e,a,!1),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;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;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;a=0;var s=[];if(null!=(o=n)){n=o.x;for(var 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;r+s<o&&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){a=t.y;var 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],l=(r=e.absolutePoints[d+1]).x,o=r.y,o=(l=(e=s.x-l)-(l=t-l))*e+(o=(d=s.y-o)-(o=n-o))*d,a<(e=Math.sqrt(o<=0?0:o*o/(e*e+d*d)))&&(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){var t=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=t&&0<t.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(n=this.getPoint(e,i))&&(e.absoluteOffset=n)}else{var n=t[0],a=t[t.length-1];if(null!=n&&null!=a){t=a.x-n.x;var i,o=a.y-n.y,s=a=0;null!=(i=i.offset)&&(a=i.x,s=i.y),i=n.y+o/2+s*this.scale,e.absoluteOffset.x=n.x+t/2+a*this.scale,e.absoluteOffset.y=i}}},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){var t=this.graph.getCellStyle(e);return e=new mxCellState(this,e,t),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){var t=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-t.x,e.clientY-t.y);t=this.graph.container.offsetWidth;var n=this.graph.container.clientWidth;return n<t&&e.x>n+2&&e.x<=t||(t=this.graph.container.offsetHeight,(n=this.graph.container.clientHeight)<t&&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 a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,t){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var t,n;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(t=e,n=null,mxClient.IS_TOUCH&&(n=mxEvent.getClientX(t),t=mxEvent.getClientY(t),t=mxUtils.convertPoint(i,n,t),n=a.view.getState(a.getCellAt(t.x,t.y))),n)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),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&&mxUtils.indexOf(t,i)<0&&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(n,e,t,a){return null!=e&&0<e.length?(e=new mxCellOverlay(t=null!=t?t:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,t){this.isEnabled()&&this.setSelectionCell(n)})),this.addCellOverlay(n,e)):(this.removeCellOverlays(n),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).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)).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)).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){var a;(t=null!=t&&t,null!=(n=n||this.getSelectionCells())&&0<n.length)&&(null!=(a=null!=(a=this.view.getState(n[0]))?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){var i;if(null==n)null!=(i=null!=(i=this.view.getState(a[0]))?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;var n=null;if(null!=e){for(var a={},i=(n=[],0);i<e.length;i++){a[o=mxCellPath.create(e[i])]=e[i],n.push(e[i])}if(0<n.length){var o=this.view.scale,s=this.view.translate;for(n=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!t&&this.model.isEdge(n[i])&&null!=this.getEdgeValidationError(n[i],this.model.getTerminal(n[i],!0),this.model.getTerminal(n[i],!1)))n[i]=null;else{var r=this.model.getGeometry(n[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(n[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[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==a[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 n=[]}return n},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)).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;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!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(null==a[o=mxCellPath.create(s[r])]){if(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=null!=(n=this.view.getState(e))?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.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){var t=null;if(null!=e){var n=this.view.getState(e),a=null!=n?n.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,o=0;t=0;null==this.getImage(n)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(o+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(t+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),o+=2*(a[mxConstants.STYLE_SPACING]||0),o+=a[mxConstants.STYLE_SPACING_LEFT]||0,o+=a[mxConstants.STYLE_SPACING_RIGHT]||0,t+=2*(a[mxConstants.STYLE_SPACING]||0),t+=a[mxConstants.STYLE_SPACING_TOP]||0,t+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(n=this.getFoldingImage(n))&&(o+=n.width+8),t=null!=(n=this.getLabel(e))&&0<n.length?(this.isHtmlLabel(e)||(n=n.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(n,i,a[mxConstants.STYLE_FONTFAMILY])).width+o,t=i.height+t,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=t,t=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),t=this.snap(t+this.gridSize/2)),new mxRectangle(0,0,e,t)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return t},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()).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())if(null!=(i=this.model.getGeometry(t))){var n=e=0,a=i.width,i=i.height;return this.isSwimlane(t)&&(e=(t=this.getStartSize(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()).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])){if(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 v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/t-n.x+l,c[v].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(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(n.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;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";var o=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=n.parentNode?o.appendChild(a):o=this.shiftPreview2,a=i;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)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var o=(e-1)/(2*n);a=a*-o,i=i*-o}else a*=o=(1/e-1)/(2*this.view.scale),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,t<1?(n=((t=e.height/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):(n=((t*=e.width)-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{s=-this.view.translate.x;var 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)return this.allowDanglingEdges?null:"";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},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,n,t,a){var i=null;return null!=e&&(null==e.control||n!=e.control.node&&n.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,t){null!=i||n!=t.node&&n.parentNode!=t.node||(i=t.overlay.toString())}),null==i&&(null!=(t=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof t.getTooltipForNode&&(i=t.getTooltipForNode(n))),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){var t;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(t=null!=(t=this.view.getState(e))?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)return!1;var t=this.cellEditor.getEditingCell();return null==e?null!=t:e==t},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))).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)&&mxUtils.indexOf(e,n)<0?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()),t=(i=mxUtils.getRotatedPoint(new mxPoint(t,n),a,i,o)).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++)l=null!=(c=this.view.getState(s[d]))?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&&(null==o[d=mxCellPath.create(r)]&&(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),r<(c=n?u-m:m-u)&&(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]&&(null==(a=n(i[o]=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=e?(t++,this.model.getChildAt(i,t%o)):(t--,this.model.getChildAt(i,t<0?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(t,n,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&t||this.model.isEdge(e)&&n)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},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&&(t=this.model.isEdge(e.cell)?(t=this.view.getEdgeStyle(e),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)):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?a=1==(t=e.absolutePoints).length%2?t[Math.floor(t.length/2)]:(e=t[(a=t.length/2)-1],t=t[a],new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2)):((a=new mxPoint).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(),o=(a=Math.max(i.width/t,o.width),t=Math.max(i.height/t,o.height),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);i=(t=this.source.view.translate).x+this.source.panDx;var s=t.y+this.source.panDy;null!=(o=this.getOutlineOffset(o))&&(i+=o.x,s+=o.y),n.x<0&&(i-=n.x),n.y<0&&(s-=n.y),a.translate.x==i&&a.translate.y==s||(a.translate.x=i,a.translate.y=s,e=!0);n=a.translate,i=(o=this.source.getView().scale)/a.scale,s=1/a.scale;var 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)a=n/((i=this.source.container).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){a=this.selectionBorder.bounds.width;var 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,c=(n=i.x-o.origin.x-l.x*d,o=i.y-o.origin.y-l.y*d,l=i.x+i.width,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();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=o)(p=p.clone()).translate(-t,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=s)(p=p.clone()).translate(0,-n);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),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,r=(o=t.getParent(o),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))if(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)).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))o=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),s)).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,a=(i=this.snap(new mxPoint(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);l=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled();var 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,s=(a=this.currentDy/a,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)!=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),null!=(t=this.getStateToMark(t.getState(cell)))&&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 a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,t){return t=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(t)?(null!=t?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,t),null!=this.error&&0==this.error.length&&(t=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(t)||(t=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),t):null}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,t,n){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,t){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},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)return null;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},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)){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))){n=Math.cos(o);var o=Math.sin(o),s=new mxPoint(t.getCenterX(),t.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),n,o,s)).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)!=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)!=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=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,o=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,o,!1))&&(n=i)}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).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)).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),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).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,s=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(o=this.getImageForConstraint(e.getState(),this.constraints[i],s)).src;(o=new mxImageShape(o=new mxRectangle(s.x-o.width/2,s.y-o.height/2,o.width,o.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,o.preserveImageAspect=!1,o.init(this.graph.getView().getOverlayPane()),null!=o.node.previousSibling&&o.node.parentNode.insertBefore(o.node,o.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),o.redraw(),mxEvent.redirectMouseEvents(o.node,this.graph,r),this.currentFocusArea.add(o.bounds),this.focusIcons.push(o),this.focusPoints.push(s)}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)).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;a=t.getX()+n.x,n=t.getY()+n.y;var 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),mxGraphHandler.prototype.maxCells<=0||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)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||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())).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=new mxRectangle(0,0,n=n||mxConstants.HANDLE_SIZE,n),(a=this.createSizerShape(n,t,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,n=(t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,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:s<0?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()),m=(o=n.x-this.startX,s=n.y-this.startY,n=this.graph.view.translate,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){var n=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 a=this.graph.isGridEnabledEvent(t.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(-i),s=Math.sin(-i),r=(n=s*(r=n.x-this.startX)+o*(l=n.y-this.startY),o*r-s*l),l=n,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),t.consume()}},mxVertexHandler.prototype.rotateCell=function(e,t){var n=this.graph.getModel();if(n.isVertex(e)){if(null!=(o=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(o.style[mxConstants.STYLE_ROTATION]||0)+t,[e]),this.state.cell!=e&&(null!=(o=this.graph.getCellGeometry(e))&&!o.relative))if(0!=t){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!o.relative&&null!=i){var o,s=mxUtils.toRadians(t),r=(a=Math.cos(s),s=Math.sin(s),new mxPoint(o.getCenterX(),o.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,s,i);(o=o.clone()).x=a.x-o.width/2,o.y=a.y-o.height/2,n.setGeometry(e,o)}}else(o=o.clone()).x+=dx,o.y+=dy,n.setGeometry(e,o);for(o=n.getChildCount(e),a=0;a<o;a++)this.rotateCell(n.getChildAt(e,a),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,null==(o=o.clone()).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()).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)):a<3&&(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)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(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),r=(o=Math.sin(o),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){var t=this.state.cell;if(null!=this.index){var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));t=this.graph.getCellAt(n.x,n.y);this.graph.isSwimlane(t)&&this.graph.hitsSwimlaneContent(t,n.x,n.y)&&(t=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(t)))}),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||mxGraphHandler.prototype.maxCells<=0)&&(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())).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),a=this;return e.getCell=function(e){var t=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(t))return null;var n=a.graph.getModel();return(t==a.state.cell||null!=t&&!a.graph.connectableEdges&&n.isEdge(t))&&(t=null),t},e.isValidState=function(e){var t=a.graph.getModel();t=null!=(t=a.graph.view.getTerminalPort(e,a.graph.view.getState(t.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?t.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:t,a.isSource?t:e.cell),null==a.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,n=(t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,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 n=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),t=this.graph.getView(),i=!1,o=!1;if(this.snapToTerminals&&0<a){var s=function(e){if(null!=e){var t=e.x;Math.abs(n.x-t)<a&&(n.x=t,i=!0),e=e.y,Math.abs(n.y-e)<a&&(n.y=e,o=!0)}},r=function(e){null!=e&&s.call(this,new mxPoint(t.getRoutingCenterX(e),t.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=t.scale,r=t.translate,i||(n.x=(this.graph.snap(n.x/e-r.x)+r.x)*e),o||(n.y=(this.graph.snap(n.y/e-r.y)+r.y)*e)),n},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()).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(),null!=(t=this.graph.getLabel(e))&&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,a=(e=this.abspoints[0],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();a=this.abspoints[n];var i=this.abspoints[n].x,o=(n=this.abspoints[n].y,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)||(i=(a=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"),d=(l=mxResources.get(l)||l,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(t,n){var a=document.createElement("img");a.setAttribute("src",t.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*t.offsetWidth+"px",a.style.height=2*t.offsetHeight+"px",mxUtils.makeDraggable(t,this.editor.graph,n,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},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="
",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(t,e,n){var a=this.actions[t];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+t+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+t,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)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var t=null,n=i.graph.getModel();return null!=n.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),t=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==n.getParent(n.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),t=i.diagramLayout)),t},e},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(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,t){var n=t.getProperty("cell");null!=n&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,n),t.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");this.undoManager.undoableEditHappened(n)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,t){var n=t.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(n))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},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(o){var e=mxUtils.bind(this,function(e,t){this.setModified(!0),1==this.validating&&o.validateGraph();for(var n=t.getProperty("edit").changes,a=0;a<n.length;a++){var i=n[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});o.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var n=this;e.addMouseListener({mouseDown:function(e,t){null==n.insertFunction||t.isPopupTrigger()||!n.forcedInserting&&null!=t.getState()||(n.graph.clearSelection(),n.insertFunction(t.getEvent(),t.getCell()),this.isActive=!0,t.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(t){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){t.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(t)},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(t,n){this.escapePostData&&(n=encodeURIComponent(n)),mxUtils.post(t,this.postParameterName+"="+n,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",t,"data",n))}))},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(n){var a=this.graph.getModel(),e=a.getValue(n);if(mxUtils.isNode(e)){var t=new mxForm("properties");t.addText("ID",n.getId()).setAttribute("readonly","true");var i=null,o=null,s=null,r=null,l=null;a.isVertex(n)&&(null!=(i=a.getGeometry(n))&&(o=t.addText("top",i.y),s=t.addText("left",i.x),r=t.addText("width",i.width),l=t.addText("height",i.height)));var d=a.getStyle(n),c=t.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=t.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(s.value),i.y=parseFloat(o.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(n,i)),0<c.value.length?a.setStyle(n,c.value):a.setStyle(n,null);for(var e=0;e<m.length;e++){var t=new mxCellAttributeChange(n,m[e].nodeName,u[e].value);a.execute(t)}this.graph.isAutoSizeCell(n)&&this.graph.updateCellSize(n)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),t.addButtons(e,d),t.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 t=document.createElement("div");t.style.padding="4px",t.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,t,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var n=mxUtils.bind(this,function(e){mxEvent.release(t),t.innerHTML="",this.createTasks(t)});this.graph.getModel().addListener(mxEvent.CHANGE,n),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,n),this.graph.addListener(mxEvent.ROOT,n),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(t)}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){r=s.width;var d=s.height,c=l.x+l.width;c<n+r&&(n-=n+r-c),(c=l.y+l.height)<a+d&&(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){var t=null;if(null!=e){t=mxUtils.getFunctionName(e);var 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}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,t,n,a){for(var i in this.template=e,this.exclude=null!=t?t:[],this.idrefs=null!=n?n:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}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),c.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)!=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){for(var a in e.setAttribute(n,"id",e.getId(t)),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="value"==a?t.nodeValue: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)return!1;if(null!=(t=t.getAttribute("name")))try{var a=mxUtils.load(t).getDocumentElement();null!=a&&e.decode(a,n)}catch(e){}return!0},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?(null!=(a=t.getElementsByTagName(i)[0])&&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++){i=this.idrefs[t];var 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,a){var t=new mxObjectCodec(e,["model","previous"],["cell"]);return t.afterDecode=function(e,t,n){return mxUtils.isNode(n.cell)&&(n.cell=e.decodeCell(n.cell,!1)),n.previous=n[a],n},t};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(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){for(var s in o.setAttribute("as",n),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"),o=(i=mxResources.get(i)||i,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)!=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++)"separator"==(c=s[i]).nodeName?n.addOption(d,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),c=c.getAttribute("action"),n.addActionOption(d,o,c));else{var g=null,v=n.addPrototype(i,o,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),t=g.options[g.selectedIndex].cellStyle;return null!=t&&e.setStyle(t),e},null,null,c);g=n.addCombo();for(mxEvent.addListener(g,"change",function(){n.toolbar.selectMode(v,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++)"separator"==(c=s[i]).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{a=parseInt(e.getAttribute("x"));var 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;this.container.style.overflow="hidden",(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,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[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","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[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"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","awslex","sesteknda","sestekasr"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[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,["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,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),!this.isEnabled()||mxEvent.isConsumed(e)||t.isConsumed()||(this.getModel().isEdge(n)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(n.source.value.tagName)&&this.startEditingAtCell(n):this.getModel().isVertex(n)&&i.projectDesignController.openDialog(n.getValue(),function(e){for(var t=0;t<e.length;t+=1)n.setAttribute(e[t].name,e[t].value);a.refresh(n)}),t.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(),this.refresh()},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=190,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,a=(e=null!=e?e:n.model.getRoot(),t=null!=t?t:{},!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=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":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+=1<=e.value.getAttribute("priority")?"":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+=-1<=e.value.getAttribute("timeout")?"":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+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":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")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":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=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":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"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n"}if(n.model.isEdge(e))switch(n.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{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"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\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(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(t){var n=this.editor.graph,e=n.getDefaultParent(),a=0;return e.children.forEach(function(e){n.model.isVertex(e)&&e.value.nodeName==t&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var t=null!=e?e:window.location.pathname,n=0<t.indexOf("?")?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(var o=0;o<i.length;o++){var s=i[o];if(e.getModel().isEdge(s)&&(a=!0),e.getModel().isVertex(s)&&(n=!0),a&&n)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(o=0;o<r.length;o++)this.actions.get(r[o]).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(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=n&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(o=0;o<d.length;o++)this.menus.get(d[o]).setEnabled(t);d=["line","lineend","linestart"];for(o=0;o<d.length;o++)this.menus.get(d[o]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),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+390,n=this.container.clientHeight+190;this.container==document.body&&(t=document.body.clientWidth||document.documentElement.clientWidth,n=e&&document.body.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.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.diagramContainer.style.left=a+this.splitSize+"px",this.diagramContainer.style.top=this.sidebarContainer.style.top,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.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=s+"px",this.diagramContainer.style.width=t-a-this.splitSize+"px";var r=n-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"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.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",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(t,n,a,i){var o=null,s=null;function r(e){if(null!=o){var t=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,s+(n?t.x-o.x:o.y-t.y)-a)),mxEvent.consume(e)}}function e(e){r(e),s=o=null}mxEvent.addGestureListeners(t,function(e){o=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),s=parseInt(n?t.style.left:t.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},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){var a=this.editor.graph,s=new mxKeyHandler(a);function t(e){if(!a.isSelectionEmpty()){var t=0,n=0;37==e?t=-1:38==e?n=-1:39==e?t=1:40==e&&(n=1),a.moveCells(a.getSelectionCells(),t,n),a.scrollCellToVisible(a.getSelectionCell())}}s.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var n=mxUtils.bind(this,function(e,t,n,a){var i=this.actions.get(n);if(null!=i){var o=function(){i.enabled&&i.funct()};t?a?s.bindControlShiftKey(e,o):s.bindControlKey(e,o):a?s.bindShiftKey(e,o):s.bindKey(e,o)}});return s.enter=function(){},s.bindKey(8,function(){a.foldCells(!0)}),s.bindKey(13,function(){a.foldCells(!1)}),s.bindKey(33,function(){a.exitGroup()}),s.bindKey(34,function(){a.enterGroup()}),s.bindKey(36,function(){a.home()}),s.bindKey(35,function(){a.refresh()}),s.bindKey(37,function(){t(37)}),s.bindKey(38,function(){t(38)}),s.bindKey(39,function(){t(39)}),s.bindKey(40,function(){t(40)}),s.bindKey(113,function(){a.startEditingAtCell()}),n(46,!1,"delete"),n(82,!0,"tilt"),n(83,!0,"save"),n(83,!0,"saveAs",!0),n(107,!1,"zoomIn"),n(109,!1,"zoomOut"),n(65,!0,"selectAll"),n(86,!0,"selectVertices",!0),n(69,!0,"selectEdges",!0),n(69,!0,"export"),n(66,!0,"toBack"),n(70,!0,"toFront"),n(68,!0,"duplicate"),n(90,!0,"undo"),n(89,!0,"redo"),n(88,!0,"cut"),n(67,!0,"copy"),n(81,!0,"connect"),n(86,!0,"paste"),n(71,!0,"group"),n(71,!0,"grid",!0),n(85,!0,"ungroup"),n(112,!1,"about"),n(80,!0,"publish",!0),s},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){}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,n,a,i,t,o,s,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+t.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(t){r&&t[a]==r||((m=document.createElement("option")).text=t[a],o&&s?(m.value=s,o.forEach(function(e){m.value=m.value.replace("%"+e+"%",t[e])}),m.selected=m.value==n):(m.value=t[i],m.selected=t[i]==n),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,(0<t||""!=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(0<i.status){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,(0<e||""!=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(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),o=n.createHeader("h4");mxUtils.write(o,mxResources.get("import")+" XML");var s=mxUtils.button("",function(){n.hideDialog()});s.className="close",t.appendChild(s),t.appendChild(o);var r=n.createDiv("row"),l=n.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(e){var t=mxUtils.parseXml(d.value);n.editor.setGraphXml(t.documentElement),n.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}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="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),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 v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(h),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 v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(h),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function RenameDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),o=n.createHeader("h4");mxUtils.write(o,mxResources.get("rename"));var s=mxUtils.button("",function(){n.hideDialog()});s.className="close",t.appendChild(s),t.appendChild(o);var r=n.createDiv("row"),l=n.createDiv("col-md-4"),d=n.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=n.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+n.editor.data.id,!0),t.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),t.setRequestHeader("Authorization","Bearer "+n.editor.data.token),t.send("name="+u.value),t.onload=function(e){200===t.status?(n.editor.setStatus("Project successfully renamed"),n.editor.filename=u.value):(console.log(t.response),n.editor.setStatus(JSON.parse(t.response).errors[0].message))},t.onerror=function(e){mxUtils.alert(t.statusText)},n.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),o=t.createHeader("h4");mxUtils.write(o,mxResources.get("edit"));var s=mxUtils.button("",function(){t.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=t.createDiv("row"),l=t.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(t.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var t=e.dataTransfer.files[0],n=new FileReader;n.onload=function(e){d.value=e.target.result},n.readAsText(t)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);t.editor.setGraphXml(e.documentElement),t.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body form"),i=t.createDiv("modal-footer"),o=t.createHeader("h4");mxUtils.write(o,mxResources.get("export")+" XML");var s=mxUtils.button("",function(){t.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=t.createDiv("form-horizontal form-row-seperated"),l=t.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",t.editor.getOrCreateFilename()),c.className="form-control";var m=t.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(e){t.save(!1);encodeURIComponent(mxUtils.getXml(t.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+t.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),t.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,o){console.log("general");var s=i.editor.graph,e=i.createDiv("md-dialog"),t=i.createDiv("md-toolbar"),n=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(o.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",t.appendChild(l),t.appendChild(r);for(var d=o.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=o.value.attributes[m].name,g="_"+p,v=o.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),b=document.createElement("label");switch(b.className="col-sm-4 control-label",mxUtils.write(b,mxResources.get(p)),h.appendChild(b),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==o.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var f=i.createDiv("col-sm-8");if(f.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),f.appendChild(A)}h.appendChild(f),c.appendChild(h)}n.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var t=0;t<o.value.attributes.length;t++){var n="_"+o.value.attributes[t].name,a=o.value.attributes[t].name;o.setAttribute(a,document.getElementById(n).value)}s.refresh(o),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(t),e.appendChild(n),e.appendChild(a),this.container=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=Number(e.getAttribute("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&&0<o.length&&(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)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),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&&9<=document.documentMode?"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 n=e.apply(this,arguments);return n.intersects=mxUtils.bind(this,function(e,t){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(n,arguments)}),n},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=0<e.width?e.x/this.scale-this.translate.x:0,n=0<e.height?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 n=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,t){n.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=t+"px")};var a=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();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);if(this.graph.pageVisible){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("+a.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&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var o=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){for(var a=0;a<t.length;a++)if(this.graph.getModel().isVertex(t[a])){var i=this.graph.getCellGeometry(t[a]);if(null!=i&&i.relative)return!1}return o.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,t,n,a,i,o){var s=r.apply(this,arguments);return null==o||o||mxEvent.addListener(s,"mousedown",function(e){mxEvent.consume(e)}),s};var s=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var t=this.graph.getModel(),n=t.getParent(this.graph.getSelectionCell()),a=s.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 l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var t=l.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 o=this.graph,n=new mxUndoManager,e=function(e,t){n.undoableEditHappened(t.getProperty("edit"))};o.getModel().addListener(mxEvent.UNDO,e),o.getView().addListener(mxEvent.UNDO,e);var t=function(e,t){for(var n=o.getSelectionCellsForChanges(t.getProperty("edit").changes),a=[],i=1;i<n.length;i++)null!=o.view.getState(n[i])&&a.push(n[i]);o.setSelectionCells(a)};return n.addListener(mxEvent.UNDO,t),n.addListener(mxEvent.REDO,t),n},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},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(0<t.length&&"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("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),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","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["tts","ispeechtts","awspolly","lumenvoxtts","sestektts"],["GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","awslex","sesteknda"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","AWSLex","SestekNDA"]),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=5<=document.documentMode?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{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=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),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),t=e.width+2*this.tooltipBorder+4,n=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(n+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=t+"px",this.tooltipTitles&&null!=g&&0<g.length){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.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;n+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(n-=6,this.tooltipTitle.style.top=n-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=n+"px";var i=-Math.round(e.x-this.tooltipBorder),o=-Math.round(e.y-this.tooltipBorder),s=document.body,r=document.documentElement,l=(s.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-n/2+16);mxClient.IS_SVG?0!=i||0!=o?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+o+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=o+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+n/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},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&&0<e.length)for(var n=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<n.length;a++)if(n[a]=n[a].replace(/\.*\d*$/,""),1<n[a].length){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(0<o[c].length){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 v=l.length;a(l.slice(n*t,(n+1)*t),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;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(" ")},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 r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var n=document.createElement("div");n.style.whiteSpace="nowrap",n.style.textOverflow="clip",n.style.paddingBottom="8px",n.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",n.appendChild(a);var i,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?(a.style.height="28px",o.style.top="-4px"):o.style.top="2px",o.style.background="url('"+this.editorUi.editor.transparentImage+"')",n.appendChild(o),r.appendChild(n);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var t=e.nextSibling;e!=n&&e!=l&&e.parentNode.removeChild(e),e=t}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var s=new Object;this.currentSearch=s,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,t,n){if(this.currentSearch==s){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(n?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var o=document.createElement("div");o.className="geTitle",o.style.backgroundColor="transparent",o.style.borderColor="transparent",o.style.color="gray",o.style.padding="0px",o.style.margin="0px 8px 0px 8px",o.style.paddingTop="6px",o.style.textAlign="center",o.style.cursor="default",mxUtils.write(o,mxResources.get("noResultsFor",[c])),r.appendChild(o)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",o.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",o.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var s=document.createElement("div");s.appendChild(r),this.container.appendChild(s),this.palettes.search=[t,s]},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(t,n,a,e,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(t,this.thumbWidth,this.thumbHeight,r,n,a,e,i,o);var d=new mxRectangle(0,0,i,o);if(1<t.length||t[0].vertex){var c=this.createDragSource(r,this.createDropHandler(t,!0,s,d),this.createDragPreview(i,o),t,d);this.addClickHandler(r,c,t),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=t[0]&&t[0].edge){c=this.createDragSource(r,this.createDropHandler(t,!1,s,d),this.createDragPreview(i,o),t,d);this.addClickHandler(r,c,t)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,t,d.width,d.height,n,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,b){return h=null==h||h,mxUtils.bind(this,function(e,t,n,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var o=null!=n&&e.isValidDropTarget(n,g,t),s=null;if(null==n||o||(n=null),!e.isCellLocked(n||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(n,g,t)){var r=e.cloneCells(g);e.splitEdge(n,r,null,a-b.width/2,i-b.height/2),s=r}else 0<g.length&&(s=e.importCells(g,a,i,n));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(n);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<s.length;p++)l.moveCell(s[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",s))}finally{e.model.endUpdate()}null!=s&&0<s.length&&(e.scrollCellToVisible(s[0]),e.setSelectionCells(s))}}mxEvent.consume(t)}})},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,a){var i=this.editorUi.editor.graph,o=null;mxEvent.addGestureListeners(e,function(e){o=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var s=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=o){var t=i.tolerance;if(Math.abs(o.x-mxEvent.getClientX(e))<=t&&Math.abs(o.y-mxEvent.getClientY(e))<=t){var n=i.getGridSize();a.drop(i,e,null,n,n)}}s.apply(this,arguments),o=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,t,n,a,i,o,s,r){return r=null!=r&&0<r.length?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"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","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"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];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","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_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;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project"],d=["","","","","","",""];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(n,a,i){var o=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(n.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="0% 50%",mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(o)a.style.display="block";else if(o=!0,null!=i){n.style.cursor="wait";var t=n.innerHTML;n.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",n.style.cursor="",n.innerHTML=t},0)}else a.style.display="block";n.style.backgroundImage="url('"+this.expandedImage+"')"}else n.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,t,o,s,r,n,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,t,n){if(null==n){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");n=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+o+e+s,this.defaultImageWidth,this.defaultImageHeight,r[d],t,!1,!0,this.filterTags(n)))})(r[d],null!=n?n[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,t,!1,l)},"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)&&1<this.graph.getSelectionCount()&&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&&0<t.length?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 o=!1,s=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(e,t,n){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(o=!1,s=null):(s=t.getCell(),o=null!=s?this.isCellSelected(s):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(o&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(t.getEvent()),i=mxEvent.getClientY(t.getEvent());this.panningHandler.popup(a+16,i,s,t.getEvent())}return o=!1,s=null,void t.consume()}o=!1,s=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&t.isConsumed()&&(o=!1,s=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 n=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,t){n.apply(this,arguments),this.graph.isCellSelected(t.getCell())&&1<this.graph.getSelectionCount()&&(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 a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,t){if(null==t){var n=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));t=this.getCellAt(n.x,n.y)}a.call(this,e,t)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var t=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(t),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()};var o=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){o.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"))};var s=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){s.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=t}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=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("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.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()};o=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){o.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"))};s=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){s.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var t=this.editorUi,l=t.editor,d=l.graph;this.addAction("new",function(){t.projectDesignController.newProject()}),this.addAction("open",function(){t.projectDesignController.openProject()}),this.addAction("save",function(){t.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),t.editor.modified=!1},null,null,"Ctrl+S"),this.addAction("saveAs",function(){t.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+Shift+S"),this.addAction("publish",function(){t.editor.setStatus(""),null===t.validate()?(t.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),t.editor.modified=!1):(t.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){t.editor.setStatus("")},3e3))},null,null,"Ctrl+Shift+P"),this.addAction("variable",function(){t.projectDesignController.newVariable()}),this.addAction("import",function(){t.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("export",function(){t.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){t.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),t=d.getLinkForCell(e);null==t&&(t=""),null!=(t=mxUtils.prompt(mxResources.get("enterValue"),t))&&d.setLinkForCell(e,t)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),t=d.getLinkForCell(e);null!=t&&window.open(t)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var n=e[t];d.getModel().getChildCount(n)?d.updateGroupBounds([n],20):d.updateCellSize(n)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),t="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(t=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,t)}),this.addAction("rotation",function(){var e="0",t=d.getView().getState(d.getSelectionCell());null!=t&&(e=t.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var n=e[t];if(d.getModel().isVertex(n)&&0==d.getModel().getChildCount(n)){var a=d.getCellGeometry(n);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(n,a);var o=d.view.getState(n);if(null!=o){var s=o.style[mxConstants.STYLE_DIRECTION]||"east";"east"==s?s="south":"south"==s?s="west":"west"==s?s="north":"north"==s&&(s="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,s,[n])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,t=d.pageScale,n=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(n/e.width/t,a/e.height/t))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*t*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*t*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,t=d.pageScale,n=d.container.clientWidth-20,a=Math.floor(100*n/e.width/t)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*t*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*t*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,t=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(t*d.view.scale)}else{var n=d.view.translate;d.view.setTranslate(n.x-d.container.scrollLeft/d.view.scale,n.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var n=mxUtils.bind(this,function(e,t){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,t)})});n("bold",mxConstants.FONT_BOLD),n("italic",mxConstants.FONT_ITALIC),n("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var t=d.getModel(),n=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",t.getStyle(e[0])||"");null!=n&&d.setCellStyle(n,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var t=l.graph.selectionCellsHandler.getHandler(e);if(t instanceof mxEdgeHandler){var n=d.view.translate,a=d.view.scale,i=n.x,o=n.y,s=d.getModel().getParent(e),r=d.getCellGeometry(s);d.getModel().isVertex(s)&&null!=r&&(i+=r.x,o+=r.y),t.addPointAt(t.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-o)}}}),this.addAction("removeWaypoint",function(){var e=t.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",t=d.getView().getState(d.getSelectionCell());if(null!=t&&(e=t.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var n=new Image;n.onload=function(){!function(e,t,n){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var o=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",o,o,t,n)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=t&&null!=n){var s=i[0],r=d.getModel().getGeometry(s);null!=r&&((r=r.clone()).width=t,r.height=n,d.getModel().setGeometry(s,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,n.width,n.height)},n.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},n.src=e}})},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},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 i=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(e,t){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,t),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,t),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,t),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,t),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,t),e.addSeparator(t),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},t,null,!0),e.addSeparator(t),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,t)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,t),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,t),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,t),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,t),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,t),e.addSeparator(t),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},t,null,!0),e.addSeparator(t),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,t)}))),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(e,t){var n=this.get("text").enabled;e.addSeparator(t),this.addSubmenu("fontFamily",e,t),this.addSubmenu("fontSize",e,t),this.addMenuItems(e,["-","bold","italic","underline","-"],t),this.addSubmenu("alignment",e,t),this.addMenuItem(e,"wordWrap",t),e.addSeparator(t),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,t,n),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},t,null,n)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,t),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,t),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,t),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,t),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,t),e.addSeparator(t),this.addSubmenu("position",e,t),this.addSubmenu("spacing",e,t),e.addSeparator(t);var n=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},t,null,n)}))),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(e,t){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},t),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},t),this.addMenuItems(e,["-","tilt","rotation"],t)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,t){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},t),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},t),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},t),e.addSeparator(t),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},t),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},t),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},t)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,t){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),t),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),t)}))),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 e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){t.addItem(100*e+"%",null,function(){i.zoomTo(e)},n)}(e[a]);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,a,i,o,n,s){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,t=i,n=e.getView().getState(e.getSelectionCell());null!=n&&(t=n.style[o]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),t))&&0<t.length&&e.setCellStyles(o,t)}),n,null,s)},Menus.prototype.addMenuItem=function(e,t,n){var a=this.editorUi.actions.get(t);if(null==a||!e.showDisabled&&!a.enabled)return null;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},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()),0<a.getSelectionCount()){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&&2<o.bends.length){var s=o.getHandleForEvent(new mxMouseEvent(n)),r=this.editorUi.actions.get("removeWaypoint");r.handler=o,i=0<(r.index=s)&&s<o.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(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{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,o){if(null!=o){var s=!0,t=mxUtils.bind(this,function(e){if(s&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var t=new mxPopupMenu(o);t.div.className+=" geMenubarMenu",t.smartSeparators=!0,t.showDisabled=!0,t.autoExpand=!0,t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments),t.destroy(),this.currentMenu=null,this.currentElt=null});var n=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;t.popup(n,a,null,e),this.currentMenu=t,this.currentElt=i}s=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),t(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){s=this.currentElt!=i})),mxEvent.addListener(i,"click",t)}},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(n){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),t=0;t<n.length;t++)n[t].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var t=i.getSelectionCells(),n=0;n<t.length;n++)if(i.getModel().isEdge(t[n])){e=!0;break}for(n=0;n<a.length;n++)a[n].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,t){e.setAttribute("tabindex","0"),null!=t&&e.setAttribute("title",t),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(t){var n=t.className;t.setEnabled=function(e){t.enabled=e,t.className=e?n:n+" geDisabled"},t.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(t,n){null!=n&&mxEvent.addListener(t,"click",function(e){t.enabled&&n(e),mxEvent.consume(e)})},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(t,n,a,i){if(null!=a){var o=this.editorUi.editor.graph,s=null;mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){(null==t.enabled||t.enabled)&&(o.panningHandler.hideMenu(),(s=new mxPopupMenu(a)).div.className+=" geToolbarMenu",s.showDisabled=i,s.labels=n,s.autoExpand=!0,s.popup(t.offsetLeft,t.offsetTop+t.offsetHeight+34,null,e),this.currentMenu=s),mxEvent.consume(e)}))}},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/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),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-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()">{{target}}</span>\n\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix">{{prefix}}-</span>{{target}}\n </a>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{prefix ? prefix + \'-\' + target : target}})\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{prefix ? prefix + \'-\' + target : target}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{prefix ? prefix + \'-\' + target : target}})\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n'+" {{'DASHBOARDS.TRANSFER_NUMBER' | translate}} ({{prefix ? prefix + '-' + target : target}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>"),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">{{getLine(item, options.line1)}}</h3>\n <h4 ng-if="options.line2">{{getLine(item, options.line2)}}</h4>\n <p ng-if="options.line3">{{getLine(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">{{getLine(item, options.line1)}}</h3>\n <h4 ng-if="options.line2">{{getLine(item, options.line2)}}</h4>\n <p ng-if="options.line3">{{getLine(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-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value" <span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),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 s20"></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"\n 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"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n 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"\n ng-class="{\'has-children\': vm.hasChildren}"\n 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 margin-right-20" 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 margin-right-20" 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"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\')" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\')" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\')" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input Area --\x3e\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">{{ (session.user == session.name) ? session.user : (session.name + \' \' + session.user) }}</span>\n <span class="session-info" layout="row" layout="start center">\n <timer interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length > 1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" 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="TOOLBAR.SETTINGS">Settings</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 class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\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.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$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/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" ng-click="MsSearchBar.expand()" 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" 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}" 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 \x3c!-- <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"\n 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"\n 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"\n 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\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n 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"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n 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"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\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)}" 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)}" 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-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground}" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit</md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),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="header" ui-view="header"></div>\n\n<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>\n\n<div id="footer" ui-view="footer"></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}" 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/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),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" class="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 ng-if="!vm.progressLogin">\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 <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <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> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\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.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" 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.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'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="10">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="basename ">{{extractedReport.basename}}</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 ng-if="extractedReport.status == \'Completed\'">\n <md-button ng-click="vm.downloadfile2(extractedReport, $event)" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" aria-label="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="\'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="\'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-option ng-value="\'report_integration\'">Integration Report</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'report_queue\'">Queue 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-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" ng-required="true">\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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</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\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\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.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}}\n </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}}\n </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}}\n </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-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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 <pre></pre>\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-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\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">{{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">{{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">{{gb.value ? \'Yes\' : \'No\'}}</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">{{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-stretch-tabs="always" flex layout-fill 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 </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 class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</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)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></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">{{ vm.valueReplacer(key, 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 md-progress="vm.promise">\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">{{ vm.valueReplacer(key, 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" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.currentNode.custom && (vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\')" 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" ng-model-options="{ debounce: 1000 }" 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 <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\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.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="vm.currentNode.custom && 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 && (vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\')">\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-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</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($event)" 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/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show 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">Web 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>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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>\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 md-progress="vm.promise">\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.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\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/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" ng-required="true" 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\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" ng-required="true">\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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language" 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|googleasr" 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" 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|text" ng-required="attribute.required"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL 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-if="attribute.help">\n <span 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></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></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></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></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/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</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/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></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" ng-model-options="{ debounce: 1000 }" 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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.managePermissions(project, ev)" translate="CALLYSQUARE.ADDUSER_PROJECTS">\n Add User To Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename 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.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$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.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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</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 ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.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="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.downloadfile2(squareRecording, $event)" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(chatQueue, $event)" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(chatQueue, $event)" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event)" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime 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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" aria-label="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="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_CHATQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\n <span ng-if="vm.chatQueue.exten">{{vm.chatQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" aria-label="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="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{chatWebsite.key}}</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="remote ">{{chatWebsite.remote}}</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.interactionsgoto(chatWebsite, $event)" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event)" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event)" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></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.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'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 <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" aria-label="Interval">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="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\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/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</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/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" aria-label="lexregion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" md-maxlength="255" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.TEXT_MAX_LENGTH" translate-values=\'{max: 255}\'>Text must have a maximum length equal to 255</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" aria-label="language" required>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable 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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag 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.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.chatCannedAnswer.description">\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$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.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($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" md-maxlength="255" ng-required="true" 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/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\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-content flex layout-padding>\n <pre>{{vm.message.body}}</pre>\n </md-content>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" 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.chatProactiveAction.name" ng-required="true" autofocus>\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'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.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type" aria-label="Type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'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 ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</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.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$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.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($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}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\n <span ng-if="vm.chatWebsite.exten">{{vm.chatWebsite.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></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.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\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 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" ng-required="true">\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.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n <form name="scriptForm" flex="100" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n </form>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container interval 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.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" aria-label="Interval" autofocus>\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone">\n < <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span>\n </div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.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="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" 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true">\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" aria-label="headershape">\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.showAgentAvatar" aria-label="ShowAgentAvatar"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" aria-label="snippetSwipeOut">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" ng-required="true">\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" aria-label="messagesAlignment">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255">\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus 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.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" 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" md-maxlength="255" autofocus>\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</span>\n </div>\n\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" md-maxlength="255">\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus 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.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\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" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'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\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255">\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform 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.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255">\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" aria-label="ratingType">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true">\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255">\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true">\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus 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.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255">\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255">\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true">\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction 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.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" aria-label="agentIdentifier" autofocus>\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true">\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true">\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255">\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255">\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255">\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true">\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255">\n <div ng-messages="interactionForm[\'noteTitle\'].$error" ng-show="interactionForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255">\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true">\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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 name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" 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 <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="logoimage in vm_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-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="chatWebsite-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 <div class="chatWebsite-detail-form-container agentavatar 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.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-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="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar 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.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-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="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar 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.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-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()" 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="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-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="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.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="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\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="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 ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</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.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\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.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($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.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\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="type">{{ \'CHAT.TYPE\' | translate }}</th>\n <th md-column md-order-by="selector">{{ \'CHAT.SELECTOR\' | translate }}</th>\n <th md-column md-order-by="timeout">{{ \'CHAT.TIMEOUT\' | 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="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.id}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.name}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.selector}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.timeout}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>{{chatProactiveAction.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.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\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.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <span class="text-boxed-ligth" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" 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.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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</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.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\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.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($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.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'CHAT.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | 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="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.value}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>{{chatCannedAnswer.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.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\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.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" 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.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 ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" 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 translate="VOICE.APPLICATIONS_LIST">\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="CHAT.{{(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.selectedChatWebsiteApps.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.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.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.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.chatWebsiteApps.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.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($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.editChatWebsiteApp($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.editChatWebsiteApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</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.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($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.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'CHAT.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'CHAT.CLOSEDAT\' | translate }}</th>\n <th md-column>{{ \'CHAT.CONTACT\' | translate }}</th>\n <th md-column>{{ \'CHAT.AGENT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'CHAT.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="ratingValue">{{ \'CHAT.RATING\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'CHAT.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'CHAT.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="interaction.ratingValue != null && (!interaction.ratingType || interaction.ratingType == \'star\')" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:interaction.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="interaction.ratingValue != null && interaction.ratingType && interaction.ratingType == \'thumb\' && interaction.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="interaction.ratingValue != null && interaction.ratingType && interaction.ratingType == \'thumb\' && interaction.ratingValue == 0"></md-icon><span ng-show="interaction.ratingValue == null" translate="CHAT.NO_RATINGVALUE">No ratingValue</span>\n </td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\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.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="15">\n <span class="text-boxed-ligth" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" 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.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</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.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($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.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="ContactId">{{ \'CHAT.CONTACT\' | 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="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>{{offlineMessage.id}}</td>\n <td md-cell>{{ ContactId = vm_dc.contacts[offlineMessage.ContactId]; ContactId.firstName }}</td>\n <td md-cell>{{offlineMessage.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.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\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.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="5">\n <span class="text-boxed-ligth" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" 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/chat/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="CHAT.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'CHAT.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'CHAT.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'CHAT.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'CHAT.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'CHAT.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'CHAT.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'CHAT.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"CHAT.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"CHAT.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()\" class=\"text-capitalize\" translate=\"CHAT.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"CHAT.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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"CHAT.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-label=\"{page: '{{'CHAT.PAGE' | translate}}:', rowsPerPage: '{{'CHAT.ROWSPERPAGE' | translate}}:', of: '{{'CHAT.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/chat/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="CHAT.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 md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.READY\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | 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="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditChatQueue($event, vm.queues[value])" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="CHAT.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-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/chat/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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\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\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\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\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" md-maxlength="255">\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\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n\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\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\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}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\n <span ng-if="vm.company.exten">{{vm.company.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\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\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\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\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\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" md-maxlength="255">\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\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n\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\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\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\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\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\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\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\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\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\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\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="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 <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="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: 1000 }" 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.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="CONTACTS.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" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.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 \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" 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-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a companie" 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-input-container>\n\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()" multiple>\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\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="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | 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="8">\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 ng-click="vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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(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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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 md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\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 class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | 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 \x3c!-- / ADD USER BUTTON --\x3e\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">\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 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">{{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" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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 && socialForm.$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-stretch-tabs="always" flex layout-fill 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 layout="column" flex="70">\n <md-card class="contact-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 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">\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 <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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.Tags" multiple>\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" 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 </md-card>\n <md-card class="contact-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 text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\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" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click 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 </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\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">{{value.value}}</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-block" 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 class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\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 ng-if="vm.license.dialer">\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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | 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>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</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-if="hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 ng-if="vm.license.jscripty">\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"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="interaction-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'"></div>\n </md-content>\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/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\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" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" 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.processing || vm.result.finish" 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\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </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">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </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\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.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">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <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" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.affectedRows"></span>\n </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 ng-if="vm.result.finish" 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">\n <span ng-bind="vm.result.failedRows"></span>\n </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 ng-if="vm.result.duplicatedRows && vm.result.finish" 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 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </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\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 ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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.png" 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/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" ng-required="true" 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 name="type" ng-model="vm.globalCustomField.type" aria-label="Type" required ng-disabled="!vm.newGlobalCustomField">\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 <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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" ng-required="true" 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 name="type" ng-model="vm.customField.type" aria-label="Type" required ng-disabled="!vm.newCustomField">\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 <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\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}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\n <span ng-if="vm.list.exten">{{vm.list.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix">\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.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_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n Edit CustomField\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListVoiceDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.currentUser.role == \'admin\'" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs" ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'"></md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}} <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs" ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n \x3c!-- <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40"\n ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt" interval="1000">{{ days > 0 ? days + \'d\' :\n \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div> --\x3e\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.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 vm.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 ng-if="call.answeredAt" class="text-boxed indigo-100-bg">\n <timer start-time="call.answeredAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n <div flex></div>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n <div class="p-16">\n <div class="title h1">\n <md-icon ng-if="!call.routeId" md-font-icon="icon-phone-incoming"></md-icon>\n <md-icon ng-if="call.routeId" md-font-icon="icon-phone-outgoing"></md-icon>\n {{ call.routeId ? call.destcalleridnum : call.calleridnum }}\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\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="vm.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="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.firstName" class="text-truncate" required>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.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>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event)" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.jscriptyProjects && vm.jscriptyProjects.rows.length" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon> {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.jscriptyProjects || !vm.jscriptyProjects.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon> No jscripty projects available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\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="vm.contact.lastName" class="text-truncate">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.phone" class="text-truncate">\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.mobile" class="text-truncate">\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event)" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.smsAccounts && vm.smsAccounts.rows.length" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon> {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.smsAccounts || !vm.smsAccounts.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon> No sms accounts available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\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="vm.contact.email" class="text-truncate">\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.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>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event)" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.mailAccounts && vm.mailAccounts.rows.length" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon> {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.mailAccounts || !vm.mailAccounts.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon> No email accounts available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\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="vm.contact.fax">\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event)" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n\n <md-menu-content>\n <md-menu-item ng-if="vm.faxAccounts && vm.faxAccounts.rows.length" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon> {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.faxAccounts || !vm.faxAccounts.rows.length">\n <md-button disabled="disabled" translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon> No fax accounts available\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\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="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.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="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.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="vm.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="vm.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="vm.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="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="DASHBOARDS.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 </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate></form>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block" ng-if="!vm.contact.ListId">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-model="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.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="vm.contact.ListId">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select ng-disabled="!vm.newContact" name="list" ng-model="vm.contact.ListId" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.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 vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click 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 </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\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">{{value.value}}</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-block" 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}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\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 </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="interaction-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'"></div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></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 ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITIONS">Dispositions</label>\n <md-select name="disposition" ng-model="vm.choice" required>\n <md-option ng-value="g.name" ng-repeat="g in vm.dispositions.rows">{{ g.name }}</md-option>\n <md-option ng-value="gd.name" ng-repeat="gd in vm.globalDispositions.rows">{{ gd.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n\n <div ng-if="vm.isReschedule">\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="disposition.date.$error" ng-show="disposition.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="disposition.time.$error" ng-show="disposition.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-input-container ng-if="!vm.dialerCall" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">{{ queueCampaign.name }} ({{ queueCampaign.dialActive ? \'Active\' : \'Not Active\' }})</md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n {{(vm.choice ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" 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/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-background-bg">\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-disabled="vm.disable" 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/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="Voice">\n <div ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n <md-content ng-if="vm.selectedTab==0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" class="md-padding">\n </md-content>\n </div>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="Bull">\n <div ng-controller="AgentHomeAbandonedBullController as vm_bull">\n <md-content ng-if="vm.selectedTab==1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" class="md-padding">\n </md-content>\n </div>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.query.filter = query" on-collapse="vm_bull.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm_bull.pickerModel.dateStart" ng-click="vm_bull.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm_bull.localizationMap" ng-model="vm_bull.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_bull.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_bull.query.lastAssignedTo" ng-change="vm_bull.getContacts()">\n <md-option ng-value="vm_bull.currentUser.name" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div ng-if="vm_bull.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_bull.query.queue" ng-change="vm_bull.getContacts()">\n <md-option ng-value="vm_bull.defaultQueues" ng-if="vm_bull.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm_bull.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" ng-click="vm_bull.refresh && vm_bull.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-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.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_bull.contacts.rows">\n <td md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.calleridnum" license="vm_home.license" disabled="contact.lastAssignedTo !== vm_bull.currentUser.name"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitAt ? (contact.queuecallerexitAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitreason}}</td>\n <td md-cell class="list">{{contact.disposition}}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="contact.lastAssignedTo === vm_bull.currentUser.name || !contact.lastAssignedTo" ng-disabled="vm_bull.disable[contact.id]" ng-model="contact.assigned" aria-label="reserved" ng-change="vm_bull.reserved(contact, contact.disposition)">\n \x3c!-- <span>{{ contact.assigned ? \'DASHBOARDS.RESERVED\' : \'DASHBOARDS.FREE\' | translate }}</span> --\x3e\n </md-switch>\n </td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="contact.lastAssignedTo === vm_bull.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm_bull.disposition.length" ng-repeat="disposition in vm_bull.disposition">\n <md-button ng-click="vm_bull.reserved(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.contacts.count}}" md-on-paginate="vm_bull.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.query.filter = query" on-collapse="vm_voice.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm_voice.pickerModel.dateStart" ng-click="vm_voice.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm_voice.localizationMap" ng-model="vm_voice.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_voice.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_voice.query.lastAssignedTo" ng-change="vm_voice.getContacts()">\n <md-option ng-value="vm_voice.currentUser.name" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div ng-if="vm_voice.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm_voice.query.queue" ng-change="vm_voice.getContacts()">\n <md-option ng-value="vm_voice.defaultQueues" ng-if="vm_voice.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm_voice.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" ng-click="vm_voice.refresh && vm_voice.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-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.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_voice.contacts.rows">\n <td md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.calleridnum" license="vm_home.license" disabled="contact.lastAssignedTo !== vm_voice.currentUser.name"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.disposition}}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="contact.lastAssignedTo === vm_voice.currentUser.name || !contact.lastAssignedTo" ng-disabled="vm_voice.disable[contact.id]" ng-model="contact.assigned" aria-label="reserved" ng-change="vm_voice.reserved(contact, contact.disposition)">\n \x3c!-- <span>{{ contact.assigned ? \'DASHBOARDS.RESERVED\' : \'DASHBOARDS.FREE\' | translate }}</span> --\x3e\n </md-switch>\n </td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="contact.lastAssignedTo === vm_voice.currentUser.name">\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 <md-menu-content width="1">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm_voice.disposition.length" ng-repeat="disposition in vm_voice.disposition">\n <md-button ng-click="vm_voice.reserved(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.contacts.count}}" md-on-paginate="vm_voice.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span></md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)"></div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'"></div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getChatInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getChatInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getChatInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_WEBSITE">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getChatInteractions()">\n <md-option ng-value="chatAccount.id" ng-repeat="chatAccount in vm.chatAccounts.rows">{{chatAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getChatInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getChatInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </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.getChatInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.WEBSITE\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="chatInteraction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': chatInteraction.unread}">\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{chatInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!chatInteraction.closed && chatInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in chatInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!chatInteraction.closed && chatInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'chat\')" layout-margin>{{chatInteraction.unread}}</span>\n <md-icon ng-if="chatInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(chatInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{chatInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <div layout="row" ng-if="chatInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{chatInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{chatInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!chatInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell>\n <span ng-if="chatInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="chatInteraction.disposition">- {{chatInteraction.disposition}}</span></span>\n <md-tooltip ng-if="chatInteraction.closed">{{chatInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!chatInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="chatInteraction.substatus"> - {{chatInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(chatInteraction)}}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, chatInteraction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(chatInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="chatInteraction.Tags.length">\n <div ng-if="chatInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': chatInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{chatInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="chatInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in chatInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, chatInteraction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadChatInteraction($event, chatInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Chat\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card>\n <md-toolbar class="md-table-toolbar md-default table-header red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_LIST">Select a list</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getContacts()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" 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 <md-button class="md-icon-button interaction-new" 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 </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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | 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>{{\'DASHBOARDS.TAGS\' | 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(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax">{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email">{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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(contact.id)" 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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="Voice">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="Bull">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="Chat">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="Email">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="Sms">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="Open Channel">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="Fax">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\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="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\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_bull.getSize(vm_bull.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_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.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_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n \x3c!-- <th md-column>{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n \x3c!-- <td md-cell class="dialActive ">\n <md-icon ng-if="queue.type === \'outbound\'" md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n <md-icon ng-if="queue.type === \'inbound\'" md-colors="{color: \'green\'}" md-font-icon="icon-check"></md-icon>\n </td> --\x3e\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_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>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ngCloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.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_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\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_voice.getSize(vm_voice.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_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.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_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getFaxInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getFaxInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getFaxInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getFaxInteractions()">\n <md-option ng-value="faxAccount.id" ng-repeat="faxAccount in vm.faxAccounts.rows">{{faxAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getFaxInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getFaxInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">{{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getFaxInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="faxInteraction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': faxInteraction.unread}">\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{faxInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!faxInteraction.closed && faxInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in faxInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!faxInteraction.closed && faxInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'fax\')" layout-margin>{{faxInteraction.unread}}</span>\n <md-icon ng-if="faxInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(faxInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{faxInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <div layout="row" ng-if="faxInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{faxInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{faxInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!faxInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell>\n <span ng-if="faxInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="faxInteraction.disposition">- {{faxInteraction.disposition}}</span></span>\n <md-tooltip ng-if="faxInteraction.closed">{{faxInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!faxInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="faxInteraction.substatus"> - {{faxInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(faxInteraction)}}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, faxInteraction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(faxInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="faxInteraction.Tags.length">\n <div ng-if="faxInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': faxInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{faxInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="faxInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in faxInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, faxInteraction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadFaxInteraction($event, faxInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getMailInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getMailInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getMailInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column" ng-if="vm.query.closed == 0">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_SUBSTATUS">Select a sub status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.substatus" ng-change="vm.getMailInteractions()">\n <md-option ng-repeat="subStatus in vm.subStatuses.rows" ng-value="subStatus.name">{{subStatus.name}}</md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NONE"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getMailInteractions()">\n <md-option ng-value="mailAccount.id" ng-repeat="mailAccount in vm.mailAccounts.rows">{{mailAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getMailInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getMailInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">{{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getMailInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject" style="width:200px">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="mailInteraction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': mailInteraction.unread}">\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{mailInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!mailInteraction.closed && mailInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in mailInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!mailInteraction.closed && mailInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'mail\')" layout-margin>{{mailInteraction.unread}}</span>\n <md-icon ng-if="mailInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(mailInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && mailInteraction.lastMsgBody" class="tooltip-preview">\n <span class="text-truncate font-size-12" style="width:200px">{{mailInteraction.subject}}</span>\n <md-card class="tooltip-preview-text" ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}">\n <md-card-content>{{mailInteraction.lastMsgBody}}<br>...</md-card-content>\n </md-card>\n </div>\n <span ng-if="!mailInteraction.lastMsgBody || !vm.setting.enableEmailPreview" class="text-truncate font-size-12" style="width:200px">{{mailInteraction.subject}}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{mailInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <div layout="row" ng-if="mailInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{mailInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{mailInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!mailInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell>\n <span ng-if="mailInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="mailInteraction.disposition">- {{mailInteraction.disposition}}</span></span>\n <md-tooltip ng-if="mailInteraction.closed">{{mailInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!mailInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="mailInteraction.substatus"> - {{mailInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(mailInteraction)}}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, mailInteraction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(mailInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="mailInteraction.Tags.length">\n <div ng-if="mailInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': mailInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{mailInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="mailInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in mailInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, mailInteraction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMailInteraction($event, mailInteraction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMailInteraction($event, mailInteraction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_LIST">Select a list</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\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-select>\n </div>\n <div layout="column">\n <span class="font-size-10" translate="CONTACTMANAGER.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getContacts()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button interaction-reload" 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 <md-button class="md-icon-button interaction-new" 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 </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="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | 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>{{\'DASHBOARDS.TAGS\' | 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">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax">{{contact.fax}}</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].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getOpenchannelInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getOpenchannelInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getOpenchannelInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getOpenchannelInteractions()">\n <md-option ng-value="openchannelAccount.id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">{{openchannelAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getOpenchannelInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getOpenchannelInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)">{{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getOpenchannelInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="openchannelInteraction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': openchannelInteraction.unread}">\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{openchannelInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!openchannelInteraction.closed && openchannelInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in openchannelInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!openchannelInteraction.closed && openchannelInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'openchannel\')" layout-margin>{{openchannelInteraction.unread}}</span>\n <md-icon ng-if="openchannelInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(openchannelInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{openchannelInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <div layout="row" ng-if="openchannelInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{openchannelInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{openchannelInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!openchannelInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell>\n <span ng-if="openchannelInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="openchannelInteraction.disposition">- {{openchannelInteraction.disposition}}</span></span>\n <md-tooltip ng-if="openchannelInteraction.closed">{{openchannelInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!openchannelInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="openchannelInteraction.substatus"> - {{openchannelInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(openchannelInteraction)}}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(openchannelInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="openchannelInteraction.Tags.length">\n <div ng-if="openchannelInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': openchannelInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{openchannelInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="openchannelInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in openchannelInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, openchannelInteraction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, openchannelInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Openchannel\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="VOICE.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'VOICE.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getVoiceRecordings()" placeholder="{{ \'VOICE.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="VOICE.SELECT_TYPE">Select a type</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.type" ng-change="vm.getVoiceRecordings()">\n <md-option value="internal" translate="VOICE.INTERNAL">Internal</md-option>\n <md-option value="inbound" translate="VOICE.INBOUND">Inbound</md-option>\n <md-option value="outbound" translate="VOICE.OUTBOUND">Outbound</md-option>\n <md-option value="dialer" translate="VOICE.DIALER">Dialer</md-option>\n <md-option ng-value="null" translate="VOICE.ALL">All</md-option>\n </md-select>\n </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>{{ \'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">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </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>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\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, 50, 100, 250]" 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/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n \x3c!-- <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar> --\x3e\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="MOTIONDIALER.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'VOICE.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getScheduledCalls()" placeholder="{{ \'MOTIONDIALER.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div ng-if="vm.queueCampaigns.count" layout="column">\n <span class="font-size-10" translate="MOTIONDIALER.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.VoiceQueueId" ng-change="vm.getScheduledCalls()">\n <md-option ng-value="undefined"><em translate="MOTIONDIALER.ALL">All</em></md-option>\n <md-option ng-value="queueCampaign.id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">{{queueCampaign.name}}</md-option>\n </md-select>\n </div>\n \x3c!-- <div layout="column">\n <span class="font-size-10" translate="MOTIONDIALER.SELECT_TYPE">Select type</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.recallme" ng-change="vm.getScheduledCalls()">\n <md-option ng-value="undefined"><em translate="MOTIONDIALER.ALL">All</em></md-option>\n <md-option ng-value="1" translate="MOTIONDIALER.RECALLME">Recall me</md-option>\n <md-option ng-value="0" translate="MOTIONDIALER.INQUEUE">Recall in queue</md-option>\n </md-select>\n </div> --\x3e\n <md-button class="md-icon-button" ng-click="vm.getScheduledCalls()" aria-label="refresh scheuled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\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.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\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="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}"></md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\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.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getSmsInteractions()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_READ_UNREAD">Select Read/Unread</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.read" ng-change="vm.getSmsInteractions()">\n <md-option value="0" translate="DASHBOARDS.UNREAD">READ</md-option>\n <md-option value="1" translate="DASHBOARDS.READ">UNREAD</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_STATUS">Select a status</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.closed" ng-change="vm.getSmsInteractions()">\n <md-option value="0" translate="DASHBOARDS.OPENED">OPENED</md-option>\n <md-option value="1" translate="DASHBOARDS.CLOSED">CLOSED</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_ACCOUNT">Select an account</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.account" ng-change="vm.getSmsInteractions()">\n <md-option ng-value="smsAccount.id" ng-repeat="smsAccount in vm.smsAccounts.rows">{{smsAccount.name}}</md-option>\n <md-option ng-value="null" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.UserId" ng-change="vm.getSmsInteractions()">\n <md-option ng-value="vm.user.id" translate="DASHBOARDS.ME"></md-option>\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n </md-select>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_TAG">Select a tag</span>\n <md-select id="tags" placeholder="Tags" multiple="true" class="font-size-12 no-margin" ng-model="vm.query.tag" ng-change="vm.getSmsInteractions()" style="color:white;">\n <md-option ng-repeat="tag in vm.tags.rows" ng-value="tag.id">{{tag.name}}</md-option>\n </md-select>\n </div>\n <div layout="column">\n <md-button class="md-icon-button interaction-reload" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button interaction-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">{{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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.getSmsInteractions">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column style="width:15px">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column style="width:180px">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column style="width:80px">{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.ACCOUNT\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span tranlsate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="smsInteraction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': smsInteraction.unread}">\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{smsInteraction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!smsInteraction.closed && smsInteraction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in smsInteraction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersByKey[u.id].fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column">\n <span ng-if="!smsInteraction.closed && smsInteraction.unread" class="badge white-fg" ng-class="vm.getColorByChannel(\'sms\')" layout-margin>{{smsInteraction.unread}}</span>\n <md-icon ng-if="smsInteraction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="font-size-12 text-truncate" style="width:180px" layout-margin>{{vm.getContactLabel(smsInteraction)}}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <span class="font-size-10 text-truncate">{{smsInteraction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <div layout="row" ng-if="smsInteraction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{smsInteraction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{smsInteraction.lastMsgAt | formatdate }}</span>\n </div </div> <span ng-if="!smsInteraction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell>\n <span ng-if="smsInteraction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="smsInteraction.disposition">- {{smsInteraction.disposition}}</span></span>\n <md-tooltip ng-if="smsInteraction.closed">{{smsInteraction.closedAt | formatdate }}</md-tooltip>\n <span ng-if="!smsInteraction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="smsInteraction.substatus"> - {{smsInteraction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell class="user">\n <span class="font-size-12 text-truncate" style="width:120px">{{vm.getUserLabel(smsInteraction)}}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, smsInteraction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(smsInteraction) }}\n </td>\n <td md-cell>\n <div ng-if="smsInteraction.Tags.length">\n <div ng-if="smsInteraction.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': smsInteraction.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{smsInteraction.Tags[0].name}}</span>\n </div>\n <div ng-if="smsInteraction.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in smsInteraction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\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="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="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, smsInteraction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadSmsInteraction($event, smsInteraction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\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-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="VOICE.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'VOICE.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getVoiceCalls()" placeholder="{{ \'VOICE.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="VOICE.SELECT_TYPE">Select a type</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.type" ng-change="vm.getVoiceCalls()">\n <md-option value="internal" translate="VOICE.INTERNAL">Internal</md-option>\n <md-option value="inbound" translate="VOICE.INBOUND">Inbound</md-option>\n <md-option value="outbound" translate="VOICE.OUTBOUND">Outbound</md-option>\n <md-option value="dialer" translate="VOICE.DIALER">Dialer</md-option>\n <md-option ng-value="null" translate="VOICE.ALL">All</md-option>\n </md-select>\n </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.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="8">\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="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{voiceCall.type}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{voiceCall.userDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></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="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.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\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, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></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>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }} </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'"></md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'"></div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'"></div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="!vm.interaction.closed && vm.tab.channel != \'mail\' && vm.tab.channel !== \'fax\' && (vm.tab.channel != \'sms\' || !vm.tab.spy)" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'"></div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'"></md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",'<md-dialog class="compose-dialog-fax" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n \x3c!-- <input ng-model="vm.message.subject" type="text"> --\x3e\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n \x3c!-- <md-icon md-font-icon="icon-close" class="s16"></md-icon> --\x3e\n </md-button>\n </div>\n </div>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-style="{\n \'max-width\': {true: \'620px\', false: \'90%\'}[ vm.secret ],\n \'width\': {true: \'620px\', false: \'100%\'}[ vm.secret ],\n \'max-height\': {true: undefined, false: \'97%\'}[ vm.secret ]\n }">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </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.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text">\n </md-input-container>\n\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n\n <md-button ng-click="vm.deleteAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16"></md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} - {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeOpenchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></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="DASHBOARDS.DISPOSITIONS">Dispositions</label>\n <md-select name="disposition" ng-model="vm.interaction.disposition" required>\n \x3c!-- <md-select ng-disabled="vm.interaction.closed && vm.interaction.disposition" name="disposition" ng-model="vm.interaction.disposition" required> --\x3e\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-value="d.name" ng-repeat="d in vm.dispositions.rows">{{ d.name }}</md-option>\n <md-option ng-value="gd.name" ng-repeat="gd in vm.globalDispositions.rows">{{ gd.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n \x3c!-- <textarea ng-disabled="vm.interaction.closed && vm.interaction.disposition" ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></textarea> --\x3e\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></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 \x3c!-- <md-dialog-actions ng-if="!vm.interaction.closed || !vm.interaction.disposition" layout="row" layout-align="space-between center"> --\x3e\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.saveDisposition(true)" class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && vm.interaction.disposition" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.interaction.disposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" class="send-button md-accent md-raised" ng-if="vm.interaction.closed" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></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-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\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.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" 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/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\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="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type" required>\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n <div ng-messages="transferForm.type.$error" ng-show="transferForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.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.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows" ng-if="vm.currentUser.id != agent.id">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent 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 \x3c!-- <md-dialog-actions ng-if="!vm.interaction.closed || !vm.interaction.disposition" layout="row" layout-align="space-between center"> --\x3e\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.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align "center center" flex>\n <div layout="row" layout-align="center center" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{item.browserName}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{item.osName}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{item.deviceModel}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{item.referer}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Customer IP</p>\n <h4>{{item.customerIp}}</h4>\n </div>\n </md-list-item>\n <md-divider></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{item.ratingMessage}}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled>\n </md-input-container>\n\n <md-input-container ng-if="vm.tab.channel != \'fax\'" class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled>\n </md-input-container>\n\n <md-input-container ng-if="vm.tab.channel == \'fax\'" class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'"></div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'"></div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'"></div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'"></div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{item.externalUrl}}" target="_blank">\n <h4>{{item.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{item.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-if="item.ChatWebsiteId">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'"></div>\n </div>\n <div ng-if="item.MailAccountId">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'"></div>\n </div>\n\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{item.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <md-list-item ng-if="item.Tags.length">\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<md-content layout="column" layout-align="end center">\n <div layout-margin>\n <md-input-container>\n <md-select ng-model="vm.channel" placeholder="Channel">\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL">All</md-option>\n <md-option ng-value="\'voice\'" translate="DASHBOARDS.VOICE">Voice</md-option>\n <md-option ng-value="\'chat\'">Chat</md-option>\n <md-option ng-value="\'mail\'">Mail</md-option>\n <md-option ng-value="\'sms\'">Sms</md-option>\n <md-option ng-value="\'fax\'">Fax</md-option>\n <md-option ng-value="\'openchannel\'">Openchannel</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div layout-margin layout="row" layout-align="space-between center">\n <div flex-gt-xs>\n <md-datepicker ng-model="vm.dateFrom" md-placeholder="Enter date"></md-datepicker>\n </div>\n\n <div flex-gt-xs>\n <md-datepicker ng-model="vm.dateTo" md-placeholder="Enter date"></md-datepicker>\n </div>\n </div>\n</md-content>\n\n<div id="timeline" ms-timeline="vm.timelineOptions" layout="column" ng-if="vm.journey && vm.journey.length">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey | getChannelByItem:vm.channel:vm.dateFrom:vm.dateTo | orderBy:\'-createdAt\'">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div class="header p-6" layout="row" layout-align="space-between center">\n\n <md-button class="md-fab md-mini" aria-label="icon-channel" ng-class="vm.getColorByItem(item) + \'-bg\'">\n <md-icon ng-if="item.FaxAccountId" md-font-icon="icon-deskphone"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-google-earth"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text"></md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email"></md-icon>\n <md-icon ng-if="item.ChatWebsiteId" md-font-icon="icon-hangouts"></md-icon>\n <md-icon ng-if="item.amaflags" md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate">#{{item.id}} - {{ item.Account.key || item.destination }}</span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-hide="item.showMore" ng-click="item.showMore = !item.showMore" translate="DASHBOARDS.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="item.showMore" ng-click="item.showMore = !item.showMore" translate="DASHBOARDS.HIDE_DETAILS">\n Hide Details\n </a>\n </span>\n </div>\n\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n\n </div>\n\n <div ng-if="item.showMore">\n <div ng-if="!item.amaflags" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'"></div>\n <div ng-if="item.amaflags" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'"></div>\n </div>\n\n <md-divider></md-divider>\n\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && !amaflags" class="text-truncate white-fg">\n <span class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.CLOSED\' | translate}} ({{ item.disposition || (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate)}})">{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.CLOSED\' | translate}} ({{ item.disposition || (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }})</span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && !item.amaflags" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}<span ng-if="item.substatus"> - {{ item.substatus }}</span></span>\n <span ng-if="item.amaflags" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.DISPOSITION\' | translate}}: {{ item.userDisposition || \'No Dispose\'}}">{{ \'DASHBOARDS.DISPOSITION\' | translate}}: {{ item.userDisposition || (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate)}}</span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && vm.isMyAccount(item)" ng-disabled="item.amaflags" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction($event, item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n\n </div>\n </md-card>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</div>\n<div ng-if="!vm.journey || !vm.journey.length" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{item.type ? item.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4>{{item.source ? item.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4>{{item.destination ? item.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4>{{item.callerid ? item.callerid : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{item.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{item.uniqueid ? item.uniqueid : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{item.endtime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{item.duration ? item.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{item.note ? item.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{item.subject}}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 ng-if="item.threadId" translate="DASHBOARDS.PUBLIC">Public</h4>\n <h4 ng-if="!item.threadId" translate="DASHBOARDS.PRIVATE">Private</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n {{ vm.getLabelByMessage(message) }} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n {{ vm.getLabelByMessage(message) }} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n {{ vm.getLabelByMessage(message) }} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n </div>\n <div ng-if="!message.AttachmentId" ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.timelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon><span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">{{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">[{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)"><strong>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate">{{ message.originTo || message.to }}</span></div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0"><em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are registered as a</span> <span class="blue-grey">CC</span></em></div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0"><em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are registered as a</span> <span class="red-fg">BCC</span></em></div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail">{{message.from}}</span>\n <span class="detail">{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc">{{ message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc">{{ message.cc }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc">{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'">{{message.from.indexOf(vm.contact.email) >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n \x3c!-- <md-button class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button> --\x3e\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon><span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">{{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> - {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'"></div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'"></div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'"></div>\n </div>\n </div>\n <md-button ng-if="vm.tab.channel !== \'mail\'" class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\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.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-menu class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n</md-menu>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime" interval="1000">{{ days > 0 ? days + \'d\' : \'\' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.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-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | 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 </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\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 </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 \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 </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 </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_MANAGED_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_MANAGED_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_MANAGED_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 </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.MANAGED_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.MANAGED_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.MANAGED_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 \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 </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.ABANDONED_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.ABANDONED_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.ABANDONED_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 </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'),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.VOICE_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.VOICE_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.VOICE_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) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.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-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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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/fax/user.general.fax.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-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.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-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.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-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.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-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions 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 \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 </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 </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.OPENED\' | 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.OPENED_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.OPENED\' | 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 </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.MANAGED\' | 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.MANAGED_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.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\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 </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 \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 </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 \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\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 </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\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\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 </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.MANAGED_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.MANAGED_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.MANAGED_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="25">\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 </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.UNMANAGED_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.UNMANAGED_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.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\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 ng-if="vm.hasPermission()" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasPermission()" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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.VOICE_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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" aria-label="trunk" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'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 <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\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/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</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/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.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="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'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 ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable 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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag 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.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\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" ng-required="true" 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}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\n <span ng-if="vm.faxAccount.exten">{{vm.faxAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></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.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" aria-label="trunk" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" aria-label="List" required>\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 <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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 <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" aria-label="ECM" required autofocus>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" aria-label="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 name="maxrate" ng-model="vm.faxAccount.maxrate" aria-label="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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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 name="tech" ng-model="vm.faxAccount.tech" aria-label="SIP" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountFaxDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.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 ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="FAX.{{(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.selectedFaxAccountApps.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.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.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.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.faxAccountApps.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.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($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.editFaxAccountApp($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.editFaxAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</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.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($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.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'FAX.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'FAX.CONTACT\' | translate }}</th>\n <th md-column>{{ \'FAX.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'FAX.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'FAX.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'FAX.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'FAX.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\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.faxAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'FAX.KEY\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{faxAccount.key}}</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.interactionsgoto(faxAccount, $event)" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event)" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(faxAccount, $event)" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_FAXQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\n <span ng-if="vm.faxQueue.exten">{{vm.faxQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(faxQueue, $event)" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(faxQueue, $event)" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event)" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime 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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/fax/views/realtime/accounts/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="FAX.ACCOUNTS">Accounts</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!-- 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.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.KEY\' | translate }}</th>\n <th md-column>{{ \'FAX.TOTAL\' | translate }}</th>\n <th md-column>{{ \'FAX.IN\' | translate }}</th>\n <th md-column>{{ \'FAX.OUT\' | 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">\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="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\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.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getfaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/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="FAX.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'FAX.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'FAX.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'FAX.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'FAX.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'FAX.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'FAX.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'FAX.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'FAX.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"FAX.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"FAX.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()\" class=\"text-capitalize\" translate=\"FAX.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"FAX.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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"FAX.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-label=\"{page: '{{'FAX.PAGE' | translate}}:', rowsPerPage: '{{'FAX.ROWSPERPAGE' | translate}}:', of: '{{'FAX.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/fax/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="FAX.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 md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.READY\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | 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="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditFaxQueue($event, vm.queues[value])" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="FAX.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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/fax/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</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/fax/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="FAX.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 \x3c!-- <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n <i class="icon-information-outline grey-600-fg">\n <md-tooltip>{{\'FAX.INFO\' | translate}}</md-tooltip>\n </i>\n </md-button> --\x3e\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | 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">\n <td md-cell colspan="3">\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 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>{{\'FAX.\' + 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>{{\'FAX.\' + 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="FAX.NO_REGISTRY">\n No Registry\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="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),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="/api/settings/1/logo_login" alt="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" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" 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/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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 Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\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">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" 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 ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\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" ng-if="!vm.license.custom">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 ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><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/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" 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.deskAccount.name" ng-required="true" autofocus>\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'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">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" aria-label="AuthType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl">\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'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\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.deskAccount.description">\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$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.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newDeskAccount" ng-click="vm.deleteDeskAccount($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/deskAccounts/deskAccounts.html",'<div id="deskAccounts" 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.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.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.selectedDeskAccounts =[]">\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-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.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="DESKACCOUNTS.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.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" 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.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedDeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="DESKACCOUNTS.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\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\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="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</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(deskAccount, $event)" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event)" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event)" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT 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 DESKACCOUNT BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" 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.deskConfiguration.name" ng-required="true" autofocus>\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'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 name="channel" ng-model="vm.deskConfiguration.channel" aria-label="Channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'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 name="type" ng-model="vm.deskConfiguration.type" aria-label="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="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'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.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$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.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($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/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" 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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.$invalid || deskAccountItemForm.$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="deskAccountItemForm.$invalid || deskAccountItemForm.$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="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.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="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.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/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" 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-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\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="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n <span ng-if="vm.deskAccount.exten">{{vm.deskAccount.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" 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-stretch-tabs="always" flex layout-fill 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="deskAccount-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.deskAccount.name" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" aria-label="AuthType" required>\n <md-option ng-value="\'basic\'">Basic</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 ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.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\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.deskAccount.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\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="deskAccount-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="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount)" 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.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\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="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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.createOrEditDeskConfiguration($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/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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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" 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" ng-required="true" 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 name="channel" ng-model="vm.freshdeskConfiguration.channel" aria-label="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 name="type" ng-model="vm.freshdeskConfiguration.type" aria-label="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" 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" 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}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\n <span ng-if="vm.freshdeskAccount.exten">{{vm.freshdeskAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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" 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" ng-required="true" 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 name="channel" ng-model="vm.salesforceConfiguration.channel" aria-label="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 name="type" ng-model="vm.salesforceConfiguration.type" aria-label="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" 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" 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}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\n <span ng-if="vm.salesforceAccount.exten">{{vm.salesforceAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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" ng-required="true">\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\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" ng-required="true">\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\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">{{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">{{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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" 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" ng-required="true" 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 name="channel" ng-model="vm.sugarcrmConfiguration.channel" aria-label="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 name="type" ng-model="vm.sugarcrmConfiguration.type" aria-label="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" 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" 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}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\n <span ng-if="vm.sugarcrmAccount.exten">{{vm.sugarcrmAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true">\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\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" ng-required="true">\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\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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" 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.vtigerAccount.name" ng-required="true" autofocus>\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\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.vtigerAccount.description">\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n\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.vtigerAccount.serverUrl">\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'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\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.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$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.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($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/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" 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.vtigerConfiguration.name" ng-required="true" autofocus>\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'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 name="channel" ng-model="vm.vtigerConfiguration.channel" aria-label="Channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'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 name="type" ng-model="vm.vtigerConfiguration.type" aria-label="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="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'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.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$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.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($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/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" 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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$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="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.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="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.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/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" 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-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\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="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n <span ng-if="vm.vtigerAccount.exten">{{vm.vtigerAccount.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" 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-stretch-tabs="always" flex layout-fill 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="vtigerAccount-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.vtigerAccount.name" ng-required="true" 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\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.vtigerAccount.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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n\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.vtigerAccount.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\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="vtigerAccount-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="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount)" 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.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\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="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditVtigerConfiguration($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/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" 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.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.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.selectedVtigerAccounts =[]">\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-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.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="VTIGERACCOUNTS.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.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" 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.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedVtigerAccounts($event)" aria-label="delete selected" translate translate-attr-label="VTIGERACCOUNTS.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\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\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.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.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(vtigerAccount, $event)" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event)" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event)" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT 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 VTIGERACCOUNT BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'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">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" aria-label="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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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\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\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" 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}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\n <span ng-if="vm.zendeskAccount.exten">{{vm.zendeskAccount.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" aria-label="Type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </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="INTEGRATIONS.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="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" aria-label="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 ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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" ng-required="true">\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\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\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\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\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" ng-required="true" 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 name="channel" ng-model="vm.zendeskConfiguration.channel" aria-label="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 name="type" ng-model="vm.zendeskConfiguration.type" aria-label="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" 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" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" 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.zohoAccount.name" ng-required="true" autofocus>\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" aria-label="Host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.zohoAccount.authToken" ng-required="true">\n <div ng-messages="zohoAccountForm[\'authToken\'].$error" ng-show="zohoAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\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.zohoAccount.serverUrl">\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'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\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.zohoAccount.description">\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$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.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newZohoAccount" ng-click="vm.deleteZohoAccount($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/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" 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.zohoConfiguration.name" ng-required="true" autofocus>\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'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 name="channel" ng-model="vm.zohoConfiguration.channel" aria-label="Channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'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 name="type" ng-model="vm.zohoConfiguration.type" aria-label="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="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'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.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$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.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($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/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" 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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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="zohoAccountItemForm.$invalid || zohoAccountItemForm.$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="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.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="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.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/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" 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-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\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="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n <span ng-if="vm.zohoAccount.exten">{{vm.zohoAccount.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" 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-stretch-tabs="always" flex layout-fill 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="zohoAccount-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.zohoAccount.name" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" aria-label="Host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.zohoAccount.authToken" ng-required="true">\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\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.zohoAccount.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\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.zohoAccount.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\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="zohoAccount-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="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount)" 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.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\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="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || subject.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || description.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'" 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>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'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 || field.idField}}</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 ng-if="vm_cc.currentUser.crudPermissions === 0 || vm_cc.currentUser.role === \'admin\'">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditZohoConfiguration($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/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" 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.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.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.selectedZohoAccounts =[]">\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-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.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="ZOHOACCOUNTS.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.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" 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.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedZohoAccounts($event)" aria-label="delete selected" translate translate-attr-label="ZOHOACCOUNTS.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\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\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="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].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="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(zohoAccount, $event)" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event)" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event)" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\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-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT 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 ZOHOACCOUNT BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT 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" ng-required="true" autofocus ng-disabled="!vm.newProject">\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\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\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\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/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newProject">\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\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\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 <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" 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 <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-ligth" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\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}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n <span ng-if="vm.project.exten">{{vm.project.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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) || (sessionsForm.$invalid) || (answersForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></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\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" read-only="false"></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-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</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.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($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 </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'JSCRIPTY.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'JSCRIPTY.ENDTIME\' | translate }}</th>\n <th md-column md-order-by="membername">{{ \'JSCRIPTY.MEMBERNAME\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'JSCRIPTY.CALLERIDNUM\' | translate }}</th>\n <th md-column md-order-by="completed">{{ \'JSCRIPTY.COMPLETE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.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.calleridnum}}</td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'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="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_dc.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\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.projectSessions.rows.length">\n <td md-cell colspan="8">\n <span class="text-boxed-ligth" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" 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="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project)">\n <div class="pb-16" layout="row" layout-align="space-between center">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS">Answers</div>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-ligth" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.clonedialog(project, $event)" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.sessionsgoto(project, $event)" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="email" ng-model="vm.mailAccount.email" ng-required="true">\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" aria-label="Service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" ng-required="true">\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" ng-required="true">\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</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/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\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.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.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="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'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 ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable 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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag 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.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$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.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($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" ng-required="true" 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}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\n <span ng-if="vm.mailAccount.exten">{{vm.mailAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></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.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\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="email" ng-model="vm.mailAccount.email" ng-required="true">\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$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 name="ListId" ng-model="vm.mailAccount.ListId" aria-label="List" required>\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 <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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="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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" aria-label="Service" required autofocus>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\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.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" ng-required="true">\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.IMAP_PORT_REQUIRED">IMAP_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.Imap.tls" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\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 class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.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 ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" min="1" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</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" min="1" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</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.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.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" aria-label="Service" required autofocus>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\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.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" ng-required="true">\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.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true">\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</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.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\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.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($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.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'MAIL.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | 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="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.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.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\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.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" 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.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 ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="MAIL.{{(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.selectedMailAccountApps.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.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.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.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.mailAccountApps.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.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($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.editMailAccountApp($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.editMailAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</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.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($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.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'MAIL.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'MAIL.CONTACT\' | translate }}</th>\n <th md-column>{{ \'MAIL.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'MAIL.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'MAIL.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'MAIL.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'MAIL.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\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.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </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.verifysmtpverifysmtp(mailAccount, $event)" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event)" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event)" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(mailAccount, $event)" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_MAILQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\n <span ng-if="vm.mailQueue.exten">{{vm.mailQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(mailQueue, $event)" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(mailQueue, $event)" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event)" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime 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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" 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.mailSubstatus.name" ng-required="true" autofocus>\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\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.mailSubstatus.description">\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$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.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($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/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" 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.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.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.selectedMailSubstatuses =[]">\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-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.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="MAILSUBSTATUSES.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.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" 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.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAILSUBSTATUSES.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\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\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="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.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.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.editdialog(mailSubstatus, $event)" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event)" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS 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 MAILSUBSTATUS BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/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="MAIL.ACCOUNTS">Accounts</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!-- 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.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column>{{ \'MAIL.TOTAL\' | translate }}</th>\n <th md-column>{{ \'MAIL.IN\' | translate }}</th>\n <th md-column>{{ \'MAIL.OUT\' | translate }}</th>\n <th md-column>{{ \'MAIL.IMAP_STATUS\' | translate }}</th>\n <th md-column>{{ \'MAIL.SMTP_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.mailAccounts">\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="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</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.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getmailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/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="MAIL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MAIL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MAIL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MAIL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MAIL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MAIL.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'MAIL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'MAIL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"MAIL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"MAIL.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()\" class=\"text-capitalize\" translate=\"MAIL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"MAIL.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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"MAIL.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-label=\"{page: '{{'MAIL.PAGE' | translate}}:', rowsPerPage: '{{'MAIL.ROWSPERPAGE' | translate}}:', of: '{{'MAIL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/mail/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="MAIL.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 md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.READY\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | 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="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditMailQueue($event, vm.queues[value])" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="MAIL.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-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/mail/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</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/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" 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="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" aria-label="Sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n\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.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" 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-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\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="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n <span ng-if="vm.plugin.exten">{{vm.plugin.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="plugin-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="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="true">\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" aria-label="Sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="true">\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="true">\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n\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/marketplace/views/plugins/plugins.html",'<div id="plugins" 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-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.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.selectedPlugins =[]">\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="MARKETPLACE.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-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.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="PLUGINS.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.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.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.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="PLUGINS.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 <div ng-if="vm.installing">\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="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\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="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</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="MARKETPLACE.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 ng-if="!plugin.active">\n <md-button ng-click="vm.installplugin(plugin, $event)" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.editstate(plugin, $event)" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="plugin.active && plugin.type == \'script\'">\n <md-button ng-click="vm.stopplugin(plugin, $event)" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="plugin.active && plugin.type == \'script\'">\n <md-button ng-click="vm.restartplugin(plugin, $event)" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadfile2(plugin, $event)" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="plugin.active">\n <md-button ng-click="vm.uninstallplugin(plugin, $event)" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(plugin, $event)" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\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-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN 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!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="MARKETPLACE.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="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" aria-label="Trunk" 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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" aria-label="CallySquareProject" 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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority" aria-label="Priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.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-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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" 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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\n <span ng-if="vm.ivrCampaign.exten">{{vm.ivrCampaign.exten}}</span>\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 <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak>\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></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.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" aria-label="Trunk" 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 name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" aria-label="BackupTrunk">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</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 name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" ng-required="true">\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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\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 name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" aria-label="CallySquareProject" 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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/">\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n\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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</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 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 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" aria-label="DialOrderByScheduledAt" autofocus>\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\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" ng-required="true" 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\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>\n </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 <div class="ivrCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | 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 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{ vm_dc.arraypriority[hopper.priority].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_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="10">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="IVRCAMPAIGNS.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\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="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="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.ContactId}}</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 <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.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\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.ivrCampaignHopperFinals.rows.length">\n <td md-cell colspan="23">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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.clonedialog(ivrCampaign, $event)" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event)" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" aria-label="Trunk" 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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate 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 name="dialMethod" ng-model="vm.queueCampaign.dialMethod" aria-label="Method" 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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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 name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" aria-label="PredictiveOptimization">\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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</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" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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\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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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 <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\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 class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\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 <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 </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority" aria-label="Priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority 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.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" aria-label="Agent" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent 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.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 ng-hide="vm.loading" options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.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.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" 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 ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\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}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\n <span ng-if="vm.queueCampaign.exten">{{vm.queueCampaign.exten}}</span>\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 <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\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\n <div ng-cloak>\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></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.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) || (advancedpreviewForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" 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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\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\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 name="TrunkId" ng-model="vm.queueCampaign.TrunkId" aria-label="Trunk" 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 name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" aria-label="BackupTrunk">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</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 ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" aria-label="Interval" 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.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" aria-label="CheckDuplicate" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" ng-required="true">\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</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\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 name="dialMethod" ng-model="vm.queueCampaign.dialMethod" aria-label="Method" 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-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</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 name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" aria-label="PredictiveOptimization">\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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</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" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" aria-label="Strategy" required>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" aria-label="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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" aria-label="CallySquareProject">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\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 <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" aria-label="CallySquareProject2">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" aria-label="CallySquareProjectPreview">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" aria-label="CallySquareProjectPreview2">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/">\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n\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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</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" ng-required="true" 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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</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 ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" 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" ng-required="true">\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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.queueCampaign.autopause" aria-label="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 name="ringinuse" ng-model="vm.queueCampaign.ringinuse" aria-label="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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" aria-label="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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" aria-label="MonitorFormat">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" aria-label="SetInterfaceVariables">\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 name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" aria-label="SetQueueVariables">\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 name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" aria-label="SetQueueEntryVariables">\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 <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" aria-label="DialOrderByScheduledAt">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview 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.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" 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" ng-required="true">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'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 ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="monitor_format" ng-model="vm.queueCampaign.monitor_format" aria-label="MonitorFormat">\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="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'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.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" aria-label="DialOrderByScheduledAt">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme 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.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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" ng-required="true" 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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" 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>\n </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 <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd 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.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0">\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</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 hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\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 <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLAGENT\' | 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 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{ vm_dc.arraypriority[hopper.priority].option }}</td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'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_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="12">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\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="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="QUEUECAMPAIGNS.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\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="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="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.ContactId}}</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 <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.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\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.queueCampaignHopperFinals.rows.length">\n <td md-cell colspan="23">\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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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.clonedialog(queueCampaign, $event)" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event)" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/abandonedcalls/view.html",' <md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 black-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.lastAssignedTo" ng-change="vm.getContacts()">\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents.rows">{{agent.name}}</md-option>\n </md-select>\n </div>\n <div ng-if="vm.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.queue" ng-change="vm.getContacts()">\n <md-option ng-value="undefined" ng-if="vm.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button" ng-click="vm.refresh && 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-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\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="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | 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 md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="list">{{contact.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitAt ? (contact.queuecallerexitAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.queuecallerexitreason}}</td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="list">{{contact.disposition}}</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="2">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">Assigned a</md-button>\n <md-menu-content>\n <md-menu-item ng-if="contact.lastAssignedTo">\n <md-button ng-click="vm.assignedA(contact)"><em translate="DASHBOARDS.NONE">Not Assigned</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignedA(contact,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.disposition.length" ng-repeat="disposition in vm.disposition">\n <md-button ng-click="vm.disposed(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>'),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; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'MOTIONDIALER.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'MOTIONDIALER.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'MOTIONDIALER.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'MOTIONDIALER.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'MOTIONDIALER.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'MOTIONDIALER.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"MOTIONDIALER.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $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()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" 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-label=\"{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.context)">{{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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 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}} ({{(queue.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (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.outboundDropCallsDayTimeout) ? (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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 md-order-by="name">{{ \'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 md-order-by="dialActive">{{ \'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="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(vm.queues[value].talking || 0) + (vm.queues[value].pTalking || 0)}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].originated || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].message ? (\'MOTIONDIALER.\'+vm.queues[value].message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].dialMethod || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].Trunk ? vm.queues[value].Trunk.name : \'--\'}}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{vm.queues[value].dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{vm.queues[value].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.createOrEditMotionDialerQueue($event, vm.queues[value])" 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, vm.queues[value])" 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'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 <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\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" 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/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</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/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" md-maxlength="255" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.TEXT_MAX_LENGTH" translate-values=\'{max: 255}\'>Text must have a maximum length equal to 255</span>\n </div>\n\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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable 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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag 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.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.openchannelCannedAnswer.description">\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($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" ng-required="true" 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" 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" 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}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\n <span ng-if="vm.openchannelAccount.exten">{{vm.openchannelAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></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.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\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 <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" aria-label="MapKey">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.value" ng-repeat="mapKey in vm.attributes">{{ mapKey.option }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.value" ng-repeat="mapKey in vm.customFields">{{ mapKey.option }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey 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.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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text});" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus ng-disabled="true">\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n\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.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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</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.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\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.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($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.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'OPENCHANNEL.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | 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="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.value}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>{{openchannelCannedAnswer.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.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\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.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" 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.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 ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="OPENCHANNEL.{{(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.selectedOpenchannelAccountApps.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.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.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.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.openchannelAccountApps.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.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($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.editOpenchannelAccountApp($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.editOpenchannelAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</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.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($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.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'OPENCHANNEL.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.CONTACT\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'OPENCHANNEL.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'OPENCHANNEL.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'OPENCHANNEL.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'OPENCHANNEL.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\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.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ ListId = vm.lists[openchannelAccount.ListId]; ListId.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.interactionsgoto(openchannelAccount, $event)" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event)" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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" 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/agentadd/agentadd.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.AGENTADD_OPENCHANNELQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\n <span ng-if="vm.openchannelQueue.exten">{{vm.openchannelQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(openchannelQueue, $event)" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event)" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event)" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime 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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/openchannel/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="OPENCHANNEL.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'OPENCHANNEL.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'OPENCHANNEL.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'OPENCHANNEL.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'OPENCHANNEL.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'OPENCHANNEL.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'OPENCHANNEL.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'OPENCHANNEL.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"OPENCHANNEL.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"OPENCHANNEL.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()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"OPENCHANNEL.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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"OPENCHANNEL.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-label=\"{page: '{{'OPENCHANNEL.PAGE' | translate}}:', rowsPerPage: '{{'OPENCHANNEL.ROWSPERPAGE' | translate}}:', of: '{{'OPENCHANNEL.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/openchannel/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="OPENCHANNEL.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 md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.READY\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | 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="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditOpenchannelQueue($event, vm.queues[value])" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="OPENCHANNEL.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-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/openchannel/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</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/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</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.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="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$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="customizationsForm" 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" ng-required="true">\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\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()" 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()" 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 ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred 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.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.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="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.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="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.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="{{preferredimage.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" ng-required="true" 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 ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</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="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" ng-required="true">\n <div ng-messages="generalForm[\'chatTimeout\'].$error" ng-show="generalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURNADDR">Turnaddr</label>\n <input type="text" name="turnaddr" ng-model="vm.general.turnaddr">\n <div ng-messages="generalForm[\'turnaddr\'].$error" ng-show="generalForm[\'turnaddr\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURNADDR_REQUIRED">Turnaddr field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_USERNAME">Turn_Username</label>\n <input type="text" name="turnusername" ng-model="vm.general.turnusername">\n <div ng-messages="generalForm[\'turnusername\'].$error" ng-show="generalForm[\'turnusername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_USERNAME_REQUIRED">Turn_Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_PASSWORD">Turn_Password</label>\n <input type="text" name="turnpassword" ng-model="vm.general.turnpassword">\n <div ng-messages="generalForm[\'turnpassword\'].$error" ng-show="generalForm[\'turnpassword\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_PASSWORD_REQUIRED">Turn_Password field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv">\n <div ng-messages="generalForm[\'splitSizeCsv\'].$error" ng-show="generalForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf">\n <div ng-messages="generalForm[\'splitSizePdf\'].$error" ng-show="generalForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx">\n <div ng-messages="generalForm[\'splitSizeXlsx\'].$error" ng-show="generalForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx 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="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$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="globalForm" 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" ng-required="true" autofocus>\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'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 ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</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="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" ng-required="true">\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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="globalForm[\'stunaddr\'].$error" ng-show="globalForm[\'stunaddr\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURNADDR">Turnaddr</label>\n <input type="text" name="turnaddr" ng-model="vm.general.turnaddr">\n <div ng-messages="globalForm[\'turnaddr\'].$error" ng-show="globalForm[\'turnaddr\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURNADDR_REQUIRED">Turnaddr field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_USERNAME">Turn_Username</label>\n <input type="text" name="turnusername" ng-model="vm.general.turnusername">\n <div ng-messages="globalForm[\'turnusername\'].$error" ng-show="globalForm[\'turnusername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_USERNAME_REQUIRED">Turn_Username field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TURN_PASSWORD">Turn_Password</label>\n <input type="text" name="turnpassword" ng-model="vm.general.turnpassword">\n <div ng-messages="globalForm[\'turnpassword\'].$error" ng-show="globalForm[\'turnpassword\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TURN_PASSWORD_REQUIRED">Turn_Password field is required</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar 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.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" ng-required="vm.general.phoneBarAutoUpdater">\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl must be a valid url http://www.xcally.com</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report 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.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv">\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf">\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx">\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface 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.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment" aria-label="messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment 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.xcally.com/en/index.html#pricing-table2-h" 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 ng-if="!vm.license.demo && !vm.license.gray" 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"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></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 ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.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>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\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.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></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" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\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 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></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 flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\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\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</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" flex="33">\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\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</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" flex="33">\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'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</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-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</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" layout-align="space-between center">\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" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><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" layout-align="space-between center">\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.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\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/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\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" translate="SETTINGS.UPDATE_LICENSE">Update 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\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key 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.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\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 name="type" ng-model="vm.network.type" aria-label="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])$/" ng-required="true">\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\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])$/" ng-required="true">\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" 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.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" aria-label="SMTP_Service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</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" ng-required="true">\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\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" ng-required="true">\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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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="(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="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="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.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 <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" aria-label="SMTP_Service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'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" ng-required="true">\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'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\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" ng-required="true">\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'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 <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></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.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" 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" ng-required="true">\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\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 class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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="generalForm[\'description\'].$error" ng-show="generalForm[\'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-stretch-tabs="always" md-border-bottom flex layout-fill 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 class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</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.total / 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 == \'agi\' ? \'agi (Cally Square IVR)\' : 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 <id | name></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 <id | name | all></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 <id | name></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/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="SMS.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.query.filter = query; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'SMS.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'SMS.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'SMS.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'SMS.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'SMS.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'SMS.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'SMS.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'SMS.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"SMS.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $event)\" translate=\"SMS.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()\" class=\"text-capitalize\" translate=\"SMS.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><em translate=\"SMS.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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"SMS.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-label=\"{page: '{{'SMS.PAGE' | translate}}:', rowsPerPage: '{{'SMS.ROWSPERPAGE' | translate}}:', of: '{{'SMS.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e"),e.put("app/main/apps/sms/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="SMS.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 md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.READY\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | 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="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 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="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.createOrEditSmsQueue($event, vm.queues[value])" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentAdd($event, vm.queues[value])" translate="SMS.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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/sms/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-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</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/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" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" aria-label="Type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" aria-label="Method" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n\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\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/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</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/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" aria-label="Agent" required autofocus>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" aria-label="times" required autofocus>\n <md-option ng-value="1">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" md-maxlength="255" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.TEXT_MAX_LENGTH" translate-values=\'{max: 255}\'>Text must have a maximum length equal to 255</span>\n </div>\n\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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n\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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus>\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" aria-label="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="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" ng-required="true">\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'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 ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus>\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" aria-label="Variable">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable 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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" 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.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" aria-label="Tag" required autofocus>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag 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.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" 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.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.smsCannedAnswer.description">\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$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.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($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" ng-required="true" 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}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\n <span ng-if="vm.smsAccount.exten">{{vm.smsAccount.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></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.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" aria-label="List" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\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 <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" aria-label="Type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</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 class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" aria-label="Method" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\'">\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 ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i">\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" ng-required="true">\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text});" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( (vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text});" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification 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.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer 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.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" ng-required="true">\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy 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.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus ng-disabled="true">\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" ng-required="true">\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n\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.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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</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.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\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.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($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.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'SMS.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | 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="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.id}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.key}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.value}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.description}}</td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>{{smsCannedAnswer.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.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\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.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" 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.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 ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount)" 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 translate="VOICE.APPLICATIONS_LIST">\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="SMS.{{(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.selectedSmsAccountApps.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.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.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.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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.smsAccountApps.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.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($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.editSmsAccountApp($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.editSmsAccountApp($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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\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-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</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.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($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.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'SMS.STARTEDAT\' | translate }}</th>\n <th md-column>{{ \'SMS.CONTACT\' | translate }}</th>\n <th md-column>{{ \'SMS.AGENT\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'SMS.CLOSEDAT\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'SMS.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="note">{{ \'SMS.NOTES\' | translate }}</th>\n <th md-column md-order-by="tag">{{ \'SMS.TAGS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows">\n <td md-cell>{{interaction.id}}</td>\n <td md-cell>{{interaction.createdAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.Contact.firstName}}</td>\n <td md-cell>{{interaction.Owner.name}}</td>\n <td md-cell>{{interaction.closedAt | date:\'medium\'}}</td>\n <td md-cell>{{interaction.disposition}}</td>\n <td md-cell>{{interaction.note}}</td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\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="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.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\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.smsAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <span class="text-boxed-ligth" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" 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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ ListId = vm.lists[smsAccount.ListId]; ListId.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="phone ">{{smsAccount.phone}}</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.interactionsgoto(smsAccount, $event)" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(smsAccount, $event)" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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/agentadd/agentadd.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.AGENTADD_SMSQUEUE">Add Agent to 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 <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/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 <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}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\n <span ng-if="vm.smsQueue.exten">{{vm.smsQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" aria-label="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" min="1" max="2147483" ng-required="true">\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 ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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.teamadddialog(smsQueue, $event)" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(smsQueue, $event)" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event)" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime 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-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</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="phone ">{{agent.phone}}</td>\n <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</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.teamadddialog(agent, $event)" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true" ng-disabled="!vm.newAgent">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" aria-label="ShowWebControl">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true">\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-required="true" 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\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\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 <md-input-container ng-if="vm.agent.showWebBar == 0" 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 && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" ng-required="true">\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'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 <md-input-container ng-if="vm.newUser" 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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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\' && vm.isVoiceChannel()">\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/teamadd/teamadd.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 translate="STAFF.TEAMADD_AGENT">Add Team in AGENT</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/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}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\n <span ng-if="vm.agent.exten">{{vm.agent.exten}}</span>\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 <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"><span translate="STAFF.CHANNELS">Channels</span></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, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" 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"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" 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"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" 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"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" 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"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" 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"><span translate="FAX.FAX">Fax</span></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.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></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.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) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true" ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" aria-label="ShowWebControl">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</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" ng-required="true">\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone">\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile">\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\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 <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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" ng-disabled="true">\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n\n </div>\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()" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" aria-label="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\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" aria-label="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 name="type" ng-model="vm.agent.type" aria-label="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 name="allow" ng-model="vm.agent.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" aria-label="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="STAFF.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="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\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\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 <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" aria-label="MonitorExtension" required>\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension 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.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 ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" 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 ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true">\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 ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\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 ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" ng-required="true">\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableVideoRecording" aria-label="EnableVideoRecording"><span translate="STAFF.ENABLEVIDEORECORDING">EnableVideoRecording</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 ng-if="vm.agent.showWebBar == 0" 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 && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" ng-required="true">\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" ng-required="true" 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" ng-required="true">\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 <div class="agent-detail-form-container callforwarding 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.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true">\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber field is required</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc 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_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus>\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true">\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n\n </div>\n </md-input-container>\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 ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" ng-required="true">\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc 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_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" 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" ng-required="true" autofocus>\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'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\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="agent-detail-form-container general_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.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-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="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></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.agent.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" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-button ng-if="vm_pc.allowPermissions(child)" ng-disabled="!father.enabled || !child.enabled" class="md-fab md-mini md-primary" aria-label="Permissions" ng-click="vm_pc.addPermissions(child)">\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.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/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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true" ng-disabled="!vm.newTelephone">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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" ng-required="true" 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\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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\n <span ng-if="vm.telephone.exten">{{vm.telephone.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="true" ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone">\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile">\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n\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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" aria-label="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="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 name="nat" ng-model="vm.telephone.nat" aria-label="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 name="allow" ng-model="vm.telephone.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" aria-label="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="STAFF.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="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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" aria-label="Encryption" required>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 name="role" ng-model="vm.user.role" aria-label="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" ng-required="true">\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\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" ng-required="true" ng-disabled="!vm.newUser">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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\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" ng-required="true" 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\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.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">{{ \'\n 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" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_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.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" 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\n required</span>\n </div>\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n\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\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n 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/permissionadd/permissionadd.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 <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}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\n <span ng-if="vm.user.exten">{{vm.user.exten}}</span>\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>\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) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (general_permissionsForm.$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-stretch-tabs="always" flex layout-fill 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 name="role" ng-model="vm.user.role" aria-label="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" ng-required="true">\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\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" ng-required="true" ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\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\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" ng-required="true">\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.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone">\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile">\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n\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\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container security_suite 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.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus ng-disabled="true">\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" ng-disabled="true">\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n\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()" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" aria-label="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 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 name="nat" ng-model="vm.user.nat" aria-label="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 name="allow" ng-model="vm.user.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</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="\'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.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" aria-label="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="STAFF.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="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\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\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 ng-if="vm.currentUser.role === \'admin\' && vm.user.role !== \'admin\'" class="user-detail-form-container general_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.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.EDITPERMISSIONS">EditPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.user.crudPermissions" aria-label="EditPermissions" autofocus>\n\n <md-option ng-value="0"> {{ \'STAFF.READANDEDITANDDELETE\' | translate }} </md-option>\n\n <md-option ng-value="1"> {{ \'STAFF.READANDEDIT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="general_permissionsForm[\'crudPermissions\'].$error" ng-show="general_permissionsForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EDITPERMISSIONS_REQUIRED">EditPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\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\' && !father.hidden()"></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" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-button ng-if="vm_pc.allowPermissions(child)" ng-disabled="!father.enabled || !child.enabled" class="md-fab md-mini md-primary" aria-label="Permissions" ng-click="vm_pc.addPermissions(child)">\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n <md-switch 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 </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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </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\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="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | 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="8">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="phone ">{{user.phone}}</td>\n <td ng-click="vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</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 ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\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-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" md-maxlength="255" ng-required="true" 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\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\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.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\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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="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="4">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="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 ng-if="vm.currentUser.role == \'admin\'">\n <md-button ng-click="vm.useradddialog(customDashboard, $event)" translate="TOOLS.USERADD_CUSTOMDASHBOARD">\n useradd CustomDashboard\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.clonedialog(customDashboard, $event)" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event)" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone 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" ng-required="true" 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\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 <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),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 name="type" ng-model="vm.dashboarditem.type" aria-label="Type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | 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\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | 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 <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\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\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" aria-label="Timezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" aria-label="Metric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" aria-label="Serie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2" aria-label="Serie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3" aria-label="Serie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORTTYPE">ReportType</label>\n <md-select name="reportType" ng-model="vm.dashboarditem.reportType" aria-label="ReportType" required ng-change="vm.onReportTypeSelection()">\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="dashboarditemForm[\'reportType\'].$error" ng-show="dashboarditemForm[\'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.dashboarditem.type == \'web-report\' && vm.rootHasChildren" class="md-block">\n <label translate="TOOLS.REPORTFOLDER">ReportFolder</label>\n <md-select name="folder" ng-model="vm.dashboarditem.folder" aria-label="ReportFolder" ng-required="vm.rootHasChildren" ng-change="vm.onReportFolderSelection()">\n <md-option ng-value="folder" ng-repeat="folder in vm.reportFolders">{{ folder.text }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'folder\'].$error" ng-show="dashboarditemForm[\'folder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTFOLDER_REQUIRED">ReportFolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\' && vm.folderHasChildren" class="md-block">\n <label translate="TOOLS.REPORTSUBFOLDER">ReportSubfolder</label>\n <md-select name="subfolder" ng-model="vm.dashboarditem.subfolder" aria-label="ReportSubfolder" ng-required="vm.folderHasChildren" ng-change="vm.onReportSubfolderSelection()">\n <md-option ng-value="subfolder" ng-repeat="subfolder in vm.reportSubfolders">{{ subfolder.text }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'subfolder\'].$error" ng-show="dashboarditemForm[\'subfolder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTSUBFOLDER_REQUIRED">ReportSubfolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <md-select name="attrReport" ng-model="vm.dashboarditem.attrReport" aria-label="Report" required>\n <md-option ng-value="attrReport.id" ng-repeat="attrReport in vm.reports">{{ attrReport.name }} </br><span class="md-option-info-text">{{ attrReport.path }}</span> </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrReport\'].$error" ng-show="dashboarditemForm[\'attrReport\'].$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="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" aria-label="FilterVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" ng-required="true">\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | 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" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | 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" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link must be a valid url http://www.xcally.com</span>\n </div>\n\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/useradd/useradd.html",'<md-dialog class="customDashboard-dialog" aria-label="customDashboard">\n <form name="customDashboardForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="TOOLS.USERADD_CUSTOMDASHBOARD">Add User to customDashboard</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/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}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\n <span ng-if="vm.customDashboard.exten">{{vm.customDashboard.exten}}</span>\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 ng-cloak>\n <md-button ng-click="vm.useradddialog(vm.customDashboard, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="useradd" ng-if="vm.currentUser.role == \'admin\'">\n <md-tooltip><span translate="TOOLS.USERADD_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></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.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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\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="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\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/dispositions/create/dialog.html",'<md-dialog class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" 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.disposition.name" md-maxlength="255" ng-required="true" autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length equal to 255</span>\n </div>\n\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.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$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.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newDisposition" ng-click="vm.deleteDisposition($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/dispositions/dispositions.html",'<div id="dispositions" 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.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.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.selectedDispositions =[]">\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-dispositions-count">\n <span>{{vm.selectedDispositions.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="DISPOSITIONS.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.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" 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.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="DISPOSITIONS.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\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\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 width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dispositions.rows.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td md-cell ng-if="disposition.userpic"><img class="avatar" alt="{{disposition.name}}" ng-src="api/users/{{disposition.id}}/avatar" /></td>\n <td md-cell ng-if="!disposition.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{disposition.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">{{disposition.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="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(disposition, $event)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION 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 DISPOSITION BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\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" ng-required="true" 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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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" ng-required="true" 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}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\n <span ng-if="vm.interval.exten">{{vm.interval.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORTTYPE">ReportType</label>\n <md-select name="type" ng-model="vm.schedule.type" aria-label="ReportType" required ng-change="vm.onReportTypeSelection()">\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[\'type\'].$error" ng-show="scheduleForm[\'type\'].$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.rootHasChildren" class="md-block">\n <label translate="TOOLS.REPORTFOLDER">ReportFolder</label>\n <md-select name="folder" ng-model="vm.schedule.folder" aria-label="ReportFolder" ng-required="vm.rootHasChildren" ng-change="vm.onReportFolderSelection()">\n <md-option ng-value="folder" ng-repeat="folder in vm.reportFolders">{{ folder.text }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'folder\'].$error" ng-show="scheduleForm[\'folder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTFOLDER_REQUIRED">ReportFolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.folderHasChildren" class="md-block">\n <label translate="TOOLS.REPORTSUBFOLDER">ReportSubfolder</label>\n <md-select name="subfolder" ng-model="vm.schedule.subfolder" aria-label="ReportSubfolder" ng-required="vm.folderHasChildren" ng-change="vm.onReportSubfolderSelection()">\n <md-option ng-value="subfolder" ng-repeat="subfolder in vm.reportSubfolders">{{ subfolder.text }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subfolder\'].$error" ng-show="scheduleForm[\'subfolder\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORTSUBFOLDER_REQUIRED">ReportSubfolder field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.type == \'default\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <md-select name="DefaultReportId" ng-model="vm.schedule.DefaultReportId" aria-label="Report" required>\n <md-option ng-value="DefaultReportId.id" ng-repeat="DefaultReportId in vm.reports">{{ DefaultReportId.name }} </br><span class="md-option-info-text">{{ DefaultReportId.path }}</span> </md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'DefaultReportId\'].$error" ng-show="scheduleForm[\'DefaultReportId\'].$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.type == \'custom\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <md-select name="CustomReportId" ng-model="vm.schedule.CustomReportId" aria-label="Report" required>\n <md-option ng-value="CustomReportId.id" ng-repeat="CustomReportId in vm.reports">{{ CustomReportId.name }} </br><span class="md-option-info-text">{{ CustomReportId.path }}</span> </md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'CustomReportId\'].$error" ng-show="scheduleForm[\'CustomReportId\'].$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 name="output" ng-model="vm.schedule.output" aria-label="Output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$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 <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" ng-required="true">\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" aria-label="LastUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit 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.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" aria-label="MailAccount" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount 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="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</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.editdialog(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.runconfirm(schedule, $event)" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </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.downloadfile2(sound, $event)" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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!-- UPLOAD SOUND BUTTON --\x3e\n <md-button class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\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="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" 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-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" 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="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 your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\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()" ng-hide="vm.uploadState == \'uploading\'" 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" ng-required="true" 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\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\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.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" open-on-input="true"></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.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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 md-order-by="color">{{ \'TOOLS.COLOR\' | 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="5">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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 ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" aria-label="Channel" required ng-disabled="!vm.newTrigger">\n\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | 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 <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="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\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 name="action" ng-model="vm.action.action" aria-label="Action" required autofocus ng-disabled="!vm.newAction">\n\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'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\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | 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 name="data1" ng-model="vm.action.data1" aria-label="Project" 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 name="data1" ng-model="vm.action.data1" aria-label="Type" 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 name="data1" ng-model="vm.action.data1" aria-label="List" 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 == \'contactManager\'" class="md-block">\n <label translate="TOOLS.AUTOCREATECONTACT">AutoCreateContact</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="AutoCreateContact" required>\n\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </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.AUTOCREATECONTACT_REQUIRED">AutoCreateContact 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 name="data1" ng-model="vm.action.data1" aria-label="Type" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && vm.action.data1 == \'POST\'" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></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 name="data1" ng-model="vm.action.data1" aria-label="Integration" 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-option ng-value="\'desk\'">Desk</md-option>\n <md-option ng-value="\'zoho\'">Zoho</md-option>\n <md-option ng-value="\'vtiger\'">vTiger</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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 == \'desk\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="Account" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.deskAccounts">{{ 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 == \'zoho\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="Account" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.zohoAccounts">{{ 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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 name="data2" ng-model="vm.action.data2" aria-label="Account" 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 == \'vtiger\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" aria-label="Account" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.vtigerAccounts">{{ 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 == \'desk\' && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="Configuration" required>\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.deskConfigurations | 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 == \'zoho\' && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="Configuration" required>\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.zohoConfigurations | 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 name="data3" ng-model="vm.action.data3" aria-label="Configuration" 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 == \'integration\' && vm.action.data1 == \'vtiger\' && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="Configuration" required>\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.vtigerConfigurations | 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 name="data1" ng-model="vm.action.data1" aria-label="Type" 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" ng-required="true">\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\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" ng-required="true">\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\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\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 name="data2" ng-model="vm.action.data2" aria-label="Template" 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 name="data2" ng-model="vm.action.data2" aria-label="Template" 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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.action.action == \'motionbar\' || vm.action.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" aria-label="EventVariables" required>\n\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables 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.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" aria-label="Location" required>\n\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'1\'"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight field is required</span>\n </div>\n\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 name="field" ng-model="vm.allCondition.field" aria-label="Field" required autofocus>\n\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }} </md-option>\n\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }} </md-option>\n\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }} </md-option>\n\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | 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 name="operator" ng-model="vm.allCondition.operator" aria-label="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 == \'account\' && vm.trigger.channel == \'chat\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.chatAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'mail\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.mailAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'sms\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.smsAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'fax\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.faxAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\' && vm.trigger.channel == \'openchannel\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.openchannelAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Queue" 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="OutboundRoute" 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 name="value" ng-model="vm.allCondition.value" aria-label="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 <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</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 <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" aria-label="Value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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 name="field" ng-model="vm.anyCondition.field" aria-label="Field" required autofocus>\n\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }} </md-option>\n\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }} </md-option>\n\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }} </md-option>\n\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | 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 name="operator" ng-model="vm.anyCondition.operator" aria-label="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 == \'account\' && vm.trigger.channel == \'chat\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.chatAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'mail\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.mailAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'sms\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.smsAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'fax\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.faxAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\' && vm.trigger.channel == \'openchannel\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Account" required>\n <md-option ng-value="value.id" ng-repeat="value in vm.openchannelAccounts">{{ 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.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Queue" 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\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="OutboundRoute" 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 name="value" ng-model="vm.anyCondition.value" aria-label="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 <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</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 <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" aria-label="Value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</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}}\n <span ng-if="vm.trigger.name">{{vm.trigger.name}}</span>\n <span ng-if="vm.trigger.exten">{{vm.trigger.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" aria-label="Channel" required ng-disabled="true">\n\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | 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\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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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.value" md-cell>{{allCondition.value}}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.chatAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.mailAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.smsAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.faxAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>{{ value = vm_dc.openchannelAccounts[allCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>{{ vm_dc.callStatusValues[allCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>{{ vm_dc.interactionStatusValues[allCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>{{ vm_dc.messageStatusValues[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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="17">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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.value" md-cell>{{anyCondition.value}}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.chatAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.mailAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.smsAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.faxAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>{{ value = vm_dc.openchannelAccounts[anyCondition.value]; value.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && 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="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>{{ vm_dc.callStatusValues[anyCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>{{ vm_dc.interactionStatusValues[anyCondition.value].option }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>{{ vm_dc.messageStatusValues[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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="17">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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 == \'contactManager\'" md-cell>{{ \'TOOLS.\' + vm_dc.autoCreateContact[action.data2].option | uppercase | translate }}</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.data1" md-cell>{{action.data1}}</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 == \'urlForward\' && action.data1 == \'POST\'" md-cell>{{action.data7}}</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 == \'desk\'" md-cell>{{ data2 = vm_dc.deskAccounts[action.data2]; data2.name }}</td>\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>{{ data2 = vm_dc.zohoAccounts[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 == \'integration\' && action.data1 == \'vtiger\'" md-cell>{{ data2 = vm_dc.vtigerAccounts[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 ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="40">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\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" ng-required="true">\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\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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">\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\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\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\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/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone 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" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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 <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\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}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\n <span ng-if="vm.trunk.exten">{{vm.trunk.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></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-stretch-tabs="always" flex layout-fill 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" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\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\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" ng-required="true">\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\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[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" aria-label="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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" aria-label="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 name="dtmfmode" ng-model="vm.trunk.dtmfmode" aria-label="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 name="nat" ng-model="vm.trunk.nat" aria-label="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 name="qualify" ng-model="vm.trunk.qualify" aria-label="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 name="allow" ng-model="vm.trunk.allow" aria-label="AllowCodecs" required multiple>\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</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 name="insecure" ng-model="vm.trunk.insecure" aria-label="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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" aria-label="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 name="callcounter" ng-model="vm.trunk.callcounter" aria-label="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\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\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\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 name="usereqphone" ng-model="vm.trunk.usereqphone" aria-label="Add_phone_to_URI" 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 name="trustrpid" ng-model="vm.trunk.trustrpid" aria-label="Trust_Remote_Party_ID" 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 name="sendrpid" ng-model="vm.trunk.sendrpid" aria-label="Send_Remote_Party_ID_header" 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\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | 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 name="encryption" ng-model="vm.trunk.encryption" aria-label="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 name="transport" ng-model="vm.trunk.transport" aria-label="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 <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl">\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl 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 name="otherFields" ng-model="vm.trunk.otherFields" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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\\\'\' : \'\\\'grey\\\'\'}}}" 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.clonedialog(trunk, $event)" translate="TOOLS.CLONE_TRUNK">\n clone 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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | 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="7">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </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.editdialog(chanSpy, $event)" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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" ng-required="true">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" aria-label="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 <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="chanSpyForm[\'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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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 name="recordingFormat" ng-model="vm.chanSpy.recordingFormat" aria-label="recordingFormat" required>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'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="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\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/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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\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\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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundroute.context" aria-label="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\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 name="project" ng-model="vm.agi.project" aria-label="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" ng-required="true" 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\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\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" ng-required="true" 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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="trunk" ng-model="vm.externaldial.trunk" aria-label="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" ng-required="true">\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="context" ng-model="vm.goto.context" aria-label="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" ng-required="true">\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\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" ng-required="true">\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\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 name="appdata" ng-model="vm.hangup.appdata" aria-label="Hangup_Cause" 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 name="user" ng-model="vm.internaldial.user" aria-label="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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 name="appdata" ng-model="vm.playback.appdata" aria-label="Audio_Files" 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\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 name="queue" ng-model="vm.queue.queue" aria-label="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\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\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 name="sound" ng-model="vm.queue.sound" aria-label="Announce_Overrides">\n <md-option ng-value="\'\'">None</md-option>\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-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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or equal than</span> <span>0</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 name="multipleUsers" ng-model="vm.ringgroup.multipleUsers" aria-label="User" 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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 <md-select name="name" ng-model="vm.set.name" aria-label="Variable" required autofocus>\n <md-option ng-value="name.name" ng-repeat="name in vm.variables">{{ name.name }}</md-option>\n </md-select>\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" ng-required="true">\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\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 name="voiceMail" ng-model="vm.voicemail.voiceMail" aria-label="Mailbox@Context" 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\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}}\n <span ng-if="vm.inboundroute.name">{{vm.inboundroute.name}}</span>\n <span ng-if="vm.inboundroute.exten">{{vm.inboundroute.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundroute.context" aria-label="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\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 translate="VOICE.APPLICATIONS_LIST">\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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" 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>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="inboundroutes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalroute.context" aria-label="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\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 name="project" ng-model="vm.agi.project" aria-label="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" ng-required="true" 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\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\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" ng-required="true" 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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="trunk" ng-model="vm.externaldial.trunk" aria-label="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\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 name="context" ng-model="vm.goto.context" aria-label="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" ng-required="true">\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\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" ng-required="true">\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\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 name="appdata" ng-model="vm.hangup.appdata" aria-label="Hangup_Cause" 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 name="user" ng-model="vm.internaldial.user" aria-label="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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 name="appdata" ng-model="vm.playback.appdata" aria-label="Audio_Files" 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\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 name="queue" ng-model="vm.queue.queue" aria-label="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\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\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 name="sound" ng-model="vm.queue.sound" aria-label="Announce_Overrides">\n <md-option ng-value="\'\'">None</md-option>\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-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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or equal than</span> <span>0</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 name="multipleUsers" ng-model="vm.ringgroup.multipleUsers" aria-label="User" 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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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 <md-select name="name" ng-model="vm.set.name" aria-label="Variable" required autofocus>\n <md-option ng-value="name.name" ng-repeat="name in vm.variables">{{ name.name }}</md-option>\n </md-select>\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" ng-required="true">\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\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 name="voiceMail" ng-model="vm.voicemail.voiceMail" aria-label="Mailbox@Context" 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\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}}\n <span ng-if="vm.internalroute.name">{{vm.internalroute.name}}</span>\n <span ng-if="vm.internalroute.exten">{{vm.internalroute.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalroute.context" aria-label="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\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 translate="VOICE.APPLICATIONS_LIST">\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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" 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>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="internalroutes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" aria-label="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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true">\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\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 name="sort" ng-model="vm.musiconhold.sort" aria-label="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 name="id" ng-model="vm.mohSound.id" aria-label="File" 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}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\n <span ng-if="vm.musiconhold.exten">{{vm.musiconhold.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" aria-label="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.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory 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" ng-required="true">\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\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 name="sort" ng-model="vm.musiconhold.sort" aria-label="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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </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 class="md-primary" ng-click="vm_dc.voiceMusicOnHoldDownload(mohSound, $event)" translate="VOICE.DOWNLOAD_MOHSOUND">\n Download MohSound\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="8">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundroute.context" aria-label="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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundroute.recordingFormat" aria-label="Recording" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundroute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater or equal than</span> <span>0</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\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/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" ng-required="true" 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\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\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 ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" 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 ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</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">Week Days</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 name="dayOfWeekTo" 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 <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\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 name="monthDayTo" ng-model="vm.monthDayTo">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\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 name="monthTo" 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 <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\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 name="trunk" ng-model="vm.outbounddial.trunk" aria-label="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 class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\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\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.outbounddial.tag" aria-label="Tags">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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\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\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}}\n <span ng-if="vm.outboundroute.name">{{vm.outboundroute.name}}</span>\n <span ng-if="vm.outboundroute.exten">{{vm.outboundroute.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundroute.context" aria-label="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.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundroute.recordingFormat" aria-label="Recording" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</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="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'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.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundroute.cutdigits" min="0">\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'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 ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater or equal than</span> <span>0</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\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 translate="VOICE.APPLICATIONS_LIST">\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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'" 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>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </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 ng-if="vm_ac.currentUser.crudPermissions === 0 || vm_ac.currentUser.role === \'admin\'">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="outboundroutes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/abandonedcalls/view.html",' <md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flex></div>\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE">Select a date</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearAll()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.DELETE\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 black-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getContacts()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n <div class="padding-horizontal-20" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_AGENT">Select an agent</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.lastAssignedTo" ng-change="vm.getContacts()">\n <md-option ng-value="\'null\'" translate="DASHBOARDS.NOT_ASSIGNED"></md-option>\n <md-option ng-value="undefined" translate="DASHBOARDS.ALL"></md-option>\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents.rows">{{agent.name}}</md-option>\n </md-select>\n </div>\n <div ng-if="vm.queues.count" layout="column">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_CAMPAIGN">Select a Campaign</span>\n <md-select class="font-size-12 no-margin" ng-model="vm.query.queue" ng-change="vm.getContacts()">\n <md-option ng-value="undefined" ng-if="vm.queues.count > 1"><em translate="DASHBOARDS.ALL">All</em></md-option>\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows">{{queue.name}}</md-option>\n </md-select>\n </div>\n <md-button class="md-icon-button" ng-click="vm.refresh && 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-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\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="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | 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 md-cell class="id">{{contact.id}}</td>\n <td md-cell class="firstName">{{contact.calleridname}}</td>\n <td md-cell class="list">{{contact.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[contact.queue]}}</td>\n <td md-cell class="list">{{contact.queuecallerabandonAt ? (contact.queuecallerabandonAt | formatdate) : undefined }}</td>\n <td md-cell class="list">{{contact.lastAssignedTo}}</td>\n <td md-cell class="list">{{contact.disposition}}</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="2">\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">Assigned a</md-button>\n <md-menu-content>\n <md-menu-item ng-if="contact.lastAssignedTo">\n <md-button ng-click="vm.assignedA(contact)"><em translate="DASHBOARDS.NONE">Not Assigned</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignedA(contact,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose</md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.disposition.length" ng-repeat="disposition in vm.disposition">\n <md-button ng-click="vm.disposed(contact, disposition.name)">{{disposition.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 </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>'),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; vm.onInit()" on-collapse="vm.query.filter = undefined; vm.onInit()" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.onInit()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n\n <md-select ng-if="vm.isPause(vm.query.globalStatusFilter)" ng-model="vm.query.pauseTypeFilter" class="md-caption" ng-change="vm.onInit()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\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.order" md-on-reorder="vm.onInit">\n <tr md-row border="1">\n <th class="bv text-center" colspan="4">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">{{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" md-column md-order-by="fullname">{{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">{{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">{{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.order.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="vm.agents[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{vm.agents[value].userpic && \'api/users/\'+vm.agents[value].id+\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{vm.agents[value].fullname}}</span>\n <span>{{vm.agents[value].internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[vm.agents[value].globalStatus]\">{{ vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }} {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ? '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') : ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"vm.isPause(vm.agents[value].globalStatus) || vm.isPartialPause(vm.agents[value].globalStatus)\" start-time=\"vm.agents[value].lastPauseAt\" interval=\"1000\">{{ days > 0 ? days + 'd' : '' }} {{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </td>\n <td class=\"bt bl\">\n <div layout=\"row\">\n <span ng-if=\"!vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].voiceStatus | uppercase }}</span>\n <span ng-if=\"vm.agents[value].onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">ONHOLD</span>\n </div>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\">\n <span ng-if=\"vm.agents[value].queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].queue }}</span>\n <span ng-if=\"vm.agents[value].destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{ vm.agents[value].destconnectedlinenum }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" interval=\"1000\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl\" ng-if=\"vm.license.chat\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].chatStatus]\">{{ vm.agents[value].chatCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.mail\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].mailStatus]\">{{ vm.agents[value].mailCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.messaging\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].smsStatus]\">{{ vm.agents[value].smsCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.openchannel\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].openchannelStatus]\">{{ vm.agents[value].openchannelCurrentCapacity }}</td>\n <td class=\"bt bl\" ng-if=\"vm.license.fax\">\n <div layout=\"row\">\n <div layout=\"column\" layout-align=\"center center\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].faxStatus]\">{{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\">\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(vm.agents[value], $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.queueAdd(vm.agents[value], $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()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\" vm.agents[value].voicePause && 'DEFAULT PAUSE' === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value])\"><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-disabled=\"vm.agents[value].voicePause && pause.name === vm.agents[value].pauseType\" ng-click=\"vm.pause(vm.agents[value], 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 ng-if=\"vm.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" 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-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.filteredAgents.length}}\" md-on-paginate=\"vm.onInit\" 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.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 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">\n <timer ng-if="call.answertime" start-time="call.answertime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n </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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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.context)">{{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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" 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>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n 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 \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 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.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 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 || 0) / 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 || 0) / 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-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 md-order-by="name">{{ \'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="vm.queues[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.queues[value].name}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].loggedInDb || 0}} ({{vm.queues[value].loggedIn || 0}})</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].paused || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{vm.queues[value].available || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{vm.queues[value].waiting || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(vm.queues[value].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, vm.queues[value])" 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, vm.queues[value])" 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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-stretch-tabs="always" flex layout-fill 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.ABANDONEDCALLS">Abandoned 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 \x3c!-- <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> --\x3e\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 \x3c!-- <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n <i class="icon-information-outline grey-600-fg">\n <md-tooltip>{{\'FAX.INFO\' | translate}}</md-tooltip>\n </i>\n </md-button> --\x3e\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>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | 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">\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 <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.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" 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" ng-required="true" 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\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" ng-required="vm.voicemail.attach === \'yes\'">\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" aria-label="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="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-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}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\n <span ng-if="vm.voicemail.exten">{{vm.voicemail.exten}}</span>\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 <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-stretch-tabs="always" flex layout-fill 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" ng-required="true" 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\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" ng-required="vm.voicemail.attach === \'yes\'">\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 ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\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\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" ng-required="true" 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\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 name="context" ng-model="vm.voicemail.context" aria-label="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" ng-required="true" 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" aria-label="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 name="envelope" ng-model="vm.voicemail.envelope" aria-label="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 name="delete" ng-model="vm.voicemail.delete" aria-label="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\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\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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</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 <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'" 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>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </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 class="md-primary" ng-click="vm_dc.voiceMailMessageDownload(message, $event)" translate="VOICE.DOWNLOAD_MESSAGE">\n Download Message\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.crudPermissions === 0 || vm_dc.currentUser.role === \'admin\'">\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="8">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" 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.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" aria-label="OutboundRoute" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </span>\n </div>\n\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.voicePrefix.description">\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n\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.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$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.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($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/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</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/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" 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.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.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.selectedVoicePrefixes =[]">\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-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.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="VOICEPREFIXES.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.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" 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.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" ng-click="vm.deleteSelectedVoicePrefixes($event)" aria-label="delete selected" translate translate-attr-label="VOICEPREFIXES.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\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\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="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | 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.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ VoiceExtensionId = vm.outboundRoutes[voicePrefix.VoiceExtensionId]; VoiceExtensionId.exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.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(voicePrefix, $event)" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event)" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event)" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX 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 VOICEPREFIX BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX 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" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" aria-label="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\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}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\n <span ng-if="vm.voiceQueue.exten">{{vm.voiceQueue.exten}}</span>\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 <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\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></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.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-stretch-tabs="always" flex layout-fill 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.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="true">\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\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 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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" aria-label="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="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" ng-required="true">\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 ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</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 name="joinempty" ng-model="vm.voiceQueue.joinempty" aria-label="JoinWhenEmpty" 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 name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" aria-label="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 name="musiconhold" ng-model="vm.voiceQueue.musiconhold" aria-label="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 name="announce" ng-model="vm.voiceQueue.announce" aria-label="AnnounceToAgent">\n <md-option ng-value="\'FALSE\'">None</md-option>\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-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\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 ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</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 ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</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 name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" aria-label="RandomPeriodicAnnounce">\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 name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" aria-label="AnnounceHoldtime">\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 name="announce_position" ng-model="vm.voiceQueue.announce_position" aria-label="AnnounceCallerPosition">\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 name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" aria-label="ReportHoldtimeAgent">\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 name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" aria-label="PeriodicAnnounce" autofocus multiple>\n <md-option ng-value="\'\'">Default</md-option>\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-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 name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" aria-label="HoldTimeAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" aria-label="YouareNextAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" aria-label="ThereareAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" aria-label="WaitingCallsAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" aria-label="EstimatedHoldTimeAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" aria-label="MinutesAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_minute" ng-model="vm.voiceQueue.queue_minute" aria-label="MinuteAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" aria-label="SecondsAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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 name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" aria-label="ThankYouAnnounce">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\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-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" ng-required="true">\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 ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</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 name="autopause" ng-model="vm.voiceQueue.autopause" aria-label="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 name="ringinuse" ng-model="vm.voiceQueue.ringinuse" aria-label="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 ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</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 name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" aria-label="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 name="monitor_format" ng-model="vm.voiceQueue.monitor_format" aria-label="MonitorFormat">\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\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" aria-label="SetInterfaceVariables">\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 name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" aria-label="SetQueueVariables">\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 name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" aria-label="SetQueueEntryVariables">\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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\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" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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 translate="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.png" /></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 ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-item>\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event)" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime 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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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 name="rating" 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 <div layout="row">\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: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n \x3c!-- DATE FILTER --\x3e\n <div class="padding-horizontal-20" layout="column" layout-align="center center">\n <span class="font-size-10" translate="DASHBOARDS.SELECT_DATE_RANGE">Select Date Range</span>\n <div layout="row" layout-align="center center">\n <md-button ng-if="vm.pickerModel.dateStart" ng-click="vm.clearDateFilter()" class="md-icon-button no-padding width-20 height-20">\n <md-tooltip>{{ \'DASHBOARDS.CLEAR\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-close" class="s16 white-fg"></md-icon>\n </md-button>\n <md-date-range localization-map="vm.localizationMap" ng-model="vm.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm.getVoiceRecordings()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n </div>\n </div>\n \x3c!-- /DATE FILTER --\x3e\n </div>\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" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'" 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\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="membername">{{ \'VOICE.AGENT\' | 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 md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | 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="12">\n <div layout="row" layout-align="center center">\n <span translate="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.png" /></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="membername ">{{voiceRecording.membername}}</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>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\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 ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</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.downloadfile2(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\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-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" 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"></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>\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\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\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_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">{{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">{{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" 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_ct.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_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" 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/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" 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(null)">\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!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.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 \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\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.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></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/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" 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(null)">\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 ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),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/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</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="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\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\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),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 class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" 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="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" ng-pattern="vm.passwordPattern" 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 ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</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/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\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() | uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\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-diameter="32"></md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt">{{ days > 0 ? days + \'d\' : \'\' }} {{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 layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt">{{ days > 0 ? days + \'d\' : \'\' }} {{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 || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></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.png" 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"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\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 ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\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)"><span translate="TOOLBAR.CHANGEPASSWORD">Change Password</span></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\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></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 <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" 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 </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 flag-24" 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 ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" 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 <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">{{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\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/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">Preview</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 layout="row" ng-if="vm.preview">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
*/@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}.mdp-animate-next{opacity:0;transform:translate3d(50%,0,1px)}.mdp-animate-next-remove{transition:all .5s cubic-bezier(.35,0,.25,1);opacity:0;transform:translate3d(50%,0,1px)}.mdp-animate-next-remove-active{opacity:1;transform:translate3d(0,0,1px)}.mdp-animate-prev{opacity:0;transform:translate3d(-50%,0,1px)}.mdp-animate-prev-remove{transition:all .3s cubic-bezier(.35,0,.25,1);opacity:0;transform:translate3d(-50%,0,1px)}.mdp-animate-prev-remove-active{opacity:1;transform:translate3d(0,0,1px)}@keyframes mdp-animation-bounce{from{opacity:0;transform:scale(.95)}70%{opacity:1;transform:scale(1.05)}to{transform:scale(1)}}.mdp-animation-zoom.ng-enter{transition:all .3s cubic-bezier(.35,0,.25,1);animation-duration:.3s;animation-name:mdp-animation-bounce}.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 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-week-days>*{margin:0}.mdp-calendar-days .md-button,.mdp-calendar-days .mdp-day-placeholder{margin:0}.mdp-clock{width:200px;height:200px;border-radius:50%!important;cursor:pointer;padding:24px;background:#ededed;box-shadow:none!important}.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;transform:translate(-50%,-50%)}.mdp-clock .mdp-clock-container{width:100%;height:100%;position:relative;display:block}.mdp-clock .mdp-pointer{min-height:0;width:1px;height:50%;position:absolute;left:0;right:0;bottom:0;margin:0 auto;transform-origin:top center;z-index:0;pointer-events:none}.mdp-clock .mdp-clock-center{min-height:0;height:6px;width:6px;position:absolute;left:0;right:0;top:0;bottom: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 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 .vakata-contextmenu-disabled>a>i{filter:grayscale(100%)}.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-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-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-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}*{box-sizing:border-box}@font-face{font-family:emoticons;src:url(../fonts/emoticons.eot?5zh0vu);src:url(../fonts/emoticons.eot?#iefix5zh0vu) format('embedded-opentype'),url(../fonts/emoticons.woff?5zh0vu) format('woff'),url(../fonts/emoticons.ttf?5zh0vu) format('truetype'),url(../fonts/emoticons.svg?5zh0vu#icomoon) format('svg');font-weight:400;font-style:normal}.ne-code{display:none}.ne-code{font-size:14px;padding:20px;font-family:Consolas,Menlo,Monaco,monospace;padding:1.5em}pre{position:relative;margin-bottom:24px;border-radius:2px;overflow:hidden}code.has-numbering{display:block;padding:12px 30px;overflow-y:auto;font-weight:300;font-family:Consolas,Menlo,Monaco,monospace;font-size:14px;line-height:20px}code.has-numbering{margin-left:36px}.pre-numbering{position:absolute;top:0;left:0;width:35px;padding:1.1em 5px 12px 0;border-right:1px solid #e8e8e8;border-radius:3px 0 0 3px;background-color:#eee;text-align:right;font-family:Consolas,Menlo,Monaco,monospace;font-size:14px;color:#aaa;line-height:20px;margin-top:-4px}.pre-numbering li{list-style-type:none}.ne-pdf iframe{width:420px;height:530px;display:block}.ne-pdf-icon{width:200px;height:150px;float:left;border-right:1px solid #eee}.ne-pdf-icon i{margin:29px 62px;color:#999;font-size:84px}.ne-pdf-view button{font-family:inherit;font-size:14px;background-color:transparent;border:1px solid #ccc;padding:6px 15px;border-radius:2px;color:#333;cursor:pointer;box-shadow:0 1px 1px 0 rgba(0,0,0,.26);outline:0;border-bottom:0;float:right;margin:80px 10px 0 10px;-webkit-transition:all .5s linear;-o-transition:all .5s linear;-moz-transition:all .5s linear;-ms-transition:all .5s linear;-kthtml-transition:all .5s linear;transition:all .5s linear}.ne-pdf-view button:hover{box-shadow:0 2px 2px 0 rgba(0,0,0,.26)}.ne-pdf-view button i{margin-right:6px}.ne-pdf-view button a{color:#333}.ne-pdf-viewer iframe{margin:0 auto}.ne-pdf-viewer{background-color:#3498db;position:relative}.ne-pdf-viewer i{position:absolute;right:10px;top:8px;color:#fff;font-size:25px;cursor:pointer}.ne-audio{background-color:#1d1d1d;border-radius:2px;padding-top:6px}.ne-audio audio{width:100%}.ne-pdf,.ne-video{padding:5px;border:1px solid #e4e4e4;border-radius:2px;margin:20px 0;box-shadow:0 1px 1px 0 rgba(0,0,0,.26);border-bottom:0;overflow:auto;-webkit-transition:all .5s linear;-o-transition:all .5s linear;-moz-transition:all .5s linear;-ms-transition:all .5s linear;-kthtml-transition:all .5s linear;transition:all .5s linear}.ne-embed{width:100%;padding:5px;border:1px solid #e4e4e4;border-radius:2px;margin:20px 0;box-shadow:0 1px 1px 0 rgba(0,0,0,.26);border-bottom:0;padding-bottom:1px}.ne-embed iframe{border:0;background-color:#3498db;background-image:url(../images/loader.svg);background-repeat:no-repeat;background-position:center;width:100%}.ne-plunker{background-color:#fff!important}.ne-video video{width:100%}.ne-video iframe{width:100%;border:0}.ne-video object{width:100%;border:0}.ne-audio iframe{width:100%;border:0}.ne-image:hover,.ne-video:hover{box-shadow:0 2px 2px 0 rgba(0,0,0,.26)}.ne-pdf-preview,.ne-video-preview{overflow:auto}.ne-video-preview img{display:block;width:200px;height:150px;border-radius:2px;background-color:#3498db}.ne-video-thumb{width:200px;float:left;cursor:pointer;color:rgba(255,255,255,.6)}.ne-video-thumb:hover{color:#fff}.ne-video-thumb i{position:absolute;font-size:42px;margin-top:-95px;margin-left:80px;cursor:pointer}.ne-pdf-detail,.ne-video-detail{width:calc(100% - 200px);float:left;padding-left:15px}.ne-pdf-title,.ne-video-title{font-weight:bolder;padding:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ne-video-desc{font-size:16px;color:#666;height:90px}.ne-stats{padding-top:7px;overflow:auto}.ne-video-stats span{padding:0 15px;float:right}.ne-video-stats span i{margin-right:10px}.ne-video-player{background-color:#3498db;background-image:url(../images/loader.svg);background-repeat:no-repeat;background-position:center}.ne-video-player iframe{width:100%}.ne-image{width:100%;border-radius:2px;border:1px solid #e4e4e4;min-height:250px;max-height:250px;overflow:hidden;cursor:pointer;padding-bottom:5px;-webkit-transition:all .5s linear;-o-transition:all .5s linear;-moz-transition:all .5s linear;-ms-transition:all .5s linear;-kthtml-transition:all .5s linear;transition:all .5s linear;box-shadow:0 1px 1px 0 rgba(0,0,0,.26);border-bottom:5px solid #fff;margin:10px 0}.ne-image-long{max-height:800px}.ne-image img,.ne-image-long img{width:100%;display:block;min-height:250px}.ne-image-wrapper{margin:5px;margin-bottom:0;background-color:#3498db;background-image:url(../images/loader.svg);background-repeat:no-repeat;background-position:center;height:100%;overflow:hidden}.ne-gist body{margin:0!important}.emoticons-image,.emoticons-image-wrapper{width:100%}.emoticons-image{padding:5px;border-radius:2px;border:1px solid #f2f2f2;display:block;margin:20px 0}.ne-emoticon{font-family:emoticons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.emoticon{text-indent:-9999px;display:inline-block;height:22px;width:22px;vertical-align:middle}@media all and (-webkit-min-device-pixel-ratio :1),all and (min--moz-device-pixel-ratio :1),all and (-o-min-device-pixel-ratio :1),all and (min-device-pixel-ratio :1),all and (min-resolution :96dpi){.emoticon{background:transparent url(../images/emojis.png) 0 0 no-repeat}}@media all and (-webkit-min-device-pixel-ratio :1.5),all and (-o-min-device-pixel-ratio :3/2),all and (min-device-pixel-ratio :1.5),all and (min-resolution :144dpi){.emoticon{background:transparent url(../images/emojis@2x.png) 0 0 no-repeat;background-size:27776px 22px}}@-moz-document url-prefix(){.emoticon{background:transparent url(../images/emojis.png) 0 0 no-repeat}}.emoticon-bowtie{background-position:-5px 0}.emoticon-smile{background-position:-37px 0}.emoticon-laughing{background-position:-69px 0}.emoticon-blush{background-position:-101px 0}.emoticon-smiley{background-position:-133px 0}.emoticon-relaxed{background-position:-165px 0}.emoticon-smirk{background-position:-197px 0}.emoticon-heart_eyes{background-position:-229px 0}.emoticon-kissing_heart{background-position:-261px 0}.emoticon-kissing_closed_eyes{background-position:-293px 0}.emoticon-flushed{background-position:-325px 0}.emoticon-relieved{background-position:-357px 0}.emoticon-satisfied{background-position:-389px 0}.emoticon-grin{background-position:-421px 0}.emoticon-wink{background-position:-453px 0}.emoticon-stuck_out_tongue_winking_eye{background-position:-485px 0}.emoticon-winky_face{background-position:-485px 0}.emoticon-stuck_out_tongue_closed_eyes{background-position:-517px 0}.emoticon-grinning{background-position:-549px 0}.emoticon-kissing{background-position:-581px 0}.emoticon-kissing_smiling_eyes{background-position:-613px 0}.emoticon-stuck_out_tongue{background-position:-645px 0}.emoticon-sleeping{background-position:-677px 0}.emoticon-worried{background-position:-709px 0}.emoticon-frowning{background-position:-741px 0}.emoticon-anguished{background-position:-773px 0}.emoticon-open_mouth{background-position:-805px 0}.emoticon-wow{background-position:-805px 0}.emoticon-grimacing{background-position:-837px 0}.emoticon-confused{background-position:-869px 0}.emoticon-hushed{background-position:-901px 0}.emoticon-expressionless{background-position:-933px 0}.emoticon-unamused{background-position:-965px 0}.emoticon-sweat_smile{background-position:-997px 0}.emoticon-sweat{background-position:-1029px 0}.emoticon-disappointed_relieved{background-position:-1061px 0}.emoticon-weary{background-position:-1093px 0}.emoticon-pensive{background-position:-1125px 0}.emoticon-disappointed{background-position:-1157px 0}.emoticon-confounded{background-position:-1189px 0}.emoticon-fearful{background-position:-1221px 0}.emoticon-cold_sweat{background-position:-1253px 0}.emoticon-persevere{background-position:-1285px 0}.emoticon-cry{background-position:-1317px 0}.emoticon-sob{background-position:-1349px 0}.emoticon-joy{background-position:-1381px 0}.emoticon-astonished{background-position:-1413px 0}.emoticon-scream{background-position:-1445px 0}.emoticon-neckbeard{background-position:-1477px 0}.emoticon-tired_face{background-position:-1509px 0}.emoticon-angry{background-position:-1541px 0}.emoticon-rage{background-position:-1573px 0}.emoticon-triumph{background-position:-1605px 0}.emoticon-sleepy{background-position:-1637px 0}.emoticon-yum{background-position:-1669px 0}.emoticon-mask{background-position:-1701px 0}.emoticon-sunglasses{background-position:-1733px 0}.emoticon-dizzy_face{background-position:-1765px 0}.emoticon-imp{background-position:-1797px 0}.emoticon-smiling_imp{background-position:-1829px 0}.emoticon-neutral_face{background-position:-1861px 0}.emoticon-no_mouth{background-position:-1893px 0}.emoticon-innocent{background-position:-1925px 0}.emoticon-alien{background-position:-1957px 0}.emoticon-yellow_heart{background-position:-1989px 0}.emoticon-blue_heart{background-position:-2021px 0}.emoticon-purple_heart{background-position:-2053px 0}.emoticon-heart{background-position:-2085px 0}.emoticon-green_heart{background-position:-2117px 0}.emoticon-broken_heart{background-position:-2149px 0}.emoticon-heartbeat{background-position:-2181px 0}.emoticon-heartpulse{background-position:-2213px 0}.emoticon-two_hearts{background-position:-2245px 0}.emoticon-revolving_hearts{background-position:-2277px 0}.emoticon-cupid{background-position:-2309px 0}.emoticon-sparkling_heart{background-position:-2341px 0}.emoticon-sparkles{background-position:-2373px 0}.emoticon-star{background-position:-2405px 0}.emoticon-star2{background-position:-2437px 0}.emoticon-dizzy{background-position:-2469px 0}.emoticon-boom{background-position:-2501px 0}.emoticon-collision{background-position:-2533px 0}.emoticon-anger{background-position:-2565px 0}.emoticon-exclamation{background-position:-2597px 0}.emoticon-question{background-position:-2629px 0}.emoticon-grey_exclamation{background-position:-2661px 0}.emoticon-grey_question{background-position:-2693px 0}.emoticon-zzz{background-position:-2725px 0}.emoticon-dash{background-position:-2757px 0}.emoticon-sweat_drops{background-position:-2789px 0}.emoticon-notes{background-position:-2821px 0}.emoticon-musical_note{background-position:-2853px 0}.emoticon-fire{background-position:-2885px 0}.emoticon-hankey{background-position:-2917px 0}.emoticon-poop{background-position:-2949px 0}.emoticon-shit{background-position:-2981px 0}.emoticon-\+1{background-position:-3013px 0}.emoticon-thumbsup{background-position:-3045px 0}.emoticon-\-1{background-position:-3077px 0}.emoticon-thumbsdown{background-position:-3109px 0}.emoticon-ok_hand{background-position:-3141px 0}.emoticon-punch{background-position:-3173px 0}.emoticon-facepunch{background-position:-3205px 0}.emoticon-fist{background-position:-3237px 0}.emoticon-v{background-position:-3269px 0}.emoticon-wave{background-position:-3301px 0}.emoticon-hand{background-position:-3333px 0}.emoticon-raised_hand{background-position:-3365px 0}.emoticon-open_hands{background-position:-3397px 0}.emoticon-point_up{background-position:-3429px 0}.emoticon-point_down{background-position:-3461px 0}.emoticon-point_left{background-position:-3493px 0}.emoticon-point_right{background-position:-3525px 0}.emoticon-raised_hands{background-position:-3557px 0}.emoticon-pray{background-position:-3589px 0}.emoticon-point_up_2{background-position:-3621px 0}.emoticon-clap{background-position:-3653px 0}.emoticon-muscle{background-position:-3685px 0}.emoticon-metal{background-position:-3717px 0}.emoticon-fu{background-position:-3749px 0}.emoticon-walking{background-position:-3781px 0}.emoticon-runner{background-position:-3813px 0}.emoticon-running{background-position:-3845px 0}.emoticon-couple{background-position:-3877px 0}.emoticon-family{background-position:-3909px 0}.emoticon-two_men_holding_hands{background-position:-3941px 0}.emoticon-two_women_holding_hands{background-position:-3973px 0}.emoticon-dancer{background-position:-4005px 0}.emoticon-dancers{background-position:-4037px 0}.emoticon-ok_woman{background-position:-4069px 0}.emoticon-no_good{background-position:-4101px 0}.emoticon-information_desk_person{background-position:-4133px 0}.emoticon-raising_hand{background-position:-4165px 0}.emoticon-bride_with_veil{background-position:-4197px 0}.emoticon-person_with_pouting_face{background-position:-4229px 0}.emoticon-person_frowning{background-position:-4261px 0}.emoticon-bow{background-position:-4293px 0}.emoticon-couplekiss{background-position:-4325px 0}.emoticon-couple_with_heart{background-position:-4357px 0}.emoticon-massage{background-position:-4389px 0}.emoticon-haircut{background-position:-4421px 0}.emoticon-nail_care{background-position:-4453px 0}.emoticon-boy{background-position:-4485px 0}.emoticon-girl{background-position:-4517px 0}.emoticon-woman{background-position:-4549px 0}.emoticon-man{background-position:-4581px 0}.emoticon-baby{background-position:-4613px 0}.emoticon-older_woman{background-position:-4645px 0}.emoticon-older_man{background-position:-4677px 0}.emoticon-person_with_blond_hair{background-position:-4709px 0}.emoticon-man_with_gua_pi_mao{background-position:-4741px 0}.emoticon-man_with_turban{background-position:-4773px 0}.emoticon-construction_worker{background-position:-4805px 0}.emoticon-cop{background-position:-4837px 0}.emoticon-angel{background-position:-4869px 0}.emoticon-princess{background-position:-4901px 0}.emoticon-emoticon_cat{background-position:-4933px 0}.emoticon-smile_cat{background-position:-4965px 0}.emoticon-heart_eyes_cat{background-position:-4997px 0}.emoticon-kissing_cat{background-position:-5029px 0}.emoticon-smirk_cat{background-position:-5061px 0}.emoticon-scream_cat{background-position:-5093px 0}.emoticon-crying_cat_face{background-position:-5125px 0}.emoticon-joy_cat{background-position:-5157px 0}.emoticon-pouting_cat{background-position:-5189px 0}.emoticon-japanese_ogre{background-position:-5221px 0}.emoticon-japanese_goblin{background-position:-5253px 0}.emoticon-see_no_evil{background-position:-5285px 0}.emoticon-hear_no_evil{background-position:-5317px 0}.emoticon-speak_no_evil{background-position:-5349px 0}.emoticon-guardsman{background-position:-5381px 0}.emoticon-skull{background-position:-5413px 0}.emoticon-feet{background-position:-5445px 0}.emoticon-lips{background-position:-5477px 0}.emoticon-kiss{background-position:-5509px 0}.emoticon-droplet{background-position:-5541px 0}.emoticon-ear{background-position:-5573px 0}.emoticon-eyes{background-position:-5605px 0}.emoticon-nose{background-position:-5637px 0}.emoticon-tongue{background-position:-5669px 0}.emoticon-love_letter{background-position:-5701px 0}.emoticon-bust_in_silhouette{background-position:-5733px 0}.emoticon-busts_in_silhouette{background-position:-5765px 0}.emoticon-speech_balloon{background-position:-5797px 0}.emoticon-thought_balloon{background-position:-5829px 0}.emoticon-feelsgood{background-position:-5861px 0}.emoticon-finnadie{background-position:-5893px 0}.emoticon-goberserk{background-position:-5925px 0}.emoticon-godmode{background-position:-5957px 0}.emoticon-hurtrealbad{background-position:-5989px 0}.emoticon-rage1{background-position:-6021px 0}.emoticon-rage2{background-position:-6053px 0}.emoticon-rage3{background-position:-6085px 0}.emoticon-rage4{background-position:-6117px 0}.emoticon-suspect{background-position:-6149px 0}.emoticon-trollface{background-position:-6181px 0}.emoticon-sunny{background-position:-6213px 0}.emoticon-umbrella{background-position:-6245px 0}.emoticon-cloud{background-position:-6277px 0}.emoticon-snowflake{background-position:-6309px 0}.emoticon-snowman{background-position:-6341px 0}.emoticon-zap{background-position:-6373px 0}.emoticon-cyclone{background-position:-6405px 0}.emoticon-foggy{background-position:-6437px 0}.emoticon-ocean{background-position:-6469px 0}.emoticon-cat{background-position:-6501px 0}.emoticon-dog{background-position:-6533px 0}.emoticon-mouse{background-position:-6565px 0}.emoticon-hamster{background-position:-6597px 0}.emoticon-rabbit{background-position:-6629px 0}.emoticon-wolf{background-position:-6661px 0}.emoticon-frog{background-position:-6693px 0}.emoticon-tiger{background-position:-6725px 0}.emoticon-koala{background-position:-6757px 0}.emoticon-bear{background-position:-6789px 0}.emoticon-pig{background-position:-6821px 0}.emoticon-pig_nose{background-position:-6853px 0}.emoticon-cow{background-position:-6885px 0}.emoticon-boar{background-position:-6917px 0}.emoticon-monkey_face{background-position:-6949px 0}.emoticon-monkey{background-position:-6981px 0}.emoticon-horse{background-position:-7013px 0}.emoticon-racehorse{background-position:-7045px 0}.emoticon-camel{background-position:-7077px 0}.emoticon-sheep{background-position:-7109px 0}.emoticon-elephant{background-position:-7141px 0}.emoticon-panda_face{background-position:-7173px 0}.emoticon-snake{background-position:-7205px 0}.emoticon-bird{background-position:-7237px 0}.emoticon-baby_chick{background-position:-7269px 0}.emoticon-hatched_chick{background-position:-7301px 0}.emoticon-hatching_chick{background-position:-7333px 0}.emoticon-chicken{background-position:-7365px 0}.emoticon-penguin{background-position:-7397px 0}.emoticon-turtle{background-position:-7429px 0}.emoticon-bug{background-position:-7461px 0}.emoticon-honeybee{background-position:-7493px 0}.emoticon-ant{background-position:-7525px 0}.emoticon-beetle{background-position:-7557px 0}.emoticon-snail{background-position:-7589px 0}.emoticon-octopus{background-position:-7621px 0}.emoticon-tropical_fish{background-position:-7653px 0}.emoticon-fish{background-position:-7685px 0}.emoticon-whale{background-position:-7717px 0}.emoticon-whale2{background-position:-7749px 0}.emoticon-dolphin{background-position:-7781px 0}.emoticon-cow2{background-position:-7813px 0}.emoticon-ram{background-position:-7845px 0}.emoticon-rat{background-position:-7877px 0}.emoticon-water_buffalo{background-position:-7909px 0}.emoticon-tiger2{background-position:-7941px 0}.emoticon-rabbit2{background-position:-7973px 0}.emoticon-dragon{background-position:-8005px 0}.emoticon-goat{background-position:-8037px 0}.emoticon-rooster{background-position:-8069px 0}.emoticon-dog2{background-position:-8101px 0}.emoticon-pig2{background-position:-8133px 0}.emoticon-mouse2{background-position:-8165px 0}.emoticon-ox{background-position:-8197px 0}.emoticon-dragon_face{background-position:-8229px 0}.emoticon-blowfish{background-position:-8261px 0}.emoticon-crocodile{background-position:-8293px 0}.emoticon-dromedary_camel{background-position:-8325px 0}.emoticon-leopard{background-position:-8357px 0}.emoticon-cat2{background-position:-8389px 0}.emoticon-poodle{background-position:-8421px 0}.emoticon-paw_prints{background-position:-8453px 0}.emoticon-bouquet{background-position:-8485px 0}.emoticon-cherry_blossom{background-position:-8517px 0}.emoticon-tulip{background-position:-8549px 0}.emoticon-four_leaf_clover{background-position:-8581px 0}.emoticon-rose{background-position:-8613px 0}.emoticon-sunflower{background-position:-8645px 0}.emoticon-hibiscus{background-position:-8677px 0}.emoticon-maple_leaf{background-position:-8709px 0}.emoticon-leaves{background-position:-8741px 0}.emoticon-fallen_leaf{background-position:-8773px 0}.emoticon-herb{background-position:-8805px 0}.emoticon-mushroom{background-position:-8837px 0}.emoticon-cactus{background-position:-8869px 0}.emoticon-palm_tree{background-position:-8901px 0}.emoticon-evergreen_tree{background-position:-8933px 0}.emoticon-deciduous_tree{background-position:-8965px 0}.emoticon-chestnut{background-position:-8997px 0}.emoticon-seedling{background-position:-9029px 0}.emoticon-blossom{background-position:-9061px 0}.emoticon-ear_of_rice{background-position:-9093px 0}.emoticon-shell{background-position:-9125px 0}.emoticon-globe_with_meridians{background-position:-9157px 0}.emoticon-sun_with_face{background-position:-9189px 0}.emoticon-full_moon_with_face{background-position:-9221px 0}.emoticon-new_moon_with_face{background-position:-9253px 0}.emoticon-new_moon{background-position:-9285px 0}.emoticon-waxing_crescent_moon{background-position:-9317px 0}.emoticon-first_quarter_moon{background-position:-9349px 0}.emoticon-waxing_gibbous_moon{background-position:-9381px 0}.emoticon-full_moon{background-position:-9413px 0}.emoticon-waning_gibbous_moon{background-position:-9445px 0}.emoticon-last_quarter_moon{background-position:-9477px 0}.emoticon-waning_crescent_moon{background-position:-9509px 0}.emoticon-last_quarter_moon_with_face{background-position:-9541px 0}.emoticon-first_quarter_moon_with_face{background-position:-9573px 0}.emoticon-moon{background-position:-9605px 0}.emoticon-earth_africa{background-position:-9637px 0}.emoticon-earth_americas{background-position:-9669px 0}.emoticon-earth_asia{background-position:-9701px 0}.emoticon-volcano{background-position:-9733px 0}.emoticon-milky_way{background-position:-9765px 0}.emoticon-partly_sunny{background-position:-9797px 0}.emoticon-octocat{background-position:-9829px 0}.emoticon-squirrel{background-position:-9861px 0}.emoticon-bamboo{background-position:-9893px 0}.emoticon-gift_heart{background-position:-9925px 0}.emoticon-dolls{background-position:-9957px 0}.emoticon-school_satchel{background-position:-9989px 0}.emoticon-mortar_board{background-position:-10021px 0}.emoticon-flags{background-position:-10053px 0}.emoticon-fireworks{background-position:-10085px 0}.emoticon-sparkler{background-position:-10117px 0}.emoticon-wind_chime{background-position:-10149px 0}.emoticon-rice_scene{background-position:-10181px 0}.emoticon-jack_o_lantern{background-position:-10213px 0}.emoticon-ghost{background-position:-10245px 0}.emoticon-santa{background-position:-10277px 0}.emoticon-christmas_tree{background-position:-10309px 0}.emoticon-gift{background-position:-10341px 0}.emoticon-bell{background-position:-10373px 0}.emoticon-no_bell{background-position:-10405px 0}.emoticon-tanabata_tree{background-position:-10437px 0}.emoticon-tada{background-position:-10469px 0}.emoticon-confetti_ball{background-position:-10501px 0}.emoticon-balloon{background-position:-10533px 0}.emoticon-crystal_ball{background-position:-10565px 0}.emoticon-cd{background-position:-10597px 0}.emoticon-dvd{background-position:-10629px 0}.emoticon-floppy_disk{background-position:-10661px 0}.emoticon-camera{background-position:-10693px 0}.emoticon-video_camera{background-position:-10725px 0}.emoticon-movie_camera{background-position:-10757px 0}.emoticon-computer{background-position:-10789px 0}.emoticon-tv{background-position:-10821px 0}.emoticon-iphone{background-position:-10853px 0}.emoticon-phone{background-position:-10885px 0}.emoticon-telephone{background-position:-10917px 0}.emoticon-telephone_receiver{background-position:-10949px 0}.emoticon-pager{background-position:-10981px 0}.emoticon-fax{background-position:-11013px 0}.emoticon-minidisc{background-position:-11045px 0}.emoticon-vhs{background-position:-11077px 0}.emoticon-sound{background-position:-11109px 0}.emoticon-speaker{background-position:-11141px 0}.emoticon-mute{background-position:-11173px 0}.emoticon-loudspeaker{background-position:-11205px 0}.emoticon-mega{background-position:-11237px 0}.emoticon-hourglass{background-position:-11269px 0}.emoticon-hourglass_flowing_sand{background-position:-11301px 0}.emoticon-alarm_clock{background-position:-11333px 0}.emoticon-watch{background-position:-11365px 0}.emoticon-radio{background-position:-11397px 0}.emoticon-satellite{background-position:-11429px 0}.emoticon-loop{background-position:-11461px 0}.emoticon-mag{background-position:-11493px 0}.emoticon-mag_right{background-position:-11525px 0}.emoticon-unlock{background-position:-11557px 0}.emoticon-lock{background-position:-11589px 0}.emoticon-lock_with_ink_pen{background-position:-11621px 0}.emoticon-closed_lock_with_key{background-position:-11653px 0}.emoticon-key{background-position:-11685px 0}.emoticon-bulb{background-position:-11717px 0}.emoticon-flashlight{background-position:-11749px 0}.emoticon-high_brightness{background-position:-11781px 0}.emoticon-low_brightness{background-position:-11813px 0}.emoticon-electric_plug{background-position:-11845px 0}.emoticon-battery{background-position:-11877px 0}.emoticon-calling{background-position:-11909px 0}.emoticon-email{background-position:-11941px 0}.emoticon-mailbox{background-position:-11973px 0}.emoticon-postbox{background-position:-12005px 0}.emoticon-bath{background-position:-12037px 0}.emoticon-bathtub{background-position:-12069px 0}.emoticon-shower{background-position:-12101px 0}.emoticon-toilet{background-position:-12133px 0}.emoticon-wrench{background-position:-12165px 0}.emoticon-nut_and_bolt{background-position:-12197px 0}.emoticon-hammer{background-position:-12229px 0}.emoticon-seat{background-position:-12261px 0}.emoticon-moneybag{background-position:-12293px 0}.emoticon-yen{background-position:-12325px 0}.emoticon-dollar{background-position:-12357px 0}.emoticon-pound{background-position:-12389px 0}.emoticon-euro{background-position:-12421px 0}.emoticon-credit_card{background-position:-12453px 0}.emoticon-money_with_wings{background-position:-12485px 0}.emoticon-e\-mail{background-position:-12517px 0}.emoticon-inbox_tray{background-position:-12549px 0}.emoticon-outbox_tray{background-position:-12581px 0}.emoticon-envelope{background-position:-12613px 0}.emoticon-incoming_envelope{background-position:-12645px 0}.emoticon-postal_horn{background-position:-12677px 0}.emoticon-mailbox_closed{background-position:-12709px 0}.emoticon-mailbox_with_mail{background-position:-12741px 0}.emoticon-mailbox_with_no_mail{background-position:-12773px 0}.emoticon-door{background-position:-12805px 0}.emoticon-smoking{background-position:-12837px 0}.emoticon-bomb{background-position:-12869px 0}.emoticon-gun{background-position:-12901px 0}.emoticon-hocho{background-position:-12933px 0}.emoticon-pill{background-position:-12965px 0}.emoticon-syringe{background-position:-12997px 0}.emoticon-page_facing_up{background-position:-13029px 0}.emoticon-page_with_curl{background-position:-13061px 0}.emoticon-bookmark_tabs{background-position:-13093px 0}.emoticon-bar_chart{background-position:-13125px 0}.emoticon-chart_with_upwards_trend{background-position:-13157px 0}.emoticon-chart_with_downwards_trend{background-position:-13189px 0}.emoticon-scroll{background-position:-13221px 0}.emoticon-clipboard{background-position:-13253px 0}.emoticon-calendar{background-position:-13285px 0}.emoticon-date{background-position:-13317px 0}.emoticon-card_index{background-position:-13349px 0}.emoticon-file_folder{background-position:-13381px 0}.emoticon-open_file_folder{background-position:-13413px 0}.emoticon-scissors{background-position:-13445px 0}.emoticon-pushpin{background-position:-13477px 0}.emoticon-paperclip{background-position:-13509px 0}.emoticon-black_nib{background-position:-13541px 0}.emoticon-pencil2{background-position:-13573px 0}.emoticon-straight_ruler{background-position:-13605px 0}.emoticon-triangular_ruler{background-position:-13637px 0}.emoticon-closed_book{background-position:-13669px 0}.emoticon-green_book{background-position:-13701px 0}.emoticon-blue_book{background-position:-13733px 0}.emoticon-orange_book{background-position:-13765px 0}.emoticon-notebook{background-position:-13797px 0}.emoticon-notebook_with_decorative_cover{background-position:-13829px 0}.emoticon-ledger{background-position:-13861px 0}.emoticon-books{background-position:-13893px 0}.emoticon-bookmark{background-position:-13925px 0}.emoticon-name_badge{background-position:-13957px 0}.emoticon-microscope{background-position:-13989px 0}.emoticon-telescope{background-position:-14021px 0}.emoticon-newspaper{background-position:-14053px 0}.emoticon-football{background-position:-14085px 0}.emoticon-basketball{background-position:-14117px 0}.emoticon-soccer{background-position:-14149px 0}.emoticon-baseball{background-position:-14181px 0}.emoticon-tennis{background-position:-14213px 0}.emoticon-8ball{background-position:-14245px 0}.emoticon-rugby_football{background-position:-14277px 0}.emoticon-bowling{background-position:-14309px 0}.emoticon-golf{background-position:-14341px 0}.emoticon-mountain_bicyclist{background-position:-14373px 0}.emoticon-bicyclist{background-position:-14405px 0}.emoticon-horse_racing{background-position:-14437px 0}.emoticon-snowboarder{background-position:-14469px 0}.emoticon-swimmer{background-position:-14501px 0}.emoticon-surfer{background-position:-14533px 0}.emoticon-ski{background-position:-14565px 0}.emoticon-spades{background-position:-14597px 0}.emoticon-hearts{background-position:-14629px 0}.emoticon-clubs{background-position:-14661px 0}.emoticon-diamonds{background-position:-14693px 0}.emoticon-gem{background-position:-14725px 0}.emoticon-ring{background-position:-14757px 0}.emoticon-trophy{background-position:-14789px 0}.emoticon-musical_score{background-position:-14821px 0}.emoticon-musical_keyboard{background-position:-14853px 0}.emoticon-violin{background-position:-14885px 0}.emoticon-space_invader{background-position:-14917px 0}.emoticon-video_game{background-position:-14949px 0}.emoticon-black_joker{background-position:-14981px 0}.emoticon-flower_playing_cards{background-position:-15013px 0}.emoticon-game_die{background-position:-15045px 0}.emoticon-dart{background-position:-15077px 0}.emoticon-mahjong{background-position:-15109px 0}.emoticon-clapper{background-position:-15141px 0}.emoticon-memo{background-position:-15173px 0}.emoticon-pencil{background-position:-15205px 0}.emoticon-book{background-position:-15237px 0}.emoticon-art{background-position:-15269px 0}.emoticon-microphone{background-position:-15301px 0}.emoticon-headphones{background-position:-15333px 0}.emoticon-trumpet{background-position:-15365px 0}.emoticon-saxophone{background-position:-15397px 0}.emoticon-guitar{background-position:-15429px 0}.emoticon-shoe{background-position:-15461px 0}.emoticon-sandal{background-position:-15493px 0}.emoticon-high_heel{background-position:-15525px 0}.emoticon-lipstick{background-position:-15557px 0}.emoticon-boot{background-position:-15589px 0}.emoticon-shirt{background-position:-15621px 0}.emoticon-tshirt{background-position:-15653px 0}.emoticon-necktie{background-position:-15685px 0}.emoticon-womans_clothes{background-position:-15717px 0}.emoticon-dress{background-position:-15749px 0}.emoticon-running_shirt_with_sash{background-position:-15781px 0}.emoticon-jeans{background-position:-15813px 0}.emoticon-kimono{background-position:-15845px 0}.emoticon-bikini{background-position:-15877px 0}.emoticon-ribbon{background-position:-15909px 0}.emoticon-tophat{background-position:-15941px 0}.emoticon-crown{background-position:-15973px 0}.emoticon-womans_hat{background-position:-16005px 0}.emoticon-mans_shoe{background-position:-16037px 0}.emoticon-closed_umbrella{background-position:-16069px 0}.emoticon-briefcase{background-position:-16101px 0}.emoticon-handbag{background-position:-16133px 0}.emoticon-pouch{background-position:-16165px 0}.emoticon-purse{background-position:-16197px 0}.emoticon-eyeglasses{background-position:-16229px 0}.emoticon-fishing_pole_and_fish{background-position:-16261px 0}.emoticon-coffee{background-position:-16293px 0}.emoticon-tea{background-position:-16325px 0}.emoticon-sake{background-position:-16357px 0}.emoticon-baby_bottle{background-position:-16389px 0}.emoticon-beer{background-position:-16421px 0}.emoticon-beers{background-position:-16453px 0}.emoticon-cocktail{background-position:-16485px 0}.emoticon-tropical_drink{background-position:-16517px 0}.emoticon-wine_glass{background-position:-16549px 0}.emoticon-fork_and_knife{background-position:-16581px 0}.emoticon-pizza{background-position:-16613px 0}.emoticon-hamburger{background-position:-16645px 0}.emoticon-fries{background-position:-16677px 0}.emoticon-poultry_leg{background-position:-16709px 0}.emoticon-meat_on_bone{background-position:-16741px 0}.emoticon-spaghetti{background-position:-16773px 0}.emoticon-curry{background-position:-16805px 0}.emoticon-fried_shrimp{background-position:-16837px 0}.emoticon-bento{background-position:-16869px 0}.emoticon-sushi{background-position:-16901px 0}.emoticon-fish_cake{background-position:-16933px 0}.emoticon-rice_ball{background-position:-16965px 0}.emoticon-rice_cracker{background-position:-16997px 0}.emoticon-rice{background-position:-17029px 0}.emoticon-ramen{background-position:-17061px 0}.emoticon-stew{background-position:-17093px 0}.emoticon-oden{background-position:-17125px 0}.emoticon-dango{background-position:-17157px 0}.emoticon-egg{background-position:-17189px 0}.emoticon-bread{background-position:-17221px 0}.emoticon-doughnut{background-position:-17253px 0}.emoticon-custard{background-position:-17285px 0}.emoticon-icecream{background-position:-17317px 0}.emoticon-ice_cream{background-position:-17349px 0}.emoticon-shaved_ice{background-position:-17381px 0}.emoticon-birthday{background-position:-17413px 0}.emoticon-cake{background-position:-17445px 0}.emoticon-cookie{background-position:-17477px 0}.emoticon-chocolate_bar{background-position:-17509px 0}.emoticon-candy{background-position:-17541px 0}.emoticon-lollipop{background-position:-17573px 0}.emoticon-honey_pot{background-position:-17605px 0}.emoticon-apple{background-position:-17637px 0}.emoticon-green_apple{background-position:-17669px 0}.emoticon-tangerine{background-position:-17701px 0}.emoticon-lemon{background-position:-17733px 0}.emoticon-cherries{background-position:-17765px 0}.emoticon-grapes{background-position:-17797px 0}.emoticon-watermelon{background-position:-17829px 0}.emoticon-strawberry{background-position:-17861px 0}.emoticon-peach{background-position:-17893px 0}.emoticon-melon{background-position:-17925px 0}.emoticon-banana{background-position:-17957px 0}.emoticon-pear{background-position:-17989px 0}.emoticon-pineapple{background-position:-18021px 0}.emoticon-sweet_potato{background-position:-18053px 0}.emoticon-eggplant{background-position:-18085px 0}.emoticon-tomato{background-position:-18117px 0}.emoticon-corn{background-position:-18149px 0}.emoticon-house{background-position:-18181px 0}.emoticon-house_with_garden{background-position:-18213px 0}.emoticon-school{background-position:-18245px 0}.emoticon-office{background-position:-18277px 0}.emoticon-post_office{background-position:-18309px 0}.emoticon-hospital{background-position:-18341px 0}.emoticon-bank{background-position:-18373px 0}.emoticon-convenience_store{background-position:-18405px 0}.emoticon-love_hotel{background-position:-18437px 0}.emoticon-hotel{background-position:-18469px 0}.emoticon-wedding{background-position:-18501px 0}.emoticon-church{background-position:-18533px 0}.emoticon-department_store{background-position:-18565px 0}.emoticon-european_post_office{background-position:-18597px 0}.emoticon-city_sunrise{background-position:-18629px 0}.emoticon-city_sunset{background-position:-18661px 0}.emoticon-japanese_castle{background-position:-18693px 0}.emoticon-european_castle{background-position:-18725px 0}.emoticon-tent{background-position:-18757px 0}.emoticon-factory{background-position:-18789px 0}.emoticon-tokyo_tower{background-position:-18821px 0}.emoticon-japan{background-position:-18853px 0}.emoticon-mount_fuji{background-position:-18885px 0}.emoticon-sunrise_over_mountains{background-position:-18917px 0}.emoticon-sunrise{background-position:-18949px 0}.emoticon-stars{background-position:-18981px 0}.emoticon-themoreyouknow{background-position:-18981px 0}.emoticon-tmyk{background-position:-18981px 0}.emoticon-statue_of_liberty{background-position:-19013px 0}.emoticon-bridge_at_night{background-position:-19045px 0}.emoticon-carousel_horse{background-position:-19077px 0}.emoticon-rainbow{background-position:-19109px 0}.emoticon-ferris_wheel{background-position:-19141px 0}.emoticon-fountain{background-position:-19173px 0}.emoticon-roller_coaster{background-position:-19205px 0}.emoticon-ship{background-position:-19237px 0}.emoticon-speedboat{background-position:-19269px 0}.emoticon-boat{background-position:-19301px 0}.emoticon-sailboat{background-position:-19333px 0}.emoticon-rowboat{background-position:-19365px 0}.emoticon-anchor{background-position:-19397px 0}.emoticon-rocket{background-position:-19429px 0}.emoticon-airplane{background-position:-19461px 0}.emoticon-helicopter{background-position:-19493px 0}.emoticon-steam_locomotive{background-position:-19525px 0}.emoticon-tram{background-position:-19557px 0}.emoticon-mountain_railway{background-position:-19589px 0}.emoticon-bike{background-position:-19621px 0}.emoticon-aerial_tramway{background-position:-19653px 0}.emoticon-suspension_railway{background-position:-19685px 0}.emoticon-mountain_cableway{background-position:-19717px 0}.emoticon-tractor{background-position:-19749px 0}.emoticon-blue_car{background-position:-19781px 0}.emoticon-oncoming_automobile{background-position:-19813px 0}.emoticon-car{background-position:-19845px 0}.emoticon-red_car{background-position:-19877px 0}.emoticon-taxi{background-position:-19909px 0}.emoticon-oncoming_taxi{background-position:-19941px 0}.emoticon-articulated_lorry{background-position:-19973px 0}.emoticon-bus{background-position:-20005px 0}.emoticon-oncoming_bus{background-position:-20037px 0}.emoticon-rotating_light{background-position:-20069px 0}.emoticon-police_car{background-position:-20101px 0}.emoticon-oncoming_police_car{background-position:-20133px 0}.emoticon-fire_engine{background-position:-20165px 0}.emoticon-ambulance{background-position:-20197px 0}.emoticon-minibus{background-position:-20229px 0}.emoticon-truck{background-position:-20261px 0}.emoticon-train{background-position:-20293px 0}.emoticon-station{background-position:-20325px 0}.emoticon-train2{background-position:-20357px 0}.emoticon-bullettrain_front{background-position:-20389px 0}.emoticon-bullettrain_side{background-position:-20421px 0}.emoticon-light_rail{background-position:-20453px 0}.emoticon-monorail{background-position:-20485px 0}.emoticon-railway_car{background-position:-20517px 0}.emoticon-trolleybus{background-position:-20549px 0}.emoticon-ticket{background-position:-20581px 0}.emoticon-fuelpump{background-position:-20613px 0}.emoticon-vertical_traffic_light{background-position:-20645px 0}.emoticon-traffic_light{background-position:-20677px 0}.emoticon-warning{background-position:-20709px 0}.emoticon-construction{background-position:-20741px 0}.emoticon-beginner{background-position:-20773px 0}.emoticon-atm{background-position:-20805px 0}.emoticon-slot_machine{background-position:-20837px 0}.emoticon-busstop{background-position:-20869px 0}.emoticon-barber{background-position:-20901px 0}.emoticon-hotsprings{background-position:-20933px 0}.emoticon-checkered_flag{background-position:-20965px 0}.emoticon-crossed_flags{background-position:-20997px 0}.emoticon-izakaya_lantern{background-position:-21029px 0}.emoticon-moyai{background-position:-21061px 0}.emoticon-circus_tent{background-position:-21093px 0}.emoticon-performing_arts{background-position:-21125px 0}.emoticon-round_pushpin{background-position:-21157px 0}.emoticon-triangular_flag_on_post{background-position:-21189px 0}.emoticon-jp{background-position:-21221px 0}.emoticon-kr{background-position:-21253px 0}.emoticon-cn{background-position:-21285px 0}.emoticon-us{background-position:-21317px 0}.emoticon-fr{background-position:-21349px 0}.emoticon-es{background-position:-21381px 0}.emoticon-it{background-position:-21413px 0}.emoticon-ru{background-position:-21445px 0}.emoticon-gb{background-position:-21477px 0}.emoticon-uk{background-position:-21509px 0}.emoticon-de{background-position:-21541px 0}.emoticon-one{background-position:-21573px 0}.emoticon-two{background-position:-21605px 0}.emoticon-three{background-position:-21637px 0}.emoticon-four{background-position:-21669px 0}.emoticon-five{background-position:-21701px 0}.emoticon-six{background-position:-21733px 0}.emoticon-seven{background-position:-21765px 0}.emoticon-eight{background-position:-21797px 0}.emoticon-nine{background-position:-21829px 0}.emoticon-keycap_ten{background-position:-21861px 0}.emoticon-1234{background-position:-21893px 0}.emoticon-zero{background-position:-21925px 0}.emoticon-hash{background-position:-21957px 0}.emoticon-symbols{background-position:-21989px 0}.emoticon-arrow_backward{background-position:-22021px 0}.emoticon-arrow_down{background-position:-22053px 0}.emoticon-arrow_forward{background-position:-22085px 0}.emoticon-arrow_left{background-position:-22117px 0}.emoticon-capital_abcd{background-position:-22149px 0}.emoticon-abcd{background-position:-22181px 0}.emoticon-abc{background-position:-22213px 0}.emoticon-arrow_lower_left{background-position:-22245px 0}.emoticon-arrow_lower_right{background-position:-22277px 0}.emoticon-arrow_right{background-position:-22309px 0}.emoticon-arrow_up{background-position:-22341px 0}.emoticon-arrow_upper_left{background-position:-22373px 0}.emoticon-arrow_upper_right{background-position:-22405px 0}.emoticon-arrow_double_down{background-position:-22437px 0}.emoticon-arrow_double_up{background-position:-22469px 0}.emoticon-arrow_down_small{background-position:-22501px 0}.emoticon-arrow_heading_down{background-position:-22533px 0}.emoticon-arrow_heading_up{background-position:-22565px 0}.emoticon-leftwards_arrow_with_hook{background-position:-22597px 0}.emoticon-arrow_right_hook{background-position:-22629px 0}.emoticon-left_right_arrow{background-position:-22661px 0}.emoticon-arrow_up_down{background-position:-22693px 0}.emoticon-arrow_up_small{background-position:-22725px 0}.emoticon-arrows_clockwise{background-position:-22757px 0}.emoticon-arrows_counterclockwise{background-position:-22789px 0}.emoticon-rewind{background-position:-22821px 0}.emoticon-fast_forward{background-position:-22853px 0}.emoticon-information_source{background-position:-22885px 0}.emoticon-ok{background-position:-22917px 0}.emoticon-twisted_rightwards_arrows{background-position:-22949px 0}.emoticon-repeat{background-position:-22981px 0}.emoticon-repeat_one{background-position:-23013px 0}.emoticon-new{background-position:-23045px 0}.emoticon-top{background-position:-23077px 0}.emoticon-up{background-position:-23109px 0}.emoticon-cool{background-position:-23141px 0}.emoticon-free{background-position:-23173px 0}.emoticon-ng{background-position:-23205px 0}.emoticon-cinema{background-position:-23237px 0}.emoticon-koko{background-position:-23269px 0}.emoticon-signal_strength{background-position:-23301px 0}.emoticon-u5272{background-position:-23333px 0}.emoticon-u5408{background-position:-23365px 0}.emoticon-u55b6{background-position:-23397px 0}.emoticon-u6307{background-position:-23429px 0}.emoticon-u6708{background-position:-23461px 0}.emoticon-u6709{background-position:-23493px 0}.emoticon-u6e80{background-position:-23525px 0}.emoticon-u7121{background-position:-23557px 0}.emoticon-u7533{background-position:-23589px 0}.emoticon-u7a7a{background-position:-23621px 0}.emoticon-u7981{background-position:-23653px 0}.emoticon-sa{background-position:-23685px 0}.emoticon-restroom{background-position:-23717px 0}.emoticon-mens{background-position:-23749px 0}.emoticon-womens{background-position:-23781px 0}.emoticon-baby_symbol{background-position:-23813px 0}.emoticon-no_smoking{background-position:-23845px 0}.emoticon-parking{background-position:-23877px 0}.emoticon-wheelchair{background-position:-23909px 0}.emoticon-metro{background-position:-23941px 0}.emoticon-baggage_claim{background-position:-23973px 0}.emoticon-accept{background-position:-24005px 0}.emoticon-wc{background-position:-24037px 0}.emoticon-potable_water{background-position:-24069px 0}.emoticon-put_litter_in_its_place{background-position:-24101px 0}.emoticon-secret{background-position:-24133px 0}.emoticon-congratulations{background-position:-24165px 0}.emoticon-m{background-position:-24197px 0}.emoticon-passport_control{background-position:-24229px 0}.emoticon-left_luggage{background-position:-24261px 0}.emoticon-customs{background-position:-24293px 0}.emoticon-ideograph_advantage{background-position:-24325px 0}.emoticon-cl{background-position:-24357px 0}.emoticon-sos{background-position:-24389px 0}.emoticon-id{background-position:-24421px 0}.emoticon-no_entry_sign{background-position:-24453px 0}.emoticon-underage{background-position:-24485px 0}.emoticon-no_mobile_phones{background-position:-24517px 0}.emoticon-do_not_litter{background-position:-24549px 0}.emoticon-non\-potable_water{background-position:-24581px 0}.emoticon-no_bicycles{background-position:-24613px 0}.emoticon-no_pedestrians{background-position:-24645px 0}.emoticon-children_crossing{background-position:-24677px 0}.emoticon-no_entry{background-position:-24709px 0}.emoticon-eight_spoked_asterisk{background-position:-24741px 0}.emoticon-eight_pointed_black_star{background-position:-24773px 0}.emoticon-heart_decoration{background-position:-24805px 0}.emoticon-vs{background-position:-24837px 0}.emoticon-vibration_mode{background-position:-24869px 0}.emoticon-mobile_phone_off{background-position:-24901px 0}.emoticon-chart{background-position:-24933px 0}.emoticon-currency_exchange{background-position:-24965px 0}.emoticon-aries{background-position:-24997px 0}.emoticon-taurus{background-position:-25029px 0}.emoticon-gemini{background-position:-25061px 0}.emoticon-cancer{background-position:-25093px 0}.emoticon-leo{background-position:-25125px 0}.emoticon-virgo{background-position:-25157px 0}.emoticon-libra{background-position:-25189px 0}.emoticon-scorpius{background-position:-25221px 0}.emoticon-sagittarius{background-position:-25253px 0}.emoticon-capricorn{background-position:-25285px 0}.emoticon-aquarius{background-position:-25317px 0}.emoticon-pisces{background-position:-25349px 0}.emoticon-ophiuchus{background-position:-25381px 0}.emoticon-six_pointed_star{background-position:-25413px 0}.emoticon-negative_squared_cross_mark{background-position:-25445px 0}.emoticon-a{background-position:-25477px 0}.emoticon-b{background-position:-25509px 0}.emoticon-ab{background-position:-25541px 0}.emoticon-o2{background-position:-25573px 0}.emoticon-diamond_shape_with_a_dot_inside{background-position:-25605px 0}.emoticon-recycle{background-position:-25637px 0}.emoticon-end{background-position:-25669px 0}.emoticon-on{background-position:-25701px 0}.emoticon-soon{background-position:-25733px 0}.emoticon-clock1{background-position:-25765px 0}.emoticon-clock130{background-position:-25797px 0}.emoticon-clock10{background-position:-25829px 0}.emoticon-clock1030{background-position:-25861px 0}.emoticon-clock11{background-position:-25893px 0}.emoticon-clock1130{background-position:-25925px 0}.emoticon-clock12{background-position:-25957px 0}.emoticon-clock1230{background-position:-25989px 0}.emoticon-clock2{background-position:-26021px 0}.emoticon-clock230{background-position:-26053px 0}.emoticon-clock3{background-position:-26085px 0}.emoticon-clock330{background-position:-26117px 0}.emoticon-clock4{background-position:-26149px 0}.emoticon-clock430{background-position:-26181px 0}.emoticon-clock5{background-position:-26213px 0}.emoticon-clock530{background-position:-26245px 0}.emoticon-clock6{background-position:-26277px 0}.emoticon-clock630{background-position:-26309px 0}.emoticon-clock7{background-position:-26341px 0}.emoticon-clock730{background-position:-26373px 0}.emoticon-clock8{background-position:-26405px 0}.emoticon-clock830{background-position:-26437px 0}.emoticon-clock9{background-position:-26469px 0}.emoticon-clock930{background-position:-26501px 0}.emoticon-heavy_dollar_sign{background-position:-26533px 0}.emoticon-copyright{background-position:-26565px 0}.emoticon-registered{background-position:-26597px 0}.emoticon-tm{background-position:-26629px 0}.emoticon-x{background-position:-26661px 0}.emoticon-heavy_exclamation_mark{background-position:-26693px 0}.emoticon-bangbang{background-position:-26725px 0}.emoticon-interrobang{background-position:-26757px 0}.emoticon-o{background-position:-26789px 0}.emoticon-heavy_multiplication_x{background-position:-26821px 0}.emoticon-heavy_plus_sign{background-position:-26853px 0}.emoticon-heavy_minus_sign{background-position:-26885px 0}.emoticon-heavy_division_sign{background-position:-26917px 0}.emoticon-white_flower{background-position:-26949px 0}.emoticon-100{background-position:-26981px 0}.emoticon-heavy_check_mark{background-position:-27013px 0}.emoticon-ballot_box_with_check{background-position:-27045px 0}.emoticon-radio_button{background-position:-27077px 0}.emoticon-link{background-position:-27109px 0}.emoticon-curly_loop{background-position:-27141px 0}.emoticon-wavy_dash{background-position:-27173px 0}.emoticon-part_alternation_mark{background-position:-27205px 0}.emoticon-trident{background-position:-27237px 0}.emoticon-black_large_square{background-position:-27269px 0}.emoticon-white_large_square{background-position:-27301px 0}.emoticon-white_check_mark{background-position:-27333px 0}.emoticon-black_square{background-position:-27268px 0}.emoticon-white_square{background-position:-27301px 0}.emoticon-black_square_button{background-position:-27365px 0}.emoticon-white_square_button{background-position:-27397px 0}.emoticon-black_circle{background-position:-27429px 0}.emoticon-white_circle{background-position:-27461px 0}.emoticon-red_circle{background-position:-27493px 0}.emoticon-large_blue_circle{background-position:-27525px 0}.emoticon-large_blue_diamond{background-position:-27557px 0}.emoticon-large_orange_diamond{background-position:-27589px 0}.emoticon-small_blue_diamond{background-position:-27621px 0}.emoticon-small_orange_diamond{background-position:-27653px 0}.emoticon-small_red_triangle{background-position:-27685px 0}.emoticon-small_red_triangle_down{background-position:-27717px 0}.emoticon-shipit{background-position:-27749px 0}md-expansion-panel{background:#fff}md-expansion-panel .md-expansion-panel-footer-container,md-expansion-panel .md-expansion-panel-header-container,md-expansion-panel md-expansion-panel-collapsed{background:#fff}md-expansion-panel .md-expansion-panel-footer-container .md-summary,md-expansion-panel .md-expansion-panel-footer-container .md-title,md-expansion-panel .md-expansion-panel-header-container .md-summary,md-expansion-panel .md-expansion-panel-header-container .md-title,md-expansion-panel md-expansion-panel-collapsed .md-summary,md-expansion-panel md-expansion-panel-collapsed .md-title{color:#333}md-expansion-panel md-expansion-panel-footer .md-expansion-panel-footer-container,md-expansion-panel md-expansion-panel-header .md-expansion-panel-header-container{border-color:#ddd}md-expansion-panel .md-expansion-panel-icon svg{fill:#999}md-expansion-panel[disabled] md-expansion-panel-collapsed .md-summary,md-expansion-panel[disabled] md-expansion-panel-collapsed .md-title{color:#ddd}md-expansion-panel[disabled] .md-expansion-panel-icon svg{fill:#ddd}md-expansion-panel:not(.md-open):not([disabled]):focus,md-expansion-panel:not(.md-open):not([disabled]):focus md-expansion-panel-collapsed{background:#eee}.layout-padding>md-expansion-panel-group{padding:0}md-expansion-panel{display:block;position:relative;outline:0;margin-top:0;margin-bottom:0;padding:0;box-shadow:0 -1px 0 #e5e5e5,0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)}md-expansion-panel.md-open{margin-top:16px;margin-bottom:16px}md-expansion-panel.md-open:first-of-type{margin-top:0}md-expansion-panel.md-close{overflow:hidden}md-expansion-panel:not(.md-no-animation).md-open{-webkit-transition:margin-top .12s cubic-bezier(.25,.8,.25,1),margin-bottom .12s cubic-bezier(.25,.8,.25,1);transition:margin-top .12s cubic-bezier(.25,.8,.25,1),margin-bottom .12s cubic-bezier(.25,.8,.25,1)}md-expansion-panel:not(.md-no-animation).md-close{-webkit-transition:margin-top 80ms cubic-bezier(.25,.8,.25,1),margin-bottom 80ms cubic-bezier(.25,.8,.25,1);transition:margin-top 80ms cubic-bezier(.25,.8,.25,1),margin-bottom 80ms cubic-bezier(.25,.8,.25,1)}md-expansion-panel-collapsed .md-title,md-expansion-panel-header .md-title{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:16px;font-weight:600;min-width:80px;max-width:184px;overflow:hidden;text-overflow:ellipsis;text-align:left;white-space:nowrap}md-expansion-panel-collapsed .md-summary,md-expansion-panel-header .md-summary{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;text-align:left;white-space:nowrap}md-expansion-panel md-expansion-panel-collapsed{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:48px;line-height:48px;padding:0 24px;opacity:1;z-index:2;box-sizing:border-box}md-expansion-panel md-expansion-panel-collapsed.md-absolute{position:absolute}md-expansion-panel md-expansion-panel-collapsed.md-hide{opacity:0}md-expansion-panel:not(.md-no-animation) md-expansion-panel-collapsed.md-show{-webkit-transition:opacity 30ms linear;transition:opacity 30ms linear}md-expansion-panel:not(.md-no-animation) md-expansion-panel-collapsed.md-hide{-webkit-transition:opacity .1s cubic-bezier(.25,.8,.25,1);transition:opacity .1s cubic-bezier(.25,.8,.25,1)}md-expansion-panel md-expansion-panel-expanded{display:none;min-height:48px}md-expansion-panel md-expansion-panel-expanded.md-hide,md-expansion-panel md-expansion-panel-expanded.md-show{display:block}md-expansion-panel md-expansion-panel-expanded.md-scroll-y{overflow-y:auto}md-expansion-panel md-expansion-panel-expanded.md-overflow{overflow:hidden}md-expansion-panel md-expansion-panel-expanded md-expansion-panel-content{display:block;padding:16px 24px}md-expansion-panel:not(.md-no-animation) md-expansion-panel-expanded.md-show{-webkit-transition:max-height .12s cubic-bezier(.25,.8,.25,1),opacity .12s cubic-bezier(.25,.8,.25,1);transition:max-height .12s cubic-bezier(.25,.8,.25,1),opacity .12s cubic-bezier(.25,.8,.25,1)}md-expansion-panel:not(.md-no-animation) md-expansion-panel-expanded.md-hide{-webkit-transition:max-height 60ms cubic-bezier(.25,.8,.25,1),opacity 60ms cubic-bezier(.25,.8,.25,1);transition:max-height 60ms cubic-bezier(.25,.8,.25,1),opacity 60ms cubic-bezier(.25,.8,.25,1)}md-expansion-panel-header{display:block;position:relative;outline:0}md-expansion-panel-header .md-expansion-panel-header-container{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:48px;line-height:48px;padding:0 24px;box-sizing:border-box;border-bottom:1px solid;-webkit-box-align:center;-ms-flex-align:center;align-items:center}md-expansion-panel-header.md-stick .md-expansion-panel-header-container{position:fixed;z-index:2;-webkit-animation:panelBodyHeaderStickyHoverIn .3s ease-out both;animation:panelBodyHeaderStickyHoverIn .3s ease-out both}md-expansion-panel-header.md-no-stick .md-expansion-panel-header-container{-webkit-animation:panelBodyHeaderStickyHoverOut .3s ease-out both;animation:panelBodyHeaderStickyHoverOut .3s ease-out both}md-expansion-panel-footer{display:block;position:relative}md-expansion-panel-footer.md-hide,md-expansion-panel-footer.md-show{display:block}md-expansion-panel-footer .md-expansion-panel-footer-container{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:48px;line-height:48px;padding:0 24px;border-top:1px solid;box-sizing:border-box}md-expansion-panel-footer.md-stick .md-expansion-panel-footer-container{position:fixed;z-index:2}md-expansion-panel:not(.md-no-animation) .md-expansion-panel-icon{-webkit-transition:-webkit-transform .6s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .6s cubic-bezier(.25,.8,.25,1);transition:transform .6s cubic-bezier(.25,.8,.25,1);transition:transform .6s cubic-bezier(.25,.8,.25,1),-webkit-transform .6s cubic-bezier(.25,.8,.25,1)}md-expansion-panel .md-expansion-panel-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}md-expansion-panel .md-expansion-panel-icon:first-child{margin-right:18px}md-expansion-panel.md-open>md-expansion-panel-expanded>md-expansion-panel-header .md-expansion-panel-header-container .md-expansion-panel-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}md-expansion-panel.md-open>md-expansion-panel.md-open>md-expansion-panel-collapsed .md-expansion-panel-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@-webkit-keyframes panelBodyHeaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes panelBodyHeaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@-webkit-keyframes panelBodyHeaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}@keyframes panelBodyHeaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.main-view .content .builder,.main-view .content .json,.main-view .content .view{border-right:1px solid #ccc;height:800px;overflow:auto}.builder-icon{line-height:0}.builder-icon,form-item .form-item-container .md-button,form-item .option-item .md-button{min-height:36px;min-width:36px;height:36px;width:36px}form-item .form-item-container .md-button{line-height:0}form-item .option-item{min-height:75px}form-item .option-item .md-button{line-height:0;margin-top:20px}form-item .option-item .md-button.handle:active,form-item .option-item .md-button.handle:hover{cursor:move}form-item .form-item-container{position:relative;padding-top:30px}form-item .form-item-container .form-item-actions{position:absolute;right:20px;top:0}form-view .formItem-content,form-view .formItem-title{font-size:18px}form-view .formItem-help-text{font-size:14px;color:#6c6c6c}form-view .matrix-container{overflow:auto}form-view .matrix-container .matrix .matrix-row{border-bottom:1px solid #4caf50}form-view .matrix-container .matrix .matrix-cell{text-align:center;overflow:hidden}form-view .matrix-container .matrix md-radio-button .md-label{margin-left:0;margin-right:0}form-view .matrix-container .matrix .md-switch-thumb,form-view .matrix-container .matrix md-radio-button{margin:15px 0}i.material-icons{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}i.material-icons.medium{font-size:36px}[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-input::-ms-clear,md-color-picker .md-color-picker-input-container .md-color-picker-input::-ms-clear{display:none}[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 25%,transparent 75%,#ddd 75%,#ddd),-webkit-linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd);background-image:linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd),linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#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 canvas{width:100%;height:100%}.md-color-picker-container .md-color-picker-preview{-webkit-box-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:rgba(255,255,255,.5)}.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs .md-tab{padding-top:2px;background:rgba(255,255,255,.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{color:#333}.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 0}.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 0}.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:12px;height:12px;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:rgba(255,255,255,.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:rgba(255,255,255,.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 25%,transparent 75%,#ddd 75%,#ddd),-webkit-linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd);background-image:linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd),linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#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 25%,transparent 75%,#ddd 75%,#ddd),-webkit-linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd);background-image:linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd),linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%,#ddd);background-size:8px 8px;background-position:0 0,4px 4px}.emojione{font-size:inherit;height:3ex;width:3.1ex;min-height:20px;min-width:20px;display:inline-block;margin:-.2ex .15em .2ex;line-height:normal;vertical-align:middle}img.emojione{width:auto}.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea]{position:absolute;z-index:1000;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);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item{font-size:14px;padding:1px 3px;border:0}.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item a{text-decoration:none;display:block;height:100%;line-height:1.8em;padding:0 1.54em 0 .615em;color:#4f4f4f}.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item.active,.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item:hover{background-color:#e4e4e4}.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item.active a,.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item:hover a{color:#333}.dropdown-menu.textcomplete-dropdown[data-strategy=emojionearea] li.textcomplete-item .emojioneemoji{font-size:inherit;height:2ex;width:2.1ex;min-height:20px;min-width:20px;display:inline-block;margin:0 5px .2ex 0;line-height:normal;vertical-align:middle;max-width:100%;top:0}.emojionearea-text .emojioneemoji,.emojionearea-text [class*=emojione-]{font-size:inherit;height:2ex;width:2.1ex;min-height:20px;min-width:20px;display:inline-block;margin:-.2ex .15em .2ex;line-height:normal;vertical-align:middle;max-width:100%;top:0}.emojionearea,.emojionearea *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.emojionearea.emojionearea-disable{position:relative;background-color:#eee;-moz-user-select:-moz-none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.emojionearea.emojionearea-disable:before{content:"";display:block;top:0;left:0;right:0;bottom:0;z-index:1;opacity:.3;position:absolute;background-color:#eee}.emojionearea,.emojionearea.form-control{display:block;position:relative!important;width:100%;height:auto;padding:0;font-size:14px;background-color:#fff;border:1px solid #ccc;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-transition:border-color .15s ease-in-out,-moz-box-shadow .15s ease-in-out;-o-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.emojionearea.focused{border-color:#66afe9;outline:0;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-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)}.emojionearea .emojionearea-editor{display:block;height:auto;min-height:8em;max-height:15em;overflow:auto;padding:6px 24px 6px 12px;line-height:1.42857143;font-size:inherit;color:#555;background-color:transparent;border:0;cursor:text;margin-right:1px;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.emojionearea .emojionearea-editor:empty:before{content:attr(placeholder);display:block;color:#bbb}.emojionearea .emojionearea-editor:focus{border:0;outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.emojionearea .emojionearea-editor .emojioneemoji,.emojionearea .emojionearea-editor [class*=emojione-]{font-size:inherit;height:2ex;width:2.1ex;min-height:20px;min-width:20px;display:inline-block;margin:-.2ex .15em .2ex;line-height:normal;vertical-align:middle;max-width:100%;top:0}.emojionearea.emojionearea-inline{height:34px}.emojionearea.emojionearea-inline>.emojionearea-editor{height:32px;min-height:20px;overflow:hidden;white-space:nowrap;position:absolute;top:0;left:12px;right:24px;padding:6px 0}.emojionearea.emojionearea-inline>.emojionearea-button{top:4px}.emojionearea .emojionearea-button{z-index:5;position:absolute;right:3px;top:3px;width:24px;height:24px;opacity:.6;cursor:pointer;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.emojionearea .emojionearea-button:hover{opacity:1}.emojionearea .emojionearea-button>div{display:block;width:24px;height:24px;position:absolute;-moz-transition:all .4s ease-in-out;-o-transition:all .4s ease-in-out;-webkit-transition:all .4s ease-in-out;transition:all .4s ease-in-out}.emojionearea .emojionearea-button>div.emojionearea-button-open{background-position:0 -24px;opacity:1}.emojionearea .emojionearea-button>div.emojionearea-button-close{background-position:0 0;-webkit-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}.emojionearea .emojionearea-button.active>div.emojionearea-button-open{-webkit-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);opacity:0}.emojionearea .emojionearea-button.active>div.emojionearea-button-close{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0);opacity:1}.emojionearea .emojionearea-picker{background:#fff;position:absolute;-moz-box-shadow:0 1px 5px rgba(0,0,0,.32);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.32);box-shadow:0 1px 5px rgba(0,0,0,.32);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;height:276px;width:316px;top:-15px;right:-15px;z-index:90;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out;opacity:0;-moz-user-select:-moz-none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.emojionearea .emojionearea-picker.hidden{display:none}.emojionearea .emojionearea-picker .emojionearea-wrapper{position:relative;height:276px;width:316px}.emojionearea .emojionearea-picker .emojionearea-wrapper:after{content:"";display:block;position:absolute;background-repeat:no-repeat;z-index:91}.emojionearea .emojionearea-picker .emojionearea-filters{width:100%;position:absolute;z-index:95;background:#f5f7f9;padding:0 0 0 7px;height:40px}.emojionearea .emojionearea-picker .emojionearea-filters .emojionearea-filter{display:block;float:left;height:40px;width:32px;padding:7px 1px 0;cursor:pointer;-webkit-filter:grayscale(1);filter:grayscale(1)}.emojionearea .emojionearea-picker .emojionearea-filters .emojionearea-filter.active{background:#fff}.emojionearea .emojionearea-picker .emojionearea-filters .emojionearea-filter.active,.emojionearea .emojionearea-picker .emojionearea-filters .emojionearea-filter:hover{-webkit-filter:grayscale(0);filter:grayscale(0)}.emojionearea .emojionearea-picker .emojionearea-filters .emojionearea-filter>i{width:24px;height:24px;top:0}.emojionearea .emojionearea-picker .emojionearea-filters .emojionearea-filter>img{width:24px;height:24px;margin:0 3px}.emojionearea .emojionearea-picker .emojionearea-search-panel{height:30px;position:absolute;z-index:95;top:40px;left:0;right:0;padding:5px 0 5px 8px}.emojionearea .emojionearea-picker .emojionearea-search-panel .emojionearea-tones{float:right;margin-right:10px;margin-top:-1px}.emojionearea .emojionearea-picker .emojionearea-tones-panel .emojionearea-tones{position:absolute;top:4px;left:171px}.emojionearea .emojionearea-picker .emojionearea-search{float:left;padding:0;height:20px;width:160px}.emojionearea .emojionearea-picker .emojionearea-search>input{outline:0;width:160px;min-width:160px;height:20px}.emojionearea .emojionearea-picker .emojionearea-tones{padding:0;width:120px;height:20px}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone{display:inline-block;padding:0;border:0;vertical-align:middle;outline:0;background:0 0;cursor:pointer;position:relative}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-0,.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-0:after{background-color:#ffcf3e}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-1,.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-1:after{background-color:#fae3c5}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-2,.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-2:after{background-color:#e2cfa5}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-3,.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-3:after{background-color:#daa478}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-4,.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-4:after{background-color:#a78058}.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-5,.emojionearea .emojionearea-picker .emojionearea-tones>.btn-tone.btn-tone-5:after{background-color:#5e4d43}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-bullet>.btn-tone,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-square>.btn-tone{width:20px;height:20px;margin:0;background-color:transparent}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-bullet>.btn-tone:after,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-square>.btn-tone:after{content:"";position:absolute;display:block;top:4px;left:4px;width:12px;height:12px}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-bullet>.btn-tone.active:after,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-square>.btn-tone.active:after{top:0;left:0;width:20px;height:20px}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-checkbox>.btn-tone,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-radio>.btn-tone{width:16px;height:16px;margin:0 2px}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-checkbox>.btn-tone.active:after,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-radio>.btn-tone.active:after{content:"";position:absolute;display:block;background-color:transparent;border:2px solid #fff;width:8px;height:8px;top:2px;left:2px;box-sizing:initial}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-block:after,.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-block:before,.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-block>.emojionearea-category:after,.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-block>.emojionearea-category:before,.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-title:after,.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-title:before{content:" ";clear:both;display:block}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-bullet>.btn-tone,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-bullet>.btn-tone:after,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-radio>.btn-tone,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-radio>.btn-tone:after{-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%}.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-checkbox>.btn-tone,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-checkbox>.btn-tone:after,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-square>.btn-tone,.emojionearea .emojionearea-picker .emojionearea-tones.emojionearea-tones-square>.btn-tone:after{-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.emojionearea .emojionearea-picker .emojionearea-scroll-area{height:236px;overflow:auto;overflow-x:hidden;width:100%;position:absolute;padding:0 0 5px}.emojionearea .emojionearea-picker .emojionearea-search-panel+.emojionearea-scroll-area{height:206px}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-emojis-list{z-index:1}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-title{display:block;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:13px;font-weight:400;color:#b2b2b2;background:#fff;line-height:20px;margin:0;padding:7px 0 5px 6px}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-block{padding:0 0 0 7px}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojionearea-category-block>.emojionearea-category{padding:0!important}.emojionearea .emojionearea-picker .emojionearea-scroll-area [class*=emojione-]{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;margin:0;width:24px;height:24px;top:0}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojibtn{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;width:24px;height:24px;float:left;display:block;margin:1px;padding:3px}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojibtn:hover{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#e4e4e4;cursor:pointer}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojibtn i,.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojibtn img{float:left;display:block;width:24px;height:24px}.emojionearea .emojionearea-picker .emojionearea-scroll-area .emojibtn img.lazy-emoji{opacity:0}.emojionearea .emojionearea-picker.emojionearea-filters-position-top .emojionearea-filters{top:0;-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px}.emojionearea .emojionearea-picker.emojionearea-filters-position-top.emojionearea-search-position-top .emojionearea-scroll-area{bottom:0}.emojionearea .emojionearea-picker.emojionearea-filters-position-top.emojionearea-search-position-bottom .emojionearea-scroll-area{top:40px}.emojionearea .emojionearea-picker.emojionearea-filters-position-top.emojionearea-search-position-bottom .emojionearea-search-panel{top:initial;bottom:0}.emojionearea .emojionearea-picker.emojionearea-filters-position-bottom .emojionearea-filters{bottom:0;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px}.emojionearea .emojionearea-picker.emojionearea-filters-position-bottom.emojionearea-search-position-bottom .emojionearea-scroll-area{top:0}.emojionearea .emojionearea-picker.emojionearea-filters-position-bottom.emojionearea-search-position-bottom .emojionearea-search-panel,.emojionearea .emojionearea-picker.emojionearea-filters-position-bottom.emojionearea-search-position-top .emojionearea-scroll-area{top:initial;bottom:40px}.emojionearea .emojionearea-picker.emojionearea-filters-position-bottom.emojionearea-search-position-top .emojionearea-search-panel{top:0}.emojionearea .emojionearea-picker.emojionearea-picker-position-top{margin-top:-286px;right:-14px}.emojionearea .emojionearea-picker.emojionearea-picker-position-top .emojionearea-wrapper:after{width:19px;height:10px;background-position:-2px -49px;bottom:-10px;right:20px}.emojionearea .emojionearea-picker.emojionearea-picker-position-top.emojionearea-filters-position-bottom .emojionearea-wrapper:after{background-position:-2px -80px}.emojionearea .emojionearea-picker.emojionearea-picker-position-left,.emojionearea .emojionearea-picker.emojionearea-picker-position-right{margin-right:-326px;top:-8px}.emojionearea .emojionearea-picker.emojionearea-picker-position-left .emojionearea-wrapper:after,.emojionearea .emojionearea-picker.emojionearea-picker-position-right .emojionearea-wrapper:after{width:10px;height:19px;background-position:0 -60px;top:13px;left:-10px}.emojionearea .emojionearea-picker.emojionearea-picker-position-left.emojionearea-filters-position-bottom .emojionearea-wrapper:after,.emojionearea .emojionearea-picker.emojionearea-picker-position-right.emojionearea-filters-position-bottom .emojionearea-wrapper:after{background-position:right -60px}.emojionearea .emojionearea-picker.emojionearea-picker-position-bottom{margin-top:10px;right:-14px;top:47px}.emojionearea .emojionearea-picker.emojionearea-picker-position-bottom .emojionearea-wrapper:after{width:19px;height:10px;background-position:-2px -100px;top:-10px;right:20px}.emojionearea .emojionearea-picker.emojionearea-picker-position-bottom.emojionearea-filters-position-bottom .emojionearea-wrapper:after{background-position:-2px -90px}.emojionearea .emojionearea-button.active+.emojionearea-picker{opacity:1}.emojionearea .emojionearea-button.active+.emojionearea-picker-position-top{margin-top:-269px}.emojionearea .emojionearea-button.active+.emojionearea-picker-position-left,.emojionearea .emojionearea-button.active+.emojionearea-picker-position-right{margin-right:-309px}.emojionearea .emojionearea-button.active+.emojionearea-picker-position-bottom{margin-top:-7px}.emojionearea.emojionearea-standalone{display:inline-block;width:auto;box-shadow:none}.emojionearea.emojionearea-standalone .emojionearea-editor{min-height:33px;position:relative;padding:6px 42px 6px 6px}.emojionearea.emojionearea-standalone .emojionearea-editor::before{content:"";position:absolute;top:4px;left:50%;bottom:4px;border-left:1px solid #e6e6e6}.emojionearea.emojionearea-standalone .emojionearea-editor.has-placeholder .emojioneemoji{opacity:.4}.emojionearea.emojionearea-standalone .emojionearea-button{top:0;right:0;bottom:0;left:0;width:auto;height:auto}.emojionearea.emojionearea-standalone .emojionearea-button>div{right:6px;top:5px}.emojionearea.emojionearea-standalone .emojionearea-picker.emojionearea-picker-position-bottom .emojionearea-wrapper:after,.emojionearea.emojionearea-standalone .emojionearea-picker.emojionearea-picker-position-top .emojionearea-wrapper:after{right:23px}.emojionearea.emojionearea-standalone .emojionearea-picker.emojionearea-picker-position-left .emojionearea-wrapper:after,.emojionearea.emojionearea-standalone .emojionearea-picker.emojionearea-picker-position-right .emojionearea-wrapper:after{top:15px}.emojionearea .emojionearea-button>div,.emojionearea .emojionearea-picker .emojionearea-wrapper:after{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAABuCAYAAADMB4ipAAAHfElEQVRo3u1XS1NT2Rb+9uOcQF4YlAJzLymFUHaLrdxKULvEUNpdTnRqD532f+AHMLMc94gqR1Zbt8rBnUh3YXipPGKwRDoWgXvrYiFUlEdIkPPYZ/dAkwox5yQCVt/bzRrBPnt9e+211/etFeDQDu3ArL+/X37OeqmRWoH7+vpItfWawStF1tfXR+zW9xW5ne0p8loOcAKuCdwpRft60C8a+X5zTvebCqcAvmidf1GGHtqhHdpf1qqKzsrKipyensbi4iKWl5cBAMFgEG1tbYhGo2hpadlbmxseHpaDg4MAgI6ODng8HgBAPp/H/Pw8AODatWvo7e2tvUHrui7v3r2L+fl5XL58GVeuXIHH49m1N5/Py0ePHmF0dBQdHR24desWVFXdtYdXAn/48CHm5+dx8+ZNRKPRigEUDpuenpb3799H4YaOnWh5eVmOj48jFoshGo0STdPkwMCAXF5elqV7BgYGpKZpMhqNklgshrGxMbx580Y6gicSCTDGEIvFAADpdBqpVArJZLK4J5lMIpVKIZ1OAwBisRgYY0gkEs6Rp1IphMNh+Hw+AgCGYQAANE0r7in8Xfjm8/lIOBzGq1evnMHX19fR1NRU/D8UCoFzjnA4XFwLh8PgnCMUChXXmpqakM1mUfVBS62xsZHk83lZWi1nz579ZA0AhBDO4A0NDchkMsWSJIRAURRiVy26rktVVUkmk0EgEHAGP3XqFKamppDP56Vpmrhz5w5u374t/X4/OP+w3TRNZLNZ6LoO0zSRz+dlf38/Ll686Jzz8+fPQwiBeDwOt9tNrl+/jkwmU6yaQpVkMhncuHEDbrebxONxCCEQiUScIw8Gg+TBgwdyZGQEyWRSdnV1kVQqJYeGhrC6ugrGGEKhEHp7e3Hy5EmSTCblvXv30NPTg2AwSA6M/vF4HCMjI7b0/yzh8vv9AIBsNrt34aokuQsLC7skt729varkHtqftUFf++FHsrq0QN3eBvp68Tfvf9Mv12oFCYU7G//e9nVuO7dpNbe2W4M//yQr0p8yRvyBo1Zr++lwLcCt7afD/sBRizJGavrB1dDYYh47Htrq+Kb7jBNwxzfdZ44dD201NLaYVUkU7ozQpuAJBkARwnRZpunN5zaa5hJjiXLH05GeiMd7JEM5zzHGNQBGZvk/Iv0yYVWMvK0zKk1Dl6ahW5RQobjqdjy+wEZn9PKF0n2d0csXPL7AhuKq26GECtPQLdPQZVtn1LlB69p7yRVVSEiDEGJwRd12e4+8PR3piRQidnuPvOWKuk0IMSSkwRVV6Np7WVVbSqvGsgSnlKkAFNPQXdrOtuKqcxtcUTUAhmUJnVJmlleJo3CVHmAaOlPUOmYJkxFKibQsSRkXhr4juKIKO2BHVSwcoLrqCVdUYho6K3YYRRWmoUtdey/tgKtK7rUffiQAsLq08MnbNLe2WwBgB/zHzueFyD8nwlIfbvdx8eU0WV1aKD1cVAMs9+F2j9gUPEEKemEJIe3AnXy4XfkBoNKSZHNthWfX31EA69VKttyHVyIOY1wRwmS6tqNsrr31vXo5k/bUu4gT2cp9lhbm0rzCJpeUUrE0vS63+c7/6uXMbDUWl/ssLczNFrVFddUT09AZpUy1LKvO0DVfPrfR9HxqfNbuEe185l9MFX3o6tIC5YpKFLWOfdQQ93Zu49j0+FDCDtjOp1yaOQCYhs4Y40wI05XfWj8yPT40Ua2ey33mEmMTtp2IUEq0nW3FKeJPGPjRp1Iz2QUuLUu66txG9NLVSK3gBZ+C1lcE54oqKOOCK6rm8QU2unu+u1ANuNynvFsBAG1ubbdMQ5eGviMAFDuP0w3sfMpvQEtb24fOQncU1bXl8R7JnOu+ZNv97XxKJwY6+PNPsrm13drObVqUMlMIU5OWpVHOc96Go5lTnV2fzC/VfAozD7HTCa6olBBa1Imlhbmq2lLuQ5xaW6nCPfnln0Yt7bDUhzhps8cfKH5//uTXmvS81OeLdqI/ZoROzSZrHqG/OvOPzxuhK5VgJTvV2bW3EdqJRABwrvvS/kfoSkoZvXT1YEbociHr7vnuYEfogpBFL109HKH/h0fomnXg3Lff79r7/MmvVbWG7gX4QObzc99+Tz7mHKah05KcW6ahQ9feS6cbMCdgt7eBWJagjCuUAC5tZzuouuo0Spm0hElc9R4cbf4bVl8v1p6WUmCuqEwIs34ruxaeeTy4uJVd67As08UVlVmWoG5vA7FLG3WMmHEupVTyW+vh2cn4DADMTsaTuc21LiGEhzHOnQ6gNtMrJSBMCKHkNt999WLi0S7hejEZH81n174WpukiIMw0dKq66p3Bw50RwhUVXFGJKUy28Xal48VkfKrSlWenhsc23q2cEB9SR7iiItwZIbbgHn8AlDFCCMW7laXjqZnHjkNpaubJzNuVpWZCKChjxOMPVH/QlaW0f/G3ZLqWWl6ce/bvlddp7yFD/w8Z+njoX1+GoZMjgzMAMDkyeLAMnRh+uKveJ0YGD4ahEyODFRk6OfrL/hj67GnckaHPng7vjaGzyYmaGDr77KktQ38H8tqx8Wja+WIAAAAASUVORK5CYII=)!important}.emojionearea.emojionearea-standalone .emojionearea-editor.has-placeholder{background-repeat:no-repeat;background-position:20px 4px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAQMAAABsu86kAAAABlBMVEUAAAC/v79T5hyIAAAAAXRSTlMAQObYZgAAABNJREFUCNdjYGNgQEb/P4AQqiAASiUEG6Vit44AAAAASUVORK5CYII=)!important}md-date-range{cursor:pointer}md-date-range-picker{display:block;max-width:664px}md-date-range-picker .md-date-range-picker__one-panel{display:block;max-width:340px}.md-date-range-picker [event-key] *{pointer-events:none}.md-date-range-picker{position:relative;background:#fff}.md-date-range-picker__title{text-align:center;font-size:1rem;background:#106cc8;color:#fff;margin:0;padding:16px 0}.md-date-range-picker__month-year{text-align:center;font-size:1rem;background:#eee;margin:0;padding:0 0}.md-date-range-picker__month-year .md-select-icon{display:none}.md-date-range-picker__month-year md-select{margin:10px 0}.md-date-range-picker__templates{background:#eee}.md-date-range-picker__calendar-wrapper{padding:0 0;width:308px;min-width:308px}.md-date-range-picker__week{background:#e0e0e0}.md-date-range-picker__calendar__grid{font-size:13px;color:#222;padding:0;display:inline-block;width:44px;height:44px;line-height:44px;text-align:center;position:relative;outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:50%;background:rgba(2550,255,255,0)}.md-date-range-picker__calendar .md-date-range-picker__calendar__grid{cursor:pointer}.md-date-range-picker__calendar__not-in-active-month{color:rgba(0,0,0,.5)}.md-date-range-picker__calendar .md-date-range-picker__calendar__grid:hover:not(.md-date-range-picker__calendar__selected):not(.md-date-range-picker__calendar__disabled){transition:background .3s ease-out;background:rgba(0,0,0,.1)}.md-date-range-picker__calendar__selected{background:#106cc8;color:#fff;border-radius:0}.md-date-range-picker__calendar__selected.md-date-range-picker__calendar__disabled{background:rgba(0,0,0,.2)}.md-date-range-picker__calendar__not-in-active-month.md-date-range-picker__calendar__selected{color:rgba(255,255,255,.2)}.md-date-range-picker__calendar__today{font-weight:700}.md-date-range-picker__calendar .md-date-range-picker__calendar__grid.md-date-range-picker__calendar__disabled{opacity:.3;cursor:not-allowed}.md-date-range-picker__calendar__start{border-top-left-radius:50%;border-bottom-left-radius:50%}.md-date-range-picker__calendar__end{border-top-right-radius:50%;border-bottom-right-radius:50%}.md-date-range-picker__select{z-index:100}.md-date-range-picker__calendar__selection{pointer-events:none}.angucomplete-holder{position:relative}.angucomplete-dropdown{border-color:#ececec;border-width:1px;border-style:solid;border-radius:2px;width:250px;padding:6px;cursor:pointer;z-index:9999;position:absolute;margin-top:-6px;background-color:#fff}.angucomplete-searching{color:#acacac;font-size:14px}.angucomplete-description{font-size:14px}.angucomplete-row{padding:5px;color:#000;margin-bottom:4px;clear:both}.angucomplete-selected-row{background-color:#add8e6;color:#fff}.angucomplete-image-holder{padding-top:2px;float:left;margin-right:10px;margin-left:5px}.angucomplete-image{height:34px;width:34px;border-radius:50%;border-color:#ececec;border-style:solid;border-width:1px}.angucomplete-image-default{background-position:center;background-size:contain;height:34px;width:34px}/*!
* Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- */.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}.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-form-question-builder-wrapper .mw-preview .stars{padding-top:8px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-preview .stars .star{margin-right:16px;font-size:24px;color:#ddd}.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{font-size:16px;line-height:24px;background-color:#fff;padding:12px 12px 48px}.mw-form-viewer h1{font-size:26px;line-height:48px;margin-top:0;margin-bottom:0}.mw-form-viewer h2{font-size:16px;line-height:24px;margin-top:0;margin-bottom:24px}.mw-form-viewer h3{font-size:16px;line-height:24px;margin:0}.mw-form-viewer img{max-width:100%}.mw-form-viewer input,.mw-form-viewer select,.mw-form-viewer textarea{font-size:16px}.mw-form-viewer .checkbox,.mw-form-viewer .radio{margin:0 0 12px}.mw-form-viewer .checkbox label,.mw-form-viewer .radio label{padding-left:24px}.mw-form-viewer .checkbox input[type=text],.mw-form-viewer .radio input[type=text]{margin:12px 0 0}.mw-form-viewer .mw-form-page{margin:24px 0}.mw-form-viewer .mw-form-page .mw-page-element{margin-bottom:48px}.mw-form-viewer .mw-form-page .mw-page-element .mw-question-text{margin-bottom:12px;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-description,.mw-form-viewer .question-grid .question-grid-row{margin-bottom:24px}.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{display:-webkit-flex;display:flex}.mw-form-viewer .mw-form-page .mw-range input[type=range]{max-width:400px}.mw-form-viewer .mw-form-page .mw-range .mw-range-value-label{margin-left:12px;font-size:24px}.mw-form-viewer .no-drag{cursor:default}.mw-form-viewer .ng-invalid.ng-dirty{border-color:red;outline-color:red}.mw-form-viewer .question-grid .question-grid-row:last-child{margin-bottom:0}.mw-form-viewer .question-grid .question-grid-cell{padding:6px;margin-bottom:3px;background-color:#f9f9f9}.mw-form-viewer .question-grid .question-grid-cell label{margin-left:6px;font-weight:400}.mw-form-viewer .question-grid h3.question-grid-cell{background-color:transparent;margin:0}.mw-form-viewer .stars{display:-webkit-flex;display:flex;flex-direction:row-reverse;-webkit-flex-direction:row-reverse;justify-content:space-around;-webkit-justify-content:space-around}.mw-form-viewer .stars .stars-end,.mw-form-viewer .stars input{display:none}.mw-form-viewer .stars .star{cursor:pointer}.mw-form-viewer .stars .star i{font-size:24px;color:#ddd}.mw-form-viewer .stars .star:last-of-type{padding-left:0}.mw-form-viewer .stars input:checked~label i,.mw-form-viewer .stars input:not(:checked)+label:hover i,.mw-form-viewer .stars input:not(:checked)+label:hover~label i{color:gold}@media (min-width:992px){.mw-form-viewer{padding:24px}.mw-form-viewer h1{font-size:42px;line-height:48px;margin:0 0 24px}.mw-form-viewer h2{font-size:26px;line-height:48px;margin:0 0 24px}.mw-form-viewer .checkbox input[type=text],.mw-form-viewer .radio input[type=text]{margin:0 0 0 12px}.mw-form-viewer .question-grid{display:table;border-collapse:collapse;width:100%}.mw-form-viewer .question-grid .question-grid-row{display:table-row;margin:0}.mw-form-viewer .question-grid .question-grid-block{border-top:1px solid #ddd}.mw-form-viewer .question-grid .question-grid-block:nth-child(2n){background-color:#f9f9f9}.mw-form-viewer .question-grid .question-grid-cell{font-weight:400;display:table-cell;background-color:transparent;padding:6px;margin:0}.mw-form-viewer .question-grid .question-grid-heading{font-weight:700}.mw-form-viewer .stars{justify-content:flex-end;-webkit-justify-content:flex-end}.mw-form-viewer .stars .star{padding-left:8px;padding-right:8px}}.mw-division-list md-input-container,.mw-question-other-answer md-input-container{margin:0}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes colors{0%,100%{stroke:#4285f4}25%{stroke:#de3e35}50%{stroke:#f7c223}75%{stroke:#1b9a59}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0;stroke:red}50%{stroke-dasharray:90,150;stroke-dashoffset:-35;stroke:#ff0}100%{stroke-dasharray:90,150;stroke-dashoffset:-124;stroke:green}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.animated{-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.fast,.modal.animated{-webkit-animation-duration:.2s;animation-duration:.2s}.animated.slow{-webkit-animation-duration:1.1s;animation-duration:1.1s}.animated.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.animated.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.spinner-container{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;z-index:2;width:65px;height:65px}.spinner-container .path{stroke-dasharray:1,150;stroke-dashoffset:0;stroke:#2196f3;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite,colors 5.6s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite,colors 5.6s ease-in-out infinite}.modal{word-wrap:break-word}.modal .label.error-msg{display:block;font-size:12px;padding:5px;margin-top:10px;text-align:left}.modal .label.error-msg>span{white-space:pre-wrap}.modal .breadcrumb{margin:0 0 5px;background:#00bcd4;font-size:16px;max-height:inherit;padding:0 10px}.modal-fullscreen .modal-content,.modal-fullscreen .modal-dialog{bottom:0;left:0;position:absolute;right:0;top:0}.modal-fullscreen .modal-dialog{margin:0;width:100%}.modal-fullscreen .modal-content{border:none;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:inherit;-moz-box-shadow:inherit;-o-box-shadow:inherit;box-shadow:inherit}.modal-fullscreen textarea.code{min-height:450px}.modal img.preview{max-width:100%;max-height:640px;border-radius:3px}.modal img.preview.loading{width:100%;height:1px;opacity:0}.modal .modal-content{border-radius:10px 10px 4px 4px}.modal .modal-header{border-radius:4px 4px 0 0;background:#2196f3;padding:1.3em}.modal .modal-header .modal-title{font-size:20px;line-height:100%;color:#d4e5f5;margin:0}.modal .modal-header .close{opacity:1;color:#d4e5f5}.modal .modal-header .close.fullscreen{font-size:14px;position:relative;top:4px;margin-right:.8em}.detail-sources,.ellipsis{text-overflow:ellipsis;overflow:hidden}body{font-size:14px;height:100vh}*,:focus{outline:0!important}.navbar{min-height:32px;margin-bottom:0;border:0;border-radius:0;color:#fff}.navbar .navbar-collapse{overflow:visible;padding:0}.navbar .navbar-toggle{padding:5px 10px}.navbar .navbar-brand{font-size:inherit;height:55px;line-height:100%}.btn.btn-default{color:#444;background-color:#fafafa}.btn{box-shadow:0 2px 5px 0 rgba(0,0,0,.26);font-weight:500;letter-spacing:.01em;border:none}textarea.code{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:13px;min-height:250px;resize:vertical;color:#000}.sub-header{padding-bottom:10px;border-bottom:1px solid #eee}.sidebar{display:none;background:#fafafa;margin-top:2px;padding:0;overflow-x:hidden;overflow-y:auto;border-right:1px solid #eee}.btn-go-back{margin-top:-5px}.nav-sidebar{margin-right:-21px;margin-bottom:20px;margin-left:-20px}.nav-sidebar>li>a{color:#7a7a7a;padding:7px 0 7px 16px}.nav-sidebar>li>a:focus,.nav-sidebar>li>a:hover{background:0 0;color:#1378b9}.nav-sidebar>li.active>a{color:#2196f3}.main{padding:0}.main .page-header{margin-top:0}.file-tree ul.nav.nav-sidebar{margin:0;padding:0 0 0 12px}.file-tree ul.nav.nav-sidebar:first-child{padding-left:0}.file-tree ul.nav.nav-sidebar.file-tree-root>li{border-left:none;padding-left:0}.table td{vertical-align:middle}#context-menu{position:absolute;display:none;z-index:9999}.iconset{padding:10px}.col-120{width:100px;max-height:100px;float:left;margin-bottom:9px;margin-right:9px}.col-120:last-child{margin-right:0}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.iconset .thumbnail{border-radius:0;overflow:hidden;margin:0;padding:10px 0;border:none;background:0 0}.iconset .thumbnail.selected,.table-files .selected{background:#2196f3}.iconset .thumbnail.selected,.table-files .selected td,.table-files .selected td a{color:#fff}.iconset .thumbnail .item-icon{font-size:32px}.detail-sources{word-wrap:break-word}::-webkit-scrollbar{width:10px;height:10px;background-color:#fff;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset -1px -1px 0 rgba(0,0,0,.07)}::-webkit-scrollbar:hover{background-color:#eee}::-webkit-scrollbar-thumb{min-height:.8em;min-width:.8em;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset -1px -1px 0 rgba(0,0,0,.07)}::-webkit-scrollbar-thumb:hover{background-color:#bbb}::-webkit-scrollbar-thumb:active{background-color:#888}.dropdown-menu{font-size:14px}.dropdown-menu>li>a{padding:6px 20px}.dropdown-menu>li>a>i{margin-right:4px}.dropdown-menu.dropdown-right-click{display:block;position:static;margin-bottom:5px}.dropdown-menu.dropdown-right-click .divider{margin:3px 0}.upload-dragover .main{opacity:.4}.upload-dragover:before{content:"\e198";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100;color:#2196f3;font-size:8em;font-family:'Glyphicons Halflings'}.upload-list{margin-top:20px}.spinner-wrapper{margin:8% auto 0;text-align:center}a:active,a:focus,a:hover,table th>a:active,table th>a:focus,table th>a:hover{text-decoration:none}.sortorder:after{color:#2196f3;content:'\25bc'}.sortorder.reverse:after{color:#2196f3;content:'\25b2'}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.mr2{margin-right:2px}.mr5{margin-right:5px}.mt10{margin-top:10px}.mb0{margin-bottom:0}.pointer{cursor:pointer}.block{display:block}.ellipsis{white-space:nowrap}.bold{font-weight:700}.main{overflow-y:auto}@media (min-width:768px){.main{padding-right:0;padding-left:0}.main,.row,.sidebar,angular-filemanager>div{height:100%}.container-fluid{height:-webkit-calc(100% - 58px);height:-moz-calc(100% - 58px);height:calc(100% - 58px)}.sidebar{display:block}}.selected-file-details{padding-left:20px}.item-extension::after{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;content:attr(data-ext);left:4px;position:absolute;color:#fff;font-size:9px;text-transform:uppercase;top:21px}.selected .item-extension::after{color:#2196f3}.form-control.search-input{max-width:20em;display:inline}.like-code{display:inline}.point{margin-right:8px;font-size:10px}.navbar .btn.btn-flat{padding:2px;width:32px;height:30px;margin-left:5px}.navbar-inverse .navbar-toggle .icon-bar{background:#fff}.navbar-inverse .navbar-form input[type=text]{color:#7a7a7a;box-shadow:none;margin:0 10px}.navbar .navbar-form{border-bottom:none;border-top:none;box-shadow:none;padding:0;margin:12px 0}.breadcrumb{background:0 0;padding:0;font-size:17px;margin:12px 0;overflow:hidden;max-height:30px}.breadcrumb a,.breadcrumb>.active{color:#fff}.breadcrumb>li+li:before{font-family:'Glyphicons Halflings';content:"\e080";font-size:12px;color:#fff}.scrollable-menu{height:auto;max-height:200px;overflow-x:hidden}.btn.btn-flat{background:0 0;color:#fff}.btn-group.open>.btn-flat,.btn.btn-flat,.btn.btn-flat:active{box-shadow:none}.btn.btn-flat>i{font-size:18px;width:18px;height:18px;line-height:100%}
\ No newline at end of file
+ */.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}/*!
+ * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ */@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}/*!
+ * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ */@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}.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-form-question-builder-wrapper .mw-preview .stars{padding-top:8px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-preview .stars .star{margin-right:16px;font-size:24px;color:#ddd}.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{font-size:16px;line-height:24px;background-color:#fff;padding:12px 12px 48px}.mw-form-viewer h1{font-size:26px;line-height:48px;margin-top:0;margin-bottom:0}.mw-form-viewer h2{font-size:16px;line-height:24px;margin-top:0;margin-bottom:24px}.mw-form-viewer h3{font-size:16px;line-height:24px;margin:0}.mw-form-viewer img{max-width:100%}.mw-form-viewer input,.mw-form-viewer select,.mw-form-viewer textarea{font-size:16px}.mw-form-viewer .checkbox,.mw-form-viewer .radio{margin:0 0 12px}.mw-form-viewer .checkbox label,.mw-form-viewer .radio label{padding-left:24px}.mw-form-viewer .checkbox input[type=text],.mw-form-viewer .radio input[type=text]{margin:12px 0 0}.mw-form-viewer .mw-form-page{margin:24px 0}.mw-form-viewer .mw-form-page .mw-page-element{margin-bottom:48px}.mw-form-viewer .mw-form-page .mw-page-element .mw-question-text{margin-bottom:12px;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-description,.mw-form-viewer .question-grid .question-grid-row{margin-bottom:24px}.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{display:-webkit-flex;display:flex}.mw-form-viewer .mw-form-page .mw-range input[type=range]{max-width:400px}.mw-form-viewer .mw-form-page .mw-range .mw-range-value-label{margin-left:12px;font-size:24px}.mw-form-viewer .no-drag{cursor:default}.mw-form-viewer .ng-invalid.ng-dirty{border-color:red;outline-color:red}.mw-form-viewer .question-grid .question-grid-row:last-child{margin-bottom:0}.mw-form-viewer .question-grid .question-grid-cell{padding:6px;margin-bottom:3px;background-color:#f9f9f9}.mw-form-viewer .question-grid .question-grid-cell label{margin-left:6px;font-weight:400}.mw-form-viewer .question-grid h3.question-grid-cell{background-color:transparent;margin:0}.mw-form-viewer .stars{display:-webkit-flex;display:flex;flex-direction:row-reverse;-webkit-flex-direction:row-reverse;justify-content:space-around;-webkit-justify-content:space-around}.mw-form-viewer .stars .stars-end,.mw-form-viewer .stars input{display:none}.mw-form-viewer .stars .star{cursor:pointer}.mw-form-viewer .stars .star i{font-size:24px;color:#ddd}.mw-form-viewer .stars .star:last-of-type{padding-left:0}.mw-form-viewer .stars input:checked~label i,.mw-form-viewer .stars input:not(:checked)+label:hover i,.mw-form-viewer .stars input:not(:checked)+label:hover~label i{color:gold}@media (min-width:992px){.mw-form-viewer{padding:24px}.mw-form-viewer h1{font-size:42px;line-height:48px;margin:0 0 24px}.mw-form-viewer h2{font-size:26px;line-height:48px;margin:0 0 24px}.mw-form-viewer .checkbox input[type=text],.mw-form-viewer .radio input[type=text]{margin:0 0 0 12px}.mw-form-viewer .question-grid{display:table;border-collapse:collapse;width:100%}.mw-form-viewer .question-grid .question-grid-row{display:table-row;margin:0}.mw-form-viewer .question-grid .question-grid-block{border-top:1px solid #ddd}.mw-form-viewer .question-grid .question-grid-block:nth-child(2n){background-color:#f9f9f9}.mw-form-viewer .question-grid .question-grid-cell{font-weight:400;display:table-cell;background-color:transparent;padding:6px;margin:0}.mw-form-viewer .question-grid .question-grid-heading{font-weight:700}.mw-form-viewer .stars{justify-content:flex-end;-webkit-justify-content:flex-end}.mw-form-viewer .stars .star{padding-left:8px;padding-right:8px}}.mw-division-list md-input-container,.mw-question-other-answer md-input-container{margin:0}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes colors{0%,100%{stroke:#4285f4}25%{stroke:#de3e35}50%{stroke:#f7c223}75%{stroke:#1b9a59}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0;stroke:red}50%{stroke-dasharray:90,150;stroke-dashoffset:-35;stroke:#ff0}100%{stroke-dasharray:90,150;stroke-dashoffset:-124;stroke:green}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.animated{-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.fast,.modal.animated{-webkit-animation-duration:.2s;animation-duration:.2s}.animated.slow{-webkit-animation-duration:1.1s;animation-duration:1.1s}.animated.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.animated.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.spinner-container{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;z-index:2;width:65px;height:65px}.spinner-container .path{stroke-dasharray:1,150;stroke-dashoffset:0;stroke:#2196f3;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite,colors 5.6s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite,colors 5.6s ease-in-out infinite}.modal{word-wrap:break-word}.modal .label.error-msg{display:block;font-size:12px;padding:5px;margin-top:10px;text-align:left}.modal .label.error-msg>span{white-space:pre-wrap}.modal .breadcrumb{margin:0 0 5px;background:#00bcd4;font-size:16px;max-height:inherit;padding:0 10px}.modal-fullscreen .modal-content,.modal-fullscreen .modal-dialog{bottom:0;left:0;position:absolute;right:0;top:0}.modal-fullscreen .modal-dialog{margin:0;width:100%}.modal-fullscreen .modal-content{border:none;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:inherit;-moz-box-shadow:inherit;-o-box-shadow:inherit;box-shadow:inherit}.modal-fullscreen textarea.code{min-height:450px}.modal img.preview{max-width:100%;max-height:640px;border-radius:3px}.modal img.preview.loading{width:100%;height:1px;opacity:0}.modal .modal-content{border-radius:10px 10px 4px 4px}.modal .modal-header{border-radius:4px 4px 0 0;background:#2196f3;padding:1.3em}.modal .modal-header .modal-title{font-size:20px;line-height:100%;color:#d4e5f5;margin:0}.modal .modal-header .close{opacity:1;color:#d4e5f5}.modal .modal-header .close.fullscreen{font-size:14px;position:relative;top:4px;margin-right:.8em}.detail-sources,.ellipsis{text-overflow:ellipsis;overflow:hidden}body{font-size:14px;height:100vh}*,:focus{outline:0!important}.navbar{min-height:32px;margin-bottom:0;border:0;border-radius:0;color:#fff}.navbar .navbar-collapse{overflow:visible;padding:0}.navbar .navbar-toggle{padding:5px 10px}.navbar .navbar-brand{font-size:inherit;height:55px;line-height:100%}.btn.btn-default{color:#444;background-color:#fafafa}.btn{box-shadow:0 2px 5px 0 rgba(0,0,0,.26);font-weight:500;letter-spacing:.01em;border:none}textarea.code{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:13px;min-height:250px;resize:vertical;color:#000}.sub-header{padding-bottom:10px;border-bottom:1px solid #eee}.sidebar{display:none;background:#fafafa;margin-top:2px;padding:0;overflow-x:hidden;overflow-y:auto;border-right:1px solid #eee}.btn-go-back{margin-top:-5px}.nav-sidebar{margin-right:-21px;margin-bottom:20px;margin-left:-20px}.nav-sidebar>li>a{color:#7a7a7a;padding:7px 0 7px 16px}.nav-sidebar>li>a:focus,.nav-sidebar>li>a:hover{background:0 0;color:#1378b9}.nav-sidebar>li.active>a{color:#2196f3}.main{padding:0}.main .page-header{margin-top:0}.file-tree ul.nav.nav-sidebar{margin:0;padding:0 0 0 12px}.file-tree ul.nav.nav-sidebar:first-child{padding-left:0}.file-tree ul.nav.nav-sidebar.file-tree-root>li{border-left:none;padding-left:0}.table td{vertical-align:middle}#context-menu{position:absolute;display:none;z-index:9999}.iconset{padding:10px}.col-120{width:100px;max-height:100px;float:left;margin-bottom:9px;margin-right:9px}.col-120:last-child{margin-right:0}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.iconset .thumbnail{border-radius:0;overflow:hidden;margin:0;padding:10px 0;border:none;background:0 0}.iconset .thumbnail.selected,.table-files .selected{background:#2196f3}.iconset .thumbnail.selected,.table-files .selected td,.table-files .selected td a{color:#fff}.iconset .thumbnail .item-icon{font-size:32px}.detail-sources{word-wrap:break-word}::-webkit-scrollbar{width:10px;height:10px;background-color:#fff;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset -1px -1px 0 rgba(0,0,0,.07)}::-webkit-scrollbar:hover{background-color:#eee}::-webkit-scrollbar-thumb{min-height:.8em;min-width:.8em;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset -1px -1px 0 rgba(0,0,0,.07)}::-webkit-scrollbar-thumb:hover{background-color:#bbb}::-webkit-scrollbar-thumb:active{background-color:#888}.dropdown-menu{font-size:14px}.dropdown-menu>li>a{padding:6px 20px}.dropdown-menu>li>a>i{margin-right:4px}.dropdown-menu.dropdown-right-click{display:block;position:static;margin-bottom:5px}.dropdown-menu.dropdown-right-click .divider{margin:3px 0}.upload-dragover .main{opacity:.4}.upload-dragover:before{content:"\e198";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100;color:#2196f3;font-size:8em;font-family:'Glyphicons Halflings'}.upload-list{margin-top:20px}.spinner-wrapper{margin:8% auto 0;text-align:center}a:active,a:focus,a:hover,table th>a:active,table th>a:focus,table th>a:hover{text-decoration:none}.sortorder:after{color:#2196f3;content:'\25bc'}.sortorder.reverse:after{color:#2196f3;content:'\25b2'}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.mr2{margin-right:2px}.mr5{margin-right:5px}.mt10{margin-top:10px}.mb0{margin-bottom:0}.pointer{cursor:pointer}.block{display:block}.ellipsis{white-space:nowrap}.bold{font-weight:700}.main{overflow-y:auto}@media (min-width:768px){.main{padding-right:0;padding-left:0}.main,.row,.sidebar,angular-filemanager>div{height:100%}.container-fluid{height:-webkit-calc(100% - 58px);height:-moz-calc(100% - 58px);height:calc(100% - 58px)}.sidebar{display:block}}.selected-file-details{padding-left:20px}.item-extension::after{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;content:attr(data-ext);left:4px;position:absolute;color:#fff;font-size:9px;text-transform:uppercase;top:21px}.selected .item-extension::after{color:#2196f3}.form-control.search-input{max-width:20em;display:inline}.like-code{display:inline}.point{margin-right:8px;font-size:10px}.navbar .btn.btn-flat{padding:2px;width:32px;height:30px;margin-left:5px}.navbar-inverse .navbar-toggle .icon-bar{background:#fff}.navbar-inverse .navbar-form input[type=text]{color:#7a7a7a;box-shadow:none;margin:0 10px}.navbar .navbar-form{border-bottom:none;border-top:none;box-shadow:none;padding:0;margin:12px 0}.breadcrumb{background:0 0;padding:0;font-size:17px;margin:12px 0;overflow:hidden;max-height:30px}.breadcrumb a,.breadcrumb>.active{color:#fff}.breadcrumb>li+li:before{font-family:'Glyphicons Halflings';content:"\e080";font-size:12px;color:#fff}.scrollable-menu{height:auto;max-height:200px;overflow-x:hidden}.btn.btn-flat{background:0 0;color:#fff}.btn-group.open>.btn-flat,.btn.btn-flat,.btn.btn-flat:active{box-shadow:none}.btn.btn-flat>i{font-size:18px;width:18px;height:18px;line-height:100%}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" standalone="no"?>
+<!--
+Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+-->
+<!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" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata>
+Created by FontForge 20190112 at Tue Jun 4 15:15:41 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+</metadata>
+<defs>
+<font id="FontAwesome5Brands-Regular" horiz-adv-x="448" >
+ <font-face
+ font-family="Font Awesome 5 Brands Regular"
+ font-weight="400"
+ font-stretch="normal"
+ units-per-em="512"
+ panose-1="2 0 5 3 0 0 0 0 0 0"
+ ascent="448"
+ descent="-64"
+ bbox="-0.200195 -66.9505 641.5 448.3"
+ underline-thickness="25"
+ underline-position="-51"
+ unicode-range="U+0020-F842"
+ />
+ <missing-glyph />
+ <glyph glyph-name="twitter-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM351.1 257.2c12.8008 9.2998 24 20.8994 32.9004 34c-11.7998 -5.10059 -24.5996 -8.7998 -37.7998 -10.2002
+c13.5996 8.09961 23.8994 20.9004 28.7998 36.0996c-12.5996 -7.5 -26.7998 -13 -41.5996 -15.7998c-12 12.7998 -29 20.7002 -47.9004 20.7002c-40 0 -73.2998 -36.0996 -64 -80.5996c-54.4004 2.7998 -102.9 28.7998 -135.2 68.5996
+c-5.7002 -9.7002 -8.89941 -20.9004 -8.89941 -33.0996v-0.107422c0 -19.3584 13.0811 -43.7715 29.1992 -54.4932c-10.6992 0.400391 -20.8994 3.40039 -29.5996 8.2998v-0.799805c0 -31.8994 22.5 -58.2998 52.5 -64.3994
+c-10.4004 -2.7002 -19.5 -2.7002 -29.5996 -1.2002c8.2998 -26 32.5 -44.9004 61.2998 -45.5c-22.5 -17.6006 -50.7002 -28 -81.4004 -28c-5.39941 0 -10.5 0.200195 -15.7998 0.799805c29 -18.5996 63.5 -29.4004 100.7 -29.4004c120.6 0 186.6 99.9004 186.6 186.601
+c0 2.7998 0 5.7002 -0.200195 8.5z" />
+ <glyph glyph-name="facebook-square" unicode=""
+d="M400 416c26.4961 0 48 -21.5039 48 -48v-352c0 -26.4961 -21.5039 -48 -48 -48h-137.25v152.31h57.7803l11 71.6904h-68.7803v46.5498c0 19.6104 9.61035 38.7305 40.4199 38.7305h31.2705v61s-28.3809 4.83984 -55.5205 4.83984
+c-56.6699 0 -93.6699 -34.3301 -93.6699 -96.4805v-54.6396h-63v-71.6904h63v-152.31h-137.25c-26.4961 0 -48 21.5039 -48 48v352c0 26.4961 21.5039 48 48 48h352z" />
+ <glyph glyph-name="linkedin" unicode=""
+d="M416 416c17.5996 0 32 -14.5 32 -32.2998v-383.4c0 -17.7998 -14.4004 -32.2998 -32 -32.2998h-384.1c-17.6006 0 -31.9004 14.5 -31.9004 32.2998v383.4c0 17.7998 14.2998 32.2998 31.9004 32.2998h384.1zM135.4 32h0.0996094v213.8h-66.5v-213.8h66.4004zM102.2 275
+c21.2998 0 38.5 17.2002 38.5 38.5c0 21.2002 -17.2998 38.5 -38.5 38.5c-21.2998 0 -38.5 -17.2998 -38.5 -38.5s17.2002 -38.5 38.5 -38.5zM384.3 32v117.2c0 57.5996 -12.5 101.899 -79.7002 101.899c-32.2998 0 -54 -17.6992 -62.8994 -34.5h-0.900391v29.2002h-63.7002
+v-213.8h66.4004v105.8c0 27.9004 5.2998 54.9004 39.9004 54.9004c34 0 34.5 -31.9004 34.5 -56.7002v-104h66.3994z" />
+ <glyph glyph-name="github-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM277.3 32.2998c66 22 110.8 84.9004 110.7 158.3c0 91.8008 -74.4004 161.5 -166.2 161.5s-162 -69.6992 -162 -161.5
+c0 -73.3994 46.2002 -136.199 112.2 -158.3c8.5 -1.5 11.5 3.7002 11.5 8c0 4.10059 -0.200195 26.7002 -0.200195 40.6006c0 0 -46.3994 -10 -56.0996 19.6992c0 0 -7.60059 19.2002 -18.4004 24.2002c0 0 -15.0996 10.4004 1.10059 10.2002
+c0 0 16.3994 -1.2998 25.5 -17.0996c14.5 -25.6006 38.7998 -18.2002 48.2998 -13.9004c1.5 10.5996 5.7998 18 10.5996 22.2998c-37 4.10059 -74.2998 9.5 -74.2998 73.1006c0 18.1992 5 27.2998 15.5996 39c-1.7998 4.39941 -7.39941 22.0996 1.7002 45
+c13.9004 4.2998 45.7002 -17.9004 45.7002 -17.9004c13.2002 3.7002 27.5 5.59961 41.5996 5.59961c14.1006 0 28.4004 -1.89941 41.6006 -5.59961c0 0 31.7998 22.2002 45.7002 17.9004c9.09961 -23 3.39941 -40.7002 1.69922 -45
+c10.6006 -11.7002 17.1006 -20.8008 17.1006 -39c0 -63.9004 -39 -69 -76 -73.1006c6.09961 -5.2002 11.2998 -15.0996 11.2998 -30.7002c0 -22.2998 -0.200195 -49.8994 -0.200195 -55.2998c0 -4.2998 3.10059 -9.5 11.5 -8zM179.2 93.4004
+c-1.90039 -0.400391 -3.7002 0.399414 -3.90039 1.69922c-0.200195 1.5 1.10059 2.80078 3 3.2002c1.90039 0.200195 3.7002 -0.599609 3.90039 -1.89941c0.299805 -1.30078 -1 -2.60059 -3 -3zM169.7 94.2998c0 1.5 -1.7998 2.60059 -3.7002 2.40039
+c-2 0 -3.5 -1.10059 -3.5 -2.40039c0 -1.5 1.5 -2.59961 3.7002 -2.39941c2 0 3.5 1.09961 3.5 2.39941zM156 95.4004c-0.400391 -1.30078 -2.40039 -1.90039 -4.09961 -1.30078c-1.90039 0.400391 -3.2002 1.90039 -2.80078 3.2002
+c0.400391 1.2998 2.40039 1.90039 4.10059 1.5c2 -0.599609 3.2998 -2.09961 2.7998 -3.39941zM143.7 100.8c0.899414 0.799805 0.399414 2.7998 -0.900391 4.10059c-1.5 1.5 -3.39941 1.69922 -4.2998 0.599609c-1 -0.900391 -0.599609 -2.7998 0.900391 -4.09961
+c1.5 -1.5 3.39941 -1.7002 4.2998 -0.600586zM134.6 109.9c1.10059 0.799805 1.10059 2.59961 0 4.09961c-0.899414 1.5 -2.59961 2.2002 -3.69922 1.2998c-1.10059 -0.700195 -1.10059 -2.39941 0 -3.89941c1.09961 -1.5 2.7998 -2.10059 3.69922 -1.5zM128.1 119.6
+c0.900391 0.700195 0.700195 2.2002 -0.399414 3.5c-1.10059 1 -2.60059 1.5 -3.5 0.600586c-0.900391 -0.700195 -0.700195 -2.2002 0.399414 -3.5c1.10059 -1 2.60059 -1.5 3.5 -0.600586zM121.4 127c0.399414 0.799805 -0.200195 1.90039 -1.5 2.59961
+c-1.30078 0.5 -2.40039 0.200195 -2.80078 -0.399414c-0.399414 -0.900391 0.200195 -2 1.5 -2.60059c1.10059 -0.699219 2.40039 -0.5 2.80078 0.400391z" />
+ <glyph glyph-name="twitter" unicode="" horiz-adv-x="512"
+d="M459.37 296.284c0.325195 -4.54785 0.325195 -9.09766 0.325195 -13.6455c0 -138.72 -105.583 -298.558 -298.559 -298.558c-59.4521 0 -114.68 17.2188 -161.137 47.1055c8.44727 -0.973633 16.5684 -1.29883 25.3398 -1.29883
+c49.0547 0 94.2129 16.5684 130.274 44.832c-46.1318 0.975586 -84.792 31.1885 -98.1123 72.7725c6.49805 -0.974609 12.9951 -1.62402 19.8184 -1.62402c9.4209 0 18.8428 1.2998 27.6133 3.57324c-48.0811 9.74707 -84.1426 51.9795 -84.1426 102.984v1.29883
+c13.9688 -7.79688 30.2139 -12.6699 47.4307 -13.3184c-28.2637 18.8428 -46.7803 51.0049 -46.7803 87.3906c0 19.4922 5.19629 37.3604 14.2939 52.9541c51.6543 -63.6748 129.3 -105.258 216.364 -109.807c-1.62402 7.79688 -2.59863 15.918 -2.59863 24.04
+c0 57.8271 46.7822 104.934 104.934 104.934c30.2139 0 57.502 -12.6699 76.6709 -33.1367c23.7148 4.54785 46.4551 13.3193 66.5986 25.3398c-7.79785 -24.3662 -24.3662 -44.833 -46.1318 -57.8271c21.1172 2.27344 41.584 8.12207 60.4258 16.2432
+c-14.292 -20.791 -32.1611 -39.3086 -52.6279 -54.2529z" />
+ <glyph glyph-name="facebook" unicode="" horiz-adv-x="512"
+d="M504 192c0 -123.78 -90.6904 -226.38 -209.25 -245v173.31h57.7803l11 71.6904h-68.7803v46.5498c0 19.6104 9.61035 38.7305 40.4102 38.7305h31.2803v61s-28.3809 4.83984 -55.5205 4.83984c-56.6699 0 -93.6699 -34.3301 -93.6699 -96.4805v-54.6396h-63v-71.6904h63
+v-173.31c-118.56 18.6201 -209.25 121.22 -209.25 245c0 137 111 248 248 248s248 -111 248 -248z" />
+ <glyph glyph-name="github" unicode="" horiz-adv-x="496"
+d="M165.9 50.5996c0 -2 -2.30078 -3.59961 -5.2002 -3.59961c-3.2998 -0.299805 -5.60059 1.2998 -5.60059 3.59961c0 2 2.30078 3.60059 5.2002 3.60059c3 0.299805 5.60059 -1.2998 5.60059 -3.60059zM134.8 55.0996c0.700195 2 3.60059 3 6.2002 2.30078
+c3 -0.900391 4.90039 -3.2002 4.2998 -5.2002c-0.599609 -2 -3.59961 -3 -6.2002 -2c-3 0.599609 -5 2.89941 -4.2998 4.89941zM179 56.7998c2.90039 0.299805 5.59961 -1 5.90039 -2.89941c0.299805 -2 -1.7002 -3.90039 -4.60059 -4.60059
+c-3 -0.700195 -5.59961 0.600586 -5.89941 2.60059c-0.300781 2.2998 1.69922 4.19922 4.59961 4.89941zM244.8 440c138.7 0 251.2 -105.3 251.2 -244c0 -110.9 -67.7998 -205.8 -167.8 -239c-12.7002 -2.2998 -17.2998 5.59961 -17.2998 12.0996
+c0 8.2002 0.299805 49.9004 0.299805 83.6006c0 23.5 -7.7998 38.5 -17 46.3994c55.8994 6.30078 114.8 14 114.8 110.5c0 27.4004 -9.7998 41.2002 -25.7998 58.9004c2.59961 6.5 11.0996 33.2002 -2.60059 67.9004c-20.8994 6.59961 -69 -27 -69 -27
+c-20 5.59961 -41.5 8.5 -62.7998 8.5s-42.7998 -2.90039 -62.7998 -8.5c0 0 -48.0996 33.5 -69 27c-13.7002 -34.6006 -5.2002 -61.4004 -2.59961 -67.9004c-16 -17.5996 -23.6006 -31.4004 -23.6006 -58.9004c0 -96.1992 56.4004 -104.3 112.3 -110.5
+c-7.19922 -6.59961 -13.6992 -17.6992 -16 -33.6992c-14.2998 -6.60059 -51 -17.7002 -72.8994 20.8994c-13.7002 23.7998 -38.6006 25.7998 -38.6006 25.7998c-24.5 0.300781 -1.59961 -15.3994 -1.59961 -15.3994c16.4004 -7.5 27.7998 -36.6006 27.7998 -36.6006
+c14.7002 -44.7998 84.7002 -29.7998 84.7002 -29.7998c0 -21 0.299805 -55.2002 0.299805 -61.3994c0 -6.5 -4.5 -14.4004 -17.2998 -12.1006c-99.7002 33.4004 -169.5 128.3 -169.5 239.2c0 138.7 106.1 244 244.8 244zM97.2002 95.0996
+c1.2998 1.30078 3.59961 0.600586 5.2002 -1c1.69922 -1.89941 2 -4.19922 0.699219 -5.19922c-1.2998 -1.30078 -3.59961 -0.600586 -5.19922 1c-1.7002 1.89941 -2 4.19922 -0.700195 5.19922zM86.4004 103.2c0.699219 1 2.2998 1.2998 4.2998 0.700195
+c2 -1 3 -2.60059 2.2998 -3.90039c-0.700195 -1.40039 -2.7002 -1.7002 -4.2998 -0.700195c-2 1 -3 2.60059 -2.2998 3.90039zM118.8 67.5996c1.2998 1.60059 4.2998 1.30078 6.5 -1c2 -1.89941 2.60059 -4.89941 1.2998 -6.19922
+c-1.2998 -1.60059 -4.19922 -1.30078 -6.5 1c-2.2998 1.89941 -2.89941 4.89941 -1.2998 6.19922zM107.4 82.2998c1.59961 1.2998 4.19922 0.299805 5.59961 -2c1.59961 -2.2998 1.59961 -4.89941 0 -6.2002c-1.2998 -1 -4 0 -5.59961 2.30078
+c-1.60059 2.2998 -1.60059 4.89941 0 5.89941z" />
+ <glyph glyph-name="pinterest" unicode="" horiz-adv-x="496"
+d="M496 192c0 -137 -111 -248 -248 -248c-25.5996 0 -50.2002 3.90039 -73.4004 11.0996c10.1006 16.5 25.2002 43.5 30.8008 65c3 11.6006 15.3994 59 15.3994 59c8.10059 -15.3994 31.7002 -28.5 56.7998 -28.5c74.8008 0 128.7 68.8008 128.7 154.301
+c0 81.8994 -66.8994 143.199 -152.899 143.199c-107 0 -163.9 -71.7998 -163.9 -150.1c0 -36.4004 19.4004 -81.7002 50.2998 -96.0996c4.7002 -2.2002 7.2002 -1.2002 8.2998 3.2998c0.800781 3.39941 5 20.2998 6.90039 28.0996
+c0.599609 2.5 0.299805 4.7002 -1.7002 7.10059c-10.0996 12.5 -18.2998 35.2998 -18.2998 56.5996c0 54.7002 41.4004 107.6 112 107.6c60.9004 0 103.6 -41.5 103.6 -100.899c0 -67.1006 -33.8994 -113.601 -78 -113.601c-24.2998 0 -42.5996 20.1006 -36.6992 44.8008
+c7 29.5 20.5 61.2998 20.5 82.5996c0 19 -10.2002 34.9004 -31.4004 34.9004c-24.9004 0 -44.9004 -25.7002 -44.9004 -60.2002c0 -22 7.40039 -36.7998 7.40039 -36.7998s-24.5 -103.801 -29 -123.2c-5 -21.4004 -3 -51.6006 -0.900391 -71.2002
+c-92.1992 36.0996 -157.6 125.9 -157.6 231c0 137 111 248 248 248s248 -111 248 -248z" />
+ <glyph glyph-name="pinterest-square" unicode=""
+d="M448 368v-352c0 -26.5 -21.5 -48 -48 -48h-245.6c9.7998 16.4004 22.3994 40 27.3994 59.2998c3 11.5 15.2998 58.4004 15.2998 58.4004c8 -15.2998 31.4004 -28.2002 56.3008 -28.2002c74.0996 0 127.399 68.0996 127.399 152.7
+c0 81.0996 -66.2002 141.8 -151.399 141.8c-106 0 -162.2 -71.0996 -162.2 -148.6c0 -36 19.2002 -80.8008 49.7998 -95.1006c4.7002 -2.2002 7.09961 -1.2002 8.2002 3.2998c0.799805 3.40039 5 20.1006 6.7998 27.8008c0.599609 2.5 0.299805 4.59961 -1.7002 7
+c-10.0996 12.2998 -18.2998 34.8994 -18.2998 56c0 54.1992 41 106.6 110.9 106.6c60.2998 0 102.6 -41.0996 102.6 -99.9004c0 -66.3994 -33.5 -112.399 -77.2002 -112.399c-24.0996 0 -42.0996 19.8994 -36.3994 44.3994c6.89941 29.2002 20.2998 60.7002 20.2998 81.8008
+c0 53 -75.5 45.6992 -75.5 -25c0 -21.7002 7.2998 -36.5 7.2998 -36.5c-31.4004 -132.801 -36.0996 -134.5 -29.5996 -192.601l2.19922 -0.799805h-88.5996c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48z" />
+ <glyph glyph-name="google-plus-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM164 92c57.7002 0 96 40.5 96 97.5996c0 6.5 -0.599609 11.6006 -1.59961 16.6006h-94.4004v-34.4004h56.9004
+c-2.40039 -14.5996 -17.2002 -43.0996 -56.8008 -43.0996c-34.0996 0 -61.8994 28.2998 -61.8994 63.2002c0 35 27.7998 63.1992 61.8994 63.1992c19.5 0 32.4004 -8.2998 39.8008 -15.3994l27.0996 26.0996c-17.5 16.4004 -40 26.2002 -67 26.2002
+c-55.2998 0 -100 -44.7002 -100 -100s44.7002 -100 100 -100zM384 173.8v29.2002h-29v29h-29.2002v-29h-29v-29.2002h29v-29h29.2002v29h29z" />
+ <glyph glyph-name="google-plus-g" unicode="" horiz-adv-x="640"
+d="M386.061 219.504c1.83398 -9.69238 3.14355 -19.3838 3.14355 -31.9561c0 -109.753 -73.6055 -187.548 -184.404 -187.548c-106.084 0 -192 85.915 -192 192s85.916 192 192 192c51.8643 0 95.083 -18.8594 128.611 -50.292l-52.126 -50.0303
+c-14.1455 13.6211 -39.0283 29.5996 -76.4854 29.5996c-65.4834 0 -118.92 -54.2217 -118.92 -121.277s53.4365 -121.277 118.92 -121.277c75.9609 0 104.514 54.7451 108.965 82.7734h-108.965v66.0088h181.261v-0.000976562zM571.467 213.067h55.7334v-56.001h-55.7334
+v-55.7334h-56.001v55.7334h-55.7324v56.001h55.7324v55.7324h56.001v-55.7324z" />
+ <glyph glyph-name="linkedin-in" unicode=""
+d="M100.28 0h-92.8799v299.1h92.8799v-299.1zM53.79 339.9c-29.7002 0 -53.79 24.5996 -53.79 54.2998c0 29.6914 24.0977 53.79 53.79 53.79s53.79 -24.0986 53.79 -53.79c0 -29.7002 -24.0996 -54.2998 -53.79 -54.2998zM447.9 0h-92.6807v145.6
+c0 34.7002 -0.700195 79.2002 -48.29 79.2002c-48.29 0 -55.6895 -37.7002 -55.6895 -76.7002v-148.1h-92.7803v299.1h89.0801v-40.7998h1.2998c12.4004 23.5 42.6904 48.2998 87.8799 48.2998c94 0 111.28 -61.8994 111.28 -142.3v-164.3h-0.0996094z" />
+ <glyph glyph-name="github-alt" unicode="" horiz-adv-x="480"
+d="M186.1 119.3c0 -20.8994 -10.8994 -55.0996 -36.6992 -55.0996c-25.8008 0 -36.7002 34.2002 -36.7002 55.0996c0 20.9004 10.8994 55.1006 36.7002 55.1006c25.7998 0 36.6992 -34.2002 36.6992 -55.1006zM480 169.8c0 -31.8994 -3.2002 -65.7002 -17.5 -95
+c-37.9004 -76.5996 -142.1 -74.7998 -216.7 -74.7998c-75.7998 0 -186.2 -2.7002 -225.6 74.7998c-14.6006 29 -20.2002 63.1006 -20.2002 95c0 41.9004 13.9004 81.5 41.5 113.601c-5.2002 15.7998 -7.7002 32.3994 -7.7002 48.7998
+c0 21.5 4.90039 32.2998 14.6006 51.7998c45.2998 0 74.2998 -9 108.8 -36c29 6.90039 58.7998 10 88.7002 10c27 0 54.1992 -2.90039 80.3994 -9.2002c34 26.7002 63 35.2002 107.8 35.2002c9.80078 -19.5 14.6006 -30.2998 14.6006 -51.7998
+c0 -16.4004 -2.60059 -32.7002 -7.7002 -48.2002c27.5 -32.4004 39 -72.2998 39 -114.2zM415.7 119.3c0 43.9004 -26.7002 82.6006 -73.5 82.6006c-18.9004 0 -37 -3.40039 -56 -6c-14.9004 -2.30078 -29.7998 -3.2002 -45.1006 -3.2002
+c-15.1992 0 -30.0996 0.899414 -45.0996 3.2002c-18.7002 2.59961 -37 6 -56 6c-46.7998 0 -73.5 -38.7002 -73.5 -82.6006c0 -87.7998 80.4004 -101.3 150.4 -101.3h48.1992c70.3008 0 150.601 13.4004 150.601 101.3zM333.1 174.4
+c25.8008 0 36.7002 -34.2002 36.7002 -55.1006c0 -20.8994 -10.8994 -55.0996 -36.7002 -55.0996c-25.7998 0 -36.6992 34.2002 -36.6992 55.0996c0 20.9004 10.8994 55.1006 36.6992 55.1006z" />
+ <glyph glyph-name="maxcdn" unicode="" horiz-adv-x="512"
+d="M461.1 5.2998h-97.3994l51.8994 242.7c2.30078 10.2002 0.900391 19.5 -4.39941 25.7002c-5 6.09961 -13.7002 9.59961 -24.2002 9.59961h-49.2998l-59.5 -278h-97.4004l59.5 278h-83.3994l-59.5 -278h-97.4004l59.5 278l-44.5996 95.4004h372.1
+c39.4004 0 75.2998 -16.2998 98.2998 -44.9004c23.2998 -28.5996 31.7998 -67.3994 23.6006 -105.899z" />
+ <glyph glyph-name="html5" unicode="" horiz-adv-x="384"
+d="M0 416h384l-34.9004 -395.8l-157.6 -52.2002l-156.6 52.2002zM308.2 288.1l4.39941 47.7002h-241.1l12.7998 -145.6h166.9l-6 -62.2002l-53.7002 -14.5l-53.5 14.5l-3.5 38.0996h-47.7002l6 -75.7998l98.7002 -27.2998h1.09961v0.299805l97.9004 27l13.5996 148.4h-175.6
+l-4.09961 49.3994h183.8z" />
+ <glyph glyph-name="css3" unicode="" horiz-adv-x="512"
+d="M480 416l-64 -368l-223.3 -80l-192.7 80l19.5996 94.7998h82l-8 -40.5996l116.4 -44.4004l134.1 44.4004l18.8008 97.0996h-333.4l16 82h333.7l10.5 52.7002h-333.4l16.2998 82h407.4z" />
+ <glyph glyph-name="btc" unicode="" horiz-adv-x="384"
+d="M310.204 205.362c46.0059 -11.0283 74.9971 -38.4443 69.3262 -99.8906c-7.24805 -76.5723 -61.5967 -97.0547 -142.896 -101.467v-68.0049h-48.5273v66.7451c-12.29 0 -25.21 0 -38.4443 0.314453v-67.0596h-48.5283v68.0049s-8.88867 0.31543 -97.3701 0.31543
+l9.76758 57.666c34.7305 -0.614258 50.3301 -3.4209 53.2549 16.0703v217.43c-4.60645 24.5664 -24.709 22.1045 -63.0234 21.4268v51.6777c58.748 -0.275391 79.5283 -0.539062 97.3701 0v79.4092h48.5283v-77.833c12.9189 0.31543 25.8389 0.629883 38.4443 0.629883
+v77.2031h48.5273v-79.4092c62.3926 -5.35547 109.492 -24.5781 114.851 -81.9287c4.09668 -41.9102 -13.5508 -67.1201 -41.2803 -81.2998zM150.608 313.447v-96.7402c27.416 0 113.126 -6.30273 113.126 48.2119c0 57.0352 -85.7109 48.5283 -113.126 48.5283z
+M150.608 61.6709c32.7715 0 133.126 -6.93262 133.127 53.2529c0 62.3936 -100.355 53.2549 -133.127 53.2549v-106.508z" />
+ <glyph glyph-name="youtube" unicode="" horiz-adv-x="576"
+d="M549.655 323.917c11.4121 -42.8672 11.4121 -132.305 11.4121 -132.305s0 -89.4385 -11.4121 -132.306c-6.28125 -23.6494 -24.7871 -41.5 -48.2842 -47.8203c-42.5908 -11.4863 -213.371 -11.4863 -213.371 -11.4863s-170.78 0 -213.371 11.4863
+c-23.4971 6.32031 -42.0029 24.1709 -48.2842 47.8203c-11.4121 42.8672 -11.4121 132.306 -11.4121 132.306s0 89.4375 11.4121 132.305c6.28125 23.6504 24.7871 42.2754 48.2842 48.5967c42.5908 11.4863 213.371 11.4863 213.371 11.4863s170.781 0 213.371 -11.4863
+c23.4971 -6.32031 42.0029 -24.9463 48.2842 -48.5967zM232.145 110.409l142.739 81.2012l-142.739 81.2051v-162.406z" />
+ <glyph glyph-name="xing" unicode="" horiz-adv-x="384"
+d="M162.7 238c-1.7998 -3.2998 -25.2002 -44.4004 -70.1006 -123.5c-4.89941 -8.2998 -10.7998 -12.5 -17.6992 -12.5h-65.1006c-7.7002 0 -12.0996 7.5 -8.5 14.4004l69 121.3c0.200195 0 0.200195 0.0996094 0 0.299805l-43.8994 75.5996
+c-4.30078 7.80078 0.299805 14.1006 8.5 14.1006h65.0996c7.2998 0 13.2998 -4.10059 18 -12.2002zM382.6 401.9l-144 -253v-0.300781l91.6006 -166.6c3.89941 -7.09961 0.200195 -14.0996 -8.5 -14.0996h-65.2002c-7.59961 0 -13.5996 4 -18 12.1992l-92.4004 168.5
+c3.30078 5.80078 51.5 90.8008 144.801 255.2c4.59961 8.10059 10.3994 12.2002 17.5 12.2002h65.6992c8 0 12.3008 -6.7002 8.5 -14.0996z" />
+ <glyph glyph-name="xing-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM140.4 127.8c4.89941 0 9.09961 2.90039 12.5996 9.10059c32.0996 56.5 48.7998 85.8994 50.0996 88.1992l-31.8994 55.3008
+c-3.40039 5.7998 -7.7002 8.69922 -12.9004 8.69922h-46.5996c-5.7998 0 -9 -4.5 -6 -10.0996l31.3994 -54c0.100586 -0.0996094 0.100586 -0.200195 0 -0.200195l-49.2998 -86.7002c-2.7002 -5 0.5 -10.2998 6 -10.2998h46.6006zM360.1 341.9
+c2.80078 5.2998 -0.299805 10.0996 -6 10h-46.8994c-5.10059 0 -9.2002 -2.90039 -12.5 -8.7002c-66.6006 -117.4 -101.101 -178.2 -103.4 -182.3l66 -120.301c3.2002 -5.7998 7.40039 -8.69922 12.9004 -8.69922h46.5996c6.10059 0 8.7998 5 6 10.0996l-65.5 119v0.200195z
+" />
+ <glyph glyph-name="dropbox" unicode="" horiz-adv-x="528"
+d="M264.4 331.7l-132 -84.2998l132 -84.3008l-132 -84.2998l-132.4 85.1006l132.3 84.2998l-132.3 83.5l132.3 84.2998zM131.6 52.2998l132 84.2998l132 -84.2998l-132 -84.2998zM264.4 163.9l132 84.2998l-132 83.5996l131.3 84.2002l132.3 -84.2998l-132.3 -84.2998
+l132.3 -84.2002l-132.3 -84.2998z" />
+ <glyph glyph-name="stack-overflow" unicode="" horiz-adv-x="384"
+d="M290.7 137l-8.2002 -39l-195.7 41l8.2002 39.2998zM341.7 224l-25.5 -30.7998l-153.5 128.3l25.5 30.7998zM310.5 184.3l-16.7998 -36.2998l-181.2 84.5l16.7002 36.5zM262 416l119.3 -160.3l-32 -24l-119.3 160.3zM282.5 88v-39.7002h-200v39.7002h200zM322.2 8v120h40
+v-160h-359.5v160h40v-120h279.5z" />
+ <glyph glyph-name="instagram" unicode=""
+d="M224.1 307c63.6006 0 114.9 -51.2998 114.9 -114.9c0 -63.5996 -51.2998 -114.899 -114.9 -114.899c-63.5996 0 -114.899 51.2998 -114.899 114.899c0 63.6006 51.2998 114.9 114.899 114.9zM224.1 117.4c41.1006 0 74.7002 33.5 74.7002 74.6992
+c0 41.2002 -33.5 74.7002 -74.7002 74.7002c-41.1992 0 -74.6992 -33.5 -74.6992 -74.7002c0 -41.1992 33.5996 -74.6992 74.6992 -74.6992zM370.5 311.7c0 -14.9004 -12 -26.7998 -26.7998 -26.7998c-14.9004 0 -26.7998 12 -26.7998 26.7998s12 26.7998 26.7998 26.7998
+s26.7998 -12 26.7998 -26.7998zM446.6 284.5c2.10059 -37 2.10059 -147.8 0 -184.8c-1.7998 -35.9004 -10 -67.7002 -36.1992 -93.9004c-26.2002 -26.2998 -58 -34.5 -93.9004 -36.2002c-37 -2.09961 -147.9 -2.09961 -184.9 0
+c-35.8994 1.80078 -67.5996 10 -93.8994 36.2002s-34.5 58 -36.2002 93.9004c-2.09961 37 -2.09961 147.899 0 184.899c1.7998 35.9004 9.90039 67.7002 36.2002 93.9004s58.0996 34.4004 93.8994 36.0996c37 2.10059 147.9 2.10059 184.9 0
+c35.9004 -1.7998 67.7002 -10 93.9004 -36.1992c26.2998 -26.2002 34.5 -58 36.1992 -93.9004zM398.8 60c11.7002 29.4004 9 99.5 9 132.1c0 32.6006 2.7002 102.601 -9 132.101c-7.89941 19.7002 -23 34.7998 -42.5996 42.5996c-29.4004 11.6006 -99.5 9 -132.101 9
+c-32.5996 0 -102.6 2.7002 -132.1 -9c-19.7002 -7.89941 -34.7998 -23 -42.5996 -42.5996c-11.6006 -29.4004 -9 -99.5 -9 -132.101c0 -32.5996 -2.7002 -102.6 9 -132.1c7.89941 -19.7002 23 -34.7998 42.5996 -42.5996c29.4004 -11.6006 99.5 -9 132.1 -9
+c32.6006 0 102.601 -2.7002 132.101 9c19.7002 7.89941 34.7998 23 42.5996 42.5996z" />
+ <glyph glyph-name="flickr" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM144.5 129c35.0996 0 63.5 28.4004 63.5 63.5s-28.4004 63.5 -63.5 63.5s-63.5 -28.4004 -63.5 -63.5s28.4004 -63.5 63.5 -63.5z
+M303.5 129c35.0996 0 63.5 28.4004 63.5 63.5s-28.4004 63.5 -63.5 63.5s-63.5 -28.4004 -63.5 -63.5s28.4004 -63.5 63.5 -63.5z" />
+ <glyph glyph-name="adn" unicode="" horiz-adv-x="496"
+d="M248 280.5l64.9004 -98.7998h-129.801zM496 192c0 -136.9 -111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248s248 -111.1 248 -248zM396.2 109.3l-148.2 223.2l-148.2 -223.2h30.4004l33.5996 51.7002h168.601l33.5996 -51.7002h30.2002z" />
+ <glyph glyph-name="bitbucket" unicode="" horiz-adv-x="512"
+d="M22.2002 416l466.8 -0.200195c0.776367 -0.0107422 2.03027 -0.100586 2.7998 -0.200195c7.39648 -1.21875 13.3984 -8.29102 13.3984 -15.7871c0 -0.697266 -0.0888672 -1.82324 -0.198242 -2.5127l-67.9004 -416.8
+c-1.2168 -7.39746 -8.29004 -13.4014 -15.7871 -13.4014c-0.0585938 0 -0.154297 0.000976562 -0.212891 0.000976562h-325.699c-10.1016 0.0820312 -19.6445 8.23535 -21.3008 18.2002l-67.8994 412.101c-0.0966797 0.769531 -0.186523 2.02344 -0.200195 2.7998
+c0.108398 8.72168 7.27539 15.8008 15.999 15.8008c0.0556641 0 0.145508 0 0.201172 -0.000976562zM308.1 118.2l25.2002 147h-157.3l28.0996 -147h104z" />
+ <glyph glyph-name="tumblr" unicode="" horiz-adv-x="320"
+d="M309.8 -32.2998c-13.5996 -14.5 -50 -31.7002 -97.3994 -31.7002c-120.801 0 -147 88.7998 -147 140.6v144h-47.5c-5.5 0 -10 4.5 -10 10v68c0 7.2002 4.5 13.6006 11.2998 16c62 21.8008 81.5 76 84.2998 117.101c0.799805 11 6.5 16.2998 16.0996 16.2998h70.9004
+c5.5 0 10 -4.5 10 -10v-115.2h83c5.5 0 10 -4.39941 10 -9.89941v-81.7002c0 -5.5 -4.5 -10 -10 -10h-83.4004v-133.2c0 -34.2002 23.7002 -53.5996 68 -35.7998c4.80078 1.89941 9 3.2002 12.7002 2.2002c3.5 -0.900391 5.7998 -3.40039 7.40039 -7.90039l22 -64.2998
+c1.7998 -5 3.2998 -10.6006 -0.400391 -14.5z" />
+ <glyph glyph-name="tumblr-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM317.7 51.7998c2.2998 2.40039 1.2998 5.90039 0.299805 9.10059l-13.7998 40.1992c-1 2.80078 -2.40039 4.40039 -4.60059 4.90039
+c-2.39941 0.599609 -5 -0.200195 -8 -1.40039c-27.6992 -11.0996 -42.5 1 -42.5 22.4004v83.2998h52.1006c3.39941 0 6.2002 2.7998 6.2002 6.2002v51.0996c0 3.40039 -2.80078 6.2002 -6.2002 6.2002h-51.9004v72c0 3.40039 -2.7998 6.2002 -6.2002 6.2002h-44.2998
+c-5.89941 0 -9.5 -3.2998 -10 -10.2002c-1.7998 -25.7002 -13.8994 -59.5 -52.7002 -73.2002c-4.2998 -1.5 -7.09961 -5.5 -7.09961 -10v-42.5c0 -3.39941 2.7998 -6.19922 6.2002 -6.19922h29.7002v-90c0 -32.4004 16.3994 -87.9004 91.8994 -87.9004
+c29.7002 0 52.4004 10.7002 60.9004 19.7998z" />
+ <glyph glyph-name="apple" unicode="" horiz-adv-x="384"
+d="M318.7 179.3c0 -1.89941 -3.5 -61.2002 61.7002 -91.8994c-12.2002 -36.8008 -54 -118.601 -102.601 -119.301c-28.0996 0 -44.5996 17.9004 -76.3994 17.9004c-32.8008 0 -50.6006 -17.2998 -75.8008 -17.9004c-48.1992 -1.5 -94.3994 88.5 -107.199 125.2
+c-9.60059 27.9336 -14.4004 55 -14.4004 81.2002c0 88.7002 59.2998 132.3 115.1 133.2c27 0 61.4004 -19.7002 76.4004 -19.7002c14.2002 0 53 23.5 88.5 20.7002c37.5 -2.90039 65.9004 -17.7002 84.7002 -44.6006c-33.6006 -20.3994 -50.2002 -48.0996 -50 -84.7998z
+M262.1 343.5c-19.5996 -22.9004 -43.3994 -36.2998 -69.5 -34.2998c-2.19922 27.5996 8.10059 52.0996 25.6006 71.8994c15.8994 18.5 43.7998 33.5 67.8994 34.9004c0.800781 -10.5996 3.30078 -40.0996 -24 -72.5z" />
+ <glyph glyph-name="windows" unicode=""
+d="M0 354.3l183.6 25.2998v-177.399h-183.6v152.1zM0 29.7002v149.899h183.6v-175.199zM203.8 1.7002v177.899h244.2v-211.6zM203.8 382.3l244.2 33.7002v-213.8h-244.2v180.1z" />
+ <glyph glyph-name="android" unicode=""
+d="M89.5996 243.5v-115.8c0 -15.4004 -12.0996 -27.7002 -27.5 -27.7002c-15.2998 0 -30.0996 12.4004 -30.0996 27.7002v115.8c0 15.0996 14.7998 27.5 30.0996 27.5c15.1006 0 27.5 -12.4004 27.5 -27.5zM100.4 86.5v179.4h247.3v-179.4
+c0 -16.4004 -13.2002 -29.5996 -29.4004 -29.5996h-20.2002v-61.1006c0 -36.7998 -55.5 -36.7002 -55.5 0v61.1006h-37.1992v-61.1006c0 -36.5996 -55.2002 -36.8994 -55.2002 0l-0.299805 61.1006h-19.9004c-16.4004 0 -29.5996 13.1992 -29.5996 29.5996zM348.4 275.6
+h-249.101c0 42.8008 25.6006 80 63.6006 99.4004l-19.1006 35.2998c-2.7998 4.90039 4.2998 8 6.7002 3.7998l19.4004 -35.5996c34.8994 15.5 75 14.7002 108.3 0l19.2998 35.5c2.5 4.2998 9.5 1.09961 6.7002 -3.7998l-19.1006 -35.2002
+c37.7002 -19.4004 63.3008 -56.5996 63.3008 -99.4004zM177.7 331.1c0 5.7002 -4.60059 10.5 -10.5 10.5c-5.7002 0 -10.2002 -4.7998 -10.2002 -10.5c0 -5.69922 4.59961 -10.5 10.2002 -10.5c5.89941 0 10.5 4.80078 10.5 10.5zM291.1 331.1
+c0 5.7002 -4.59961 10.5 -10.1992 10.5c-5.90039 0 -10.5 -4.7998 -10.5 -10.5c0 -5.69922 4.59961 -10.5 10.5 -10.5c5.59961 0 10.1992 4.80078 10.1992 10.5zM385.9 271c15.2998 0 30.0996 -12.0996 30.0996 -27.5v-115.8
+c0 -15.2998 -14.7002 -27.7002 -30.0996 -27.7002c-15.1006 0 -27.5 12.2998 -27.5 27.7002v115.8c0 15.4004 12.3994 27.5 27.5 27.5z" />
+ <glyph glyph-name="linux" unicode=""
+d="M220.8 324.7c-1.09961 0.599609 -3.09961 0.399414 -3.39941 1.7002c-0.200195 0.399414 0.199219 0.899414 0.599609 1.09961c1.59961 0.900391 3.7998 0.599609 5.5 -0.0996094c1.2998 -0.600586 3.40039 -1.5 3.2002 -2.90039
+c-0.100586 -1.09961 -1.7998 -1.5 -2.90039 -1.5c-1.2002 0 -2 1.2002 -3 1.7002zM198.9 323c-1 -0.0996094 -2.7002 0.400391 -2.80078 1.40039c-0.199219 1.39941 1.90039 2.2998 3.2002 2.89941c1.7002 0.700195 3.90039 1 5.5 0.100586
+c0.400391 -0.200195 0.799805 -0.700195 0.600586 -1.10059c-0.400391 -1.2002 -2.40039 -1 -3.5 -1.59961c-1 -0.5 -1.80078 -1.7002 -3 -1.7002zM420 44.2002c11.0996 -12.4004 15.9004 -21.5 15.5 -29.7002c-0.5 -8.2002 -6.5 -13.7998 -13.9004 -18.2998
+c-14.8994 -9 -37.2998 -15.7998 -50.8994 -32.2002c-14.2002 -16.9004 -31.7002 -26.5996 -48.2998 -27.9004c-16.5 -1.2998 -32 6.30078 -40.3008 23v0.100586c-1.09961 2.09961 -1.89941 4.39941 -2.5 6.7002c-21.5 -1.2002 -40.1992 5.2998 -55.0996 4.09961
+c-22 -1.2002 -35.7998 -6.5 -48.2998 -6.59961c-4.7998 -10.6006 -14.2998 -17.6006 -25.9004 -20.2002c-16 -3.7002 -36.0996 0 -55.8994 10.3994c-18.5 9.80078 -42 8.90039 -59.3008 12.5c-8.69922 1.80078 -16.2998 5 -20.0996 12.3008
+c-3.7002 7.2998 -3 17.2998 2.2002 31.6992c1.7002 5.10059 0.399414 12.7002 -0.799805 20.8008c-0.600586 3.89941 -1.2002 7.89941 -1.2002 11.7998c0 4.2998 0.700195 8.5 2.7998 12.3994c4.5 8.5 11.7998 12.1006 18.5 14.5c6.7002 2.40039 12.7998 4 17 8.30078
+c5.2002 5.5 10.0996 14.3994 16.5996 20.1992c-2.59961 17.2002 0.200195 35.4004 6.2002 53.3008c12.6006 37.8994 39.2002 74.1992 58.1006 96.6992c16.0996 22.9004 20.7998 41.3008 22.5 64.7002c1.09961 31.7998 -24.5 135.4 77.8994 135.2
+c80.9004 -0.0996094 76.2998 -85.4004 75.7998 -131.3c-0.299805 -30.1006 16.3008 -50.5 33.4004 -72c15.2002 -18 35.0996 -44.2998 46.5 -74.4004c9.2998 -24.5996 12.9004 -51.7998 3.7002 -79.0996c1.39941 -0.5 2.7998 -1.2002 4.09961 -2
+c1.40039 -0.799805 2.7002 -1.7998 4 -2.90039c6.60059 -5.59961 8.7002 -14.2998 10.5 -22.3994c1.90039 -8.10059 3.60059 -15.7002 7.2002 -19.7002zM223.7 360.7c-3.2002 -7.2002 -3.90039 -14.9004 -2.90039 -21.7998c3.60059 -0.900391 8.90039 -2.40039 13 -4.40039
+c-2.09961 12.2002 4.5 23.5 11.7998 23c8.90039 -0.299805 13.9004 -15.5 9.10059 -27.2998c-0.799805 -1.90039 -2.7998 -3.40039 -3.90039 -4.60059c6.7002 -2.2998 11 -4.09961 12.6006 -4.89941c7.89941 9.5 10.7998 26.2002 4.2998 40.3994
+c-9.7998 21.4004 -34.2002 21.8008 -44 -0.399414zM183 372.2c-18.9004 0 -24 -37.5 -8.40039 -52.1006c7.80078 5.7002 6.90039 4.7002 5.90039 5.5c-8 6.90039 -6.59961 27.4004 1.7998 28.1006c6.2998 0.5 10.7998 -10.7002 9.60059 -19.6006
+c3.09961 2.10059 6.69922 3.60059 10.1992 4.60059c1.7002 19.2998 -9 33.5 -19.0996 33.5zM169.4 311.5c-4.2002 -3.2998 -5.60059 -7.40039 -4.2002 -12.2998c1.5 -4.90039 6.09961 -10.5 14.7002 -15.2998c7.7998 -4.60059 12 -11.5 20 -15
+c2.59961 -1.10059 5.69922 -1.90039 9.59961 -2.10059c18.4004 -1.09961 27.0996 11.2998 38.2002 14.9004c11.7002 3.7002 20.0996 11 22.7002 18.0996c3.19922 8.5 -2.10059 14.7002 -10.5 18.2002c-11.3008 4.90039 -16.3008 5.2002 -22.6006 9.2998
+c-10.2998 6.60059 -18.7998 8.90039 -25.8994 8.90039c-14.4004 0 -23.2002 -9.7998 -27.9004 -14.2002c-0.5 -0.5 -7.90039 -5.90039 -14.0996 -10.5zM172.7 -22.5c2.09961 20.5 -31.5 49 -41 68.9004l-19.6006 35.5996c-6.7998 9.2002 -13.7998 14.7998 -21.8994 16
+c-7.7002 1.2002 -12.6006 -1.40039 -17.7002 -6.90039c-4.7998 -5.09961 -8.7998 -12.2998 -14.2998 -18c-7.7998 -6.5 -9.2998 -6.19922 -19.6006 -9.89941c-6.2998 -2.2002 -11.2998 -4.60059 -14.7998 -11.2998c-2.7002 -5 -2.09961 -12.2002 -0.899414 -20
+c1.19922 -7.90039 3 -16.3008 0.599609 -23.9004v-0.200195c-5 -13.7002 -5 -21.7002 -2.59961 -26.3994c7.89941 -15.4004 46.5996 -6.10059 76.5 -21.9004c31.3994 -16.4004 72.5996 -17.0996 75.2998 18zM171.3 3.40039c37.6006 -25.7002 82.2002 -15.7002 114.3 7.19922
+c3.2002 11 6.30078 21.3008 6.80078 29c0.799805 15.2002 1.59961 28.7002 4.39941 39.9004c3.10059 12.5996 9.2998 23.0996 21.4004 27.2998c2.2998 21.1006 18.7002 21.1006 38.2998 12.5c18.9004 -8.5 26 -16 22.7998 -26.0996c1 0 2 0.0996094 4.2002 0
+c5.2002 16.8994 -14.2998 28 -30.7002 34.7998c2.90039 12 2.40039 24.0996 -0.399414 35.7002c-6 25.2998 -22.6006 47.7998 -35.2002 59c-2.2998 0.0996094 -2.10059 -1.90039 2.59961 -6.5c11.6006 -10.7002 37.1006 -49.2002 23.2998 -84.9004
+c-3.89941 1 -7.59961 1.5 -10.8994 1.40039c-5.2998 29.0996 -17.5 53.2002 -23.6006 64.5996c-11.5 21.4004 -29.5 65.2998 -37.1992 95.7002c-4.5 -6.40039 -12.4004 -11.9004 -22.3008 -15c-4.69922 -1.5 -9.69922 -5.5 -15.8994 -9
+c-13.9004 -8 -30 -8.7998 -42.4004 1.2002c-4.5 3.59961 -8 7.59961 -12.5996 10.2998c-1.60059 0.900391 -5.10059 3.2998 -6.2002 4.09961c-2 -37.7998 -27.2998 -85.2998 -39.2998 -112.699c-8.2998 -19.7002 -13.2002 -40.8008 -13.7998 -61.5
+c-21.8008 29.0996 -5.90039 66.2998 2.59961 82.3994c9.5 17.6006 11 22.5 8.7002 20.7998c-8.60059 -14 -22 -36.2998 -27.2002 -59.1992c-2.7002 -11.9004 -3.2002 -24 0.299805 -35.2002s11.1006 -21.5 24.6006 -29.9004c0 0 24.7998 -14.2998 38.2998 -32.5
+c7.39941 -10 9.7002 -18.7002 7.39941 -24.8994c-2.5 -6.7002 -9.59961 -8.90039 -16.6992 -8.90039c4.7998 -6 10.2998 -13 14.3994 -19.5996zM428.7 14.9004c0.299805 5.09961 -3.10059 13 -13.7002 24.5996c-10 11.2998 -7.2002 33.0996 -17.0996 41.5996
+c-6.90039 6 -13.6006 5.40039 -22.6006 5.10059c-7.7002 -8.7998 -25.7998 -19.6006 -38.3994 -16.2998c-11.5 2.89941 -18 16.2998 -18.8008 29.5c-0.299805 -0.200195 -0.699219 -0.300781 -1 -0.5c-7.09961 -3.90039 -11.0996 -10.8008 -13.6992 -21.1006
+c-2.5 -10.2002 -3.40039 -23.5 -4.2002 -38.7002c-0.700195 -11.7998 -6.2002 -26.3994 -9.90039 -40.5996c-3.5 -13.2002 -5.7998 -25.2002 -1.09961 -36.2998c7.2002 -14.5 19.5 -20.4004 33.7002 -19.2998c14.1992 1.09961 30.3994 9.7998 43.5996 25.5
+c22 26.5996 62.2998 29.6992 63.2002 46.5zM173.3 299.3c-3.5 2.7998 -3.09961 6.60059 -1.7002 6.5c2.40039 -0.299805 2.80078 -3.5 4.30078 -4.89941c2 -1.90039 4.59961 -4.40039 7.69922 -6.90039c6.2002 -4.90039 14.5 -9.7002 24.9004 -9.7002
+s22.5 6 29.9004 10.2002c4.19922 2.40039 9.5 6.59961 13.8994 9.7998c3.40039 2.5 3.2002 5.40039 6 5.10059c2.7998 -0.300781 0.799805 -3.2002 -3.09961 -6.60059c-3.90039 -3.39941 -9.90039 -7.7998 -14.7998 -10.3994
+c-9.30078 -4.90039 -20.2002 -10.8008 -31.8008 -10.8008c-11.5 0 -20.6992 5.40039 -27.2998 10.6006c-3.2998 2.59961 -6 5.2002 -8 7.09961z" />
+ <glyph glyph-name="dribbble" unicode="" horiz-adv-x="512"
+d="M256 440c136.748 0 248 -111.252 248 -248s-111.252 -248 -248 -248s-248 111.252 -248 248s111.252 248 248 248zM419.97 325.634c-4.46582 -6.04102 -39.9629 -51.5459 -118.284 -83.5225c7.43652 -15.2217 12.8652 -27.5732 18.6172 -41.6143
+c70.4844 8.86426 140.519 -5.34082 147.502 -6.81836c-0.46582 49.998 -18.332 95.9092 -47.835 131.955zM396.421 350.13c-52.0947 46.2188 -122.885 63.6816 -190.061 47.4893c5.85449 -7.83984 44.3281 -60.2324 79.04 -124.008
+c75.3232 28.2324 107.211 71.0918 111.021 76.5186zM165.941 383.38c-59.2637 -27.9531 -103.562 -82.585 -117.298 -148.318c9.47461 -0.125 96.7471 -0.503906 195.834 25.8096c-35.0986 62.3926 -72.9512 114.85 -78.5361 122.509zM44.1699 191.677
+c0 -54.4072 20.624 -104.082 54.457 -141.636c34.3369 58.7793 103.932 120.731 180.531 142.306c-5.31738 12.0342 -11.1104 24.0811 -17.1738 35.9492c-105.786 -31.6592 -208.438 -30.3359 -217.706 -30.1455c-0.0654297 -2.15137 -0.108398 -4.30762 -0.108398 -6.47363
+zM125.977 24.5645c62.7539 -48.9355 144.656 -56.8955 212.769 -27.8828c-3.15039 18.585 -15.4492 83.3555 -45.1895 160.639c-85.4004 -29.1348 -145.452 -87.5234 -167.579 -132.756zM374.357 16.0752c47.5215 32.1338 81.3525 83.0371 90.7949 141.978
+c-7.24707 2.28711 -65.5674 19.6816 -131.947 9.05566c27.7061 -76.1367 38.9805 -138.147 41.1523 -151.033z" />
+ <glyph glyph-name="skype" unicode=""
+d="M424.7 148.2c14.5996 -18.9004 23.2998 -42.5 23.2002 -68.1006c0 -61.7998 -50.2002 -112 -112 -112c-25.6006 0 -49.2002 8.7002 -68.2002 23.3008c-14.1006 -3 -28.9004 -4.7002 -43.7998 -4.7002c-113.4 0 -205.301 91.7998 -205.301 205.3
+c0 14.9004 1.80078 29.7998 4.7002 43.7998c-14.5996 18.9004 -23.2998 42.5 -23.2998 68.2002c0 61.7998 50.2002 112 112 112c25.7002 0 49.2998 -8.7002 68.2998 -23.4004c14.1006 3 28.9004 4.7002 43.7998 4.7002c113.4 0 205.301 -91.7998 205.301 -205.3
+c0 -14.9004 -1.80078 -29.7998 -4.7002 -43.7998zM230.1 56.7002c54.9004 0 112 27.3994 112 86.5c0 50.7998 -49.2998 68.2998 -90.6992 77.5996c-48.3008 11.2002 -69.1006 13.2002 -69.1006 33c0 15.5 16.2998 22.5 42 22.5c45.7998 0 46.7002 -33.5 75 -33.5
+c18.9004 0 30.2998 14.9004 30.2998 31.7998c0 33.5 -55.6992 55.4004 -110.8 55.4004c-50.5 0 -109.1 -21.9004 -109.1 -81.0996c0 -65.2002 55.2998 -71.8008 117.8 -87.2002c26 -6.40039 42 -9.2998 42 -28c0 -14.9004 -16.5996 -26.2998 -42.2998 -26.2998
+c-54 0 -56.9004 44.8994 -88.1006 44.8994c-20.5 0 -29.5 -14.5996 -29.5 -30.5996c0 -35.7998 54.9004 -65 120.5 -65z" />
+ <glyph glyph-name="foursquare" unicode="" horiz-adv-x="368"
+d="M323.1 445c40 0 50.7002 -22.7998 42.2002 -65.2002l-48.5996 -243c-3.7002 -14.5 -9.2002 -39.7002 -44.2998 -39.7002h-83.4004c-3.40039 0 -3.7002 0.300781 -6.7998 -3.09961c0 0 -2.2002 -2.5 -131.101 -151.9
+c-10.0996 -11.6992 -26.6992 -9.59961 -32.8994 -7.09961c-6.10059 2.40039 -18.2002 9.7998 -18.2002 30.0996v433.801c0 17.7998 12.4004 46.0996 49.9004 46.0996h273.199zM306.8 371.2c2.10059 9.7998 -5.2998 17.5 -13.5 17.5h-219
+c-9.7998 0 -16.5996 -8.90039 -16.5996 -16.6006v-338.8c0 -0.899414 0.899414 -1.2002 1.7998 -0.299805c80.5996 96.9004 89.5 108.3 89.5 108.3c9.2998 10.7998 13 12.6006 26.5 12.6006h73.5c10.0996 0 16 8.59961 16.9004 13.5
+c0.899414 5 9.59961 49.8994 11.3994 58.7998c1.7998 9 -6.5 18.2002 -14.7998 18.2002h-90.4004c-12 0 -20.5996 8.59961 -20.5996 20.5996v13c0 12 8.59961 20.2998 20.5996 20.2998h106.4c7.40039 0 15.7002 6.7002 16.9004 13.2002z" />
+ <glyph glyph-name="trello" unicode=""
+d="M392.3 416c30.7998 -0.200195 55.7002 -25.2002 55.6006 -56v-336c0 -30.7998 -24.9004 -55.7998 -55.7002 -56h-336.2c-30.9004 0 -56 25.0996 -56 56c0 340 -0.0996094 336 0 336c0 30.9004 25.0996 56 56.0996 56h336.2zM197 76.7002h0.0996094v254.2
+c0 14.8994 -12.0996 26.8994 -26.8994 26.8994h-82.9004c-14.8994 0 -26.8994 -12.0996 -26.8994 -26.8994v-254.2c0.0996094 -14.7998 12.1992 -26.7002 27 -26.6006h82.6992c14.8008 0 26.7002 11.9004 26.9004 26.6006zM390.1 188.7v142.1
+c0 14.9004 -12.0996 26.9004 -26.8994 26.9004h-81.1006c-14.7998 0 -26.7998 -12.1006 -26.7998 -26.9004v-142.1c0 -14.9004 12.1006 -26.9004 26.9004 -26.9004h81c14.8994 0 26.8994 12.1006 26.8994 26.9004z" />
+ <glyph glyph-name="gratipay" unicode="" horiz-adv-x="496"
+d="M248 440c136.9 0 248 -111.1 248 -248s-111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248zM362.6 213.6c8.80078 12 19.1006 50.4004 -13.7998 72c-27.7002 18.1006 -54.2002 4.2002 -68.0996 -11.8994c-15.1006 -16.9004 -45.7998 -17.9004 -61.7002 0
+c-13.9004 16.0996 -40.4004 30 -68.5 11.8994c-32.7002 -21.5996 -22.2998 -60.0996 -13.5996 -72l112.699 -152.699z" />
+ <glyph glyph-name="vk" unicode="" horiz-adv-x="576"
+d="M545 330.3c-7.40039 -34.2998 -79.2998 -135.5 -79.4004 -135.6c-6.19922 -10 -8.69922 -15 0 -26.2002c3.40039 -4.7998 79.1006 -76.5996 90.3008 -111.5c4.89941 -16.5996 -3.60059 -25 -20.4004 -25h-58.9004c-22.3994 0 -29 17.9004 -69 57.9004
+c-35 33.6992 -50 38.0996 -58.6992 38.0996c-18.8008 0 -15.4004 -6.2998 -15.4004 -73.0996c0 -14.5 -4.59961 -22.9004 -42.0996 -22.9004c-62.4004 0 -131 37.9004 -179.7 107.8c-73.1006 102.4 -93.1006 179.9 -93.1006 195.5c0 8.7998 3.40039 16.7002 20.2002 16.7002
+h58.9004c15.0996 0 20.7998 -6.59961 26.5996 -22.9004c28.7998 -84 77.4004 -157.399 97.4004 -157.399c7.5 0 10.8994 3.5 10.8994 22.5v86.7998c-2.19922 40 -23.3994 43.2998 -23.3994 57.5c0 6.5 5.59961 13.5 15 13.5h92.5996
+c12.4004 0 16.6006 -6.7002 16.6006 -21.7002v-116.7c0 -12.5 5.69922 -16.8994 9.39941 -16.8994c7.5 0 13.7998 4.39941 27.5 18.0996c42.4004 47.4004 72.4004 120.5 72.4004 120.5c3.7002 8.7998 10.5996 16.7002 25.5996 16.7002h58.9004
+c17.7998 0 21.5 -9.2002 17.7998 -21.7002z" />
+ <glyph glyph-name="weibo" unicode="" horiz-adv-x="512"
+d="M407 270.4c7.59961 24 -13.4004 46.7998 -37.4004 41.6992c-22 -4.7998 -28.7998 28.1006 -7.09961 32.8008c50.0996 10.8994 92.2998 -37.1006 76.5 -84.8008c-6.7998 -21.1992 -38.7998 -10.7998 -32 10.3008zM214.8 1.2998c-106.3 0 -214.8 51.4004 -214.8 136.3
+c0 44.3008 28 95.4004 76.2998 143.7c99.7002 99.7002 203.2 100.9 173.601 5.7002c-4 -13.0996 12.2998 -5.7002 12.2998 -6c79.5 33.5996 140.5 16.7998 114 -51.4004c-3.7002 -9.39941 1.09961 -10.8994 8.2998 -13.0996c135.7 -42.2998 34.7998 -215.2 -169.7 -215.2z
+M358.5 147.6c-5.40039 55.7002 -78.5 94 -163.4 85.7002c-84.7998 -8.59961 -148.8 -60.2998 -143.399 -116c5.39941 -55.7002 78.5 -94 163.399 -85.7002c84.8008 8.60059 148.801 60.3008 143.4 116zM347.9 412.9c102.3 21.5996 189.3 -74.5 157.399 -174.301
+c-8.2998 -25 -44.7998 -12.1992 -37.3994 12c23.0996 71.2002 -39.4004 139.2 -111.7 124c-25.1006 -5.39941 -34.2002 32.7002 -8.2998 38.3008zM269.4 101.9c-17.1006 -38.8008 -66.8008 -60 -109.101 -46.3008c-40.7998 13.1006 -58 53.4004 -40.2998 89.7002
+c17.7002 35.4004 63.0996 55.4004 103.4 45.1006c42 -10.8008 63.0996 -50.2002 46 -88.5zM183.1 131.9c-12.8994 5.39941 -30 -0.300781 -38 -12.9004c-8.2998 -12.9004 -4.2998 -28 8.60059 -34c13.0996 -6 30.7998 -0.299805 39.0996 12.9004
+c8 13.0996 3.7002 28.2998 -9.7002 34zM215.7 145.3c-5.10059 1.7002 -11.4004 -0.599609 -14.2998 -5.39941c-2.90039 -5.10059 -1.40039 -10.6006 3.69922 -12.9004c5.10059 -2 11.7002 0.299805 14.6006 5.40039c2.7998 5.19922 1.09961 10.8994 -4 12.8994z" />
+ <glyph glyph-name="renren" unicode="" horiz-adv-x="512"
+d="M214 278.9c0 -110.4 -61 -205.4 -147.6 -247.4c-36.4004 43.2998 -58.4004 98.7998 -58.4004 159.9c0 122.699 89.0996 224.399 206 244.1v-156.6zM255 -56c-42.9004 0 -83.2998 11 -118.5 30.4004c57.2002 36.0996 103.4 90.6992 118.5 154.6
+c15.5 -63.9004 61.7002 -118.5 118.8 -154.7c-35.0996 -19.2998 -75.5 -30.2998 -118.8 -30.2998zM445.6 31.5c-86.5996 42 -147.6 136.9 -147.6 247.4v156.6c116.9 -19.7002 206 -121.4 206 -244.1c0 -61.1006 -22 -116.601 -58.4004 -159.9z" />
+ <glyph glyph-name="pagelines" unicode="" horiz-adv-x="384"
+d="M384 135.3c-55.0996 -136.7 -187.1 -54 -187.1 -54c-40.5 -81.7998 -107.4 -134.399 -184.601 -134.7c-16.0996 0 -16.5996 24.4004 0 24.4004c64.4004 0.299805 120.5 42.7002 157.2 110.1c-41.0996 -15.8994 -118.6 -27.8994 -161.6 82.2002
+c109 44.9004 159.1 -11.2002 178.3 -45.5c9.89941 24.4004 17 50.9004 21.5996 79.7002c0 0 -139.7 -21.9004 -149.5 98.0996c119.101 47.9004 152.601 -76.6992 152.601 -76.6992c1.59961 16.6992 3.2998 52.5996 3.2998 53.3994c0 0 -106.3 73.7002 -38.1006 165.2
+c124.601 -43 61.4004 -162.4 61.4004 -162.4c0.5 -1.59961 0.5 -23.7998 0 -33.3994c0 0 45.2002 89 136.4 57.5c-4.2002 -134 -141.9 -106.4 -141.9 -106.4c-4.40039 -27.3994 -11.2002 -53.3994 -20 -77.5c0 0 83 91.7998 172 20z" />
+ <glyph glyph-name="stack-exchange" unicode=""
+d="M17.7002 115.7h412.7v-22c0 -37.7002 -29.3008 -68 -65.3008 -68h-19l-86.7998 -89.7002v89.7002h-176.3c-36 0 -65.2998 30.2998 -65.2998 68v22zM17.7002 139.3v85h412.7v-85h-412.7zM17.7002 248.7v85h412.7v-85h-412.7zM365 448
+c36 0 65.2998 -30.2998 65.4004 -67.7002v-22.2998h-412.7v22.2998c0 37.4004 29.2998 67.7002 65.2998 67.7002h282z" />
+ <glyph glyph-name="vimeo-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM383.8 266.4c1.90039 41.5996 -13.5996 63 -46.5 64c-44.2998 1.39941 -74.3994 -23.6006 -90.0996 -75.1006
+c19.5996 8.40039 48.5996 10.6006 45.2002 -22.2002c-0.900391 -11.0996 -8.10059 -27.0996 -21.5 -48.2998c-37.2002 -58.7002 -46.3008 -39.0996 -66.8008 90.5c-5.7998 36.5 -21.0996 53.5 -46 51.1006c-22 -2 -57.1992 -38 -94.0996 -70.4004l15 -19.4004
+c14.2998 10.1006 22.7002 15.1006 25.0996 15.1006c20.8008 0 31.5 -54.1006 56.7002 -146.4c12.9004 -34.3994 28.6006 -51.5996 47.2998 -51.5996c30.1006 0 66.9004 28.2998 110.4 84.7998c42.0996 54.0996 63.9004 96.7998 65.2998 127.9z" />
+ <glyph glyph-name="slack" unicode=""
+d="M94.1201 132.9c0 -25.9004 -21.1602 -47.0605 -47.0605 -47.0605c-25.8994 0 -47.0596 21.1602 -47.0596 47.0605c0 25.8994 21.1602 47.0596 47.0596 47.0596h47.0605v-47.0596zM117.84 132.9c0 25.8994 21.1602 47.0596 47.0605 47.0596
+c25.8994 0 47.0596 -21.1602 47.0596 -47.0596v-117.841c0 -25.8994 -21.1602 -47.0596 -47.0596 -47.0596c-25.9004 0 -47.0605 21.1602 -47.0605 47.0596v117.841zM164.9 321.88c-25.9004 0 -47.0605 21.1602 -47.0605 47.0605c0 25.8994 21.1602 47.0596 47.0605 47.0596
+c25.8994 0 47.0596 -21.1602 47.0596 -47.0596v-47.0605h-47.0596zM164.9 298.16c25.8994 0 47.0596 -21.1602 47.0596 -47.0605c0 -25.8994 -21.1602 -47.0596 -47.0596 -47.0596h-117.841c-25.8994 0 -47.0596 21.1602 -47.0596 47.0596
+c0 25.9004 21.1602 47.0605 47.0596 47.0605h117.841zM353.88 251.1c0 25.9004 21.1602 47.0605 47.0605 47.0605c25.8994 0 47.0596 -21.1602 47.0596 -47.0605c0 -25.8994 -21.1602 -47.0596 -47.0596 -47.0596h-47.0605v47.0596zM330.16 251.1
+c0 -25.8994 -21.1602 -47.0596 -47.0605 -47.0596c-25.8994 0 -47.0596 21.1602 -47.0596 47.0596v117.841c0 25.8994 21.1602 47.0596 47.0596 47.0596c25.9004 0 47.0605 -21.1602 47.0605 -47.0596v-117.841zM283.1 62.1201c25.9004 0 47.0605 -21.1602 47.0605 -47.0605
+c0 -25.8994 -21.1602 -47.0596 -47.0605 -47.0596c-25.8994 0 -47.0596 21.1602 -47.0596 47.0596v47.0605h47.0596zM283.1 85.8398c-25.8994 0 -47.0596 21.1602 -47.0596 47.0605c0 25.8994 21.1602 47.0596 47.0596 47.0596h117.841
+c25.8994 0 47.0596 -21.1602 47.0596 -47.0596c0 -25.9004 -21.1602 -47.0605 -47.0596 -47.0605h-117.841z" />
+ <glyph glyph-name="wordpress" unicode="" horiz-adv-x="512"
+d="M61.7002 278.6l101.5 -278c-71 34.4004 -119.9 107.2 -119.9 191.4c0 30.9004 6.60059 60.0996 18.4004 86.5996zM399.6 202.7c0 -18.2002 -7 -39.2998 -16 -68.7002l-21.1992 -70.9004l-76.9004 228.7c12.7998 0.700195 24.2998 2 24.2998 2
+c11.4004 1.2998 10.1006 18.2002 -1.39941 17.5c0 0 -34.5 -2.7002 -56.7002 -2.7002c-20.9004 0 -56 2.7002 -56 2.7002c-11.4004 0.700195 -12.7998 -16.7998 -1.2998 -17.5c0 0 10.7998 -1.2998 22.2998 -2l33.0996 -90.7998l-46.5996 -139.6l-77.5 230.399
+c12.7998 0.700195 24.2998 2 24.2998 2c11.4004 1.2998 10.0996 18.2002 -1.40039 17.5c0 0 -34.5 -2.7002 -56.6992 -2.7002c-4 0 -8.7002 0.100586 -13.7002 0.300781c38.0996 57.7998 103.5 95.8994 177.8 95.8994c55.4004 0 105.8 -21.2002 143.7 -55.8994
+c-1 0.0996094 -1.90039 0.199219 -2.7998 0.199219c-20.9004 0 -35.7002 -18.1992 -35.7002 -37.7998c0 -17.5 10.0996 -32.3994 20.8994 -49.8994c8.10059 -14.2002 17.5 -32.4004 17.5 -58.7002zM259.7 173.4l65.3994 -179.2c0.400391 -1 0.900391 -2 1.5 -2.90039
+c-22.0996 -7.7998 -45.7998 -12.0996 -70.5996 -12.0996c-20.9004 0 -41 3.09961 -60.0996 8.7002zM442.7 294.1c16.5996 -30.2998 26 -65.0996 26 -102.1c0 -78.5 -42.5 -147 -105.8 -183.9l65 187.9c12.1992 30.4004 16.1992 54.5996 16.1992 76.2002
+c0 7.89941 -0.5 15.0996 -1.39941 21.8994zM504 192c0 -136.8 -111.3 -248 -248 -248c-136.8 0 -248 111.3 -248 248c0 136.8 111.2 248 248 248c136.7 0 248 -111.2 248 -248zM492.6 192c0 130.5 -106.199 236.6 -236.6 236.6c-130.5 0 -236.6 -106.1 -236.6 -236.6
+s106.199 -236.6 236.6 -236.6c130.5 0 236.6 106.1 236.6 236.6z" />
+ <glyph glyph-name="openid" unicode=""
+d="M271.5 16l-68 -32c-115 10.2998 -203.5 71.5 -203.5 145.8c0 71.5 82.5 131 191.7 144.3v-43c-71.5 -12.5 -124 -53 -124 -101.3c0 -51 58.5 -93.2998 135.7 -103v340l68 33.2002v-384h0.0996094zM448 157l-131.3 28.5l36.7998 20.7002c-19.5 11.5 -43.5 20 -70 24.7998
+v43c46.2002 -5.5 87.7002 -19.5 120.3 -39.2998l35 19.7998z" />
+ <glyph glyph-name="yahoo" unicode=""
+d="M252 156l4 -220c-12.7002 2.2002 -23.5 3.90039 -32.2998 3.90039c-8.40039 0 -19.2002 -1.7002 -32.2998 -3.90039l4 220c-55 94.7998 -110.4 196.8 -174 292c11.8994 -3.09961 23 -3.90039 33.1992 -3.90039c9 0 20.4004 0.800781 34.1006 3.90039
+c40.8994 -72.2002 82.0996 -138.7 135 -225.5c37.2998 61.5996 91.0996 144.1 134.899 225.5c11.1006 -2.90039 22 -3.90039 32.9004 -3.90039c11.5 0 23.2002 1 35 3.90039c-34.4004 -47.9004 -131.6 -216.9 -174.5 -292z" />
+ <glyph glyph-name="google" unicode="" horiz-adv-x="488"
+d="M488 186.2c0 -141.5 -96.9004 -242.2 -240 -242.2c-137.2 0 -248 110.8 -248 248s110.8 248 248 248c66.7998 0 123 -24.5 166.3 -64.9004l-67.5 -64.8994c-88.2998 85.2002 -252.5 21.2002 -252.5 -118.2c0 -86.5 69.1006 -156.6 153.7 -156.6
+c98.2002 0 135 70.3994 140.8 106.899h-140.8v85.2998h236.1c2.30078 -12.6992 3.90039 -24.8994 3.90039 -41.3994z" />
+ <glyph glyph-name="reddit" unicode="" horiz-adv-x="512"
+d="M201.5 142.5c-13.7998 0 -24.9004 11.0996 -24.9004 24.5996c0 13.8008 11.1006 24.9004 24.9004 24.9004c13.5996 0 24.5996 -11.0996 24.5996 -24.9004c0 -13.5996 -11.0996 -24.5996 -24.5996 -24.5996zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248
+s111 248 248 248s248 -111 248 -248zM371.7 233.2c-9.40039 0 -17.7002 -3.90039 -23.7998 -10c-22.4004 15.5 -52.6006 25.5 -86.1006 26.5996l17.4004 78.2998l55.3994 -12.5c0 -13.5996 11.1006 -24.5996 24.6006 -24.5996c13.7998 0 24.8994 11.2998 24.8994 24.9004
+c0 13.5996 -11.0996 24.8994 -24.8994 24.8994c-9.7002 0 -18 -5.7998 -22.1006 -13.7998l-61.1992 13.5996c-3 0.800781 -6.10059 -1.39941 -6.90039 -4.39941l-19.0996 -86.4004c-33.2002 -1.39941 -63.1006 -11.2998 -85.5 -26.7998
+c-6.10059 6.40039 -14.7002 10.2002 -24.1006 10.2002c-34.8994 0 -46.2998 -46.9004 -14.3994 -62.7998c-1.10059 -5 -1.7002 -10.2002 -1.7002 -15.5c0 -52.6006 59.2002 -95.2002 132 -95.2002c73.0996 0 132.3 42.5996 132.3 95.2002
+c0 5.2998 -0.599609 10.7998 -1.90039 15.7998c31.3008 16 19.8008 62.5 -14.8994 62.5zM302.8 117c2.2002 2.2002 6.10059 2.2002 8.2998 0c2.5 -2.5 2.5 -6.40039 0 -8.59961c-22.8994 -22.8008 -87.3994 -22.8008 -110.199 0c-2.5 2.19922 -2.5 6.09961 0 8.59961
+c2.19922 2.2002 6.09961 2.2002 8.2998 0c17.5 -17.9004 75.3994 -18.2002 93.5996 0zM310.5 192c13.9004 0 24.9004 -11.0996 24.9004 -24.9004c0 -13.5 -11.1006 -24.5996 -24.9004 -24.5996c-13.5 0 -24.5996 11 -24.5996 24.5996c0 13.8008 11 24.9004 24.5996 24.9004z
+" />
+ <glyph glyph-name="reddit-square" unicode=""
+d="M283.2 102.5c2.7002 -2.7002 2.7002 -6.7998 0 -9.2002c-24.5 -24.5 -93.7998 -24.5996 -118.4 0c-2.7002 2.40039 -2.7002 6.5 0 9.2002c2.40039 2.40039 6.5 2.40039 8.90039 0c18.7002 -19.2002 81 -19.5996 100.5 0c2.39941 2.2998 6.59961 2.2998 9 0zM191.9 156.3
+c0 -14.5996 -11.9004 -26.5 -26.5 -26.5c-14.9004 0 -26.8008 11.9004 -26.8008 26.5c0 14.9004 11.9004 26.7998 26.8008 26.7998c14.5996 0 26.5 -11.8994 26.5 -26.7998zM282.6 183.1c14.9004 0 26.8008 -11.8994 26.8008 -26.7998
+c0 -14.5996 -11.9004 -26.5 -26.8008 -26.5c-14.5996 0 -26.5 11.9004 -26.5 26.5c0 14.9004 11.9004 26.7998 26.5 26.7998zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM348.3 227.4
+c-10.0996 0 -19 -4.2002 -25.5996 -10.7002c-24.1006 16.7002 -56.5 27.3994 -92.5 28.5996l18.7002 84.2002l59.5 -13.4004c0 -14.5996 11.8994 -26.5 26.5 -26.5c14.8994 0 26.7998 12.2002 26.7998 26.8008c0 14.5996 -11.9004 26.7998 -26.7998 26.7998
+c-10.4004 0 -19.3008 -6.2002 -23.8008 -14.9004l-65.6992 14.6006c-3.30078 0.899414 -6.5 -1.5 -7.40039 -4.80078l-20.5 -92.7998c-35.7002 -1.5 -67.7998 -12.2002 -91.9004 -28.8994c-6.5 6.7998 -15.7998 11 -25.8994 11c-37.5 0 -49.7998 -50.4004 -15.5 -67.5
+c-1.2002 -5.40039 -1.7998 -11 -1.7998 -16.7002c0 -56.5 63.6992 -102.3 141.899 -102.3c78.5 0 142.2 45.7998 142.2 102.3c0 5.7002 -0.599609 11.5996 -2.09961 17c33.5996 17.2002 21.1992 67.2002 -16.1006 67.2002z" />
+ <glyph glyph-name="stumbleupon-circle" unicode="" horiz-adv-x="496"
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 262.5c9.7998 0 17.7998 -8 17.7002 -17.5996v-20.6006l22.8994 -10.7002l34.1006 10.1006v23.7002c0 40.2998 -34 72.5996 -74.7002 72.5996
+c-40.5 0 -74.7002 -32.0996 -74.7002 -72.0996v-108.4c0 -9.90039 -8 -17.7998 -17.7998 -17.7998s-17.7998 7.7998 -17.7998 17.7998v45.7998h-57.2998v-46.5c0 -41.3994 33.5 -74.8994 74.8994 -74.8994c41 0 74.9004 33 74.9004 73.8994v106.9
+c0 9.7998 8 17.7998 17.7998 17.7998zM423.6 138.9c0 0 0 0.5 0.100586 46.3994h-57.2998v-48c0 -9.7002 -8 -17.5996 -17.8008 -17.5996c-9.7998 0 -17.7998 7.7998 -17.7998 17.5996v47.1006l-34.0996 -10.1006l-22.9004 10.7002v-46.7998
+c0 -41 33.7002 -74.2002 74.9004 -74.2002c41.3994 0 74.8994 33.5 74.8994 74.9004z" />
+ <glyph glyph-name="stumbleupon" unicode="" horiz-adv-x="512"
+d="M502.9 182v-69.7002c0 -62.0996 -50.3008 -112.399 -112.4 -112.399c-61.7998 0 -112.4 49.7998 -112.4 111.3v70.2002l34.3008 -16l51.0996 15.1992v-70.5996c0 -14.7002 12 -26.5 26.7002 -26.5s26.7998 11.7998 26.7998 26.5v72h85.9004zM278.2 240.2v30.8994
+c0 14.7002 -12 26.7002 -26.7002 26.7002s-26.7002 -12 -26.7002 -26.7002v-160.3c0 -61.2998 -50.7998 -110.8 -112.399 -110.8c-62.1006 0 -112.4 50.2998 -112.4 112.3v69.7002h86v-68.5996c0 -14.9004 12 -26.7002 26.7002 -26.7002s26.7002 11.7998 26.7002 26.7002
+v162.399c0 60 51.2998 108.2 112.1 108.2c61 0 112.1 -48.5 112.1 -109v-35.5996l-51.0996 -15.2002z" />
+ <glyph glyph-name="delicious" unicode=""
+d="M446.5 380c1 -3.7998 1.5 -7.90039 1.59961 -12v-352.1c0 -26.5 -21.5 -48 -48 -48h-352c-4.09961 0 -8.19922 0.5 -12 1.5c-7.69922 2 -14.5996 5.7998 -20.2998 11c-1.2002 1.09961 -2.2998 2.19922 -3.2998 3.2998c-5.2002 5.7002 -9 12.5996 -11 20.2998
+c-1 3.7998 -1.5 7.90039 -1.5 12v352c0 26.5 21.5 48 48 47.9004h352c4.09961 0 8.2002 -0.5 12 -1.5c1.90039 -0.400391 3.7002 -1 5.40039 -1.7002c1.89941 -0.700195 3.69922 -1.5 5.5 -2.5c1.39941 -0.700195 2.69922 -1.5 4 -2.40039
+c1.09961 -0.799805 2.19922 -1.59961 3.2998 -2.5c2.5 -2 4.7998 -4.2998 6.89941 -6.7998c1.7002 -2.09961 3.30078 -4.5 4.7002 -6.90039c1.2998 -2.2998 2.40039 -4.59961 3.2998 -7.09961c0.5 -1.5 1 -3 1.40039 -4.5zM416 16v176h-192v192h-176
+c-8.7998 0 -16 -7.2002 -16 -16v-176h192v-192h176c8.7998 0 16 7.2002 16 16z" />
+ <glyph glyph-name="digg" unicode="" horiz-adv-x="512"
+d="M81.7002 275.7v76.2998h51v-250.7h-132.7v174.4h81.7002zM81.7002 142.3v92.2998h-30.7998v-92.2998h30.7998zM378.9 275.7h133.1v-243.7h-133.1v40.7998h81.7998v28.5h-81.7998v174.4zM460.7 142.3v92.2998h-30.7998v-92.2998h30.7998zM225.1 101.3v174.4h133.301
+v-243.7h-133.301v40.7998h82.1006v28.5h-82.1006zM276.3 234.6v-92.2998h30.7998v92.2998h-30.7998zM153.3 352h51.2998v-51h-51.2998v51zM153.3 275.7h51.2998v-174.4h-51.2998v174.4z" />
+ <glyph glyph-name="pied-piper-pp" unicode=""
+d="M205.3 273.4c0 -21.1006 -14.2002 -38.1006 -31.7002 -38.1006c-7.09961 0 -12.7998 1.2002 -17.1992 3.7002v68c4.39941 2.7002 10.0996 4.2002 17.1992 4.2002c17.5 0 31.7002 -16.9004 31.7002 -37.7998zM257.9 206.4c17.3994 0 31.6992 -17 31.6992 -38.1006
+c0 -20.8994 -14.2998 -37.7998 -31.6992 -37.7998c-7.10059 0 -12.8008 1.2002 -17.2002 3.7002v68c4.39941 2.7002 10.0996 4.2002 17.2002 4.2002zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352
+c26.5 0 48 -21.5 48 -48zM185 192.9c41 0 74.2002 35.5996 74.2002 79.5996s-33.2002 79.5996 -74.2002 79.5996c-12 0 -24.0996 -3.19922 -34.5996 -8.7998h-45.7002v-206.3l51.7998 10.0996v50.6006c8.59961 -3.10059 18.0996 -4.7998 28.5 -4.7998zM343.4 167.6
+c0 44 -33.2002 79.6006 -73.9004 79.6006c-3.2002 0 -6.40039 -0.200195 -9.59961 -0.700195c-3.7002 -12.5 -10.1006 -23.7998 -19.2002 -33.4004c-13.7998 -15 -32.2002 -23.7998 -51.7998 -24.7998v-156.3l51.7998 10.0996v50.6006
+c8.59961 -3.2002 18.2002 -4.7002 28.7002 -4.7002c40.7998 0 74 35.5996 74 79.5996z" />
+ <glyph glyph-name="pied-piper-alt" unicode="" horiz-adv-x="576"
+d="M244 202l-27.7002 -5.7002l-1.7002 4.90039c6.7002 0.5 12.7002 3.7002 19.3008 3.7002c3.7998 0 6.89941 -0.900391 10.0996 -2.90039zM379.9 4.09961c9.5 0 28.1992 -45.0996 33 -55.0996c-35.9004 -13.4004 -70.3008 -15.9004 -106 -9.7998l-6.90039 45.0996
+c15.7998 10.2998 60.9004 19.7998 79.9004 19.7998zM340.8 271c-7.59961 3.5 -63.8994 6.40039 -98.7998 -10c6.2998 11.7998 13.2002 17 25.9004 21.7998c27.2998 10.2998 40.1992 30.5 58.8994 51.1006c11.9004 -8.40039 12 -24.6006 31.6006 -23v-21.8008
+l6.2998 -0.299805c37.3994 14.4004 74.7002 30.2002 106.6 54.6006c48.2998 36.7998 52.9004 50 81.2998 100l2 2.59961c-0.599609 -14.0996 -6.2998 -27.2998 -12.3994 -39.9004c-30.5 -63.7998 -78.7002 -100.3 -146.8 -116.699
+c-12.4004 -2.90039 -26.4004 -3.2002 -37.6006 -8.90039c1.40039 -9.7998 13.2002 -18.0996 13.2002 -23c0 -3.40039 -5.5 -7.2002 -7.5 -8.59961c-11.2002 12.8994 -16.0996 19.2998 -22.7002 22.0996zM555.5 448l-0.299805 -1.40039l-0.600586 -0.599609
+l0.300781 0.900391zM496.3 65.9004c20.1006 -34.2002 43.7002 -54.3008 72.7002 -79.9004c-31 -19.2998 -70.4004 -32.2002 -103.5 -47.2002c-55.2002 46.2998 -23 229.9 -111.5 229.9c-3.5 -0.700195 -2.40039 -0.299805 -4.59961 -1.7002
+c1.09961 -1.40039 2.59961 -2.90039 3.69922 -4c23.9004 -20.0996 33.4004 -24.4004 34.8008 -58.5996l0.299805 -9.5c0.799805 -21.6006 -5.5 -42.5 -9.7998 -63.5c-25.9004 0.699219 -51.2002 -11 -77.9004 -2.90039c-0.700195 5.90039 -1.09961 30.9004 0.299805 41.0996
+c1.40039 9.5 33.6006 29.9004 33 43.7002c-5.5 0.600586 -9.2002 -2.59961 -12.3994 -6.89941c-13.3008 -19.5 -47.2002 -41.9004 -71.3008 -41.9004c-16.5996 0 -56.2998 71.5 -76.3994 85.9004c-3.2002 2.2998 -5.2002 5.39941 -7.7998 8.59961
+c-16.1006 -3.7998 -139.4 -32.2002 -147.4 -32.2002c-6 0 -11.5 4.90039 -11.5 10.9004c0 5.5 3.40039 10.7002 8.90039 11.7998l139.6 30.4004c-9.5 17.1992 12.2998 17.5 21.5 20.0996c3.2002 0.799805 6.2998 4 9.5 4c6.2998 0 11.7998 -8.90039 13.7998 -14.0996
+c6.2998 1.39941 45.7002 10.5996 49.4004 10.5996c15.2002 0 15.8994 -20.0996 2.89941 -22.7002l-52.2998 -11.5l-0.299805 -4.59961c-0.299805 -10.1006 45.4004 -60.1006 53.4004 -60.1006c18.0996 0 54.8994 41.7002 54.8994 60.1006
+c0 30.7002 -42.7998 12.5996 -42.7998 33.5996c0 3.5 1.2002 6.60059 2.90039 9.7998l-19.5 5.5c13.0996 13.6006 13.7998 31.7002 10.8994 50.3008c14.7002 2.89941 26.7002 4.59961 41.4004 4.59961c56.8994 0 45.7002 -8.59961 65.5 -54.2998l14.3994 7.2002
+c-2.2998 -34.2002 -36.1992 -17.5 -35.0996 -31l0.299805 -6c74.7002 2.89941 116.101 -58.6006 150 -115.5zM300.1 19.7998h8.90039l2.90039 -23.7998l-11.8008 -3.40039v27.2002zM231.4 170.2l13.7998 3.5l31.2998 -50.9004l-21 -13.7998zM315.8 15.2998
+c22.6006 2.5 32.7002 6.2998 59.5 6.2998c0.299805 -1.39941 0.900391 -3.19922 0.900391 -4.59961c0 -7.5 -49.4004 -12.5996 -58.4004 -14.0996z" />
+ <glyph glyph-name="drupal" unicode=""
+d="M319.5 333.3c13.5 -8.2998 96.5 -67 96.5 -179.3c0 -112 -88.5 -186 -190.2 -186c-102 0 -193.8 80.2998 -193.8 189.5c0 109 85 167.5 100.8 175.8c18.7002 10.1006 32.2002 15.2998 53.5 32.2998c10.5 8.30078 19.2998 20.2002 22 49.5
+c15.2002 -18.2998 33.5 -39.5 46.5 -48.2998c21.2002 -14 42.5 -19.5 64.7002 -33.5zM322 7.7002c4.2002 4.2002 1.90039 13.0996 -4.2002 8.5c-8.5 -6.2998 -27.5 -14 -54.5 -14c-34.5 0 -51.5 13.2998 -51.5 13.2998c-6.2002 0 -11.2998 -7.2002 -6.5 -12
+c26.6006 -24.5 96.6006 -15.9004 116.7 4.2002zM267.5 60.2998c-6.5 -2.7002 -28.4004 -16.7998 -22.4004 -25c2.40039 -3.2998 5.2002 -1.2998 12.2002 4.7002c7.2002 5.7998 12 11 26.7002 11c25.2998 0 18.0996 -19.9004 26.5 -15.7002
+c9.90039 4.90039 -2.09961 20.9004 -6.2002 23.7002c-7.7998 5.09961 -28.0996 4.90039 -36.7998 1.2998zM360 43c39.0996 -3.2998 64.5 106 15.7998 106c-20 0 -60.5 -41.5 -81.7998 -41.7998c-24.7002 -0.5 -59 49 -108.5 48.5
+c-66.4004 -0.400391 -90.5996 -78.6006 -51.7998 -105.2c57.2002 -38.7002 130.399 42.9004 161.3 42c19.5 -0.700195 49.7998 -48.5 65 -49.5z" />
+ <glyph glyph-name="joomla" unicode=""
+d="M0.599609 355.9c0 33.2998 26.8008 60.0996 59.8008 60.0996c30 0 54.5 -21.9004 59.1992 -50.2002c32.6006 7.60059 67.1006 -0.599609 96.5 -30l-44.2998 -44.2998c-20.5 20.5 -42.5996 16.2998 -55.3994 3.5c-14.3008 -14.2998 -14.3008 -37.9004 0 -52.2002
+l99.5 -99.5l-44 -44.2998c-87.7002 87.2002 -49.7002 49.7002 -99.8008 99.7002c-26.7998 26.5 -35 64.7998 -24.7998 98.8994c-26.8994 5.80078 -46.7002 29.7002 -46.7002 58.3008zM130.1 239.5c28.5 28.4004 81.3008 80.7998 99.6006 99.9004
+c26.5996 26.5996 64.5 35 98.2998 25.0996c4.09961 29.0996 29.2002 51.5996 59.5 51.5996c33 0 59.7998 -26.8994 59.7998 -60.0996c0 -30.2998 -22.7002 -55.4004 -51.8994 -59.5c9.59961 -33.5996 2.2998 -70 -28.9004 -101.2l-44 44.2998
+c20.5 20.4004 16.2998 42.6006 3.5 55.4004c-14.2998 14.2998 -37.5996 14.2998 -51.9004 0c-10 -10.0996 -89.6992 -89.7998 -99.6992 -99.7998zM396.4 87.2998c29.0996 -4.09961 51.5996 -28.8994 51.5996 -59.0996c0 -33.2998 -26.7998 -60.1006 -59.7998 -60.1006
+c-29.2002 0 -53.4004 20.7002 -58.9004 48.1006c-34.7002 -10.7998 -75.0996 -2.2002 -102.7 28l44 44.2998c20.4004 -20.5 42.6006 -16.2998 55.4004 -3.5c14.2998 14.2998 14.2998 37.5996 0 51.9004l-99.7002 99.6992l44.2998 44.3008
+c104.5 -104.4 87.7002 -87.5 99.5 -99.7002c25.4004 -25.4004 34.5 -61.2002 26.3008 -93.9004zM312.1 140.4c-87.2998 -87.3008 -67.3994 -67.7002 -99.5 -99.7002c-25.6992 -25.4004 -61.5 -34.2002 -94.1992 -26c-6.10059 -26.9004 -30 -46.7002 -58.6006 -46.7002
+c-33 0 -59.7998 26.7998 -59.7998 60.0996c0 28.3008 19.5 52.2002 46.2002 58.2002c-8.5 33.1006 -0.700195 68.1006 29.5 98.2998l44 -44.2998c-20.1006 -20.0996 -16.2998 -42 -3.2002 -55.3994c14.2998 -14.3008 37.5996 -14.3008 51.9004 0
+c49.2998 49.3994 12.6992 13.3994 99.6992 99.7998z" />
+ <glyph glyph-name="behance" unicode="" horiz-adv-x="576"
+d="M232 210.8c43.5996 -12.2998 64.7002 -45.2002 64.7002 -89.7002c0 -72 -60.5 -102.899 -124.9 -102.899h-171.8v354.399h167.1c60.7002 0 113.301 -17.1992 113.301 -87.7998c0 -35.7998 -16.6006 -58.7998 -48.4004 -74zM77.9004 312.1v-82.6992h79
+c27.7998 0 47.5 12.0996 47.5 42.1992c0 32.6006 -25.3008 40.5 -53.4004 40.5h-73.0996zM161.2 78.4004c31.7002 0 57.5996 11.1992 57.5996 47c0 36.2998 -21.7002 50.5996 -56 50.5996h-84.8994v-97.5996h83.2998zM519.7 319.1h-143.7v34.9004h143.7v-34.9004zM576 142.8
+c0 -4.5 -0.299805 -9 -0.599609 -13.2002h-185.101c0 -41.0996 21.7002 -65.2998 63 -65.2998c21.4004 0 49 11.6006 55.7002 33.5h62.2002c-19.1006 -58.7002 -58.7998 -86.2998 -120.101 -86.2998c-81 0 -131.3 54.7998 -131.3 134.7c0 77 53.1006 135.8 131.3 135.8
+c80.5 0 124.9 -63.2998 124.9 -139.2zM390.4 174h114.699c-3 34 -20.7998 54.7998 -56.1992 54.7998c-33.8008 0 -56.2002 -21.0996 -58.5 -54.7998z" />
+ <glyph glyph-name="behance-square" unicode=""
+d="M186.5 155c0 -19.2998 -14 -25.4004 -31.2002 -25.4004h-45.0996v52.9004h46c18.5996 -0.0996094 30.2998 -7.7998 30.2998 -27.5zM178.8 237.3c0 -16.2998 -10.7002 -22.8994 -25.7998 -22.8994h-42.7002v44.7998h39.6006c15.1992 0 28.8994 -4.2002 28.8994 -21.9004z
+M311.1 214.1c19.2002 0 28.8008 -11.1992 30.5 -29.6992h-62.1992c1.19922 18.2998 13.3994 29.6992 31.6992 29.6992zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM271.7 263h77.7998
+v18.9004h-77.7998v-18.9004zM228.7 152.7c0 24.0996 -11.4004 44.8994 -35 51.5996c17.2002 8.2002 26.2002 17.7002 26.2002 37c0 38.2002 -28.5 47.5 -61.4004 47.5h-90.5v-192h93.0996c34.9004 0.200195 67.6006 16.9004 67.6006 55.9004zM380 167.5
+c0 41.0996 -24.0996 75.4004 -67.5996 75.4004c-42.4004 0 -71.1006 -31.8008 -71.1006 -73.6006c0 -43.2998 27.2998 -73 71.1006 -73c33.1992 0 54.6992 14.9004 65.0996 46.7998h-33.7002c-3.7002 -11.8994 -18.5996 -18.0996 -30.2002 -18.0996
+c-22.3994 0 -34.0996 13.0996 -34.0996 35.2998h100.2c0.0996094 2.2998 0.299805 4.7998 0.299805 7.2002z" />
+ <glyph glyph-name="steam" unicode="" horiz-adv-x="496"
+d="M496 192c0 -137 -111.2 -248 -248.4 -248c-113.8 0 -209.6 76.2998 -239 180.4l95.2002 -39.3008c6.40039 -32.0996 34.9004 -56.3994 68.9004 -56.3994c39.2002 0 71.8994 32.3994 70.2002 73.5l84.5 60.2002c52.0996 -1.30078 95.7998 40.8994 95.7998 93.5
+c0 51.5996 -42 93.5 -93.7002 93.5s-93.7002 -42 -93.7002 -93.5v-1.2002l-59.2002 -85.7002c-15.5 0.900391 -30.6992 -3.40039 -43.5 -12.0996l-133.1 55c10.2002 127.699 117.1 228.1 247.6 228.1c137.2 0 248.4 -111 248.4 -248zM155.7 63.7002
+c19.7998 -8.2002 42.5 1.09961 50.7998 21c8.2998 19.7998 -1.09961 42.5 -20.9004 50.7002l-31.5 13c12.2002 4.59961 26 4.7998 38.9004 -0.600586c13 -5.39941 23.0996 -15.5996 28.5 -28.5996s5.2998 -27.2998 -0.0996094 -40.2998
+c-11.2002 -26.8008 -42.1006 -39.6006 -69 -28.4004c-10.2119 4.26953 -22.3975 15.8281 -27.2002 25.7998zM329.5 193.6c-34.4004 0 -62.4004 28 -62.4004 62.3008c0 34.2998 28 62.2998 62.4004 62.2998s62.4004 -28 62.4004 -62.2998
+c0 -34.3008 -27.9004 -62.3008 -62.4004 -62.3008zM329.6 209.2c25.9004 0 46.9004 21 46.9004 46.7998c0 25.9004 -21 46.7998 -46.9004 46.7998c-25.8994 0 -46.8994 -21 -46.8994 -46.7998c0.0996094 -25.7998 21.0996 -46.7998 46.8994 -46.7998z" />
+ <glyph glyph-name="steam-square" unicode=""
+d="M185.2 91.5c7.7002 18.5 -1 39.7002 -19.6006 47.4004l-29.5 12.1992c11.4004 4.30078 24.3008 4.5 36.4004 -0.5c12.2002 -5.09961 21.5996 -14.5996 26.7002 -26.6992c5 -12.2002 5 -25.6006 -0.100586 -37.7002c-10.5 -25.1006 -39.3994 -37 -64.5996 -26.5
+c-11.5996 4.7998 -20.4004 13.5996 -25.4004 24.2002l28.5 -11.8008c18.6006 -7.7998 39.9004 0.900391 47.6006 19.4004zM400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v112.8l89.0996 -36.8994
+c6 -30 32.7002 -52.7002 64.5 -52.7002c36.6006 0 67.3008 30.2998 65.7002 68.7998l79 56.2998c48.7002 -1.2002 89.6006 38.2998 89.6006 87.5c0 48.2002 -39.3008 87.5 -87.6006 87.5s-87.5996 -39.2998 -87.5996 -87.5v-1.09961l-55.4004 -80.2002
+c-14.5 0.799805 -28.7002 -3.09961 -40.7002 -11.2998l-116.6 48.0996v160.7c0 26.5 21.5 48 48 48h352zM300.3 193.5c-32.2002 0 -58.3994 26.0996 -58.3994 58.2998s26.1992 58.2998 58.3994 58.2998s58.4004 -26.1992 58.4004 -58.2998
+c0 -32.0996 -26.2002 -58.2998 -58.4004 -58.2998zM300.4 208.1c24.1992 0 43.8994 19.6006 43.8994 43.8008c0 24.1992 -19.5996 43.7998 -43.8994 43.7998c-24.2002 0 -43.9004 -19.6006 -43.9004 -43.7998c0 -24.2002 19.7002 -43.8008 43.9004 -43.8008z" />
+ <glyph glyph-name="spotify" unicode="" horiz-adv-x="496"
+d="M248 440c136.9 0 248 -111.1 248 -248s-111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248zM348.7 75.0996c8.09961 0 15.2002 6.30078 15.2002 15.4004s-3.60059 12.5996 -9.7002 16.5c-71.4004 42.7002 -155.101 44.2998 -237 26.2002
+c-7.5 -1.60059 -13.6006 -6.5 -13.6006 -16.7998c0 -8.10059 6.10059 -15.8008 15.8008 -15.8008c2.89941 0 8 1.60059 11.8994 2.60059c71.7002 14.7002 144.3 13.0996 206.7 -24.5c3.90039 -2.2998 6.5 -3.60059 10.7002 -3.60059zM375.6 140.7
+c10.9004 0 19.3008 8.7002 19.4004 19.5c0 8.7002 -3.2002 14.8994 -11.2998 19.7002c-49.4004 29.3994 -112.101 45.5 -177 45.5c-41.6006 0 -70 -5.80078 -97.7998 -13.6006c-10.3008 -2.89941 -15.5 -10 -15.5 -20.7002c0 -10.6992 8.69922 -19.3994 19.3994 -19.3994
+c4.5 0 7.10059 1.2998 11.9004 2.59961c82.8994 22.5 176.1 7.60059 238.6 -29.3994c3.60059 -1.90039 7.10059 -4.2002 12.2998 -4.2002zM406.6 216.9c12.2002 0 23.2002 9.69922 23.2002 23.2998c0 11.8994 -5.09961 18.0996 -12.8994 22.5996
+c-55.9004 32.6006 -132.4 47.7998 -205.4 47.7998c-42.9004 0 -82.2998 -4.89941 -117.5 -15.1992c-9 -2.60059 -17.4004 -10.3008 -17.4004 -23.9004c0 -13.2998 10.1006 -23.5996 23.3008 -23.5996c4.7998 0 9.2998 1.59961 12.8994 2.59961
+c82.4004 23 209.7 12.7998 280.9 -29.7002c4.5 -2.59961 7.7002 -3.89941 12.8994 -3.89941z" />
+ <glyph glyph-name="deviantart" unicode="" horiz-adv-x="320"
+d="M320 354.8l-98.2002 -179.1l7.40039 -9.5h90.7998v-127.7h-160.9l-13.5 -9.2002l-43.6992 -84c-0.300781 0 -8.60059 -8.59961 -9.2002 -9.2002h-92.7002v93.2002l93.2002 179.4l-7.40039 9.2002h-85.7998v127.6h156l13.5 9.2002l43.7002 84
+c0.299805 0 8.59961 8.59961 9.2002 9.2002h97.5996v-93.1006z" />
+ <glyph glyph-name="soundcloud" unicode="" horiz-adv-x="640"
+d="M111.4 191.7l5.7998 -65l-5.7998 -68.2998c-0.300781 -2.5 -2.2002 -4.40039 -4.40039 -4.40039s-4.2002 1.90039 -4.2002 4.40039l-5.59961 68.2998l5.59961 65c0 2.2002 1.90039 4.2002 4.2002 4.2002c2.2002 0 4.09961 -2 4.40039 -4.2002zM132.8 237.3
+c2.5 0 4.7002 -2.2002 4.7002 -5l5.7998 -105.6l-5.7998 -68.2998c0 -2.80078 -2.2002 -5 -4.7002 -5c-2.7998 0 -4.7002 2.19922 -5 5l-5 68.2998l5 105.6c0.299805 2.7998 2.2002 5 5 5zM158.3 261.4c2.7998 0 5.2998 -2.2002 5.2998 -5.30078l5.30078 -130
+l-5.30078 -67.7998c0 -3.09961 -2.5 -5.2998 -5.2998 -5.2998c-3.09961 0 -5.2998 2.2002 -5.59961 5.2998l-4.40039 67.7998l4.40039 130c0.299805 3.10059 2.5 5.30078 5.59961 5.30078zM7.2002 164.8c1.39941 0 2.2002 -1.09961 2.5 -2.5l5.59961 -35.5996l-5.59961 -35
+c-0.299805 -1.40039 -1.10059 -2.5 -2.5 -2.5c-1.40039 0 -2.2002 1.09961 -2.5 2.5l-4.7002 35l4.7002 35.5996c0.299805 1.40039 1.09961 2.5 2.5 2.5zM30.7998 186.7c1.40039 0 2.5 -1.10059 2.7998 -2.5l7.2002 -57.5l-7.2002 -56.4004
+c-0.299805 -1.39941 -1.39941 -2.5 -2.7998 -2.5c-1.39941 0 -2.5 1.10059 -2.5 2.7998l-6.39941 56.1006l6.39941 57.5c0 1.39941 1.10059 2.5 2.5 2.5zM56.0996 198.1c1.7002 0 3.10059 -1.39941 3.10059 -3.2998l6.89941 -68.0996l-6.89941 -65.7998
+c0 -1.7002 -1.40039 -3.10059 -3.10059 -3.10059c-1.59961 0 -3 1.40039 -3.2998 3.10059l-5.7998 65.7998l5.7998 68.0996c0.200195 1.90039 1.60059 3.2998 3.2998 3.2998zM81.4004 200.3c1.89941 0 3.59961 -1.39941 3.89941 -3.59961l6.40039 -70l-6.40039 -67.7998
+c-0.299805 -2.2002 -2 -3.60059 -3.89941 -3.60059c-1.90039 0 -3.60059 1.40039 -3.60059 3.60059l-5.7998 67.7998l5.7998 70c0 2.2002 1.7002 3.59961 3.60059 3.59961zM322.8 311.2c2.5 -1.40039 4.10059 -4.2002 4.5 -7.2002l3.90039 -177.5l-3.90039 -64.2002
+c0 -4.7002 -3.89941 -8.59961 -8.59961 -8.59961s-8.60059 3.89941 -8.90039 8.59961l-1.7002 31.7002l-1.69922 32.5l3.2998 176.7v0.799805c0.200195 2.5 1.39941 5 3.2998 6.7002c1.40039 1.09961 3.40039 1.89941 5.59961 1.89941
+c1.40039 0 3.10059 -0.599609 4.2002 -1.39941zM296.1 295.9c2.2002 -1.40039 3.60059 -3.90039 3.90039 -6.7002l3.2998 -162.8l-3.09961 -58.6006l-0.299805 -6.7002c0 -2.2998 -0.800781 -4.19922 -2.5 -5.59961c-1.40039 -1.40039 -3.40039 -2.5 -5.60059 -2.5
+c-2.5 0 -4.7002 1.2002 -6.39941 3.09961c-1.10059 1.40039 -1.7002 3 -1.7002 4.7002v0.299805c-3.10059 65.3008 -3.10059 65.6006 -3.10059 65.6006l2.80078 160.8l0.299805 1.7002c0 2.7998 1.39941 5.2998 3.59961 6.7002
+c1.2998 0.799805 2.7998 1.39941 4.40039 1.39941c1.59961 0 3 -0.599609 4.39941 -1.39941zM184.7 273.4c3.39941 0 5.89941 -2.80078 6.09961 -6.10059l5 -140.6l-5 -67.2002c-0.299805 -3.2998 -2.7998 -5.7998 -6.09961 -5.7998c-3 0 -5.5 2.5 -5.7998 5.7998
+l-4.40039 67.2002l4.40039 140.6c0 3.2998 2.69922 6.10059 5.7998 6.10059zM561.4 210.6c43.2998 0 78.5996 -35.2998 78.5 -78.8994c0 -43.2998 -35.3008 -78.2998 -78.6006 -78.2998h-218.3c-4.7002 0.599609 -8.59961 4.19922 -8.59961 9.19922v249.7
+c0 4.7998 1.69922 7 7.7998 9.2002c15.2998 6.09961 32.5 9.40039 50.2998 9.40039c72.5 0 131.9 -55.6006 138.3 -126.4c9.5 3.90039 19.7998 6.09961 30.6006 6.09961zM264.7 270.9c4.2002 0 7.2002 -3.30078 7.5 -7.80078l3.89941 -136.699l-3.89941 -65.6006
+c0 -4.2002 -3.2998 -7.5 -7.5 -7.5s-7.5 3.2998 -7.7998 7.5l-3.30078 65.6006l3.30078 136.699c0.299805 4.5 3.59961 7.80078 7.7998 7.80078zM211.1 278.7c3.60059 0 6.40039 -3.10059 6.7002 -6.7002l4.40039 -145.3l-4.40039 -66.9004
+c-0.299805 -3.59961 -3.09961 -6.39941 -6.7002 -6.39941c-3.2998 0 -6.09961 2.7998 -6.39941 6.39941l-3.90039 66.9004l3.90039 145.3c0 3.59961 3.09961 6.7002 6.39941 6.7002zM237.8 275.3c3.90039 0 6.90039 -3 6.90039 -6.89941l4.2002 -141.7l-4.2002 -66.4004
+c0 -3.7998 -3.10059 -6.89941 -6.90039 -6.89941s-6.59961 3 -6.89941 6.89941l-3.90039 66.4004l3.90039 141.7c0 3.7998 3 6.89941 6.89941 6.89941z" />
+ <glyph glyph-name="vine" unicode="" horiz-adv-x="384"
+d="M384 193.3v-52.0996c-18.4004 -4.2002 -36.9004 -6.10059 -52.0996 -6.10059c-36.9004 -77.3994 -103 -143.8 -125.101 -156.199c-14 -7.90039 -27.0996 -8.40039 -42.7002 0.799805c-27.0996 16.2998 -129.899 100.6 -164.1 365.6h74.5
+c18.7002 -159.1 64.5 -240.7 114.8 -301.8c27.9004 27.9004 54.7998 65.0996 75.6006 106.9c-49.8008 25.2998 -80.1006 80.8994 -80.1006 145.6c0 65.5996 37.7002 115.1 102.2 115.1c114.9 0 106.2 -127.899 81.5996 -181.5c0 0 -46.3994 -9.19922 -63.5 20.5
+c3.40039 11.3008 8.2002 30.8008 8.2002 48.5c0 31.3008 -11.2998 46.6006 -28.3994 46.6006c-18.2002 0 -30.8008 -17.1006 -30.8008 -50c0.100586 -79.2002 59.4004 -118.7 129.9 -101.9z" />
+ <glyph glyph-name="codepen" unicode="" horiz-adv-x="512"
+d="M502.285 288.296c6.00098 -3.99902 9.71484 -11.1426 9.71582 -18.2852v-155.999c0 -7.14258 -3.71484 -14.2871 -9.71484 -18.2861l-234 -156.021c-8.06055 -4.95996 -16.584 -4.91504 -24.5713 0l-234 156.021c-6.00098 4 -9.71484 11.1436 -9.71484 18.2861v155.999
+c0 7.14258 3.71387 14.2861 9.71387 18.2852l234 156c8.06055 4.95996 16.584 4.91504 24.5713 0zM278 384.869v-102.572l95.4287 -63.7148l76.8574 51.4287zM234 384.869l-172.286 -114.858l76.8574 -51.4287l95.4287 63.7148v102.572zM44 228.868v-73.7139
+l55.1426 36.8564zM234 -0.84668v102.571l-95.4287 63.7158l-76.8574 -51.4297zM256 140.011l77.7148 52l-77.7148 52l-77.7148 -52zM278 -0.84668l172.286 114.857l-76.8574 51.4297l-95.4287 -63.7158v-102.571zM468 155.154v73.7139l-55.1426 -36.8574z" />
+ <glyph glyph-name="jsfiddle" unicode="" horiz-adv-x="576"
+d="M510.634 210.538c45.6885 -25.334 68.3721 -74.5605 56.832 -122.634c-12.1035 -50.4199 -55.5479 -86.6592 -108.212 -87.293c-84.0303 -1.01172 -168.079 -0.458984 -252.12 -0.480469c-30.3223 -0.00683594 -60.668 -0.492188 -90.959 0.539062
+c-48.0938 1.63672 -91.7764 35.8643 -105.607 81.4326c-14.1289 46.5508 2.18945 94.623 41.9014 124.615c2.54688 1.92383 4.86914 6.52051 4.51465 9.54492c-3.74609 31.8604 7.14453 57.6709 32.6758 76.4082c26.2822 19.2881 55.2285 21.5879 85.3311 9.16699
+c2.36621 -0.975586 4.63965 -2.17773 7.82422 -3.68555c16.5215 27.5332 38.1221 48.6523 65.4922 63.9023c92.8594 51.7402 210.954 8.31152 246.85 -91.6455c5.55762 -15.4766 6.74512 -32.6074 9.09668 -49.0947c0.716797 -5.02832 1.6543 -8.15527 6.38086 -10.7764z
+M531.741 53.6582c39.3135 48.375 22.418 117.668 -35.1426 144.497c-7.43555 3.46582 -9.72559 7.74414 -9.84766 15.8936c-1.87012 125.129 -132.78 187.063 -230.24 132.697c-26.1133 -14.5674 -46.4492 -34.8955 -60.6709 -61.2939
+c-7.59082 -14.0908 -11.9287 -7.97754 -22.1982 -2.52734c-24.6113 13.0635 -49.0469 12.6406 -72.0332 -3.08301c-21.9678 -15.0244 -31.9102 -36.6201 -26.4199 -62.9805c2.4082 -11.5703 -0.914062 -17.0635 -10.0967 -23.1367
+c-38.1895 -25.2578 -53.0879 -74.8604 -34.1855 -116.105c18.4355 -40.2295 51.3135 -59.6631 95.1748 -59.9951c0.700195 -0.00488281 163.728 -0.545898 163.728 0.154297c56.8857 0 113.778 -0.551758 170.652 0.229492
+c28.9375 0.397461 53.0498 13.2178 71.2803 35.6504zM443.952 134.157c-5.84863 -31.1572 -34.6221 -55.0967 -66.666 -55.0957c-16.9531 0.00195312 -32.0586 6.5459 -44.0791 17.7051c-27.6973 25.7139 -71.1406 74.9805 -95.9375 93.3877
+c-20.0557 14.8877 -41.9893 12.333 -60.2715 -3.78223c-49.9961 -44.0713 15.8594 -121.775 67.0625 -77.1885c4.54883 3.95996 7.84082 9.54297 12.7441 12.8447c8.18457 5.50879 20.7666 0.883789 13.168 -10.6221c-17.3574 -26.2842 -49.3301 -38.1973 -78.8623 -29.3008
+c-28.8975 8.70312 -48.8408 35.9678 -48.626 70.1787c1.22461 22.4844 12.3633 43.0596 35.4141 55.9648c22.5742 12.6377 46.3682 13.1455 66.9902 -2.47363c50.791 -38.4756 75.5781 -81.7451 107.296 -101.245c24.5586 -15.0996 54.2549 -7.36328 68.8232 17.5059
+c28.8301 49.209 -34.5918 105.016 -78.8682 63.46c-3.98828 -3.74414 -6.91699 -8.93164 -11.4092 -11.7197c-10.9756 -6.81152 -17.333 4.1123 -12.8096 10.3525c20.7031 28.5537 50.4639 40.4404 83.2715 28.2139c31.4287 -11.7139 49.1074 -44.3662 42.7598 -78.1855z
+" />
+ <glyph glyph-name="rebel" unicode="" horiz-adv-x="512"
+d="M256.5 -56c-139.3 0 -247.5 116.2 -243.3 254.1c2.7998 79.2002 43.2002 152.2 116.5 200.4c0.299805 0 1.89941 0.599609 1.09961 -0.799805c-5.7998 -5.5 -111.3 -129.8 -14.0996 -226.4c49.7998 -49.5 90 -2.5 90 -2.5c38.5 50.1006 -0.600586 125.9 -0.600586 125.9
+c-10 24.8994 -45.6992 40.0996 -45.6992 40.0996l28.7998 31.7998c24.3994 -10.5 43.2002 -38.6992 43.2002 -38.6992c0.799805 29.5996 -21.9004 61.3994 -21.9004 61.3994l44.5996 50.7002l44.3008 -50.0996c-20.5 -28.8008 -21.9004 -62.6006 -21.9004 -62.6006
+c13.7998 23 43.5 39.2998 43.5 39.2998l28.5 -31.7998c-27.4004 -8.89941 -45.4004 -39.8994 -45.4004 -39.8994c-15.7998 -28.5 -27.0996 -89.4004 0.600586 -127.301c32.3994 -44.5996 87.7002 2.80078 87.7002 2.80078c102.699 91.8994 -10.5 225 -10.5 225
+c-6.10059 5.5 0.799805 2.7998 0.799805 2.7998c50.0996 -36.5 114.6 -84.4004 116.2 -204.8c2 -145.601 -99.9004 -249.4 -242.4 -249.4z" />
+ <glyph glyph-name="empire" unicode="" horiz-adv-x="496"
+d="M287.6 393.8c-10.7998 2.2002 -22.0996 3.2998 -33.5 3.60059v18.1992c78.1006 -2.19922 146.101 -44 184.601 -106.6l-15.7998 -9.09961c-6.10059 9.69922 -12.7002 18.7998 -20.2002 27.0996l-18 -15.5c-26 29.5996 -61.4004 50.7002 -101.9 58.4004zM53.4004 125.6
+c3.89941 -10.7998 8.2998 -21.0996 13.5996 -31.0996l-15.7998 -9.09961c-17.1006 31.5996 -27.1006 68.0996 -27.1006 106.6s9.90039 75 27.1006 106.5l15.7998 -9.09961c-5.2998 -9.7002 -10 -20.2002 -13.5996 -31l22.6992 -7.7002
+c-6.39941 -18.2998 -9.69922 -38.2002 -9.69922 -58.7002s3.59961 -40.4004 10 -58.7002zM213.1 14l-4.69922 -23.7998c10.7998 -1.90039 22.1992 -3.2998 33.5 -3.60059v-18.2998c-78.1006 2.2998 -146.4 44.2998 -184.9 106.601l16 9.39941
+c5.7998 -9.7002 12.7002 -18.7998 20.2002 -27.3994l18 15.7998c26.0996 -29.6006 61.5 -50.7002 101.899 -58.7002zM93.2998 327.1c-7.5 -8.2998 -14.0996 -17.5 -20.0996 -27.1992l-15.7998 9.09961c38.5 62.5996 106.5 104.4 184.6 106.6v-18.1992
+c-11.4004 -0.300781 -22.7002 -1.40039 -33.5 -3.60059l4.7002 -23.7998c-40.5 -7.7002 -75.9004 -28.7998 -101.9 -58.4004zM402.7 56.9004c7.5 8.59961 14.3994 17.6992 20.0996 27.3994l16.1006 -9.39941c-38.5 -62.3008 -106.801 -104.4 -184.9 -106.601v18.2998
+c11.4004 0.300781 22.7002 1.7002 33.5 3.60059l-4.7002 23.7998c40.5 8 75.9004 29.0996 101.9 58.7002zM496 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM483.8 192c0 130.1 -105.7 235.8 -235.8 235.8
+s-235.8 -105.7 -235.8 -235.8s105.7 -235.8 235.8 -235.8s235.8 105.7 235.8 235.8zM444.8 298.6c17.2002 -31.5996 27.1006 -68.0996 27.1006 -106.6s-9.90039 -75 -27.1006 -106.4l-15.7998 9.10059c5.2998 10 9.7002 20.2002 13.5996 31l-23 7.7002
+c6.40039 18.2998 10 38.1992 10 58.6992s-3.2998 40.4004 -9.69922 58.7002l22.6992 7.7002c-3.59961 10.7998 -8.2998 21.2998 -13.5996 31zM261.8 120.9l13.2998 -66.7002c-8.59961 -1.7002 -17.6992 -2.7998 -27.0996 -2.7998s-18.5 1.09961 -27.0996 2.7998
+l13.2998 66.7002c-16.2998 3.2998 -30.5 11.5996 -40.7002 23.5l-51.2002 -44.8008c-11.8994 13.6006 -21.2998 29.4004 -27.0996 46.8008l64.2002 22.0996c-2.5 7.40039 -3.90039 15.2002 -3.90039 23.5s1.40039 16 3.90039 23.5l-64.5 22.0996
+c6.09961 17.5 15.5 33.2002 27.3994 46.8008l51.2002 -44.8008c10.2998 11.9004 24.4004 20.5 40.7002 23.8008l-13.2998 66.3994c8.59961 2 17.6992 2.7998 27.0996 2.7998s18.5 -0.899414 27.0996 -2.7998l-13.2998 -66.3994
+c16.2998 -3.30078 30.5 -11.9004 40.7002 -23.8008l51.2002 44.8008c11.8994 -13.6006 21.2998 -29.4004 27.3994 -46.8008l-64.5 -22.0996c2.5 -7.40039 3.90039 -15.2002 3.90039 -23.5s-1.40039 -16 -3.90039 -23.5l64.2002 -22.0996
+c-5.7998 -17.5 -15.2002 -33.2002 -27.0996 -46.8008l-51.2002 44.8008c-10.2998 -11.9004 -24.4004 -20.2002 -40.7002 -23.5z" />
+ <glyph glyph-name="git-square" unicode=""
+d="M100.59 113.76c48.5703 -3.30957 58.9502 -2.10938 58.9502 -11.9395c0 -20 -65.5498 -20.0605 -65.5498 -1.52051c0.00976562 5.08984 3.29004 9.40039 6.59961 13.46zM128.54 230.4c30.96 0 31.7598 -44.4707 -0.75 -44.4707c-33 0 -31.54 44.4707 0.75 44.4707z
+M448 368v-352c0 -26.4961 -21.5039 -48 -48 -48h-352c-26.4961 0 -48 21.5039 -48 48v352c0 26.4961 21.5039 48 48 48h352c26.4961 0 48 -21.5039 48 -48zM221 298.69c0 -14.4902 8.37988 -22.8809 22.8604 -22.8809c14.7393 0 23.1299 8.39062 23.1299 22.8809
+c0 14.4893 -8.37012 22.3096 -23.1104 22.3096c-14.4795 0 -22.8799 -7.83984 -22.8799 -22.3096zM199.18 253h-49.5498c-25 6.5498 -81.5596 4.84961 -81.5596 -46.75c0 -18.7998 9.39941 -32 21.8496 -38.1104c-15.6895 -14.3701 -23.1201 -21.1396 -23.1201 -30.7393
+c0 -6.87012 2.79004 -13.2207 11.1807 -16.7607c-8.90039 -8.39941 -14 -14.4795 -14 -25.9199c0.0195312 -20.0693 17.5498 -31.7197 63.5391 -31.7197c44.2207 0 69.8701 16.5098 69.8701 45.7305c0 36.6699 -28.2295 35.3193 -94.7695 39.3799l8.37988 13.4297
+c17 -4.74023 74.1904 -6.23047 74.1904 42.4297c0 11.6904 -4.83008 19.8203 -9.40039 25.6699l23.3799 1.78027zM283.52 143.16l-13 1.78027c-3.81934 0.509766 -4.06934 1 -4.06934 5.08984v105.45h-52.6006l-2.79004 -20.5703c15.75 -5.5498 17 -4.86035 17 -10.1699
+v-74.7402c0 -5.62012 -0.30957 -4.58008 -17 -6.87012v-20.0596h72.4209zM384 133l-6.87012 22.3701c-40.9297 -15.3701 -37.8496 12.4102 -37.8496 16.7295v60.7207h37.8496v25.4102h-35.8203c-2.86914 0 -2 -2.52051 -2 38.6299h-24.1797
+c-2.79004 -27.7002 -11.6797 -38.8799 -34 -41.4199v-22.6201c20.4697 0 19.8203 0.849609 19.8203 -2.54004v-66.5703c0 -28.7197 11.4297 -40.9102 41.6699 -40.9102c14.4502 0 30.4502 4.83008 41.3799 10.2002z" />
+ <glyph glyph-name="git" unicode="" horiz-adv-x="512"
+d="M216.29 289.61l0.0400391 -34.5508l-37.4102 -2.83984c7.27051 -9.35938 15 -22.3701 15 -41.0693c0 -77.8906 -91.4297 -75.4707 -118.7 -67.8906l-13.4297 -21.5498c106.47 -6.5 151.63 -4.33984 151.63 -63c0 -46.7598 -41.04 -73.1797 -111.79 -73.1797
+c-73.5801 0 -101.63 18.71 -101.63 50.8193c0 18.3008 8.12988 28.04 22.4004 41.4502c-13.4199 5.66992 -17.8906 15.8105 -17.8906 26.8105c0 15.3594 11.9004 26.21 37 49.21c-20 9.76953 -35 30.9102 -35 61c0 82.5498 90.4902 85.2793 130.49 74.79h79.29z
+M152.87 47.71c0 15.7402 -16.6104 13.8096 -94.3203 19.1104c-5.2998 -6.54004 -10.5693 -13.4004 -10.5693 -21.54c0 -29.6699 104.89 -29.6299 104.89 2.42969zM102.06 182.29c52.0205 0 50.7402 71.1602 1.2002 71.1602c-51.6602 0 -54 -71.1602 -1.2002 -71.1602z
+M235.36 81.7803v32.0996c26.75 3.66016 27.2393 2 27.2393 11v119.51c0 8.5 -2.0498 7.37988 -27.2393 16.2607l4.46973 32.9199h84.1699v-168.71c0 -6.51074 0.400391 -7.32031 6.50977 -8.14062l20.7305 -2.83984v-32.0996h-115.88zM287.81 326.09
+c-23.1699 0 -36.5898 13.4297 -36.5898 36.6104c0 23.1797 13.4199 35.7695 36.5898 35.7695c23.5801 0 37 -12.6201 37 -35.7695c0 -23.1504 -13.4199 -36.6104 -37 -36.6104zM512 97.54c-17.4902 -8.53027 -43.0996 -16.2598 -66.2803 -16.2598
+c-48.3799 0 -66.6699 19.5 -66.6699 65.46v106.51c0 5.41992 1.0498 4.05957 -31.71 4.05957v36.1904c35.7803 4.07031 50 22 54.4697 66.2695h38.6309c0 -65.8291 -1.34082 -61.8096 3.25977 -61.8096h57.2998v-40.6504h-60.5596v-97.1494
+c0 -6.91992 -4.9209 -51.4102 60.5693 -26.8398z" />
+ <glyph glyph-name="hacker-news" unicode=""
+d="M0 416h448v-448h-448v448zM21.2002 218.8h-0.200195c0.0996094 0.100586 0.200195 0.299805 0.299805 0.400391c0 -0.100586 0 -0.299805 -0.0996094 -0.400391zM239.2 164.9l80.7998 155.1h-34.7998c-54.7998 -101.2 -48.2998 -98.5996 -60.6006 -125.6
+c-10.0996 24.3994 -6.7998 27.2998 -59.2998 125.6h-37.2998l79.7998 -153.3v-102.7h31.4004v100.9z" />
+ <glyph glyph-name="tencent-weibo" unicode="" horiz-adv-x="384"
+d="M72.2998 -47.7998c1.40039 -19.9004 -27.5996 -22.2002 -29.7002 -2.90039c-11.5996 129.9 31.1006 239.5 101.4 313.2c-15.5996 34 9.2002 77.0996 50.5996 77.0996c30.3008 0 55.1006 -24.5996 55.1006 -55.0996c0 -44 -49.5 -70.7998 -86.9004 -45.0996
+c-65.7002 -71.3008 -101.399 -169.801 -90.5 -287.2zM192 447.9c92 0 166.6 -74.6006 166.6 -166.5c0 -102.301 -93.2998 -185.5 -204 -162.301c-19 4.7002 -12.5 33.2002 6.60059 29.1006c80.7998 -20.7998 167.7 42.2998 167.7 133.1c0 75.5 -61.5 136.9 -136.9 136.9
+c-101 0 -168.3 -106.601 -122 -199.2c9 -17.9004 -17.5996 -30.7998 -26.2998 -13.4004c-56 108.101 22.3994 242.301 148.3 242.301z" />
+ <glyph glyph-name="qq" unicode=""
+d="M433.754 27.5547c-11.5264 -1.39258 -44.8604 52.7412 -44.8604 52.7412c0 -31.3447 -16.1357 -72.2471 -51.0508 -101.786c16.8418 -5.19141 54.8428 -19.167 45.8037 -34.4209c-7.31641 -12.3428 -125.511 -7.88086 -159.633 -4.03711
+c-34.1221 -3.84375 -152.315 -8.30566 -159.632 4.03711c-9.04492 15.25 28.918 29.2139 45.7832 34.415c-34.9199 29.5391 -51.0586 70.4453 -51.0586 101.792c0 0 -33.334 -54.1338 -44.8594 -52.7412c-5.37012 0.650391 -12.4238 29.6445 9.34668 99.7041
+c10.2617 33.0244 21.9951 60.4785 40.1445 105.779c-3.05566 116.898 45.2441 214.956 160.262 214.962c113.737 -0.00585938 163.156 -96.1328 160.264 -214.963c18.1182 -45.2227 29.9121 -72.8506 40.1445 -105.778c21.7676 -70.0596 14.7158 -99.0527 9.3457 -99.7041z
+" />
+ <glyph glyph-name="weixin" unicode="" horiz-adv-x="576"
+d="M385.2 280.4c-92.4004 0 -165.4 -69.1006 -165.3 -154c0 -14.2002 2.19922 -27.9004 6.19922 -40.8008c-6.19922 -0.5 -12.0996 -0.799805 -18.2998 -0.799805c-24.3994 0 -43.7998 4.90039 -68.2002 9.7002l-68 -34.0996l19.3008 58.5996
+c-48.6006 34.0996 -77.9004 78.2002 -77.9004 131.6c0 92.6006 87.5 165.4 194.7 165.4c95.5996 0 179.7 -58.2998 196.3 -136.7c-6.2002 0.799805 -12.4004 1.10059 -18.7998 1.10059zM280.7 333.3c-14.7002 0 -29.2002 -9.7002 -29.2998 -24.3994
+c0 -14.5 14.5 -24.2002 29.2998 -24.2002c14.5 0 24.2002 9.7002 24.2002 24.2002c0 14.6992 -9.7002 24.3994 -24.2002 24.3994zM144.3 284.7c14.7998 0 24.4004 9.59961 24.4004 24.2002c0 14.6992 -9.60059 24.3994 -24.4004 24.3994
+c-14.5 0 -29.2998 -9.59961 -29.2998 -24.3994c0 -14.5 14.7998 -24.2002 29.2998 -24.2002zM563 128.6c0 -43.7998 -29 -82.6992 -68.2002 -112.1l14.7998 -48.5996l-53.3994 29.2998c-19.7002 -4.7998 -39.2998 -9.90039 -58.6006 -9.90039
+c-92.5996 0 -165.399 63.4004 -165.399 141.3c0 77.9004 72.7002 141.301 165.399 141.301c87.5 0 165.4 -63.4004 165.4 -141.301zM343.9 153.1c14.6992 0 24.3994 9.60059 24.3994 19.6006c0 9.59961 -9.59961 19.2998 -24.3994 19.2998
+c-9.60059 0 -19.3008 -9.59961 -19.3008 -19.2998c0 -9.90039 9.60059 -19.6006 19.3008 -19.6006zM451 153.1c14.5 0 24.5 9.60059 24.4004 19.6006c0 9.59961 -9.90039 19.2998 -24.4004 19.2998c-9.59961 0 -19.2998 -9.59961 -19.2998 -19.2998
+c0 -9.90039 9.59961 -19.6006 19.2998 -19.6006z" />
+ <glyph glyph-name="slideshare" unicode="" horiz-adv-x="512"
+d="M187.7 294.3c34 0 61.7002 -25.7002 61.7002 -57.7002c0 -31.6992 -27.7002 -57.6992 -61.7002 -57.6992s-61.7002 26 -61.7002 57.6992c0 32 27.7002 57.7002 61.7002 57.7002zM331.1 294.3c34.3008 0 61.8008 -25.7002 61.7002 -57.7002
+c0 -31.6992 -27.3994 -57.6992 -61.7002 -57.6992c-34 0 -61.6992 26 -61.6992 57.6992c0 32 27.6992 57.7002 61.6992 57.7002zM487.7 204.3c15.2002 10.5 25.2002 -4 16.0996 -17.7998c-18.2998 -22.5996 -53.2002 -50.2998 -106.3 -72
+c56.2998 -191.7 -137.4 -222.3 -134.3 -124c0 0.700195 -0.299805 53.7998 -0.299805 93.5c-4.30078 0.799805 -8.60059 2 -13.7002 3.09961c0 -40 -0.299805 -95.8994 -0.299805 -96.5996c3.09961 -98.2002 -190.601 -67.5996 -134.301 124.1
+c-53.1992 21.7002 -88 49.4004 -106.3 72c-9.09961 13.7002 0.900391 28.3008 16 17.7002c2 -1.39941 4.2998 -2.89941 6.2998 -4.2998v198.3c0 27.4004 20.6006 49.7002 46 49.7002h359.101c25.3994 0 46 -22.2998 46 -49.7002v-198.3zM457.2 185.1h0.0996094v190.601
+c0 32.7998 -10.5996 45.7002 -40.8994 45.7002h-317.7c-31.7002 0 -40.6006 -10.8008 -40.6006 -45.7002v-192.4c67.7002 -35.3994 125.7 -29.0996 157.4 -28c13.4004 0.299805 22 -2.2998 27.0996 -7.7002c1.7002 -1.59961 10 -9.39941 20.3008 -17.0996
+c1.09961 15.7998 10 25.7998 33.6992 24.9004c32.3008 -1.40039 91.7002 -7.7002 160.601 29.6992z" />
+ <glyph glyph-name="twitch" unicode=""
+d="M40.0996 416h397.9v-274.2l-117 -117h-87l-56.7998 -56.7998h-60.2002v56.7998h-107v314.3zM397.9 161.9v214h-321v-280.9h90.2998v-56.7998l56.7998 56.7998h107zM331 299v-116.9h-40.0996v116.9h40.0996zM224 299v-116.9h-40.0996v116.9h40.0996z" />
+ <glyph glyph-name="yelp" unicode="" horiz-adv-x="384"
+d="M42.9004 207.68l99.6191 -48.6094c19.2002 -9.40039 16.2002 -37.5107 -4.5 -42.71l-107.52 -26.8105c-1.51074 -0.379883 -4 -0.6875 -5.55762 -0.6875c-11.2676 0 -21.415 9.08887 -22.6523 20.2881c-0.708984 6.18164 -1.28516 16.25 -1.28516 22.4727
+c0 17.8105 4.60742 45.9658 10.2852 62.8467c2.88574 8.56836 12.5664 15.5215 21.6074 15.5215c2.9082 0 7.38867 -1.03516 10.0029 -2.31152zM86.9004 -31.5703c-5.48535 3.75195 -9.92773 12.1904 -9.92773 18.8359c0 4.8291 2.61914 11.6631 5.84766 15.2539
+l74.21 82.4004c14.3096 15.8105 40.5098 5.2002 39.8096 -16.0996l-3.89941 -110.82c-0.412109 -12.1484 -10.6123 -22.0078 -22.7676 -22.0078c-1.07129 0 -2.79688 0.146484 -3.85254 0.328125c-23.8691 4.04199 -59.4492 18.4277 -79.4199 32.1094zM232.24 78.3496
+c-11.2998 18.1104 6.2002 40.4102 26.5098 33.9102l105.42 -34.2598c8.69043 -2.88965 15.7422 -12.667 15.7422 -21.8252c0 -2.8125 -0.963867 -7.16504 -2.15234 -9.71484c-10.418 -21.8799 -34.0322 -52.1689 -52.71 -67.6104
+c-3.50586 -2.88867 -10.0391 -5.2334 -14.582 -5.2334c-6.99707 0 -15.6963 4.80859 -19.418 10.7334zM380.57 210.58c1.04688 -2.41602 1.93652 -6.5127 1.93652 -9.14551c0 -9.49805 -7.39551 -19.3828 -16.5068 -22.0645l-106.64 -30.5098
+c-20.5 -5.90039 -37.1006 17.0098 -25.2002 34.71l62 91.9199c3.75 5.55664 12.2354 10.0654 18.9385 10.0654c4.74512 0 11.4932 -2.53809 15.0615 -5.66602c18.166 -16.0361 40.75 -47.0869 50.4102 -69.3096zM62.1104 417.82
+c29.4697 14.0293 79.793 27.5137 112.33 30.0996c0.503906 0.0410156 1.32422 0.0742188 1.83008 0.0742188c12.5146 0 22.6709 -10.1562 22.6709 -22.6699c0 -0.0566406 -0.000976562 -0.147461 -0.000976562 -0.204102v-208.34
+c0 -23.2998 -30.9102 -31.6006 -42.6104 -11.4004l-104.12 180.44c-1.68164 2.92188 -3.0459 8.0293 -3.0459 11.4014c0 7.93066 5.7998 17.1592 12.9463 20.5986z" />
+ <glyph glyph-name="paypal" unicode="" horiz-adv-x="384"
+d="M111.4 152.1c-3.5 -19.1992 -17.4004 -108.699 -21.5 -134c-0.300781 -1.7998 -1 -2.5 -3 -2.5h-74.6006c-7.59961 0 -13.0996 6.60059 -12.0996 13.9004l58.5996 371.9c1.5 9.59961 10.1006 16.8994 20 16.8994c152.3 0 165.101 3.7002 204 -11.3994
+c60.1006 -23.3008 65.6006 -79.5 44 -140.301c-21.5 -62.5996 -72.5 -89.5 -140.1 -90.2998c-43.4004 -0.700195 -69.5 7 -75.2998 -24.2002zM357.1 296c28.4004 -21.2002 30.3008 -57.7998 23.8008 -92.5996c-16.5 -83.5 -71.9004 -112.301 -142.9 -112.301
+c-15 0 -24.7002 2.30078 -29.2998 -19.6992c-15.5 -97.4004 -13.7002 -85.9004 -14.4004 -91.3008c-1.7002 -8.59961 -8.7998 -14.8994 -17.3994 -14.8994h-63.5c-7.10059 0 -11.6006 5.7998 -10.6006 12.8994c0 0 4.5 29.3008 27.1006 169.7
+c0.799805 6.10059 4.7998 9.40039 10.8994 9.40039c54 0 164.601 -9.90039 204.5 103.899c3.7002 11.1006 6.7998 22.2002 8.7998 33.6006c0.5 3.09961 1.2002 2.59961 3 1.2998z" />
+ <glyph glyph-name="google-wallet" unicode=""
+d="M156.8 321.2c37.6006 -60.6006 64.2002 -113.101 84.2998 -162.5c-8.2998 -33.7998 -18.7998 -66.5 -31.2998 -98.2998c-13.2002 52.2998 -26.5 101.3 -56 148.5c6.5 36.3994 2.2998 73.5996 3 112.3zM109.3 248c5 0 10 -2.5 13 -6.5
+c43.7998 -59.7998 66.2998 -123.8 82.5 -193.5h-103.5c-20 69.5 -49.5 133 -91.7002 187.3c-4 5.2002 0 12.7002 6.5 12.7002h93.2002zM157.1 336h108.7c74.7998 -103 131.2 -230 143.2 -368h-113.7c-8.2002 133.5 -69.7002 260 -138.2 368zM408.9 404.5
+c19 -67.5 31.0996 -139 31.0996 -212.6c0 -69.5 -9.5 -142.5 -25.2998 -203c-10.9004 92.5 -42.4004 184.6 -90.6006 270.8c-4.19922 50.5 -13.2998 99.5 -26.5 146c-1.19922 5.2998 2.5 10.2998 7.80078 10.2998h88.2998c7 0 13.3994 -4.7002 15.2002 -11.5z" />
+ <glyph glyph-name="cc-visa" unicode="" horiz-adv-x="576"
+d="M470.1 216.7c0 0 7.60059 -37.2002 9.30078 -45h-33.4004c3.2998 8.89941 16 43.5 16 43.5c-0.200195 -0.299805 3.2998 9.09961 5.2998 14.8994zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480
+c26.5 0 48 -21.5 48 -48zM152.5 116.8l63.2002 155.2h-42.5l-39.2998 -106l-4.30078 21.5l-14 71.4004c-2.2998 9.89941 -9.39941 12.6992 -18.1992 13.0996h-64.7002l-0.700195 -3.09961c15.7998 -4 29.9004 -9.80078 42.2002 -17.1006l35.7998 -135h42.5zM246.9 116.6
+l25.1992 155.4h-40.1992l-25.1006 -155.4h40.1006zM386.8 167.4c0.200195 17.6992 -10.5996 31.1992 -33.7002 42.2998c-14.0996 7.09961 -22.6992 11.8994 -22.6992 19.2002c0.199219 6.59961 7.2998 13.3994 23.0996 13.3994
+c13.0996 0.299805 22.7002 -2.7998 29.9004 -5.89941l3.59961 -1.7002l5.5 33.5996c-7.90039 3.10059 -20.5 6.60059 -36 6.60059c-39.7002 0 -67.5996 -21.2002 -67.7998 -51.4004c-0.299805 -22.2998 20 -34.7002 35.2002 -42.2002
+c15.5 -7.59961 20.7998 -12.5996 20.7998 -19.2998c-0.200195 -10.4004 -12.6006 -15.2002 -24.1006 -15.2002c-16 0 -24.5996 2.5 -37.6992 8.2998l-5.30078 2.5l-5.59961 -34.8994c9.40039 -4.2998 26.7998 -8.10059 44.7998 -8.2998
+c42.2002 -0.100586 69.7002 20.7998 70 53zM528 116.6l-32.4004 155.4h-31.0996c-9.59961 0 -16.9004 -2.7998 -21 -12.9004l-59.7002 -142.5h42.2002s6.90039 19.2002 8.40039 23.3008h51.5996c1.2002 -5.5 4.7998 -23.3008 4.7998 -23.3008h37.2002z" />
+ <glyph glyph-name="cc-mastercard" unicode="" horiz-adv-x="576"
+d="M482.9 37.7002c0 -6.7998 -4.60059 -11.7002 -11.2002 -11.7002c-6.7998 0 -11.2002 5.2002 -11.2002 11.7002s4.40039 11.7002 11.2002 11.7002c6.59961 0 11.2002 -5.2002 11.2002 -11.7002zM172.1 49.4004c6.5 0 10.8008 -5.2002 10.9004 -11.7002
+c0 -6.7998 -4.40039 -11.7002 -10.9004 -11.7002c-7.09961 0 -11.1992 5.2002 -11.1992 11.7002s4.09961 11.7002 11.1992 11.7002zM289.6 49.7002c5.2002 0 8.7002 -3 9.60059 -8.7002h-19.1006c0.800781 5.2002 4.10059 8.7002 9.5 8.7002zM397.4 49.4004
+c6.7998 0 11.1992 -5.2002 11.1992 -11.7002c0 -6.7998 -4.39941 -11.7002 -11.1992 -11.7002c-6.80078 0 -10.9004 5.2002 -10.9004 11.7002s4.09961 11.7002 10.9004 11.7002zM503.3 23.2998c0 -0.299805 0.299805 -0.5 0.299805 -1.09961
+c0 -0.299805 -0.299805 -0.5 -0.299805 -1.10059c-0.299805 -0.299805 -0.299805 -0.5 -0.5 -0.799805c-0.299805 -0.299805 -0.5 -0.5 -1.09961 -0.5c-0.299805 -0.299805 -0.5 -0.299805 -1.10059 -0.299805c-0.299805 0 -0.5 0 -1.09961 0.299805
+c-0.299805 0 -0.5 0.299805 -0.799805 0.5c-0.299805 0.299805 -0.5 0.5 -0.5 0.799805c-0.299805 0.5 -0.299805 0.800781 -0.299805 1.10059c0 0.5 0 0.799805 0.299805 1.09961c0 0.5 0.299805 0.799805 0.5 1.10059c0.299805 0.299805 0.5 0.299805 0.799805 0.5
+c0.5 0.299805 0.799805 0.299805 1.09961 0.299805c0.5 0 0.800781 0 1.10059 -0.299805c0.5 -0.300781 0.799805 -0.300781 1.09961 -0.5c0.299805 -0.200195 0.200195 -0.600586 0.5 -1.10059zM501.1 21.9004c0.5 0 0.5 0.299805 0.800781 0.299805
+c0.299805 0.299805 0.299805 0.5 0.299805 0.799805s0 0.5 -0.299805 0.799805c-0.300781 0 -0.5 0.299805 -1.10059 0.299805h-1.59961v-3.5h0.799805v1.40039h0.299805l1.10059 -1.40039h0.799805zM576 367v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48
+v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM64 227.4c0 -76.5 62.0996 -138.5 138.5 -138.5c27.2002 0 53.9004 8.19922 76.5 23.0996c-72.9004 59.2998 -72.4004 171.2 0 230.5c-22.5996 15 -49.2998 23.0996 -76.5 23.0996
+c-76.4004 0.100586 -138.5 -62 -138.5 -138.199zM288 118.6c70.5 55 70.2002 162.2 0 217.5c-70.2002 -55.2998 -70.5 -162.6 0 -217.5zM145.7 42.2998c0 8.7002 -5.7002 14.4004 -14.7002 14.7002c-4.59961 0 -9.5 -1.40039 -12.7998 -6.5
+c-2.40039 4.09961 -6.5 6.5 -12.2002 6.5c-3.7998 0 -7.59961 -1.40039 -10.5996 -5.40039v4.40039h-8.2002v-36.7002h8.2002c0 18.9004 -2.5 30.2002 9 30.2002c10.1992 0 8.19922 -10.2002 8.19922 -30.2002h7.90039c0 18.2998 -2.5 30.2002 9 30.2002
+c10.2002 0 8.2002 -10 8.2002 -30.2002h8.2002v23h-0.200195zM190.6 56h-7.89941v-4.40039c-2.7002 3.30078 -6.5 5.40039 -11.7002 5.40039c-10.2998 0 -18.2002 -8.2002 -18.2002 -19.2998c0 -11.2002 7.90039 -19.2998 18.2002 -19.2998
+c5.2002 0 9 1.89941 11.7002 5.39941v-4.59961h7.89941v36.7998zM231.1 30.4004c0 15 -22.8994 8.19922 -22.8994 15.1992c0 5.7002 11.8994 4.80078 18.5 1.10059l3.2998 6.5c-9.40039 6.09961 -30.2002 6 -30.2002 -8.2002c0 -14.2998 22.9004 -8.2998 22.9004 -15
+c0 -6.2998 -13.5 -5.7998 -20.7002 -0.799805l-3.5 -6.2998c11.2002 -7.60059 32.5996 -6 32.5996 7.5zM266.5 21.0996l-2.2002 6.80078c-3.7998 -2.10059 -12.2002 -4.40039 -12.2002 4.09961v16.5996h13.1006v7.40039h-13.1006v11.2002h-8.19922v-11.2002h-7.60059
+v-7.2998h7.60059v-16.7002c0 -17.5996 17.2998 -14.4004 22.5996 -10.9004zM279.8 34.5h27.5c0 16.2002 -7.39941 22.5996 -17.3994 22.5996c-10.6006 0 -18.2002 -7.89941 -18.2002 -19.2998c0 -20.5 22.5996 -23.8994 33.7998 -14.2002l-3.7998 6
+c-7.7998 -6.39941 -19.6006 -5.7998 -21.9004 4.90039zM338.9 56c-4.60059 2 -11.6006 1.7998 -15.2002 -4.40039v4.40039h-8.2002v-36.7002h8.2002v20.7002c0 11.5996 9.5 10.0996 12.7998 8.40039zM349.5 37.7002c0 11.3994 11.5996 15.0996 20.7002 8.39941l3.7998 6.5
+c-11.5996 9.10059 -32.7002 4.10059 -32.7002 -15c0 -19.7998 22.4004 -23.7998 32.7002 -15l-3.7998 6.5c-9.2002 -6.5 -20.7002 -2.59961 -20.7002 8.60059zM416.2 56h-8.2002v-4.40039c-8.2998 11 -29.9004 4.80078 -29.9004 -13.8994
+c0 -19.2002 22.4004 -24.7002 29.9004 -13.9004v-4.59961h8.2002v36.7998zM449.9 56c-2.40039 1.2002 -11 2.90039 -15.2002 -4.40039v4.40039h-7.90039v-36.7002h7.90039v20.7002c0 11 9 10.2998 12.7998 8.40039zM490.2 70.9004h-7.90039v-19.3008
+c-8.2002 10.9004 -29.8994 5.10059 -29.8994 -13.8994c0 -19.4004 22.5 -24.6006 29.8994 -13.9004v-4.59961h7.90039v51.7002zM497.8 146v-4.59961h0.799805v4.59961h1.90039v0.799805h-4.59961v-0.799805h1.89941zM504.4 22.2002c0 0.5 0 1.09961 -0.300781 1.59961
+c-0.299805 0.299805 -0.5 0.799805 -0.799805 1.10059c-0.299805 0.299805 -0.799805 0.5 -1.09961 0.799805c-0.5 0 -1.10059 0.299805 -1.60059 0.299805c-0.299805 0 -0.799805 -0.299805 -1.39941 -0.299805c-0.5 -0.299805 -0.799805 -0.5 -1.10059 -0.799805
+c-0.5 -0.300781 -0.799805 -0.800781 -0.799805 -1.10059c-0.299805 -0.5 -0.299805 -1.09961 -0.299805 -1.59961c0 -0.299805 0 -0.799805 0.299805 -1.40039c0 -0.299805 0.299805 -0.799805 0.799805 -1.09961c0.300781 -0.299805 0.5 -0.5 1.10059 -0.799805
+c0.5 -0.300781 1.09961 -0.300781 1.39941 -0.300781c0.5 0 1.10059 0 1.60059 0.300781c0.299805 0.299805 0.799805 0.5 1.09961 0.799805s0.5 0.799805 0.799805 1.09961c0.300781 0.600586 0.300781 1.10059 0.300781 1.40039zM507.6 146.9h-1.39941l-1.60059 -3.5
+l-1.59961 3.5h-1.40039v-5.40039h0.800781v4.09961l1.59961 -3.5h1.09961l1.40039 3.5v-4.09961h1.09961v5.40039zM512 227.4c0 76.1992 -62.0996 138.3 -138.5 138.3c-27.2002 0 -53.9004 -8.2002 -76.5 -23.1006c72.0996 -59.2998 73.2002 -171.5 0 -230.5
+c22.5996 -15 49.5 -23.0996 76.5 -23.0996c76.4004 -0.0996094 138.5 61.9004 138.5 138.4z" />
+ <glyph glyph-name="cc-discover" unicode="" horiz-adv-x="576"
+d="M520.4 251.9c0 -8.40039 -5.5 -12.8008 -15.8008 -12.8008h-4.69922v24.9004h4.89941c10.1006 0 15.6006 -4.2002 15.6006 -12.0996zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480z
+M483.9 277.1v-82h16v32.8008h2.19922l22.2002 -32.8008h19.6006l-25.8008 34.4004c12.1006 2.5 18.7002 10.5996 18.7002 23.2002c0 28.5 -30.2998 24.3994 -52.8994 24.3994zM428 277v-82h45.2998v13.7998h-29.2998v22.2002h28.2998v13.7998h-28.2998v18.2002h29.2998v14
+h-45.2998zM359.3 277h-17.5l35 -84.2002h8.60059l35.5 84.2002h-17.5l-22.2002 -55.2002zM303.4 280c-24.6006 0 -44.6006 -19.9004 -44.6006 -44.5996c0 -24.6006 19.9004 -44.6006 44.6006 -44.6006c24.5996 0 44.5996 19.9004 44.5996 44.6006
+c0 24.5996 -19.9004 44.5996 -44.5996 44.5996zM254.1 273.9c-30.1992 15 -63.2998 -6.80078 -63.2998 -38c0 -32.5 33.6006 -52.5 63.2998 -38.2002v19c-19.2998 -19.2998 -46.7998 -5.7998 -46.7998 19.2002c0 23.6992 26.7002 39.0996 46.7998 19v19zM156.9 207.6
+c-7.60059 0 -13.8008 3.7002 -17.5 10.8008l-10.3008 -9.90039c17.8008 -26.0996 56.6006 -18.2002 56.6006 11.2998c0 13.1006 -5.40039 19 -23.6006 25.6006c-9.59961 3.39941 -12.2998 5.89941 -12.2998 10.2998c0 8.7002 14.5 14.0996 24.9004 2.5l8.39941 10.7998
+c-19.0996 17.0996 -49.6992 8.90039 -49.6992 -14.2998c0 -11.2998 5.19922 -17.2002 20.1992 -22.7002c25.7002 -9.09961 14.7002 -24.4004 3.30078 -24.4004zM55.4004 195c30.8994 0 44.0996 22.4004 44.0996 40.9004c0 24.0996 -18 41.0996 -44.0996 41.0996h-23.4004
+v-82h23.4004zM122.9 195v82h-16v-82h16zM544 15v145c-33.2998 -20.7998 -226.4 -124.4 -416 -160h401c8.2002 0 15 6.7998 15 15zM74.0996 256.4c5.7002 -5 8.90039 -12.6006 8.90039 -20.5c0 -7.90039 -3.2002 -15.5 -8.90039 -20.7002
+c-4.89941 -4.40039 -11.5996 -6.40039 -21.8994 -6.40039h-4.2002v54.2002h4.2002c10.2998 0 16.7002 -1.7002 21.8994 -6.59961z" />
+ <glyph glyph-name="cc-amex" unicode="" horiz-adv-x="576"
+d="M325.1 280.2c0.100586 -8 -4.2998 -15.7002 -11.6992 -18.7002c9.5 -3.2998 11 -9.2002 11 -18.4004v-13.5h-16.6006c-0.299805 14.8008 3.60059 25.1006 -14.7998 25.1006h-18v-25.1006h-16.4004v69.3008l39.1006 -0.300781c13.2998 0 27.3994 -2 27.3994 -18.3994z
+M295.7 268.9c5.7002 0 11 1.2998 11 7.89941c0 6.40039 -5.60059 7.40039 -10.7002 7.40039h-21v-15.2998h20.7002zM279 179.4c15.5996 0 27.9004 -5.40039 27.9004 -22.7002c0 -27.9004 -30.4004 -23.2998 -49.3008 -23.2998l-0.0996094 -23.3008h-32.2002l-20.3994 23
+l-21.3008 -23h-65.3994l0.0996094 69.3008h66.5l20.5 -22.8008l21 22.8008h52.7002zM175.2 124.7l19 20.2002l-17.9004 20.1992h-41.7002v-12.5h36.3008v-14.0996h-36.3008v-13.7998h40.6006zM241 116.5v55.5l-25.2998 -27.4004zM278.8 147.5
+c5.90039 0 10.5 2.7998 10.5 9.2002c0 6.09961 -4.59961 8.39941 -10.2002 8.39941h-21.5v-17.5996h21.2002zM247.2 284.2h-38.9004v-12.5h37.7998v-14.1006h-37.7998v-13.7998h38.9004v-14.2998h-55.5v69.2998h55.5v-14.5996zM576 192.6h-0.200195h0.200195zM381.4 160.7
+c-0.100586 -7.60059 -4.2002 -15.2998 -11.9004 -18.4004c9.2002 -3.2998 11 -9.5 11 -18.3994l-0.0996094 -13.8008h-16.6006l0.100586 11.5c0 11.8008 -3.80078 13.8008 -14.8008 13.8008h-17.5996l-0.0996094 -25.3008h-16.6006l0.100586 69.3008h39.3994
+c13 0 27.1006 -2.30078 27.1006 -18.7002zM352.2 149.5c5.59961 0 11 1.2998 11 8.2002c0 6.39941 -5.60059 7.39941 -10.7002 7.39941h-21v-15.5996h20.7002zM179.4 229.5h-16.8008v54.2002l-24 -54.2002h-14.5996l-24 54.2002v-54.2002h-33.7998l-6.40039 15.2998h-34.5
+l-6.39941 -15.2998h-17.9004l29.7002 69.2998h24.5l28.0996 -65.7002v65.7002h27.1006l21.6992 -47l19.7002 47h27.6006v-69.2998zM31.2002 259.2h22.7002l-11.5 27.5996zM508.6 100.3c34.8008 0 54.8008 -2.2002 67.5 6.10059v-90.4004c0 -26.5 -21.5 -48 -48 -48h-480.1
+c-26.5 0 -48 21.5 -48 48v203.7h26.5996c4.2002 10.0996 2.2002 5.2998 6.40039 15.2998h19.2002c4.2002 -10 2.2002 -5.2002 6.39941 -15.2998h52.9004v11.3994c2.2002 -5 1.09961 -2.5 5.09961 -11.3994h29.5c2.40039 5.5 2.60059 5.7998 5.10059 11.3994v-11.3994h135.5
+v25.0996c6.39941 0 8 0.100586 9.7998 -0.200195c0 0 -0.200195 -10.8994 0.0996094 -24.7998h66.5v8.90039c7.40039 -5.90039 17.4004 -8.90039 29.7002 -8.90039h26.7998c4.2002 10.1006 2.2002 5.2998 6.40039 15.2998h19c6.5 -15 0.200195 -0.5 6.59961 -15.2998
+h52.8008v21.9004c11.7998 -19.7002 7.7998 -12.9004 13.1992 -21.9004h41.6006v92h-39.9004v-18.3994c-12.2002 20.1992 -6.2998 10.3994 -11.2002 18.3994h-43.2998v-20.5996c-6.2002 14.5996 -4.59961 10.7998 -8.7998 20.5996h-32.4004
+c-0.399414 0 -2.2998 -0.200195 -2.2998 0.299805h-27.5996c-12.7998 0 -23.1006 -3.19922 -30.7002 -9.2998v9.2998h-39.9004v-5.2998c-10.7998 6.10059 -20.6992 5.10059 -64.3994 5.2998c-0.100586 0 -11.6006 0.100586 -11.6006 0h-103
+c-2.5 -6.09961 -6.7998 -16.3994 -12.5996 -30c-2.7998 6 -11 23.8008 -13.9004 30h-46v-21.0996c-7.39941 17.4004 -4.69922 11 -9 21.0996h-39.6992c-3.40039 -7.89941 -13.7002 -32 -23.1006 -53.8994v109.8c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48v-175.4
+c-37.7002 0.200195 -44 0.900391 -54.2998 -5v5c-45.2998 0 -53.5 1.7002 -64.9004 -5.19922v5.19922h-78.1992v-5.09961c-11.4004 6.5 -21.4004 5.09961 -75.7002 5.09961v-5.59961c-6.2998 3.7002 -14.5 5.59961 -24.2998 5.59961h-58
+c-3.5 -3.7998 -12.5 -13.6992 -15.7002 -17.1992c-12.7002 14.0996 -10.5 11.5996 -15.5 17.1992h-83.1006v-92.2998h82c3.30078 3.5 12.9004 13.9004 16.1006 17.4004c12.7002 -14.2998 10.2998 -11.7002 15.3994 -17.4004h48.9004
+c0 14.7002 0.0996094 8.2998 0.0996094 23c11.5 -0.200195 24.3008 0.200195 34.3008 6.2002c0 -13.9004 -0.100586 -17.0996 -0.100586 -29.2002h39.6006c0 18.5 0.0996094 7.40039 0.0996094 25.2998c6.2002 0 7.7002 0 9.40039 -0.0996094
+c0.0996094 -1.2998 0 0 0 -25.2002c152.8 0 145.899 -1.09961 156.699 4.5v-4.5zM544.9 164.8c-4.60059 0 -9.2002 -0.700195 -9.2002 -6.5c0 -12.2002 28.7998 0.299805 39.2998 -13.5v-25.7998c-4.90039 -7.09961 -14.0996 -8.90039 -22.5 -8.90039h-32l0.0996094 14.8008
+h32c4.10059 0 8.40039 1.2998 8.40039 6.39941c0 14.6006 -42.7002 -5.59961 -42.7002 27.4004c0 14.0996 11 20.7002 23.7998 20.7002h32.9004v-14.6006h-30.0996zM487.9 125c4.09961 0 8.69922 1 8.7998 6.40039c0 14.8994 -42.7002 -5.60059 -42.7002 27.3994
+c0 14.1006 10.7002 20.7002 23.5 20.7002h33.2002v-14.5996h-30.4004c-4.2998 0 -9.2002 -0.800781 -9.2002 -6.40039c0 -15.0996 42.9004 6.90039 42.9004 -26.2998c0 -16.4004 -11.4004 -22 -26.2002 -22h-32.2002l0.100586 14.7998h32.2002zM445.7 165.1h-38.5v-12.5
+h37.7998v-14.0996h-37.9004v-13.7998l38.6006 -0.299805l-0.100586 -14.3008h-55.1992l0.0996094 69.3008h55.2002v-14.3008zM389.4 273.2c0.299805 0.299805 1.69922 1 7.2998 1c1 0 2 -0.100586 3.09961 -0.100586l-7.2998 -16.8994
+c-2.2998 0 -3.2002 0.399414 -3.40039 0.5c-0.199219 0.200195 -1.09961 1.89941 -1.09961 7.89941c0 5.40039 1.09961 7.40039 1.40039 7.60059zM409.8 283.7h-0.0996094h0.0996094zM393.6 298.9h16.1006v-15.2002c-17.4004 0.299805 -33.1006 4.09961 -33.1006 -19.7002
+c0 -11.7998 2.80078 -19.9004 16.1006 -19.9004h7.39941l23.5 54.5h24.8008l27.8994 -65.3994v65.3994h25.2998l29.1006 -48.0996v48.0996h16.8994v-69h-23.5996l-31.2002 51.9004v-51.9004h-33.7002l-6.59961 15.3008h-34.2998l-6.40039 -15.3008h-19.2002
+c-22.7998 0 -33 11.8008 -33 34c0 23.3008 10.5 35.3008 34 35.3008zM435.7 286.8l-11.6006 -27.5996h22.8008zM334.6 298.8h16.9004v-69.2998h-16.9004v69.2998z" />
+ <glyph glyph-name="cc-paypal" unicode="" horiz-adv-x="576"
+d="M186.3 189.8c0 -12.2002 -9.7002 -21.5 -22 -21.5c-9.2002 0 -16 5.2002 -16 15c0 12.2002 9.5 22 21.7002 22c9.2998 0 16.2998 -5.7002 16.2998 -15.5zM80.5 238.3c11.2998 0 19.7998 -1.5 17.5 -14.8994c-2 -12.7002 -10.5 -14.2002 -21.5 -14.2002l-8.2002 -0.299805
+l4.2998 26.6992c0.200195 1.7002 1.7002 2.7002 3.2002 2.7002h4.7002zM364.5 238.3c8.5 0 18 -0.5 18.0996 -11.0996c0 -15 -9 -18 -22 -18l-8 -0.299805l4.2002 26.6992c0.200195 1.7002 1.40039 2.7002 3.2002 2.7002h4.5zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480
+c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM128.3 232.6c0 21 -16.2002 28 -34.7002 28h-40c-2.5 0 -5 -2 -5.19922 -4.69922l-16.4004 -102.101c-0.299805 -2 1.2002 -4 3.2002 -4h19c2.7002 0 5.2002 2.90039 5.5 5.7002l4.5 26.5996
+c1 7.2002 13.2002 4.7002 18 4.7002c28.5996 0 46.0996 17 46.0996 45.7998zM212.5 223.8h-19c-3.7998 0 -4 -5.5 -4.2002 -8.2002c-5.7998 8.5 -14.2002 10 -23.7002 10c-24.5 0 -43.1992 -21.5 -43.1992 -45.1992c0 -19.5 12.1992 -32.2002 31.6992 -32.2002
+c9 0 20.2002 4.89941 26.5 11.8994c-0.5 -1.5 -1 -4.69922 -1 -6.19922c0 -2.30078 1 -4 3.2002 -4h17.2002c2.7002 0 5 2.89941 5.5 5.69922l10.2002 64.3008c0.299805 1.89941 -1.2002 3.89941 -3.2002 3.89941zM253 125.9l63.7002 92.5996c0.5 0.5 0.5 1 0.5 1.7002
+c0 1.7002 -1.5 3.5 -3.2002 3.5h-19.2002c-1.7002 0 -3.5 -1 -4.5 -2.5l-26.5 -39l-11 37.5c-0.799805 2.2002 -3 4 -5.5 4h-18.7002c-1.69922 0 -3.19922 -1.7998 -3.19922 -3.5c0 -1.2002 19.5 -56.7998 21.1992 -62.1006c-2.69922 -3.7998 -20.5 -28.5996 -20.5 -31.5996
+c0 -1.7998 1.5 -3.2002 3.2002 -3.2002h19.2002c1.7998 0.100586 3.5 1.10059 4.5 2.60059zM412.3 232.6c0 21 -16.2002 28 -34.7002 28h-39.6992c-2.7002 0 -5.2002 -2 -5.5 -4.69922l-16.2002 -102c-0.200195 -2 1.2998 -4 3.2002 -4h20.5c2 0 3.5 1.5 4 3.19922l4.5 29
+c1 7.2002 13.1992 4.7002 18 4.7002c28.3994 0 45.8994 17 45.8994 45.7998zM496.5 223.8h-19c-3.7998 0 -4 -5.5 -4.2998 -8.2002c-5.5 8.5 -14 10 -23.7002 10c-24.5 0 -43.2002 -21.5 -43.2002 -45.1992c0 -19.5 12.2002 -32.2002 31.7002 -32.2002
+c9.2998 0 20.5 4.89941 26.5 11.8994c-0.299805 -1.5 -1 -4.69922 -1 -6.19922c0 -2.30078 1 -4 3.2002 -4h17.2998c2.7002 0 5 2.89941 5.5 5.69922l10.2002 64.3008c0.299805 1.89941 -1.2002 3.89941 -3.2002 3.89941zM544 257.1c0 2 -1.5 3.5 -3.2002 3.5h-18.5
+c-1.5 0 -3 -1.19922 -3.2002 -2.69922l-16.1992 -104l-0.300781 -0.5c0 -1.80078 1.5 -3.5 3.5 -3.5h16.5c2.5 0 5 2.89941 5.2002 5.69922l16.2002 101.2v0.299805zM454 205.3c9.2998 0 16.2998 -5.7002 16.2002 -15.5c0 -12.2998 -9.7002 -21.5 -21.7002 -21.5
+c-9.2002 0 -16.2002 5.2998 -16.2002 15c0 12.2998 9.5 22 21.7002 22z" />
+ <glyph glyph-name="cc-stripe" unicode="" horiz-adv-x="576"
+d="M492.4 227.2c8.69922 0 18 -6.7002 18 -22.7002h-36.7002c0 16 9.7998 22.7002 18.7002 22.7002zM375 224.6c12.9004 0.100586 21.9004 -14.5 21.9004 -33.0996c0 -19.0996 -8.80078 -33.4004 -21.9004 -33.4004c-8.2998 0 -13.2998 3 -16.7998 6.7002l-0.200195 52.7998
+c3.7002 4.10059 8.7998 7 17 7zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM122.2 166.9c0 42.2998 -54.2998 34.6992 -54.2998 50.6992c0 5.5 4.59961 7.7002 12.0996 7.7002
+c10.7998 0 24.5 -3.2998 35.2998 -9.09961v33.3994c-11.7998 4.7002 -23.5 6.5 -35.2998 6.5c-28.7998 0 -48 -15 -48 -40.1992c0 -39.3008 54 -32.9004 54 -49.9004c0 -6.59961 -5.7002 -8.7002 -13.5996 -8.7002c-11.8008 0 -26.9004 4.90039 -38.9004 11.2998v-33.8994
+c13.2002 -5.7002 26.5996 -8.10059 38.7998 -8.10059c29.6006 0.200195 49.9004 14.7002 49.9004 40.3008zM191 223.5v30.2998h-26.9004v30.7998l-34.6992 -7.39941l-0.200195 -113.9c0 -21 15.7998 -36.5 36.8994 -36.5c11.6006 0 20.2002 2.10059 24.9004 4.7002v28.9004
+c-4.5 -1.80078 -27 -8.30078 -27 12.5996v50.5h27zM265 221.1v32.7002h-0.0996094c-4.7002 1.7002 -21.3008 4.7998 -29.6006 -10.5l-2.2002 10.5h-30.6992v-124.5h35.5v84.4004c8.39941 11 22.5996 8.89941 27.0996 7.39941zM309.1 129.3v124.5h-35.6992v-124.5h35.6992z
+M309.1 272.2v28.8994l-35.6992 -7.59961v-28.9004zM383.2 126.7c25.3994 0.0996094 48.5996 20.5 48.5996 65.5996c0 41.2998 -23.5 63.7998 -48.3994 63.7998c-13.9004 0 -22.9004 -6.59961 -27.8008 -11.0996l-1.7998 8.7998h-31.2998v-165.8l35.5 7.5l0.0996094 40.2002
+c5.10059 -3.7002 12.7002 -9 25.1006 -9zM543.6 178.2c0.100586 2 0.400391 9.39941 0.400391 12.8994c0 36.4004 -17.5996 65.1006 -51.2998 65.1006c-33.7998 0 -54.2998 -28.7002 -54.2998 -64.9004c0 -42.7998 24.1992 -64.5 58.7998 -64.5
+c17 0 29.7002 3.90039 39.3994 9.2002v28.5996c-9.69922 -4.89941 -20.7998 -7.89941 -34.8994 -7.89941c-13.7998 0 -26 4.89941 -27.6006 21.5h69.5z" />
+ <glyph glyph-name="lastfm" unicode="" horiz-adv-x="512"
+d="M225.8 80.9004c0 0 -31.7002 -31.1006 -97.8994 -31.1006c-82.2002 0 -127.9 48.1006 -127.9 137.2c0 92.7002 45.7002 147.2 131.8 147.2c117.7 0 129.3 -66.2002 161.3 -163c14 -42.7998 38.7002 -73.9004 97.9004 -73.9004c39.9004 0 61 8.7998 61 30.5
+c0 31.9004 -34.9004 35.1006 -79.7998 45.7002c-48.6006 11.7002 -68 36.9004 -68 76.7998c0 64 51.5996 83.9004 104.399 83.9004c59.8008 0 96.2002 -21.7002 100.9 -74.5l-58.5996 -7c-2.30078 25.2002 -17.5 35.7998 -45.7002 35.7998
+c-25.7998 0 -41.6006 -11.7998 -41.6006 -31.7002c0 -17.5996 7.60059 -28.0996 33.4004 -34c52.2998 -11.5 115 -19.2002 115 -92.0996c0 -58.6006 -49.2998 -80.9004 -122 -80.9004c-101.4 0 -136.6 45.7002 -155.4 102.601
+c-26.0996 81.5996 -34.3994 134.899 -100.899 134.899c-35.7002 0 -72.1006 -25.7998 -72.1006 -97.8994c0 -56.3008 28.7002 -91.5 69.2002 -91.5c45.7002 0 76.2002 34 76.2002 34z" />
+ <glyph glyph-name="lastfm-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM307.8 103.1c45.4004 0 76.2002 13.9004 76.1006 50.6006c0 45.5 -39.1006 50.3994 -71.8008 57.5
+c-16.0996 3.7002 -20.8994 10.2998 -20.8994 21.2998c0 12.5 9.89941 19.7998 26 19.7998c17.5996 0 27.0996 -6.59961 28.5996 -22.3994l36.7002 4.39941c-2.90039 33 -25.5996 46.6006 -63 46.6006c-32.9004 0 -65.2002 -12.4004 -65.2002 -52.4004
+c0 -24.9004 12.1006 -40.7002 42.5 -48c28.1006 -6.59961 49.9004 -8.7002 49.9004 -28.5996c0 -13.6006 -13.2002 -19.1006 -38.1006 -19.1006c-37 0 -52.3994 19.4004 -61.1992 46.2002c-20 60.5 -27.3008 101.9 -100.801 101.9c-53.8994 0 -82.5 -34.1006 -82.5 -92
+c0 -55.7002 28.6006 -85.8008 79.9004 -85.8008c41.4004 0 61.2002 19.4004 61.2002 19.4004l-11.7002 31.9004s-19 -21.3008 -47.5996 -21.3008c-25.3008 0 -43.3008 22 -43.3008 57.2002c0 45.1006 22.7002 61.2002 45.1006 61.2002c41.5 0 46.7002 -33.2998 63 -84.2998
+c11.7002 -35.5 33.7002 -64.1006 97.0996 -64.1006z" />
+ <glyph glyph-name="ioxhost" unicode="" horiz-adv-x="640"
+d="M616 288c13.2998 0 24 -10.7002 24 -24c0 -13.2002 -10.7002 -24 -24 -24h-52.7002c3.10059 -15.5 4.7002 -31.5996 4.7002 -48c0 -137 -111 -248 -248 -248c-102.9 0 -191.2 62.7002 -228.7 152h-67.2998c-13.2998 0 -24 10.7002 -24 24c0 13.2002 10.7002 24 24 24
+h52.7002c-3.10059 15.5 -4.7002 31.5996 -4.7002 48c0 137 111 248 248 248c102.9 0 191.2 -62.7002 228.7 -152h67.2998zM520 192c0 16.5996 -2 32.5996 -5.7998 48h-298.2c-13.2998 0 -24 10.7002 -24 24c0 13.2002 10.7002 24 24 24h279.5
+c-33.9004 62 -99.7998 104 -175.5 104c-110.5 0 -200 -89.5 -200 -200c0 -16.5996 2 -32.5996 5.7998 -48h298.2c13.2998 0 24 -10.7002 24 -24c0 -13.2002 -10.7002 -24 -24 -24h-279.5c33.9004 -62 99.7998 -104 175.5 -104c110.5 0 200 89.5 200 200zM216 216h208
+c13.2998 0 24 -10.7002 24 -24c0 -13.2002 -10.7002 -24 -24 -24h-208c-13.2998 0 -24 10.7002 -24 24c0 13.2002 10.7002 24 24 24z" />
+ <glyph glyph-name="angellist" unicode=""
+d="M347.1 232.6c48 -11.6992 54.9004 -50.5996 54.9004 -93.6992c0 -114.301 -73.4004 -202.9 -191.4 -202.9c-96.1992 0 -164.6 76.4004 -164.5 148.6c0 37.1006 14.2002 61.7002 51.1006 71.7002c-3.10059 8.2998 -8 20.7998 -8 29.7002
+c0 23.5 24.8994 52.5996 48.2998 52.5996c6.90039 0 13.7002 -2 20 -4.2998c-12.4004 35.2002 -46.5996 126.7 -46.5996 162c0 28.7998 14.5996 51.7002 45.6992 51.7002c40 0 85.4004 -144 95.1006 -172.5c12.5 31.4004 52.5 163.1 97.0996 163.1
+c28 0 43.7002 -22.2998 43.7002 -48.8994c0 -30.2002 -33.7002 -124.5 -45.4004 -157.101zM311.7 340l-33.1006 -93.7002l34 -6c8.5 23.4004 47.1006 128.9 47.1006 148c0 7.10059 -2.2998 16 -10.9004 16c-16 0 -33.0996 -52 -37.0996 -64.2998zM142.3 399.7
+c0 -29.1006 34.6006 -120 45.5 -148.8c7.7002 4.39941 19.7998 2.69922 35.4004 1.39941l-34.6006 100.3c-31.7998 92.8008 -46.2998 59 -46.2998 47.1006zM140 204c-7.7002 0 -20.2998 -13.4004 -20.4004 -21.0996c0 -20.8008 56 -97.7002 76.9004 -97.7002
+c5.7002 0 10.5996 6.2998 10.5996 11.3994c0 12.8008 -37.7998 107.4 -67.0996 107.4zM324.3 17.7002c55.2998 61.5 49.1006 158.6 31 174.7c-24 21.0996 -106 29.0996 -138.3 29.0996c-17.2998 0 -17.4004 -6.40039 -17.4004 -13.0996
+c0 -43.7002 92.9004 -39.7002 120.601 -39.7002c11.2002 0 15.7998 -9.90039 16.8994 -21.1006c-7.39941 -7.39941 -17.6992 -11.6992 -27.3994 -15.3994c-9.40039 -3.40039 -19.1006 -7.10059 -27.1006 -13.1006c-22 -16 -43.6992 -43.3994 -43.6992 -71.6992
+c0 -17.7002 10.5996 -32.9004 10.5996 -50.3008c0 -0.299805 -2 -6.5 -2 -7.39941c-32.5996 2.2998 -40.5996 34.5996 -41.7002 61.7002c-3.39941 -0.900391 -8 -0.600586 -11.7002 -0.600586c5.10059 -17.7998 -11.8994 -42 -38 -42
+c-37.7998 0 -88 57.2002 -58.2998 86.9004c28.7002 -35.9004 35 -51.4004 51.1006 -51.4004c4 0 11.6992 3.40039 11.6992 8.2998c0 12.8008 -42.8994 73.1006 -54.2998 73.1006c-16.7998 0 -37.7002 -24.9004 -20.5996 -68.2998
+c22.5996 -55.7002 69.5 -88.3008 128.899 -88.3008c43.4004 0 80.6006 16.6006 109.7 48.6006zM225.7 143.7c3.2002 -8.2998 6.59961 -16.6006 9.39941 -25.1006c6.30078 7.10059 12.9004 13.7002 20.3008 19.1006c-10 2 -20 2.89941 -29.7002 6z" />
+ <glyph glyph-name="buysellads" unicode=""
+d="M224 297.3l42.9004 -160.7h-85.8008zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM382.7 42.7002l-94.5 298.7h-128.4l-94.5 -298.7h90.7002l111.7 91.5996l24.2002 -91.5996h90.7998z
+" />
+ <glyph glyph-name="connectdevelop" unicode="" horiz-adv-x="576"
+d="M550.5 207c6.69629 -1.33887 11.7861 -7.5 11.7881 -14.7324c0 -7.5 -5.3584 -13.6602 -12.3223 -15l-54.9111 -95.3574c0.536133 -1.60742 0.804688 -3.21387 0.804688 -4.82129c0 -7.23145 -5.09082 -13.3926 -12.0547 -14.7314l-51.6963 -90.2686
+c0.535156 -1.33887 0.802734 -2.67773 0.802734 -4.28516c0 -8.30371 -6.69727 -15.2676 -15.2686 -15.2676c-4.28516 0 -8.30371 1.875 -10.9814 4.82129h-107.144c-2.67871 -3.21484 -6.96484 -5.35742 -11.5176 -5.35742s-8.83887 2.14258 -11.5166 5.35645h-106.875
+c-2.67969 -3.21484 -6.69727 -5.35742 -11.5186 -5.35742c-8.30371 0 -15.2676 6.69727 -15.2676 15.2676c0 1.875 0.535156 3.75 1.07031 5.35742l-51.6963 89.7324c-6.96484 1.33887 -12.0547 7.5 -12.0547 14.7314c0 1.875 0.268555 3.21387 0.804688 4.82129
+l-55.1797 95.3574c-6.96484 1.60742 -12.0537 7.76855 -12.0537 15c0 7.5 5.3584 13.6611 12.5898 15l53.3047 92.1436c0 0.536133 -0.268555 1.07227 -0.268555 1.60645c0 6.16113 3.75098 11.251 9.10742 13.6611l55.9824 97.2334
+c-0.536133 1.33887 -1.07129 3.21387 -1.07129 4.82129c0 8.57129 6.96484 15.2676 15.2676 15.2676c4.82227 0 8.83887 -2.14258 11.7861 -5.625h106.071c2.67871 3.48242 6.69629 5.625 11.5176 5.625s8.83887 -2.14258 11.5176 -5.62402h106.606
+c2.94727 3.48242 6.96484 5.625 11.7861 5.625c8.30371 0 15.2676 -6.69727 15.2676 -15.2676c0 -1.60742 -0.535156 -3.21484 -1.07031 -4.82129l55.4463 -95.8936c8.03613 -0.267578 14.7324 -6.96484 14.7324 -15.001c0 -2.67871 -0.803711 -5.08984 -1.875 -7.23145z
+M153.535 -2.73242v75.8037h-43.6602zM153.535 81.1074v50.624l-44.999 -47.4102c0.535156 -1.07227 1.07129 -2.14355 1.33887 -3.21387h43.6602zM153.535 143.518l0.000976562 92.9463l-50.0889 51.9648c-2.41113 -1.60645 -5.08887 -2.41113 -7.76855 -2.67871
+l-51.9648 -90c0.268555 -1.07227 0.268555 -2.14258 0.268555 -3.48242c0 -1.33887 0 -2.67871 -0.535156 -4.01758l55.7129 -96.4287c1.33887 -0.267578 2.67871 -1.07129 4.01758 -1.60742zM153.535 245.84v72.0527l-43.9277 -15.8037
+c0 -0.267578 0.267578 -0.803711 0.267578 -1.07227c0 -2.94531 -0.803711 -5.62402 -2.14258 -7.7666zM153.535 326.465v59.7324l-43.6602 -75.5361zM480.054 287.357l-0.267578 0.267578l-98.0361 -101.518l63.75 -67.2324l35.3584 167.143zM291.75 92.8926
+l-11.25 -11.7852h22.7676zM291.482 104.143l79.2852 82.2324l-83.0352 87.5889l-79.5537 -84.375zM296.839 98.25l16.875 -17.1426h124.02l5.8916 28.125l-67.5 71.25zM410.411 403.607l-117.053 -124.019l83.0342 -87.5889l97.5 101.25
+c-1.33984 2.14258 -2.14258 4.82129 -2.14258 7.7666v0.536133l-57.8574 100.714c-1.33984 0.268555 -2.41016 0.804688 -3.48145 1.34082zM401.304 405.75h-4.28711l-166.339 -60l57.0547 -60.2676zM277.821 405.75h-103.929l50.8936 -53.5713l148.393 53.5713h-75
+c-2.67871 -2.67773 -6.16016 -4.28516 -10.1787 -4.28516s-7.50098 1.60742 -10.1787 4.28516zM161.572 400.125v-70.7148l54.9111 19.8213l-51.1611 53.8398c-0.730469 -0.25293 -1.93066 -0.613281 -2.67969 -0.804688zM161.572 320.839v-83.3037l40.9814 -42.0527
+l79.5537 84.1064l-59.7324 63.2139zM161.572 228.161v-76.0723l36.4277 38.3037zM161.572 140.303v-59.1953h107.678l17.1426 17.6777l-82.7676 85.9814zM168.536 -21.75h1.33887l91.6074 94.8213h-99.9102v-89.7324l1.07031 -1.60645
+c2.41113 -0.804688 4.28613 -1.875 5.89355 -3.48242zM298.447 -21.75h104.194l-91.6064 94.8213h-38.3037l-91.6074 -94.8213h96.4287c2.68066 2.41016 6.42871 4.28516 10.4473 4.28516s7.76758 -1.875 10.4473 -4.28516zM418.447 -9.96387l17.4121 83.0361h-114.376
+l89.1953 -91.875c1.07227 0.536133 2.14355 1.07031 3.48242 1.33887zM431.303 12.2676l34.8223 60.8037h-21.9639zM466.125 81.1074c0.267578 1.07129 0.803711 2.14258 1.33887 2.94531l-17.1426 18.2139l-4.55371 -21.1592h20.3574zM532.286 188.518
+c-0.268555 1.33984 -0.536133 2.41113 -0.536133 3.75c0 1.60742 0.536133 2.94629 0.802734 4.28516l-45.8027 79.2861l-34.5537 -163.928l20.625 -21.9639c1.33887 0.802734 2.67871 1.33887 4.01758 1.87402z" />
+ <glyph glyph-name="dashcube" unicode=""
+d="M326.6 344l102.2 104v-427c0 -50.5 -40.0996 -85 -91.2002 -85h-227.199c-51.1006 0 -91.2002 34.5 -91.2002 85v229.5c0 50.2002 40.0996 93.5 91.2002 93.5h216.199zM153.9 31.5v-0.0996094h223.8l-51.1006 52.2998v123.5c0 17.7002 -14.2998 32.5 -32 32.5h-140.699
+c-17.7002 0 -32.4004 -14.7998 -32.4004 -32.5v-142.9c0 -17.7002 14.7002 -32.7998 32.4004 -32.7998z" />
+ <glyph glyph-name="forumbee" unicode=""
+d="M5.7998 138.3c-3.7998 17 -5.7998 34.2002 -5.7998 51.4004c0 123.3 99.7998 223.3 223.1 223.3c16.6006 0 33.3008 -2 49.3008 -5.5c-123.4 -47 -220.5 -145.5 -266.601 -269.2zM398.7 327.5c-151.101 -44 -269.2 -164.4 -312.3 -315.7
+c-17.2002 13.4004 -32.7002 30.9004 -45.2002 49c43.3994 149.9 160.1 267.7 309.7 312c18.0996 -12.5996 34.0996 -27.7998 47.7998 -45.2998zM414.5 74.7998c13.0996 -35.2998 24.2002 -73.2998 33.5 -109.8c-36.0996 9.2998 -72 20.5 -107 33.5996
+c-25.7002 -16 -54.5996 -26.8994 -84.5996 -31.2998c42.5996 79.7002 108.199 147.4 187.6 190.3c-4.09961 -29.0996 -14.2998 -57.6992 -29.5 -82.7998zM444.2 220.3c-113.7 -46.7002 -204.2 -139.399 -250.5 -253.5c-19.6006 2.7002 -38.5 7.60059 -56.6006 15.2002
+c44.9004 138.5 153.4 249.3 291.301 295.1c7.89941 -18.0996 13.1992 -37.2998 15.7998 -56.7998z" />
+ <glyph glyph-name="leanpub" unicode="" horiz-adv-x="576"
+d="M386.539 336.515l15.0957 -248.955l-10.9785 0.275391c-36.2324 0.824219 -71.6406 -8.7832 -102.657 -27.9971c-31.0156 19.2139 -66.4238 27.9971 -102.657 27.9971c-45.5635 0 -82.0693 -10.7051 -123.516 -27.7227l31.291 258.288
+c28.5459 11.8027 61.4834 18.1143 92.2256 18.1143c41.1729 0 73.8359 -13.1748 102.657 -42.5439c27.7227 28.2715 59.0127 41.7217 98.5391 42.5439zM569.07 0c-25.5264 0 -47.4854 5.21484 -70.542 15.6445c-34.3105 15.6455 -69.9932 24.9785 -107.871 24.9785
+c-38.9775 0 -74.9346 -12.9014 -102.657 -40.623c-27.7227 27.7227 -63.6797 40.623 -102.657 40.623c-37.8779 0 -73.5605 -9.33301 -107.871 -24.9785c-22.2324 -9.88086 -44.7402 -15.6445 -69.1689 -15.6445h-1.37305l42.5449 349.141
+c39.251 22.2334 87.0117 34.8594 132.301 34.8594c37.0547 0 75.209 -7.68457 106.225 -29.0947c31.0156 21.4102 69.1699 29.0947 106.225 29.0947c45.2891 0 93.0498 -12.626 132.301 -34.8594zM525.702 44.7412l-34.0361 280.246
+c-30.7422 13.999 -67.248 21.4102 -101.009 21.4102c-38.4287 0 -74.3848 -12.0771 -102.657 -38.7021c-28.2725 26.625 -64.2275 38.7021 -102.657 38.7021c-33.7607 0 -70.2666 -7.41113 -101.009 -21.4102l-34.0361 -280.246
+c47.2109 19.4863 82.8945 33.4854 135.045 33.4854c37.6045 0 70.8174 -9.60547 102.657 -29.6436c31.8398 20.0381 65.0518 29.6436 102.657 29.6436c52.1504 0 87.834 -13.999 135.045 -33.4854z" />
+ <glyph glyph-name="sellsy" unicode="" horiz-adv-x="640"
+d="M539.71 210.692c55.1572 -13.4834 94.0742 -63.124 94.0732 -119.509c0 -68.0264 -55.4639 -123.184 -123.185 -123.184h-381.197c-67.7217 0 -123.186 55.1572 -123.185 123.185c0 47.4961 27.8848 91.0098 70.7852 111.234
+c-2.14453 7.35449 -3.06543 15.0146 -3.06543 22.3691c0 46.2705 37.6914 83.9609 83.9629 83.9609c20.2227 0 39.835 -7.35449 55.1562 -20.5303c18.3867 74.7695 85.8008 127.781 163.021 127.781c92.542 0 167.924 -75.3818 167.924 -167.924
+c0 -12.5635 -1.22559 -25.127 -4.29004 -37.3838zM199.88 46.4463v110.928c0 8.27344 -7.04688 15.3213 -15.3213 15.3213h-30.9482c-8.27344 0 -15.3213 -7.04785 -15.3213 -15.3213v-110.928c0 -8.27344 7.04688 -15.3213 15.3213 -15.3213h30.9482
+c8.27344 0 15.3213 7.04688 15.3213 15.3213zM289.357 46.4463v131.458c0 8.27246 -7.04883 15.3203 -15.3223 15.3203h-30.9492c-8.27246 0 -15.3213 -7.04688 -15.3213 -15.3203v-131.458c0 -8.27344 7.04688 -15.3213 15.3213 -15.3213h30.9492
+c8.27344 0 15.3223 7.04688 15.3223 15.3213zM378.834 46.4463v162.714c0 8.27246 -7.04688 15.3213 -15.3213 15.3213h-30.9482c-8.27441 0 -15.3223 -7.04785 -15.3223 -15.3213v-162.714c0 -8.27344 7.04785 -15.3213 15.3223 -15.3213h30.9482
+c8.27441 0 15.3213 7.04688 15.3213 15.3213zM465.861 46.4463v224.612c0 8.58008 -7.04785 15.6279 -15.3223 15.6279h-28.4971c-8.27441 0 -15.3213 -7.04883 -15.3213 -15.6279v-224.612c0 -8.27344 7.04688 -15.3213 15.3213 -15.3213h28.4971
+c8.27441 0 15.3223 7.04688 15.3223 15.3213z" />
+ <glyph glyph-name="shirtsinbulk" unicode=""
+d="M100 37.7002l4.40039 9.89941l30.5996 -13.3994l-4.40039 -9.90039zM139.4 20.2002l4.39941 9.89941l30.6006 -13.3994l-4.40039 -9.90039zM311.5 34.2002l30.5996 13.3994l4.40039 -9.89941l-30.5996 -13.4004zM179.1 3l4.40039 9.59961l30.2998 -13.3994
+l-4.39941 -9.90039zM60.4004 55.2002l4.39941 9.89941l30.6006 -13.6992l-4.40039 -9.60059zM271.8 16.7002l30.6006 13.3994l4.39941 -9.89941l-30.5996 -13.4004zM232.5 -0.799805l30.5996 13.3994l4.40039 -9.59961l-30.5996 -13.7002zM350.9 51.4004l30.5996 13.6992
+l4.40039 -9.89941l-30.6006 -13.4004zM170 401.4v-10.5h-33.5v10.5h33.5zM122.8 401.4l-0.0996094 -10.5h-33.5v10.5h33.5996zM75.5 401.4l0.0996094 -10.5h-33.2998v10.5h33.2002zM217 401.4v-10.5h-33.2002v10.5h33.2002zM311.5 401.4v-10.5h-33.5v10.5h33.5zM358.8 401.4
+v-10.5h-33.5v10.5h33.5zM264.2 401.4v-10.5h-33.2002v10.5h33.2002zM405.7 401.4v-10.5h-33.2998v10.5h33.2998zM52.7998 96.9004v-33.5h-10.7998v33.5h10.7998zM122.8 312.8l-0.0996094 -10.5h-33.5v10.5h33.5996zM52.7998 302.2v-23h-10.7998v33.5h33.5996v-10.5h-22.7998
+zM221.7 73.5996c-50.2002 0 -91.2998 40.8008 -91.2998 91.3008c0 50.1992 41.0996 91.2998 91.2998 91.2998c50.5 0 91.2998 -41.1006 91.2998 -91.2998c0 -50.5 -40.7998 -91.3008 -91.2998 -91.3008zM173.5 184.7c0 -44.2998 77.5996 -11.9004 77.5996 -38
+c0 -13.1006 -24 -14.2998 -32.6992 -14.2998c-12.3008 0 -29.8008 2.69922 -35.9004 14.8994h-0.900391l-9 -18.3994c14.8008 -9.30078 29.1006 -12.2002 47.2002 -12.2002c19.5 0 51 5.7998 51 31.2002c0 48.0996 -78.5 16.2998 -78.5 37.8994
+c0 13.1006 20.7998 14.9004 29.7998 14.9004c10.8008 0 29.2002 -3.2002 35.6006 -13.1006h0.899414l8.80078 16.9004c-15.1006 6.2002 -27.4004 12 -44.3008 12c-20.0996 0 -49.5996 -6.40039 -49.5996 -31.7998zM52.7998 269.6v-33.5996h-10.7998v33.5996h10.7998z
+M395.2 63.4004v33.5h10.7998v-33.5h-10.7998zM52.7998 140.1v-33.5h-10.7998v33.5h10.7998zM0 444.3h448v-406l-226.3 -98.5996l-221.7 98.5996v406zM418.8 57.2002h0.100586v270.1h-389.7v-270.1l192.8 -85.7002zM418.8 356.5h0.100586v58.5996h-389.7v-58.5996h389.6z
+M52.7998 226.4v-33.5h-10.7998v33.5h10.7998zM52.7998 183.2v-33.5h-10.7998v33.5h10.7998zM170 312.8v-10.5h-33.5v10.5h33.5zM395.2 149.7v33.5h10.7998v-33.5h-10.7998zM395.2 192.9v33.5h10.7998v-33.5h-10.7998zM217 312.8v-10.5h-33.2002v10.5h33.2002zM395.2 236
+v33.5h10.7998v-33.5h-10.7998zM395.2 106.5v33.5h10.7998v-33.5h-10.7998zM264.2 312.8v-10.5h-33.2002v10.5h33.2002zM311.5 312.8v-10.5h-33.5v10.5h33.5zM395.2 279.2l0.0996094 23h-22.7998v10.5h33.5v-33.5h-10.7998zM358.8 312.8v-10.5h-33.5v10.5h33.5z" />
+ <glyph glyph-name="simplybuilt" unicode="" horiz-adv-x="512"
+d="M481.2 384c14.7002 0 26.5 -11.7998 26.7002 -26.2998v-331.4c0 -14.5 -11.8008 -26.2998 -26.6006 -26.2998h-450.399c-14.8008 0 -26.6006 11.7998 -26.6006 26.2998v331.4c0 14.5 11.7998 26.2998 26.4004 26.2998h106c14.5996 0 26.5996 -11.7998 26.5996 -26.2998
+v-39.6006h185.3v39.6006c0 14.5 12.1006 26.2998 26.6006 26.2998h106zM149.8 92.2002c36.9004 0 66.6006 29.7002 66.6006 66.3994c0 36.9004 -29.7002 66.6006 -66.6006 66.6006c-36.7002 0 -66.3994 -29.7002 -66.3994 -66.6006
+c0 -36.6992 29.7998 -66.3994 66.3994 -66.3994zM362.2 92.2002c36.5996 0 66.3994 29.7002 66.3994 66.5996c0 36.7002 -29.7998 66.4004 -66.3994 66.4004c-36.9004 0 -66.6006 -29.7998 -66.6006 -66.4004c0 -36.8994 29.7002 -66.5996 66.6006 -66.5996z" />
+ <glyph glyph-name="skyatlas" unicode="" horiz-adv-x="640"
+d="M640 118.7c0 -65.9004 -52.5 -114.4 -117.5 -114.4c-165.9 0 -196.6 249.7 -359.7 249.7c-146.899 0 -147.1 -212.2 5.60059 -212.2c42.5 0 90.8994 17.7998 125.3 42.5c5.59961 4.10059 16.8994 16.2998 22.7998 16.2998s10.9004 -5 10.9004 -10.8994
+c0 -7.7998 -13.1006 -19.1006 -18.7002 -24.1006c-40.9004 -35.5996 -100.3 -61.1992 -154.7 -61.1992c-83.4004 -0.100586 -154 59 -154 144.899c0 85.9004 67.5 149.101 152.8 149.101c185.3 0 222.5 -245.9 361.9 -245.9c99.8994 0 94.7998 139.7 3.39941 139.7
+c-17.5 0 -35 -11.6006 -46.8994 -11.6006c-8.40039 0 -15.9004 7.2002 -15.9004 15.6006c0 11.5996 5.2998 23.7002 5.2998 36.2998c0 66.5996 -50.8994 114.7 -116.899 114.7c-53.1006 0 -80 -36.9004 -88.7998 -36.9004c-6.2002 0 -11.2002 5 -11.2002 11.2002
+c0 5.59961 4.09961 10.2998 7.7998 14.4004c25.2998 28.7998 64.7002 43.6992 102.8 43.6992c79.4004 0 139.101 -58.3994 139.101 -137.8c0 -6.89941 -0.300781 -13.7002 -1.2002 -20.5996c11.8994 3.09961 24.0996 4.7002 35.8994 4.7002
+c60.7002 0 111.9 -45.3008 111.9 -107.2z" />
+ <glyph glyph-name="pinterest-p" unicode="" horiz-adv-x="384"
+d="M204 441.5c94.2002 0 180 -64.7998 180 -164.1c0 -93.3008 -47.7002 -196.801 -153.9 -196.801c-25.1992 0 -57 12.6006 -69.2998 36c-22.7998 -90.2998 -21 -103.8 -71.3994 -172.8c-5.2002 -1.89941 -3.5 -2.2998 -6.90039 1.5c-1.7998 18.9004 -4.5 37.5 -4.5 56.4004
+c0 61.2002 28.2002 149.7 42 209.1c-7.5 15.2998 -9.59961 33.9004 -9.59961 50.7002c0 80 93.8994 92 93.8994 25.7998c0 -39 -26.3994 -75.5996 -26.3994 -113.399c0 -25.8008 21.2998 -43.8008 46.1992 -43.8008c69 0 90.3008 99.6006 90.3008 152.7
+c0 71.1006 -50.4004 109.8 -118.5 109.8c-79.2002 0 -140.4 -57 -140.4 -137.399c0 -38.7002 23.7002 -58.5 23.7002 -67.7998c0 -7.80078 -5.7002 -35.4004 -15.6006 -35.4004c-24 0 -63.5996 40 -63.5996 110.4c0 110.699 101.4 179.1 204 179.1z" />
+ <glyph glyph-name="whatsapp" unicode=""
+d="M380.9 350.9c41.8994 -42 67.0996 -97.7002 67.0996 -157c0 -122.4 -101.8 -222 -224.1 -222h-0.100586c-37.2002 0 -73.7002 9.2998 -106.1 27l-117.7 -30.9004l31.5 115c-19.4004 33.7002 -29.5996 71.9004 -29.5996 111c0 122.4 99.5996 222 222 222
+c59.2998 0 115.1 -23.0996 157 -65.0996zM223.9 9.2998c101.699 0 186.6 82.7998 186.6 184.601c0.0996094 49.2998 -21.2998 95.5996 -56.0996 130.5c-34.8008 34.8994 -81.1006 54.0996 -130.4 54.0996c-101.8 0 -184.6 -82.7998 -184.6 -184.5
+c0 -34.9004 9.69922 -68.7998 28.1992 -98.2002l4.40039 -7l-18.5996 -68.0996l69.7998 18.2998l6.7002 -4c28.2998 -16.7998 60.7998 -25.7002 94 -25.7002zM325.1 147.5c5.5 -2.7002 9.2002 -4.09961 10.5 -6.59961c1.40039 -2.30078 1.40039 -13.4004 -3.19922 -26.4004
+c-4.60059 -13 -26.7002 -24.7998 -37.4004 -26.4004c-17.5996 -2.59961 -31.4004 -1.2998 -66.5996 13.9004c-55.7002 24.0996 -92 80.0996 -94.8008 83.7998c-2.69922 3.7002 -22.5996 30.1006 -22.5996 57.4004s14.2998 40.7002 19.4004 46.2998
+c5.09961 5.5 11.0996 6.90039 14.7998 6.90039s7.39941 0 10.5996 -0.200195c3.40039 -0.200195 8 1.2998 12.5 -9.5c4.60059 -11.1006 15.7002 -38.4004 17.1006 -41.2002c1.39941 -2.7998 2.2998 -6 0.5 -9.7002c-10.6006 -21.2002 -22 -20.5 -16.3008 -30.2998
+c21.5 -36.9004 42.9004 -49.7002 75.5 -66c5.5 -2.7998 8.80078 -2.2998 12 1.40039c3.30078 3.7998 13.9004 16.1992 17.6006 21.7998c3.7002 5.59961 7.39941 4.7002 12.5 2.7998c5.09961 -1.7998 32.3994 -15.2002 37.8994 -18z" />
+ <glyph glyph-name="viacoin" unicode="" horiz-adv-x="384"
+d="M384 416l-48 -112h48v-48h-68.5l-13.7998 -32h82.2998v-48h-102.8l-89.2002 -208l-89.2002 208h-102.8v48h82.2998l-13.7998 32h-68.5v48h48l-48 112h64l80.7998 -192h94.5l80.7002 192h64zM192 112l27 64h-54z" />
+ <glyph glyph-name="medium" unicode=""
+d="M0 416h448v-448h-448v448zM372.2 309.9v5h-83.2002l-59.2998 -147.9l-67.4004 148h-87.2998v-5.09961l28.0996 -33.9004c2.80078 -2.5 4.2002 -6.09961 3.80078 -9.7998v-133c0.799805 -4.7998 -0.700195 -9.7002 -4.10059 -13.2002l-31.5996 -38.2998v-5.10059h89.7998
+v5.10059l-31.5996 38.2998c-3.40039 3.5 -5.10059 8.40039 -4.40039 13.2002v115l78.7002 -171.601h9.09961l67.6006 171.601v-136.9c0 -3.59961 0 -4.2998 -2.40039 -6.7002l-24.2998 -23.5996v-4.90039h118v5.10059l-23.5 23
+c-2.10059 1.5 -3.10059 4.09961 -2.7002 6.7002v169.3c-0.400391 2.5 0.599609 5.09961 2.7002 6.7002z" />
+ <glyph glyph-name="y-combinator" unicode=""
+d="M448 416v-448h-448v448h448zM236 160.5l77.5 145.5h-32.7002l-45.7998 -91c-4.7002 -9.2998 -9 -18.2998 -12.7998 -26.7998l-12.2002 26.7998l-45.2002 91h-35l76.7002 -143.8v-94.5h29.5v92.7998z" />
+ <glyph glyph-name="optin-monster" unicode="" horiz-adv-x="576"
+d="M572.6 26.5996c1 -3.5 1.90039 -7 1.7002 -10.6992c0.799805 -31.6006 -44.2998 -64 -73.5 -65.1006c-17.2998 -0.799805 -34.5996 8.40039 -42.7002 23.5c-113.5 -4.09961 -227 -4.89941 -340.199 0c-8.40039 -15.0996 -25.7002 -24 -43 -23.5
+c-28.9004 1.10059 -74 33.5 -73.5 65.1006c0.299805 3.7998 0.799805 7.2998 1.89941 10.7998c-5.59961 9.39941 -4.7998 15.2998 5.40039 11.5996c3.2998 5.2002 7 9.5 11.0996 13.7998c-2.5 10.9004 1.2998 14.1006 11.1006 9.2002c4.5 3.2998 10 6.5 15.8994 9.2002
+c0 15.7998 11.7998 11.2002 17.2998 5.7002c12.5 1.7998 20.2002 -0.700195 26.8008 -5.7002v19.7002c-12.9004 0 -40.6006 11.3994 -45.9004 36.2002c-5 20.7998 2.59961 38.0996 25.0996 47.5996c0.800781 5.90039 8.10059 14 14.9004 15.9004
+c7.59961 1.89941 12.5 -4.60059 14.0996 -10.3008c7.40039 0 17.8008 -1.5 21.1006 -8.09961c5.39941 0.5 11.0996 1.40039 16.5 1.90039c-2.40039 1.89941 -5.10059 3.5 -8.10059 4.59961c-5.09961 8.90039 -13.7998 11.0996 -24.5996 11.5996
+c0 0.800781 0 1.60059 0.299805 2.7002c-19.7998 0.5 -44.0996 5.60059 -54.8994 17.7998c-21.3008 23.6006 -15.9004 83.6006 12.1992 103.5c8.40039 5.7002 21.6006 0.800781 22.7002 -9.69922c2.40039 -20.6006 0.400391 -26.8008 26.2002 -25.9004
+c8.09961 7.7998 16.7998 14.5996 26.5 20c-14.9004 1.2998 -28.9004 -1.59961 -43.7998 -3.7998c12.7002 12.5 23.8994 25.3994 56.7002 42.3994c23.5 11.9004 50 20.8008 76.1992 23.2002c-18.5996 7.90039 -40 11.9004 -59.6992 16.5
+c76.5 16.2002 174.6 22.1006 244.199 -37.5996c18.1006 -15.4004 32.4004 -36.2002 42.7002 -60c39.7998 -4.90039 36.4004 5.5 38.6006 25.0996c1.09961 10.2998 14.2998 15.4004 22.6992 9.5c14.9004 -10.5 22.2002 -30.7998 24.6006 -48.0996
+c2.2002 -17.7998 0.299805 -41.2998 -12.4004 -55.1006c-10.7998 -12.1992 -34.2998 -17.5996 -53.7998 -18.0996v-2.7998c-11.0996 -0.200195 -20.2998 -2.40039 -25.7002 -11.6006c-3 -1.09961 -5.7002 -2.69922 -8.39941 -4.59961
+c5.69922 -0.5 11.3994 -1.40039 16.7998 -1.90039c1.89941 5.60059 12.5996 8.40039 21.0996 8.40039c1.7002 5.40039 6.7998 11.9004 14.1006 10.2998c7.2998 -1.59961 14.0996 -10 14.8994 -15.8994c10.7998 -4.40039 22.1006 -12.2002 25.1006 -25.7002
+c1.89941 -8.10059 1.69922 -15.1006 0.299805 -21.9004c-5.7002 -25.2002 -33.2998 -36.2002 -45.9004 -36.2002c0 -6.69922 0 -13.1992 -0.299805 -19.6992c8.09961 6 16.4004 7.19922 26.7998 5.69922c6 5.90039 17.6006 9.40039 17.6006 -5.69922
+c5.59961 -2.7002 11.2998 -6 15.8994 -9.2002c10.1006 5 13.7002 0.5 10.7998 -9.2002c4.10059 -4.2998 8.10059 -8.90039 11.1006 -13.7998c10.0996 3.59961 11 -2.10059 5.39941 -11.6006zM498.8 280.6c17.2998 -6.69922 26.2002 -22.0996 30.2998 -35.6992
+c1.10059 10.5996 -2.69922 39.5 -13.7998 51.0996c-7.2998 7.2998 -14.0996 5.09961 -14.0996 -0.799805c0 -6.2002 -1.2998 -11.6006 -2.40039 -14.6006zM494.2 273.9c-3.2002 -3.30078 -9.2002 -4.90039 -14.1006 -5.7002c13 -15.7002 17 -41.7002 12.7002 -63
+c10.7998 2.2002 20.5 6.2998 26.2002 12.2002c1.90039 2.19922 3.7998 4.89941 4.90039 7.59961c-1.10059 21.2998 -10.2002 42.7002 -29.7002 48.9004zM470.1 267.1c-3.69922 0 -8.09961 0 -11.7998 0.300781c7.5 -20.6006 12.4004 -42.7002 14.2998 -64.6006
+c3.5 0 7.5 0.299805 11.6006 0.799805c5.89941 24.3008 -0.299805 51.6006 -14.1006 63.5zM47.5 245c4.09961 13.5 13 28.9004 30.2998 35.7002c-1 3 -2.39941 8.39941 -2.39941 14.5996c0 5.90039 -7.10059 8.10059 -14.1006 0.799805
+c-11.3994 -11.5996 -14.8994 -40.5996 -13.7998 -51.0996zM57.2002 217.4c5.7002 -6.2002 15.3994 -10 26.2002 -12.2002c-4.30078 21.3994 -0.300781 47.2998 12.6992 63c-4.89941 0.799805 -10.8994 2.5 -14.0996 5.7002
+c-19.4004 -6.2002 -28.2998 -27.6006 -29.7002 -48.9004c1.40039 -2.7002 3 -5.40039 4.90039 -7.59961zM105.1 202.8c2.40039 22.2002 9.10059 43.7998 19.8008 63.5c-5.2002 -1.09961 -10 -3 -14.9004 -4.89941l-12.2002 -5.10059v0.299805
+c-7.2998 -14.0996 -10 -34.3994 -5.39941 -53c4.59961 -0.5 8.59961 -0.799805 12.6992 -0.799805zM289.1 365.5c-41.8994 0 -76.1992 -34.0996 -76.1992 -75.9004c0 -42.1992 34.2998 -76.1992 76.1992 -76.1992c41.9004 0 76.2002 34 76.2002 76.1992
+c0 41.9004 -34.2998 75.9004 -76.2002 75.9004zM404.7 191.2c-12.9004 0.799805 -26.2002 0.799805 -39.5 1.09961c10 -50.5996 3.2998 -64.7002 16.5 -58.0996c16 8.09961 22.7002 39.2002 23 57zM350.7 192.8c-18.9004 0.299805 -38.1006 0.299805 -57 0v0.299805
+c-0.299805 -5.19922 0.200195 -38.0996 4.2998 -41.0996c11.0996 -5.40039 39.5 -4.59961 51.0996 -1.09961c5.40039 1.59961 2.40039 37 1.60059 41.8994zM278.3 139c4.60059 2.5 2.40039 45.4004 1.2998 53.7002v0.299805
+c-19.3994 -0.299805 -38.5996 -0.299805 -57.7998 -0.799805c-1.89941 -9.2002 -4.59961 -48.9004 1.90039 -51.6006c13 -5.69922 41.5996 -5.09961 54.5996 -1.59961zM171.8 190.1c-5.39941 -19.6992 0.299805 -45.0996 22.2002 -54.8994
+c5.40039 -2.5 8.59961 -2.5 9.7002 4.2998c1.89941 8.7002 2.5 36.7998 4.89941 52.2002c-12.1992 -0.200195 -24.5996 -0.799805 -36.7998 -1.60059zM136.4 158.8c2.39941 -3.7002 1.59961 -9.09961 -8 -12.5c43.7998 -47 92.6992 -85.7002 155.899 -106.5
+c67.5 19.2002 115.601 60 163.2 107c-11.0996 4.2998 -7.7002 10.2998 -7.2998 11.6006c-8.90039 0.799805 -17.9004 1.89941 -26.5 2.69922c-9.5 -33 -36 -52.8994 -46.7998 -31.5996c-2.7002 5.2002 -3.5 11.7002 -4.60059 16.7998
+c-3.7998 -8.39941 -13.2998 -8.09961 -24.5996 -8.89941c-13.2002 -1.10059 -31.6006 -1.30078 -44 3c-3 -12.9004 -11.1006 -12.9004 -26.7998 -14.3008c-14.1006 -1.39941 -48.7002 -4.09961 -54.9004 10.8008c-1.09961 -28.7002 -35.0996 -10 -45.0996 7
+c-3.2002 5.69922 -5.40039 11.3994 -7 17.5996c-7.80078 -0.799805 -15.7002 -1.59961 -23.5 -2.7002zM114.8 -13.7002c0.5 2.5 0.799805 5.2002 0.799805 8.2002c-5.69922 23.2002 -18.5996 49.7002 -33.5 54c-22.3994 6.7002 -68.8994 -23.5 -66.1992 -54.5996
+c12.6992 -19.5 40 -35.7002 59.1992 -36.5c17.8008 -0.800781 35.9004 11.0996 39.7002 28.8994zM106.1 52.2998c9 -16 15.5 -33.2998 16.7002 -51.8994c33.5 19.3994 69.1006 35.6992 105.9 47c-38.7002 20.5 -68.1006 47.7998 -97.2998 77
+c-2.10059 -1.30078 -5.10059 -2.40039 -7.80078 -3.5c-1.59961 -4.90039 8.7002 -5.30078 5.40039 -12.4004c-2.09961 -4.09961 -8.59961 -7.59961 -15.0996 -9.2002c-2.10059 -2.7002 -5.10059 -4.89941 -7.80078 -6.5h-0.299805
+c-0.200195 -13.5 -0.200195 -27 0.299805 -40.5zM443.7 -12.2998c-36.7998 21.2998 -74.1006 41.2998 -115.601 53c-13.7998 -6.2002 -27.8994 -11.2998 -42.1992 -15.4004c-2.10059 -0.799805 -2.10059 -0.799805 -4.30078 0
+c-11.8994 3.7002 -23.2998 8.10059 -34.8994 13.2002c-40.2002 -11.5996 -77.2998 -29.2002 -112.4 -50.7998h-0.299805v-0.299805c0.299805 0 0.299805 0 0.299805 0.299805c103.2 -4.10059 206.4 -3.5 309.4 0zM454.2 0.0996094c1 14.7002 7.2002 35.8008 16.5 51.7002
+l-0.299805 -0.299805c0.5 13.7002 0.799805 27.5 0.799805 41.2998c-3 1.7002 -5.7002 4.10059 -8.10059 6.7998c-6.5 1.30078 -12.8994 5.10059 -15.0996 8.90039c-1.90039 4.09961 1.2998 7.59961 5.90039 10.2998c-0.200195 0.5 -0.5 1.60059 -0.5 2.40039
+c-3 0.799805 -5.40039 1.7998 -7.60059 3.2002c-31.5996 -29.4004 -65.3994 -56.7002 -103.5 -76.7002c38.9004 -11.7002 76 -28.1006 111.9 -47.6006zM560.1 -6.09961c3 31.0996 -43.5 61.3994 -66.1992 54.5c-14.6006 -4.30078 -27.8008 -30.8008 -33.5 -54
+c0 -23.8008 21.1992 -37.9004 40.5 -37c19.1992 0.799805 46.5 17 59.1992 36.5zM372.9 372.8c-35.7002 39.2002 -81.4004 47.7998 -126 23.5c25.1992 56.2002 122.199 48.6006 126 -23.5zM74.7998 40.9004c14.9004 1.89941 24.6006 -19.2002 18.6006 -30.8008
+c-4.80078 -9.69922 -23.7002 -24.0996 -35.9004 -27.2998c-16.5 -4.59961 -32.2002 3.2998 -32.2002 14.9004c0 17.7998 33.7998 41.5996 49.5 43.2002zM290.7 217.1c-30.9004 0 -57.6006 25.7002 -50.2998 59.8008c13.1992 -20.7002 46.5 -12 46.5 11.2998
+c0 10 -7 18.5996 -16.5 21.5996c31.6992 13.7998 72.1992 -8.2002 72.1992 -44.2998c0 -26.7998 -23.2998 -48.4004 -51.8994 -48.4004zM68 -26.0996c-0.5 8.39941 20.2998 23.5 29.2002 25.0996c8.59961 1.59961 12.7002 -11.4004 9.7002 -18.4004
+c-2.7002 -5.69922 -10.5 -13.5 -17.3008 -16.1992c-9.39941 -3.2002 -21.0996 3 -21.5996 9.5zM501.2 40.9004c15.7002 -1.60059 49.5 -25.4004 49.5 -43.2002c0 -11.7002 -15.7002 -19.5 -32.2002 -14.9004c-12.0996 3.2002 -31.2998 17.6006 -36.2002 27.2998
+c-5.7002 11.6006 4 32.7002 18.9004 30.8008zM478.8 -1c8.90039 -1.59961 30 -16.7002 29.1006 -25.0996c-0.200195 -6.5 -12.1006 -12.7002 -21.3008 -9.5c-7 2.69922 -14.8994 10.5 -17.2998 16.1992c-2.89941 7.10059 1.10059 20 9.5 18.4004z" />
+ <glyph glyph-name="opencart" unicode="" horiz-adv-x="640"
+d="M423.3 7.2998c0 -25.2998 -20.2998 -45.5996 -45.5996 -45.5996s-45.7998 20.2998 -45.7998 45.5996s20.5996 45.7998 45.7998 45.7998c25.3994 0 45.5996 -20.5 45.5996 -45.7998zM169.4 53.0996c25.2998 0 45.7998 -20.5 45.7998 -45.7998
+s-20.5 -45.5996 -45.7998 -45.5996c-25.3008 0 -45.6006 20.3994 -45.6006 45.5996s20.2998 45.7998 45.6006 45.7998zM461.1 323.1c302.2 0 169.5 -67.1992 -17.1992 -233.899c59.1992 102.8 262.5 193.899 -70.8008 188.899c-319.8 -4.69922 -338.699 92.5 -373.1 144.2
+c81.9004 -86.3994 158.9 -99.2002 461.1 -99.2002z" />
+ <glyph glyph-name="expeditedssl" unicode="" horiz-adv-x="496"
+d="M248 404.6c117.4 0 212.6 -95.1992 212.6 -212.6s-95.1992 -212.6 -212.6 -212.6s-212.6 95.1992 -212.6 212.6s95.1992 212.6 212.6 212.6zM150.6 271.7h-0.199219v-26.6006c0 -5 3.89941 -8.89941 8.89941 -8.89941h17.7002c5 0 8.90039 3.89941 8.90039 8.89941
+v26.6006c0 82.0996 124 82.0996 124 0v-26.6006c0 -5 3.89941 -8.89941 8.89941 -8.89941h17.7002c5 0 8.90039 3.89941 8.90039 8.89941v26.6006c0 53.7002 -43.7002 97.3994 -97.4004 97.3994s-97.4004 -43.6992 -97.4004 -97.3994zM389.7 68v141.7
+c0 9.7002 -8 17.7002 -17.7002 17.7002h-248c-9.7002 0 -17.7002 -8 -17.7002 -17.7002v-141.7c0 -9.7002 8 -17.7002 17.7002 -17.7002h248c9.7002 0 17.7002 8 17.7002 17.7002zM141.7 205.3v-132.899c0 -2.5 -1.90039 -4.40039 -4.40039 -4.40039h-8.89941
+c-2.5 0 -4.40039 1.90039 -4.40039 4.40039v132.899c0 2.5 1.90039 4.40039 4.40039 4.40039h8.89941c2.5 0 4.40039 -1.90039 4.40039 -4.40039zM283.4 156.6c0 -13 -7.2002 -24.3994 -17.7002 -30.3994v-31.6006c0 -5 -3.90039 -8.89941 -8.90039 -8.89941h-17.7002
+c-5 0 -8.89941 3.89941 -8.89941 8.89941v31.6006c-10.5 6.09961 -17.7002 17.3994 -17.7002 30.3994c0 19.7002 15.7998 35.4004 35.4004 35.4004c19.5996 0 35.5 -15.7998 35.5 -35.4004zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248
+s111 248 248 248zM248 -38.2998c127 0 230.3 103.3 230.3 230.3s-103.3 230.3 -230.3 230.3s-230.3 -103.3 -230.3 -230.3s103.3 -230.3 230.3 -230.3z" />
+ <glyph glyph-name="cc-jcb" unicode="" horiz-adv-x="576"
+d="M431.5 203.7v32.2998c41.2002 0 38.5 -0.200195 38.5 -0.200195c7.2998 -1.2998 13.2998 -7.2998 13.2998 -16c0 -8.7998 -6 -14.5 -13.2998 -15.7998c-1.2002 -0.400391 -3.2998 -0.299805 -38.5 -0.299805zM474.3 183.5c7.5 -1.5 13.5 -8.2998 13.5 -17
+c0 -9 -6 -15.5 -13.5 -17c-2.7998 -0.700195 -3.2002 -0.5 -42.7998 -0.5v35c39.5 0 40 0.200195 42.7998 -0.5zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM182 255.7h-57
+c0 -67.1006 10.7002 -109.7 -35.7998 -109.7c-19.5 0 -38.7998 5.7002 -57.2002 14.7998v-28c30 -8.2998 68 -8.2998 68 -8.2998c97.9004 0 82 47.7002 82 131.2zM360.5 251.2c-63.4004 16 -165 14.8994 -165 -59.2998c0 -77.1006 108.2 -73.6006 165 -59.2002v28.2998
+c-47.5996 -24.7002 -107.5 -22 -107.5 31s59.7998 55.5996 107.5 31.2002v28zM544 161.5c0 18.5 -16.5 30.5 -38 32v0.799805c19.5 2.7002 30.2998 15.5 30.2998 30.2002c0 19 -15.7002 30 -37 31c0 0 6.2998 0.299805 -120.3 0.299805v-127.5h122.7
+c24.2998 -0.0996094 42.2998 12.9004 42.2998 33.2002z" />
+ <glyph glyph-name="cc-diners-club" unicode="" horiz-adv-x="576"
+d="M239.7 368.1c97.2002 0 175.8 -78.5996 175.8 -175.8c0 -96.8994 -78.5996 -175.8 -175.8 -175.8c-96.9004 0 -175.8 78.9004 -175.8 175.8c0 97.2002 78.8994 175.8 175.8 175.8zM199.8 88.5v207.9c-41.7002 -16.2002 -71.3994 -56.7002 -71.3994 -104.101
+c0 -47.3994 29.6992 -87.8994 71.3994 -103.8zM279.6 88.2002c41.7002 16.2002 71.4004 56.7002 71.4004 104.1c0 47.4004 -29.7002 87.9004 -71.4004 104.101v-208.2zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352
+c0 26.5 21.5 48 48 48h480zM329.7 0c105 0 200.7 85.5 200.7 190.2c0 114.6 -95.7002 193.8 -200.7 193.8h-90.2998c-106.2 0 -193.801 -79.2002 -193.801 -193.8c0 -104.7 87.6006 -190.2 193.801 -190.2h90.2998z" />
+ <glyph glyph-name="creative-commons" unicode="" horiz-adv-x="496"
+d="M245.83 233.13l-33.2197 -17.2803c-9.43066 19.5801 -25.2402 19.9307 -27.46 19.9307c-22.1309 0 -33.2207 -14.6104 -33.2207 -43.8398c0 -23.5703 9.20996 -43.8408 33.2207 -43.8408c14.4697 0 24.6494 7.09082 30.5693 21.2607l30.5498 -15.5
+c-6.16992 -11.5107 -25.6895 -38.9805 -65.0996 -38.9805c-22.5996 0 -73.96 10.3203 -73.96 77.0498c0 58.6904 43 77.0605 72.6299 77.0605c30.7197 0.00976562 52.7002 -11.9502 65.9902 -35.8604zM388.88 233.13l-32.7803 -17.2803
+c-9.5 19.7705 -25.7197 19.9307 -27.8994 19.9307c-22.1406 0 -33.2197 -14.6104 -33.2197 -43.8398c0 -23.5508 9.22949 -43.8408 33.2197 -43.8408c14.4502 0 24.6494 7.09082 30.54 21.2607l31 -15.5c-2.10059 -3.75 -21.3906 -38.9805 -65.0898 -38.9805
+c-22.6904 0 -73.96 9.87012 -73.96 77.0498c0 58.6699 42.9697 77.0605 72.6299 77.0605c30.71 0.00976562 52.5801 -11.9502 65.5596 -35.8604zM247.56 439.95c141.82 0 248.44 -110.13 248.44 -248c0 -147.13 -118.51 -248 -248.44 -248
+c-133.96 0 -247.56 109.51 -247.56 248c0 132.939 104.74 248 247.56 248zM248.43 -10.8604c103.16 0 202.83 81.1299 202.84 202.82c0 113.8 -90.2891 203.26 -202.819 203.26c-118.29 0 -203.72 -97.8496 -203.72 -203.27c0 -109.771 91.1592 -202.811 203.699 -202.811z
+" />
+ <glyph glyph-name="gg" unicode="" horiz-adv-x="512"
+d="M179.2 217.6l102.399 -102.399l-102.399 -102.4l-179.2 179.2l179.2 179.2l44.7998 -44.7998l-25.5996 -25.6006l-19.2002 19.2002l-128 -128l128 -128l51.5 51.5l-77.1006 76.5zM332.8 371.2l179.2 -179.2l-179.2 -179.2l-44.7998 44.7998l25.5996 25.6006
+l19.2002 -19.2002l128 128l-128 128l-51.5 -51.5l77.1006 -76.5l-25.6006 -25.5996l-102.399 102.399z" />
+ <glyph glyph-name="gg-circle" unicode="" horiz-adv-x="512"
+d="M257 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM207.5 65.2002l75 75.2002l-77.2002 77.1992l-24.3994 -24.3994l53.0996 -52.9004l-26.5996 -26.5996l-77.2002 77.2002l77.2002 77.1992l11.0996 -11.0996l24.2002 24.2002
+l-35.2002 35.3994l-125.7 -125.699zM306.5 67.4004l125.7 125.6l-125.7 125.7l-75 -75l77.2002 -77.2002l24.3994 24.4004l-53.0996 52.8994l26.5 26.5l77.2002 -77.2002l-77.2002 -77.1992l-11.0996 11.0996l-24.1006 -24.4004z" />
+ <glyph glyph-name="tripadvisor" unicode="" horiz-adv-x="576"
+d="M166.4 167.479c0 -13.2354 -10.7305 -23.9658 -23.9668 -23.9658c-13.2354 0 -23.9658 10.7305 -23.9658 23.9658c0 13.2363 10.7305 23.9668 23.9658 23.9668c13.2363 0 23.9668 -10.7295 23.9668 -23.9668zM431.362 191.435
+c13.2295 0 23.9551 -10.7246 23.9561 -23.9561c0 -13.2305 -10.7266 -23.9551 -23.9561 -23.9551c-13.2314 0 -23.9561 10.7256 -23.9561 23.9551c0 13.2314 10.7256 23.9561 23.9561 23.9561zM520.75 51.9453c-62.667 -49.1045 -153.276 -38.1094 -202.379 24.5586
+l-30.9795 -46.3252l-30.6826 45.9395c-48.2773 -60.3906 -135.622 -71.8916 -197.885 -26.0547c-64.0586 47.1572 -77.7588 137.315 -30.6016 201.373c-5.05762 17.1221 -17.7021 42.7236 -28.2227 57.1475l90.2861 0.0498047
+c48.0039 29.8701 132.851 54.1123 189.389 54.1123c2.11914 0 5.55762 -0.0371094 7.67578 -0.0820312c1.72363 0.0302734 4.52246 0.0556641 6.24609 0.0556641c55.5518 0 138.851 -23.9258 185.936 -53.4043l96.2178 -0.0742188
+c-10.6191 -14.5371 -23.3213 -40.3643 -28.3516 -57.6494c46.793 -62.7471 34.9639 -151.37 -26.6484 -199.646zM259.366 166.239c-0.00683594 63.5566 -51.5352 115.075 -115.092 115.067c-63.5576 -0.00683594 -115.074 -51.5342 -115.068 -115.092
+c0.00683594 -63.5566 51.5352 -115.075 115.092 -115.067c63.5127 0.0742188 114.984 51.5381 115.068 115.052v0.0400391zM287.957 176.694c5.43262 73.4395 65.5098 130.884 139.12 133.021c-35.5576 15.374 -95.8555 27.8506 -134.594 27.8506
+c-1.41699 0 -3.7168 -0.0166016 -5.13379 -0.0380859c-0.953125 0.00878906 -2.50098 0.0166016 -3.45508 0.0166016c-39.2324 0 -100.479 -12.2168 -136.709 -27.2695c74.3447 -1.58203 135.3 -59.4248 140.771 -133.581zM539.663 205.461
+c-21.9922 59.6338 -88.1621 90.1484 -147.795 68.1572c-59.6338 -21.9922 -90.1484 -88.1621 -68.1572 -147.795v-0.0322266c22.0381 -59.6074 88.1982 -90.0908 147.827 -68.1133c59.6152 22.0039 90.1133 88.1621 68.125 147.783zM213.624 167.486v-0.115234
+c-0.0566406 -39.3281 -31.9863 -71.1631 -71.3145 -71.1064c-39.3271 0.0576172 -71.1621 31.9863 -71.1055 71.3145s31.9863 71.1631 71.3135 71.1055c39.2598 -0.115234 71.042 -31.9395 71.1064 -71.1982zM189.112 167.486v0.0839844
+c-0.0517578 25.7832 -20.9941 46.6445 -46.7783 46.5938s-46.6445 -20.9941 -46.5938 -46.7773c0.0507812 -25.7842 20.9941 -46.6445 46.7764 -46.5938c25.7266 0.113281 46.5371 20.9678 46.5957 46.6934zM502.535 167.486
+c-0.0205078 -39.3281 -31.918 -71.2422 -71.2471 -71.2217c-39.3291 0.0214844 -71.1943 31.918 -71.1729 71.2471c0.0195312 39.3281 31.918 71.1943 71.2471 71.1729c39.29 -0.0654297 71.1211 -31.9082 71.1729 -71.1982zM478.031 167.494
+c-0.00878906 25.7842 -20.918 46.6787 -46.7021 46.6699s-46.6787 -20.918 -46.6699 -46.7021s20.918 -46.6777 46.7021 -46.6699c25.7646 0.0458984 46.6357 20.9277 46.6699 46.6934v0.00878906z" />
+ <glyph glyph-name="odnoklassniki" unicode="" horiz-adv-x="320"
+d="M275.1 114c-27.3994 -17.4004 -65.0996 -24.2998 -90 -26.9004l20.9004 -20.5996l76.2998 -76.2998c27.9004 -28.6006 -17.5 -73.2998 -45.7002 -45.7002c-19.0996 19.4004 -47.0996 47.4004 -76.2998 76.5996l-76.2998 -76.5
+c-28.2002 -27.5 -73.5996 17.6006 -45.4004 45.7002c19.4004 19.4004 47.1006 47.4004 76.3008 76.2998l20.5996 20.6006c-24.5996 2.59961 -62.9004 9.09961 -90.5996 26.8994c-32.6006 21 -46.9004 33.3008 -34.3008 59c7.40039 14.6006 27.7002 26.9004 54.6006 5.7002
+c0 0 36.2998 -28.8994 94.8994 -28.8994c58.6006 0 94.9004 28.8994 94.9004 28.8994c26.9004 21.1006 47.0996 8.90039 54.5996 -5.7002c12.4004 -25.6992 -1.89941 -38 -34.5 -59.0996zM30.2998 318.3c0 71.7002 58.2998 129.7 129.7 129.7s129.7 -58 129.7 -129.7
+c0 -71.3994 -58.2998 -129.399 -129.7 -129.399s-129.7 58 -129.7 129.399zM96.2998 318.3c0 -35.0996 28.6006 -63.7002 63.7002 -63.7002s63.7002 28.6006 63.7002 63.7002c0 35.4004 -28.6006 64 -63.7002 64s-63.7002 -28.5996 -63.7002 -64z" />
+ <glyph glyph-name="odnoklassniki-square" unicode=""
+d="M184.2 270.9c0 22.0996 17.8994 40 39.7998 40s39.7998 -17.9004 39.7998 -40c0 -22 -17.8994 -39.8008 -39.7998 -39.8008s-39.7998 17.9004 -39.7998 39.8008zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352
+c26.5 0 48 -21.5 48 -48zM142.9 270.9c0 -44.6006 36.3994 -80.9004 81.0996 -80.9004s81.0996 36.2002 81.0996 80.9004c0 44.7998 -36.3994 81.0996 -81.0996 81.0996s-81.0996 -36.2002 -81.0996 -81.0996zM317.4 180.2
+c-4.60059 9.09961 -17.3008 16.7998 -34.1006 3.59961c0 0 -22.7002 -18 -59.2998 -18s-59.2998 18 -59.2998 18c-16.7998 13.2002 -29.5 5.5 -34.1006 -3.59961c-7.89941 -16.1006 1.10059 -23.7002 21.4004 -37c17.2998 -11.1006 41.2002 -15.2002 56.5996 -16.7998
+l-12.8994 -12.9004c-18.2002 -18 -35.5 -35.5 -47.7002 -47.7002c-17.5996 -17.5996 10.7002 -45.7998 28.4004 -28.5996l47.6992 47.8994c18.2002 -18.1992 35.7002 -35.6992 47.7002 -47.8994c17.6006 -17.2002 46 10.7002 28.6006 28.5996l-47.7002 47.7002l-13 12.9004
+c15.5 1.59961 39.0996 5.89941 56.2002 16.7998c20.3994 13.2998 29.2998 21 21.5 37z" />
+ <glyph glyph-name="get-pocket" unicode=""
+d="M407.6 384c22.7002 0 40.4004 -18.2002 40.4004 -40.5996v-135.2c0 -124.7 -99.7998 -224.2 -223.8 -224.2c-124.5 0 -224.2 99.5 -224.2 224.2v135.2c0 22.0996 18.5 40.5996 40.5996 40.5996h367zM245.6 115.5c111.9 107.5 114.801 105.4 114.801 123.2
+c0 16.8994 -13.8008 30.7002 -30.7002 30.7002c-16.9004 0 -14.9004 -2.40039 -105.5 -89.3008c-89.1006 85.5 -88.2002 89.3008 -105.2 89.3008c-16.9004 0 -30.7002 -13.8008 -30.7002 -30.7002c0 -18.1006 1.2002 -14.2998 114.9 -123.2
+c11 -11.0996 30 -11.7998 42.3994 0z" />
+ <glyph glyph-name="wikipedia-w" unicode="" horiz-adv-x="640"
+d="M640 396.8l-0.299805 -12.2002c-28.1006 -0.799805 -45 -15.7998 -55.7998 -40.2998c-25 -57.7998 -103.301 -240 -155.301 -358.6h-13.5996l-81.9004 193.1c-32.5 -63.5996 -68.2998 -130 -99.1992 -193.1c-0.300781 -0.299805 -15 0 -15 0.299805
+c-46.9004 109.7 -96.1006 218.6 -143.101 328.6c-11.3994 26.7002 -49.3994 70 -75.5996 69.7002c0 3.10059 -0.299805 10 -0.299805 14.2002h161.899v-13.9004c-19.2002 -1.09961 -52.7998 -13.2998 -43.2998 -34.1992c21.9004 -49.7002 103.6 -240.301 125.6 -288.601
+c15 29.7002 57.8008 109.2 75.3008 142.8c-13.9004 28.3008 -58.6006 133.9 -72.8008 160c-9.69922 17.8008 -36.0996 19.4004 -55.7998 19.7002v13.9004l142.5 -0.299805v-13.1006c-19.3994 -0.599609 -38.0996 -7.7998 -29.3994 -26.0996
+c18.8994 -40 30.5996 -68.1006 48.0996 -104.7c5.59961 10.7998 34.7002 69.4004 48.0996 100.8c8.90039 20.6006 -3.89941 28.6006 -38.5996 29.4004c0.299805 3.59961 0 10.2998 0.299805 13.5996c44.4004 0.299805 111.101 0.299805 123.101 0.600586v-13.6006
+c-22.5 -0.799805 -45.8008 -12.7998 -58.1006 -31.7002l-59.2002 -122.8c6.40039 -16.0996 63.3008 -142.8 69.2002 -156.7l122.4 282.601c-8.60059 23.0996 -36.4004 28.0996 -47.2002 28.2998v13.9004l127.8 -1.10059z" />
+ <glyph glyph-name="safari" unicode="" horiz-adv-x="512"
+d="M236.9 191.2c0 9.09961 6.59961 17.7002 16.2998 17.7002c8.89941 0 17.3994 -6.40039 17.3994 -16.1006c0 -9.09961 -6.39941 -17.7002 -16.0996 -17.7002c-9 0 -17.5996 6.7002 -17.5996 16.1006zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248
+s111 248 248 248s248 -111 248 -248zM477.4 192c0 122.3 -99.1006 221.4 -221.4 221.4s-221.4 -99.1006 -221.4 -221.4s99.1006 -221.4 221.4 -221.4s221.4 99.1006 221.4 221.4zM404.9 95.4004c0 -3.60059 13 -10.2002 16.2998 -12.2002
+c-27.4004 -41.5 -69.7998 -71.4004 -117.9 -83.2998l-4.39941 18.5c-0.300781 2.5 -1.90039 2.7998 -4.2002 2.7998c-1.90039 0 -3 -2.7998 -2.7998 -4.2002l4.39941 -18.7998c-13.2998 -2.7998 -26.7998 -4.2002 -40.3994 -4.2002c-36.3008 0 -72 10.2002 -103 29.0996
+c1.69922 2.80078 12.1992 18 12.1992 20.2002c0 1.90039 -1.69922 3.60059 -3.59961 3.60059c-3.90039 0 -12.2002 -16.6006 -14.7002 -19.9004c-41.7998 27.7002 -72 70.5996 -83.5996 119.6l19.0996 4.2002c2.2002 0.600586 2.7998 2.2002 2.7998 4.2002
+c0 1.90039 -2.7998 3 -4.39941 2.7998l-18.7002 -4.2998c-2.5 12.7002 -3.90039 25.5 -3.90039 38.5c0 37.0996 10.5 73.5996 30.2002 104.9c2.7998 -1.7002 16.1006 -10.8008 18.2998 -10.8008c1.90039 0 3.60059 1.40039 3.60059 3.30078
+c0 3.89941 -14.7002 11.2998 -18 13.5996c28.2002 41.2002 71.0996 70.9004 119.8 81.9004l4.2002 -18.5c0.599609 -2.2002 2.2002 -2.80078 4.2002 -2.80078s3 2.80078 2.7998 4.40039l-4.2002 18.2998c12.2002 2.2002 24.5996 3.60059 37.0996 3.60059
+c37.1006 0 73.3008 -10.5 104.9 -30.2002c-1.90039 -2.7998 -10.7998 -15.7998 -10.7998 -18c0 -1.90039 1.39941 -3.60059 3.2998 -3.60059c3.90039 0 11.2998 14.4004 13.2998 17.7002c41 -27.7002 70.2998 -70 81.7002 -118.2l-15.5 -3.2998
+c-2.5 -0.599609 -2.7998 -2.2002 -2.7998 -4.39941c0 -1.90039 2.7998 -3 4.2002 -2.80078l15.7998 3.60059c2.5 -12.7002 3.89941 -25.7002 3.89941 -38.7002c0 -36.2998 -10 -72 -28.7998 -102.7c-2.7998 1.40039 -14.3994 9.7002 -16.5996 9.7002
+c-2.10059 0 -3.7998 -1.7002 -3.7998 -3.59961zM371.7 337.6c-13 -12.1992 -134.2 -123.699 -137.601 -129.5l-96.5996 -160.5c12.7002 11.9004 134.2 124 137.3 129.301z" />
+ <glyph glyph-name="chrome" unicode="" horiz-adv-x="496"
+d="M131.5 230.5l-76.4004 117.4c47.6006 59.1992 119 91.7998 192 92.0996c42.3008 0.299805 85.5 -10.5 124.801 -33.2002c43.3994 -25.2002 76.3994 -61.3994 97.3994 -103l-205.3 10.7998c-58.0996 3.40039 -113.4 -29.2998 -132.5 -84.0996zM164.4 192
+c0 46.2998 37.3994 83.5996 83.5996 83.5996s83.5996 -37.3994 83.5996 -83.5996s-37.3994 -83.5996 -83.5996 -83.5996s-83.5996 37.3994 -83.5996 83.5996zM479.3 281.2c43.5 -111.9 0 -241.9 -107.399 -303.9c-43.4004 -25.2002 -91.3008 -35.3994 -137.801 -32.8994
+l112.101 172.399c31.8994 49 31.2998 112.9 -6.60059 157.2zM133.7 144.4c26.2998 -51.7002 81.8994 -83.3008 139.5 -72.5l-63.7002 -124.801c-118.7 18.2002 -209.5 120.9 -209.5 244.9c0 50.0996 14.9004 96.9004 40.4004 135.9z" />
+ <glyph glyph-name="firefox" unicode="" horiz-adv-x="480"
+d="M478.1 212.7c1.30078 -7.10059 1.90039 -14.2998 1.90039 -21.6006v-2.7998c-1.40039 -34 -11.5996 -67 -29.5996 -95.8994c-1 -1.5 -1.80078 -2.90039 -2.7002 -4.30078c2.7002 -7.19922 2.59961 -15.0996 -0.400391 -22.1992
+c-5 -19.4004 -16.5996 -36.4004 -32.8994 -48.1006c-10.8008 -8.7002 -22.7002 -16.2002 -35.3008 -22.0996l-1.89941 -0.900391l-1 -0.5c-1.7002 -0.700195 -3.2998 -1.39941 -4.90039 -2.09961c-2.39941 -5.10059 -5.7998 -9.60059 -9.89941 -13.2998
+c-2.5 -3.10059 -30.1006 -35 -113.801 -35c-23.5996 0 -47.1992 3.5 -69.7998 10.2998c0.799805 -0.299805 1.60059 -0.700195 2.40039 -1c-2.60059 0.899414 -5.2002 1.7998 -7.7002 2.7002c-19.0996 5.89941 -37.2002 14.5996 -53.7998 25.7998
+c-40.7002 24.7002 -72.9004 61.2002 -92.2998 104.7c-14.5 31.3994 -21.1006 65.7998 -19.4004 100.3c-2.7998 -8.2998 -5.2002 -16.7002 -7 -25.2998c0 29.1992 5.5 58.0996 16.2002 85.1992c-5.5 -7.89941 -10.2998 -16.2998 -14.2998 -25.0996
+c5.69922 23.0996 14.6992 45.2002 26.7998 65.5996c3.7002 6.10059 7.89941 11.9004 12.7002 17.1006v0.200195c-0.100586 2.69922 0.0996094 5.5 0.5 8.2998c1.5 16.2998 5.69922 32.2002 12.3994 47.0996l0.299805 0.700195c0.100586 0.299805 0 -1 0 -1.7002
+s-0.0996094 -1.2998 0 -1c0.600586 2 1.40039 4 2.30078 5.90039c1 2.09961 2.39941 4.09961 3.89941 5.7998c0.100586 0.0996094 0.200195 0.200195 0.299805 0.400391c0.100586 0.199219 -0.399414 -2 -0.5 -3.10059v-0.5c0.600586 1.2002 1.30078 2.40039 2.2002 4.5
+c2.10059 5.90039 6 11 11.1006 14.5l0.199219 0.100586c-0.299805 -9 1.2002 -17.9004 4.40039 -26.2002v-0.100586c0.299805 -0.399414 0.5 1.30078 0.900391 1.30078c0.0996094 0 0.199219 -0.100586 0.199219 -0.200195
+c0.900391 -1.7998 1.80078 -3.60059 2.7002 -5.2002c1.2998 -2.2002 2.5 -4.2002 3.7002 -6l0.400391 -0.200195l0.199219 0.100586c2.60059 -4.2002 5.90039 -7.80078 9.7002 -10.9004h-0.200195l0.200195 -0.0996094c18.2998 3.59961 37.2002 2 54.6006 -4.7002
+l0.0996094 0.0996094c2.09961 2.60059 4.59961 4.90039 7.2998 6.90039c0 -0.900391 -0.0996094 -1.7998 -0.200195 -2.7002c4 5 9.10059 9 15 11.5c-0.399414 -0.700195 -0.5 -1.40039 -0.5 -2.2002c7.40039 4.2998 15.5 7.40039 23.9004 9
+c1.09961 0 -3.5 -1.7998 -5.09961 -3.09961c3.69922 1.59961 7.69922 2.59961 11.6992 2.7998c6.60059 0.700195 14 -2.09961 12.6006 -2.7002c-2.7998 -1 -5.5 -2.2002 -8.2002 -3.5c-0.799805 -0.700195 3.2002 0.200195 2.40039 -0.5
+c-14 -9.2002 -24.8008 -22.5996 -30.8008 -38.2998v-0.0996094c2.5 -11 11.4004 -19.3008 22.5 -21.1006c31.5 -3 37.5 -5.59961 38.4004 -9.09961v-1.5c-0.0996094 -1 -0.200195 -1.90039 -0.299805 -2.7998c-1.2002 -6.90039 -4.90039 -13.2002 -10.2002 -17.7002
+c-1.40039 -1.2998 -2.90039 -2.5 -4.5 -3.5c-1.09961 -0.700195 -6.40039 -2.7998 -12.7998 -5.60059c-7.90039 -3.19922 -15.5 -7.09961 -22.7002 -11.5996c-1.2998 -0.799805 -2.40039 -1.7002 -3.40039 -2.7002c-0.399414 -0.399414 -1.19922 -1.5 -1.19922 -1.5
+v-0.0996094c0.5 -1.2002 1 -2.40039 1.19922 -3.7002c-1.39941 1.7002 -2.69922 1.09961 -1.89941 -0.5c0.899414 -2.5 1.2998 -5.2002 1.09961 -7.7998c0.200195 -4.7998 -0.700195 -9.60059 -2.59961 -14c-2.10059 1.5 -4.2998 2.89941 -6.60059 4.09961h-0.199219
+c2.5 -1.59961 4.2998 -3.89941 5.39941 -6.59961c0.700195 -2.2002 -0.299805 -2.7002 -0.299805 -2.7002c-1.40039 2 -3.09961 3.59961 -5.2002 4.7002c-3.09961 1.7998 -8.7998 4.7002 -11.3994 5.7998c-0.300781 -0.200195 -0.5 -0.0996094 -0.800781 -0.200195
+c0.800781 -1.2998 2.10059 -3.7998 2.10059 -3.7998s-1.7998 1.09961 -4.7998 2.59961c-3.90039 -1.7998 -7.2002 -4.89941 -9.30078 -8.69922c-3.5 -7.7002 -3.09961 -16.7002 1 -24.1006c4 -6 9.10059 -11.2002 15 -15.2002
+c0.400391 -0.299805 -3.39941 1.10059 -3.09961 0.800781c4.59961 -3.2002 9.40039 -6.10059 14.4004 -8.60059c1.5 -1 -5 1.2002 -3.40039 0.299805c1.40039 -0.899414 2.7998 -1.69922 4.2998 -2.5c22.9004 -12.0996 38.9004 0.400391 56.4004 2.90039
+c16.7998 3 33.7998 -3.59961 44.2002 -17c6 -8.5 -0.600586 -16.7002 -9 -14h-0.200195c-8.60059 2.90039 -19.1006 -4.2998 -36.6006 -14c-17.2998 -8.2998 -36.8994 -10.5996 -55.5996 -6.59961c-4.7998 0.899414 -9.40039 2.09961 -14 3.69922l-2 0.700195
+l0.200195 -0.299805c8.7998 -12.2002 19.8994 -22.5 32.7998 -30.2998c8.7002 -4.40039 17.9004 -7.5 27.4004 -9.2998c8 -1.90039 16.1992 -2.80078 24.5 -2.80078c61 -0.0996094 110.6 49.4004 110.6 110.4c0.0996094 15.9004 -3.09961 31.7998 -9.2998 46.5
+c20.7002 -12.2998 37.5996 -30.2002 48.7998 -51.5c-13.9004 40.5996 -40.2998 56.4004 -64.7002 76.5996c-19.5996 14.8008 -34.7002 34.9004 -43.3994 57.9004c-25.2002 67.7998 33.0996 132.9 33.0996 132.9s-3.59961 -15.1006 27.4004 -44.3008
+c6.39941 -5.89941 16.7998 -14.5 28.8994 -26.6992c1.7002 9.2998 4.2002 18.3994 7.40039 27.2998c2.5 -14.7002 7.7998 -28.7998 15.3994 -41.6006c11.7002 -16.6992 21.9004 -25.5996 30.7002 -40c1.90039 -2.5 3.7998 -5.19922 5.60059 -7.89941
+c5.09961 -7.2002 9.5 -14.7998 13.2998 -22.7998c6 -12 10.7998 -24.5 14.5 -37.4004c3 -10.4004 4.89941 -20.9004 5.7998 -31.5996c2.90039 3.89941 4.7002 5.89941 4.7002 5.89941s0.700195 -2.59961 1.39941 -7.09961zM179.1 310.3
+c-0.5 -1.2002 -0.899414 -2.2998 -1.2998 -3.5c0.400391 1.2002 0.900391 2.40039 1.2998 3.5z" />
+ <glyph glyph-name="opera" unicode="" horiz-adv-x="496"
+d="M313.9 415.3c-170.2 0 -252.601 -223.8 -147.5 -355.1c36.5 -45.4004 88.5996 -75.6006 147.5 -75.6006c36.2998 0 70.2998 11.1006 99.3994 30.4004c-43.7998 -39.2002 -101.899 -63 -165.3 -63c-3.90039 0 -8 0 -11.9004 0.299805
+c-131.5 6.10059 -236.1 114.601 -236.1 247.7c0 137 111 248 248 248h0.799805c63.1006 -0.299805 120.7 -24.0996 164.4 -63.0996c-29 19.3994 -63.1006 30.3994 -99.2998 30.3994zM415.7 17.5996c-40.9004 -24.6992 -90.7002 -23.5996 -132 5.80078
+c56.2002 20.5 97.7002 91.5996 97.7002 176.6c0 84.7002 -41.2002 155.8 -97.4004 176.6c41.7998 29.2002 91.2002 30.3008 132.9 5c105.899 -98.6992 105.5 -265.699 -1.2002 -364z" />
+ <glyph glyph-name="internet-explorer" unicode="" horiz-adv-x="512"
+d="M483.049 288.294c25.1963 -45.4473 33.2578 -97.5811 26.8516 -141.162h-328.792c0 -100.432 144.31 -136.029 196.818 -47.4355h120.833c-32.5645 -91.7285 -119.689 -146.022 -216.813 -146.022c-35.1367 0 -70.2725 0.143555 -101.695 15.5732
+c-87.3975 -44.4941 -180.251 -56.5693 -180.251 42.0059c0 45.8066 23.2461 107.096 43.9922 145.022c35.1357 63.7227 81.4121 124.875 135.687 173.168c-43.7061 -18.8604 -91.125 -66.2959 -121.977 -101.158c25.877 112.787 129.466 193.638 237.098 186.457
+c130.032 59.7939 209.673 34.1445 209.673 -38.5771c0 -27.4326 -10.5684 -63.2959 -21.4238 -87.8711zM64.5586 101.123c-73.001 -152.4 11.5254 -172.244 100.267 -123.304c-46.5635 27.4326 -82.5557 72.1533 -100.267 123.304zM180.536 209.996h207.961
+c-2 55.1514 -50.5635 94.8711 -103.981 94.8711c-53.7041 0 -101.979 -39.7197 -103.979 -94.8711zM365.072 397.596c46.2764 -18.002 85.9824 -57.2939 112.263 -99.5859c7.1416 18.8604 14.5693 47.8643 14.5693 67.8672c0 32.0049 -22.8525 53.7217 -54.2744 53.7217
+c-23.9951 0 -51.1328 -11.7158 -72.5576 -22.0029z" />
+ <glyph glyph-name="contao" unicode="" horiz-adv-x="512"
+d="M45.4004 143c14.3994 -67.0996 26.3994 -129 68.1992 -175h-79.5996c-18.7002 0 -34 15.2002 -34 34v380c0 18.7002 15.2002 34 34 34h57.7002c-13.7998 -12.5996 -26.1006 -27.2002 -36.9004 -43.5996c-45.3994 -70 -27 -146.801 -9.39941 -229.4zM478 416
+c18.7998 0 34 -15.2002 34 -34v-380.1c0 -18.8008 -15.2998 -34 -34 -34h-52.0996c38.6992 38.3994 60.5996 92.0996 57.3994 163.6l-137.399 -29.5996c-1.7002 -32.5 -12.9004 -63.8008 -57.4004 -73.2002c-24.9004 -5.2998 -45.4004 0.599609 -58.2998 11.7002
+c-15.7998 13.5 -28.4004 31 -49.5 131.199c-21.4004 100.5 -17 121.601 -8.2002 140.301c7.2998 15.2998 23.7002 29.2998 48.2998 34.5996c44.7998 9.40039 67.7002 -14.9004 82.6006 -43.9004l137.1 29.3008c-13.5 34.5996 -31.2998 62.6992 -52.7002 84.0996h90.2002z
+" />
+ <glyph glyph-name="500px" unicode=""
+d="M103.3 103.7c-6.5 14.2002 -6.89941 18.2998 7.40039 23.0996c25.5996 8 8 -9.2002 43.2002 -49.2002h0.299805v93.9004c1.2002 50.2002 44 92.2002 97.7002 92.2002c53.8994 0 97.6992 -43.5 97.6992 -96.7998c0 -63.4004 -60.7998 -113.2 -128.5 -93.3008
+c-10.5 4.2002 -2.09961 31.7002 8.5 28.6006c53 0 89.4004 10.0996 89.4004 64.3994c0 61 -77.0996 89.6006 -116.9 44.6006c-23.5 -26.4004 -17.5996 -42.1006 -17.5996 -157.601c50.7002 -31 118.3 -22 160.4 20.1006c24.7998 24.7998 38.5 58 38.5 93
+c0 35.2002 -13.8008 68.2002 -38.8008 93.2998c-24.7998 24.7998 -57.7998 38.5 -93.2998 38.5s-68.7998 -13.7998 -93.5 -38.5c-0.299805 -0.299805 -16 -16.5 -21.2002 -23.9004l-0.5 -0.599609c-3.2998 -4.7002 -6.2998 -9.09961 -20.0996 -6.09961
+c-6.90039 1.69922 -14.2998 5.7998 -14.2998 11.7998v186.8c0 5 3.89941 10.5 10.5 10.5h241.3c8.2998 0 8.2998 -11.5996 8.2998 -15.0996c0 -3.90039 0 -15.1006 -8.2998 -15.1006h-223.2v-132.899h0.299805c104.2 109.8 282.801 36 282.801 -108.9
+c0 -178.1 -244.801 -220.3 -310.101 -62.7998zM166.6 364.5c3.80078 18.7998 145.101 50.7998 238.301 -38.2002c8.5 -7.5 -9.5 -22.7998 -14.3008 -22.7998c-6.59961 0 -84.5996 87.9004 -209.399 40.4004c-10 -3.90039 -15.1006 16.3994 -14.6006 20.5996zM393 33.2998
+c8.09961 8 27.5996 -12.5996 20.7002 -20.3994c-135.601 -135.601 -357.601 -52.1006 -381.601 121.3c-1.5 10.7002 28.9004 15.5 28.9004 3.2998c33 -165 222 -214.1 332 -104.2zM213.6 141.4c0 3.39941 2.30078 4.69922 20.4004 22.5996l-18.2002 18.2002
+c-5.59961 5.59961 7.40039 17.2998 12.4004 17.2998c3.09961 0 2.89941 -0.700195 21.5 -19.5l17.8994 17.9004c6.10059 6.09961 22.5 -8.90039 16.2002 -15.7002l-18.2002 -18.2002l17.3008 -17.2998c7.7998 -7.7998 -5.30078 -18.2002 -10.7002 -18.2002
+c-3.2002 0 -2.7002 0.200195 -22.2998 19.5c-19.7002 -19.7002 -18.5 -19.5 -22.3008 -19.5c-2.39941 0 -5.5 1.40039 -8.5 4.40039c-1.19922 1.19922 -5.5 4.5 -5.5 8.5z" />
+ <glyph glyph-name="amazon" unicode=""
+d="M257.2 285.3c0 39.2998 5.2002 69.2002 -35.5 69.1006c0 0 -37.9004 0 -54.2002 -49.5l-73.5 6.7998c0 49.2998 46.7002 104.3 134.7 104.3c87.7998 0 112.3 -57 112.3 -82.2998v-147.101c0 -27.5 32.2998 -52.7998 32.2998 -52.7998l-56.7998 -56
+c-9.90039 9.2998 -38.7998 36.6006 -45.2998 46.7998c-45.2002 -70.7998 -183.5 -66.2998 -183.5 43.2002c0 102 120.8 115.7 169.5 117.5zM257.2 198.5v40.5996c-33.7002 -1.09961 -84.2002 -10.5996 -84.2002 -57.7998c0 -50.7998 84.2002 -62.7998 84.2002 17.2002z
+M393.2 35c-7.7002 -10 -70 -67 -174.5 -67s-184.5 71.5 -209 101c-6.7998 7.7002 1 11.2998 5.5 8.2998c73.2998 -44.5 187.8 -117.8 372.5 -30.2998c7.5 3.7002 13.2998 -2 5.5 -12zM433 32.7998c-6.5 -15.7998 -16 -26.7998 -21.2002 -31
+c-5.5 -4.5 -9.5 -2.7002 -6.5 3.7998s19.2998 46.5 12.7002 55c-6.5 8.30078 -37 4.30078 -48 3.2002c-10.7998 -1 -13 -2 -14 0.299805c-2.2998 5.7002 21.7002 15.5 37.5 17.5c15.7002 1.80078 41 0.800781 46 -5.69922c3.7002 -5.10059 0 -27.1006 -6.5 -43.1006z" />
+ <glyph glyph-name="houzz" unicode=""
+d="M275.9 117.3h-104.601v-149.3h-154.3v448h109.5v-104.5l305.1 -85.5996v-257.9h-155.699v149.3z" />
+ <glyph glyph-name="vimeo-v" unicode=""
+d="M447.8 294.4c-2 -43.6006 -32.3994 -103.301 -91.3994 -179.101c-60.9004 -79.2002 -112.4 -118.8 -154.601 -118.8c-26.0996 0 -48.2002 24.0996 -66.2998 72.2998c-35.2002 129.2 -50.2002 204.9 -79.2998 204.9c-3.40039 0 -15.1006 -7.10059 -35.2002 -21.1006
+l-21 27.2002c51.5996 45.2998 100.9 95.7002 131.8 98.5c34.9004 3.40039 56.2998 -20.5 64.4004 -71.5c28.7002 -181.5 41.3994 -208.899 93.5996 -126.7c18.7002 29.6006 28.7998 52.1006 30.2002 67.6006c4.7998 45.8994 -35.7998 42.7998 -63.2998 31
+c22 72.0996 64.0996 107.1 126.2 105.1c45.7998 -1.2002 67.5 -31.0996 64.8994 -89.3994z" />
+ <glyph glyph-name="black-tie" unicode=""
+d="M0 416h448v-448h-448v448zM316.5 90.7998l-64.5 184l64.4004 86.6006h-184.9l64.5 -86.6006l-64.5 -184l92.5 -88.7002z" />
+ <glyph glyph-name="fonticons" unicode=""
+d="M0 416h448v-448h-448v448zM187 275.1c11.9004 0 16.5996 -4.2998 16.2998 -23l50.7002 6.10059c0 44.5996 -30.5996 52.7998 -64.7002 52.7998c-50.7998 0 -77.2998 -20.4004 -77.2998 -70v-21h-28v-37.4004h22.2002c2.89941 0 5.7998 0 5.7998 -2.2998v-111.399
+c0 -5.60059 -1.5 -7.30078 -6.7002 -7.90039l-21.2998 -2v-25.7002h130.7v25.1006l-43.5 4.09961c-5.2002 0.599609 -3.2002 1.5 -3.2002 7.2998v112.9h55.7002l11.0996 37.2998h-67.3994c-2.90039 0 0.599609 2 0.599609 4.40039v23.2998
+c0 17.5 0.599609 27.3994 19 27.3994zM261.3 33.2998h102.601v25.1006l-15.7002 2.59961c-5.5 0.900391 -2.90039 1.5 -2.90039 7.2998v151.7h-80.2002l-6.69922 -29.5l24.1992 -6.40039c3.80078 -1.19922 6.7002 -3.7998 6.7002 -7.89941v-107.9
+c0 -5.59961 -2.39941 -6.7002 -7.59961 -7.2998l-20.4004 -2.59961v-25.1006zM342.1 288.8l21.9004 24.2002l-3.5 9.59961h-27.7002l-15.5 28h-9.2998l-15.5 -28h-27.7002l-3.5 -9.59961l21.7998 -24.2002l-9 -33.2002l7.30078 -7.2998l31.1992 16.6006l31.2002 -16.6006
+l7.2998 7.2998z" />
+ <glyph glyph-name="reddit-alien" unicode="" horiz-adv-x="512"
+d="M440.3 244.5c55.2998 0 73.7002 -74.0996 23.7998 -99.7002c2.2002 -7.89941 3.10059 -16.7002 3.10059 -25.0996c0 -83.7998 -94.4004 -151.7 -210.8 -151.7c-115.9 0 -210.301 67.9004 -210.301 151.7c0 8.39941 0.800781 16.7998 2.60059 24.7002
+c-50.9004 25.5 -32.7002 100.1 22.8994 100.1c15 0 28.7002 -6.2002 38.4004 -16.2998c35.7998 24.7002 83.4004 40.5996 136.3 42.7998l30.4004 137.6c1.2998 4.90039 6.09961 8.40039 11 7.10059l97.3994 -21.6006c6.60059 12.7002 19.9004 22 35.3008 22
+c22.0996 0 39.6992 -18.0996 39.6992 -39.6992c0 -21.6006 -17.6992 -39.7002 -39.6992 -39.7002c-21.6006 0 -39.2002 17.5996 -39.2002 39.2002l-88.2002 19.7998l-27.7002 -124.8c53.2998 -1.7002 101.4 -17.6006 137.101 -42.3008
+c9.69922 9.7002 22.8994 15.9004 37.8994 15.9004zM129.4 139.1c0 -21.5996 17.6992 -39.2998 39.6992 -39.1992c21.6006 0 39.2002 17.5996 39.2002 39.1992c0 22.1006 -17.5996 39.7002 -39.2002 39.7002c-22.0996 0 -39.6992 -17.7002 -39.6992 -39.7002zM343.7 45.5996
+c4 3.5 4 9.7002 -0.100586 13.7002c-3.5 3.5 -9.69922 3.5 -13.1992 0c-29 -29 -121.2 -28.5 -149 0c-3.5 3.5 -9.7002 3.5 -13.2002 0c-4 -4 -4 -10.2002 0 -13.7002c36.3994 -36.3994 139.1 -36.3994 175.5 0zM342.9 99.7998c22 0 39.5996 17.7002 39.6992 39.2002
+c0 22.0996 -17.6992 39.7002 -39.6992 39.7002c-21.6006 0 -39.2002 -17.7002 -39.2002 -39.7002c0 -21.5996 17.5996 -39.2002 39.2002 -39.2002z" />
+ <glyph glyph-name="edge" unicode="" horiz-adv-x="512"
+d="M25.7139 219.837c0.111328 0.162109 0.230469 0.323242 0.341797 0.485352c-0.0205078 -0.162109 -0.0449219 -0.323242 -0.0644531 -0.485352h-0.277344zM486.286 204.329l0.000976562 -52.0645h-314.073c1.38379 -128.497 191.392 -124.065 272.255 -67.5713v-104.404
+c-47.3555 -28.5244 -156.774 -53.1709 -240.132 -21.3242c-70.6191 27.1406 -119.913 100.528 -120.743 171.977c-1.10742 92.2188 45.6943 153.422 120.742 188.314c-15.7852 -19.9395 -27.9697 -41.54 -34.3389 -78.9258h175.853
+c10.2471 104.957 -99.4189 104.957 -99.4189 104.957c-103.302 -3.58984 -177.945 -63.6543 -220.375 -124.966c14.5615 114.465 92.9062 219.955 232.837 219.678c85.0195 0 157.605 -39.8779 198.593 -113.265c21.0469 -37.9404 28.8008 -78.373 28.8008 -122.405z" />
+ <glyph glyph-name="codiepie" unicode="" horiz-adv-x="472"
+d="M422.5 245.1c30.7002 0 33.5 -53.0996 -0.299805 -53.0996h-10.7998v-44.2998h-26.6006v97.3994h37.7002zM472 95.4004c-42.0996 -91.9004 -121.6 -151.4 -224 -151.4c-137 0 -248 111 -248 248s111 248 248 248c97.4004 0 172.8 -53.7002 218.2 -138.4l-186 -108.8z
+M433.5 82.9004l-60.2998 30.6992c-27.1006 -44.2998 -70.4004 -71.3994 -122.4 -71.3994c-82.5 0 -149.2 66.7002 -149.2 148.899c0 82.5 66.7002 149.2 149.2 149.2c48.4004 0 88.9004 -23.5 116.9 -63.3994l59.5 34.5996c-40.7002 62.5996 -104.7 100 -179.2 100
+c-121.2 0 -219.5 -98.2998 -219.5 -219.5s98.2998 -219.5 219.5 -219.5c78.5996 0 146.5 42.0996 185.5 110.4z" />
+ <glyph glyph-name="modx" unicode=""
+d="M356 206.2l36.7002 -23.7002v-214.5l-133 83.7998zM440 373l-83.2002 -134.3l-153.5 96.5l23 37.7998h213.7zM351 230.2l-249.8 -57.7002l-46 29v214.5zM97 153.8l249.7 57.7002l-125 -200.5h-213.7z" />
+ <glyph glyph-name="fort-awesome" unicode="" horiz-adv-x="512"
+d="M489.2 160.1c2.59961 0 4.59961 -2 4.5 -4.59961v-219.5h-182.9v96c0 72.5996 -109.7 72.5996 -109.7 0v-96h-182.899v219.5c0 2.59961 2 4.59961 4.59961 4.59961h27.4004c2.59961 0 4.59961 -2 4.59961 -4.59961v-32h36.6006v178.3
+c0 2.60059 2 4.60059 4.59961 4.60059h27.4004c2.59961 0 4.59961 -2 4.59961 -4.60059v-32h36.2998v32c0 2.60059 2 4.60059 4.60059 4.60059h27.3994c2.60059 0 4.60059 -2 4.60059 -4.60059v-32h36.5996v32c0 6 8 4.60059 11.7002 4.60059v111.699
+c-5.40039 2.60059 -9.10059 8.30078 -9.10059 14.3008c0 20.7998 31.4004 20.6992 31.4004 0c0 -6 -3.7002 -11.7002 -9.09961 -14.3008v-4.89941c7.69922 1.7998 15.6992 2.89941 23.6992 2.89941c11.7002 0 22.9004 -4.2998 32.6006 -4.2998
+c8.89941 0 18.8994 4.2998 24 4.2998c2.59961 0 4.59961 -2 4.59961 -4.59961v-60c0 -6.90039 -23.0996 -8 -27.7002 -8c-10.5 0 -20.5 4.2998 -31.3994 4.2998c-8.60059 0 -17.4004 -1.39941 -25.7002 -3.39941v-38c3.7002 0 11.7002 1.39941 11.7002 -4.60059v-32h36.5996
+v32c0 2.60059 2 4.60059 4.60059 4.60059h27.3994c2.60059 0 4.60059 -2 4.60059 -4.60059v-32h36.5996v32c0 2.60059 2 4.60059 4.59961 4.60059h27.4004c2.59961 0 4.59961 -2 4.59961 -4.60059v-178.3h36.6006v32c0 2.59961 2 4.59961 4.59961 4.59961h27.4004z
+M201.1 164.6v64c0 2.60059 -2 4.60059 -4.59961 4.60059h-27.4004c-2.59961 0 -4.59961 -2 -4.59961 -4.60059v-64c0 -2.59961 2 -4.59961 4.59961 -4.59961h27.4004c2.59961 0 4.59961 2 4.59961 4.59961zM347.5 164.6v64c0 2.60059 -2 4.60059 -4.59961 4.60059h-27.4004
+c-2.59961 0 -4.59961 -2 -4.59961 -4.60059v-64c0 -2.59961 2 -4.59961 4.59961 -4.59961h27.4004c2.59961 0 4.59961 2 4.59961 4.59961z" />
+ <glyph glyph-name="usb" unicode="" horiz-adv-x="640"
+d="M641.5 192c0 -3.09961 -1.7002 -6.09961 -4.5 -7.5l-89.0996 -53.5c-1.40039 -0.799805 -2.80078 -1.40039 -4.5 -1.40039c-1.40039 0 -3.10059 0.300781 -4.5 1.10059c-2.80078 1.7002 -4.5 4.5 -4.5 7.7998v35.5996h-238.7
+c25.2998 -39.5996 40.5 -106.899 69.5996 -106.899h26.7002v26.7998c0 5 3.90039 8.90039 8.90039 8.90039h89.0996c5 0 8.90039 -3.90039 8.90039 -8.90039v-89.0996c0 -5 -3.90039 -8.90039 -8.90039 -8.90039h-89.0996c-5 0 -8.90039 3.90039 -8.90039 8.90039v26.6992
+h-26.7002c-75.3994 0 -81.0996 142.5 -124.7 142.5h-100.3c-8.09961 -30.5996 -35.8994 -53.5 -69 -53.5c-39.2998 0.100586 -71.2998 32.1006 -71.2998 71.4004s32 71.2998 71.2998 71.2998c33.1006 0 61 -22.7998 69 -53.5c39.1006 0 43.9004 -9.5 74.6006 60.4004
+c40.0996 89.0996 58.0996 82.0996 108.899 82.0996c7.5 20.9004 27 35.6006 50.4004 35.6006c29.5 0 53.5 -23.9004 53.5 -53.5c0 -29.6006 -23.9004 -53.5 -53.5 -53.5c-23.4004 0 -42.9004 14.7998 -50.4004 35.5996h-29.7998
+c-29.0996 0 -44.2998 -67.4004 -69.5996 -106.9h310.1v35.6006c0 3.2998 1.7002 6.09961 4.5 7.7998s6.40039 1.40039 8.90039 -0.299805l89.0996 -53.5c2.7998 -1.10059 4.5 -4.10059 4.5 -7.2002z" />
+ <glyph glyph-name="product-hunt" unicode="" horiz-adv-x="512"
+d="M326.3 229.2c0 -20.5 -16.7002 -37.2002 -37.2002 -37.2002h-70.2998v74.4004h70.2998c20.5 0 37.2002 -16.7002 37.2002 -37.2002zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM375.9 229.2
+c0 47.8994 -38.9004 86.7998 -86.8008 86.7998h-119.899v-248h49.5996v74.4004h70.2998c47.9004 0 86.8008 38.8994 86.8008 86.7998z" />
+ <glyph glyph-name="mixcloud" unicode="" horiz-adv-x="640"
+d="M424.43 228.271c42.3623 -9.1377 74.4805 -47.0693 74.4805 -92.2002c0 -52.3311 -42.6406 -94.6934 -94.9688 -94.6934h-289.614c-62.5752 0 -113.243 50.668 -113.243 112.966c0 56.7598 42.085 103.554 96.6299 111.582
+c22.9814 67.5586 86.9395 114.074 159.205 114.074c87.2158 0 159.205 -66.7266 167.511 -151.729zM403.941 83.7412c29.0713 0 52.6064 23.5352 52.6064 52.3301c0 22.1494 -14.1211 40.9766 -33.502 48.4531c-1.38477 -8.58301 -3.59961 -17.166 -6.36914 -25.4727
+c-8.01367 -25.6484 -49.0898 -14.2266 -40.1465 13.29c4.15332 12.7373 6.36914 26.0264 6.36914 39.5938c0 69.2197 -56.4834 125.702 -125.979 125.702c-49.8379 0 -94.6934 -29.626 -114.628 -73.9258c19.3809 -4.98438 37.3779 -14.9512 52.0527 -29.3486
+c19.9531 -19.9531 -10.2168 -50.1436 -30.1797 -30.1807c-13.29 13.291 -31.0107 20.7666 -49.8379 20.7666c-39.04 0 -70.8809 -31.5645 -70.8809 -70.6045s31.8408 -70.6035 70.8809 -70.6035h289.614zM639.01 136.071c0 -44.0244 -12.7363 -86.3867 -37.1016 -122.657
+c-4.15332 -6.0918 -10.7979 -9.41406 -17.7197 -9.41406c-16.3174 0 -27.1279 18.8262 -17.4434 32.9492c19.3809 29.3486 29.9033 63.6816 29.9033 99.1221c0 35.4395 -10.5215 69.7725 -29.9033 98.8447c-15.6553 22.8311 19.3613 47.2402 35.1631 23.5342
+c24.3662 -35.9932 37.1016 -78.3564 37.1016 -122.379zM568.13 136.071c0 -31.5654 -9.13672 -62.0215 -26.8564 -88.3252c-4.15332 -6.09082 -10.7988 -9.13574 -17.7207 -9.13574c-17.2012 0 -27.0215 18.9785 -17.4424 32.9473
+c13.0127 19.1045 19.6572 41.2559 19.6572 64.5137c0 22.9805 -6.64453 45.4072 -19.6572 64.5117c-15.7617 22.9863 19.0078 47.0947 35.1631 23.5352c17.7188 -26.0264 26.8564 -56.4834 26.8564 -88.0469z" />
+ <glyph glyph-name="scribd" unicode="" horiz-adv-x="384"
+d="M42.2998 195.3c-16.0996 19 -24.7002 45.9004 -24.7998 79.9004c0 100.399 75.2002 153.1 167.2 153.1c98.5996 1.60059 156.8 -49 184.3 -70.5996l-50.5 -72.1006l-37.2998 24.6006l26.8994 38.5996c-36.5 24 -79.3994 36.5 -123 35.7998
+c-50.6992 0.800781 -111.699 -27.1992 -111.699 -76.1992c0 -18.7002 11.1992 -20.7002 28.5996 -15.6006c23.2998 5.2998 41.9004 -0.599609 55.7998 -14c26.4004 -24.2998 23.2002 -67.5996 -0.700195 -91.8994c-29.1992 -29.5 -85.1992 -27.3008 -114.8 8.39941z
+M360 189.4c33.9004 -40.4004 36.7998 -138.2 -20.2998 -189.601c-39.2002 -33.5996 -82.2002 -44.0996 -133.601 -44.0996c-70.2998 -0.299805 -138.199 25.3994 -190.699 72.2002l-15.4004 13.7998l60.7998 71.7998l35.6006 -27.4004l-33.7002 -39.3994
+c41.7002 -30.9004 92.2002 -47.5 144.1 -47.2998c61.9004 0 104.7 23.5 121.4 64.3994c0.899414 4.2002 1.39941 8.40039 1.39941 12.7002c0 18.7002 -11.1992 20.7002 -28.5996 15.5996c-23.2998 -5.2998 -42.2002 0.5 -56.2998 14.4004
+c-12.4004 11.2998 -19.1006 27.5 -18.4004 44.2998c-0.599609 39.2002 32.4004 69.2002 70.5 67.2002c24.2998 0.799805 47.7002 -9.7998 63.2002 -28.5996z" />
+ <glyph glyph-name="bluetooth" unicode=""
+d="M292.6 276.9l-42.8994 -42.9004l-0.299805 86zM249.4 57.0996l0.199219 86l42.9004 -42.8994zM416 188.6c0 -205.6 -71.9004 -252.6 -185.1 -252.6c-113.2 0 -198.9 47 -198.9 252.6c0 205.601 83.4004 259.4 196.6 259.4c113.2 0 187.4 -53.9004 187.4 -259.4z
+M257.5 188.6l79.4004 88.6006l-125.101 134.3v-176.9l-73.7998 73.8008l-27 -26.9004l92.7002 -93l-92.7002 -93l26.9004 -26.9004l73.7998 73.8008l2.2998 -170l127.4 127.5z" />
+ <glyph glyph-name="bluetooth-b" unicode="" horiz-adv-x="320"
+d="M196.48 187.977l97.9111 -103.333l-148.552 -148.644l-2.71484 198.284l-86.1113 -86.1113l-31.4053 31.4053l108.061 108.398l-108.061 108.399l31.4053 31.4053l86.1113 -86.1113v206.33l145.981 -156.69zM237.34 290.973l-50.3145 50.3174l0.337891 -100.295z
+M187.363 134.96l-0.337891 -100.294l50.3145 50.3164z" />
+ <glyph glyph-name="gitlab" unicode="" horiz-adv-x="512"
+d="M105.2 423.1c0 0 56.5 -174.8 56.5996 -174.8h-132l56.5 174.8c3.2002 8.90039 15.7998 8.90039 18.9004 0zM0.900391 160.3l28.7998 88l226.2 -294l-247.9 184c-6.7998 5.10059 -9.7002 14 -7.09961 22zM161.7 248.3h188.6l-94.2998 -294zM511.1 160.3
+c2.5 -8 -0.299805 -16.8994 -7.19922 -22l-247.9 -184l226.3 294zM425.7 423.1l56.5 -174.8h-132l56.5996 174.8c3.2002 8.90039 15.7998 8.90039 18.9004 0z" />
+ <glyph glyph-name="wpbeginner" unicode="" horiz-adv-x="512"
+d="M462.799 125.626c56.2109 -64.3076 4.16211 -157.626 -91.8545 -157.626c-39.6025 0 -78.8242 17.6865 -100.143 50.04c-6.88672 -0.356445 -22.7021 -0.356445 -29.5898 0c-21.3643 -32.4209 -60.624 -50.04 -100.143 -50.04
+c-95.4902 0 -148.349 92.9961 -91.8555 157.626c-79.1387 131.851 31.2646 290.374 206.792 290.374c175.632 0 285.87 -158.626 206.793 -290.374zM123.152 208.598h41.5283v58.0752h-41.5283v-58.0752zM340.332 122.526v23.8389
+c-60.5059 -20.915 -132.355 -9.19824 -187.589 33.9707l0.246094 -24.8965c51.1006 -46.3672 131.746 -57.875 187.343 -32.9131zM189.579 208.598h166.058v58.0752h-166.058v-58.0752z" />
+ <glyph glyph-name="wpforms" unicode=""
+d="M448 372.8v-361.7c0 -24.2998 -19 -43.1992 -43.2002 -43.1992h-361.6c-23.9004 0.0996094 -43.2002 18.6992 -43.2002 43.2998v361.6c0 24.1006 18.7998 43.2002 43.2002 43.2002h361.7c24 0 43.0996 -18.7998 43.0996 -43.2002zM410.7 11.2002v361.6
+c0 3 -2.60059 5.7998 -5.7998 5.7998h-9.30078l-110.3 -74.5996l-61.2998 49.9004l-61.2002 -49.9004l-110.3 74.7002h-9.2998c-3.2002 0 -5.7998 -2.7998 -5.7998 -5.7998v-361.7c0 -3 2.59961 -5.7998 5.7998 -5.7998h361.7
+c3.19922 -0.100586 5.7998 2.69922 5.7998 5.7998zM150.2 262v-37h-73.5v37h73.5zM150.2 187.6v-37.2998h-73.5v37.2998h73.5zM161.3 334.9l54 43.6992h-118.5zM371.3 262v-37h-196v37h196zM371.3 187.6v-37.2998h-196v37.2998h196zM286.7 334.9l64.5 43.6992h-118.4z
+M371.3 113v-37.2998h-99.3994v37.2998h99.3994z" />
+ <glyph glyph-name="envira" unicode=""
+d="M0 416c477.6 0 366.6 -317.3 367.1 -366.3l80.9004 -81.7002h-26l-70.4004 71.2002c-39 -4.2002 -124.399 -34.5 -214.399 37c-90.2002 71.5 -85.2002 157.1 -137.2 339.8zM79.7002 370c-49.7002 23.5 -5.2002 -9.2002 -5.2002 -9.2002
+c45.2002 -31.2002 66 -73.7002 90.2002 -119.899c31.5 -60.2002 79 -139.7 144.2 -167.7c65 -28 34.1992 -12.5 6 8.5c-28.2002 21.2002 -68.2002 87 -91 130.2c-31.7002 60 -61 118.6 -144.2 158.1z" />
+ <glyph glyph-name="glide" unicode=""
+d="M252.8 299.4c0 -8.80078 -1.59961 -17.7002 -3.39941 -26.4004c-5.80078 -27.7998 -11.6006 -55.7998 -17.3008 -83.5996c-1.39941 -6.30078 -8.2998 -4.90039 -13.6992 -4.90039c-23.8008 0 -30.5 26 -30.5 45.5c0 29.2998 11.1992 68.0996 38.5 83.0996
+c4.2998 2.5 9.19922 4.2002 14.0996 4.2002c11.4004 0 12.2998 -8.2998 12.2998 -17.8994zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM384 181c0 5.09961 -20.7998 37.7002 -25.5 39.5
+c-2.2002 0.900391 -7.2002 2.2998 -9.59961 2.2998c-23.1006 0 -38.7002 -10.5 -58.2002 -21.5l-0.5 0.5c4.2998 29.4004 14.5996 57.2002 14.5996 87.4004c0 44.5996 -23.7998 62.7002 -67.5 62.7002c-71.7002 0 -108 -70.8008 -108 -123.5c0 -54.7002 32 -85 86.2998 -85
+c7.5 0 6.90039 0.599609 6.90039 -2.30078c-10.5 -80.2998 -56.5 -82.8994 -56.5 -58.8994c0 24.3994 28 36.5 28.2998 38c-0.200195 7.59961 -29.2998 17.2002 -36.7002 17.2002c-21.0996 0 -32.6992 -33 -32.6992 -50.6006c0 -32.2998 20.3994 -54.7002 53.2998 -54.7002
+c48.2002 0 83.3994 49.7002 94.2998 91.7002c9.40039 37.7002 7 39.4004 12.2998 42.1006c20 10.0996 35.7998 16.7998 58.4004 16.7998c11.0996 0 19 -2.2998 36.7002 -5.2002c1.7998 -0.0996094 4.09961 1.7002 4.09961 3.5z" />
+ <glyph glyph-name="glide-g" unicode=""
+d="M407.1 236.8c7.5 -2.89941 40.9004 -55.3994 40.9004 -63.3994c0 -2.90039 -3.7998 -5.80078 -6.7002 -5.80078c-28.3994 4.7002 -41.0996 8.40039 -58.8994 8.40039c-36.3008 0 -61.6006 -10.7998 -93.8008 -27c-8.5 -4.2998 -4.59961 -7.09961 -19.6992 -67.5996
+c-17.4004 -67.6006 -74 -145.4 -151.4 -145.4c-52.7002 0 -85.5 36 -85.5 87.9004c0 28.0996 18.5 79.1992 52.4004 79.2998c11.8994 0 58.5996 -15.4004 58.8994 -27.6006c-0.5 -2.39941 -45.5 -21.7998 -45.5 -61c0 -38.5 73.9004 -34.2998 90.7998 94.6006
+c0 4.7998 1 3.7998 -11 3.7998c-87.2998 0 -138.6 48.7002 -138.6 136.6c0 84.7002 58.2998 198.4 173.4 198.4c70.1992 0 108.399 -29.0996 108.399 -100.6c0 -48.5 -16.5 -93.1006 -23.5 -140.4l0.900391 -0.900391c31.2998 17.7002 56.3994 34.5 93.5 34.5
+c3.7998 0 11.8994 -2.39941 15.3994 -3.7998zM231.8 321.2c2.90039 13.8994 5.5 28.0996 5.60059 42.3994c0 15.4004 -1.40039 28.7002 -20 28.7002c-7.80078 0 -15.6006 -2.59961 -22.6006 -6.7002c-43.7998 -24.0996 -61.7998 -86.3994 -61.7998 -133.399
+c0 -31.2998 10.7002 -73.1006 49 -73.1006c8.7002 0 19.7002 -2.39941 22 7.80078c9.2002 44.6992 18.5 89.5996 27.7998 134.3z" />
+ <glyph glyph-name="viadeo" unicode=""
+d="M276.2 297.5v-0.700195c-17.9004 52.6006 -42.6006 103.4 -70.7998 151.2c43.2998 -29.2002 67 -100 70.7998 -150.5zM308.9 175.8c15.0996 3.10059 29.5 9 42.1992 17c24.5 -58.5996 20.2002 -139.7 -36.3994 -201c-67.7998 -73.8994 -191.9 -74.5996 -259.8 0
+c-108.801 117.8 -31.6006 313.7 129.899 313.7c21.2998 0 42.6006 -3.5 62.5 -10.7002c-6.89941 -13.3994 -11.7002 -28.2002 -13.3994 -43.2998c-15.4004 6.5 -32.3008 9.59961 -49.1006 9.59961c-78 0 -135.399 -66.6992 -135.399 -142.3
+c0 -68.7998 45.5996 -126 111.3 -137.399c98.5 38.3994 116.6 188.199 116.6 280c0 11.6992 0 23.6992 -1 35.3994c12.4004 -36.0996 18.9004 -73.8994 18.9004 -112c0 -86.5 -35.1006 -158.399 -109.3 -205.1l-3.80078 -0.299805
+c80 -1.60059 137.801 61.6992 137.801 139.399c0 19.5 -3.40039 38.7998 -11 57zM418.1 436.3c52 -74 20.9004 -208.6 -58.0996 -208.6c-21.2998 0 -40.2002 11.3994 -55 25.7998c35.0996 19.2998 79.4004 49.2002 99.7002 84.9004
+c2.39941 4.7998 6.5 13.6992 7.2002 19.1992c-19.9004 -44.6992 -70.8008 -79.6992 -118.2 -90.6992c-7.5 11.6992 -12 24.6992 -12 38.7998c0 16.5 8.2002 38.5 20.5996 50.5c34.5 32.8994 84.7998 13.5996 115.8 80.0996z" />
+ <glyph glyph-name="viadeo-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM280.7 66.7998c35.3994 38.2998 38.0996 89 22.7998 125.601c-7.90039 -4.90039 -16.9004 -8.60059 -26.4004 -10.5
+c4.80078 -11.4004 6.90039 -23.5 6.90039 -35.7002c0 -48.6006 -36.2002 -88.2002 -86.2002 -87.2002l2.40039 0.200195c46.3994 29.2002 68.2998 74.0996 68.2998 128.2c0 23.7998 -4.09961 47.5 -11.7998 70v0.399414c-2.2998 31.6006 -17.1006 75.7998 -44.2002 94.1006
+c17.5996 -29.9004 33 -61.6006 44.2002 -94.5c0.599609 -7.30078 0.599609 -14.8008 0.599609 -22.1006c0 -57.3994 -11.3994 -151 -72.8994 -175c-41 7.2002 -69.5 42.9004 -69.5 85.9004c0 47.2002 35.7998 88.8994 84.5996 88.8994c10.5 0 21 -1.89941 30.7002 -6
+c1.09961 9.5 4.09961 18.7002 8.39941 27.1006c-12.5 4.59961 -25.7998 6.7002 -39.0996 6.7002c-101 0 -149.2 -122.5 -81.2002 -196.101c42.4004 -46.5996 120 -46.2002 162.4 0zM309 214.3c49.4004 0 68.7998 84.1006 36.2998 130.3
+c-19.3994 -41.5 -50.7998 -29.5 -72.3994 -50c-7.7002 -7.5 -12.9004 -21.2998 -12.9004 -31.5996c0 -8.7998 2.7998 -17 7.5 -24.2998c29.7002 6.89941 61.4004 28.7998 73.9004 56.7002c-0.400391 -3.40039 -3 -9 -4.5 -12c-12.7002 -22.3008 -40.4004 -41 -62.3008 -53
+c9.30078 -9 21.1006 -16.1006 34.4004 -16.1006z" />
+ <glyph glyph-name="snapchat" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM417.5 101.1c2.2002 5.30078 -0.900391 9.80078 -4.90039 10.8008c-46.2998 7.59961 -67.0996 55.0996 -68 57.0996
+c-0.0996094 0.0996094 -0.0996094 0.200195 -0.199219 0.299805c-2.40039 5 -3 9.2002 -1.60059 12.5c2.60059 6.2998 12.5 9.40039 19 11.5c1.7998 0.600586 3.5 1.10059 4.90039 1.7002c11.5 4.5 17.2998 10.0996 17.2002 16.5996
+c-0.100586 5.10059 -4.10059 9.60059 -10.4004 11.9004c-4 1.59961 -9.59961 1.90039 -13.5996 0c-5.5 -2.59961 -10.4004 -4 -14.7002 -4.2002c-2.7998 0.100586 -4.60059 0.799805 -5.7002 1.40039c1.40039 24 4.7002 58 -3.7998 77.0996
+c-16.2998 36.5 -49.6006 54.2998 -84.2998 54.2998c-0.600586 0 -6.10059 -0.0996094 -6.7002 -0.0996094c-14 0 -61.6006 -4 -84.1006 -54.2998c-8.5 -19.1006 -5.19922 -53.2002 -3.7998 -77.1006c-1.09961 -0.599609 -3.2998 -1.39941 -6.59961 -1.39941
+c-4.5 0 -9.7998 1.39941 -15.7002 4.2002c-7.5 3.5 -20.2998 -1.80078 -21.9004 -10.3008c-1 -4.89941 1.2002 -12.0996 17 -18.2998c6.10059 -2.5 20.6006 -5.2998 24 -13.2002c1.40039 -3.2998 0.900391 -7.5 -1.59961 -12.5
+c-0.0996094 -0.0996094 -0.200195 -0.199219 -0.200195 -0.299805c-0.899414 -2 -21.7002 -49.5 -68 -57.0996c-3.59961 -0.600586 -6.09961 -3.7998 -5.89941 -7.40039c0.699219 -13.8994 31.6992 -19.2998 45.5 -21.3994c1.39941 -1.90039 2.5 -9.90039 4.2998 -16
+c0.799805 -2.7002 2.89941 -6 8.2998 -6s13.2998 3.09961 25.7998 3.09961c17.6006 0 23.6006 -4 37.4004 -13.7002c9.89941 -7 27.5 -19.7998 48.5 -18.2002c20.7998 -0.899414 34.7002 7.90039 49.2002 18.2002c13.6992 9.7002 19.7998 13.7002 37.3994 13.7002
+c13 0 19.6006 -2.90039 25.7998 -2.90039h0.200195c4.40039 0 7 2.2002 8.10059 5.90039c1.7998 6.09961 2.89941 14 4.2998 15.9004c26.7002 4.19922 41.2998 10.0996 44.7998 18.1992z" />
+ <glyph glyph-name="snapchat-ghost" unicode="" horiz-adv-x="512"
+d="M510.846 55.3271c-5.21094 -12.1572 -27.2383 -21.0889 -67.3594 -27.3184c-2.06445 -2.78613 -3.77539 -14.6855 -6.50781 -23.9561c-1.625 -5.56543 -5.62207 -8.86914 -12.1279 -8.86914l-0.296875 0.00585938c-9.39453 0 -19.2031 4.32227 -38.8516 4.32227
+c-26.5215 0 -35.6621 -6.04297 -56.2539 -20.5879c-21.832 -15.4375 -42.7715 -28.7637 -74.0273 -27.3984c-31.6455 -2.33398 -58.0244 16.9072 -72.8711 27.4033c-20.7139 14.6436 -29.8281 20.582 -56.2412 20.582c-18.8633 0 -30.7354 -4.71973 -38.8516 -4.71973
+c-8.07324 0 -11.2129 4.92188 -12.4219 9.04004c-2.70312 9.18848 -4.4043 21.2627 -6.52344 24.1299c-20.6787 3.20898 -67.3096 11.3438 -68.498 32.1504c-0.00878906 0.161133 -0.015625 0.422852 -0.015625 0.583984c0 4.97559 3.98438 9.67285 8.89258 10.4844
+c69.583 11.4551 100.925 82.9014 102.228 85.9346c0.0742188 0.175781 0.155273 0.34375 0.237305 0.514648c3.71289 7.53711 4.54395 13.8486 2.46289 18.7529c-5.05078 11.8965 -26.8721 16.1641 -36.0537 19.7959c-23.7148 9.36621 -27.0146 20.1279 -25.6113 27.5039
+c2.43652 12.8359 21.7246 20.7354 33.002 15.4531c8.91895 -4.18066 16.8428 -6.29688 23.5469 -6.29688c5.02148 0 8.21191 1.2041 9.95996 2.1709c-2.04297 35.9365 -7.10156 87.29 5.68652 115.969c33.7734 75.7188 105.356 81.6025 126.478 81.6025
+c0.943359 0 9.14062 0.0888672 10.1094 0.0888672c52.1484 0 102.255 -26.7803 126.724 -81.6426c12.7764 -28.6504 7.74902 -79.792 5.69434 -116.01c1.58203 -0.87207 4.35742 -1.94141 8.59961 -2.13867c6.39648 0.286133 13.8145 2.38867 22.0693 6.25684
+c6.08496 2.84668 14.4053 2.46094 20.4795 -0.0576172l0.0292969 -0.00976562c9.47559 -3.38574 15.4385 -10.2158 15.5889 -17.8701c0.183594 -9.74707 -8.52246 -18.165 -25.8779 -25.0186c-2.11816 -0.834961 -4.69434 -1.6543 -7.43457 -2.52441
+c-9.79688 -3.10645 -24.5996 -7.80566 -28.6152 -17.2715c-2.0791 -4.9043 -1.25684 -11.2109 2.45996 -18.748c0.0869141 -0.167969 0.166016 -0.341797 0.238281 -0.514648c1.30176 -3.03027 32.6152 -74.46 102.23 -85.9346
+c6.42676 -1.05762 11.1631 -7.87695 7.72461 -15.8584z" />
+ <glyph glyph-name="snapchat-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM393.5 101.1c2.2002 5.30078 -0.900391 9.80078 -4.90039 10.8008c-46.2998 7.59961 -67.0996 55.0996 -68 57.0996
+c-0.0996094 0.0996094 -0.0996094 0.200195 -0.199219 0.299805c-2.40039 5 -3 9.2002 -1.60059 12.5c2.60059 6.2998 12.5 9.40039 19 11.5c1.7998 0.600586 3.5 1.10059 4.90039 1.7002c11.5 4.5 17.2998 10.0996 17.2002 16.5996
+c-0.100586 5.10059 -4.10059 9.60059 -10.4004 11.9004c-4 1.59961 -9.59961 1.90039 -13.5996 0c-5.5 -2.59961 -10.4004 -4 -14.7002 -4.2002c-2.7998 0.100586 -4.60059 0.799805 -5.7002 1.40039c1.40039 24 4.7002 58 -3.7998 77.0996
+c-16.2998 36.5 -49.6006 54.2998 -84.2998 54.2998c-0.600586 0 -6.10059 -0.0996094 -6.7002 -0.0996094c-14 0 -61.6006 -4 -84.1006 -54.2998c-8.5 -19.1006 -5.19922 -53.2002 -3.7998 -77.1006c-1.09961 -0.599609 -3.2998 -1.39941 -6.59961 -1.39941
+c-4.5 0 -9.7998 1.39941 -15.7002 4.2002c-7.5 3.5 -20.2998 -1.80078 -21.9004 -10.3008c-1 -4.89941 1.2002 -12.0996 17 -18.2998c6.10059 -2.5 20.6006 -5.2998 24 -13.2002c1.40039 -3.2998 0.900391 -7.5 -1.59961 -12.5
+c-0.0996094 -0.0996094 -0.200195 -0.199219 -0.200195 -0.299805c-0.899414 -2 -21.7002 -49.5 -68 -57.0996c-3.59961 -0.600586 -6.09961 -3.7998 -5.89941 -7.40039c0.699219 -13.8994 31.6992 -19.2998 45.5 -21.3994c1.39941 -1.90039 2.5 -9.90039 4.2998 -16
+c0.799805 -2.7002 2.89941 -6 8.2998 -6s13.2998 3.09961 25.7998 3.09961c17.6006 0 23.6006 -4 37.4004 -13.7002c9.89941 -7 27.5 -19.7998 48.5 -18.2002c20.7998 -0.899414 34.7002 7.90039 49.2002 18.2002c13.6992 9.7002 19.7998 13.7002 37.3994 13.7002
+c13 0 19.6006 -2.90039 25.7998 -2.90039h0.200195c4.40039 0 7 2.2002 8.10059 5.90039c1.7998 6.09961 2.89941 14 4.2998 15.9004c26.7002 4.19922 41.2998 10.0996 44.7998 18.1992z" />
+ <glyph glyph-name="pied-piper" unicode=""
+d="M32 29l-32 -60.2002l0.799805 328c0 65.9004 53.2002 119.2 119.2 119.2h327.2c-93 -28.9004 -189.9 -94.2002 -253.9 -168.6c-70.5996 -81.4004 -110.7 -137.4 -161.3 -218.4zM448 416c0 0 0 -328.8 0.0996094 -328.8c0 -65.9004 -53.2998 -119.2 -119.3 -119.2
+h-328.399c18.5 25.5 61.6992 54 84.8994 66c35.5 18.0996 76.4004 28.5 105.3 56.2998c42.1006 40.5 47.8008 105 71 158.601c43.6006 100.3 186.4 167.1 186.4 167.1z" />
+ <glyph glyph-name="first-order" unicode=""
+d="M12.9004 218.8c0.0996094 0.100586 0.199219 0.299805 0.299805 0.400391c0 -0.100586 0 -0.299805 -0.100586 -0.400391h-0.199219zM224 351.4c7.40039 0 14.5996 -0.5 21.7002 -1.7002l-4 -67.7002l22.2998 64.2998c14.2998 -3.7998 27.7002 -9.5 40 -16.8994
+l-29.4004 -61.1006l45.1006 50.9004c11.5 -8.90039 21.7002 -19.2002 30.5996 -30.9004l-50.5996 -45.3994l60.8994 29.6992c7.5 -12.2998 12.9004 -26 16.6006 -40.2998l-64 -22.2998l67.7002 4c1.09961 -7.09961 1.39941 -14.5996 1.39941 -22
+s-0.299805 -14.5996 -1.39941 -21.7002l-67.4004 4l64 -22.2998c-3.7002 -14.5996 -9.5 -28 -16.5996 -40.2998l-61.1006 29.3994l50.6006 -45.0996c-8.60059 -11.7998 -18.9004 -22 -30.6006 -30.9004l-44.8994 50.9004l29.3994 -61.2998
+c-12.2998 -7.5 -25.7002 -12.9004 -40 -16.9004l-22.5996 65.1006l4 -68.6006c-7.10059 -1.09961 -14.2998 -1.7002 -21.7002 -1.7002c-7.09961 0 -14.5996 0.600586 -21.7002 1.7002l4 68l-22.2998 -64.5996c-14.2998 3.7998 -27.7002 9.5 -40 16.8994l29.5 61.4004
+l-44.9004 -50.9004c-11.7998 8.60059 -22 19.2002 -30.8994 30.9004l50.8994 45.0996l-61.0996 -29.6992c-7.2002 12.5996 -12.9004 26 -16.5996 40.2998l64 22.5996l-67.7002 -4c-0.799805 7.10059 -1.40039 14.2998 -1.40039 21.7002s0.5 14.9004 1.40039 22l68 -4
+l-64.2998 22.5996c3.69922 14.3008 9.5 27.7002 16.5996 40l61.0996 -29.6992l-50.5996 45.3994c8.90039 11.7998 19.2002 22 30.5996 30.9004l45.1006 -50.9004l-29.4004 61.4004c12.2998 7.2002 25.7002 12.8994 40 16.5996l22 -64l-3.7002 67.4004
+c6.80078 1.09961 14.3008 1.7002 21.4004 1.7002zM443.4 320v-256l-219.4 -128l-219.4 128v256l219.4 128zM426.3 309.7l-202.3 117.399l-202.3 -117.399v-235.101l202.3 -117.699l202.3 117.699v235.101zM224 410.9l187.7 -109.4v-218.9l-187.7 -109.5l-187.7 109.5
+v218.801zM224 360c-92.2998 0 -166.9 -75.0996 -166.9 -168c0 -92.5996 74.6006 -167.7 166.9 -167.7c92 0 166.9 75.1006 166.9 167.7c0 92.9004 -74.9004 168 -166.9 168z" />
+ <glyph glyph-name="yoast" unicode=""
+d="M91.2998 372h186l-7 -18.9004h-179c-39.7002 0 -71.8994 -31.5996 -71.8994 -70.2998v-205.399c0 -35.4004 24.8994 -70.3008 84 -70.3008v-19.0996h-12.1006c-50.0996 0 -91.2998 40.2002 -91.2998 89.5v205.3c0 49.2998 40.7002 89.2002 91.2998 89.2002zM320.4 428
+h66.5c-143.801 -378.1 -145.7 -398.9 -184.7 -439.3c-20.7998 -21.6006 -49.2998 -31.7002 -78.2998 -32.7002v51.0996c49.1992 7.7002 64.5996 49.9004 64.5996 75.3008c0 20.0996 0.599609 12.5996 -82.0996 223.199h61.3994l50.4004 -156.6zM448 286.5v-298.5h-214
+c6.59961 9.59961 10.7002 16.2998 12.0996 19.4004h182.5v279.1c0 32.5 -17.0996 51.9004 -48.1992 62.9004l6.69922 17.5996c41.7002 -13.5996 60.9004 -43.0996 60.9004 -80.5z" />
+ <glyph glyph-name="themeisle" unicode="" horiz-adv-x="512"
+d="M208 359.714c0 10 6.28613 21.7139 17.7148 21.7139c11.1426 0 17.7139 -11.7139 17.7139 -21.7139c0 -10.2852 -6.57129 -21.7139 -17.7139 -21.7139c-11.4287 0 -17.7148 11.4287 -17.7148 21.7139zM512 199.714c0 -36.001 -11.4287 -102.286 -36.2861 -129.714
+c-22.8574 -24.8584 -87.4277 -61.1426 -120.856 -70.5723l-1.14355 -0.286133v-32.5703c0 -16.2861 -12.5723 -30.5713 -29.1426 -30.5713c-10 0 -19.4297 5.71387 -24.5723 14.2861c-5.42676 -8.57227 -14.8564 -14.2861 -24.8564 -14.2861
+s-19.4287 5.71387 -24.8574 14.2861c-5.14258 -8.57227 -14.5713 -14.2861 -24.5703 -14.2861c-10.2861 0 -19.4287 5.71387 -24.8574 14.2861c-5.14355 -8.57227 -14.5713 -14.2861 -24.5713 -14.2861c-18.8574 0 -29.4287 15.7139 -29.4287 32.8574
+c-16.2861 -12.2852 -35.7158 -19.4287 -56.5713 -19.4287c-22 0 -43.4287 8.28516 -60.2861 22.8574c10.2852 0.286133 20.5713 2.28613 30.2852 5.71387c-20.8574 5.71387 -39.4277 18.8574 -52 36.2861c21.3701 -4.64551 46.209 -1.67285 67.1426 11.1426
+c-22 22 -56.5703 58.8574 -68.5713 87.4287c-5.71387 13.4287 -6.85645 31.4287 -6.85645 45.7139c0 49.7139 20.2861 160 86.2861 160c10.5713 0 18.8564 -4.8584 23.1426 -14.8574c3.0498 4.46289 8.42578 11.374 12 15.4277c2 2.57227 5.71387 5.42969 7.14355 8.28613
+c7.99902 12.5713 11.7139 21.1426 21.7139 34c32.2852 41.1445 81.7139 69.4297 134.856 69.4297c6 0 12 -0.285156 17.7148 -1.14355c10.8564 11.7148 26 18.2861 41.7148 18.2861c14.5703 0 29.7139 -6 40 -16.2861c0.856445 -0.857422 1.42773 -2.28613 1.42773 -3.42773
+c0 -3.71387 -10.2852 -13.4287 -12.8574 -16.2861c4.28613 -1.42871 15.7148 -6.8584 15.7148 -12c0 -2.85742 -2.85742 -5.14258 -4.57129 -7.14258c31.4287 -27.7148 49.4287 -67.1436 56.2861 -108c4.28613 5.14258 10.2852 8.57129 17.1426 8.57129
+c10.5713 0 20.8574 -7.14355 28.5713 -14.001c20.8564 -18.5703 25.7139 -53.1416 25.7139 -79.7139zM188 358.572c0 -18.2861 12.5713 -37.1436 32.2861 -37.1436c19.7139 0 32.2852 18.8574 32.2852 37.1436c0 18 -12.5713 36.8564 -32.2852 36.8564
+c-19.7148 0 -32.2861 -18.8574 -32.2861 -36.8564zM237.714 254c0 19.7139 3.71387 39.1426 8.57129 58.2861c-52.0391 -79.5342 -13.5312 -184.571 68.8574 -184.571c21.4287 0 42.5713 7.71387 60 20c2 7.42871 3.71484 14.8574 3.71484 22.5723
+c0 14.2861 -6.28613 21.4277 -20.5723 21.4277c-4.57129 0 -9.14355 -0.856445 -13.4287 -1.71387c-63.3438 -12.668 -107.143 -3.66895 -107.143 63.999zM196.572 -0.858398c0 11.1436 -8.8584 20.8574 -20.2861 20.8574c-11.4287 0 -20 -9.71484 -20 -20.8574v-32.5703
+c0 -11.1436 8.57129 -21.1426 20 -21.1426c11.4277 0 20.2861 9.71484 20.2861 21.1426v32.5703zM245.715 -0.858398c0 11.1436 -8.57227 20.8574 -20 20.8574c-11.4287 0 -20.2861 -9.71484 -20.2861 -20.8574v-32.5703c0 -11.1436 8.85742 -21.1426 20.2861 -21.1426
+c11.4277 0 20 10 20 21.1426v32.5703zM295.428 -0.858398c0 11.1436 -8.85645 20.8574 -20.2852 20.8574s-20.2852 -9.71484 -20.2852 -20.8574v-32.5703c0 -11.1436 8.85645 -21.1426 20.2852 -21.1426s20.2852 9.71484 20.2852 21.1426v32.5703zM345.143 -0.858398
+c0 11.1436 -8.85645 20.8574 -20.2852 20.8574s-20.2861 -9.71484 -20.2861 -20.8574v-32.5703c0 -11.1436 8.85742 -21.1426 20.2861 -21.1426s20.2852 10 20.2852 21.1426v32.5703zM421.714 162c-30.8564 -59.1416 -90.2852 -102.572 -158.571 -102.572
+c-96.5703 0 -160.57 84.5723 -160.57 176.572c0 16.8574 2 33.4287 6 49.7139c-20 -33.7148 -29.7139 -72.5723 -29.7139 -111.429c0 -60.2861 24.8564 -121.715 71.4287 -160.857c5.14258 9.71387 14.8564 16.2861 26 16.2861c10 0 19.4277 -5.71387 24.5713 -14.2861
+c5.42871 8.57129 14.5703 14.2861 24.8574 14.2861c10 0 19.4277 -5.71387 24.5713 -14.2861c5.42871 8.57129 14.8564 14.2861 24.8574 14.2861c10 0 19.4287 -5.71387 24.8574 -14.2861c5.14258 8.57129 14.5713 14.2861 24.5723 14.2861
+c10.8564 0 20.8564 -6.57227 25.7139 -16c43.4268 36.2861 68.5693 92 71.4258 148.286zM432.286 261.714c0 53.7139 -34.5713 105.714 -92.5723 105.714c-30.2852 0 -58.5713 -15.1426 -78.8564 -36.8564c-19.9951 -66.3828 -27.4473 -136.571 41.4287 -136.571
+c28.8047 0 97.3564 28.5381 84.2861 -36.8574c28.8564 26 45.7139 65.7148 45.7139 104.571z" />
+ <glyph glyph-name="google-plus" unicode="" horiz-adv-x="496"
+d="M248 440c136.9 0 248 -111.1 248 -248s-111.1 -248 -248 -248s-248 111.1 -248 248s111.1 248 248 248zM177.3 68c71.2998 0 118.8 50.4004 118.8 121.2c0 7.09961 -0.599609 13.8994 -1.89941 20.7002h-116.9v-42.6006h70.1006
+c-5.2002 -34.2002 -37.5 -53.2998 -70.1006 -53.2998c-43 0 -77.2002 35.5 -77.2002 78.0996c0 42.6006 34.3008 78.1006 77.2002 78.1006c18.1006 0 36.2002 -6.2002 49.4004 -19.1006l33.5996 32.6006c-22.8994 21.2998 -51.7002 32.2998 -83 32.2998
+c-68.7998 0 -124 -55.5 -124 -124s55.2002 -124 124 -124zM407.5 174.2h35.2002v35.5h-35.2002v35.5h-35.5v-35.5h-35.5v-35.5h35.5v-35.5h35.5v35.5z" />
+ <glyph glyph-name="font-awesome" unicode=""
+d="M397.8 416c27.5 0 50.2002 -22.7002 50.2002 -50.2002v-347.6c0 -27.5 -22.7002 -50.2002 -50.2002 -50.2002h-347.6c-27.5 0 -50.2002 22.7002 -50.2002 50.2002v347.6c0 27.5 22.7002 50.2002 50.2002 50.2002h347.6zM352.4 131.7h0.0996094v140.3
+c0 4.2002 -4.2002 7.7998 -9 7.7998c-6 0 -31.0996 -16.0996 -53.7998 -16.0996c-4.7002 0 -8.90039 0.599609 -13.1006 2.39941c-20.2998 7.7002 -38.1992 13.7002 -60.8994 13.7002c-20.9004 0 -43 -6.5 -61.5 -14.2998
+c-1.7998 -1.2002 -3.60059 -1.7998 -5.40039 -2.40039v18.5c8.2998 6 13.1006 15.5 13.1006 26.3008c0 18.5996 -15 33.5 -33.5 33.5c-18.6006 0 -33.5 -15 -33.5 -33.5c0 -10.8008 5.2998 -20.3008 13.0996 -26.3008v-218.6c0 -11.2998 9 -20.2998 20.2998 -20.2998
+c8.90039 0 16.7002 5.89941 19.1006 14.2998v1.2002c0.599609 1.2002 0.599609 3 0.599609 4.7998v45.4004c1.2002 0.599609 2.40039 0.599609 3.59961 1.19922c19.7002 8.90039 44.2002 17.3008 67.5 17.3008c32.3008 0 44.8008 -16.7002 71.7002 -16.7002
+c19.2002 0 37.1006 6.5 53.7998 13.7002c4.2002 1.7998 7.80078 3.59961 7.80078 7.7998z" />
+ <glyph glyph-name="linode" unicode=""
+d="M437.4 221.7c0.599609 -2 -8.80078 -66.2998 -9.7002 -72.7998c0 -0.900391 -0.5 -1.7002 -1.10059 -2l-54.5996 -43.7002c-1.09961 -0.900391 -2.59961 -0.900391 -3.7002 0l-20.2998 14l-2.2998 -33.4004c0 -0.899414 -0.200195 -1.7002 -1.10059 -2.2998
+l-66.8994 -53.4004c-1.10059 -0.899414 -2.90039 -0.899414 -4 0l-28 23.7002l2 -46c0 -0.899414 -0.200195 -1.7002 -1.10059 -2.2998l-83.6992 -66.9004c-0.600586 -0.299805 -1.10059 -0.599609 -1.7002 -0.599609c-0.900391 0.299805 -1.7002 0.299805 -2.2998 0.900391
+l-65.1006 69.0996c-1.5 1.40039 -15.5 72 -16.8994 79.0996c-0.300781 1.10059 0.5 2.5 1.39941 3.10059l17.4004 10.5996c-3.40039 3.2002 -26.5 23.4004 -27.1006 26.2998l-20.5996 100.301c-0.299805 1.09961 0.299805 2.5 1.7002 3.39941l26.8994 12.9004
+c-4.59961 3.5 -37.6992 27.5 -38.5996 30.8994l-27.4004 133.101c-0.299805 1.7002 0.600586 3.09961 2 3.7002l123.7 38.5996c0.600586 0 1.40039 0 2.2998 -0.299805l90.6006 -43.7002c0.799805 -0.599609 1.7002 -1.7002 1.7002 -2.59961l5.69922 -132.301
+c0 -1.19922 -0.599609 -2.2998 -1.69922 -2.89941l-33.7002 -17.4004l36 -24.2998c0.799805 -0.299805 1.39941 -1.40039 1.39941 -2.2998l1.40039 -35.1006l34.5996 21.2002c0.800781 0.600586 2.2002 0.600586 3.10059 0l24 -16l0.899414 31.4004
+c0 0.899414 0.5 2 1.40039 2.59961l58.9004 36c1.09961 0.600586 2.19922 0.600586 3.09961 0l70 -38.5996c0.5 -0.600586 1.09961 -1.10059 1.40039 -2zM232.6 216.9l-100.6 -57.2002l14 -96.6006l90.5996 61.2002zM224.9 396.9l-120.9 -46.6006l19.7002 -134.8
+l106.6 55.4004zM44 274.9l73.0996 -57.2002l-19.3994 132.899l-79.7002 49.4004zM74.5996 127.1l64.8008 -60.7998l-13.7002 93.4004l-70 58.2998zM98.9004 9.40039l57.6992 -61.2002l-9.69922 67.3994l-61.7002 60.9004zM163.4 -55.0996l78.1992 62.2998l-3.09961 70
+l-85.7002 -61.4004zM245.4 60l27.0996 -22.9004l-0.599609 68.3008l-29.4004 22.5996c0 -2.2998 1.2002 -6.2998 -1.09961 -8l-22.3008 -14.9004l24.3008 -20c2.89941 -2.19922 2 -21.6992 2 -25.0996zM339.7 85.4004l4.2002 66.8994l-65.7002 -46.8994l0.599609 -68.6006z
+M367.4 111.1l5.7998 66.6006l-64.6006 40.5996l-0.599609 -30l41.2002 -27.2002c0.799805 -0.599609 1.39941 -1.69922 1.09961 -2.59961l-2 -34zM422 150.9l8.5 63.3994l-51.0996 -36.5996l-5.7002 -65.1006z" />
+ <glyph glyph-name="quora" unicode=""
+d="M440.5 61.2998c1.7998 -18 -7.2002 -93.2998 -89 -93.2998c-49.5 0 -75.5 28.7002 -95.2002 62.2998c-117.7 -32.5996 -249 54.9004 -249 189c0 117 98 196.7 197.7 196.7c101.8 0 198.5 -79.2002 198.4 -196.7c0 -65.5 -30.5 -118.8 -74.7002 -153
+c14.2002 -21.5996 29 -35.7998 49.5 -35.7998c22.5 0 31.5 17.2998 33 30.7998h29.2998zM297 118.8c11.2998 24.9004 16.7998 58.7002 16.7002 100.5c0 104.2 -32.5 157.7 -108.7 157.7c-75 0 -107.5 -53.5 -107.5 -157.9c0 -103.699 32.5 -156.699 107.5 -156.699
+c12 0 22.7002 1.19922 32.7002 4.19922c-15.5 30.5 -33.7002 61.3008 -69.2002 61.3008c-6.7998 0 -13.5996 -1 -19.7998 -4l-12.2002 24.2998c14.7002 12.7998 38.5 22.7998 69 22.7998c47.7998 0 72 -23 91.5 -52.2002z" />
+ <glyph glyph-name="free-code-camp" unicode="" horiz-adv-x="576"
+d="M69.2998 303.5c-41 -68.5 -36.3994 -163 1 -227c22.2002 -38.2002 49.7002 -52.4004 49.7002 -66.5c0 -6.7998 -6 -13 -12.7998 -13c-19.5 0 -99.2002 75.5 -99.2002 197.8c0 111.5 78 186 97.0996 186c6 0 14.9004 -4.7998 14.9004 -11.0996
+c0 -12.7002 -28.2998 -28.6006 -50.7002 -66.2002zM265.1 89.7002c-37.1992 13.5996 -65.5 45.8994 -65.2998 86.2002c0 48 57.7002 90.0996 57.7002 136.199c0 16.8008 -10.4004 32.6006 -19.5996 38.2002c-1.90039 1 -4.60059 2.7002 -4.60059 5.10059
+c0 9.59961 26.1006 2.7998 36.5 -2.2002c33.6006 -15.9004 40.6006 -40.2998 46.4004 -74.1006c1.39941 -7.89941 4.2998 -33.2998 15.8994 -33.2998c7.5 0 12.3008 5.10059 12.3008 12.2998c0 12.6006 -15.4004 31.2002 -7.2002 31.2002
+c6.09961 0 18.5996 -12.7998 22.5 -16.8994c23.3994 -24.9004 32.0996 -49 32.0996 -82.6006c0 -42.2002 -23.3994 -74.7002 -53.0996 -89.7998c-9.2002 -5.7998 -12.1006 0.900391 -12.1006 1.90039c0 7 29.5 23.5996 29.5 56c0 10.5996 -2.69922 22.5 -8.5 31.3994
+c-1.69922 2.40039 -7.69922 10.1006 -11.0996 10.1006c-0.700195 0 -0.700195 -0.5 -0.700195 -1.2002c0 -5.7998 3.60059 -11.4004 3.60059 -17.4004c0 -13 -31.9004 -20.2002 -31.9004 6.7998c0 7.10059 0.700195 14.3008 0.700195 21.3008
+c0 5.09961 -0.200195 6.5 -2.40039 11.0996c-3.39941 6.5 -14.5 19.7998 -22.5 19.7998c-2.2002 0 -2.89941 0 -2.89941 -2.2002c0 -3.39941 7.69922 -7 7.69922 -19.2998c0 -32.0996 -44.1992 -37.8994 -44.1992 -70c0 -14.3994 1.89941 -26.5 10.0996 -38.5996
+c5.09961 -7.5 10.5996 -11.7998 19.0996 -15.2002c2.10059 -0.700195 4.30078 -0.900391 4.30078 -3.59961c0 -6.40039 -7.80078 -3 -12.3008 -1.2002zM470.4 381c21.3994 0 97.5996 -78.9004 97.5 -198.2c0 -104.899 -73.4004 -185.7 -98.8008 -185.7
+c-5 0 -13.1992 6.30078 -13.1992 11.4004c0 8.2002 28.2998 34.5996 35.2998 43.5c61 76.7002 64 205.9 -17.6006 291c-5.5 5.7998 -17.5996 16.7002 -17.5996 25.4004c0 6.09961 8.40039 12.5996 14.4004 12.5996zM428.1 57.9004c8.40039 0 11.9004 -7 11.9004 -15.5
+c0 -8.90039 -2.5 -16.4004 -11.9004 -16.4004h-261.1c-8.5 0 -15.5 7 -15.5 15.5c0 8.90039 6.09961 16.4004 15.5 16.4004h261.1z" />
+ <glyph glyph-name="telegram" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM369.8 270.1c3.60059 16.8008 -6.09961 23.5 -17.2002 19.5l-239.1 -92.1992c-16.4004 -6.40039 -16.0996 -15.5 -2.7998 -19.7002l61.2002 -19.1006l142 89.4004
+c6.59961 4.40039 12.6992 1.90039 7.69922 -2.5l-114.899 -103.8l-4.40039 -63.1006c6.40039 0 9.2002 2.80078 12.5 6.10059l29.9004 28.7998l62 -45.7002c11.2998 -6.39941 19.3994 -3.09961 22.3994 10.5z" />
+ <glyph glyph-name="bandcamp" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM296.2 113.9l84.7002 156.1h-181l-84.7002 -156.1h181z" />
+ <glyph glyph-name="grav" unicode="" horiz-adv-x="512"
+d="M301.1 236c4.40039 -4.40039 4.40039 -11.9004 0 -16.2998l-9.69922 -9.7002c-4.40039 -4.7002 -11.9004 -4.7002 -16.6006 0l-10.5 10.5c-4.39941 4.7002 -4.39941 11.9004 0 16.5996l9.7002 9.7002c4.40039 4.40039 11.9004 4.40039 16.5996 0zM270.9 255.7
+c-2.7002 -2.7998 -7.40039 -2.7998 -10.5 0c-2.80078 3 -2.80078 7.7002 0 10.5c3 3 7.69922 3 10.5 0c3 -2.7002 3 -7.5 0 -10.5zM244.9 250.4c2.7998 3 7.5 3 10.5 0c2.7998 -2.7002 2.7998 -7.40039 0 -10.2002c-3 -3 -7.7002 -3 -10.5 0c-3 2.7002 -3 7.39941 0 10.2002
+zM317.4 263.7c-19.9004 14.3994 -33.8008 43.2002 -11.9004 68.0996c21.5996 24.9004 40.7002 17.2002 59.7998 -0.799805c11.9004 -11.2998 29.2998 -24.9004 17.2002 -48.2002c-12.5 -23.5 -45.0996 -33.2002 -65.0996 -19.0996zM365.1 308.2
+c-8.89941 10 -23.2998 -6.90039 -15.5 -16.1006c7.40039 -9 32.1006 -2.39941 15.5 16.1006zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM437.8 149.4c2.5 16.0996 -20.2002 16.5996 -25.2002 25.6992
+c-13.5996 24.1006 -27.6992 36.8008 -54.5 30.4004c11.6006 8 23.5 6.09961 23.5 6.09961c0.300781 6.40039 0 13 -9.39941 24.9004c3.89941 12.5 0.299805 22.4004 0.299805 22.4004c15.5 8.59961 26.7998 24.3994 29.0996 43.1992
+c3.60059 31 -18.7998 59.2002 -49.7998 62.8008c-22.0996 2.5 -43.7002 -7.7002 -54.2998 -25.7002c-23.2002 -40.1006 1.40039 -70.9004 22.4004 -81.4004c-14.4004 1.40039 -34.3008 11.9004 -40.1006 34.2998c-6.59961 25.7002 2.7998 49.8008 8.90039 61.4004
+c0 0 -4.40039 5.7998 -8 8.90039c0 0 -13.7998 0 -24.6006 -5.30078c11.9004 15.2002 25.2002 14.4004 25.2002 14.4004c0 6.40039 -0.599609 14.9004 -3.59961 21.5996c-5.40039 11 -23.7998 12.9004 -31.7002 -2.7998c0.0996094 0.200195 0.299805 0.400391 0.400391 0.5
+c-5 -11.8994 -1.10059 -55.8994 16.8994 -87.2002c-2.5 -1.39941 -9.09961 -6.09961 -13 -10c-21.5996 -9.69922 -56.2002 -60.2998 -56.2002 -60.2998c-28.1992 -10.7998 -77.1992 -50.8994 -70.5996 -79.7002c0.299805 -3 1.40039 -5.5 3 -7.5
+c-2.7998 -2.19922 -5.5 -5 -8.2998 -8.2998c-11.9004 -13.7998 -5.2998 -35.2002 17.7002 -24.3994c15.7998 7.19922 29.5996 20.1992 36.2998 30.3994c0 0 -5.5 5 -16.2998 4.40039c27.6992 6.59961 34.2998 9.39941 46.1992 9.09961c8 -3.89941 8 34.2998 8 34.2998
+c0 14.7002 -2.19922 31 -11.0996 41.5c12.5 -12.1992 29.0996 -32.6992 28 -60.5996c-0.799805 -18.2998 -15.2002 -23 -15.2002 -23c-9.09961 -16.5996 -43.2002 -65.9004 -30.3994 -106c0 0 -9.7002 14.9004 -10.2002 22.0996
+c-17.4004 -19.3994 -46.5 -52.2998 -24.6006 -64.5c26.6006 -14.6992 108.801 88.6006 126.2 142.301c34.6006 20.7998 55.4004 47.2998 63.9004 65c22 -43.5 95.2998 -94.5 101.1 -59z" />
+ <glyph glyph-name="etsy" unicode="" horiz-adv-x="384"
+d="M384 100c-1.75 -10.75 -13.75 -110 -15.5 -132c-117.879 4.29883 -219.895 4.74316 -368.5 0v25.5c45.457 8.94824 60.627 8.01855 61 35.25c1.79297 72.3223 3.52441 244.143 0 322c-1.0293 28.46 -12.1299 26.7646 -61 36v25.5
+c73.8857 -2.3584 255.933 -8.55078 362.999 3.75c-3.5 -38.25 -7.75 -126.5 -7.75 -126.5h-23.249c-11.0527 42.835 -18.7588 90.5 -54.75 90.5h-137c-10.25 0 -10.75 -3.5 -10.75 -9.75v-163.75c58 -0.5 88.5 2.5 88.5 2.5c29.7695 0.951172 27.5596 8.50195 40.75 65.251
+h25.75c-4.40723 -101.351 -3.91016 -61.8291 -1.75 -160.25h-25.75c-9.15527 40.0859 -9.06543 61.0449 -39.501 61.5c0 0 -21.5 2 -88 2v-139c0 -26 14.25 -38.25 44.25 -38.25h89.251c63.6357 0 66.5645 24.9961 98.751 99.75h22.249v-0.000976562z" />
+ <glyph glyph-name="imdb" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM21.2998 218.8h-0.299805c0.0996094 0.100586 0.200195 0.299805 0.299805 0.400391v-0.400391zM97 128.2v127.8h-33v-127.8h33z
+M210.2 128.2v127.8h-43l-7.60059 -59.9004c-2.69922 20 -5.39941 40.1006 -8.69922 59.9004h-42.8008v-127.8h29v84.5l12.2002 -84.5h20.6006l11.5996 86.3994v-86.3994h28.7002zM221.6 128.2c86.1006 -0.100586 75 -6 75 82.5c0 8.09961 0.300781 16.7998 -1.39941 24.3994
+c-4.2998 22.5 -31.4004 20.9004 -49 20.9004h-24.6006v-127.8zM382.5 157.4v36c0 17.2998 -0.799805 30.0996 -22.2002 30.0996c-8.89941 0 -14.8994 -2.7002 -20.8994 -9.2002v41.7002h-31.7002v-127.8h29.7998l1.90039 8.09961
+c5.69922 -6.7998 11.8994 -9.7998 20.8994 -9.7998c19.7998 0 22.2002 15.2002 22.2002 30.9004zM265 218.1v-49.2998c0 -9.7002 1.90039 -18.7002 -10.2998 -18.3994v83.6992c11.8994 0 10.2998 -6.2998 10.2998 -16zM350.5 192v-32.7002
+c0 -5.39941 1.59961 -14.3994 -6.2002 -14.3994c-1.59961 0 -3 0.799805 -3.7998 2.39941c-2.2002 5.10059 -1.09961 44.1006 -1.09961 44.7002c0 3.7998 -1.10059 12.7002 4.89941 12.7002c7.2998 0 6.2002 -7.2998 6.2002 -12.7002z" />
+ <glyph glyph-name="ravelry" unicode="" horiz-adv-x="512"
+d="M407.4 386.5c72.6992 -37.9004 112 -117.2 103.3 -199.5c-1.7002 -16.7002 -4.40039 -36.2002 -9.7998 -52.2002c-22.2002 -65.7002 -52.9004 -108.6 -123.101 -147.7c-6.39941 -4.39941 -13.2998 -8.59961 -20.2002 -10.7998
+c-12.5 -4.39941 -26.0996 -5.39941 -40.0996 -3.89941c-5.90039 -0.5 -11.7998 -0.700195 -18 -0.700195c-93.7002 0 -173 64 -196.9 151.399c-0.699219 0 -1.5 0.200195 -2.19922 0.200195c-5.60059 -44.2998 27.0996 -104.1 27.0996 -104.1s2 -3 13.2998 -20.2002
+c-62.7998 33.2002 -64.5 131.2 -64.5 131.2c-15 5.59961 -67.2002 23.3994 -76.2998 37.8994c0 0 40.9004 -22.3994 76.2002 -27c-0.200195 0.300781 0.5 7.90039 0.5 7.90039c2.2002 30 12.5 53.4004 23.0996 71.4004c6.90039 33.7998 22.1006 64.2998 43.2998 89.8994
+c3.7002 15.2998 9.60059 33.5 19.9004 52.7002c4.40039 8.40039 8.59961 13.7998 19.9004 19c74.8994 35 148.699 43.9004 224.5 4.5zM138.8 284.8c-7.59961 -11.2998 -13.7002 -23.5996 -18.8994 -36.3994c8.09961 8.59961 14.7998 14.1992 18.1992 16.6992
+c-0.5 7.40039 0.700195 19.7002 0.700195 19.7002zM107.6 162.9c0.700195 -9.60059 2 -18.9004 4.2002 -28.1006l41.4004 -6.89941c-14.1006 42.0996 -15.7998 90.0996 -15.7998 90.0996c-16.5 -16 -25.4004 -37.9004 -29.8008 -55.0996zM115.5 120.1
+c21.4004 -69.6992 81 -122.8 154.1 -134.399c-1 0.299805 -1.69922 0.5 -2.69922 1c0 0 -81 47.5 -108.301 124.3c-9.09961 1.5 -28.2998 5.90039 -43.0996 9.09961zM386 3.90039c63 32 106.6 98 106.8 174c0 107.399 -86.5996 194.5 -193 194.5
+c-49.2998 0 -94.0996 -18.7002 -128.3 -49.5c-5.2002 -10.1006 -8.59961 -22.9004 -11.0996 -39.4004c52.5 44.5996 146 33.5 146 33.5c23.3994 -1 20.5996 -21.7002 20.3994 -28.0996c-85.2002 7.19922 -127 -17.2002 -168.399 -52.4004
+c0 0 8.09961 -78.7998 26.7998 -110.8c107.8 -4.90039 189.8 53.7002 189.8 53.7002c10.2998 7.39941 19.4004 8.09961 21.4004 -4.7002c1.5 -10.4004 2.19922 -24.4004 -9.60059 -29.7998c-36 -16.8008 -75.5996 -27.3008 -115 -33
+c-25.5996 -3.7002 -39.7998 -4.60059 -78 -3.90039c36.4004 -84.7002 127.5 -107.8 127.5 -107.8c28.5 -4.7002 50.2002 -1 64.7002 3.7002z" />
+ <glyph glyph-name="sellcast" unicode=""
+d="M353.4 416c52.0996 0 94.6992 -42.5996 94.6992 -94.5996v-258.801c0 -52 -42.5996 -94.5996 -94.6992 -94.5996h-258.7c-52.1006 0 -94.7002 42.5996 -94.7002 94.7002v258.7c0 52 42.5996 94.5996 94.7002 94.5996h258.7zM303.4 99.5996
+c27.8994 48.2002 11.1992 110.5 -37.2002 138.5c-18.6006 10.8008 0.0996094 -0.0996094 -18.5 10.7002c-25 14.4004 -46.2002 -23.2998 -21.6006 -37.5c18 -10.2002 0.800781 -0.399414 18.6006 -10.5996c27.5996 -16 37.2002 -51.7998 21.2998 -79.4004
+c-16 -27.5996 -51.7998 -37.2002 -79.4004 -21.2998c-18.5996 10.7998 0.100586 -0.0996094 -18.5 10.7002c-10.2998 6 -23.5996 2.39941 -29.5 -7.90039l-15.6992 -27.2002c-12.6006 -21.7998 19.3994 -53 42.2998 -13.1992c48.2998 -27.7002 110.3 -11 138.2 37.1992z
+M325.2 308.4c14.2998 24.7998 -23.4004 46.3994 -37.7002 21.5l-4.7998 -8.40039c-48.2998 27.7002 -110.3 11 -138.2 -37.2002c-27.7998 -48.2998 -11.0996 -110.6 37.0996 -138.399c18.6006 -10.8008 -0.0996094 0.0996094 18.5 -10.7002
+c25 -14.4004 46.2002 23.2998 21.6006 37.5c-0.100586 0 -18.6006 10.5996 -18.6006 10.5996c-27.5996 16 -37.2998 51.7998 -21.2998 79.4004c16 27.5996 51.7998 37.2002 79.4004 21.2998c18.5996 -10.7998 -0.100586 0.0996094 18.5 -10.7002
+c10.2002 -5.09961 20 -2.89941 26.5 3.60059c2.7002 2.69922 2 2 19 31.5z" />
+ <glyph glyph-name="superpowers" unicode=""
+d="M448 416l-87.2002 -87c39.7002 -38.7002 61.2002 -92.7002 57.7002 -148.2c-5.40039 -93 -76.9004 -167.3 -168.7 -179.8c-83.2998 -11 -166.5 -22 -249.8 -33l86.7998 86.7998c-39.7998 38.7002 -61.0996 92.7002 -57.7998 148.2c5.7002 93.2998 77 167.5 169 180
+c83.2002 11 166.7 22 250 33zM368.3 183.7c4.40039 80 -56.7998 146.3 -136.1 151c-78.7002 4.7998 -148.5 -55.2998 -153 -134.5c-4.40039 -80 56.7998 -146.3 136.3 -151c78.7998 -4.7002 148.6 55 152.8 134.5z" />
+ <glyph glyph-name="wpexplorer" unicode="" horiz-adv-x="512"
+d="M512 192c0 -141.2 -114.7 -256 -256 -256c-141.2 0 -256 114.7 -256 256s114.7 256 256 256s256 -114.7 256 -256zM480 192c0 123.2 -100.3 224 -224 224c-123.5 0 -224 -100.5 -224 -224s100.5 -224 224 -224s224 100.5 224 224zM160.9 323.4l86.8994 -37.1006
+l-37.0996 -86.8994l-86.9004 37.0996zM270.9 154.3l46.5996 -94h-14.5996l-50 100l-48.9004 -100h-14l51.0996 106.9l-22.2998 9.39941l6 14l68.6006 -29.0996l-6 -14.2998zM259.1 270.6l68.6006 -29.3994l-29.4004 -68.2998l-68.2998 29.0996zM339.4 227.7
+l54.5996 -23.1006l-23.4004 -54.2998l-54.2998 23.1006z" />
+ <glyph glyph-name="meetup" unicode="" horiz-adv-x="512"
+d="M99 33.7002c1.09961 -5.7002 -2.2998 -11.1006 -8 -12.2998c-5.40039 -1.10059 -10.9004 2.2998 -12 8c-1.09961 5.39941 2.2998 11.0996 7.7002 12.2998c5.39941 1.2002 11.0996 -2.2998 12.2998 -8zM242.1 -37.7002c6.60059 4.60059 15.5 2.7998 19.7002 -3.7002
+c4.60059 -6.59961 2.90039 -15.3994 -3.39941 -20c-6.60059 -4.59961 -15.4004 -2.89941 -20 3.7002c-4.30078 6.60059 -2.60059 15.4004 3.69922 20zM156.1 424.6c-6.2998 -1.5 -12.5 2.5 -13.8994 9.10059c-1.2002 6.2998 2.7998 12.5996 9.09961 14
+c6.2998 1.5 12.6006 -2.5 13.7002 -9.10059c1.40039 -6.2998 -2.59961 -12.5996 -8.90039 -14zM34.4004 221.7c10 -7.10059 12.5996 -20.7998 5.69922 -31.2002c-6.89941 -10.2998 -20.5996 -12.7998 -30.5996 -5.7002c-10 6.90039 -12.5996 20.9004 -5.7002 30.9004
+c6.90039 10.2998 20.6006 12.8994 30.6006 6zM306.4 392.6c-10.3008 -6.2998 -23.7002 -2.89941 -29.7002 7.40039c-6.2998 10.5996 -2.90039 24.2998 7.39941 30.5996c10.3008 6.30078 23.7002 2.90039 30 -7.69922c6 -10.3008 2.90039 -24 -7.69922 -30.3008zM115.3 334.6
+c-7.5 -5.19922 -18 -3.5 -23.0996 4.30078c-5.10059 7.69922 -3.40039 18.2998 4.2998 23.6992c7.40039 5.10059 18 3.40039 23.0996 -4.2998c5.10059 -7.7002 3.40039 -18.2998 -4.2998 -23.7002zM487.6 178.6c7.40039 1.40039 14.8008 -3.5 16.3008 -10.8994
+c1.69922 -7.7002 -3.2002 -15.2002 -10.6006 -16.6006c-7.39941 -1.69922 -14.8994 3.2002 -16.2998 10.6006c-1.7002 7.7998 3.2002 15.2002 10.5996 16.8994zM527.3 235.4c1.40039 -5.7002 -2.2998 -11.1006 -7.7002 -12.6006
+c-5.69922 -1.09961 -11.1992 2.60059 -12.2998 8c-1.09961 5.7002 2.2998 11.5 8 12.6006c5.40039 1.09961 10.9004 -2.30078 12 -8zM447 309.1c8.2998 6 20 3.80078 25.7002 -4.89941c5.7002 -8.60059 3.7002 -20.2998 -4.60059 -26.2998
+c-8.59961 -5.7002 -20.2998 -3.7002 -26 4.89941c-5.69922 8.60059 -3.69922 20.2998 4.90039 26.2998zM440.7 169.7c26.2998 -43.1006 15.0996 -100 -26.2998 -129.101c-17.4004 -12.2998 -37.1006 -17.6992 -56.9004 -17.0996
+c-12 -47.0996 -69.4004 -64.5996 -105.1 -32.5996c-1.10059 -0.900391 -2.60059 -1.7002 -3.7002 -2.90039c-39.1006 -27.0996 -92.2998 -17.4004 -119.4 22.2998c-9.7002 14.2998 -14.5996 30.6006 -15.0996 46.9004c-65.4004 10.8994 -90 94 -41.1006 139.7
+c-28.2998 46.8994 0.600586 107.399 53.4004 114.899c25.0996 66.2002 107.6 97.6006 163.6 54.2002c67.4004 22.2998 136.301 -29.4004 130.9 -101.1c41.0996 -12.6006 52.7998 -66.9004 19.7002 -95.2002zM370.7 95.4004
+c-3.10059 20.5996 -40.9004 4.59961 -43.1006 27.0996c-3.09961 32 43.7002 101.1 40 128c-3.39941 24 -19.3994 29.0996 -33.3994 29.4004c-13.4004 0.299805 -16.9004 -2 -21.4004 -4.60059c-2.89941 -1.7002 -6.59961 -4.89941 -11.7002 0.299805
+c-6.2998 6 -11.0996 11.7002 -19.3994 12.9004c-12.2998 2 -17.7002 -2 -26.6006 -9.7002c-3.39941 -2.89941 -12 -12.8994 -20 -9.09961c-3.39941 1.7002 -15.3994 7.7002 -24 11.3994c-16.2998 7.10059 -40 -4.59961 -48.5996 -20
+c-12.9004 -22.8994 -38 -113.1 -41.7002 -125.1c-8.59961 -26.5996 10.9004 -48.5996 36.9004 -47.0996c11.0996 0.599609 18.2998 4.59961 25.3994 17.3994c4 7.40039 41.7002 107.7 44.6006 112.601c2 3.39941 8.89941 8 14.5996 5.09961
+c5.7002 -3.09961 6.90039 -9.40039 6 -15.0996c-1.09961 -9.7002 -28 -70.9004 -28.8994 -77.7002c-3.40039 -22.9004 26.8994 -26.6006 38.5996 -4c3.7002 7.09961 45.7002 92.5996 49.4004 98.2998c4.2998 6.2998 7.39941 8.2998 11.6992 8
+c3.10059 0 8.30078 -0.900391 7.10059 -10.9004c-1.40039 -9.39941 -35.1006 -72.2998 -38.9004 -87.6992c-4.59961 -20.6006 6.60059 -41.4004 24.9004 -50.6006c11.3994 -5.7002 62.5 -15.7002 58.5 11.1006zM376.4 3.09961c10.5996 7.5 24.8994 4.60059 32.2998 -6
+c7.09961 -10.5996 4.59961 -25.1992 -6 -32.5996c-10.6006 -7.09961 -24.9004 -4.59961 -32 6c-7.2002 10.5996 -4.60059 25.2002 5.7002 32.5996z" />
+ <glyph glyph-name="font-awesome-alt" unicode=""
+d="M339.3 276.8c5.40039 0 9.5 -3 7.7002 -7.09961v-134.4c0 -4.2002 -3 -6 -7.2002 -7.7998c-15.5996 -7.09961 -33.5 -13.7002 -52 -13.7002c-26.2998 0 -38.2002 16.1006 -69.2998 16.1006c-22.7002 0 -46 -8.30078 -65.7002 -16.7002
+c-0.599609 -0.600586 -1.7998 -1.2002 -3 -1.2002v-44.2002c0 -1.7998 0 -3 -0.599609 -4.7998v-1.2998c-2.40039 -7.7002 -9.5 -13.7002 -18.5 -13.7002c-10.7002 0 -19.7002 8.90039 -19.7002 19.7002v212.1c-7.7002 6 -12.5 15.5 -12.5 25.7002
+c0 18 14.2998 32.2998 32.2998 32.2998s32.2998 -14.3994 32.2998 -32.2998c0 -10.7998 -4.69922 -19.7002 -12.5 -25.7002v-17.8994c1.2002 0.599609 3 1.19922 4.80078 1.7998c17.8994 7.09961 39.3994 13.7002 59.6992 13.7002
+c22.1006 0 39.4004 -5.90039 59.1006 -13.7002c4.09961 -1.7998 8.2998 -2.40039 12.5 -2.40039c22.7002 0 46.5996 15.5 52.5996 15.5zM397.8 416c27.5 0 50.2002 -22.7002 50.2002 -50.2002v-347.6c0 -27.5 -22.7002 -50.2002 -50.2002 -50.2002h-347.6
+c-27.5 0 -50.2002 22.7002 -50.2002 50.2002v347.6c0 27.5 22.7002 50.2002 50.2002 50.2002h347.6zM412.1 18.2998v347.601c0 7.69922 -6.5 14.2998 -14.2998 14.2998v-0.100586h-347.6c-7.7002 0 -14.2998 -6.5 -14.2998 -14.2998v-347.5
+c0 -7.7002 6.5 -14.2998 14.2998 -14.2998h347.6c7.7002 0 14.2998 6.5 14.2998 14.2998z" />
+ <glyph glyph-name="accessible-icon" unicode=""
+d="M423.9 192.2l-12.9004 -157.3c-3.2998 -40.7002 -63.9004 -35.1006 -60.5996 4.89941l10 122.5l-41.1006 -2.2998c10.1006 -20.7002 15.7998 -43.9004 15.7998 -68.5c0 -41.2002 -16.0996 -78.7002 -42.2998 -106.5l-39.2998 39.2998
+c57.9004 63.7002 13.0996 167.2 -74 167.2c-25.9004 0 -49.5 -9.90039 -67.2002 -26l-39.2998 39.2998c22 20.7002 50.0996 35.1006 81.4004 40.2002l75.2998 85.7002l-42.6006 24.7998l-51.5996 -46c-30 -26.7998 -70.5996 18.5 -40.5 45.4004l68 60.6992
+c9.7998 8.80078 24.0996 10.2002 35.5 3.60059c0 0 139.3 -80.9004 139.5 -81.1006c16.2002 -10.0996 20.7002 -36 6.09961 -52.5996l-58.3994 -66.5l106.1 5.90039c18.5 1.09961 33.6006 -14.4004 32.1006 -32.7002zM359 346.2
+c-28.0996 0 -50.9004 22.7998 -50.9004 50.8994c0 28.1006 22.8008 50.9004 50.9004 50.9004s50.9004 -22.7998 50.9004 -50.9004c0 -28.0996 -22.8008 -50.8994 -50.9004 -50.8994zM179.6 -8.5c20.8008 0 40.1006 6.40039 56.1006 17.2998l39.7002 -39.7002
+c-100.7 -78.8994 -251.4 -8.19922 -251.4 122.5c0 36.1006 12.4004 69.4004 33.2002 95.7002l39.7002 -39.7002c-44.7002 -65.5 2.09961 -156.1 82.6992 -156.1z" />
+ <glyph glyph-name="accusoft" unicode="" horiz-adv-x="640"
+d="M322.1 196c-1.69922 -1.59961 -89.5996 -82.5 -90.1992 -83.2998l-92.6006 -33.7998c-4.7998 -2 -7.59961 -3.7002 -7 -8.90039c0.200195 -1.5 0.600586 -22.5996 1 -27.7002c-0.700195 -0.5 -0.0996094 0 -0.599609 -0.599609c0 0 -113.7 -36.6006 -114.5 -36.6006
+c-14.1006 -5.09961 -22.7002 -8.2998 -15.7002 1.7002c1.2998 1.7998 234.4 231.601 243.4 240.9c13 13.5 25 15.0996 25 15.0996l51.1992 -65.7998v-1zM482.2 75.9004c-5.7002 6.89941 -232.2 297.1 -239.9 306.6c-13.7002 17.2002 0 16.7998 19.2002 16.9004
+c9.7002 0.0996094 106.3 0.599609 116.5 0.599609c24.0996 0.0996094 28.7002 -0.599609 38.4004 -12.7998c2.09961 -2.7002 205.1 -245.8 207.199 -248.3c5.5 -6.7002 15.2002 -19.1006 7.2002 -23.4004c-2.39941 -1.2998 -114.6 -47.7002 -117.8 -48.9004
+c-10.0996 -4 -17.5 -6.7998 -30.7998 9.30078zM634.9 74.2998c6 -1.39941 7.09961 -4.2002 1.69922 -8.2002c-2 -1.39941 -123.699 -76.5996 -125.8 -77.7998c-15.0996 -8.7998 -38 -1.59961 -53.5996 1.7002c-7.10059 1.5 -305.3 68.2998 -308 69.0996
+c-2.60059 0.900391 -4.40039 1 -4.60059 3.5c-0.299805 4 6 5.60059 11.1006 7.60059c5 1.89941 145.3 52.5996 150.2 54.7002c4.7998 2.09961 11.2998 2.69922 14.3994 2.89941c4.90039 0.299805 59.9004 -8.39941 65.2998 -9.2998l57.1006 -74
+c9.7998 -11.4004 20.7002 -21.9004 36.7002 -14.5996c2.5 1.19922 117.5 51.5996 117.5 51.5996c13.3994 -2.5 35.6992 -6.90039 38 -7.2002z" />
+ <glyph glyph-name="adversal" unicode="" horiz-adv-x="512"
+d="M482.1 416c24.5 0 29.9004 -5.59961 29.9004 -30.2002v-388.1c0 -24.5 -5.5 -29.7002 -29.9004 -29.7002h-453.399c-22.9004 0 -28.7002 5.59961 -28.7002 28.9004v390.199c0 23 5.7998 28.9004 28.7002 28.9004h453.399zM178.4 227.7
+c9.39941 -7.2002 12.3994 -17.1006 11.2998 -27.2998c-1.7998 -19.1006 -75.7998 -11.4004 -114 -30.9004c-27.2002 -13.9004 -42.7002 -41.7002 -39.6006 -71c6.7002 -64.7002 89.6006 -79.7002 147 -43.2998c4.60059 3.2002 8.30078 4.89941 11.9004 1
+c2.09961 -2.60059 2 -4 3.90039 -6.2002c7.2998 -9.59961 38.1992 -14.0996 46.5996 -7.40039c3.09961 2.80078 4.59961 6.30078 2.7002 10.7002c-13.6006 30.5 -6.60059 63 -9.2998 88.7998c0 69.3008 6.39941 111.7 -34.5 128.5
+c-41.9004 17.4004 -84.2002 16.6006 -125.301 -4.7998c-16.2998 -9 -53.6992 -52.8994 -24.8994 -64.2998c5.2998 -2.2998 12.7998 -4 22.5 -5.5c8.2002 -1.2002 13.2002 -2.7998 17.5 8.2998c12.0996 32.1006 56.7002 43.6006 84.2002 23.4004zM465.1 5.7002
+c0 14.2998 -9.7998 9.89941 -16.5996 9.89941c-132.3 0.400391 -264.5 0.400391 -396.8 0c-6.60059 0 -16.7002 4.80078 -17.1006 -9.09961c-0.399414 -15.5 10.4004 -10.7002 17.8008 -10.7002h394.899c6.7002 0 17.7998 -5.2002 17.7998 9.90039zM468.9 346.2
+c0 0.200195 0 0.299805 0.0996094 0.5c0 9.89941 -3.5 15.0996 -13.5996 14.2998c-3.10059 -0.400391 -6.60059 0 -9.7002 0c-26.1006 0 -26 0 -26 -26.2002v-71c-79.2002 45.6006 -124.3 -6.59961 -136.101 -30.5c-16.3994 -32.8994 -21.7998 -66.5996 -15.6992 -100
+c16.2998 -92.2998 91 -114.899 144.399 -85.2002c4.60059 2.80078 6.60059 7.5 12.4004 -1.19922c8.59961 -12.7002 23.7002 -5.2002 36.0996 -5.60059c7.40039 0 8.10059 8.2002 8.10059 13.9004v291zM417.4 113.9c-19.5 -47.6006 -72.9004 -43.3008 -90 -5.2002
+c-15.1006 33.2998 -15.5 68.2002 0.399414 101.5c16.2998 34.0996 59.7002 35.7002 81.5 4.7998c20.6006 -28.7998 14.9004 -84.5996 8.10059 -101.1zM122.6 78.5996c-7.5 1.30078 -33 3.30078 -33.6992 27.8008c-0.400391 13.8994 7.7998 23 19.7998 25.7998
+c24.3994 5.89941 49.2998 9.89941 73.7002 14.7002c8.89941 2 7.39941 -4.40039 7.7998 -9.5c1.39941 -33 -26.1006 -59.2002 -67.6006 -58.8008z" />
+ <glyph glyph-name="affiliatetheme" unicode="" horiz-adv-x="512"
+d="M159.7 210.6c-51.2998 -70.8994 -116.601 -110.8 -145.7 -89.1992c-29.2002 21.6992 -11.2002 96.5996 40.2002 167.5c51.2998 70.8994 116.6 110.8 145.7 89.1992c29.0996 -21.5996 11.0996 -96.5996 -40.2002 -167.5zM510.9 267.9
+c0.699219 -8.2002 1.09961 -16.5 1 -25c0 -151.801 -121.601 -274.9 -271.601 -274.9c-82.8994 0 -157.2 37.5996 -207 96.9004c71.2998 19.3994 130.5 68.3994 164.101 133.199c7.69922 -32.5996 24 -58.5996 49 -73.7998c72.5996 -44.0996 190.699 20.2002 264.5 143.601z
+" />
+ <glyph glyph-name="algolia" unicode=""
+d="M229.3 265.4c49.2002 0 89.2002 -39.9004 89.2002 -89.2002s-39.9004 -89.2002 -89.2002 -89.2002s-89.2002 39.9004 -89.2002 89.2002s39.9004 89.2002 89.2002 89.2002zM292 208.8c1.2998 0.700195 1.7998 2.40039 1.09961 3.7002
+c-12.1992 21.4004 -34.8994 36.0996 -61.0996 37.0996c-1.40039 0.100586 -2.7002 -1.09961 -2.7002 -2.59961v-66.5c0 -1.90039 2 -3.2002 3.7998 -2.2998zM389.1 416c32.5 0 58.9004 -26.4004 58.8008 -58.9004v-330.199c0 -32.5 -26.3008 -58.9004 -58.9004 -58.9004
+h-330.1c-32.5 0 -58.9004 26.4004 -58.9004 59v330.1c0 32.5 26.4004 58.9004 58.9004 58.9004h330.199zM186.5 331.3h0.0996094v-15.7998c0 -1.7002 1.7002 -3 3.40039 -2.5c12.7002 3.7002 25.9004 5.5 39.4004 5.5c13 0 25.7998 -1.7002 38.0996 -5.09961
+c1.59961 -0.5 3.2998 0.699219 3.2998 2.5v15.3994c0 10.7998 -8.7002 19.5 -19.5 19.5h-45.2998c-10.7998 0 -19.5 -8.7002 -19.5 -19.5zM102.1 294.3c-7.59961 -7.59961 -7.59961 -19.8994 0 -27.3994l7.7002 -7.7002c1.10059 -1.2002 3 -1 4 0.299805
+c4.40039 6.09961 9.40039 12 14.7998 17.4004c5.5 5.5 11.4004 10.3994 17.6006 14.8994c1.2998 1 1.39941 2.90039 0.299805 4l-7.7002 7.7002c-7.59961 7.59961 -19.8994 7.59961 -27.5 0zM229.3 49.5c69.9004 0 126.601 56.7998 126.601 126.6
+c0 70 -56.6006 126.601 -126.601 126.601c-69.8994 0 -126.6 -56.7002 -126.6 -126.601c0 -69.8994 56.5996 -126.6 126.6 -126.6z" />
+ <glyph glyph-name="amilia" unicode=""
+d="M240.1 416c134.101 0 191.9 -55.7002 192 -136v-296.6c0 -3 -1 -8.10059 -5.09961 -9.10059c-4 -1 -57.2998 -0.700195 -66.5 -0.700195s-56.7998 1 -59.9004 2c-4 0.900391 -6.09961 6.10059 -6.09961 9.10059v25.3994
+c-39.5996 -21.3994 -105.5 -42.0996 -153.3 -42.0996c-109.7 0 -124.9 85.7002 -124.9 104s-5.09961 95.5 30.4004 111.8c31.5 13.2002 156.3 36.5 243.7 47.7998v38.5c0 44.7002 -1 73.1006 -58.9004 73.1006c-55.7998 0 -119.8 -25.4004 -152.3 -47.7002
+c-6.10059 -4.09961 -16.2002 -4.09961 -20.2998 6.09961c-5.10059 12.2002 -9.10059 34.5 -10.2002 39.6006c-1.90039 10.2002 2.09961 16.2998 7.2002 19.3994c52.6992 38.5 122.3 55.4004 184.199 55.4004zM290.3 68v106.7c-44.7002 -4.10059 -95.5 -20.2998 -119.8 -33.5
+c-21.2998 -10.2002 -18.2998 -40.7002 -18.2998 -52.9004c0.0996094 -11.2002 6.2002 -44.7002 59 -44.7002c30.3994 0 57.7002 11.2002 79.0996 24.4004z" />
+ <glyph glyph-name="angrycreative" unicode="" horiz-adv-x="640"
+d="M640 209.8l-3.2002 -28.2002l-34.5 -2.2998l-2 -18.0996l34.5 2.2998l-3.2002 -28.2002l-34.3994 -2.2002l-2.2998 -20.0996l34.3994 2.2002l-3 -26.1006l-64.7002 -4.09961l12.7002 113.2l-47.2998 -115.4l-31.9004 -2l-23.7998 117.8l30.2998 2l13.6006 -79.3994
+l31.7002 82.3994zM426.8 76.5l12.7998 120l28.4004 1.90039l-12.9004 -120.101zM162 59.9004l-19.4004 36l-3.5 -37.4004l-28.1992 -1.7002l2.69922 29.1006c-11 -18 -32 -34.3008 -56.8994 -35.8008c-32.7998 -2 -59.7002 20.9004 -56.4004 58.2002
+c2.60059 29.2998 26.7002 62.7998 67.5 65.4004c37.7002 2.39941 47.6006 -23.2002 51.2998 -28.7998l2.80078 30.7998l38.8994 2.5c20.1006 1.2998 38.7002 -3.7002 42.5 -23.7002l2.60059 26.5996l64.7998 4.2002l-2.7002 -27.8994l-36.4004 -2.40039l-1.69922 -17.9004
+l36.3994 2.30078l-2.7002 -27.9004l-36.3994 -2.2998l-1.90039 -19.9004l36.2998 2.2998l-2.09961 -20.7998l55 117.2l23.7998 1.59961l32.1006 -110.6l8.89941 85.5996l-22.2998 -1.39941l2.90039 27.8994l75 4.90039l-3 -28l-24.3008 -1.59961l-9.69922 -91.9004
+l-58 -3.7002l-4.30078 15.6006l-39.3994 -2.5l-8 -16.3008zM117.7 130.1l-26.4004 -1.69922c-6.7002 12.3994 -14.3994 16.5996 -26.2998 15.7998c-19 -1.2002 -33.2998 -17.5 -34.5996 -33.2998c-1.40039 -16 7.2998 -32.5 28.6992 -31.2002
+c12.8008 0.799805 21.3008 8.59961 28.9004 18.8994l27 1.7002zM173.8 137.8c1.2002 12.9004 -7.59961 13.6006 -26.0996 12.4004l-2.7002 -28.5c14.2002 0.899414 27.5 2.09961 28.7998 16.0996zM194.9 67l5.7998 60c-5 -13.5 -14.7002 -21.0996 -27.9004 -26.5996z
+M330.3 112l-7.89941 37.7998l-15.8008 -39.2998zM160.2 186.6l-4.2998 17.5l-39.6006 -2.59961l-8.09961 -18.2002l-31.9004 -2.09961l57 121.899l23.9004 1.60059l30.7002 -102l9.89941 104.7l27 1.7998l37.7998 -63.6006l6.5 66.6006l28.5 1.89941l-4 -41.1992
+c7.40039 13.5 22.9004 44.6992 63.6006 47.5c40.5 2.7998 52.3994 -29.3008 53.3994 -30.3008l3.30078 32l39.2998 2.7002c12.7002 0.900391 27.7998 -0.299805 36.2998 -9.7002l-4.40039 11.9004l32.2002 2.2002l12.9004 -43.2002l23 45.7002l31 2.2002l-43.6006 -78.4004
+l-4.7998 -44.2998l-28.3994 -1.90039l4.7998 44.2998l-15.7998 43c1 -22.2998 -9.2002 -40.0996 -32 -49.5996l25.1992 -38.7998l-36.3994 -2.40039l-19.2002 36.7998l-4 -38.2998l-28.4004 -1.89941l3.30078 31.5c-6.7002 -9.30078 -19.7002 -35.4004 -59.6006 -38
+c-26.2002 -1.7002 -45.5996 10.2998 -55.3994 39.1992l-4 -40.2998l-25 -1.59961l-37.6006 63.2998l-6.2998 -66.2002zM436.8 268.7c10.2002 0.700195 17.5 2.09961 21.6006 4.2998c4.5 2.40039 7 6.40039 7.59961 12.0996
+c0.599609 5.30078 -0.599609 8.80078 -3.40039 10.4004c-3.59961 2.09961 -10.5996 2.7998 -22.8994 2zM327.7 234c5.59961 -5.90039 12.7002 -8.5 21.2998 -7.90039c4.7002 0.300781 9.09961 1.80078 13.2998 4.10059c5.5 3 10.6006 8 15.1006 14.2998l-34.2002 -2.2998
+l2.39941 23.8994l63.1006 4.30078l1.2002 12l-31.2002 -2.10059c-4.10059 3.7002 -7.7998 6.60059 -11.1006 8.10059c-4 1.69922 -8.09961 2.7998 -12.1992 2.5c-8 -0.5 -15.3008 -3.60059 -22 -9.2002c-7.7002 -6.40039 -12 -14.5 -12.9004 -24.4004
+c-1.09961 -9.59961 1.40039 -17.2998 7.2002 -23.2998zM126.4 225.8l23.7998 1.60059l-8.2998 37.5996z" />
+ <glyph glyph-name="app-store" unicode="" horiz-adv-x="512"
+d="M255.9 327.1l9.09961 15.7002c5.59961 9.7998 18.0996 13.1006 27.9004 7.5c9.7998 -5.59961 13.0996 -18.0996 7.5 -27.8994l-87.5 -151.5h63.2998c20.5 0 32 -24.1006 23.0996 -40.8008h-185.5c-11.2998 0 -20.3994 9.10059 -20.3994 20.4004
+s9.09961 20.4004 20.3994 20.4004h52l66.6006 115.399l-20.8008 36.1006c-5.59961 9.7998 -2.2998 22.1992 7.5 27.8994c9.80078 5.60059 22.2002 2.2998 27.9004 -7.5zM177.2 109.1l-19.6006 -34c-5.59961 -9.7998 -18.0996 -13.0996 -27.8994 -7.5
+c-9.7998 5.60059 -13.1006 18.1006 -7.5 27.9004l14.5996 25.2002c16.4004 5.09961 29.7998 1.2002 40.4004 -11.6006zM346.1 170.8h53.1006c11.2998 0 20.3994 -9.09961 20.3994 -20.3994c0 -11.3008 -9.09961 -20.4004 -20.3994 -20.4004h-29.5l19.8994 -34.5
+c5.60059 -9.7998 2.30078 -22.2002 -7.5 -27.9004c-9.7998 -5.59961 -22.1992 -2.2998 -27.8994 7.5c-33.5 58.1006 -58.7002 101.601 -75.4004 130.601c-17.0996 29.5 -4.89941 59.0996 7.2002 69.0996c13.4004 -23 33.4004 -57.7002 60.0996 -104zM256 440
+c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM472 192c0 119.9 -97.2998 216 -216 216c-119.9 0 -216 -97.2998 -216 -216c0 -119.9 97.2998 -216 216 -216c119.9 0 216 97.2998 216 216z" />
+ <glyph glyph-name="app-store-ios" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM127 63.5l19.2998 33.2998c-10.2998 12.5 -23.5 16.2998 -39.5996 11.4004l-14.2998 -24.7002
+c-5.5 -9.5 -2.30078 -21.7998 7.2998 -27.2998c9.5 -5.5 21.7998 -2.2998 27.2998 7.2998zM265.9 117.4c8.7998 16.2998 -2.5 40 -22.7002 40h-62.1006l85.8008 148.6c5.5 9.5 2.2998 21.7998 -7.30078 27.2998c-9.5 5.5 -21.7998 2.2998 -27.2998 -7.2998
+l-8.89941 -15.4004l-8.90039 15.4004c-5.5 9.5 -17.7002 12.7998 -27.2998 7.2998c-9.5 -5.5 -12.7998 -17.7002 -7.2998 -27.2998l20.5 -35.4004l-65.4004 -113.199h-51c-11 0 -20 -9 -20 -20s9 -20 20 -20h181.9zM364 117.4c11 0 20 8.89941 20 20c0 11 -9 20 -20 20h-52
+c-26.2002 45.2998 -45.7998 79.2998 -58.9004 102c-11.8994 -9.80078 -23.7998 -38.8008 -7.09961 -67.8008c16.5 -28.3994 41.0996 -71.1992 74 -128.1c5.5 -9.5 17.7002 -12.7998 27.2998 -7.2998c9.5 5.5 12.7998 17.7002 7.2998 27.2998l-19.5996 33.9004h29z" />
+ <glyph glyph-name="apper" unicode="" horiz-adv-x="640"
+d="M42.0996 208.9c22.2002 0 29 -2.80078 33.5 -14.6006h0.800781v22.9004c0 11.2998 -4.80078 15.3994 -17.9004 15.3994c-11.2998 0 -14.4004 -2.5 -15.0996 -12.7998h-38.6006c0.299805 13.9004 1.5 19.1006 5.7998 24.4004
+c7.30078 8.7998 18.9004 11.7998 46.1006 11.7998c33 0 47.0996 -5 53.8994 -18.9004c2 -4.2998 4 -15.5996 4 -23.6992v-76.3008h-38.2998l1.2998 19.1006h-1c-5.2998 -15.6006 -13.5996 -20.4004 -35.5 -20.4004c-30.2998 0 -41.0996 10.1006 -41.0996 37.2998
+c0 25.2002 12.2998 35.8008 42.0996 35.8008zM59.2002 160.8c13.0996 0 16.8994 3 16.8994 13.4004c0 9.09961 -4.2998 11.5996 -19.5996 11.5996c-13.0996 0 -17.9004 -3 -17.9004 -12.0996c-0.0996094 -10.4004 3.7002 -12.9004 20.6006 -12.9004zM137 255.7h38.2998
+l-1.5 -20.6006h0.799805c9.10059 17.1006 15.9004 20.9004 37.5 20.9004c14.4004 0 24.7002 -3 31.5 -9.09961c9.80078 -8.60059 12.8008 -20.4004 12.8008 -48.1006c0 -30 -3 -43.0996 -12.1006 -52.8994c-6.7998 -7.30078 -16.3994 -10.1006 -33.2002 -10.1006
+c-20.3994 0 -29.1992 5.5 -33.7998 21.2002h-0.799805v-70.2998h-39.5v169zM217.9 195c0 27.5 -3.30078 32.5 -20.7002 32.5c-16.9004 0 -20.7002 -5 -20.7002 -28.7002c0 -28 3.5 -33.5 21.2002 -33.5c16.3994 0 20.2002 5.60059 20.2002 29.7002zM275.8 255.7h38.2998
+l-1.5 -20.6006h0.800781c9.09961 17.1006 15.8994 20.9004 37.5 20.9004c14.3994 0 24.6992 -3 31.5 -9.09961c9.7998 -8.60059 12.7998 -20.4004 12.7998 -48.1006c0 -30 -3 -43.0996 -12.1006 -52.8994c-6.7998 -7.30078 -16.3994 -10.1006 -33.2998 -10.1006
+c-20.3994 0 -29.2002 5.5 -33.7998 21.2002h-0.799805v-70.2998h-39.5v169h0.0996094zM356.7 195c0 27.5 -3.2998 32.5 -20.7002 32.5c-16.9004 0 -20.7002 -5 -20.7002 -28.7002c0 -28 3.5 -33.5 21.2002 -33.5c16.4004 0 20.2002 5.60059 20.2002 29.7002zM410.5 198.8
+c0 25.4004 3.2998 37.7998 12.2998 45.7998c8.7998 8.10059 22.2002 11.3008 45.1006 11.3008c42.7998 0 55.6992 -12.8008 55.6992 -55.7002v-11.1006h-75.2998c-0.299805 -2 -0.299805 -4 -0.299805 -4.7998c0 -16.8994 4.5 -21.8994 20.0996 -21.8994
+c13.9004 0 17.9004 3 17.9004 13.8994h37.5v-2.2998c0 -9.7998 -2.5 -18.9004 -6.7998 -24.7002c-7.2998 -9.7998 -19.6006 -13.5996 -44.2998 -13.5996c-27.5 0 -41.6006 3.2998 -50.6006 12.2998c-8.5 8.5 -11.2998 21.2998 -11.2998 50.7998zM486.9 210.4
+c-0.300781 1.7998 -0.300781 3.2998 -0.300781 3.7998c0 12.2998 -3.2998 14.5996 -19.5996 14.5996c-14.4004 0 -17.0996 -3 -18.0996 -15.0996l-0.300781 -3.2998h38.3008zM542.5 255.7h38.2998l-1.7998 -19.9004h0.700195
+c6.7998 14.9004 14.3994 20.2002 29.7002 20.2002c10.7998 0 19.0996 -3.2998 23.3994 -9.2998c5.2998 -7.2998 6.7998 -14.4004 6.7998 -34c0 -1.5 0 -5 0.200195 -9.2998h-35c0.299805 1.7998 0.299805 3.2998 0.299805 4c0 15.3994 -2 19.3994 -10.2998 19.3994
+c-6.2998 0 -10.7998 -3.2998 -13.0996 -9.2998c-1 -3 -1 -4.2998 -1 -12.2998v-68h-38.2998v118.5h0.0996094z" />
+ <glyph glyph-name="asymmetrik" unicode="" horiz-adv-x="576"
+d="M517.5 138.8c-13.9004 -14.2998 -30.4004 -27.7002 -48.9004 -39.7998l73.4004 -110.4h-101.6l-45.9004 71.8008c-17.5996 -7.2002 -35.9004 -13.4004 -54.5 -18.7002l32.5996 -53.1006h-135.5l22.8008 37.1006c-23.3008 -2.7002 -46.4004 -3.7002 -68.6006 -2.7002
+l-22 -34.4004h-101.6l34.5 51.7002c-45 17.9004 -68.9004 47.9004 -68.4004 83c0.299805 25.7998 14 54.2998 41.7002 82.9004c38.9004 40 96.5 72.5996 161.6 92.8994c-22.2998 -8.09961 -42 -18.5 -62 -30.6992c-31.1992 -16.2002 -58.6992 -35.9004 -79.5 -58.1006
+c-57.3994 -61 -46.5 -121.8 19.1006 -151.2l190.2 285.5l150.899 -226.399c13 9.5 24.7998 19.7998 35 30.5996c98 104.2 53.7002 207.9 -98.7998 231.7c-68.2998 10.5996 -146.8 5.7002 -221.3 -14.7998c-60.1006 -10 -118.7 -31.7002 -170.7 -58.2002
+c118.1 66.9004 277.9 102.1 406.6 82.4004c110 -16.8008 170.2 -69.5 169.4 -135c-0.400391 -36.1006 -19.7002 -76.1006 -58.5 -116.101zM329.9 58.2998c18.3994 5.2998 36.5 11.7998 53.6992 19.2002l-78.6992 123l-101.9 -159.3
+c22.5 -0.700195 45.7998 0.899414 69.2002 4.39941l32.7002 53.3008z" />
+ <glyph glyph-name="audible" unicode="" horiz-adv-x="640"
+d="M640 248.1v-54l-320 -200l-320 199.9v54l320 -200zM445.5 176.1c-70.7998 94.4004 -200.5 110.7 -290.2 36.3008c-2.59961 -2.2002 -5.2002 -4.40039 -7.7002 -6.7002h-0.299805c37.1006 55.7002 100.601 92.3994 172.601 92.3994s135.5 -36.7998 172.699 -92.5996z
+M225.4 157.3c21 29.6006 55.5 49 94.3994 49c39.2002 0 73.9004 -19.5996 94.7998 -49.5l-45.3994 -28.3994c-21.2002 29.1992 -52 47.5996 -86.4004 47.5996c-20.8994 0 -40.5 -6.7998 -57.3994 -18.7002zM103.6 286.9c-11.5 -9.10059 -24.2998 -22.1006 -34.1992 -32.6006
+c53.8994 82.1006 147 135.601 250.5 135.601c104.899 0 197.199 -54 250.699 -135.7l-48.7998 -30.4004l-0.700195 1c-99.2998 138.5 -285.699 166.4 -417.5 62.1006zM570.6 254.2z" />
+ <glyph glyph-name="avianex" unicode="" horiz-adv-x="512"
+d="M453.1 416c39 0 64.8008 -31.2002 57.8008 -69.7998l-56.7002 -308.5c-7.10059 -38.5 -44.4004 -69.7002 -83.2998 -69.7002h-312c-39 0 -64.8008 31.2002 -57.7002 69.7002l56.5996 308.6c7.10059 38.5 44.4004 69.7002 83.2998 69.7002h312zM394.9 68.7002
+l6.2998 7.89941l-94.9004 119.4l-4.5 7.2998c19.7998 14.2002 33.5 24.2998 35.2998 25.6006c7.90039 6.59961 6.30078 20.7998 -2.69922 31.2998c-9.2002 10.7998 -23 14.3994 -30.7002 7.89941c0 0 -14.4004 -13.5996 -33.7998 -32.3994l-4.90039 4.5l-103.1 112.399
+l-8.90039 -4.7998l-18.7998 -28.8994l68.7998 -99.8008l20.5 -29.5996c-12 -12.2998 -23.5 -24.4004 -32.7998 -34.9004l-58 31.1006l-15.7002 -15.4004l52.4004 -48.0996l40.5996 -61l17.9004 12.7002l-22.1006 64.1992c12.5 7.60059 27 17.1006 41.7002 27.1006
+l115.4 -110z" />
+ <glyph glyph-name="aws" unicode="" horiz-adv-x="640"
+d="M180.41 244.99c-0.719727 -22.6504 10.5996 -32.6807 10.8799 -39.0498c-0.238281 -2.31543 -2.0752 -5.12402 -4.09961 -6.27051l-12.8008 -8.95996c-1.39941 -0.981445 -3.92188 -1.8418 -5.62988 -1.91992c-0.429688 0.0195312 -8.18945 -1.83008 -20.4795 25.6104
+c-13.0283 -16.2627 -40.5127 -29.4609 -61.3496 -29.4609c-0.347656 0 -0.913086 0.00488281 -1.26074 0.0107422c-16.2803 -0.890625 -60.4004 9.24023 -58.1299 56.21c-1.58984 38.2803 34.0596 62.0596 70.9297 60.0498
+c7.10059 -0.0195312 21.6006 -0.370117 46.9902 -6.26953v15.6191c2.69043 26.46 -14.7002 46.9902 -44.8096 43.9102c-2.40039 -0.00976562 -19.4004 0.5 -45.8408 -10.1094c-7.35938 -3.37988 -8.2998 -2.82031 -10.75 -2.82031
+c-7.40918 0 -4.35938 21.4795 -2.93945 24.2002c5.20996 6.39941 35.8604 18.3496 65.9395 18.1797c1.86523 0.165039 4.89844 0.298828 6.77148 0.298828c15.2451 0 37.1611 -7.875 48.9189 -17.5791c9.87305 -11.0439 17.8867 -32.0303 17.8867 -46.8438
+c0 -1.52539 -0.0966797 -3.99609 -0.216797 -5.51562zM93.9902 212.6c32.4297 0.470703 46.1602 19.9707 49.29 30.4707c2.45996 10.0498 2.0498 16.4102 2.0498 27.3994c-9.66992 2.32031 -23.5898 4.85059 -39.5605 4.87012
+c-15.1494 1.14062 -42.8193 -5.62988 -41.7393 -32.2598c-1.24023 -16.79 11.1201 -31.4004 29.96 -30.4805zM264.91 189.55c-7.86035 -0.719727 -11.5205 4.86035 -12.6797 10.3701l-49.8008 164.65c-0.969727 2.7793 -1.60938 5.64941 -1.91992 8.58008
+c-0.0283203 0.189453 -0.0517578 0.5 -0.0517578 0.692383c0 2.18555 1.75195 4.22656 3.91211 4.55762h22.25c8.78027 0.879883 11.6396 -6.03027 12.5498 -10.3701l35.7197 -140.83l33.1602 140.83c0.530273 3.21973 2.94043 11.0693 12.7998 10.2393h17.1602
+c2.16992 0.180664 11.1104 0.5 12.6807 -10.3691l33.4199 -142.631l36.8701 142.631c0.479492 2.17969 2.71973 11.3691 12.6797 10.3691h19.7197c0.850586 0.130859 6.15039 0.810547 5.25 -8.5791c-0.429688 -1.85059 3.41016 10.6592 -52.75 -169.9
+c-1.14941 -5.50977 -4.82031 -11.0898 -12.6797 -10.3701h-18.6904c-10.9395 -1.15039 -12.5098 9.66016 -12.6797 10.75l-33.1602 137.13l-32.7803 -136.99c-0.15918 -1.08984 -1.72949 -11.8994 -12.6797 -10.75h-18.2998v-0.00976562zM538.39 183.92
+c-5.87988 -0.00976562 -33.9199 0.299805 -57.3594 12.29c-4.31152 1.8252 -7.81055 7.10645 -7.81055 11.7891v0.121094v10.75c0 8.4502 6.2002 6.89941 8.83008 5.88965c10.04 -4.05957 16.4805 -7.13965 28.8105 -9.59961
+c36.6494 -7.53027 52.7695 2.2998 56.7197 4.47949c13.1504 7.81055 14.1895 25.6807 5.25 34.9502c-10.4805 8.79004 -15.4805 9.12012 -53.1299 21c-4.64062 1.29004 -43.7002 13.6104 -43.79 52.3604c-0.610352 28.2402 25.0498 56.1797 69.5195 55.9502
+c12.6699 0.00976562 46.4307 -4.13086 55.5703 -15.6201c1.34961 -2.08984 2.01953 -4.5498 1.91992 -7.04004v-10.1104c0 -4.43945 -1.62012 -6.66016 -4.87012 -6.66016c-7.70996 0.860352 -21.3896 11.1699 -49.1602 10.75
+c-6.88965 0.360352 -39.8896 -0.910156 -38.4092 -24.9697c-0.430664 -18.96 26.6094 -26.0703 29.6992 -26.8896c36.46 -10.9707 48.6504 -12.79 63.1201 -29.5801c17.1406 -22.25 7.90039 -48.2998 4.35059 -55.4404
+c-19.0801 -37.4902 -68.4199 -34.4395 -69.2607 -34.4199zM578.59 79.0596c-70.0303 -51.7197 -171.689 -79.25 -258.49 -79.25c-0.853516 -0.00488281 -2.23926 -0.00976562 -3.09277 -0.00976562c-99.5195 0 -240.271 54.0918 -314.177 120.74
+c-6.53027 5.88965 -0.770508 13.96 7.16992 9.46973c81.1748 -46.4336 222.955 -84.1201 316.473 -84.1201h0.407227c69.4072 0.373047 177.64 22.5713 241.59 49.5508c11.7803 5 21.7705 -7.80078 10.1201 -16.3809zM607.78 112.35
+c-8.95996 11.5205 -59.2803 5.38086 -81.8105 2.69043c-6.79004 -0.770508 -7.93945 5.12012 -1.79004 9.46973c40.0703 28.1699 105.88 20.1006 113.44 10.6299c7.5498 -9.46973 -2.0498 -75.4092 -39.5605 -106.909c-5.75977 -4.87012 -11.2695 -2.30078 -8.70996 4.09961
+c8.44043 21.25 27.3906 68.4902 18.4307 80.0195z" />
+ <glyph glyph-name="bimobject" unicode=""
+d="M416 416c17.5996 0 32 -14.4004 32 -32v-384c0 -17.5996 -14.4004 -32 -32 -32h-384c-17.5996 0 -32 14.4004 -32 32v384c0 17.5996 14.4004 32 32 32h384zM352 158.6h-0.0996094v35c0 49.4004 -11.4004 82.5 -103.801 82.5h-17.2998
+c-30 0 -65.0996 -8.2998 -69.7002 -38.7998h-1.09961v74.7002h-64v-232h64v34.7998h0.900391c8 -23.8994 26.2998 -38.7998 70.3994 -38.7998h16.9004c92.3994 0 103.8 33.2002 103.8 82.5996zM288 187.5v-22.9004c0 -21.6992 -3.40039 -33.7998 -38.4004 -33.7998h-45.2998
+c-28.8994 0 -44.0996 6.5 -44.0996 35.7002v19c0 29.2998 15.2002 35.7002 44.0996 35.7002h45.2998c35 0.200195 38.4004 -12 38.4004 -33.7002z" />
+ <glyph glyph-name="bitcoin" unicode="" horiz-adv-x="512"
+d="M504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248zM362.349 227.33c4.9375 32.999 -20.1904 50.7393 -54.5498 62.5732l11.1465 44.7021l-27.2129 6.78027l-10.8516 -43.5234
+c-7.1543 1.78223 -14.502 3.46387 -21.8027 5.12988l10.9287 43.8096l-27.1982 6.78125l-11.1523 -44.6855c-5.92188 1.34863 -11.7354 2.68164 -17.377 4.08398l0.0302734 0.139648l-37.5293 9.37012l-7.23926 -29.0625s20.1914 -4.62695 19.7646 -4.91309
+c11.0225 -2.75098 13.0146 -10.0439 12.6807 -15.8242l-12.6963 -50.9258c0.759766 -0.193359 1.74414 -0.472656 2.8291 -0.90625c-0.907227 0.224609 -1.87598 0.472656 -2.87598 0.712891l-17.7959 -71.3379c-1.34961 -3.34863 -4.76758 -8.37012 -12.4717 -6.46484
+c0.271484 -0.394531 -19.7793 4.9375 -19.7793 4.9375l-13.5107 -31.1475l35.4141 -8.82617c6.58887 -1.65137 13.0449 -3.37988 19.4004 -5.00684l-11.2617 -45.2129l27.1816 -6.78027l11.1533 44.7324c5.96875 -1.61719 15.6846 -4.13867 21.6865 -5.62695
+l-11.1152 -44.5225l27.2139 -6.78125l11.2617 45.1279c46.4043 -8.78125 81.2988 -5.23926 95.9863 36.7266c11.8359 33.79 -0.589844 53.2812 -25.0049 65.9912c17.7803 4.09766 31.1748 15.792 34.7471 39.9492zM300.172 140.151
+c-8.41016 -33.79 -65.3076 -15.5234 -83.7549 -10.9434l14.9443 59.8994c18.4453 -4.60352 77.5996 -13.7178 68.8105 -48.9561zM308.589 227.818c-7.67285 -30.7363 -55.0312 -15.1201 -70.3926 -11.292l13.5479 54.3262
+c15.3633 -3.82715 64.8359 -10.9727 56.8447 -43.0342z" />
+ <glyph glyph-name="bity" unicode="" horiz-adv-x="496"
+d="M78.4004 380.8c95.3994 89.2002 246.1 91.2002 343.1 -3.7998c14.2998 -14.0996 -6.40039 -37.0996 -22.4004 -21.5c-84.7998 82.4004 -215.8 80.2998 -298.899 3.2002c-16.2998 -15.1006 -36.5 8.2998 -21.7998 22.0996zM177.3 -37.7998
+c-128.7 38.2998 -201.899 170.7 -169.8 298.1c5.2998 21 35.2002 12.5 30.2002 -7.09961c-28.2998 -111.3 35.2998 -227.101 147.5 -261c21.3994 -6.40039 11.3994 -35.7002 -7.90039 -30zM325.4 -35.7998c-19.2002 -6.2998 -30 22.7002 -8.80078 29.7002
+c106.101 35.5 167.4 145.699 143.2 253.399c-4.89941 21.7002 25.5 27.6006 30 7.90039c28.5 -124.101 -42.5 -250.8 -164.399 -291zM262.5 43.2002c0 -8.2002 -6.59961 -14.7998 -14.7998 -14.7998s-14.7998 6.59961 -14.7998 14.7998l0.199219 71.7998
+c0 8.09961 6.60059 14.7998 14.8008 14.7998c8.19922 0 14.7998 -6.59961 14.7998 -14.7998zM333.5 312.2c0 21.7998 32.5 19.5996 32.5 0v-71.6006c0 -69.2998 -60.7002 -90.8994 -118 -90.0996c-57.2998 -0.799805 -118 20.7998 -118 90.0996v71.6006
+c0 19.5996 32.5 21.7998 32.5 0c-1.40039 -88.2002 -7 -131.8 85.5 -132.5c90.2002 0.599609 87.5996 41.5996 85.5 132.5z" />
+ <glyph glyph-name="blackberry" unicode="" horiz-adv-x="512"
+d="M166 331.1c0 -23.3994 -16.4004 -49.0996 -72.5 -49.0996h-70.0996l21 88.7998h67.7998c42.0996 0 53.7998 -23.2998 53.7998 -39.7002zM292.2 370.8c42.0996 0 53.7998 -23.2998 53.7002 -39.7002c0 -23.3994 -16.3008 -49.0996 -70.1006 -49.0996h-70.0996
+l18.7002 88.7998h67.7998zM88.7998 239.9c42.1006 0 53.7998 -23.4004 53.7998 -39.7002c0 -25.7002 -16.3994 -49.1006 -72.5 -49.1006h-70.0996l21 88.8008h67.7998zM268.9 239.9c42 0 53.6992 -23.4004 53.6992 -39.7002c0 -25.7002 -16.2998 -49.1006 -70.0996 -49.1006
+h-70.0996l18.6992 88.8008h67.8008zM458.2 293.7c42.0996 0 53.7998 -23.4004 53.7002 -39.7002c0 -25.7002 -16.3008 -49.0996 -70.1006 -49.0996h-70.0996l18.7002 88.7998h67.7998zM430.2 155.8c42.0996 0 53.7002 -23.3994 53.7002 -39.7002
+c0 -25.6992 -14 -49.0996 -70.1006 -49.0996h-70.0996l18.7002 88.7998h67.7998zM240.8 102c42.1006 0 53.7998 -23.4004 53.7002 -39.7002c0 -23.3994 -14 -49.0996 -70.0996 -49.0996h-70.1006l18.7002 88.7998h67.7998z" />
+ <glyph glyph-name="blogger" unicode=""
+d="M162.4 252c4.7998 4.90039 6.19922 5.09961 36.3994 5.09961c27.2002 0 28.1006 -0.0996094 32.1006 -2.09961c5.7998 -2.90039 8.2998 -7 8.2998 -13.5996c0 -5.90039 -2.40039 -10 -7.60059 -13.4004c-2.7998 -1.7998 -4.5 -1.90039 -31.0996 -2.09961
+c-16.4004 -0.100586 -29.5 0.199219 -31.5 0.799805c-10.2998 2.89941 -14.0996 17.7002 -6.59961 25.2998zM223.8 157.5c55.4004 0 55.1006 0 60.4004 -4.7002c7.39941 -7 5.89941 -19.2998 -3.10059 -24.3994l-9.19922 -1.5l-47.9004 -0.600586
+c-42.2002 -0.5 -54.0996 0.200195 -56.2998 1.2002c-4.40039 1.90039 -8.5 7.2998 -9.2002 12c-0.599609 4.5 1.59961 10.7998 5.09961 13.9004c4.40039 3.89941 6.30078 4.09961 60.2002 4.09961zM447.2 27.4004c-3.5 -28.4004 -23 -50.4004 -51.1006 -57.5
+c-7.19922 -1.80078 -9.69922 -1.90039 -172.899 -1.80078c-157.8 0 -165.9 0.100586 -172 1.80078c-8.40039 2.19922 -15.6006 5.5 -22.2998 10c-5.60059 3.7998 -13.9004 11.7998 -17 16.3994c-3.80078 5.60059 -8.2002 15.2998 -10 22
+c-1.80078 6.7002 -1.90039 9.40039 -1.90039 173.4c0 163.1 0 166.6 1.7998 173.7c6.2998 24.6992 25.9004 43.5996 51.2002 49.1992c7.2998 1.60059 332.1 1.90039 340 0.300781c21.2002 -4.30078 37.9004 -17.1006 47.5996 -36.4004c7.7002 -15.2998 7 1.5 7.30078 -180.6
+c0.199219 -115.801 0 -164.5 -0.700195 -170.5zM361.8 212.6c-1.09961 5 -4.2002 9.60059 -7.7002 11.5c-1.09961 0.600586 -8 1.30078 -15.5 1.7002c-12.3994 0.600586 -13.7998 0.799805 -17.7998 3.10059c-6.2002 3.59961 -7.89941 7.59961 -8 18.2998
+c0 20.3994 -8.5 39.3994 -25.2998 56.5c-12 12.2002 -25.2998 20.5 -40.5996 25.0996c-3.60059 1.10059 -11.8008 1.5 -39.2002 1.7998c-42.9004 0.5 -52.5 -0.399414 -67.1006 -6.19922c-27 -10.7002 -46.2998 -33.4004 -53.3994 -62.4004
+c-1.2998 -5.40039 -1.60059 -14.2002 -1.90039 -64.2998c-0.399414 -62.7998 0 -72.1006 4 -84.5c9.7002 -30.7002 37.1006 -53.4004 64.6006 -58.4004c9.19922 -1.7002 122.199 -2.09961 133.699 -0.5c20.1006 2.7002 35.9004 10.7998 50.7002 25.9004
+c10.7002 10.8994 17.4004 22.7998 21.7998 38.5c3.2002 10.8994 2.90039 88.3994 1.7002 93.8994z" />
+ <glyph glyph-name="blogger-b" unicode=""
+d="M446.6 225.3c2 -8.89941 2.40039 -134.1 -2.5 -151.7c-7.09961 -25.2998 -17.8994 -44.3994 -35.1992 -62.0996c-23.9004 -24.4004 -49.4004 -37.5 -81.9004 -41.9004c-18.7002 -2.5 -201.2 -1.89941 -216 0.800781c-44.5 8 -88.7998 44.6992 -104.4 94.2998
+c-6.2998 20.0996 -7 35 -6.39941 136.5c0.5 81 1 95.0996 3.09961 103.899c11.4004 46.8008 42.6006 83.4004 86.1006 100.601c23.5996 9.39941 39 10.7998 108.399 10c44.2002 -0.5 57.4004 -1.10059 63.2998 -2.90039c24.6006 -7.5 46.2002 -20.7998 65.5 -40.5
+c27.1006 -27.5996 40.8008 -58.2998 40.9004 -91.2998c0.0996094 -17.2002 2.7998 -23.5996 12.9004 -29.5c6.39941 -3.7002 8.59961 -4.09961 28.6992 -5c12 -0.5 23.2002 -1.7002 25 -2.7002c5.7002 -3.09961 10.7002 -10.5 12.5 -18.5zM124.5 288.9
+c-12.2002 -12.3008 -6 -36.1006 10.5996 -40.8008c3.10059 -0.799805 24.3008 -1.39941 50.8008 -1.19922c43 0.199219 45.6992 0.399414 50.2998 3.2998c8.5 5.39941 12.2998 12.0996 12.2998 21.5996c0 10.6006 -4.09961 17.2002 -13.4004 21.9004
+c-6.39941 3.2998 -7.89941 3.39941 -51.7998 3.39941c-48.7998 0 -51 -0.299805 -58.7998 -8.19922zM316.3 89.0996c14.4004 8.2002 17 28.1006 4.90039 39.4004c-8.5 7.90039 -8 7.90039 -97.6006 7.7998c-87.0996 -0.0996094 -90.1992 -0.299805 -97.2998 -6.7002
+c-5.59961 -5.09961 -9.2998 -15.0996 -8.2002 -22.3994c1.10059 -7.7002 7.80078 -16.2998 14.9004 -19.4004c3.59961 -1.59961 22.7998 -2.7998 90.9004 -2l77.5 0.900391z" />
+ <glyph glyph-name="buromobelexperte" unicode=""
+d="M0 416h128v-128h-128v128zM120 296v112h-112v-112h112zM160 416h128v-128h-128v128zM280 296v112h-112v-112h112zM320 416h128v-128h-128v128zM440 296v112h-112v-112h112zM0 256h128v-128h-128v128zM120 136v112h-112v-112h112zM160 256h128v-128h-128v128zM280 136v112
+h-112v-112h112zM320 256h128v-128h-128v128zM440 136v112h-112v-112h112zM0 96h128v-128h-128v128zM120 -24v112h-112v-112h112zM160 96h128v-128h-128v128zM280 -24v112h-112v-112h112zM320 96h128v-128h-128v128z" />
+ <glyph glyph-name="centercode" unicode="" horiz-adv-x="512"
+d="M329.2 179.4c-3.7998 -35.2002 -35.4004 -60.6006 -70.6006 -56.8008c-35.1992 3.80078 -60.5996 35.4004 -56.7998 70.6006s35.4004 60.5996 70.6006 56.7998c35.0996 -3.7998 60.5996 -35.4004 56.7998 -70.5996zM243.4 -55.7002
+c-146.7 7.7002 -251.601 138.2 -233.301 279.4c11.2002 86.5996 65.8008 156.899 139.101 192c161 77.0996 349.7 -37.4004 354.7 -216.601c4.09961 -147 -118.4 -262.199 -260.5 -254.8zM423.3 124.3c27.9004 118 -160.5 205.9 -237.2 234.2
+c-57.5 -56.2998 -69.0996 -188.6 -33.7998 -344.4c68.7998 -15.7998 169.101 26.4004 271 110.2z" />
+ <glyph glyph-name="cloudscale" unicode=""
+d="M318.1 294c6.2002 6.2998 15.8008 -3.09961 9.5 -9.59961l-75.1992 -88.8008c0.899414 -8.19922 -1.80078 -16.7998 -8.10059 -23.0996c-11.0996 -11 -28.8994 -11 -40 0c-11.0996 11.0996 -11.0996 29 0 40c6.2998 6.2998 14.7998 9 23.1006 8.09961l25.1992 20.4004
+c-16.3994 15.2998 -38.3994 24.7002 -62.5996 24.7002c-50.7998 0 -94.5996 -41.4004 -92.5996 -97.4004c-1 6.2998 -1.40039 12.7998 -1.40039 19.4004c0 71.5 57.7998 132.3 129.4 132.3c31.7998 0 60.7998 -14.2998 83.2998 -33.5996zM234.3 182.5
+c5.60059 5.5 5.60059 14.5996 0 20.2002c-5.59961 5.59961 -14.5996 5.59961 -20.2002 0c-5.59961 -5.60059 -5.59961 -14.6006 0 -20.2002c5.60059 -5.5 14.6006 -5.5 20.2002 0zM224 416c123.5 0 224 -100.5 224 -224s-100.5 -224 -224 -224s-224 100.5 -224 224
+s100.5 224 224 224zM224 32c88.2002 0 160 71.7998 160 160s-71.7998 160 -160 160s-160 -71.7998 -160 -160s71.7998 -160 160 -160z" />
+ <glyph glyph-name="cloudsmith" unicode="" horiz-adv-x="332"
+d="M332.5 28.0996c0 -46.3994 -37.5996 -84.0996 -84 -84.0996s-84 37.7002 -84 84.0996c0 46.4004 37.5996 84 84 84s84 -37.5996 84 -84zM248.5 272c-46.4004 0 -80 -33.5996 -80 -80s-37.5996 -80 -84 -80s-84 33.5996 -84 80s37.5996 88 84 88s76 29.5996 76 76
+s41.5996 84 88 84s80 -37.5996 80 -84s-33.5996 -84 -80 -84z" />
+ <glyph glyph-name="cloudversify" unicode="" horiz-adv-x="616"
+d="M148.6 144v-0.0996094h-48.8994c-6.40039 0 -11.7002 5.39941 -11.7002 11.7998v40.3994c0 7.60059 7 11.9004 10.7998 11.9004h46.7998v-6.59961c0 -10.7002 8.80078 -16.7002 19.5 -16.7002h20.2002c10.7998 0 19.5 8.7998 19.5 19.5v20.3994
+c0 10.6006 -3.5 19.5 -15.2002 19.5c18.5 15.2002 37.2002 21.4004 45 24.1006c15 56.5 42 92.3994 99.3008 109.7c55.0996 16.5 153.5 3.09961 186.5 -85c73.8994 -22.6006 106.899 -92.6006 92.0996 -155.101c-13 -54.8994 -62.2998 -100.6 -131.5 -99.5
+c-49.5996 -51.3994 -135.2 -48.8994 -186.4 -5.59961c-78.5996 -4.2002 -137.8 42.7998 -146 111.3zM376 136c8.7002 -54.0996 59.7002 -65.5 91.7998 -59.2002c39.1006 7.7002 70.5 37.5 79.7002 76.5c5.7998 24.4004 2.40039 50 -9.40039 72l-10.5 19.6006
+c1.2002 -22.5 -12.5 -60.6006 -47.5 -76.9004c65.5 67.7002 2.10059 141.2 -67.6992 150.5c-49.8008 6.59961 -83.3008 -13 -114.2 -43.7002c48 -4.7002 87.7002 -26.7998 101.8 -74.7998c-30.0996 49.2998 -103 56.5996 -133.6 40.7998
+c-35.5 -18.2002 -60 -54 -57 -93.8994c3.59961 -47.4004 39.5 -67.4004 57.3994 -79.8008c-4.5 21.7002 -4 71.3008 29.2002 92.9004c-36.2998 -60 28.0996 -144.6 135.3 -110.8c-33.5996 14.3994 -66 40.5 -55.2998 86.7998zM128 240h-39.7998
+c-8.90039 0 -16.2002 7.2998 -16.2002 16.2002v39.5996c0 8.90039 7.2998 16.2002 16.2002 16.2002h39.7998c8.90039 0 16.2002 -7.2998 16.2002 -16.2002v-39.5996c0 -8.90039 -7.2998 -16.2002 -16.2002 -16.2002zM10.0996 280c-5.59961 0 -10.0996 4.5 -10.0996 10.0996
+v27.8008c0 5.59961 4.5 10.0996 10.0996 10.0996h27.7002c5.5 0 10.1006 -4.5 10.1006 -10.0996v-27.8008c0 -5.59961 -4.5 -10.0996 -10.1006 -10.0996h-27.7002zM168 305.3v21.4004c0 5.09961 4.2002 9.2998 9.2998 9.2998h21.4004
+c5.09961 0 9.2998 -4.2002 9.2998 -9.2998v-21.4004c0 -5.09961 -4.2002 -9.2998 -9.2998 -9.2998h-21.4004c-5.09961 0 -9.2998 4.2002 -9.2998 9.2998zM56 212.5v-25c0 -6.2998 -5.09961 -11.5 -11.4004 -11.5h-25.1992c-6.30078 0 -11.4004 5.2002 -11.4004 11.5v25
+c0 6.2998 5.09961 11.5 11.4004 11.5h25.0996c6.40039 0 11.5 -5.2002 11.5 -11.5z" />
+ <glyph glyph-name="cpanel" unicode="" horiz-adv-x="640"
+d="M210.3 227.8c6.60059 -29.0996 -14.5 -65.2998 -51.7002 -65.2998h-32l6.40039 23.7998c1.7998 6.2002 7.2998 10.7998 14.2998 10.7998h10.2998c12.4004 0 20.8008 11.7002 18.3008 22.6006c-2.10059 9.2002 -9.90039 14.7998 -18.3008 14.7998h-19.7998
+l-25.7998 -95.7002c-1.90039 -6.2002 -7.40039 -10.7002 -14.2002 -10.7002l-24.7002 -0.0996094l34.9004 130.1c1.7998 6.40039 7.2002 10.9004 14.2998 10.9004h37c24.1006 0 45.4004 -16.4004 51 -41.2002zM53.7998 199.8c-24.8994 0 -24.7002 -37.3994 0 -37.3994
+h11.2998c4.2002 0 7.60059 -3.90039 6.40039 -8.30078l-7.09961 -26.0996h-12.4004c-33.5 0 -59 31.4004 -50.2998 65.2002c7.2998 27 28.2998 41.0996 51.2002 41.0996h40l-6.2002 -23.5996c-1.90039 -6.5 -7.40039 -10.9004 -14.2998 -10.9004h-18.6006zM301.3 234.6
+c18.7998 0 33.2998 -17.5996 28.5 -36.7998l-14 -51.7998c-2.7998 -10.5996 -12.2002 -17.7998 -23.3994 -17.7998l-57.5 0.200195c-42.9004 0 -38.5 63.7998 0.699219 63.7998h48.4004l-3.5 -13.2002c-1.90039 -6.2002 -7.40039 -10.7998 -14.2002 -10.7998h-21.5996
+c-5.2998 0 -5.2998 -7.90039 0 -7.90039h34.8994c4.60059 0 5.10059 3.90039 5.5 5.2998l8.60059 31.8008c0.299805 1 1.89941 5.2998 -2.10059 5.2998h-57.5c-9.69922 0 -16.5996 8.89941 -14.1992 18.5l3.5 13.3994h77.8994zM633.1 269c4.5 0 7.7002 -4 6.5 -8.2998
+l-26.5 -98.2002c-5.09961 -20.7002 -24.1992 -34.5 -44.8994 -34.5l35.5996 133.1c1.2002 4.7002 5.5 7.90039 10.4004 7.90039h18.8994zM396.8 234.3c34.4004 0 59.2998 -32.2998 50.2998 -65.3994l-8.7998 -33.1006c-1.2002 -4.89941 -5.7002 -7.7998 -10.2998 -7.7998
+h-19.0996c-4.5 0 -7.60059 4 -6.40039 8.2998l10.5996 40c3.30078 11.6006 -5.59961 23.4004 -18.0996 23.4004h-19.7998l-17.2002 -64c-1.2002 -4.7998 -5.59961 -7.7998 -10.4004 -7.7998h-18.8994c-4.2002 0 -7.60059 3.89941 -6.40039 8.2998l26.2002 98h48.2998
+v0.0996094zM495.1 159.7h73.3008l-5.7002 -21c-1.90039 -6.2002 -7.40039 -10.7002 -14.2002 -10.7002h-66.7002c-20 0 -33.2998 19 -28.2998 36.7002l10.7998 40c4.7998 17.5996 20.7002 29.5996 38.6006 29.5996h47.2998c19 0 33.2002 -17.7002 28.2998 -36.7998
+l-3.2002 -12c-2.89941 -11 -12.7002 -17.5996 -23.2002 -17.5996h-53.3994l3.5 13c1.59961 6.19922 7.2002 10.7998 14.2002 10.7998h21.5996c2 0 3.2998 1 3.90039 3l0.699219 2.59961c0.700195 2.7002 -1.2998 5.10059 -3.89941 5.10059h-32.9004
+c-4.09961 0 -6.89941 -2.10059 -7.7998 -6l-8 -30c-0.900391 -3.30078 1.5 -6.7002 5.09961 -6.7002z" />
+ <glyph glyph-name="css3-alt" unicode="" horiz-adv-x="384"
+d="M0 416h384l-34.9004 -395.8l-157.1 -52.2002l-157.1 52.2002zM313.1 336h-242.199l5.7998 -47.2998h122.899l-6.5 -2.7002l-112.1 -46.7002l3.59961 -46.2998l0.200195 0.0996094v-0.0996094l166.3 -0.5l-3.69922 -61.5996l-54.7002 -15.4004l-52.6006 13.2998
+l-3.19922 38.2998h-48.9004l6.40039 -73.8994l98.7998 -29.2002l98.2002 28.7002l12.7998 146.6h-111.5l0.299805 0.100586l115.3 49.2998z" />
+ <glyph glyph-name="cuttlefish" unicode="" horiz-adv-x="440"
+d="M344 142.5c13.7002 -50.9004 41.7002 -93.2998 87 -117.8c-45.2998 -49.6006 -110.5 -80.7002 -183 -80.7002c-137 0 -248 111 -248 248s111 248 248 248c72.5 0 137.7 -31.0996 183 -80.7002c-45.2998 -24.5 -73.2998 -66.8994 -87 -117.8
+c-17.5 31.5996 -57.4004 54.5 -96 54.5c-56.5996 0 -104 -47.4004 -104 -104s47.4004 -104 104 -104c38.5996 0 78.5 22.9004 96 54.5z" />
+ <glyph glyph-name="d-and-d" unicode="" horiz-adv-x="576"
+d="M82.5 349.1c-0.599609 17.2002 2 33.8008 12.7002 48.2002c0.299805 -7.39941 1.2002 -14.5 4.2002 -21.5996c5.89941 27.5 19.6992 49.2998 42.2998 65.5c-1.90039 -5.90039 -3.5 -11.7998 -3 -17.7002c8.7002 7.40039 18.7998 17.7998 44.3994 22.7002
+c14.7002 2.7998 29.7002 2 42.1006 -1c38.5 -9.2998 61 -34.2998 69.7002 -72.2998c5.2998 -23.1006 0.699219 -45 -8.30078 -66.4004c-5.19922 -12.4004 -12 -24.4004 -20.6992 -35.0996c-2 1.89941 -3.90039 3.7998 -5.80078 5.59961
+c-42.7998 40.7998 -26.7998 25.2002 -37.3994 37.4004c-1.10059 1.19922 -1 2.19922 -0.100586 3.59961c8.30078 13.5 11.8008 28.2002 10 44c-1.09961 9.7998 -4.2998 18.9004 -11.2998 26.2002c-14.5 15.2998 -39.2002 15 -53.5 -0.600586
+c-11.3994 -12.5 -14.0996 -27.3994 -10.8994 -43.5996c0.199219 -1.2998 0.399414 -2.7002 0 -3.90039c-3.40039 -13.6992 -4.60059 -27.5996 -2.5 -41.5996c0.0996094 -0.5 0.0996094 -1.09961 0.0996094 -1.59961c0 -0.300781 -0.0996094 -0.5 -0.200195 -1.10059
+c-21.7998 11 -36 28.2998 -43.2002 52.2002c-8.2998 -17.7998 -11.0996 -35.5 -6.59961 -54.0996c-15.5996 15.1992 -21.2998 34.2998 -22 55.1992zM552.1 225.9c0.5 -0.600586 1.2002 -1 1.7002 -1.40039v-0.5c-15 3.59961 -29.7998 1.7998 -44.5 -1.2998
+c-9.2998 -2 -18.2998 -4.7002 -26.7002 -9c-2.89941 -1.5 -5.69922 -3.2998 -8 -4.7002c-5.7998 2.40039 -11.2998 5.5 -17.1992 6.7998c-24.5 5.2998 -45.8008 -1.2002 -62.5 -20c-19.7002 -22.2002 -34.5 -47.5996 -46.7002 -74.5l-1.2002 -2.7002
+c-0.0996094 -0.199219 -0.200195 -0.299805 -0.400391 -0.399414c-12.0996 8.2998 -21.5996 20.2998 -36.0996 25.5996c0.299805 0.400391 0.400391 0.900391 0.700195 1.2998c20.5996 28.2002 44.8994 52.5 75.0996 70.4004c16 9.5 33 16.0996 51.5 18.5
+c1.7998 0.200195 3.5 0.400391 5.2998 1.09961c-4.39941 0 -8.7998 0.300781 -13.0996 -0.0996094c-21.2002 -1.90039 -40.5 -9.59961 -58.7002 -20.2002c-13.7998 -8 -26.2002 -17.7002 -36.5996 -29.7998c-0.400391 -0.5 -0.600586 -1.09961 -0.900391 -1.7002
+c-0.299805 0.299805 -0.700195 0.600586 -1 0.900391c11 30.8994 30.7002 55 57.7002 73.2998c0.200195 -0.200195 0.5 -0.299805 0.700195 -0.5c-1.2002 -1.7002 -2.5 -3.2998 -3.5 -5.09961c-1.7998 -3.30078 -3.7002 -6.5 -5.10059 -10
+c-1.7998 -4.30078 1.60059 -8.60059 12 -0.5c18.2002 14.0996 29.6006 26.2998 48.9004 29.5996c0.700195 0.0996094 1.2998 0.299805 1.90039 0.299805h2.5c-1 -0.700195 -1.60059 -1.09961 -2.2002 -1.5c-11.6006 -7.7998 -11.7998 -7.39941 -15 -12
+c-2.60059 -3.7002 -0.200195 -8 4.7002 -6.7998c2.59961 0.599609 5.19922 1.2998 7.69922 2.2002c9.40039 3.2998 19 5.7998 29 6.39941c13.9004 0.800781 27.1006 -1.89941 39.9004 -7.09961c15.0996 -6.2002 28.5 -15 40.0996 -26.5996zM316.7 50.4004
+c1.5 -1.30078 1.89941 -2.40039 0.899414 -4.2002c-25.2998 -50.2002 -61.0996 -89.1006 -116 -98.7998c-26.7998 -4.7002 -52.8994 -2.7002 -77.8994 8.59961c-18.5 8.2002 -34.6006 19.5996 -47.2002 35.5996c-2 2.60059 -3.7002 5.40039 -5.90039 8.60059
+c-0.699219 -7.7998 0.100586 -14.9004 1.5 -21.9004c-0.199219 -0.200195 -0.399414 -0.299805 -0.599609 -0.5c-3.2002 3.40039 -6.59961 6.60059 -9.5 10.2998c-12.2002 15.5 -19.5 33.3008 -24.0996 52.3008c-11.8008 48.2998 -0.5 78.7998 7.7998 101.1
+c-8.7002 -4.7998 -16.2002 -10.2998 -23.6006 -16.2002c11.6006 32.7998 31.9004 59.9004 56.1006 84.6006c2.39941 -2.10059 3.2998 -4.7002 3 -7.40039c-0.200195 -1 -5.90039 -38.9004 -5.60059 -44.7002c18.9004 18.9004 40.5 33.2998 64.8008 43.9004
+c-7.5 -11.1006 -11 -23.4004 -11.8008 -37.2998c13.4004 12.1992 27.7002 20.0996 46.4004 13.8994c-8.5 -9.09961 -30.7998 -30.5 -38.5996 -64.2998c-5.10059 -21.9004 -3.80078 -43.0996 8.19922 -62.5996c11.2002 -18.3008 27.8008 -27.8008 49.4004 -27.8008
+c12.5996 0 23.7998 5 34.0996 11.8008c18.5 12.2998 32.8008 28.5 44 47.5996c1.90039 3.2002 1.10059 2.09961 1.90039 3c19.9004 -16.0996 3.2998 -2.59961 42.7002 -35.5996zM488.7 96.7998c20.2002 -6.59961 35.5 -18.7998 43.7998 -38.8994
+c9.2002 -23.1006 2.09961 -49.4004 -17.4004 -66c-16.3994 -14 -35.6992 -19.2002 -57 -17.4004c-0.599609 0 -1.19922 0 -1.89941 -0.299805c15.0996 -10.7002 31.5996 -15.2002 50.8994 -10.6006c-2.19922 -2.39941 -3.89941 -4.69922 -5.89941 -6.5
+c-12.2998 -10.8994 -26.9004 -16.8994 -42.9004 -19.7998c-39.5996 -7.2998 -75.5996 12.7998 -85 56.9004c-0.5 2.09961 -0.599609 4.2002 -0.899414 6.39941c-10.8008 -8.19922 -16.4004 -34.0996 -0.700195 -52.2998c-1.60059 0.5 -2.60059 0.700195 -3.60059 1.10059
+c-21.2998 8.2998 -34.3994 28.2998 -33.5 51.1992c0.900391 23.2002 4.90039 41 -13 56c-16.5 13.8008 -33 27.4004 -49.5 41.1006c-8.09961 6.7002 -14.7998 14.5 -17 25.0996c-1 4.60059 -1.39941 9.40039 -1.7998 14.1006c-0.5 6.09961 -3.2998 11 -7.89941 14.7998
+c-4.5 3.89941 -9.30078 7.39941 -13.8008 11.2002c-8.89941 7.5 -12.2998 18.8994 -7.2998 29.8994c2.7998 -12.8994 9.60059 -18.8994 22.6006 -20.2998c4.39941 -0.5 8.89941 -0.799805 13.2998 -1.5c8.09961 -1.2002 12.7998 -6.09961 14.2998 -14.2002
+c0.700195 -3.39941 1.2998 -6.7998 2.2002 -10.2002c1.59961 -5.59961 4.5 -8 10.3994 -8.39941c4.60059 -0.299805 9.30078 -0.5 13.9004 -0.900391c7.59961 -0.599609 14.2002 -3.7998 20.0996 -8.7002c19.4004 -16.1992 39 -32.1992 58.5 -48.2998
+c5.7002 -4.7002 12 -8.2002 19.6006 -8.5c16.7002 -0.599609 29 15.2002 24.7998 31.7998c-0.200195 0.700195 -0.400391 1.5 -0.0996094 2.80078c2.39941 -2 4.89941 -3.80078 7 -5.90039c14.0996 -14 18.0996 -39.2998 8.69922 -56.0996
+c-2.09961 -3.80078 -5.2998 -7.10059 -8.09961 -10.8008c0.700195 -0.199219 1.7998 -0.5 3 -0.599609c14 -1.40039 27.2002 1 38.9004 9.09961c15.7998 10.9004 18 31.2002 5.39941 45.6006c-4.7002 5.39941 -8.89941 8 -18.7998 12
+c6.5 1.2998 19.2002 0.200195 28.7002 -2.90039zM99.4004 268.7c-5.30078 9.2002 -13.2002 15.5996 -22.1006 21.2998c13.7002 0.5 26.6006 -0.200195 39.6006 -3.7002c-7 12.2002 -8.5 24.7002 -5 38.7002c5.2998 -11.9004 13.6992 -20.0996 23.5996 -26.7998
+c19.7002 -13.2002 35.7002 -19.6006 46.7002 -30.2002c3.39941 -3.2998 6.2998 -7.09961 9.59961 -10.9004c-0.799805 2.10059 -1.39941 4.10059 -2.2002 6c-5 10.6006 -13 18.6006 -22.5996 25c-1.7998 1.2002 -2.7998 2.5 -3.40039 4.5
+c-3.2998 12.5 -3 25.1006 -0.699219 37.6006c1 5.5 2.7998 10.8994 4.5 16.2998c0.799805 2.40039 2.2998 4.59961 4 6.59961c0.599609 -6.89941 0 -25.5 19.5996 -46c10.7998 -11.2998 22.4004 -21.8994 33.9004 -32.6992c9 -8.5 18.2998 -16.7002 25.5 -26.8008
+c1.09961 -1.59961 2.19922 -3.2998 3.7998 -4.69922c-5 13 -14.2002 24.0996 -24.2002 33.7998c-9.59961 9.2998 -19.4004 18.3994 -29.2002 27.3994c-3.2998 3 -4.59961 6.7002 -5.09961 10.9004c-1.2002 10.4004 0 20.5996 4.2998 30.2002c0.5 1 1.09961 2 1.90039 3.2998
+c0.5 -4.2002 0.599609 -7.90039 1.39941 -11.5996c4.7998 -23.1006 20.4004 -36.3008 49.2998 -63.5c10 -9.40039 19.3008 -19.2002 25.6006 -31.6006c4.7998 -9.2998 7.2998 -19 5.7002 -29.5996c-0.100586 -0.600586 0.5 -1.7002 1.09961 -2
+c6.2002 -2.60059 10 -6.90039 9.7002 -14.2998c7.7002 2.59961 12.5 8 16.3994 14.5c4.2002 -20.2002 -9.09961 -50.3008 -27.1992 -58.7002c0.399414 4.5 5 23.3994 -16.5 27.7002c-6.80078 1.2998 -12.8008 1.2998 -22.9004 2.09961c4.7002 9 10.4004 20.5996 0.5 22.4004
+c-24.9004 4.59961 -52.7998 -1.90039 -57.7998 -4.60059c8.2002 -0.399414 16.2998 -1 23.5 -3.2998c-2 -6.5 -4 -12.7002 -5.7998 -18.9004c-1.90039 -6.5 2.09961 -14.5996 9.2998 -9.59961c1.2002 0.900391 2.2998 1.90039 3.2998 2.7002
+c-3.09961 -17.9004 -2.90039 -15.9004 -2.7998 -18.2998c0.299805 -10.2002 9.5 -7.80078 15.7002 -7.30078c-2.5 -11.7998 -29.5 -27.2998 -45.4004 -25.7998c7 4.7002 12.7002 10.2998 15.9004 17.9004c-6.5 -0.799805 -12.9004 -1.60059 -19.2002 -2.40039
+l-0.299805 0.900391c4.69922 3.39941 8 7.7998 10.1992 13.0996c8.7002 21.1006 -3.59961 38 -25 39.9004c-9.09961 0.799805 -17.7998 -0.799805 -25.8994 -5.5c6.2002 15.5996 17.2002 26.5996 32.5996 34.5c-15.2002 4.2998 -8.89941 2.7002 -24.5996 6.2998
+c14.5996 9.2998 30.2002 13.2002 46.5 14.5996c-5.2002 3.2002 -48.1006 3.60059 -70.2002 -20.8994c7.90039 -1.40039 15.5 -2.7998 23.2002 -4.2002c-23.7998 -7 -44 -19.7002 -62.4004 -35.5996c1.10059 4.7998 2.7002 9.5 3.2998 14.2998
+c0.600586 4.5 0.800781 9.2002 0.100586 13.5996c-1.5 9.40039 -8.90039 15.1006 -19.7002 16.2998c-7.90039 0.900391 -15.5996 -0.0996094 -23.2998 -1.2998c-0.900391 -0.0996094 -1.7002 -0.299805 -2.90039 0c15.7998 14.7998 36 21.7002 53.1006 33.5
+c6 4.5 6.7998 8.2002 3 14.9004zM227.8 241.9c3.2998 -16 12.6006 -25.5 23.7998 -24.3008c-4.59961 11.3008 -12.0996 19.5 -23.7998 24.3008z" />
+ <glyph glyph-name="deploydog" unicode="" horiz-adv-x="512"
+d="M382.2 312h51.7002v-239.6h-51.7002v20.6992c-19.7998 -24.7998 -52.7998 -24.0996 -73.7998 -14.6992c-26.2002 11.6992 -44.3008 38.0996 -44.3008 71.7998c0 29.7998 14.8008 57.8994 43.3008 70.7998c20.1992 9.09961 52.6992 10.5996 74.7998 -12.9004v103.9z
+M317.5 150.2c0 -18.2002 13.5996 -33.5 33.2002 -33.5c19.7998 0 33.2002 16.3994 33.2002 32.8994c0 17.1006 -13.7002 33.2002 -33.2002 33.2002c-19.6006 0 -33.2002 -16.3994 -33.2002 -32.5996zM188.5 312h51.7002v-239.6h-51.7002v20.6992
+c-19.7998 -24.7998 -52.7998 -24.0996 -73.7998 -14.6992c-26.2002 11.6992 -44.2998 38.0996 -44.2998 71.7998c0 29.7998 14.7998 57.8994 43.2998 70.7998c20.2002 9.09961 52.7002 10.5996 74.7998 -12.9004v103.9zM123.8 150.2c0 -18.2002 13.6006 -33.5 33.2002 -33.5
+c19.7998 0 33.2002 16.3994 33.2002 32.8994c0 17.1006 -13.7002 33.2002 -33.2002 33.2002c-19.7002 0 -33.2002 -16.3994 -33.2002 -32.5996zM448 352h-384c-17.5996 0 -32 -14.5 -32 -32v-256c0 -17.5996 14.5 -32 32 -32h384c17.5996 0 32 14.5 32 32v256
+c0 17.5996 -14.5 32 -32 32zM448 384c35.2002 0 64 -28.7998 64 -64v-256c0 -35.2002 -28.7998 -64 -64 -64h-384c-35.2002 0 -64 28.7998 -64 64v256c0 35.2002 28.7998 64 64 64h384z" />
+ <glyph glyph-name="deskpro" unicode="" horiz-adv-x="480"
+d="M205.9 -64l31.0996 38.4004c12.2998 0.199219 25.5996 1.39941 36.5 6.59961c38.9004 18.5996 38.4004 61.9004 38.2998 63.7998c-0.0996094 5 -0.799805 4.40039 -28.8994 37.4004h79.0996c-0.200195 -50.1006 -7.2998 -68.5 -10.2002 -75.7002
+c-9.39941 -23.7002 -43.8994 -62.7998 -95.2002 -69.4004c-8.69922 -1.09961 -32.7998 -1.19922 -50.6992 -1.09961zM406.3 103.7l-119.2 -0.100586l17.4004 31.3008l175.5 -0.300781c-15.2002 -17.2998 -35.0996 -30.8994 -73.7002 -30.8994zM362.7 327.6v-168.3h-73.5
+l-32.7002 -55.5h-6.5c-52.2998 0 -58.0996 56.5 -58.2998 58.9004c-1.2002 13.2002 -21.2998 11.5996 -20.1006 -1.7998c1.40039 -15.8008 8.80078 -40 26.4004 -57.1006h-91c-25.5 0 -110.8 26.7998 -107 114v213.3c0 16 9.7002 16.6006 15 16.8008h82
+c0.200195 0 0.299805 -0.100586 0.5 -0.100586c4.2998 0.400391 50.0996 2.10059 50.0996 -43.7002c0 -13.2998 20.2002 -13.3994 20.2002 0c0 18.2002 -5.5 32.8008 -15.7998 43.7002h84.2002c108.7 0.400391 126.5 -79.3994 126.5 -120.2zM230.2 271.6l64 -29.2998
+c13.2998 45.5 -42.2002 71.7002 -64 29.2998z" />
+ <glyph glyph-name="digital-ocean" unicode="" horiz-adv-x="512"
+d="M87 -33.7998v73.5996h73.7002v-73.5996h-73.7002zM25.4004 101.4h61.5996v-61.6006h-61.5996v61.6006zM491.6 271.1c53.2002 -170.3 -73 -327.1 -235.6 -327.1v95.7998h0.299805v0.299805c101.7 0.200195 180.5 101 141.4 208
+c-14.2998 39.6006 -46.1006 71.4004 -85.7998 85.7002c-107.101 38.7998 -208.101 -39.8994 -208.101 -141.7h-95.7998c0 162.2 156.9 288.7 327 235.601c74.2002 -23.2998 133.6 -82.4004 156.6 -156.601zM256.3 40.0996h-0.299805v-0.299805h-95.2998v95.6006h95.5996
+v-95.3008z" />
+ <glyph glyph-name="discord" unicode=""
+d="M297.216 204.8c0 -15.6162 -11.5195 -28.416 -26.1123 -28.416c-14.3359 0 -26.1113 12.7998 -26.1113 28.416s11.5195 28.416 26.1113 28.416c14.5928 0 26.1123 -12.7998 26.1123 -28.416zM177.664 233.216c14.5918 0 26.3682 -12.7998 26.1123 -28.416
+c0 -15.6162 -11.5205 -28.416 -26.1123 -28.416c-14.3359 0 -26.1123 12.7998 -26.1123 28.416s11.5205 28.416 26.1123 28.416zM448 395.264v-459.264c-64.4941 56.9941 -43.8682 38.1279 -118.784 107.776l13.5684 -47.3604h-290.304
+c-28.9287 0 -52.4805 23.5518 -52.4805 52.7363v346.111c0 29.1846 23.5518 52.7363 52.4805 52.7363h343.039c28.9287 0 52.4805 -23.5518 52.4805 -52.7363zM375.04 152.576c0 82.4316 -36.8643 149.248 -36.8643 149.248
+c-36.8643 27.6475 -71.9355 26.8799 -71.9355 26.8799l-3.58398 -4.0957c43.5195 -13.3125 63.7441 -32.5127 63.7441 -32.5127c-60.8115 33.3291 -132.244 33.335 -191.232 7.42383c-9.47168 -4.35156 -15.1035 -7.42383 -15.1035 -7.42383
+s21.2471 20.2246 67.3271 33.5361l-2.55957 3.07227s-35.0723 0.767578 -71.9355 -26.8799c0 0 -36.8643 -66.8164 -36.8643 -149.248c0 0 21.5039 -37.1201 78.0801 -38.9121c0 0 9.47168 11.5195 17.1514 21.248c-32.5117 9.72754 -44.7998 30.208 -44.7998 30.208
+c3.7666 -2.63574 9.97656 -6.05273 10.4961 -6.40039c43.21 -24.1973 104.588 -32.126 159.744 -8.95996c8.95996 3.32812 18.9443 8.19238 29.4395 15.1045c0 0 -12.7998 -20.9922 -46.3359 -30.4639c7.68066 -9.72852 16.8965 -20.7363 16.8965 -20.7363
+c56.5762 1.79199 78.3359 38.9121 78.3359 38.9121z" />
+ <glyph glyph-name="discourse" unicode=""
+d="M225.9 416c122.699 0 222.1 -102.3 222.1 -223.9c0 -121.6 -99.4004 -223.899 -222.1 -223.899l-225.801 -0.200195s-0.0996094 224 -0.0996094 227.9c0 121.6 103.3 220.1 225.9 220.1zM224 64c70.7002 0 128 57.2998 128 128s-57.2998 128 -128 128
+s-128 -57.2998 -128 -128c0 -22.0996 5.59961 -42.9004 15.4004 -61l-22.9004 -75l81.0996 20.0996c16.5 -7.7998 35 -12.0996 54.4004 -12.0996z" />
+ <glyph glyph-name="dochub" unicode="" horiz-adv-x="416"
+d="M397.9 288h-141.9v140.4zM304 256h96v-126.1c0 -129.301 -70.2998 -193.9 -210.8 -193.9h-189.2v512h189.2c12.2002 0 23.7002 -1.09961 34.5996 -3.2998v-84c-10 1.7002 -21.0996 2.5 -33.0996 2.5h-94.7002v-337.3h94.7002c76.7998 0 113.3 33.2998 113.3 100.1v130z
+" />
+ <glyph glyph-name="docker" unicode="" horiz-adv-x="640"
+d="M349.9 211.7h-66.1006v59.3994h66.1006v-59.3994zM349.9 416v-60.7002h-66.1006v60.7002h66.1006zM428.1 271.2v-59.4004h-66.0996v59.4004h66.0996zM271.8 343.3v-60.0996h-66.0996v60.0996h66.0996zM349.9 343.3v-60.0996h-66.1006v60.0996h66.1006zM626.7 243.3
+l13.2998 -8.89941c-1.90039 -3.90039 -7 -14.6006 -8.5 -17.1006c-23.7002 -45.2998 -69.9004 -45.5996 -91.2998 -45.2002c-54.5 -131.699 -171 -204.199 -328.4 -204.199c-72.7002 0 -128.3 22.2998 -165.399 66.1992c-38.2002 45.3008 -52.7002 111.301 -44 162.101
+h434.699c22.6006 -0.400391 39.7002 6 48.4004 10.7002c-19.7002 30.1992 -14.7002 76 3.7002 103.8l9.2998 14l14 -9.2998c24.4004 -18.8008 37.7998 -39.7002 41.0996 -63.7002c25.5 4.7998 58.7002 1.2998 73.1006 -8.40039zM115.6 271.2h0.100586v-59.4004h-66.1006
+v59.4004h66zM193.7 271.2v-59.4004h-66.1006v59.4004h66.1006zM271.8 271.2v-59.4004h-66.0996v59.4004h66.0996zM193.7 343.3v-60.0996h-66.1006v60.0996h66.1006z" />
+ <glyph glyph-name="draft2digital" unicode="" horiz-adv-x="480"
+d="M480 49.9004l-144 -81.9004v64.2002l-336 -0.100586c18.2998 19.1006 84.5 87.8008 161.1 174.801c32.6006 37.1992 78 83.2998 69.7002 127.6c-5.2998 28.2998 -42.2002 50.7998 -83.2998 33.5c-8.59961 -3.59961 -24.5 -17.4004 -26.2998 -24.7002
+c28.2998 -4.7002 48 -29.7002 48 -56.7998c0 -31.7002 -25.6006 -57.4004 -57.2998 -57.4004c-37.3008 0 -62.2002 34.1006 -56.7002 67.1006c1.2002 7.89941 5.09961 26.7998 18.2002 47.7002c14.8994 23.8994 45.1992 54.8994 104.3 67.2998
+c103.8 21.7002 161.6 -36.6006 166 -41.2002c28.8994 -29.9004 48 -90.7002 12.7998 -153.3c-30 -53.4004 -81 -114.3 -111.8 -149.3h91.2998v64.6992zM369.9 77v-54.4004l47.0996 27.2002zM134.2 286.6c0 12.3008 -10 22.4004 -22.4004 22.4004
+c-12.3994 0 -22.3994 -10 -22.3994 -22.4004c0 -12.3994 10 -22.3994 22.3994 -22.3994c12.4004 0 22.4004 10 22.4004 22.3994zM82.5 67.5h114.4c17.5996 19.2002 91.5 100.8 128.5 166.7c36.5996 65.0996 -5.80078 113.3 -5.80078 113.3
+c-14.1992 14.9004 -36.8994 36.2002 -82.1992 38.2998c6.7998 -5.5 16.8994 -16.8994 24.2998 -35.7002c11.8994 -30.2998 6.7002 -69.5996 -28.4004 -112.699c-53.0996 -65.2002 -125.2 -142.5 -150.8 -169.9z" />
+ <glyph glyph-name="dribbble-square" unicode=""
+d="M90.2002 219.8c8.89941 42.4004 37.3994 77.7002 75.7002 95.7002c3.59961 -4.90039 28 -38.7998 50.6992 -79c-64 -17 -120.3 -16.7998 -126.399 -16.7002zM314.6 294c-2.5 -3.5 -23 -31.0996 -71.5996 -49.4004c-22.4004 41.1006 -47.2002 74.9004 -51 80
+c43.2998 10.5 89 -0.799805 122.6 -30.5996zM140.1 84c14.3008 29.2002 53 66.7998 108.101 85.5996c19.2002 -49.7998 27.2002 -91.5996 29.2002 -103.6c-44 -18.7002 -96.8008 -13.5996 -137.301 18zM238.9 192.2c-49.4004 -13.9004 -94.3008 -53.9004 -116.5 -91.7998
+c-21.8008 24.2998 -35.1006 56.2998 -35.1006 91.3994c0 1.40039 0.100586 2.7998 0.100586 4.2002c6 -0.200195 72.1992 -1 140.399 19.4004c3.90039 -7.7002 7.7002 -15.4004 11.1006 -23.2002zM273.8 175.9c42.7998 6.89941 80.5 -4.30078 85.1006 -5.80078
+c-6.10059 -38 -27.9004 -70.8994 -58.6006 -91.5996c-1.39941 8.2998 -8.59961 48.2998 -26.5 97.4004zM253.5 224.3c50.5 20.7002 73.4004 50 76.2998 53.9004c19.1006 -23.2002 30.6006 -52.7998 30.9004 -85.1006c-4.5 1 -49.7002 10.1006 -95.2002 4.40039
+c-3.7002 9 -7.2002 17 -12 26.7998zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM384 192c0 88.2002 -71.7998 160 -160 160s-160 -71.7998 -160 -160s71.7998 -160 160 -160
+s160 71.7998 160 160z" />
+ <glyph glyph-name="dyalog" unicode="" horiz-adv-x="416"
+d="M0 416h171.2c74.5 0 137.7 -24 182.5 -69.5996c40.2002 -40.9004 62.2998 -95.6006 62.2998 -154.301c0 -111.399 -84.0996 -224.1 -244.8 -224.1h-171.2v64h171.2c122.2 0 180.8 84 180.8 160.1c0 79.7002 -67.4004 159.9 -180.8 159.9h-107.2v-55.2002h-64v119.2z" />
+ <glyph glyph-name="earlybirds" unicode="" horiz-adv-x="480"
+d="M313.2 400.5c1.2002 13 21.2998 14 36.5996 8.7002c0.900391 -0.299805 26.2002 -9.7002 19 -15.2002c-27.8994 7.40039 -56.3994 -18.2002 -55.5996 6.5zM112.2 393.6c-7.7998 6.2002 19.8994 16.4004 20.8994 16.7002c16.8008 5.7002 38.9004 4.60059 40.2002 -9.59961
+c0.900391 -27.1006 -30.3994 1 -61.0996 -7.10059zM319.4 288c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16c-8.80078 0 -16 7.2002 -16 16s7.19922 16 16 16zM159.7 288c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16z
+M478.2 124.8c-9.90039 -24 -40.7002 -11 -63.9004 1.2002c-13.5 -69.0996 -58.0996 -111.4 -126.3 -124.2c0.299805 -0.899414 -2 0.100586 24 -1c33.5996 -1.39941 63.7998 3.10059 97.4004 8c-19.8008 13.7998 -11.4004 37.1006 -9.80078 38.1006
+c1.40039 0.899414 14.7002 -1.7002 21.6006 -11.5c8.59961 12.5 28.3994 14.7998 30.2002 13.5996c1.59961 -1.09961 6.59961 -20.9004 -6.90039 -34.5996c4.7002 0.899414 8.2002 1.59961 9.7998 2.09961c2.60059 0.799805 17.7002 -11.2998 3.10059 -13.2998
+c-14.3008 -2.2998 -22.6006 -5.10059 -47.1006 -10.7998c-45.8994 -10.7002 -85.8994 -11.8008 -117.7 -12.8008l1 -11.5996c3.80078 -18.0996 -23.3994 -24.2998 -27.5996 -6.2002c0.799805 -17.8994 -27.0996 -21.7998 -28.4004 1l-0.5 -5.2998
+c-0.699219 -18.4004 -28.3994 -17.9004 -28.2998 0.599609c-7.5 -13.5 -28.0996 -6.7998 -26.3994 8.5l1.19922 12.4004c-36.6992 -0.900391 -59.6992 -3.09961 -61.7998 -3.09961c-20.8994 0 -20.8994 31.5996 0 31.5996c2.40039 0 27.7002 -1.2998 63.2002 -2.7998
+c-61.0996 15.5 -103.7 55 -114.9 118.2c-25 -12.8008 -57.5 -26.8008 -68.1992 -0.800781c-10.5 25.4004 21.5 42.6006 66.7998 73.4004c0.700195 6.59961 1.59961 13.2998 2.7002 19.7998c-14.4004 19.6006 -11.6006 36.2998 -16.1006 60.4004
+c-16.7998 -2.40039 -23.2002 9.09961 -23.5996 23.0996c0.299805 7.2998 2.09961 14.9004 2.39941 15.4004c1.10059 1.7998 10.1006 2 12.7002 2.59961c6 31.7002 50.6006 33.2002 90.9004 34.5c19.7002 21.7998 45.2002 41.5 80.8994 48.2998
+c-15.2998 19.4004 -3.39941 39.9004 -2.39941 40.4004c1.7002 0.799805 21.2002 -4.2998 26.2998 -23.2002c5.2002 8.7998 18.2998 11.4004 19.5996 10.7002c1.10059 -0.599609 6.40039 -15 -4.89941 -25.9004c40.2998 -3.5 72.2002 -24.6992 96 -50.6992
+c36.0996 -1.5 71.7998 -5.90039 77.0996 -34c2.7002 -0.600586 11.6006 -0.800781 12.7002 -2.60059c0.299805 -0.5 2.09961 -8.09961 2.40039 -15.3994c-0.5 -13.9004 -6.80078 -25.4004 -23.6006 -23.1006c-3.2002 -17.2998 -2.7002 -32.8994 -8.7002 -47.7002
+c2.40039 -11.6992 4 -23.7998 4.80078 -36.3994c37 -25.4004 70.2998 -42.5 60.2998 -66.9004zM207.4 288.1c0.899414 44 -37.9004 42.2002 -78.6006 40.3008c-21.7002 -1 -38.8994 -1.90039 -45.5 -13.9004c-11.3994 -20.9004 5.90039 -92.9004 23.2002 -101.2
+c9.7998 -4.7002 73.4004 -7.89941 86.2998 7.10059c8.2002 9.39941 15 49.3994 14.6006 67.6992zM259.4 229.8c-4.30078 12.4004 -6 30.1006 -15.3008 32.7002c-2 0.5 -9 0.5 -11 0c-10 -2.7998 -10.7998 -22.0996 -17 -37.2002c15.4004 0 19.3008 -9.7002 23.7002 -9.7002
+c4.2998 0 6.2998 11.3008 19.6006 14.2002zM395.1 314.5c-6.59961 12.0996 -24.7998 12.9004 -46.5 13.9004c-40.1992 1.89941 -78.1992 3.7998 -77.2998 -40.3008c-0.5 -18.2998 5 -58.2998 13.2002 -67.7998c13 -14.8994 76.5996 -11.7998 86.2998 -7.09961
+c15.7998 7.59961 36.5 78.8994 24.2998 101.3z" />
+ <glyph glyph-name="erlang" unicode="" horiz-adv-x="640"
+d="M87.2002 394.5c-41.5 -50.2002 -65.6006 -116.2 -65.5 -192.9c-0.100586 -86.7998 29 -159.5 78.7002 -212.1h-100.4v405h87.2002zM325.4 384.8c46.1992 -0.0996094 79.5996 -33.5 80.6992 -83.2002h-169.899c4.09961 49.7002 43.2998 83.1006 89.2002 83.2002z
+M556.1 394.4h0.300781l-0.100586 0.0996094zM556.4 394.4h83.5996v-405h-80.7998c21.3994 23 40.5 49.8994 57.8994 80.7998l-96.3994 48.2002c-33.9004 -55.1006 -83.4004 -105.801 -151.9 -106.101c-99.7002 0.400391 -138.8 85.6006 -138.6 195.3h372.399
+c0.5 12.4004 0.5 18.1006 0 24.1006c2.5 65.2002 -14.7998 120 -46.1992 162.7z" />
+ <glyph glyph-name="facebook-f" unicode="" horiz-adv-x="320"
+d="M279.14 160h-74.6895v-224h-100.17v224h-81.3906v92.6602h81.3906v70.6201c0 80.3398 47.8594 124.72 121.08 124.72c35.0693 0 71.75 -6.25977 71.75 -6.25977v-78.8906h-40.4199c-39.8203 0 -52.2402 -24.71 -52.2402 -50.0596v-60.1299h88.9102z" />
+ <glyph glyph-name="facebook-messenger" unicode="" horiz-adv-x="512"
+d="M256.55 440c140.04 0 247.45 -102.34 247.45 -240.57c0 -175.13 -166.15 -273.229 -319.44 -231.04c-8.96973 2.44043 -9.64941 0.600586 -62.5596 -22.6992c-2.10449 -0.918945 -5.67578 -1.66504 -7.97168 -1.66504c-10.624 0 -19.543 8.61719 -19.9082 19.2344
+c-1.41992 46.3701 0.299805 50.7207 -8.0498 58.2305c-48.3604 43.1602 -78.0703 105.64 -78.0703 177.939c0 138.23 108.52 240.57 248.55 240.57zM405.79 254.87c7.0498 11.0801 -6.65039 23.5996 -17.0898 15.6201l-78.4102 -59.3799
+c-2.20801 -1.65625 -6.24023 -3 -9 -3s-6.79199 1.34375 -9 3l-58.0596 43.46c-5.48926 4.09961 -15.5049 7.42676 -22.3564 7.42676c-11.3438 0 -25.4805 -7.77637 -31.5537 -17.3574l-73 -115.569c-7.05078 -11.0703 6.64941 -23.6006 17.1094 -15.6699l78.3701 59.4395
+c2.20801 1.65625 6.24023 3 9 3s6.79199 -1.34375 9 -3l58.0801 -43.4697c5.48926 -4.09766 15.5039 -7.42285 22.3535 -7.42285c11.3428 0 25.4805 7.77441 31.5566 17.3525z" />
+ <glyph glyph-name="firstdraft" unicode="" horiz-adv-x="384"
+d="M384 256h-64v-128h-128v-128h-192v25.5996h166.4v128h128v128h89.5996v-25.5996zM358.4 217.6h25.5996v-153.6h-128v-128h-192v25.5996h166.4v128h128v128zM384 25.5996v-25.5996h-64v-64h-25.5996v89.5996h89.5996zM0 448h384v-128h-128v-128h-128v-128h-128v384z" />
+ <glyph glyph-name="fonticons-fi" unicode="" horiz-adv-x="384"
+d="M114.4 224h92.3994l-15.2002 -51.2002h-76.3994v-157.8c0 -8 -2.7998 -9.2002 4.39941 -10l59.6006 -5.59961v-34.4004h-179.2v35.2002l29.2002 2.7998c7.2002 0.799805 9.2002 3.2002 9.2002 10.7998v155.8c0 3.2002 -4 3.2002 -8 3.2002h-30.4004v51.2002h38.4004
+v28.7998c0 68 36.3994 96 106 96c46.7998 0 88.7998 -11.2002 88.7998 -72.3994l-69.6006 -8.40039c0.400391 25.5996 -6 31.5996 -22.3994 31.5996c-25.2002 0 -26 -13.5996 -26 -37.5996v-32c0 -3.2002 -4.7998 -6 -0.799805 -6zM384 -35h-140.8v34.4004l28 3.59961
+c7.2002 0.799805 10.3994 2.40039 10.3994 10v148c0 5.59961 -4 9.2002 -9.19922 10.7998l-33.2002 8.7998l9.2002 40.4004h110v-208c0 -8 -3.60059 -8.7998 4 -10l21.5996 -3.59961v-34.4004zM354 312.2l12.4004 -45.6006l-10 -10l-42.8008 22.8008l-42.7998 -22.8008
+l-10 10l12.4004 45.6006l-30 36.3994l4.7998 10h38l21.2002 38.4004h12.7998l21.2002 -38.4004h38l4.7998 -13.1992z" />
+ <glyph glyph-name="fort-awesome-alt" unicode="" horiz-adv-x="512"
+d="M208 210.6c2.09961 0 3.7002 -1.59961 3.7002 -3.69922v-51.7002c0 -2.10059 -1.60059 -3.7002 -3.7002 -3.7002h-22.2002c-2.09961 0 -3.7002 1.59961 -3.7002 3.7002v51.7002c0 2.09961 1.60059 3.69922 3.7002 3.69922h22.2002zM326.2 210.6
+c2 0 3.59961 -1.59961 3.7002 -3.69922v-51.7002c0 -2.10059 -1.60059 -3.7002 -3.7002 -3.7002h-22.2002c-2.09961 0 -3.7002 1.59961 -3.7002 3.7002v51.7002c0 2.09961 1.60059 3.69922 3.7002 3.69922h22.2002zM458.2 335.7
+c28.8994 -40.7002 45.7998 -90.2002 45.7998 -143.7c0 -2 0 -4 -0.0996094 -6c0 -0.700195 0 -1.2998 -0.100586 -2c0 -1.2998 -0.0996094 -2.7002 -0.200195 -4c0 -0.799805 -0.0996094 -1.5 -0.0996094 -2.2998
+c-0.0996094 -1.2002 -0.0996094 -2.40039 -0.200195 -0.700195c-0.0996094 -0.799805 -0.0996094 -1.59961 -0.200195 -2.40039c-0.0996094 -1.19922 -0.199219 -2.39941 -0.299805 -3.5c-0.0996094 -0.799805 -0.200195 -1.59961 -0.200195 -2.39941
+c-0.0996094 -1.2002 -0.299805 -2.40039 -0.399414 -3.60059c-0.100586 -0.799805 -0.200195 -1.5 -0.299805 -2.2998c-0.200195 -1.2998 -0.400391 -2.59961 -0.5 -3.89941c-0.100586 -0.600586 -0.200195 -1.30078 -0.300781 -1.90039l-0.899414 -5.7002
+c-0.100586 -0.599609 -0.200195 -1.09961 -0.299805 -1.7002c-0.200195 -1.2998 -0.5 -2.69922 -0.800781 -4c-0.199219 -0.799805 -0.299805 -1.59961 -0.5 -2.39941c-0.199219 -1.10059 -0.5 -2.2002 -0.699219 -3.2002
+c-0.200195 -0.900391 -0.400391 -1.7002 -0.600586 -2.59961c-0.200195 -1 -0.5 -2 -0.700195 -3c-0.199219 -0.900391 -0.5 -1.80078 -0.699219 -2.7002c-0.300781 -1 -0.5 -1.90039 -0.800781 -2.90039c-0.199219 -0.899414 -0.5 -1.7998 -0.799805 -2.7002
+c-0.299805 -0.899414 -0.599609 -1.89941 -0.799805 -2.7998c-0.299805 -0.899414 -0.5 -1.7998 -0.799805 -2.7002c-0.299805 -0.899414 -0.600586 -1.7998 -0.900391 -2.7998c-0.5 -1.59961 -1.09961 -3.2998 -1.7002 -4.89941
+c-0.299805 -0.900391 -0.599609 -1.80078 -1 -2.80078c-0.399414 -1 -0.699219 -2 -1.09961 -3c-0.299805 -0.799805 -0.599609 -1.5 -0.900391 -2.2998l-1.19922 -3c-0.300781 -0.700195 -0.600586 -1.5 -0.900391 -2.2002c-0.400391 -1 -0.799805 -2 -1.2998 -3
+l-0.900391 -2.09961c-0.399414 -1 -0.899414 -2 -1.39941 -3c-0.300781 -0.700195 -0.600586 -1.2998 -0.900391 -2c-0.5 -1 -1 -2.09961 -1.5 -3.09961c-0.299805 -0.600586 -0.599609 -1.10059 -0.799805 -1.7002c-0.600586 -1.10059 -1.10059 -2.2002 -1.7002 -3.2998
+c-0.0996094 -0.200195 -0.200195 -0.300781 -0.299805 -0.5c-2.2002 -4.10059 -4.40039 -8.2002 -6.7998 -12.2002c-0.200195 -0.400391 -0.5 -0.799805 -0.700195 -1.2002c-0.700195 -1.09961 -1.2998 -2.2002 -2 -3.2998
+c-0.299805 -0.5 -0.600586 -0.900391 -0.900391 -1.40039c-0.700195 -1.09961 -1.39941 -2.09961 -2 -3.2002c-0.299805 -0.5 -0.599609 -0.899414 -0.899414 -1.39941c-0.700195 -1.10059 -1.40039 -2.10059 -2.10059 -3.2002
+c-0.299805 -0.400391 -0.599609 -0.799805 -0.799805 -1.2002c-0.799805 -1.09961 -1.5 -2.2002 -2.2998 -3.2998c-0.200195 -0.200195 -0.299805 -0.5 -0.5 -0.700195c-37.6006 -54.7002 -94.5 -91.3994 -160.101 -102.399
+c-0.899414 -0.100586 -1.69922 -0.300781 -2.59961 -0.400391c-1 -0.200195 -2.09961 -0.299805 -3.09961 -0.5c-0.900391 -0.0996094 -1.80078 -0.299805 -2.80078 -0.400391c-1 -0.0996094 -2 -0.299805 -3 -0.399414c-1 -0.100586 -2 -0.200195 -2.89941 -0.299805
+c-1 -0.100586 -1.90039 -0.200195 -2.90039 -0.300781c-1 -0.0996094 -2.09961 -0.199219 -3.09961 -0.299805c-0.900391 -0.0996094 -1.7998 -0.200195 -2.7002 -0.200195c-1.09961 -0.0996094 -2.2998 -0.0996094 -3.40039 -0.199219
+c-0.799805 0 -1.69922 -0.100586 -2.5 -0.100586c-1.2998 -0.0996094 -2.59961 -0.0996094 -3.89941 -0.0996094c-0.700195 0 -1.40039 -0.100586 -2.10059 -0.100586c-2 0 -4 -0.0996094 -6 -0.0996094s-4 0 -6 0.0996094c-0.699219 0 -1.39941 0 -2.09961 0.100586
+c-1.2998 0 -2.59961 0.0996094 -3.90039 0.0996094c-0.799805 0 -1.69922 0.100586 -2.5 0.100586c-1.09961 0.0996094 -2.2998 0.0996094 -3.39941 0.199219c-0.900391 0.100586 -1.7998 0.100586 -2.7002 0.200195c-1 0.100586 -2.09961 0.200195 -3.09961 0.299805
+c-1 0.100586 -1.90039 0.200195 -2.90039 0.300781c-1 0.0996094 -2 0.199219 -2.90039 0.299805c-1 0.0996094 -2 0.200195 -3 0.399414c-0.899414 0.100586 -1.7998 0.300781 -2.7998 0.400391s-2.09961 0.299805 -3.09961 0.5
+c-0.900391 0.0996094 -1.7002 0.299805 -2.60059 0.400391c-65.5996 10.8994 -122.5 47.6992 -160 99.3994c-0.199219 0.200195 -0.299805 0.5 -0.5 0.700195c-0.799805 1.09961 -1.59961 2.2002 -2.2998 3.2998c-0.299805 0.400391 -0.599609 0.799805 -0.799805 1.2002
+c-0.700195 1.09961 -1.40039 2.09961 -2.09961 3.2002c-0.300781 0.5 -0.600586 0.899414 -0.900391 1.39941c-0.700195 1.10059 -1.40039 2.10059 -2 3.2002c-0.299805 0.5 -0.599609 0.900391 -0.900391 1.40039c-0.699219 1.09961 -1.2998 2.2002 -2 3.2998
+c-0.199219 0.400391 -0.5 0.799805 -0.699219 1.2002c-2.40039 4 -4.60059 8.09961 -6.80078 12.2002c-0.0996094 0.199219 -0.199219 0.299805 -0.299805 0.5c-0.599609 1.09961 -1.09961 2.19922 -1.7002 3.2998c-0.299805 0.599609 -0.599609 1.09961 -0.799805 1.7002
+c-0.5 1 -1 2.09961 -1.5 3.09961c-0.299805 0.700195 -0.599609 1.2998 -0.899414 2c-0.5 1 -0.900391 2 -1.40039 3l-0.900391 2.09961c-0.399414 1 -0.899414 2 -1.2998 3c-0.299805 0.700195 -0.599609 1.5 -0.899414 2.2002l-1.2002 3
+c-0.299805 0.799805 -0.600586 1.5 -0.900391 2.2998c-0.399414 1 -0.799805 2 -1.09961 3c-0.299805 0.900391 -0.600586 1.80078 -1 2.80078c-0.600586 1.59961 -1.10059 3.2998 -1.7002 4.89941c-0.299805 0.900391 -0.599609 1.7998 -0.900391 2.7998
+c-0.299805 0.900391 -0.5 1.80078 -0.799805 2.7002c-0.299805 0.900391 -0.599609 1.90039 -0.799805 2.7998c-0.299805 0.900391 -0.5 1.80078 -0.799805 2.7002c-0.299805 1 -0.5 1.90039 -0.799805 2.90039c-0.200195 0.899414 -0.5 1.7998 -0.700195 2.7002
+c-0.299805 1 -0.5 2 -0.700195 3c-0.200195 0.899414 -0.400391 1.69922 -0.599609 2.59961c-0.200195 1.09961 -0.5 2.2002 -0.700195 3.2002c-0.200195 0.799805 -0.299805 1.59961 -0.5 2.39941c-0.299805 1.30078 -0.5 2.7002 -0.799805 4
+c-0.100586 0.600586 -0.200195 1.10059 -0.300781 1.7002l-0.899414 5.7002c-0.100586 0.599609 -0.200195 1.2998 -0.299805 1.90039c-0.200195 1.2998 -0.400391 2.59961 -0.5 3.89941c-0.100586 0.799805 -0.200195 1.5 -0.300781 2.2998
+c-0.0996094 1.2002 -0.299805 2.40039 -0.399414 3.60059c-0.100586 0.799805 -0.200195 1.59961 -0.200195 2.39941c-0.0996094 1.2002 -0.200195 2.40039 -0.299805 3.5c-0.100586 0.800781 -0.100586 1.60059 -0.200195 2.40039
+c-0.0996094 1.2002 -0.200195 2.40039 -0.200195 3.7002c0 0.799805 -0.0996094 1.5 -0.0996094 2.2998c-0.100586 1.2998 -0.100586 2.7002 -0.200195 4c0 0.700195 0 1.2998 -0.0996094 2c0 2 -0.100586 4 -0.100586 6c0 53.5 16.9004 103 45.7998 143.6
+c2.30078 3.2002 4.7002 6.40039 7.10059 9.5c4.89941 6.2002 10.0996 12.3008 15.5996 18c2.7002 2.90039 5.5 5.7002 8.40039 8.40039c2.89941 2.7002 5.7998 5.40039 8.7998 8c4.5 3.90039 9.09961 7.59961 13.9004 11.2002c1.59961 1.2002 3.19922 2.39941 4.7998 3.5
+c27.2998 19.5996 59 33.7002 93.2998 40.7998c16.0996 3.2998 32.9004 5 50 5s33.7998 -1.7002 50 -5c34.2998 -7 66 -21.0996 93.5996 -40.7002c1.60059 -1.2002 3.2002 -2.2998 4.80078 -3.5c4.7998 -3.59961 9.39941 -7.2998 13.8994 -11.2002
+c12 -10.3994 23 -21.8994 32.7998 -34.3994c2.5 -3.10059 4.80078 -6.2998 7.10059 -9.5zM448 76.5v71.2998c0 2.10059 -1.59961 3.7002 -3.7002 3.7002h-22.2002c-2.09961 0 -3.69922 -1.59961 -3.69922 -3.7002v-25.7998h-29.5v144
+c0 2.09961 -1.60059 3.7002 -3.7002 3.7002h-22.1006c-2.09961 0 -3.69922 -1.60059 -3.69922 -3.7002v-25.9004h-29.5v25.9004c0 2.09961 -1.60059 3.7002 -3.7002 3.7002h-22.2002c-2.09961 0 -3.7002 -1.60059 -3.7002 -3.7002v-25.9004h-29.5v25.9004
+c0 4.7998 -6.5 3.7002 -9.5 3.7002v30.7002c6.7002 1.59961 13.7998 2.7998 20.7998 2.7998c8.80078 0 16.8008 -3.5 25.4004 -3.5c3.7002 0 22.4004 0.899414 22.4004 6.5v48.3994c0 2.10059 -1.60059 3.7002 -3.7002 3.7002c-4.2002 0 -12.2002 -3.5 -19.4004 -3.5
+c-7.89941 0 -16.8994 3.5 -26.2998 3.5c-6.5 0 -12.9004 -0.899414 -19.2002 -2.2998v3.90039c4.40039 2.09961 7.40039 6.69922 7.40039 11.5c0 16.7998 -25.4004 16.7998 -25.4004 0c0 -4.80078 3 -9.5 7.40039 -11.5v-90.2002c-3 0 -9.5 1.09961 -9.5 -3.7002v-25.9004
+h-29.5v25.9004c0 2.09961 -1.60059 3.7002 -3.7002 3.7002h-22.2002c-2.09961 0 -3.7002 -1.60059 -3.7002 -3.7002v-25.9004h-29.5v25.9004c0 2.09961 -1.59961 3.7002 -3.69922 3.7002h-22.1006c-2.09961 0 -3.7002 -1.60059 -3.7002 -3.7002v-144h-29.5996v25.7998
+c0 2.10059 -1.59961 3.7002 -3.7002 3.7002h-22.0996c-2.10059 0 -3.7002 -1.59961 -3.7002 -3.7002v-71.2998c9.40039 -15.5 20.5996 -29.9004 33.5996 -42.9004c20.6006 -20.5996 44.5 -36.6992 71.2002 -48c13.9004 -5.89941 28.2002 -10.2998 42.9004 -13.1992v75.7998
+c0 58.5996 88.5996 58.5996 88.5996 0v-75.7998c14.7002 2.89941 29 7.39941 42.9004 13.1992c26.7002 11.3008 50.5996 27.4004 71.2002 48c13 13 24.1992 27.4004 33.5996 42.9004z" />
+ <glyph glyph-name="freebsd" unicode=""
+d="M303.7 351.8c11.0996 11.1006 115.5 77 139.2 53.2002c23.6992 -23.7002 -42.1006 -128.1 -53.2002 -139.2c-11.1006 -11.0996 -39.4004 -0.899414 -63.1006 22.9004c-23.7998 23.7002 -34.0996 52 -22.8994 63.0996zM109.9 379.9
+c-31.6006 -19.4004 -57.9004 -46.5 -76.4004 -78.7002c-20.7998 36.2998 -44.5 89.0996 -27.9004 105.7c16.4004 16.5 68 -6.40039 104.301 -27zM406.7 274c3.2998 5.5 7 11.7998 10.8994 18.7998c17.6006 -31.2998 27.7002 -67.3994 27.7002 -105.8
+c0 -119.1 -96.5 -215.6 -215.6 -215.6c-119.101 0 -215.601 96.5996 -215.601 215.6c0 119.1 96.5 215.6 215.601 215.6c35.8994 0 69.7002 -8.7998 99.5 -24.2998c-7.2998 -4 -13.9004 -8 -19.6006 -11.5996c-26 4.7002 -32.8994 -16.4004 -14.8994 -48.7002
+c21.7998 -43.0996 89 -90.4004 109.3 -70.0996c5.40039 5.39941 6 14.7998 2.7002 26.0996z" />
+ <glyph glyph-name="gitkraken" unicode="" horiz-adv-x="592"
+d="M565.7 329.9c11.7998 -31.6006 18.2998 -65.7002 18.2998 -101.4c0 -155.1 -122.6 -281.6 -276.3 -287.7v145.8c-8.40039 -0.5 -16.6006 -0.399414 -23.4004 0v-145.899c-153.7 6.2002 -276.3 132.7 -276.3 287.8c0 35.7002 6.5 69.7998 18.2998 101.3
+c2.2998 6.2002 9.2998 9.2002 15.2998 6.60059c5.7002 -2.40039 8.5 -8.80078 6.30078 -14.6006c-10.9004 -29 -16.9004 -60.5 -16.9004 -93.2998c0 -134.6 100.4 -245.7 230.2 -262.7v123.7c-7.90039 1.59961 -15.4004 3.7002 -23 6.2002v-104
+c-106.7 26 -185.9 122.1 -185.9 236.8c0 91.7998 50.7998 171.8 125.8 213.3c5.80078 3.2002 13 0.900391 15.9004 -5c2.7002 -5.5 0.700195 -12.0996 -4.7002 -15.0996c-67.8994 -37.7002 -113.899 -110.101 -113.899 -193.2c0 -93.4004 57.8994 -173.2 139.8 -205.4
+v92.2002c-14.2002 4.5 -24.7998 17.7002 -24.7998 33.5c0 13.1006 6.69922 24.4004 17.2998 30.5c-8.2002 79.6006 -44.5 58.6006 -44.5 83.9004v14.7998c0 38 87.8994 161.7 129.1 164.7c2.60059 0.200195 5.10059 0.200195 7.60059 0
+c41.0996 -2.90039 129 -126.7 129 -164.7v-14.7002c0 -25.2998 -36.2002 -4.39941 -44.5 -83.8994c10.5 -6.10059 17.2998 -17.4004 17.2998 -30.5c0 -15.8008 -10.7002 -29 -24.9004 -33.5v-92.2002c81.9004 32.2998 139.8 112.1 139.8 205.399
+c0 83.2002 -46 155.601 -113.899 193.2c-5.2998 2.90039 -7.40039 9.60059 -4.7002 15.1006c2.90039 5.89941 10.2002 8.19922 15.9004 5c75 -41.5 125.8 -121.5 125.8 -213.301c0 -114.699 -79.2002 -210.899 -185.9 -236.8v104
+c-7.5 -2.59961 -15.0996 -4.7002 -23 -6.2002v-123.699c129.9 17 230.2 128.1 230.2 262.699c0 32.8008 -6 64.3008 -16.9004 93.3008c-2.19922 5.69922 0.600586 12.1992 6.30078 14.5996c6 2.59961 13 -0.5 15.2998 -6.59961zM365.9 172.5
+c-13.1006 0 -23.7002 -10.5996 -23.7002 -23.7002c0 -13.2002 10.7002 -23.7002 23.7002 -23.7002c13.0996 0 23.6992 10.6006 23.6992 23.7002c0 13.2002 -10.6992 23.7002 -23.6992 23.7002zM226.1 125.2c13.2002 0 23.7002 10.7002 23.7002 23.7002
+c0 13.0996 -10.5996 23.6992 -23.7002 23.6992c-13.1992 0 -23.6992 -10.6992 -23.6992 -23.6992s10.5 -23.7002 23.6992 -23.7002z" />
+ <glyph glyph-name="gofore" unicode="" horiz-adv-x="400"
+d="M324 128.2c54.2998 0 65.7002 -50.1006 67.7002 -77.7002c-46.5 -56.2998 -107.8 -82.5 -171 -82.5c-123.7 0 -220.7 101.5 -220.7 224c0 123.4 98 224 220.7 224c59 0 114.3 -23.2998 156.1 -65.5996l-62.2998 -63.3008c-25 25.4004 -58.2998 39.4004 -93.5996 39.4004
+c-73.2002 0 -132.4 -60.2998 -132.4 -134.4c0 -74.1992 59.2002 -134.399 132.4 -134.399c33.5996 0 65.3994 12.7002 89.8994 35.7998v34.7002h13.2002zM311.9 240.7c47.6992 0 88.0996 -35 88.0996 -100.2v-30.5996c-15.5 26.6992 -42.5 41.7998 -76 41.7998h-118.4v89
+h106.301z" />
+ <glyph glyph-name="goodreads" unicode=""
+d="M299.9 256.8c5.09961 -37.2998 -4.7002 -79 -35.9004 -100.7c-22.2998 -15.5 -52.7998 -14.0996 -70.7998 -5.69922c-37.1006 17.2998 -49.5 58.5996 -46.7998 97.1992c4.2998 60.9004 40.8994 87.9004 75.2998 87.5c46.8994 0.200195 71.7998 -31.7998 78.2002 -78.2998
+zM448 360v-336c0 -30.9004 -25.0996 -56 -56 -56h-336c-30.9004 0 -56 25.0996 -56 56v336c0 30.9004 25.0996 56 56 56h336c30.9004 0 56 -25.0996 56 -56zM330 134.8c0 0 -0.0996094 34 -0.0996094 217.3h-29v-40.2998c-0.800781 -0.299805 -1.2002 0.5 -1.60059 1.2002
+c-9.59961 20.7002 -35.8994 46.2998 -76 46c-51.8994 -0.400391 -87.2002 -31.2002 -100.6 -77.7998c-4.2998 -14.9004 -5.7998 -30.1006 -5.5 -45.6006c1.7002 -77.8994 45.0996 -117.8 112.399 -115.199c28.9004 1.09961 54.5 17 69 45.1992
+c0.5 1 1.10059 1.90039 1.7002 2.90039c0.200195 -0.0996094 0.400391 -0.0996094 0.600586 -0.200195c0.299805 -3.7998 0.199219 -30.7002 0.0996094 -34.5c-0.200195 -14.7998 -2 -29.5 -7.2002 -43.5c-7.7998 -21 -22.2998 -34.7002 -44.5 -39.5
+c-17.7998 -3.89941 -35.5996 -3.7998 -53.2002 1.2002c-21.5 6.09961 -36.5 19 -41.0996 41.7998c-0.299805 1.60059 -1.2998 1.2998 -2.2998 1.2998h-26.7998c0.799805 -10.5996 3.19922 -20.2998 8.5 -29.1992c24.1992 -40.5 82.6992 -48.5 128.199 -37.4004
+c49.9004 12.2998 67.3008 54.9004 67.4004 106.3z" />
+ <glyph glyph-name="goodreads-g" unicode="" horiz-adv-x="384"
+d="M42.5996 44.7002h2.80078c12.6992 0 25.5 0 38.1992 -0.100586c1.60059 0 3.10059 0.400391 3.60059 -2.09961c7.09961 -34.9004 30 -54.5996 62.8994 -63.9004c26.9004 -7.59961 54.1006 -7.7998 81.3008 -1.7998c33.7998 7.40039 56 28.2998 68 60.4004
+c8 21.5 10.6992 43.7998 11 66.5c0.0996094 5.7998 0.299805 47 -0.200195 52.7998l-0.900391 0.299805c-0.799805 -1.5 -1.7002 -2.89941 -2.5 -4.39941c-22.0996 -43.1006 -61.2998 -67.4004 -105.399 -69.1006c-103 -4 -169.4 57 -172 176.2
+c-0.5 23.7002 1.7998 46.9004 8.2998 69.7002c20.5996 71.0996 74.5996 118.2 153.899 118.8c61.3008 0.400391 101.5 -38.7002 116.2 -70.2998c0.5 -1.10059 1.2998 -2.2998 2.40039 -1.90039v61.6006h44.2998c0 -280.301 0.0996094 -332.2 0.0996094 -332.2
+c-0.0996094 -78.5 -26.6992 -143.7 -103 -162.2c-69.5 -16.9004 -159 -4.7998 -196 57.2002c-8 13.5 -11.7998 28.2998 -13 44.5zM188.9 411.5c-52.5 0.5 -108.5 -40.7002 -115 -133.8c-4.10059 -59 14.7998 -122.2 71.5 -148.601
+c27.5996 -12.8994 74.2998 -15 108.3 8.7002c47.5996 33.2002 62.7002 97 54.7998 154c-9.7002 71.1006 -47.7998 120 -119.6 119.7z" />
+ <glyph glyph-name="google-drive" unicode="" horiz-adv-x="512"
+d="M339 133.1l-163.6 282.9h161.199l163.601 -282.9h-161.2zM201.5 109.5h310.5l-80.5996 -141.5h-310.5zM154.1 380.6l82.9004 -141.399l-156.4 -271.2l-80.5996 141.5z" />
+ <glyph glyph-name="google-play" unicode="" horiz-adv-x="512"
+d="M325.3 213.7l-220.7 221.3l280.801 -161.2zM47 448l256.6 -255.9l-256.6 -256c-13 6.80078 -21.7002 19.2002 -21.7002 35.3008v441.3c0 16.0996 8.7002 28.5 21.7002 35.2998zM472.2 222.4c19.2002 -14.3008 19.2002 -46.5 1.2002 -60.8008l-60.1006 -34.0996
+l-65.7002 64.5l65.7002 64.5zM104.6 -51l220.7 221.3l60.1006 -60.0996z" />
+ <glyph glyph-name="gripfire" unicode="" horiz-adv-x="384"
+d="M112.5 146.6c0 -26.8994 16.5996 -47.1992 32.5996 -69.5c22.5 -30.1992 44.2002 -56.8994 44.2002 -86.5c-0.0996094 -14.5 -4.39941 -29.6992 -17.5 -46.3994c0 5.2998 4.7998 12.2002 4.7998 22.2998c0 15.2002 -13 39.9004 -78.0996 86.5996
+c-34.2998 29.1006 -66.5 58.5 -66.5 108.301c0 114.699 147.1 176.5 147.1 268.6c0 3.2998 -0.199219 6.7002 -0.599609 10c5.09961 -2.40039 39.0996 -43.2998 39.0996 -90.4004c0 -80.5 -105.1 -129.199 -105.1 -203zM317.8 185.6
+c1.5 -8.39941 2.2002 -16.5996 2.2002 -24.5996c0 -51.7998 -29.4004 -97.5 -67.2998 -136.8c-1 -1 -2.2002 -2.40039 -3.2002 -2.40039c-3.59961 0 -35.5 41.6006 -35.5 53.2002c0 0 41.7998 55.7002 41.7998 96.9004c0 10.7998 -2.7002 21.6992 -9.09961 33.3994
+c-1.5 -32.2998 -55.7002 -87.7002 -58.1006 -87.7002c-2.69922 0 -17.8994 22 -17.8994 42.1006c0 5.2998 1 10.7002 3.2002 15.7998c2.39941 5.5 56.5996 72 56.5996 116.7c0 6.2002 -1 12 -3.40039 17.0996l-4 7.2002c16.7002 -6.5 82.6006 -64.0996 94.7002 -130.9z" />
+ <glyph glyph-name="grunt" unicode="" horiz-adv-x="384"
+d="M61.2998 258.7c0.5 4.89941 2.7998 10 7 12h0.100586c-4.60059 1.7002 -9.2002 3.09961 -13.5 4.09961c42.1992 10.2002 73.3994 -20.5996 83.0996 -31.7998c16.5996 -19.2002 35.5 -8.7998 35.5 -8.7998c0.299805 -11.1006 -10.2998 -19 -21.0996 -19.5
+c1.19922 -15.4004 -13.9004 -32.5 -13.9004 -32.5s5.59961 15 2.7002 25.2998c-0.900391 3.2002 -2 6.09961 -3 8.5c-19.2998 -17.2002 -48 -1.5 -54.9004 6.09961c-9.59961 10.6006 -12.3994 23.8008 -12.7998 34.1006c-1.7998 -3.7998 -3.2998 -9.10059 -4 -16.6006
+c0 0 -6.2998 9.10059 -5.2002 19.1006zM89.5996 260.5c-2.89941 -9.09961 -3.39941 -27.7002 6.90039 -35.2998c16.2998 -12.1006 32.2998 -5 38 -1.7002c-7.5 11.2998 -25.4004 26 -44.9004 37zM231.7 214.7c-10.7998 0.399414 -21.4004 8.39941 -21.2002 19.2998
+c0 0 18.7998 -10.4004 35.5 8.7998c9.7002 11.2002 40.7998 42 83.0996 31.7998c-4.2998 -0.899414 -8.89941 -2.2998 -13.5 -4.09961h0.100586c4.09961 -1.7998 6.39941 -6.7998 7 -11.7998c1.2002 -10 -5.2002 -19.1006 -5.2002 -19.1006
+c-0.599609 7.5 -2.2002 12.8008 -4 16.6006c-0.5 -10.2998 -3.2002 -23.5 -12.7998 -34.1006c-6.7998 -7.59961 -35.5 -23.3994 -54.7998 -6.09961c-1 -2.5 -2.10059 -5.2998 -3 -8.5c-2.90039 -10.2998 2.69922 -25.2998 2.69922 -25.2998s-15.0996 17 -13.8994 32.5z
+M294.4 260.5c-19.5 -11 -37.4004 -25.5996 -44.9004 -37c5.7002 -3.40039 21.5996 -10.5 37.9004 1.59961c10.3994 7.7002 10 26.3008 7 35.4004zM160 29.5c4.09961 0 7 -0.900391 8.7998 -2.7002c2.2002 -2.2998 1.5 -5.2998 0.900391 -6.7998
+c-1.10059 -2.7002 -5.5 -11.5996 -13 -19.7998c-2.7002 -2.90039 -6.60059 -4.60059 -11 -4.60059c-4.2998 0 -8.7002 1.60059 -11.7998 4.30078c-2.30078 2.09961 -10.2002 9.5 -13.7002 18.5996c-1.2998 3.40039 -1 6.09961 0.899414 8.09961
+c1.30078 1.30078 4 2.90039 9.5 2.90039h29.4004zM349.2 130.7c0 0 29.2998 -22.5 21.0996 -70.9004c-5.2998 -29.5 -23.2002 -46 -47 -54.7002c-8.7998 -19.0996 -29.3994 -45.6992 -67.2998 -49.5996c-14.5 -11.7998 -34.5 -19.5 -63.5996 -19.5h-0.200195
+c-29.2002 0 -49.2002 7.7002 -63.6006 19.5c-37.8994 3.90039 -58.5 30.5 -67.2998 49.5996c-23.7998 8.60059 -41.7998 25.2002 -47 54.7002c-8.59961 48.2002 20.6006 70.7998 20.6006 70.7998c2.39941 -17.8994 13 -33.8994 24.5996 -43.7998
+c3.09961 22.7002 3.7002 55.5 3.7002 62.4004c0 14.7002 -9.5 24.5 -12.2002 26.0996c-2.5 1.5 -5.2998 3 -8.2998 4.60059c-18 9.59961 -40.4004 21.5996 -40.4004 43.6992c0 16.1006 9.2998 23.2002 15.4004 27.8008c0.799805 0.599609 1.5 1.19922 2.2002 1.69922
+c2.09961 1.7002 3.69922 3 4.2998 4.40039c4.39941 9.7998 3.59961 34.2002 1.7002 37.5996c-0.600586 0.700195 -16.8008 21 -11.8008 39.2002c2 7.40039 6.90039 13.2998 14.1006 17c5.2998 2.7002 11.7998 4.2002 19.5 4.5c0.0996094 2 0.5 4 0.899414 5.90039
+c0.5 2.59961 1.10059 5.2998 0.900391 8.09961c-0.400391 4.7002 -0.799805 9.10059 -2.2002 11.2998c-8.39941 13.3008 -28.7998 17.6006 -29 17.6006l-12.2998 2.39941l8.09961 9.40039c0.200195 0.200195 17.3008 17.5 46.3008 17.5c7.89941 0 16 -1.2998 23.8994 -3.5
+c24.2998 -7.7998 42.9004 -30.5 49.4004 -39.2998c2 0.599609 3.89941 1.2002 5.89941 1.7002c-1 26.3994 20.7002 47.3994 28.2002 48.2998c0.5 -4.5 -0.399414 -22.2002 7.2002 -27.6006c2.2002 14.4004 9.59961 30.3008 39.0996 40.7002
+c-6.2998 -16.7002 -0.799805 -30.7002 1.80078 -37.2002c20.0996 18.2002 33.6992 15.2002 33.6992 15.2002s-13.1992 -22.7002 -9 -38.5c3.30078 -0.799805 6.5 -1.7002 9.60059 -2.7002c6.5 8.80078 25.2002 31.5 49.3994 39.3008
+c8.10059 2.59961 16.2002 3.89941 24.1006 3.89941c29 0 46.2002 -17.2998 46.2998 -17.5l8.09961 -9.5l-12.2998 -2.39941c-0.200195 0 -20.5996 -4.30078 -29 -17.6006c-1.39941 -2.2998 -1.7998 -6.59961 -2.2002 -11.2998
+c-0.199219 -2.7998 0.300781 -5.5 0.900391 -8.09961c0.400391 -2 0.799805 -3.90039 0.900391 -5.90039c7.59961 -0.299805 14.1992 -1.7998 19.5 -4.5c7.19922 -3.7002 12.0996 -9.59961 14.0996 -17c4.90039 -18.2998 -11.2002 -38.5996 -11.7998 -39.2002
+c-1.90039 -3.39941 -2.7002 -27.7998 1.7002 -37.5996c0.599609 -1.40039 2.19922 -2.7002 4.2998 -4.40039c0.700195 -0.599609 1.39941 -1.09961 2.2002 -1.7002c6.09961 -4.59961 15.3994 -11.5996 15.3994 -27.7998c0 -22.0996 -22.3994 -34.0996 -40.3994 -43.7002
+c-2.90039 -1.59961 -5.80078 -3.09961 -8.30078 -4.59961c-2.69922 -1.59961 -12.1992 -11.4004 -12.1992 -26.0996c0 -6.90039 0.599609 -39.7002 3.69922 -62.4004c11.6006 9.90039 22.2002 25.7998 24.6006 43.7002zM305.7 410.3
+c-17.7998 -5.7002 -31.6006 -23.0996 -37.7002 -32.2002c1.59961 -0.699219 3.09961 -1.39941 4.7002 -2.19922c2.59961 -1.2002 4.89941 -2.40039 7.09961 -3.7002c2.7002 5.5 8.40039 13.7002 20.7002 22.3994c8.2002 5.80078 18.2002 8.90039 28.7002 8.90039
+c3.59961 0 6.7998 -0.400391 9.2002 -0.799805c3.2998 2.09961 6.59961 3.89941 9.69922 5.2998c-4.7998 2 -13.6992 5 -24.6992 5c-6.10059 0 -12.1006 -0.900391 -17.7002 -2.7002zM326.7 392.1c-7.40039 -0.299805 -14 -2.69922 -19.6006 -7
+c-8 -6.39941 -12.0996 -17.6992 -13.5 -22.5c4.90039 -4.19922 8.2002 -8.09961 10.5 -11.1992c3.40039 1 7.30078 1.89941 11.5 2.69922c3.30078 4.5 3.90039 10.6006 4.40039 17c0.5 6.2002 1.09961 12.6006 4.40039 17.8008c0.699219 1.09961 1.5 2.19922 2.2998 3.19922
+zM45.5996 402.7c2.40039 0.399414 5.60059 0.799805 9 0.899414c10.6006 0 20.5 -3.09961 28.8008 -8.89941c12.3994 -8.7002 18.0996 -17 20.6992 -22.4004c2.2002 1.2002 4.60059 2.5 7.10059 3.7002c1.59961 0.799805 3.2002 1.5 4.7998 2.2002
+c-6.09961 8.89941 -19.9004 26.2998 -37.7002 32.0996c-5.7002 1.7998 -11.5996 2.7002 -17.7002 2.7002c-11 0 -19.8994 -3 -24.6992 -5c3.09961 -1.2998 6.39941 -3.09961 9.69922 -5.2998zM90.2998 362.6c-1.39941 4.80078 -5.5 16.1006 -13.5 22.4004
+c-5.5 4.40039 -12.0996 6.7002 -19.5 7c0.799805 -1 1.60059 -2.09961 2.2998 -3.2002c3.30078 -5.2002 3.90039 -11.5996 4.40039 -17.7998c0.5 -6.40039 1 -12.5 4.2998 -16.9004c4.2002 -0.799805 8.10059 -1.7998 11.5 -2.69922c2.2002 3.19922 5.60059 7 10.5 11.1992z
+M58.0996 188.1c8.7002 -5 18.1006 -16.7998 19 -34.1992c0.900391 -14.7002 -0.899414 -49.9004 -3.39941 -75.9004c12.5 -4.7998 26.7002 -6.40039 39.7002 -6.7998c2 4.09961 3.89941 8.5 5.5 13.0996c0.699219 1.90039 19.5996 51 26.3994 62.2002
+c-5.39941 -39 -17.5 -73.7002 -23.5 -89.5996c3.40039 0.399414 7.2998 0.699219 11.7002 0.699219h117c4.40039 0 8.2002 -0.199219 11.7002 -0.699219c-6 15.8994 -18 50.5996 -23.5 89.5996c6.7998 -11.0996 25.7002 -60.2002 26.3994 -62.2002
+c1.60059 -4.59961 3.5 -9 5.5 -13.0996c13 0.399414 27.3008 2 39.7002 6.7998c-2.5 26 -4.2998 61.2998 -3.39941 75.9004c1.09961 17.5 10.3994 29.1992 19.0996 34.1992c2.7002 1.5 5.5 3.10059 8.40039 4.60059c14.7998 8 30.1992 16.2998 30.1992 30.5
+c0 11.0996 -4.2998 14.5 -8.89941 18.2002l-0.5 0.399414c-0.700195 0.600586 -1.5 1.2002 -2.2002 1.7998c0.900391 -7.19922 1.90039 -13.2998 2.7002 -14.8994c0 0 -12.1006 15 -15.7002 44.2998c-1.40039 11.5 1.09961 34.2002 5.09961 43
+c-0.199219 -4.90039 0 -9.7998 0.300781 -14.4004c0.399414 0.900391 0.799805 1.60059 1.2998 2.2002c3.2998 4 11.8994 17.5 9.39941 26.6006c-1 3.39941 -3.19922 6 -6.69922 7.7998c-3.80078 1.89941 -8.80078 2.89941 -15.1006 2.89941
+c-12.2998 0 -25.8994 -3.7998 -32.8994 -6c-25.1006 -7.89941 -55.4004 -30.8994 -64.1006 -37.6992c-0.200195 -0.200195 -0.399414 -0.300781 -0.399414 -0.300781l-5.60059 -3.89941l3.5 5.7998c0.200195 0.299805 19.1006 31.4004 53.1006 46.5
+c-2 2.90039 -7.40039 8.2002 -21.6006 15.0996c-21.3994 10.5 -46.3994 15.8008 -74.2998 15.8008c-27.7998 0 -52.9004 -5.30078 -74.2998 -15.8008c-14.2002 -7 -19.6006 -12.1992 -21.6006 -15.0996c34.1006 -15.0996 53 -46.2002 53.2002 -46.5l3.5 -5.7998
+l-5.59961 3.89941s-0.200195 0.100586 -0.400391 0.300781c-8.7002 6.7998 -39 29.6992 -64.0996 37.6992c-7 2.30078 -20.6006 6 -32.9004 6c-6.2998 0 -11.2998 -1 -15.0996 -2.89941c-3.60059 -1.7998 -5.7998 -4.2998 -6.7002 -7.7998
+c-2.40039 -9.10059 6.2002 -22.6006 9.40039 -26.6006c0.5 -0.599609 0.899414 -1.39941 1.2998 -2.2002c0.299805 4.60059 0.5 9.5 0.299805 14.4004c4 -8.7002 6.5 -31.5 5.09961 -43c-3.59961 -29.2998 -15.6992 -44.2998 -15.6992 -44.2998
+c0.799805 1.59961 1.7998 7.7002 2.69922 14.8994c-0.799805 -0.599609 -1.5 -1.19922 -2.19922 -1.7998l-0.5 -0.399414c-4.60059 -3.60059 -8.90039 -7.10059 -8.90039 -18.2002c0 -14.2002 15.2998 -22.5 30.2002 -30.5c2.7998 -1.5 5.7002 -3 8.39941 -4.60059z
+M34.7998 43.4004c11.9004 -19.7002 35.5 -29.4004 58.2002 -29.5c-4.5 13.2998 -3.09961 24 4.09961 31.7998l1.40039 1.39941c1.7998 2.40039 4.2998 5.80078 7 10c-27.2002 1.10059 -63.5 11 -74.4004 45.4004c-5 -5 -8.39941 -39.0996 3.7002 -59.0996zM80.5 -0.0996094
+c6.5 -9.5 16.5 -19.6006 30.9004 -25.5c-4.90039 7.19922 -8.80078 15.0996 -12.3008 23.0996c-6.39941 0.5 -12.5996 1.2998 -18.5996 2.40039zM192 -50.2002c60.5996 0.100586 78.2998 45.9004 84.9004 64.7002c3.59961 10.5 3.2998 18.2998 -0.900391 23.0996
+c-2.7998 3.30078 -9.5 7.2002 -24.5996 7.2002h-118.801c-15.0996 0 -21.6992 -3.89941 -24.5996 -7.2002c-4.2998 -4.89941 -4.59961 -12.5996 -0.900391 -23.0996c6.60059 -18.9004 24.3008 -64.5996 84.9004 -64.7002zM272.6 -25.5996
+c14.4004 5.89941 24.4004 16 30.9004 25.5c-6 -1.10059 -12.2002 -1.90039 -18.5996 -2.40039c-3.5 -8 -7.40039 -15.9004 -12.3008 -23.0996zM349.2 43.4004c12.2002 19.8994 8.7998 54 3.7998 59c-10.9004 -34.4004 -47.2002 -44.2002 -74.4004 -45.4004
+c2.7002 -4.2002 5.2002 -7.59961 7 -10c0.5 -0.5 1 -1 1.40039 -1.5c7.2002 -7.7002 8.59961 -18.5 4.09961 -31.7998c22.5 0.399414 46.1006 10 58.1006 29.7002zM191.9 260.3c-12.7002 0.200195 -27.2002 17.7998 -27.2002 17.7998
+c9.89941 -6 18.7998 -8.09961 27.2998 -8.2998c8.5 0.200195 17.4004 2.2998 27.2998 8.2998c0 0 -14.5 -17.6992 -27.2002 -17.7998h-0.199219zM253.6 29.5996c5.40039 -0.0996094 8.10059 -1.69922 9.40039 -3c1.90039 -1.89941 2.2002 -4.59961 0.900391 -7.89941
+c-3.5 -8.90039 -11.4004 -16.1006 -13.7002 -18.1006c-3.10059 -2.59961 -7.40039 -4.19922 -11.7998 -4.19922c-4.40039 0 -8.30078 1.59961 -11 4.5c-7.5 8 -12 16.6992 -13 19.2998c-0.600586 1.5 -1.30078 4.39941 0.899414 6.7002
+c1.7002 1.7998 4.7002 2.69922 8.90039 2.69922h29.3994z" />
+ <glyph glyph-name="gulp" unicode="" horiz-adv-x="256"
+d="M209.8 56.9004l-14.0996 -24.6006l-4.60059 -80.2002c0 -8.89941 -28.2998 -16.0996 -63.0996 -16.0996s-63.0996 7.2002 -63.0996 16.0996l-5.80078 79.4004l-14.8994 25.4004c41.2002 -17.3008 126 -16.7002 165.6 0zM13.7998 310.2
+c30.7002 -17 197.8 -16.9004 228.3 0.200195l-14.7998 -136.801c-4.7998 -4.19922 -11.5996 -10.1992 -16.5996 -14.0996c-1.60059 -1.2002 -6 -4.7002 -8 -4.7002c-1.2998 0 -2.2002 0.5 -2.2002 1.7998c0.0996094 1 3.40039 4.5 5 6.40039
+c4.90039 5.7002 13.7998 16 13.7998 23.4004c0 7 -10.7002 14.0996 -25.7002 0.199219c-1.59961 -1.5 -3.09961 -3 -4.5 -4.5c0.400391 1.10059 1.10059 5.10059 1.10059 6.2002c0 2.7998 -1.40039 4 -4.2002 4c-1 0 -1.90039 -0.599609 -2.7002 -1.59961
+c-2.59961 -3.10059 -3.89941 -7.5 -5.2998 -11.2998c-0.5 -1.80078 -1.09961 -3.60059 -1.7002 -5.5c-0.399414 -0.200195 -0.700195 -0.300781 -0.899414 -0.600586c-3.80078 -3.89941 -17.7002 -17 -23.1006 -17c-2.2998 0 -1.59961 3.60059 -1 5.7998
+c1 3.40039 6.7998 17.7002 8.7002 22.3008c4.59961 11.0996 8 19.7998 13.2002 31.8994c3.89941 9.2002 3.7998 8.60059 4.5 10.5c0.700195 2.10059 0.700195 4.90039 -1 6.2002c-1 0.700195 -2 1.09961 -3.2002 1.09961c-2.40039 0 -4.7998 -1.39941 -6.09961 -4.69922
+c-25.5 -64.4004 -25.2002 -63.3008 -26.4004 -68.2002c-2 -1.7002 -4.40039 -3.40039 -6.7998 -4.5c-3.10059 -1.40039 -6.7998 -2.2002 -6.7998 1.2002c0 3.69922 1.39941 8.19922 2.69922 11.6992c2.2002 6.10059 4.90039 11.1006 6.90039 16.7002
+c0.900391 2.40039 1.2998 4.7002 -0.400391 6.90039c-0.799805 1 -1.89941 1.5 -3.19922 1.5c-2.60059 0 -4.10059 -2.60059 -5.2002 -5.10059c-0.700195 -1.5 -1.2998 -3.09961 -1.7998 -4.7998c-1.2002 -4 -3.60059 -8.7002 -5.60059 -12.2998
+c-2.7998 -5 -6.5 -10.0996 -11.0996 -13.5c-2.2002 -1.59961 -4.5 -2.40039 -6.90039 -2.40039c-3.5 0 -2.39941 5.7002 -1.5 9c2.2002 7.80078 5.5 13.3008 9.2998 20.8008c1.30078 2.69922 2.30078 5.39941 -0.299805 7.19922c-0.5 0.300781 -1 0.5 -1.59961 0.700195
+c-3.40039 0.900391 -6 -1.09961 -7.60059 -4.5c-3.09961 -6.2998 -5.39941 -11.7002 -7.09961 -16.2002c-3.2998 -8.89941 -6.90039 -18.2998 -4.59961 -23.7998c1.5 -3.7002 4.5 -5.09961 8.59961 -5.09961c9.7998 0 17.7998 6.7002 22.4004 14.8994
+c-4.30078 -19.7998 8.19922 -17.2998 20 -8.09961c0.0996094 -0.400391 0.0996094 -0.799805 0.199219 -1.2002c1.5 -6.7002 8.7002 -6.7002 14.5 -4.09961c3.5 1.59961 8.2002 4.5 14.4004 10.5c0.200195 0.299805 0.799805 1.39941 -0.799805 -2.2998
+c-7.2002 -16.2002 -13.5 -28.2002 -15 -34.3008c-0.200195 -0.899414 -0.299805 -1.7998 -0.299805 -2.69922c0 -1.80078 0.399414 -3.10059 1.2998 -3.7002c1.59961 -1.2002 4.2002 -1.2998 6.09961 -0.299805c1.7998 1 3.10059 2.59961 4 4.5
+c1 2.19922 0.200195 0.699219 5.2002 14c5 13.3994 2.90039 7.7998 9.09961 22c1.90039 4.2998 4.2002 9.5 8.5 15.5c2.5 3.39941 5.5 7 8.7002 9.69922c5.7002 4.7002 11.7002 5.40039 11.7002 2.5c0 -2.19922 -3.2998 -6.39941 -4.7002 -8.09961
+c-5.2998 -6.7002 -14.3994 -16.2998 -14.3994 -21.5c0 -9.5 12 -8 17.3994 -5.7002c7.2998 3.2002 13.9004 9.60059 19.6006 14.7998l-10.9004 -94.5996c-1.90039 -4.90039 -39.0996 -17.0996 -88.2002 -17.0996c-49 0 -86.2002 12.0996 -88.2002 17.0996l-7.59961 79.5996
+c2.09961 -1.5 4.2998 -2.39941 7.7002 -2.39941c7.39941 0 16.0996 6.7002 21.5 11.7998c2.2998 2.2002 4.39941 4.40039 6.39941 6.59961c-1 -3 -7.09961 -22 -7.2998 -25.1992c-0.0996094 -1 -0.200195 -4.90039 0.799805 -6.30078
+c0.5 -0.799805 1.40039 -1.19922 2.60059 -1.19922c2.89941 0 5.59961 4.69922 6.2998 7.5c0 0 1.7998 6.2998 7.59961 25.7998c6.30078 21.0996 10 24.5 10 34.7002c0 5.59961 -7.2998 6.7998 -9.89941 0l-5.2002 -15.5c-2.2002 -4.5 -8 -11.5 -12.5 -16
+c-3.5 -3.5 -10.7998 -10.1006 -15.7998 -10.1006c-2.40039 0 -3.90039 1.40039 -4.90039 3.60059c-2.2998 5.2998 -0.899414 14.2998 0.600586 19.8994c2.59961 9.7002 6.89941 19.4004 12 28.2002c4.19922 7.2998 10.1992 15.7002 17.0996 20.7002
+c6.59961 4.7998 12.7998 4.5 16.9004 -2.7998c1.5 -2.7002 3.7998 -7.30078 6.7998 -7.30078c2.5 0 5.7002 2.60059 4.5 9.10059c-0.5 2.5 -4.90039 8.7998 -10.1006 11.7998c-6 3.59961 -12.3994 3.59961 -18.6992 0.900391
+c-19.2002 -8.2002 -34.1006 -35.2002 -40 -55.2002zM243.5 318.7c0 -21 -231.2 -21 -231.2 0c0 8.7998 51.7998 15.8994 115.601 15.8994c9 0 17.7998 -0.0996094 26.2998 -0.399414l12.5996 48.7002l61.2998 64.5c1.40039 1.39941 5.80078 0.199219 9.90039 -3.5
+c4.09961 -3.7002 6.59961 -7.90039 5.2998 -9.30078l-0.0996094 -0.0996094l-57.2998 -60.5l-10 -40.7002c39.8994 -2.59961 67.5996 -8.09961 67.5996 -14.5996zM174.1 314.1c0 0.800781 -0.899414 1.5 -2.5 2.10059l-0.199219 -0.799805
+c0 -1.30078 -5 -2.40039 -11.1006 -2.40039c-6.09961 0 -11.0996 1.09961 -11.0996 2.40039c0 0.0996094 0 0.199219 0.0996094 0.299805l0.200195 0.700195c-1.7998 -0.600586 -3 -1.40039 -3 -2.30078c0 -2.09961 6.2002 -3.69922 13.7002 -3.69922
+c7.7002 -0.100586 13.8994 1.59961 13.8994 3.69922z" />
+ <glyph glyph-name="hacker-news-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM21.2002 218.8h-0.200195c0.0996094 0.100586 0.200195 0.299805 0.299805 0.400391c0 -0.100586 0 -0.299805 -0.0996094 -0.400391z
+M239.2 164.9l80.7998 155.1h-34.7998c-54.7998 -101.2 -48.2998 -98.5996 -60.6006 -125.6c-10.0996 24.3994 -6.7998 27.2998 -59.2998 125.6h-37.2998l79.7998 -153.3v-102.7h31.4004v100.9z" />
+ <glyph glyph-name="hire-a-helper" unicode="" horiz-adv-x="512"
+d="M443.1 448c3.90039 -36.4004 32.5 -65.7998 68.9004 -71.7002v-370.5c-35.4004 -4 -64.9004 -33.3994 -67.9004 -69.7998h-372.199c-5.90039 36.4004 -34.5 63.9004 -71.9004 68.7998v371.5c37.4004 3.90039 67.9004 34.4004 71.9004 71.7002h371.199zM406.1 43.0996
+c7.80078 0 5.80078 10.8008 0 10.8008c-10.2998 3.39941 -13.5 3.59961 -21.6992 13.7998c-7.80078 12.8994 -7.90039 44.3994 -7.90039 127.8v101.2c0 22.0996 12.2002 28.2998 28.5996 32.3994c8.90039 2.2002 3.90039 11.8008 -1 11.8008
+c-36.5 0 -20.5996 -2 -57.0996 -2c-32.7002 0 -16.5 2 -49.2002 2c-3.2998 0 -8.5 -8.30078 -1 -10.8008c4.90039 -1.59961 27.6006 -3.69922 27.6006 -39.2998c0 -45.5996 0.199219 -55.7998 -1 -68.7998c0 -1.2998 -2.30078 -12.7998 -12.8008 -12.7998h-109.199
+c-10.5 0 -12.8008 11.5 -12.8008 12.7998c-1.19922 13 -1 23.2002 -1 68.7998c0 35.6006 22.7002 37.7002 27.6006 39.2998c7.5 2.5 2.2998 10.8008 -1 10.8008c-32.7002 0 -16.5 -2 -49.2002 -2c-36.5 0 -20.5996 2 -57.0996 2c-5 0 -9.80078 -9.60059 -1 -11.8008
+c16.3994 -4.09961 28.5996 -10.1992 28.5996 -32.3994v-101.2c0 -83.4004 -0.200195 -114.9 -7.90039 -127.8c-8.19922 -10.2998 -11.5 -10.4004 -21.6992 -13.7998c-5.80078 0 -7.90039 -10.8008 0 -10.8008c36.2998 0 18.7998 2 55.0996 2c35.7998 0 21 -2 56.0996 -2
+c6 0 4.90039 8.2002 0 9.80078c-22.7998 7.59961 -22.8994 10.2998 -24.5996 12.7998c-10.4004 15.5996 -5.90039 83 -5.90039 113c0 5.2998 6.40039 12.7998 13.8008 12.7998h111.199c7.40039 0 13.8008 -7.5 13.8008 -12.7998c0 -30 4.5 -97.4004 -5.90039 -113
+c-1.7002 -2.60059 -1.7998 -5.2002 -24.5996 -12.7998c-4.90039 -1.60059 -5.90039 -9.80078 0 -9.80078c35.0996 0 20.2998 2 56.0996 2c36.2998 0 18.7998 -2 55.0996 -2z" />
+ <glyph glyph-name="hotjar" unicode=""
+d="M414.9 286.5c30 -53 41.7998 -121.6 26.2998 -180.9c-14.7002 -56.6992 -68.2998 -120.3 -148.8 -145.6c54.5 76.9004 43.8994 200.1 -27.1006 215.5c54.2002 -93.9004 -53.7002 -180.3 -110.8 -93.9004c-2.5 -7.19922 -25.0996 -74.5 4.09961 -129.6
+c-61.0996 9.09961 -117.8 33.5 -144.6 93.4004c-35 78.1992 -2.7002 149.8 79 204.899c129.2 87.2998 28.0996 197.7 28.0996 197.7s219.101 -29 293.801 -161.5z" />
+ <glyph glyph-name="hubspot" unicode="" horiz-adv-x="512"
+d="M267.4 236.4l-163.2 114.699c-7.90039 -4.69922 -17 -7.59961 -26.7998 -7.59961c-28.8008 0 -52.2002 23.4004 -52.2002 52.2998c0 28.7998 23.3994 52.2002 52.2002 52.2002c28.8994 0 52.3994 -23.4004 52.3994 -52.2002c0 -4.7998 -0.799805 -9.39941 -2 -13.7998
+c51.4004 -39.0996 141.3 -103.9 168.9 -124.8c13.0996 6.89941 27.5 11.5 42.7002 13.5996v61.2002c-17.5 7.40039 -28.2002 23.7998 -28.2002 42.9004c0 26.0996 20.5996 47.8994 46.7002 47.8994c26.0996 0 47 -21.7998 47 -47.8994
+c0 -19.1006 -10.7002 -35.5 -28.2002 -42.9004v-61.5996c62.5 -9.5 110.2 -63.5 110.2 -128.7c0 -71.9004 -58.1006 -130.2 -130 -130.2c-29.9004 0 -57.3008 10 -79.3008 26.9004l-50 -50.2002c1.30078 -3.90039 1.90039 -7.90039 1.90039 -12.1006
+c0 -10.6992 -4.2002 -20.8994 -11.7998 -28.5c-7.7002 -7.69922 -17.7998 -11.5996 -28.6006 -11.5996c-10.6992 0 -20.8994 4 -28.5 11.5996c-7.59961 7.60059 -11.7998 17.7002 -11.7998 28.5c0 10.8008 4.2002 21 11.7998 28.6006
+c7.60059 7.59961 17.7002 11.7998 28.5 11.7998c4.90039 0 9.60059 -0.900391 14 -2.5l49.5 49.7998c-16.2998 21.7002 -26 48.7002 -26 78c0 37.2998 15.7002 70.9004 40.8008 94.6006zM356.9 72.7998c38.0996 0 69 30.9004 69 69c0 38.1006 -30.9004 69 -69 69
+c-38.1006 0 -69 -30.8994 -69 -69c0 -38.0996 30.8994 -69 69 -69z" />
+ <glyph glyph-name="itunes" unicode=""
+d="M223.6 367.7c94.5 0 171.2 -76.7002 171.2 -171.3c0 -94.5 -76.5996 -171.2 -171.2 -171.2c-94.5996 0 -171.1 76.7998 -171.1 171.3s76.5 171.2 171.1 171.2zM303 127.7c1.40039 6.2002 0.900391 -3 1 167.6c0 5.7002 -3.2998 9.10059 -9 8.7002
+c-1.7998 0 -14.0996 -2.40039 -115.1 -21.4004c-0.900391 0 -4.60059 -1 -6.7002 -2.69922c-2 -1.60059 -3.10059 -3.80078 -3.5 -6.40039c-1.7002 -6.7002 2.39941 -128 -2.60059 -133.7c-2.09961 -2.5 -4.69922 -3.2002 -7.69922 -3.7002
+c-17.7002 -3.19922 -29.6006 -4.7998 -38 -12.7998c-14.5 -14.2002 -7 -38.8994 14.3994 -42.8994c8 -1.40039 23.1006 0.599609 31.4004 5.19922c7.2998 3.80078 12.7998 10.6006 14.8994 19.6006c1.7002 7.7002 1.2002 2.39941 1.2002 118.5
+c0 5.7002 1.7002 7.2002 6.7002 8.2998c0 0 87.9004 16.4004 91.9004 17.0996c5.69922 1 8.39941 -0.5 8.39941 -6.09961c0 -78.7998 1 -77.2002 -2.2002 -80.7998c-2.09961 -2.5 -4.69922 -3.2002 -7.69922 -3.7002c-17.7002 -3.2002 -29.6006 -4.7998 -38 -12.7998
+c-10.6006 -10.4004 -10.4004 -26.7998 1.39941 -36.7998c9.7002 -7.80078 19.7998 -7.2002 31.9004 -5c13.7998 2.59961 24.0996 10.1992 27.2998 23.7998zM345.2 416c56.8994 0 102.8 -45.9004 102.8 -102.8v-242.4c0 -56.8994 -45.7998 -102.8 -102.8 -102.8h-242.4
+c-56.8994 0 -102.8 45.9004 -102.8 102.8v242.4c0 56.8994 45.9004 102.8 102.8 102.8h242.4zM223.6 4c106.301 0 192.5 86.2002 192.5 192.5s-86.1992 192.5 -192.5 192.5c-106.3 0 -192.5 -86.2002 -192.5 -192.5s86.2002 -192.5 192.5 -192.5z" />
+ <glyph glyph-name="itunes-note" unicode="" horiz-adv-x="384"
+d="M381.9 59.7998c-6.40039 -27.3994 -27.2002 -42.7998 -55.1006 -48c-24.5 -4.5 -44.8994 -5.59961 -64.5 10.2002c-23.8994 20.0996 -24.2002 53.4004 -2.7002 74.4004c17 16.1992 40.9004 19.5 76.8008 25.7998c6 1.09961 11.1992 2.5 15.5996 7.39941
+c6.40039 7.2002 4.40039 4.10059 4.40039 163.2c0 11.2002 -5.5 14.2998 -17 12.2998c-8.2002 -1.39941 -185.7 -34.5996 -185.7 -34.5996c-10.2002 -2.2002 -13.4004 -5.2002 -13.4004 -16.7002c0 -234.7 1.10059 -223.899 -2.5 -239.5
+c-4.2002 -18.2002 -15.3994 -31.8994 -30.2002 -39.5c-16.7998 -9.2998 -47.1992 -13.3994 -63.3994 -10.3994c-43.2002 8.09961 -58.4004 58 -29.1006 86.5996c17 16.2002 40.9004 19.5 76.8008 25.7998c6 1.10059 11.1992 2.5 15.5996 7.40039
+c10.0996 11.5 1.7998 256.6 5.2002 270.2c0.799805 5.19922 3 9.59961 7.09961 12.8994c4.2002 3.5 11.7998 5.5 13.4004 5.5c204 38.2002 228.899 43.1006 232.399 43.1006c11.5 0.799805 18.1006 -6 18.1006 -17.6006c0.200195 -344.5 1.09961 -326 -1.7998 -338.5z" />
+ <glyph glyph-name="jenkins" unicode="" horiz-adv-x="512"
+d="M487.1 23c1.5 -11.9004 -5.2998 -28.2998 -8.69922 -39.7002c-4.90039 -16.2998 -9.7002 -31.8994 -14.6006 -47.2002h-422c-0.700195 1.90039 -1.39941 4 -2.09961 6c-4.60059 14.2002 -12.6006 31.7002 -14.7002 45.8008
+c-3.09961 20.8994 16.5996 22.0996 29.2002 31.0996c19.5 14 34.7998 21.7998 55.8994 34.2998c6.30078 3.7998 25.1006 13.2002 27.3008 17.6006c4.2998 8.69922 -7.30078 20.8994 -10.4004 27.6992c-4.90039 10.7002 -7.5 19.8008 -8.2002 30.4004
+c-17.7002 2.7998 -31.0996 13.2998 -39.2002 25.2002c-13.3994 19.7002 -22.6992 56 -11.0996 83.7002c0.900391 2.19922 5.40039 6.5 6.09961 9.7998c1.40039 6.59961 -2.5 15.3994 -2.69922 22.3994c-1.2002 36 6.09961 67 30.2998 77.8008
+c9.7998 39.0996 45 52.1992 78.0996 71.5996c12.2998 7.2998 26 11.9004 40.1006 17.0996c50.5 18.7002 128.1 15.1006 170.1 -16.5996c17.7998 -13.5 46.2002 -41.9004 56.4004 -62.5c26.8994 -54.2998 25 -145.1 6.19922 -211.2
+c-2.5 -8.89941 -6.19922 -21.8994 -11.2998 -32.5996c-3.59961 -7.40039 -14.7002 -22.2998 -13.2998 -28.9004c1.40039 -6.7998 25.2998 -24.8994 30.4004 -29.8994c9.19922 -8.80078 26.7998 -20.7002 28.1992 -31.9004zM205.9 414.3
+c-33.2002 -9.39941 -75.7002 -33.5 -89.3008 -63.3994c10.6006 1.5 17.9004 6.7998 28.3008 7.5c3.89941 0.299805 9.09961 -1.60059 13.5996 -0.5c9 2.2998 16.5996 22.5 23.4004 30c6.59961 7.39941 14.5996 10.5 20 17.1992c3.5 1.7002 8.69922 1.60059 8.89941 6.80078
+c-1.5 1.69922 -3.09961 2.89941 -4.89941 2.39941zM101.1 320.7c-14.6992 -16.1006 -11.5996 -46.2998 -9.7998 -67.7998c26.5 16.6992 61.6006 -1.30078 61.2998 -29.6006c12.6006 0.299805 4.7002 15.7998 2.40039 25.7002c-7.5 32.5996 12.5996 67.9004 0.900391 97.5996
+c-22.7002 -1.7998 -41.3008 -11 -54.8008 -25.8994zM137.8 120.5c4.90039 -20 15.7002 -46 26.2998 -61.4004c13.6006 -19.3994 40.1006 -22.2998 68.7002 -24.1992c5.10059 11 23.9004 10.0996 36.2002 7.19922c-14.7002 5.80078 -28.4004 19.9004 -39.7002 32.4004
+c-13 14.2998 -26.0996 29.7002 -26.7998 48.4004c24.5 -34 44.7998 -63.8008 89.5 -78.8008c33.7998 -11.2998 73.2002 5.2002 99.2002 23.4004c10.7998 7.59961 17.2002 19.5996 24.8994 30.5996c28.7002 41.2002 42 100.101 39.1006 157.101
+c-1.2002 23.5 -1.10059 47 -9 62.7998c-8.2998 16.5996 -36.2002 31.2998 -52.5 16.4004c-3 16.0996 13.5996 26.0996 33.0996 20.2998c-13.8994 18 -28.5996 39.5996 -48.2998 50.7002c-34.4004 19.5 -92.7002 34.0996 -129.3 15.7998
+c-29.6006 -14.7002 -69.5 -39.1006 -83.1006 -70c12.7002 -29.7998 -3.7998 -57.1006 -4.7998 -87.4004c-0.599609 -16.0996 7.60059 -30.2002 8.2002 -47.7002c-4.40039 -7.19922 -17.7002 -8.09961 -26.9004 -7.59961c-3.09961 15.5 -8.5 32.9004 -24.5 34.7002
+c-22.5 2.39941 -39.0996 -16.2998 -40.0996 -35.7998c-1.2002 -23 17.7002 -61 44.4004 -58.4004c10.2998 1.09961 12.7998 11.4004 24.0996 11.2998c6.09961 -12.2002 -9.40039 -16 -11 -24.7002c-0.400391 -2.19922 1.2998 -11 2.2998 -15.0996zM359.8 -3.59961
+c-1.59961 -4.40039 0.299805 -10.4004 -0.599609 -16.5c14.8994 -4.2002 31.8994 -6.40039 50.7002 -7c3.69922 4.7998 4.89941 13.7998 4.5 22.7998c-0.600586 10.7998 -3.40039 33.0996 -10.1006 37c-14.0996 8.2002 -39 -16.5 -49.5996 -20.2998
+c1.2002 -3.40039 3.09961 -6 3.2002 -10.2002c6.2998 1.5 13.8994 0.5 19.2998 -2.2002c-6.2998 -0.700195 -13.2998 -0.599609 -17.4004 -3.59961zM342.6 16.4004c7.60059 5.5 14.3008 12 22.2002 17.0996c-18.2002 -1.59961 -41 -12.9004 -59 -4.90039
+c-0.0996094 -0.899414 -1.2998 -0.599609 -1.5 -1.39941c12.2998 -9.60059 21.5 -11.6006 38.2998 -10.7998zM330.5 -16.7998c26.9004 -8.40039 22.2002 36.7998 -2.7998 20.2002c-0.700195 -8.2002 1.2002 -10.8008 2.7998 -20.2002zM226 9.40039
+c0 6.19922 3.59961 12 2.7998 16.3994c-13.7998 2.40039 -31.8994 0.799805 -41.2998 7.2998c-9.59961 -9.69922 26.9004 -23 38.5 -23.6992zM57.7002 -49.0996v-0.100586h180.7c-0.800781 2.5 -1.5 4.90039 -2.2002 7.2002c-4.7998 15.2998 -7.5 26.7002 -8.7002 35.5
+c-19.2002 9.2002 -39.7002 18.5 -56.2002 30.2002c-3 2.2002 -23.3994 28.7002 -26.2002 27.5996c-36.8994 -14.5996 -71.3994 -39.7002 -102.199 -63.5c5.59961 -11.7998 10.5 -24.2002 14.7998 -36.8994zM298.3 -54.7998h-0.799805
+c0.299805 0.200195 0.5 0.399414 0.799805 0.5v-0.5zM305.8 -49.0996h9.60059c-1 1.5 -2.10059 2.89941 -3.2002 4.2998c-2.10059 -1.5 -4.2998 -2.90039 -6.40039 -4.2998zM320.9 -24.4004c0.0996094 3.60059 0.299805 7.2002 0.399414 10.6006
+c-6.5 3.2002 -14 5.5 -23.5 5.89941c6.5 3.30078 15.9004 3.2002 21.7998 7.10059c0.100586 1.5 0.100586 2.89941 0.200195 4.2998c-10.7998 0.900391 -14.7998 5.59961 -21.8994 9.5c-11.6006 6.40039 -29 13.2002 -43.9004 16.0996
+c-18.5 3.60059 -16.7998 -25.1992 -16 -42.3994c0.700195 -13.6006 7.7002 -28 10.7998 -37c1.5 -4.2002 1.7998 -8.7002 5.40039 -9.5c6.39941 -1.5 27.3994 6.89941 33.3994 10.2002c12.7002 6.89941 22.5 17.8994 33.3008 25.1992zM374.3 -49.0996l0.600586 12.5996
+c-11.2002 -0.700195 -17.5 10.2002 -25.4004 11c-6.90039 0.700195 -12.7002 -7.90039 -21.7002 -4.2002c-2 -2.2002 -3.89941 -4.7002 -6 -6.89941c3.2002 -3.90039 6.10059 -8.10059 8.90039 -12.5h17.3994c0.200195 3.19922 2.80078 5.7998 6.10059 5.7998
+s6 -2.60059 6.09961 -5.7998h14zM383 -49.0996h36.2998c-6.7002 10.1992 -20.0996 18.7998 -35.7002 11.5c-0.199219 -3.7002 -0.399414 -7.5 -0.599609 -11.5zM466.4 -12.0996c1.19922 6.19922 4.59961 19.5996 3.7998 25.0996
+c-1.40039 9.7998 -14.6006 17.0996 -21.4004 23.0996c-12.3994 11.1006 -20.2002 21 -33.2002 31.4004c-5.19922 -7.7998 -16.5 -13 -20.7998 -19.2998c30.7002 14.8994 36.2998 -55.7998 24.2002 -78.5c1.90039 -6.7998 8.2998 -9.40039 10.9004 -15.5
+c-0.700195 -1.10059 -1.30078 -2.2002 -1.90039 -3.2998h27.9004c0.199219 0 0.399414 0 0.599609 -0.100586c4.09961 13.1006 7.59961 25.9004 9.90039 37.1006zM222.2 317.5c5.39941 14.9004 27.2002 34.7002 45 32c7.7002 -1.2002 18 -8.2002 12.2002 -17.7002
+c-30.2002 7 -45.2002 -12.5996 -54.4004 -33.0996c-8.09961 2 -4.90039 13.0996 -2.7998 18.7998zM406.3 254.4c8.2002 3.59961 22.4004 0.699219 29.6006 5.2998c-4.2002 11.5 -10.3008 21.3994 -9.30078 37.7002c0.5 0 1 0 1.40039 -0.100586
+c6.7998 -14.2002 12.7002 -29.2002 21.4004 -41.7002c-5.7002 -13.5 -43.6006 -25.3994 -43.1006 -1.19922zM309.5 251.7c-6.7998 10.8994 -19 32.5 -14.5 45.2998c6.5 -11.9004 8.59961 -24.4004 17.7998 -33.2998c4.10059 -4 12.2002 -9 8.2002 -20.2002
+c-0.900391 -2.7002 -7.7998 -8.59961 -11.7002 -9.7002c-14.3994 -4.2998 -47.8994 -0.899414 -36.5996 17.1006c11.8994 -0.700195 27.8994 -7.80078 36.7998 0.799805zM336.8 181.7c3.7998 -6.60059 1.40039 -18.7002 12.1006 -20.6006
+c20.1992 -3.39941 43.5996 12.3008 58.0996 17.8008c9 15.1992 -0.799805 20.6992 -8.90039 30.5c-16.5996 20 -38.7998 44.7998 -38 74.6992c6.7002 4.90039 7.30078 -7.39941 8.2002 -9.69922c8.7002 -20.3008 30.4004 -46.2002 46.2998 -63.5
+c3.90039 -4.30078 10.3008 -8.40039 11 -11.2002c2.10059 -8.2002 -5.39941 -18 -4.5 -23.5c-21.6992 -13.9004 -45.7998 -29.1006 -81.3994 -25.6006c-7.40039 6.7002 -10.2998 21.4004 -2.90039 31.1006zM135.5 190.9c-6.7998 3.89941 -8.40039 21 -16.4004 21.3994
+c-11.3994 0.700195 -9.2998 -22.2002 -9.2998 -35.5c-7.7998 7.10059 -9.2002 29.1006 -3.5 40.2998c-6.59961 3.2002 -9.5 -3.59961 -13.0996 -5.89941c4.7002 34.0996 49.7998 15.7998 42.2998 -20.2998zM435.1 162.1c-10.0996 -19.1992 -24.3994 -40.3994 -54 -41
+c-0.599609 6.2002 -1.09961 15.6006 0 19.4004c22.7002 2.2002 36.6006 13.7002 54 21.5996zM293.2 149.7c18.8994 -9.90039 53.5996 -11 79.2998 -10.2002c1.40039 -5.59961 1.2998 -12.5996 1.40039 -19.4004c-33 -1.7998 -72 6.40039 -80.7002 29.6006zM385.4 103
+c-1.7002 -4.2998 -5.30078 -9.2998 -9.80078 -11.0996c-12.0996 -4.90039 -45.5996 -8.7002 -62.3994 0.299805c-10.7002 5.7002 -17.5 18.5 -23.4004 26c-2.7998 3.59961 -16.8994 12.8994 -0.200195 12.8994c13.1006 -32.6992 58 -29 95.8008 -28.0996z" />
+ <glyph glyph-name="joget" unicode="" horiz-adv-x="496"
+d="M378.1 403c116.601 -71.7998 152.9 -224.6 81 -341.2c-71.8994 -116.5 -224.6 -152.8 -341.199 -80.8994c-116.601 71.8994 -152.9 224.6 -81 341.199c46.8994 76 128.1 117.9 211.3 117.9c44.3994 0 89.3994 -11.9004 129.899 -37zM429.9 79.7998
+c5.2998 8.7002 9.89941 17.6006 13.8994 26.6006c-32.0996 -1.10059 -157.1 1.5 -208.8 -17.6006c-58.4004 -21.5 -36.9004 -53.3994 -31.2002 -67.0996c3.7998 -9.10059 14.7002 -28.7998 23.7002 -42.4004c6.7998 -0.599609 13.5996 -1 20.4004 -1
+c71.5996 0 141.6 36 182 101.5zM229.1 166.1c51 -1.2998 205.4 -4.39941 230.301 -4.89941c11.8994 81.7998 -24.5 166.6 -99.3008 212.7c-100.5 61.8994 -232.1 30.6992 -294 -69.8008c-28.5996 -46.3994 -37.2998 -99.3994 -28.5 -149.1
+c11 40.9004 49.7002 131.5 178.301 140.2c50.8994 4 41.5 -19.2002 23.5996 -29.7002c-17.7998 -10.5 -45.7002 -23.7998 -68.9004 -51.2002c-23.1992 -27.3994 3 -46.7998 58.5 -48.2002zM412.9 220.9c22.6992 -6 19.0996 -15.5 19.0996 -15.5l-46.5 -23.4004
+l-169.5 -1.59961s33.7998 10.7998 65.2998 31.2998c26 16.8994 49.7002 35.5996 67.5 35.5996c3.7002 0 7.2002 -0.899414 10.4004 -2.7002c18.5 -10.5996 -2.90039 -18.1992 -13.4004 -24.5996s-50.7002 -34.5 -50.7002 -34.5s1.40039 -7.59961 31.1006 8.2002
+c29.7002 15.8994 64 33.2002 86.7002 27.2002z" />
+ <glyph glyph-name="js" unicode=""
+d="M0 416h448v-448h-448v448zM243.8 66.5996v143.7h-42.0996v-143.1c0 -21.1006 -8.7998 -26.5 -22.6006 -26.5c-14.5 0 -20.5 9.89941 -27.0996 21.5996l-34.2998 -20.7002c10 -21.0996 29.5 -38.5 63.2002 -38.5c37.2998 0 62.8994 19.9004 62.8994 63.5zM343.4 3.09961
+c39.8994 0 69.6992 20.8008 69.6992 58.6006c0 35.2002 -20.0996 50.8994 -55.8994 66.2002l-10.5 4.5c-18.1006 7.89941 -25.9004 13 -25.9004 25.5996c0 10.2002 7.7998 18 20.1006 18c12.0996 0 19.8994 -5.09961 27.0996 -18l32.7998 21
+c-13.7998 24.4004 -33 33.7002 -59.7998 33.7002c-37.5 0 -61.5996 -24 -61.5996 -55.6006c0 -34.2998 20.0996 -50.5996 50.5 -63.5l10.5 -4.5c19.2998 -8.5 30.6992 -13.5996 30.6992 -28c0 -12.0996 -11.1992 -20.7998 -28.5996 -20.7998
+c-20.7002 0 -32.5 10.9004 -41.5 25.6006l-34.2998 -19.8008c12.2998 -24.3994 37.5996 -43 76.7002 -43z" />
+ <glyph glyph-name="js-square" unicode=""
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM243.8 66.5996v143.7h-42.0996v-143.1c0 -21.1006 -8.7998 -26.5 -22.6006 -26.5c-14.5 0 -20.5 9.89941 -27.0996 21.5996
+l-34.2998 -20.7002c10 -21.0996 29.5 -38.5 63.2002 -38.5c37.2998 0 62.8994 19.9004 62.8994 63.5zM343.4 3.09961c39.8994 0 69.6992 20.8008 69.6992 58.6006c0 35.2002 -20.0996 50.8994 -55.8994 66.2002l-10.5 4.5c-18.1006 7.89941 -25.9004 13 -25.9004 25.5996
+c0 10.2002 7.7998 18 20.1006 18c12.0996 0 19.8994 -5.09961 27.0996 -18l32.7998 21c-13.7998 24.4004 -33 33.7002 -59.7998 33.7002c-37.5 0 -61.5996 -24 -61.5996 -55.6006c0 -34.2998 20.0996 -50.5996 50.5 -63.5l10.5 -4.5
+c19.2998 -8.5 30.6992 -13.5996 30.6992 -28c0 -12.0996 -11.1992 -20.7998 -28.5996 -20.7998c-20.7002 0 -32.5 10.9004 -41.5 25.6006l-34.2998 -19.8008c12.2998 -24.3994 37.5996 -43 76.7002 -43z" />
+ <glyph glyph-name="keycdn" unicode="" horiz-adv-x="512"
+d="M63.7998 38.7002l60.5 59c32.1006 -42.7998 71.1006 -66 126.601 -67.4004c30.5 -0.700195 60.2998 7 86.3994 22.4004c5.10059 -5.2998 18.5 -19.5 20.9004 -22c-32.2002 -20.7002 -69.6006 -31.1006 -108.101 -30.2002
+c-43.2998 1.09961 -84.5996 16.7002 -117.699 44.4004c0.299805 0.599609 -38.2002 -37.5 -38.6006 -37.9004c9.5 -29.7998 -13.0996 -62.4004 -46.2998 -62.4004c-26.7998 0.100586 -47.5 21.7002 -47.5 48.5c0 34.3008 33.0996 56.6006 63.7998 45.6006zM418.7 291.1
+c19.0996 -31.2998 29.5996 -67.3994 28.7002 -104c-1.10059 -44.7998 -19 -87.5 -48.6006 -121c0.299805 -0.299805 23.7998 -25.1992 24.1006 -25.5c9.59961 1.30078 19.1992 -2 25.8994 -9.09961c11.2998 -12 10.9004 -30.9004 -1.09961 -42.4004
+c-12 -11.2998 -30.9004 -10.8994 -42.4004 1.10059c-6.7002 7 -9.39941 16.7998 -7.59961 26.2998c-24.9004 26.5996 -44.4004 47.2002 -44.4004 47.2002c42.7002 34.0996 63.2998 79.5996 64.4004 124.2c0.700195 28.8994 -7.2002 57.1992 -21.1006 82.1992zM104 394.9
+c6.7002 -7 9.40039 -16.8008 7.59961 -26.3008l45.9004 -48.0996c-4.7002 -3.7998 -13.2998 -10.4004 -22.7998 -21.2998c-25.4004 -28.5 -39.6006 -64.7998 -40.7002 -102.9c-0.700195 -28.8994 6.09961 -57.2002 20 -82.3994l-22 -21.5
+c-19.2998 31.5996 -28.9004 67.6992 -27.7998 104.699c1 44.6006 18.2998 87.6006 47.5 121.101l-25.2998 26.3994c-9.60059 -1.2998 -19.2002 2 -25.9004 9.10059c-11.2998 12 -10.9004 30.8994 1.09961 42.3994c11.9004 11.2002 30.6006 10.9004 42.4004 -1.19922z
+M464.9 440c26 0 47.0996 -22.4004 47.0996 -48.2998c0 -25.9004 -21.0996 -47.7002 -47.0996 -47.7002c-6.30078 -0.0996094 -14 1.09961 -15.9004 1.7998l-62.9004 -59.7002c-32.6992 43.6006 -76.6992 65.9004 -126.899 67.2002
+c-30.5 0.700195 -60.2998 -6.7998 -86.2002 -22.3994l-21.0996 22c32.1992 20.7998 69.5996 31.0996 108.1 30.1992c43.2998 -1.09961 84.5996 -16.6992 117.7 -44.5996l41.0996 38.5996c-1.5 4.7002 -2.2002 9.60059 -2.2002 14.5
+c-0.0996094 26.7002 22.3008 48.4004 48.3008 48.4004zM256.7 334.6c5.5 0 10.8994 -0.399414 16.3994 -1.09961c78.1006 -9.7998 133.4 -81.0996 123.801 -159.1c-9.80078 -78.1006 -81.1006 -133.4 -159.101 -123.801c-78.0996 9.80078 -133.399 81.1006 -123.8 159.2
+c9.2998 72.4004 70.0996 124.601 142.7 124.8zM197.7 215.2c0.599609 -22.7002 12.2002 -41.7998 32.3994 -52.2002l-11 -51.7002h73.7002l-11 51.7002c20.1006 10.9004 32.1006 29 32.4004 52.2002c-0.400391 32.7998 -25.7998 57.5 -58.2998 58.2998
+c-32.1006 -0.799805 -57.3008 -24.7998 -58.2002 -58.2998zM256 288z" />
+ <glyph glyph-name="kickstarter" unicode=""
+d="M400 -32h-352c-26.4004 0 -48 21.5996 -48 48v352c0 26.4004 21.5996 48 48 48h352c26.4004 0 48 -21.5996 48 -48v-352c0 -26.4004 -21.5996 -48 -48 -48zM199.6 269.5c0 30.7002 -17.5996 45.0996 -39.6992 45.0996c-25.8008 0 -40 -19.7998 -40 -44.5v-154.8
+c0 -25.7998 13.6992 -45.5996 40.5 -45.5996c21.5 0 39.1992 14 39.1992 45.5996v41.7998l60.6006 -75.6992c12.2998 -14.9004 39 -16.8008 55.7998 0c14.5996 15.0996 14.7998 36.7998 4 50.3994l-49.0996 62.7998l40.5 58.7002c9.39941 13.5 9.5 34.5 -5.60059 49.1006
+c-16.3994 15.8994 -44.5996 17.2998 -61.3994 -7l-44.8008 -64.7002v38.7998z" />
+ <glyph glyph-name="kickstarter-k" unicode="" horiz-adv-x="384"
+d="M147.3 333.6v-70.5996l82.7998 118.2c31.2002 44.3994 83.3008 41.7998 113.601 12.7998c27.8994 -26.7002 27.7998 -65.0996 10.3994 -89.7998l-74.8994 -107.4l90.7998 -114.8c19.9004 -24.7998 19.5996 -64.5996 -7.40039 -92.2002
+c-31.0996 -30.7002 -80.5 -27.2002 -103.199 0l-112.101 138.3v-76.5c0 -57.7998 -32.5996 -83.3994 -72.3994 -83.3994c-49.6006 0 -74.9004 36.0996 -74.9004 83.3994v283c0 45.2002 26.2002 81.4004 73.9004 81.4004c40.8994 0 73.3994 -26.2002 73.3994 -82.4004z" />
+ <glyph glyph-name="laravel" unicode="" horiz-adv-x="640"
+d="M637.5 206.4c4.2998 -4.80078 3.2002 -8.60059 -4.7002 -10.6006c-6.7002 -1.89941 -69.5996 -18.5996 -87.2998 -23.2998c25.7998 -34.5996 75.0996 -100.6 79.2998 -106.8c5.7002 -8.5 0.5 -10.9004 -7.89941 -14.4004c-8.40039 -3.39941 -195.2 -70.5996 -208 -74.5
+c-16.3008 -5 -23.7002 -7.5 -34.3008 7.40039c-8 11.0996 -51.0996 88.7002 -72.1992 127c-40 -10.5 -113.2 -29.6006 -134.301 -34.7002c-20.5996 -5 -29.3994 7.40039 -32.7998 15c-3.39941 7.59961 -124.8 269.2 -132.399 287.2c-7.60059 18 0.799805 21.3994 8.39941 22
+c7.60059 0.700195 114.5 9.59961 128.5 10.2002c14 0.699219 15.2998 -2.5 21.4004 -11.6006l154.2 -257.5l193.699 46.4004c-10.7998 15.2002 -59.5 84.2998 -64.1992 90.8994c-5.30078 7.40039 0.0996094 10.8008 8.69922 12.3008
+c8.60059 1.39941 82.7002 13.8994 89.1006 14.7998c6.2998 0.899414 11.3994 3.09961 21.7002 -9.2998c10.2998 -12.4004 68.8994 -85.7002 73.0996 -90.5zM285.3 134.4c2.2998 0.5 3.7998 1.7998 1.2002 6.09961c-2.40039 4.2998 -144.6 249.7 -144.6 249.7
+c-1.30078 2.2002 -0.900391 3 -4.5 2.7998c-3.5 -0.200195 -104.301 -9.2002 -106 -9.2002c-1.7002 0 -1.80078 -2.59961 0 -5.89941c1.7998 -3.30078 130.1 -268 130.8 -270s0.700195 -2.60059 6.5 -1.30078c5.7998 1.30078 114.3 27.3008 116.6 27.8008zM591.3 77
+c-1.7002 2.7002 -61.2002 83.4004 -64.0996 88.2002c-3 4.7002 -4.5 3.7002 -9.2002 2.2002l-188.8 -49.1006s58 -100.3 62.3994 -106.8c4.40039 -6.5 7.10059 -6 10.6006 -4.5c3.39941 1.5 181.7 61.5996 187.1 63.5996c5.5 1.90039 3.7002 3.7002 2 6.40039zM603.4 211.1
+c4.19922 1 7.39941 2.40039 5.59961 4.7002c-1.90039 2.40039 -50.9004 64.5 -54.5 69.4004c-3.59961 4.89941 -6.09961 4.09961 -9 3.39941c-2.90039 -0.599609 -67.2998 -12.2998 -71.2998 -12.7998s-2.7002 -2.7002 -1.10059 -5l56.7002 -77.7998
+s69.4004 17.2002 73.6006 18.0996z" />
+ <glyph glyph-name="line" unicode=""
+d="M272.1 243.8v-71.0996c0 -1.7998 -1.39941 -3.2002 -3.19922 -3.2002h-11.4004c-1.09961 0 -2.09961 0.599609 -2.59961 1.2998l-32.6006 44v-42.2002c0 -1.7998 -1.39941 -3.19922 -3.2002 -3.19922h-11.3994c-1.7998 0 -3.2002 1.39941 -3.2002 3.19922v71.1006
+c0 1.7998 1.40039 3.2002 3.2002 3.2002h11.2998c1 0 2.09961 -0.5 2.59961 -1.40039l32.6006 -44v42.2002c0 1.7998 1.39941 3.2002 3.2002 3.2002h11.3994c1.7998 0.0996094 3.2998 -1.40039 3.2998 -3.10059zM190.1 247c1.80078 0 3.2002 -1.5 3.2002 -3.2002v-71.0996
+c0 -1.7998 -1.39941 -3.2002 -3.2002 -3.2002h-11.3994c-1.7998 0 -3.2002 1.40039 -3.2002 3.2002v71.0996c0 1.7998 1.40039 3.2002 3.2002 3.2002h11.3994zM162.6 187.4c1.7002 0 3.10059 -1.5 3.10059 -3.2002v-11.4004c0 -1.7998 -1.40039 -3.2002 -3.2002 -3.2002
+h-45.7002c-0.899414 0 -1.59961 0.400391 -2.2002 0.900391c-0.599609 0.599609 -0.899414 1.2998 -0.899414 2.2002v71.0996c0 1.7998 1.39941 3.2002 3.2002 3.2002h11.3994c1.7998 0 3.2002 -1.40039 3.2002 -3.2002v-56.3994h31.0996zM332.1 247
+c1.7002 0 3.10059 -1.5 3.2002 -3.2002v-11.3994c0 -1.80078 -1.39941 -3.2002 -3.2002 -3.2002h-31.0996v-12h31.0996c1.80078 0 3.2002 -1.40039 3.2002 -3.2002v-11.5c0 -1.7998 -1.39941 -3.2002 -3.2002 -3.2002h-31.0996v-12h31.0996
+c1.80078 0 3.2002 -1.39941 3.2002 -3.2002v-11.3994c0 -1.7998 -1.39941 -3.2002 -3.2002 -3.2002h-45.6992c-1.80078 0 -3.2002 1.5 -3.2002 3.2002v71.0996c0 1.7998 1.5 3.2002 3.2002 3.2002h45.6992zM448 334.3v-285.3
+c-0.0996094 -44.7998 -36.7998 -81.0996 -81.7002 -81h-285.3c-44.7998 0.0996094 -81.0996 36.9004 -81 81.7002v285.3c0.0996094 44.7998 36.9004 81.0996 81.7002 81h285.3c44.7998 -0.0996094 81.0996 -36.7998 81 -81.7002zM386.4 211.7
+c0 73 -73.2002 132.399 -163.101 132.399c-89.8994 0 -163.1 -59.3994 -163.1 -132.399c0 -65.4004 58 -120.2 136.399 -130.601c19.1006 -4.09961 16.9004 -11.0996 12.6006 -36.7998c-0.700195 -4.09961 -3.2998 -16.0996 14.0996 -8.7998
+c17.4004 7.2998 93.9004 55.2998 128.2 94.7002c23.5996 26 34.9004 52.2998 34.9004 81.5z" />
+ <glyph glyph-name="lyft" unicode="" horiz-adv-x="512"
+d="M0 366.9h77.7998v-208.7c0 -33.1006 15 -52.7998 27.2002 -61c-12.7002 -11.1006 -51.2002 -20.9004 -80.2002 2.7998c-17 14 -24.7998 37.2998 -24.7998 59v207.9zM485.9 193.4c0 -14.2002 11.5996 -25.9004 26.0996 -25.9004v-76.5
+c-56.7002 0 -102.7 46.0996 -102.7 102.7v77.0996c0 34.6006 -52.2002 34.6006 -52.2002 0v-23.2998h38.8008v-76.7998h-38.8008v-6.7002c0 -21.7998 -7.69922 -45 -24.7998 -59c-16.2998 -13.7002 -35.7002 -16.2998 -51.7002 -14v179.2
+c0 56.7002 46.1006 102.7 102.7 102.7c49.1006 0 90.2002 -34.4004 100.3 -80.7002h26.1006v-76.7998h-23.7998v-22zM191.6 292.4v0.5h77.1006v-178.2c0 -52.4004 -29.7002 -91.7002 -76.7998 -100.8c-26.1006 -5.10059 -52.5 -2.80078 -77.6006 4.69922v70.3008
+c9.7998 -4.2002 29.5 -9.40039 45 -7.80078c20.4004 2 32.7998 11.9004 34.9004 25.3008c0 0 -21.2002 -20.4004 -58.2002 -10.6006c-37 9.90039 -45 40.1006 -45 63.9004v132.7h76.7998v-113c0 -15.4004 23.7998 -15.4004 23.7998 0v113z" />
+ <glyph glyph-name="magento" unicode=""
+d="M445.7 320.1v-256.1l-63.4004 -36.5v255.8l-158.5 91.6006l-158.6 -91.6006l0.399414 -255.899l-63.2998 36.5996v255.9l221.9 128.1zM255.6 27.5v255.9l63.4004 -36.6006v-256l-95.0996 -54.8994l-94.9004 54.8994l-0.0996094 255.9l63.2998 36.5996v-256
+l31.7998 -18.2002z" />
+ <glyph glyph-name="medapps" unicode="" horiz-adv-x="320"
+d="M118.3 209.6c3.5 12.5 6.90039 33.6006 13.2002 33.6006c8.2998 -1.7998 9.59961 -23.4004 18.5996 -36.6006c4.60059 23.5 5.30078 85.1006 14.1006 86.7002c9 0.700195 19.7002 -66.5 22 -77.5c9.89941 -4.09961 48.8994 -6.59961 48.8994 -6.59961
+c1.90039 -7.2998 -24 -7.60059 -40 -7.7998c-4.59961 -14.8008 -5.39941 -27.7002 -11.3994 -28c-4.7002 -0.200195 -8.2002 28.7998 -17.5 49.5996l-9.40039 -65.5c-4.39941 -13 -15.5 22.5 -21.8994 39.2998c-3.30078 0.100586 -62.4004 1.60059 -47.6006 7.7998zM228 0
+h-136c-21.2002 0 -21.2002 32 0 32h136c21.2002 0 21.2002 -32 0 -32zM204 -64h-88c-21.2002 0 -21.2002 32 0 32h88c21.2002 0 21.2002 -32 0 -32zM238.2 77.5c-3.60059 -21.2998 -36 -15.5 -32.6006 5.09961c3.60059 21.2002 5.60059 40.6006 15.3008 58.6006
+c32.5996 60.2998 66.0996 95.5 66.0996 151.6c0 67.9004 -57 123.2 -127 123.2s-127 -55.2998 -127 -123.2c0 -56.0996 33.5 -91.2998 66.0996 -151.7c9.7002 -17.8994 11.7002 -36.8994 15.3008 -58.5996c3.5 -20.7998 -29.1006 -26.0996 -32.6006 -5.09961
+c-3.2002 19.0996 -5.2002 36.3994 -11.8994 48.8994c-8 14.7002 -16.1006 28.1006 -24 41c-24.6006 40.4004 -45.9004 75.2998 -45.9004 125.5c0 85.6006 71.7998 155.2 160 155.2s160 -69.5996 160 -155.2c0 -50.2998 -21.2998 -85.0996 -45.9004 -125.5
+c-7.89941 -12.8994 -16.0996 -26.2998 -24 -41c-6.69922 -12.3994 -8.69922 -29.8994 -11.8994 -48.7998z" />
+ <glyph glyph-name="medium-m" unicode="" horiz-adv-x="512"
+d="M71.5 305.7c0.599609 5.89941 -1.7002 11.7998 -6.09961 15.7998l-45.1006 54.4004v8.09961h140.2l108.4 -237.7l95.2998 237.7h133.7v-8.09961l-38.6006 -37c-3.2998 -2.5 -5 -6.7002 -4.2998 -10.8008v-272c-0.700195 -4.09961 1 -8.2998 4.2998 -10.7998l37.7002 -37
+v-8.09961h-189.7v8.09961l39.1006 37.9004c3.7998 3.7998 3.7998 5 3.7998 10.7998v219.8l-108.7 -275.899h-14.7002l-126.399 275.899v-184.899c-1.10059 -7.80078 1.5 -15.6006 7 -21.2002l50.7998 -61.6006v-8.09961h-144v8l50.7998 61.7002
+c5.40039 5.59961 7.90039 13.5 6.5 21.2002v213.8z" />
+ <glyph glyph-name="medrt" unicode="" horiz-adv-x="544"
+d="M113.7 192c0 -121.8 83.8994 -222.8 193.5 -241.1c-18.7002 -4.5 -38.2002 -6.90039 -58.2002 -6.90039c-137.6 0 -249 111 -249 248s111.4 248 248.9 248c20.0996 0 39.5996 -2.40039 58.1992 -6.90039c-109.6 -18.2998 -193.399 -119.3 -193.399 -241.1zM411.1 91.7002
+c77.7002 55.3994 104.4 155.1 67 233.899c11.2002 -9.89941 21.5 -21.2998 30.5 -34.1992c61.6006 -88.3008 40.8008 -210.301 -46.5 -272.601c-87.2998 -62.2998 -208.1 -41.2002 -269.699 47c-9 12.7998 -16.2002 26.4004 -21.7002 40.5
+c60.7998 -62.0996 162.7 -70 240.399 -14.5996zM192.3 335.7c72.5 54.5996 171.601 45.7002 221.601 -19.7998c45.2998 -59.7002 34.3994 -145.601 -22.3008 -201.801c18.5 51.4004 11.3008 111 -24.3994 158c-43 56.5 -114.601 78.3008 -178.9 60.5
+c1.2998 1 2.60059 2.10059 4 3.10059zM296 224h40c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-40c-4.40039 0 -8 -3.59961 -8 -8v-40c0 -4.40039 -3.59961 -8 -8 -8h-48c-4.40039 0 -8 3.59961 -8 8v40c0 4.40039 -3.59961 8 -8 8h-40
+c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h40c4.40039 0 8 3.59961 8 8v40c0 4.40039 3.59961 8 8 8h48c4.40039 0 8 -3.59961 8 -8v-40c0 -4.40039 3.59961 -8 8 -8z" />
+ <glyph glyph-name="microsoft" unicode=""
+d="M0 416h214.6v-214.6h-214.6v214.6zM233.4 416h214.6v-214.6h-214.6v214.6zM0 182.6h214.6v-214.6h-214.6v214.6zM233.4 182.6h214.6v-214.6h-214.6v214.6z" />
+ <glyph glyph-name="mix" unicode=""
+d="M0 384h448v-204.1c0 -56.6006 -88 -59.9004 -88 0v23.7998c0 56.7998 -82.7002 59 -88 4.2998v-116.1c0 -58 -96 -57.9004 -96 0v175.3c0 56.8994 -80.0996 59.3994 -88 6.5v-238.601c0 -58.0996 -88 -56.1992 -88 0v348.9z" />
+ <glyph glyph-name="mizuni" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111.1 248 -248c0 -137 -111 -248 -248 -248s-248 111 -248 248c0 136.9 111 248 248 248zM168 88.0996v223.9c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-272.1c21.2002 20.8994 48.5996 37.5996 80 48.1992zM288 98v214
+c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-214c13 2 26.4004 3.09961 40.2002 3.09961c13.5996 0 26.8994 -1.09961 39.7998 -3.09961zM408 40.2998v271.7c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-223.7c31.4004 -10.5996 58.7998 -27.2002 80 -48z
+" />
+ <glyph glyph-name="monero" unicode="" horiz-adv-x="496"
+d="M352 64h108.4c-43.4004 -71.9004 -122.301 -120 -212.4 -120s-169 48.0996 -212.4 120h108.4v127.8l104 -104.8l104 105v-128zM88 112h-74.7998c-8.60059 25.0996 -13.2002 52 -13.2002 80c0 137 111 248 248 248s248 -111 248 -248c0 -28 -4.7002 -54.9004 -13.2002 -80
+h-74.7998v208l-160.6 -159.4l-159.4 159.4v-208z" />
+ <glyph glyph-name="napster" unicode="" horiz-adv-x="496"
+d="M298.3 74.4004c-14.2002 -13.6006 -31.2998 -24.1006 -50.3994 -30.5c-19 6.39941 -36.2002 16.8994 -50.3008 30.5h100.7zM342.3 274c-56.3994 39.7998 -132.1 39.9004 -188.899 -0.0996094c-19.9004 16.7998 -43.6006 29.5 -69.5 36.3994v-161.6
+c0 -217.3 328 -219.101 328 0.299805v161.2c-26 -7 -49.6006 -19.2998 -69.6006 -36.2002zM133.5 332.5c6.5 -3.2002 14.0996 -7.40039 20.4004 -11.4004c58.6992 30.5 129.199 30.6006 187.899 0.100586c6.7002 4.2002 13.5 8 20.6006 11.5
+c-64.6006 59.8994 -164.5 59.7998 -228.9 -0.200195zM43.7998 354.8c17.5 -0.5 34.2998 -3.09961 50.6006 -7.5c82 91.6006 225.5 91.6006 307.5 0.100586c16.0996 4.39941 32.7998 6.89941 50.0996 7.39941v-69.2002c58.7002 -36.5 58.5 -121.899 -0.200195 -158.199
+l-0.299805 -1.7002c-25.9004 -238.8 -381.2 -243.601 -407.6 1.5c-58.5 37.2002 -58.5 121.8 -0.100586 158.3v69.2998zM259.2 96c13.0996 59.2998 33.5 56 113 55.4004c-0.799805 -8.2002 0.0996094 -32.3008 -26.2002 -47.4004c-4.40039 -2.5 -15.2998 -6 -25.5 -6.5
+c-25.2998 -1.2002 -61.2998 -1.5 -61.2998 -1.5zM123.7 151.3c79.2998 0.700195 99.7998 4 113 -55.3994c0 0 -36 0.399414 -61.2998 1.5c-10.3008 0.5 -21.1006 4 -25.5 6.5c-26.3008 15.0996 -25.4004 39.1992 -26.2002 47.3994zM292.8 27.9004
+c3 -4.90039 3.2002 -8.80078 3.2998 -8.90039c-29.0996 -17.5996 -67.0996 -17.5996 -96.1992 0c0 0 0.899414 5.5 3.69922 9.59961c3.5 5.10059 6.40039 6.60059 6.40039 6.60059c23.7002 -6.90039 51.0996 -7.2998 75.9004 0c0 0 3.69922 -2 6.89941 -7.2998z" />
+ <glyph glyph-name="node-js" unicode=""
+d="M224 -60c-6.7002 0 -13.5 1.7998 -19.4004 5.2002l-61.6992 36.5c-9.2002 5.2002 -4.7002 7 -1.7002 8c12.2998 4.2998 14.7998 5.2002 27.8994 12.7002c1.40039 0.799805 3.2002 0.5 4.60059 -0.400391l47.3994 -28.0996c1.7002 -1 4.10059 -1 5.7002 0l184.7 106.6
+c1.7002 1 2.7998 3 2.7998 5v213.2c0 2.09961 -1.09961 4 -2.89941 5.09961l-184.601 106.5c-1.7002 1 -4 1 -5.7002 0l-184.5 -106.6c-1.7998 -1 -2.89941 -3 -2.89941 -5.10059v-213.1c0 -2 1.09961 -4 2.89941 -4.90039l50.6006 -29.1992
+c27.5 -13.7002 44.2998 2.39941 44.2998 18.6992v210.4c0 3 2.40039 5.2998 5.40039 5.2998h23.3994c2.90039 0 5.40039 -2.2998 5.40039 -5.2998v-210.5c0 -36.5996 -20 -57.5996 -54.7002 -57.5996c-10.7002 0 -19.0996 0 -42.5 11.5996l-48.4004 27.9004
+c-12 6.89941 -19.3994 19.7998 -19.3994 33.6992v213.101c0 13.7998 7.39941 26.7998 19.3994 33.7002l184.5 106.6c11.7002 6.59961 27.2002 6.59961 38.8008 0l184.699 -106.7c12 -6.89941 19.4004 -19.7998 19.4004 -33.7002v-213.1
+c0 -13.7998 -7.40039 -26.7002 -19.4004 -33.7002l-184.699 -106.6c-5.90039 -3.40039 -12.6006 -5.2002 -19.4004 -5.2002zM373.1 150.1c0 -40.1992 -33.5996 -63.2998 -92 -63.3994c-80.8994 0 -97.7998 37.0996 -97.7998 68.2002c0 2.89941 2.2998 5.2998 5.2998 5.2998
+h23.9004c2.7002 0 4.90039 -1.90039 5.2998 -4.5c3.60059 -24.2998 14.2998 -36.6006 63.2002 -36.6006c38.9004 0 55.5 8.80078 55.5 29.4004c0 11.9004 -4.7002 20.7998 -65.2002 26.7002c-50.5 5 -81.7998 16.2002 -81.7998 56.5996c0 37.2998 31.4004 59.5 84.0996 59.5
+c59.2002 0 88.5 -20.5 92.2002 -64.5996c0.100586 -1.5 -0.399414 -3 -1.39941 -4.10059c-1 -1.09961 -2.40039 -1.69922 -3.90039 -1.69922h-24c-2.5 0 -4.7002 1.7998 -5.2002 4.19922c-5.7998 25.6006 -19.7998 33.8008 -57.7002 33.8008
+c-42.5 0 -47.3994 -14.8008 -47.3994 -25.9004c0 -13.4004 5.7998 -17.2998 63.2002 -24.9004c56.6992 -7.5 83.6992 -18.0996 83.6992 -58z" />
+ <glyph glyph-name="npm" unicode="" horiz-adv-x="576"
+d="M288 160h-32v64h32v-64zM576 288v-192h-288v-32h-128v32h-160v192h576zM160 256h-128v-128h64v96h32v-96h32v128zM320 256h-128v-160h64v32h64v128zM544 256h-192v-128h64v96h32v-96h32v96h32v-96h32v128z" />
+ <glyph glyph-name="ns8" unicode="" horiz-adv-x="640"
+d="M187.1 288.1h44.9004l-48.5 -160.1h-56.9004l-50.5996 106.5l-31.0996 -106.5h-44.9004l49 160.1h49.4004l54.5 -113.699zM639.6 289c4.60059 -28.5996 -36.0996 -44.7002 -65.6992 -50.5996h-0.100586c17.5 -29.3008 22.1006 -69.3008 3.40039 -105.5
+c-26.4004 -51.2002 -86.5 -79.9004 -135.101 -68c-29.3994 7.19922 -51.3994 29 -56.7998 59.5c-0.700195 3.5 -1 7.09961 -1.2002 10.7998c-5.5 -2.7998 -11.8994 -4.2002 -18.5 -4.90039c-15.5996 -1.7002 -21 -2.2998 -160.899 -2.2998l11.5996 39.5h126.8
+c9.10059 0 12.2002 3.2002 13.8008 7.40039c1.69922 4.59961 3.39941 10.1992 4.5 14.5996c1.09961 3.90039 0.0996094 6.59961 -7.7002 6.59961h-87.2998c-33.4004 0 -38.2002 9.2002 -32.8008 28.6006c3.2002 11.5 10.8008 37.2002 17.6006 47.0996
+c7.09961 10.2002 18.2998 13.7002 30.5996 15c15.6006 1.7002 20.4004 1.2002 160.101 1.2002l-9.7002 -31.5h-133.5c-5.5 0 -11.2002 -0.700195 -13.2998 -7.09961c-1.80078 -5.40039 -2.10059 -6.7002 -3.7002 -12.2002c-1.40039 -5.10059 2.2002 -7.40039 11.5 -7.40039
+h87.5996c20.4004 0 31 -6.7998 34 -16.5996c19.9004 21.3994 50.4004 39.5 94.2002 48.2002v0.0996094c-13.4004 42.5 43.9004 66.5996 88.5 58.7998c18.2002 -3.2002 39.2002 -13.2998 42.0996 -31.2998zM530.7 184.3c3.09961 15.7998 -0.5 33.7002 -7.2002 47.7998
+c-23.2998 -2.89941 -52.2998 -10.0996 -68.5 -26.8994c-24.4004 -25.2998 -16.7998 -60 14.0996 -64.7998c25 -3.90039 55.7002 14.3994 61.6006 43.8994zM552.5 267.4c10.5996 1.5 23.5 3.5 34.2002 9.59961c14.7998 8.5 10.3994 21 -4.90039 24.4004
+c-10.8994 2.39941 -25.0996 -0.5 -31.7998 -7.7002c-7.2998 -7.7998 -1.7002 -20.2998 2.5 -26.2998z" />
+ <glyph glyph-name="nutritionix" unicode="" horiz-adv-x="400"
+d="M88 439.9c0 0 133.4 8.19922 121 -104.4c0 0 19.0996 74.9004 103 40.5996c0 0 -17.7002 -74 -88 -56c0 0 14.5996 54.6006 66.0996 56.6006c0 0 -39.8994 10.2998 -82.0996 -48.7998c0 0 -19.7998 94.5 -93.5996 99.6992c0 0 75.1992 -19.3994 77.5996 -107.5
+c0 -0.0996094 -106.4 -7 -104 119.801zM400 124.3c0 -48.5 -9.7002 -95.2998 -32 -132.3c-42.2002 -30.9004 -105 -48 -168 -48c-62.9004 0 -125.8 17.0996 -168 48c-22.2998 37 -32 83.7998 -32 132.3c0 48.4004 17.7002 94.7002 40 131.7
+c42.2002 30.9004 97.0996 48.5996 160 48.5996c63 0 117.8 -17.5996 160 -48.5996c22.2998 -37 40 -83.2998 40 -131.7zM120 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM120 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
+s12.5 -28 28 -28s28 12.5 28 28zM120 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM192 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM192 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
+s12.5 -28 28 -28s28 12.5 28 28zM192 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM264 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM264 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
+s12.5 -28 28 -28s28 12.5 28 28zM264 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM336 20c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM336 86.2002c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28
+s12.5 -28 28 -28s28 12.5 28 28zM336 152.4c0 15.5 -12.5 28 -28 28s-28 -12.5 -28 -28s12.5 -28 28 -28s28 12.5 28 28zM360 192c-4.7998 22.2998 -7.40039 36.9004 -16 56c-38.7998 19.9004 -90.5 32 -144 32s-105.2 -12.0996 -144 -32
+c-8.7998 -19.5 -11.2002 -33.9004 -16 -56c42.2002 7.90039 98.7002 14.7998 160 14.7998s117.8 -6.89941 160 -14.7998z" />
+ <glyph glyph-name="page4" unicode="" horiz-adv-x="496"
+d="M248 -56c-137 0 -248 111 -248 248s111 248 248 248c20.9004 0 41.2998 -2.59961 60.7002 -7.5l-266.4 -376.5h205.7v-112zM248 87.5996h-149.4l149.4 213.601v-213.601zM344 56h111.4c-26.9004 -41 -65.7002 -73.5 -111.4 -92.7002v92.7002zM401.4 194.2v-16.7002
+l-21.2002 8.2998zM381.1 139.7c5.90039 0 8.2002 -4.7002 8.2002 -10.6006v-10h-16.2002v7.7002c0 6.60059 1.30078 12.9004 8 12.9004zM496 192c0 -37.2998 -8.2002 -72.7002 -23 -104.4h-129v333.101c89.2998 -37.5 152 -125.8 152 -228.7zM360.4 304.4h68.1992v47.5996
+h-13.8994v-32.5996h-13.9004v29.5996h-13.8994v-29.5996h-12.7002v32.5996h-13.9004v-47.5996h0.100586zM428.5 119.1h-26.5v11c0 15.4004 -5.59961 25.2002 -20.9004 25.2002c-15.3994 0 -20.6992 -10.5996 -20.6992 -25.8994v-25.3008h68.1992v15h-0.0996094zM428.5 222.1
+l-68.2002 -29.6992v-12.4004l68.2002 -29.5v16.5996l-14.4004 5.7002v26.5l14.4004 5.90039v16.8994zM423.7 290.6h-35.6006v-26.5996h13.9004v12.2002h11c8.59961 -15.7998 1.2998 -35.2998 -18.5996 -35.2998c-22.5 0 -28.3008 25.2998 -15.5 37.6992l-11.6006 10.6006
+c-16.2002 -17.5 -12.2002 -63.9004 27.1006 -63.9004c34 0 44.6992 35.9004 29.2998 65.2998z" />
+ <glyph glyph-name="palfed" unicode="" horiz-adv-x="576"
+d="M384.9 254.1c0.0996094 -53.3994 -46.5 -96.1992 -83.3008 -96.1992c-12.5 0 -14.3994 3.39941 -15.0996 6.19922c0.5 39.1006 1.7002 80.4004 3 119.801c40.2002 14.3994 95.4004 17.5996 95.4004 -29.8008zM190.4 181.9
+c-0.200195 0.599609 -0.400391 2.09961 -0.600586 4.59961c0 25.5996 37 60.9004 58.5 75.9004c-1.2002 -36.4004 -5.5 -198.101 -1.39941 -242.5c3 -32.3008 26.7998 -32.9004 36.3994 -22.3008c5.90039 6.60059 5.5 15.7002 5.2998 19.1006v0.200195
+c-1.7998 25.5996 -2.7998 60.5996 -2.69922 100c60.7998 -14.4004 140.1 60.2998 140.1 138.199c0 71 -63 94.2002 -135.2 72c-2.89941 14.6006 -18.2998 20.1006 -29.5 11.1006c-7.5 -6.2002 -9.5 -15.7998 -10.5 -28.2002c-57.7998 -30.9004 -100.7 -84.5 -100.7 -126.5
+c0 -24.9004 15.6006 -43 37.1006 -43c35.0996 0 41 44.0996 14.3994 44.0996c-4.69922 0 -11 -2.69922 -11.1992 -2.69922zM8 266.9c0 38.5996 38.4004 37.3994 38.4004 37.3994h29c15.5 70.1006 120.5 74.2998 120.5 74.2998h28.0996v19.1006
+c0 18.3994 21.0996 18.3994 21.0996 18.3994h85.8008c18.3994 0 21.0996 -18.3994 21.0996 -18.3994v-19.1006h28c89.2002 0 112.1 -48.6992 119.4 -74.2998h30.0996c38.5 0 38.4004 -37.3994 38.4004 -37.3994c0 -38.6006 -38.4004 -37.4004 -38.4004 -37.4004h-30
+l-22.4004 -217.2c0 -43.8994 -44.6992 -44.2998 -44.6992 -44.2998h-288.9c-44.7002 0 -44.7002 44.2998 -44.7002 44.2998l-22.3994 217.2h-30c-38.5 0 -38.4004 37.4004 -38.4004 37.4004z" />
+ <glyph glyph-name="patreon" unicode="" horiz-adv-x="512"
+d="M512 253.2c0 -101.3 -82.4004 -183.8 -183.8 -183.8c-101.7 0 -184.4 82.3994 -184.4 183.8c0 101.6 82.7002 184.3 184.4 184.3c101.399 0 183.8 -82.7002 183.8 -184.3zM0 -53.5v491h90v-491h-90z" />
+ <glyph glyph-name="periscope" unicode=""
+d="M370 384.4c38.4004 -40.7002 59.5 -94.3008 59.5 -150.801c0 -74.2998 -57.4004 -159.5 -82 -192.6c-8 -10.7998 -79.2998 -105 -120.9 -105c-34 0 -88.7998 56.5 -125.399 104.9c-24.9004 32.8994 -82.7002 117.6 -82.7002 192.699c0 118.2 93.4004 214.4 208.1 214.4
+c53.9004 0 104.801 -22.5996 143.4 -63.5996zM226.6 -45.9004c37.3008 0 184.801 167.301 184.7 279.4c0 107.3 -83.8994 196.3 -184.7 196.3c-106.1 0 -190 -88.8994 -190 -196.3c0 -112.1 147.5 -279.4 190 -279.4zM338 241.2c0 -59.1006 -51.0996 -109.7 -110.8 -109.7
+c-100.601 0 -150.7 108.2 -92.9004 181.8v-0.399414c0 -24.5 20.1006 -44.4004 44.7998 -44.4004c24.7002 0 44.8008 19.9004 44.8008 44.4004c0 18.1992 -11.1006 33.7998 -26.9004 40.6992c76.5996 19.2002 141 -39.2998 141 -112.399z" />
+ <glyph glyph-name="phabricator" unicode="" horiz-adv-x="496"
+d="M323 185.9c0 0 21.5996 -19.6006 20.9004 -20.7002l-8.10059 -19.7998c-0.5 -1.40039 -29.7002 -0.5 -29.7002 -0.5l-9.09961 -9.10059s1.59961 -31.5 0.200195 -32.0996l-20 -7.5c-1.2998 -0.5 -21.7998 23.2998 -21.7998 23.2998l-13.1006 0.200195
+s-19.2998 -24.1006 -20.7002 -23.5l-20.0996 8.2998c-1.40039 0.5 -1.2002 32.2998 -1.2002 32.2998l-9.39941 9.2998s-28.9004 -0.899414 -29.5 0.5l-9.5 20c-0.600586 1.40039 21.0996 21.2002 21.0996 21.2002l-0.0996094 12.9004s-21.6006 19.5996 -21 21
+l8.09961 19.7998c0.5 1.2998 29.7002 0.400391 29.7002 0.400391l9.09961 9.09961s-1.59961 28.4004 -0.200195 28.9004l20 8.2998c1.40039 0.599609 21.9004 -20.7998 21.9004 -20.7998l13.0996 -0.200195s19.3008 21.5996 20.7002 21l20.1006 -9.2002
+c1.39941 -0.599609 1.19922 -29.0996 1.19922 -29.0996l9.40039 -9.30078s28.9004 0.900391 29.5 -0.5l9.5 -20c0.599609 -1.39941 -21.0996 -21.1992 -21.0996 -21.1992zM278.1 194.6c-0.699219 17 -15.5 30.3008 -32.7998 29.5
+c-17.2998 -0.699219 -30.7998 -15.1992 -30.0996 -32.2998c0.700195 -17.0996 15.5 -30.3994 32.7998 -29.5996s30.7998 15.2998 30.0996 32.3994zM479.3 232.5c22.2998 -22.2998 22.2998 -58.7002 0 -81c-67.3994 -67.4004 -44.2998 -44.4004 -95.2998 -95.2998
+c-74.4004 -74.5 -194.7 -74.9004 -269.8 -1.60059l-0.100586 -0.0996094c-51 51 -27.5 27.5996 -97.3994 97c-22.2998 22.2998 -22.2998 58.7002 0 81c67.8994 67.4004 44.7998 44.2998 95.7002 95.2998c74.3994 74.4004 194.699 74.9004 269.8 1.60059l0.0996094 0.0996094
+zM140.4 84.2002c59.5996 -59.5 156 -59.6006 215.6 -0.100586c59.5996 59.6006 59.5 156.101 0 215.601c-59.5996 59.5 -156.1 59.5996 -215.6 0c-59.6006 -59.5 -59.6006 -156 0 -215.5z" />
+ <glyph glyph-name="phoenix-framework" unicode="" horiz-adv-x="640"
+d="M212.9 103.7c-36.7002 -1.2002 -108.7 29.2998 -127.7 106.399c-8.7002 35.3008 -2.7002 51.8008 -8 86.1006c-8.2002 53.3994 -32.1006 72.2002 -55.9004 76.5c-6.2002 1.09961 -12.3994 1.2998 -18.7002 0.299805
+c-0.799805 -0.0996094 -1.59961 -0.200195 -2.39941 -0.200195c-0.100586 0.200195 -0.100586 0.299805 -0.200195 0.5c0.700195 0.600586 1.40039 1.2002 2.2002 1.7998c36.8994 26.9004 92 38.4004 136.3 35c123.6 -9.5 141.3 -156.6 252.5 -173.1
+c6.09961 -0.900391 12.2998 -1.09961 18.5 -1.7002c0.700195 -0.0996094 1.40039 -0.0996094 2.5 -0.200195c-2.09961 -2.19922 -21.5996 -11.7998 -36.5 -14.5c-18.4004 -3.39941 -35.7002 -0.0996094 -51.2998 10.3008c-14.5 9.7998 -24.5 23.5 -38.9004 27.3994
+c-13 3.60059 -34.0996 1.7002 -35.8994 -19.5996c-1.30078 -15.9004 14.1992 -51.7998 51.7998 -74.6006c40.3994 -24.5 101.399 -26.8994 134.7 -14.7998c0.299805 0.100586 0.699219 0.200195 1.09961 0.299805c0.200195 0.100586 0.400391 0 1 -0.0996094
+c-23.5996 -28.4004 -71.2002 -49.9004 -108.2 -45.4004c-50.3994 6.2002 -77.7002 75.9004 -113.7 97.5c-19.0996 11.5 -49.0996 7 -52 -18.5c-1.09961 -10 2.10059 -19 6.40039 -27.5996c24.4004 -48.5996 65.5996 -47 68 -49.5996
+c-2.7998 -0.800781 -21.7998 -2.10059 -25.5996 -2.2002zM75.2998 383.1c13.1006 -14.5 34.2002 -7.89941 35.2998 6.80078c-12.3994 -0.700195 -24.5 -2.2002 -36.5996 -4.80078c0.400391 -0.799805 0.400391 -1 1.2998 -2zM272.2 32.5996
+c-42.7998 -1.19922 -92 26.7002 -123.5 61.4004c-4.60059 5 -16.7998 20.2002 -18.6006 23.4004l0.400391 0.399414c6.59961 -4.09961 25.7002 -18.5996 54.7998 -27c24.2002 -7 48.1006 -6.2998 71.6006 3.2998c22.6992 9.30078 41 0.5 43.0996 -2.89941
+c-18.5 -3.7998 -20.0996 -4.40039 -24 -7.90039c-5.09961 -4.39941 -4.59961 -11.7002 7 -17.2002c26.2002 -12.3994 63 2.80078 97.2002 -25.3994c2.39941 -2 8.09961 -7.7998 10.0996 -10.7002c-0.0996094 -0.200195 -0.299805 -0.299805 -0.399414 -0.5
+c-4.80078 1.5 -16.4004 7.5 -40.2002 9.2998c-24.7002 2 -46.2998 -5.2998 -77.5 -6.2002zM447 284.6c16.4004 5.2002 41.2998 13.4004 66.5 3.30078c16.0996 -6.5 26.2002 -18.7002 32.0996 -34.6006c3.5 -9.39941 5.10059 -19.7002 5.10059 -28.7002
+c-0.200195 0 -0.400391 0 -0.600586 -0.0996094c-0.199219 0.400391 -0.399414 0.900391 -0.5 1.2998c-5 22 -29.8994 43.7998 -67.5996 29.9004c-50.2002 -18.6006 -130.4 -9.7002 -176.9 48c-0.699219 0.899414 -2.39941 1.7002 -1.2998 3.2002
+c0.100586 0.199219 2.10059 -0.600586 3 -1.30078c18.1006 -13.3994 38.2998 -21.8994 60.2998 -26.1992c30.5 -6.10059 54.6006 -2.90039 79.9004 5.19922zM549.7 167.1c-32.4004 -0.199219 -33.7998 -50.0996 -103.601 -64.3994
+c-18.1992 -3.7002 -38.6992 -4.60059 -44.8994 -4.2002v0.400391c2.7998 1.5 14.7002 2.59961 29.7002 16.5996c7.89941 7.2998 15.2998 15.0996 22.7998 22.9004c19.5 20.1992 41.3994 42.1992 81.8994 39c23.1006 -1.80078 29.3008 -8.2002 36.1006 -12.7002
+c0.299805 -0.200195 0.399414 -0.5 0.700195 -0.900391c-0.5 0 -0.700195 -0.0996094 -0.900391 0c-7 2.7002 -14.2998 3.2998 -21.7998 3.2998zM537.4 191.2c-0.100586 -0.200195 -0.100586 -0.400391 -0.200195 -0.600586c-28.9004 4.40039 -48 7.90039 -68.5 -4
+c-17 -9.89941 -31.4004 -20.5 -62 -24.3994c-27.1006 -3.40039 -45.1006 -2.40039 -66.1006 8c-0.299805 0.200195 -0.599609 0.399414 -1 0.599609c0 0.200195 0.100586 0.299805 0.100586 0.5c24.8994 -3.7998 36.3994 -5.09961 55.5 5.7998
+c22.2998 12.9004 40.0996 26.6006 71.2998 31c29.5996 4.10059 51.2998 -2.5 70.9004 -16.8994zM268.6 350.7c-0.599609 0.599609 -1.09961 1.2002 -2.09961 2.2998c7.59961 0 29.7002 1.2002 53.4004 -8.40039c19.6992 -8 32.1992 -21 50.1992 -32.8994
+c11.1006 -7.2998 23.4004 -9.2998 36.4004 -8.10059c4.2998 0.400391 8.5 1.2002 12.7998 1.7002c0.400391 0.100586 0.900391 0 1.5 -0.299805c-0.599609 -0.400391 -1.2002 -0.900391 -1.7998 -1.2002c-8.09961 -4 -16.7002 -6.2998 -25.5996 -7.09961
+c-26.1006 -2.60059 -50.3008 3.7002 -73.4004 15.3994c-19.2998 9.90039 -36.4004 22.9004 -51.4004 38.6006zM640 112.3c-3.5 -3.09961 -22.7002 -11.5996 -42.7002 -5.2998c-12.2998 3.90039 -19.5 14.9004 -31.5996 24.0996
+c-10 7.60059 -20.9004 7.90039 -28.1006 8.40039c0.600586 0.799805 0.900391 1.2002 1.2002 1.40039c14.7998 9.19922 30.5 12.1992 47.2998 6.5c12.5 -4.2002 19.2002 -13.5 30.4004 -24.2002c10.7998 -10.4004 21 -9.90039 23.0996 -10.5
+c0.100586 0.0996094 0.200195 0 0.400391 -0.400391zM427.5 -24.7002c2.2002 -1.2002 1.59961 -1.5 1.5 -2c-18.5 1.40039 -33.9004 7.60059 -46.7998 22.2002c-21.7998 24.7002 -41.7002 27.9004 -48.6006 29.7002c0.5 0.200195 0.800781 0.399414 1.10059 0.399414
+c13.0996 -0.0996094 26.0996 -0.699219 38.8994 -3.89941c25.3008 -6.40039 35 -25.4004 41.6006 -35.2998c3.2002 -4.80078 7.2998 -8.30078 12.2998 -11.1006z" />
+ <glyph glyph-name="playstation" unicode="" horiz-adv-x="576"
+d="M570.9 75.7002c-11.3008 -14.2002 -38.8008 -24.2998 -38.8008 -24.2998l-205.1 -73.6006v54.2998l150.9 53.8008c17.0996 6.09961 19.7998 14.7998 5.7998 19.3994c-13.9004 4.60059 -39.1006 3.2998 -56.2002 -2.89941l-100.5 -35.5v56.3994
+c23.2002 7.7998 47.0996 13.6006 75.7002 16.7998c40.8994 4.5 90.8994 -0.599609 130.2 -15.5c44.1992 -14 49.1992 -34.6992 38 -48.8994zM346.5 168.2v139c0 16.2998 -3 31.2998 -18.2998 35.5996c-11.7002 3.7998 -19 -7.09961 -19 -23.3994v-347.9l-93.7998 29.7998
+v414.7c39.8994 -7.40039 98 -24.9004 129.199 -35.4004c79.5 -27.2998 106.4 -61.2998 106.4 -137.8c0 -74.5 -46 -102.8 -104.5 -74.5996zM43.2002 37.7998c-45.4004 12.7998 -53 39.5 -32.2998 54.7998c19.0996 14.2002 51.6992 24.9004 51.6992 24.9004l134.5 47.7998
+v-54.5l-96.7998 -34.5996c-17.0996 -6.10059 -19.7002 -14.7998 -5.7998 -19.4004c13.9004 -4.59961 39.0996 -3.2998 56.2002 2.90039l46.3994 16.8994v-48.7998c-51.5996 -9.2998 -101.399 -7.2998 -153.899 10z" />
+ <glyph glyph-name="pushed" unicode="" horiz-adv-x="432"
+d="M407 336.1c21.7002 -1.89941 33.7998 -28 17.4004 -44.7998l-235.2 -231.3l-35.2998 -80.7998c-11 -17.2002 -41.2002 -14.2998 -47.7002 7l-105.101 348.3c-4.59961 18.2998 6.30078 33.9004 21.4004 36.5996l271.3 44.4004c17.9004 3.40039 39.1006 -13.5 28.7002 -37
+l-14 -33.4004zM297.6 394.4l-189 -31l177.4 -16.3008l16.7998 39.9004c2.2998 4.90039 -0.0996094 8.09961 -5.2002 7.40039zM22.7002 340.1l157.899 -244.3l96.9004 230.7l-248.7 22.7002c-5.09961 0.899414 -9.2002 -4 -6.09961 -9.10059zM136 -8.40039
+c0 0 28.2002 64.1006 35.2002 79.1006l-127.7 197.6l83.0996 -275.5c1.5 -4.2998 6.80078 -5.2002 9.40039 -1.2002zM408.8 306.1c3.10059 3.30078 1.40039 7.5 -2.59961 8.60059l-106.4 9.7002l-89.7002 -213.7z" />
+ <glyph glyph-name="python" unicode=""
+d="M439.8 247.5c10.7002 -42.9004 11.2002 -75.0996 0 -108.6c-10.7998 -32.5 -22.2998 -54.2002 -53.3994 -54.2002h-160.2v-13.6006h106.7v-40.6992c0 -30.8008 -26.5 -46.5 -53.4004 -54.3008c-40.5 -11.6992 -73 -9.89941 -106.8 0
+c-28.2002 8.30078 -53.4004 25.3008 -53.4004 54.3008v101.8c0 29.2998 24.2002 54.2998 53.4004 54.2998h106.8c35.5996 0 66.7998 31 66.7998 67.7998v47.4004h40.1006c31.0996 0 45.6992 -23.2998 53.3994 -54.2002zM286.2 44c-11 0 -20 -9 -20.1006 -20.2998
+c0 -11.2002 9.10059 -20.4004 20.1006 -20.4004c11.0996 0 20.0996 9.10059 20.0996 20.4004c0 11.2002 -9 20.2998 -20.0996 20.2998zM167.8 199.9c-36.2998 0 -66.7998 -31.1006 -66.7998 -66.4004v-48.7998h-36.7002c-31.0996 0 -49.2002 22.5996 -56.7998 54.2002
+c-10.2002 42.5 -9.7998 67.8994 0 108.6c8.5 35.5 35.7002 54.2002 66.7998 54.2002h147v13.5996h-106.899v40.7002c0 30.9004 8.19922 47.5996 53.3994 55.5996c32.1006 5.7002 71 6 106.8 0.100586c29 -4.90039 53.4004 -26.6006 53.4004 -55.6006v-101.899
+c0 -29.7998 -23.7002 -54.2998 -53.4004 -54.2998h-106.8zM161.1 342.5c11.1006 0 20.1006 9.09961 20.1006 20.2998s-9.10059 20.4004 -20.1006 20.4004c-11.0996 0 -20 -9.10059 -20.0996 -20.4004c0 -11.2002 9 -20.2998 20.0996 -20.2998z" />
+ <glyph glyph-name="red-river" unicode=""
+d="M353.2 416c52.3994 0 94.7998 -42.4004 94.7998 -94.7998v-258.4c0 -52.3994 -42.4004 -94.7998 -94.7998 -94.7998h-258.4c-52.3994 0 -94.7998 42.4004 -94.7998 94.7998v258.4c0 52.3994 42.4004 94.7998 94.7998 94.7998h258.4zM144.9 247.1
+c-0.600586 12.4004 11.6992 24.6006 24 24h56.2998c27 0 48.8994 21.9004 48.8994 48.9004h-154.199c-13.2002 0 -23.9004 -10.7002 -23.9004 -23.9004v-154.199c27 0 48.9004 21.8994 48.9004 48.8994v56.2998zM321.2 175.1c27 0 48.8994 21.9004 48.8994 48.9004h-154.199
+c-13.2002 0 -23.9004 -10.7002 -23.9004 -23.9004v-154.199c27 0 48.9004 21.8994 48.9004 48.8994v56.2998c-0.600586 12.4004 11.6992 24.6006 24 24h56.2998z" />
+ <glyph glyph-name="wpressr" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM419.33 281.4c2.41016 5.47949 0.459961 8.2793 -5.62012 8.26953c-104.8 0.00976562 -107.69 -0.0302734 -130.78 0.0302734
+c-4.31934 0.00976562 -7.10938 -1.82031 -8.83984 -5.78027c-5.70996 -13.0996 -11.5195 -26.1504 -17.2998 -39.21c-2.57031 -5.7998 -1 -8.26953 5.26953 -8.26953c25.2607 0 50.5205 -0.0107422 75.7803 0.0195312
+c10.0303 0.00976562 8.54004 -13.6602 -3.89941 -13.6396c-26.4307 0.0498047 -52.8604 0 -79.29 0.0498047c-4.91016 0.00976562 -8.33008 -1.88965 -10.3506 -6.5c-4.2998 -9.83008 -32.1494 -73.0801 -32.1895 -73.1602
+c-3.2002 -7.16016 -16.2607 -6.09961 -11.2803 5.33008c8.26953 18.9902 16.6504 37.9297 24.9795 56.8896c2.25 5.11035 -0.0996094 8.74023 -5.65918 8.75c-15.21 0.0205078 -30.4307 -0.0400391 -45.6406 0.0400391
+c-3.35938 0.0107422 -5.41016 -1.29004 -6.76953 -4.38965c-31.4307 -71.8701 -29.7803 -67.3203 -30.0098 -67.6904c-3.87012 -6.37012 -14.8604 -3.34961 -10.9502 5.60059c5.66992 13.0098 11.3701 26.0098 17.0898 39c13.5703 30.7793 27.1396 61.5596 40.7402 92.3301
+c2.54004 5.75 -0.419922 10.5801 -6.66016 10.5898c-14.2402 0.0302734 -28.4805 -0.0498047 -42.7197 0.0498047c-4.26074 0.0302734 -6.84082 -1.76953 -8.54004 -5.65039c-12.8604 -29.3896 -25.8203 -58.7295 -38.75 -88.0791
+c-8.62012 -19.5605 -17.2305 -39.1201 -25.8906 -58.6602c-1.58008 -3.55078 -1.47949 -6.78027 1.20996 -9.73047c11.2207 -12.3096 22.4707 -24.6094 33.6807 -36.9395c2.08984 -2.30078 4.58984 -3.4502 7.71973 -3.4502c45.9395 0.0195312 91.8701 0.00976562 137.81 0
+c3.86035 0 6.37988 1.78027 7.91992 5.29004c10.3203 23.5 20.7607 46.9395 30.9502 70.5c2.08984 4.83008 5.21973 6.75 10.3398 6.71973c23.0205 -0.110352 46.0303 -0.0400391 69.0508 -0.0498047c6.0791 0 10.5293 2.72949 12.9697 8.24023
+c15.2598 34.4795 30.4502 68.9893 45.6299 103.5z" />
+ <glyph glyph-name="replyd" unicode=""
+d="M320 -32h-192c-70.4004 0 -128 57.5996 -128 128v192c0 70.4004 57.5996 128 128 128h192c70.4004 0 128 -57.5996 128 -128v-192c0 -70.4004 -57.5996 -128 -128 -128zM193.4 174.8c-6.10059 2 -11.6006 3.10059 -16.4004 3.10059
+c-7.2002 0 -13.5 -1.90039 -18.9004 -5.60059c-5.39941 -3.7002 -9.59961 -9 -12.7998 -15.7998h-1.09961l-4.2002 18.2998h-28v-138.899h36.0996v89.6992c1.5 5.40039 4.40039 9.80078 8.7002 13.2002c4.2998 3.40039 9.7998 5.10059 16.2002 5.10059
+c4.59961 0 9.7998 -1 15.5996 -3.10059zM308.6 71.4004c-3.19922 -2.40039 -7.69922 -4.80078 -13.6992 -7.10059s-12.8008 -3.5 -20.4004 -3.5c-12.2002 0 -21.0996 3 -26.5 8.90039c-5.5 5.89941 -8.5 14.7002 -9 26.3994h83.2998
+c0.900391 4.80078 1.60059 9.40039 2.10059 13.9004c0.5 4.40039 0.699219 8.59961 0.699219 12.5c0 10.7002 -1.59961 19.7002 -4.69922 26.9004c-3.2002 7.19922 -7.30078 13 -12.5 17.1992c-5.2002 4.30078 -11.1006 7.30078 -17.8008 9.2002
+c-6.69922 1.7998 -13.5 2.7998 -20.5996 2.7998c-21.0996 0 -37.5 -6.09961 -49.2002 -18.2998s-17.5 -30.5 -17.5 -55c0 -22.7998 5.2002 -40.7002 15.6006 -53.7002c10.3994 -13.0996 26.7998 -19.5996 49.1992 -19.5996c10.7002 0 20.9004 1.5 30.4004 4.59961
+c9.5 3.10059 17.0996 6.80078 22.5996 11.2002zM286.8 141.7c3.7998 -5.40039 5.2998 -13.1006 4.60059 -23.1006h-51.7002c0.899414 9.40039 3.7002 17 8.2002 22.6006c4.5 5.59961 11.5 8.5 21 8.5c8.19922 0.0996094 14.0996 -2.60059 17.8994 -8zM366.7 139.2
+c4.09961 -3.90039 9.39941 -5.7998 16.0996 -5.7998c7 0 12.6006 1.89941 16.7002 5.7998c4.09961 3.89941 6.09961 9.09961 6.09961 15.5996s-2 11.6006 -6.09961 15.4004s-9.59961 5.7002 -16.7002 5.7002c-6.7002 0 -12 -1.90039 -16.0996 -5.7002
+c-4.10059 -3.7998 -6.10059 -8.90039 -6.10059 -15.4004s2 -11.7002 6.10059 -15.5996zM366.7 38.7002c4.09961 -3.90039 9.39941 -5.7998 16.0996 -5.7998c7 0 12.6006 1.89941 16.7002 5.7998c4.09961 3.89941 6.09961 9.09961 6.09961 15.5996
+s-2 11.6006 -6.09961 15.4004s-9.59961 5.7002 -16.7002 5.7002c-6.7002 0 -12 -1.90039 -16.0996 -5.7002c-4.10059 -3.7998 -6.10059 -8.90039 -6.10059 -15.4004c0 -6.59961 2 -11.7002 6.10059 -15.5996z" />
+ <glyph glyph-name="resolving" unicode="" horiz-adv-x="496"
+d="M281.2 169.8l-197.9 -57.2002l-28.5996 98.6006l188.2 54.0996c52.6992 15.2998 65 8.10059 71.0996 -12.7998l11.2002 -39.2998c5.59961 -19.9004 2 -30.1006 -44 -43.4004zM248.5 440c137 0 248.5 -111.4 247.5 -247.7c0 -136.899 -111.5 -248.3 -248.5 -248.3
+c-46 0 -89.5 12.7002 -126.3 34.7002l-23 80.2002l286.8 -37.3008l48.0996 13.3008l-9.69922 34.1992l-220.4 27.1006l92.5996 26.5996c30.2002 8.7002 42 15.7998 61.4004 33.2002c24.5 23 31.7002 45.5 23.5 73.5996l-10.7002 37.8008
+c-8.7002 30.1992 -25.0996 49.0996 -61.3994 55.1992c-25.1006 3.5 -44.5 2 -79.3008 -8.19922l-221.899 -63.9004c26 108.8 124.2 189.5 241.3 189.5zM38.2998 59.4004c-24 38.3994 -38.2998 83.2998 -38.2998 131.8z" />
+ <glyph glyph-name="rocketchat" unicode="" horiz-adv-x="576"
+d="M486.41 340.43c119.649 -76.54 119.26 -221 0 -297.14c-77.1201 -50.9199 -179.37 -62.3896 -264.12 -47.1602c-95.5205 -91.1895 -201.72 -49.1602 -222.29 -37c0 0 73.0801 62.1006 61.21 116.49c-45.3896 46.3701 -86.5195 144.57 0 232.77
+c11.8701 54.3906 -61.21 116.49 -61.21 116.49c20.7695 12.1201 127.26 54.2803 222.29 -37.3799c84.9404 15.3301 187.19 3.75977 264.12 -47.0703zM294.18 43.7803c126.67 0 229.409 66.2197 229.409 148.22s-102.74 148.43 -229.41 148.43
+s-229.41 -66.4297 -229.41 -148.43c0 -35.79 19.4707 -68.5195 52 -94.1299c9.11426 -29.127 3.78125 -62.0234 -15.999 -98.6904c-0.889648 -1.67969 -1.76953 -3.45996 -2.76953 -5.23926c15.0498 1.33594 38.2158 7.93555 51.71 14.7295
+c11.0684 6.26562 27.46 18.5361 36.5898 27.3896l19.7705 19.0908c23.6396 -6.27734 62.6758 -11.3721 87.1348 -11.3721c0.269531 0 0.706055 0.000976562 0.974609 0.00195312zM184.119 156.7c-0.133789 -0.00195312 -0.351562 -0.00390625 -0.485352 -0.00390625
+c-18.6182 0 -33.9912 15.1084 -34.3145 33.7236c-0.700195 45.3896 67.8301 46.3799 68.5195 1.08984v-0.509766c0.000976562 -0.0888672 0.00195312 -0.232422 0.00195312 -0.321289c0 -18.6152 -15.1074 -33.8467 -33.7217 -33.999v0.0205078zM257.889 190.42
+c-0.790039 45.3896 67.7402 46.4805 68.5303 1.19043v-0.610352c0.389648 -45.0801 -67.7402 -45.5703 -68.5303 -0.580078zM401.269 156.7c-0.133789 -0.00195312 -0.350586 -0.00390625 -0.485352 -0.00390625c-18.6182 0 -33.9951 15.1084 -34.3242 33.7236
+c-0.69043 45.3896 67.8398 46.3799 68.5303 1.08984v-0.509766c0.000976562 -0.119141 0.00292969 -0.311523 0.00292969 -0.430664c0 -18.6152 -15.1084 -33.7979 -33.7236 -33.8896v0.0205078z" />
+ <glyph glyph-name="rockrms" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM405.4 20.5l-101.5 118.9s73.5996 0.199219 74.1992 0.199219c29.6006 -1.09961 46.6006 33.3008 27.6006 56.1006l-157.7 185.1c-13.2002 17.2998 -40.0996 18.4004 -54.5 0
+l-147.1 -172.5h90l84.2998 98.9004l84.5996 -99.2998h-75.2998c-30.5 0 -44.5 -35.7002 -26.5996 -56.1006l112 -131.3h90z" />
+ <glyph glyph-name="schlix" unicode=""
+d="M350.5 290.3l-54.2002 46.1006l73.4004 39l78.2998 -44.2002zM192 325.9l45.7002 28.1992l34.7002 -34.5996l-55.4004 -29zM126.9 319.3l31.8994 22.1006l17.2002 -28.4004l-36.7002 -22.5zM103.6 231.1l-8.7998 34.8008l29.6006 18.2998l13.0996 -35.2998z
+M82.4004 314.8l23.8994 18.1006l8.90039 -24l-26.7002 -18.3008zM59 241.5l-3.59961 28.4004l22.2998 15.5l6.09961 -28.7002zM28.4004 224.9l20.7998 12.7998l3.2998 -33.4004l-22.9004 -12zM1.40039 180l19.1992 10.2002l0.400391 -38.2002l-21 -8.7998zM60.5 120.7
+l-28.2998 -8.2998l-1.60059 46.7998l25.1006 10.7002zM99 184.8l-31.0996 -13l-5.2002 40.7998l27.3994 14.4004zM123.2 71l-41.6006 -5.90039l-8.09961 63.5l35.2002 10.8008zM151.7 210.9l21.2002 -57.1006l-46.2002 -13.5996l-13.7002 54.0996zM237.4 -19.5996
+l-70.9004 3.2998l-24.2998 95.7998l55.2002 8.59961zM152.5 260.1l42.2002 22.4004l28 -45.9004l-50.7998 -21.2998zM193.5 165.2l61.2998 18.7002l52.7998 -86.6006l-79.7998 -11.2998zM244.9 250.8l67.2998 28.7998l65.5 -65.3994l-88.6006 -26.2002z" />
+ <glyph glyph-name="searchengin" unicode="" horiz-adv-x="460"
+d="M220.6 317.7l-67.1992 -209.3v130.3l-54.7002 -24.2002l54.7002 190.3v-115.3zM137.4 414.4l-1.30078 -4.7002l-15.1992 -52.9004c-40.3008 -15.5 -68.9004 -54.5996 -68.9004 -100.3c0 -52.2998 34.2998 -95.9004 83.4004 -105.5v-53.5996
+c-77.9004 10.5 -135.4 78.1992 -135.4 159c0 80.5 59.7998 147.199 137.4 158zM448.8 -32.7998c-11.2002 -11.2002 -23.0996 -12.2998 -28.5996 -10.5c-5.40039 1.7998 -27.1006 19.8994 -60.4004 44.3994c-33.2998 24.6006 -33.5996 35.7002 -43 56.7002
+c-9.39941 20.9004 -30.3994 42.6006 -57.5 52.4004l-9.7002 14.7002c-24.6992 -16.9004 -53 -26.9004 -81.2998 -28.7002l2.10059 6.59961l15.8994 49.5c46.5 11.9004 80.9004 54 80.9004 104.2c0 54.5 -38.4004 102.1 -96 107.1v52.1006
+c83.2002 -5.10059 148.8 -74.5 148.8 -159.3c0 -33.6006 -11.2002 -64.7002 -29 -90.4004l14.5996 -9.59961c9.80078 -27.1006 31.5 -48 52.4004 -57.4004s32.2002 -9.7002 56.7998 -43c24.6006 -33.2002 42.7002 -54.9004 44.5 -60.2998
+c1.7998 -5.40039 0.700195 -17.2998 -10.5 -28.5zM438.9 -14.9004c0 4.40039 -3.60059 8 -8 8c-4.40039 0 -8 -3.59961 -8 -8c0 -4.39941 3.59961 -8 8 -8c4.39941 0 8 3.60059 8 8z" />
+ <glyph glyph-name="servicestack" unicode="" horiz-adv-x="496"
+d="M88 232c81.7002 -10.2002 273.7 -102.3 304 -232h-392c99.5 8.09961 184.5 137 88 232zM120 384c102.8 -15.5 335.3 -167.9 376 -384h-96c-26.2998 126.7 -150.7 216.7 -233.6 250.4c1.2998 49.6992 -14.1006 98 -46.4004 133.6z" />
+ <glyph glyph-name="sistrix" unicode=""
+d="M448 -1l-30.5 -31l-146 148.1c-28.7002 -23.6992 -65.2002 -37.8994 -105 -37.8994c-91.7998 0 -166.5 75.7998 -166.5 168.899c0 93.1006 74.7002 168.9 166.6 168.801c91.8008 0 166.5 -75.8008 166.5 -168.9c0 -37 -11.8994 -71.2998 -31.8994 -99.2002zM166.5 117.2
+c70.7002 0 128.1 58.2998 128.1 129.899c0 71.6006 -57.5 129.9 -128.1 129.9s-128.1 -58.2998 -128.1 -129.9c0 -71.5996 57.5 -129.899 128.1 -129.899z" />
+ <glyph glyph-name="slack-hash" unicode=""
+d="M446.2 177.6c6.2002 -19 -3.90039 -39.6992 -22.9004 -45.6992l-45.3994 -15.1006l15.6992 -47c6.10059 -19.0996 -3.89941 -39.7002 -23 -45.8994c-21.2998 -6.10059 -40.0996 6 -46 22.8994l-15.6992 47l-93.6006 -31.2998l15.7002 -47
+c6.09961 -19.0996 -3.90039 -39.7002 -23 -45.9004c-21.2998 -6.09961 -40.0996 6 -46 22.9004l-15.7002 47c-45.7002 -15.2002 -50.8994 -17.7998 -57.7002 -16.7998c-14.5 0.599609 -28.5996 10.0996 -33.5996 24.5996c-6.09961 19 4 39.7002 23 45.9004l45.4004 15.0996
+l-30.3008 90c-45.6992 -15.2002 -50.8994 -17.7998 -57.6992 -16.7998c-14.5 0.599609 -28.6006 10.0996 -33.6006 24.5996c-6.09961 19.1006 3.90039 39.7002 23 45.9004l45.2998 15l-15.6992 47c-6.10059 19.0996 3.89941 39.7002 23 45.9004
+c19.0996 6.19922 39.7998 -3.90039 46 -22.9004l15.6992 -47l93.4004 31.2002l-15.7002 47c-6.09961 19.0996 3.90039 39.7002 23 45.8994c19.1006 6.2002 39.7998 -3.89941 46 -22.8994l15.7002 -47l45.4004 15.0996c19.0996 6.2002 39.7998 -3.89941 46 -22.8994
+c6.09961 -19.1006 -3.90039 -39.7002 -23 -45.9004l-45.4004 -15.0996l30.2998 -90l45.4004 15.0996c19.0996 6.2002 39.7998 -3.90039 46 -22.9004zM192.1 130.4l93.5 31.2998l-30.2998 90.2002l-93.5 -31.3008z" />
+ <glyph glyph-name="speakap" unicode=""
+d="M64 56.2197c-79.4102 88.1904 -72 224.36 16.6396 304.141c88.6406 79.7793 224.801 73 304.21 -15.2402c79.4102 -88.2402 72 -224.36 -16.6396 -304.14c-18.7402 -16.8701 64 -43.0908 42 -52.2607c-82.0596 -34.21 -253.91 -35 -346.229 67.5h0.0195312z
+M277.31 267.82l38.5 40.8594c-9.60938 8.89062 -32 26.8301 -76.1699 27.6006c-52.3301 0.910156 -95.8594 -28.2998 -96.7695 -80c-0.200195 -11.3301 0.290039 -36.7207 29.4199 -54.8301c34.46 -21.4199 86.5195 -21.5098 86 -52.2598
+c-0.370117 -21.2803 -26.4199 -25.8105 -38.5898 -25.6006c-3 0.0498047 -30.2305 0.459961 -47.6104 24.6201l-40 -42.6104c28.1602 -27 59 -32.6191 83.4902 -33.0498c10.2295 -0.179688 96.4199 -0.330078 97.8398 81
+c0.280273 15.8105 -2.07031 39.7197 -28.8604 56.5898c-34.3594 21.6406 -85 19.4502 -84.4297 49.75c0.410156 23.25 31 25.3701 37.5303 25.2607c0.429688 0 26.6201 -0.260742 39.6201 -17.3701z" />
+ <glyph glyph-name="staylinked" unicode="" horiz-adv-x="440"
+d="M382.7 155.5l44.2998 -41.2998c3.7002 -3.5 3.2998 -9 -0.700195 -12.2002l-198 -163.9c-9.89941 -7.59961 -17.2998 -0.799805 -17.2998 -0.799805l-208.7 196.101c-3.5 3.5 -3 9 1.2002 12.1992l45.7998 34.9004c4.2002 3.2002 10.4004 3 13.9004 -0.5l151.899 -147.5
+c3.7002 -3.5 10 -3.7002 14.2002 -0.400391l93.2002 74c4.09961 3.2002 4.5 8.7002 0.900391 12.2002l-84 81.2998c-3.60059 3.5 -9.90039 3.7002 -14 0.5l-0.100586 -0.0996094c-4.09961 -3.2002 -10.3994 -3 -14 0.5l-68.0996 64.2998
+c-3.5 3.5 -3.10059 9 1.09961 12.2002l57.2998 43.5996c4.10059 3.2002 10.3008 3 13.8008 -0.5l170 -167.3zM437.2 238.9c3.7002 -3.5 3.39941 -9 -0.700195 -12.2002l-45.7998 -35.7998c-4.10059 -3.2002 -10.4004 -3 -14.1006 0.5l-160.399 159
+c-3.60059 3.5 -9.7998 3.69922 -13.9004 0.5l-92.2002 -71.5c-4.19922 -3.30078 -4.69922 -8.7002 -1.09961 -12.2002l94.5996 -91.7998c3.7002 -3.5 10 -3.60059 14.2002 -0.400391l0.100586 0.0996094c4.19922 3.2002 10.5996 3 14.1992 -0.5l57.1006 -54.3994
+c3.7002 -3.5 3.2998 -9 -0.900391 -12.2002l-7.7002 -6l0.300781 -0.299805l-50.2002 -38.7998c-4.2002 -3.30078 -10.6006 -3.10059 -14.2998 0.399414l-171.7 165.101l-42.2998 41.6992c-3.60059 3.5 -3 9 1.19922 12.2002l206.801 162.101
+c8.2998 6.59961 14.7998 2.2998 16.2998 1.09961z" />
+ <glyph glyph-name="steam-symbol" unicode=""
+d="M395.5 270.5c0 -33.7998 -27.5 -61 -61 -61c-33.7998 0 -61 27.2998 -61 61s27.2998 61 61 61c33.5 0 61 -27.2002 61 -61zM448 270.3c0 -63 -51 -113.8 -113.7 -113.8l-109.3 -79.7998c-4 -43 -40.5 -76.7998 -84.5 -76.7998c-40.5 0 -74.7002 28.7998 -83 67
+l-57.5 23.0996v107.3l97.2002 -39.2998c15.0996 9.2002 32.2002 13.2998 52 11.5l71 101.7c0.5 62.2998 51.5 112.8 114 112.8c62.7998 0 113.8 -51 113.8 -113.7zM203 85c0 34.7002 -27.7998 62.5 -62.5 62.5c-4.5 0 -9 -0.5 -13.5 -1.5l26 -10.5
+c25.5 -10.2002 38 -39 27.7002 -64.5c-10.2002 -25.5 -39.2002 -38 -64.7002 -27.5c-10.2002 4 -20.5 8.2998 -30.7002 12.2002c10.5 -19.7002 31.2002 -33.2002 55.2002 -33.2002c34.7002 0 62.5 27.7998 62.5 62.5zM410.5 270.3c0 42 -34.2998 76.2002 -76.2002 76.2002
+c-42.2998 0 -76.5 -34.2002 -76.5 -76.2002c0 -42.2002 34.2998 -76.2002 76.5 -76.2002c41.9004 -0.0996094 76.2002 33.9004 76.2002 76.2002z" />
+ <glyph glyph-name="sticker-mule" unicode="" horiz-adv-x="576"
+d="M561.7 248.4c-1.2998 -0.300781 0.299805 0 0 0zM555.5 325.8c20.2002 -50.0996 20.5996 -45.2002 20.5996 -52.8994c0 -7.5 -4.09961 -11 -7.19922 -16.5c-1.5 -3 -4.60059 -7.5 -7.2002 -8c-0.400391 0 -3 -0.5 -13.4004 -2.5c-7.2002 -1 -13.3994 4.5 -14.8994 9.5
+c-1.60059 4.69922 2.7998 10.0996 -11.8008 22.8994c-10.2998 10 -21.0996 11.2998 -31.8994 17c-9.7998 5.7002 -11.9004 -1 -18 -8c-18 -22.8994 -34 -46.8994 -52 -69.7998c-11.7998 -15 -24.2002 -30.4004 -33.5 -47.4004
+c-3.90039 -6.7998 -9.5 -28.0996 -10.2998 -29.8994c-6.2002 -17.7002 -5.5 -25.7998 -16.5 -68.2998c-3.10059 -10 -5.7002 -21.4004 -8.7002 -32.4004c-2.2002 -6.7998 -7.40039 -49.2998 -0.5 -59.4004c2.09961 -3.5 8.7002 -4.5 11.2998 -8
+c0.0996094 -0.0996094 9.59961 -18.1992 9.2998 -20c0 -6.09961 -9.39941 -5.59961 -11.2998 -6.5c-4.7998 -2.89941 -3.7998 -5.89941 -6.40039 -7.39941c-5.89941 -2.90039 -32.0996 -3.2002 -36.5 0.5c-4.09961 3 -2.19922 11.8994 -1.5 15
+c2.2002 15 -2.5 7.89941 -9.7998 11.5c-3.09961 1.5 -4.09961 5.5 -4.59961 10c-0.5 1.5 -1 2.5 -1.5 3.5c-1.7002 10.7002 6.7998 33.5996 8.2002 43.3994c4.89941 23.7002 -0.700195 37.2002 1.5 46.9004c3.69922 16.2002 4.09961 3.5 4.09961 29.9004
+c-1.40039 25.8994 3.2998 36.8994 0.5 38.8994c-14.7998 0 -64.2998 -10.7002 -112.2 -2c-46.0996 8.90039 -59.3994 29 -65.3994 30.9004c-10.3008 4.5 -23.2002 -0.5 -27.3008 -7c-0.0996094 -0.100586 -35 -70.6006 -39.5996 -87.7998
+c-6.2002 -20.5 -0.5 -47.4004 4.09961 -66.8008c0 -0.0996094 4.5 -14.5996 10.3008 -19.5c2.09961 -1.5 5.09961 -2.5 7.19922 -4.5c2.80078 -2.69922 9.40039 -15.1992 9.80078 -16c2.59961 -4.5 3.59961 -8 -1.5 -10.5c-3.60059 -2 -9.30078 -2.5 -14.4004 -2.5
+c-2.59961 -0.5 -1.5 -3.5 -3.09961 -5c-2.90039 -2.7998 -20.7002 -6.09961 -29.9004 -2.5c-2.59961 1 -5.7002 3 -6.2002 5c-1.5 4 2.10059 9 -1 12.5c-4.5 2.90039 -13.0996 2 -17 12c-2.2002 5.40039 -2.59961 7.60059 -2.59961 49.4004
+c0 9.7002 -5.90039 38.7002 -8.2002 46.9004c-1.5 5.5 -1.5 11.5 0 16c0.299805 0.899414 4.09961 4.59961 4.09961 13c-1 1.5 -4.59961 0.5 -5.09961 1.5c-10.4004 80.5996 -5.90039 79 -7.7002 98.2998c-1.5 16 -10.8994 43.8994 -6.7002 64.2998
+c0.5 2.40039 3.40039 21 24.2002 38.9004c31 26.6992 48.4004 38.2998 159 11.5c1.10059 -0.400391 66.2998 -21.1006 110.7 9c15.5 11.2998 28.7998 11.2998 35.5 16c0.0996094 0.0996094 61.7002 52.0996 87 65.2998c47.2002 29.3994 69.9004 16.7002 75.0996 18
+c4.7002 1 13.4004 25.7998 17 25.7998c5.5 0 1.60059 -20.2002 3.60059 -25.9004c0.5 -2 3.59961 -5 6.2002 -5c2.2998 0 1.69922 0.800781 10.2998 5c8.39941 5.40039 14.8994 17.6006 20.5996 17c11.7002 -1.59961 -19 -41.5996 -19 -46.8994
+c0 -2 0.200195 -0.799805 4.60059 -9.5c2.59961 -5.5 4.59961 -13.5 6.19922 -20c8.30078 -29.7002 5.7002 -14.6006 13.4004 -36.9004z" />
+ <glyph glyph-name="studiovinari" unicode="" horiz-adv-x="512"
+d="M480.3 260.3l4.2002 -28v-28l-25.0996 -44.0996l-39.8008 -78.4004l-56.0996 -67.5l-79.0996 -37.7998l-17.7002 -24.5l-7.7002 -12l-9.59961 -4s17.2998 63.5996 19.3994 63.5996c2.10059 0 20.2998 -0.699219 20.2998 -0.699219l66.7002 38.5996l-92.5 -26.0996
+l-55.8994 -36.8008l-22.8008 -28l-6.59961 -1.39941l20.7998 73.5996l6.90039 5.5l20.7002 -12.8994l88.2998 45.1992l56.7998 51.5l14.7998 68.4004l-125.399 -23.2998l15.1992 18.2002l-173.399 53.2998l81.8994 10.5l-166 122.899l114.9 -18.0996l-101.3 108
+l252.899 -126.6l-31.5 38l124.4 -74.4004l-143.3 99l18.7002 -38.4004l-49.6006 18.1006l-45.5 84.2998l194.601 -122l-42.9004 55.7998l108 -96.3994l12 8.89941l-21 16.4004l4.2002 37.7998l37.7998 10.4004l29.2002 -24.7002l11.5 -4.2002l-7 -6.2002l8.5 -12
+l-13.1006 -7.39941l-10.2998 -20.2002z" />
+ <glyph glyph-name="supple" unicode="" horiz-adv-x="640"
+d="M640 185.5c0 -64.0996 -109 -116.1 -243.5 -116.1c-24.7998 0 -48.5996 1.7998 -71.0996 5c7.69922 -0.400391 15.5 -0.600586 23.3994 -0.600586c134.5 0 243.5 56.9004 243.5 127.101c0 29.3994 -19.0996 56.3994 -51.2002 78
+c60 -21.1006 98.9004 -55.1006 98.9004 -93.4004zM47.7002 220.1c0.0996094 -29.3994 19.2998 -56.5 51.5996 -78c-60.2002 21 -99.2002 55 -99.2998 93.3008c-0.0996094 64.0996 108.8 116.3 243.3 116.699c24.7002 0 48.5 -1.69922 71 -4.89941
+c-7.7002 0.299805 -15.3994 0.5 -23.2998 0.5c-134.5 -0.299805 -243.4 -57.4004 -243.3 -127.601zM107.9 180.2l8.7998 10.8994s8.7998 -10.0996 20.7002 -10.0996c6.5 0 12.2998 3.5 12.2998 10.0996c0 14.5 -40.2002 13.3008 -40.2002 39.9004
+c0 13.9004 12 24.0996 28.5 24.0996c10 0 25.4004 -4.69922 25.4004 -16.7998v-7.89941h-14.2002v3.89941c0 4 -5.60059 6.60059 -11.2998 6.60059c-7.2002 0 -12.5 -3.7002 -12.5 -9.10059c0 -14.5996 40.1992 -11.7002 40.1992 -39.7002
+c0 -13.5996 -10.5 -25.0996 -28.3994 -25.0996c-18.7998 0 -29.2998 13.2002 -29.2998 13.2002zM228.7 253.8h15.7002v-55c0 -18.8994 -13.3008 -31.8994 -33.4004 -31.8994c-20.2998 0 -33.7002 13 -33.7002 31.8994v55h15.7998v-54.5
+c0 -11.2002 7.10059 -17.7002 17.8008 -17.7002c10.6992 0 17.7998 6.5 17.7998 17.8008v54.3994zM263.1 168.4v72h-7.7998v13.3994h39.1006c16 0 27.1992 -11.2002 27.1992 -27.7998s-11.1992 -28.0996 -27.1992 -28.0996h-15.5v-29.5h-15.8008zM278.9 211.4h12.5996
+c8.90039 0 14 5.7998 14 14.6992c0 8.7002 -5 14.4004 -13.7002 14.4004h-12.8994v-29.0996zM335.9 168.4v72h-7.80078v13.3994h39.1006c16 0 27.2002 -11.2002 27.2002 -27.7998s-11.2002 -28.0996 -27.2002 -28.0996h-15.5v-29.5h-15.7998zM351.6 211.4h12.6006
+c9 0 14 5.7998 14 14.6992c0 8.7002 -5 14.4004 -13.7002 14.4004h-12.9004v-29.0996zM408.7 176.6h0.0996094v61.2002c0 1.60059 -0.899414 2.60059 -2.59961 2.60059h-5.2002v13.3994h15.4004c5.7998 0 8.19922 -2.5 8.19922 -8.2002v-61.1992
+c0 -1.60059 0.900391 -2.60059 2.60059 -2.60059h18.5996c1.60059 0 2.60059 0.900391 2.60059 2.60059v5.19922h14.2998v-13c0 -5.7998 -2.40039 -8.19922 -8.2002 -8.19922h-37.5996c-5.80078 0 -8.2002 2.39941 -8.2002 8.19922zM472.1 176.6h-0.0996094v63.9004h-7.7998
+v13.4004h51.5996c5.7002 0 8.2002 -2.5 8.2002 -8.2002v-13h-14.2002v5.2002c0 1.59961 -0.899414 2.59961 -2.59961 2.59961h-19.2002v-22.4004h27.7002v-13.3994h-27.7002v-20.2998c0 -1.60059 0.900391 -2.60059 2.59961 -2.60059h19.7002
+c1.60059 0 2.60059 0.900391 2.60059 2.60059v5.19922h14.2998v-13c0 -5.7998 -2.5 -8.19922 -8.2002 -8.19922h-38.7002c-5.7998 0 -8.2002 2.39941 -8.2002 8.19922zM531 252.6h-2.7002v1.2002h7v-1.2002h-2.7002v-5.89941h-1.59961v5.89941zM536.7 253.8h2.39941
+l2.10059 -5.09961l2.09961 5.09961h2.2998v-7.09961h-1.5v5.7002l-2.2998 -5.7002h-1.2998l-2.2998 5.7002v-5.7002h-1.5v7.09961z" />
+ <glyph glyph-name="telegram-plane" unicode=""
+d="M446.7 349.4l-67.6006 -318.801c-5.09961 -22.5 -18.3994 -28.0996 -37.2998 -17.5l-103 75.9004l-49.7002 -47.7998c-5.5 -5.5 -10.0996 -10.1006 -20.6992 -10.1006l7.39941 104.9l190.9 172.5c8.2998 7.40039 -1.7998 11.5 -12.9004 4.09961l-236 -148.6
+l-101.6 31.7998c-22.1006 6.90039 -22.5 22.1006 4.59961 32.7002l397.4 153.1c18.3994 6.90039 34.5 -4.09961 28.5 -32.1992z" />
+ <glyph glyph-name="uber" unicode=""
+d="M414.1 416c18.7002 0 33.9004 -15.2002 33.8008 -33.9004v-380.199c0 -18.7002 -15.2002 -33.9004 -33.9004 -33.9004h-380.1c-18.7002 0 -33.9004 15.2002 -33.9004 34v380.1c0 18.7002 15.2002 33.9004 33.9004 33.9004h380.199zM237.6 56.9004
+c74.6006 7.5 129 74.0996 121.5 148.6c-7 69.4004 -65.3994 122.2 -135.1 122.2s-128.1 -52.7998 -135.1 -122.2h94.3994v20.4004c0 3.7998 3.10059 6.7998 6.7998 6.7998h67.9004c3.7998 0 6.7998 -3.10059 6.7998 -6.7998v-67.9004
+c0 -3.7998 -3.09961 -6.7998 -6.7998 -6.7998h-67.9004c-3.7998 0 -6.7998 3.09961 -6.7998 6.7998v20.4004h-94.3994c7.5 -74.6006 74.0996 -129 148.699 -121.5z" />
+ <glyph glyph-name="uikit" unicode=""
+d="M443.9 320v-256l-225.9 -128l-218 128v214.3l87.5996 -45.0996v-117l133.5 -75.5l135.801 75.5v151l-101.101 57.5996l87.6006 53.1006zM308.6 398.9l-87.3994 -53l-86 47.2998l88.5996 54.7998z" />
+ <glyph glyph-name="uniregistry" unicode="" horiz-adv-x="384"
+d="M192 -32c-39.5 0 -76.2002 11.7998 -106.7 32.2002h213.5c-30.5996 -20.4004 -67.2998 -32.2002 -106.8 -32.2002zM102.9 161.1c0 -2.5 0.0996094 -5 0.299805 -7.39941h-103.101c-0.0996094 2.39941 -0.0996094 4.89941 -0.0996094 7.39941v12.4004h102.9v-12.4004z
+M123.4 104.1c8.89941 -10.5996 20.0996 -19.0996 33 -24.7998h-138.301c-3.7998 8 -7 16.2998 -9.59961 24.7998h114.9zM105.7 138.8c2 -7.89941 5.2002 -15.3994 9.2002 -22.2998h-109.7c-1.7002 7.2998 -3 14.7002 -3.90039 22.2998h104.4zM102.9 208.1v-17.2998h-102.9
+v17.2998h102.9zM102.9 381.3v-4.89941h-102.9v4.89941h102.9zM102.9 416v-2.5h-102.9v2.5h102.9zM102.9 346.7v-7.40039h-102.9v7.40039h102.9zM102.9 242.7v-14.7998h-102.9v14.7998h102.9zM102.9 312v-9.90039h-102.9v9.90039h102.9zM102.9 277.4v-12.4004h-102.9v12.4004
+h102.9zM269.1 116.5c4 6.90039 7.10059 14.4004 9.2002 22.2998h104.4c-0.799805 -7.59961 -2.10059 -15 -3.90039 -22.2998h-109.7zM281.1 302.2v9.7998h102.9v-9.7998h-102.9zM281.1 265v12.4004h102.9v-12.4004h-102.9zM281.1 339.3v7.40039h102.9v-7.40039h-102.9z
+M281.1 416h102.9v-2.5h-102.9v2.5zM78.0996 5.09961c-11.7998 8.7002 -23.5996 18.7002 -33.1992 29.7002h293.1c-9.5 -11.0996 -20.4004 -21 -32.2002 -29.7002h-227.7zM281.1 376.4v4.89941h102.9v-4.89941h-102.9zM281.1 227.9v14.7998h102.9v-14.7998h-102.9z
+M38.7998 42.2998c-6.59961 8.5 -10.5996 17.6006 -15.7998 27.2002h338.9c-5.2002 -9.59961 -11.1006 -18.7002 -17.8008 -27.2002h-305.3zM227.6 79.4004c12.8008 5.59961 24.1006 14.0996 32.9004 24.7998h115c-2.7002 -8.60059 -4.7998 -16.7998 -8.5 -24.7998h-139.4z
+M281.1 161.1v12.4004h102.9v-12.4004c0 -2.5 -0.0996094 -4.89941 -0.200195 -7.39941h-103.1c0.299805 2.39941 0.399414 4.89941 0.399414 7.39941zM281.1 190.8v17.2998h102.9v-17.2998h-102.9z" />
+ <glyph glyph-name="untappd" unicode="" horiz-adv-x="640"
+d="M401.3 398.1c-79.7998 -160.1 -84.5996 -152.5 -87.8994 -173.199l-5.2002 -32.8008c-1.90039 -12 -6.60059 -23.5 -13.7002 -33.3994l-148.9 -207.8c-7.59961 -10.6006 -20.3994 -16.2002 -33.3994 -14.6006c-40.2998 5 -77.7998 32.2002 -95.2998 68.5
+c-5.7002 11.7998 -4.5 25.7998 3.09961 36.4004l148.9 207.899c7.09961 9.90039 16.3994 18 27.1992 23.7002l29.3008 15.5c18.5 9.7998 9.69922 11.9004 135.6 138.9c1 4.7998 1 7.2998 3.59961 8c3 0.700195 6.60059 1 6.30078 4.59961l-0.400391 4.60059
+c-0.200195 1.89941 1.2998 3.59961 3.2002 3.59961c4.5 0.0996094 13.2002 -1.2002 25.5996 -10c12.2998 -8.90039 16.4004 -16.7998 17.7002 -21.0996c0.599609 -1.80078 -0.599609 -3.7002 -2.40039 -4.2002l-4.5 -1.10059
+c-3.39941 -0.899414 -2.5 -4.39941 -2.2998 -7.39941c0.100586 -2.7998 -2.2998 -3.60059 -6.5 -6.10059zM230.1 411.6c-3.19922 0.800781 -8.19922 1.2002 -6.7998 5.40039c1.2998 4.2998 5.40039 12.2002 17.7002 21.0996c12.4004 8.90039 21.0996 10.1006 25.5996 10
+c4.2002 -0.0996094 3.10059 -4.89941 2.80078 -8.19922c-0.300781 -3.60059 3.2998 -3.80078 6.2998 -4.60059c2.59961 -0.700195 2.59961 -3.2998 3.59961 -8c9.10059 -9.2002 17.6006 -17.8994 25.6006 -26.0996c1.2998 -1.40039 1.19922 -3.5 -0.100586 -4.90039
+c-15.8994 -16.3994 -29.2998 -30.5996 -40.5 -42.5996c-1 -1 -2.59961 -0.799805 -3.2998 0.5c-6.90039 13.5 -14.2998 28.0996 -22.2002 44c-4.2998 2.5 -6.59961 3.2998 -6.39941 6c0.199219 3 1.09961 6.5 -2.30078 7.39941zM620 41.2998
+c7.7002 -10.7002 8.7998 -24.7002 3.40039 -36.5996c-17.7002 -36.6006 -55.4004 -63.7002 -95.7002 -68.6006c-12.9004 -1.5 -25.5 4.10059 -33.1006 14.7002l-148.899 207.9c-7.10059 9.89941 -11.7998 21.3994 -13.7002 33.3994
+c-1.59961 9.80078 -2 19.1006 -0.299805 29.8008c1.89941 12 2.7002 6 49 94.7998c0.700195 1.39941 2.59961 1.59961 3.59961 0.5c16.2998 -18 19.2998 -23 30.5 -28.9004c29.7998 -15.7002 43.2002 -20.5996 56.4004 -39.0996z" />
+ <glyph glyph-name="ussunnah" unicode="" horiz-adv-x="512"
+d="M156.8 162.9l5.7002 -14.4004h-8.2002c-1.2998 3.2002 -3.09961 7.7002 -3.7998 9.5c-2.5 6.2998 -1.09961 8.40039 0 10c1.90039 2.7002 3.2002 4.40039 3.59961 5.2002c0 -2.2002 0.800781 -5.7002 2.7002 -10.2998zM454.1 144.1
+c-2.09961 -13.7998 -5.69922 -27.0996 -10.5 -39.6992l43 -23.4004l-44.7998 18.7998c-5.2998 -13.2002 -12 -25.5996 -19.8994 -37.2002l34.1992 -30.1992l-36.7998 26.3994c-8.39941 -11.7998 -18 -22.5996 -28.7002 -32.2998l24.9004 -34.7002l-28.0996 31.7998
+c-11 -9.59961 -23.1006 -18 -36.1006 -25.0996l15.7002 -37.2002l-19.2998 35.2998c-13.1006 -6.7998 -27 -12.0996 -41.6006 -15.8994l6.7002 -38.4004l-10.5 37.4004c-14.2998 -3.40039 -29.2002 -5.2998 -44.5 -5.40039l-1.7998 -38.2998l-1.90039 38.4004
+c-15.2998 0.0996094 -30.1992 2 -44.5 5.2998l-10.5996 -37.2998l6.7002 38.1992c-14.6006 3.7002 -28.6006 9.10059 -41.7002 15.8008l-19.2002 -35.1006l15.6006 37c-13 7 -25.2002 15.4004 -36.2002 25.1006l-27.9004 -31.6006l24.7002 34.4004
+c-10.7002 9.7002 -20.4004 20.5 -28.7998 32.2998l-36.5 -26.2002l33.8994 29.9004c-7.89941 11.5996 -14.5996 24.0996 -20 37.2998l-44.3994 -18.7002l42.5996 23.2002c-4.7998 12.7002 -8.39941 26.0996 -10.5 39.9004l-51 -9l50.2998 14.1992
+c-1.09961 8.5 -1.69922 17.1006 -1.69922 25.9004c0 4.7002 0.199219 9.40039 0.5 14.0996l-55.4004 2.90039l56 2.7998c1.2998 13.1006 3.7998 25.7998 7.5 38.1006l-57.0996 16.0996l58.8994 -10.4004c4 12 9.10059 23.5 15.2002 34.4004l-55.0996 30l58.2998 -24.5996
+c6.2998 10.5996 13.5 20.3994 21.5996 29.5996l-49.5 43.5996l53.9004 -38.6992c8.09961 8.59961 17 16.5 26.5996 23.5996l-40 55.5996l45.6006 -51.5996c9.5 6.59961 19.6992 12.2998 30.2998 17.2002l-27.2998 64.8994l33.7998 -62.0996
+c10.5 4.40039 21.3994 7.90039 32.7002 10.4004l-12.4004 70.6992l19.5 -69.1992c11 2.09961 22.2998 3.19922 33.7998 3.39941l3.7002 72.2002l3.59961 -72.2002c11.5 -0.200195 22.8008 -1.39941 33.8008 -3.5l19.5996 69.2998l-12.4004 -70.6992
+c11.3008 -2.60059 22.2002 -6.10059 32.6006 -10.5l33.8994 62.1992l-27.3994 -65.0996c10.5996 -4.90039 20.7002 -10.7002 30.2002 -17.2002l45.7998 51.7998l-40.1006 -55.8994c9.5 -7.10059 18.4004 -15 26.5 -23.6006l54.2002 38.9004l-49.7002 -43.9004
+c8 -9.09961 15.2002 -18.8994 21.5 -29.3994l58.7002 24.7002l-55.5 -30.2002c6.10059 -10.9004 11.1006 -22.2998 15.1006 -34.2998l59.2998 10.3994l-57.5 -16.2002c3.7002 -12.1992 6.2002 -24.8994 7.5 -37.8994l56.2998 -2.7002l-56 -2.7998
+c0.299805 -4.60059 0.5 -9.2998 0.5 -14.1006c0 -8.69922 -0.599609 -17.2998 -1.59961 -25.7998l50.6992 -14.2998zM432.3 175.1c0 97.5 -79 176.5 -176.5 176.5s-176.5 -79 -176.5 -176.5s79 -176.5 176.5 -176.5s176.5 79 176.5 176.5zM408.3 175.1
+c0 -84.2998 -68.2998 -152.6 -152.6 -152.6s-152.601 68.2998 -152.601 152.6c0 84.3008 68.3008 152.601 152.601 152.601s152.6 -68.2998 152.6 -152.601zM195 207c0 -2.09961 1.2998 -3.7998 3.59961 -5.09961c3.30078 -1.90039 6.2002 -4.60059 8.2002 -8.2002
+c2.7998 5.7002 4.2998 9.5 4.2998 11.2002c0 2.19922 -1.09961 4.39941 -3.19922 7c-2.10059 2.5 -3.2002 5.19922 -3.30078 7.69922c-6.5 -6.7998 -9.59961 -10.8994 -9.59961 -12.5996zM154.3 226c0 -2.09961 1.2998 -3.7998 3.60059 -5.09961
+c3.5 -1.90039 6.19922 -4.60059 8.19922 -8.2002c2.80078 5.7002 4.30078 9.5 4.30078 11.2002c0 2.19922 -1.10059 4.39941 -3.2002 7c-2.10059 2.5 -3.2002 5.19922 -3.2998 7.69922c-6.5 -6.7998 -9.60059 -10.8994 -9.60059 -12.5996zM135.3 226
+c0 -2.09961 1.2998 -3.7998 3.60059 -5.09961c3.2998 -1.90039 6.19922 -4.60059 8.19922 -8.2002c2.80078 5.7002 4.30078 9.5 4.30078 11.2002c0 2.19922 -1.10059 4.39941 -3.2002 7c-2.10059 2.5 -3.2002 5.19922 -3.2998 7.69922
+c-6.40039 -6.7998 -9.60059 -10.8994 -9.60059 -12.5996zM340.2 138.1c-8.40039 3 -8.7002 6.80078 -8.7002 15.6006v112.3c-8.2002 -12.5 -14.2002 -18.5996 -18 -18.5996c6.2998 -14.4004 9.5 -23.9004 9.5 -28.3008v-64.2998c0 -2.2002 -2.2002 -6.5 -4.7002 -6.5h-18
+c-2.7998 7.5 -10.2002 26.9004 -15.2998 40.2998c-2 -2.5 -7.2002 -9.19922 -10.7002 -13.6992c2.40039 -1.60059 4.10059 -3.60059 5.2002 -6.30078c2.59961 -6.69922 6.40039 -16.5 7.90039 -20.1992h-9.2002c-3.90039 10.3994 -9.60059 25.3994 -11.7998 31.0996
+c-2 -2.5 -7.2002 -9.2002 -10.7002 -13.7002c2.39941 -1.59961 4.09961 -3.59961 5.2002 -6.2998c0.799805 -2 2.7998 -7.2998 4.2998 -10.9004h-9.2002c-1.5 4.10059 -5.59961 14.6006 -8.40039 22c-2 -2.5 -7.19922 -9.19922 -10.6992 -13.6992
+c2.5 -1.60059 4.2998 -3.60059 5.19922 -6.30078c0.200195 -0.599609 0.5 -1.39941 0.600586 -1.69922h-17.7002c-4.59961 13.8994 -11.4004 27.6992 -11.4004 34.0996c0 2.2002 0.300781 5.09961 1.10059 8.2002c-8.7998 -10.7998 -14 -15.9004 -14 -25
+c0 -7.5 10.3994 -28.2998 10.3994 -33.2998c0 -1.7002 -0.5 -3.30078 -1.39941 -4.90039c-9.60059 12.7002 -15.5 20.7002 -18.7998 20.7002h-12l-11.2002 28c-3.7998 9.59961 -5.7002 16 -5.7002 18.7998c0 3.7998 0.5 7.7002 1.7002 12.2002
+c-1 -1.2998 -3.7002 -4.7002 -5.5 -7.10059c-0.799805 2.10059 -3.10059 7.7002 -4.60059 11.5c-2.09961 -2.5 -7.5 -9.09961 -11.1992 -13.5996c0.899414 -2.2998 3.2998 -8.09961 4.89941 -12.2002c-2.5 -3.2998 -9.09961 -11.7998 -13.5996 -17.7002
+c-4 -5.2998 -5.7998 -13.2998 -2.7002 -21.7998c2.5 -6.7002 2 -7.89941 -1.7002 -14.0996h61.7002c5.5 0 14.2998 -14 15.5 -22c13.2002 16 15.4004 19.5996 16.7998 21.5996h107c3.90039 0 7.2002 1.90039 9.90039 5.7998zM360.3 164.7v101.6
+c-9 -12.5 -15.8994 -18.5996 -20.7002 -18.5996c7.10059 -14.4004 10.7002 -23.9004 10.7002 -28.2998v-66.3008c0 -17.5 8.60059 -20.3994 24 -20.3994c8.10059 0 12.5 0.799805 13.7002 2.7002c-4.2998 1.59961 -7.59961 2.5 -9.90039 3.2998
+c-8.09961 3.2002 -17.7998 7.39941 -17.7998 26z" />
+ <glyph glyph-name="vaadin" unicode=""
+d="M224.5 307.3c1.5 17.6006 4.90039 52.7002 49.7998 52.7002h98.6006c20.6992 0 32.0996 7.7998 32.0996 21.5996v12.3008c0 12.1992 9.2998 22.0996 21.5 22.0996s21.5 -9.90039 21.5 -22.0996v-36.5c0 -42.9004 -21.5 -62 -66.7998 -62h-100.5
+c-30.1006 0 -33 -14.7002 -33 -27.1006c0 -1.2998 -0.100586 -2.5 -0.200195 -3.7002c-0.700195 -12.2998 -10.9004 -22.1992 -23.4004 -22.1992s-22.6992 9.7998 -23.3994 22.1992c-0.100586 1.2002 -0.200195 2.40039 -0.200195 3.7002c0 12.2998 -3 27.1006 -33 27.1006
+h-100.7c-45.2998 0 -66.7998 19.0996 -66.7998 62v36.5c0 12.1992 9.40039 22.0996 21.5996 22.0996c12.2002 0 21.5 -9.90039 21.5 -22.0996v-12.3008c0 -13.7998 11.4004 -21.5996 32.1006 -21.5996h98.5996c44.7998 0 48.2998 -35.0996 49.7998 -52.7002h0.900391z
+M224 -8c-11.5 0 -21.4004 7 -25.7002 16.2998c-1.09961 1.7998 -97.0996 169.5 -98.2002 171.4c-11.8994 19.7002 3.2002 44.2998 27.2002 44.2998c13.9004 0 23.4004 -6.40039 29.7998 -20.2998l66.9004 -117.7l66.9004 117.7c6.5 13.8994 15.8994 20.2998 29.7998 20.2998
+c24 0 39.0996 -24.7002 27.2002 -44.2998c-1.10059 -1.7998 -97.1006 -169.601 -98.2002 -171.4c-4.2998 -9.2998 -14.2002 -16.2998 -25.7002 -16.2998z" />
+ <glyph glyph-name="viber" unicode="" horiz-adv-x="512"
+d="M444 398.1c42.2002 -36.6992 65.5996 -117.899 49.7998 -246.5c-15.2002 -124.6 -109.1 -136.6 -125.7 -142c-7.19922 -2.2998 -70.2998 -18.0996 -152.5 -11.1992c-9.09961 -10.5 -21.0996 -24.3008 -29.7998 -33.7002
+c-15.8994 -17.1006 -25.7002 -33 -42.2998 -27.7998c-13.7998 4.19922 -13 25.0996 -13 25.0996l0.0996094 51.5996h-0.0996094c-120.1 33.8008 -118.4 158.4 -117 224.9s14.2998 120.2 50.9004 156.8c65.7998 60.4004 200.899 52.2998 200.899 52.2998
+c114.601 -0.5 166 -37.7998 178.7 -49.5zM457.9 161c13.2998 107.3 -4.90039 180.5 -40.6006 211.1c-10.7998 9.80078 -57.2002 39 -154.1 39.4004c0 0 -114.7 7.5 -170.4 -43c-31 -30.5996 -41.5 -76.0996 -42.5996 -131.6
+c-1.10059 -55.5 -7.10059 -161.601 94.7002 -189.801c-0.100586 0 -0.100586 0 0 0c0 0 -0.400391 -78.7998 -0.400391 -85.6992c-0.0996094 -10.5 5.7002 -11 11 -5.7002c16.2002 16.2998 68.2002 79 68.2002 79c69.7002 -4.5 125.2 9.2998 131.2 11.2002
+c14 4.5 90.0996 11.0996 103 115.1zM318.9 241.8c0.399414 -8.59961 -12.5 -9.2002 -12.9004 -0.599609c-1.09961 22 -11.4004 32.7002 -32.5996 33.8994c-8.60059 0.5 -7.80078 13.4004 0.699219 12.9004c27.9004 -1.5 43.4004 -17.5 44.8008 -46.2002zM339.2 230.5
+c1 42.4004 -25.5 75.5996 -75.7998 79.2998c-8.5 0.600586 -7.60059 13.5 0.899414 12.9004c58 -4.2002 88.9004 -44.1006 87.7998 -92.5c-0.0996094 -8.60059 -13.0996 -8.2002 -12.8994 0.299805zM386.2 217.1c0.0996094 -8.59961 -12.9004 -8.69922 -12.9004 -0.0996094
+c-0.599609 81.5 -54.8994 125.9 -120.8 126.4c-8.5 0.0996094 -8.5 12.8994 0 12.8994c73.7002 -0.5 133 -51.3994 133.7 -139.2zM374.9 119v-0.200195c-10.8008 -19 -31 -40 -51.8008 -33.2998l-0.199219 0.299805c-21.1006 5.90039 -70.8008 31.5 -102.2 56.5
+c-16.2002 12.7998 -31 27.9004 -42.4004 42.4004c-10.2998 12.8994 -20.7002 28.2002 -30.7998 46.5996c-21.2998 38.5 -26 55.7002 -26 55.7002c-6.7002 20.7998 14.2002 41 33.2998 51.7998h0.200195c9.2002 4.7998 18 3.2002 23.9004 -3.89941
+c0 0 12.3994 -14.8008 17.6992 -22.1006c5 -6.7998 11.7002 -17.7002 15.2002 -23.7998c6.10059 -10.9004 2.2998 -22 -3.7002 -26.5996l-12 -9.60059c-6.09961 -4.89941 -5.2998 -14 -5.2998 -14s17.7998 -67.2998 84.2998 -84.2998c0 0 9.10059 -0.799805 14 5.2998
+l9.60059 12c4.59961 6 15.7002 9.7998 26.5996 3.7002c14.7002 -8.2998 33.4004 -21.2002 45.7998 -32.9004c7 -5.69922 8.60059 -14.3994 3.80078 -23.5996z" />
+ <glyph glyph-name="vimeo" unicode=""
+d="M403.2 416c24.7002 0 44.7998 -20.0996 44.7998 -44.7998v-358.4c0 -24.7002 -20.0996 -44.7998 -44.7998 -44.7998h-358.4c-24.7002 0 -44.7998 20.0996 -44.7998 44.7998v358.4c0 24.7002 20.0996 44.7998 44.7998 44.7998h358.4zM377 267.2
+c1.90039 42.2002 -13.7998 63.7998 -47.0996 64.7002c-44.9004 1.39941 -75.3008 -23.9004 -91.2002 -76c19.8994 8.5 49.2998 10.7998 45.7998 -22.4004c-1 -11.2002 -8.2998 -27.5 -21.7998 -48.9004c-37.7002 -59.3994 -46.9004 -39.5996 -67.6006 91.6006
+c-5.7998 36.8994 -21.2998 54.0996 -46.5 51.7002c-22.2998 -2 -57.8994 -38.4004 -95.1992 -71.2002l15.1992 -19.6006c14.5 10.1006 23 15.2002 25.4004 15.2002c21 0 31.9004 -54.7002 57.4004 -148c13.0996 -34.8994 29 -52.2998 47.8994 -52.2998
+c30.4004 0 67.7002 28.5996 111.7 85.7998c42.5996 54.7002 64.5996 97.9004 66 129.4z" />
+ <glyph glyph-name="vnv" unicode="" horiz-adv-x="640"
+d="M104.9 96c-34.1006 0 -46.4004 30.4004 -46.4004 30.4004l-55.9004 111.5s-10.3994 18.0996 10.4004 18.0996h32.7998c10.4004 0 13.2002 -8.7002 18.7998 -18.0996l36.7002 -74.5s5.2002 -13.1006 21.1006 -13.1006c15.8994 0 21.0996 13.1006 21.0996 13.1006
+l36.7002 74.5c5.59961 9.5 8.39941 18.0996 18.7998 18.0996h32.7998c20.7998 0 10.4004 -18.0996 10.4004 -18.0996l-55.7998 -111.5s-12.2002 -30.4004 -46.4004 -30.4004h-35.0996zM499.9 96c-34.1006 0 -46.4004 30.4004 -46.4004 30.4004l-55.9004 111.5
+s-10.3994 18.0996 10.4004 18.0996h32.7998c10.4004 0 13.2002 -8.7002 18.7998 -18.0996l36.7002 -74.5s5.2002 -13.1006 21.1006 -13.1006c15.8994 0 21.0996 13.1006 21.0996 13.1006l36.7998 74.5c5.60059 9.5 8.40039 18.0996 18.7998 18.0996h32.9004
+c20.7998 0 10.4004 -18.0996 10.4004 -18.0996l-55.9004 -111.5s-12.2002 -30.4004 -46.4004 -30.4004h-35.1992zM337.6 256c34.1006 0 46.4004 -30.4004 46.4004 -30.4004l55.9004 -111.5s10.3994 -18.0996 -10.4004 -18.0996h-32.7998
+c-10.4004 0 -13.2002 8.7002 -18.7998 18.0996l-36.7002 74.5s-5.2002 13.1006 -21.1006 13.1006c-15.8994 0 -21.0996 -13.1006 -21.0996 -13.1006l-36.7002 -74.5c-5.59961 -9.39941 -8.39941 -18.0996 -18.7998 -18.0996h-32.9004
+c-20.7998 0 -10.3994 18.0996 -10.3994 18.0996l55.8994 111.5s12.2002 30.4004 46.4004 30.4004h35.0996z" />
+ <glyph glyph-name="whatsapp-square" unicode=""
+d="M224 325.2c35.2002 0 68.2002 -13.7002 93.2002 -38.7002c24.8994 -24.9004 40.0996 -58 40.0996 -93.2002c0 -72.7002 -60.7002 -131.8 -133.3 -131.8h-0.0996094c-23.7002 0 -46.9004 6.40039 -67.1006 18.4004l-4.7998 2.89941l-49.9004 -13.0996l13.3008 48.5996
+l-3.10059 5c-13.2002 20.9004 -20.2002 45.2002 -20.2002 70.1006c0.100586 72.6992 59.2002 131.8 131.9 131.8zM301.5 136.8c3.2998 9.2002 3.2998 17.2002 2.40039 19.1006c-1 1.59961 -3.60059 2.59961 -7.60059 4.59961s-23.5 11.5996 -27.0996 12.9004
+c-3.60059 1.2998 -6.2998 2 -8.90039 -2c-2.59961 -3.90039 -10.2002 -12.9004 -12.5 -15.5c-2.2998 -2.7002 -4.59961 -3 -8.59961 -1c-23.2998 11.6992 -38.6006 20.7998 -53.9004 47.0996c-4.09961 7 4 6.40039 11.6006 21.5996
+c1.39941 2.60059 0.699219 4.90039 -0.300781 6.90039s-8.89941 21.5 -12.1992 29.4004c-3.2002 7.69922 -6.5 6.69922 -8.90039 6.7998c-2.2998 0.0996094 -5 0.0996094 -7.59961 0.0996094c-2.7002 0 -7 -1 -10.6006 -5c-3.7002 -4 -13.8994 -13.5996 -13.8994 -33.0996
+s14.1992 -38.4004 16.1992 -41c2 -2.60059 28 -42.6006 67.7002 -59.7998c25.1006 -10.8008 34.9004 -11.8008 47.5 -9.90039c7.60059 1.09961 23.4004 9.5 26.7002 18.7998zM400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48
+v352c0 26.5 21.5 48 48 48h352zM223.9 34.7998c87.3994 0 160.1 71.1006 160.1 158.5c0 42.4004 -18 82.2002 -47.9004 112.2c-30 30 -69.7998 46.5 -112.199 46.5c-87.4004 0 -158.5 -71.0996 -158.601 -158.5c0 -28 7.2998 -55.2998 21.2002 -79.2998l-22.5 -82.2002
+l84.0996 22.0996c23.1006 -12.5996 49.2002 -19.2998 75.8008 -19.2998z" />
+ <glyph glyph-name="whmcs" unicode=""
+d="M448 287l-29.0996 -7l-2.2002 -12.0996l20.8994 -18.8008l-10.2998 -20.0996l-28.7998 8.7998l-7.7998 -8.09961l8.7998 -28l-20.4004 -12.1006l-20.6992 21.6006l-11.6006 -3.5l-6.7002 -28.7998l-22.5996 0.299805l-6.7002 28.5l-11.5996 2.89941l-19.4004 -20.3994
+l-19.8994 11.5996l8.09961 26.9004l-7.2002 8.59961l-29.5996 -7.5l-10.4004 18.5l20.1006 19.9004l-2.40039 12.0996l-28.7998 7.5l0.299805 21.7002l28.5 7.7998l2.90039 10.4004l-20.7002 21l11 19.0996l28.5 -7.5l8.09961 8.40039l-8.09961 27.7002l19.3994 11
+l19.7002 -21l12.1006 3.19922l6.19922 26.4004h22.6006l7 -26.4004l10.7002 -3.19922l21.2998 21l19.0996 -11.6006l-7.5 -28.2002l7.2002 -7.5l29 7.5l10.4004 -19.3994l-20.1006 -20.7002l2.2002 -10.4004l28.5 -8.7998v-21.2998zM328.8 241.8
+c31.4004 0 56.7998 25.2998 56.7998 56.7998c0 31.4004 -25.3994 56.8008 -56.7998 56.8008c-31.3994 0 -56.7998 -25.4004 -56.7998 -56.8008c0 -31.3994 25.5 -56.7998 56.7998 -56.7998zM401.1 225.4l46.9004 -14.5v-39.9004l-55.0996 -13.4004l-4.10059 -22.6992
+l38.9004 -35.3008l-19.2002 -37.8994l-54 16.7002l-14.5996 -15.2002l16.6992 -52.5l-38.2998 -22.7002l-38.8994 40.5l-21.7002 -6.59961l-12.6006 -54l-42.3994 0.5l-12.6006 53.5996l-21.6992 5.59961l-36.4004 -38.3994l-37.4004 21.7002l15.2002 50.5l-13.7002 16.0996
+l-55.5 -14.0996l-19.6992 34.7998l37.8994 37.3994l-4.7998 22.8008l-54 14.0996l0.5 40.9004l53.5 14.6992l5.7002 19.7002l-38.9004 39.4004l20.7002 35.7998l53.5996 -14.0996l15.2002 15.6992l-15.2002 52l36.4004 20.7002l36.7998 -39.3994l22.7002 6.09961l11.5996 52
+h42.4004l11.5996 -45.9004l-22.5996 5.90039l-6.2998 1.7002l-3.2998 -5.7002l-11 -19.0996l-3.30078 -5.60059l4.60059 -4.59961l17.2002 -17.4004l-0.300781 -1l-23.7998 -6.5l-6.2002 -1.7002l-0.0996094 -6.39941l-0.200195 -12.9004
+c-47.5 -10.3994 -83.2998 -52.7998 -83.2998 -103.5c0 -58.2998 47.2998 -105.7 105.7 -105.7c50.5 0 92.7002 35.4004 103.2 82.8008l13.1992 -0.200195l6.90039 -0.100586l1.59961 6.7002l5.60059 24l1.89941 0.600586l17.1006 -17.8008l4.7002 -4.89941l5.7998 3.39941
+l20.3994 12.1006l5.80078 3.5l-2 6.5z" />
+ <glyph glyph-name="wordpress-simple" unicode="" horiz-adv-x="512"
+d="M256 440c136.7 0 248 -111.2 248 -248c0 -136.7 -111.3 -248 -248 -248s-248 111.3 -248 248c0 136.8 111.3 248 248 248zM33 192c0 -88.2002 51.2998 -164.5 125.7 -200.7l-106.4 291.4c-12.3994 -27.7002 -19.2998 -58.4004 -19.2998 -90.7002zM256 -31
+c26 0 50.9004 4.5 74 12.5996c-0.599609 1 -1.09961 2 -1.59961 3.10059l-68.5 187.8l-66.9004 -194.4c20 -5.89941 41.0996 -9.09961 63 -9.09961zM286.7 296.5l80.7002 -239.6l22.1992 74.2998c9.7002 30.8994 17 53 17 72.0996c0 27.6006 -9.89941 46.7002 -18.3994 61.5
+c-11.2998 18.4004 -21.9004 33.9004 -21.9004 52.2998c0 20.5 15.5 39.6006 37.4004 39.6006c1 0 1.89941 -0.100586 2.89941 -0.200195c-39.6992 36.2998 -92.5996 58.5 -150.6 58.5c-77.9004 0 -146.4 -40 -186.3 -100.5
+c5.2998 -0.200195 10.2002 -0.299805 14.3994 -0.299805c23.3008 0 59.4004 2.7998 59.4004 2.7998c12 0.700195 13.4004 -17 1.40039 -18.4004c0 0 -12.1006 -1.39941 -25.5 -2.09961l81.1992 -241.5l48.8008 146.3l-34.7002 95.2002
+c-12 0.700195 -23.4004 2.09961 -23.4004 2.09961c-12 0.700195 -10.5996 19.1006 1.40039 18.4004c0 0 36.7998 -2.7998 58.7002 -2.7998c23.2998 0 59.3994 2.7998 59.3994 2.7998c12 0.700195 13.4004 -17 1.40039 -18.4004c0 0 -12.1006 -1.39941 -25.5 -2.09961z
+M368.1 -0.700195c66.3008 38.6006 110.9 110.4 110.9 192.7c0 38.7998 -9.90039 75.2002 -27.2998 107c1 -7.09961 1.5 -14.7002 1.5 -22.9004c0 -22.6992 -4.2998 -48.0996 -17 -79.8994z" />
+ <glyph glyph-name="xbox" unicode="" horiz-adv-x="512"
+d="M369.9 129.8c44.2998 -54.2998 64.6992 -98.7998 54.3994 -118.7c-7.89941 -15.0996 -56.7002 -44.5996 -92.5996 -55.8994c-29.6006 -9.2998 -68.4004 -13.2998 -100.4 -10.2002c-38.2002 3.7002 -76.8994 17.4004 -110.1 39
+c-27.9004 18.2002 -34.2002 25.7002 -34.2002 40.5996c0 29.9004 32.9004 82.3008 89.2002 142.101c32 33.8994 76.5 73.7002 81.3994 72.5996c9.40039 -2.09961 84.3008 -75.0996 112.301 -109.5zM188.6 304.2c-66.3994 -81.5 -106 -155.4 -120.3 -194.4
+c-9.7998 -26.5 -13.7002 -53 -9.5 -64c2.7998 -7.39941 0.200195 -4.7002 -9.2998 9.90039c-23.2002 35.5 -34.9004 70.3994 -40.5 120.899c-1.90039 16.7002 -1.2002 26.3008 4.2002 60.5c6.7998 42.7002 31.0996 92 60.2998 122.4
+c12.4004 12.9004 13.5 13.2002 28.7002 8.09961c28.2998 -9.5 56.7002 -36.5 86.3994 -63.3994zM500.2 240.7c4.7002 -22.6006 5.09961 -70.9004 0.799805 -93.4004c-3.59961 -18.5 -11.2002 -42.5 -18.5996 -58.7002c-5.5 -12.1992 -19.3008 -35.7998 -25.4004 -43.5
+c-3.09961 -3.89941 -3.09961 -3.89941 -1.40039 4.60059c2.30078 11.2002 -0.599609 31.5996 -7.39941 52.2998c-20.7002 62.9004 -80.5 149 -122.9 202.3c23.2998 21.4004 41 38.2998 64.2998 52.7998c11.8008 7.40039 28.7002 13.9004 36 13.9004
+c7.10059 0 57.7002 -50.2998 74.6006 -130.3zM141.3 405c-14.5996 -0.700195 -14 0.0996094 9.40039 11.2002c81.2002 38.2998 170 27.5996 233.899 -11.7002c-13.3994 0.599609 -43.5 5.90039 -107.399 -25.2002c-11.2002 -5.5 -20.9004 -9.7998 -21.6006 -9.7002
+c-4.59961 0.900391 -66.5996 37.9004 -114.3 35.4004z" />
+ <glyph glyph-name="yandex" unicode="" horiz-adv-x="256"
+d="M153.1 132.2l-87.3994 -196.2h-63.7002l96 209.8c-45.0996 22.9004 -75.2002 64.4004 -75.2002 141.101c-0.0996094 107.399 68 161.1 148.9 161.1h82.2998v-512h-55.0996v196.2h-45.8008zM198.9 401.5h-29.4004c-44.4004 0 -87.4004 -29.4004 -87.4004 -114.6
+c0 -82.3008 39.4004 -108.801 87.4004 -108.801h29.4004v223.4z" />
+ <glyph glyph-name="yandex-international" unicode="" horiz-adv-x="320"
+d="M129.5 -64v166.1l-111 297.9h55.7998l81.7998 -229.7l94.1006 277.7h51.2998l-120.7 -347.8v-164.2h-51.2998z" />
+ <glyph glyph-name="apple-pay" unicode="" horiz-adv-x="640"
+d="M116.9 289.5c-7.5 -8.90039 -19.5 -15.9004 -31.5 -14.9004c-1.5 12 4.39941 24.8008 11.2998 32.6006c7.5 9.09961 20.5996 15.5996 31.2998 16.0996c1.2002 -12.3994 -3.7002 -24.7002 -11.0996 -33.7998zM127.8 272.3c6.7998 -0.5 26.2998 -2.5 38.7998 -21.0996
+c-1 -0.799805 -23.1992 -13.5 -22.8994 -40.2998c0.299805 -32 28 -42.6006 28.2998 -42.9004c-0.200195 -0.799805 -4.40039 -15.0996 -14.5 -29.9004c-8.90039 -13 -18 -25.6992 -32.5 -26c-14 -0.199219 -18.7002 8.40039 -34.7998 8.40039
+c-16 0 -21.2002 -8.09961 -34.5 -8.59961c-14 -0.5 -24.6006 13.7998 -33.5 26.7998c-18.2002 26.2998 -32.1006 74 -13.2998 106.3c9.09961 16.0996 25.6992 26.2002 43.5996 26.5c13.7998 0.299805 26.4004 -9.09961 34.7998 -9.09961
+c8.2002 0 23.1006 10.8994 40.5 9.89941zM228.2 308.5h73.2002c37.6992 0 64.0996 -26 64.0996 -64s-26.7998 -64.2998 -65.0996 -64.2998h-41.9004v-66.6006h-30.2998v194.9zM258.5 283v-77.4004h34.7998c26.4004 0 41.4004 14.2002 41.4004 38.8008
+c0 24.5996 -15 38.5996 -41.2998 38.5996h-34.9004zM420.7 112.1c-28.1006 0 -47.7002 16.8008 -47.7998 42c0 25 19 39.4004 54.0996 41.5l37.7998 2.30078v10.7998c0 15.8994 -10.3994 24.5 -28.8994 24.5c-15.2002 0 -26.3008 -7.90039 -28.6006 -19.9004h-27.2998
+c0.900391 25.2002 24.7002 43.6006 56.7998 43.6006c34.6006 0 57.1006 -18.2002 57.1006 -46.3008v-97h-28v23.4004h-0.600586c-8 -15.2998 -25.5996 -24.9004 -44.5996 -24.9004zM428.9 135.2c20.5 0 36 13 36 31.2002v11l-33.6006 -2.10059
+c-18.8994 -1.09961 -28.7998 -8.2002 -28.7998 -20.5c0 -11.7998 10.2998 -19.5996 26.4004 -19.5996zM531.4 60.5996c-2.30078 0 -9.80078 0.300781 -11.6006 0.700195v23.4004c1.90039 -0.200195 6.5 -0.5 8.90039 -0.5c13.3994 0 20.8994 5.7002 25.5 20.2998
+l2.7998 8.59961l-51.2002 141.9h31.6006l35.5996 -115.1h0.599609l35.6006 115.1h30.7998l-53.0996 -149c-12.1006 -34.0996 -26 -45.4004 -55.5 -45.4004z" />
+ <glyph glyph-name="cc-apple-pay" unicode="" horiz-adv-x="576"
+d="M302.2 229.6c0 -17.1992 -10.5 -27.0996 -29 -27.0996h-24.2998v54.2002h24.3994c18.4004 0 28.9004 -9.7998 28.9004 -27.1006zM349.7 167c0 8.59961 6.89941 13.5 20.2002 14.4004l23.5 1.5v-7.7002c0 -12.7998 -10.8008 -21.9004 -25.2002 -21.9004
+c-11.2998 0 -18.5 5.40039 -18.5 13.7002zM576 369v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM127.8 250.8c8.40039 -0.700195 16.7998 4.2002 22.1006 10.4004
+c5.19922 6.39941 8.59961 15 7.69922 23.7002c-7.39941 -0.300781 -16.5996 -4.90039 -21.8994 -11.3008c-4.7998 -5.5 -8.90039 -14.3994 -7.90039 -22.7998zM188.4 176.3c-0.200195 0.200195 -19.6006 7.60059 -19.8008 30c-0.199219 18.7002 15.3008 27.7002 16 28.2002
+c-8.7998 13 -22.3994 14.4004 -27.0996 14.7002c-12.2002 0.700195 -22.5996 -6.90039 -28.4004 -6.90039c-5.89941 0 -14.6992 6.60059 -24.2998 6.40039c-12.5 -0.200195 -24.2002 -7.2998 -30.5 -18.6006c-13.0996 -22.5996 -3.39941 -56 9.2998 -74.3994
+c6.2002 -9.10059 13.7002 -19.1006 23.5 -18.7002c9.30078 0.400391 13 6 24.2002 6c11.2998 0 14.5 -6 24.2998 -5.90039c10.2002 0.200195 16.5 9.10059 22.8008 18.2002c6.89941 10.4004 9.7998 20.4004 10 21zM323.8 229.7c0 26.5996 -18.5 44.7998 -44.8994 44.7998
+h-51.2002v-136.4h21.2002v46.6006h29.2998c26.7998 0 45.5996 18.3994 45.5996 45zM413.8 206c0 19.7002 -15.7998 32.4004 -40 32.4004c-22.5 0 -39.0996 -12.9004 -39.7002 -30.5h19.1006c1.59961 8.39941 9.39941 13.8994 20 13.8994c13 0 20.2002 -6 20.2002 -17.2002
+v-7.5l-26.4004 -1.59961c-24.5996 -1.5 -37.9004 -11.5996 -37.9004 -29.0996c0 -17.7002 13.7002 -29.4004 33.4004 -29.4004c13.2998 0 25.5996 6.7002 31.2002 17.4004h0.399414v-16.4004h19.6006v68h0.0996094zM516 237.1h-21.5l-24.9004 -80.5996h-0.399414
+l-24.9004 80.5996h-22.2998l35.9004 -99.2998l-1.90039 -6c-3.2002 -10.2002 -8.5 -14.2002 -17.9004 -14.2002c-1.69922 0 -4.89941 0.200195 -6.19922 0.300781v-16.4004c1.19922 -0.400391 6.5 -0.5 8.09961 -0.5c20.7002 0 30.4004 7.90039 38.9004 31.7998z" />
+ <glyph glyph-name="fly" unicode="" horiz-adv-x="384"
+d="M197.8 20.2002c12.9004 -11.7002 33.7002 -33.2998 33.2002 -50.7002c0 -0.799805 -0.0996094 -1.59961 -0.0996094 -2.5c-1.80078 -19.7998 -18.8008 -31.0996 -39.1006 -31c-25 0.0996094 -39.8994 16.7998 -38.7002 35.7998c1 16.2002 20.5 36.7002 32.4004 47.6006
+c2.2998 2.09961 2.7002 2.69922 5.59961 3.59961c3.40039 0 3.90039 -0.299805 6.7002 -2.7998zM331.9 380.7c23.8994 -40 27.7998 -73.2998 20.7998 -112.5c-15.2002 -69.9004 -103.601 -166.5 -155.9 -215.7c-1.7002 -1.59961 -1.39941 -1.40039 -3.5 -2.09961
+l-3.2998 0.0996094c-1.7002 0.599609 -4.5 3.5 -6.2002 5.09961c-58.7998 57.8008 -148.7 151.601 -155.8 233.801c-1.5 71.3994 29.2998 113.399 82.9004 141.3c9.89941 4.09961 37 17.2998 81.0996 17.2998c22 0.200195 51.0996 -4.5 76.5996 -15.2002
+c24.7002 -11.5 47 -26.3994 63.3008 -52.0996zM186.8 96.0996v325.7c-57.8994 -5.5 -72.7002 -89.2002 -69.2998 -136.7c4.09961 -58.2998 41.2998 -137.899 69.2998 -189zM328.7 268c15.7998 54.9004 -10.9004 134.7 -99.7002 153
+c38.2002 -25.5996 49.5996 -85.5 48 -131.4c-2 -58.5996 -39.4004 -140 -67.2002 -191.899c41.6006 42.2998 102.5 113.5 118.9 170.3z" />
+ <glyph glyph-name="node" unicode="" horiz-adv-x="640"
+d="M316.3 -4c-2.09961 0 -4.2002 0.599609 -6.09961 1.59961l-19.2002 11.4004c-2.90039 1.59961 -1.5 2.2002 -0.5 2.5c3.7998 1.2998 4.59961 1.59961 8.7002 4c0.399414 0.200195 1 0.0996094 1.39941 -0.0996094l14.8008 -8.80078
+c0.5 -0.299805 1.2998 -0.299805 1.7998 0l57.7998 33.4004c0.5 0.299805 0.900391 0.900391 0.900391 1.59961v66.7002c0 0.700195 -0.300781 1.2998 -0.900391 1.60059l-57.7998 33.2998c-0.5 0.299805 -1.2002 0.299805 -1.7998 0l-57.8008 -33.2998
+c-0.599609 -0.300781 -0.899414 -1 -0.899414 -1.60059v-66.7002c0 -0.599609 0.399414 -1.19922 0.899414 -1.5l15.8008 -9.09961c8.59961 -4.2998 13.8994 0.799805 13.8994 5.7998v65.9004c0 0.899414 0.700195 1.7002 1.7002 1.7002h7.2998
+c0.900391 0 1.7002 -0.700195 1.7002 -1.7002v-65.9004c0 -11.5 -6.2002 -18 -17.0996 -18c-3.30078 0 -6 0 -13.3008 3.60059l-15.1992 8.69922c-3.7002 2.2002 -6.10059 6.2002 -6.10059 10.5v66.7002c0 4.2998 2.2998 8.40039 6.10059 10.5l57.7998 33.4004
+c3.7002 2.09961 8.5 2.09961 12.0996 0l57.7998 -33.4004c3.7002 -2.2002 6.10059 -6.2002 6.10059 -10.5v-66.7002c0 -4.2998 -2.2998 -8.39941 -6.10059 -10.5l-57.7998 -33.3994c-1.7002 -1.10059 -3.7998 -1.7002 -6 -1.7002zM363 61.7998
+c0 -12.5996 -10.5 -19.7998 -29 -19.7998c-25.2998 0 -30.5996 11.5996 -30.5996 21.2998c0 1 0.799805 1.7002 1.69922 1.7002h7.5c0.900391 0 1.60059 -0.599609 1.7002 -1.40039c1.10059 -7.59961 4.5 -11.3994 19.7998 -11.3994
+c12.2002 0 17.4004 2.7002 17.4004 9.2002c0 3.69922 -1.5 6.39941 -20.4004 8.2998c-15.7998 1.59961 -25.5996 5 -25.5996 17.7002c0 11.5996 9.7998 18.5996 26.2998 18.5996c18.5 0 27.6006 -6.40039 28.7998 -20.2002
+c0.100586 -0.5 -0.0996094 -0.899414 -0.399414 -1.2998c-0.299805 -0.299805 -0.700195 -0.5 -1.2002 -0.5h-7.5c-0.799805 0 -1.40039 0.5 -1.59961 1.2998c-1.80078 8 -6.2002 10.6006 -18.1006 10.6006c-13.2998 0 -14.7998 -4.60059 -14.7998 -8.10059
+c0 -4.2002 1.7998 -5.39941 19.7998 -7.7998c17.7998 -2.40039 26.2002 -5.7002 26.2002 -18.2002zM417.5 111.9c0 -6.10059 -5 -11.1006 -11.0996 -11.1006c-6.10059 0 -11.1006 5 -11.1006 11.1006c0 6.2998 5.2002 11.0996 11.1006 11.0996
+c6 0.0996094 11.0996 -4.7998 11.0996 -11.0996zM415.7 111.9c0 5.19922 -4.2002 9.2998 -9.40039 9.2998c-5.09961 0 -9.2998 -4.10059 -9.2998 -9.2998c0 -5.2002 4.2002 -9.40039 9.2998 -9.40039c5.2002 0.0996094 9.40039 4.2998 9.40039 9.40039zM411.2 105.7
+h-2.60059c-0.0996094 0.599609 -0.5 3.7998 -0.5 3.89941c-0.199219 0.700195 -0.399414 1.10059 -1.2998 1.10059h-2.2002v-5h-2.39941v12.5h4.2998c1.5 0 4.40039 0 4.40039 -3.2998c0 -2.30078 -1.5 -2.80078 -2.40039 -3.10059
+c1.7002 -0.0996094 1.7998 -1.2002 2.09961 -2.7998c0.100586 -1 0.300781 -2.7002 0.600586 -3.2998zM408.4 114.5c0 1.7002 -1.2002 1.7002 -1.80078 1.7002h-2v-3.5h1.90039c1.59961 0 1.90039 1.09961 1.90039 1.7998zM137.3 257l-0.200195 -95
+c0 -1.2998 -0.699219 -2.59961 -1.7998 -3.2002c-1.09961 -0.700195 -2.59961 -0.700195 -3.7002 0l-36.3994 20.9004c-2.2998 1.2998 -3.7002 3.7998 -3.7002 6.39941v44.4004c0 2.59961 -1.40039 5.09961 -3.7002 6.40039l-15.5 8.89941
+c-1.09961 0.700195 -2.39941 1 -3.7002 1c-1.2998 0 -2.5 -0.299805 -3.69922 -1l-15.5 -8.89941c-2.30078 -1.30078 -3.7002 -3.80078 -3.7002 -6.40039v-44.4004c0 -2.59961 -1.40039 -5 -3.7002 -6.39941l-36.4004 -20.9004
+c-1.19922 -0.700195 -2.59961 -0.700195 -3.69922 0c-1.10059 0.700195 -1.80078 1.90039 -1.80078 3.2002l-0.0996094 95c0 2.59961 1.40039 5.09961 3.7002 6.40039l61.2002 35.2998c1.09961 0.599609 2.19922 1 3.39941 1h0.600586
+c1.19922 -0.100586 2.39941 -0.400391 3.39941 -1l61.2998 -35.2998c2.30078 -1.30078 3.7002 -3.7002 3.7002 -6.40039zM472.5 360.7v-176.4c0 -2.59961 -1.40039 -5.09961 -3.7002 -6.39941l-61.2998 -35.4004c-2.2998 -1.2998 -5.09961 -1.2998 -7.40039 0
+l-61.2998 35.4004c-2.2998 1.2998 -3.7002 3.7998 -3.7002 6.39941v70.7998c0 2.60059 1.40039 5.10059 3.7002 6.40039l61.2998 35.4004c2.30078 1.2998 5.10059 1.2998 7.40039 0l15.2998 -8.80078c1.7002 -1 3.90039 0.300781 3.90039 2.2002v94
+c0 2.7998 3 4.60059 5.5 3.2002l36.5 -20.4004c2.2998 -1.19922 3.7998 -3.69922 3.7998 -6.39941zM426.5 231.8c0 0.700195 -0.400391 1.2998 -0.900391 1.60059l-21 12.1992c-0.599609 0.300781 -1.2998 0.300781 -1.89941 0l-21 -12.1992
+c-0.600586 -0.300781 -0.900391 -0.900391 -0.900391 -1.60059v-24.2998c0 -0.700195 0.400391 -1.2998 0.900391 -1.59961l21 -12.1006c0.599609 -0.299805 1.2998 -0.299805 1.7998 0l21 12.1006c0.599609 0.299805 0.900391 0.899414 0.900391 1.59961v24.2998h0.0996094
+zM636.3 232.5l-36.7002 -21.2998c-2.5 -1.40039 -5.59961 0.399414 -5.59961 3.2002v17.3994c0 1.2998 -0.799805 2.5 -1.90039 3.2002l-19.1992 11.0996c-1.10059 0.700195 -2.60059 0.700195 -3.7002 0l-19.2002 -11.0996
+c-1.2002 -0.700195 -1.90039 -1.90039 -1.90039 -3.2002v-22.2002c0 -1.2998 0.700195 -2.5 1.90039 -3.19922l61.7002 -35.4004c2.5 -1.40039 2.5 -5 0 -6.40039l-36.7998 -20.5c-2.30078 -1.2998 -5.10059 -1.2998 -7.30078 0l-60.8994 34.7002
+c-2.2998 1.2998 -3.7002 3.7002 -3.7002 6.40039v70.7998c0 2.59961 1.40039 5.09961 3.7002 6.40039l61.2998 35.3994c2.2998 1.2998 5.09961 1.2998 7.40039 0l60.8994 -35.3994c2.2998 -1.30078 3.7002 -3.80078 3.7002 -6.40039v-17.0996
+c0 -2.60059 -1.40039 -5.10059 -3.7002 -6.40039zM559 229l11.7998 6.7998c0.400391 0.299805 1 0.299805 1.40039 0l11.7998 -6.7998c0.400391 -0.200195 0.700195 -0.700195 0.700195 -1.2002v-13.5996c0 -0.5 -0.299805 -0.900391 -0.700195 -1.2002l-11.7998 -6.7998
+c-0.400391 -0.299805 -1 -0.299805 -1.40039 0l-11.7998 6.7998c-0.400391 0.200195 -0.700195 0.700195 -0.700195 1.2002v13.5996c0 0.5 0.299805 0.900391 0.700195 1.2002zM304.8 185.5c0 -0.599609 -0.0996094 -1.2002 -0.200195 -1.7002
+c-0.5 -2 -1.7998 -3.7002 -3.59961 -4.7002l-61 -35.1992c-2.2002 -1.30078 -5 -1.40039 -7.40039 0l-61.1992 35.1992c-2.10059 1.2002 -4 3.60059 -4 6.40039v70.4004c0 2.69922 1.59961 5.09961 3.89941 6.39941l61.1006 35.2002
+c2.39941 1.40039 5.2998 1.2002 7.39941 0l61.1006 -35.2002c2.2998 -1.2998 3.89941 -3.7998 3.89941 -6.39941v-70.4004zM230.5 310.4l-0.799805 -0.5h1.09961zM306.7 180.2l-0.400391 0.700195v-0.900391z" />
+ <glyph glyph-name="osi" unicode="" horiz-adv-x="512"
+d="M8 181.56c2.2998 135.801 97.3994 232.441 213.799 248.102c138.8 18.5996 255.601 -75.7998 278 -201.101c21.2998 -118.8 -44 -230 -151.6 -274c-9.2998 -3.7998 -14.4004 -1.69922 -18 7.7002c-17.7998 46.2998 -35.5996 92.6328 -53.3994 138.999
+c-3.09961 8.10059 -1 13.2002 7 16.7998c24.2002 11 39.2998 29.4004 43.2998 55.8008c0.469727 3.01562 0.850586 7.94043 0.850586 10.9922c0 36.2061 -29.2764 68.1074 -65.3506 71.207c-39 3.40039 -71.7998 -23.6992 -77.5 -59.6992
+c-5.19922 -33 11.1006 -63.7002 41.9004 -77.7002c9.59961 -4.40039 11.5 -8.60059 7.7998 -18.4004c-17.8994 -46.5996 -35.7998 -93.2324 -53.7002 -139.899c-2.59961 -6.90039 -8.2998 -9.30078 -15.5 -6.5c-52.5996 20.2998 -101.399 61 -130.8 119
+c-24.8994 49.1992 -25.2002 87.6992 -26.7998 108.699zM28.8994 183.461c0.399414 -6.59961 0.599609 -14.3008 1.2998 -22.1006c6.2998 -71.9004 49.5996 -143.5 131 -183.101c3.2002 -1.5 4.39941 -0.799805 5.59961 2.2998c14.9004 39.1006 29.9004 78.2012 45 117.302
+c1.2998 3.2998 0.600586 4.7998 -2.39941 6.69922c-31.6006 19.9004 -47.3008 48.5 -45.6006 86c1 21.6006 9.2998 40.5 23.7998 56.3008c30 32.6992 77 39.7998 115.5 17.5996c25.3174 -14.5977 45.8643 -50.1641 45.8643 -79.3877
+c0 -3.05078 -0.296875 -7.98438 -0.664062 -11.0127c-3.59961 -30.5996 -19.2998 -53.8994 -45.7002 -69.7998c-2.69922 -1.59961 -3.5 -2.89941 -2.2998 -6c15.2002 -39.2002 30.2666 -78.4336 45.2002 -117.7c1.2002 -3.09961 2.40039 -3.7998 5.59961 -2.2998
+c35.5 16.6006 65.2002 40.2998 88.1006 72c34.7998 48.2002 49.0996 101.9 42.2998 161c-13.7002 117.5 -119.4 214.8 -255.5 198c-106.1 -13 -195.3 -102.5 -197.1 -225.8z" />
+ <glyph glyph-name="react" unicode="" horiz-adv-x="512"
+d="M418.2 270.8c54.3994 -18.7002 93.7998 -48.0996 93.7998 -78.3994c0 -31.7002 -41.7998 -62.6006 -99.5 -81.7002c-3.09961 -1 -6.2002 -2 -9.40039 -2.90039c1.10059 -4.59961 2.10059 -9.09961 3 -13.5c11.4004 -57.5996 2.60059 -104.899 -24.3994 -120.5
+c-26.1006 -15.0996 -68.4004 -0.200195 -111.2 36.6006c-4.59961 4 -9.2002 8.09961 -13.5996 12.3994c-3.5 -3.39941 -7 -6.59961 -10.5 -9.7002c-44.2002 -38.6992 -89.6006 -54.6992 -116.601 -39.0996c-26.2002 15.0996 -34.3994 59.0996 -23.8994 114.6
+c1.19922 6.10059 2.5 12 4 18c-4.60059 1.30078 -9.10059 2.80078 -13.6006 4.30078c-55.5 19 -96.2998 50.2998 -96.2998 81.5c0 30.1992 38.2998 59.3994 91.7002 77.8994c5.89941 2.10059 12.2002 4.10059 18.5996 5.90039
+c-1.39941 5.59961 -2.59961 11.0996 -3.7002 16.7002c-11 56.3994 -3.19922 101.5 23 116.699c27.3008 15.9004 72.9004 -1.09961 118.4 -41.5c2.7998 -2.5 5.59961 -5.09961 8.2998 -7.69922c4 3.89941 8.2002 7.7998 12.5 11.5
+c43.4004 37.7998 86.2998 53.5 112.601 38.3994c27.2998 -15.7998 35.3994 -63.7002 23.0996 -123.3c-0.799805 -3.7002 -1.59961 -7.40039 -2.5 -11.0996c5.40039 -1.60059 10.7998 -3.30078 16.2002 -5.10059zM282.9 355.7c-4 -3.5 -7.80078 -7 -11.7002 -10.7002
+c15.3994 -16.7002 29.5996 -34.5 42.5996 -53.0996c22.6006 -2 45.1006 -5.60059 67.2998 -10.6006c0.900391 3.2998 1.60059 6.60059 2.30078 10c10.5996 51.5 4.09961 90.7002 -12.8008 100.4c-15.7998 9.09961 -50.5 -3.60059 -87.6992 -36zM167.2 140.5
+c-5 8.59961 -9.7002 17.2998 -14.2998 26.0996c-6.40039 -15.1992 -11.9004 -30.0996 -16.3008 -44.5c15.3008 -3.2998 30.8008 -5.7998 46.4004 -7.5c-5.5 8.5 -10.7002 17.2002 -15.7998 25.9004zM136.9 260.8c4.39941 -14.0996 9.69922 -28.7002 16 -43.5996
+c4.5 8.7998 9.2998 17.5 14.1992 26c4.90039 8.59961 10.1006 17.0996 15.4004 25.3994c-15.9004 -2 -31.2002 -4.59961 -45.5996 -7.7998zM164.3 191.9c6.7002 -13.8008 13.7998 -27.3008 21.5 -40.6006s15.9004 -26.2998 24.6006 -39
+c14.6992 -0.899414 29.8994 -1.39941 45.5996 -1.39941s31.2002 0.5 46.0996 1.59961c8.5 12.7998 16.6006 25.7002 24.2002 39c7.7002 13.4004 14.9004 27 21.6006 40.7998c-6.80078 13.7002 -14 27.2002 -21.7002 40.4004s-15.7998 26.0996 -24.2998 38.7002
+c-14.9004 1.09961 -30.3008 1.69922 -45.9004 1.69922s-30.9004 -0.599609 -45.9004 -1.69922c-8.59961 -12.7002 -16.7998 -25.6006 -24.3994 -38.9004c-7.60059 -13.2998 -14.7998 -26.7998 -21.4004 -40.5996zM344.9 140.7c-5 -8.60059 -10.1006 -17.2002 -15.5 -25.6006
+c15.7998 1.80078 31.5 4.5 47 8c-4.90039 15.1006 -10.5 29.8008 -16.9004 44.3008c-4.7002 -9 -9.5 -17.9004 -14.5996 -26.7002zM359.3 217.2c6.10059 14.2002 11.5 28.5996 16.1006 43.3994c-14.4004 3.30078 -29.8008 6 -45.9004 8
+c5.2998 -8.2998 10.4004 -16.6992 15.2998 -25.1992c5 -8.60059 9.7998 -17.4004 14.5 -26.2002zM256.2 329.7c-10 -10.9004 -20.1006 -22.9004 -29.9004 -35.7998c19.7998 0.899414 39.7002 0.899414 59.5 0c-9.2002 12.3994 -19.0996 24.3994 -29.5996 35.7998zM140.2 391
+c-15.7998 -9.09961 -22 -45.5996 -12.6006 -94c1.10059 -5.2002 2.2002 -10.4004 3.5 -15.5c22.2002 4.90039 44.6006 8.40039 67.2002 10.4004c13.1006 18.5996 27.4004 36.3994 42.9004 53.0996c-2.60059 2.40039 -5.10059 4.7998 -7.60059 7
+c-39.2998 34.7998 -76.5996 48.7998 -93.3994 39zM115.7 127.4c6.89941 22 15.2002 43.5996 24.7998 64.5c-9.5 20.5996 -17.7002 41.8994 -24.5 63.5996c-5.7998 -1.7002 -11.5996 -3.5 -17.2998 -5.5c-45.6006 -15.9004 -77.2002 -39.2998 -77.2002 -57.5996
+c1.90039 -12.1006 8.7002 -22.9004 18.7998 -29.9004c17.5 -13.9004 41.7002 -24.5 63 -31.2002c4.10059 -1.39941 8.2002 -2.7002 12.4004 -3.89941zM232.3 29.4004c3.2002 2.7998 6.40039 5.7998 9.60059 8.89941c-15.5 16.7998 -30 34.7002 -43.2002 53.4004
+c-22.9004 1.7002 -45.5 5 -67.9004 9.7998c-1.39941 -5.5 -2.59961 -11.0996 -3.7002 -16.7002c-9 -47.5 -2.39941 -82.7998 13.5 -92c11.4004 -4.5 24.2002 -4 35.3008 1.2998c20.7998 8.2002 39.8994 20.2002 56.3994 35.3008zM256.8 53.7002
+c10.5 11.5996 20.4004 23.7002 29.6006 36.3994c-10 -0.5 -20.1006 -0.699219 -30.4004 -0.699219c-10 0 -19.9004 0.199219 -29.5 0.599609c9.90039 -13.0996 20.0996 -25.2998 30.2998 -36.2998zM387.5 23.7002c3.2002 22.2002 2.40039 44.7002 -2.5 66.2998
+c-0.799805 4 -1.7002 8.09961 -2.7002 12.2002c-22.5 -5.10059 -45.2998 -8.60059 -68.2002 -10.5c-12.7998 -18.7998 -26.8994 -36.7002 -42.1992 -53.6006c4.2998 -4 8.5 -7.89941 12.6992 -11.5c36.6006 -31.3994 70.5 -43.3994 86.4004 -34.1992
+c9.59961 7.69922 15.5996 19.0996 16.5 31.2998zM405.7 131.2c49.8994 16.5 84.7998 41.7998 84.7998 61.3994c0 18.2002 -32.7002 42 -79.2998 58c-4.7998 1.60059 -9.7998 3.2002 -15 4.7002c-6.7998 -21.5 -14.9004 -42.5 -24.5 -62.8994
+c9.89941 -20.7002 18.5 -42 25.5 -63.8008c2.89941 0.800781 5.7002 1.7002 8.5 2.60059zM256 146.2c-25.2998 0 -45.7998 20.5 -45.7998 45.7998s20.5 45.7998 45.7998 45.7998s45.7998 -20.5 45.7998 -45.7998s-20.5 -45.7998 -45.7998 -45.7998z" />
+ <glyph glyph-name="autoprefixer" unicode="" horiz-adv-x="640"
+d="M318.4 432l164.1 -480h-77.5l-25.2002 81.4004h-119.5l-25.3994 -81.4004h-77.5zM278.1 90.0996h83.6006l-40.9004 130.4h-1.5zM640 43l-158.5 -9.5l-19.4004 56.5l167.9 -15.5996zM177.9 90l-19.4004 -56.4004l-158.5 9.40039l10 31.2998z" />
+ <glyph glyph-name="less" unicode="" horiz-adv-x="640"
+d="M612.7 229c0 -11 6.7998 -22.5996 27.2998 -23.2998v-27.2998c-20.5 -1 -27.2998 -12.6006 -27.2998 -23.6006c0 -20.3994 3.2002 -32 3.2002 -54.5996c0 -34.2002 -12.7002 -45.2002 -40.5 -45.2002h-20.5v25.2002h6.2998v0.5c13.5996 0 17.2998 4.7002 17.2998 22.5996
+c0 17.2998 -1.59961 32.6006 -1.59961 51.5c0 24.2002 7.7998 33.6006 23.5996 37.2998v1.60059c-15.7002 3.7002 -23.5996 13.0996 -23.5996 37.2998c0 18.9004 1.59961 35.2002 1.59961 51.5c0 17.4004 -3.09961 22.0996 -17.2998 22.0996h-6.2998v24.2002h20.5
+c27.8994 0 40.5 -11 40.5 -45.2002c0 -22 -3.2002 -34.0996 -3.2002 -54.5996zM507.1 197c20.5 -6.7998 43 -18.9004 43 -47.7998c0 -28.9004 -22.5996 -51 -64.5996 -51c-20 0 -44.0996 9 -59.9004 22.0996l21 30.5c14.2002 -11 27.4004 -16.2998 40.5 -16.2998
+c14.2002 0 20.5 5.2002 20.5 13.0996c0 10.5 -15.7998 15.8008 -32.0996 22.1006c-18.9004 7.2998 -41.5 20.5 -41.5 46.2002c0 28.8994 24.2002 49.3994 59.9004 49.3994c24.1992 0 42.0996 -10.5 55.1992 -20.5l-21 -27.7998c-11.5 8.40039 -22 13.0996 -33.5996 13.0996
+s-17.9004 -4.69922 -17.9004 -12.5996c0 -10.5 14.7002 -14.2002 30.5 -20.5zM148.2 137.6c1.59961 0 3.09961 0 6.2002 0.800781l5.2998 -34.2002c-5.7002 -2.10059 -13.6006 -3.7002 -23.6006 -3.7002c-32.0996 0 -43.0996 21 -43.0996 53.0996v150.801h-14.0996
+c-13.6006 0 -17.3008 -4.80078 -17.3008 -22.1006s1.60059 -32.5996 1.60059 -51.5c0 -24.2002 -7.7998 -33.5996 -23.6006 -37.2998v-1.59961c15.7002 -3.7002 23.6006 -13.1006 23.6006 -37.3008c0 -19.3994 -1.60059 -34.1992 -1.60059 -51.5
+c0 -17.2998 4.2002 -22.5996 17.3008 -22.5996h6.2998v-24.2002h-20.5c-27.9004 0 -40.5 11 -40.5 45.2002c0 22.5996 3.2002 34.2002 3.2002 53.5996c0 11 -6.80078 22.6006 -27.3008 23.1006v27.2998c20.5 1 27.3008 12.5996 27.3008 23.5996
+c0 19.4004 -3.2002 32 -3.2002 54.6006c0 34.2002 12.5996 45.2002 41 45.2002h74.5996v-178.2c0 -9.90039 4.7002 -13.1006 8.40039 -13.1006zM379.9 197c20.5 -6.7998 43.0996 -18.9004 43 -47.7998c0 -28.9004 -22.6006 -51 -64.6006 -51
+c-20 0 -44.0996 9 -59.8994 22.0996l20.5 30.5c14.1992 -11 27.3994 -16.2998 40.5 -16.2998c14.1992 0 20.5 5.2002 20.5 13.0996c0 10.5 -15.8008 15.8008 -32.1006 22.1006c-18.8994 7.2998 -41.5 20.5 -41.5 46.2002c0 28.8994 24.2002 49.3994 59.9004 49.3994
+c24.2002 0 42.0996 -10.5 55.2002 -20.5l-21 -27.7998c-11.5 8.40039 -22 13.0996 -33.6006 13.0996c-11.5996 0 -17.8994 -4.69922 -17.8994 -12.5996c0 -10.5 14.6992 -14.2002 31 -20.5zM224.9 265.8c44.0996 0 67.2998 -33.0996 66.6992 -75.7002
+c0 -8.39941 -1.09961 -15.6992 -1.59961 -19.3994h-95.2002c4.2002 -24.2002 20.5 -34.2002 41.5 -34.2002c11.6006 0 22.6006 3.2002 34.2002 10l15.7998 -27.7998c-16.2998 -11.1006 -37.2998 -17.9004 -56.2002 -17.9004c-45.0996 0 -79.2998 30.5 -79.2998 82.5
+c-1 50.4004 35.7002 82.5 74.1006 82.5zM194.9 199.6h56.7998c0 17.9004 -7.40039 31 -26.2998 31c-14.7002 0 -27.3008 -10 -30.5 -31z" />
+ <glyph glyph-name="sass" unicode="" horiz-adv-x="640"
+d="M301.84 69.0801c-0.299805 -0.599609 -0.599609 -1.08008 0 0zM550.97 156.08c57.9092 0.300781 90.5703 -37.0801 88.9707 -71.0801c-1.10059 -26.9004 -25.6904 -37.9004 -30.29 -38.7002c-3.30078 -0.599609 -5.10059 -0.700195 -5.60059 1.90039
+c-0.299805 1.7998 0.900391 2.7002 4.7998 5.09961c3.90039 2.40039 15.6006 10.5 17.7002 25c2.10059 14.5 -8.7998 49.2998 -64.4795 55.7998c-26 3 -46.3906 -0.599609 -62.0898 -7.19922c2.89941 -7.60059 5.09961 -15.5 5.39941 -23.4004
+c0.799805 -17.5 -11.29 -30.4004 -23.79 -39.5996c-5.48535 -3.98535 -15.1572 -8.95801 -21.5898 -11.1006c-5.2002 -2.2002 -12.2002 -4.5 -17.0996 -3.5c-10.9004 2.2002 -16.7002 11.7998 -9.30078 33.1006c4 11.5 15.5 29 34.0908 44.0996
+c-4.30078 8.7002 -8.99023 17.5996 -11.3906 25.7002c-2.18164 7.00781 -4.95898 18.5664 -6.2002 25.7998c0 0 -15.2998 -31.7197 -35.0898 -60.6201c-1.09961 -1.7002 -2.2998 -3.39941 -3.39941 -5c3.7998 -9 6.89941 -18.5996 7.2998 -28.2002
+c0.700195 -17.3994 -6.90039 -30.5996 -19.4004 -39.7998c-5.16211 -3.70605 -14.208 -8.45508 -20.1895 -10.5996c-3.90039 -1.7998 -12 -4.60059 -23.5 -5.40039c-6.29004 -0.5 -12.29 -0.0996094 -15.6904 2.5c-4.59961 3.40039 -5.2002 7.7998 -2.7998 13.7002
+c2 5 17.21 22.4004 30 37.5996c3.5 4.2002 6.90039 8.5 9.90039 12.5c-0.0498047 0.0449219 -0.09375 0.134766 -0.100586 0.200195c0 0 2.2998 3 6.10059 8.2002c-4.7002 10.0996 -10.6006 20.5 -13.4004 30c-2.18164 7.00781 -4.95898 18.5664 -6.2002 25.7998
+c0 0 -15.4902 -39.7002 -31.6895 -71.5c-12.4902 -24.5996 -20.79 -39.5 -24.5908 -46v-0.299805s-0.5 -0.900391 -1.5 -2.40039c-0.5 -0.799805 -0.699219 -1.19922 -0.699219 -1.19922v0.0996094c-4.20996 -6.2002 -13.6104 -18.2998 -23 -18.2998
+c-25.7002 0 -16.3008 52.2002 -16.3008 52.2002s-7.5 -19.3008 -16 -35.9004c-6.88965 -13.5996 -13.0898 -25 -26.8896 -25c-3.90039 0 -10.1904 0.0996094 -15.3896 5c-11.8008 11.2002 -20.9004 39.7002 -19.1006 61.7002c1.5 18.7998 4.40039 31.7998 8.40039 42.5996
+c-7.10059 -3.89941 -15.2002 -8.39941 -23.4902 -13.2998c-4.2998 -2.5 -8.59961 -5 -12.7998 -7.5c0.0996094 -0.299805 0.299805 -0.5 0.400391 -0.799805c10.5996 -20.4004 13.3896 -65.2002 -9.60059 -99.5s-65.7803 -55.2002 -107.57 -43.6006
+c-13.3896 3.80078 -33.79 31.6006 -16.29 70.4004c15.4902 34.2002 77.3809 66.5996 93.6709 74.7002c1.39941 0.799805 2.89941 1.59961 4.5 2.5c-32.4902 28.3994 -113.671 66.7998 -125.061 125.7c-3.2002 16.5996 4.58984 56.2998 53.2803 101.899
+c40.9902 38.2998 97.9697 67.7002 150.66 86.4004c88.4297 31.3994 181.949 12.8994 196.31 -43.5c14.1006 -55.5 -33.9902 -121.8 -95.7695 -145.601c-54.9902 -21.2998 -100.471 -17.8994 -119.17 -11.7998c-21.29 7 -33.79 21 -36.79 28.9004
+c-1.2002 3.09961 -3.30078 8.2998 0 10.0996c2 1.10059 2.7998 0.799805 8.09961 -5.09961c5.09961 -5.60059 25.4902 -20.6006 64.2803 -16.2998c101.77 11.3994 163.06 90.5 143.66 133c-13.4902 29.7998 -91.8408 43.1992 -189.841 -5.60059
+c-119.569 -59.5996 -126.069 -108.7 -127.069 -127.399c-2.7998 -51.3008 63.2793 -78.3008 99.0693 -116.5c0.5 -0.5 0.900391 -1 1.40039 -1.5c6.7002 3.69922 13.7998 7.59961 20.7002 11.3994c18 9.90039 35.0996 19.2002 43 23.5
+c12.5801 18.2998 38.1797 38.5 56.5801 38.5c29.4893 0 19.3896 -42.3994 19.3896 -42.3994s0.599609 2 1.40039 2c0.799805 0 4.09961 5.5 13.1992 2.19922c9.40039 -3.5 7.2002 -10 7.30078 -10.6992c0.0996094 -1.30078 -11 -38.9004 -15.7002 -63.1006
+c-2.2002 -11.5 -0.900391 -19.8994 -0.299805 -19.8994c0.899414 0 2.7998 2.89941 4.5 6.09961v0.0996094s1.2998 2.40039 3.5 6.7002c0 0.200195 -0.200195 -0.299805 -0.5 -0.799805c0.199219 0.400391 0.5 0.900391 0.899414 1.7002
+c2.60059 5 6.2002 12.3994 10.4004 21.5996c8.18945 18.1006 39.4795 87.7002 42.0801 95.4004c2.59961 7.7002 4 15.7002 5.2998 19.0996c1.2998 3.40039 12.4102 6 25.2998 5.90039c12.8906 -0.100586 14.1904 -5.60059 14.29 -6.7002
+c0.100586 -1.09961 -6.2002 -16.4004 -7.59961 -27.2002c-1.40039 -10.7998 -0.100586 -16.2002 1.09961 -25.2998c0.799805 -6 4.5 -13.5 8.90039 -22c13.2998 21.7998 36.79 63.5996 39.0898 75.2998c1.03613 5.38965 3.41016 13.9473 5.2998 19.1006
+c1.29004 3.39941 12.3896 6 25.29 5.89941c12.9004 -0.0996094 14.2002 -5.59961 14.2998 -6.7002c0.100586 -1.09961 -6.2002 -16.3994 -7.59961 -27.1992c-1.40039 -10.8008 -0.100586 -16.2002 1.09961 -25.3008c1 -7.7998 7.10059 -18.1992 13 -30.0996
+c15.1289 7.45215 41.0938 13.5 57.958 13.5h0.0419922zM121.79 11.3799c19.4004 21.0996 27.3896 47.9199 19.0996 78.3203c-1 -0.600586 -2 -1.10059 -2.89941 -1.7002c0 0 -0.400391 -0.200195 -1.2002 -0.700195c-4.7998 -2.89941 -8.7002 -5.2998 -11.4004 -6.89941
+c-11.7998 -7.40039 -29.5898 -19.4004 -43.3896 -32.4004c-22.6904 -21.4199 -27.3896 -51 -15.4902 -57.9199c11.0898 -6.40039 36.8906 1.2002 55.2803 21.2998zM256.15 102.78c4 9.7998 19.6992 53.2998 16.1992 59.2002c-2.59961 4.5 -13.6992 0.899414 -23.79 -10.4004
+c-6.2998 -7 -16.8994 -25 -21.8994 -40.0996c-9.90039 -30 -5.60059 -60.5 1.39941 -62.3008c8.2002 -2.09961 21.6904 37.9004 28.0908 53.6006zM367.15 49.7803c7.7998 4.7998 24.96 16.8994 25.0898 34.7998c0 0.599609 -0.100586 1.09961 -0.100586 1.59961
+c-3.98926 -5.19922 -7.68945 -9.89941 -10.8896 -13.8994c-5.5 -6.7998 -19.4004 -21.7002 -19.4004 -21.7002s-2 -1.90039 -1.09961 -2.40039c1.2002 -0.699219 3.7002 0.200195 6.40039 1.60059zM452.73 69.2803c9.68945 3.5 25.7998 11.8994 25.8994 34.3994
+c-0.0673828 3.06152 -0.918945 7.90039 -1.89941 10.8008c-10.4102 -9.2002 -16.4004 -18.8008 -19 -24.5c-6.7002 -14.6006 -7 -19.3008 -5 -20.7002z" />
+ <glyph glyph-name="vuejs" unicode=""
+d="M356.9 383.7h91.0996l-224 -383.7l-224 383.7h176l48 -88.6006l56 88.6006h76.9004zM55.7002 351.7l168.3 -288.2l168.2 288.2h-53.7998l-114.4 -198.2l-114.5 198.2h-53.7998z" />
+ <glyph glyph-name="angular" unicode=""
+d="M185.7 179.9l38.0996 91.5996l38.1006 -91.5996h-76.2002zM223.8 416l207.8 -74.4004l-31.7998 -275.699l-176 -97.9004l-176 97.9004l-31.7998 275.699zM354 74.2002l-130.2 292.3l-130.1 -292.3h48.7002l26.1992 65.3994h110.601l26.2002 -65.3994h48.5996z" />
+ <glyph glyph-name="aviato" unicode="" horiz-adv-x="640"
+d="M107.2 164.5l-19 41.7998h-52.1006l-19 -41.7998h-17.0996l62.2002 131.4l62.2002 -131.4h-17.2002zM62.2002 262.6l-19.6006 -42.5h39.2002zM174.9 160.2l-62.2002 131.399h17.0996l45.1006 -96l45.0996 96h17zM255.5 164.5v127.1h15.5v-127.1h-15.5zM464.6 280.1
+v-115.6h-17.2998v115.6h-41.2002v11.5h99.6006v-11.5h-41.1006zM640 229.2c0 -9.2002 -1.7002 -17.7998 -5.09961 -25.7998c-3.40039 -8 -8.2002 -15.1006 -14.2002 -21.1006s-13.1006 -10.7998 -21.1006 -14.2002c-8 -3.39941 -16.5996 -5.09961 -25.7998 -5.09961
+s-17.7998 1.7002 -25.7998 5.09961c-8 3.40039 -15.0996 8.2002 -21.0996 14.2002s-10.8008 13 -14.2002 21.1006c-3.40039 8 -5.10059 16.5996 -5.10059 25.7998s1.7002 17.7998 5.10059 25.7998c3.39941 8 8.2002 15.0996 14.2002 21.0996s13 8.40039 21.0996 11.9004
+c8 3.40039 16.5996 5.09961 25.7998 5.09961s17.7998 -1.69922 25.7998 -5.09961s15.1006 -5.7998 21.1006 -11.9004c6 -6 10.7002 -13.0996 14.2002 -21.0996c3.39941 -8 5.09961 -16.5996 5.09961 -25.7998zM624.5 229.2c0 7.2998 -1.2998 14 -3.90039 20.2998
+c-2.59961 6.2998 -6.19922 11.7002 -10.7998 16.2998c-4.59961 4.60059 -10 8.2002 -16.2002 10.9004c-6.19922 2.7002 -12.7998 4 -19.7998 4s-13.5996 -1.2998 -19.7998 -4s-11.5996 -6.2998 -16.2002 -10.9004c-4.59961 -4.59961 -8.2002 -10 -10.7998 -16.2998
+s-3.90039 -13.0996 -3.90039 -20.2998c0 -7.2998 1.30078 -14 3.90039 -20.2998c2.59961 -6.30078 6.2002 -11.7002 10.7998 -16.3008c4.60059 -4.59961 10 -8.19922 16.2002 -10.8994s12.7998 -4 19.7998 -4s13.6006 1.2998 19.7998 4
+c6.2002 2.7002 11.6006 6.2998 16.2002 10.8994c4.60059 4.60059 8.2002 10 10.7998 16.3008c2.60059 6.2998 3.90039 13.0996 3.90039 20.2998zM529.7 132.5c6 -0.900391 10.5 -6 10.7002 -12.2998c0 -6.7998 -5.60059 -12.4004 -12.4004 -12.4004
+s-12.4004 5.60059 -12.4004 12.4004c0 6.2002 4.60059 11.2998 10.5 12.2002v5.7998l-80.2998 -9v-5.40039c5.60059 -1.09961 9.90039 -6.09961 9.90039 -12.0996c0 -6.7998 -5.60059 -10.2002 -12.4004 -10.2002s-12.3994 3.40039 -12.3994 10.2002
+c0 5.89941 4.19922 11 9.89941 12.0996v4.90039l-28.3994 -3.2002v-23.7002h5.89941v-13.7998h-5.89941v6.59961h-5v-6.59961h-5.90039v13.7998h5.90039v23.2002l-38.3008 -4.2998c-8.09961 -11.5 -19 -13.6006 -19 -13.6006l0.100586 -6.69922l5.09961 -0.200195
+l0.100586 -12.1006h-4.10059l-0.0996094 5h-5.2002l-0.0996094 -5h-4.10059l0.100586 12.1006l5.09961 0.200195l0.0996094 6.69922s-10.8994 2.2002 -19 13.6006l-38.2998 4.2998v-23.2002h5.90039v-13.7998h-5.90039v6.59961h-5v-6.59961h-5.89941v13.9004h5.89941
+v23.6992l-28.3994 3.2002v-4.89941c5.59961 -1.10059 9.89941 -6.10059 9.89941 -12.1006c0 -6.7998 -5.59961 -10.2002 -12.3994 -10.2002c-6.80078 0 -12.4004 3.40039 -12.4004 10.2002c0 5.90039 4.2002 11 9.90039 12.1006v5.39941l-80.3008 9v-5.7998
+c5.90039 -0.900391 10.5 -6 10.5 -12.2002c0 -6.7998 -5.59961 -12.3994 -12.3994 -12.3994s-12.4004 5.59961 -12.4004 12.3994c0 6.2002 4.60059 11.2998 10.5 12.2002v6.2998l-88.8994 10l242.899 -13.5c-0.599609 2.2002 -1.09961 4.60059 -1.39941 7.2002
+c-0.300781 2.09961 -0.5 4.2002 -0.600586 6.5l-64.7998 8.09961l64.9004 -1.89941c0 0.399414 0 0.799805 0.0996094 1.09961c2.7998 17.2002 25.5 23.7002 25.5 23.7002l1.09961 26.4004h-23.5996l-19 -41.8008h-17.0996l62.1992 131.4l62.2002 -131.4h-17.0996
+l-19 41.8008h-23.7998l1.09961 -26.3008s22.7002 -6.5 25.5 -23.6992c0 -0.400391 0.0996094 -0.700195 0.0996094 -1.10059l64.9004 1.90039l-64.7998 -8.10059c-0.100586 -2.2998 -0.299805 -4.5 -0.600586 -6.5c-0.299805 -2.59961 -0.799805 -5 -1.39941 -7.19922
+l242.899 13.3994l-88.8994 -10v-6.2998zM328.9 220.1h17.8994l1.7002 40.3008l1.7002 -40.3008h17.8994l-19.5996 42.5z" />
+ <glyph glyph-name="ember" unicode="" horiz-adv-x="640"
+d="M639.9 193.4c1.09961 -10.8008 -5.30078 -14.3008 -5.30078 -14.3008s-26.5996 -19.5996 -47 -13.6992c-20.3994 5.89941 -21.5 43.1992 -21.5 43.1992h-1.89941l-20.7002 -57.1992s-8.2998 -27.9004 -20.7002 -22.8008
+c-12.3994 5.10059 -12.0996 18.6006 -12.0996 18.6006s-19.2998 -21.2998 -54.7998 -18.6006c-31.1006 2.30078 -41.1006 26.7002 -41.1006 26.7002s-20.7998 -14.3994 -79.0996 -25.8994c-26.1006 -2.90039 -44.6006 12.8994 -44.6006 12.8994
+c-2.39941 -2.39941 -18 -10.2002 -18 -10.2002s-22.2998 -10.2998 -30.8994 5.30078c-8.60059 15.5996 -3 63.6992 -3 63.6992h-1.60059s-12.8994 -26.2998 -19.5996 -49.8994c-6.7002 -23.6006 -15 -21.2002 -15 -21.2002s-15.2998 -1.40039 -18.7998 11.4004
+c-3.5 12.8994 5.59961 59.6992 5.59961 59.6992l-1.2998 -0.299805s-0.799805 1.40039 -12.5996 -23.5996c-20.1006 -48.9004 -24.9004 -50 -36.5 -47.9004c-11.6006 2.10059 -12.1006 16.7002 -12.1006 16.7002l-15.8994 -8.7998s-38.6006 -16.6006 -58.8008 -1.2998
+c-13.3994 10.1992 -18 22.1992 -19.5996 29.6992c0 0 -17 1.80078 -28.0996 6.10059c-11.1006 4.2998 0.0996094 18.2998 0.0996094 18.2998s3.5 5.2998 10 0s18.7998 -2.90039 18.7998 -2.90039c1 8.5 2.5 19.7002 7.7998 31.5c11 24.7002 27.6006 33 41.3008 33.3008
+c13.6992 0.199219 23.3994 -3.5 31.6992 -15.3008c18.6006 -45.8994 -49.3994 -69.1992 -49.3994 -69.1992s-1.7998 -12.1006 16.7002 -11.8008c18.5996 0.200195 46.7998 20.4004 46.7998 20.4004c1.2998 15.4004 12.0996 63.5 15 70.7002
+c2.89941 7.2002 14.2002 5.89941 14.2002 5.89941s8.89941 1.90039 10.5 -7.5c1.69922 -9.39941 -6.40039 -47.5996 -6.40039 -47.5996l1.2998 -1.59961c0.799805 3.69922 20.4004 36.5 20.4004 36.5s11.2998 19.5996 28.5 18.7998s-0.799805 -53.5 -0.799805 -53.5
+l1.2998 -1.60059l1.2998 2.40039c2.2002 5.90039 27.7002 44.5996 27.7002 44.5996s9.59961 11.3008 18.5 8.60059c8.7998 -2.60059 9.39941 -6.7002 9.89941 -14.2002s-7 -52.0996 -7 -52.0996s-4.2998 -29.2002 5.40039 -28.7002s20.2002 10.7002 20.2002 10.7002
+s7.5 57.5996 12.5996 105.1c5.10059 47.5 27.1006 79.5 27.1006 79.5s6.5 10 23.5 16.7002c11.1992 4 23.3994 1.2998 29.1992 -23.1006c9.5 -41 -23.2998 -87.8994 -36.8994 -105.199c5.89941 5.7998 15.7998 12.0996 27.2002 5.2998
+c40.2998 -25.2998 7.2998 -80.9004 7.2998 -80.9004c11.7998 3.7998 33 18 33 18s0.5 6.10059 0.700195 7.5c7.19922 41.2998 32 56.2002 36.5996 59.7002c4.7998 3.59961 47.0996 19.7998 49 -24s-52.9004 -59.0996 -52.9004 -59.0996s4.80078 -12.6006 25 -9.40039
+c20.2002 3.2002 43.3008 22.7998 43.3008 22.7998c0.799805 18 12.5996 61 15 67.2002c2.39941 6.2002 17.1992 6.5 18.7998 3c2.2002 -7 0.299805 -37.5996 0.299805 -37.5996l1.59961 0.5c5.90039 17.5 18.3008 31.1992 18.3008 31.1992s9.89941 9.7002 18 7.30078
+c8.09961 -2.30078 5.09961 -30.4004 5.09961 -30.4004s-4.2998 -30.7002 9.40039 -32c13.6992 -1.40039 29.2998 10.7002 29.2998 10.7002s9.59961 3.89941 10.7002 -6.7998zM61.9004 188.1c0 0 6.19922 -1.89941 19.8994 7.60059
+c13.7002 9.39941 16.4004 24.3994 9.10059 31.3994c-7.2002 6.90039 -28.2002 -7 -29 -39zM334.7 311.9c0 0 -15.9004 -54.5 -16.4004 -70.7002c0 0 44.5 72 40 96.2002c-4.5 24.1992 -23.5996 -25.5 -23.5996 -25.5zM357.5 173.5
+c12.5996 33.0996 -3.59961 45.5 -3.59961 45.5s-23.4004 12.9004 -33.3008 -20.2002c-9.89941 -33.0996 -6.39941 -44.8994 -6.39941 -44.8994s30.7002 -13.4004 43.2998 19.5996zM442.1 188.1c0 0 15.7002 -1.09961 26.4004 14.2002s1.2998 25.5 1.2998 25.5
+s-8.59961 11.1006 -19.5996 -9.09961c-11.1006 -20.1006 -8.10059 -30.6006 -8.10059 -30.6006z" />
+ <glyph glyph-name="font-awesome-flag" unicode=""
+d="M444.373 88.5762c0 -7.16797 -6.14453 -10.2402 -13.3125 -13.3125c-28.6719 -12.2881 -59.3916 -23.5518 -92.1592 -23.5518c-46.0801 0 -67.584 28.6719 -122.88 28.6719c-39.9365 0 -81.9209 -14.3359 -115.713 -29.6953
+c-2.04785 -1.02441 -4.0957 -1.02441 -6.14355 -2.04883v-77.8232c0 -21.4053 -16.1221 -34.8164 -33.792 -34.8164c-19.4561 0 -34.8164 15.3604 -34.8164 34.8164v374.783c-13.3115 10.2402 -22.5273 26.624 -22.5273 45.0566c0 31.7441 25.5996 57.3438 57.3438 57.3438
+s57.3438 -25.5996 57.3438 -57.3438c0 -18.4326 -8.19141 -34.8164 -22.5273 -45.0566v-31.7432c4.12402 1.37402 58.7676 28.6719 114.688 28.6719c65.2705 0 97.6758 -27.6484 126.976 -27.6484c38.9121 0 81.9209 27.6484 92.1602 27.6484
+c8.19238 0 15.3604 -6.14453 15.3604 -13.3125v-240.64z" />
+ <glyph glyph-name="gitter" unicode="" horiz-adv-x="384"
+d="M66.4004 125.5h-50.4004v322.5h50.4004v-322.5zM166.9 371.9v-435.9h-50.4004v435.9h50.4004zM267.5 371.9v-435.9h-50.4004v435.9h50.4004zM368 372v-247h-50.4004v247h50.4004z" />
+ <glyph glyph-name="hooli" unicode="" horiz-adv-x="640"
+d="M144.5 96v16c12.2998 -6.59961 25.0996 -12.2002 38.2998 -16.7998zM202.2 101.3c29.5 -10.7002 55.3994 -13.5 75.2998 -13.2998c-24.7998 -7 -58.2002 -5.2998 -94.7002 7.2002l19.4004 0.799805v5.2998zM611.1 216.5c-16 0 -28.8994 13 -28.8994 28.9004
+c0 15.8994 13 24.5 28.8994 24.5c16 0 28.9004 -8.5 28.9004 -24.5s-13 -28.9004 -28.9004 -28.9004zM582.1 96v110.5h57.9004v-110.5h-57.9004zM508.4 96v168l57.8994 27.2998v-195.3h-57.8994zM477.4 215.4c18.0996 -18.1006 16.6992 -33.8008 16.7998 -52.6006
+c0 -18.7002 1.39941 -34.2998 -16.7998 -52.5c-18.1006 -18.2002 -50.4004 -17.0996 -50.4004 -17.0996s-32.2002 -1.10059 -50.4004 17.0996c-18.1992 18.2002 -16.7998 33.7998 -16.7998 52.5s-1.39941 34.4004 16.7998 52.6006
+c18.1006 18.1992 50.4004 17.0996 50.4004 17.0996s32.2002 1.09961 50.4004 -17.0996zM437.6 143.5v40.4004c0 8.7998 -7.2998 10.8994 -10.6992 10.8994c-3.40039 0 -10.7002 -2.2002 -10.7002 -10.8994v-40.4004c0 -3.59961 1.7998 -12.5 10.7002 -12.5
+c8.89941 0 10.6992 8.90039 10.6992 12.5zM331.4 215.4c18.1992 -18.1006 16.6992 -33.8008 16.6992 -52.3008c0 -18.6992 1.5 -34.2998 -16.6992 -52.5c-18.1006 -18.1992 -50.4004 -17.0996 -50.4004 -17.0996s-32.2002 -1.09961 -50.4004 17.0996
+c-18.1992 18.2002 -16.7998 33.8008 -16.7998 52.5c0 15.6006 -0.899414 29.1006 9.2998 43.7002c-16 11.7998 -58 37.4004 -99.8994 58.2998v-54.2998c8 13.7002 22.7002 22 38.5 21.9004c27.2002 0 40.5996 -18.7002 40.5996 -37.4004v-93.8994
+c-20.3994 7.5 -39.7002 17.3994 -57.7002 29.5996v48.7002c0 8.09961 -1.5 15 -10.5996 15s-10.7998 -11.2998 -10.7998 -18.2002v-29.7998l-4.5 3.59961c-22.9004 18.9004 -40.2998 35.6006 -53.4004 50.2998v-31c11 -9.7998 23.6006 -20.1992 38.4004 -31.3994
+c6.39941 -4.90039 12.8994 -9.40039 19.3994 -13.6006v-28.5996h-57.8994v73.7002c-86.7002 78 -61.7998 110.8 -61.7998 110.8c8.2998 18.2998 42.8994 22.2002 97.2998 0.0996094l22.5 10.6006v-20.7002c29.5996 -14.5996 63.8994 -31.5 102.1 -61.0996
+c1.60059 2.09961 3.40039 4.09961 5.2998 6c18.2002 18.1992 50.4004 17.0996 50.4004 17.0996s32.2002 1.09961 50.4004 -17.0996zM65.2002 264l29.2002 13.7002c-26.9004 10.0996 -50.9004 13.5 -64.4004 2.09961c-3.7002 -3.09961 -13.5 -24.5996 35.2002 -79.0996
+v63.2998zM291.7 143.5v40.4004c0 8.7998 -7.2998 10.8994 -10.7002 10.8994s-10.7002 -2.2002 -10.7002 -10.8994v-40.4004c0 -3.59961 1.7998 -12.5 10.7002 -12.5s10.7002 8.90039 10.7002 12.5z" />
+ <glyph glyph-name="strava" unicode="" horiz-adv-x="384"
+d="M158.4 448l150.199 -292h-88.5l-61.6992 116.1l-62.2002 -116.1h-89.2002zM308.6 156h67.6006l-111.5 -220l-112.2 220h67.5996l44.6006 -88.2002z" />
+ <glyph glyph-name="stripe" unicode="" horiz-adv-x="640"
+d="M165 303.3l0.0996094 -38.5h33.7002v-37.7998h-33.7002v-63.2002c0 -26.2002 28 -18 33.7002 -15.7002v-33.7998c-5.89941 -3.2002 -16.5996 -5.89941 -31.2002 -5.89941c-26.2998 0 -46.0996 17 -46.0996 43.2998l0.200195 142.399zM254.1 251.7
+c10.4004 19.0996 31.1006 15.2002 37.1006 13.0996v-40.7998c-5.7002 1.7998 -23.4004 4.5 -33.9004 -9.2998v-103.101h-44.2998v153.2h38.4004zM346.4 324v-36.2002l-44.6006 -9.5v36.2002zM44.9004 219.7c0 -20 67.8994 -10.5 67.8994 -63.4004
+c0 -32 -25.3994 -47.7998 -62.2998 -47.7998c-15.2998 0 -32 3 -48.5 10.0996v40c14.9004 -8.09961 33.9004 -14.1992 48.5996 -14.1992c9.90039 0 17 2.69922 17 10.8994c0 21.2002 -67.5 13.2002 -67.5 62.4004c0 31.3994 24 50.2002 60 50.2002
+c14.7002 0 29.4004 -2.30078 44.1006 -8.10059v-41.7998c-13.5 7.2998 -30.7002 11.4004 -44.2002 11.4004c-9.2998 -0.100586 -15.0996 -2.80078 -15.0996 -9.7002zM640 186.4c0 -4.30078 -0.400391 -13.6006 -0.599609 -15.9004h-86.9004
+c2 -20.7998 17.2002 -26.9004 34.5 -26.9004c17.5996 0 31.5 3.7002 43.5996 9.80078v-33.4004c-12.0996 -6.7002 -28 -11.5 -49.1992 -11.5c-43.2002 0 -73.5 24.7002 -73.5 78.2002c0 45.2002 25.6992 81.0996 67.8994 81.0996s64.2002 -35.8994 64.2002 -81.3994z
+M552.1 203.2h45.9004c0 20 -11.5996 28.3994 -22.5 28.3994c-11.0996 0 -23.4004 -8.39941 -23.4004 -28.3994zM439.2 267.8c31.2002 0 60.5996 -28.0996 60.5 -79.7002c0 -56.3994 -29 -79.5996 -60.7998 -79.5996c-15.5 0 -25 6.5 -31.4004 11.2002l-0.0996094 -50.2002
+l-44.4004 -9.40039v204.801h39.0996l2.30078 -11c6.19922 5.69922 17.3994 13.8994 34.7998 13.8994zM428.6 145.3c16.5 0 27.5 17.9004 27.4004 41.7998c0 23.2002 -11.2002 41.4004 -27.4004 41.4004c-10.1992 0 -16.5996 -3.7002 -21.1992 -8.7998l0.299805 -66
+c4.2998 -4.60059 10.5 -8.40039 20.8994 -8.40039zM301.9 111.6v153.2h44.5996v-153.2h-44.5996z" />
+ <glyph glyph-name="stripe-s" unicode="" horiz-adv-x="384"
+d="M155.3 293.4c0 -64.2002 218 -33.7002 218 -203.9c0 -102.6 -81.7002 -153.6 -200.3 -153.6c-44.8916 0.101562 -114.78 14.6172 -156 32.3994v128.5c47.9004 -26 108.9 -45.5 156.1 -45.5c31.8008 0 54.7002 8.5 54.7002 34.9004c0 68.0996 -216.8 42.5 -216.8 200.399
+c0 101 77.0996 161.4 192.8 161.4c47.2998 0 94.5 -7.2002 141.8 -26.0996v-134.301c-43.3994 23.4004 -98.5 36.7002 -141.899 36.7002c-29.7998 0 -48.4004 -8.59961 -48.4004 -30.8994z" />
+ <glyph glyph-name="typo3" unicode=""
+d="M178.7 369.6c0 -66.3994 83.3994 -264.899 140.6 -264.899c6.90039 0 11.5 0 18.5 2.2998c-49.3994 -79.5 -110.399 -139 -146.7 -139c-77.2998 0 -184.1 234 -184.1 337.5c0 16.2998 3.90039 29.4004 9.2998 37.0996c27 32.4004 106.8 57.9004 176.3 66.4004
+c-8.5 -7 -13.8994 -14.7002 -13.8994 -39.4004zM301.5 416c71.7998 0 138.8 -11.5996 138.8 -52.5c0 -82.5996 -52.5 -182.3 -78.7998 -182.3c-47.9004 0 -101.7 132.1 -101.7 198.5c0 30.8994 11.6006 36.2998 41.7002 36.2998z" />
+ <glyph glyph-name="amazon-pay" unicode="" horiz-adv-x="640"
+d="M14 122.7c2.2998 4.2002 5.2002 4.89941 9.7002 2.5c10.3994 -5.60059 20.5996 -11.4004 31.2002 -16.7002c33.6992 -16.8047 90.7744 -37.5469 127.399 -46.2998c17.2734 -4.16797 45.5869 -9.4541 63.2002 -11.7998c22.083 -2.96875 58.0898 -5.37793 80.3721 -5.37793
+c4.03809 0 10.5908 0.0800781 14.6279 0.177734c17.4004 0.399414 34.7998 1.7998 52.0996 3.7998c46.7393 5.44824 119.897 24.623 163.301 42.7998c2.89941 1.2002 5.89941 2 9.09961 1.2002c6.7002 -1.7998 9 -9 4.09961 -13.9004
+c-2.47168 -2.27246 -6.77246 -5.58789 -9.59961 -7.39941c-30.7002 -21.1006 -64.2002 -36.4004 -99.5996 -47.9004c-20.3311 -6.55176 -53.9756 -14.4365 -75.1006 -17.5996c-14.6006 -2.23633 -38.4346 -4.38672 -53.2002 -4.7998
+c-0.694336 -0.0419922 -1.81445 -0.176758 -2.5 -0.300781h-21.0996c-0.685547 0.124023 -1.80469 0.258789 -2.5 0.300781c-3.59961 0.199219 -7.2002 0.299805 -10.7002 0.399414c-13.9971 0.634766 -36.5762 3.00879 -50.3994 5.2998
+c-22.7275 3.7041 -58.7471 13.0674 -80.4004 20.9004c-44.8652 16.1797 -110.094 55.1562 -145.6 87c-1.80078 1.59961 -3 3.7998 -4.40039 5.7002v2zM172 382.9c2.7998 0 5.5 0 8.2998 -0.100586c3.2998 -0.5 6.60059 -0.799805 9.7998 -1.5
+c21.3008 -4.39941 35.4004 -17.2998 43.9004 -36.8994c6.90039 -15.9004 8.59961 -32.7002 8.09961 -49.8008c-0.399414 -15.3994 -3.2998 -30.1992 -10.2998 -44.0996c-9.2002 -18.4004 -23.3994 -30.9004 -43.7998 -34.9004c-22.5 -4.39941 -43.0996 0.5 -61 15.4004
+c-0.5 0.5 -1.09961 1 -2.2002 1.90039v-72.4004c0 -1 0 -2 -0.0996094 -3c-0.299805 -3 -2.10059 -5 -5 -5c-7 -0.0996094 -14.1006 -0.0996094 -21.1006 0c-2.89941 0.0996094 -4.69922 2 -4.89941 5c-0.100586 1 -0.100586 2 -0.100586 3v209.3
+c0 6.90039 1.30078 8.2002 8.2002 8.2002h11.5c4.60059 0 6.90039 -2 7.60059 -6.59961c0.5 -2.7002 0.899414 -5.5 1.2998 -8.2002c0.0439453 -0.405273 0.222656 -1.0332 0.399414 -1.40039c2.5 1.90039 4.7002 3.7002 7.10059 5.40039
+c9.39941 6.90625 26.4238 13.6709 38 15.0996zM124.6 341c0.100586 -14.0996 0 -28 0 -42.0996c0 -14.1006 0.100586 -28.1006 0 -42.2002c-0.00488281 -0.0703125 -0.00878906 -0.183594 -0.00878906 -0.253906c0 -1.10547 0.765625 -2.46973 1.70898 -3.0459
+c11.2002 -7.90039 23.4004 -13.3008 37.4004 -13.9004c20.2002 -0.900391 35.7998 7.2002 42.5996 28.5c3.2002 10 4 20.2002 4 30.5996c0 11.2002 -1 22.3008 -4.89941 33c-6.40039 17.5 -18.6006 24.8008 -33.5 25.9004
+c-16.8008 1.2998 -31.9004 -3.7002 -45.6006 -13.2002c-0.945312 -0.556641 -1.71289 -1.90039 -1.71289 -2.99805c0 -0.0830078 0.00585938 -0.21875 0.0126953 -0.301758zM330.3 382.9c4 0 8 0 11.9004 0.0996094c3.59961 -0.5 7.2002 -0.799805 10.7998 -1.2998
+c7.7002 -1.10059 15.0996 -3.10059 21.7998 -7.10059c11.6006 -6.89941 17.1006 -17.5 19 -30.3994c0.5 -3.29297 0.905273 -8.66895 0.905273 -12c0 -0.248047 -0.00195312 -0.651367 -0.00488281 -0.900391v-106
+c0.00195312 -0.128906 0.00390625 -0.336914 0.00390625 -0.46582c0 -0.645508 -0.046875 -1.69141 -0.104492 -2.33398c-0.0742188 -2.57422 -2.22461 -4.67969 -4.7998 -4.7002c-5.39941 -0.0996094 -10.8994 -0.0996094 -16.2998 0
+c-2.90039 0.100586 -4.7998 2.10059 -5.40039 5.2002c-0.699219 3.59961 -1.19922 7.2002 -1.7998 11c-0.481445 -0.245117 -1.19824 -0.737305 -1.59961 -1.09961c-11.7998 -9.7002 -25.2002 -16.1006 -40.2998 -18.4004c-13.1006 -2 -26 -1.2002 -37.9004 5.40039
+c-12.4004 6.89941 -19.4004 17.6992 -21.4004 31.6992c-1.5 10.5 -0.799805 20.9004 3.90039 30.7002c6.09961 12.6006 16.5 20.4004 29.4004 24.9004c10.7998 3.7998 22 4.5 33.2998 3.89941c8.95312 -0.556641 23.2891 -2.75195 32 -4.89941
+c0.399414 -0.100586 0.799805 0 1.2998 -0.100586c0.0898438 0.381836 0.179688 1.00879 0.200195 1.40039c-0.100586 8.2998 0 16.5996 -0.299805 24.9004c-0.200195 5.89941 -1.60059 11.5996 -5.30078 16.3994c-4.19922 5.5 -10.2998 7.40039 -16.7998 8.40039
+c-12.5 1.89941 -24.8994 0.899414 -37.2002 -1.40039c-7.89941 -1.5 -15.6992 -3.7002 -23.5 -5.7002c-4.69922 -1.19922 -6.69922 0.100586 -6.7998 4.90039c-0.0996094 3.2998 0.100586 6.59961 0 9.90039c-0.0996094 3.89941 1.7002 6.5 5.2998 7.69922
+c5.90039 2 11.8008 4.2002 17.9004 5.80078c7.86426 1.92188 20.8115 3.75879 28.9004 4.09961c0.899414 0.0996094 1.89941 0.299805 2.89941 0.400391zM365.3 255.2c-0.0996094 4.7002 0.100586 9.2998 0.100586 14.0996s-0.100586 9.5 0 14.2998
+c0 1.60059 -0.5 2.40039 -2.10059 2.60059c-8.39941 1.09961 -16.5996 2.7002 -25 3.39941c-1.95117 0.227539 -5.12891 0.412109 -7.09375 0.412109c-4.99316 0 -12.9258 -1.16992 -17.7061 -2.61133c-8 -2.60059 -13.9004 -7.30078 -16.4004 -15.6006
+c-0.779297 -2.57422 -1.41211 -6.84766 -1.41211 -9.53809c0 -2.78613 0.677734 -7.2041 1.5127 -9.86133c1.55762 -5.40918 7.11328 -11.3672 12.3994 -13.3008c5.40039 -2.19922 11.1006 -2.39941 16.8008 -1.7998c13.8994 1.40039 26.1992 6.7998 37.3994 14.9004
+c0.832031 0.543945 1.50684 1.79199 1.50684 2.78613c0 0.0595703 -0.00292969 0.155273 -0.00683594 0.213867zM625.2 125.8v-17.2998c-0.700195 -3.59961 -1.2998 -7.2998 -2.10059 -10.9004c-4.39941 -20.2998 -11.8994 -39.1992 -24.6992 -55.5996
+c-3.27148 -3.9209 -8.96094 -9.92383 -12.7002 -13.4004c-1.1416 -1.04102 -3.29199 -2.16113 -4.7998 -2.5c-2.90039 -0.699219 -4.60059 1.2002 -4.10059 4.10059c0.201172 0.852539 0.649414 2.19629 1 3c5.7998 14.7998 11.7002 29.7002 15.7998 45.0996
+c2.10059 7.60059 3.90039 15.2998 3.5 23.2998c-0.199219 5.2002 -2.5 9 -7.59961 10.4004c-3.89746 1.15332 -10.3486 2.36328 -14.4004 2.7002c-11.3994 0.899414 -22.8994 0.200195 -34.2998 -0.900391c-7.7998 -0.799805 -15.5 -1.7002 -23.2998 -2.5
+c-0.504883 -0.0576172 -1.32617 -0.103516 -1.83398 -0.103516c-0.100586 0 -0.264648 0.000976562 -0.366211 0.00390625c-1.5 -0.100586 -3.2002 0.299805 -3.59961 1.7998c-0.111328 0.383789 -0.201172 1.01855 -0.201172 1.41797
+c0 0.764648 0.314453 1.92188 0.701172 2.58203c0.838867 1.1582 2.49609 2.72656 3.7002 3.5c12.0996 8.2998 25.6992 12.9004 40 15.5996c7.29883 1.34375 19.2461 2.43457 26.668 2.43457c3.46484 0 9.0791 -0.239258 12.5312 -0.53418
+c5.92773 -0.371094 15.335 -2.11816 21 -3.90039c4.30078 -1.39941 8.10059 -3.2998 9.10059 -8.2998zM493.1 249c0.300781 -0.700195 0.501953 -1.2998 0.902344 -2.40039c2.59961 7.7002 5.2002 15 7.7002 22.2002l34.7998 100
+c0.5 1.40039 1.09961 2.7002 1.59961 4.10059c0.932617 2.87988 4.14648 5.21777 7.17383 5.21777c0.145508 0 0.381836 -0.0078125 0.526367 -0.0185547c6.60059 0 13.2998 0.100586 19.9004 0c2.7998 0 4.09961 -1.59961 3.7002 -4.39941
+c-0.277344 -1.56641 -0.994141 -4.03027 -1.60059 -5.5c-23.3662 -59.9336 -46.8994 -119.801 -70.5996 -179.601c-2.1416 -5.27734 -6.2627 -13.5205 -9.2002 -18.3994c-8.7998 -14.9004 -22.4004 -21.7998 -39.5 -21.4004c-4.70801 0.18457 -12.2793 1.08008 -16.9004 2
+c-5.39941 0.900391 -7.2998 3.40039 -7.39941 8.90039c-0.100586 3.2666 -0.100586 6.56641 0 9.89941c0.0996094 3.5 1.7998 5 5.2002 4.80078c2.5 -0.200195 5 -0.800781 7.5 -1c1.30664 -0.148438 3.43359 -0.268555 4.74902 -0.268555
+c2.98828 0 7.75977 0.612305 10.6504 1.36816c7.2002 1.90039 12.2002 6.7998 15.2002 13.2998c3.40039 7.2998 6 15 9.2998 22.2998c1.90039 4.2002 1.5 7.7002 -0.200195 11.8008c-19.7998 48.5 -39.5 97 -59.1006 145.5
+c-0.649414 1.64453 -1.50098 4.37695 -1.90039 6.09961c-0.5 2.5 0.700195 4.5 3.2002 4.5c7.7002 0.0996094 15.2998 0 22.9004 -0.0996094c3.2002 0 5.2998 -1.90039 6.39941 -4.80078c2.10059 -5.59961 4.30078 -11.1992 6.30078 -16.8994
+c12.8994 -35.7666 25.7988 -71.5 38.6982 -107.2z" />
+ <glyph glyph-name="cc-amazon-pay" unicode="" horiz-adv-x="576"
+d="M124.7 246.2c0.0996094 11.7998 0 23.5 0 35.2998v35.2998c0 1.2998 0.399414 2 1.39941 2.7002c11.5 8 24.1006 12.0996 38.2002 11.0996c12.5 -0.899414 22.7002 -7 28.1006 -21.6992c3.2998 -8.90039 4.09961 -18.2002 4.09961 -27.7002
+c0 -8.7002 -0.700195 -17.2998 -3.40039 -25.6006c-5.69922 -17.7998 -18.6992 -24.6992 -35.6992 -23.8994c-11.7002 0.5 -21.9004 5 -31.4004 11.7002c-0.900391 0.799805 -1.40039 1.59961 -1.2998 2.7998zM279.6 231.6c-5.19922 2 -8.7998 5.7002 -10.3994 11.2002
+c-1.7002 5.40039 -1.7002 10.7998 -0.100586 16.2002c2 6.90039 7 10.9004 13.7002 13.0996c6.7998 2.2002 13.7998 2.5 20.7998 1.90039c7 -0.700195 13.9004 -2 20.9004 -2.90039c1.40039 -0.199219 1.7998 -0.799805 1.7998 -2.19922c-0.0996094 -4 0 -8 0 -12
+c0 -3.90039 -0.0996094 -7.90039 0 -11.8008c0 -1.19922 -0.399414 -1.89941 -1.2998 -2.5c-9.40039 -6.7998 -19.7002 -11.2998 -31.2998 -12.5c-4.7998 -0.5 -9.5 -0.299805 -14.1006 1.5zM576 368v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352
+c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48zM368.5 344.1c0.400391 -1.69922 0.900391 -3.39941 1.59961 -5.09961c16.5 -40.5996 32.9004 -81.2998 49.5 -121.9c1.40039 -3.5 1.7002 -6.39941 0.200195 -9.89941
+c-2.7998 -6.2002 -4.89941 -12.6006 -7.7998 -18.7002c-2.59961 -5.5 -6.7002 -9.5 -12.7002 -11.2002c-4.2002 -1.09961 -8.5 -1.2998 -12.8994 -0.899414c-2.10059 0.199219 -4.2002 0.699219 -6.30078 0.799805c-2.7998 0.200195 -4.19922 -1.10059 -4.2998 -4
+c-0.0996094 -2.7998 -0.0996094 -5.60059 0 -8.2998c0.100586 -4.60059 1.60059 -6.7002 6.2002 -7.5c4.7002 -0.800781 9.40039 -1.60059 14.2002 -1.7002c14.2998 -0.299805 25.7002 5.39941 33.0996 17.8994c2.90039 4.90039 5.60059 10.1006 7.7002 15.4004
+c19.7998 50.0996 39.5 100.3 59.2002 150.5c0.599609 1.5 1.09961 3 1.2998 4.59961c0.400391 2.40039 -0.700195 3.60059 -3.09961 3.7002c-5.60059 0.100586 -11.1006 0 -16.7002 0c-3.10059 0 -5.2998 -1.39941 -6.40039 -4.2998
+c-0.399414 -1.09961 -0.899414 -2.2998 -1.2998 -3.40039l-29.0996 -83.6992c-2.10059 -6.10059 -4.2002 -12.1006 -6.5 -18.6006c-0.400391 0.900391 -0.600586 1.40039 -0.800781 1.90039c-10.7998 29.8994 -21.5996 59.8994 -32.3994 89.7998
+c-1.7002 4.7002 -3.5 9.5 -5.2998 14.2002c-0.900391 2.5 -2.7002 4 -5.40039 4c-6.40039 0.0996094 -12.7998 0.200195 -19.2002 0.0996094c-2.2002 0 -3.2998 -1.59961 -2.7998 -3.7002zM242.4 242c1.69922 -11.7002 7.59961 -20.7998 18 -26.5996
+c9.89941 -5.5 20.6992 -6.2002 31.6992 -4.60059c12.7002 1.90039 23.9004 7.2998 33.8008 15.5c0.399414 0.299805 0.799805 0.600586 1.39941 1c0.5 -3.2002 0.900391 -6.2002 1.5 -9.2002c0.5 -2.59961 2.10059 -4.2998 4.5 -4.39941
+c4.60059 -0.100586 9.10059 -0.100586 13.7002 0c2.2998 0.0996094 3.7998 1.59961 4 3.89941c0.0996094 0.800781 0.0996094 1.60059 0.0996094 2.30078v88.7998c0 3.59961 -0.199219 7.2002 -0.699219 10.7998c-1.60059 10.7998 -6.2002 19.7002 -15.9004 25.4004
+c-5.59961 3.2998 -11.7998 5 -18.2002 5.89941c-3 0.400391 -6 0.700195 -9.09961 1.10059h-10c-0.799805 -0.100586 -1.60059 -0.300781 -2.5 -0.300781c-8.2002 -0.399414 -16.2998 -1.39941 -24.2002 -3.5c-5.09961 -1.2998 -10 -3.19922 -15 -4.89941
+c-3 -1 -4.5 -3.2002 -4.40039 -6.5c0.100586 -2.7998 -0.0996094 -5.60059 0 -8.2998c0.100586 -4.10059 1.80078 -5.2002 5.7002 -4.10059c6.5 1.7002 13.1006 3.5 19.7002 4.7998c10.2998 1.90039 20.7002 2.7002 31.0996 1.2002
+c5.40039 -0.799805 10.5 -2.39941 14.1006 -7c3.09961 -4 4.2002 -8.7998 4.39941 -13.7002c0.300781 -6.89941 0.200195 -13.8994 0.300781 -20.7998c0 -0.399414 -0.100586 -0.700195 -0.200195 -1.2002c-0.400391 0 -0.799805 0 -1.10059 0.100586
+c-8.7998 2.09961 -17.6992 3.59961 -26.7998 4.09961c-9.5 0.5 -18.8994 -0.0996094 -27.8994 -3.2002c-10.8008 -3.7998 -19.5 -10.2998 -24.6006 -20.7998c-4.09961 -8.2998 -4.59961 -17 -3.39941 -25.7998zM98.7002 341.1v-175.3c0 -0.799805 0 -1.7002 0.0996094 -2.5
+c0.200195 -2.5 1.7002 -4.09961 4.10059 -4.2002c5.89941 -0.0996094 11.7998 -0.0996094 17.6992 0c2.5 0 4 1.7002 4.10059 4.10059c0.0996094 0.799805 0.0996094 1.7002 0.0996094 2.5v60.7002c0.900391 -0.700195 1.40039 -1.2002 1.90039 -1.60059
+c15 -12.5 32.2002 -16.5996 51.0996 -12.8994c17.1006 3.39941 28.9004 13.8994 36.7002 29.1992c5.7998 11.6006 8.2998 24.1006 8.7002 37c0.5 14.3008 -1 28.4004 -6.7998 41.7002c-7.10059 16.4004 -18.9004 27.2998 -36.7002 30.9004
+c-2.7002 0.599609 -5.5 0.799805 -8.2002 1.2002h-7c-1.2002 -0.200195 -2.40039 -0.300781 -3.59961 -0.5c-11.7002 -1.40039 -22.3008 -5.80078 -31.8008 -12.7002c-2 -1.40039 -3.89941 -3 -5.89941 -4.5c-0.100586 0.5 -0.299805 0.799805 -0.400391 1.2002
+c-0.399414 2.2998 -0.700195 4.59961 -1.09961 6.89941c-0.600586 3.90039 -2.5 5.5 -6.40039 5.60059h-9.7002c-5.89941 0.0996094 -6.89941 -1 -6.89941 -6.80078zM493.6 109c-2.69922 0.700195 -5.09961 0 -7.59961 -1c-43.9004 -18.4004 -89.5 -30.2002 -136.8 -35.7998
+c-14.5 -1.7002 -29.1006 -2.7998 -43.7002 -3.2002c-26.5996 -0.700195 -53.2002 0.799805 -79.5996 4.2998c-17.8008 2.40039 -35.5 5.7002 -53 9.90039c-37 8.89941 -72.7002 21.7002 -106.7 38.7998c-8.7998 4.40039 -17.4004 9.2998 -26.1006 14
+c-3.7998 2.09961 -6.19922 1.5 -8.19922 -2.09961v-1.7002c1.19922 -1.60059 2.19922 -3.40039 3.69922 -4.7998c36 -32.2002 76.6006 -56.5 122 -72.9004c21.9004 -7.90039 44.4004 -13.7002 67.3008 -17.5c14 -2.2998 28 -3.7998 42.1992 -4.5
+c3 -0.0996094 6 -0.200195 9 -0.400391c0.700195 0 1.40039 -0.199219 2.10059 -0.299805h17.7002c0.699219 0.100586 1.39941 0.299805 2.09961 0.299805c14.9004 0.400391 29.7998 1.80078 44.5996 4c21.4004 3.2002 42.4004 8.10059 62.9004 14.7002
+c29.5996 9.60059 57.7002 22.4004 83.4004 40.1006c2.7998 1.89941 5.69922 3.7998 8 6.19922c4.2998 4.40039 2.2998 10.4004 -3.30078 11.9004zM544 136.7c-0.799805 4.2002 -4 5.7998 -7.59961 7c-5.7002 1.89941 -11.6006 2.7998 -17.6006 3.2998
+c-11 0.900391 -22 0.400391 -32.7998 -1.59961c-12 -2.2002 -23.4004 -6.10059 -33.5 -13.1006c-1.2002 -0.799805 -2.40039 -1.7998 -3.09961 -3c-0.600586 -0.899414 -0.700195 -2.2998 -0.5 -3.39941c0.299805 -1.30078 1.69922 -1.60059 3 -1.5
+c0.599609 0 1.19922 0 1.7998 0.0996094l19.5 2.09961c9.59961 0.900391 19.2002 1.5 28.7998 0.800781c4.09961 -0.300781 8.09961 -1.2002 12 -2.2002c4.2998 -1.10059 6.2002 -4.40039 6.40039 -8.7002c0.299805 -6.7002 -1.2002 -13.0996 -2.90039 -19.5
+c-3.5 -12.9004 -8.2998 -25.4004 -13.2998 -37.7998c-0.299805 -0.799805 -0.700195 -1.7002 -0.799805 -2.5c-0.400391 -2.5 1 -4 3.39941 -3.5c1.40039 0.299805 3 1.09961 4 2.09961c3.7002 3.60059 7.5 7.2002 10.6006 11.2002
+c10.6992 13.7998 17 29.5996 20.6992 46.5996c0.700195 3 1.2002 6.10059 1.7002 9.10059c0.200195 4.7002 0.200195 9.59961 0.200195 14.5z" />
+ <glyph glyph-name="ethereum" unicode="" horiz-adv-x="320"
+d="M311.9 187.2l-151.9 -92.7998l-152 92.7998l152 260.8zM160 64.5996l152 92.8008l-152 -221.4l-152 221.4z" />
+ <glyph glyph-name="korvue" unicode="" horiz-adv-x="446"
+d="M386.5 414c32.7002 0 59.5 -26.7998 59.5996 -59.5v-327c0 -32.7002 -26.5 -59.5 -59.5 -59.5h-327.1c-32.7002 0 -59.5 26.7998 -59.5 59.4004v327.1c0 32.7002 26.7998 59.5 59.5 59.5h327zM87.0996 327.2v-132h187.5l81.2002 132h-110.899l-61.8008 -116v116h-96z
+M248.9 55.0996h118.399l-88.5996 130.801h-191.5v-130.801h96v113.601z" />
+ <glyph glyph-name="elementor" unicode=""
+d="M425.6 416c12.4004 0 22.4004 -10 22.4004 -22.4004v-403.199c0 -12.4004 -10 -22.4004 -22.4004 -22.4004h-403.199c-12.4004 0 -22.4004 10 -22.4004 22.4004v403.199c0 12.4004 10 22.4004 22.4004 22.4004h403.199zM164.3 92.5v199h-39.7998v-199h39.7998z
+M323.6 92.5v39.7998h-119.5v-39.7998h119.5zM323.6 172.1v39.8008h-119.5v-39.8008h119.5zM323.6 251.8v39.7998h-119.5v-39.7998h119.5z" />
+ <glyph glyph-name="youtube-square" unicode=""
+d="M186.8 245.9l95.2002 -54.1006l-95.2002 -54.0996v108.2zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM406 191.7c0 0 0 59.5996 -7.59961 88.2002
+c-4.2002 15.7998 -16.5 28.1992 -32.2002 32.3994c-28.2998 7.7002 -142.2 7.7002 -142.2 7.7002s-113.9 0 -142.2 -7.7002c-15.7002 -4.2002 -28 -16.5996 -32.2002 -32.3994c-7.59961 -28.5 -7.59961 -88.2002 -7.59961 -88.2002s0 -59.6006 7.59961 -88.2002
+c4.2002 -15.7998 16.5 -27.7002 32.2002 -31.9004c28.2998 -7.59961 142.2 -7.59961 142.2 -7.59961s113.9 0 142.2 7.7002c15.7002 4.2002 28 16.0996 32.2002 31.8994c7.59961 28.5 7.59961 88.1006 7.59961 88.1006z" />
+ <glyph glyph-name="flipboard" unicode=""
+d="M0 416h448v-448h-448v448zM358.4 236.8v89.6006h-268.801v-268.801h89.6006v89.6006h89.5996v89.5996h89.6006z" />
+ <glyph glyph-name="hips" unicode="" horiz-adv-x="640"
+d="M251.6 290.4v-201.801c0 -1.89941 -0.899414 -2.7998 -2.7998 -2.7998h-40.8994c-1.60059 0 -2.7002 1.40039 -2.7002 2.7998v201.801c0 1.39941 1.09961 2.7998 2.7002 2.7998h40.8994c1.90039 0 2.7998 -0.900391 2.7998 -2.7998zM156.5 280
+c18.7002 -13.5 28 -31.9004 28 -55.2998v-136.101c0 -1.89941 -0.900391 -2.7998 -2.7002 -2.7998h-27.2998c-9.09961 0 -16.4004 7.2998 -16.4004 16.2998v122.601c0 0.899414 2.7002 27 -45.7998 27c-48.5996 0 -45.7998 -26.2002 -45.7998 -27v-136.101
+c0 -1.89941 -0.900391 -2.7998 -2.7998 -2.7998h-41c-1.7998 0 -2.7002 0.900391 -2.7002 2.7998v279.2c0 1.7998 0.900391 2.7002 2.7002 2.7002h40.8994c1.90039 0 2.80078 -0.900391 2.80078 -2.7002v-81.2002c15.1992 7.7002 31.6992 11.5 49.7998 11.4004
+c24 -0.0996094 44.2002 -6.2002 60.2998 -18zM634.9 169.9c5.5 -12.6006 6.59961 -25.6006 3.09961 -39.1006c-9.59961 -36.8994 -44.9004 -45.5 -45.5996 -45.7998c-10.5 -3.09961 -23.6006 -4.2998 -36.3008 -4.2998c-16.5996 0 -32.5996 2.7002 -48.1992 8.2002
+c-9.7002 3.39941 -14.6006 10.2998 -14.6006 20.6992v34.4004c0 2.09961 2.2998 3.7002 4.40039 2.2998c13.7002 -10.2002 34.0996 -19.0996 58.3994 -19.0996c23.3008 0 32.8008 4.5 36.5 13.5996c3 7.90039 -0.599609 16.1006 -12.1992 21.2002l-53.6006 23.5
+c-21.3994 9.40039 -33.7998 24 -37.2002 43.5996c-5.69922 33.7002 22.2002 53.3008 22.7002 53.7002c13.2002 9.60059 32 15.4004 58.5 15.4004c19 0 37.4004 -3.2998 55.1006 -9.90039c1.2998 -0.5 1.89941 -1.2998 1.89941 -2.59961v-44.7002
+c0 -2.09961 -2.2998 -3.40039 -4 -2.40039c-39.7002 20.7002 -76.5996 12.3008 -84 6.80078c-6.59961 -4.90039 -6 -12.5 2.60059 -16.1006l57.5996 -25.2998c16.5 -7.09961 28.0996 -18.4004 34.9004 -34.0996zM376.2 298.2c60.3994 0 108.7 -48.2998 108.6 -108.601
+c0 -60.1992 -48.2002 -108.699 -108.7 -108.699c-21.8994 0 -41.1992 6.39941 -57.6992 19.0996v-88.7998c0 -1.7998 -0.900391 -2.7002 -2.80078 -2.7002h-40.8994c-2.10059 0 -2.7002 1.90039 -2.7002 2.7002v183.5c0 83.3994 72.5 103.5 104.2 103.5zM376.2 127.3
+c34.8994 0 62.2998 27.9004 62.2002 62.2002c0 34.5996 -27.7002 62.2002 -62.2002 62.2002c-34.6006 0 -62.2002 -27.7002 -62.2002 -62.2002c0 -17.2002 6 -31.7998 18.2002 -44c12.0996 -12.0996 26.7998 -18.2002 44 -18.2002zM228.3 375.5
+c15.9004 0 28.9004 -12.7002 28.9004 -28.9004c0 -15.7998 -12.7002 -28.8994 -28.9004 -28.8994s-28.8994 13.2998 -28.8994 28.8994c0.0996094 16 13 28.9004 28.8994 28.9004z" />
+ <glyph glyph-name="php" unicode="" horiz-adv-x="640"
+d="M320 343.5c-171.3 0 -303.2 -72.2002 -303.2 -151.5s131.8 -151.5 303.2 -151.5c171.3 0 303.2 72.2002 303.2 151.5s-131.8 151.5 -303.2 151.5zM320 360.3c176.7 0 320 -75.2998 320 -168.3s-143.3 -168.3 -320 -168.3s-320 75.2998 -320 168.3s143.3 168.3 320 168.3z
+M218.2 205.5c7.39941 38.4004 -18.4004 34.2998 -56.4004 34.2998l-13.7002 -70.5996c34.3008 0 62.2002 -4.2002 70.1006 36.2998zM97.4004 97.7002l32.6992 168.7h70.7002c21.2002 0 36.7998 -5.5 46.5 -16.7002c18.6006 -21.4004 11.7998 -64.1006 -14.2998 -88.1006
+c-23.5996 -22.0996 -49.0996 -19.0996 -90.2002 -19.0996l-8.7002 -44.7998h-36.6992zM283.1 311.3h36.5l-8.69922 -44.7998c31.5 0 60.6992 2.2998 74.7998 -10.7002c14.7998 -13.5996 7.7002 -31 -8.2998 -113.1h-37c15.3994 79.3994 18.2998 86 12.6992 92
+c-5.39941 5.7998 -17.6992 4.59961 -47.3994 4.59961l-18.7998 -96.5996h-36.5zM505 205.5c7.40039 38.4004 -18.2002 34.2998 -56.4004 34.2998l-13.6992 -70.5996c33.3994 0 62.0996 -4.7998 70.0996 36.2998zM384.2 97.7002l32.7998 168.7h70.7002
+c21.2002 0 36.7998 -5.5 46.5 -16.7002c18.5996 -21.4004 11.7998 -64.1006 -14.2998 -88.1006c-23.1006 -21.5996 -47 -19.0996 -90.2002 -19.0996l-8.7002 -44.7998h-36.7998z" />
+ <glyph glyph-name="quinscape" unicode="" horiz-adv-x="512"
+d="M313.6 -26.5996c4.40039 -4.40039 8.10059 -9 13.3008 -12.5c-18.5029 -5.58008 -49.2031 -10.1074 -68.5283 -10.1074c-0.516602 0 -1.35547 0.00292969 -1.87207 0.00683594c-135 0 -244.5 109.5 -244.5 244.601c0 135.1 109.4 244.6 244.5 244.6
+s244.6 -109.5 244.6 -244.6c0 -35.3008 -6.89941 -67.4004 -20.2998 -97.7002c-3 5.7002 -7.2002 10.2002 -11.2002 15.2998c11.2002 93.5 -62.0996 176.6 -157 176.6c-87.2705 0 -158.1 -70.8281 -158.1 -158.1s70.8291 -158.1 158.1 -158.1h1zM313.5 -26.5
+l0.400391 -0.0996094zM391.9 142.4c54.7471 0 99.1992 -44.4326 99.1992 -99.1807v-0.0195312c0 -54.7588 -44.4414 -99.2002 -99.1992 -99.2002c-54.7588 0 -99.2002 44.4414 -99.2002 99.2002c0 54.7578 44.4414 99.2002 99.2002 99.2002z" />
+ <glyph glyph-name="readme" unicode="" horiz-adv-x="576"
+d="M528.3 401.5c26.4004 -0.200195 47.7002 -21.7002 47.7002 -48.0996v-245.7c0 -26.5 -21.5 -48 -48 -48h-89.7002c-102.1 0 -132.6 -24.4004 -147.3 -75c-0.799805 -2.7998 -5.2998 -2.7998 -6 0c-14.5996 50.5996 -45.0996 75 -147.3 75h-89.7002
+c-26.5 0 -48 21.5 -48 48v245.8c0 26.5 21.5 48 48 48h139.7c48.0996 0 89.7998 -33.2998 100.399 -80.2998c10.5 47 52.3008 80.2998 100.4 80.2998h139.8zM242 136.1h0.0996094v22.9004c0 2 -1.59961 3.5 -3.5 3.5h-160.399c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.9004
+c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.60059 3.5 3.5zM242 197h0.0996094v22.9004c0 2 -1.59961 3.5 -3.5 3.5h-160.399c-2 0 -3.5 -1.60059 -3.5 -3.5v-22.9004c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5zM242 257.9h0.0996094v22.8994
+c0 2 -1.59961 3.5 -3.5 3.5h-160.399c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.8994c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5zM501.3 136.2h0.100586v22.8994c0 2 -1.60059 3.5 -3.5 3.5h-160.4c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.8994
+c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5zM501.3 197.1h0.100586v22.9004c0 2 -1.60059 3.5 -3.5 3.5h-160.4c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.9004c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.60059 3.5 3.5zM501.3 258h0.100586v22.7998
+c0 2 -1.60059 3.5 -3.5 3.5h-160.4c-2 0 -3.5 -1.59961 -3.5 -3.5v-22.7998c0 -2 1.59961 -3.5 3.5 -3.5h160.3c2 0 3.5 1.59961 3.5 3.5z" />
+ <glyph glyph-name="java" unicode="" horiz-adv-x="384"
+d="M277.74 135.1c-94.5 -24.8994 -277 -13.2998 -224.5 12.1006c44.5 21.3994 80.5996 19 80.5996 19s-93.0996 -22.1006 -33 -30.1006c25.4004 -3.39941 76 -2.59961 123.101 1.30078c38.5 3.19922 77.1992 10.1992 77.1992 10.1992s-13.5996 -5.7998 -23.3994 -12.5z
+M192.34 167.2c-48.5 43.7998 -84.0996 82.2998 -60.2002 118.2c35.1006 52.5 132.2 78.0996 110.7 162.6c0 0 53.1602 -53.2002 -50.5 -135c-83.0996 -65.5996 -19 -103.1 0 -145.8zM306.94 343.4c-111.601 -64.7002 -91 -83.5 -64.1006 -121.301
+c28.7998 -40.5 -33.8994 -72.8994 -33.8994 -72.8994s31.1992 25.5996 6.5 54c-83.7002 96.3994 91.5996 140.2 91.5 140.2zM300.84 72.9004c96.1006 49.8994 51.6006 97.8994 20.6006 91.3994c-3.10352 -0.581055 -8.03125 -1.92578 -11 -3
+c1.71973 2.44629 5.39258 5.26855 8.19922 6.2998c61.3008 21.6006 108.5 -63.5996 -19.7998 -97.2998c0.649414 0.642578 1.5459 1.80762 2 2.60059zM348 10.5996c53 -23.8994 -115.16 -72 -319.4 -38.7998c-74.8994 12.1006 36.1006 54.5 56.4004 40.2002
+c0 0 -6.5 0.400391 -17.7002 -2c-10.7998 -2.2998 -45.0996 -13.4004 -26.7998 -21.2998c50.7998 -22.1006 233.7 -16.7998 291.6 0.700195c30.4004 9.2998 15.9004 21.1992 15.9004 21.1992zM124.44 52c0 0 -19.6006 -11.4004 13.8994 -15.2002
+c40.6006 -4.59961 61.2998 -4 106 4.5c7.46094 -4.46777 20.0938 -10.6504 28.2002 -13.7998c-100.2 -42.9004 -226.8 2.5 -148.1 24.5zM304.24 -45.2002c69.7998 13.2002 76.2002 29.7002 76.2002 29.7002c-3.30078 -43.5996 -144.9 -52.7998 -237.101 -46.9004
+c-60.5996 3.90039 -72.3994 13.7002 -72.3994 13.6006c57.5 -9.5 154.6 -11.2002 233.3 3.59961zM260.64 95c5.08594 -4.74902 14.5391 -10.4834 21.1006 -12.7998c-121.3 -35.5 -256.3 -2.90039 -169.5 25.8994c0 0 -21.9004 -16.1992 11.5996 -19.6992
+c43.2998 -4.5 77.6006 -4.80078 136.8 6.59961z" />
+ <glyph glyph-name="pied-piper-hat" unicode="" horiz-adv-x="640"
+d="M640 423.1c-80.7998 -53.5996 -89.4004 -92.5 -96.4004 -104.399c-6.69922 -12.2002 -11.6992 -60.2998 -23.2998 -83.6006c-11.7002 -23.5996 -54.2002 -42.1992 -66.0996 -50c-11.7002 -7.7998 -28.2998 -38.0996 -41.9004 -64.1992
+c-108.1 4.39941 -167.399 -38.8008 -259.2 -93.6006c29.4004 9.7002 43.3008 16.7002 43.3008 16.7002c94.1992 36 139.3 68.2998 281.1 49.2002c1.09961 0 1.90039 -0.600586 2.7998 -0.799805c3.90039 -2.2002 5.2998 -6.90039 3.10059 -10.8008l-53.9004 -95.7998
+c-2.5 -4.7002 -7.7998 -7.2002 -13.0996 -6.09961c-126.801 23.7998 -226.9 -17.2998 -318.9 -18.6006c-73.4004 -1.09961 -97.5 33.5 -97.5 35.1006c0 1.09961 0.599609 1.7002 1.7002 1.7002c0 0 38.2998 0 103.1 15.2998c73.6006 140.3 139.2 189.399 210.601 189.399
+c0 0 71.6992 0 90.5996 -61.8994c22.7998 39.7002 28.2998 49.2002 28.2998 49.2002c5.2998 9.39941 35 77.1992 86.4004 141.399c51.5 64 90.3994 79.9004 119.3 91.7998z" />
+ <glyph glyph-name="creative-commons-by" unicode="" horiz-adv-x="496"
+d="M314.9 253.6v-101.399h-28.3008v-120.5h-77.0996v120.399h-28.2998v101.5c0 4.40039 1.59961 8.2002 4.59961 11.3008c3.10059 3.09961 6.90039 4.69922 11.2998 4.69922h101.9c4.09961 0 7.7998 -1.59961 11.0996 -4.69922
+c3.10059 -3.2002 4.80078 -6.90039 4.80078 -11.3008zM213.4 317.3c0 23.2998 11.5 35 34.5 35s34.5 -11.7002 34.5 -35c0 -23 -11.5 -34.5 -34.5 -34.5s-34.5 11.5 -34.5 34.5zM247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248
+c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3z" />
+ <glyph glyph-name="creative-commons-nc" unicode="" horiz-adv-x="496"
+d="M247.6 440c139.801 0 248.4 -107.9 248.4 -248c0 -147.2 -118.5 -248 -248.4 -248c-134.5 0 -247.6 110.8 -247.6 248c0 132.9 104.7 248 247.6 248zM55.7998 258.9c-7.39941 -20.4004 -11.0996 -42.7002 -11.0996 -66.9004c0 -110.9 92.0996 -202.4 203.7 -202.4
+c122.399 0 177.199 101.801 178.5 104.101l-93.4004 41.5996c-7.7002 -37.0996 -41.2002 -53 -68.2002 -55.3994v-38.1006h-28.7998v38.2002c-27.5 0.299805 -52.5996 10.2002 -75.2998 29.7002l34.0996 34.5c31.7002 -29.4004 86.4004 -31.7998 86.4004 2.2002
+c0 6.19922 -2.2002 11.1992 -6.60059 15.0996c-14.1992 6 -1.7998 0.0996094 -219.3 97.4004zM248.4 395.7c-38.4004 0 -112.4 -8.7002 -170.5 -93l94.7998 -42.5c10 31.2998 40.3994 42.8994 63.7998 44.2998v38.0996h28.7998v-38.0996
+c22.7002 -1.2002 43.4004 -8.90039 62 -23l-32.2998 -33.2002c-42.7002 29.9004 -83.5 8 -70 -11.0996c53.4004 -24.1006 43.7998 -19.7998 93 -41.6006l127.1 -56.6992c4.10059 17.3994 6.2002 35.0996 6.2002 53.0996c0 57 -19.7998 105 -59.2998 143.9
+c-39.2998 39.8994 -87.2002 59.7998 -143.6 59.7998z" />
+ <glyph glyph-name="creative-commons-nc-eu" unicode="" horiz-adv-x="496"
+d="M247.7 440c140.7 0 248.3 -109 248.3 -248c0 -147.1 -118.1 -248 -248.3 -248c-136 0 -247.7 111.7 -247.7 248c0 131.2 103.6 248 247.7 248zM248.3 -10.7002c122.601 0 177.3 102.2 178.8 104.3l-128.3 56.8008h-90.2998
+c9.2002 -39.3008 39.0996 -50.2002 67.2998 -50.2002c19.1006 0 38.6006 6.2002 47.2998 10.7998l10 -46.0996c-14.1992 -7.90039 -38.1992 -15.8008 -64.7998 -15.8008c-57.3994 0 -113.2 34.3008 -124.6 101.301h-27v29.5h22.7998
+c0 16.2998 0.400391 13.2998 0.400391 19.5h-23.3008v29.5h4.7002l-65.7002 29.0996c-7.19922 -20.7998 -10.8994 -42.7998 -10.8994 -66c0 -110.2 91.5996 -202.7 203.6 -202.7zM231.6 179.9l-0.5 0.399414l0.900391 -0.399414h-0.400391zM308.8 199.4l136.101 -60.5
+c4.19922 16.5996 6.2998 34.1992 6.2998 52.8994c0 113.2 -90 203.4 -203 203.4c-13 0 -106.101 3.2002 -170.7 -93.6006l81.5996 -36.0996c4.10059 7.2002 8.60059 14 13.9004 20.0996c23.7002 26.5 56.9004 42.3008 95.9004 42.3008
+c25.2998 0 47.2998 -5.80078 62.2998 -12.4004l-11.6006 -47.2998c-10.7998 4.59961 -27.7998 10 -46.0996 10c-20 0 -38.2002 -6.60059 -51.0996 -22.4004c-3.40039 -3.7998 -6.30078 -8.7998 -8.80078 -14.2998l28.6006 -12.5996h70.2998v-29.5h-3.7002z" />
+ <glyph glyph-name="creative-commons-nc-jp" unicode="" horiz-adv-x="496"
+d="M247.7 440c140.8 0 248.3 -109.2 248.3 -248c0 -147.2 -118.1 -248 -248.3 -248c-135.9 0 -247.7 111.6 -247.7 248c0 131.2 103.6 248 247.7 248zM248.3 -10.7002c118.101 0 173.7 96.1006 175.2 98.2998l-81 36.1006v-35.7002h-64.2002v-56h-61.7002v56h-63.7998
+v38.7002h63.7998v18.7002l-5.69922 11.7998h-58.1006v38.5996h27.9004l-127 56.5c-6 -19.0996 -9 -39.2002 -9 -60.2998c0 -110.2 91.5996 -202.7 203.6 -202.7zM335.9 126.6l-54.7002 24.3008l-2.90039 -5.60059v-18.7002h57.6006zM342.4 178l101 -45.0996
+c5.19922 18.3994 7.89941 38 7.89941 59c0 113.399 -90.2002 203.399 -203 203.399c-91.0996 0 -145.899 -54 -173.7 -98.0996l81.9004 -36.5l-27.2998 51h65.7998l39.5996 -85.7002l23 -10.2002l43.4004 96h65.7998l-63 -116h38.6006v-17.7998z" />
+ <glyph glyph-name="creative-commons-nd" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM342.4 251v-42.5h-180.301v42.5h180.301zM342.4 171.2v-42.5h-180.301v42.5h180.301z" />
+ <glyph glyph-name="creative-commons-pd" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111.1 248 -248c0 -137 -111 -248 -248 -248s-248 111 -248 248c0 136.9 111 248 248 248zM248 -9.5c76.0996 0 142.4 42.4004 176.7 104.8c-1.40039 0.299805 12.5 -5.7998 -217.9 96.7998c0.200195 -32 16.1006 -71.8994 53.9004 -71.8994
+c18.7002 0 30.7998 10.3994 36.2998 16.7002l36.0996 -43.9004c-25.8994 -22.7998 -56.5 -29.5 -79.3994 -29.5c-46.5 0 -120.4 27.9004 -120.4 126.9c0 11.3994 1.2002 22.3994 3.2998 32.8994l-78.7998 35.1006c-45.5996 -129.9 51 -267.9 190.2 -267.9zM442.2 140.5
+c0.200195 -0.200195 0.299805 -0.299805 0.599609 -0.400391c4.40039 16.6006 6.7998 34 6.7998 52c0 111.101 -90.3994 201.5 -201.5 201.5c-70.3994 0 -132.399 -36.2998 -168.5 -91.1992l74.9004 -33.4004c19.7998 31.0996 53.2998 51.5996 100.7 51.5996
+c20.0996 0 51 -4.19922 78.0996 -27.5l-40.3994 -41.5996c-19.8008 19.7002 -55.9004 23 -74.7002 -11z" />
+ <glyph glyph-name="creative-commons-pd-alt" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 -10.7998c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3
+c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8zM316.7 262c21.3994 0 70 -5.2002 70 -68.5996c0 -63.5 -48.6006 -68.6006 -70 -68.6006h-53.2002v137.2h53.2002zM317.5 153.5c24 0 34.5 15.2998 34.5 39.9004
+c0 42 -31.2002 39.8994 -35 39.8994l-19.4004 -0.0996094v-79.7002h19.9004zM203.7 262c33.7002 0 50.5 -15.5 50.5 -46.5c0 -9 -3 -46.5 -57.1006 -46.5h-27v-44.2998h-34.5996v137.3h68.2002zM198.8 194.7c27.9004 0 30 41.5996 -0.899414 41.5996h-28.3008v-41.5996
+h29.2002z" />
+ <glyph glyph-name="creative-commons-remix" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM410.1 187.6l4.90039 -2.19922v-70c-7.2002 -3.60059 -63.4004 -27.5 -67.2998 -28.8008c-6.5 1.80078 -113.7 46.8008 -137.3 56.2002l-64.2002 -26.5996l-63.2998 27.5v63.7998
+l59.2998 24.7998c-0.700195 0.700195 -0.400391 -5 -0.400391 70.4004l67.2998 29.7002l151.9 -62.9004v-61.5996zM339.7 106.1v43.8008h-0.400391v1.7998l-113.8 46.5v-45.2002l113.8 -46.9004v0.400391zM347.2 163.7l39.8994 16.3994l-36.7998 15.5l-39 -16.3994z
+M399.5 125.6v43l-44.2998 -18.5996v-43.4004z" />
+ <glyph glyph-name="creative-commons-sa" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM137.7 227c13 83.9004 80.5 95.7002 108.899 95.7002c99.8008 0 127.5 -82.5 127.5 -134.2c0 -63.5996 -41 -132.9 -128.899 -132.9c-38.9004 0 -99.1006 20 -109.4 97h62.5
+c1.5 -30.0996 19.6006 -45.1992 54.5 -45.1992c23.2998 0 58 18.1992 58 82.7998c0 82.5 -49.0996 80.5996 -56.7002 80.5996c-33.0996 0 -51.6992 -14.5996 -55.7998 -43.7998h18.2002l-49.2002 -49.2002l-49 49.2002h19.4004z" />
+ <glyph glyph-name="creative-commons-sampling" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM252 342.1c2.7998 0.300781 11.5 -1 11.5 -11.5l6.59961 -107.199l4.90039 59.2998c0 6 4.7002 10.5996 10.5996 10.5996c5.90039 0 10.6006 -4.7002 10.6006 -10.5996
+c0 -2.5 -0.5 5.7002 5.7002 -81.5l5.7998 64.2002c0.299805 2.89941 2.89941 9.2998 10.2002 9.2998c3.7998 0 9.89941 -2.2998 10.5996 -8.90039l11.5 -96.5l5.2998 12.7998c1.7998 4.40039 5.2002 6.60059 10.2002 6.60059h58v-21.2998h-50.9004l-18.1992 -44.3008
+c-3.90039 -9.89941 -19.5 -9.09961 -20.8008 3.10059l-4 31.8994l-7.5 -92.5996c-0.299805 -3 -3 -9.2998 -10.1992 -9.2998c-3 0 -9.80078 2.09961 -10.6006 9.2998c0 1.90039 0.600586 -5.7998 -6.2002 77.9004l-5.2998 -72.2002
+c-1.09961 -4.7998 -4.7998 -9.2998 -10.5996 -9.2998c-2.90039 0 -9.7998 2 -10.6006 9.2998c0 1.89941 0.5 -6.7002 -5.7998 87.7002l-5.7998 -94.8008c0 -6.2998 -3.59961 -12.3994 -10.5996 -12.3994c-5.2002 0 -10.6006 4.09961 -10.6006 12l-5.7998 87.7002
+c-5.7998 -92.5 -5.2998 -84 -5.2998 -85.9004c-1.10059 -4.7998 -4.7998 -9.2998 -10.6006 -9.2998c-3 0 -9.7998 2.09961 -10.5996 9.2998c0 0.700195 -0.400391 1.09961 -0.400391 2.59961l-6.19922 88.6006l-4.90039 -56.7002
+c-0.700195 -6.5 -6.7002 -9.2998 -10.5996 -9.2998c-5.80078 0 -9.60059 4.09961 -10.6006 8.89941l-11.0996 76.4004c-2 -4 -3.5 -8.40039 -11.1006 -8.40039h-51.3994v21.3008h44.7998l13.7002 27.8994c4.39941 9.90039 18.2002 7.2002 19.8994 -2.7002l3.10059 -20.3994
+l8.39941 97.8994c0 6 4.80078 10.6006 10.6006 10.6006c0.5 0 10.5996 0.200195 10.5996 -12.4004l4.90039 -69.0996l6.59961 92.5996c0 10.1006 9.5 10.6006 10.2002 10.6006c0.599609 0 10.5996 -0.700195 10.5996 -10.6006l5.30078 -80.5996l6.19922 97.8994
+c0.100586 1.10059 -0.599609 10.3008 9.90039 11.5z" />
+ <glyph glyph-name="creative-commons-sampling-plus" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM355.4 189.7l58.3994 0.299805v-23.2002h-50.5l-18 -43.3994c-4.59961 -11 -20.8994 -8.7002 -22.2998 3.09961l-2.7002 22.2998l-6.7998 -83
+c-1.09961 -14.0996 -22 -14.2002 -23.0996 0.100586l-4.90039 64.3994l-4.59961 -58.5996c-1.10059 -14.2998 -22.3008 -14.1006 -23.2002 0.200195l-4.5 71.7998l-4.90039 -80.5c-0.899414 -14.5 -22.2998 -14.5 -23.2002 -0.100586l-4.7998 73.3008l-4.59961 -70.4004
+c-0.900391 -14.2998 -22.1006 -14.5 -23.2002 -0.0996094l-5.7002 78.2998l-3.7998 -43.6006c-1.2002 -13.6992 -21.0996 -14.1992 -23.0996 -0.699219l-10.7002 73.0996c-2 -3.90039 -6 -6.40039 -10.4004 -6.40039h-51.2998v23.2002h43.9004l13.1992 27.7002
+c4.90039 10.2998 20.3008 8.09961 22 -3.2998l1.80078 -12.2002l7.69922 89.7998c1.2002 14.1006 22.1006 14.1006 23.2002 -0.200195l4.10059 -57l5.2998 80.2002c1 14.4004 22.2998 14.4004 23.2002 0l4.2998 -66.2998l5.09961 83.7002
+c0.900391 14.3994 22.2998 14.5 23.2002 0l5.90039 -94.2998l3.5 44.8994c1.09961 14.2002 22.0996 14.2998 23.1992 0l5.2002 -68.7998l4.2998 51.4004c1.10059 13.7998 21.4004 14.2998 23.1006 0.399414l11 -92.7998l4 9.5c1.7002 4.40039 6 7.2002 10.7002 7.2002z
+M277.4 184.5c4.09961 0 7.5 3.40039 7.5 7.5c0 4.2002 -3.40039 7.5 -7.5 7.5h-21.9004v21.9004c0 4.19922 -3.40039 7.5 -7.5 7.5s-7.5 -3.40039 -7.5 -7.5v-21.9004h-21.9004c-4.09961 0 -7.5 -3.40039 -7.5 -7.5c0 -4.2002 3.40039 -7.5 7.5 -7.5h21.9004v-21.9004
+c0 -4.19922 3.40039 -7.5 7.5 -7.5c4.2002 0 7.5 3.40039 7.5 7.5v21.9004h21.9004z" />
+ <glyph glyph-name="creative-commons-share" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM349.4 262.9c7.7998 0 13.6992 -6.10059 13.6992 -13.7002v-182.5c0 -7.7002 -6.09961 -13.7002 -13.6992 -13.7002h-135.101c-7.7002 0 -13.7002 6 -13.7002 13.7002v54h-54
+c-7.7998 0 -13.6992 6 -13.6992 13.7002v182.5c0 8.19922 6.59961 12.6992 12.3994 13.6992h136.4c7.7002 0 13.7002 -6 13.7002 -13.6992v-54h54zM159.9 147.7h40.6992v101.399c0 7.40039 5.80078 12.6006 12 13.7002h55.8008v40.2998h-108.5v-155.399zM336.1 235.8h-108.5
+v-155.399h108.5v155.399z" />
+ <glyph glyph-name="creative-commons-zero" unicode="" horiz-adv-x="496"
+d="M247.6 440c141.801 0 248.4 -110.1 248.4 -248c0 -147.1 -118.5 -248 -248.4 -248c-134 0 -247.6 109.5 -247.6 248c0 132.9 104.7 248 247.6 248zM248.4 395.3c-118.2 0 -203.7 -97.8994 -203.7 -203.3c0 -109.8 91.2002 -202.8 203.7 -202.8
+c103.199 0 202.8 81.0996 202.8 202.8c0.0996094 113.8 -90.2002 203.3 -202.8 203.3zM248 334.8c81.9004 0 102.5 -77.2998 102.5 -142.8s-20.5996 -142.8 -102.5 -142.8s-102.5 77.2998 -102.5 142.8s20.5996 142.8 102.5 142.8zM248 280.9
+c-42.0996 0 -44.0996 -60.1006 -44.0996 -88.9004c0 -9.2998 0.199219 -21.7002 1.89941 -34.4004l54.5 100.2c5.7002 9.7998 2.7998 16.7998 -3.09961 21.9004c-2.7998 0.700195 -5.90039 1.2002 -9.2002 1.2002zM288.8 234.7l-60.8994 -105.2
+c-12.5 -18.7002 6.59961 -26.4004 20.0996 -26.4004c42.0996 0 44.0996 60 44.0996 88.9004c0 11.2998 -0.399414 27.2998 -3.2998 42.7002z" />
+ <glyph glyph-name="ebay" unicode="" horiz-adv-x="640"
+d="M606 258.5h34l-99.2002 -194.8h-35.8994l28.5 54.0996l-61.5 116.101c3.09961 -6.60059 4.7998 -14.5 4.7998 -23.8008v-65.5996c0 -9.2998 0.299805 -18.5996 1 -26.7998h-29.7998c-0.800781 6.89941 -1.10059 13.5996 -1.10059 20.2002
+c-16.0996 -19.8008 -35.2998 -25.5 -61.8994 -25.5c-39.5 0 -60.6006 20.8994 -60.6006 45c0 3.19922 0.200195 6.19922 0.700195 9c-8.40039 -32.3008 -36.4004 -54.2002 -73.2998 -54.2002c-23.2998 0 -45.1006 8.2998 -58.7002 24.8994
+c0 -6.59961 -0.400391 -13.1992 -1.09961 -19.5h-31.5c0.5 10.2002 1.09961 22.8008 1.09961 33.1006v169.5h32.0996v-80.6006c15.7002 18.7002 37.4004 24.2002 58.7002 24.2002c35.7002 0 75.4004 -24.0996 75.4004 -76.2002c0 -5.59961 -0.5 -11 -1.5 -16.1992
+c7.09961 24.3994 34.2998 33.5 76.7002 34.3994c13.6992 0.299805 29 0.400391 41.6992 0.400391v3.39941c0 23.4004 -15 33 -41 33c-19.2998 0 -33.5996 -8 -35 -21.7998h-33.6992c3.59961 34.4004 39.6992 43.1006 71.5 43.1006c27.3994 0 51.7998 -7 63.2998 -26
+l-10.9004 20.5996h37.5l54.9004 -109.9zM243.7 134.2c29.7998 0 50.2002 21.5 50.2002 53.7998c0 32.4004 -20.4004 53.7998 -50.2002 53.7998c-29.6006 0 -50.2002 -21.3994 -50.2002 -53.7998c0 -32.2998 20.5996 -53.7998 50.2002 -53.7998zM444.6 181.5v3.2998
+c-11.7998 0 -26.2998 -0.0996094 -39.3994 -0.599609c-29.1006 -0.900391 -47.2002 -6.2002 -47.2002 -25.2998c0 -12.4004 9.90039 -25.8008 35 -25.8008c33.7002 0 51.5996 18.4004 51.5996 48.4004zM32.7002 179.9c3.5 -58.3008 79.2002 -57.4004 91.2002 -21.6006
+h33.0996c-6.40039 -34.3994 -43 -46.0996 -74.4004 -46.0996c-57.1992 0 -82.5 31.5 -82.5 74c0 46.7998 26.2002 77.5996 83 77.5996c45.3008 0 78.4004 -23.7002 78.4004 -75.3994v-8.5h-128.8zM127.7 201.3c-2.2998 54.7002 -87.5 56.6006 -94.4004 0h94.4004z" />
+ <glyph glyph-name="keybase" unicode=""
+d="M195.21 17.2998c0 -9.8252 -7.97461 -17.7998 -17.7998 -17.7998c-9.82617 0 -17.7998 7.97461 -17.7998 17.7998c0 9.82617 7.97363 17.7998 17.7998 17.7998c9.80371 -0.0214844 17.7783 -7.99609 17.7998 -17.7998zM288 35.2002
+c9.80371 -0.0224609 17.7783 -7.99609 17.7998 -17.7998c0 -9.82617 -7.97461 -17.8008 -17.7998 -17.8008s-17.7998 7.97461 -17.7998 17.8008c0 9.8252 7.97461 17.7998 17.7998 17.7998zM430.3 71.2002c0 -38.9004 -7.59961 -73.9004 -22.2002 -103h-27.2998
+c23.5 38.7002 30.5 94.7998 22.4004 134.3c-16.1006 -29.5 -52.1006 -38.5996 -85.9004 -28.7998c-127.8 37.5 -192.5 -19.7002 -234.6 -50.2998l18.8994 59.2998l-39.8994 -42.2998c3.95605 -21.9639 17.9336 -54.3545 31.2002 -72.3008h-28.79
+c-8.1543 13.2822 -18.0996 36.2646 -22.2002 51.3008l-23.7998 -25.2002c0 74.8994 -5.5 147.6 61.5 215.2c16.4688 16.7402 47.4248 37.6621 69.0996 46.6992c-6.7998 13.5 -9.5 29.2002 -7.7998 46l-19.9102 1.2002c-16.918 1.05371 -30.6484 15.666 -30.6484 32.6172
+c0 0.492188 0.0214844 1.29102 0.0488281 1.7832v0.0996094l1.59961 26.2002c1.10449 16.7988 15.665 30.5078 32.5 30.5996c1.2998 0 -0.299805 0.100586 28.2002 -1.69922c7.65918 -0.414062 17.873 -5.52148 22.7998 -11.4004c7.11035 10.4004 14.5 20.5 24.6104 34.5
+l20.5996 -12.0996c-13.5996 -29 -9.09961 -36.2002 -9 -36.3008c3.90039 0 13.9004 0.5 32.4004 -5.69922c28.8379 -9.54883 52.2422 -41.9512 52.2422 -72.3291c0 -8.61914 -2.75195 -22.0469 -6.14258 -29.9717c19 -6.09961 51.2998 -19.8994 82.4004 -51.7998
+c36.5996 -37.5996 57.6992 -87.3994 57.6992 -136.6h-0.00976562zM146 325.9c2.80762 8.47461 8.67578 21.6455 13.0996 29.3994c0.100586 2 2.2002 13.1006 -7.7998 13.7998c-28.5 1.80078 -26.2998 1.60059 -26.7002 1.60059h-0.0429688
+c-4.47754 0 -8.31152 -3.62891 -8.55664 -8.10059l-1.59961 -26.1992c-0.00683594 -0.121094 -0.0117188 -0.318359 -0.0117188 -0.439453c0 -4.48633 3.63379 -8.36719 8.11133 -8.66113zM171.8 264.1c4.50488 -7.35938 14.4951 -16.3193 22.2998 -20
+c0 21.2002 28.5 41.9004 52.8008 17.5l8.39941 -10.2998c20.7998 18.7998 19.4004 45.2998 12.1006 60.9004c-13.8008 29.0996 -46.9004 32 -54.3008 31.7002c-0.319336 -0.015625 -0.837891 -0.0283203 -1.15723 -0.0283203c-9.09863 0 -19.1973 6.86719 -22.542 15.3281
+c-13.6904 -21.2002 -37.1904 -62.5 -17.5908 -95.1006h-0.00976562zM254.7 195.7l-19.7002 -16.1006c-0.900391 -0.738281 -1.63086 -2.2832 -1.63086 -3.44727c0 -0.890625 0.461914 -2.16797 1.03125 -2.85254l8.89941 -10.8994
+c0.742188 -0.896484 2.28809 -1.62305 3.45117 -1.62305c0.887695 0 2.16406 0.458008 2.84863 1.02246l19.6006 16l5.5 -6.7998c4.89941 -6 13.7998 1.40039 9 7.2998c-63.6006 78.2998 -41.5 51.1006 -55.2998 68.1006c-4.7002 6 -13.9004 -1.40039 -9 -7.30078
+c1.89941 -2.2998 18.3994 -22.5996 19.7998 -24.2998l-9.60059 -7.89941c-4.59961 -3.80078 2.60059 -13.3008 7.40039 -9.40039l9.7002 8zM373.11 170c-16.9004 23.7002 -42.6006 46.7002 -73.4004 60.4004c-6.18359 2.73633 -16.4434 6.58887 -22.9004 8.59961
+c-1.64355 -1.83789 -4.51074 -4.61523 -6.39941 -6.2002l31.8994 -39.2002c3.70605 -4.54102 6.71289 -12.9834 6.71289 -18.8447c0 -7.78906 -4.88867 -18.1172 -10.9121 -23.0547c-1.30078 -1.10059 -13.1006 -10.7002 -29 -4.90039
+c-2.90039 -2.2998 -10.1006 -9.89941 -22.2002 -9.89941h-0.0419922c-7.46777 0 -17.3496 4.70312 -22.0586 10.5l-8.89941 10.8994c-3.5293 4.33984 -6.39355 12.4014 -6.39355 17.9951c0 2.49121 0.624023 6.43555 1.39355 8.80469
+c-3.83398 4.43945 -6.94531 12.8018 -6.94531 18.667c0 3.26172 1.05078 8.33984 2.34473 11.333c-7.19922 1.30078 -26.6992 6.2002 -42.6992 21.4004c-55.8008 -20.7002 -88 -64.4004 -101.301 -91.2002c-14.8994 -30.2002 -18.7998 -60.8994 -19.8994 -90.2002
+c8.2002 8.7002 -3.90039 -4.09961 114 120.9l-29.9004 -93.5996c57.7998 31.0996 124 36 197.4 14.3994c23.5996 -6.89941 45.0996 -1.59961 56 13.9004c11.0996 15.5996 8.5 37.7002 -6.7998 59.2998zM128.61 340.9l1 15.5996l15.5996 -1l-1 -15.5996z" />
+ <glyph glyph-name="mastodon" unicode=""
+d="M433 268.89c0 0 0.799805 -71.6992 -9 -121.5c-6.23047 -31.5996 -55.1104 -66.1992 -111.23 -72.8994c-20.0996 -2.40039 -93.1191 -14.2002 -178.75 6.7002v-0.339844c0 -3.75977 0.40332 -9.83496 0.900391 -13.5605c6.62988 -49.5996 49.2197 -52.5996 89.6299 -54
+c40.8105 -1.2998 77.1201 10.0996 77.1201 10.0996l1.7002 -36.8994s-28.5098 -15.2998 -79.3203 -18.1006c-28.0098 -1.59961 -62.8193 0.700195 -103.33 11.4004c-112.229 29.7002 -105.63 173.4 -105.63 289.1c0 97.2002 63.7197 125.7 63.7197 125.7
+c61.9209 28.4004 227.96 28.7002 290.48 0c0 0 63.71 -28.5 63.71 -125.7zM357.88 143.69c0 122 5.29004 147.71 -18.4199 175.01c-25.71 28.7002 -79.7197 31 -103.83 -6.10059l-11.5996 -19.5l-11.6006 19.5c-24.0098 36.9004 -77.9297 35 -103.83 6.10059
+c-23.6094 -27.1006 -18.4092 -52.9004 -18.4092 -175h46.7295v114.2c0 49.6992 64 51.5996 64 -6.90039v-62.5098h46.3301v62.5c0 58.5 64 56.5996 64 6.89941v-114.199h46.6299z" />
+ <glyph glyph-name="r-project" unicode="" horiz-adv-x="581"
+d="M581 221.4c0 -54.8008 -33.9004 -104.301 -88.4004 -139.7l67.4004 -113.7h-112l-40.0996 75.4004c-21.8008 -6.5 -45.1006 -11.2002 -69.4004 -13.9004v-61.5h-99.0996v61.9004c-136.101 16.0996 -239.4 95.6992 -239.4 191.5c0 107.5 130.1 194.6 290.5 194.6
+s290.5 -87.0996 290.5 -194.6zM114.2 206.9c0 -52.8008 51.0996 -98.4004 125.2 -119.9v208.3h199s90.5996 -1.59961 90.5996 -87.8994c0 -86.3008 -86.5996 -92.7002 -86.5996 -92.7002s17.5996 -5.2998 27.7998 -10.5c1.7002 -0.799805 4 -2.10059 6.39941 -3.7002
+c43.8008 21.4004 70.3008 56.2998 70.3008 106.4c0 92.2998 -90 133 -211.9 133s-220.8 -59.5 -220.8 -133zM339.3 168.6c49.6006 0 87.7998 -8.19922 87.7998 28.3008c0 34.0996 -30 27.2998 -87.7998 27.2998v-55.6006zM338.4 96.0996v-22.0996
+c17.5996 0.0996094 34.5 1 50.5996 2.90039c-5.09961 7.5 -13.2002 19.1992 -24 19.1992h-26.5996z" />
+ <glyph glyph-name="researchgate" unicode=""
+d="M0 416h448v-448h-448v448zM262.2 81.5996v7.30078c-10 0 -20 6.89941 -27.2002 14.6992c-12.2002 13.3008 -28.5996 34.7002 -42.2002 58.9004c22.5 5.2998 39.2002 26.4004 39.2002 47.5c0 31.2002 -24.2002 45.5996 -55.9004 45.5996
+c-17.7998 0 -45.0996 -1.59961 -70.8994 -0.599609v-8.09961c15.5996 -2.90039 22 -1.30078 22 -23.9004v-109.4c0 -22.5996 -6.5 -21 -22 -23.8994v-8.10059c7.5 0.200195 20.5 0.800781 33.5996 0.800781c12.5 0 28.7002 -0.5 35.6006 -0.800781v8.10059
+c-19.8008 2.7002 -25.8008 0.399414 -25.8008 23.8994v46.4004c6.7002 -0.599609 12.5 -0.599609 21.4004 -0.599609c16.9004 -30.3008 33 -53 42.2002 -63.6006c16.7998 -20.2002 43.3994 -17.2002 50 -14.2002zM285.1 216.6c38.7002 0 34 29.4004 34 49.9004h-30.3994
+v-10.7002h17.8994c0 -15.8994 -7.39941 -26.7998 -21.5 -26.7998c-11.2998 0 -17.8994 9.90039 -17.8994 23.2998v26.7998c0 12.4004 11.7998 19.7002 19.7002 19.7002c14.1992 0 19.6992 -12.5 19.6992 -12.5l10.7002 7.2002s-5.2002 17.9004 -30.3994 17.9004
+c-25.2002 0 -34 -18.2002 -34 -30.4004v-32.2002c0 -16.5 8.89941 -32.2002 32.1992 -32.2002zM168.6 171.9c-9.39941 0 -13.5996 0.299805 -20 0.799805v69.7002c6.40039 0.599609 15 0.599609 22.5 0.599609c23.3008 0 37.2002 -12.2002 37.2002 -34.5
+c0 -21.9004 -15 -36.5996 -39.7002 -36.5996z" />
+ <glyph glyph-name="teamspeak" unicode="" horiz-adv-x="512"
+d="M244.2 101.21c-2.40039 -12.5 -10.6006 -20 -22.5 -24.2998c-9.2002 -3.2002 -50.1006 -1.60059 -61.7002 -1c-18 1.2998 -33.2002 8.5 -43.4004 24c-14.5 22.5 -19.5 47.7002 -14.5 73.8994c4.60059 24.5 24.6006 34.7002 46.3008 22.7002
+c15.1992 -7.5 42.5 -27.3994 63.3994 -46.5996c20.4004 -18.7002 34.7998 -36.4004 32.4004 -48.7002zM449.2 80.4102c6.7002 -5.41016 11.2002 -22 11.5996 -32.1006c1 -50.3994 -23.8994 -68 -46.5996 -85.3994c-65.1006 -50 -295.101 -16.9004 -145.4 -6.40039
+c127.4 9 164.101 96.1006 172.101 121.5c0.647461 1.99023 2.87109 3.60547 4.96387 3.60547c1.04102 0 2.53516 -0.540039 3.33594 -1.20508zM511.2 202.81c0 -17.1992 1.89941 -34.5996 -1 -51.6992c-4 -24.7002 -29.1006 -41.7002 -53.2002 -36.7002
+c-7.2002 1.7002 -9.40039 7.2002 -9.40039 14.2002c0 28.0996 0.800781 56.3994 0 84.5996c-1.89941 75.79 -36.1992 132.79 -102.3 169.4c-111 60.3896 -253.2 -7 -277.8 -131.5c-6.09961 -30.4004 -1.7002 -48.3008 -3.7002 -125.801
+c-0.299805 -7.19922 -4.2998 -11.1992 -12 -11.5c-30.7998 -1.39941 -51.7998 18.2002 -51.7998 49v20.9004l0.799805 26.4902c2.40039 15.5 10.7002 27 24.9004 34c3.5 1.7998 5.7002 3.5 6.39941 7.7998c6.10059 33.4102 19.5 64 39.3008 91.71
+c2.2998 3.09961 4 5.2998 1 9.2998c-3.7002 5.40039 -1 10.2002 3 14.5c28.0996 31.7998 61.8994 55.1006 102 67.4004c96 29.4668 180.1 9.29688 252.3 -60.5098c6.7002 -6.40039 15.5 -12.9004 7 -24.4004c-1.2998 -1.7998 1.09961 -3.5 2.2002 -5
+c17.2246 -23.209 35.3242 -65.1367 40.3994 -93.5898c0.900391 -3.7002 3 -5.10059 5.90039 -6.40039c17.3994 -8.7998 25.7002 -23.2998 26 -42.2002zM351.6 71.3096l-51.5996 7.7002c-22.7998 5.90039 -51 32.7002 22.2002 60.7998
+c21.5996 8.5 85.7002 37.2002 87.7998 -8c0.900391 -32 -21.9004 -63.2998 -58.4004 -60.5z" />
+ <glyph glyph-name="first-order-alt" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 -48.21c132.66 0 240.21 107.55 240.21 240.21s-107.55 240.21 -240.21 240.21s-240.21 -107.55 -240.21 -240.21s107.55 -240.21 240.21 -240.21z
+M248 411.71c121.34 0 219.71 -98.3701 219.71 -219.71s-98.3701 -219.71 -219.71 -219.71s-219.71 98.3701 -219.71 219.71s98.3701 219.71 219.71 219.71zM248 -19.5098c116.81 0 211.51 94.7002 211.51 211.51s-94.7002 211.51 -211.51 211.51
+s-211.51 -94.6895 -211.51 -211.51s94.7002 -211.51 211.51 -211.51zM434.23 143.47c-3.69141 -14.209 -12.709 -36.0225 -20.1309 -48.6895l-74.1299 35.8799l61.4805 -54.8203c-8.85352 -11.7021 -25.5195 -28.4082 -37.2002 -37.29l-54.7998 61.5703l35.8799 -74.2705
+c-12.6445 -7.45215 -34.4307 -16.5156 -48.6299 -20.2295l-27.29 78.4697l4.79004 -82.9297c-8.61035 -1.17969 -17.4004 -1.7998 -26.3301 -1.7998s-17.7197 0.620117 -26.3301 1.7998l4.75977 82.46l-27.1494 -78.0303c-14.2021 3.70996 -35.998 12.7588 -48.6504 20.2002
+l35.9297 74.3398l-54.8701 -61.6396c-11.6836 8.87988 -28.3584 25.582 -37.2197 37.2793l61.5898 54.9004l-74.2598 -35.9297c-7.42383 12.667 -16.4463 34.4795 -20.1396 48.6895l77.8398 27.1104l-82.2305 -4.75977c-1.15918 8.56934 -1.7793 17.3193 -1.7793 26.21
+c0 9 0.629883 17.8398 1.81934 26.5098l82.3799 -4.76953l-77.9395 27.1592c3.71973 14.208 12.7822 36.0127 20.2295 48.6699l74.2207 -35.9199l-61.5205 54.8604c8.88086 11.6836 25.582 28.3584 37.2803 37.2197l54.7598 -61.5293l-35.8301 74.1699
+c12.6562 7.41895 34.4521 16.4375 48.6504 20.1299l26.8701 -77.25l-4.70996 81.6094c8.60938 1.18066 17.3896 1.80078 26.3193 1.80078c8.93066 0 17.71 -0.620117 26.3203 -1.80078l-4.74023 -82.1592l27.0498 77.7598c17.2705 -4.5 33.6006 -11.3506 48.6309 -20.1699
+l-35.8203 -74.1201l54.7197 61.4697c11.6924 -8.86133 28.376 -25.54 37.2402 -37.2295l-61.4502 -54.7705l74.1201 35.8604c7.43945 -12.6533 16.4893 -34.4492 20.2002 -48.6504l-77.8105 -27.0996l82.2402 4.75c1.19043 -8.66016 1.82031 -17.5 1.82031 -26.4902
+c0 -8.87988 -0.610352 -17.6299 -1.78027 -26.1904l-82.1201 4.75z" />
+ <glyph glyph-name="fulcrum" unicode="" horiz-adv-x="320"
+d="M95.75 283.86l-35.3799 -43.5508l-35.3701 43.5508l35.3799 43.5498zM144.23 448v-211.11l-41.0801 -44.8896l41.0801 -44.8896v-211.11l-20.5107 198.18l-51 57.8203l50.9707 57.8203zM223.9 283.86l35.3799 43.5498l35.3799 -43.5498l-35.3799 -43.5508zM175.42 236.86
+v211.14l20.5801 -198.18l51 -57.8203l-51 -57.8203l-20.5801 -198.18v211.11l41.0801 44.8896z" />
+ <glyph glyph-name="galactic-republic" unicode="" horiz-adv-x="496"
+d="M248 -56c-136.75 0 -248 111.25 -248 248s111.25 248 248 248s248 -111.25 248 -248s-111.25 -248 -248 -248zM248 423.47c-127.63 0 -231.47 -103.84 -231.47 -231.47s103.84 -231.47 231.47 -231.47s231.47 103.84 231.47 231.47s-103.84 231.47 -231.47 231.47z
+M275.62 401.66c37.6602 -4.91016 72.21 -19.7402 100.96 -41.7998l-17.3896 -17.3604c-20.6758 15.3154 -58.1152 30.7891 -83.5703 34.54v24.6201zM220.25 401.59v-24.54c-30.9697 -4.60938 -59.4502 -16.8301 -83.5195 -34.6699h-0.0800781l-17.2803 17.3604
+c28.7197 22.0498 63.2402 36.9102 100.88 41.8496zM232.5 351.42h31v-82.8604c10.0498 -2.0293 19.3701 -6.00977 27.6201 -11.5l58.6699 58.6709l21.9297 -21.9307l-58.6699 -58.6699c5.46973 -8.24023 9.48047 -17.5996 11.5 -27.6201h82.8701v-31h-82.8701
+c-2.03027 -10.0195 -6.04004 -19.3096 -11.5 -27.54l58.6699 -58.6895l-21.9297 -21.9307l-58.6699 58.6904c-8.25 -5.49023 -17.5703 -9.52051 -27.6201 -11.5498v-82.9004h-31v82.9004c-8.25781 1.66895 -20.6533 6.80762 -27.6699 11.4697l-58.6201 -58.6201
+l-21.9297 21.9297l58.6699 58.6904c-5.45996 8.23047 -9.4502 17.5205 -11.4697 27.54h-82.9004v31h82.9004c2.01953 10.0303 6 19.3896 11.4697 27.6201l-58.6699 58.6699l21.9297 21.9297l58.6201 -58.5898c8.25 5.48047 17.6299 9.38965 27.6699 11.4199v82.8701z
+M415.74 320.7c22.0996 -28.7402 36.9795 -63.3398 41.9297 -101.03h-24.6201c-3.7832 25.4902 -19.3154 62.9746 -34.6699 83.6699zM80.1904 320.57l17.3896 -17.3906c-17.8301 -24.0693 -29.9902 -52.5596 -34.5898 -83.5195h-24.6504
+c4.94043 37.6494 19.79 72.1895 41.8506 100.91zM38.3398 164.33l24.6504 0.00976562c4.58984 -30.9502 16.7002 -59.4502 34.5098 -83.5195l-17.3604 -17.3906c-22.0498 28.7207 -36.8799 63.2607 -41.7998 100.9zM433.04 164.33h24.6201
+c-4.9502 -37.6699 -19.8506 -72.2197 -41.9297 -100.96l-17.3604 17.3604c17.8701 24.0996 30.0596 52.6094 34.6699 83.5996zM136.66 41.6201c24.0703 -17.8604 52.6094 -30.0205 83.5996 -34.6504v-24.6396c-37.6602 4.9502 -72.2295 19.8398 -100.96 41.9297z
+M359.19 41.5703h0.0791016l17.3105 -17.3906c-28.75 -22.0596 -63.29 -36.9297 -100.96 -41.8496v24.5703c30.9902 4.58984 59.4795 16.8301 83.5703 34.6699z" />
+ <glyph glyph-name="galactic-senate" unicode="" horiz-adv-x="512"
+d="M249.86 414.52h12.2793v-26.0693c13.5801 -20.6201 23.8604 -108.59 24.4902 -215.351c-11.7402 15.6201 -19.1299 33.3301 -19.1299 48.2402v16.8799c0.0302734 5.32031 -0.75 10.5303 -2.19043 15.6504c-0.649414 2.13965 -1.38965 4.07031 -2.61914 5.82031
+c-1.23047 1.73926 -3.44043 3.79004 -6.68066 3.79004c-3.25 0 -5.4502 -2.04004 -6.67969 -3.79004c-1.23047 -1.74023 -1.96973 -3.68066 -2.62012 -5.82031c-1.44043 -5.12012 -2.21973 -10.3301 -2.19043 -15.6504v-16.8799
+c0 -14.9102 -7.38965 -32.6201 -19.1299 -48.2402c0.610352 106.761 10.8906 194.73 24.4707 215.351v26.0693zM223.52 266.75c-1.59961 -22.4004 -2.75 -46.5195 -3.47949 -72.0703c-23.2998 -11.2793 -40.7705 -33.1602 -46.3203 -59.5098
+c-7.71973 -2.25977 -22.71 -3.91992 -40.4893 -4.21973c-7.51074 3.66016 -16.5 5.85938 -26.1807 6.04004c1.90039 14.9102 5.87012 29.1699 11.6504 42.4199c15.4395 -8.10059 30.9297 -8.66016 35.4697 -0.959961c4.57031 7.74023 -3.58984 21.04 -18.3203 30.6602
+c8.68066 11.7695 18.9805 22.2998 30.5605 31.0898c9.50977 -15.5898 23.3594 -24.4404 31.3594 -19.8203c8.05078 4.65039 7.19043 21.1699 -1.70996 37.29c8.76074 3.88965 17.9404 6.92969 27.46 9.08008zM288.48 266.75
+c7.82227 -1.75977 20.1201 -5.82812 27.4492 -9.08008c-8.89941 -16.1299 -9.75977 -32.6396 -1.70996 -37.29c8 -4.62012 21.8506 4.23047 31.3604 19.8203c11.5801 -8.79004 21.8799 -19.3203 30.5596 -31.0898c-14.7197 -9.61035 -22.8896 -22.9199 -18.3193 -30.6602
+c4.54004 -7.7002 20.0293 -7.14062 35.4697 0.959961c5.79004 -13.25 9.75 -27.5098 11.6504 -42.4199c-9.68066 -0.19043 -18.6709 -2.37988 -26.1807 -6.04004c-17.7793 0.299805 -32.7695 1.95996 -40.4902 4.21973c-5.5498 26.3496 -23.0293 48.2305 -46.3193 59.5098
+c-0.719727 25.5508 -1.87988 49.6699 -3.46973 72.0703zM256 258.15c3.23047 0 5.86035 -8.81055 6.08984 -19.9307h0.0498047v-16.8799c0 -41.4199 49.0107 -95.04 93.4902 -95.04c52 0 122.76 1.4502 156.37 -29.1699v-2.50977
+c-9.41992 -17.1104 -20.5801 -33.1699 -33.1797 -47.9697c-12.5303 21.0898 -51.5898 40.96 -108.021 41.3496c-45.6797 -1.01953 -79.0195 -20.3301 -90.7598 -40.8701c-0.00976562 -0.00976562 0.00976562 -0.0400391 0 -0.0498047
+c-7.66992 -2.13965 -15.8496 -3.23047 -24.04 -3.20996c-8.19043 -0.0205078 -16.3701 1.07031 -24.04 3.20996c-0.00976562 0.00976562 0.00976562 0.0400391 0 0.0498047c-11.7295 20.54 -45.0801 39.8506 -90.7598 40.8701
+c-56.4307 -0.400391 -95.5 -20.2598 -108.021 -41.3496c-12.5996 14.7998 -23.7598 30.8496 -33.1797 47.9697v2.50977c33.6201 30.6201 104.37 29.1699 156.37 29.1699c44.4795 0 93.4902 53.6201 93.4902 95.04v16.8799h0.0498047
+c0.229492 11.1201 2.85938 19.9307 6.08984 19.9307zM256 161.56c-22.4199 0 -40.5996 -18.1797 -40.5996 -40.5996s18.1797 -40.6504 40.5996 -40.6504s40.5996 18.2305 40.5996 40.6504s-18.1797 40.5996 -40.5996 40.5996zM256 153.92
+c18.1904 0 32.96 -14.7695 32.96 -32.96s-14.7695 -32.96 -32.96 -32.96s-32.96 14.7695 -32.96 32.96s14.7695 32.96 32.96 32.96zM256 147.78c-14.8096 0 -26.8203 -12.0107 -26.8203 -26.8203s12.0107 -26.8203 26.8203 -26.8203s26.8203 12.0107 26.8203 26.8203
+s-12.0107 26.8203 -26.8203 26.8203zM141.2 81.1104c18.75 -0.419922 35.1895 -4.18066 48.6094 -9.66992c12.5508 -16.0303 29.1602 -30.04 49.5801 -33.0703c0.100586 -0.00976562 0.169922 -0.0302734 0.270508 -0.0498047
+c0.0498047 -0.0107422 0.109375 -0.0400391 0.160156 -0.0507812c5.23926 -1.06934 10.6396 -1.59961 16.1895 -1.59961c5.56055 0 10.9502 0.530273 16.1904 1.59961c0.0498047 0.0107422 0.109375 0.0400391 0.160156 0.0507812
+c0.0996094 0.00976562 0.179688 0.0292969 0.269531 0.0498047c20.4199 3.04004 37.04 17.04 49.5801 33.0703c13.4199 5.5 29.8496 9.25 48.6104 9.66992c10.1797 -0.0800781 21.5996 -0.360352 30.5 -1.66016c-0.430664 -4.41992 -1.51074 -18.6299 -7.11035 -29.7598
+c-9.11035 2.55957 -18.3604 3.89941 -27.6201 3.89941c-41.2803 -0.939453 -71.4795 -34.3496 -78.2598 -74.4697l-0.110352 -4.7002c-10.3994 -1.91992 -21.1797 -2.93945 -32.21 -2.93945c-11.0195 0 -21.8096 1.0293 -32.21 2.93945l-0.109375 4.7002
+c-6.78027 40.1201 -36.9805 73.5303 -78.2607 74.4697c-9.25977 0 -18.5098 -1.33984 -27.6201 -3.89941c-5.59961 11.1299 -6.67969 25.3398 -7.10938 29.7598c8.89941 1.2998 20.3096 1.58984 30.5 1.66016z" />
+ <glyph glyph-name="jedi-order" unicode=""
+d="M398.5 74.4004c0 0 26.2998 16.1992 49.9004 77.6992c0 0 -17 -183.3 -222 -185.699h-4.10059c-205.1 2.39941 -222 185.699 -222 185.699c23.2002 -61.5996 49.4004 -77.6992 49.4004 -77.6992c-95.9004 122.1 -17.2002 233.1 -17.2002 233.1
+c-45.4004 -85.7002 41.4004 -170.5 41.4004 -170.5c-105 171.6 60.5 271.5 60.5 271.5c-96.9004 -72.5996 10.0996 -190.7 10.0996 -190.7c-85.7998 -158.399 68.5996 -230.1 68.5996 -230.1s0.400391 16.8994 2.2002 85.7002l-34.5 -36.2002l24.2002 47.3994
+l-62.5996 9.10059l62.5996 9.09961l-20.2002 55.5l31.4004 -45.8994c2.2998 87.8994 7.89941 305.899 7.89941 306.899v2.40039v-1v1v-2.40039c0.100586 -1.7998 5.7002 -219.2 7.90039 -306.899l31.4004 45.8994l-20.2002 -55.5l62.5996 -9.09961l-62.5996 -9.10059
+l24.2002 -47.3994s-30.2002 31.7002 -34.5 36.2002c1.7998 -68.8008 2.19922 -85.7002 2.19922 -85.7002s154.4 71.7002 68.6006 230.1c0 0 107 118 10.0996 190.7c0 0 165.5 -100 60.5 -271.5c0 0 86.7998 84.7002 41.4004 170.5c0 0 78.7002 -111 -17.2002 -233.1z" />
+ <glyph glyph-name="mandalorian" unicode=""
+d="M232.27 -63.8896c-1 3.25977 -1.68945 15.8301 -1.38965 24.5801c0.549805 15.8896 1 24.7197 1.40039 28.7598c0.639648 6.2002 2.87012 20.7197 3.2793 21.3799c0.600586 1 0.400391 27.8701 -0.239258 33.1299c-0.310547 2.58008 -0.629883 11.9004 -0.69043 20.7305
+c-0.129883 16.4697 -0.530273 20.1191 -2.72949 24.7598c-1.10059 2.31934 -1.23047 3.83984 -1 11.4297c0.0449219 1.07324 0.0820312 2.81641 0.0820312 3.89062c0 2.43945 -0.189453 6.39062 -0.422852 8.81934c-2 13 -3.45996 27.7002 -3.25 33.9004
+s0.430664 7.14941 2.06055 9.66992c3.0498 4.70996 6.50977 14 8.62012 23.2695c2.25977 9.86035 3.87988 17.1807 4.58984 20.7402c0.921875 4.24121 2.90137 10.9834 4.41992 15.0498c2.26953 6.25 2.49023 15.3906 0.370117 15.3906
+c-0.299805 0 -1.37988 -1.2207 -2.41016 -2.70996c-1.03027 -1.49023 -4.75977 -4.80078 -8.29004 -7.36035c-8.37012 -6.08008 -11.7002 -9.38965 -12.6602 -12.5801s-1 -7.22949 -0.160156 -7.75977c0.34082 -0.209961 1.29004 -2.40039 2.11035 -4.87988
+c0.791992 -2.41602 1.43457 -6.43945 1.43457 -8.98145c0 -1.78223 -0.320312 -4.64062 -0.714844 -6.37891c-0.389648 -1.76953 -1 -5.46973 -1.45996 -8.22949c-0.459961 -2.76074 -1 -6.46094 -1.25 -8.2207c-0.149414 -1.27637 -0.84375 -3.18555 -1.5498 -4.25977
+c-1 -1 -1.13965 -0.910156 -2.0498 0.530273c-0.619141 1.24316 -1.26465 3.37109 -1.44043 4.75c-0.25 1.73926 -1.62988 7.10938 -3.08008 11.9297c-3.2793 10.9004 -3.51953 16.1504 -1 21c0.683594 1.19141 1.43164 3.25684 1.66992 4.61035
+c0 2.38965 -2.19922 5.31934 -7.40918 9.88965c-7 6.17969 -8.62988 7.91992 -10.2305 11.2998c-1.70996 3.60059 -3.05957 4.06055 -4.54004 1.54004c-1.78027 -3 -2.59961 -9.10938 -3 -22l-0.339844 -12.1895l2 -2.25c3.20996 -3.7002 12.0703 -16.4502 13.7803 -19.8301
+c3.41016 -6.74023 4.33984 -11.6904 4.41016 -23.5605c0.0693359 -11.8701 0.949219 -22.75 2 -24.71c0.359375 -0.660156 0.509766 -1.34961 0.339844 -1.51953s0.410156 -2.08984 1.29004 -4.27051c0.871094 -2.41406 1.79395 -6.44629 2.05957 -9
+c0.306641 -2.88867 1.07227 -7.53516 1.70996 -10.3701c2.23047 -9.55957 2.77051 -14.0801 2.39062 -20.1396c-0.200195 -3.26953 -0.530273 -11.0703 -0.730469 -17.3203c-1.30957 -41.7598 -1.84961 -58 -2 -61.21c-0.120117 -2 -0.389648 -11.5098 -0.599609 -21.0693
+c-0.360352 -16.3008 -1.30078 -27.3701 -2.41992 -28.6504c-0.640625 -0.729492 -8.07031 4.91016 -12.5205 9.49023c-3.75 3.87012 -4 4.79004 -2.83008 9.9502c0.700195 3 2.25977 18.29 3.33008 32.6191c0.360352 4.78027 0.80957 10.5 1 12.7109
+c0.830078 9.36914 1.66016 20.3496 2.61035 34.7793c0.55957 8.45996 1.33008 16.4404 1.71973 17.7305s0.889648 9.88965 1.12988 19.1094l0.429688 16.7705l-2.25977 4.2998c-1.71973 3.28027 -4.87012 6.94043 -13.2197 15.3398
+c-6 6.07031 -11.8398 12.2998 -12.9102 13.8506l-1.9502 2.80957l0.75 10.9004c1.08984 15.71 1.10059 48.5693 0 59.0596l-0.889648 8.7002l-3.28027 4.51953c-5.85938 8.08008 -5.7998 7.75 -6.21973 33.2705c-0.100586 6.07031 -0.379883 11.5 -0.629883 12.0596
+c-0.830078 1.87012 -3.0498 2.66016 -8.54004 3.05078c-8.86035 0.619141 -11 1.89941 -23.8506 14.5498c-6.14941 6 -12.3398 12 -13.75 13.1895c-2.80957 2.41992 -2.79004 2 -0.55957 9.62988l1.34961 4.65039l-1.68945 3c-0.630859 1.17676 -1.79102 3 -2.58984 4.07031
+c-1.33008 1.50977 -5.5 10.8896 -6 13.4893c-0.0859375 0.307617 -0.155273 0.816406 -0.155273 1.13574c0 0.868164 0.458984 2.10645 1.02539 2.76465c2.22949 2.86035 3.39941 5.67969 4.44922 10.7305c2.33008 11.1895 7.74023 26.0898 10.6006 29.2197
+c3.17969 3.46973 7.7002 1 9.41016 -5c1.33984 -4.79004 1.36914 -9.79004 0.0996094 -18.5498c-0.445312 -3.05176 -0.893555 -8.02832 -1 -11.1104c0 -4 0.19043 -4.69043 2.25 -7.38965c3.33008 -4.37012 7.72949 -7.41016 15.2002 -10.5205
+c1.41992 -0.591797 3.53418 -1.86914 4.71973 -2.84961c11.1699 -10.7207 18.6201 -16.1807 22.9502 -16.8506c5.17969 -0.799805 8 -4.54004 10 -13.3896c1.30957 -5.65039 4 -11.1396 5.45996 -11.1396c0.994141 0.203125 2.48633 0.826172 3.33008 1.38965
+c2 1.21973 2.25 1.73047 2.25 4.17969c-0.21875 4.96191 -1.11523 12.9541 -2 17.8398c-0.370117 1.66016 -0.780273 4.06055 -0.930664 5.35059c-0.149414 1.29004 -0.609375 3.84961 -1 5.68945c-2.5498 11.1602 -3.64941 15.46 -4.09961 16
+c-1.5498 2 -4.08008 10.2002 -4.92969 15.9209c-1.64062 11.1094 -4 14.2295 -12.9102 17.3896c-4.0791 1.50293 -10.0547 5.0332 -13.3398 7.87988c-1.15039 1 -4 3.21973 -6.35059 5.05957c-2.34961 1.84082 -4.40918 3.53027 -4.59961 3.76074
+c-0.701172 0.606445 -1.90625 1.50293 -2.69043 2c-6.23926 4.21973 -8.83984 7 -11.2598 12l-2.43945 5l-0.220703 13l-0.219727 13l6.91016 6.5498c3.9502 3.75 8.47949 7.34961 10.5898 8.42969c3.30957 1.69043 4.4502 1.89062 11.3701 2
+c8.53027 0.19043 10.1201 0 11.6602 -1.55957c1.54004 -1.56055 1.35938 -6.40039 -0.290039 -8.5c-0.501953 -0.564453 -1.10156 -1.60352 -1.33984 -2.32031c0 -0.580078 -2.61035 -4.91016 -5.41992 -9c-0.879883 -1.80371 -1.94141 -4.85938 -2.37012 -6.82031
+c20.4395 -13.3896 21.5498 -3.76953 14.0693 -29l11.3604 -2.51953c3.11035 8.66016 6.46973 17.2598 8.61035 26.2197c0.290039 7.62988 -12 4.19043 -15.4004 8.68066c-2.33008 5.92969 3.12988 14.1797 6.05957 19.1992c1.60059 2.33984 6.62012 4.7002 8.82031 4.15039
+c0.879883 -0.219727 4.16016 0.349609 7.37012 1.28027c2.04395 0.641602 5.42676 1.39453 7.5498 1.67969c1.69336 0.183594 4.38184 0.760742 6 1.29004c3.65039 1.11035 4.5 1.16992 6.35059 0.400391c1.56738 -0.539062 4.1748 -1.14844 5.81934 -1.36035
+c1.74902 -0.236328 4.43652 -1.0918 6 -1.91016c1.30762 -0.765625 3.54785 -1.73828 5 -2.16992c2.51074 -0.679688 3 -0.570312 7.05078 1.66992l4.34961 2.40039l10.7402 0.389648c10.4395 0.400391 10.8096 0.469727 15.2598 2.67969l4.58008 2.32031l2.45996 -1.42969
+c1.75977 -1 3.13965 -2.73047 4.84961 -6c2.36035 -4.51074 2.37988 -4.58008 1.37012 -7.37012c-0.879883 -2.44043 -0.889648 -3.2998 -0.0996094 -6.39062c0.435547 -1.68164 1.37695 -4.3291 2.09961 -5.90918c0.535156 -1.04785 1.12207 -2.83984 1.31055 -4
+c0.30957 -4.33008 0 -5.30078 -2.41016 -6.91992c-2.16992 -1.4707 -7 -7.91016 -7 -9.34082c-0.206055 -0.859375 -0.685547 -2.2041 -1.07031 -3c-5 -11.5098 -6.75977 -13.5596 -14.2598 -17c-9.2002 -4.19922 -12.2998 -5.18945 -16.21 -5.18945
+c-3.10059 0 -4 -0.25 -4.54004 -1.25977c-0.972656 -1.19629 -2.80566 -2.8584 -4.08984 -3.70996c-1.53223 -1.02344 -3.49512 -3.16504 -4.37988 -4.78027c-0.411133 -1.04004 -1.52734 -2.34375 -2.49023 -2.91016
+c-0.78125 -0.321289 -1.87891 -1.08789 -2.4502 -1.70996c-1.83496 -1.61133 -4.9707 -4.02148 -7 -5.37988c-3.33008 -2.33984 -6.87012 -5 -7.87012 -6c-0.560547 -0.604492 -1.62695 -1.36621 -2.37988 -1.7002c-0.697266 -0.314453 -1.65137 -1.05273 -2.12988 -1.65039
+c-1.31055 -1.38965 -1.49023 -2.10938 -1.13965 -4.59961c0.255859 -1.65527 0.892578 -4.29004 1.41992 -5.87988c1.31934 -3.7998 1.30957 -7.86035 0 -10.5703c-1.31055 -2.70996 -0.890625 -6.64941 1.34961 -9.58984c2 -2.62988 2.16016 -4.55957 0.709961 -8.83984
+c-0.587891 -2.27344 -1.06445 -6.02344 -1.06445 -8.37109c0 -0.148438 0.00195312 -0.390625 0.00488281 -0.539062c0 -4.87988 0.219727 -6.28027 1.45996 -8.37988c1.23926 -2.09961 1.81934 -2.48047 3.23926 -2.32031c2 0.230469 2.30078 1.0498 4.70996 12.1201
+c2.18066 10 3.70996 11.9199 13.7607 17.0801c2.93945 1.50977 7.45996 4 10 5.44043c2.54004 1.43945 6.79004 3.68945 9.37012 4.90918c4.99414 2.18652 11.8125 7.41504 15.2197 11.6709c7.10938 8.78906 10 16.2197 12.8496 33.2998
+c0.298828 2.31445 1.58008 5.77832 2.86035 7.72949c1.19434 1.86133 2.48828 5.13574 2.88965 7.31055c1 5.2998 2.85059 9.08008 5.58008 11.5098c4.7002 4.17969 6 1.08984 4.58984 -10.8701c-0.459961 -3.86035 -1.09961 -10.3301 -1.43945 -14.3799l-0.610352 -7.36035
+l4.4502 -4.08984l4.4502 -4.08984l0.109375 -8.41992c0.0605469 -4.62988 0.470703 -9.53027 0.919922 -10.8896l0.820312 -2.4707l-6.42969 -6.2793c-8.54004 -8.33008 -12.8799 -13.9307 -16.7598 -21.6104c-1.77051 -3.49023 -3.74023 -7.11035 -4.38086 -8
+c-2.17969 -3.11035 -6.45996 -13 -8.75977 -20.2598l-2.29004 -7.2207l-7 -6.48926c-3.83008 -3.57031 -8 -7.25 -9.16992 -8.16992c-3.0498 -2.32031 -4.25977 -5.15039 -4.25977 -10c-0.00683594 -0.166992 -0.0126953 -0.438477 -0.0126953 -0.605469
+c0 -1.94336 0.717773 -4.9248 1.60254 -6.65527c0.660156 -1.29688 1.59668 -3.45996 2.08984 -4.83008c0.290039 -0.875 0.993164 -2.16992 1.57031 -2.88965c1.40039 -1.58984 1.91992 -16.1201 0.830078 -23.2197c-0.679688 -4.48047 -3.62988 -12 -4.7002 -12
+c-1.79004 0 -4.05957 -9.27051 -5.07031 -20.7402c-0.179688 -2 -0.620117 -5.94043 -1 -8.7002s-1 -10 -1.34961 -16.0498c-0.770508 -12.2197 -0.19043 -18.7705 2 -23.1504c3.41016 -6.68945 0.519531 -12.6895 -11 -22.8398l-4 -3.49023l0.0703125 -5.18945
+c0.0439453 -2.4834 0.554688 -6.45703 1.13965 -8.87012c4.61035 -16 4.73047 -16.9199 4.37988 -37.1299c-0.459961 -26.4004 -0.259766 -40.2705 0.629883 -44.1504c0.410156 -1.91406 0.893555 -5.05078 1.08008 -7c0.169922 -2 0.660156 -5.33008 1.08008 -7.35938
+c0.469727 -2.26074 0.780273 -11 0.790039 -22.7402v-19.0605l-1.80957 -2.62988c-2.70996 -3.91016 -15.1104 -13.54 -15.4902 -12.29zM261.8 -18.7803c-0.179688 0.299805 -0.330078 6.87012 -0.330078 14.5898c0 14.0605 -0.889648 27.54 -2.25977 34.4502
+c-0.400391 2 -0.80957 9.7002 -0.900391 17.0605c-0.149414 11.9297 -1.39941 24.3701 -2.63965 26.3799c-0.660156 1.06934 -3 17.6602 -3 21.2998c0 4.23047 1 6 5.28027 9.12988s4.85938 3.13965 5.47949 0.719727c0.280273 -1.09961 1.4502 -5.61914 2.60059 -10
+c3.92969 -15.1191 4.13965 -16.2695 4.0498 -21.7393c-0.0996094 -5.78027 -0.129883 -6.12988 -1.74023 -17.7305c-1 -7.07031 -1.16992 -12.3896 -1 -28.4297c0.169922 -19.4004 -0.639648 -35.7305 -2 -41.2705c-0.709961 -2.7793 -2.7998 -5.47949 -3.42969 -4.42969z
+M190.8 18.7998c-0.638672 2.95215 -1.41406 7.78613 -1.72949 10.79s-1.09082 7.83789 -1.73047 10.79c-0.433594 1.76758 -0.880859 4.6748 -1 6.49023c-0.30957 3.18945 -0.910156 7.45996 -1.33008 9.47949c-1 4.79004 -3.34961 19.3506 -3.41992 21.0703
+c0 0.740234 -0.339844 4.0498 -0.700195 7.36035c-0.669922 6.20996 -0.839844 27.6699 -0.219727 28.29c1 1 6.62988 -2.76074 11.3301 -7.43066l5.28027 -5.25l-0.450195 -6.46973c-0.25 -3.55957 -0.599609 -10.2295 -0.780273 -14.8301
+c-0.179688 -4.59961 -0.490234 -9.87012 -0.669922 -11.71s-0.610352 -9.36035 -0.939453 -16.7197c-0.790039 -17.4102 -1.94043 -31.29 -2.65039 -32c-0.101562 -0.107422 -0.302734 -0.193359 -0.450195 -0.193359c-0.208008 0 -0.454102 0.149414 -0.549805 0.333008
+h0.00976562zM103.62 285.39c21.0703 -12.79 17.8398 -14.1494 28.4902 -17.6592c13 -4.29004 18.8701 -7.13086 23.1494 -16.8701c-43.6602 -36.1406 -69.0098 -57.8604 -76.71 -70.8604c-31 -52 -6 -101.59 62.75 -87.21c-14.1797 -29.2305 -78 -28.6299 -98.6797 4.90039
+c-24.6797 39.9492 -22.0898 118.3 61 187.659v0.0400391zM314.41 106.39c56.6602 -6.87988 82.3203 37.7402 46.54 89.2305c0 0 -26.8701 29.3398 -64.2803 68c3 15.4502 9.49023 32.1201 30.5703 53.8203c89.2002 -63.5107 92 -141.61 92.46 -149.36
+c4.2998 -70.6396 -78.7002 -91.1797 -105.29 -61.71v0.0195312z" />
+ <glyph glyph-name="old-republic" unicode="" horiz-adv-x="496"
+d="M235.76 437.77c7.5 0.310547 15 0.280273 22.5 0.0908203c3.61035 -0.140625 7.2002 -0.400391 10.79 -0.730469c4.91992 -0.269531 9.79004 -1.03027 14.6699 -1.62012c2.93066 -0.429688 5.83008 -0.979492 8.75 -1.45996
+c7.90039 -1.33008 15.6699 -3.28027 23.3906 -5.39941c12.2393 -3.4707 24.1895 -7.91992 35.7598 -13.21c26.5596 -12.2402 50.9395 -29.21 71.6299 -49.8809c20.0303 -20.0898 36.7197 -43.5498 48.8896 -69.1895c1.12988 -2.58984 2.44043 -5.10059 3.4707 -7.74023
+c2.80957 -6.42969 5.38965 -12.9697 7.58008 -19.6299c4.13965 -12.3301 7.33984 -24.9902 9.41992 -37.8301c0.569336 -3.13965 1.04004 -6.2998 1.39941 -9.46973c0.549805 -3.83008 0.94043 -7.69043 1.18066 -11.5605
+c0.829102 -8.33984 0.839844 -16.7295 0.769531 -25.0996c-0.0703125 -4.96973 -0.259766 -9.94043 -0.75 -14.8896c-0.240234 -3.38086 -0.509766 -6.76074 -0.979492 -10.1201c-0.390625 -2.7207 -0.630859 -5.45996 -1.11035 -8.16992
+c-0.900391 -5.15039 -1.7002 -10.3105 -2.87012 -15.4102c-4.09961 -18.5 -10.2998 -36.5498 -18.5098 -53.6299c-15.7705 -32.8301 -38.8301 -62.1699 -67.1201 -85.1201c-14.3926 -11.7676 -39.8887 -27.3848 -56.9102 -34.8604
+c-6.20996 -2.67969 -12.46 -5.25 -18.8701 -7.41016c-3.50977 -1.16016 -7.00977 -2.37988 -10.5703 -3.38965c-6.61914 -1.87988 -13.2891 -3.63965 -20.0391 -5c-4.66016 -0.910156 -9.34082 -1.73047 -14.0303 -2.48047c-5.25 -0.65918 -10.5 -1.43945 -15.79 -1.73926
+c-6.69043 -0.660156 -13.4102 -0.839844 -20.1201 -0.810547c-6.82031 -0.0292969 -13.6504 0.120117 -20.4502 0.790039c-3.29004 0.230469 -6.57031 0.5 -9.83008 0.950195c-2.71973 0.389648 -5.45996 0.629883 -8.16992 1.11035
+c-4.12012 0.719727 -8.25 1.37012 -12.3496 2.21973c-4.25 0.939453 -8.49023 1.88965 -12.6904 3.01953c-8.62988 2.16992 -17.0801 5.01074 -25.4102 8.13086c-10.4893 4.11914 -20.79 8.75 -30.6396 14.25c-2.13965 1.14941 -4.28027 2.28906 -6.34961 3.56934
+c-11.2207 6.58008 -21.8604 14.1006 -31.9199 22.3398c-34.6807 28.4102 -61.4102 66.4307 -76.3506 108.7c-3.08984 8.74023 -5.70996 17.6504 -7.7998 26.6797c-1.48047 6.16016 -2.52051 12.4209 -3.58008 18.6602
+c-0.400391 2.35059 -0.610352 4.73047 -0.950195 7.08984c-0.599609 3.96094 -0.75 7.96094 -1.16992 11.9404c-0.799805 9.46973 -0.709961 18.9902 -0.509766 28.4902c0.139648 3.50977 0.339844 7.00977 0.700195 10.5098
+c0.30957 3.16992 0.459961 6.37012 0.919922 9.52051c0.410156 2.80957 0.649414 5.64941 1.16016 8.43945c0.699219 3.94043 1.2998 7.90039 2.11914 11.8203c3.43066 16.5195 8.4707 32.7295 15.2607 48.1797c1.14941 2.91992 2.58984 5.71973 3.85938 8.58984
+c8.05078 16.71 17.9004 32.5605 29.4902 47.0605c20 25.3799 45.1006 46.6797 73.2705 62.4697c7.5 4.15039 15.1592 8.0498 23.0693 11.3701c15.8203 6.87988 32.4102 11.9502 49.3105 15.3799c3.50977 0.669922 7.04004 1.24023 10.5596 1.84961
+c2.62012 0.470703 5.28027 0.700195 7.91016 1.08008c3.53027 0.530273 7.09961 0.680664 10.6504 1.04004c2.45996 0.240234 4.90918 0.360352 7.35938 0.509766zM244.4 413.36c-9.23047 -0.100586 -18.4307 -0.990234 -27.5703 -2.23047
+c-7.2998 -1.08008 -14.5303 -2.59961 -21.71 -4.2998c-13.9102 -3.5 -27.4805 -8.33984 -40.46 -14.4199c-10.46 -4.99023 -20.5898 -10.7002 -30.1797 -17.2197c-4.18066 -2.9209 -8.40039 -5.80078 -12.3408 -9.03027
+c-5.08008 -3.96973 -9.97949 -8.16992 -14.6797 -12.5898c-2.50977 -2.24023 -4.80957 -4.7002 -7.21973 -7.06055c-28.2207 -28.79 -48.4404 -65.3896 -57.5 -104.689c-2.04004 -8.44043 -3.54004 -17.0205 -4.44043 -25.6504
+c-1.09961 -8.88965 -1.43945 -17.8496 -1.41016 -26.7998c0.110352 -7.13965 0.379883 -14.2803 1.2207 -21.3701c0.620117 -7.12012 1.87012 -14.1602 3.19922 -21.1797c1.07031 -4.65039 2.03027 -9.32031 3.33008 -13.9102
+c6.29004 -23.3799 16.5 -45.7002 30.0703 -65.75c8.63965 -12.9805 18.7803 -24.9297 29.9805 -35.7705c16.2793 -15.8193 35.0498 -29.04 55.3398 -39.2197c7.2793 -3.51953 14.6602 -6.87012 22.2695 -9.62988c5.04004 -1.75977 10.0605 -3.57031 15.2197 -4.98047
+c11.2607 -3.22949 22.7705 -5.59961 34.3906 -7.05957c2.91016 -0.290039 5.80957 -0.610352 8.71973 -0.900391c13.8203 -1.08008 27.7402 -1 41.54 0.430664c4.4502 0.599609 8.91992 0.989258 13.3496 1.7793c3.63086 0.670898 7.28027 1.25 10.8701 2.10059
+c4.12988 0.979492 8.28027 1.91016 12.3604 3.07031c26.5 7.33984 51.5801 19.71 73.5801 36.1992c15.7803 11.8203 29.96 25.7607 42.1201 41.2803c3.25977 4.02051 6.16992 8.30957 9.12988 12.5498c3.38965 5.06055 6.58008 10.25 9.59961 15.54
+c2.40039 4.44043 4.74023 8.91016 6.9502 13.4502c5.69043 12.0498 10.2803 24.6201 13.75 37.4902c2.58984 10.0098 4.75 20.1602 5.90039 30.4502c1.76953 13.4697 1.93945 27.0996 1.29004 40.6494c-0.290039 3.89062 -0.669922 7.77051 -1 11.6602
+c-2.23047 19.0801 -6.79004 37.9102 -13.8203 55.7998c-5.9502 15.1299 -13.5303 29.6299 -22.6104 43.1299c-12.6895 18.8008 -28.2393 35.6807 -45.9697 49.8301c-25.0498 20 -54.4697 34.5498 -85.6504 42.0801c-7.7793 1.92969 -15.6895 3.33984 -23.6299 4.4502
+c-3.90918 0.589844 -7.84961 0.820312 -11.7695 1.24023c-7.38965 0.569336 -14.8105 0.719727 -22.2197 0.580078zM139.26 364.47c13.2998 8.89062 28.0801 15.3799 43.2998 20.1807c-3.16992 -1.77051 -6.43945 -3.38086 -9.5293 -5.29004
+c-11.21 -6.68066 -21.5205 -14.9004 -30.3799 -24.4902c-6.80078 -7.42969 -12.7607 -15.7305 -17.0107 -24.8896c-3.29004 -6.86035 -5.63965 -14.1904 -6.85938 -21.7109c-0.930664 -4.84961 -1.2998 -9.80957 -1.16992 -14.75
+c0.129883 -13.6592 4.43945 -27.0791 11.29 -38.8193c5.91992 -10.2197 13.6299 -19.3301 22.3594 -27.2598c4.85059 -4.36035 10.2402 -8.09082 14.9502 -12.6006c2.25977 -2.18945 4.49023 -4.41992 6.42969 -6.91016c2.62012 -3.30957 4.89062 -6.98926 5.99023 -11.0996
+c0.900391 -3.02051 0.660156 -6.2002 0.69043 -9.31055c0.0195312 -4.09961 -0.0400391 -8.19922 0.0292969 -12.2998c0.140625 -3.54004 -0.0195312 -7.08984 0.110352 -10.6299c0.0800781 -2.37988 0.0205078 -4.75977 0.0498047 -7.13965
+c0.160156 -5.77051 0.0605469 -11.5303 0.150391 -17.2998c0.109375 -2.91016 0.0195312 -5.82031 0.129883 -8.74023c0.0302734 -1.62988 0.129883 -3.28027 -0.0302734 -4.91016c-0.910156 -0.120117 -1.81934 -0.179688 -2.72949 -0.160156
+c-10.9902 0 -21.8799 2.62988 -31.9502 6.92969c-6 2.7002 -11.8105 5.89062 -17.0898 9.83008c-5.75 4.19043 -11.0898 8.95996 -15.79 14.3105c-6.53027 7.24023 -11.9805 15.3896 -16.6201 23.9502c-1.07031 2.0293 -2.24023 4.01953 -3.17969 6.12012
+c-1.16016 2.63965 -2.62012 5.13965 -3.66992 7.81934c-4.05078 9.68066 -6.57031 19.9404 -8.08008 30.3105c-0.490234 4.43945 -1.09082 8.87988 -1.2002 13.3496c-0.700195 15.7305 0.839844 31.5498 4.66992 46.8203c2.12012 8.14941 4.76953 16.1797 8.30957 23.8301
+c6.32031 14.1992 15.3398 27.1797 26.3008 38.1895c6.2793 6.2002 13.1299 11.8398 20.5293 16.6699zM314.63 384.59c2.74023 -0.740234 5.41016 -1.74023 8.08984 -2.67969c6.36035 -2.33008 12.6807 -4.83984 18.71 -7.95996
+c13.1104 -6.44043 25.3105 -14.8105 35.8203 -24.9697c10.2002 -9.9502 18.7402 -21.6006 25.1396 -34.3408c1.28027 -2.75 2.64062 -5.45996 3.81055 -8.25977c6.30957 -15.0996 10 -31.2598 11.2295 -47.5703c0.410156 -4.54004 0.44043 -9.08984 0.450195 -13.6396
+c0.0703125 -11.6396 -1.49023 -23.25 -4.2998 -34.5303c-1.96973 -7.26953 -4.34961 -14.4893 -7.86035 -21.1797c-3.17969 -6.63965 -6.67969 -13.1602 -10.8398 -19.2402c-6.93945 -10.4697 -15.5996 -19.8701 -25.8203 -27.2197
+c-10.4795 -7.63965 -22.6396 -13.0195 -35.3994 -15.3799c-3.50977 -0.69043 -7.08008 -1.08008 -10.6602 -1.20996c-1.84961 -0.0605469 -3.71973 -0.160156 -5.55957 0.0996094c-0.280273 2.15039 0 4.31055 -0.0107422 6.45996
+c-0.0292969 3.73047 0.140625 7.4502 0.100586 11.1699c0.189453 7.02051 0.0195312 14.0508 0.209961 21.0703c0.0292969 2.37988 -0.0302734 4.75977 0.0292969 7.13965c0.170898 5.07031 -0.0390625 10.1406 0.140625 15.21
+c0.0996094 2.99023 -0.240234 6.04004 0.509766 8.95996c0.660156 2.5 1.78027 4.86035 3.08984 7.08008c4.45996 7.31055 11.0605 12.96 17.6807 18.2607c5.37988 4.17969 10.4697 8.76953 15.0195 13.8398c7.67969 8.37012 14.1699 17.8799 18.7803 28.2695
+c2.5 5.93066 4.51953 12.1006 5.5498 18.46c0.860352 4.37012 1.05957 8.83008 1.00977 13.2705c-0.0195312 7.84961 -1.39941 15.6494 -3.63965 23.1699c-1.75 5.72949 -4.27051 11.1797 -7.08984 16.4502c-3.87012 6.92969 -8.65039 13.3096 -13.96 19.1992
+c-9.94043 10.8506 -21.75 19.9404 -34.6006 27.1006c-1.84961 1.01953 -3.83984 1.82031 -5.62988 2.96973zM213.83 326.14c0.979492 1.18066 1.99023 2.33008 3.12012 3.37988c-0.610352 -0.929688 -1.27051 -1.80957 -1.9502 -2.67969
+c-3.09961 -3.87988 -5.54004 -8.30957 -7.03027 -13.0596c-0.870117 -3.27051 -1.67969 -6.60059 -1.72949 -10c-0.0703125 -2.52051 -0.0800781 -5.07031 0.319336 -7.57031c1.13086 -7.62988 4.33008 -14.8496 8.77051 -21.1201c2 -2.7002 4.25 -5.26953 6.91992 -7.33008
+c1.62012 -1.26953 3.53027 -2.08984 5.33984 -3.0498c3.11035 -1.67969 6.32031 -3.22949 9.07031 -5.47949c2.66992 -2.09082 4.5498 -5.33008 4.39941 -8.79004c-0.00976562 -73.6709 0 -147.341 -0.00976562 -221.021c0 -1.34961 -0.0800781 -2.7002 0.0400391 -4.04004
+c0.129883 -1.47949 0.820312 -2.83008 1.46973 -4.14941c0.860352 -1.66016 1.78027 -3.34082 3.18066 -4.62012c0.849609 -0.770508 1.96973 -1.40039 3.14941 -1.24023c1.5 0.200195 2.66016 1.34961 3.4502 2.57031c0.959961 1.50977 1.67969 3.15918 2.28027 4.84961
+c0.759766 2.12988 0.439453 4.41992 0.540039 6.62988c0.139648 4.03027 -0.0205078 8.06055 0.139648 12.0898c0.0302734 5.89062 0.0302734 11.7705 0.0605469 17.6602c0.139648 3.62012 0.0292969 7.24023 0.109375 10.8604
+c0.150391 4.0293 -0.0195312 8.05957 0.140625 12.0898c0.0292969 5.99023 0.0292969 11.9795 0.0693359 17.9697c0.140625 3.62012 0.0205078 7.24023 0.110352 10.8604c0.139648 3.92969 -0.0205078 7.85938 0.139648 11.7803
+c0.0302734 5.98926 0.0302734 11.9795 0.0605469 17.9697c0.160156 3.93945 -0.00976562 7.87988 0.189453 11.8193c0.290039 -1.43945 0.129883 -2.91992 0.220703 -4.37988c0.189453 -3.60938 0.419922 -7.22949 0.759766 -10.8398
+c0.320312 -3.43945 0.439453 -6.88965 0.859375 -10.3193c0.370117 -3.10059 0.510742 -6.2207 0.950195 -9.31055c0.570312 -4.08984 0.870117 -8.20996 1.54004 -12.29c1.45996 -9.04004 2.83008 -18.1104 5.08984 -26.9902c1.13086 -4.81934 2.40039 -9.60938 4 -14.2998
+c2.54004 -7.89941 5.7207 -15.6699 10.3105 -22.6201c1.72949 -2.63965 3.87012 -4.97949 6.09961 -7.20996c0.270508 -0.25 0.549805 -0.509766 0.879883 -0.709961c0.600586 -0.25 1.31055 0.0703125 1.7002 0.570312c0.709961 0.879883 1.16992 1.93945 1.7002 2.92969
+c4.0498 7.7998 8.17969 15.5605 12.3398 23.3105c0.700195 1.30957 1.44043 2.62012 2.56055 3.60938c1.75 1.57031 3.83984 2.69043 5.97949 3.62988c2.87988 1.2207 5.90039 2.19043 9.03027 2.41992c6.58008 0.620117 13.1094 -0.75 19.5596 -1.84961
+c3.69043 -0.580078 7.40039 -1.16992 11.1299 -1.41016c3.74023 -0.0996094 7.48047 -0.0498047 11.21 0.280273c8.55078 0.919922 16.9902 2.95996 24.9404 6.25c5.2998 2.24023 10.46 4.83008 15.3096 7.92969c11.46 7.20996 21.46 16.5703 30.04 27.0107
+c1.16992 1.41992 2.25 2.89941 3.45996 4.2793c-1.19922 -3.24023 -2.66992 -6.37012 -4.15918 -9.47949c-1.25 -2.90039 -2.84082 -5.61035 -4.27051 -8.41992c-5.16016 -9.62988 -11.0195 -18.9102 -17.75 -27.5205
+c-4.03027 -5.20996 -8.53027 -10.0498 -13.3301 -14.5703c-6.63965 -6.0498 -14.0703 -11.3691 -22.4297 -14.7598c-8.20996 -3.37012 -17.3105 -4.62988 -26.0898 -3.29004c-3.56055 0.580078 -7.01074 1.69043 -10.4102 2.87988
+c-2.79004 0.970703 -5.39062 2.38086 -8.03027 3.69043c-3.42969 1.70996 -6.63965 3.80957 -9.70996 6.08008c2.70996 -3.06055 5.69043 -5.86035 8.7002 -8.61035c4.26953 -3.75977 8.74023 -7.30957 13.6299 -10.2295c3.98047 -2.4502 8.29004 -4.40039 12.8398 -5.51074
+c1.45996 -0.369141 2.95996 -0.459961 4.4502 -0.599609c-1.25 -1.09961 -2.62988 -2.04004 -3.99023 -2.97949c-9.60938 -6.54004 -20.0098 -11.8604 -30.6895 -16.4307c-20.8604 -8.7002 -43.1699 -13.9697 -65.7402 -15.3398
+c-4.66016 -0.240234 -9.32031 -0.360352 -13.9805 -0.360352c-4.97949 0.110352 -9.96973 0.130859 -14.9199 0.650391c-11.2002 0.759766 -22.29 2.73047 -33.1699 5.42969c-10.3496 2.70996 -20.5498 6.12012 -30.2998 10.5508
+c-8.70996 3.85938 -17.1201 8.41992 -24.9902 13.79c-1.83008 1.30957 -3.74023 2.5293 -5.37012 4.0791c6.60059 1.19043 13.0303 3.39062 18.9902 6.48047c5.74023 2.86035 10.9902 6.66016 15.6299 11.0703c2.24023 2.18945 4.29004 4.58984 6.19043 7.08984
+c-3.43066 -2.12988 -6.93066 -4.15039 -10.6201 -5.78027c-4.41016 -2.16016 -9.07031 -3.76953 -13.8105 -5.01953c-5.72949 -1.52051 -11.7393 -1.73047 -17.6094 -1.14062c-8.12988 0.950195 -15.8604 4.27051 -22.5098 8.98047
+c-4.32031 2.93945 -8.2207 6.42969 -11.96 10.0596c-9.93066 10.1602 -18.2002 21.8105 -25.6602 33.8604c-3.94043 6.26953 -7.53027 12.75 -11.1201 19.2197c-1.0498 2.04004 -2.15039 4.0498 -3.17969 6.10059c2.84961 -2.9209 5.56934 -5.9707 8.42969 -8.88086
+c8.99023 -8.96973 18.5596 -17.4395 29.1602 -24.4795c7.5498 -4.90039 15.6699 -9.23047 24.5596 -11.0303c3.11035 -0.729492 6.32031 -0.469727 9.46973 -0.80957c2.77051 -0.280273 5.56055 -0.200195 8.34082 -0.299805
+c5.0498 -0.0605469 10.1094 -0.0400391 15.1592 0.15918c3.65039 0.160156 7.27051 0.660156 10.8906 1.09082c2.06934 0.25 4.10938 0.709961 6.13965 1.19922c3.87988 0.950195 8.11035 0.959961 11.8301 -0.609375c4.75977 -1.85059 8.44043 -5.64062 11.3799 -9.70996
+c2.16016 -3.02051 4.06055 -6.2207 5.66016 -9.58008c1.16016 -2.43066 2.45996 -4.79004 3.5498 -7.26074c1 -2.23926 2.15039 -4.41992 3.41992 -6.51953c0.669922 -1.01953 1.40039 -2.15039 2.62012 -2.5498c1.06055 0.75 1.70996 1.91016 2.28027 3.03027
+c2.09961 4.15918 3.41992 8.64941 4.88965 13.0498c2.02051 6.58984 3.78027 13.2695 5.19043 20.0195c2.20996 9.25 3.25 18.7197 4.54004 28.1299c0.55957 3.98047 0.830078 7.99023 1.30957 11.9707c0.870117 10.6396 1.90039 21.2695 2.24023 31.9395
+c0.0800781 1.86035 0.240234 3.70996 0.25 5.57031c0.00976562 4.34961 0.25 8.68945 0.219727 13.0303c-0.00976562 2.37988 -0.00976562 4.75977 0 7.12988c0.0498047 5.06934 -0.200195 10.1396 -0.219727 15.21c-0.200195 6.60938 -0.709961 13.2002 -1.29004 19.7793
+c-0.730469 5.88086 -1.5498 11.7803 -3.12012 17.5107c-2.0498 7.75 -5.58984 15.0293 -9.7998 21.8193c-3.16016 5.07031 -6.79004 9.87988 -11.0898 14.0303c-3.87988 3.86035 -8.58008 7.08008 -13.9404 8.4502c-1.5 0.410156 -3.05957 0.450195 -4.58984 0.639648
+c0.0703125 2.99023 0.700195 5.93066 1.25977 8.85059c1.58984 7.70996 3.7998 15.2998 6.76074 22.5996c1.51953 4.03027 3.40918 7.90039 5.38965 11.7197c3.4502 6.56055 7.62012 12.79 12.46 18.46zM245.1 324.44
+c0.350586 0.0595703 0.709961 0.119141 1.07031 0.189453c0.19043 -1.79004 0.0898438 -3.58008 0.0996094 -5.37012v-38.1299c-0.00976562 -1.74023 0.130859 -3.49023 -0.149414 -5.21973c-0.360352 0.0302734 -0.709961 0.0498047 -1.06055 0.0498047
+c-0.949219 3.75 -1.71973 7.5498 -2.61914 11.3096c-0.380859 1.53027 -0.580078 3.09082 -1.07031 4.59082c-1.7002 0.239258 -3.42969 0.169922 -5.15039 0.199219c-5.05957 0.0107422 -10.1299 0 -15.1895 0.0107422
+c-1.66016 0.00976562 -3.32031 -0.0898438 -4.98047 0.0292969c-0.0302734 0.390625 -0.259766 0.910156 0.160156 1.18066c1.28027 0.649414 2.71973 0.879883 4.05957 1.34961c3.43066 1.13965 6.88086 2.16016 10.3105 3.31055
+c1.38965 0.479492 2.90039 0.719727 4.16016 1.54004c0.0400391 0.55957 0.0195312 1.12988 -0.0498047 1.67969c-1.23047 0.549805 -2.53027 0.870117 -3.81055 1.28027c-3.12988 1.0293 -6.29004 1.95996 -9.41016 3.01953c-1.79004 0.620117 -3.66992 1 -5.41016 1.79004
+c-0.0292969 0.370117 -0.0693359 0.730469 -0.109375 1.08984c5.08984 0.19043 10.2002 -0.0595703 15.2998 0.120117c3.36035 0.129883 6.73047 -0.0800781 10.0898 0.0703125c0.120117 0.389648 0.259766 0.769531 0.370117 1.16016
+c1.08008 4.93945 2.33008 9.8291 3.38965 14.75zM251.07 324.64c0.359375 -0.0498047 0.719727 -0.120117 1.08008 -0.199219c0.979492 -3.85059 1.72949 -7.76074 2.70996 -11.6104c0.359375 -1.41992 0.55957 -2.87988 1.0293 -4.27051
+c2.53027 -0.179688 5.07031 0.0107422 7.61035 -0.0498047c5.16016 -0.120117 10.3301 -0.120117 15.4902 -0.0693359c0.759766 0.00976562 1.51953 -0.0302734 2.2793 -0.0800781c-0.0390625 -0.360352 -0.0693359 -0.720703 -0.0996094 -1.08008
+c-1.82031 -0.830078 -3.78027 -1.25 -5.66992 -1.89062c-3.73047 -1.22949 -7.48047 -2.38965 -11.2197 -3.56934c-0.570312 -0.169922 -1.12012 -0.419922 -1.66992 -0.640625c-0.150391 -0.549805 -0.180664 -1.12012 -0.120117 -1.68945
+c0.870117 -0.480469 1.81934 -0.810547 2.76953 -1.08984c4.87988 -1.52051 9.73047 -3.14062 14.6299 -4.60059c0.379883 -0.129883 0.780273 -0.269531 1.12988 -0.490234c0.400391 -0.269531 0.230469 -0.790039 0.150391 -1.17969
+c-1.66016 -0.129883 -3.30957 -0.0302734 -4.96973 -0.0400391c-5.16992 -0.00976562 -10.3301 0.00976562 -15.5 -0.00976562c-1.61035 -0.0302734 -3.21973 0.0195312 -4.82031 -0.209961c-0.519531 -1.66992 -0.719727 -3.41992 -1.16992 -5.11035
+c-0.94043 -3.56934 -1.51953 -7.24023 -2.54004 -10.7793c-0.360352 -0.0107422 -0.709961 -0.0205078 -1.05957 -0.0605469c-0.290039 1.73047 -0.150391 3.48047 -0.150391 5.21973v38.1299c0.0205078 1.78027 -0.0800781 3.58008 0.110352 5.37012zM65.0498 279.67
+c1.12012 2.15039 2.08008 4.40039 3.37012 6.45996c-1.82031 -7.55957 -2.91016 -15.2695 -3.62012 -23c-0.799805 -7.70996 -0.849609 -15.4902 -0.540039 -23.2295c1.0498 -19.9404 5.54004 -39.8301 14.2305 -57.8809c2.99023 -5.98926 6.34961 -11.8291 10.5 -17.1094
+c6.12012 -7.46973 12.5293 -14.7598 19.8398 -21.0898c4.7998 -4.10059 9.99023 -7.78027 15.54 -10.8008c3.26953 -1.64941 6.50977 -3.38965 9.93945 -4.67969c5.01074 -2.03027 10.1904 -3.60938 15.4209 -4.93945c3.8291 -0.959961 7.7793 -1.41016 11.5195 -2.70996
+c5 -1.57031 9.46973 -4.61035 13.0303 -8.43066c4.92969 -5.22949 8.08984 -11.8701 10.2002 -18.6699c0.989258 -2.89941 1.58984 -5.91016 2.16992 -8.91992c0.149414 -0.75 0.219727 -1.51953 0.15918 -2.29004c-6.5 -2.78027 -13.2598 -5.05957 -20.2598 -6.17969
+c-4.10938 -0.780273 -8.29004 -0.990234 -12.46 -1.08008c-10.25 -0.240234 -20.4697 1.75977 -30.1201 5.12012c-3.73926 1.41992 -7.48926 2.84961 -11.0293 4.71973c-8.06055 3.83984 -15.6406 8.7002 -22.46 14.46c-2.9209 2.5498 -5.83008 5.12988 -8.40039 8.03027
+c-9.16016 9.83008 -16.2998 21.4102 -21.79 33.6494c-2.38965 5.55078 -4.61035 11.1807 -6.37012 16.96c-1.16992 3.94043 -2.36035 7.89062 -3.25977 11.9102c-0.75 2.94043 -1.21973 5.9502 -1.87012 8.91992c-0.459961 2.14062 -0.69043 4.32031 -1.03027 6.48047
+c-0.849609 5.42969 -1.2793 10.9297 -1.33008 16.4297c0.110352 6.18066 0.25 12.3701 1.07031 18.5c0.400391 2.86035 0.669922 5.74023 1.15039 8.60059c0.979492 5.69922 2.13965 11.3691 3.70996 16.9297c3.08984 11.6504 7.47949 22.9502 12.6895 33.8398z
+M428.78 286.11c1.09961 -1.66016 1.91016 -3.48047 2.7793 -5.26074c2.10059 -4.44922 4.24023 -8.89941 6.02051 -13.4893c7.61035 -18.7607 12.2998 -38.79 13.04 -59.0508c0.0195312 -1.75977 0.0703125 -3.51953 0.110352 -5.29004
+c0.129883 -9.56934 -1.27051 -19.0898 -3.18066 -28.4492c-0.729492 -3.58984 -1.54004 -7.16992 -2.58008 -10.6904c-4.04004 -14.7197 -10 -29 -18.4102 -41.7803c-8.20996 -12.5693 -19.0098 -23.5498 -31.8398 -31.4092
+c-5.72949 -3.59082 -11.79 -6.64062 -18.0498 -9.19043c-5.78027 -2.19043 -11.71 -4.03027 -17.7998 -5.11035c-6.40039 -1.0498 -12.9102 -1.51953 -19.4004 -1.22949c-7.91992 0.479492 -15.7793 2.07031 -23.21 4.84961
+c-1.93945 0.799805 -3.93945 1.45996 -5.83984 2.33008c-0.209961 1.50977 0.25 2.99023 0.530273 4.45996c1.16016 5.74023 3.03027 11.3604 5.7002 16.5801c2.36914 4.50977 5.51953 8.65039 9.45996 11.9004c2.42969 2.0498 5.23926 3.60938 8.15918 4.83008
+c3.58008 1.5 7.4707 1.96973 11.2402 2.83008c7.23047 1.70996 14.3701 3.92969 21.1504 7c10.3496 4.64941 19.71 11.3799 27.6494 19.46c1.59082 1.60938 3.23047 3.17969 4.74023 4.86914c3.37012 3.76074 6.70996 7.57031 9.85059 11.5303
+c7.47949 10.0703 12.8193 21.5898 16.71 33.4805c1.58008 5.2998 3.20996 10.5996 4.20996 16.0498c0.629883 2.87012 1.04004 5.78027 1.51953 8.67969c0.870117 6.08984 1.58984 12.2207 1.67969 18.3799c0.120117 6.65039 0.140625 13.3203 -0.529297 19.9404
+c-0.730469 7.99023 -1.87012 15.96 -3.70996 23.7803z" />
+ <glyph glyph-name="phoenix-squadron" unicode="" horiz-adv-x="512"
+d="M96 384.62c46.4902 36.1299 105.55 56.0703 164.51 54.5703c29.5801 0.379883 59.1104 -5.37012 86.9102 -15.3301c-24.1299 4.62988 -49 6.33984 -73.3799 2.44922c-42.8701 -5.30957 -83.04 -27.1494 -111.83 -59.1797c5.66992 1 10.7803 3.66992 16 5.86035
+c18.1396 7.87012 37.4902 13.2598 57.2305 14.8301c19.7393 2.12988 39.6396 0.429688 59.2793 -1.91992c-14.4199 -2.79004 -29.1201 -4.57031 -43 -9.59082c-34.4297 -11.0693 -65.2695 -33.1592 -86.2998 -62.6299c-13.7998 -19.71 -23.6299 -42.8594 -24.6699 -67.1299
+c-0.349609 -16.4902 5.21973 -34.8096 19.8301 -44c7.01465 -4.23926 19.3594 -7.67969 27.5547 -7.67969c2.77539 0 7.23926 0.420898 9.96484 0.939453c15.4502 2.45996 30.0703 8.64062 43.6006 16.3301c11.5195 6.82031 22.6699 14.5508 32 24.25
+c3.79004 3.2207 2.53027 8.4502 2.62012 12.79c-2.12012 0.339844 -4.37988 1.11035 -6.30078 -0.299805c-9.47656 -5.19531 -25.5244 -12.0811 -35.8193 -15.3701c-20 -6.16992 -42.1602 -8.45996 -62.1006 -0.779297c12.79 -1.73047 26.0605 -0.310547 37.7402 5.43945
+c20.2305 9.71973 36.8105 25.2002 54.4404 38.7705c23.0107 17.7168 62.8379 42.4951 88.8994 55.3096c25.71 12 52.9404 22.7803 81.5703 24.1201c-15.6299 -13.7197 -32.1504 -26.5205 -46.7803 -41.3799c-14.5098 -14 -27.46 -29.5 -40.1094 -45.1807
+c-3.52051 -4.59961 -8.9502 -6.93945 -13.5801 -10.1592c-18.8516 -12.6768 -42.0986 -39.6016 -51.8906 -60.1006c-9.33008 -19.6797 -14.5 -41.8496 -11.7695 -63.6494c1.93945 -13.6904 8.70996 -27.5908 20.8994 -34.9102c12.9004 -8 29.0508 -8.07031 43.4805 -5.10059
+c32.7998 7.4502 61.4297 28.8906 81 55.8408c20.4404 27.5195 30.5195 62.1992 29.1602 96.3496c-0.520508 7.5 -1.57031 15 -1.66016 22.4902c8 -19.4805 14.8203 -39.71 16.6504 -60.8301c2 -14.2803 0.75 -28.7598 -1.62012 -42.9004
+c-1.91016 -11 -5.66992 -21.5098 -7.78027 -32.4297c17.209 19.293 34.833 55.6123 39.3398 81.0703c1.24121 7.8584 2.24902 20.6953 2.24902 28.6514c0 21.957 -7.37305 55.999 -16.459 75.9883c20.7803 -32 32.3398 -69.5801 35.71 -107.48
+c0.490234 -12.7295 0.490234 -25.5098 0 -38.2295c-2.37305 -28.7334 -15.6289 -72.5254 -29.5898 -97.75c-26.1201 -47.3398 -68 -85.6299 -117.19 -108c-78.29 -36.2305 -174.68 -31.3203 -248 14.6797c-32.9014 20.1289 -73.8711 64.3281 -91.4492 98.6602
+c-12.291 24.2021 -23.6523 65.8301 -25.3604 92.9199v31.3398c3.92969 69.7402 40.8701 135.92 96 178.36zM318 304.29c4.54688 0.770508 11.7148 2.77734 16 4.47949c5 1.77051 9.24023 5.94043 10.3203 11.2207c-8.95996 -4.99023 -17.9805 -9.91992 -26.3203 -15.7002z
+" />
+ <glyph glyph-name="sith" unicode=""
+d="M0 416l118.75 -69.71l-11.5195 58.9004l91.0596 -69.8701c8.5 1.50977 17.0996 2.29004 25.71 2.29004s17.21 -0.770508 25.71 -2.29004l91.0596 69.8701l-11.5195 -58.9004l118.75 69.71l-69.71 -118.75l58.8604 11.5195l-69.8408 -91.0293
+c3.04004 -17.0098 3.03027 -34.4404 0 -51.4502l69.8408 -91.0303l-58.8604 11.5205l69.71 -118.78l-118.75 69.71l11.5195 -58.8604l-91.0293 69.8408c-17.0098 -3.04004 -34.46 -3.04004 -51.4805 0l-91.0293 -69.8408l11.5195 58.8604l-118.75 -69.71l69.71 118.78
+l-58.8604 -11.5205l69.8408 91.0303c-1.25488 7.04492 -2.27246 18.5693 -2.27246 25.7246c0 7.15625 1.01758 18.6807 2.27246 25.7256l-69.8408 91.0293l58.8604 -11.5195zM224 316.22c-31.7998 0 -63.6104 -12.0898 -87.8496 -36.3398
+c-48.4902 -48.4902 -48.5 -127.2 0 -175.7c48.5 -48.4893 127.21 -48.5195 175.699 -0.0292969c48.4902 48.4893 48.5 127.199 0 175.699c-24.25 24.25 -56.0498 36.3701 -87.8496 36.3701zM224 279.56c22.4199 0 44.8301 -8.51953 61.9199 -25.6094
+c34.1904 -34.1904 34.1797 -89.6904 0 -123.87c-34.1895 -34.1797 -89.6504 -34.1904 -123.84 0c-34.1904 34.1895 -34.1797 89.6895 0 123.87c17.0898 17.0898 39.5 25.6094 61.9199 25.6094z" />
+ <glyph glyph-name="trade-federation" unicode="" horiz-adv-x="496"
+d="M248 439.2c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -43.5996c129.7 0 234.8 105.1 234.8 234.8s-105.1 234.8 -234.8 234.8s-234.8 -105.1 -234.8 -234.8s105.1 -234.8 234.8 -234.8zM403.1 284.9v-0.100586h-145.699
+v-34.7998h83.2998v-47h-83.2998v-195.8h-48.8008v196.8h-117.699l-36.7002 46h155.1v81.7002h193.8v-46.7998zM329.8 239.8h-82.8994v56.2002h145v24.4004h-171.801v-80.6006h-143.899l20.0996 -23.8994h123.8v-197.4h26.8008v197.4h82.8994v23.8994zM168.5 308.8l22 9.2998
+l-15.7998 -18.0996l15.7002 -18.0996l-22.2002 9.5l-12.2998 -20.5l2.09961 24l-23.2998 5.39941l23.5 5.40039l-2.10059 23.7998zM138.9 328.5l9.5 -10.2002l-13.8008 5.2998l-6.7998 -12.1992l0.799805 14.6992l-13.6992 2.7002l14.2998 3.7998l-1.7002 13.9004
+l8 -12.4004l12.7002 5.90039zM304.3 183.3l-9.2998 -10.7998l9.40039 -10.7002l-13.1006 5.5l-7.2998 -12.2002l1.2002 14.2002l-13.9004 3.2002l13.9004 3.2002l-1.2998 14.2002l7.2998 -12.2002zM411.2 260.5l-15 -17.5996l15.0996 -17l-21.2002 8.7998l-11.5 -19.6006
+l1.80078 22.9004l-22.2002 4.90039l22.2998 5.39941l-2.2002 22.7002l12 -19.5996zM248 418.1c125.3 0 226.9 -101.6 226.9 -226.899s-101.601 -226.9 -226.9 -226.9s-226.9 101.601 -226.9 226.9s101.601 226.899 226.9 226.899zM342.6 252h-83.1992v30.9004h145.699
+v50.6992h-197.8v-81.5996h-157.399l40 -49.9004h116.699v-196.8h52.7002v195.7h83.2998v51zM248 404.8c-94.5996 0 -174.9 -61.5996 -202.9 -146.8h157.4v81.5996h199.1c-38.7998 40.2002 -93.2998 65.2002 -153.6 65.2002zM248 -22.2998c117.9 0 213.5 95.5996 213.4 213.5
+c0 51.8994 -18.5 99.5 -49.3008 136.5v-50.7998h-145.6v-19.2002h83.2002v-62.7002h-83.2998v-195.8h-64.6006v196.8h-114.7l-43.7998 56.2998c-5.7998 -19.2998 -8.89941 -39.8994 -8.89941 -61.0996c0 -117.9 95.6992 -213.5 213.6 -213.5zM178.8 173l22.7002 9.2998
+l-16.9004 -17.0996l15.8008 -18.7998l-21.5 10.7998l-13 -20.9004l3.69922 23.7998l-23.7998 5.90039l23.7002 3.90039l-1.7002 24.5z" />
+ <glyph glyph-name="wolf-pack-battalion" unicode="" horiz-adv-x="512"
+d="M267.73 -23.5303l-11.4404 -21.1396l-11.4404 21.1104l-10.5596 -15.8408l-5.28027 12.3203l-5.2793 -7v-29.8301c-21.0605 7.91992 -21.1104 66.8604 -25.5107 97.21c-4.62012 31.8799 0.879883 92.8105 -81.3701 149.11c8.88086 23.5996 12 49.4297 2.64062 80.0498
+c-27.8701 -3.33008 -53.9404 -10.5801 -63.3398 -54.0996l30.3496 -8.36035c-11.2002 -23.04 -17.0195 -46.7598 -13.2002 -72.1396l27.2705 7l6.16016 -33.4307l18.4697 7l8.7998 -33.4297l19.3496 7l-26.4297 -21.0596l-8.7998 28.1494l-24.6299 -5.28027l-7 35.6309
+l-26.3906 -14.5205c-0.25 20.0205 -6.95996 58.0605 8.80078 84.4502l-26.3906 -5.28027c-3.99023 22.0703 2.37988 39.21 7.91992 56.7402l-22.4297 -9.67969c0.44043 25.0693 29.9404 56.79 61.5898 58.5098c20.2197 1.08984 56.7305 25.1602 54.1006 51.8994
+c-1.95996 19.8701 -17.4502 42.6201 -43.1104 49.7002c43.9795 -36.5098 9.71973 -67.2998 -5.28027 -73.46c-4.39941 11.4404 -17.54 69.0801 0 130.2c40.4697 -22.8701 89.7002 -65.0996 93.21 -147.86l58.0605 -38.71l3.51953 -93.25l-107.33 59.8203l-7 -7
+l17.5801 -3.50977l44 -38.71l15.8398 5.2793l28.1504 -49.2598l3.51953 -119.64l-21.1094 -15.8398l32.5498 -15.8398l32.5498 15.8398l-21.1094 15.8398l3.51953 119.64l28.0996 49.25l15.8408 -5.28027l44 38.7109l17.5898 3.51953l-7 7l-107.3 -59.7695l3.51953 93.25
+l58 38.71c3.5498 82.6895 52.8096 124.92 93.2002 147.79c17.54 -61.1201 4.39941 -118.761 0 -130.2c-14.96 6.16016 -49.2803 36.9502 -5.28027 73.46c-25.6602 -7.08008 -41.1104 -29.8301 -43.1104 -49.7002c-2.63965 -26.7305 33.8809 -50.8096 54.1006 -51.9004
+c31.6396 -1.70996 61.1396 -33.4297 61.5801 -58.5l-22.4307 9.68066c5.54004 -17.5303 11.9209 -34.6699 7.9209 -56.7402l-26.3906 5.28027c15.7998 -26.3906 9.0498 -64.4502 8.7998 -84.4502l-26.3896 14.5195l-7 -35.6299l-24.5898 5.24023l-8.7998 -28.1504
+l-26.3906 21.1104l19.3506 -7l8.7998 33.3896l18.4697 -7l6.16016 33.4307l27.2803 -7.05078c3.7998 25.3809 -2.0498 49.1406 -13.2002 72.1406l30.3496 8.35938c-9.42969 43.5205 -35.4297 50.7305 -63.3398 54.1006
+c-9.35938 -30.6201 -6.24023 -56.4404 2.64062 -80.0498c-82.25 -56.3008 -76.75 -117.221 -81.3701 -149.11c-4.40039 -30.3496 -4.4502 -89.29 -25.5107 -97.21v29.9502l-5.2793 7l-5.28027 -12.3203zM346.9 71.4697l-15.8408 10.5303
+c7.4707 4.36035 13.7607 8.41992 19.3506 12.3203c-0.600586 -7.2207 -0.270508 -13.8398 -3.50977 -22.8398v-0.0107422zM375.05 120.73c-0.399414 -10.9404 -0.899414 -21.6602 -1.75977 -31.6709c-7.84961 1.86035 -15.5703 3.80078 -21.1104 7
+c8.24023 7.94043 15.5508 16.3203 22.8701 24.6807v-0.00976562zM399.68 115.45l-23.75 6.16016c5.62695 7.16797 13.9014 19.3848 18.4707 27.2695c3.22949 -9.21973 5.2793 -20 5.2793 -33.4297zM403.2 196.39c19.4395 -12.8096 27.7998 -33.6592 29.9102 -56.2998
+c-12.3203 4.53027 -24.6299 9.31055 -36.9502 10.5605c5.05957 12 6.64941 28.1396 7 45.7393h0.0400391zM401.44 242.13c18.5596 -2.62988 35.1494 -9.18945 45.7598 -28.1494c-14.2197 -4.36035 -24.7803 -5.9707 -44 -14.0801
+c0.0800781 13.4092 -0.950195 27.9297 -1.75977 42.2295zM165.68 71.4805c-3.23926 9 -2.91016 15.5791 -3.50977 22.8398c5.58984 -3.90039 11.8799 -7.95996 19.3496 -12.3203zM137.53 120.74c7.31934 -8.36035 14.6299 -16.7402 22.8701 -24.6699
+c-5.54004 -3.2002 -13.2607 -5.14062 -21.1104 -7c-0.860352 10.0098 -1.36035 20.7295 -1.75977 31.6699zM112.89 115.46c0 13.4297 2 24.21 5.28027 33.4297c4.56934 -7.88477 12.8438 -20.1016 18.4697 -27.2695zM109.37 196.4h0.0898438
+c0.349609 -17.6006 2 -33.7402 7 -45.7402c-12.3701 -1.25 -24.6797 -6.03027 -37 -10.5605c2.11035 22.6406 10.4697 43.4902 29.9102 56.3008zM111.13 242.14c-0.80957 -14.2998 -1.83984 -28.8193 -1.75977 -42.2295c-19.2197 8.10938 -29.7803 9.71973 -44 14.0801
+c10.6299 18.9502 27.2295 25.5195 45.7598 28.1494z" />
+ <glyph glyph-name="hornbill" unicode="" horiz-adv-x="512"
+d="M76.3799 77.7002c0.182617 -1.37207 0.331055 -3.6084 0.331055 -4.99219c0 -20.8662 -16.9346 -37.8008 -37.7998 -37.8008s-37.7998 16.9346 -37.7998 37.8008c0 20.8652 16.9346 37.7998 37.7998 37.7998c1.49805 0 3.91602 -0.173828 5.39844 -0.387695
+c-78.2793 111.35 52 190.53 52 190.53c-5.85938 -43 -8.23926 -91.1602 -8.23926 -91.1602c-67.3105 -41.4902 0.929688 -64.0605 39.8096 -72.8701c18.6445 -50.7129 77.6279 -91.9023 131.66 -91.9404c1.91992 0 3.76953 0.209961 5.66992 0.280273l0.110352 -18.8604
+c-99.2207 -1.38965 -158.7 29.1406 -188.94 51.6006zM184.38 405.4c109.75 73.9395 187.601 -54.0605 187.601 -54.0605c-43.04 5.86035 -91.1807 8.24023 -91.1807 8.24023c-43.0996 70.0098 -65.7998 -6.58008 -73.7998 -44.29
+c-48.4805 -19.5557 -87.8545 -77.8545 -87.8896 -130.13c0 -0.910156 0.139648 -1.78027 0.139648 -2.67969l-21.8398 -0.150391c-1.41016 100.43 29.8701 160.09 52.4199 190c-0.842773 -0.0683594 -2.21191 -0.123047 -3.05664 -0.123047
+c-20.9482 0 -37.9502 17.001 -37.9502 37.9492c0 20.9492 17.002 37.9502 37.9502 37.9502c13.1934 0 28.5273 -9.65723 34.2266 -21.5566c2.04199 -4.25488 3.7002 -11.5381 3.7002 -16.2578c0 -1.35547 -0.143555 -3.54785 -0.320312 -4.8916zM488.57 271.23
+c-4.21777 -2.00879 -11.3906 -3.63867 -16.0615 -3.63867c-0.886719 0 -2.32422 0.0625 -3.20898 0.138672c84.4502 -113.45 -49 -194.61 -49 -194.61c5.87012 43.0303 8.20996 91.1602 8.20996 91.1602c66.6006 40.96 0.640625 63.54 -38.46 72.54
+c-19.3633 48.9775 -77.8232 88.7422 -130.49 88.7598c-2.75 0 -5.43945 -0.259766 -8.13965 -0.410156l-0.139648 22.5c93.6094 1.33008 151.72 -25.7998 183.45 -47.7402c-0.226562 1.52539 -0.40918 4.01465 -0.40918 5.55566c0 20.9434 16.9971 37.9404 37.9395 37.9404
+c20.9434 0 37.9404 -16.9971 37.9404 -37.9404c0 -13.2236 -9.69043 -28.5703 -21.6309 -34.2549zM374.06 11.7598v-0.0595703c0.0917969 0.000976562 0.239258 0.000976562 0.330078 0.000976562c20.9375 0 37.9297 -16.9922 37.9297 -37.9297
+s-16.9922 -37.9297 -37.9297 -37.9297c-13.1963 0 -28.5273 9.66211 -34.2197 21.5684c-1.76367 3.66602 -3.39453 9.93848 -3.63965 14c-111.98 -80.3398 -191.9 51 -191.9 51c43.0703 -5.87988 91.1904 -8.21973 91.1904 -8.21973
+c41.3301 -67.1709 63.9199 0.540039 72.7695 39.4893c50.418 18.7646 91.3604 77.6543 91.3906 131.45c0 2.08008 -0.220703 4.08984 -0.300781 6.15039l19.5205 0.139648c1.28027 -89.9697 -23.71 -147.2 -45.1406 -179.66z" />
+ <glyph glyph-name="mailchimp" unicode=""
+d="M330.61 204.48c-2.50977 3.17969 -4.70996 8.31934 -5.9707 14.3193c-2.22949 10.6807 -1.98926 18.4102 4.24023 19.4199c6.23047 1.01074 9.25 -5.45996 11.4805 -16.1299c1.5 -7.17969 1.20996 -13.7803 -0.450195 -17.6094
+c-1.27832 0.165039 -3.36133 0.299805 -4.65039 0.299805c-1.28809 0 -3.37207 -0.134766 -4.64941 -0.299805zM277.05 196c-4.45996 1.95996 -10.2598 4.13965 -17.2598 3.7002c-12.5996 -0.770508 -21.75 -7.21973 -22.5996 -3.48047
+c-0.400391 1.83984 2.40918 4.87988 5.40918 7.06055c4.5791 3.35254 12.9014 6.07422 18.5762 6.07422c3.45312 0 8.84473 -1.07324 12.0342 -2.39453c8.63965 -3.7002 14.0098 -11.1504 12.1201 -13.0898c-1.08008 -1.12988 -3.81055 0.129883 -8.28027 2.12988z
+M268.05 190.87c9.68066 1.14941 16.8604 -4.62988 15.4004 -6.85059c-0.629883 -1.00977 -2.02051 -0.829102 -4.94043 -0.489258c-1.55078 0.239258 -4.08301 0.433594 -5.65234 0.433594c-3.72656 0 -9.58105 -1.06738 -13.0674 -2.38379
+c-4.04004 -1.62012 -4.30957 -1.15039 -5.20996 -0.810547c-1.53027 3.57031 4.40039 8.68066 13.4697 10.1006zM322.22 173.77c-3.40039 -6.91016 -17.7002 0.0703125 -14.2998 7c3.40039 6.93066 17.6797 -0.129883 14.2998 -7zM337.88 194.24
+c7.69922 -0.149414 7.42969 -16.0605 -0.259766 -15.9307c-7.69043 0.130859 -7.40039 16.0605 0.259766 15.9307zM119.09 115.34c4.0293 0.910156 3.40039 -1.25 3.37012 -0.359375c0.256836 -0.317383 0.46582 -0.904297 0.46582 -1.3125
+c0 -0.299805 -0.119141 -0.755859 -0.265625 -1.01758c-3.16016 -7.37012 -20.1904 -7.68066 -21.5801 9c-0.910156 10.8594 9.30957 21.0293 -2.28027 28.6191c-1.77734 1.17773 -4.95117 2.13281 -7.08301 2.13281c-3.84961 0 -8.67285 -2.62207 -10.7666 -5.85254
+c-3.2998 -5.16016 -3.11035 -12.2002 -7.37988 -11.6299c-3.7207 0.540039 -3.70996 14.4805 5 24.0801c7.22949 8 25.9492 11.9297 35.0498 -5.54004c8.11035 -15.3896 -8.2002 -27.7695 -3 -35.7695c2.46973 -3.80078 7.14941 -2.66016 8.46973 -2.35059zM418.81 132.41
+c6.44043 0 16.5605 -7.5 16.5605 -25.2705c0 -17.7695 -7.37012 -37.9092 -9.11035 -42.3799c-54.3896 -130.279 -264.56 -130.06 -322.29 3c-31.5293 -0.0400391 -64.1699 26.9805 -67.5293 60.3799c-0.256836 2.25195 -0.463867 5.91992 -0.463867 8.18652
+c0 7.21289 2.04395 18.5537 4.56348 25.3135l-14.7598 12.5107c-67.5498 57.04 143.72 291.85 211.27 232.93c0.339844 -0.299805 22.9902 -22.5205 23.0498 -22.5703l12.5508 5.33008c59.2695 24.5303 107.359 12.6904 107.42 -26.4697
+c0.0292969 -20.3604 -12.9404 -44.1006 -33.7305 -65.6504c26.1699 -24.2998 20.0205 -71.6094 21.5205 -83c7.19922 -2 30.6992 -7.62012 41.0996 -18.54c18.3604 -19.25 5.52051 -39.5801 3.07031 -43.25c4.20996 -11.2998 3.42969 -8.79004 6.7793 -20.5195z
+M102.81 84.25c29.4502 -0.680664 38.6309 28.2002 34.0908 57.8398c-9.74023 62.9404 -90.1699 48.9805 -84 -12.3301c2.44922 -24.3594 27.0898 -44.8994 49.9092 -45.5098zM84.2998 198.45c19.3105 51.8096 51.54 99.5498 94.2002 132.399
+c31.6504 26.4102 65.7998 45.3506 65.7998 45.3506s-18.3896 21.3193 -23.9395 22.8896c-34.1699 9.23047 -107.94 -41.6494 -155.051 -108.88c-19.0596 -27.21 -46.3096 -75.3604 -33.2998 -100.21c1.58984 -3 10.71 -10.9297 15.5898 -15
+c8.18066 11.9102 21.54 20.5 36.7002 23.4502zM323.18 97.2998c2.58984 0.259766 0.560547 -2.53027 0.560547 -2.53027s-27.4004 -12.75 -71 0.740234c1.20996 -10.2295 11.1699 -14.8193 15.9395 -16.6699c31.4004 -12.21 86.6904 -2.58008 128.46 26
+c0.850586 0.589844 1.41992 0 0.730469 -1c-28.9697 -41.3496 -128.73 -54.7598 -151.37 -21.3496c-12.0801 17.8301 -0.599609 43.8594 19.5498 41.1494c6.7998 -0.769531 53.7705 -8 100.48 13.6807c27.4893 12.7598 37.8701 26.79 36.3096 38.1602
+c-0.447266 3.00293 -2.57031 7.16504 -4.74023 9.28906c-5 4.83008 -12.79 8.60059 -26 12.3105c-4.35938 1.22949 -7.31934 2.00977 -10.5098 3.05957c-5.67969 1.83008 -8.47949 3.33008 -9.10938 14c-0.280273 4.62988 -1.09082 20.9102 -1.38086 27.6299
+c-0.519531 11.7607 -1.91992 27.8506 -11.9199 34.4902c-2.37305 1.51953 -6.58691 2.75195 -9.40527 2.75195c-1.1748 0 -3.05371 -0.229492 -4.19434 -0.511719c-5.69043 -0.969727 -9.06055 -4.00977 -13.2598 -7.50977
+c-12.4404 -10.3701 -22.9502 -12.0605 -34.6406 -11.5605c-6.98926 0.290039 -14.3994 1.37988 -22.8799 1.87988l-5 0.290039c-19.5801 1 -40.5693 -15.9092 -44.0693 -39.9092c-4.86035 -33.4307 19.3291 -50.7002 26.3291 -60.8301
+c0.912109 -1.0918 1.77246 -3.12598 1.9209 -4.54004c0 -1.94043 -1.25 -3.48047 -2.48047 -4.79004c-19.9805 -20.54 -26.3701 -53.1699 -18.8398 -80.3701c0.768555 -2.76562 2.35938 -7.12891 3.5498 -9.74023c17.7002 -41.2598 72.4902 -60.4795 126 -43
+c5.81152 1.89844 14.9238 5.74219 20.3398 8.58008c9.78906 4.8418 23.7441 15.2852 31.1504 23.3096c14.2002 14.8408 22.6396 30.9707 25.9297 50.8408c2.81055 18.6191 -7.78027 18.7598 -11.4395 18.0996c-1.13477 6.94531 -4.32422 17.8223 -7.12012 24.2803
+c-15.6299 -12.3506 -35.71 -20.9707 -51 -25.3506c-69.4004 -19.9102 -90.1904 6.35059 -96.4004 -13.8096c33.7705 -12.3701 69.5098 -7.07031 69.5098 -7.07031zM171.31 290.5l0.0605469 0.00976562c-0.0947266 -0.115234 -0.171875 -0.331055 -0.171875 -0.481445
+c0 -0.418945 0.34082 -0.759766 0.759766 -0.759766c0.124023 0 0.308594 0.0546875 0.412109 0.121094c11.4199 8.30078 64.9502 42.7705 134.5 26.8301c0.860352 -0.189453 1.39941 1.29004 0.639648 1.7207c-11.3398 6.33984 -28.6895 10.6494 -41 10.7393
+c-0.404297 0.00976562 -0.732422 0.345703 -0.732422 0.75c0 0.134766 0.0634766 0.332031 0.142578 0.44043c1.84668 2.41602 5.30078 5.88379 7.70996 7.74023c0.166992 0.126953 0.302734 0.401367 0.302734 0.611328c0 0.424805 -0.344727 0.770508 -0.770508 0.770508
+c-0.0146484 0 -0.0380859 -0.000976562 -0.0517578 -0.00195312c-17.5205 -1.08008 -37.5107 -9.4707 -49 -17.2998c-0.107422 -0.0751953 -0.300781 -0.136719 -0.431641 -0.136719c-0.414062 0 -0.75 0.335938 -0.75 0.75
+c0 0.0498047 0.00976562 0.12793 0.0214844 0.176758c0.899414 4.30957 3.72949 9.98926 5.18945 12.6494c0.0566406 0.0947266 0.102539 0.261719 0.102539 0.37207c0 0.402344 -0.327148 0.729492 -0.730469 0.729492
+c-0.110352 0 -0.276367 -0.0449219 -0.37207 -0.101562c-18.4697 -9.4502 -39.0898 -26.2803 -55.8301 -45.6299z" />
+ <glyph glyph-name="megaport" unicode="" horiz-adv-x="496"
+d="M214.5 238.4l33.4004 33.3994l33.3994 -33.3994v-66.4004l-33.2998 -33.2998l-33.5 33.5v66.2002zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM393.1 25.5996h0.100586v87.1006l-59.7002 59.7002v87.5996l-59.5 59.5
+v75.5996l-26.0996 19.2002l-26.1006 -19.2002v-75.5996l-59.5 -59.5v-87.9004l-59.5 -59.5v-87l26.1006 -19.1992l26.0996 19.1992v65.5l33.5 33.4004l33.4004 -33.4004v-65.5l26.0996 -19.1992l26.2002 19.1992v65.5l33.3994 33.4004l33.4004 -33.4004v-65.5l26 -19.1992z
+" />
+ <glyph glyph-name="nimblr" unicode="" horiz-adv-x="384"
+d="M246.6 148.71c15.5703 0 27.1504 -11.46 27.1504 -27s-11.6201 -27 -27.1504 -27c-15.6992 0 -27.1494 11.5703 -27.1494 27s11.5498 27 27.1494 27zM113 121.75c0 15.6104 11.6797 27 27.1504 27c15.4697 0 27.1494 -11.46 27.1494 -27s-11.4697 -27 -27.1494 -27
+c-15.4404 0 -27.1504 11.3096 -27.1504 27zM191.76 289c98.3701 0 177.76 -78.9102 177.76 -176.48c0 -97.5693 -79.6094 -176.52 -177.76 -176.52c-98.1494 0 -177.76 78.8701 -177.76 176.52v335.48l45.25 -227c30.2002 48.2305 97.75 68 132.51 68zM191.76 -19.1201
+c73.2402 0 132.51 58.96 132.51 131.64c0 72.6807 -59.2393 131.54 -132.51 131.54c-73.2695 0 -132.51 -58.8994 -132.51 -131.59c0 -72.6895 59.2402 -131.59 132.51 -131.59z" />
+ <glyph glyph-name="rev" unicode=""
+d="M289.67 173.11c0 -36.1943 -29.375 -65.5801 -65.5703 -65.5801c-36.1943 0 -65.5693 29.375 -65.5693 65.5693c0 36.1953 29.375 65.5703 65.5693 65.5703h0.0107422c36.1445 -0.0439453 65.5156 -29.415 65.5596 -65.5596zM429.22 178.16v-210.16h-210.16v0.110352
+c-110.939 2.70996 -200.06 93.4092 -200.06 205c0 108.569 84.2998 197.319 191 204.569v38.3203l108.77 -62.7803l-108.77 -62.79v39.1201c-80 -7.16016 -143 -74.5498 -143 -156.43c0 -86.6201 70.4902 -157.12 157.11 -157.12s157.09 70.5 157.09 157.12
+c-0.0224609 47.1709 -32.1934 106.235 -71.8105 131.84l45.3799 26.2002c39.8018 -32.8584 73.0977 -101.402 74.3203 -153h0.129883z" />
+ <glyph glyph-name="shopware" unicode="" horiz-adv-x="512"
+d="M403.5 -7.41016c-36.0898 -26.8223 -101.875 -48.5908 -146.841 -48.5908c-0.181641 0 -0.477539 0.000976562 -0.65918 0.000976562c-137.19 0 -248 111 -248 248c0 137.19 111 248 248 248h0.211914c52.3994 0 126.538 -28.4482 165.488 -63.5
+c0.643555 -0.585938 1.16602 -1.76855 1.16602 -2.63965c0 -1.9707 -1.59961 -3.56934 -3.57031 -3.56934c-0.125977 0 -0.330078 0.0126953 -0.456055 0.0292969c-15.2227 2.03223 -40.042 3.68164 -55.4004 3.68164
+c-0.361328 0 -0.948242 -0.000976562 -1.30957 -0.00195312c-129.36 0 -222.399 -53.4697 -222.399 -155.35c0 -109 92.1299 -145.881 176.829 -178.73c33.6406 -13 65.4004 -25.3604 87 -41.5898c0.788086 -0.592773 1.42676 -1.87402 1.42676 -2.86035
+c0 -0.985352 -0.638672 -2.2666 -1.42676 -2.85938zM503 214.91c0.578125 -6.2832 1.04688 -16.5039 1.04688 -22.8135c0 -25.8613 -7.62793 -66.4043 -17.0273 -90.4971c-0.495117 -1.2373 -1.98047 -2.24316 -3.31348 -2.24316
+c-0.495117 0 -1.25 0.19043 -1.68652 0.423828c-29.4893 16.3594 -61.6094 28.3398 -92.6797 39.9297c-60.2803 22.4902 -112.34 41.8896 -112.34 84.4902c0 1.45996 -3.87988 53.6299 80.25 53.6299c50.8604 0 92.7197 -17.4805 144.48 -60.4805
+c0.625 -0.530273 1.19336 -1.62305 1.26953 -2.43945z" />
+ <glyph glyph-name="squarespace" unicode="" horiz-adv-x="512"
+d="M186.12 104.66l157.22 157.2c38.5703 38.5898 101.13 38.5898 139.72 0c38.5908 -38.5801 38.5908 -101.13 0 -139.721l-119.25 -119.239l-0.0400391 -0.0400391c-19.2891 -19.2705 -50.5498 -19.25 -69.8193 0.0400391l154.149 154.14
+c19.29 19.29 19.29 50.5703 0 69.8604s-50.5693 19.29 -69.8594 0l-157.181 -157.181c-9.64941 -9.64941 -25.29 -9.64941 -34.9395 0c-9.65039 9.65039 -9.65039 25.29 0 34.9404zM430.65 209.46c9.63965 -9.63965 9.63965 -25.2803 -0.0107422 -34.9297l-157.199 -157.2
+c-38.5801 -38.5703 -101.141 -38.5703 -139.721 0l-0.0195312 0.0195312c-9.64062 9.65039 -9.62988 25.29 0.0195312 34.9307l0.0107422 0.00976562c9.64941 9.63965 25.2793 9.62988 34.9199 -0.00976562l0.0498047 -0.0498047
+c19.29 -19.2607 50.5498 -19.2402 69.8193 0.0498047l157.2 157.18c9.64062 9.65039 25.2803 9.65039 34.9307 0zM168.66 122.13c-38.6006 -38.5801 -101.13 -38.5801 -139.73 0.00976562c-38.5801 38.5801 -38.5801 101.13 0 139.721l119.23 119.25l0.0195312 0.0195312
+c19.3008 19.2803 50.5703 19.2705 69.8506 -0.0195312l-154.17 -154.17l-0.0302734 -0.0302734c-19.2803 -19.2998 -19.2598 -50.5605 0.0302734 -69.8398l0.00976562 -0.0107422c19.29 -19.29 50.5703 -19.2793 69.8496 0.0107422l157.21 157.18
+c9.64062 9.63965 25.2705 9.63965 34.9102 0c9.64062 -9.65039 9.64062 -25.29 0 -34.9404zM81.3301 174.53c-9.64062 9.64941 -9.65039 25.29 0 34.9297l157.189 157.19c38.5908 38.5898 101.131 38.5898 139.721 0c9.64941 -9.64062 9.64941 -25.2803 0 -34.9307
+c-9.64062 -9.64941 -25.2803 -9.64941 -34.9307 0l-0.0195312 0.0205078c-19.29 19.2793 -50.5596 19.2695 -69.8398 -0.0205078l-157.21 -157.189c-9.64062 -9.64062 -25.2705 -9.64062 -34.9102 0z" />
+ <glyph glyph-name="themeco" unicode=""
+d="M202.9 439.57c9.89941 5.72949 26 5.81934 35.9492 0.209961l191.15 -107.63c10 -5.60059 18 -19.4404 18 -30.8604v-217.29c0 -11.4404 -8.05957 -25.29 -18 -31l-191.19 -108.74c-9.92969 -5.66016 -26 -5.56934 -35.8496 0.209961l-185.1 108.41
+c-9.86035 5.78027 -17.8604 19.7402 -17.8604 31.1201v217.29c0 11.4404 8 25.3604 17.9102 31.0801zM125.5 239.74c-15.9404 0 -31.8896 -0.140625 -47.8301 -0.140625v-101.449h19.1299v29.8496h28.7002c49.71 0 49.5596 71.7402 0 71.7402zM265.64 139.45
+l-30.7295 34.6396c37 7.50977 34.7998 65.2305 -10.8701 65.5098c-16.0898 0 -32.1699 0.140625 -48.2598 0.140625v-101.59h19.1299v33.9092h18.4102l29.5596 -33.9092h22.7598v1.2998zM224.05 221.77c23.3398 0 23.2598 -32.46 0 -32.46h-29.1299v32.46h29.1299z
+M128.49 223.37c21.1797 0 21.1094 -38.8506 0 -38.8506h-32.3105v38.8408zM321.14 241.62c-68.46 0 -71 -105.8 0 -105.8c69.4805 0.00976562 69.4102 105.8 0 105.8zM321.14 224.23c44.1201 0 44.8008 -70.8604 0 -70.8604c-44.7998 0 -44.4297 70.8604 0 70.8604z" />
+ <glyph glyph-name="weebly" unicode="" horiz-adv-x="512"
+d="M425.09 382.17c50.9102 0 87.5498 -35.1504 86.9199 -83.4697c0 -21.6201 -0.950195 -18.5498 -77.5 -227.2c-22.3799 -60.5703 -67.7695 -69.6699 -92.7402 -69.6699c-39.2393 0 -70.0391 19.46 -85.9297 54.29c-15.8896 -34.5205 -46.7002 -53.9805 -85.9297 -53.9805
+c-24.9697 0 -70.3701 8.78027 -92.7402 69.3506c-72.9902 200.21 -77.1699 204.52 -77.1699 233.479c0 43.3105 38.5898 77.2002 87.54 77.2002c40.21 0 73.2803 -25.7295 83.6602 -64.3301c18.4795 58.0498 65.5 64.3301 85.2803 64.3301
+c19.4492 0 66.7891 -6.26953 84.9492 -64.3301c10.3799 38.6006 43.7803 64.3301 83.6602 64.3301zM451.43 267.36c3.49023 11.1992 7.29004 19.3701 7.61035 27.2393c0 22.3906 -16.1602 35.71 -38.3301 35.71c-18.6904 0 -31.9902 -11.7998 -36.1104 -29.0498
+l-44.0293 -139.819h-0.950195l-44.6602 136.79c-6.01953 19.9697 -16.4697 32.0791 -38.96 32.0791s-32.9404 -12.4092 -38.96 -32.0791l-44.6602 -136.79h-0.950195l-44.0293 139.819c-4.12012 17.25 -17.4199 29.0498 -36.1104 29.0498
+c-22.4902 0 -38.3301 -13.0195 -38.3301 -29.3594c0 -10.5898 2.54004 -19.6699 7.91992 -34.5l64.9404 -175.23c7.91016 -21.4795 21.2197 -37.2197 46.2393 -37.2197c23.1201 0 37.0605 12.0996 44.0205 33.5996l39.2803 117.42h0.949219l39.2803 -117.42
+c6.65039 -21.4893 20.5898 -33.8994 44.0303 -33.8994c25.0195 0 38.3203 15.7295 46.2402 37.2197z" />
+ <glyph glyph-name="wix" unicode="" horiz-adv-x="640"
+d="M393.38 316.31c0 -13.0293 2.08008 -32.6895 -28.6797 -43.8291c-9.52051 -3.4502 -15.9502 -9.66016 -15.9502 -9.66016c0 31 4.71973 42.2197 17.4004 48.8594c9.75 5.11035 27.2295 4.62988 27.2295 4.62988zM277.58 280.77
+c5.47949 26.3408 30.8799 38.3408 55.2998 35.2705l-65.5703 -247.93s-21.6396 -1.56055 -32.46 3.95996c-14.2197 7.25 -20.9893 12.8398 -29.5898 46.5693c-7.66992 30.0703 -29.1494 118.4 -31.1201 124.7c-4.30957 13.8105 -10.6396 14.9404 -15.3994 0
+c-2.00977 -6.29004 -23.4502 -94.6299 -31.1201 -124.7c-8.61035 -33.7295 -15.3701 -39.3193 -29.5898 -46.5693c-10.8301 -5.52051 -32.46 -3.95996 -32.46 -3.95996l-65.5703 247.93c23.8604 3 49.7305 -8.5498 55.2803 -35.2705l34.2393 -132.659l28.4805 108.569
+c7.76953 32.3506 21.0596 48.5303 48.4297 48.5303c27.6201 0 40.7402 -16.54 48.4307 -48.5303l28.4795 -108.569zM393.36 275.56v-8.97949l0.0195312 0.00976562v-150.27c-0.129883 -30.8301 -3.33008 -37.6807 -17.2598 -44.7803
+c-10.8203 -5.52051 -27.3701 -3.42969 -27.3701 -3.42969v152.069c0 21.25 -1.95996 27.9404 13.1797 35.2002c6.19043 2.96973 11.96 5.25 17.9707 8.61035c9.35938 5.22949 13.46 11.5693 13.46 11.5693zM556.8 191.48l82.9902 -123.36s-35.9297 -4.62012 -53.3203 11.21
+c-13.9102 12.6602 -23.7393 28.3398 -53.1396 70.7197c-0.5 0.770508 -6.25977 10.5205 -13.0703 0c-34.9297 -50.3496 -41.0195 -60.2598 -52.5098 -70.7197c-17.3799 -15.8301 -53.9502 -11.21 -53.9502 -11.21l82.9697 123.36l-83.1992 123.739
+s35.1094 5.98047 52.5 -9.84961c13.3799 -12.1797 24.8896 -30.2402 54.1797 -72.4697c6.82031 -10.54 12.5996 -0.730469 13.0703 0c29.7695 42.9199 40.8799 60.3691 54.1797 72.4697c17.3896 15.8301 52.5 9.84961 52.5 9.84961z" />
+ <glyph glyph-name="ello" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM391.84 154.8c2.48047 7.44043 -2.47949 15.71 -9.91992 17.3604c-7.43945 2.47949 -15.71 -2.48047 -17.3604 -9.91992
+c-14.0498 -52.9102 -62 -90.1104 -116.56 -90.1104s-102.51 37.2002 -116.56 90.1104c-1.65039 7.43945 -9.9209 11.5693 -17.3604 9.91992c-7.44043 -1.65039 -11.5703 -9.91992 -9.91992 -17.3604c16.5303 -65.3096 76.0498 -111.6 143.84 -111.6
+s127.31 46.29 143.84 111.6z" />
+ <glyph glyph-name="hackerrank" unicode="" horiz-adv-x="512"
+d="M477.5 320c14.5 -25 14.4805 -230.92 -0.00976562 -256s-192.391 -128 -221.33 -128c-28.9404 0 -206.83 102.8 -221.32 128s-14.4102 230.79 0 256s192.351 128 221.32 128s206.84 -103.05 221.34 -128zM316.13 33.7803c3.95996 0 40.4404 35.7793 37.5605 38.6895
+c-0.870117 0.839844 -8.82031 1.49023 -17.6904 1.83984c0 32.4004 -3 19.0508 0.679688 210.341c0.0703125 3.65918 -1.04004 5.37988 -4.5 5.37988c-11.0801 0.0693359 -22.1602 0.0195312 -33.2295 -0.0605469c-3.25977 -0.0292969 -4.31055 -1.80957 -4.20996 -5.2002
+c1.58984 -48.8994 1.2002 -79.0898 1.2002 -83.6396h-80.2607c0.629883 25.7998 0.209961 79.6396 2.62988 105.39v3.16016c8.87012 0.350586 15.9004 0.970703 16.7705 1.83984c2.90039 2.91016 -34.3203 38.6904 -38.2705 38.6904
+c-3.94922 0 -41.4092 -35.7695 -38.4893 -38.6904c0.879883 -0.839844 7.58984 -1.48926 17.2598 -1.83984v-3.16992c3.15039 -128.67 1.07031 -179.229 0.150391 -212.67c-0.130859 -4.58008 1.63965 -6.10938 5.73926 -6.10938
+c10.1406 0.0292969 20.2803 -0.0800781 30.4102 -0.0800781c4.16016 -0.0605469 5.96973 1.39941 5.74023 5.93945c-1.83008 36.6797 -1.37012 65.7803 -1.37012 72.8799h79.9297c0 -2.41992 0.44043 -3.84961 0.44043 -5.84961
+c-0.350586 -17.7305 -0.94043 -60.0898 -0.94043 -86.3203c-11.29 -0.349609 -16.6797 -0.959961 -17.5498 -1.83008c-2.91016 -2.91992 34 -38.6895 38 -38.6895z" />
+ <glyph glyph-name="kaggle" unicode="" horiz-adv-x="320"
+d="M304.2 -53.5l1.39941 -7.59961c-0.5 -2 -2.5 -3 -6 -3h-66.8994c-4 0 -7.5 1.7998 -10.5 5.2998l-110.5 140.6l-30.7998 -29.2998v-109c0 -5 -2.5 -7.5 -7.5 -7.5h-51.9004c-5 0 -7.5 2.5 -7.5 7.5v497c0 5 2.5 7.5 7.5 7.5h51.9004c5 0 7.5 -2.5 7.5 -7.5v-306
+l132.3 133.7c3.5 3.5 7 5.2998 10.5 5.2998h69.2002c7 0 7.89941 -7.7998 5.2998 -10.5l-139.8 -135.3z" />
+ <glyph glyph-name="markdown" unicode="" horiz-adv-x="640"
+d="M593.8 388.9c25.5 0 46.2002 -20.7002 46.2002 -46.1006v-301.6c0.0996094 -25.4004 -20.5996 -46.1006 -46.0996 -46.1006h-547.7c-25.5 0 -46.2002 20.7002 -46.2002 46.2002v301.5c0 25.4004 20.7002 46.1006 46.2002 46.1006h547.6zM338.5 87.4004h-0.200195v209.199
+h-61.5l-61.5 -76.8994l-61.5 76.8994h-61.5v-209.199h61.7002v120l61.5 -76.9004l61.5 76.9004v-120h61.5zM473.8 84.2998l92.2002 107.7h-61.5v104.6h-61.5v-104.6h-61.5z" />
+ <glyph glyph-name="neos" unicode="" horiz-adv-x="512"
+d="M415.44 -64h-95.1104l-108.21 154.54v-91.0996l-86.4297 -63.4404h-97.6904v482.18l40.4697 29.8203h108.05l123.74 -176.13v112.68l86.4307 63.4502h97.6895v-461.5zM38.7695 412.73v-460.73l72 52.8799v249.12l215.5 -307.64h84.79l52.3506 38.1699h-78.2705
+l-316.14 450.47zM121.31 -53.8799l80 58.7803v101l-79.7598 114.399v-220.939l-72.5498 -53.25h72.3398zM80.6299 437.23l310.601 -442.57h82.3691v442.57h-79.75v-317.561l-222.939 317.561h-90.2803zM311 256.35l72 -102.81v278.53l-72 -53v-122.721z" />
+ <glyph glyph-name="zhihu" unicode="" horiz-adv-x="640"
+d="M170.54 299.87h122.68v-217.55h-49.5293l-42.0107 -26.3701l-7.70996 26.3701l-23.4297 0.00976562v217.54zM268.29 105.94v170.31h-72.8203v-170.31l11.9004 -0.0400391l5.08008 -17.4707l27.8994 17.5107h27.9404zM149.83 200.33
+c7.5 0 7.58984 -23.6104 7.58984 -23.6104h-61.6504c-0.879883 -13.1201 -3.50977 -26.6895 -7.86914 -40.6699l14.6191 11.6201c8.73047 -8.75 29.2109 -32.8896 36.79 -41.8096c9.15039 -13.1006 1.24023 -39.9902 1.24023 -39.9902l-53.96 64.9395
+c-12.6094 -48.3496 -35.5898 -69.25 -35.5898 -69.25c-10.0898 -8.96973 -30.5098 -15.75 -51 -9.89941c42.8301 33.2197 66.4502 75.2402 70.8496 125.1h-65.5801s3.82031 23.6201 15.5605 23.6201h52.2695c0.480469 6.56055 1.68066 62.9404 1.68066 73.4404h-28.8701
+c-2.62988 -7.87012 -3.03027 -8.64062 -5.14062 -14.5303c-11.4697 -21.0303 -30.9492 -21.5703 -36.8398 -22.21c17.4902 34.9795 27.3105 69.2197 30.7002 78.1201c8.2002 21.5693 32.2705 21.5693 32.2705 21.5693c-5.25 -14.0098 -9.63086 -27.5498 -13.1201 -40.6699
+h88.5c10.5498 0.25 8.58008 -22.3096 8.58008 -22.3096h-51.1602c0 -21.8701 -0.459961 -46.3604 -2.2002 -73.46h52.3301zM561.85 201.93l-19.2295 14.4307s30.8301 40.0498 36.8301 48.1992c8.72949 10.7402 27.3799 -4.05957 27.3799 -4.05957
+s-24.1504 -32.9297 -44.9805 -58.5703zM411.76 261.02l0.00976562 0.0107422c8.99023 -8.25 34.6602 -45.8604 34.6602 -45.8604l-19.46 -13.7295c-1.59961 2.40918 -41.1201 57.4492 -41.1201 57.4492s16.9004 10.3799 25.9102 2.12988zM640 189.65
+c0 0 0.950195 -23.79 -8.73047 -23.79h-122.359v-73.3203c0.780273 -28.0303 -15.3301 -45.3096 -44.8906 -45.3096c-9.84961 0 -16.1396 1.75977 -26.0195 6.56934c-12.9805 7.4502 -17.3203 17.8701 -19.3096 21.8398c15.6094 -0.65918 27.6094 -1.91992 41.6895 -1.80957
+c13.29 -0.870117 24.4805 7.15039 24.4805 21.1201v70.9199h-107.94c-22.6895 0.540039 -25.5098 22.8496 -25.5098 22.8496h133.47v99.8105c-12.8301 0 -31.6797 -0.830078 -56.5098 -2.43066c-26.46 -0.80957 -35.8398 -2.58984 -49.1504 0.890625
+c-8.16016 2.46973 -14.1797 10.7295 -15.7793 19.5498c67.1396 1.55957 232.359 18.0498 232.359 18.0498s20.1006 5.75977 23.1699 4.58008c12.8105 -6.25 0.589844 -33.4395 0.589844 -33.4395c-17.6396 -0.810547 -46.8896 -2.40039 -87.7695 -4.81055
+c-10.4297 -0.799805 -18.04 -1.2002 -22.8496 -1.2002v-101c0.149414 0 111.279 0.930664 131.06 0.930664z" />
+ <glyph glyph-name="alipay" unicode=""
+d="M377.74 416c38.6895 0 70.0898 -31.5703 69.9297 -70.2598v-234.41c-48.6104 16.7002 -99.6895 36.04 -148.62 52.7402c23.1406 44.2998 38.3506 90.9199 38.3506 90.9199h-88.7705v31.2402h109.45v19.0098h-109.44v50.4199h-50.9199v-50.4199h-109.439v-19.0098h109.439
+v-31.2402h-92.0801v-16.7002h178.2s-9.91992 -30.25 -26.4502 -60.3398c-47.7793 14.71 -91.75 24.96 -127.13 24.96c-84.6396 0 -103.49 -42.4902 -99.5195 -81.5c3.30957 -31.0703 26.4502 -76.3701 97.04 -76.3701c64.4795 0 116.55 37.0303 148.62 81
+c61.0098 -28.0996 125.64 -62.8203 171.6 -88.4404c-0.5 -38.5195 -31.7402 -69.5996 -70.2598 -69.5996h-307.48c-38.8496 0 -70.2598 31.4102 -70.2598 70.2598v307.48c0 38.8496 31.4102 70.2598 70.2598 70.2598h307.48zM47.2803 125.05
+c-0.990234 17.5205 10.9102 50.5801 78.3594 50.5801c24.96 0 64.8105 -12.7295 109.44 -31.4102c-25.29 -33.2197 -65.7998 -72.8994 -117.87 -72.8994c-59.6797 0 -68.9404 33.5596 -69.9297 53.7295z" />
+ <glyph glyph-name="the-red-yeti" unicode="" horiz-adv-x="512"
+d="M488.23 206.3c2.49805 -3.35254 5.51465 -9.31152 6.76953 -13.2998c3.37793 -9.19922 7.36523 -24.5205 8.90039 -34.2002l-2.5 -0.5l-13 14.2998c-17.9004 -28.0996 -9.90039 -15.3994 -16.7002 -25.0996c0 -124.2 -101.3 -211.5 -223 -211.5
+c-61.5 0 -113.9 20.2002 -157.5 60.2002c-64.5 60.8994 -64.9004 125 -64.9004 150.5c-0.5 1.7998 -0.700195 3.5 -1.2002 5.2002l-20.1992 -22.4004c-6.80078 43 25.6992 74.2998 33 80.7002c0.5 1 0.699219 2.2002 1.19922 3.2002l-28.7998 1l-3 3.39941
+c8.5 3.5 25.2998 13.2998 40.2998 14.2998c6.30273 12.0684 18.7568 30.123 27.8008 40.3008c1.2998 6.39941 3.2998 14.1992 6.59961 25.7998l-7.59961 -4.7002l-1.7002 1.7002l1.7002 8.39941c8.87207 21.3857 29.7939 51.5811 46.6992 67.4004l-33 14.2998h3.7002
+c20.9004 4.90039 33.2002 3.2998 49.2002 0c-2.5 4.10059 -5.40039 10.5 -8.40039 18.9004c-1.16699 3.20996 -2.11426 8.58691 -2.11426 12.0029c0 3.81152 1.1709 9.76855 2.61426 13.2969c8.90039 -7.40039 14.3008 -24.5996 15.2002 -27
+c0.700195 3.59961 2.10059 21.2998 33.7002 45.5l1.83008 -0.5l-12 -44.2002c30 17.7002 63 21.9004 97.9004 11.7998c-12.7002 -12.1992 -24.3008 -28.8994 -42.5 -33c7.39941 -2.2998 28.6992 -9.69922 34.1992 -15.1992l-24.7998 7.09961
+c6.5 -6 19.6006 -16.4004 25.1006 -25.0996c19.418 -0.893555 50.0615 -6.85254 68.3994 -13.3008l-0.5 0.5c29.4004 14.7002 37.7002 27.3008 74.7998 3c0 -30.1992 -2.2998 -23.3994 3 -29.7998c6.41602 5.42383 17.75 12.8154 25.3008 16.5
+c13 6.40039 23.0996 4.7002 30.6992 -5.89941c11.8008 0 17.8008 -15.7002 18.4004 -27c14.7998 -2.90039 2.7002 -30.7002 2.5 -30.7002l-7.09961 -18.2002c7.7998 -7.7998 22.0996 -20.9004 31.6992 -44.7998zM398 336.8c-13.0996 8.90039 -22.7002 11.9004 -28.2998 8.5
+c8.09961 -7.2002 13 -14.2998 13.5 -20.7002c1.2002 -7.59961 -2.2002 -14.7998 -10.6006 -21.8994l-4.19922 -3.40039c3.60059 -5.90918 7.36328 -16.2578 8.39941 -23.0996h2.5c-2.09961 13.8994 -2.5 11 0.700195 14.7998c11 -6.40039 14.9004 -14.5 16 -19.9004
+c21.7998 10.1006 29.5 12.7002 54.7998 20.9004l-18.2002 -16c11.4004 0 25.6006 0.299805 46.5 -8.40039c7 24.3008 7.10059 20.7002 2.5 20.7002l-4.69922 -11.2998c-1.7002 10.5 -2.90039 18.9004 -3.40039 25.2998c-0.5 6.7002 -3.90039 9.60059 -9.2998 10.1006
+c-0.00976562 -0.384766 -0.0175781 -1.00781 -0.0175781 -1.3916c0 -3.87012 0.769531 -10.0566 1.71777 -13.8086l-1.7002 -5.90039c-2.90039 10.6006 -5.90039 20.2002 -9.2998 27.7998c-9.7002 17.7002 -30.2002 -9.19922 -43 -11.2998
+c3.72266 -0.207031 9.77051 -0.375977 13.5 -0.375977c3.72852 0 9.77637 0.168945 13.5 0.375977l-22.4004 -5.39941l3.40039 -4.7002c-5.5 0 -16.9004 -0.900391 -22.4004 17.2002zM358.4 346.9l-20.3008 -11.8008c11.3008 -7.59961 20.2002 -18.1992 27.8008 -31.1992
+c6.39941 2.89941 10.0996 5.09961 11.7998 7.59961c2.5 2.7998 2.5 4.7002 3 7.09961c0.599609 1.30078 0.799805 2.7002 -3.40039 11.1006c-7.5 11.7998 -16.2002 15.2998 -18.8994 17.2002zM91 304.9c-7.7998 -24.1006 -11.7002 -49.4004 -13.2002 -74.6006l13.2002 -5
+l1.2002 27c9.5 -16.3994 11.2002 -23.2998 12.2998 -28.7998c2.7998 2.09961 7.7002 7 22.5996 11.2998l1.2002 -1.7002l-7.59961 -10.5996c10.0996 3.5 19.5 3.5 28.2998 0.5l-10.5996 -8.40039c22.7998 -8.39941 26.5996 -7.59961 38.3994 -26.0996l-11.7998 1.2002
+c34.9297 -20.5 66 -47.9004 141.2 -63.2002c15.5996 24.0996 14 21.0996 14 22.9004l0.200195 0.199219l-0.200195 0.200195c-0.700195 1.90039 -14.1006 16.6006 -18.2002 20.7002c7.2998 -1.7998 6 -0.900391 10.7998 -3.7002
+c1.7002 -0.899414 -5.39941 5.40039 -21.8994 20.2002c16.5 -6.7002 27.5996 -15.5 33 -27.7998l1.69922 30.7002l-22.3994 17.6992l6.39941 5.90039c-7.2998 0 -31 3.7002 -49.1992 -16l-2.5 0.5c5.89844 12.1807 13.0664 32.7881 16 46
+c1.61914 7.72656 2.96289 20.4053 3 28.2998c0 19.5 -4.7002 38.4004 -13.5 56.6006c-6.40039 13.5 -16.5 25.2998 -30 35.3994c-5.4707 4.09961 -14.7441 10.1475 -20.7002 13.5c3 0.700195 1 1.2002 -5.40039 1.2002c-6.39941 0.200195 -13 0.700195 -19.3994 1.2002v-3
+c-8.67773 -1.375 -20.0127 -8.18457 -25.3008 -15.2002h-1.19922l-5.40039 -3.40039c-1.2002 2.90039 0 6.30078 4.2002 9.30078l10.5996 11.2998l-3.39941 -0.5l2 3.39941c-2.30078 0.200195 -4.2002 0.5 -6.2002 0.700195l-0.5 1.2002l2.5 1.7002
+c2.2002 -0.200195 4.59961 -0.5 7.09961 -0.700195c2.52539 1.3457 6.89746 2.43848 9.75879 2.43848c1.18359 0 3.08301 -0.196289 4.24121 -0.438477l2.5 -1.2002l0.200195 -0.5c6.50488 0.421875 16.9883 1.7207 23.4004 2.90039
+c20.6992 2.89941 36.6992 11.2998 48.5 24.7998l-21.1006 0.5c-25.7998 0.5 -49.3994 -5.40039 -71.2998 -18.9004l-2.5 2.5l0.5 4.7002l1.7002 7.10059c1.37695 7.08105 4.24414 18.415 6.39941 25.2998c-1.69922 -0.700195 -4.59961 -4.90039 -9.2998 -11.2998
+c-4.7002 -6.40039 -8.39941 -13 -10.0996 -19.4004c-0.905273 -4.24512 -3.54785 -10.6514 -5.90039 -14.2998l-13.5 29l8.40039 -35.7998l-0.5 -1.7002h-0.015625c-4.51953 0 -11.6807 1.12012 -15.9844 2.5c-3.40039 0.700195 -10.6006 1.2002 -20.9004 1.2002
+c0.5 0 -0.700195 0 -3.2002 -0.5c5.40039 -1.30078 13.5 -4.2002 24.8008 -8.40039l6.39941 1.2002c-4.2002 -3.40039 -10.8994 -10.1006 -20.2002 -19.4004c-9.39941 -8.89941 -20.1992 -26.0996 -32.5 -50.2002l4.2002 1.2002l10.1006 9.2998l-5.40039 -4.69922
+l13 12.2998l-2.5 -3.40039c-5.09961 -7.59961 -8.09961 -12.2998 -9.2998 -15.2002zM367.5 -25.0996c8.2998 40.2998 3.59961 55.1992 -0.700195 89.5c-35.5 -11.8008 -20.2998 -6 -32 -10.8008l10.5 -14.1992l-1.2002 -1.2002c-20.1992 6 -23.1992 10.7998 -27.7998 15
+c6 -22.2002 13.9004 -26.4004 29.5 -31.7002c-9.5 -9.59961 -25.3994 4 -34.3994 13l2.5 -23.5996l-4.2002 -3c-5 22.0996 -22 39.0996 -25.2998 39.0996c-44 -13 -79.1006 -5.7998 -113.9 10.5996c-1.59961 -0.399414 -70.5996 -18 -120.5 37.1006
+c13.7002 -35 32.2998 -63.7002 71.2998 -82.6006c-4.13574 8.56934 -13.4102 20.4863 -20.7002 26.6006c0 0 0.700195 3.7002 1.2002 10.0996c19.4004 -19.3994 50.7002 -39.5 93.2002 -60.2002c-59.5996 24.5 -59.9004 24.8008 -69.0996 29l16 -20.6992
+c-3 -1.30078 -6.7002 -0.5 -10.1006 1.19922c-10.3359 6.03809 -26.1943 17.1484 -35.3994 24.8008c1.89941 -2.2002 80.0996 -98.5 200.899 -74.3008c-43.0996 21.8008 -52.3994 52.4004 -66.5996 73.5l17.7002 -7.59961l-11.8008 23.0996
+c20.1006 -27.7998 28.6006 -35 38.4004 -44.2998l-30 16.5c12.5996 -27.0996 33.7002 -47 63.5 -58.7998c2.90039 1.5 9.09961 -1.09961 59 23.9004zM482.8 189.3l8.93066 -12.7998l-12.3008 32.5c10.9004 0 10 -0.0996094 21.2002 -3.40039
+c-6.72168 9.44824 -18.8184 23.7842 -27 32l-26.5996 23.1006l1.2002 3l23.5996 2.5c-9.00293 1.98535 -23.7871 3.86719 -33 4.2002l-17.7002 -0.5l-0.5 2.89941l14.7998 13l-41.7998 -20.2002l-12.2998 18.9004l3.40039 -16l-2.5 -1.2002l-5.90039 4.2002h-10.0996
+l5.39941 -4.2002v-2l-13.5 -27.7998c-10.0996 -31.2002 -21.8994 -67.9004 -35.3994 -109.7l1.19922 16l-1.19922 -3v-0.5c-6.40039 -16 -13.6006 -29.5 -21.2002 -39.5996l9.2998 21.8994l-46.7002 -20.1992c11.7998 13.5 23.6006 19.3994 34.9004 18.8994
+c-71.2002 11.4004 -106.2 41 -110.4 46c3.60059 -6.2002 13.2002 -17.7998 16 -40.0996l-1.7002 -1.2002c-4.2998 15.5996 -16.3994 46.5996 -55.7998 69.5996l23.6006 -2.5c-10.5 12.6006 -36.3008 17.8008 -40.8008 16l-2.5 2.5l8.40039 8.40039l-22.2998 -5.7998
+l5.39941 13.5c-8.09961 -4.40039 -4.2998 -2.40039 -17 -8.90039l-1.69922 0.5c0.599609 0.600586 0.899414 -0.700195 -3 9.2998c-0.600586 -11 -0.400391 -8.59961 -1 -11.7998c-1.07324 -0.355469 -2.73145 -1.11719 -3.7002 -1.7002c-40 20.6006 -57.2002 11 -73 5.2002
+c36.7998 -6 29.2998 -4 38.3994 -9.2998c-25.7998 -12.2002 -31.8994 -12.5996 -51.3994 -70.0996l22.2695 22.2998l2.5 -16.4004c13.4004 -58 68.7002 -92.5 126.4 -83.3994l-26.1006 22.3994l44.8008 -22.3994l-1.2002 -3c4.59961 -1.7002 9.2998 -3 13.5 -4.2002
+c16.4727 -4.87598 43.7852 -8.83203 60.9648 -8.83203c8.94727 0 23.3887 1.08887 32.2354 2.43164l-32.5 21.2002c35.7998 -7 50.6992 -31.4004 56.7998 -39.5996l-7.60059 29l1.2002 2.5l19 -27.9004l-9.2998 26.5996l21.9004 -13.5h1.19922l-3.39941 4.2002
+l7.09961 -4.7002l-14.2998 16l1.2002 3l7.59961 -7.09961c4.2998 1.2002 41.4004 10.5 80.9004 40.2998c47.8994 35.4004 68.0996 73.7998 71.5996 79.7002l-3 9.2998zM476.7 260.6l-18.2002 -1.19922l14.2998 -11.8008zM221.9 253.5
+c2.69922 -5.09961 5.69922 -12.4004 18.3994 -18.7998c-7.5 -10.9004 -8.2998 -10.5 -20.2002 -16c-7.59961 -7.7002 -13.5 -13.1006 -17.6992 -14.7998l7.09961 13c-4.61914 -1.69336 -12.3604 -3.06641 -17.2793 -3.06641c-2.08789 0 -5.45703 0.25293 -7.52051 0.566406
+l-0.5 1.19922c19 2.10059 37.2002 9.40039 46.5 16c-4.10059 4.2002 -7.10059 11.3008 -8.7998 21.9004zM225.6 355.8c4.92578 -2.78809 11.3486 -8.9707 14.3008 -13.7998c14.6992 -24.0996 19.1992 -40.0996 11.2998 -47.7002
+c-7.90039 -7.59961 -16.7998 -7.09961 -26.1006 3c-9.2998 10.1006 -13.5 23.7002 -11.7998 39.6006c1.7002 15.8994 5.90039 22.2998 12.2998 18.8994zM220.9 309.5c7.09961 -21.2998 33.3994 -23.0996 26.8994 4.90039c-3.89941 16.5 -8.7998 27.0996 -15.2002 32.5
+c-6.59961 5.39941 -10.0996 6.69922 -11.2998 4.19922c-2.5 -2.89941 -3.5 -11.2998 -3 -24.7998c7.5 12.7998 11.6006 5.90039 12.5 4.7002l-0.5 -0.5c-0.799805 -1.7002 -2.59961 -3.09961 1.7002 -6.2002l1.2002 0.5v-4.7002
+c-1.7998 -12.5 -6.90039 -12.7998 -12.2998 -10.5996zM175.9 315c-2.09375 0.388672 -4.49707 2.27051 -5.40039 4.2002c-3.5 8.5 0 21.2002 8.09961 21.2002c2 -0.5 3.7002 -1.7002 5.40039 -4.7002c-1.5 -0.400391 -4.7002 -4.7998 0.700195 -5.90039h0.5
+c0 -13.7002 -7.7002 -15.0996 -9.2998 -14.7998zM216 365.1l-3.7002 2.40039l-0.5 2.5c18.2998 0 25.7998 -8.7998 28.2998 -14.2998c-6.0459 3.29688 -16.542 5.97266 -23.4297 5.97266c-0.737305 0 -1.93359 -0.0322266 -2.66992 -0.0732422l-0.5 3zM144.2 315.7
+c1.59961 -1.60059 0.599609 -0.299805 4.89941 -6.60059c-25.3994 -4.69922 -23.1992 -12.2998 -30 -12.2998c0.300781 0.600586 7.10059 16 23.6006 16l-7.10059 7.60059c9.40039 0.5 15.2002 2.09961 19.9004 -5.90039c0.0175781 6.60938 1.31641 17.1826 2.90039 23.5996
+c2 7.60059 3.69922 11.8008 5.39941 13.5c1 1.5 16.2998 15.7002 29 22.4004c2.05469 1.48047 5.77637 2.68262 8.30859 2.68262c1.48438 0 3.81055 -0.44043 5.19141 -0.982422c0.285156 -0.345703 0.515625 -0.989258 0.515625 -1.43652
+c0 -0.0732422 -0.00683594 -0.191406 -0.015625 -0.263672l-13 -7.59961c7.60059 -11.8008 10.5 -25.3008 8.7998 -41.3008c-0.932617 -9.45898 -7.5625 -22.1377 -14.7998 -28.2998l2.90039 -4.7002c-30 2.2002 -24.7998 6.80078 -46.5 23.6006zM162.9 334.4
+c-1.80078 -7.2002 -2.30078 -16 -3.10059 -26l5.40039 -6.40039l7.09961 -3.40039c2.01465 -0.384766 5.31445 -0.697266 7.36523 -0.697266c1.08887 0 2.85156 0.0888672 3.93457 0.197266c1 1.7002 3.5 4.2002 6.40039 7.60059c5 5.89941 7.90039 13.7998 8.40039 23.0996
+c0.0703125 1.18262 0.126953 3.10449 0.126953 4.28906c0 5.92773 -1.40137 15.3408 -3.12695 21.0107c-3 8.10059 -5.90039 11 -10.1006 9.30078c-5.39941 -1.7002 -10.5996 -5.40039 -16 -11.8008c-3 -4.19922 -5.2002 -9.59961 -6.39941 -17.1992zM204.9 278.3
+l-3.10059 -6.5c7.10059 4.2002 13.5 7.2002 19.4004 8.40039l7.09961 0.5l11.7998 -7.60059h-2.5c-8.7998 3.7002 -19.3994 1.2002 -30.6992 -7.59961c-0.5 -4.7002 1.69922 -14.7002 5.89941 -29.5l9.2002 0.5c-21.9004 -6.59961 -37.5996 -8.40039 -48.9004 -5.40039
+c-24.8994 6.7002 -27.3994 23.6006 -27.5 24.1006c-1.47754 5.69238 -2.67676 15.0869 -2.67676 20.9688c0 3.53418 0.438477 9.23828 0.977539 12.7314c-6.40039 -0.5 -11 -4.2002 -15.2002 -10.6006c-2.90039 5.90039 -5.40039 8.7998 -5.90039 9.2998
+c1.5 0.700195 12.2998 7.5 32.5 4.90039l0.5 -2.5l-5.89941 -1.2002c-0.100586 -0.399414 -1.90039 -29.5 18.8994 -24.7998c1.40039 0.299805 1.2998 -0.0996094 36.1006 14.2998z" />
+ <glyph glyph-name="acquisitions-incorporated" unicode="" horiz-adv-x="384"
+d="M357.45 -20.2002c2.2002 -14.2998 4.09961 -28.7002 6.59961 -43.7002h-337.1c-4 0 -6.10059 0.700195 -5.2998 5.7002c2.09961 12.9004 3.5 25.9004 5 38.7998c0.5 4.80078 2.2998 6.80078 7.59961 6.80078c118.1 -1 114.9 -0.300781 121.4 2.39941
+c9.39941 4 14.8994 12.9004 14.8994 23.1006c-0.0996094 42.8994 -0.299805 85.8994 -0.200195 128.8c0 3.7998 -1.19922 5.89941 -4.59961 6.7998c-15.7002 3.90039 -31.2998 7.7002 -47.5996 11.7002c-5.30078 -12.2998 -10.4004 -24.4004 -15.7002 -36.7002
+c1.7998 -3.2998 28.3994 -2.90039 35.2998 -2.90039v-27.5996h-114.3c1 8.59961 1.7002 16.7998 3.2002 24.9004c0.299805 1.39941 3.59961 3.09961 5.5 3.19922c8.39941 0.400391 16.8994 0.300781 25.3994 0.100586c4 0 5.90039 1.09961 7.60059 5.2002
+c16.5996 40.6992 13.5 31.1992 67.2998 161c31.5 76.0996 33 76 32.5996 87.3994c-0.700195 18.6006 -25.3994 22.2998 -37.7002 22.1006c-30 -0.400391 -38.3994 0.5 -101.8 0.5c-7.2002 44.5 -4.2002 32.0996 -6.39941 45.2998c-0.700195 4.2002 1 5.2998 4.59961 5.2998
+l339.1 -0.200195c-0.799805 -5.39941 -1.59961 -10.7998 -2.39941 -16.0996c-1.2998 -9.7002 -2.7998 -19.4004 -4 -29.2002c-0.299805 -2.90039 -1.2002 -4.2998 -4.2998 -4.2998c-20.6006 -0.100586 -41.2002 -0.100586 -61.8008 -0.5
+c-18.6992 -0.400391 -37.5996 -0.299805 -56.1992 -2c-13.4004 -1.2002 -23.3008 -12.6006 -18.9004 -26.6006c8.59961 -27.0996 27.7002 -69.0996 36.5 -89.1992c65.7002 -154.2 61.4004 -157 84 -158.601c6.59961 -0.5 13.4004 -0.0996094 20.4004 -0.0996094
+c1.2998 -9.40039 2.59961 -18 4 -27.5h-116v27c10.3994 0 20.3994 0.0996094 30.3994 -0.100586c3.5 0 5 0.700195 3.40039 4.40039c-4.40039 10.2998 -8.7002 20.5996 -13.2002 30.9004c-1.59961 3.69922 -4.09961 4.7998 -8.40039 3.5
+c-12.3994 -3.60059 -24.7998 -6.7002 -37.2998 -9.7002c-4.2998 -1.10059 -6 -2.7998 -5.89941 -7.5c0.799805 -57.5 0.899414 -127.5 1 -129.101c0.399414 -12.5996 8.69922 -21.3994 21 -23.0996c0.899414 -0.200195 12.8994 -2.7998 112.699 -2.59961
+c8.30078 0 8.40039 0.0996094 9.60059 -7.60059zM182.55 185.5c2.46484 -0.869141 6.58691 -1.5752 9.2002 -1.5752s6.73535 0.706055 9.2002 1.5752c13 4.2002 26.2998 7.7998 39.3994 11.7002c1.1123 0.512695 2.86035 1.45312 3.90039 2.09961
+c-6.7002 17.4004 -13.0996 34.2002 -19.7002 50.9004c-8.89941 22.7002 -17.7002 60.2998 -27 82.7998c-1.5 0.799805 -1.89941 -2.40039 -9.39941 0c-17.1006 -44 -34.1006 -87.7998 -51.3008 -132.1c1.54297 -0.917969 4.1416 -2.2168 5.80078 -2.90039
+c13.2998 -4.2998 26.5996 -8.2998 39.8994 -12.5z" />
+ <glyph glyph-name="critical-role" unicode=""
+d="M225.82 448c0.259766 -0.150391 216.569 -124.51 217.12 -124.72c3 -1.18066 3.69922 -3.45996 3.69922 -6.56055c-0.0732422 -83.4463 -0.0732422 -166.899 0 -250.359c0.00976562 -0.124023 0.0175781 -0.326172 0.0175781 -0.450195
+c0 -2.06836 -1.52148 -4.45703 -3.39746 -5.33008c-21.3701 -12 -207.859 -118.29 -218.93 -124.58h-3c-79.3301 45.6602 -218.25 125.44 -218.4 125.52c-1.04297 0.491211 -1.89062 1.8252 -1.89062 2.97754c0 0.0732422 0.00488281 0.19043 0.0107422 0.262695
+c0 0.870117 0 225.94 -0.0498047 253.101c-0.0078125 0.102539 -0.0136719 0.269531 -0.0136719 0.37207c0 1.78223 1.31836 3.82422 2.94336 4.55762c23.2607 13.0996 209.271 119.21 220.141 125.21h1.75zM215.4 427.58l-0.219727 0.158203
+c-64.7471 -36.8604 -129.474 -73.7305 -194.18 -110.61c0 -0.120117 0.0800781 -0.229492 0.129883 -0.349609l30.8604 -11.6406c-7.70996 -6 -8.32031 -6 -10.6504 -5.12988c-0.0996094 0 -24.1699 9.28027 -26.7998 10v-230.43
+c0.879883 1.41016 64.0703 110.91 64.1299 111c1.62012 2.82031 3 1.91992 9.12012 1.51953c1.40039 -0.0898438 1.47949 -0.219727 0.780273 -1.41992c-41.1904 -71.3301 -36.4004 -63 -67.4805 -116.939c-0.80957 -1.40039 -0.609375 -1.12988 1.25 -1.12988h186.5
+c1.44043 0 1.69043 0.229492 1.7002 1.63965v8.87988c0 1.33984 2.36035 0.810547 -18.3701 1c-7.45996 0.0703125 -14.1396 3.21973 -21.3799 12.7002c-7.37988 9.66016 -14.6201 19.4297 -21.8496 29.21c-2.28027 3.08008 -3.4502 2.37988 -16.7607 2.37988
+c-1.75 0 -1.7793 0 -1.75977 -1.82031c0.290039 -26.21 0.150391 -25.2695 1 -32.6592c0.520508 -4.37012 2.16016 -4.2002 9.69043 -4.81055c3.13965 -0.259766 3.87988 -4.08008 0.519531 -4.91992c-1.57031 -0.389648 -31.5996 -0.509766 -33.6699 0.0996094
+c-0.982422 0.269531 -1.78027 1.31543 -1.78027 2.33398c0 1.16016 0.931641 2.2334 2.08008 2.39648c3.29004 0.759766 6.16016 -0.80957 6.66016 4.44043c1.2998 13.6592 1.16992 9 1.09961 79.4199c0 10.8193 -0.349609 12.5801 -5.35938 13.5498
+c-1.21973 0.240234 -3.54004 0.160156 -4.69043 0.549805c-2.87988 1 -2 4.83984 1.77051 4.84961c33.6699 0 46.0801 1.07031 56.0596 -4.85938c7.74023 -4.61035 12 -11.4805 12.5098 -20.4004c0.880859 -14.5898 -6.50977 -22.3496 -15 -32.5898
+c-0.282227 -0.241211 -0.510742 -0.738281 -0.510742 -1.11035c0 -0.371094 0.228516 -0.868164 0.510742 -1.10938c2.60059 -3.25 5 -6.62988 7.70996 -9.83008c27.5605 -33.2305 24.1104 -30.54 41.2803 -33.0605c0.890625 -0.129883 1 0.419922 1 1.15039v11
+c0 1 0.320312 1.42969 1.41016 1.25977c2.98633 -0.454102 7.86133 -0.822266 10.8818 -0.822266c3.53223 0 9.2207 0.50293 12.6982 1.12207c1.08008 0.150391 1.5 -0.199219 1.47949 -1.33008c0 -0.109375 0.880859 -26.6895 0.870117 -26.7998
+c-0.0498047 -1.51953 0.669922 -1.62012 1.89062 -1.62012h186.71c-27.1533 47.0342 -54.2334 93.9746 -81.2402 140.821c2.25977 0.660156 -0.400391 0 6.69043 1.38965c2 0.390625 2.0498 0.410156 3.10938 -1.43945c7.31055 -12.6396 77.3105 -134 77.3701 -134.061
+v230.44c-1.71973 -0.5 -103.3 -38.7197 -105.76 -39.6797c-1.08008 -0.419922 -1.5498 -0.200195 -1.91016 0.879883c-0.629883 1.89941 -1.33984 3.75977 -2.08984 5.62012c-0.320312 0.790039 -0.0898438 1.12988 0.649414 1.38965
+c0.100586 0 95.5303 35.8496 103 38.7705c-65.4199 37.5693 -130.56 75 -196 112.6l86.8203 -150.39l-0.280273 -0.330078c-9.56934 0.899414 -10.46 1.59961 -11.7998 3.93945c-1 1.69043 -73.5 127.71 -82 142.16c-9.09961 -14.6699 -83.5596 -146.21 -85.3701 -146.32
+c-2.92969 -0.169922 -5.87988 -0.0800781 -9.25 -0.0800781c28.833 49.8271 57.5596 99.4941 86.1797 149.001zM267.331 297.658c1.54688 0.120117 4.02832 0.500977 5.54004 0.849609c1.68945 0.299805 2.53027 -0.200195 2.59961 -1.91992
+c0 -0.109375 0.0703125 -19.0596 -0.859375 -20.4502c-0.930664 -1.38965 -1.87988 -1.21973 -2.60059 0.19043c-5 9.68945 6.2207 9.66016 -39.1201 12c-0.699219 0 -1 -0.230469 -1 -0.929688c0 -0.130859 3.7207 -122 3.73047 -122.11
+c0 -0.889648 0.519531 -1.2002 1.20996 -1.50977c2.46484 -0.980469 6.3623 -2.79492 8.7002 -4.0498c7.30957 -4.33008 11.3799 -10.8408 12.4102 -19.3105c1.43945 -11.7998 -2.77051 -35.7695 -32.21 -37.1396c-2.75 -0.129883 -28.2607 -1.08008 -34.1406 23.25
+c-4.66016 19.2598 8.25977 32.7002 19.8906 36.3994c1.11035 0.202148 2.0127 1.28223 2.0127 2.41113c0 0.0683594 -0.00585938 0.180664 -0.0126953 0.249023c0.0996094 5.62988 3 107.101 3.70996 121.351c0.0498047 1.0791 -0.620117 1.15918 -1.35059 1.14941
+c-32.3496 -0.519531 -36.75 0.339844 -40.2197 -8.51953c-2.41992 -6.18066 -4.13965 -1.32031 -3.9502 -0.230469c1.05957 6 2.16309 12 3.31055 18c0.399414 2.11035 1.42969 2.61035 3.42969 1.86035c5.58984 -2.11035 6.71973 -1.7002 37.25 -1.91992
+c1.72949 0 1.78027 0.0800781 1.82031 1.84961c0.679688 27.4902 0.579102 22.5898 1 29.5498c0.00976562 0.0878906 0.0185547 0.231445 0.0185547 0.320312c0 0.986328 -0.738281 2.09766 -1.64941 2.48047c-5.59961 2.90918 -8.75 7.5498 -8.89941 13.8691
+c-0.350586 14.8105 17.7197 21.6699 27.3799 11.5107c6.83984 -7.19043 5.7998 -18.9102 -2.4502 -24.1504c-1.24316 -0.68457 -2.25195 -2.3916 -2.25195 -3.81055c0 -0.146484 0.0146484 -0.383789 0.0322266 -0.529297c0 -0.589844 -0.110352 4.30957 1 -30.0498
+c0 -0.900391 0.429688 -1.12012 1.24023 -1.11035c0.0996094 0 23 0.0898438 34.4697 0.370117zM68.2705 306.298c19.8408 4.50977 32.6807 0.560547 52.4902 -1.68945c2.75977 -0.310547 3.74023 -1.2207 3.62012 -4c-0.209961 -5 -1.16016 -22.3301 -1.24023 -23.1504
+c-0.0371094 -0.932617 -0.767578 -1.98145 -1.62988 -2.33984c-4.05957 -1.7002 -3.60938 4.4502 -4 7.29004c-3.12988 22.4297 -73.8701 32.7002 -74.6299 -25.4004c-0.30957 -23.9199 17 -53.6299 54.0801 -50.8799c27.2402 2 19 20.1904 24.8398 20.4697
+c0.0996094 0.0136719 0.261719 0.0244141 0.362305 0.0244141c1.50195 0 2.7207 -1.21875 2.7207 -2.71973c0 -0.186523 -0.0371094 -0.483398 -0.0830078 -0.664062c-1.83008 -10.8506 -3.41992 -18.9502 -3.4502 -19.1504
+c-1.54004 -9.16992 -86.6992 -22.0898 -93.3496 42.0605c-2.70996 25.8496 10.4404 53.3691 40.2695 60.1494zM148.271 218.628h-19.4893c-0.0576172 -0.00488281 -0.151367 -0.00878906 -0.208984 -0.00878906c-1.04102 0 -2.13867 0.805664 -2.45117 1.79883
+c2.37988 3.75 5.88965 -0.919922 5.86035 6.13965c-0.0800781 25.75 0.209961 38 0.229492 40.1006c0 3.41992 -0.530273 4.64941 -3.32031 4.93945c-7 0.720703 -3.10938 3.37012 -1.10938 3.38086c11.8398 0.0996094 22.6201 0.179688 30.0498 -0.720703
+c8.76953 -1.06934 16.71 -12.6299 7.92969 -22.6201c-2 -2.25 -4 -4.41992 -6.13965 -6.72949c0.950195 -1.15039 6.89941 -8.82031 17.2803 -19.6797c2.65918 -2.78027 6.14941 -3.51074 9.87988 -3.13086h0.0214844c1.1709 0 2.16016 0.950195 2.20801 2.12012
+c0.299805 3.41992 0.259766 -4.72949 0.450195 40.5801c0 5.65039 -0.339844 6.58008 -3.22949 6.83008c-3.9502 0.350586 -4 2.25977 -0.69043 3.37012l19.0898 0.0898438c0.320312 0 4.49023 -0.530273 1 -3.37988c0 -0.0498047 -0.160156 0 -0.240234 0
+c-3.60938 -0.259766 -3.93945 -1 -4 -4.62012c-0.269531 -43.9297 0.0703125 -40.2295 0.410156 -42.8203c0.110352 -0.839844 0.270508 -2.22949 5.10059 -2.13965c2.48926 0 3.85938 -3.37012 0 -3.39941c-10.3701 -0.0800781 -20.7402 0 -31.1104 -0.0703125
+c-10.6699 0 -13.4697 6.2002 -24.21 20.8203c-1.59961 2.17969 -8.31055 2.35938 -8.2002 0.369141c0.879883 -16.4697 0 -17.7793 4 -17.6699c4.75 0.100586 4.73047 -3.56934 0.830078 -3.5498h0.0595703zM423.271 228.778
+c-1.20996 -7.12988 0.170898 -10.3799 -5.2998 -10.3398c-61.5498 0.419922 -47.8193 0.219727 -50.7197 0.30957c-1.02246 0.100586 -2.64844 0.426758 -3.62988 0.730469c-2.53027 0.599609 1.47949 1.22949 -0.379883 5.59961
+c-1.43066 3.37012 -2.78027 6.78027 -4.11035 10.1895c-0.210938 0.797852 -1.05078 1.44434 -1.875 1.44434c-0.0351562 0 -0.0908203 -0.00195312 -0.125 -0.00390625c-1.82812 0.0878906 -4.79785 0.15918 -6.62793 0.15918
+c-2.19727 0 -5.75879 -0.102539 -7.95215 -0.229492c-0.587891 -0.0771484 -1.31348 -0.551758 -1.62012 -1.05957c-1.58008 -3.62012 -3.06934 -7.29004 -4.50977 -11c-1.26953 -3.23047 7.86035 -1.32031 12.1904 -2.16016c3 -0.570312 4.5293 -3.71973 0.65918 -3.72949
+h-26.3691c-2.91992 0 -3.09082 3.14941 -0.740234 3.20996c0.0791016 -0.00390625 0.208008 -0.00683594 0.288086 -0.00683594c2.14648 0 4.66992 1.55762 5.63184 3.47656c1.5 3 2.7998 6 4.11035 9.08984c18.1797 42.1396 17.0596 40.1699 18.4199 41.6104
+c0.300781 0.431641 0.973633 0.78125 1.5 0.78125s1.19824 -0.349609 1.5 -0.78125c2.92969 -3.33984 18.3994 -44.71 23.6201 -51.9199c2 -2.7002 5.73926 -2 6.35938 -2c3.61035 -0.130859 4 1.10938 4.12988 4.29004
+c0.0898438 1.86914 0.0800781 -1.1709 0.0703125 41.2393c0 4.45996 -2.36035 3.74023 -5.5498 4.27051c-0.259766 0 -2.56055 0.629883 -0.0800781 3.05957c0.209961 0.200195 -0.890625 0.240234 21.7002 0.150391c2.31934 0 5.31934 -2.75 -1.20996 -3.4502
+c-0.0322266 0.000976562 -0.0830078 0.00292969 -0.115234 0.00292969c-1.41309 0 -2.55957 -1.14746 -2.55957 -2.56055c0 -0.0751953 0.00683594 -0.197266 0.0146484 -0.272461c-0.0703125 -1.62988 -0.19043 -38.8896 0.290039 -41.21
+c0.27832 -1.34668 1.62109 -2.43848 2.99609 -2.43848c0.0644531 0 0.168945 0.00390625 0.233398 0.00878906c13.25 -0.430664 14.9199 -0.44043 16 3.41016c1.66992 5.7793 4.12988 2.51953 3.73047 0.189453zM318.551 164.408
+c-4.24023 0 -4.41992 3.38965 -0.609375 3.41016c35.9092 0.160156 28.1094 -0.379883 37.1895 0.649414c1.67969 0.19043 2.37988 -0.239258 2.25 -1.88965c-0.259766 -3.38965 -0.639648 -6.78027 -1 -10.1602c-0.25 -2.16016 -3.2002 -2.61035 -3.39941 0.150391
+c-0.380859 5.30957 -2.15039 4.44922 -15.6309 5.08008c-1.58008 0.0693359 -1.63965 0 -1.63965 -1.52051v-16.1299c0 -1.65039 0 -1.59961 1.62012 -1.46973c3.12012 0.25 10.3096 -0.339844 15.6895 1.51953c0.470703 0.160156 3.30078 1.79004 3.07031 -1.75977
+c0 -0.209961 -0.759766 -10.3496 -1.17969 -11.3896c-0.530273 -1.29004 -1.87988 -1.51074 -2.58008 -0.320312c-1.16992 2 0 5.08008 -3.70996 5.2998c-15.4199 0.900391 -12.9102 2.5498 -12.9102 -6c0 -12.25 -0.759766 -16.1104 3.88965 -16.2402
+c16.6406 -0.479492 14.4004 0 16.4307 5.70996c0.839844 2.37012 3.5 1.77051 3.17969 -0.580078c-0.44043 -3.20996 -0.849609 -6.42969 -1.22949 -9.63965c0 -0.360352 -0.160156 -2.39941 -4.66016 -2.38965c-37.1602 0.0800781 -34.54 0.189453 -35.21 0.30957
+c-2.7207 0.509766 -2.2002 3 0.219727 3.4502c1.09961 0.19043 4 -0.540039 4.16016 2.55957c2.43945 56.2207 -0.0703125 51.3408 -3.91016 51.3301zM318.141 273.928c2.45996 -0.609375 3.12988 -1.75977 2.9502 -4.64941
+c-0.330078 -5.2998 -0.339844 -9 -0.549805 -9.69043c-0.660156 -2.22949 -3.15039 -2.12012 -3.33984 0.270508c-0.379883 4.80957 -3.0498 7.81934 -7.57031 9.14941c-26.2803 7.73047 -32.8096 -15.46 -27.1699 -30.2197c5.87988 -15.4102 22 -15.9199 28.8604 -13.7803
+c5.91992 1.85059 5.87988 6.5 6.91016 7.58008c1.22949 1.2998 2.25 1.83984 3.11914 -1.09961c0 -0.100586 0.570312 -11.8906 -6 -12.75c-1.59961 -0.209961 -19.3799 -3.69043 -32.6797 3.38965c-21 11.1904 -16.7402 35.4697 -6.87988 45.3301
+c14 14.0596 39.9102 7.05957 42.3203 6.46973h0.0292969zM289.801 167.858c3.28027 0 3.66016 -3 0.160156 -3.43066c-2.61035 -0.319336 -5 0.419922 -5 -5.45996c0 -2 -0.19043 -29.0498 0.400391 -41.4502c0.109375 -2.28906 1.14941 -3.51953 3.43945 -3.64941
+c22 -1.20996 14.9502 1.64941 18.79 6.33984c1.83008 2.24023 2.75977 -0.839844 2.75977 -1.08008c0.350586 -13.6201 -4 -12.3896 -5.18945 -12.3994l-38.1602 0.189453c-1.92969 0.230469 -2.05957 3 -0.419922 3.37988c2 0.480469 4.93945 -0.399414 5.12988 2.7998
+c1 15.8701 0.570312 44.6504 0.339844 47.8105c-0.269531 3.76953 -2.7998 3.26953 -5.67969 3.70996c-2.46973 0.379883 -2 3.21973 0.339844 3.21973c1.4502 0.0205078 17.9697 0.0302734 23.0898 0.0205078zM258.171 225.648
+c0.0703125 -4.08008 2.86035 -3.45996 6 -3.58008c2.61035 -0.100586 2.53027 -3.41016 -0.0703125 -3.43066c-6.47949 0 -13.6992 0 -21.6094 0.0605469c-3.83984 0 -3.37988 3.34961 0 3.37012c4.49023 0 3.24023 -1.61035 3.41016 45.54
+c0 5.08008 -3.27051 3.54004 -4.7207 4.22949c-2.58008 1.23047 -1.35938 3.08984 0.410156 3.15039c1.29004 0 20.1904 0.410156 21.1699 -0.209961c0.980469 -0.620117 1.87012 -1.65039 -0.419922 -2.86035c-1 -0.519531 -3.85938 0.280273 -4.14941 -2.46973
+c0 -0.209961 -0.820312 -1.62988 -0.0703125 -43.7998h0.0498047zM221.261 -48.6221c0.408203 -0.273438 1.13867 -0.495117 1.62988 -0.495117c0.492188 0 1.22168 0.22168 1.62988 0.495117c17 9.79004 182 103.57 197.421 112.51
+c-0.140625 0.430664 11.2598 0.180664 -181.521 0.270508c-1.21973 0 -1.57031 -0.370117 -1.53027 -1.56055c0 -0.0996094 1.25 -44.5098 1.2207 -50.3799c-0.0791016 -2.17969 -0.688477 -5.63379 -1.36035 -7.70996c-0.549805 -1.83008 0.379883 0.5 -13.5 -32.2295
+c-0.730469 -1.7207 -1 -2.20996 -2 0.0800781c-4.19043 10.3398 -8.28027 20.7197 -12.5703 31c-1.12109 2.52441 -2.03125 6.81543 -2.03125 9.57812c0 0.333984 0.0146484 0.876953 0.03125 1.21191c0.160156 2.45996 0.800781 16.1191 1.51074 48c0 1.94922 0 2 -2 2
+h-183c2.5791 -1.63086 178.319 -102.57 196 -112.761zM130.361 140.128c0 -2.39941 0.359375 -2.79004 2.75977 -3c11.54 -1.16992 21 -3.74023 25.6396 7.32031c6 14.46 2.66016 34.4102 -12.4795 38.8398c-2 0.589844 -16 2.75977 -15.9404 -1.50977
+c0.0498047 -8.04004 0.00976562 -11.6104 0.0205078 -41.6504zM236.111 155.178c0 -2.12988 1.06934 -38.6797 1.08984 -39.1299c0.339844 -9.93945 -25.5801 -5.76953 -25.2305 2.58984c0.0800781 2 1.37012 37.4199 1.10059 39.4307
+c-14.1006 -7.44043 -14.4199 -40.21 6.43945 -48.8008c1.88184 -0.816406 5.0752 -1.47949 7.12695 -1.47949c5.53418 0 12.3721 3.83008 15.2637 8.5498c4.90918 7.75977 6.83984 29.4697 -5.43066 39c-0.0966797 -0.0400391 -0.257812 -0.09375 -0.359375 -0.120117
+v-0.0400391zM223.831 353.178c-9.83008 0 -9.73047 -14.75 -0.0703125 -14.8701c9.66016 -0.119141 10.1006 14.8809 0.0703125 14.9102v-0.0400391zM143.681 249.348c0 -1.7998 0.410156 -2.39941 2.16992 -2.58008c13.6201 -1.38965 12.5107 11 12.1602 13.3604
+c-1.68945 11.2197 -14.3799 10.2002 -14.3496 7.81055c0.0498047 -4.5 -0.0302734 -13.6807 0.0195312 -18.5908zM356.001 242.948l-6.09961 15.8398c-2.16016 -5.48047 -4.16016 -10.5703 -6.23047 -15.8398h12.3301z" />
+ <glyph glyph-name="d-and-d-beyond" unicode="" horiz-adv-x="640"
+d="M313.8 206.5c-9.89941 0 -16 7 -15.7002 7.09961c-4.2998 5.7002 -3 -0.299805 -2.39941 -1.89941c-10.9004 10.2998 -5.2998 25.3994 -5.10059 26c0.700195 1.89941 0 2.2002 -0.599609 1.89941c-1 -0.299805 -2.09961 -1.89941 -2.09961 -1.89941
+c0.799805 9.09961 9.2998 14.7002 9.2998 14.7002l0.200195 -0.200195c1 -1.5 -0.400391 -3.2002 -0.600586 -9c1.60059 2.2998 7.90039 6.59961 11.4004 7.89941c-1.10059 -1.5 -2.10059 -3.59961 -2.10059 -6.59961c3.7002 4.2002 7.5 2.59961 8 2.40039
+c-12.1992 -11.9004 -7 -26.6006 3.2002 -26.6006c5.7002 0 11.5 6.40039 13.9004 10.7002c2.39941 -2.40039 6.39941 -5.5 7.39941 -6.59961c-3.7998 -7.80078 -11 -17.9004 -24.7998 -17.9004zM366.2 227.6c0 -2.89941 -2.90039 -4.09961 -5.40039 -4.5
+c0.700195 1.5 1.7998 5.10059 -0.200195 9c0.700195 -0.0996094 5.60059 -0.5 5.60059 -4.5zM376.5 222.4c-0.400391 -6.5 -6.90039 -11.6006 -14.5996 -10.6006c2 -1.7002 6.59961 -3 9 -1.89941c-3.90039 -6.90039 -23.1006 -7.5 -23.1006 6.39941
+c-2.89941 -2.89941 -2.09961 -7.39941 0 -9.2998c-2.2002 0.700195 -5.7998 3.09961 -6.39941 7.40039c-1.30078 10.0996 4.39941 6.5 -10.4004 18.0996c-4.7998 3.7002 -3 6.59961 -4 8.5c-1.09961 2.2002 -7 4.09961 -4.5 8.5
+c-0.0996094 -1.59961 1 -2.90039 2.59961 -3.5c1.80078 -0.700195 3.2002 -0.200195 4.80078 -1c1.69922 -1.2002 0.899414 -3.90039 2.19922 -5c1.10059 -0.799805 4.2002 0.299805 6.60059 -1.7998c2.59961 -2 8.2002 -6.7002 10.5996 -8.60059
+c4.40039 -3.59961 8.7998 0.400391 7.40039 4.60059c4.5 -2.60059 5 -9.90039 1.2998 -12.5c10.5996 -2.40039 13 10.0996 5 11.3994c7.2998 0.700195 13.5 -4.2998 13.5 -10.6992zM337.1 240.8c4.30078 6.10059 13.3008 15.2998 23.8008 15.7998
+c-5.90039 0.800781 -15.1006 -3.19922 -19.7002 -9c0.899414 3.90039 5.09961 10.1006 10.2002 13c0 0 -2.5 -3.19922 -1.40039 -3.69922c1.59961 -0.800781 5.7998 5.69922 11.2002 5.89941c0 0 -4 -2 -3.2002 -3.39941c0.599609 -0.900391 3.2998 1.2998 8 1.2998
+c5.7998 0 10.9004 -3.5 13.2998 -6.2002c-4 1.09961 -11.5996 -0.799805 -13.7998 -2.7002c-0.299805 0.200195 -11.7998 9 -22 -15.5c-4.7998 3.7998 -4.40039 3.7002 -6.40039 4.5zM579.6 188.9c37.2002 0 60.4004 -19.6006 60.4004 -48.9004
+c0 -28.2002 -17 -48.9004 -59.0996 -48.9004c-20.7002 0 -41.2002 1.30078 -51.6006 2.10059l7.40039 8.2002v77.1992l-7.40039 8.2002c10.2998 0.799805 29.6006 2.10059 50.2998 2.10059zM564.5 113.3c25.4004 -3.2002 46.7998 1.40039 46.7998 27
+c0 22.5 -16.7002 29.6006 -46.7998 26.2998v-53.2998zM301.6 267c0.100586 -0.299805 -2.7998 2.2998 -3.2998 7.5c-0.200195 2.2998 0 19.7998 20 18.9004c11.2002 -0.600586 16.7002 -8.30078 16.7002 -16.5c0 -4.30078 -2.2998 -10.1006 -5.5 -13.8008
+c-2.2002 2.2002 -5.59961 4.60059 -7.7002 7.80078c3.7998 5.59961 2.2002 14.3994 -4.7002 14.3994c-4.2998 0 -7.7998 -4.5 -6.39941 -9.89941c-0.700195 -2.40039 -1 -5.60059 -0.5 -8c-4.90039 2.59961 -6.5 6 -7.5 9c-1.2998 -2.5 -2.10059 -6 -1.10059 -9.40039z
+M301.2 261c0.299805 1.7002 -3.10059 4.59961 -4.7998 5.2002c4.7998 0.200195 7 -0.600586 7 -0.600586c-1.30078 1.7002 -1.60059 4.5 -1 6.7002c2.5 -6.09961 11.6992 -7.09961 13.8994 -12.2002c-0.299805 2.30078 -2.39941 4.7002 -4.7998 6.10059
+c-1.2998 3.2002 -0.299805 9.39941 1.2998 11c-0.5 -8.7998 12 -13.7998 14.6006 -20.2002c-1.40039 5.5 -7.40039 9 -10.1006 12.2002c-1 2.09961 -0.200195 5.7998 0.799805 7.09961c-0.5 -9.7002 15.8008 -14.2998 14.1006 -23.8994
+c0.899414 -0.400391 2.09961 -1.2002 1.89941 -2.60059c1.30078 0.299805 2.60059 1.7002 2.90039 2.7002c0.700195 -4.5 -1.90039 -9 -4.7998 -10.4004c1.59961 4 -2.7002 5.60059 -6.7002 5.10059c0 0 1.59961 2.2998 1 3.39941
+c-0.799805 1.5 -8 0.800781 -11.2002 -0.299805c1.10059 0.100586 3.60059 -0.200195 4.60059 -0.5c-2.10059 -2.89941 -1 -7.09961 1.2998 -4.2002c0 0 -1.10059 -3.5 -0.299805 -4.2998c0.799805 -0.799805 2.59961 -0.200195 2.59961 -0.200195
+c-1.2002 -2.69922 -5.2998 -4.59961 -8.2002 -4.59961c1.10059 0.400391 2.7002 2.2998 3 3.40039c-0.799805 -0.5 -2.7002 -0.700195 -3.5 -0.5c6.10059 3 0 13.1992 -7 8.19922c1 2.7002 3.7002 5.30078 5.7998 6.10059c-1.2998 0.5 -2.69922 0.799805 -4.2998 1.09961
+c1.7998 1.5 6.2998 2.7998 8.5 2.60059c-3.5 0.799805 -9.89941 -0.300781 -12.7998 -3.7002c0.900391 0 3.2998 -0.5 4.2998 -0.799805c-4 -0.700195 -9.39941 -4.40039 -11 -6.2002c0.299805 2.2002 1 4.2002 0.5 5.59961c-0.799805 2 -3 2.7998 -7.7998 1.7998
+c3.2002 3.2002 9.7002 5.10059 10.2002 6.90039zM327.1 253.6c0 0 -0.899414 3 -4.19922 4.30078c0.699219 -2.2002 1.5 -4.30078 4.19922 -4.30078zM366 249.9l0.700195 0.699219c0.5 0.400391 1.59961 0.900391 2.7002 1.40039v-18.4004
+c-1.7002 0.800781 -3.5 1.10059 -5.60059 1.10059c-2.39941 0 -5 -0.5 -5 -0.5c-0.5 0.5 -3.59961 2.89941 -5.09961 3.2002c4.09961 -4.30078 0.5 -9.80078 -3 -7.2002v15.7002c0.700195 0.799805 1.2998 1.7998 2.09961 2.59961
+c1.7002 2.09961 4.60059 3.40039 7.5 3.40039c1.7998 0 3.60059 -0.400391 4.7002 -1.40039zM79.9004 142.1c22 -6.39941 19.3994 -20.0996 19.3994 -25.1992c0 -7.80078 -3.2002 -13.6006 -9.89941 -17.6006c-12.6006 -7.39941 -24.7002 -5.89941 -86.4004 -5.89941
+l8.40039 8.59961v32.2998l-11.4004 14.6006h11.2998v29.5l-8.2998 8.59961h56.0996c12.9004 0 37 -4.40039 37 -25c0 -1.90039 1 -15.2998 -16.1992 -19.9004zM38.5996 169.6v-20.8994c10.6006 0 29.6006 -3.2998 29.6006 8.7998v3
+c0 9.90039 -9.60059 9.09961 -29.6006 9.09961zM38.5996 110.4c20.4004 0 32.9004 -1.90039 32.9004 9.2998h-0.200195v4.5c0 11.0996 -20.5 8.7998 -32.7002 8.7998v-22.5996zM139.8 129.7v-15.4004l60.1006 0.200195l-14.1006 -21.2002h-81.2002l7.40039 8.2002v77.0996
+l-7.40039 8.2002l73.5 0.200195v-0.200195l14.1006 -21h-52.4004v-14.8994h37.2002l-14.0996 -21.2002v-0.200195zM354.5 189.8c73.7998 0 77.5996 -99.2998 -0.299805 -99.2998c-77.2002 0 -73.6006 99.2998 0.299805 99.2998zM354.2 112.3
+c39 0 37 55.2002 0.200195 55.2998c-37.1006 0 -37.6006 -55.2998 -0.200195 -55.2998zM262.9 120.6l0.199219 -19l7.2002 -8.19922h-42.5996l7.7002 8.19922l-0.200195 19.4004l-44.1006 65.7998h44.9004l-6.40039 -7.2002l21 -37.1992h0.300781l20.5 37.1992
+l-6.10059 7.2002h41.7002zM234.5 271.9c-9.09961 6.69922 -9.5 14.0996 -9.59961 14.8994c7.2998 -4.2998 9 -4 39.8994 -4c-5.7998 0 24 3.10059 32.2002 -22.8994c-0.400391 0 -8.40039 -4.80078 -10.4004 -7.90039c5.30078 1.90039 8.90039 1.09961 9 1.09961
+c-8 -5.09961 -9.59961 -14.7998 -9.59961 -20.5c0.900391 2.10059 2.7002 3.7002 2.7002 3.5c-0.600586 -2.5 -1.40039 -7 -0.799805 -12c-8.60059 -7.09961 -16 -8.59961 -26 -8.59961h-35.1006c0.400391 0.0996094 7.7998 4.5 7.90039 4.59961
+c1.89941 1.10059 2.7002 2.2002 2.7002 6.40039v38.7998c0 4.2002 -1.30078 5.2998 -2.90039 6.60059zM256 266.4v-34.6006c4.7002 0 23.0996 -3.39941 23.0996 17.2998c0 20.6006 -18.5 17.3008 -23.0996 17.3008zM484.9 186.8l39.1992 -0.0996094l-7.39941 -8.2998
+v-85.2002h-21.2998c-4 12.7002 -44.8008 45 -48.5 55.5996h-0.300781v-47.3994l7.40039 -8.2002h-39l7.2002 8.2998v76.9004l-7.40039 8.5h31.6006c2.89941 -9.40039 39.7998 -36.5 45.1992 -50.9004h0.300781v42.5zM378.2 282.9
+c32.7002 -1.60059 33.7998 -29.8008 33.7998 -33.6006c0 -6.7002 -3.2998 -34 -36.7002 -34h-0.299805c3.59961 4.2998 3.5 11.9004 -2.2002 16.2998c1.2002 0 19.7002 -3.19922 19.7002 17.3008c0 20.6992 -18.4004 17.2998 -23.0996 17.2998v-4.2998
+c-5.40039 0.799805 -7.40039 -0.300781 -7.5 -0.300781c2.09961 1.80078 4.5 2.60059 6.09961 2.90039c-7.09961 1.59961 -13.5996 -2.40039 -14.5996 -3.5c0.799805 1.7998 2.39941 3.40039 3.5 4.5c-2.30078 -0.799805 -4.30078 -1.90039 -6.10059 -3
+c0 5.2002 0.200195 7.5 -2.89941 9.5c-9.10059 6.59961 -9.5 14.2002 -9.60059 14.9004c7.10059 -4.2002 7.7002 -4 39.9004 -4z" />
+ <glyph glyph-name="dev" unicode=""
+d="M120.12 239.71c3.87012 -2.90039 5.82031 -7.25977 5.83008 -13.0596v-69.6504c0 -5.80957 -1.94043 -10.1602 -5.82031 -13.0596c-3.87988 -2.90039 -7.76953 -4.35059 -11.6494 -4.35059h-17.4502v104.47h17.4395c3.87988 0 7.77051 -1.44922 11.6504 -4.34961z
+M404.1 416c24.2002 0 43.8408 -19.5898 43.9004 -43.7998v-360.4c-0.0595703 -24.21 -19.6904 -43.7998 -43.9004 -43.7998h-360.199c-24.2002 0 -43.8408 19.5898 -43.9004 43.7998v360.4c0.0595703 24.21 19.7002 43.7998 43.9004 43.7998h360.199zM154.2 156.81
+l-0.00976562 70.9307c-0.0107422 18.8193 -11.9307 47.2793 -47.3701 47.2793h-47.3799v-165.46h46.3994c36.75 -0.0595703 48.3604 28.4404 48.3604 47.25zM254.88 245.47l0.00976562 29.5205h-63.1895c-11.1504 -0.280273 -19.9805 -9.54004 -19.71 -20.6904v-125.109
+c0.279297 -11.1602 9.55957 -19.9805 20.7197 -19.6904h62.1797v29.5703h-53.29v38.4102h32.5703v29.5693h-32.5703v38.4199h53.2803zM358.52 130.18l38.4609 144.801h-32.5801l-29.5703 -113.721l-29.71 113.721h-32.5703l38.5303 -144.801
+c10.5898 -24.6299 34.2402 -30.75 47.4395 0z" />
+ <glyph glyph-name="fantasy-flight-games" unicode="" horiz-adv-x="512"
+d="M256 415.14l223.14 -223.14l-223.14 -223.14l-223.14 223.14zM88.3398 192.17c11.3447 -11.2461 29.7705 -29.4893 41.1299 -40.7197c20.1602 19.8799 40.46 39.8994 61.8506 60.9902c12.0596 -12.5801 24.5195 -25.5703 36.54 -38.1104
+c12.0293 11.6895 23.7393 23.0596 35.6895 34.6602c-6.99023 7.4502 -32.1494 32.8301 -35.0898 35.7793c-1.91016 1.9209 -2.29004 3.2207 -0.120117 5.35059c15.5801 15.2295 39.21 17.79 56.9805 5.09961c7.98926 -5.70996 14.2998 -11.6396 48.5098 -43.9502
+c10.8203 11.1504 22.2295 22.8506 33.5 34.6904c0.490234 0.520508 0.0996094 2.63965 -0.580078 3.37988c-0.0898438 0.100586 -37.5195 40.6006 -62.1504 59c-33.5801 25.0801 -78.3193 23.0605 -119.77 -18.6895c-84.5703 -85.1807 -94.5303 -95.4805 -96.4902 -97.4805z
+M323.16 90.5703c18.8203 18.79 80.3301 80.6396 100.5 101.5c-13.7305 13.4492 -27.1797 26.6299 -40.8604 40.0293c-20.0098 -19.7393 -40.2402 -39.6895 -61.25 -60.4199c-12.3301 12.8301 -24.8799 25.8799 -37.25 38.75
+c-1.25977 -0.689453 -1.64941 -0.80957 -1.91016 -1.06934c-10.7295 -10.7705 -21.4199 -21.5801 -32.21 -32.29c-2.22949 -2.20996 -0.519531 -3.35059 0.800781 -4.69043c10.5791 -10.7402 21.1797 -21.4502 31.7695 -32.1797
+c3.5498 -3.60059 3.54004 -3.85059 -0.139648 -7.24023c-16.8008 -15.4697 -40.8408 -16.54 -59.3203 -1.7998c-7.62012 6.08008 -11.6602 10.1797 -44.6797 42.0898c-11.5801 -11.8896 -23.3203 -23.9404 -35.3701 -36.3096
+c33.5498 -34.7607 50.8496 -53.3408 72.9297 -66.8408c28.9004 -17.6699 71.5 -14.96 106.99 20.4707zM256 448l256 -256l-256 -256l-256 256zM16 192l240 -240l240 240l-240 240z" />
+ <glyph glyph-name="penny-arcade" unicode="" horiz-adv-x="640"
+d="M421.91 283.73c7.33984 -16.2705 2.29004 -5.07031 24.6299 -54.6807l-39.7305 -10.6094c13.7002 59.2295 10.6104 45.8398 15.1006 65.29zM215.82 232.62c32.5 8.99023 41.9492 -37.6396 -0.350586 -47.4297c-14.2002 -3.77051 -6.64941 -1.75 -34.8193 -9.34082
+l-4.45996 46.1904c28.3193 7.5498 19.4395 5.17969 39.6299 10.5801zM541.98 258.81c75.7998 -37.9092 98 -76.3193 97.9893 -104.47c2.10059 -78.8496 -183.3 -130.33 -399.89 -84.8301c0.540039 -13 -8.00977 -24.6494 -20.5801 -28.0195
+c-125.54 -33.54 -117.35 -31.75 -122.53 -31.7598c-14.3701 -0.0107422 -26.4102 10.8896 -27.7998 25.1992l-4.2998 44.4805c-0.0683594 0.724609 -0.125 1.90332 -0.125 2.63184c0 10.5811 8.01758 22.2461 17.8945 26.0381l-1.73926 17.8799
+c-50.2305 28.2598 -80.9004 61.8701 -80.9004 95.3701c0 72.9199 144.26 113.4 309.41 98.3701c2.68945 7.54395 11.1514 15.3438 18.8896 17.4102c96.8701 25.9092 65.3203 17.4795 135.59 36.2295c13.1602 3.50977 26.9307 -2.95996 32.6201 -15.3301zM255.14 149.7
+c17.5 4.0498 40.2363 19.1562 50.75 33.7197c21.6006 32.5898 14.1104 105.561 -42.5498 104.43c-16.04 -0.229492 -8.07031 0.890625 -186.22 -46.6494l4.34961 -44.5l20.1201 5.38965l11.1104 -114.64l-20.0205 -5.35059l4.30078 -44.5195l115.31 30.7803
+l-4.50977 44.5098l-20.5303 -5.50977l-2.45996 23.5498l48.4404 12.9102zM454.32 133.08l108.55 28.96l-4.2998 44.4795l-20.79 -5.55957l-66.6699 145.47c-70.5801 -18.8301 -42.2305 -11.25 -135.591 -36.2393l4.2002 -44.4805l17.1504 4.55957l-33.0801 -126.47
+l-20.9902 -5.58984l4.45996 -44.4297l112.851 30.0693l-4.05078 39.54l-19.1992 -5.12012l4.09961 17.54l57.7598 15.4209l6.61035 -14.6807l-14.9004 -3.97949z" />
+ <glyph glyph-name="wizards-of-the-coast" unicode="" horiz-adv-x="640"
+d="M219.19 102.31c7.44922 5.80078 16.2598 0.680664 21.7295 -7.0791c7.08984 -10.1201 6.24023 -18.1602 -0.259766 -23.04c-7.62012 -6.24023 -17.0898 0.129883 -21.7305 6.5498c-10.8096 15.1299 -1.63965 22.1895 0.260742 23.5693zM555.94 26.3701
+c1.30957 4.4502 3.92969 10.21 3.93945 20.1699c0 34.04 -41.6299 64.4102 -100.03 68.0801c-53.1592 3.39941 -120.46 -15.4502 -184.35 -73.8506l-0.790039 0.260742c1.58008 10.4697 -0.780273 16.2295 -3.40039 21.21l0.260742 1.56934
+c64.4199 51.3203 134.069 66.5107 188.8 60.4902c61.0098 -6.54004 104.479 -39.54 101.34 -78.0303c-0.790039 -9.68945 -2.88965 -15.71 -4.97949 -19.8994c-1.34082 -1.66992 -1.13086 -1.7002 -0.790039 0zM392.28 207.58
+c-0.530273 7.07031 3.13965 11.7803 6.7998 15.46c3.66992 3.91992 14.9297 10.4697 14.9297 10.4697s-1.2998 -26.4502 -2.08984 -29.8496c-1.04004 -3.92969 -4.96973 -6.81055 -10.4697 -6.5498c-4.98047 0.259766 -8.37988 3.39941 -9.16992 10.4697zM342.26 358.68
+c147.17 0 275.48 -86.6797 291.21 -196.939c0 0 -3.66992 -1.31055 -9.68945 -4.4502c0 -0.259766 1.0498 -10.7402 0.259766 -16.5c-0.259766 -1.83008 -1.0498 -1.0498 -1.0498 0c-0.270508 5.24023 -1.57031 11.5303 -2.36035 14.9297
+c-4.70996 -2.60938 -10.21 -6.54004 -15.9697 -11.7793c0 0 4.70996 -10.21 4.70996 -25.9209c0 -21.21 -8.37988 -32.9893 -16.5 -37.9697l-0.259766 0.520508c9.16992 9.16992 12.5693 21.4795 12.5693 31.9492c0 13.8701 -6.80957 33.25 -14.3994 41.3701
+c0 0 4.4502 -8.12012 6.80957 -17.8096c0 0 -21.21 -21.4697 -26.9697 -62.3203c0 0 -3.66992 9.16992 -10.7402 16.2402c0 0 12.0498 -15.4502 12.0498 -38.2305c0 -19.3799 -12.8398 -37.4395 -27.5 -48.1797c-0.989258 0 -0.790039 -0.169922 -0.790039 0.790039
+c15.71 12.8301 22.2607 28.0205 22.2607 46.3506c0 38.2295 -49.2305 80.3896 -130.15 80.3896c-96.1104 0 -181.74 -58.1299 -236.99 -128.05l-1.0498 0.259766c-40.3203 120.979 -135.64 185.66 -196.13 202.16c-2.09961 0.519531 -1.83984 0.790039 -0.790039 1.30957
+c12.3096 14.4004 136.96 151.88 341.47 151.88zM243.02 69.0596c16.8408 14.5908 4.99023 30.7705 4.71094 31.1602c-4.08008 5.99023 -16.3105 16.8506 -31.1602 5.5c-10.9502 -8.37988 -11.6406 -22.8896 -4.19043 -32.4697
+c6.44043 -8.26953 19.5801 -13.1797 30.6396 -4.19043zM245.11 205.49l1.83008 -8.11035l-3.6709 4.4502l-14.1396 -26.71l24.6201 -28.7998l12.5703 6.01953l-11.7803 70.96zM263.7 87.9102c3.41016 2.35938 7.33984 4.97949 9.67969 6.57031l-0.259766 0.259766
+c-1.56055 -0.780273 -3.11035 -1.0498 -12.5703 15.9697v0.259766c6.87012 5.16016 8.45996 4.89062 11.5205 5.5l0.259766 0.260742c-1.31055 3.66992 -1.31055 3.66992 -1.83008 5.5h-0.259766c-3.95996 -3.31055 -1.4707 -1.58008 -11.5205 -7.86035h-0.259766
+c-1.83008 3.13965 -4.19043 7.33008 -5.75977 9.68945v1.31055c4.4502 3.91992 10.2197 6.7998 12.3096 7.58984c2.87988 1.0498 4.19043 0.520508 5.24023 0.259766l0.259766 0.520508c-1.30957 1.83008 -2.08984 2.87988 -3.39941 4.70996l-0.520508 0.259766
+c-9.9502 -5.5 -17.54 -9.9502 -25.3994 -15.71l0.259766 -0.519531c1.30957 0.259766 3.13965 -0.260742 4.4502 -2.62012c15.04 -25.0801 19.5898 -27.5908 17.54 -31.6904zM318.96 120.38v0.25c-1.99023 0 -2.34961 -1.37012 -14.6602 30.6396v0.260742
+c4.95996 1.85938 8.78027 4.37988 12.3105 2.62012l0.259766 0.519531l-3.13965 4.98047l-0.520508 0.259766c-2.22949 -0.929688 -20.4697 -8.00977 -27.7598 -12.5703l-0.259766 -0.519531l1.0498 -5.76074h0.519531c1.0498 3.68066 9.7998 7.33008 9.9502 7.33008
+l0.259766 -0.259766c12.9404 -29.7598 13.0703 -29.8799 11.7803 -32.4697l0.259766 -0.259766c3.93066 2.09961 6.81055 3.40918 9.9502 4.97949zM363.73 136.88c-0.780273 0.520508 -2.09082 1.31055 -2.63086 3.92969c-1.56934 6.02051 -4.70996 20.1709 -6.2793 26.4502
+c-0.530273 1.57031 -0.530273 3.14062 0.519531 4.4502l-0.259766 0.259766c-3.41016 -0.529297 -6.29004 -1.30957 -10.7402 -2.35938v-0.260742c1.57031 -0.529297 2.10059 -2.09961 2.62012 -3.92969l2.62012 -9.42969l-0.259766 -0.259766
+c-3.40039 -1.05078 -8.90039 -2.62012 -12.8301 -3.93066h-0.259766c-0.780273 2.10059 -1.83008 5.75977 -3.14062 9.69043l0.259766 4.70996l-0.259766 0.259766c-4.71973 -1.30957 -7.59961 -2.34961 -10.7402 -3.40039v-0.519531
+c1.05078 0 2.10059 -1.30957 2.62012 -3.13965c1.0498 -3.40039 8.12012 -24.0908 9.16992 -27.2305c0.790039 -2.09961 0.790039 -3.66992 -0.259766 -4.97949l0.259766 -0.260742c3.14062 1.31055 6.54004 2.87988 10.21 3.93066v0.519531
+c-1.0498 0.259766 -2.08984 0.780273 -2.87988 3.13965c-1.0498 3.93066 -3.39941 11.2607 -4.18945 13.8809l0.259766 0.259766c3.92969 1.30957 9.42969 3.13965 12.8301 3.92969l0.259766 -0.259766c0.530273 -2.09961 2.62012 -10.2197 3.66992 -13.6201
+l-0.519531 -4.4502l0.259766 -0.259766c4.4502 1.57031 5.5 1.83008 9.69043 2.87988zM395.94 143.69c0.529297 1.8291 1.0498 3.65918 1.5791 6.04004h-0.259766c-2.0293 -4.06055 -15.0898 -5.09082 -16.2402 -4.71094l-0.259766 0.260742
+c-0.519531 3.13965 -1.83008 10.4795 -2.08984 12.5693l0.259766 0.260742c8.06055 0.899414 5.40039 1.0293 10.21 0h0.260742c0 3.40918 0.259766 3.66992 0.259766 5.23926h-0.259766c-5.98047 -2.2998 -1.2207 -0.679688 -10.7402 -2.35938l-0.259766 0.259766
+c-0.520508 3.40039 -1.31055 8.37988 -1.57031 9.9502l0.259766 0.259766c12.9004 2.41016 15.1006 0.349609 16.2402 -0.790039l0.259766 0.259766c-0.780273 2.36035 -1.0498 3.14062 -1.57031 5.5l-0.259766 0.260742
+c-4.71973 -0.260742 -15.71 -1.05078 -24.8799 -2.62012l-0.790039 -0.520508c1.83008 -0.790039 2.36035 -1.83984 2.62012 -3.66992c1.58008 -7.59961 3.41016 -18.3301 4.98047 -26.1895l-0.790039 -4.19043l0.259766 -0.259766
+c8.37988 1.83008 17.8096 3.66992 22.5195 4.18945zM406.68 188.2c3.14062 1.56934 7.33008 5.5 7.33008 5.50977c1.95996 -4.58008 0.970703 -2.70996 4.19043 -7.86035c10.1494 -0.459961 8.60938 0.0205078 20.4297 -1.0498l0.790039 4.70996
+s-4.18945 0 -5.75977 1.83008c-1.0498 1.31055 -1.31055 3.14062 -1.57031 5.5c0 2.36035 0.270508 16.5 0.790039 20.6904c0.259766 4.18945 2.08984 20.4199 2.08984 23.04c0.260742 2.62012 1.0498 8.91016 0.260742 12.0498
+c-4.82031 19.2803 -24.4307 17.8096 -50.0205 16.2402l-5.24023 -16.2402l2.62012 -2.87988c16.5498 16.5498 37.6201 4.56934 29.5898 -5.75977c-5.18945 -6.9209 -19.7393 -8.90039 -28.54 -17.0205c-6.47949 -6.49023 -12.2393 -20.9004 -5.5 -31.6904
+c6.12988 -11.0391 17.29 -9.96973 17.54 -9.94922c2.87988 0 6.55078 0.519531 11 2.87988zM443.86 166.99c0 1.83984 0.269531 4.18945 0.269531 5.25l-0.259766 0.519531c-14.3604 8.98047 -26.8604 0.919922 -28.7998 -9.9502
+c-2.83984 -16.0898 15.3594 -25.46 25.6602 -18.5898l0.519531 0.520508c0 0.259766 1.30957 4.4502 1.83008 6.2793l-0.259766 0.260742c-6.39062 -9.58008 -23.3203 -6.87012 -20.6904 10.21c1.91016 12.6602 15.3799 16.0801 21.7305 5.5zM449.63 254.72
+c0 0 4.96973 -0.790039 4.99023 -3.66016c0 -2.08984 -4.98047 -55.25 -4.98047 -55.25c-0.109375 -1.48926 -0.339844 -6.80957 -7.58984 -6.80957l-0.790039 -4.70996c18.3906 -2.83008 19.3701 -3.04004 36.9199 -7.33008l0.520508 4.70996
+c-13.0498 3.91992 -9.74023 7.37012 -4.4502 46.0898c1.09961 0.870117 8.62012 7.14062 20.6904 0.790039l11.2598 11.2598s-9.69043 8.90039 -14.9307 7.33008c-5.23926 -1.30957 -15.4492 -10.7393 -15.4492 -10.7393l1.56934 17.54
+c-8.10938 4.0498 -27.0693 7.3291 -27.7598 7.3291v-6.5498zM460.62 140.28c9.42969 -2.35059 16.2402 2.62012 18.8496 11.5195c2.08984 7.60059 -1.56934 16.7598 -10.7393 19.3799c-6.54004 2.10059 -15.7109 -0.779297 -18.8506 -10.21
+c-3.39941 -9.68945 2.62012 -18.5996 10.7402 -20.6895zM502.78 130.59c-0.780273 1.31055 -1.04004 2.10059 -0.799805 3.91016c1.22949 27.0098 1.5293 24.6602 1.0498 25.1396c-2.08984 0.790039 -5.5 2.09082 -7.58984 2.87988l-0.520508 -0.259766v-2.08984
+c-3.92969 -6.01953 -10.4795 -15.4502 -13.8799 -20.1602l-2.62012 -1.83008v-0.259766c2.08984 -0.259766 4.70996 -1.30957 6.02051 -1.57031v0.260742l0.790039 3.39941c0.789062 1.0498 2.35938 3.66992 3.66992 5.5c0.40918 0 2.25 -0.549805 7.06934 -2.35938
+c0.330078 -0.320312 0.330078 0.649414 -0.259766 -7.59082l-1.57031 -1.8291v-0.260742c1.57031 -0.519531 6.28027 -2.35938 8.64062 -2.87988zM498.07 220.41c-13.2207 -21.1504 -9.39062 -51.6006 9.66992 -52.9004c5.75977 -0.259766 9.42969 3.93066 9.68945 3.66992
+l-2.08984 -6.80957c8.91016 -4.21973 11.4404 -5.29004 17.8105 -8.63965l1.83008 4.44922c-6.14062 3.51074 -1.29004 11.25 24.6191 84.3203c-6.13965 6.45996 -10.2998 10.0596 -22.5195 20.4297l-1.83008 -3.66992c1.62988 -1.35938 6.79004 -5.00977 4.4502 -11.2598
+l-7.58984 -26.1904c-3.28027 12.79 -22.79 14.8701 -34.04 -3.39941zM527.4 141.07l2.35938 3.39941v0.520508c-3.41016 6.83008 -11.9395 7.41992 -14.6602 2.35938c-1.83984 -3.40918 0.260742 -7.06934 1.83008 -9.68945
+c1.57031 -2.87988 3.14062 -6.29004 2.08984 -8.37988c-2.31934 -4.62988 -8.94922 -0.680664 -8.37988 4.97949l-0.790039 -0.259766c-2.09961 -4.7998 -1.83008 -4.00977 -1.83008 -4.70996c3.05078 -6.09961 12.8105 -7.12988 15.4502 -0.790039
+c1.57031 3.15039 0.520508 6.80957 -1.0498 9.42969c-1.83008 3.40039 -4.18945 6.29004 -2.87988 8.37988c1.51953 2.65039 7.86035 0.470703 7.86035 -5.23926zM548.61 127.71l1.30957 3.91016l-0.259766 0.259766c-2.36035 2.08984 -8.64062 6.54004 -12.3105 8.90039
+h-0.259766l-3.13965 -3.40039v-0.259766c4.7998 -0.320312 3.37988 0.149414 6.01953 -1.83008v-0.259766c-2.62012 -4.9707 -6.0293 -11.2607 -9.16992 -17.0205l-2.08984 -1.30957l-0.259766 -0.259766l5.75977 -4.4502l0.259766 0.259766
+c-0.259766 0.530273 -0.519531 1.57031 0.790039 3.92969c2.87988 5.77051 6.28027 12.0508 8.64062 16.2402h0.259766c3.54004 -2.57031 2.49023 -1.43945 4.4502 -4.70996zM575.84 171.97l7.85059 10.46s-9.4209 18.8604 -23.04 16.5
+c-20.8408 -4.0293 -3.15039 -34.21 -2.09082 -38.2295c4.33008 -15.1299 -16.3193 -12.5605 -13.3496 5.24023l-2.87988 2.08984l-4.98047 -14.4004s11.7803 -11.2598 20.1602 -10.4697c8.12012 0.790039 13.8799 6.29004 13.8799 16.5
+c0 8.37988 -7.85938 22.7803 -7.85938 27.7598c0 6.86035 12.2695 4.75977 11.5195 -4.97949c-0.259766 -2.61035 -1.2998 -5.23047 -2.08984 -7.59082zM611.46 182.18c0.780273 -2.35938 1.57031 -1.83008 0.790039 0.270508
+c-32.4697 98.9795 -132.76 138.78 -199.8 139.83c-50.54 0.779297 -89.5605 -11.79 -131.98 -35.8799l20.6904 61.0098l-33.7803 -65.7305l-8.89941 20.9502c3.13965 1.04004 6.2793 2.08984 6.2793 2.08984l-2.62012 8.64062s-3.13965 -0.780273 -7.33008 -2.09082
+l-12.0498 28.2803l13.6201 -61.0098c-5.12012 2.55957 -19.0996 6.83008 -6.5498 19.3799l-2.62012 11c-6.97949 -2.21973 -13.2295 -3.62012 -32.21 -9.68945l-23.0801 11.5l59.1797 -42.6807l-4.70996 -2.08984l-17.2793 13.8799
+c2.23926 -5.13965 3.2998 -12.1699 4.70996 -19.6396l-28.54 -13.0898l-30.1104 36.1396l-17.2803 -9.16992l13.6201 -42.4199l-11.2598 -4.98047l94.2695 29.3301l-3.66992 -10.4697l-0.519531 3.13965l-13.0898 -3.39941l4.97949 -24.6201l-4.4502 -12.3105
+l-25.6592 30.6406l-39.8008 -10.21l18.8506 -58.9199c-60.1299 62.3994 -67.7002 66.3994 -61.7998 75.6797c2.09961 2.87988 7.85938 7.07031 7.85938 7.07031l-4.18945 7.06934c-26.7803 -18.3496 -27.8398 -19.1494 -58.4004 -42.6797l4.98047 -6.01953
+s8.12012 5.75977 13.6201 5.5c7.81934 -0.350586 1.76953 2.93945 113.659 -98.7305l11.7803 8.37988l-27.7598 93.4805l35.8799 -42.1602l-4.70996 -13.8799l41.9004 88.5098c34.6699 -80.5098 29.1494 -66.9502 32.9893 -78.8203l-33.5195 67.2998l-2.36035 -4.44922
+c1.2998 -1.30078 -0.919922 3.05957 22.7803 -59.4404c3.22949 -8.88965 -1.10059 -9.88965 -5.5 -12.8301l2.36035 -4.70996c15.3594 6.79004 22.9395 9.54004 39.0195 14.4004l-1.0498 4.97949c-8.89062 -1.33008 -10.1006 0.169922 -12.0498 4.4502
+c-1.05078 2.09961 -14.1504 40.0703 -20.4307 58.6602l-10.21 4.97949l-2.35938 8.12012l61.54 -36.6602l-13.0908 -43.21c12.1904 3.26074 27.0303 6.74023 49.4902 9.9502l-0.259766 26.71l-4.98047 -1.0498c-0.669922 -13.7998 -6.0293 -22.0801 -19.6396 -22.7803
+l22.2598 80.3906c-27.6201 -0.450195 -59.2695 -7.19043 -66.7695 -8.90039l3.92969 -16.5l-25.1396 19.6396l91.3896 20.6904l-85.6299 -9.16992c38.4902 22.5195 79.3398 39.0195 132.76 37.9697c131.46 -2.08984 180.95 -99.2402 191.95 -129.62zM203.48 295.57
+l2.35938 -8.64062c7.82031 2.61035 10.8604 2.36035 11.2598 2.36035l-9.42969 7.58984c-2.36035 -0.790039 -4.18945 -1.30957 -4.18945 -1.30957zM347.24 257.07l-11.5303 -37.71l-21.7295 17.0195c6.7998 25.5 31.6895 21.29 33.2598 20.6904zM318.43 380.93
+c224.94 0 321.83 -143.76 321.57 -227.55c0 -11 -0.269531 -17.5498 -0.790039 -19.6396c-0.259766 -2.10059 -1.0498 -0.790039 -1.0498 0.519531v9.9502c0 106.58 -121.51 223.37 -301.67 223.37c-61.2705 0 -103.69 -12.0498 -110.24 -13.8799l-1.57031 0.259766
+c-6.80957 7.58984 -12.8301 9.69043 -21.21 11.7803v0.790039c8.91016 2.34961 56.5605 14.3994 114.96 14.3994zM529.49 211.25c-8.61035 -34.4502 -13.6504 -35.3496 -18.3301 -35.3604c-7.33008 0 -6.81055 9.43066 -6.02051 14.9307
+c0.879883 9.72949 7.40039 34.6494 17.0205 33.5195c7.33008 -0.780273 8.63965 -7.33008 7.33008 -13.0898zM467.96 168.3c3.40039 -0.780273 7.84961 -4.4502 5.23047 -14.3896c-2.88086 -11.2598 -8.11035 -11.79 -11.7803 -10.7402
+c-5.5 1.31055 -7.85059 7.84961 -6.02051 14.6602c3.14062 11.2598 9.9502 11.2598 12.5703 10.4697zM491 147.35v0.270508c1.0498 1.83008 5.5 8.63965 6.5498 9.9502c-0.269531 -3.66992 -0.790039 -10.2207 -0.790039 -12.0508
+c-2.62012 0.780273 -3.92969 1.31055 -5.75977 1.83008z" />
+ <glyph glyph-name="think-peaks" unicode="" horiz-adv-x="576"
+d="M465.4 38.5996l-206.2 353.801l-204.2 -352.101l-32 0.299805l236.2 407.4l206.2 -353.9l55.0996 95l32 -0.299805zM110.1 82.7002l149.601 257.899l235.8 -404.6l-32.5 0.0996094l-203.4 349.101l-117.399 -202.5h-32.1006z" />
+ <glyph glyph-name="reacteurope" unicode="" horiz-adv-x="576"
+d="M250.6 236.26l2 6.7998l-5.69922 4.30078l7.19922 0.0996094l2.30078 6.7998l2.2998 -6.7998l7.09961 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.7998 4.10059zM314.3 236.26l1.90039 6.7998l-5.7002 4.30078l7.2002 0.0996094l2.2998 6.7998l2.2998 -6.7998
+l7.2002 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.80078 4.10059zM223 185.76c4.90039 0 3.7998 -3.89941 3.7998 -13.7598c0 -10.2998 -6.7002 -14.0996 -16.7998 -14.0996h-0.200195c-10.0996 0 -16.7998 3.69922 -16.7998 14.0996v40.0596
+c0 9.90039 6.7002 14.1006 16.7998 14.1006h0.200195c10.0996 0 16.7998 -4.2002 16.7998 -14.1006c0 -8.39941 0.900391 -12.1992 -3.7998 -12.2998h-3.40039c-4.5 0 -3.7998 3.2998 -3.7998 10.5c0 4.7002 -2.2998 6.10059 -5.7998 6.10059
+s-5.7998 -1.40039 -5.7998 -6.10059v-36.5996c0 -4.7002 2.2998 -6.10059 5.7998 -6.10059s5.7998 1.40039 5.7998 6.10059c0 8.09961 -1 12.0996 3.7998 12.0996h3.40039zM142.3 168.36c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961
+c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-21.8994c-2.5 0 -3.80078 1.2998 -3.80078 3.7998v59.0996c0 2.5 1.30078 3.90039 3.7002 3.80078h21.7002c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-14.4004v-18.2998h11.4004
+c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-11.4004v-19.2998h14.7002zM100.3 186.86l8.10059 -23.9004c0.799805 -2.59961 -0.400391 -4.40039 -3.2002 -4.40039h-3.2998
+c-0.0820312 -0.00585938 -0.21582 -0.0107422 -0.297852 -0.0107422c-1.81543 0 -3.6084 1.43848 -4.00293 3.21094l-7.39941 23.5h-5.60059v-22.8994c0 -2.5 -1.2998 -3.80078 -3.7998 -3.80078h-3.39941c-2.5 0 -3.80078 1.30078 -3.80078 3.80078v59.0996
+c0 2.5 1.30078 3.7998 3.80078 3.7998h13.3994c10.1006 0 16.7998 -4 16.7998 -14.0996v-11.9004c0 -6.39941 -2.69922 -10.3994 -7.2998 -12.3994zM96.5 200.86v8.69922c0 4.80078 -2.5 6.10059 -6.09961 6.10059h-5.80078v-20.9004h5.80078
+c3.59961 0 6.09961 1.2998 6.09961 6.10059zM176 222l11.2002 -59.2002c0.5 -2.7002 -0.799805 -4.09961 -3.40039 -4.09961h-3.5c-0.100586 -0.00976562 -0.264648 -0.0185547 -0.366211 -0.0185547c-1.94531 0 -3.61816 1.57617 -3.7334 3.51855l-1.7998 11.2998h-12.2002
+l-1.7998 -11.2998c-0.116211 -1.94238 -1.78809 -3.51855 -3.7334 -3.51855c-0.101562 0 -0.265625 0.00878906 -0.367188 0.0185547h-3c-2.5 0 -3.89941 1.39941 -3.39941 4.09961l11 59.2002c0.135742 1.88477 1.78027 3.41504 3.66992 3.41504
+c0.0908203 0 0.239258 -0.00683594 0.330078 -0.0146484h6.89941c0.110352 0.0117188 0.290039 0.0205078 0.401367 0.0205078c1.89844 0 3.60059 -1.53223 3.79883 -3.4209zM163.7 182.7h9.39941l-4.69922 29.7002zM253 162.5c0 -2.45996 -1.2998 -3.83984 -3.7998 -3.7998
+h-3.40039c-2.5 0 -3.7998 1.2998 -3.7998 3.7998v53.2002h-7.2998c-2.5 0 -3.7998 1.2998 -3.7998 3.7998v2.09961c0 2.5 1.2998 3.80078 3.7998 3.80078h25.7998c2.5 0 3.7998 -1.30078 3.7998 -3.80078v-2.09961c0 -2.5 -1.2998 -3.7998 -3.7998 -3.7998h-7.5v-53.2002z
+M501 163.3c0.0449219 0.00390625 0.119141 -0.0322266 0.164062 -0.0322266c1.01562 0 1.84082 -0.824219 1.84082 -1.83984c0 -0.0351562 -0.00292969 -0.0927734 -0.00488281 -0.12793v-0.799805c0.00195312 -0.0273438 0.00292969 -0.0722656 0.00292969 -0.100586
+c0 -0.999023 -0.810547 -1.80957 -1.81055 -1.80957c-0.0527344 0 -0.139648 0.00488281 -0.192383 0.00976562h-22.5c-0.0527344 -0.00488281 -0.139648 -0.00976562 -0.192383 -0.00976562c-1 0 -1.81055 0.810547 -1.81055 1.80957
+c0 0.0283203 0.000976562 0.0732422 0.00292969 0.100586v63c-0.00878906 0.0625 -0.0166016 0.166016 -0.0166016 0.229492c0 0.893555 0.725586 1.62012 1.62012 1.62012c0.111328 0 0.289062 -0.0224609 0.396484 -0.0498047h22.2002
+c0.0644531 0.00878906 0.169922 0.015625 0.235352 0.015625c0.977539 0 1.77051 -0.792969 1.77051 -1.76953c0 -0.0400391 -0.00292969 -0.105469 -0.00585938 -0.145508v-0.800781c0.00195312 -0.03125 0.00292969 -0.0820312 0.00292969 -0.113281
+c0 -1.04297 -0.84668 -1.88965 -1.88965 -1.88965c-0.03125 0 -0.0820312 0.000976562 -0.113281 0.00292969h-19.1006v-25.7998h16.1006c0.03125 0.00195312 0.0820312 0.00390625 0.113281 0.00390625c1.04297 0 1.88965 -0.84668 1.88965 -1.89062
+c0 -0.03125 -0.000976562 -0.0820312 -0.00292969 -0.113281v-0.799805c0.00195312 -0.03125 0.00292969 -0.0820312 0.00292969 -0.113281c0 -1.04297 -0.84668 -1.88965 -1.88965 -1.88965c-0.03125 0 -0.0820312 0.000976562 -0.113281 0.00292969h-16.1006v-26.7002
+h19.4004zM407.9 226.2c10.0996 0 15.2998 -4.74023 15.2998 -14.1006v-40.0996c0 -9.2998 -5.2002 -14.0996 -15.2998 -14.0996h-0.800781c-10.0996 0 -15.2998 4.7998 -15.2998 14.0996v40.0996c0 9.40039 5.2002 14.1006 15.2998 14.1006h0.800781zM418.1 173.8v36.6006
+c0 7.89941 -3 11.0996 -10.5 11.0996s-10.5 -3.2002 -10.5 -11.0996v-36.6006c0 -8 3 -11.0996 10.5 -11.0996s10.4004 3.09961 10.5 11.0996zM371.6 188.3l10.6006 -27.2998c0.5 -1.2998 -0.100586 -2.2998 -1.5 -2.2998h-1.5
+c-0.0351562 -0.00195312 -0.0927734 -0.00390625 -0.128906 -0.00390625c-0.886719 0 -1.85938 0.673828 -2.1709 1.50391l-10.4004 27.2002h-11.5996v-26.9004c0.00390625 -0.0458984 0.0078125 -0.12207 0.0078125 -0.167969
+c0 -0.960938 -0.779297 -1.74023 -1.74023 -1.74023c-0.0458984 0 -0.12207 0.00390625 -0.167969 0.0078125h-1.2002c-0.0527344 -0.00488281 -0.139648 -0.00976562 -0.192383 -0.00976562c-0.999023 0 -1.81055 0.810547 -1.81055 1.80957
+c0 0.0283203 0.00195312 0.0732422 0.00292969 0.100586v63c-0.000976562 0.0273438 -0.00292969 0.0722656 -0.00292969 0.100586c0 0.999023 0.811523 1.80957 1.81055 1.80957c0.0527344 0 0.139648 -0.00488281 0.192383 -0.00976562h13.7002
+c10.0996 0 15.2998 -4.7002 15.2998 -14.1006v-9.7002c0 -7.19922 -3.09961 -11.6992 -9.2002 -13.2998zM365.2 192.2c7.5 0 10.5 3.16016 10.5 11v6.39941c0 8 -3 11.1006 -10.5 11.1006h-10.2002v-28.5h10.2002zM451.1 225.3c10.1006 0 15.3008 -4.7002 15.3008 -14.0996
+v-10.5c0 -9.2998 -5.2002 -14.1006 -15.3008 -14.1006h-10.5996v-26.0996c0.00488281 -0.0458984 0.0078125 -0.12207 0.0078125 -0.167969c0 -0.960938 -0.779297 -1.74023 -1.73926 -1.74023c-0.046875 0 -0.12207 0.00390625 -0.168945 0.0078125h-1.19922
+c-0.0537109 -0.00488281 -0.139648 -0.00976562 -0.193359 -0.00976562c-0.999023 0 -1.80957 0.810547 -1.80957 1.80957c0 0.0283203 0.000976562 0.0732422 0.00292969 0.100586v63c-0.00976562 0.0625 -0.0166016 0.166016 -0.0166016 0.229492
+c0 0.893555 0.725586 1.62012 1.62012 1.62012c0.111328 0 0.288086 -0.0224609 0.396484 -0.0498047h13.6992zM461.3 202.5v7.09961c0 7.90039 -3 11.1006 -10.5 11h-10.2002v-29.1992h10.2002c7.5 0 10.5 3.19922 10.5 11.0996zM259.5 140l7.09961 -0.0996094
+l-5.69922 -4.30078l2.09961 -6.7998l-5.7998 4.10059l-5.7998 -4.10059l2.09961 6.7998l-5.7002 4.30078l7.10059 0.0996094l2.2998 6.7998zM487.1 276.1c122.301 -46.0996 118.401 -132.54 -33.8984 -176.34c13.3994 -49.7002 18.0996 -101.899 0.0996094 -133.8
+c-3.7998 -6.7002 -16.7998 -27.7002 -47.5996 -27.7002c-41.5 0 -110.2 41.6006 -182.101 142c-42.7998 3.5 -72.1992 10.1006 -84.5996 13c-20.5 -82.2998 -6.7998 -125.3 15.5 -137.899c1.2002 -0.700195 38.4004 -27.2002 120.9 52.7998
+c3.39941 -3.5 6.79883 -6.90039 10.1982 -10.2002c-63.0996 -61.2002 -110.199 -71 -138.199 -55.2002c-32.4004 18.2998 -42.8008 72 -22.3008 153.9c-18.8994 5 -121.6 33.2002 -122.1 92.7998c-0.400391 40.9004 49.7998 74.7002 120.3 95
+c-13.3994 49.5996 -18.2002 101.8 -0.0996094 133.8c3.7998 6.74023 16.7998 27.7402 47.5996 27.7402c41.6006 0 110.3 -41.6396 182.2 -142.14c23.6113 -1.88379 61.5127 -7.70801 84.5996 -13c20.5 82 6.90039 125.1 -15.5 137.8
+c-1.2998 0.700195 -38.3994 27.2002 -120.899 -52.7998c-3.40039 3.5 -6.80078 6.89941 -10.2002 10.1992c52.2998 50.9404 103.7 74.6006 138.2 55.2402c33.8994 -19.2002 41.8994 -75.8994 22.2998 -153.899c9.98535 -2.61523 25.9346 -7.67773 35.5996 -11.3008z
+M135.901 411.16c-23.1006 -40.7998 1 -121.562 1.19922 -122.961c22.9912 5.78516 60.8018 12.3262 84.4004 14.5996c12.7793 18.6787 35.4922 47.4404 50.7002 64.2002c3.39941 -3.33301 6.7998 -6.74609 10.2002 -10.2393
+c-12.5371 -13.7451 -31.4434 -37.2207 -42.2002 -52.3994c14.8213 1.11914 38.9141 2.02734 53.7783 2.02734c11.082 0 29.0566 -0.504883 40.1211 -1.12793c-64.5 86.6006 -126.5 126.2 -163.3 126.2c-23 0 -32 -15.2002 -34.8994 -20.2998zM440.701 -27.1406
+c3.2998 6 21.5 38.5996 -1.2002 123c-4.09961 -1.10059 -37.0996 -9.90039 -84.4004 -14.6006c-12.7578 -18.6943 -35.4717 -47.4551 -50.6992 -64.2002c-3.40039 3.2998 -6.80078 6.7002 -10.2002 10.2002c12.5371 13.7461 31.4424 37.2207 42.2002 52.4004
+c-14.7715 -1.14258 -38.7842 -2.06934 -53.5996 -2.06934c-11.1328 0 -29.1875 0.524414 -40.3008 1.16895c64.5996 -86.7998 126.6 -126.2 163.3 -126.2c23.1006 0 32 15.2002 34.9004 20.3008zM449.801 111.459c25.6006 7.2998 85.9004 27.4004 105.7 62.5
+c1.40039 2.5 33.5 50.5 -72.5996 90.4004c-9.36914 3.51562 -24.8252 8.44336 -34.5 11c-3.60059 -12.9004 -7.90039 -26.1006 -12.8008 -39.5c-3.15723 -0.430664 -7.14453 -2.93945 -8.89941 -5.60059l-0.100586 0.100586
+c-1.6416 1.55762 -4.68848 3.48438 -6.7998 4.2998c5.7002 15 10.6006 29.7998 14.6006 44.2002c-7.2002 1.69922 -31.8008 7.59961 -72.2002 11.6992c16.7002 -24.5 27.8994 -44.0996 34.2998 -55.5c-3.50781 -1.14648 -8.16699 -4.46094 -10.4004 -7.39941
+c-13.5996 16.3994 -11 19.8994 -42.5 64.5c-13.752 0.96582 -36.1016 1.75 -49.8877 1.75c-17.2871 0 -45.292 -1.23145 -62.5117 -2.75c-16.9004 -25 -28.2998 -45.2002 -34.7998 -56.9004c-3.49707 -1.49023 -8.06738 -5.25391 -10.2002 -8.39941
+c-0.914062 2.88965 -3.78125 6.47363 -6.40039 8c6.10059 11.3994 16.9004 31 32.7998 55.2998c-39.5996 -4.60059 -65 -11.2002 -72 -13c4.30078 -14.1006 9.40039 -28.6006 15.2002 -43.2998c-0.71582 -0.522461 -1.74609 -1.50781 -2.2998 -2.2002
+c-1.5 1.89941 -4 5.2998 -14.4004 5.2998c-4.69922 12.2998 -8.7998 24.5 -12.3994 36.4004c-138.8 -40.3604 -158.4 -121.36 1.5 -164c3.59961 12.8994 7.7998 26 12.7002 39.3994c0.269531 -0.0146484 0.708008 -0.0273438 0.978516 -0.0273438
+c1.68359 0 4.33594 0.460938 5.9209 1.02734c3 -1.2002 5.2002 -1 8.40039 -1c-5.5 -14.5996 -10.2002 -28.8994 -14.1006 -42.8994c19.7119 -4.56055 52.0576 -9.80176 72.2002 -11.7002c-16.2998 23.8994 -27.5 43.3994 -33.7998 54.5996
+c8.7002 0 10.7002 1.60059 12.5996 3.2002c0.794922 -0.480469 2.13965 -1.15234 3 -1.5c15.3008 -26.7002 28.9004 -46.5996 36.8008 -57.7998c13.751 -0.96582 36.1006 -1.75 49.8857 -1.75c17.2871 0 45.2939 1.23145 62.5137 2.75
+c16.5 24.2998 27.7002 44 33.9004 55.2002c7.2998 0 9.7998 3 10.8994 4.19922c1.5332 -1.11426 4.2207 -2.54785 6 -3.19922c-15 -28 -28.6992 -48.9004 -32.1992 -54.2002c20.1172 2.22656 52.373 8.05078 72 13c-4.10059 13.7998 -9 27.8994 -14.7002 42.2002
+c1.65723 0.743164 4.07617 2.35645 5.39941 3.59961l0.100586 0.0996094c2.07227 -3.14648 6.8125 -5.7002 10.5811 -5.7002c0.0322266 0 0.0859375 0 0.119141 0.000976562c4.69922 -12.3008 8.7998 -24.5 12.3994 -36.4004zM335.401 225.459
+c0.0556641 0.00585938 0.145508 0.0107422 0.201172 0.0107422c1.05566 0 1.95117 -0.856445 1.99805 -1.91113v-51.5c0 -9.5 -5 -14.0996 -15.0996 -14.0996h-0.400391c-10.0996 0 -15.0996 4.5 -15.0996 14.0996v51.5
+c-0.00195312 0.0283203 -0.00292969 0.0732422 -0.00292969 0.100586c0 0.999023 0.810547 1.81055 1.81055 1.81055c0.0527344 0 0.139648 -0.00488281 0.192383 -0.0107422h1.2002c0.0615234 0.00878906 0.162109 0.0146484 0.224609 0.0146484
+c0.933594 0 1.69043 -0.756836 1.69043 -1.68945c0 -0.0625 -0.00683594 -0.163086 -0.015625 -0.225586v-49.7998c0 -8 2.60059 -11.0996 10.1006 -11.0996s10.0996 3.2002 10.0996 11.0996v49.7998c-0.00390625 0.046875 -0.0078125 0.12207 -0.0078125 0.168945
+c0 0.959961 0.779297 1.73926 1.74023 1.73926c0.0458984 0 0.121094 -0.00292969 0.167969 -0.0078125h1.2002zM321.701 139.999l7.09961 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.7998 4.10059l-5.80078 -4.10059l2.10059 6.7998l-5.7002 4.30078
+l7.09961 0.0996094l2.30078 6.7998zM290.601 132.599l7.10059 -0.0996094l-5.7002 -4.2998l2.09961 -6.7998l-5.7998 4.09961l-5.7998 -4.09961l2.09961 6.7998l-5.69922 4.2998l7.09961 0.0996094l2.2998 6.80078zM295.701 163.399
+c0.0507812 0.00488281 0.133789 -0.03125 0.185547 -0.03125c1.00977 0 1.83008 -0.819336 1.83008 -1.83008c0 -0.0664062 -0.00683594 -0.172852 -0.015625 -0.239258v-0.799805c0.00292969 -0.0400391 0.00585938 -0.105469 0.00585938 -0.145508
+c0 -0.977539 -0.792969 -1.77051 -1.77051 -1.77051c-0.0654297 0 -0.170898 0.00683594 -0.235352 0.015625h-22.5c-0.0537109 -0.00488281 -0.139648 -0.00976562 -0.193359 -0.00976562c-0.999023 0 -1.80957 0.810547 -1.80957 1.80957
+c0 0.0283203 0.000976562 0.0732422 0.00292969 0.100586v63c-0.00195312 0.0273438 -0.00292969 0.0722656 -0.00292969 0.100586c0 0.999023 0.810547 1.80957 1.80957 1.80957c0.0537109 0 0.139648 -0.00488281 0.193359 -0.00976562h22.2002
+c0.0644531 0.00878906 0.169922 0.015625 0.235352 0.015625c0.977539 0 1.77051 -0.792969 1.77051 -1.77051c0 -0.0400391 -0.00292969 -0.105469 -0.00585938 -0.145508v-0.799805c0.00195312 -0.03125 0.00292969 -0.0820312 0.00292969 -0.113281
+c0 -1.04395 -0.84668 -1.89062 -1.88965 -1.89062c-0.03125 0 -0.0820312 0.00195312 -0.113281 0.00390625h-19.1006v-25.7998h16.1006c0.03125 0.00195312 0.0820312 0.00292969 0.113281 0.00292969c1.04297 0 1.88965 -0.84668 1.88965 -1.88965
+c0 -0.03125 -0.000976562 -0.0820312 -0.00292969 -0.113281v-0.800781c0.00195312 -0.03125 0.00292969 -0.0820312 0.00292969 -0.113281c0 -1.04297 -0.84668 -1.88965 -1.88965 -1.88965c-0.03125 0 -0.0820312 0.000976562 -0.113281 0.00292969h-16.1006v-26.6992
+h19.4004zM288.301 262.799l2.2998 -6.7998l7.10059 -0.0996094l-5.7002 -4.30078l2.09961 -6.7998l-5.7998 4.10059l-5.7998 -4.10059l2.09961 6.7998l-5.69922 4.30078l7.09961 0.0996094z" />
+ <glyph glyph-name="adobe" unicode="" horiz-adv-x="512"
+d="M315.5 384h170.9v-384zM196.5 384l-170.9 -384v384h170.9zM256 241.9l107.5 -241.9h-73l-30.7002 76.7998h-78.7002z" />
+ <glyph glyph-name="artstation" unicode="" horiz-adv-x="512"
+d="M2 70.5996h315.1l59.2002 -102.6h-285.399h-0.0146484c-17.4814 0 -38.0381 12.6787 -45.8857 28.2998zM501.8 98c19 -29.4004 -0.0996094 -55.9004 -2 -59.0996l-40.7002 -70.5l-257.3 447.6h88.4004h0.0117188c17.0596 0 37.3936 -12.2305 45.3877 -27.2998zM275 143.5
+h-231l115.5 200z" />
+ <glyph glyph-name="atlassian" unicode="" horiz-adv-x="512"
+d="M152.2 211.6c66.2998 -70.7998 89.0996 -189.3 51.2002 -267.1c-2.40039 -5.2002 -7.60059 -8.5 -13.4004 -8.40039h-175c-11 0 -18.4004 11.7002 -13.4004 21.7002l125.801 251c5.09961 10.5 17.0996 11 24.7998 2.7998zM244.4 439.9
+c6.7998 10.8994 20.2998 10.6992 25.5996 0.0996094c5.90039 -11.7002 240.4 -482.3 240.4 -482.3c5 -9.90039 -2.2002 -21.7002 -13.4004 -21.7002h-174.2c-5.7002 0 -10.8994 3.2998 -13.3994 8.40039c-73.5 146.899 -187.301 302.1 -65 495.5z" />
+ <glyph glyph-name="canadian-maple-leaf" unicode="" horiz-adv-x="512"
+d="M383.8 96.2998c-5 -5 -10 -7.5 -5 -22.5s10 -35.0996 10 -35.0996s-95.2002 20.0996 -105.2 22.5996c-8.89941 0.900391 -18.3994 -2.39941 -18.3994 -12.5c0 -10.0996 5.7998 -112.8 5.7998 -112.8h-30s5.7998 102.8 5.7998 112.8s-9.59961 13.4004 -18.2998 12.5
+c-10.0996 -2.5 -105.3 -22.5996 -105.3 -22.5996s5 20.0996 10.0996 35.0996c4.90039 15 0 17.5 -5.09961 22.5c-2.60059 2.5 -105.2 92.4004 -105.2 92.4004l17.5 7.59961c10 4.90039 7.40039 11.4004 5 17.4004c-2.5 7.59961 -20.0996 67.2998 -20.0996 67.2998
+s47.5996 -10 57.6992 -12.5c7.5 -2.40039 10 2.5 12.5 7.5s15 32.2998 15 32.2998s52.6006 -59.7998 55.1006 -62.2998c10.0996 -7.5 20.0996 0 17.5996 10c0 10 -27.5996 129.6 -27.5996 129.6s30.0996 -17.3994 40.0996 -22.3994c7.60059 -5 12.6006 -5 17.6006 5
+c5 7.5 42.5 79.7998 42.5 79.7998s37.5996 -72.2998 42.6992 -79.7998c5 -10 10.1006 -10 17.6006 -5c10 5 40.0996 22.3994 40.0996 22.3994s-27.5996 -119.6 -27.5996 -129.6c-2.5 -10 7.59961 -17.5 17.5996 -10c2.5 2.40039 55.1006 62.2998 55.1006 62.2998
+s12.5 -27.3994 15 -32.3994s5 -9.90039 12.5 -7.5c10 2.5 57.6992 12.5 57.6992 12.5s-17.6992 -59.7002 -20.0996 -67.3008c-2.40039 -5.89941 -5 -12.5 5 -17.3994l17.5 -7.5s-102.7 -89.9004 -105.2 -92.4004z" />
+ <glyph glyph-name="centos" unicode=""
+d="M289.6 350.5l31.6006 -31.7002l-76.2998 -76.5v108.2h44.6992zM127.2 318.8l31.5996 31.7002h44.7002v-108.2zM168.7 360.4l55.5 55.5996l55.5 -55.5996h-44.7002v-127.9l-10.7998 -10.7998l-10.7998 10.7998v127.9h-44.7002zM194.9 192.3l-10.8008 -10.7998h-128.6
+v-44.7998l-55.5 55.5996l55.5 55.6006v-44.8008h128.6zM274.2 213l76.2998 76.5l31.5996 -31.7002v-44.7998h-107.899zM447.5 192.3l-55.5 -55.5996v44.7998h-127.7l-10.7998 10.7998l10.7998 10.7998h127.7v44.8008zM65.4004 271.8v78.7002h79.3994l-31.5996 -31.7002
+l90.2998 -90.5v-15.2998h-15.2998l-90.2998 90.5zM382.1 350.5v-78.7002l-31.5996 31.7002l-90.2998 -90.5h-15.2998v15.2998l90.2998 90.5l-31.6006 31.7002h78.5zM203.5 34.0996v-0.0996094h-44.7002l-31.5996 31.7002l76.2998 76.5v-108.101zM65.4004 213v44.7998
+l32.5 31.7002l76.2998 -76.5h-108.8zM382.1 112.8v-78.7002h-78.5l31.6006 31.7002l-90.2998 90.5v15.2998h15.2998l90.2998 -90.5zM382.1 171.6v-44.7998l-31.5996 -31.7002l-76.2998 76.5h107.899zM321.2 65.7998l-31.6006 -31.5996h-44.6992v108.1zM97.9004 95.0996
+l-32.5 31.7002v44.7998h108.8zM279.7 24.2002l-55.5 -55.6006l-55.5 55.6006h44.7002v127.899l10.7998 10.8008l10.7998 -10.8008v-127.899h44.7002zM113.2 65.7998l31.5996 -31.7002h-79.3994v78.7002l32.5 -31.7002l90.2998 90.5h15.2998v-15.2998z" />
+ <glyph glyph-name="confluence" unicode="" horiz-adv-x="512"
+d="M2.2998 35.7998c42.2998 66.9004 125.2 233.2 373.101 112.601c39.6992 -19.1006 83.6992 -39.9004 105.899 -50.3008c8 -3.69922 11.7002 -13.1992 8.10059 -21.2998l-50.4004 -114.1c-0.0996094 -0.100586 -0.0996094 -0.299805 -0.200195 -0.400391
+c-3.89941 -8.09961 -13.5996 -11.5996 -21.7002 -7.7002c-200.399 95.2002 -213.8 111.5 -280.899 -0.699219c0 0 -0.100586 -0.100586 -0.100586 -0.200195c-4.69922 -7.7002 -14.6992 -10 -22.3994 -5.2998l-105.9 65.1992c-7.59961 4.7002 -10 14.6006 -5.5 22.2002z
+M509.7 347.9c-42.6006 -67.5 -125.4 -232.9 -373.4 -112.9c-39.7002 19.2002 -83.7998 40 -106 50.4004c-8 3.69922 -11.7002 13.1992 -8.09961 21.2998l50.5 114.1c0.0996094 0.100586 0.0996094 0.299805 0.200195 0.400391
+c3.89941 8.09961 13.5996 11.5996 21.6992 7.7002c199.5 -94.7002 213.301 -111.7 280.601 0.899414c0.200195 0.400391 0.399414 0.700195 0.599609 1c5 7.5 15.1006 9.40039 22.6006 4.40039l105.8 -65.1006c7.59961 -4.69922 10 -14.5996 5.5 -22.1992z" />
+ <glyph glyph-name="dhl" unicode="" horiz-adv-x="640"
+d="M238 146.8l22.2998 30.2002h58.7002l-22.2998 -30.2002h-58.7002zM0 165.1h86.5l-4.7002 -6.39941h-81.7998v6.39941zM172.9 177h68.1992c-5.69922 -7.7998 -24.0996 -30.2998 -57.1992 -30.2998h-100.101l41.1006 55.7998h51c5.59961 0 5.59961 -2.2002 2.7998 -5.90039
+c-2.7998 -3.69922 -7.60059 -10.2998 -10.4004 -14.0996c-1.39941 -1.90039 -4.09961 -5.5 4.60059 -5.5zM490.4 183.9h-62.2002l39.2998 53.3994h62.2002zM95.2998 177l-4.7002 -6.40039h-90.5996v6.40039h95.2998zM206.3 203.6
+c2.7998 3.7002 2.90039 5.90039 -2.7002 5.90039h-111.399l20.3994 27.7998h117.9c29.9004 0 37.5996 -23.5996 29.2002 -35c-6.2002 -8.39941 -13.5 -18.3994 -13.5 -18.3994h-45.6006c-8.69922 0 -6 3.5 -4.59961 5.5c2.7998 3.7998 7.5 10.3994 10.2998 14.1992zM0 146.8
+v6.40039h77.7998l-4.7002 -6.40039h-73.0996zM323 146.8c0 0 22.2002 30.2002 22.2998 30.2002h58.7002l-22.2998 -30.2002h-58.7002zM545 146.7l4.7002 6.39941h90.2998v-6.39941h-95zM567.3 177h72.7002v-6.40039h-77.4004zM553.8 158.7l4.7002 6.39941h81.5v-6.39941
+h-86.2002zM389.6 237.3h58.7002l-39.2998 -53.3994h-143.6l39.2998 53.3994h58.7002l-22.5 -30.5996h26.1992zM423.1 177h133.4l-22.2998 -30.2998h-94.2998c-24.1006 0 -30.6006 11.5996 -23.2002 21.5996c2.09961 2.7998 6.39941 8.7002 6.39941 8.7002z" />
+ <glyph glyph-name="diaspora" unicode="" horiz-adv-x="512"
+d="M251.64 93.4502c-1.39941 0 -88 -119.9 -88.6992 -119.9c-0.700195 0 -86.6006 60.4502 -86.9404 61.2002s86.5996 125.7 86.5996 127.4c0 2.19922 -129.6 44 -137.6 47.0996c-1.2998 0.5 31.4004 101.8 31.7002 102.1c0.599609 0.700195 144.399 -47 145.5 -47
+c0.399414 0 0.899414 0.600586 1 1.30078c0.399414 2 1 148.6 1.7002 149.6c0.799805 1.2002 104.5 0.700195 105.1 0.299805c1.5 -1 3.5 -156.1 6.09961 -156.1c1.40039 0 138.7 47 139.301 46.2998c0.799805 -0.900391 31.8994 -102.2 31.5 -102.6
+c-0.900391 -0.900391 -140.2 -47.1006 -140.601 -48.8008c-0.299805 -1.39941 82.7998 -122.1 82.5 -122.899s-85.5 -63.5 -86.2998 -63.5c-1 0.200195 -89 125.5 -90.9004 125.5h0.0400391z" />
+ <glyph glyph-name="fedex" unicode="" horiz-adv-x="640"
+d="M586 163.5l54 -60.5h-64.4004l-22.2998 25l-22.0996 -25h-212.2v11.9004h-0.5c-7.90039 -11.7002 -20.7998 -18.6006 -34.9004 -18.6006c-32.6992 0 -56.3994 26.4004 -60.0996 56.9004h-85.5c0 -23.5 31.0996 -35.5 45.7998 -14.6006h42
+c-27.5996 -67.6992 -130.2 -49.3994 -130.2 23.7002c0 6.40039 0.800781 12.5 2.30078 18.2002h-48.9004v-77.5h-49v184.4h109v-41.1006h-60v-26.2002h54.7998v-24.1992c24.5 43.5996 103.9 45.3994 121.9 -14c7.5 25.5 28.8994 44.8994 57.2998 44.8994
+c13.9004 0 25.7998 -3.7998 35.4004 -14.7998h0.5v75.5h151.199v-48.0996h-56.0996v-16h118.7l22.5 -24.8008l21.7002 24.8008h62.3994zM139.3 180.1h46.5c-4.7998 25.6006 -40.3994 26.3008 -46.5 0zM292.7 131.2c34.5 0 32.5996 62.7998 0 62.7998
+c-34 0 -34.6006 -62.7998 0 -62.7998zM460.5 112.1v29.6006h-56.0996v44.7002h56.0996v28.0996h-55.5v33.9004h56.0996v30.1992h-95v-166.5h94.4004zM414.6 151.9h56.1006v-45.6006l50.7002 57l-50.7002 57v-44h-56.1006v-24.3994zM553.2 141.6l26.2998 -29.5h40.5
+l-46 51.4004l45.4004 51h-38.5l-25.6006 -29.2998l-26.5996 29.2998h-39.7002l45.5996 -51.2002l-45.5996 -51.2002h38.0996z" />
+ <glyph glyph-name="fedora" unicode=""
+d="M225 416c123.7 -0.299805 223.7 -100.9 223.4 -224.6c-0.300781 -123.7 -100.9 -223.7 -224.601 -223.4l-170.2 0.400391v0c-29.5879 0 -53.6006 24.0127 -53.6006 53.5996c0 0.0830078 0.000976562 0.216797 0.000976562 0.299805l0.400391 170.3
+c0.399414 123.7 100.899 223.7 224.6 223.4zM394.8 258.8c-0.0771484 6.26953 -1.33203 16.3047 -2.7998 22.4004l-55.2002 56.0996v-1.59961c0 -5.10059 -1.5 -9.60059 -3.7998 -14.2998zM331 353.7c1.65332 -2.31348 3.53516 -6.43555 4.2002 -9.2002l54.2998 -54.5996
+c-8.27539 24.8252 -34.4834 53.4082 -58.5 63.7998zM118.1 200.8c-4.54785 -0.369141 -11.8057 -1.66895 -16.1992 -2.89941l8.5 -8.5c1.68457 3.44336 5.13477 8.55078 7.69922 11.3994zM97 196.6c-3.91211 -1.08984 -10.0498 -3.41895 -13.7002 -5.19922l27 -27.2002
+c-1.30469 3.32617 -2.37988 8.92676 -2.39941 12.5l0.899414 8zM78.7998 189.2c-3.21484 -1.79492 -8.23242 -5.02051 -11.2002 -7.2002l35.3008 -35.9004c3.70801 1.84668 10.0254 3.95215 14.0996 4.7002zM63.5996 179.4
+c-3.06738 -2.29395 -7.5918 -6.50488 -10.0996 -9.40039l34.9004 -34.5996c2.66113 2.6377 7.36523 6.44629 10.5 8.5zM50.2998 167.1c-2.89941 -3.2998 -5.7998 -6.69922 -8.59961 -10.5l35.7998 -35.8994c1.74121 3.40527 5.19141 8.5127 7.7002 11.3994zM39.2998 152.8
+c-2.07715 -3.18457 -5.0791 -8.56055 -6.7002 -12l39.5 -39.7998c0.306641 4.3584 1.91895 11.168 3.60059 15.2002zM30.5 136.5c-1.7998 -4.90039 -3.2998 -9.59961 -4.7002 -14.5l52.7002 -53.5c-3.42578 6.82812 -6.42773 18.5654 -6.7002 26.2002zM22.5996 93.5
+c0.0380859 -6.14551 1.33789 -15.957 2.90039 -21.9004l55.4004 -55.6992v1.09961c0.0341797 4.18848 1.64746 10.5947 3.59961 14.2998zM27.9004 62.7998c8.29785 -24.8047 34.5059 -53.3867 58.5 -63.7998c-1.61816 2.33008 -3.5 6.45117 -4.2002 9.2002zM22.5996 99.7998
+l64.4004 -64.2002c2.30469 2.8877 6.74023 6.78613 9.90039 8.7002l-72.2002 72.5c-1.08105 -4.62988 -2.02148 -12.2461 -2.10059 -17zM275.9 151.6c32.5996 -0.0996094 32.6992 49.2002 0.199219 49.4004l-33.5996 0.0996094
+c-4.91309 0.0224609 -8.90039 4.02734 -8.90039 8.94043v0.0595703l0.100586 47c0.0996094 40.5 38.5996 60.8008 66 54.9004c15.3994 -3.90039 30.2998 8.40039 30.2998 23.9004c0 12.0996 -8.7002 22.1992 -19.9004 24
+c-5.39062 1.26953 -14.2617 2.30078 -19.8008 2.30078c-0.110352 0 -0.289062 -0.000976562 -0.398438 -0.000976562c-0.116211 0 -0.304688 0.000976562 -0.420898 0.000976562c-57.96 0 -105.081 -47.041 -105.18 -105.001l-0.0996094 -56l-42.6006 0.0996094
+c-32.5996 0.100586 -32.6992 -49.2002 -0.0996094 -49.2998l33.5996 -0.0996094c4.40039 0 8.90039 -4.5 8.90039 -9l-0.0996094 -47c-0.00585938 -30.8574 -25.0537 -55.9004 -55.9102 -55.9004h-0.19043c-9.39941 0 -9.39941 1.59961 -15.7002 1.59961
+c-13.3691 -0.208008 -24.3457 -11.2295 -24.5 -24.5996c0 -15.5 14.2002 -24.2002 19.9004 -24.2002c61.2998 -12.8994 125.5 33.6006 125.7 102.9l0.0996094 56zM299.4 151.9c4.50781 0.442383 11.7207 1.74219 16.0996 2.89941l-8.5 8.5
+c-1.48047 -3.55762 -4.88477 -8.66504 -7.59961 -11.3994zM320.4 156.1c3.9248 1.09082 10.0625 3.46484 13.6992 5.30078l-27 27.1992c1.30566 -3.32617 2.38086 -8.92578 2.40039 -12.5l-0.900391 -8.09961zM338.4 163.5c4 2.2002 8.09961 4.7002 11.8994 7.2002
+l-36.2002 35.8994c-4.09961 -2.2998 -8.7998 -3.59961 -13.6992 -4.69922zM353.9 173.3c2.92188 2.33301 7.44727 6.36426 10.0996 9l-34.9004 35c-2.63672 -2.66797 -7.34082 -6.47656 -10.5 -8.5zM367.1 185.6c2.52539 2.77441 6.37793 7.47852 8.60059 10.5
+l-35.7998 35.9004c-1.78125 -3.37891 -5.23047 -8.48633 -7.7002 -11.4004zM378.1 199.9c2.10938 3.16602 5.11133 8.54199 6.7002 12l-39.5 39.7998c-0.305664 -4.3584 -1.91895 -11.168 -3.59961 -15.2002zM391.6 230.8l-53.0996 53.4004
+c3.69434 -6.76172 6.875 -18.499 7.09961 -26.2002l41.3008 -41.5c1.50879 3.87695 3.61426 10.2832 4.69922 14.2998zM392.6 236.4c1.05957 4.52246 2.08984 11.959 2.30078 16.5996l-64.3008 64.7002c-2.18359 -3.12988 -6.61816 -7.25098 -9.89941 -9.2002z" />
+ <glyph glyph-name="figma" unicode="" horiz-adv-x="384"
+d="M277 277.3h-85.4004v-256c-0.0273438 -47.085 -38.2637 -85.2998 -85.3496 -85.2998c-47.1133 0 -85.3496 38.2363 -85.3496 85.3496s38.2363 85.3506 85.3496 85.3506h0.0498047c-47.1133 0 -85.3496 38.2363 -85.3496 85.3496s38.2363 85.3506 85.3496 85.3506
+c-47.085 0 -85.2998 38.2139 -85.2998 85.2998c0 47.085 38.2148 85.2998 85.2998 85.2998h170.7c47.1133 0 85.3496 -38.2363 85.3496 -85.3496s-38.2363 -85.3506 -85.3496 -85.3506zM277 277.3c47.0801 -0.00488281 85.2949 -38.2197 85.2998 -85.2998
+c0 -47.0859 -38.2139 -85.2998 -85.2998 -85.2998s-85.2998 38.2139 -85.2998 85.2998s38.2139 85.2998 85.2998 85.2998z" />
+ <glyph glyph-name="intercom" unicode=""
+d="M392 416c30.9004 0 56 -25.0996 56 -56v-336c0 -30.9004 -25.0996 -56 -56 -56h-336c-30.9004 0 -56 25.0996 -56 56v336c0 30.9004 25.0996 56 56 56h336zM283.7 333.9v-199.5c0 -19.8008 29.8994 -19.8008 29.8994 0v199.5c0 19.7998 -29.8994 19.7998 -29.8994 0z
+M209.1 341.4v-216.5c0 -19.8008 29.9004 -19.8008 29.9004 0v216.5c0 19.7998 -29.9004 19.7998 -29.9004 0zM134.4 333.9v-199.5c0 -19.8008 29.8994 -19.8008 29.8994 0v199.5c0 19.7998 -29.8994 19.7998 -29.8994 0zM59.7002 304v-134.3
+c0 -19.7998 29.8994 -19.7998 29.8994 0v134.3c0 19.7998 -29.8994 19.7998 -29.8994 0zM383.1 76.2002c14.9004 12.8994 -4.5 35.5996 -19.3994 22.7002c-63.2002 -53.9004 -213.4 -55.3008 -279.3 0c-15 12.7998 -34.4004 -9.90039 -19.4004 -22.7002
+c76.4004 -65.4004 245.3 -63 318.1 0zM388.3 169.7v134.3c0 19.7998 -29.8994 19.7998 -29.8994 0v-134.3c0 -19.7998 29.8994 -19.7998 29.8994 0z" />
+ <glyph glyph-name="invision" unicode=""
+d="M407.4 416c22.3994 0 40.5996 -18.2002 40.5996 -40.5996v-366.801c0 -22.3994 -18.2002 -40.5996 -40.5996 -40.5996h-366.801c-22.3994 0 -40.5996 18.2002 -40.5996 40.5996v366.801c0 22.3994 18.2002 40.5996 40.5996 40.5996h366.801zM176.1 302.4
+c-0.599609 35.0996 -53.5996 34.7998 -53.6992 -0.400391c0 -15 12.1992 -27 27.0996 -27c4.2002 0.0996094 27 4 26.5996 27.4004zM332.8 71c23.7998 0 42.7002 15.2998 53.2002 52l-17.9004 6.7002c-14.2998 -39.5 -31.7998 -32.4004 -31.7998 -16.9004
+c0.299805 8.10059 0.700195 7.7002 14.9004 58.7998c26.0996 85.8008 -61.2998 113.5 -101.8 38l8.89941 40.5h-68.7998l-9.7002 -35.5996h32.2998l-19.7998 -79.4004c-16.5 -36.6992 -57.3994 -44.0996 -57.3994 -23.1992c0.299805 11.2998 -0.700195 4.5 32.8994 138.199
+h-76.3994l-9.7002 -35.5996h31.7998c-22.0996 -90.0996 -22.9004 -89.7998 -23 -104.1c0 -48.7002 63.0996 -56.1006 94.5996 -4.30078l-8.09961 -32.5h45.0996l25.8008 103.301c14.6992 59.6992 74 47.0996 59.8994 0.699219c-9.09961 -32.5996 -40.5996 -106.6 25 -106.6z
+" />
+ <glyph glyph-name="jira" unicode="" horiz-adv-x="496"
+d="M490 206.3c8 -7.89941 8 -20.7002 0 -28.5996c-225.8 -225 137.9 136.3 -241.5 -241.7c-180.7 180.1 -109.7 109.3 -242.5 241.6c-7.90039 8 -7.90039 20.8008 0 28.7002c0 0 77 76.7998 242.5 241.7c72.0996 -71.7998 168.6 -169 241.5 -241.7zM248.5 116.3l76 75.7002
+l-76 75.7002l-76 -75.7002z" />
+ <glyph glyph-name="mendeley" unicode="" horiz-adv-x="640"
+d="M624.6 122.8c23.1006 -22.7002 17.8008 -73.5 0 -88.2998c-36.1992 -38.9004 -100 -18.2002 -104.899 35.2002c-1 11.7002 1.09961 23 5.7002 33c47.2998 103.7 -185.9 106.1 -146.5 8.2002c0.0996094 -0.100586 0.199219 -0.200195 0.299805 -0.400391
+c26.5996 -42.5996 -6.7002 -97.2998 -58.7998 -95.2002c-52 -2.2002 -85.6006 52.4004 -58.8008 95.2002c0.100586 0.200195 0.200195 0.299805 0.300781 0.400391c39.3994 97.8994 -193.801 95.5 -146.5 -8.2002c20.3994 -44.9004 -14.1006 -93.7002 -61.2002 -87.7998
+c-61.9004 7.7998 -62.5 82.8994 -42.6006 102.6c16 16 31.8008 24.7998 53 22.5c43.3008 1 49.7002 34.9004 37.5 98.7998c-22.6992 57.5 14.5 131.601 87.4004 130.8c76.9004 -0.699219 82.7998 -82 130.9 -82c49.1992 0 53.5 81.3008 130.899 82
+c72.5 0.700195 110.2 -73.2998 87.4004 -130.8c-12.2002 -63.8994 -5.7998 -97.7998 37.5 -98.7998c18.7002 2 36.0996 -4.7998 48.3994 -17.2002zM320.7 141.9c43.5996 0 62.7998 37.7998 62.7998 62.7998c0 34.7002 -28.0996 62.7998 -62.7998 62.7998h-0.600586
+c-34.5996 0 -62.7998 -28.0996 -62.7998 -62.7998c0 -25.2998 19.4004 -62.7998 62.7998 -62.7998h0.600586z" />
+ <glyph glyph-name="raspberry-pi" unicode="" horiz-adv-x="407"
+d="M372 215.5c28.7002 -17.2002 54.5996 -72.5996 14 -117.7c-2.59961 -14.0996 -7.09961 -24.2002 -11 -35.3994c-5.90039 -45.2002 -44.4004 -66.3008 -54.5996 -68.8008c-14.9004 -11.1992 -30.7002 -21.7998 -52.2002 -29.1992
+c-20.2002 -20.6006 -42.1006 -28.4004 -64.2002 -28.4004h-1c-22 0 -44 7.7998 -64.2998 28.4004c-21.4004 7.39941 -37.2998 18 -52.2002 29.1992c-10.0996 2.5 -48.7002 23.6006 -54.5996 68.8008c-3.90039 11.1992 -8.40039 21.2998 -11 35.3994
+c-40.5 45 -14.6006 100.5 14.1992 117.7l3.7002 6.5c-0.0996094 46.4004 21.4004 65.2998 46.5 79.7002c-7.59961 2 -15.3994 3.7002 -17.5996 13.2002c-13.1006 3.39941 -15.7998 9.39941 -17.1006 15.7998c-3.39941 2.2998 -14.7998 8.7002 -13.5996 19.7002
+c-6.2998 4.39941 -9.90039 10.0996 -8.09961 18.0996c-6.90039 7.5 -8.7002 13.7002 -5.80078 19.4004c-8.2998 10.1992 -4.59961 15.5 -1.09961 20.8994c-6.2002 11.2002 -0.799805 23.2002 16.5 21.2002c6.90039 10.0996 21.9004 7.7998 24.2002 7.7998
+c2.5 3.2998 6 6 16.5 4.7002c6.7998 6.09961 14.3994 5.09961 22.2998 2.09961c3.2002 2.5 6.09961 3.40039 8.7002 3.5c5 0.100586 9.2998 -2.89941 13.8994 -4.2998c11.3008 3.60059 13.8008 -1.39941 19.4004 -3.39941c12.2998 2.59961 16.0996 -3 22 -8.90039
+l6.90039 0.0996094c18.5996 -10.7998 27.7998 -32.7998 31.0996 -44.0996c3.2998 11.2998 12.5 33.2998 31.0996 44.0996l6.90039 -0.0996094c5.90039 5.90039 9.7002 11.5 22 8.90039c5.5 2.09961 8.09961 7 19.4004 3.39941
+c7.09961 2.2002 13.2998 8.10059 22.5996 0.799805c7.90039 2.90039 15.5 4 22.2998 -2.09961c10.5 1.2998 13.9004 -1.5 16.5 -4.7002c2.2998 0 17.2998 2.2998 24.2002 -7.7998c17.2998 2 22.7998 -10 16.5996 -21.2002c3.5 -5.2998 7.2002 -10.5996 -1.09961 -20.8994
+c2.90039 -5.7002 1.09961 -11.9004 -5.7998 -19.4004c1.89941 -8 -1.7002 -13.7002 -8.10059 -18.0996c1.2002 -11 -10.1992 -17.4004 -13.5996 -19.7002c-1.2998 -6.40039 -4 -12.5 -17.0996 -15.7998c-2.2002 -9.60059 -10 -11.2002 -17.6006 -13.2002
+c25.1006 -14.4004 46.6006 -33.2998 46.5 -79.7002zM349.8 223.5c1.5 48.7002 -36.3994 75.4004 -82.0996 67.9004c-16.7998 -2.80078 80.5996 -86.6006 82.0996 -67.9004zM306.8 130.4c24.5 15.7998 28.9004 51.5996 9.90039 80
+c-19 28.3994 -54.2998 38.5996 -78.7998 22.7998s-28.9004 -51.6006 -9.90039 -80c19 -28.4004 54.2998 -38.6006 78.7998 -22.7998zM238.9 418.7c-16.6006 -15.9004 -40.1006 -55.9004 -5.80078 -71.7998c29 23.5 63.6006 40.6992 102 53.5
+c-49.2998 -25.1006 -78 -45.3008 -93.6992 -62.6006c8.09961 -31.7002 50 -33.2002 65.3994 -32.2998c-3.09961 1.40039 -5.7998 3.09961 -6.7002 5.7998c3.80078 2.7002 17.5 0.299805 27 5.60059c-3.69922 0.699219 -5.39941 1.39941 -7.09961 4.09961
+c9 2.90039 18.7002 5.2998 24.4004 10c-3.10059 0 -6 -0.599609 -10 2.09961c8.09961 4.30078 16.6992 7.7002 23.3994 14.2002c-4.2002 0.100586 -8.7002 0.100586 -10 1.60059c7.40039 4.5 13.6006 9.5 18.7998 15c-5.7998 -0.700195 -8.2998 -0.100586 -9.69922 0.899414
+c5.59961 5.60059 12.5996 10.4004 16 17.2998c-4.40039 -1.5 -8.30078 -2.09961 -11.2002 0.100586c1.89941 4.2998 10 6.7002 14.7002 16.5996c-4.60059 -0.399414 -9.40039 -1 -10.4004 0c2.09961 8.5 5.7002 13.2002 9.2998 18.2002
+c-9.7998 0.200195 -24.5996 0 -23.8994 0.799805l6 6.10059c-9.5 2.5 -19.3008 -0.400391 -26.4004 -2.60059c-3.2002 2.5 0 5.60059 3.90039 8.7998c-8.10059 -1 -15.5 -2.89941 -22.1006 -5.39941c-3.59961 3.09961 2.2998 6.2998 5.10059 9.39941
+c-12.5 -2.2998 -17.8008 -5.59961 -23.1006 -8.89941c-3.7998 3.59961 -0.200195 6.7002 2.40039 9.7998c-9.40039 -3.5 -14.2998 -7.90039 -19.4004 -12.2998c-1.7998 2.2998 -4.39941 4 -1.2002 9.59961c-6.69922 -3.7998 -11.7998 -8.2998 -15.5 -13.2998
+c-4.19922 2.59961 -2.5 6.09961 -2.5 9.40039c-7 -5.60059 -11.3994 -11.5 -16.7998 -17.3008c-1.09961 0.800781 -2.09961 3.40039 -2.89941 7.60059zM204.5 304.1c-27.2002 0.700195 -53.4004 -19.8994 -53.4004 -31.7998
+c-0.0996094 -14.5996 21.5 -29.3994 53.6006 -29.7998c32.7998 -0.200195 53.7002 11.9004 53.7998 26.9004c0.0996094 16.8994 -29.7998 35 -54 34.6992zM81.5 316.9c9.59961 -5.2002 23.2002 -2.80078 27.2002 -5.60059
+c-0.900391 -2.59961 -3.60059 -4.39941 -6.7002 -5.7998c15.4004 -0.900391 57.4004 0.5 65.4004 32.2998c-15.7002 17.2998 -44.4004 37.6006 -93.7002 62.6006c38.3994 -12.8008 73 -30 102 -53.5c34.0996 15.8994 10.5996 55.8994 -6 71.7998
+c-0.900391 -4.2002 -1.7998 -6.7998 -2.90039 -7.60059c-5.39941 5.80078 -9.7998 11.7002 -16.7998 17.3008c0 -3.2002 1.59961 -6.80078 -2.5 -9.40039c-3.7002 5 -8.7998 9.5 -15.5 13.2998c3.2002 -5.59961 0.5 -7.2998 -1.2002 -9.59961
+c-5.09961 4.39941 -10 8.89941 -19.3994 12.2998c2.59961 -3.09961 6.19922 -6.2002 2.39941 -9.7998c-5.2998 3.2998 -10.5996 6.59961 -23.0996 8.89941c2.7998 -3.09961 8.59961 -6.2998 5.09961 -9.39941c-6.7002 2.5 -14 4.2998 -22.0996 5.39941
+c3.7998 -3.19922 7.09961 -6.2998 3.89941 -8.7998c-7.09961 2.2002 -16.8994 5.10059 -26.3994 2.60059l6 -6.10059c0.700195 -0.799805 -14.1006 -0.700195 -23.9004 -0.799805c3.5 -4.90039 7.2002 -9.7002 9.2998 -18.2002c-1 -1 -5.7998 -0.399414 -10.3994 0
+c4.7002 -9.89941 12.7998 -12.3994 14.7002 -16.5996c-2.90039 -2.10059 -6.90039 -1.60059 -11.2002 -0.100586c3.2998 -6.89941 10.3994 -11.6992 16 -17.2998c-1.40039 -1 -3.90039 -1.59961 -9.7002 -0.899414c5.2002 -5.5 11.4004 -10.5 18.7998 -15
+c-1.2998 -1.60059 -5.7998 -1.5 -10 -1.60059c6.7002 -6.5 15.2998 -9.89941 23.4004 -14.2002c-4 -2.7998 -6.90039 -2.09961 -10 -2.09961c5.7002 -4.7002 15.3994 -7.2002 24.3994 -10c-1.69922 -2.59961 -3.39941 -3.40039 -7.09961 -4.09961zM141.6 292.8
+c-45.5996 7.60059 -83.5996 -19.2002 -82.0996 -67.8994c1.5 -18.6006 98.9004 65.0996 82.0996 67.8994zM38.2002 106c21.5996 -9.5 39.0996 105.3 12.5996 98.2998c-43.8994 -24.5996 -36.2998 -79.5 -12.5996 -98.2998zM129.2 7.7998
+c14.0996 10.4004 6.39941 45.7002 -10.5 65.7002c-19.4004 22.2002 -44.6006 35.4004 -60.9004 25.5996c-10.8994 -8.19922 -12.8994 -36 2.60059 -63.3994c23 -32.6006 55.5 -35.7998 68.7998 -27.9004zM102.8 127.5c24.4004 -15.7998 59.7002 -5.59961 78.7998 22.7998
+c19 28.4004 14.6006 64.2002 -9.89941 80s-59.7998 5.60059 -78.7998 -22.7998s-14.6006 -64.2002 9.89941 -80zM205 -48c28.4004 -0.5 57.7002 24.4004 57.2002 35.4004c-0.100586 11.3994 -32 19.8994 -55.7002 18.8994c-23.5 0.600586 -59.7002 -9.2998 -59.2998 -22
+c-0.400391 -8.59961 28.3994 -33.5 57.7998 -32.2998zM263.9 76.9004v0.599609c-0.200195 29.5996 -26.8008 53.5996 -59.4004 53.4004c-32.5996 -0.200195 -59 -24.3008 -58.7998 -54v-0.600586c0.200195 -29.5996 26.7998 -53.5996 59.3994 -53.3994
+c32.6006 0.199219 59 24.2998 58.8008 54zM346.1 34.2002c18.4004 23.2002 12.2002 62 1.7002 72.2998c-15.5996 11.9004 -38 -3.2998 -58.8994 -26.5996c-18.3008 -21.1006 -28.4004 -59.6006 -15.1006 -72c12.7002 -9.60059 47 -8.30078 72.2998 26.2998zM369 107.4
+c23.7002 18.6992 31.2998 73.5996 -12.5996 98.2998c-26.4004 7 -8.90039 -107.7 12.5996 -98.2998z" />
+ <glyph glyph-name="redhat" unicode="" horiz-adv-x="512"
+d="M341.52 162.59v-0.149414c33.6504 0 82.3408 6.93945 82.3408 47c0.219727 6.73926 0.859375 1.81934 -20.8799 96.2393c-4.62012 19.1504 -8.68066 27.8398 -42.3105 44.6504c-26.0898 13.3398 -82.9199 35.3701 -99.7295 35.3701
+c-15.6602 0 -20.2002 -20.1699 -38.8701 -20.1699c-18 0 -31.3105 15.0596 -48.1201 15.0596c-16.1406 0 -26.6602 -11 -34.7803 -33.6201c-27.5 -77.5498 -26.2803 -74.2695 -26.1201 -78.2695c0 -24.7998 97.6406 -106.11 228.47 -106.11zM429.07 193.19
+l-0.0703125 -0.0302734c4.65039 -22 4.65039 -24.3506 4.65039 -27.25c0 -37.6602 -42.3301 -58.5605 -98 -58.5605c-125.74 -0.0800781 -235.91 73.6504 -235.91 122.33v0.0771484c0 5.65332 1.81836 14.4531 4.05957 19.6436
+c-45.2402 -2.26074 -103.8 -10.3301 -103.8 -62.0303c0 -84.6699 200.63 -189 359.49 -189c121.79 0 152.51 55.0801 152.51 98.5801c0 34.21 -29.5898 73.0498 -82.9297 96.2402z" />
+ <glyph glyph-name="sketch" unicode="" horiz-adv-x="512"
+d="M27.5 285.8l78.9004 105.8l-6.90039 -130.699h-90.5zM396.3 402.3l7.10059 -133.5l-135.7 147.2zM112.2 229.7l122.6 -239.7l-224.899 261.7h91.0996zM114.2 260.9l142.1 154.1l60.4004 -65.5996l81.5 -88.5h-284zM411.5 251.8v-0.0996094h90.9004l-224.801 -261.7z
+M415.4 379l87.8994 -118.1h-90.2998l-6.09961 113.399l-0.900391 17.2998zM113.5 354.5l2.59961 47.7998l128.601 13.7002l-135.8 -147.1zM401.2 251.8l-144.9 -283.8l-102.7 200.9l-42.3994 82.8994h290z" />
+ <glyph glyph-name="sourcetree" unicode=""
+d="M427.2 245c-0.0947266 -81.5225 -63.1279 -168.031 -140.7 -193.1v-101.601c0 -7.89355 -6.40625 -14.2998 -14.2998 -14.2998v0h-96.4004c-7.89355 0 -14.2998 6.40625 -14.2998 14.2998v101.7c-77.5566 25.0537 -140.5 111.535 -140.5 193.037v0.363281
+c0.200195 112 91.0996 202.8 203.2 202.6c112.1 0 203 -90.9004 203 -203zM155.6 245c0 -91 137.2 -89.9004 137.301 0c0 90.7998 -137.301 90.7998 -137.301 0z" />
+ <glyph glyph-name="suse" unicode="" horiz-adv-x="640"
+d="M471.08 345.34c0 1 1.01953 0.759766 0.919922 0.660156c4.2002 -0.599609 92.2002 -13.7002 129.2 -35.2998c12.0996 -6.90039 20.7002 -21.5 34.5 -69.6006c0.700195 -2.7998 -2.7998 -5.09961 -3.60059 -5.69922
+c-26.8994 -18.8008 -56.7998 -36.6006 -145.199 21.6992c11.0996 -26.6992 10.6992 -25.0996 11 -25.5c5.39941 -2.7998 56.2998 -28.6992 81.5996 -28.1992c20.4004 0.399414 42.2002 10.3994 50.9004 15.5996c0 0 4.5 2.7002 3.19922 -2.40039
+c-0.5 -1.89941 -3.2998 -14.5996 -7 -17.6992c-1 -1 -36.5996 -28.4004 -103.1 -28c-42.7002 1 -76.7998 16.3994 -82.4004 -17.4004c-2.7998 -17.0996 6.10059 -37.5 18.9004 -55.7998h-48.5996c-15.9004 28.3994 -23.1006 68.2998 -79.8008 68.2998
+c-51.5996 0 -48.3994 -50.7002 -42.6992 -68.2998h-45.9004c-18.7998 68.7998 -69.2002 98.5996 -102.4 104.3c-74.2998 12.7998 -113 -49.2002 -87 -98.4004c23.1006 -43.5996 81.4004 -44.0996 99.7002 -20.3994c19.2002 25 3.7998 62.8994 -28.5 65.7002
+c-12.2998 1.09961 -25.2998 -4.60059 -25.5 -16.9004v-0.0595703c0 -10.9004 10 -13.8008 12 -14c7.2998 0.399414 8.90039 1.89941 11.7998 2.39941c5.2002 0.900391 16.8008 -1.7998 16.8008 -13.8994c0 -8.40039 -6.80078 -13.1006 -13.3008 -14.9004
+c-4.2373 -1.46777 -11.3154 -2.67773 -15.7998 -2.7002c-17.2002 0 -41.2002 14.7998 -41.5 42.6006c-0.200195 15.6992 7.7002 30 21.6006 39.1992c15.8994 10.5 43.5996 14.1006 69.1992 -1.59961c31.5 -19.2998 39.7002 -57.0996 31.5 -82.9004
+c-11.8994 -37.2998 -45.5996 -57.1992 -90 -53.2998c-31.5 2.7998 -60.6992 19.4004 -78.0996 44.4004c-6.32715 9.0332 -13.7197 25.0264 -16.5 35.7002c-7.12012 28.0596 0 58.0596 5.48047 71.3994c25.6992 63.6006 80.1992 97.2998 99.5996 109.7
+c100.2 61.5996 171.1 59.0996 223 57.2998c61.2998 -2.2002 126.6 -23.2998 135.7 -26.2998c0 2 0.299805 20.2998 0.299805 20.2998zM531.48 272.54c-1.10059 -33.5 39.0996 -51.5996 63.2998 -28.9004c24.3994 22.9004 9 64 -24.4004 65.2002
+c-0.380859 0.0136719 -0.999023 0.0253906 -1.37988 0.0253906c-20.0615 0 -36.8711 -16.2734 -37.5195 -36.3252zM570.08 297.84c14.0312 -0.413086 25.4199 -12.1406 25.4199 -26.1787c0 -0.282227 -0.00878906 -0.739258 -0.0195312 -1.02148
+c-0.50293 -13.9795 -12.2646 -25.3262 -26.2539 -25.3262c-14.501 0 -26.2695 11.7695 -26.2695 26.2705s11.7686 26.2695 26.2695 26.2695c0.236328 0 0.618164 -0.00585938 0.853516 -0.0136719zM574.38 269.04c15.4004 0 15.4004 15.5996 0 15.5996
+c-15.3994 0 -15.3994 -15.5996 0 -15.5996z" />
+ <glyph glyph-name="ubuntu" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM300.7 347c-8.7998 -15.2002 -3.60059 -34.7002 11.7002 -43.5996c15.1992 -8.80078 34.6992 -3.5 43.5 11.6992c8.7998 15.3008 3.59961 34.8008 -11.7002 43.6006
+c-15.2002 8.7998 -34.7002 3.5 -43.5 -11.7002zM87.4004 160.1c17.5996 0 31.8994 14.3008 31.8994 31.9004s-14.2998 31.9004 -31.8994 31.9004c-17.6006 0 -31.9004 -14.3008 -31.9004 -31.9004s14.2998 -31.9004 31.9004 -31.9004zM115.5 157
+c8.7002 -32.7002 29.0996 -60.7002 56.5 -79l23.7002 39.5996c-51.5 36.3008 -51.5 112.5 0 148.801l-23.7002 39.5996c-27.4004 -18.4004 -47.9004 -46.2998 -56.5 -79.0996c22.4004 -18 22.2998 -52 0 -69.9004zM344.2 25.2998
+c15.2998 8.7998 20.5 28.2998 11.7002 43.6006c-8.80078 15.2998 -28.3008 20.5 -43.5 11.6992c-15.3008 -8.7998 -20.5 -28.2998 -11.7002 -43.5996s28.2002 -20.5 43.5 -11.7002zM344.5 94.7998c23 22.9004 38 53.9004 40.2998 88.4004l-46.0996 0.700195
+c-5.5 -62.7002 -71.9004 -100.9 -128.9 -74.4004l-22.5 -40.2998c47.7998 -23.7002 91.5 -10.7998 96.7002 -9.40039c4.40039 28.4004 33.7998 45.2998 60.5 35zM338.6 200.1l46 0.600586c-2.19922 34.5996 -17.0996 65.5996 -40.1992 88.5
+c-26.7002 -10.2998 -56.1006 6.7002 -60.5 35c-5.2002 1.39941 -48.8008 14.2998 -96.7002 -9.40039l22.5 -40.2998c57.5996 26.7998 123.5 -12.4004 128.899 -74.4004z" />
+ <glyph glyph-name="ups" unicode="" horiz-adv-x="384"
+d="M103.2 145v123h32.5996v-141.6c-17.7002 -12.1006 -97.8994 -35.9004 -97.8994 39v102.6h32.6992v-104c0 -32.0996 27.4004 -22.5996 32.6006 -19zM4 373.18c93.5996 49.6006 259.1 61.6006 375.4 0v-220.899c0 -103.9 -75.3008 -135.2 -187.7 -184.101
+c-112.8 48.9004 -187.7 80.4004 -187.7 184.101v220.899zM362.1 152.28v216.2c-109.3 10.1992 -238.6 4 -340.899 -89.8008v-126.399c0 -86.6006 53 -113.5 170.5 -165.3c117.2 51.6992 170.399 78.6992 170.399 165.3zM152.5 259.68
+c23.7002 15.3203 104.4 31.8008 104.4 -65.5996c0 -75.9004 -47.3008 -85.7998 -71.7002 -78.5v-68.7002h-32.7002v212.8zM185.2 142.38c2 -0.799805 38.3994 -16.8994 38.3994 51c0 62 -30 53.5 -38.3994 49.2998v-100.3zM264.3 228.78
+c-0.200195 41.0996 51.2002 53.8994 79.7002 31.8994v-28.3994c-17.9004 18.2998 -47.9004 18.0996 -48.5 -2.2002c-0.700195 -26.5996 55.0996 -21.7002 53.4004 -73.2002c-1.30078 -41.5996 -47 -55 -83.2002 -33.5v30.1006
+c20.3994 -18.1006 51.3994 -18.6006 50.7998 4.89941c-0.599609 27.9004 -52.0996 23.1006 -52.2002 70.4004z" />
+ <glyph glyph-name="usps" unicode="" horiz-adv-x="576"
+d="M460.3 206.3c-1.39941 -2.2002 -4.2998 -4.39941 -3.7998 0.100586c2.90039 11.5996 13.9004 30.5 4.40039 32c-17.8008 3.09961 -88.1006 -4.5 -88.1006 0c0 2.39941 26.7002 3.09961 37.9004 8.69922c9.39941 9.40039 10.7998 8 10.8994 8h27
+c26.9004 0 37.5 -7.5 11.7002 -48.7998zM348.2 183.7c-62.2998 -21.2002 -124.8 -54.2002 -321.2 -151.5l52.4004 245.5c185 0 335.199 5.59961 337.899 -22.6006h-196.6l30.7002 -93.2998c35 16.7998 120.899 51.7002 172.6 53.9004
+c21.7998 0.799805 30.5996 -2.90039 26.2002 -5.7998c-4.7002 -2.30078 -38 -4.90039 -102 -26.2002zM94.7002 352h454.3l-67.7002 -319.7h-423.1s402 157.3 406.399 160.2c0 0 35.7002 48 14.6006 67.7002c-6.5 6.59961 -16 6.59961 -52.4004 6.59961
+c-2.09961 19.5 -78.7998 31.5 -332.1 85.2002z" />
+ <glyph glyph-name="yarn" unicode="" horiz-adv-x="496"
+d="M393.9 102.8c-39 -9.2998 -48.4004 -32.0996 -104 -47.3994c0 0 -2.7002 -4 -10.4004 -5.80078c-13.4004 -3.2998 -63.9004 -6 -68.5 -6.09961c-12.4004 -0.0996094 -19.9004 3.2002 -22 8.2002c-6.40039 15.2998 9.2002 22 9.2002 22
+c-8.10059 5 -9 9.89941 -9.7998 8.09961c-2.40039 -5.7998 -3.60059 -20.0996 -10.1006 -26.5c-8.7998 -8.89941 -25.5 -5.89941 -35.2998 -0.799805c-10.7998 5.7002 0.799805 19.2002 0.799805 19.2002s-5.7998 -3.40039 -10.5 3.59961
+c-6 9.2998 -17.0996 37.2998 11.5 62c-1.2998 10.1006 -4.59961 53.7002 40.6006 85.6006c0 0 -20.6006 22.7998 -12.9004 43.2998c5 13.3994 7 13.2998 8.59961 13.8994c5.7002 2.2002 11.3008 4.60059 15.4004 9.10059c20.5996 22.2002 46.7998 18 46.7998 18
+s12.4004 37.7998 23.9004 30.3994c3.5 -2.2998 16.2998 -30.5996 16.2998 -30.5996s13.5996 7.90039 15.0996 5c8.2002 -16 9.2002 -46.5 5.60059 -65.0996c-6.10059 -30.6006 -21.4004 -47.1006 -27.6006 -57.5c-1.39941 -2.40039 16.5 -10 27.8008 -41.3008
+c10.3994 -28.5996 1.09961 -52.6992 2.7998 -55.2998c0.799805 -1.39941 13.7002 -0.799805 36.3994 13.2002c12.8008 7.90039 28.1006 16.9004 45.4004 17c16.7002 0.5 17.5996 -19.2002 4.90039 -22.2002zM496 192c0 -136.9 -111.1 -248 -248 -248s-248 111.1 -248 248
+s111.1 248 248 248s248 -111.1 248 -248zM416.7 116.8c-1.7002 13.6006 -13.2002 23 -28 22.7998c-22 -0.299805 -40.5 -11.6992 -52.7998 -19.1992c-4.80078 -3 -8.90039 -5.2002 -12.4004 -6.80078c3.09961 44.5 -22.5 73.1006 -28.7002 79.4004
+c7.7998 11.2998 18.4004 27.7998 23.4004 53.2002c4.2998 21.7002 3 55.5 -6.90039 74.5c-1.59961 3.09961 -7.39941 11.2002 -21 7.39941c-9.7002 20 -13 22.1006 -15.5996 23.8008c-1.10059 0.699219 -23.6006 16.3994 -41.4004 -28
+c-12.2002 -0.900391 -31.2998 -5.30078 -47.5 -22.8008c-2 -2.19922 -5.89941 -3.7998 -10.0996 -5.39941h0.0996094c-8.39941 -3 -12.2998 -9.90039 -16.8994 -22.2998c-6.5 -17.4004 0.199219 -34.6006 6.7998 -45.7002c-17.7998 -15.9004 -37 -39.7998 -35.7002 -82.5
+c-34 -36 -11.7998 -73 -5.59961 -79.6006c-1.60059 -11.0996 3.69922 -19.3994 12 -23.7998c12.5996 -6.7002 30.2998 -9.59961 43.8994 -2.7998c4.90039 -5.2002 13.7998 -10.0996 30 -10.0996c6.7998 0 58 2.89941 72.6006 6.5c6.7998 1.59961 11.5 4.5 14.5996 7.09961
+c9.7998 3.09961 36.7998 12.2998 62.2002 28.7002c18 11.7002 24.2002 14.2002 37.5996 17.3994c12.9004 3.2002 21 15.1006 19.4004 28.2002z" />
+ <glyph glyph-name="airbnb" unicode=""
+d="M224 74.8799h0.0595703c24.71 31.1797 39.5508 58.9297 45 83.1797c22.5508 88 -112.609 88 -90.0596 0c4.91992 -23.75 19.7598 -51.5098 45 -83.1797zM362.15 1.65039c35.6396 15.3496 50.1797 53.5693 37.0098 86.6396
+c-25.4902 61.6104 -78.8398 168.47 -114.84 239.09c-16.9707 33.9297 -28.0303 59.8701 -60.3701 59.8701c-33.8203 0 -43.6299 -27.3301 -59.3799 -57.4004c-4.15039 -10.3799 -100.771 -202.399 -115.87 -241.56c-17.8105 -50.0303 21.2998 -98.5205 71.2998 -91.0898
+c24.5996 2.22949 52.6201 18.8701 85.1504 54.9199c-29.2002 37.1104 -47.5 70.3096 -54.4307 99.5c-11.8799 53.9902 18.3604 100.5 73.2803 100.5c64.96 0 122.75 -69.9297 18.8496 -200c35.6309 -39.5898 77.2402 -68.7803 119.301 -50.4697zM409.15 137.77
+c0 -0.679688 16.8496 -35.6895 16.8301 -39.5791c25.2393 -69.3301 -26.7207 -130.24 -89.6104 -130.19c-11.1104 0 -53.6904 -1.37988 -112.37 62.4004c-51.7598 -56.3408 -90.6602 -62.4004 -112.37 -62.4004c-62.8896 0 -114.85 60.8604 -89.6299 130.19
+c0.889648 2.61914 11.1797 32.71 117.34 245.02c19.79 41.1201 39.1406 72.79 84.6602 72.79c49.1299 0 56.2695 -3.92969 185.15 -278.23z" />
+ <glyph glyph-name="battle-net" unicode="" horiz-adv-x="512"
+d="M448.61 222.38c60.75 -36.25 71.9893 -73.8096 57.3193 -93.6895c-4.70996 -6.88086 -25.1797 -36.2402 -148 -31.6406c-21.8193 -30.3994 -45.25 -53.2695 -67.4697 -69.2695c28.54 -53.7803 54.2998 -85.0303 62.54 -91.7803c0 0 -3.44043 0.160156 -8.58008 3.37012
+c-2.69434 1.61133 -6.61426 4.78809 -8.75 7.08984c-15.6299 16.1797 -35.5195 41.9404 -55.7002 74.1201c-43.9502 -28.1104 -81.1299 -29.0996 -88.4395 -9.4502c-4.83984 10.8301 1.5293 26.5 9.05957 39.3398c-31.3203 -17.5098 -61.7002 -26.8496 -86.7002 -21.1396
+c-6.79004 1.54004 -17.6299 5.50977 -23.1992 18.2598c-4.52051 9.53027 -6.02051 24.2598 -0.150391 47.1406c9.07031 35.3398 37.5801 82.2998 47.3096 97.6992c3.75 -8.62988 -20.7793 40.1904 -26 93.1904c-89.1592 0 -110.56 -8.83984 -111.56 -9.21973
+c1.54004 2.44922 7.86035 7.26953 17.7598 9.71973c22 5.47949 54.6406 9.84961 93 11.2295c-2.38965 52.0703 15.3398 84.7705 36 81.29h0.180664c11.3291 -1.2998 21.2598 -13.5801 28.5 -25.9297c0.669922 35.2002 7.7998 65.54 25 84.0703
+c4.72949 5.14941 13.5693 12.5498 27.3994 11h0.0498047c10.5205 -0.850586 24 -6.91992 40.8398 -23.4707c25.6006 -25.0693 51.54 -71.9893 60.4805 -88.9297c37.25 -3.7002 68.7695 -12.5801 93.7695 -23.7998c32.3506 51.5898 46.4805 89.5303 48.2002 100.05
+c0.640625 -1.25 2.93066 -8.41992 -0.450195 -20.25c-6.22949 -21.6201 -18.5791 -51.7197 -36.3398 -85.2998c45.79 -23.7305 65.3203 -55.0098 52.8506 -71.3301c-3.35059 -4.94043 -12.0498 -12.5498 -38.9199 -12.3701zM370.76 116.16
+c70.4102 4.37988 79.6504 20.5703 78.5098 33.5c-1.87988 21.25 -21.1992 41.2598 -49.0596 58.8301c0.889648 -24.5605 -5.63965 -54.6201 -29.4502 -92.3301zM216.9 60.3096c-19.04 -30.46 9.19922 -39.5596 49.7998 -17.6992
+c-7 12.0898 -13.9199 24.8594 -20.6006 38.1895c-9.66992 -7.37012 -19.4395 -14.2598 -29.1992 -20.4902zM431.9 231.66c36.2598 -1.23047 29.4199 27.8496 -9.64062 51.9502c-5.9707 -10.373 -16.1582 -26.9043 -22.7402 -36.9004
+c11.2207 -4.70996 22.0908 -9.70996 32.3809 -15.0498zM279.18 50c28.3799 18.2002 60.1689 48.1201 84.7695 85.4297c18.46 27.96 26.1494 56.0205 25.4102 79.5703c-30.5801 17.3203 -89.3604 42.7197 -167.23 57.21c0.350586 18.4805 2.08984 19.8799 2.16016 20.3301
+c10.9229 -1.33496 28.5693 -4.04492 39.3896 -6.0498c32.5664 -6.08984 84.2383 -20.2959 115.34 -31.71c-15.6191 33.1494 -41.4092 47.2197 -41.5195 47.2197c1.59961 0.160156 28.1299 -6 48.8604 -43.7197c8.42676 11.2061 16.2031 22.0293 23.3301 32.4697
+c-29.96 15.46 -71.75 28.04 -116.32 30.71c-33.4502 1.99023 -61.6299 -5.38965 -81.6299 -17.8096c0.240234 -35.2607 7.66992 -98.96 34 -173.431c-16.8301 -9.12988 -17.7402 -7.87012 -18.6699 -8.25c-17.1924 40.7627 -37.2041 109.235 -44.6699 152.84
+c-21.0908 -30.3994 -20.1406 -59.5 -20.1406 -59.5693c-0.919922 1.22949 -8.81934 27.4297 13.4707 64.2295c-13.5801 1.70996 -26.5508 2.9707 -38.8506 3.87988c1.57031 -33.6797 11.5703 -76.1494 31.5703 -116.069c14.8701 -29.71 35.1201 -50.3105 55.71 -61.4902
+c30.4102 17.9199 81.0498 55.6504 132.75 115.92c14.9697 -9 16.1494 -11.71 16.5098 -12c-7.91309 -10.5332 -16.2227 -20.9033 -24.9287 -31.1104c-21.542 -25.1426 -59.6494 -62.7744 -85.0605 -84c37.5303 -3.38965 62.5303 12.1807 62.5303 12.25
+c-0.860352 -1.67969 -20.0303 -21.6797 -63.2803 -20.4092c5.5 -12.9404 10.9902 -25.0908 16.5 -36.4404zM306.579 337c-1.58008 2.4502 -39.5801 58.8496 -56.4805 54.6104c-16.8994 1.09961 -36.21 -22.9805 -38.21 -75.2803
+c21.1104 13.2402 50.1299 22.3301 94.6904 20.6699zM175.929 333.9c-3.7998 6.68945 -8.66992 12.4795 -14.4297 13.5693h-0.0898438c-24.79 1.41016 -24.75 -52.8301 -24.6699 -49.5898c13.6602 -0.00976562 27.8496 -0.410156 42.3994 -1.25977
+c-1.62012 12.6602 -2.72949 25.1699 -3.20996 37.2803zM147.869 171.9c-30.7998 -61.5098 -19.8701 -76.6104 -19.6699 -76.8203c7.38965 -15.4902 38.1299 -20.25 84.9199 4.50977c-21.9502 11.7402 -44.4902 32.6104 -65.25 72.3105zM357.929 97.0996z" />
+ <glyph glyph-name="bootstrap" unicode=""
+d="M292.3 136.07c0 -42.4102 -39.7197 -41.4307 -43.9199 -41.4307h-80.8896v81.6904h80.8896c42.5605 0 43.9199 -31.9004 43.9199 -40.2598zM242.15 209.2h-74.6602v72.1797h74.6602c34.9297 0 38.4395 -20.3496 38.4395 -35.8701
+c0 -37.3096 -37.7695 -36.3096 -38.4395 -36.3096zM448 341.33v-298.66c-0.120117 -41.0977 -33.5723 -74.5498 -74.6699 -74.6699h-298.66c-41.0977 0.120117 -74.5498 33.5723 -74.6699 74.6699v298.66c0.120117 41.0977 33.5723 74.5498 74.6699 74.6699h298.66
+c41.0977 -0.120117 74.5498 -33.5723 74.6699 -74.6699zM338.05 130.14c0 21.5703 -6.64941 58.29 -49.0498 67.3506v0.729492c22.9102 9.78027 37.3398 28.25 37.3398 55.6406c0 7 2 64.7793 -77.5996 64.7793h-127v-261.33c128.229 0 139.87 -1.67969 163.6 5.70996
+c14.21 4.4209 52.71 17.9805 52.71 67.1201z" />
+ <glyph glyph-name="buffer" unicode=""
+d="M427.84 67.3301l-196.5 -97.8203c-1.93848 -0.832031 -5.22461 -1.50684 -7.33496 -1.50684c-2.10938 0 -5.39551 0.674805 -7.33496 1.50684l-196.51 97.8203c-4 2 -4 5.28027 0 7.29004l47.0596 23.3799c1.94238 0.832031 5.23242 1.50684 7.3457 1.50684
+c2.1123 0 5.40234 -0.674805 7.34473 -1.50684l134.76 -67c1.93848 -0.836914 5.22461 -1.51562 7.33496 -1.51562c2.11133 0 5.39746 0.678711 7.33496 1.51562l134.76 67c1.94043 0.832031 5.22949 1.50781 7.34082 1.50781s5.39941 -0.675781 7.33984 -1.50781
+l47.0596 -23.4297c4.0498 -1.95996 4.0498 -5.24023 0 -7.24023zM427.84 203.86c4.0498 -2.01074 4.0498 -5.29004 0 -7.31055l-196.5 -97.7998c-1.93848 -0.832031 -5.22461 -1.50781 -7.33496 -1.50781c-2.10938 0 -5.39551 0.675781 -7.33496 1.50781l-196.51 97.7998
+c-4 2.02051 -4 5.31055 0 7.31055l47.0596 23.4297c1.94238 0.832031 5.23242 1.50684 7.3457 1.50684c2.1123 0 5.40234 -0.674805 7.34473 -1.50684l134.76 -67.0801c1.93945 -0.828125 5.22559 -1.5 7.33496 -1.5s5.39551 0.671875 7.33496 1.5l134.76 67.0801
+c1.94043 0.832031 5.22949 1.50781 7.34082 1.50781s5.39941 -0.675781 7.33984 -1.50781zM20.1602 317.58c-4.0498 1.86035 -4.0498 4.88965 0 6.74023l196.5 90.2793c1.9502 0.774414 5.23633 1.40332 7.33496 1.40332s5.38477 -0.628906 7.33496 -1.40332
+l196.51 -90.2793c4 -1.85059 4 -4.87988 0 -6.74023l-196.51 -90.29c-1.95215 -0.765625 -5.23828 -1.3877 -7.33496 -1.3877s-5.38281 0.62207 -7.33496 1.3877z" />
+ <glyph glyph-name="chromecast" unicode="" horiz-adv-x="512"
+d="M447.83 384h0.169922c23.5811 0 42.7197 -19.1387 42.7197 -42.7197v-298.561c0 -23.5811 -19.1387 -42.7197 -42.7197 -42.7197v0h-149.36v42.7197h149.19v298.561h-383.83v-63.9199h-42.7197v63.9199c0 23.5811 19.1387 42.7197 42.7197 42.7197h383.83z
+M21.2803 64.4199c35.2783 0 63.9102 -28.6318 63.9102 -63.9102v-0.00976562h-63.9102v63.9199zM21.2803 149.7l0.0292969 -0.339844h0.330078c82.248 -0.105469 149 -66.9424 149 -149.19v-0.169922h-42.7197v0.339844v0.0302734c0 58.8594 -47.7705 106.63 -106.63 106.63
+h-0.00976562v42.7002zM21.2803 234.97v-0.330078c129.46 -0.370117 234.34 -105.18 234.8 -234.64h-42.7197v0.5c-0.0800781 106 -86.0801 191.85 -192.08 191.75v42.7197z" />
+ <glyph glyph-name="evernote" unicode="" horiz-adv-x="384"
+d="M120.82 315.79c1.59961 -22.3096 -17.5508 -21.5898 -21.6104 -21.5898c-68.9297 0 -73.6396 1 -83.5801 -3.33984c-0.55957 -0.220703 -0.740234 0 -0.370117 0.370117l108.53 110.319c0.379883 0.370117 0.599609 0.219727 0.379883 -0.370117
+c-4.34961 -9.98926 -3.34961 -15.0898 -3.34961 -85.3896zM199.82 7.79004c-14.6807 37.0801 13 76.9297 52.5195 76.6201c17.4902 0 22.6006 -23.21 7.9502 -31.4199c-6.19043 -3.2998 -24.9502 -1.74023 -25.1396 -19.2002
+c-0.0507812 -17.0898 19.6699 -25 31.1992 -24.8896h0.0107422c25.1934 0 45.6396 20.4463 45.6396 45.6396v0.00976562v0.0800781c0 11.6299 -7.79004 47.2197 -47.54 55.3398c-7.71973 1.54004 -65 6.35059 -68.3496 50.5205
+c-3.74023 -16.9307 -17.4004 -63.4902 -43.1104 -69.0898c-8.74023 -1.94043 -69.6797 -7.64062 -112.92 36.7695c0 0 -18.5703 15.2305 -28.2305 57.9502c-3.37988 15.75 -9.2793 39.7002 -11.1396 62c0 18 11.1396 30.4502 25.0703 32.2002c81 0 90 -2.32031 101 7.7998
+c9.81934 9.24023 7.7998 15.5 7.7998 102.78c1 8.2998 7.79004 30.8096 53.4102 24.1396c6 -0.860352 31.9102 -4.17969 37.4795 -30.6396l64.2607 -11.1504c20.4297 -3.70996 70.9395 -7 80.5996 -57.9404c22.6602 -121.09 8.91016 -238.46 7.7998 -238.46
+c-15.9795 -114.38 -111.07 -108.85 -111.07 -108.85c-18.9492 0.230469 -54.25 9.40039 -67.2695 39.8301zM280.76 212.63c-1 -1.91992 -2.2002 -6 0.850586 -7c14.0898 -4.92969 39.75 -6.83984 45.8799 -5.53027c3.10938 0.25 3.0498 4.43066 2.47949 6.65039
+c-3.5293 21.8496 -40.8301 26.5 -49.2393 5.91992z" />
+ <glyph glyph-name="itch-io" unicode="" horiz-adv-x="512"
+d="M71.9199 413.23c19.2197 1.66992 114.32 2.76953 184.08 2.76953s116.56 -0.400391 184 -2.73047c21.7197 -12.9297 64.5195 -62.0996 64.9199 -75v-21.3398c0 -27.0596 -25.25 -50.8398 -48.25 -50.8398c-27.54 0 -50.54 22.8799 -50.54 50
+c0 -27.1494 -22.2295 -50 -49.7598 -50s-49 22.8799 -49 50c0 -27.1494 -23.5898 -50 -51.1602 -50h-0.5c-27.5703 0 -51.1602 22.8799 -51.1602 50c0 -27.1494 -21.4199 -50 -49 -50s-49.7598 22.8799 -49.7598 50c0 -27.1494 -22.9697 -50 -50.54 -50
+c-22.96 0 -48.25 23.7803 -48.25 50.8398v21.3398c0.400391 12.8906 43.2002 62.0605 64.9199 74.9609zM204.24 278.84c9.14844 -15.9902 31.5527 -28.9785 49.9746 -28.9785c0.498047 0 1.30664 0.0126953 1.80469 0.0283203c28.7109 0 44.6602 16.4502 51.7607 28.9404
+c22 -38.3398 77.8496 -38.7598 99.8496 -0.240234c13.1201 -23.0596 43.0801 -32.0996 56 -27.6602c3.57031 -37.1494 13.9004 -236.88 -17.75 -269.149c-77.6797 -18.1201 -299.76 -18.6699 -379.76 0c-31.4004 32.0195 -21.6006 229 -17.7305 269.149
+c12.8301 -4.41016 42.8301 4.52051 56 27.6602c21.9502 -38.46 77.8506 -38.1494 99.8506 0.25zM162.66 225.07l-0.0205078 -0.0703125c-52.3193 0 -65.21 -77.4502 -83.8799 -144.45c-17.2598 -62.1494 5.52051 -63.6699 33.9404 -63.7295
+c42.1494 1.56934 65.4902 32.1797 65.4902 62.79c53.6191 -8.79004 116.3 -6.43066 155.55 0c0 -30.6104 23.3398 -61.2207 65.4902 -62.79c28.4297 0.0595703 51.21 1.58008 33.9492 63.7295c-18.6494 66.9199 -31.54 144.45 -83.8701 144.45
+c-16.46 0 -31.0898 0 -49.25 -19.71c-12.1377 1.23145 -31.8896 2.23047 -44.0898 2.23047c-12.1992 0 -31.9521 -0.999023 -44.0898 -2.23047c-18.1299 19.7803 -32.75 19.7803 -49.2197 19.7803zM256 177.21l-0.0595703 -0.00976562s44.3496 -40.7598 52.3496 -55.2402
+l-29 1.16992v-25.2803c0 -1.15918 -11.6602 -0.699219 -23.3096 -0.15918c-1.99023 0 -23.3301 -1.39062 -23.3301 0.15918v25.3203l-29 -1.16992c7.96973 14.4404 52.3496 55.21 52.3496 55.21z" />
+ <glyph glyph-name="salesforce" unicode="" horiz-adv-x="640"
+d="M248.89 202.36h-26.3496c0.69043 5.15918 3.32031 14.1201 13.6396 14.1201c6.75 0 11.9707 -3.82031 12.71 -14.1201zM385.55 216.24c0.450195 0 14.1104 1.75977 14.1104 -20c0 -6.45996 -1.11035 -20 -14.1104 -20c-0.479492 0 -14.1094 -1.77051 -14.1094 20
+c0 21.7695 13.6396 20 14.1094 20zM142.33 192.48c4.2002 3.60938 15.6104 2.71973 20.9297 1.64941v-16.9395c-5.85938 -1.1709 -16.2295 -2.75 -20.9297 0.949219c-1.20996 1 -3.29004 2.27051 -3.29004 7.05078
+c-0.0078125 0.137695 -0.0146484 0.361328 -0.0146484 0.499023c0 2.31738 1.48047 5.36035 3.30469 6.79102zM640 216c0 -87.5801 -80 -154.39 -165.36 -136.43c-18.3701 -33 -70.7295 -70.75 -132.199 -41.6299c-41.1602 -96.0508 -177.891 -92.1807 -213.811 5.16992
+c-119.72 -23.8906 -178.82 138.37 -75.2695 199.279c-34.75 79.4307 22.6396 173.61 114.31 173.61c33.834 -0.0214844 77.9883 -21.8389 98.5605 -48.7002c20.6992 21.4004 49.3994 34.8105 81.1494 34.8105c42.3398 0 79 -23.5205 98.7998 -58.5703
+c92.8203 40.6797 193.82 -28.2305 193.82 -127.54zM120.45 184.2c0 11.7598 -11.6904 15.1699 -17.8701 17.1699c-5.27051 2.11035 -13.4102 3.50977 -13.4102 8.93945c0 9.45996 17 6.66016 25.1699 2.12012c0 0 1.16992 -0.709961 1.64062 0.470703
+c0.239258 0.699219 2.35938 6.58008 2.58984 7.29004c0.0292969 0.0927734 0.0537109 0.24707 0.0537109 0.34375c0 0.441406 -0.337891 0.918945 -0.753906 1.06543c-12.3301 7.63086 -40.7002 8.51074 -40.7002 -12.6992c0 -12.46 11.4902 -15.4404 17.8799 -17.1699
+c4.71973 -1.58008 13.1699 -3 13.1699 -8.7002c0 -4 -3.5293 -7.06055 -9.16992 -7.06055c-5.82617 0.00976562 -14.3379 2.85449 -19 6.35059c-0.469727 0.229492 -1.41992 0.709961 -1.64941 -0.709961l-2.40039 -7.4707
+c-0.469727 -0.939453 0.230469 -1.17969 0.230469 -1.40918c1.75 -1.40039 10.2998 -6.59082 22.8193 -6.59082c13.1699 0 21.4004 7.06055 21.4004 18.1104v-0.0498047zM152.45 226.78c-10.1299 0 -18.6602 -3.16992 -21.4004 -5.18066
+c-0.237305 -0.164062 -0.430664 -0.532227 -0.430664 -0.822266c0 -0.178711 0.0859375 -0.442383 0.19043 -0.586914l2.59082 -7.06055c0.114258 -0.399414 0.544922 -0.723633 0.960938 -0.723633c0.0605469 0 0.15918 0.0107422 0.21875 0.0234375
+c0.650391 0 6.7998 4 16.9297 4c4 0 7.06055 -0.709961 9.18066 -2.35938c3.59961 -2.80078 3.05957 -8.29004 3.05957 -10.5801c-4.79004 0.299805 -19.1104 3.43945 -29.4102 -3.75977c-4.05762 -2.7832 -7.34961 -9.03418 -7.34961 -13.9541
+c0 -0.162109 0.00390625 -0.424805 0.00976562 -0.585938c0 -5.90039 1.50977 -10.4004 6.58984 -14.3506c12.2402 -8.16016 36.2803 -2 38.1006 -1.41016c1.5791 0.320312 3.5293 0.660156 3.5293 1.87988v33.8809c0.0400391 4.60938 0.320312 21.6396 -22.7793 21.6396z
+M199 247.76c0.000976562 0.0205078 0.00195312 0.0527344 0.00195312 0.0722656c0 0.613281 -0.49707 1.11035 -1.10938 1.11035c-0.0205078 0 -0.0527344 -0.000976562 -0.0722656 -0.00195312h-9.82031
+c-0.0175781 0.000976562 -0.0449219 0.000976562 -0.0625 0.000976562c-0.612305 0 -1.10938 -0.49707 -1.10938 -1.10938c0 -0.0205078 0.000976562 -0.0527344 0.00195312 -0.0722656v-79c-0.000976562 -0.0195312 -0.00195312 -0.0517578 -0.00195312 -0.0712891
+c0 -0.613281 0.49707 -1.11035 1.10938 -1.11035c0.0175781 0 0.0449219 0.000976562 0.0625 0.00195312h9.87988c0.0205078 -0.000976562 0.0527344 -0.00195312 0.0722656 -0.00195312c0.613281 0 1.11035 0.49707 1.11035 1.10938
+c0 0.0205078 -0.000976562 0.0527344 -0.00292969 0.0722656zM254.75 218.83c-2.09961 2.30957 -6.79004 7.53027 -17.6504 7.53027c-3.50977 0 -14.1592 -0.230469 -20.6992 -8.94043c-6.35059 -7.62988 -6.58008 -18.1104 -6.58008 -21.4102
+c0 -3.12012 0.149414 -14.2598 7.05957 -21.1699c2.63965 -2.91016 9.06055 -8.22949 22.8105 -8.22949c10.8193 0 16.4697 2.34961 18.5791 3.75977c0.470703 0.240234 0.710938 0.709961 0.240234 1.87988l-2.34961 6.83008
+c-0.1875 0.402344 -0.699219 0.728516 -1.14258 0.728516c-0.0751953 0 -0.194336 -0.0126953 -0.267578 -0.0283203c-2.58984 -0.94043 -6.34961 -2.82031 -15.29 -2.82031c-17.4199 0 -16.8496 14.7402 -16.9404 16.7002h37.1709
+c0.522461 0.0107422 1.04688 0.431641 1.16992 0.939453c-0.290039 0 2.06934 14.7002 -6.09082 24.2305h-0.0195312zM291.44 166.14c13.1699 0 21.4092 7.06055 21.4092 18.1104c0 11.7598 -11.6992 15.1699 -17.8799 17.1699
+c-4.13965 1.66016 -13.4102 3.37988 -13.4102 8.94043c0 3.75977 3.29004 6.34961 8.4707 6.34961c4.87988 -0.0976562 12.3613 -1.99316 16.7002 -4.22949c4.33789 -2.2373 1.17969 -0.710938 1.64941 0.469727c0.230469 0.700195 2.35059 6.58008 2.58008 7.29004
+c0.0292969 0.0927734 0.0537109 0.24707 0.0537109 0.34375c0 0.441406 -0.337891 0.918945 -0.753906 1.06641c-7.91016 4.89941 -16.7402 4.93945 -20.2295 4.93945c-12 0 -20.46 -7.29004 -20.46 -17.6396c0 -12.46 11.4795 -15.4404 17.8701 -17.1699
+c6.10938 -2 13.1699 -3.26074 13.1699 -8.7002c0 -4 -3.52051 -7.06055 -9.16992 -7.06055c-5.82617 0.0126953 -14.3379 2.85742 -19 6.35059c-0.155273 0.132812 -0.447266 0.241211 -0.651367 0.241211c-0.526367 0 -0.973633 -0.426758 -0.999023 -0.951172
+l-2.34961 -7.52051c-0.470703 -0.939453 0.229492 -1.17969 0.229492 -1.40918c1.71973 -1.40039 10.3301 -6.59082 22.79 -6.59082h-0.0195312zM357.09 224c0 0.709961 -0.240234 1.17969 -1.17969 1.17969h-11.7598c0 0.140625 0.939453 8.94043 4.46973 12.4707
+c4.16016 4.14941 11.7598 1.63965 12 1.63965c1.16992 -0.469727 1.41016 0 1.63965 0.469727l2.83008 7.77051c0.700195 0.939453 0 1.16992 -0.240234 1.41016c-5.08984 2 -17.3496 2.86914 -24.46 -4.24023c-5.47949 -5.48047 -7 -13.9199 -8 -19.5205h-8.46973
+c-0.600586 -0.0498047 -1.125 -0.578125 -1.16992 -1.17969l-1.41992 -7.75977c0 -0.700195 0.240234 -1.16992 1.17969 -1.16992h8.23047c-8.50977 -47.9004 -8.75 -50.21 -10.3506 -55.5205c-1.08008 -3.62012 -3.29004 -6.89941 -5.87988 -7.75977
+c-0.0898438 0 -3.87988 -1.67969 -9.63965 0.240234c0 0 -0.94043 0.469727 -1.41016 -0.709961c-0.240234 -0.709961 -2.58984 -6.82031 -2.83008 -7.53027s0 -1.41016 0.469727 -1.41016c5.11035 -2 13 -1.76953 17.8809 0
+c6.2793 2.28027 9.71973 7.88965 11.5293 12.9404c2.75 7.70996 2.81055 9.79004 11.7598 59.7393h12.2305c0.601562 0.0498047 1.13086 0.578125 1.17969 1.18066zM410.48 208c-0.560547 1.67969 -5.10059 18.1104 -25.1709 18.1104c-15.25 0 -23 -10 -25.1592 -18.1104
+c-1 -3 -3.18066 -14 0 -23.5195c0.0898438 -0.300781 4.40918 -18.1201 25.1592 -18.1201c14.9502 0 22.9004 9.60938 25.1709 18.1201c3.20996 9.60938 1.00977 20.5195 0 23.5195zM455.88 224.7c-5 1.64941 -16.6201 1.89941 -22.1104 -5.41016v4.46973
+c0.000976562 0.0175781 0.00195312 0.0449219 0.00195312 0.0625c0 0.612305 -0.49707 1.11035 -1.10938 1.11035c-0.0205078 0 -0.0527344 -0.000976562 -0.0722656 -0.00292969h-9.39941c-0.0205078 0.00195312 -0.0527344 0.00292969 -0.0722656 0.00292969
+c-0.612305 0 -1.11035 -0.498047 -1.11035 -1.11035c0 -0.0175781 0.000976562 -0.0449219 0.00195312 -0.0625v-55.2793c-0.000976562 -0.0175781 -0.00195312 -0.0449219 -0.00195312 -0.0625c0 -0.618164 0.501953 -1.12012 1.12012 -1.12012
+c0.0175781 0 0.0449219 0.000976562 0.0625 0.00195312h9.63965c0.0166016 -0.000976562 0.0449219 -0.00195312 0.0615234 -0.00195312c0.618164 0 1.12012 0.501953 1.12012 1.12012c0 0.0175781 -0.000976562 0.0449219 -0.00195312 0.0625v27.7695
+c0 2.91016 0.0498047 11.3701 4.45996 15.0498c4.90039 4.90039 12 3.36035 13.4102 3.06055c0.555664 0.00976562 1.1875 0.430664 1.41016 0.939453c0.972656 2.15918 2.34375 5.74316 3.05957 8c0.0449219 0.113281 0.0800781 0.302734 0.0800781 0.423828
+c0 0.356445 -0.246094 0.798828 -0.549805 0.986328v-0.00976562zM502.69 170.6l-2.12012 7.29004c-0.470703 1.18066 -1.41016 0.709961 -1.41016 0.709961c-4.23047 -1.81934 -10.1504 -1.88965 -11.29 -1.88965c-4.63965 0 -17.1699 1.12988 -17.1699 19.7598
+c0 6.23047 1.84961 19.7607 16.4697 19.7607c0.245117 0.00585938 0.643555 0.0107422 0.888672 0.0107422c3.00586 0 7.76855 -0.744141 10.6318 -1.66113c2.8623 -0.916992 0.939453 -0.469727 1.17969 0.709961c0.939453 2.58984 1.63965 4.46973 2.58984 7.53027
+c0.230469 0.939453 -0.469727 1.16992 -0.709961 1.16992c-11.5898 3.87012 -22.3398 2.5293 -27.7598 0c-1.58984 -0.740234 -16.2305 -6.49023 -16.2305 -27.5205c0 -2.89941 -0.580078 -30.1094 28.9404 -30.1094c4.42383 0.00878906 11.377 1.27637 15.5195 2.83008
+c0.290039 0.214844 0.525391 0.682617 0.525391 1.04395c0 0.105469 -0.0244141 0.274414 -0.0546875 0.375977v-0.0107422zM556.56 210.12c-0.799805 3 -5.36914 16.2295 -22.3496 16.2295c-16 0 -23.5195 -10.1094 -25.6396 -18.5898
+c-0.913086 -3.0166 -1.6543 -8.02441 -1.6543 -11.1768c0 -0.161133 0.00195312 -0.421875 0.00390625 -0.583008c0 -25.8701 18.8398 -29.4004 29.8799 -29.4004c10.8203 0 16.46 2.35059 18.5801 3.76074c0.469727 0.239258 0.709961 0.709961 0.240234 1.87988
+l-2.36035 6.83008c-0.186523 0.402344 -0.698242 0.728516 -1.14258 0.728516c-0.0742188 0 -0.194336 -0.0126953 -0.267578 -0.0292969c-2.58984 -0.939453 -6.34961 -2.81934 -15.29 -2.81934c-17.4199 0 -16.8496 14.7402 -16.9297 16.7002h37.1602
+c0.522461 0.0126953 1.05078 0.433594 1.17969 0.939453c-0.239258 0.00976562 0.94043 7.07031 -1.41016 15.54v-0.00976562zM533.27 216.47c5.11035 0 11.8506 -2.2002 12.7305 -14.1201h-26.3701c0.639648 5.12012 3.31055 14.1201 13.6396 14.1201z" />
+ <glyph glyph-name="speaker-deck" unicode="" horiz-adv-x="512"
+d="M213.86 152h-113.86c-55.2002 0 -100 44.7998 -100 100s44.7998 100 100 100h132.84c22.0801 0 40 -17.9199 40 -40s-17.9199 -40 -40 -40h-134.84c-26.4697 0 -26.4502 -40 0 -40h113.82c55.1992 0 100 -44.7998 100 -100s-44.8008 -100 -100 -100h-171.82
+c-22.0801 0 -40 17.9199 -40 40s17.9199 40 40 40h173.86c26.4795 0 26.46 40 0 40zM298 32c23.5957 16.0176 46.4932 51.8574 51.1104 80h64.5498c10.8525 0.0927734 19.6602 8.97656 19.6602 19.8291v0.170898v120v0.170898c0 10.8525 -8.80762 19.7363 -19.6602 19.8291
+h-117.24c8.29199 9.4834 15.0205 27.4033 15.0205 40s-6.72852 30.5166 -15.0205 40h136.93c43.4404 0 78.6504 -35.8203 78.6504 -80v-160c0 -44.1797 -35.21 -80 -78.6504 -80h-135.35z" />
+ <glyph glyph-name="symfony" unicode="" horiz-adv-x="512"
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.74 296.46c15.3496 0.540039 19.7695 15.4404 19.5195 23.1299c-0.639648 18.0605 -19.6699 29.46 -44.8301 28.6504
+c-1.89941 -0.0703125 -65.2598 3.46973 -102.43 -105.53c-10.0596 8.29004 -57.7695 65.1602 -110.58 25.8096c-18.9502 -14.1797 -31.4199 -47.9199 -2.9502 -79.6699c16.9502 -18.1396 26.7207 -25.3301 22.25 -39.8496c-9.14941 -29.79 -55.5596 -16.1602 -51 -1.38965
+c1.36035 4.38965 3.49023 4.46973 6.28027 13.0693c7.74023 25.3203 -27.1104 37.75 -34.6201 13.6006c-4.32031 -14.0605 2.37988 -39.5107 38.3799 -50.6201c42.1602 -12.96 77.8203 10.0098 82.8799 39.9395c3.2002 18.75 -5.29004 32.6904 -20.7998 50.6201l-12.6299 14
+c-7.66016 7.7002 -10.29 20.7002 -2.37012 30.7002c6.69043 8.45996 16.2002 12.0605 31.8105 7.83008c22.7695 -6.16992 32.9199 -21.9697 49.8496 -34.7197c-1.23047 -4 -10.04 -32.3398 -18.2305 -82c-12.1094 -63.4902 -21.3496 -98.3506 -45.3496 -118.351
+c-4.83984 -3.48926 -11.7598 -8.63965 -22.1797 -9c-1.94043 -0.0595703 -14.1406 2.83984 -2.0498 12.5508c15.2393 8.3291 7.00977 34.75 -14.8809 34c-9.85938 -0.330078 -24.8691 -9.59082 -24.3096 -26.5908c0.580078 -17.5293 16.9297 -30.6895 41.5801 -29.8398
+c13.1797 0.44043 42.5801 5.7998 71.5801 40.2598c39.8496 46.7207 47.4395 102.2 58.2002 161.721c51.6797 -6.11035 77.2393 17.8398 77.5996 35.7002c0.549805 24.2998 -28 23.46 -32 5.2998c-1.91992 -8.83984 13.4199 -16.8105 1.41992 -24.5605
+c-8.49023 -5.5 -23.71 -9.37012 -45.1396 -6.21973c10.2998 56.8496 19.1094 112.56 58.8896 113.85c2.70996 0.150391 12.6396 -0.119141 12.8701 -6.66992c0.150391 -5.41016 -6.7998 -9.66992 -6.53027 -18.8496c0.370117 -10.4199 8.2998 -17.2803 19.7705 -16.8701z
+" />
+ <glyph glyph-name="waze" unicode="" horiz-adv-x="512"
+d="M502.17 246.33c14.5205 -85.8604 -30.9395 -167.92 -113.17 -208.13c13 -34.1006 -12.4004 -70.2002 -48.3203 -70.2002c-27.0625 0.0214844 -50.166 21.9736 -51.5693 49c-6.44043 -0.19043 -64.2002 0 -76.3301 0.639648
+c-1.10645 -27.3809 -24.2441 -49.6035 -51.6484 -49.6035c-0.588867 0 -1.54395 0.0195312 -2.13184 0.0439453c-33.8604 1.36035 -57.9502 34.8398 -47 67.9199c-37.21 13.1104 -72.54 34.8701 -99.6201 70.7998c-13 17.2803 -0.479492 41.7998 20.8398 41.7998
+c46.3105 0 32.2207 54.1699 43.1504 110.261c18.4297 93.9395 116.75 157.14 211.72 157.14c102.48 0 197.15 -70.6699 214.08 -169.67zM373.51 59.7197c42 19.1807 81.3301 56.71 96.29 102.141c40.4805 123.09 -64.1494 228 -181.71 228
+c-83.4502 0 -170.32 -55.4199 -186.07 -136c-9.5293 -48.9102 5 -131.351 -68.75 -131.351c24.9404 -33.1094 58.3301 -52.6201 93.7305 -64.0498c24.6602 21.7998 63.8701 15.4697 79.8301 -14.3398c14.2197 -1 79.1895 -1.17969 87.9004 -0.820312
+c7.9502 15.5303 28.5635 28.1348 46.0107 28.1348c10.2002 0 24.8799 -5.24805 32.7686 -11.7148zM205.12 260.87c0 34.7402 50.8398 34.75 50.8398 0s-50.8398 -34.7402 -50.8398 0zM321.69 260.87c0 34.7402 50.8594 34.75 50.8594 0s-50.8594 -34.75 -50.8594 0z
+M199.08 190.18c-3.44043 16.9404 22.1797 22.1807 25.6201 5.20996l0.0595703 -0.279297c4.14062 -21.4199 29.8506 -44 64.1201 -43.0703c35.6797 0.94043 59.25 22.21 64.1104 42.7695c4.45996 16.0508 28.5996 10.3604 25.4697 -6
+c-5.22949 -22.1797 -31.21 -62 -91.46 -62.8994c-42.5498 0 -80.8799 27.8398 -87.9004 64.25z" />
+ <glyph glyph-name="yammer" unicode="" horiz-adv-x="512"
+d="M421.78 295.83c-48.1602 -26.3896 -118.561 -58.1504 -130.2 -50s91.4395 80.3701 106.689 88.7695c0.920898 0.5 1.80078 0.970703 2.63086 1.40039c1.76562 0.521484 4.69336 0.945312 6.53516 0.945312c12.7295 0 23.0605 -10.3311 23.0605 -23.0596
+c0 -6.14453 -3.90527 -14.2334 -8.71582 -18.0557zM421.78 78.6602c4.76855 -3.82324 8.63965 -11.8877 8.63965 -18c0 -12.7344 -10.335 -23.0703 -23.0703 -23.0703c-1.81641 0 -4.70605 0.412109 -6.44922 0.919922
+c-0.830078 0.410156 -1.70996 0.900391 -2.63086 1.41016c-15.2695 8.38965 -118.25 80.6396 -106.689 88.7402c11.5596 8.09961 82.04 -23.6201 130.2 -50zM464.21 211c10.0947 -2.11328 18.2559 -12.1992 18.2559 -22.5117
+c0 -10.7881 -8.63965 -20.9561 -19.2861 -22.6982c-54.9102 0.0195312 -131.93 6.00977 -138.21 18.7598c-6.2793 12.75 118.84 26.5098 136.24 26.5098c1.0498 0 2.0498 -0.0595703 3 -0.0595703zM31 351.35c-0.699219 2.10742 -1.2666 5.61914 -1.2666 7.83887
+c0 13.7334 11.1455 24.8799 24.8799 24.8799c8.72949 0 18.8213 -6.41504 22.5264 -14.3184l81 -205.06h1.20996l77 203.529c3.22559 8.26074 13.041 14.9648 21.9092 14.9648c12.9834 0 23.5205 -10.5371 23.5205 -23.5195
+c0 -1.89258 -0.438477 -4.90137 -0.979492 -6.71484l-109.6 -273.391c-18.5498 -47.2197 -37.1201 -79.5596 -93.29 -79.5596c-0.151367 -0.000976562 -0.395508 -0.000976562 -0.545898 -0.000976562c-6.4668 0 -16.8887 0.874023 -23.2646 1.95117
+c-8.52051 2.44238 -15.4365 11.6201 -15.4365 20.4844c0 11.7637 9.54688 21.3105 21.3096 21.3105c0.28418 0 0.744141 -0.0117188 1.02734 -0.0253906c0.660156 -0.0595703 10.9102 -0.660156 13.8604 -0.660156c30.4697 0 43.7393 18.9404 58.0693 59.4102z" />
+ <glyph glyph-name="git-alt" unicode=""
+d="M439.55 211.95c4.66504 -4.66602 8.45117 -13.8076 8.45117 -20.4053s-3.78613 -15.7393 -8.45117 -20.4053l-194.689 -194.689c-4.66602 -4.66211 -13.8047 -8.44629 -20.4004 -8.44629s-15.7344 3.78418 -20.4004 8.44629l-195.609 195.6
+c-4.66504 4.66602 -8.45117 13.8076 -8.45117 20.4053s3.78613 15.7393 8.45117 20.4053l134.12 134.14l50.79 -50.8496c-5.95996 -14.2607 -2.16016 -36.4902 18.6396 -45v-123c-22.3203 -9.09082 -28.8203 -38.4004 -11.25 -56
+c5.55176 -5.54883 16.4268 -10.0518 24.2754 -10.0518c7.84766 0 18.7236 4.50293 24.2744 10.0518c13.1807 13.1494 16.2197 42.46 -9.08008 55v121.85l46.3506 -46.29c-14.21 -34.4697 29.5098 -63.8301 56 -37.3398c25.71 25.6895 -1.24023 68.4902 -35.4707 56.6895
+l-49.6592 49.6602c9.29004 26.9102 -16.3301 52.8203 -43.3906 43.6807l-51.5195 51.5195l40.6602 40.6299c4.66602 4.66309 13.8076 8.44727 20.4043 8.44727s15.7383 -3.78418 20.4053 -8.44727z" />
+ <glyph glyph-name="stackpath" unicode=""
+d="M244.6 215.6c0 -8.5 -4.25977 -20.4893 -21.3398 -20.4893h-19.6094v41.4697h19.6094c17.1299 0 21.3398 -12.3604 21.3398 -20.9805zM448 416v-448h-448v448h448zM151.3 160.16c0 21.2402 -12.1201 34.54 -46.7197 44.8496c-20.5703 7.41016 -26 10.9102 -26 18.6299
+c0 7.7207 7 14.6104 20.4102 14.6104c14.0898 0 20.79 -8.4502 20.79 -18.3496h30.7002l0.189453 0.569336c0.5 19.5703 -15.0596 41.6504 -51.1201 41.6504c-23.3701 0 -52.5498 -10.75 -52.5498 -38.29c0 -19.4004 9.25 -31.29 50.7402 -44.3701
+c17.2598 -6.15039 21.9102 -10.4004 21.9102 -19.4795c0 -15.2002 -19.1309 -14.2305 -19.4707 -14.2305c-20.3994 0 -25.6494 9.09961 -25.6494 21.9004h-30.7998l-0.180664 -0.560547c-0.679688 -31.3203 28.3799 -45.2197 56.6299 -45.2197
+c29.9805 0 51.1201 13.5498 51.1201 38.29zM276.68 215.79c0 25.2998 -18.4297 45.46 -53.4199 45.46h-51.7793v-138.18h32.1699v47.3594h19.6094c30.25 0 53.4199 15.9502 53.4199 45.3604zM297.94 123l49.0596 138.22h-31.0898l-47.9102 -138.22h29.9404zM404.46 261.22
+h-31.0898l-47.9102 -138.22h29.9404z" />
+ </font>
+</defs></svg>
--- /dev/null
+<?xml version="1.0" standalone="no"?>
+<!--
+Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+-->
+<!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" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata>
+Created by FontForge 20190112 at Tue Jun 4 15:15:41 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+</metadata>
+<defs>
+<font id="FontAwesome5Free-Regular" horiz-adv-x="512" >
+ <font-face
+ font-family="Font Awesome 5 Free Regular"
+ font-weight="400"
+ font-stretch="normal"
+ units-per-em="512"
+ panose-1="2 0 5 3 0 0 0 0 0 0"
+ ascent="448"
+ descent="-64"
+ bbox="-0.0663408 -64.0662 640.01 448.1"
+ underline-thickness="25"
+ underline-position="-51"
+ unicode-range="U+0020-F5C8"
+ />
+ <missing-glyph />
+ <glyph glyph-name="heart" unicode=""
+d="M458.4 383.7c75.2998 -63.4004 64.0996 -166.601 10.5996 -221.3l-175.4 -178.7c-10 -10.2002 -23.2998 -15.7998 -37.5996 -15.7998c-14.2002 0 -27.5996 5.69922 -37.5996 15.8994l-175.4 178.7c-53.5996 54.7002 -64.5996 157.9 10.5996 221.2
+c57.8008 48.7002 147.101 41.2998 202.4 -15c55.2998 56.2998 144.6 63.5996 202.4 15zM434.8 196.2c36.2002 36.8994 43.7998 107.7 -7.2998 150.8c-38.7002 32.5996 -98.7002 27.9004 -136.5 -10.5996l-35 -35.7002l-35 35.7002
+c-37.5996 38.2998 -97.5996 43.1992 -136.5 10.5c-51.2002 -43.1006 -43.7998 -113.5 -7.2998 -150.7l175.399 -178.7c2.40039 -2.40039 4.40039 -2.40039 6.80078 0z" />
+ <glyph glyph-name="star" unicode="" horiz-adv-x="576"
+d="M528.1 276.5c26.2002 -3.7998 36.7002 -36.0996 17.7002 -54.5996l-105.7 -103l25 -145.5c4.5 -26.3008 -23.1992 -45.9004 -46.3994 -33.7002l-130.7 68.7002l-130.7 -68.7002c-23.2002 -12.2998 -50.8994 7.39941 -46.3994 33.7002l25 145.5l-105.7 103
+c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2998l65.2998 132.4c11.7998 23.8994 45.7002 23.5996 57.4004 0l65.2998 -132.4zM388.6 135.7l100.601 98l-139 20.2002l-62.2002 126l-62.2002 -126l-139 -20.2002l100.601 -98l-23.7002 -138.4l124.3 65.2998
+l124.3 -65.2998z" />
+ <glyph glyph-name="user" unicode="" horiz-adv-x="448"
+d="M313.6 144c74.2002 0 134.4 -60.2002 134.4 -134.4v-25.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v25.5996c0 74.2002 60.2002 134.4 134.4 134.4c28.7998 0 42.5 -16 89.5996 -16s60.9004 16 89.5996 16zM400 -16v25.5996
+c0 47.6006 -38.7998 86.4004 -86.4004 86.4004c-14.6992 0 -37.8994 -16 -89.5996 -16c-51.2998 0 -75 16 -89.5996 16c-47.6006 0 -86.4004 -38.7998 -86.4004 -86.4004v-25.5996h352zM224 160c-79.5 0 -144 64.5 -144 144s64.5 144 144 144s144 -64.5 144 -144
+s-64.5 -144 -144 -144zM224 400c-52.9004 0 -96 -43.0996 -96 -96s43.0996 -96 96 -96s96 43.0996 96 96s-43.0996 96 -96 96z" />
+ <glyph glyph-name="clock" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM317.8 96.4004l-84.8994 61.6992
+c-3.10059 2.30078 -4.90039 5.90039 -4.90039 9.7002v164.2c0 6.59961 5.40039 12 12 12h32c6.59961 0 12 -5.40039 12 -12v-141.7l66.7998 -48.5996c5.40039 -3.90039 6.5 -11.4004 2.60059 -16.7998l-18.8008 -25.9004c-3.89941 -5.2998 -11.3994 -6.5 -16.7998 -2.59961z
+" />
+ <glyph glyph-name="list-alt" unicode=""
+d="M464 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416zM458 16c3.31152 0 6 2.68848 6 6v340c0 3.31152 -2.68848 6 -6 6h-404c-3.31152 0 -6 -2.68848 -6 -6v-340
+c0 -3.31152 2.68848 -6 6 -6h404zM416 108v-24c0 -6.62695 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h200c6.62695 0 12 -5.37305 12 -12zM416 204v-24c0 -6.62695 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37305 -12 12
+v24c0 6.62695 5.37305 12 12 12h200c6.62695 0 12 -5.37305 12 -12zM416 300v-24c0 -6.62695 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h200c6.62695 0 12 -5.37305 12 -12zM164 288c0 -19.8818 -16.1182 -36 -36 -36
+s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36zM164 192c0 -19.8818 -16.1182 -36 -36 -36s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36zM164 96c0 -19.8818 -16.1182 -36 -36 -36s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36z" />
+ <glyph glyph-name="flag" unicode=""
+d="M336.174 368c35.4668 0 73.0195 12.6914 108.922 28.1797c31.6406 13.6514 66.9043 -9.65723 66.9043 -44.1162v-239.919c0 -16.1953 -8.1543 -31.3057 -21.7129 -40.1631c-26.5762 -17.3643 -70.0693 -39.9814 -128.548 -39.9814c-68.6084 0 -112.781 32 -161.913 32
+c-56.5674 0 -89.957 -11.2803 -127.826 -28.5566v-83.4434c0 -8.83691 -7.16309 -16 -16 -16h-16c-8.83691 0 -16 7.16309 -16 16v406.438c-14.3428 8.2998 -24 23.7979 -24 41.5615c0 27.5693 23.2422 49.71 51.2012 47.8965
+c22.9658 -1.49023 41.8662 -19.4717 44.4805 -42.3379c0.177734 -1.52441 0.321289 -4.00781 0.321289 -5.54199c0 -4.30176 -1.10352 -11.1035 -2.46289 -15.1846c22.418 8.68555 49.4199 15.168 80.7207 15.168c68.6084 0 112.781 -32 161.913 -32zM464 112v240
+c-31.5059 -14.6338 -84.5547 -32 -127.826 -32c-59.9111 0 -101.968 32 -161.913 32c-41.4365 0 -80.4766 -16.5879 -102.261 -32v-232c31.4473 14.5967 84.4648 24 127.826 24c59.9111 0 101.968 -32 161.913 -32c41.4365 0 80.4775 16.5879 102.261 32z" />
+ <glyph glyph-name="bookmark" unicode="" horiz-adv-x="384"
+d="M336 448c26.5098 0 48 -21.4902 48 -48v-464l-192 112l-192 -112v464c0 26.5098 21.4902 48 48 48h288zM336 19.5703v374.434c0 3.31348 -2.68555 5.99609 -6 5.99609h-276c-3.31152 0 -6 -2.68848 -6 -6v-374.43l144 84z" />
+ <glyph glyph-name="image" unicode=""
+d="M464 384c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416zM458 48c3.31152 0 6 2.68848 6 6v276c0 3.31152 -2.68848 6 -6 6h-404c-3.31152 0 -6 -2.68848 -6 -6v-276
+c0 -3.31152 2.68848 -6 6 -6h404zM128 296c22.0908 0 40 -17.9092 40 -40s-17.9092 -40 -40 -40s-40 17.9092 -40 40s17.9092 40 40 40zM96 96v48l39.5137 39.5146c4.6875 4.68652 12.2852 4.68652 16.9717 0l39.5146 -39.5146l119.514 119.515
+c4.6875 4.68652 12.2852 4.68652 16.9717 0l87.5146 -87.5146v-80h-320z" />
+ <glyph glyph-name="edit" unicode="" horiz-adv-x="576"
+d="M402.3 103.1l32 32c5 5 13.7002 1.5 13.7002 -5.69922v-145.4c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h273.5c7.09961 0 10.7002 -8.59961 5.7002 -13.7002l-32 -32c-1.5 -1.5 -3.5 -2.2998 -5.7002 -2.2998h-241.5v-352h352
+v113.5c0 2.09961 0.799805 4.09961 2.2998 5.59961zM558.9 304.9l-262.601 -262.601l-90.3994 -10c-26.2002 -2.89941 -48.5 19.2002 -45.6006 45.6006l10 90.3994l262.601 262.601c22.8994 22.8994 59.8994 22.8994 82.6992 0l43.2002 -43.2002
+c22.9004 -22.9004 22.9004 -60 0.100586 -82.7998zM460.1 274l-58.0996 58.0996l-185.8 -185.899l-7.2998 -65.2998l65.2998 7.2998zM524.9 353.7l-43.2002 43.2002c-4.10059 4.09961 -10.7998 4.09961 -14.7998 0l-30.9004 -30.9004l58.0996 -58.0996l30.9004 30.8994
+c4 4.2002 4 10.7998 -0.0996094 14.9004z" />
+ <glyph glyph-name="times-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM357.8 254.2l-62.2002 -62.2002l62.2002 -62.2002
+c4.7002 -4.7002 4.7002 -12.2998 0 -17l-22.5996 -22.5996c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-62.2002 62.2002l-62.2002 -62.2002c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-22.5996 22.5996c-4.7002 4.7002 -4.7002 12.2998 0 17l62.2002 62.2002l-62.2002 62.2002
+c-4.7002 4.7002 -4.7002 12.2998 0 17l22.5996 22.5996c4.7002 4.7002 12.2998 4.7002 17 0l62.2002 -62.2002l62.2002 62.2002c4.7002 4.7002 12.2998 4.7002 17 0l22.5996 -22.5996c4.7002 -4.7002 4.7002 -12.2998 0 -17z" />
+ <glyph glyph-name="check-circle" unicode=""
+d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM256 392c-110.549 0 -200 -89.4678 -200 -200c0 -110.549 89.4678 -200 200 -200c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200z
+M396.204 261.733c4.66699 -4.70508 4.63672 -12.3037 -0.0673828 -16.9717l-172.589 -171.204c-4.70508 -4.66797 -12.3027 -4.63672 -16.9697 0.0683594l-90.7812 91.5156c-4.66797 4.70605 -4.63672 12.3047 0.0683594 16.9717l22.7188 22.5361
+c4.70508 4.66699 12.3027 4.63574 16.9697 -0.0693359l59.792 -60.2773l141.353 140.216c4.70508 4.66797 12.3027 4.6377 16.9697 -0.0673828z" />
+ <glyph glyph-name="question-circle" unicode=""
+d="M256 440c136.957 0 248 -111.083 248 -248c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248zM256 -8c110.569 0 200 89.4697 200 200c0 110.529 -89.5088 200 -200 200c-110.528 0 -200 -89.5049 -200 -200
+c0 -110.569 89.4678 -200 200 -200zM363.244 247.2c0 -67.0518 -72.4209 -68.084 -72.4209 -92.8633v-6.33691c0 -6.62695 -5.37305 -12 -12 -12h-45.6475c-6.62695 0 -12 5.37305 -12 12v8.65918c0 35.7451 27.1006 50.0342 47.5791 61.5156
+c17.5615 9.84473 28.3242 16.541 28.3242 29.5791c0 17.2461 -21.999 28.6934 -39.7842 28.6934c-23.1885 0 -33.8936 -10.9775 -48.9424 -29.9697c-4.05664 -5.11914 -11.46 -6.07031 -16.666 -2.12402l-27.8232 21.0986
+c-5.10742 3.87207 -6.25098 11.0654 -2.64453 16.3633c23.627 34.6934 53.7217 54.1846 100.575 54.1846c49.0713 0 101.45 -38.3037 101.45 -88.7998zM298 80c0 -23.1592 -18.8408 -42 -42 -42s-42 18.8408 -42 42s18.8408 42 42 42s42 -18.8408 42 -42z" />
+ <glyph glyph-name="eye" unicode="" horiz-adv-x="576"
+d="M288 304c0.0927734 0 0.244141 0.000976562 0.336914 0.000976562c61.6641 0 111.71 -50.0469 111.71 -111.711c0 -61.6631 -50.0459 -111.71 -111.71 -111.71s-111.71 50.0469 -111.71 111.71c0 8.71289 1.95898 22.5781 4.37305 30.9502
+c6.93066 -3.94141 19.0273 -7.18457 27 -7.24023c30.9121 0 56 25.0879 56 56c-0.0556641 7.97266 -3.29883 20.0693 -7.24023 27c8.42383 2.62207 22.4189 4.8623 31.2402 5zM572.52 206.6c1.9209 -3.79883 3.47949 -10.3379 3.47949 -14.5947
+s-1.55859 -10.7959 -3.47949 -14.5947c-54.1992 -105.771 -161.59 -177.41 -284.52 -177.41s-230.29 71.5898 -284.52 177.4c-1.9209 3.79883 -3.47949 10.3379 -3.47949 14.5947s1.55859 10.7959 3.47949 14.5947c54.1992 105.771 161.59 177.41 284.52 177.41
+s230.29 -71.5898 284.52 -177.4zM288 48c98.6602 0 189.1 55 237.93 144c-48.8398 89 -139.27 144 -237.93 144s-189.09 -55 -237.93 -144c48.8398 -89 139.279 -144 237.93 -144z" />
+ <glyph glyph-name="eye-slash" unicode="" horiz-adv-x="640"
+d="M634 -23c3.31738 -2.65137 6.00977 -8.25098 6.00977 -12.498c0 -3.10449 -1.57715 -7.58984 -3.51953 -10.0117l-10 -12.4902c-2.65234 -3.31152 -8.24707 -6 -12.4902 -6c-3.09961 0 -7.58008 1.57227 -10 3.50977l-598 467.49
+c-3.31738 2.65137 -6.00977 8.25098 -6.00977 12.498c0 3.10449 1.57715 7.58984 3.51953 10.0117l10 12.4902c2.65234 3.31152 8.24707 6 12.4902 6c3.09961 0 7.58008 -1.57227 10 -3.50977zM296.79 301.53c6.33496 1.35059 16.7324 2.45801 23.21 2.46973
+c60.4805 0 109.36 -47.9102 111.58 -107.85zM343.21 82.46c-6.33496 -1.34375 -16.7334 -2.44629 -23.21 -2.45996c-60.4697 0 -109.35 47.9102 -111.58 107.84zM320 336c-19.8799 0 -39.2803 -2.7998 -58.2197 -7.09961l-46.4102 36.29
+c32.9199 11.8096 67.9297 18.8096 104.63 18.8096c122.93 0 230.29 -71.5898 284.57 -177.4c1.91992 -3.79883 3.47949 -10.3379 3.47949 -14.5947s-1.55957 -10.7959 -3.47949 -14.5947c-11.7197 -22.7598 -35.4189 -56.4092 -52.9004 -75.1104l-37.7402 29.5
+c14.333 15.0156 34.0449 41.9854 44 60.2002c-48.8398 89 -139.279 144 -237.93 144zM320 48c19.8896 0 39.2803 2.7998 58.2197 7.08984l46.4102 -36.2803c-32.9199 -11.7598 -67.9297 -18.8096 -104.63 -18.8096c-122.92 0 -230.28 71.5898 -284.51 177.4
+c-1.9209 3.79883 -3.47949 10.3379 -3.47949 14.5947s1.55859 10.7959 3.47949 14.5947c11.7168 22.7568 35.4111 56.4014 52.8896 75.1006l37.7402 -29.5c-14.3467 -15.0107 -34.0811 -41.9756 -44.0498 -60.1904c48.8496 -89 139.279 -144 237.93 -144z" />
+ <glyph glyph-name="calendar-alt" unicode="" horiz-adv-x="448"
+d="M148 160h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM256 172c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40
+c6.59961 0 12 -5.40039 12 -12v-40zM352 172c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM256 76c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40
+c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM160 76c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM352 76c0 -6.59961 -5.40039 -12 -12 -12h-40
+c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM448 336v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40
+c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="comment" unicode=""
+d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-32.7998 0 -64 5.2002 -92.9004 14.2998c-29.0996 -20.5996 -77.5996 -46.2998 -139.1 -46.2998c-9.59961 0 -18.2998 5.7002 -22.0996 14.5c-3.80078 8.7998 -2 19 4.59961 26
+c0.5 0.400391 31.5 33.7998 46.4004 73.2002c-33 35.0996 -52.9004 78.7002 -52.9004 126.3c0 114.9 114.6 208 256 208zM256 48c114.7 0 208 71.7998 208 160s-93.2998 160 -208 160s-208 -71.7998 -208 -160c0 -42.2002 21.7002 -74.0996 39.7998 -93.4004
+l20.6006 -21.7998l-10.6006 -28.0996c-5.5 -14.5 -12.5996 -28.1006 -19.8994 -40.2002c23.5996 7.59961 43.1992 18.9004 57.5 29l19.5 13.7998l22.6992 -7.2002c25.3008 -8 51.7002 -12.0996 78.4004 -12.0996z" />
+ <glyph glyph-name="folder" unicode=""
+d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h146.74c8.49023 0 16.6299 -3.37012 22.6299 -9.37012l54.6299 -54.6299h192zM464 48v224h-198.62
+c-8.49023 0 -16.6299 3.37012 -22.6299 9.37012l-54.6299 54.6299h-140.12v-288h416z" />
+ <glyph glyph-name="folder-open" unicode="" horiz-adv-x="576"
+d="M527.9 224c37.6992 0 60.6992 -41.5 40.6992 -73.4004l-79.8994 -128c-8.7998 -14.0996 -24.2002 -22.5996 -40.7002 -22.5996h-400c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h160l64 -64h160c26.5 0 48 -21.5 48 -48v-48h47.9004zM48 330v-233.4l62.9004 104.2
+c8.69922 14.4004 24.2998 23.2002 41.0996 23.2002h280v42c0 3.2998 -2.7002 6 -6 6h-173.9l-64 64h-134.1c-3.2998 0 -6 -2.7002 -6 -6zM448 48l80 128h-378.8l-77.2002 -128h376z" />
+ <glyph glyph-name="chart-bar" unicode=""
+d="M396.8 96c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v230.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-230.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004zM204.8 96
+c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v198.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-198.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004zM300.8 96
+c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v134.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-134.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004zM496 48c8.83984 0 16 -7.16016 16 -16v-16
+c0 -8.83984 -7.16016 -16 -16 -16h-464c-17.6699 0 -32 14.3301 -32 32v336c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-320h448zM108.8 96c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v70.4004c0 6.39941 6.40039 12.7998 12.7998 12.7998h22.4004
+c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-70.4004c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-22.4004z" />
+ <glyph glyph-name="comments" unicode="" horiz-adv-x="576"
+d="M532 61.7998c15.2998 -30.7002 37.4004 -54.5 37.7998 -54.7998c6.2998 -6.7002 8 -16.5 4.40039 -25c-3.7002 -8.5 -12 -14 -21.2002 -14c-53.5996 0 -96.7002 20.2998 -125.2 38.7998c-19 -4.39941 -39 -6.7998 -59.7998 -6.7998
+c-86.2002 0 -159.9 40.4004 -191.3 97.7998c-9.7002 1.2002 -19.2002 2.7998 -28.4004 4.90039c-28.5 -18.6006 -71.7002 -38.7998 -125.2 -38.7998c-9.19922 0 -17.5996 5.5 -21.1992 14c-3.7002 8.5 -1.90039 18.2998 4.39941 25
+c0.400391 0.399414 22.4004 24.1992 37.7002 54.8994c-27.5 27.2002 -44 61.2002 -44 98.2002c0 88.4004 93.0996 160 208 160c86.2998 0 160.3 -40.5 191.8 -98.0996c99.7002 -11.8008 176.2 -77.9004 176.2 -157.9c0 -37.0996 -16.5 -71.0996 -44 -98.2002zM139.2 154.1
+l19.7998 -4.5c16 -3.69922 32.5 -5.59961 49 -5.59961c86.7002 0 160 51.2998 160 112s-73.2998 112 -160 112s-160 -51.2998 -160 -112c0 -28.7002 16.2002 -50.5996 29.7002 -64l24.7998 -24.5l-15.5 -31.0996c-2.59961 -5.10059 -5.2998 -10.1006 -8 -14.8008
+c14.5996 5.10059 29 12.3008 43.0996 21.4004zM498.3 96c13.5 13.4004 29.7002 35.2998 29.7002 64c0 49.2002 -48.2998 91.5 -112.7 106c0.299805 -3.2998 0.700195 -6.59961 0.700195 -10c0 -80.9004 -78 -147.5 -179.3 -158.3
+c29.0996 -29.6006 77.2998 -49.7002 131.3 -49.7002c16.5 0 33 1.90039 49 5.59961l19.9004 4.60059l17.0996 -11.1006c14.0996 -9.09961 28.5 -16.2998 43.0996 -21.3994c-2.69922 4.7002 -5.39941 9.7002 -8 14.7998l-15.5 31.0996z" />
+ <glyph glyph-name="star-half" unicode="" horiz-adv-x="576"
+d="M288 62.7002v-54.2998l-130.7 -68.6006c-23.3994 -12.2998 -50.8994 7.60059 -46.3994 33.7002l25 145.5l-105.7 103c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2002l65.2998 132.4c5.90039 11.8994 17.2998 17.7998 28.7002 17.7998v-68.0996l-62.2002 -126
+l-139 -20.2002l100.601 -98l-23.7002 -138.4z" />
+ <glyph glyph-name="lemon" unicode=""
+d="M484.112 420.111c28.1221 -28.123 35.9434 -68.0039 19.0215 -97.0547c-23.0576 -39.584 50.1436 -163.384 -82.3311 -295.86c-132.301 -132.298 -256.435 -59.3594 -295.857 -82.3291c-29.0459 -16.917 -68.9219 -9.11426 -97.0576 19.0205
+c-28.1221 28.1221 -35.9434 68.0029 -19.0215 97.0547c23.0566 39.5859 -50.1436 163.386 82.3301 295.86c132.308 132.309 256.407 59.3496 295.862 82.332c29.0498 16.9219 68.9307 9.09863 97.0537 -19.0234zM461.707 347.217
+c13.5166 23.2031 -27.7578 63.7314 -50.4883 50.4912c-66.6025 -38.7939 -165.646 45.5898 -286.081 -74.8457c-120.444 -120.445 -36.0449 -219.472 -74.8447 -286.08c-13.542 -23.2471 27.8145 -63.6953 50.4932 -50.4883
+c66.6006 38.7949 165.636 -45.5996 286.076 74.8428c120.444 120.445 36.0449 219.472 74.8447 286.08zM291.846 338.481c1.37012 -10.96 -6.40332 -20.957 -17.3643 -22.3271c-54.8467 -6.85547 -135.779 -87.7871 -142.636 -142.636
+c-1.37305 -10.9883 -11.3984 -18.7334 -22.3262 -17.3643c-10.9609 1.37012 -18.7344 11.3652 -17.3643 22.3262c9.16211 73.2852 104.167 168.215 177.364 177.364c10.9531 1.36816 20.9561 -6.40234 22.3262 -17.3633z" />
+ <glyph glyph-name="credit-card" unicode="" horiz-adv-x="576"
+d="M527.9 416c26.5996 0 48.0996 -21.5 48.0996 -48v-352c0 -26.5 -21.5 -48 -48.0996 -48h-479.801c-26.5996 0 -48.0996 21.5 -48.0996 48v352c0 26.5 21.5 48 48.0996 48h479.801zM54.0996 368c-3.2998 0 -6 -2.7002 -6 -6v-42h479.801v42c0 3.2998 -2.7002 6 -6 6
+h-467.801zM521.9 16c3.2998 0 6 2.7002 6 6v170h-479.801v-170c0 -3.2998 2.7002 -6 6 -6h467.801zM192 116v-40c0 -6.59961 -5.40039 -12 -12 -12h-72c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h72c6.59961 0 12 -5.40039 12 -12zM384 116v-40
+c0 -6.59961 -5.40039 -12 -12 -12h-136c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h136c6.59961 0 12 -5.40039 12 -12z" />
+ <glyph glyph-name="hdd" unicode="" horiz-adv-x="576"
+d="M567.403 212.358c5.59668 -8.04688 8.59668 -17.6113 8.59668 -27.4121v-136.946c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v136.946c0 8.30957 3.85156 20.5898 8.59668 27.4121l105.08 151.053
+c7.90625 11.3652 25.5596 20.5889 39.4033 20.5889h0.000976562h269.838h0.000976562c13.8438 0 31.4971 -9.22363 39.4033 -20.5889zM153.081 336l-77.9131 -112h425.664l-77.9131 112h-269.838zM528 48v128h-480v-128h480zM496 112c0 -17.6729 -14.3271 -32 -32 -32
+s-32 14.3271 -32 32s14.3271 32 32 32s32 -14.3271 32 -32zM400 112c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32s32 -14.3271 32 -32z" />
+ <glyph glyph-name="hand-point-right" unicode=""
+d="M428.8 310.4c45.0996 0 83.2002 -38.1016 83.2002 -83.2002c0 -45.6162 -37.7646 -83.2002 -83.2002 -83.2002h-35.6475c-1.41602 -6.36719 -4.96875 -16.252 -7.92969 -22.0645c2.50586 -22.0059 -3.50293 -44.9775 -15.9844 -62.791
+c-1.14062 -52.4863 -37.3984 -91.1445 -99.9404 -91.1445h-21.2988c-60.0635 0 -98.5117 40 -127.2 40h-2.67871c-5.74707 -4.95215 -13.5361 -8 -22.1201 -8h-64c-17.6729 0 -32 12.8936 -32 28.7998v230.4c0 15.9062 14.3271 28.7998 32 28.7998h64.001
+c8.58398 0 16.373 -3.04785 22.1201 -8h2.67871c6.96387 0 14.8623 6.19336 30.1816 23.6689l0.128906 0.148438l0.130859 0.145508c8.85645 9.93652 18.1162 20.8398 25.8506 33.2529c18.7051 30.2471 30.3936 78.7842 75.707 78.7842c56.9277 0 92 -35.2861 92 -83.2002
+v-0.0839844c0 -6.21777 -0.974609 -16.2148 -2.17578 -22.3154h86.1768zM428.8 192c18.9756 0 35.2002 16.2246 35.2002 35.2002c0 18.7002 -16.7754 35.2002 -35.2002 35.2002h-158.399c0 17.3242 26.3994 35.1992 26.3994 70.3994c0 26.4004 -20.625 35.2002 -44 35.2002
+c-8.79395 0 -20.4443 -32.7119 -34.9258 -56.0996c-9.07422 -14.5752 -19.5244 -27.2256 -30.7988 -39.875c-16.1094 -18.374 -33.8359 -36.6328 -59.0752 -39.5967v-176.753c42.79 -3.7627 74.5088 -39.6758 120 -39.6758h21.2988
+c40.5244 0 57.124 22.1973 50.6006 61.3252c14.6113 8.00098 24.1514 33.9785 12.9248 53.625c19.3652 18.2246 17.7871 46.3809 4.9502 61.0498h91.0254zM88 64c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24z" />
+ <glyph glyph-name="hand-point-left" unicode=""
+d="M0 227.2c0 45.0986 38.1006 83.2002 83.2002 83.2002h86.1758c-1.3623 6.91016 -2.17578 14.374 -2.17578 22.3994c0 47.9141 35.0723 83.2002 92 83.2002c45.3135 0 57.002 -48.5371 75.7061 -78.7852c7.73438 -12.4121 16.9951 -23.3154 25.8506 -33.2529
+l0.130859 -0.145508l0.128906 -0.148438c15.3213 -17.4746 23.2197 -23.668 30.1836 -23.668h2.67871c5.74707 4.95215 13.5361 8 22.1201 8h64c17.6729 0 32 -12.8936 32 -28.7998v-230.4c0 -15.9062 -14.3271 -28.7998 -32 -28.7998h-64
+c-8.58398 0 -16.373 3.04785 -22.1201 8h-2.67871c-28.6885 0 -67.1367 -40 -127.2 -40h-21.2988c-62.542 0 -98.8008 38.6582 -99.9404 91.1445c-12.4814 17.8135 -18.4922 40.7852 -15.9844 62.791c-2.96094 5.8125 -6.51367 15.6973 -7.92969 22.0645h-35.6465
+c-45.4355 0 -83.2002 37.584 -83.2002 83.2002zM48 227.2c0 -18.9756 16.2246 -35.2002 35.2002 -35.2002h91.0244c-12.8369 -14.6689 -14.415 -42.8252 4.9502 -61.0498c-11.2256 -19.6465 -1.68652 -45.624 12.9248 -53.625
+c-6.52246 -39.1279 10.0771 -61.3252 50.6016 -61.3252h21.2988c45.4912 0 77.21 35.9131 120 39.6768v176.752c-25.2393 2.96289 -42.9658 21.2227 -59.0752 39.5967c-11.2744 12.6494 -21.7246 25.2998 -30.7988 39.875
+c-14.4814 23.3877 -26.1318 56.0996 -34.9258 56.0996c-23.375 0 -44 -8.7998 -44 -35.2002c0 -35.2002 26.3994 -53.0752 26.3994 -70.3994h-158.399c-18.4248 0 -35.2002 -16.5 -35.2002 -35.2002zM448 88c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24
+s24 10.7451 24 24s-10.7451 24 -24 24z" />
+ <glyph glyph-name="hand-point-up" unicode="" horiz-adv-x="448"
+d="M105.6 364.8c0 45.0996 38.1016 83.2002 83.2002 83.2002c45.6162 0 83.2002 -37.7646 83.2002 -83.2002v-35.6465c6.36719 -1.41602 16.252 -4.96875 22.0645 -7.92969c22.0059 2.50684 44.9775 -3.50293 62.791 -15.9844
+c52.4863 -1.14062 91.1445 -37.3984 91.1445 -99.9404v-21.2988c0 -60.0635 -40 -98.5117 -40 -127.2v-2.67871c4.95215 -5.74707 8 -13.5361 8 -22.1201v-64c0 -17.6729 -12.8936 -32 -28.7998 -32h-230.4c-15.9062 0 -28.7998 14.3271 -28.7998 32v64
+c0 8.58398 3.04785 16.373 8 22.1201v2.67871c0 6.96387 -6.19336 14.8623 -23.6689 30.1816l-0.148438 0.128906l-0.145508 0.130859c-9.93652 8.85645 -20.8398 18.1162 -33.2529 25.8506c-30.2471 18.7051 -78.7842 30.3936 -78.7842 75.707
+c0 56.9277 35.2861 92 83.2002 92h0.0839844c6.21777 0 16.2148 -0.974609 22.3154 -2.17578v86.1768zM224 364.8c0 18.9756 -16.2246 35.2002 -35.2002 35.2002c-18.7002 0 -35.2002 -16.7754 -35.2002 -35.2002v-158.399c-17.3242 0 -35.1992 26.3994 -70.3994 26.3994
+c-26.4004 0 -35.2002 -20.625 -35.2002 -44c0 -8.79395 32.7119 -20.4443 56.0996 -34.9258c14.5752 -9.07422 27.2256 -19.5244 39.875 -30.7988c18.374 -16.1094 36.6328 -33.8359 39.5967 -59.0752h176.753c3.7627 42.79 39.6758 74.5088 39.6758 120v21.2988
+c0 40.5244 -22.1973 57.124 -61.3252 50.6006c-8.00098 14.6113 -33.9785 24.1514 -53.625 12.9248c-18.2246 19.3652 -46.3809 17.7871 -61.0498 4.9502v91.0254zM352 24c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24z" />
+ <glyph glyph-name="hand-point-down" unicode="" horiz-adv-x="448"
+d="M188.8 -64c-45.0986 0 -83.2002 38.1006 -83.2002 83.2002v86.1758c-6.91016 -1.3623 -14.374 -2.17578 -22.3994 -2.17578c-47.9141 0 -83.2002 35.0723 -83.2002 92c0 45.3135 48.5371 57.002 78.7852 75.707c12.4121 7.73438 23.3154 16.9951 33.2529 25.8506
+l0.145508 0.130859l0.148438 0.128906c17.4746 15.3213 23.668 23.2197 23.668 30.1836v2.67871c-4.95215 5.74707 -8 13.5361 -8 22.1201v64c0 17.6729 12.8936 32 28.7998 32h230.4c15.9062 0 28.7998 -14.3271 28.7998 -32v-64.001
+c0 -8.58398 -3.04785 -16.373 -8 -22.1201v-2.67871c0 -28.6885 40 -67.1367 40 -127.2v-21.2988c0 -62.542 -38.6582 -98.8008 -91.1445 -99.9404c-17.8135 -12.4814 -40.7852 -18.4922 -62.791 -15.9844c-5.8125 -2.96094 -15.6973 -6.51367 -22.0645 -7.92969v-35.6465
+c0 -45.4355 -37.584 -83.2002 -83.2002 -83.2002zM188.8 -16c18.9756 0 35.2002 16.2246 35.2002 35.2002v91.0244c14.6689 -12.8369 42.8252 -14.415 61.0498 4.9502c19.6465 -11.2256 45.624 -1.68652 53.625 12.9248c39.1279 -6.52246 61.3252 10.0771 61.3252 50.6016
+v21.2988c0 45.4912 -35.9131 77.21 -39.6768 120h-176.752c-2.96289 -25.2393 -21.2227 -42.9658 -39.5967 -59.0752c-12.6494 -11.2744 -25.2998 -21.7246 -39.875 -30.7988c-23.3877 -14.4814 -56.0996 -26.1318 -56.0996 -34.9258c0 -23.375 8.7998 -44 35.2002 -44
+c35.2002 0 53.0752 26.3994 70.3994 26.3994v-158.399c0 -18.4248 16.5 -35.2002 35.2002 -35.2002zM328 384c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24z" />
+ <glyph glyph-name="copy" unicode="" horiz-adv-x="448"
+d="M433.941 382.059c7.75977 -7.75977 14.0586 -22.9658 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-80v-48c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v320c0 26.5098 21.4902 48 48 48h80v48c0 26.5098 21.4902 48 48 48
+h172.118c10.9746 0 26.1807 -6.29883 33.9404 -14.0586zM266 -16c3.31152 0 6 2.68848 6 6v42h-96c-26.5098 0 -48 21.4902 -48 48v224h-74c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h212zM394 80c3.31152 0 6 2.68848 6 6v202h-88
+c-13.2549 0 -24 10.7451 -24 24v88h-106c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h212zM400 336v9.63184v0.000976562c0 1.37207 -0.787109 3.27246 -1.75684 4.24219l-48.3682 48.3682c-1.12598 1.125 -2.65234 1.75684 -4.24316 1.75684h-9.63184
+v-64h64z" />
+ <glyph glyph-name="save" unicode="" horiz-adv-x="448"
+d="M433.941 318.059c7.75977 -7.75977 14.0586 -22.9658 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h268.118c10.9746 0 26.1807 -6.29883 33.9404 -14.0586zM272 368h-128v-80h128v80
+zM394 16c3.31152 0 6 2.68848 6 6v259.632v0.000976562c0 1.37207 -0.787109 3.27246 -1.75684 4.24219l-78.2432 78.2432v-100.118c0 -13.2549 -10.7451 -24 -24 -24h-176c-13.2549 0 -24 10.7451 -24 24v104h-42c-3.31152 0 -6 -2.68848 -6 -6v-340
+c0 -3.31152 2.68848 -6 6 -6h340zM224 216c48.5234 0 88 -39.4766 88 -88s-39.4766 -88 -88 -88s-88 39.4766 -88 88s39.4766 88 88 88zM224 88c22.0557 0 40 17.9443 40 40s-17.9443 40 -40 40s-40 -17.9443 -40 -40s17.9443 -40 40 -40z" />
+ <glyph glyph-name="square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM394 16c3.2998 0 6 2.7002 6 6v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340z" />
+ <glyph glyph-name="envelope" unicode=""
+d="M464 384c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416zM464 336h-416v-40.8047c22.4248 -18.2627 58.1797 -46.6602 134.587 -106.49
+c16.834 -13.2422 50.2051 -45.0762 73.4131 -44.7012c23.2119 -0.371094 56.5723 31.4541 73.4131 44.7012c76.4189 59.8389 112.165 88.2305 134.587 106.49v40.8047zM48 48h416v185.601c-22.915 -18.252 -55.4189 -43.8691 -104.947 -82.6523
+c-22.5439 -17.748 -60.3359 -55.1787 -103.053 -54.9473c-42.9277 -0.231445 -81.2051 37.75 -103.062 54.9551c-49.5293 38.7842 -82.0244 64.3945 -104.938 82.6455v-185.602z" />
+ <glyph glyph-name="lightbulb" unicode="" horiz-adv-x="352"
+d="M176 368c8.83984 0 16 -7.16016 16 -16s-7.16016 -16 -16 -16c-35.2803 0 -64 -28.7002 -64 -64c0 -8.83984 -7.16016 -16 -16 -16s-16 7.16016 -16 16c0 52.9404 43.0596 96 96 96zM96.0596 -11.1699l-0.0400391 43.1797h159.961l-0.0507812 -43.1797
+c-0.00976562 -3.13965 -0.939453 -6.21973 -2.67969 -8.83984l-24.5098 -36.8398c-2.95996 -4.45996 -7.95996 -7.14062 -13.3203 -7.14062h-78.8496c-5.35059 0 -10.3506 2.68066 -13.3203 7.14062l-24.5098 36.8398c-1.75 2.62012 -2.68066 5.68945 -2.68066 8.83984z
+M176 448c97.2002 0 176 -78.7998 176 -176c0 -44.3701 -16.4502 -84.8496 -43.5498 -115.79c-16.6406 -18.9795 -42.7402 -58.79 -52.4199 -92.1602v-0.0498047h-48v0.0996094c0.00390625 4.04199 0.999023 10.4482 2.21973 14.3008
+c5.67969 17.9893 22.9902 64.8496 62.0996 109.46c20.4102 23.29 31.6504 53.1699 31.6504 84.1396c0 70.5801 -57.4199 128 -128 128c-68.2803 0 -128.15 -54.3604 -127.95 -128c0.0898438 -30.9902 11.0703 -60.71 31.6104 -84.1396
+c39.3496 -44.9004 56.5801 -91.8604 62.1699 -109.67c1.42969 -4.56055 2.13965 -9.30078 2.15039 -14.0703v-0.120117h-48v0.0595703c-9.68066 33.3604 -35.7803 73.1709 -52.4209 92.1602c-27.1094 30.9307 -43.5596 71.4102 -43.5596 115.78
+c0 93.0303 73.7197 176 176 176z" />
+ <glyph glyph-name="bell" unicode="" horiz-adv-x="448"
+d="M439.39 85.71c6 -6.44043 8.66016 -14.1602 8.61035 -21.71c-0.0996094 -16.4004 -12.9805 -32 -32.0996 -32h-383.801c-19.1191 0 -31.9893 15.5996 -32.0996 32c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c19.3193 20.7598 55.4697 51.9902 55.4697 154.29
+c0 77.7002 54.4795 139.9 127.939 155.16v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8398c73.46 -15.2598 127.939 -77.46 127.939 -155.16c0 -102.3 36.1504 -133.53 55.4697 -154.29zM67.5303 80h312.939
+c-21.2197 27.96 -44.4199 74.3203 -44.5293 159.42c0 0.200195 0.0595703 0.379883 0.0595703 0.580078c0 61.8604 -50.1396 112 -112 112s-112 -50.1396 -112 -112c0 -0.200195 0.0595703 -0.379883 0.0595703 -0.580078
+c-0.109375 -85.0898 -23.3096 -131.45 -44.5293 -159.42zM224 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" />
+ <glyph glyph-name="hospital" unicode="" horiz-adv-x="448"
+d="M128 204v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12zM268 192c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40
+c0 -6.62695 -5.37305 -12 -12 -12h-40zM192 108c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM268 96c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40
+c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40zM448 -28v-36h-448v36c0 6.62695 5.37305 12 12 12h19.5v378.965c0 11.6172 10.7451 21.0352 24 21.0352h88.5v40c0 13.2549 10.7451 24 24 24h112c13.2549 0 24 -10.7451 24 -24v-40h88.5
+c13.2549 0 24 -9.41797 24 -21.0352v-378.965h19.5c6.62695 0 12 -5.37305 12 -12zM79.5 -15h112.5v67c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-67h112.5v351h-64.5v-24c0 -13.2549 -10.7451 -24 -24 -24h-112c-13.2549 0 -24 10.7451 -24 24v24
+h-64.5v-351zM266 384h-26v26c0 3.31152 -2.68848 6 -6 6h-20c-3.31152 0 -6 -2.68848 -6 -6v-26h-26c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6h26v-26c0 -3.31152 2.68848 -6 6 -6h20c3.31152 0 6 2.68848 6 6v26h26c3.31152 0 6 2.68848 6 6v20
+c0 3.31152 -2.68848 6 -6 6z" />
+ <glyph glyph-name="plus-square" unicode="" horiz-adv-x="448"
+d="M352 208v-32c0 -6.59961 -5.40039 -12 -12 -12h-88v-88c0 -6.59961 -5.40039 -12 -12 -12h-32c-6.59961 0 -12 5.40039 -12 12v88h-88c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h88v88c0 6.59961 5.40039 12 12 12h32c6.59961 0 12 -5.40039 12 -12
+v-88h88c6.59961 0 12 -5.40039 12 -12zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340
+c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200z" />
+ <glyph glyph-name="smile" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM332 135.4c8.5 10.1992 23.7002 11.5 33.7998 3.09961c10.2002 -8.5 11.6006 -23.5996 3.10059 -33.7998
+c-30 -36 -74.1006 -56.6006 -120.9 -56.6006s-90.9004 20.6006 -120.9 56.6006c-8.39941 10.2002 -7.09961 25.2998 3.10059 33.7998c10.0996 8.40039 25.2998 7.09961 33.7998 -3.09961c20.7998 -25.1006 51.5 -39.4004 84 -39.4004s63.2002 14.4004 84 39.4004z" />
+ <glyph glyph-name="frown" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM248 144c40.2002 0 78 -17.7002 103.8 -48.5996c8.40039 -10.2002 7.10059 -25.3008 -3.09961 -33.8008
+c-10.7002 -8.7998 -25.7002 -6.59961 -33.7998 3.10059c-16.6006 20 -41 31.3994 -66.9004 31.3994s-50.2998 -11.5 -66.9004 -31.3994c-8.5 -10.2002 -23.5996 -11.5 -33.7998 -3.10059c-10.2002 8.5 -11.5996 23.6006 -3.09961 33.8008
+c25.7998 30.8994 63.5996 48.5996 103.8 48.5996z" />
+ <glyph glyph-name="meh" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM336 128c13.2002 0 24 -10.7998 24 -24s-10.7998 -24 -24 -24h-176c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24h176z
+" />
+ <glyph glyph-name="keyboard" unicode="" horiz-adv-x="576"
+d="M528 384c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h480zM536 48v288c0 4.41113 -3.58887 8 -8 8h-480c-4.41113 0 -8 -3.58887 -8 -8v-288c0 -4.41113 3.58887 -8 8 -8
+h480c4.41113 0 8 3.58887 8 8zM170 178c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM266 178c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28
+c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM362 178c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM458 178c0 -6.62695 -5.37305 -12 -12 -12h-28
+c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM122 96c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM506 96
+c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM122 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28
+c6.62695 0 12 -5.37305 12 -12v-28zM218 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM314 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28
+c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM410 260c0 -6.62695 -5.37305 -12 -12 -12h-28c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM506 260c0 -6.62695 -5.37305 -12 -12 -12h-28
+c-6.62695 0 -12 5.37305 -12 12v28c0 6.62695 5.37305 12 12 12h28c6.62695 0 12 -5.37305 12 -12v-28zM408 102c0 -6.62695 -5.37305 -12 -12 -12h-216c-6.62695 0 -12 5.37305 -12 12v16c0 6.62695 5.37305 12 12 12h216c6.62695 0 12 -5.37305 12 -12v-16z" />
+ <glyph glyph-name="calendar" unicode="" horiz-adv-x="448"
+d="M400 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12
+v-52h48zM394 -16c3.2998 0 6 2.7002 6 6v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340z" />
+ <glyph glyph-name="play-circle" unicode=""
+d="M371.7 210c16.3994 -9.2002 16.3994 -32.9004 0 -42l-176 -101c-15.9004 -8.7998 -35.7002 2.59961 -35.7002 21v208c0 18.5 19.9004 29.7998 35.7002 21zM504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM56 192
+c0 -110.5 89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200z" />
+ <glyph glyph-name="minus-square" unicode="" horiz-adv-x="448"
+d="M108 164c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h232c6.59961 0 12 -5.40039 12 -12v-32c0 -6.59961 -5.40039 -12 -12 -12h-232zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352
+c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="check-square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM400 16v352h-352v-352h352zM364.136 257.724l-172.589 -171.204
+c-4.70508 -4.66699 -12.3027 -4.63672 -16.9697 0.0683594l-90.7812 91.5156c-4.66699 4.70508 -4.63672 12.3037 0.0693359 16.9717l22.7188 22.5361c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0693359l59.792 -60.2773l141.353 140.217
+c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0683594l22.5361 -22.7178c4.66699 -4.70605 4.63672 -12.3047 -0.0683594 -16.9717z" />
+ <glyph glyph-name="share-square" unicode="" horiz-adv-x="576"
+d="M561.938 289.94c18.75 -18.7402 18.75 -49.1406 0 -67.8809l-143.998 -144c-29.9727 -29.9727 -81.9404 -9.05273 -81.9404 33.9404v53.7998c-101.266 -7.83691 -99.625 -31.6406 -84.1104 -78.7598c14.2285 -43.0889 -33.4736 -79.248 -71.0195 -55.7402
+c-51.6924 32.3057 -84.8701 83.0635 -84.8701 144.76c0 39.3408 12.2197 72.7402 36.3301 99.3008c19.8398 21.8398 47.7402 38.4697 82.9102 49.4199c36.7295 11.4395 78.3096 16.1094 120.76 17.9893v57.1982c0 42.9355 51.9258 63.9541 81.9404 33.9404zM384 112l144 144
+l-144 144v-104.09c-110.86 -0.90332 -240 -10.5166 -240 -119.851c0 -52.1396 32.79 -85.6094 62.3096 -104.06c-39.8174 120.65 48.999 141.918 177.69 143.84v-103.84zM408.74 27.5068c6.14844 1.75684 15.5449 5.92383 20.9736 9.30273
+c7.97656 4.95215 18.2861 -0.825195 18.2861 -10.2139v-42.5957c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h132c6.62695 0 12 -5.37305 12 -12v-4.48633c0 -4.91699 -2.9873 -9.36914 -7.56934 -11.1514
+c-13.7021 -5.33105 -26.3955 -11.5371 -38.0498 -18.585c-1.59668 -0.974609 -4.41016 -1.77051 -6.28027 -1.77734h-86.1006c-3.31152 0 -6 -2.68848 -6 -6v-340c0 -3.31152 2.68848 -6 6 -6h340c3.31152 0 6 2.68848 6 6v25.9658c0 5.37012 3.5791 10.0596 8.74023 11.541
+z" />
+ <glyph glyph-name="compass" unicode="" horiz-adv-x="496"
+d="M347.94 318.14c16.6592 7.61035 33.8096 -9.54004 26.1992 -26.1992l-65.9697 -144.341c-2.73047 -5.97363 -9.7959 -13.0391 -15.7695 -15.7695l-144.341 -65.9697c-16.6592 -7.61035 -33.8096 9.5498 -26.1992 26.1992l65.9697 144.341
+c2.73047 5.97363 9.7959 13.0391 15.7695 15.7695zM270.58 169.42c12.4697 12.4697 12.4697 32.6904 0 45.1602s-32.6904 12.4697 -45.1602 0s-12.4697 -32.6904 0 -45.1602s32.6904 -12.4697 45.1602 0zM248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248
+s-248 111.03 -248 248s111.03 248 248 248zM248 -8c110.28 0 200 89.7197 200 200s-89.7197 200 -200 200s-200 -89.7197 -200 -200s89.7197 -200 200 -200z" />
+ <glyph glyph-name="caret-square-down" unicode="" horiz-adv-x="448"
+d="M125.1 240h197.801c10.6992 0 16.0996 -13 8.5 -20.5l-98.9004 -98.2998c-4.7002 -4.7002 -12.2002 -4.7002 -16.9004 0l-98.8994 98.2998c-7.7002 7.5 -2.2998 20.5 8.39941 20.5zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
+c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="caret-square-up" unicode="" horiz-adv-x="448"
+d="M322.9 144h-197.801c-10.6992 0 -16.0996 13 -8.5 20.5l98.9004 98.2998c4.7002 4.7002 12.2002 4.7002 16.9004 0l98.8994 -98.2998c7.7002 -7.5 2.2998 -20.5 -8.39941 -20.5zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
+c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="caret-square-right" unicode="" horiz-adv-x="448"
+d="M176 93.0996v197.801c0 10.6992 13 16.0996 20.5 8.5l98.2998 -98.9004c4.7002 -4.7002 4.7002 -12.2002 0 -16.9004l-98.2998 -98.8994c-7.5 -7.7002 -20.5 -2.2998 -20.5 8.39941zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
+c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="file" unicode="" horiz-adv-x="384"
+d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
+h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416z" />
+ <glyph glyph-name="file-alt" unicode="" horiz-adv-x="384"
+d="M288 200v-28c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12v28c0 6.59961 5.40039 12 12 12h168c6.59961 0 12 -5.40039 12 -12zM276 128c6.59961 0 12 -5.40039 12 -12v-28c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12
+v28c0 6.59961 5.40039 12 12 12h168zM384 316.1v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l83.9004 -83.9004c9 -8.90039 14.0996 -21.2002 14.0996 -33.9004z
+M256 396.1v-76.0996h76.0996zM336 -16v288h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416h288z" />
+ <glyph glyph-name="thumbs-up" unicode=""
+d="M466.27 161.31c4.6748 -22.6465 0.864258 -44.5371 -8.98926 -62.9893c2.95898 -23.8682 -4.02148 -48.5654 -17.3398 -66.9902c-0.954102 -55.9072 -35.8232 -95.3301 -112.94 -95.3301c-7 0 -15 0.00976562 -22.2197 0.00976562
+c-102.742 0 -133.293 38.9395 -177.803 39.9404c-3.56934 -13.7764 -16.085 -23.9502 -30.9775 -23.9502h-64c-17.6729 0 -32 14.3271 -32 32v240c0 17.6729 14.3271 32 32 32h98.7598c19.1455 16.9531 46.0137 60.6533 68.7598 83.4004
+c13.667 13.667 10.1533 108.6 71.7607 108.6c57.5801 0 95.2695 -31.9355 95.2695 -104.73c0 -18.4092 -3.92969 -33.7295 -8.84961 -46.5391h36.4795c48.6025 0 85.8203 -41.5654 85.8203 -85.5801c0 -19.1504 -4.95996 -34.9902 -13.7305 -49.8408zM404.52 107.48
+c21.5811 20.3838 18.6992 51.0645 5.21094 65.6191c9.44922 0 22.3594 18.9102 22.2695 37.8105c-0.0898438 18.9102 -16.71 37.8203 -37.8203 37.8203h-103.989c0 37.8193 28.3594 55.3691 28.3594 94.5391c0 23.75 0 56.7305 -47.2695 56.7305
+c-18.9102 -18.9102 -9.45996 -66.1797 -37.8203 -94.54c-26.5596 -26.5703 -66.1797 -97.46 -94.54 -97.46h-10.9199v-186.17c53.6113 0 100.001 -37.8203 171.64 -37.8203h37.8203c35.5117 0 60.8203 17.1201 53.1201 65.9004
+c15.2002 8.16016 26.5 36.4395 13.9395 57.5703zM88 16c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24z" />
+ <glyph glyph-name="thumbs-down" unicode=""
+d="M466.27 222.69c8.77051 -14.8506 13.7305 -30.6904 13.7305 -49.8408c0 -44.0146 -37.2178 -85.5801 -85.8203 -85.5801h-36.4795c4.91992 -12.8096 8.84961 -28.1299 8.84961 -46.5391c0 -72.7949 -37.6895 -104.73 -95.2695 -104.73
+c-61.6074 0 -58.0938 94.9326 -71.7607 108.6c-22.7461 22.7471 -49.6133 66.4473 -68.7598 83.4004h-7.05176c-5.5332 -9.56152 -15.8662 -16 -27.708 -16h-64c-17.6729 0 -32 14.3271 -32 32v240c0 17.6729 14.3271 32 32 32h64c8.11328 0 15.5146 -3.02539 21.1553 -8
+h10.8447c40.9971 0 73.1953 39.9902 176.78 39.9902c7.21973 0 15.2197 0.00976562 22.2197 0.00976562c77.1172 0 111.986 -39.4229 112.94 -95.3301c13.3184 -18.4248 20.2979 -43.1221 17.3398 -66.9902c9.85352 -18.4521 13.6641 -40.3428 8.98926 -62.9893zM64 152
+c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24zM394.18 135.27c21.1104 0 37.7305 18.9102 37.8203 37.8203c0.0898438 18.9004 -12.8203 37.8105 -22.2695 37.8105c13.4883 14.5547 16.3701 45.2354 -5.21094 65.6191
+c12.5605 21.1309 1.26074 49.4102 -13.9395 57.5703c7.7002 48.7803 -17.6084 65.9004 -53.1201 65.9004h-37.8203c-71.6387 0 -118.028 -37.8203 -171.64 -37.8203v-186.17h10.9199c28.3604 0 67.9805 -70.8896 94.54 -97.46
+c28.3604 -28.3604 18.9102 -75.6299 37.8203 -94.54c47.2695 0 47.2695 32.9805 47.2695 56.7305c0 39.1699 -28.3594 56.7197 -28.3594 94.5391h103.989z" />
+ <glyph glyph-name="sun" unicode=""
+d="M494.2 226.1c11.2002 -7.59961 17.7998 -20.0996 17.8994 -33.6992c0 -13.4004 -6.69922 -26 -17.7998 -33.5l-59.7998 -40.5l13.7002 -71c2.5 -13.2002 -1.60059 -26.8008 -11.1006 -36.3008s-22.8994 -13.7998 -36.2998 -11.0996l-70.8994 13.7002l-40.4004 -59.9004
+c-7.5 -11.0996 -20.0996 -17.7998 -33.5 -17.7998s-26 6.7002 -33.5 17.9004l-40.4004 59.8994l-70.7998 -13.7002c-13.3994 -2.59961 -26.7998 1.60059 -36.2998 11.1006s-13.7002 23.0996 -11.0996 36.2998l13.6992 71l-59.7998 40.5
+c-11.0996 7.5 -17.7998 20 -17.7998 33.5s6.59961 26 17.7998 33.5996l59.7998 40.5l-13.6992 71c-2.60059 13.2002 1.59961 26.7002 11.0996 36.3008c9.5 9.59961 23 13.6992 36.2998 11.1992l70.7998 -13.6992l40.4004 59.8994c15.0996 22.2998 51.9004 22.2998 67 0
+l40.4004 -59.8994l70.8994 13.6992c13 2.60059 26.6006 -1.59961 36.2002 -11.0996c9.5 -9.59961 13.7002 -23.2002 11.0996 -36.4004l-13.6992 -71zM381.3 140.5l76.7998 52.0996l-76.7998 52l17.6006 91.1006l-91 -17.6006l-51.9004 76.9004l-51.7998 -76.7998
+l-91 17.5996l17.5996 -91.2002l-76.7998 -52l76.7998 -52l-17.5996 -91.1992l90.8994 17.5996l51.9004 -77l51.9004 76.9004l91 -17.6006zM256 296c57.2998 0 104 -46.7002 104 -104s-46.7002 -104 -104 -104s-104 46.7002 -104 104s46.7002 104 104 104zM256 136
+c30.9004 0 56 25.0996 56 56s-25.0996 56 -56 56s-56 -25.0996 -56 -56s25.0996 -56 56 -56z" />
+ <glyph glyph-name="moon" unicode=""
+d="M279.135 -64c-141.424 0 -256 114.64 -256 256c0 141.425 114.641 256 256 256c13.0068 -0.00195312 33.9443 -1.91797 46.7354 -4.27734c44.0205 -8.13086 53.7666 -66.8691 15.0215 -88.9189c-41.374 -23.5439 -67.4336 -67.4121 -67.4336 -115.836
+c0 -83.5234 75.9238 -146.475 158.272 -130.792c43.6904 8.32129 74.5186 -42.5693 46.248 -77.4004c-47.8613 -58.9717 -120.088 -94.7754 -198.844 -94.7754zM279.135 400c-114.875 0 -208 -93.125 -208 -208s93.125 -208 208 -208
+c65.2314 0 123.439 30.0361 161.575 77.0244c-111.611 -21.2568 -215.252 64.0957 -215.252 177.943c0 67.5127 36.9326 126.392 91.6934 157.555c-12.3271 2.27637 -25.0312 3.47754 -38.0166 3.47754z" />
+ <glyph glyph-name="caret-square-left" unicode="" horiz-adv-x="448"
+d="M272 290.9v-197.801c0 -10.6992 -13 -16.0996 -20.5 -8.5l-98.2998 98.9004c-4.7002 4.7002 -4.7002 12.2002 0 16.9004l98.2998 98.8994c7.5 7.7002 20.5 2.2998 20.5 -8.39941zM448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352
+c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM400 22v340c0 3.2998 -2.7002 6 -6 6h-340c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="dot-circle" unicode=""
+d="M256 392c-110.549 0 -200 -89.4678 -200 -200c0 -110.549 89.4678 -200 200 -200c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200zM256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248z
+M256 272c44.1826 0 80 -35.8174 80 -80s-35.8174 -80 -80 -80s-80 35.8174 -80 80s35.8174 80 80 80z" />
+ <glyph glyph-name="building" unicode="" horiz-adv-x="448"
+d="M128 300v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12zM268 288c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40
+c0 -6.59961 -5.40039 -12 -12 -12h-40zM140 192c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40zM268 192c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40
+c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40zM192 108c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40zM268 96c-6.59961 0 -12 5.40039 -12 12v40
+c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-40zM448 -28v-36h-448v36c0 6.59961 5.40039 12 12 12h19.5v440c0 13.2998 10.7002 24 24 24h337c13.2998 0 24 -10.7002 24 -24v-440h19.5
+c6.59961 0 12 -5.40039 12 -12zM79.5 -15h112.5v67c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-67h112.5v414l-288.5 1z" />
+ <glyph glyph-name="file-pdf" unicode="" horiz-adv-x="384"
+d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
+h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM298.2 127.7c10.5 -10.5 8 -38.7002 -17.5 -38.7002c-14.7998 0 -36.9004 6.7998 -55.7998 17c-21.6006 -3.59961 -46 -12.7002 -68.4004 -20.0996c-50.0996 -86.4004 -79.4004 -47 -76.0996 -31.2002
+c4 20 31 35.8994 51 46.2002c10.5 18.3994 25.3994 50.5 35.3994 74.3994c-7.39941 28.6006 -11.3994 51 -7 67.1006c4.7998 17.6992 38.4004 20.2998 42.6006 -5.90039c4.69922 -15.4004 -1.5 -39.9004 -5.40039 -56c8.09961 -21.2998 19.5996 -35.7998 36.7998 -46.2998
+c17.4004 2.2002 52.2002 5.5 64.4004 -6.5zM100.1 49.9004c0 -0.700195 11.4004 4.69922 30.4004 35c-5.90039 -5.5 -25.2998 -21.3008 -30.4004 -35zM181.7 240.5c-2.5 0 -2.60059 -26.9004 1.7998 -40.7998c4.90039 8.7002 5.59961 40.7998 -1.7998 40.7998zM157.3 103.9
+c15.9004 6.09961 34 14.8994 54.7998 19.1992c-11.1992 8.30078 -21.7998 20.4004 -30.0996 35.5c-6.7002 -17.6992 -15 -37.7998 -24.7002 -54.6992zM288.9 108.9c3.59961 2.39941 -2.2002 10.3994 -37.3008 7.7998c32.3008 -13.7998 37.3008 -7.7998 37.3008 -7.7998z" />
+ <glyph glyph-name="file-word" unicode="" horiz-adv-x="384"
+d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
+h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM268.1 192v0.200195h15.8008c7.7998 0 13.5 -7.2998 11.5996 -14.9004c-4.2998 -17 -13.7002 -54.0996 -34.5 -136c-1.2998 -5.39941 -6.09961 -9.09961 -11.5996 -9.09961h-24.7002
+c-5.5 0 -10.2998 3.7998 -11.6006 9.09961c-5.2998 20.9004 -17.7998 71 -17.8994 71.4004l-2.90039 17.2998c-0.5 -5.2998 -1.5 -11.0996 -3 -17.2998l-17.8994 -71.4004c-1.30078 -5.39941 -6.10059 -9.09961 -11.6006 -9.09961h-25.2002
+c-5.59961 0 -10.3994 3.7002 -11.6992 9.09961c-6.5 26.5 -25.2002 103.4 -33.2002 136c-1.7998 7.5 3.89941 14.7998 11.7002 14.7998h16.7998c5.7998 0 10.7002 -4.09961 11.7998 -9.69922c5 -25.7002 18.4004 -93.8008 19.0996 -99
+c0.300781 -1.7002 0.400391 -3.10059 0.5 -4.2002c0.800781 7.5 0.400391 4.7002 24.8008 103.7c1.39941 5.2998 6.19922 9.09961 11.6992 9.09961h13.3008c5.59961 0 10.3994 -3.7998 11.6992 -9.2002c23.9004 -99.7002 22.8008 -94.3994 23.6006 -99.5
+c0.299805 -1.7002 0.5 -3.09961 0.700195 -4.2998c0.599609 8.09961 0.399414 5.7998 21 103.5c1.09961 5.5 6 9.5 11.6992 9.5z" />
+ <glyph glyph-name="file-excel" unicode="" horiz-adv-x="384"
+d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
+h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM260 224c9.2002 0 15 -10 10.2998 -18c-16 -27.5 -45.5996 -76.9004 -46.2998 -78l46.4004 -78c4.59961 -8 -1.10059 -18 -10.4004 -18h-28.7998c-4.40039 0 -8.5 2.40039 -10.6006 6.2998
+c-22.6992 41.7998 -13.6992 27.5 -28.5996 57.7002c-5.59961 -12.7002 -6.90039 -17.7002 -28.5996 -57.7002c-2.10059 -3.89941 -6.10059 -6.2998 -10.5 -6.2998h-28.9004c-9.2998 0 -15.0996 10 -10.4004 18l46.3008 78l-46.3008 78c-4.59961 8 1.10059 18 10.4004 18
+h28.9004c4.39941 0 8.5 -2.40039 10.5996 -6.2998c21.7002 -40.4004 14.7002 -28.6006 28.5996 -57.7002c6.40039 15.2998 10.6006 24.5996 28.6006 57.7002c2.09961 3.89941 6.09961 6.2998 10.5 6.2998h28.7998z" />
+ <glyph glyph-name="file-powerpoint" unicode="" horiz-adv-x="384"
+d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
+h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM120 44v168c0 6.59961 5.40039 12 12 12h69.2002c36.7002 0 62.7998 -27 62.7998 -66.2998c0 -74.2998 -68.7002 -66.5 -95.5 -66.5v-47.2002c0 -6.59961 -5.40039 -12 -12 -12h-24.5c-6.59961 0 -12 5.40039 -12 12z
+M168.5 131.4h23c7.90039 0 13.9004 2.39941 18.0996 7.19922c8.5 9.80078 8.40039 28.5 0.100586 37.8008c-4.10059 4.59961 -9.90039 7 -17.4004 7h-23.8994v-52h0.0996094z" />
+ <glyph glyph-name="file-image" unicode="" horiz-adv-x="384"
+d="M369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM332.1 320l-76.0996 76.0996v-76.0996h76.0996zM48 -16h288v288
+h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416zM80 32v64l39.5 39.5c4.7002 4.7002 12.2998 4.7002 17 0l39.5 -39.5l87.5 87.5c4.7002 4.7002 12.2998 4.7002 17 0l23.5 -23.5v-128h-224zM128 272c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48
+s21.5 48 48 48z" />
+ <glyph glyph-name="file-archive" unicode="" horiz-adv-x="384"
+d="M128.3 288h32v-32h-32v32zM192.3 384v-32h-32v32h32zM128.3 352h32v-32h-32v32zM192.3 320v-32h-32v32h32zM369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1
+c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM256 396.1v-76.0996h76.0996zM336 -16v288h-104c-13.2998 0 -24 10.7002 -24 24v104h-48.2998v-16h-32v16h-79.7002v-416h288zM194.2 182.3l17.2998 -87.7002c6.40039 -32.3994 -18.4004 -62.5996 -51.5 -62.5996
+c-33.2002 0 -58 30.4004 -51.4004 62.9004l19.7002 97.0996v32h32v-32h22.1006c5.7998 0 10.6992 -4.09961 11.7998 -9.7002zM160.3 57.9004c17.9004 0 32.4004 12.0996 32.4004 27c0 14.8994 -14.5 27 -32.4004 27c-17.8994 0 -32.3994 -12.1006 -32.3994 -27
+c0 -14.9004 14.5 -27 32.3994 -27zM192.3 256v-32h-32v32h32z" />
+ <glyph glyph-name="file-audio" unicode="" horiz-adv-x="384"
+d="M369.941 350.059c7.75977 -7.75977 14.0586 -22.9658 14.0586 -33.9404v-332.118c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v416c0 26.5098 21.4902 48 48 48h204.118c10.9746 0 26.1807 -6.29883 33.9404 -14.0586zM332.118 320
+l-76.1182 76.1182v-76.1182h76.1182zM48 -16h288v288h-104c-13.2549 0 -24 10.7451 -24 24v104h-160v-416zM192 60.0244c0 -10.6914 -12.9258 -16.0459 -20.4854 -8.48535l-35.5146 35.9746h-28c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h28
+l35.5146 36.9473c7.56055 7.56055 20.4854 2.20605 20.4854 -8.48535v-135.951zM233.201 107.154c9.05078 9.29688 9.05957 24.1328 0.000976562 33.4385c-22.1494 22.752 12.2344 56.2461 34.3945 33.4814c27.1982 -27.9404 27.2119 -72.4443 0.000976562 -100.401
+c-21.793 -22.3857 -56.9463 10.3154 -34.3965 33.4814z" />
+ <glyph glyph-name="file-video" unicode="" horiz-adv-x="384"
+d="M369.941 350.059c7.75977 -7.75977 14.0586 -22.9658 14.0586 -33.9404v-332.118c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v416c0 26.5098 21.4902 48 48 48h204.118c10.9746 0 26.1807 -6.29883 33.9404 -14.0586zM332.118 320
+l-76.1182 76.1182v-76.1182h76.1182zM48 -16h288v288h-104c-13.2549 0 -24 10.7451 -24 24v104h-160v-416zM276.687 195.303c10.0049 10.0049 27.3135 2.99707 27.3135 -11.3135v-111.976c0 -14.2939 -17.2959 -21.332 -27.3135 -11.3135l-52.6865 52.6738v-37.374
+c0 -11.0459 -8.9541 -20 -20 -20h-104c-11.0459 0 -20 8.9541 -20 20v104c0 11.0459 8.9541 20 20 20h104c11.0459 0 20 -8.9541 20 -20v-37.374z" />
+ <glyph glyph-name="file-code" unicode="" horiz-adv-x="384"
+d="M149.9 98.9004c3.5 -3.30078 3.69922 -8.90039 0.399414 -12.4004l-17.3994 -18.5996c-1.60059 -1.80078 -4 -2.80078 -6.40039 -2.80078c-2.2002 0 -4.40039 0.900391 -6 2.40039l-57.7002 54.0996c-3.7002 3.40039 -3.7002 9.30078 0 12.8008l57.7002 54.0996
+c3.40039 3.2998 9 3.2002 12.4004 -0.400391l17.3994 -18.5996l0.200195 -0.200195c3.2002 -3.59961 2.7998 -9.2002 -0.799805 -12.3994l-32.7998 -28.9004l32.7998 -28.9004zM369.9 350.1c9 -9 14.0996 -21.2998 14.0996 -34v-332.1c0 -26.5 -21.5 -48 -48 -48h-288
+c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48.0996h204.1c12.7002 0 24.9004 -5.09961 33.9004 -14.0996zM256 396.1v-76.0996h76.0996zM336 -16v288h-104c-13.2998 0 -24 10.7002 -24 24v104h-160v-416h288zM209.6 234l24.4004 -7
+c4.7002 -1.2998 7.40039 -6.2002 6 -10.9004l-54.7002 -188.199c-1.2998 -4.60059 -6.2002 -7.40039 -10.8994 -6l-24.4004 7.09961c-4.7002 1.2998 -7.40039 6.2002 -6 10.9004l54.7002 188.1c1.39941 4.7002 6.2002 7.40039 10.8994 6zM234.1 157.1
+c-3.5 3.30078 -3.69922 8.90039 -0.399414 12.4004l17.3994 18.5996c3.30078 3.60059 8.90039 3.7002 12.4004 0.400391l57.7002 -54.0996c3.7002 -3.40039 3.7002 -9.30078 0 -12.8008l-57.7002 -54.0996c-3.5 -3.2998 -9.09961 -3.09961 -12.4004 0.400391
+l-17.3994 18.5996l-0.200195 0.200195c-3.2002 3.59961 -2.7998 9.2002 0.799805 12.3994l32.7998 28.9004l-32.7998 28.9004z" />
+ <glyph glyph-name="life-ring" unicode=""
+d="M256 -56c-136.967 0 -248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248s-111.033 -248 -248 -248zM152.602 20.7197c63.2178 -38.3184 143.579 -38.3184 206.797 0l-53.4111 53.4111c-31.8467 -13.5215 -68.168 -13.5059 -99.9746 0zM336 192
+c0 44.1123 -35.8877 80 -80 80s-80 -35.8877 -80 -80s35.8877 -80 80 -80s80 35.8877 80 80zM427.28 88.6016c38.3184 63.2178 38.3184 143.579 0 206.797l-53.4111 -53.4111c13.5215 -31.8467 13.5049 -68.168 0 -99.9746zM359.397 363.28
+c-63.2168 38.3184 -143.578 38.3184 -206.796 0l53.4111 -53.4111c31.8457 13.5215 68.167 13.5049 99.9736 0zM84.7197 295.398c-38.3184 -63.2178 -38.3184 -143.579 0 -206.797l53.4111 53.4111c-13.5215 31.8467 -13.5059 68.168 0 99.9746z" />
+ <glyph glyph-name="paper-plane" unicode=""
+d="M440 441.5c34.5996 19.9004 77.5996 -8.7998 71.5 -48.9004l-59.4004 -387.199c-2.2998 -14.5 -11.0996 -27.3008 -23.8994 -34.5c-7.2998 -4.10059 -15.4004 -6.2002 -23.6006 -6.2002c-6.19922 0 -12.3994 1.2002 -18.2998 3.59961l-111.899 46.2002l-43.8008 -59.0996
+c-27.3994 -36.9004 -86.5996 -17.8008 -86.5996 28.5996v84.4004l-114.3 47.2998c-36.7998 15.0996 -40.1006 66 -5.7002 85.8994zM192 -16l36.5996 49.5l-36.5996 15.0996v-64.5996zM404.6 12.7002l59.4004 387.3l-416 -240l107.8 -44.5996l211.5 184.3
+c14.2002 12.2998 34.4004 -5.7002 23.7002 -21.2002l-140.2 -202.3z" />
+ <glyph glyph-name="futbol" unicode="" horiz-adv-x="496"
+d="M483.8 268.6c42.2998 -130.199 -29 -270.1 -159.2 -312.399c-25.5 -8.2998 -51.2998 -12.2002 -76.6992 -12.2002c-104.5 0 -201.7 66.5996 -235.7 171.4c-42.2998 130.199 29 270.1 159.2 312.399c25.5 8.2998 51.2998 12.2002 76.6992 12.2002
+c104.5 0 201.7 -66.5996 235.7 -171.4zM409.3 74.9004c6.10059 8.39941 12.1006 16.8994 16.7998 26.1992c14.3008 28.1006 21.5 58.5 21.7002 89.2002l-38.8994 36.4004l-71.1006 -22.1006l-24.3994 -75.1992l43.6992 -60.9004zM409.3 310.3
+c-24.5 33.4004 -58.7002 58.4004 -97.8994 71.4004l-47.4004 -26.2002v-73.7998l64.2002 -46.5l70.7002 22zM184.9 381.6c-39.9004 -13.2998 -73.5 -38.5 -97.8008 -71.8994l10.1006 -52.5l70.5996 -22l64.2002 46.5v73.7998zM139 68.5l43.5 61.7002l-24.2998 74.2998
+l-71.1006 22.2002l-39 -36.4004c0.5 -55.7002 23.4004 -95.2002 37.8008 -115.3zM187.2 1.5c64.0996 -20.4004 115.5 -1.7998 121.7 0l22.3994 48.0996l-44.2998 61.7002h-78.5996l-43.6006 -61.7002z" />
+ <glyph glyph-name="newspaper" unicode="" horiz-adv-x="576"
+d="M552 384c13.2549 0 24 -10.7451 24 -24v-336c0 -13.2549 -10.7451 -24 -24 -24h-496c-30.9277 0 -56 25.0723 -56 56v272c0 13.2549 10.7451 24 24 24h42.752c6.60547 18.623 24.3896 32 45.248 32h440zM48 56c0 -4.41113 3.58887 -8 8 -8s8 3.58887 8 8v248h-16v-248z
+M528 48v288h-416v-280c0 -2.7168 -0.204102 -5.38574 -0.578125 -8h416.578zM172 168c-6.62695 0 -12 5.37305 -12 12v96c0 6.62695 5.37305 12 12 12h136c6.62695 0 12 -5.37305 12 -12v-96c0 -6.62695 -5.37305 -12 -12 -12h-136zM200 248v-40h80v40h-80zM160 108v24
+c0 6.62695 5.37305 12 12 12h136c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-136c-6.62695 0 -12 5.37305 -12 12zM352 108v24c0 6.62695 5.37305 12 12 12h104c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-104
+c-6.62695 0 -12 5.37305 -12 12zM352 252v24c0 6.62695 5.37305 12 12 12h104c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-104c-6.62695 0 -12 5.37305 -12 12zM352 180v24c0 6.62695 5.37305 12 12 12h104c6.62695 0 12 -5.37305 12 -12v-24
+c0 -6.62695 -5.37305 -12 -12 -12h-104c-6.62695 0 -12 5.37305 -12 12z" />
+ <glyph glyph-name="bell-slash" unicode="" horiz-adv-x="640"
+d="M633.99 -23.0195c6.91016 -5.52051 8.01953 -15.5908 2.5 -22.4902l-10 -12.4902c-5.53027 -6.88965 -15.5898 -8.00977 -22.4902 -2.49023l-598 467.51c-6.90039 5.52051 -8.01953 15.5908 -2.49023 22.4902l10 12.4902
+c5.52051 6.90039 15.5898 8.00977 22.4902 2.49023zM163.53 80h182.84l61.3994 -48h-279.659c-19.1201 0 -31.9902 15.5996 -32.1006 32c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c18.3701 19.7402 51.5703 49.6904 54.8398 140.42l45.4697 -35.5498
+c-6.91992 -54.7803 -24.6895 -88.5498 -41.3994 -110.58zM320 352c-23.3496 0 -45 -7.17969 -62.9404 -19.4004l-38.1699 29.8408c19.6807 15.7793 43.1104 27.3096 69.1299 32.7197v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8398
+c73.46 -15.2598 127.939 -77.46 127.939 -155.16c0 -41.3604 6.03027 -70.7197 14.3398 -92.8496l-59.5293 46.54c-1.63086 13.96 -2.77051 28.8896 -2.79004 45.7295c0 0.200195 0.0595703 0.379883 0.0595703 0.580078c0 61.8604 -50.1396 112 -112 112zM320 -64
+c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" />
+ <glyph glyph-name="copyright" unicode=""
+d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM256 -8c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200c-110.549 0 -200 -89.4688 -200 -200c0 -110.549 89.4678 -200 200 -200z
+M363.351 93.0645c-9.61328 -9.71289 -45.5293 -41.3965 -104.064 -41.3965c-82.4297 0 -140.484 61.4248 -140.484 141.567c0 79.1514 60.2754 139.4 139.763 139.4c55.5303 0 88.7373 -26.6201 97.5928 -34.7783c2.13379 -1.96289 3.86523 -5.9082 3.86523 -8.80762
+c0 -1.95508 -0.864258 -4.87402 -1.92969 -6.51465l-18.1543 -28.1133c-3.8418 -5.9502 -11.9668 -7.28223 -17.499 -2.9209c-8.5957 6.77637 -31.8145 22.5381 -61.708 22.5381c-48.3037 0 -77.916 -35.3301 -77.916 -80.082c0 -41.5889 26.8877 -83.6924 78.2764 -83.6924
+c32.6572 0 56.8428 19.0391 65.7266 27.2256c5.26953 4.85645 13.5957 4.03906 17.8193 -1.73828l19.8652 -27.1699c1.28613 -1.74512 2.33008 -4.91992 2.33008 -7.08789c0 -2.72363 -1.56055 -6.5 -3.48242 -8.42969z" />
+ <glyph glyph-name="closed-captioning" unicode=""
+d="M464 384c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h416zM458 48c3.2998 0 6 2.7002 6 6v276c0 3.2998 -2.7002 6 -6 6h-404c-3.2998 0 -6 -2.7002 -6 -6v-276c0 -3.2998 2.7002 -6 6 -6h404z
+M246.9 133.7c1.69922 -2.40039 1.5 -5.60059 -0.5 -7.7002c-53.6006 -56.7998 -172.801 -32.0996 -172.801 67.9004c0 97.2998 121.7 119.5 172.5 70.0996c2.10059 -2 2.5 -3.2002 1 -5.7002l-17.5 -30.5c-1.89941 -3.09961 -6.19922 -4 -9.09961 -1.7002
+c-40.7998 32 -94.5996 14.9004 -94.5996 -31.1992c0 -48 51 -70.5 92.1992 -32.6006c2.80078 2.5 7.10059 2.10059 9.2002 -0.899414zM437.3 133.7c1.7002 -2.40039 1.5 -5.60059 -0.5 -7.7002c-53.5996 -56.9004 -172.8 -32.0996 -172.8 67.9004
+c0 97.2998 121.7 119.5 172.5 70.0996c2.09961 -2 2.5 -3.2002 1 -5.7002l-17.5 -30.5c-1.90039 -3.09961 -6.2002 -4 -9.09961 -1.7002c-40.8008 32 -94.6006 14.9004 -94.6006 -31.1992c0 -48 51 -70.5 92.2002 -32.6006c2.7998 2.5 7.09961 2.10059 9.2002 -0.899414z
+" />
+ <glyph glyph-name="object-group" unicode=""
+d="M500 320h-12v-256h12c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v12h-320v-12c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h12v256h-12
+c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-12h320v12c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12zM448 384v-32h32v32h-32zM32 384v-32h32v32h-32zM64 0v32
+h-32v-32h32zM480 0v32h-32v-32h32zM440 64v256h-12c-6.62695 0 -12 5.37305 -12 12v12h-320v-12c0 -6.62695 -5.37305 -12 -12 -12h-12v-256h12c6.62695 0 12 -5.37305 12 -12v-12h320v12c0 6.62695 5.37305 12 12 12h12zM404 256c6.62695 0 12 -5.37207 12 -12v-168
+c0 -6.62793 -5.37305 -12 -12 -12h-200c-6.62695 0 -12 5.37207 -12 12v52h-84c-6.62695 0 -12 5.37207 -12 12v168c0 6.62793 5.37305 12 12 12h200c6.62695 0 12 -5.37207 12 -12v-52h84zM136 280v-112h144v112h-144zM376 104v112h-56v-76
+c0 -6.62793 -5.37305 -12 -12 -12h-76v-24h144z" />
+ <glyph glyph-name="object-ungroup" unicode="" horiz-adv-x="576"
+d="M564 224h-12v-160h12c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v12h-224v-12c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h12v24h-88v-12
+c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h12v160h-12c-6.62695 0 -12 5.37305 -12 12v72c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-12h224v12c0 6.62695 5.37305 12 12 12h72
+c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-12v-24h88v12c0 6.62695 5.37305 12 12 12h72c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12zM352 384v-32h32v32h-32zM352 128v-32h32v32h-32zM64 96v32h-32v-32h32zM64 352v32
+h-32v-32h32zM96 136h224v12c0 6.62695 5.37305 12 12 12h12v160h-12c-6.62695 0 -12 5.37305 -12 12v12h-224v-12c0 -6.62695 -5.37305 -12 -12 -12h-12v-160h12c6.62695 0 12 -5.37305 12 -12v-12zM224 0v32h-32v-32h32zM504 64v160h-12c-6.62695 0 -12 5.37305 -12 12v12
+h-88v-88h12c6.62695 0 12 -5.37305 12 -12v-72c0 -6.62695 -5.37305 -12 -12 -12h-72c-6.62695 0 -12 5.37305 -12 12v12h-88v-24h12c6.62695 0 12 -5.37305 12 -12v-12h224v12c0 6.62695 5.37305 12 12 12h12zM544 0v32h-32v-32h32zM544 256v32h-32v-32h32z" />
+ <glyph glyph-name="sticky-note" unicode="" horiz-adv-x="448"
+d="M448 99.8936c0 -10.9746 -6.29883 -26.1797 -14.0586 -33.9404l-83.8828 -83.8818c-7.75977 -7.76074 -22.9658 -14.0596 -33.9404 -14.0596h-268.118c-26.5098 0 -48 21.4902 -48 48v351.988c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-268.106z
+M320 19.8936l76.1182 76.1182h-76.1182v-76.1182zM400 368h-352v-351.988h224v104c0 13.2549 10.7451 24 24 24h104v223.988z" />
+ <glyph glyph-name="clone" unicode=""
+d="M464 448c26.5098 0 48 -21.4902 48 -48v-320c0 -26.5098 -21.4902 -48 -48 -48h-48v-48c0 -26.5098 -21.4902 -48 -48 -48h-320c-26.5098 0 -48 21.4902 -48 48v320c0 26.5098 21.4902 48 48 48h48v48c0 26.5098 21.4902 48 48 48h320zM362 -16c3.31152 0 6 2.68848 6 6
+v42h-224c-26.5098 0 -48 21.4902 -48 48v224h-42c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h308zM458 80c3.31152 0 6 2.68848 6 6v308c0 3.31152 -2.68848 6 -6 6h-308c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h308z" />
+ <glyph glyph-name="hourglass" unicode="" horiz-adv-x="384"
+d="M368 400c0 -80.0996 -31.8984 -165.619 -97.1797 -208c64.9912 -42.1934 97.1797 -127.436 97.1797 -208h4c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-360c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h4
+c0 80.0996 31.8994 165.619 97.1797 208c-64.9912 42.1934 -97.1797 127.436 -97.1797 208h-4c-6.62695 0 -12 5.37305 -12 12v24c0 6.62695 5.37305 12 12 12h360c6.62695 0 12 -5.37305 12 -12v-24c0 -6.62695 -5.37305 -12 -12 -12h-4zM64 400
+c0 -101.621 57.3066 -184 128 -184s128 82.3799 128 184h-256zM320 -16c0 101.62 -57.3076 184 -128 184s-128 -82.3799 -128 -184h256z" />
+ <glyph glyph-name="hand-rock" unicode=""
+d="M408.864 368.948c48.8213 20.751 103.136 -15.0723 103.136 -67.9111v-114.443c0 -15.3955 -3.08887 -30.3906 -9.18262 -44.5674l-42.835 -99.6562c-4.99707 -11.625 -3.98242 -18.8574 -3.98242 -42.3701c0 -17.6729 -14.3271 -32 -32 -32h-252
+c-17.6729 0 -32 14.3271 -32 32c0 27.3301 1.1416 29.2012 -3.11035 32.9033l-97.71 85.0811c-24.8994 21.6797 -39.1797 52.8926 -39.1797 85.6338v56.9531c0 47.4277 44.8457 82.0215 91.0459 71.1807c1.96094 55.751 63.5107 87.8262 110.671 60.8057
+c29.1895 31.0713 78.8604 31.4473 108.334 -0.0214844c32.7051 18.6846 76.4121 10.3096 98.8135 -23.5879zM464 186.594v114.445c0 34.29 -52 33.8232 -52 0.676758c0 -8.83594 -7.16309 -16 -16 -16h-7c-8.83691 0 -16 7.16406 -16 16v26.751
+c0 34.457 -52 33.707 -52 0.676758v-27.4287c0 -8.83594 -7.16309 -16 -16 -16h-7c-8.83691 0 -16 7.16406 -16 16v40.4658c0 34.3525 -52 33.8115 -52 0.677734v-41.1436c0 -8.83594 -7.16406 -16 -16 -16h-7c-8.83594 0 -16 7.16406 -16 16v26.751
+c0 34.4023 -52 33.7744 -52 0.676758v-116.571c0 -8.83203 -7.16797 -16 -16 -16c-3.30664 0 -8.01367 1.7627 -10.5068 3.93359l-7 6.09473c-3.03223 2.64062 -5.49316 8.04688 -5.49316 12.0674v0v41.2275c0 34.2148 -52 33.8857 -52 0.677734v-56.9531
+c0 -18.8555 8.27441 -36.874 22.7002 -49.4365l97.71 -85.0801c12.4502 -10.8398 19.5898 -26.4463 19.5898 -42.8164v-10.2861h220v7.07617c0 13.21 2.65332 26.0791 7.88281 38.25l42.835 99.6553c2.91602 6.75391 5.28223 18.207 5.28223 25.5635v0.0488281z" />
+ <glyph glyph-name="hand-paper" unicode="" horiz-adv-x="448"
+d="M372.57 335.359c39.9062 5.63281 75.4297 -25.7393 75.4297 -66.3594v-131.564c-0.00195312 -12.7666 -2.33008 -33.2246 -5.19531 -45.666l-30.1836 -130.958c-3.34668 -14.5234 -16.2783 -24.8125 -31.1816 -24.8125h-222.897
+c-9.10352 0 -20.7793 6.01758 -26.0615 13.4316l-119.97 168.415c-21.2441 29.8203 -14.8047 71.3574 14.5498 93.1533c18.7754 13.9395 42.1309 16.2979 62.083 8.87109v126.13c0 44.0547 41.125 75.5439 82.4053 64.9834c23.8926 48.1963 92.3535 50.2471 117.982 0.74707
+c42.5186 11.1445 83.0391 -21.9346 83.0391 -65.5469v-10.8242zM399.997 137.437l-0.00195312 131.563c0 24.9492 -36.5703 25.5508 -36.5703 -0.691406v-76.3086c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16v154.184
+c0 25.501 -36.5703 26.3633 -36.5703 0.691406v-154.875c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16v188.309c0 25.501 -36.5703 26.3545 -36.5703 0.691406v-189c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16
+v153.309c0 25.501 -36.5713 26.3359 -36.5713 0.691406v-206.494c0 -15.5703 -20.0352 -21.9092 -29.0303 -9.2832l-27.1279 38.0791c-14.3711 20.1709 -43.833 -2.33496 -29.3945 -22.6045l115.196 -161.697h201.92l27.3252 118.551
+c2.63086 11.417 3.96484 23.1553 3.96484 34.8857z" />
+ <glyph glyph-name="hand-scissors" unicode=""
+d="M256 -32c-44.9561 0 -77.3428 43.2627 -64.0244 85.8535c-21.6484 13.71 -34.0156 38.7617 -30.3408 65.0068h-87.6348c-40.8037 0 -74 32.8105 -74 73.1406c0 40.3291 33.1963 73.1396 74 73.1396l94 -9.14062l-78.8496 18.6787
+c-38.3076 14.7422 -57.04 57.4707 -41.9424 95.1123c15.0303 37.4736 57.7549 55.7803 95.6416 41.2012l144.929 -55.7568c24.9551 30.5566 57.8086 43.9932 92.2178 24.7324l97.999 -54.8525c20.9746 -11.7393 34.0049 -33.8457 34.0049 -57.6904v-205.702
+c0 -30.7422 -21.4404 -57.5576 -51.7979 -64.5537l-118.999 -27.4268c-4.97168 -1.14648 -10.0889 -1.72949 -15.2031 -1.72949zM256 16.0127l70 -0.000976562c1.23633 0 3.21777 0.225586 4.42285 0.501953l119.001 27.4277
+c8.58203 1.97754 14.5762 9.29102 14.5762 17.7812v205.701c0 6.4873 -3.62109 12.542 -9.44922 15.8047l-98 54.8545c-8.13965 4.55566 -18.668 2.61914 -24.4873 -4.50781l-21.7646 -26.6475c-2.65039 -3.24512 -8.20215 -5.87891 -12.3926 -5.87891
+c-1.64062 0 -4.21484 0.477539 -5.74609 1.06738l-166.549 64.0908c-32.6543 12.5664 -50.7744 -34.5771 -19.2227 -46.7168l155.357 -59.7852c5.66016 -2.17773 10.2539 -8.86816 10.2539 -14.9326v0v-11.6328c0 -8.83691 -7.16309 -16 -16 -16h-182
+c-34.375 0 -34.4297 -50.2803 0 -50.2803h182c8.83691 0 16 -7.16309 16 -16v-6.85645c0 -8.83691 -7.16309 -16 -16 -16h-28c-25.1221 0 -25.1592 -36.5674 0 -36.5674h28c8.83691 0 16 -7.16211 16 -16v-6.85547c0 -8.83691 -7.16309 -16 -16 -16
+c-25.1201 0 -25.1602 -36.5674 0 -36.5674z" />
+ <glyph glyph-name="hand-lizard" unicode="" horiz-adv-x="576"
+d="M556.686 157.458c12.6357 -19.4863 19.3145 -42.0615 19.3145 -65.2871v-124.171h-224v71.582l-99.751 38.7871c-2.7832 1.08203 -5.70996 1.63086 -8.69727 1.63086h-131.552c-30.8789 0 -56 25.1211 -56 56c0 48.5234 39.4766 88 88 88h113.709l18.333 48h-196.042
+c-44.1123 0 -80 35.8877 -80 80v8c0 30.8779 25.1211 56 56 56h293.917c24.5 0 47.084 -12.2725 60.4111 -32.8291zM528 16v76.1709v0.0478516c0 11.7461 -5.19141 29.2734 -11.5879 39.124l-146.358 225.715c-4.44336 6.85254 -11.9707 10.9424 -20.1367 10.9424h-293.917
+c-4.41113 0 -8 -3.58887 -8 -8v-8c0 -17.6445 14.3555 -32 32 -32h213.471c25.2021 0 42.626 -25.293 33.6299 -48.8457l-24.5518 -64.2812c-7.05371 -18.4658 -25.0732 -30.873 -44.8398 -30.873h-113.709c-22.0557 0 -40 -17.9443 -40 -40c0 -4.41113 3.58887 -8 8 -8
+h131.552h0.0517578c7.44141 0 19.1074 -2.19238 26.041 -4.89355l99.752 -38.7881c18.5898 -7.22852 30.6035 -24.7881 30.6035 -44.7363v-23.582h128z" />
+ <glyph glyph-name="hand-spock" unicode=""
+d="M21.0957 66.21c-26.9688 25.3818 -28.2471 67.7461 -2.87109 94.707c24.1982 25.7139 64.2881 28.2373 91.4824 5.72168l-31.04 136.509c-9.38379 41.2803 21.4336 81.0127 64.0713 81.8438c1.74414 28.9062 22.2656 54.4912 51.8818 61.2949
+c36.001 8.27539 72.0176 -14.2266 80.3037 -50.2959l21.6748 -131.99l16.9014 105.25c9.02344 36.0947 45.4473 57.7021 81.25 48.75c27.3066 -6.82715 45.7061 -29.1357 49.8496 -53.9922c43.2285 0.212891 75.6436 -40.1133 65.5439 -82.5244l-31.7295 -133.41
+c-0.938477 -3.94141 -1.41406 -7.99414 -1.41406 -12.0449v-36.8389v-0.00683594c0 -9.29102 -2.14355 -24.0596 -4.78516 -32.9668l-31.8145 -107.312c-4.02734 -13.585 -16.5107 -22.9043 -30.6807 -22.9043h-237.6c-7.00586 0 -16.8311 3.89648 -21.9316 8.69824z
+M53.1641 128.021c-7.17969 -7.62891 -6.81543 -19.6777 0.813477 -26.8574l124.487 -117.164h219.311l28.4199 95.8613c1.86133 6.27637 2.80469 12.7793 2.80469 19.3281v36.8389c0.000976562 6.48047 1.21973 16.8574 2.71973 23.1621l31.7549 133.407
+c5.83105 24.4893 -31.1445 33.25 -36.9658 8.80273l-26.9229 -113.105c-1.61523 -6.78711 -8.58887 -12.2949 -15.5645 -12.2949h-9.69434c-10.4072 0 -18.043 9.79199 -15.5225 19.8799l38.127 152.512c6.09766 24.376 -30.7607 33.6396 -36.8643 9.21777l-42.3721 -169.49
+c-1.67285 -6.68945 -8.62695 -12.1191 -15.5225 -12.1191h-13.2168v0c-7.0332 0 -14.0195 5.5625 -15.5938 12.417l-45.2207 196.828c-5.64453 24.5684 -42.6572 15.9609 -37.0342 -8.50781l41.6191 -181.153c2.30078 -10.0156 -5.31738 -19.583 -15.5938 -19.583h-8.60352
+h-0.000976562c-7.0498 0 -14.04 5.5791 -15.6025 12.4541l-30.3984 133.757c-5.55273 24.4395 -42.6504 16.1963 -37.0547 -8.4209l34.1299 -150.172c0.263672 -1.16309 0.397461 -2.35352 0.397461 -3.5459v-69.4795c0 -13.9941 -16.7754 -21.2432 -26.9658 -11.6523
+l-53.0117 49.8936c-7.61523 7.16699 -19.6377 6.85938 -26.8564 -0.8125z" />
+ <glyph glyph-name="hand-pointer" unicode="" horiz-adv-x="448"
+d="M358.182 268.639c43.1934 16.6348 89.8184 -15.7949 89.8184 -62.6387v-84c-0.000976562 -4.25 -0.775391 -11.0615 -1.72754 -15.2041l-27.4297 -118.999c-6.98242 -30.2969 -33.7549 -51.7969 -64.5566 -51.7969h-178.286c-21.2588 0 -41.3682 10.4102 -53.791 27.8457
+l-109.699 154.001c-21.2432 29.8193 -14.8047 71.3574 14.5498 93.1523c18.8115 13.9658 42.1748 16.2822 62.083 8.87207v161.129c0 36.9443 29.7363 67 66.2861 67s66.2861 -30.0557 66.2861 -67v-73.6338c20.4131 2.85742 41.4678 -3.94238 56.5947 -19.6289
+c27.1934 12.8467 60.3799 5.66992 79.8721 -19.0986zM80.9854 168.303c-14.4004 20.2119 -43.8008 -2.38281 -29.3945 -22.6055l109.712 -154c3.43457 -4.81934 8.92871 -7.69727 14.6973 -7.69727h178.285c8.49219 0 15.8037 5.99414 17.7822 14.5762l27.4297 119.001
+c0.333008 1.44629 0.501953 2.93457 0.501953 4.42285v84c0 25.1602 -36.5713 25.1211 -36.5713 0c0 -8.83594 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16406 -16 16v21c0 25.1602 -36.5713 25.1201 -36.5713 0v-21c0 -8.83594 -7.16309 -16 -16 -16h-6.85938
+c-8.83691 0 -16 7.16406 -16 16v35c0 25.1602 -36.5703 25.1201 -36.5703 0v-35c0 -8.83594 -7.16309 -16 -16 -16h-6.85742c-8.83691 0 -16 7.16406 -16 16v175c0 25.1602 -36.5713 25.1201 -36.5713 0v-241.493c0 -15.5703 -20.0352 -21.9092 -29.0303 -9.2832z
+M176.143 48v96c0 8.83691 6.26855 16 14 16h6c7.73242 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26758 -16 -14 -16h-6c-7.73242 0 -14 7.16309 -14 16zM251.571 48v96c0 8.83691 6.26758 16 14 16h6c7.73145 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26855 -16 -14 -16h-6
+c-7.73242 0 -14 7.16309 -14 16zM327 48v96c0 8.83691 6.26758 16 14 16h6c7.73242 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26758 -16 -14 -16h-6c-7.73242 0 -14 7.16309 -14 16z" />
+ <glyph glyph-name="hand-peace" unicode="" horiz-adv-x="448"
+d="M362.146 256.024c42.5908 13.3184 85.8535 -19.0684 85.8535 -64.0244l-0.0117188 -70.001c-0.000976562 -4.25 -0.775391 -11.0615 -1.72949 -15.2031l-27.4268 -118.999c-6.99707 -30.3564 -33.8105 -51.7969 -64.5547 -51.7969h-205.702
+c-23.8447 0 -45.9502 13.0303 -57.6904 34.0059l-54.8525 97.999c-19.2607 34.4092 -5.82422 67.2617 24.7324 92.2178l-55.7568 144.928c-14.5791 37.8867 3.72754 80.6113 41.2012 95.6416c37.6406 15.0977 80.3691 -3.63477 95.1123 -41.9424l18.6787 -78.8496
+l-9.14062 94c0 40.8037 32.8096 74 73.1396 74s73.1406 -33.1963 73.1406 -74v-87.6348c26.2451 3.6748 51.2959 -8.69238 65.0068 -30.3408zM399.987 122l-0.000976562 70c0 25.1602 -36.5674 25.1201 -36.5674 0c0 -8.83691 -7.16309 -16 -16 -16h-6.85547
+c-8.83789 0 -16 7.16309 -16 16v28c0 25.1592 -36.5674 25.1221 -36.5674 0v-28c0 -8.83691 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16309 -16 16v182c0 34.4297 -50.2803 34.375 -50.2803 0v-182c0 -8.83691 -7.16309 -16 -16 -16h-11.6328v0
+c-6.06445 0 -12.7549 4.59375 -14.9326 10.2539l-59.7842 155.357c-12.1396 31.5518 -59.2842 13.4326 -46.7168 -19.2227l64.0898 -166.549c0.589844 -1.53125 1.06738 -4.10547 1.06738 -5.74609c0 -4.19043 -2.63379 -9.74219 -5.87891 -12.3926l-26.6475 -21.7646
+c-7.12695 -5.81934 -9.06445 -16.3467 -4.50781 -24.4873l54.8535 -98c3.26367 -5.82812 9.31934 -9.44922 15.8057 -9.44922h205.701c8.49121 0 15.8037 5.99414 17.7812 14.5762l27.4277 119.001c0.333008 1.44629 0.501953 2.93457 0.501953 4.42285z" />
+ <glyph glyph-name="registered" unicode=""
+d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM256 -8c110.549 0 200 89.4678 200 200c0 110.549 -89.4678 200 -200 200c-110.549 0 -200 -89.4688 -200 -200c0 -110.549 89.4678 -200 200 -200z
+M366.442 73.791c4.40332 -7.99219 -1.37012 -17.791 -10.5107 -17.791h-42.8096h-0.0126953c-3.97559 0 -8.71582 2.84961 -10.5801 6.36035l-47.5156 89.3027h-31.958v-83.6631c0 -6.61719 -5.38281 -12 -12 -12h-38.5674c-6.61719 0 -12 5.38281 -12 12v248.304
+c0 6.61719 5.38281 12 12 12h78.667c71.251 0 101.498 -32.749 101.498 -85.252c0 -31.6123 -15.2148 -59.2969 -39.4824 -73.1758c3.02148 -4.61719 0.225586 0.199219 53.2715 -96.085zM256.933 208.094c20.9131 0 32.4307 11.5186 32.4316 32.4316
+c0 19.5752 -6.5127 31.709 -38.9297 31.709h-27.377v-64.1406h33.875z" />
+ <glyph glyph-name="calendar-plus" unicode="" horiz-adv-x="448"
+d="M336 156v-24c0 -6.59961 -5.40039 -12 -12 -12h-76v-76c0 -6.59961 -5.40039 -12 -12 -12h-24c-6.59961 0 -12 5.40039 -12 12v76h-76c-6.59961 0 -12 5.40039 -12 12v24c0 6.59961 5.40039 12 12 12h76v76c0 6.59961 5.40039 12 12 12h24c6.59961 0 12 -5.40039 12 -12
+v-76h76c6.59961 0 12 -5.40039 12 -12zM448 336v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40
+c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="calendar-minus" unicode="" horiz-adv-x="448"
+d="M124 120c-6.59961 0 -12 5.40039 -12 12v24c0 6.59961 5.40039 12 12 12h200c6.59961 0 12 -5.40039 12 -12v-24c0 -6.59961 -5.40039 -12 -12 -12h-200zM448 336v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52
+c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="calendar-times" unicode="" horiz-adv-x="448"
+d="M311.7 73.2998l-17 -17c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-53.7002 53.7998l-53.7002 -53.6992c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-17 17c-4.7002 4.69922 -4.7002 12.2998 0 17l53.7002 53.6992l-53.7002 53.7002c-4.7002 4.7002 -4.7002 12.2998 0 17
+l17 17c4.7002 4.7002 12.2998 4.7002 17 0l53.7002 -53.7002l53.7002 53.7002c4.7002 4.7002 12.2998 4.7002 17 0l17 -17c4.7002 -4.7002 4.7002 -12.2998 0 -17l-53.7998 -53.7998l53.6992 -53.7002c4.80078 -4.7002 4.80078 -12.2998 0.100586 -17zM448 336v-352
+c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48zM400 -10
+v298h-352v-298c0 -3.2998 2.7002 -6 6 -6h340c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="calendar-check" unicode="" horiz-adv-x="448"
+d="M400 384c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h48v52c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-52h128v52c0 6.62695 5.37305 12 12 12h40
+c6.62695 0 12 -5.37305 12 -12v-52h48zM394 -16c3.31152 0 6 2.68848 6 6v298h-352v-298c0 -3.31152 2.68848 -6 6 -6h340zM341.151 184.65l-142.31 -141.169c-4.70508 -4.66699 -12.3027 -4.6377 -16.9707 0.0673828l-75.0908 75.6992
+c-4.66699 4.70508 -4.6377 12.3027 0.0673828 16.9707l22.7197 22.5361c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0693359l44.1035 -44.4609l111.072 110.182c4.70508 4.66699 12.3027 4.63672 16.9707 -0.0683594l22.5361 -22.7178
+c4.66699 -4.70508 4.63672 -12.3027 -0.0683594 -16.9697z" />
+ <glyph glyph-name="map" unicode="" horiz-adv-x="576"
+d="M560.02 416c8.4502 0 15.9805 -6.83008 15.9805 -16.0195v-346.32c0 -11.9609 -9.01367 -25.2705 -20.1201 -29.71l-151.83 -52.8105c-5.32617 -1.7334 -14.1953 -3.13965 -19.7969 -3.13965c-5.7373 0 -14.8105 1.47363 -20.2529 3.29004l-172 60.71l-170.05 -62.8398
+c-1.99023 -0.790039 -4 -1.16016 -5.95996 -1.16016c-8.45996 0 -15.9902 6.83008 -15.9902 16.0195v346.32c0.00292969 11.959 9.0166 25.2686 20.1201 29.71l151.83 52.8105c6.43945 2.08984 13.1201 3.13965 19.8096 3.13965
+c5.73242 -0.00195312 14.8008 -1.47168 20.2402 -3.28027l172 -60.7197h0.00976562l170.05 62.8398c1.98047 0.790039 4 1.16016 5.95996 1.16016zM224 357.58v-285.97l128 -45.1904v285.97zM48 29.9502l127.36 47.0801l0.639648 0.229492v286.2l-128 -44.5303v-288.979z
+M528 65.0801v288.97l-127.36 -47.0693l-0.639648 -0.240234v-286.19z" />
+ <glyph glyph-name="comment-alt" unicode=""
+d="M448 448c35.2998 0 64 -28.7002 64 -64v-288c0 -35.2998 -28.7002 -64 -64 -64h-144l-124.9 -93.5996c-2.19922 -1.7002 -4.69922 -2.40039 -7.09961 -2.40039c-6.2002 0 -12 4.90039 -12 12v84h-96c-35.2998 0 -64 28.7002 -64 64v288c0 35.2998 28.7002 64 64 64h384z
+M464 96v288c0 8.7998 -7.2002 16 -16 16h-384c-8.7998 0 -16 -7.2002 -16 -16v-288c0 -8.7998 7.2002 -16 16 -16h144v-60l67.2002 50.4004l12.7998 9.59961h160c8.7998 0 16 7.2002 16 16z" />
+ <glyph glyph-name="pause-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM352 272v-160c0 -8.7998 -7.2002 -16 -16 -16h-48
+c-8.7998 0 -16 7.2002 -16 16v160c0 8.7998 7.2002 16 16 16h48c8.7998 0 16 -7.2002 16 -16zM240 272v-160c0 -8.7998 -7.2002 -16 -16 -16h-48c-8.7998 0 -16 7.2002 -16 16v160c0 8.7998 7.2002 16 16 16h48c8.7998 0 16 -7.2002 16 -16z" />
+ <glyph glyph-name="stop-circle" unicode=""
+d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM56 192c0 -110.5 89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200zM352 272v-160c0 -8.7998 -7.2002 -16 -16 -16h-160
+c-8.7998 0 -16 7.2002 -16 16v160c0 8.7998 7.2002 16 16 16h160c8.7998 0 16 -7.2002 16 -16z" />
+ <glyph glyph-name="handshake" unicode="" horiz-adv-x="640"
+d="M519.2 320.1h120.8v-255.699h-64c-17.5 0 -31.7998 14.1992 -31.9004 31.6992h-57.8994c-1.7998 -8.19922 -5.2998 -16.0996 -10.9004 -23l-26.2002 -32.2998c-15.7998 -19.3994 -41.8994 -25.5 -64 -16.7998c-13.5 -16.5996 -30.5996 -24 -48.7998 -24
+c-15.0996 0 -28.5996 5.09961 -41.0996 15.9004c-31.7998 -21.9004 -74.7002 -21.3008 -105.601 3.7998l-84.5996 76.3994h-9.09961c-0.100586 -17.5 -14.3008 -31.6992 -31.9004 -31.6992h-64v255.699h118l47.5996 47.6006c10.5 10.3994 24.8008 16.2998 39.6006 16.2998
+h226.8v0c12.7812 0 30.5225 -7.30273 39.5996 -16.2998zM48 96.4004c8.7998 0 16 7.09961 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16zM438 103.3c2.7002 3.40039 2.2002 8.5 -1.2002 11.2998l-108.2 87.8008l-8.19922 -7.5
+c-40.3008 -36.8008 -86.7002 -11.8008 -101.5 4.39941c-26.7002 29 -25 74.4004 4.39941 101.3l38.7002 35.5h-56.7002c-2 -0.799805 -3.7002 -1.5 -5.7002 -2.2998l-61.6992 -61.5996h-41.9004v-128.101h27.7002l97.2998 -88
+c16.0996 -13.0996 41.4004 -10.5 55.2998 6.60059l15.6006 19.2002l36.7998 -31.5c3 -2.40039 12 -4.90039 18 2.39941l30 36.5l23.8994 -19.3994c3.5 -2.80078 8.5 -2.2002 11.3008 1.19922zM544 144.1v128h-44.7002l-61.7002 61.6006
+c-1.39941 1.5 -3.39941 2.2998 -5.5 2.2998l-83.6992 -0.200195c-10 0 -19.6006 -3.7002 -27 -10.5l-65.6006 -60.0996c-9.7002 -8.7998 -10.5 -24 -1.2002 -33.9004c8.90039 -9.39941 25.1006 -8.7002 34.6006 0l55.2002 50.6006c6.5 5.89941 16.5996 5.5 22.5996 -1
+l10.9004 -11.7002c6 -6.5 5.5 -16.6006 -1 -22.6006l-12.5 -11.3994l102.699 -83.4004c2.80078 -2.2998 5.40039 -4.89941 7.7002 -7.7002h69.2002zM592 96.4004c8.7998 0 16 7.09961 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16z
+" />
+ <glyph glyph-name="envelope-open" unicode=""
+d="M494.586 283.484c9.6123 -7.94824 17.4141 -24.5205 17.4141 -36.9932v-262.491c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v262.515c0 12.5166 7.84668 29.1279 17.5146 37.0771c4.08008 3.35449 110.688 89.0996 135.15 108.549
+c22.6992 18.1426 60.1299 55.8594 103.335 55.8594c43.4365 0 81.2314 -38.1914 103.335 -55.8594c23.5283 -18.707 130.554 -104.773 135.251 -108.656zM464 -10v253.632v0.00488281c0 1.5791 -0.996094 3.66602 -2.22363 4.6582
+c-15.8633 12.8232 -108.793 87.5752 -132.366 106.316c-17.5527 14.0195 -49.7168 45.3887 -73.4102 45.3887c-23.6016 0 -55.2451 -30.8799 -73.4102 -45.3887c-23.5713 -18.7393 -116.494 -93.4795 -132.364 -106.293
+c-1.40918 -1.13965 -2.22559 -2.85254 -2.22559 -4.66504v-253.653c0 -3.31152 2.68848 -6 6 -6h404c3.31152 0 6 2.68848 6 6zM432.009 177.704c4.24902 -5.15918 3.46484 -12.7949 -1.74512 -16.9814c-28.9746 -23.2822 -59.2734 -47.5967 -70.9287 -56.8623
+c-22.6992 -18.1436 -60.1299 -55.8604 -103.335 -55.8604c-43.4521 0 -81.2871 38.2373 -103.335 55.8604c-11.2793 8.9668 -41.7441 33.4131 -70.9268 56.8643c-5.20996 4.1875 -5.99316 11.8223 -1.74512 16.9814l15.2578 18.5283
+c4.17773 5.07227 11.6572 5.84277 16.7793 1.72559c28.6182 -23.001 58.5654 -47.0352 70.5596 -56.5713c17.5527 -14.0195 49.7168 -45.3887 73.4102 -45.3887c23.6016 0 55.2461 30.8799 73.4102 45.3887c11.9941 9.53516 41.9434 33.5703 70.5625 56.5684
+c5.12207 4.11621 12.6016 3.3457 16.7783 -1.72656z" />
+ <glyph glyph-name="address-book" unicode="" horiz-adv-x="448"
+d="M436 288h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-48c0 -26.5 -21.5 -48 -48 -48h-320c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48
+h320c26.5 0 48 -21.5 48 -48v-48h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM368 -16v416h-320v-416h320zM208 192c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM118.4 64
+c-12.4004 0 -22.4004 8.59961 -22.4004 19.2002v19.2002c0 31.7998 30.0996 57.5996 67.2002 57.5996c11.3994 0 17.8994 -8 44.7998 -8c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996v-19.2002c0 -10.6006 -10 -19.2002 -22.4004 -19.2002
+h-179.199z" />
+ <glyph glyph-name="address-card" unicode="" horiz-adv-x="576"
+d="M528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM528 16v352h-480v-352h480zM208 192c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64z
+M118.4 64c-12.4004 0 -22.4004 8.59961 -22.4004 19.2002v19.2002c0 31.7998 30.0996 57.5996 67.2002 57.5996c11.3994 0 17.8994 -8 44.7998 -8c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996v-19.2002
+c0 -10.6006 -10 -19.2002 -22.4004 -19.2002h-179.199zM360 128c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 192c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112
+c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 256c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112z" />
+ <glyph glyph-name="user-circle" unicode="" horiz-adv-x="496"
+d="M248 344c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96zM248 200c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8
+c49.7002 0 95.0996 18.2998 130.1 48.4004c-14.8994 23 -40.3994 38.5 -69.5996 39.5c-20.7998 -6.5 -40.5996 -9.60059 -60.5 -9.60059s-39.7002 3.2002 -60.5 9.60059c-29.2002 -0.900391 -54.7002 -16.5 -69.5996 -39.5c35 -30.1006 80.3994 -48.4004 130.1 -48.4004z
+M410.7 76.0996c23.3994 32.7002 37.2998 72.7002 37.2998 115.9c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200c0 -43.2002 13.9004 -83.2002 37.2998 -115.9c24.5 31.4004 62.2002 51.9004 105.101 51.9004c10.1992 0 26.0996 -9.59961 57.5996 -9.59961
+c31.5996 0 47.4004 9.59961 57.5996 9.59961c43 0 80.7002 -20.5 105.101 -51.9004z" />
+ <glyph glyph-name="id-badge" unicode="" horiz-adv-x="384"
+d="M336 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h288zM336 -16v416h-288v-416h288zM144 336c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16h96c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16
+h-96zM192 160c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM102.4 32c-12.4004 0 -22.4004 8.59961 -22.4004 19.2002v19.2002c0 31.7998 30.0996 57.5996 67.2002 57.5996c11.3994 0 17.8994 -8 44.7998 -8
+c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996v-19.2002c0 -10.6006 -10 -19.2002 -22.4004 -19.2002h-179.199z" />
+ <glyph glyph-name="id-card" unicode="" horiz-adv-x="576"
+d="M528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM528 16v288h-480v-288h32.7998c-1 4.5 -0.799805 -3.59961 -0.799805 22.4004c0 31.7998 30.0996 57.5996 67.2002 57.5996
+c11.3994 0 17.8994 -8 44.7998 -8c26.0996 0 34 8 44.7998 8c37.1006 0 67.2002 -25.7998 67.2002 -57.5996c0 -26 0.0996094 -17.9004 -0.799805 -22.4004h224.8zM360 96c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16
+c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 160c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM360 224c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h112
+c4.40039 0 8 -3.59961 8 -8v-16c0 -4.40039 -3.59961 -8 -8 -8h-112zM192 128c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64z" />
+ <glyph glyph-name="window-maximize" unicode=""
+d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM464 22v234h-416v-234c0 -3.2998 2.7002 -6 6 -6h404c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="window-minimize" unicode=""
+d="M480 -32h-448c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32h448c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
+ <glyph glyph-name="window-restore" unicode=""
+d="M464 448c26.5 0 48 -21.5 48 -48v-320c0 -26.5 -21.5 -48 -48 -48h-48v-48c0 -26.5 -21.5 -48 -48 -48h-320c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h48v48c0 26.5 21.5 48 48 48h320zM368 -16v208h-320v-208h320zM464 80v320h-320v-48h224
+c26.5 0 48 -21.5 48 -48v-224h48z" />
+ <glyph glyph-name="snowflake" unicode="" horiz-adv-x="448"
+d="M440.1 92.7998c7.60059 -4.39941 10.1006 -14.2002 5.5 -21.7002l-7.89941 -13.8994c-4.40039 -7.7002 -14 -10.2998 -21.5 -5.90039l-39.2002 23l9.09961 -34.7002c2.30078 -8.5 -2.69922 -17.2998 -11.0996 -19.5996l-15.2002 -4.09961
+c-8.39941 -2.30078 -17.0996 2.7998 -19.2998 11.2998l-21.2998 81l-71.9004 42.2002v-84.5l58.2998 -59.3008c6.10059 -6.19922 6.10059 -16.3994 0 -22.5996l-11.0996 -11.2998c-6.09961 -6.2002 -16.0996 -6.2002 -22.2002 0l-24.8994 25.3994v-46.0996
+c0 -8.7998 -7 -16 -15.7002 -16h-15.7002c-8.7002 0 -15.7002 7.2002 -15.7002 16v45.9004l-24.8994 -25.4004c-6.10059 -6.2002 -16.1006 -6.2002 -22.2002 0l-11.1006 11.2998c-6.09961 6.2002 -6.09961 16.4004 0 22.6006l58.3008 59.2998v84.5l-71.9004 -42.2002
+l-21.2998 -81c-2.2998 -8.5 -10.9004 -13.5996 -19.2998 -11.2998l-15.2002 4.09961c-8.40039 2.2998 -13.2998 11.1006 -11.1006 19.6006l9.10059 34.6992l-39.2002 -23c-7.5 -4.39941 -17.2002 -1.7998 -21.5 5.90039l-7.90039 13.9004
+c-4.2998 7.69922 -1.69922 17.5 5.80078 21.8994l39.1992 23l-34.0996 9.2998c-8.40039 2.30078 -13.2998 11.1006 -11.0996 19.6006l4.09961 15.5c2.2998 8.5 10.9004 13.5996 19.2998 11.2998l79.7002 -21.7002l71.9004 42.2002l-71.9004 42.2002l-79.7002 -21.7002
+c-8.39941 -2.2998 -17.0996 2.7998 -19.2998 11.2998l-4.09961 15.5c-2.30078 8.5 2.69922 17.2998 11.0996 19.6006l34.0996 9.09961l-39.1992 23c-7.60059 4.5 -10.1006 14.2002 -5.80078 21.9004l7.90039 13.8994c4.40039 7.7002 14 10.2998 21.5 5.90039l39.2002 -23
+l-9.10059 34.7002c-2.2998 8.5 2.7002 17.2998 11.1006 19.5996l15.2002 4.09961c8.39941 2.30078 17.0996 -2.7998 19.2998 -11.2998l21.2998 -81l71.9004 -42.2002v84.5l-58.3008 59.3008c-6.09961 6.19922 -6.09961 16.3994 0 22.5996l11.5 11.2998
+c6.10059 6.2002 16.1006 6.2002 22.2002 0l24.9004 -25.3994v46.0996c0 8.7998 7 16 15.7002 16h15.6992c8.7002 0 15.7002 -7.2002 15.7002 -16v-45.9004l24.9004 25.4004c6.09961 6.2002 16.0996 6.2002 22.2002 0l11.0996 -11.2998
+c6.09961 -6.2002 6.09961 -16.4004 0 -22.6006l-58.2998 -59.2998v-84.5l71.8994 42.2002l21.3008 81c2.2998 8.5 10.8994 13.5996 19.2998 11.2998l15.2002 -4.09961c8.39941 -2.2998 13.2998 -11.1006 11.0996 -19.6006l-9.09961 -34.6992l39.1992 23
+c7.5 4.39941 17.2002 1.7998 21.5 -5.90039l7.90039 -13.9004c4.2998 -7.69922 1.7002 -17.5 -5.7998 -21.8994l-39.2002 -23l34.0996 -9.2998c8.40039 -2.30078 13.3008 -11.1006 11.1006 -19.6006l-4.10059 -15.5c-2.2998 -8.5 -10.8994 -13.5996 -19.2998 -11.2998
+l-79.7002 21.7002l-71.8994 -42.2002l71.7998 -42.2002l79.7002 21.7002c8.39941 2.2998 17.0996 -2.7998 19.2998 -11.2998l4.09961 -15.5c2.30078 -8.5 -2.69922 -17.2998 -11.0996 -19.6006l-34.0996 -9.2998z" />
+ <glyph glyph-name="trash-alt" unicode="" horiz-adv-x="448"
+d="M268 32c-6.62402 0 -12 5.37598 -12 12v216c0 6.62402 5.37598 12 12 12h24c6.62402 0 12 -5.37598 12 -12v-216c0 -6.62402 -5.37598 -12 -12 -12h-24zM432 368c8.83203 0 16 -7.16797 16 -16v-16c0 -8.83203 -7.16797 -16 -16 -16h-16v-336
+c0 -26.4961 -21.5039 -48 -48 -48h-288c-26.4961 0 -48 21.5039 -48 48v336h-16c-8.83203 0 -16 7.16797 -16 16v16c0 8.83203 7.16797 16 16 16h82.4102l34.0195 56.7002c7.71875 12.8613 26.1572 23.2998 41.1572 23.2998h0.00292969h100.82h0.0224609
+c15 0 33.4385 -10.4385 41.1572 -23.2998l34 -56.7002h82.4102zM171.84 397.09l-17.4502 -29.0898h139.221l-17.46 29.0898c-0.96582 1.60645 -3.26953 2.91016 -5.14355 2.91016h-0.00683594h-94h-0.0166016c-1.87402 0 -4.17871 -1.30371 -5.14355 -2.91016zM368 -16v336
+h-288v-336h288zM156 32c-6.62402 0 -12 5.37598 -12 12v216c0 6.62402 5.37598 12 12 12h24c6.62402 0 12 -5.37598 12 -12v-216c0 -6.62402 -5.37598 -12 -12 -12h-24z" />
+ <glyph glyph-name="images" unicode="" horiz-adv-x="576"
+d="M480 32v-16c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256c0 26.5098 21.4902 48 48 48h16v-48h-10c-3.31152 0 -6 -2.68848 -6 -6v-244c0 -3.31152 2.68848 -6 6 -6h372c3.31152 0 6 2.68848 6 6v10h48zM522 368h-372
+c-3.31152 0 -6 -2.68848 -6 -6v-244c0 -3.31152 2.68848 -6 6 -6h372c3.31152 0 6 2.68848 6 6v244c0 3.31152 -2.68848 6 -6 6zM528 416c26.5098 0 48 -21.4902 48 -48v-256c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256
+c0 26.5098 21.4902 48 48 48h384zM264 304c0 -22.0908 -17.9092 -40 -40 -40s-40 17.9092 -40 40s17.9092 40 40 40s40 -17.9092 40 -40zM192 208l39.5146 39.5146c4.68652 4.68652 12.2842 4.68652 16.9717 0l39.5137 -39.5146l103.515 103.515
+c4.68652 4.68652 12.2842 4.68652 16.9717 0l71.5137 -71.5146v-80h-288v48z" />
+ <glyph glyph-name="clipboard" unicode="" horiz-adv-x="384"
+d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM192 408c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24
+s-10.7002 24 -24 24zM336 -10v340c0 3.2998 -2.7002 6 -6 6h-42v-36c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12v36h-42c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h276c3.2998 0 6 2.7002 6 6z" />
+ <glyph glyph-name="arrow-alt-circle-down" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 -8c110.5 0 200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200zM224 308c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-116
+h67c10.7002 0 16.0996 -12.9004 8.5 -20.5l-99 -99c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-99 99c-7.5 7.59961 -2.2002 20.5 8.5 20.5h67v116z" />
+ <glyph glyph-name="arrow-alt-circle-left" unicode=""
+d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM456 192c0 110.5 -89.5 200 -200 200s-200 -89.5 -200 -200s89.5 -200 200 -200s200 89.5 200 200zM384 212v-40c0 -6.59961 -5.40039 -12 -12 -12h-116v-67
+c0 -10.7002 -12.9004 -16 -20.5 -8.5l-99 99c-4.7002 4.7002 -4.7002 12.2998 0 17l99 99c7.59961 7.59961 20.5 2.2002 20.5 -8.5v-67h116c6.59961 0 12 -5.40039 12 -12z" />
+ <glyph glyph-name="arrow-alt-circle-right" unicode=""
+d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM56 192c0 -110.5 89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200s-200 -89.5 -200 -200zM128 172v40c0 6.59961 5.40039 12 12 12h116v67
+c0 10.7002 12.9004 16 20.5 8.5l99 -99c4.7002 -4.7002 4.7002 -12.2998 0 -17l-99 -99c-7.59961 -7.59961 -20.5 -2.2002 -20.5 8.5v67h-116c-6.59961 0 -12 5.40039 -12 12z" />
+ <glyph glyph-name="arrow-alt-circle-up" unicode=""
+d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM256 392c-110.5 0 -200 -89.5 -200 -200s89.5 -200 200 -200s200 89.5 200 200s-89.5 200 -200 200zM276 64h-40c-6.59961 0 -12 5.40039 -12 12v116h-67
+c-10.7002 0 -16 12.9004 -8.5 20.5l99 99c4.7002 4.7002 12.2998 4.7002 17 0l99 -99c7.59961 -7.59961 2.2002 -20.5 -8.5 -20.5h-67v-116c0 -6.59961 -5.40039 -12 -12 -12z" />
+ <glyph glyph-name="gem" unicode="" horiz-adv-x="576"
+d="M464 448c4.09961 0 7.7998 -2 10.0996 -5.40039l99.9004 -147.199c2.90039 -4.40039 2.59961 -10.1006 -0.700195 -14.2002l-276 -340.8c-4.7998 -5.90039 -13.7998 -5.90039 -18.5996 0l-276 340.8c-3.2998 4 -3.60059 9.7998 -0.700195 14.2002l100 147.199
+c2.2002 3.40039 6 5.40039 10 5.40039h352zM444.7 400h-56.7998l51.6992 -96h68.4004zM242.6 400l-51.5996 -96h194l-51.7002 96h-90.7002zM131.3 400l-63.2998 -96h68.4004l51.6992 96h-56.7998zM88.2998 256l119.7 -160l-68.2998 160h-51.4004zM191.2 256l96.7998 -243.3
+l96.7998 243.3h-193.6zM368 96l119.6 160h-51.3994z" />
+ <glyph glyph-name="money-bill-alt" unicode="" horiz-adv-x="640"
+d="M320 304c53.0195 0 96 -50.1396 96 -112c0 -61.8701 -43 -112 -96 -112c-53.0195 0 -96 50.1504 -96 112c0 61.8604 42.9805 112 96 112zM360 136v16c0 4.41992 -3.58008 8 -8 8h-16v88c0 4.41992 -3.58008 8 -8 8h-13.5801h-0.000976562
+c-4.01074 0 -9.97266 -1.80566 -13.3086 -4.03027l-15.3301 -10.2197c-1.96777 -1.30957 -3.56445 -4.29004 -3.56445 -6.65332c0 -1.33691 0.601562 -3.32422 1.34375 -4.43652l8.88086 -13.3105c1.30859 -1.9668 4.29004 -3.56445 6.65332 -3.56445
+c1.33691 0 3.32422 0.602539 4.43652 1.34473l0.469727 0.310547v-55.4404h-16c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h64c4.41992 0 8 3.58008 8 8zM608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-576
+c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM592 112v160c-35.3496 0 -64 28.6504 -64 64h-416c0 -35.3496 -28.6504 -64 -64 -64v-160c35.3496 0 64 -28.6504 64 -64h416c0 35.3496 28.6504 64 64 64z" />
+ <glyph glyph-name="window-close" unicode=""
+d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM464 22v340c0 3.2998 -2.7002 6 -6 6h-404c-3.2998 0 -6 -2.7002 -6 -6v-340c0 -3.2998 2.7002 -6 6 -6h404c3.2998 0 6 2.7002 6 6z
+M356.5 253.4l-61.4004 -61.4004l61.4004 -61.4004c4.59961 -4.59961 4.59961 -12.0996 0 -16.7998l-22.2998 -22.2998c-4.60059 -4.59961 -12.1006 -4.59961 -16.7998 0l-61.4004 61.4004l-61.4004 -61.4004c-4.59961 -4.59961 -12.0996 -4.59961 -16.7998 0
+l-22.2998 22.2998c-4.59961 4.60059 -4.59961 12.1006 0 16.7998l61.4004 61.4004l-61.4004 61.4004c-4.59961 4.59961 -4.59961 12.0996 0 16.7998l22.2998 22.2998c4.60059 4.59961 12.1006 4.59961 16.7998 0l61.4004 -61.4004l61.4004 61.4004
+c4.59961 4.59961 12.0996 4.59961 16.7998 0l22.2998 -22.2998c4.7002 -4.60059 4.7002 -12.1006 0 -16.7998z" />
+ <glyph glyph-name="comment-dots" unicode=""
+d="M144 240c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM256 240c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM368 240c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32
+s-32 14.2998 -32 32s14.2998 32 32 32zM256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-32.7998 0 -64 5.2002 -92.9004 14.2998c-29.0996 -20.5996 -77.5996 -46.2998 -139.1 -46.2998c-9.59961 0 -18.2998 5.7002 -22.0996 14.5
+c-3.80078 8.7998 -2 19 4.59961 26c0.5 0.400391 31.5 33.7998 46.4004 73.2002c-33 35.0996 -52.9004 78.7002 -52.9004 126.3c0 114.9 114.6 208 256 208zM256 48c114.7 0 208 71.7998 208 160s-93.2998 160 -208 160s-208 -71.7998 -208 -160
+c0 -42.2002 21.7002 -74.0996 39.7998 -93.4004l20.6006 -21.7998l-10.6006 -28.0996c-5.5 -14.5 -12.5996 -28.1006 -19.8994 -40.2002c23.5996 7.59961 43.1992 18.9004 57.5 29l19.5 13.7998l22.6992 -7.2002c25.3008 -8 51.7002 -12.0996 78.4004 -12.0996z" />
+ <glyph glyph-name="smile-wink" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM365.8 138.4c10.2002 -8.5 11.6006 -23.6006 3.10059 -33.8008
+c-30 -36 -74.1006 -56.5996 -120.9 -56.5996s-90.9004 20.5996 -120.9 56.5996c-8.39941 10.2002 -7.09961 25.3008 3.10059 33.8008c10.0996 8.39941 25.2998 7.09961 33.7998 -3.10059c20.7998 -25.0996 51.5 -39.3994 84 -39.3994s63.2002 14.3994 84 39.3994
+c8.5 10.2002 23.5996 11.6006 33.7998 3.10059zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 268c25.7002 0 55.9004 -16.9004 59.7002 -42.0996c1.7998 -11.1006 -11.2998 -18.2002 -19.7998 -10.8008l-9.5 8.5
+c-14.8008 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5c-8.30078 -7.39941 -21.5 -0.399414 -19.8008 10.8008c4 25.1992 34.2002 42.0996 59.9004 42.0996z" />
+ <glyph glyph-name="angry" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM248 136c33.5996 0 65.2002 -14.7998 86.7998 -40.5996
+c8.40039 -10.2002 7.10059 -25.3008 -3.09961 -33.8008c-10.6006 -8.89941 -25.7002 -6.69922 -33.7998 3c-24.8008 29.7002 -75 29.7002 -99.8008 0c-8.5 -10.1992 -23.5996 -11.5 -33.7998 -3s-11.5996 23.6006 -3.09961 33.8008
+c21.5996 25.7998 53.2002 40.5996 86.7998 40.5996zM200 208c0 -17.7002 -14.2998 -32.0996 -32 -32.0996s-32 14.2998 -32 32c0 6.19922 2.2002 11.6992 5.2998 16.5996l-28.2002 8.5c-12.6992 3.7998 -19.8994 17.2002 -16.0996 29.9004
+c3.7998 12.6992 17.0996 20 29.9004 16.0996l80 -24c12.6992 -3.7998 19.8994 -17.2002 16.0996 -29.9004c-3.09961 -10.3994 -12.7002 -17.0996 -23 -17.0996zM399 262.9c3.7998 -12.7002 -3.40039 -26.1006 -16.0996 -29.8008l-28.2002 -8.5
+c3.09961 -4.89941 5.2998 -10.3994 5.2998 -16.5996c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c-10.2998 0 -19.9004 6.7002 -23 17.0996c-3.7998 12.7002 3.40039 26.1006 16.0996 29.9004l80 24c12.8008 3.7998 26.1006 -3.40039 29.9004 -16.0996z" />
+ <glyph glyph-name="dizzy" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM214.2 209.9
+c-7.90039 -7.90039 -20.5 -7.90039 -28.4004 -0.200195l-17.7998 17.7998l-17.7998 -17.7998c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0c-7.80078 7.7998 -7.80078 20.5 0 28.2998l17.8994 17.9004l-17.8994 17.8994c-7.80078 7.7998 -7.80078 20.5 0 28.2998
+c7.7998 7.80078 20.5 7.80078 28.2998 0l17.7998 -17.7998l17.9004 17.9004c7.7998 7.7998 20.5 7.7998 28.2998 0s7.7998 -20.5 0 -28.2998l-17.9004 -17.9004l17.9004 -17.7998c7.7998 -7.7998 7.7998 -20.5 0 -28.2998zM374.2 302.1
+c7.7002 -7.7998 7.7002 -20.3994 0 -28.1992l-17.9004 -17.9004l17.7998 -18c7.80078 -7.7998 7.80078 -20.5 0 -28.2998c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0l-17.7998 17.7998l-17.7998 -17.7998c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0
+c-7.80078 7.7998 -7.80078 20.5 0 28.2998l17.8994 17.9004l-17.8994 17.8994c-7.80078 7.7998 -7.80078 20.5 0 28.2998c7.7998 7.80078 20.5 7.80078 28.2998 0l17.7998 -17.7998l17.9004 17.7998c7.7998 7.80078 20.5 7.80078 28.2998 0zM248 176
+c35.2998 0 64 -28.7002 64 -64s-28.7002 -64 -64 -64s-64 28.7002 -64 64s28.7002 64 64 64z" />
+ <glyph glyph-name="flushed" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM344 304c44.2002 0 80 -35.7998 80 -80s-35.7998 -80 -80 -80
+s-80 35.7998 -80 80s35.7998 80 80 80zM344 176c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM344 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM232 224c0 -44.2002 -35.7998 -80 -80 -80
+s-80 35.7998 -80 80s35.7998 80 80 80s80 -35.7998 80 -80zM152 176c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM152 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM312 104
+c13.2002 0 24 -10.7998 24 -24s-10.7998 -24 -24 -24h-128c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24h128z" />
+ <glyph glyph-name="frown-open" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM200 240c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32
+s14.2998 32 32 32s32 -14.2998 32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM248 160c35.5996 0 88.7998 -21.2998 95.7998 -61.2002c2 -11.7998 -9.09961 -21.5996 -20.5 -18.0996
+c-31.2002 9.59961 -59.3994 15.2998 -75.2998 15.2998s-44.0996 -5.7002 -75.2998 -15.2998c-11.5 -3.40039 -22.5 6.2998 -20.5 18.0996c7 39.9004 60.2002 61.2002 95.7998 61.2002z" />
+ <glyph glyph-name="grimace" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM344 192c26.5 0 48 -21.5 48 -48v-32c0 -26.5 -21.5 -48 -48 -48h-192c-26.5 0 -48 21.5 -48 48v32c0 26.5 21.5 48 48 48
+h192zM176 96v24h-40v-8c0 -8.7998 7.2002 -16 16 -16h24zM176 136v24h-24c-8.7998 0 -16 -7.2002 -16 -16v-8h40zM240 96v24h-48v-24h48zM240 136v24h-48v-24h48zM304 96v24h-48v-24h48zM304 136v24h-48v-24h48zM360 112v8h-40v-24h24c8.7998 0 16 7.2002 16 16zM360 136v8
+c0 8.7998 -7.2002 16 -16 16h-24v-24h40z" />
+ <glyph glyph-name="grin" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
+c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.9004 -123.3 80c-1.7002 9.90039 7.7998 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
+ <glyph glyph-name="grin-alt" unicode="" horiz-adv-x="496"
+d="M200.3 200c-7.5 -11.4004 -24.5996 -12 -32.7002 0c-12.3994 18.7002 -15.1992 37.2998 -15.6992 56c0.599609 18.7002 3.2998 37.2998 15.6992 56c7.60059 11.4004 24.7002 12 32.7002 0c12.4004 -18.7002 15.2002 -37.2998 15.7002 -56
+c-0.599609 -18.7002 -3.2998 -37.2998 -15.7002 -56zM328.3 200c-7.5 -11.4004 -24.5996 -12 -32.7002 0c-12.3994 18.7002 -15.1992 37.2998 -15.6992 56c0.599609 18.7002 3.2998 37.2998 15.6992 56c7.60059 11.4004 24.7002 12 32.7002 0
+c12.4004 -18.7002 15.2002 -37.2998 15.7002 -56c-0.599609 -18.7002 -3.2998 -37.2998 -15.7002 -56zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200
+s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.8008 -123.3 80c-1.7002 10 7.7998 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006
+s79.7002 4.7998 105.6 13.1006z" />
+ <glyph glyph-name="grin-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
+c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.9004 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM117.7 216.3c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998
+c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996
+l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002zM277.7 216.3c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998
+c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002z" />
+ <glyph glyph-name="grin-beam-sweat" unicode="" horiz-adv-x="496"
+d="M440 288c-29.5 0 -53.2998 26.2998 -53.2998 58.7002c0 25 31.7002 75.5 46.2002 97.2998c3.5 5.2998 10.5996 5.2998 14.1992 0c14.5 -21.7998 46.2002 -72.2998 46.2002 -97.2998c0 -32.4004 -23.7998 -58.7002 -53.2998 -58.7002zM248 48
+c-51.9004 0 -115.3 32.9004 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-8 -47.0996 -71.3994 -80 -123.3 -80zM378.3 216.3
+c-3.09961 -0.899414 -7.2002 0.100586 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998
+c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998zM483.6 269.2c8 -24.2998 12.4004 -50.2002 12.4004 -77.2002c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248
+c45.7002 0 88.4004 -12.5996 125.2 -34.2002c-10.9004 -21.5996 -15.5 -36.2002 -17.2002 -45.7002c-31.2002 20.1006 -68.2002 31.9004 -108 31.9004c-110.3 0 -200 -89.7002 -200 -200s89.7002 -200 200 -200s200 89.7002 200 200
+c0 22.5 -3.90039 44.0996 -10.7998 64.2998c0.399414 0 21.7998 -2.7998 46.3994 12.9004zM168 258.6c-12.2998 0 -23.7998 -7.7998 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998
+c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996z" />
+ <glyph glyph-name="grin-hearts" unicode="" horiz-adv-x="496"
+d="M353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.8008 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM200.8 192.3
+l-70.2002 18.1006c-20.3994 5.2998 -31.8994 27 -24.1992 47.1992c6.69922 17.7002 26.6992 26.7002 44.8994 22l7.10059 -1.89941l2 7.09961c5.09961 18.1006 22.8994 30.9004 41.5 27.9004c21.3994 -3.40039 34.3994 -24.2002 28.7998 -44.5l-19.4004 -69.9004
+c-1.2998 -4.5 -6 -7.2002 -10.5 -6zM389.6 257.6c7.7002 -20.1992 -3.7998 -41.7998 -24.1992 -47.0996l-70.2002 -18.2002c-4.60059 -1.2002 -9.2998 1.5 -10.5 6l-19.4004 69.9004c-5.59961 20.2998 7.40039 41.0996 28.7998 44.5c18.7002 3 36.5 -9.7998 41.5 -27.9004
+l2 -7.09961l7.10059 1.89941c18.2002 4.7002 38.2002 -4.39941 44.8994 -22zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200
+s89.7002 -200 200 -200z" />
+ <glyph glyph-name="grin-squint" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
+c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.9004 -123.3 80c-1.7002 9.90039 7.7998 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM118.9 184.2c-3.80078 4.39941 -3.90039 11 -0.100586 15.5l33.6006 40.2998
+l-33.6006 40.2998c-3.7002 4.5 -3.7002 11 0.100586 15.5c3.89941 4.40039 10.1992 5.5 15.2998 2.5l80 -48c3.59961 -2.2002 5.7998 -6.09961 5.7998 -10.2998s-2.2002 -8.09961 -5.7998 -10.2998l-80 -48c-5.40039 -3.2002 -11.7002 -1.7002 -15.2998 2.5zM361.8 181.7
+l-80 48c-3.59961 2.2002 -5.7998 6.09961 -5.7998 10.2998s2.2002 8.09961 5.7998 10.2998l80 48c5.10059 2.90039 11.5 1.90039 15.2998 -2.5c3.80078 -4.5 3.90039 -11 0.100586 -15.5l-33.6006 -40.2998l33.6006 -40.2998c3.7002 -4.5 3.7002 -11 -0.100586 -15.5
+c-3.59961 -4.2002 -9.89941 -5.7002 -15.2998 -2.5z" />
+ <glyph glyph-name="grin-squint-tears" unicode=""
+d="M117.1 63.9004c6.30078 0.899414 11.7002 -4.5 10.9004 -10.9004c-3.7002 -25.7998 -13.7002 -84 -30.5996 -100.9c-22 -21.8994 -57.9004 -21.5 -80.3008 0.900391c-22.3994 22.4004 -22.7998 58.4004 -0.899414 80.2998
+c16.8994 16.9004 75.0996 26.9004 100.899 30.6006zM75.9004 105.6c-19.6006 -3.89941 -35.1006 -8.09961 -47.3008 -12.1992c-39.2998 90.5996 -22.0996 199.899 52 274c48.5 48.3994 111.9 72.5996 175.4 72.5996c38.9004 0 77.7998 -9.2002 113.2 -27.4004
+c-4 -12.1992 -8.2002 -28 -12 -48.2998c-30.4004 17.9004 -65 27.7002 -101.2 27.7002c-53.4004 0 -103.6 -20.7998 -141.4 -58.5996c-61.5996 -61.5 -74.2998 -153.4 -38.6992 -227.801zM428.2 293.2c20.2998 3.89941 36.2002 8 48.5 12
+c47.8994 -93.2002 32.8994 -210.5 -45.2002 -288.601c-48.5 -48.3994 -111.9 -72.5996 -175.4 -72.5996c-33.6992 0 -67.2998 7 -98.6992 20.5996c4.19922 12.2002 8.2998 27.7002 12.1992 47.2002c26.6006 -12.7998 55.9004 -19.7998 86.4004 -19.7998
+c53.4004 0 103.6 20.7998 141.4 58.5996c65.6992 65.7002 75.7998 166 30.7998 242.601zM394.9 320.1c-6.30078 -0.899414 -11.7002 4.5 -10.9004 10.9004c3.7002 25.7998 13.7002 84 30.5996 100.9c22 21.8994 57.9004 21.5 80.3008 -0.900391
+c22.3994 -22.4004 22.7998 -58.4004 0.899414 -80.2998c-16.8994 -16.9004 -75.0996 -26.9004 -100.899 -30.6006zM207.9 211.8c3 -3 4.19922 -7.2998 3.19922 -11.5l-22.5996 -90.5c-1.40039 -5.39941 -6.2002 -9.09961 -11.7002 -9.09961h-0.899414
+c-5.80078 0.5 -10.5 5.09961 -11 10.8994l-4.80078 52.3008l-52.2998 4.7998c-5.7998 0.5 -10.3994 5.2002 -10.8994 11c-0.400391 5.89941 3.39941 11.2002 9.09961 12.5996l90.5 22.7002c4.2002 1 8.40039 -0.200195 11.4004 -3.2002zM247.6 236.9
+c-0.0996094 0 -6.39941 -1.80078 -11.3994 3.19922c-3 3 -4.2002 7.30078 -3.2002 11.4004l22.5996 90.5c1.40039 5.7002 7 9.2002 12.6006 9.09961c5.7998 -0.5 10.5 -5.09961 11 -10.8994l4.7998 -52.2998l52.2998 -4.80078c5.7998 -0.5 10.4004 -5.19922 10.9004 -11
+c0.399414 -5.89941 -3.40039 -11.1992 -9.10059 -12.5996zM299.6 148.4c29.1006 29.0996 53 59.5996 65.3008 83.7998c4.89941 9.2998 17.5996 9.89941 23.3994 1.7002c27.7002 -38.9004 6.10059 -106.9 -30.5996 -143.7s-104.8 -58.2998 -143.7 -30.6006
+c-8.2998 5.90039 -7.5 18.6006 1.7002 23.4004c24.2002 12.5 54.7998 36.2998 83.8994 65.4004z" />
+ <glyph glyph-name="grin-stars" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM353.6 143.4c10 3.09961 19.3008 -5.5 17.7002 -15.3008
+c-8 -47.0996 -71.2998 -80 -123.3 -80s-115.4 32.8008 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.3008c26 -8.30078 64.3994 -13.1006 105.6 -13.1006s79.7002 4.7998 105.6 13.1006zM125.7 200.9l6.09961 34.8994l-25.3994 24.6006
+c-4.60059 4.59961 -1.90039 12.2998 4.2998 13.1992l34.8994 5l15.5 31.6006c2.90039 5.7998 11 5.7998 13.9004 0l15.5 -31.6006l34.9004 -5c6.19922 -1 8.7998 -8.69922 4.2998 -13.1992l-25.4004 -24.6006l6 -34.8994c1 -6.2002 -5.39941 -11 -11 -7.90039
+l-31.2998 16.2998l-31.2998 -16.2998c-5.60059 -3.09961 -12 1.7002 -11 7.90039zM385.4 273.6c6.19922 -1 8.89941 -8.59961 4.39941 -13.1992l-25.3994 -24.6006l6 -34.8994c1 -6.2002 -5.40039 -11 -11 -7.90039l-31.3008 16.2998l-31.2998 -16.2998
+c-5.59961 -3.09961 -12 1.7002 -11 7.90039l6 34.8994l-25.3994 24.6006c-4.60059 4.59961 -1.90039 12.2998 4.2998 13.1992l34.8994 5l15.5 31.6006c2.90039 5.7998 11 5.7998 13.9004 0l15.5 -31.6006z" />
+ <glyph glyph-name="grin-tears" unicode="" horiz-adv-x="640"
+d="M117.1 191.9c6.30078 0.899414 11.7002 -4.5 10.9004 -10.9004c-3.7002 -25.7998 -13.7002 -84 -30.5996 -100.9c-22 -21.8994 -57.9004 -21.5 -80.3008 0.900391c-22.3994 22.4004 -22.7998 58.4004 -0.899414 80.2998c16.8994 16.9004 75.0996 26.9004 100.899 30.6006
+zM623.8 161.3c21.9004 -21.8994 21.5 -57.8994 -0.799805 -80.2002c-22.4004 -22.3994 -58.4004 -22.7998 -80.2998 -0.899414c-16.9004 16.8994 -26.9004 75.0996 -30.6006 100.899c-0.899414 6.30078 4.5 11.7002 10.8008 10.8008
+c25.7998 -3.7002 84 -13.7002 100.899 -30.6006zM497.2 99.5996c12.3994 -37.2998 25.0996 -43.7998 28.2998 -46.5c-44.5996 -65.7998 -120 -109.1 -205.5 -109.1s-160.9 43.2998 -205.5 109.1c3.09961 2.60059 15.7998 9.10059 28.2998 46.5
+c33.4004 -63.8994 100.3 -107.6 177.2 -107.6s143.8 43.7002 177.2 107.6zM122.7 223.5c-2.40039 0.299805 -5 2.5 -49.5 -6.90039c12.3994 125.4 118.1 223.4 246.8 223.4s234.4 -98 246.8 -223.5c-44.2998 9.40039 -47.3994 7.2002 -49.5 7
+c-15.2002 95.2998 -97.7998 168.5 -197.3 168.5s-182.1 -73.2002 -197.3 -168.5zM320 48c-51.9004 0 -115.3 32.9004 -123.3 80c-1.7002 10 7.89941 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996s79.7002 4.7998 105.6 13.0996
+c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-8 -47.0996 -71.3994 -80 -123.3 -80zM450.3 216.3c-3.09961 -0.899414 -7.2002 0.100586 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17
+c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998zM240 258.6
+c-12.2998 0 -23.7998 -7.7998 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004
+c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996z" />
+ <glyph glyph-name="grin-tongue" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM312 40h0.0996094v43.7998l-17.6992 8.7998c-15.1006 7.60059 -31.5 -1.69922 -34.9004 -16.5l-2.7998 -12.0996c-2.10059 -9.2002 -15.2002 -9.2002 -17.2998 0
+l-2.80078 12.0996c-3.39941 14.8008 -19.8994 24 -34.8994 16.5l-17.7002 -8.7998v-42.7998c0 -35.2002 28 -64.5 63.0996 -65c35.8008 -0.5 64.9004 28.4004 64.9004 64zM340.2 14.7002c64 33.3994 107.8 100.3 107.8 177.3c0 110.3 -89.7002 200 -200 200
+s-200 -89.7002 -200 -200c0 -77 43.7998 -143.9 107.8 -177.3c-2.2002 8.09961 -3.7998 16.5 -3.7998 25.2998v43.5c-14.2002 12.4004 -24.4004 27.5 -27.2998 44.5c-1.7002 10 7.7998 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996
+s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-2.89941 -17 -13.0996 -32.0996 -27.2998 -44.5v-43.5c0 -8.7998 -1.59961 -17.2002 -3.7998 -25.2998zM168 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32
+s14.2998 32 32 32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
+ <glyph glyph-name="grin-tongue-squint" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM312 40h0.0996094v43.7998l-17.6992 8.7998c-15.1006 7.60059 -31.5 -1.69922 -34.9004 -16.5l-2.7998 -12.0996c-2.10059 -9.2002 -15.2002 -9.2002 -17.2998 0
+l-2.80078 12.0996c-3.39941 14.8008 -19.8994 24 -34.8994 16.5l-17.7002 -8.7998v-42.7998c0 -35.2002 28 -64.5 63.0996 -65c35.8008 -0.5 64.9004 28.4004 64.9004 64zM340.2 14.7002c64 33.3994 107.8 100.3 107.8 177.3c0 110.3 -89.7002 200 -200 200
+s-200 -89.7002 -200 -200c0 -77 43.7998 -143.9 107.8 -177.3c-2.2002 8.09961 -3.7998 16.5 -3.7998 25.2998v43.5c-14.2002 12.4004 -24.4004 27.5 -27.2998 44.5c-1.7002 10 7.7998 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996
+s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998c-2.89941 -17 -13.0996 -32.0996 -27.2998 -44.5v-43.5c0 -8.7998 -1.59961 -17.2002 -3.7998 -25.2998zM377.1 295.8c3.80078 -4.39941 3.90039 -11 0.100586 -15.5l-33.6006 -40.2998
+l33.6006 -40.2998c3.7002 -4.5 3.7002 -11 -0.100586 -15.5c-3.59961 -4.2002 -9.89941 -5.7002 -15.2998 -2.5l-80 48c-3.59961 2.2002 -5.7998 6.09961 -5.7998 10.2998s2.2002 8.09961 5.7998 10.2998l80 48c5 3 11.5 1.90039 15.2998 -2.5zM214.2 250.3
+c3.59961 -2.2002 5.7998 -6.09961 5.7998 -10.2998s-2.2002 -8.09961 -5.7998 -10.2998l-80 -48c-5.40039 -3.2002 -11.7002 -1.7002 -15.2998 2.5c-3.80078 4.5 -3.90039 11 -0.100586 15.5l33.6006 40.2998l-33.6006 40.2998c-3.7002 4.5 -3.7002 11 0.100586 15.5
+c3.89941 4.5 10.2998 5.5 15.2998 2.5z" />
+ <glyph glyph-name="grin-tongue-wink" unicode="" horiz-adv-x="496"
+d="M152 268c25.7002 0 55.9004 -16.9004 59.7998 -42.0996c0.799805 -5 -1.7002 -10 -6.09961 -12.4004c-5.7002 -3.09961 -11.2002 -0.599609 -13.7002 1.59961l-9.5 8.5c-14.7998 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5
+c-3.7998 -3.39941 -9.2998 -4 -13.7002 -1.59961c-4.39941 2.40039 -6.89941 7.40039 -6.09961 12.4004c3.89941 25.1992 34.0996 42.0996 59.7998 42.0996zM328 320c44.2002 0 80 -35.7998 80 -80s-35.7998 -80 -80 -80s-80 35.7998 -80 80s35.7998 80 80 80zM328 192
+c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM328 264c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248z
+M312 40h0.0996094v43.7998l-17.6992 8.7998c-15.1006 7.60059 -31.5 -1.69922 -34.9004 -16.5l-2.7998 -12.0996c-2.10059 -9.2002 -15.2002 -9.2002 -17.2998 0l-2.80078 12.0996c-3.39941 14.8008 -19.8994 24 -34.8994 16.5l-17.7002 -8.7998v-42.7998
+c0 -35.2002 28 -64.5 63.0996 -65c35.8008 -0.5 64.9004 28.4004 64.9004 64zM340.2 14.7002c64 33.3994 107.8 100.3 107.8 177.3c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200c0 -77 43.7998 -143.9 107.8 -177.3
+c-2.2002 8.09961 -3.7998 16.5 -3.7998 25.2998v43.5c-14.2002 12.4004 -24.4004 27.5 -27.2998 44.5c-1.7002 10 7.7998 18.4004 17.7002 15.2998c26 -8.2998 64.3994 -13.0996 105.6 -13.0996s79.7002 4.7998 105.6 13.0996c10 3.2002 19.4004 -5.39941 17.7002 -15.2998
+c-2.89941 -17 -13.0996 -32.0996 -27.2998 -44.5v-43.5c0 -8.7998 -1.59961 -17.2002 -3.7998 -25.2998z" />
+ <glyph glyph-name="grin-wink" unicode="" horiz-adv-x="496"
+d="M328 268c25.6904 0 55.8799 -16.9199 59.8701 -42.1201c1.72949 -11.0898 -11.3506 -18.2695 -19.8301 -10.8398l-9.5498 8.47949c-14.8105 13.1904 -46.1602 13.1904 -60.9707 0l-9.5498 -8.47949c-8.33008 -7.40039 -21.5801 -0.379883 -19.8301 10.8398
+c3.98047 25.2002 34.1699 42.1201 59.8604 42.1201zM168 208c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32s32 -14.3301 32 -32s-14.3301 -32 -32 -32zM353.55 143.36c10.04 3.13965 19.3906 -5.4502 17.71 -15.3408
+c-7.92969 -47.1494 -71.3193 -80.0195 -123.26 -80.0195s-115.33 32.8701 -123.26 80.0195c-1.69043 9.9707 7.76953 18.4707 17.71 15.3408c25.9297 -8.31055 64.3994 -13.0605 105.55 -13.0605s79.6201 4.75977 105.55 13.0605zM248 440c136.97 0 248 -111.03 248 -248
+s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 -8c110.28 0 200 89.7197 200 200s-89.7197 200 -200 200s-200 -89.7197 -200 -200s89.7197 -200 200 -200z" />
+ <glyph glyph-name="kiss" unicode="" horiz-adv-x="496"
+d="M168 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM304 140c0 -13 -13.4004 -27.2998 -35.0996 -36.4004c21.7998 -8.69922 35.1992 -23 35.1992 -36c0 -19.1992 -28.6992 -41.5 -71.5 -44h-0.5
+c-3.69922 0 -7 2.60059 -7.7998 6.2002c-0.899414 3.7998 1.10059 7.7002 4.7002 9.2002l17 7.2002c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.2002c-6 2.59961 -5.7002 12.3994 0 14.7998l17 7.2002
+c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.19922c-3.59961 1.5 -5.59961 5.40039 -4.7002 9.2002c0.799805 3.7998 4.40039 6.60059 8.2002 6.2002c42.7002 -2.5 71.5 -24.7998 71.5 -44zM248 440c137 0 248 -111 248 -248
+s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z
+" />
+ <glyph glyph-name="kiss-beam" unicode="" horiz-adv-x="496"
+d="M168 296c23.7998 0 52.7002 -29.2998 55.7998 -71.4004c0.299805 -3.7998 -2 -7.19922 -5.59961 -8.2998c-3.10059 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996c-12.3008 0 -23.8008 -7.89941 -31.5 -21.5996l-9.5 -17
+c-1.80078 -3.2002 -5.80078 -4.7002 -9.30078 -3.7002c-3.59961 1.10059 -5.89941 4.60059 -5.59961 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8
+c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM304 140c0 -13 -13.4004 -27.2998 -35.0996 -36.4004c21.7998 -8.69922 35.1992 -23 35.1992 -36c0 -19.1992 -28.6992 -41.5 -71.5 -44h-0.5
+c-3.69922 0 -7 2.60059 -7.7998 6.2002c-0.899414 3.7998 1.10059 7.7002 4.7002 9.2002l17 7.2002c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.2002c-6 2.59961 -5.7002 12.3994 0 14.7998l17 7.2002
+c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.19922c-3.59961 1.5 -5.59961 5.40039 -4.7002 9.2002c0.799805 3.7998 4.40039 6.60059 8.2002 6.2002c42.7002 -2.5 71.5 -24.7998 71.5 -44zM328 296
+c23.7998 0 52.7002 -29.2998 55.7998 -71.4004c0.299805 -3.7998 -2 -7.19922 -5.59961 -8.2998c-3.10059 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996c-12.3008 0 -23.8008 -7.89941 -31.5 -21.5996l-9.5 -17
+c-1.80078 -3.2002 -5.80078 -4.7002 -9.30078 -3.7002c-3.59961 1.10059 -5.89941 4.60059 -5.59961 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004z" />
+ <glyph glyph-name="kiss-wink-heart" unicode="" horiz-adv-x="504"
+d="M304 139.5c0 -13 -13.4004 -27.2998 -35.0996 -36.4004c21.7998 -8.69922 35.1992 -23 35.1992 -36c0 -19.1992 -28.6992 -41.5 -71.5 -44h-0.5c-3.69922 0 -7 2.60059 -7.7998 6.2002c-0.899414 3.7998 1.10059 7.7002 4.7002 9.2002l17 7.2002
+c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.2002c-6 2.59961 -5.7002 12.3994 0 14.7998l17 7.2002c12.9004 5.5 20.7002 13.5 20.7002 21.5s-7.7998 16 -20.7998 21.5l-16.9004 7.19922c-3.59961 1.5 -5.59961 5.40039 -4.7002 9.2002
+c0.799805 3.7998 4.40039 6.60059 8.2002 6.2002c42.7002 -2.5 71.5 -24.7998 71.5 -44zM374.5 223c-14.7998 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5c-2.5 -2.2998 -7.90039 -4.7002 -13.7002 -1.59961c-4.39941 2.39941 -6.89941 7.39941 -6.09961 12.3994
+c3.89941 25.2002 34.2002 42.1006 59.7998 42.1006s55.7998 -16.9004 59.7998 -42.1006c0.799805 -5 -1.7002 -10 -6.09961 -12.3994c-4.40039 -2.40039 -9.90039 -1.7002 -13.7002 1.59961zM136 239.5c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32
+s-32 14.2998 -32 32zM501.1 45.5c9.2002 -23.9004 -4.39941 -49.4004 -28.5 -55.7002l-83 -21.5c-5.39941 -1.39941 -10.8994 1.7998 -12.3994 7.10059l-22.9004 82.5996c-6.59961 24 8.7998 48.5996 34 52.5996c22 3.5 43.1006 -11.5996 49 -33l2.2998 -8.39941
+l8.40039 2.2002c21.5996 5.59961 45.0996 -5.10059 53.0996 -25.9004zM334 11.7002c17.7002 -64 10.9004 -39.5 13.4004 -46.7998c-30.5 -13.4004 -64 -20.9004 -99.4004 -20.9004c-137 0 -248 111 -248 248s111 248 248 248s248 -111 247.9 -248
+c0 -31.7998 -6.2002 -62.0996 -17.1006 -90c-6 1.5 -12.2002 2.7998 -18.5996 2.90039c-5.60059 9.69922 -13.6006 17.5 -22.6006 23.8994c6.7002 19.9004 10.4004 41.1006 10.4004 63.2002c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200
+c30.7998 0 59.9004 7.2002 86 19.7002z" />
+ <glyph glyph-name="laugh" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
+c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM328 224c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM168 224
+c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM362.4 160c8.19922 0 14.5 -7 13.5 -15c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
+ <glyph glyph-name="laugh-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
+c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM328 296c23.7998 0 52.7002 -29.2998 55.7998 -71.4004c0.700195 -8.5 -10.7998 -11.8994 -14.8994 -4.5
+l-9.5 17c-7.7002 13.7002 -19.2002 21.6006 -31.5 21.6006c-12.3008 0 -23.8008 -7.90039 -31.5 -21.6006l-9.5 -17c-4.10059 -7.39941 -15.6006 -4.09961 -14.9004 4.5c3.2998 42.1006 32.2002 71.4004 56 71.4004zM127 220.1c-4.2002 -7.39941 -15.7002 -4 -15.0996 4.5
+c3.2998 42.1006 32.1992 71.4004 56 71.4004c23.7998 0 52.6992 -29.2998 56 -71.4004c0.699219 -8.5 -10.8008 -11.8994 -14.9004 -4.5l-9.5 17c-7.7002 13.7002 -19.2002 21.6006 -31.5 21.6006s-23.7998 -7.90039 -31.5 -21.6006zM362.4 160c8.19922 0 14.5 -7 13.5 -15
+c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
+ <glyph glyph-name="laugh-squint" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
+c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM343.6 252l33.6006 -40.2998c8.59961 -10.4004 -3.90039 -24.7998 -15.4004 -18l-80 48
+c-7.7998 4.7002 -7.7998 15.8994 0 20.5996l80 48c11.6006 6.7998 24 -7.7002 15.4004 -18zM134.2 193.7c-11.6006 -6.7998 -24.1006 7.59961 -15.4004 18l33.6006 40.2998l-33.6006 40.2998c-8.59961 10.2998 3.7998 24.9004 15.4004 18l80 -48
+c7.7998 -4.7002 7.7998 -15.8994 0 -20.5996zM362.4 160c8.19922 0 14.5 -7 13.5 -15c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
+ <glyph glyph-name="laugh-wink" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM389.4 50.5996c37.7998 37.8008 58.5996 88 58.5996 141.4s-20.7998 103.6 -58.5996 141.4c-37.8008 37.7998 -88 58.5996 -141.4 58.5996s-103.6 -20.7998 -141.4 -58.5996
+c-37.7998 -37.8008 -58.5996 -88 -58.5996 -141.4s20.7998 -103.6 58.5996 -141.4c37.8008 -37.7998 88 -58.5996 141.4 -58.5996s103.6 20.7998 141.4 58.5996zM328 284c25.7002 0 55.9004 -16.9004 59.7002 -42.0996c1.7998 -11.1006 -11.2998 -18.2002 -19.7998 -10.8008
+l-9.5 8.5c-14.8008 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5c-8.30078 -7.39941 -21.5 -0.399414 -19.8008 10.8008c4 25.1992 34.2002 42.0996 59.9004 42.0996zM168 224c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32z
+M362.4 160c8.19922 0 14.5 -7 13.5 -15c-7.5 -59.2002 -58.9004 -105 -121.101 -105h-13.5996c-62.2002 0 -113.601 45.7998 -121.101 105c-1 8 5.30078 15 13.5 15h228.801z" />
+ <glyph glyph-name="meh-blank" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM168 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32
+s-32 14.2998 -32 32s14.2998 32 32 32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
+ <glyph glyph-name="meh-rolling-eyes" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM336 296c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72
+s-72 32.2002 -72 72s32.2002 72 72 72zM336 184c22.0996 0 40 17.9004 40 40c0 13.5996 -7.2998 25.0996 -17.7002 32.2998c1 -2.59961 1.7002 -5.39941 1.7002 -8.2998c0 -13.2998 -10.7002 -24 -24 -24s-24 10.7002 -24 24c0 3 0.700195 5.7002 1.7002 8.2998
+c-10.4004 -7.2002 -17.7002 -18.7002 -17.7002 -32.2998c0 -22.0996 17.9004 -40 40 -40zM232 224c0 -39.7998 -32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72s72 -32.2002 72 -72zM120 224c0 -22.0996 17.9004 -40 40 -40s40 17.9004 40 40
+c0 13.5996 -7.2998 25.0996 -17.7002 32.2998c1 -2.59961 1.7002 -5.39941 1.7002 -8.2998c0 -13.2998 -10.7002 -24 -24 -24s-24 10.7002 -24 24c0 3 0.700195 5.7002 1.7002 8.2998c-10.4004 -7.2002 -17.7002 -18.7002 -17.7002 -32.2998zM312 96
+c13.2002 0 24 -10.7998 24 -24s-10.7998 -24 -24 -24h-128c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24h128z" />
+ <glyph glyph-name="sad-cry" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM392 53.5996c34.5996 35.9004 56 84.7002 56 138.4c0 110.3 -89.7002 200 -200 200s-200 -89.7002 -200 -200c0 -53.7002 21.4004 -102.4 56 -138.4v114.4
+c0 13.2002 10.7998 24 24 24s24 -10.7998 24 -24v-151.4c28.5 -15.5996 61.2002 -24.5996 96 -24.5996s67.5 9 96 24.5996v151.4c0 13.2002 10.7998 24 24 24s24 -10.7998 24 -24v-114.4zM205.8 213.5c-5.7998 -3.2002 -11.2002 -0.700195 -13.7002 1.59961l-9.5 8.5
+c-14.7998 13.2002 -46.1992 13.2002 -61 0l-9.5 -8.5c-3.7998 -3.39941 -9.2998 -4 -13.6992 -1.59961c-4.40039 2.40039 -6.90039 7.40039 -6.10059 12.4004c3.90039 25.1992 34.2002 42.0996 59.7998 42.0996c25.6006 0 55.8008 -16.9004 59.8008 -42.0996
+c0.799805 -5 -1.7002 -10 -6.10059 -12.4004zM344 268c25.7002 0 55.9004 -16.9004 59.7998 -42.0996c0.799805 -5 -1.7002 -10 -6.09961 -12.4004c-5.7002 -3.09961 -11.2002 -0.599609 -13.7002 1.59961l-9.5 8.5c-14.7998 13.2002 -46.2002 13.2002 -61 0l-9.5 -8.5
+c-3.7998 -3.39941 -9.2002 -4 -13.7002 -1.59961c-4.39941 2.40039 -6.89941 7.40039 -6.09961 12.4004c3.89941 25.1992 34.0996 42.0996 59.7998 42.0996zM248 176c30.9004 0 56 -28.7002 56 -64s-25.0996 -64 -56 -64s-56 28.7002 -56 64s25.0996 64 56 64z" />
+ <glyph glyph-name="sad-tear" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM256 144c38.0996 0 74 -16.7998 98.5 -46.0996
+c8.5 -10.2002 7.09961 -25.3008 -3.09961 -33.8008c-10.6006 -8.7998 -25.7002 -6.69922 -33.8008 3.10059c-15.2998 18.2998 -37.7998 28.7998 -61.5996 28.7998c-13.2002 0 -24 10.7998 -24 24s10.7998 24 24 24zM168 208c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM162.4 173.2c2.7998 3.7002 8.39941 3.7002 11.1992 0c11.4004 -15.2998 36.4004 -50.6006 36.4004 -68.1006
+c0 -22.6992 -18.7998 -41.0996 -42 -41.0996s-42 18.4004 -42 41.0996c0 17.5 25 52.8008 36.4004 68.1006z" />
+ <glyph glyph-name="smile-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM332 135.4c8.5 10.1992 23.5996 11.5 33.7998 3.09961
+c10.2002 -8.5 11.6006 -23.5996 3.10059 -33.7998c-30 -36 -74.1006 -56.6006 -120.9 -56.6006s-90.9004 20.6006 -120.9 56.6006c-8.39941 10.2002 -7.09961 25.2998 3.10059 33.7998c10.2002 8.40039 25.2998 7.09961 33.7998 -3.09961
+c20.7998 -25.1006 51.5 -39.4004 84 -39.4004s63.2002 14.4004 84 39.4004zM136.5 237l-9.5 -17c-1.90039 -3.2002 -5.90039 -4.7998 -9.2998 -3.7002c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004s52.7002 -29.2998 56 -71.4004
+c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996zM328 296c23.7998 0 52.7002 -29.2998 56 -71.4004
+c0.299805 -3.7998 -2.09961 -7.19922 -5.7002 -8.2998c-3.09961 -1 -7.2002 0 -9.2998 3.7002l-9.5 17c-7.7002 13.7002 -19.2002 21.5996 -31.5 21.5996s-23.7998 -7.89941 -31.5 -21.5996l-9.5 -17c-1.90039 -3.2002 -5.7998 -4.7998 -9.2998 -3.7002
+c-3.60059 1.10059 -6 4.60059 -5.7002 8.2998c3.2998 42.1006 32.2002 71.4004 56 71.4004z" />
+ <glyph glyph-name="surprise" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM248 168c35.2998 0 64 -28.7002 64 -64s-28.7002 -64 -64 -64
+s-64 28.7002 -64 64s28.7002 64 64 64zM200 240c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32zM328 272c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
+ <glyph glyph-name="tired" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 -8c110.3 0 200 89.7002 200 200s-89.7002 200 -200 200s-200 -89.7002 -200 -200s89.7002 -200 200 -200zM377.1 295.8c3.80078 -4.39941 3.90039 -11 0.100586 -15.5
+l-33.6006 -40.2998l33.6006 -40.2998c3.7998 -4.5 3.7002 -11 -0.100586 -15.5c-3.5 -4.10059 -9.89941 -5.7002 -15.2998 -2.5l-80 48c-3.59961 2.2002 -5.7998 6.09961 -5.7998 10.2998s2.2002 8.09961 5.7998 10.2998l80 48c5 2.90039 11.5 1.90039 15.2998 -2.5z
+M220 240c0 -4.2002 -2.2002 -8.09961 -5.7998 -10.2998l-80 -48c-5.40039 -3.2002 -11.7998 -1.60059 -15.2998 2.5c-3.80078 4.5 -3.90039 11 -0.100586 15.5l33.6006 40.2998l-33.6006 40.2998c-3.7998 4.5 -3.7002 11 0.100586 15.5
+c3.7998 4.40039 10.2998 5.5 15.2998 2.5l80 -48c3.59961 -2.2002 5.7998 -6.09961 5.7998 -10.2998zM248 176c45.4004 0 100.9 -38.2998 107.8 -93.2998c1.5 -11.9004 -7 -21.6006 -15.5 -17.9004c-22.7002 9.7002 -56.2998 15.2002 -92.2998 15.2002
+s-69.5996 -5.5 -92.2998 -15.2002c-8.60059 -3.7002 -17 6.10059 -15.5 17.9004c6.89941 55 62.3994 93.2998 107.8 93.2998z" />
+ </font>
+</defs></svg>
--- /dev/null
+<?xml version="1.0" standalone="no"?>
+<!--
+Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+-->
+<!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" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata>
+Created by FontForge 20190112 at Tue Jun 4 15:15:41 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+</metadata>
+<defs>
+<font id="FontAwesome5Free-Solid" horiz-adv-x="512" >
+ <font-face
+ font-family="Font Awesome 5 Free Solid"
+ font-weight="900"
+ font-stretch="normal"
+ units-per-em="512"
+ panose-1="2 0 5 3 0 0 0 0 0 0"
+ ascent="448"
+ descent="-64"
+ bbox="-0.983398 -64.9834 640.104 448.427"
+ underline-thickness="25"
+ underline-position="-51"
+ unicode-range="U+0020-F897"
+ />
+ <missing-glyph />
+ <glyph glyph-name="glass-martini" unicode=""
+d="M502.05 390.4l-214.05 -214.04v-192.36h56c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-240c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h56v192.36l-214.05 214.04c-21.25 21.2598 -6.2002 57.5996 23.8496 57.5996h444.4
+c30.0498 0 45.0996 -36.3398 23.8496 -57.5996z" />
+ <glyph glyph-name="music" unicode=""
+d="M511.99 415.99l0.00976562 -351.99c0 -35.3496 -42.9805 -64 -96 -64s-96 28.6504 -96 64s42.9805 64 96 64c11.2803 0 21.9502 -1.54004 32 -3.91992v184.63l-256 -75.0195v-233.69c0 -35.3496 -42.9805 -64 -96 -64s-96 28.6504 -96 64s42.9805 64 96 64
+c11.2803 0 21.9502 -1.54004 32 -3.91992v261.42c0 14 9.09961 26.2998 22.4004 30.5l319.989 94.5c20.5 6.5 41.6006 -8.7998 41.6006 -30.5098z" />
+ <glyph glyph-name="search" unicode=""
+d="M505 5.2998c9.2998 -9.39941 9.2998 -24.5996 -0.0996094 -34l-28.3008 -28.2998c-9.2998 -9.40039 -24.5 -9.40039 -33.8994 0l-99.7002 99.7002c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.7002 -44 -128 -44c-114.9 0 -208 93.0996 -208 208
+s93.0996 208 208 208s208 -93.0996 208 -208c0 -48.2998 -16.4004 -92.7002 -44 -128h16.2998c6.40039 0 12.5 -2.5 17 -7zM208 112c70.7998 0 128 57.2998 128 128c0 70.7998 -57.2998 128 -128 128c-70.7998 0 -128 -57.2998 -128 -128c0 -70.7998 57.2998 -128 128 -128z
+" />
+ <glyph glyph-name="heart" unicode=""
+d="M462.3 385.4c62.7998 -53.6006 66.1006 -149.801 9.7998 -207.9l-193.5 -199.8c-12.5 -12.9004 -32.7998 -12.9004 -45.2998 0l-193.5 199.8c-56.2002 58.0996 -52.8994 154.3 9.90039 207.9c54.7998 46.6992 136.399 38.2998 186.6 -13.6006l19.7002 -20.2998
+l19.7002 20.2998c50.2998 51.9004 131.8 60.2998 186.6 13.6006z" />
+ <glyph glyph-name="star" unicode="" horiz-adv-x="576"
+d="M259.3 430.2c11.7998 23.8994 45.7002 23.5996 57.4004 0l65.2998 -132.4l146.1 -21.2998c26.2002 -3.7998 36.7002 -36.0996 17.7002 -54.5996l-105.7 -103l25 -145.5c4.5 -26.3008 -23.1992 -45.9004 -46.3994 -33.7002l-130.7 68.7002l-130.7 -68.7002
+c-23.2002 -12.2998 -50.8994 7.39941 -46.3994 33.7002l25 145.5l-105.7 103c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2998z" />
+ <glyph glyph-name="user" unicode="" horiz-adv-x="448"
+d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996
+c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
+ <glyph glyph-name="film" unicode=""
+d="M488 384c13.2998 0 24 -10.7002 24 -24v-336c0 -13.2998 -10.7002 -24 -24 -24h-8v20c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-20h-320v20c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-20h-8
+c-13.2998 0 -24 10.7002 -24 24v336c0 13.2998 10.7002 24 24 24h8v-20c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v20h320v-20c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v20h8zM96 76v40c0 6.59961 -5.40039 12 -12 12h-40
+c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM96 172v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM96 268v40
+c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM368 60v96c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-96c0 -6.59961 5.40039 -12 12 -12h200
+c6.59961 0 12 5.40039 12 12zM368 228v96c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-96c0 -6.59961 5.40039 -12 12 -12h200c6.59961 0 12 5.40039 12 12zM480 76v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40
+c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM480 172v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM480 268v40c0 6.59961 -5.40039 12 -12 12h-40
+c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="th-large" unicode=""
+d="M296 416h192c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24v160c0 13.2549 10.7451 24 24 24zM216 416c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192
+c-13.2549 0 -24 10.7451 -24 24v160c0 13.2549 10.7451 24 24 24h192zM0 152c0 13.2549 10.7451 24 24 24h192c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24v160zM296 -32c-13.2549 0 -24 10.7451 -24 24v160
+c0 13.2549 10.7451 24 24 24h192c13.2549 0 24 -10.7451 24 -24v-160c0 -13.2549 -10.7451 -24 -24 -24h-192z" />
+ <glyph glyph-name="th" unicode=""
+d="M149.333 392v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24zM330.667 152c0 -13.2549 -10.7451 -24 -24.001 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80
+c0 13.2549 10.7451 24 24 24h101.334c13.2549 0 24 -10.7451 24 -24v-80zM362.667 392c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80zM330.667 312
+c0 -13.2549 -10.7451 -24 -24.001 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.334c13.2549 0 24 -10.7451 24 -24v-80zM125.333 256c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333
+c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333zM0 72c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80zM386.667 128
+c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333zM386.667 -32c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24
+v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333zM181.333 72c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80z" />
+ <glyph glyph-name="th-list" unicode=""
+d="M149.333 232v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24zM0 72c0 13.2549 10.7451 24 24 24h101.333c13.2549 0 24 -10.7451 24 -24v-80
+c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80zM125.333 416c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-101.333c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h101.333zM205.333 -32
+c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h282.667c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-282.667zM181.333 392c0 13.2549 10.7451 24 24 24h282.667c13.2549 0 24 -10.7451 24 -24v-80
+c0 -13.2549 -10.7451 -24 -24 -24h-282.667c-13.2549 0 -24 10.7451 -24 24v80zM205.333 128c-13.2549 0 -24 10.7451 -24 24v80c0 13.2549 10.7451 24 24 24h282.667c13.2549 0 24 -10.7451 24 -24v-80c0 -13.2549 -10.7451 -24 -24 -24h-282.667z" />
+ <glyph glyph-name="check" unicode=""
+d="M173.898 8.5957l-166.4 166.4c-9.99707 9.99707 -9.99707 26.2061 0 36.2041l36.2031 36.2041c9.99707 9.99805 26.207 9.99805 36.2041 0l112.095 -112.095l240.095 240.095c9.99707 9.99707 26.207 9.99707 36.2041 0l36.2031 -36.2041
+c9.99707 -9.99707 9.99707 -26.2061 0 -36.2041l-294.4 -294.401c-9.99805 -9.99707 -26.207 -9.99707 -36.2031 0.000976562z" />
+ <glyph glyph-name="times" unicode="" horiz-adv-x="352"
+d="M242.72 192l100.07 -100.07c12.2803 -12.29 12.2803 -32.1992 0 -44.4795l-22.2402 -22.2402c-12.2803 -12.2803 -32.2002 -12.2803 -44.4795 0l-100.07 100.07l-100.07 -100.07c-12.2793 -12.2803 -32.1992 -12.2803 -44.4795 0l-22.2402 22.2402
+c-12.2803 12.29 -12.2803 32.2002 0 44.4795l100.07 100.07l-100.07 100.07c-12.2803 12.29 -12.2803 32.1992 0 44.4795l22.2402 22.2402c12.29 12.2803 32.2002 12.2803 44.4795 0l100.07 -100.07l100.07 100.07c12.29 12.2803 32.1992 12.2803 44.4795 0
+l22.2402 -22.2402c12.2803 -12.29 12.2803 -32.2002 0 -44.4795z" />
+ <glyph glyph-name="search-plus" unicode=""
+d="M304 256v-32c0 -6.59961 -5.40039 -12 -12 -12h-56v-56c0 -6.59961 -5.40039 -12 -12 -12h-32c-6.59961 0 -12 5.40039 -12 12v56h-56c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h56v56c0 6.59961 5.40039 12 12 12h32c6.59961 0 12 -5.40039 12 -12
+v-56h56c6.59961 0 12 -5.40039 12 -12zM505 -28.7002l-28.2998 -28.2998c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-99.7998 99.7002c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.7002 -44 -128 -44c-114.9 0 -208 93.0996 -208 208
+s93.0996 208 208 208s208 -93.0996 208 -208c0 -48.2998 -16.4004 -92.7002 -44 -128h16.2998c6.40039 0 12.5 -2.5 17 -7l99.7002 -99.7002c9.2998 -9.39941 9.2998 -24.5996 0 -34zM344 240c0 75.2002 -60.7998 136 -136 136s-136 -60.7998 -136 -136
+s60.7998 -136 136 -136s136 60.7998 136 136z" />
+ <glyph glyph-name="search-minus" unicode=""
+d="M304 256v-32c0 -6.59961 -5.40039 -12 -12 -12h-168c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h168c6.59961 0 12 -5.40039 12 -12zM505 -28.7002l-28.2998 -28.2998c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-99.7998 99.7002
+c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.7002 -44 -128 -44c-114.9 0 -208 93.0996 -208 208s93.0996 208 208 208s208 -93.0996 208 -208c0 -48.2998 -16.4004 -92.7002 -44 -128h16.2998c6.40039 0 12.5 -2.5 17 -7l99.7002 -99.7002
+c9.2998 -9.39941 9.2998 -24.5996 0 -34zM344 240c0 75.2002 -60.7998 136 -136 136s-136 -60.7998 -136 -136s60.7998 -136 136 -136s136 60.7998 136 136z" />
+ <glyph glyph-name="power-off" unicode=""
+d="M400 393.9c63 -45 104 -118.601 104 -201.9c0 -136.8 -110.8 -247.7 -247.5 -248c-136.5 -0.299805 -248.3 111 -248.5 247.6c-0.0996094 83.3008 40.9004 157.101 103.8 202.2c11.7002 8.2998 28 4.7998 35 -7.7002l15.7998 -28.0996
+c5.90039 -10.5 3.10059 -23.7998 -6.59961 -31c-41.5 -30.7998 -68 -79.5996 -68 -134.9c-0.0996094 -92.2998 74.5 -168.1 168 -168.1c91.5996 0 168.6 74.2002 168 169.1c-0.299805 51.8008 -24.7002 101.801 -68.0996 134c-9.7002 7.2002 -12.4004 20.5 -6.5 30.9004
+l15.7998 28.0996c7 12.4004 23.2002 16.1006 34.7998 7.80078zM296 184c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v240c0 13.2998 10.7002 24 24 24h32c13.2998 0 24 -10.7002 24 -24v-240z" />
+ <glyph glyph-name="signal" unicode="" horiz-adv-x="640"
+d="M216 160c8.83984 0 16 -7.16016 16 -16v-192c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v192c0 8.83984 7.16016 16 16 16h48zM88 64c8.83984 0 16 -7.16016 16 -16v-96c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v96
+c0 8.83984 7.16016 16 16 16h48zM344 256c8.83984 0 16 -7.16016 16 -16v-288c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v288c0 8.83984 7.16016 16 16 16h48zM472 352c8.83984 0 16 -7.16016 16 -16v-384c0 -8.83984 -7.16016 -16 -16 -16h-48
+c-8.83984 0 -16 7.16016 -16 16v384c0 8.83984 7.16016 16 16 16h48zM600 448c8.83984 0 16 -7.16016 16 -16v-480c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v480c0 8.83984 7.16016 16 16 16h48z" />
+ <glyph glyph-name="cog" unicode=""
+d="M487.4 132.3c4.89941 -2.7998 7.09961 -8.59961 5.59961 -14.0996c-11.0996 -35.7002 -30 -67.9004 -54.7002 -94.6006c-3.7998 -4.19922 -9.89941 -5.09961 -14.7998 -2.2998l-42.5996 24.6006c-18 -15.3008 -38.6006 -27.2002 -60.8008 -35.1006v-49.2002
+c0 -5.59961 -3.89941 -10.5 -9.39941 -11.6992c-34.9004 -7.80078 -72.5 -8.2002 -109.2 0c-5.5 1.19922 -9.40039 6.09961 -9.40039 11.6992v49.2002c-22.2998 7.7998 -42.8994 19.7002 -60.7998 35.1006l-42.5996 -24.6006c-4.7998 -2.7998 -11 -1.7998 -14.7998 2.2998
+c-24.7002 26.8008 -43.6006 59 -54.7002 94.6006c-1.60059 5.39941 0.599609 11.2002 5.5 14l42.5996 24.5996c-4.2998 23.2002 -4.2998 47 0 70.2002l-42.5996 24.5996c-4.90039 2.80078 -7.2002 8.60059 -5.5 14c11.0996 35.7002 30 67.9004 54.7002 94.6006
+c3.7998 4.2002 9.89941 5.09961 14.7998 2.2998l42.5 -24.5996c18 15.2998 38.5996 27.1992 60.7998 35.0996v49.2002c0 5.59961 3.90039 10.5 9.40039 11.7002c34.8994 7.7998 72.5 8.19922 109.199 0c5.5 -1.2002 9.40039 -6.10059 9.40039 -11.7002v-49.1006
+c22.2998 -7.7998 42.9004 -19.6992 60.7998 -35.0996l42.6006 24.5996c4.7998 2.80078 11 1.80078 14.7998 -2.2998c24.7002 -26.7998 43.5996 -59 54.7002 -94.5996c1.59961 -5.40039 -0.600586 -11.2002 -5.5 -14l-42.6006 -24.6006
+c4.2998 -23.1992 4.2998 -47 0 -70.1992zM256 112c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="home" unicode="" horiz-adv-x="576"
+d="M280.37 299.74c1.84863 1.49023 5.27539 2.69922 7.64941 2.69922c2.375 0 5.80176 -1.20898 7.65039 -2.69922l184.33 -151.74v-164c0 -8.83203 -7.16797 -16 -16 -16l-112.02 0.30957h-0.000976562c-8.83203 0 -16 7.16797 -16 16
+c0 0.0146484 0 0.0371094 0.000976562 0.0507812v95.6396c0 8.83203 -7.16895 16 -16 16h-64c-8.83203 0 -16 -7.16797 -16 -16v-95.71v0c0 -8.78809 -7.13281 -15.9561 -15.9209 -16l-112.06 -0.290039c-8.83203 0 -16 7.16797 -16 16v163.89zM571.6 196.53
+c2.44531 -1.98828 4.42969 -6.15918 4.42969 -9.31055c0 -2.37305 -1.22266 -5.78613 -2.72949 -7.62012l-25.5 -31c-1.98633 -2.40332 -6.13086 -4.35449 -9.24902 -4.35449c-2.38574 0 -5.81348 1.23438 -7.65039 2.75488l-235.23 193.74
+c-1.84863 1.49023 -5.27539 2.69922 -7.65039 2.69922c-2.37402 0 -5.80078 -1.20898 -7.64941 -2.69922l-235.22 -193.74c-1.83691 -1.5166 -5.26074 -2.74805 -7.64258 -2.74805c-3.12793 0 -7.28027 1.96191 -9.26758 4.37793l-25.5 31
+c-1.52051 1.83789 -2.75488 5.26562 -2.75488 7.65039c0 3.11914 1.95117 7.2627 4.35449 9.25l253.13 208.47c7.33594 6.03613 21 10.9355 30.5 10.9355c9.50098 0 23.1641 -4.89941 30.5 -10.9355l89.5303 -73.6602v72.6104c0 6.62402 5.37598 12 12 12h56
+c6.62402 0 12 -5.37598 12 -12v-138.51z" />
+ <glyph glyph-name="clock" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM313.1 89.9004c5.40039 -3.90039 12.9004 -2.7002 16.8008 2.59961l28.1992 38.7998c3.90039 5.40039 2.80078 12.9004 -2.59961 16.7998l-63.5 46.2002v137.7
+c0 6.59961 -5.40039 12 -12 12h-48c-6.59961 0 -12 -5.40039 -12 -12v-168.3c0 -3.7998 1.7998 -7.40039 4.90039 -9.7002z" />
+ <glyph glyph-name="road" unicode="" horiz-adv-x="576"
+d="M573.19 45.3301c9.25977 -21.1904 -5.5 -45.3301 -27.7305 -45.3301h-196.84l-10.3105 97.6797c-0.859375 8.14062 -7.71973 14.3203 -15.9092 14.3203h-68.8008c-8.18945 0 -15.0498 -6.17969 -15.9092 -14.3203l-10.3105 -97.6797h-196.84
+c-22.2305 0 -36.9902 24.1396 -27.7402 45.3301l139.79 320c4.96973 11.3799 15.7998 18.6699 27.7305 18.6699h97.5898l-2.4502 -23.1602c-0.5 -4.71973 3.20996 -8.83984 7.95996 -8.83984h29.1602c4.75 0 8.45996 4.12012 7.95996 8.83984l-2.4502 23.1602h97.5898
+c11.9199 0 22.75 -7.29004 27.7207 -18.6699zM260.4 312.84l-4.59082 -43.5801c-0.75 -7.08984 4.80078 -13.2598 11.9307 -13.2598h40.54c7.12012 0 12.6797 6.16992 11.9297 13.2598l-4.59961 43.5801c-0.430664 4.07031 -3.87012 7.16016 -7.95996 7.16016h-39.29
+h-0.00488281c-3.97363 0 -7.53809 -3.20801 -7.95508 -7.16016zM315.64 144c9.5 0 16.9102 8.23047 15.9102 17.6797l-5.06934 48c-0.860352 8.14062 -7.7207 14.3203 -15.9102 14.3203h-45.1504c-8.18945 0 -15.0498 -6.17969 -15.9102 -14.3203l-5.06934 -48
+c-1 -9.44922 6.40918 -17.6797 15.9092 -17.6797h55.29z" />
+ <glyph glyph-name="download" unicode=""
+d="M216 448h80c13.2998 0 24 -10.7002 24 -24v-168h87.7002c17.7998 0 26.7002 -21.5 14.0996 -34.0996l-152.1 -152.2c-7.5 -7.5 -19.7998 -7.5 -27.2998 0l-152.301 152.2c-12.5996 12.5996 -3.69922 34.0996 14.1006 34.0996h87.7998v168c0 13.2998 10.7002 24 24 24z
+M512 72v-112c0 -13.2998 -10.7002 -24 -24 -24h-464c-13.2998 0 -24 10.7002 -24 24v112c0 13.2998 10.7002 24 24 24h146.7l49 -49c20.0996 -20.0996 52.5 -20.0996 72.5996 0l49 49h146.7c13.2998 0 24 -10.7002 24 -24zM388 -16c0 11 -9 20 -20 20s-20 -9 -20 -20
+s9 -20 20 -20s20 9 20 20zM452 -16c0 11 -9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20s20 9 20 20z" />
+ <glyph glyph-name="inbox" unicode="" horiz-adv-x="576"
+d="M567.938 204.092c4.4502 -6.6748 8.06152 -18.6025 8.06152 -26.624v-0.000976562v-129.467c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v129.467v0.000976562c0 8.02148 3.61133 19.9492 8.06152 26.624l105.689 158.534
+c7.86621 11.7988 25.7578 21.374 39.9385 21.374h268.621c14.1807 0 32.0732 -9.57617 39.9395 -21.374zM162.252 320l-85.334 -128h123.082l32 -64h112l32 64h123.082l-85.333 128h-251.497z" />
+ <glyph glyph-name="redo" unicode=""
+d="M500.33 448c6.62402 0 12 -5.37598 12 -12v-200.34c0 -6.62402 -5.37598 -12 -12 -12h-200.33c-6.62402 0 -12 5.37598 -12 12v47.4102v0.0136719c0 6.62402 5.37598 12 12 12c0.157227 0 0.413086 -0.00683594 0.570312 -0.0136719l101.529 -4.87012
+c-28.8721 42.9609 -94.3145 77.8281 -146.076 77.8281c-97.1514 0 -176 -78.8486 -176 -176c0 -97.1523 78.8486 -176 176 -176c36.6543 0 88.7373 19.6504 116.257 43.8613c1.87207 1.63672 5.40918 2.96387 7.89551 2.96387c2.74316 0 6.54395 -1.57422 8.48438 -3.51367
+l34 -34c1.94141 -1.94043 3.51758 -5.74316 3.51758 -8.48828c0 -2.96094 -1.79102 -6.9668 -3.99805 -8.94141c-38.9707 -35.2783 -113.264 -63.9102 -165.831 -63.9102h-0.348633c-136.9 0 -247.9 110.93 -248 247.81c-0.0996094 136.66 111.34 248.19 248 248.19
+h0.272461c63.2246 0 147.739 -39.124 188.647 -87.3301l-4 82.7598c-0.0078125 0.157227 -0.0136719 0.413086 -0.0136719 0.570312c0 6.62402 5.37598 12 12 12h0.0136719h47.4102z" />
+ <glyph glyph-name="sync" unicode=""
+d="M440.65 435.43c-0.0078125 0.157227 -0.0136719 0.413086 -0.0136719 0.570312c0 6.62012 5.37305 11.9961 11.9932 12h47.3701c6.62402 0 12 -5.37598 12 -12v-200.35c0 -6.62402 -5.37598 -12 -12 -12h-200.22c-6.62402 0 -12 5.37598 -12 12v47.4092v0.0136719
+c0 6.62402 5.37598 12 12 12c0.157227 0 0.412109 -0.00585938 0.569336 -0.0136719l101.46 -4.85938c-28.8584 42.9248 -94.2598 77.7627 -145.984 77.7627c-76.4834 0 -153.099 -60.3467 -171.016 -134.703c-1.19727 -5.10547 -6.4248 -9.25391 -11.6699 -9.25977
+h-49.0498c-6.62402 0 -12 5.37598 -12 12c0 0.606445 0.0898438 1.58301 0.200195 2.17969c21.6201 114.9 122.44 201.82 243.54 201.82h0.28418c63.2031 0 147.667 -39.1279 188.536 -87.3398zM255.83 16c76.4971 0 153.144 60.3633 171.03 134.74
+c1.19727 5.10547 6.4248 9.25391 11.6699 9.25977h49.0498c6.62402 0 12 -5.37598 12 -12c0 -0.606445 -0.0898438 -1.58301 -0.200195 -2.17969c-21.6201 -114.9 -122.439 -201.82 -243.55 -201.82h-0.234375c-63.1289 0 -147.53 39.0518 -188.396 87.1699
+l4.14941 -82.5703c0.00878906 -0.165039 0.015625 -0.433594 0.015625 -0.599609c0 -6.62402 -5.37598 -12 -12 -12h-0.015625h-47.3496c-6.62402 0 -12 5.37598 -12 12v200.33c0 6.62402 5.37598 12 12 12h200.2c6.62402 0 12 -5.37598 12 -12v-47.4004v-0.0136719
+c0 -6.62402 -5.37598 -12 -12 -12c-0.157227 0 -0.413086 0.00683594 -0.570312 0.0136719l-101.8 4.87012c28.7998 -42.9453 94.1406 -77.7998 145.85 -77.7998h0.150391z" />
+ <glyph glyph-name="list-alt" unicode=""
+d="M464 -32h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48zM128 328c-22.0908 0 -40 -17.9092 -40 -40s17.9092 -40 40 -40s40 17.9092 40 40s-17.9092 40 -40 40zM128 232
+c-22.0908 0 -40 -17.9092 -40 -40s17.9092 -40 40 -40s40 17.9092 40 40s-17.9092 40 -40 40zM128 136c-22.0908 0 -40 -17.9092 -40 -40s17.9092 -40 40 -40s40 17.9092 40 40s-17.9092 40 -40 40zM416 272v32c0 6.62695 -5.37305 12 -12 12h-200
+c-6.62695 0 -12 -5.37305 -12 -12v-32c0 -6.62695 5.37305 -12 12 -12h200c6.62695 0 12 5.37305 12 12zM416 176v32c0 6.62695 -5.37305 12 -12 12h-200c-6.62695 0 -12 -5.37305 -12 -12v-32c0 -6.62695 5.37305 -12 12 -12h200c6.62695 0 12 5.37305 12 12zM416 80v32
+c0 6.62695 -5.37305 12 -12 12h-200c-6.62695 0 -12 -5.37305 -12 -12v-32c0 -6.62695 5.37305 -12 12 -12h200c6.62695 0 12 5.37305 12 12z" />
+ <glyph glyph-name="lock" unicode="" horiz-adv-x="448"
+d="M400 224c26.5 0 48 -21.5 48 -48v-192c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v192c0 26.5 21.5 48 48 48h24v72c0 83.7998 68.2002 152 152 152s152 -68.2002 152 -152v-72h24zM296 224v72c0 39.7002 -32.2998 72 -72 72s-72 -32.2998 -72 -72v-72h144
+z" />
+ <glyph glyph-name="flag" unicode=""
+d="M349.565 349.217c40.4951 0 82.6113 15.9062 116.949 31.8545c21.2168 9.85352 45.4854 -5.62305 45.4854 -29.0166v-243.1c0 -10.5264 -5.16016 -20.4072 -13.8428 -26.3584c-35.8379 -24.5635 -74.3359 -40.8574 -122.505 -40.8574
+c-67.373 0 -111.629 34.7832 -165.218 34.7832c-50.8525 0 -86.124 -10.0586 -114.435 -22.1221v-94.4004c0 -13.2549 -10.7451 -24 -24 -24h-16c-13.2549 0 -24 10.7451 -24 24v386.055c-14.5029 10.1201 -24 26.9189 -24 45.9453
+c0 31.7041 26.3447 57.2539 58.3379 55.9521c28.4678 -1.1582 51.7793 -23.9668 53.5508 -52.4033c0.0625 -0.980469 0.113281 -2.57324 0.113281 -3.55566c0 -5.71094 -1.65723 -14.6738 -3.69922 -20.0059c20.7363 7.62891 43.0898 12.0127 68.0449 12.0127
+c67.373 0 111.63 -34.7832 165.218 -34.7832z" />
+ <glyph glyph-name="headphones" unicode=""
+d="M256 416c141.504 0 256 -114.521 256 -256v-48c0 -10.917 -7.9248 -23.7402 -17.6904 -28.6221l-14.3818 -7.19141c-2.01074 -60.0889 -51.3486 -108.187 -111.928 -108.187h-24c-13.2549 0 -24 10.7451 -24 24v176c0 13.2549 10.7451 24 24 24h24
+c31.3418 0 59.6709 -12.8789 80 -33.627v1.62695c0 105.869 -86.1309 192 -192 192s-192 -86.1309 -192 -192v-1.62695c20.3291 20.748 48.6582 33.627 80 33.627h24c13.2549 0 24 -10.7451 24 -24v-176c0 -13.2549 -10.7451 -24 -24 -24h-24
+c-60.5791 0 -109.917 48.0967 -111.928 108.187l-14.3828 7.19141c-9.76465 4.88184 -17.6895 17.7051 -17.6895 28.6221v0v48c0 141.504 114.52 256 256 256z" />
+ <glyph glyph-name="volume-off" unicode="" horiz-adv-x="256"
+d="M215 377c15 15 41 4.46973 41 -17v-336c0 -21.4697 -26 -32 -41 -17l-88.9404 89h-102.06c-13.248 0 -24 10.752 -24 24v144c0 13.248 10.752 24 24 24h102z" />
+ <glyph glyph-name="volume-down" unicode="" horiz-adv-x="384"
+d="M215.03 375.96c15.0098 15 40.9697 4.49023 40.9697 -16.9795v-335.961c0 -21.4395 -25.9404 -32 -40.9697 -16.9697l-88.9707 88.9502h-102.06c-13.2598 0 -24 10.75 -24 24v144c0 13.2598 10.7402 24 24 24h102.06zM338.23 267.88
+c28.2393 -15.5498 45.7793 -44.9902 45.7793 -76.8701s-17.54 -61.3301 -45.7695 -76.8799c-11.5605 -6.34961 -26.1807 -2.20996 -32.6104 9.4502c-6.38965 11.6104 -2.16016 26.2002 9.4502 32.6104c12.9004 7.08984 20.9199 20.4297 20.9199 34.8096
+s-8.01953 27.7197 -20.9297 34.8203c-11.6104 6.41016 -15.8398 21 -9.4502 32.6094c6.41992 11.6104 21.0303 15.7803 32.6104 9.4502z" />
+ <glyph glyph-name="volume-up" unicode="" horiz-adv-x="576"
+d="M215.03 376.95c15.0098 15.0098 40.9697 4.49023 40.9697 -16.9697v-335.961c0 -21.4395 -25.9404 -32 -40.9697 -16.9697l-88.9707 88.9502h-102.06c-13.2598 0 -24 10.75 -24 24v144c0 13.2598 10.7402 24 24 24h102.06zM448.35 428.03
+c79.9199 -52.46 127.65 -140.7 127.65 -236.03s-47.7305 -183.58 -127.65 -236.04c-11.5801 -7.61035 -26.4697 -3.75977 -33.5098 6.9502c-7.33984 11.1602 -4.21973 26.1797 6.9502 33.5c66.2695 43.4902 105.82 116.6 105.82 195.58
+c0 78.9795 -39.5508 152.09 -105.82 195.58c-11.1699 7.33008 -14.29 22.3398 -6.9502 33.5098c7.33008 11.1895 22.3398 14.2803 33.5098 6.9502zM480 192c0 -63.54 -32.0596 -121.94 -85.7695 -156.24c-12 -7.67969 -26.6104 -2.89941 -33.1201 7.45996
+c-7.09082 11.29 -3.78027 26.2207 7.40918 33.3604c39.75 25.3896 63.4805 68.5303 63.4805 115.42s-23.7305 90.0303 -63.4805 115.42c-11.1895 7.15039 -14.5 22.0801 -7.40918 33.3604c7.08984 11.2793 21.9297 14.5996 33.1201 7.45996
+c53.71 -34.2998 85.7695 -92.71 85.7695 -156.24zM338.23 268.87c28.2393 -15.54 45.7793 -44.9805 45.7793 -76.8604s-17.54 -61.3301 -45.7695 -76.8799c-11.5605 -6.34961 -26.1807 -2.20996 -32.6104 9.4502c-6.38965 11.6104 -2.16016 26.2002 9.4502 32.6104
+c12.9004 7.08984 20.9199 20.4297 20.9199 34.8096c0 14.3701 -8.01953 27.7197 -20.9297 34.8096c-11.6104 6.41016 -15.8398 21 -9.4502 32.6104c6.41992 11.6104 21.0303 15.7803 32.6104 9.4502z" />
+ <glyph glyph-name="qrcode" unicode="" horiz-adv-x="448"
+d="M0 224v192h192v-192h-192zM64 352v-64h64v64h-64zM256 416h192v-192h-192v192zM384 288v64h-64v-64h64zM0 -32v192h192v-192h-192zM64 96v-64h64v64h-64zM416 160h32v-128h-96v32h-32v-96h-64v192h96v-32h64v32zM416 0h32v-32h-32v32zM352 0h32v-32h-32v32z" />
+ <glyph glyph-name="barcode" unicode=""
+d="M0 0v384h18v-384h-18zM26.8574 0.273438v383.727h9.14258v-383.727h-9.14258zM54 0.273438v383.727h8.85742v-383.727h-8.85742zM98.8574 0.273438v383.727h8.85645v-383.727h-8.85645zM134.857 0.273438v383.727h17.7139v-383.727h-17.7139zM179.714 0.273438v383.727
+h8.85742v-383.727h-8.85742zM197.714 0.273438v383.727h8.85742v-383.727h-8.85742zM215.714 0.273438v383.727h8.85742v-383.727h-8.85742zM251.429 0.273438v383.727h18v-383.727h-18zM296.286 0.273438v383.727h18v-383.727h-18zM332.285 0.273438v383.727h18.001
+v-383.727h-18.001zM368.286 0.273438v383.727h18.001v-383.727h-18.001zM395.143 0.273438v383.727h18v-383.727h-18zM440.286 0.273438v383.727h26.8564v-383.727h-26.8564zM476 0.273438v383.727h9.14258v-383.727h-9.14258zM494 0v384h18v-384h-18z" />
+ <glyph glyph-name="tag" unicode=""
+d="M0 195.882v204.118c0 26.5098 21.4902 48 48 48h204.118c10.9746 0 26.1807 -6.29883 33.9404 -14.0586l211.883 -211.883c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818l-204.118 -204.118c-18.7451 -18.7441 -49.1377 -18.7441 -67.8818 0l-211.883 211.883
+c-7.75977 7.75977 -14.0586 22.9658 -14.0586 33.9404zM112 384c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48z" />
+ <glyph glyph-name="tags" unicode="" horiz-adv-x="640"
+d="M497.941 222.059c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818l-204.118 -204.118c-18.7461 -18.7451 -49.1387 -18.7441 -67.8818 0l-211.883 211.883c-7.75977 7.75977 -14.0586 22.9658 -14.0586 33.9404v204.118c0 26.5098 21.4902 48 48 48h204.118
+c10.9746 0 26.1807 -6.29883 33.9404 -14.0586zM112 288c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM625.941 154.177l-204.118 -204.118c-18.7451 -18.7441 -49.1377 -18.7441 -67.8818 0l-0.360352 0.360352
+l174.059 174.059c16.999 16.999 26.3604 39.6006 26.3604 63.6406s-9.3623 46.6406 -26.3604 63.6396l-196.242 196.242h48.7207c10.9746 0 26.1807 -6.29883 33.9404 -14.0586l211.883 -211.883c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818z" />
+ <glyph glyph-name="book" unicode="" horiz-adv-x="448"
+d="M448 88c0 -7.5 -3.5 -14.2998 -8.90039 -18.5996c-4.19922 -15.4004 -4.19922 -59.3008 0 -74.7002c5.40039 -4.40039 8.90039 -11.2002 8.90039 -18.7002v-16c0 -13.2998 -10.7002 -24 -24 -24h-328c-53 0 -96 43 -96 96v320c0 53 43 96 96 96h328
+c13.2998 0 24 -10.7002 24 -24v-336zM128 314v-20c0 -3.2998 2.7002 -6 6 -6h212c3.2998 0 6 2.7002 6 6v20c0 3.2998 -2.7002 6 -6 6h-212c-3.2998 0 -6 -2.7002 -6 -6zM128 250v-20c0 -3.2998 2.7002 -6 6 -6h212c3.2998 0 6 2.7002 6 6v20c0 3.2998 -2.7002 6 -6 6h-212
+c-3.2998 0 -6 -2.7002 -6 -6zM381.4 0c-1.90039 17.0996 -1.90039 46.9004 0 64h-285.4c-17.5996 0 -32 -14.4004 -32 -32c0 -17.7002 14.2998 -32 32 -32h285.4z" />
+ <glyph glyph-name="bookmark" unicode="" horiz-adv-x="384"
+d="M0 -64v464c0 26.5098 21.4902 48 48 48h288c26.5098 0 48 -21.4902 48 -48v-464l-192 112z" />
+ <glyph glyph-name="print" unicode=""
+d="M448 256c35.3496 0 64 -28.6504 64 -64v-112c0 -8.83984 -7.16016 -16 -16 -16h-48v-96c0 -17.6699 -14.3301 -32 -32 -32h-320c-17.6699 0 -32 14.3301 -32 32v96h-48c-8.83984 0 -16 7.16016 -16 16v112c0 35.3496 28.6504 64 64 64v160c0 17.6699 14.3301 32 32 32
+h274.74c8.49023 0 16.6299 -3.37012 22.6299 -9.37012l45.2598 -45.25c6 -6.00977 9.37012 -14.1396 9.37012 -22.6299v-114.75zM384 0v96h-256v-96h256zM384 224v96h-48c-8.83984 0 -16 7.16016 -16 16v48h-192v-160h256zM432 152c13.25 0 24 10.75 24 24
+c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
+ <glyph glyph-name="camera" unicode=""
+d="M512 304v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h88l12.2998 32.9004c7 18.6992 24.9004 31.0996 44.9004 31.0996h125.5c20 0 37.8994 -12.4004 44.8994 -31.0996l12.4004 -32.9004h88c26.5 0 48 -21.5 48 -48zM376 160
+c0 66.2002 -53.7998 120 -120 120s-120 -53.7998 -120 -120s53.7998 -120 120 -120s120 53.7998 120 120zM344 160c0 -48.5 -39.5 -88 -88 -88s-88 39.5 -88 88s39.5 88 88 88s88 -39.5 88 -88z" />
+ <glyph glyph-name="font" unicode="" horiz-adv-x="448"
+d="M432 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h19.5801l-23.2998 64h-152.561l-23.2998 -64h19.5801c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-128c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h23.4102l130.71 362.31c4.07422 11.9736 17.6465 21.6904 30.2939 21.6904h0.00585938h47.1602h0.00585938c12.6475 0 26.2197 -9.7168 30.2939 -21.6904
+l130.71 -362.31h23.4102zM176.85 176h94.3008l-47.1504 129.49z" />
+ <glyph glyph-name="bold" unicode="" horiz-adv-x="384"
+d="M333.49 210c34.4395 -27.54 55.5693 -71.1504 50.8301 -119.6c-6.86035 -70.6504 -70.2002 -122.4 -141 -122.4h-209.32c-8.83203 0 -16 7.16797 -16 16v48c0 8.83203 7.16797 16 16 16h31.8701v288h-31.8701c-8.83203 0 -16 7.16797 -16 16v48
+c0 8.83203 7.16797 16 16 16h199.42c74.5801 0 134.45 -64.4902 127.07 -140.79c-2.01367 -20.25 -14.1094 -49.4639 -27 -65.21zM145.66 336v-96h87.7598c26.4961 0 48 21.5039 48 48s-21.5039 48 -48 48h-87.7598zM233.42 48c30.9121 0 56 25.0879 56 56
+s-25.0879 56 -56 56h-87.7598v-112h87.7598z" />
+ <glyph glyph-name="italic" unicode="" horiz-adv-x="320"
+d="M320 400v-32c0 -8.83203 -7.16797 -16 -16 -16h-62.7598l-80 -320h46.7598c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-192c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h62.7598l80 320h-46.7598
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h192c8.83203 0 16 -7.16797 16 -16z" />
+ <glyph glyph-name="text-height" unicode="" horiz-adv-x="576"
+d="M304 416c8.83203 0 16 -7.16797 16 -16v-96c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32h-56v-304h40c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-160c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h40v304h-56v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v96c0 8.83203 7.16797 16 16 16h288zM560 80c15.6396 0 20.6396 -18 11.3096 -27.3096l-80 -80c-2.58594 -2.58496 -7.65332 -4.68262 -11.3096 -4.68262
+s-8.72363 2.09766 -11.3096 4.68262l-80 80c-10.0107 10 -3 27.3096 11.3096 27.3096h48v224h-48c-15.6396 0 -20.6396 18 -11.3096 27.3096l80 80c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262l80 -80
+c10.0205 -10 3 -27.3096 -11.3096 -27.3096h-48v-224h48z" />
+ <glyph glyph-name="text-width" unicode="" horiz-adv-x="448"
+d="M432 416c8.83203 0 16 -7.16797 16 -16v-80c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v16h-120v-112h24c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h24v112h-120v-16c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v80c0 8.83203 7.16797 16 16 16h416zM363.31 155.31l80 -80c2.58496 -2.58594 4.68262 -7.65332 4.68262 -11.3096s-2.09766 -8.72363 -4.68262 -11.3096
+l-80 -80c-10 -10.0205 -27.3096 -3 -27.3096 11.3096v48h-224v-48c0 -15.6396 -18 -20.6396 -27.3096 -11.3096l-80 80c-2.58496 2.58594 -4.68262 7.65332 -4.68262 11.3096s2.09766 8.72363 4.68262 11.3096l80 80c10 10.0107 27.3096 3 27.3096 -11.3096v-48h224v48
+c0 15.6396 18 20.6396 27.3096 11.3096z" />
+ <glyph glyph-name="align-left" unicode="" horiz-adv-x="448"
+d="M12.8301 96c-7.07715 0 -12.8301 5.74316 -12.8301 12.8203v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h262.34h0.00976562c7.07715 0 12.8203 -5.74316 12.8203 -12.8203v-0.00976562v-38.3398v-0.00976562
+c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-262.34zM12.8301 352c-7.07715 0 -12.8301 5.74316 -12.8301 12.8203v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h262.34h0.00976562
+c7.07715 0 12.8203 -5.74316 12.8203 -12.8203v-0.00976562v-38.3398v-0.00976562c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-262.34zM432 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16
+v32c0 8.83203 7.16797 16 16 16h416zM432 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416z" />
+ <glyph glyph-name="align-center" unicode="" horiz-adv-x="448"
+d="M432 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416zM432 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16
+v32c0 8.83203 7.16797 16 16 16h416zM108.1 352c-6.67871 0 -12.0996 5.4209 -12.0996 12.0996v39.8105c0 6.67383 5.41602 12.0898 12.0898 12.0898h0.00976562h231.811c6.67383 0 12.0898 -5.41602 12.0898 -12.0898v-39.8105v-0.00976562
+c0 -6.67383 -5.41602 -12.0898 -12.0898 -12.0898v0h-231.811zM339.91 96h-231.811c-6.67871 0 -12.0996 5.4209 -12.0996 12.0996v39.8105c0 6.67383 5.41602 12.0898 12.0898 12.0898h0.00976562h231.811c6.67383 0 12.0898 -5.41602 12.0898 -12.0898v-39.8105
+v-0.00976562c0 -6.67383 -5.41602 -12.0898 -12.0898 -12.0898v0z" />
+ <glyph glyph-name="align-right" unicode="" horiz-adv-x="448"
+d="M16 224c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416zM432 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16
+v32c0 8.83203 7.16797 16 16 16h416zM435.17 416c7.07715 0 12.8301 -5.74316 12.8301 -12.8203v-0.00976562v-38.3398v-0.00976562c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-262.34h-0.00976562c-7.07715 0 -12.8203 5.74316 -12.8203 12.8203
+v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h262.34zM435.17 160c7.07715 0 12.8301 -5.74316 12.8301 -12.8203v-0.00976562v-38.3398v-0.00976562c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-262.34
+h-0.00976562c-7.07715 0 -12.8203 5.74316 -12.8203 12.8203v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h262.34z" />
+ <glyph glyph-name="align-justify" unicode="" horiz-adv-x="448"
+d="M432 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416zM432 160c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16
+v32c0 8.83203 7.16797 16 16 16h416zM432 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416zM432 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16
+h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416z" />
+ <glyph glyph-name="list" unicode=""
+d="M80 80c8.83203 0 16 -7.16797 16 -16v-64c0 -8.83203 -7.16797 -16 -16 -16h-64c-8.83203 0 -16 7.16797 -16 16v64c0 8.83203 7.16797 16 16 16h64zM80 400c8.83203 0 16 -7.16797 16 -16v-64c0 -8.83203 -7.16797 -16 -16 -16h-64c-8.83203 0 -16 7.16797 -16 16v64
+c0 8.83203 7.16797 16 16 16h64zM80 240c8.83203 0 16 -7.16797 16 -16v-64c0 -8.83203 -7.16797 -16 -16 -16h-64c-8.83203 0 -16 7.16797 -16 16v64c0 8.83203 7.16797 16 16 16h64zM496 64c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-320
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM496 384c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM496 224c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320z" />
+ <glyph glyph-name="outdent" unicode="" horiz-adv-x="448"
+d="M100.69 84.71l-96 95.9805c-2.58496 2.58594 -4.68262 7.65332 -4.68262 11.3096s2.09766 8.72363 4.68262 11.3096l96 96c9.97949 10 27.3096 3.01074 27.3096 -11.3096v-191.98c0 -14.2393 -17.3096 -21.3096 -27.3096 -11.3096zM432 32c8.83203 0 16 -7.16797 16 -16
+v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416zM435.17 160c7.07715 0 12.8301 -5.74316 12.8301 -12.8203v-0.00976562v-38.3398v-0.00976562c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562
+h-230.34h-0.00976562c-7.07715 0 -12.8203 5.74316 -12.8203 12.8203v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h230.34zM435.17 288c7.07715 0 12.8301 -5.74316 12.8301 -12.8203v-0.00976562v-38.3398v-0.00976562
+c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-230.34h-0.00976562c-7.07715 0 -12.8203 5.74316 -12.8203 12.8203v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h230.34zM432 416c8.83203 0 16 -7.16797 16 -16
+v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416z" />
+ <glyph glyph-name="indent" unicode="" horiz-adv-x="448"
+d="M27.3096 84.7002c-9.97949 -10 -27.3096 -3.00977 -27.3096 11.2998v192c0 14.2197 17.2695 21.3398 27.3096 11.3203l96 -96c2.58496 -2.58691 4.68262 -7.65332 4.68262 -11.3105c0 -3.65625 -2.09766 -8.72363 -4.68262 -11.3096zM432 32
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416zM435.17 160c7.07715 0 12.8301 -5.74316 12.8301 -12.8203v-0.00976562v-38.3398v-0.00976562
+c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-230.34h-0.00976562c-7.07715 0 -12.8203 5.74316 -12.8203 12.8203v0.00976562v38.3398v0.00976562c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h230.34zM435.17 288
+c7.07715 0 12.8301 -5.74316 12.8301 -12.8203v-0.00976562v-38.3398v-0.00976562c0 -7.07715 -5.74316 -12.8203 -12.8203 -12.8203h-0.00976562h-230.34h-0.00976562c-7.07715 0 -12.8203 5.74316 -12.8203 12.8203v0.00976562v38.3398v0.00976562
+c0 7.07715 5.74316 12.8203 12.8203 12.8203h0.00976562h230.34zM432 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416z" />
+ <glyph glyph-name="video" unicode="" horiz-adv-x="576"
+d="M336.2 384c26.3994 0 47.7998 -21.4004 47.7998 -47.7998v-288.4c0 -26.3994 -21.4004 -47.7998 -47.7998 -47.7998h-288.4c-26.3994 0 -47.7998 21.4004 -47.7998 47.7998v288.4c0 26.3994 21.4004 47.7998 47.7998 47.7998h288.4zM525.6 346.3
+c21.3008 14.6006 50.4004 -0.399414 50.4004 -25.7998v-256.9c0 -25.5 -29.2002 -40.3994 -50.4004 -25.7998l-109.6 75.5v157.4z" />
+ <glyph glyph-name="image" unicode=""
+d="M464 0h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48zM112 328c-30.9277 0 -56 -25.0723 -56 -56s25.0723 -56 56 -56s56 25.0723 56 56s-25.0723 56 -56 56zM64 64h384
+v112l-87.5146 87.5146c-4.68652 4.68652 -12.2842 4.68652 -16.9717 0l-135.514 -135.515l-55.5146 55.5146c-4.68652 4.68652 -12.2842 4.68652 -16.9717 0l-71.5137 -71.5146v-48z" />
+ <glyph glyph-name="map-marker" unicode="" horiz-adv-x="384"
+d="M172.268 -53.6699c-145.298 210.639 -172.268 232.257 -172.268 309.67c0 106.039 85.9609 192 192 192s192 -85.9609 192 -192c0 -77.4131 -26.9697 -99.0312 -172.268 -309.67c-9.53516 -13.7744 -29.9307 -13.7734 -39.4648 0z" />
+ <glyph glyph-name="adjust" unicode=""
+d="M8 192c0 136.967 111.034 248 248 248s248 -111.034 248 -248s-111.033 -248 -248 -248s-248 111.034 -248 248zM256 8c101.689 0 184 82.2949 184 184c0 101.689 -82.2949 184 -184 184v-368z" />
+ <glyph glyph-name="tint" unicode="" horiz-adv-x="352"
+d="M205.22 425.91c46.9902 -158.48 146.78 -200.07 146.78 -311.82c0 -98.4395 -78.7197 -178.09 -176 -178.09s-176 79.6504 -176 178.09c0 111.19 100.01 154.061 146.78 311.82c9 30.1201 50.5 28.7803 58.4395 0zM176 0c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16
+c-44.1104 0 -80 35.8896 -80 80c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16c0 -61.75 50.25 -112 112 -112z" />
+ <glyph glyph-name="edit" unicode="" horiz-adv-x="576"
+d="M402.6 364.8l90.2002 -90.2002c3.7998 -3.7998 3.7998 -10 0 -13.7998l-218.399 -218.399l-92.8008 -10.3008c-12.3994 -1.39941 -22.8994 9.10059 -21.5 21.5l10.3008 92.8008l218.399 218.399c3.7998 3.7998 10 3.7998 13.7998 0zM564.6 387.7
+c15.2002 -15.2002 15.2002 -39.9004 0 -55.2002l-35.3994 -35.4004c-3.7998 -3.7998 -10 -3.7998 -13.7998 0l-90.2002 90.2002c-3.7998 3.7998 -3.7998 10 0 13.7998l35.3994 35.4004c15.3008 15.2002 40 15.2002 55.2002 0zM384 101.8c0 3.2002 1.2998 6.2002 3.5 8.5
+l40 40c7.59961 7.5 20.5 2.2002 20.5 -8.5v-157.8c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h285.8c10.7002 0 16.1006 -12.9004 8.5 -20.5l-40 -40c-2.2998 -2.2002 -5.2998 -3.5 -8.5 -3.5h-229.8v-320h320v101.8z" />
+ <glyph glyph-name="step-backward" unicode="" horiz-adv-x="448"
+d="M64 -20v424c0 6.59961 5.40039 12 12 12h48c6.59961 0 12 -5.40039 12 -12v-176.4l195.5 181c20.5996 17.1006 52.5 2.80078 52.5 -24.5996v-384c0 -27.4004 -31.9004 -41.7002 -52.5 -24.5996l-195.5 179.899v-175.3c0 -6.59961 -5.40039 -12 -12 -12h-48
+c-6.59961 0 -12 5.40039 -12 12z" />
+ <glyph glyph-name="fast-backward" unicode=""
+d="M0 12v360c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-151.9l171.5 156.5c20.5996 17.1006 52.5 2.80078 52.5 -24.5996v-131.9l171.5 156.5c20.5996 17.1006 52.5 2.80078 52.5 -24.5996v-320c0 -27.4004 -31.9004 -41.7002 -52.5 -24.5996
+l-171.5 155.3v-130.7c0 -27.4004 -31.9004 -41.7002 -52.5 -24.5996l-171.5 155.3v-150.7c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12z" />
+ <glyph glyph-name="backward" unicode=""
+d="M11.5 167.4c-15.2998 12.7998 -15.2998 36.3994 0 49.1992l192 160c20.5996 17.2002 52.5 2.80078 52.5 -24.5996v-320c0 -27.4004 -31.9004 -41.7998 -52.5 -24.5996zM267.5 167.4c-15.2998 12.7998 -15.2998 36.3994 0 49.1992l192 160
+c20.5996 17.2002 52.5 2.80078 52.5 -24.5996v-320c0 -27.4004 -31.9004 -41.7998 -52.5 -24.5996z" />
+ <glyph glyph-name="play" unicode="" horiz-adv-x="448"
+d="M424.4 233.3c31.5 -18.5 31.3994 -64.0996 0 -82.5996l-352 -208c-31.7002 -18.7998 -72.4004 3.7998 -72.4004 41.2998v416.1c0 41.8008 43.7998 58.2002 72.4004 41.3008z" />
+ <glyph glyph-name="pause" unicode="" horiz-adv-x="448"
+d="M144 -31h-96c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48zM448 17c0 -26.5 -21.5 -48 -48 -48h-96c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48 -21.5 48 -48v-352z" />
+ <glyph glyph-name="stop" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352z" />
+ <glyph glyph-name="forward" unicode=""
+d="M500.5 216.6c15.2998 -12.7998 15.2998 -36.3994 0 -49.1992l-192 -160c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v320c0 27.4004 31.9004 41.7002 52.5 24.5996zM244.5 216.6c15.2998 -12.7998 15.2998 -36.3994 0 -49.1992l-192 -160
+c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v320c0 27.4004 31.9004 41.7002 52.5 24.5996z" />
+ <glyph glyph-name="fast-forward" unicode=""
+d="M512 372v-360c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v151.9l-171.5 -156.5c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v131.9l-171.5 -156.5c-20.5996 -17.2002 -52.5 -2.80078 -52.5 24.5996v320
+c0 27.4004 31.9004 41.7002 52.5 24.5996l171.5 -155.399v130.8c0 27.4004 31.9004 41.7002 52.5 24.5996l171.5 -155.399v150.8c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12z" />
+ <glyph glyph-name="step-forward" unicode="" horiz-adv-x="448"
+d="M384 404v-424c0 -6.59961 -5.40039 -12 -12 -12h-48c-6.59961 0 -12 5.40039 -12 12v176.4l-195.5 -181c-20.5996 -17.1006 -52.5 -2.80078 -52.5 24.5996v384c0 27.4004 31.9004 41.7002 52.5 24.5996l195.5 -179.899v175.3c0 6.59961 5.40039 12 12 12h48
+c6.59961 0 12 -5.40039 12 -12z" />
+ <glyph glyph-name="eject" unicode="" horiz-adv-x="448"
+d="M448 64v-64c0 -17.6729 -14.3271 -32 -32 -32h-384c-17.6729 0 -32 14.3271 -32 32v64c0 17.6729 14.3271 32 32 32h384c17.6729 0 32 -14.3271 32 -32zM48.0527 128c-41.7285 0 -63.5273 49.7324 -35.3828 80.4346l175.946 192.008
+c19.0156 20.7432 51.7529 20.7422 70.7666 0l175.939 -192.008c28.1973 -30.7607 6.26758 -80.4346 -35.3828 -80.4346h-351.887z" />
+ <glyph glyph-name="chevron-left" unicode="" horiz-adv-x="320"
+d="M34.5195 208.97l194.351 194.34c9.37012 9.37012 24.5703 9.37012 33.9395 0l22.6709 -22.6699c9.35938 -9.35938 9.36914 -24.5195 0.0390625 -33.8994l-154.029 -154.74l154.02 -154.75c9.33984 -9.37988 9.32031 -24.54 -0.0400391 -33.9004l-22.6699 -22.6699
+c-9.37012 -9.37012 -24.5693 -9.37012 -33.9395 0l-194.341 194.351c-9.36914 9.37012 -9.36914 24.5693 0 33.9395z" />
+ <glyph glyph-name="chevron-right" unicode="" horiz-adv-x="320"
+d="M285.476 175.029l-194.344 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9404 0l-22.667 22.667c-9.35742 9.35742 -9.375 24.5225 -0.0400391 33.9014l154.021 154.746l-154.021 154.745c-9.33496 9.37891 -9.31738 24.5439 0.0400391 33.9014l22.667 22.667
+c9.37305 9.37207 24.5684 9.37207 33.9404 0l194.343 -194.344c9.37305 -9.37207 9.37305 -24.5674 0.000976562 -33.9404z" />
+ <glyph glyph-name="plus-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM400 164v56c0 6.59961 -5.40039 12 -12 12h-92v92c0 6.59961 -5.40039 12 -12 12h-56c-6.59961 0 -12 -5.40039 -12 -12v-92h-92c-6.59961 0 -12 -5.40039 -12 -12v-56
+c0 -6.59961 5.40039 -12 12 -12h92v-92c0 -6.59961 5.40039 -12 12 -12h56c6.59961 0 12 5.40039 12 12v92h92c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="minus-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM124 152h264c6.59961 0 12 5.40039 12 12v56c0 6.59961 -5.40039 12 -12 12h-264c-6.59961 0 -12 -5.40039 -12 -12v-56c0 -6.59961 5.40039 -12 12 -12z" />
+ <glyph glyph-name="times-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM377.6 126.9l-65.5996 65.0996l65.7002 65c4.7002 4.7002 4.7002 12.2998 0 17l-39.6006 39.5996c-4.69922 4.7002 -12.2998 4.7002 -17 0l-65.0996 -65.5996l-65 65.7002
+c-4.7002 4.7002 -12.2998 4.7002 -17 0l-39.5996 -39.6006c-4.7002 -4.69922 -4.7002 -12.2998 0 -17l65.5996 -65.0996l-65.5996 -65c-4.7002 -4.7002 -4.7002 -12.2998 0 -17l39.5 -39.5996c4.69922 -4.7002 12.2998 -4.7002 17 0l65.0996 65.5996l65 -65.5996
+c4.7002 -4.7002 12.2998 -4.7002 17 0l39.5996 39.5c4.7002 4.69922 4.7002 12.2998 0 17z" />
+ <glyph glyph-name="check-circle" unicode=""
+d="M504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248zM227.314 60.6855l184 184c6.24707 6.24805 6.24707 16.3799 0 22.6279l-22.6279 22.627c-6.24707 6.24902 -16.3789 6.24902 -22.6279 0
+l-150.059 -150.059l-70.0586 70.0596c-6.24805 6.24805 -16.3799 6.24805 -22.6279 0l-22.6279 -22.627c-6.24707 -6.24805 -6.24707 -16.3799 0 -22.6279l104 -104c6.24902 -6.24805 16.3799 -6.24805 22.6289 -0.000976562z" />
+ <glyph glyph-name="question-circle" unicode=""
+d="M504 192c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248s248 -111.083 248 -248zM262.655 358c-54.4971 0 -89.2549 -22.957 -116.549 -63.7578c-3.53613 -5.28613 -2.35352 -12.415 2.71484 -16.2578l34.6982 -26.3105
+c5.20508 -3.94727 12.6211 -3.00781 16.665 2.12207c17.8643 22.6582 30.1133 35.7969 57.3037 35.7969c20.4287 0 45.6973 -13.1475 45.6973 -32.958c0 -14.9756 -12.3623 -22.667 -32.5332 -33.9756c-23.5244 -13.1875 -54.6523 -29.6006 -54.6523 -70.6592v-4
+c0 -6.62695 5.37305 -12 12 -12h56c6.62695 0 12 5.37305 12 12v1.33301c0 28.4619 83.1855 29.6475 83.1855 106.667c0 58.002 -60.1641 102 -116.53 102zM256 110c-25.3652 0 -46 -20.6348 -46 -46c0 -25.3643 20.6348 -46 46 -46s46 20.6357 46 46
+c0 25.3652 -20.6348 46 -46 46z" />
+ <glyph glyph-name="info-circle" unicode=""
+d="M256 440c136.957 0 248 -111.083 248 -248c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248zM256 330c-23.1963 0 -42 -18.8037 -42 -42s18.8037 -42 42 -42s42 18.8037 42 42s-18.8037 42 -42 42zM312 76v24
+c0 6.62695 -5.37305 12 -12 12h-12v100c0 6.62695 -5.37305 12 -12 12h-64c-6.62695 0 -12 -5.37305 -12 -12v-24c0 -6.62695 5.37305 -12 12 -12h12v-64h-12c-6.62695 0 -12 -5.37305 -12 -12v-24c0 -6.62695 5.37305 -12 12 -12h88c6.62695 0 12 5.37305 12 12z" />
+ <glyph glyph-name="crosshairs" unicode=""
+d="M500 224c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-30.3643c-13.9121 -93.6748 -87.9609 -167.724 -181.636 -181.636v-30.3643c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v30.3643
+c-93.6748 13.9121 -167.724 87.9609 -181.636 181.636h-30.3643c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h30.3643c13.9121 93.6748 87.9609 167.724 181.636 181.636v30.3643c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-30.3643
+c93.6748 -13.9121 167.724 -87.9609 181.636 -181.636h30.3643zM288 43.3662c58.2432 12.417 104.232 58.46 116.634 116.634h-40.6338c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40.6338c-12.417 58.2432 -58.46 104.232 -116.634 116.634v-40.6338
+c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40.6338c-58.2432 -12.417 -104.232 -58.46 -116.634 -116.634h40.6338c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40.6338
+c12.417 -58.2432 58.46 -104.232 116.634 -116.634v40.6338c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40.6338zM288 192c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32s32 -14.3271 32 -32z" />
+ <glyph glyph-name="ban" unicode=""
+d="M256 440c136.967 0 248 -111.034 248 -248s-111.034 -248 -248 -248s-248 111.033 -248 248s111.034 248 248 248zM386.108 322.108c-65.4121 65.4102 -165.435 70.0312 -235.639 20.6758l256.315 -256.313c49.3232 70.1562 44.7705 170.189 -20.6768 235.638z
+M125.892 61.8916c65.4121 -65.4111 165.436 -70.0312 235.639 -20.6758l-256.315 256.313c-49.3232 -70.1562 -44.7705 -170.189 20.6768 -235.638z" />
+ <glyph glyph-name="arrow-left" unicode="" horiz-adv-x="448"
+d="M257.5 2.90039l-22.2002 -22.2002c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-194.4 194.3c-9.40039 9.40039 -9.40039 24.5996 0 33.9004l194.4 194.399c9.39941 9.40039 24.5996 9.40039 33.8994 0l22.2002 -22.2002c9.5 -9.5 9.2998 -25 -0.400391 -34.2998
+l-120.5 -114.8h287.4c13.2998 0 24 -10.7002 24 -24v-32c0 -13.2998 -10.7002 -24 -24 -24h-287.4l120.5 -114.8c9.80078 -9.2998 10 -24.7998 0.400391 -34.2998z" />
+ <glyph glyph-name="arrow-right" unicode="" horiz-adv-x="448"
+d="M190.5 381.1l22.2002 22.2002c9.39941 9.40039 24.5996 9.40039 33.8994 0l194.4 -194.3c9.40039 -9.40039 9.40039 -24.5996 0 -33.9004l-194.4 -194.399c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.2002 22.2002c-9.5 9.5 -9.2998 25 0.400391 34.2998
+l120.5 114.8h-287.4c-13.2998 0 -24 10.7002 -24 24v32c0 13.2998 10.7002 24 24 24h287.4l-120.5 114.8c-9.80078 9.2998 -10 24.7998 -0.400391 34.2998z" />
+ <glyph glyph-name="arrow-up" unicode="" horiz-adv-x="448"
+d="M34.9004 158.5l-22.2002 22.2002c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l194.3 194.4c9.40039 9.40039 24.5996 9.40039 33.9004 0l194.3 -194.3c9.39941 -9.40039 9.39941 -24.6006 0 -33.9004l-22.2002 -22.2002c-9.5 -9.5 -25 -9.2998 -34.2998 0.400391
+l-114.7 120.4v-287.4c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v287.4l-114.8 -120.5c-9.2998 -9.80078 -24.7998 -10 -34.2998 -0.400391z" />
+ <glyph glyph-name="arrow-down" unicode="" horiz-adv-x="448"
+d="M413.1 225.5l22.2002 -22.2002c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-194.3 -194.4c-9.40039 -9.40039 -24.5996 -9.40039 -33.9004 0l-194.399 194.4c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l22.2002 22.2002c9.5 9.5 25 9.2998 34.2998 -0.400391
+l114.8 -120.5v287.4c0 13.2998 10.7002 24 24 24h32c13.2998 0 24 -10.7002 24 -24v-287.4l114.8 120.5c9.2998 9.80078 24.7998 10 34.2998 0.400391z" />
+ <glyph glyph-name="share" unicode=""
+d="M503.691 258.164c11.0859 -9.5752 11.0703 -26.7656 0 -36.3281l-176.005 -152c-15.3867 -13.2891 -39.6865 -2.53613 -39.6865 18.1641v87.915c-155.083 -2.23145 -221.934 -40.7295 -176.59 -185.742c5.03418 -16.0977 -14.4238 -28.5615 -28.0771 -18.6309
+c-43.752 31.8232 -83.333 92.6914 -83.333 154.132c0 152.227 127.371 184.419 288 186.258v80.0537c0 20.668 24.2812 31.4688 39.6865 18.1641z" />
+ <glyph glyph-name="expand" unicode="" horiz-adv-x="448"
+d="M0 268v124c0 13.2998 10.7002 24 24 24h124c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84v-84c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12zM288 404c0 6.59961 5.40039 12 12 12h124c13.2998 0 24 -10.7002 24 -24
+v-124c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v84h-84c-6.59961 0 -12 5.40039 -12 12v40zM436 128c6.59961 0 12 -5.40039 12 -12v-124c0 -13.2998 -10.7002 -24 -24 -24h-124c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84
+v84c0 6.59961 5.40039 12 12 12h40zM160 -20c0 -6.59961 -5.40039 -12 -12 -12h-124c-13.2998 0 -24 10.7002 -24 24v124c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-84h84c6.59961 0 12 -5.40039 12 -12v-40z" />
+ <glyph glyph-name="compress" unicode="" horiz-adv-x="448"
+d="M436 256h-124c-13.2998 0 -24 10.7002 -24 24v124c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-84h84c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM160 280c0 -13.2998 -10.7002 -24 -24 -24h-124
+c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84v84c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-124zM160 -20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v84h-84c-6.59961 0 -12 5.40039 -12 12v40
+c0 6.59961 5.40039 12 12 12h124c13.2998 0 24 -10.7002 24 -24v-124zM352 -20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v124c0 13.2998 10.7002 24 24 24h124c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84v-84z" />
+ <glyph glyph-name="plus" unicode="" horiz-adv-x="448"
+d="M416 240c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-144v-144c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v144h-144c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h144v144
+c0 17.6699 14.3301 32 32 32h32c17.6699 0 32 -14.3301 32 -32v-144h144z" />
+ <glyph glyph-name="minus" unicode="" horiz-adv-x="448"
+d="M416 240c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h384z" />
+ <glyph glyph-name="asterisk" unicode=""
+d="M478.21 113.907c11.7949 -6.47754 15.96 -21.3828 9.23242 -33.0361l-19.4805 -33.7412c-6.72754 -11.6533 -21.7207 -15.499 -33.2266 -8.52246l-138.735 84.1104l3.47559 -162.204c0.288086 -13.4531 -10.5391 -24.5137 -23.9941 -24.5137h-38.9619
+c-13.4551 0 -24.2822 11.0605 -23.9941 24.5137l3.47461 162.204l-138.735 -84.1113c-11.5059 -6.97656 -26.499 -3.13086 -33.2266 8.52246l-19.4805 33.7412c-6.72852 11.6533 -2.5625 26.5596 9.23242 33.0371l142.21 78.0928l-142.209 78.0918
+c-11.7949 6.47754 -15.9609 21.3838 -9.2334 33.0371l19.4805 33.7412c6.72754 11.6533 21.7207 15.499 33.2266 8.52246l138.735 -84.1104l-3.47363 162.204c-0.289062 13.4531 10.5381 24.5137 23.9932 24.5137h38.9609c13.4561 0 24.2822 -11.0605 23.9941 -24.5137
+l-3.47461 -162.204l138.735 84.1113c11.5068 6.97656 26.499 3.13086 33.2266 -8.52246l19.4805 -33.7412c6.72852 -11.6533 2.5625 -26.5596 -9.23242 -33.0371l-142.21 -78.0928z" />
+ <glyph glyph-name="exclamation-circle" unicode=""
+d="M504 192c0 -136.997 -111.043 -248 -248 -248s-248 111.003 -248 248c0 136.917 111.043 248 248 248s248 -111.083 248 -248zM256 142c-25.4053 0 -46 -20.5947 -46 -46s20.5947 -46 46 -46s46 20.5947 46 46s-20.5947 46 -46 46zM212.327 307.346l7.41797 -136
+c0.34668 -6.36328 5.6084 -11.3457 11.9814 -11.3457h48.5469c6.37305 0 11.6348 4.98242 11.9814 11.3457l7.41797 136c0.375 6.87402 -5.09766 12.6543 -11.9814 12.6543h-63.3838c-6.88379 0 -12.3555 -5.78027 -11.9805 -12.6543z" />
+ <glyph glyph-name="gift" unicode=""
+d="M32 0v128h192v-160h-160c-17.7002 0 -32 14.2998 -32 32zM288 -32v160h192v-128c0 -17.7002 -14.2998 -32 -32 -32h-160zM480 288c17.7002 0 32 -14.2998 32 -32v-80c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v80c0 17.7002 14.2998 32 32 32
+h44.0996c-6.2998 12.0996 -10.0996 25.5 -10.0996 40c0 48.5 39.5 88 88 88c41.5996 0 68.5 -21.2998 103 -68.2998c34.5 47 61.4004 68.2998 103 68.2998c48.5 0 88 -39.5 88 -88c0 -14.5 -3.90039 -27.9004 -10.0996 -40h42.0996zM153.9 288h86.0996
+c-51.5 76.7002 -66.2002 80 -86.0996 80c-22.1006 0 -40 -17.9004 -40 -40s17.8994 -40 40 -40zM360 288c22.0996 0 40 17.9004 40 40s-17.9004 40 -40 40c-20.4004 0 -34.7002 -3.5 -86.0996 -80h86.0996z" />
+ <glyph glyph-name="leaf" unicode="" horiz-adv-x="576"
+d="M546.2 438.3c19 -42.3994 29.7998 -94.3994 29.7998 -144.6c0 -172.4 -110.5 -313.2 -267.5 -324.601c-80.9004 -8.59961 -142.5 33.3008 -174.9 77.2002c-51 -42.7002 -70.3994 -87 -71.8994 -90.5996c-6.7998 -16.2002 -25.4004 -24.1006 -41.7998 -17.2998
+c-16.3008 6.69922 -24.1006 25.2998 -17.5 41.5996c23.5996 57.9004 130.199 212 381.6 212c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16c-130.6 0 -222.7 -38.7998 -286.5 -84.5c-0.700195 6.7998 -1.5 13.5 -1.5 20.5c0 106 86 192 192 192h80
+c63.4004 0 118.9 33.5996 149.9 87.5c6.69922 11.7998 22.6992 11.2998 28.2998 -1.2002z" />
+ <glyph glyph-name="fire" unicode="" horiz-adv-x="384"
+d="M216 424.14c0 -103.14 168 -125.85 168 -296.14c0 -105.87 -86.1299 -192 -192 -192s-192 86.1299 -192 192c0 58.6699 27.7998 106.84 54.5703 134.96c14.96 15.7305 41.4297 5.2002 41.4297 -16.5v-85.5098c0 -35.1699 27.9805 -64.4902 63.1504 -64.9404
+c35.7393 -0.469727 64.8496 28.3604 64.8496 63.9902c0 88 -176 96.1504 -52.1504 277.18c13.5 19.7305 44.1504 10.7607 44.1504 -13.04z" />
+ <glyph glyph-name="eye" unicode="" horiz-adv-x="576"
+d="M572.52 206.6c1.9209 -3.79883 3.47949 -10.3379 3.47949 -14.5947s-1.55859 -10.7959 -3.47949 -14.5947c-54.1992 -105.771 -161.59 -177.41 -284.52 -177.41s-230.29 71.5898 -284.52 177.4c-1.9209 3.79883 -3.47949 10.3379 -3.47949 14.5947
+s1.55859 10.7959 3.47949 14.5947c54.1992 105.771 161.59 177.41 284.52 177.41s230.29 -71.5898 284.52 -177.4zM288 48h0.0703125c79.4492 0 143.93 64.4805 143.93 143.93v0.0703125c0 79.4883 -64.5117 144 -144 144s-144 -64.5117 -144 -144s64.5117 -144 144 -144z
+M288 288h0.225586c52.8701 0 95.7803 -42.9092 95.7803 -95.7793c0 -52.8711 -42.9102 -95.7803 -95.7803 -95.7803c-52.8711 0 -95.7803 42.9092 -95.7803 95.7803c0 7.04785 1.49805 18.2871 3.34473 25.0889c6.9834 -5.13867 19.6895 -9.30957 28.3604 -9.30957
+c26.4131 0 47.8496 21.4365 47.8496 47.8496c0 8.6709 -4.1709 21.377 -9.30957 28.3604c6.84375 1.99219 18.1826 3.69043 25.3096 3.79004z" />
+ <glyph glyph-name="eye-slash" unicode="" horiz-adv-x="640"
+d="M320 48c7.24121 0.0673828 18.8896 1.23633 26 2.61035l51.8896 -40.1504c-25.0195 -6.45996 -50.9795 -10.46 -77.8896 -10.46c-122.93 0 -230.29 71.5898 -284.52 177.4c-1.9209 3.79883 -3.47949 10.3379 -3.47949 14.5947s1.55859 10.7959 3.47949 14.5947
+c10.2393 20 22.9297 38.29 36.7197 55.5898l104.899 -81.0693c5.65039 -74.4004 67.0508 -133.11 142.9 -133.11zM633.82 -10.0996c3.41309 -2.65234 6.18359 -8.3125 6.18359 -12.6357c0 -3.02734 -1.50684 -7.42383 -3.36426 -9.81445l-19.6396 -25.2705
+c-2.65234 -3.41211 -8.31152 -6.18262 -12.6338 -6.18262c-3.03125 0 -7.43359 1.51172 -9.82617 3.37305l-588.36 454.729c-3.41016 2.65234 -6.17773 8.31055 -6.17773 12.6309c0 3.0293 1.50879 7.42773 3.36816 9.81934l19.6299 25.2705
+c2.65234 3.41211 8.31152 6.18262 12.6338 6.18262c3.03125 0 7.43359 -1.51172 9.82617 -3.37305l127.22 -98.3301c38.0117 20.7578 104.011 37.6475 147.32 37.7002c122.93 0 230.29 -71.5898 284.52 -177.4c1.9209 -3.79883 3.47949 -10.3379 3.47949 -14.5947
+s-1.55859 -10.7959 -3.47949 -14.5947c-16.7666 -32.6758 -53.166 -78.4033 -81.25 -102.07zM450.1 131.9c8.61035 18.3203 13.9004 38.4697 13.9004 60.0996v0.0800781c0 79.4434 -64.4766 143.92 -143.92 143.92h-0.0800781
+c-28.4697 -0.0214844 -69.3047 -14.8545 -91.1504 -33.1104l73.6104 -56.8896c0.726562 2.71387 1.41602 7.19336 1.54004 10c-0.015625 8.62891 -4.18652 21.2666 -9.30957 28.21c7.17969 2.09668 19.0781 3.79785 26.5576 3.79785
+c52.3076 0 94.7598 -42.4521 94.7598 -94.7598c0 -0.344727 -0.00292969 -0.90332 -0.0078125 -1.24805c-0.112305 -8.43457 -2.44238 -21.749 -5.2002 -29.7197z" />
+ <glyph glyph-name="exclamation-triangle" unicode="" horiz-adv-x="576"
+d="M569.517 7.9873c18.458 -31.9941 -4.71094 -71.9873 -41.5762 -71.9873h-479.887c-36.9365 0 -59.999 40.0547 -41.5771 71.9873l239.946 416.027c18.4668 32.0098 64.7197 31.9512 83.1543 0zM288 94c-25.4053 0 -46 -20.5947 -46 -46s20.5947 -46 46 -46
+s46 20.5947 46 46s-20.5947 46 -46 46zM244.327 259.346l7.41797 -136c0.34668 -6.36328 5.6084 -11.3457 11.9814 -11.3457h48.5469c6.37305 0 11.6348 4.98242 11.9814 11.3457l7.41797 136c0.375 6.87402 -5.09766 12.6543 -11.9814 12.6543h-63.3838
+c-6.88379 0 -12.3555 -5.78027 -11.9805 -12.6543z" />
+ <glyph glyph-name="plane" unicode="" horiz-adv-x="576"
+d="M480 256c35.3496 0 96 -28.6504 96 -64s-60.6504 -64 -96 -64h-114.29l-105.11 -183.94c-2.84961 -4.97949 -8.14941 -8.05957 -13.8896 -8.05957h-65.5c-10.6299 0 -18.2998 10.1797 -15.3799 20.4004l49.0303 171.6h-102.86l-43.2002 -57.5996
+c-3.01953 -4.03027 -7.75977 -6.40039 -12.7998 -6.40039h-39.9902c-10.4102 0 -18.0498 9.78027 -15.5195 19.8799l31.5098 108.12l-31.5098 108.12c-2.53027 10.0996 5.10938 19.8799 15.5195 19.8799h39.9902c5.03027 0 9.78027 -2.37012 12.7998 -6.40039
+l43.2002 -57.5996h102.86l-49.0303 171.61c-2.91992 10.2197 4.75 20.3896 15.3799 20.3896h65.5h0.000976562c5.12598 0 11.3525 -3.61133 13.8994 -8.05957l105.1 -183.94h114.29z" />
+ <glyph glyph-name="calendar-alt" unicode="" horiz-adv-x="448"
+d="M0 -16v272h448v-272c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48zM320 180v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM320 52v-40
+c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM192 180v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40
+c-6.59961 0 -12 -5.40039 -12 -12zM192 52v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM64 180v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40
+c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM64 52v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12zM400 384c26.5 0 48 -21.5 48 -48v-48h-448v48
+c0 26.5 21.5 48 48 48h48v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h128v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h48z" />
+ <glyph glyph-name="random" unicode=""
+d="M504.971 88.9707c9.37305 -9.37305 9.37305 -24.5684 0 -33.9404l-80 -79.9844c-15.0098 -15.0098 -40.9707 -4.49023 -40.9707 16.9707v39.9834h-58.7852c-2.87793 0 -6.80859 1.70801 -8.77246 3.81152l-70.5566 75.5967l53.333 57.1426l52.7812 -56.5508h32v39.9814
+c0 21.4375 25.9434 31.9971 40.9707 16.9707zM12 272c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h110.785h0.000976562c2.87793 0 6.80762 -1.70801 8.77148 -3.81152l70.5566 -75.5967l-53.333 -57.1426l-52.7812 56.5508h-84zM384 272h-32
+l-220.442 -236.188c-2.26953 -2.43066 -5.44629 -3.81152 -8.77246 -3.81152h-110.785c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h84l220.442 236.188c1.96387 2.10352 5.89453 3.81152 8.77246 3.81152h58.7852v39.9814
+c0 21.4365 25.9434 31.9971 40.9707 16.9697l80 -79.9814c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-80 -79.9844c-15.0098 -15.0088 -40.9707 -4.48926 -40.9707 16.9707v39.9844z" />
+ <glyph glyph-name="comment" unicode=""
+d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002
+c0.5 0.5 42.2998 45.4004 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7c0 114.9 114.6 208 256 208z" />
+ <glyph glyph-name="magnet" unicode=""
+d="M164.07 299.9h-152.07c-6.62402 0 -12 5.37598 -12 12v80c0 19.8721 16.1279 36 36 36h104c19.8721 0 36 -16.1279 36 -36v-80c0 -0.03125 0.000976562 -0.0800781 0.000976562 -0.110352c0 -6.56348 -5.32715 -11.8896 -11.8906 -11.8896h-0.0400391zM512 311.9
+c0 -6.56348 -5.32715 -11.9014 -11.8896 -11.9014c-0.0302734 0 -0.0800781 0.000976562 -0.110352 0.000976562h-152c-6.62402 0 -12 5.37598 -12 12v80c0 19.8721 16.1279 36 36 36h104c19.8721 0 36 -16.1279 36 -36v-80.0996zM348 267.9h151.85h0.000976562
+c6.62402 0 12 -5.37598 12 -12c0 -0.0283203 0 -0.0732422 -0.000976562 -0.100586c-0.199219 -20.2002 -0.599609 -40.3994 0 -53.2002c0 -150.699 -134.42 -246.699 -255 -246.699s-256.75 96 -256.75 246.6c0.600586 13 0.100586 31.9004 0 53.2998v0.100586
+c0 6.62402 5.37598 12 12 12v0h151.9c6.62402 0 12 -5.37598 12 -12v-52c0 -127.9 160 -128.101 160 0v52c0 6.62402 5.37598 12 12 12z" />
+ <glyph glyph-name="chevron-up" unicode="" horiz-adv-x="448"
+d="M240.971 317.476l194.344 -194.343c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-22.667 -22.667c-9.35742 -9.35742 -24.5225 -9.375 -33.9014 -0.0400391l-154.746 154.02l-154.745 -154.021c-9.37891 -9.33496 -24.5439 -9.31738 -33.9014 0.0400391
+l-22.667 22.667c-9.37207 9.37305 -9.37207 24.5684 0 33.9404l194.344 194.343c9.37207 9.37305 24.5674 9.37305 33.9404 0.000976562z" />
+ <glyph glyph-name="chevron-down" unicode="" horiz-adv-x="448"
+d="M207.029 66.5244l-194.344 194.344c-9.37207 9.37305 -9.37207 24.5684 0 33.9404l22.667 22.667c9.35742 9.35742 24.5225 9.375 33.9014 0.0400391l154.746 -154.021l154.745 154.021c9.37891 9.33496 24.5439 9.31738 33.9014 -0.0400391l22.667 -22.667
+c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-194.343 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9414 0z" />
+ <glyph glyph-name="retweet" unicode="" horiz-adv-x="640"
+d="M629.657 104.402l-100.687 -100.687c-9.37305 -9.37207 -24.5674 -9.37207 -33.9404 0l-100.688 100.687c-9.37305 9.37305 -9.37305 24.5684 0 33.9404l10.8232 10.8232c9.56152 9.56152 25.1328 9.33984 34.4189 -0.492188l40.415 -42.792v182.118h-187.549
+c-5.4873 0 -13.0908 3.14941 -16.9707 7.0293l-16 16c-15.1191 15.1201 -4.41113 40.9707 16.9707 40.9707h243.549c13.2549 0 24 -10.7451 24 -24v-222.118l40.416 42.792c9.28516 9.83105 24.8564 10.0537 34.4189 0.492188l10.8232 -10.8232
+c9.37207 -9.37207 9.37207 -24.5684 -0.000976562 -33.9404zM364.519 88.9707l16.001 -16c15.1191 -15.1201 4.41113 -40.9707 -16.9707 -40.9707h-243.549c-13.2549 0 -24 10.7451 -24 24v222.119l-40.416 -42.793c-9.28613 -9.83105 -24.8574 -10.0527 -34.4189 -0.491211
+l-10.8223 10.8223c-9.37305 9.37207 -9.37305 24.5674 0 33.9404l100.688 100.687c9.37207 9.37305 24.5674 9.37305 33.9404 0l100.687 -100.686c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-10.8223 -10.8223c-9.5625 -9.5625 -25.1328 -9.33984 -34.4189 0.491211
+l-40.416 42.792v-182.119h187.548h0.000976562c5.4873 0 13.0898 -3.14941 16.9697 -7.0293z" />
+ <glyph glyph-name="shopping-cart" unicode="" horiz-adv-x="576"
+d="M528.12 146.681c-2.4834 -10.9268 -12.1973 -18.6807 -23.4033 -18.6807h-293.145l6.54492 -32h268.418c15.4004 0 26.8154 -14.3008 23.4033 -29.3193l-5.51758 -24.2754c18.6914 -9.07324 31.5791 -28.2334 31.5791 -50.4053c0 -30.9277 -25.0723 -56 -56 -56
+s-56 25.0723 -56 56c0 15.6738 6.44727 29.835 16.8232 40h-209.647c10.377 -10.165 16.8242 -24.3262 16.8242 -40c0 -30.9277 -25.0723 -56 -56 -56s-56 25.0723 -56 56c0 20.7783 11.3252 38.9004 28.1309 48.5654l-70.248 343.435h-69.8828
+c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h102.529c11.4004 0 21.2285 -8.02148 23.5127 -19.1904l9.16602 -44.8096h392.782c15.4004 0 26.8154 -14.3008 23.4023 -29.3193z" />
+ <glyph glyph-name="folder" unicode=""
+d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h160l64 -64h192z" />
+ <glyph glyph-name="folder-open" unicode="" horiz-adv-x="576"
+d="M572.694 155.907l-72.4248 -124.155c-10.2236 -17.5273 -34.9883 -31.752 -55.2793 -31.752h-0.000976562h-399.964c-18.5234 0 -30.0645 20.0928 -20.7314 36.0928l72.4238 124.155c10.2246 17.5273 34.9902 31.752 55.2822 31.752v0h399.964
+c18.5234 0 30.0645 -20.0928 20.7305 -36.0928zM152 224c-34.0107 0 -65.7861 -18.25 -82.9229 -47.6279l-69.0771 -118.418v278.046c0 26.5098 21.4902 48 48 48h160l64 -64h160c26.5098 0 48 -21.4902 48 -48v-48h-328z" />
+ <glyph glyph-name="chart-bar" unicode=""
+d="M332.8 128c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v134.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-134.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM428.8 128
+c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v230.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-230.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM140.8 128
+c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v70.4004c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-70.4004c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM236.8 128
+c-6.39941 0 -12.7998 6.40039 -12.7998 12.7998v198.4c0 6.39941 6.40039 12.7998 12.7998 12.7998h38.4004c6.39941 0 12.7998 -6.40039 12.7998 -12.7998v-198.4c0 -6.39941 -6.40039 -12.7998 -12.7998 -12.7998h-38.4004zM496 64c8.83984 0 16 -7.16016 16 -16v-32
+c0 -8.83984 -7.16016 -16 -16 -16h-464c-17.6699 0 -32 14.3301 -32 32v336c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-304h432z" />
+ <glyph glyph-name="camera-retro" unicode=""
+d="M48 416h416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48zM48 384c-8.7998 0 -16 -7.2002 -16 -16v-10c0 -3.2998 2.7002 -6 6 -6h116c3.2998 0 6 2.7002 6 6v20c0 3.2998 -2.7002 6 -6 6h-106z
+M474 288c3.2998 0 6 2.7002 6 6v74c0 8.7998 -7.2002 16 -16 16h-252.8c-2 0 -3.90039 -1 -5 -2.7002l-30.2002 -45.2998h-138c-3.2998 0 -6 -2.7002 -6 -6v-36c0 -3.2998 2.7002 -6 6 -6h436zM256 24c66.2002 0 120 53.7998 120 120s-53.7998 120 -120 120
+s-120 -53.7998 -120 -120s53.7998 -120 120 -120zM256 232c48.5 0 88 -39.5 88 -88s-39.5 -88 -88 -88s-88 39.5 -88 88s39.5 88 88 88zM208 128c8.7998 0 16 7.2002 16 16c0 17.5996 14.4004 32 32 32c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16
+c-35.2998 0 -64 -28.7002 -64 -64c0 -8.7998 7.2002 -16 16 -16z" />
+ <glyph glyph-name="key" unicode=""
+d="M512 271.999c0 -97.2021 -78.7979 -175.999 -176 -175.999c-11.2197 0 -22.1904 1.06152 -32.8271 3.06934l-24.0117 -27.0146c-3.95215 -4.44629 -11.9883 -8.05469 -17.9375 -8.05469h-0.000976562h-37.2227v-40c0 -13.2549 -10.7451 -24 -24 -24h-40v-40
+c0 -13.2549 -10.7451 -24 -24 -24h-112c-13.2549 0 -24 10.7451 -24 24v78.0586c0 6.36523 2.5293 12.4707 7.0293 16.9717l161.802 161.802c-5.72266 17.3535 -8.83105 35.8965 -8.83105 55.168c0 97.2021 78.7969 175.999 175.999 176
+c97.4893 0.000976562 176.001 -78.5107 176.001 -176.001zM336 320c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48z" />
+ <glyph glyph-name="cogs" unicode="" horiz-adv-x="640"
+d="M512.1 257l-8.19922 -14.2998c-3 -5.2998 -9.40039 -7.5 -15.1006 -5.40039c-11.7998 4.40039 -22.5996 10.7002 -32.0996 18.6006c-4.60059 3.7998 -5.7998 10.5 -2.7998 15.6992l8.19922 14.3008c-6.89941 8 -12.2998 17.2998 -15.8994 27.3994h-16.5
+c-6 0 -11.2002 4.2998 -12.2002 10.2998c-2 12 -2.09961 24.6006 0 37.1006c1 6 6.2002 10.3994 12.2002 10.3994h16.5c3.59961 10.1006 9 19.4004 15.8994 27.4004l-8.19922 14.2998c-3 5.2002 -1.90039 11.9004 2.7998 15.7002
+c9.5 7.90039 20.3994 14.2002 32.0996 18.5996c5.7002 2.10059 12.1006 -0.0996094 15.1006 -5.39941l8.19922 -14.2998c10.5 1.89941 21.2002 1.89941 31.7002 0l8.2002 14.2998c3 5.2998 9.40039 7.5 15.0996 5.39941c11.8008 -4.39941 22.6006 -10.6992 32.1006 -18.5996
+c4.59961 -3.7998 5.7998 -10.5 2.7998 -15.7002l-8.2002 -14.2998c6.90039 -8 12.2998 -17.2998 15.9004 -27.4004h16.5c6 0 11.2002 -4.2998 12.2002 -10.2998c2 -12 2.09961 -24.5996 0 -37.0996c-1 -6 -6.2002 -10.4004 -12.2002 -10.4004h-16.5
+c-3.60059 -10.0996 -9 -19.3994 -15.9004 -27.3994l8.2002 -14.3008c3 -5.19922 1.90039 -11.8994 -2.7998 -15.6992c-9.5 -7.90039 -20.4004 -14.2002 -32.1006 -18.6006c-5.69922 -2.09961 -12.0996 0.100586 -15.0996 5.40039l-8.2002 14.2998
+c-10.3994 -1.90039 -21.2002 -1.90039 -31.7002 0zM501.6 315.8c38.5 -29.5996 82.4004 14.2998 52.8008 52.7998c-38.5 29.7002 -82.4004 -14.2998 -52.8008 -52.7998zM386.3 161.9l33.7002 -16.8008c10.0996 -5.7998 14.5 -18.0996 10.5 -29.0996
+c-8.90039 -24.2002 -26.4004 -46.4004 -42.5996 -65.7998c-7.40039 -8.90039 -20.2002 -11.1006 -30.3008 -5.2998l-29.0996 16.7998c-16 -13.7002 -34.5996 -24.6006 -54.9004 -31.7002v-33.5996c0 -11.6006 -8.2998 -21.6006 -19.6992 -23.6006
+c-24.6006 -4.2002 -50.4004 -4.39941 -75.9004 0c-11.5 2 -20 11.9004 -20 23.6006v33.5996c-20.2998 7.2002 -38.9004 18 -54.9004 31.7002l-29.0996 -16.7002c-10 -5.7998 -22.9004 -3.59961 -30.2998 5.2998c-16.2002 19.4004 -33.2998 41.6006 -42.2002 65.7002
+c-4 10.9004 0.400391 23.2002 10.5 29.0996l33.2998 16.8008c-3.89941 20.8994 -3.89941 42.3994 0 63.3994l-33.2998 16.9004c-10.0996 5.7998 -14.5996 18.0996 -10.5 29c8.90039 24.2002 26 46.3994 42.2002 65.7998c7.39941 8.90039 20.2002 11.0996 30.2998 5.2998
+l29.0996 -16.7998c16 13.7002 34.6006 24.5996 54.9004 31.7002v33.7002c0 11.5 8.2002 21.5 19.5996 23.5c24.6006 4.19922 50.5 4.39941 76 0.0996094c11.5 -2 20 -11.9004 20 -23.5996v-33.6006c20.3008 -7.2002 38.9004 -18 54.9004 -31.7002l29.0996 16.8008
+c10 5.7998 22.9004 3.59961 30.3008 -5.30078c16.1992 -19.3994 33.1992 -41.5996 42.0996 -65.7998c4 -10.8994 0.0996094 -23.2002 -10 -29.0996l-33.7002 -16.7998c3.90039 -21 3.90039 -42.5 0 -63.5zM268.7 140.8c59.2002 77 -28.7002 164.9 -105.7 105.7
+c-59.2002 -77 28.7002 -164.9 105.7 -105.7zM512.1 -41.9004l-8.19922 -14.2998c-3 -5.2998 -9.40039 -7.5 -15.1006 -5.39941c-11.7998 4.39941 -22.5996 10.6992 -32.0996 18.5996c-4.60059 3.7998 -5.7998 10.5 -2.7998 15.7002l8.19922 14.2998
+c-6.89941 8 -12.2998 17.2998 -15.8994 27.4004h-16.5c-6 0 -11.2002 4.2998 -12.2002 10.2998c-2 12 -2.09961 24.5996 0 37.0996c1 6 6.2002 10.4004 12.2002 10.4004h16.5c3.59961 10.0996 9 19.3994 15.8994 27.3994l-8.19922 14.3008
+c-3 5.19922 -1.90039 11.8994 2.7998 15.6992c9.5 7.90039 20.3994 14.2002 32.0996 18.6006c5.7002 2.09961 12.1006 -0.100586 15.1006 -5.40039l8.19922 -14.2998c10.5 1.90039 21.2002 1.90039 31.7002 0l8.2002 14.2998c3 5.2998 9.40039 7.5 15.0996 5.40039
+c11.8008 -4.40039 22.6006 -10.7002 32.1006 -18.6006c4.59961 -3.7998 5.7998 -10.5 2.7998 -15.6992l-8.2002 -14.3008c6.90039 -8 12.2998 -17.2998 15.9004 -27.3994h16.5c6 0 11.2002 -4.2998 12.2002 -10.2998c2 -12 2.09961 -24.6006 0 -37.1006
+c-1 -6 -6.2002 -10.3994 -12.2002 -10.3994h-16.5c-3.60059 -10.1006 -9 -19.4004 -15.9004 -27.4004l8.2002 -14.2998c3 -5.2002 1.90039 -11.9004 -2.7998 -15.7002c-9.5 -7.90039 -20.4004 -14.2002 -32.1006 -18.5996
+c-5.69922 -2.10059 -12.0996 0.0996094 -15.0996 5.39941l-8.2002 14.2998c-10.3994 -1.89941 -21.2002 -1.89941 -31.7002 0zM501.6 17c38.5 -29.5996 82.4004 14.2998 52.8008 52.7998c-38.5 29.6006 -82.4004 -14.2998 -52.8008 -52.7998z" />
+ <glyph glyph-name="comments" unicode="" horiz-adv-x="576"
+d="M416 256c0 -88.4004 -93.0996 -160 -208 -160c-41 0 -79.0996 9.2998 -111.3 25c-21.7998 -12.7002 -52.1006 -25 -88.7002 -25c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002c0.299805 0.299805 22.3994 24.2998 35.7998 54.5
+c-23.9004 26.0996 -38 57.7002 -38 92c0 88.4004 93.0996 160 208 160s208 -71.5996 208 -160zM538 36c13.4004 -30.2998 35.5 -54.2002 35.7998 -54.5c2.2002 -2.40039 2.7998 -5.7998 1.5 -8.7002c-1.2002 -2.89941 -4.09961 -4.7998 -7.2998 -4.7998
+c-36.5996 0 -66.9004 12.2998 -88.7002 25c-32.2002 -15.7998 -70.2998 -25 -111.3 -25c-86.2002 0 -160.2 40.4004 -191.7 97.9004c10.4004 -1.10059 20.9004 -1.90039 31.7002 -1.90039c132.3 0 240 86.0996 240 192c0 6.7998 -0.400391 13.5 -1.2998 20.0996
+c75.7998 -23.8994 129.3 -81.1992 129.3 -148.1c0 -34.2998 -14.0996 -66 -38 -92z" />
+ <glyph glyph-name="star-half" unicode="" horiz-adv-x="576"
+d="M288 448v-439.6l-130.7 -68.6006c-23.3994 -12.2998 -50.8994 7.60059 -46.3994 33.7002l25 145.5l-105.7 103c-19 18.5 -8.5 50.7998 17.7002 54.5996l146.1 21.2002l65.2998 132.4c5.90039 11.8994 17.2998 17.7998 28.7002 17.7998z" />
+ <glyph glyph-name="thumbtack" unicode="" horiz-adv-x="384"
+d="M298.028 233.733c47.9893 -22.3135 85.9717 -62.5508 85.9727 -113.733c0 -13.2549 -10.7451 -24 -24 -24h-136v-104.007c0 -1.04297 -0.378906 -2.64551 -0.844727 -3.57812l-24 -48c-2.94727 -5.89258 -11.3701 -5.88184 -14.3115 0l-24 48
+c-0.555664 1.11133 -0.844727 2.33594 -0.844727 3.57812v104.007h-136c-13.2549 0 -24 10.7451 -24 24c0 50.7393 37.4648 91.1797 85.9717 113.733l12.2354 118.267h-42.207c-13.2549 0 -24 10.7451 -24 24v48c0 13.2549 10.7451 24 24 24h272
+c13.2549 0 24 -10.7451 24 -24v-48c0 -13.2549 -10.7451 -24 -24 -24h-42.207z" />
+ <glyph glyph-name="trophy" unicode="" horiz-adv-x="576"
+d="M552 384c13.2998 0 24 -10.7002 24 -24v-56c0 -35.7002 -22.5996 -72.4004 -61.9004 -100.7c-31.3994 -22.7002 -69.6992 -37.0996 -110 -41.7002c-31.3994 -52.0996 -68.0996 -73.5996 -68.0996 -73.5996v-72h48c35.2998 0 64 -20.7002 64 -56v-12
+c0 -6.59961 -5.40039 -12 -12 -12h-296c-6.59961 0 -12 5.40039 -12 12v12c0 35.2998 28.7002 56 64 56h48v72s-36.7002 21.5 -68.0996 73.5996c-40.2002 4.60059 -78.5 19 -110 41.7002c-39.4004 28.2998 -61.9004 65 -61.9004 100.7v56c0 13.2998 10.7002 24 24 24h104v40
+c0 13.2998 10.7002 24 24 24h272c13.2998 0 24 -10.7002 24 -24v-40h104zM99.2998 255.2c12.5 -9 26.6006 -16.2002 41.7002 -21.4004c-7 25 -11.7998 53.6006 -12.7998 86.2002h-64.2002v-16c0 -11.5996 10.9004 -31.2002 35.2998 -48.7998zM512 304v16h-64.2998
+c-1 -32.5996 -5.7998 -61.2002 -12.7998 -86.2002c15.0996 5.2002 29.2998 12.4004 41.7998 21.4004c17.5996 12.7002 35.2998 32.7002 35.2998 48.7998z" />
+ <glyph glyph-name="upload" unicode=""
+d="M296 64h-80c-13.2998 0 -24 10.7002 -24 24v168h-87.7002c-17.7998 0 -26.7002 21.5 -14.0996 34.0996l152.1 152.2c7.5 7.5 19.7998 7.5 27.2998 0l152.2 -152.2c12.6006 -12.5996 3.7002 -34.0996 -14.0996 -34.0996h-87.7002v-168c0 -13.2998 -10.7002 -24 -24 -24z
+M512 72v-112c0 -13.2998 -10.7002 -24 -24 -24h-464c-13.2998 0 -24 10.7002 -24 24v112c0 13.2998 10.7002 24 24 24h136v-8c0 -30.9004 25.0996 -56 56 -56h80c30.9004 0 56 25.0996 56 56v8h136c13.2998 0 24 -10.7002 24 -24zM388 -16c0 11 -9 20 -20 20s-20 -9 -20 -20
+s9 -20 20 -20s20 9 20 20zM452 -16c0 11 -9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20s20 9 20 20z" />
+ <glyph glyph-name="lemon" unicode=""
+d="M489.038 425.037c23.0938 -23.0938 28.8916 -54.3906 16.833 -75.0928c-34.3115 -58.9043 53.0762 -181.249 -86.7461 -321.071s-262.167 -52.4326 -321.068 -86.7432c-20.7031 -12.0586 -52 -6.2627 -75.0947 16.832c-23.0928 23.0938 -28.8916 54.3906 -16.833 75.0928
+c34.3125 58.9043 -53.0781 181.247 86.7451 321.07s262.167 52.4336 321.073 86.7461c20.7012 12.0586 51.9971 6.25879 75.0908 -16.834zM243.881 352.478c8.57227 2.14355 13.7832 10.8291 11.6416 19.4023c-2.14258 8.57324 -10.8281 13.7852 -19.4033 11.6426
+c-69.8027 -17.4521 -154.218 -101.949 -171.643 -171.643c-2.1416 -8.57324 3.07031 -17.2588 11.6426 -19.4033c1.30273 -0.324219 2.6084 -0.480469 3.89258 -0.480469c7.16895 0 13.6943 4.85352 15.5117 12.124c14.5498 58.2031 90.1689 133.811 148.357 148.357z" />
+ <glyph glyph-name="phone" unicode=""
+d="M493.4 423.4c10.8994 -2.5 18.5996 -12.2002 18.5996 -23.4004c0 -256.5 -207.9 -464 -464 -464c-11.2998 0 -20.9004 7.7998 -23.4004 18.5996l-24 104c-2.59961 11.3008 3.30078 22.9004 14 27.6006l112 48c9.80078 4.2002 21.2002 1.39941 28 -6.90039
+l49.6006 -60.5996c78.2998 36.7002 141.2 100.5 177.2 177.2l-60.6006 49.5996c-8.2998 6.7002 -11.0996 18.2002 -6.89941 28l48 112c4.59961 10.5996 16.1992 16.5 27.5 13.9004z" />
+ <glyph glyph-name="phone-square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM94 32c160.055 0 290 129.708 290 290v0c0 6.58691 -5.20898 13.1338 -11.6279 14.6143l-65 14.998
+c-0.918945 0.211914 -2.42969 0.383789 -3.37305 0.383789c-5.45996 0 -11.6367 -4.07324 -13.7871 -9.09082l-30 -69.998c-0.668945 -1.5625 -1.21191 -4.20898 -1.21191 -5.9082c0 -3.92383 2.46387 -9.125 5.50098 -11.6104l37.8857 -30.9971
+c-22.4834 -47.9219 -61.8369 -87.8164 -110.78 -110.779l-30.9971 37.8848c-2.48535 3.03711 -7.68652 5.50195 -11.6104 5.50195c-1.69922 0 -4.3457 -0.543945 -5.9082 -1.21289l-69.998 -29.999c-5.01855 -2.15039 -9.09082 -8.32715 -9.09082 -13.7871
+c0 -0.943359 0.171875 -2.4541 0.383789 -3.37305l14.998 -65c1.55957 -6.75391 7.58301 -11.627 14.6162 -11.627z" />
+ <glyph glyph-name="unlock" unicode="" horiz-adv-x="448"
+d="M400 192c26.5 0 48 -21.5 48 -48v-160c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v160c0 26.5 21.5 48 48 48h24v102.5c0 84 67.5 153.2 151.5 153.5s152.5 -68 152.5 -152v-16c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v16
+c0 39.9004 -32.7002 72.4004 -72.7002 72c-39.5996 -0.400391 -71.2998 -33.2998 -71.2998 -72.9004v-103.1h248z" />
+ <glyph glyph-name="credit-card" unicode="" horiz-adv-x="576"
+d="M0 16v176h576v-176c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48zM192 84v-40c0 -6.59961 5.40039 -12 12 -12h136c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-136c-6.59961 0 -12 -5.40039 -12 -12zM64 84v-40
+c0 -6.59961 5.40039 -12 12 -12h72c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-72c-6.59961 0 -12 -5.40039 -12 -12zM576 368v-48h-576v48c0 26.5 21.5 48 48 48h480c26.5 0 48 -21.5 48 -48z" />
+ <glyph glyph-name="rss" unicode="" horiz-adv-x="448"
+d="M128.081 32.041c0 -35.3691 -28.6719 -64.041 -64.041 -64.041s-64.04 28.6719 -64.04 64.041s28.6719 64.041 64.041 64.041s64.04 -28.6729 64.04 -64.041zM303.741 -15.209c0.494141 -9.13477 -6.84668 -16.791 -15.9951 -16.79h-48.0693
+c-8.41406 0 -15.4707 6.49023 -16.0176 14.8867c-7.29883 112.07 -96.9404 201.488 -208.772 208.772c-8.39648 0.545898 -14.8867 7.60254 -14.8867 16.0176v48.0693c0 9.14746 7.65625 16.4883 16.791 15.9941c154.765 -8.36328 278.596 -132.351 286.95 -286.95z
+M447.99 -15.4971c0.324219 -9.03027 -6.97168 -16.5029 -16.0049 -16.5039h-48.0684c-8.62598 0 -15.6455 6.83496 -15.999 15.4531c-7.83789 191.148 -161.286 344.626 -352.465 352.465c-8.61816 0.354492 -15.4531 7.37402 -15.4531 15.999v48.0684
+c0 9.03418 7.47266 16.3301 16.5029 16.0059c234.962 -8.43555 423.093 -197.667 431.487 -431.487z" />
+ <glyph glyph-name="hdd" unicode="" horiz-adv-x="576"
+d="M576 144v-96c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v96c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48zM528 224h-480h-0.0693359c-8.81738 0 -22.5742 -2.76172 -30.708 -6.16504l96.5283 144.791
+c7.86621 11.7988 25.7578 21.374 39.9385 21.374h268.621c14.1807 0 32.0732 -9.57617 39.9395 -21.374l96.5273 -144.791c-8.13379 3.40332 -21.8906 6.16504 -30.708 6.16504h-0.0693359zM480 128c-17.6729 0 -32 -14.3271 -32 -32s14.3271 -32 32 -32s32 14.3271 32 32
+s-14.3271 32 -32 32zM384 128c-17.6729 0 -32 -14.3271 -32 -32s14.3271 -32 32 -32s32 14.3271 32 32s-14.3271 32 -32 32z" />
+ <glyph glyph-name="bullhorn" unicode="" horiz-adv-x="576"
+d="M576 208c0 -23.6299 -12.9502 -44.04 -32.0098 -55.1299v-152.87c0 -9.21973 -7.08008 -32 -32 -32c-6.19336 0.00585938 -15.1445 3.15039 -19.9805 7.01953l-85.0293 68.0303c-42.7002 34.1406 -96.3203 52.9502 -150.98 52.9502h-28.0801
+c-2.79004 -10.21 -4.41016 -20.8896 -4.41016 -32c0 -29.0801 9.75 -55.9199 26.1504 -77.4404c15.79 -20.7197 0.149414 -50.5596 -25.9004 -50.5596h-74.2793c-11.8809 0 -23.2109 6.37012 -28.4004 17.0596c-16.2998 33.5908 -25.5605 71.1709 -25.5605 110.94
+c0 10.8604 0.790039 21.5195 2.18066 32h-33.7002c-35.3496 0 -64 28.6504 -64 64v96c0 35.3496 28.6504 64 64 64h192c54.6602 0 108.28 18.8096 150.99 52.9502l85.0293 68.0303c5.79004 4.63965 12.8604 7.01953 19.9805 7.01953c25.0195 0 32 -23.2598 32 -32.0098
+v-152.87c19.0498 -11.0801 32 -31.4902 32 -55.1201zM480 66.5801v282.84l-33.0498 -26.4395c-54 -43.2002 -121.83 -66.9805 -190.95 -66.9805v-96c69.1201 0 136.95 -23.7803 190.95 -66.9805z" />
+ <glyph glyph-name="certificate" unicode=""
+d="M458.622 192.08l45.9844 -45.0039c13.7012 -12.9727 7.32227 -36.0371 -10.6641 -40.3389l-62.6504 -15.9902l17.6611 -62.0146c4.99023 -17.834 -11.8252 -34.665 -29.6611 -29.6719l-61.9941 17.667l-15.9834 -62.6709
+c-4.33887 -18.1533 -27.8252 -24.1553 -40.3252 -10.668l-44.9893 46.001l-44.9912 -46.001c-12.6289 -13.3496 -35.8857 -7.90625 -40.3252 10.668l-15.9834 62.6709l-61.9941 -17.667c-17.832 -4.99121 -34.6523 11.833 -29.6611 29.6719l17.6611 62.0146
+l-62.6504 15.9902c-17.9795 4.2998 -24.3721 27.3613 -10.6641 40.3389l45.9854 45.0039l-45.9854 45.0049c-13.7012 12.9707 -7.32227 36.0371 10.665 40.3379l62.6504 15.9902l-17.6611 62.0146c-4.99023 17.834 11.8242 34.665 29.6611 29.6709l61.9951 -17.667
+l15.9834 62.6709c4.27832 17.9023 27.6953 24.0195 40.3252 10.6689l44.9893 -46.3418l44.9902 46.3428c12.7744 13.5039 36.0947 7.03027 40.3252 -10.6689l15.9834 -62.6709l61.9941 17.667c17.832 4.99219 34.6523 -11.833 29.6611 -29.6709l-17.6611 -62.0146
+l62.6504 -15.9902c17.9795 -4.2998 24.3721 -27.3623 10.6641 -40.3389z" />
+ <glyph glyph-name="hand-point-right" unicode=""
+d="M512 248.348c0 -23.625 -20.6504 -43.8252 -44.7998 -43.8252h-99.8516c16.3408 -17.0488 18.3467 -49.7666 -6.29883 -70.9443c14.2881 -22.8291 2.14746 -53.0176 -16.4502 -62.3154c8.97461 -49.1406 -21.9453 -71.2627 -72.5996 -71.2627
+c-2.74609 0 -13.2764 0.203125 -16 0.195312c-61.9707 -0.167969 -76.8936 31.0645 -123.731 38.3145c-11.6729 1.80762 -20.2686 11.8916 -20.2686 23.7041v171.525l0.00195312 0.000976562c0.0107422 18.3662 10.6074 35.8887 28.4639 43.8447
+c28.8857 12.9941 95.4131 49.0381 107.534 77.3232c7.79688 18.1934 21.3838 29.084 40 29.0918c34.2217 0.0136719 57.752 -35.0977 44.1191 -66.9082c-3.58301 -8.3584 -8.3125 -16.6699 -14.1533 -24.918h149.234c23.4502 0 44.7998 -20.543 44.7998 -43.8262zM96 248
+v-192c0 -13.2549 -10.7451 -24 -24 -24h-48c-13.2549 0 -24 10.7451 -24 24v192c0 13.2549 10.7451 24 24 24h48c13.2549 0 24 -10.7451 24 -24zM68 80c0 11.0459 -8.9541 20 -20 20s-20 -8.9541 -20 -20s8.9541 -20 20 -20s20 8.9541 20 20z" />
+ <glyph glyph-name="hand-point-left" unicode=""
+d="M44.7998 292.174h149.234c-5.84082 8.24805 -10.5703 16.5586 -14.1533 24.918c-13.6328 31.8105 9.89746 66.9219 44.1191 66.9082c18.6162 -0.0078125 32.2031 -10.8975 40 -29.0918c12.1221 -28.2861 78.6484 -64.3291 107.534 -77.3232
+c17.8564 -7.95605 28.4531 -25.4785 28.4639 -43.8447l0.00195312 -0.000976562v-171.526c0 -11.8115 -8.5957 -21.8965 -20.2686 -23.7031c-46.8379 -7.25 -61.7607 -38.4824 -123.731 -38.3145c-2.72363 0.00683594 -13.2539 -0.195312 -16 -0.195312
+c-50.6543 0 -81.5742 22.1221 -72.5996 71.2627c-18.5977 9.29688 -30.7383 39.4863 -16.4502 62.3154c-24.6455 21.1768 -22.6396 53.8955 -6.29883 70.9443h-99.8516c-24.1494 0 -44.7998 20.2002 -44.7998 43.8252c0 23.2832 21.3496 43.8262 44.7998 43.8262zM440 272
+h48c13.2549 0 24 -10.7451 24 -24v-192c0 -13.2549 -10.7451 -24 -24 -24h-48c-13.2549 0 -24 10.7451 -24 24v192c0 13.2549 10.7451 24 24 24zM464 60c11.0459 0 20 8.9541 20 20s-8.9541 20 -20 20s-20 -8.9541 -20 -20s8.9541 -20 20 -20z" />
+ <glyph glyph-name="hand-point-up" unicode="" horiz-adv-x="384"
+d="M135.652 448c23.625 0 43.8252 -20.6504 43.8252 -44.7998v-99.8516c17.0488 16.3408 49.7666 18.3467 70.9443 -6.29883c22.8291 14.2881 53.0176 2.14746 62.3154 -16.4502c49.1406 8.97461 71.2627 -21.9453 71.2627 -72.5996
+c0 -2.74609 -0.203125 -13.2764 -0.195312 -16c0.167969 -61.9707 -31.0645 -76.8936 -38.3145 -123.731c-1.80762 -11.6729 -11.8916 -20.2686 -23.7041 -20.2686h-171.525l-0.000976562 0.00195312c-18.3662 0.0107422 -35.8887 10.6074 -43.8447 28.4639
+c-12.9941 28.8857 -49.0381 95.4121 -77.3232 107.534c-18.1943 7.79688 -29.084 21.3838 -29.0918 40c-0.0136719 34.2217 35.0977 57.752 66.9082 44.1191c8.3584 -3.58301 16.6699 -8.3125 24.918 -14.1533v149.234c0 23.4502 20.543 44.7998 43.8262 44.7998zM136 32
+h192c13.2549 0 24 -10.7451 24 -24v-48c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24v48c0 13.2549 10.7451 24 24 24zM304 4c-11.0459 0 -20 -8.9541 -20 -20s8.9541 -20 20 -20s20 8.9541 20 20s-8.9541 20 -20 20z" />
+ <glyph glyph-name="hand-point-down" unicode="" horiz-adv-x="384"
+d="M91.8262 -19.2002v149.234c-8.24805 -5.84082 -16.5586 -10.5703 -24.918 -14.1533c-31.8105 -13.6328 -66.9219 9.89746 -66.9082 44.1191c0.0078125 18.6162 10.8975 32.2031 29.0918 40c28.2861 12.1221 64.3291 78.6484 77.3232 107.534
+c7.95605 17.8564 25.4785 28.4531 43.8447 28.4639l0.000976562 0.00195312h171.526c11.8115 0 21.8965 -8.5957 23.7031 -20.2686c7.25 -46.8379 38.4824 -61.7607 38.3145 -123.731c-0.00683594 -2.72363 0.195312 -13.2539 0.195312 -16
+c0 -50.6543 -22.1221 -81.5742 -71.2627 -72.5996c-9.29688 -18.5977 -39.4863 -30.7383 -62.3154 -16.4502c-21.1768 -24.6455 -53.8955 -22.6396 -70.9443 -6.29883v-99.8516c0 -24.1494 -20.2002 -44.7998 -43.8252 -44.7998
+c-23.2832 0 -43.8262 21.3496 -43.8262 44.7998zM112 376v48c0 13.2549 10.7451 24 24 24h192c13.2549 0 24 -10.7451 24 -24v-48c0 -13.2549 -10.7451 -24 -24 -24h-192c-13.2549 0 -24 10.7451 -24 24zM324 400c0 11.0459 -8.9541 20 -20 20s-20 -8.9541 -20 -20
+s8.9541 -20 20 -20s20 8.9541 20 20z" />
+ <glyph glyph-name="arrow-circle-left" unicode=""
+d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM284.9 87.5996l-75.5 72.4004h182.6c13.2998 0 24 10.7002 24 24v16c0 13.2998 -10.7002 24 -24 24h-182.6l75.5 72.4004c9.69922 9.2998 9.89941 24.7998 0.399414 34.2998
+l-11 10.8994c-9.39941 9.40039 -24.5996 9.40039 -33.8994 0l-132.7 -132.6c-9.40039 -9.40039 -9.40039 -24.5996 0 -33.9004l132.7 -132.699c9.39941 -9.40039 24.5996 -9.40039 33.8994 0l11 10.8994c9.5 9.5 9.2998 25 -0.399414 34.2998z" />
+ <glyph glyph-name="arrow-circle-right" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM227.1 296.4l75.5 -72.4004h-182.6c-13.2998 0 -24 -10.7002 -24 -24v-16c0 -13.2998 10.7002 -24 24 -24h182.6l-75.5 -72.4004
+c-9.69922 -9.2998 -9.89941 -24.7998 -0.399414 -34.2998l11 -10.8994c9.39941 -9.40039 24.5996 -9.40039 33.8994 0l132.7 132.6c9.40039 9.40039 9.40039 24.5996 0 33.9004l-132.7 132.8c-9.39941 9.39941 -24.5996 9.39941 -33.8994 0l-11 -10.9004
+c-9.5 -9.59961 -9.2998 -25.0996 0.399414 -34.3994z" />
+ <glyph glyph-name="arrow-circle-up" unicode=""
+d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM151.6 163.1l72.4004 75.5v-182.6c0 -13.2998 10.7002 -24 24 -24h16c13.2998 0 24 10.7002 24 24v182.6l72.4004 -75.5c9.2998 -9.69922 24.7998 -9.89941 34.2998 -0.399414
+l10.8994 11c9.40039 9.39941 9.40039 24.5996 0 33.8994l-132.6 132.7c-9.40039 9.40039 -24.5996 9.40039 -33.9004 0l-132.8 -132.7c-9.39941 -9.39941 -9.39941 -24.5996 0 -33.8994l10.9004 -11c9.59961 -9.5 25.0996 -9.2998 34.3994 0.399414z" />
+ <glyph glyph-name="arrow-circle-down" unicode=""
+d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM360.4 220.9l-72.4004 -75.5v182.6c0 13.2998 -10.7002 24 -24 24h-16c-13.2998 0 -24 -10.7002 -24 -24v-182.6l-72.4004 75.5
+c-9.2998 9.69922 -24.7998 9.89941 -34.2998 0.399414l-10.8994 -11c-9.40039 -9.39941 -9.40039 -24.5996 0 -33.8994l132.6 -132.7c9.40039 -9.40039 24.5996 -9.40039 33.9004 0l132.699 132.7c9.40039 9.39941 9.40039 24.5996 0 33.8994l-10.8994 11
+c-9.5 9.5 -25 9.2998 -34.2998 -0.399414z" />
+ <glyph glyph-name="globe" unicode="" horiz-adv-x="496"
+d="M336.5 288h-177c14.5 89.2998 48.7002 152 88.5 152s74 -62.7002 88.5 -152zM152 192c0 22.2002 1.2002 43.5 3.2998 64h185.3c2.10059 -20.5 3.30078 -41.7998 3.30078 -64s-1.2002 -43.5 -3.30078 -64h-185.3c-2.09961 20.5 -3.2998 41.7998 -3.2998 64zM476.7 288
+h-108c-8.7998 56.9004 -25.6006 107.8 -50 141.6c71.5 -21.1992 129.399 -73.6992 158 -141.6zM177.2 429.6c-24.4004 -33.7998 -41.2002 -84.6992 -49.9004 -141.6h-108c28.5 67.9004 86.5 120.4 157.9 141.6zM487.4 256c5.39941 -20.5 8.5 -41.7998 8.5 -64
+s-3.10059 -43.5 -8.60059 -64h-114.6c2.09961 21 3.2998 42.5 3.2998 64s-1.2002 43 -3.2998 64h114.7zM120 192c0 -21.5 1.2002 -43 3.2002 -64h-114.601c-5.39941 20.5 -8.59961 41.7998 -8.59961 64s3.2002 43.5 8.59961 64h114.7
+c-2.09961 -21 -3.2998 -42.5 -3.2998 -64zM159.5 96h177c-14.5 -89.2998 -48.7002 -152 -88.5 -152s-74 62.7002 -88.5 152zM318.8 -45.5996c24.4004 33.7998 41.2002 84.6992 50 141.6h108c-28.5996 -67.9004 -86.5996 -120.4 -158 -141.6zM19.2998 96h108
+c8.7998 -56.9004 25.6006 -107.8 50 -141.6c-71.5 21.1992 -129.399 73.6992 -158 141.6z" />
+ <glyph glyph-name="wrench" unicode=""
+d="M507.73 338.9c11.7891 -47.4102 -0.84082 -99.6602 -37.9102 -136.73c-39.9004 -39.9004 -97.25 -50.9297 -147.37 -34.2197l-213.21 -213.21c-24.9902 -24.9902 -65.5098 -24.9902 -90.5 0s-24.9902 65.5098 0 90.5l213.39 213.39
+c-16.5 50.1006 -5.58984 107.561 34.0498 147.2c37.0303 37.0195 89.2002 49.6699 136.58 37.9297c9.08984 -2.25977 12.2803 -13.54 5.66016 -20.1602l-74.3604 -74.3594l11.3105 -67.8799l67.8799 -11.3105l74.3604 74.3604
+c6.58008 6.58008 17.8799 3.51953 20.1201 -5.50977zM64 -24c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
+ <glyph glyph-name="tasks" unicode=""
+d="M139.61 412.5l17 -16.5c1.90234 -1.94531 3.44727 -5.7334 3.44727 -8.4541c0 -2.7627 -1.58496 -6.5918 -3.53809 -8.5459l-72.1992 -72.1904l-15.5898 -15.6191c-2.04297 -1.94238 -5.9873 -3.51758 -8.80566 -3.51758c-2.81738 0 -6.7627 1.5752 -8.80469 3.51758
+l-47.5898 47.3994c-1.94824 1.94141 -3.5293 5.75 -3.5293 8.5c0 2.75098 1.58105 6.55859 3.5293 8.5l15.7002 15.7197c1.94141 1.94824 5.74902 3.53027 8.5 3.53027c2.75 0 6.55762 -1.58203 8.5 -3.53027l22.6992 -22.1191l63.6807 63.3096
+c1.94141 1.94824 5.74902 3.5293 8.5 3.5293c2.75 0 6.55859 -1.58105 8.5 -3.5293zM139.61 253.31l16.9795 -17c1.89648 -1.93164 3.43457 -5.69727 3.43457 -8.4043c0 -2.74805 -1.5791 -6.55371 -3.52441 -8.49512l-72.2002 -72.2197l-15.7002 -15.6904
+c-2.04102 -1.94141 -5.9834 -3.5166 -8.7998 -3.5166s-6.75879 1.5752 -8.7998 3.5166l-47.4697 47.5c-1.94824 1.94141 -3.5293 5.74902 -3.5293 8.5s1.58105 6.55859 3.5293 8.5l15.7002 15.6904c1.94141 1.94824 5.74902 3.5293 8.5 3.5293
+c2.75 0 6.55762 -1.58105 8.5 -3.5293l22.6992 -22.1006l63.6807 63.7197c1.94141 1.94824 5.74902 3.53027 8.5 3.53027c2.75 0 6.55859 -1.58203 8.5 -3.53027zM64 80c26.4961 0 48 -21.5039 48 -48s-21.5039 -48 -48 -48c-26.4697 0 -48.5898 21.5 -48.5898 48
+s22.0996 48 48.5898 48zM496 64c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-288c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h288zM496 384c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-288
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h288zM496 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-288c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h288z" />
+ <glyph glyph-name="filter" unicode=""
+d="M487.976 448c21.3623 0 32.0459 -25.8965 16.9717 -40.9707l-184.947 -184.971v-262.039c0 -19.5127 -21.9805 -30.71 -37.7627 -19.6611l-80 55.9795c-6.41602 4.49219 -10.2373 11.8311 -10.2373 19.6621v206.059l-184.942 184.971
+c-15.1045 15.1045 -4.34766 40.9707 16.9707 40.9707h463.947z" />
+ <glyph glyph-name="briefcase" unicode=""
+d="M320 112v48h192v-144c0 -25.5996 -22.4004 -48 -48 -48h-416c-25.5996 0 -48 22.4004 -48 48v144h192v-48c0 -8.83984 7.16016 -16 16 -16h96c8.83984 0 16 7.16016 16 16zM464 320c25.5996 0 48 -22.4004 48 -48v-80h-512v80c0 25.5996 22.4004 48 48 48h80v48
+c0 25.5996 22.4004 48 48 48h160c25.5996 0 48 -22.4004 48 -48v-48h80zM320 320v32h-128v-32h128z" />
+ <glyph glyph-name="arrows-alt" unicode=""
+d="M352.201 22.2246l-79.1963 -79.1953c-9.37305 -9.37305 -24.5684 -9.37305 -33.9404 0l-79.1963 79.1953c-15.1191 15.1191 -4.41113 40.9717 16.9707 40.9707h51.1621l-0.000976562 100.805h-100.804v-51.1621c0 -21.3818 -25.8516 -32.0898 -40.9717 -16.9707
+l-79.1953 79.1963c-9.37305 9.37207 -9.37305 24.5684 0 33.9404l79.1953 79.1963c15.1191 15.1191 40.9717 4.41113 40.9717 -16.9717v-51.2285h100.804v100.804h-51.2305c-21.3818 0 -32.0898 25.8516 -16.9707 40.9717l79.1963 79.1953
+c9.37305 9.37305 24.5684 9.37305 33.9404 0l79.1963 -79.1953c15.1191 -15.1191 4.41113 -40.9717 -16.9707 -40.9717h-51.1621v-100.804h100.804v51.1621c0 21.3818 25.8516 32.0898 40.9707 16.9707l79.1953 -79.1963c9.37305 -9.37207 9.37305 -24.5684 0 -33.9404
+l-79.1953 -79.1963c-15.1191 -15.1191 -40.9717 -4.41113 -40.9707 16.9717v51.2285h-100.803v-100.804h51.2305c21.3818 0 32.0898 -25.8516 16.9707 -40.9717z" />
+ <glyph glyph-name="users" unicode="" horiz-adv-x="640"
+d="M96 224c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM544 224c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM576 192c35.2998 0 64 -28.7002 64 -64v-32
+c0 -17.7002 -14.2998 -32 -32 -32h-66c-6.2002 47.4004 -34.7998 87.2998 -75.0996 109.4c11.5996 11.5 27.5 18.5996 45.0996 18.5996h64zM320 192c-61.9004 0 -112 50.0996 -112 112s50.0996 112 112 112s112 -50.0996 112 -112s-50.0996 -112 -112 -112zM396.8 160
+c63.6006 0 115.2 -51.5996 115.2 -115.2v-28.7998c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v28.7998c0 63.6006 51.5996 115.2 115.2 115.2h8.2998c20.9004 -10 43.9004 -16 68.5 -16s47.7002 6 68.5 16h8.2998zM173.1 173.4
+c-40.2998 -22.1006 -68.8994 -62 -75.1992 -109.4h-65.9004c-17.7002 0 -32 14.2998 -32 32v32c0 35.2998 28.7002 64 64 64h64c17.5996 0 33.5 -7.09961 45.0996 -18.5996z" />
+ <glyph glyph-name="link" unicode=""
+d="M326.612 262.609c59.7471 -59.8096 58.9268 -155.698 0.359375 -214.591c-0.109375 -0.119141 -0.239258 -0.25 -0.359375 -0.369141l-67.2002 -67.2002c-59.2705 -59.2705 -155.699 -59.2627 -214.96 0c-59.2705 59.2598 -59.2705 155.7 0 214.96l37.1055 37.1055
+c9.84082 9.84082 26.7861 3.30078 27.2939 -10.6055c0.648438 -17.7227 3.82617 -35.5273 9.69043 -52.7207c1.98633 -5.82227 0.567383 -12.2627 -3.7832 -16.6123l-13.0869 -13.0869c-28.0254 -28.0264 -28.9053 -73.6602 -1.15527 -101.96
+c28.0244 -28.5791 74.0859 -28.749 102.325 -0.510742l67.2002 67.1904c28.1914 28.1914 28.0732 73.7568 0 101.83c-3.70117 3.69434 -7.42871 6.56348 -10.3408 8.56934c-3.66504 2.51562 -6.77734 8.16309 -6.94727 12.6055
+c-0.395508 10.5674 3.34766 21.4561 11.6982 29.8057l21.0537 21.0557c5.52148 5.52051 14.1826 6.19922 20.584 1.73047c6.08301 -4.24707 15.2764 -11.9512 20.5225 -17.1963zM467.547 403.551c59.2705 -59.2598 59.2705 -155.7 -0.000976562 -214.959l-37.1055 -37.1055
+c-9.84082 -9.83984 -26.7852 -3.30078 -27.2939 10.6055c-0.648438 17.7227 -3.82617 35.5273 -9.69043 52.7217c-1.98633 5.82129 -0.567383 12.2617 3.7832 16.6113l13.0869 13.0869c28.0264 28.0264 28.9053 73.6602 1.15527 101.96
+c-28.0254 28.5791 -74.0869 28.749 -102.325 0.510742l-67.2002 -67.1904c-28.1914 -28.1914 -28.0732 -73.7568 0 -101.83c3.70117 -3.69434 7.42871 -6.56348 10.3408 -8.56934c3.66504 -2.51562 6.77734 -8.16309 6.94727 -12.6055
+c0.395508 -10.5674 -3.34766 -21.4561 -11.6982 -29.8057l-21.0537 -21.0557c-5.52051 -5.51953 -14.1826 -6.19922 -20.584 -1.73047c-6.08203 4.24609 -15.2754 11.9502 -20.5215 17.1953c-59.7471 59.8096 -58.9258 155.698 -0.359375 214.591
+c0.109375 0.119141 0.239258 0.25 0.359375 0.369141l67.2002 67.2002c59.2705 59.2705 155.699 59.2627 214.96 0z" />
+ <glyph glyph-name="cloud" unicode="" horiz-adv-x="640"
+d="M537.6 221.4c58.4004 -11.8008 102.4 -63.5 102.4 -125.4c0 -70.7002 -57.2998 -128 -128 -128h-368c-79.5 0 -144 64.5 -144 144c0 62.7998 40.2002 116.2 96.2002 135.9c-0.100586 2.69922 -0.200195 5.39941 -0.200195 8.09961c0 88.4004 71.5996 160 160 160
+c59.2998 0 111 -32.2002 138.7 -80.2002c15.2002 10.2002 33.5996 16.2002 53.2998 16.2002c53 0 96 -43 96 -96c0 -12.2002 -2.2998 -23.9004 -6.40039 -34.5996z" />
+ <glyph glyph-name="flask" unicode="" horiz-adv-x="448"
+d="M437.2 44.5c29.2998 -47 -4.40039 -108.5 -60.1006 -108.5h-306.199c-55.6006 0 -89.4004 61.4004 -60.1006 108.5l117.2 188.5v151h-8c-13.2998 0 -24 10.7002 -24 24v16c0 13.2998 10.7002 24 24 24h208c13.2998 0 24 -10.7002 24 -24v-16
+c0 -13.2998 -10.7002 -24 -24 -24h-8v-151zM137.9 128h172l-48.2002 77.5996c-3.60059 5.2002 -5.7998 11.5 -5.7998 18.4004v160h-64v-160c0 -6.7998 -2.10059 -13.2002 -5.80078 -18.4004z" />
+ <glyph glyph-name="cut" unicode="" horiz-adv-x="448"
+d="M278.06 192l166.421 -166.43c4.68945 -4.69043 4.68945 -12.29 0 -16.9707c-32.8008 -32.7998 -85.9902 -32.7998 -118.79 0l-115.511 115.521l-24.8594 -24.8604c4.30957 -10.9199 6.67969 -22.8096 6.67969 -35.2598c0 -53.0195 -42.9805 -96 -96 -96
+s-96 42.9805 -96 96s42.9805 96 96 96c4.53027 0 8.99023 -0.320312 13.3604 -0.929688l32.9297 32.9297l-32.9297 32.9297c-4.37012 -0.609375 -8.82031 -0.929688 -13.3604 -0.929688c-53.0195 0 -96 42.9805 -96 96s42.9805 96 96 96s96 -42.9805 96 -96
+c0 -12.4502 -2.37012 -24.3398 -6.67969 -35.2598l24.8594 -24.8604l115.511 115.521c32.7998 32.7998 85.9893 32.7998 118.79 0c4.68945 -4.68066 4.68945 -12.2803 0 -16.9707zM96 288c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32s-32 -14.3604 -32 -32
+s14.3604 -32 32 -32zM96 32c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32s-32 -14.3604 -32 -32s14.3604 -32 32 -32z" />
+ <glyph glyph-name="copy" unicode="" horiz-adv-x="448"
+d="M320 0v-40c0 -13.2549 -10.7451 -24 -24 -24h-272c-13.2549 0 -24 10.7451 -24 24v368c0 13.2549 10.7451 24 24 24h72v-296c0 -30.8789 25.1211 -56 56 -56h168zM320 344c0 -13.2002 10.7998 -24 24 -24h104v-264c0 -13.2549 -10.7451 -24 -24 -24h-272
+c-13.2549 0 -24 10.7451 -24 24v368c0 13.2549 10.7451 24 24 24h168v-104zM440.971 375.029c3.87988 -3.88086 7.0293 -11.4834 7.0293 -16.9707v-6.05859h-96v96h6.05859c5.4873 0 13.0898 -3.14941 16.9707 -7.0293z" />
+ <glyph glyph-name="paperclip" unicode="" horiz-adv-x="448"
+d="M43.2461 -18.1416c-58.4297 60.2891 -57.3408 157.511 1.38574 217.581l209.76 214.561c44.3164 45.332 116.352 45.3359 160.672 0c43.8896 -44.8936 43.9424 -117.329 0 -162.276l-182.85 -186.852c-29.8545 -30.5371 -78.6328 -30.1113 -107.981 0.998047
+c-28.2754 29.9697 -27.3682 77.4727 1.45117 106.953l143.743 146.835c6.18262 6.31348 16.3125 6.42188 22.626 0.241211l22.8613 -22.3799c6.31445 -6.18164 6.42188 -16.3115 0.241211 -22.626l-143.729 -146.82c-4.93164 -5.04492 -5.23535 -13.4287 -0.647461 -18.292
+c4.37207 -4.63379 11.2451 -4.71094 15.6875 -0.165039l182.85 186.851c19.6123 20.0625 19.6123 52.7256 -0.0117188 72.7979c-19.1885 19.627 -49.957 19.6377 -69.1533 0l-209.762 -214.56c-34.7627 -35.5605 -35.2988 -93.1201 -1.19043 -128.313
+c34.0098 -35.0928 88.9844 -35.1367 123.058 -0.285156l172.061 175.999c6.17676 6.31836 16.3066 6.43262 22.626 0.255859l22.877 -22.3643c6.31836 -6.17676 6.43359 -16.3066 0.255859 -22.626l-172.061 -175.998c-59.5752 -60.9385 -155.942 -60.2158 -214.77 0.485352
+z" />
+ <glyph glyph-name="save" unicode="" horiz-adv-x="448"
+d="M433.941 318.059c7.75977 -7.75977 14.0586 -22.9658 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h268.118c10.9746 0 26.1807 -6.29883 33.9404 -14.0586zM224 32
+c35.3457 0 64 28.6543 64 64s-28.6543 64 -64 64s-64 -28.6543 -64 -64s28.6543 -64 64 -64zM320 336.52c0 2.74316 -1.5752 6.5459 -3.51465 8.48535l-3.48047 3.48047c-2.25 2.25098 -5.30176 3.51465 -8.48535 3.51465h-228.52c-6.62695 0 -12 -5.37305 -12 -12v-104
+c0 -6.62695 5.37305 -12 12 -12h232c6.62695 0 12 5.37305 12 12v100.52z" />
+ <glyph glyph-name="square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352z" />
+ <glyph glyph-name="bars" unicode="" horiz-adv-x="448"
+d="M16 316c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40c0 -8.83691 -7.16309 -16 -16 -16h-416zM16 156c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40
+c0 -8.83691 -7.16309 -16 -16 -16h-416zM16 -4c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40c0 -8.83691 -7.16309 -16 -16 -16h-416z" />
+ <glyph glyph-name="list-ul" unicode=""
+d="M48 400c26.4961 0 48 -21.5039 48 -48s-21.5039 -48 -48 -48s-48 21.5039 -48 48s21.5039 48 48 48zM48 240c26.4961 0 48 -21.5039 48 -48s-21.5039 -48 -48 -48s-48 21.5039 -48 48s21.5039 48 48 48zM48 80c26.4961 0 48 -21.5039 48 -48s-21.5039 -48 -48 -48
+s-48 21.5039 -48 48s21.5039 48 48 48zM496 64c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM496 384c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16
+h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM496 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320z" />
+ <glyph glyph-name="list-ol" unicode=""
+d="M61.7695 47c19.6104 -5.12012 28.7002 -20.5 28.7305 -34.8799c0 -21.3701 -14.3398 -44.1201 -48.5 -44.1201c-16.6201 0 -29.29 4.75 -37 9.44043c-5.82031 4.21973 -6.34961 9.80957 -2.62988 15.9395l5.58984 9.31055c3.86035 6.61914 9.11035 7 15.5996 3.11914
+c4.10352 -1.68652 11.0342 -3.08496 15.4707 -3.11914c10.1602 0 14.3594 3.5 14.3594 8.21973c0 6.64941 -5.60938 9.08984 -15.9395 9.08984h-4.73047c-5.95996 0 -9.25 2.12012 -12.25 7.87988l-1.0498 1.92969c-2.4502 4.75 -1.2002 9.81055 2.7998 14.8809l5.61035 7
+c2.85742 3.55664 7.78516 9.07129 11 12.3096h-22.8301c-4.41602 0 -8 3.58398 -8 8v16c0 4.41602 3.58398 8 8 8h57c7.5 0 11.3398 -4 11.3398 -11.3496v-3.31055c0.0107422 -0.245117 0.0205078 -0.644531 0.0205078 -0.890625
+c0 -4.20801 -2.28027 -10.166 -5.09082 -13.2988zM496 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM496 384c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM496 64c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-320c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h320zM16 288
+c-4.41602 0 -8 3.58398 -8 8v16c0 4.41602 3.58398 8 8 8h16v64h-8c-4.4082 0.0078125 -7.98535 3.5918 -7.98535 8c0 1.04297 0.378906 2.64746 0.845703 3.58008l8 16c1.21777 2.43457 4.41699 4.41504 7.13965 4.41992h24c4.41602 0 8 -3.58398 8 -8v-88h16
+c4.41602 0 8 -3.58398 8 -8v-16c0 -4.41602 -3.58398 -8 -8 -8h-64zM12.0898 128c-7.00977 0 -12.0898 4 -12.0898 11.4102v4c0 47.2803 51 56.3994 50.9697 69.1201c0 7.18945 -5.9502 8.75 -9.2793 8.75h-0.0546875c-3.02832 0 -7.24219 -1.7207 -9.40527 -3.83984
+c-5.12012 -4.91016 -10.5107 -7 -16.1201 -2.44043l-8.58008 6.87988c-5.7998 4.53027 -7.16992 9.78027 -2.7998 15.3701c6.65918 8.75 19.0996 18.75 40.46 18.75c19.4697 0 44.4697 -10.5 44.4697 -39.5596c0 -37.7607 -45.0498 -46.1504 -48.3398 -56.4404h38.6797
+c4.41602 0 8 -3.58398 8 -8v-16c0 -4.41602 -3.58398 -8 -8 -8h-67.9102z" />
+ <glyph glyph-name="strikethrough" unicode=""
+d="M496 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-480c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h102.29c-11.6797 16.5303 -19.7803 35.4697 -21.7803 56.3604c-0.319336 3.29297 -0.579102 8.65137 -0.579102 11.96
+c0 68.2158 55.3633 123.624 123.579 123.68h68h0.0117188c43.6865 0 94.9863 -31.7188 114.509 -70.7998l0.529297 -1c0.930664 -1.86328 1.68652 -5.06641 1.68652 -7.14844c0 -5.45898 -3.96289 -11.8711 -8.8457 -14.3115l-42.9404 -21.4707
+c-1.86426 -0.931641 -5.06836 -1.6875 -7.15234 -1.6875c-5.45605 0 -11.8652 3.95996 -14.3076 8.83789c-7.61133 15.2246 -27.6025 27.5801 -44.624 27.5801h-0.0361328h-66.79c-24.0391 -0.000976562 -43.5488 -19.5107 -43.5488 -43.5498
+c0 -17.749 13.7666 -36.3945 30.7295 -41.6201l87.1699 -26.8301h202.1zM315.76 128h94.3906c2.21191 -6.56152 4.60352 -17.4746 5.33984 -24.3604c0.319336 -3.29297 0.579102 -8.65137 0.579102 -11.96c0 -68.2158 -55.3633 -123.624 -123.579 -123.68h-68h-0.0117188
+c-43.6865 0 -94.9863 31.7188 -114.509 70.7998l-0.529297 1c-0.930664 1.86328 -1.68652 5.06641 -1.68652 7.14844c0 5.45898 3.96289 11.8711 8.8457 14.3115l42.9404 21.4707c1.86426 0.931641 5.06836 1.6875 7.15234 1.6875
+c5.45605 0 11.8652 -3.95996 14.3076 -8.83789c7.61133 -15.2246 27.6025 -27.5801 44.624 -27.5801h0.0361328h66.79c24.0176 0.0224609 43.5273 19.5322 43.5498 43.5498c-0.00976562 13.1572 -9.07715 29.4863 -20.2402 36.4502z" />
+ <glyph glyph-name="underline" unicode="" horiz-adv-x="448"
+d="M32 384c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h144c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32v-160c0 -44.1602 35.8398 -80 80 -80s80 35.8398 80 80v160h-32c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h144c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32v-160c0 -88.2197 -71.7803 -160 -160 -160s-160 71.7803 -160 160v160h-32zM432 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h416z" />
+ <glyph glyph-name="table" unicode=""
+d="M464 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416zM224 32v96h-160v-96h160zM224 192v96h-160v-96h160zM448 32v96h-160v-96h160zM448 192v96h-160v-96h160z" />
+ <glyph glyph-name="magic" unicode=""
+d="M224 352l-16 32l-32 16l32 16l16 32l16 -32l32 -16l-32 -16zM80 288l-26.6602 53.3301l-53.3398 26.6699l53.3398 26.6699l26.6602 53.3301l26.6602 -53.3301l53.3398 -26.6699l-53.3398 -26.6699zM432 160l26.6602 -53.3301l53.3398 -26.6699l-53.3398 -26.6699
+l-26.6602 -53.3301l-26.6602 53.3301l-53.3398 26.6699l53.3398 26.6699zM502.62 353.77c12.5 -12.4893 12.5 -32.7598 0 -45.2393l-363.14 -363.15c-6.25 -6.25 -14.4404 -9.37012 -22.6309 -9.37012c-8.17969 0 -16.3691 3.12012 -22.6191 9.37012l-84.8506 84.8506
+c-12.5 12.4893 -12.5 32.75 0 45.25l363.14 363.14c6.25 6.25977 14.4404 9.37988 22.6309 9.37988c8.18945 0 16.3799 -3.12012 22.6191 -9.37988zM359.45 244.54l86.5996 86.5996l-50.9102 50.9102l-86.5996 -86.5996z" />
+ <glyph glyph-name="truck" unicode="" horiz-adv-x="640"
+d="M624 96c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48c0 -53 -43 -96 -96 -96s-96 43 -96 96h-128c0 -53 -43 -96 -96 -96s-96 43 -96 96h-16c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48 -21.5 48 -48v-48h44.0996
+c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l99.9004 -99.9004c9 -9 14.0996 -21.2002 14.0996 -33.9004v-108.1h16zM160 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM480 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48
+s21.5 -48 48 -48zM560 192v12.0996l-99.9004 99.9004h-44.0996v-112h144z" />
+ <glyph glyph-name="money-bill" unicode="" horiz-adv-x="640"
+d="M608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM48 48h64c0 35.3496 -28.6504 64 -64 64v-64zM48 272c35.3496 0 64 28.6504 64 64h-64v-64zM320 96
+c44.1699 0 80 42.9697 80 96c0 53.0195 -35.8203 96 -80 96s-80 -42.9805 -80 -96c0 -53.0098 35.8096 -96 80 -96zM592 48v64c-35.3496 0 -64 -28.6504 -64 -64h64zM592 272v64h-64c0 -35.3496 28.6504 -64 64 -64z" />
+ <glyph glyph-name="caret-down" unicode="" horiz-adv-x="320"
+d="M31.2998 256h257.3c17.8008 0 26.7002 -21.5 14.1006 -34.0996l-128.601 -128.7c-7.7998 -7.7998 -20.5 -7.7998 -28.2998 0l-128.6 128.7c-12.6006 12.5996 -3.7002 34.0996 14.0996 34.0996z" />
+ <glyph glyph-name="caret-up" unicode="" horiz-adv-x="320"
+d="M288.662 96h-257.324c-17.8184 0 -26.7412 21.543 -14.1416 34.1416l128.662 128.662c7.80957 7.81055 20.4736 7.81055 28.2832 0l128.662 -128.662c12.6006 -12.5986 3.67676 -34.1416 -14.1416 -34.1416z" />
+ <glyph glyph-name="caret-left" unicode="" horiz-adv-x="192"
+d="M192 320.662v-257.324c0 -17.8184 -21.543 -26.7412 -34.1416 -14.1416l-128.662 128.662c-7.81055 7.80957 -7.81055 20.4736 0 28.2832l128.662 128.662c12.5986 12.6006 34.1416 3.67676 34.1416 -14.1416z" />
+ <glyph glyph-name="caret-right" unicode="" horiz-adv-x="192"
+d="M0 63.3379v257.324c0 17.8184 21.543 26.7412 34.1416 14.1416l128.662 -128.662c7.81055 -7.80957 7.81055 -20.4736 0 -28.2832l-128.662 -128.662c-12.5986 -12.6006 -34.1416 -3.67676 -34.1416 14.1416z" />
+ <glyph glyph-name="columns" unicode=""
+d="M464 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h416zM224 32v256h-160v-256h160zM448 32v256h-160v-256h160z" />
+ <glyph glyph-name="sort" unicode="" horiz-adv-x="320"
+d="M41 160h238c21.4004 0 32.0996 -25.9004 17 -41l-119 -119c-9.40039 -9.40039 -24.5996 -9.40039 -33.9004 0l-119.1 119c-15.0996 15.0996 -4.40039 41 17 41zM296 265c15.0996 -15.0996 4.40039 -41 -17 -41h-238c-21.4004 0 -32.0996 25.9004 -17 41l119.1 119
+c9.30078 9.40039 24.5 9.40039 33.9004 0z" />
+ <glyph glyph-name="sort-down" unicode="" horiz-adv-x="320"
+d="M41 160h238c21.4004 0 32.0996 -25.9004 17 -41l-119 -119c-9.40039 -9.40039 -24.5996 -9.40039 -33.9004 0l-119.1 119c-15.0996 15.0996 -4.40039 41 17 41z" />
+ <glyph glyph-name="sort-up" unicode="" horiz-adv-x="320"
+d="M279 224h-238c-21.4004 0 -32.0996 25.9004 -17 41l119 119c9.40039 9.40039 24.5996 9.40039 33.9004 0l119 -119c15.1992 -15.0996 4.5 -41 -16.9004 -41z" />
+ <glyph glyph-name="envelope" unicode=""
+d="M502.3 257.2c3.90039 3.09961 9.7002 0.200195 9.7002 -4.7002v-204.5c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v204.4c0 5 5.7002 7.7998 9.7002 4.69922c22.3994 -17.3994 52.0996 -39.5 154.1 -113.6
+c21.1006 -15.4004 56.7002 -47.7998 92.2002 -47.5996c35.7002 -0.300781 72 32.7998 92.2998 47.5996c102 74.0996 131.601 96.2998 154 113.7zM256 128c-23.2002 -0.400391 -56.5996 29.2002 -73.4004 41.4004c-132.699 96.2998 -142.8 104.8 -173.399 128.699
+c-5.7998 4.60059 -9.2002 11.5 -9.2002 18.9004v19c0 26.5 21.5 48 48 48h416c26.5 0 48 -21.5 48 -48v-19c0 -7.40039 -3.40039 -14.4004 -9.2002 -18.9004c-30.5996 -24 -40.7002 -32.3994 -173.399 -128.699c-16.8008 -12.2002 -50.2002 -41.8008 -73.4004 -41.4004z" />
+ <glyph glyph-name="undo" unicode=""
+d="M212.333 223.667h-200.333c-6.62695 0 -12 5.37305 -12 12v200.333c0 6.62695 5.37305 12 12 12h48c6.62695 0 12 -5.37305 12 -12v-78.1123c45.7734 50.833 112.26 82.6426 186.175 82.1055c136.906 -0.994141 246.448 -111.623 246.157 -248.532
+c-0.291016 -136.719 -111.212 -247.461 -247.999 -247.461c-64.0889 0 -122.496 24.3135 -166.51 64.2148c-5.09961 4.62207 -5.33398 12.5537 -0.466797 17.4199l33.9668 33.9668c4.47363 4.47461 11.6621 4.71777 16.4004 0.525391
+c31.0361 -27.4629 71.8564 -44.127 116.609 -44.127c97.2676 0 176 78.7158 176 176c0 97.2666 -78.7158 176 -176 176c-58.4961 0 -110.28 -28.4756 -142.274 -72.333h98.2744c6.62695 0 12 -5.37305 12 -12v-48c0 -6.62695 -5.37305 -12 -12 -12z" />
+ <glyph glyph-name="gavel" unicode=""
+d="M504.971 248.638c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-124.451 -124.451c-9.37109 -9.37305 -24.5674 -9.37305 -33.9404 0l-22.627 22.627c-9.37305 9.37207 -9.37305 24.5684 0 33.9414l5.65723 5.65625l-39.5986 39.5986l-81.04 -81.04l5.65723 -5.65723
+c12.4971 -12.4971 12.4971 -32.7578 0 -45.2549l-114.745 -114.745c-12.4971 -12.4971 -32.7578 -12.4971 -45.2549 0l-45.2549 45.2549c-12.4971 12.4971 -12.4971 32.7578 0 45.2549l114.744 114.746c12.4971 12.4971 32.7578 12.4971 45.2549 0l5.65723 -5.65723
+l81.04 81.04l-39.5986 39.5986l-5.65625 -5.65723c-9.37207 -9.37305 -24.5684 -9.37305 -33.9414 0l-22.627 22.627c-9.37305 9.37207 -9.37305 24.5684 0 33.9404l124.451 124.451c9.37207 9.37305 24.5674 9.37305 33.9404 0l22.627 -22.6279
+c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-5.65625 -5.65723l113.138 -113.137l5.65723 5.65625c9.37207 9.37305 24.5674 9.37305 33.9404 0z" />
+ <glyph glyph-name="bolt" unicode="" horiz-adv-x="320"
+d="M296 288c18.5 0 30 -20.0996 20.7002 -36l-176 -304c-4.40039 -7.59961 -12.4004 -12 -20.7998 -12c-15.3008 0 -26.9004 14.2998 -23.3008 29.5l46.1006 194.5h-118.7c-14.5 0 -25.7002 12.7998 -23.7998 27.2002l32 240
+c1.59961 11.8994 11.7998 20.7998 23.7998 20.7998h144c15.7002 0 27.2002 -15 23.2002 -30.2002l-42.6006 -129.8h115.4z" />
+ <glyph glyph-name="sitemap" unicode="" horiz-adv-x="640"
+d="M128 96c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM104 176v-48h-48v57.5898c0 21.1797 17.2305 38.4102 38.4102 38.4102h201.59v64h-40c-17.6699 0 -32 14.3301 -32 32
+v96c0 17.6699 14.3301 32 32 32h128c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-40v-64h201.59c21.1797 0 38.4102 -17.2402 38.4102 -38.4102v-57.5898h-48v48h-192v-48h-48v48h-192zM368 96c17.6699 0 32 -14.3301 32 -32v-96
+c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM608 96c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96z" />
+ <glyph glyph-name="umbrella" unicode="" horiz-adv-x="576"
+d="M575.7 167.2c2.2002 -10.1006 -8.40039 -21.4004 -18.7002 -11.4004c-51.5 54.4004 -107.6 52.5 -158.6 -37c-5.30078 -9.5 -14.9004 -8.59961 -19.7002 0c-2.5 4.40039 -32.2002 73.2002 -90.7002 73.2002c-45.7998 0 -70.5 -37.7998 -90.7002 -73.2002
+c-4.7998 -8.59961 -14.3994 -9.5 -19.7002 0c-50.8994 89.4004 -106.6 92 -158.6 37c-10.2002 -9.89941 -20.9004 1.2998 -18.7002 11.4004c29.2002 136.3 138 218.2 255.7 230.899v17.9004c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32v-17.9004
+c117.3 -12.6992 227.1 -94.5996 255.7 -230.899zM256 146.3c9.59961 8.90039 19.7002 13.6006 32 13.7002c12.2002 0 22.9004 -5.7002 32 -13.5996v-130.301c0 -44.0996 -35.9004 -80 -80 -80c-33.7998 0 -64.2002 21.4004 -75.4004 53.3008
+c-5.89941 16.5996 2.80078 34.8994 19.5 40.7998c16.7002 5.89941 34.9004 -2.7998 40.8008 -19.5c1.89941 -5.40039 7.2998 -10.7002 15.0996 -10.7002c8.7998 0 16 7.2002 16 16v130.3z" />
+ <glyph glyph-name="paste" unicode="" horiz-adv-x="448"
+d="M128 264v-232h-104c-13.2549 0 -24 10.7451 -24 24v336c0 13.2549 10.7451 24 24 24h80.6104c11.084 19.1104 31.7529 32 55.3896 32s44.3057 -12.8896 55.3896 -32h80.6104c13.2549 0 24 -10.7451 24 -24v-72h-136c-30.8779 0 -56 -25.1211 -56 -56zM160 408
+c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM344 160h104v-200c0 -13.2549 -10.7451 -24 -24 -24h-240c-13.2549 0 -24 10.7451 -24 24v304c0 13.2549 10.7451 24 24 24h136v-104c0 -13.2002 10.7998 -24 24 -24z
+M448 198.059v-6.05859h-96v96h6.05859c5.4873 0 13.0898 -3.14941 16.9707 -7.0293l65.9404 -65.9404c3.88086 -3.88086 7.03027 -11.4834 7.03027 -16.9717z" />
+ <glyph glyph-name="lightbulb" unicode="" horiz-adv-x="352"
+d="M96.0596 -6.34961l-0.0498047 38.3496h159.98l-0.0400391 -38.3496c-0.00585938 -5.3291 -2.40723 -13.2549 -5.36035 -17.6904l-17.0898 -25.6904c-5.24023 -7.88184 -17.1748 -14.2793 -26.6396 -14.2793h-61.71c-9.46582 0 -21.4004 6.39746 -26.6406 14.2793
+l-17.0898 25.6904c-3.49023 5.24023 -5.34961 11.4004 -5.36035 17.6904zM0 272c0 93.0303 73.4404 175.69 175.45 176c97.46 0.299805 176.55 -78.6104 176.55 -176c0 -44.3701 -16.4502 -84.8496 -43.5596 -115.78c-16.5205 -18.8496 -42.3604 -58.2295 -52.21 -91.4502
+c-0.0400391 -0.269531 -0.0703125 -0.519531 -0.110352 -0.779297h-160.24c-0.0400391 0.259766 -0.0703125 0.519531 -0.110352 0.779297c-9.84961 33.2207 -35.6895 72.6006 -52.21 91.4502c-27.1094 30.9307 -43.5596 71.4102 -43.5596 115.78zM176 352
+c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16c-61.7598 0 -112 -50.2402 -112 -112c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16c0 44.1104 35.8896 80 80 80z" />
+ <glyph glyph-name="user-md" unicode="" horiz-adv-x="448"
+d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM104 24c0 13.2998 10.7002 24 24 24s24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24zM320 159.4c71.2002 -3.5 128 -61.8008 128 -133.801
+v-44.7998c0 -24.7002 -20.0996 -44.7998 -44.7998 -44.7998h-358.4c-24.7002 0 -44.7998 20.0996 -44.7998 44.7998v44.7998c0 66.6006 48.5 121.4 112.1 132.101v-80.4004c-23.0996 -6.89941 -40 -28.0996 -40 -53.3994c0 -30.9004 25.1006 -56 56 -56
+c30.9004 0 56 25.0996 56 56c0 25.2998 -16.8994 46.5 -40 53.3994v81.6006c7.7002 -1 15.2002 -2.60059 22.6006 -5.2002c18 -6.2998 37.2998 -9.7998 57.3994 -9.7998c20.1006 0 39.4004 3.5 57.4004 9.7998c2.2002 0.799805 4.40039 1.2002 6.59961 1.89941v-45.1992
+c-36.5 -7.5 -64 -39.8008 -64 -78.4004v-43.7998c0 -8.10059 5.90039 -14.7998 13.8008 -15.9004l31.1992 -4.2002c4.30078 -0.799805 8.5 2 9.40039 6.30078l3.09961 15.6992c0.800781 4.30078 -2 8.5 -6.2998 9.40039l-19.2998 3.90039v26.6992
+c0 67 96 64.7002 96 1.90039v-28.5l-19.2998 -3.90039c-4.40039 -0.799805 -7.2002 -5.09961 -6.2998 -9.39941l3.09961 -15.7002c0.900391 -4.40039 5.09961 -7.2002 9.40039 -6.2998l32.1992 6.39941c7.5 1.5 12.9004 8.10059 12.9004 15.7002v41.7002
+c0 38.5996 -27.5 71 -64 78.4004v49z" />
+ <glyph glyph-name="stethoscope" unicode=""
+d="M447.1 336c35.7002 0.5 64.9004 -28.2998 64.9004 -64c0 -23.7002 -12.9004 -44.2998 -32 -55.4004v-112.6c0 -92.5996 -79 -168 -176 -168c-95.4004 0 -173.3 72.7998 -175.9 163.2c-73 14.7998 -128.1 79.5 -128.1 156.8v155.4c0 11.5 8.09961 21.2998 19.2998 23.5996
+l62.7998 12.4004c13 2.59961 25.6006 -5.80078 28.2002 -18.8008l3.10059 -15.6992c2.59961 -13 -5.80078 -25.6006 -18.8008 -28.2002l-30.6992 -6.10059v-122.5c0 -53.2998 43.5 -96.5 96.8994 -96c52.9004 0.5 95.1006 44.3008 95.1006 97.2002v121.4l-30.7002 6.09961
+c-13 2.60059 -21.4004 15.2002 -18.7998 28.2002l3.19922 15.7002c2.60059 13 15.2002 21.3994 28.2002 18.7998l62.9004 -12.5996c11.2002 -2.2002 19.2998 -12.1006 19.2998 -23.5v-155.4c0 -77.2002 -55 -141.8 -127.8 -156.8
+c2.7002 -55.1006 51.8994 -99.2002 111.899 -99.2002c61.8008 0 112 46.7002 112 104v112.6c-19.5 11.2002 -32.5 32.5 -32 56.8008c0.700195 34.1992 28.8008 62.0996 63 62.5996zM448 256c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16
+s7.2002 -16 16 -16z" />
+ <glyph glyph-name="suitcase" unicode=""
+d="M128 -32v400c0 26.5 21.5 48 48 48h160c26.5 0 48 -21.5 48 -48v-400h-256zM192 352v-32h128v32h-128zM512 272v-256c0 -26.5 -21.5 -48 -48 -48h-48v352h48c26.5 0 48 -21.5 48 -48zM96 -32h-48c-26.5 0 -48 21.5 -48 48v256c0 26.5 21.5 48 48 48h48v-352z" />
+ <glyph glyph-name="bell" unicode="" horiz-adv-x="448"
+d="M224 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64zM439.39 85.71c6 -6.44043 8.66016 -14.1602 8.61035 -21.71c-0.0996094 -16.4004 -12.9805 -32 -32.0996 -32h-383.801c-19.1191 0 -31.9893 15.5996 -32.0996 32
+c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c19.3193 20.7598 55.4697 51.9902 55.4697 154.29c0 77.7002 54.4795 139.9 127.939 155.16v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8398
+c73.46 -15.2598 127.939 -77.46 127.939 -155.16c0 -102.3 36.1504 -133.53 55.4697 -154.29z" />
+ <glyph glyph-name="coffee" unicode="" horiz-adv-x="640"
+d="M192 64c-53 0 -96 43 -96 96v232c0 13.2998 10.7002 24 24 24h392c70.5996 0 128 -57.4004 128 -128s-57.4004 -128 -128 -128h-32c0 -53 -43 -96 -96 -96h-192zM512 352h-32v-128h32c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64zM559.7 -32h-511.4
+c-47.5996 0 -61 64 -36 64h583.3c25 0 11.8008 -64 -35.8994 -64z" />
+ <glyph glyph-name="hospital" unicode="" horiz-adv-x="448"
+d="M448 -44v-20h-448v20c0 6.62695 5.37305 12 12 12h20v360c0 13.2549 10.7451 24 24 24h88v72c0 13.2549 10.7451 24 24 24h112c13.2549 0 24 -10.7451 24 -24v-72h88c13.2549 0 24 -10.7451 24 -24v-360h20c6.62695 0 12 -5.37305 12 -12zM308 256h-40
+c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12zM140 192h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40
+c0 -6.62695 5.37305 -12 12 -12zM244 64h-40c-6.62695 0 -12 -5.37305 -12 -12v-84h64v84c0 6.62695 -5.37305 12 -12 12zM308 160h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12
+zM192 148c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40zM182 352h26v-26c0 -3.31152 2.68848 -6 6 -6h20c3.31152 0 6 2.68848 6 6v26h26c3.31152 0 6 2.68848 6 6v20
+c0 3.31152 -2.68848 6 -6 6h-26v26c0 3.31152 -2.68848 6 -6 6h-20c-3.31152 0 -6 -2.68848 -6 -6v-26h-26c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6z" />
+ <glyph glyph-name="ambulance" unicode="" horiz-adv-x="640"
+d="M624 96c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48c0 -53 -43 -96 -96 -96s-96 43 -96 96h-128c0 -53 -43 -96 -96 -96s-96 43 -96 96h-16c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48 -21.5 48 -48v-48h44.0996
+c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l99.9004 -99.9004c9 -9 14.0996 -21.2002 14.0996 -33.9004v-108.1h16zM160 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM304 232v48c0 4.40039 -3.59961 8 -8 8h-56v56
+c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8zM480 -16c26.5 0 48 21.5 48 48
+s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM560 192v12.0996l-99.9004 99.9004h-44.0996v-112h144z" />
+ <glyph glyph-name="medkit" unicode=""
+d="M96 -32v352h32v48c0 26.5098 21.4902 48 48 48h160c26.5098 0 48 -21.4902 48 -48v-48h32v-352h-320zM192 352v-32h128v32h-128zM512 272v-256c0 -26.5098 -21.4902 -48 -48 -48h-16v352h16c26.5098 0 48 -21.4902 48 -48zM64 -32h-16c-26.5098 0 -48 21.4902 -48 48v256
+c0 26.5098 21.4902 48 48 48h16v-352zM352 176c0 8.83691 -7.16309 16 -16 16h-48v48c0 8.83691 -7.16309 16 -16 16h-32c-8.83691 0 -16 -7.16309 -16 -16v-48h-48c-8.83691 0 -16 -7.16309 -16 -16v-32c0 -8.83691 7.16309 -16 16 -16h48v-48
+c0 -8.83691 7.16309 -16 16 -16h32c8.83691 0 16 7.16309 16 16v48h48c8.83691 0 16 7.16309 16 16v32z" />
+ <glyph glyph-name="fighter-jet" unicode="" horiz-adv-x="640"
+d="M544 224c96 -21.333 96 -26.583 96 -32s0 -10.667 -96 -32l-128 -16l-48 -16h-24l-116.842 -148h39.5088c11.666 0 21.333 -2.625 21.333 -6s-9.66602 -6 -21.333 -6h-114.667v12h16v164h-48l-66.666 -80h-34.667l-10.667 10.667v69.333h8v16h48v2.66699l-64 8v42.667
+l64 8v2.66602h-48v16h-8v69.333l10.667 10.667h34.666l66.667 -80h48v164h-16v12h114.667c11.666 0 21.333 -2.625 21.333 -6s-9.66699 -6 -21.333 -6h-39.5088l116.842 -148h24l48 -16z" />
+ <glyph glyph-name="beer" unicode="" horiz-adv-x="448"
+d="M368 352c44.1123 0 80 -35.8877 80 -80v-128.86c0 -31.5273 -18.6035 -60.2031 -47.3936 -73.0527l-80.6064 -35.9766v-42.1104c0 -13.2549 -10.7451 -24 -24 -24h-272c-13.2549 0 -24 10.7451 -24 24v400c0 13.2549 10.7451 24 24 24h272c13.2549 0 24 -10.7451 24 -24
+v-40h48zM384 143.14v128.86c0 8.82227 -7.17773 16 -16 16h-48v-183.805l54.5215 24.334c5.22754 2.33789 9.47461 8.88379 9.47852 14.6104zM208 64c8.83594 0 16 7.16406 16 16v224c0 8.83594 -7.16406 16 -16 16s-16 -7.16406 -16 -16v-224
+c0 -8.83594 7.16406 -16 16 -16zM112 64c8.83594 0 16 7.16406 16 16v224c0 8.83594 -7.16406 16 -16 16s-16 -7.16406 -16 -16v-224c0 -8.83594 7.16406 -16 16 -16z" />
+ <glyph glyph-name="h-square" unicode="" horiz-adv-x="448"
+d="M448 368v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48zM336 320h-32c-8.83691 0 -16 -7.16309 -16 -16v-80h-128v80c0 8.83691 -7.16309 16 -16 16h-32
+c-8.83691 0 -16 -7.16309 -16 -16v-224c0 -8.83691 7.16309 -16 16 -16h32c8.83691 0 16 7.16309 16 16v80h128v-80c0 -8.83691 7.16309 -16 16 -16h32c8.83691 0 16 7.16309 16 16v224c0 8.83691 -7.16309 16 -16 16z" />
+ <glyph glyph-name="plus-square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM368 164v56c0 6.59961 -5.40039 12 -12 12h-92v92c0 6.59961 -5.40039 12 -12 12h-56c-6.59961 0 -12 -5.40039 -12 -12v-92h-92
+c-6.59961 0 -12 -5.40039 -12 -12v-56c0 -6.59961 5.40039 -12 12 -12h92v-92c0 -6.59961 5.40039 -12 12 -12h56c6.59961 0 12 5.40039 12 12v92h92c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="angle-double-left" unicode="" horiz-adv-x="448"
+d="M223.7 209l136 136c9.39941 9.40039 24.5996 9.40039 33.8994 0l22.6006 -22.5996c9.39941 -9.40039 9.39941 -24.6006 0 -33.9004l-96.2998 -96.5l96.3994 -96.4004c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.7002
+c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-136 136c-9.5 9.40039 -9.5 24.5996 -0.0996094 34zM31.7002 175c-9.40039 9.40039 -9.40039 24.5996 0.0996094 34l136 136c9.2998 9.40039 24.5 9.40039 33.9004 0l22.5996 -22.7002
+c9.40039 -9.2998 9.40039 -24.5 0 -33.8994l-96.3994 -96.4004l96.2998 -96.5c9.39941 -9.2998 9.39941 -24.5 0 -33.9004l-22.6006 -22.5996c-9.2998 -9.40039 -24.5 -9.40039 -33.8994 0z" />
+ <glyph glyph-name="angle-double-right" unicode="" horiz-adv-x="448"
+d="M224.3 175l-136 -136c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.6006 22.5996c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l96.4004 96.4004l-96.4004 96.3994c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l22.5 22.7998
+c9.40039 9.40039 24.6006 9.40039 33.9004 0l136 -136c9.5 -9.40039 9.5 -24.5996 0.0996094 -34zM416.3 209c9.40039 -9.40039 9.40039 -24.5996 0 -33.7998l-136 -136c-9.2998 -9.40039 -24.5 -9.40039 -33.8994 0l-22.6006 22.5996
+c-9.39941 9.2998 -9.39941 24.5 0 33.9004l96.4004 96.3994l-96.4004 96.4004c-9.39941 9.2998 -9.39941 24.5 0 33.9004l22.6006 22.5996c9.2998 9.40039 24.5 9.40039 33.8994 0z" />
+ <glyph glyph-name="angle-double-up" unicode="" horiz-adv-x="320"
+d="M177 192.3l136 -136c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.6006c-9.40039 -9.39941 -24.6006 -9.39941 -33.9004 0l-96.5 96.2998l-96.4004 -96.3994c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.7002 22.5996
+c-9.40039 9.40039 -9.40039 24.6006 0 33.9004l136 136c9.40039 9.5 24.5996 9.5 34 0.0996094zM143 384.3c9.40039 9.40039 24.5996 9.40039 33.7998 0l136 -136c9.40039 -9.2998 9.40039 -24.5 0 -33.8994l-22.5996 -22.6006c-9.2998 -9.39941 -24.5 -9.39941 -33.9004 0
+l-96.3994 96.4004l-96.4004 -96.4004c-9.2998 -9.39941 -24.5 -9.39941 -33.9004 0l-22.5996 22.6006c-9.40039 9.2998 -9.40039 24.5 0 33.8994z" />
+ <glyph glyph-name="angle-double-down" unicode="" horiz-adv-x="320"
+d="M143 191.7l-136 136c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l22.5996 22.6006c9.40039 9.39941 24.6006 9.39941 33.9004 0l96.4004 -96.4004l96.3994 96.4004c9.40039 9.39941 24.6006 9.39941 33.9004 0l22.7998 -22.5
+c9.40039 -9.40039 9.40039 -24.6006 0 -33.9004l-136 -136c-9.40039 -9.5 -24.5996 -9.5 -34 -0.0996094zM177 -0.299805c-9.40039 -9.40039 -24.5996 -9.40039 -34 0.0996094l-136 136c-9.40039 9.2998 -9.40039 24.5 0 33.9004l22.7002 22.5996
+c9.2998 9.40039 24.5 9.40039 33.8994 0l96.4004 -96.3994l96.5 96.2998c9.2998 9.39941 24.5 9.39941 33.9004 0l22.5996 -22.6006c9.40039 -9.2998 9.40039 -24.5 0 -33.8994z" />
+ <glyph glyph-name="angle-left" unicode="" horiz-adv-x="256"
+d="M31.7002 209l136 136c9.39941 9.40039 24.5996 9.40039 33.8994 0l22.6006 -22.5996c9.39941 -9.40039 9.39941 -24.6006 0 -33.9004l-96.2998 -96.5l96.3994 -96.4004c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.7002
+c-9.40039 -9.40039 -24.6006 -9.40039 -33.9004 0l-136 136c-9.5 9.40039 -9.5 24.5996 -0.0996094 34z" />
+ <glyph glyph-name="angle-right" unicode="" horiz-adv-x="256"
+d="M224.3 175l-136 -136c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.6006 22.5996c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l96.4004 96.4004l-96.4004 96.3994c-9.39941 9.40039 -9.39941 24.6006 0 33.9004l22.5 22.7998
+c9.40039 9.40039 24.6006 9.40039 33.9004 0l136 -136c9.5 -9.40039 9.5 -24.5996 0.0996094 -34z" />
+ <glyph glyph-name="angle-up" unicode="" horiz-adv-x="320"
+d="M177 288.3l136 -136c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-22.5996 -22.6006c-9.40039 -9.39941 -24.6006 -9.39941 -33.9004 0l-96.5 96.2998l-96.4004 -96.3994c-9.39941 -9.40039 -24.5996 -9.40039 -33.8994 0l-22.7002 22.5996
+c-9.40039 9.40039 -9.40039 24.6006 0 33.9004l136 136c9.40039 9.5 24.5996 9.5 34 0.0996094z" />
+ <glyph glyph-name="angle-down" unicode="" horiz-adv-x="320"
+d="M143 95.7002l-136 136c-9.40039 9.39941 -9.40039 24.5996 0 33.8994l22.5996 22.6006c9.40039 9.39941 24.6006 9.39941 33.9004 0l96.4004 -96.4004l96.3994 96.4004c9.40039 9.39941 24.6006 9.39941 33.9004 0l22.5996 -22.6006
+c9.40039 -9.39941 9.40039 -24.5996 0 -33.8994l-136 -136c-9.2002 -9.40039 -24.3994 -9.40039 -33.7998 0z" />
+ <glyph glyph-name="desktop" unicode="" horiz-adv-x="576"
+d="M528 448c26.5 0 48 -21.5 48 -48v-320c0 -26.5 -21.5 -48 -48 -48h-192l16 -48h72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24h-272c-13.2998 0 -24 10.7002 -24 24s10.7002 24 24 24h72l16 48h-192c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h480z
+M512 96v288h-448v-288h448z" />
+ <glyph glyph-name="laptop" unicode="" horiz-adv-x="640"
+d="M624 32c8.7998 0 16 -7.2002 16 -16v-16c0 -35.2002 -28.7998 -64 -64 -64h-512c-35.2002 0 -64 28.7998 -64 64v16c0 8.7998 7.2002 16 16 16h239.23c-0.25 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46zM576 400v-336h-512v336
+c0 26.4004 21.5996 48 48 48h416c26.4004 0 48 -21.5996 48 -48zM512 128v256h-384v-256h384z" />
+ <glyph glyph-name="tablet" unicode="" horiz-adv-x="448"
+d="M400 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h352zM224 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="mobile" unicode="" horiz-adv-x="320"
+d="M272 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-224c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h224zM160 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="quote-left" unicode=""
+d="M464 192c26.5 0 48 -21.5 48 -48v-128c0 -26.5 -21.5 -48 -48 -48h-128c-26.5 0 -48 21.5 -48 48v240c0 88.4004 71.5996 160 160 160h8c13.2998 0 24 -10.7002 24 -24v-48c0 -13.2998 -10.7002 -24 -24 -24h-8c-35.2998 0 -64 -28.7002 -64 -64v-64h80zM176 192
+c26.5 0 48 -21.5 48 -48v-128c0 -26.5 -21.5 -48 -48 -48h-128c-26.5 0 -48 21.5 -48 48v240c0 88.4004 71.5996 160 160 160h8c13.2998 0 24 -10.7002 24 -24v-48c0 -13.2998 -10.7002 -24 -24 -24h-8c-35.2998 0 -64 -28.7002 -64 -64v-64h80z" />
+ <glyph glyph-name="quote-right" unicode=""
+d="M464 416c26.5 0 48 -21.5 48 -48v-240c0 -88.4004 -71.5996 -160 -160 -160h-8c-13.2998 0 -24 10.7002 -24 24v48c0 13.2998 10.7002 24 24 24h8c35.2998 0 64 28.7002 64 64v64h-80c-26.5 0 -48 21.5 -48 48v128c0 26.5 21.5 48 48 48h128zM176 416
+c26.5 0 48 -21.5 48 -48v-240c0 -88.4004 -71.5996 -160 -160 -160h-8c-13.2998 0 -24 10.7002 -24 24v48c0 13.2998 10.7002 24 24 24h8c35.2998 0 64 28.7002 64 64v64h-80c-26.5 0 -48 21.5 -48 48v128c0 26.5 21.5 48 48 48h128z" />
+ <glyph glyph-name="spinner" unicode=""
+d="M304 400c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48s48 -21.4902 48 -48zM256 32c26.5098 0 48 -21.4902 48 -48s-21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48zM464 240c26.5098 0 48 -21.4902 48 -48s-21.4902 -48 -48 -48
+s-48 21.4902 -48 48s21.4902 48 48 48zM96 192c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48s48 -21.4902 48 -48zM108.922 92.9219c26.5088 0 48 -21.4912 48 -48c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48z
+M403.078 92.9219c26.5098 0 48 -21.4912 48 -48c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48zM108.922 387.078c26.5088 0 48 -21.4902 48 -48s-21.4902 -48 -48 -48s-48 21.4902 -48 48s21.4902 48 48 48z" />
+ <glyph glyph-name="circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248z" />
+ <glyph glyph-name="smile" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
+s32 14.2998 32 32s-14.2998 32 -32 32zM362.8 101.8c13.5 16.2998 -11.2002 36.7002 -24.5996 20.5c-22.4004 -26.7998 -55.2002 -42.2002 -90.2002 -42.2002s-67.7998 15.3008 -90.2002 42.2002c-13.5996 16.2002 -38.2002 -4.2002 -24.5996 -20.5
+c28.5 -34.2002 70.2998 -53.7998 114.8 -53.7998s86.2998 19.5996 114.8 53.7998z" />
+ <glyph glyph-name="frown" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
+s32 14.2998 32 32s-14.2998 32 -32 32zM338.2 53.7998c13.5 -16.2998 38.0996 4.2002 24.5 20.4004c-28.4004 34.2002 -70.2998 53.7998 -114.7 53.7998s-86.2998 -19.5996 -114.8 -53.7002c-13.5 -16.2998 11.0996 -36.7998 24.5996 -20.5
+c22.4004 26.7998 55.2998 42.2002 90.2002 42.2002s67.7998 -15.4004 90.2002 -42.2002z" />
+ <glyph glyph-name="meh" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM344 80c21.2002 0 21.2002 32 0 32h-192c-21.2002 0 -21.2002 -32 0 -32
+h192zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="gamepad" unicode="" horiz-adv-x="640"
+d="M480 352c88.4004 0 159.9 -71.5996 159.9 -160s-71.6006 -160 -160 -160c-44.7002 0 -85.2002 18.4004 -114.2 48h-91.5c-29 -29.5996 -69.4004 -48 -114.2 -48c-88.4004 0 -160 71.5996 -160 160s71.5996 160 160 160h320zM256 172v40c0 6.59961 -5.40039 12 -12 12h-52
+v52c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-52h-52c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h52v-52c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v52h52c6.59961 0 12 5.40039 12 12zM440 104
+c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM520 184c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
+ <glyph glyph-name="keyboard" unicode="" horiz-adv-x="576"
+d="M528 0h-480c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48zM128 268v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40
+c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM224 268v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM320 268v40c0 6.62695 -5.37305 12 -12 12h-40
+c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM416 268v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM512 268v40
+c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM176 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40
+c6.62695 0 12 5.37305 12 12zM272 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM368 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40
+c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM464 172v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM128 76v40c0 6.62695 -5.37305 12 -12 12h-40
+c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM416 76v40c0 6.62695 -5.37305 12 -12 12h-232c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h232c6.62695 0 12 5.37305 12 12zM512 76v40
+c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12z" />
+ <glyph glyph-name="flag-checkered" unicode=""
+d="M243.2 258.1c24.2002 -6.69922 47.5996 -16.3994 73.5996 -22.1992v-68.2002c-24.2998 6.7002 -47.5 16.3994 -73.5996 22.2998v68.0996zM466.5 381.1c21.2002 9.80078 45.5 -5.69922 45.4004 -29v-243.1c0 -10.5996 -5.10059 -20.4004 -13.8008 -26.4004
+c-35.7998 -24.5996 -74.2998 -40.8994 -122.5 -40.8994c-67.3994 0 -111.6 34.7998 -165.199 34.7998c-50.8008 0 -86.1006 -10 -114.4 -22.0996v-94.4004c0 -13.2998 -10.7002 -24 -24 -24h-16c-13.2998 0 -24 10.7002 -24 24v386.1c-14.5 10.1006 -24 26.9004 -24 45.9004
+c0 31.7002 26.2998 57.2998 58.2998 56c28.5 -1.2002 51.7998 -24 53.6006 -52.4004c0.5 -8.39941 -0.800781 -16.2998 -3.60059 -23.5996c20.7002 7.59961 43 12 68 12c67.4004 0 111.7 -34.7998 165.2 -34.7998c40.5 0 82.7002 16 117 31.8994zM169.6 122.5v71.2998
+c-26.0996 -2.39941 -47.3994 -8.09961 -73.5996 -17.3994v-70.5c23.5996 8.39941 47.7998 13.8994 73.5996 16.5996zM464 257v70.5c-21.2998 -8.90039 -46.5996 -17.7002 -73.5996 -22.5v-71.9004c-26 -4.19922 -49.9004 -2.59961 -73.6006 2.7002v68.4004
+c-26.3994 4.59961 -49.8994 13.8994 -73.5996 21.2998v-67.4004c-25.2002 7 -46.6006 9.40039 -73.6006 5.7002v71.6006c-23.5 -2.2002 -40.3994 -9.80078 -73.5996 -22v-70.5c29 10.6992 51.2002 17.7998 73.5996 20.8994v-70c32.8008 3 53.9004 0.600586 73.6006 -3.7998
+v-68.5c26.2998 -4.59961 49.7002 -13.9004 73.5996 -21.2998v67.3994c25.7002 -7.09961 46.6006 -9.2998 73.6006 -5.59961v-71.5996c25.0996 2.39941 48.5 11 73.5996 27.0996v70.5c-22.2002 -14.2002 -48.7998 -22.5996 -73.5996 -26v71.0996
+c27.2998 4.40039 50 14.1006 73.5996 23.9004z" />
+ <glyph glyph-name="terminal" unicode="" horiz-adv-x="640"
+d="M257.981 175.029l-194.344 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9404 0l-22.668 22.667c-9.35742 9.35742 -9.375 24.5225 -0.0400391 33.9014l154.021 154.746l-154.021 154.745c-9.33496 9.37891 -9.31738 24.5439 0.0400391 33.9014l22.667 22.667
+c9.37305 9.37207 24.5684 9.37207 33.9404 0l194.344 -194.344c9.37207 -9.37207 9.37207 -24.5674 0 -33.9404zM640 -8c0 -13.2549 -10.7451 -24 -24 -24h-304c-13.2549 0 -24 10.7451 -24 24v32c0 13.2549 10.7451 24 24 24h304c13.2549 0 24 -10.7451 24 -24v-32z" />
+ <glyph glyph-name="code" unicode="" horiz-adv-x="640"
+d="M278.9 -63.5l-61 17.7002c-6.40039 1.7998 -10 8.5 -8.2002 14.8994l136.5 470.2c1.7998 6.40039 8.5 10 14.8994 8.2002l61 -17.7002c6.40039 -1.7998 10 -8.5 8.2002 -14.8994l-136.5 -470.2c-1.89941 -6.40039 -8.5 -10.1006 -14.8994 -8.2002zM164.9 48.7002
+c-4.5 -4.90039 -12.1006 -5.10059 -17 -0.5l-144.101 135.1c-5.09961 4.7002 -5.09961 12.7998 0 17.5l144.101 135c4.89941 4.60059 12.5 4.2998 17 -0.5l43.5 -46.3994c4.69922 -4.90039 4.2998 -12.7002 -0.800781 -17.2002l-90.5996 -79.7002l90.5996 -79.7002
+c5.10059 -4.5 5.40039 -12.2998 0.800781 -17.2002zM492.1 48.0996c-4.89941 -4.5 -12.5 -4.2998 -17 0.600586l-43.5 46.3994c-4.69922 4.90039 -4.2998 12.7002 0.800781 17.2002l90.5996 79.7002l-90.5996 79.7998c-5.10059 4.5 -5.40039 12.2998 -0.800781 17.2002
+l43.5 46.4004c4.60059 4.7998 12.2002 5 17 0.5l144.101 -135.2c5.09961 -4.7002 5.09961 -12.7998 0 -17.5z" />
+ <glyph glyph-name="reply-all" unicode="" horiz-adv-x="576"
+d="M136.309 258.164l176.005 151.985c15.4062 13.3047 39.6865 2.50293 39.6865 -18.1641v-82.7637c129.182 -10.2305 224 -52.2119 224 -183.548c0 -61.4404 -39.582 -122.309 -83.333 -154.132c-13.6533 -9.93066 -33.1113 2.5332 -28.0771 18.6309
+c38.5117 123.162 -3.92188 169.482 -112.59 182.016v-84.1758c0 -20.7012 -24.2998 -31.4531 -39.6865 -18.1641l-176.005 151.987c-11.0703 9.56152 -11.0859 26.7529 0 36.3281zM8.30859 221.836c-11.0703 9.56152 -11.0859 26.7529 0 36.3281l176.005 151.985
+c15.4062 13.3047 39.6865 2.50293 39.6865 -18.1641v-15.8174l-108.607 -93.7861c-10.7041 -9.23926 -19.3926 -28.2158 -19.3926 -42.3564v-0.0234375v-0.0244141c0 -14.1416 8.68848 -33.1191 19.3936 -42.3604l108.606 -93.7852v-15.8184
+c0 -20.7002 -24.2998 -31.4531 -39.6865 -18.1641z" />
+ <glyph glyph-name="location-arrow" unicode=""
+d="M444.52 444.48c38.3809 16 79.9609 -25.5801 63.9707 -63.9707l-191.9 -415.779c-22.3896 -47.9805 -92.75 -31.9805 -92.75 19.1895v175.91h-175.91c-51.1699 0 -67.1602 70.3604 -19.1895 92.75z" />
+ <glyph glyph-name="crop" unicode=""
+d="M488 96c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-40v-40c0 -13.25 -10.75 -24 -24 -24h-48c-13.25 0 -24 10.75 -24 24v282.75l-146.75 -146.75h114.75v-96h-232c-13.25 0 -24 10.75 -24 24v264h-40c-13.25 0 -24 10.75 -24 24v48
+c0 13.2598 10.75 24 24 24h40v40c0 13.2598 10.75 24 24 24h48c13.25 0 24 -10.7402 24 -24v-282.75l146.75 146.75h-114.75v96h210.75l59.3096 59.3096c6.25 6.25 16.3809 6.25 22.6309 0l22.6191 -22.6191c6.25 -6.25 6.25 -16.3809 0 -22.6309l-59.3096 -59.3096v-242.75
+h40z" />
+ <glyph glyph-name="code-branch" unicode="" horiz-adv-x="384"
+d="M384 304c0 -35.2002 -22.7998 -65.0996 -54.4004 -75.9004c-0.5 -28.0996 -7.59961 -50.5 -21.5996 -67.8994c-28.2002 -35 -76 -39.5 -118.2 -43.4004c-25.7002 -2.39941 -49.8994 -4.59961 -66.0996 -12.7998c-7.10059 -3.59961 -11.7998 -8.2002 -14.9004 -13.4004
+c30 -11.5 51.2002 -40.5996 51.2002 -74.5996c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 35.7998 23.5 66.0996 56 76.4004v199.3c-32.5 10.2002 -56 40.5 -56 76.2998c0 44.2002 35.7998 80 80 80s80 -35.7998 80 -80c0 -35.7998 -23.5 -66.0996 -56 -76.2998
+v-144c23.9004 11.5 53.0996 14.2998 81.2998 16.8994c35.9004 3.30078 69.7998 6.5 85.2002 25.7002c6.7998 8.40039 10.4004 20.7998 11 36.9004c-33.2002 9.7002 -57.5 40.3994 -57.5 76.7998c0 44.2002 35.7998 80 80 80s80 -35.7998 80 -80zM80 384
+c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16s16 7.2002 16 16s-7.2002 16 -16 16zM80 0c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM304 320c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16s16 7.2002 16 16
+s-7.2002 16 -16 16z" />
+ <glyph glyph-name="unlink" unicode=""
+d="M304.083 42.0928c4.68555 -4.68555 4.68555 -12.2842 0 -16.9707l-44.6738 -44.6738c-59.2627 -59.2627 -155.693 -59.2666 -214.961 0c-59.2646 59.2646 -59.2646 155.695 0 214.96l44.6748 44.6748c4.68555 4.68555 12.2842 4.68555 16.9707 0l39.5986 -39.5977
+c4.68555 -4.68652 4.68555 -12.2842 0 -16.9717l-44.6758 -44.6738c-28.0713 -28.0732 -28.0713 -73.75 0 -101.823c28.0723 -28.0713 73.75 -28.0723 101.824 0l44.6738 44.6748c4.68652 4.68555 12.2842 4.68555 16.9717 0zM247.515 302.309l-39.5967 39.5986
+c-4.68555 4.68652 -4.68555 12.2852 0 16.9707l44.6738 44.6738c59.2666 59.2646 155.695 59.2646 214.961 0s59.2656 -155.694 0 -214.96l-44.6748 -44.6748c-4.68652 -4.68555 -12.2852 -4.68555 -16.9707 0l-39.5986 39.5977c-4.68555 4.6875 -4.68555 12.2852 0 16.9717
+l44.6758 44.6738c28.0713 28.0732 28.0713 73.75 0 101.823c-28.0742 28.0723 -73.752 28.0742 -101.824 0l-44.6738 -44.6748c-4.6875 -4.68555 -12.2852 -4.68555 -16.9717 0zM482.343 -56.9707c-9.37207 -9.37207 -24.5674 -9.37207 -33.9404 0l-441.373 441.373
+c-9.37305 9.37207 -9.37305 24.5674 0 33.9404l22.6279 22.6279c9.37207 9.37305 24.5674 9.37305 33.9404 0l441.372 -441.374c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404z" />
+ <glyph glyph-name="question" unicode="" horiz-adv-x="384"
+d="M202.021 448c84.8809 0 175.482 -66.2559 175.481 -153.6c0 -115.982 -125.268 -117.768 -125.268 -160.627v-5.77344c0 -13.2549 -10.7451 -24 -24 -24h-72.4717c-13.2549 0 -24 10.7451 -24 24v9.78809c0 61.8291 46.876 86.5449 82.2998 106.405
+c30.376 17.0293 48.9922 28.6113 48.9922 51.1641c0 29.832 -38.0518 49.6309 -68.8154 49.6309c-39.127 0 -57.708 -18.0684 -82.7568 -49.4492c-8.12109 -10.1738 -22.8809 -12.0127 -33.2529 -4.14844l-43.1387 32.709c-10.2705 7.78809 -12.541 22.2939 -5.17773 32.874
+c40.5889 58.3232 92.2881 91.0264 172.107 91.0264zM192 74.541c38.1963 0 69.2715 -31.0742 69.2715 -69.2695c0 -38.1963 -31.0752 -69.2715 -69.2715 -69.2715s-69.2715 31.0752 -69.2715 69.2695c0 38.1963 31.0752 69.2715 69.2715 69.2715z" />
+ <glyph glyph-name="info" unicode="" horiz-adv-x="192"
+d="M20 23.7715h20v144.457h-20c-11.0459 0 -20 8.9541 -20 20v47.7715c0 11.0459 8.9541 20 20 20h112c11.0459 0 20 -8.9541 20 -20v-212.229h20c11.0459 0 20 -8.9541 20 -20v-47.7715c0 -11.0459 -8.9541 -20 -20 -20h-152c-11.0459 0 -20 8.9541 -20 20v47.7715
+c0 11.0459 8.9541 20 20 20zM96 448c39.7637 0 72 -32.2354 72 -72s-32.2354 -72 -72 -72s-72 32.2354 -72 72s32.2354 72 72 72z" />
+ <glyph glyph-name="exclamation" unicode="" horiz-adv-x="192"
+d="M176 16c0 -44.1123 -35.8877 -80 -80 -80s-80 35.8877 -80 80s35.8877 80 80 80s80 -35.8877 80 -80zM25.2598 422.801c-0.68457 13.709 10.2441 25.1992 23.9707 25.1992h93.5391c13.7266 0 24.6553 -11.4902 23.9707 -25.1992l-13.6006 -272
+c-0.638672 -12.7725 -11.1807 -22.8008 -23.9697 -22.8008h-66.3398c-12.7891 0 -23.3311 10.0283 -23.9697 22.8008z" />
+ <glyph glyph-name="superscript" unicode=""
+d="M496 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h16v96h-16c-8.82422 0.0078125 -15.9863 7.17578 -15.9863 16c0 2.08984 0.759766 5.30176 1.69629 7.16992l16 32
+c2.44141 4.87012 8.84277 8.8252 14.29 8.83008h48c8.83203 0 16 -7.16797 16 -16v-144h16zM336 384c8.83203 0 16 -7.16797 16 -16v-48c0 -8.83203 -7.16797 -16 -16 -16h-33.4805l-77.8096 -112l77.8096 -112h33.4805c8.83203 0 16 -7.16797 16 -16v-48
+c0 -8.83203 -7.16797 -16 -16 -16h-67c-4.58984 0.0224609 -10.4404 3.10059 -13.0596 6.87012l-79.9004 115l-79.9004 -115c-2.63477 -3.79199 -8.52148 -6.87012 -13.1387 -6.87012h-0.000976562h-67c-8.83203 0 -16 7.16797 -16 16v48c0 8.83203 7.16797 16 16 16
+h33.4805l77.8096 112l-77.8096 112h-33.4805c-8.83203 0 -16 7.16797 -16 16v48c0 8.83203 7.16797 16 16 16h67c4.58984 -0.0224609 10.4404 -3.10059 13.0596 -6.87012l79.9004 -115l79.9004 115c2.63477 3.79199 8.52148 6.87012 13.1387 6.87012h0.000976562h67z" />
+ <glyph glyph-name="subscript" unicode=""
+d="M496 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h16v96h-16c-8.82422 0.0078125 -15.9863 7.17578 -15.9863 16c0 2.08984 0.759766 5.30176 1.69629 7.16992l16 32
+c2.44141 4.87012 8.84277 8.8252 14.29 8.83008h48c8.83203 0 16 -7.16797 16 -16v-144h16zM336 384c8.83203 0 16 -7.16797 16 -16v-48c0 -8.83203 -7.16797 -16 -16 -16h-33.4805l-77.8096 -112l77.8096 -112h33.4805c8.83203 0 16 -7.16797 16 -16v-48
+c0 -8.83203 -7.16797 -16 -16 -16h-67c-4.58984 0.0224609 -10.4404 3.10059 -13.0596 6.87012l-79.9004 115l-79.9004 -115c-2.63477 -3.79199 -8.52148 -6.87012 -13.1387 -6.87012h-0.000976562h-67c-8.83203 0 -16 7.16797 -16 16v48c0 8.83203 7.16797 16 16 16
+h33.4805l77.8096 112l-77.8096 112h-33.4805c-8.83203 0 -16 7.16797 -16 16v48c0 8.83203 7.16797 16 16 16h67c4.58984 -0.0224609 10.4404 -3.10059 13.0596 -6.87012l79.9004 -115l79.9004 115c2.63477 3.79199 8.52148 6.87012 13.1387 6.87012h0.000976562h67z" />
+ <glyph glyph-name="eraser" unicode=""
+d="M497.941 174.059l-142.059 -142.059h144.117c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-356c-10.9756 0 -26.1816 6.29883 -33.9424 14.0586l-96 96c-18.7441 18.7451 -18.7441 49.1377 0 67.8828l256 256
+c18.7471 18.7451 49.1387 18.7441 67.8838 0l160 -160c18.7441 -18.7451 18.7441 -49.1377 0 -67.8828zM195.314 236.686l-124.687 -124.686l80 -80h114.745l67.3135 67.3135z" />
+ <glyph glyph-name="puzzle-piece" unicode="" horiz-adv-x="576"
+d="M519.442 159.349c37.5957 0 56.5576 -31.5928 56.5576 -65.792c0 -33.5469 -19.2881 -61.5566 -54.9229 -61.5557c-39.8848 0 -50.3457 36.1523 -86.3086 36.1523c-60.5518 0 -25.8262 -120.102 -25.8262 -120.102c-51.5557 0 -181.23 -35.0732 -181.23 25.7305
+c0 35.8271 36.2881 46.25 36.2881 85.9844c0 35.501 -28.1152 54.7178 -61.7881 54.7178c-34.3271 0 -63.5771 -18.8906 -63.5771 -56.3467c0 -41.3633 40 -58.998 40 -81.4707c0 -69.709 -178.635 -28.6621 -178.635 -28.6621v333.237s175.885 -40.9609 175.884 28.6621
+c0 22.4727 -31.7109 40.3857 -31.7109 81.75c0 37.4551 31.7119 56.3457 66.3662 56.3457c33.3457 0 61.4609 -19.2158 61.4609 -54.7178c0 -39.7354 -36.2881 -50.1582 -36.2881 -85.9854c0 -83.2969 196.288 -3.29688 196.288 -3.29688
+s-54.5908 -176.244 5.38379 -176.244c22.5586 0 40.5391 31.5928 82.0586 31.5928z" />
+ <glyph glyph-name="microphone" unicode="" horiz-adv-x="352"
+d="M176 96c-53.0195 0 -96 42.9805 -96 96v160c0 53.0195 42.9805 96 96 96s96 -42.9805 96 -96v-160c0 -53.0195 -42.9805 -96 -96 -96zM336 256c8.83984 0 16 -7.16016 16 -16v-48c0 -88.9004 -66.29 -162.47 -152 -174.23v-33.7695h56c8.83984 0 16 -7.16016 16 -16v-16
+c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56v34.1504c-88.0303 12.1396 -152 92.0498 -152 181.689v40.1602c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-42.2998
+c0 -66.8105 48.71 -126.59 115.21 -133.08c76.2998 -7.44043 140.79 52.5801 140.79 127.38v48c0 8.83984 7.16016 16 16 16h16z" />
+ <glyph glyph-name="microphone-slash" unicode="" horiz-adv-x="640"
+d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.81934 -22.4502l-19.6396 -25.2705c-5.42969 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.36 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
+c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l178.54 -137.99v45.3604c0 53.0195 42.9805 96 96 96c53.0205 0 96 -42.9805 96 -96v-160.01c0 -10.4502 -2.17969 -20.2705 -5.2793 -29.6699l26.5498 -20.5205c6.75977 15.4004 10.7197 32.2803 10.7197 50.2002v48
+c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-48c0 -29.0098 -7.38965 -56.1299 -19.9805 -80.1396zM400 -16c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56
+v34.1504c-88.0303 12.1396 -152 92.0498 -152 181.689v6.85059l52.0303 -40.2305c12.4395 -53.2197 55.3301 -96.4004 111.18 -101.85c6.94043 -0.669922 13.6396 -0.200195 20.3496 0.199219l50.1104 -38.7295c-10.8203 -3.77051 -22.0098 -6.70996 -33.6699 -8.31055
+v-33.7695h56z" />
+ <glyph glyph-name="calendar" unicode="" horiz-adv-x="448"
+d="M12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM448 300c0 -6.59961 -5.40039 -12 -12 -12h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52
+c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36z" />
+ <glyph glyph-name="fire-extinguisher" unicode="" horiz-adv-x="448"
+d="M434.027 421.671c7.31445 1.21875 13.9727 -4.4209 13.9727 -11.8369v-115.668c0 -7.41602 -6.6582 -13.0557 -13.9727 -11.8369l-168 28c-11.7305 1.95508 -10.0273 14.6973 -10.0273 17.6709h-40v-27.0303c41.4043 -10.6582 72 -48.2383 72 -92.9697v-248
+c0 -13.2549 -10.7451 -24 -24 -24h-144c-13.2549 0 -24 10.7451 -24 24v246.795c0 44.8945 30.457 83.2666 72 94.1289v27.0762c-61.0361 0 -92.9424 7.00977 -121.711 -64.9141c-4.91699 -12.2949 -18.8789 -18.2959 -31.1963 -13.3701
+c-12.3066 4.92285 -18.293 18.8906 -13.3701 31.1973c14.668 36.6709 38.0107 77.833 90.0498 90.8838c-14.1406 36.5273 12.793 76.2031 52.2275 76.2031c37.4463 0 64.3525 -36.1084 53.668 -72h58.332c0 4.2002 -1.30664 15.7822 10.0273 17.6709zM144 376
+c8.82227 0 16 7.17773 16 16s-7.17773 16 -16 16s-16 -7.17773 -16 -16s7.17773 -16 16 -16z" />
+ <glyph glyph-name="rocket" unicode=""
+d="M505.05 428.9c6.9502 -32.2002 6.9502 -57.4004 6.85059 -82.6006c0 -102.689 -55.4102 -164.79 -128 -211.09v-104.41v-0.0400391c0 -16.3516 -11.8721 -35.5527 -26.5 -42.8594l-98.7002 -49.3906c-2.79004 -1.38965 -7.58398 -2.5166 -10.7002 -2.5166
+c-13.248 0 -24 10.752 -24 24v0.00683594v103.84l-22.4697 -22.4697c-5.17383 -5.1748 -15.3125 -9.375 -22.6299 -9.375c-7.31836 0 -17.4561 4.2002 -22.6309 9.375l-50.8994 50.9102c-5.17285 5.17285 -9.37012 15.3096 -9.37012 22.625s4.19727 17.4512 9.37012 22.625
+l22.4697 22.4697h-103.77h-0.0126953c-13.248 0 -24 10.752 -24 24c0 3.12012 1.12988 7.91797 2.52246 10.71l49.4199 98.7998c7.32324 14.6094 26.5283 26.4766 42.8701 26.4902h104.2c46.1895 72.7998 108.09 128 211.29 128c25.0996 0 50.29 0 82.4893 -6.90039
+c5.54395 -1.19043 11.0098 -6.65527 12.2002 -12.1992zM384 280c22.0801 0 40 17.9199 40 40s-17.9199 40 -40 40s-40 -17.9199 -40 -40s17.9199 -40 40 -40z" />
+ <glyph glyph-name="chevron-circle-left" unicode=""
+d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM142.1 175l135.5 -135.5c9.40039 -9.40039 24.6006 -9.40039 33.9004 0l17 17c9.40039 9.40039 9.40039 24.5996 0 33.9004l-101.6 101.6l101.6 101.6
+c9.40039 9.40039 9.40039 24.6006 0 33.9004l-17 17c-9.40039 9.40039 -24.5996 9.40039 -33.9004 0l-135.5 -135.5c-9.39941 -9.40039 -9.39941 -24.5996 0 -34z" />
+ <glyph glyph-name="chevron-circle-right" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM369.9 209l-135.5 135.5c-9.40039 9.40039 -24.6006 9.40039 -33.9004 0l-17 -17c-9.40039 -9.40039 -9.40039 -24.5996 0 -33.9004l101.6 -101.6l-101.6 -101.6
+c-9.40039 -9.40039 -9.40039 -24.6006 0 -33.9004l17 -17c9.40039 -9.40039 24.5996 -9.40039 33.9004 0l135.5 135.5c9.39941 9.40039 9.39941 24.5996 0 34z" />
+ <glyph glyph-name="chevron-circle-up" unicode=""
+d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM239 305.9l-135.5 -135.5c-9.40039 -9.40039 -9.40039 -24.6006 0 -33.9004l17 -17c9.40039 -9.40039 24.5996 -9.40039 33.9004 0l101.6 101.6l101.6 -101.6
+c9.40039 -9.40039 24.6006 -9.40039 33.9004 0l17 17c9.40039 9.40039 9.40039 24.5996 0 33.9004l-135.5 135.5c-9.40039 9.39941 -24.5996 9.39941 -34 0z" />
+ <glyph glyph-name="chevron-circle-down" unicode=""
+d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM273 78.0996l135.5 135.5c9.40039 9.40039 9.40039 24.6006 0 33.9004l-17 17c-9.40039 9.40039 -24.5996 9.40039 -33.9004 0l-101.6 -101.6l-101.6 101.6
+c-9.40039 9.40039 -24.6006 9.40039 -33.9004 0l-17 -17c-9.40039 -9.40039 -9.40039 -24.5996 0 -33.9004l135.5 -135.5c9.40039 -9.39941 24.5996 -9.39941 34 0z" />
+ <glyph glyph-name="anchor" unicode="" horiz-adv-x="576"
+d="M12.9707 96c-10.6904 0 -16.0449 12.9258 -8.48535 20.4854l67.0283 67.0283c4.6875 4.68652 12.2852 4.68652 16.9717 0l67.0283 -67.0283c7.56055 -7.55957 2.20605 -20.4854 -8.48438 -20.4854h-35.1465c20.2969 -54.3359 85.1816 -86.6162 144.117 -94.0146v190.015
+h-52c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h52v5.46973c-37.2842 13.1807 -64 48.7324 -64 90.5303c0 53.4746 43.7227 96.7393 97.3701 95.9902c52.2354 -0.728516 94.6348 -43.7627 94.6289 -96.002
+c-0.00488281 -41.793 -26.7188 -77.3398 -64 -90.5186v-5.46973h52c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-52v-190.015c59.1543 7.42676 123.827 39.6973 144.117 94.0146h-35.1465c-10.6904 0 -16.0449 12.9248 -8.48438 20.4854
+l67.0283 67.0283c4.6875 4.68652 12.2852 4.68652 16.9717 0l67.0283 -67.0283c7.56055 -7.55957 2.20605 -20.4854 -8.48438 -20.4854h-32.3945c-21.7822 -102.62 -136.406 -160 -242.635 -160c-106.056 0 -220.828 57.2646 -242.635 160h-32.3945zM288 384
+c-17.6445 0 -32 -14.3555 -32 -32s14.3555 -32 32 -32s32 14.3555 32 32s-14.3555 32 -32 32z" />
+ <glyph glyph-name="unlock-alt" unicode="" horiz-adv-x="448"
+d="M400 192c26.5 0 48 -21.5 48 -48v-160c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v160c0 26.5 21.5 48 48 48h24v102.5c0 84 67.5 153.2 151.5 153.5s152.5 -68 152.5 -152v-16c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v16
+c0 39.9004 -32.7002 72.4004 -72.7002 72c-39.5996 -0.400391 -71.2998 -33.2998 -71.2998 -72.9004v-103.1h248zM264 40v48c0 22.0996 -17.9004 40 -40 40s-40 -17.9004 -40 -40v-48c0 -22.0996 17.9004 -40 40 -40s40 17.9004 40 40z" />
+ <glyph glyph-name="bullseye" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 8c101.71 0 184 82.3096 184 184c0 101.71 -82.3096 184 -184 184c-101.71 0 -184 -82.3096 -184 -184c0 -101.71 82.3096 -184 184 -184zM248 320
+c70.6904 0 128 -57.3096 128 -128s-57.3096 -128 -128 -128s-128 57.3096 -128 128s57.3096 128 128 128zM248 128c35.29 0 64 28.71 64 64s-28.71 64 -64 64s-64 -28.71 -64 -64s28.71 -64 64 -64z" />
+ <glyph glyph-name="ellipsis-h" unicode=""
+d="M328 192c0 -39.7998 -32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72s72 -32.2002 72 -72zM432 264c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72zM80 264c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72
+s-72 32.2002 -72 72s32.2002 72 72 72z" />
+ <glyph glyph-name="ellipsis-v" unicode="" horiz-adv-x="192"
+d="M96 264c39.7998 0 72 -32.2002 72 -72s-32.2002 -72 -72 -72s-72 32.2002 -72 72s32.2002 72 72 72zM24 368c0 39.7998 32.2002 72 72 72s72 -32.2002 72 -72s-32.2002 -72 -72 -72s-72 32.2002 -72 72zM24 16c0 39.7998 32.2002 72 72 72s72 -32.2002 72 -72
+s-32.2002 -72 -72 -72s-72 32.2002 -72 72z" />
+ <glyph glyph-name="rss-square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM112 32c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM269.533 32
+c6.53516 0 11.7764 5.46777 11.4248 11.9941c-5.9668 110.428 -94.418 198.99 -204.964 204.964c-6.52637 0.351562 -11.9941 -4.88965 -11.9941 -11.4248v-34.335c0 -6.00977 4.63574 -11.0508 10.6328 -11.4414c79.8799 -5.20312 143.909 -69.0732 149.123 -149.123
+c0.391602 -5.99805 5.43066 -10.6338 11.4424 -10.6338h34.335zM372.56 32c6.4541 0 11.6641 5.33789 11.4326 11.7871c-5.99512 167.014 -140.375 302.18 -308.205 308.205c-6.44922 0.231445 -11.7871 -4.97852 -11.7871 -11.4326v-34.334
+c0 -6.16016 4.88184 -11.1748 11.0391 -11.4277c136.556 -5.59863 246.162 -115.225 251.76 -251.76c0.251953 -6.15625 5.2666 -11.0381 11.4268 -11.0381h34.334z" />
+ <glyph glyph-name="play-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM371.7 168c16.3994 9.09961 16.3994 32.7998 0 42l-176 107c-15.9004 8.7998 -35.7002 -2.59961 -35.7002 -21v-208c0 -18.5 19.9004 -29.7998 35.7002 -21z" />
+ <glyph glyph-name="minus-square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM92 152h264c6.59961 0 12 5.40039 12 12v56c0 6.59961 -5.40039 12 -12 12h-264c-6.59961 0 -12 -5.40039 -12 -12v-56
+c0 -6.59961 5.40039 -12 12 -12z" />
+ <glyph glyph-name="check-square" unicode="" horiz-adv-x="448"
+d="M400 -32h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48zM195.314 66.0586l184 184c6.24707 6.24805 6.24707 16.3799 0 22.627l-22.6279 22.6279
+c-6.24707 6.24707 -16.3789 6.24805 -22.6279 0l-150.059 -150.059l-70.0586 70.0596c-6.24805 6.24707 -16.3799 6.24707 -22.6279 0l-22.6279 -22.6279c-6.24707 -6.24707 -6.24707 -16.3789 0 -22.627l104 -104c6.24902 -6.25 16.3799 -6.25 22.6289 -0.000976562z" />
+ <glyph glyph-name="pen-square" unicode="" horiz-adv-x="448"
+d="M400 -32h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48zM238.1 270.1l-135.699 -135.699l-6.30078 -57.1006c-0.799805 -7.59961 5.60059 -14.0996 13.3008 -13.2998l57.0996 6.2998l135.7 135.7
+c2.2998 2.2998 2.2998 6.09961 0 8.5l-55.5 55.5c-2.5 2.40039 -6.2998 2.40039 -8.60059 0.0996094zM345 282.9l-30.0996 30.0996c-9.40039 9.40039 -24.6006 9.40039 -33.9004 0l-23.0996 -23.0996c-2.30078 -2.30078 -2.30078 -6.10059 0 -8.5l55.5 -55.5
+c2.2998 -2.30078 6.09961 -2.30078 8.5 0l23.0996 23.0996c9.2998 9.2998 9.2998 24.5 0 33.9004z" />
+ <glyph glyph-name="share-square" unicode="" horiz-adv-x="576"
+d="M568.482 270.552l-144.004 -135.984c-15.1787 -14.335 -40.4785 -3.70703 -40.4785 17.4473v71.9629c-144.575 -0.969727 -205.566 -35.1123 -164.775 -171.353c4.4834 -14.9727 -12.8457 -26.5674 -25.0059 -17.3301
+c-38.9668 29.5996 -74.2188 86.2168 -74.2188 143.366c0 143.937 117.599 172.5 264 173.312v72.0156c0 21.1738 25.3174 31.7676 40.4785 17.4473l144.004 -135.987c10.0195 -9.46289 10.0273 -25.4248 0 -34.8965zM384 68.8721c0 7.34473 6.53027 12.9053 13.7998 11.8594
+c2.81152 -0.405273 7.39844 -0.734375 10.2393 -0.734375c6.80469 0 17.5342 1.8418 23.9502 4.11133c7.81348 2.76367 16.0107 -3.01465 16.0107 -11.3027v-88.8057c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48
+h121.033c12.5508 0 16.6748 -16.8301 5.54492 -22.6309c-18.7773 -9.78613 -36.0615 -22.1084 -51.0137 -37.6758c-1.95312 -2.03711 -5.82715 -3.69141 -8.64844 -3.69336h-50.916v-320h320v68.8721z" />
+ <glyph glyph-name="compass" unicode="" horiz-adv-x="496"
+d="M225.38 214.63c12.4902 12.4902 32.75 12.4902 45.25 0s12.5 -32.75 0 -45.25c-12.4902 -12.5 -32.7598 -12.5 -45.25 0c-12.5 12.4902 -12.5 32.75 0 45.25zM248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248z
+M374.14 291.95c7.61035 16.6494 -9.54004 33.7998 -26.1895 26.2002l-144.34 -65.9707c-5.97461 -2.73047 -13.04 -9.7959 -15.7705 -15.7695l-65.9795 -144.351c-7.61035 -16.6494 9.5498 -33.8096 26.1992 -26.1992l144.341 65.9697
+c5.97363 2.73047 13.0391 9.7959 15.7695 15.7695z" />
+ <glyph glyph-name="caret-square-down" unicode="" horiz-adv-x="448"
+d="M448 368v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48zM92.5 227.5l123 -123c4.7002 -4.7002 12.2998 -4.7002 17 0l123 123c7.59961 7.59961 2.2002 20.5 -8.5 20.5h-246
+c-10.7002 0 -16.0996 -12.9004 -8.5 -20.5z" />
+ <glyph glyph-name="caret-square-up" unicode="" horiz-adv-x="448"
+d="M0 16v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48zM355.515 156.485l-123.029 123.029c-4.68652 4.68652 -12.2842 4.68652 -16.9717 0l-123.028 -123.029
+c-7.56055 -7.56055 -2.20605 -20.4854 8.48438 -20.4854h246.06c10.6904 0 16.0449 12.9258 8.48535 20.4854z" />
+ <glyph glyph-name="caret-square-right" unicode="" horiz-adv-x="448"
+d="M48 416h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48zM188.485 60.4854l123.028 123.028c4.68652 4.68652 4.68652 12.2842 0 16.9717l-123.028 123.029
+c-7.56055 7.56055 -20.4854 2.20605 -20.4854 -8.48438v-246.06c0 -10.6904 12.9258 -16.0449 20.4854 -8.48535z" />
+ <glyph glyph-name="euro-sign" unicode="" horiz-adv-x="320"
+d="M310.706 34.2354l8.81836 -44.4902c1.23828 -6.24902 -2.62109 -12.3623 -8.78809 -13.957c-12.5391 -3.24414 -34.8008 -7.78809 -61.1016 -7.78809c-104.371 0 -182.496 65.3076 -207.521 155.64h-30.1143c-6.62695 0 -12 5.37305 -12 12v28.3604
+c0 6.62695 5.37305 12 12 12h21.3877c-1 12.958 -0.828125 28.6377 0.181641 42.2451h-21.5693c-6.62695 0 -12 5.37305 -12 12v29.7549c0 6.62695 5.37305 12 12 12h33.0752c28.9551 83.748 107.376 144 204.56 144c21.0752 0 40.582 -2.91211 52.6865 -5.20703
+c6.86035 -1.30078 11.1475 -8.17578 9.32617 -14.917l-11.9912 -44.3682c-1.65527 -6.125 -7.78613 -9.89062 -14.002 -8.62305c-9.28711 1.89551 -23.3652 4.14551 -37.8516 4.14551c-54.9287 0 -96.9854 -30.0391 -117.619 -75.0303h138.278
+c7.66211 0 13.3613 -7.08203 11.7227 -14.5664l-6.51172 -29.7549c-1.13965 -5.20703 -6.3916 -9.43359 -11.7227 -9.43359v0h-146.593c-1.55176 -13.958 -1.34766 -27.917 -0.137695 -42.2451h134.237c7.68945 0 13.3936 -7.12891 11.708 -14.6309l-6.37305 -28.3604
+c-1.16211 -5.17188 -6.40723 -9.36914 -11.708 -9.36914h-113.689c19.5322 -50.6582 64.6982 -85.4482 121.462 -85.4482c18.0039 0 34.7334 2.97363 45.4258 5.41211c6.58887 1.50391 13.1094 -2.73828 14.4238 -9.36816z" />
+ <glyph glyph-name="pound-sign" unicode="" horiz-adv-x="320"
+d="M308 96c6.62695 0 12 -5.37305 12 -12v-104c0 -6.62695 -5.37305 -12 -12 -12h-296c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h36v128h-28c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h28v66.0391
+c0 73.2188 58.0264 125.961 139.931 125.961c48.6455 0 85.1934 -22.5596 101.575 -34.9277c5.39844 -4.07617 6.35254 -11.8057 2.11914 -17.0811l-28.4932 -35.5137c-3.7998 -4.73535 -10.5371 -5.89746 -15.6875 -2.68457
+c-11.7744 7.34375 -33.9941 18.8486 -57.6523 18.8486c-37.2305 0 -61.792 -24.8193 -61.792 -57.0859v-63.5557h84c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-84v-126.848h122.505v50.8477c0 6.62695 5.37305 12 12 12h45.4951z" />
+ <glyph glyph-name="dollar-sign" unicode="" horiz-adv-x="288"
+d="M209.2 214.6c57.8994 -16.8994 94 -80.0996 72.5 -141.699c-15.4004 -44.1006 -59.1006 -71.8008 -105.7 -72.7002v-48.2002c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v48c-31.4004 0.0996094 -62 10.7998 -86.5 30
+c-7.90039 6.09961 -8.90039 17.5996 -1.7998 24.5l34.7998 34c5.2002 5.09961 13.4004 6.09961 19.5 2c10 -6.7998 22 -10.5 34.2002 -10.5h66.2998c16.2998 0 29.5 13.2002 29.5 29.5c0 13 -8.7002 24.5996 -21.2002 28.2998l-102.5 30
+c-44.3994 13 -79.5996 50.5 -83.7998 96.6006c-5.90039 64.8994 45.2998 119.6 109 119.6h2.5v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48c31.4004 -0.0996094 62 -10.7998 86.5 -30c7.90039 -6.09961 8.90039 -17.5996 1.7998 -24.5l-34.7998 -34
+c-5.2002 -5.09961 -13.4004 -6.09961 -19.5 -2c-10 6.7998 -22 10.5 -34.2002 10.5h-66.2998c-16.2998 0 -29.5 -13.2002 -29.5 -29.5c0 -13 8.7002 -24.7002 21.2002 -28.2998z" />
+ <glyph glyph-name="rupee-sign" unicode="" horiz-adv-x="320"
+d="M308 352h-72.9424c5.97266 -9.75391 10.7666 -20.459 14.252 -32h58.6904c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-52.8105c-7.1748 -74.5107 -61.8193 -125.566 -138.318 -127.906l150.882 -139.275
+c8.02734 -7.41016 2.78516 -20.8184 -8.13867 -20.8184h-82.5625c-2.58984 0 -6.23535 1.42578 -8.13867 3.18164l-165.052 152.356c-2.46094 2.27148 -3.86133 5.46875 -3.86133 8.81836v53.0117c0 6.62695 5.37305 12 12 12h84c41.7959 0 68.54 22.5459 74.7568 58.6318
+h-158.757c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h146.25c-12.709 17.2939 -33.6621 27.252 -60.9697 27.252h-85.2803c-6.62695 0 -12 5.37305 -12 12v44.748c0 6.62695 5.37305 12 12 12h296c6.62695 0 12 -5.37305 12 -12v-40
+c0 -6.62695 -5.37305 -12 -12 -12z" />
+ <glyph glyph-name="yen-sign" unicode="" horiz-adv-x="384"
+d="M351.2 416c9.09961 0 14.8994 -9.7002 10.5996 -17.5996l-80.0996 -150.4h58.2998c6.59961 0 12 -5.40039 12 -12v-32c0 -6.59961 -5.40039 -12 -12 -12h-88.2002l-19.7998 -37.2002v-26.7998h108c6.59961 0 12 -5.40039 12 -12v-32c0 -6.59961 -5.40039 -12 -12 -12
+h-108v-92c0 -6.59961 -5.40039 -12 -12 -12h-56c-6.59961 0 -12 5.40039 -12 12v92h-108c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h108v26.7998l-19.7998 37.2002h-88.2002c-6.59961 0 -12 5.40039 -12 12v32c0 6.59961 5.40039 12 12 12h58.2998
+l-80.0996 150.4c-4.2002 7.89941 1.5 17.5996 10.5996 17.5996h65.2002c4.59961 0 8.7998 -2.59961 10.7998 -6.7002l55.4004 -113.2c14.5 -34.6992 27.0996 -71.8994 27.0996 -71.8994h1.2998s12.6006 37.2002 27.1006 71.8994l55.3994 113.2
+c2 4.10059 6.2002 6.7002 10.8008 6.7002h65.2998z" />
+ <glyph glyph-name="ruble-sign" unicode="" horiz-adv-x="384"
+d="M239.36 128h-92.8008v-32h161.44c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-161.44v-52c0 -6.62695 -5.37305 -12 -12 -12h-58.5596c-6.62695 0 -12 5.37305 -12 12v52h-52c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h52
+v32h-52c-6.62695 0 -12 5.37305 -12 12v45.3682c0 6.62695 5.37305 12 12 12h52v206.632c0 6.62695 5.37305 12 12 12h163.36c85.1201 0 144.64 -57.5996 144.64 -143.071c0 -85.4707 -59.5195 -144.929 -144.64 -144.929zM146.56 347.252v-149.884h77.4404
+c48 0 76.1602 29.7285 76.1602 75.5605c0 45.2129 -28.1602 74.3232 -74.8799 74.3232h-78.7207z" />
+ <glyph glyph-name="won-sign" unicode="" horiz-adv-x="576"
+d="M564 256h-62.7002l-7.39941 -32h70.0996c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84.9004l-42.0996 -182.7c-1.2998 -5.39941 -6.09961 -9.2998 -11.7002 -9.2998h-56.7998c-5.59961 0 -10.4004 3.90039 -11.7002 9.2998l-42.3994 182.7
+h-55.1006l-42.2998 -182.7c-1.2998 -5.39941 -6.09961 -9.2998 -11.7002 -9.2998h-56.7998c-5.59961 0 -10.5 3.90039 -11.7002 9.40039l-40.8994 182.6h-83.9004c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h69.5l-7.2002 32h-62.2998
+c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h48l-18.0996 80.7002c-1.7002 7.5 4 14.5996 11.6992 14.5996h42.1006c5.7002 0 10.7002 -4 11.7998 -9.59961l17.5 -85.7002h108.7l20 86c1.2998 5.5 6.09961 9.2998 11.7002 9.2998h44
+c5.59961 0 10.3994 -3.7998 11.6992 -9.2998l19.7002 -86h109.9l14.3994 85.7998c1.10059 5.5 6 9.5 11.7002 9.5h46.1006c7.69922 0 13.3994 -7.2002 11.6992 -14.7002l-18.5996 -80.5996h48c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM183.8 106
+l12.6006 54h-38.8008l11 -54c5.10059 -25.2002 6.80078 -47.2002 6.80078 -47.2002h1.09961c0.5 0 1.09961 21.4004 7.2998 47.2002zM211.3 224l7.5 32h-80.7998l6.5 -32h66.7998zM274.2 224h25.3994l-2 8.59961c-1.89941 8 -3.5 16 -4.7998 23.4004h-11.7998
+c-1.2998 -7.40039 -2.90039 -15.4004 -4.7998 -23.4004zM405.1 106l11.5 54h-39.0996l12.4004 -54c6.19922 -25.7998 6.69922 -47.2002 7.2998 -47.2002h1.09961s1.7002 22 6.7998 47.2002zM430.3 224l6.90039 32h-81.6006l7.30078 -32h67.3994z" />
+ <glyph glyph-name="file" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98
+c4.5 -4.5 7 -10.5996 7 -16.9004z" />
+ <glyph glyph-name="file-alt" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM288 76v8c0 6.59961 -5.40039 12 -12 12h-168c-6.59961 0 -12 -5.40039 -12 -12v-8
+c0 -6.59961 5.40039 -12 12 -12h168c6.59961 0 12 5.40039 12 12zM288 140v8c0 6.59961 -5.40039 12 -12 12h-168c-6.59961 0 -12 -5.40039 -12 -12v-8c0 -6.59961 5.40039 -12 12 -12h168c6.59961 0 12 5.40039 12 12zM288 212c0 6.59961 -5.40039 12 -12 12h-168
+c-6.59961 0 -12 -5.40039 -12 -12v-8c0 -6.59961 5.40039 -12 12 -12h168c6.59961 0 12 5.40039 12 12v8zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
+ <glyph glyph-name="sort-alpha-down" unicode="" horiz-adv-x="448"
+d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.58691 -2.58496 -7.65332 -4.68262 -11.3105 -4.68262c-3.65625 0 -8.72266 2.09766 -11.3096 4.68262l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83203 7.16797 16 16 16h32
+c8.83203 0 16 -7.16797 16 -16v-304h48zM416 160c8.83203 0 16 -7.16797 16 -16v-17.6299v-0.00292969c0 -7.93262 -4.81152 -18.6475 -10.7402 -23.917l-61.2598 -70.4502h56c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128
+c-8.83203 0 -16 7.16797 -16 16v17.6299v0.00292969c0 7.93262 4.81152 18.6475 10.7402 23.917l61.2598 70.4502h-56c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128zM447.06 245.38c0.514648 -1.44043 0.931641 -3.85059 0.931641 -5.37988
+c0 -8.82715 -7.16406 -15.9951 -15.9912 -16h-24.8398h-0.0449219c-6.42773 0 -13.249 4.96387 -15.2256 11.0801l-4.40918 12.9199h-71l-4.4209 -12.9199c-1.97559 -6.11621 -8.79688 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
+c-8.82715 0.00488281 -15.9912 7.17285 -15.9912 16c0 1.5293 0.416992 3.93945 0.931641 5.37988l59.2695 160c2.09277 5.8623 8.84375 10.6201 15.0684 10.6201h0.00195312h41.4395h0.00195312c6.22461 0 12.9756 -4.75781 15.0684 -10.6201zM335.61 304h32.7793
+l-16.3896 48z" />
+ <glyph glyph-name="sort-alpha-up" unicode="" horiz-adv-x="448"
+d="M16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83203 -7.16797 -16 -16 -16h-32
+c-8.83203 0 -16 7.16797 -16 16v304h-48zM416 160c8.83203 0 16 -7.16797 16 -16v-17.6299v-0.00292969c0 -7.93262 -4.81152 -18.6475 -10.7402 -23.917l-61.2598 -70.4502h56c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128
+c-8.83203 0 -16 7.16797 -16 16v17.6299v0.00292969c0 7.93262 4.81152 18.6475 10.7402 23.917l61.2598 70.4502h-56c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128zM447.06 245.38c0.514648 -1.44043 0.931641 -3.85059 0.931641 -5.37988
+c0 -8.82715 -7.16406 -15.9951 -15.9912 -16h-24.8398h-0.0449219c-6.42773 0 -13.249 4.96387 -15.2256 11.0801l-4.40918 12.9199h-71l-4.4209 -12.9199c-1.97559 -6.11621 -8.79688 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
+c-8.82715 0.00488281 -15.9912 7.17285 -15.9912 16c0 1.5293 0.416992 3.93945 0.931641 5.37988l59.2695 160c2.09277 5.8623 8.84375 10.6201 15.0684 10.6201h0.00195312h41.4395h0.00195312c6.22461 0 12.9756 -4.75781 15.0684 -10.6201zM335.61 304h32.7793
+l-16.3896 48z" />
+ <glyph glyph-name="sort-amount-down" unicode=""
+d="M304 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-64c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h64zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96
+c-2.58691 -2.58496 -7.65332 -4.68262 -11.3105 -4.68262c-3.65625 0 -8.72266 2.09766 -11.3096 4.68262l-80 96c-10.0801 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83203 7.16797 16 16 16h32c8.83203 0 16 -7.16797 16 -16v-304h48zM432 288
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-192c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h192zM368 160c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h128zM496 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-256c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h256z" />
+ <glyph glyph-name="sort-amount-up" unicode=""
+d="M304 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-64c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h64zM16 288c-14.2305 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262
+s8.72363 -2.09766 11.3096 -4.68262l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v304h-48zM432 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16
+h-192c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h192zM368 160c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128zM496 416c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-256c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h256z" />
+ <glyph glyph-name="sort-numeric-down" unicode="" horiz-adv-x="448"
+d="M304 352c-8.82422 0.0078125 -15.9863 7.17578 -15.9863 16c0 2.08984 0.759766 5.30176 1.69629 7.16992l16 32c2.44141 4.87012 8.84277 8.8252 14.29 8.83008h48c8.83203 0 16 -7.16797 16 -16v-112h16c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h16v64h-16zM330.15 189.09c53.4502 14.25 101.85 -25.8799 101.869 -77.0898v-10.7695c0 -70.3906 -28.25 -107.24 -86.25 -132
+c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c6.2793 2.71387 15.6201 8.49805 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8496 102.53c6.80762 23.4512 31.4473 47.7197 55 54.1699z
+M352 92c11.04 0 20 8.95996 20 20s-8.95996 20 -20 20s-20 -8.95996 -20 -20s8.95996 -20 20 -20zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.58691 -2.58496 -7.65332 -4.68262 -11.3105 -4.68262c-3.65625 0 -8.72266 2.09766 -11.3096 4.68262
+l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83203 7.16797 16 16 16h32c8.83203 0 16 -7.16797 16 -16v-304h48z" />
+ <glyph glyph-name="sort-numeric-up" unicode="" horiz-adv-x="448"
+d="M330.17 189.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898v-10.7695c0 -70.3906 -28.25 -107.24 -86.25 -132c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408
+c6.2793 2.71387 15.6201 8.49805 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c6.80762 23.4512 31.4482 47.7197 55 54.1699zM352 92c11.04 0 20 8.95996 20 20s-8.95996 20 -20 20s-20 -8.95996 -20 -20s8.95996 -20 20 -20zM304 352
+c-8.82422 0.0078125 -15.9863 7.17578 -15.9863 16c0 2.08984 0.759766 5.30176 1.69629 7.16992l16 32c2.44141 4.87012 8.84277 8.8252 14.29 8.83008h48c8.83203 0 16 -7.16797 16 -16v-112h16c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-96
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h16v64h-16zM107.31 411.31l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v304h-48
+c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262z" />
+ <glyph glyph-name="thumbs-up" unicode=""
+d="M104 224c13.2549 0 24 -10.7451 24 -24v-240c0 -13.2549 -10.7451 -24 -24 -24h-80c-13.2549 0 -24 10.7451 -24 24v240c0 13.2549 10.7451 24 24 24h80zM64 -24c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24zM384 366.548
+c0 -42.416 -25.9697 -66.208 -33.2773 -94.5479h101.724c33.3965 0 59.3965 -27.7461 59.5527 -58.0977c0.0839844 -17.9385 -7.5459 -37.249 -19.4395 -49.1973l-0.109375 -0.110352c9.83594 -23.3369 8.23633 -56.0371 -9.30859 -79.4688
+c8.68164 -25.8945 -0.0683594 -57.7041 -16.3818 -74.7568c4.29785 -17.5977 2.24414 -32.5752 -6.14746 -44.6318c-20.4102 -29.3242 -70.9961 -29.7373 -113.773 -29.7373l-2.84473 0.000976562c-48.2871 0.0166016 -87.8057 17.5977 -119.561 31.7246
+c-15.957 7.09961 -36.8203 15.8877 -52.6504 16.1787c-6.54004 0.120117 -11.7832 5.45703 -11.7832 11.998v213.77c0 3.2002 1.28223 6.27148 3.55762 8.52148c39.6143 39.1436 56.6484 80.5869 89.1172 113.11c14.8037 14.832 20.1885 37.2363 25.3936 58.9023
+c4.44629 18.501 13.749 57.7939 33.9316 57.7939c24 0 72 -8 72 -81.4521z" />
+ <glyph glyph-name="thumbs-down" unicode=""
+d="M0 392c0 13.2549 10.7451 24 24 24h80c13.2549 0 24 -10.7451 24 -24v-240c0 -13.2549 -10.7451 -24 -24 -24h-80c-13.2549 0 -24 10.7451 -24 24v240zM40 192c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24zM312 -64
+c-20.1826 0 -29.4854 39.293 -33.9307 57.7949c-5.20605 21.666 -10.5889 44.0703 -25.3936 58.9023c-32.4688 32.5234 -49.5029 73.9668 -89.1172 113.11c-1.96387 1.94141 -3.55762 5.75879 -3.55762 8.52051v0.000976562v213.77
+c0 6.54102 5.24316 11.8779 11.7832 11.998c15.8311 0.290039 36.6934 9.0791 52.6504 16.1787c31.7549 14.127 71.2744 31.708 119.561 31.7246h2.84375c42.7773 0 93.3633 -0.413086 113.774 -29.7373c8.3916 -12.0566 10.4453 -27.0342 6.14746 -44.6318
+c16.3125 -17.0527 25.0635 -48.8633 16.3818 -74.7568c17.5439 -23.4316 19.1436 -56.1318 9.30859 -79.4688l0.109375 -0.110352c11.8936 -11.9492 19.5234 -31.2588 19.4395 -49.1973c-0.15625 -30.3516 -26.1572 -58.0977 -59.5527 -58.0977h-101.725
+c7.30762 -28.3398 33.2773 -52.1318 33.2773 -94.5479c0 -73.4521 -48 -81.4521 -72 -81.4521z" />
+ <glyph glyph-name="female" unicode="" horiz-adv-x="256"
+d="M128 448c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM247.283 93.8213c3.78809 -15.1504 -7.69238 -29.8213 -23.2832 -29.8213h-56v-104c0 -13.2549 -10.7451 -24 -24 -24h-32c-13.2549 0 -24 10.7451 -24 24v104h-56
+c-15.6172 0 -27.0654 14.6953 -23.2832 29.8213l48 192c2.50879 10.0342 12.9395 18.1787 23.2832 18.1787h11.3604c23.6895 -10.8936 50.5684 -10.4434 73.2793 0h11.3604c10.3438 0 20.7744 -8.14453 23.2832 -18.1787z" />
+ <glyph glyph-name="male" unicode="" horiz-adv-x="192"
+d="M96 448c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM144 304c26.5098 0 48 -21.4902 48 -48v-136c0 -13.2549 -10.7451 -24 -24 -24h-16v-136c0 -13.2549 -10.7451 -24 -24 -24h-64c-13.2549 0 -24 10.7451 -24 24v136h-16
+c-13.2549 0 -24 10.7451 -24 24v136c0 26.5098 21.4902 48 48 48h11.3604c23.6895 -10.8936 50.5684 -10.4434 73.2793 0h11.3604z" />
+ <glyph glyph-name="sun" unicode=""
+d="M256 288c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96s-96 43.0996 -96 96s43.0996 96 96 96zM502.4 207.5c12.7998 -6.40039 12.7998 -24.5996 -0.200195 -31.0996l-94.7002 -47.3008l33.5 -100.399c4.59961 -13.5 -8.2998 -26.4004 -21.9004 -21.9004
+l-100.399 33.5l-47.2998 -94.7002c-6.40039 -12.7998 -24.6006 -12.7998 -31 0l-47.3008 94.7002l-100.399 -33.5c-13.5 -4.59961 -26.4004 8.2998 -21.9004 21.9004l33.5 100.5l-94.7002 47.2998c-12.7998 6.40039 -12.7998 24.5996 0 31l94.7002 47.4004l-33.5 100.399
+c-4.59961 13.5 8.2998 26.4004 21.9004 21.9004l100.5 -33.5l47.2998 94.7002c6.40039 12.7998 24.5996 12.7998 31 0l47.4004 -94.8008l100.399 33.5c13.5 4.60059 26.4004 -8.2998 21.9004 -21.8994l-33.5 -100.4zM346.5 101.5c49.9004 49.9004 49.9004 131.1 0 181
+s-131.1 49.9004 -181 0s-49.9004 -131.1 0 -181s131.1 -49.9004 181 0z" />
+ <glyph glyph-name="moon" unicode=""
+d="M283.211 -64c-141.489 0 -256 114.691 -256 256c0 141.489 114.691 256 256 256c13.0176 -0.00195312 33.9727 -1.91895 46.7754 -4.28027c11.0059 -2.0332 13.4414 -16.7178 3.75586 -22.2295c-62.8359 -35.7588 -101.498 -102.172 -101.498 -174.395
+c0 -125.378 114.059 -220.607 238.262 -196.954c10.9229 2.08008 18.6299 -10.6416 11.5625 -19.3496c-47.7783 -58.8672 -119.896 -94.792 -198.857 -94.792z" />
+ <glyph glyph-name="archive" unicode=""
+d="M32 0v288h448v-288c0 -17.7002 -14.2998 -32 -32 -32h-384c-17.7002 0 -32 14.2998 -32 32zM192 212v-8c0 -6.59961 5.40039 -12 12 -12h104c6.59961 0 12 5.40039 12 12v8c0 6.59961 -5.40039 12 -12 12h-104c-6.59961 0 -12 -5.40039 -12 -12zM480 416
+c17.7002 0 32 -14.2998 32 -32v-48c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v48c0 17.7002 14.2998 32 32 32h448z" />
+ <glyph glyph-name="bug" unicode=""
+d="M511.988 159.1c-0.478516 -17.4297 -15.2168 -31.0996 -32.6533 -31.0996h-55.335v-16c0 -21.8643 -4.88184 -42.584 -13.5996 -61.1445l60.2275 -60.2285c12.4961 -12.4971 12.4961 -32.7578 0 -45.2549c-12.498 -12.4971 -32.7588 -12.4961 -45.2559 0
+l-54.7363 54.7363c-24.75 -20.0732 -56.2852 -32.1084 -90.6357 -32.1084v244c0 6.62695 -5.37305 12 -12 12h-24c-6.62695 0 -12 -5.37305 -12 -12v-244c-34.3506 0 -65.8857 12.0352 -90.6357 32.1084l-54.7363 -54.7363c-12.498 -12.4971 -32.7588 -12.4961 -45.2559 0
+c-12.4961 12.4971 -12.4961 32.7578 0 45.2549l60.2275 60.2285c-8.71777 18.5605 -13.5996 39.2803 -13.5996 61.1445v16h-55.334c-17.4355 0 -32.1748 13.6699 -32.6533 31.0996c-0.49707 18.084 14.0156 32.9004 31.9873 32.9004h56v58.7451l-46.6279 46.6279
+c-12.4961 12.4971 -12.4961 32.7578 0 45.2549c12.498 12.4971 32.7578 12.4971 45.2559 0l54.627 -54.6279h229.489l54.627 54.627c12.498 12.4971 32.7578 12.4971 45.2559 0c12.4961 -12.4971 12.4961 -32.7578 0 -45.2549l-46.627 -46.627v-58.7451h56
+c17.9717 0 32.4844 -14.8164 31.9883 -32.9004zM257 448c61.8564 0 112 -50.1436 112 -112h-224c0 61.8564 50.1436 112 112 112z" />
+ <glyph glyph-name="caret-square-left" unicode="" horiz-adv-x="448"
+d="M400 -32h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48zM259.515 323.515l-123.029 -123.029c-4.68652 -4.68652 -4.68652 -12.2842 0 -16.9717l123.028 -123.028
+c7.56055 -7.56055 20.4854 -2.20605 20.4854 8.48438v246.06c0.000976562 10.6904 -12.9248 16.0449 -20.4844 8.48535z" />
+ <glyph glyph-name="dot-circle" unicode=""
+d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM336 192c0 44.1123 -35.8877 80 -80 80s-80 -35.8877 -80 -80s35.8877 -80 80 -80s80 35.8877 80 80z" />
+ <glyph glyph-name="wheelchair" unicode=""
+d="M496.101 62.3311l14.2275 -28.6631c3.92871 -7.91504 0.697266 -17.5156 -7.21777 -21.4453l-65.4658 -32.8857c-16.0488 -7.9668 -35.5557 -1.19434 -43.1885 15.0547l-62.7773 133.608h-139.679c-15.9248 0 -29.4258 11.71 -31.6787 27.4746
+c-33.8887 237.218 -31.9414 222.481 -32.3213 228.525c0 36.3584 30.3184 65.6348 67.0518 63.9287c33.2715 -1.54492 60.0479 -28.9043 60.9248 -62.2012c0.868164 -32.9326 -23.1514 -60.4229 -54.6074 -65.0381l4.66992 -32.6904h129.961c8.83691 0 16 -7.16309 16 -16
+v-32c0 -8.83691 -7.16309 -16 -16 -16h-120.818l4.57227 -32h132.246c11.2168 0 24.1924 -8.24023 28.9619 -18.3916l57.5146 -122.407l36.1787 18.3486c7.91504 3.92871 17.5166 0.697266 21.4453 -7.21777zM311.358 96l25.752 -54.8076
+c-27.3047 -61.8848 -89.2402 -105.192 -161.11 -105.192c-97.0469 0 -176 78.9531 -176 176c0 74.0371 45.9561 137.536 110.836 163.489c2.64453 -18.4736 5.77637 -40.3682 9.48828 -66.333c-33.6299 -19.3477 -56.3242 -55.6514 -56.3242 -97.1562
+c0 -61.7568 50.2432 -112 112 -112c56.3242 0 103.064 41.7959 110.852 96h24.5068z" />
+ <glyph glyph-name="lira-sign" unicode="" horiz-adv-x="384"
+d="M371.994 192c6.78613 0 12.2578 -5.62598 11.9971 -12.4082c-5.15332 -133.758 -94.3174 -211.592 -228.408 -211.592h-79.583c-6.62695 0 -12 5.37305 -12 12v193.442l-49.3975 -10.9775c-7.49316 -1.66602 -14.6025 4.03711 -14.6025 11.7139v40.9766
+c0 5.31348 4.20996 10.5615 9.39746 11.7139l54.6025 12.1338v30.4395l-49.3975 -10.9775c-7.49316 -1.66602 -14.6025 4.03711 -14.6025 11.7139v40.9766c0 5.31348 4.20996 10.5615 9.39746 11.7139l54.6025 12.1338v68.9971c0 6.62695 5.37305 12 12 12h56
+c6.62695 0 12 -5.37305 12 -12v-51.2188l129.397 28.7539c7.49316 1.66602 14.6025 -4.03711 14.6025 -11.7139v-40.9756c0 -5.31348 -4.20996 -10.5615 -9.39746 -11.7139l-134.603 -29.9121v-30.4385l129.397 28.7539c7.49316 1.66602 14.6025 -4.03711 14.6025 -11.7139
+v-40.9766c0 -5.31348 -4.20996 -10.5615 -9.39746 -11.7139l-134.603 -29.9121v-159.219c86.1787 0 168 48 168 148.754c0 6.33398 5.63965 11.2461 11.9746 11.2461h48.0195z" />
+ <glyph glyph-name="space-shuttle" unicode="" horiz-adv-x="640"
+d="M592.604 239.756c29.6787 -13.9111 47.3965 -31.7637 47.3965 -47.7559s-17.7178 -33.8447 -47.3965 -47.7559c-32.8682 -15.4082 -76.8262 -24.2441 -120.604 -24.2441h-285.674c-4.95215 -6.55469 -10.585 -11.9775 -16.7197 -16h206.394
+c-146.843 -30.2529 -156.597 -136 -279.997 -136h-0.00292969v128h-16v-128c-26.5098 0 -48 28.6543 -48 64v64c-23.1807 0 -32 10.0166 -32 24v40c0 13.9678 8.80273 24 32 24v16c-23.1807 0 -32 10.0166 -32 24v40c0 13.9678 8.80273 24 32 24v64
+c0 35.3457 21.4902 64 48 64v-128h16v128h0.00292969c123.4 0 133.154 -105.747 279.997 -136h-206.393c6.13477 -4.02246 11.7676 -9.44531 16.7197 -16h285.673c43.7773 0 87.7354 -8.83594 120.604 -24.2441zM488 152c31.9424 0 31.9092 80 0 80
+c-4.41602 0 -8 -3.58398 -8 -8v-64c0 -4.41602 3.58398 -8 8 -8z" />
+ <glyph glyph-name="envelope-square" unicode="" horiz-adv-x="448"
+d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM178.117 185.896c10.5156 -7.66895 31.3799 -26.1133 45.8828 -25.8955
+c14.4912 -0.225586 35.3828 18.2393 45.8828 25.8936c90.6836 65.8145 89.7461 65.9697 114.117 84.9385v25.167c0 13.2549 -10.7451 24 -24 24h-272c-13.2549 0 -24 -10.7451 -24 -24v-25.167c24.3525 -18.9541 23.4287 -19.1201 114.117 -84.9365zM384 230.225
+c-13.958 -10.793 -33.3252 -25.2334 -95.2832 -70.1982c-13.6826 -9.98438 -37.833 -32.1592 -64.7197 -32.0254c-26.7188 -0.134766 -50.5322 21.6689 -64.6943 32.0098c-61.9736 44.9785 -81.3447 59.4199 -95.3027 70.2139v-142.225c0 -13.2549 10.7451 -24 24 -24h272
+c13.2549 0 24 10.7451 24 24v142.225z" />
+ <glyph glyph-name="university" unicode=""
+d="M496 320v-16c0 -4.41602 -3.58398 -8 -8 -8h-24v-12c0 -6.62695 -5.37305 -12 -12 -12h-392c-6.62695 0 -12 5.37305 -12 12v12h-24c-4.41602 0 -8 3.58398 -8 8v16c0 2.95215 2.21387 6.26367 4.94141 7.3916l232 88
+c0.810547 0.335938 2.18066 0.608398 3.05859 0.608398s2.24805 -0.272461 3.05859 -0.608398l232 -88c2.72754 -1.12793 4.94141 -4.43945 4.94141 -7.3916zM472 16c13.2549 0 24 -10.7451 24 -24v-16c0 -4.41602 -3.58398 -8 -8 -8h-464c-4.41602 0 -8 3.58398 -8 8v16
+c0 13.2549 10.7451 24 24 24h432zM96 256h64v-192h64v192h64v-192h64v192h64v-192h36c6.62695 0 12 -5.37305 12 -12v-20h-416v20c0 6.62695 5.37305 12 12 12h36v192z" />
+ <glyph glyph-name="graduation-cap" unicode="" horiz-adv-x="640"
+d="M622.34 294.8c23.5498 -7.24023 23.5498 -38.3594 0 -45.5996l-278.95 -85.7002c-20.3496 -6.25 -37.7295 -2.78027 -46.79 0l-195.569 60.0898c-12.25 -8.41992 -19.9307 -21.7002 -20.6904 -36.7197c9.19043 -5.62012 15.6602 -15.2998 15.6602 -26.8701
+c0 -10.7803 -5.67969 -19.8496 -13.8604 -25.6504l25.5303 -114.88c2.21973 -9.98926 -5.37988 -19.4697 -15.6201 -19.4697h-56.1094c-10.2305 0 -17.8301 9.48047 -15.6104 19.4697l25.5303 114.88c-8.18066 5.80078 -13.8604 14.8701 -13.8604 25.6504
+c0 11.8896 6.78027 21.8496 16.4102 27.3701c0.649414 17.6201 7.20996 33.71 17.8799 46.8994l-48.6299 14.9404c-23.54 7.23047 -23.54 38.3604 0 45.5898l278.95 85.7002c15.1895 4.66992 31.5898 4.66992 46.79 0zM352.79 132.91l145.03 44.5596l14.1797 -113.47
+c0 -35.3496 -85.96 -64 -192 -64s-192 28.6504 -192 64l14.1797 113.46l145.021 -44.5498c12.75 -3.91992 37.0596 -8.75977 65.5898 0z" />
+ <glyph glyph-name="language" unicode="" horiz-adv-x="640"
+d="M152.1 211.8l10.9004 -37.5h-38.0996l11.0996 37.5c3.5 12.1006 7.7998 33.2002 7.7998 33.2002h0.5s4.2998 -21.0996 7.7998 -33.2002zM616 352c13.2998 0 24 -10.7002 24 -24v-272c0 -13.2998 -10.7002 -24 -24 -24h-280v320h280zM592 232v16
+c0 6.59961 -5.40039 12 -12 12h-64v16c0 6.59961 -5.40039 12 -12 12h-16c-6.59961 0 -12 -5.40039 -12 -12v-16h-64c-6.59961 0 -12 -5.40039 -12 -12v-16c0 -6.59961 5.40039 -12 12 -12h114.3c-6.2002 -14.2998 -16.5 -29 -30 -43.2002
+c-6.59961 6.90039 -12.3994 13.9004 -17.3994 20.9004c-3.60059 5.09961 -10.6006 6.59961 -16 3.39941l-7.30078 -4.2998l-6.5 -3.89941c-5.89941 -3.5 -7.69922 -11.4004 -3.69922 -17.1006c6.09961 -8.7002 13.0996 -17.2998 21 -25.7002
+c-8.10059 -6.2998 -16.8008 -12.2998 -26.1006 -18c-5.59961 -3.39941 -7.39941 -10.5996 -4.2002 -16.1992l7.90039 -13.9004c3.40039 -5.90039 10.9004 -7.7998 16.7002 -4.2998c12.7002 7.7998 24.5 16.2002 35.3994 24.8994
+c10.9004 -8.7998 22.8008 -17.0996 35.4004 -24.8994c5.7998 -3.5 13.2998 -1.60059 16.7002 4.2998l7.89941 13.9004c3.2002 5.69922 1.40039 12.7998 -4.09961 16.1992c-9 5.5 -17.7002 11.6006 -26.0996 18c21 22.5 35.7998 46.3008 42.6992 69.9004h11.4004
+c6.59961 0 12 5.40039 12 12zM0 328c0 13.2998 10.7002 24 24 24h280v-320h-280c-13.2998 0 -24 10.7002 -24 24v272zM58.9004 111.9c-2.60059 -7.80078 3.19922 -15.9004 11.3994 -15.9004h22.9004c5.2998 0 10 3.59961 11.5 8.7002l9.09961 31.7998h60.2002
+l9.40039 -31.9004c1.40137 -4.74316 6.55273 -8.59668 11.5 -8.59961h22.8994c8.2998 0 14 8.09961 11.4004 15.9004l-57.5 169.1c-1.7002 4.7998 -6.2998 8.09961 -11.4004 8.09961h-32.5c-5.2002 0 -9.7002 -3.19922 -11.3994 -8.09961z" />
+ <glyph glyph-name="fax" unicode=""
+d="M64 320c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h32zM480 288c17.6699 0 32 -14.3301 32 -32v-288c0 -17.6699 -14.3301 -32 -32 -32h-320c-17.6699 0 -32 14.3301 -32 32
+v448c0 17.6699 14.3301 32 32 32h242.74c8.49023 0 16.6299 -3.37012 22.6299 -9.37012l45.2598 -45.25c6 -6.00977 9.37012 -14.1396 9.37012 -22.6299v-82.75zM288 16v32c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-32
+c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16zM288 144v32c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16zM416 16v32c0 8.83984 -7.16016 16 -16 16h-32
+c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16zM416 144v32c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16zM432 256v96h-32
+c-8.83984 0 -16 7.16016 -16 16v32h-208v-144h256z" />
+ <glyph glyph-name="building" unicode="" horiz-adv-x="448"
+d="M436 -32c6.62695 0 12 -5.37305 12 -12v-20h-448v20c0 6.62695 5.37305 12 12 12h20v456c0 13.2549 10.7451 24 24 24h336c13.2549 0 24 -10.7451 24 -24v-456h20zM128 372v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40
+c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12zM128 276v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12zM180 128c6.62695 0 12 5.37305 12 12v40
+c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40zM256 -32v84c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-84h64zM320 140v40c0 6.62695 -5.37305 12 -12 12h-40
+c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM320 236v40c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12zM320 332v40
+c0 6.62695 -5.37305 12 -12 12h-40c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h40c6.62695 0 12 5.37305 12 12z" />
+ <glyph glyph-name="child" unicode="" horiz-adv-x="384"
+d="M120 376c0 39.7646 32.2354 72 72 72s72 -32.2354 72 -72c0 -39.7637 -32.2354 -72 -72 -72s-72 32.2363 -72 72zM374.627 374.627c12.4971 -12.4971 12.4971 -32.7568 0 -45.2539l-94.627 -94.627v-266.746c0 -17.6729 -14.3271 -32 -32 -32h-16
+c-17.6729 0 -32 14.3271 -32 32v112h-16v-112c0 -17.6729 -14.3271 -32 -32 -32h-16c-17.6729 0 -32 14.3271 -32 32v266.746l-94.627 94.626c-12.4971 12.4971 -12.4971 32.7578 0 45.2549c12.4961 12.4971 32.7578 12.4971 45.2539 0l86.627 -86.627h101.491
+l86.6279 86.627c12.4961 12.4971 32.7578 12.4971 45.2539 0z" />
+ <glyph glyph-name="paw" unicode=""
+d="M256 224c79.4102 0 192 -122.76 192 -200.25c0 -34.9004 -26.8096 -55.75 -71.7402 -55.75c-48.4102 0 -80.75 25.0801 -120.26 25.0801c-39.1699 0 -71.4199 -25.0801 -120.26 -25.0801c-44.9307 0 -71.7402 20.8496 -71.7402 55.75c0 77.4902 112.59 200.25 192 200.25
+zM108.72 236.61c10.4004 -34.6504 -4.76953 -68.3799 -33.8896 -75.3408c-29.1201 -6.95996 -61.1602 15.4805 -71.5605 50.1309c-10.3994 34.6494 4.77051 68.3799 33.8906 75.3398s61.1602 -15.4805 71.5596 -50.1299zM193.44 257.39
+c-30.9307 -8.14941 -65.6201 20.4502 -77.46 63.8701c-11.8408 43.4199 3.63965 85.2207 34.5791 93.3604c30.9404 8.13965 65.6201 -20.4502 77.46 -63.8701c11.8408 -43.4199 -3.63965 -85.2197 -34.5791 -93.3604zM474.83 286.73
+c29.1201 -6.96094 44.29 -40.6904 33.8896 -75.3408c-10.4102 -34.6494 -42.4395 -57.0898 -71.5596 -50.1299s-44.29 40.6904 -33.8906 75.3398c10.4102 34.6504 42.4404 57.0908 71.5605 50.1309zM318.56 257.39c-30.9395 8.14062 -46.4199 49.9404 -34.5791 93.3604
+c11.8398 43.4199 46.5195 72.0195 77.46 63.8701c30.9395 -8.15039 46.4199 -49.9404 34.5791 -93.3604c-11.8398 -43.4199 -46.5195 -72.0098 -77.46 -63.8701z" />
+ <glyph glyph-name="cube" unicode=""
+d="M239.1 441.7c10.9004 4.09961 22.9004 4.09961 33.7002 -0.100586l208 -78c18.7002 -7 31.1006 -24.8994 31.1006 -44.8994v-225.101c0 -18.0996 -10.2002 -34.7998 -26.5 -42.8994l-208 -104c-13.5 -6.7998 -29.4004 -6.7998 -42.9004 0l-208 104
+c-16.2002 8.09961 -26.5 24.7002 -26.5 42.8994v225.101c0 20 12.4004 38 31.0996 45zM256 379.6l-192 -72v-1.09961l192 -78l192 78v1.09961zM288 23.5996l160 80v133.9l-160 -65v-148.9z" />
+ <glyph glyph-name="cubes" unicode=""
+d="M488.6 197.8c14.1006 -5.2998 23.4004 -18.7002 23.4004 -33.7002v-110.1c0 -13.5996 -7.7002 -26.0996 -19.9004 -32.2002l-100 -50c-10.0996 -5.09961 -22.0996 -5.09961 -32.1992 0l-103.9 52l-103.9 -52c-10.0996 -5.09961 -22.0996 -5.09961 -32.1992 0l-100 50
+c-12.2002 6.10059 -19.9004 18.6006 -19.9004 32.2002v110.1c0 15 9.2998 28.4004 23.2998 33.7002l96.6006 36.2002v108.5c0 15 9.2998 28.4004 23.3994 33.7002l100 37.5c8.2002 3.09961 17.2002 3.09961 25.2998 0l100 -37.5
+c14.1006 -5.2998 23.4004 -18.7002 23.4004 -33.7002v-108.5zM358 233.2v73.2998l-85 -37v-68.2002zM154 343.9v-0.600586l102 -41.3994l102 41.3994v0.600586l-102 38.1992zM238 52.7998v75.4004l-85 -38.7998v-79.1006zM238 164.8v0.600586l-102 38.1992l-102 -38.1992
+v-0.600586l102 -41.3994zM478 52.7998v75.4004l-85 -38.7998v-79.1006zM478 164.8v0.600586l-102 38.1992l-102 -38.1992v-0.600586l102 -41.3994z" />
+ <glyph glyph-name="recycle" unicode=""
+d="M184.561 186.097c3.23242 -13.9971 -12.1221 -24.6348 -24.0674 -17.168l-40.7363 25.4551l-50.8672 -81.4014c-13.2832 -21.2559 2.07031 -48.9824 27.1221 -48.9824h51.9883c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-51.8848
+c-75.334 0 -121.302 83.0479 -81.4082 146.88l50.8223 81.3877l-40.7256 25.4482c-12.0811 7.54688 -8.96582 25.9609 4.87891 29.1582l110.237 25.4502c8.61133 1.9873 17.2012 -3.38086 19.1895 -11.9902zM283.122 369.012
+c-12.2842 19.6543 -41.5449 20.3193 -54.2568 -0.0214844l-17.9609 -28.7432c-3.5127 -5.62012 -10.916 -7.3291 -16.5361 -3.81738l-33.9189 21.1953c-5.62012 3.51172 -7.33008 10.9131 -3.82031 16.5332l17.9629 28.7656c37.6074 60.1709 125.295 60.0332 162.816 0
+l41.2627 -66.082l40.6875 25.4238c12.0771 7.55176 27.2646 -3.32324 24.0674 -17.168l-25.4502 -110.236c-1.97363 -8.55273 -10.5166 -13.9893 -19.1885 -11.9902l-110.237 25.4502c-13.8789 3.20508 -16.9297 21.6299 -4.87891 29.1572l40.7402 25.457zM497.288 146.88
+c39.9268 -63.8828 -6.13379 -146.88 -81.4082 -146.88h-95.8799v-47.9893c0 -14.3105 -17.3105 -21.3184 -27.3135 -11.3145l-80 79.9883c-6.24805 6.24805 -6.24805 16.3799 0 22.627l80 79.9814c10.0713 10.0703 27.3135 2.90039 27.3135 -11.3125v-47.9814h95.9844
+c25.0791 0 40.3926 27.749 27.1357 48.96l-27.5645 44.1123c-3.51172 5.62109 -1.80176 13.0234 3.81836 16.5361l33.8613 21.1582c5.62207 3.51367 13.0264 1.80273 16.5381 -3.82031z" />
+ <glyph glyph-name="car" unicode=""
+d="M499.99 272c7.80957 0 13.54 -7.33984 11.6494 -14.9102l-6 -24c-1.33008 -5.33984 -6.12988 -9.08984 -11.6396 -9.08984h-20.0703c13.4199 -11.7305 22.0703 -28.7803 22.0703 -48v-48c0 -16.1299 -6.16016 -30.6797 -16 -41.9297v-54.0703
+c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-256v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v54.0703c-9.83984 11.2598 -16 25.8096 -16 41.9297v48c0 19.2197 8.65039 36.2695 22.0801 48h-20.0703
+c-5.50977 0 -10.3096 3.75 -11.6396 9.08984l-6 24c-1.90039 7.57031 3.83008 14.9102 11.6396 14.9102h59.8604l16.6396 41.5996c17.1104 42.7705 57.9307 70.4004 103.99 70.4004h127c46.0703 0 86.8799 -27.6299 103.98 -70.4004l16.6396 -41.5996h59.8701z
+M147.93 289.83l-19.9297 -49.8301h256l-19.9297 49.8301c-7.29004 18.2197 -24.9404 30.1699 -44.5703 30.1699h-127c-19.6299 0 -37.2803 -11.9502 -44.5703 -30.1699zM96 128.2c19.2002 0 48 -3.19043 48 15.9502c0 19.1396 -28.7998 47.8496 -48 47.8496
+s-32 -12.7598 -32 -31.9004c0 -19.1396 12.7998 -31.8994 32 -31.8994zM416 128.2c19.2002 0 32 12.7598 32 31.8994c0 19.1406 -12.7998 31.9004 -32 31.9004s-48 -28.71 -48 -47.8496c0 -19.1406 28.7998 -15.9502 48 -15.9502z" />
+ <glyph glyph-name="taxi" unicode=""
+d="M462 206.36c28.5898 -6.40039 50 -31.8301 50 -62.3604v-48c0 -23.6201 -12.9502 -44.0303 -32 -55.1201v-40.8799c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-256v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32
+v40.8799c-19.0498 11.0801 -32 31.4902 -32 55.1201v48c0 30.5303 21.4102 55.96 50 62.3604l22 84.8398c9.59961 35.2002 41.5996 60.7998 76.7998 60.7998h11.2002v32c0 17.6699 14.3301 32 32 32h128c17.6699 0 32 -14.3301 32 -32v-32h11.2002
+c35.2002 0 67.2002 -25.5996 76.7998 -60.7998zM96 96c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM116.55 208h278.9l-17.3906 67.1396c-2.01953 7.37988 -9.37988 12.8604 -14.8496 12.8604h-214.4
+c-5.46973 0 -12.8291 -5.48047 -15.0596 -13.6396zM416 96c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="tree" unicode="" horiz-adv-x="384"
+d="M378.31 69.5098c6 -6.79004 7.36035 -16.0898 3.56055 -24.2598c-3.75 -8.0498 -12 -13.25 -21.0098 -13.25h-136.86v-24.4502l30.29 -48.3994c5.32031 -10.6406 -2.41992 -23.1602 -14.3096 -23.1602h-95.9609c-11.8896 0 -19.6299 12.5195 -14.3096 23.1602
+l30.29 48.3994v24.4502h-136.86c-9.00977 0 -17.2598 5.2002 -21.0098 13.25c-3.7998 8.16992 -2.43945 17.4697 3.56055 24.2598l79.8896 90.4902h-30.6299c-9.02051 0 -16.9805 5 -20.7803 13.0498c-3.79004 8.0498 -2.54004 17.2598 3.27051 24.04l78.1396 90.9102
+h-28.8896c-9.10059 0 -17.3105 5.34961 -20.8701 13.6104c-3.51074 8.12988 -1.86035 17.5898 4.23926 24.0801l110.28 117.479c6.04004 6.4502 17.29 6.4502 23.3203 0l110.27 -117.479c6.10059 -6.49023 7.76074 -15.9502 4.24023 -24.0801
+c-3.55957 -8.26074 -11.7598 -13.6104 -20.8604 -13.6104h-28.8896l78.1299 -90.8896c5.83008 -6.79004 7.08008 -16.0107 3.28027 -24.0508c-3.7998 -8.05957 -11.7705 -13.0596 -20.7803 -13.0596h-30.6299z" />
+ <glyph glyph-name="database" unicode="" horiz-adv-x="448"
+d="M448 374.857v-45.7148c0 -40.2852 -100.333 -73.1426 -224 -73.1426s-224 32.8574 -224 73.1426v45.7148c0 40.2852 100.333 73.1426 224 73.1426s224 -32.8574 224 -73.1426zM448 272v-102.857c0 -40.2852 -100.333 -73.1426 -224 -73.1426s-224 32.8574 -224 73.1426
+v102.857c48.125 -33.1426 136.208 -48.5723 224 -48.5723s175.874 15.4297 224 48.5723zM448 112v-102.857c0 -40.2852 -100.333 -73.1426 -224 -73.1426s-224 32.8574 -224 73.1426v102.857c48.125 -33.1426 136.208 -48.5723 224 -48.5723s175.874 15.4297 224 48.5723z
+" />
+ <glyph glyph-name="file-pdf" unicode="" horiz-adv-x="384"
+d="M181.9 191.9c-5 16 -4.90039 46.8994 -2 46.8994c8.39941 0 7.59961 -36.8994 2 -46.8994zM180.2 144.7c9.59961 -17.4004 21.7998 -31.2002 34.5 -40.7998c-23.9004 -4.7002 -44.6006 -14.9004 -62.9004 -21.9004c11.1006 19.4004 20.7002 42.5 28.4004 62.7002z
+M86.0996 19.9004c5.80078 15.6992 28.2002 33.8994 34.9004 40.1992c-21.7002 -34.7998 -34.9004 -41 -34.9004 -40.1992zM248 288h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136
+c0 -13.2002 10.7998 -24 24 -24zM240 116.2c-20 12.2002 -33.2998 29 -42.7002 53.7998c4.5 18.5 11.6006 46.5996 6.2002 64.2002c-4.7002 29.3994 -42.4004 26.5 -47.7998 6.7998c-5 -18.2998 -0.400391 -44.0996 8.09961 -77
+c-11.5996 -27.5996 -28.7002 -64.5996 -40.7998 -85.7998c-0.0996094 0 -0.0996094 -0.100586 -0.200195 -0.100586c-27.0996 -13.8994 -73.5996 -44.5 -54.5 -68c5.60059 -6.89941 16 -10 21.5 -10c17.9004 0 35.7002 18 61.1006 61.8008
+c25.7998 8.5 54.0996 19.0996 79 23.1992c21.6992 -11.7998 47.0996 -19.5 64 -19.5c29.1992 0 31.1992 32 19.6992 43.4004c-13.8994 13.5996 -54.2998 9.7002 -73.5996 7.2002zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6c6.40039 0 12.5 -2.5 17 -7z
+M302.9 87.7002c0 0 -5.7002 -6.7998 -42.8008 9c40.3008 2.89941 46.9004 -6.2998 42.8008 -9z" />
+ <glyph glyph-name="file-word" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM281.1 192c-5.59961 0 -10.5 -3.90039 -11.5 -9.5c-24.1992 -111.4 -21.7998 -118 -21.5996 -129.2
+c-0.799805 5.40039 -5.59961 29 -29.5996 129.4c-1.30078 5.39941 -6.10059 9.2002 -11.7002 9.2002h-29.1006c-5.59961 0 -10.3994 -3.7002 -11.6992 -9.10059c-22.1006 -90 -27.8008 -112.5 -29.4004 -122.7c-0.900391 12.7002 -5.40039 44.2002 -21 122.2
+c-1.09961 5.7002 -6.09961 9.7002 -11.7998 9.7002h-24.5c-7.7002 0 -13.4004 -7.09961 -11.7002 -14.5996l37.7998 -168c1.2002 -5.5 6.10059 -9.40039 11.7002 -9.40039h37.0996c5.5 0 10.3008 3.7998 11.6006 9.09961c23.2002 93.1006 24.5 96.2002 25.5996 110.5h0.5
+c4.7998 -29.2998 -0.200195 -7 25.6006 -110.5c1.2998 -5.2998 6.09961 -9.09961 11.5996 -9.09961h38c5.59961 0 10.5 3.7998 11.7002 9.2998l38 168c1.7002 7.60059 -4 14.7002 -11.7002 14.7002h-23.9004zM384 326.1v-6.09961h-128v128h6.09961
+c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
+ <glyph glyph-name="file-excel" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM284.1 205.5c5.10059 8 -0.599609 18.5 -10.0996 18.4004h-34.7998
+c-4.40039 0 -8.5 -2.40039 -10.6006 -6.30078c-30.5 -56.7998 -36.5996 -68.5 -36.5996 -68.5c-16.5996 34.9004 -10.5 19.7002 -36.5996 68.5c-2.10059 3.90039 -6.2002 6.30078 -10.6006 6.30078h-34.7998c-9.5 0 -15.2998 -10.5 -10.0996 -18.5l60.2998 -93.5
+l-60.2998 -93.5c-5.10059 -8 0.599609 -18.5 10.0996 -18.5h34.9004c4.39941 0 8.39941 2.39941 10.5 6.2998c26.5996 48.7998 30.1992 54 36.5996 68.7998c0 0 16.9004 -32.5 36.5 -68.7002c2.09961 -3.89941 6.2002 -6.2998 10.5996 -6.2998h34.9004
+c9.5 0 15.2002 10.5 10.0996 18.5l-60.0996 93.5zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
+ <glyph glyph-name="file-powerpoint" unicode="" horiz-adv-x="384"
+d="M193.7 176.8c8.7998 0 15.5 -2.7002 20.2998 -8.09961c9.59961 -10.9004 9.7998 -32.7002 -0.200195 -44.1006c-4.89941 -5.59961 -11.8994 -8.5 -21.0996 -8.5h-26.9004v60.7002h27.9004zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6
+c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM277 146.8c0 44.2002 -28.4004 77 -72.9004 77h-81
+c-6.59961 0 -12 -5.39941 -12 -12v-199.8c0 -6.59961 5.40039 -12 12 -12h30.8008c6.59961 0 12 5.40039 12 12v57.2002c22.2998 0 111.1 -12.7002 111.1 77.5996z" />
+ <glyph glyph-name="file-image" unicode="" horiz-adv-x="384"
+d="M384 326.059v-6.05859h-128v128h6.05859c5.4873 0 13.0898 -3.14941 16.9707 -7.0293l97.9404 -97.9404c3.88086 -3.88086 7.03027 -11.4834 7.03027 -16.9717zM248 288h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v464
+c0 13.2549 10.7451 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24zM112.545 272c-26.5088 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48zM320.545 32v112l-39.5137 39.5146c-4.6875 4.68652 -12.2852 4.68652 -16.9717 0
+l-103.515 -103.515l-39.5146 39.5146c-4.68652 4.68652 -11.7988 5.1709 -16.4854 0.485352l-39.5146 -39.5146l-0.485352 -48.4854h256z" />
+ <glyph glyph-name="file-archive" unicode="" horiz-adv-x="384"
+d="M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM128.4 112c17.8994 0 32.5 -12.0996 32.5 -27s-14.5 -27 -32.4004 -27s-32.5 12 -32.5 27c0 14.9004 14.5 27 32.4004 27zM224 312c0 -13.2002 10.7998 -24 24 -24h136
+v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h104.4v-32h32v32h63.5996v-136zM95.9004 416v-32h32v32h-32zM128.2 32c33 0 57.7998 30.2002 51.3994 62.5996l-17.2998 87.7002
+c-1.09961 5.60059 -6.09961 9.7002 -11.7998 9.7002h-22.0996v32h32v32h-32v32h32v32h-32v32h32v32h-32v-32h-32v-32h32v-32h-32v-32h32v-32h-32v-32l-19.6006 -97.0996c-6.59961 -32.5 18.2002 -62.9004 51.4004 -62.9004z" />
+ <glyph glyph-name="file-audio" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM160 44v136c0 10.7002 -12.9004 16.0996 -20.5 8.5l-35.5 -36.5h-28c-6.59961 0 -12 -5.40039 -12 -12
+v-56c0 -6.59961 5.40039 -12 12 -12h28l35.5 -36.5c7.59961 -7.5 20.5 -2.2002 20.5 8.5zM193.2 91.5996c-22.5 -23.0996 12.5996 -55.7998 34.3994 -33.5c27.2002 28 27.2002 72.5 0 100.4c-22.1992 22.7002 -56.5 -10.7002 -34.3994 -33.5
+c9.09961 -9.2998 9.09961 -24.0996 0 -33.4004zM279.2 208.7c-22.1006 22.7998 -56.5 -10.7002 -34.4004 -33.5c36.2998 -37.2998 36.2002 -96.6006 0 -133.8c-22.5996 -23.2002 12.6006 -55.9004 34.4004 -33.5c54.3994 56 54.3994 144.899 0 200.8zM384 326.1v-6.09961
+h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
+ <glyph glyph-name="file-video" unicode="" horiz-adv-x="384"
+d="M384 326.059v-6.05859h-128v128h6.05859c6.36523 0 12.4707 -2.5293 16.9717 -7.0293l97.9404 -97.9404c3.87988 -3.88086 7.0293 -11.4834 7.0293 -16.9717zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336
+c-13.2549 0 -24 10.7451 -24 24v464c0 13.2549 10.7451 24 24 24h200v-136zM320 167.984c0 21.4609 -25.96 31.9795 -40.9707 16.9697l-55.0293 -55.0127v38.0586c0 13.2549 -10.7451 24 -24 24h-112c-13.2549 0 -24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24
+h112c13.2549 0 24 10.7451 24 24v38.0586l55.0293 -55.0088c15.0273 -15.0264 40.9707 -4.47363 40.9707 16.9717v111.963z" />
+ <glyph glyph-name="file-code" unicode="" horiz-adv-x="384"
+d="M384 326.059v-6.05859h-128v128h6.05859c6.36523 0 12.4707 -2.5293 16.9717 -7.0293l97.9404 -97.9404c3.87988 -3.88086 7.0293 -11.4834 7.0293 -16.9717zM248 288h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v464
+c0 13.2549 10.7451 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24zM123.206 47.4951l19.5791 20.8838c0.805664 0.860352 1.45996 2.51465 1.45996 3.69336c0 1.34766 -0.820312 3.16309 -1.83203 4.05371l-40.7627 35.874l40.7627 35.874
+c1.01172 0.890625 1.83203 2.70605 1.83203 4.05371c0 1.17871 -0.654297 2.83301 -1.45996 3.69336l-19.5791 20.8848c-0.882812 0.942383 -2.64844 1.70703 -3.93945 1.70703c-1.17871 0 -2.83398 -0.654297 -3.69336 -1.46094l-64.8662 -60.8115
+c-0.942383 -0.883789 -1.70703 -2.64844 -1.70703 -3.93945c0 -1.29199 0.764648 -3.05664 1.70703 -3.94043l64.8662 -60.8115c0.859375 -0.806641 2.51465 -1.46094 3.69336 -1.46094c1.29102 0 3.05664 0.764648 3.93945 1.70703zM174.501 -2.98438
+c0.407227 -0.118164 1.08203 -0.213867 1.50586 -0.213867c2.23926 0 4.56152 1.74512 5.18457 3.89551l61.4395 211.626c0.118164 0.407227 0.214844 1.08203 0.214844 1.50586c0 2.23828 -1.74512 4.56152 -3.89453 5.18555l-27.4521 7.9707
+c-0.407227 0.117188 -1.08105 0.213867 -1.50488 0.213867c-2.23828 0 -4.5625 -1.74512 -5.1875 -3.89551l-61.4395 -211.626c-0.118164 -0.40625 -0.213867 -1.08105 -0.213867 -1.50391c0 -2.23926 1.74512 -4.56348 3.89453 -5.1875zM335.293 108.061
+c0.942383 0.883789 1.70703 2.64844 1.70703 3.94043c0 1.29102 -0.764648 3.05566 -1.70605 3.93945l-64.8662 60.8115c-0.859375 0.806641 -2.51465 1.46094 -3.69336 1.46094c-1.29102 0 -3.05566 -0.764648 -3.93945 -1.70703l-19.5801 -20.8848
+c-0.805664 -0.860352 -1.45996 -2.51465 -1.45996 -3.69336c0 -1.34766 0.820312 -3.16309 1.83203 -4.05371l40.7627 -35.874l-40.7637 -35.873c-1.01172 -0.890625 -1.83203 -2.70605 -1.83203 -4.05371c0 -1.17871 0.654297 -2.83301 1.45996 -3.69336l19.5801 -20.8848
+c0.882812 -0.942383 2.64844 -1.70703 3.93945 -1.70703c1.17871 0 2.83398 0.654297 3.69336 1.46094z" />
+ <glyph glyph-name="life-ring" unicode=""
+d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM429.696 320.441c-10.6406 14.3398 -30.915 34.6143 -45.2549 45.2549l-63.3994 -63.3994c18.585 -11.0029 34.2676 -26.6963 45.2549 -45.2549zM256 96
+c53.0186 0 96 42.9814 96 96s-42.9814 96 -96 96s-96 -42.9814 -96 -96s42.9814 -96 96 -96zM127.559 365.696c-14.3398 -10.6406 -34.6143 -30.915 -45.2549 -45.2549l63.3994 -63.3994c11.0029 18.585 26.6963 34.2676 45.2549 45.2549zM82.3037 63.5586
+c10.6406 -14.3398 30.915 -34.6143 45.2549 -45.2549l63.3994 63.3994c-18.585 11.0029 -34.2676 26.6963 -45.2549 45.2549zM384.441 18.3037c14.3398 10.6406 34.6143 30.915 45.2549 45.2549l-63.3994 63.3994c-11.0029 -18.585 -26.6963 -34.2676 -45.2549 -45.2549z
+" />
+ <glyph glyph-name="circle-notch" unicode=""
+d="M288 408.944c0 15.5996 14.6777 27.167 29.7891 23.292c107.071 -27.457 186.211 -124.604 186.211 -240.236c0 -136.788 -110.745 -247.711 -247.466 -247.999c-137.054 -0.289062 -247.812 109.615 -248.531 246.667c-0.609375 116.126 78.5996 213.85 185.951 241.502
+c15.2119 3.91895 30.0459 -7.52539 30.0459 -23.2344v-16.6475c0 -10.8047 -7.28125 -20.1621 -17.6885 -23.0693c-77.5254 -21.6543 -134.312 -92.749 -134.312 -177.219c0 -101.705 82.3105 -184 184 -184c101.705 0 184 82.3105 184 184
+c0 84.4824 -56.7959 155.566 -134.314 177.219c-10.4043 2.90723 -17.6855 12.2627 -17.6855 23.0664v16.6592z" />
+ <glyph glyph-name="paper-plane" unicode=""
+d="M476 444.8c17.2998 10 39 -4.59961 35.5996 -24.7998l-72 -432c-2.59961 -15.2998 -18.7998 -24.2002 -33 -18.2002l-124.6 52.2002l-63.5 -77.2998c-14 -17.1006 -42.5 -7.7998 -42.5 15.7998v80.5l240.9 293.5c4.69922 5.7002 -3.10059 13.2002 -8.60059 8.2998
+l-287.3 -253.2l-106.3 44.6006c-18 7.59961 -20.2998 32.7998 -2.2002 43.2002z" />
+ <glyph glyph-name="history" unicode=""
+d="M504 192.469c0.25293 -136.64 -111.18 -248.372 -247.82 -248.468c-59.0146 -0.0419922 -113.223 20.5303 -155.821 54.9111c-11.0771 8.93945 -11.9053 25.541 -1.83984 35.6064l11.2676 11.2676c8.6084 8.6084 22.3525 9.55078 31.8906 1.9834
+c31.3848 -24.9043 71.1045 -39.7695 114.323 -39.7695c101.705 0 184 82.3105 184 184c0 101.705 -82.3105 184 -184 184c-48.8145 0 -93.1494 -18.9688 -126.068 -49.9316l50.7539 -50.7539c10.0801 -10.0801 2.94141 -27.3145 -11.3125 -27.3145h-145.373
+c-8.83691 0 -16 7.16309 -16 16v145.373c0 14.2539 17.2344 21.3926 27.3145 11.3135l49.3711 -49.3711c44.5234 42.5488 104.866 68.6846 171.314 68.6846c136.81 0 247.747 -110.78 248 -247.531zM323.088 113.685c-8.1377 -10.4629 -23.2158 -12.3467 -33.6787 -4.20996
+l-65.4092 50.874v135.651c0 13.2549 10.7451 24 24 24h16c13.2549 0 24 -10.7451 24 -24v-104.349l40.7012 -31.6572c10.4629 -8.13672 12.3477 -23.2158 4.20996 -33.6787z" />
+ <glyph glyph-name="heading" unicode=""
+d="M448 352v-320h32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-160c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32v128h-192v-128h32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-160
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32v320h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h160c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32v-128h192v128h-32c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h160c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32z" />
+ <glyph glyph-name="paragraph" unicode="" horiz-adv-x="448"
+d="M448 400v-32c0 -8.83203 -7.16797 -16 -16 -16h-48v-368c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v368h-32v-368c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v112h-32c-88.3203 0 -160 71.6797 -160 160
+s71.6797 160 160 160h240c8.83203 0 16 -7.16797 16 -16z" />
+ <glyph glyph-name="sliders-h" unicode=""
+d="M496 64c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-336v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-80c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h80v16c0 8.7998 7.2002 16 16 16h32
+c8.7998 0 16 -7.2002 16 -16v-16h336zM496 224c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-80v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-336c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h336v16
+c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-16h80zM496 384c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-208v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-208c-8.7998 0 -16 7.2002 -16 16v32
+c0 8.7998 7.2002 16 16 16h208v16c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-16h208z" />
+ <glyph glyph-name="share-alt" unicode="" horiz-adv-x="448"
+d="M352 128c53.0186 0 96 -42.9814 96 -96s-42.9814 -96 -96 -96s-96 42.9814 -96 96v0.0283203c0 5.8125 1.01953 15.1367 2.27637 20.8125l-102.486 64.0537c-16.4033 -13.0752 -37.1816 -20.8945 -59.79 -20.8945c-53.0186 0 -96 42.9814 -96 96s42.9814 96 96 96
+c22.6084 0 43.3867 -7.81934 59.79 -20.8945l102.486 64.0537c-1.48633 6.71094 -2.27637 13.6826 -2.27637 20.8408c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96s-42.9814 -96 -96 -96c-22.6084 0 -43.3867 7.81934 -59.79 20.8965l-102.486 -64.0547
+c1.25684 -5.68359 2.27637 -15.0205 2.27637 -20.8408c0 -5.82129 -1.01953 -15.1582 -2.27637 -20.8418l102.486 -64.0537c16.4033 13.0752 37.1816 20.8945 59.79 20.8945z" />
+ <glyph glyph-name="share-alt-square" unicode="" horiz-adv-x="448"
+d="M448 368v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48zM304 152c-14.5615 0 -27.8232 -5.56055 -37.7832 -14.6709l-67.958 40.7744
+c0.960938 3.77539 1.74121 10.001 1.74121 13.8975c0 3.89551 -0.780273 10.1211 -1.74121 13.8965l67.958 40.7744c9.95996 -9.11133 23.2217 -14.6719 37.7832 -14.6719c30.9277 0 56 25.0723 56 56s-25.0723 56 -56 56s-56 -25.0723 -56 -56
+c0 -4.79688 0.605469 -9.45312 1.74023 -13.8975l-67.958 -40.7744c-9.95898 9.11133 -23.2207 14.6719 -37.7822 14.6719c-30.9277 0 -56 -25.0723 -56 -56s25.0723 -56 56 -56c14.5615 0 27.8232 5.56055 37.7832 14.6709l67.958 -40.7744
+c-0.960938 -3.7666 -1.74023 -9.97656 -1.74023 -13.8623v-0.0351562c0 -30.9277 25.0723 -56 56 -56s56 25.0723 56 56c-0.000976562 30.9287 -25.0732 56.001 -56.001 56.001z" />
+ <glyph glyph-name="bomb" unicode=""
+d="M440.5 359.5l-52 -52l26.5 -26.5c9.40039 -9.40039 9.40039 -24.5996 0 -33.9004l-17.4004 -17.3994c11.8008 -26.1006 18.4004 -55.1006 18.4004 -85.6006c0 -114.899 -93.0996 -208 -208 -208s-208 93 -208 207.9s93.0996 208 208 208
+c30.5 0 59.5 -6.59961 85.5996 -18.4004l17.4004 17.4004c9.40039 9.40039 24.5996 9.40039 33.9004 0l26.5 -26.5l52 52zM500 388c6.59961 0 12 -5.40039 12 -12s-5.40039 -12 -12 -12h-24c-6.59961 0 -12 5.40039 -12 12s5.40039 12 12 12h24zM440 448
+c6.59961 0 12 -5.40039 12 -12v-24c0 -6.59961 -5.40039 -12 -12 -12s-12 5.40039 -12 12v24c0 6.59961 5.40039 12 12 12zM473.9 393c-4.60059 -4.7002 -12.2002 -4.7002 -17 0c-4.7002 4.7002 -4.7002 12.2998 0 17l17 17c4.69922 4.7002 12.2998 4.7002 17 0
+c4.69922 -4.7002 4.69922 -12.2998 0 -17zM406.1 393l-17 17c-4.69922 4.7002 -4.69922 12.2998 0 17c4.7002 4.7002 12.3008 4.7002 17 0l17 -17c4.7002 -4.7002 4.7002 -12.2998 0 -17c-4.69922 -4.7002 -12.2998 -4.7002 -17 0zM473.9 359l17 -17
+c4.69922 -4.7002 4.69922 -12.2998 0 -17c-4.7002 -4.7002 -12.3008 -4.7002 -17 0l-17 17c-4.7002 4.7002 -4.7002 12.2998 0 17c4.69922 4.7002 12.2998 4.7002 17 0zM112 176c0 35.2998 28.7002 64 64 64c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16
+c-52.9004 0 -96 -43.0996 -96 -96c0 -8.7998 7.2002 -16 16 -16s16 7.2002 16 16z" />
+ <glyph glyph-name="futbol" unicode=""
+d="M504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248zM456 192l-0.00292969 0.282227l-26.0645 -22.7412l-62.6787 58.5l16.4541 84.3555l34.3027 -3.07227
+c-24.8887 34.2158 -60.0039 60.0889 -100.709 73.1406l13.6514 -31.9385l-74.9531 -41.5264l-74.9531 41.5254l13.6514 31.9385c-40.6309 -13.0283 -75.7803 -38.8701 -100.709 -73.1406l34.5645 3.07324l16.1924 -84.3555l-62.6777 -58.5l-26.0645 22.7412
+l-0.00292969 -0.282227c0 -43.0146 13.4971 -83.9521 38.4717 -117.991l7.7041 33.8975l85.1387 -10.4473l36.3008 -77.8262l-29.9023 -17.7861c40.2021 -13.1221 84.29 -13.1475 124.572 0l-29.9023 17.7861l36.3008 77.8262l85.1387 10.4473l7.7041 -33.8975
+c24.9756 34.0391 38.4727 74.9766 38.4727 117.991zM207.898 122.429l-29.8945 91.3125l77.9961 56.5264l77.9961 -56.5264l-29.6221 -91.3125h-96.4756z" />
+ <glyph glyph-name="tty" unicode=""
+d="M5.37012 344.178c138.532 138.532 362.936 138.326 501.262 0c6.07812 -6.07812 7.07422 -15.4961 2.58301 -22.6807l-43.2139 -69.1377c-2.97266 -4.75684 -9.9375 -8.61719 -15.5459 -8.61719c-1.94922 0 -5 0.587891 -6.81055 1.31152l-86.4219 34.5693
+c-6.36133 2.54492 -11.5244 10.1719 -11.5244 17.0234c0 0.503906 0.0410156 1.32031 0.0908203 1.82227l5.95215 59.5312c-62.1455 22.4541 -130.636 21.9863 -191.483 0l5.95312 -59.5322c0.0507812 -0.501953 0.0908203 -1.32031 0.0908203 -1.8252
+c0 -6.85156 -5.16309 -14.4766 -11.5244 -17.0205l-86.4238 -34.5684c-1.80957 -0.723633 -4.85938 -1.31152 -6.80859 -1.31152c-5.60938 0 -12.5742 3.86035 -15.5469 8.61719l-43.2109 69.1387c-1.53809 2.46094 -2.78711 6.81445 -2.78711 9.7168
+c0 4.19141 2.40625 9.99902 5.37012 12.9629zM96 140c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM192 140c0 -6.62695 -5.37305 -12 -12 -12h-40
+c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM288 140c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM384 140
+c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM480 140c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40
+c6.62695 0 12 -5.37305 12 -12v-40zM144 44c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM240 44c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40
+c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM336 44c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM432 44c0 -6.62695 -5.37305 -12 -12 -12h-40
+c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM96 -52c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40zM384 -52
+c0 -6.62695 -5.37305 -12 -12 -12h-232c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h232c6.62695 0 12 -5.37305 12 -12v-40zM480 -52c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40
+c6.62695 0 12 -5.37305 12 -12v-40z" />
+ <glyph glyph-name="binoculars" unicode=""
+d="M416 400v-48h-96v48c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -16zM63.9102 288.01c0.479492 17.6201 14.2998 31.9902 31.9297 31.9902h96.1602v-160h-32v-160c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v44
+c3.45996 129.78 61.4004 150.16 63.9102 244.01zM448.09 288.01c2.50977 -93.8496 60.4502 -114.229 63.9102 -244.01v-44c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v160h-32v160h96.1602c17.6299 0 31.4502 -14.3701 31.9297 -31.9902zM176 416
+c8.83984 0 16 -7.16016 16 -16v-48h-96v48c0 8.83984 7.16016 16 16 16h64zM224 160v160h64v-160h-64z" />
+ <glyph glyph-name="plug" unicode="" horiz-adv-x="384"
+d="M256 304v112c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-112h-64zM368 288c8.83691 0 16 -7.16309 16 -16v-32c0 -8.83691 -7.16309 -16 -16 -16h-16v-32c0 -77.4062 -54.9688 -141.971 -128 -156.796v-99.2041h-64v99.2041
+c-73.0312 14.8252 -128 79.3896 -128 156.796v32h-16c-8.83691 0 -16 7.16309 -16 16v32c0 8.83691 7.16309 16 16 16h352zM128 304h-64v112c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-112z" />
+ <glyph glyph-name="newspaper" unicode="" horiz-adv-x="576"
+d="M552 384c13.2549 0 24 -10.7451 24 -24v-312c0 -26.5098 -21.4902 -48 -48 -48h-472c-30.9277 0 -56 25.0723 -56 56v272c0 13.2549 10.7451 24 24 24h40v8c0 13.2549 10.7451 24 24 24h464zM56 48c4.41602 0 8 3.58398 8 8v248h-16v-248c0 -4.41602 3.58398 -8 8 -8z
+M292 64c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152c-6.62695 0 -12 -5.37305 -12 -12v-8c0 -6.62695 5.37305 -12 12 -12h152zM500 64c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152c-6.62695 0 -12 -5.37305 -12 -12v-8
+c0 -6.62695 5.37305 -12 12 -12h152zM292 160c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152c-6.62695 0 -12 -5.37305 -12 -12v-8c0 -6.62695 5.37305 -12 12 -12h152zM500 160c6.62695 0 12 5.37305 12 12v8c0 6.62695 -5.37305 12 -12 12h-152
+c-6.62695 0 -12 -5.37305 -12 -12v-8c0 -6.62695 5.37305 -12 12 -12h152zM500 256c6.62695 0 12 5.37305 12 12v40c0 6.62695 -5.37305 12 -12 12h-360c-6.62695 0 -12 -5.37305 -12 -12v-40c0 -6.62695 5.37305 -12 12 -12h360z" />
+ <glyph glyph-name="wifi" unicode="" horiz-adv-x="640"
+d="M634.91 293.12c6.66016 -6.16016 6.79004 -16.5898 0.359375 -22.9805l-34.2393 -33.9697c-6.14062 -6.08984 -16.0205 -6.22949 -22.4004 -0.379883c-145.95 133.71 -371.33 133.68 -517.25 0c-6.37988 -5.84961 -16.2598 -5.71973 -22.3994 0.379883l-34.2402 33.9697
+c-6.44043 6.39062 -6.31055 16.8203 0.349609 22.9805c177.101 163.81 452.65 163.87 629.82 0zM320 96c35.3496 0 64 -28.6504 64 -64s-28.6504 -64 -64 -64s-64 28.6504 -64 64s28.6504 64 64 64zM522.67 179.59c6.88965 -6.08984 7.12012 -16.6895 0.560547 -23.1494
+l-34.4404 -33.9902c-6 -5.93066 -15.6602 -6.32031 -22.0498 -0.799805c-83.75 72.4092 -209.54 72.5693 -293.49 0c-6.38965 -5.52051 -16.0498 -5.12012 -22.0498 0.799805l-34.4404 33.9902c-6.5498 6.45996 -6.33008 17.0498 0.570312 23.1494
+c115.13 101.82 290.08 101.93 405.34 0z" />
+ <glyph glyph-name="calculator" unicode="" horiz-adv-x="448"
+d="M400 448c25.5996 0 48 -22.4004 48 -48v-416c0 -25.5996 -22.4004 -48 -48 -48h-352c-25.5996 0 -48 22.4004 -48 48v416c0 25.5996 22.4004 48 48 48h352zM128 12.7998v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM128 140.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM256 12.7998v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM256 140.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM384 12.7998v166.4c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-166.4c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM384 268.8v102.4c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-294.4
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-102.4c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h294.4c6.39941 0 12.7998 6.40039 12.7998 12.7998z" />
+ <glyph glyph-name="bell-slash" unicode="" horiz-adv-x="640"
+d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.80957 -22.4502l-19.6396 -25.2705c-5.43066 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.351 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
+c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l144.96 -112.04c22.9307 31.5 57.2607 54.1904 97.5898 62.5703v20.8398c0 17.6699 14.3203 32 31.9805 32s31.9805 -14.3301 31.9805 -32v-20.8301c73.46 -15.2598 127.939 -77.46 127.939 -155.16
+c0 -102.3 36.1504 -133.529 55.4697 -154.29c6 -6.43945 8.66016 -14.1602 8.61035 -21.71c0 -1.39941 -0.610352 -2.67969 -0.799805 -4.05957zM157.23 196.46l212.789 -164.46h-241.92c-19.1191 0 -31.9893 15.5996 -32.0996 32
+c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c16.21 17.4199 44.0098 42.79 52.6201 110.75zM320 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" />
+ <glyph glyph-name="trash" unicode="" horiz-adv-x="448"
+d="M432 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h120l9.40039 18.7002c3.58984 7.3418 13.1357 13.2998 21.3086 13.2998h0.0908203h114.3h0.0175781
+c8.20215 0 17.8262 -5.95801 21.4824 -13.2998l9.40039 -18.7002h120zM53.2002 -19l-21.2002 339h384l-21.2002 -339c-1.55469 -24.8369 -23.0146 -44.9971 -47.8994 -45h-245.801c-24.8848 0.00292969 -46.3447 20.1631 -47.8994 45z" />
+ <glyph glyph-name="copyright" unicode=""
+d="M256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248zM373.134 93.2471c1.58203 1.85645 2.86621 5.34375 2.86621 7.7832c0 2.16309 -1.03613 5.33594 -2.31348 7.08301l-24.5469 33.5713
+c-4.44824 6.08691 -13.376 6.61816 -18.5078 1.05371c-0.263672 -0.287109 -26.8467 -28.625 -65.5439 -28.625c-48.7627 0 -74.2773 40.0898 -74.2773 79.6914c0 42.5068 27.8008 76.082 73.916 76.082c35.3516 0 61.6475 -23.666 61.8809 -23.8799
+c5.45996 -5.05566 14.1846 -3.97168 18.2334 2.29492l22.3799 34.6553c1.05957 1.64062 1.91992 4.55762 1.91992 6.51074c0 2.57812 -1.41504 6.21191 -3.15723 8.1123c-1.45703 1.58887 -36.4658 38.9043 -103.423 38.9043
+c-81.7578 0 -143.762 -62.0986 -143.762 -143.401c0 -82.3066 59.792 -145.567 144.484 -145.567c70.0752 0 108.259 43.8643 109.851 45.7314z" />
+ <glyph glyph-name="at" unicode=""
+d="M256 440c138.023 0 248 -87.6533 248 -224c0 -75.7979 -41.3906 -147.41 -150.299 -147.41c-30.0977 0 -61.1885 -0.000976562 -70.71 34.1035c-17.6221 -22.6963 -48.0068 -38.333 -74.9912 -38.333c-59.2148 0 -96 40.5664 -96 105.87
+c0 89.2256 63.251 151.46 137.831 151.46c19.5225 0 45.2744 -3.87402 59.9707 -21.7754l0.00976562 0.0917969c0.751953 6.62012 6.76953 11.9932 13.4326 11.9932v0h44.9805c15.083 0 26.4287 -13.75 23.5625 -28.5586l-23.4336 -121.11
+c-3.43359 -17.167 -3.87207 -29.5703 13.4766 -30.0244c37.0771 3.95117 58.1699 44.9072 58.1699 83.6934c0 102.381 -83.8613 160 -184 160c-101.458 0 -184 -82.542 -184 -184s82.542 -184 184 -184c35.3145 0 69.9199 10.2432 99.4102 29.1572
+c10.1934 6.53809 23.7021 4.24219 31.373 -5.12891l10.1768 -12.4336c9.07324 -11.084 6.45312 -27.5566 -5.55176 -35.3721c-40.0664 -26.083 -87.2539 -40.2227 -135.408 -40.2227c-137.081 0 -248 110.941 -248 248c0 137.081 110.941 248 248 248zM234.32 135.57
+c24.2861 0 58.1611 27.6689 58.1611 72.7295c0 25.5293 -13.3096 40.7705 -35.6016 40.7705c-27.8506 0 -58.6299 -27.7363 -58.6299 -72.7295c0 -25.1475 13.8213 -40.7705 36.0703 -40.7705z" />
+ <glyph glyph-name="eye-dropper" unicode=""
+d="M50.75 114.75l126.63 126.61l128 -128l-126.64 -126.62c-12 -12 -28.2803 -18.7402 -45.25 -18.7402h-45.4902l-56 -32l-32 32l32 56v45.4902c0 16.9795 6.75 33.2598 18.75 45.2598zM483.88 419.88c37.5 -37.4902 37.5 -98.2695 -0.00976562 -135.75l-77.0898 -77.0898
+l13.0996 -13.0996c9.37012 -9.37012 9.37012 -24.5703 0 -33.9404l-40.9697 -40.96c-9.29004 -9.30957 -24.5 -9.44043 -33.9404 0l-161.939 161.94c-9.37012 9.36914 -9.37012 24.5693 0 33.9395l40.9697 40.9697c9.29004 9.31055 24.5 9.44043 33.9404 0l13.0996 -13.0996
+l77.0898 77.0898c37.4697 37.5 98.2803 37.5 135.75 0z" />
+ <glyph glyph-name="paint-brush" unicode=""
+d="M167.02 138.66l88.0107 -73.3398c0.319336 -3.05078 0.969727 -6.02051 0.969727 -9.12988c0 -76.4209 -52.1396 -120.19 -128 -120.19c-90.0703 0 -128 72.3799 -128.01 154.73c9.79004 -6.68066 44.1396 -34.3506 55.25 -34.3506
+c6.58984 0 12.2402 3.77051 14.5898 9.98047c20.6602 54.4395 57.0703 69.7197 97.1895 72.2998zM457.89 448c28.1104 0 54.1104 -20.6396 54.1104 -49.5498c0 -16.1406 -6.51953 -31.6406 -13.9004 -45.9902c-113.05 -210.99 -149.05 -256.46 -211.159 -256.46
+c-7.75 0 -15.1807 1.23047 -22.3906 3.03027l-63.8193 53.1797c-5.48047 11.9404 -8.73047 25 -8.73047 38.7002c0 53.75 21.2695 58.04 225.68 240.64c10.8398 9.74023 25.0508 16.4502 40.21 16.4502z" />
+ <glyph glyph-name="birthday-cake" unicode="" horiz-adv-x="448"
+d="M448 64c-28.0195 0 -31.2598 32 -74.5 32c-43.4297 0 -46.8252 -32 -74.75 -32c-27.6953 0 -31.4541 32 -74.75 32c-42.8418 0 -47.2178 -32 -74.5 -32c-28.1484 0 -31.2021 32 -74.75 32c-43.5469 0 -46.6533 -32 -74.75 -32v80c0 26.5 21.5 48 48 48h16v144h64v-144h64
+v144h64v-144h64v144h64v-144h16c26.5 0 48 -21.5 48 -48v-80zM448 -64h-448v96c43.3564 0 46.7666 32 74.75 32c27.9512 0 31.2529 -32 74.75 -32c42.8428 0 47.2168 32 74.5 32c28.1484 0 31.2012 -32 74.75 -32c43.3574 0 46.7666 32 74.75 32
+c27.4883 0 31.252 -32 74.5 -32v-96zM96 352c-17.75 0 -32 14.25 -32 32c0 31 32 23 32 64c12 0 32 -29.5 32 -56s-14.25 -40 -32 -40zM224 352c-17.75 0 -32 14.25 -32 32c0 31 32 23 32 64c12 0 32 -29.5 32 -56s-14.25 -40 -32 -40zM352 352c-17.75 0 -32 14.25 -32 32
+c0 31 32 23 32 64c12 0 32 -29.5 32 -56s-14.25 -40 -32 -40z" />
+ <glyph glyph-name="chart-area" unicode=""
+d="M500 64c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-488c-6.59961 0 -12 5.40039 -12 12v360c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-308h436zM372.7 288.5c6 4 14.2002 1.7998 17.3994 -4.7002l89.9004 -187.8h-384v104
+l86.7998 144.7c4.40039 7.2998 14.7998 7.7998 19.9004 1l85.2998 -113.7z" />
+ <glyph glyph-name="chart-pie" unicode="" horiz-adv-x="544"
+d="M527.79 160c9.5498 0 17.4004 -8.38965 16.0596 -17.8496c-7.80957 -55.25 -34.4297 -104.4 -73.1299 -140.86c-6.20996 -5.84961 -16.1494 -5.36035 -22.1895 0.679688l-158.03 158.03h237.29zM511.96 224.8c0.629883 -9.12012 -7.0498 -16.7998 -16.1904 -16.7998
+h-223.77v223.76c0 9.14062 7.67969 16.8301 16.7998 16.2002c119.46 -8.24023 214.92 -103.7 223.16 -223.16zM224 160l155.86 -155.87c6.84961 -6.84961 6.33008 -18.4795 -1.57031 -24.0801c-38.29 -27.1602 -84.8604 -43.3994 -135.26 -44.0303
+c-128.2 -1.60938 -238.53 103.471 -242.891 231.61c-4.23926 124.771 86.8506 228.88 206.021 245.72c9.4502 1.34082 17.8398 -6.50977 17.8398 -16.0596v-237.29z" />
+ <glyph glyph-name="chart-line" unicode=""
+d="M496 64c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-464c-17.6699 0 -32 14.3301 -32 32v336c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-304h432zM464 352c8.83984 0 16 -7.16016 15.9902 -16v-118.05
+c0 -21.3799 -25.8506 -32.0898 -40.9707 -16.9697l-32.3994 32.3994l-96 -96c-12.4902 -12.5 -32.75 -12.5 -45.25 0l-73.3701 73.3701l-46.0596 -46.0703c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-22.6191 22.6201c-6.25 6.25 -6.25 16.3799 0 22.6299l68.6895 68.6904
+c12.4902 12.5 32.75 12.5 45.25 0l73.3701 -73.3701l73.3701 73.3799l-32.4004 32.4004c-15.1201 15.1201 -4.41016 40.9697 16.9707 40.9697h118.06z" />
+ <glyph glyph-name="toggle-off" unicode="" horiz-adv-x="576"
+d="M384 384c106.039 0 192 -85.9609 192 -192s-85.9609 -192 -192 -192h-192c-106.039 0 -192 85.9609 -192 192s85.9609 192 192 192h192zM64 192c0 -70.751 57.2588 -128 128 -128c70.751 0 128 57.2588 128 128c0 70.751 -57.2588 128 -128 128
+c-70.751 0 -128 -57.2588 -128 -128zM384 64c70.751 0 128 57.2598 128 128c0 70.751 -57.2588 128 -128 128h-48.9053c65.2363 -72.8799 65.2168 -183.142 0 -256h48.9053z" />
+ <glyph glyph-name="toggle-on" unicode="" horiz-adv-x="576"
+d="M384 384c106 0 192 -86 192 -192s-86 -192 -192 -192h-192c-106 0 -192 86 -192 192s86 192 192 192h192zM384 64c70.7002 0 128 57.2002 128 128c0 70.7002 -57.2002 128 -128 128c-70.7002 0 -128 -57.2002 -128 -128c0 -70.7002 57.2002 -128 128 -128z" />
+ <glyph glyph-name="bicycle" unicode="" horiz-adv-x="640"
+d="M512.509 255.999c70.9502 -0.276367 128.562 -59.0547 127.477 -129.996c-1.07422 -70.1934 -58.6494 -126.681 -129.255 -125.996c-68.8301 0.667969 -126.584 58.8857 -126.729 127.719c-0.078125 37.3564 15.8516 70.9893 41.3066 94.4375l-14.9375 24.0674
+l-85.9619 -138.863c-3.88477 -6.27441 -13.0264 -11.3672 -20.4062 -11.3672h-52.0332c-14.209 -55.207 -64.3252 -96 -123.967 -96c-70.9473 0 -128.415 57.7207 -128 128.764c0.410156 70.2246 58.0918 127.406 128.317 127.236
+c15.0879 -0.0371094 29.5586 -2.69043 42.9912 -7.51953l29.417 47.5195h-48.7256c-13.1191 0 -23.7627 10.5186 -23.9951 23.5635c-0.241211 13.4375 11.0947 24.4365 24.5361 24.4365h87.459c8.83691 0 16 -7.16309 16 -16v-16h113.544l-14.8955 24h-50.6494
+c-8.83691 0 -16 7.16309 -16 16v16c0 8.83691 7.16309 16 16 16h64h0.000976562c7.36914 0 16.5049 -5.08203 20.3906 -11.3428l77.6807 -125.153c14.4053 5.54004 30.0625 8.55957 46.4355 8.49512zM186.75 182.228l-23.6641 -38.2275h43.3057
+c-2.96875 14.5674 -9.91504 27.6992 -19.6416 38.2275zM128.002 48c32.7383 0 60.9297 19.7754 73.2998 48h-81.2998c-18.7891 0 -30.2871 20.6729 -20.4062 36.6318l45.5049 73.5088c-5.5127 1.20605 -11.2295 1.85938 -17.0986 1.85938c-44.1123 0 -80 -35.8877 -80 -80
+s35.8877 -80 80 -80zM290.632 144l74.2861 120h-127.547l-24.7461 -39.9736c22.8271 -20.1328 38.4229 -48.2705 42.3828 -80.0264h35.624zM507.689 48.1143c46.0605 -2.43164 84.3115 34.3447 84.3125 79.8848c0 44.1123 -35.8877 80 -80 80h-0.0390625
+c-5.55664 0 -14.4355 -1.11914 -19.8193 -2.49707l44.4688 -71.6426c4.66113 -7.50879 2.35156 -17.3721 -5.15625 -22.0322l-13.5938 -8.4375c-7.50879 -4.65918 -17.3721 -2.35156 -22.0322 5.15625l-44.4326 71.5859
+c-12.7021 -14.7451 -20.1475 -34.1416 -19.3359 -55.2627c1.57812 -41.0635 34.5918 -74.5898 75.6279 -76.7549z" />
+ <glyph glyph-name="bus" unicode=""
+d="M488 320c13.25 0 24 -10.7402 24 -24v-80c0 -13.25 -10.75 -24 -24 -24h-8v-166.4c0 -12.7998 -9.59961 -25.5996 -25.5996 -25.5996h-6.40039v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-192v-32c0 -17.6699 -14.3301 -32 -32 -32h-32
+c-17.6699 0 -32 14.3301 -32 32v32c-17.6699 0 -32 14.3301 -32 32v160h-8c-13.25 0 -24 10.75 -24 24v80c0 13.2598 10.75 24 24 24h8v48c0 44.7998 99.2002 80 224 80s224 -35.2002 224 -80v-48h8zM112 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 160h256c17.6699 0 32 14.3301 32 32v128c0 17.6699 -14.3301 32 -32 32h-256c-17.6699 0 -32 -14.3301 -32 -32v-128c0 -17.6699 14.3301 -32 32 -32zM400 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="closed-captioning" unicode=""
+d="M464 384c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h416zM218.1 160.3c-41.1992 -37.8994 -92.1992 -15.3994 -92.2998 32.6006c0 46.0996 53.7998 63.1992 94.6006 31.1992
+c2.89941 -2.2998 7.19922 -1.39941 9.09961 1.7002l17.5 30.5c1.5 2.5 1.09961 3.7002 -1 5.7002c-50.7998 49.4004 -172.5 27.2002 -172.5 -70.0996c0 -100 119.2 -124.7 172.8 -67.9004c2 2.09961 2.2002 5.2998 0.5 7.7002l-19.5 27.7002
+c-2.09961 3 -6.39941 3.39941 -9.2002 0.899414zM408.5 160.3c-41.2002 -37.8994 -92.2002 -15.3994 -92.2002 32.6006c0 46.0996 53.7998 63.1992 94.6006 31.1992c2.89941 -2.2998 7.19922 -1.39941 9.09961 1.7002l17.5 30.5c1.5 2.5 1.09961 3.7002 -1 5.7002
+c-50.7998 49.4004 -172.5 27.2002 -172.5 -70.0996c0 -100 119.2 -124.801 172.7 -67.9004c2 2.09961 2.2002 5.2998 0.5 7.7002l-19.5 27.7002c-2.10059 3 -6.40039 3.39941 -9.2002 0.899414z" />
+ <glyph glyph-name="shekel-sign" unicode="" horiz-adv-x="448"
+d="M248 280c0 30.9297 -25.0703 56 -56 56h-112v-352c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16v408c0 13.2598 10.75 24 24 24h168c75.1104 0 136 -60.8896 136 -136v-168c0 -8.83984 -7.16016 -16 -16 -16h-48c-8.83984 0 -16 7.16016 -16 16
+v168zM432 416c8.83984 0 16 -7.16016 16 -16v-296c0 -75.1104 -60.8896 -136 -136 -136h-168c-13.25 0 -24 10.75 -24 24v280c0 8.83984 7.16016 16 16 16h48c8.83984 0 16 -7.16016 16 -16v-224h112c30.9297 0 56 25.0703 56 56v296c0 8.83984 7.16016 16 16 16h48z" />
+ <glyph glyph-name="cart-plus" unicode="" horiz-adv-x="576"
+d="M504.717 128h-293.145l6.54492 -32h268.418c15.4004 0 26.8154 -14.3008 23.4033 -29.3193l-5.51758 -24.2754c18.6914 -9.07324 31.5791 -28.2334 31.5791 -50.4053c0 -31.2021 -25.5186 -56.4443 -56.8242 -55.9941
+c-29.8232 0.428711 -54.3496 24.6309 -55.1543 54.4473c-0.44043 16.2871 6.08496 31.0488 16.8027 41.5479h-209.648c10.377 -10.166 16.8242 -24.3271 16.8242 -40.001c0 -31.8135 -26.5283 -57.4307 -58.6699 -55.9385c-28.54 1.3252 -51.751 24.3857 -53.251 52.917
+c-1.1582 22.0342 10.4355 41.4551 28.0508 51.5869l-70.2471 343.435h-69.8828c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h102.529c11.4004 0 21.2275 -8.02148 23.5127 -19.1904l9.16602 -44.8096h392.782
+c15.4004 0 26.8154 -14.3008 23.4023 -29.3193l-47.2725 -208c-2.4834 -10.9268 -12.1973 -18.6807 -23.4033 -18.6807zM408 280h-48v40c0 8.83691 -7.16309 16 -16 16h-16c-8.83691 0 -16 -7.16309 -16 -16v-40h-48c-8.83691 0 -16 -7.16309 -16 -16v-16
+c0 -8.83691 7.16309 -16 16 -16h48v-40c0 -8.83691 7.16309 -16 16 -16h16c8.83691 0 16 7.16309 16 16v40h48c8.83691 0 16 7.16309 16 16v16c0 8.83691 -7.16309 16 -16 16z" />
+ <glyph glyph-name="cart-arrow-down" unicode="" horiz-adv-x="576"
+d="M504.717 128h-293.145l6.54492 -32h268.418c15.4004 0 26.8154 -14.3008 23.4033 -29.3193l-5.51758 -24.2754c18.6914 -9.07324 31.5791 -28.2334 31.5791 -50.4053c0 -31.2021 -25.5186 -56.4443 -56.8242 -55.9941
+c-29.8232 0.428711 -54.3496 24.6309 -55.1543 54.4473c-0.44043 16.2871 6.08496 31.0488 16.8027 41.5479h-209.648c10.377 -10.166 16.8242 -24.3271 16.8242 -40.001c0 -31.8135 -26.5283 -57.4307 -58.6699 -55.9385c-28.54 1.3252 -51.751 24.3857 -53.251 52.917
+c-1.1582 22.0342 10.4355 41.4551 28.0508 51.5869l-70.2471 343.435h-69.8828c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h102.529c11.4004 0 21.2275 -8.02148 23.5127 -19.1904l9.16602 -44.8096h392.782
+c15.4004 0 26.8154 -14.3008 23.4023 -29.3193l-47.2725 -208c-2.4834 -10.9268 -12.1973 -18.6807 -23.4033 -18.6807zM403.029 256h-43.0293v60c0 6.62695 -5.37305 12 -12 12h-24c-6.62695 0 -12 -5.37305 -12 -12v-60h-43.0293
+c-10.6904 0 -16.0449 -12.9258 -8.48438 -20.4854l67.0283 -67.0283c4.68652 -4.68652 12.2842 -4.68652 16.9717 0l67.0283 67.0283c7.55957 7.55957 2.20508 20.4854 -8.48535 20.4854z" />
+ <glyph glyph-name="ship" unicode="" horiz-adv-x="640"
+d="M496.616 75.3613c17.8418 -44.3604 58.5664 -75.3613 119.384 -75.3613c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24c-61.0322 0 -107.505 20.6162 -143.258 59.3965c-14.4189 -34.8281 -48.7637 -59.3965 -88.7422 -59.3965h-128
+c-39.9785 0 -74.3232 24.5684 -88.7422 59.3965c-35.7588 -38.7861 -82.2344 -59.3965 -143.258 -59.3965c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24c61.5869 0 101.828 31.7129 119.384 75.3613l-70.0117 70.0117
+c-16.918 16.9189 -9.91699 45.7793 12.8359 53.0918l41.792 13.4336v140.102c0 17.6729 14.3271 32 32 32h64v40c0 13.2549 10.7451 24 24 24h144c13.2549 0 24 -10.7451 24 -24v-40h64c17.6729 0 32 -14.3271 32 -32v-140.102l41.792 -13.4336
+c22.7783 -7.32129 29.7354 -36.1914 12.8359 -53.0918zM192 320v-87.5312l118.208 37.9951c2.63574 0.847656 7.02344 1.53516 9.79199 1.53516s7.15625 -0.6875 9.79199 -1.53516l118.208 -37.9951v87.5312h-256z" />
+ <glyph glyph-name="user-secret" unicode="" horiz-adv-x="448"
+d="M383.9 139.7c38.2998 -23.7002 64.0996 -65.7002 64.0996 -114.101v-44.7998c0 -24.7002 -20.0996 -44.7998 -44.7998 -44.7998h-358.4c-24.7002 0 -44.7998 20.0996 -44.7998 44.7998v44.7998c0 49.7002 27.2998 92.6006 67.4004 115.9l-25.8008 60.2002
+c-4.5 10.5996 3.2002 22.2998 14.7002 22.2998h57.5c-11 18.9004 -17.7998 40.5996 -17.7998 64v0.299805c-39.2002 7.7998 -64 19.1006 -64 31.7002c0 13.2998 27.2998 25.0996 70 33c9.2002 32.7998 27.0996 65.7998 40.5996 82.7998
+c9.5 11.9004 25.9004 15.6006 39.5 8.7998l27.6006 -13.7998c9 -4.5 19.5996 -4.5 28.5996 0l27.6006 13.7998c13.5996 6.80078 30 3.10059 39.5 -8.7998c13.5996 -17 31.3994 -50 40.5996 -82.7998c42.7998 -7.90039 70.0996 -19.7002 70.0996 -33
+c0 -12.5996 -24.7998 -23.9004 -64 -31.7002v-0.299805c0 -23.4004 -6.7998 -45.0996 -17.7998 -64h58.5c11.2998 0 19 -11.2002 15 -21.7002zM176 -32l32 120l-24 40l-49.5996 32zM272 -32l41.5996 192l-49.5996 -32l-24 -40zM313.7 266.5
+c0.799805 2.59961 6.2998 5.7002 6.39941 5.7998v10.7998c-28.2998 -3.69922 -61 -5.7998 -96 -5.7998s-67.6992 2.2002 -96 5.7998v-10.7998c0 -0.0996094 5.5 -3.2998 6.30078 -5.7998c3.7998 -11.9004 7 -24.5996 16.5 -33.4004c8 -7.39941 47 -25.1992 64 25
+c2.89941 8.40039 15.5 8.40039 18.2998 0c16 -47.3994 53.8994 -34.2998 64 -25c9.5 8.80078 12.5996 21.5 16.5 33.4004z" />
+ <glyph glyph-name="motorcycle" unicode="" horiz-adv-x="640"
+d="M512.9 256c69.5996 -0.5 126.5 -57.2998 127.199 -126.9c0.600586 -71.5996 -57.5996 -129.8 -129.199 -129.1c-69.6006 0.599609 -126.301 57.5 -126.801 127.1c-0.299805 39.3008 17.2002 74.5 44.8008 98.2002l-12.5 20.7998
+c-38.7002 -31.2998 -58.3008 -77.8994 -56.2002 -125c0.599609 -13.6992 -10.2998 -25.0996 -24 -25.0996h-84.2002c-14.2998 -55.2002 -64.4004 -96 -124 -96c-71.7002 0 -129.6 58.9004 -128 131c1.59961 67.4004 55.9004 122.5 123.2 124.9
+c14.3994 0.5 28.2998 -1.30078 41.2998 -5.2002l11.2998 20.5c-9.09961 13.8994 -23.2998 24.7998 -47.7998 24.7998h-56c-13.0996 0 -23.7998 10.5 -24 23.5c-0.299805 13.5 11 24.5 24.5 24.5h55.5c55 0 82.2002 -16.9004 99.9004 -40h153.699l-19.1992 32h-66.4004
+c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h80c8.40039 0 16.2002 -4.40039 20.5996 -11.5996l22.8008 -38l37.5 41.6992c4.5 5 11 7.90039 17.7998 7.90039h45.2998c13.2998 0 24 -10.7002 24 -24v-32c0 -13.2998 -10.7002 -24 -24 -24h-82.4004
+l32.9004 -54.9004c13.2998 4.60059 27.5 7 42.4004 6.90039zM128 48c32.7002 0 60.9004 19.7998 73.2998 48h-81.2998c-18.2002 0 -29.7998 19.5996 -21 35.5996l41.5 75.4004c-4.09961 0.700195 -8.2998 1 -12.5 1c-44.0996 0 -80 -35.9004 -80 -80s35.9004 -80 80 -80z
+M591.9 123.6c2.39941 46.1006 -34.3008 84.4004 -79.9004 84.3008c-5.40039 0 -10.7002 -0.5 -15.9004 -1.60059l48.6006 -80.8994c4.5 -7.60059 2.09961 -17.5 -5.5 -22l-13.7002 -8.2002c-7.59961 -4.5 -17.5 -2.10059 -22 5.5l-49.4004 82.3994
+c-13.6992 -14.2998 -22.0996 -33.6992 -22.0996 -55.0996c0 -45.5996 38.2998 -82.4004 84.4004 -79.9004c40.5 2.10059 73.2998 34.9004 75.5 75.5z" />
+ <glyph glyph-name="street-view" unicode=""
+d="M367.9 118.24c85.2295 -15.5801 144.1 -48.29 144.1 -86.2402c0 -53.0195 -114.62 -96 -256 -96s-256 42.9805 -256 96c0 37.9502 58.8701 70.6602 144.1 86.2402c4.62012 -5.2998 9.78027 -10.1006 15.9004 -13.6504v-22.9395
+c-66.5195 -9.35059 -112 -28.0508 -112 -49.6504c0 -30.9297 93.1201 -56 208 -56s208 25.0703 208 56c0 21.5996 -45.4805 40.3096 -112 49.6504v22.9395c6.12012 3.5498 11.2803 8.35059 15.9004 13.6504zM256 320c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64
+s64 -28.6504 64 -64s-28.6504 -64 -64 -64zM192 128c-17.6699 0 -32 14.3301 -32 32v96c0 26.5098 21.4902 48 48 48h11.7998c11.0703 -5.03027 23.2598 -8 36.2002 -8s25.1299 2.96973 36.2002 8h11.7998c26.5098 0 48 -21.4902 48 -48v-96
+c0 -17.6699 -14.3301 -32 -32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v96z" />
+ <glyph glyph-name="heartbeat" unicode=""
+d="M320.2 204.2l22.0996 -44.2002h109.101l-182.601 -186.5c-7.09961 -7.2998 -18.5996 -7.2998 -25.7002 0l-182.5 186.5h94.1006l30 71.7002l56.8994 -126.3c5.5 -12.3008 22.9004 -12.7002 28.9004 -0.600586zM473.7 374.1
+c48.7002 -49.7998 50.7998 -129.1 7.2998 -182.1h-118.9l-27.5996 55.2002c-5.90039 11.7998 -22.7002 11.7998 -28.5996 0l-49 -97.9004l-58.2002 129.3c-5.7998 12.8008 -24 12.5 -29.4004 -0.399414l-35.8994 -86.2002h-102.4c-43.5 53 -41.4004 132.3 7.2998 182.1
+l2.40039 2.40039c51.5 52.7002 135.899 52.7002 187.399 0l27.9004 -28.5l27.9004 28.5996c51.5996 52.6006 135.899 52.6006 187.399 0z" />
+ <glyph glyph-name="venus" unicode="" horiz-adv-x="288"
+d="M288 272c0 -68.5 -47.9004 -125.9 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40
+c0 6.59961 5.40039 12 12 12h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144s144 -64.5 144 -144zM64 272c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80z" />
+ <glyph glyph-name="mars" unicode="" horiz-adv-x="384"
+d="M372 384c6.59961 0 12 -5.40039 12 -12v-79c0 -10.7002 -12.9004 -16.0996 -20.5 -8.5l-16.9004 16.9004l-80.6992 -80.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144s64.5 144 144 144
+c28.2002 0 54.5 -8.09961 76.7002 -22.0996l80.7002 80.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 64c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="mercury" unicode="" horiz-adv-x="288"
+d="M288 240c0 -68.5 -47.9004 -125.9 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40
+c0 6.59961 5.40039 12 12 12h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 44.2002 19.9004 83.7002 51.2002 110c-2.5 1.90039 -4.90039 3.7998 -7.2002 5.7998c-24.7998 21.2002 -39.7998 48.7998 -43.2002 78.9004
+c-0.899414 7.09961 4.7002 13.2998 11.9004 13.2998h40.5c5.7002 0 10.5996 -4.09961 11.7002 -9.7998c2.5 -12.5 9.59961 -24.2998 20.6992 -33.7998c15.4004 -13.2002 36.1006 -20.4004 58.4004 -20.4004s43 7.2002 58.2998 20.4004
+c11.1006 9.5 18.2998 21.2998 20.7002 33.7998c1.09961 5.7002 6 9.7998 11.7998 9.7998h40.5c7.2002 0 12.7998 -6.2002 11.9004 -13.2998c-3.40039 -30 -18.5 -57.6006 -43.2002 -78.7998c-2.2998 -2 -4.7002 -4 -7.2002 -5.80078
+c31.2998 -26.3994 51.2002 -65.8994 51.2002 -110.1zM64 240c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80z" />
+ <glyph glyph-name="transgender" unicode="" horiz-adv-x="384"
+d="M372 448c6.59961 0 12 -5.40039 12 -12v-79c0 -10.7002 -12.9004 -16.0996 -20.5 -8.5l-16.9004 16.9004l-80.6992 -80.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -68.5 -47.9004 -125.8 -112 -140.4v-27.5996h36c6.59961 0 12 -5.40039 12 -12v-40
+c0 -6.59961 -5.40039 -12 -12 -12h-36v-28c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v28h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h36v27.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144
+c28.2002 0 54.5 -8.09961 76.7002 -22.0996l80.7002 80.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 128c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="transgender-alt" unicode="" horiz-adv-x="480"
+d="M468 448c6.59961 0 12 -5.40039 12 -12v-79c0 -10.7002 -12.9004 -16.0996 -20.5 -8.5l-16.9004 16.9004l-80.6992 -80.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -68.5 -47.9004 -125.8 -112 -140.4v-27.5996h36c6.59961 0 12 -5.40039 12 -12v-40
+c0 -6.59961 -5.40039 -12 -12 -12h-36v-28c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v28h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h36v27.5996c-64.0996 14.5 -112 71.9004 -112 140.4
+c0 28.2002 8.09961 54.5 22.2002 76.5996l-16.5 16.5l-19.7998 -19.7998c-4.7002 -4.7002 -12.3008 -4.7002 -17 0l-28.3008 28.2998c-4.69922 4.7002 -4.69922 12.3008 0 17l19.8008 19.8008l-19 19l-16.9004 -16.9004c-7.59961 -7.5 -20.5 -2.2002 -20.5 8.5v79
+c0 6.59961 5.40039 12 12 12h79c10.7002 0 16.0996 -12.9004 8.40039 -20.4004l-16.9004 -16.8994l19 -19l19.7998 19.7998c4.7002 4.7002 12.2998 4.7002 17 0l28.2998 -28.2998c4.7002 -4.7002 4.7002 -12.2998 0 -17l-19.7998 -19.7998l16.5 -16.5
+c22.2002 14 48.5 22.0996 76.7002 22.0996s54.5 -8.09961 76.7002 -22.0996l80.7002 80.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM240 128c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="venus-double" unicode=""
+d="M288 272c0 -68.5 -47.9004 -125.9 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40
+c0 6.59961 5.40039 12 12 12h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144s144 -64.5 144 -144zM64 272c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80zM400 131.6v-51.5996h36
+c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h36v51.5996
+c-21.2002 4.80078 -40.5996 14.3008 -57.2002 27.3008c14 16.6992 25 36 32.1006 57.0996c14.5 -14.7998 34.6992 -24 57.0996 -24c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80c-22.2998 0 -42.5996 -9.2002 -57.0996 -24
+c-7.10059 21.0996 -18 40.4004 -32.1006 57.0996c24.6006 19.3008 55.5 30.9004 89.2002 30.9004c79.5 0 144 -64.5 144 -144c0 -68.5 -47.9004 -125.9 -112 -140.4z" />
+ <glyph glyph-name="mars-double" unicode=""
+d="M340 448c6.59961 0 12 -5.40039 12 -12v-79c0 -7.2002 -5.90039 -12 -12.0996 -12c-2.90039 0 -6 1.09961 -8.40039 3.5l-16.9004 16.9004l-48.6992 -48.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144
+s64.5 144 144 144c28.2002 0 54.5 -8.09961 76.7002 -22.0996l48.7002 48.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 160c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80zM500 288.1
+c6.59961 0 12 -5.39941 12 -12.0996v-79c0 -7.2002 -5.90039 -12 -12.0996 -12c-3 0 -6 1.09961 -8.40039 3.5l-16.9004 16.9004l-48.6992 -48.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144c-74.4004 0 -135.6 56.4004 -143.2 128.9
+c21.7998 2 43.2998 8.19922 63.2998 18.3994c-0.0996094 -1 -0.0996094 -2.09961 -0.0996094 -3.2002c0 -44.0996 35.9004 -80 80 -80s80 35.9004 80 80c0 44.1006 -35.9004 80 -80 80c-1 0 -2.09961 -0.0996094 -3.2002 -0.0996094
+c10.2002 20 16.2998 41.5 18.4004 63.2998c22.5 -2.39941 43.2998 -9.89941 61.5 -21.2998l48.7002 48.7002l-16.9004 16.8994c-7.5 7.60059 -2.2002 20.5 8.5 20.5h79z" />
+ <glyph glyph-name="venus-mars" unicode="" horiz-adv-x="576"
+d="M564 448c6.59961 0 12 -5.40039 12 -12v-79c0 -7.2002 -5.90039 -12 -12.0996 -12c-3 0 -6 1.09961 -8.40039 3.5l-16.9004 16.9004l-48.6992 -48.7002c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144
+c-33.7002 0 -64.7002 11.5 -89.2002 30.9004c14.1006 16.6992 25 36 32.1006 57.0996c14.5 -14.7998 34.7998 -24 57.0996 -24c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80c-22.4004 0 -42.5996 -9.2002 -57.0996 -24
+c-7.10059 21.0996 -18.1006 40.4004 -32.1006 57.0996c24.6006 19.3008 55.5 30.9004 89.2002 30.9004c28.2002 0 54.5 -8.09961 76.7002 -22.0996l48.7002 48.6992l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 384c79.5 0 144 -64.5 144 -144
+c0 -68.5 -47.9004 -125.8 -112 -140.4v-51.5996h36c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-36v-36c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v36h-36c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12
+h36v51.5996c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144zM144 160c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="mars-stroke" unicode="" horiz-adv-x="384"
+d="M372 384c6.59961 0 12 -5.40039 12.0996 -12v-78.9004c0 -10.6992 -12.8994 -16.0996 -20.5 -8.5l-16.8994 16.9004l-17.5 -17.5l14.0996 -14.0996c4.7002 -4.7002 4.7002 -12.3008 0 -17l-28.2998 -28.3008c-4.7002 -4.69922 -12.2998 -4.69922 -17 0l-14.0996 14.1006
+l-18 -18c14 -22.2002 22.0996 -48.5 22.0996 -76.7002c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144s64.5 144 143.9 144c28.1992 0 54.5 -8.09961 76.6992 -22.0996l18 18l-14.0996 14.0996c-4.7002 4.7002 -4.7002 12.2998 0 17l28.2998 28.2002
+c4.7002 4.7002 12.2998 4.7002 17 0l14.1006 -14.1006l17.5 17.5l-16.9004 16.9004c-7.5 7.59961 -2.2002 20.5 8.5 20.5h79zM144 64c44.0996 0 80 35.9004 80 80s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="mars-stroke-v" unicode="" horiz-adv-x="288"
+d="M245.8 213.8c56.2998 -56.2002 56.2998 -147.399 0 -203.6c-56.2002 -56.2002 -147.399 -56.2002 -203.6 0s-56.2002 147.399 0 203.6c19.8994 19.9004 44.2002 32.7998 69.7998 38.6006v25.3994h-20c-6.59961 0 -12 5.40039 -12 12v40c0 6.60059 5.40039 12 12 12h20
+v24.7002h-23.9004c-10.6992 0 -16.0996 12.9004 -8.5 20.5l55.9004 55.9004c4.7002 4.69922 12.2998 4.69922 17 0l55.9004 -55.8008c7.5 -7.59961 2.19922 -20.5 -8.5 -20.5h-23.9004v-24.7998h20c6.59961 0 12 -5.39941 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20
+v-25.3994c25.5996 -5.80078 49.9004 -18.7002 69.7998 -38.6006zM200.6 55.4004c31.2002 31.1992 31.2002 82 0 113.1c-31.1992 31.2002 -81.8994 31.2002 -113.1 0s-31.2002 -81.9004 0 -113.1c31.2002 -31.2002 81.9004 -31.2002 113.1 0z" />
+ <glyph glyph-name="mars-stroke-h" unicode="" horiz-adv-x="480"
+d="M476.2 200.5c4.7002 -4.7002 4.7002 -12.2998 0.0996094 -17l-55.8994 -55.9004c-7.60059 -7.5 -20.5 -2.19922 -20.5 8.5v23.9004h-23.9004v-20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v20h-27.5996
+c-5.80078 -25.5996 -18.7002 -49.9004 -38.6006 -69.7998c-56.2002 -56.2002 -147.399 -56.2002 -203.6 0s-56.2002 147.399 0 203.6s147.399 56.2002 203.6 0c19.9004 -19.8994 32.7998 -44.2002 38.6006 -69.7998h27.5996v20c0 6.59961 5.40039 12 12 12h40
+c6.59961 0 12 -5.40039 12 -12v-20h23.7998v23.9004c0 10.6992 12.9004 16.0996 20.5 8.5zM200.6 135.4c31.2002 31.1992 31.2002 82 0 113.1c-31.1992 31.2002 -81.8994 31.2002 -113.1 0s-31.2002 -81.9004 0 -113.1c31.2002 -31.2002 81.9004 -31.2002 113.1 0z" />
+ <glyph glyph-name="neuter" unicode="" horiz-adv-x="288"
+d="M288 272c0 -68.5 -47.9004 -125.9 -112 -140.4v-151.6c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v151.6c-64.0996 14.5 -112 71.9004 -112 140.4c0 79.5 64.5 144 144 144s144 -64.5 144 -144zM144 192c44.0996 0 80 35.9004 80 80
+s-35.9004 80 -80 80s-80 -35.9004 -80 -80s35.9004 -80 80 -80z" />
+ <glyph glyph-name="genderless" unicode="" horiz-adv-x="288"
+d="M144 272c-44.0996 0 -80 -35.9004 -80 -80s35.9004 -80 80 -80s80 35.9004 80 80s-35.9004 80 -80 80zM144 336c79.5 0 144 -64.5 144 -144s-64.5 -144 -144 -144s-144 64.5 -144 144s64.5 144 144 144z" />
+ <glyph glyph-name="server" unicode=""
+d="M480 288h-448c-17.6729 0 -32 14.3271 -32 32v64c0 17.6729 14.3271 32 32 32h448c17.6729 0 32 -14.3271 32 -32v-64c0 -17.6729 -14.3271 -32 -32 -32zM432 376c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM368 376
+c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM480 128h-448c-17.6729 0 -32 14.3271 -32 32v64c0 17.6729 14.3271 32 32 32h448c17.6729 0 32 -14.3271 32 -32v-64c0 -17.6729 -14.3271 -32 -32 -32zM432 216
+c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM368 216c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM480 -32h-448c-17.6729 0 -32 14.3271 -32 32v64
+c0 17.6729 14.3271 32 32 32h448c17.6729 0 32 -14.3271 32 -32v-64c0 -17.6729 -14.3271 -32 -32 -32zM432 56c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24zM368 56c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24
+s24 10.7451 24 24s-10.7451 24 -24 24z" />
+ <glyph glyph-name="user-plus" unicode="" horiz-adv-x="640"
+d="M624 240c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-64v-64c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v64h-64c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h64v64c0 8.7998 7.2002 16 16 16h32
+c8.7998 0 16 -7.2002 16 -16v-64h64zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352
+c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
+ <glyph glyph-name="user-times" unicode="" horiz-adv-x="640"
+d="M589.6 208l45.6006 -45.5996c6.2998 -6.30078 6.2998 -16.5 0 -22.8008l-22.7998 -22.7998c-6.30078 -6.2998 -16.5 -6.2998 -22.8008 0l-45.5996 45.6006l-45.5996 -45.6006c-6.30078 -6.2998 -16.5 -6.2998 -22.8008 0l-22.7998 22.7998
+c-6.2998 6.30078 -6.2998 16.5 0 22.8008l45.6006 45.5996l-45.6006 45.5996c-6.2998 6.30078 -6.2998 16.5 0 22.8008l22.7998 22.7998c6.30078 6.2998 16.5 6.2998 22.8008 0l45.5996 -45.6006l45.5996 45.6006c6.30078 6.2998 16.5 6.2998 22.8008 0l22.7998 -22.7998
+c6.2998 -6.30078 6.2998 -16.5 0 -22.8008zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352
+c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
+ <glyph glyph-name="bed" unicode="" horiz-adv-x="640"
+d="M176 192c-44.1104 0 -80 35.8896 -80 80s35.8896 80 80 80s80 -35.8896 80 -80s-35.8896 -80 -80 -80zM528 320c61.8604 0 112 -50.1396 112 -112v-192c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v48h-512v-48c0 -8.83984 -7.16016 -16 -16 -16
+h-32c-8.83984 0 -16 7.16016 -16 16v352c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-208h224v144c0 8.83984 7.16016 16 16 16h224z" />
+ <glyph glyph-name="train" unicode="" horiz-adv-x="448"
+d="M448 352v-256c0 -51.8154 -61.624 -96 -130.022 -96l62.9805 -49.7207c5.94727 -4.69629 2.60352 -14.2793 -4.95801 -14.2793h-304c-7.57812 0 -10.8916 9.59375 -4.95703 14.2793l62.9795 49.7207c-68.2021 0 -130.022 44.0459 -130.022 96v256c0 53.0186 64 96 128 96
+h192c65 0 128 -42.9814 128 -96zM400 216v112c0 13.2549 -10.7451 24 -24 24h-304c-13.2549 0 -24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24h304c13.2549 0 24 10.7451 24 24zM224 152c-30.9277 0 -56 -25.0723 -56 -56s25.0723 -56 56 -56s56 25.0723 56 56
+s-25.0723 56 -56 56z" />
+ <glyph glyph-name="subway" unicode="" horiz-adv-x="448"
+d="M448 352v-256c0 -51.8154 -61.624 -96 -130.022 -96l62.9805 -49.7207c5.94727 -4.69629 2.60352 -14.2793 -4.95801 -14.2793h-304c-7.57812 0 -10.8916 9.59375 -4.95703 14.2793l62.9795 49.7207c-68.2021 0 -130.022 44.0459 -130.022 96v256c0 53.0186 64 96 128 96
+h192c65 0 128 -42.9814 128 -96zM200 216v112c0 13.2549 -10.7451 24 -24 24h-104c-13.2549 0 -24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24h104c13.2549 0 24 10.7451 24 24zM400 216v112c0 13.2549 -10.7451 24 -24 24h-104c-13.2549 0 -24 -10.7451 -24 -24
+v-112c0 -13.2549 10.7451 -24 24 -24h104c13.2549 0 24 10.7451 24 24zM352 160c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48zM96 160c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48
+s-21.4902 48 -48 48z" />
+ <glyph glyph-name="battery-full" unicode="" horiz-adv-x="640"
+d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
+c0 26.5098 21.4902 48 48 48h512zM512 256v-128h-416v128h416z" />
+ <glyph glyph-name="battery-three-quarters" unicode="" horiz-adv-x="640"
+d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
+c0 26.5098 21.4902 48 48 48h512zM416 256v-128h-320v128h320z" />
+ <glyph glyph-name="battery-half" unicode="" horiz-adv-x="640"
+d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
+c0 26.5098 21.4902 48 48 48h512zM320 256v-128h-224v128h224z" />
+ <glyph glyph-name="battery-quarter" unicode="" horiz-adv-x="640"
+d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
+c0 26.5098 21.4902 48 48 48h512zM224 256v-128h-128v128h128z" />
+ <glyph glyph-name="battery-empty" unicode="" horiz-adv-x="640"
+d="M544 288h-480v-192h480v64h32v64h-32v64zM560 352c26.5098 0 48 -21.4902 48 -48v-16h8c13.2549 0 24 -10.7451 24 -24v-144c0 -13.2549 -10.7451 -24 -24 -24h-8v-16c0 -26.5098 -21.4902 -48 -48 -48h-512c-26.5098 0 -48 21.4902 -48 48v224
+c0 26.5098 21.4902 48 48 48h512z" />
+ <glyph glyph-name="mouse-pointer" unicode="" horiz-adv-x="320"
+d="M302.189 118.874h-106.084l55.8301 -135.993c3.88965 -9.42773 -0.554688 -19.999 -9.44336 -23.999l-49.165 -21.4268c-9.16504 -4 -19.4434 0.571289 -23.332 9.71387l-53.0527 129.136l-86.6641 -89.1377c-11.5498 -11.877 -30.2783 -2.7207 -30.2783 12.8564v429.678
+c0 16.3994 19.9209 24.3945 30.2773 12.8555l284.412 -292.542c11.4717 -11.1787 3.00684 -31.1406 -12.5 -31.1406z" />
+ <glyph glyph-name="i-cursor" unicode="" horiz-adv-x="256"
+d="M256 395.952c0 -6.64648 -5.4043 -12.0098 -12.0498 -11.9922c-27.875 0.0712891 -83.9502 -3.20996 -83.9502 -48.1416v-111.818h36c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-36v-112c0 -44.9395 57.8887 -48.5527 83.8555 -48.2422
+c6.68652 0.0800781 12.1445 -5.31055 12.1445 -11.998v-39.6445c0 -6.5957 -5.31836 -11.957 -11.9131 -12c-35.0654 -0.228516 -78.3525 0.62207 -116.087 37.8447c-38.4688 -37.9482 -83.6211 -38.3027 -116.158 -37.8936
+c-6.56738 0.0820312 -11.8418 5.42969 -11.8418 11.999v39.9824c0 6.64648 5.4043 12.0098 12.0498 11.9932c27.875 -0.0722656 83.9502 3.02734 83.9502 47.959v112h-36c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h36v111.818
+c0 44.9385 -57.8887 48.7344 -83.8555 48.4248c-6.68652 -0.0800781 -12.1445 5.31055 -12.1445 11.998v39.6445c0 6.5957 5.31836 11.957 11.9131 12c35.0654 0.228516 78.3525 -0.62207 116.087 -37.8447c38.4688 37.9482 83.6211 38.3027 116.158 37.8926
+c6.56738 -0.0820312 11.8418 -5.42969 11.8418 -11.999v-39.9824z" />
+ <glyph glyph-name="object-group" unicode=""
+d="M480 320v-288h20c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v20h-384v-20c0 -6.62695 -5.37305 -12 -12 -12h-40c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h20v320h-20
+c-6.62695 0 -12 5.37305 -12 12v40c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-20h384v20c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-40c0 -6.62695 -5.37305 -12 -12 -12h-20v-32zM96 172c0 -6.62695 5.37305 -12 12 -12h168
+c6.62695 0 12 5.37305 12 12v136c0 6.62695 -5.37305 12 -12 12h-168c-6.62695 0 -12 -5.37305 -12 -12v-136zM416 76v136c0 6.62695 -5.37305 12 -12 12h-84v-72c0 -13.2549 -10.7451 -24 -24 -24h-72v-52c0 -6.62695 5.37305 -12 12 -12h168c6.62695 0 12 5.37305 12 12z
+" />
+ <glyph glyph-name="object-ungroup" unicode="" horiz-adv-x="576"
+d="M64 128v-26c0 -3.31152 -2.68848 -6 -6 -6h-52c-3.31152 0 -6 2.68848 -6 6v52c0 3.31152 2.68848 6 6 6h26v192h-26c-3.31152 0 -6 2.68848 -6 6v52c0 3.31152 2.68848 6 6 6h52c3.31152 0 6 -2.68848 6 -6v-26h288v26c0 3.31152 2.68848 6 6 6h52
+c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-26v-192h26c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-52c-3.31152 0 -6 2.68848 -6 6v26h-288zM544 192v-160h26c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-52
+c-3.31152 0 -6 2.68848 -6 6v26h-288v-26c0 -3.31152 -2.68848 -6 -6 -6h-52c-3.31152 0 -6 2.68848 -6 6v52c0 3.31152 2.68848 6 6 6h26v72h136v-8c0 -13.2549 10.7451 -24 24 -24h64c13.2549 0 24 10.7451 24 24v64c0 13.2549 -10.7451 24 -24 24h-8v72h104v26
+c0 3.31152 2.68848 6 6 6h52c3.31152 0 6 -2.68848 6 -6v-52c0 -3.31152 -2.68848 -6 -6 -6h-26v-32z" />
+ <glyph glyph-name="sticky-note" unicode="" horiz-adv-x="448"
+d="M312 128c-13.2002 0 -24 -10.7998 -24 -24v-136h-264c-13.2998 0 -24 10.7002 -24 24v400c0 13.2998 10.7002 24 24 24h400c13.2998 0 24 -10.7002 24 -24v-264h-136zM441 73l-98 -98c-4.5 -4.5 -10.5996 -7 -17 -7h-6v128h128v-6.09961
+c0 -6.30078 -2.5 -12.4004 -7 -16.9004z" />
+ <glyph glyph-name="clone" unicode=""
+d="M464 448c26.5098 0 48 -21.4902 48 -48v-288c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h288zM176 32h208v-48c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v288
+c0 26.5098 21.4902 48 48 48h48v-208c0 -44.1123 35.8877 -80 80 -80z" />
+ <glyph glyph-name="balance-scale" unicode="" horiz-adv-x="640"
+d="M256 112c0 -44.1797 -57.3096 -80 -128 -80s-128 35.8203 -128 80h0.0195312c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51h0.0195312zM128 272l-72 -144h144zM639.98 112
+c0 -44.1797 -57.29 -80 -127.98 -80s-128 35.8203 -128 80h0.0195312c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51zM440 128h144l-72 144zM528 0c8.83984 0 16 -7.16016 16 -16v-32
+c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h176v294.75c-23.5195 10.29 -41.1602 31.4902 -46.3896 57.25h-129.61c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h144.36
+c14.5996 19.3203 37.5498 32 63.6396 32s49.04 -12.6797 63.6396 -32h144.36c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-129.61c-5.22949 -25.7695 -22.8799 -46.96 -46.3896 -57.25v-294.75h176z" />
+ <glyph glyph-name="hourglass-start" unicode="" horiz-adv-x="384"
+d="M360 448c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336
+c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336zM296 0c0 77.4834 -46.2139 144 -104 144
+c-57.7959 0 -104 -66.542 -104 -144h208z" />
+ <glyph glyph-name="hourglass-half" unicode="" horiz-adv-x="384"
+d="M360 448c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336
+c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336zM284.922 64
+c-17.0596 46.8037 -52.1006 80 -92.9219 80c-40.8242 0 -75.8613 -33.2031 -92.9199 -80h185.842zM284.941 320c7.07129 19.4131 11.0586 41.1953 11.0586 64h-208c0 -22.748 3.98828 -44.5479 11.0781 -64h185.863z" />
+ <glyph glyph-name="hourglass-end" unicode="" horiz-adv-x="384"
+d="M360 384c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24
+c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24zM192 240c57.4902 0 104 66.0547 104 144
+h-208c0 -77.4824 46.2129 -144 104 -144z" />
+ <glyph glyph-name="hourglass" unicode="" horiz-adv-x="384"
+d="M360 384c0 -90.9648 -51.0156 -167.734 -120.842 -192c69.8262 -24.2656 120.842 -101.035 120.842 -192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24
+c0 90.9648 51.0156 167.734 120.842 192c-69.8262 24.2656 -120.842 101.035 -120.842 192c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h336c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24z" />
+ <glyph glyph-name="hand-rock" unicode=""
+d="M464.8 368c26.2998 -0.400391 47.2002 -22.5 47.2002 -48.7998v-133.5c0 -12.7998 -2.5 -25.5 -7.5 -37.2998l-49 -116.301c-4.90039 -11.7998 -7.5 -24.5 -7.5 -37.2998v-2.89941c0 -13.3008 -10.7002 -24 -24 -24h-240c-13.2998 0 -24 10.6992 -24 24v6.69922
+c0 13.7002 -5.90039 26.8008 -16.0996 35.9004l-111.7 99.2998c-20.5 18.2998 -32.2002 44.4004 -32.2002 71.7998v66.4004c0 26.7998 21.9004 48.4004 48.7998 48c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-48.1006l8 -7.09961v136
+c0 26.7998 21.9004 48.4004 48.7998 48c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-31.2002h8v48c0 26.7998 21.9004 48.4004 48.7998 48c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-47.2002h8v32c0 26.7998 21.9004 48.4004 48.7998 48
+c26.2998 -0.5 47.2002 -22.5 47.2002 -48.7998v-31.2002h8c0 26.7998 21.9004 48.4004 48.7998 48z" />
+ <glyph glyph-name="hand-paper" unicode="" horiz-adv-x="448"
+d="M408.781 319.993c21.7305 -0.416016 39.2188 -18.1621 39.2178 -39.9932v-150.359c0 -12.2998 -2.28711 -32.001 -5.10449 -43.9746l-26.5078 -112.66c-5.10156 -21.6816 -24.4502 -37.0059 -46.7236 -37.0059h-197.59c-13.4922 0 -30.8838 8.85645 -38.8193 19.7676
+l-125.601 172.705c-12.9932 17.8672 -9.04297 42.8838 8.82129 55.877c17.8682 12.9941 42.8848 9.04297 55.877 -8.82227l31.6484 -43.5195v235.992c0 21.8311 17.4883 39.5771 39.2188 39.9932c22.4248 0.428711 40.7812 -18.3535 40.7812 -40.7832v-175.21h8v216
+c0 21.8311 17.4883 39.5771 39.2188 39.9932c22.4248 0.428711 40.7812 -18.3535 40.7812 -40.7832v-215.21h8v177c0 21.8311 17.4883 39.5771 39.2188 39.9932c22.4248 0.428711 40.7812 -18.3535 40.7812 -40.7832v-176.21h8v87.21
+c0 22.4297 18.3564 41.2119 40.7812 40.7832z" />
+ <glyph glyph-name="hand-scissors" unicode=""
+d="M216 8c0 22.0918 17.9092 40 40 40v8h-32c-22.0908 0 -40 17.9082 -40 40s17.9092 40 40 40h32v8h-208c-26.5098 0 -48 21.4902 -48 48s21.4902 48 48 48h208v13.5723l-177.551 69.7393c-24.6738 9.69434 -36.8184 37.5557 -27.125 62.2285
+c9.69238 24.6738 37.5537 36.8174 62.2275 27.124l190.342 -74.7646l24.8721 31.0898c12.3066 15.3809 33.9785 19.5146 51.0811 9.74121l112 -64c11.125 -6.3584 20.1533 -21.917 20.1533 -34.7305v-240c0 -18.5615 -12.7695 -34.6855 -30.8379 -38.9365l-136 -32
+c-2.49414 -0.586914 -6.59668 -1.06348 -9.1582 -1.06348h-0.00390625h-80c-22.0908 0 -40 17.9082 -40 40z" />
+ <glyph glyph-name="hand-lizard" unicode="" horiz-adv-x="576"
+d="M384 -32v61.4609c0 7.28906 -4.99707 16.3711 -11.1543 20.2734l-111.748 70.8105c-6.49316 4.11523 -18.0029 7.45508 -25.6904 7.45508h-0.000976562h-147.406c-13.2549 0 -24 10.7451 -24 24v8c0 35.3457 28.6543 64 64 64h123.648
+c11.7754 0 25.0088 8.82227 29.5371 19.6924l21.4102 51.3848c4.94141 11.8555 -3.77051 24.9229 -16.6143 24.9229h-229.981c-30.9277 0 -56 25.0723 -56 56v16c0 13.2549 10.7451 24 24 24h333.544c14.6035 0 32.7852 -10.0205 40.583 -22.3682l163.04 -258.146
+c8.1875 -12.9639 14.833 -35.9297 14.833 -51.2627v-0.000976562v-116.222h-192z" />
+ <glyph glyph-name="hand-spock" unicode=""
+d="M481.3 350.9c21.4004 -5.10059 34.7002 -26.7002 29.7002 -48.2002l-36.2998 -152.5c-1.7002 -7.2002 -2.60059 -14.7002 -2.60059 -22.2002v-42c0 -9.2998 -1.39941 -18.4004 -4 -27.2998l-26.1992 -88.2998c-6 -20.4004 -24.7002 -34.4004 -46 -34.4004h-216.7
+c-12.2002 0 -24 4.59961 -32.9004 13l-133.7 125.9c-16.0996 15.0996 -16.7998 40.3994 -1.69922 56.5c15.0996 16.0996 40.3994 16.7998 56.5 1.69922l60.5996 -57v79.4004l-39 171.6c-4.90039 21.6006 8.59961 43 30.0996 47.9004
+c21.6006 4.90039 43 -8.59961 47.9004 -30.0996l34.7998 -152.801h9.7998l-47.5996 207c-5 21.5 8.5 43 30 47.9004c21.5996 4.90039 43 -8.5 48 -30.0996l51.7002 -224.9h15.0996l48.4004 193.7c5.39941 21.3994 27.0996 34.5 48.5 29.0996
+c21.3994 -5.39941 34.5 -27.0996 29.0996 -48.5l-43.5996 -174.3h11.0996l30.7998 129.3c5.10059 21.4004 26.7002 34.7002 48.2002 29.6006z" />
+ <glyph glyph-name="hand-pointer" unicode="" horiz-adv-x="448"
+d="M448 208v-96c0 -3.08398 -0.356445 -6.15918 -1.06348 -9.16211l-32 -136c-4.25098 -18.0684 -20.375 -30.8379 -38.9365 -30.8379h-208c-11.2432 0 -25.7363 7.37988 -32.3496 16.4727l-127.997 176c-12.9932 17.8662 -9.04297 42.8838 8.82129 55.876
+c17.8672 12.9941 42.8848 9.04297 55.877 -8.82227l31.6484 -43.5186v275.992c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-200h8v40c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-40h8v24c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-24h8
+c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40zM192 128h-8v-96h8v96zM280 128h-8v-96h8v96zM368 128h-8v-96h8v96z" />
+ <glyph glyph-name="hand-peace" unicode="" horiz-adv-x="448"
+d="M408 232c22.0918 0 40 -17.9092 40 -40v-80v-0.00488281c0 -2.56152 -0.476562 -6.66406 -1.06348 -9.15723l-32 -136c-4.25098 -18.0684 -20.375 -30.8379 -38.9365 -30.8379h-240h-0.000976562c-12.8125 0 -28.3711 9.0293 -34.7275 20.1543l-64 112
+c-9.77441 17.1025 -5.64062 38.7744 9.74023 51.0811l31.0898 24.8721l-74.7646 190.342c-9.69336 24.6738 2.4502 52.5342 27.124 62.2266c24.6729 9.69434 52.5332 -2.4502 62.2275 -27.125l69.7393 -177.551h13.5723v208c0 26.5098 21.4902 48 48 48s48 -21.4902 48 -48
+v-208h8v32c0 22.0908 17.9082 40 40 40s40 -17.9092 40 -40v-32h8c0 22.0908 17.9082 40 40 40z" />
+ <glyph glyph-name="trademark" unicode="" horiz-adv-x="640"
+d="M260.6 352c6.60059 0 12 -5.40039 11.9004 -12v-43.0996c0 -6.60059 -5.40039 -12 -12 -12h-85.0996v-240.9c0 -6.59961 -5.40039 -12 -12 -12h-54.3008c-6.59961 0 -12 5.40039 -12 12v240.9h-85.0996c-6.59961 0 -12 5.39941 -12 12v43.0996
+c0 6.59961 5.40039 12 12 12h248.6zM640 45c0.5 -7 -5 -13 -12 -13h-53.9004c-6.2998 0 -11.5996 4.90039 -12 11.2002l-9.09961 132.899c-1.7998 24.2002 0 53.7002 0 53.7002h-0.900391s-10.6992 -33.5996 -17.8994 -53.7002l-30.7002 -84.6992
+c-1.7002 -4.7002 -6.2002 -7.90039 -11.2998 -7.90039h-50.2998c-5.10059 0 -9.60059 3.2002 -11.3008 7.90039l-30.6992 84.6992c-7.2002 20.1006 -17.9004 53.7002 -17.9004 53.7002h-0.900391s1.80078 -29.5 0 -53.7002l-9.09961 -132.899
+c-0.5 -6.2998 -5.7002 -11.2002 -12 -11.2002h-54.5c-7.09961 0 -12.5996 6 -12 13l24.4004 296c0.599609 6.2002 5.7998 11 12 11h65.3994c5.10059 0 9.60059 -3.2998 11.2998 -8.09961l43.8008 -127.101c7.19922 -20.5996 16.0996 -52.7998 16.0996 -52.7998h0.900391
+s8.89941 32.2002 16.0996 52.7998l43.7998 127.101c1.60059 4.7998 6.2002 8.09961 11.2998 8.09961h65.4004c6.2998 0 11.5 -4.7998 12 -11z" />
+ <glyph glyph-name="registered" unicode=""
+d="M285.363 240.525c0 -18.6006 -9.83105 -28.4316 -28.4316 -28.4316h-29.876v56.1406h23.3779c28.668 0 34.9297 -8.77344 34.9297 -27.709zM504 192c0 -136.967 -111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248s248 -111.033 248 -248z
+M363.411 87.5859c-46.7295 84.8252 -43.2988 78.6357 -44.7021 80.9805c23.4316 15.1719 37.9453 42.9785 37.9453 74.4854c0 54.2441 -31.5 89.252 -105.498 89.252h-70.667c-13.2549 0 -24 -10.7451 -24 -24v-232.304c0 -13.2549 10.7451 -24 24 -24h22.5664
+c13.2549 0 24 10.7451 24 24v71.6631h25.5566l44.1289 -82.9375c3.73828 -7.02441 13.2305 -12.7266 21.1875 -12.7266h24.4639c18.2617 0.000976562 29.8291 19.5908 21.0186 35.5869z" />
+ <glyph glyph-name="tv" unicode="" horiz-adv-x="640"
+d="M592 448c26.5 0 48 -21.5 48 -48v-320c0 -26.5 -21.5 -48 -48 -48h-234.9v-32h160c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32h-384c-17.6992 0 -32 14.2998 -32 32s14.3008 32 32 32h160v32h-245.1c-26.5 0 -48 21.5 -48 48v320c0 26.5 21.5 48 48 48h544z
+M576 96v288h-512v-288h512z" />
+ <glyph glyph-name="calendar-plus" unicode="" horiz-adv-x="448"
+d="M436 288h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36
+c0 -6.59961 -5.40039 -12 -12 -12zM12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM328 116c0 6.59961 -5.40039 12 -12 12h-60v60c0 6.59961 -5.40039 12 -12 12h-40
+c-6.59961 0 -12 -5.40039 -12 -12v-60h-60c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h60v-60c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12v60h60c6.59961 0 12 5.40039 12 12v40z" />
+ <glyph glyph-name="calendar-minus" unicode="" horiz-adv-x="448"
+d="M436 288h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36
+c0 -6.59961 -5.40039 -12 -12 -12zM12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM316 64c6.59961 0 12 5.40039 12 12v40c0 6.59961 -5.40039 12 -12 12h-184
+c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h184z" />
+ <glyph glyph-name="calendar-times" unicode="" horiz-adv-x="448"
+d="M436 288h-424c-6.59961 0 -12 5.40039 -12 12v36c0 26.5 21.5 48 48 48h48v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h128v52c0 6.59961 5.40039 12 12 12h40c6.59961 0 12 -5.40039 12 -12v-52h48c26.5 0 48 -21.5 48 -48v-36
+c0 -6.59961 -5.40039 -12 -12 -12zM12 256h424c6.59961 0 12 -5.40039 12 -12v-260c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v260c0 6.59961 5.40039 12 12 12zM269.3 96l48.1006 48.0996c4.69922 4.7002 4.69922 12.3008 0 17l-28.3008 28.3008
+c-4.69922 4.69922 -12.2998 4.69922 -17 0l-48.0996 -48.1006l-48.0996 48.1006c-4.7002 4.69922 -12.3008 4.69922 -17 0l-28.3008 -28.3008c-4.69922 -4.69922 -4.69922 -12.2998 0 -17l48.1006 -48.0996l-48.1006 -48.0996c-4.69922 -4.7002 -4.69922 -12.3008 0 -17
+l28.3008 -28.3008c4.69922 -4.69922 12.2998 -4.69922 17 0l48.0996 48.1006l48.0996 -48.1006c4.7002 -4.69922 12.3008 -4.69922 17 0l28.3008 28.3008c4.69922 4.69922 4.69922 12.2998 0 17z" />
+ <glyph glyph-name="calendar-check" unicode="" horiz-adv-x="448"
+d="M436 288h-424c-6.62695 0 -12 5.37305 -12 12v36c0 26.5098 21.4902 48 48 48h48v52c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-52h128v52c0 6.62695 5.37305 12 12 12h40c6.62695 0 12 -5.37305 12 -12v-52h48c26.5098 0 48 -21.4902 48 -48v-36
+c0 -6.62695 -5.37305 -12 -12 -12zM12 256h424c6.62695 0 12 -5.37305 12 -12v-260c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v260c0 6.62695 5.37305 12 12 12zM345.296 160.053l-28.1689 28.3984
+c-4.66699 4.70508 -12.2646 4.73535 -16.9697 0.0673828l-106.037 -105.184l-45.9805 46.3516c-4.66699 4.70508 -12.2656 4.73633 -16.9707 0.0683594l-28.3965 -28.1699c-4.70508 -4.66699 -4.73633 -12.2646 -0.0683594 -16.9697l82.6006 -83.2695
+c4.66699 -4.70508 12.2656 -4.73535 16.9707 -0.0673828l142.952 141.805c4.70508 4.66699 4.73633 12.2646 0.0683594 16.9697z" />
+ <glyph glyph-name="industry" unicode=""
+d="M475.115 284.219c15.9541 10.1514 36.8848 -1.33105 36.8848 -20.248v-271.971c0 -13.2549 -10.7451 -24 -24 -24h-464c-13.2549 0 -24 10.7451 -24 24v400c0 13.2549 10.7451 24 24 24h112c13.2549 0 24 -10.7451 24 -24v-196.309l139.115 88.5273
+c15.9541 10.1514 36.8848 -1.33203 36.8848 -20.248v-68.2793z" />
+ <glyph glyph-name="map-pin" unicode="" horiz-adv-x="288"
+d="M112 131.06c10.3896 -1.91992 21.0596 -3.05957 32 -3.05957s21.6104 1.13965 32 3.05957v-156.689l-22.0098 -33.0205c-4.75 -7.11914 -15.2207 -7.11914 -19.9707 0l-22.0195 33.0205v156.689zM144 448c79.5303 0 144 -64.4697 144 -144s-64.4697 -144 -144 -144
+s-144 64.4697 -144 144s64.4697 144 144 144zM144 372c6.62012 0 12 5.37988 12 12s-5.37988 12 -12 12c-50.7197 0 -92 -41.2695 -92 -92c0 -6.62012 5.37988 -12 12 -12s12 5.37988 12 12c0 37.5 30.5 68 68 68z" />
+ <glyph glyph-name="map-signs" unicode=""
+d="M507.31 363.31c6.25 -6.25 6.25 -16.3691 0 -22.6299l-43.3096 -43.3096c-6.00977 -6 -14.1396 -9.37012 -22.6299 -9.37012h-385.37c-13.25 0 -24 10.75 -24 24v80c0 13.25 10.75 24 24 24h168v16c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-16
+h153.37c8.49023 0 16.6299 -3.37012 22.6299 -9.37012zM224 -48v112h64v-112c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16zM456 224c13.25 0 24 -10.75 24 -24v-80c0 -13.25 -10.75 -24 -24 -24h-385.37
+c-8.49023 0 -16.6299 3.37012 -22.6299 9.37012l-43.3096 43.3096c-6.25 6.25 -6.25 16.3799 0 22.6299l43.3096 43.3203c6.00977 6 14.1396 9.37012 22.6299 9.37012h153.37v32h64v-32h168z" />
+ <glyph glyph-name="map" unicode="" horiz-adv-x="576"
+d="M0 330.34c0.00292969 11.959 9.0166 25.2686 20.1201 29.71l139.88 55.9502v-384l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v346.32zM192 32v384l192 -64v-384zM554.06 414.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-346.32
+c0 -11.9609 -9.01367 -25.2705 -20.1201 -29.71l-139.88 -55.9502v384z" />
+ <glyph glyph-name="comment-alt" unicode=""
+d="M448 448c35.2998 0 64 -28.7002 64 -64v-288c0 -35.2998 -28.7002 -64 -64 -64h-144l-124.9 -93.7002c-7.89941 -5.7998 -19.0996 -0.0996094 -19.0996 9.7002v84h-96c-35.2998 0 -64 28.7002 -64 64v288c0 35.2998 28.7002 64 64 64h384z" />
+ <glyph glyph-name="pause-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM240 112v160c0 8.7998 -7.2002 16 -16 16h-48c-8.7998 0 -16 -7.2002 -16 -16v-160c0 -8.7998 7.2002 -16 16 -16h48c8.7998 0 16 7.2002 16 16zM352 112v160
+c0 8.7998 -7.2002 16 -16 16h-48c-8.7998 0 -16 -7.2002 -16 -16v-160c0 -8.7998 7.2002 -16 16 -16h48c8.7998 0 16 7.2002 16 16z" />
+ <glyph glyph-name="stop-circle" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM352 112v160c0 8.7998 -7.2002 16 -16 16h-160c-8.7998 0 -16 -7.2002 -16 -16v-160c0 -8.7998 7.2002 -16 16 -16h160c8.7998 0 16 7.2002 16 16z" />
+ <glyph glyph-name="shopping-bag" unicode="" horiz-adv-x="448"
+d="M352 288h96v-272c0 -44.1826 -35.8174 -80 -80 -80h-288c-44.1826 0 -80 35.8174 -80 80v272h96v32c0 70.5801 57.4199 128 128 128c70.5791 0 128 -57.4199 128 -128v-32zM160 320v-32h128v32c0 35.29 -28.71 64 -64 64s-64 -28.71 -64 -64zM320 200
+c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24zM128 200c13.2549 0 24 10.7451 24 24s-10.7451 24 -24 24s-24 -10.7451 -24 -24s10.7451 -24 24 -24z" />
+ <glyph glyph-name="shopping-basket" unicode="" horiz-adv-x="576"
+d="M576 232v-16c0 -13.2549 -10.7451 -24 -24 -24h-8l-26.1133 -182.788c-3.37793 -23.6465 -23.6299 -41.2119 -47.5166 -41.2119h-364.74c-23.8867 0 -44.1387 17.5654 -47.5176 41.2119l-26.1123 182.788h-8c-13.2549 0 -24 10.7451 -24 24v16
+c0 13.2549 10.7451 24 24 24h67.3408l106.78 146.821c10.3945 14.292 30.4072 17.4531 44.7012 7.05762c14.293 -10.3945 17.4531 -30.4082 7.05762 -44.7012l-79.4033 -109.178h235.047l-79.4033 109.179c-10.3955 14.292 -7.23438 34.3066 7.05859 44.7012
+c14.291 10.3955 34.3066 7.23535 44.7012 -7.05762l106.779 -146.822h67.3408c13.2549 0 24 -10.7451 24 -24zM312 56v112c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24zM424 56v112
+c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24zM200 56v112c0 13.2549 -10.7451 24 -24 24s-24 -10.7451 -24 -24v-112c0 -13.2549 10.7451 -24 24 -24s24 10.7451 24 24z" />
+ <glyph glyph-name="hashtag" unicode="" horiz-adv-x="448"
+d="M440.667 265.891c-0.974609 -5.45898 -6.2666 -9.89062 -11.8135 -9.89062h-79.0957l-22.8564 -128h74.8096c7.4707 0 13.126 -6.75391 11.8135 -14.1094l-7.14355 -40c-0.974609 -5.45898 -6.2666 -9.89062 -11.8125 -9.89062h-79.0967l-15.377 -86.1094
+c-0.974609 -5.45898 -6.2666 -9.89062 -11.8125 -9.89062h-40.6318c-7.47266 0 -13.127 6.75391 -11.8135 14.1094l14.623 81.8906h-98.6338l-15.3779 -86.1094c-0.974609 -5.45898 -6.26758 -9.89062 -11.8135 -9.89062h-40.6318
+c-7.4707 0 -13.126 6.75391 -11.8125 14.1094l14.623 81.8906h-74.8105c-7.4707 0 -13.126 6.75391 -11.8125 14.1094l7.14258 40c0.974609 5.45898 6.2666 9.89062 11.8135 9.89062h79.0957l22.8564 128h-74.8096c-7.4707 0 -13.126 6.75391 -11.8135 14.1094l7.14355 40
+c0.974609 5.45898 6.2666 9.89062 11.8125 9.89062h79.0967l15.377 86.1094c0.974609 5.45898 6.2666 9.89062 11.8125 9.89062h40.6318c7.47266 0 13.127 -6.75391 11.8135 -14.1094l-14.623 -81.8906h98.6348l15.377 86.1094
+c0.974609 5.45898 6.26758 9.89062 11.8135 9.89062h40.6318c7.4707 0 13.126 -6.75391 11.8125 -14.1094l-14.623 -81.8906h74.8105c7.4707 0 13.126 -6.75391 11.8125 -14.1094zM261.889 128l22.8574 128h-98.6338l-22.8574 -128h98.6338z" />
+ <glyph glyph-name="percent" unicode="" horiz-adv-x="448"
+d="M112 224c-61.9004 0 -112 50.0996 -112 112s50.0996 112 112 112s112 -50.0996 112 -112s-50.0996 -112 -112 -112zM112 384c-26.5 0 -48 -21.5 -48 -48s21.5 -48 48 -48s48 21.5 48 48s-21.5 48 -48 48zM336 160c61.9004 0 112 -50.0996 112 -112
+s-50.0996 -112 -112 -112s-112 50.0996 -112 112s50.0996 112 112 112zM336 0c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM392.3 447.8l31.6006 0.100586c19.3994 0.0996094 30.8994 -21.8008 19.6992 -37.8008l-366.199 -463.699
+c-3.94629 -5.62793 -12.7275 -10.1973 -19.6006 -10.2002l-33.3994 -0.100586c-19.5 0 -30.9004 21.9004 -19.7002 37.8008l368 463.699c4.5 6.40039 11.7998 10.2002 19.5996 10.2002z" />
+ <glyph glyph-name="universal-access" unicode=""
+d="M256 400c-114.971 0 -208 -93.0469 -208 -208c0 -114.971 93.0469 -208 208 -208c114.971 0 208 93.0469 208 208c0 114.971 -93.0469 208 -208 208zM256 440c136.967 0 248 -111.033 248 -248s-111.033 -248 -248 -248s-248 111.033 -248 248s111.033 248 248 248z
+M256 384c106.039 0 192 -85.9609 192 -192s-85.9609 -192 -192 -192s-192 85.9609 -192 192s85.9609 192 192 192zM256 340c-19.8818 0 -36 -16.1182 -36 -36s16.1182 -36 36 -36s36 16.1182 36 36s-16.1182 36 -36 36zM373.741 241.977
+c8.59961 2.03027 13.9258 10.6484 11.8965 19.249c-2.03027 8.60156 -10.6494 13.9258 -19.249 11.8955c-96.4912 -22.7832 -124.089 -22.8291 -220.774 0c-8.60254 2.03125 -17.2178 -3.29395 -19.249 -11.8955c-2.03125 -8.60059 3.29492 -17.2178 11.8945 -19.249
+c28.7129 -6.7793 55.5127 -12.749 82.1416 -15.8066c-0.852539 -101.08 -12.3242 -123.08 -25.0371 -155.621c-3.61719 -9.25879 0.957031 -19.6982 10.2168 -23.3145c9.26465 -3.61914 19.7002 0.961914 23.3154 10.2168c8.72754 22.3408 17.0947 40.6982 22.2617 78.5488
+h9.68555c5.1748 -37.9131 13.5566 -56.2412 22.2617 -78.5488c3.61621 -9.25977 14.0547 -13.834 23.3154 -10.2168c9.25977 3.61621 13.834 14.0547 10.2168 23.3145c-12.7305 32.5693 -24.1855 54.5986 -25.0371 155.621c26.6299 3.05859 53.4287 9.02832 82.1406 15.8066
+z" />
+ <glyph glyph-name="blind" unicode="" horiz-adv-x="384"
+d="M380.15 -62.8369c-1.05664 -0.640625 -2.91602 -1.16113 -4.15137 -1.16113c-2.48438 0 -5.54785 1.72363 -6.83789 3.84766l-125.33 206.428c4.25684 1.68848 10.0615 5.9375 12.958 9.48438l126.048 -207.607c0.641602 -1.05664 1.16211 -2.91699 1.16211 -4.15234
+c0 -2.48535 -1.72461 -5.5498 -3.84863 -6.83887zM142.803 133.662l62.8145 -153.537c6.69141 -16.3584 -1.14453 -35.042 -17.501 -41.7344c-16.3564 -6.69043 -35.04 1.1416 -41.7334 17.501l-36.1201 88.2852zM96 360c-24.3008 0 -44 19.6992 -44 44s19.6992 44 44 44
+s44 -19.6992 44 -44s-19.6992 -44 -44 -44zM250.837 190.872c8.19336 -10.374 6.44434 -25.4922 -3.96582 -33.708c-9.33984 -7.37402 -24.5635 -7.61914 -33.708 3.96484l-102.3 129.217c-0.663086 0.836914 -2.06738 1.51562 -3.13477 1.51562
+c-2.20801 0 -4 -1.79297 -4 -4.00098c0 -0.769531 0.387695 -1.88281 0.865234 -2.48535l31.4062 -39.8164v-107.196l-65.9258 -181.288c-6.04102 -16.6143 -24.4072 -25.1768 -41.0088 -19.1387c-16.6104 6.04004 -25.1787 24.4004 -19.1387 41.0098l54.0732 148.693
+v140.698l-16 -20.5713v-79.7656c0 -13.0996 -10.4951 -23.748 -23.5361 -23.9961c-13.4531 -0.254883 -24.4639 11.0811 -24.4639 24.5361v95.6943l61.0557 78.5c4.72754 6.0791 11.7979 9.23633 18.9443 9.23926v0.0263672h32v-0.015625
+c7.08691 -0.00390625 14.1035 -3.11719 18.8369 -9.1123z" />
+ <glyph glyph-name="audio-description" unicode=""
+d="M162.925 209.291l8.82227 -30.6553h-25.6064l9.04102 30.6523c1.27734 4.4209 2.65137 9.99414 3.87207 15.2451c1.2207 -5.25098 2.59473 -10.8232 3.87109 -15.2422zM329.399 241.39c28.6846 0 46.1748 -16.7656 46.1748 -49.0049
+c0 -32.0977 -16.3994 -49.7754 -46.1748 -49.7754h-14.5234v98.7803h14.5234zM512 336v-288c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h416c26.5098 0 48 -21.4902 48 -48zM245.459 111.861l-57.0967 168
+c-1.52734 4.49219 -6.61719 8.13867 -11.3623 8.13867h-35.8936c-4.74512 0 -9.83594 -3.64648 -11.3623 -8.13867l-57.0967 -168c-2.64453 -7.7832 3.1416 -15.8613 11.3613 -15.8613h29.1328c4.99219 0 10.1602 3.89453 11.5352 8.69336l8.57422 29.9053h51.3672
+l8.79297 -29.9766c1.39648 -4.75977 6.55469 -8.62207 11.5146 -8.62207v0h29.1719c8.2207 0 14.0059 8.07812 11.3613 15.8613zM430.16 192.386c0 58.9775 -37.9189 95.6143 -98.96 95.6143h-57.3662c-6.62695 0 -12 -5.37305 -12 -12v-168c0 -6.62695 5.37305 -12 12 -12
+h57.3662c61.041 0 98.96 36.9326 98.96 96.3857z" />
+ <glyph glyph-name="phone-volume" unicode="" horiz-adv-x="384"
+d="M97.333 -58.9658c-129.874 129.874 -129.681 340.252 0 469.933c5.69824 5.69824 14.5273 6.63184 21.2627 2.42188l64.8174 -40.5127c4.45898 -2.78711 8.07812 -9.31641 8.07812 -14.5752c0 -1.82715 -0.550781 -4.68652 -1.22949 -6.38281l-32.4082 -81.0205
+c-2.38477 -5.96484 -9.53418 -10.8047 -15.958 -10.8047c-0.473633 0 -1.23926 0.0380859 -1.71094 0.0849609l-55.8096 5.58008c-21.0508 -58.2607 -20.6123 -122.471 0 -179.515l55.8105 5.58105c0.47168 0.046875 1.2373 0.0849609 1.71094 0.0849609
+c6.42383 0 13.5732 -4.83984 15.959 -10.8037l32.4072 -81.0225c0.678711 -1.69629 1.22949 -4.55566 1.22949 -6.38281c0 -5.25879 -3.61914 -11.7881 -8.07812 -14.5752l-64.8174 -40.5127c-2.30762 -1.44238 -6.38867 -2.6123 -9.10938 -2.6123
+c-3.92969 0 -9.375 2.25488 -12.1543 5.03418zM247.126 352.527c11.832 -20.0469 11.832 -45.0088 0 -65.0557c-3.9502 -6.69238 -13.1084 -7.95898 -18.7178 -2.58105l-5.97559 5.72656c-3.91016 3.74805 -4.79297 9.62207 -2.26074 14.4102
+c2.04883 3.87793 3.71094 10.5859 3.71094 14.9717c0 4.38672 -1.66211 11.0947 -3.71094 14.9727c-2.5332 4.78809 -1.64941 10.6621 2.26074 14.4102l5.97559 5.72656c5.60938 5.37793 14.7676 4.11133 18.7178 -2.58105zM338.913 443.714
+c60.1396 -71.6035 60.0918 -175.882 0 -247.428c-4.47363 -5.32715 -12.5303 -5.74609 -17.5518 -0.933594l-5.79785 5.55762c-4.56055 4.37109 -4.97754 11.5293 -0.930664 16.3789c49.6875 59.5381 49.6465 145.933 0 205.422
+c-4.04688 4.84961 -3.63086 12.0078 0.930664 16.3789l5.79785 5.55762c5.02148 4.8125 13.0781 4.39355 17.5518 -0.933594zM292.941 398.773c36.0498 -46.3223 36.1074 -111.149 0 -157.547c-4.39062 -5.64062 -12.6973 -6.25098 -17.8564 -1.30371l-5.81836 5.5791
+c-4.39941 4.21875 -4.99805 11.0947 -1.28418 15.9307c26.5352 34.5645 26.5332 82.5723 0 117.135c-3.71387 4.83594 -3.11523 11.7109 1.28418 15.9307l5.81836 5.5791c5.15918 4.94727 13.4658 4.33691 17.8564 -1.30371z" />
+ <glyph glyph-name="braille" unicode="" horiz-adv-x="640"
+d="M128 192c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64s64 -28.6543 64 -64zM64 64c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM64 416c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64
+s-64 28.6543 -64 64s28.6543 64 64 64zM224 224c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM224 64c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM224 416
+c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM448 224c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM448 64c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32
+s-32 14.3271 -32 32s14.3271 32 32 32zM448 416c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64zM608 224c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM608 64
+c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM608 384c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32z" />
+ <glyph glyph-name="assistive-listening-systems" unicode=""
+d="M216 188c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 44.1123 35.8877 80 80 80s80 -35.8877 80 -80c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 13.2344 -10.7666 24 -24 24s-24 -10.7656 -24 -24zM240 364c97.0469 0 176 -78.9531 176 -176
+c0 -95.9863 -71.4053 -109.798 -72 -144.226c-0.124023 -59.4463 -48.5254 -107.774 -108 -107.774c-15.4639 0 -28 12.5361 -28 28s12.5361 28 28 28c28.6729 0 52 23.3271 52 52l0.00292969 0.37793c0.988281 73.3115 71.9971 68.458 71.9971 143.622
+c0 66.168 -53.832 120 -120 120s-120 -53.832 -120 -120c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 97.0469 78.9531 176 176 176zM160 128c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM32 0
+c17.6729 0 32 -14.3271 32 -32s-14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32zM512 187.993c0 -15.4639 -12.5371 -28 -28.001 -28s-28 12.5361 -28 28c0 1.12695 -0.00683594 2.24512 -0.0332031 3.36328l-0.00292969 0.1875
+c-1.4668 91.4404 -60.1709 172.599 -146.077 201.953c-14.6318 5.00098 -22.4414 20.917 -17.4414 35.5498c5.00098 14.6328 20.917 22.4404 35.5498 17.4424c108.163 -36.959 182.082 -139.015 183.961 -253.965c0.0332031 -1.50684 0.0449219 -3.01367 0.0449219 -4.53125
+zM152.971 8.9707l-33.9404 -33.9404l-80 80l33.9404 33.9404z" />
+ <glyph glyph-name="american-sign-language-interpreting" unicode="" horiz-adv-x="640"
+d="M290.547 258.961c-20.2949 10.1494 -44.1465 11.1992 -64.7393 3.88965c42.6064 0 71.208 -20.4746 85.5781 -50.5752c8.57617 -17.8994 -5.14746 -38.0713 -23.6172 -38.0713c18.4297 0 32.2119 -20.1357 23.6172 -38.0713
+c-14.7246 -30.8457 -46.123 -50.8535 -80.2979 -50.8535c-0.556641 0 -94.4707 8.61426 -94.4707 8.61426l-66.4062 -33.3467c-9.38379 -4.69336 -19.8145 -0.378906 -23.8945 7.78125l-44.4561 88.9248c-4.16699 8.61523 -1.11133 18.8975 6.94531 23.6211l58.0723 33.0693
+l41.1221 74.1953c6.38965 57.2451 34.7314 109.768 79.7432 146.727c11.3906 9.44824 28.3408 7.78125 37.5098 -3.61328c9.44629 -11.3936 7.78027 -28.0674 -3.6123 -37.5156c-12.5029 -10.5596 -23.6172 -22.5098 -32.5088 -35.5703
+c21.6719 14.7285 46.6787 24.7324 74.1865 28.0674c14.7246 1.94434 28.0625 -8.33594 29.7295 -23.0654c1.94531 -14.7275 -8.33594 -28.0674 -23.0615 -29.7344c-16.1162 -1.94434 -31.1201 -7.50293 -44.1787 -15.2832c26.1143 5.71289 58.7119 3.1377 88.0791 -11.1152
+c13.3359 -6.66895 18.8936 -22.5088 12.2246 -35.8486c-6.38965 -13.0596 -22.5039 -18.6162 -35.5645 -12.2256zM263.318 189.489c-6.1123 12.5049 -18.3379 20.2861 -32.2314 20.2861h-0.105469c-19.5732 0 -35.46 -15.8867 -35.46 -35.46
+c0 -0.0302734 0 -0.0800781 0.000976562 -0.110352c0 -21.4277 17.8076 -35.5703 35.5645 -35.5703c13.8936 0 26.1191 7.78125 32.2314 20.2861c4.44531 9.44922 13.6133 15.0059 23.3389 15.2842c-9.72559 0.277344 -18.8936 5.83496 -23.3389 15.2842zM638.139 226.726
+c4.16797 -8.61426 1.11133 -18.8965 -6.94531 -23.6201l-58.0713 -33.0693l-41.1221 -74.1963c-6.38965 -57.2451 -34.7314 -109.767 -79.7432 -146.726c-10.9316 -9.1123 -27.7988 -8.14453 -37.5098 3.6123c-9.44629 11.3945 -7.78027 28.0674 3.61328 37.5166
+c12.5029 10.5586 23.6162 22.5088 32.5078 35.5703c-21.6719 -14.7295 -46.6787 -24.7324 -74.1865 -28.0674c-10.0205 -2.50586 -27.5518 5.64258 -29.7295 23.0645c-1.94531 14.7285 8.33594 28.0674 23.0615 29.7344c16.1162 1.94629 31.1201 7.50293 44.1787 15.2842
+c-26.1143 -5.71289 -58.7119 -3.1377 -88.0791 11.1152c-13.3359 6.66895 -18.8936 22.5088 -12.2246 35.8477c6.38965 13.0605 22.5049 18.6191 35.5654 12.2266c20.2949 -10.1484 44.1465 -11.1982 64.7393 -3.88965c-42.6064 0 -71.208 20.4746 -85.5781 50.5762
+c-8.57617 17.8984 5.14746 38.0713 23.6172 38.0713c-18.4297 0 -32.2109 20.1357 -23.6172 38.0703c14.0332 29.3965 44.0391 50.8877 81.9658 50.8545l92.8027 -8.61523l66.4062 33.3467c9.4082 4.7041 19.8281 0.354492 23.8936 -7.78027zM408.912 245.344
+c-13.8936 0 -26.1191 -7.78027 -32.2314 -20.2861c-4.44531 -9.44824 -13.6133 -15.0059 -23.3389 -15.2832c9.72559 -0.27832 18.8936 -5.83594 23.3389 -15.2842c6.1123 -12.5049 18.3379 -20.2861 32.2314 -20.2861h0.105469c19.5732 0 35.46 15.8857 35.46 35.46
+c0 0.0302734 0 0.0791016 -0.000976562 0.110352c0 21.4287 -17.8076 35.5693 -35.5645 35.5693z" />
+ <glyph glyph-name="deaf" unicode=""
+d="M216 188c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 44.1123 35.8877 80 80 80s80 -35.8877 80 -80c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 13.2344 -10.7666 24 -24 24s-24 -10.7656 -24 -24zM240 364c97.0469 0 176 -78.9531 176 -176
+c0 -95.9863 -71.4053 -109.798 -72 -144.226c-0.124023 -59.4463 -48.5254 -107.774 -108 -107.774c-15.4639 0 -28 12.5361 -28 28s12.5361 28 28 28c28.6729 0 52 23.3271 52 52l0.00292969 0.37793c0.988281 73.3115 71.9971 68.458 71.9971 143.622
+c0 66.168 -53.832 120 -120 120s-120 -53.832 -120 -120c0 -15.4639 -12.5361 -28 -28 -28s-28 12.5361 -28 28c0 97.0469 78.9531 176 176 176zM508.485 416.201c4.68652 -4.68652 4.68652 -12.2842 0 -16.9727l-87.0303 -87.0283
+c-4.68652 -4.68652 -12.2842 -4.68652 -16.9697 0l-28.2852 28.2852c-4.68652 4.68652 -4.68652 12.2842 0 16.9707l87.0283 87.0293c4.6875 4.68555 12.2842 4.68555 16.9717 0zM168.97 133.255l28.2861 -28.2842c4.68652 -4.68652 4.68652 -12.2852 0 -16.9707
+l-148.484 -148.485c-4.6875 -4.68555 -12.2842 -4.68555 -16.9717 0l-28.2852 28.2842c-4.68555 4.6875 -4.68555 12.2852 0 16.9707l148.485 148.485c4.68555 4.68652 12.2842 4.68652 16.9697 0z" />
+ <glyph glyph-name="sign-language" unicode="" horiz-adv-x="448"
+d="M91.4336 -35.9873c-0.306641 16.0186 13.1094 29.1289 29.1309 29.1289h62.293v5.71484h-125.864c-16.0215 0 -29.4375 13.1104 -29.1299 29.1289c0.296875 15.5234 12.9717 28.0146 28.5645 28.0146h126.43v5.71387h-153.722
+c-16.0205 0 -29.4365 13.1113 -29.1299 29.1289c0.296875 15.5225 12.9727 28.0137 28.5664 28.0137h154.286v5.71387h-125.151c-16.0215 0 -29.4375 13.1104 -29.1299 29.1289c0.296875 15.5215 12.9727 28.0127 28.5654 28.0127h168.566l-31.085 22.6064
+c-12.7617 9.28027 -15.583 27.1484 -6.30176 39.9121c9.28027 12.7607 27.1494 15.5811 39.9121 6.30176l123.36 -89.7148c7.79395 -5.66895 14.1201 -18.0908 14.1201 -27.7285v-141.136c0 -15.9102 -10.9463 -29.7305 -26.4326 -33.374l-80.4717 -18.9346
+c-8.55176 -2.01172 -22.624 -3.64551 -31.4102 -3.64551h-107.4c-15.5928 0.000976562 -28.2686 12.4922 -28.5664 28.0137zM164.683 189.714l-36.3711 46.71c-9.5791 12.3027 -7.51172 29.9795 4.55371 39.75c12.4502 10.083 31.0371 7.55273 40.8799 -5.08789
+l13.0039 -16.7002c-17.1426 -15.6484 -15.4092 -43.0244 3.16992 -56.5361l11.1875 -8.13574h-36.4238zM447.981 191.817c0.00976562 -0.311523 0.0175781 -0.81543 0.0175781 -1.12695c0 -9.24902 -5.92188 -21.3682 -13.2197 -27.0508l-61.0645 -47.5488v16.999
+c0 13.4834 -6.51074 26.2686 -17.415 34.1982l-123.359 89.7139c-12.6357 9.18945 -29.1934 9.16113 -41.6904 0.904297l-52.0527 66.8486c-9.84375 12.6416 -7.74121 31.2822 5.08594 40.8809c12.4297 9.30273 30.0732 6.97559 39.6523 -5.32812l77.6758 -99.7539
+l4.50879 3.51172l-94.4434 121.287c-9.84277 12.6416 -7.74121 31.2822 5.08594 40.8818c12.4307 9.30176 30.0732 6.97461 39.6533 -5.32812l94.79 -121.734l4.50879 3.51074l-76.8887 98.7451c-9.84277 12.6416 -7.74121 31.2822 5.08594 40.8809
+c12.4297 9.30273 30.0732 6.97559 39.6533 -5.32715l103.562 -133.001l-1.26172 38.4141c-0.518555 15.7715 11.8457 28.9756 27.6191 29.4932c15.7705 0.517578 28.9746 -11.8477 29.4922 -27.6191z" />
+ <glyph glyph-name="low-vision" unicode="" horiz-adv-x="576"
+d="M569.344 216.369c3.67383 -6.22461 6.65625 -17.1416 6.65625 -24.3691s-2.98242 -18.1455 -6.65723 -24.3701c-31.9746 -54.2607 -79.6484 -98.3232 -136.81 -126.301l0.00683594 -0.00878906l43.1201 -58.377c7.60156 -10.8594 4.95996 -25.8252 -5.90039 -33.4268
+l-13.1133 -9.17773c-10.8594 -7.59863 -25.8223 -4.95801 -33.4238 5.90039l-251.836 356.544c-11.1797 -5.09375 -28.5518 -14.7539 -38.7764 -21.5635l189.979 -271.399c-9.52637 -1.00488 -25.0342 -1.82031 -34.6133 -1.82031
+c-12.29 0 -32.1484 1.33984 -44.3262 2.99023l-40.6309 58.04h-0.00976562l-119.399 170.58c-8.64453 -9.25391 -21.3203 -25.3428 -28.2939 -35.9121l124.19 -177.417c-73.1172 25.4863 -134.358 76.0166 -172.858 141.349c-8.96484 15.2109 -8.76562 33.8643 0 48.7393
+c0.0107422 0.0166016 0.0234375 0.0332031 0.0332031 0.0498047c33.5459 56.8984 82.7676 99.8506 136.79 126.242l-43.1309 58.3945c-7.60156 10.8604 -4.95996 25.8252 5.90039 33.4268l13.1143 9.17773c10.8584 7.59961 25.8213 4.95801 33.4229 -5.90039
+l52.7705 -72.1689c26.3496 6.79004 53.9834 10.4092 82.4512 10.4092c119.81 0 224.96 -63.9492 281.344 -159.631zM390.026 102.06c21.1406 23.9658 33.9736 55.4365 33.9736 89.9404c0 75.1738 -60.8379 136 -136 136c-17.5117 0 -34.2422 -3.30566 -49.6084 -9.32324
+l19.0684 -27.2363c25.9883 7.96289 54.7598 5.56836 79.5098 -7.68066h-0.0292969c-23.6504 0 -42.8203 -19.1699 -42.8203 -42.8193c0 -23.4717 18.9922 -42.8203 42.8203 -42.8203c23.6494 0 42.8193 19.1699 42.8193 42.8203v0.0292969
+c18.9111 -35.3271 15.8818 -79.1123 -8.7998 -111.68z" />
+ <glyph glyph-name="handshake" unicode="" horiz-adv-x="640"
+d="M434.7 384c8.5 0 16.7002 -3.40039 22.5996 -9.40039l54.6006 -54.5996v-193.5c-2.40039 2.7002 -5 5.2998 -7.90039 7.7002l-145.6 118.2l26.0996 23.8994c6.5 6 7 16.1006 1 22.6006c-5.90039 6.5 -16.0996 6.89941 -22.5996 1l-79.9004 -73.2002
+c-0.0996094 -0.100586 -0.299805 -0.100586 -0.400391 -0.200195c-16.6992 -14.9004 -43.3994 -11.2002 -56.0996 2.7002c-14.2002 15.5 -14.5 40.3994 2.09961 56c0.100586 0.0996094 0.200195 0.299805 0.300781 0.399414l98.2998 90
+c5.89941 5.40039 13.5996 8.40039 21.5996 8.40039h85.9004zM544 319.8h96v-255.899h-64c-17.7002 0 -32 14.2998 -32 32v223.899zM592 95.9004c8.7998 0 16 7.19922 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16zM0 64v255.8h96
+v-223.8c0 -17.7002 -14.2998 -32 -32 -32h-64zM48 127.9c-8.7998 0 -16 -7.10059 -16 -16c0 -8.80078 7.2002 -16 16 -16s16 7.19922 16 16c0 8.7998 -7.2002 16 -16 16zM483.9 109.3c13.6992 -11.2002 15.7998 -31.2998 4.59961 -45.0996l-9.5 -11.7002
+c-11.0996 -13.7998 -31.2998 -15.7998 -45 -4.7002l-5.40039 4.40039l-31.3994 -38.6006c-12.9004 -15.8994 -36.4004 -18.3994 -52.2998 -5.39941l-17.9004 15.5l-0.200195 -0.200195c-22.2998 -27.4004 -62.5996 -31.5996 -90 -9.2998l-90.5 81.8994h-18.2998v223.9
+l54.7002 54.5996c6 6 14.0996 9.40039 22.5996 9.40039h83.7998l-81.7998 -74.9004c-29.2002 -26.7998 -31.2998 -72.2998 -4.39941 -101.699c26.5 -28.9004 72 -31.5 101.699 -4.40039l30 27.5z" />
+ <glyph glyph-name="envelope-open" unicode=""
+d="M512 -16c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v263.276c0 12.8955 8.2373 29.8193 18.3867 37.7754c24.9131 19.5293 45.501 35.3652 164.2 121.512c16.8252 12.2666 50.21 41.7832 73.4131 41.4336
+c23.1982 0.353516 56.5957 -29.1719 73.4131 -41.4326c118.687 -86.1377 139.303 -101.995 164.2 -121.513c10.1494 -7.95605 18.3867 -24.8799 18.3867 -37.7754v-263.276zM446.334 180.605c-2.5625 3.72754 -7.7002 4.59473 -11.3389 1.90625
+c-22.8447 -16.873 -55.4619 -40.7051 -105.582 -77.0791c-16.8252 -12.2656 -50.21 -41.7803 -73.4131 -41.4297c-23.2109 -0.34375 -56.5586 29.1436 -73.4131 41.4297c-50.1143 36.3701 -82.7344 60.2041 -105.582 77.0791
+c-3.63867 2.68848 -8.77637 1.82129 -11.3389 -1.90625l-9.07227 -13.1963c-0.777344 -1.13086 -1.4082 -3.16113 -1.4082 -4.5332c0 -2.22754 1.45508 -5.11035 3.24707 -6.43359c22.8877 -16.8994 55.4541 -40.6904 105.304 -76.8682
+c20.2734 -14.7812 56.5234 -47.8135 92.2637 -47.5732c35.7236 -0.242188 71.9609 32.7715 92.2627 47.5732c49.8506 36.1787 82.418 59.9697 105.304 76.8682c1.79199 1.32324 3.24707 4.20605 3.24707 6.43359c0 1.37207 -0.630859 3.40234 -1.4082 4.5332z" />
+ <glyph glyph-name="address-book" unicode="" horiz-adv-x="448"
+d="M436 288h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-64h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-20v-48c0 -26.5 -21.5 -48 -48 -48h-320c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48
+h320c26.5 0 48 -21.5 48 -48v-48h20c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12zM208 320c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM320 83.2002v19.2002
+c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199
+c12.4004 0 22.4004 8.59961 22.4004 19.2002z" />
+ <glyph glyph-name="address-card" unicode="" horiz-adv-x="576"
+d="M528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h480zM176 320c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM288 83.2002v19.2002
+c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199
+c12.4004 0 22.4004 8.59961 22.4004 19.2002zM512 136v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM512 200v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16
+c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM512 264v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="user-circle" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM248 344c-48.5996 0 -88 -39.4004 -88 -88s39.4004 -88 88 -88s88 39.4004 88 88s-39.4004 88 -88 88zM248 0c58.7002 0 111.3 26.5996 146.5 68.2002
+c-18.7998 35.3994 -55.5996 59.7998 -98.5 59.7998c-2.40039 0 -4.7998 -0.400391 -7.09961 -1.09961c-12.9004 -4.2002 -26.6006 -6.90039 -40.9004 -6.90039s-27.9004 2.7002 -40.9004 6.90039c-2.2998 0.699219 -4.69922 1.09961 -7.09961 1.09961
+c-42.9004 0 -79.7002 -24.4004 -98.5 -59.7998c35.2002 -41.6006 87.7998 -68.2002 146.5 -68.2002z" />
+ <glyph glyph-name="id-badge" unicode="" horiz-adv-x="384"
+d="M336 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h288zM144 416c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h96c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16h-96zM192 288
+c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM304 51.2002v19.2002c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5
+c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199c12.4004 0 22.4004 8.59961 22.4004 19.2002z" />
+ <glyph glyph-name="id-card" unicode="" horiz-adv-x="576"
+d="M528 416c26.5 0 48 -21.5 48 -48v-16h-576v16c0 26.5 21.5 48 48 48h480zM0 16v304h576v-304c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48zM352 248v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-144
+c-4.40039 0 -8 -3.59961 -8 -8zM352 184v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8zM352 120v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8v16
+c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8zM176 256c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM67.0996 51.7998c-3.19922 -9.7998 5.2002 -19.7998 15.6006 -19.7998h186.6
+c10.4004 0 18.7998 9.90039 15.6006 19.7998c-8.40039 25.7002 -32.5 44.2002 -60.9004 44.2002h-8.2002c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-8.2002c-28.4004 0 -52.5 -18.5 -60.9004 -44.2002z" />
+ <glyph glyph-name="thermometer-full" unicode="" horiz-adv-x="256"
+d="M224 352v-203.347c19.9121 -22.5635 32 -52.1943 32 -84.6533c0 -70.6963 -57.3018 -128 -128 -128c-0.298828 0 -0.610352 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1973 12.2227 61.5771 31.998 83.9863
+v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96zM128 -16c44.1123 0 80 35.8877 80 80c0 34.3379 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7334 -14.4277 -31.8262 -32.0996 -31.999 -66.0801
+c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199zM192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v232.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-232.583c19.124 -11.0684 32 -31.7324 32 -55.417z" />
+ <glyph glyph-name="thermometer-three-quarters" unicode="" horiz-adv-x="256"
+d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v168.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-168.583c19.124 -11.0684 32 -31.7324 32 -55.417zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533
+c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347z
+M208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312
+c44.1123 0 80 35.8877 80 80z" />
+ <glyph glyph-name="thermometer-half" unicode="" horiz-adv-x="256"
+d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v104.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-104.583c19.124 -11.0684 32 -31.7324 32 -55.417zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533
+c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347z
+M208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312
+c44.1123 0 80 35.8877 80 80z" />
+ <glyph glyph-name="thermometer-quarter" unicode="" horiz-adv-x="256"
+d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64c0 23.6846 12.876 44.3486 32 55.417v40.583c0 17.6729 14.3271 32 32 32s32 -14.3271 32 -32v-40.583c19.124 -11.0684 32 -31.7324 32 -55.417zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533
+c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347z
+M208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312
+c44.1123 0 80 35.8877 80 80z" />
+ <glyph glyph-name="thermometer-empty" unicode="" horiz-adv-x="256"
+d="M192 64c0 -35.3457 -28.6543 -64 -64 -64s-64 28.6543 -64 64s28.6543 64 64 64s64 -28.6543 64 -64zM224 148.653c19.9121 -22.5635 32 -52.1943 32 -84.6533c0 -70.6963 -57.3027 -128 -128 -128c-0.298828 0 -0.609375 0.000976562 -0.90918 0.00292969
+c-70.3018 0.488281 -127.448 58.3613 -127.089 128.664c0.164062 32.1982 12.2227 61.5781 31.998 83.9863v203.347c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96v-203.347zM208 64c0 34.3389 -19.3701 52.1904 -32 66.502v221.498c0 26.4668 -21.5332 48 -48 48
+s-48 -21.5332 -48 -48v-221.498c-12.7324 -14.4277 -31.8252 -32.0996 -31.999 -66.0801c-0.223633 -43.876 35.5635 -80.1162 79.4229 -80.4199l0.576172 -0.00195312c44.1123 0 80 35.8877 80 80z" />
+ <glyph glyph-name="shower" unicode=""
+d="M389.66 312.4l-158.061 -158.061c-9.36914 -9.37012 -24.5693 -9.37012 -33.9395 0l-11.3203 11.3203c-9.37012 9.37012 -9.37012 24.5703 0 33.9395l0.110352 0.110352c-34.0303 40.21 -35.1602 98.9404 -3.39062 140.38
+c-11.9697 7.5498 -26.1396 11.9102 -41.2998 11.9102c-42.8799 0 -77.7598 -34.8799 -77.7598 -77.7598v-306.24h-64v306.24c0 78.1699 63.5898 141.76 141.76 141.76c36.9307 0 70.6104 -14.2002 95.8604 -37.4199c35.8994 11.5098 76.5 4.5 106.67 -21.0303
+l0.110352 0.110352c9.36914 9.37012 24.5693 9.37012 33.9395 0l11.3203 -11.3203c9.37012 -9.37012 9.37012 -24.5703 0 -33.9395zM384 240c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM416 240c0 8.83691 7.16309 16 16 16
+s16 -7.16309 16 -16s-7.16309 -16 -16 -16s-16 7.16309 -16 16zM512 240c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM352 208c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16z
+M400 224c8.83691 0 16 -7.16309 16 -16s-7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16zM480 208c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM320 176c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16
+s7.16309 16 16 16s16 -7.16309 16 -16zM352 176c0 8.83691 7.16309 16 16 16s16 -7.16309 16 -16s-7.16309 -16 -16 -16s-16 7.16309 -16 16zM448 176c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM320 144
+c0 8.83691 7.16309 16 16 16s16 -7.16309 16 -16s-7.16309 -16 -16 -16s-16 7.16309 -16 16zM416 144c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM320 112c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16
+s7.16309 16 16 16s16 -7.16309 16 -16zM384 112c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM352 80c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16zM320 48
+c0 -8.83691 -7.16309 -16 -16 -16s-16 7.16309 -16 16s7.16309 16 16 16s16 -7.16309 16 -16z" />
+ <glyph glyph-name="bath" unicode=""
+d="M488 192c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-8v-32c0 -28.4297 -12.3623 -53.9688 -32 -71.5469v-32.4531c0 -13.2549 -10.7451 -24 -24 -24h-16c-13.2549 0 -24 10.7451 -24 24v8h-256v-8c0 -13.2549 -10.7451 -24 -24 -24h-16
+c-13.2549 0 -24 10.7451 -24 24v32.4531c-19.6377 17.5781 -32 43.1172 -32 71.5469v32h-8c-13.2549 0 -24 10.7451 -24 24v16c0 13.2549 10.7451 24 24 24h8v144c0 44.1123 35.8877 80 80 80c27.2119 0 51.2812 -13.667 65.7393 -34.4873
+c21.8838 6.06445 46.2285 1.10449 64.1777 -15.3643c4.71289 4.1748 11.916 4.02051 16.4277 -0.491211l11.3145 -11.3145c4.68555 -4.68652 4.68555 -12.2852 0 -16.9707l-95.0303 -95.0293c-4.68652 -4.68555 -12.2852 -4.68555 -16.9707 0l-11.3145 11.3145
+c-4.51172 4.51172 -4.66699 11.7148 -0.491211 16.4277c-21.5244 23.459 -23.3291 57.8281 -6.83789 83.0352c-5.68262 8.93457 -15.6641 14.8799 -27.0146 14.8799c-17.6445 0 -32 -14.3555 -32 -32v-144h408z" />
+ <glyph glyph-name="podcast" unicode="" horiz-adv-x="448"
+d="M267.429 -40.5635c-5.14258 -19.0098 -24.5703 -23.4365 -43.4287 -23.4365c-18.8574 0 -38.2861 4.42676 -43.4277 23.4365c-7.64551 28.4297 -20.5723 99.665 -20.5723 132.813c0 35.1562 31.1416 43.75 64 43.75s64 -8.59375 64 -43.75
+c0 -32.9492 -12.8711 -104.179 -20.5713 -132.813zM156.867 159.446c2.6748 -2.61914 2.39941 -6.98535 -0.628906 -9.18555c-9.3125 -6.76465 -16.4609 -15.3418 -21.2354 -25.3623c-1.74219 -3.65723 -6.5 -4.6582 -9.45312 -1.8877
+c-28.0176 26.2891 -45.5498 63.6279 -45.5498 104.989c0 80.7852 66.8691 146.247 148.163 143.941c76.1982 -2.16113 137.938 -64.1631 139.793 -140.369c1.04199 -42.7822 -16.6846 -81.5225 -45.5107 -108.565c-2.95215 -2.76855 -7.70801 -1.7627 -9.44922 1.8916
+c-4.77441 10.0195 -11.9219 18.5977 -21.2344 25.3623c-3.02832 2.20117 -3.30273 6.56738 -0.62793 9.1875c17.8018 17.4355 28.8662 41.7246 28.8662 68.5518c0 54.1934 -45.1377 98.042 -99.793 95.9258c-49.7295 -1.9248 -90.0703 -42.1572 -92.124 -91.8809
+c-1.17383 -28.4258 10.0908 -54.291 28.7842 -72.5986zM224 448c123.815 0 224 -100.205 224 -224c0 -90.1865 -52.7734 -165.727 -125.739 -201.407c-4.33203 -2.11914 -9.2666 1.54297 -8.53516 6.31055c2.55566 16.6416 4.625 33.1924 5.62402 47.2295
+c48.4922 31.377 80.6504 85.9355 80.6504 147.867c0 97.2031 -79.207 176.253 -176.468 175.999c-96.2393 -0.250977 -174.938 -78.6621 -175.529 -174.899c-0.376953 -61.3311 30.7871 -115.541 78.1875 -147.347c1.52832 -1.02637 2.53125 -2.67578 2.67773 -4.51172
+c1.06348 -13.3936 3.02344 -28.8271 5.40625 -44.3389c0.731445 -4.7666 -4.20215 -8.42871 -8.53516 -6.31055c-73.1377 35.7607 -125.739 111.416 -125.739 201.408c0 123.815 100.204 224 224 224zM224 288c35.3457 0 64 -28.6543 64 -64s-28.6543 -64 -64 -64
+s-64 28.6543 -64 64s28.6543 64 64 64z" />
+ <glyph glyph-name="window-maximize" unicode=""
+d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM448 256v84c0 6.59961 -5.40039 12 -12 12h-360c-6.59961 0 -12 -5.40039 -12 -12v-84h384z" />
+ <glyph glyph-name="window-minimize" unicode=""
+d="M464 96c26.5 0 48 -21.5 48 -48v-32c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v32c0 26.5 21.5 48 48 48h416z" />
+ <glyph glyph-name="window-restore" unicode=""
+d="M512 400v-288c0 -26.5 -21.5 -48 -48 -48h-48v208c0 44.0996 -35.9004 80 -80 80h-208v48c0 26.5 21.5 48 48 48h288c26.5 0 48 -21.5 48 -48zM384 272v-288c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h288
+c26.5 0 48 -21.5 48 -48zM316 244c0 6.59961 -5.40039 12 -12 12h-228c-6.59961 0 -12 -5.40039 -12 -12v-52h252v52z" />
+ <glyph glyph-name="microchip" unicode=""
+d="M416 400v-416c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v416c0 26.5098 21.4902 48 48 48h224c26.5098 0 48 -21.4902 48 -48zM512 342v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42
+c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM512 246v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM512 150v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6
+c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM512 54v-12c0 -3.31152 -2.68848 -6 -6 -6h-18v-6c0 -3.31152 -2.68848 -6 -6 -6h-42v48h42c3.31152 0 6 -2.68848 6 -6v-6h18c3.31152 0 6 -2.68848 6 -6zM30 72h42
+v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12c0 3.31152 2.68848 6 6 6h18v6c0 3.31152 2.68848 6 6 6zM30 168h42v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12c0 3.31152 2.68848 6 6 6h18v6
+c0 3.31152 2.68848 6 6 6zM30 264h42v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12c0 3.31152 2.68848 6 6 6h18v6c0 3.31152 2.68848 6 6 6zM30 360h42v-48h-42c-3.31152 0 -6 2.68848 -6 6v6h-18c-3.31152 0 -6 2.68848 -6 6v12
+c0 3.31152 2.68848 6 6 6h18v6c0 3.31152 2.68848 6 6 6z" />
+ <glyph glyph-name="snowflake" unicode="" horiz-adv-x="448"
+d="M440.3 102.8c7.40039 -4.2002 9.90039 -13.7002 5.60059 -21l-15.5 -26.7998c-4.30078 -7.40039 -13.7002 -10 -21.1006 -5.7002l-33.7998 19.5l7 -26c2.2002 -8.2002 -2.7002 -16.7002 -10.9004 -18.8994l-14.8994 -4
+c-8.2002 -2.2002 -16.7002 2.69922 -18.9004 10.8994l-19 70.7998l-62.7998 36.2002v-77.5l53.4004 -53.7002c6.19922 -6.19922 6.19922 -16.3994 0 -22.5996l-11.3008 -11.2998c-6.19922 -6.2002 -16.3994 -6.2002 -22.5996 0l-19.7002 19.7002v-40.4004
+c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v40.2998l-19.7002 -19.7002c-6.19922 -6.19922 -16.3994 -6.19922 -22.5996 0l-11.2998 11.3008c-6.2998 6.19922 -6.2998 16.3994 0 22.5996l53.7002 53.7002v77.5l-62.8008 -36.2002l-19 -70.7998
+c-2.19922 -8.2002 -10.6992 -13.1006 -18.8994 -10.9004l-14.9004 4c-8.2002 2.2002 -13.0996 10.7002 -10.8994 18.9004l7 26l-33.8008 -19.5c-7.39941 -4.2002 -16.7998 -1.7002 -21.0996 5.7002l-15.5 26.7998c-4.2002 7.39941 -1.7002 16.7998 5.7002 21.0996
+l33.7998 19.6006l-26 7c-8.2002 2.19922 -13.0996 10.6992 -10.9004 18.8994l4 14.9004c2.2002 8.2002 10.7002 13.0996 18.9004 10.8994l70.7998 -19l63.7998 36.9004l-63.7998 36.9004l-70.7998 -19c-8.2002 -2.2002 -16.7002 2.69922 -18.9004 10.8994l-4 14.9004
+c-2.19922 8.2998 2.7002 16.7998 11 19l26 7l-33.7998 19.5c-7.39941 4.2998 -10 13.7002 -5.7002 21.0996l15.5 26.7002c4.30078 7.40039 13.7002 10 21.1006 5.7002l33.7998 -19.5l-7 26c-2.2002 8.2002 2.7002 16.7002 10.9004 18.8994l14.8994 4
+c8.2002 2.2002 16.7002 -2.69922 18.9004 -10.8994l19 -70.7998l62.7998 -36.2002v77.5l-53.7002 53.7002c-6.2998 6.19922 -6.2998 16.3994 0 22.5996l11.4004 11.2998c6.2002 6.2002 16.3994 6.2002 22.5996 0l19.7002 -19.7002v40.4004c0 8.7998 7.2002 16 16 16h32
+c8.7998 0 16 -7.2002 16 -16v-40.4004l19.7998 19.7002c6.2002 6.2002 16.4004 6.2002 22.6006 0l11.2998 -11.2998c6.2002 -6.2002 6.2002 -16.4004 0 -22.5996l-53.7002 -53.7002v-77.5l62.7998 36.2002l19 70.7998c2.2002 8.2002 10.7002 13.0996 18.9004 10.8994
+l14.8994 -4c8.2002 -2.19922 13.1006 -10.6992 10.9004 -18.8994l-7 -26l33.7998 19.5c7.40039 4.2002 16.7998 1.7002 21.1006 -5.7002l15.5 -26.7998c4.19922 -7.40039 1.69922 -16.7998 -5.7002 -21.1006l-33.7998 -19.5l26 -7
+c8.19922 -2.19922 13.0996 -10.6992 10.8994 -18.8994l-4 -14.9004c-2.2002 -8.2002 -10.7002 -13.0996 -18.8994 -10.8994l-70.8008 19l-63.7998 -36.9004l63.9004 -37l70.7998 19c8.2002 2.2002 16.7002 -2.7002 18.9004 -10.9004l4 -14.8994
+c2.19922 -8.2002 -2.7002 -16.7002 -10.9004 -18.9004l-26 -7z" />
+ <glyph glyph-name="utensil-spoon" unicode=""
+d="M480.1 416.1c55.1006 -55 34.5 -164.899 -28.5 -227.8c-49.2998 -49.2998 -110 -55.0996 -160.399 -28.7998l-192.4 -214.4c-10.3994 -11.5996 -28.5 -12.0996 -39.5 -1.09961l-51.2998 51.2998c-11.0996 11 -10.5996 29 1 39.5l214.5 192.4
+c-26.2998 50.3994 -20.5 111.1 28.7998 160.399c62.9004 63 172.8 83.6006 227.8 28.5z" />
+ <glyph glyph-name="utensils" unicode="" horiz-adv-x="416"
+d="M207.9 432.8c0.799805 -4.7002 16.0996 -94.5 16.0996 -128.8c0 -52.2998 -27.7998 -89.5996 -68.9004 -104.6l12.9004 -238.101c0.700195 -13.7002 -10.2002 -25.2998 -24 -25.2998h-64c-13.7002 0 -24.7002 11.5 -24 25.2998l12.9004 238.101
+c-41.2002 15 -68.9004 52.3994 -68.9004 104.6c0 34.4004 15.2998 124.1 16.0996 128.8c3.2002 20.2998 45.3008 20.6006 47.9004 -1.09961v-141.2c1.2998 -3.40039 15.0996 -3.2002 16 0c1.40039 25.2998 7.90039 139.2 8 141.8c3.2998 20.7998 44.7002 20.7998 47.9004 0
+c0.199219 -2.7002 6.59961 -116.5 8 -141.8c0.899414 -3.2002 14.7998 -3.40039 16 0v141.2c2.59961 21.5996 44.7998 21.3994 48 1.09961zM327.1 147.1c-156.5 122.4 -17.5996 300.9 64.9004 300.9c13.2998 0 24 -10.7998 24 -24v-464c0 -13.2998 -10.7002 -24 -24 -24h-56
+c-14 0 -25.0996 12 -23.9004 26z" />
+ <glyph glyph-name="undo-alt" unicode=""
+d="M255.545 440c136.809 0.245117 248.456 -111.193 248.455 -248.002c-0.000976562 -136.965 -111.034 -247.998 -248 -247.998c-63.9258 0 -122.202 24.1865 -166.178 63.9082c-5.11328 4.61816 -5.35449 12.5605 -0.482422 17.4326l39.6621 39.6621
+c4.46191 4.46094 11.625 4.71387 16.3682 0.552734c30.6328 -26.8779 69.5029 -41.5557 110.63 -41.5557c93.8164 0 167.236 75.9912 167.994 166.552c0.798828 95.4648 -77.0859 170.24 -169.484 169.442c-42.4287 -0.366211 -82.3662 -16.374 -113.229 -45.2734
+l41.75 -41.75c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-134.059c-13.2549 0 -24 10.7451 -24 24v134.059c0 21.3828 25.8506 32.0908 40.9707 16.9707l35.7139 -35.7139c44.4229 42.4512 104.592 68.5654 170.86 68.6846z" />
+ <glyph glyph-name="trash-alt" unicode="" horiz-adv-x="448"
+d="M32 -16v336h384v-336c0 -26.4961 -21.5039 -48 -48 -48h-288c-26.4961 0 -48 21.5039 -48 48zM304 240v-224c0 -8.83203 7.16797 -16 16 -16s16 7.16797 16 16v224c0 8.83203 -7.16797 16 -16 16s-16 -7.16797 -16 -16zM208 240v-224c0 -8.83203 7.16797 -16 16 -16
+s16 7.16797 16 16v224c0 8.83203 -7.16797 16 -16 16s-16 -7.16797 -16 -16zM112 240v-224c0 -8.83203 7.16797 -16 16 -16s16 7.16797 16 16v224c0 8.83203 -7.16797 16 -16 16s-16 -7.16797 -16 -16zM432 416c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h120l9.40039 18.7002c3.58984 7.3418 13.1357 13.2998 21.3086 13.2998h0.0908203h114.3h0.0175781c8.20215 0 17.8262 -5.95801 21.4824 -13.2998l9.40039 -18.7002
+h120z" />
+ <glyph glyph-name="sync-alt" unicode=""
+d="M370.72 314.72c-31.2617 29.2725 -71.832 45.3184 -114.872 45.2803c-77.458 -0.0683594 -144.328 -53.1777 -162.791 -126.85c-1.34375 -5.36328 -6.12207 -9.15039 -11.6504 -9.15039h-57.3037c-7.49707 0 -13.1934 6.80664 -11.8066 14.1758
+c21.6367 114.9 122.518 201.824 243.704 201.824c66.4482 0 126.791 -26.1357 171.315 -68.6846l35.7148 35.7148c15.1191 15.1191 40.9697 4.41113 40.9697 -16.9717v-134.059c0 -13.2549 -10.7451 -24 -24 -24h-134.059c-21.3828 0 -32.0908 25.8506 -16.9717 40.9707z
+M32 152h134.059c21.3828 0 32.0908 -25.8506 16.9717 -40.9707l-41.75 -41.75c31.2617 -29.2734 71.835 -45.3193 114.876 -45.2803c77.418 0.0703125 144.314 53.1436 162.787 126.849c1.34375 5.36328 6.12207 9.15039 11.6504 9.15039h57.3047
+c7.49805 0 13.1934 -6.80664 11.8066 -14.1758c-21.6377 -114.898 -122.519 -201.822 -243.705 -201.822c-66.4482 0 -126.791 26.1357 -171.315 68.6846l-35.7148 -35.7148c-15.1191 -15.1191 -40.9697 -4.41113 -40.9697 16.9717v134.059c0 13.2549 10.7451 24 24 24z" />
+ <glyph glyph-name="stopwatch" unicode="" horiz-adv-x="448"
+d="M432 144c0 -114.9 -93.0996 -208 -208 -208s-208 93.0996 -208 208c0 104 76.2998 190.2 176 205.5v34.5h-28c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h120c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-28v-34.5
+c37.5 -5.7998 71.7002 -21.5996 99.7002 -44.5996l27.5 27.5c4.7002 4.69922 12.2998 4.69922 17 0l28.2998 -28.3008c4.7002 -4.69922 4.7002 -12.2998 0 -17l-29.4004 -29.3994l-0.599609 -0.600586c21.2002 -32.3994 33.5 -71.2998 33.5 -113.1zM256 108v151.5
+c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-151.5c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="sign-out-alt" unicode=""
+d="M497 175l-168 -168c-15 -15 -41 -4.5 -41 17v96h-136c-13.2998 0 -24 10.7002 -24 24v96c0 13.2998 10.7002 24 24 24h136v96c0 21.4004 25.9004 32 41 17l168 -168c9.2998 -9.40039 9.2998 -24.5996 0 -34zM192 12c0 -6.59961 -5.40039 -12 -12 -12h-84
+c-53 0 -96 43 -96 96v192c0 53 43 96 96 96h84c6.59961 0 12 -5.40039 12 -12v-40c0 -6.59961 -5.40039 -12 -12 -12h-84c-17.7002 0 -32 -14.2998 -32 -32v-192c0 -17.7002 14.2998 -32 32 -32h84c6.59961 0 12 -5.40039 12 -12v-40z" />
+ <glyph glyph-name="sign-in-alt" unicode=""
+d="M416 0h-84c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84c17.7002 0 32 14.2998 32 32v192c0 17.7002 -14.2998 32 -32 32h-84c-6.59961 0 -12 5.40039 -12 12v40c0 6.59961 5.40039 12 12 12h84c53 0 96 -43 96 -96v-192c0 -53 -43 -96 -96 -96z
+M369 201c9.2998 -9.40039 9.2998 -24.5996 0 -34l-168 -168c-15 -15 -41 -4.5 -41 17v96h-136c-13.2998 0 -24 10.7002 -24 24v96c0 13.2998 10.7002 24 24 24h136v96c0 21.5 26 32 41 17z" />
+ <glyph glyph-name="redo-alt" unicode=""
+d="M256.455 440c66.2686 -0.119141 126.437 -26.2334 170.859 -68.6846l35.7148 35.7148c15.1201 15.1191 40.9707 4.41113 40.9707 -16.9717v-134.059c0 -13.2549 -10.7451 -24 -24 -24h-134.059c-21.3828 0 -32.0908 25.8506 -16.9717 40.9707l41.75 41.75
+c-30.8633 28.8994 -70.8008 44.9072 -113.229 45.2734c-92.3984 0.797852 -170.283 -73.9775 -169.484 -169.442c0.757812 -90.5605 74.1777 -166.552 167.994 -166.552c41.127 0 79.9971 14.6777 110.629 41.5557c4.74316 4.16113 11.9062 3.9082 16.3682 -0.552734
+l39.6621 -39.6621c4.87207 -4.87207 4.63086 -12.8145 -0.482422 -17.4326c-43.9746 -39.7217 -102.251 -63.9082 -166.177 -63.9082c-136.966 0 -247.999 111.033 -248 247.998c-0.000976562 136.809 111.646 248.247 248.455 248.002z" />
+ <glyph glyph-name="poo" unicode=""
+d="M451.4 78.9004c34.2998 -5.5 60.5996 -35 60.5996 -70.9004c0 -39.7998 -32.2002 -72 -72 -72h-368c-39.7998 0 -72 32.2002 -72 72c0 35.9004 26.2998 65.4004 60.5996 70.9004c-17.2998 13.0996 -28.5996 33.6992 -28.5996 57.0996c0 39.7998 32.2002 72 72 72h14.0996
+c-13.3994 11.7002 -22.0996 28.7998 -22.0996 48c0 35.2998 28.7002 64 64 64h16c44.2002 0 80 35.7998 80 80c0 17.4004 -5.7002 33.4004 -15.0996 46.5c4.89941 0.799805 9.89941 1.5 15.0996 1.5c53 0 96 -43 96 -96c0 -11.2998 -2.2998 -21.9004 -5.90039 -32h5.90039
+c35.2998 0 64 -28.7002 64 -64c0 -19.2002 -8.7002 -36.2998 -22.0996 -48h14.0996c39.7998 0 72 -32.2002 72 -72c0 -23.4004 -11.2998 -44 -28.5996 -57.0996zM192 192c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32z
+M351.5 53c2 5.2998 -2 11 -7.7998 11h-175.4c-5.7998 0 -9.7998 -5.7002 -7.7998 -11c10.5 -27.9004 58.5 -53 95.5 -53s85 25.0996 95.5 53zM320 128c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="images" unicode="" horiz-adv-x="576"
+d="M480 32v-16c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256c0 26.5098 21.4902 48 48 48h16v-208c0 -44.1123 35.8877 -80 80 -80h336zM576 112c0 -26.5098 -21.4902 -48 -48 -48h-384c-26.5098 0 -48 21.4902 -48 48v256
+c0 26.5098 21.4902 48 48 48h384c26.5098 0 48 -21.4902 48 -48v-256zM256 320c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48zM160 176v-48h352v112l-87.5137 87.5146c-4.6875 4.68652 -12.2852 4.68652 -16.9717 0
+l-135.515 -135.515l-39.5137 39.5146c-4.6875 4.68652 -12.2852 4.68652 -16.9717 0z" />
+ <glyph glyph-name="pencil-alt" unicode=""
+d="M497.9 305.9l-46.1006 -46.1006c-4.7002 -4.7002 -12.2998 -4.7002 -17 0l-111 111c-4.7002 4.7002 -4.7002 12.2998 0 17l46.1006 46.1006c18.6992 18.6992 49.0996 18.6992 67.8994 0l60.1006 -60.1006c18.7998 -18.7002 18.7998 -49.0996 0 -67.8994zM284.2 348.2
+c4.7002 4.7002 12.2998 4.7002 17.0996 0l111 -111c4.7002 -4.7002 4.7002 -12.2998 0 -17l-262.6 -262.601l-121.5 -21.2998c-16.4004 -2.7998 -30.7002 11.4004 -27.7998 27.7998l21.1992 121.5zM124.1 108.1c5.5 -5.5 14.3008 -5.5 19.8008 0l154 154
+c5.5 5.5 5.5 14.3008 0 19.8008s-14.3008 5.5 -19.8008 0l-154 -154c-5.5 -5.5 -5.5 -14.3008 0 -19.8008zM88 24v48h-36.2998l-11.2998 -64.5l31.0996 -31.0996l64.5 11.2998v36.2998h-48z" />
+ <glyph glyph-name="pen" unicode=""
+d="M290.74 354.76l128.02 -128.02l-277.99 -277.99l-114.14 -12.5996c-15.2803 -1.69043 -28.1895 11.2295 -26.4902 26.5098l12.7002 114.22zM497.94 373.82c18.75 -18.75 18.75 -49.1504 0 -67.9102l-56.5508 -56.5498l-128.02 128.02l56.5498 56.5498
+c18.75 18.75 49.1602 18.75 67.9102 0z" />
+ <glyph glyph-name="pen-alt" unicode=""
+d="M497.94 373.83c18.75 -18.7598 18.75 -49.1602 0 -67.9102l-56.5508 -56.5498l-128.02 128.02l56.5498 56.5508c18.75 18.75 49.1602 18.75 67.9102 0zM251.14 394.36l84.8506 -84.8506l82.7695 -82.7695l-196.79 -196.79
+c-44.8223 -44.8203 -132.335 -86.8428 -195.34 -93.7998c-15.2803 -1.69043 -28.1895 11.2295 -26.4902 26.5098l0.0302734 0.229492c7.00195 62.9189 49.0156 150.315 93.7803 195.08l151.56 151.55l-22.6299 22.6201l-101.82 -101.819
+c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6299 22.6299c-6.25 6.24023 -6.25 16.3701 0 22.6201l118.78 118.79c15.6201 15.6201 40.9395 15.6201 56.5596 0z" />
+ <glyph glyph-name="long-arrow-alt-down" unicode="" horiz-adv-x="256"
+d="M168 102.059h46.0576c21.3828 0 32.0908 -25.8516 16.9717 -40.9707l-86.0596 -86.0586c-9.37207 -9.37305 -24.5674 -9.37305 -33.9404 0l-86.0596 86.0586c-15.1191 15.1201 -4.41113 40.9707 16.9717 40.9707h46.0586v301.941c0 6.62695 5.37305 12 12 12h56
+c6.62695 0 12 -5.37305 12 -12v-301.941z" />
+ <glyph glyph-name="long-arrow-alt-left" unicode="" horiz-adv-x="448"
+d="M134.059 152v-46.0576c0 -21.3828 -25.8516 -32.0908 -40.9707 -16.9717l-86.0586 86.0596c-9.37305 9.37207 -9.37305 24.5674 0 33.9404l86.0586 86.0596c15.1201 15.1191 40.9707 4.41113 40.9707 -16.9717v-46.0586h301.941c6.62695 0 12 -5.37305 12 -12v-56
+c0 -6.62695 -5.37305 -12 -12 -12h-301.941z" />
+ <glyph glyph-name="long-arrow-alt-right" unicode="" horiz-adv-x="448"
+d="M313.941 232v46.0576c0 21.3828 25.8516 32.0908 40.9707 16.9717l86.0586 -86.0596c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-86.0586 -86.0596c-15.1201 -15.1191 -40.9707 -4.41113 -40.9707 16.9717v46.0586h-301.941c-6.62695 0 -12 5.37305 -12 12v56
+c0 6.62695 5.37305 12 12 12h301.941z" />
+ <glyph glyph-name="long-arrow-alt-up" unicode="" horiz-adv-x="256"
+d="M88 281.941h-46.0576c-21.3828 0 -32.0908 25.8516 -16.9717 40.9707l86.0596 86.0586c9.37207 9.37305 24.5674 9.37305 33.9404 0l86.0596 -86.0586c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-46.0586v-301.941c0 -6.62695 -5.37305 -12 -12 -12h-56
+c-6.62695 0 -12 5.37305 -12 12v301.941z" />
+ <glyph glyph-name="expand-arrows-alt" unicode="" horiz-adv-x="448"
+d="M448 104v-112v-0.0605469c0 -13.2148 -10.7246 -23.9395 -23.9395 -23.9395h-0.0605469h-112c-21.3896 0 -32.0898 25.9004 -17 41l36.2002 36.2002l-107.2 107.2l-107.23 -107.301l36.2305 -36.0996c15.0898 -15.0996 4.38965 -41 -17 -41h-112h-0.0605469
+c-13.2148 0 -23.9395 10.7246 -23.9395 23.9395v0.0605469v112c0 21.4004 25.8896 32.0996 41 17l36.1904 -36.2002l107.27 107.2l-107.28 107.3l-36.1797 -36.2998c-15.0996 -15.0996 -41 -4.40039 -41 17v112v0.0605469c0 13.2148 10.7246 23.9395 23.9395 23.9395
+h0.0605469h112c21.3896 0 32.0898 -25.9004 17 -41l-36.2002 -36.2002l107.2 -107.2l107.23 107.301l-36.2305 36.0996c-15.0898 15.0996 -4.38965 41 17 41h112h0.0605469c13.2148 0 23.9395 -10.7246 23.9395 -23.9395v-0.0605469v-112
+c0 -21.4004 -25.8896 -32.0996 -41 -17l-36.1904 36.2002l-107.27 -107.2l107.28 -107.3l36.1797 36.2002c15.0996 15.1992 41 4.5 41 -16.9004z" />
+ <glyph glyph-name="clipboard" unicode="" horiz-adv-x="384"
+d="M384 336v-352c0 -26.5098 -21.4902 -48 -48 -48h-288c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h80c0 35.29 28.71 64 64 64s64 -28.71 64 -64h80c26.5098 0 48 -21.4902 48 -48zM192 408c-13.2549 0 -24 -10.7451 -24 -24s10.7451 -24 24 -24
+s24 10.7451 24 24s-10.7451 24 -24 24zM288 294v20c0 3.31152 -2.68848 6 -6 6h-180c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6h180c3.31152 0 6 2.68848 6 6z" />
+ <glyph glyph-name="arrows-alt-h" unicode=""
+d="M377.941 278.059c0 21.3828 25.8516 32.0908 40.9707 16.9707l86.0586 -86.0596c9.37305 -9.37305 9.37305 -24.5674 0 -33.9404l-86.0586 -86.0596c-15.1201 -15.1191 -40.9707 -4.41113 -40.9707 16.9717v46.0586h-243.883v-46.0576
+c0 -21.3828 -25.8516 -32.0908 -40.9707 -16.9717l-86.0586 86.0596c-9.37305 9.37305 -9.37305 24.5674 0 33.9404l86.0586 86.0596c15.1201 15.1191 40.9707 4.41113 40.9707 -16.9717v-46.0586h243.883v46.0586z" />
+ <glyph glyph-name="arrows-alt-v" unicode="" horiz-adv-x="256"
+d="M214.059 70.0586c21.3828 0 32.0908 -25.8516 16.9707 -40.9707l-86.0596 -86.0586c-9.37305 -9.37305 -24.5674 -9.37305 -33.9404 0l-86.0596 86.0586c-15.1191 15.1201 -4.41113 40.9707 16.9717 40.9707h46.0586v243.883h-46.0576
+c-21.3828 0 -32.0908 25.8516 -16.9717 40.9707l86.0596 86.0586c9.37305 9.37305 24.5674 9.37305 33.9404 0l86.0596 -86.0586c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-46.0586v-243.883h46.0586z" />
+ <glyph glyph-name="arrow-alt-circle-down" unicode=""
+d="M504 192c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248s248 -111 248 -248zM212 308v-116h-70.9004c-10.6992 0 -16.0996 -13 -8.5 -20.5l114.9 -114.3c4.7002 -4.7002 12.2002 -4.7002 16.9004 0l114.899 114.3c7.60059 7.59961 2.2002 20.5 -8.5 20.5
+h-70.7998v116c0 6.59961 -5.40039 12 -12 12h-64c-6.59961 0 -12 -5.40039 -12 -12z" />
+ <glyph glyph-name="arrow-alt-circle-left" unicode=""
+d="M256 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM372 236h-116v70.9004c0 10.6992 -13 16.0996 -20.5 8.5l-114.3 -114.9c-4.7002 -4.7002 -4.7002 -12.2002 0 -16.9004l114.3 -114.899
+c7.59961 -7.60059 20.5 -2.2002 20.5 8.5v70.7998h116c6.59961 0 12 5.40039 12 12v64c0 6.59961 -5.40039 12 -12 12z" />
+ <glyph glyph-name="arrow-alt-circle-right" unicode=""
+d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM140 148h116v-70.9004c0 -10.6992 13 -16.0996 20.5 -8.5l114.3 114.9c4.7002 4.7002 4.7002 12.2002 0 16.9004l-114.3 115c-7.59961 7.59961 -20.5 2.19922 -20.5 -8.5
+v-70.9004h-116c-6.59961 0 -12 -5.40039 -12 -12v-64c0 -6.59961 5.40039 -12 12 -12z" />
+ <glyph glyph-name="arrow-alt-circle-up" unicode=""
+d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM300 76v116h70.9004c10.6992 0 16.0996 13 8.5 20.5l-114.9 114.3c-4.7002 4.7002 -12.2002 4.7002 -16.9004 0l-115 -114.3c-7.59961 -7.59961 -2.19922 -20.5 8.5 -20.5
+h70.9004v-116c0 -6.59961 5.40039 -12 12 -12h64c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="external-link-alt" unicode="" horiz-adv-x="576"
+d="M576 424v-127.984c0 -21.4609 -25.96 -31.9795 -40.9707 -16.9707l-35.707 35.709l-243.523 -243.522c-9.37305 -9.37305 -24.5674 -9.37305 -33.9404 0l-22.627 22.627c-9.37305 9.37305 -9.37305 24.5684 0 33.9404l243.524 243.525l-35.7031 35.7051
+c-15.0703 15.0703 -4.39648 40.9707 16.9717 40.9707h127.976c13.2549 0 24 -10.7451 24 -24zM407.029 177.206c15.1191 15.1201 40.9707 4.41211 40.9707 -16.9697v-176.236c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352
+c0 26.5098 21.4902 48 48 48h296c21.3809 0 32.0889 -25.8506 16.9697 -40.9707l-16 -16c-3.87988 -3.87988 -11.4824 -7.0293 -16.9697 -7.0293h-264v-320h320v144.235v0.000976562c0 5.4873 3.14941 13.0898 7.0293 16.9697z" />
+ <glyph glyph-name="external-link-square-alt" unicode="" horiz-adv-x="448"
+d="M448 368v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352c26.5098 0 48 -21.4902 48 -48zM360 352h-111.971c-21.3135 0 -32.0801 -25.8613 -16.9717 -40.9707l31.9844 -31.9873l-195.527 -195.527
+c-4.68555 -4.68555 -4.68555 -12.2832 0 -16.9707l31.0293 -31.0293c4.6875 -4.68555 12.2852 -4.68555 16.9707 0l195.526 195.526l31.9883 -31.9912c15.0283 -15.0264 40.9707 -4.47461 40.9707 16.9717v111.979c0 13.2549 -10.7451 24 -24 24z" />
+ <glyph glyph-name="exchange-alt" unicode=""
+d="M0 280v16c0 13.2549 10.7451 24 24 24h360v48c0 21.3672 25.8994 32.042 40.9707 16.9707l80 -80c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-80 -80c-15.0146 -15.0127 -40.9707 -4.48633 -40.9707 16.9697v48h-360c-13.2549 0 -24 10.7451 -24 24zM488 128
+c13.2549 0 24 -10.7451 24 -24v-16c0 -13.2549 -10.7451 -24 -24 -24h-360v-48c0 -21.4365 -25.9434 -31.9971 -40.9707 -16.9697l-80 80c-9.37207 9.37207 -9.37207 24.5674 0 33.9404l80 80c15.1084 15.1094 40.9707 4.34375 40.9707 -16.9707v-48h360z" />
+ <glyph glyph-name="cloud-download-alt" unicode="" horiz-adv-x="640"
+d="M537.6 221.4c58.4004 -11.8008 102.4 -63.5 102.4 -125.4c0 -70.7002 -57.2998 -128 -128 -128h-368c-79.5 0 -144 64.5 -144 144c0 62.7998 40.2002 116.2 96.2002 135.9c-0.100586 2.69922 -0.200195 5.39941 -0.200195 8.09961c0 88.4004 71.5996 160 160 160
+c59.2998 0 111 -32.2002 138.7 -80.2002c15.2002 10.2002 33.5996 16.2002 53.2998 16.2002c53 0 96 -43 96 -96c0 -12.2002 -2.2998 -23.9004 -6.40039 -34.5996zM404.7 132.7c10.0996 10.0996 2.89941 27.2998 -11.2998 27.2998h-65.4004v112c0 8.7998 -7.2002 16 -16 16
+h-48c-8.7998 0 -16 -7.2002 -16 -16v-112h-65.4004c-14.1992 0 -21.3994 -17.2002 -11.2998 -27.2998l105.4 -105.4c6.2002 -6.2002 16.3994 -6.2002 22.5996 0z" />
+ <glyph glyph-name="cloud-upload-alt" unicode="" horiz-adv-x="640"
+d="M537.6 221.4c58.4004 -11.8008 102.4 -63.5 102.4 -125.4c0 -70.7002 -57.2998 -128 -128 -128h-368c-79.5 0 -144 64.5 -144 144c0 62.7998 40.2002 116.2 96.2002 135.9c-0.100586 2.69922 -0.200195 5.39941 -0.200195 8.09961c0 88.4004 71.5996 160 160 160
+c59.2998 0 111 -32.2002 138.7 -80.2002c15.2002 10.2002 33.5996 16.2002 53.2998 16.2002c53 0 96 -43 96 -96c0 -12.2002 -2.2998 -23.9004 -6.40039 -34.5996zM393.4 160c14.1992 0 21.3994 17.2002 11.2998 27.2998l-105.4 105.4
+c-6.2002 6.2002 -16.3994 6.2002 -22.5996 0l-105.4 -105.4c-10.0996 -10.0996 -3 -27.2998 11.2998 -27.2998h65.4004v-112c0 -8.7998 7.2002 -16 16 -16h48c8.7998 0 16 7.2002 16 16v112h65.4004z" />
+ <glyph glyph-name="gem" unicode="" horiz-adv-x="576"
+d="M485.5 448l90.5 -160h-101.1l-69.2002 160h79.7998zM357.5 448l69.2002 -160h-277.4l69.2002 160h139zM90.5 448h79.7998l-69.2002 -160h-101.1zM0 256h100.7l123 -251.7c1.5 -3.09961 -2.7002 -5.89941 -5 -3.2998zM148.2 256h279.6l-137 -318.2
+c-1 -2.39941 -4.5 -2.39941 -5.5 0zM352.3 4.2998l123 251.7h100.7l-218.7 -254.9c-2.2998 -2.69922 -6.5 0.100586 -5 3.2002z" />
+ <glyph glyph-name="level-down-alt" unicode="" horiz-adv-x="320"
+d="M313.553 55.6689l-103.966 -112.003c-9.48535 -10.2139 -25.6758 -10.2295 -35.1738 0l-103.975 112.003c-14.2061 15.2998 -3.37695 40.3311 17.5869 40.3311h63.9746v272h-83.9756h-0.00195312c-2.74316 0 -6.54395 1.5752 -8.4834 3.51465l-56 56
+c-7.56055 7.55957 -2.20605 20.4854 8.48535 20.4854h195.976c13.2549 0 24 -10.7451 24 -24v-328h63.9658c20.8779 0 31.8516 -24.9688 17.5869 -40.3311z" />
+ <glyph glyph-name="level-up-alt" unicode="" horiz-adv-x="320"
+d="M313.553 328.331c14.2646 -15.3623 3.29102 -40.3311 -17.5869 -40.3311h-63.9658v-328c0 -13.2549 -10.7451 -24 -24 -24h-195.976c-10.6914 0 -16.0459 12.9258 -8.48535 20.4854l56 56c1.93945 1.93945 5.74023 3.51465 8.4834 3.51465h0.00195312h83.9756v272
+h-63.9746c-20.9639 0 -31.793 25.0312 -17.5869 40.3311l103.975 112.003c9.49805 10.2295 25.6885 10.2139 35.1738 0z" />
+ <glyph glyph-name="lock-open" unicode="" horiz-adv-x="576"
+d="M423.5 448c84 0.299805 152.5 -68 152.5 -152v-80c0 -13.2998 -10.7002 -24 -24 -24h-32c-13.2998 0 -24 10.7002 -24 24v80c0 39.9004 -32.7002 72.4004 -72.7002 72c-39.5996 -0.400391 -71.2998 -33.2998 -71.2998 -72.9004v-71.0996h48c26.5 0 48 -21.5 48 -48v-192
+c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v192c0 26.5 21.5 48 48 48h224v70.5c0 84 67.5 153.2 151.5 153.5z" />
+ <glyph glyph-name="map-marker-alt" unicode="" horiz-adv-x="384"
+d="M172.268 -53.6699c-145.298 210.639 -172.268 232.257 -172.268 309.67c0 106.039 85.9609 192 192 192s192 -85.9609 192 -192c0 -77.4131 -26.9697 -99.0312 -172.268 -309.67c-9.53516 -13.7744 -29.9307 -13.7734 -39.4648 0zM192 176c44.1826 0 80 35.8174 80 80
+s-35.8174 80 -80 80s-80 -35.8174 -80 -80s35.8174 -80 80 -80z" />
+ <glyph glyph-name="microphone-alt" unicode="" horiz-adv-x="352"
+d="M336 256c8.83984 0 16 -7.16016 16 -16v-48c0 -88.9004 -66.29 -162.47 -152 -174.23v-33.7695h56c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56v34.1504
+c-88.0303 12.1396 -152 92.0498 -152 181.689v40.1602c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-42.2998c0 -66.8105 48.71 -126.59 115.21 -133.08c76.2998 -7.44043 140.79 52.5801 140.79 127.38v48c0 8.83984 7.16016 16 16 16h16zM176 96
+c-53.0195 0 -96 42.9805 -96 96v160c0 53.0195 42.9805 96 96 96s96 -42.9805 96 -96h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16
+c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301c0 -53.0195 -42.9805 -96 -96 -96z" />
+ <glyph glyph-name="mobile-alt" unicode="" horiz-adv-x="320"
+d="M272 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-224c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h224zM160 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM272 76v312
+c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-312c0 -6.59961 5.40039 -12 12 -12h200c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="money-bill-alt" unicode="" horiz-adv-x="640"
+d="M352 160c4.41992 0 8 -3.58008 8 -8v-16c0 -4.41992 -3.58008 -8 -8 -8h-64c-4.41992 0 -8 3.58008 -8 8v16c0 4.41992 3.58008 8 8 8h16v55.4404l-0.469727 -0.310547c-1.1123 -0.741211 -3.09961 -1.34375 -4.43652 -1.34375
+c-2.36328 0 -5.34375 1.59668 -6.65332 3.56348l-8.88086 13.3105c-0.741211 1.1123 -1.34375 3.09961 -1.34375 4.43555c0 2.36328 1.59668 5.34473 3.56445 6.6543l15.3301 10.2197c3.93945 2.62988 8.56934 4.03027 13.3096 4.03027h13.5801c4.41992 0 8 -3.58008 8 -8
+v-88h16zM608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM48 48h64c0 35.3496 -28.6504 64 -64 64v-64zM48 272c35.3496 0 64 28.6504 64 64h-64v-64zM320 80
+c53 0 96 50.1299 96 112c0 61.8604 -42.9805 112 -96 112s-96 -50.1396 -96 -112c0 -61.8496 42.9805 -112 96 -112zM592 48v64c-35.3496 0 -64 -28.6504 -64 -64h64zM592 272v64h-64c0 -35.3496 28.6504 -64 64 -64z" />
+ <glyph glyph-name="phone-slash" unicode="" horiz-adv-x="640"
+d="M268.2 66.5996c11.5 5.40039 22.7002 11.6006 33.5996 18.1006l80 -61.7998c-76 -54.5 -169 -86.9004 -269.7 -86.9004c-11.2998 0 -20.8994 7.7998 -23.3994 18.5996l-24 104c-2.60059 11.4004 3.2002 22.9004 13.8994 27.5l112 48
+c9.80078 4.2002 21.2002 1.40039 28 -6.89941zM633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002
+c5.5 7 15.5 8.2002 22.5 2.7998l353.9 -273.5c18.0996 22.5 33.7998 46.7002 46 72.8008l-60.6006 49.5996c-8.2998 6.7002 -11.0996 18.2002 -6.89941 28l48 112c4.59961 10.5996 16.1992 16.5 27.5 13.9004l104 -24c10.8994 -2.5 18.5996 -12.2002 18.5996 -23.4004
+c0 -108.9 -38.0996 -208.4 -100.9 -287.5z" />
+ <glyph glyph-name="portrait" unicode="" horiz-adv-x="384"
+d="M336 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h288zM192 320c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM304 83.2002v19.2002
+c0 31.7998 -30.0996 57.5996 -67.2002 57.5996h-5c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-5c-37.1006 0 -67.2002 -25.7998 -67.2002 -57.5996v-19.2002c0 -10.6006 10 -19.2002 22.4004 -19.2002h179.199
+c12.4004 0 22.4004 8.59961 22.4004 19.2002z" />
+ <glyph glyph-name="reply" unicode=""
+d="M8.30859 258.164l176.005 151.985c15.4053 13.3047 39.6865 2.50391 39.6865 -18.1641v-80.0537c160.629 -1.83887 288 -34.0312 288 -186.258c0 -61.4404 -39.5811 -122.309 -83.333 -154.132c-13.6533 -9.93066 -33.1113 2.5332 -28.0771 18.6309
+c45.3438 145.012 -21.5068 183.51 -176.59 185.742v-87.915c0 -20.7002 -24.2998 -31.4531 -39.6865 -18.1641l-176.005 152c-11.0703 9.5625 -11.0859 26.7529 0 36.3281z" />
+ <glyph glyph-name="shield-alt" unicode=""
+d="M466.5 364.3c17.7998 -7.39941 29.5 -24.8994 29.5 -44.2998c0 -221.3 -135.9 -344.6 -221.6 -380.3c-11.8008 -4.90039 -25.1006 -4.90039 -36.9004 0c-107 44.5996 -221.5 181.8 -221.5 380.3c0 19.4004 11.7002 36.9004 29.5996 44.2998l192 80
+c4.89062 2.0293 13.1562 3.6748 18.4502 3.6748c5.29492 0 13.5596 -1.64551 18.4502 -3.6748zM256.1 1.7002c93.7002 46.5996 172.5 156.3 175.801 307.7l-175.9 73.2998z" />
+ <glyph glyph-name="tablet-alt" unicode="" horiz-adv-x="448"
+d="M400 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h352zM224 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM400 76v312
+c0 6.59961 -5.40039 12 -12 12h-328c-6.59961 0 -12 -5.40039 -12 -12v-312c0 -6.59961 5.40039 -12 12 -12h328c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="tachometer-alt" unicode="" horiz-adv-x="576"
+d="M288 416c159.06 0 288 -128.94 288 -288c0 -52.7998 -14.25 -102.26 -39.0596 -144.8c-5.61035 -9.62012 -16.3008 -15.2002 -27.4404 -15.2002h-443c-11.1396 0 -21.8301 5.58008 -27.4404 15.2002c-24.8096 42.54 -39.0596 92 -39.0596 144.8
+c0 159.06 128.94 288 288 288zM288 352c-17.6699 0 -31.9902 -14.3301 -31.9902 -32s14.3301 -32 32 -32c6.66992 0 12.5098 2.51953 17.6406 6.00977l9.21973 27.6699c0.80957 2.44043 2.33984 4.41016 3.4502 6.66992c-3.74023 13.5205 -15.6104 23.6504 -30.3203 23.6504
+zM96 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM144 224c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM390.77 296.41c4.18066 12.5703 -2.59961 26.1699 -15.1699 30.3594
+c-12.6299 4.28027 -26.1895 -2.60938 -30.3594 -15.1699l-61.3398 -184.01c-33.4004 -2.16016 -59.9004 -29.6494 -59.9004 -63.5898c0 -11.7197 3.37988 -22.5498 8.87988 -32h110.24c5.5 9.4502 8.87988 20.2803 8.87988 32c0 19.46 -8.87012 36.6699 -22.5596 48.4102z
+M405.43 239.21c5.68066 -8.94043 15.1904 -15.21 26.5703 -15.2197c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32c-3.91992 0 -7.58008 -0.94043 -11.0498 -2.23047zM480 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z
+" />
+ <glyph glyph-name="ticket-alt" unicode="" horiz-adv-x="576"
+d="M128 288h320v-192h-320v192zM528 192c0 -26.5098 21.4902 -48 48 -48v-96c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v96c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48v96c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48
+v-96c-26.5098 0 -48 -21.4902 -48 -48zM480 296c0 13.2549 -10.7451 24 -24 24h-336c-13.2549 0 -24 -10.7451 -24 -24v-208c0 -13.2549 10.7451 -24 24 -24h336c13.2549 0 24 10.7451 24 24v208z" />
+ <glyph glyph-name="user-alt" unicode=""
+d="M256 160c-79.5 0 -144 64.5 -144 144s64.5 144 144 144s144 -64.5 144 -144s-64.5 -144 -144 -144zM384 128c70.7002 0 128 -57.2998 128 -128v-16c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v16c0 70.7002 57.2998 128 128 128h55.0996
+c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h55.0996z" />
+ <glyph glyph-name="window-close" unicode=""
+d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM380.4 125.5l-67.1006 66.5l67.1006 66.5c4.7998 4.7998 4.7998 12.5996 0 17.4004l-40.5 40.5
+c-4.80078 4.7998 -12.6006 4.7998 -17.4004 0l-66.5 -67.1006l-66.5 67.1006c-4.7998 4.7998 -12.5996 4.7998 -17.4004 0l-40.5 -40.5c-4.7998 -4.80078 -4.7998 -12.6006 0 -17.4004l67.1006 -66.5l-67.1006 -66.5c-4.7998 -4.7998 -4.7998 -12.5996 0 -17.4004
+l40.5 -40.5c4.80078 -4.7998 12.6006 -4.7998 17.4004 0l66.5 67.1006l66.5 -67.1006c4.7998 -4.7998 12.5996 -4.7998 17.4004 0l40.5 40.5c4.7998 4.80078 4.7998 12.6006 0 17.4004z" />
+ <glyph glyph-name="baseball-ball" unicode="" horiz-adv-x="496"
+d="M368.5 84.0996c12.9004 -26.6992 30.2998 -50.1992 51.4004 -70.5996c-44.6006 -43 -105.101 -69.5 -171.9 -69.5c-66.9004 0 -127.5 26.5996 -172 69.7002c21.2002 20.3994 38.5996 44 51.5 70.7002l-28.7998 13.8994c-11.1006 -23 -26.1006 -43.2998 -44.2998 -61
+c-34 42.4004 -54.4004 96.1006 -54.4004 154.7s20.4004 112.3 54.4004 154.8c17.7998 -17.2998 32.5 -37.0996 43.5 -59.3994l28.6992 14.0996c-12.7998 25.9004 -30 48.9004 -50.6992 68.7998c44.5996 43.1006 105.199 69.7002 172.1 69.7002
+c67 0 127.6 -26.7002 172.2 -69.7998c-20.7998 -20 -38 -43 -50.7998 -69l28.6992 -14.1006c11 22.4004 25.8008 42.2002 43.6006 59.5c33.7998 -42.3994 54.2002 -96.0996 54.2002 -154.6c0 -58.5996 -20.5 -112.4 -54.5 -154.9c-18.1006 17.7002 -33 38 -44.1006 60.9004z
+M140.2 116.1c17.2998 53.9004 14.2998 108.2 -0.700195 153.801l-30.4004 -10c13.3008 -40.2002 15.5 -87.6006 0.600586 -134zM356.5 269.5c-15 -45.5 -18 -99.7998 -0.700195 -153.8l30.5 9.7998c-14.8994 46.5 -12.5996 93.9004 0.600586 134z" />
+ <glyph glyph-name="basketball-ball" unicode="" horiz-adv-x="496"
+d="M212.3 437.7c-1.5 -50 -17 -95.4004 -44.7998 -131.2l-77.4004 77.4004c36 29.6992 78.4004 47.5 122.2 53.7998zM248 226l-46.2998 46.2998c37.2002 45.4004 57.5 103.8 58.7002 167.7c51.8994 -2.59961 103.1 -21.0996 145.5 -56.0996zM56.0996 349.9l77.4004 -77.4004
+c-35.7002 -27.7998 -81.2002 -43.2998 -131.2 -44.7998c6.2998 43.7998 24.1006 86.2002 53.7998 122.2zM328.3 145.7l-46.2998 46.2998l157.9 157.9c35 -42.4004 53.5 -93.6006 56.0996 -145.5c-64 -1.30078 -122.4 -21.6006 -167.7 -58.7002zM248 158l46.2998 -46.2998
+c-37.0996 -45.2998 -57.3994 -103.7 -58.7002 -167.7c-51.8994 2.59961 -103.1 21.2002 -145.5 56.0996zM439.9 34.0996l-77.4004 77.4004c35.7002 27.7002 81.0996 43.2002 131.2 44.7998c-6.2998 -43.7998 -24.1006 -86.2002 -53.7998 -122.2zM167.7 238.3
+l46.2998 -46.2998l-157.9 -157.9c-35 42.4004 -53.5 93.6006 -56.0996 145.5c63.9004 1.10059 122.3 21.5 167.7 58.7002zM283.7 -53.7002c1.59961 50 17.0996 95.5 44.7998 131.2l77.4004 -77.4004c-36 -29.6992 -78.4004 -47.5 -122.2 -53.7998z" />
+ <glyph glyph-name="bowling-ball" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM120 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM184 352c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32
+s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM232 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="chess" unicode=""
+d="M74 240l-33.9102 90.3799c-0.5625 1.5 -1.01953 4.01758 -1.01953 5.62012c0 8.83203 7.16797 16 16 16h0.0195312h56.9102v32h-24c-4.41602 0 -8 3.58398 -8 8v16c0 4.41602 3.58398 8 8 8h24v24c0 4.41602 3.58398 8 8 8h16c4.41602 0 8 -3.58398 8 -8v-24h24
+c4.41602 0 8 -3.58398 8 -8v-16c0 -4.41602 -3.58398 -8 -8 -8h-24v-32h56.8896h0.0195312c8.83203 0 16 -7.16797 16 -16c0 -1.60254 -0.456055 -4.12012 -1.01953 -5.62012l-33.8896 -90.3799h10c8.83203 0 16 -7.16797 16 -16v-16c0 -8.83203 -7.16797 -16 -16 -16
+h-15.9404c0.116211 -35.8613 7.25684 -93.2051 15.9404 -128h-128c8.68359 34.7949 15.8242 92.1387 15.9404 128h-15.9404c-8.83203 0 -16 7.16797 -16 16v16c0 8.83203 7.16797 16 16 16h10zM247.16 -11.5801c4.87988 -2.44141 8.83984 -8.85156 8.83984 -14.3086
+v-0.000976562v-22.1104c0 -8.83203 -7.16797 -16 -16 -16h-224c-8.83203 0 -16 7.16797 -16 16v22.1104c0.000976562 5.45898 3.96582 11.8701 8.84961 14.3096l23.1504 11.5801v16c0 8.83203 7.16797 16 16 16h160c8.83203 0 16 -7.16797 16 -16v-16zM339.93 146.2
+l-24.5693 20.7998c-6.25684 5.28125 -11.3467 16.2119 -11.3604 24.4004v58.5996c0 3.31152 2.68848 6 6 6h26.3896c3.3125 0 6 -2.68848 6 -6v-26h24.71v26c0 3.31152 2.68848 6 6 6h53.8105c3.31152 0 6 -2.68848 6 -6v-26h24.71v26c0 3.31152 2.6875 6 6 6h26.3799
+c3.31152 0 6 -2.68848 6 -6v-58.54v-0.03125c0 -8.19238 -5.07617 -19.1367 -11.3301 -24.4287l-24.5996 -20.79l3.29004 -82.21h-126.721zM384 144v-32h32v32c0 8.83203 -7.16797 16 -16 16s-16 -7.16797 -16 -16zM503.16 -11.5801
+c4.87988 -2.44141 8.83984 -8.85156 8.83984 -14.3086v-0.000976562v-22.1104c0 -8.83203 -7.16797 -16 -16 -16h-192c-8.83203 0 -16 7.16797 -16 16v22.1104c0.000976562 5.45898 3.96582 11.8701 8.84961 14.3096l23.1504 11.5801v16c0 8.83203 7.16797 16 16 16h128
+c8.83203 0 16 -7.16797 16 -16v-16z" />
+ <glyph glyph-name="chess-bishop" unicode="" horiz-adv-x="320"
+d="M8 160.12c0 73.3799 59.8096 181.08 112.6 225.37c-14 3.41992 -24.5996 15.5098 -24.5996 30.5098c0 17.6641 14.3359 32 32 32h64c17.6641 0 32 -14.3359 32 -32c0 -15.0498 -10.5996 -27.0898 -24.5996 -30.5098c24.3994 -20.4902 50.0693 -54.6807 70.8691 -92.5898
+l-107.89 -107.931c-1.29199 -1.29297 -2.34082 -3.82617 -2.34082 -5.6543c0 -1.8291 1.04883 -4.3623 2.34082 -5.65527l11.3105 -11.3105c1.29297 -1.29199 3.82617 -2.34082 5.6543 -2.34082s4.3623 1.04883 5.65527 2.34082l100.31 100.33
+c15.96 -35.46 26.6904 -71.9492 26.6904 -102.56c0 -51.6006 -22.1396 -73.8301 -56 -84.6006v-43.5195h-192v43.5195c-33.8604 10.7705 -56 32.9609 -56 84.6006zM304 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-288
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h288z" />
+ <glyph glyph-name="chess-board" unicode=""
+d="M255.9 447.8v-64h-64v64h64zM0 383.83h64v-64h-64v64zM128 447.8v-64h-64v64h64zM192 191.9h64v-64h-64v64zM0 255.88h64v-64h-64v64zM383.85 447.8v-64h-64v64h64zM511.85 447.8v-64h-64v64h64zM128 191.9v-64h-64v64h64zM511.8 0h-64v64h64v-64zM511.8 128h-64v64h64
+v-64zM383.85 -64v64h64v-64h-64zM511.85 255.88h-64v64h64v-64zM128 -64v64h64v-64h-64zM0 -64v64h64v-64h-64zM255.9 -64v64h64v-64h-64zM0 127.93h64v-64h-64v64zM319.88 319.85h-64v64h64v-64zM255.88 191.85v64h64v-64h-64zM191.88 63.8496h64v-64h-64v64z
+M319.88 127.85v64h64v-64h-64zM319.88 255.8v64h64v-64h-64zM319.88 63.8701h64v-64h-64v64zM64 63.9502h64v-64h-64v64zM192 319.85h-64v64h64v-64zM383.92 63.9502v64h64v-64h-64zM255.92 255.88h-64v64h64v-64zM383.92 383.83h64v-64h-64v64zM255.92 127.93h64v-64h-64
+v64zM191.92 255.88l0.0800781 -64h-64v64h63.9199zM383.84 191.88v64h64v-64h-64zM128 319.85v-64h-64v64h64zM128 127.93h64v-64h-64v64z" />
+ <glyph glyph-name="chess-king" unicode="" horiz-adv-x="448"
+d="M400 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-352c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h352zM416 288c17.6504 -0.0136719 31.9756 -14.3496 31.9756 -32c0 -2.69434 -0.652344 -6.96777 -1.45605 -9.54004
+l-73.0791 -214.46h-298.881l-73.0791 214.46c-0.803711 2.57227 -1.45605 6.8457 -1.45605 9.54004c0 17.6504 14.3252 31.9863 31.9756 32h160v48h-40c-4.41602 0 -8 3.58398 -8 8v48c0 4.41602 3.58398 8 8 8h40v40c0 4.41602 3.58398 8 8 8h48c4.41602 0 8 -3.58398 8 -8
+v-40h40c4.41602 0 8 -3.58398 8 -8v-48c0 -4.41602 -3.58398 -8 -8 -8h-40v-48h160z" />
+ <glyph glyph-name="chess-knight" unicode="" horiz-adv-x="384"
+d="M19 175.53c-10.4883 4.66211 -19 17.7627 -19 29.2402v0.0195312v137.21v0.0585938c0 5.47461 3.13574 13.0635 7 16.9414l9 9l-14.21 28.4199c-0.988281 1.97266 -1.79004 5.36328 -1.79004 7.56934v0.0107422c0 6.62402 5.37598 12 12 12h147.94
+c106 0 191.92 -86 191.92 -192v-192h-319.86v14.5195v0.0224609c0 27.2783 19.7969 59.3271 44.1904 71.5381l57.2197 28.6504c14.6445 7.32324 26.5303 26.5566 26.5303 42.9297v0.00976562v50.3301l-22.1201 -11.0801
+c-5.45117 -2.72559 -11.0732 -9.7373 -12.5508 -15.6504l-9.21973 -30.6494c-2.4502 -8.15332 -10.8545 -17.3379 -18.7598 -20.5l-12.7803 -5.12012c-3.1582 -1.2627 -8.48145 -2.28809 -11.8828 -2.28809c-3.74902 0 -9.57129 1.23535 -12.9971 2.75781zM52 320
+c-11.04 0 -20 -8.95996 -20 -20s8.95996 -20 20 -20s20 8.95996 20 20s-8.95996 20 -20 20zM368 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-352c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h352z" />
+ <glyph glyph-name="chess-pawn" unicode="" horiz-adv-x="320"
+d="M105.1 224c-29.3896 18.3799 -49.0996 50.7803 -49.0996 88c0 57.4082 46.5918 104 104 104s104 -46.5918 104 -104c0 -37.2197 -19.71 -69.6201 -49.0996 -88h25.0996c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-16v-5.49023
+c0 -44 4.11035 -86.5996 24 -122.51h-176c19.8604 35.9102 24 78.5098 24 122.51v5.49023h-16c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h25.0996zM304 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-288
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h288z" />
+ <glyph glyph-name="chess-queen" unicode=""
+d="M256 336c-30.9121 0 -56 25.0879 -56 56s25.0879 56 56 56s56 -25.0879 56 -56s-25.0879 -56 -56 -56zM432 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-352c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h352zM504.87 263.84
+c3.93457 -2.62109 7.12891 -8.58691 7.12891 -13.3154c0 -2.08496 -0.756836 -5.29004 -1.68945 -7.1543l-102.55 -211.37h-303.52l-102.55 211.33c-0.932617 1.86426 -1.68945 5.06934 -1.68945 7.1543c0 4.72852 3.19434 10.6943 7.12891 13.3154l28.5703 16
+c7.35938 4.91016 16.8096 2.5498 22.0898 -4.54004c7.86035 -10.6357 24.9736 -19.2676 38.1992 -19.2676c0.922852 0 2.41992 0.0527344 3.34082 0.118164c25.6699 1.73926 44.6699 24.7998 44.6699 50.4893c0 7.39746 6.00293 13.4004 13.4004 13.4004v0h38.7695
+c6.04004 0 11.6104 -3.99023 12.8604 -9.91016c4.42969 -21.0361 25.4717 -38.1094 46.9697 -38.1094s42.54 17.0732 46.9697 38.1094c1.25 5.91016 6.86035 9.91016 12.8604 9.91016h38.7695c7.39746 0 13.4004 -6.00293 13.4004 -13.4004
+c0 -23.5293 15.7002 -45.46 38.8398 -49.75c2.48926 -0.484375 6.56738 -0.878906 9.10352 -0.878906c13.166 0 30.2471 8.56152 38.127 19.1094c5.37988 7.13965 14.8496 9.67969 22.29 4.67969z" />
+ <glyph glyph-name="chess-rook" unicode="" horiz-adv-x="384"
+d="M368 416c8.83203 0 16 -7.16797 16 -16v-176l-64 -32c0 -47.7197 1.54004 -95 13.21 -160h-282.42c11.6699 65 13.21 111.67 13.21 160l-64 32v176c0 8.83203 7.16797 16 16 16h56.0996c8.83203 0 16 -7.16797 16 -16v-48h47.9004v48c0 8.83203 7.16797 16 16 16h80
+c8.83203 0 16 -7.16797 16 -16v-48h48v48c0 8.83203 7.16797 16 16 16h56zM224 128v64c0 17.6641 -14.3359 32 -32 32s-32 -14.3359 -32 -32v-64h64zM368 0c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-352c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h352z" />
+ <glyph glyph-name="dumbbell" unicode="" horiz-adv-x="640"
+d="M104 352c13.2998 0 24 -10.7002 24 -24v-272c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v104h-24c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h24v104c0 13.2998 10.7002 24 24 24h48zM632 224c4.40039 0 8 -3.59961 8 -8v-48
+c0 -4.40039 -3.59961 -8 -8 -8h-24v-104c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v272c0 13.2998 10.7002 24 24 24h48c13.2998 0 24 -10.7002 24 -24v-104h24zM456 416c13.2998 0 24 -10.7002 24 -24v-400c0 -13.2998 -10.7002 -24 -24 -24h-48
+c-13.2998 0 -24 10.7002 -24 24v168h-128v-168c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v400c0 13.2998 10.7002 24 24 24h48c13.2998 0 24 -10.7002 24 -24v-168h128v168c0 13.2998 10.7002 24 24 24h48z" />
+ <glyph glyph-name="football-ball" unicode="" horiz-adv-x="496"
+d="M481.5 387.7c6.2998 -23.9004 13.7002 -61 14.5 -104.5l-156.6 156.8c43.5996 -0.900391 80.8994 -8.5 104.8 -14.9004c18.2002 -4.89941 32.5 -19.1992 37.2998 -37.3994zM14.5 -3.7002c-6.2998 23.9004 -13.7002 61 -14.5 104.5l156.6 -156.8
+c-43.5996 0.900391 -80.8994 8.5 -104.8 14.9004c-18.2002 4.89941 -32.5 19.1992 -37.2998 37.3994zM4.2002 164.6c22.5996 152.7 138.899 252 271.399 271.4l216.301 -216.6c-22.7002 -152.7 -139 -252 -271.5 -271.4zM321.5 288.2l-28.2998 -28.5l-28.2998 28.2998
+c-3.10059 3.09961 -8.2002 3.09961 -11.3008 0l-11.2998 -11.2998c-3.09961 -3.10059 -3.09961 -8.2002 0 -11.2998l28.2998 -28.3008l-22.5996 -22.5996l-28.2998 28.2998c-3.10059 3.10059 -8.2002 3.10059 -11.2998 0l-11.3008 -11.2998
+c-3.09961 -3.09961 -3.09961 -8.2002 0 -11.2998l28.3008 -28.2998l-22.6006 -22.6006l-28.2998 28.2998c-3.09961 3.10059 -8.2002 3.10059 -11.2998 0l-11.2998 -11.2998c-3.10059 -3.09961 -3.10059 -8.2002 0 -11.2998l28.2998 -28.2002l-28.2998 -28.2998
+c-3.10059 -3.09961 -3.10059 -8.2002 0 -11.2998l11.2998 -11.2998c3.09961 -3.10059 8.2002 -3.10059 11.2998 0l28.2998 28.2998l28.2998 -28.2998c3.10059 -3.10059 8.2002 -3.10059 11.3008 0l11.2998 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998
+l-28.2998 28.2998l22.5996 22.6006l28.2998 -28.3008c3.10059 -3.09961 8.2002 -3.09961 11.2998 0l11.3008 11.3008c3.09961 3.09961 3.09961 8.19922 0 11.2998l-28.3008 28.2998l22.6006 22.7002l28.2998 -28.2998c3.09961 -3.10059 8.2002 -3.10059 11.2998 0
+l11.2998 11.2998c3.10059 3.09961 3.10059 8.2002 0 11.2998l-28.2998 28.2998l28.2998 28.2998c3.10059 3.10059 3.10059 8.2002 0 11.3008l-11.2998 11.2998c-3.09961 3.09961 -8.2002 3.09961 -11.2998 0z" />
+ <glyph glyph-name="golf-ball" unicode="" horiz-adv-x="416"
+d="M96 32h224c0 -17.7002 -14.2998 -32 -32 -32h-16c-17.7002 0 -32 -14.2998 -32 -32v-20c0 -6.59961 -5.40039 -12 -12 -12h-40c-6.59961 0 -12 5.40039 -12 12v20c0 17.7002 -14.2998 32 -32 32h-16c-17.7002 0 -32 14.2998 -32 32zM416 240
+c0 -74.2002 -39 -139.2 -97.5 -176h-221c-58.5 36.7998 -97.5 101.8 -97.5 176c0 114.9 93.0996 208 208 208s208 -93.0996 208 -208zM235.9 196.1c18.2998 0 33.0996 14.8008 33.0996 33.1006c0 14.3994 -9.2998 26.2998 -22.0996 30.8994
+c9.59961 -26.7998 -15.6006 -51.2998 -41.9004 -41.8994c4.59961 -12.7998 16.5 -22.1006 30.9004 -22.1006zM285 149.2c0 14.3994 -9.2998 26.2998 -22.0996 30.8994c9.59961 -26.7998 -15.6006 -51.2998 -41.9004 -41.8994
+c4.59961 -12.7998 16.5 -22.1006 30.9004 -22.1006c18.2998 0 33.0996 14.9004 33.0996 33.1006zM349 213.2c0 14.3994 -9.2998 26.2998 -22.0996 30.8994c9.59961 -26.7998 -15.6006 -51.2998 -41.9004 -41.8994c4.59961 -12.7998 16.5 -22.1006 30.9004 -22.1006
+c18.2998 0 33.0996 14.9004 33.0996 33.1006z" />
+ <glyph glyph-name="hockey-puck" unicode=""
+d="M0 288c0 53 114.6 96 256 96s256 -43 256 -96s-114.6 -96 -256 -96s-256 43 -256 96zM0 205.8c113.5 -82.3994 398.6 -82.2998 512 0v-109.8c0 -53 -114.6 -96 -256 -96s-256 43 -256 96v109.8z" />
+ <glyph glyph-name="quidditch" unicode="" horiz-adv-x="640"
+d="M256.5 231.2l86.7002 -109.2s-16.6006 -102.4 -76.6006 -150.1c-59.8994 -47.7002 -266.6 -34.1006 -266.6 -34.1006s3.7998 23.1006 11 55.4004l94.5996 112.2c4 4.69922 -0.899414 11.5996 -6.59961 9.5l-60.4004 -22.1006c14.4004 41.7002 32.7002 80 54.6006 97.5
+c59.8994 47.7998 163.3 40.9004 163.3 40.9004zM494.5 96.2002c44 0 79.7998 -35.7002 79.7998 -79.9004c0 -44.0996 -35.7002 -79.8994 -79.7998 -79.8994s-79.7998 35.7998 -79.7998 79.8994c0 44.1006 35.7998 79.9004 79.7998 79.9004zM636.5 417
+c5.5 -6.90039 4.40039 -17 -2.5 -22.5l-232.5 -177.9l34.0996 -42.8994c5.10059 -6.40039 1.7002 -15.9004 -6.2998 -17.6006l-58.7998 -12.3994l-86.7002 109.2l25.2998 54.5996c3.5 7.40039 13.5 8.59961 18.6006 2.2002l34.0996 -43l232.5 177.899
+c6.90039 5.40039 16.9004 4.30078 22.4004 -2.59961z" />
+ <glyph glyph-name="square-full" unicode=""
+d="M512 -64h-512v512h512v-512z" />
+ <glyph glyph-name="table-tennis" unicode=""
+d="M496.2 151.5c-64.1006 43.2002 -149.5 27.9004 -195.601 -34.2002l-211.5 211.5l56 56.1006c83.9004 84.0996 220 84.0996 303.9 0c63 -63.1006 78.7002 -155.601 47.2002 -233.4zM278.3 71.7998c-3.7002 -12.7002 -6.2998 -25.8994 -6.2002 -39.7002
+c0 -19.5 3.90039 -38.0996 11 -55.0996c-25.6992 2.7998 -50.5996 13.5996 -70.2998 33.2998l-35.7002 35.7002l-89.2998 -103.3c-7.5 -8.60059 -20.7002 -9.10059 -28.7002 -1l-53.3994 53.5c-8.10059 8.09961 -7.60059 21.2998 1 28.7998l103 89.4004l-34.5 34.5996
+c-39 39.0996 -44.6006 98.7998 -17.2998 144.1zM416 128c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96z" />
+ <glyph glyph-name="volleyball-ball" unicode=""
+d="M231.39 204.52c-60.8945 -37.4102 -126.348 -123.516 -146.1 -192.199c-20.248 19.1953 -45.7393 55.5283 -56.9004 81.0996c22.8008 94.4004 89.5 174.4 180.301 216.8c11.8887 -27.9648 22.0586 -75.3184 22.6992 -105.7zM194.49 338.92
+c-84 -39.5 -149 -108.4 -182.4 -191.5c-19.7998 109.3 34 212.4 125 262.2c19.0098 -16.9424 44.7246 -48.6162 57.4004 -70.7002zM382.09 173.82c-30.1689 3.6709 -76.2686 18.5352 -102.899 33.1797c-1.9541 71.4844 -43.8428 171.263 -93.5 222.72
+c47.2998 14 84.1992 10.2002 98.8994 8.5c70.2002 -66.8994 106.101 -164.6 97.5 -264.399zM257.39 164.32c49.7002 -26.8008 104 -40.8008 158.601 -40.9004c22.6787 0.140625 58.9219 4.7998 80.8994 10.4004c-6.55762 -27.2012 -25.4639 -67.4766 -42.1992 -89.9004
+c-93 -27.2998 -195.5 -9.5 -277.5 47.7998c18.2803 24.2959 54.21 56.8213 80.1992 72.6006zM159.09 64.6201c53.6006 -37.2998 144 -78.2002 256.9 -62.1006c-38.1611 -32.3467 -109.732 -58.5986 -159.758 -58.5986c-38.5156 0 -96.416 16.3516 -129.242 36.499
+c6.39941 29.7998 16.8994 58.2002 32.0996 84.2002zM339.39 425.22c95.9004 -34.2998 164.601 -125.6 164.601 -233.399c0 -2 -0.299805 -4 -0.299805 -6c-23.9658 -7.83887 -63.8799 -14.2012 -89.0947 -14.2012c-0.166992 0 -0.438477 0.000976562 -0.605469 0.000976562
+c7.89941 92.3994 -19.2998 183.2 -74.6006 253.6z" />
+ <glyph glyph-name="allergies" unicode="" horiz-adv-x="448"
+d="M416 336c17.5996 0 32 -14.4004 32 -32v-176.1c-0.200195 -14 -1.90039 -28.6006 -5.09961 -42.3008l-26.5 -112.699c-5.10059 -21.7002 -24.4004 -37 -46.7002 -37h-197.601c-15.2998 0 -29.7998 7.39941 -38.7998 19.7998l-125.6 172.7
+c-13 17.8994 -9.10059 42.8994 8.7998 55.8994s42.9004 9.10059 55.9004 -8.7998l23.5996 -32.5v241c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-152c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v184c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-184
+c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v152c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-152c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v72c0 17.5996 14.4004 32 32 32zM176 32c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16
+s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM176 128c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM240 0c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM240 96c8.7998 0 16 7.2002 16 16
+s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM304 64c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM336 0c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM368 128
+c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16z" />
+ <glyph glyph-name="band-aid" unicode="" horiz-adv-x="640"
+d="M0 288c0 35.2998 28.7002 64 64 64h96v-320h-96c-35.2998 0 -64 28.7002 -64 64v192zM576 352c35.2998 0 64 -28.7002 64 -64v-192c0 -35.2998 -28.7002 -64 -64 -64h-96v320h96zM192 32v320h256v-320h-256zM368 264c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24
+s24 10.7002 24 24s-10.7002 24 -24 24zM368 168c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM272 264c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM272 168
+c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24z" />
+ <glyph glyph-name="box" unicode=""
+d="M509.5 263.4c0.799805 -2.40039 0.799805 -4.90039 1.2002 -7.40039h-238.7v192h141.4c20.6992 0 39 -13.2002 45.5 -32.7998zM240 448v-192h-238.7c0.400391 2.5 0.400391 5 1.2002 7.40039l50.5996 151.8c6.5 19.5996 24.8008 32.7998 45.5 32.7998h141.4zM0 224h512
+v-240c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v240z" />
+ <glyph glyph-name="boxes" unicode="" horiz-adv-x="576"
+d="M560 160c8.7998 0 16 -7.2002 16 -16v-192c0 -8.7998 -7.2002 -16 -16 -16h-224c-8.7998 0 -16 7.2002 -16 16v192c0 8.7998 7.2002 16 16 16h80v-96l32 21.2998l32 -21.2998v96h80zM176 224c-8.7998 0 -16 7.2002 -16 16v192c0 8.7998 7.2002 16 16 16h80v-96
+l32 21.2998l32 -21.2998v96h80c8.7998 0 16 -7.2002 16 -16v-192c0 -8.7998 -7.2002 -16 -16 -16h-224zM240 160c8.7998 0 16 -7.2002 16 -16v-192c0 -8.7998 -7.2002 -16 -16 -16h-224c-8.7998 0 -16 7.2002 -16 16v192c0 8.7998 7.2002 16 16 16h80v-96l32 21.2998
+l32 -21.2998v96h80z" />
+ <glyph glyph-name="briefcase-medical" unicode=""
+d="M464 320c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h80v48c0 26.5 21.5 48 48 48h160c26.5 0 48 -21.5 48 -48v-48h80zM192 352v-32h128v32h-128zM352 104v48c0 4.40039 -3.59961 8 -8 8h-56v56
+c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="burn" unicode="" horiz-adv-x="384"
+d="M192 448c111.8 -100.9 192 -220.6 192 -300.5c0 -124.5 -79 -211.5 -192 -211.5s-192 87 -192 211.5c0 79.5996 79.7002 199.2 192 300.5zM192 0c56.5 0 96 39 96 94.7998c0 13.5 -4.59961 61.5 -96 161.2c-91.4004 -99.7002 -96 -147.7 -96 -161.2
+c0 -55.7998 39.5 -94.7998 96 -94.7998z" />
+ <glyph glyph-name="capsules" unicode="" horiz-adv-x="576"
+d="M555.3 147.9c36.2002 -51.7002 23.7002 -123 -28 -159.2c-20 -14 -42.7998 -20.7002 -65.5 -20.7002c-36.0996 0 -71.5996 17 -93.7998 48.7998l-131.2 187.3c-5.5 7.90039 -9.5 16.4004 -12.7998 25v-149.1c0 -61.9004 -50.0996 -112 -112 -112s-112 50.0996 -112 112
+v224c0 61.9004 50.0996 112 112 112c60 0 108.5 -47.2002 111.4 -106.5c7.7998 21 21.7998 40 41.5 53.7998c20 14 42.8994 20.7002 65.5 20.7002c36 0 71.5 -17 93.7998 -48.7998zM160 192v112c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-112h96zM354.8 147.1
+l82.5 57.7002l-65.5996 93.7002c-9.40039 13.5 -24.7998 21.5 -41.2998 21.5c-10.3008 0 -20.3008 -3.09961 -28.8008 -9.09961c-11 -7.7002 -18.3994 -19.3008 -20.6992 -32.5c-2.40039 -13.2002 0.599609 -26.6006 8.2998 -37.6006z" />
+ <glyph glyph-name="clipboard-check" unicode="" horiz-adv-x="384"
+d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM192 408c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24
+s-10.7002 24 -24 24zM313.2 176.2c4.7002 4.7002 4.7998 12.2002 0.0996094 17l-28.2002 28.3994c-4.69922 4.7002 -12.2998 4.80078 -17 0.100586l-106 -105.2l-46 46.4004c-4.69922 4.69922 -12.2998 4.7998 -17 0.0996094l-28.3994 -28.2002
+c-4.7002 -4.7002 -4.7998 -12.2998 -0.100586 -17l82.6006 -83.2998c4.7002 -4.7002 12.2998 -4.7998 17 -0.0996094z" />
+ <glyph glyph-name="clipboard-list" unicode="" horiz-adv-x="384"
+d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM96 24c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24
+s10.7002 -24 24 -24zM96 120c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24s10.7002 -24 24 -24zM96 216c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24s10.7002 -24 24 -24zM192 408c-13.2998 0 -24 -10.7002 -24 -24
+s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM320 40v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM320 136v16c0 4.40039 -3.59961 8 -8 8h-144
+c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8zM320 232v16c0 4.40039 -3.59961 8 -8 8h-144c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h144c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="diagnoses" unicode="" horiz-adv-x="640"
+d="M496 192c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM320 272c-48.5 0 -88 39.5 -88 88s39.5 88 88 88s88 -39.5 88 -88s-39.5 -88 -88 -88zM59.7998 84l-17.7002 26.7002c-8.7998 13.2998 -7.59961 34.5996 10 45.0996
+c7.40039 4.40039 17.5 10 28.7002 16c31.6006 -27.2998 79 -4.2002 79.2002 36c47.0996 17.7002 103 32.2002 160 32.2002c45.0996 0 89.2998 -9.2002 129.2 -21.7998c-11.7002 -52.9004 59.5996 -81.2002 87.7002 -35.1006
+c21.3994 -10.3994 39.1992 -20.2998 51.0996 -27.3994c17.5996 -10.5 18.7998 -31.9004 10 -45.1006l-17.7998 -26.6992c-10.2002 -15.1006 -29.2998 -17.8008 -42.9004 -9.80078c-16.2002 9.60059 -56.2002 31.8008 -105.3 48.6006v-90.7002h-224v90.7998
+c-49.0996 -16.8994 -89.0996 -39 -105.3 -48.5996c-13.6006 -8 -32.7002 -5.5 -42.9004 9.7998zM368 104c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24s-10.7002 24 -24 24zM272 200c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24
+s24 10.7002 24 24s-10.7002 24 -24 24zM112 192c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM624 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-608c-8.7998 0 -16 7.2002 -16 16v32
+c0 8.7998 7.2002 16 16 16h608z" />
+ <glyph glyph-name="dna" unicode="" horiz-adv-x="448"
+d="M0.0996094 -46.0996c5.2002 42.8994 31.4004 153.899 159.9 238.1c-128.6 84.2002 -154.7 195.2 -159.9 238.1c-1.09961 9.5 6.40039 17.8008 16 17.8008l32.3008 0.0996094c8.09961 0.0996094 14.8994 -5.90039 16 -13.9004
+c0.699219 -5 1.7998 -11.0996 3.39941 -18.0996h312.4c1.59961 7 2.7002 13.2002 3.39941 18.0996c1.10059 8 7.90039 13.9004 16 13.9004l32.4004 -0.0996094c9.59961 0 17 -8.30078 15.9004 -17.8008c-5.80078 -47.8994 -37.4004 -181.199 -209.5 -266.699
+c-31.7002 -15.8008 -57.4004 -33.3008 -78.7002 -51.4004h127.6c-5.59961 4.7998 -10.7998 9.59961 -17 14.2002c21.4004 11.2002 40.9004 23 58.5 35.3994c93.2998 -78.6992 114.3 -169.8 118.9 -207.699c1.2002 -9.5 -6.2998 -17.8008 -15.9004 -17.8008
+l-32.2998 -0.0996094c-8.09961 -0.0996094 -14.9004 5.90039 -16 13.9004c-0.599609 4.89941 -1.90039 11.1992 -3.5 18.0996h-312.3c-1.60059 -7 -2.7002 -13.2002 -3.40039 -18.0996c-1.09961 -8 -7.89941 -13.9004 -16 -13.9004l-32.2998 0.0996094
+c-9.59961 0 -17 8.30078 -15.9004 17.8008zM224 228.4c25.0996 13.5996 46.4004 28.3994 64.2002 43.5996h-128.5c17.8994 -15.2002 39.2002 -29.9004 64.2998 -43.5996zM355.1 352h-262.1c5.7002 -10.4004 12.7002 -21.0996 21 -32h220.1
+c8.2002 10.9004 15.2002 21.5996 21 32zM92.9004 32h261.6c-5.7998 10.4004 -12.9004 21.0996 -21.2002 32h-219.399c-8.2002 -10.9004 -15.2002 -21.5996 -21 -32z" />
+ <glyph glyph-name="dolly" unicode="" horiz-adv-x="576"
+d="M294.2 170.3l-53 159.4c-2.7998 8.2998 1.7002 17.3994 10.0996 20.2002l61.6006 20.5l33.0996 -99.4004l60.7002 20.0996l-33.1006 99.4004l61.1006 20.4004c8.2998 2.7998 17.3994 -1.7002 20.2002 -10.1006l60.3994 -181.2
+c2.7998 -8.2998 -1.7002 -17.3994 -10.0996 -20.1992l-161.5 -53.8008c-14.7998 11.3008 -31.5 19.7002 -49.5 24.7002zM575.2 121.6c2.7998 -8.39941 -1.7998 -17.3994 -10.1006 -20.1992l-213.3 -71.2002c-1.09961 -57.7998 -53.2002 -103.3 -113.399 -92.6006
+c-39.4004 6.90039 -71.2002 39.8008 -77.3008 79.2002c-5.69922 36.9004 9.90039 70.1006 36 90.5l-92.1992 276.7h-88.9004c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h112c13.7998 0 26 -8.7998 30.4004 -21.9004l99.3994 -298.199
+c29.9004 -0.600586 56.2998 -15 73.5 -37l213.5 71.1992c8.2998 2.80078 17.4004 -1.69922 20.2002 -10.0996zM256 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
+ <glyph glyph-name="dolly-flatbed" unicode="" horiz-adv-x="640"
+d="M208 128c-8.7998 0 -16 7.2002 -16 16v256c0 8.7998 7.2002 16 16 16h144v-128l48 32l48 -32v128h144c8.7998 0 16 -7.2002 16 -16v-256c0 -8.7998 -7.2002 -16 -16 -16h-384zM624 64c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-82.7998
+c1.7002 -5 2.89941 -10.4004 2.89941 -16c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 5.59961 1.10059 11 2.90039 16h-197.9c1.7002 -5 2.90039 -10.4004 2.90039 -16c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 5.59961 1.09961 11 2.90039 16h-82.9004
+c-8.7998 0 -16 7.2002 -16 16v368h-48c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h96c8.7998 0 16 -7.2002 16 -16v-368h496z" />
+ <glyph glyph-name="file-medical" unicode="" horiz-adv-x="384"
+d="M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136z
+M288 152c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56
+c4.40039 0 8 3.59961 8 8v48z" />
+ <glyph glyph-name="file-medical-alt" unicode="" horiz-adv-x="448"
+d="M288 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v168h70.0996l34.8008 -69.5c2.89941 -5.90039 11.3994 -5.90039 14.2998 0l56.7998 113.7l22.0996 -44.2002h89.9004c8.7998 0 16 7.2002 16 16
+s-7.2002 16 -16 16h-70.2002l-34.7002 69.5c-2.89941 5.90039 -11.3994 5.90039 -14.2998 0l-56.7998 -113.7l-19.9004 39.7998c-1.39941 2.7002 -4.19922 4.40039 -7.19922 4.40039h-140.9c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h56v232
+c0 13.2998 10.7002 24 24 24h200v-136zM441 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
+ <glyph glyph-name="first-aid" unicode="" horiz-adv-x="576"
+d="M0 368c0 26.5 21.5 48 48 48h48v-448h-48c-26.5 0 -48 21.5 -48 48v352zM128 -32v448h320v-448h-320zM192 216v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8v48
+c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8zM528 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-48v448h48z" />
+ <glyph glyph-name="hospital-alt" unicode="" horiz-adv-x="576"
+d="M544 352c17.7002 0 32 -14.2998 32 -32v-368c0 -8.7998 -7.2002 -16 -16 -16h-544c-8.7998 0 -16 7.2002 -16 16v368c0 17.7002 14.2998 32 32 32h128v64c0 17.7002 14.2998 32 32 32h192c17.7002 0 32 -14.2998 32 -32v-64h128zM160 12v40c0 6.59961 -5.40039 12 -12 12
+h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM160 140v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM320 12v40
+c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM320 140v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40
+c6.59961 0 12 5.40039 12 12zM336 310v20c0 3.2998 -2.7002 6 -6 6h-26v26c0 3.2998 -2.7002 6 -6 6h-20c-3.2998 0 -6 -2.7002 -6 -6v-26h-26c-3.2998 0 -6 -2.7002 -6 -6v-20c0 -3.2998 2.7002 -6 6 -6h26v-26c0 -3.2998 2.7002 -6 6 -6h20c3.2998 0 6 2.7002 6 6v26h26
+c3.2998 0 6 2.7002 6 6zM480 12v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12zM480 140v40c0 6.59961 -5.40039 12 -12 12h-40c-6.59961 0 -12 -5.40039 -12 -12v-40
+c0 -6.59961 5.40039 -12 12 -12h40c6.59961 0 12 5.40039 12 12z" />
+ <glyph glyph-name="hospital-symbol" unicode=""
+d="M256 448c141.4 0 256 -114.6 256 -256s-114.6 -256 -256 -256s-256 114.6 -256 256s114.6 256 256 256zM368 72v240c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-88h-96v88c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-240
+c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v88h96v-88c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="id-card-alt" unicode="" horiz-adv-x="576"
+d="M528 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-480c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h144v-96h192v96h144zM288 224c-35.2998 0 -64 -28.7002 -64 -64s28.7002 -64 64 -64s64 28.7002 64 64s-28.7002 64 -64 64zM381.3 0
+c10.4004 0 18.7998 10 15.6006 19.7998c-8.40039 25.7002 -32.5 44.2002 -60.9004 44.2002h-8.2002c-12.2002 -5.09961 -25.7002 -8 -39.7998 -8s-27.5 2.90039 -39.7998 8h-8.2002c-28.5 0 -52.5996 -18.5996 -60.9004 -44.2002
+c-3.19922 -9.7998 5.2002 -19.7998 15.6006 -19.7998h186.6zM352 416v-96h-128v96c0 17.7002 14.2998 32 32 32h64c17.7002 0 32 -14.2998 32 -32z" />
+ <glyph glyph-name="notes-medical" unicode="" horiz-adv-x="384"
+d="M336 384c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h80c0 35.2998 28.7002 64 64 64s64 -28.7002 64 -64h80zM192 408c-13.2998 0 -24 -10.7002 -24 -24s10.7002 -24 24 -24s24 10.7002 24 24
+s-10.7002 24 -24 24zM288 104v48c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8v-48c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8
+v56h56c4.40039 0 8 3.59961 8 8zM288 296v16c0 4.40039 -3.59961 8 -8 8h-176c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h176c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="pallet" unicode="" horiz-adv-x="640"
+d="M144 192c-8.7998 0 -16 7.2002 -16 16v224c0 8.7998 7.2002 16 16 16h112v-128l64 32l64 -32v128h112c8.7998 0 16 -7.2002 16 -16v-224c0 -8.7998 -7.2002 -16 -16 -16h-352zM624 64h-48v-64h48c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-608
+c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h48v64h-48c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h608c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16zM288 0v64h-160v-64h160zM512 0v64h-160v-64h160z" />
+ <glyph glyph-name="pills" unicode="" horiz-adv-x="576"
+d="M112 416c61.9004 0 112 -50.0996 112 -112v-224c0 -61.9004 -50.0996 -112 -112 -112s-112 50.0996 -112 112v224c0 61.9004 50.0996 112 112 112zM160 192v112c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-112h96zM299.7 221.7l210.8 -210.8
+c3.5 -3.5 3.2002 -9.40039 -0.799805 -12.3008c-62.5 -45.2998 -150.101 -40.3994 -206.4 15.9004s-61.2002 143.9 -15.8994 206.4c2.89941 3.89941 8.7998 4.2998 12.2998 0.799805zM529.5 240.7c56.4004 -56.2998 61.2002 -143.8 15.9004 -206.4
+c-2.90039 -3.89941 -8.80078 -4.2998 -12.3008 -0.799805l-210.8 210.8c-3.5 3.5 -3.2002 9.40039 0.799805 12.2998c62.5 45.3008 150.101 40.4004 206.4 -15.8994z" />
+ <glyph glyph-name="prescription-bottle" unicode="" horiz-adv-x="384"
+d="M32 256v64h320v-352c0 -17.5996 -14.4004 -32 -32 -32h-256c-17.5996 0 -32 14.4004 -32 32v64h120c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-120v64h120c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-120v64h120c4.40039 0 8 3.59961 8 8v16
+c0 4.40039 -3.59961 8 -8 8h-120zM360 448c13.2002 0 24 -10.7998 24 -24v-48c0 -13.2002 -10.7998 -24 -24 -24h-336c-13.2002 0 -24 10.7998 -24 24v48c0 13.2002 10.7998 24 24 24h336z" />
+ <glyph glyph-name="prescription-bottle-alt" unicode="" horiz-adv-x="384"
+d="M360 448c13.2002 0 24 -10.7998 24 -24v-48c0 -13.2002 -10.7998 -24 -24 -24h-336c-13.2002 0 -24 10.7998 -24 24v48c0 13.2002 10.7998 24 24 24h336zM32 -32v352h320v-352c0 -17.5996 -14.4004 -32 -32 -32h-256c-17.5996 0 -32 14.4004 -32 32zM96 152v-48
+c0 -4.40039 3.59961 -8 8 -8h56v-56c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v56h56c4.40039 0 8 3.59961 8 8v48c0 4.40039 -3.59961 8 -8 8h-56v56c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8v-56h-56c-4.40039 0 -8 -3.59961 -8 -8z
+" />
+ <glyph glyph-name="procedures" unicode="" horiz-adv-x="640"
+d="M528 224c61.9004 0 112 -50.0996 112 -112v-160c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v48h-512v-48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v352c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-240h192
+v144c0 8.7998 7.2002 16 16 16h256zM136 352c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h140.9c3.09961 0 5.7998 -1.7002 7.19922 -4.40039l19.9004 -39.7998l49.7002 99.4004c5.89941 11.7998 22.7002 11.7998 28.5996 0l27.6006 -55.2002h102.1
+c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16h-121.9l-22.0996 44.2002l-49.7002 -99.4004c-5.89941 -11.7998 -22.7002 -11.7998 -28.5996 0l-27.6006 55.2002h-126.1zM160 96c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64
+s-28.7002 -64 -64 -64z" />
+ <glyph glyph-name="shipping-fast" unicode="" horiz-adv-x="640"
+d="M624 96c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48c0 -53 -43 -96 -96 -96s-96 43 -96 96h-128c0 -53 -43 -96 -96 -96s-96 43 -96 96v128h152c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-208c-4.40039 0 -8 3.59961 -8 8v16
+c0 4.40039 3.59961 8 8 8h240c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-208c-4.40039 0 -8 3.59961 -8 8v16c0 4.40039 3.59961 8 8 8h240c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-272c-4.40039 0 -8 3.59961 -8 8v16
+c0 4.40039 3.59961 8 8 8h56v48c0 26.5 21.5 48 48 48h256c26.5 0 48 -21.5 48 -48v-48h44.0996c12.7002 0 24.9004 -5.09961 33.9004 -14.0996l99.9004 -99.9004c9 -9 14.0996 -21.2002 14.0996 -33.9004v-108.1h16zM160 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48
+s-48 -21.5 -48 -48s21.5 -48 48 -48zM480 -16c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48zM560 192v12.0996l-99.9004 99.9004h-44.0996v-112h144z" />
+ <glyph glyph-name="smoking" unicode="" horiz-adv-x="640"
+d="M632 96c4.40039 0 8 -3.59961 8 -8v-144c0 -4.40039 -3.59961 -8 -8 -8h-48c-4.40039 0 -8 3.59961 -8 8v144c0 4.40039 3.59961 8 8 8h48zM553.3 360.9c54.2998 -36.4004 86.7002 -97.1006 86.7002 -162.601v-30.2998c0 -4.40039 -3.59961 -8 -8 -8h-48
+c-4.40039 0 -8 3.59961 -8 8v30.2998c0 50.2002 -25.2002 96.7002 -67.4004 124c-18.3994 12 -28.5996 33.4004 -28.5996 55.4004v62.2998c0 4.40039 3.59961 8 8 8h48c4.40039 0 8 -3.59961 8 -8v-62.2998c0 -6.7998 3.59961 -13 9.2998 -16.7998zM432 96
+c8.7998 0 16 -7.2002 16 -16v-128c0 -8.7998 -7.2002 -16 -16 -16h-384c-26.5 0 -48 21.5 -48 48v64c0 26.5 21.5 48 48 48h384zM400 -16v64h-176v-64h176zM487.7 306.4c35.2998 -24.7002 56.2998 -64.8008 56.2998 -108.101v-30.2998c0 -4.40039 -3.59961 -8 -8 -8h-48
+c-4.40039 0 -8 3.59961 -8 8v30.2998c0 27.4004 -13.2998 52.9004 -35.7002 68.6006c-35.7002 25.0996 -60.2998 63 -60.2998 106.699v66.4004c0 4.40039 3.59961 8 8 8h48c4.40039 0 8 -3.59961 8 -8v-62.2998c0 -29 15.7998 -54.7002 39.7002 -71.2998zM536 96
+c4.40039 0 8 -3.59961 8 -8v-144c0 -4.40039 -3.59961 -8 -8 -8h-48c-4.40039 0 -8 3.59961 -8 8v144c0 4.40039 3.59961 8 8 8h48z" />
+ <glyph glyph-name="syringe" unicode=""
+d="M201.5 273.2l64.9004 65l135.699 -135.7l-181.899 -181.9c-17.5 -17.5996 -41.5 -25.5996 -65.4004 -23l-63.5996 7.10059l-66.2998 -66.2998c-3.10059 -3.10059 -8.2002 -3.10059 -11.3008 0l-11.2998 11.2998c-3.09961 3.09961 -3.09961 8.2002 0 11.2998
+l66.4004 66.4004l-7.10059 63.5996c-2.59961 24.2998 5.7002 48.0996 23 65.4004l26.4004 26.3994l55.7998 -55.8994c3.10059 -3.10059 8.2002 -3.10059 11.2998 0l11.3008 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998l-55.8008 55.7998l45.3008 45.2998
+l55.6992 -55.7998c3.10059 -3.09961 8.2002 -3.09961 11.3008 0l11.2998 11.2998c3.09961 3.10059 3.09961 8.2002 0 11.3008zM509.7 366.5c3.09961 -3.2002 3.09961 -8.2002 0 -11.4004l-11.2998 -11.2998c-3.10059 -3.09961 -8.2002 -3.09961 -11.3008 0l-28.2998 28.2998
+l-45.2998 -45.2998l73.5 -73.5c3.09961 -3.09961 3.09961 -8.2002 0 -11.2998l-33.9004 -34c-3.09961 -3.09961 -8.19922 -3.09961 -11.2998 0l-17 17l-135.7 135.9l-17 17c-3.09961 3.09961 -3.09961 8.19922 0 11.2998l33.9004 33.8994
+c3.09961 3.10059 8.2002 3.10059 11.2998 0l17 -17l56.6006 -56.5996l45.2998 45.2998l-28.2998 28.2998c-3.10059 3.10059 -3.10059 8.2002 0 11.3008l11.2998 11.2998c3.09961 3.09961 8.2002 3.09961 11.2998 0z" />
+ <glyph glyph-name="tablets" unicode="" horiz-adv-x="640"
+d="M160 256c81.0996 0 147.5 -58.5 160 -134.7c0.799805 -4.7998 -3.2998 -9.2998 -8.2998 -9.2998h-303.3c-5 0 -9.10059 4.5 -8.30078 9.2998c12.4004 76.2002 78.8008 134.7 159.9 134.7zM311.6 80c5 0 9.10059 -4.5 8.30078 -9.2998
+c-12.4004 -76.2002 -78.8008 -134.7 -159.9 -134.7s-147.5 58.5 -159.9 134.7c-0.799805 4.7998 3.30078 9.2998 8.30078 9.2998h303.199zM593.4 401.4c56.5 -56.5 61.3994 -144.2 15.8994 -206.9c-2.7998 -4 -8.7998 -4.2998 -12.2998 -0.799805l-211.3 211.399
+c-3.5 3.40039 -3.2002 9.40039 0.799805 12.3008c62.7002 45.3994 150.4 40.5 206.9 -16zM363 382.3l211.3 -211.3c3.5 -3.40039 3.2002 -9.40039 -0.799805 -12.2998c-62.7002 -45.5 -150.4 -40.6006 -206.9 15.8994c-56.3994 56.5 -61.2998 144.2 -15.8994 206.9
+c2.7998 4 8.7998 4.2998 12.2998 0.799805z" />
+ <glyph glyph-name="thermometer" unicode=""
+d="M476.8 427.6c49.4004 -40.6992 42.1006 -107.3 7.2002 -142.199l-254.2 -253.301h-99.8994l-89 -89c-9.30078 -9.39941 -24.5 -9.39941 -33.9004 0c-9.40039 9.30078 -9.40039 24.5 0 33.9004l89 89v100.9l45.2998 45.6992l50.1006 -50.1992
+c3.09961 -3.10059 8.19922 -3.10059 11.2998 0l11.2998 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998l-50.0996 50.2002l45.0996 45.3994l50.2998 -50.1992c3.10059 -3.10059 8.2002 -3.10059 11.2998 0l11.3008 11.2998c3.09961 3.09961 3.09961 8.2002 0 11.2998
+l-50.3008 50.4004l45.1006 45.3994l50.3994 -50.5c3.10059 -3.09961 8.2002 -3.09961 11.3008 0l11.2998 11.2998c3.09961 3.10059 3.09961 8.2002 0 11.3008l-50.5 50.5l45.7002 46c36.3994 36.5 94.3994 40.8994 131.899 10.1992z" />
+ <glyph glyph-name="vial" unicode="" horiz-adv-x="480"
+d="M477.7 261.9c3.09961 -3.10059 3.09961 -8.2002 0 -11.2002l-34 -33.9004c-3.10059 -3.09961 -8.2002 -3.09961 -11.2998 0l-11.2002 11.1006l-246.3 -245.7c-20.1006 -20.1006 -46.5 -30.1006 -72.9004 -30.1006c-28.9004 -0.0996094 -57.7998 11.9004 -78.4004 35.9004
+c-35.6992 41.5 -29.3994 104.8 9.40039 143.5l242.4 241.9l-11.2002 11.0996c-3.10059 3.09961 -3.10059 8.2002 0 11.2998l34 33.9004c3.09961 3.09961 8.2002 3.09961 11.2998 0zM318 192l69.5 69.4004l-78.5 78.2998l-148 -147.7h157z" />
+ <glyph glyph-name="vials" unicode="" horiz-adv-x="640"
+d="M72 384c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h208c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-24v-240c0 -44.0996 -35.9004 -80 -80 -80s-80 35.9004 -80 80v240h-24zM144 384v-96h64v96h-64zM624 0c8.7998 0 16 -7.2002 16 -16
+v-32c0 -8.7998 -7.2002 -16 -16 -16h-608c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h608zM360 384c-4.40039 0 -8 3.59961 -8 8v48c0 4.40039 3.59961 8 8 8h208c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-24v-240
+c0 -44.0996 -35.9004 -80 -80 -80s-80 35.9004 -80 80v240h-24zM432 384v-96h64v96h-64z" />
+ <glyph glyph-name="warehouse" unicode="" horiz-adv-x="640"
+d="M504 96c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-367.7c-4.39941 0 -8 3.59961 -8 8l0.100586 48c0 4.40039 3.59961 8 8 8h367.6zM504 0c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-368c-4.40039 0 -8 3.59961 -8 8
+l0.0996094 48c0 4.40039 3.60059 8 8 8h367.9zM504 192c4.40039 0 8 -3.59961 8 -8v-48c0 -4.40039 -3.59961 -8 -8 -8h-367.5c-4.40039 0 -8 3.59961 -8 8l0.0996094 48c0 4.40039 3.60059 8 8 8h367.4zM610.5 331c17.7998 -7.5 29.5 -24.9004 29.5 -44.2998v-342.7
+c0 -4.40039 -3.59961 -8 -8 -8h-80c-4.40039 0 -8 3.59961 -8 8v248c0 17.5996 -14.5996 32 -32.5996 32h-382.801c-18 0 -32.5996 -14.4004 -32.5996 -32v-248c0 -4.40039 -3.59961 -8 -8 -8h-80c-4.40039 0 -8 3.59961 -8 8v342.7c0 19.3994 11.7002 36.7998 29.5 44.2998
+l272 113.3c4.89062 2.0293 13.1553 3.6748 18.4502 3.6748c5.29395 0 13.5596 -1.64551 18.4502 -3.6748z" />
+ <glyph glyph-name="weight" unicode=""
+d="M448 384c35.29 0 64 -28.71 64 -64v-320c0 -35.29 -28.71 -64 -64 -64h-384c-35.29 0 -64 28.71 -64 64v320c0 35.29 28.71 64 64 64h25.9805c-16.4209 -28.2803 -25.9805 -61.0098 -25.9805 -96c0 -105.87 86.1299 -192 192 -192s192 86.1299 192 192
+c0 34.9902 -9.55957 67.7197 -25.9805 96h25.9805zM256 128c-88.3701 0 -160 71.6299 -160 160s71.6299 160 160 160s160 -71.6299 160 -160s-71.6299 -160 -160 -160zM255.7 279.94c-21.9404 -0.170898 -39.7002 -17.96 -39.7002 -39.9404c0 -22.0898 17.9102 -40 40 -40
+s40 17.9102 40 40c0 10.5498 -4.26953 20 -10.9502 27.1602l33.6699 78.5498c3.4707 8.11035 -0.290039 17.5205 -8.41016 21c-8.08984 3.50977 -17.5293 -0.240234 -21.0293 -8.41016z" />
+ <glyph glyph-name="x-ray" unicode="" horiz-adv-x="640"
+d="M240 64c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16zM400 32c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM624 448c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16
+h-608c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h608zM624 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-608c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h48v352h512v-352h48zM480 200v16c0 4.40039 -3.59961 8 -8 8
+h-136v32h104c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-104v24c0 4.40039 -3.59961 8 -8 8h-16c-4.40039 0 -8 -3.59961 -8 -8v-24h-104c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h104v-32h-136c-4.40039 0 -8 -3.59961 -8 -8v-16
+c0 -4.40039 3.59961 -8 8 -8h136v-32h-104c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h104v-32h-64c-26.5 0 -48 -21.5 -48 -48s21.5 -48 48 -48s48 21.5 48 48v16h64v-16c0 -26.5 21.5 -48 48 -48s48 21.5 48 48s-21.5 48 -48 48h-64v32h104
+c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-104v32h136c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="box-open" unicode="" horiz-adv-x="640"
+d="M425.7 192c4.5 0 9 0.599609 13.2998 1.90039l137 39.0996v-178c0 -14.5996 -10 -27.4004 -24.2002 -31l-216.399 -54.0996c-10.1006 -2.5 -20.8008 -2.5 -31 0l-216.2 54.0996c-14.2002 3.5 -24.2002 16.2998 -24.2002 31v178l137 -39.2002
+c4.2998 -1.2998 8.7998 -1.89941 13.2998 -1.89941c16.9004 0 32.7998 9 41.5 23.5l64.2002 106.6l64.2998 -106.6c8.60059 -14.4004 24.5 -23.4004 41.4004 -23.4004zM638.3 304.2c4.5 -9.2002 -0.299805 -20.2002 -10.2002 -23.1006l-197.899 -56.5
+c-7.10059 -2 -14.7002 1 -18.5 7.30078l-91.7002 152.1l250.1 31.9004c6.90039 0.899414 13.6006 -2.7002 16.7002 -8.90039zM53.2002 407c3.09961 6.2002 9.7002 9.7002 16.5996 8.90039l250.2 -31.9004l-91.7998 -152c-3.7998 -6.2998 -11.4004 -9.2998 -18.5 -7.2998
+l-197.9 56.5c-9.7998 2.7998 -14.7002 13.7998 -10.0996 23z" />
+ <glyph glyph-name="comment-dots" unicode=""
+d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002
+c0.5 0.5 42.2998 45.4004 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7c0 114.9 114.6 208 256 208zM128 176c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 176c17.7002 0 32 14.2998 32 32
+s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM384 176c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="comment-slash" unicode="" horiz-adv-x="640"
+d="M64 208c0 18.5996 3.2998 36.5 8.90039 53.5996l325.5 -251.6c-24.7002 -6.40039 -51 -10 -78.4004 -10c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.90039 -7.2998 4.7998
+c-1.2998 3 -0.700195 6.40039 1.5 8.7002c0.5 0.599609 42.2002 45.5 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7zM633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7
+c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998l105.1 -81.2998c45.2002 32.6006 104.301 52.7002 169.4 52.7002c141.4 0 256 -93.0996 256 -208c0 -49.2002 -21.4004 -94.0996 -56.5996 -129.7z" />
+ <glyph glyph-name="couch" unicode="" horiz-adv-x="640"
+d="M160 224c0 35.2998 -28.7002 64 -64 64h-32c0 53 43 96 96 96h320c53 0 96 -43 96 -96h-32c-35.2998 0 -64 -28.7002 -64 -64v-64h-320v64zM576 256c35.2998 0 64 -28.7002 64 -64c0 -23.5996 -13 -44 -32 -55.0996v-120.9c0 -8.7998 -7.2002 -16 -16 -16h-64
+c-8.7998 0 -16 7.2002 -16 16v16h-384v-16c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16v120.9c-19 11.0996 -32 31.5 -32 55.0996c0 35.2998 28.7002 64 64 64h32c17.7002 0 32 -14.2998 32 -32v-96h384v96c0 17.7002 14.2998 32 32 32h32z" />
+ <glyph glyph-name="donate" unicode=""
+d="M256 32c-114.9 0 -208 93.0996 -208 208s93.0996 208 208 208s208 -93.0996 208 -208s-93.0996 -208 -208 -208zM233.8 350.6c-32.7002 -0.899414 -59 -28.3994 -59.0996 -62.3994c0 -27.7002 18 -52.4004 43.7002 -60.1006l62.2998 -18.6992
+c7.09961 -2.10059 12.0996 -9.40039 12.0996 -17.6006c0 -10.0996 -7.2998 -18.2998 -16.2998 -18.2998h-38.9004c-6.39941 0 -12.3994 1.7002 -17.7998 5.09961c-4.5 2.80078 -10.2002 2.7002 -14 -1l-16.2998 -15.5c-5 -4.7998 -4.40039 -13 1.2002 -17.0996
+c12.5 -9.2998 27.5 -14.5996 43 -15.4004v-17c0 -9.19922 7.39941 -16.5996 16.5996 -16.5996h11.1006c9.19922 0 16.5996 7.40039 16.5996 16.5996v16.8008c32.7002 0.899414 59.0996 28.3994 59.0996 62.3994c0 27.7002 -18 52.4004 -43.6992 60.1006l-62.3008 18.6992
+c-7.09961 2.10059 -12.0996 9.40039 -12.0996 17.6006c0 10.0996 7.2998 18.2998 16.2998 18.2998h38.9004c6.39941 0 12.3994 -1.7002 17.7998 -5.09961c4.5 -2.80078 10.2002 -2.7002 14 1l16.2998 15.5c5 4.7998 4.40039 13 -1.2002 17.0996
+c-12.5 9.2998 -27.5 14.5996 -43 15.4004v17c0 9.19922 -7.39941 16.5996 -16.5996 16.5996h-11.0996c-9.2002 0 -16.6006 -7.40039 -16.6006 -16.5996v-16.8008zM480 96c17.7002 0 32 -14.2998 32 -32v-96c0 -17.7002 -14.2998 -32 -32 -32h-448
+c-17.7002 0 -32 14.2998 -32 32v96c0 17.7002 14.2998 32 32 32h32.4004c19.6992 -26 44.5996 -47.7002 73 -64h-63.8008c-5.2998 0 -9.59961 -3.59961 -9.59961 -8v-16c0 -4.40039 4.2998 -8 9.59961 -8h364.7c5.2998 0 9.60059 3.59961 9.60059 8v16
+c0 4.40039 -4.30078 8 -9.60059 8h-63.7998c28.4004 16.2998 53.4004 38 73 64h32.5z" />
+ <glyph glyph-name="dove" unicode=""
+d="M288 280.8c-50.7998 10.5 -96.5996 36.7998 -130.8 75.1006c11.2002 32.3994 27.7998 61.5996 48.8994 86.5c8.80078 10.5 25.7002 5.19922 27.8008 -8.30078c7 -45.8994 25.8994 -88.8994 54.0996 -125.199v-28.1006zM400 384h112l-32 -64v-160.1
+c0 -88.4004 -71.5996 -159.9 -160 -159.9h-76.9004l-65.1992 -56.0996c-6.10059 -5.30078 -14.1006 -8.2002 -22.1006 -7.90039c-92.7998 3.7998 -135.8 49.4004 -153.2 76.2998c-6 9.2998 -1.19922 21.7002 9.5 24.4004l143.9 36
+c-12.7998 9.59961 -25.7002 20.0996 -38.9004 32.7998c-51 49 -85.0996 115.1 -85.0996 185.9c0 41.3994 9.40039 80.5996 26 115.699c5.7998 12.3008 23.5 11.6006 29 -0.899414c40 -91.2002 128.6 -155.5 233 -161.7v59.4004c0 44.1992 35.7998 80.0996 80 80.0996z
+M400 287.9c8.7998 0 16 7.19922 16 16c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.80078 7.2002 -16 16 -16z" />
+ <glyph glyph-name="hand-holding" unicode="" horiz-adv-x="576"
+d="M565.3 119.9c15.1006 -13.6006 13.9004 -36.8008 -1.2998 -48.9004l-151.2 -121c-11.3994 -9.09961 -25.5 -14 -40 -14h-356.8c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h55.4004l46.5 37.7002c21 17 47.0996 26.2998 74.0996 26.2998h160
+c19.5 0 34.9004 -17.4004 31.5996 -37.4004c-2.59961 -15.6992 -17.3994 -26.5996 -33.2998 -26.5996h-78.2998c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h118.3c14.6006 0 28.7002 4.90039 40 14l92.4004 73.9004c12.3994 10 30.7998 10.6992 42.5996 0z" />
+ <glyph glyph-name="hand-holding-heart" unicode="" horiz-adv-x="576"
+d="M275.3 197.5l-108.899 114.2c-31.6006 33.2002 -29.7002 88.2002 5.59961 118.8c30.7998 26.7002 76.7002 21.9004 104.9 -7.7998l11.0996 -11.6006l11.2002 11.7002c28.2002 29.6006 74.0996 34.4004 104.899 7.7002c35.4004 -30.5996 37.2002 -85.5996 5.60059 -118.8
+l-108.9 -114.2c-7.09961 -7.40039 -18.5 -7.40039 -25.5 0zM565.3 119.9c15.1006 -13.6006 13.9004 -36.8008 -1.2998 -48.9004l-151.2 -121c-11.3994 -9.09961 -25.5 -14 -40 -14h-356.8c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h55.4004l46.5 37.7002
+c21 17 47.0996 26.2998 74.0996 26.2998h160c19.5 0 34.9004 -17.4004 31.5996 -37.4004c-2.59961 -15.6992 -17.3994 -26.5996 -33.2998 -26.5996h-78.2998c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h118.3c14.6006 0 28.7002 4.90039 40 14l92.4004 73.9004
+c12.3994 10 30.7998 10.6992 42.5996 0z" />
+ <glyph glyph-name="hand-holding-usd" unicode="" horiz-adv-x="544"
+d="M257.6 303.7c-22.1992 6.39941 -40 24.7002 -42.8994 47.7002c-4 32 19 59.3994 49.2998 63v17.5996c0 8.7998 7.2002 16 16 16h16c8.7998 0 16 -7.2002 16 -16v-17.7002c11.5 -1.39941 22.2998 -5.2002 31.7998 -11.5c6.2002 -4.09961 6.7998 -13.0996 1.5 -18.3994
+l-17.5 -17.5c-3.7002 -3.7002 -9.2998 -4.2002 -14.0996 -2c-3.2002 1.39941 -6.7002 2.19922 -10.2998 2.19922h-32.8008c-4.59961 0 -8.39941 -3.7998 -8.39941 -8.39941c0 -3.7002 2.5 -7.10059 6.09961 -8.10059l50 -14.2998
+c22.2002 -6.39941 40 -24.7002 42.9004 -47.7002c4 -32 -19 -59.3994 -49.2998 -63v-17.5996c0 -8.7998 -7.2002 -16 -16 -16h-16c-8.80078 0 -16 7.2002 -16 16v17.7002c-11.5 1.39941 -22.3008 5.2002 -31.8008 11.5c-6.19922 4.09961 -6.7998 13.0996 -1.5 18.3994
+l17.5 17.5c3.7002 3.7002 9.30078 4.2002 14.1006 2c3.2002 -1.39941 6.7002 -2.19922 10.2998 -2.19922h32.7998c4.60059 0 8.40039 3.7998 8.40039 8.39941c0 3.7002 -2.5 7.10059 -6.10059 8.10059zM533.9 119.9c14.1992 -13.6006 13.0996 -36.8008 -1.30078 -48.9004
+l-142.8 -121c-10.7998 -9.09961 -24.0996 -14 -37.7998 -14h-336.9c-8.2998 0 -15.0996 7.2002 -15.0996 16v96c0 8.7998 6.7998 16 15.0996 16h52.4004l43.9004 37.7002c19.6992 17 44.3994 26.2998 69.8994 26.2998h151.101c18.2998 0 32.8994 -17.4004 29.7998 -37.4004
+c-2.40039 -15.6992 -16.2998 -26.5996 -31.4004 -26.5996h-73.8994c-8.30078 0 -15.1006 -7.2002 -15.1006 -16s6.7998 -16 15.1006 -16h111.699c13.8008 0 27.1006 4.90039 37.8008 14l87.1992 73.9004c11.8008 10 29.1006 10.6992 40.3008 0z" />
+ <glyph glyph-name="hands" unicode="" horiz-adv-x="640"
+d="M204.8 217.6l57.6006 -76.7998c16.5996 -22.2002 25.5996 -49.0996 25.5996 -76.7998v-112c0 -8.7998 -7.2002 -16 -16 -16h-131.7c-7.2002 0 -13.5 4.7002 -15.2998 11.5996c-2 7.80078 -5.40039 15.2002 -10.4004 21.7002l-104.1 134.3
+c-6.7998 8.5 -10.5 19.1006 -10.5 30v218.4c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32v-148.4l89.7998 -107.8c6 -7.2998 16.9004 -7.7998 23.6006 -1.09961l12.7998 12.7998c5.59961 5.59961 6.2998 14.5 1.5 20.9004l-38.1006 50.7998
+c-10.5996 14.0996 -7.69922 34.2002 6.40039 44.7998s34.2002 7.7002 44.7998 -6.40039zM608 384c17.7002 0 32 -14.2998 32 -32v-218.4c0 -10.8994 -3.7002 -21.5 -10.5 -30l-104.1 -134.3c-5 -6.5 -8.40039 -13.8994 -10.4004 -21.7002
+c-1.7998 -6.89941 -8.2002 -11.5996 -15.2998 -11.5996h-131.7c-8.7998 0 -16 7.2002 -16 16v112c0 27.7002 9 54.5996 25.5996 76.7998l57.6006 76.7998c10.5996 14.1006 30.7002 17 44.7998 6.40039s17 -30.7002 6.40039 -44.7998l-38.1006 -50.7998
+c-4.7998 -6.40039 -4.09961 -15.3008 1.5 -20.9004l12.7998 -12.7998c6.60059 -6.60059 17.6006 -6.10059 23.6006 1.09961l89.7998 107.8v148.4c0 17.7002 14.2998 32 32 32z" />
+ <glyph glyph-name="hands-helping" unicode="" horiz-adv-x="640"
+d="M488 256c13.2998 0 24 -10.7002 24 -24v-48c0 -13.2998 -10.7002 -24 -24 -24h-8v-64c0 -17.7002 -14.2998 -32 -32 -32h-16c0 -35.2998 -28.7002 -64 -64 -64h-136.6l-103.4 -59.7002c-15.2998 -8.7998 -34.9004 -3.59961 -43.7002 11.7002l-80 138.6
+c-8.89941 15.3008 -3.59961 34.9004 11.7002 43.7002l80 46.2002v47.2998c0 22.4004 11.7998 43.2998 31.0996 54.7998l64.9004 39v-121.6c0 -39.7002 32.2998 -72 72 -72s72 32.2998 72 72v56h152zM635.7 293.4c8.7998 -15.3008 3.59961 -34.8008 -11.7002 -43.7002
+l-80 -46.2002v28.5c0 30.9004 -25.0996 56 -56 56h-184v-88c0 -22.0996 -17.9004 -40 -40 -40s-40 17.9004 -40 40v126.3c0 11 5.59961 21.2998 15 27.1006l33.5 20.8994c10.2002 6.2998 21.9004 9.7002 33.9004 9.7002h102.199l103.4 59.7002
+c15.2998 8.7998 34.9004 3.59961 43.7002 -11.7002z" />
+ <glyph glyph-name="parachute-box" unicode=""
+d="M511.9 273c1.09961 -9.2002 -6.80078 -17 -16.1006 -17h-8.7002l-136.8 -151.9c0.700195 -2.69922 1.60059 -5.19922 1.60059 -8.09961v-128c0 -17.7002 -14.3008 -32 -32 -32h-128c-17.7002 0 -32 14.2998 -32 32v128c0 2.90039 0.899414 5.5 1.59961 8.09961
+l-136.7 151.9h-8.7002c-9.19922 0 -17.0996 7.90039 -16 17c9.10059 75.5 78.4004 132.3 158.301 158.7c-36.4004 -39.4004 -62.4004 -100.601 -62.4004 -175.7h-28.0996l116.6 -129.5c2.5 0.599609 4.7998 1.5 7.5 1.5h48v128h-112c0 115.2 68.9004 192 128 192
+s128 -76.7998 128 -192h-112v-128h48c2.7002 0 5 -0.900391 7.5 -1.5l116.6 129.5h-28.0996c0 75.0996 -26 136.3 -62.4004 175.7c79.9004 -26.2998 149.2 -83.1006 158.301 -158.7z" />
+ <glyph glyph-name="people-carry" unicode="" horiz-adv-x="640"
+d="M128 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM512 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM637.7 -20.0996c6.59961 -16.4004 -1.40039 -35 -17.7998 -41.6006
+c-3.90039 -1.59961 -7.90039 -2.2998 -11.9004 -2.2998c-12.7002 0 -24.7002 7.59961 -29.7002 20.0996l-27.7002 69.2002l2 18.2002l41.1006 46.4004zM603.5 189.7c4.59961 -20 -0.799805 -41.2002 -14.4004 -56.7002l-67.1992 -75.9004l-10.1006 -92.5996
+c-1.7998 -16.4004 -15.7002 -28.5 -31.7998 -28.5c-1.2002 0 -2.2998 0.0996094 -3.5 0.200195c-17.5 1.89941 -30.2002 17.7002 -28.2998 35.2998l10.0996 92.7998c1.5 13 6.90039 25.1006 15.6006 35l43.2998 49l-17.6006 70.2998l-6.7998 -20.3994
+c-4.09961 -12.6006 -11.8994 -23.4004 -24.5 -32.6006l-51.0996 -32.5c-4.60059 -2.89941 -12.1006 -4.59961 -17.2002 -5h-160c-5.09961 0.400391 -12.5996 2.10059 -17.2002 5l-51.0996 32.5c-12.6006 9.2002 -20.4004 20.1006 -24.5 32.6006l-6.7998 20.3994
+l-17.6006 -70.2998l43.2998 -49c8.7002 -9.89941 14.1006 -22 15.6006 -35l10.0996 -92.7998c1.90039 -17.5996 -10.7002 -33.4004 -28.2998 -35.2998c-1.2002 -0.100586 -2.2998 -0.200195 -3.5 -0.200195c-16.2002 0 -30 12.2002 -31.7998 28.5l-10.1006 92.5996
+l-67.1992 75.9004c-13.7002 15.5 -19 36.7002 -14.4004 56.7002l18.4004 80.2002c4.59961 20 18.5996 36.7998 37.5 44.8994c18.5 8 38.8994 6.7002 56.0996 -3.2998c22.7002 -13.4004 39.7998 -34.4004 48.0996 -59.4004l11.3008 -33.8994l16.0996 -10.2002v96
+c0 8.7998 7.2002 16 16 16h160c8.7998 0 16 -7.2002 16 -16v-96l16 10.2002l11.2998 33.8994c8.40039 24.9004 25.4004 46 48.1006 59.4004c17.0996 10 37.5996 11.2998 56.0996 3.2998c18.9004 -8.09961 32.9004 -24.8994 37.5 -44.8994zM46.2998 89.9004l41.1006 -46.4004
+l2 -18.2002l-27.7002 -69.2002c-6.5 -16.0996 -24.7998 -24.3994 -41.6006 -17.7998c-16.3994 6.60059 -24.3994 25.2002 -17.7998 41.6006z" />
+ <glyph glyph-name="piggy-bank" unicode="" horiz-adv-x="576"
+d="M560 224c8.7998 0 16 -7.2002 16 -16v-128c0 -8.7998 -7.2002 -16 -16 -16h-48.7002c-9 -11.9004 -19.5 -22.4004 -31.2998 -31.2998v-80.7002c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16v48h-128v-48c0 -8.7998 -7.2002 -16 -16 -16h-64
+c-8.7998 0 -16 7.2002 -16 16v80.7002c-38.5996 29.2002 -64 75.0996 -64 127.3h-40c-33.2998 0 -59.9004 29.2002 -55.5 63.4004c3.59961 28.1992 29 48.5996 57.5 48.5996c3.2998 0 6 -2.7002 6 -6v-20c0 -3.2998 -2.7002 -6 -6 -6h-1
+c-11.5996 0 -22.2998 -7.7998 -24.5 -19.2002c-3 -15.2998 8.7002 -28.7998 23.5 -28.7998h43.2002c14.8994 73 79.3994 128 156.8 128h128c7.90039 0 15.4004 -1.2002 23 -2.2998c17.5996 20.7998 43.5996 34.2998 73 34.2998h32l-18.9004 -75.5
+c15.8008 -14.7998 28.6006 -32.5 37.4004 -52.5h29.5zM432 160c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 352c-16.4004 0 -32.2002 -2.2998 -47.4004 -6.2002c-0.0996094 2.10059 -0.599609 4.10059 -0.599609 6.2002
+c0 53 43 96 96 96s96 -43 96 -96c0 -0.299805 -0.0996094 -0.5 -0.0996094 -0.799805c-5.2002 0.399414 -10.5 0.799805 -15.9004 0.799805h-128z" />
+ <glyph glyph-name="ribbon" unicode="" horiz-adv-x="448"
+d="M6.09961 3.7002l117.2 130l79.2002 -87.9004l-91.7998 -101.899c-8 -8.80078 -21.4004 -10.5 -31.2998 -3.80078l-68.8008 27.9004c-12 8.09961 -14.0996 24.9004 -4.5 35.7002zM441.9 3.7002c9.69922 -10.7998 7.59961 -27.6006 -4.30078 -35.6006l-68.7998 -27.8994
+c-9.89941 -6.7002 -23.2998 -5.10059 -31.2998 3.7998l-248.1 275.3c-48.6006 53.7998 -13 113.5 -11.5 116l43.5996 73.2002c4.2998 7.2002 9.90039 13.2998 16.7998 18c44 29.7002 130.7 27.5996 171.4 0c6.89941 -4.7002 12.5 -10.7998 16.7998 -18l43.7002 -73.5
+c21.8994 -36.9004 17.2998 -83.5996 -11.4004 -115.5l-34.2002 -38l-79.0996 87.7002s52.7002 59 56 64.5996c-15.4004 8.40039 -40.2002 17.9004 -77.5 17.9004s-62.0996 -9.5 -77.5 -17.9004c3.40039 -5.5 295.4 -330.1 295.4 -330.1z" />
+ <glyph glyph-name="route" unicode=""
+d="M416 128c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96h-277.8c13.5 16.2998 31.2998 39.2002 47.2998 64h230.5c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32h-96c-52.9004 0 -96 43.0996 -96 96s43.0996 96 96 96h45.2998
+c-23.0996 32.5996 -45.2998 70.5 -45.2998 96c0 53 43 96 96 96s96 -43 96 -96s-96 -160 -96 -160h-96c-17.5996 0 -32 -14.4004 -32 -32s14.4004 -32 32 -32h96zM416 384c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM96 192
+c53 0 96 -43 96 -96s-96 -160 -96 -160s-96 107 -96 160s43 96 96 96zM96 64c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="seedling" unicode=""
+d="M64 352c123.7 0 224 -100.3 224 -224v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v144c-123.7 0 -224 100.3 -224 224h64zM448 416h64c0 -115.9 -88 -211.1 -200.7 -222.8c-10.7998 40.7002 -31.2998 77.3994 -59 107.6
+c38.2998 68.7002 111.5 115.2 195.7 115.2z" />
+ <glyph glyph-name="sign" unicode=""
+d="M496 384c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-368v-368c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v368h-48c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h48v48c0 8.7998 7.2002 16 16 16h32
+c8.7998 0 16 -7.2002 16 -16v-48h368zM160 64v224h320v-224h-320z" />
+ <glyph glyph-name="smile-wink" unicode="" horiz-adv-x="496"
+d="M0 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM200 240c0 17.7002 -14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32zM358.5 223.5l9.7002 -8.5c8.39941 -7.5 21.5 -0.299805 19.7998 10.7998
+c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-1.7998 -11.2002 11.5 -18.2002 19.7998 -10.7998l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM157.8 122.2c-13.3994 16.2998 -38.0996 -4.10059 -24.5996 -20.4004
+c28.5 -34.2002 70.2998 -53.7998 114.8 -53.7998s86.2998 19.5996 114.8 53.7002c13.5 16.2998 -11 36.7002 -24.5996 20.5c-22.4004 -26.7998 -55.2002 -42.2002 -90.2002 -42.2002s-67.7998 15.2998 -90.2002 42.2002z" />
+ <glyph glyph-name="tape" unicode="" horiz-adv-x="640"
+d="M224 256c35.2998 0 64 -28.7002 64 -64s-28.7002 -64 -64 -64s-64 28.7002 -64 64s28.7002 64 64 64zM624 32c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-400c-123.7 0 -224 100.3 -224 224s100.3 224 224 224s224 -100.3 224 -224
+c0 -62.7002 -25.9004 -119.3 -67.4004 -160h243.4zM224 96c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96z" />
+ <glyph glyph-name="truck-loading" unicode="" horiz-adv-x="640"
+d="M50.2002 72.4004l-49.6006 185.5c-2.2998 8.5 2.80078 17.2998 11.3008 19.5996l77.2998 20.7002l24.7998 -92.7002l61.7998 16.5l-24.7998 92.7002l77.2002 20.7998c8.5 2.2998 17.2998 -2.7998 19.5996 -11.2998l49.7002 -185.5
+c2.2998 -8.5 -2.7998 -17.2998 -11.2998 -19.6006l-216.4 -58c-8.5 -2.2998 -17.2998 2.80078 -19.5996 11.3008zM384 448h256v-400c0 -61.9004 -50.0996 -112 -112 -112c-60.4004 0 -109.2 47.9004 -111.6 107.7l-393.7 -107.4
+c-4.2002 -1.2002 -8.60059 1.2998 -9.7998 5.60059l-12.6006 46.2998c-1.2002 4.2002 1.2998 8.59961 5.60059 9.7998l346.1 94.4004v323.6c0 17.7002 14.2998 32 32 32zM528 0c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
+ <glyph glyph-name="truck-moving" unicode="" horiz-adv-x="640"
+d="M621.3 210.7c12 -12 18.7002 -28.2002 18.7002 -45.2002v-85.5c0 -8.7998 -7.2002 -16 -16 -16h-17.5996c1 -5.2002 1.59961 -10.5 1.59961 -16c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 5.5 0.5 10.7998 1.59961 16h-163.199
+c1 -5.2002 1.59961 -10.5 1.59961 -16c0 -44.2002 -35.7998 -80 -80 -80c-26.2998 0 -49.4004 12.7998 -64 32.4004c-14.5996 -19.5 -37.7002 -32.4004 -64 -32.4004c-44.2002 0 -80 35.7998 -80 80v336c0 17.7002 14.2998 32 32 32h416c17.7002 0 32 -14.2998 32 -32
+v-96.0996h37.5c17 0 33.2998 -6.7002 45.2998 -18.7002zM80 16c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32zM208 16c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32zM480 240v-48
+h92.0996l-43.2998 43.2998c-3 3 -7 4.7002 -11.2998 4.7002h-37.5zM528 16c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32z" />
+ <glyph glyph-name="video-slash" unicode="" horiz-adv-x="640"
+d="M633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.7998 -22.4004l-19.5996 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-178.5 138l-373.3 288.6l-36.5 28.2002c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998
+l78.4004 -60.5996h244.3c26.3994 0 47.7998 -21.4004 47.7998 -47.7998v-178l32 -24.7002v137.2l109.6 75.5996c21.3008 14.6006 50.4004 -0.299805 50.4004 -25.7998v-257c0 -17.4004 -13.7998 -29.7002 -29.2002 -31.0996zM32 47.7998v245.5l365.8 -282.8
+c-8.2002 -6.5 -18.3994 -10.5 -29.5996 -10.5h-288.4c-26.3994 0 -47.7998 21.4004 -47.7998 47.7998z" />
+ <glyph glyph-name="wine-glass" unicode="" horiz-adv-x="288"
+d="M216 -16c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-208c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h40v117.18c-68.4697 15.8906 -118.05 79.9102 -111.4 154.16l15.96 178.11c0.730469 8.24023 7.55078 14.5498 15.7002 14.5498h223.48
+c8.16016 0 14.9697 -6.30957 15.71 -14.5498l15.9502 -178.101c6.64941 -74.25 -42.9307 -138.27 -111.4 -154.159v-117.19h40z" />
+ <glyph glyph-name="user-alt-slash" unicode="" horiz-adv-x="640"
+d="M633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998l135.5 -104.8
+c16 62.1006 71.9004 108.2 139 108.2c79.5 0 144 -64.5 144 -144c0 -54.0996 -30.2002 -100.7 -74.4004 -125.3zM198.4 128h47.3994l248.4 -192h-382.2c-26.5 0 -48 21.5 -48 48v9.59961c0 74.2002 60.2002 134.4 134.4 134.4z" />
+ <glyph glyph-name="user-astronaut" unicode="" horiz-adv-x="448"
+d="M64 224c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h13.5c24.7002 56.5 80.9004 96 146.5 96s121.8 -39.5 146.5 -96h13.5c8.7998 0 16 -7.2002 16 -16v-96c0 -8.7998 -7.2002 -16 -16 -16h-13.5c-24.7002 -56.5 -80.9004 -96 -146.5 -96
+s-121.8 39.5 -146.5 96h-13.5zM104 312v-24c0 -53 43 -96 96 -96h48c53 0 96 43 96 96v24c0 22.0996 -21.5 40 -48 40h-144c-26.5 0 -48 -17.9004 -48 -40zM176 240l-12 36l-36 12l36 12l12 36l12 -36l36 -12l-36 -12zM327.6 126.6c67.5 -7.09961 120.4 -63.5996 120.4 -133
+v-9.59961c0 -26.5 -21.5 -48 -48 -48h-80v64c0 17.7002 -14.2998 32 -32 32h-128c-17.7002 0 -32 -14.2998 -32 -32v-64h-80c-26.5 0 -48 21.5 -48 48v9.59961c0 69.4004 52.9004 125.9 120.4 133c29.8994 -19.2998 65.3994 -30.5996 103.6 -30.5996
+s73.7002 11.2998 103.6 30.5996zM272 0c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16zM176 0c8.7998 0 16 -7.2002 16 -16v-48h-32v48c0 8.7998 7.2002 16 16 16z" />
+ <glyph glyph-name="user-check" unicode="" horiz-adv-x="640"
+d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996
+c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992zM636.6 288.4c4.60059 -4.60059 4.5 -12.1006 -0.0996094 -16.8008l-141.3 -140.199c-4.7002 -4.60059 -12.2002 -4.60059 -16.7998 0.0996094
+l-81.7002 82.2998c-4.60059 4.7002 -4.60059 12.2002 0.0996094 16.7998l28.1006 27.9004c4.69922 4.59961 12.1992 4.59961 16.7998 -0.0996094l45.5 -45.8008l104.8 104c4.7002 4.60059 12.2002 4.60059 16.7998 -0.0996094z" />
+ <glyph glyph-name="user-clock" unicode="" horiz-adv-x="640"
+d="M496 224c79.5996 0 144 -64.4004 144 -144s-64.4004 -144 -144 -144s-144 64.4004 -144 144s64.4004 144 144 144zM560 73.7002v12.5996c0 5.2998 -4.40039 9.7002 -9.7002 9.7002h-38.2998v54.2998c0 5.2998 -4.40039 9.7002 -9.7002 9.7002h-12.5996
+c-5.2998 0 -9.7002 -4.40039 -9.7002 -9.7002v-76.5996c0 -5.2998 4.40039 -9.7002 9.7002 -9.7002h60.5996c5.2998 0 9.7002 4.40039 9.7002 9.7002zM320 80c0 -59.5 29.7998 -112.1 75.0996 -144h-347.1c-26.5 0 -48 21.5 -48 48v41.5996
+c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992c8.40039 0 16.6006 -1 24.6006 -2.5c-11.5 -23.4004 -18.2002 -49.7002 -18.2002 -77.5zM224 192c-70.7002 0 -128 57.2998 -128 128
+s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128z" />
+ <glyph glyph-name="user-cog" unicode="" horiz-adv-x="640"
+d="M610.5 74.7002l25.7998 -14.9004c2.90039 -1.7002 4.2998 -5.2002 3.2998 -8.5c-6.69922 -21.5996 -18.1992 -41.2002 -33.1992 -57.3994c-2.30078 -2.5 -6.10059 -3.10059 -9 -1.40039l-25.8008 14.9004c-10.8994 -9.30078 -23.3994 -16.5 -36.8994 -21.3008v-29.7998
+c0 -3.39941 -2.40039 -6.39941 -5.7002 -7.09961c-21.2002 -4.7998 -43.9004 -5 -66.2002 0c-3.2998 0.700195 -5.7002 3.7002 -5.7002 7.09961v29.7998c-13.5 4.80078 -26 12 -36.8994 21.3008l-25.7998 -14.9004c-3 -1.7002 -6.7002 -1.09961 -9 1.40039
+c-15 16.2998 -26.5 35.7998 -33.2002 57.3994c-1 3.2998 0.299805 6.7998 3.2998 8.5l25.7998 14.9004c-2.59961 14.0996 -2.59961 28.5 0 42.5996l-25.7998 14.9004c-2.90039 1.7002 -4.2998 5.2002 -3.2998 8.5c6.7002 21.5996 18.2002 41.2002 33.2002 57.3994
+c2.2998 2.5 6.09961 3.10059 9 1.40039l25.7998 -14.9004c10.8994 9.30078 23.3994 16.5 36.8994 21.3008v29.7998c0 3.39941 2.40039 6.39941 5.7002 7.09961c21.2002 4.7998 43.9004 5 66.2002 0c3.2998 -0.700195 5.7002 -3.7002 5.7002 -7.09961v-29.7998
+c13.5 -4.80078 26 -12 36.8994 -21.3008l25.8008 14.9004c3 1.7002 6.69922 1.09961 9 -1.40039c15 -16.1992 26.5 -35.7998 33.1992 -57.3994c1 -3.2998 -0.299805 -6.7998 -3.2998 -8.5l-25.7998 -14.9004c2.59961 -14.0996 2.59961 -28.5 0 -42.5996zM496 47.5
+c26.7998 0 48.5 21.7998 48.5 48.5s-21.7998 48.5 -48.5 48.5s-48.5 -21.7998 -48.5 -48.5s21.7002 -48.5 48.5 -48.5zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM425.2 -34.5v-9.2002
+c0 -4.09961 0.799805 -8 2 -11.7998c-7.7002 -5.2998 -17.1006 -8.5 -27.2002 -8.5h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992
+c3.90039 0 7.60059 -0.900391 11.4004 -1.2002c-1 -2.89941 -2.2998 -5.7998 -3.2002 -8.7002c-5.5 -17.6992 1.90039 -36.5 17.9004 -45.6992l7.89941 -4.60059c-0.0996094 -2.59961 -0.0996094 -5.2002 0 -7.7998l-7.89941 -4.59961
+c-16 -9.30078 -23.4004 -28 -17.9004 -45.7002c7.90039 -25.7002 21.9004 -49.7998 40.2002 -69.6006c7.5 -8 18 -12.5996 28.9004 -12.5996c6.7998 0 13.5996 1.90039 19.5996 5.2998l7.90039 4.60059c2.19922 -1.30078 4.5 -2.7002 6.7998 -3.90039z" />
+ <glyph glyph-name="user-edit" unicode="" horiz-adv-x="640"
+d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM313.6 160c39.9004 0 75.4004 -17.7998 99.9004 -45.5l-77.2998 -77.2998l-7.90039 -7.90039l-1.2002 -11.0996l-6.7998 -60.9004
+c-0.799805 -7.2998 0.200195 -14.5 2.60059 -21.2998h-274.9c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992zM358.9 14.7002l137.899 137.8l71.7002 -71.7002
+l-137.9 -137.899l-60.8994 -6.80078c-10.1006 -1.19922 -18.7002 7.40039 -17.6006 17.6006zM633 179.1c9.2998 -9.39941 9.2998 -24.5 0 -33.8994l-41.7998 -41.7998l-71.7998 71.6992l4.09961 4.10059l37.7998 37.7998c9.2998 9.2998 24.5 9.2998 33.7998 0z" />
+ <glyph glyph-name="user-friends" unicode="" horiz-adv-x="640"
+d="M192 192c-61.9004 0 -112 50.0996 -112 112s50.0996 112 112 112s112 -50.0996 112 -112s-50.0996 -112 -112 -112zM268.8 160c63.6006 0 115.2 -51.5996 115.2 -115.2v-28.7998c0 -26.5 -21.5 -48 -48 -48h-288c-26.5 0 -48 21.5 -48 48v28.7998
+c0 63.6006 51.5996 115.2 115.2 115.2h8.2998c20.9004 -10 43.9004 -16 68.5 -16s47.7002 6 68.5 16h8.2998zM480 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM528 160c61.9004 0 112 -50.0996 112 -112c0 -26.5 -21.5 -48 -48 -48h-176.6
+c0.0996094 2.09961 0.599609 4.2002 0.599609 6.40039v38.3994c0 38.6006 -15.2998 73.5 -39.7002 99.7998c16.5 9.5 35.2998 15.4004 55.7002 15.4004h3.7998c13.9004 -4.7998 28.6006 -8 44.2002 -8s30.2998 3.2002 44.2002 8h3.7998z" />
+ <glyph glyph-name="user-graduate" unicode="" horiz-adv-x="448"
+d="M319.4 127.4c71.5 -3.10059 128.6 -61.6006 128.6 -133.801v-9.59961c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v9.59961c0 72.2002 57.0996 130.7 128.6 133.801l95.4004 -95.4004zM13.5996 368.2c-18.0996 4.39941 -18.0996 27.2002 0 31.5996
+l190.601 45.9004c13 3.09961 26.7002 3.09961 39.7002 0l190.399 -46c18.2002 -4.40039 18.2002 -27.1006 0 -31.5l-96.2998 -23.2002c8.7002 -17.2002 14 -36.4004 14 -57c0 -70.7002 -57.2998 -128 -128 -128s-128 57.2998 -128 128c0 20.5996 5.40039 39.7998 14 57
+l-66 15.9004v-52.6006c7 -4.2002 12 -11.5 12 -20.2998c0 -8.40039 -4.59961 -15.4004 -11.0996 -19.7002l15.5996 -62.2998c1.7002 -6.90039 -2.09961 -14 -7.59961 -14h-41.8008c-5.5 0 -9.2998 7.09961 -7.59961 14l15.5996 62.2998
+c-6.5 4.2998 -11.0996 11.2998 -11.0996 19.7002c0 8.7998 5 16.0996 12 20.2998v58.4004z" />
+ <glyph glyph-name="user-lock" unicode="" horiz-adv-x="640"
+d="M224 192c-70.6562 0 -128 57.3438 -128 128s57.3438 128 128 128s128 -57.3438 128 -128s-57.3438 -128 -128 -128zM320 128v-160c0.0644531 -9.49707 4.05176 -23.833 8.90039 -32h-280.9c-26.4961 0 -48 21.5039 -48 48v41.5996
+c0.0166016 74.1729 60.2275 134.384 134.4 134.4h16.6992c19.1514 -8.83203 51.8105 -16 72.9004 -16s53.749 7.16797 72.9004 16h16.6992c5 0 9.7002 -1 14.5 -1.5c-4.41016 -7.84082 -8.03906 -21.5049 -8.09961 -30.5zM608 160c17.6641 0 32 -14.3359 32 -32v-160
+c0 -17.6641 -14.3359 -32 -32 -32h-224c-17.6641 0 -32 14.3359 -32 32v160c0 17.6641 14.3359 32 32 32h32v80c0 44.1602 35.8398 80 80 80s80 -35.8398 80 -80v-80h32zM496 16c17.6641 0 32 14.3359 32 32s-14.3359 32 -32 32s-32 -14.3359 -32 -32s14.3359 -32 32 -32z
+M528 160v80c0 17.6641 -14.3359 32 -32 32s-32 -14.3359 -32 -32v-80h64z" />
+ <glyph glyph-name="user-minus" unicode="" horiz-adv-x="640"
+d="M624 240c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-192c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h192zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128z
+M313.6 160c74.2002 0 134.4 -60.2002 134.4 -134.4v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992z" />
+ <glyph glyph-name="user-ninja" unicode="" horiz-adv-x="448"
+d="M325.4 158.8c68.5996 -6.09961 122.6 -63 122.6 -133.2v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 70.2002 54 127.101 122.6 133.2l101.4 -101.399zM32 256c0 33.4004 17.0996 62.7998 43.0996 80
+c-26 17.2002 -43.0996 46.5996 -43.0996 80c32 0 60.0996 -15.7998 77.5 -39.7998c20.9004 42.3994 64.0996 71.7998 114.5 71.7998c70.7002 0 128 -57.2998 128 -128s-57.2998 -128 -128 -128c-58.7998 0 -107.7 39.7998 -122.8 93.7002
+c-17.4004 -18.2002 -41.9004 -29.7002 -69.2002 -29.7002zM176 352c-17.7002 0 -32 -14.2998 -32 -32h160c0 17.7002 -14.2998 32 -32 32h-96z" />
+ <glyph glyph-name="user-shield" unicode="" horiz-adv-x="640"
+d="M622.3 176.9c10.7002 -4.2002 17.7002 -14 17.7002 -24.9004c0 -124.5 -81.5996 -193.9 -132.9 -213.9c-4.19922 -1.59961 -12.5996 -3.69922 -22.1992 0c-64.2002 25.1006 -132.9 102.301 -132.9 213.9c0 10.9004 7 20.7002 17.7002 24.9004l115.2 45
+c9.59961 3.69922 18.0996 1.59961 22.1992 0zM496 -14.4004c34.5996 16.4004 89.9004 64.7002 95.5 151.801l-95.5 37.2998v-189.101zM224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM320 152
+c0 -95.2998 45.2002 -169.1 99.2002 -212c-5.90039 -2.5 -12.4004 -4 -19.2002 -4h-352c-26.5 0 -48 21.5 -48 48v41.5996c0 74.2002 60.2002 134.4 134.4 134.4h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h16.6992
+c2.60059 0 5 -0.700195 7.5 -0.799805c-0.299805 -2.40039 -1.09961 -4.7002 -1.09961 -7.2002z" />
+ <glyph glyph-name="user-slash" unicode="" horiz-adv-x="640"
+d="M633.8 -10.0996c7 -5.40039 8.2998 -15.5 2.90039 -22.3008l-19.6006 -25.2998c-5.5 -7 -15.5 -8.2002 -22.5 -2.7998l-588.399 454.7c-7 5.39941 -8.2002 15.3994 -2.7998 22.3994l19.5996 25.2002c5.5 7 15.5 8.2002 22.5 2.7998l147.6 -114
+c5.40039 65.6006 59.8008 117.4 126.9 117.4c70.7002 0 128 -57.2998 128 -128c0 -55.7998 -35.9004 -102.7 -85.7002 -120.3zM96 25.5996c0 66.4004 48.2002 121.101 111.4 132.101l286.8 -221.7h-350.2c-26.5 0 -48 21.5 -48 48v41.5996z" />
+ <glyph glyph-name="user-tag" unicode="" horiz-adv-x="640"
+d="M630.6 83.0996c12.5 -12.5 12.5 -32.6992 -0.0996094 -45.1992l-92.5 -92.5c-12.5 -12.5 -32.7998 -12.5 -45.2998 0l-90.2998 90.1992c-12 12 -18.7002 28.2002 -18.7002 45.2002v79.2002c0 17.7002 14.2998 32 32 32h79.2998c17 0 33.2998 -6.7002 45.2998 -18.7002z
+M447.8 104.1c13.2998 0 24 10.8008 24 24c0 13.3008 -10.7002 24 -24 24s-24 -10.6992 -24 -24c0 -13.2998 10.7002 -24 24 -24zM224 192.1c-70.7002 0 -128 57.3008 -128 127.9c0 70.7002 57.2998 128 128 128s128 -57.2998 128 -127.9c0 -70.6992 -57.2998 -128 -128 -128
+zM351.8 80.9004c0 -25.7002 10 -49.8008 28.1006 -67.9004l58 -58c-8.80078 -11.4004 -22.4004 -18.9004 -37.9004 -18.9004h-352c-26.5 0 -48 21.5 -48 48v41.6006c0 74.2002 60.2002 134.399 134.4 134.5h16.6992c22.3008 -10.2002 46.9004 -16 72.9004 -16
+s50.7002 5.7998 72.9004 16h16.6992c13.3008 0 26 -2.60059 38.2002 -6.2002v-73.0996z" />
+ <glyph glyph-name="user-tie" unicode="" horiz-adv-x="448"
+d="M224 192c-70.7002 0 -128 57.2998 -128 128s57.2998 128 128 128s128 -57.2998 128 -128s-57.2998 -128 -128 -128zM319.8 159.4c71.2998 -3.40039 128.2 -61.7002 128.2 -133.801v-41.5996c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v41.5996
+c0 72.1006 56.9004 130.4 128.2 133.801l47.7998 -191.4l32 136l-32 56h96l-32 -56l32 -136z" />
+ <glyph glyph-name="users-cog" unicode="" horiz-adv-x="640"
+d="M610.5 106.7l25.7998 -14.9004c2.90039 -1.7002 4.2998 -5.2002 3.2998 -8.5c-6.69922 -21.5996 -18.1992 -41.2002 -33.1992 -57.3994c-2.30078 -2.5 -6.10059 -3.10059 -9 -1.40039l-25.8008 14.9004c-10.8994 -9.30078 -23.3994 -16.5 -36.8994 -21.3008v-29.7998
+c0 -3.39941 -2.40039 -6.39941 -5.7002 -7.09961c-21.2002 -4.7998 -43.9004 -5 -66.2002 0c-3.2998 0.700195 -5.7002 3.7002 -5.7002 7.09961v29.7998c-13.5 4.80078 -26 12 -36.8994 21.3008l-25.7998 -14.9004c-3 -1.7002 -6.7002 -1.09961 -9 1.40039
+c-15 16.2998 -26.5 35.7998 -33.2002 57.3994c-1 3.2998 0.299805 6.7998 3.2998 8.5l25.7998 14.9004c-2.59961 14.0996 -2.59961 28.5 0 42.5996l-25.7998 14.9004c-2.90039 1.7002 -4.2998 5.2002 -3.2998 8.5c6.7002 21.5996 18.2002 41.2002 33.2002 57.3994
+c2.2998 2.5 6.09961 3.10059 9 1.40039l25.7998 -14.9004c10.8994 9.30078 23.3994 16.5 36.8994 21.3008v29.7998c0 3.39941 2.40039 6.39941 5.7002 7.09961c21.2002 4.7998 43.9004 5 66.2002 0c3.2998 -0.700195 5.7002 -3.7002 5.7002 -7.09961v-29.7998
+c13.5 -4.80078 26 -12 36.8994 -21.3008l25.8008 14.9004c3 1.7002 6.69922 1.09961 9 -1.40039c15 -16.1992 26.5 -35.7998 33.1992 -57.3994c1 -3.2998 -0.299805 -6.7998 -3.2998 -8.5l-25.7998 -14.9004c2.59961 -14.0996 2.59961 -28.5 0 -42.5996zM496 79.5
+c26.7998 0 48.5 21.7998 48.5 48.5s-21.7998 48.5 -48.5 48.5s-48.5 -21.7998 -48.5 -48.5s21.7002 -48.5 48.5 -48.5zM96 224c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM320 192c-61.9004 0 -112 50.0996 -112 112
+s50 111.9 111.9 111.9c61.8994 0 112 -50.1006 112 -112c0 -17.2002 -4.2002 -33.4004 -11.2002 -48c-0.799805 -0.5 -1.60059 -0.900391 -2.40039 -1.40039l-7.89941 4.59961c-5.90039 3.5 -12.7002 5.30078 -19.6006 5.30078c-11 0 -21.5 -4.60059 -28.8994 -12.6006
+c-15.8008 -17.0996 -28 -37.5 -36.3008 -59.2002c-1.89941 -0.0996094 -3.69922 -0.599609 -5.59961 -0.599609zM425.2 -2.5v-9.2002c0 -7.5 2.5 -14.2998 6.2002 -20.2998h-255.4c-26.5 0 -48 21.5 -48 48v28.7998c0 63.6006 51.5996 115.2 115.3 115.2h8.2998
+c20.9004 -10 43.9004 -16 68.5 -16c3.30078 0 6.5 0.400391 9.80078 0.599609c2.7998 -3.09961 6 -5.89941 9.7998 -8.09961l7.89941 -4.59961c-0.0996094 -2.60059 -0.0996094 -5.2002 0 -7.80078c-0.899414 -0.599609 -36.5 -15.7998 -25.7998 -50.2998
+c7.90039 -25.7002 21.9004 -49.7998 40.2002 -69.5996c7.5 -8 18 -12.6006 28.9004 -12.6006c12.1992 0 19.2998 5 27.5 9.80078c2.19922 -1.30078 4.5 -2.7002 6.7998 -3.90039zM173.1 173.4c-40.2998 -22.1006 -68.8994 -62 -75.1992 -109.4h-65.9004
+c-17.7002 0 -32 14.2998 -32 32v32c0 35.2998 28.7002 64 64 64h64c17.5996 0 33.5 -7.09961 45.0996 -18.5996z" />
+ <glyph glyph-name="balance-scale-left" unicode="" horiz-adv-x="640"
+d="M528 0c8.83984 0 16 -7.16016 16.0098 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-224c-8.83984 0 -16 7.16016 -16 16v342.75c-4.55957 2 -8.91992 4.34961 -12.9902 7.12012l-142.05 -47.6299c-8.37988 -2.81055 -17.4502 1.7002 -20.2598 10.0801l-10.1699 30.3398
+c-2.80957 8.37988 1.7002 17.4502 10.0801 20.2598l128.39 43.0498c-0.419922 3.32031 -1.00977 6.60059 -1.00977 10.0303c0 44.1797 35.8203 80 80 80c29.6904 0 55.2998 -16.3604 69.1104 -40.3701l117.92 39.5303c8.37988 2.80957 17.4502 -1.7002 20.2598 -10.0801
+l10.1699 -30.3398c2.80957 -8.37988 -1.7002 -17.4502 -10.0801 -20.2598l-132 -44.2607c-7.28027 -21.25 -22.96 -38.5293 -43.3799 -47.4697v-294.75h176zM639.98 144c0 -44.1797 -57.29 -80 -127.98 -80s-128 35.8203 -128 80h0.0195312
+c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51zM440 160h144l-72 144zM170.93 197.51c86.3906 -172.779 85.0508 -165.33 85.0508 -181.51h0.0195312c0 -44.1797 -57.3096 -80 -128 -80
+s-128 35.8203 -128 80h0.0195312c0 15.6699 -2.0791 7.25 85.04 181.51c17.6807 35.3604 68.2207 35.29 85.8701 0zM56 32h144l-72 144z" />
+ <glyph glyph-name="balance-scale-right" unicode="" horiz-adv-x="640"
+d="M96 -16c0 8.83984 7.16016 16 16 16h175.99v294.76c-20.4199 8.93066 -36.1006 26.2207 -43.3799 47.4707l-132 44.2598c-8.37012 2.80957 -12.8906 11.8799 -10.0801 20.2598l10.1699 30.3398c2.80957 8.37012 11.8799 12.8906 20.2598 10.0801l117.93 -39.54
+c13.8105 24.0098 39.4199 40.3701 69.1104 40.3701c44.1797 0 80 -35.8203 80 -80c0 -3.42969 -0.589844 -6.70996 -1.00977 -10.0303l128.399 -43.0498c8.37012 -2.80957 12.8906 -11.8799 10.0801 -20.2598l-10.1699 -30.3398
+c-2.80957 -8.37012 -11.8799 -12.8906 -20.2598 -10.0801l-142.05 47.6299c-4.07031 -2.77051 -8.43066 -5.12012 -12.9902 -7.12012v-342.75c0 -8.83984 -7.16016 -16 -16 -16h-224c-8.83984 0 -16 7.16016 -16 16v32zM0 144c0 16.1797 -1.32031 8.73047 85.0596 181.51
+c17.6504 35.29 68.1904 35.3604 85.8701 0c87.1299 -174.26 85.0508 -165.84 85.0508 -181.51h0.0195312c0 -44.1797 -57.3096 -80 -128 -80s-128 35.8203 -128 80zM56 160h144l-72 144zM384.02 16c0 16.1797 -1.33984 8.73047 85.04 181.51
+c17.6504 35.29 68.1904 35.3604 85.8701 0c87.1299 -174.26 85.0508 -165.84 85.0508 -181.51h0.0195312c0 -44.1797 -57.3096 -80 -128 -80s-128 35.8203 -128 80h0.0195312zM440 32h144l-72 144z" />
+ <glyph glyph-name="blender" unicode=""
+d="M416 64c35.3496 0 64 -28.6504 64 -64v-32c0 -17.6699 -14.3301 -32 -32 -32h-320c-17.6699 0 -32 14.3301 -32 32v32c0 35.3496 28.6504 64 64 64h256zM288 -32c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM328 384
+c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h157.82l-17.46 -64h-140.36c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h131.64l-17.46 -64h-114.18c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h105.46l-17.46 -64
+h-256l-8.73047 96h-103.27c-26.5098 0 -48 21.4902 -48 48v160c0 26.5098 21.4902 48 48 48h464l-17.46 -64h-166.54zM64 256h81.46l-11.6396 128h-69.8203v-128z" />
+ <glyph glyph-name="book-open" unicode="" horiz-adv-x="576"
+d="M542.22 415.95c18.4199 1.04004 33.7803 -12.9902 33.7705 -30.7002v-337.84c0 -16.2305 -13.1299 -29.7705 -30.0205 -30.6602c-49.4697 -2.59961 -149.52 -12.0996 -218.7 -46.9199c-10.6494 -5.36035 -23.2793 1.93945 -23.2793 13.4902v363.87
+c0 5.2793 2.62988 10.3291 7.26953 13.1699c67.2402 41.1592 176.16 52.4795 230.96 55.5898zM264.73 360.36c4.64941 -2.85059 7.26953 -7.7002 7.26953 -12.9902v-364.12c0 -11.5195 -12.5898 -18.8096 -23.21 -13.46c-69.1797 34.8398 -169.28 44.3496 -218.771 46.9502
+c-16.8896 0.879883 -30.0195 14.4199 -30.0195 30.6602v337.85c0 17.71 15.3604 31.7402 33.7803 30.7002c54.7998 -3.12012 163.72 -14.4307 230.95 -55.5898z" />
+ <glyph glyph-name="broadcast-tower" unicode="" horiz-adv-x="640"
+d="M150.94 256c-7.01074 0 -13.46 4.5 -15.4004 11.2402c-4.90039 16.9697 -7.54004 34.6396 -7.54004 52.7598s2.63965 35.79 7.53027 52.7695c1.9502 6.74023 8.39941 11.2305 15.4102 11.2305h33.7295c11.0098 0 18.6201 -10.8301 14.8604 -21.1797
+c-4.93066 -13.5801 -7.5498 -27.9805 -7.5498 -42.8203s2.61914 -29.2402 7.5498 -42.8203c3.75 -10.3496 -3.85059 -21.1797 -14.8604 -21.1797h-33.7295zM89.9199 424.66c-16.54 -31.1406 -49.6104 -115.97 0.169922 -209.29
+c5.66016 -10.6299 -1.92969 -23.3701 -13.9502 -23.3701h-34.8398c-6.18945 0 -11.9902 3.50977 -14.6094 9.13965c-23.5703 50.5303 -26.6904 94.1104 -26.6904 118.86c0 42.3496 9.40039 82.46 25.8896 118.69c2.60059 5.71973 8.4707 9.30957 14.7402 9.30957h35.3301
+c12.0098 0 19.5996 -12.7197 13.96 -23.3398zM614.06 438.71c16.5205 -36.2295 25.9404 -76.3496 25.9404 -118.71s-9.42969 -82.4805 -25.96 -118.71c-2.59961 -5.70996 -8.45996 -9.29004 -14.7305 -9.29004h-35.2295c-12.1104 0 -19.6299 12.8398 -13.9102 23.5195
+c48.1396 89.8105 17.9902 174.94 -0.280273 209.23c-5.63965 10.5898 2.04004 23.25 14.0205 23.25h35.4199c6.26953 0 12.1299 -3.58008 14.7295 -9.29004zM489.06 384c7.01074 0 13.46 -4.49023 15.4004 -11.2402c4.90039 -16.9697 7.54004 -34.6396 7.54004 -52.7598
+s-2.62988 -35.79 -7.53027 -52.7598c-1.9502 -6.75 -8.38965 -11.2402 -15.4102 -11.2402h-33.7295c-11.0098 0 -18.6201 10.8301 -14.8604 21.1797c4.93066 13.5801 7.5498 27.9805 7.5498 42.8203s-2.61914 29.2402 -7.5498 42.8203
+c-3.75 10.3496 3.85059 21.1797 14.8604 21.1797h33.7295zM372.76 283.88l130.5 -313.41c3.39062 -8.14941 -0.459961 -17.5195 -8.60938 -20.9199l-29.5107 -12.3096c-8.14941 -3.40039 -17.5098 0.450195 -20.9092 8.60938l-49.2002 118.15h-150.07l-49.1904 -118.15
+c-3.38965 -8.14941 -12.7598 -12.0098 -20.9092 -8.60938l-29.5107 12.3096c-8.14941 3.40039 -12.0098 12.7705 -8.60938 20.9199l130.5 313.41c-7.0498 10.29 -11.2002 22.71 -11.2002 36.1201c0 35.3496 28.6396 64 63.96 64c35.3301 0 63.96 -28.6504 63.96 -64
+c0 -13.4102 -4.15039 -25.8301 -11.2002 -36.1201zM271.62 128h96.7598l-48.3799 116.19z" />
+ <glyph glyph-name="broom" unicode="" horiz-adv-x="640"
+d="M256.47 231.23l86.7305 -109.181s-16.6006 -102.359 -76.5703 -150.12c-59.9697 -47.7793 -266.63 -34.1201 -266.63 -34.1201s3.7998 23.1406 11 55.4307l94.6201 112.17c3.96973 4.7002 -0.870117 11.6201 -6.65039 9.5l-60.3994 -22.0898
+c14.4395 41.6602 32.7197 80.04 54.5996 97.4697c59.9697 47.7598 163.3 40.9404 163.3 40.9404zM636.53 416.97c5.48926 -6.91016 4.33984 -16.96 -2.5498 -22.4395l-232.48 -177.8l34.0898 -42.9209c5.08008 -6.39941 1.66016 -15.9092 -6.33984 -17.5996
+l-58.7998 -12.4502l-86.7305 109.181l25.3301 54.5498c3.4502 7.41992 13.5 8.62012 18.5898 2.20996l34.1406 -42.9697l232.479 177.8c6.89062 5.48926 16.9199 4.33984 22.4102 -2.56055z" />
+ <glyph glyph-name="chalkboard" unicode="" horiz-adv-x="640"
+d="M96 384v-352h-64v376c0 22.0596 17.9404 40 40 40h496c22.0596 0 40 -17.9404 40 -40v-376h-64v352h-448zM624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h272v64h192v-64
+h144z" />
+ <glyph glyph-name="chalkboard-teacher" unicode="" horiz-adv-x="640"
+d="M208 96c62.0596 0 112.33 -50.4805 112 -112.62c-0.139648 -26.2598 -21.7305 -47.3799 -48 -47.3799h-224c-26.2695 0 -47.8604 21.1201 -48 47.3799c-0.330078 62.1396 49.9404 112.62 112 112.62c2.38965 0 4.76953 -0.349609 7.0498 -1.08984
+c12.9697 -4.20996 26.6006 -6.91016 40.9502 -6.91016s27.9805 2.7002 40.9404 6.91016c2.2793 0.740234 4.66992 1.08984 7.05957 1.08984zM160 128c-53.0195 0 -96 42.9805 -96 96s42.9805 96 96 96s96 -42.9805 96 -96s-42.9805 -96 -96 -96zM592 448
+c26.4697 0 48 -22.25 48 -49.5898v-316.82c0 -27.3398 -21.5303 -49.5898 -48 -49.5898h-244.55c-6.57031 25.2695 -20.5898 47.3096 -39.6904 64h76.2402v64h128v-64h64v288h-352v-49.7998c-18.9004 11.0195 -40.5801 17.7998 -64 17.7998v46.4102
+c0 27.3398 21.5303 49.5898 48 49.5898h384z" />
+ <glyph glyph-name="church" unicode="" horiz-adv-x="640"
+d="M464.46 201.32c9.63965 -5.78027 15.54 -16.2002 15.54 -27.4404v-237.88h-96v96c0 35.3496 -28.6504 64 -64 64s-64 -28.6504 -64 -64v-96h-96v237.88c0 10.0029 6.96191 22.2959 15.54 27.4404l112.46 67.4795v51.2002h-48c-8.83984 0 -16 7.16016 -16 16v32
+c0 8.83984 7.16016 16 16 16h48v48c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-48h48c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-48v-51.2002zM0 52.04c0.00195312 11.6455 8.68945 24.8252 19.3896 29.4199l108.61 46.54
+v-192h-112c-8.83984 0 -16 7.16016 -16 16v100.04zM620.61 81.46c11.7598 -5.0498 19.3896 -16.6201 19.3896 -29.4199v-100.04c0 -8.83984 -7.16016 -16 -16 -16h-112v192z" />
+ <glyph glyph-name="coins" unicode=""
+d="M0 42.7002c41.2998 -29.1006 116.8 -42.7002 192 -42.7002s150.7 13.5996 192 42.7002v-42.7002c0 -35.2998 -86 -64 -192 -64s-192 28.7002 -192 64v42.7002zM320 320c-106 0 -192 28.7002 -192 64s86 64 192 64s192 -28.7002 192 -64s-86 -64 -192 -64zM0 147.6
+c41.2998 -34 116.9 -51.5996 192 -51.5996s150.7 17.5996 192 51.5996v-51.5996c0 -35.2998 -86 -64 -192 -64s-192 28.7002 -192 64v51.5996zM416 136.6v63.6006c38.7002 6.89941 72.7998 18.0996 96 34.5v-42.7002c0 -23.7002 -38.7002 -44.2998 -96 -55.4004zM192 288
+c106 0 192 -35.7998 192 -80s-86 -80 -192 -80s-192 35.7998 -192 80s86 80 192 80zM411.3 231.7c-8.7998 23.7002 -30.5 42.8994 -60 57.2002c64.2002 3.19922 125.2 16.6992 160.7 41.7998v-42.7002c0 -24.2998 -40.7002 -45.5 -100.7 -56.2998z" />
+ <glyph glyph-name="compact-disc" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM88 192c0 88.2002 71.7998 160 160 160v32c-105.9 0 -192 -86.0996 -192 -192h32zM248 96c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM248 224
+c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32z" />
+ <glyph glyph-name="crow" unicode="" horiz-adv-x="640"
+d="M544 416c53.0195 0 96 -28.6504 96 -64l-96 -16v-80c0 -87.2598 -58.2598 -160.8 -137.97 -184.14l41.2393 -111.53c2.27051 -6.23047 -0.939453 -13.1104 -7.16992 -15.3799l-22.5498 -8.20996c-6.22949 -2.27051 -13.1094 0.939453 -15.3799 7.16992l-44.5098 120.38
+c-1.90039 -0.0595703 -3.75 -0.290039 -5.66016 -0.290039h-39.0596l38.3291 -103.68c2.27051 -6.23047 -0.939453 -13.1104 -7.16992 -15.3799l-22.5498 -8.20996c-6.22949 -2.27051 -13.1094 0.939453 -15.3799 7.16992l-44.4102 120.1h-96.4902l-121.539 -60.7695
+c-20.0908 -10.04 -43.7305 4.56934 -43.7305 27.0293c0.00195312 8.33984 5.41797 19.168 12.0898 24.1699l371.91 292.59v20.9805c0 44.1797 35.8203 80 80 80c26.0898 0 49.04 -12.6797 63.6396 -32h16.3604zM464 344c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
+s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
+ <glyph glyph-name="crown" unicode="" horiz-adv-x="640"
+d="M528 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-416c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h416zM592 320c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48c-2.59961 0 -5.2002 0.400391 -7.7002 0.799805l-72.2998 -192.8h-384
+l-72.2998 192.8c-2.5 -0.399414 -5.10059 -0.799805 -7.7002 -0.799805c-26.5 0 -48 21.5 -48 48s21.5996 48 48.0996 48s48 -21.5 48 -48c0 -7.09961 -1.69922 -13.7998 -4.39941 -19.7998l72.2998 -43.4004c15.2998 -9.2002 35.2998 -4 44.2002 11.6006l81.5 142.6
+c-10.7002 8.7998 -17.7002 22 -17.7002 37c0 26.5 21.5 48 48 48s48 -21.5 48 -48c0 -15 -7 -28.2002 -17.7002 -37l81.5 -142.6c8.90039 -15.6006 28.7998 -20.8008 44.2002 -11.6006l72.4004 43.4004c-2.80078 6.09961 -4.40039 12.7002 -4.40039 19.7998
+c0 26.5 21.5 48 48 48z" />
+ <glyph glyph-name="dice" unicode="" horiz-adv-x="640"
+d="M592 256c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v46.4199l136.26 136.26c24.1201 24.1201 29.6904 59.7305 17 89.3203h118.74zM480 72c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
+s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM433.63 258.7c19.1602 -19.1602 19.1602 -50.2305 0 -69.4004l-174.939 -174.93c-19.1602 -19.1602 -50.2305 -19.1602 -69.3906 0l-174.93 174.939c-19.1602 19.1602 -19.1602 50.2305 0 69.3906l174.939 174.93
+c19.1602 19.1602 50.2305 19.1602 69.3906 0zM96 200c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM224 72c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z
+M224 200c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM224 328c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM352 200c13.25 0 24 10.75 24 24
+c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
+ <glyph glyph-name="dice-five" unicode="" horiz-adv-x="448"
+d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 256
+c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM224 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="dice-four" unicode="" horiz-adv-x="448"
+d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 256
+c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="dice-one" unicode="" horiz-adv-x="448"
+d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM224 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="dice-six" unicode="" horiz-adv-x="448"
+d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 160
+c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM128 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="dice-three" unicode="" horiz-adv-x="448"
+d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM224 160
+c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="dice-two" unicode="" horiz-adv-x="448"
+d="M384 416c35.3496 0 64 -28.6504 64 -64v-320c0 -35.3496 -28.6504 -64 -64 -64h-320c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h320zM128 256c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM320 64
+c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="divide" unicode="" horiz-adv-x="448"
+d="M224 96c35.3496 0 64 -28.6504 64 -64s-28.6504 -64 -64 -64s-64 28.6504 -64 64s28.6504 64 64 64zM224 288c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64s64 -28.6504 64 -64s-28.6504 -64 -64 -64zM416 240c17.6699 0 32 -14.3301 32 -32v-32
+c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h384z" />
+ <glyph glyph-name="door-closed" unicode="" horiz-adv-x="640"
+d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h111.99v397.2c0 28.0195 21.5293 50.7998 48 50.7998h288.01c26.4697 0 48 -22.7803 48 -50.7998v-397.2h112zM415.99 160
+c17.6797 0 32.0098 14.3301 32 32c0 17.6699 -14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="door-open" unicode="" horiz-adv-x="640"
+d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-144v384h-96v64h112c26.4697 0 48 -22.1904 48 -49.4502v-334.55h80zM312.24 446.99c20.2002 5.24023 39.7598 -10.5898 39.7598 -32.1699v-478.82h-336c-8.83984 0 -16 7.16016 -16 16v32
+c0 8.83984 7.16016 16 16 16h80v365.08c0 15.2197 9.99023 28.4795 24.2402 32.1699zM264 160c13.25 0 24 14.3301 24 32s-10.75 32 -24 32s-24 -14.3301 -24 -32s10.75 -32 24 -32z" />
+ <glyph glyph-name="equals" unicode="" horiz-adv-x="448"
+d="M416 144c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h384zM416 336c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-384c-17.6699 0 -32 14.3301 -32 32
+v32c0 17.6699 14.3301 32 32 32h384z" />
+ <glyph glyph-name="feather" unicode=""
+d="M467.14 403.16c50.5703 -50.5205 61.7002 -124.9 16.2607 -199.36l-131.54 -43.7998h97.7793c-9.92969 -10.6797 3.68066 3.07031 -46.3096 -46.8604l-147.57 -49.1396h98.1904c-74.9502 -73.1104 -194.53 -70.6504 -246.83 -54.9404l-66.1006 -66.0293
+c-9.37988 -9.37012 -24.5996 -9.37012 -33.9795 0s-9.37988 24.5693 0 33.9395l259.52 259.25c6.25 6.25 6.25 16.3799 0 22.6299s-16.3896 6.25 -22.6494 0l-178.44 -178.25c-6.75 60.3408 3.18066 150.78 63.6406 211.17c24.7695 24.7402 7.13965 7.14062 85.75 85.6602
+c90.6094 90.5107 189.729 88.21 252.279 25.7305z" />
+ <glyph glyph-name="frog" unicode="" horiz-adv-x="576"
+d="M446.53 350.57c0 0 58.4297 -19.0605 98.9893 -41.2803c18.7607 -10.2803 30.4805 -29.8301 30.4805 -51.2305v-0.00292969c0 -18.8037 -13.3105 -41.5283 -29.71 -50.7266l-154.44 -86.6504l98.5205 -104.68h53.6299c17.6699 0 32 -14.3301 32 -32
+c0 -8.83984 -7.16016 -16 -16 -16h-90.3799l-118.53 125.94c5.07031 54.1494 -29.9297 85.0596 -40.7998 93.21c-36.8496 27.6191 -88.29 27.6592 -125.13 0l-34.7803 -26.0908c-7.07031 -5.2998 -8.49023 -15.3291 -3.18945 -22.4092
+c5.31934 -7.10059 15.3496 -8.5 22.4092 -3.19043l32.7607 24.5898c20.6895 15.5303 48.3496 20.8105 72.2393 10.8799c44.0605 -18.3193 57.8506 -70.3701 33.71 -106.6l-35.7998 -48.3301h79.4902c17.6699 0 32 -14.3301 32 -32c0 -8.83984 -7.16016 -16 -16 -16h-304
+c-34.9199 0 -63.8896 28.0996 -64 63.0195c-0.5 166.86 126.75 304.021 289.46 319.44c6.82031 37.25 39.3096 65.54 78.54 65.54c39.1904 0 71.6699 -28.2305 78.5303 -65.4297zM368 312c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
+c-13.2598 0 -24 -10.7402 -24 -24c0 -13.25 10.7402 -24 24 -24z" />
+ <glyph glyph-name="gas-pump" unicode=""
+d="M336 0c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-320c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h320zM493.2 340.7c12 -12 18.7998 -28.2998 18.7998 -45.2998v-223.4c0 -42.2002 -36.5 -76 -79.5 -71.7002
+c-37.5 3.90039 -64.5 38.2002 -64.5 75.9004v27.7998c0 22.0996 -17.9004 40 -40 40h-8v-112h-288v352c0 35.2998 28.7002 64 64 64h160c35.2998 0 64 -28.7002 64 -64v-192h8c48.5996 0 88 -39.4004 88 -88v-32c0 -13.2002 10.7998 -24 24 -24s24 10.7998 24 24v160.8
+c-27.0996 3.90039 -48 27.1006 -48 55.2002v62.0996l-37.7002 37.7002c-6.2002 6.2002 -6.2002 16.4004 0 22.6006l11.2998 11.2998c6.2002 6.2002 16.4004 6.2002 22.6006 0zM256 256v128h-160v-128h160z" />
+ <glyph glyph-name="glasses" unicode="" horiz-adv-x="576"
+d="M574.1 167.63c1.26074 -5.07031 1.90039 -10.2695 1.90039 -15.5v-70.25c0 -62.8896 -51.5801 -113.88 -115.2 -113.88h-37.1201c-60.2793 0 -110.37 45.9404 -114.87 105.37l-2.92969 38.6299h-35.75l-2.92969 -38.6299
+c-4.50977 -59.4297 -54.6006 -105.37 -114.88 -105.37h-37.1201c-63.6201 0 -115.2 50.9902 -115.2 113.89v70.25c0.000976562 4.33984 0.852539 11.2793 1.90039 15.4902l45.3398 181.73c5.91016 23.6895 21.5898 44.0293 43 55.7998
+c21.4395 11.7402 46.9697 14.1094 70.1895 6.33008l15.25 -5.08008c8.39062 -2.79004 12.9199 -11.8604 10.1201 -20.2402l-5.05957 -15.1797c-2.79004 -8.37988 -11.8506 -12.9102 -20.2305 -10.1201l-13.1699 4.38965
+c-10.8701 3.62012 -22.9902 3.57031 -33.1494 -1.72949c-10.29 -5.36035 -17.5908 -14.5605 -20.3809 -25.8105l-38.46 -153.83c22.1904 6.81055 49.79 12.46 81.21 12.46c34.7803 0 73.9902 -7.00977 114.86 -26.75h73.1797
+c40.8701 19.7207 80.0801 26.7402 114.851 26.7402c31.4102 0 59.0098 -5.64941 81.2002 -12.46l-38.46 153.82c-2.80078 11.2598 -10.0801 20.4502 -20.3701 25.8193c-10.1602 5.30078 -22.29 5.35059 -33.1602 1.73047l-13.1797 -4.38965
+c-8.38086 -2.79004 -17.4404 1.73926 -20.2305 10.1201l-5.05957 15.1797c-2.80078 8.37988 1.72949 17.4502 10.1191 20.2402l15.25 5.08008c23.2207 7.7793 48.75 5.39941 70.1904 -6.33008c21.4102 -11.7607 37.0898 -32.1104 43 -55.8105zM203.38 78.21l3.12988 41.2197
+c-22.6699 8.58984 -46.0693 12.9199 -69.9297 12.9199c-29.1602 0 -54.46 -6.42969 -72.5801 -12.9199v-37.54c0 -27.5098 22.9697 -49.8896 51.2002 -49.8896h37.1201c26.6602 0 49.0898 20.2998 51.0596 46.21zM512 81.8799l-0.00976562 37.54
+c-18.1201 6.49023 -43.4307 12.9297 -72.5498 12.9297c-23.8701 0 -47.2803 -4.33008 -69.9502 -12.9199l3.12988 -41.2197c1.95996 -25.9102 24.3896 -46.21 51.0596 -46.21h37.1201c28.2305 0 51.2002 22.3701 51.2002 49.8799z" />
+ <glyph glyph-name="greater-than" unicode="" horiz-adv-x="384"
+d="M365.52 238.15c11.2803 -5.25 18.4805 -16.5605 18.4902 -29.0107v-34.2295c-0.00195312 -11.2529 -8.28027 -24.2451 -18.4795 -29l-306.471 -142.91c-16.0195 -7.46973 -35.0596 -0.540039 -42.5293 15.4805l-13.5205 29
+c-7.46973 16.0195 -0.540039 35.0596 15.4805 42.5293l218.47 101.891l-218.43 101.85c-16.0605 7.49023 -23.0107 26.5801 -15.5205 42.6396l13.5703 29.0801c7.49023 16.0605 26.5801 23.0107 42.6396 15.5205z" />
+ <glyph glyph-name="greater-than-equal" unicode="" horiz-adv-x="448"
+d="M55.2197 340.31c-18.29 6 -27.7393 24.2607 -21.0996 40.79l12.0303 29.9199c6.63965 16.5303 26.8594 25.0605 45.1494 19.0605l301.72 -119.98c13.7705 -4.51953 22.9805 -16.6094 22.9805 -30.1699v-15.96c0 -13.5596 -9.20996 -25.6494 -22.9805 -30.1699
+l-301.409 -119.859c-18.3906 -6.04004 -38.7002 2.54004 -45.3799 19.1494l-12.0908 30.0801c-6.67969 16.6104 2.81055 34.9697 21.2002 41l175.44 68.0498zM424 48c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-400c-13.25 0 -24 10.75 -24 24v48
+c0 13.2598 10.75 24 24 24h400z" />
+ <glyph glyph-name="helicopter" unicode="" horiz-adv-x="640"
+d="M304 64c-8.83105 0 -20.3018 5.73438 -25.5996 12.7998l-86.4004 115.2l-160 64l-31.5098 108.12c-2.53027 10.0996 5.10938 19.8799 15.5195 19.8799h39.9902c5.03027 0 9.78027 -2.37012 12.7998 -6.40039l43.2002 -57.5996h208v64h-176c-8.83984 0 -16 7.16016 -16 16
+v32c0 8.83984 7.16016 16 16 16h416c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-176v-64c123.71 0 224 -100.29 224 -224c0 -17.6699 -14.3301 -32 -32 -32h-272zM416 252.49v-124.49h124.79c-12.7598 62.5596 -62.2402 111.7 -124.79 124.49z
+M635.37 -10.8096c6.58984 -6.61035 6.04004 -17.5205 -0.980469 -23.6602c-33.1494 -29.0498 -53.5693 -29.5205 -68.4492 -29.5205h-325.94c-8.83984 0 -16 7.18066 -16 16.0303v32.0596c0 8.85059 7.16016 16.0303 16 16.0303h325.94
+c10.7998 0 17.5498 4.48047 24.6396 11.25c6.40039 6.11035 16.3896 6.27051 22.6396 0.00976562z" />
+ <glyph glyph-name="infinity" unicode="" horiz-adv-x="640"
+d="M471.1 352c93.1006 0 168.9 -71.7998 168.9 -160s-75.7998 -160 -168.9 -160c-66.0996 0 -117.8 41.2998 -151.1 78.5996c-33.2998 -37.2998 -85 -78.5996 -151.1 -78.5996c-93.1006 0 -168.9 71.7998 -168.9 160s75.7998 160 168.9 160
+c66.0996 0 117.8 -41.2998 151.1 -78.5996c33.2998 37.2998 85 78.5996 151.1 78.5996zM168.9 128c38.0996 0 73.5996 36.4004 94 64c-20.6006 27.9004 -55.8008 64 -94 64c-40.2002 0 -72.9004 -28.7002 -72.9004 -64s32.7002 -64 72.9004 -64zM471.1 128
+c40.2002 0 72.9004 28.7002 72.9004 64s-32.7002 64 -72.9004 64c-38.0996 0 -73.5996 -36.4004 -94 -64c20.6006 -27.9004 55.8008 -64 94 -64z" />
+ <glyph glyph-name="kiwi-bird" unicode="" horiz-adv-x="576"
+d="M575.81 230.02c0.300781 -5.7793 0.160156 -246.02 0.160156 -246.02c0 -7.30957 -4.95996 -13.7002 -12.0498 -15.5c-1.30957 -0.339844 -2.63965 -0.5 -3.9502 -0.5c-5.75 0 -11.1895 3.11035 -14.0498 8.33984l-74.4102 136.44
+c-7.04004 -0.470703 2.43066 -0.780273 -23.0498 -0.780273c-54.5996 0 -106.39 -19.25 -152.13 -49.0596c-12.46 -8.12012 -26.0996 -14.4502 -40.3398 -19.5107v-59.4297c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v49.1797
+c-5.32031 -0.449219 -10.5605 -1.17969 -16 -1.17969c-16.6006 0 -32.6406 2.2998 -48 6.25977v-54.2598c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v73.9902c-57.3105 33.21 -95.9502 95.0596 -95.9902 166.01
+c-0.0800781 145.76 129.3 182.88 147.31 186.94c57.1709 12.9199 111.221 0.259766 153.21 -28.7002c43.4902 -29.9902 94.9209 -46.2402 147.74 -46.2402h9.37012c60.6504 0 115.01 -45.4102 118.18 -105.98zM463.97 200c13.25 0 24 10.75 24 24
+c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM543.97 46.75v99.0596c-11.1299 -11.3799 -24.7393 -20.1494 -39.8594 -25.9795z" />
+ <glyph glyph-name="less-than" unicode="" horiz-adv-x="384"
+d="M365.46 90.2598c16.0703 -7.49023 23.0205 -26.5801 15.5303 -42.6396l-13.5605 -29.0801c-7.48926 -16.0596 -26.5801 -23.0098 -42.6396 -15.5205l-306.31 142.83c-11.2705 5.25 -18.4805 16.5605 -18.4805 29v34.2402c0.00488281 11.252 8.2832 24.2432 18.4805 29
+l306.46 142.91c16.0195 7.46973 35.0596 0.540039 42.5293 -15.4805l13.5205 -29c7.46973 -16.0195 0.540039 -35.0596 -15.4805 -42.5293l-218.47 -101.88z" />
+ <glyph glyph-name="less-than-equal" unicode="" horiz-adv-x="448"
+d="M54.9805 233.8c-13.7705 4.52051 -22.9805 16.6104 -22.9805 30.1699v15.96c0 13.5703 9.20996 25.6602 22.9805 30.1807l301.71 119.96c18.29 6 38.5098 -2.53027 45.1494 -19.0605l12.0303 -29.9199c6.63965 -16.5195 -2.81055 -34.79 -21.1006 -40.79
+l-175.56 -68.0898l175.44 -68.0498c18.3896 -6.03027 27.8896 -24.3906 21.21 -41l-12.0908 -30.0801c-6.66992 -16.6104 -26.9893 -25.1797 -45.3799 -19.1504zM424 48c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-400c-13.25 0 -24 10.75 -24 24v48
+c0 13.2598 10.75 24 24 24h400z" />
+ <glyph glyph-name="memory" unicode="" horiz-adv-x="640"
+d="M640 317.06c-18.5996 -6.60938 -32 -24.1895 -32 -45.0596s13.4004 -38.4502 32 -45.0596v-98.9404h-640v98.9404c18.5996 6.60938 32 24.1895 32 45.0596s-13.4004 38.4502 -32 45.0596v34.9404c0 17.6699 14.3301 32 32 32h576c17.6699 0 32 -14.3301 32 -32v-34.9404z
+M224 192v128h-64v-128h64zM352 192v128h-64v-128h64zM480 192v128h-64v-128h64zM0 0v96h640v-96h-64v26.6699c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-128v26.6699c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-128v26.6699
+c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-128v26.6699c0 8.83984 -7.16016 16 -16 16s-16 -7.16016 -16 -16v-26.6699h-64z" />
+ <glyph glyph-name="microphone-alt-slash" unicode="" horiz-adv-x="640"
+d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.81934 -22.4502l-19.6396 -25.2705c-5.42969 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.36 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
+c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l178.53 -138v45.3604c0 53.0195 42.9805 96 96 96s96 -42.9805 96 -96h-85.3301c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301
+c-5.88965 0 -10.6699 -3.58008 -10.6699 -8v-16c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.0596l41.3994 -32h43.6699c0 -10.4502 -2.17969 -20.2705 -5.2793 -29.6699l26.5498 -20.5205c6.75977 15.4004 10.7197 32.2803 10.7197 50.2002v48
+c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-48c0 -28.9805 -7.25977 -56.21 -19.7402 -80.3301zM400 -16c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h56
+v34.1504c-88.0303 12.1396 -152 92.0498 -152 181.689v6.85059l52.0303 -40.2207c12.4395 -53.2197 55.3301 -96.3994 111.18 -101.85c6.94043 -0.669922 13.6396 -0.200195 20.3496 0.200195l50.4004 -38.96c-10.8604 -3.80078 -22.25 -6.45996 -33.96 -8.08008v-33.7803
+h56z" />
+ <glyph glyph-name="money-bill-wave" unicode="" horiz-adv-x="640"
+d="M621.16 393.54c11.6094 -4.87012 18.8398 -16.8301 18.8496 -29.4697v-317.25c0 -18.4902 -15.04 -31.8105 -32.25 -31.8105c-3.39941 0 -6.87988 0.520508 -10.3496 1.62012c-30.8906 9.7998 -61.7598 13.7197 -92.6504 13.7197
+c-123.17 0 -246.34 -62.3496 -369.51 -62.3496c-38.7998 0 -77.6201 6.19043 -116.41 22.4697c-11.6094 4.86035 -18.8398 16.8301 -18.8398 29.46v317.261c0 18.4893 15.04 31.8096 32.25 31.8096c3.40039 0 6.87988 -0.519531 10.3496 -1.62012
+c30.8906 -9.7998 61.7607 -13.7197 92.6504 -13.7197c123.17 0 246.33 62.3496 369.5 62.3398c38.7998 0 77.6201 -6.19043 116.41 -22.46zM48 315.78v-60.4707c31 0 56.8398 22.1504 62.7197 51.54c-21.5996 1.36035 -42.5996 3.89062 -62.7197 8.93066zM48 30.7803
+c20.1201 -7.31055 41.1797 -11.8105 63.71 -13.6201c-1.53027 34.1299 -29.3398 61.3994 -63.71 61.3994v-47.7793zM320 96c44.1699 0 80 42.9697 80 96c0 53.0195 -35.8203 96 -80 96s-80 -42.9805 -80 -96c0 -53.0098 35.8096 -96 80 -96zM592 68.2197v57.7207
+c-26.8203 -3.40039 -48.4502 -23.2002 -54.3203 -49.2803c18.6104 -1.58984 36.8008 -4.0498 54.3203 -8.44043zM592 304.33v48.8896c-17.7197 6.43066 -36.2695 10.4902 -55.8096 12.6602c0.949219 -31.8496 24.9199 -57.6396 55.8096 -61.5498z" />
+ <glyph glyph-name="money-bill-wave-alt" unicode="" horiz-adv-x="640"
+d="M621.16 393.54c11.6094 -4.87012 18.8398 -16.8301 18.8496 -29.4697v-317.25c0 -18.4902 -15.04 -31.8105 -32.25 -31.8105c-3.39941 0 -6.87988 0.520508 -10.3496 1.62012c-30.8906 9.7998 -61.7598 13.7197 -92.6504 13.7197
+c-123.17 0 -246.34 -62.3496 -369.51 -62.3496c-38.7998 0 -77.6201 6.19043 -116.41 22.4697c-11.6094 4.86035 -18.8398 16.8301 -18.8398 29.46v317.261c0 18.4893 15.04 31.8096 32.25 31.8096c3.40039 0 6.87988 -0.519531 10.3496 -1.62012
+c30.8906 -9.7998 61.7607 -13.7197 92.6504 -13.7197c123.17 0 246.33 62.3496 369.5 62.3398c38.7998 0 77.6201 -6.19043 116.41 -22.46zM320 96c44.1699 0 80 42.9697 80 96c0 53.0195 -35.8203 96 -80 96s-80 -42.9805 -80 -96c0 -53.0098 35.8096 -96 80 -96z" />
+ <glyph glyph-name="money-check" unicode="" horiz-adv-x="640"
+d="M0 0v320h640v-320c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32zM448 208v-32c0 -8.83984 7.16016 -16 16 -16h96c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-96c-8.83984 0 -16 -7.16016 -16 -16zM448 88v-16
+c0 -4.41992 3.58008 -8 8 -8h112c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-112c-4.41992 0 -8 -3.58008 -8 -8zM64 184v-16c0 -4.41992 3.58008 -8 8 -8h304c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-304c-4.41992 0 -8 -3.58008 -8 -8z
+M64 88v-16c0 -4.41992 3.58008 -8 8 -8h176c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-176c-4.41992 0 -8 -3.58008 -8 -8zM624 416c8.83984 0 16 -7.16016 16 -16v-48h-640v48c0 8.83984 7.16016 16 16 16h608z" />
+ <glyph glyph-name="money-check-alt" unicode="" horiz-adv-x="640"
+d="M608 416c17.6699 0 32 -14.3301 32 -32v-384c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v384c0 17.6699 14.3301 32 32 32h576zM176 120.12c23.6201 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896
+l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104c4.55957 0 8.94922 -1.29004 12.8193 -3.71973c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21
+c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v16.29c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16.1201c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703
+c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973
+c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-16.29c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16.1201zM416 136v16
+c0 4.41992 -3.58008 8 -8 8h-112c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h112c4.41992 0 8 3.58008 8 8zM576 136v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8z
+M576 232v16c0 4.41992 -3.58008 8 -8 8h-272c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h272c4.41992 0 8 3.58008 8 8z" />
+ <glyph glyph-name="not-equal" unicode="" horiz-adv-x="448"
+d="M416 240h-98.4199l-74.5303 -96h172.95c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32h-247.48l-82.0898 -105.73c-5.37012 -7.00977 -15.4102 -8.34961 -22.4297 -2.96973l-25.4102 19.46c-7.00977 5.37988 -8.33984 15.4199 -2.96973 22.4307
+l51.8701 66.8096h-55.4902c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h130.03l74.5293 96h-204.56c-17.6699 0 -32 14.3301 -32 32v32c0 17.6699 14.3301 32 32 32h279.09l82.0801 105.73c5.37988 7.00977 15.4199 8.34961 22.4404 2.96973
+l25.4092 -19.46c7.01074 -5.37012 8.34082 -15.4102 2.9707 -22.4307l-51.8701 -66.8096h23.8799c17.6699 0 32 -14.3301 32 -32v-32c0 -17.6699 -14.3301 -32 -32 -32z" />
+ <glyph glyph-name="palette" unicode=""
+d="M204.3 443c163.8 31.9004 307.2 -92.0996 307.7 -249.7c-0.0996094 -35.7002 -29.0996 -65.2998 -64.9004 -65.2998h-79.6992c-51 0 -84 -53 -60.9004 -98.4004c18.9004 -37.0996 -1.2998 -85.2998 -42.5 -91.6992c-127.1 -19.7002 -295.8 119.699 -258.8 306.699
+c19.5996 99.1006 99.7002 179 199.1 198.4zM96 128c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM128 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 320
+c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM384 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="parking" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM240 128c52.9004 0 96 43.0996 96 96s-43.0996 96 -96 96h-96c-8.7998 0 -16 -7.2002 -16 -16v-224c0 -8.7998 7.2002 -16 16 -16h32
+c8.7998 0 16 7.2002 16 16v48h48zM240 256c17.5996 0 32 -14.4004 32 -32s-14.4004 -32 -32 -32h-48v64h48z" />
+ <glyph glyph-name="percentage" unicode="" horiz-adv-x="384"
+d="M109.25 274.75c-24.9902 -25 -65.5098 -25 -90.5098 0c-24.9902 24.9902 -24.9902 65.5195 0 90.5098s65.5195 24.9902 90.5098 0s24.9902 -65.5195 0 -90.5098zM365.25 109.26c25 -25 25 -65.5195 0 -90.5098c-24.9902 -24.9902 -65.5195 -24.9902 -90.5098 0
+s-24.9902 65.5195 0 90.5098s65.5195 24.9902 90.5098 0zM363.31 340.69c12.5 -12.5 12.5 -32.7607 0 -45.25l-274.75 -274.75c-12.4893 -12.5 -32.75 -12.5 -45.25 0l-22.6191 22.6191c-12.5 12.4902 -12.5 32.75 0 45.25l274.75 274.75c12.4893 12.5 32.75 12.5 45.25 0z
+" />
+ <glyph glyph-name="project-diagram" unicode="" horiz-adv-x="640"
+d="M384 128c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-128c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h128zM192 416v-32h224v-64h-224v-47.5098l64.2803 -112.49h-0.280273c-23.5996 0 -44.0195 -12.9805 -55.1201 -32.04
+l-73.1602 128.04h-95.7197c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h128c17.6699 0 32 -14.3301 32 -32zM608 448c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-128c-17.6699 0 -32 14.3301 -32 32v128
+c0 17.6699 14.3301 32 32 32h128z" />
+ <glyph glyph-name="receipt" unicode="" horiz-adv-x="384"
+d="M358.4 444.8c10.5996 7.90039 25.5996 0.400391 25.5996 -12.7998v-480c0 -13.2002 -15.0996 -20.7002 -25.5996 -12.7998l-38.4004 44.7998l-54.4004 -44.7998c-2.35059 -1.78027 -6.65137 -3.22559 -9.59961 -3.22559s-7.24902 1.44531 -9.59961 3.22559
+l-54.4004 44.7998l-54.4004 -44.7998c-2.35059 -1.78027 -6.65137 -3.22559 -9.59961 -3.22559s-7.24902 1.44531 -9.59961 3.22559l-54.4004 44.7998l-38.4004 -44.7998c-10.5996 -7.90039 -25.5996 -0.400391 -25.5996 12.7998v480c0 13.2002 15 20.7002 25.5996 12.7998
+l38.4004 -44.7998l54.4004 44.7998c2.35059 1.78027 6.65137 3.22559 9.59961 3.22559s7.24902 -1.44531 9.59961 -3.22559l54.4004 -44.7998l54.4004 44.7998c2.35059 1.78027 6.65137 3.22559 9.59961 3.22559s7.24902 -1.44531 9.59961 -3.22559l54.4004 -44.7998z
+M320 88v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8zM320 184v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240
+c4.40039 0 8 3.59961 8 8zM320 280v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8z" />
+ <glyph glyph-name="robot" unicode="" horiz-adv-x="640"
+d="M0 192c0 17.7002 14.2998 32 32 32h32v-192h-32c-17.7002 0 -32 14.2998 -32 32v128zM464 352c44.2002 0 80 -35.7998 80 -80v-272c0 -35.2998 -28.7002 -64 -64 -64h-320c-35.2998 0 -64 28.7002 -64 64v272c0 44.2002 35.7998 80 80 80h112v64
+c0 17.7002 14.2998 32 32 32s32 -14.2998 32 -32v-64h112zM256 32v32h-64v-32h64zM224 152c22.0996 0 40 17.9004 40 40s-17.9004 40 -40 40s-40 -17.9004 -40 -40s17.9004 -40 40 -40zM352 32v32h-64v-32h64zM448 32v32h-64v-32h64zM416 152c22.0996 0 40 17.9004 40 40
+s-17.9004 40 -40 40s-40 -17.9004 -40 -40s17.9004 -40 40 -40zM608 224c17.7002 0 32 -14.2998 32 -32v-128c0 -17.7002 -14.2998 -32 -32 -32h-32v192h32z" />
+ <glyph glyph-name="ruler" unicode="" horiz-adv-x="640"
+d="M635.7 280.8c8.7998 -15 3.59961 -34.2002 -11.6006 -42.7998l-496.8 -281.9c-15.2002 -8.59961 -34.7002 -3.5 -43.5 11.5l-79.5996 135.601c-8.7998 15 -3.5 34.0996 11.7002 42.7998l69 39.0996l59.6992 -101.399c2.2002 -3.7998 7.10059 -5.10059 10.9004 -2.90039
+l13.7998 7.7998c3.7998 2.2002 5.10059 7 2.90039 10.7002l-59.7002 101.7l55.2002 31.2998l27.8994 -47.5c2.2002 -3.7998 7.10059 -5.09961 10.9004 -2.89941l13.7998 7.7998c3.7998 2.2002 5.10059 6.89941 2.90039 10.7002l-27.9004 47.3994l55.2002 31.2998
+l59.7002 -101.699c2.2002 -3.80078 7.09961 -5.10059 10.8994 -2.90039l13.8008 7.7998c3.7998 2.2002 5.09961 7 2.89941 10.7002l-59.7998 101.7l55.2002 31.2998l27.8994 -47.2998c2.2002 -3.7998 7.10059 -5.10059 10.9004 -2.90039l13.7998 7.7998
+c3.7998 2.2002 5.10059 6.90039 2.90039 10.7002l-27.9004 47.4004l55.2002 31.2998l59.7002 -101.6c2.2002 -3.80078 7.09961 -5.10059 10.8994 -2.90039l13.8008 7.7998c3.7998 2.2002 5.09961 6.90039 2.89941 10.7002l-59.7002 101.7l69 39.0996
+c15.2002 8.60059 34.7002 3.5 43.5 -11.5z" />
+ <glyph glyph-name="ruler-combined" unicode=""
+d="M160 160v-41.3799l-158.43 -158.42c-0.660156 2.55957 -1.57031 5.03027 -1.57031 7.7998v448c0 17.6699 14.3301 32 32 32h96c17.6699 0 32 -14.3301 32 -32v-32h-56c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h56v-64h-56
+c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h56v-64h-56c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h56zM480 96c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-448
+c-2.75977 0 -5.24023 0.910156 -7.7998 1.57031l158.43 158.43h41.3701v-56c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v56h64v-56c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v56h64v-56c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8
+v56h32z" />
+ <glyph glyph-name="ruler-horizontal" unicode="" horiz-adv-x="576"
+d="M544 320c17.6699 0 32 -14.3301 32 -32v-192c0 -17.6699 -14.3301 -32 -32 -32h-512c-17.6699 0 -32 14.3301 -32 32v192c0 17.6699 14.3301 32 32 32h48v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16
+c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h64v-88c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v88h48z" />
+ <glyph glyph-name="ruler-vertical" unicode="" horiz-adv-x="256"
+d="M168 32h88v-64c0 -17.6699 -14.3301 -32 -32 -32h-192c-17.6699 0 -32 14.3301 -32 32v448c0 17.6699 14.3301 32 32 32h192c17.6699 0 32 -14.3301 32 -32v-64h-88c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h88v-64h-88
+c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h88v-64h-88c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h88v-64h-88c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8z" />
+ <glyph glyph-name="school" unicode="" horiz-adv-x="640"
+d="M0 224c0 17.6699 14.3301 32 32 32h64v-320h-80c-8.83984 0 -16 7.16016 -16 16v272zM360 272c4.41992 0 8 -3.58008 8 -8v-16c0 -4.41992 -3.58008 -8 -8 -8h-48c-4.41992 0 -8 3.58008 -8 8v64c0 4.41992 3.58008 8 8 8h16c4.41992 0 8 -3.58008 8 -8v-40h24z
+M497.75 335.96c8.90039 -5.92969 14.25 -15.9297 14.25 -26.6299v-373.33h-128v144c0 8.83984 -7.16016 16 -16 16h-96c-8.83984 0 -16 -7.16016 -16 -16v-144h-128v373.34c0.00195312 9.45117 6.38574 21.377 14.25 26.6201l160 106.67
+c4.4502 2.96484 12.4023 5.37012 17.75 5.37012s13.2998 -2.40527 17.75 -5.37012zM320 192c44.1797 0 80 35.8203 80 80s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM608 256c17.6699 0 32 -14.3301 32 -32v-272c0 -8.83984 -7.16016 -16 -16 -16h-80
+v320h64z" />
+ <glyph glyph-name="screwdriver" unicode=""
+d="M448 448l64 -64l-96 -128h-62.0596l-83.0303 -83.0303c-4.25 6.79004 -9.07031 13.2705 -14.8701 19.0703c-5.7998 5.80957 -12.2803 10.6201 -19.0703 14.8701l83.0303 83.0303v62.0596zM128 169.41c29.1104 29.1094 76.2998 29.1094 105.41 0
+c29.1094 -29.1104 29.1094 -76.2998 0 -105.41l-117.08 -117.08c-14.5605 -14.5596 -38.1504 -14.5596 -52.71 0l-52.7002 52.7002c-14.5498 14.5596 -14.5498 38.1602 0 52.71z" />
+ <glyph glyph-name="shoe-prints" unicode="" horiz-adv-x="640"
+d="M192 288c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64h32v-128h-32zM0 32c0 35.3496 28.6504 64 64 64h32v-128h-32c-35.3496 0 -64 28.6504 -64 64zM337.46 160c90.3604 0 174.54 -32 174.54 -96c0 -45.2197 -39.0996 -97.2998 -148.58 -120.82
+c-31.9795 -6.87012 -64.8896 -8.50977 -97.5801 -6.19922c-27.2998 1.92969 -54.0996 7.76953 -80.3096 15.0498l-57.5303 15.9697v128c60.21 0 79.9404 15.6201 104.73 32c28.5693 18.8799 69.8193 32 104.729 32zM491.42 440.81
+c109.48 -23.5098 148.58 -75.5898 148.58 -120.81c0 -64 -84.1797 -96 -174.54 -96c-34.9102 0 -76.1602 13.1201 -104.729 32c-24.79 16.3799 -44.5303 32 -104.73 32v128l57.5303 15.9697c26.21 7.27051 53.0098 13.1104 80.3096 15.04
+c32.6904 2.32031 65.6006 0.669922 97.5801 -6.2002z" />
+ <glyph glyph-name="skull" unicode=""
+d="M256 448c141.4 0 256 -100.3 256 -224c0 -70.0996 -36.9004 -132.6 -94.5 -173.7c-9.7002 -6.89941 -15.2002 -18.2002 -13.5 -29.8994l9.40039 -66.2002c1.39941 -9.60059 -6 -18.2002 -15.7002 -18.2002h-77.7002v56c0 4.40039 -3.59961 8 -8 8h-16
+c-4.40039 0 -8 -3.59961 -8 -8v-56h-64v56c0 4.40039 -3.59961 8 -8 8h-16c-4.40039 0 -8 -3.59961 -8 -8v-56h-77.7002c-9.7002 0 -17.0996 8.59961 -15.7002 18.2002l9.40039 66.2002c1.7002 11.7998 -3.90039 23 -13.5 29.8994
+c-57.5996 41.1006 -94.5 103.601 -94.5 173.7c0 123.7 114.6 224 256 224zM160 128c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64s28.7002 -64 64 -64zM352 128c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64
+s28.7002 -64 64 -64z" />
+ <glyph glyph-name="smoking-ban" unicode=""
+d="M96 144v64c0 8.7998 7.2002 16 16 16h21.5l96 -96h-117.5c-8.7998 0 -16 7.2002 -16 16zM256 448c141.4 0 256 -114.6 256 -256s-114.6 -256 -256 -256s-256 114.6 -256 256s114.6 256 256 256zM256 0c41.4004 0 79.7002 13.2998 111.1 35.7002l-267.399 267.399
+c-22.4004 -31.3994 -35.7002 -69.6992 -35.7002 -111.1c0 -105.9 86.0996 -192 192 -192zM301.2 192l32 -32h50.7998v32h-82.7998zM412.3 80.9004c22.4004 31.3994 35.7002 69.6992 35.7002 111.1c0 105.9 -86.0996 192 -192 192
+c-41.4004 0 -79.7002 -13.2998 -111.1 -35.7002l124.3 -124.3h130.8c8.7998 0 16 -7.2002 16 -16v-64c0 -8.7998 -7.2002 -16 -16 -16h-34.7998zM320.6 320c32.1006 0 58.7002 -23.7002 63.3008 -54.5996c0.699219 -4.90039 -3 -9.40039 -8 -9.40039h-16.2002
+c-3.7002 0 -7 2.5 -7.7002 6.09961c-2.7998 14.7002 -15.7998 25.9004 -31.4004 25.9004c-32.0996 0 -58.6992 23.7002 -63.2998 54.5996c-0.700195 4.90039 3 9.40039 8 9.40039h16.2002c3.7002 0 7 -2.5 7.7002 -6.09961
+c2.7998 -14.7002 15.7998 -25.9004 31.3994 -25.9004z" />
+ <glyph glyph-name="store" unicode="" horiz-adv-x="616"
+d="M602 329.4c33.5996 -53.6006 3.7998 -128 -59 -136.4c-4.5 -0.599609 -9 -0.900391 -13.7002 -0.900391c-29.5 0 -55.7002 13 -73.7998 33.1006c-18 -20.1006 -44.2002 -33.1006 -73.7998 -33.1006c-29.5 0 -55.7998 13 -73.7998 33.1006
+c-18 -20.1006 -44.2002 -33.1006 -73.8008 -33.1006c-29.5 0 -55.7998 13 -73.7998 33.1006c-18 -20.1006 -44.2002 -33.1006 -73.7998 -33.1006c-4.59961 0 -9.2002 0.300781 -13.7002 0.900391c-62.5996 8.5 -92.2998 82.9004 -58.7998 136.4l64.9004 103.6
+c5.7998 9.2998 16.0996 15 27.0996 15h404c11 0 21.2998 -5.7002 27.0996 -15zM529.5 160c6.09961 0 12.0996 0.400391 18.2002 1.2002c5.59961 0.700195 11 2 16.3994 3.59961v-196.8c0 -17.7002 -14.2998 -32 -32 -32h-448c-17.6992 0 -32 14.2998 -32 32v196.8
+c5.30078 -1.5 10.8008 -2.7998 16.4004 -3.59961c5.90039 -0.799805 12 -1.2002 18 -1.2002c10 0 19.9004 1.59961 29.5 3.7998v-99.7998h384v99.7998c9.59961 -2.2998 19.5 -3.7998 29.5 -3.7998z" />
+ <glyph glyph-name="store-alt" unicode="" horiz-adv-x="640"
+d="M320 64v160h64v-256c0 -17.7002 -14.2998 -32 -32 -32h-256c-17.7002 0 -32 14.2998 -32 32v256h64v-160h192zM634.6 305.8c14.1006 -21.2998 -1.09961 -49.7998 -26.5996 -49.7998h-575.9c-25.5996 0 -40.7998 28.5 -26.5996 49.7998l85.2998 128
+c5.90039 8.90039 15.9004 14.2002 26.6006 14.2002h405.199c10.7002 0 20.7002 -5.2998 26.7002 -14.2002zM512 -48v272h64v-272c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16z" />
+ <glyph glyph-name="stream" unicode=""
+d="M16 320c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h416c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-416zM496 240c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16
+v64c0 8.83984 7.16016 16 16 16h416zM432 64c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h416z" />
+ <glyph glyph-name="stroopwafel" unicode=""
+d="M188.12 237.26l45.25 -45.2598l-45.2598 -45.25l-45.25 45.25zM301.25 259.88l-45.25 -45.25l-45.25 45.2598l45.25 45.25zM210.75 124.12l45.25 45.25l45.2598 -45.25l-45.2598 -45.2598zM256 448c141.38 0 256 -114.62 256 -256s-114.62 -256 -256 -256
+s-256 114.62 -256 256s114.62 256 256 256zM442.68 152.4c1.29199 1.29492 2.34082 3.83008 2.34082 5.65918c0 1.83008 -1.04883 4.36523 -2.34082 5.66016l-28.29 28.2803l28.2705 28.3096c3.12012 3.12012 3.12012 8.19043 0 11.3105l-11.3105 11.3096
+c-3.11914 3.12012 -8.18945 3.12012 -11.3096 0l-28.29 -28.29l-45.25 45.2607l33.9404 33.9395l16.9697 -16.9697c3.12012 -3.12012 8.18945 -3.12012 11.3096 0l11.3105 11.3096c3.12012 3.12012 3.12012 8.19043 0 11.3105l-16.9707 16.9697l16.9707 16.9697
+c3.12012 3.12012 3.12012 8.19043 0 11.3105l-11.3105 11.3096c-3.12012 3.12012 -8.18945 3.12012 -11.3096 0l-16.9697 -16.9697l-16.9707 16.9697c-3.12012 3.12012 -8.18945 3.12012 -11.3096 0l-11.3105 -11.3096c-3.11914 -3.12012 -3.11914 -8.19043 0 -11.3105
+l16.9707 -16.9697l-33.9404 -33.9404l-45.2598 45.25l28.29 28.29c3.12012 3.12012 3.12012 8.19043 0 11.3105l-11.3105 11.3096c-3.11914 3.12012 -8.18945 3.12012 -11.3096 0l-28.29 -28.29l-28.3096 28.2705c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0
+l-11.3096 -11.3105c-3.12012 -3.11914 -3.12012 -8.18945 0 -11.3096l28.29 -28.29l-45.2607 -45.25l-33.9395 33.9404l16.9697 16.9697c3.12012 3.12012 3.12012 8.18945 0 11.3096l-11.3096 11.3105c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-16.9697 -16.9707
+l-16.9697 16.9707c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-11.3096 -11.3105c-3.12012 -3.12012 -3.12012 -8.18945 0 -11.3096l16.9697 -16.9697l-16.9697 -16.9707c-3.12012 -3.12012 -3.12012 -8.18945 0 -11.3096l11.3096 -11.3105
+c3.12012 -3.11914 8.19043 -3.11914 11.3105 0l16.9697 16.9707l33.9404 -33.9404l-45.25 -45.2598l-28.29 28.29c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-11.3096 -11.3105c-3.12012 -3.11914 -3.12012 -8.18945 0 -11.3096l28.29 -28.29l-28.29 -28.29
+c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3096l11.3398 -11.3301c3.12012 -3.12012 8.18945 -3.12012 11.3096 0l28.29 28.29l45.25 -45.25l-33.9395 -33.9404l-16.9707 16.9697c-3.11914 3.12012 -8.18945 3.12012 -11.3096 0l-11.3096 -11.3096
+c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3105l16.9697 -16.9697l-16.9697 -16.9697c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3105l11.3096 -11.3096c3.12012 -3.12012 8.19043 -3.12012 11.3096 0l16.9707 16.9697l16.9697 -16.9697
+c3.12012 -3.12012 8.19043 -3.12012 11.3096 0l11.3105 11.3096c3.12012 3.12012 3.12012 8.19043 0 11.3105l-16.9697 16.9697l33.9395 33.9404l45.25 -45.2598l-28.29 -28.29c-3.12012 -3.12012 -3.12012 -8.19043 0 -11.3105l11.3105 -11.3096
+c3.11914 -3.12012 8.18945 -3.12012 11.3096 0l28.29 28.29l28.3096 -28.2705c3.12012 -3.12012 8.19043 -3.12012 11.3105 0l11.3096 11.3105c3.12012 3.11914 3.12012 8.18945 0 11.3096l-28.29 28.29l45.2607 45.2598l33.9395 -33.9395l-16.9697 -16.9707
+c-3.12012 -3.11914 -3.12012 -8.18945 0 -11.3096l11.3096 -11.3096c3.12012 -3.12012 8.19043 -3.12012 11.3105 0l16.9697 16.9697l16.9697 -16.9697c3.12012 -3.12012 8.19043 -3.12012 11.3105 0l11.3096 11.3096c3.12012 3.12012 3.12012 8.19043 0 11.3096
+l-16.9697 16.9707l16.9697 16.9697c3.12012 3.12012 3.12012 8.19043 0 11.3096l-11.3096 11.3105c-3.12012 3.12012 -8.19043 3.12012 -11.3105 0l-16.9697 -16.9697l-33.9404 33.9395l45.25 45.25l28.29 -28.29c3.12012 -3.12012 8.19043 -3.12012 11.3105 0zM278.63 192
+l45.2598 45.2598l45.25 -45.2598l-45.25 -45.25z" />
+ <glyph glyph-name="toolbox" unicode=""
+d="M502.63 233.37c6 -6 9.37012 -14.1396 9.37012 -22.6201v-82.75h-128v16c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-16h-128v16c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-16h-128v82.7402
+c0 8.49023 3.37012 16.6299 9.37012 22.6299l45.25 45.2598c6.00977 6 14.1396 9.37012 22.6299 9.37012h50.75v80c0 26.5098 21.4902 48 48 48h160c26.5098 0 48 -21.4902 48 -48v-80.0098h50.75c8.49023 0 16.6299 -3.37012 22.6299 -9.37012zM320 288v64h-128v-64h128z
+M384 80v16h128v-96c0 -17.6699 -14.3301 -32 -32 -32h-448c-17.6699 0 -32 14.3301 -32 32v96h128v-16c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16v16h128v-16c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16z" />
+ <glyph glyph-name="tshirt" unicode="" horiz-adv-x="640"
+d="M631.2 351.5c7.89941 -3.90039 11.0996 -13.5996 7.09961 -21.5l-57.2998 -114.4c-4 -8 -13.5996 -11.1992 -21.5 -7.19922l-56.5996 27.6992c-10.6006 5.2002 -23 -2.59961 -23 -14.3994v-253.7c0 -17.7002 -14.3008 -32 -32 -32h-256c-17.7002 0 -32 14.2998 -32 32
+v253.6c0 11.9004 -12.4004 19.6006 -23 14.4004l-56.6006 -27.7002c-7.89941 -3.89941 -17.5 -0.700195 -21.5 7.2002l-57.2002 114.5c-3.89941 7.90039 -0.699219 17.5 7.2002 21.5l194.7 96.5c20.0996 -27.7998 64.5996 -47.2002 116.5 -47.2002
+s96.4004 19.4004 116.5 47.2002z" />
+ <glyph glyph-name="walking" unicode="" horiz-adv-x="320"
+d="M208 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM302.5 202.9c15.7002 -7.90039 22 -27.3008 14.2998 -43c-7.89941 -15.8008 -26.8994 -22.2002 -42.5 -14.3008l-23.2998 11.8008c-15 7.59961 -26.4004 20.8994 -31.7002 37
+l-5.5 16.5l-17.2002 -68.7002l45.5 -49.7002c7.2002 -7.7998 12.3008 -17.4004 14.9004 -27.7002l22.2002 -89c4.2998 -17.0996 -6.2002 -34.5 -23.2998 -38.7998c-17.1006 -4.2998 -34.5 6.2002 -38.8008 23.2998l-18.2998 73.2998
+c-2.59961 10.3008 -7.7002 19.8008 -14.8994 27.7002l-59.9004 65.4004c-14.5 15.8994 -20.0996 38 -14.9004 58.7998l15.2002 60.7002l-26.7998 -10.7998c-7.2002 -2.90039 -13 -8.40039 -16.5 -15.4004l-6.7002 -13.5996
+c-7.89941 -15.8008 -26.8994 -22.2002 -42.5 -14.3008c-15.7002 7.90039 -22 27.1006 -14.2002 42.9004l6.7002 13.5996c10.4004 21 28.1006 37.5 49.7002 46.2002c37.4004 15.1006 57.2998 25.2998 93.2998 25.2002c46.5 -0.0996094 87.5 -31.2998 102.2 -75.9004
+l9.7002 -29.3994zM73.5996 62.2002l20.7002 51.5c8.7002 -11.9004 -7.89941 6.59961 47.4004 -53.7002l-13.5 -33.7998c-3.2998 -8.10059 -8.10059 -15.4004 -14.2002 -21.5l-59.4004 -59.4004c-12.5 -12.5 -32.6992 -12.5 -45.1992 0s-12.5 32.7998 0 45.2998l50 50.1006
+c6.19922 6.09961 11 13.3994 14.1992 21.5z" />
+ <glyph glyph-name="wallet" unicode=""
+d="M461.2 320c28.0195 0 50.7998 -21.5303 50.7998 -48v-256c0 -26.4697 -22.7803 -48 -50.7998 -48h-397.2c-35.3496 0 -64 28.6504 -64 64v320c0 35.3496 28.6504 64 64 64h368c26.5098 0 48 -21.4902 48 -48c0 -8.83984 -7.16016 -16 -16 -16h-384
+c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h381.2zM416 112c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="angry" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM136 208c0 -17.7002 14.4004 -32 32.0996 -32c17.7002 0 32 14.2998 32 32c0 2.90039 -1 5.5 -1.69922 8.2002c0.599609 0 1.19922 -0.200195 1.69922 -0.200195
+c6.90039 0 13.2002 4.5 15.3008 11.4004c2.59961 8.39941 -2.2002 17.3994 -10.7002 19.8994l-80 24c-8.5 2.5 -17.4004 -2.2002 -19.9004 -10.7002c-2.59961 -8.39941 2.2002 -17.3994 10.7002 -19.8994l31 -9.2998c-6.40039 -5.90039 -10.5 -14.1006 -10.5 -23.4004z
+M304 53.7998c13.4004 -16.0996 38.2998 4 24.5 20.5c-20 24 -49.4004 37.7998 -80.5996 37.7998c-31.2002 0 -60.6006 -13.7998 -80.6006 -37.7998c-13.5996 -16.2998 11.1006 -36.7998 24.6006 -20.5c27.8994 33.4004 84.2998 33.4004 112.1 0zM380.6 240.7
+c8.5 2.5 13.3008 11.3994 10.8008 19.8994c-2.5 8.40039 -11.5 13.2002 -19.9004 10.7002l-80 -24c-8.40039 -2.5 -13.2002 -11.3994 -10.7002 -19.8994c2.10059 -6.90039 8.40039 -11.4004 15.2998 -11.4004c0.600586 0 1.10059 0.0996094 1.7002 0.200195
+c-0.799805 -2.60059 -1.7002 -5.2998 -1.7002 -8.2002c0 -17.7002 14.3008 -32 32 -32c17.7002 0 32 14.2998 32 32c0 9.2998 -4.19922 17.5996 -10.5 23.4004z" />
+ <glyph glyph-name="archway" unicode="" horiz-adv-x="576"
+d="M560 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-159.98c-8.83984 0 -16 7.16016 -16 16v16l-0.0195312 160c0 53.0195 -42.9805 96 -96 96s-96 -42.9805 -96 -96v-176c0 -8.83984 -7.16016 -16 -16 -16h-159.98
+c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h15.9805v352h512v-352h16zM560 448c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-544c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h544z" />
+ <glyph glyph-name="atlas" unicode="" horiz-adv-x="448"
+d="M318.38 240c-5.28027 -31.2197 -25.5898 -57.1699 -53.2998 -70.4102c7.66992 19.0605 12.7197 43.3799 14.21 70.4102h39.0898zM318.38 272h-39.0898c-1.49023 27.0303 -6.53027 51.3496 -14.21 70.4102c27.71 -13.2402 48.0098 -39.1904 53.2998 -70.4102zM224 350.69
+c7.69043 -7.4502 20.7695 -34.4307 23.4404 -78.6904h-46.8701c2.66016 44.2695 15.7393 71.2402 23.4297 78.6904zM182.92 342.41c-7.67969 -19.0605 -12.7197 -43.3799 -14.21 -70.4102h-39.0898c5.28027 31.2197 25.5898 57.1699 53.2998 70.4102zM182.92 169.59
+c-27.71 13.2402 -48.0195 39.1904 -53.2998 70.4102h39.0898c1.49023 -27.0303 6.53027 -51.3496 14.21 -70.4102zM247.43 240c-2.66016 -44.2598 -15.7393 -71.2402 -23.4395 -78.6904c-7.69043 7.4502 -20.7705 34.4307 -23.4307 78.6904h46.8701zM448 89.5996
+c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320c0 54.4004 41.5996 96 96 96
+h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM224 384c-70.6904 0 -128 -57.3096 -128 -128s57.3096 -128 128 -128s128 57.3096 128 128s-57.3096 128 -128 128zM384 0v64h-288c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h288z" />
+ <glyph glyph-name="award" unicode="" horiz-adv-x="384"
+d="M97.1201 85.3701c13.79 -13.7803 32.1104 -21.3701 51.6104 -21.3701c12.4395 0 24.4697 3.54004 35.3096 9.58008l-52.0498 -127.62c-4.39062 -10.7695 -18.4307 -13.4004 -26.4307 -4.95996l-36.2393 38.2803l-52.6904 -2.01074
+c-11.6201 -0.439453 -19.8203 11.2607 -15.4297 22.0303l45.3701 111.24c7.55957 -5.87012 15.9199 -10.7705 25.4297 -13.3203c20.96 -5.60938 16.4297 -3.16016 25.1201 -11.8496zM382.8 -0.700195c4.39062 -10.7598 -3.80957 -22.4697 -15.4297 -22.0303
+l-52.6904 2.01074l-36.25 -38.2803c-7.98926 -8.44043 -22.04 -5.80957 -26.4297 4.95996l-52.0498 127.62c10.8398 -6.03027 22.8701 -9.58008 35.3096 -9.58008c19.5 0 37.8301 7.58984 51.6201 21.3701c8.66992 8.66992 4.0498 6.20996 25.1201 11.8496
+c9.50977 2.5498 17.8701 7.44043 25.4297 13.3203zM263 108c-13.2305 -13.4697 -33.8398 -15.8799 -49.7305 -5.82031c-5.37305 3.41211 -14.8994 6.18066 -21.2646 6.18066c-6.36426 0 -15.8916 -2.76855 -21.2646 -6.18066
+c-15.9004 -10.0596 -36.5098 -7.64941 -49.7402 5.82031c-14.7305 15 -16.4004 14.04 -38.7803 20.1396c-13.8896 3.79004 -24.75 14.8408 -28.4697 28.9805c-7.48047 28.3994 -5.54004 24.9697 -25.9502 45.75c-10.1699 10.3604 -14.1396 25.4502 -10.4199 39.5898
+c7.48047 28.4199 7.46973 24.46 0 52.8203c-3.72949 14.1396 0.25 29.2295 10.4199 39.5801c20.4102 20.7793 18.4805 17.3594 25.9502 45.75c3.71973 14.1396 14.5801 25.1895 28.4697 28.9795c27.8906 7.61035 24.5303 5.62988 44.9404 26.4102
+c10.1699 10.3604 25 14.4004 38.8896 10.6104c27.9199 -7.61035 24.0303 -7.60059 51.9004 0c13.8896 3.79004 28.7197 -0.260742 38.8896 -10.6104c20.4297 -20.79 17.0703 -18.7998 44.9502 -26.4102c13.8896 -3.79004 24.75 -14.8398 28.4697 -28.9795
+c7.48047 -28.3906 5.54004 -24.9707 25.9502 -45.75c10.1699 -10.3506 14.1396 -25.4404 10.4199 -39.5801c-7.47949 -28.4102 -7.46973 -24.4502 0 -52.8301c3.71973 -14.1406 -0.25 -29.2305 -10.4199 -39.5801c-20.4102 -20.7803 -18.4697 -17.3506 -25.9502 -45.75
+c-3.71973 -14.1396 -14.5801 -25.1904 -28.4697 -28.9805c-21.7598 -5.92969 -23.5098 -4.58984 -38.79 -20.1396zM97.6602 272.04c0 -53.0303 42.2402 -96.0205 94.3398 -96.0205s94.3398 42.9902 94.3398 96.0205s-42.2402 96.0195 -94.3398 96.0195
+s-94.3398 -42.9893 -94.3398 -96.0195z" />
+ <glyph glyph-name="backspace" unicode="" horiz-adv-x="640"
+d="M576 384c35.3496 0 64 -28.6504 64 -64v-256c0 -35.3496 -28.6504 -64 -64 -64h-370.75c-16.9697 0 -33.25 6.75 -45.25 18.75l-150.63 150.63c-12.5 12.4902 -12.5 32.75 0 45.25l150.63 150.62c10.3438 10.3496 30.6143 18.75 45.2471 18.75h0.0126953h370.74z
+M491.31 129.94l-62.0596 62.0596l62.0596 62.0596c6.25 6.25 6.25 16.3809 0 22.6309l-22.6191 22.6191c-6.25 6.25 -16.3809 6.25 -22.6309 0l-62.0596 -62.0596l-62.0596 62.0596c-6.25 6.25 -16.3809 6.25 -22.6309 0l-22.6191 -22.6191
+c-6.25 -6.25 -6.25 -16.3809 0 -22.6309l62.0596 -62.0596l-62.0596 -62.0596c-6.25 -6.25 -6.25 -16.3809 0 -22.6309l22.6191 -22.6191c6.25 -6.25 16.3809 -6.25 22.6309 0l62.0596 62.0596l62.0596 -62.0596c6.25 -6.25 16.3809 -6.25 22.6309 0l22.6191 22.6191
+c6.25 6.25 6.25 16.3809 0 22.6309z" />
+ <glyph glyph-name="bezier-curve" unicode="" horiz-adv-x="640"
+d="M368 416c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM208 360v-72c0 -9.4502 2.17969 -18.3604 5.87988 -26.4404c-34.2695 -24.3496 -59.7402 -59.9492 -71.04 -101.56
+h-49.3994c13.6797 64.6797 54.1699 119.48 109.54 152h-79.7305c-9.5 -23.4404 -32.4102 -40 -59.25 -40c-35.3398 0 -64 28.6504 -64 64s28.6602 64 64 64c26.8398 0 49.75 -16.5596 59.25 -40h84.75zM160 128c17.6699 0 32 -14.3301 32 -32v-96
+c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96zM576 400c35.3398 0 64 -28.6504 64 -64s-28.6602 -64 -64 -64c-26.8398 0 -49.75 16.5596 -59.25 40h-79.7305c55.3701 -32.5195 95.8604 -87.3203 109.54 -152
+h-49.3994c-11.2998 41.6104 -36.7705 77.21 -71.04 101.56c3.68945 8.08008 5.87988 16.9902 5.87988 26.4404v72h84.75c9.5 23.4404 32.4102 40 59.25 40zM576 128c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32
+v96c0 17.6699 14.3301 32 32 32h96z" />
+ <glyph glyph-name="bong" unicode="" horiz-adv-x="448"
+d="M302.5 -64h-221c-23.1699 0 -44.4199 12.5801 -56 32.6602c-16.1904 28.0703 -25.5 60.5898 -25.5 95.3398c0 71.0303 38.6699 132.9 96 166.11v153.93l-15.9697 -0.0205078c-8.85059 -0.00976562 -16.0303 7.16016 -16.0205 16.0107l0.0400391 31.7295
+c0.00976562 8.82031 7.16016 15.9707 15.9805 15.9805l223.939 0.259766c8.85059 0.00976562 16.0303 -7.16992 16.0205 -16.0195l-0.0400391 -31.7207c-0.00976562 -8.81934 -7.16016 -15.9697 -15.9805 -15.9795l-15.9697 -0.0205078v-154.16
+c14.1201 -8.17969 27.0898 -18.1396 38.6504 -29.5098l39.4092 39.4102l-9.37988 9.37988c-6.25 6.25 -6.25 16.3799 0 22.6299l11.3105 11.3105c6.25 6.25 16.3799 6.25 22.6299 0l52.6895 -52.6904c6.25 -6.25 6.25 -16.3799 0 -22.6299l-11.2998 -11.3203
+c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-9.37988 9.37988l-43.4404 -43.4395c17.3604 -28.8105 27.4404 -62.5 27.4404 -98.6201c0 -34.75 -9.30957 -67.2598 -25.5 -95.3398c-11.5703 -20.0801 -32.8203 -32.6602 -56 -32.6602zM120.06 188.57
+c-24.8096 -14.3701 -44.1094 -35.7305 -56.5596 -60.5703h257c-12.4404 24.8398 -31.75 46.2002 -56.5596 60.5703l-23.9404 13.8701v181.76l-96 -0.110352v-181.649z" />
+ <glyph glyph-name="brush" unicode="" horiz-adv-x="384"
+d="M352 448c17.6699 0 32 -14.3301 32 -32v-224h-384v224c0 17.6699 14.3301 32 32 32h320zM0 128v32h384v-32c0 -35.3496 -28.6602 -64 -64 -64h-64v-64c0 -35.3496 -28.6602 -64 -64 -64s-64 28.6504 -64 64v64h-64c-35.3398 0 -64 28.6504 -64 64zM192 24
+c-13.25 0 -24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24s24 10.75 24 24c0 13.2598 -10.75 24 -24 24z" />
+ <glyph glyph-name="bus-alt" unicode=""
+d="M488 320c13.25 0 24 -10.7402 24 -24v-80c0 -13.25 -10.75 -24 -24 -24h-8v-166.4c0 -12.7998 -9.59961 -25.5996 -25.5996 -25.5996h-6.40039v-32c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-192v-32c0 -17.6699 -14.3301 -32 -32 -32h-32
+c-17.6699 0 -32 14.3301 -32 32v32c-17.6699 0 -32 14.3301 -32 32v160h-8c-13.25 0 -24 10.75 -24 24v80c0 13.2598 10.75 24 24 24h8v48c0 44.7998 99.2002 80 224 80s224 -35.2002 224 -80v-48h8zM160 376v-16c0 -4.41992 3.58008 -8 8 -8h176c4.41992 0 8 3.58008 8 8
+v16c0 4.41992 -3.58008 8 -8 8h-176c-4.41992 0 -8 -3.58008 -8 -8zM112 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM240 160v160h-112c-17.6699 0 -32 -14.3301 -32 -32v-96c0 -17.6699 14.3301 -32 32 -32h112zM272 160
+h112c17.6699 0 32 14.3301 32 32v96c0 17.6699 -14.3301 32 -32 32h-112v-160zM400 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="cannabis" unicode=""
+d="M503.47 87.75c5.24023 -2.75977 8.52051 -8.20996 8.53027 -14.1504c0.00976562 -5.92969 -3.26953 -11.3691 -8.50977 -14.1494c-2.4502 -1.29004 -60.7705 -31.7197 -133.49 -31.7197c-6.12988 0 -11.96 0.0996094 -17.5 0.30957
+c11.3604 -22.2305 16.5195 -38.3096 16.8096 -39.2197c1.80078 -5.68066 0.290039 -11.8906 -3.90918 -16.1104c-2.5918 -2.60059 -7.67578 -4.71094 -11.3467 -4.71094c-1.34277 0 -3.47168 0.322266 -4.75391 0.720703c-1.83008 0.580078 -37.7197 11.9902 -77.2998 39.29
+v-64.0098c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8v64.0195c-39.5801 -27.2998 -75.4697 -38.7197 -77.2998 -39.2891c-1.28223 -0.398438 -3.41113 -0.72168 -4.75391 -0.72168c-3.6709 0 -8.75488 2.11035 -11.3467 4.71094
+c-4.19922 4.2207 -5.70996 10.4307 -3.90918 16.1104c0.290039 0.910156 5.43945 16.9902 16.8096 39.2197c-5.54004 -0.209961 -11.3604 -0.30957 -17.5 -0.30957c-72.7305 0 -131.04 30.4297 -133.49 31.7197c-4.69629 2.48926 -8.50879 8.82422 -8.50879 14.1396
+c0 5.32422 3.82129 11.6641 8.5293 14.1504c1.56934 0.820312 32.3896 16.8896 76.7793 25.8096c-64.25 75.1201 -84.0498 161.671 -84.9297 165.641c-0.210938 0.947266 -0.382812 2.50488 -0.382812 3.47559c0 3.65039 2.09375 8.71094 4.67285 11.2939
+c3.03027 3.04004 7.12012 4.7002 11.3203 4.7002c1.14941 0 2.2998 -0.129883 3.43945 -0.379883c3.89062 -0.860352 86.5508 -19.5996 160.58 -79.7598c0 1.45996 -0.00976562 2.92969 -0.00976562 4.39941c0 118.79 59.9805 213.721 62.5303 217.7
+c2.93945 4.58984 8.01953 7.37012 13.4697 7.37012h0.00195312c4.82812 0 10.8574 -3.30176 13.458 -7.37012c2.5498 -3.97949 62.5303 -98.9102 62.5303 -217.7c0 -1.46973 0 -2.93945 -0.00976562 -4.39941c74.0391 60.1699 156.699 78.9102 160.579 79.7598
+c1.15039 0.259766 2.30078 0.379883 3.44043 0.379883c4.2002 0 8.29004 -1.66016 11.3203 -4.7002c3.85938 -3.87012 5.47949 -9.43945 4.2998 -14.7695c-0.879883 -3.96973 -20.6797 -90.5205 -84.9297 -165.641c44.3896 -8.91992 75.2197 -24.9893 76.7793 -25.8096z" />
+ <glyph glyph-name="check-double" unicode=""
+d="M505 273.2c9.2998 -9.2998 9.2998 -24.5 -0.0996094 -34l-296 -296.2c-9.30078 -9.40039 -24.5 -9.40039 -33.9004 0l-168 168.1c-9.40039 9.40039 -9.40039 24.6006 0 34l39.7002 39.7002c9.2998 9.40039 24.5 9.40039 33.8994 0l111.4 -111.5l239.5 239.5
+c9.2998 9.40039 24.5 9.40039 33.9004 0zM180.7 167.2l-112 112.2c-6.2002 6.19922 -6.2002 16.2998 0 22.5996l45.2998 45.2998c6.2002 6.2998 16.4004 6.2998 22.5996 0l55.4004 -55.5l151.5 151.5c6.2002 6.2998 16.4004 6.2998 22.5996 0l45.2002 -45.2998
+c6.2002 -6.2002 6.2002 -16.2998 0 -22.5996l-208 -208.2c-6.2002 -6.2998 -16.3994 -6.2998 -22.5996 0z" />
+ <glyph glyph-name="cocktail" unicode="" horiz-adv-x="576"
+d="M296 -16c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-240c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h56v125.22l-168.74 168.73c-15.5195 15.5195 -4.5293 42.0498 17.4199 42.0498h366.641c21.9492 0 32.9395 -26.5303 17.4199 -42.0498
+l-168.74 -168.73v-125.22h56zM432 448c79.5303 0 144 -64.4697 144 -144s-64.4697 -144 -144 -144c-27.4102 0 -52.7695 8.08008 -74.5801 21.3799l35.2598 35.2598c12.0303 -5.43945 25.2803 -8.63965 39.3203 -8.63965c52.9297 0 96 43.0596 96 96s-43.0703 96 -96 96
+c-35.3701 0 -65.9902 -19.4502 -82.6396 -48h-52.54c19.8301 55.7998 72.5693 96 135.18 96z" />
+ <glyph glyph-name="concierge-bell" unicode=""
+d="M288 317.46c108.51 -15.5703 192 -108.64 192 -221.46h-448c0 112.82 83.4902 205.89 192 221.46v18.54h-16c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h96c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-16v-18.54zM496 64
+c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" />
+ <glyph glyph-name="cookie" unicode=""
+d="M510.37 193.21c4.37988 -27.6602 -0.110352 -56 -12.8203 -80.96l-35.0996 -68.8701c-10.7695 -21.1328 -36.6592 -47.0273 -57.79 -57.7998l-69.1201 -35.21c-24.8301 -12.6396 -53.0098 -17.1104 -80.5205 -12.75l-76.6992 12.1396
+c-23.3896 3.70801 -55.9639 20.3066 -72.71 37.0498l-54.7607 54.75c-16.7959 16.8027 -33.4443 49.4844 -37.1592 72.9502l-12.0801 76.2705c-0.901367 5.68848 -1.63281 14.9805 -1.63281 20.7412c0 17.5723 6.47461 44.541 14.4521 60.1982l35.1006 68.8799
+c10.7666 21.1357 36.6562 47.0303 57.79 57.8008l69.1201 35.21c24.8291 12.6494 53.0098 17.1201 80.5195 12.7598l76.7002 -12.1504c27.5303 -4.34961 52.9795 -17.3301 72.71 -37.0498l54.7598 -54.75c16.7969 -16.8027 33.4443 -49.4844 37.1602 -72.9502zM176 80
+c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM208 240c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM368 112c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="cookie-bite" unicode=""
+d="M510.52 192.18c4.10059 -27.3301 -0.349609 -55.2695 -12.9092 -79.9102l-35.1006 -68.8799c-10.7656 -21.1367 -36.6562 -47.0361 -57.79 -57.8096l-69.1299 -35.21c-24.8301 -12.6504 -53.0195 -17.1201 -80.5303 -12.7598l-76.71 12.1494
+c-23.3916 3.70801 -55.9658 20.3105 -72.71 37.0605l-54.7695 54.7598c-16.7969 16.8057 -33.4443 49.4912 -37.1602 72.96l-12.0801 76.2695c-0.900391 5.68945 -1.63184 14.9824 -1.63184 20.7422c0 17.5752 6.47461 44.5479 14.4521 60.208l35.0996 68.8799
+c10.7646 21.1396 36.6543 47.0391 57.79 57.8105l69.1299 35.2197c24.5898 12.5205 52.46 16.96 79.7207 12.8203c0.859375 -69.96 57.6895 -126.45 127.859 -126.45c0 -70.1699 56.5 -127.01 126.47 -127.86zM176 80c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32
+s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM208 240c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM368 112c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="crop-alt" unicode=""
+d="M488 96c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-40v-40c0 -13.25 -10.75 -24 -24 -24h-48c-13.25 0 -24 10.75 -24 24v328h-160v96h224c17.6699 0 32 -14.3301 32 -32v-256h40zM160 424v-328h160v-96h-224c-17.6699 0 -32 14.3301 -32 32v256h-40
+c-13.25 0 -24 10.75 -24 24v48c0 13.2598 10.75 24 24 24h40v40c0 13.2598 10.75 24 24 24h48c13.25 0 24 -10.7402 24 -24z" />
+ <glyph glyph-name="digital-tachograph" unicode="" horiz-adv-x="640"
+d="M608 352c17.6699 0 32 -14.3301 32 -32v-256c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v256c0 17.6699 14.3301 32 32 32h576zM304 96v8c0 4.41992 -3.58008 8 -8 8h-224c-4.41992 0 -8 -3.58008 -8 -8v-8c0 -4.41992 3.58008 -8 8 -8h224
+c4.41992 0 8 3.58008 8 8zM72 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16zM136 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-16
+c-4.41992 0 -8 -3.58008 -8 -8v-16zM200 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16zM264 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8
+h-16c-4.41992 0 -8 -3.58008 -8 -8v-16zM304 224v48c0 8.83984 -7.16016 16 -16 16h-208c-8.83984 0 -16 -7.16016 -16 -16v-48c0 -8.83984 7.16016 -16 16 -16h208c8.83984 0 16 7.16016 16 16zM576 96v8c0 4.41992 -3.58008 8 -8 8h-224c-4.41992 0 -8 -3.58008 -8 -8v-8
+c0 -4.41992 3.58008 -8 8 -8h224c4.41992 0 8 3.58008 8 8z" />
+ <glyph glyph-name="dizzy" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM152 233.4l28.7002 -28.7002c14.7002 -14.7998 37.7998 7.39941 22.5996 22.5996l-28.7002 28.7002l28.7002 28.7002c15 14.8994 -7.59961 37.5996 -22.5996 22.5996
+l-28.7002 -28.7002l-28.7002 28.7002c-14.8994 15 -37.5996 -7.59961 -22.5996 -22.5996l28.7002 -28.7002l-28.7002 -28.7002c-15.2002 -15.0996 7.7998 -37.3994 22.5996 -22.5996zM248 32c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64
+s28.7002 -64 64 -64zM395.3 227.3l-28.7002 28.7002l28.7002 28.7002c15 14.8994 -7.59961 37.5996 -22.5996 22.5996l-28.7002 -28.7002l-28.7002 28.7002c-14.8994 15 -37.5996 -7.59961 -22.5996 -22.5996l28.7002 -28.7002l-28.7002 -28.7002
+c-15.2002 -15.0996 7.7998 -37.3994 22.5996 -22.5996l28.7002 28.7002l28.7002 -28.7002c14.7002 -14.7998 37.7998 7.39941 22.5996 22.5996z" />
+ <glyph glyph-name="drafting-compass" unicode=""
+d="M457.01 103.58l54.9805 -95.2305l-7.02051 -58.25c-1.2793 -10.5898 -12.3594 -16.9893 -22.1699 -12.7998l-53.9502 23.04l-54.3799 94.1904c29.9102 11.8701 57.4902 28.7197 82.54 49.0498zM499.5 198.14c-52.6201 -83.1299 -144.45 -134.14 -243.5 -134.14
+c-35.3799 0 -69.8701 6.71973 -102.06 18.96l-70.8008 -122.63l-53.9492 -23.04c-9.81055 -4.19043 -20.8906 2.20996 -22.1709 12.7998l-7.01953 58.25l71.2803 123.46c-21.29 17.8105 -40.4102 38.3799 -55.9805 62.0205
+c-4.99023 7.56934 -2.20996 17.9297 5.64062 22.4697l27.75 16.0703c7.40918 4.29004 16.5898 1.76953 21.3799 -5.33008c9.71973 -14.4102 21.1299 -27.3906 33.6797 -39l68.2998 118.31c-7.43945 13.6299 -12.0498 29.0303 -12.0498 45.6602c0 53.0195 42.9805 96 96 96
+s96 -42.9805 96 -96c0 -16.6299 -4.61035 -32.0303 -12.0596 -45.6602l51.79 -89.71c-23.0508 -23.1699 -51.3809 -39.96 -82.6104 -48.9199l-51.0898 88.5c-0.69043 -0.0195312 -1.33984 -0.209961 -2.04004 -0.209961s-1.33984 0.19043 -2.04004 0.209961
+l-67.3604 -116.68c22.1797 -7.28027 45.4805 -11.5303 69.4102 -11.5303c76.25 0 147.01 38.8496 188.12 102.38c4.64941 7.17969 13.7803 9.87012 21.2598 5.71973l28.0703 -15.5693c7.93945 -4.40039 10.9102 -14.7207 6.0498 -22.3906zM256 384
+c-17.6699 0 -32 -14.3301 -32 -32s14.3301 -32 32 -32s32 14.3301 32 32s-14.3301 32 -32 32z" />
+ <glyph glyph-name="drum" unicode="" horiz-adv-x="576"
+d="M458.08 327.12c71.3799 -23.29 117.91 -60.75 117.92 -103.13v-160.83c0 -30.46 -24.0303 -58.4004 -64 -80.3701v96.3701c0 17.5996 -14.4004 32 -32 32s-32 -14.4004 -32 -32v-122.41c-37.4004 -11.1299 -81 -18.4404 -128 -20.75v111.16c0 17.5996 -14.4004 32 -32 32
+s-32 -14.4004 -32 -32v-111.15c-47 2.31055 -90.5996 9.62012 -128 20.75v122.41c0 17.5996 -14.4004 32 -32 32s-32 -14.4004 -32 -32v-96.3701c-39.9697 21.9697 -64 49.9102 -64 80.3701v160.83c0 70.6904 128.94 128 288 128
+c21.8467 -0.00585938 57.167 -2.2373 78.8398 -4.98047l160.69 96.4102c15.1699 9.10059 34.8096 4.18066 43.9102 -10.9697c9.08984 -15.1602 4.18945 -34.8203 -10.9707 -43.9102zM288 144c132.54 0 240 35.8096 240 79.9902c0 30.2695 -50.4502 56.5996 -124.82 70.1895
+l-162.71 -97.6201c-14.3994 -8.63965 -34.3496 -4.95996 -43.9102 10.9707c-9.08984 15.1602 -4.18945 34.8193 10.9707 43.9102l87.4102 52.4395c-2.32031 0.0205078 -4.60059 0.120117 -6.94043 0.120117c-132.55 0 -240 -35.8203 -240 -80s107.45 -80 240 -80z" />
+ <glyph glyph-name="drum-steelpan" unicode="" horiz-adv-x="576"
+d="M288 416c159.06 0 288 -57.3096 288 -128v-192c0 -70.6904 -128.94 -128 -288 -128s-288 57.3096 -288 128v192c0 70.6904 128.94 128 288 128zM205.01 257.64c5.11035 19.0605 2.49023 38.96 -7.37012 56.0508l-25.5996 44.3398
+c-73.9297 -13.6406 -124.04 -39.8701 -124.04 -70.0303c0 -30.7803 52.2305 -57.46 128.7 -70.8398c13.7695 9.91016 23.8594 23.8701 28.3096 40.4795zM288 208c21.0801 0 41.4102 1 60.8896 2.7002c-8.05957 26.1299 -32.1494 45.2998 -60.8896 45.2998
+s-52.8301 -19.1699 -60.8896 -45.2998c19.4795 -1.7002 39.8096 -2.7002 60.8896 -2.7002zM352 352v13.04c-20.4004 1.87988 -41.7998 2.95996 -64 2.95996s-43.5996 -1.08008 -64 -2.95996v-13.04c0 -35.29 28.71 -64 64 -64s64 28.71 64 64zM398.93 217.1
+c76.6699 13.3604 129.07 40.0703 129.07 70.9004c0 30.21 -50.2803 56.5 -124.44 70.0996l-25.6494 -44.4199c-9.87012 -17.0801 -12.4902 -36.9795 -7.37988 -56.04c4.45996 -16.6396 14.5898 -30.6299 28.3994 -40.54z" />
+ <glyph glyph-name="feather-alt" unicode=""
+d="M512 448c-1.80957 -26.2598 -11.71 -132.86 -53.6201 -234.79l-106.54 -53.21h81.1406c-9.08008 -16.4102 -19.2002 -32.2305 -30.4502 -47.1201l-146.79 -48.8799h100.95c-35.5605 -30.0703 -79.1006 -51.0996 -132.58 -56.54
+c-41.8105 -4.83008 -83.8701 -7.21973 -125.96 -7.36035l-57.1309 -57.0693c-9.38965 -9.37012 -24.5996 -9.37012 -33.9795 0s-9.37988 24.5693 0 33.9395l259.5 259.24c6.25 6.25 6.25 16.3799 0 22.6299s-16.4004 6.25 -22.6504 0l-178.87 -178.689
+c1.15039 26.7998 2.90039 53.5801 5.99023 80.2393c25.4307 249.41 389.21 284.051 440.99 287.61z" />
+ <glyph glyph-name="file-contract" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM64 376v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8
+h-80c-4.41992 0 -8 -3.58008 -8 -8zM64 312v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM256.81 64c-4.19922 0 -8.13965 2.44043 -10.1592 6.5
+c-11.9502 23.8604 -46.2305 30.3496 -66 14.1602l-13.8809 41.6396c-3.28906 9.82031 -12.4297 16.4102 -22.7695 16.4102s-19.4805 -6.59961 -22.7803 -16.4102l-18.1895 -54.6396c-1.53027 -4.58008 -5.81055 -7.66016 -10.6406 -7.66016h-12.3896
+c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h12.3896c18.6201 0 35.1104 11.8701 41 29.5303l10.6104 31.8799l16.8301 -50.46c2.03027 -6.14062 7.58008 -10.4404 14.0303 -10.8906c0.389648 -0.0292969 0.759766 -0.0498047 1.13965 -0.0498047h0.00976562
+c5.45508 0 11.8613 3.96094 14.2998 8.83984l7.6709 15.3408c2.7998 5.59961 7.93945 6.18945 10.0195 6.18945s7.21973 -0.599609 10.1699 -6.51953c7.37012 -14.7207 22.1904 -23.8604 38.6396 -23.8604h47.1904c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16h-47.1904z
+M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
+ <glyph glyph-name="file-download" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM300.45 100.64c10.1299 10.0703 3.00977 27.3604 -11.2705 27.3604h-65.1797v80
+c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-80h-65.1797c-14.2803 0 -21.4004 -17.29 -11.25 -27.3604l96.4199 -95.6992c6.64941 -6.61035 17.3896 -6.61035 24.04 0zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961
+c6.40039 0 12.5 -2.5 17 -7z" />
+ <glyph glyph-name="file-export" unicode="" horiz-adv-x="576"
+d="M384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004zM571 140c6.59961 -6.59961 6.59961 -17.4004 0 -24l-95.7002 -96.5c-10.0996 -10.0996 -27.3994 -3 -27.3994 11.2998v65.2002h-64v64h64v65.0996
+c0 14.3008 17.2998 21.4004 27.3994 11.3008zM192 112c0 -8.7998 7.2002 -16 16 -16h176v-136c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24h136v-128h-176
+c-8.7998 0 -16 -7.2002 -16 -16v-32z" />
+ <glyph glyph-name="file-import" unicode=""
+d="M16 160h112v-64h-112c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16zM505 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM352 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24
+h-336c-13.2998 0 -24 10.7002 -24 24v136h127.9v-65.0996c0 -14.3008 17.2998 -21.4004 27.3994 -11.3008l95.7002 96.4004c6.59961 6.59961 6.59961 17.2998 0 24l-95.5996 96.5c-10.1006 10.0996 -27.4004 3 -27.4004 -11.2998v-65.2002h-128v264
+c0 13.2998 10.7002 24 24 24h200v-136z" />
+ <glyph glyph-name="file-invoice" unicode="" horiz-adv-x="384"
+d="M288 192v-64h-192v64h192zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464
+c0 13.2998 10.7002 24 24 24h200v-136zM64 376v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM64 312v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16
+c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM320 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8zM320 208c0 8.83984 -7.16016 16 -16 16h-224
+c-8.83984 0 -16 -7.16016 -16 -16v-96c0 -8.83984 7.16016 -16 16 -16h224c8.83984 0 16 7.16016 16 16v96z" />
+ <glyph glyph-name="file-invoice-dollar" unicode="" horiz-adv-x="384"
+d="M377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7zM224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136z
+M64 376v-16c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8zM64 296c0 -4.41992 3.58008 -8 8 -8h80c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-80c-4.41992 0 -8 -3.58008 -8 -8
+v-16zM208 32.1201c23.6201 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104
+c4.55957 0 8.94922 -1.29004 12.8193 -3.71973c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v24.29c0 4.41992 -3.58008 8 -8 8h-16
+c-4.41992 0 -8 -3.58008 -8 -8v-24.1201c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104
+c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-24.29c0 -4.41992 3.58008 -8 8 -8h16
+c4.41992 0 8 3.58008 8 8v24.1201z" />
+ <glyph glyph-name="file-prescription" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM292.53 132.52c-6.25 6.25 -16.3799 6.25 -22.6299 0l-29.9004 -29.8994l-33.46 33.46
+c19.8398 10.8701 33.46 31.7002 33.46 55.9199c0 35.3496 -28.6504 64 -64 64h-80c-8.83984 0 -16 -7.16016 -16 -16v-160c0 -8.83984 7.16016 -16 16 -16h16c8.83984 0 16 7.16016 16 16v48h18.7402l59.3193 -59.3096l-30.0596 -30.0605
+c-6.25 -6.25 -6.25 -16.3799 0 -22.6299l11.3096 -11.3096c6.25 -6.25 16.3809 -6.25 22.6309 0l30.0596 30.0596l30.0596 -30.0703c6.25 -6.25 16.3809 -6.25 22.6309 0l11.3096 11.3105c6.25 6.25 6.25 16.3799 0 22.6299l-30.0596 30.0596l29.8994 29.9004
+c6.25 6.25 6.25 16.3799 0 22.6299zM176 176h-48v32h48c8.82031 0 16 -7.17969 16 -16s-7.17969 -16 -16 -16zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004z" />
+ <glyph glyph-name="file-signature" unicode="" horiz-adv-x="576"
+d="M218.17 23.8604c7.25 -14.4707 21.71 -23.4404 37.8301 -23.75l128 -0.110352v-40c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24h136.01v-46.5498l-128 -127.09
+v-82.1201c-3.87012 0.30957 -7.46973 2.47949 -9.35938 6.25977c-11.9404 23.8604 -46.25 30.3496 -66 14.1602l-13.8809 41.6396c-3.28906 9.82031 -12.4297 16.4102 -22.7695 16.4102s-19.4805 -6.59961 -22.7803 -16.4102l-18.1895 -54.6396
+c-1.53027 -4.58008 -5.81055 -7.66016 -10.6406 -7.66016h-12.3896c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h12.3896c18.6201 0 35.1104 11.8701 41 29.5303l10.6104 31.8799l16.8301 -50.4697c4.4502 -13.46 23.1104 -14.8701 29.4795 -2.09082
+l7.6709 15.3408c2.7998 5.59961 7.93945 6.18945 10.0195 6.18945s7.21973 -0.599609 10.1699 -6.51953zM384 326.1v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7l97.9004 -98c4.5 -4.5 7 -10.5996 7 -16.9004zM288 101.04l162.79 161.62l67.8799 -67.8799
+l-161.68 -162.78h-68.9902v69.04zM568.54 280.67c9.9502 -9.93945 9.9502 -26.0703 0 -36.0098l-27.25 -27.25l-67.8799 67.8799l27.25 27.25c9.93945 9.94043 26.0703 9.94043 36.0098 0z" />
+ <glyph glyph-name="file-upload" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM289.18 95.9902c14.2803 0 21.4004 17.29 11.25 27.3594l-96.4199 95.7002
+c-6.64941 6.61035 -17.3896 6.61035 -24.04 0l-96.4199 -95.7002c-10.1396 -10.0693 -3.00977 -27.3594 11.2705 -27.3594h65.1797v-80c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16v80h65.1797zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128
+v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
+ <glyph glyph-name="fill" unicode=""
+d="M502.63 230.94c12.4902 -12.5 12.4902 -32.7607 0 -45.2607l-221.57 -221.569c-18.75 -18.75 -43.3096 -28.1201 -67.8799 -28.1201c-24.5596 0 -49.1201 9.37988 -67.8701 28.1201l-117.189 117.189c-37.4902 37.4902 -37.4902 98.2598 0 135.75l94.7598 94.7598
+l-86.1895 86.1807c-6.24023 6.25 -6.24023 16.3799 0 22.6299l22.6191 22.6104c6.24023 6.25 16.3809 6.25 22.6201 0l86.1807 -86.1807l81.5801 81.5801c6.23926 6.25 14.4297 9.37012 22.6191 9.37012c8.19043 0 16.3809 -3.12012 22.6309 -9.37012zM386.41 159.97
+l48.3496 48.3398l-162.45 162.44l-58.9492 -58.9502l58.6094 -58.5996c12.4902 -12.4902 12.4902 -32.75 0 -45.2402c-12.4893 -12.4902 -32.75 -12.4902 -45.2393 0l-58.6104 58.5996l-81.6104 -81.6094l-13.1494 -13.1504
+c-3.86035 -3.84961 -6.07031 -7.99023 -7.43066 -11.8301h320.48z" />
+ <glyph glyph-name="fill-drip" unicode="" horiz-adv-x="576"
+d="M512 128c0 0 64 -92.6504 64 -128s-28.6602 -64 -64 -64s-64 28.6504 -64 64s64 128 64 128zM502.63 230.94c12.4902 -12.5 12.4902 -32.75 -0.00976562 -45.25l-221.57 -221.57c-18.7402 -18.75 -43.2998 -28.1201 -67.8701 -28.1201
+c-24.5596 0 -49.1299 9.37988 -67.8701 28.1201l-117.189 117.189c-37.4902 37.4902 -37.4902 98.2705 0 135.75l94.7598 94.7607l-86.1895 86.1797c-6.24023 6.24023 -6.24023 16.3701 0 22.6201l22.6191 22.6201c6.24023 6.25 16.3701 6.25 22.6201 0l86.1807 -86.1904
+l81.5801 81.5801c6.23926 6.25 14.4297 9.37012 22.6191 9.37012c8.19043 0 16.3809 -3.12012 22.6309 -9.37012zM386.41 159.97l48.3398 48.3398l-162.44 162.44l-58.9492 -58.9502l58.5996 -58.5996c12.4902 -12.4902 12.4902 -32.75 0 -45.2402
+s-32.75 -12.4902 -45.2402 0l-58.5996 58.5996l-81.6104 -81.6094l-13.1494 -13.1504c-3.86035 -3.84961 -6.07031 -7.99023 -7.43066 -11.8301h320.48z" />
+ <glyph glyph-name="fingerprint" unicode=""
+d="M256.12 202.04c13.2598 0 24 -10.75 23.9902 -24c1.55957 -99.1104 -15.9502 -176.61 -29.4805 -224.521c-2.97949 -10.5996 -12.6104 -17.5195 -23.0898 -17.5195c-20.9697 0 -25.8496 20.7695 -23.1201 30.4902c19.5605 69.6494 28.8398 139.3 27.7002 211.55
+c0 13.2598 10.75 24 24 24zM255.26 283.77c56.9707 -0.839844 104.03 -46.9199 104.91 -102.72c0.790039 -50.8994 -2.99023 -102.08 -11.2695 -152.109c-0.770508 -4.6709 -7.61035 -23.1006 -27.5801 -19.7705c-13.0703 2.16016 -21.9307 14.5205 -19.7607 27.5801
+c7.80078 47.2197 11.3809 95.5 10.6104 143.55c-0.469727 30.1299 -26.3096 55 -57.6201 55.4697c-34.5303 0.150391 -54.8594 -26.3896 -54.4502 -52.3398c0.800781 -51.4395 -4.0293 -102.93 -14.3691 -153.02c-2.69043 -12.9805 -15.3105 -21.3105 -28.3604 -18.6406
+c-12.9697 2.6709 -21.3301 15.3809 -18.6396 28.3604c9.61914 46.6396 14.1191 94.6104 13.3691 142.55c-0.849609 54.0205 41.9004 101.16 103.16 101.09zM144.57 303.55c10.2793 -8.37012 11.8398 -23.4795 3.48926 -33.7598
+c-18.7998 -23.0898 -28.4697 -51.0898 -28 -80.9697c0.640625 -40.6699 -2.66992 -81.4902 -9.85938 -121.33c-0.820312 -4.5498 -7.78027 -22.8604 -27.8906 -19.3604c-13.0498 2.36035 -21.6992 14.8398 -19.3594 27.8896c6.63965 36.7803 9.7002 74.4707 9.10938 112.051
+c-0.639648 40.7197 13.1309 80.5 38.75 112c8.39062 10.2793 23.46 11.8193 33.7607 3.47949zM254.04 365.88c101.09 -1.5 184.6 -83.0801 186.16 -181.83c0.0615234 -3.97852 0.111328 -10.4375 0.111328 -14.417c0 -29.1934 -2.68848 -76.4277 -6.00195 -105.433
+c-1.06934 -9.23047 -9.85938 -23.0605 -26.5791 -21.1104c-13.1602 1.5 -22.6104 13.4102 -21.1104 26.5801c4.2998 37.5205 6.16992 75.75 5.58008 113.63c-1.15039 73.0801 -63.4502 133.45 -138.88 134.58c-11.5303 0.0800781 -22.9502 -1.08008 -34 -3.68945
+c-12.8906 -3 -25.8301 4.93945 -28.8906 17.8291c-3.04004 12.9102 4.94043 25.8301 17.8301 28.8906c14.9102 3.53027 30.3701 5.37988 45.7803 4.96973zM506.11 244.43c6.22949 -28.2295 6.00977 -50.1602 5.83008 -72.3398
+c-0.110352 -13.1895 -10.8301 -23.7998 -24 -23.7998h-0.200195c-13.25 0.110352 -23.9102 10.9297 -23.7998 24.2002c0.209961 24.1895 0.00976562 40.1895 -4.7002 61.5996c-2.86035 12.9502 5.31934 25.75 18.2598 28.6104
+c13.0996 2.92969 25.75 -5.35059 28.6104 -18.2705zM465.99 335.15c7.62012 -10.8408 5 -25.8105 -5.83984 -33.4307c-10.8604 -7.58984 -25.8105 -5 -33.4199 5.86035c-39.8906 56.8301 -105.171 91.3604 -174.62 92.3896
+c-56.3408 0.810547 -108.92 -20.0596 -147.681 -58.8594c-37.1201 -37.1406 -57.1094 -86.5 -56.2793 -139l-0.160156 -23.6406c-0.379883 -13 -11.0498 -23.2998 -23.9707 -23.2998c-0.239258 0 -0.489258 0 -0.719727 0.0205078
+c-13.25 0.379883 -23.6699 11.4395 -23.2803 24.6895l0.120117 21.4697c-1.04004 65.6104 23.9502 127.28 70.3203 173.71c48.0098 48.0303 112.56 73.7607 182.35 72.9209c84.79 -1.27051 164.48 -43.4404 213.181 -112.83z" />
+ <glyph glyph-name="fish" unicode="" horiz-adv-x="576"
+d="M327.1 352c137.46 0 248.9 -128 248.9 -160s-111.44 -160 -248.9 -160c-89.9697 0 -168.55 54.7695 -212.279 101.62l-87.3301 -66.0498c-12.1299 -9.16992 -30.2402 0.599609 -27.1406 14.6602l24.1904 109.77l-24.1797 109.76
+c-3.10059 14.0605 15.0098 23.8398 27.1396 14.6602l87.3301 -66.0498c43.7295 46.8604 122.3 101.63 212.27 101.63zM414.53 168c13.25 0 24 10.75 24 24c0 13.2598 -10.7402 24 -24 24c-13.25 0 -24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" />
+ <glyph glyph-name="flushed" unicode="" horiz-adv-x="496"
+d="M344 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM152 248c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM248 440c137 0 248 -111 248 -248s-111 -248 -248 -248
+s-248 111 -248 248s111 248 248 248zM80 224c0 -39.7998 32.2002 -72 72 -72s72 32.2002 72 72s-32.2002 72 -72 72s-72 -32.2002 -72 -72zM312 48c21.2002 0 21.2002 32 0 32h-128c-21.2002 0 -21.2002 -32 0 -32h128zM344 152c39.7998 0 72 32.2002 72 72
+s-32.2002 72 -72 72s-72 -32.2002 -72 -72s32.2002 -72 72 -72z" />
+ <glyph glyph-name="frown-open" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM136 240c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM323.3 56.7002c11.4004 -3.5 22.5 6.2002 20.5 18.0996
+c-7 39.9004 -60.0996 61.2002 -95.7998 61.2002s-88.7998 -21.2002 -95.7998 -61.2002c-2 -11.7998 9 -21.5996 20.5 -18.0996c31.2002 9.59961 59.3994 15.2998 75.2998 15.2998s44.0996 -5.7002 75.2998 -15.2998zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32
+s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="glass-martini-alt" unicode=""
+d="M502.05 390.4l-214.05 -214.04v-192.36h56c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-240c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h56v192.36l-214.05 214.04c-21.25 21.2598 -6.2002 57.5996 23.8496 57.5996h444.4
+c30.0498 0 45.0996 -36.3398 23.8496 -57.5996zM443.77 400h-375.529l48 -48h279.529z" />
+ <glyph glyph-name="globe-africa" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM408 224.5c0 8.55957 6.94043 15.5 15.5 15.5h18.4297c-19.0693 76.9805 -82.6992 136.37 -161.92 149.21v-21.7002c0 -8.55957 -6.93945 -15.5 -15.5 -15.5
+h-24.21c-5.17969 0 -10.0195 -2.58984 -12.8896 -6.89941l-8.08008 -12.1104c-2.13965 -3.20996 -5.40039 -5.5 -9.13965 -6.44043l-14.4502 -3.60938c-6.90039 -1.73047 -11.7402 -7.93066 -11.7402 -15.04v-4.40039c0 -8.55957 6.94043 -15.5 15.5 -15.5h90.0498
+h0.00292969c3.54297 0 8.45215 -2.0332 10.957 -4.54004l6.91992 -6.91992c2.91016 -2.91016 6.85059 -4.54004 10.96 -4.54004h10.0908c8.55957 0 15.5 -6.93945 15.5 -15.5c0 -6.66992 -4.27051 -12.5898 -10.6006 -14.7002l-47.3096 -15.7695
+c-3.90039 -1.2998 -8.15039 -1 -11.8301 0.839844l-14.7207 7.36035c-7.5791 3.7998 -15.9492 5.76953 -24.4297 5.76953h-0.889648c-10.0527 -0.00195312 -24.7383 -4.89941 -32.7803 -10.9297l-27.5801 -20.6904c-13.75 -10.3193 -21.8496 -26.5098 -21.8496 -43.6992
+v-14.0605c0.00195312 -12.4902 7.16992 -29.7959 16 -38.6299c10.25 -10.2402 24.1396 -16 38.6299 -16h25.8799c8.55957 0 15.5 -6.94043 15.5 -15.5v-29.8896v-0.00390625c0 -10.2822 3.73145 -26.0898 8.33008 -35.2861
+c4.7002 -9.40039 14.3096 -15.3398 24.8203 -15.3398c8.19824 0.000976562 18.542 5.53809 23.0898 12.3594l13.0293 19.5498c5.9248 8.88477 17.125 21.9482 25 29.1602c2.4707 2.27051 4.14062 5.27051 4.76074 8.56055l4.2998 22.8301
+c0.439453 2.3291 1.41016 4.5293 2.83008 6.42969l18.7402 24.9795c2.00977 2.68066 3.09961 5.9502 3.09961 9.30078v11.3398c0 8.55957 -6.94043 15.5 -15.5 15.5h-8.20996c-5.17969 0 -10.0205 2.58984 -12.8896 6.89941l-13.2402 19.8604
+c-5.66992 8.50977 -1.70996 20.0703 7.99023 23.2998l2.64941 0.879883c1.31641 0.4375 3.50977 0.792969 4.89746 0.792969c2.5918 0 6.44531 -1.16602 8.60254 -2.60254l18.21 -12.1396c2.15527 -1.43945 6.00781 -2.60742 8.59961 -2.60742
+c2.01953 0 5.125 0.733398 6.93066 1.63672l15.3896 7.7002c5.25 2.62012 8.57031 7.99023 8.57031 13.8604v6.92969z" />
+ <glyph glyph-name="globe-americas" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM330.29 82.4004c7.56934 7.52832 13.7168 22.3037 13.7197 32.9795v0.00488281c0 6.97266 -4 16.6338 -8.92969 21.5654l-13.6904 13.6895
+c-6.00977 6 -14.1396 9.37012 -22.6299 9.37012h-66.75c-9.41016 4.70996 -21.4795 32 -32 32c-10.5195 0 -20.8994 2.4502 -30.3096 7.16016l-11.0801 5.54004c-4.0498 2.03027 -6.61035 6.16016 -6.61035 10.6904v0.00292969c0 4.75391 3.66016 9.83301 8.16992 11.3369
+l31.1699 10.3896c1.3584 0.452148 3.62305 0.818359 5.05469 0.818359c3.30078 0 8.00293 -1.75488 10.4961 -3.91797l9.2793 -8.06055c1.4502 -1.25977 3.31055 -1.95996 5.24023 -1.95996h5.63965c5.94043 0 9.81055 6.25977 7.15039 11.5801l-15.5898 31.1904
+c-0.464844 0.931641 -0.84082 2.53223 -0.84082 3.57227c0 1.86621 1.08398 4.43555 2.4209 5.7373l9.91992 9.65039c1.5 1.45996 3.5 2.26953 5.58008 2.26953h8.99023h0.00292969c1.82812 0 4.3623 1.04883 5.65625 2.33984l8 8
+c3.12012 3.12012 3.12012 8.19043 0 11.3105l-4.68945 4.68945c-3.12012 3.12012 -3.12012 8.19043 0 11.3105l10.3398 10.3398l4.69043 4.67969c6.25 6.25 6.25 16.3799 0 22.6299l-28.3008 28.3008c-8.26953 -0.310547 -16.3994 -1.12988 -24.3896 -2.41992v-11.3008
+c0 -11.8994 -12.5195 -19.6299 -23.1602 -14.3096l-24.0098 12.0098c-45.8398 -19.8496 -82.7305 -56.3896 -103.2 -101.89c9.92969 -14.7197 25.21 -37.3701 34.5898 -51.1406c4.29395 -6.3252 12.3848 -15.6172 18.0605 -20.7393l0.799805 -0.720703
+c9.5498 -8.60938 20.1699 -15.9697 31.6504 -21.75c14 -7.0498 34.4395 -18.1592 48.8096 -26.1094c10.1904 -5.62988 16.46 -16.3301 16.46 -27.9707v-32.0098c0 -8.49023 3.37012 -16.6299 9.37012 -22.6299c14.9902 -14.9902 24.3203 -38.6299 22.6299 -51.25v-27.3799
+c14.6504 0 28.8896 1.69043 42.6504 4.69043l17.3896 46.8496c2.04004 5.49023 3.25977 11.21 4.76953 16.8701c1.07031 4.00977 3.18066 7.70996 6.1709 10.71c3.31934 3.33008 7.40918 7.39941 11.3096 11.2803zM417 173.75l29.1797 -7.29004
+c1.08008 8.37988 1.82031 16.8701 1.82031 25.54c0 32.1299 -7.7998 62.4102 -21.3203 89.3301l-12.9795 -6.49023c-3.74023 -1.85938 -6.91992 -4.67969 -9.24023 -8.14941l-19.5898 -29.3809c-2.22754 -3.33594 -4.03516 -9.29883 -4.03516 -13.3096
+s1.80762 -9.97363 4.03516 -13.3096l17.9795 -26.9707c3.31055 -4.96973 8.36035 -8.51953 14.1504 -9.96973z" />
+ <glyph glyph-name="globe-asia" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM236.66 199.77l17.3701 28.9502c1.7998 2.99023 6.2002 2.82031 7.75977 -0.299805c1.34961 -2.70996 4.12012 -4.41992 7.15039 -4.41992h3.05957
+c4.41992 0 8 3.58008 8 8v78.1201c0 6.05957 -3.41992 11.5996 -8.83984 14.3096l-10.8301 5.41016c-5.49023 2.75 -5.96973 10.4004 -0.860352 13.8105l50.1602 38.5293c-19.4297 6.31055 -40.1201 9.82031 -61.6299 9.82031c-110.28 0 -200 -89.7197 -200 -200
+c0 -10.9199 1.12012 -21.5498 2.80957 -31.9902h62.5703c4.24023 0 8.31055 1.69043 11.3105 4.69043l19.4697 19.46c3.85938 3.85938 10.3701 2.7998 12.8096 -2.08008l22.6201 -45.2305c2.70996 -5.42969 8.25 -8.84961 14.3105 -8.84961h6.10938
+c8.83984 0 16 7.16016 16 16v9.37012c0 4.24023 -1.68945 8.30957 -4.68945 11.3096l-5.66016 5.66016c-3.12012 3.12012 -3.12012 8.19043 0 11.3105l5.66016 5.65918c3 3 7.06934 4.69043 11.3096 4.69043h0.310547c5.61914 0 10.8291 2.9502 13.7197 7.76953z
+M408 89.5703l-0.00976562 24.5996c0 4.24023 -1.69043 8.31055 -4.69043 11.3105l-11.9102 11.9092c-1.5 1.5 -2.33984 3.54004 -2.33984 5.66016v12.9307c0 2.20996 -1.79004 4 -4 4h-6.05957c-1.78027 0 -3.33984 -1.1709 -3.83984 -2.88086l-4.2002 -14.4697
+c-0.490234 -1.7002 -2.06055 -2.87988 -3.83984 -2.87988h-3.80078c-1.4707 0.000976562 -3.12305 1.10254 -3.68945 2.45996l-5.35059 12.8496c-1.23926 2.99023 -4.15918 4.93066 -7.38965 4.93066h-12.0898h-0.0117188c-1.4082 0 -3.48145 -0.663086 -4.62793 -1.48047
+l-23.71 -16.8896c-1.73047 -1.23047 -3.61035 -2.25977 -5.59082 -3.0498l-39.3398 -15.7402c-3.04004 -1.21973 -5.0293 -4.16016 -5.0293 -7.42969v-10.2002v-0.00292969c0 -1.8291 1.04785 -4.36328 2.33984 -5.65723l11.9102 -11.9102
+c3 -3 7.06934 -4.68945 11.3096 -4.68945h10.3398c1.31055 0 2.61035 0.15918 3.87988 0.479492l21.2705 5.32031c1.76465 0.441406 4.67383 0.798828 6.49316 0.798828c6.12012 0 14.5986 -3.51172 18.9268 -7.83887l13.0098 -13.0098
+c3 -3 7.07031 -4.69043 11.3096 -4.69043h15.1602c4.24023 0 8.31055 1.69043 11.3105 4.69043l9.56934 9.56934c3 3 4.69043 7.07031 4.69043 11.3105z" />
+ <glyph glyph-name="grimace" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM144 48v40h-40v-8c0 -17.7002 14.2998 -32 32 -32h8zM144 104v40h-8c-17.7002 0 -32 -14.2998 -32 -32v-8h40zM136 240c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32
+s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM208 48v40h-48v-40h48zM208 104v40h-48v-40h48zM272 48v40h-48v-40h48zM272 104v40h-48v-40h48zM336 48v40h-48v-40h48zM336 104v40h-48v-40h48zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32
+s14.2998 -32 32 -32zM392 80v8h-40v-40h8c17.7002 0 32 14.2998 32 32zM392 104v8c0 17.7002 -14.2998 32 -32 32h-8v-40h40z" />
+ <glyph glyph-name="grin" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
+s32 14.2998 32 32s-14.2998 32 -32 32zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7998 -9.39941 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002
+c-11.4004 3.7002 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
+ <glyph glyph-name="grin-alt" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM311.7 311.3c-12.4004 -18.3994 -15.2002 -36.8994 -15.7002 -55.2998c0.599609 -18.4004 3.2998 -36.9004 15.7002 -55.2998c8 -11.7002 25.0996 -11.4004 32.7002 0
+c12.3994 18.3994 15.1992 36.8994 15.6992 55.2998c-0.599609 18.4004 -3.2998 36.9004 -15.6992 55.2998c-8 11.7002 -25.1006 11.4004 -32.7002 0zM151.7 311.3c-12.4004 -18.3994 -15.2002 -36.8994 -15.7002 -55.2998
+c0.599609 -18.4004 3.2998 -36.9004 15.7002 -55.2998c8 -11.7002 25.0996 -11.4004 32.7002 0c12.3994 18.3994 15.1992 36.8994 15.6992 55.2998c-0.599609 18.4004 -3.2998 36.9004 -15.6992 55.2998c-8 11.7002 -25.1006 11.4004 -32.7002 0zM248 16
+c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.4004 3.7002 -22.7002 -6.10059 -20.7002 -17.9004
+c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
+ <glyph glyph-name="grin-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7998 -11.7998 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006
+c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM168 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17
+c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998
+c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.3008 3.7002 -22.7002 -6 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
+ <glyph glyph-name="grin-beam-sweat" unicode="" horiz-adv-x="504"
+d="M456 320c-26.5 0 -48 21 -48 47c0 20 28.5 60.4004 41.5996 77.7998c3.2002 4.2998 9.60059 4.2998 12.8008 0c13.0996 -17.3994 41.5996 -57.7998 41.5996 -77.7998c0 -26 -21.5 -47 -48 -47zM456 288c6.7998 0 13.2002 1.09961 19.5 2.59961
+c13.0996 -30.1992 20.5 -63.5 20.5 -98.5996c0 -137 -111 -248 -248 -248s-248 111 -248 248s111 248 248 248c50.2998 0 97 -15.0996 136.1 -40.7998c-7.7998 -18 -8.09961 -27.7998 -8.09961 -32.2002c0 -43.5996 35.9004 -79 80 -79zM328 296
+c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7998 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5
+c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM168 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
+c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7002 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002
+s-92.9004 5.5 -123.1 15.2002c-11.4004 3.7002 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
+ <glyph glyph-name="grin-hearts" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM90.4004 264.4c-7.7002 -20.2002 3.7998 -41.8008 24.1992 -47.2002l70.2002 -18.2002c4.60059 -1.2002 9.2998 1.5 10.5 6l19.4004 69.9004
+c5.59961 20.2998 -7.40039 41.0996 -28.7998 44.5c-18.7002 3 -36.5 -9.80078 -41.5 -27.9004l-2 -7.09961l-7.10059 1.89941c-18.2002 4.7998 -38.2002 -4.2998 -44.8994 -21.8994zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998
+c1.90039 11.7998 -9.2998 21.5 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.5 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998zM381.4 217.3
+c20.3994 5.2998 31.8994 26.9004 24.1992 47.2002c-6.69922 17.5996 -26.6992 26.5996 -44.8994 21.9004l-7.10059 -1.90039l-2 7.09961c-5.09961 18.1006 -22.8994 30.9004 -41.5 27.9004c-21.3994 -3.40039 -34.3994 -24.2002 -28.7998 -44.5l19.4004 -69.9004
+c1.2998 -4.5 6 -7.19922 10.5 -6z" />
+ <glyph glyph-name="grin-squint" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM281.8 250.3c-7.7002 -4.7002 -7.7002 -15.8994 0 -20.5996l80 -48c11.5 -6.7998 24.1006 7.59961 15.4004 18l-33.6006 40.2998l33.6006 40.2998
+c8.59961 10.2998 -3.7998 24.9004 -15.4004 18zM118.8 280.3l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18l80 48c7.7998 4.7002 7.7998 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18zM248 16
+c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7002 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.3008 3.7002 -22.7002 -6 -20.7002 -17.9004
+c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
+ <glyph glyph-name="grin-squint-tears" unicode=""
+d="M409.6 336.1c-5.59961 -0.799805 -10.2998 3.90039 -9.5 9.40039c3.30078 22.5996 12 73.5 26.8008 88.2998c19.0996 19.2002 50.6992 18.9004 70.2998 -0.700195c19.5996 -19.5996 19.8994 -51 0.700195 -70.1992
+c-14.8008 -14.8008 -65.7002 -23.6006 -88.3008 -26.8008zM102.4 47.9004c5.59961 0.799805 10.2998 -3.90039 9.5 -9.40039c-3.30078 -22.5996 -12 -73.5 -26.8008 -88.2998c-19.1992 -19.2002 -50.5996 -18.9004 -70.1992 0.700195
+c-19.6006 19.5996 -19.9004 51.0996 -0.800781 70.1992c14.8008 14.8008 65.7002 23.6006 88.3008 26.8008zM414.1 304.4c24 3.5 42.1006 7.39941 56.5 11.5c54.8008 -94.9004 42 -218.2 -39.1992 -299.301c-81.2002 -81.0996 -204.5 -94 -299.301 -39.1992
+c4.10059 14.3994 8.10059 32.5 11.5 56.5c2.90039 20.5 -12.5 49.5996 -45.6992 45.6992c-24.1006 -3.5 -42.1006 -7.39941 -56.5 -11.5c-54.8008 94.9004 -41.9004 218.2 39.1992 299.301c81.2002 81.0996 204.5 94 299.301 39.1992
+c-4.10059 -14.3994 -8.10059 -32.5 -11.5 -56.5c-2.90039 -20.5996 12.6992 -49.5996 45.6992 -45.6992zM255.7 342l-22.5 -90.5996c-2.2002 -8.60059 5.59961 -16.7002 14.5 -14.5l90.5 22.5996c13.0996 3.2998 11.5996 22.4004 -1.7998 23.5996l-52.3008 4.80078
+l-4.7998 52.2998c-1.2002 13.2998 -20.2998 15 -23.5996 1.7998zM164.8 111.7c1.2998 -13.4004 20.4004 -14.9004 23.5 -1.7002l22.6006 90.5c2.19922 8.7002 -5.7002 16.7002 -14.5 14.5l-90.5 -22.5996c-13.1006 -3.30078 -11.6006 -22.4004 1.7998 -23.6006
+l52.2998 -4.7998zM380.5 67.5c42.7998 42.9004 68 122.3 35.7002 167.6c-7.10059 9.90039 -21.9004 8.5 -27.2998 -2c-14.6006 -28.1992 -42.4004 -63.8994 -76.3008 -97.7998c-33.8994 -33.8994 -69.5 -61.7002 -97.7998 -76.2998
+c-10.7002 -5.40039 -11.7998 -20.2998 -2 -27.2002c14.4004 -10.2002 32.1006 -14.7002 51 -14.7002c41 0 87.4004 21.1006 116.7 50.4004z" />
+ <glyph glyph-name="grin-stars" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM94.5996 279.1c-6.19922 -1 -8.89941 -8.59961 -4.2998 -13.2998l25.4004 -24.5996l-6 -34.9004c-1 -6.2002 5.2998 -11 11 -7.89941l31.2998 16.2998l31.2002 -16.2002
+c5.7002 -3.09961 12 1.7002 11 7.90039l-6 34.8994l25.3994 24.6006c4.60059 4.59961 1.90039 12.1992 -4.2998 13.1992l-34.8994 5l-15.5 31.6006c-2.90039 5.7998 -11 5.7998 -13.9004 0l-15.5 -31.6006zM248 16c60.5996 0 134.5 38.2998 143.8 93.2998
+c1.90039 11.7998 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.4004 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998zM405.7 265.9
+c4.59961 4.59961 1.89941 12.1992 -4.40039 13.0996l-34.8994 5l-15.5 31.5996c-2.90039 5.80078 -11 5.80078 -13.9004 0l-15.5 -31.5996l-34.9004 -5c-6.19922 -1 -8.7998 -8.59961 -4.2998 -13.2002l25.4004 -24.5996l-6 -34.9004c-1 -6.2002 5.2998 -11 11 -7.89941
+l31.2998 16.2998l31.2998 -16.2002c5.7002 -3.09961 12 1.7002 11 7.90039l-6 34.8994z" />
+ <glyph glyph-name="grin-tears" unicode="" horiz-adv-x="640"
+d="M102.4 191.9c5.59961 0.799805 10.2998 -3.90039 9.5 -9.40039c-3.30078 -22.5996 -12 -73.5 -26.8008 -88.2998c-19.1992 -19.2002 -50.5996 -18.9004 -70.1992 0.700195c-19.6006 19.5996 -19.9004 51.0996 -0.800781 70.1992
+c14.8008 14.8008 65.7002 23.6006 88.3008 26.8008zM625.8 165.1c19.2002 -19.0996 18.7998 -50.6992 -0.799805 -70.2998c-19.5996 -19.5996 -51 -19.8994 -70.2002 -0.700195c-14.7998 14.8008 -23.5996 65.7002 -26.7998 88.3008c-0.799805 5.59961 4 10.2998 9.5 9.5
+c22.5996 -3.30078 73.5 -12 88.2998 -26.8008zM496.4 177.9c11.7998 -82.3008 29.8994 -100.4 35.7998 -106.301c0.899414 -1 2 -1.59961 3 -2.5c-42.7002 -74.6992 -123 -125.1 -215.2 -125.1s-172.5 50.4004 -215.2 125c1 0.900391 2.10059 1.59961 3 2.5
+c5.90039 6 24 24.0996 35.7998 106.4c2.90039 20.3994 -12.5 49.5996 -45.6992 45.6992c-8.90039 -1.2998 -16.8008 -2.69922 -24.3008 -4.09961c13.7002 124 118.7 220.5 246.4 220.5s232.7 -96.5 246.4 -220.5c-7.5 1.40039 -15.4004 2.7998 -24.3008 4.09961
+c-26.5996 3.80078 -49.5 -19.0996 -45.6992 -45.6992zM400 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
+c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM240 296c-23.7998 0 -52.7002 -29.2998 -55.7998 -71.4004c-0.700195 -8.5 10.7002 -11.8994 14.8994 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006
+c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.5 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004zM320 16c60.5996 0 134.5 38.2998 143.8 93.2998c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004
+c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.5 3.7002 -22.7002 -6.2002 -20.7002 -17.9004c9.2998 -55 83.2002 -93.2998 143.8 -93.2998z" />
+ <glyph glyph-name="grin-tongue" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248c0 -106.3 -67 -196.7 -161 -232c5.59961 12.2002 9 25.7002 9 40v45.5c24.7002 16.2002 43.5 38.0996 47.7998 63.7998c1.90039 11.7998 -9.2998 21.5 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002
+s-92.9004 5.5 -123.1 15.2002c-11.4004 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c4.2998 -25.7002 23.0996 -47.5996 47.7998 -63.7998v-45.5c0 -14.2998 3.40039 -27.7998 9 -40c-94 35.2998 -161 125.7 -161 232c0 137 111 248 248 248zM168 208
+c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM293.1 73.4004c0.800781 -0.400391 -0.5 0.299805 19 -9.30078v-64
+c0 -35.5996 -29.1992 -64.5 -64.8994 -64c-35.1006 0.400391 -63.1006 29.7002 -63.1006 64.9004v63c19.2002 9.59961 18 9 18.9004 9.40039c14.4004 6.5 31.0996 -2.2002 34.5996 -17.6006l1.80078 -7.7998c2.09961 -9.2002 15.1992 -9.2002 17.2998 0l1.7998 7.7998
+c3.5 15.4004 20.2002 24.1006 34.5996 17.6006z" />
+ <glyph glyph-name="grin-tongue-squint" unicode="" horiz-adv-x="496"
+d="M293.1 73.4004c0.800781 -0.400391 -0.5 0.299805 19 -9.30078v-64c0 -35.5996 -29.1992 -64.5 -64.8994 -64c-35.1006 0.400391 -63.1006 29.7002 -63.1006 64.9004v63c19.2002 9.59961 18 9 18.9004 9.40039c14.4004 6.5 31.0996 -2.2002 34.5996 -17.6006
+l1.80078 -7.7998c2.09961 -9.2002 15.1992 -9.2002 17.2998 0l1.7998 7.7998c3.5 15.4004 20.2002 24.1006 34.5996 17.6006zM248 440c137 0 248 -111 248 -248c0 -106.3 -67 -196.7 -161 -232c5.59961 12.2002 9 25.7002 9 40v45.5
+c24.7002 16.2002 43.5 38.0996 47.7998 63.7998c1.90039 11.7998 -9.2998 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.5 3.59961 -22.7002 -6.10059 -20.7002 -17.9004
+c4.2998 -25.7002 23.0996 -47.5996 47.7998 -63.7998v-45.5c0 -14.2998 3.40039 -27.7998 9 -40c-94 35.2998 -161 125.7 -161 232c0 137 111 248 248 248zM214.2 229.7c7.7002 4.7002 7.7002 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18
+l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18zM377.2 199.7l-33.6006 40.2998l33.6006 40.2998c8.5 10.2998 -3.7002 24.9004 -15.4004 18l-80 -48c-7.7998 -4.7002 -7.7998 -15.8994 0 -20.5996l80 -48
+c11.5 -6.7998 24.1006 7.59961 15.4004 18z" />
+ <glyph glyph-name="grin-tongue-wink" unicode="" horiz-adv-x="496"
+d="M344 264c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM248 440c137 0 248 -111 248 -248c0 -106.3 -67 -196.7 -161 -232c5.59961 12.2002 9 25.7002 9 40v45.5c24.7002 16.2002 43.5 38.0996 47.7998 63.7998
+c1.90039 11.7998 -9.2002 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002c-11.4004 3.59961 -22.7002 -6.10059 -20.7002 -17.9004c4.2998 -25.7002 23.0996 -47.5996 47.7998 -63.7998v-45.5
+c0 -14.2998 3.40039 -27.7998 9 -40c-94 35.2998 -161 125.7 -161 232c0 137 111 248 248 248zM192 215c8.40039 -7.40039 21.5996 -0.299805 20 10.7998c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006
+c-1.7998 -11.0996 11.2998 -18.2002 19.7998 -10.7998l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM344 176c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64s-64 -28.7002 -64 -64s28.7002 -64 64 -64zM293.1 73.4004c0.800781 -0.400391 -0.5 0.299805 19 -9.30078
+v-64c0 -35.5996 -29.1992 -64.5 -64.8994 -64c-35.1006 0.400391 -63.1006 29.7002 -63.1006 64.9004v63c19.2002 9.59961 18 9 18.9004 9.40039c14.4004 6.5 31.0996 -2.2002 34.5996 -17.6006l1.80078 -7.7998c2.09961 -9.2002 15.1992 -9.2002 17.2998 0l1.7998 7.7998
+c3.5 15.4004 20.2002 24.1006 34.5996 17.6006z" />
+ <glyph glyph-name="grin-wink" unicode="" horiz-adv-x="496"
+d="M0 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM200 240c0 17.7002 -14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32zM368 215c8.5 -7.40039 21.5996 -0.200195 20 10.7998
+c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-1.7998 -11.2002 11.5 -18.2002 19.7998 -10.7998l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM124.9 127.2c-11.4004 3.7002 -22.7002 -6 -20.7002 -17.9004
+c9.2998 -55 83.2002 -93.2998 143.8 -93.2998s134.6 38.2998 143.8 93.2998c1.90039 11.9004 -9.39941 21.6006 -20.7002 17.9004c-30.1992 -9.7002 -75.0996 -15.2002 -123.1 -15.2002s-92.9004 5.5 -123.1 15.2002z" />
+ <glyph glyph-name="grip-horizontal" unicode="" horiz-adv-x="448"
+d="M96 160c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM256 160c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64
+c0 17.6699 14.3301 32 32 32h64zM416 160c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM96 352c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64
+c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM256 352c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM416 352c17.6699 0 32 -14.3301 32 -32v-64
+c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64z" />
+ <glyph glyph-name="grip-vertical" unicode="" horiz-adv-x="320"
+d="M96 416c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM96 256c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64
+c0 17.6699 14.3301 32 32 32h64zM96 96c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM288 416c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64
+c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM288 256c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64zM288 96c17.6699 0 32 -14.3301 32 -32v-64
+c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h64z" />
+ <glyph glyph-name="headphones-alt" unicode=""
+d="M160 160c17.6699 0 32 -14.3496 32 -32.0596v-127.881c0 -17.6992 -14.3301 -32.0596 -32 -32.0596h-16c-35.3496 0 -64 28.71 -64 64.1201v63.7598c0 35.4199 28.6504 64.1201 64 64.1201h16zM368 160c35.3496 0 64 -28.71 64 -64.1201v-63.7598
+c0 -35.4102 -28.6504 -64.1201 -64 -64.1201h-16c-17.6699 0 -32 14.3604 -32 32.0596v127.881c0 17.71 14.3301 32.0596 32 32.0596h16zM256 416c143.09 0 251.43 -119.13 256 -256v-112c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v112
+c0 114.67 -93.3301 207.8 -208 207.82c-114.67 -0.0205078 -208 -93.1504 -208 -207.82v-112c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v112c4.57031 136.87 112.91 256 256 256z" />
+ <glyph glyph-name="headset" unicode=""
+d="M192 240v-112c0 -17.6699 -14.3301 -32 -32 -32h-16c-35.3496 0 -64 28.6504 -64 64v48c0 35.3496 28.6504 64 64 64h16c17.6699 0 32 -14.3301 32 -32zM368 96h-16c-17.6699 0 -32 14.3301 -32 32v112c0 17.6699 14.3301 32 32 32h16c35.3496 0 64 -28.6504 64 -64v-48
+c0 -35.3496 -28.6504 -64 -64 -64zM256 448c142.82 0 251.42 -118.83 256 -256v-165.72c0 -49.8604 -40.4199 -90.2803 -90.2803 -90.2803h-181.72c-26.5098 0 -48 21.4902 -48 48s21.4902 48 48 48h32c26.5098 0 48 -21.4902 48 -48h101.72
+c23.3506 0 42.2803 18.9297 42.2803 42.2803c0 0 -0.0400391 163.29 -0.120117 165.72h0.120117c0 114.69 -93.3096 208 -208 208s-208 -93.3096 -208 -208v-16c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v16c4.58008 137.17 113.18 256 256 256z
+" />
+ <glyph glyph-name="highlighter" unicode="" horiz-adv-x="544"
+d="M0 -31.9805l68.3301 70.4707l67.04 -67.04l-35.4502 -35.4502zM124.61 208.03l41.5195 35.4395l173.34 -173.34l-35.5498 -41.6396c-9.5 -10.7705 -24.4199 -14.9805 -38.1504 -10.7803l-42.7393 13.0801l-50.8604 -50.8604l-96.2295 96.2305l50.9297 50.9395
+l-13.0498 42.8301c-0.876953 2.87891 -1.58887 7.65625 -1.58887 10.665c0 9.11328 5.5459 21.4043 12.3789 27.4355zM527.92 368.73c20.5 -20.5 21.5303 -53.3906 2.34961 -75.1309l-169.949 -199.06l-169.771 169.78l199.05 169.96
+c21.7402 19.1699 54.6309 18.1396 75.1201 -2.35059z" />
+ <glyph glyph-name="hot-tub" unicode=""
+d="M414.21 270.35c-3.15039 25.3906 -14.6104 47.9707 -31.9697 62.1406c-27.7305 22.6299 -45.79 58.0498 -50.1299 97.1602c-1.09082 9.7793 6.48926 18.3496 16 18.3496h16.1201c7.98926 0 14.7295 -6.13965 15.7393 -14.3398
+c3.16016 -25.4004 14.6104 -47.9805 31.9805 -62.1504c27.7295 -22.6299 45.79 -58.0498 50.1299 -97.1602c1.08008 -9.7793 -6.49023 -18.3496 -16 -18.3496h-16.1201c-8 0 -14.7295 6.13965 -15.75 14.3496zM306.21 270.35
+c-3.15039 25.3906 -14.6104 47.9707 -31.9697 62.1406c-27.7305 22.6299 -45.79 58.0498 -50.1299 97.1602c-1.09082 9.7793 6.48926 18.3496 16 18.3496h16.1201c7.98926 0 14.7295 -6.13965 15.7393 -14.3398c3.16016 -25.4004 14.6104 -47.9805 31.9805 -62.1504
+c27.7295 -22.6299 45.79 -58.0498 50.1299 -97.1602c1.08008 -9.7793 -6.49023 -18.3496 -16 -18.3496h-16.1201c-8 0 -14.7295 6.13965 -15.75 14.3496zM480 192c17.6699 0 32 -14.3301 32 -32v-160c0 -35.3496 -28.6504 -64 -64 -64h-384c-35.3496 0 -64 28.6504 -64 64
+v224c0 35.3496 28.6504 64 64 64h42.6699h0.00292969c11.7754 0 28.9775 -5.73438 38.3975 -12.7998l110.93 -83.2002h224zM128 8v112c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM224 8v112
+c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM320 8v112c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM416 8
+v112c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-112c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8zM64 320c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64s64 -28.6504 64 -64s-28.6504 -64 -64 -64z" />
+ <glyph glyph-name="hotel" unicode="" horiz-adv-x="576"
+d="M560 384h-16v-384h16c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-240v80c0 8.7998 -7.2002 16 -16 16h-32c-8.7998 0 -16 -7.2002 -16 -16v-80h-240c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h15.9805v384h-15.9805
+c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h544c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16zM256 339.2v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004
+c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998zM256 243.2v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004
+c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998zM128 339.2v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004
+c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998zM179.2 192c6.39941 0 12.7998 6.40039 12.7998 12.7998v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004zM192 64h192c0 53.0195 -42.9805 96 -96 96s-96 -42.9805 -96 -96zM448 204.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998zM448 300.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-38.4004
+c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h38.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998z" />
+ <glyph glyph-name="joint" unicode="" horiz-adv-x="640"
+d="M444.34 266.9c-35.7803 25.0693 -60.3398 63.0098 -60.3398 106.699v66.4004c0 4.41992 3.58008 8 8 8h48c4.41992 0 8 -3.58008 8 -8v-62.3096c0 -29.0303 15.8496 -54.71 39.6602 -71.3203c35.3301 -24.6504 56.3398 -64.8203 56.3398 -108.061v-30.3096
+c0 -4.41992 -3.58008 -8 -8 -8h-48c-4.41992 0 -8 3.58008 -8 8v30.3096c0 27.4307 -13.2803 52.9102 -35.6602 68.5908zM194.97 89.0195c22.3701 3.60059 45.0801 -4.30957 59.8203 -21.5098l112.72 -131.51h-88.5693c-98.6406 0 -195.29 27.7197 -278.94 80
+c59.6904 37.3096 126.03 61.9297 194.97 73.0195zM553.28 360.91c54.3096 -36.4102 86.7197 -97.1602 86.7197 -162.601v-30.3096c0 -4.41992 -3.58008 -8 -8 -8h-48c-4.41992 0 -8 3.58008 -8 8v30.3096c0 50.1504 -25.21 96.6504 -67.3604 123.99
+c-18.4697 11.9805 -28.6396 33.3701 -28.6396 55.3906v62.3096c0 4.41992 3.58008 8 8 8h48c4.41992 0 8 -3.58008 8 -8v-62.3096c0 -6.82031 3.61035 -12.9805 9.28027 -16.7803zM360.89 95.9502h0.108398c16.2441 0 38.0049 -10.0127 48.5723 -22.3506l117.949 -137.6
+h-88.4492h-0.00292969c-16.248 0 -38.0146 10.0127 -48.5869 22.3496l-117.801 137.431c1.40039 0.0195312 53.8105 0.109375 88.21 0.169922zM616 96c13.25 0 24 -10.7402 24 -24v-112c0 -13.25 -10.75 -24 -24 -24h-17.4199h-0.00292969
+c-16.248 0 -38.0146 10.0127 -48.5869 22.3496l-117.99 137.65h184z" />
+ <glyph glyph-name="kiss" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM304 52c0 13 -13.4004 27.2998 -35.2002 36.4004
+c21.7998 8.69922 35.2002 23 35.2002 36c0 19.1992 -28.7002 41.5 -71.5 44c-8.40039 1.09961 -12.2002 -11.8008 -3.59961 -15.4004l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.2002c-6.10059 -2.59961 -6 -12.2998 0 -14.7998
+l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.19922c-8.5 -3.60059 -4.90039 -16.2002 3.59961 -15.4004c42.7998 2.5 71.5 24.7998 71.5 44zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32
+s14.2998 -32 32 -32z" />
+ <glyph glyph-name="kiss-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM209 220.1c4.2002 -7.5 15.5996 -4 15.0996 4.5c-3.2998 42.1006 -32.1992 71.4004 -56 71.4004c-23.7998 0 -52.6992 -29.2998 -56 -71.4004
+c-0.699219 -8.5 10.7002 -11.8994 14.9004 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006s23.7998 -7.90039 31.5 -21.6006zM304 52c0 13 -13.4004 27.2998 -35.2002 36.4004c21.7998 8.69922 35.2002 23 35.2002 36c0 19.1992 -28.7002 41.5 -71.5 44
+c-8.40039 1.09961 -12.2002 -11.8008 -3.59961 -15.4004l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.2002c-6.10059 -2.59961 -6 -12.2998 0 -14.7998l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5
+l-17 -7.19922c-8.5 -3.60059 -4.90039 -16.2002 3.59961 -15.4004c42.7998 2.5 71.5 24.7998 71.5 44zM369 220.1c4.2002 -7.5 15.5996 -4 15.0996 4.5c-3.2998 42.1006 -32.1992 71.4004 -56 71.4004c-23.7998 0 -52.6992 -29.2998 -56 -71.4004
+c-0.699219 -8.5 10.8008 -11.7998 14.9004 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006s23.7998 -7.90039 31.5 -21.6006z" />
+ <glyph glyph-name="kiss-wink-heart" unicode="" horiz-adv-x="504"
+d="M501.1 45.5c9.2002 -23.9004 -4.39941 -49.4004 -28.5 -55.7002l-83 -21.5c-5.39941 -1.39941 -10.8994 1.7998 -12.3994 7.10059l-22.9004 82.5996c-6.59961 24 8.7998 48.5996 34 52.5996c22 3.5 43.1006 -11.5996 49 -33l2.2998 -8.39941l8.40039 2.2002
+c21.5996 5.59961 45.0996 -5.10059 53.0996 -25.9004zM323.5 49.5c0 0 23.5996 -83.9004 23.9004 -84.5996c-30.5 -13.4004 -64 -20.9004 -99.4004 -20.9004c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248c0 -31.7998 -6.2002 -62.0996 -17.0996 -90
+c-6 1.5 -12.2002 2.7998 -18.6006 2.90039c-29.0996 49.7998 -98.0996 50.5996 -127.8 4.2998c-11.2998 -17.7002 -14.5996 -39.4004 -9 -59.7002zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM288 52
+c0 13 -13.4004 27.2998 -35.2002 36.4004c21.7998 8.69922 35.2002 23 35.2002 36c0 19.1992 -28.7002 41.5 -71.5 44c-8.2002 1.19922 -12.4004 -11.7002 -3.59961 -15.4004l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.2002
+c-5.7002 -2.5 -6 -12.2998 0 -14.7998l17 -7.2002c13 -5.5 20.7998 -13.5 20.7998 -21.5s-7.7998 -16 -20.7998 -21.5l-17 -7.19922c-8.5 -3.60059 -4.90039 -16.2002 3.59961 -15.4004c42.7998 2.5 71.5 24.7998 71.5 44zM304 231l9.7002 8.5
+c14.7998 13.2002 46.2002 13.2002 61 0l9.5 -8.5c8.5 -7.5 21.5 -0.299805 19.7998 10.7998c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-1.7998 -11.2002 11.5 -18.2002 19.7998 -10.7998z" />
+ <glyph glyph-name="laugh" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 288c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM168 288c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32
+s32 14.2998 32 32s-14.2998 32 -32 32zM256 16c73.4004 0 134 55 142.9 126c1.19922 9.59961 -6.30078 18 -15.9004 18h-270c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16z" />
+ <glyph glyph-name="laugh-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM272 240.6c-0.700195 -8.59961 10.9004 -11.8994 15.0996 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
+c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004s-52.7002 -29.2998 -56 -71.4004zM112 240.6c-0.700195 -8.5 10.7998 -11.8994 15.0996 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006
+c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004s-52.7002 -29.2998 -56 -71.4004zM398.9 142c1.19922 9.59961 -6.30078 18 -15.9004 18h-270
+c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16c73.4004 0 134 55 142.9 126z" />
+ <glyph glyph-name="laugh-squint" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM281.8 278.3c-7.7002 -4.7002 -7.7002 -15.8994 0 -20.5996l80 -48c11.5 -6.7998 24.1006 7.59961 15.4004 18l-33.6006 40.2998l33.6006 40.2998
+c8.59961 10.2998 -3.7998 24.9004 -15.4004 18zM118.8 308.3l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18l80 48c7.7998 4.7002 7.7998 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18zM398.9 142
+c1.19922 9.59961 -6.30078 18 -15.9004 18h-270c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16c73.4004 0 134 55 142.9 126z" />
+ <glyph glyph-name="laugh-wink" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM268.1 241.9c-1.69922 -11.2002 11.5 -18.3008 19.9004 -10.9004l9.59961 8.59961c14.8008 13.2002 46.2002 13.2002 61 0l9.5 -8.5
+c8.40039 -7.5 21.5 -0.299805 19.8008 10.8008c-4 25.1992 -34.2002 42.0996 -59.9004 42.0996s-55.9004 -16.9004 -59.9004 -42.0996zM168 288c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM398.9 142
+c1.19922 9.59961 -6.30078 18 -15.9004 18h-270c-9.59961 0 -17.0996 -8.5 -15.9004 -18c8.90039 -71 69.5 -126 142.9 -126h16c73.4004 0 134 55 142.9 126z" />
+ <glyph glyph-name="luggage-cart" unicode="" horiz-adv-x="640"
+d="M224 128c-17.6699 0 -32 14.3301 -32 32v160c0 17.6699 14.3301 32 32 32h32v-224h-32zM576 160c0 -17.6699 -14.3301 -32 -32 -32h-32v224h32c17.6699 0 32 -14.3301 32 -32v-160zM624 64c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-82.9404
+c1.79004 -5.03027 2.94043 -10.3604 2.94043 -16c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48c0 5.63965 1.15039 10.9697 2.94043 16h-197.881c1.79004 -5.03027 2.94043 -10.3604 2.94043 -16c0 -26.5098 -21.4902 -48 -48 -48s-48 21.4902 -48 48
+c0 5.63965 1.15039 10.9697 2.94043 16h-82.9404c-8.83984 0 -16 7.16016 -16 16v368h-48c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h96c8.83984 0 16 -7.16016 16 -16v-368h496zM480 352v-224h-192v272c0 26.5098 21.4902 48 48 48h96
+c26.5098 0 48 -21.4902 48 -48v-48zM432 352v48h-96v-48h96z" />
+ <glyph glyph-name="map-marked" unicode="" horiz-adv-x="576"
+d="M288 448c69.5898 0 126 -56.4102 126 -126c0 -56.2598 -82.3496 -158.8 -113.9 -196.02c-6.37988 -7.54004 -17.8096 -7.54004 -24.1992 0c-31.5508 37.2197 -113.9 139.76 -113.9 196.02c0 69.5898 56.4102 126 126 126zM20.1201 232.05l118.63 47.4502
+c5.17969 -14.8799 12.4102 -30.4404 21.25 -46.4199v-233.08l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v250.32c0.00292969 11.959 9.0166 25.2686 20.1201 29.71zM288 88.3301c14.0703 0 27.3799 6.17969 36.5098 16.9502
+c19.6699 23.2002 40.5703 49.6299 59.4902 76.7197v-245.99l-192 64v182c18.9199 -27.0996 39.8301 -53.5195 59.4902 -76.7197c9.12988 -10.7803 22.4395 -16.96 36.5098 -16.96zM554.06 286.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-250.32
+c0 -11.9609 -9.01367 -25.2705 -20.1201 -29.71l-139.88 -55.9502v288z" />
+ <glyph glyph-name="map-marked-alt" unicode="" horiz-adv-x="576"
+d="M288 448c69.5898 0 126 -56.4102 126 -126c0 -56.2598 -82.3496 -158.8 -113.9 -196.02c-6.37988 -7.54004 -17.8096 -7.54004 -24.1992 0c-31.5508 37.2197 -113.9 139.76 -113.9 196.02c0 69.5898 56.4102 126 126 126zM288 280c23.2002 0 42 18.7998 42 42
+s-18.7998 42 -42 42s-42 -18.7998 -42 -42s18.7998 -42 42 -42zM20.1201 232.05l118.63 47.4502c5.17969 -14.8799 12.4102 -30.4404 21.25 -46.4199v-233.08l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v250.32
+c0.00292969 11.959 9.0166 25.2686 20.1201 29.71zM288 88.3301c14.0703 0 27.3799 6.17969 36.5098 16.9502c19.6699 23.2002 40.5703 49.6299 59.4902 76.7197v-245.99l-192 64v182c18.9199 -27.0996 39.8301 -53.5195 59.4902 -76.7197
+c9.12988 -10.7803 22.4395 -16.96 36.5098 -16.96zM554.06 286.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-250.32c0 -11.9609 -9.01367 -25.2705 -20.1201 -29.71l-139.88 -55.9502v288z" />
+ <glyph glyph-name="marker" unicode=""
+d="M93.9502 157.97l75.3994 75.4004l128.021 -128.021l-75.4004 -75.3994c-44.8223 -44.8203 -132.335 -86.8428 -195.34 -93.7998c-15.2803 -1.69043 -28.1895 11.2295 -26.4902 26.5098l0.0302734 0.229492c7.00195 62.9189 49.0156 150.315 93.7803 195.08z
+M485.49 421.49c35.3496 -35.3604 35.3496 -92.6699 0 -128.021l-165.49 -165.489l-128.02 128.02l98.4795 98.4697l-19.5898 19.5898l-87.1504 -87.1494c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6201 22.6201c-6.25 6.25 -6.25 16.3799 0 22.6299l104.12 104.12
+c15.6104 15.6201 40.9404 15.6201 56.5605 0l36.5596 -36.5498l21.7598 21.7598c35.3506 35.3496 92.6699 35.3496 128.021 0z" />
+ <glyph glyph-name="medal" unicode=""
+d="M223.75 317.25c-42.04 -6.55957 -79.8398 -25.6201 -109.56 -53.3896l-111.271 158.96c-7.41992 10.6094 0.160156 25.1797 13.1104 25.1797h111.149c10.0029 0 22.2959 -6.96191 27.4404 -15.54zM495.97 448c12.9502 0 20.5303 -14.5703 13.1104 -25.1797
+l-111.271 -158.95c-29.7197 27.7598 -67.5195 46.8203 -109.56 53.3799l69.1299 115.21c5.78027 9.63965 16.2002 15.54 27.4404 15.54h111.149zM256 288c97.2002 0 176 -78.7998 176 -176s-78.7998 -176 -176 -176s-176 78.7998 -176 176s78.7998 176 176 176z
+M348.52 130.74c6.82031 6.63965 3.05078 18.2295 -6.34961 19.5898l-52.4297 7.63965l-23.4307 47.5205c-2.10938 4.25 -6.21973 6.38965 -10.3291 6.38965c-4.09082 0 -8.1709 -2.11035 -10.2803 -6.38965l-23.4307 -47.5205l-52.4297 -7.63965
+c-9.39941 -1.36035 -13.1699 -12.9502 -6.34961 -19.5898l37.9297 -36.96l-8.96973 -52.2207c-1.60059 -9.34961 8.25 -16.54 16.6494 -12.0898l46.9004 24.6504l46.9102 -24.6504c8.38965 -4.41992 18.25 2.73047 16.6494 12.0898l-8.96973 52.2207z" />
+ <glyph glyph-name="meh-blank" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32
+s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="meh-rolling-eyes" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM88 224c0 -35.2998 28.7002 -64 64 -64s64 28.7002 64 64c0 24.2998 -13.7002 45.2002 -33.5996 56c0.699219 -2.59961 1.59961 -5.2002 1.59961 -8
+c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 2.7998 0.900391 5.40039 1.59961 8c-19.8994 -10.7998 -33.5996 -31.7002 -33.5996 -56zM312 48c21.2002 0 21.2002 32 0 32h-128c-21.2002 0 -21.2002 -32 0 -32h128zM344 160c35.2998 0 64 28.7002 64 64
+c0 24.2998 -13.7002 45.2002 -33.5996 56c0.699219 -2.59961 1.59961 -5.2002 1.59961 -8c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 2.7998 0.900391 5.40039 1.59961 8c-19.8994 -10.7998 -33.5996 -31.7002 -33.5996 -56c0 -35.2998 28.7002 -64 64 -64z
+" />
+ <glyph glyph-name="monument" unicode="" horiz-adv-x="384"
+d="M368 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-352c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h352zM289.14 347.26l30.8604 -315.26h-256l30.8701 315.26c0.625 6.27344 4.75098 14.9834 9.20996 19.4404
+l76.5996 76.6094c6.25 6.25 16.3799 6.25 22.6299 0l76.6201 -76.6094c4.45898 -4.45703 8.58496 -13.167 9.20996 -19.4404zM240 140.8v38.4004c0 6.39941 -6.40039 12.7998 -12.7998 12.7998h-70.4004c-6.39941 0 -12.7998 -6.40039 -12.7998 -12.7998v-38.4004
+c0 -6.39941 6.40039 -12.7998 12.7998 -12.7998h70.4004c6.39941 0 12.7998 6.40039 12.7998 12.7998z" />
+ <glyph glyph-name="mortar-pestle" unicode=""
+d="M501.54 387.09l-99.0801 -99.0898h-151.37l203.811 152.86c5.25293 3.93848 14.8457 7.13477 21.4121 7.13477c4.64941 0 11.7988 -1.68652 15.957 -3.76465c21.7803 -10.8906 26.4902 -39.9209 9.27051 -57.1406zM496 256c8.83984 0 16 -7.16016 16 -16v-32
+c0 -8.83984 -7.16016 -16 -16 -16h-16c0 -80.9805 -50.2002 -150.11 -121.13 -178.32c12.7695 -16.8701 21.7295 -36.7998 24.9502 -58.6895c1.45996 -9.91992 -6.04004 -18.9805 -16.0703 -18.9805h-223.5c-10.0303 0 -17.5303 9.06055 -16.0703 18.9805
+c3.23047 21.8896 12.1904 41.8193 24.9502 58.6895c-70.9297 28.21 -121.13 97.3398 -121.13 178.32h-16c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" />
+ <glyph glyph-name="paint-roller" unicode=""
+d="M416 320c0 -17.6699 -14.3301 -32 -32 -32h-352c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h352c17.6699 0 32 -14.3301 32 -32v-96zM448 384c35.3496 0 64 -28.6504 64 -64v-64c0 -53.0195 -42.9805 -96 -96 -96h-160v-32
+c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32v32c0 35.3496 28.6504 64 64 64h160c17.6699 0 32 14.3301 32 32v128z" />
+ <glyph glyph-name="passport" unicode="" horiz-adv-x="448"
+d="M129.62 272c5.28027 31.2197 25.5898 57.1699 53.2998 70.4102c-7.66992 -19.0605 -12.7197 -43.3799 -14.21 -70.4102h-39.0898zM129.62 240h39.0898c1.49023 -27.0303 6.53027 -51.3496 14.21 -70.4102c-27.71 13.2402 -48.0098 39.1904 -53.2998 70.4102zM224 161.31
+c-7.69043 7.4502 -20.7695 34.4307 -23.4404 78.6904h46.8701c-2.66016 -44.2695 -15.7393 -71.2402 -23.4297 -78.6904zM200.57 272c2.66016 44.2598 15.7393 71.2402 23.4395 78.6904c7.69043 -7.4502 20.7705 -34.4307 23.4307 -78.6904h-46.8701zM265.08 169.59
+c7.67969 19.0605 12.7197 43.3799 14.21 70.4102h39.0898c-5.28027 -31.2197 -25.5898 -57.1699 -53.2998 -70.4102zM416 448c17.6699 0 32 -14.3301 32 -32v-448c0 -17.6699 -14.3301 -32 -32 -32h-352c-35.3496 0 -64 28.6504 -64 64v384c0 35.3496 28.6504 64 64 64h352z
+M336 32c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16h-224c-8.7998 0 -16 -7.2002 -16 -16s7.2002 -16 16 -16h224zM224 128c70.6904 0 128 57.3096 128 128s-57.3096 128 -128 128s-128 -57.3096 -128 -128s57.3096 -128 128 -128zM265.08 342.41
+c27.71 -13.2402 48.0195 -39.1904 53.2998 -70.4102h-39.0898c-1.49023 27.0303 -6.53027 51.3496 -14.21 70.4102z" />
+ <glyph glyph-name="pen-fancy" unicode=""
+d="M79.1797 165.06l84.0703 33.0703l98.8799 -98.8799l-33.0703 -84.0703c-2.79102 -8.38086 -11.8584 -17.4482 -20.2393 -20.2393l-176.82 -58.9404l-4.67969 4.67969l92.8896 92.8906c2.55957 -0.660156 5.03027 -1.57031 7.7998 -1.57031c17.6699 0 32 14.3301 32 32
+s-14.3301 32 -32 32s-32 -14.3301 -32 -32c0 -2.76953 0.910156 -5.24023 1.57031 -7.7998l-92.8896 -92.8906l-4.69043 4.69043l58.9404 176.82c2.79297 8.37891 11.8604 17.4463 20.2393 20.2393zM369.25 419.68c74.4805 84.2607 199.15 -39.1602 114.23 -114.229
+l-199.49 -183.11l-97.8506 97.8506z" />
+ <glyph glyph-name="pen-nib" unicode=""
+d="M136.6 309.21l151.4 42.79l128 -128l-42.79 -151.4c-5.08594 -17.9932 -23.6104 -37.3965 -41.3496 -43.3096l-279.86 -93.29l-14.6904 14.6904l150.11 150.109c6.25977 -2.99023 13.1797 -4.7998 20.5801 -4.7998c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48
+s-48 -21.4902 -48 -48c0 -7.40039 1.80957 -14.3203 4.7998 -20.5801l-150.109 -150.11l-14.6904 14.6904l93.29 279.86c5.91309 17.7393 25.3164 36.2637 43.3096 41.3496zM497.94 373.83c18.75 -18.7598 18.75 -49.1602 0 -67.9102l-56.5508 -56.5498l-128.02 128.02
+l56.5498 56.5508c18.75 18.75 49.1602 18.75 67.9102 0z" />
+ <glyph glyph-name="pencil-ruler" unicode=""
+d="M109.46 203.96l-100.17 100.18c-12.3896 12.3906 -12.3799 32.4707 0 44.8604l89.71 89.71c12.3896 12.3896 32.4697 12.3896 44.8604 0l33.6396 -33.6504l-61.6797 -61.6797c-3.10059 -3.08984 -3.10059 -8.11035 0 -11.21l11.21 -11.21
+c1.28027 -1.2832 3.79199 -2.3252 5.60449 -2.3252c1.81348 0 4.32422 1.04199 5.60547 2.3252l61.6797 61.6797l44.1201 -44.1201zM497.93 320.76l-46.0195 -46.0293l-113.2 113.199l46.0205 46.0107c18.7695 18.7598 49.1895 18.7598 67.9492 0l45.25 -45.25
+c18.75 -18.7607 18.7607 -49.1709 0 -67.9307zM316.08 365.29l113.2 -113.19l-296.92 -296.93l-107.45 -18.8398c-14.5 -2.5498 -27.1201 10.0703 -24.5898 24.5596l18.7598 107.44zM502.71 79.8604c12.3896 -12.3906 12.3896 -32.4707 0 -44.8604l-89.71 -89.7002
+c-12.3896 -12.3896 -32.4697 -12.3896 -44.8604 0l-100.21 100.2l134.58 134.56l44.1406 -44.1396l-61.6807 -61.6797c-3.08984 -3.08984 -3.08984 -8.11035 0 -11.21l11.21 -11.21c3.08984 -3.10059 8.11035 -3.10059 11.21 0l61.6807 61.6797z" />
+ <glyph glyph-name="plane-arrival" unicode="" horiz-adv-x="640"
+d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h608zM44.8096 242.34c-6.5498 5.91016 -12.3896 14.3398 -12.5791 23.25l-0.230469 101.78
+c0.19043 10.8799 10.3799 18.7002 20.7197 15.8799l39.7305 -10.8301c5.00977 -1.36035 9.08984 -5.04004 11.0195 -9.92969l27.5898 -67.8799l102.2 -27.8408l-47.9199 164.211c-0.189453 11.1191 10.1504 19.3193 20.71 16.4395l65.0898 -17.7295
+c5.70996 -1.56055 10.1504 -6.10059 11.6602 -11.9102l100.36 -191.851l97.5098 -26.5596c26.4805 -7.20996 51.5498 -20.1797 70.8301 -40c21.6396 -22.25 27.2002 -40.46 23.3701 -54.96c-3.81055 -14.5 -17.5801 -27.4404 -47.25 -35.71
+c-26.4404 -7.36035 -54.5205 -5.85059 -81 1.35938l-287.601 78.3506c-7.94531 2.16895 -19.3564 8.41016 -25.4697 13.9297z" />
+ <glyph glyph-name="plane-departure" unicode="" horiz-adv-x="640"
+d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h608zM80.5498 106.73l-76.21 82.9697c-7.62012 8.95996 -4.87012 22.7803 5.57031 28.0801l40.1299 20.3701
+c2.0957 1.0625 5.7041 1.92578 8.05469 1.92578c2.33691 0 5.92773 -0.853516 8.01562 -1.90625l72.3496 -36.4697l103.21 52.3799l-156.22 98.0996c-8.08008 8.87988 -5.5 23.1201 5.16992 28.5303l65.75 33.3701c2.0957 1.06348 5.70508 1.92676 8.05566 1.92676
+c3 0 7.45508 -1.36035 9.94434 -3.03711l218.7 -82.0596l98.5098 49.9902c26.7402 13.5596 56.4297 21.4199 86.2803 19.4795c33.5098 -2.17969 51.04 -12.8799 58.25 -27.4502c7.22949 -14.5596 5.23926 -35.1699 -13.0703 -63.6494
+c-16.3096 -25.3701 -40.2803 -44.7402 -67.0205 -58.3105l-290.96 -147.649c-7.71094 -3.91895 -20.9893 -7.1084 -29.6396 -7.12012l-130.54 -0.180664c-9.22949 -0.00976562 -18.0498 3.87012 -24.3301 10.7109z" />
+ <glyph glyph-name="prescription" unicode="" horiz-adv-x="384"
+d="M301.26 96l78.0605 -78.0498c6.25 -6.25 6.25 -16.3799 0 -22.6299l-22.6299 -22.6299c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-78.0596 78.0596l-78.0498 -78.0703c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6299 22.6299c-6.25 6.25 -6.25 16.3809 0 22.6309
+l78.0596 78.0596l-128 128h-18.75v-80c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v256c0 8.83984 7.16016 16 16 16h144c53.0195 0 96 -42.9805 96 -96c0 -48.8896 -36.6904 -88.7998 -83.96 -94.7803l83.96 -83.96l78.0596 78.0605
+c6.25 6.25 16.3809 6.25 22.6309 0l22.6299 -22.6299c6.25 -6.25 6.25 -16.3809 0 -22.6309zM64 352v-64h96c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32h-96z" />
+ <glyph glyph-name="sad-cry" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248c0 -90 -48.2002 -168.7 -120 -212.1v180.1c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16v-196.7c-29.5 -12.3994 -62 -19.2998 -96 -19.2998s-66.5 6.90039 -96 19.2998v196.7c0 8.7998 -7.2002 16 -16 16s-16 -7.2002 -16 -16
+v-180.1c-71.7998 43.3994 -120 122 -120 212.1c0 137 111 248 248 248zM182.5 223.5l9.7002 -8.5c2.5 -2.2998 7.89941 -4.7002 13.7002 -1.59961c4.39941 2.39941 6.89941 7.39941 6.09961 12.3994c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006
+c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-0.799805 -5 1.7002 -10 6.09961 -12.3994c4.40039 -2.40039 9.90039 -1.7002 13.7002 1.59961l9.5 8.5c14.7998 13.2002 46.2002 13.2002 61 0zM248 32c26.5 0 48 28.7002 48 64s-21.5 64 -48 64s-48 -28.7002 -48 -64
+s21.5 -64 48 -64zM397.8 213.5c4.40039 2.40039 6.7998 7.40039 6.2002 12.2998c-4 25.2002 -34.2002 42.1006 -59.9004 42.1006c-25.6992 0 -55.8994 -16.9004 -59.8994 -42.1006c-0.799805 -5 1.7002 -10 6.09961 -12.3994
+c4.40039 -2.40039 9.90039 -1.7002 13.7002 1.59961l9.59961 8.59961c14.8008 13.2002 46.2002 13.2002 61 0l9.5 -8.5c2.5 -2.2998 7.90039 -4.69922 13.7002 -1.59961z" />
+ <glyph glyph-name="sad-tear" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM328 272c-17.7002 0 -32 -14.2998 -32 -32s14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32zM152 32c26.5 0 48 21 48 47c0 20 -28.5 60.4004 -41.5996 77.7998
+c-3.2002 4.2998 -9.60059 4.2998 -12.8008 0c-13.0996 -17.3994 -41.5996 -57.7998 -41.5996 -77.7998c0 -26 21.5 -47 48 -47zM168 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM338.2 53.7998
+c13.2998 -16.0996 38.2998 4 24.5 20.4004c-28.4004 34.2002 -70.2998 53.7998 -114.7 53.7998c-21.2002 0 -21.2002 -32 0 -32c34.9004 0 67.7998 -15.4004 90.2002 -42.2002z" />
+ <glyph glyph-name="shuttle-van" unicode="" horiz-adv-x="640"
+d="M628.88 237.35c7.17969 -8.62988 11.1201 -19.5 11.1201 -30.7295v-110.62c0 -17.6699 -14.3301 -32 -32 -32h-32c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-128c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-32c-17.6699 0 -32 14.3301 -32 32v288
+c0 17.6699 14.3301 32 32 32h425.52c12.4082 -0.00195312 28.9258 -7.73926 36.8701 -17.2695zM64 256h96v96h-96v-96zM160 16c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM320 256v96h-96v-96h96zM480 16
+c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM384 256h146.02l-80 96h-66.0195v-96z" />
+ <glyph glyph-name="signature" unicode="" horiz-adv-x="640"
+d="M623.2 256c9.09961 0.599609 16.7998 -7.09961 16.5996 -16.2002v-32.0996c0 -8.5 -6.7002 -15.1006 -15.2002 -15.7998c-39.3994 -3.2002 -105.399 -51 -138.399 -65.8008c-34.2998 -15.3994 -66.7002 -30 -102.3 -30c-28.2002 0 -50.2002 8.5 -65.5 25.3008
+c-22.7002 24.8994 -22.8008 55.2998 -20.6006 83.7998c-56.5 -45.1006 -169 -153.601 -211.2 -195.8c-6.09961 -6.2002 -14.2998 -9.40039 -22.5996 -9.40039c-27 0 -36.5 27 -29.7002 43.9004l98.2002 245.6c8 19.9004 -14.2998 38.7998 -32.7002 27.0996l-58 -38.8994
+c-7.5 -4.7998 -17.3994 -2.60059 -22.0996 4.89941l-17.2002 27c-4.7002 7.5 -2.5 17.4004 4.90039 22.1006l54.8994 36.8994c76.5 48.7002 160.101 -26.8994 129.7 -102.8l-41.5 -103.7c105.2 101.2 144.4 124.5 169.5 126
+c54.4004 3.10059 43.7998 -68.0996 42.7002 -76.0996c-4.7002 -35.7002 -1.2998 -51.9004 21.2998 -51.9004c21.9004 0 47 11.3008 76.0996 24.4004c37.4004 16.7998 111.301 68 163.101 71.5z" />
+ <glyph glyph-name="smile-beam" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM112 224.6c-0.700195 -8.5 10.7998 -11.8994 15.0996 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006c12.3008 0 23.8008 -7.90039 31.5 -21.6006l9.5 -17
+c4.10059 -7.39941 15.6006 -4.09961 14.9004 4.5c-3.2998 42.1006 -32.2002 71.4004 -56 71.4004s-52.7002 -29.2998 -56 -71.4004zM362.8 101.8c13.5 16.2002 -11 36.7002 -24.5996 20.5c-22.4004 -26.7998 -55.2002 -42.2002 -90.2002 -42.2002
+s-67.7998 15.3008 -90.2002 42.2002c-13.5996 16.2002 -38.0996 -4.2002 -24.5996 -20.5c28.5 -34.2002 70.2998 -53.7998 114.8 -53.7998s86.2998 19.5996 114.8 53.7998zM369 220.1c4.09961 -7.39941 15.7002 -4.09961 15.0996 4.5
+c-3.2998 42.1006 -32.1992 71.4004 -56 71.4004c-23.7998 0 -52.6992 -29.2998 -56 -71.4004c-0.699219 -8.5 10.8008 -11.7998 14.9004 -4.5l9.5 17c7.7002 13.7002 19.2002 21.6006 31.5 21.6006s23.7998 -7.90039 31.5 -21.6006z" />
+ <glyph glyph-name="solar-panel" unicode="" horiz-adv-x="640"
+d="M431.98 -0.00976562c8.84961 0.00976562 16.0293 -7.16992 16.0195 -16.0205l-0.0400391 -31.7295c-0.00976562 -8.82031 -7.16016 -15.9707 -15.9795 -15.9805l-223.961 -0.259766c-8.84961 -0.00976562 -16.0293 7.16992 -16.0195 16.0195l0.0498047 31.7305
+c0.00976562 8.83008 7.16016 15.9805 15.9805 15.9902l47.9795 0.0498047v32.21h128v-32.0596zM585.2 421.26c58.1094 -342.42 54.7803 -321.39 54.7598 -325.47c-0.0800781 -17.2305 -14.3604 -31.79 -32.5898 -31.79h-574.74c-18.3096 0 -32.6299 14.6797 -32.5996 32
+c0.00976562 3.91992 -3.35059 -17.1602 54.7598 325.26c2.62012 15.4307 16.21 26.7402 32.1396 26.7402h466.13c15.9307 0 29.5205 -11.3096 32.1406 -26.7402zM259.83 384l-9.77051 -96h139.87l-9.76953 96h-120.33zM184.66 128l11.4102 112h-105.971l-19.0098 -112
+h113.57zM200.95 288l9.76953 96h-96.1895l-16.29 -96h102.71zM233.77 128h172.45l-11.3994 112h-149.65zM429.27 384l9.77051 -96h102.71l-16.29 96h-96.1904zM455.33 128h113.58l-19.0098 112h-105.971z" />
+ <glyph glyph-name="spa" unicode="" horiz-adv-x="576"
+d="M568.25 256c4.41016 0.0195312 7.79004 -3.40039 7.75 -7.82031c-0.230469 -27.9199 -7.12988 -126.13 -88.7695 -199.3c-84.04 -81.8301 -167.23 -80.8799 -199.23 -80.8799s-115.21 -0.94043 -199.23 80.8799c-81.6299 73.1602 -88.5391 171.38 -88.7695 199.3
+c-0.0400391 4.41992 3.33984 7.83984 7.75 7.82031c29.04 -0.129883 135.01 -6.16016 213.84 -83c33.1201 -29.6299 53.3604 -63.2998 66.4102 -94.8604c13.0498 31.5605 33.29 65.2305 66.4102 94.8604c78.8301 76.8398 184.8 82.8701 213.84 83zM287.98 145.4
+c-10.7012 15.7168 -30.8789 38.7705 -45.04 51.46c-18.7207 18.25 -38.8506 32.6895 -59.2207 44.3896c16.4707 70.4404 51.75 132.93 96.7402 172.07c4.12012 3.58008 11.0303 3.58008 15.1396 0c45.0107 -39.1699 80.29 -101.721 96.7305 -172.221
+c-20.6797 -11.8799 -41.1699 -26.5693 -60.2598 -45.1797c-16.4902 -14.7402 -31.2705 -31.6699 -44.0898 -50.5195z" />
+ <glyph glyph-name="splotch" unicode=""
+d="M472.29 252.11c48.54 -16.6201 53.8301 -73.8301 8.9502 -96.79l-62 -31.7402c-17.8301 -9.12988 -29.2803 -25.2002 -30.6299 -42.9902l-4.7002 -61.8594c-3.41016 -44.79 -65.1299 -66.7803 -104.45 -37.2207l-54.3203 40.8301
+c-15.6201 11.7305 -36.96 16.1201 -57.0693 11.7305l-69.96 -15.2803c-50.6504 -11.0596 -94.0801 32.5596 -73.4902 73.8096l28.4297 56.9805c8.18066 16.3799 6.44043 35.1699 -4.63965 50.2402l-38.54 52.4199c-27.9004 37.9502 6.97949 86.8994 59.0303 82.8301
+l71.8799 -5.62012c20.6602 -1.62012 40.9395 5.59961 54.2002 19.3096l46.1396 47.6699c33.4102 34.5107 98.3994 21.1504 109.979 -22.6201l15.9902 -60.4492c4.60059 -17.3799 18.8604 -31.7002 38.1406 -38.3008z" />
+ <glyph glyph-name="spray-can" unicode=""
+d="M224 416v-96h-128v96c0 17.6699 14.3301 32 32 32h64c17.6699 0 32 -14.3301 32 -32zM480 320c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM224 288c53.0195 0 96 -42.9805 96 -96v-224c0 -17.6699 -14.3301 -32 -32 -32
+h-256c-17.6699 0 -32 14.3301 -32 32v224c0 53.0195 42.9805 96 96 96h128zM160 32c44.1797 0 80 35.8203 80 80s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM480 352c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32s32 -14.3301 32 -32
+s-14.3301 -32 -32 -32zM384 320c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM288 416c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM384 416c17.6699 0 32 -14.3301 32 -32
+s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32zM480 224c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
+ <glyph glyph-name="stamp" unicode=""
+d="M32 -64v64h448v-64h-448zM416 192c53.0195 0 96 -42.9805 96 -96v-32c0 -17.6699 -14.3301 -32 -32 -32h-448c-17.6699 0 -32 14.3301 -32 32v32c0 53.0195 42.9805 96 96 96h66.5596c16.2607 0 29.4404 13.1797 29.4404 29.4404v0.0693359
+c0 31.79 -9.98047 62.0605 -23.3096 90.9102c-5.57031 12.04 -8.69043 25.4199 -8.69043 39.5801c0 58.6699 52.6201 105.04 113.25 94.4902c38.79 -6.75 70.4902 -38.6699 77.2598 -77.4502c3.85059 -22.0303 0.0605469 -42.8096 -9.0498 -60.4199
+c-12.5801 -24.3105 -21.46 -50.3506 -21.46 -77.7197v-9.45996c0 -16.2607 13.1797 -29.4404 29.4404 -29.4404h66.5596z" />
+ <glyph glyph-name="star-half-alt" unicode="" horiz-adv-x="536"
+d="M508.55 276.49c26.25 -3.7998 36.7705 -36.1006 17.7305 -54.6006l-105.91 -102.979l25.0303 -145.49c3.55957 -20.79 -13.0605 -37.4004 -31.6602 -37.4004c-4.91016 0 -9.9707 1.16016 -14.8301 3.71094l-130.94 68.6992l-130.95 -68.6797
+c-4.86914 -2.58008 -9.93945 -3.75 -14.8691 -3.75c-18.5801 0 -35.1699 16.6699 -31.6104 37.4502l25.0596 145.479l-105.89 103c-19.0303 18.5 -8.50977 50.79 17.7402 54.5898l146.38 21.29l65.4297 132.381c5.90039 11.9092 17.29 17.8096 28.6904 17.8096
+c11.4697 0 22.9395 -5.98047 28.8193 -17.8096l65.4102 -132.391zM386.81 153.29l82.6504 80.3799l-114.229 16.6299l-25.0107 3.64062l-11.1797 22.6299l-51.0303 103.29l-0.0292969 -317.19l22.3799 -11.7402l102.13 -53.5898l-19.5205 113.45l-4.2793 24.8799z" />
+ <glyph glyph-name="suitcase-rolling" unicode="" horiz-adv-x="384"
+d="M336 288c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-16v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16h-128v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16h-16
+c-26.5098 0 -48 21.4902 -48 48v224c0 26.5098 21.4902 48 48 48h288zM320 72v16c0 4.41992 -3.58008 8 -8 8h-240c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h240c4.41992 0 8 3.58008 8 8zM320 168v16c0 4.41992 -3.58008 8 -8 8h-240
+c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h240c4.41992 0 8 3.58008 8 8zM144 400v-80h-48v80c0 26.5098 21.4902 48 48 48h96c26.5098 0 48 -21.4902 48 -48v-80h-48v80h-96z" />
+ <glyph glyph-name="surprise" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM136 240c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM248 32c35.2998 0 64 28.7002 64 64s-28.7002 64 -64 64
+s-64 -28.7002 -64 -64s28.7002 -64 64 -64zM328 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" />
+ <glyph glyph-name="swatchbook" unicode="" horiz-adv-x="511"
+d="M479.06 128c17.6406 0 31.9404 -14.3301 31.9404 -32v-128c0 -17.6699 -14.2998 -32 -31.9404 -32h-299.579c2.17969 1.91016 4.60938 3.41992 6.66992 5.49023l186.14 186.51h106.77zM434.56 280.9c12.4707 -12.4902 12.4707 -32.7607 0 -45.2607l-211.869 -212.279
+c0.199219 2.90918 0.869141 5.67969 0.869141 8.63965v263.76l75.5 75.6504c12.4805 12.5 32.7002 12.5 45.1709 0zM191.62 416v-384c0 -53.0195 -42.9004 -96 -95.8105 -96c-52.9092 0 -95.8096 42.9805 -95.8096 96v384c0 17.6699 14.2998 32 31.9404 32h127.739
+c17.6406 0 31.9404 -14.3301 31.9404 -32zM95.8096 8c13.2305 0 23.96 10.75 23.9502 24c0 13.2598 -10.7295 24 -23.9502 24c-13.2197 0 -23.9492 -10.7402 -23.9492 -24c0 -13.25 10.7197 -24 23.9492 -24zM127.75 192l0.00976562 64h-63.8799v-64h63.8701zM127.75 320
+l0.00976562 64h-63.8799v-64h63.8701z" />
+ <glyph glyph-name="swimmer" unicode="" horiz-adv-x="640"
+d="M189.61 137.42c-5.04004 4.65039 -10.3906 8.34961 -15.8604 11.5801l68.6299 98.04c7.36035 10.5 16.3398 19.5498 26.7197 26.9404l80.0205 57.1699c25.54 18.2598 57.8301 24.96 88.5596 18.3799l100.351 -21.5303c25.9297 -5.55957 42.4297 -31.0801 36.8799 -57
+c-5.56055 -25.9102 -31.0898 -42.4102 -57 -36.8799l-100.351 21.5303c-4.33984 0.90918 -8.97949 -0.0302734 -12.6191 -2.61035l-18 -12.8604l112.84 -80.5996c-17.5107 -1.04004 -34.5303 -8.4502 -49.3906 -22.1602
+c-3.5293 -3.25977 -15.2695 -9.41992 -34.3896 -9.41992s-30.8496 6.16016 -34.3896 9.41992c-16.0107 14.7705 -34.5 22.5801 -53.46 22.5801h-16.3008c-18.96 0 -37.4395 -7.80957 -53.46 -22.5801c-3.5293 -3.25977 -15.2695 -9.41992 -34.3896 -9.41992
+s-30.8496 6.16016 -34.3896 9.41992zM624 96c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-16c-38.6201 0 -72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398s-72.7197 12.1797 -96 31.8398
+c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398s-72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398h-16c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16c26.04 0 45.7998 8.41992 56.0703 17.9004
+c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998
+c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996
+c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004h16zM112 192c-44.1797 0 -80 35.8203 -80 80s35.8203 80 80 80s80 -35.8203 80 -80s-35.8203 -80 -80 -80z" />
+ <glyph glyph-name="swimming-pool" unicode="" horiz-adv-x="640"
+d="M624 32c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-16c-38.6201 0 -72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398s-72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398
+s-72.7197 12.1797 -96 31.8398c-23.2803 -19.6494 -57.3799 -31.8398 -96 -31.8398h-16c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16c26.04 0 45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998
+c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996
+c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004s45.7998 8.41992 56.0703 17.9004c8.89941 8.20996 19.6602 14.0996 31.7695 14.0996h16.2998c12.1104 0 22.8701 -5.88965 31.7705 -14.0996c10.29 -9.48047 30.0498 -17.9004 56.0898 -17.9004h16zM224 64
+c-19.1201 0 -30.8604 6.16016 -34.3896 9.42969c-9.16992 8.4502 -19.2002 14.3398 -29.6104 18.0703v228.5c0 52.9404 43.0596 96 96 96s96 -43.0596 96 -96v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16c0 17.6396 -14.3604 32 -32 32
+s-32 -14.3604 -32 -32v-96h192v96c0 52.9404 43.0596 96 96 96s96 -43.0596 96 -96v-16c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v16c0 17.6396 -14.3604 32 -32 32s-32 -14.3604 -32 -32v-228.51
+c-10.4102 -3.73047 -20.4404 -9.61035 -29.6104 -18.0703c-3.5293 -3.25977 -15.2695 -9.41992 -34.3896 -9.41992v96h-192v-96z" />
+ <glyph glyph-name="tint-slash" unicode="" horiz-adv-x="640"
+d="M633.82 -10.0996c6.97949 -5.43066 8.22949 -15.4805 2.81934 -22.4502l-19.6396 -25.2705c-5.42969 -6.97949 -15.4805 -8.23926 -22.46 -2.80957l-588.36 454.729c-6.97949 5.43066 -8.22949 15.4805 -2.80957 22.4502l19.6396 25.2705
+c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l186.82 -144.399c21.6201 33.7197 42.9697 73.3398 58.4902 125.68c9 30.1201 50.5 28.7803 58.4395 0c46.9902 -158.48 146.78 -200.061 146.78 -311.82c0 -5.70996 -0.509766 -11.2998 -1.03027 -16.8701zM144 114.09
+c0 29.7803 7.30957 54.6299 18.7197 78.1299l273.681 -211.52c-31.0303 -27.7402 -71.6904 -44.7002 -116.4 -44.7002c-97.2803 0 -176 79.6504 -176 178.09z" />
+ <glyph glyph-name="tired" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM281.8 250.3c-7.7002 -4.7002 -7.7002 -15.8994 0 -20.5996l80 -48c11.5 -6.7998 24.1006 7.59961 15.4004 18l-33.6006 40.2998l33.6006 40.2998
+c8.59961 10.2998 -3.7998 24.9004 -15.4004 18zM118.8 280.3l33.6006 -40.2998l-33.6006 -40.2998c-8.59961 -10.4004 3.90039 -24.7998 15.4004 -18l80 48c7.7998 4.7002 7.7998 15.8994 0 20.5996l-80 48c-11.6006 6.90039 -24 -7.7002 -15.4004 -18zM248 160
+c-51.9004 0 -115.3 -43.7998 -123.2 -106.7c-1.7002 -13.3994 7.90039 -24.5996 17.7002 -20.3994c25.9004 11.0996 64.4004 17.3994 105.5 17.3994s79.5996 -6.2998 105.5 -17.3994c9.7002 -4.2002 19.4004 6.7998 17.7002 20.3994
+c-7.90039 62.9004 -71.2998 106.7 -123.2 106.7z" />
+ <glyph glyph-name="tooth" unicode="" horiz-adv-x="448"
+d="M443.98 351.75c10.1299 -41.6299 0.419922 -80.8203 -21.5303 -110.43c-23.3604 -31.5703 -32.6807 -68.6504 -36.29 -107.351c-4.41016 -47.1602 -10.3301 -94.1699 -20.9404 -140.319l-7.7998 -33.9502c-3.18945 -13.8701 -15.4902 -23.7002 -29.6699 -23.7002
+c-13.9697 0 -26.1504 9.5498 -29.54 23.1602l-34.4697 138.42c-4.56055 18.3096 -20.96 31.1602 -39.7598 31.1602c-18.8008 0 -35.2002 -12.8398 -39.7607 -31.1602l-34.4697 -138.42c-3.38965 -13.6104 -15.5703 -23.1602 -29.54 -23.1602
+c-14.1797 0 -26.4795 9.83008 -29.6699 23.7002l-7.7998 33.9502c-10.6104 46.1592 -16.54 93.1592 -20.9404 140.319c-3.60938 38.6904 -12.9297 75.7803 -36.29 107.351c-21.9199 29.6201 -31.6299 68.8096 -21.5 110.43c11.0098 45.2197 47.1104 82.0498 92.0098 93.7197
+c23.4307 6.08984 46.1104 0.540039 66.8105 -10.3096l100.51 -64.6201c7.83984 -5.05957 17.6504 -2.15039 22.1104 4.7998c4.78027 7.44043 2.62012 17.3398 -4.7998 22.1104l-28.3203 18.21c3.54004 1.75 7.25 3.08984 10.5 5.47949
+c26.1396 19.2305 56.9502 32.6904 89.1396 24.3301c44.9004 -11.6602 81 -48.5 92.0107 -93.7197z" />
+ <glyph glyph-name="umbrella-beach" unicode="" horiz-adv-x="640"
+d="M115.38 311.1c-10.0801 3.66992 -14.1104 16.3203 -7.41992 24.7207c59.75 74.8398 152.65 116.689 248.53 111.8c-52.79 -29.4102 -103.811 -92.1602 -139 -173.7zM247.63 262.94c44.4902 101.979 114.74 171.14 172.76 171.149c7.95996 0 15.6904 -1.2998 23.0908 -4
+c61.3291 -22.3203 78.3896 -132.6 42.6299 -253.979zM521.48 387.5c76.5293 -57.9199 120.76 -149.67 118.439 -245.36c-0.259766 -10.7393 -11.4795 -17.8398 -21.5703 -14.1699l-102.619 37.3604c17.5293 58.75 24.6895 117.09 18.9492 166.979
+c-2.37012 20.5908 -6.97949 38.8906 -13.1992 55.1904zM560 0.0195312c8.83984 0 16 -7.15918 16 -16v-32.0098c0 -8.83984 -7.16016 -16.0098 -16 -16.0098h-544c-8.83984 0 -16 7.16992 -16 16.0098v32.0098c0 8.85059 7.16016 16.0107 16 16.0107h236.96l72.9004 200.37
+l60.1396 -21.9004l-64.9404 -178.48h238.94z" />
+ <glyph glyph-name="vector-square" unicode=""
+d="M512 320c0 -17.6699 -14.3301 -32 -32 -32v-192c17.6699 0 32 -14.3301 32 -32v-96c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32h-192c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32v192
+c-17.6699 0 -32 14.3301 -32 32v96c0 17.6699 14.3301 32 32 32h96c17.6699 0 32 -14.3301 32 -32h192c0 17.6699 14.3301 32 32 32h96c17.6699 0 32 -14.3301 32 -32v-96zM416 384v-32h32v32h-32zM64 384v-32h32v32h-32zM96 0v32h-32v-32h32zM448 0v32h-32v-32h32zM416 96
+v192h-32c-17.6699 0 -32 14.3301 -32 32v32h-192v-32c0 -17.6699 -14.3301 -32 -32 -32h-32v-192h32c17.6699 0 32 -14.3301 32 -32v-32h192v32c0 17.6699 14.3301 32 32 32h32z" />
+ <glyph glyph-name="weight-hanging" unicode=""
+d="M510.28 2.13965c8.33008 -33.3096 -14.6602 -66.1396 -46.2998 -66.1396h-415.95c-31.6504 0 -54.6406 32.8301 -46.3105 66.1396l73.0498 292.13c3.79004 15.1807 16.4404 25.7207 30.8701 25.7207h60.25c-3.58008 10.0498 -5.87988 20.7197 -5.87988 32
+c0 53.0195 42.9805 96 96 96c53.0205 0 96 -42.9805 96 -96c0 -11.2803 -2.30957 -21.9502 -5.87988 -32h60.25c14.4297 0 27.0703 -10.5303 30.8701 -25.7207zM256 320c17.6396 0 32 14.3604 32 32s-14.3604 32 -32 32s-32 -14.3604 -32 -32s14.3604 -32 32 -32z" />
+ <glyph glyph-name="wine-glass-alt" unicode="" horiz-adv-x="288"
+d="M216 -16c22.0898 0 40 -17.9102 40 -40c0 -4.41992 -3.58008 -8 -8 -8h-208c-4.41992 0 -8 3.58008 -8 8c0 22.0898 17.9102 40 40 40h40v117.18c-68.4697 15.8906 -118.05 79.9102 -111.4 154.16l15.96 178.11c0.730469 8.24023 7.55078 14.5498 15.7002 14.5498h223.48
+c8.16016 0 14.9697 -6.30957 15.71 -14.5498l15.9502 -178.101c6.64941 -74.25 -42.9307 -138.27 -111.4 -154.159v-117.19h40zM61.75 400l-7.16992 -80h178.84l-7.16992 80h-164.5z" />
+ <glyph glyph-name="air-freshener" unicode="" horiz-adv-x="384"
+d="M378.94 126.59c11.75 -12.1494 1.71973 -30.5898 -16.6406 -30.5898h-138.3v-32h112c8.83984 0 16 -7.16016 16 -16v-96c0 -8.83984 -7.16016 -16 -16 -16h-288c-8.83984 0 -16 7.16016 -16 16v96c0 8.83984 7.16016 16 16 16h112v32h-138.3
+c-18.3604 0 -28.3906 18.4404 -16.6406 30.5898l94.2402 97.4102h-49.2197c-15.2998 0 -23.6602 16.5996 -13.8604 27.5303l113.33 126.51c-3.42969 6.61035 -5.5498 14 -5.5498 21.96c0 26.5098 21.4902 48 48 48s48 -21.4902 48 -48
+c0 -7.95996 -2.12012 -15.3496 -5.5498 -21.96l113.33 -126.51c9.7998 -10.9307 1.43945 -27.5303 -13.8604 -27.5303h-49.2197zM192 416.02c-8.84961 0 -16.0195 -7.16992 -16.0195 -16.0195c0 -8.83984 7.16992 -16.0195 16.0195 -16.0195
+s16.0195 7.17969 16.0195 16.0195c0 8.84961 -7.16992 16.0195 -16.0195 16.0195zM304 16h-224v-32h224v32z" />
+ <glyph glyph-name="apple-alt" unicode="" horiz-adv-x="448"
+d="M350.85 319c25.9707 -4.66992 47.2705 -18.6699 63.9199 -42c14.6504 -20.6699 24.6406 -46.6699 29.9609 -78c4.66992 -28.6699 4.31934 -57.3301 -1 -86c-7.99023 -47.3301 -23.9707 -87 -47.9404 -119c-28.6396 -38.6699 -64.5898 -58 -107.87 -58
+c-10.6602 0 -22.2998 3.33008 -34.96 10c-8.66016 5.33008 -18.3096 8 -28.9697 8s-20.2998 -2.66992 -28.9707 -8c-12.6592 -6.66992 -24.2998 -10 -34.96 -10c-43.2793 0 -79.2295 19.3301 -107.869 58c-23.9707 32 -39.9502 71.6699 -47.9404 119
+c-5.32031 28.6699 -5.66992 57.3301 -1 86c5.32031 31.3301 15.3096 57.3301 29.96 78c16.6504 23.3301 37.9502 37.3301 63.9199 42c15.9805 2.66992 37.9502 0.330078 65.9199 -7c23.9697 -6.66992 44.2803 -14.6699 60.9307 -24
+c16.6494 9.33008 36.96 17.3301 60.9297 24c27.9795 7.33008 49.96 9.66992 65.9395 7zM295.91 360c-9.32031 -8.66992 -21.6504 -15 -36.96 -19c-10.6602 -3.33008 -22.2998 -5 -34.96 -5l-14.9805 1c-1.33008 9.33008 -1.33008 20 0 32
+c2.66992 24 10.3203 42.3301 22.9707 55c9.31934 8.66992 21.6494 15 36.96 19c10.6592 3.33008 22.2998 5 34.96 5l14.9795 -1l1 -15c0 -12.6699 -1.66992 -24.3301 -4.99023 -35c-3.98926 -15.3301 -10.3096 -27.6699 -18.9795 -37z" />
+ <glyph glyph-name="atom" unicode="" horiz-adv-x="448"
+d="M413.03 192c40.1396 -54.9102 41.5195 -98.5996 25.1396 -128c-29.2197 -52.3398 -101.689 -43.5801 -116.33 -41.8799c-21.4697 -51.2197 -54.2002 -86.1201 -97.8398 -86.1201s-76.3701 34.9004 -97.8398 86.1201c-14.6504 -1.7002 -87.1201 -10.46 -116.33 41.8799
+c-16.3701 29.3799 -14.9902 73.1104 25.1396 128c-40.1396 54.9102 -41.5195 98.5996 -25.1396 128c10.9004 19.5195 40.5996 50.6602 116.33 41.8799c21.4795 51.2305 54.2002 86.1201 97.8398 86.1201s76.3604 -34.8896 97.8398 -86.1201
+c75.79 8.85059 105.42 -22.3604 116.33 -41.8799c16.3701 -29.3799 14.9902 -73.1104 -25.1396 -128zM63.3799 96c3.69043 -6.59961 19.0205 -11.8604 43.5801 -10.9697c-2.75977 13 -5.0498 26.3701 -6.75977 40.0801c-7.66992 6.29004 -14.9102 12.6494 -21.8701 19.1797
+c-15.1396 -23.4902 -18.9805 -41.0801 -14.9502 -48.29zM100.2 258.88c1.39355 11.1816 4.43555 29.2002 6.79004 40.2197c-1.82031 0.0703125 -3.98047 0.370117 -5.69043 0.370117c-21.5303 0 -34.5098 -5.33008 -37.9199 -11.4697
+c-4.01953 -7.20996 -0.179688 -24.7998 14.9502 -48.2998c6.96973 6.53027 14.21 12.8896 21.8701 19.1797zM224 384c-9.46973 0 -22.2002 -13.5195 -33.8604 -37.2598c11.1904 -3.7002 22.4404 -8 33.8604 -12.8604c11.4199 4.86035 22.6699 9.16016 33.8604 12.8604
+c-11.6602 23.7402 -24.3906 37.2598 -33.8604 37.2598zM224 0c9.46973 0 22.2002 13.5195 33.8604 37.2598c-11.1904 3.7002 -22.4404 8 -33.8604 12.8604c-11.4199 -4.86035 -22.6699 -9.16016 -33.8604 -12.8604c11.6602 -23.7402 24.3906 -37.2598 33.8604 -37.2598z
+M286.5 157.33c1.99023 27.7998 1.98047 41.5498 0 69.3301c-26.6396 19.04 -46.1104 29.3096 -62.5 37.4795c-16.3701 -8.15918 -35.8301 -18.4297 -62.5 -37.4795c-1.99023 -27.79 -1.99023 -41.54 0 -69.3301c26.7002 -19.0703 46.1504 -29.3398 62.5 -37.4805
+c16.3604 8.15039 35.7998 18.4004 62.5 37.4805zM384.62 96c4.01953 7.20996 0.179688 24.7998 -14.9502 48.29c-6.96973 -6.53027 -14.21 -12.8896 -21.8701 -19.1797c-1.70996 -13.6904 -4 -27.0605 -6.75977 -40.0605c24.5801 -0.870117 39.9102 4.33008 43.5801 10.9502
+zM369.67 239.71c15.1299 23.4902 18.9697 41.0801 14.9502 48.2998c-3.41016 6.12988 -16.4004 11.4707 -37.9199 11.4707c-1.71973 0 -3.87012 -0.300781 -5.69043 -0.370117c2.35254 -11.0205 5.39453 -29.0391 6.79004 -40.2207
+c7.66992 -6.29004 14.9102 -12.6494 21.8701 -19.1797zM224 224c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
+ <glyph glyph-name="bone" unicode="" horiz-adv-x="640"
+d="M598.88 203.44c-9.42969 -4.70996 -9.42969 -18.1709 -0.00976562 -22.8809c25.2002 -12.5996 41.1201 -38.3496 41.1201 -66.5293v-7.64062c0 -41.0898 -33.2998 -74.3896 -74.3799 -74.3896c-32.0107 0 -60.4404 20.4902 -70.5703 50.8604
+c-6.53027 19.5996 -10.7305 45.1396 -38.1104 45.1396h-273.87c-26.5098 0 -30.4297 -22.1104 -38.1094 -45.1396c-10.1299 -30.3701 -38.5498 -50.8604 -70.5703 -50.8604c-41.0801 0 -74.3799 33.2998 -74.3799 74.3896v7.64062
+c0 28.1699 15.9199 53.9297 41.1201 66.5293c9.42969 4.70996 9.42969 18.1709 0 22.8809c-25.2002 12.5996 -41.1201 38.3594 -41.1201 66.5293v7.64062c0 41.0898 33.2998 74.3896 74.3896 74.3896c32.0107 0 60.4404 -20.4902 70.5605 -50.8604
+c6.53027 -19.5996 10.7295 -45.1396 38.1094 -45.1396h273.87c26.5107 0 30.4307 22.1104 38.1104 45.1396c10.1299 30.3701 38.5498 50.8604 70.5703 50.8604c41.0898 0 74.3896 -33.2998 74.3896 -74.3896v-7.64062c0 -28.1699 -15.9199 -53.9297 -41.1201 -66.5293z" />
+ <glyph glyph-name="book-reader" unicode=""
+d="M352 352c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96s42.9805 96 96 96s96 -42.9805 96 -96zM233.59 206.9c4.10059 -2.51074 6.41016 -6.79004 6.41992 -11.46v-245.99c0 -10.1602 -11.1094 -16.5898 -20.4795 -11.8701
+c-61.0498 30.75 -149.38 39.1396 -193.04 41.4297c-14.9004 0.770508 -26.4902 12.7207 -26.4902 27.0498v222.801c0 15.6299 13.5498 28.0098 29.7998 27.0898c48.3604 -2.75 144.46 -12.7305 203.79 -49.0498zM482.2 255.95
+c16.25 0.919922 29.7998 -11.46 29.8096 -27.0898v-222.82c0 -14.3301 -11.5898 -26.2803 -26.4902 -27.0596c-43.6494 -2.29004 -131.93 -10.6807 -192.97 -41.4004c-9.39941 -4.73047 -20.54 1.70996 -20.54 11.9004v245.789c0 4.6709 2.31055 9.12012 6.41016 11.6309
+c59.3203 36.3193 155.43 46.3096 203.78 49.0498z" />
+ <glyph glyph-name="brain" unicode="" horiz-adv-x="576"
+d="M208 448c35.2998 0 64 -28.7002 64 -64v-376c0 -39.7998 -32.2002 -72 -72 -72c-31.7998 0 -58.4004 20.7002 -68 49.2002c-3.90039 -0.700195 -7.90039 -1.2002 -12 -1.2002c-39.7998 0 -72 32.2002 -72 72c0 4.7998 0.5 9.5 1.40039 14.0996
+c-29 12 -49.4004 40.6006 -49.4004 73.9004c0 29.7002 16.2998 55.2998 40.2998 69.0996c-5.09961 10.6006 -8.2998 22.3008 -8.2998 34.9004c0 33.4004 20.5 62 49.7002 74c-1.10059 4.5 -1.7002 9.2002 -1.7002 14c0 35.2998 28.7002 64 64 64
+c0.799805 0 1.40039 -0.200195 2.2002 -0.200195c7.09961 27.7002 31.8994 48.2002 61.7998 48.2002zM576 144c0 -33.2998 -20.4004 -61.9004 -49.4004 -73.9004c0.900391 -4.59961 1.40039 -9.2998 1.40039 -14.0996c0 -39.7998 -32.2002 -72 -72 -72
+c-4.09961 0 -8.09961 0.5 -12 1.2002c-9.59961 -28.5 -36.2002 -49.2002 -68 -49.2002c-39.7998 0 -72 32.2002 -72 72v376c0 35.4004 28.7002 64 64 64c29.9004 0 54.7002 -20.5 61.7998 -48.2002c0.700195 0 1.40039 0.200195 2.2002 0.200195
+c35.2998 0 64 -28.7002 64 -64c0 -4.7998 -0.700195 -9.5 -1.7002 -14c29.2002 -12 49.7002 -40.5996 49.7002 -74c0 -12.5996 -3.09961 -24.2998 -8.2998 -34.9004c24 -13.7998 40.2998 -39.3994 40.2998 -69.0996z" />
+ <glyph glyph-name="car-alt" unicode="" horiz-adv-x="480"
+d="M438.66 235.67c24.1201 -9.16992 41.3398 -32.3301 41.3398 -59.6699v-48c0 -16.1299 -6.16016 -30.6797 -16 -41.9297v-54.0703c0 -17.6699 -14.3301 -32 -32 -32h-32c-17.6699 0 -32 14.3301 -32 32v32h-256v-32c0 -17.6699 -14.3301 -32 -32 -32h-32
+c-17.6699 0 -32 14.3301 -32 32v54.0703c-9.83984 11.2598 -16 25.8096 -16 41.9297v48c0 27.3398 17.2197 50.5 41.3398 59.6699l11.2402 28.0996l19.9297 49.8301c17.1104 42.7705 57.9307 70.4004 103.99 70.4004h127c46.0703 0 86.8799 -27.6299 103.99 -70.4004
+l19.9297 -49.8301zM131.93 289.83l-19.9297 -49.8301h256l-19.9297 49.8301c-7.29004 18.2197 -24.9404 30.1699 -44.5703 30.1699h-127c-19.6299 0 -37.2803 -11.9502 -44.5703 -30.1699zM80 128.2c19.2002 0 48 -3.19043 48 15.9502
+c0 19.1396 -28.7998 47.8496 -48 47.8496s-32 -12.7598 -32 -31.9004c0 -19.1396 12.7998 -31.8994 32 -31.8994zM400 128.2c19.2002 0 32 12.7598 32 31.8994c0 19.1406 -12.7998 31.9004 -32 31.9004s-48 -28.71 -48 -47.8496c0 -19.1406 28.7998 -15.9502 48 -15.9502z
+" />
+ <glyph glyph-name="car-battery" unicode=""
+d="M480 320c17.6699 0 32 -14.3301 32 -32v-256c0 -17.6699 -14.3301 -32 -32 -32h-448c-17.6699 0 -32 14.3301 -32 32v256c0 17.6699 14.3301 32 32 32h32v48c0 8.83984 7.16016 16 16 16h96c8.83984 0 16 -7.16016 16 -16v-48h128v48c0 8.83984 7.16016 16 16 16h96
+c8.83984 0 16 -7.16016 16 -16v-48h32zM192 184v16c0 4.41992 -3.58008 8 -8 8h-112c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h112c4.41992 0 8 3.58008 8 8zM448 184v16c0 4.41992 -3.58008 8 -8 8h-40v40c0 4.41992 -3.58008 8 -8 8h-16
+c-4.41992 0 -8 -3.58008 -8 -8v-40h-40c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h40v-40c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v40h40c4.41992 0 8 3.58008 8 8z" />
+ <glyph glyph-name="car-crash" unicode="" horiz-adv-x="640"
+d="M143.25 227.19l-12.4199 -46.3701c-3.00977 -11.25 -3.62988 -22.8906 -2.41016 -34.3906l-35.2002 -28.9795c-6.56934 -5.41016 -16.3096 0.429688 -14.6201 8.76953l15.4404 76.6807c1.05957 5.25977 -2.66016 10.2793 -8 10.79l-77.8604 7.5498
+c-8.46973 0.819336 -11.2295 11.8301 -4.13965 16.54l65.1504 43.2998c4.45996 2.96973 5.37988 9.15039 1.97949 13.29l-49.71 60.4102c-5.41016 6.56934 0.429688 16.2998 8.78027 14.6201l76.6797 -15.4404c5.25977 -1.05957 10.2803 2.66016 10.7998 8l7.5498 77.8604
+c0.820312 8.47949 11.8301 11.2295 16.5508 4.13965l43.2998 -65.1396c2.96973 -4.45996 9.14941 -5.37988 13.29 -1.98047l60.3994 49.71c6.57031 5.41016 16.3008 -0.429688 14.6201 -8.76953l-11.3301 -56.1602c-2.70996 -3.0498 -5.42969 -6.08984 -7.90918 -9.40039
+l-32.1504 -42.9697l-10.71 -14.3203c-32.7305 -8.75977 -59.1797 -34.5293 -68.0801 -67.7393zM637.82 94.6797l-12.4199 -46.3594c-3.13086 -11.6807 -9.38086 -21.6104 -17.5508 -29.3604c-2.25488 -2.13574 -6.17969 -5.27148 -8.75977 -7l-13.9902 -52.2295
+c-1.13965 -4.27051 -3.09961 -8.10059 -5.64941 -11.3809c-7.66992 -9.83984 -20.7402 -14.6797 -33.54 -11.25l-30.9102 8.28027c-17.0703 4.57031 -27.2002 22.1201 -22.6299 39.1904l8.28027 30.9102l-247.28 66.2598l-8.28027 -30.9102
+c-4.57031 -17.0703 -22.1201 -27.2002 -39.1895 -22.6299l-30.9102 8.28027c-12.7998 3.42969 -21.7002 14.1592 -23.4199 26.5098c-0.570312 4.12012 -0.350586 8.41992 0.790039 12.6797l13.9893 52.2305c-1.37207 2.78809 -3.2041 7.46973 -4.08984 10.4492
+c-3.2002 10.79 -3.64941 22.5205 -0.519531 34.2002l12.4199 46.3701c5.30957 19.7998 19.3594 34.8301 36.8896 42.21c4.9082 2.06836 13.1914 4.18262 18.4902 4.71973l18.1299 24.2305l32.1504 42.9697c3.44922 4.61035 7.18945 8.90039 11.1992 12.8398
+c8 7.89062 17.0303 14.4404 26.7402 19.5107c4.86035 2.54004 9.89062 4.70996 15.0498 6.48926c10.3301 3.58008 21.1904 5.62988 32.2402 6.04004s22.3105 -0.819336 33.4307 -3.7998l122.68 -32.8701c11.1201 -2.97949 21.4795 -7.54004 30.8496 -13.4297
+c11.7236 -7.36133 27.2646 -22.8174 34.6904 -34.5c8.81934 -13.8799 14.6396 -29.8398 16.6797 -46.9902l6.36035 -53.29l3.58984 -30.0498c8.79297 -6.34863 18.9805 -19.7568 22.7402 -29.9297c4.38965 -11.8799 5.29004 -25.1904 1.75 -38.3906zM255.58 213.66
+c-18.5498 4.96973 -34.21 -4.04004 -39.1699 -22.5303s4.10938 -34.1201 22.6494 -39.0898c18.5508 -4.96973 45.54 -15.5098 50.4902 2.97949c4.95996 18.4902 -15.4297 53.6709 -33.9697 58.6406zM546.19 185.49l-6.36035 53.29
+c-0.580078 4.87012 -1.88965 9.5293 -3.82031 13.8594c-5.7998 12.9902 -17.2002 23.0107 -31.4199 26.8203l-122.68 32.8701c-3.36914 0.902344 -8.93457 1.63477 -12.4229 1.63477c-13.2676 0 -30.4883 -8.62207 -38.4375 -19.2451l-32.1494 -42.9697l172 -46.0801z
+M564.68 130.84c-18.5498 4.96973 -53.7998 -15.3096 -58.75 -33.79c-4.94922 -18.4902 23.6904 -22.8594 42.2402 -27.8301c18.5498 -4.96973 34.21 4.04004 39.1699 22.5303c4.9502 18.4805 -4.10938 34.1201 -22.6602 39.0898z" />
+ <glyph glyph-name="car-side" unicode="" horiz-adv-x="640"
+d="M544 256c53.0195 0 96 -42.9805 96 -96v-80c0 -8.83984 -7.16016 -16 -16 -16h-48c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-128c0 -53.0195 -42.9805 -96 -96 -96s-96 42.9805 -96 96h-48c-8.83984 0 -16 7.16016 -16 16v112
+c0 29.79 20.4404 54.5996 48 61.7402l47.9102 122.029c9.71973 24.3008 33.25 40.2305 59.4199 40.2305h213.91c16.9795 -0.00195312 39.3701 -10.7627 49.9795 -24.0195l108.78 -135.98h16zM160 16c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48s-48 -21.5303 -48 -48
+s21.5303 -48 48 -48zM232 256v96h-76.6699l-38.4004 -96h115.07zM280 256h166.04l-76.7998 96h-89.2402v-96zM480 16c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48s-48 -21.5303 -48 -48s21.5303 -48 48 -48z" />
+ <glyph glyph-name="charging-station" unicode="" horiz-adv-x="576"
+d="M336 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-320c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h320zM544 320h16c8.83984 0 16 -7.16016 16 -16v-32c0 -35.7598 -23.6201 -65.6904 -56 -75.9297v-120.07
+c0 -44.4102 -38.29 -80.0498 -83.5898 -75.6201c-39.4902 3.85059 -68.4102 39.3398 -68.4102 79.0098v24.6104c0 22.0898 -17.9102 40 -40 40h-8v-112h-288v352c0 35.3496 28.6504 64 64 64h160c35.3496 0 64 -28.6504 64 -64v-192h8c48.5996 0 88 -39.4004 88 -88v-28
+c0 -16.9902 15.2197 -30.5 32.7402 -27.6104c13.7598 2.27051 23.2598 15.2402 23.2598 29.1904v118.49c-32.3799 10.2393 -56 40.1699 -56 75.9297v32c0 8.83984 7.16016 16 16 16h16v48c0 8.83984 7.16016 16 16 16s16 -7.16016 16 -16v-48h32v48
+c0 8.83984 7.16016 16 16 16s16 -7.16016 16 -16v-48zM260.09 272.24c4.62012 6.97949 -1.14941 15.7598 -10.3896 15.7598h-57.7002l11.5996 50.79c2.02051 6.66992 -3.71973 13.21 -11.5996 13.21h-68c-6.01953 0 -11.0996 -3.90039 -11.8896 -9.11035l-16 -107
+c-0.959961 -6.2998 4.63965 -11.8896 11.8896 -11.8896h59.3496l-23.0195 -83.0801c-1.7998 -6.63965 4 -12.9199 11.6699 -12.9199c4.17969 0 8.19043 1.91016 10.3896 5.24023z" />
+ <glyph glyph-name="directions" unicode=""
+d="M502.61 214.68c12.5195 -12.5293 12.5195 -32.8301 0 -45.3594l-223.931 -223.931c-12.5293 -12.5293 -32.8398 -12.5293 -45.3594 0l-223.931 223.931c-12.5195 12.5293 -12.5195 32.8301 0 45.3594l223.931 223.931c12.5293 12.5195 32.8398 12.5195 45.3594 0z
+M401.63 202.12c3.42969 3.16992 3.42969 8.58984 0 11.7598l-84.21 77.7305c-5.12988 4.72949 -13.4297 1.08984 -13.4297 -5.87988v-53.7305h-112c-17.6699 0 -32 -14.3301 -32 -32v-80c0 -4.41992 3.58008 -8 8 -8h32c4.41992 0 8 3.58008 8 8v64h96v-53.7305
+c0 -6.97949 8.30957 -10.6094 13.4297 -5.87988z" />
+ <glyph glyph-name="draw-polygon" unicode="" horiz-adv-x="448"
+d="M384 96c35.3496 0 64 -28.6504 63.9902 -64c0 -35.3496 -28.6504 -64 -64 -64c-23.6299 0 -44.0303 12.9502 -55.1201 32h-209.75c-11.0801 -19.0498 -31.4902 -32 -55.1201 -32c-35.3496 0 -64 28.6504 -64 64c0 23.6299 12.9502 44.04 32 55.1299v209.75
+c-19.0498 11.0801 -32 31.4902 -32 55.1201c0 35.3496 28.6504 64 64 64c23.6299 0 44.04 -12.9502 55.1201 -32h209.76c11.0801 19.0498 31.4902 32 55.1201 32c35.3496 0 64 -28.6504 64 -64s-28.6504 -64 -64 -64c-0.349609 0 -0.669922 0.0898438 -1.01953 0.0996094
+l-39.2002 -65.3193c5.08008 -9.16992 8.21973 -19.5605 8.21973 -30.7803s-3.15039 -21.6104 -8.21973 -30.7803l39.2002 -65.3193c0.349609 0 0.669922 0.0996094 1.01953 0.0996094zM96 87.1201c8.07422 -4.68848 18.4316 -15.0459 23.1201 -23.1201h208.36
+l-38.4609 64.0996c-0.349609 0 -0.669922 -0.0996094 -1.01953 -0.0996094c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64c0.349609 0 0.669922 -0.0898438 1.01953 -0.0996094l38.4609 64.0996h-208.36c-4.69043 -8.07227 -15.0479 -18.4297 -23.1201 -23.1201v-209.76z
+M272 192c0 -8.82031 7.17969 -16 16 -16s16 7.17969 16 16s-7.17969 16 -16 16s-16 -7.17969 -16 -16zM400 352c0 8.82031 -7.17969 16 -16 16s-16 -7.17969 -16 -16s7.17969 -16 16 -16s16 7.17969 16 16zM64 368c-8.82031 0 -16 -7.17969 -16 -16s7.17969 -16 16 -16
+s16 7.17969 16 16s-7.17969 16 -16 16zM48 32c0 -8.82031 7.17969 -16 16 -16s16 7.17969 16 16s-7.17969 16 -16 16s-16 -7.17969 -16 -16zM384 16c8.82031 0 16 7.17969 16 16s-7.17969 16 -16 16s-16 -7.17969 -16 -16s7.17969 -16 16 -16z" />
+ <glyph glyph-name="laptop-code" unicode="" horiz-adv-x="640"
+d="M255.03 186.35l-58.3506 58.3408c-6.25 6.25 -6.25 16.3799 0 22.6299l58.3398 58.3398c6.25 6.25 16.3809 6.25 22.6309 0l11.3096 -11.3105c6.25 -6.25 6.25 -16.3799 0 -22.6299l-35.71 -35.7197l35.7197 -35.71c6.25 -6.25 6.25 -16.3799 0 -22.6299
+l-11.3096 -11.3105c-6.25 -6.25 -16.3799 -6.25 -22.6299 0zM351.04 197.65c-6.25 6.25 -6.25 16.3799 0 22.6299l35.71 35.7197l-35.71 35.71c-6.25 6.25 -6.25 16.3799 0 22.6299l11.3096 11.3105c6.25 6.25 16.3809 6.25 22.6309 0l58.3398 -58.3408
+c6.25 -6.25 6.25 -16.3799 0 -22.6299l-58.3398 -58.3398c-6.25 -6.25 -16.3809 -6.25 -22.6309 0zM624 32c8.7998 0 16 -7.2002 16 -16v-16c0 -35.2002 -28.7998 -64 -64 -64h-512c-35.2002 0 -64 28.7998 -64 64v16c0 8.7998 7.2002 16 16 16h239.23
+c-0.25 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46zM576 400v-336h-512v336c0 26.4004 21.5996 48 48 48h416c26.4004 0 48 -21.5996 48 -48zM512 128v256h-384v-256h384z" />
+ <glyph glyph-name="layer-group" unicode=""
+d="M12.4102 299.98c-16.5498 7.50977 -16.5498 32.5293 0 40.0391l232.95 105.671c2.79883 1.2793 7.56738 2.31738 10.6445 2.31738s7.84668 -1.03809 10.6455 -2.31738l232.93 -105.681c16.5498 -7.50977 16.5498 -32.5195 0 -40.0293l-232.94 -105.671
+c-6.7998 -3.08984 -14.4893 -3.08984 -21.29 0zM499.59 211.7c16.5498 -7.5 16.5498 -32.5 0 -40l-232.95 -105.59c-6.7998 -3.08008 -14.4893 -3.08008 -21.29 0l-232.939 105.59c-16.5498 7.5 -16.5498 32.5 0 40l58.0996 26.3301l161.63 -73.2705
+c7.57031 -3.42969 15.5908 -5.16992 23.8604 -5.16992s16.2998 1.74023 23.8604 5.16992l161.64 73.2705zM499.59 83.9004c16.5498 -7.5 16.5498 -32.5 0 -40l-232.95 -105.591c-6.7998 -3.0791 -14.4893 -3.0791 -21.29 0l-232.939 105.591
+c-16.5498 7.5 -16.5498 32.5 0 40l57.8799 26.2295l161.85 -73.3701c7.57031 -3.42969 15.5908 -5.16992 23.8604 -5.16992s16.2998 1.74023 23.8604 5.16992l161.859 73.3701z" />
+ <glyph glyph-name="microscope" unicode=""
+d="M160 128c-17.6699 0 -32 14.3301 -32 32v224c0 17.6699 14.3301 32 32 32v16c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -16v-16c17.6699 0 32 -14.3301 32 -32v-224c0 -17.6699 -14.3301 -32 -32 -32h-12v-16c0 -8.83984 -7.16016 -16 -16 -16h-40
+c-8.83984 0 -16 7.16016 -16 16v16h-12zM464 0c26.5098 0 48 -21.4902 48 -48c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16c0 26.5098 21.4902 48 48 48h272c70.5801 0 128 57.4199 128 128s-57.4199 128 -128 128v64
+c105.88 0 192 -86.1201 192 -192c0 -49.2002 -18.7598 -93.9902 -49.29 -128h1.29004zM104 32c-4.41992 0 -8 3.58008 -8 8v16c0 4.41992 3.58008 8 8 8h208c4.41992 0 8 -3.58008 8 -8v-16c0 -4.41992 -3.58008 -8 -8 -8h-208z" />
+ <glyph glyph-name="oil-can" unicode="" horiz-adv-x="640"
+d="M629.8 287.69c5.11035 1.45996 10.2002 -2.38086 10.1904 -7.69043v-18.0801c0 -2.12012 -0.839844 -4.16016 -2.33984 -5.66016l-212.261 -214.75c-6.00977 -6.08984 -14.21 -9.50977 -22.7598 -9.50977h-274.63c-17.6699 0 -32 14.3301 -32 32v46.54l-69.7197 12.6904
+c-15.2207 2.75977 -26.2803 16.0195 -26.2803 31.4795v94.9502c0 17.9795 14.6699 32.0098 31.9297 32.0098c1.61133 0 4.20605 -0.237305 5.79004 -0.530273l138.28 -25.1396h56v48h-56c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h160
+c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-56v-48h56.8896c8.33984 -0.00292969 21.1611 -3.03125 28.6201 -6.75977l50.4902 -25.2402zM96 159.33v62.4297l-48 8.73047v-62.4307zM549.33 74.6699c0 23.5605 42.6699 85.3301 42.6699 85.3301
+s42.6699 -61.7598 42.6699 -85.3301s-19.0996 -42.6699 -42.6699 -42.6699s-42.6699 19.1104 -42.6699 42.6699z" />
+ <glyph glyph-name="poop" unicode=""
+d="M451.36 78.8604c34.3301 -5.48047 60.6396 -34.9805 60.6396 -70.8604c0 -39.7598 -32.2402 -72 -72 -72h-368c-39.7598 0 -72 32.2402 -72 72c0 35.8799 26.3096 65.3799 60.6396 70.8604c-17.2998 13.1494 -28.6396 33.7295 -28.6396 57.1396
+c0 39.7695 32.2402 72 72 72h14.0703c-13.4199 11.7305 -22.0703 28.7803 -22.0703 48c0 35.3496 28.6504 64 64 64h16c44.1797 0 80 35.8203 80 80c0 17.3799 -5.69043 33.3604 -15.1104 46.4805c4.95996 0.779297 9.94043 1.51953 15.1104 1.51953
+c53.0195 0 96 -42.9805 96 -96c0 -11.2803 -2.30957 -21.9502 -5.87988 -32h5.87988c35.3496 0 64 -28.6504 64 -64c0 -19.2197 -8.65039 -36.2695 -22.0703 -48h14.0703c39.7598 0 72 -32.2305 72 -72c0 -23.4102 -11.3398 -43.9902 -28.6396 -57.1396z" />
+ <glyph glyph-name="shapes" unicode=""
+d="M512 128v-160c0 -17.6699 -14.3301 -32 -32 -32h-160c-17.6699 0 -32 14.3301 -32 32v160c0 17.6699 14.3301 32 32 32h160c17.6699 0 32 -14.3301 32 -32zM128 192c70.6904 0 128 -57.3096 128 -128s-57.3096 -128 -128 -128s-128 57.3096 -128 128s57.3096 128 128 128
+zM479.03 224h-190.061c-25.3398 0 -41.1797 26.6699 -28.5098 48l95.0303 160c12.6699 21.3301 44.3496 21.3301 57.0195 0l95.0303 -160c12.6699 -21.3301 -3.16992 -48 -28.5098 -48z" />
+ <glyph glyph-name="star-of-life" unicode="" horiz-adv-x="480"
+d="M471.99 113.57c7.66016 -4.41992 10.2793 -14.2002 5.85938 -21.8506l-32.0195 -55.4297c-4.41992 -7.66016 -14.21 -10.2803 -21.8701 -5.86035l-135.93 78.4307v-156.86c0 -8.83984 -7.16992 -16 -16.0107 -16h-64.0391c-8.84082 0 -16.0107 7.16016 -16.0107 16
+v156.85l-135.93 -78.4297c-7.66016 -4.41016 -17.4502 -1.79004 -21.8701 5.86035l-32.0195 55.4297c-4.41992 7.65039 -1.80078 17.4404 5.85938 21.8604l135.931 78.4297l-135.931 78.4297c-7.66016 4.41992 -10.2793 14.21 -5.85938 21.8604l32.0195 55.4199
+c4.41992 7.65039 14.21 10.2803 21.8701 5.86035l135.93 -78.4307v156.86c0 8.83984 7.16992 16 16.0107 16h64.0391c8.84082 0 16.0107 -7.16016 16.0107 -16v-156.85l135.93 78.4297c7.66016 4.41992 17.4502 1.79004 21.8701 -5.86035l32.0195 -55.4297
+c4.41992 -7.66016 1.80078 -17.4404 -5.85938 -21.8604l-135.931 -78.4297z" />
+ <glyph glyph-name="teeth" unicode="" horiz-adv-x="640"
+d="M544 448c53.0195 0 96 -42.9805 96 -96v-320c0 -53.0195 -42.9805 -96 -96 -96h-448c-53.0195 0 -96 42.9805 -96 96v320c0 53.0195 42.9805 96 96 96h448zM160 80v64c0 8.83984 -7.16016 16 -16 16h-64c-8.83984 0 -16 -7.16016 -16 -16v-64
+c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48zM160 208v64c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-64c0 -8.83984 7.16016 -16 16 -16h64c8.83984 0 16 7.16016 16 16zM304 88v56c0 8.83984 -7.16016 16 -16 16h-80c-8.83984 0 -16 -7.16016 -16 -16v-56
+c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM304 208v88c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-88c0 -8.83984 7.16016 -16 16 -16h80c8.83984 0 16 7.16016 16 16zM448 88v56c0 8.83984 -7.16016 16 -16 16h-80c-8.83984 0 -16 -7.16016 -16 -16v-56
+c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM448 208v88c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-88c0 -8.83984 7.16016 -16 16 -16h80c8.83984 0 16 7.16016 16 16zM576 80v64c0 8.83984 -7.16016 16 -16 16h-64c-8.83984 0 -16 -7.16016 -16 -16v-64
+c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48zM576 208v64c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-64c0 -8.83984 7.16016 -16 16 -16h64c8.83984 0 16 7.16016 16 16z" />
+ <glyph glyph-name="teeth-open" unicode="" horiz-adv-x="640"
+d="M544 448c53.0195 0 96 -42.9805 96 -96v-64c0 -35.3496 -28.6602 -64 -64 -64h-512c-35.3398 0 -64 28.6504 -64 64v64c0 53.0195 42.9805 96 96 96h448zM160 272v32c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-32c0 -8.83984 7.16016 -16 16 -16h64
+c8.83984 0 16 7.16016 16 16zM304 272v56c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-56c0 -8.83984 7.16016 -16 16 -16h80c8.83984 0 16 7.16016 16 16zM448 272v56c0 30.9297 -25.0703 56 -56 56s-56 -25.0703 -56 -56v-56c0 -8.83984 7.16016 -16 16 -16h80
+c8.83984 0 16 7.16016 16 16zM576 272v32c0 26.5098 -21.4902 48 -48 48s-48 -21.4902 -48 -48v-32c0 -8.83984 7.16016 -16 16 -16h64c8.83984 0 16 7.16016 16 16zM576 128c35.3398 0 64 -28.6504 64 -64v-32c0 -53.0195 -42.9805 -96 -96 -96h-448
+c-53.0195 0 -96 42.9805 -96 96v32c0 35.3496 28.6602 64 64 64h512zM160 48v32c0 8.83984 -7.16016 16 -16 16h-64c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48zM304 56v24c0 8.83984 -7.16016 16 -16 16h-80
+c-8.83984 0 -16 -7.16016 -16 -16v-24c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM448 56v24c0 8.83984 -7.16016 16 -16 16h-80c-8.83984 0 -16 -7.16016 -16 -16v-24c0 -30.9297 25.0703 -56 56 -56s56 25.0703 56 56zM576 48v32c0 8.83984 -7.16016 16 -16 16h-64
+c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -26.5098 21.4902 -48 48 -48s48 21.4902 48 48z" />
+ <glyph glyph-name="theater-masks" unicode="" horiz-adv-x="640"
+d="M206.86 202.85l-7.62988 -43.1797c-21.0908 -7.21973 -38.5 -18.2002 -49.9004 -30.9199c-2.41992 32.9004 21.6504 63.6504 57.5303 74.0996zM95.8096 153c5.87012 -33.1699 64.3203 -71.8096 111.931 -84.79c10.5596 -27.0996 25.9795 -50.5 39.5 -67.5801
+c-3.25977 -0.339844 -6.41992 -0.799805 -10.0098 -0.799805c-68.1201 0 -190.221 61.5596 -204.45 142.08l-31.7305 179.51c-4.96973 28.0996 7.98047 56.0996 32.1504 69.5205c67.8193 37.6396 143.46 57.0596 220.12 57.0596c23.9199 0 47.9492 -1.88965 71.8594 -5.7002
+c17.29 -2.76953 31.7803 -13.0498 41.7705 -27c-19.1299 -0.769531 -38.29 -2.2998 -57.1807 -5.31934c-19.8594 -3.1709 -37.6396 -12.5303 -51.5898 -26c-1.62012 0.0195312 -3.23926 0.189453 -4.84961 0.189453c-65.8896 0 -131.25 -16.9502 -189.01 -49.0098
+c0.0400391 -0.0302734 -0.530273 -1.03027 -0.240234 -2.65039zM193.36 290.46c3.83984 -21.7002 -10.6904 -42.4004 -32.4404 -46.2197c-21.7598 -3.82031 -42.5 10.6699 -46.3398 32.3701c-0.730469 4.12012 -0.610352 8.15918 -0.0898438 12.0996
+c10.8096 -5.57031 24.8301 -7.75 39.4795 -5.16992c14.6504 2.57031 27.0703 9.41016 35.3203 18.3203c1.83984 -3.53027 3.33984 -7.28027 4.07031 -11.4004zM606.8 327.1c24.1699 -13.4092 37.1201 -41.4092 32.1504 -69.5195l-31.7305 -179.51
+c-15.3896 -87.0508 -156.83 -151.931 -219.859 -140.84c-63.0303 11.0791 -173.7 120.3 -158.311 207.35l31.7305 179.51c4.95996 28.1006 26.7295 50 54.04 54.3604c100.55 16.0596 203 -1.96973 291.979 -51.3506zM333.56 230.3
+c-0.729492 -4.12012 -0.609375 -8.16016 -0.0791016 -12.1094c10.8096 5.56934 24.8291 7.75 39.4795 5.16992c14.6504 -2.57031 27.0703 -9.41016 35.3203 -18.3203c1.83984 3.53027 3.33984 7.28027 4.06934 11.4004c3.83008 21.6992 -10.6895 42.3896 -32.4492 46.2197
+c-21.7607 3.83008 -42.5 -10.6602 -46.3408 -32.3604zM404.03 31.54c55.6699 -9.79004 108.2 23.7803 122.38 75.7197c-28.1104 -16.9697 -68.6504 -24.21 -111.93 -16.5996c-43.2803 7.60938 -78.8906 28.2402 -99.4902 53.7803
+c-4.48047 -53.6309 33.3594 -103.11 89.04 -112.9zM534.33 182.88c1.83984 3.52051 3.33984 7.27051 4.07031 11.4004c3.83008 21.7002 -10.7002 42.3896 -32.4502 46.2197c-21.7598 3.82031 -42.5 -10.6699 -46.3398 -32.3701
+c-0.730469 -4.12012 -0.610352 -8.16016 -0.0908203 -12.0996c10.8105 5.56934 24.8301 7.75 39.4805 5.16992c14.6504 -2.57031 27.0801 -9.41016 35.3301 -18.3203z" />
+ <glyph glyph-name="traffic-light" unicode="" horiz-adv-x="384"
+d="M384 256c0 -41.7402 -26.7998 -76.9004 -64 -90.1201v-37.8799h64c0 -42.8398 -28.25 -78.6904 -66.9902 -91.0498c-12.4297 -57.6699 -63.6094 -100.95 -125.01 -100.95s-112.58 43.2803 -125.01 100.95c-38.7402 12.3594 -66.9902 48.21 -66.9902 91.0498h64v37.8799
+c-37.2002 13.2197 -64 48.3799 -64 90.1201h64v37.8799c-37.2002 13.2197 -64 48.3799 -64 90.1201h64v32c0 17.6699 14.3301 32 32 32h192c17.6699 0 32 -14.3301 32 -32v-32h64c0 -41.7402 -26.7998 -76.9004 -64 -90.1201v-37.8799h64zM192 32
+c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM192 160c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM192 288c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48
+s-48 -21.4902 -48 -48s21.4902 -48 48 -48z" />
+ <glyph glyph-name="truck-monster" unicode="" horiz-adv-x="640"
+d="M624 224c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-16.71c-29.21 38.6504 -75.0996 64 -127.28 64c-52.1797 0 -98.0693 -25.3496 -127.279 -64h-65.4502c-29.21 38.6504 -75.1006 64 -127.28 64s-98.0703 -25.3496 -127.28 -64h-16.7197
+c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16v80c0 8.83984 7.16016 16 16 16h176v96c0 17.6699 14.3301 32 32 32h113.24c16.9795 -0.00195312 39.3701 -10.7627 49.9795 -24.0195l83.1807 -103.98h73.5996c17.6699 0 32 -14.3301 32 -32v-64h16z
+M288 320h132.44l-51.2002 64h-81.2402v-64zM592 96c8.83984 0 16 -7.16016 16.0195 -16v-32c0 -8.83984 -7.15918 -16 -16 -16h-5.19922c-1.79688 -6.01074 -5.67188 -15.3691 -8.65039 -20.8896l3.66992 -3.66992c6.25 -6.25 6.25 -16.3809 0 -22.6309l-22.6299 -22.6299
+c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-3.66992 3.66992c-6.62012 -3.58008 -13.5703 -6.44922 -20.9004 -8.64941v-5.2002c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v5.2002c-7.33008 2.2002 -14.29 5.08008 -20.8994 8.64941
+l-3.66992 -3.66992c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-22.6299 22.6299c-6.25 6.25 -6.25 16.3809 0 22.6309l3.66992 3.66992c-3.58008 6.60938 -6.44922 13.5596 -8.64941 20.8896h-5.2002c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h5.2002
+c1.7959 6.01074 5.6709 15.3691 8.64941 20.8896l-3.66992 3.66992c-6.25 6.25 -6.25 16.3809 0 22.6309l22.6299 22.6299c6.25 6.25 16.3809 6.25 22.6309 0l3.66992 -3.66992c6.60938 3.58008 13.5596 6.44922 20.8896 8.64941v5.2002c0 8.83984 7.16016 16 16 16h32
+c8.83984 0 16 -7.16016 16 -16v-5.2002c6.01074 -1.7959 15.3691 -5.6709 20.8896 -8.64941l3.66992 3.66992c6.25 6.25 16.3809 6.25 22.6309 0l22.6299 -22.6299c6.25 -6.25 6.25 -16.3809 0 -22.6309l-3.66992 -3.66992
+c3.58008 -6.60938 6.44922 -13.5596 8.64941 -20.8896h5.2002zM480 16c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM272 96c8.83984 0 16 -7.16016 16.0195 -15.9902v-32c0 -8.83984 -7.15918 -16 -16 -16h-5.19922
+c-1.79688 -6.00977 -5.67188 -15.3691 -8.65039 -20.8896l3.66992 -3.66992c6.25 -6.25 6.25 -16.3799 0 -22.6299l-22.6299 -22.6299c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-3.66992 3.66992c-6.62012 -3.58008 -13.5703 -6.4502 -20.9004 -8.65039v-5.2002
+c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v5.2002c-7.33008 2.2002 -14.29 5.08008 -20.8994 8.65039l-3.66992 -3.66992c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-22.6299 22.6299c-6.25 6.25 -6.25 16.3799 0 22.6299l3.66992 3.66992
+c-3.58008 6.61035 -6.44922 13.5596 -8.64941 20.8896h-5.2002c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h5.2002c1.7959 6.01074 5.6709 15.3691 8.64941 20.8906l-3.66992 3.66992c-6.25 6.25 -6.25 16.3799 0 22.6299l22.6299 22.6201
+c6.25 6.25 16.3809 6.25 22.6309 0l3.66992 -3.66992c6.60938 3.58008 13.5596 6.44922 20.8896 8.64941v5.2002c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-5.2002c6.01074 -1.7959 15.3691 -5.6709 20.8896 -8.64941l3.66992 3.66992
+c6.25 6.25 16.3809 6.25 22.6309 0l22.6299 -22.6299c6.25 -6.25 6.25 -16.3809 0 -22.6309l-3.66992 -3.66992c3.58008 -6.60938 6.44922 -13.5596 8.64941 -20.8896h5.2002zM160 16c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48
+s21.4902 -48 48 -48z" />
+ <glyph glyph-name="truck-pickup" unicode="" horiz-adv-x="640"
+d="M624 160c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-49.5996c0.759766 -5.26953 1.60938 -10.5195 1.60938 -16c0 -61.8604 -50.1396 -112 -112 -112c-61.8594 0 -112 50.1396 -112 112c0 5.48047 0.850586 10.7305 1.61035 16h-67.2305
+c0.760742 -5.26953 1.61035 -10.5195 1.61035 -16c0 -61.8604 -50.1396 -112 -112 -112s-112 50.1396 -112 112c0 5.48047 0.849609 10.7305 1.61035 16h-49.6104c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h16v64c0 17.6699 14.3301 32 32 32h160v128
+c0 17.6699 14.3301 32 32 32h113.24c16.9795 -0.00195312 39.3701 -10.7627 49.9795 -24.0195l108.78 -135.98h48c17.6699 0 32 -14.3301 32 -32v-64h16zM288 352v-96h158.04l-76.7998 96h-81.2402zM176 32c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48
+s-48 -21.5303 -48 -48s21.5303 -48 48 -48zM464 32c26.4697 0 48 21.5303 48 48s-21.5303 48 -48 48s-48 -21.5303 -48 -48s21.5303 -48 48 -48z" />
+ <glyph glyph-name="ad" unicode=""
+d="M157.52 176l18.4805 53.2197l18.4805 -53.2197h-36.9609zM352 192c13.2305 0 24 -10.7695 24 -24s-10.7695 -24 -24 -24s-24 10.7695 -24 24s10.7695 24 24 24zM464 384c26.5 0 48 -21.5 48 -48v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288
+c0 26.5 21.5 48 48 48h416zM250.58 96c11 0 18.7197 10.8496 15.1104 21.25l-53.6904 154.62c-3.08789 8.90332 -13.2422 16.1299 -22.666 16.1299h-0.00390625h-26.6602h-0.00390625c-9.41992 0 -19.5742 -7.22168 -22.666 -16.1201l-53.7002 -154.63
+c-3.60938 -10.4004 4.11035 -21.25 15.1201 -21.25h16.9404h0.00585938c6.28125 0 13.0527 4.81641 15.1143 10.75l7.37988 21.25h70.29l7.36914 -21.25c2.24023 -6.42969 8.31055 -10.75 15.1201 -10.75h16.9404zM424 112v160c0 8.83984 -7.16016 16 -16 16h-16
+c-8.83984 0 -16 -7.16016 -16 -16v-36.4199c-7.54004 2.68945 -15.54 4.41992 -24 4.41992c-39.7002 0 -72 -32.2998 -72 -72s32.2998 -72 72 -72c9.92969 0 19.4004 2.01953 28.0195 5.67969c2.94043 -3.41016 7.13086 -5.67969 11.9805 -5.67969h16
+c8.83984 0 16 7.16016 16 16z" />
+ <glyph glyph-name="ankh" unicode="" horiz-adv-x="320"
+d="M296 192c13.25 0 24 -10.7402 24 -24v-32c0 -13.25 -10.75 -24 -24 -24h-96v-152c0 -13.25 -10.75 -24 -24 -24h-32c-13.25 0 -24 10.75 -24 24v152h-96c-13.25 0 -24 10.75 -24 24v32c0 13.2598 10.75 24 24 24h44.6201c-21.0801 33.9902 -36.6201 74.3496 -36.6201 112
+c0 88.3701 57.3096 144 128 144s128 -55.6299 128 -144c0 -37.6504 -15.54 -78.0098 -36.6201 -112h44.6201zM160 368c-29.6104 0 -48 -24.5195 -48 -64c0 -34.6602 27.1396 -78.1504 48 -100.87c20.8604 22.7305 48 66.21 48 100.87c0 39.4805 -18.3896 64 -48 64z" />
+ <glyph glyph-name="bible" unicode="" horiz-adv-x="448"
+d="M448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
+c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM144 304v-32c0 -8.83984 7.16016 -16 16 -16h48v-112c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16v112h48c8.83984 0 16 7.16016 16 16v32
+c0 8.83984 -7.16016 16 -16 16h-48v48c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-48h-48c-8.83984 0 -16 -7.16016 -16 -16zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
+ <glyph glyph-name="business-time" unicode="" horiz-adv-x="640"
+d="M496 224c79.5898 0 144 -64.4102 144 -144s-64.4102 -144 -144 -144s-144 64.4102 -144 144s64.4102 144 144 144zM560 73.71v12.5801c0 5.33984 -4.37012 9.70996 -9.70996 9.70996h-38.29v54.2803c0 5.33984 -4.37012 9.70996 -9.70996 9.70996h-12.5703
+c-5.33984 0 -9.70996 -4.37012 -9.70996 -9.70996v-76.5703c0 -5.33984 4.37012 -9.70996 9.70996 -9.70996h60.5703c5.33984 0 9.70996 4.37012 9.70996 9.70996zM496 256c-37.5303 0 -72.2803 -11.9102 -100.88 -32h-395.12v80c0 25.5996 22.4004 48 48 48h80v48
+c0 25.5996 22.4004 48 48 48h160c25.5996 0 48 -22.4004 48 -48v-48h80c25.5996 0 48 -22.4004 48 -48v-48.8096c-5.28027 0.479492 -10.5996 0.80957 -16 0.80957zM320 352v32h-128v-32h128zM326.82 128c-4.33984 -15.2803 -6.82031 -31.3398 -6.82031 -48
+c0 -28.8203 7.09961 -55.96 19.4297 -80h-291.43c-25.5996 0 -48 22.4004 -48 48v144h192v-48c0 -8.83984 7.16016 -16 16 -16h118.82z" />
+ <glyph glyph-name="city" unicode="" horiz-adv-x="640"
+d="M616 256c13.25 0 24 -10.7402 24 -24v-264c0 -17.6699 -14.3301 -32 -32 -32h-576c-17.6699 0 -32 14.3301 -32 32v360c0 13.2598 10.7402 24 24 24h40v80c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-80h64v80c0 8.83984 7.16016 16 16 16h16
+c8.83984 0 16 -7.16016 16 -16v-80h64v72c0 13.2598 10.7402 24 24 24h144c13.2598 0 24 -10.7402 24 -24v-168h136zM128 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12z
+M128 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM128 236v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40
+c6.62988 0 12 5.37012 12 12zM256 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM256 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40
+c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM256 236v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM416 140v40c0 6.62988 -5.37012 12 -12 12h-40
+c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM416 236v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM416 332v40
+c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM576 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40
+c6.62988 0 12 5.37012 12 12zM576 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12z" />
+ <glyph glyph-name="comment-dollar" unicode=""
+d="M256 416c141.38 0 256 -93.1201 256 -208s-114.62 -208 -256 -208c-38.4102 0 -74.71 7.07031 -107.4 19.3799c-24.6094 -19.6299 -74.3398 -51.3799 -140.6 -51.3799h-0.00195312c-4.41309 0 -7.99512 3.58203 -7.99512 7.99512
+c0 1.76172 0.984375 4.22754 2.19727 5.50488c0.5 0.530273 42.2598 45.4502 54.8193 95.7598c-35.6094 35.7305 -57.0195 81.1807 -57.0195 130.74c0 114.88 114.62 208 256 208zM280 113.56c30.29 3.62012 53.3701 30.9805 49.3203 63.04
+c-2.90039 22.96 -20.6602 41.3105 -42.9102 47.6699l-50.0703 14.3008c-3.59961 1.0293 -6.12012 4.35938 -6.12012 8.10938c0 4.64062 3.78027 8.41992 8.44043 8.41992h32.7803h0.0654297c2.94727 0 7.51367 -0.994141 10.1943 -2.21973
+c4.7998 -2.20996 10.3701 -1.70996 14.1094 2.03027l17.5205 17.5195c5.26953 5.27051 4.66992 14.2705 -1.5498 18.3799c-9.5 6.27051 -20.3604 10.1104 -31.7803 11.46v17.7305c0 8.83984 -7.16016 16 -16 16h-16c-8.83984 0 -16 -7.16016 -16 -16v-17.5498
+c-30.29 -3.62012 -53.3701 -30.9805 -49.3203 -63.0498c2.90039 -22.96 20.6602 -41.3203 42.9102 -47.6699l50.0703 -14.3008c3.59961 -1.0293 6.12012 -4.35938 6.12012 -8.10938c0 -4.64062 -3.78027 -8.41992 -8.44043 -8.41992h-32.7803
+c-3.59961 0 -7.0791 0.759766 -10.2598 2.21973c-4.7998 2.20996 -10.3701 1.70996 -14.1094 -2.03027l-17.5205 -17.5195c-5.26953 -5.27051 -4.66992 -14.2705 1.5498 -18.3799c9.5 -6.27051 20.3604 -10.1104 31.7803 -11.46v-17.7305c0 -8.83984 7.16016 -16 16 -16h16
+c8.83984 0 16 7.16016 16 16v17.5596z" />
+ <glyph glyph-name="comments-dollar" unicode="" horiz-adv-x="576"
+d="M416 256c0 -88.3701 -93.1201 -160 -208 -160c-40.9805 0 -79.0703 9.24023 -111.27 24.9805c-21.8008 -12.7305 -52.1504 -24.9805 -88.7305 -24.9805h-0.00195312c-4.41309 0 -7.99512 3.58203 -7.99512 7.99512c0 1.76172 0.984375 4.22754 2.19727 5.50488
+c0.319336 0.339844 22.4102 24.2803 35.7695 54.5195c-23.8398 26.0303 -37.9697 57.7109 -37.9697 91.9805c0 88.3701 93.1201 160 208 160s208 -71.6299 208 -160zM192 160c0 -4.41992 3.58008 -8 8 -8h16c4.41992 0 8 3.58008 8 8v16.1201
+c23.6201 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104c4.55957 0 8.94922 -1.29004 12.8193 -3.71973
+c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v16.29c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16.1201
+c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104
+c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-16.29zM538.01 36.0098
+c13.3604 -30.2598 35.4707 -54.1699 35.7803 -54.5c2.20996 -2.33008 2.82031 -5.72949 1.5498 -8.66992c-1.25 -2.92969 -4.13965 -4.83984 -7.33984 -4.83984c-36.5801 0 -66.9297 12.25 -88.7305 24.9805c-32.1992 -15.7402 -70.2891 -24.9805 -111.27 -24.9805
+c-86.2305 0 -160.2 40.3701 -191.73 97.8799c10.4102 -1.11035 20.9502 -1.87988 31.7305 -1.87988c132.34 0 240 86.1299 240 192c0 6.78027 -0.469727 13.4697 -1.33008 20.0703c75.8398 -23.8701 129.33 -81.1299 129.33 -148.07
+c0 -34.2695 -14.1299 -65.96 -37.9902 -91.9902z" />
+ <glyph glyph-name="cross" unicode="" horiz-adv-x="384"
+d="M352 320c17.6699 0 32 -14.3301 32 -32v-64c0 -17.6699 -14.3301 -32 -32 -32h-96v-224c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32v224h-96c-17.6699 0 -32 14.3301 -32 32v64c0 17.6699 14.3301 32 32 32h96v96c0 17.6699 14.3301 32 32 32
+h64c17.6699 0 32 -14.3301 32 -32v-96h96z" />
+ <glyph glyph-name="dharmachakra" unicode=""
+d="M495 222.94c9.20996 0.569336 17 -6.74023 17.0098 -15.9707v-29.9395c0 -9.23047 -7.79004 -16.5498 -17 -15.9707l-17.2197 1.08008c-5.28027 -39.4795 -20.7998 -75.6299 -43.8604 -105.83l12.9502 -11.4297c6.91992 -6.09961 7.25977 -16.7803 0.730469 -23.3096
+l-21.1699 -21.1699c-6.52051 -6.52051 -17.2002 -6.19043 -23.3105 0.729492l-11.4297 12.9502c-30.2002 -23.0703 -66.3506 -38.5898 -105.84 -43.8604l1.08008 -17.2197c0.569336 -9.20996 -6.74023 -17 -15.9707 -17h-29.9395c-9.23047 0 -16.5498 7.79004 -15.9707 17
+l1.09082 17.2197c-39.4902 5.28027 -75.6406 20.7998 -105.841 43.8604l-11.4297 -12.9502c-6.09961 -6.91992 -16.7803 -7.25977 -23.3096 -0.729492l-21.1699 21.1699c-6.52051 6.51953 -6.19043 17.1992 0.729492 23.3096l12.9502 11.4297
+c-23.0703 30.1904 -38.5898 66.3408 -43.8604 105.83l-17.2197 -1.08008c-9.20996 -0.569336 -17 6.74023 -17 15.9707v29.9395c0 9.23047 7.79004 16.5498 17 15.9707l17.2197 -1.08008c5.28027 39.4893 20.7998 75.6396 43.8604 105.84l-12.9502 11.4297
+c-6.91992 6.10059 -7.25977 16.7803 -0.729492 23.3105l21.1699 21.1592c6.51953 6.52051 17.1992 6.19043 23.3096 -0.729492l11.4297 -12.9502c30.1904 23.0703 66.3408 38.5898 105.83 43.8604l-1.08008 17.2197c-0.569336 9.20996 6.74023 17 15.9707 17h29.9395
+c9.23047 0 16.5498 -7.79004 15.9707 -17l-1.07031 -17.21c39.4795 -5.28027 75.6299 -20.7998 105.83 -43.8604l11.4297 12.9404c6.10059 6.91992 16.7803 7.25977 23.3105 0.729492l21.1592 -21.1592c6.52051 -6.52051 6.19043 -17.2002 -0.729492 -23.3105
+l-12.9502 -11.4297c23.0703 -30.2002 38.5898 -66.3506 43.8604 -105.84zM281.84 349.39l-4.00977 -64.1201c10.2998 -2.40918 19.8896 -6.50977 28.6201 -11.9492l42.6201 48.29c-19.6006 14.1201 -42.4199 23.71 -67.2305 27.7793zM230.16 349.39
+c-24.8105 -4.06934 -47.6299 -13.6592 -67.2305 -27.7793l42.6201 -48.29c8.73047 5.42969 18.3301 9.54004 28.6201 11.9492zM126.39 285.06c-14.1201 -19.5996 -23.71 -42.4092 -27.7793 -67.2197l64.1201 -4.00977c2.41992 10.29 6.51953 19.8896 11.96 28.6201z
+M98.6104 166.16c4.06934 -24.8105 13.6592 -47.6299 27.7793 -67.2305l48.29 42.6201c-5.42969 8.73047 -9.54004 18.3301 -11.9492 28.6201zM230.16 34.6104l4 64.1201c-10.29 2.41992 -19.8906 6.51953 -28.6201 11.96l-42.6104 -48.3008
+c19.6006 -14.1201 42.4199 -23.71 67.2305 -27.7793zM256 160c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM281.84 34.6104c24.8105 4.06934 47.6201 13.6592 67.2197 27.7793l-42.6094 48.3008
+c-8.73047 -5.44043 -18.3301 -9.55078 -28.6201 -11.96zM385.61 98.9404c14.1201 19.5898 23.71 42.4092 27.7793 67.2295l-64.1201 4.00977c-2.40918 -10.2998 -6.50977 -19.8896 -11.9492 -28.6201zM349.27 213.83l64.1201 4
+c-4.06934 24.8096 -13.6592 47.6299 -27.7793 67.2295l-48.3008 -42.6094c5.44043 -8.73047 9.55078 -18.3301 11.96 -28.6201z" />
+ <glyph glyph-name="envelope-open-text" unicode=""
+d="M176 232c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h160c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16h-160zM160 152v16c0 8.83984 7.16016 16 16 16h160c8.83984 0 16 -7.16016 16 -16v-16c0 -8.83984 -7.16016 -16 -16 -16
+h-160c-8.83984 0 -16 7.16016 -16 16zM256 30.8701c16.4199 0 32.8398 5.07031 46.8604 15.1895l209.14 151.08v-213.14c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v213.14l209.14 -151.08c14.0205 -10.1299 30.4404 -15.1895 46.8604 -15.1895z
+M493.61 285.05c11.6094 -9.09961 18.3896 -23.0303 18.3896 -37.7695v-10.6504l-96 -69.3496v184.72h-320v-184.72l-96 69.3496v10.6504c0.00195312 12.8945 8.24023 29.8154 18.3896 37.7695c8.85059 6.94043 17.2402 13.4805 29.6104 22.8105v44.1396
+c0 26.5098 21.4902 48 48 48h77.5498c3.04004 2.2002 5.87012 4.25977 9.04004 6.55957c16.8203 12.2705 50.21 41.79 73.4102 41.4404c23.2002 0.349609 56.5996 -29.1699 73.4102 -41.4404c3.16992 -2.2998 6 -4.35938 9.04004 -6.55957h77.5498
+c26.5098 0 48 -21.4902 48 -48v-44.1396c12.3701 -9.34082 20.7598 -15.8701 29.6104 -22.8105z" />
+ <glyph glyph-name="folder-minus" unicode=""
+d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h160l64 -64h192zM368 152v16c0 8.83984 -7.16016 16 -16 16h-192c-8.83984 0 -16 -7.16016 -16 -16v-16
+c0 -8.83984 7.16016 -16 16 -16h192c8.83984 0 16 7.16016 16 16z" />
+ <glyph glyph-name="folder-plus" unicode=""
+d="M464 320c26.5098 0 48 -21.4902 48 -48v-224c0 -26.5098 -21.4902 -48 -48 -48h-416c-26.5098 0 -48 21.4902 -48 48v288c0 26.5098 21.4902 48 48 48h160l64 -64h192zM368 152v16c0 8.83984 -7.16016 16 -16 16h-72v72c0 8.83984 -7.16016 16 -16 16h-16
+c-8.83984 0 -16 -7.16016 -16 -16v-72h-72c-8.83984 0 -16 -7.16016 -16 -16v-16c0 -8.83984 7.16016 -16 16 -16h72v-72c0 -8.83984 7.16016 -16 16 -16h16c8.83984 0 16 7.16016 16 16v72h72c8.83984 0 16 7.16016 16 16z" />
+ <glyph glyph-name="funnel-dollar" unicode="" horiz-adv-x="640"
+d="M433.46 282.06c-83.4102 -20.8896 -145.46 -96.2695 -145.46 -186.06c0 -54.3496 22.7998 -103.38 59.21 -138.35c-10.75 -20.54 -38.3604 -29.21 -59.2197 -13.5703l-79.9902 60c-10.0703 7.55957 -16 19.4102 -16 32v155.92l-182.66 201.93
+c-19.9502 19.9502 -5.82031 54.0703 22.4004 54.0703h480.52c28.2207 0 42.3506 -34.1201 22.4004 -54.0703zM480 256c88.3701 0 160 -71.6299 160 -160s-71.6299 -160 -160 -160s-160 71.6299 -160 160s71.6299 160 160 160zM496 16.1201
+c23.6299 0.629883 42.6699 20.54 42.6699 45.0703c0 19.9697 -12.9902 37.8096 -31.5801 43.3896l-45 13.5c-5.16016 1.54004 -8.76953 6.78027 -8.76953 12.7295c0 7.27051 5.2998 13.1904 11.7998 13.1904h28.1104c4.55957 0 8.94922 -1.29004 12.8193 -3.71973
+c3.24023 -2.03027 7.36035 -1.91016 10.1299 0.729492l11.75 11.21c3.53027 3.37012 3.33008 9.20996 -0.569336 12.1406c-9.10059 6.83984 -20.0801 10.7695 -31.3701 11.3496v16.29c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-16.1201
+c-23.6201 -0.629883 -42.6699 -20.5498 -42.6699 -45.0703c0 -19.9697 12.9893 -37.8096 31.5801 -43.3896l45 -13.5c5.15918 -1.54004 8.76953 -6.78027 8.76953 -12.7295c0 -7.27051 -5.2998 -13.1904 -11.7998 -13.1904h-28.1104
+c-4.55957 0 -8.9502 1.2998 -12.8193 3.71973c-3.24023 2.03027 -7.36035 1.91016 -10.1309 -0.729492l-11.75 -11.21c-3.5293 -3.37012 -3.3291 -9.20996 0.570312 -12.1406c9.10059 -6.83008 20.0801 -10.7695 31.3701 -11.3496v-16.29c0 -4.41992 3.58008 -8 8 -8h16
+c4.41992 0 8 3.58008 8 8v16.1201z" />
+ <glyph glyph-name="gopuram" unicode=""
+d="M496 96c8.7998 0 16 -7.2002 16 -16v-128c0 -8.7998 -7.2002 -16 -16 -16h-80v160h-32v128h-32v96h-32v-96h32v-128h32v-160h-80v80c0 8.7998 -7.2002 16 -16 16h-64c-8.7998 0 -16 -7.2002 -16 -16v-80h-80v160h32v128h32v96h-32v-96h-32v-128h-32v-160h-80
+c-8.7998 0 -16 7.2002 -16 16v128c0 8.7998 7.2002 16 16 16h16v112c0 8.7998 7.2002 16 16 16h16v80c0 8.7998 7.2002 16 16 16h16v112c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-16h64v16c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-16h64v16
+c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-16h64v16c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16v-112h16c8.7998 0 16 -7.2002 16 -16v-80h16c8.7998 0 16 -7.2002 16 -16v-112h16zM232 272v-48h48v48c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16z
+M288 96v64c0 8.7998 -7.2002 16 -16 16h-32c-8.7998 0 -16 -7.2002 -16 -16v-64h64z" />
+ <glyph glyph-name="hamsa" unicode=""
+d="M509.34 140.75c1.46875 -3.37012 2.66016 -9.08984 2.66016 -12.7656c0 -6.95703 -3.85254 -16.7295 -8.59961 -21.8145l-102.681 -110.03c-35.6895 -38.2197 -88.4102 -60.1396 -144.72 -60.1396s-109.03 21.9199 -144.71 60.1396l-102.69 110.03
+c-4.74707 5.08496 -8.59961 14.8574 -8.59961 21.8145c0 3.67578 1.19141 9.39551 2.66016 12.7656c5.05957 11.6904 16.5898 19.25 29.3398 19.25h64v208c0 22 18 40 40 40s40 -18 40 -40v-134c0 -5.51953 4.48047 -10 10 -10h20c5.51953 0 10 4.48047 10 10v174
+c0 22 18 40 40 40s40 -18 40 -40v-174c0 -5.51953 4.48047 -10 10 -10h20c5.51953 0 10 4.48047 10 10v134c0 22 18 40 40 40s40 -18 40 -40v-208h64c12.75 0 24.2803 -7.55957 29.3398 -19.25zM256 32c53.0195 0 96 64 96 64s-42.9805 64 -96 64s-96 -64 -96 -64
+s42.9805 -64 96 -64zM256 128c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
+ <glyph glyph-name="haykal" unicode=""
+d="M496.25 245.48c17.54 -2.46094 21.6797 -26.2705 6.04004 -34.6602l-98.1602 -52.6602l74.4805 -83.54c11.8594 -13.29 0.00976562 -34.25 -17.3506 -30.4902l-108.569 23.6504l4.10938 -112.55c0.430664 -11.6504 -8.87012 -19.2207 -18.4102 -19.2207
+c-5.15918 0 -10.3896 2.20996 -14.1992 7.18066l-68.1807 88.8994l-68.1797 -88.8994c-3.81055 -4.9707 -9.0498 -7.18066 -14.2002 -7.18066c-9.54004 0 -18.8398 7.57031 -18.4102 19.2207l4.11035 112.55l-108.57 -23.6504
+c-1.39941 -0.30957 -2.75977 -0.450195 -4.06934 -0.450195c-15.0107 0 -24.21 18.6807 -13.29 30.9307l74.4795 83.54l-98.1602 52.6592c-15.6494 8.40039 -11.5098 32.21 6.03027 34.6709l110 15.4297l-41.8203 104.34c-6.66016 16.6396 11.6006 32.1797 26.5898 22.6299
+l94.04 -59.8896l34.0908 107.189c2.70996 8.55078 10.0293 12.8203 17.3496 12.8203s14.6396 -4.26953 17.3496 -12.8203l34.0908 -107.18l94.04 59.8896c14.9893 9.55078 33.2598 -5.98926 26.5898 -22.6299l-41.8203 -104.34zM338.51 136.32l-35.6094 39.9297
+l46.9199 25.1699l-52.5703 7.37988l19.9902 49.8701l-44.9502 -28.6201l-16.29 51.2305l-16.3096 -51.2305l-44.9502 28.6201l19.9902 -49.8701l-52.5703 -7.37988l46.9199 -25.1699l-35.5996 -39.9297l51.8896 11.2998l-1.95996 -53.79l32.5898 42.4902l32.5898 -42.4902
+l-1.96973 53.79z" />
+ <glyph glyph-name="jedi" unicode="" horiz-adv-x="544"
+d="M479.99 96h39.96c-42.6299 -94.1699 -137.641 -160 -247.98 -160c-4.25977 0 -8.5498 0.0898438 -12.8496 0.290039c-103.97 4.76953 -193.851 69.4795 -235.101 159.71h39.9102l-58.5996 58.5996c-2.57031 12.8809 -4.49023 25.9805 -5.11035 39.4102
+c-0.469727 10.0801 -0.129883 20.0703 0.5 29.9902h47.21l-41.3799 41.3799c14.3701 64.7002 52.1006 122.55 107.97 162.07c2.77051 1.95996 5.9707 3 9.27051 3c5.37988 0 10.4297 -2.70996 13.5098 -7.25c3.0498 -4.5 3.64062 -10 1.62012 -15.0898
+c-6.53027 -16.4502 -9.83984 -33.7002 -9.83984 -51.2607c0 -45.1191 21.04 -86.5801 57.71 -113.739c4.00977 -2.9707 6.4502 -7.48047 6.69043 -12.3799c0.239258 -4.90039 -1.76074 -9.65039 -5.48047 -13.0107c-26.5498 -23.9795 -41.1699 -56.5 -41.1699 -91.5801
+c0 -60.0293 42.9502 -110.279 99.8896 -121.92l2.5 65.2607l-27.1602 -18.4805c-2.96973 -2 -7.40918 -1.7002 -10 0.75c-2.72949 2.61035 -3.30957 6.70996 -1.38965 9.94043l20.1299 33.7695l-42.0693 8.71973c-3.71094 0.75 -6.38086 4.05078 -6.38086 7.83008
+c0 3.78027 2.68066 7.08008 6.38086 7.83008l42.0693 8.73047l-20.1094 33.7295c-1.94043 3.27051 -1.36035 7.35059 1.35938 9.94043c2.73047 2.60938 6.86035 2.89941 10 0.779297l30.3906 -20.6592l11.5195 287.97c0.160156 4.29004 3.66992 7.66992 8 7.66992h0.0400391
+c4.25293 0 7.81934 -3.44922 7.95996 -7.7002l11.5303 -287.93l30.3896 20.6699c3.03027 2.08984 7.2998 1.75 10 -0.799805c2.71973 -2.60059 3.2998 -6.68066 1.37988 -9.91016l-20.1299 -33.7705l42.0703 -8.72949c3.68945 -0.770508 6.37988 -4.06055 6.37988 -7.83008
+c0 -3.78027 -2.67969 -7.08008 -6.37988 -7.83008l-42.0703 -8.71973l20.1104 -33.7305c0.631836 -1.05078 1.14453 -2.89844 1.14453 -4.12402c0 -1.89355 -1.11328 -4.49023 -2.48438 -5.7959c-2.63086 -2.49023 -7.04004 -2.85938 -10.0205 -0.799805l-27.1699 18.4697
+l2.5 -65.3398c48.4697 9.40039 87.5703 48.1504 97.3096 96.5c8.78027 43.5605 -5.63965 87.3203 -38.5693 117.07c-3.73047 3.37012 -5.73047 8.10938 -5.49023 13.0303c0.240234 4.89941 2.67969 9.41992 6.7002 12.3994c36.6602 27.1602 57.6895 68.6104 57.6895 113.73
+c0 17.5801 -3.30957 34.8496 -9.85938 51.3096c-2.03027 5.09961 -1.44043 10.5996 1.60938 15.0898c3.08008 4.53027 8.12012 7.24023 13.4902 7.24023c3.28027 0 6.48047 -1.03027 9.25 -2.99023c55.4805 -39.2197 93.4102 -97.4795 107.91 -162.27l-41.25 -41.2402
+h46.9502c0.370117 -5.75977 1.0498 -11.46 1.0498 -17.2695c0 -17.7402 -1.83984 -35.0605 -5.12988 -51.8604z" />
+ <glyph glyph-name="journal-whills" unicode="" horiz-adv-x="448"
+d="M448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
+c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM133.08 303.61c-2.98047 -10.0908 -5.08008 -20.5605 -5.07031 -31.6201c0 -0.520508 0.140625 -0.990234 0.150391 -1.50977l37.1094 -32.4707
+c3.33008 -2.89941 3.6709 -7.9502 0.75 -11.2793c-1.5791 -1.81055 -3.7998 -2.73047 -6.01953 -2.73047h-0.0175781c-1.65527 0 -4.00879 0.886719 -5.25195 1.98047l-23.5908 20.6396c11.54 -49.5801 55.7705 -86.6201 108.86 -86.6201s97.3203 37.04 108.87 86.6299
+l-23.5898 -20.6396c-1.52051 -1.32031 -3.39062 -1.98047 -5.27051 -1.98047h-0.0146484c-2 0 -4.69043 1.22363 -6.00488 2.73047c-1.09668 1.24707 -1.98633 3.60645 -1.98633 5.2666c0 2.00293 1.22559 4.69727 2.73633 6.0127l37.1094 32.4707
+c0.0107422 0.519531 0.150391 0.990234 0.150391 1.50977c0 11.0498 -2.09961 21.5195 -5.07031 31.5996l-21.2598 -21.2598c-1.57031 -1.55957 -3.61035 -2.33984 -5.66016 -2.33984s-4.09961 0.780273 -5.66016 2.33984c-3.11914 3.12012 -3.11914 8.19043 0 11.3105
+l26.4199 26.4199c-10 20.8994 -26.2393 37.9795 -46.3691 49.2598c5.97949 -9.73047 9.59961 -21.0703 9.59961 -33.3301c0 -19.96 -9.33008 -37.5703 -23.6602 -49.3096c9.65039 -10.0605 15.6602 -23.6504 15.6602 -38.6904c0 -26.9404 -19.04 -49.4004 -44.3701 -54.7402
+l-1.42969 34.2803l12.6797 -8.62012c0.69043 -0.459961 1.46973 -0.689453 2.25 -0.689453c0.980469 0 1.98047 0.369141 2.75 1.08984c1.36035 1.2793 1.63965 3.33984 0.69043 4.94922l-8.54004 14.3105l17.9102 3.71973
+c1.85938 0.390625 3.18945 2.03027 3.18945 3.91992c0 1.89062 -1.33008 3.53027 -3.18945 3.91992l-17.9102 3.7207l8.54004 14.3096c0.308594 0.521484 0.55957 1.43652 0.55957 2.04297c0 0.950195 -0.55957 2.25293 -1.25 2.90723
+c-0.645508 0.59668 -1.88281 1.08105 -2.76172 1.08105c-0.672852 0 -1.67578 -0.300781 -2.23828 -0.670898l-14.2002 -9.65039l-4.67969 112.29c-0.0898438 2.13965 -1.86035 3.83008 -4 3.83008s-3.91016 -1.69043 -4 -3.83008l-4.62012 -110.81l-12.0098 8.15918
+c-1.56055 1.03027 -3.63965 0.890625 -5 -0.40918c-1.36035 -1.28027 -1.63965 -3.34082 -0.69043 -4.9502l8.54004 -14.3105l-17.9102 -3.71973c-1.85938 -0.389648 -3.18945 -2.03027 -3.18945 -3.91992s1.33008 -3.53027 3.18945 -3.91992l17.9102 -3.71973
+l-8.54004 -14.3105c-0.308594 -0.521484 -0.55957 -1.43652 -0.55957 -2.04297c0 -0.950195 0.55957 -2.25293 1.25 -2.90723c0.769531 -0.709961 1.75 -1.08984 2.75 -1.08984c0.780273 0 1.55957 0.240234 2.25 0.69043l10.3701 7.04004l-1.36035 -32.71
+c-25.3398 5.35938 -44.3799 27.8193 -44.3799 54.7598c0 15.04 6.00977 28.6299 15.6602 38.6904c-14.3301 11.7393 -23.6602 29.3496 -23.6602 49.3096c0 12.2598 3.62012 23.5996 9.61035 33.3398c-20.1299 -11.29 -36.3701 -28.3594 -46.3701 -49.2598l26.4199 -26.4199
+c3.12012 -3.12012 3.12012 -8.19043 0 -11.3105c-1.57031 -1.55957 -3.61035 -2.33984 -5.66016 -2.33984s-4.09961 0.780273 -5.66016 2.33984zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
+ <glyph glyph-name="kaaba" unicode="" horiz-adv-x="576"
+d="M554.12 364.49c13.0703 -4.36035 21.8799 -16.5898 21.8799 -30.3604v-49.0098l-265 79.5098c-15.0596 4.5 -30.9502 4.5 -45.9805 0l-265.02 -79.5098v49.0098c0.000976562 12.7314 9.80273 26.332 21.8799 30.3604l235.771 78.5801
+c8.15723 2.71973 21.7559 4.92676 30.3545 4.92676s22.1982 -2.20703 30.3555 -4.92676zM274.22 333.97c9 2.7207 18.5498 2.7207 27.5898 0l274.2 -82.2598v-228.39c0 -15 -10.4199 -27.9902 -25.0596 -31.2402l-242.12 -53.7998
+c-5.67871 -1.2627 -15.0078 -2.28809 -20.8252 -2.28809s-15.1465 1.02539 -20.8252 2.28809l-242.12 53.7998c-14.6396 3.25977 -25.0596 16.2402 -25.0596 31.2402v228.38zM128 217.89v16.5801c0 5.28027 -5.01953 9.11035 -10.1104 7.7207l-80 -21.8203
+c-3.47949 -0.950195 -5.88965 -4.11035 -5.88965 -7.71973v-16.5801c0 -5.27051 5.01953 -9.10059 10.1104 -7.7207l80 21.8203c3.47949 0.950195 5.88965 4.11035 5.88965 7.71973zM272 257.17v16.5801c0 5.28027 -5.01953 9.11035 -10.1104 7.71973l-96 -26.1797
+c-3.47949 -0.950195 -5.88965 -4.11035 -5.88965 -7.71973v-16.5801c0 -5.28027 5.01953 -9.11035 10.1104 -7.7207l96 26.1807c3.47949 0.950195 5.88965 4.10938 5.88965 7.71973zM448 234.47v-16.5801v-0.00488281c0 -3.37109 2.63867 -6.82715 5.88965 -7.71484
+l80 -21.8203c5.09082 -1.38965 10.1104 2.44043 10.1104 7.7207v16.5801c0 3.60938 -2.41016 6.76953 -5.88965 7.71973l-80 21.8203c-5.09082 1.38965 -10.1104 -2.44043 -10.1104 -7.7207zM304 273.74v-16.5801v-0.00585938c0 -3.37012 2.63867 -6.82617 5.88965 -7.71387
+l96 -26.1807c5.09082 -1.38965 10.1104 2.44043 10.1104 7.7207v16.5791c0 3.61035 -2.41016 6.77051 -5.88965 7.7207l-96 26.1797c-5.09082 1.38965 -10.1104 -2.44043 -10.1104 -7.71973z" />
+ <glyph glyph-name="khanda" unicode=""
+d="M415.81 382c73.71 -40.2402 111.78 -123.85 90.1602 -207.51c-7.25 -28.0898 -22.3799 -53.5703 -41.25 -75.5898l-52.5098 -61.3105c-4.87012 -5.67969 -13.04 -7.22949 -19.6504 -3.70996l-79.3496 42.2305l-29.21 -20.3408l47.0801 -32.7793
+c1.66992 0.370117 3.22949 1.00977 5.00977 1.00977c13.25 0 23.9902 -10.7402 23.9902 -24c0 -13.25 -10.7402 -24 -23.9902 -24c-12.0898 0 -21.6797 9.11035 -23.3301 20.7598l-40.9102 28.4805v-30.1504c9.38086 -5.58008 15.9902 -15.3896 15.9902 -27.0996
+c0 -17.6699 -14.3203 -32 -31.9795 -32c-17.6602 0 -31.9805 14.3301 -31.9805 32c0 11.7197 6.60059 21.5293 15.9902 27.0996v29.9502l-40.6299 -28.2803c-1.64062 -11.6494 -11.2305 -20.7598 -23.3301 -20.7598c-13.25 0 -23.9902 10.75 -23.9902 24
+c0 13.2598 10.7402 24 23.9902 24c1.78027 0 3.33984 -0.639648 5.00977 -1.00977l47.0801 32.7793l-29.21 20.3301l-79.3496 -42.2295c-6.61035 -3.52051 -14.7803 -1.96973 -19.6504 3.71973l-55.9697 65.3604c-12.5703 14.6797 -23.3906 31.0693 -30.46 49.0596
+c-35.6602 90.6904 2.95996 186.391 81.4893 229.24c6.34082 3.5 15.0205 2.63965 20.0205 -2.7002c4.99023 -5.30957 6.45996 -12.9199 2.58984 -19.0801c-16.4902 -26.1602 -25.2002 -56.3896 -25.2002 -87.4697c0.180664 -53.1904 26.7598 -102.62 71.0303 -132.18
+l76.5898 -53.3301v19.8994l-44.0498 36.0908c-3.91016 4.20996 -5 10.0996 -2.81055 15.2793l7.85059 17.2402c-33.8506 19.2598 -56.9404 55.2402 -56.9404 96.9902c0 40.79 22.0205 76.1396 54.5898 95.7197l-5.21973 11.4404
+c-2.33008 5.5293 -0.929688 11.8301 3.57031 16.04l58.9902 52.8096l58.9893 -52.8203c4.5 -4.20996 5.91016 -10.5098 3.57031 -16.04l-5.21973 -11.4395c32.5693 -19.5801 54.5898 -54.9199 54.5898 -95.71c0 -41.7402 -23.0996 -77.7305 -56.9404 -96.9902
+l7.85059 -17.2402c2.18945 -5.18945 1.10938 -11.0801 -2.81055 -15.2793l-44.0498 -36.0908v-20.0996l76.6299 53.3496c44.5 29.7207 71.0801 79.1602 71.2705 132.41c0 31.0205 -8.70996 61.25 -25.2002 87.4102c-1.36328 2.15723 -2.46973 5.97949 -2.46973 8.53223
+c0 3.51465 1.96191 8.43652 4.37988 10.9883c4.99023 5.34961 12.9902 6.51953 19.3594 3.01953zM319.82 272c0 21.3203 -10.5801 40.1201 -26.6504 51.7695l-7.83008 -17.1797c-8.75 -24.5195 -8.75 -51.04 0 -75.5596l5.65039 -12.4102
+c17.3398 11.46 28.8301 31.0801 28.8301 53.3799zM191.89 272c0 -22.2998 11.5 -41.9297 28.8408 -53.3896l5.64941 12.4092c8.75 24.5303 8.75 51.04 0 75.5605l-7.83008 17.1797c-16.0801 -11.6396 -26.6602 -30.4395 -26.6602 -51.7598z" />
+ <glyph glyph-name="landmark" unicode=""
+d="M501.62 355.89c6.24023 -2.33984 10.3799 -8.30957 10.3799 -14.9795v-36.9102c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v36.9102c0 6.11914 4.65039 12.8301 10.3799 14.9795l234.39 90.0703
+c2.99902 1.12598 8.03223 2.04004 11.2354 2.04004s8.23633 -0.914062 11.2354 -2.04004zM64 256h64v-160h96v160h64v-160h96v160h64v-160h16c8.83984 0 16 -7.16016 16 -16v-48h-448v48c0 8.83984 7.16016 16 16 16h16v160zM496 0c8.83984 0 16 -7.16016 16 -16v-32
+c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" />
+ <glyph glyph-name="mail-bulk" unicode="" horiz-adv-x="576"
+d="M160 0c25.5996 0 51.2002 22.4004 64 32c64 44.7998 83.2002 60.7998 96 70.4004v-134.4c0 -17.6699 -14.3301 -32 -32 -32h-256c-17.6699 0 -32 14.3301 -32 32v134.4c12.7998 -9.60059 32 -25.6006 96 -70.4004c12.7998 -9.59961 38.4004 -32 64 -32zM288 192
+c17.6699 0 32 -14.3301 32 -32v-19.2002c-25.5996 -19.2002 -22.4004 -19.2002 -115.2 -86.3994c-9.59961 -3.2002 -28.7998 -22.4004 -44.7998 -22.4004s-35.2002 19.2002 -44.7998 25.5996c-92.7998 67.2002 -89.6006 67.2002 -115.2 86.4004v16
+c0 17.6699 14.3301 32 32 32h256zM544 288c17.6699 0 32 -14.3301 32 -32v-192c0 -17.6699 -14.3301 -32 -32 -32h-192v134.4l-0.290039 -0.220703c-3.12012 32.4004 -30.5 57.8203 -63.71 57.8203h-96v32c0 17.6699 14.3301 32 32 32h320zM512 160v64h-64v-64h64zM160 256
+v-32h-96v192c0 17.6699 14.3301 32 32 32h320c17.6699 0 32 -14.3301 32 -32v-96h-224c-35.29 0 -64 -28.71 -64 -64z" />
+ <glyph glyph-name="menorah" unicode="" horiz-adv-x="640"
+d="M144 320c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM240 320c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM432 320c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM528 320
+c8.83984 0 16 -7.16016 16 -16v-144h-64v144c0 8.83984 7.16016 16 16 16h32zM608 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM512 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32
+zM416 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM320 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM224 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64
+s-14.3301 -32 -32 -32zM128 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM32 352c-17.6699 0 -32 14.3301 -32 32s32 64 32 64s32 -46.3301 32 -64s-14.3301 -32 -32 -32zM576 160v144c0 8.83984 7.16016 16 16 16h32
+c8.83984 0 16 -7.16016 16 -16v-144c0 -53.0195 -42.9805 -96 -96 -96h-192v-64h176c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h176v64h-192c-53.0195 0 -96 42.9805 -96 96
+v144c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-144c0 -17.6699 14.3301 -32 32 -32h192v176c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-176h192c17.6699 0 32 14.3301 32 32z" />
+ <glyph glyph-name="mosque" unicode="" horiz-adv-x="640"
+d="M0 -32v320h128v-320c0 -17.6699 -14.3301 -32 -32 -32h-64c-17.6699 0 -32 14.3301 -32 32zM579.16 160h-358.32c-17.8594 17.3896 -28.8398 37.3398 -28.8398 58.9102c0 52.8594 41.79 93.79 87.9199 122.899c41.9502 26.46 80.6299 57.7705 111.96 96.2207
+l8.12012 9.96973l8.12012 -9.96973c31.3301 -38.4502 70.0195 -69.75 111.96 -96.2207c46.1299 -29.1094 87.9199 -70.04 87.9199 -122.899c0 -21.5703 -10.9805 -41.5205 -28.8398 -58.9102zM608 128c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32
+h-32v64c0 17.6699 -14.3301 32 -32 32s-32 -14.3301 -32 -32v-64h-64v72c0 48 -48 72 -48 72s-48 -24 -48 -72v-72h-64v64c0 17.6699 -14.3301 32 -32 32s-32 -14.3301 -32 -32v-64h-32c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h416zM64 448
+c0 0 64 -32 64 -96v-32h-128v32c0 64 64 96 64 96z" />
+ <glyph glyph-name="om" unicode=""
+d="M360.6 387.06l-21.5801 21.5605c-1.68848 1.68652 -3.05957 4.99316 -3.05957 7.37988s1.37109 5.69336 3.05957 7.37988l21.5703 21.5605c4.08008 4.06934 10.6797 4.06934 14.7598 0l21.5801 -21.5605c1.68945 -1.68652 3.06055 -4.99316 3.06055 -7.37988
+s-1.37109 -5.69336 -3.06055 -7.37988l-21.5693 -21.5605c-1.6875 -1.68848 -4.99316 -3.05957 -7.37988 -3.05957c-2.3877 0 -5.69336 1.37109 -7.38086 3.05957zM412.11 256c55.0898 0 99.8896 -44.7998 99.8896 -99.8799v-100.12c0 -48.5303 -47.4805 -88 -96.0195 -88
+c-96.0205 0 -96.0205 64 -96.0205 64v37.8701c0 7.55957 9.42969 10.8896 14.2002 5.01953c15.1494 -18.6494 42.4199 -42.8896 81.8203 -42.8896c13.2393 0 32.0098 10.7695 32.0098 24v100.12c0 19.79 -16.1006 35.8799 -35.8799 35.8799
+c-9.60059 0 -18.6006 -3.73047 -25.3799 -10.5l-24.25 -24.25c-18.8701 -18.8604 -43.9502 -29.25 -70.6406 -29.25h-21.6895c11.0293 -18.9004 17.8096 -40.5801 17.8096 -64c0 -70.5801 -57.4297 -128 -128.02 -128c-118.811 0 -160.03 96 -159.94 150.81
+c0.0195312 8.80078 10.2598 12.7705 14.79 5.2207c22.7998 -38.0107 49.1299 -92.0303 145.15 -92.0303c35.2998 0 64.0098 28.7002 64.0098 64s-28.71 64 -64.0098 64h-33.0303c-5.57031 0.450195 -10.6406 3.49023 -13.1699 8.5498l-16.0898 32.1699
+c-5.35059 10.7002 2.42969 23.2803 14.3896 23.2803h31.9004c26.4697 0 48.0098 21.5303 48.0098 48s-21.54 48 -48.0098 48c-11.25 0 -21.8203 -3.80957 -30.2705 -10.71c-5.54004 -4.53027 -13.4795 -4.50977 -19.2002 -0.209961l-26.1494 19.6299
+c-8.08984 6.08008 -8.48047 17.9697 -1.12012 24.9297c25.1094 23.7402 59.8594 34.71 96.0098 28.7803c43.1602 -7.08008 79.4199 -40.6396 89.5205 -83.1895c6.43945 -27.1201 2.80957 -53.1309 -7.73047 -75.2305h46.8398c9.60059 0 18.6006 3.73047 25.3799 10.5
+l24.25 24.25c18.8701 18.8604 43.9502 29.25 70.6406 29.25zM454.29 380.73c10.5596 7.95996 25.7002 0.489258 25.7002 -12.7305v-35.5195c0 -2.36035 -0.509766 -4.71094 -1.53027 -6.83008c-2.96973 -6.30078 -21.8301 -37.6602 -101.75 -37.6602
+c-78.4297 0 -117.19 69.3896 -118.8 72.3398c-3.61035 6.62988 -2.08008 14.8799 3.66016 19.7998c5.69922 4.92969 14.1201 5.16992 20.1396 0.549805c3.53027 -2.69922 87.0303 -65.0693 172.58 0.0507812z" />
+ <glyph glyph-name="pastafarianism" unicode="" horiz-adv-x="640"
+d="M624.54 100.33c12.4004 -4.71973 18.5996 -18.5801 13.8896 -30.9805c-4.69922 -12.4092 -18.5801 -18.6299 -30.9697 -13.8799c-8.11035 3.08984 -14.3398 0.19043 -31.3896 -11.3594c-13.5508 -9.15039 -30.8301 -20.8408 -52.4199 -20.8408
+c-7.16992 0 -14.8301 1.28027 -22.9707 4.39062c-32.6602 12.4395 -39.9893 41.3301 -45.3301 62.4395c-2.20996 8.7207 -3.98926 14.4902 -5.94922 18.8701c-16.6201 -13.5996 -36.9307 -25.8701 -61.6201 -34.1602c10.0098 -37 32.2793 -90.8096 60.2197 -90.8096
+c13.25 0 24 -10.75 24 -24s-10.75 -24 -24 -24c-66.7402 0 -97.0498 88.6299 -107.42 129.14c-6.69043 -0.599609 -13.4199 -1.13965 -20.5801 -1.13965s-13.8896 0.540039 -20.5801 1.13965c-10.3701 -40.5098 -40.6797 -129.14 -107.42 -129.14c-13.25 0 -24 10.75 -24 24
+s10.75 24 24 24c28.0801 0 50.2998 53.7998 60.2598 90.7998c-24.6895 8.29004 -45.0195 20.5605 -61.6396 34.1699c-1.95996 -4.37988 -3.74023 -10.1494 -5.9502 -18.8701c-5.34961 -21.1094 -12.6699 -50 -45.3301 -62.4395
+c-8.13965 -3.11035 -15.7998 -4.39062 -22.9697 -4.39062c-21.5898 -0.0195312 -38.8701 11.6807 -52.4199 20.8408c-17.0498 11.5498 -23.2305 14.4492 -31.3906 11.3594c-12.3594 -4.72949 -26.25 1.4707 -30.9697 13.8799
+c-4.71973 12.3906 1.48047 26.25 13.8701 30.9707c32.6504 12.4697 57.3398 -4.25 75.3701 -16.4502c17.0801 -11.5303 23.2998 -14.4199 31.4102 -11.3604c8.12012 3.10059 10.8301 9.37988 15.8896 29.3799c3.33008 13.1504 7.44043 29.3203 17.9502 42.6504
+c-2.24023 2.91016 -4.42969 5.78027 -6.37988 8.57031c-10.1699 -9.56055 -23.4102 -17.1104 -41.7002 -17.1104c-33.9502 0 -50.8701 25.7803 -62.0596 42.8301c-10.6006 16.1396 -15 21.1699 -21.9404 21.1699c-13.25 0 -24 10.75 -24 24s10.75 24 24 24
+c33.96 0 50.8799 -25.7803 62.0596 -42.8301c10.6006 -16.1396 15 -21.1699 21.9404 -21.1699c17.1504 0 37.6797 61.5596 97.2695 101.9l-17.25 34.5c-33.46 2.09961 -60.0195 29.6191 -60.0195 63.5996c0 35.3496 28.6504 64 64 64s64 -28.6504 64 -64
+c0 -13.0195 -3.94043 -25.0996 -10.5996 -35.21l18.1494 -36.2998c16.9697 4.59961 35.6006 7.50977 56.46 7.50977c20.8604 0 39.4805 -2.91016 56.46 -7.50977l18.1504 36.2998c-6.67969 10.1104 -10.6201 22.1904 -10.6201 35.21c0 35.3496 28.6504 64 64 64
+s64 -28.6504 64 -64c0 -33.9805 -26.5703 -61.5 -60.0098 -63.5898l-17.25 -34.5c59.7793 -40.4805 79.9502 -101.91 97.2598 -101.91c6.94043 0 11.3398 5.03027 21.9404 21.1699c11.1895 17.0498 28.1094 42.8301 62.0596 42.8301c13.25 0 24 -10.75 24 -24
+s-10.75 -24 -24 -24c-6.94043 0 -11.3496 -5.03027 -21.9404 -21.1699c-11.1895 -17.0498 -28.1094 -42.8301 -62.0596 -42.8301c-18.29 0 -31.5303 7.5498 -41.7002 17.1201c-1.9502 -2.78027 -4.13965 -5.66016 -6.37988 -8.57031
+c10.5098 -13.3301 14.6201 -29.5 17.9502 -42.6494c5.05957 -20 7.76953 -26.29 15.8896 -29.3809c8.16016 -3.05957 14.3506 -0.169922 31.4102 11.3604c18.0098 12.2002 42.6699 28.9697 75.3701 16.4502zM448 400c-8.82031 0 -16 -7.17969 -16 -16s7.17969 -16 16 -16
+s16 7.17969 16 16s-7.17969 16 -16 16zM192 400c-8.82031 0 -16 -7.17969 -16 -16s7.17969 -16 16 -16s16 7.17969 16 16s-7.17969 16 -16 16z" />
+ <glyph glyph-name="peace" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM432 192c0 90.5303 -65.7695 165.82 -152 181.03v-165.66l129.43 -103.54c14.3701 26.2002 22.5703 56.2402 22.5703 88.1699zM216 10.9697v114.46
+l-89.29 -71.4395c24.7998 -21.8203 55.4297 -37.0498 89.29 -43.0205zM280 125.43v-114.449c33.8604 5.96973 64.4902 21.1992 89.29 43.0195zM216 373.03c-86.2305 -15.21 -152 -90.5 -152 -181.03c0 -31.9297 8.2002 -61.9697 22.5703 -88.1699l129.43 103.54v165.66z" />
+ <glyph glyph-name="place-of-worship" unicode="" horiz-adv-x="640"
+d="M620.61 81.4502c10.7031 -4.58887 19.3896 -17.7646 19.3896 -29.4102v-100.04c0 -8.83984 -7.16016 -16 -16 -16h-112v192zM0 52.04c0 11.6455 8.68652 24.8213 19.3896 29.4102l108.61 46.5498v-192h-112c-8.83984 0 -16 7.16016 -16 16v100.04zM464.46 201.32
+c9.63965 -5.78027 15.54 -16.2002 15.54 -27.4404v-237.88h-96v96c0 35.3496 -28.6602 64 -64 64s-64 -28.6504 -64 -64v-96h-96v237.88c0 10.0029 6.96191 22.2959 15.54 27.4404l48.46 29.0801v114.97c0 8.49023 3.37988 16.6299 9.37988 22.6299l75.3105 75.3096
+c6.23926 6.25 16.3691 6.25 22.6191 0l75.3105 -75.3096c6.00977 -6.00977 9.37988 -14.1396 9.37988 -22.6299v-114.97z" />
+ <glyph glyph-name="poll" unicode="" horiz-adv-x="448"
+d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352zM160 80v128c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-128c0 -8.83984 7.16016 -16 16 -16h32
+c8.83984 0 16 7.16016 16 16zM256 80v224c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-224c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16zM352 80v64c0 8.83984 -7.16016 16 -16 16h-32c-8.83984 0 -16 -7.16016 -16 -16v-64
+c0 -8.83984 7.16016 -16 16 -16h32c8.83984 0 16 7.16016 16 16z" />
+ <glyph glyph-name="poll-h" unicode="" horiz-adv-x="448"
+d="M448 16c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h352c26.5 0 48 -21.5 48 -48v-352zM112 256h128c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-128c-8.83984 0 -16 -7.16016 -16 -16v-32
+c0 -8.83984 7.16016 -16 16 -16zM112 160h224c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-224c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16zM112 64h64c8.83984 0 16 7.16016 16 16v32c0 8.83984 -7.16016 16 -16 16h-64
+c-8.83984 0 -16 -7.16016 -16 -16v-32c0 -8.83984 7.16016 -16 16 -16z" />
+ <glyph glyph-name="pray" unicode="" horiz-adv-x="384"
+d="M256 320c-35.3496 0 -64 28.6504 -64 64s28.6504 64 64 64s64 -28.6504 64 -64s-28.6504 -64 -64 -64zM225.37 150.25l-24.1504 28.7598l-34.7998 -64.8701l109.86 -109.859c25.4893 -25.4902 5.7998 -68.2803 -28.2803 -68.2803h-208c-22.0898 0 -40 17.9102 -40 40
+s17.9102 40 40 40h91.5596l-44.8096 34.8896c-42.8799 27.3799 -57.5898 80.1104 -34.1904 123.75l49.3701 92.0303c11.1201 20.6504 32.1807 34.4404 56.3701 36.9199c24.7803 2.58984 48.5605 -6.93945 64 -25.3301l38.9102 -46.3096l57.4404 47
+c17.1191 13.9697 42.3398 11.4902 56.3096 -5.62012c13.9697 -17.0898 11.4697 -42.2998 -5.62012 -56.2803l-88 -72.0195c-16.9697 -13.8701 -41.9102 -11.5 -55.9697 5.21973z" />
+ <glyph glyph-name="praying-hands" unicode="" horiz-adv-x="640"
+d="M272 256.09c17.5996 0 32 -14.3994 32 -32v-128c0 -51.8896 -34.8398 -98.0801 -84.75 -112.35l-179.19 -46.6201c-2.64941 -0.69043 -5.36914 -1.03027 -8.05957 -1.03027c-23.4805 0 -32 21.1797 -32 32v96v0.0117188c0 12.7285 9.80176 26.3203 21.8799 30.3389
+l90.1201 30.04v80.2295c0 18.9805 5.55957 37.3896 16.1201 53.2305l117.26 175.899c0.169922 0.270508 0.589844 0.25 0.790039 0.480469c9.58008 13.5098 27.8496 17.8799 42.2998 9.20996c15.1602 -9.10059 20.0605 -28.75 10.9707 -43.9102l-77.75 -129.59
+c-8.9707 -14.9199 -13.6904 -32 -13.6904 -49.3906v-76.5498c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16v80c0 17.6006 14.4004 32 32 32zM618.12 94.3604c13.0703 -4.36035 21.8799 -16.5801 21.8799 -30.3506v-96c0 -10.8193 -8.51953 -32 -32 -32
+c-2.67969 0 -5.40039 0.339844 -8.05957 1.03027l-179.19 46.6201c-49.9102 14.2598 -84.75 60.4502 -84.75 112.34v128c0 17.5996 14.4004 32 32 32s32 -14.4004 32 -32v-80c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16v76.5498
+c0 17.3906 -4.71973 34.4697 -13.6904 49.3906l-77.75 129.59c-9.08984 15.1602 -4.18945 34.8193 10.9707 43.9102c14.4502 8.66992 32.7197 4.2998 42.2998 -9.20996c0.200195 -0.240234 0.610352 -0.210938 0.790039 -0.480469l117.26 -175.89
+c10.5605 -15.8408 16.1201 -34.25 16.1201 -53.2305v-80.2295z" />
+ <glyph glyph-name="quran" unicode="" horiz-adv-x="448"
+d="M448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
+c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM301.08 302.18l-11.1904 -22.6494l-24.9893 -3.62988c-2.68066 -0.390625 -3.75 -3.66992 -1.81055 -5.56055l18.0898 -17.6299l-4.26953 -24.8896
+c-0.360352 -2.11035 1.30957 -3.82031 3.20996 -3.82031c0.5 0 1.01953 0.120117 1.51953 0.379883l22.3604 11.75l22.3604 -11.75c0.5 -0.259766 1.01953 -0.379883 1.51953 -0.379883c1.90039 0 3.57031 1.70996 3.20996 3.82031l-4.26953 24.8896l18.0898 17.6299
+c1.92969 1.89062 0.859375 5.16992 -1.81055 5.56055l-25 3.62988l-11.1797 22.6494c-0.599609 1.20996 -1.75977 1.82031 -2.91992 1.82031s-2.32031 -0.610352 -2.91992 -1.82031zM243.19 371.19c-63.5205 0 -115.19 -51.6709 -115.19 -115.19
+c0 -63.5098 51.6699 -115.19 115.18 -115.18c13.6006 0 27.1201 2.46973 40.1904 7.33984c2.67969 0.910156 4.62012 3.43945 4.62012 6.41992c0 3.63965 -2.87012 6.78027 -6.7998 6.78027c-0.650391 0 -3.10059 -0.209961 -4.13086 -0.209961
+c-52.3096 0 -94.8594 42.5596 -94.8594 94.8594c0 52.3105 42.5498 94.8604 94.8594 94.8604c1.04004 0 3.45996 -0.209961 4.13086 -0.209961c0.633789 -0.237305 1.69727 -0.429688 2.375 -0.429688c3.73926 0 6.77441 3.03516 6.77441 6.77441
+c0 3.7373 -3.03223 6.77246 -6.76953 6.77539c-13.1201 4.91992 -26.71 7.41016 -40.3799 7.41016zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
+ <glyph glyph-name="search-dollar" unicode=""
+d="M505.04 5.33984c9.2998 -9.39941 9.2998 -24.5898 -0.0996094 -33.9902l-28.3008 -28.2998c-9.2998 -9.39941 -24.5 -9.39941 -33.8994 0l-99.71 99.6904c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.71 -44 -128.011 -44
+c-114.909 0 -208.02 93.0898 -208.02 207.979c0 114.891 93.1201 207.98 208.02 207.98c114.9 0 208.011 -93.0898 208.011 -207.98c0 -48.2998 -16.4004 -92.6895 -44 -127.989h16.2998c6.40039 0 12.5 -2.5 17 -7zM208.02 96.04c79.6504 0 144 64.4502 144 143.979
+c0 79.6406 -64.46 143.98 -144 143.98c-79.6494 0 -144 -64.4502 -144 -143.98c0 -79.6396 64.4609 -143.979 144 -143.979zM235.13 248.58c18.6006 -5.58008 31.5898 -23.4199 31.5898 -43.3896c0 -24.5303 -19.0498 -44.4404 -42.6797 -45.0703v-16.1201
+c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8v16.29c-11.29 0.580078 -22.2705 4.51953 -31.3701 11.3496c-3.90039 2.93066 -4.09961 8.77051 -0.570312 12.1406l11.75 11.21c2.77051 2.63965 6.89062 2.75977 10.1309 0.729492
+c3.85938 -2.42969 8.25977 -3.71973 12.8193 -3.71973h28.1006c6.5 0 11.7998 5.91992 11.7998 13.1904c0 5.94922 -3.61035 11.1797 -8.77051 12.7295l-45.0098 13.5c-18.5898 5.58008 -31.5801 23.4199 -31.5801 43.3896c0 24.5205 19.0498 44.4404 42.6797 45.0703
+v16.1201c0 4.41992 3.58008 8 8 8h16c4.4209 0 8 -3.58008 8 -8v-16.29c11.29 -0.580078 22.2705 -4.51953 31.3701 -11.3496c3.90039 -2.93066 4.10059 -8.77051 0.570312 -12.1406l-11.75 -11.21c-2.76953 -2.63965 -6.88965 -2.75977 -10.1299 -0.729492
+c-3.86035 2.42969 -8.25977 3.71973 -12.8203 3.71973h-28.1094c-6.5 0 -11.8008 -5.91992 -11.8008 -13.1904c0 -5.94922 3.61035 -11.1797 8.77051 -12.7295z" />
+ <glyph glyph-name="search-location" unicode=""
+d="M505.04 5.33984c9.2998 -9.39941 9.2998 -24.5898 -0.0996094 -33.9902l-28.3008 -28.2998c-9.2998 -9.39941 -24.5 -9.39941 -33.8994 0l-99.71 99.6904c-4.5 4.5 -7 10.5996 -7 17v16.2998c-35.2998 -27.5996 -79.71 -44 -128.011 -44
+c-114.909 0 -208.02 93.0898 -208.02 207.979c0 114.891 93.1201 207.98 208.02 207.98c114.9 0 208.011 -93.0898 208.011 -207.98c0 -48.2998 -16.4004 -92.6895 -44 -127.989h16.2998c6.40039 0 12.5 -2.5 17 -7zM208.02 96.04c79.6504 0 144 64.4502 144 143.979
+c0 79.6406 -64.46 143.98 -144 143.98c-79.6494 0 -144 -64.4502 -144 -143.98c0 -79.6396 64.4609 -143.979 144 -143.979zM208.04 336c40.7803 0 73.8398 -33.0498 73.8398 -73.8301c0 -32.9697 -48.2598 -93.0498 -66.75 -114.86
+c-1.5293 -1.8291 -4.70508 -3.31445 -7.08984 -3.31445s-5.56055 1.48535 -7.08984 3.31445c-18.4902 21.8105 -66.75 81.9004 -66.75 114.86c0 40.7803 33.0596 73.8301 73.8398 73.8301zM208.04 240c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24
+s-24 -10.7402 -24 -24c0 -13.25 10.7402 -24 24 -24z" />
+ <glyph glyph-name="socks" unicode=""
+d="M214.66 136.99c-52.7402 -39.5605 -69.0498 -110.021 -39.2002 -165.4l-21.8604 -16.3896c-17.2695 -12.9502 -37.4893 -19.2002 -57.5195 -19.2002c-32.8105 0 -65.6904 16.75 -83.9404 48.3301c-24.6494 42.6396 -10.1895 97.5 29.21 127.06l86.6504 64.6104v176h160
+v-160zM288 416v-32h-160v32c0 17.6699 14.3301 32 32 32h128c2.84961 0 5.40039 -0.919922 8.01953 -1.62012c-4.94922 -9.08008 -8.01953 -19.3301 -8.01953 -30.3799zM480 448c17.6699 0 32 -14.3301 32 -32v-32h-192v32c0 17.6699 14.3301 32 32 32h128zM320 176v176h192
+v-208v-0.00195312c0 -35.3271 -22.9375 -81.2021 -51.2002 -102.398l-115.2 -86.3994c-17.2695 -12.9502 -37.4893 -19.2002 -57.5195 -19.2002c-32.8105 0 -65.1699 16.75 -83.4199 48.3301c-24.6504 42.6396 -10.1904 97.5 29.21 127.06z" />
+ <glyph glyph-name="square-root-alt" unicode="" horiz-adv-x="576"
+d="M571.31 196.69c6.25 -6.25 6.25 -16.3809 0 -22.6309l-46.0596 -46.0596l46.0596 -46.0596c6.25 -6.25 6.25 -16.3809 0 -22.6309l-22.6191 -22.6191c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-46.0596 46.0596l-46.0596 -46.0596c-6.25 -6.25 -16.3809 -6.25 -22.6309 0
+l-22.6191 22.6191c-6.25 6.25 -6.25 16.3809 0 22.6309l46.0596 46.0596l-46.0596 46.0596c-6.25 6.25 -6.25 16.3809 0 22.6309l22.6191 22.6191c6.25 6.25 16.3809 6.25 22.6309 0l46.0596 -46.0596l46.0596 46.0596c6.25 6.25 16.3809 6.25 22.6309 0zM552 448
+c13.25 0 24 -10.7402 24 -24v-48c0 -13.25 -10.75 -24 -24 -24h-194.97l-97.8105 -374.52c-9.83984 -32.4805 -37.0098 -41.4805 -54.2793 -41.4805c-18.6406 0 -35.9502 8.5 -48.4404 28.2695l-88.8799 163.73h-43.6201c-13.25 0 -24 10.75 -24 24v48
+c0 13.2598 10.75 24 24 24h81.4697c10.4385 -0.00292969 22.9961 -7.42578 28.0303 -16.5703l58.4102 -106.1l84.79 322.8c3.68945 14.0703 16.4102 23.8701 30.9502 23.8701h244.35z" />
+ <glyph glyph-name="star-and-crescent" unicode=""
+d="M340.47 -18.3604c8.74023 0 15.1299 -6.96973 15.1299 -15.0596c0 -6.62012 -4.31934 -12.2402 -10.2793 -14.2598c-29.04 -10.8301 -59.0898 -16.3203 -89.3203 -16.3203c-141.16 0 -256 114.84 -256 256s114.84 256 256 256c30.3896 0 60.5801 -5.54004 89.75 -16.4805
+c6.91992 -2.59961 10.9297 -9.83984 9.46973 -17.0898c-1.41992 -7.04004 -7.62012 -12.0693 -14.75 -12.0693c-1.47949 0 -6.85938 0.459961 -9.17969 0.459961c-116.25 0 -210.82 -94.5703 -210.82 -210.82s94.5703 -210.82 210.82 -210.82
+c2.29004 0 7.72949 0.459961 9.17969 0.459961zM503.46 234.14c8.16992 -1.17969 11.4297 -11.2197 5.52051 -16.9893l-55.2705 -53.8701l13.0498 -76.0703c1.11035 -6.42969 -4.00977 -11.6602 -9.80957 -11.6602c-1.53027 0 -3.11035 0.370117 -4.64062 1.16992
+l-68.3096 35.9102l-68.3301 -35.9102c-1.53027 -0.80957 -3.11035 -1.16992 -4.63965 -1.16992c-5.7998 0 -10.9199 5.21973 -9.81055 11.6602l13.0498 76.0703l-55.2695 53.8701c-5.91016 5.76953 -2.65039 15.8096 5.51953 16.9893l76.3809 11.1006l34.1592 69.21
+c1.83008 3.7002 5.38086 5.5498 8.93066 5.5498s7.09961 -1.84961 8.92969 -5.5498l34.1602 -69.21z" />
+ <glyph glyph-name="star-of-david" unicode="" horiz-adv-x="464"
+d="M405.68 192l53.2207 -89.3896c14.4092 -24.21 -3.41016 -54.6104 -32.0107 -54.6104h-106.93l-55.9502 -93.9805c-7.14941 -12.0098 -19.5801 -18.0195 -32.0098 -18.0195s-24.8604 6.00977 -32.0098 18.0195l-55.9502 93.9805h-106.93
+c-28.6006 0 -46.4199 30.4004 -32.0107 54.6104l53.2207 89.3896l-53.2207 89.3896c-14.4092 24.21 3.41016 54.6104 32.0107 54.6104h106.93l55.9502 93.9805c7.14941 12.0098 19.5801 18.0195 32.0098 18.0195s24.8604 -6.00977 32.0098 -18.0195l55.9502 -93.9805h106.92
+c28.6006 0 46.4199 -30.4004 32.0098 -54.6104zM392.9 280h-39.6006l19.7998 -33.2598zM340.51 192l-52.3896 88h-112.25l-52.3799 -88l52.3896 -88h112.24zM232 374.28l-22.7803 -38.2803h45.5703zM71.0996 280l19.8008 -33.2598l19.7998 33.2598h-39.6006zM71.0996 104
+h39.6006l-19.7998 33.2598zM232 9.71973l22.7803 38.2803h-45.5703zM353.29 104h39.6104l-19.8105 33.2598z" />
+ <glyph glyph-name="synagogue" unicode="" horiz-adv-x="640"
+d="M70 251.49c5.30957 6.00977 14.6904 6.00977 20 0l38 -43.0703v-272.42h-128v226.07v0.00683594c0 5.5625 2.98828 13.4629 6.66992 17.6328zM633.33 179.71c4.2998 -4.87012 6.66992 -11.1396 6.66992 -17.6396v-226.07h-128v272.42l38 43.0703
+c5.30957 6.01953 14.6904 6.01953 20 0zM339.99 440.99l128 -102.4c7.58984 -6.07031 12.0098 -15.2695 12.0098 -24.9902v-377.6h-96v96c0 38.8701 -34.6602 69.6504 -74.75 63.1201c-31.4697 -5.12012 -53.25 -34.6699 -53.25 -66.5498v-92.5703h-96v377.6
+c0 8.49023 5.38086 19.6865 12.0098 24.9902l128 102.4c11.6904 9.34961 28.29 9.34961 39.9805 0zM392.06 225.44l-19.1895 30.5596l19.2002 30.5703c1.97949 3.14941 -0.290039 7.23926 -4 7.23926h-38.9502l-25.1201 39.9805c-1.84961 2.9502 -6.15039 2.9502 -8 0
+l-25.1201 -40h-38.9395c-3.70996 0 -5.98047 -4.08984 -4 -7.24023l19.1992 -30.5596l-19.1992 -30.5605c-1.98047 -3.14941 0.279297 -7.23926 4 -7.23926h38.9395l25.1201 -39.9805c1.84961 -2.9502 6.15039 -2.9502 8 0l25.1201 39.9902h38.9395
+c3.70996 0 5.98047 4.08984 4 7.24023z" />
+ <glyph glyph-name="torah" unicode="" horiz-adv-x="640"
+d="M320.05 81.5195l-17.7402 29.6406h35.46zM419.26 247.52l-18.3994 -30.8193l-18.46 30.8193h36.8594zM48 448c26.5098 0 48 -14.3301 48 -32v-448c0 -17.6699 -21.4902 -32 -48 -32s-48 14.3301 -48 32v448c0 17.6699 21.4902 32 48 32zM220.74 136.5l18.3896 30.8203
+l18.46 -30.8203h-36.8496zM382.45 136.5l18.4102 30.7998l18.4492 -30.7998h-36.8594zM128 -16v416h384v-416h-384zM194.77 262.13c-1.53711 -2.65625 -2.78516 -7.30176 -2.78516 -10.3711c0 -3.20312 1.35059 -8.02246 3.01562 -10.7588l29.3604 -49l-29.21 -48.8398
+c-1.6709 -2.77344 -3.02637 -7.65234 -3.02637 -10.8906c0 -11.6523 9.45703 -21.1094 21.1104 -21.1094h0.015625h59.5l29.25 -48.8799c3.33105 -5.6416 11.3516 -10.2207 17.9023 -10.2207h0.0976562c6.64844 0.0136719 14.7842 4.67285 18.1602 10.4004l29.1299 48.7002
+h59.4697h0.0224609c6.8125 0 15.082 4.80273 18.458 10.7197c1.53418 2.65332 2.7793 7.29297 2.7793 10.3584c0 3.2041 -1.35254 8.02539 -3.01953 10.7617l-29.3701 49l29.2402 48.8496c1.66602 2.77246 3.01758 7.64648 3.01758 10.8809
+c0 11.6562 -9.46094 21.1182 -21.1182 21.1191h-59.5195l-29.25 48.8604c-3.3252 5.63574 -11.3359 10.21 -17.8799 10.21h-0.0703125h-0.0341797c-6.65137 0 -14.7988 -4.64551 -18.1855 -10.3701l-29.1299 -48.71h-59.4502h-0.0458984
+c-6.80469 0 -15.0635 -4.79785 -18.4346 -10.71zM592 448c26.5098 0 48 -14.3301 48 -32v-448c0 -17.6699 -21.4902 -32 -48 -32s-48 14.3301 -48 32v448c0 17.6699 21.4902 32 48 32zM320 302.47l17.6797 -29.6201h-35.46zM257.55 247.47l-18.3701 -30.7998
+l-18.4395 30.7998h36.8096zM287.13 136.47l-33.2295 55.5303l33.1699 55.5195h65.79l33.2295 -55.5195l-33.1699 -55.5303h-65.79z" />
+ <glyph glyph-name="torii-gate" unicode=""
+d="M376.45 416c39.4961 0.00195312 100.223 14.3389 135.55 32v-96c0 -17.6699 -14.3301 -32 -32 -32h-32v-64h48c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-48v-240c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v240
+h-256v-240c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v240h-48c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h48v64h-32c-17.6699 0 -32 14.3301 -32 32v96c35.3271 -17.6611 96.0537 -31.998 135.55 -32h240.9zM128 320v-64h96
+v64h-96zM384 256v64h-96v-64h96z" />
+ <glyph glyph-name="vihara" unicode="" horiz-adv-x="640"
+d="M632.88 47.29c5.41992 -3.61035 7.7002 -9.62012 6.99023 -15.29c-0.620117 -5.00977 -3.56055 -9.75 -8.71973 -12.3301l-55.1504 -19.6699v-48c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v48h-160v-48c0 -8.83984 -7.16016 -16 -16 -16h-32
+c-8.83984 0 -16 7.16016 -16 16v48h-160v-48c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v48l-55.1602 19.6699c-5.14941 2.58008 -8.09961 7.32031 -8.71973 12.3301c-0.700195 5.66016 1.58008 11.6699 7 15.29l88.8799 48.71v64
+l-55.1602 17.6904c-11.79 5.89941 -11.79 22.7197 0 28.6191l119.16 49.6904v64l-27.3096 16.3096c-7.7207 7.7207 -5.61035 20.7402 4.15918 25.6201l183.15 86.0703l183.15 -86.0801c9.76953 -4.87988 11.8799 -17.9004 4.15918 -25.6201l-27.3096 -16.2998v-64
+l119.16 -49.6904c11.79 -5.89941 11.79 -22.7197 0 -28.6191l-55.1602 -17.6904v-64zM224 320v-64h192v64h-192zM160 96h320v64h-320v-64z" />
+ <glyph glyph-name="volume-mute" unicode=""
+d="M215.03 376.95c15.0098 15.0098 40.9697 4.49023 40.9697 -16.9697v-335.961c0 -21.4395 -25.9404 -32 -40.9697 -16.9697l-88.9707 88.9502h-102.06c-13.2598 0 -24 10.75 -24 24v144c0 13.2598 10.7402 24 24 24h102.06zM461.64 192l45.6406 -45.6396
+c6.2998 -6.30078 6.2998 -16.5205 0 -22.8203l-22.8203 -22.8203c-6.2998 -6.2998 -16.5195 -6.2998 -22.8203 0l-45.6396 45.6406l-45.6299 -45.6299c-6.2998 -6.30078 -16.5205 -6.30078 -22.8203 0l-22.8193 22.8193c-6.30078 6.2998 -6.30078 16.5205 0 22.8203
+l45.6299 45.6299l-45.6406 45.6396c-6.2998 6.30078 -6.2998 16.5205 0 22.8203l22.8203 22.8203c6.2998 6.2998 16.5195 6.2998 22.8203 0l45.6396 -45.6406l45.6396 45.6406c6.30078 6.2998 16.5205 6.2998 22.8203 0l22.8203 -22.8203
+c6.2998 -6.2998 6.2998 -16.5195 0 -22.8203z" />
+ <glyph glyph-name="yin-yang" unicode="" horiz-adv-x="496"
+d="M248 440c136.97 0 248 -111.03 248 -248s-111.03 -248 -248 -248s-248 111.03 -248 248s111.03 248 248 248zM248 64c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM248 192c53.0195 0 96 42.9805 96 96s-42.9805 96 -96 96
+c-106.04 0 -192 -85.96 -192 -192s85.96 -192 192 -192c-53.0195 0 -96 42.9805 -96 96s42.9805 96 96 96zM248 320c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32s-32 14.3301 -32 32s14.3301 32 32 32z" />
+ <glyph glyph-name="blender-phone" unicode="" horiz-adv-x="576"
+d="M392 384c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h157.82l-17.46 -64h-140.36c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h131.64l-17.46 -64h-114.18c-4.41992 0 -8 -3.58008 -8 -8v-16c0 -4.41992 3.58008 -8 8 -8h105.46
+l-17.46 -64h-288v352h384l-17.46 -64h-166.54zM158.8 112.99c3.00977 -7.40039 0.200195 -15.8506 -6.68945 -20.0703l-39.4102 -24.1797c-12.5303 -7.68066 -31.7803 -6 -41.6504 4.7998c-94.0996 102.94 -94.6699 258.89 -2.09961 362.49
+c11.1396 12.4697 29.5596 15.8398 43.8896 7.0498l39.2803 -24.0996c6.87988 -4.2207 9.7002 -12.6807 6.67969 -20.0703l-25.7803 -63.2598c-2.7793 -6.80078 -9.80957 -10.9902 -17.2393 -10.2607l-45.0303 4.41992c-17.6504 -47.9395 -17.2803 -100.779 0 -147.72
+l45.0303 4.41992c7.43945 0.730469 14.46 -3.4502 17.2393 -10.2598zM480 64c35.3496 0 64 -28.6504 64 -64v-32c0 -17.6699 -14.3301 -32 -32 -32h-352c-17.6699 0 -32 14.3301 -32 32v32c0 35.3496 28.6504 64 64 64h288zM336 -32c17.6699 0 32 14.3301 32 32
+s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="book-dead" unicode="" horiz-adv-x="448"
+d="M272 312c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16zM448 89.5996c0 -9.59961 -3.2002 -16 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16
+c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM240 392c-44.2002 0 -80 -28.7002 -80 -64c0 -20.9004 12.7002 -39.2002 32 -50.9004v-13.0996
+c0 -8.7998 7.2002 -16 16 -16h64c8.7998 0 16 7.2002 16 16v13.0996c19.2998 11.7002 32 30 32 50.9004c0 35.2998 -35.7998 64 -80 64zM124.8 224.7c-1.7002 -4.10059 0.100586 -8.7998 4.2002 -10.5l70.5 -30.2998l-70.4004 -30.1006
+c-4.09961 -1.7002 -5.89941 -6.39941 -4.19922 -10.5l6.2998 -14.7002c1.7002 -4.09961 6.39941 -5.89941 10.5 -4.19922l98.2998 42.1992l98.2998 -42.0996c4.10059 -1.7002 8.7998 0.0996094 10.5 4.2002l6.2998 14.7002c1.7002 4.09961 -0.0996094 8.7998 -4.19922 10.5
+l-70.3008 30.0996l70.3008 30.2002c4.09961 1.7002 5.89941 6.39941 4.19922 10.5l-6.2998 14.7002c-1.7002 4.09961 -6.39941 5.89941 -10.5 4.19922l-98.3994 -42.0996l-98.3008 42.0996c-4.09961 1.7002 -8.7998 -0.0996094 -10.5 -4.19922zM380.8 0v64h-284.8
+c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8zM208 312c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16s16 -7.2002 16 -16s-7.2002 -16 -16 -16z" />
+ <glyph glyph-name="campground" unicode="" horiz-adv-x="640"
+d="M624 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-608c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h24.6797l239.79 330.25l-53.4102 73.5498c-5.19922 7.15039 -3.60938 17.1602 3.54004 22.3506l25.8809 18.7998
+c7.14941 5.18945 17.1592 3.59961 22.3496 -3.5498l41.1699 -56.7002l41.1602 56.6895c5.2002 7.16016 15.2002 8.74023 22.3496 3.55078l25.9004 -18.79c7.14941 -5.19043 8.72949 -15.2002 3.54004 -22.3506l-53.4102 -73.5498l239.78 -330.25h24.6797zM320 160
+l-116.36 -160h232.721z" />
+ <glyph glyph-name="cat" unicode=""
+d="M290.59 256c11.8906 -58.3496 63.6006 -102.4 125.41 -102.4c11.1104 0 21.71 1.87012 32 4.54004v-206.14c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v144l-128 -96h32c17.6699 0 32 -14.3301 32 -32v-16c0 -8.83984 -7.16016 -16 -16 -16
+h-176c-35.2998 0 -64 28.7002 -64 64v256c0 17.6396 -14.3604 32 -32 32c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32c52.9404 0 96 -43.0596 96 -96v-85.9502c55.7695 83.9697 142.41 85.9502 162.59 85.9502zM448 352l64 64v-134.4c0 -53.0195 -42.9805 -96 -96 -96
+s-96 42.9805 -96 96v134.4l64 -64h64zM376 272c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM456 272c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" />
+ <glyph glyph-name="chair" unicode="" horiz-adv-x="448"
+d="M112 320v-128h-48v128c0 70.7002 57.2998 128 128 128h64c70.7002 0 128 -57.2998 128 -128v-128h-48v128c0 29.5 -16.2002 55 -40 68.9004v-196.9h-48v208h-48v-208h-48v196.9c-23.7998 -13.9004 -40 -39.4004 -40 -68.9004zM446.3 106.1
+c6.90039 -20.6992 -8.5 -42.0996 -30.2998 -42.0996v-112c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v112h-256v-112c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v112c-21.7998 0 -37.2002 21.4004 -30.4004 42.0996l10.7002 32
+c4.40039 13.1006 16.6006 21.9004 30.4004 21.9004h362.5c13.7998 0 26 -8.7998 30.3994 -21.9004z" />
+ <glyph glyph-name="cloud-moon" unicode="" horiz-adv-x="576"
+d="M342.8 95.2998c40.9004 -3.5 73.2002 -37.3994 73.2002 -79.2998c0 -44.2002 -35.7998 -80 -80 -80h-240c-53 0 -96 43 -96 96c0 41.9004 27.0996 77.2002 64.5996 90.2998c-0.0996094 1.90039 -0.599609 3.7002 -0.599609 5.7002c0 53 43 96 96 96
+c36.2002 0 67.4004 -20.2998 83.7002 -49.9004c11.5 11 27.0996 17.9004 44.2998 17.9004c35.2998 0 64 -28.7002 64 -64c0 -12 -3.5 -23.0996 -9.2002 -32.7002zM565.3 149.6c8.2002 1.60059 14 -8 8.7002 -14.5c-33.4004 -41.0996 -82.7002 -67 -137.1 -70.3994
+c-11.1006 23.0996 -29.9004 41.7998 -53.5 52.5996c0.399414 3.5 0.599609 7.10059 0.599609 10.7002c0 52.9004 -43.0996 96 -96 96c-12.7002 0 -25 -2.5 -36.4004 -7.2002c-5.09961 5.2998 -10.7998 9.90039 -16.6992 14.2002c-1.10059 8.2002 -1.80078 16.5 -1.80078 25
+c0 106.1 86 192 191.9 192c11.7002 0 23.4004 -1.09961 35.0996 -3.2002c8.2002 -1.59961 10.1006 -12.5996 2.80078 -16.7002c-47.1006 -26.7998 -76.1006 -76.5996 -76.1006 -130.8c0 -94 85.4004 -165.399 178.5 -147.7z" />
+ <glyph glyph-name="cloud-sun" unicode="" horiz-adv-x="640"
+d="M575.2 122.3c37.5996 -13 64.7998 -48.2998 64.7998 -90.3994c0 -53 -43 -96 -96 -96h-272c-53 0 -96 43 -96 96c0 50.5996 39.2998 91.5996 88.9004 95.2998c-0.200195 2.89941 -0.900391 5.7002 -0.900391 8.7002c0 61.8994 50.2002 112 112 112
+c45.4004 0 84.2998 -27.2002 101.9 -66c9.89941 6.19922 21.5 10 34.0996 10c35.2998 0 64 -28.7002 64 -64c0 -1.90039 -0.599609 -3.7002 -0.799805 -5.60059zM144.8 144.9c10.6006 -10.6006 22.9004 -18.6006 36 -24c-9.59961 -9.80078 -17.5 -21.1006 -23.5996 -33.5
+l-76.1006 -25.3008c-11.8994 -3.89941 -23.1992 7.30078 -19.1992 19.2002l29.2998 87.7998l-82.7998 41.4004c-11.2002 5.59961 -11.2002 21.5 0 27.0996l82.7998 41.5l-29.2998 87.8008c-3.90039 11.7998 7.39941 23.0996 19.1992 19.1992l87.9004 -29.2998
+l41.4004 82.7998c5.59961 11.2002 21.5996 11.2002 27.0996 0l41.5 -82.7998l87.7998 29.2998c11.9004 3.90039 23.2002 -7.2998 19.2002 -19.1992l-29.7998 -88.9004c-10.6006 -1.5 -20.9004 -3.7998 -30.7002 -7.5c-5.40039 11.7998 -12.5996 23 -22.2998 32.7002
+c-43.7002 43.7002 -114.7 43.7002 -158.4 0c-43.7002 -43.6006 -43.7002 -114.601 0 -158.3zM140 224.1c0 46.3008 37.7002 83.9004 84 83.9004c34 0 63.2998 -20.4004 76.5 -49.5c-36.4004 -22.5 -62 -60.7002 -67.4004 -105
+c-8.89941 -2.90039 -17.1992 -7 -25.1992 -11.7002c-38.6006 7.5 -67.9004 41.5 -67.9004 82.2998z" />
+ <glyph glyph-name="dice-d20" unicode="" horiz-adv-x="480"
+d="M106.75 232.94l108.64 -190.101l-208.26 22.0703c-5.83008 0.639648 -9.00977 7.13965 -5.92969 12.1396zM7.41016 132.57c-2.12012 -3.44043 -7.41016 -1.94043 -7.41016 2.08984v162.81c0 3.11035 3.38965 5.03027 6.05957 3.43066l76.6406 -45.9805zM18.25 24.4004
+c-4.03027 1.97949 -2.25 8.06934 2.2002 7.56934l203.55 -22.2998v-65.6699c0 -5.83008 -6.0498 -9.70996 -11.3496 -7.25977zM99.4697 282.18l-81.5293 48.6904c-2.52051 1.51953 -2.60059 5.16016 -0.130859 6.78027l150.811 98.6094
+c7.18945 4.11035 15.1201 -4.08008 10.7803 -11.1396zM240 272h-109.21l95.5801 168.38c3.12988 5.08008 8.37988 7.62012 13.6299 7.62012s10.5 -2.54004 13.6299 -7.62012l95.5801 -168.38h-109.21zM473.94 300.9c2.66992 1.59961 6.05957 -0.320312 6.05957 -3.43066
+v-162.81c0 -4.04004 -5.2998 -5.54004 -7.41016 -2.10059l-75.29 122.351zM380.53 282.18l-79.9307 142.94c-4.33984 7.05957 3.59082 15.25 10.7803 11.1396l150.811 -98.5996c2.46973 -1.62012 2.39941 -5.25977 -0.130859 -6.78027zM459.55 31.9697
+c4.4502 0.5 6.23047 -5.58984 2.2002 -7.55957l-194.4 -87.6602c-5.2998 -2.4502 -11.3496 1.41992 -11.3496 7.25977v65.6699zM373.25 232.94l105.56 -155.891c3.08008 -5 -0.0996094 -11.4902 -5.92969 -12.1396l-208.26 -22.0703zM240 240h100.43l-100.43 -175.75
+l-100.43 175.75h100.43z" />
+ <glyph glyph-name="dice-d6" unicode="" horiz-adv-x="448"
+d="M422.19 338.05c5.3291 -3.24023 5.2998 -11.2695 -0.0507812 -14.46l-198.14 -118.14l-198.13 118.14c-5.35059 3.19043 -5.37988 11.2305 -0.0605469 14.46l165.971 100.88c19.9102 12.1006 44.5195 12.1006 64.4297 0zM436.03 293.42
+c5.33008 3.17969 11.9697 -0.839844 11.9697 -7.25v-197.7c0 -23.7598 -12.1104 -45.7393 -31.79 -57.7002l-152.16 -92.4795c-10.6602 -6.48047 -24.0498 1.5498 -24.0498 14.4297v223.82zM0 286.17c0 6.41016 6.63965 10.4297 11.9697 7.25l196.03 -116.88v-223.81
+c0 -12.8906 -13.3799 -20.9102 -24.0498 -14.4307l-152.16 92.4697c-19.6797 11.9609 -31.79 33.9307 -31.79 57.7002v197.7z" />
+ <glyph glyph-name="dog" unicode=""
+d="M496 352c8.83984 0 16 -7.16016 16 -16v-32c0 -35.3496 -28.6504 -64 -64 -64h-32v-35.5801l-128 45.71v149.84c0 14.25 17.2305 21.3906 27.3203 11.3105l27.2793 -27.2803h53.6201c10.917 -0.000976562 23.7383 -7.92578 28.6201 -17.6904l7.16016 -14.3096h64z
+M384 304c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM96 224h170.05l149.95 -53.5498v-218.45c0 -8.83984 -7.16016 -16 -16 -16h-64c-8.83984 0 -16 7.16016 -16 16v112h-160v-112c0 -8.83984 -7.16016 -16 -16 -16h-64
+c-8.83984 0 -16 7.16016 -16 16v213.9c-37.1699 13.25 -64 48.4395 -64 90.0996c0 17.6699 14.3301 32 32 32s32 -14.3301 32 -32c0 -17.6396 14.3604 -32 32 -32z" />
+ <glyph glyph-name="dragon" unicode="" horiz-adv-x="640"
+d="M18.3203 192.22c-15.96 -2.2793 -24.8906 17.8105 -12.5107 28.1406l117.4 116.34c21.7705 18.5996 53.2402 20.4697 77.0596 4.58984l119.73 -87.5996v-42.2705c0 -28.9102 5.29004 -56.9795 14.7305 -83.3799h-222.7c-14.25 0 -21.3906 17.2295 -11.3105 27.3096
+l91.2803 68.6904zM575.19 158.12c41.9092 -20.96 67.1592 -64.0801 64.6396 -111.36c-3.37988 -63.2002 -59.7002 -110.77 -122.99 -110.76h-499.08c-9.80957 0 -17.7598 8 -17.7598 17.7998c0 8.32031 5.78027 15.5303 13.9004 17.3301
+c89.54 19.9004 238.51 54.1006 434.1 60.9102c-59.9697 39.9902 -96 107.3 -96 179.38v108.62l-59.5801 24.8496c-5.90039 2.9502 -5.90039 11.3604 0 14.3105l59.5801 24.8398l-61.6396 50.3496c-5.04004 5.04004 -1.4707 13.6104 5.65918 13.6104h237.45
+c10.0703 0 19.5498 -4.7002 25.6006 -12.7598l74.5293 -99.3799c3.53223 -4.71094 6.39844 -13.3115 6.39844 -19.1992c0 -4.16992 -1.51367 -10.5811 -3.37793 -14.3115l-14.3105 -28.6191c-4.88086 -9.76465 -17.7031 -17.6895 -28.6191 -17.6904h-30.9707
+c-8.48926 0 -16.6299 3.37012 -22.6299 9.37012l-28.0898 22.6299h-64v-36.6904c0.00195312 -16.3701 11.8877 -35.5986 26.5303 -42.9199zM489.18 381.75c-4.33008 -17.1396 8.56055 -28.96 21.5205 -29.6699c11.6602 -0.629883 21.3799 7.34961 24.1299 18.2598z" />
+ <glyph glyph-name="drumstick-bite" unicode=""
+d="M462.8 398.43c34.3203 -34.2793 50.4307 -79.5996 49.1299 -124.56c-41.9795 22.6602 -94.3594 17.5596 -128.739 -16.7998c-40.8809 -40.8398 -40.6904 -107.181 -1.05078 -151.07c-16.2383 -5.52246 -43.3389 -10.0049 -60.4912 -10.0049
+c-0.385742 0 -1.0127 0.00195312 -1.39844 0.00488281h-85.8896l-40.6104 -40.5596c-9.71973 -9.75 -11.0898 -24.0205 -6 -36.75c2.38477 -5.95898 4.32031 -16.0049 4.32031 -22.4229c0 -33.3135 -27.0371 -60.3496 -60.3506 -60.3496
+c-13.8428 0 -33.0039 7.96191 -42.7695 17.7725c-15.2803 15.2695 -19.6006 36.5 -15.1006 56.0996c-19.6094 -4.49023 -40.8496 -0.179688 -56.1191 15.0703c-9.77148 9.75684 -17.7021 28.8828 -17.7021 42.6914c0 33.3018 27.0273 60.3301 60.3301 60.3301
+c6.40234 0 16.4248 -1.92773 22.3721 -4.30176c12.7793 -5.07031 27.0791 -3.69043 36.7793 6l40.6201 40.5898v85.8301c0 64 27.6904 107 63.1699 142.43c27.3887 27.3604 81.0371 49.5664 119.75 49.5664c38.7139 0 92.3613 -22.2061 119.75 -49.5664z" />
+ <glyph glyph-name="dungeon" unicode=""
+d="M128.73 252.68c6.58984 -4.12012 8.89941 -12.2393 6.33984 -19.5801c-3 -8.60938 -5.15039 -17.6094 -6.24023 -26.9395c-0.929688 -7.91016 -7.0498 -14.1602 -15.0098 -14.1602h-97.1299c-9.10059 0 -16.7402 7.62988 -16.1504 16.7197
+c1.66016 25.7793 11.7178 65.7725 22.4502 89.2705c3.93945 8.62012 14.8896 11.4697 22.9297 6.4502zM319.03 440c9.16992 -2.36035 13.9102 -12.5996 10.3896 -21.3896l-37.4697 -104.03c-2.28027 -6.34961 -8.2998 -10.5801 -15.0498 -10.5801h-41.8008
+c-6.2041 0.00195312 -12.9473 4.74219 -15.0498 10.5801l-37.4697 104.03c-3.52051 8.79004 1.21973 19.04 10.3896 21.3896c20.1699 5.17969 41.2607 8 63.0303 8s42.8604 -2.82031 63.0303 -8zM112 160c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16
+h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM112 32c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM189.31 315.67
+c2.85059 -7.12012 -0.0195312 -14.8799 -6.2998 -19.29c-6 -4.2002 -11.6094 -8.89941 -16.79 -14.0498c-5.4502 -5.41016 -13.5996 -6.86035 -20.1094 -2.79004l-82.9307 51.8301c-8.06934 5.04004 -10.2793 16.2002 -4.21973 23.5195
+c16.7148 20.1758 48.7969 47.0068 71.6104 59.8906c8.29004 4.67969 18.8896 0.519531 22.4199 -8.31055zM398.18 192c-7.95996 0 -14.0801 6.25 -15.0098 14.1602c-1.08984 9.32031 -3.22949 18.3301 -6.24023 26.9395c-2.55957 7.34082 -0.25 15.46 6.33984 19.5801
+l82.8105 51.7607c8.04004 5.01953 18.9902 2.16992 22.9297 -6.4502c10.7334 -23.498 20.791 -63.4902 22.4502 -89.2705c0.589844 -9.08984 -7.0498 -16.7197 -16.1504 -16.7197h-97.1299zM453.03 354.89c6.06934 -7.31934 3.84961 -18.4795 -4.2207 -23.5098
+l-82.9297 -51.8301c-6.50977 -4.06934 -14.6699 -2.62012 -20.1104 2.79004c-5.17969 5.15039 -10.7891 9.85059 -16.7891 14.0498c-6.28027 4.40039 -9.15039 12.1602 -6.30078 19.2803l36.3203 90.7998c3.54004 8.83008 14.1396 12.9902 22.4199 8.31055
+c22.8135 -12.8838 54.8945 -39.7148 71.6104 -59.8906zM496 160c8.83984 0 16 -7.16016 16 -16v-64c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM496 32c8.83984 0 16 -7.16016 16 -16v-64
+c0 -8.83984 -7.16016 -16 -16 -16h-96c-8.83984 0 -16 7.16016 -16 16v64c0 8.83984 7.16016 16 16 16h96zM240 270.38c5.23047 0.889648 10.5195 1.62012 16 1.62012s10.7695 -0.730469 16 -1.62012v-294.38c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8
+v294.38zM176 228.87c8.16016 12.2998 19.2197 22.3203 32 29.7695v-282.64c0 -4.41992 -3.58008 -8 -8 -8h-16c-4.41992 0 -8 3.58008 -8 8v252.87zM304 258.64c12.7803 -7.44922 23.8398 -17.4697 32 -29.7695v-252.87c0 -4.41992 -3.58008 -8 -8 -8h-16
+c-4.41992 0 -8 3.58008 -8 8v282.64z" />
+ <glyph glyph-name="file-csv" unicode="" horiz-adv-x="384"
+d="M224 312c0 -13.2002 10.7998 -24 24 -24h136v-328c0 -13.2998 -10.7002 -24 -24 -24h-336c-13.2998 0 -24 10.7002 -24 24v464c0 13.2998 10.7002 24 24 24h200v-136zM128 168v16c0 4.41992 -3.58008 8 -8 8h-8c-26.5098 0 -48 -21.4902 -48 -48v-32
+c0 -26.5098 21.4902 -48 48 -48h8c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-8c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h8c4.41992 0 8 3.58008 8 8zM172.27 64c23.3906 0 42.4004 17.3301 42.3906 38.6201
+c0 10.6602 -4.86035 20.9199 -13.3301 28.1396l-21.8896 18.7705c-1.37012 1.17969 -2.12012 2.54004 -2.12012 3.83984c0 3.12012 4.45996 6.62012 10.4102 6.62012h12.2695c4.41992 0 8 3.58008 8 8v16c0 4.41992 -3.58008 8 -8 8h-12.25
+c-23.3896 0 -42.4102 -17.3203 -42.4102 -38.6201c0 -10.6602 4.86035 -20.9199 13.3301 -28.1396l21.8896 -18.7705c1.37012 -1.17969 2.12012 -2.54004 2.12012 -3.83984c0 -3.12012 -4.45996 -6.62012 -10.4102 -6.62012h-12.2695c-4.41992 0 -8 -3.58008 -8 -8v-16
+c0 -4.41992 3.58008 -8 8 -8h12.2695zM256 184c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-20.7998c0 -35.4805 12.8799 -68.8906 36.2803 -94.0898c3.01953 -3.25 7.26953 -5.11035 11.7197 -5.11035s8.7002 1.86035 11.7197 5.11035
+c23.4004 25.1992 36.2803 58.6094 36.2803 94.0898v20.7998c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-20.7998c0 -20.2705 -5.7002 -40.1807 -16 -56.8799c-10.2998 16.71 -16 36.6094 -16 56.8799v20.7998zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004
+v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" />
+ <glyph glyph-name="fist-raised" unicode="" horiz-adv-x="384"
+d="M255.98 288h-48.0303c-5.62988 0 -10.9502 -1.15039 -15.9697 -2.92969v146.93c0 8.83984 7.15918 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-144zM383.98 192.01l0.0195312 -88.2197v-0.0107422c0 -21.9551 -12.5977 -52.373 -28.1201 -67.8994l-35.9102 -35.9199
+v-63.96h-255.979v64l-26.5 26.5098c-24.0098 24.0098 -37.4902 56.5605 -37.4902 90.5098v77.9307c5.03027 -1.7998 10.3604 -2.9502 16 -2.9502h32c12.3301 0 23.4805 4.80957 32 12.4902c8.50977 -7.66992 19.6602 -12.4805 32 -12.4805h32
+c7.91016 0 15.2803 2.11035 21.8701 5.52051c7.46973 -16.3301 21.5996 -28.9404 38.8701 -34.4502c-17.1104 -14.8203 -31.5801 -34.4805 -47.3105 -58.0801l-6.30957 -9.46973c-0.742188 -1.1123 -1.34375 -3.09961 -1.34375 -4.43652
+c0 -2.36328 1.59668 -5.34375 3.56348 -6.65332l13.3105 -8.88086c1.11133 -0.741211 3.09863 -1.34375 4.43555 -1.34375c2.36328 0 5.34473 1.59668 6.6543 3.56445l6.30957 9.46973c31.8906 47.8398 51.5303 70.2695 96.0498 72.5498
+c4.29004 0.219727 7.88086 3.70996 7.88086 8v16.2002c0 4.41992 -3.52051 8 -13.2002 8h-35.2607c-26.2695 0 -47.5693 21.3203 -47.5693 47.5898v0.560547c0 8.7793 7.12012 15.8496 15.8994 15.8496h112.141c35.3301 0 63.9795 -28.6504 63.9902 -63.9902zM351.97 282.1
+c-10.0596 3.59082 -20.7197 5.90039 -32 5.90039h-32v112c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-117.9zM16 224c-8.83984 0 -16 7.16016 -16 16v128c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-128
+c0 -8.83984 -7.16016 -16 -16 -16h-32zM111.99 224c-8.83984 0 -16 7.16016 -16 16v160c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-160c0 -8.83984 -7.16016 -16 -16 -16h-32z" />
+ <glyph glyph-name="ghost" unicode="" horiz-adv-x="384"
+d="M186.1 447.91c108.73 3.25977 197.9 -83.9102 197.9 -191.91v-271.97c0 -14.25 -17.2305 -21.3906 -27.3096 -11.3105l-24.9209 18.5303c-6.65918 4.95996 -16 3.99023 -21.5098 -2.20996l-42.9502 -48.3496c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-40.7197 45.8496
+c-6.36035 7.16992 -17.5498 7.16992 -23.9199 0l-40.7197 -45.8496c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-42.9502 48.3496c-5.50977 6.2002 -14.8506 7.16016 -21.5098 2.20996l-24.9209 -18.5303c-10.0791 -10.0801 -27.3096 -2.9502 -27.3096 11.3105v263.92
+c0 105.13 81.0098 196.81 186.1 199.96zM128 224c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32zM256 224c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" />
+ <glyph glyph-name="hammer" unicode="" horiz-adv-x="576"
+d="M571.31 254.06c6.25 -6.25 6.25 -16.3799 0.0205078 -22.6191l-90.5098 -90.5107c-6.25 -6.25 -16.3799 -6.25 -22.6299 0l-22.6309 22.6299c-6.25 6.25 -6.25 16.3809 0 22.6309l11.3105 11.3096l-28.9004 28.9004
+c-21.3096 -5.63086 -44.8994 -0.360352 -61.6094 16.3496l-49.1406 49.1396c-12.0098 12 -18.75 28.2803 -18.75 45.25v18.75l-90.5098 45.25c62.4902 62.4805 163.8 62.4805 226.28 0l45.25 -45.25c16.71 -16.71 21.9795 -40.2998 16.3496 -61.6094l28.9004 -28.9004
+l11.3096 11.3105c6.25 6.25 16.3799 6.25 22.6299 0zM284.59 269.26l49.1406 -49.1396c3.53906 -3.54004 7.47949 -6.5 11.4395 -9.41016l-238.13 -255.07c-23.8799 -25.5801 -64.2002 -26.2695 -88.9297 -1.5293c-24.7305 24.7393 -24.04 65.0498 1.5293 88.9297
+l255.101 238.17c3.00977 -4.16016 6.14941 -8.25 9.84961 -11.9502z" />
+ <glyph glyph-name="hanukiah" unicode="" horiz-adv-x="640"
+d="M232 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM168 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM392 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM456 288h16
+c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM544 280v-120h-32v120c0 4.41992 3.58008 8 8 8h16c4.41992 0 8 -3.58008 8 -8zM104 288h16c4.41992 0 8 -3.58008 8 -8v-120h-32v120c0 4.41992 3.58008 8 8 8zM624 288c8.83984 0 16 -7.16016 16 -16
+v-112c0 -53.0195 -42.9805 -96 -96 -96h-192v-64h176c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-416c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h176v64h-192c-53.0195 0 -96 42.9805 -96 96v112c0 8.83984 7.16016 16 16 16
+h32c8.83984 0 16 -7.16016 16 -16v-112c0 -17.6699 14.3301 -32 32 -32h192v192c0 8.83984 7.16016 16 16 16h32c8.83984 0 16 -7.16016 16 -16v-192h192c17.6699 0 32 14.3301 32 32v112c0 8.83984 7.16016 16 16 16h32zM608 320c-13.25 0 -24 11.9502 -24 26.6699
+s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM32 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM320 368
+c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM112 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699z
+M176 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM240 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301
+c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM400 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM464 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301
+s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM528 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699z" />
+ <glyph glyph-name="hat-wizard" unicode=""
+d="M496 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480zM192 64l16 -32h-144l110.96 249.66c9.4043 21.1611 33.3545 47.6611 53.46 59.1494l187.58 107.19l-56.2998 -168.92
+c-1.81543 -5.43945 -3.28809 -14.5078 -3.28809 -20.2412c0 -7.25098 2.31934 -18.5449 5.17773 -25.209l86.4102 -201.63h-208l16 32l64 32l-64 32l-32 64l-32 -64l-64 -32zM256 288l-32 -16l32 -16l16 -32l16 32l32 16l-32 16l-16 32z" />
+ <glyph glyph-name="hiking" unicode="" horiz-adv-x="384"
+d="M80.9502 -24.2305l34.5596 138.221l52.7803 -52.7803l-25.2402 -100.97c-3.64941 -14.5303 -16.6895 -24.2305 -31.0195 -24.2305c-2.58008 0 -5.19043 0.290039 -7.7998 0.950195c-17.1406 4.28027 -27.5605 21.6504 -23.2803 38.8096zM95.8398 171.89
+c-2.18945 -8.41992 -11.0801 -13.54 -19.8701 -11.4395l-63.5596 15.25c-8.78027 2.10938 -14.1104 10.6396 -11.9199 19.0596l25.2695 98.1299c10.9707 42.1006 55.4404 67.6904 99.3203 57.1699c8.78027 -2.10938 14.1104 -10.6396 11.9199 -19.0596zM368 288
+c8.83984 0 16 -7.16016 15.9902 -16v-320.01c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v240h-48c-8.48047 0 -16.6201 3.37988 -22.6201 9.37988l-22.4297 22.4297l-19.8906 -79.5693
+c-0.129883 -0.520508 -0.469727 -0.910156 -0.620117 -1.41016l46.8203 -46.8203c12.0898 -12.0898 18.75 -28.1602 18.75 -45.25v-82.75c0 -17.6699 -14.3301 -32 -32 -32s-32 14.3301 -32 32v82.75l-86.6201 86.6201c-5.17383 5.1748 -9.37402 15.3154 -9.37402 22.6338
+c0 2.17285 0.427734 5.64746 0.954102 7.75586l26.9199 107.721c6.56055 26.2197 30.0098 44.5195 57.0303 44.5195c15.7002 0 30.4697 -6.11035 41.5596 -17.2197l46.7803 -46.7803h34.75v16c0 8.83984 7.16016 16 16 16h16zM240 352c-26.5098 0 -48 21.4902 -48 48
+s21.4902 48 48 48s48 -21.4902 48 -48s-21.4902 -48 -48 -48z" />
+ <glyph glyph-name="hippo" unicode="" horiz-adv-x="640"
+d="M581.12 351.8c34.0898 -0.189453 58.8799 -33.6895 58.8799 -67.7803v-92.0195c0 -17.6699 -14.3301 -32 -32 -32v-32c0 -8.83984 -7.16016 -16 -16 -16h-32c-8.83984 0 -16 7.16016 -16 16v32h-128v-176c0 -8.83984 -7.16016 -16 -16 -16h-64
+c-8.83984 0 -16 7.16016 -16 16v70.79c-32.3496 -14.3604 -70.7197 -22.79 -112 -22.79s-79.6504 8.42969 -112 22.79v-70.79c0 -8.83984 -7.16016 -16 -16 -16h-64c-8.83984 0 -16 7.16016 -16 16v240c0 88.3604 85.96 160 192 160
+c49.2402 0 94.0098 -15.5801 128 -40.9805v48.9805c0 13.2598 10.75 24 24 24h16c13.25 0 24 -10.7402 24 -24v-13.8799c10.0498 3.58008 20.7197 5.87988 32 5.87988c39.8301 0 73.9805 -24.2695 88.5195 -58.8203c24.1006 9.04004 48.9307 26.7705 76.6006 26.6201z
+M448 272c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" />
+ <glyph glyph-name="horse" unicode="" horiz-adv-x="576"
+d="M575.92 371.4l0.0605469 -77.71v-0.0292969c0 -11.9609 -9.01465 -25.2715 -20.1201 -29.7109l-32.5508 -13.0205c-15.4395 -6.17969 -33.04 0.5 -40.4893 15.3701l-18.9004 37.7002l-16 7.11035v-102.471c0.00976562 -0.219727 0.0800781 -0.419922 0.0800781 -0.639648
+c0 -30.4697 -12.2598 -58.0303 -32 -78.2197v-177.78c0 -8.83984 -7.16016 -16 -16 -16h-64c-8.83984 0 -16 7.16016 -16 16v150.4l-133.97 22.3301l-23.8398 -63.5908l26.3096 -105.26c2.53027 -10.0996 -5.11035 -19.8799 -15.5195 -19.8799h-65.9609h-0.000976562
+c-6.89453 0 -13.8428 5.42969 -15.5088 12.1201l-24.8496 99.4102c-1.05664 4.2207 -1.91406 11.1777 -1.91406 15.5293c0 6.40332 1.8252 16.4648 4.07422 22.46l25.7197 68.6006c-18.7002 17.5195 -30.54 42.2402 -30.54 69.8799
+c0 2.62988 0.570312 5.09961 0.780273 7.67969c-9.91016 -7.29004 -16.7803 -18.46 -16.7803 -31.6797v-56c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v56c0 48.5303 39.4697 88 88 88v-1.11035c17.5996 20.1299 43.1602 33.1104 72 33.1104
+h159.92c0 70.6904 57.3105 128 128 128h119.98c5.05957 0 8.94922 -4.67969 7.92969 -9.63965c-2.67969 -13.1699 -11.1201 -23.8203 -22.1797 -30.6602c5.10938 -5.37988 9.90918 -10.4697 13.6895 -14.5c5.56055 -5.93066 8.57031 -13.6699 8.58008 -21.7998zM511.92 352
+c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" />
+ <glyph glyph-name="house-damage" unicode="" horiz-adv-x="576"
+d="M288 333.04l218.74 -192.94c1.54004 -1.37988 3.55957 -2.04004 5.25977 -3.19922v-184.9c0 -8.83984 -7.16016 -16 -16 -16h-176.19l-39.9199 55.25l104.11 64l-148.05 136.78l60.1602 -119.221l-104.11 -64l37.2305 -72.8096h-149.23c-8.83984 0 -16 7.16016 -16 16
+v184.94c1.78027 1.20996 3.84961 1.88965 5.46973 3.34961zM570.69 211.72c6.5791 -5.89941 7.11914 -16.0195 1.21973 -22.5898l-21.4004 -23.8203c-5.91016 -6.56934 -16.0293 -7.10938 -22.5996 -1.20996l-229.32 202.271c-6.0498 5.33008 -15.1201 5.33008 -21.1699 0
+l-229.32 -202.28c-6.58008 -5.91016 -16.6992 -5.35938 -22.5996 1.20996l-21.4004 23.8203c-5.90918 6.58008 -5.35938 16.6895 1.20996 22.5996l255.99 226.011c7.60059 6.85938 17.1406 10.2793 26.7002 10.2695s19.1201 -3.4502 26.75 -10.3096l101.25 -89.3809v51.6904
+c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -16v-136.45z" />
+ <glyph glyph-name="hryvnia" unicode="" horiz-adv-x="384"
+d="M368 208h-99.7002l-34.6699 -32h134.37c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-203.7l-29.4902 -27.2197c-4.3291 -4 -6.80957 -9.66992 -6.80957 -15.5801c0 -11.6807 9.50977 -21.2002 21.2002 -21.2002h83.6299h0.00195312
+c4.79395 0 11.6748 2.49121 15.3584 5.55957l11.75 9.80078c10.1895 8.48926 25.3193 7.12012 33.8096 -3.07031l20.4902 -24.5898c8.49023 -10.1807 7.10938 -25.3105 -3.07031 -33.7998l-11.7695 -9.81055c-18.6807 -15.5596 -42.2207 -24.0898 -66.54 -24.0898h-78.8203
+c-37.1396 0 -73.3799 17.8496 -92.0498 49.9502c-17.8701 30.7197 -17.54 65.4199 -4.12988 94.0498h-41.8604c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h99.7002l34.6699 32h-134.37c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16
+h203.7l29.4902 27.21c4.3291 4 6.80957 9.66992 6.80957 15.5801c0 11.6797 -9.50977 21.2002 -21.2002 21.2002h-83.6201c-5.62012 0 -11.0693 -1.9707 -15.3896 -5.57031l-11.7305 -9.78027c-10.1895 -8.48926 -25.3193 -7.12012 -33.8096 3.07031l-20.4902 24.5898
+c-8.49023 10.1807 -7.10938 25.3105 3.07031 33.7998l11.7695 9.81055c18.6807 15.5596 42.2207 24.0898 66.54 24.0898h78.8203c37.1396 0 73.3799 -17.8398 92.0498 -49.9502c17.8701 -30.7197 17.54 -65.4199 4.12988 -94.0498h41.8604c8.83984 0 16 -7.16016 16 -16v-32
+c0 -8.83984 -7.16016 -16 -16 -16z" />
+ <glyph glyph-name="mask" unicode="" horiz-adv-x="640"
+d="M320.67 384c449.09 0 348.32 -384 158.46 -384c-39.8994 0 -77.4697 20.6904 -101.41 55.8604l-25.7295 37.79c-15.6602 22.9893 -46.9707 22.9893 -62.6299 0l-25.7305 -37.79c-23.9502 -35.1699 -61.5195 -55.8604 -101.42 -55.8604c-199.11 0 -284.14 384 158.46 384z
+M184 139.64c41.0596 0 67.7598 25.6504 80.0801 41.0508c5.22949 6.54004 5.22949 16.0996 0 22.6299c-12.3203 15.3896 -39.0098 41.0498 -80.0801 41.0498s-67.7598 -25.6504 -80.0801 -41.0498c-5.22949 -6.54004 -5.22949 -16.1006 0 -22.6299
+c12.3203 -15.3906 39.0205 -41.0508 80.0801 -41.0508zM456 139.64c41.0596 0 67.7598 25.6504 80.0801 41.0508c5.22949 6.54004 5.22949 16.0996 0 22.6299c-12.3203 15.3896 -39.0098 41.0498 -80.0801 41.0498s-67.7598 -25.6504 -80.0801 -41.0498
+c-5.22949 -6.54004 -5.22949 -16.1006 0 -22.6299c12.3203 -15.3906 39.0205 -41.0508 80.0801 -41.0508z" />
+ <glyph glyph-name="mountain" unicode="" horiz-adv-x="640"
+d="M634.92 -14.7002c2.80566 -4.3623 5.08301 -12.1133 5.08301 -17.3008c0 -4.50586 -1.75293 -11.374 -3.91309 -15.3291c-5.60938 -10.2803 -16.3799 -16.6699 -28.0898 -16.6699h-576h-0.00390625c-10.4795 0 -23.0615 7.46387 -28.0859 16.6602
+c-2.16016 3.95605 -3.91309 10.8262 -3.91309 15.334c0 5.18848 2.27734 12.9414 5.08301 17.3057l288 448c5.88965 9.16016 16.0303 14.7002 26.9199 14.7002s21.0303 -5.54004 26.9199 -14.7002zM320 356.82l-102.06 -158.761l38.0596 -38.0596l64 64h85.3896z" />
+ <glyph glyph-name="network-wired" unicode="" horiz-adv-x="640"
+d="M640 184c0 -8.83984 -7.16016 -16 -16 -16h-104v-40h56c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-160c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h56v40h-304v-40h56c17.6699 0 32 -14.3301 32 -32v-128
+c0 -17.6699 -14.3301 -32 -32 -32h-160c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h56v40h-104c-8.83984 0 -16 7.16016 -16 16v16c0 8.83984 7.16016 16 16 16h280v40h-72c-17.6699 0 -32 14.3301 -32 32v128c0 17.6699 14.3301 32 32 32h192
+c17.6699 0 32 -14.3301 32 -32v-128c0 -17.6699 -14.3301 -32 -32 -32h-72v-40h280c8.83984 0 16 -7.16016 16 -16v-16zM256 320h128v64h-128v-64zM192 0v64h-96v-64h96zM544 0v64h-96v-64h96z" />
+ <glyph glyph-name="otter" unicode="" horiz-adv-x="640"
+d="M608 416c17.6699 0 32 -14.3301 32 -32v-32c0 -53.0195 -42.9805 -96 -96 -96h-22.8604l-92.4697 -49.79l55.1104 -110.21h28.2197c17.6699 0 32 -14.3301 32 -32v-16c0 -8.83984 -7.16016 -16 -16 -16h-80l-74.5098 144.5l-149.49 -80.5h64
+c17.6699 0 32 -14.3301 32 -32v-16c0 -8.83984 -7.16016 -16 -16 -16h-224c-8.83008 0 -16 -7.16992 -16 -16s7.16992 -16 16 -16h112c17.6699 0 32 -14.3301 32 -32s-14.3301 -32 -32 -32h-108.47c-39.3799 0 -75.5205 26.9004 -82.2803 65.7002
+c-4.91016 28.1201 5 54.2197 23.1904 71.7998c23.5596 22.75 39.5596 52.1396 39.5596 84.8896v1.61035c0 106.04 85.96 192 192 192h56l153.25 87.5703c9.66992 5.51953 20.6104 8.42969 31.75 8.42969h20.4902h0.0126953c14.6328 0 34.9033 -8.40039 45.2471 -18.75
+l13.25 -13.25h32zM512 400c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16s16 7.16016 16 16s-7.16016 16 -16 16zM544 304c20.8301 0 38.4297 13.4199 45.0498 32h-77.0498l-118.57 -59.29l13.7705 -27.5498l101.84 54.8398h34.96z" />
+ <glyph glyph-name="ring" unicode=""
+d="M256 384c145.94 0 256 -61.9102 256 -144v-98.1299c0 -78.3506 -114.62 -141.87 -256 -141.87s-256 63.5195 -256 141.87v98.1299c0 82.0898 110.06 144 256 144zM256 320c-106.04 0 -192 -35.8203 -192 -80c0 -9.25977 3.96973 -18.1201 10.9102 -26.3896
+c44.9395 26.1797 108.859 42.3896 181.09 42.3896s136.15 -16.21 181.09 -42.3896c6.94043 8.26953 10.9102 17.1299 10.9102 26.3896c0 44.1797 -85.96 80 -192 80zM120.43 183.36c34.7305 -14.4307 82.6406 -23.3604 135.57 -23.3604s100.84 8.92969 135.57 23.3604
+c-34.6104 14.71 -81.21 24.6396 -135.57 24.6396s-100.96 -9.92969 -135.57 -24.6396z" />
+ <glyph glyph-name="running" unicode="" horiz-adv-x="416"
+d="M272 352c-26.5098 0 -48 21.4902 -48 48s21.4902 48 48 48s48 -21.4902 48 -48s-21.4902 -48 -48 -48zM113.69 130.53c7.92969 -17.2402 20.6699 -32.3799 37.9893 -42.6104l10.6699 -6.2998l-8.79004 -20.5205c-7.5293 -17.6494 -24.8594 -29.0898 -44.1094 -29.0898
+h-77.4502c-17.6699 0 -32 14.3301 -32 32s14.3301 32 32 32h66.8896zM384 224.01c17.6699 0 32 -14.3193 32 -31.9902c0 -17.6699 -14.3301 -32 -32 -32h-53.9902c-18.1895 0 -35.1094 10.5508 -43.1094 26.8906l-20.2705 41.4297l-31.3096 -78.2803l61.2393 -36.1396
+c18.75 -11.3096 27.5508 -33.6201 21.6406 -54.3896l-31.6406 -101.061c-4.29004 -13.6797 -16.9092 -22.4502 -30.5195 -22.4502c-3.16992 0 -6.38965 0.480469 -9.58008 1.48047c-16.8604 5.28027 -26.25 23.2305 -20.9697 40.0898l27.4697 87.7305l-84.9795 50.1699
+c-27.6104 16.2998 -38.9209 50.8301 -26.3008 80.3096l37.46 87.3906l-14.6992 4.36914c-7.83008 1.86035 -17.6006 -0.25 -25.2705 -6.13965l-39.6895 -30.4102c-14.0205 -10.7402 -34.0908 -8.10938 -44.8604 5.91992c-10.7705 14.0303 -8.11035 34.1104 5.91992 44.8604
+l39.6699 30.4102c23.0703 17.6895 52.54 23.9395 80.8398 17.1396l71.0801 -21.1396c26.3301 -6.70996 49.2803 -25.3906 61.7803 -50.9404l26.0596 -53.25h44.0303z" />
+ <glyph glyph-name="scroll" unicode="" horiz-adv-x="640"
+d="M48 448c26.4697 0 48 -21.5303 48 -48v-80h-80c-8.83984 0 -16 7.16016 -16 16v64c0 26.4697 21.5303 48 48 48zM256 35.4297c0 -31.8896 -21.7803 -61.4297 -53.25 -66.5498c-40.0996 -6.53027 -74.75 24.25 -74.75 63.1201v368c0 18.0801 -6.25977 34.5898 -16.4102 48
+h336.41c52.9404 0 96 -43.0596 96 -96v-256h-288v-60.5703zM288 64h336c8.83984 0 16 -7.16016 16 -16c0 -61.8604 -50.1396 -112 -112 -112h-336c52.9404 0 96 43.0703 96 96v32z" />
+ <glyph glyph-name="skull-crossbones" unicode="" horiz-adv-x="448"
+d="M439.15 -5.05957c7.89941 -3.9502 11.1094 -13.5605 7.15918 -21.4707l-14.3096 -28.6299c-3.95996 -7.89941 -13.5703 -11.0996 -21.4697 -7.14941l-186.53 90.7197l-186.52 -90.7197c-7.91016 -3.95996 -17.5205 -0.75 -21.4707 7.14941l-14.3096 28.6299
+c-3.95996 7.91016 -0.75 17.5205 7.14941 21.4707l141.98 69.0596l-141.99 69.0596c-7.89941 3.9502 -11.0996 13.5605 -7.14941 21.46l14.3096 28.6309c3.95996 7.90918 13.5703 11.1094 21.4697 7.15918l186.53 -90.7197l186.53 90.7197
+c7.91016 3.9502 17.5195 0.740234 21.4697 -7.15918l14.3096 -28.6309c3.95996 -7.89941 0.75 -17.5098 -7.14941 -21.46l-141.99 -69.0596zM150 210.72c-41.7803 22.4102 -70 62.75 -70 109.28c0 70.6904 64.4697 128 144 128s144 -57.3096 144 -128
+c0 -46.5303 -28.2197 -86.8701 -70 -109.28l5.5 -25.8701c2.66992 -12.6191 -5.41992 -24.8496 -16.4502 -24.8496h-126.08c-11.0293 0 -19.1201 12.2305 -16.4502 24.8496zM280 336c-17.6504 0 -32 -14.3496 -32 -32s14.3496 -32 32 -32s32 14.3496 32 32
+s-14.3496 32 -32 32zM168 336c-17.6504 0 -32 -14.3496 -32 -32s14.3496 -32 32 -32s32 14.3496 32 32s-14.3496 32 -32 32z" />
+ <glyph glyph-name="slash" unicode="" horiz-adv-x="640"
+d="M594.53 -60.6299l-588.351 454.729c-6.96973 5.41992 -8.22949 15.4707 -2.80957 22.4502l19.6396 25.2705c5.41992 6.97949 15.4805 8.23926 22.46 2.80957l588.351 -454.729c6.96973 -5.41992 8.22949 -15.4707 2.80957 -22.4502l-19.6396 -25.2705
+c-5.41992 -6.97949 -15.4805 -8.22949 -22.46 -2.80957z" />
+ <glyph glyph-name="spider" unicode="" horiz-adv-x="576"
+d="M151.17 280.65l-27.1504 54.2998c-1.86035 3.72949 -3.37109 10.1387 -3.37109 14.3066c0 2.86719 0.735352 7.40234 1.6416 10.123l25.8896 77.6797c2.79004 8.39062 11.8604 12.9209 20.2402 10.1201l15.1699 -5.05957
+c8.39062 -2.7998 12.9102 -11.8604 10.1201 -20.2402l-23.7998 -71.3896l20.29 -40.5801c-1.41016 -4.20996 -2.49023 -8.20996 -3.20996 -11.79l-5.2207 -26.1201h-4.66992zM573.31 98.6201c4.90039 -7.35059 2.9209 -17.2803 -4.43945 -22.1797l-13.3105 -8.88086
+c-7.34961 -4.89941 -17.29 -2.90918 -22.1895 4.44043l-48 72h-47.0605l60.8301 -97.3301c3.16992 -5.08008 4.86035 -10.96 4.86035 -16.96v-77.71c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v73.1104l-74.0801 118.529
+c1 -14.0498 2.08008 -28.1094 2.08008 -42.21c0 -53.0693 -40.7598 -101.43 -96 -101.43s-96 48.3604 -96 101.43c0 14.1006 1.07031 28.1602 2.08008 42.21l-74.0801 -118.529v-73.1104c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v77.7002
+v0.00976562c0 5.0625 2.17773 12.6562 4.86035 16.9502l60.8301 97.3301h-47.0605l-48 -72c-4.89941 -7.35059 -14.8398 -9.33984 -22.1895 -4.44043l-13.3105 8.87988c-7.36035 4.90039 -9.33984 14.8398 -4.43945 22.1904l52.7393 79.1299
+c5.24707 7.86426 17.1768 14.248 26.6299 14.25h77.9404l-68.9902 24.3496c-5.75 1.91895 -13.1465 7.56738 -16.5098 12.6104l-53.5996 80.4102c-4.90039 7.36035 -2.91016 17.29 4.43945 22.1895l13.3105 8.88086c7.35938 4.89941 17.29 2.90918 22.1895 -4.44043
+l50.5703 -75.8301l60.4902 -20.1699h36.0996l10.3701 51.8496c2.18945 10.9707 17.3701 60.1504 69.6299 60.1504s67.4404 -49.1797 69.6299 -60.1504l10.3701 -51.8496h36.0996l60.5 20.1699l50.5605 75.8301c4.89941 7.34961 14.8398 9.33984 22.1895 4.44043
+l13.3105 -8.88086c7.34961 -4.89941 9.33984 -14.8398 4.43945 -22.1895l-53.5996 -80.4102c-3.36328 -5.04297 -10.7598 -10.6914 -16.5098 -12.6104l-68.9902 -24.3594h77.9404c9.45117 -0.00195312 21.377 -6.38672 26.6191 -14.25zM406.09 350.49l-23.7998 71.3896
+c-2.79004 8.37988 1.74023 17.4404 10.1201 20.2402l15.1699 5.05957c8.37988 2.80078 17.4502 -1.73926 20.2402 -10.1201l25.8896 -77.6797c0.908203 -2.72168 1.64551 -7.25781 1.64551 -10.127c0 -4.16699 -1.5127 -10.5752 -3.375 -14.3027l-27.1504 -54.2998
+l-25.9297 -8.65039h-4.66992l-5.2207 26.1201c-0.719727 3.58008 -1.7998 7.58008 -3.20996 11.79z" />
+ <glyph glyph-name="toilet-paper" unicode="" horiz-adv-x="576"
+d="M128 448h284.44c-36.7705 -38.4805 -60.4404 -108.4 -60.4404 -192v-172.07c0 -53.6494 -11.8799 -87.5693 -24.71 -126.05c-4.36035 -13.0703 -16.5898 -21.8799 -30.3604 -21.8799h-280.92c-10.9199 0 -18.6299 10.7002 -15.1797 21.0596
+c21.3701 64.1006 31.1699 85.75 31.1699 126.87v172.07c0 106.04 42.9805 192 96 192zM96 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM160 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16
+s7.16016 -16 16 -16zM224 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM288 224c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16zM480 448c53.0195 0 96 -85.96 96 -192
+s-42.9805 -192 -96 -192s-96 85.96 -96 192s42.9805 192 96 192zM480 192c17.6699 0 32 28.6504 32 64s-14.3301 64 -32 64s-32 -28.6504 -32 -64s14.3301 -64 32 -64z" />
+ <glyph glyph-name="tractor" unicode="" horiz-adv-x="640"
+d="M528 112c48.5996 0 88 -39.4004 88 -88s-39.4004 -88 -88 -88s-88 39.4004 -88 88s39.4004 88 88 88zM528 0c13.2305 0 24 10.7695 24 24s-10.7695 24 -24 24s-24 -10.7695 -24 -24s10.7695 -24 24 -24zM608 288c17.6699 0 32 -14.3301 31.9902 -32v-50.7598
+c0 -8.49023 -3.37012 -16.6299 -9.37012 -22.6299l-50.8203 -50.8203c-15.7295 7.58984 -33.1602 12.2002 -51.7998 12.2002c-39.1396 0 -73.5498 -19.0098 -95.46 -48h-80.54v-6c0 -12.1504 -9.84961 -22 -22 -22h-7.16016
+c-2.9502 -9.90039 -6.91992 -19.46 -11.9102 -28.7207l5.06055 -5.05957c8.58984 -8.58984 8.58984 -22.5195 0 -31.1104l-31.1104 -31.1094c-8.58984 -8.58984 -22.5195 -8.58984 -31.1104 0l-5.05957 5.05957c-9.25977 -4.99023 -18.8203 -8.95996 -28.7197 -11.9102
+v-7.13965c0 -12.1504 -9.85059 -22 -22 -22h-44c-12.1504 0 -22 9.84961 -22 22v7.15039c-9.90039 2.94922 -19.46 6.91992 -28.7207 11.9092l-5.05957 -5.05957c-8.58984 -8.58984 -22.5195 -8.58984 -31.1104 0l-31.1094 31.1104
+c-8.58984 8.58984 -8.58984 22.5195 0 31.1094l5.05957 5.06055c-4.99023 9.26953 -8.9502 18.8193 -11.9102 28.7295h-7.13965c-12.1504 0 -22 9.85059 -22 22v44c0 12.1504 9.84961 22 22 22h7.15039c2.94922 9.90039 6.91992 19.46 11.9092 28.7207l-5.05957 5.05957
+c-8.58984 8.58984 -8.58984 22.5195 0 31.1104l31.1104 31.1094c7.92969 7.93066 20.2598 8.2002 28.8896 1.4707v146.52c0 26.4697 21.5303 48 48 48h133.45h0.046875c17.4834 0 37.2324 -13.0547 44.083 -29.1396l56.0898 -130.86h102.33v40.2002
+c0 29.9902 10.5801 58.8994 29.5 81.7197c6.37988 7.7002 18.04 8.23047 24.7002 0.780273l21.6299 -24.1699c4.87012 -5.43066 5.74023 -13.6904 1.32031 -19.4902c-8.4502 -11.0801 -13.1504 -24.7197 -13.1504 -38.8398v-40.2002h64zM176 32c44.1797 0 80 35.8203 80 80
+s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM198 288h110.04l-41.1504 96h-106.89v-96h38z" />
+ <glyph glyph-name="user-injured" unicode="" horiz-adv-x="448"
+d="M277.37 436.02l-90.6904 -68.0195h-81.1895c19.0098 46.8701 64.8193 80 118.51 80c19.1104 0 37.0801 -4.46973 53.3701 -11.9805zM342.51 368h-102.52l66.0293 49.5195c15.8203 -13.3193 28.5908 -30.0498 36.4902 -49.5195zM224 192c-70.6904 0 -128 57.3096 -128 128
+c0 5.48047 0.94043 10.7002 1.61035 16h252.779c0.660156 -5.2998 1.61035 -10.5195 1.61035 -16c0 -70.6904 -57.3096 -128 -128 -128zM80 148.3c7.92676 3.51758 21.2812 7.64844 29.8096 9.21973l98.4502 -221.52h-128.26v212.3zM0 -16v41.5996
+c0 41.1406 18.8799 77.5107 48 102.16v-191.76c-26.5098 0 -48 21.4902 -48 48zM256 32c26.4697 0 48 -21.5303 48 -48s-21.5303 -48 -48 -48h-12.71l-42.6699 96h55.3799zM313.6 160c74.2305 0 134.4 -60.1699 134.4 -134.4v-41.5996c0 -26.5098 -21.4902 -48 -48 -48
+h-80.4102c10.1504 13.4102 16.4102 29.9199 16.4102 48c0 44.1104 -35.8896 80 -80 80h-69.5898l-42.6699 96h7.37012c22.2393 -10.1797 46.8799 -16 72.8896 -16s50.6504 5.82031 72.8896 16h16.71z" />
+ <glyph glyph-name="vr-cardboard" unicode="" horiz-adv-x="640"
+d="M608 384c17.6699 0 32 -14.3301 32 -32v-320c0 -17.6699 -14.3301 -32 -32 -32h-160.22c-25.1807 0 -48.0303 14.7695 -58.3604 37.7402l-27.7402 61.6396c-7.88965 17.54 -24.0293 28.6201 -41.6797 28.6201s-33.79 -11.0801 -41.6797 -28.6201l-27.7402 -61.6396
+c-10.3301 -22.9707 -33.1699 -37.7402 -58.3604 -37.7402h-160.22c-17.6699 0 -32 14.3301 -32 32v320c0 17.6699 14.3301 32 32 32h576zM160 144c35.3496 0 64 28.6504 64 64s-28.6504 64 -64 64s-64 -28.6504 -64 -64s28.6504 -64 64 -64zM480 144
+c35.3496 0 64 28.6504 64 64s-28.6504 64 -64 64s-64 -28.6504 -64 -64s28.6504 -64 64 -64z" />
+ <glyph glyph-name="wind" unicode=""
+d="M156.7 192c48.7002 0 92.2998 -35 98.3994 -83.4004c7.5 -58.5 -38.0996 -108.6 -95.1992 -108.6c-46.6006 0 -85.6006 33.5 -94.2002 77.5996c-1.7998 9.60059 6.09961 18.4004 15.8994 18.4004h32.8008c6.59961 0 13.0996 -3.7998 15.1992 -10.0996
+c4.30078 -12.7002 16.3008 -21.9004 30.4004 -21.9004c19.5 0 34.9004 17.4004 31.5996 37.4004c-2.59961 15.6992 -17.5 26.5996 -33.3994 26.5996h-142.2c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h140.7zM16 224c-8.7998 0 -16 7.2002 -16 16v32
+c0 8.7998 7.2002 16 16 16h334.2c16 0 30.7998 10.9004 33.3994 26.5996c3.30078 20 -12.1992 37.4004 -31.5996 37.4004c-14.0996 0 -26.0996 -9.2002 -30.4004 -21.9004c-2.09961 -6.2998 -8.5 -10.0996 -15.1992 -10.0996h-32.8008
+c-9.69922 0 -17.6992 8.7002 -15.7998 18.2998c9.7998 50.6006 59.5 87.1006 114.9 75.5c36.2002 -7.59961 65.5 -36.8994 73.0996 -73.0996c13 -61.9004 -34.0996 -116.7 -93.7998 -116.7h-336zM400 192c70.5 0 126 -65.5 108.9 -138.7
+c-9.60059 -41.0996 -43.5 -74 -84.7002 -82.7002c-58.9004 -12.5 -111.601 21.7002 -129.4 72.3008c-3.7002 10.2998 4.40039 21.0996 15.2998 21.0996h33.8008c5.7998 0 11.5996 -2.59961 14.5 -7.59961c8.2998 -14.5 23.6992 -24.4004 41.5996 -24.4004
+c26.5 0 48 21.5 48 48s-21.5 48 -48 48h-116.5c-6.59961 25.2002 -20.5 47.4004 -39.7998 64h156.3z" />
+ <glyph glyph-name="wine-bottle" unicode=""
+d="M507.31 375.43c6.25 -6.25 6.25 -16.3799 0.0107422 -22.6201l-22.6299 -22.6299c-6.25 -6.25 -16.3809 -6.25 -22.6309 0l-76.6699 -76.6699c19.7002 -46.5801 10.7305 -102.41 -27.2295 -140.37l-158.391 -158.39c-24.9893 -24.9902 -65.5195 -24.9902 -90.5098 0
+l-90.5098 90.5098c-24.9902 24.9902 -24.9902 65.5205 0 90.5098l158.38 158.381c37.9697 37.96 93.79 46.9297 140.37 27.2295l76.6699 76.6699c-6.25 6.25 -6.25 16.3799 0 22.6299l22.6299 22.6299c6.25 6.25 16.3799 6.25 22.6299 0zM179.22 24.71l122.04 122.04
+l-90.5098 90.5098l-122.04 -122.04z" />
+ <glyph glyph-name="cloud-meatball" unicode=""
+d="M48 96c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48s21.5 48 48 48zM464 96c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48s21.5 48 48 48zM345 84.9004c13.5 -7 23 -20.7002 23 -36.9004s-9.5 -29.9004 -23 -36.9004
+c4.59961 -14.5 1.7002 -30.7998 -9.7998 -42.2998c-8.2002 -8.2002 -18.9004 -12.2998 -29.7002 -12.2998c-4.2998 0 -8.5 1.2002 -12.5996 2.5c-7 -13.5 -20.7002 -23 -36.9004 -23s-29.9004 9.5 -36.9004 23c-4.09961 -1.40039 -8.2998 -2.5 -12.5996 -2.5
+c-10.7998 0 -21.5 4.09961 -29.7002 12.2998c-11.5 11.5 -14.5 27.7998 -9.89941 42.2998c-13.5 7 -23 20.7002 -23 36.9004s9.5 29.9004 23 36.9004c-4.5 14.5 -1.60059 30.7998 9.89941 42.2998s27.7998 14.5 42.2998 9.89941c7 13.5 20.7002 23 36.9004 23
+s29.9004 -9.5 36.9004 -23c14.5 4.5 30.7998 1.60059 42.2998 -9.89941c11.3994 -11.5 14.3994 -27.7998 9.7998 -42.2998zM512 224c0 -53 -43 -96 -96 -96h-43.4004c-3.5 8 -8.39941 15.4004 -14.7998 21.7998c-13.5 13.5 -31.5 21.1006 -50.7998 21.2998
+c-13.5 13.2002 -31.7002 20.9004 -51 20.9004s-37.5 -7.7002 -51 -20.9004c-19.2998 -0.199219 -37.2998 -7.7998 -50.7998 -21.2998c-6.40039 -6.39941 -11.2002 -13.7998 -14.7998 -21.7998h-43.4004c-53 0 -96 43 -96 96c0 42.5 27.7998 78.2002 66.0996 90.7998
+c-1.2998 6.90039 -2.09961 13.9004 -2.09961 21.2002c0 61.9004 50.0996 112 112 112c43.2998 0 80.4004 -24.7998 99 -60.7998c14.7002 17.5 36.4004 28.7998 61 28.7998c44.2002 0 80 -35.7998 80 -80c0 -5.59961 -0.5 -11 -1.59961 -16.2002
+c0.5 0 1 0.200195 1.59961 0.200195c53 0 96 -43 96 -96z" />
+ <glyph glyph-name="cloud-moon-rain" unicode="" horiz-adv-x="576"
+d="M350.5 222.5c37.2998 -6.7998 65.5 -39.2998 65.5 -78.5c0 -44.2002 -35.7998 -80 -80 -80h-256c-44.2002 0 -80 35.7998 -80 80c0 38.7998 27.5996 71.0996 64.2002 78.4004c0 0.5 -0.200195 1.09961 -0.200195 1.59961c0 53 43 96 96 96
+c32.0996 0 60.2998 -15.9004 77.7002 -40c10.3994 5 22 8 34.2998 8c39.2002 0 71.5996 -28.2998 78.5 -65.5zM567.9 224.2c6.19922 1.2002 10.5996 -6 6.39941 -10.7998c-27 -33.1006 -67.8994 -53.3008 -112.6 -53.3008c-5.2002 0 -10.1006 1 -15.2002 1.5
+c-6.2002 39.4004 -33.0996 72.5 -70.2002 86.8008c-10.7002 27.8994 -32.2002 49.7998 -58.8994 61.6992c3.2998 76.7002 66.5 137.9 144.399 137.9c8.90039 0 17.7998 -0.799805 26.5 -2.40039c6.2002 -1.09961 7.60059 -9.39941 2.10059 -12.5
+c-35.6006 -20.0996 -57.5 -57.5 -57.5 -98.0996c0 -70.5 64.5996 -124.1 135 -110.8zM364.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961
+c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM268.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961
+c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM172.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64
+c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM76.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008
+l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6z" />
+ <glyph glyph-name="cloud-rain" unicode=""
+d="M416 320c53 0 96 -43 96 -96s-43 -96 -96 -96h-320c-53 0 -96 43 -96 96c0 42.5 27.7998 78.2002 66.0996 90.7998c-1.2998 6.90039 -2.09961 13.9004 -2.09961 21.2002c0 61.9004 50.0996 112 112 112c43.2998 0 80.4004 -24.7998 99 -60.7998
+c14.7002 17.5 36.4004 28.7998 61 28.7998c44.2002 0 80 -35.7998 80 -80c0 -5.59961 -0.5 -11 -1.59961 -16.2002c0.5 0 1 0.200195 1.59961 0.200195zM88 73.7998c2.5 8.5 13.7998 8.10059 16 0c12.7998 -44.5996 40 -56.2998 40 -87.7002
+c0 -27.6992 -21.5 -50.0996 -48 -50.0996s-48 22.4004 -48 50.0996c0 31.3008 27.2002 43.3008 40 87.7002zM248 73.7998c2.5 8.5 13.7998 8.10059 16 0c12.7998 -44.5996 40 -56.2998 40 -87.7002c0 -27.6992 -21.5 -50.0996 -48 -50.0996s-48 22.4004 -48 50.0996
+c0 31.3008 27.2002 43.3008 40 87.7002zM408 73.7998c2.5 8.5 13.7998 8.10059 16 0c12.7998 -44.5996 40 -56.2998 40 -87.7002c0 -27.6992 -21.5 -50.0996 -48 -50.0996s-48 22.4004 -48 50.0996c0 31.3008 27.2002 43.3008 40 87.7002z" />
+ <glyph glyph-name="cloud-showers-heavy" unicode=""
+d="M183.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112
+c4.40039 7.7998 14.2002 10.3994 21.8008 6zM279.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008
+l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM87.9004 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961
+c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM471.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961
+c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM375.9 77.9004c7.69922 -4.40039 10.3994 -14.2002 6 -21.8008l-64 -112
+c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.30078 -10.3994 14.1006 -6 21.8008l64 112c4.40039 7.7998 14.2002 10.3994 21.8008 6zM416 320c53 0 96 -43 96 -96s-43 -96 -96 -96h-320
+c-53 0 -96 43 -96 96c0 42.5 27.7998 78.2002 66.0996 90.7998c-1.2998 6.90039 -2.09961 13.9004 -2.09961 21.2002c0 61.9004 50.2002 112 112 112c43.2998 0 80.4004 -24.7998 99 -60.7998c14.7002 17.5 36.4004 28.7998 61 28.7998c44.2002 0 80 -35.7998 80 -80
+c0 -5.59961 -0.5 -11 -1.59961 -16.2002c0.5 0 1 0.200195 1.59961 0.200195z" />
+ <glyph glyph-name="cloud-sun-rain" unicode="" horiz-adv-x="576"
+d="M510.5 222.5c37.2998 -6.7998 65.5 -39.2998 65.5 -78.5c0 -44.2002 -35.7998 -80 -80 -80h-256c-44.2002 0 -80 35.7998 -80 80c0 38.7998 27.5996 71 64.2002 78.4004c0 0.5 -0.200195 1.09961 -0.200195 1.59961c0 53 43 96 96 96
+c32.0996 0 60.2998 -15.9004 77.7002 -40c10.3994 5 22 8 34.2998 8c39.2002 0 71.5996 -28.2998 78.5 -65.5zM124.1 188.1c3.10059 -3.09961 6.60059 -5.59961 10.2002 -8.2998c-3.89941 -11.3994 -6.2002 -23.3994 -6.2002 -35.8994c0 -2.5 0.5 -4.80078 0.700195 -7.2002
+l-59.2002 -19.7002c-10.1992 -3.2998 -19.8994 6.2998 -16.5 16.5l25.1006 75.2998l-71 35.5c-9.60059 4.7998 -9.60059 18.5 0 23.2998l71 35.5l-25.1006 75.3008c-3.39941 10.1992 6.2002 19.8994 16.4004 16.5l75.2998 -25.1006l35.5 71
+c4.7998 9.60059 18.5 9.60059 23.2998 0l35.5 -71l75.3008 25.1006c10.1992 3.39941 19.8994 -6.2002 16.5 -16.4004l-8.90039 -26.7002c-0.700195 0 -1.2998 0.200195 -2 0.200195c-25.5996 0 -49.2002 -7.7998 -69.2002 -20.7002
+c-37.5996 29.4004 -92.0996 27.2002 -126.7 -7.39941c-37.3994 -37.5 -37.3994 -98.4004 0 -135.801zM193.9 246.1c-18.2002 -8.2998 -33.5 -21.2998 -44.8008 -37.1992c-12.8994 11.6992 -21.0996 28.3994 -21.0996 47.0996c0 35.2998 28.7002 64 64 64
+c12.4004 0 24 -3.7002 33.7998 -9.90039c-16.0996 -17.5996 -27.5996 -39.5 -31.8994 -64zM524.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961
+c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM428.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961
+c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM332.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008l-36.5996 -64
+c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6zM236.5 29.9004c7.7002 -4.40039 10.2998 -14.1006 6 -21.8008
+l-36.5996 -64c-3 -5.19922 -8.40039 -8.09961 -13.9004 -8.09961c-2.7002 0 -5.40039 0.700195 -7.90039 2.09961c-7.69922 4.40039 -10.3994 14.1006 -6 21.8008l36.6006 64c4.39941 7.7998 14.2002 10.2998 21.7998 6z" />
+ <glyph glyph-name="democrat" unicode="" horiz-adv-x="640"
+d="M637.3 191.1c4.90039 -7.39941 2.90039 -17.2998 -4.39941 -22.2998l-26.6006 -17.7002c-7.39941 -4.89941 -17.2998 -3 -22.2002 4.40039c-21.7998 32.7002 -23.8994 38.0996 -40.0996 50.2998v-77.7998h-352l-54 108l-38.0996 -34.5996
+c-6 -6 -14.1006 -9.40039 -22.6006 -9.40039h-31c-12.0996 0 -23.2002 6.90039 -28.5996 17.7002l-14.2998 28.5996c-5.40039 10.7998 -4.30078 23.7998 3 33.5l74.5996 99.2998c1.7002 2.30078 4.2002 3.7002 6.40039 5.40039c-4 2.2002 -8 4.2002 -11.3008 7.5
+c-16.3994 16.4004 -18.3994 41.7998 -6.09961 60.4004c2.7998 4.19922 8.7998 4.7998 12.4004 1.19922l42.8994 -42.7998l41.7998 41.7998c4.40039 4.40039 11.8008 3.7002 15.2002 -1.5c15.1006 -22.7998 12.6006 -53.7998 -7.5 -73.8994l81.2002 -81.2002h235.6
+c50.8008 0 97.9004 -25.2002 126.101 -67.5zM296.2 204.7c3 2.89941 1.39941 7.89941 -2.60059 8.5l-22.7998 3.2998l-10.2002 20.7002c-1.89941 3.7002 -7.19922 3.7002 -9 0l-10.1992 -20.7002l-22.8008 -3.2998c-4.09961 -0.600586 -5.7998 -5.60059 -2.7998 -8.5
+l16.5 -16.1006l-3.89941 -22.6992c-0.700195 -4.10059 3.59961 -7.2002 7.19922 -5.30078l20.4004 10.7002l20.4004 -10.7002c3.59961 -1.89941 7.89941 1.2002 7.19922 5.30078l-3.89941 22.6992zM408.2 204.7c3 2.89941 1.39941 7.89941 -2.60059 8.5l-22.7998 3.2998
+l-10.2002 20.7002c-1.89941 3.7002 -7.19922 3.7002 -9 0l-10.1992 -20.7002l-22.8008 -3.2998c-4.09961 -0.600586 -5.7998 -5.60059 -2.7998 -8.5l16.5 -16.1006l-3.89941 -22.6992c-0.700195 -4.10059 3.59961 -7.2002 7.19922 -5.30078l20.4004 10.7002
+l20.4004 -10.7002c3.59961 -1.89941 7.89941 1.2002 7.19922 5.30078l-3.89941 22.6992zM520.2 204.7c3 2.89941 1.39941 7.89941 -2.60059 8.5l-22.7998 3.2998l-10.2002 20.7002c-1.89941 3.7002 -7.19922 3.7002 -9 0l-10.1992 -20.7002l-22.8008 -3.2998
+c-4.09961 -0.600586 -5.7998 -5.60059 -2.7998 -8.5l16.5 -16.1006l-3.89941 -22.6992c-0.700195 -4.10059 3.59961 -7.2002 7.19922 -5.30078l20.4004 10.7002l20.4004 -10.7002c3.59961 -1.89941 7.89941 1.2002 7.19922 5.30078l-3.89941 22.6992zM192 -48v144h352v-144
+c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16v80h-160v-80c0 -8.7998 -7.2002 -16 -16 -16h-64c-8.7998 0 -16 7.2002 -16 16z" />
+ <glyph glyph-name="flag-usa" unicode=""
+d="M32 448c17.7002 0 32 -14.2998 32 -32v-464c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v464c0 17.7002 14.2998 32 32 32zM299.9 144.4c31.0996 -8.2002 62.5996 -16.5 100 -16.6006c31.8994 0 68.5 6.7998 112.1 24.1006v-36
+c0 -12.3008 -7.09961 -23.8008 -18.5 -28.8008c-175.8 -76.3994 -211.8 69.1006 -397.5 -23.0996v69.2998c92.2002 39.9004 146.7 26.2002 203.9 11.1006zM299.9 240.4c31.0996 -8.2002 62.5996 -16.5 100 -16.5c31.8994 0 68.5 6.7998 112.1 24.0996v-61.5
+c-92.2002 -39.9004 -146.7 -26.2002 -203.9 -11.0996c-57.5 15.0996 -117.3 30 -212.1 -7.60059v61.5c92.2002 39.9004 146.7 26.2002 203.9 11.1006zM309.4 366.3c-7 2.10059 -14.1006 4.2002 -21.3008 6.2002v-33.2002c4 -1.09961 8.10059 -2.2998 12.1006 -3.5
+c26.7002 -8.09961 52.8994 -15.8994 85.7002 -15.8994c32.7998 0 72.5 7.89941 126.1 31.3994v-68.8994c-92.2002 -39.8008 -146.7 -26.1006 -203.9 -11.1006c-57.5 15.1006 -117.3 29.9004 -212.1 -7.59961v151.899c209.4 94.6006 195.3 -59.0996 366.6 28.2002
+c22.6006 11.5 49.4004 -1.5 49.4004 -26.5996v-30.7998c-105.2 -49.1006 -150.8 -35.7002 -202.6 -20.1006zM160 319.9c8.7998 0 16 7.09961 16 16c0 8.89941 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.90039 7.2002 -16 16 -16zM160 375.7c8.7998 0 16 7.2002 16 16
+c0 8.89941 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.90039 7.2002 -16 16 -16zM224 327.8c8.7998 0 16 7.2002 16 16c0 8.90039 -7.2002 16 -16 16s-16 -7.2002 -16 -16c0 -8.89941 7.2002 -16 16 -16zM224 383.7c8.7998 0 16 7.2002 16 16c0 8.89941 -7.2002 16 -16 16
+s-16 -7.2002 -16 -16c0 -8.90039 7.2002 -16 16 -16z" />
+ <glyph glyph-name="meteor" unicode=""
+d="M491.2 447.3c12.3994 3.7002 23.7998 -7.7002 20.2002 -20.0996c-11.6006 -38.7002 -34.3008 -111.7 -61.3008 -187.7c7 -2.09961 13.4004 -4 18.6006 -5.59961c9.7002 -3 14.2002 -13.9004 9.5 -22.9004c-22.1006 -42.2998 -82.7002 -152.8 -142.5 -214.4
+c-1 -1.09961 -2 -2.5 -3 -3.5c-38.1006 -38.0996 -88 -57.0996 -137.9 -57.0996c-49.8994 -0.0996094 -99.7998 19 -137.8 57c-38 38.0996 -57 88 -57 137.8c0 49.9004 19 99.7998 57.0996 137.8c1 1 2.40039 2 3.5 3c61.6006 59.9004 172 120.4 214.4 142.5
+c9 4.7002 19.9004 0.200195 22.9004 -9.5c1.59961 -5.09961 3.5 -11.5996 5.59961 -18.5996c75.9004 27 149 49.7002 187.7 61.2998zM192 0c70.7002 0 128 57.2998 128 128s-57.2998 128 -128 128s-128 -57.2998 -128 -128s57.2998 -128 128 -128zM160 192
+c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32s-32 14.2998 -32 32s14.2998 32 32 32zM208 96c8.7998 0 16 -7.2002 16 -16s-7.2002 -16 -16 -16s-16 7.2002 -16 16s7.2002 16 16 16z" />
+ <glyph glyph-name="person-booth" unicode="" horiz-adv-x="576"
+d="M192 -48v176h64v-176c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16zM224 224c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32h-57.5c-12.7998 0 -24.7998 5 -33.9004 14.0996l-20.8994 20.9004v-80.5996l41.2002 -61.3008
+c4.39941 -8.7998 6.69922 -18.6992 6.69922 -28.5996v-56.5c0 -17.7002 -14.2998 -32 -32 -32c-17.6992 0 -32 14.2998 -32 32v56l-29.0996 43c-0.900391 0.400391 -1.59961 1.2002 -2.5 1.7002l-0.0996094 -100.7c0 -17.7002 -14.4004 -32 -32 -32
+c-17.6006 0 -31.9004 14.2998 -31.9004 32l0.200195 160l-0.200195 95.9004c0 17.0996 6.7002 33.1992 18.7002 45.2998c12.0996 12.0996 28.2002 18.7998 45.2998 18.7998h18.7002c17 0 33.0996 -6.59961 45.2002 -18.7002l45.1992 -45.2998h50.9004zM64 320
+c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM288 416v32h192v-416c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 -17.7002 -14.2998 -32 -32 -32c-17.0996 0 -30.7998 13.5 -31.7002 30.4004
+c-4.2998 -21.3008 -17.0996 -30.4004 -32.2998 -30.4004c-18.4004 0 -35.7002 16.7002 -31.4004 38.2998l30.9004 154.601zM192 416c0 17.7002 14.2998 32 32 32h32v-192h-64v160zM544 448c17.7002 0 32 -14.2998 32 -32v-464c0 -8.7998 -7.2002 -16 -16 -16h-32
+c-8.7998 0 -16 7.2002 -16 16v496h32z" />
+ <glyph glyph-name="poo-storm" unicode="" horiz-adv-x="448"
+d="M308 112c9.2002 0 15 -10 10.4004 -18l-88 -152c-2.2002 -3.7998 -6.2002 -6 -10.4004 -6c-7.7002 0 -13.5 7.2002 -11.7002 14.7998l23 97.2002h-59.2998c-7.2998 0 -12.9004 6.40039 -11.9004 13.5996l16 120c0.800781 5.90039 5.90039 10.4004 11.9004 10.4004h68
+c7.90039 0 13.5996 -7.5 11.5996 -15.0996l-17.2998 -64.9004h57.7002zM374.4 223.3c41 -3.2998 73.5996 -37.5 73.5 -79.2998c0 -44 -36 -80 -80 -80h-30l8.09961 14c7.7998 13.5 7.7998 30.4004 0 44s-22.4004 22 -38.0996 22h-16l6.59961 24.7002
+c3.59961 13.2998 0.799805 27.2002 -7.59961 38.0996c-8.40039 10.9004 -21.1006 17.2002 -34.9004 17.2002h-68c-22 0 -40.7002 -16.4004 -43.7002 -38.2002l-16 -120c0 -0.599609 0.100586 -1.2002 0 -1.7998h-48.2998c-44 0 -80 36 -80 80
+c0 41.7998 32.5996 76 73.5996 79.2998c-5.89941 9.60059 -9.59961 20.6006 -9.59961 32.7002c0 35.2998 28.7002 64 64 64h16c44.2002 0 80 35.7998 80 80c0 17.4004 -5.7002 33.4004 -15.0996 46.5c4.89941 0.799805 9.89941 1.5 15.0996 1.5c53 0 96 -43 96 -96
+c0 -11.2998 -2.2998 -21.9004 -5.90039 -32h5.90039c35.2998 0 64 -28.7002 64 -64c0 -12.0996 -3.7002 -23.0996 -9.59961 -32.7002z" />
+ <glyph glyph-name="rainbow" unicode="" horiz-adv-x="576"
+d="M268.3 415.3c167.7 11.2998 307.7 -122 307.7 -287.3v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v136.2c0 113.8 -81.5996 215.399 -194.5 229.899c-136.6 17.6006 -253.5 -88.8994 -253.5 -222.1v-144c0 -8.7998 -7.2002 -16 -16 -16h-32
+c-8.7998 0 -16 7.2002 -16 16v133.8c0 153.3 115.4 287.3 268.3 297.5zM262.7 318.4c117.1 15 217.3 -76.2002 217.3 -190.4v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v138.3c0 66.9004 -48.7002 126.601 -115.2 133.101
+c-76.2998 7.39941 -140.8 -52.6006 -140.8 -127.4v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v137.3c0 97.6006 70 184.7 166.7 197.101zM268.9 222.1c61.2998 11.9004 115.1 -34.8994 115.1 -94.0996v-144c0 -8.7998 -7.2002 -16 -16 -16h-32
+c-8.7998 0 -16 7.2002 -16 16v144c0 17.5996 -14.2998 32 -32 32s-32 -14.4004 -32 -32v-144c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v140.2c0 46.3994 31.2998 89 76.9004 97.8994z" />
+ <glyph glyph-name="republican" unicode="" horiz-adv-x="640"
+d="M544 256v-64h-544v64c0 88.4004 71.5996 160 160 160h224c88.4004 0 160 -71.5996 160 -160zM176.3 277.6c3.5 3.5 1.60059 9.5 -3.39941 10.2002l-27.4004 4l-12.2002 24.7998c-2.09961 4.40039 -8.5 4.5 -10.7002 0l-12.1992 -24.7998l-27.4004 -4
+c-4.90039 -0.700195 -6.90039 -6.7002 -3.2998 -10.2002l19.7998 -19.2998l-4.7002 -27.2998c-0.799805 -4.90039 4.40039 -8.59961 8.7002 -6.2998l24.5 12.8994l24.5 -12.8994c4.40039 -2.2998 9.5 1.39941 8.7002 6.2998l-4.7002 27.2998zM320.3 277.6
+c3.5 3.5 1.60059 9.5 -3.39941 10.2002l-27.4004 4l-12.2002 24.7998c-2.09961 4.40039 -8.5 4.5 -10.7002 0l-12.1992 -24.7998l-27.4004 -4c-4.90039 -0.700195 -6.90039 -6.7002 -3.2998 -10.2002l19.7998 -19.2998l-4.7002 -27.2998
+c-0.799805 -4.90039 4.40039 -8.59961 8.7002 -6.2998l24.5 12.8994l24.5 -12.8994c4.40039 -2.2998 9.5 1.39941 8.7002 6.2998l-4.7002 27.2998zM464.3 277.6c3.5 3.5 1.60059 9.5 -3.39941 10.2002l-27.4004 4l-12.2002 24.7998c-2.09961 4.40039 -8.5 4.5 -10.7002 0
+l-12.1992 -24.7998l-27.4004 -4c-4.90039 -0.700195 -6.90039 -6.7002 -3.2998 -10.2002l19.7998 -19.2998l-4.7002 -27.2998c-0.799805 -4.90039 4.40039 -8.59961 8.7002 -6.2998l24.5 12.8994l24.5 -12.8994c4.40039 -2.2998 9.5 1.39941 8.7002 6.2998l-4.7002 27.2998z
+M624 128c8.7998 0 16 -7.2002 16 -16v-64c0 -46.9004 -40.5996 -84.5 -88.4004 -79.5996c-41.5996 4.19922 -71.5996 42.5 -71.5996 84.2998v43.2998h-32v-112c0 -8.7998 -7.2002 -16 -16 -16h-96c-8.7998 0 -16 7.2002 -16 16v80h-192v-80c0 -8.7998 -7.2002 -16 -16 -16
+h-96c-8.7998 0 -16 7.2002 -16 16v176h544v-112c0 -8.7998 7.2002 -16 16 -16s16 7.2002 16 16v64c0 8.7998 7.2002 16 16 16h32z" />
+ <glyph glyph-name="smog" unicode="" horiz-adv-x="640"
+d="M624 80c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16h-544c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h544zM144 -16c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16h-128c-8.7998 0 -16 7.2002 -16 16v16
+c0 8.7998 7.2002 16 16 16h128zM560 -16c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16h-336c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h336zM144 160c-79.5 0 -144 64.5 -144 144s64.5 144 144 144c41 0 77.7998 -17.2998 104 -44.7998
+c26.2002 27.5 63 44.7998 104 44.7998c54.7998 0 102 -31 126.3 -76.0996c15 7.5 31.7002 12.0996 49.7002 12.0996c61.9004 0 112 -50.0996 112 -112s-50.0996 -112 -112 -112h-60.0996c-22.6006 -19.7002 -51.6006 -32 -83.9004 -32s-61.4004 12.2998 -83.9004 32h-156.1z
+" />
+ <glyph glyph-name="temperature-high" unicode=""
+d="M416 448c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96s-96 43.0996 -96 96s43.0996 96 96 96zM416 320c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 336v-166.5c19.7002 -24.5996 32 -55.5 32 -89.5
+c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144c0 34 12.2998 64.7998 32 89.5v166.5c0 61.9004 50.0996 112 112 112s112 -50.0996 112 -112zM144 0c44.0996 0 80 35.9004 80 80c0 25.5 -12.2002 49 -32 63.7998v192.2c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-192.2
+c-19.7998 -14.8994 -32 -38.2998 -32 -63.7998c0 -44.0996 35.9004 -80 80 -80zM160 125.1c18.5996 -6.59961 32 -24.1992 32 -45.0996c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 20.9004 13.4004 38.5 32 45.0996v210.9c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16
+v-210.9z" />
+ <glyph glyph-name="temperature-low" unicode=""
+d="M416 448c52.9004 0 96 -43.0996 96 -96s-43.0996 -96 -96 -96s-96 43.0996 -96 96s43.0996 96 96 96zM416 320c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM256 336v-166.5c19.7002 -24.5996 32 -55.5 32 -89.5
+c0 -79.5 -64.5 -144 -144 -144s-144 64.5 -144 144c0 34 12.2998 64.7998 32 89.5v166.5c0 61.9004 50.0996 112 112 112s112 -50.0996 112 -112zM144 0c44.0996 0 80 35.9004 80 80c0 25.5 -12.2002 49 -32 63.7998v192.2c0 26.5 -21.5 48 -48 48s-48 -21.5 -48 -48v-192.2
+c-19.7998 -14.8994 -32 -38.2998 -32 -63.7998c0 -44.0996 35.9004 -80 80 -80zM160 125.1c18.5996 -6.59961 32 -24.1992 32 -45.0996c0 -26.5 -21.5 -48 -48 -48s-48 21.5 -48 48c0 20.9004 13.4004 38.5 32 45.0996v18.9004c0 8.7998 7.2002 16 16 16s16 -7.2002 16 -16
+v-18.9004z" />
+ <glyph glyph-name="vote-yea" unicode="" horiz-adv-x="640"
+d="M608 128c17.7002 0 32 -14.2998 32 -32v-96c0 -17.7002 -14.2998 -32 -32 -32h-576c-17.7002 0 -32 14.2998 -32 32v96c0 17.7002 14.2998 32 32 32h64v-64h-22.4004c-5.2998 0 -9.59961 -3.59961 -9.59961 -8v-16c0 -4.40039 4.2998 -8 9.59961 -8h492.801
+c5.2998 0 9.59961 3.59961 9.59961 8v16c0 4.40039 -4.2998 8 -9.59961 8h-22.4004v64h64zM512 64h-384v319.7c0 17.7998 14.5 32.2998 32.4004 32.2998h319.3c17.7998 0 32.2998 -14.4004 32.2998 -32.2998v-319.7zM211.2 246c-4.2002 -4.2002 -4.2998 -11 0 -15.2002
+l74.0996 -74.7002c4.2002 -4.2998 11 -4.2998 15.2002 -0.0996094l128.3 127.2c4.2998 4.2002 4.2998 11 0.100586 15.2002l-25.3008 25.5c-4.19922 4.2998 -11 4.2998 -15.1992 0.0996094l-95.2002 -94.4004l-41.2998 41.6006
+c-4.2002 4.2998 -11 4.2998 -15.2002 0.0996094z" />
+ <glyph glyph-name="water" unicode="" horiz-adv-x="576"
+d="M562.1 64.0996c8.10059 -0.899414 13.9004 -8.2998 13.8008 -16.2998v-31.5996c0 -9.10059 -7.60059 -16.7998 -16.7002 -16c-28.2002 2.5 -55.7998 11.5996 -79.1006 25.7998c-55 -34.0996 -135.5 -34.5996 -192 0c-55 -34.0996 -135.5 -34.5996 -192 0
+c-23.2998 -14.5 -50.5996 -23.4004 -79.3994 -25.9004c-9.10059 -0.799805 -16.7002 6.90039 -16.7002 16v32.2002c0 7.90039 5.7002 14.9004 13.5996 15.7002c21.7002 2.2998 42.2002 10.2002 57.7002 22.4004c13.7998 10.8994 33.6006 13.1992 47.1006 2
+c38.2998 -31.7002 107.199 -31.8008 145.199 -1.7002c13.7002 10.8994 33.2002 13 46.7002 1.7998c38.5 -31.9004 107.8 -31.9004 145.7 -1.5c14 11.2998 34.0996 11.0996 48.2002 0c15.7998 -12.4004 36.3994 -20.5 57.8994 -22.9004zM562.1 208.1
+c8.10059 -0.899414 13.9004 -8.2998 13.8008 -16.2998v-31.5996c0 -9.10059 -7.60059 -16.7998 -16.7002 -16c-28.2002 2.5 -55.7998 11.5996 -79.1006 25.7998c-55 -34.0996 -135.5 -34.5996 -192 0c-55 -34.0996 -135.5 -34.5996 -192 0
+c-23.2998 -14.5 -50.5996 -23.4004 -79.3994 -25.9004c-9.10059 -0.799805 -16.7002 6.90039 -16.7002 16v32.2002c0 7.90039 5.7002 14.9004 13.5996 15.7002c21.7002 2.2998 42.2002 10.2002 57.7002 22.4004c13.7998 10.8994 33.6006 13.1992 47.1006 2
+c38.2998 -31.7002 107.199 -31.8008 145.199 -1.7002c13.7002 10.8994 33.2002 13 46.7002 1.7998c38.5 -31.9004 107.8 -31.9004 145.7 -1.5c14 11.2998 34.0996 11.0996 48.2002 0c15.7998 -12.4004 36.3994 -20.5 57.8994 -22.9004zM562.1 352.1
+c8.10059 -0.899414 13.9004 -8.2998 13.8008 -16.2998v-31.5996c0 -9.10059 -7.60059 -16.7998 -16.7002 -16c-28.2002 2.5 -55.7998 11.5996 -79.1006 25.7998c-55 -34.0996 -135.5 -34.5996 -192 0c-55 -34.0996 -135.5 -34.5996 -192 0
+c-23.2998 -14.5 -50.5996 -23.4004 -79.3994 -25.9004c-9.10059 -0.799805 -16.7002 6.90039 -16.7002 16v32.2002c0 7.90039 5.7002 14.9004 13.5996 15.7002c21.7002 2.2998 42.2002 10.2002 57.7002 22.4004c13.7998 10.8994 33.6006 13.1992 47.1006 2
+c38.2998 -31.7002 107.199 -31.8008 145.199 -1.7002c13.7002 10.8994 33.2002 13 46.7002 1.7998c38.5 -31.9004 107.8 -31.9004 145.7 -1.5c14 11.2998 34.0996 11.0996 48.2002 0c15.7998 -12.4004 36.3994 -20.4004 57.8994 -22.9004z" />
+ <glyph glyph-name="baby" unicode="" horiz-adv-x="384"
+d="M192 288c-44.2002 0 -80 35.7998 -80 80s35.7998 80 80 80s80 -35.7998 80 -80s-35.7998 -80 -80 -80zM138.6 39.2002l29.4004 -39.2002c13.2002 -17.7002 9.7002 -42.7998 -8 -56c-7.2002 -5.40039 -15.7002 -8 -24 -8c-12.0996 0 -24.0996 5.5 -32 16l-48 64
+c-10.9004 14.5996 -10.5996 34.7998 0.799805 49l45.9004 57.4004l61.5 -51.2002zM281.3 122.4l45.9004 -57.4004c11.3994 -14.2002 11.7002 -34.4004 0.799805 -49l-48 -64c-7.7998 -10.5 -19.7998 -16 -32 -16c-8.40039 0 -16.7998 2.59961 -24 8
+c-17.7002 13.2002 -21.2002 38.2998 -8 56l29.4004 39.2002l-25.6006 32zM376.7 303c12.7002 -18.0996 8.39941 -43 -9.7002 -55.7998l-40.5996 -28.5c-17 -11.9004 -35.4004 -20.9004 -54.4004 -27.9004v-30.7998h-160v30.9004c-19 7 -37.4004 16 -54.4004 27.8994
+l-40.5996 28.5c-18 12.7002 -22.4004 37.6006 -9.7002 55.7002c12.7002 18 37.6006 22.4004 55.7002 9.7002l40.5996 -28.4004c52.6006 -37 124.101 -37 176.801 0l40.5996 28.5c18.0996 12.6006 43 8.2998 55.7002 -9.7998z" />
+ <glyph glyph-name="baby-carriage" unicode=""
+d="M144.8 431l111.2 -175h-256c0 74 35.2998 140.1 90.7998 184.4c16.7998 13.3994 42.7002 8.39941 54 -9.40039zM496 352c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-48v-64c0 -50.5996 -23 -96.4004 -60.2998 -130.7
+c34.5996 -8.89941 60.2998 -40 60.2998 -77.2998c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 8.90039 1.7002 17.2002 4.40039 25.2002c-21.5 -5.90039 -44.6006 -9.2002 -68.4004 -9.2002s-46.7998 3.2998 -68.4004 9.2002
+c2.60059 -8 4.40039 -16.2998 4.40039 -25.2002c0 -44.2002 -35.7998 -80 -80 -80s-80 35.7998 -80 80c0 37.2998 25.7002 68.4004 60.2998 77.2998c-37.2998 34.2998 -60.2998 80.1006 -60.2998 130.7h384v64c0 35.2998 28.7002 64 64 64h48zM80 -16
+c17.5996 0 32 14.4004 32 32s-14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32zM400 16c0 17.5996 -14.4004 32 -32 32s-32 -14.4004 -32 -32s14.4004 -32 32 -32s32 14.4004 32 32z" />
+ <glyph glyph-name="biohazard" unicode="" horiz-adv-x="576"
+d="M287.9 336c-18.5 0 -36 -3.7998 -52.5 -9.5c-13.3008 10.2998 -23.6006 24.2998 -29.5 40.7002c25.1992 10.8994 53 16.8994 82.0996 16.8994c29.2002 0 57 -6.09961 82.2002 -17c-5.90039 -16.3994 -16.2002 -30.3994 -29.5 -40.6992
+c-16.6006 5.7998 -34.2002 9.59961 -52.7998 9.59961zM163.6 9.2998c-47.5 35.5 -79.1992 90.7002 -83.2998 153.5c7.2998 2.10059 14.9004 3.10059 22.5 3.10059c9.2002 0 17.9004 -1.80078 26.4004 -4.60059c4.09961 -44.2998 26 -83.2002 58.8994 -109.6
+c-4.09961 -16 -12.5 -30.6006 -24.5 -42.4004zM387.8 51.9004c32.7002 26.3994 54.6006 65.0996 58.7002 109.3c8.59961 2.7998 17.4004 4.7002 26.5996 4.7002c7.5 0 15 -1 22.2002 -3c-3.89941 -62.8008 -35.5996 -118 -83 -153.5c-12 11.7998 -20.3994 26.5 -24.5 42.5z
+M501.3 256.9c34.6006 -20.4004 61 -53.3008 74.1006 -92.4004c1.2998 -3.7002 -0.200195 -7.7998 -3.5 -9.7998c-3.30078 -2 -7.5 -1.2998 -10 1.59961c-9.40039 10.7998 -19 19 -29.2002 25.1006c-57.2998 33.8994 -130.8 13.6992 -163.9 -45
+c-33.0996 -58.7002 -13.3994 -134 43.9004 -167.9c10.2002 -6.09961 21.8994 -10.5 35.7998 -13.4004c3.7998 -0.799805 6.40039 -4.19922 6.40039 -8.09961c-0.100586 -4 -2.7002 -7.2998 -6.5 -8c-39.7002 -7.7998 -80.6006 -0.799805 -115.2 19.7002
+c-18 10.5996 -32.9004 24.5 -45.2998 40.0996c-12.4004 -15.5996 -27.3008 -29.5 -45.3008 -40.0996c-34.5996 -20.5 -75.5 -27.5 -115.199 -19.7002c-3.80078 0.700195 -6.40039 4 -6.5 8c0 3.90039 2.69922 7.2998 6.39941 8.09961
+c13.7998 3 25.6006 7.30078 35.7998 13.4004c57.3008 33.9004 77 109.2 43.9004 167.9c-33.0996 58.6992 -106.6 78.8994 -163.9 45c-10.1992 -6 -19.7998 -14.3008 -29.1992 -25.1006c-2.5 -2.89941 -6.7002 -3.59961 -10 -1.59961
+c-3.30078 2.09961 -4.80078 6.09961 -3.5 9.7998c13.2998 39.0996 39.6992 71.9004 74.2998 92.4004c17.5996 10.3994 36.3994 16.5996 55.2998 19.8994c-6.09961 17.7002 -10 36.4004 -10 56.2002c0 41 14.5996 80.7998 41 112.2c2.5 3 6.59961 3.7002 10 1.7998
+c3.2998 -1.90039 4.7998 -6 3.59961 -9.7002c-4.39941 -13.7998 -6.59961 -26.3994 -6.59961 -38.5c0 -67.7998 53.7998 -122.899 120 -122.899s120 55.0996 120 122.899c0 12.2002 -2.09961 24.7002 -6.59961 38.5c-1.2002 3.7002 0.299805 7.7998 3.59961 9.7002
+c3.40039 1.90039 7.5 1.2002 10 -1.7998c26.5 -31.4004 41 -71.2002 41 -112.2c0 -19.7998 -4 -38.5 -10 -56.2002c19 -3.2998 37.7002 -9.5 55.2998 -19.8994zM287.9 127.9c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
+ <glyph glyph-name="blog" unicode=""
+d="M172.2 221.2c75.5 -15 129.899 -89.2998 112.5 -172.2c-11.4004 -54.2998 -55.2998 -98.2998 -109.7 -109.7c-92.9004 -19.5 -175 51.2002 -175 140.7v248c0 13.2998 10.7002 24 24 24h48c13.2998 0 24 -10.7002 24 -24v-248c0 -26.5 21.5 -48 48 -48s48 21.5 48 48
+c0 20.5996 -13.0996 38.2002 -31.2998 45c-9.60059 3.59961 -16.7002 11.7998 -16.7002 22v50.4004c0 14.8994 13.5996 26.6992 28.2002 23.7998zM209 448c163.2 -8.59961 294.4 -139.8 302.9 -303c0.5 -9.2002 -6.80078 -17 -16 -17h-32.1006
+c-8.39941 0 -15.3994 6.59961 -15.8994 15c-7.5 129.5 -111.5 234.5 -240.9 241.5c-8.40039 0.400391 -15 7.40039 -15 15.9004v31.5996c0 9.2002 7.7998 16.5 17 16zM209.3 352c110.101 -8.5 198.2 -96.5996 206.601 -206.7
+c0.699219 -9.2998 -6.80078 -17.2998 -16.1006 -17.2998h-32.2002c-8.2998 0 -15.0996 6.40039 -15.8994 14.7002c-6.90039 77 -68.1006 138.899 -144.9 145.2c-8.2998 0.599609 -14.7998 7.5 -14.7998 15.8994v32.1006c0 9.39941 8 16.7998 17.2998 16.0996z" />
+ <glyph glyph-name="calendar-day" unicode="" horiz-adv-x="448"
+d="M0 -16v272h448v-272c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48zM64 176v-96c0 -8.7998 7.2002 -16 16 -16h96c8.7998 0 16 7.2002 16 16v96c0 8.7998 -7.2002 16 -16 16h-96c-8.7998 0 -16 -7.2002 -16 -16zM400 384c26.5 0 48 -21.5 48 -48v-48h-448v48
+c0 26.5 21.5 48 48 48h48v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h128v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h48z" />
+ <glyph glyph-name="calendar-week" unicode="" horiz-adv-x="448"
+d="M0 -16v272h448v-272c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 -48 21.5 -48 48zM64 176v-64c0 -8.7998 7.2002 -16 16 -16h288c8.7998 0 16 7.2002 16 16v64c0 8.7998 -7.2002 16 -16 16h-288c-8.7998 0 -16 -7.2002 -16 -16zM400 384c26.5 0 48 -21.5 48 -48v-48h-448
+v48c0 26.5 21.5 48 48 48h48v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h128v48c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-48h48z" />
+ <glyph glyph-name="candy-cane" unicode=""
+d="M497.5 356c35.7002 -75.5 2.7998 -166.1 -68.9004 -209l-347.3 -206.5c-5.2002 -3 -10.7998 -4.5 -16.3994 -4.5c-10.9004 0 -21.5 5.59961 -27.5 15.5996l-32.8008 54.9004c-9.09961 15.2002 -4.19922 34.7998 11 43.9004l353.601 210.1
+c15.0996 9.09961 20.0996 28.7998 11 43.9004c-6 10 -16.6006 15.5996 -27.5 15.5996c-5.60059 0 -11.2998 -1.40039 -16.4004 -4.5l-27.5 -16.4004c-5.2002 -3 -10.7998 -4.5 -16.3994 -4.5c-10.9004 0 -21.5 5.60059 -27.5 15.6006l-32.8008 54.8994
+c-9.09961 15.2002 -4.19922 34.8008 11 43.9004l27.5 16.4004c25.6006 15.2998 53.9004 22.5996 81.8008 22.5996c59.3994 0 117.199 -33.0996 145.1 -92zM319.8 343c8.5 5.09961 18.1006 7.59961 27.9004 8.40039l-20.6006 61.7998
+c-10.5 -2.10059 -20.5996 -5.5 -30.2998 -10.2002l20.5 -61.5zM145.9 16.2002l30.7998 18.2998l-60.5 38.5l-30.7998 -18.2998zM253.4 80.0996l30.7998 18.3008l-60.5 38.5l-30.7998 -18.3008zM364.3 146l30.7998 18.2998l-60.5 38.5l-30.7998 -18.2998zM384.7 343.3
+c9.2002 -5.39941 17.2002 -13 22.8994 -22.2998l45.7002 45.7002c-6.59961 8.5 -14.2002 16.0996 -22.5996 22.5996zM466.8 235.5c4.60059 9.7998 8 20 10.1006 30.4004l-60.4004 20.0996c-0.0996094 -4.5 -0.700195 -9.09961 -1.7998 -13.5996
+c-1.60059 -6.2002 -4.2002 -11.8008 -7.40039 -17.1006z" />
+ <glyph glyph-name="carrot" unicode=""
+d="M298.2 291.4c61.7002 -30.1006 87.2998 -104.5 57.2002 -166.2c-12.6006 -25.7998 -33.1006 -45.4004 -57.1006 -57.1006l-102 -49.7998l-57 57c-6.2002 6.2002 -16.2998 6.2002 -22.5996 0s-6.2998 -16.3994 0 -22.5996l49.2002 -49.2002l-133.601 -65.2002
+c-11.0996 -5.39941 -24.5996 -0.799805 -30 10.2998c-3.09961 6.40039 -2.89941 13.7002 0 19.7002l128.101 262.7l50.1992 -50.2002c3.10059 -3.09961 7.2002 -4.7002 11.3008 -4.7002c4.09961 0 8.19922 1.60059 11.2998 4.7002c6.2998 6.2002 6.2998 16.2998 0 22.6006
+l-55.2002 55.1992c35.7002 43.3008 97.5 58.5 150.2 32.8008zM390.3 326.3c40.7002 19.5 88.7998 9.40039 121.7 -30.2998c-41.5996 -50.2998 -107.5 -52.5 -151.9 -7.90039l-8 8c-44.5996 44.4004 -42.3994 110.2 7.90039 151.9
+c39.7002 -32.9004 49.7998 -81 30.2998 -121.7z" />
+ <glyph glyph-name="cash-register" unicode=""
+d="M511.1 69.2002c0.600586 -3.5 0.900391 -7 0.800781 -10.5v-90.7002c0 -17.7002 -14.3008 -32 -32 -32h-448c-17.7002 0 -32 14.2998 -32 32v90.7998c0 3.5 0.299805 7 0.899414 10.5l26.7002 160c2.59961 15.4004 16 26.7002 31.5996 26.7002h84.9004v64h-96
+c-8.7998 0 -16 7.2002 -16 16v96c0 8.7998 7.2002 16 16 16h256c8.7998 0 16 -7.2002 16 -16v-96.0996c0 -8.80078 -7.2002 -16 -16 -16h-96v-64h244.8c15.7002 0 29 -11.3008 31.6006 -26.7002zM280 200v-16c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16
+c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16zM248 136c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16h-16zM216 216h-16c-8.7998 0 -16 -7.2002 -16 -16v-16
+c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16zM80 368h192v32h-192v-32zM120 168c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16zM136 104
+c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16zM352 -8v16c0 4.40039 -3.59961 8 -8 8h-176c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h176c4.40039 0 8 3.59961 8 8
+zM376 104v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16c8.7998 0 16 7.2002 16 16zM424 184v16c0 8.7998 -7.2002 16 -16 16h-16c-8.7998 0 -16 -7.2002 -16 -16v-16c0 -8.7998 7.2002 -16 16 -16h16
+c8.7998 0 16 7.2002 16 16z" />
+ <glyph glyph-name="compress-arrows-alt" unicode=""
+d="M200 160c13.2998 0 24 -10.7002 24 -24v-112c0 -21.4004 -25.7998 -32.0996 -40.9004 -17l-31.0996 33l-99.2998 -99.2998c-6.2002 -6.2002 -16.4004 -6.2002 -22.6006 0l-25.3994 25.3994c-6.2002 6.2002 -6.2002 16.4004 0 22.6006l99.2002 99.2998l-32.9004 31
+c-15.0996 15.2002 -4.40039 41 17 41h112zM312 224c-13.2998 0 -24 10.7002 -24 24v112c0 21.4004 25.7998 32.0996 40.9004 17l31.0996 -33l99.2998 99.2998c6.2002 6.2002 16.4004 6.2002 22.6006 0l25.3994 -25.3994c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006
+l-99.2998 -99.2998l33 -31c15.0996 -15.0996 4.40039 -41 -17 -41h-112zM408 88l99.2998 -99.4004c6.2002 -6.19922 6.2002 -16.3994 0 -22.5996l-25.3994 -25.4004c-6.2002 -6.19922 -16.4004 -6.19922 -22.6006 0l-99.2998 99.3008l-31 -32.9004
+c-15.0996 -15.0996 -41 -4.40039 -41 17v112c0 13.2998 10.7002 24 24 24h112c21.4004 0 32.0996 -25.7998 17 -40.9004zM183 376.9c15.0996 15.0996 41 4.39941 41 -16.9004v-112c0 -13.2998 -10.7002 -24 -24 -24h-112c-21.4004 0 -32.0996 25.7998 -17 40.9004
+l33 31.0996l-99.2998 99.2998c-6.2002 6.2002 -6.2002 16.4004 0 22.6006l25.3994 25.3994c6.2002 6.2002 16.4004 6.2002 22.6006 0l99.2998 -99.2998z" />
+ <glyph glyph-name="dumpster" unicode="" horiz-adv-x="576"
+d="M560 288h-97.2998l-25.6006 128h98.9004c7.2998 0 13.7002 -5 15.5 -12.0996l24 -96c2.5 -10.1006 -5.09961 -19.9004 -15.5 -19.9004zM272 416v-128h-126.1l25.5996 128h100.5zM404.5 416l25.5996 -128h-126.1v128h100.5zM16 288c-10.4004 0 -18 9.7998 -15.5 19.9004
+l24 96c1.7998 7.09961 8.2002 12.0996 15.5 12.0996h98.9004l-25.6006 -128h-97.2998zM560 224c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-28l-20 -160v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16h-320v-16
+c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16l-20 160h-28c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h20l-4 32h512l-4 -32h20z" />
+ <glyph glyph-name="dumpster-fire" unicode="" horiz-adv-x="640"
+d="M418.7 343.9c-19.7002 -17.6006 -37.7002 -36.5 -53.9004 -55.8008h-60.7998v128h100.5l14.4004 -72zM272 416v-128h-126.1l25.5996 128h100.5zM461.3 343.9l-11.8994 10.5996l-12.3008 61.5h98.9004c7.2998 0 13.7002 -5 15.4004 -12.0996l24 -96
+c0.199219 -0.800781 -0.100586 -1.5 0 -2.30078c-1 1 -2 2.2002 -3.10059 3.10059l-21.2998 19l-21.2998 -19c-5.90039 -5.2002 -11.6006 -10.7002 -17.2998 -16.2998c-15.6006 17.7998 -32.9004 35.1992 -51.1006 51.5zM16 288c-10.4004 0 -18 9.7998 -15.5 19.9004l24 96
+c1.7998 7.09961 8.2002 12.0996 15.5 12.0996h98.9004l-25.6006 -128h-97.2998zM340.6 256c-32.6992 -46.7002 -52.5996 -93.7002 -52.5996 -129.6c0 -48.5 18.5996 -92.7002 48.7998 -126.4h-208.8v-16c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v16
+l-20 160h-28c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h20l-4 32h308.6zM551.1 284.8c51.8008 -46.2002 88.9004 -121.8 88.8008 -158.399c0 -87.5 -71.6006 -158.4 -160 -158.4c-88.4004 0 -160 70.9004 -160 158.4c0 49.2998 49.7998 130.899 120 193.6
+c27.3994 -24.4004 51.5 -50.5996 71 -76.4004c11.8994 14 25.2998 27.9004 40.1992 41.2002zM532.5 55.4004c33.4004 24.1992 41.2002 71.0996 22.5996 107.8c-2.2998 4.5 -4.89941 9.2002 -7.69922 14l-39.8008 -47s-62.3994 82.5 -67.0996 88.0996
+c-32.9004 -40.8994 -49.4004 -64.7998 -49.4004 -91.8994c0 -54.5 39.9004 -88 88.9004 -88c19.5996 0 37.7998 6.2998 52.5 17z" />
+ <glyph glyph-name="ethernet" unicode=""
+d="M496 256c8.7998 0 16 -7.2002 16 -16v-224c0 -8.7998 -7.2002 -16 -16 -16h-80v128h-32v-128h-64v128h-32v-128h-64v128h-32v-128h-64v128h-32v-128h-80c-8.7998 0 -16 7.2002 -16 16v224c0 8.7998 7.2002 16 16 16h48v48c0 8.7998 7.2002 16 16 16h48v48
+c0 8.7998 7.2002 16 16 16h224c8.7998 0 16 -7.2002 16 -16v-48h48c8.7998 0 16 -7.2002 16 -16v-48h48z" />
+ <glyph glyph-name="gifts" unicode="" horiz-adv-x="640"
+d="M240.6 253.9c-27.7998 -6.90039 -48.5996 -32 -48.5996 -61.9004v-224c0 -11.7002 3.40039 -22.5 8.90039 -32h-168.9c-17.7002 0 -32 14.2998 -32 32v352c0 17.7002 14.2998 32 32 32h29.4004l-30.7002 22c-7.2002 5.09961 -8.7998 15.0996 -3.7002 22.2998l9.2998 13
+c5.10059 7.2002 15.1006 8.7998 22.2998 3.7002l32.1006 -22.7998l-11.5 30.5996c-3.2002 8.2002 1 17.5 9.2998 20.6006l15 5.59961c8.2998 3.09961 17.5 -1.09961 20.5996 -9.40039l19.9004 -53.0996l19.9004 53c3.09961 8.2998 12.2998 12.5 20.5996 9.40039l15 -5.60059
+c8.2998 -3.09961 12.5 -12.2998 9.40039 -20.5996l-11.5 -30.6006l32 22.9004c7.19922 5.2002 17.1992 3.5 22.2998 -3.7002l9.2998 -13c5.2002 -7.2002 3.5 -17.2002 -3.7002 -22.2998l-30.7002 -22h29.4004c12.7002 0 23.4004 -7.5 28.5996 -18.2998
+c-26.6992 -18.6006 -42.0996 -49 -44 -79.7998zM224 -32v96h192v-128h-160c-17.7002 0 -32 14.2998 -32 32zM448 -64v128h192v-96c0 -17.7002 -14.2998 -32 -32 -32h-160zM608 224c17.7002 0 32 -14.2998 32 -32v-96h-192v128h-15.2998l-0.700195 0.200195
+l-0.700195 -0.200195h-15.2998v-128h-192v96c0 17.7002 14.2998 32 32 32h20.4004c-2.7002 7.59961 -4.40039 15.5 -4.40039 23.7998c0 35.5 27 72.2002 72.0996 72.2002c48 0 75.8008 -47.7002 87.9004 -75.2998c12 27.5996 39.7998 75.2998 87.9004 75.2998
+c45.0996 0 72.0996 -36.7002 72.0996 -72.2002c0 -8.2998 -1.7998 -16.2002 -4.40039 -23.7998h20.4004zM336 224h52.5996c-8.89941 20.5996 -25.7998 48 -44.5 48c-17.6992 0 -24.0996 -14.5 -24.0996 -24.2002c0 -5.2002 1.5 -12.5996 8.7998 -19
+c2.10059 -1.7998 4.5 -3.39941 7.2002 -4.7998zM535.2 228.8c7.2998 6.40039 8.7998 13.7998 8.7998 19c0 9.7002 -6.40039 24.2002 -24.0996 24.2002c-18.7002 0 -35.7002 -27.7002 -44.5 -48h52.5996c2.7002 1.40039 5.09961 3 7.2002 4.7998z" />
+ <glyph glyph-name="glass-cheers" unicode="" horiz-adv-x="640"
+d="M639.4 14.4004c1.69922 -4.10059 -0.300781 -8.7002 -4.30078 -10.4004l-162.399 -67.4004c-4 -1.69922 -8.7002 0.200195 -10.4004 4.30078c-8.5 20.3994 1.2002 43.7998 21.6006 52.2998l22.0996 9.2002l-39.2998 103.6
+c-4.40039 -0.5 -8.7998 -1.2998 -13.1006 -1.2998c-51.6992 0 -99.3994 33.0996 -113.399 85.2998l-20.2002 75.4004l-20.2002 -75.4004c-14 -52.2002 -61.7002 -85.2998 -113.399 -85.2998c-4.30078 0 -8.7002 0.799805 -13.1006 1.2998l-39.3994 -103.6l22.0996 -9.2002
+c20.4004 -8.5 30 -31.9004 21.5996 -52.2998c-1.69922 -4.10059 -6.2998 -6 -10.3994 -4.30078l-162.3 67.4004c-4.10059 1.7002 -6 6.40039 -4.30078 10.5c8.5 20.4004 31.8008 30.0996 52.2002 21.5996l22.1006 -9.19922l38.6992 101.899
+c-47.8994 34.9004 -64.6992 100.2 -34.5 152.7l86.6006 150.5c8 13.9004 25.0996 19.7998 40 13.5996l114.3 -47.3994l114.3 47.3994c14.9004 6.10059 32 0.300781 40 -13.5996l86.6006 -150.5c30.2998 -52.5 13.3994 -117.8 -34.5 -152.8l38.6992 -101.9l22.1006 9.2002
+c20.3994 8.5 43.7998 -1.2002 52.2002 -21.5996zM275.9 285.9l18.8994 70.6992l-94.5 39.2002l-36.5 -63.3994zM364.1 285.9l112.101 46.5l-36.5 63.3994l-94.5 -39.2002z" />
+ <glyph glyph-name="glass-whiskey" unicode=""
+d="M480 416c19.5 0 34.4004 -17.2002 31.7002 -36.5l-55.6006 -356.5c-4.5 -31.5 -31.5996 -54.9004 -63.3994 -54.9004h-273c-31.9004 0 -58.9004 23.4004 -63.4004 54.9004l-56 356.5c-2.7002 19.2998 12.2002 36.5 31.7002 36.5h448zM442.6 352h-373.199l30.1992 -192
+h313z" />
+ <glyph glyph-name="globe-europe" unicode="" horiz-adv-x="496"
+d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM448 192c0 110.3 -89.7002 200 -200.2 200c-1.89941 0 -3.7998 -0.200195 -5.7002 -0.299805l-28.8994 -21.7002c-2 -1.5 -3.2002 -3.90039 -3.2002 -6.40039v-20
+c0 -4.39941 3.59961 -8 8 -8h16c4.40039 0 8 3.60059 8 8v8l16 16h20.7002c6.2002 0 11.2998 -5.09961 11.2998 -11.2998c0 -3 -1.2002 -5.89941 -3.2998 -8l-26.7998 -26.7998c-1.2002 -1.2002 -2.7002 -2.09961 -4.40039 -2.7002l-40 -13.2998
+c-3.2998 -1.09961 -5.5 -4.2002 -5.5 -7.59961c0 -6.60059 -2.59961 -12.9004 -7.2002 -17.5l-20.0996 -20.1006c-3 -3 -4.7002 -7.09961 -4.7002 -11.2998v-25.2998c0 -8.7998 7.2002 -16 16 -16h22.0996c6.10059 0 11.6006 3.39941 14.3008 8.7998l9.39941 18.7002
+c1.40039 2.7002 4.2002 4.39941 7.2002 4.39941h3.09961c4.40039 0 8 -3.59961 8 -8c0 -4.39941 3.60059 -8 8 -8h16c4.40039 0 8 3.60059 8 8v2.2002c0 3.5 2.2002 6.5 5.5 7.60059l31.6006 10.5c6.5 2.19922 10.8994 8.2998 10.8994 15.1992v4.5
+c0 8.80078 7.2002 16 16 16h36.7002c6.2002 0 11.2998 -5.09961 11.2998 -11.2998v-9.39941c0 -6.2002 -5.09961 -11.3008 -11.2998 -11.3008h-32c-3 0 -5.89941 -1.19922 -8 -3.2998l-9.39941 -9.39941c-2.10059 -2.10059 -3.30078 -5 -3.30078 -8
+c0 -6.2002 5.10059 -11.3008 11.3008 -11.3008h16c3 0 5.89941 -1.19922 8 -3.2998l9.39941 -9.39941c2.10059 -2.10059 3.2998 -5 3.2998 -8v-8.7002l-12.5 -12.5c-4.59961 -4.60059 -4.59961 -12.1006 -0.0996094 -16.7002l32 -32.5996
+c3 -3.10059 7.09961 -4.80078 11.4004 -4.80078h20.2998c6.89941 20.2002 10.7998 41.9004 10.7998 64.4004zM130.1 298.9c0 -6.2002 5.10059 -11.3008 11.3008 -11.3008h16c3 0 5.89941 1.2002 8 3.30078l9.39941 9.39941c2.10059 2.10059 3.2998 5 3.2998 8v16
+c0 6.2002 -5.09961 11.2998 -11.2998 11.2998c-3 0 -5.89941 -1.19922 -8 -3.2998l-25.3994 -25.3994c-2.10059 -2.10059 -3.30078 -5 -3.30078 -8zM258.1 -7.5c71.1006 3.59961 132.5 44.2002 164.9 103.1h-13.4004c-4.7998 0 -9.5 1.90039 -12.8994 5.30078
+l-17.2998 17.2998c-6 6 -14.1006 9.39941 -22.6006 9.39941h-18.2998l-43.2002 37.1006c-8.2002 7 -18.7002 10.8994 -29.5996 10.8994h-31.2002c-8.2002 0 -16.2998 -2.2998 -23.4004 -6.5l-42.8994 -25.6992c-13.7002 -8.2002 -22.1006 -23 -22.1006 -39v-23.9004
+c0 -14.2998 6.7002 -27.7998 18.2002 -36.4004l22.2002 -16.6992c8.7002 -6.5 24.5996 -11.8008 35.4004 -11.8008h20.1992c8.80078 0 16 -7.19922 16 -16v-7.09961z" />
+ <glyph glyph-name="grip-lines" unicode=""
+d="M496 160c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v32c0 8.7998 7.2002 16 16 16h480zM496 288c8.7998 0 16 -7.2002 16 -16v-32c0 -8.7998 -7.2002 -16 -16 -16h-480c-8.7998 0 -16 7.2002 -16 16v32
+c0 8.7998 7.2002 16 16 16h480z" />
+ <glyph glyph-name="grip-lines-vertical" unicode="" horiz-adv-x="256"
+d="M96 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-480zM224 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32
+c8.7998 0 16 -7.2002 16 -16v-480z" />
+ <glyph glyph-name="guitar" unicode=""
+d="M502.6 393.4c12.5 -12.5 12.5 -32.8008 0.100586 -45.2002l-67.9004 -67.9004c-12.5 -12.5 -32.7998 -12.5 -45.2998 0l-54.2002 -54.2002c28.9004 -45.3994 28.9004 -100.399 -4.2002 -133.5c-9.69922 -9.69922 -21.1992 -16.3994 -33.8994 -20.5
+c-18.7998 -6.09961 -33.1006 -23.5996 -34.9004 -42.6992c-2.2998 -24.1006 -11.5996 -46.4004 -28.7998 -63.5c-46.0996 -46.1006 -129.1 -37.9004 -185.3 18.2998s-64.5 139.2 -18.2998 185.3c17.0996 17.2002 39.3994 26.5 63.3994 28.7998
+c19.2002 1.7998 36.6006 16.1006 42.7002 34.9004c4.09961 12.7002 10.7998 24.2002 20.5 33.8994c33.0996 33.1006 88.0996 33.2002 133.5 4.2002l54.2002 54.1006c-12.5 12.5 -12.5 32.7998 0 45.2998l67.8994 67.8994c12.5 12.5 32.8008 12.5 45.3008 0zM208 96
+c26.5 0 48 21.5 48 48s-21.5 48 -48 48s-48 -21.5 -48 -48s21.5 -48 48 -48z" />
+ <glyph glyph-name="heart-broken" unicode=""
+d="M473.7 374.2c48.7002 -49.7998 50.7998 -129.101 7.2998 -182.101l-212.2 -218.699c-7.09961 -7.30078 -18.5996 -7.30078 -25.7002 0l-212.1 218.6c-43.5 53.0996 -41.4004 132.4 7.2998 182.2l2.40039 2.39941c46.2998 47.4004 119 51.8008 170.7 14l28.5996 -86.5
+l-96 -64l144 -144l-48 128l96 64l-34.2998 103.4c51.5996 36.9004 123.6 32.2002 169.6 -14.7998z" />
+ <glyph glyph-name="holly-berry" unicode="" horiz-adv-x="448"
+d="M144 256c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM256 304c0 26.5 21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48zM224 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48z
+M207.8 212.9c-0.399414 -39.8008 7.40039 -78.1006 22.9004 -112.301c4 -8.89941 -2 -19.1992 -11.7002 -20.1992c-15.2002 -1.5 -30.4004 -4.60059 -45.2998 -9.10059c-14.9004 -4.5 -23.7998 -19.8994 -20.2002 -35.0996s8.5 -29.9004 14.7002 -43.7998
+c4 -8.90039 -1.90039 -19.3008 -11.6006 -20.2002c-35.8994 -3.40039 -71.5996 -14.9004 -104.8 -33.9004c-12.3994 -7.09961 -27.5 1.60059 -27.5996 16c-0.100586 38.2002 -8 74.9004 -23 107.7c-4 8.90039 2 19.2002 11.7002 20.2002
+c15.1992 1.5 30.3994 4.59961 45.2998 9.09961c14.8994 4.5 23.7998 19.9004 20.2002 35.1006c-3.60059 15.1992 -8.5 29.8994 -14.7002 43.7998c-4 8.89941 1.89941 19.2998 11.5996 20.2002c37.2998 3.5 74.4004 15.8994 108.7 36.1992
+c10.7002 6.40039 23.9004 -1.2998 23.7998 -13.6992zM435 82.4004c9.7002 -1 15.7998 -11.4004 11.5 -20.1006c-15 -32.7002 -22.7998 -69.5 -23 -107.7c0 -14.3994 -15.0996 -23.0996 -27.5996 -16c-33.2002 19 -68.9004 30.5 -104.801 33.9004
+c-9.69922 0.900391 -15.5996 11.2998 -11.5996 20.2002c6.2002 14 11.0996 28.5996 14.7002 43.7998c3.59961 15.2002 -5.2998 30.5996 -20.2002 35.0996c-4.90039 1.5 -9.90039 2.5 -14.7998 3.7002c5.7998 12.2998 6.2998 26.5 0.599609 38.9004
+c-12.8994 28.2998 -19.7002 60.7002 -19.8994 94c0 1.7002 0.199219 3.2998 0.199219 4.89941c-0.0996094 12.3008 13.1006 20 23.8008 13.7002c34.2998 -20.2998 71.3994 -32.7002 108.699 -36.2002c9.7002 -0.899414 15.6006 -11.2998 11.6006 -20.1992
+c-6.2002 -14 -11.1006 -28.6006 -14.7002 -43.8008c-3.59961 -15.1992 5.2998 -30.5996 20.2002 -35.0996c15 -4.40039 30.0996 -7.5 45.2998 -9.09961z" />
+ <glyph glyph-name="horse-head" unicode=""
+d="M509.8 115.5c4.60059 -11.7998 1.7998 -25.2998 -7.09961 -34.4004l-45.2998 -39.7998c-6 -6 -14.1006 -9.39941 -22.6006 -9.39941h-50.2998c-10.2998 0 -20 4.89941 -26 13.2998l-46 63.8994c-13.7998 -8.09961 -29.5996 -13.1992 -46.7998 -13.1992
+c-39.2002 0 -72.6006 23.6992 -87.4004 57.3994c-2.2998 5.10059 -9 6.2998 -12.8994 2.40039l-12.1006 -12.1006c-2.5 -2.39941 -3.2002 -6.19922 -1.59961 -9.2998c19.7002 -38.8994 58.7002 -66.0996 104.3 -69.5996v-0.700195l40.7998 -81.7002
+c10.7002 -21.2998 -4.7998 -46.2998 -28.5996 -46.2998h-236.2c-17.7002 0 -32 14.2998 -32 32v81.2002c0 159.899 35.9004 275.399 166.9 322.5l202.199 75.7002c4.90039 1.7998 10.7002 -1.10059 12 -6.10059c12.1006 -46.3994 -16.1992 -71.7002 -34.1992 -82.2998
+c42.5996 -8.2002 78.0996 -38 93 -79.2002zM328 224c13.2998 0 24 10.7002 24 24s-10.7002 24 -24 24s-24 -10.7002 -24 -24s10.7002 -24 24 -24z" />
+ <glyph glyph-name="icicles" unicode=""
+d="M511.4 410.1l-87.5 -467.699c-1.7002 -8.60059 -14 -8.60059 -15.7002 0l-66.7002 363.8l-45.7998 -172.5c-2.2998 -7.60059 -13 -7.60059 -15.2998 0l-34.1006 133.399l-46.5 -196.899c-1.89941 -8.2998 -13.7002 -8.2998 -15.5996 0l-44.2002 187.3l-36.4004 -124.1
+c-2.39941 -7.2002 -12.5996 -7.2002 -15.0996 0l-87.0996 273.399c-6.2002 20.5 9.19922 41.2002 30.5996 41.2002h448c20 0 35.0996 -18.2002 31.4004 -37.9004z" />
+ <glyph glyph-name="igloo" unicode="" horiz-adv-x="576"
+d="M320 414.1v-126.1h-271.4c51.6006 77.2002 139.601 128 239.4 128c10.7998 0 21.5 -0.700195 32 -1.90039zM96 256v-128h-96c0 46 11.0996 89.4004 30.2998 128h65.7002zM352 408.6c72.7998 -16.5 135.2 -60.5 175.4 -120.6h-175.4v120.6zM480 128v128h65.7002
+c19.2002 -38.5996 30.2998 -82 30.2998 -128h-96zM416 64c0 11.0996 -1.90039 21.7002 -4.5 32h164.5v-96c0 -17.7002 -14.2998 -32 -32 -32h-128v96zM448 256v-128h-49.7998c-22.2002 38.0996 -63 64 -110.2 64s-88 -25.9004 -110.2 -64h-49.7998v128h320zM0 0v96h164.5
+c-2.59961 -10.2998 -4.5 -20.9004 -4.5 -32v-96h-128c-17.7002 0 -32 14.2998 -32 32zM288 160c53 0 96 -43 96 -96v-96h-192v96c0 53 43 96 96 96z" />
+ <glyph glyph-name="mitten" unicode="" horiz-adv-x="448"
+d="M368 32c8.7998 0 16 -7.2002 16 -16v-64c0 -8.7998 -7.2002 -16 -16 -16h-320c-8.7998 0 -16 7.2002 -16 16v64c0 8.7998 7.2002 16 16 16h320zM425 241.1c27.0996 -22.5996 30.7998 -62.8994 8.09961 -90.0996l-72.5 -87h-309l-47.8994 207.6
+c-17.9004 77.5 30.5 154.801 107.899 172.7c77.4004 17.9004 154.801 -30.5 172.801 -108l29.5996 -128.399l20.9004 25c22.5996 27.1992 62.8994 30.7998 90.0996 8.19922z" />
+ <glyph glyph-name="mug-hot" unicode=""
+d="M127.1 301.5c-2.69922 16.5996 -10.3994 31.9004 -22.3994 44.0996c-22.6006 23.1006 -36.7002 52.5 -40.6006 84.4004c-1.09961 9.5 6.5 18 16.3008 18h16.3994c8.2002 0 15 -5.90039 16.1006 -13.7998c2.7998 -20.2002 12 -38.7998 26.3994 -53.5
+c20.2002 -20.5 32.7998 -46.5 36.6006 -74.7002c1.2998 -9.5 -6.5 -18 -16.3008 -18h-16.5c-8 0 -14.6992 5.7998 -16 13.5zM239.1 301.5c-2.69922 16.5996 -10.3994 31.9004 -22.3994 44.0996c-22.6006 23.1006 -36.7002 52.5 -40.6006 84.4004
+c-1.19922 9.5 6.5 18 16.3008 18h16.3994c8.2002 0 15 -5.90039 16.1006 -13.7998c2.7998 -20.2002 12 -38.7998 26.3994 -53.5c20.2002 -20.5 32.7998 -46.5 36.6006 -74.7002c1.2998 -9.5 -6.5 -18 -16.3008 -18h-16.5c-8 0 -14.6992 5.7998 -16 13.5zM400 256
+c61.7998 0 112 -50.2002 112 -112s-50.2002 -112 -112 -112h-16c0 -53 -43 -96 -96 -96h-192c-53 0 -96 43 -96 96v192c0 17.7002 14.2998 32 32 32h368zM400 96c26.5 0 48 21.5 48 48s-21.5 48 -48 48h-16v-96h16z" />
+ <glyph glyph-name="radiation" unicode="" horiz-adv-x="496"
+d="M328.2 192.2c0 28.5996 -15.2002 53.5 -37.7998 67.7998l80.3994 128.4c4.7998 7.69922 15.2998 10.0996 22.7002 4.7998c58.0996 -42 97.4004 -108.4 102.5 -184.2c0.599609 -9.09961 -7.09961 -16.7998 -16.2002 -16.7998h-151.6zM290.4 124.5l80.3994 -128.5
+c4.7998 -7.59961 2.40039 -18.0996 -5.59961 -22.4004c-34.9004 -18.7998 -74.7998 -29.5996 -117.2 -29.5996s-82.2998 10.7998 -117.2 29.5996c-8 4.30078 -10.3994 14.7002 -5.59961 22.4004l80.3994 128.5c12.4004 -7.7002 26.8008 -12.4004 42.4004 -12.4004
+s30.0996 4.7002 42.4004 12.4004zM248 144.2c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM16.2002 192.2c-9.10059 0 -16.7998 7.7002 -16.2002 16.7002c5.09961 75.7998 44.4004 142.199 102.5 184.199
+c7.40039 5.40039 17.9004 2.90039 22.7002 -4.7998l80.3994 -128.399c-22.5996 -14.2002 -37.7998 -39.1006 -37.7998 -67.7002h-151.6z" />
+ <glyph glyph-name="radiation-alt" unicode="" horiz-adv-x="496"
+d="M312 192c0 22.7998 -12.0996 42.7998 -30.0996 54l41.6992 66.7998c5.2002 8.2998 16.4004 9.90039 24 3.7998c32.5 -26 54.9004 -64.1992 59.5 -107.8c0.900391 -9.09961 -6.7998 -16.7998 -16 -16.7998h-79.0996zM214.2 137.9
+c9.7998 -6.2002 21.5 -9.90039 33.8994 -9.90039c12.4004 0 24 3.7002 33.8008 9.90039l41.7998 -66.9004c4.7998 -7.7998 2.39941 -18.4004 -5.7998 -22.5c-21.2002 -10.4004 -44.8008 -16.5 -69.9004 -16.5s-48.7002 6.09961 -69.7998 16.5
+c-8.2002 4.09961 -10.7002 14.7002 -5.7998 22.5zM104.9 192c-9.2002 0 -17 7.7002 -15.9004 16.9004c4.59961 43.5996 26.9004 81.7998 59.5 107.8c7.59961 6.09961 18.7998 4.5 24 -3.7998l41.7002 -66.8008c-18.1006 -11.2998 -30.2002 -31.2998 -30.2002 -54.0996
+h-79.0996zM248 -56c-137 0 -248 111 -248 248s111 248 248 248s248 -111 248 -248s-111 -248 -248 -248zM248 376c-101.5 0 -184 -82.5 -184 -184s82.5 -184 184 -184s184 82.5 184 184s-82.5 184 -184 184zM248 160c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32
+s32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
+ <glyph glyph-name="restroom" unicode="" horiz-adv-x="640"
+d="M128 320c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM512 320c-35.2998 0 -64 28.7002 -64 64s28.7002 64 64 64s64 -28.7002 64 -64s-28.7002 -64 -64 -64zM639.3 93.5c3.7002 -15.0996 -8.2998 -29.5 -24.5 -29.5
+h-54.7998v-104c0 -13.2998 -10.7002 -24 -24 -24h-48c-13.2998 0 -24 10.7002 -24 24v104h-54.7998c-16.2002 0 -28.2002 14.4004 -24.7002 29.5l45.5996 185.8c3.30078 13.5 15.5 23 29.8008 24.2002c15 -9.7002 32.7998 -15.5 52 -15.5c19.1992 0 37 5.7998 52 15.5
+c14.2998 -1.2002 26.5 -10.7002 29.7998 -24.2002zM336 448c8.7998 0 16 -7.2002 16 -16v-480c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32zM180.1 303.6c24.6006 -2.09961 43.9004 -22.5 43.9004 -47.5996v-136
+c0 -13.2998 -10.7002 -24 -24 -24h-8v-136c0 -13.2998 -10.7002 -24 -24 -24h-80c-13.2998 0 -24 10.7002 -24 24v136h-8c-13.2998 0 -24 10.7002 -24 24v136c0 25.0996 19.2998 45.5 43.9004 47.5996c15 -9.7998 32.8994 -15.5996 52.0996 -15.5996
+s37.0996 5.7998 52.0996 15.5996z" />
+ <glyph glyph-name="satellite" unicode=""
+d="M502.7 183c12.3994 -12.4004 12.3994 -32.5996 -0.100586 -45l-96.6992 -96.7002c-6.2002 -6.2002 -14.4004 -9.2998 -22.5 -9.2998c-8.10059 0 -16.3008 3.09961 -22.5 9.2998l-80.3008 80.4004l-9.89941 -9.90039c24.2998 -53.7002 22.7002 -116.2 -5.40039 -168.5
+c-4.5 -8.5 -16.3994 -9.59961 -23.2002 -2.7998l-107.5 107.5l-17.7998 -17.7998c0.700195 -2.60059 1.60059 -5 1.60059 -7.7998c0 -17.7002 -14.3008 -32 -32 -32c-17.7002 0 -32 14.2998 -32 32c0 17.6992 14.2998 32 32 32c2.7998 0 5.19922 -0.900391 7.7998 -1.60059
+l17.7998 17.7998l-107.5 107.5c-6.7998 6.80078 -5.7002 18.6006 2.7998 23.2002c52.2998 28.1006 114.8 29.7002 168.5 5.40039l9.7998 9.7998l-80.2998 80.4004c-12.3994 12.5 -12.3994 32.6992 0 45.0996l96.7002 96.7002c6.2002 6.2002 14.2998 9.2998 22.5 9.2998
+s16.2998 -3.09961 22.5996 -9.2998l80.3008 -80.2998l47.7998 47.8994c13.0996 13.1006 34.3994 13.1006 47.5 0l47.5 -47.5c13.0996 -13.0996 13.0996 -34.3994 0 -47.5l-47.7998 -47.8994zM150.7 319.5l68.8994 -68.9004l73.8008 73.8008l-68.9004 68.8994zM383.5 86.7002
+l73.7998 73.7998l-68.8994 68.9004l-73.8008 -73.8008z" />
+ <glyph glyph-name="satellite-dish" unicode=""
+d="M188.8 102.1l116.601 -116.6c7.39941 -7.2998 6.19922 -20.0996 -3 -25c-77.7002 -41.7998 -176.7 -29.9004 -242.301 35.7002c-65.5996 65.5996 -77.5 164.5 -35.6992 242.3c4.89941 9.09961 17.6992 10.2998 25 3l116.8 -116.8l27.3994 27.3994
+c-0.699219 2.60059 -1.59961 5 -1.59961 7.80078c0 17.6992 14.2998 32 32 32s32 -14.3008 32 -32c0 -17.7002 -14.2998 -32 -32 -32c-2.7998 0 -5.2002 0.899414 -7.7998 1.59961zM209 448c163.2 -8.59961 294.4 -139.8 302.9 -303c0.5 -9.2002 -6.80078 -17 -16 -17
+h-32.1006c-8.39941 0 -15.3994 6.59961 -15.8994 15c-7.5 129.5 -111.5 234.5 -240.9 241.5c-8.40039 0.400391 -15 7.40039 -15 15.9004v31.5996c0 9.2002 7.7998 16.5 17 16zM209.3 352c110.101 -8.5 198.2 -96.5996 206.601 -206.7
+c0.699219 -9.2998 -6.80078 -17.2998 -16.1006 -17.2998h-32.2002c-8.2998 0 -15.0996 6.40039 -15.8994 14.7002c-6.90039 77 -68.1006 138.899 -144.9 145.2c-8.2998 0.599609 -14.7998 7.5 -14.7998 15.8994v32.1006c0 9.39941 8 16.7998 17.2998 16.0996z" />
+ <glyph glyph-name="sd-card" unicode="" horiz-adv-x="384"
+d="M320 448c35.2998 0 64 -28.7002 64 -64v-384c0 -35.2998 -28.7002 -64 -64 -64h-256c-35.2998 0 -64 28.7002 -64 64v320l128 128h192zM160 288v96h-48v-96h48zM240 288v96h-48v-96h48zM320 288v96h-48v-96h48z" />
+ <glyph glyph-name="sim-card" unicode="" horiz-adv-x="384"
+d="M0 384c0 35.2998 28.7002 64 64 64h192l128 -128v-320c0 -35.2998 -28.7002 -64 -64 -64h-256c-35.2998 0 -64 28.7002 -64 64v384zM224 192v64h-64v-64h64zM320 192v32c0 17.7002 -14.2998 32 -32 32h-32v-64h64zM256 64v-64h32c17.7002 0 32 14.2998 32 32v32h-64z
+M160 64v-64h64v64h-64zM64 64v-32c0 -17.7002 14.2998 -32 32 -32h32v64h-64zM64 160v-64h256v64h-256zM64 224v-32h64v64h-32c-17.7002 0 -32 -14.2998 -32 -32z" />
+ <glyph glyph-name="skating" unicode="" horiz-adv-x="448"
+d="M400 448c26.5 0 48 -21.5 48 -48s-21.5 -48 -48 -48s-48 21.5 -48 48s21.5 48 48 48zM400 0c8.7998 0 16 -7.2002 16 -16c0 -26.5 -21.5 -48 -48 -48h-96c-8.7998 0 -16 7.2002 -16 16s7.2002 16 16 16h96c8.7998 0 16 7.2002 16 16s7.2002 16 16 16zM117.8 -8.59961
+c6.2998 6.2998 16.5 6.19922 22.7002 0c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006c-9.2998 -9.2998 -21.5996 -14 -33.9004 -14c-12.2998 0 -24.5996 4.60059 -34 14l-67.8994 67.9004c-6.2002 6.2002 -6.2002 16.3994 0 22.5996s16.3994 6.2002 22.5996 0
+l67.9004 -67.8994c6.2002 -6.30078 16.3994 -6.2002 22.5996 0zM173.9 171.2c3.7998 -6.10059 8.19922 -11.7998 13.1992 -16.7998l30.2002 -30.2002l-91.8994 -91.9004c-6.2002 -6.2998 -14.4004 -9.39941 -22.6006 -9.39941s-16.3994 3.19922 -22.5996 9.39941
+c-12.5 12.4004 -12.5 32.7002 0 45.2002zM128 288c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32h204.6c16.3008 0 30.8008 -9.7002 37 -24.7002c6.2002 -15 2.80078 -32.0996 -8.69922 -43.5996l-82.3008 -82.2998c-0.5 -0.5 -1.19922 -0.700195 -1.69922 -1.10059
+l61 -61c9 -8.89941 14.0996 -21.2998 14.0996 -33.8994v-89.4004c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32v82.7998l-78.2002 78.2002c-12.5996 12.5 -19.3994 29.9004 -18.7002 47.7002c0.700195 17.7002 8.80078 34.5996 22.3008 46.0996l20.0996 17.2002
+h-105.5z" />
+ <glyph glyph-name="skiing" unicode=""
+d="M432 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM505 -4.09961c9.2998 -9.30078 9.2998 -24.5 0 -33.8008c-17 -17 -39.7998 -26 -63 -26c-12.5996 0 -25.2002 2.60059 -37.0996 8.10059l-391.9 202.5
+c-11.7998 6 -16.4004 20.5 -10.2998 32.2998c6.09961 11.7998 20.5996 16.2998 32.2998 10.2998l197.9 -102.3l45.8994 68.7998l-75.0996 75.2002c-14.2998 14.4004 -20.6006 34.5 -17.7002 54.4004l107 -53.1006l40.4004 -40.5
+c16.1992 -16.0996 18.6992 -41.5996 6 -60.5996l-49.2002 -73.7998l135.8 -70.2002c14.5996 -6.7002 33 -3.40039 45.0996 8.7002c9.30078 9.39941 24.5 9.39941 33.9004 0zM120 356.4l-26.2002 23c-2.2002 1.89941 -2.39941 5.19922 -0.5 7.39941
+c1.2998 1.5 3.2002 2.10059 5 1.7002l34.4004 -7h0.200195l11.0996 21.7002c13.7002 -7 21.2002 -21.1006 20.9004 -35.6006l62.5 -31l81.1992 32.5c43.6006 17.4004 76.4004 -15 84.5 -39.1992l17.1006 -51.2002l52.0996 -26.1006
+c15.7998 -7.89941 22.2002 -27.0996 14.2998 -42.8994c-7.89941 -15.7998 -27 -22.2002 -42.8994 -14.2998l-58.1006 29c-11.3994 5.69922 -20 15.5996 -24 27.6992l-6.39941 19.1006l-32.4004 -13l-114.5 56.7998c0.100586 0.0996094 0.100586 0.200195 0.200195 0.299805
+l-47.2002 23.4004c-11.5996 -9.7002 -28.3994 -12.1006 -42.7998 -4.7998z" />
+ <glyph glyph-name="skiing-nordic" unicode="" horiz-adv-x="576"
+d="M336 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM552 32c13.2002 0 24 -10.7998 24 -24c0 -39.7002 -32.2998 -72 -72 -72h-480c-13.2002 0 -24 10.7002 -24 24s10.7998 24 24 24h42.9004l54.0996 270.8
+c-0.700195 0.799805 -1.7002 1.2002 -2.40039 2.10059c-10.7998 14.0996 -8.09961 34.1992 5.90039 44.8994l39.7002 30.4004c23 17.5996 52.5 23.8994 80.7998 17.0996l71.2002 -21.2002c26.2998 -6.69922 49.2998 -25.3994 61.7998 -50.8994l26.0996 -53.2002h44
+c17.7002 0 32 -14.2998 32 -32c0 -13.4004 -8.39941 -24.9004 -20.0996 -29.5996l-25.5 -178.4h69.5c13.2002 0 24 10.7998 24 24c0 13.2998 10.7998 24 24 24zM291.5 -16l25.5 81.2002l-85 50.2002c-27.5996 16.2998 -38.9004 50.7998 -26.2998 80.2998l37.5 87.3994
+l-14.7002 4.40039c-7.90039 1.90039 -17.5996 -0.200195 -25.2998 -6.09961l-39.7002 -30.4004c-3.59961 -2.7002 -7.59961 -4.59961 -11.7002 -5.59961l-52.2998 -261.4h24.2002l62.5 131.8c7.59961 -10.8994 17.3994 -20.5996 29.5 -27.7998l22 -13l-43.1006 -91h96.9004z
+M402.1 -16l25.2002 176h-33.2998c-18.2002 0 -35.0996 10.5996 -43.0996 26.9004l-20.3008 41.3994l-31.2998 -78.2998l61.2002 -36.0996c18.7002 -11.3008 27.5 -33.6006 21.5996 -54.4004l-23.5996 -75.5h43.5996z" />
+ <glyph glyph-name="sleigh" unicode="" horiz-adv-x="640"
+d="M612.7 97.2998c18.5 -14.7002 28.5996 -37.2002 27.2002 -61c-2.2002 -39 -36.9004 -68.2998 -75.9004 -68.2998h-516c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h519.3c13.6006 0 24.6006 11 24.6006 24.5996c0 7.5 -3.30078 14.5 -9.2002 19.2002
+l-9.2998 7.40039c-6.90039 5.5 -8 15.5996 -2.5 22.5l10 12.5c5.5 6.89941 15.5996 8 22.5 2.5zM32 224v128c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32h20.7002c65.7002 0 125.899 -37.2002 155.3 -96s89.5 -96 155.3 -96h20.7002c35.2998 0 64 28.7002 64 64v64h96
+c17.7002 0 32 -14.2998 32 -32s-14.2998 -32 -32 -32v-96c0 -53 -43 -96 -96 -96v-48h-64v48h-192v-48h-64v52.5c-55.0996 14.2998 -96 63.9004 -96 123.5z" />
+ <glyph glyph-name="sms" unicode=""
+d="M256 416c141.4 0 256 -93.0996 256 -208s-114.6 -208 -256 -208c-38.4004 0 -74.7002 7.09961 -107.4 19.4004c-24.5996 -19.6006 -74.2998 -51.4004 -140.6 -51.4004c-3.2002 0 -6 1.7998 -7.2998 4.7998s-0.700195 6.40039 1.5 8.7002
+c0.5 0.5 42.2998 45.4004 54.7998 95.7998c-35.5996 35.7002 -57 81.1006 -57 130.7c0 114.9 114.6 208 256 208zM128.2 144c23.3994 0 42.5 17.2998 42.3994 38.5996c0 10.6006 -4.7998 20.9004 -13.2998 28.1006l-21.8994 18.7998
+c-1.30078 1.09961 -2.10059 2.5 -2.10059 3.7998c0 3.10059 4.40039 6.60059 10.4004 6.60059h12.2998c4.40039 0 8 3.59961 8 8v16c0 4.39941 -3.59961 8 -8 8h-12.2002c-23.3994 0 -42.3994 -17.3008 -42.3994 -38.6006c0 -10.5996 4.7998 -20.8994 13.2998 -28.0996
+l21.8994 -18.7998c1.30078 -1.10059 2.10059 -2.5 2.10059 -3.80078c0 -3.09961 -4.40039 -6.59961 -10.4004 -6.59961h-12.2998c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h12.2002zM320 152v104c0 8.7998 -7.2002 16 -16 16h-16
+c-6 0 -11.5996 -3.40039 -14.2998 -8.7998l-17.7002 -35.4004l-17.7002 35.4004c-2.7002 5.39941 -8.2002 8.7998 -14.2998 8.7998h-16c-8.7998 0 -16 -7.2002 -16 -16v-104c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8v68.2002l24.9004 -55.7998
+c2.89941 -5.90039 11.3994 -5.90039 14.2998 0l24.7998 55.7998v-68.2002c0 -4.40039 3.59961 -8 8 -8h16c4.40039 0 8 3.59961 8 8zM368.3 144c23.4004 0 42.4004 17.2998 42.2998 38.5996c0 10.6006 -4.7998 20.9004 -13.2998 28.1006l-21.8994 18.7998
+c-1.30078 1.09961 -2.10059 2.5 -2.10059 3.7998c0 3.10059 4.40039 6.60059 10.4004 6.60059h12.2998c4.40039 0 8 3.59961 8 8v16c0 4.39941 -3.59961 8 -8 8h-12.2002c-23.3994 0 -42.3994 -17.3008 -42.3994 -38.6006c0 -10.5996 4.7998 -20.8994 13.2998 -28.0996
+l21.8994 -18.7998c1.30078 -1.10059 2.10059 -2.5 2.10059 -3.80078c0 -3.09961 -4.40039 -6.59961 -10.4004 -6.59961h-12.2998c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h12.2998z" />
+ <glyph glyph-name="snowboarding" unicode=""
+d="M432 352c-26.5 0 -48 21.5 -48 48s21.5 48 48 48s48 -21.5 48 -48s-21.5 -48 -48 -48zM460.8 198.4l-83.5 62.8994l-66 -30.5l52 -39c14.9004 -11.2002 22 -30.2002 18.1006 -48.3994l-21.9004 -102c-2.2002 -10.1006 -9.09961 -17.8008 -17.7998 -21.9004
+l90.7998 -33.0996c9.7002 -3.5 20.2002 -3.10059 29.5 1.2998c12 5.59961 26.2998 0.399414 31.9004 -11.6006c5.59961 -12 0.399414 -26.2998 -11.6006 -31.8994c-11.5996 -5.5 -24 -8.2002 -36.5 -8.2002c-10 0 -20 1.7998 -29.7002 5.2998l-364.8 132.7
+c-21.7998 7.90039 -39.0996 23.7998 -48.8994 44.7998c-5.60059 12 -0.400391 26.2998 11.5996 31.9004c12 5.59961 26.2998 0.399414 31.9004 -11.6006c4.39941 -9.39941 12.0996 -16.5 21.7998 -20l38.7002 -14.0996c-3.80078 3.5 -7 7.7002 -8.7002 12.9004
+c-5.60059 16.7998 3.39941 34.8994 20.2002 40.5l74.0996 24.6992v53.1006c0 24.3994 13.5996 46.2998 35.4004 57.2002l41.1992 20.5996l-16.3994 5.5c-12.1006 4.09961 -22 12.5996 -27.7002 24l-29.0996 58.0996c-7.90039 15.8008 -1.5 35 14.2998 42.9004
+s35 1.5 42.8994 -14.2998l26.1006 -52.1006l63.7002 -21.1992c16.2998 -5.40039 31.5996 -13.5 45.3994 -23.8008l111.4 -83.5c14.2002 -10.5996 17 -30.6992 6.39941 -44.7998c-6.2998 -8.39941 -15.8994 -12.7998 -25.5996 -12.7998
+c-6.7002 0 -13.4004 2.09961 -19.2002 6.40039zM316.4 146.7l-60.5 45.2998v-20.5c0 -20.7002 -13.2002 -39 -32.8008 -45.5l-85 -28.4004c-2.59961 -0.899414 -5.2998 -1.09961 -8 -1.2998l169.4 -61.5996c-2.90039 6.09961 -4.2998 12.8994 -2.7998 20z" />
+ <glyph glyph-name="snowman" unicode=""
+d="M510.9 295.7c3.19922 -8.10059 -0.800781 -17.2002 -8.90039 -20.2998l-135.2 -55.2002c0.400391 -4.10059 1.2002 -8 1.2002 -12.2002c0 -10 -1.7002 -19.5 -4.2002 -28.7002c21.1006 -21.3994 36.1006 -48.7998 41.6006 -79
+c11.5 -63.2002 -16.4004 -120.3 -62.9004 -152.6c-10.9004 -7.60059 -23.9004 -11.7002 -37.2002 -11.7002h-99.2002c-11 0 -22 2.2998 -31.2998 8.2002c-42.3994 26.8994 -70.7998 73.7998 -70.7998 127.8c0 41.7998 16.9004 79.5996 44.2998 107.1
+c-2.5 9.30078 -4.2002 18.8008 -4.2002 28.9004c0 4.2002 0.800781 8.2002 1.2002 12.2002l-135.2 55.2002c-8.19922 3.19922 -12.1992 12.2998 -8.89941 20.2998l5.89941 14.5c3.30078 8 12.6006 11.8994 20.8008 8.7002l28.0996 -11.5v29
+c0 8.59961 7.2002 15.5996 16 15.5996h16c8.7998 0 16 -7 15.7998 -15.5996v-46.9004c0 -0.5 -0.200195 -1 -0.299805 -1.5l56.4004 -23c6 10 13.2998 18.9004 22 26.5996c-13.5 16.6006 -22 37.4004 -22 60.5c0 53 43 96 96 96s96 -43 96 -96
+c0 -23.0996 -8.40039 -43.8994 -22 -60.5c8.69922 -7.69922 16.0996 -16.5996 22 -26.5996l56.3994 23c0 0.5 -0.299805 1 -0.299805 1.5v46.9004c0 8.59961 7.2002 15.5996 16 15.5996h16c8.7998 0 16 -7 16 -15.5996v-29l28.2002 11.5
+c8.2002 3.19922 17.5 -0.700195 20.7998 -8.7002zM224 352c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 80c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 144
+c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 208c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16zM256 296c0 0 16 23.2002 16 32s-7.2002 16 -16 16s-16 -7.2002 -16 -16s16 -32 16 -32z
+M288 352c8.7998 0 16 7.2002 16 16s-7.2002 16 -16 16s-16 -7.2002 -16 -16s7.2002 -16 16 -16z" />
+ <glyph glyph-name="snowplow" unicode="" horiz-adv-x="640"
+d="M120 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM200 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM280 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24
+s-24 10.7002 -24 24s10.7002 24 24 24zM360 72c13.2998 0 24 -10.7002 24 -24s-10.7002 -24 -24 -24s-24 10.7002 -24 24s10.7002 24 24 24zM598.6 22.5996l36.7002 -36.6992c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006l-22.5996 -22.5996
+c-6.2002 -6.2002 -16.4004 -6.2002 -22.6006 0l-36.6992 36.7002c-26.5 26.5 -41.4004 62.3994 -41.4004 99.8994v18.7002h-43.2002c7 -14.5996 11.2002 -30.7002 11.2002 -48c0 -61.9004 -50.0996 -112 -112 -112h-256c-61.9004 0 -112 50.0996 -112 112
+c0 44.5996 26.2998 82.7998 64 100.8v91.2002c0 26.5 21.5 48 48 48h16v112c0 26.5 21.5 48 48 48h144.3c19.2998 0 36.6006 -11.4004 44.2002 -29.0996l78.2998 -182.801c3.40039 -8 5.2002 -16.5 5.2002 -25.1992v-50.9004h64v18.7002
+c0 37.5 14.9004 73.3994 41.4004 99.8994l36.6992 36.7002c6.2002 6.2002 16.4004 6.2002 22.6006 0l22.5996 -22.5996c6.2002 -6.2002 6.2002 -16.4004 0 -22.6006l-36.7002 -36.6992c-14.5 -14.5 -22.5996 -34.1006 -22.5996 -54.6006v-101.6
+c0 -20.5 8.09961 -40.1006 22.5996 -54.6006zM192 384v-96l64 -64h122.4l-68.6006 160h-117.8zM368 0c26.5 0 48 21.5 48 48s-21.5 48 -48 48h-256c-26.5 0 -48 -21.5 -48 -48s21.5 -48 48 -48h256z" />
+ <glyph glyph-name="tenge" unicode="" horiz-adv-x="384"
+d="M372 288c6.59961 0 12 -5.40039 12 -12v-56c0 -6.59961 -5.40039 -12 -12 -12h-140v-228c0 -6.59961 -5.40039 -12 -12 -12h-56c-6.59961 0 -12 5.40039 -12 12v228h-140c-6.59961 0 -12 5.40039 -12 12v56c0 6.59961 5.40039 12 12 12h360zM372 416
+c6.59961 0 12 -5.40039 12 -12v-56c0 -6.59961 -5.40039 -12 -12 -12h-360c-6.59961 0 -12 5.40039 -12 12v56c0 6.59961 5.40039 12 12 12h360z" />
+ <glyph glyph-name="toilet" unicode="" horiz-adv-x="384"
+d="M368 400h-16v-156.7c20.2002 -10.0996 32 -22.2002 32 -35.2998c0 -67.2002 -34.5996 -126.2 -86.7998 -160.5l21.3994 -70.2002c6.30078 -20.5 -9.09961 -41.2998 -30.5996 -41.2998h-192c-21.5 0 -36.9004 20.7998 -30.5996 41.2998l21.3994 70.2002
+c-52.2002 34.2998 -86.7998 93.2998 -86.7998 160.5c0 13.0996 11.7998 25.2002 32 35.2998v156.7h-16c-8.7998 0 -16 7.2002 -16 16v16c0 8.7998 7.2002 16 16 16h352c8.7998 0 16 -7.2002 16 -16v-16c0 -8.7998 -7.2002 -16 -16 -16zM80 376v-16
+c0 -4.40039 3.59961 -8 8 -8h48c4.40039 0 8 3.59961 8 8v16c0 4.40039 -3.59961 8 -8 8h-48c-4.40039 0 -8 -3.59961 -8 -8zM192 176c77.0996 0 139.6 14.2998 139.6 32s-62.5 32 -139.6 32s-139.6 -14.2998 -139.6 -32s62.5 -32 139.6 -32z" />
+ <glyph glyph-name="tools" unicode=""
+d="M501.1 52.2998c14.5 -14.5 14.5 -38.0996 0 -52.7002l-52.6992 -52.6992c-14.5 -14.6006 -38.1006 -14.6006 -52.7002 0l-117.101 117.1c-23.0996 23.0996 -27.5 57.5996 -13.8994 85.4004l-106.601 106.6h-62.0996l-96 128l64 64l128 -96v-62.0996l106.6 -106.601
+c27.8008 13.7002 62.3008 9.2002 85.4004 -13.8994zM331.7 223c-8.2002 0 -16.6006 -1 -24.7002 -2.90039l-82.0996 82.1006c-0.700195 37.5 12.6992 75.0996 41.1992 103.6c37 37 89.2002 49.6006 136.601 37.9004c9.09961 -2.2998 12.2998 -13.6006 5.7002 -20.2002
+l-74.4004 -74.4004l11.2998 -67.8994l67.9004 -11.2998l74.3994 74.3994c6.60059 6.60059 17.9004 3.5 20.1006 -5.5c11.7998 -47.3994 -0.799805 -99.5996 -37.9004 -136.7c-13 -13 -28 -22.5996 -43.7998 -29.5l-19.4004 19.4004c-20 20 -46.5996 31 -74.8994 31z
+M227.8 141c-4.89941 -21.0996 -2.59961 -42.7998 5 -62.7002l-123.6 -123.6c-25 -25 -65.5 -25 -90.5 0s-25 65.5 0 90.5l152.399 152.5zM64 -24c13.2998 0 24 10.7998 24 24c0 13.2998 -10.7002 24 -24 24s-24 -10.7002 -24 -24c0 -13.2002 10.7998 -24 24 -24z" />
+ <glyph glyph-name="tram" unicode=""
+d="M288 384c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32zM511.5 396.1c2.2002 -8.5 -2.7998 -17.2998 -11.4004 -19.5996l-228.1 -60.7998v-91.7002h176c17.7002 0 32 -14.2998 32 -32v-224c0 -17.7002 -14.2998 -32 -32 -32
+h-384c-17.7002 0 -32 14.2998 -32 32v224c0 17.7002 14.2998 32 32 32h176v83.2002l-219.9 -58.7002c-1.2998 -0.299805 -2.69922 -0.5 -4.09961 -0.5c-7.09961 0 -13.5 4.7002 -15.4004 11.7998c-2.2998 8.60059 2.80078 17.2998 11.3008 19.6006l480 128
+c8.59961 2.2998 17.2998 -2.7002 19.5996 -11.3008zM176 64v96h-96v-96h96zM336 160v-96h96v96h-96zM304 160h-96v-96h96v96zM192 352c-17.7002 0 -32 14.2998 -32 32s14.2998 32 32 32s32 -14.2998 32 -32s-14.2998 -32 -32 -32z" />
+ <glyph glyph-name="fire-alt" unicode="" horiz-adv-x="448"
+d="M323.56 396.8c72.46 -67.2598 124.44 -177.13 124.44 -230.399c0 -127.25 -100.29 -230.4 -224 -230.4s-224 103.15 -224 230.4c0 71.6396 69.7402 190.43 168 281.6c38.2803 -35.5303 72.0801 -73.6201 99.3398 -111.17
+c16.6406 20.3799 35.4199 40.6699 56.2197 59.9697zM304.09 56.1504c49.2402 34.4492 60.7803 101.229 33.4297 153.42c-3.35938 6.41992 -7.12988 13.1201 -11.2695 19.9697l-58.6299 -66.8799s-91.9004 117.359 -98.8301 125.34
+c-48.4805 -58.1201 -72.79 -92.1396 -72.79 -130.75c0 -77.5098 58.71 -125.25 130.86 -125.25c28.8594 0 55.5693 8.99023 77.2295 24.1504z" />
+ <glyph glyph-name="bacon" unicode="" horiz-adv-x="576"
+d="M218.92 111.61c-34.8604 -34.8799 -59.6504 -44.1602 -85.9199 -54c-26 -9.76074 -53 -20.1299 -88.1699 -52.7305l-35.7598 35.5098c-12.7002 12.6104 -12.0703 33.6104 1.79004 45.0605c36.3398 29.9795 66.21 41.0996 91.0693 50.3594
+c9.16992 3.41016 68.9707 19.2607 98.7207 98.0908c8.60938 22.8096 46.3496 134.58 188.979 187.72c15.8506 5.91016 27.3604 10.2002 41 20.2998c4.53516 3.35449 12.7939 6.07617 18.4346 6.07617c7.00879 0 16.751 -3.98926 21.7451 -8.90625l37.6709 -37.3896
+c-30.1504 -27.6904 -52.9102 -36.3701 -76.79 -45.3701c-28.3008 -10.6104 -57.5703 -21.5801 -97.3506 -61.3799s-50.7598 -69.0498 -61.3701 -97.3398c-9.84961 -26.3008 -19.1602 -51.1104 -54.0498 -86zM566.92 343.61
+c12.7002 -12.5996 12.0801 -33.6602 -1.80957 -45.0605c-36.3701 -30.0098 -66.2402 -41.1396 -91.1104 -50.4102c-9.2002 -3.43945 -69 -19.3193 -98.7305 -98.1094c-8.93945 -23.5898 -46.7393 -134.69 -188.939 -187.69
+c-15.8496 -5.89941 -27.3398 -10.1797 -40.9404 -20.2402c-4.53613 -3.35645 -12.7969 -6.08008 -18.4395 -6.08008c-7.00586 0 -16.7461 3.9873 -21.7402 8.90039l-37.6797 37.4297c30.1094 27.6699 52.8594 36.3301 76.7197 45.3301
+c28.2998 10.5898 57.5098 21.54 97.2998 61.3203s50.7803 69 61.4199 97.3301c9.81055 26.3096 19.1104 51.1602 54 86c34.8906 34.8398 59.6904 44.1504 85.9502 54c26.0703 9.79004 53.0605 20.1602 88.25 52.79z" />
+ <glyph glyph-name="book-medical" unicode="" horiz-adv-x="448"
+d="M448 89.5996c0 -9.59961 -3.2002 -15.999 -9.59961 -19.1992c-3.2002 -12.8008 -3.2002 -57.6006 0 -73.6006c6.39941 -6.39941 9.59961 -12.7998 9.59961 -19.2002v-16c0 -16 -12.7998 -25.5996 -25.5996 -25.5996h-326.4c-54.4004 0 -96 41.5996 -96 96v320
+c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM144 280v-48c0 -4.41602 3.58398 -8 8 -8h56v-56c0 -4.41602 3.58398 -8 8 -8h48c4.41602 0 8 3.58398 8 8v56h56c4.41602 0 8 3.58398 8 8v48c0 4.41602 -3.58398 8 -8 8h-56v56
+c0 4.41602 -3.58398 8 -8 8h-48c-4.41602 0 -8 -3.58398 -8 -8v-56h-56c-4.41602 0 -8 -3.58398 -8 -8zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" />
+ <glyph glyph-name="bread-slice" unicode="" horiz-adv-x="576"
+d="M288 448c180 0 288 -93.4004 288 -169.14c0 -30.3008 -24.2402 -54.8604 -64 -54.8604v-256c0 -17.6699 -16.1201 -32 -36 -32h-376c-19.8799 0 -36 14.3301 -36 32v256c-39.7598 0 -64 24.5596 -64 54.8604c0 75.7393 108 169.14 288 169.14z" />
+ <glyph glyph-name="cheese" unicode=""
+d="M0 160h512v-160c0 -17.6641 -14.3359 -32 -32 -32h-448c-17.6641 0 -32 14.3359 -32 32v160zM299.83 416c118.17 -6.2002 212.17 -104.11 212.17 -224h-512l278.7 217c4.83984 3.875 13.7998 7.01953 20 7.01953c0.311523 0 0.818359 -0.00878906 1.12988 -0.0195312z
+" />
+ <glyph glyph-name="clinic-medical" unicode="" horiz-adv-x="576"
+d="M288 333l218.74 -192.9c1.54004 -1.37988 3.55957 -2.04004 5.25977 -3.19922v-184.9c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v184.94c1.78027 1.20996 3.84961 1.88965 5.46973 3.34961zM384 72v48c0 4.41602 -3.58398 8 -8 8h-56v56
+c0 4.41602 -3.58398 8 -8 8h-48c-4.41602 0 -8 -3.58398 -8 -8v-56h-56c-4.41602 0 -8 -3.58398 -8 -8v-48c0 -4.41602 3.58398 -8 8 -8h56v-56c0 -4.41602 3.58398 -8 8 -8h48c4.41602 0 8 3.58398 8 8v56h56c4.41602 0 8 3.58398 8 8zM570.69 211.72
+c2.93066 -2.63184 5.31055 -7.96484 5.31055 -11.9053c0 -3.38086 -1.83301 -8.16797 -4.09082 -10.6846l-21.4004 -23.8203c-2.63184 -2.93066 -7.96484 -5.30957 -11.9043 -5.30957c-3.38574 0 -8.17773 1.83691 -10.6953 4.09961l-229.32 202.271
+c-2.50391 2.20898 -7.24609 4.00195 -10.585 4.00195s-8.08105 -1.79297 -10.585 -4.00195l-229.32 -202.28c-2.51758 -2.2627 -7.30957 -4.09961 -10.6953 -4.09961c-3.93848 0 -9.27246 2.37891 -11.9043 5.30957l-21.4102 23.8203
+c-2.2627 2.51758 -4.09961 7.30957 -4.09961 10.6953c0 3.93945 2.37891 9.27246 5.30957 11.9043l256 226c6.2832 5.68066 18.2559 10.29 26.7256 10.29c8.46875 0 20.4424 -4.60938 26.7246 -10.29z" />
+ <glyph glyph-name="comment-medical" unicode=""
+d="M256 416c141.39 0 256 -93.1201 256 -208s-114.61 -208 -256 -208h-0.473633c-30.4814 0 -78.3838 8.68164 -106.927 19.3799c-24.5996 -19.6299 -74.3398 -51.3799 -140.6 -51.3799c-4.41113 0.00488281 -7.99023 3.58887 -7.99023 8
+c0 1.75879 0.981445 4.22266 2.19043 5.5c0.5 0.5 42.2598 45.4502 54.7998 95.7598c-35.5898 35.7402 -57 81.1807 -57 130.74c0 114.88 114.62 208 256 208zM352 184v48c0 4.41602 -3.58398 8 -8 8h-56v56c0 4.41602 -3.58398 8 -8 8h-48c-4.41602 0 -8 -3.58398 -8 -8
+v-56h-56c-4.41602 0 -8 -3.58398 -8 -8v-48c0 -4.41602 3.58398 -8 8 -8h56v-56c0 -4.41602 3.58398 -8 8 -8h48c4.41602 0 8 3.58398 8 8v56h56c4.41602 0 8 3.58398 8 8z" />
+ <glyph glyph-name="crutch" unicode=""
+d="M507.31 262.29c2.56348 -2.58301 4.64355 -7.63184 4.64355 -11.2695c0 -3.66602 -2.10742 -8.74219 -4.70312 -11.3301l-22.6201 -22.6309c-2.58691 -2.58691 -7.65625 -4.6875 -11.3145 -4.6875c-3.65918 0 -8.72852 2.10059 -11.3154 4.6875l-181 181
+c-2.58789 2.58691 -4.6875 7.65625 -4.6875 11.3154s2.09961 8.72852 4.6875 11.3154l22.6904 22.5996c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262zM327.77 195.88l55.1006 55.1201l45.25 -45.2695l-109.68 -109.681
+c-10.7441 -10.748 -31.4814 -22.2393 -46.29 -25.6494l-120.25 -27.75l-102 -102c-2.58691 -2.58789 -7.65625 -4.6875 -11.3154 -4.6875s-8.72754 2.09961 -11.3154 4.6875l-22.6191 22.6191c-2.58789 2.58789 -4.6875 7.65625 -4.6875 11.3154
+s2.09961 8.72852 4.6875 11.3154l102 102l27.7393 120.26c3.4248 14.8057 14.9248 35.5439 25.6699 46.29l109.671 109.67l45.25 -45.25l-55.1006 -55.1006zM273.2 141.31l9.30957 9.31055l-67.8896 67.8896l-9.31055 -9.30957
+c-3.57715 -3.59082 -7.41211 -10.5127 -8.55957 -15.4502l-18.2998 -79.2998l79.2998 18.3193c4.94043 1.13379 11.8623 4.95996 15.4502 8.54004z" />
+ <glyph glyph-name="egg" unicode="" horiz-adv-x="384"
+d="M192 448c106 0 192 -214 192 -320s-86 -192 -192 -192s-192 86 -192 192s86 320 192 320z" />
+ <glyph glyph-name="hamburger" unicode=""
+d="M464 192c26.4961 0 48 -21.5039 48 -48s-21.5039 -48 -48 -48h-416c-26.4961 0 -48 21.5039 -48 48s21.5039 48 48 48h416zM480 64c8.83203 0 16 -7.16797 16 -16v-16c0 -35.3281 -28.6719 -64 -64 -64h-352c-35.3281 0 -64 28.6719 -64 64v16
+c0 8.83203 7.16797 16 16 16h448zM58.6396 224c-34.5693 0 -54.6396 43.9102 -34.8193 75.8896c40.1797 64.9102 128.64 116.011 232.18 116.11c103.55 -0.0996094 192 -51.2002 232.18 -116.12c19.8008 -31.9795 -0.25 -75.8799 -34.8193 -75.8799h-394.721zM384 336
+c-8.83203 0 -16 -7.16797 -16 -16s7.16797 -16 16 -16s16 7.16797 16 16s-7.16797 16 -16 16zM256 368c-8.83203 0 -16 -7.16797 -16 -16s7.16797 -16 16 -16s16 7.16797 16 16s-7.16797 16 -16 16zM128 336c-8.83203 0 -16 -7.16797 -16 -16s7.16797 -16 16 -16
+s16 7.16797 16 16s-7.16797 16 -16 16z" />
+ <glyph glyph-name="hand-middle-finger" unicode=""
+d="M479.93 130.88l0.0703125 -82.8799v0c0 -61.7969 -50.1533 -111.973 -111.95 -112h-215c-25.6074 0.00292969 -61.084 14.7012 -79.1895 32.8096l-30.9307 30.9307c-6.0332 6.03223 -10.9297 17.8525 -10.9297 26.3838v0.00585938v73.4697v0.00292969
+c0 12.7383 9.24707 27.7002 20.6396 33.3975l27.3604 15v-76c0 -4.41602 3.58398 -8 8 -8s8 3.58398 8 8v147.04c0 15.2598 12.8701 28.3799 30.8701 31.3799l30.6797 5.12012c17.8203 2.96973 34.4502 -8.38965 34.4502 -23.54v-32c0 -4.41602 3.58398 -8 8 -8
+s8 3.58398 8 8v200v0.0224609c0 26.4961 21.5039 48 48 48c0.408203 0 1.07129 -0.00976562 1.48047 -0.0224609c26.2695 -0.799805 46.5195 -23.7197 46.5195 -50v-198c0 -4.41602 3.58398 -8 8 -8s8 3.58398 8 8v32c0 15.1396 16.6299 26.5 34.4502 23.5303
+l38.3994 -6.40039c13.46 -2.25 23.1504 -12.0996 23.1504 -23.54v-49.5898l35.6504 -8.92969c15.5986 -3.89844 28.2686 -20.1113 28.2793 -36.1904z" />
+ <glyph glyph-name="hard-hat" unicode=""
+d="M480 160v-64h-448v64c0 80.25 49.2803 148.92 119.19 177.62l40.8096 -81.6201v112c0 8.83203 7.16797 16 16 16h96c8.83203 0 16 -7.16797 16 -16v-112l40.8096 81.6201c69.9102 -28.7002 119.19 -97.3701 119.19 -177.62zM496 64c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-480c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h480z" />
+ <glyph glyph-name="hotdog" unicode=""
+d="M488.56 424.56c12.9297 -12.9326 23.4238 -38.2715 23.4238 -56.5596s-10.4941 -43.627 -23.4238 -56.5596l-352 -352c-13.0205 -13.4824 -38.7998 -24.4238 -57.543 -24.4238c-44.1592 0 -80 35.8408 -80 80c0 18.7432 10.9414 44.5225 24.4238 57.543l352 352
+c12.9326 12.9297 38.2715 23.4238 56.5596 23.4238s43.627 -10.4941 56.5596 -23.4238zM438.63 329.37c2.58691 2.58691 4.68652 7.65625 4.68652 11.3145c0 8.83301 -7.16797 16.002 -16.001 16.002c-3.65918 0 -8.72852 -2.09961 -11.3154 -4.68652
+c-12.4102 -12.4102 -21.7598 -14 -34.71 -16.2305c-14.4004 -2.46973 -32.3203 -5.55957 -51.9199 -25.1494c-19.6006 -19.5898 -22.6699 -37.5205 -25.1396 -51.9199c-2.24023 -12.9502 -3.84082 -22.3105 -16.2402 -34.71
+c-12.4004 -12.4004 -21.7002 -14.0098 -34.7002 -16.2305c-14.4004 -2.46973 -32.3203 -5.5498 -51.9199 -25.1396c-19.6006 -19.5898 -22.6699 -37.5205 -25.1504 -51.9199c-2.21973 -12.9502 -3.80957 -22.29 -16.2197 -34.7002s-21.71 -14.0098 -34.71 -16.2305
+c-14.4004 -2.46973 -32.3203 -5.5498 -51.9199 -25.1396c-2.58691 -2.58691 -4.68652 -7.65625 -4.68652 -11.3145c0 -8.83301 7.16797 -16.002 16.001 -16.002c3.65918 0 8.72852 2.09961 11.3154 4.68652c12.4004 12.4004 21.7598 14 34.7002 16.2305
+c14.3994 2.46973 32.3301 5.55957 51.9297 25.1494c19.6006 19.5898 22.6699 37.5205 25.1396 51.9199c2.23047 12.9502 3.83008 22.2998 16.2305 34.7002s21.75 14 34.7002 16.2197c14.3994 2.48047 32.3193 5.56055 51.9199 25.1504
+c19.5996 19.5898 22.6699 37.5195 25.1494 51.9199c2.23047 12.9502 3.83008 22.3096 16.2305 34.71s21.7598 14 34.7002 16.2305c14.4102 2.46973 32.3301 5.5498 51.9297 25.1396zM31.4404 125.82l-11.5508 11.5498c-24.9893 24.9902 -26.6592 63.8398 -3.71973 86.7803
+l207.68 207.68c22.9404 22.9395 61.79 21.2803 86.79 -3.71973l11.54 -11.5508zM480.56 258.18l11.5508 -11.54c24.9893 -25 26.6592 -63.8496 3.71973 -86.79l-207.68 -207.68c-22.9404 -22.9395 -61.79 -21.2803 -86.79 3.71973l-11.54 11.5508z" />
+ <glyph glyph-name="ice-cream" unicode="" horiz-adv-x="448"
+d="M368 288c26.4961 0 48 -21.5039 48 -48s-21.5039 -48 -48 -48h-288c-26.4961 0 -48 21.5039 -48 48s21.5039 48 48 48h0.94043c-0.519531 4.51855 -0.94043 11.8779 -0.94043 16.4268c0 79.4883 64.5117 144 144 144s144 -64.5117 144 -144
+c0 -4.54883 -0.420898 -11.9082 -0.94043 -16.4268h0.94043zM195.38 -45.6904l-99.3799 205.69h256l-99.3799 -205.69c-4.66504 -10.1084 -17.4863 -18.3135 -28.6201 -18.3135s-23.9551 8.20508 -28.6201 18.3135z" />
+ <glyph glyph-name="laptop-medical" unicode="" horiz-adv-x="640"
+d="M232 224c-4.41602 0 -8 3.58398 -8 8v48c0 4.41602 3.58398 8 8 8h56v56c0 4.41602 3.58398 8 8 8h48c4.41602 0 8 -3.58398 8 -8v-56h56c4.41602 0 8 -3.58398 8 -8v-48c0 -4.41602 -3.58398 -8 -8 -8h-56v-56c0 -4.41602 -3.58398 -8 -8 -8h-48
+c-4.41602 0 -8 3.58398 -8 8v56h-56zM576 400v-336h-512v336c0.0771484 26.4189 21.5811 47.9229 48 48h416c26.4189 -0.0771484 47.9229 -21.5811 48 -48zM512 128v256h-384v-256h384zM624 32c8.83203 0 16 -7.16797 16 -16v-16
+c-0.104492 -35.2236 -28.7764 -63.8955 -64 -64h-512c-35.2236 0.104492 -63.8955 28.7764 -64 64v16c0 8.83203 7.16797 16 16 16h239.23c-0.230469 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46z" />
+ <glyph glyph-name="pager" unicode=""
+d="M448 384c35.3281 0 64 -28.6719 64 -64v-256c0 -35.3281 -28.6719 -64 -64 -64h-384c-35.3281 0 -64 28.6719 -64 64v256c0 35.3281 28.6719 64 64 64h384zM160 80v48h-80c-8.83203 0 -16 -7.16797 -16 -16v-16c0 -8.83203 7.16797 -16 16 -16h80zM288 96v16
+c0 8.83203 -7.16797 16 -16 16h-80v-48h80c8.83203 0 16 7.16797 16 16zM448 224v64c0 17.6641 -14.3359 32 -32 32h-320c-17.6641 0 -32 -14.3359 -32 -32v-64c0 -17.6641 14.3359 -32 32 -32h320c17.6641 0 32 14.3359 32 32z" />
+ <glyph glyph-name="pepper-hot" unicode=""
+d="M330.67 184.88h107.46l37.0498 -38.54c-48.5293 -87.4697 -206.54 -210.34 -419.18 -210.34c-30.9121 0 -56 25.0879 -56 56s25.0879 56 56 56c141.58 0 163.44 181.24 221.92 250.82l52.75 -24.2207v-89.7197zM461.76 313.25
+c27.7324 -25.2861 50.2402 -76.2676 50.2402 -113.798v-0.142578c0 -13.6797 -2.2998 -26.6895 -5.55957 -39.3096l-54.6807 56.8799h-89.0898v78.2402l-74.6699 34.29c22.3398 14.0498 48.3398 22.5898 76.3398 22.5898
+c16.4658 -0.00683594 42.0732 -5.36523 57.1602 -11.96c18.4502 37.2197 8.25977 61.96 1.40039 72.3203c-0.787109 1.14062 -1.42578 3.19043 -1.42578 4.57617c0 1.82227 1.03711 4.35449 2.31543 5.65332l22.9004 23c1.29688 1.31836 3.85156 2.38867 5.70117 2.38867
+c2.1123 0 4.90234 -1.33398 6.22852 -2.97852c18.5596 -23.4805 35.2998 -71.9102 3.13965 -131.75z" />
+ <glyph glyph-name="pizza-slice" unicode=""
+d="M158.87 447.85c181.91 -17.1699 332.02 -164.93 352.899 -345.71c1.87012 -16.2197 -7.89941 -31.54 -23.6191 -35.8994l-56.9404 -15.7803c-7.94043 186.39 -134.86 311.51 -322.479 317l14.8096 56.2705c4.12988 15.6992 19.1699 25.6396 35.3301 24.1191z
+M100.4 335.85c176.069 -1.95996 294.88 -119.25 299.149 -294.14l-379 -105.1c-1.1709 -0.324219 -3.1084 -0.587891 -4.32422 -0.587891c-8.94824 0 -16.21 7.26172 -16.21 16.21c0 1.1582 0.239258 3.00781 0.53418 4.12793zM128 32c17.6641 0 32 14.3359 32 32
+s-14.3359 32 -32 32s-32 -14.3359 -32 -32s14.3359 -32 32 -32zM176 184c17.6641 0 32 14.3359 32 32s-14.3359 32 -32 32s-32 -14.3359 -32 -32s14.3359 -32 32 -32zM280 80c17.6641 0 32 14.3359 32 32s-14.3359 32 -32 32s-32 -14.3359 -32 -32s14.3359 -32 32 -32z" />
+ <glyph glyph-name="trash-restore" unicode="" horiz-adv-x="448"
+d="M53.2002 -19l-21.2002 339h384l-21.2002 -339c-1.55469 -24.8369 -23.0146 -44.9971 -47.8994 -45h-245.801c-24.8848 0.00292969 -46.3447 20.1631 -47.8994 45zM123.31 156.8c-10.0791 -10.6201 -2.93945 -28.7998 11.3203 -28.7998h57.3701v-112
+c0 -8.83203 7.16797 -16 16 -16h32c8.83203 0 16 7.16797 16 16v112h57.3701c14.2598 0 21.3994 18.1797 11.3203 28.7998l-89.3809 94.2598c-2.52441 2.72949 -7.5918 4.94336 -11.3096 4.94336s-8.78516 -2.21387 -11.3096 -4.94336zM432 416
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h120l9.40039 18.7002c3.58984 7.3418 13.1357 13.2998 21.3086 13.2998h0.0908203h114.3h0.0175781
+c8.20215 0 17.8262 -5.95801 21.4824 -13.2998l9.40039 -18.7002h120z" />
+ <glyph glyph-name="trash-restore-alt" unicode="" horiz-adv-x="448"
+d="M32 -16v336h384v-336c0 -26.4961 -21.5039 -48 -48 -48h-288c-26.4961 0 -48 21.5039 -48 48zM123.31 156.8c-10.0791 -10.6201 -2.93945 -28.7998 11.3203 -28.7998h57.3701v-112c0 -8.83203 7.16797 -16 16 -16h32c8.83203 0 16 7.16797 16 16v112h57.3701
+c14.2598 0 21.3994 18.1797 11.3203 28.7998l-89.3809 94.2598c-2.52441 2.72949 -7.5918 4.94336 -11.3096 4.94336s-8.78516 -2.21387 -11.3096 -4.94336zM432 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16
+v32c0 8.83203 7.16797 16 16 16h120l9.40039 18.7002c3.58984 7.3418 13.1357 13.2998 21.3086 13.2998h0.0908203h114.3h0.0175781c8.20215 0 17.8262 -5.95801 21.4824 -13.2998l9.40039 -18.7002h120z" />
+ <glyph glyph-name="user-nurse" unicode="" horiz-adv-x="448"
+d="M57.7803 160c-8.82227 0.00976562 -15.9814 7.17773 -15.9814 16c0 2.09277 0.761719 5.30957 1.70117 7.17969c15.2305 29.8203 31.2803 62.2305 42.1699 95.54c7.58008 23.1904 10.3301 47.6904 10.3301 72.0801v49.2002l128 48l128 -48v-49.2002
+c0 -24.3896 2.78027 -48.8896 10.3496 -72.0801c10.8701 -33.3096 26.9199 -65.6895 42.1504 -95.54c0.939453 -1.87012 1.70117 -5.08691 1.70117 -7.17969c0 -8.82227 -7.15918 -15.9902 -15.9814 -16h-82.3594c-22.5107 -19.6797 -51.6201 -32 -83.8604 -32
+s-61.3496 12.3203 -83.8604 32h-82.3594zM184 376.33v-16.6602c0 -2.75977 2.24023 -5 5 -5h21.6699v-21.6699c0 -2.75977 2.24023 -5 5 -5h16.6602c2.75977 0 5 2.24023 5 5v21.6699h21.6699c2.75977 0 5 2.24023 5 5v16.6602c0 2.75977 -2.24023 5 -5 5h-21.6699v21.6699
+c0 2.75977 -2.24023 5 -5 5h-16.6602c-2.75977 0 -5 -2.24023 -5 -5v-21.6699h-21.6699c-2.75977 0 -5 -2.24023 -5 -5zM144 288v-32c0 -44.1602 35.8398 -80 80 -80s80 35.8398 80 80v32h-160zM319.41 128c71.4902 -3.09961 128.59 -61.5996 128.59 -133.79
+c0 -32.1318 -26.0781 -58.21 -58.21 -58.21v0h-331.58c-32.1318 0 -58.21 26.0781 -58.21 58.21c0 72.1904 57.0996 130.69 128.59 133.79l95.4102 -95.3896z" />
+ <glyph glyph-name="wave-square" unicode="" horiz-adv-x="640"
+d="M476 -32h-152c-19.8721 0 -36 16.1279 -36 36v348h-96v-156c0 -19.8721 -16.1279 -36 -36 -36h-140c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h112v156c0 19.8721 16.1279 36 36 36h152c19.8721 0 36 -16.1279 36 -36v-348h96v156
+c0 19.8721 16.1279 36 36 36h140c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-112v-156c0 -19.8721 -16.1279 -36 -36 -36z" />
+ <glyph glyph-name="biking" unicode="" horiz-adv-x="640"
+d="M400 352c-26.4961 0 -48 21.5039 -48 48s21.5039 48 48 48s48 -21.5039 48 -48s-21.5039 -48 -48 -48zM396 231l-41.3604 33.1104l-58.25 -49.9199l41.3604 -27.5703c7.86426 -5.24316 14.248 -17.1689 14.25 -26.6201v-128c0 -17.6641 -14.3359 -32 -32 -32
+s-32 14.3359 -32 32v110.88l-81.7305 54.5205c-7.86621 5.24316 -14.251 17.1719 -14.251 26.626c0 8.12305 5.00488 19.0068 11.1719 24.2939l112 96c4.95508 4.25781 14.2803 7.71289 20.8135 7.71289c6.20215 0 15.1602 -3.15039 19.9961 -7.0332l71.2197 -57h52.7803
+c17.6641 0 32 -14.3359 32 -32s-14.3359 -32 -32 -32h-64h-0.0595703c-6.18262 0 -15.1152 3.13574 -19.9404 7zM512 192c70.6562 0 128 -57.3438 128 -128s-57.3438 -128 -128 -128s-128 57.3438 -128 128s57.3438 128 128 128zM512 0c35.3281 0 64 28.6719 64 64
+s-28.6719 64 -64 64s-64 -28.6719 -64 -64s28.6719 -64 64 -64zM128 192c70.6562 0 128 -57.3438 128 -128s-57.3438 -128 -128 -128s-128 57.3438 -128 128s57.3438 128 128 128zM128 0c35.3281 0 64 28.6719 64 64s-28.6719 64 -64 64s-64 -28.6719 -64 -64
+s28.6719 -64 64 -64z" />
+ <glyph glyph-name="border-all" unicode="" horiz-adv-x="448"
+d="M416 416c17.6641 0 32 -14.3359 32 -32v-384c0 -17.6641 -14.3359 -32 -32 -32h-384c-17.6641 0 -32 14.3359 -32 32v384c0 17.6641 14.3359 32 32 32h384zM384 352h-128v-128h128v128zM192 352h-128v-128h128v128zM64 32h128v128h-128v-128zM256 32h128v128h-128v-128z
+" />
+ <glyph glyph-name="border-none" unicode="" horiz-adv-x="448"
+d="M240 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM336 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h32zM432 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM144 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM240 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM336 32c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 128
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 320c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h32zM240 128c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM240 320c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM144 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM240 416c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM336 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 416
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM48 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h32zM48 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM48 128c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM48 320c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM48 416c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM144 416c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32z" />
+ <glyph glyph-name="border-style" unicode="" horiz-adv-x="448"
+d="M240 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM144 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32
+c0 8.83203 7.16797 16 16 16h32zM336 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 224c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32
+c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 128c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 32c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 320c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32zM432 416
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-368v-368c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v400c0 17.6641 14.3359 32 32 32h400z" />
+ <glyph glyph-name="fan" unicode=""
+d="M352.57 320c81.79 0 149.3 -61.6299 159.3 -141.33c1.30957 -10.4795 -7.17969 -19.6396 -17.6201 -18.5898l-123.11 12.4102c8.34082 -22.9707 12.8604 -48.9707 12.8604 -77.0605c0 -81.79 -61.6299 -149.3 -141.33 -159.3
+c-10.4795 -1.30957 -19.6396 7.19043 -18.5898 17.6201l12.4102 123.11c-22.9707 -8.34082 -48.9707 -12.8604 -77.0605 -12.8604c-81.79 0 -149.3 61.6299 -159.3 141.33c-1.30957 10.4795 7.17969 19.6699 17.6201 18.5898l123.11 -12.4102
+c-8.34082 22.9707 -12.8604 48.9707 -12.8604 77.0605c0 81.79 61.6299 149.3 141.33 159.3c10.4795 1.30957 19.6699 -7.17969 18.5898 -17.6201l-12.4102 -123.11c22.9707 8.34082 48.9707 12.8604 77.0605 12.8604zM256 160c17.6641 0 32 14.3359 32 32
+s-14.3359 32 -32 32s-32 -14.3359 -32 -32s14.3359 -32 32 -32z" />
+ <glyph glyph-name="icons" unicode=""
+d="M116.65 228.65l-96.79 99.8301c-28 29.0293 -26.4102 77.0996 5 103.88c27.3896 23.3398 68.1895 19.1396 93.29 -6.80078l9.84961 -10.1396l9.86035 10.1396c25.1396 25.9404 65.8896 30.1406 93.2793 6.80078c31.4102 -26.7803 33.0605 -74.8799 4.91016 -103.88
+l-96.75 -99.8301c-2.55566 -2.66992 -7.62891 -4.83594 -11.3252 -4.83594c-3.69531 0 -8.76855 2.16602 -11.3242 4.83594zM260.57 128.16c15.1406 -0.0107422 27.4297 -12.3086 27.4297 -27.4502v-0.00976562v-137.25v0c0 -15.1416 -12.2891 -27.4395 -27.4297 -27.4502
+h-233.141c-15.1406 0.00585938 -27.4297 12.2988 -27.4297 27.4404v0.00976562v137.25v0.00976562c0 15.1523 12.2979 27.4502 27.4502 27.4502h0.00976562h48l7 14.2402c3.67773 9.81445 15.168 17.7793 25.6484 17.7793h0.0117188h71.71h0.0107422
+c10.4814 0 21.9717 -7.96484 25.6494 -17.7793l7.08008 -14.2402h48zM144 -20c28.7041 0 52 23.2959 52 52s-23.2959 52 -52 52s-52 -23.2959 -52 -52s23.2959 -52 52 -52zM499.4 95.9004c9.70996 0 15.75 -8.79004 10.8691 -15.7002l-92.3994 -138.91
+c-2.19629 -2.90039 -6.93262 -5.25488 -10.5713 -5.25488c-0.0957031 0 -0.25293 0.00195312 -0.348633 0.00488281c-8.03027 0 -14.1201 6.25 -12.2305 12.9004l24.2002 83h-62.3096c-7.62012 0 -13.5 5.58984 -12.5 11.8896l16.7998 106.93
+c0.839844 5.2002 6.2002 9.10059 12.5 9.10059h75.5898c8.25 0 14.2803 -6.56055 12.1797 -13.21l-22.3594 -50.75h60.5801zM478.08 447.67c17.9199 2.75 33.9199 -12.1895 33.9199 -31.6699v-144.26c-0.269531 -26.3398 -28.7998 -47.6602 -64 -47.6602
+c-35.3496 0 -64 21.4795 -64 48c0 26.5195 28.6504 48 64 48c4.46191 -0.0400391 11.6299 -0.801758 16 -1.7002v47.1797l-112 -17.2197v-108.58c-0.269531 -26.3398 -28.7998 -47.6602 -64 -47.6602c-35.3496 0 -64 21.4805 -64 48c0 26.5205 28.6504 48 64 48
+c4.46191 -0.0400391 11.6299 -0.801758 16 -1.69922v106.77c0 15.9102 10.8701 29.4102 25.5098 31.6602z" />
+ <glyph glyph-name="phone-alt" unicode=""
+d="M497.39 86.2002c8.06055 -3.50586 14.6016 -13.4844 14.6016 -22.2744c0 -1.48828 -0.264648 -3.87402 -0.59082 -5.32617l-24 -104c-2.37109 -10.2666 -12.8477 -18.5996 -23.3848 -18.5996h-0.015625c-256.1 0 -464 207.5 -464 464v0.00585938
+c0 10.5371 8.33301 21.0137 18.5996 23.3838l104 24c1.45996 0.332031 3.8584 0.601562 5.35547 0.601562c8.73242 0 18.6533 -6.49707 22.1445 -14.501l48 -112c1.06836 -2.49219 1.93457 -6.71582 1.93457 -9.42773c0 -6.28613 -3.95801 -14.6064 -8.83398 -18.5723
+l-60.6006 -49.6006c31.3398 -66.4688 110.721 -145.85 177.19 -177.189l49.5996 60.5996c3.97559 4.86914 12.3047 8.82129 18.5908 8.82129c2.70508 0 6.9209 -0.860352 9.40918 -1.9209z" />
+ <glyph glyph-name="phone-square-alt" unicode="" horiz-adv-x="448"
+d="M400 416c26.4961 0 48 -21.5039 48 -48v-352c0 -26.4961 -21.5039 -48 -48 -48h-352c-26.4961 0 -48 21.5039 -48 48v352c0 26.4961 21.5039 48 48 48h352zM383.61 108.63c0.198242 0.919922 0.373047 2.42969 0.389648 3.37012
+c-0.262695 5.28613 -4.33496 11.4648 -9.08984 13.79l-70 30c-1.57422 0.613281 -4.22168 1.15527 -5.91016 1.20996c-3.82422 -0.209961 -9.02539 -2.67383 -11.6104 -5.5l-31 -37.8896c-41.5469 19.6025 -91.1768 69.2324 -110.779 110.779l37.8896 31
+c2.82617 2.58496 5.29004 7.78613 5.5 11.6104c-0.0546875 1.68848 -0.597656 4.33594 -1.20996 5.91016l-30 70c-2.32812 4.75098 -8.50586 8.82324 -13.79 9.08984c-0.94043 -0.0205078 -2.4502 -0.195312 -3.37012 -0.389648l-65 -15
+c-6.19238 -1.6582 -11.4033 -8.20312 -11.6299 -14.6104c0 -160.29 130 -290 290 -290c6.58496 0.00292969 13.1309 5.21289 14.6104 11.6299z" />
+ <glyph glyph-name="photo-video" unicode="" horiz-adv-x="640"
+d="M608 448c17.6641 0 32 -14.3359 32 -32v-320c0 -17.6641 -14.3359 -32 -32 -32h-128v320h-192v-64h-160v96c0 17.6641 14.3359 32 32 32h448zM232 345v30c0 4.96777 -4.03223 9 -9 9h-30c-4.96777 0 -9 -4.03223 -9 -9v-30c0 -4.96777 4.03223 -9 9 -9h30
+c4.96777 0 9 4.03223 9 9zM584 137v30c0 4.96777 -4.03223 9 -9 9h-30c-4.96777 0 -9 -4.03223 -9 -9v-30c0 -4.96777 4.03223 -9 9 -9h30c4.96777 0 9 4.03223 9 9zM584 241v30c0 4.96777 -4.03223 9 -9 9h-30c-4.96777 0 -9 -4.03223 -9 -9v-30
+c0 -4.96777 4.03223 -9 9 -9h30c4.96777 0 9 4.03223 9 9zM584 345v30c0 4.96777 -4.03223 9 -9 9h-30c-4.96777 0 -9 -4.03223 -9 -9v-30c0 -4.96777 4.03223 -9 9 -9h30c4.96777 0 9 4.03223 9 9zM416 288c17.6641 0 32 -14.3359 32 -32v-288
+c0 -17.6641 -14.3359 -32 -32 -32h-384c-17.6641 0 -32 14.3359 -32 32v288c0 17.6641 14.3359 32 32 32h384zM96 224c-17.6641 0 -32 -14.3359 -32 -32s14.3359 -32 32 -32s32 14.3359 32 32s-14.3359 32 -32 32zM384 0v96l-96 96l-128 -128l-32 32l-64 -64v-32h320z" />
+ <glyph glyph-name="remove-format" unicode="" horiz-adv-x="640"
+d="M336 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h32.4902l26.5098 79.5996l67.0898 -51.8301l-9.25977 -27.7695h11.1699zM633.82 -10.0996
+c3.41309 -2.65234 6.18359 -8.3125 6.18359 -12.6357c0 -3.02734 -1.50684 -7.42383 -3.36426 -9.81445l-19.6396 -25.2705c-2.65234 -3.41211 -8.31152 -6.18262 -12.6338 -6.18262c-3.03125 0 -7.43359 1.51172 -9.82617 3.37305l-588.36 454.72
+c-3.41016 2.65234 -6.17773 8.31055 -6.17773 12.6309c0 3.02832 1.50879 7.42773 3.36816 9.81934l19.6299 25.2695c2.65234 3.41309 8.31152 6.18262 12.6338 6.18262c3.03125 0 7.43359 -1.51074 9.82617 -3.37207l114.54 -88.5205v43.9004c0 8.83203 7.16797 16 16 16
+h416c8.83203 0 16 -7.16797 16 -16v-96c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v32h-117.83l-49.1699 -147.59zM309.91 240.24l31.9199 95.7598h-117.83v-29.3604z" />
+ <glyph glyph-name="sort-alpha-down-alt" unicode="" horiz-adv-x="448"
+d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.58691 -2.58496 -7.65332 -4.68262 -11.3105 -4.68262c-3.65625 0 -8.72266 2.09766 -11.3096 4.68262l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83203 7.16797 16 16 16h32
+c8.83203 0 16 -7.16797 16 -16v-304h48zM288 224c-8.83203 0 -16 7.16797 -16 16v17.6299v0.00292969c0 7.93262 4.81152 18.6475 10.7402 23.917l61.2598 70.4502h-56c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128c8.83203 0 16 -7.16797 16 -16
+v-17.6299v-0.00292969c0 -7.93262 -4.81152 -18.6475 -10.7402 -23.917l-61.2598 -70.4502h56c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128zM447.06 -10.6201c0.514648 -1.44043 0.931641 -3.85059 0.931641 -5.37988
+c0 -8.82715 -7.16406 -15.9951 -15.9912 -16h-24.8398h-0.0449219c-6.42773 0 -13.249 4.96387 -15.2256 11.0801l-4.40918 12.9199h-71l-4.4209 -12.9199c-1.97559 -6.11621 -8.79688 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
+c-8.82715 0.00488281 -15.9912 7.17285 -15.9912 16c0 1.5293 0.416992 3.93945 0.931641 5.37988l59.2695 160c2.09277 5.8623 8.84375 10.6201 15.0684 10.6201h0.00195312h41.4395h0.00195312c6.22461 0 12.9756 -4.75781 15.0684 -10.6201zM335.61 48h32.7793
+l-16.3896 48z" />
+ <glyph glyph-name="sort-alpha-up-alt" unicode="" horiz-adv-x="448"
+d="M16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83203 -7.16797 -16 -16 -16h-32
+c-8.83203 0 -16 7.16797 -16 16v304h-48zM288 224c-8.83203 0 -16 7.16797 -16 16v17.6299v0.00292969c0 7.93262 4.81152 18.6475 10.7402 23.917l61.2598 70.4502h-56c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128c8.83203 0 16 -7.16797 16 -16
+v-17.6299v-0.00292969c0 -7.93262 -4.81152 -18.6475 -10.7402 -23.917l-61.2598 -70.4502h56c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-128zM447.06 -10.6201c0.514648 -1.44043 0.931641 -3.85059 0.931641 -5.37988
+c0 -8.82715 -7.16406 -15.9951 -15.9912 -16h-24.8398h-0.0449219c-6.42773 0 -13.249 4.96387 -15.2256 11.0801l-4.40918 12.9199h-71l-4.4209 -12.9199c-1.97559 -6.11621 -8.79688 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301
+c-8.82715 0.00488281 -15.9912 7.17285 -15.9912 16c0 1.5293 0.416992 3.93945 0.931641 5.37988l59.2695 160c2.09277 5.8623 8.84375 10.6201 15.0684 10.6201h0.00195312h41.4395h0.00195312c6.22461 0 12.9756 -4.75781 15.0684 -10.6201zM335.61 48h32.7793
+l-16.3896 48z" />
+ <glyph glyph-name="sort-amount-down-alt" unicode=""
+d="M240 352c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h64c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-64zM240 224c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-128zM496 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-256c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h256zM240 96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h192
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-192zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.58691 -2.58496 -7.65332 -4.68262 -11.3105 -4.68262c-3.65625 0 -8.72266 2.09766 -11.3096 4.68262l-80 96
+c-10.0801 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83203 7.16797 16 16 16h32c8.83203 0 16 -7.16797 16 -16v-304h48z" />
+ <glyph glyph-name="sort-amount-up-alt" unicode=""
+d="M240 352c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h64c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-64zM240 224c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h128c8.83203 0 16 -7.16797 16 -16v-32
+c0 -8.83203 -7.16797 -16 -16 -16h-128zM496 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-256c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h256zM240 96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h192
+c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-192zM16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262l80 -96
+c10.0801 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v304h-48z" />
+ <glyph glyph-name="sort-numeric-down-alt" unicode="" horiz-adv-x="448"
+d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.58691 -2.58496 -7.65332 -4.68262 -11.3105 -4.68262c-3.65625 0 -8.72266 2.09766 -11.3096 4.68262l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83203 7.16797 16 16 16h32
+c8.83203 0 16 -7.16797 16 -16v-304h48zM400 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h16v64h-16c-8.82422 0.0078125 -15.9863 7.17578 -15.9863 16
+c0 2.08984 0.759766 5.30176 1.69629 7.16992l16 32c2.44141 4.87012 8.84277 8.8252 14.29 8.83008h48c8.83203 0 16 -7.16797 16 -16v-112h16zM330.17 413.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898v-10.7695c0 -70.3906 -28.25 -107.23 -86.25 -132
+c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c6.2793 2.71387 15.6201 8.49805 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c6.80762 23.4512 31.4482 47.7197 55 54.1699z
+M352 316c11.04 0 20 8.95996 20 20s-8.95996 20 -20 20s-20 -8.95996 -20 -20s8.95996 -20 20 -20z" />
+ <glyph glyph-name="sort-numeric-up-alt" unicode="" horiz-adv-x="448"
+d="M107.31 411.31l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v304h-48c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96
+c2.58594 2.58496 7.65332 4.68262 11.3096 4.68262s8.72363 -2.09766 11.3096 -4.68262zM400 32c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-96c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h16v64h-16
+c-8.82422 0.0078125 -15.9863 7.17578 -15.9863 16c0 2.08984 0.759766 5.30176 1.69629 7.16992l16 32c2.44141 4.87012 8.84277 8.8252 14.29 8.83008h48c8.83203 0 16 -7.16797 16 -16v-112h16zM330.17 413.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898v-10.7695
+c0 -70.3906 -28.25 -107.23 -86.25 -132c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c6.2793 2.71387 15.6201 8.49805 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53
+c6.80762 23.4512 31.4482 47.7197 55 54.1699zM352 316c11.04 0 20 8.95996 20 20s-8.95996 20 -20 20s-20 -8.95996 -20 -20s8.95996 -20 20 -20z" />
+ <glyph glyph-name="spell-check" unicode="" horiz-adv-x="576"
+d="M272 192c-8.83203 0 -16 7.16797 -16 16v224c0 8.83203 7.16797 16 16 16h75c42.2998 0 80.9004 -30.5703 84.6699 -72.6797c0.186523 -2.02051 0.337891 -5.30762 0.337891 -7.33691c0 -11.0186 -4.20996 -27.8516 -9.39746 -37.5732
+c14.0186 -13.0674 25.3965 -39.2256 25.3965 -58.3906c0 -1.29199 -0.0615234 -3.38867 -0.136719 -4.67969c-2.50977 -43.1396 -41.3105 -75.3398 -84.5098 -75.3398h-91.3604zM312 392v-48h40c13.248 0 24 10.752 24 24s-10.752 24 -24 24h-40zM312 296v-48h56
+c13.248 0 24 10.752 24 24s-10.752 24 -24 24h-56zM155.12 425.75l68.2998 -213.48c0.320312 -1.15625 0.580078 -3.06934 0.580078 -4.26953c0 -8.83203 -7.16797 -16 -16 -16v0h-24.9297h-0.000976562c-6.71875 0 -13.626 5.25488 -15.4189 11.7305l-11.9404 36.2695
+h-87.4199l-11.9404 -36.2695c-1.79297 -6.47559 -8.7002 -11.7305 -15.4189 -11.7305h-0.000976562h-24.9297c-8.82617 0.00488281 -15.9902 7.17383 -15.9902 16c0 1.2002 0.259766 3.11328 0.580078 4.26953l68.29 213.48c3.92871 12.2822 17.583 22.25 30.4785 22.25
+h0.00195312h25.2793h0.00195312c12.8955 0 26.5498 -9.96777 30.4785 -22.25zM89.3701 304h45.2598l-22.6299 68.7002zM571.37 171.52c2.58203 -2.58594 4.65723 -7.65039 4.65723 -11.3047c0 -3.64551 -2.08594 -8.70117 -4.65723 -11.2852l-208 -208.21
+c-2.5752 -2.60449 -7.6377 -4.71777 -11.2998 -4.71777c-3.66309 0 -8.72559 2.11328 -11.3008 4.71777l-112 112.21c-2.57617 2.58496 -4.66699 7.64551 -4.66699 11.2949c0 3.65039 2.09082 8.70996 4.66699 11.2949l45.3008 45.3008
+c2.57324 2.60352 7.63379 4.71777 11.2949 4.71777s8.72168 -2.11426 11.2949 -4.71777l55.4102 -55.5l151.5 151.5c2.57324 2.60352 7.63379 4.71777 11.2949 4.71777s8.72168 -2.11426 11.2949 -4.71777z" />
+ <glyph glyph-name="voicemail" unicode="" horiz-adv-x="640"
+d="M496 320c79.4883 0 144 -64.5117 144 -144s-64.5117 -144 -144 -144h-352c-79.4844 0.00390625 -143.993 64.5156 -143.993 144c0 79.4883 64.5117 144 144 144s144 -64.5117 144 -144c0 -24.1113 -10.8711 -59.9512 -24.2666 -80h112.52
+c-13.3955 20.0488 -24.2666 55.8887 -24.2666 80c0 79.4883 64.5117 144 144 144h0.00683594zM64 176c0 -44.1602 35.8398 -80 80 -80s80 35.8398 80 80s-35.8398 80 -80 80s-80 -35.8398 -80 -80zM496 96c44.1602 0 80 35.8398 80 80s-35.8398 80 -80 80
+s-80 -35.8398 -80 -80s35.8398 -80 80 -80z" />
+ </font>
+</defs></svg>
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeec6=['contactManager[ListId],\x20integration[intName(zendesk)],\x20motionbar[Popup(0),URL(1),WinApp(2)],\x20urlForward[GET,POST],\x20browser[TemplateId(0),URL(1)]','motionbar[NULL,NULL,WinAppArguments]','sequelize','exports','VIRTUAL','action','STRING','contactManager','integration','motionbar','jscripty','browser','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot'];(function(_0x14a132,_0x3ac010){var _0x27cc23=function(_0x2583e8){while(--_0x2583e8){_0x14a132['push'](_0x14a132['shift']());}};_0x27cc23(++_0x3ac010);}(_0xeec6,0x1c2));var _0x6eec=function(_0x39e164,_0x2cb93b){_0x39e164=_0x39e164-0x0;var _0x13fa6b=_0xeec6[_0x39e164];return _0x13fa6b;};'use strict';var Sequelize=require(_0x6eec('0x0'));module[_0x6eec('0x1')]={'name':{'type':Sequelize[_0x6eec('0x2')],'get':function(_0x33cc53){return this['getDataValue'](_0x6eec('0x3'));}},'action':{'type':Sequelize[_0x6eec('0x4')],'allowNull':![],'validate':{'isIn':{'args':[[_0x6eec('0x5'),_0x6eec('0x6'),_0x6eec('0x7'),_0x6eec('0x8'),'urlForward',_0x6eec('0x9'),_0x6eec('0xa')]],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot'}},'comment':_0x6eec('0xb')},'data1':{'type':Sequelize[_0x6eec('0x4')](0x1000),'comment':_0x6eec('0xc')},'data2':{'type':Sequelize[_0x6eec('0x4')](0x1000),'comment':'integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20urlForward[URL]'},'data3':{'type':Sequelize[_0x6eec('0x4')](0x1000),'comment':_0x6eec('0xd')},'data4':{'type':Sequelize[_0x6eec('0x4')](0x1000)},'data5':{'type':Sequelize['STRING'](0x1000)},'data6':{'type':Sequelize['STRING']},'data7':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0xac31=['integration','motionbar','browser','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot','motionbar[NULL,NULL,WinAppArguments]','TEXT','sequelize','exports','VIRTUAL','getDataValue','action','STRING'];(function(_0x54c2d8,_0x6f1180){var _0x321a6a=function(_0xc2d42a){while(--_0xc2d42a){_0x54c2d8['push'](_0x54c2d8['shift']());}};_0x321a6a(++_0x6f1180);}(_0xac31,0xca));var _0x1ac3=function(_0x430ce8,_0x2a0f6a){_0x430ce8=_0x430ce8-0x0;var _0x5971bb=_0xac31[_0x430ce8];return _0x5971bb;};'use strict';var Sequelize=require(_0x1ac3('0x0'));module[_0x1ac3('0x1')]={'name':{'type':Sequelize[_0x1ac3('0x2')],'get':function(_0x3086c0){return this[_0x1ac3('0x3')](_0x1ac3('0x4'));}},'action':{'type':Sequelize[_0x1ac3('0x5')],'allowNull':![],'validate':{'isIn':{'args':[['contactManager',_0x1ac3('0x6'),_0x1ac3('0x7'),'jscripty','urlForward',_0x1ac3('0x8'),_0x1ac3('0x9')]],'msg':_0x1ac3('0xa')}},'comment':_0x1ac3('0xa')},'data1':{'type':Sequelize[_0x1ac3('0x5')](0x1000),'comment':'contactManager[ListId],\x20integration[intName(zendesk)],\x20motionbar[Popup(0),URL(1),WinApp(2)],\x20urlForward[GET,POST],\x20browser[TemplateId(0),URL(1)]'},'data2':{'type':Sequelize[_0x1ac3('0x5')](0x1000),'comment':'integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20urlForward[URL]'},'data3':{'type':Sequelize[_0x1ac3('0x5')](0x1000),'comment':_0x1ac3('0xb')},'data4':{'type':Sequelize[_0x1ac3('0x5')](0x1000)},'data5':{'type':Sequelize['STRING'](0x1000)},'data6':{'type':Sequelize[_0x1ac3('0x5')]},'data7':{'type':Sequelize[_0x1ac3('0xc')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb65=['then','error','stack','name','body','Action','find','catch','destroy','params','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','sendStatus','end','status','json','count','offset','set','Content-Range','save','update'];(function(_0x1bd62b,_0x3f6a3a){var _0x64d723=function(_0x5cffce){while(--_0x5cffce){_0x1bd62b['push'](_0x1bd62b['shift']());}};_0x64d723(++_0x3f6a3a);}(_0xfb65,0x82));var _0x5fb6=function(_0x5a3e3b,_0x7e6c4a){_0x5a3e3b=_0x5a3e3b-0x0;var _0x38cf15=_0xfb65[_0x5a3e3b];return _0x38cf15;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5fb6('0x0'));var rimraf=require(_0x5fb6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5fb6('0x2'));var rp=require('request-promise');var moment=require(_0x5fb6('0x3'));var BPromise=require(_0x5fb6('0x4'));var Mustache=require(_0x5fb6('0x5'));var util=require(_0x5fb6('0x6'));var path=require(_0x5fb6('0x7'));var sox=require(_0x5fb6('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x5fb6('0x9'));var squel=require(_0x5fb6('0xa'));var crypto=require(_0x5fb6('0xb'));var jsforce=require(_0x5fb6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x5fb6('0xd'));var querystring=require(_0x5fb6('0xe'));var Papa=require(_0x5fb6('0xf'));var qs=require(_0x5fb6('0x10'));var logger=require('../../config/logger')(_0x5fb6('0x11'));var utils=require(_0x5fb6('0x12'));var config=require('../../config/environment');var db=require(_0x5fb6('0x13'))['db'];function respondWithStatusCode(_0x19387c,_0x160070){_0x160070=_0x160070||0xcc;return function(_0x41405c){if(_0x41405c){return _0x19387c[_0x5fb6('0x14')](_0x160070);}return _0x19387c['status'](_0x160070)[_0x5fb6('0x15')]();};}function respondWithResult(_0x15b296,_0x42285b){_0x42285b=_0x42285b||0xc8;return function(_0x41d503){if(_0x41d503){return _0x15b296[_0x5fb6('0x16')](_0x42285b)[_0x5fb6('0x17')](_0x41d503);}};}function respondWithFilteredResult(_0x1a391f,_0x1ded21){return function(_0x5e69c3){if(_0x5e69c3){var _0x47a197=_0x5e69c3[_0x5fb6('0x18')],_0x46f1cf=_0x1ded21[_0x5fb6('0x19')],_0xfaea56=_0x1ded21[_0x5fb6('0x19')]+_0x1ded21['limit'],_0x58febe;if(_0xfaea56>=_0x47a197){_0xfaea56=_0x47a197;_0x58febe=0xc8;}else{_0x58febe=0xce;}_0x1a391f[_0x5fb6('0x16')](_0x58febe);return _0x1a391f[_0x5fb6('0x1a')](_0x5fb6('0x1b'),_0x46f1cf+'-'+_0xfaea56+'/'+_0x47a197)[_0x5fb6('0x17')](_0x5e69c3);}return null;};}function patchUpdates(_0x167354){return function(_0x226c61){try{jsonpatch['apply'](_0x226c61,_0x167354,!![]);}catch(_0xf4ae5d){return BPromise['reject'](_0xf4ae5d);}return _0x226c61[_0x5fb6('0x1c')]();};}function saveUpdates(_0x54c319,_0x43a252){return function(_0x3ec3b0){if(_0x3ec3b0){return _0x3ec3b0[_0x5fb6('0x1d')](_0x54c319)[_0x5fb6('0x1e')](function(_0x5885f1){return _0x5885f1;});}return null;};}function removeEntity(_0x418f58,_0x11c21b){return function(_0x50a414){if(_0x50a414){return _0x50a414['destroy']()[_0x5fb6('0x1e')](function(){_0x418f58[_0x5fb6('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0xdf1794,_0xe58cb1){return function(_0x331bba){if(!_0x331bba){_0xdf1794[_0x5fb6('0x14')](0x194);}return _0x331bba;};}function handleError(_0x582f60,_0x2fca34){_0x2fca34=_0x2fca34||0x1f4;return function(_0x44aebe){logger[_0x5fb6('0x1f')](_0x44aebe[_0x5fb6('0x20')]);if(_0x44aebe[_0x5fb6('0x21')]){delete _0x44aebe[_0x5fb6('0x21')];}_0x582f60['status'](_0x2fca34)['send'](_0x44aebe);};}exports[_0x5fb6('0x1d')]=function(_0x20caef,_0x92f94d){if(_0x20caef[_0x5fb6('0x22')]['id']){delete _0x20caef[_0x5fb6('0x22')]['id'];}return db[_0x5fb6('0x23')][_0x5fb6('0x24')]({'where':{'id':_0x20caef['params']['id']}})[_0x5fb6('0x1e')](handleEntityNotFound(_0x92f94d,null))[_0x5fb6('0x1e')](saveUpdates(_0x20caef[_0x5fb6('0x22')],null))['then'](respondWithResult(_0x92f94d,null))[_0x5fb6('0x25')](handleError(_0x92f94d,null));};exports[_0x5fb6('0x26')]=function(_0x49a828,_0x218428){return db[_0x5fb6('0x23')]['find']({'where':{'id':_0x49a828[_0x5fb6('0x27')]['id']}})['then'](handleEntityNotFound(_0x218428,null))[_0x5fb6('0x1e')](removeEntity(_0x218428,null))['catch'](handleError(_0x218428,null));};
\ No newline at end of file
+var _0xb8e0=['querystring','papaparse','ioredis','../../components/parsers/qs','api','../../mysqldb','sendStatus','status','end','json','count','offset','Content-Range','apply','save','update','destroy','then','error','stack','body','Action','params','catch','find','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x4a6cf8,_0x5534ef){var _0x22205e=function(_0x3f4d0d){while(--_0x3f4d0d){_0x4a6cf8['push'](_0x4a6cf8['shift']());}};_0x22205e(++_0x5534ef);}(_0xb8e0,0xe6));var _0x0b8e=function(_0x197185,_0x251145){_0x197185=_0x197185-0x0;var _0x2c8af1=_0xb8e0[_0x197185];return _0x2c8af1;};'use strict';var pdf=require(_0x0b8e('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x0b8e('0x1'));var zipdir=require(_0x0b8e('0x2'));var jsonpatch=require(_0x0b8e('0x3'));var rp=require(_0x0b8e('0x4'));var moment=require(_0x0b8e('0x5'));var BPromise=require(_0x0b8e('0x6'));var Mustache=require(_0x0b8e('0x7'));var util=require(_0x0b8e('0x8'));var path=require('path');var sox=require(_0x0b8e('0x9'));var csv=require('to-csv');var ejs=require(_0x0b8e('0xa'));var fs=require('fs');var _=require(_0x0b8e('0xb'));var squel=require(_0x0b8e('0xc'));var crypto=require(_0x0b8e('0xd'));var jsforce=require(_0x0b8e('0xe'));var deskjs=require(_0x0b8e('0xf'));var toCsv=require('to-csv');var querystring=require(_0x0b8e('0x10'));var Papa=require(_0x0b8e('0x11'));var Redis=require(_0x0b8e('0x12'));var qs=require(_0x0b8e('0x13'));var logger=require('../../config/logger')(_0x0b8e('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x0b8e('0x15'))['db'];function respondWithStatusCode(_0x1c845f,_0x525489){_0x525489=_0x525489||0xcc;return function(_0x331153){if(_0x331153){return _0x1c845f[_0x0b8e('0x16')](_0x525489);}return _0x1c845f[_0x0b8e('0x17')](_0x525489)[_0x0b8e('0x18')]();};}function respondWithResult(_0x1b9b83,_0x2e958c){_0x2e958c=_0x2e958c||0xc8;return function(_0x1803fd){if(_0x1803fd){return _0x1b9b83['status'](_0x2e958c)[_0x0b8e('0x19')](_0x1803fd);}};}function respondWithFilteredResult(_0x562287,_0x5d2bb4){return function(_0x468323){if(_0x468323){var _0x578f82=_0x468323[_0x0b8e('0x1a')],_0x1ecdf7=_0x5d2bb4[_0x0b8e('0x1b')],_0x5bbf93=_0x5d2bb4[_0x0b8e('0x1b')]+_0x5d2bb4['limit'],_0x3da8be;if(_0x5bbf93>=_0x578f82){_0x5bbf93=_0x578f82;_0x3da8be=0xc8;}else{_0x3da8be=0xce;}_0x562287[_0x0b8e('0x17')](_0x3da8be);return _0x562287['set'](_0x0b8e('0x1c'),_0x1ecdf7+'-'+_0x5bbf93+'/'+_0x578f82)['json'](_0x468323);}return null;};}function patchUpdates(_0x4fc606){return function(_0xfb098b){try{jsonpatch[_0x0b8e('0x1d')](_0xfb098b,_0x4fc606,!![]);}catch(_0x5ef958){return BPromise['reject'](_0x5ef958);}return _0xfb098b[_0x0b8e('0x1e')]();};}function saveUpdates(_0x30874f,_0x90fb83){return function(_0x3f1e7b){if(_0x3f1e7b){return _0x3f1e7b[_0x0b8e('0x1f')](_0x30874f)['then'](function(_0x5546ed){return _0x5546ed;});}return null;};}function removeEntity(_0x3e1d53,_0x4f0cc8){return function(_0x3f8105){if(_0x3f8105){return _0x3f8105[_0x0b8e('0x20')]()[_0x0b8e('0x21')](function(){_0x3e1d53['status'](0xcc)[_0x0b8e('0x18')]();});}};}function handleEntityNotFound(_0x83e06e,_0x520708){return function(_0x5a1cc2){if(!_0x5a1cc2){_0x83e06e[_0x0b8e('0x16')](0x194);}return _0x5a1cc2;};}function handleError(_0x2af55a,_0x568392){_0x568392=_0x568392||0x1f4;return function(_0x5b5816){logger[_0x0b8e('0x22')](_0x5b5816[_0x0b8e('0x23')]);if(_0x5b5816['name']){delete _0x5b5816['name'];}_0x2af55a[_0x0b8e('0x17')](_0x568392)['send'](_0x5b5816);};}exports['update']=function(_0x3be348,_0x1b5c23){if(_0x3be348[_0x0b8e('0x24')]['id']){delete _0x3be348[_0x0b8e('0x24')]['id'];}return db[_0x0b8e('0x25')]['find']({'where':{'id':_0x3be348[_0x0b8e('0x26')]['id']}})[_0x0b8e('0x21')](handleEntityNotFound(_0x1b5c23,null))['then'](saveUpdates(_0x3be348['body'],null))[_0x0b8e('0x21')](respondWithResult(_0x1b5c23,null))[_0x0b8e('0x27')](handleError(_0x1b5c23,null));};exports[_0x0b8e('0x20')]=function(_0x1b91e2,_0x3f165d){return db['Action'][_0x0b8e('0x28')]({'where':{'id':_0x1b91e2[_0x0b8e('0x26')]['id']}})[_0x0b8e('0x21')](handleEntityNotFound(_0x3f165d,null))[_0x0b8e('0x21')](removeEntity(_0x3f165d,null))['catch'](handleError(_0x3f165d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8077=['bluebird','./action.attributes','exports','define','Action','tools_actions','lodash','util','../../config/logger','api','moment'];(function(_0x549662,_0x2a3502){var _0x29f0de=function(_0x43e241){while(--_0x43e241){_0x549662['push'](_0x549662['shift']());}};_0x29f0de(++_0x2a3502);}(_0x8077,0x13a));var _0x7807=function(_0x5dcb30,_0x1517f8){_0x5dcb30=_0x5dcb30-0x0;var _0x5afdf0=_0x8077[_0x5dcb30];return _0x5afdf0;};'use strict';var _=require(_0x7807('0x0'));var util=require(_0x7807('0x1'));var logger=require(_0x7807('0x2'))(_0x7807('0x3'));var moment=require(_0x7807('0x4'));var BPromise=require(_0x7807('0x5'));var rp=require('request-promise');var attributes=require(_0x7807('0x6'));module[_0x7807('0x7')]=function(_0x5444b7,_0x583d81){return _0x5444b7[_0x7807('0x8')](_0x7807('0x9'),attributes,{'tableName':_0x7807('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x615a=['tools_actions','../../config/logger','api','bluebird','request-promise','./action.attributes','exports','define','Action'];(function(_0x2dd24f,_0x1b83d0){var _0x57dc3d=function(_0x595f68){while(--_0x595f68){_0x2dd24f['push'](_0x2dd24f['shift']());}};_0x57dc3d(++_0x1b83d0);}(_0x615a,0x1ba));var _0xa615=function(_0x43941d,_0x45fd0d){_0x43941d=_0x43941d-0x0;var _0x27b82a=_0x615a[_0x43941d];return _0x27b82a;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xa615('0x0'))(_0xa615('0x1'));var moment=require('moment');var BPromise=require(_0xa615('0x2'));var rp=require(_0xa615('0x3'));var attributes=require(_0xa615('0x4'));module[_0xa615('0x5')]=function(_0x1f4eee,_0x5b167c){return _0x1f4eee[_0xa615('0x6')](_0xa615('0x7'),attributes,{'tableName':_0xa615('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4773=['stringify','error','code','message','result','catch','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','request','then','info','Action,\x20%s,\x20%s','request\x20sent','Action,\x20%s,\x20%s,\x20%s'];(function(_0x5dfc2a,_0x1a953f){var _0x3f1a71=function(_0x15916){while(--_0x15916){_0x5dfc2a['push'](_0x5dfc2a['shift']());}};_0x3f1a71(++_0x1a953f);}(_0x4773,0x132));var _0x3477=function(_0x267b1d,_0x186784){_0x267b1d=_0x267b1d-0x0;var _0x271970=_0x4773[_0x267b1d];return _0x271970;};'use strict';var _=require('lodash');var util=require(_0x3477('0x0'));var moment=require('moment');var BPromise=require(_0x3477('0x1'));var rs=require(_0x3477('0x2'));var fs=require('fs');var db=require(_0x3477('0x3'))['db'];var utils=require(_0x3477('0x4'));var logger=require(_0x3477('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x3477('0x6'));var client=jayson[_0x3477('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3f4047,_0x37ab12,_0x5c5421){return new BPromise(function(_0x1c8ccf,_0x2d0b9b){return client[_0x3477('0x8')](_0x3f4047,_0x5c5421)[_0x3477('0x9')](function(_0x119046){logger[_0x3477('0xa')](_0x3477('0xb'),_0x37ab12,_0x3477('0xc'));logger['debug'](_0x3477('0xd'),_0x37ab12,_0x3477('0xc'),JSON[_0x3477('0xe')](_0x119046));if(_0x119046[_0x3477('0xf')]){if(_0x119046[_0x3477('0xf')][_0x3477('0x10')]===0x1f4){logger[_0x3477('0xf')](_0x3477('0xb'),_0x37ab12,_0x119046[_0x3477('0xf')][_0x3477('0x11')]);return _0x2d0b9b(_0x119046[_0x3477('0xf')][_0x3477('0x11')]);}logger['error'](_0x3477('0xb'),_0x37ab12,_0x119046['error'][_0x3477('0x11')]);return _0x1c8ccf(_0x119046[_0x3477('0xf')][_0x3477('0x11')]);}else{logger['info'](_0x3477('0xb'),_0x37ab12,_0x3477('0xc'));_0x1c8ccf(_0x119046[_0x3477('0x12')]['message']);}})[_0x3477('0x13')](function(_0x24f330){logger['error'](_0x3477('0xb'),_0x37ab12,_0x24f330);_0x2d0b9b(_0x24f330);});});}
\ No newline at end of file
+var _0x6753=['Action,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','http','request','then','info','Action,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x526d78,_0x4dc191){var _0x52bab2=function(_0x7f7166){while(--_0x7f7166){_0x526d78['push'](_0x526d78['shift']());}};_0x52bab2(++_0x4dc191);}(_0x6753,0xa1));var _0x3675=function(_0x5cccbb,_0x31c611){_0x5cccbb=_0x5cccbb-0x0;var _0x1dc938=_0x6753[_0x5cccbb];return _0x1dc938;};'use strict';var _=require(_0x3675('0x0'));var util=require(_0x3675('0x1'));var moment=require(_0x3675('0x2'));var BPromise=require(_0x3675('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3675('0x4'));var db=require(_0x3675('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x3675('0x6'))(_0x3675('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x3675('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1fbfe8,_0x907bda,_0x1a5526){return new BPromise(function(_0x154571,_0x3b073c){return client[_0x3675('0x9')](_0x1fbfe8,_0x1a5526)[_0x3675('0xa')](function(_0x246aac){logger[_0x3675('0xb')](_0x3675('0xc'),_0x907bda,_0x3675('0xd'));logger[_0x3675('0xe')](_0x3675('0xf'),_0x907bda,'request\x20sent',JSON[_0x3675('0x10')](_0x246aac));if(_0x246aac[_0x3675('0x11')]){if(_0x246aac['error'][_0x3675('0x12')]===0x1f4){logger[_0x3675('0x11')](_0x3675('0xc'),_0x907bda,_0x246aac[_0x3675('0x11')][_0x3675('0x13')]);return _0x3b073c(_0x246aac[_0x3675('0x11')][_0x3675('0x13')]);}logger['error'](_0x3675('0xc'),_0x907bda,_0x246aac[_0x3675('0x11')][_0x3675('0x13')]);return _0x154571(_0x246aac[_0x3675('0x11')]['message']);}else{logger[_0x3675('0xb')](_0x3675('0xc'),_0x907bda,_0x3675('0xd'));_0x154571(_0x246aac[_0x3675('0x14')]['message']);}})[_0x3675('0x15')](function(_0x4c4017){logger[_0x3675('0x11')](_0x3675('0xc'),_0x907bda,_0x4c4017);_0x3b073c(_0x4c4017);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0457=['./action.controller','/:id','update','delete','isAuthenticated','destroy','exports','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0457,0x11f));var _0x7045=function(_0x372b9d,_0x547e8c){_0x372b9d=_0x372b9d-0x0;var _0x48cb9b=_0x0457[_0x372b9d];return _0x48cb9b;};'use strict';var multer=require('multer');var util=require(_0x7045('0x0'));var path=require(_0x7045('0x1'));var timeout=require('connect-timeout');var express=require(_0x7045('0x2'));var router=express[_0x7045('0x3')]();var auth=require(_0x7045('0x4'));var interaction=require(_0x7045('0x5'));var config=require(_0x7045('0x6'));var controller=require(_0x7045('0x7'));router['put'](_0x7045('0x8'),auth['isAuthenticated'](),controller[_0x7045('0x9')]);router[_0x7045('0xa')](_0x7045('0x8'),auth[_0x7045('0xb')](),controller[_0x7045('0xc')]);module[_0x7045('0xd')]=router;
\ No newline at end of file
+var _0xac4a=['Router','../../config/environment','./action.controller','put','isAuthenticated','delete','destroy','multer','util','path','connect-timeout','express'];(function(_0x397396,_0x4f2b10){var _0x3c1c53=function(_0x13e18b){while(--_0x13e18b){_0x397396['push'](_0x397396['shift']());}};_0x3c1c53(++_0x4f2b10);}(_0xac4a,0x13f));var _0xaac4=function(_0x20a438,_0xdecaef){_0x20a438=_0x20a438-0x0;var _0x24c3a9=_0xac4a[_0x20a438];return _0x24c3a9;};'use strict';var multer=require(_0xaac4('0x0'));var util=require(_0xaac4('0x1'));var path=require(_0xaac4('0x2'));var timeout=require(_0xaac4('0x3'));var express=require(_0xaac4('0x4'));var router=express[_0xaac4('0x5')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xaac4('0x6'));var controller=require(_0xaac4('0x7'));router[_0xaac4('0x8')]('/:id',auth[_0xaac4('0x9')](),controller['update']);router[_0xaac4('0xa')]('/:id',auth[_0xaac4('0x9')](),controller[_0xaac4('0xb')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ff9=['exports','STRING','TEXT','sequelize'];(function(_0x55ec67,_0x1c90d5){var _0x1350f6=function(_0x5ed223){while(--_0x5ed223){_0x55ec67['push'](_0x55ec67['shift']());}};_0x1350f6(++_0x1c90d5);}(_0x4ff9,0x87));var _0x94ff=function(_0x1302fa,_0x187cf8){_0x1302fa=_0x1302fa-0x0;var _0x10eda1=_0x4ff9[_0x1302fa];return _0x10eda1;};'use strict';var Sequelize=require(_0x94ff('0x0'));module[_0x94ff('0x1')]={'name':{'type':Sequelize[_0x94ff('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize[_0x94ff('0x2')]},'table':{'type':Sequelize['STRING']},'conditions':{'type':Sequelize[_0x94ff('0x3')]},'joins':{'type':Sequelize[_0x94ff('0x3')]}};
\ No newline at end of file
+var _0xbbe7=['TEXT','sequelize','exports','STRING'];(function(_0x46a44b,_0x1dcd52){var _0x407288=function(_0x1c609d){while(--_0x1c609d){_0x46a44b['push'](_0x46a44b['shift']());}};_0x407288(++_0x1dcd52);}(_0xbbe7,0x16d));var _0x7bbe=function(_0x25737b,_0x12e056){_0x25737b=_0x25737b-0x0;var _0x3c6972=_0xbbe7[_0x25737b];return _0x3c6972;};'use strict';var Sequelize=require(_0x7bbe('0x0'));module[_0x7bbe('0x1')]={'name':{'type':Sequelize[_0x7bbe('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x7bbe('0x2')]},'parent':{'type':Sequelize[_0x7bbe('0x2')]},'table':{'type':Sequelize[_0x7bbe('0x2')]},'conditions':{'type':Sequelize[_0x7bbe('0x3')]},'joins':{'type':Sequelize[_0x7bbe('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','then','error','stack','name','rawAttributes','keys','query','dateStart','dateEnd','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','where','filters','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','AnalyticCustomReport','length','create','body','find','preview','join','left_join','right_join','cross_join','COUNT(DISTINCT\x20%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','ValidationErrorItem','AnalyticMetric','keyBy','select','table','MetricId','metric','function','format','replace','groupBy','orderBy','DESC','alias','joins','parse','type','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','Limited\x20Query:','sequelize','QueryTypes','SELECT','outer_join','SUM(%s)','COUNT(%s)','MAX(%s)','AVG(%s)','HOUR(%s)','ROUND(%s)','IS\x20NULL','Sequelize','from','parentKey','debug','toString','No\x20available\x20data','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','startDate','endDate','info','Run\x20Query:','../../files/reports','savename','count','run','runReport','IS\x20EMPTY','value','Please\x20insert\x20at\x20least\x20one\x20field','html-pdf','eml-format','rimraf','request-promise','bluebird'];(function(_0x1fa5dc,_0x41a40a){var _0x1b3fa5=function(_0x1ac454){while(--_0x1ac454){_0x1fa5dc['push'](_0x1fa5dc['shift']());}};_0x1b3fa5(++_0x41a40a);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0xa9e0[_0xf71120];return _0xbe2fd3;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var qs=require(_0x0a9e('0xe'));var logger=require(_0x0a9e('0xf'))(_0x0a9e('0x10'));var utils=require(_0x0a9e('0x11'));var config=require(_0x0a9e('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x50dfb2,_0x527cdd){_0x527cdd=_0x527cdd||0xcc;return function(_0x4cfe67){if(_0x4cfe67){return _0x50dfb2[_0x0a9e('0x13')](_0x527cdd);}return _0x50dfb2[_0x0a9e('0x14')](_0x527cdd)[_0x0a9e('0x15')]();};}function respondWithResult(_0x26d672,_0x32d742){_0x32d742=_0x32d742||0xc8;return function(_0x69aeb7){if(_0x69aeb7){return _0x26d672['status'](_0x32d742)[_0x0a9e('0x16')](_0x69aeb7);}};}function respondWithFilteredResult(_0x239b12,_0x2b4227){return function(_0x281129){if(_0x281129){var _0x44dcfd=_0x281129['count'],_0x4d5611=_0x2b4227[_0x0a9e('0x17')],_0x52a03d=_0x2b4227['offset']+_0x2b4227[_0x0a9e('0x18')],_0x22dccb;if(_0x52a03d>=_0x44dcfd){_0x52a03d=_0x44dcfd;_0x22dccb=0xc8;}else{_0x22dccb=0xce;}_0x239b12[_0x0a9e('0x14')](_0x22dccb);return _0x239b12['set'](_0x0a9e('0x19'),_0x4d5611+'-'+_0x52a03d+'/'+_0x44dcfd)['json'](_0x281129);}return null;};}function patchUpdates(_0x459eb1){return function(_0x478723){try{jsonpatch[_0x0a9e('0x1a')](_0x478723,_0x459eb1,!![]);}catch(_0x205fd6){return BPromise[_0x0a9e('0x1b')](_0x205fd6);}return _0x478723[_0x0a9e('0x1c')]();};}function saveUpdates(_0x530eb7,_0x20559e){return function(_0x1314ae){if(_0x1314ae){return _0x1314ae[_0x0a9e('0x1d')](_0x530eb7)[_0x0a9e('0x1e')](function(_0x105080){return _0x105080;});}return null;};}function removeEntity(_0x4bb1e3,_0x2c3407){return function(_0x155cce){if(_0x155cce){return _0x155cce['destroy']()[_0x0a9e('0x1e')](function(){_0x4bb1e3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a02e1,_0x432e56){return function(_0x38e7c4){if(!_0x38e7c4){_0x3a02e1[_0x0a9e('0x13')](0x194);}return _0x38e7c4;};}function handleError(_0x4abc77,_0xfb6e48){_0xfb6e48=_0xfb6e48||0x1f4;return function(_0x2fb0e4){logger[_0x0a9e('0x1f')](_0x2fb0e4[_0x0a9e('0x20')]);if(_0x2fb0e4[_0x0a9e('0x21')]){delete _0x2fb0e4[_0x0a9e('0x21')];}_0x4abc77[_0x0a9e('0x14')](_0xfb6e48)['send'](_0x2fb0e4);};}exports['index']=function(_0x197ec0,_0x3a8e58){var _0x40c424={},_0x33161b={},_0x526cf3={'count':0x0,'rows':[]};var _0x384319=db['AnalyticCustomReport'][_0x0a9e('0x22')];_0x33161b['model']=_[_0x0a9e('0x23')](_0x384319);var _0x34dc65={'dateStart':_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x25')],'dateEnd':_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x26')]};delete _0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x25')];delete _0x197ec0['query'][_0x0a9e('0x26')];_0x33161b[_0x0a9e('0x24')]=_[_0x0a9e('0x23')](_0x197ec0[_0x0a9e('0x24')]);_0x33161b['filters']=_[_0x0a9e('0x27')](_0x33161b[_0x0a9e('0x28')],_0x33161b[_0x0a9e('0x24')]);_0x40c424[_0x0a9e('0x29')]=_[_0x0a9e('0x27')](_0x33161b[_0x0a9e('0x28')],qs[_0x0a9e('0x2a')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x2a')]));_0x40c424['attributes']=_0x40c424[_0x0a9e('0x29')]['length']?_0x40c424[_0x0a9e('0x29')]:_0x33161b[_0x0a9e('0x28')];if(!_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x2b')](_0x0a9e('0x2c'))){_0x40c424['limit']=qs[_0x0a9e('0x18')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x18')]);_0x40c424[_0x0a9e('0x17')]=qs[_0x0a9e('0x17')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x17')]);}_0x40c424[_0x0a9e('0x2d')]=qs['sort'](_0x197ec0[_0x0a9e('0x24')]['sort']);_0x40c424[_0x0a9e('0x2e')]=qs[_0x0a9e('0x2f')](_[_0x0a9e('0x30')](_0x197ec0[_0x0a9e('0x24')],_0x33161b['filters']));if(_0x34dc65[_0x0a9e('0x25')]){if(_0x34dc65[_0x0a9e('0x26')]){_0x34dc65[_0x0a9e('0x26')]=moment(_0x34dc65[_0x0a9e('0x26')])['add'](0x1,'day');}else{_0x34dc65[_0x0a9e('0x26')]=moment(_0x34dc65['dateStart'])[_0x0a9e('0x31')](0x1,_0x0a9e('0x32'));}_[_0x0a9e('0x33')](_0x40c424[_0x0a9e('0x2e')],{'createdAt':{'$gte':_0x34dc65['dateStart'],'$lte':_0x34dc65[_0x0a9e('0x26')]}});}if(_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x34')]){_0x40c424['where']=_[_0x0a9e('0x33')](_0x40c424[_0x0a9e('0x2e')],{'$or':_[_0x0a9e('0x35')](_0x40c424['attributes'],function(_0x546ef8){var _0x11b61d={};_0x11b61d[_0x546ef8]={'$like':'%'+_0x197ec0[_0x0a9e('0x24')]['filter']+'%'};return _0x11b61d;})});}_0x40c424=_[_0x0a9e('0x33')]({},_0x40c424,_0x197ec0[_0x0a9e('0x36')]);var _0x2e1b3a={'where':_0x40c424[_0x0a9e('0x2e')]};return db['AnalyticCustomReport']['count'](_0x2e1b3a)[_0x0a9e('0x1e')](function(_0x45b3d0){_0x526cf3['count']=_0x45b3d0;if(_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x37')]){_0x40c424[_0x0a9e('0x38')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0x0a9e('0x39')](_0x40c424);})[_0x0a9e('0x1e')](function(_0x274e8e){_0x526cf3[_0x0a9e('0x3a')]=_0x274e8e;return _0x526cf3;})[_0x0a9e('0x1e')](respondWithFilteredResult(_0x3a8e58,_0x40c424))[_0x0a9e('0x3b')](handleError(_0x3a8e58,null));};exports[_0x0a9e('0x3c')]=function(_0x45a9b8,_0x23b089){var _0x3da2cd={'raw':![],'where':{'id':_0x45a9b8[_0x0a9e('0x3d')]['id']}},_0x2c3711={};_0x2c3711[_0x0a9e('0x28')]=_[_0x0a9e('0x23')](db[_0x0a9e('0x3e')]['rawAttributes']);_0x2c3711['query']=_[_0x0a9e('0x23')](_0x45a9b8[_0x0a9e('0x24')]);_0x2c3711[_0x0a9e('0x2f')]=_[_0x0a9e('0x27')](_0x2c3711[_0x0a9e('0x28')],_0x2c3711[_0x0a9e('0x24')]);_0x3da2cd[_0x0a9e('0x29')]=_[_0x0a9e('0x27')](_0x2c3711[_0x0a9e('0x28')],qs[_0x0a9e('0x2a')](_0x45a9b8[_0x0a9e('0x24')][_0x0a9e('0x2a')]));_0x3da2cd['attributes']=_0x3da2cd[_0x0a9e('0x29')][_0x0a9e('0x3f')]?_0x3da2cd[_0x0a9e('0x29')]:_0x2c3711[_0x0a9e('0x28')];if(_0x45a9b8[_0x0a9e('0x24')][_0x0a9e('0x37')]){_0x3da2cd[_0x0a9e('0x38')]=[{'all':!![]}];}_0x3da2cd=_[_0x0a9e('0x33')]({},_0x3da2cd,_0x45a9b8['options']);return db[_0x0a9e('0x3e')]['find'](_0x3da2cd)[_0x0a9e('0x1e')](handleEntityNotFound(_0x23b089,null))[_0x0a9e('0x1e')](respondWithResult(_0x23b089,null))[_0x0a9e('0x3b')](handleError(_0x23b089,null));};exports['create']=function(_0x14bec2,_0x7f6eb1){return db[_0x0a9e('0x3e')][_0x0a9e('0x40')](_0x14bec2[_0x0a9e('0x41')],{})[_0x0a9e('0x1e')](respondWithResult(_0x7f6eb1,0xc9))[_0x0a9e('0x3b')](handleError(_0x7f6eb1,null));};exports['update']=function(_0x13f44d,_0x1bde3c){if(_0x13f44d[_0x0a9e('0x41')]['id']){delete _0x13f44d[_0x0a9e('0x41')]['id'];}return db[_0x0a9e('0x3e')][_0x0a9e('0x42')]({'where':{'id':_0x13f44d[_0x0a9e('0x3d')]['id']}})[_0x0a9e('0x1e')](handleEntityNotFound(_0x1bde3c,null))[_0x0a9e('0x1e')](saveUpdates(_0x13f44d['body'],null))[_0x0a9e('0x1e')](respondWithResult(_0x1bde3c,null))[_0x0a9e('0x3b')](handleError(_0x1bde3c,null));};exports['destroy']=function(_0x4ae14b,_0x5ddf84){return db[_0x0a9e('0x3e')][_0x0a9e('0x42')]({'where':{'id':_0x4ae14b[_0x0a9e('0x3d')]['id']}})[_0x0a9e('0x1e')](handleEntityNotFound(_0x5ddf84,null))[_0x0a9e('0x1e')](removeEntity(_0x5ddf84,null))[_0x0a9e('0x3b')](handleError(_0x5ddf84,null));};exports[_0x0a9e('0x43')]=function(_0x375c18,_0x5d38ae){var _0x4b1b9f=0xa;var _0x53975a=[_0x0a9e('0x44'),_0x0a9e('0x45'),_0x0a9e('0x46'),'outer_join',_0x0a9e('0x47')];var _0x161aa7={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x0a9e('0x48'),'MAX':'MAX(%s)','MIN':_0x0a9e('0x49'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x0a9e('0x4a'),'GROUP_CONCAT ASC':_0x0a9e('0x4b'),'GROUP_CONCAT DESC':_0x0a9e('0x4c')};var _0x53613a={'SEC_TO_TIME':_0x0a9e('0x4d'),'DATE':_0x0a9e('0x4e'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x0a9e('0x4f')};var _0x3aedd0=function(_0x49c095){return!_[_0x0a9e('0x50')](['IS\x20NULL',_0x0a9e('0x51'),'IS\x20EMPTY',_0x0a9e('0x52')],_0x49c095);};var _0x4a6deb=function(_0x5da27d){if(!_0x5da27d||!_0x5da27d['rules'][_0x0a9e('0x3f')]){return'';}for(var _0x47de4c='(',_0x2f7092=0x0;_0x2f7092<_0x5da27d[_0x0a9e('0x53')][_0x0a9e('0x3f')];_0x2f7092+=0x1){_0x2f7092>0x0&&(_0x47de4c+='\x20'+_0x5da27d[_0x0a9e('0x54')]+'\x20');_0x47de4c+=_0x5da27d[_0x0a9e('0x53')][_0x2f7092][_0x0a9e('0x55')]?_0x4a6deb(_0x5da27d[_0x0a9e('0x53')][_0x2f7092][_0x0a9e('0x55')]):_0x5da27d['rules'][_0x2f7092][_0x0a9e('0x56')]+'\x20'+_0x5da27d[_0x0a9e('0x53')][_0x2f7092][_0x0a9e('0x57')]+(_0x3aedd0(_0x5da27d[_0x0a9e('0x53')][_0x2f7092][_0x0a9e('0x57')])?'\x20'+_0x5da27d[_0x0a9e('0x53')][_0x2f7092]['value']:'');}return _0x47de4c+')';};var _0x956fbe={'where':{'id':_0x375c18['params']['id']}},_0x26bc80,_0x5239ef,_0x3649cc,_0x5cc8fb,_0x20c668;_0x956fbe=_['merge']({},_0x956fbe,_0x375c18['options']);return db[_0x0a9e('0x3e')]['find'](_0x956fbe)[_0x0a9e('0x1e')](function(_0x1fc70e){if(_0x1fc70e){_0x26bc80=_0x1fc70e;return _0x1fc70e[_0x0a9e('0x58')]();}return null;})[_0x0a9e('0x1e')](function(_0x1cca9f){if(_0x1cca9f){if(!_0x1cca9f[_0x0a9e('0x3f')]){throw new db['Sequelize'][(_0x0a9e('0x59'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x5239ef=_0x1cca9f;return db[_0x0a9e('0x5a')][_0x0a9e('0x39')]({'raw':!![]});}return null;})[_0x0a9e('0x1e')](function(_0x5adf8f){if(_0x5adf8f){_0x3649cc=_[_0x0a9e('0x5b')](_0x5adf8f,'id');var _0x156f1c;var _0x119677=squel[_0x0a9e('0x5c')]();_0x119677['from'](_0x26bc80[_0x0a9e('0x5d')]);for(var _0xe05a5a=0x0;_0xe05a5a<_0x5239ef['length'];_0xe05a5a+=0x1){_0x156f1c=_0x5239ef[_0xe05a5a][_0x0a9e('0x5e')]?_0x3649cc[_0x5239ef[_0xe05a5a][_0x0a9e('0x5e')]][_0x0a9e('0x5f')]:_0x5239ef[_0xe05a5a][_0x0a9e('0x56')];_0x156f1c=_0x5239ef[_0xe05a5a][_0x0a9e('0x60')]?_['replace'](_0x161aa7[_0x5239ef[_0xe05a5a][_0x0a9e('0x60')]],'%s',_0x156f1c):_0x156f1c;_0x156f1c=_0x5239ef[_0xe05a5a][_0x0a9e('0x61')]?_[_0x0a9e('0x62')](_0x53613a[_0x5239ef[_0xe05a5a]['format']],'%s',_0x156f1c):_0x156f1c;if(_0x5239ef[_0xe05a5a][_0x0a9e('0x63')]){_0x119677['group'](_0x156f1c);}_0x5239ef[_0xe05a5a]['orderBy']&&_0x119677[_0x0a9e('0x2d')](_0x156f1c,_0x5239ef[_0xe05a5a][_0x0a9e('0x64')]===_0x0a9e('0x65')?![]:!![]);_0x119677[_0x0a9e('0x56')](_0x156f1c,_0x5239ef[_0xe05a5a][_0x0a9e('0x66')]||_0x156f1c);}if(_0x26bc80[_0x0a9e('0x67')]){_0x26bc80[_0x0a9e('0x67')]=JSON[_0x0a9e('0x68')](_0x26bc80[_0x0a9e('0x67')]);for(var _0x1cc4f3=0x0;_0x1cc4f3<_0x26bc80[_0x0a9e('0x67')][_0x0a9e('0x3f')];_0x1cc4f3+=0x1){if(_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3][_0x0a9e('0x69')]&&_[_0x0a9e('0x50')](_0x53975a,_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3][_0x0a9e('0x69')])&&_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3]['parentKey']&&_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3][_0x0a9e('0x6a')]&&_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3]['foreignKey']){_0x119677[_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3][_0x0a9e('0x69')]](_0x26bc80['joins'][_0x1cc4f3][_0x0a9e('0x6a')],null,util[_0x0a9e('0x61')](_0x0a9e('0x6b'),_0x26bc80[_0x0a9e('0x5d')],_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3]['parentKey'],_0x26bc80['joins'][_0x1cc4f3]['foreignTable'],_0x26bc80[_0x0a9e('0x67')][_0x1cc4f3][_0x0a9e('0x6c')]));}}}if(_0x26bc80[_0x0a9e('0x6d')]){_0x26bc80[_0x0a9e('0x6d')]=JSON[_0x0a9e('0x68')](_0x26bc80[_0x0a9e('0x6d')]);_0x119677[_0x0a9e('0x2e')](_0x4a6deb(_0x26bc80[_0x0a9e('0x6d')]['group']));}_0x20c668=_0x119677[_0x0a9e('0x6e')]();_0x119677[_0x0a9e('0x18')](_0x4b1b9f);_0x119677[_0x0a9e('0x17')](0x0);logger['debug'](_0x0a9e('0x6f'),_0x119677['toString']());return db[_0x0a9e('0x70')][_0x0a9e('0x24')](_0x119677['toString'](),{'type':db[_0x0a9e('0x70')][_0x0a9e('0x71')][_0x0a9e('0x72')]});}})[_0x0a9e('0x1e')](respondWithResult(_0x5d38ae,null))['catch'](handleError(_0x5d38ae,null));};function runReport(_0x1d442c,_0x2e9552,_0x371533){var _0x278ab4=_0x2e9552['name'];var _0x109ccb=0xa;var _0x3d91db=[_0x0a9e('0x44'),_0x0a9e('0x45'),'right_join',_0x0a9e('0x73'),_0x0a9e('0x47')];var _0x30a4c7={'SUM':_0x0a9e('0x74'),'COUNT':_0x0a9e('0x75'),'COUNT DISTINCT':_0x0a9e('0x48'),'MAX':_0x0a9e('0x76'),'MIN':_0x0a9e('0x49'),'AVG':_0x0a9e('0x77'),'GROUP_CONCAT':_0x0a9e('0x4a'),'GROUP_CONCAT ASC':_0x0a9e('0x4b'),'GROUP_CONCAT DESC':_0x0a9e('0x4c')};var _0x25744a={'SEC_TO_TIME':_0x0a9e('0x4d'),'DATE':'DATE(%s)','HOUR':_0x0a9e('0x78'),'ROUND':_0x0a9e('0x79'),'UNIX_TIMESTAMP':_0x0a9e('0x4f')};var _0x563627=function(_0x3736e0){return!_[_0x0a9e('0x50')]([_0x0a9e('0x7a'),_0x0a9e('0x51'),'IS\x20EMPTY','IS\x20NOT\x20EMPTY'],_0x3736e0);};var _0x7ebea8=function(_0x2bbdb5){if(!_0x2bbdb5||!_0x2bbdb5['rules'][_0x0a9e('0x3f')]){return'';}for(var _0x53a6a1='(',_0x260f4b=0x0;_0x260f4b<_0x2bbdb5[_0x0a9e('0x53')]['length'];_0x260f4b+=0x1){_0x260f4b>0x0&&(_0x53a6a1+='\x20'+_0x2bbdb5[_0x0a9e('0x54')]+'\x20');_0x53a6a1+=_0x2bbdb5[_0x0a9e('0x53')][_0x260f4b][_0x0a9e('0x55')]?_0x7ebea8(_0x2bbdb5[_0x0a9e('0x53')][_0x260f4b][_0x0a9e('0x55')]):_0x2bbdb5[_0x0a9e('0x53')][_0x260f4b][_0x0a9e('0x56')]+'\x20'+_0x2bbdb5['rules'][_0x260f4b][_0x0a9e('0x57')]+(_0x563627(_0x2bbdb5[_0x0a9e('0x53')][_0x260f4b][_0x0a9e('0x57')])?'\x20'+_0x2bbdb5[_0x0a9e('0x53')][_0x260f4b]['value']:'');}return _0x53a6a1+')';};var _0xf51744={'where':{'id':_0x1d442c['id']}},_0xf0db1,_0x4bf3a5,_0x1d6834,_0x5b7940,_0x163710;_0xf51744=_[_0x0a9e('0x33')]({},_0xf51744,_0x371533);return db[_0x0a9e('0x3e')][_0x0a9e('0x42')](_0xf51744)['then'](function(_0x51ccd7){if(_0x51ccd7){_0xf0db1=_0x51ccd7;return _0x51ccd7[_0x0a9e('0x58')]();}return null;})[_0x0a9e('0x1e')](function(_0x94dcf5){if(_0x94dcf5){if(!_0x94dcf5['length']){throw new db[(_0x0a9e('0x7b'))][(_0x0a9e('0x59'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4bf3a5=_0x94dcf5;return db['AnalyticMetric'][_0x0a9e('0x39')]({'raw':!![]});}return null;})['then'](function(_0x5ea541){if(_0x5ea541){_0x1d6834=_['keyBy'](_0x5ea541,'id');var _0x81d748;var _0xf3601c=squel[_0x0a9e('0x5c')]();_0xf3601c[_0x0a9e('0x7c')](_0xf0db1[_0x0a9e('0x5d')]);for(var _0x2600de=0x0;_0x2600de<_0x4bf3a5['length'];_0x2600de+=0x1){_0x81d748=_0x4bf3a5[_0x2600de][_0x0a9e('0x5e')]?_0x1d6834[_0x4bf3a5[_0x2600de]['MetricId']][_0x0a9e('0x5f')]:_0x4bf3a5[_0x2600de][_0x0a9e('0x56')];_0x81d748=_0x4bf3a5[_0x2600de][_0x0a9e('0x60')]?_[_0x0a9e('0x62')](_0x30a4c7[_0x4bf3a5[_0x2600de]['function']],'%s',_0x81d748):_0x81d748;_0x81d748=_0x4bf3a5[_0x2600de][_0x0a9e('0x61')]?_[_0x0a9e('0x62')](_0x25744a[_0x4bf3a5[_0x2600de][_0x0a9e('0x61')]],'%s',_0x81d748):_0x81d748;if(_0x4bf3a5[_0x2600de]['groupBy']){_0xf3601c[_0x0a9e('0x55')](_0x81d748);}_0x4bf3a5[_0x2600de][_0x0a9e('0x64')]&&_0xf3601c[_0x0a9e('0x2d')](_0x81d748,_0x4bf3a5[_0x2600de][_0x0a9e('0x64')]===_0x0a9e('0x65')?![]:!![]);_0xf3601c[_0x0a9e('0x56')](_0x81d748,_0x4bf3a5[_0x2600de][_0x0a9e('0x66')]||_0x81d748);}if(_0xf0db1[_0x0a9e('0x67')]){_0xf0db1['joins']=JSON[_0x0a9e('0x68')](_0xf0db1[_0x0a9e('0x67')]);for(var _0x589ff3=0x0;_0x589ff3<_0xf0db1[_0x0a9e('0x67')][_0x0a9e('0x3f')];_0x589ff3+=0x1){if(_0xf0db1[_0x0a9e('0x67')][_0x589ff3]['type']&&_[_0x0a9e('0x50')](_0x3d91db,_0xf0db1['joins'][_0x589ff3][_0x0a9e('0x69')])&&_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x7d')]&&_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x6a')]&&_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x6c')]){_0xf3601c[_0xf0db1[_0x0a9e('0x67')][_0x589ff3]['type']](_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x6a')],null,util[_0x0a9e('0x61')](_0x0a9e('0x6b'),_0xf0db1[_0x0a9e('0x5d')],_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x7d')],_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x6a')],_0xf0db1[_0x0a9e('0x67')][_0x589ff3][_0x0a9e('0x6c')]));}}}if(_0xf0db1[_0x0a9e('0x6d')]){_0xf0db1[_0x0a9e('0x6d')]=JSON['parse'](_0xf0db1[_0x0a9e('0x6d')]);_0xf3601c[_0x0a9e('0x2e')](_0x7ebea8(_0xf0db1[_0x0a9e('0x6d')][_0x0a9e('0x55')]));}_0x163710=_0xf3601c[_0x0a9e('0x6e')]();_0xf3601c['limit'](_0x109ccb);_0xf3601c[_0x0a9e('0x17')](0x0);logger[_0x0a9e('0x7e')]('Limited\x20Query:',_0xf3601c[_0x0a9e('0x7f')]());return db['sequelize'][_0x0a9e('0x24')](_0xf3601c[_0x0a9e('0x7f')](),{'type':db[_0x0a9e('0x70')][_0x0a9e('0x71')]['SELECT']});}})[_0x0a9e('0x1e')](function(_0x4cf72d){if(!_0x4cf72d[_0x0a9e('0x3f')]){throw new db[(_0x0a9e('0x7b'))]['ValidationErrorItem'](_0x0a9e('0x80'),0xcc);}if(_0x2e9552[_0x0a9e('0x81')]===_0x0a9e('0x82')){return null;}var _0x4ab276=_['merge'](_0x2e9552,{'name':_0x2e9552[_0x0a9e('0x83')]||_0x2e9552[_0x0a9e('0x21')]||_0xf0db1[_0x0a9e('0x21')],'basename':_0x278ab4,'savename':util[_0x0a9e('0x61')](_0x0a9e('0x84'),_0x2e9552[_0x0a9e('0x21')]||_0xf0db1[_0x0a9e('0x21')],require(_0x0a9e('0x85'))[_0x0a9e('0x86')](0x4),_0x2e9552['output']||_0x0a9e('0x87'))});return db['AnalyticExtractedReport'][_0x0a9e('0x40')](_0x4ab276,{'raw':!![]});})[_0x0a9e('0x1e')](function(_0x34e745){_0x163710[_0x0a9e('0x2e')](_0xf0db1[_0x0a9e('0x5d')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2e9552[_0x0a9e('0x88')],_0x2e9552[_0x0a9e('0x89')]);if(_0x34e745){logger[_0x0a9e('0x8a')](_0x0a9e('0x8b'),_0x163710[_0x0a9e('0x7f')]());require('child_process')['fork'](path[_0x0a9e('0x44')](__dirname,'../../components/export/',_0x34e745[_0x0a9e('0x81')]),[_0x34e745['id'],_0x163710[_0x0a9e('0x7f')](),path[_0x0a9e('0x44')](__dirname,_0x0a9e('0x8c'),_0x34e745[_0x0a9e('0x8d')]),_0x278ab4]);return _0x34e745;}else{var _0x213e5d=squel['select']();_0x213e5d['from']('('+_0x163710[_0x0a9e('0x7f')]()+')','countTable');_0x213e5d[_0x0a9e('0x56')]('COUNT(*)',_0x0a9e('0x8e'));_0x163710['limit'](_0x2e9552['limit']||_0x109ccb);_0x163710[_0x0a9e('0x17')](_0x2e9552[_0x0a9e('0x17')]||0x0);return db['sequelize'][_0x0a9e('0x24')](_0x213e5d[_0x0a9e('0x7f')](),{'type':db[_0x0a9e('0x70')][_0x0a9e('0x71')][_0x0a9e('0x72')]})['then'](function(_0x5505f4){if(!_0x5505f4[_0x0a9e('0x3f')]){_0x5b7940=0x0;}else{_0x5b7940=_0x5505f4[0x0][_0x0a9e('0x8e')]||0x0;}return db[_0x0a9e('0x70')][_0x0a9e('0x24')](_0x163710[_0x0a9e('0x7f')](),{'type':db['sequelize'][_0x0a9e('0x71')][_0x0a9e('0x72')]});})['then'](function(_0x3c313d){return{'rows':_0x3c313d||[],'count':_0x5b7940};});}});}exports[_0x0a9e('0x8f')]=function(_0xcacabb,_0x2427d5){return runReport(_0xcacabb[_0x0a9e('0x3d')],_0xcacabb[_0x0a9e('0x24')],_0xcacabb[_0x0a9e('0x36')])[_0x0a9e('0x1e')](respondWithResult(_0x2427d5,null))[_0x0a9e('0x3b')](handleError(_0x2427d5,null));};exports[_0x0a9e('0x90')]=runReport;exports['query']=function(_0x1065a7,_0x301047){var _0x2ada60=0xa;var _0x1c4232=[_0x0a9e('0x44'),'left_join','right_join',_0x0a9e('0x73'),_0x0a9e('0x47')];var _0x466bbf={'SUM':_0x0a9e('0x74'),'COUNT':_0x0a9e('0x75'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x0a9e('0x76'),'MIN':_0x0a9e('0x49'),'AVG':_0x0a9e('0x77'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x0a9e('0x4b'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2144ca={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x0a9e('0x4e'),'HOUR':_0x0a9e('0x78'),'ROUND':_0x0a9e('0x79'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0xc9529d=function(_0x5ed560){return!_[_0x0a9e('0x50')]([_0x0a9e('0x7a'),_0x0a9e('0x51'),_0x0a9e('0x91'),_0x0a9e('0x52')],_0x5ed560);};var _0x1bee04=function(_0x4014c7){if(!_0x4014c7||!_0x4014c7[_0x0a9e('0x53')][_0x0a9e('0x3f')]){return'';}for(var _0x27d1f5='(',_0x4262d0=0x0;_0x4262d0<_0x4014c7[_0x0a9e('0x53')][_0x0a9e('0x3f')];_0x4262d0+=0x1){_0x4262d0>0x0&&(_0x27d1f5+='\x20'+_0x4014c7[_0x0a9e('0x54')]+'\x20');_0x27d1f5+=_0x4014c7[_0x0a9e('0x53')][_0x4262d0][_0x0a9e('0x55')]?_0x1bee04(_0x4014c7['rules'][_0x4262d0]['group']):_0x4014c7[_0x0a9e('0x53')][_0x4262d0]['field']+'\x20'+_0x4014c7[_0x0a9e('0x53')][_0x4262d0][_0x0a9e('0x57')]+(_0xc9529d(_0x4014c7['rules'][_0x4262d0][_0x0a9e('0x57')])?'\x20'+_0x4014c7[_0x0a9e('0x53')][_0x4262d0][_0x0a9e('0x92')]:'');}return _0x27d1f5+')';};var _0x18adc8={'where':{'id':_0x1065a7['params']['id']}},_0x5585d5,_0x148fd9,_0x26cb76,_0x374f0b,_0x34a791;_0x18adc8=_[_0x0a9e('0x33')]({},_0x18adc8,_0x1065a7[_0x0a9e('0x36')]);return db[_0x0a9e('0x3e')]['find'](_0x18adc8)[_0x0a9e('0x1e')](function(_0x270df8){if(_0x270df8){_0x5585d5=_0x270df8;return _0x270df8[_0x0a9e('0x58')]();}return null;})['then'](function(_0x303f75){if(_0x303f75){if(!_0x303f75[_0x0a9e('0x3f')]){throw new db[(_0x0a9e('0x7b'))][(_0x0a9e('0x59'))](_0x0a9e('0x93'),0x193);}_0x148fd9=_0x303f75;return db['AnalyticMetric'][_0x0a9e('0x39')]({'raw':!![]});}return null;})[_0x0a9e('0x1e')](function(_0x4795ae){if(_0x4795ae){_0x26cb76=_[_0x0a9e('0x5b')](_0x4795ae,'id');var _0x1fcfe6;var _0x1f6f1c=squel['select']();_0x1f6f1c['from'](_0x5585d5['table']);for(var _0x1015aa=0x0;_0x1015aa<_0x148fd9[_0x0a9e('0x3f')];_0x1015aa+=0x1){_0x1fcfe6=_0x148fd9[_0x1015aa]['MetricId']?_0x26cb76[_0x148fd9[_0x1015aa][_0x0a9e('0x5e')]][_0x0a9e('0x5f')]:_0x148fd9[_0x1015aa][_0x0a9e('0x56')];_0x1fcfe6=_0x148fd9[_0x1015aa]['function']?_[_0x0a9e('0x62')](_0x466bbf[_0x148fd9[_0x1015aa][_0x0a9e('0x60')]],'%s',_0x1fcfe6):_0x1fcfe6;_0x1fcfe6=_0x148fd9[_0x1015aa][_0x0a9e('0x61')]?_[_0x0a9e('0x62')](_0x2144ca[_0x148fd9[_0x1015aa][_0x0a9e('0x61')]],'%s',_0x1fcfe6):_0x1fcfe6;if(_0x148fd9[_0x1015aa][_0x0a9e('0x63')]){_0x1f6f1c[_0x0a9e('0x55')](_0x1fcfe6);}_0x148fd9[_0x1015aa][_0x0a9e('0x64')]&&_0x1f6f1c[_0x0a9e('0x2d')](_0x1fcfe6,_0x148fd9[_0x1015aa]['orderBy']===_0x0a9e('0x65')?![]:!![]);_0x1f6f1c['field'](_0x1fcfe6,_0x148fd9[_0x1015aa][_0x0a9e('0x66')]||_0x1fcfe6);}if(_0x5585d5[_0x0a9e('0x67')]){_0x5585d5[_0x0a9e('0x67')]=JSON[_0x0a9e('0x68')](_0x5585d5[_0x0a9e('0x67')]);for(var _0x344cd4=0x0;_0x344cd4<_0x5585d5['joins'][_0x0a9e('0x3f')];_0x344cd4+=0x1){if(_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x69')]&&_[_0x0a9e('0x50')](_0x1c4232,_0x5585d5['joins'][_0x344cd4][_0x0a9e('0x69')])&&_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x7d')]&&_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x6a')]&&_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x6c')]){_0x1f6f1c[_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x69')]](_0x5585d5[_0x0a9e('0x67')][_0x344cd4]['foreignTable'],null,util[_0x0a9e('0x61')](_0x0a9e('0x6b'),_0x5585d5[_0x0a9e('0x5d')],_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x7d')],_0x5585d5[_0x0a9e('0x67')][_0x344cd4][_0x0a9e('0x6a')],_0x5585d5[_0x0a9e('0x67')][_0x344cd4]['foreignKey']));}}}if(_0x5585d5[_0x0a9e('0x6d')]){_0x5585d5[_0x0a9e('0x6d')]=JSON[_0x0a9e('0x68')](_0x5585d5['conditions']);_0x1f6f1c[_0x0a9e('0x2e')](_0x1bee04(_0x5585d5[_0x0a9e('0x6d')][_0x0a9e('0x55')]));}_0x34a791=_0x1f6f1c[_0x0a9e('0x6e')]();_0x1f6f1c[_0x0a9e('0x18')](_0x2ada60);_0x1f6f1c[_0x0a9e('0x17')](0x0);logger[_0x0a9e('0x7e')](_0x0a9e('0x6f'),_0x1f6f1c[_0x0a9e('0x7f')]());return db[_0x0a9e('0x70')]['query'](_0x1f6f1c[_0x0a9e('0x7f')](),{'type':db[_0x0a9e('0x70')][_0x0a9e('0x71')][_0x0a9e('0x72')]});}})[_0x0a9e('0x1e')](function(){return{'sql':_0x34a791[_0x0a9e('0x7f')]()};})['then'](respondWithResult(_0x301047,null))[_0x0a9e('0x3b')](handleError(_0x301047,null));};
\ No newline at end of file
+var _0xecd0=['orderBy','order','DESC','alias','joins','parse','type','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','Limited\x20Query:','toString','sequelize','SELECT','left_join','cross_join','DATE(%s)','ROUND(%s)','groupBy','debug','No\x20available\x20data','output','fullPath','%s-%s.%s','randomstring','generate','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','QueryTypes','runReport','value','ValidationErrorItem','html-pdf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','limit','set','json','apply','reject','update','then','error','stack','name','send','index','AnalyticCustomReport','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','sort','where','filters','pick','day','add','merge','map','filter','count','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','preview','join','right_join','outer_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','field','function','replace','format'];(function(_0x513f27,_0x1cbc87){var _0xa316b7=function(_0x3b592d){while(--_0x3b592d){_0x513f27['push'](_0x513f27['shift']());}};_0xa316b7(++_0x1cbc87);}(_0xecd0,0x16e));var _0x0ecd=function(_0x2a7b8e,_0x50ffce){_0x2a7b8e=_0x2a7b8e-0x0;var _0x29b5c8=_0xecd0[_0x2a7b8e];return _0x29b5c8;};'use strict';var pdf=require(_0x0ecd('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0ecd('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0ecd('0x2'));var moment=require(_0x0ecd('0x3'));var BPromise=require(_0x0ecd('0x4'));var Mustache=require('mustache');var util=require(_0x0ecd('0x5'));var path=require(_0x0ecd('0x6'));var sox=require(_0x0ecd('0x7'));var csv=require(_0x0ecd('0x8'));var ejs=require(_0x0ecd('0x9'));var fs=require('fs');var _=require(_0x0ecd('0xa'));var squel=require(_0x0ecd('0xb'));var crypto=require(_0x0ecd('0xc'));var jsforce=require(_0x0ecd('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x0ecd('0x8'));var querystring=require(_0x0ecd('0xe'));var Papa=require('papaparse');var Redis=require(_0x0ecd('0xf'));var qs=require(_0x0ecd('0x10'));var logger=require(_0x0ecd('0x11'))(_0x0ecd('0x12'));var utils=require(_0x0ecd('0x13'));var config=require(_0x0ecd('0x14'));var db=require(_0x0ecd('0x15'))['db'];function respondWithStatusCode(_0x60f61a,_0x40b535){_0x40b535=_0x40b535||0xcc;return function(_0x3b28b0){if(_0x3b28b0){return _0x60f61a[_0x0ecd('0x16')](_0x40b535);}return _0x60f61a[_0x0ecd('0x17')](_0x40b535)[_0x0ecd('0x18')]();};}function respondWithResult(_0x1662c5,_0x119638){_0x119638=_0x119638||0xc8;return function(_0xc3a623){if(_0xc3a623){return _0x1662c5['status'](_0x119638)['json'](_0xc3a623);}};}function respondWithFilteredResult(_0x35560a,_0x485634){return function(_0x3a5bb3){if(_0x3a5bb3){var _0x14b3d6=_0x3a5bb3['count'],_0x120b56=_0x485634['offset'],_0x5f4739=_0x485634['offset']+_0x485634[_0x0ecd('0x19')],_0x5ce886;if(_0x5f4739>=_0x14b3d6){_0x5f4739=_0x14b3d6;_0x5ce886=0xc8;}else{_0x5ce886=0xce;}_0x35560a[_0x0ecd('0x17')](_0x5ce886);return _0x35560a[_0x0ecd('0x1a')]('Content-Range',_0x120b56+'-'+_0x5f4739+'/'+_0x14b3d6)[_0x0ecd('0x1b')](_0x3a5bb3);}return null;};}function patchUpdates(_0x1a4195){return function(_0xc99f81){try{jsonpatch[_0x0ecd('0x1c')](_0xc99f81,_0x1a4195,!![]);}catch(_0x57bb07){return BPromise[_0x0ecd('0x1d')](_0x57bb07);}return _0xc99f81['save']();};}function saveUpdates(_0x492c37,_0x59d543){return function(_0x9970d3){if(_0x9970d3){return _0x9970d3[_0x0ecd('0x1e')](_0x492c37)[_0x0ecd('0x1f')](function(_0x511ea6){return _0x511ea6;});}return null;};}function removeEntity(_0x31dbad,_0x959f96){return function(_0x3996ac){if(_0x3996ac){return _0x3996ac['destroy']()[_0x0ecd('0x1f')](function(){_0x31dbad[_0x0ecd('0x17')](0xcc)[_0x0ecd('0x18')]();});}};}function handleEntityNotFound(_0x106cd2,_0x5b2c31){return function(_0x5f4370){if(!_0x5f4370){_0x106cd2['sendStatus'](0x194);}return _0x5f4370;};}function handleError(_0x52882f,_0x52a414){_0x52a414=_0x52a414||0x1f4;return function(_0x2f6c47){logger[_0x0ecd('0x20')](_0x2f6c47[_0x0ecd('0x21')]);if(_0x2f6c47[_0x0ecd('0x22')]){delete _0x2f6c47['name'];}_0x52882f[_0x0ecd('0x17')](_0x52a414)[_0x0ecd('0x23')](_0x2f6c47);};}exports[_0x0ecd('0x24')]=function(_0x4731f2,_0x36773d){var _0x37dca2={},_0x6d9124={},_0x5102ba={'count':0x0,'rows':[]};var _0xde8631=db[_0x0ecd('0x25')][_0x0ecd('0x26')];_0x6d9124[_0x0ecd('0x27')]=_[_0x0ecd('0x28')](_0xde8631);var _0x2eb011={'dateStart':_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x2a')],'dateEnd':_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x2b')]};delete _0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x2a')];delete _0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x2b')];_0x6d9124[_0x0ecd('0x29')]=_[_0x0ecd('0x28')](_0x4731f2['query']);_0x6d9124['filters']=_[_0x0ecd('0x2c')](_0x6d9124[_0x0ecd('0x27')],_0x6d9124[_0x0ecd('0x29')]);_0x37dca2['attributes']=_[_0x0ecd('0x2c')](_0x6d9124[_0x0ecd('0x27')],qs[_0x0ecd('0x2d')](_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x2d')]));_0x37dca2[_0x0ecd('0x2e')]=_0x37dca2[_0x0ecd('0x2e')][_0x0ecd('0x2f')]?_0x37dca2[_0x0ecd('0x2e')]:_0x6d9124[_0x0ecd('0x27')];if(!_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x30')](_0x0ecd('0x31'))){_0x37dca2[_0x0ecd('0x19')]=qs[_0x0ecd('0x19')](_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x19')]);_0x37dca2[_0x0ecd('0x32')]=qs[_0x0ecd('0x32')](_0x4731f2[_0x0ecd('0x29')]['offset']);}_0x37dca2['order']=qs[_0x0ecd('0x33')](_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x33')]);_0x37dca2[_0x0ecd('0x34')]=qs[_0x0ecd('0x35')](_[_0x0ecd('0x36')](_0x4731f2[_0x0ecd('0x29')],_0x6d9124[_0x0ecd('0x35')]));if(_0x2eb011[_0x0ecd('0x2a')]){if(_0x2eb011[_0x0ecd('0x2b')]){_0x2eb011[_0x0ecd('0x2b')]=moment(_0x2eb011['dateEnd'])['add'](0x1,_0x0ecd('0x37'));}else{_0x2eb011[_0x0ecd('0x2b')]=moment(_0x2eb011['dateStart'])[_0x0ecd('0x38')](0x1,_0x0ecd('0x37'));}_[_0x0ecd('0x39')](_0x37dca2['where'],{'createdAt':{'$gte':_0x2eb011[_0x0ecd('0x2a')],'$lte':_0x2eb011[_0x0ecd('0x2b')]}});}if(_0x4731f2[_0x0ecd('0x29')]['filter']){_0x37dca2[_0x0ecd('0x34')]=_[_0x0ecd('0x39')](_0x37dca2[_0x0ecd('0x34')],{'$or':_[_0x0ecd('0x3a')](_0x37dca2[_0x0ecd('0x2e')],function(_0x596e56){var _0x2a4336={};_0x2a4336[_0x596e56]={'$like':'%'+_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x3b')]+'%'};return _0x2a4336;})});}_0x37dca2=_['merge']({},_0x37dca2,_0x4731f2['options']);var _0x21748c={'where':_0x37dca2[_0x0ecd('0x34')]};return db[_0x0ecd('0x25')][_0x0ecd('0x3c')](_0x21748c)['then'](function(_0x2cbe97){_0x5102ba[_0x0ecd('0x3c')]=_0x2cbe97;if(_0x4731f2[_0x0ecd('0x29')][_0x0ecd('0x3d')]){_0x37dca2[_0x0ecd('0x3e')]=[{'all':!![]}];}return db[_0x0ecd('0x25')][_0x0ecd('0x3f')](_0x37dca2);})['then'](function(_0x29ee42){_0x5102ba[_0x0ecd('0x40')]=_0x29ee42;return _0x5102ba;})[_0x0ecd('0x1f')](respondWithFilteredResult(_0x36773d,_0x37dca2))[_0x0ecd('0x41')](handleError(_0x36773d,null));};exports[_0x0ecd('0x42')]=function(_0x19cbf4,_0x447eab){var _0x26f86={'raw':![],'where':{'id':_0x19cbf4[_0x0ecd('0x43')]['id']}},_0xc660f={};_0xc660f[_0x0ecd('0x27')]=_[_0x0ecd('0x28')](db['AnalyticCustomReport'][_0x0ecd('0x26')]);_0xc660f[_0x0ecd('0x29')]=_[_0x0ecd('0x28')](_0x19cbf4['query']);_0xc660f[_0x0ecd('0x35')]=_[_0x0ecd('0x2c')](_0xc660f[_0x0ecd('0x27')],_0xc660f[_0x0ecd('0x29')]);_0x26f86[_0x0ecd('0x2e')]=_[_0x0ecd('0x2c')](_0xc660f['model'],qs[_0x0ecd('0x2d')](_0x19cbf4[_0x0ecd('0x29')]['fields']));_0x26f86[_0x0ecd('0x2e')]=_0x26f86[_0x0ecd('0x2e')]['length']?_0x26f86['attributes']:_0xc660f[_0x0ecd('0x27')];if(_0x19cbf4[_0x0ecd('0x29')]['includeAll']){_0x26f86[_0x0ecd('0x3e')]=[{'all':!![]}];}_0x26f86=_['merge']({},_0x26f86,_0x19cbf4[_0x0ecd('0x44')]);return db[_0x0ecd('0x25')][_0x0ecd('0x45')](_0x26f86)[_0x0ecd('0x1f')](handleEntityNotFound(_0x447eab,null))[_0x0ecd('0x1f')](respondWithResult(_0x447eab,null))[_0x0ecd('0x41')](handleError(_0x447eab,null));};exports[_0x0ecd('0x46')]=function(_0x4fd26d,_0x15d4c4){return db['AnalyticCustomReport'][_0x0ecd('0x46')](_0x4fd26d[_0x0ecd('0x47')],{})['then'](respondWithResult(_0x15d4c4,0xc9))[_0x0ecd('0x41')](handleError(_0x15d4c4,null));};exports[_0x0ecd('0x1e')]=function(_0x4db685,_0x31a6a3){if(_0x4db685[_0x0ecd('0x47')]['id']){delete _0x4db685[_0x0ecd('0x47')]['id'];}return db[_0x0ecd('0x25')][_0x0ecd('0x45')]({'where':{'id':_0x4db685[_0x0ecd('0x43')]['id']}})[_0x0ecd('0x1f')](handleEntityNotFound(_0x31a6a3,null))['then'](saveUpdates(_0x4db685[_0x0ecd('0x47')],null))['then'](respondWithResult(_0x31a6a3,null))[_0x0ecd('0x41')](handleError(_0x31a6a3,null));};exports['destroy']=function(_0x110a71,_0x553ff5){return db[_0x0ecd('0x25')][_0x0ecd('0x45')]({'where':{'id':_0x110a71['params']['id']}})[_0x0ecd('0x1f')](handleEntityNotFound(_0x553ff5,null))[_0x0ecd('0x1f')](removeEntity(_0x553ff5,null))[_0x0ecd('0x41')](handleError(_0x553ff5,null));};exports[_0x0ecd('0x48')]=function(_0xd3106a,_0x7f6f78){var _0x3def09=0xa;var _0x116d53=[_0x0ecd('0x49'),'left_join',_0x0ecd('0x4a'),_0x0ecd('0x4b'),'cross_join'];var _0x21ac63={'SUM':_0x0ecd('0x4c'),'COUNT':_0x0ecd('0x4d'),'COUNT DISTINCT':_0x0ecd('0x4e'),'MAX':_0x0ecd('0x4f'),'MIN':_0x0ecd('0x50'),'AVG':_0x0ecd('0x51'),'GROUP_CONCAT':_0x0ecd('0x52'),'GROUP_CONCAT ASC':_0x0ecd('0x53'),'GROUP_CONCAT DESC':_0x0ecd('0x54')};var _0x9d1839={'SEC_TO_TIME':_0x0ecd('0x55'),'DATE':'DATE(%s)','HOUR':_0x0ecd('0x56'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x0ecd('0x57')};var _0x596c21=function(_0x5a3833){return!_[_0x0ecd('0x58')]([_0x0ecd('0x59'),_0x0ecd('0x5a'),_0x0ecd('0x5b'),_0x0ecd('0x5c')],_0x5a3833);};var _0x543a74=function(_0x2ea99e){if(!_0x2ea99e||!_0x2ea99e[_0x0ecd('0x5d')][_0x0ecd('0x2f')]){return'';}for(var _0x11d117='(',_0x3155b0=0x0;_0x3155b0<_0x2ea99e[_0x0ecd('0x5d')][_0x0ecd('0x2f')];_0x3155b0+=0x1){_0x3155b0>0x0&&(_0x11d117+='\x20'+_0x2ea99e[_0x0ecd('0x5e')]+'\x20');_0x11d117+=_0x2ea99e['rules'][_0x3155b0][_0x0ecd('0x5f')]?_0x543a74(_0x2ea99e[_0x0ecd('0x5d')][_0x3155b0][_0x0ecd('0x5f')]):_0x2ea99e[_0x0ecd('0x5d')][_0x3155b0]['field']+'\x20'+_0x2ea99e[_0x0ecd('0x5d')][_0x3155b0][_0x0ecd('0x60')]+(_0x596c21(_0x2ea99e[_0x0ecd('0x5d')][_0x3155b0][_0x0ecd('0x60')])?'\x20'+_0x2ea99e['rules'][_0x3155b0]['value']:'');}return _0x11d117+')';};var _0x38c743={'where':{'id':_0xd3106a['params']['id']}},_0x2b0ba2,_0x4658a8,_0x51b77d,_0xaea642,_0xfc0131;_0x38c743=_[_0x0ecd('0x39')]({},_0x38c743,_0xd3106a[_0x0ecd('0x44')]);return db[_0x0ecd('0x25')][_0x0ecd('0x45')](_0x38c743)[_0x0ecd('0x1f')](function(_0x1bcd96){if(_0x1bcd96){_0x2b0ba2=_0x1bcd96;return _0x1bcd96[_0x0ecd('0x61')]();}return null;})['then'](function(_0x4c22a1){if(_0x4c22a1){if(!_0x4c22a1['length']){throw new db[(_0x0ecd('0x62'))]['ValidationErrorItem'](_0x0ecd('0x63'),0x193);}_0x4658a8=_0x4c22a1;return db[_0x0ecd('0x64')]['findAll']({'raw':!![]});}return null;})[_0x0ecd('0x1f')](function(_0x58fdc1){if(_0x58fdc1){_0x51b77d=_[_0x0ecd('0x65')](_0x58fdc1,'id');var _0x261892;var _0x1e2749=squel[_0x0ecd('0x66')]();_0x1e2749[_0x0ecd('0x67')](_0x2b0ba2[_0x0ecd('0x68')]);for(var _0x563a8d=0x0;_0x563a8d<_0x4658a8['length'];_0x563a8d+=0x1){_0x261892=_0x4658a8[_0x563a8d][_0x0ecd('0x69')]?_0x51b77d[_0x4658a8[_0x563a8d][_0x0ecd('0x69')]][_0x0ecd('0x6a')]:_0x4658a8[_0x563a8d][_0x0ecd('0x6b')];_0x261892=_0x4658a8[_0x563a8d][_0x0ecd('0x6c')]?_[_0x0ecd('0x6d')](_0x21ac63[_0x4658a8[_0x563a8d]['function']],'%s',_0x261892):_0x261892;_0x261892=_0x4658a8[_0x563a8d][_0x0ecd('0x6e')]?_[_0x0ecd('0x6d')](_0x9d1839[_0x4658a8[_0x563a8d][_0x0ecd('0x6e')]],'%s',_0x261892):_0x261892;if(_0x4658a8[_0x563a8d]['groupBy']){_0x1e2749[_0x0ecd('0x5f')](_0x261892);}_0x4658a8[_0x563a8d][_0x0ecd('0x6f')]&&_0x1e2749[_0x0ecd('0x70')](_0x261892,_0x4658a8[_0x563a8d][_0x0ecd('0x6f')]===_0x0ecd('0x71')?![]:!![]);_0x1e2749[_0x0ecd('0x6b')](_0x261892,_0x4658a8[_0x563a8d][_0x0ecd('0x72')]||_0x261892);}if(_0x2b0ba2[_0x0ecd('0x73')]){_0x2b0ba2[_0x0ecd('0x73')]=JSON[_0x0ecd('0x74')](_0x2b0ba2[_0x0ecd('0x73')]);for(var _0x1e8a95=0x0;_0x1e8a95<_0x2b0ba2[_0x0ecd('0x73')][_0x0ecd('0x2f')];_0x1e8a95+=0x1){if(_0x2b0ba2['joins'][_0x1e8a95][_0x0ecd('0x75')]&&_[_0x0ecd('0x58')](_0x116d53,_0x2b0ba2[_0x0ecd('0x73')][_0x1e8a95][_0x0ecd('0x75')])&&_0x2b0ba2[_0x0ecd('0x73')][_0x1e8a95][_0x0ecd('0x76')]&&_0x2b0ba2['joins'][_0x1e8a95][_0x0ecd('0x77')]&&_0x2b0ba2[_0x0ecd('0x73')][_0x1e8a95][_0x0ecd('0x78')]){_0x1e2749[_0x2b0ba2[_0x0ecd('0x73')][_0x1e8a95]['type']](_0x2b0ba2[_0x0ecd('0x73')][_0x1e8a95]['foreignTable'],null,util[_0x0ecd('0x6e')](_0x0ecd('0x79'),_0x2b0ba2['table'],_0x2b0ba2['joins'][_0x1e8a95]['parentKey'],_0x2b0ba2[_0x0ecd('0x73')][_0x1e8a95][_0x0ecd('0x77')],_0x2b0ba2['joins'][_0x1e8a95][_0x0ecd('0x78')]));}}}if(_0x2b0ba2[_0x0ecd('0x7a')]){_0x2b0ba2[_0x0ecd('0x7a')]=JSON[_0x0ecd('0x74')](_0x2b0ba2['conditions']);_0x1e2749[_0x0ecd('0x34')](_0x543a74(_0x2b0ba2[_0x0ecd('0x7a')]['group']));}_0xfc0131=_0x1e2749[_0x0ecd('0x7b')]();_0x1e2749[_0x0ecd('0x19')](_0x3def09);_0x1e2749['offset'](0x0);logger['debug'](_0x0ecd('0x7c'),_0x1e2749[_0x0ecd('0x7d')]());return db[_0x0ecd('0x7e')][_0x0ecd('0x29')](_0x1e2749[_0x0ecd('0x7d')](),{'type':db[_0x0ecd('0x7e')]['QueryTypes'][_0x0ecd('0x7f')]});}})[_0x0ecd('0x1f')](respondWithResult(_0x7f6f78,null))['catch'](handleError(_0x7f6f78,null));};function runReport(_0x118413,_0x3652db,_0x5c358b){var _0x17e644=_0x3652db['name'];var _0x6dcdb4=0xa;var _0x2ea36c=[_0x0ecd('0x49'),_0x0ecd('0x80'),_0x0ecd('0x4a'),_0x0ecd('0x4b'),_0x0ecd('0x81')];var _0x2d30e1={'SUM':_0x0ecd('0x4c'),'COUNT':_0x0ecd('0x4d'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x0ecd('0x4f'),'MIN':'MIN(%s)','AVG':_0x0ecd('0x51'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x0ecd('0x54')};var _0x2755a9={'SEC_TO_TIME':_0x0ecd('0x55'),'DATE':_0x0ecd('0x82'),'HOUR':_0x0ecd('0x56'),'ROUND':_0x0ecd('0x83'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x2efd03=function(_0xcd46b){return!_[_0x0ecd('0x58')]([_0x0ecd('0x59'),'IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY'],_0xcd46b);};var _0x37b6ef=function(_0x544d52){if(!_0x544d52||!_0x544d52[_0x0ecd('0x5d')]['length']){return'';}for(var _0x9960c2='(',_0x5519f4=0x0;_0x5519f4<_0x544d52[_0x0ecd('0x5d')][_0x0ecd('0x2f')];_0x5519f4+=0x1){_0x5519f4>0x0&&(_0x9960c2+='\x20'+_0x544d52[_0x0ecd('0x5e')]+'\x20');_0x9960c2+=_0x544d52[_0x0ecd('0x5d')][_0x5519f4]['group']?_0x37b6ef(_0x544d52[_0x0ecd('0x5d')][_0x5519f4][_0x0ecd('0x5f')]):_0x544d52[_0x0ecd('0x5d')][_0x5519f4]['field']+'\x20'+_0x544d52['rules'][_0x5519f4][_0x0ecd('0x60')]+(_0x2efd03(_0x544d52[_0x0ecd('0x5d')][_0x5519f4]['condition'])?'\x20'+_0x544d52[_0x0ecd('0x5d')][_0x5519f4]['value']:'');}return _0x9960c2+')';};var _0x19e38e={'where':{'id':_0x118413['id']}},_0x7efb23,_0x500ed1,_0x139ac0,_0x453ef8,_0x4b40e3;_0x19e38e=_[_0x0ecd('0x39')]({},_0x19e38e,_0x5c358b);return db[_0x0ecd('0x25')][_0x0ecd('0x45')](_0x19e38e)['then'](function(_0x1363d2){if(_0x1363d2){_0x7efb23=_0x1363d2;return _0x1363d2[_0x0ecd('0x61')]();}return null;})[_0x0ecd('0x1f')](function(_0x5ecf2d){if(_0x5ecf2d){if(!_0x5ecf2d[_0x0ecd('0x2f')]){throw new db[(_0x0ecd('0x62'))]['ValidationErrorItem'](_0x0ecd('0x63'),0x193);}_0x500ed1=_0x5ecf2d;return db[_0x0ecd('0x64')][_0x0ecd('0x3f')]({'raw':!![]});}return null;})[_0x0ecd('0x1f')](function(_0xde3b98){if(_0xde3b98){_0x139ac0=_['keyBy'](_0xde3b98,'id');var _0x5ce8f2;var _0xea03f1=squel[_0x0ecd('0x66')]();_0xea03f1[_0x0ecd('0x67')](_0x7efb23[_0x0ecd('0x68')]);for(var _0x162a8c=0x0;_0x162a8c<_0x500ed1[_0x0ecd('0x2f')];_0x162a8c+=0x1){_0x5ce8f2=_0x500ed1[_0x162a8c][_0x0ecd('0x69')]?_0x139ac0[_0x500ed1[_0x162a8c]['MetricId']][_0x0ecd('0x6a')]:_0x500ed1[_0x162a8c]['field'];_0x5ce8f2=_0x500ed1[_0x162a8c][_0x0ecd('0x6c')]?_[_0x0ecd('0x6d')](_0x2d30e1[_0x500ed1[_0x162a8c][_0x0ecd('0x6c')]],'%s',_0x5ce8f2):_0x5ce8f2;_0x5ce8f2=_0x500ed1[_0x162a8c][_0x0ecd('0x6e')]?_[_0x0ecd('0x6d')](_0x2755a9[_0x500ed1[_0x162a8c][_0x0ecd('0x6e')]],'%s',_0x5ce8f2):_0x5ce8f2;if(_0x500ed1[_0x162a8c][_0x0ecd('0x84')]){_0xea03f1[_0x0ecd('0x5f')](_0x5ce8f2);}_0x500ed1[_0x162a8c][_0x0ecd('0x6f')]&&_0xea03f1['order'](_0x5ce8f2,_0x500ed1[_0x162a8c]['orderBy']===_0x0ecd('0x71')?![]:!![]);_0xea03f1[_0x0ecd('0x6b')](_0x5ce8f2,_0x500ed1[_0x162a8c][_0x0ecd('0x72')]||_0x5ce8f2);}if(_0x7efb23[_0x0ecd('0x73')]){_0x7efb23[_0x0ecd('0x73')]=JSON[_0x0ecd('0x74')](_0x7efb23[_0x0ecd('0x73')]);for(var _0x3026f6=0x0;_0x3026f6<_0x7efb23['joins']['length'];_0x3026f6+=0x1){if(_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x75')]&&_[_0x0ecd('0x58')](_0x2ea36c,_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x75')])&&_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x76')]&&_0x7efb23[_0x0ecd('0x73')][_0x3026f6]['foreignTable']&&_0x7efb23['joins'][_0x3026f6][_0x0ecd('0x78')]){_0xea03f1[_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x75')]](_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x77')],null,util[_0x0ecd('0x6e')]('%s.%s\x20=\x20%s.%s',_0x7efb23[_0x0ecd('0x68')],_0x7efb23[_0x0ecd('0x73')][_0x3026f6]['parentKey'],_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x77')],_0x7efb23[_0x0ecd('0x73')][_0x3026f6][_0x0ecd('0x78')]));}}}if(_0x7efb23[_0x0ecd('0x7a')]){_0x7efb23['conditions']=JSON[_0x0ecd('0x74')](_0x7efb23[_0x0ecd('0x7a')]);_0xea03f1[_0x0ecd('0x34')](_0x37b6ef(_0x7efb23['conditions'][_0x0ecd('0x5f')]));}_0x4b40e3=_0xea03f1[_0x0ecd('0x7b')]();_0xea03f1[_0x0ecd('0x19')](_0x6dcdb4);_0xea03f1['offset'](0x0);logger[_0x0ecd('0x85')](_0x0ecd('0x7c'),_0xea03f1['toString']());return db[_0x0ecd('0x7e')][_0x0ecd('0x29')](_0xea03f1[_0x0ecd('0x7d')](),{'type':db[_0x0ecd('0x7e')]['QueryTypes'][_0x0ecd('0x7f')]});}})[_0x0ecd('0x1f')](function(_0x1ccb4f){if(!_0x1ccb4f[_0x0ecd('0x2f')]){throw new db[(_0x0ecd('0x62'))]['ValidationErrorItem'](_0x0ecd('0x86'),0xcc);}if(_0x3652db[_0x0ecd('0x87')]==='web'){return null;}var _0x5d1356=_[_0x0ecd('0x39')](_0x3652db,{'name':_0x3652db[_0x0ecd('0x88')]||_0x3652db[_0x0ecd('0x22')]||_0x7efb23['name'],'basename':_0x17e644,'savename':util[_0x0ecd('0x6e')](_0x0ecd('0x89'),_0x3652db['name']||_0x7efb23[_0x0ecd('0x22')],require(_0x0ecd('0x8a'))[_0x0ecd('0x8b')](0x4),_0x3652db['output']||_0x0ecd('0x8c'))});return db[_0x0ecd('0x8d')][_0x0ecd('0x46')](_0x5d1356,{'raw':!![]});})[_0x0ecd('0x1f')](function(_0x268ce5){if(_0x7efb23[_0x0ecd('0x68')]===_0x0ecd('0x8e')){_0x4b40e3['where'](_0x7efb23['table']+_0x0ecd('0x8f'),_0x3652db[_0x0ecd('0x90')],_0x3652db[_0x0ecd('0x91')]);}else{_0x4b40e3[_0x0ecd('0x34')](_0x7efb23[_0x0ecd('0x68')]+_0x0ecd('0x92'),_0x3652db[_0x0ecd('0x90')],_0x3652db[_0x0ecd('0x91')]);}if(_0x268ce5){logger[_0x0ecd('0x93')](_0x0ecd('0x94'),_0x4b40e3[_0x0ecd('0x7d')]());require('child_process')[_0x0ecd('0x95')](path['join'](__dirname,_0x0ecd('0x96'),_0x268ce5[_0x0ecd('0x87')]),[_0x268ce5['id'],_0x4b40e3[_0x0ecd('0x7d')](),path[_0x0ecd('0x49')](__dirname,_0x0ecd('0x97'),_0x268ce5[_0x0ecd('0x98')]),_0x17e644]);return _0x268ce5;}else{var _0x7806a5=squel[_0x0ecd('0x66')]();_0x7806a5[_0x0ecd('0x67')]('('+_0x4b40e3[_0x0ecd('0x7d')]()+')',_0x0ecd('0x99'));_0x7806a5[_0x0ecd('0x6b')](_0x0ecd('0x9a'),_0x0ecd('0x3c'));_0x4b40e3['limit'](_0x3652db[_0x0ecd('0x19')]||_0x6dcdb4);_0x4b40e3['offset'](_0x3652db['offset']||0x0);return db[_0x0ecd('0x7e')][_0x0ecd('0x29')](_0x7806a5[_0x0ecd('0x7d')](),{'type':db[_0x0ecd('0x7e')][_0x0ecd('0x9b')][_0x0ecd('0x7f')]})[_0x0ecd('0x1f')](function(_0x1c1f00){if(!_0x1c1f00['length']){_0x453ef8=0x0;}else{_0x453ef8=_0x1c1f00[0x0][_0x0ecd('0x3c')]||0x0;}return db[_0x0ecd('0x7e')][_0x0ecd('0x29')](_0x4b40e3[_0x0ecd('0x7d')](),{'type':db[_0x0ecd('0x7e')][_0x0ecd('0x9b')][_0x0ecd('0x7f')]});})[_0x0ecd('0x1f')](function(_0x55862b){return{'rows':_0x55862b||[],'count':_0x453ef8};});}});}exports['run']=function(_0x271651,_0x2f423f){return runReport(_0x271651['params'],_0x271651['query'],_0x271651[_0x0ecd('0x44')])[_0x0ecd('0x1f')](respondWithResult(_0x2f423f,null))[_0x0ecd('0x41')](handleError(_0x2f423f,null));};exports[_0x0ecd('0x9c')]=runReport;exports[_0x0ecd('0x29')]=function(_0x71665e,_0xe6651d){var _0x360df2=0xa;var _0x121b1a=[_0x0ecd('0x49'),_0x0ecd('0x80'),_0x0ecd('0x4a'),_0x0ecd('0x4b'),'cross_join'];var _0x430ed8={'SUM':_0x0ecd('0x4c'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x0ecd('0x50'),'AVG':_0x0ecd('0x51'),'GROUP_CONCAT':_0x0ecd('0x52'),'GROUP_CONCAT ASC':_0x0ecd('0x53'),'GROUP_CONCAT DESC':_0x0ecd('0x54')};var _0x42e7b5={'SEC_TO_TIME':_0x0ecd('0x55'),'DATE':_0x0ecd('0x82'),'HOUR':'HOUR(%s)','ROUND':_0x0ecd('0x83'),'UNIX_TIMESTAMP':_0x0ecd('0x57')};var _0x1d6b8c=function(_0xcb11ec){return!_[_0x0ecd('0x58')]([_0x0ecd('0x59'),_0x0ecd('0x5a'),_0x0ecd('0x5b'),_0x0ecd('0x5c')],_0xcb11ec);};var _0x5908c1=function(_0x2f0d5c){if(!_0x2f0d5c||!_0x2f0d5c[_0x0ecd('0x5d')][_0x0ecd('0x2f')]){return'';}for(var _0x55e6e1='(',_0x531c33=0x0;_0x531c33<_0x2f0d5c[_0x0ecd('0x5d')][_0x0ecd('0x2f')];_0x531c33+=0x1){_0x531c33>0x0&&(_0x55e6e1+='\x20'+_0x2f0d5c[_0x0ecd('0x5e')]+'\x20');_0x55e6e1+=_0x2f0d5c['rules'][_0x531c33][_0x0ecd('0x5f')]?_0x5908c1(_0x2f0d5c[_0x0ecd('0x5d')][_0x531c33][_0x0ecd('0x5f')]):_0x2f0d5c[_0x0ecd('0x5d')][_0x531c33][_0x0ecd('0x6b')]+'\x20'+_0x2f0d5c[_0x0ecd('0x5d')][_0x531c33][_0x0ecd('0x60')]+(_0x1d6b8c(_0x2f0d5c[_0x0ecd('0x5d')][_0x531c33]['condition'])?'\x20'+_0x2f0d5c[_0x0ecd('0x5d')][_0x531c33][_0x0ecd('0x9d')]:'');}return _0x55e6e1+')';};var _0x5c8685={'where':{'id':_0x71665e[_0x0ecd('0x43')]['id']}},_0x4e98b5,_0x3a1ff8,_0x1b0215,_0x12b614,_0x566461;_0x5c8685=_['merge']({},_0x5c8685,_0x71665e[_0x0ecd('0x44')]);return db[_0x0ecd('0x25')]['find'](_0x5c8685)[_0x0ecd('0x1f')](function(_0x35a7e6){if(_0x35a7e6){_0x4e98b5=_0x35a7e6;return _0x35a7e6[_0x0ecd('0x61')]();}return null;})[_0x0ecd('0x1f')](function(_0x401f17){if(_0x401f17){if(!_0x401f17[_0x0ecd('0x2f')]){throw new db[(_0x0ecd('0x62'))][(_0x0ecd('0x9e'))](_0x0ecd('0x63'),0x193);}_0x3a1ff8=_0x401f17;return db[_0x0ecd('0x64')][_0x0ecd('0x3f')]({'raw':!![]});}return null;})[_0x0ecd('0x1f')](function(_0x4abe0c){if(_0x4abe0c){_0x1b0215=_[_0x0ecd('0x65')](_0x4abe0c,'id');var _0x42877b;var _0x2a609e=squel[_0x0ecd('0x66')]();_0x2a609e[_0x0ecd('0x67')](_0x4e98b5[_0x0ecd('0x68')]);for(var _0x4e6026=0x0;_0x4e6026<_0x3a1ff8[_0x0ecd('0x2f')];_0x4e6026+=0x1){_0x42877b=_0x3a1ff8[_0x4e6026][_0x0ecd('0x69')]?_0x1b0215[_0x3a1ff8[_0x4e6026][_0x0ecd('0x69')]][_0x0ecd('0x6a')]:_0x3a1ff8[_0x4e6026][_0x0ecd('0x6b')];_0x42877b=_0x3a1ff8[_0x4e6026][_0x0ecd('0x6c')]?_[_0x0ecd('0x6d')](_0x430ed8[_0x3a1ff8[_0x4e6026]['function']],'%s',_0x42877b):_0x42877b;_0x42877b=_0x3a1ff8[_0x4e6026]['format']?_[_0x0ecd('0x6d')](_0x42e7b5[_0x3a1ff8[_0x4e6026][_0x0ecd('0x6e')]],'%s',_0x42877b):_0x42877b;if(_0x3a1ff8[_0x4e6026][_0x0ecd('0x84')]){_0x2a609e[_0x0ecd('0x5f')](_0x42877b);}_0x3a1ff8[_0x4e6026][_0x0ecd('0x6f')]&&_0x2a609e[_0x0ecd('0x70')](_0x42877b,_0x3a1ff8[_0x4e6026][_0x0ecd('0x6f')]===_0x0ecd('0x71')?![]:!![]);_0x2a609e['field'](_0x42877b,_0x3a1ff8[_0x4e6026][_0x0ecd('0x72')]||_0x42877b);}if(_0x4e98b5[_0x0ecd('0x73')]){_0x4e98b5[_0x0ecd('0x73')]=JSON[_0x0ecd('0x74')](_0x4e98b5['joins']);for(var _0xca578d=0x0;_0xca578d<_0x4e98b5[_0x0ecd('0x73')][_0x0ecd('0x2f')];_0xca578d+=0x1){if(_0x4e98b5[_0x0ecd('0x73')][_0xca578d]['type']&&_[_0x0ecd('0x58')](_0x121b1a,_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x75')])&&_0x4e98b5['joins'][_0xca578d][_0x0ecd('0x76')]&&_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x77')]&&_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x78')]){_0x2a609e[_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x75')]](_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x77')],null,util[_0x0ecd('0x6e')](_0x0ecd('0x79'),_0x4e98b5[_0x0ecd('0x68')],_0x4e98b5['joins'][_0xca578d][_0x0ecd('0x76')],_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x77')],_0x4e98b5[_0x0ecd('0x73')][_0xca578d][_0x0ecd('0x78')]));}}}if(_0x4e98b5[_0x0ecd('0x7a')]){_0x4e98b5[_0x0ecd('0x7a')]=JSON[_0x0ecd('0x74')](_0x4e98b5['conditions']);_0x2a609e[_0x0ecd('0x34')](_0x5908c1(_0x4e98b5['conditions'][_0x0ecd('0x5f')]));}_0x566461=_0x2a609e[_0x0ecd('0x7b')]();_0x2a609e['limit'](_0x360df2);_0x2a609e[_0x0ecd('0x32')](0x0);logger['debug'](_0x0ecd('0x7c'),_0x2a609e[_0x0ecd('0x7d')]());return db[_0x0ecd('0x7e')][_0x0ecd('0x29')](_0x2a609e[_0x0ecd('0x7d')](),{'type':db[_0x0ecd('0x7e')][_0x0ecd('0x9b')]['SELECT']});}})[_0x0ecd('0x1f')](function(){return{'sql':_0x566461['toString']()};})['then'](respondWithResult(_0xe6651d,null))[_0x0ecd('0x41')](handleError(_0xe6651d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f3e=['exports','define','AnalyticCustomReport','util','../../config/logger','api','moment','bluebird','request-promise','./analyticCustomReport.attributes'];(function(_0x4500df,_0x53a241){var _0x377130=function(_0x5ed102){while(--_0x5ed102){_0x4500df['push'](_0x4500df['shift']());}};_0x377130(++_0x53a241);}(_0x4f3e,0x175));var _0xe4f3=function(_0x32ed33,_0x1454d8){_0x32ed33=_0x32ed33-0x0;var _0x4e67b4=_0x4f3e[_0x32ed33];return _0x4e67b4;};'use strict';var _=require('lodash');var util=require(_0xe4f3('0x0'));var logger=require(_0xe4f3('0x1'))(_0xe4f3('0x2'));var moment=require(_0xe4f3('0x3'));var BPromise=require(_0xe4f3('0x4'));var rp=require(_0xe4f3('0x5'));var attributes=require(_0xe4f3('0x6'));module[_0xe4f3('0x7')]=function(_0x3e927a,_0x3d52ee){return _0x3e927a[_0xe4f3('0x8')](_0xe4f3('0x9'),attributes,{'tableName':'analytics_custom_reports','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1507=['define','AnalyticCustomReport','lodash','../../config/logger','api','moment','bluebird','request-promise','./analyticCustomReport.attributes','exports'];(function(_0x5af0a2,_0x382aa2){var _0x1dc9a1=function(_0x3f3a6d){while(--_0x3f3a6d){_0x5af0a2['push'](_0x5af0a2['shift']());}};_0x1dc9a1(++_0x382aa2);}(_0x1507,0xb6));var _0x7150=function(_0x19cce8,_0x23a814){_0x19cce8=_0x19cce8-0x0;var _0x575f93=_0x1507[_0x19cce8];return _0x575f93;};'use strict';var _=require(_0x7150('0x0'));var util=require('util');var logger=require(_0x7150('0x1'))(_0x7150('0x2'));var moment=require(_0x7150('0x3'));var BPromise=require(_0x7150('0x4'));var rp=require(_0x7150('0x5'));var attributes=require(_0x7150('0x6'));module[_0x7150('0x7')]=function(_0x3bdae9,_0x59011b){return _0x3bdae9[_0x7150('0x8')](_0x7150('0x9'),attributes,{'tableName':'analytics_custom_reports','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb181=['../../config/environment','jayson/promise','request','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','../../mysqldb','../../config/utils'];(function(_0x4e17b9,_0x42a375){var _0x5f5c49=function(_0xef4519){while(--_0xef4519){_0x4e17b9['push'](_0x4e17b9['shift']());}};_0x5f5c49(++_0x42a375);}(_0xb181,0x1b3));var _0x1b18=function(_0x27573e,_0x29d585){_0x27573e=_0x27573e-0x0;var _0x1d62f8=_0xb181[_0x27573e];return _0x1d62f8;};'use strict';var _=require(_0x1b18('0x0'));var util=require(_0x1b18('0x1'));var moment=require(_0x1b18('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x1b18('0x3'))['db'];var utils=require(_0x1b18('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x1b18('0x5'));var jayson=require(_0x1b18('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2091db,_0x31c7ce,_0xaf59e0){return new BPromise(function(_0x52902c,_0x49a71a){return client[_0x1b18('0x7')](_0x2091db,_0xaf59e0)[_0x1b18('0x8')](function(_0x453893){logger[_0x1b18('0x9')](_0x1b18('0xa'),_0x31c7ce,_0x1b18('0xb'));logger[_0x1b18('0xc')](_0x1b18('0xd'),_0x31c7ce,_0x1b18('0xb'),JSON[_0x1b18('0xe')](_0x453893));if(_0x453893[_0x1b18('0xf')]){if(_0x453893['error'][_0x1b18('0x10')]===0x1f4){logger[_0x1b18('0xf')](_0x1b18('0xa'),_0x31c7ce,_0x453893[_0x1b18('0xf')][_0x1b18('0x11')]);return _0x49a71a(_0x453893['error'][_0x1b18('0x11')]);}logger[_0x1b18('0xf')]('AnalyticCustomReport,\x20%s,\x20%s',_0x31c7ce,_0x453893[_0x1b18('0xf')][_0x1b18('0x11')]);return _0x52902c(_0x453893[_0x1b18('0xf')][_0x1b18('0x11')]);}else{logger['info'](_0x1b18('0xa'),_0x31c7ce,_0x1b18('0xb'));_0x52902c(_0x453893[_0x1b18('0x12')][_0x1b18('0x11')]);}})[_0x1b18('0x13')](function(_0x4ba235){logger['error'](_0x1b18('0xa'),_0x31c7ce,_0x4ba235);_0x49a71a(_0x4ba235);});});}
\ No newline at end of file
+var _0xd8b0=['../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','ioredis'];(function(_0x5e944a,_0x2847b4){var _0x38f07b=function(_0x433e88){while(--_0x433e88){_0x5e944a['push'](_0x5e944a['shift']());}};_0x38f07b(++_0x2847b4);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0d8b('0x2'));var db=require(_0x0d8b('0x3'))['db'];var utils=require(_0x0d8b('0x4'));var logger=require(_0x0d8b('0x5'))(_0x0d8b('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0d8b('0x7')][_0x0d8b('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x39f43a,_0x4a4470,_0x413284){return new BPromise(function(_0x284169,_0x58e4e2){return client[_0x0d8b('0x9')](_0x39f43a,_0x413284)[_0x0d8b('0xa')](function(_0x3b027f){logger[_0x0d8b('0xb')](_0x0d8b('0xc'),_0x4a4470,_0x0d8b('0xd'));logger[_0x0d8b('0xe')](_0x0d8b('0xf'),_0x4a4470,'request\x20sent',JSON[_0x0d8b('0x10')](_0x3b027f));if(_0x3b027f['error']){if(_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x12')]===0x1f4){logger[_0x0d8b('0x11')](_0x0d8b('0xc'),_0x4a4470,_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);return _0x58e4e2(_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);}logger[_0x0d8b('0x11')](_0x0d8b('0xc'),_0x4a4470,_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);return _0x284169(_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);}else{logger['info'](_0x0d8b('0xc'),_0x4a4470,_0x0d8b('0xd'));_0x284169(_0x3b027f[_0x0d8b('0x14')][_0x0d8b('0x13')]);}})[_0x0d8b('0x15')](function(_0x5cd485){logger[_0x0d8b('0x11')](_0x0d8b('0xc'),_0x4a4470,_0x5cd485);_0x58e4e2(_0x5cd485);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2272=['preview','/:id/run','run','/:id/query','query','create','put','update','destroy','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','show','/:id/preview'];(function(_0x520144,_0x3dbd07){var _0x48c8f5=function(_0x4a7c7c){while(--_0x4a7c7c){_0x520144['push'](_0x520144['shift']());}};_0x48c8f5(++_0x3dbd07);}(_0x2272,0xd8));var _0x2227=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x2272[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require(_0x2227('0x0'));var util=require(_0x2227('0x1'));var path=require(_0x2227('0x2'));var timeout=require(_0x2227('0x3'));var express=require(_0x2227('0x4'));var router=express['Router']();var auth=require(_0x2227('0x5'));var interaction=require(_0x2227('0x6'));var config=require(_0x2227('0x7'));var controller=require('./analyticCustomReport.controller');router['get']('/',auth[_0x2227('0x8')](),controller[_0x2227('0x9')]);router[_0x2227('0xa')](_0x2227('0xb'),auth[_0x2227('0x8')](),controller[_0x2227('0xc')]);router[_0x2227('0xa')](_0x2227('0xd'),auth[_0x2227('0x8')](),controller[_0x2227('0xe')]);router['get'](_0x2227('0xf'),auth['isAuthenticated'](),controller[_0x2227('0x10')]);router[_0x2227('0xa')](_0x2227('0x11'),auth[_0x2227('0x8')](),controller[_0x2227('0x12')]);router['post']('/',auth[_0x2227('0x8')](),controller[_0x2227('0x13')]);router[_0x2227('0x14')](_0x2227('0xb'),auth[_0x2227('0x8')](),controller[_0x2227('0x15')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x2227('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0x6a95=['get','isAuthenticated','index','/:id','/:id/preview','/:id/run','run','/:id/query','query','post','create','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','./analyticCustomReport.controller'];(function(_0x3dea7d,_0x2cd4ea){var _0x53919a=function(_0x1554e2){while(--_0x1554e2){_0x3dea7d['push'](_0x3dea7d['shift']());}};_0x53919a(++_0x2cd4ea);}(_0x6a95,0x1db));var _0x56a9=function(_0x4d07cc,_0x587613){_0x4d07cc=_0x4d07cc-0x0;var _0x42de3b=_0x6a95[_0x4d07cc];return _0x42de3b;};'use strict';var multer=require(_0x56a9('0x0'));var util=require(_0x56a9('0x1'));var path=require(_0x56a9('0x2'));var timeout=require(_0x56a9('0x3'));var express=require(_0x56a9('0x4'));var router=express[_0x56a9('0x5')]();var auth=require(_0x56a9('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x56a9('0x7'));router[_0x56a9('0x8')]('/',auth[_0x56a9('0x9')](),controller[_0x56a9('0xa')]);router[_0x56a9('0x8')](_0x56a9('0xb'),auth[_0x56a9('0x9')](),controller['show']);router['get'](_0x56a9('0xc'),auth[_0x56a9('0x9')](),controller['preview']);router[_0x56a9('0x8')](_0x56a9('0xd'),auth[_0x56a9('0x9')](),controller[_0x56a9('0xe')]);router[_0x56a9('0x8')](_0x56a9('0xf'),auth[_0x56a9('0x9')](),controller[_0x56a9('0x10')]);router[_0x56a9('0x11')]('/',auth['isAuthenticated'](),controller[_0x56a9('0x12')]);router['put'](_0x56a9('0xb'),auth[_0x56a9('0x9')](),controller[_0x56a9('0x13')]);router[_0x56a9('0x14')](_0x56a9('0xb'),auth[_0x56a9('0x9')](),controller[_0x56a9('0x15')]);module[_0x56a9('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x555b=['STRING','TEXT','sequelize','exports'];(function(_0x49beea,_0x47add1){var _0x27693a=function(_0x192ed8){while(--_0x192ed8){_0x49beea['push'](_0x49beea['shift']());}};_0x27693a(++_0x47add1);}(_0x555b,0xca));var _0xb555=function(_0x31e3e5,_0xf70f85){_0x31e3e5=_0x31e3e5-0x0;var _0x43faca=_0x555b[_0x31e3e5];return _0x43faca;};'use strict';var Sequelize=require(_0xb555('0x0'));module[_0xb555('0x1')]={'name':{'type':Sequelize[_0xb555('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xb555('0x2')]},'parent':{'type':Sequelize[_0xb555('0x2')]},'table':{'type':Sequelize[_0xb555('0x2')]},'conditions':{'type':Sequelize[_0xb555('0x3')]},'joins':{'type':Sequelize[_0xb555('0x3')]}};
\ No newline at end of file
+var _0x7116=['TEXT','STRING'];(function(_0xc69f39,_0x2ce0cf){var _0x93be41=function(_0xd66056){while(--_0xd66056){_0xc69f39['push'](_0xc69f39['shift']());}};_0x93be41(++_0x2ce0cf);}(_0x7116,0x12f));var _0x6711=function(_0x2a9b1f,_0x5955d9){_0x2a9b1f=_0x2a9b1f-0x0;var _0x4e932d=_0x7116[_0x2a9b1f];return _0x4e932d;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x6711('0x0')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize[_0x6711('0x0')]},'conditions':{'type':Sequelize[_0x6711('0x1')]},'joins':{'type':Sequelize[_0x6711('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bb7=['table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','joins','parse','type','includes','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','outer_join','ROUND(%s)','Sequelize','keyBy','alias','parentKey','No\x20available\x20data','web','fullPath','%s-%s.%s','randomstring','generate','AnalyticExtractedReport','endDate','info','Run\x20Query:','fork','../../components/export/','output','../../files/reports','savename','countTable','COUNT(*)','run','runReport','MAX(%s)','eml-format','zip-dir','moment','bluebird','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','AnalyticDefaultReport','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','pick','add','day','merge','where','filter','map','options','includeAll','include','rows','catch','show','find','create','body','params','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','select','from'];(function(_0x5e8ff8,_0x3e8081){var _0x258962=function(_0x4e5023){while(--_0x4e5023){_0x5e8ff8['push'](_0x5e8ff8['shift']());}};_0x258962(++_0x3e8081);}(_0x0bb7,0xcc));var _0x70bb=function(_0x54a31f,_0x2f5ea7){_0x54a31f=_0x54a31f-0x0;var _0xf03ea5=_0x0bb7[_0x54a31f];return _0xf03ea5;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x70bb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x70bb('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x70bb('0x2'));var BPromise=require(_0x70bb('0x3'));var Mustache=require('mustache');var util=require(_0x70bb('0x4'));var path=require('path');var sox=require(_0x70bb('0x5'));var csv=require('to-csv');var ejs=require(_0x70bb('0x6'));var fs=require('fs');var _=require(_0x70bb('0x7'));var squel=require(_0x70bb('0x8'));var crypto=require(_0x70bb('0x9'));var jsforce=require(_0x70bb('0xa'));var deskjs=require(_0x70bb('0xb'));var toCsv=require(_0x70bb('0xc'));var querystring=require('querystring');var Papa=require(_0x70bb('0xd'));var qs=require(_0x70bb('0xe'));var logger=require('../../config/logger')(_0x70bb('0xf'));var utils=require(_0x70bb('0x10'));var config=require(_0x70bb('0x11'));var db=require(_0x70bb('0x12'))['db'];function respondWithStatusCode(_0x455f06,_0x3a7628){_0x3a7628=_0x3a7628||0xcc;return function(_0x463198){if(_0x463198){return _0x455f06[_0x70bb('0x13')](_0x3a7628);}return _0x455f06[_0x70bb('0x14')](_0x3a7628)[_0x70bb('0x15')]();};}function respondWithResult(_0x2c578a,_0x262435){_0x262435=_0x262435||0xc8;return function(_0x199685){if(_0x199685){return _0x2c578a[_0x70bb('0x14')](_0x262435)[_0x70bb('0x16')](_0x199685);}};}function respondWithFilteredResult(_0x5eef77,_0xd57530){return function(_0x3417dc){if(_0x3417dc){var _0x1c022d=_0x3417dc[_0x70bb('0x17')],_0x223441=_0xd57530[_0x70bb('0x18')],_0x16408d=_0xd57530['offset']+_0xd57530['limit'],_0x82360d;if(_0x16408d>=_0x1c022d){_0x16408d=_0x1c022d;_0x82360d=0xc8;}else{_0x82360d=0xce;}_0x5eef77[_0x70bb('0x14')](_0x82360d);return _0x5eef77['set'](_0x70bb('0x19'),_0x223441+'-'+_0x16408d+'/'+_0x1c022d)[_0x70bb('0x16')](_0x3417dc);}return null;};}function patchUpdates(_0x1bd5ad){return function(_0x4250da){try{jsonpatch[_0x70bb('0x1a')](_0x4250da,_0x1bd5ad,!![]);}catch(_0x548840){return BPromise[_0x70bb('0x1b')](_0x548840);}return _0x4250da[_0x70bb('0x1c')]();};}function saveUpdates(_0xbfe3ff,_0x24ab1d){return function(_0x85c2b7){if(_0x85c2b7){return _0x85c2b7[_0x70bb('0x1d')](_0xbfe3ff)['then'](function(_0x4f0fc4){return _0x4f0fc4;});}return null;};}function removeEntity(_0x4a46e1,_0x13b386){return function(_0x352d9b){if(_0x352d9b){return _0x352d9b[_0x70bb('0x1e')]()[_0x70bb('0x1f')](function(){_0x4a46e1[_0x70bb('0x14')](0xcc)[_0x70bb('0x15')]();});}};}function handleEntityNotFound(_0x3a6bb2,_0x33f58c){return function(_0x134ffe){if(!_0x134ffe){_0x3a6bb2[_0x70bb('0x13')](0x194);}return _0x134ffe;};}function handleError(_0xc25674,_0x50028d){_0x50028d=_0x50028d||0x1f4;return function(_0x2b5e51){logger[_0x70bb('0x20')](_0x2b5e51[_0x70bb('0x21')]);if(_0x2b5e51[_0x70bb('0x22')]){delete _0x2b5e51[_0x70bb('0x22')];}_0xc25674[_0x70bb('0x14')](_0x50028d)[_0x70bb('0x23')](_0x2b5e51);};}exports[_0x70bb('0x24')]=function(_0x58db7b,_0xd212e5){var _0x25fa33={},_0x58d66a={},_0x44055e={'count':0x0,'rows':[]};var _0x4b80b7=db[_0x70bb('0x25')][_0x70bb('0x26')];_0x58d66a[_0x70bb('0x27')]=_['keys'](_0x4b80b7);var _0x487f1e={'dateStart':_0x58db7b[_0x70bb('0x28')][_0x70bb('0x29')],'dateEnd':_0x58db7b[_0x70bb('0x28')][_0x70bb('0x2a')]};delete _0x58db7b[_0x70bb('0x28')][_0x70bb('0x29')];delete _0x58db7b[_0x70bb('0x28')]['dateEnd'];_0x58d66a[_0x70bb('0x28')]=_[_0x70bb('0x2b')](_0x58db7b[_0x70bb('0x28')]);_0x58d66a[_0x70bb('0x2c')]=_[_0x70bb('0x2d')](_0x58d66a[_0x70bb('0x27')],_0x58d66a[_0x70bb('0x28')]);_0x25fa33[_0x70bb('0x2e')]=_[_0x70bb('0x2d')](_0x58d66a[_0x70bb('0x27')],qs[_0x70bb('0x2f')](_0x58db7b[_0x70bb('0x28')][_0x70bb('0x2f')]));_0x25fa33[_0x70bb('0x2e')]=_0x25fa33[_0x70bb('0x2e')][_0x70bb('0x30')]?_0x25fa33['attributes']:_0x58d66a[_0x70bb('0x27')];if(!_0x58db7b[_0x70bb('0x28')]['hasOwnProperty'](_0x70bb('0x31'))){_0x25fa33[_0x70bb('0x32')]=qs[_0x70bb('0x32')](_0x58db7b[_0x70bb('0x28')][_0x70bb('0x32')]);_0x25fa33[_0x70bb('0x18')]=qs[_0x70bb('0x18')](_0x58db7b['query'][_0x70bb('0x18')]);}_0x25fa33[_0x70bb('0x33')]=qs[_0x70bb('0x34')](_0x58db7b['query']['sort']);_0x25fa33['where']=qs[_0x70bb('0x2c')](_[_0x70bb('0x35')](_0x58db7b[_0x70bb('0x28')],_0x58d66a['filters']));if(_0x487f1e[_0x70bb('0x29')]){if(_0x487f1e[_0x70bb('0x2a')]){_0x487f1e[_0x70bb('0x2a')]=moment(_0x487f1e[_0x70bb('0x2a')])[_0x70bb('0x36')](0x1,'day');}else{_0x487f1e[_0x70bb('0x2a')]=moment(_0x487f1e[_0x70bb('0x29')])[_0x70bb('0x36')](0x1,_0x70bb('0x37'));}_[_0x70bb('0x38')](_0x25fa33[_0x70bb('0x39')],{'createdAt':{'$gte':_0x487f1e[_0x70bb('0x29')],'$lte':_0x487f1e['dateEnd']}});}if(_0x58db7b['query'][_0x70bb('0x3a')]){_0x25fa33[_0x70bb('0x39')]=_[_0x70bb('0x38')](_0x25fa33[_0x70bb('0x39')],{'$or':_[_0x70bb('0x3b')](_0x25fa33[_0x70bb('0x2e')],function(_0x3dd8da){var _0xa2354={};_0xa2354[_0x3dd8da]={'$like':'%'+_0x58db7b['query'][_0x70bb('0x3a')]+'%'};return _0xa2354;})});}_0x25fa33=_['merge']({},_0x25fa33,_0x58db7b[_0x70bb('0x3c')]);var _0x298625={'where':_0x25fa33[_0x70bb('0x39')]};return db[_0x70bb('0x25')][_0x70bb('0x17')](_0x298625)[_0x70bb('0x1f')](function(_0x5daecd){_0x44055e[_0x70bb('0x17')]=_0x5daecd;if(_0x58db7b[_0x70bb('0x28')][_0x70bb('0x3d')]){_0x25fa33[_0x70bb('0x3e')]=[{'all':!![]}];}return db[_0x70bb('0x25')]['findAll'](_0x25fa33);})[_0x70bb('0x1f')](function(_0xf47c94){_0x44055e[_0x70bb('0x3f')]=_0xf47c94;return _0x44055e;})['then'](respondWithFilteredResult(_0xd212e5,_0x25fa33))[_0x70bb('0x40')](handleError(_0xd212e5,null));};exports[_0x70bb('0x41')]=function(_0x1b529f,_0x1eac66){var _0x53613b={'raw':!![],'where':{'id':_0x1b529f['params']['id']}},_0x1120d2={};_0x1120d2['model']=_[_0x70bb('0x2b')](db[_0x70bb('0x25')][_0x70bb('0x26')]);_0x1120d2['query']=_[_0x70bb('0x2b')](_0x1b529f['query']);_0x1120d2[_0x70bb('0x2c')]=_['intersection'](_0x1120d2['model'],_0x1120d2['query']);_0x53613b[_0x70bb('0x2e')]=_[_0x70bb('0x2d')](_0x1120d2[_0x70bb('0x27')],qs[_0x70bb('0x2f')](_0x1b529f[_0x70bb('0x28')][_0x70bb('0x2f')]));_0x53613b[_0x70bb('0x2e')]=_0x53613b['attributes']['length']?_0x53613b[_0x70bb('0x2e')]:_0x1120d2['model'];if(_0x1b529f[_0x70bb('0x28')][_0x70bb('0x3d')]){_0x53613b[_0x70bb('0x3e')]=[{'all':!![]}];}_0x53613b=_['merge']({},_0x53613b,_0x1b529f[_0x70bb('0x3c')]);return db[_0x70bb('0x25')][_0x70bb('0x42')](_0x53613b)['then'](handleEntityNotFound(_0x1eac66,null))[_0x70bb('0x1f')](respondWithResult(_0x1eac66,null))[_0x70bb('0x40')](handleError(_0x1eac66,null));};exports[_0x70bb('0x43')]=function(_0x77f50d,_0x2cf62f){return db[_0x70bb('0x25')][_0x70bb('0x43')](_0x77f50d['body'],{})[_0x70bb('0x1f')](respondWithResult(_0x2cf62f,0xc9))[_0x70bb('0x40')](handleError(_0x2cf62f,null));};exports[_0x70bb('0x1d')]=function(_0x367b9b,_0x3c1e42){if(_0x367b9b['body']['id']){delete _0x367b9b[_0x70bb('0x44')]['id'];}return db['AnalyticDefaultReport']['find']({'where':{'id':_0x367b9b[_0x70bb('0x45')]['id']}})['then'](handleEntityNotFound(_0x3c1e42,null))[_0x70bb('0x1f')](saveUpdates(_0x367b9b[_0x70bb('0x44')],null))[_0x70bb('0x1f')](respondWithResult(_0x3c1e42,null))[_0x70bb('0x40')](handleError(_0x3c1e42,null));};exports[_0x70bb('0x1e')]=function(_0x5a4cc5,_0x5c6a07){return db[_0x70bb('0x25')][_0x70bb('0x42')]({'where':{'id':_0x5a4cc5[_0x70bb('0x45')]['id']}})[_0x70bb('0x1f')](handleEntityNotFound(_0x5c6a07,null))[_0x70bb('0x1f')](removeEntity(_0x5c6a07,null))[_0x70bb('0x40')](handleError(_0x5c6a07,null));};exports[_0x70bb('0x46')]=function(_0x5b759e,_0xcf21d6){var _0x2ef19a=0xa;var _0x451fa9=[_0x70bb('0x47'),_0x70bb('0x48'),_0x70bb('0x49'),'outer_join',_0x70bb('0x4a')];var _0x507831={'SUM':_0x70bb('0x4b'),'COUNT':_0x70bb('0x4c'),'COUNT DISTINCT':_0x70bb('0x4d'),'MAX':'MAX(%s)','MIN':_0x70bb('0x4e'),'AVG':_0x70bb('0x4f'),'GROUP_CONCAT':_0x70bb('0x50'),'GROUP_CONCAT ASC':_0x70bb('0x51'),'GROUP_CONCAT DESC':_0x70bb('0x52')};var _0x114301={'SEC_TO_TIME':_0x70bb('0x53'),'DATE':_0x70bb('0x54'),'HOUR':_0x70bb('0x55'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x70bb('0x56')};var _0x514046=function(_0x36f3a1){return!_['includes']([_0x70bb('0x57'),_0x70bb('0x58'),_0x70bb('0x59'),_0x70bb('0x5a')],_0x36f3a1);};var _0x4ed249=function(_0xa77d4b){if(!_0xa77d4b||!_0xa77d4b[_0x70bb('0x5b')][_0x70bb('0x30')]){return'';}for(var _0x56f7e2='(',_0x148877=0x0;_0x148877<_0xa77d4b[_0x70bb('0x5b')]['length'];_0x148877+=0x1){_0x148877>0x0&&(_0x56f7e2+='\x20'+_0xa77d4b[_0x70bb('0x5c')]+'\x20');_0x56f7e2+=_0xa77d4b['rules'][_0x148877][_0x70bb('0x5d')]?_0x4ed249(_0xa77d4b[_0x70bb('0x5b')][_0x148877][_0x70bb('0x5d')]):_0xa77d4b[_0x70bb('0x5b')][_0x148877][_0x70bb('0x5e')]+'\x20'+_0xa77d4b[_0x70bb('0x5b')][_0x148877]['condition']+(_0x514046(_0xa77d4b[_0x70bb('0x5b')][_0x148877][_0x70bb('0x5f')])?'\x20'+_0xa77d4b[_0x70bb('0x5b')][_0x148877][_0x70bb('0x60')]:'');}return _0x56f7e2+')';};var _0x3f77b1={'where':{'id':_0x5b759e[_0x70bb('0x45')]['id']}},_0x207d71,_0x4bb6de,_0x5d74b0,_0x48da5f,_0x526410;_0x3f77b1=_[_0x70bb('0x38')]({},_0x3f77b1,_0x5b759e[_0x70bb('0x3c')]);return db[_0x70bb('0x25')]['find'](_0x3f77b1)[_0x70bb('0x1f')](function(_0x46b402){if(_0x46b402){_0x207d71=_0x46b402;return _0x46b402[_0x70bb('0x61')]();}return null;})[_0x70bb('0x1f')](function(_0x20d5ce){if(_0x20d5ce){if(!_0x20d5ce[_0x70bb('0x30')]){throw new db['Sequelize'][(_0x70bb('0x62'))](_0x70bb('0x63'),0x193);}_0x4bb6de=_0x20d5ce;return db[_0x70bb('0x64')][_0x70bb('0x65')]({'raw':!![]});}return null;})[_0x70bb('0x1f')](function(_0x303543){if(_0x303543){_0x5d74b0=_['keyBy'](_0x303543,'id');var _0x309666;var _0x5a7cbf=squel[_0x70bb('0x66')]();_0x5a7cbf[_0x70bb('0x67')](_0x207d71[_0x70bb('0x68')]);for(var _0xa11531=0x0;_0xa11531<_0x4bb6de[_0x70bb('0x30')];_0xa11531+=0x1){_0x309666=_0x4bb6de[_0xa11531][_0x70bb('0x69')]?_0x5d74b0[_0x4bb6de[_0xa11531][_0x70bb('0x69')]][_0x70bb('0x6a')]:_0x4bb6de[_0xa11531]['field'];_0x309666=_0x4bb6de[_0xa11531][_0x70bb('0x6b')]?_[_0x70bb('0x6c')](_0x507831[_0x4bb6de[_0xa11531][_0x70bb('0x6b')]],'%s',_0x309666):_0x309666;_0x309666=_0x4bb6de[_0xa11531][_0x70bb('0x6d')]?_['replace'](_0x114301[_0x4bb6de[_0xa11531][_0x70bb('0x6d')]],'%s',_0x309666):_0x309666;if(_0x4bb6de[_0xa11531][_0x70bb('0x6e')]){_0x5a7cbf['group'](_0x309666);}_0x4bb6de[_0xa11531]['orderBy']&&_0x5a7cbf['order'](_0x309666,_0x4bb6de[_0xa11531][_0x70bb('0x6f')]===_0x70bb('0x70')?![]:!![]);_0x5a7cbf[_0x70bb('0x5e')](_0x309666,_0x4bb6de[_0xa11531]['alias']||_0x309666);}if(_0x207d71[_0x70bb('0x71')]){_0x207d71[_0x70bb('0x71')]=JSON[_0x70bb('0x72')](_0x207d71[_0x70bb('0x71')]);for(var _0x1d16f8=0x0;_0x1d16f8<_0x207d71[_0x70bb('0x71')][_0x70bb('0x30')];_0x1d16f8+=0x1){if(_0x207d71['joins'][_0x1d16f8][_0x70bb('0x73')]&&_[_0x70bb('0x74')](_0x451fa9,_0x207d71[_0x70bb('0x71')][_0x1d16f8]['type'])&&_0x207d71['joins'][_0x1d16f8]['parentKey']&&_0x207d71['joins'][_0x1d16f8][_0x70bb('0x75')]&&_0x207d71[_0x70bb('0x71')][_0x1d16f8][_0x70bb('0x76')]){_0x5a7cbf[_0x207d71[_0x70bb('0x71')][_0x1d16f8][_0x70bb('0x73')]](_0x207d71['joins'][_0x1d16f8][_0x70bb('0x75')],null,util[_0x70bb('0x6d')](_0x70bb('0x77'),_0x207d71[_0x70bb('0x68')],_0x207d71[_0x70bb('0x71')][_0x1d16f8]['parentKey'],_0x207d71['joins'][_0x1d16f8]['foreignTable'],_0x207d71[_0x70bb('0x71')][_0x1d16f8][_0x70bb('0x76')]));}}}if(_0x207d71[_0x70bb('0x78')]){_0x207d71[_0x70bb('0x78')]=JSON[_0x70bb('0x72')](_0x207d71[_0x70bb('0x78')]);_0x5a7cbf[_0x70bb('0x39')](_0x4ed249(_0x207d71[_0x70bb('0x78')][_0x70bb('0x5d')]));}_0x526410=_0x5a7cbf[_0x70bb('0x79')]();_0x5a7cbf[_0x70bb('0x32')](_0x2ef19a);_0x5a7cbf[_0x70bb('0x18')](0x0);logger[_0x70bb('0x7a')](_0x70bb('0x7b'),_0x5a7cbf['toString']());return db[_0x70bb('0x7c')][_0x70bb('0x28')](_0x5a7cbf[_0x70bb('0x7d')](),{'type':db[_0x70bb('0x7c')][_0x70bb('0x7e')][_0x70bb('0x7f')]});}})[_0x70bb('0x1f')](respondWithResult(_0xcf21d6,null))['catch'](handleError(_0xcf21d6,null));};function runReport(_0x568659,_0x5a2bf1,_0x3d6070){var _0x1c716a=_0x5a2bf1[_0x70bb('0x22')];var _0x352eb6=0xa;var _0x8df794=['join',_0x70bb('0x48'),_0x70bb('0x49'),_0x70bb('0x80'),'cross_join'];var _0x2dd8f7={'SUM':_0x70bb('0x4b'),'COUNT':_0x70bb('0x4c'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x70bb('0x50'),'GROUP_CONCAT ASC':_0x70bb('0x51'),'GROUP_CONCAT DESC':_0x70bb('0x52')};var _0x32cf0f={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x70bb('0x55'),'ROUND':_0x70bb('0x81'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x132442=function(_0x2c5677){return!_[_0x70bb('0x74')]([_0x70bb('0x57'),_0x70bb('0x58'),_0x70bb('0x59'),_0x70bb('0x5a')],_0x2c5677);};var _0x4ac659=function(_0x30989f){if(!_0x30989f||!_0x30989f['rules'][_0x70bb('0x30')]){return'';}for(var _0x2c9e69='(',_0x482405=0x0;_0x482405<_0x30989f['rules'][_0x70bb('0x30')];_0x482405+=0x1){_0x482405>0x0&&(_0x2c9e69+='\x20'+_0x30989f[_0x70bb('0x5c')]+'\x20');_0x2c9e69+=_0x30989f[_0x70bb('0x5b')][_0x482405][_0x70bb('0x5d')]?_0x4ac659(_0x30989f['rules'][_0x482405][_0x70bb('0x5d')]):_0x30989f[_0x70bb('0x5b')][_0x482405]['field']+'\x20'+_0x30989f[_0x70bb('0x5b')][_0x482405][_0x70bb('0x5f')]+(_0x132442(_0x30989f[_0x70bb('0x5b')][_0x482405][_0x70bb('0x5f')])?'\x20'+_0x30989f[_0x70bb('0x5b')][_0x482405][_0x70bb('0x60')]:'');}return _0x2c9e69+')';};var _0x3a4653={'where':{'id':_0x568659['id']}},_0x41b5b7,_0x43bd8d,_0x272a01,_0x41b019,_0x76bac1;_0x3a4653=_[_0x70bb('0x38')]({},_0x3a4653,_0x3d6070);return db['AnalyticDefaultReport']['find'](_0x3a4653)[_0x70bb('0x1f')](function(_0x65686b){if(_0x65686b){_0x41b5b7=_0x65686b;return _0x65686b[_0x70bb('0x61')]();}return null;})[_0x70bb('0x1f')](function(_0x306601){if(_0x306601){if(!_0x306601[_0x70bb('0x30')]){throw new db[(_0x70bb('0x82'))][(_0x70bb('0x62'))](_0x70bb('0x63'),0x193);}_0x43bd8d=_0x306601;return db[_0x70bb('0x64')][_0x70bb('0x65')]({'raw':!![]});}return null;})['then'](function(_0x5970c6){if(_0x5970c6){_0x272a01=_[_0x70bb('0x83')](_0x5970c6,'id');var _0x52ef7c;var _0x7753c4=squel[_0x70bb('0x66')]();_0x7753c4[_0x70bb('0x67')](_0x41b5b7[_0x70bb('0x68')]);for(var _0x20f34d=0x0;_0x20f34d<_0x43bd8d[_0x70bb('0x30')];_0x20f34d+=0x1){_0x52ef7c=_0x43bd8d[_0x20f34d]['MetricId']?_0x272a01[_0x43bd8d[_0x20f34d][_0x70bb('0x69')]][_0x70bb('0x6a')]:_0x43bd8d[_0x20f34d][_0x70bb('0x5e')];_0x52ef7c=_0x43bd8d[_0x20f34d]['function']?_[_0x70bb('0x6c')](_0x2dd8f7[_0x43bd8d[_0x20f34d][_0x70bb('0x6b')]],'%s',_0x52ef7c):_0x52ef7c;_0x52ef7c=_0x43bd8d[_0x20f34d]['format']?_['replace'](_0x32cf0f[_0x43bd8d[_0x20f34d][_0x70bb('0x6d')]],'%s',_0x52ef7c):_0x52ef7c;if(_0x43bd8d[_0x20f34d]['groupBy']){_0x7753c4[_0x70bb('0x5d')](_0x52ef7c);}_0x43bd8d[_0x20f34d][_0x70bb('0x6f')]&&_0x7753c4[_0x70bb('0x33')](_0x52ef7c,_0x43bd8d[_0x20f34d][_0x70bb('0x6f')]===_0x70bb('0x70')?![]:!![]);_0x7753c4[_0x70bb('0x5e')](_0x52ef7c,_0x43bd8d[_0x20f34d][_0x70bb('0x84')]||_0x52ef7c);}if(_0x41b5b7[_0x70bb('0x71')]){_0x41b5b7[_0x70bb('0x71')]=JSON[_0x70bb('0x72')](_0x41b5b7[_0x70bb('0x71')]);for(var _0x268d91=0x0;_0x268d91<_0x41b5b7[_0x70bb('0x71')][_0x70bb('0x30')];_0x268d91+=0x1){if(_0x41b5b7[_0x70bb('0x71')][_0x268d91][_0x70bb('0x73')]&&_[_0x70bb('0x74')](_0x8df794,_0x41b5b7[_0x70bb('0x71')][_0x268d91][_0x70bb('0x73')])&&_0x41b5b7['joins'][_0x268d91][_0x70bb('0x85')]&&_0x41b5b7[_0x70bb('0x71')][_0x268d91][_0x70bb('0x75')]&&_0x41b5b7[_0x70bb('0x71')][_0x268d91]['foreignKey']){_0x7753c4[_0x41b5b7[_0x70bb('0x71')][_0x268d91]['type']](_0x41b5b7[_0x70bb('0x71')][_0x268d91]['foreignTable'],null,util[_0x70bb('0x6d')](_0x70bb('0x77'),_0x41b5b7[_0x70bb('0x68')],_0x41b5b7[_0x70bb('0x71')][_0x268d91]['parentKey'],_0x41b5b7['joins'][_0x268d91][_0x70bb('0x75')],_0x41b5b7[_0x70bb('0x71')][_0x268d91]['foreignKey']));}}}if(_0x41b5b7[_0x70bb('0x78')]){_0x41b5b7[_0x70bb('0x78')]=JSON[_0x70bb('0x72')](_0x41b5b7['conditions']);_0x7753c4[_0x70bb('0x39')](_0x4ac659(_0x41b5b7[_0x70bb('0x78')][_0x70bb('0x5d')]));}_0x76bac1=_0x7753c4[_0x70bb('0x79')]();_0x7753c4['limit'](_0x352eb6);_0x7753c4[_0x70bb('0x18')](0x0);logger[_0x70bb('0x7a')](_0x70bb('0x7b'),_0x7753c4[_0x70bb('0x7d')]());return db[_0x70bb('0x7c')][_0x70bb('0x28')](_0x7753c4['toString'](),{'type':db[_0x70bb('0x7c')]['QueryTypes'][_0x70bb('0x7f')]});}})[_0x70bb('0x1f')](function(_0x3bad40){if(!_0x3bad40[_0x70bb('0x30')]){throw new db['Sequelize']['ValidationErrorItem'](_0x70bb('0x86'),0xcc);}if(_0x5a2bf1['output']===_0x70bb('0x87')){return null;}var _0x4268b1=_[_0x70bb('0x38')](_0x5a2bf1,{'name':_0x5a2bf1[_0x70bb('0x88')]||_0x5a2bf1[_0x70bb('0x22')]||_0x41b5b7[_0x70bb('0x22')],'basename':_0x1c716a,'savename':util['format'](_0x70bb('0x89'),_0x5a2bf1[_0x70bb('0x22')]||_0x41b5b7[_0x70bb('0x22')],require(_0x70bb('0x8a'))[_0x70bb('0x8b')](0x4),_0x5a2bf1['output']||'csv')});return db[_0x70bb('0x8c')][_0x70bb('0x43')](_0x4268b1,{'raw':!![]});})[_0x70bb('0x1f')](function(_0x1c7929){_0x76bac1[_0x70bb('0x39')](_0x41b5b7[_0x70bb('0x68')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x5a2bf1['startDate'],_0x5a2bf1[_0x70bb('0x8d')]);if(_0x1c7929){logger[_0x70bb('0x8e')](_0x70bb('0x8f'),_0x76bac1[_0x70bb('0x7d')]());require('child_process')[_0x70bb('0x90')](path[_0x70bb('0x47')](__dirname,_0x70bb('0x91'),_0x1c7929[_0x70bb('0x92')]),[_0x1c7929['id'],_0x76bac1['toString'](),path[_0x70bb('0x47')](__dirname,_0x70bb('0x93'),_0x1c7929[_0x70bb('0x94')]),_0x1c716a]);return _0x1c7929;}else{var _0x5b1fcb=squel[_0x70bb('0x66')]();_0x5b1fcb[_0x70bb('0x67')]('('+_0x76bac1['toString']()+')',_0x70bb('0x95'));_0x5b1fcb['field'](_0x70bb('0x96'),_0x70bb('0x17'));_0x76bac1[_0x70bb('0x32')](_0x5a2bf1[_0x70bb('0x32')]||_0x352eb6);_0x76bac1[_0x70bb('0x18')](_0x5a2bf1['offset']||0x0);return db[_0x70bb('0x7c')][_0x70bb('0x28')](_0x5b1fcb['toString'](),{'type':db[_0x70bb('0x7c')][_0x70bb('0x7e')][_0x70bb('0x7f')]})[_0x70bb('0x1f')](function(_0x35a636){if(!_0x35a636[_0x70bb('0x30')]){_0x41b019=0x0;}else{_0x41b019=_0x35a636[0x0][_0x70bb('0x17')]||0x0;}return db[_0x70bb('0x7c')][_0x70bb('0x28')](_0x76bac1[_0x70bb('0x7d')](),{'type':db[_0x70bb('0x7c')][_0x70bb('0x7e')]['SELECT']});})['then'](function(_0x490aed){return{'rows':_0x490aed||[],'count':_0x41b019};});}});}exports[_0x70bb('0x97')]=function(_0x3a11e7,_0x143127){return runReport(_0x3a11e7[_0x70bb('0x45')],_0x3a11e7[_0x70bb('0x28')],_0x3a11e7[_0x70bb('0x3c')])[_0x70bb('0x1f')](respondWithResult(_0x143127,null))[_0x70bb('0x40')](handleError(_0x143127,null));};exports[_0x70bb('0x98')]=runReport;exports[_0x70bb('0x28')]=function(_0x5d69ed,_0x415e61){var _0x170389=0xa;var _0x536f35=['join','left_join','right_join',_0x70bb('0x80'),_0x70bb('0x4a')];var _0x4a4b6d={'SUM':_0x70bb('0x4b'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x70bb('0x4d'),'MAX':_0x70bb('0x99'),'MIN':_0x70bb('0x4e'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x1ce25a={'SEC_TO_TIME':_0x70bb('0x53'),'DATE':_0x70bb('0x54'),'HOUR':'HOUR(%s)','ROUND':_0x70bb('0x81'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x3db90d=function(_0x3f6afd){return!_[_0x70bb('0x74')](['IS\x20NULL',_0x70bb('0x58'),'IS\x20EMPTY',_0x70bb('0x5a')],_0x3f6afd);};var _0x5a88a7=function(_0x29e162){if(!_0x29e162||!_0x29e162['rules'][_0x70bb('0x30')]){return'';}for(var _0x20fb8a='(',_0x35d915=0x0;_0x35d915<_0x29e162[_0x70bb('0x5b')]['length'];_0x35d915+=0x1){_0x35d915>0x0&&(_0x20fb8a+='\x20'+_0x29e162[_0x70bb('0x5c')]+'\x20');_0x20fb8a+=_0x29e162['rules'][_0x35d915]['group']?_0x5a88a7(_0x29e162[_0x70bb('0x5b')][_0x35d915]['group']):_0x29e162[_0x70bb('0x5b')][_0x35d915]['field']+'\x20'+_0x29e162['rules'][_0x35d915]['condition']+(_0x3db90d(_0x29e162[_0x70bb('0x5b')][_0x35d915][_0x70bb('0x5f')])?'\x20'+_0x29e162[_0x70bb('0x5b')][_0x35d915][_0x70bb('0x60')]:'');}return _0x20fb8a+')';};var _0x3c0e16={'where':{'id':_0x5d69ed[_0x70bb('0x45')]['id']}},_0x444eda,_0x54e974,_0x52bc6d,_0x211908,_0x17428b;_0x3c0e16=_[_0x70bb('0x38')]({},_0x3c0e16,_0x5d69ed[_0x70bb('0x3c')]);return db[_0x70bb('0x25')][_0x70bb('0x42')](_0x3c0e16)[_0x70bb('0x1f')](function(_0x3d4fd1){if(_0x3d4fd1){_0x444eda=_0x3d4fd1;return _0x3d4fd1['getFields']();}return null;})['then'](function(_0x161b5d){if(_0x161b5d){if(!_0x161b5d[_0x70bb('0x30')]){throw new db['Sequelize'][(_0x70bb('0x62'))](_0x70bb('0x63'),0x193);}_0x54e974=_0x161b5d;return db[_0x70bb('0x64')]['findAll']({'raw':!![]});}return null;})[_0x70bb('0x1f')](function(_0x19cbb1){if(_0x19cbb1){_0x52bc6d=_['keyBy'](_0x19cbb1,'id');var _0x2e62b4;var _0x459a7a=squel[_0x70bb('0x66')]();_0x459a7a[_0x70bb('0x67')](_0x444eda[_0x70bb('0x68')]);for(var _0x56e8e7=0x0;_0x56e8e7<_0x54e974['length'];_0x56e8e7+=0x1){_0x2e62b4=_0x54e974[_0x56e8e7][_0x70bb('0x69')]?_0x52bc6d[_0x54e974[_0x56e8e7][_0x70bb('0x69')]][_0x70bb('0x6a')]:_0x54e974[_0x56e8e7]['field'];_0x2e62b4=_0x54e974[_0x56e8e7][_0x70bb('0x6b')]?_[_0x70bb('0x6c')](_0x4a4b6d[_0x54e974[_0x56e8e7][_0x70bb('0x6b')]],'%s',_0x2e62b4):_0x2e62b4;_0x2e62b4=_0x54e974[_0x56e8e7][_0x70bb('0x6d')]?_['replace'](_0x1ce25a[_0x54e974[_0x56e8e7][_0x70bb('0x6d')]],'%s',_0x2e62b4):_0x2e62b4;if(_0x54e974[_0x56e8e7][_0x70bb('0x6e')]){_0x459a7a['group'](_0x2e62b4);}_0x54e974[_0x56e8e7][_0x70bb('0x6f')]&&_0x459a7a[_0x70bb('0x33')](_0x2e62b4,_0x54e974[_0x56e8e7][_0x70bb('0x6f')]===_0x70bb('0x70')?![]:!![]);_0x459a7a[_0x70bb('0x5e')](_0x2e62b4,_0x54e974[_0x56e8e7][_0x70bb('0x84')]||_0x2e62b4);}if(_0x444eda[_0x70bb('0x71')]){_0x444eda['joins']=JSON[_0x70bb('0x72')](_0x444eda[_0x70bb('0x71')]);for(var _0x5e23af=0x0;_0x5e23af<_0x444eda[_0x70bb('0x71')][_0x70bb('0x30')];_0x5e23af+=0x1){if(_0x444eda['joins'][_0x5e23af][_0x70bb('0x73')]&&_['includes'](_0x536f35,_0x444eda[_0x70bb('0x71')][_0x5e23af][_0x70bb('0x73')])&&_0x444eda[_0x70bb('0x71')][_0x5e23af]['parentKey']&&_0x444eda[_0x70bb('0x71')][_0x5e23af]['foreignTable']&&_0x444eda['joins'][_0x5e23af][_0x70bb('0x76')]){_0x459a7a[_0x444eda[_0x70bb('0x71')][_0x5e23af][_0x70bb('0x73')]](_0x444eda['joins'][_0x5e23af][_0x70bb('0x75')],null,util[_0x70bb('0x6d')]('%s.%s\x20=\x20%s.%s',_0x444eda[_0x70bb('0x68')],_0x444eda[_0x70bb('0x71')][_0x5e23af][_0x70bb('0x85')],_0x444eda[_0x70bb('0x71')][_0x5e23af][_0x70bb('0x75')],_0x444eda['joins'][_0x5e23af][_0x70bb('0x76')]));}}}if(_0x444eda[_0x70bb('0x78')]){_0x444eda['conditions']=JSON[_0x70bb('0x72')](_0x444eda[_0x70bb('0x78')]);_0x459a7a[_0x70bb('0x39')](_0x5a88a7(_0x444eda[_0x70bb('0x78')]['group']));}_0x17428b=_0x459a7a[_0x70bb('0x79')]();_0x459a7a['limit'](_0x170389);_0x459a7a[_0x70bb('0x18')](0x0);logger[_0x70bb('0x7a')](_0x70bb('0x7b'),_0x459a7a[_0x70bb('0x7d')]());return db[_0x70bb('0x7c')]['query'](_0x459a7a[_0x70bb('0x7d')](),{'type':db[_0x70bb('0x7c')][_0x70bb('0x7e')][_0x70bb('0x7f')]});}})['then'](function(){return{'sql':_0x17428b['toString']()};})[_0x70bb('0x1f')](respondWithResult(_0x415e61,null))['catch'](handleError(_0x415e61,null));};
\ No newline at end of file
+var _0x10e5=['from','table','MetricId','metric','function','replace','format','orderBy','DESC','alias','joins','type','foreignTable','foreignKey','parentKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','cross_join','MIN(%s)','HOUR(%s)','getFields','groupBy','%s.%s\x20=\x20%s.%s','parse','SELECT','No\x20available\x20data','web','fullPath','%s-%s.%s','randomstring','generate','output','csv','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','Run\x20Query:','child_process','fork','join','../../components/export/','../../files/reports','savename','run','runReport','Sequelize','AnalyticMetric','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','AnalyticDefaultReport','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','model','fields','attributes','hasOwnProperty','order','sort','where','add','day','merge','map','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','preview','left_join','right_join','outer_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','length','rules','operator','group','field','condition','value','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select'];(function(_0x505256,_0xa38e7e){var _0x3edb47=function(_0x227fa0){while(--_0x227fa0){_0x505256['push'](_0x505256['shift']());}};_0x3edb47(++_0xa38e7e);}(_0x10e5,0xcf));var _0x510e=function(_0x4a23a9,_0x17a2c0){_0x4a23a9=_0x4a23a9-0x0;var _0x18c27f=_0x10e5[_0x4a23a9];return _0x18c27f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x510e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x510e('0x1'));var jsonpatch=require(_0x510e('0x2'));var rp=require(_0x510e('0x3'));var moment=require(_0x510e('0x4'));var BPromise=require(_0x510e('0x5'));var Mustache=require(_0x510e('0x6'));var util=require(_0x510e('0x7'));var path=require('path');var sox=require(_0x510e('0x8'));var csv=require('to-csv');var ejs=require(_0x510e('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x510e('0xa'));var crypto=require(_0x510e('0xb'));var jsforce=require(_0x510e('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x510e('0xd'));var Papa=require(_0x510e('0xe'));var Redis=require(_0x510e('0xf'));var qs=require(_0x510e('0x10'));var logger=require(_0x510e('0x11'))(_0x510e('0x12'));var utils=require(_0x510e('0x13'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x29261c,_0x289253){_0x289253=_0x289253||0xcc;return function(_0x1d571b){if(_0x1d571b){return _0x29261c[_0x510e('0x14')](_0x289253);}return _0x29261c[_0x510e('0x15')](_0x289253)[_0x510e('0x16')]();};}function respondWithResult(_0x389e17,_0x5ce45a){_0x5ce45a=_0x5ce45a||0xc8;return function(_0x2bdc6f){if(_0x2bdc6f){return _0x389e17[_0x510e('0x15')](_0x5ce45a)[_0x510e('0x17')](_0x2bdc6f);}};}function respondWithFilteredResult(_0x59c60d,_0x2ae3e6){return function(_0xa2789b){if(_0xa2789b){var _0x3da7e3=_0xa2789b[_0x510e('0x18')],_0x1173ca=_0x2ae3e6[_0x510e('0x19')],_0x2b905a=_0x2ae3e6[_0x510e('0x19')]+_0x2ae3e6[_0x510e('0x1a')],_0x33c101;if(_0x2b905a>=_0x3da7e3){_0x2b905a=_0x3da7e3;_0x33c101=0xc8;}else{_0x33c101=0xce;}_0x59c60d[_0x510e('0x15')](_0x33c101);return _0x59c60d[_0x510e('0x1b')](_0x510e('0x1c'),_0x1173ca+'-'+_0x2b905a+'/'+_0x3da7e3)[_0x510e('0x17')](_0xa2789b);}return null;};}function patchUpdates(_0x8f012d){return function(_0x3483f9){try{jsonpatch[_0x510e('0x1d')](_0x3483f9,_0x8f012d,!![]);}catch(_0x3f7f4f){return BPromise[_0x510e('0x1e')](_0x3f7f4f);}return _0x3483f9['save']();};}function saveUpdates(_0x36f870,_0x2c980e){return function(_0xc16a04){if(_0xc16a04){return _0xc16a04[_0x510e('0x1f')](_0x36f870)[_0x510e('0x20')](function(_0x422a37){return _0x422a37;});}return null;};}function removeEntity(_0x480d98,_0x245b62){return function(_0xe05b47){if(_0xe05b47){return _0xe05b47[_0x510e('0x21')]()['then'](function(){_0x480d98['status'](0xcc)[_0x510e('0x16')]();});}};}function handleEntityNotFound(_0x8cac03,_0x56e602){return function(_0x4d2f5b){if(!_0x4d2f5b){_0x8cac03[_0x510e('0x14')](0x194);}return _0x4d2f5b;};}function handleError(_0x204225,_0x35579c){_0x35579c=_0x35579c||0x1f4;return function(_0x276695){logger[_0x510e('0x22')](_0x276695[_0x510e('0x23')]);if(_0x276695[_0x510e('0x24')]){delete _0x276695[_0x510e('0x24')];}_0x204225[_0x510e('0x15')](_0x35579c)[_0x510e('0x25')](_0x276695);};}exports['index']=function(_0xe5be9c,_0x43dc03){var _0x4e8b1f={},_0xb8fb0a={},_0x1756ba={'count':0x0,'rows':[]};var _0xd9a62e=db[_0x510e('0x26')][_0x510e('0x27')];_0xb8fb0a['model']=_[_0x510e('0x28')](_0xd9a62e);var _0x474887={'dateStart':_0xe5be9c[_0x510e('0x29')][_0x510e('0x2a')],'dateEnd':_0xe5be9c[_0x510e('0x29')][_0x510e('0x2b')]};delete _0xe5be9c[_0x510e('0x29')][_0x510e('0x2a')];delete _0xe5be9c[_0x510e('0x29')][_0x510e('0x2b')];_0xb8fb0a[_0x510e('0x29')]=_[_0x510e('0x28')](_0xe5be9c['query']);_0xb8fb0a[_0x510e('0x2c')]=_[_0x510e('0x2d')](_0xb8fb0a[_0x510e('0x2e')],_0xb8fb0a[_0x510e('0x29')]);_0x4e8b1f['attributes']=_['intersection'](_0xb8fb0a[_0x510e('0x2e')],qs[_0x510e('0x2f')](_0xe5be9c[_0x510e('0x29')][_0x510e('0x2f')]));_0x4e8b1f[_0x510e('0x30')]=_0x4e8b1f['attributes']['length']?_0x4e8b1f[_0x510e('0x30')]:_0xb8fb0a[_0x510e('0x2e')];if(!_0xe5be9c[_0x510e('0x29')][_0x510e('0x31')]('nolimit')){_0x4e8b1f['limit']=qs[_0x510e('0x1a')](_0xe5be9c[_0x510e('0x29')][_0x510e('0x1a')]);_0x4e8b1f[_0x510e('0x19')]=qs[_0x510e('0x19')](_0xe5be9c['query']['offset']);}_0x4e8b1f[_0x510e('0x32')]=qs[_0x510e('0x33')](_0xe5be9c['query'][_0x510e('0x33')]);_0x4e8b1f[_0x510e('0x34')]=qs['filters'](_['pick'](_0xe5be9c['query'],_0xb8fb0a[_0x510e('0x2c')]));if(_0x474887[_0x510e('0x2a')]){if(_0x474887['dateEnd']){_0x474887[_0x510e('0x2b')]=moment(_0x474887['dateEnd'])[_0x510e('0x35')](0x1,'day');}else{_0x474887['dateEnd']=moment(_0x474887[_0x510e('0x2a')])[_0x510e('0x35')](0x1,_0x510e('0x36'));}_[_0x510e('0x37')](_0x4e8b1f[_0x510e('0x34')],{'createdAt':{'$gte':_0x474887[_0x510e('0x2a')],'$lte':_0x474887[_0x510e('0x2b')]}});}if(_0xe5be9c[_0x510e('0x29')]['filter']){_0x4e8b1f['where']=_['merge'](_0x4e8b1f[_0x510e('0x34')],{'$or':_[_0x510e('0x38')](_0x4e8b1f[_0x510e('0x30')],function(_0x175ac3){var _0x260cc1={};_0x260cc1[_0x175ac3]={'$like':'%'+_0xe5be9c['query']['filter']+'%'};return _0x260cc1;})});}_0x4e8b1f=_['merge']({},_0x4e8b1f,_0xe5be9c[_0x510e('0x39')]);var _0x2f7a64={'where':_0x4e8b1f[_0x510e('0x34')]};return db['AnalyticDefaultReport']['count'](_0x2f7a64)[_0x510e('0x20')](function(_0x2c186c){_0x1756ba[_0x510e('0x18')]=_0x2c186c;if(_0xe5be9c[_0x510e('0x29')][_0x510e('0x3a')]){_0x4e8b1f[_0x510e('0x3b')]=[{'all':!![]}];}return db['AnalyticDefaultReport'][_0x510e('0x3c')](_0x4e8b1f);})[_0x510e('0x20')](function(_0x5d91b0){_0x1756ba[_0x510e('0x3d')]=_0x5d91b0;return _0x1756ba;})[_0x510e('0x20')](respondWithFilteredResult(_0x43dc03,_0x4e8b1f))[_0x510e('0x3e')](handleError(_0x43dc03,null));};exports[_0x510e('0x3f')]=function(_0xfc3953,_0x5da861){var _0x5eba55={'raw':!![],'where':{'id':_0xfc3953[_0x510e('0x40')]['id']}},_0x2710ce={};_0x2710ce['model']=_[_0x510e('0x28')](db['AnalyticDefaultReport'][_0x510e('0x27')]);_0x2710ce[_0x510e('0x29')]=_[_0x510e('0x28')](_0xfc3953['query']);_0x2710ce[_0x510e('0x2c')]=_[_0x510e('0x2d')](_0x2710ce['model'],_0x2710ce['query']);_0x5eba55[_0x510e('0x30')]=_[_0x510e('0x2d')](_0x2710ce['model'],qs[_0x510e('0x2f')](_0xfc3953[_0x510e('0x29')][_0x510e('0x2f')]));_0x5eba55[_0x510e('0x30')]=_0x5eba55['attributes']['length']?_0x5eba55['attributes']:_0x2710ce[_0x510e('0x2e')];if(_0xfc3953[_0x510e('0x29')][_0x510e('0x3a')]){_0x5eba55['include']=[{'all':!![]}];}_0x5eba55=_[_0x510e('0x37')]({},_0x5eba55,_0xfc3953[_0x510e('0x39')]);return db['AnalyticDefaultReport']['find'](_0x5eba55)[_0x510e('0x20')](handleEntityNotFound(_0x5da861,null))[_0x510e('0x20')](respondWithResult(_0x5da861,null))[_0x510e('0x3e')](handleError(_0x5da861,null));};exports[_0x510e('0x41')]=function(_0x2b93ef,_0x3e92b1){return db[_0x510e('0x26')][_0x510e('0x41')](_0x2b93ef['body'],{})[_0x510e('0x20')](respondWithResult(_0x3e92b1,0xc9))[_0x510e('0x3e')](handleError(_0x3e92b1,null));};exports[_0x510e('0x1f')]=function(_0x2298e2,_0x5019a3){if(_0x2298e2[_0x510e('0x42')]['id']){delete _0x2298e2[_0x510e('0x42')]['id'];}return db[_0x510e('0x26')][_0x510e('0x43')]({'where':{'id':_0x2298e2['params']['id']}})[_0x510e('0x20')](handleEntityNotFound(_0x5019a3,null))['then'](saveUpdates(_0x2298e2[_0x510e('0x42')],null))[_0x510e('0x20')](respondWithResult(_0x5019a3,null))['catch'](handleError(_0x5019a3,null));};exports['destroy']=function(_0x546e1c,_0x9b672d){return db[_0x510e('0x26')][_0x510e('0x43')]({'where':{'id':_0x546e1c[_0x510e('0x40')]['id']}})[_0x510e('0x20')](handleEntityNotFound(_0x9b672d,null))[_0x510e('0x20')](removeEntity(_0x9b672d,null))[_0x510e('0x3e')](handleError(_0x9b672d,null));};exports[_0x510e('0x44')]=function(_0x408675,_0x286b01){var _0x2f0da8=0xa;var _0x229fc0=['join',_0x510e('0x45'),_0x510e('0x46'),_0x510e('0x47'),'cross_join'];var _0x1f5b69={'SUM':_0x510e('0x48'),'COUNT':_0x510e('0x49'),'COUNT DISTINCT':_0x510e('0x4a'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':_0x510e('0x4b'),'GROUP_CONCAT':_0x510e('0x4c'),'GROUP_CONCAT ASC':_0x510e('0x4d'),'GROUP_CONCAT DESC':_0x510e('0x4e')};var _0x40e681={'SEC_TO_TIME':_0x510e('0x4f'),'DATE':_0x510e('0x50'),'HOUR':'HOUR(%s)','ROUND':_0x510e('0x51'),'UNIX_TIMESTAMP':_0x510e('0x52')};var _0x1cf2f4=function(_0x1d7489){return!_[_0x510e('0x53')]([_0x510e('0x54'),_0x510e('0x55'),_0x510e('0x56'),_0x510e('0x57')],_0x1d7489);};var _0x5f272d=function(_0x333805){if(!_0x333805||!_0x333805['rules'][_0x510e('0x58')]){return'';}for(var _0x276541='(',_0x55ea81=0x0;_0x55ea81<_0x333805[_0x510e('0x59')]['length'];_0x55ea81+=0x1){_0x55ea81>0x0&&(_0x276541+='\x20'+_0x333805[_0x510e('0x5a')]+'\x20');_0x276541+=_0x333805[_0x510e('0x59')][_0x55ea81][_0x510e('0x5b')]?_0x5f272d(_0x333805[_0x510e('0x59')][_0x55ea81][_0x510e('0x5b')]):_0x333805['rules'][_0x55ea81][_0x510e('0x5c')]+'\x20'+_0x333805['rules'][_0x55ea81][_0x510e('0x5d')]+(_0x1cf2f4(_0x333805[_0x510e('0x59')][_0x55ea81]['condition'])?'\x20'+_0x333805[_0x510e('0x59')][_0x55ea81][_0x510e('0x5e')]:'');}return _0x276541+')';};var _0x19a074={'where':{'id':_0x408675['params']['id']}},_0x538c4e,_0x5a1222,_0x1e7959,_0x319f06,_0x23f77f;_0x19a074=_[_0x510e('0x37')]({},_0x19a074,_0x408675[_0x510e('0x39')]);return db[_0x510e('0x26')][_0x510e('0x43')](_0x19a074)['then'](function(_0x150737){if(_0x150737){_0x538c4e=_0x150737;return _0x150737['getFields']();}return null;})[_0x510e('0x20')](function(_0xc23e){if(_0xc23e){if(!_0xc23e[_0x510e('0x58')]){throw new db['Sequelize'][(_0x510e('0x5f'))](_0x510e('0x60'),0x193);}_0x5a1222=_0xc23e;return db['AnalyticMetric'][_0x510e('0x3c')]({'raw':!![]});}return null;})[_0x510e('0x20')](function(_0x56b21f){if(_0x56b21f){_0x1e7959=_[_0x510e('0x61')](_0x56b21f,'id');var _0x12293a;var _0x552e62=squel[_0x510e('0x62')]();_0x552e62[_0x510e('0x63')](_0x538c4e[_0x510e('0x64')]);for(var _0x542adc=0x0;_0x542adc<_0x5a1222['length'];_0x542adc+=0x1){_0x12293a=_0x5a1222[_0x542adc][_0x510e('0x65')]?_0x1e7959[_0x5a1222[_0x542adc][_0x510e('0x65')]][_0x510e('0x66')]:_0x5a1222[_0x542adc][_0x510e('0x5c')];_0x12293a=_0x5a1222[_0x542adc][_0x510e('0x67')]?_[_0x510e('0x68')](_0x1f5b69[_0x5a1222[_0x542adc][_0x510e('0x67')]],'%s',_0x12293a):_0x12293a;_0x12293a=_0x5a1222[_0x542adc][_0x510e('0x69')]?_[_0x510e('0x68')](_0x40e681[_0x5a1222[_0x542adc][_0x510e('0x69')]],'%s',_0x12293a):_0x12293a;if(_0x5a1222[_0x542adc]['groupBy']){_0x552e62['group'](_0x12293a);}_0x5a1222[_0x542adc][_0x510e('0x6a')]&&_0x552e62[_0x510e('0x32')](_0x12293a,_0x5a1222[_0x542adc][_0x510e('0x6a')]===_0x510e('0x6b')?![]:!![]);_0x552e62['field'](_0x12293a,_0x5a1222[_0x542adc][_0x510e('0x6c')]||_0x12293a);}if(_0x538c4e['joins']){_0x538c4e['joins']=JSON['parse'](_0x538c4e['joins']);for(var _0x1afbca=0x0;_0x1afbca<_0x538c4e[_0x510e('0x6d')][_0x510e('0x58')];_0x1afbca+=0x1){if(_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x6e')]&&_[_0x510e('0x53')](_0x229fc0,_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x6e')])&&_0x538c4e['joins'][_0x1afbca]['parentKey']&&_0x538c4e['joins'][_0x1afbca][_0x510e('0x6f')]&&_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x70')]){_0x552e62[_0x538c4e['joins'][_0x1afbca][_0x510e('0x6e')]](_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x6f')],null,util[_0x510e('0x69')]('%s.%s\x20=\x20%s.%s',_0x538c4e[_0x510e('0x64')],_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x71')],_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x6f')],_0x538c4e[_0x510e('0x6d')][_0x1afbca][_0x510e('0x70')]));}}}if(_0x538c4e[_0x510e('0x72')]){_0x538c4e[_0x510e('0x72')]=JSON['parse'](_0x538c4e[_0x510e('0x72')]);_0x552e62['where'](_0x5f272d(_0x538c4e[_0x510e('0x72')]['group']));}_0x23f77f=_0x552e62[_0x510e('0x73')]();_0x552e62['limit'](_0x2f0da8);_0x552e62['offset'](0x0);logger[_0x510e('0x74')](_0x510e('0x75'),_0x552e62[_0x510e('0x76')]());return db[_0x510e('0x77')]['query'](_0x552e62['toString'](),{'type':db[_0x510e('0x77')][_0x510e('0x78')]['SELECT']});}})[_0x510e('0x20')](respondWithResult(_0x286b01,null))[_0x510e('0x3e')](handleError(_0x286b01,null));};function runReport(_0x5deb68,_0x4e8363,_0x43116a){var _0x356387=_0x4e8363['name'];var _0x45fe4d=0xa;var _0x1517b3=['join',_0x510e('0x45'),'right_join','outer_join',_0x510e('0x79')];var _0x548443={'SUM':_0x510e('0x48'),'COUNT':_0x510e('0x49'),'COUNT DISTINCT':_0x510e('0x4a'),'MAX':'MAX(%s)','MIN':_0x510e('0x7a'),'AVG':_0x510e('0x4b'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x510e('0x4e')};var _0x2056f5={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x510e('0x7b'),'ROUND':_0x510e('0x51'),'UNIX_TIMESTAMP':_0x510e('0x52')};var _0x121c15=function(_0x53d312){return!_[_0x510e('0x53')](['IS\x20NULL',_0x510e('0x55'),_0x510e('0x56'),_0x510e('0x57')],_0x53d312);};var _0x867870=function(_0x3e82be){if(!_0x3e82be||!_0x3e82be[_0x510e('0x59')]['length']){return'';}for(var _0x4fd0a7='(',_0x5d71c4=0x0;_0x5d71c4<_0x3e82be[_0x510e('0x59')][_0x510e('0x58')];_0x5d71c4+=0x1){_0x5d71c4>0x0&&(_0x4fd0a7+='\x20'+_0x3e82be[_0x510e('0x5a')]+'\x20');_0x4fd0a7+=_0x3e82be['rules'][_0x5d71c4][_0x510e('0x5b')]?_0x867870(_0x3e82be[_0x510e('0x59')][_0x5d71c4][_0x510e('0x5b')]):_0x3e82be[_0x510e('0x59')][_0x5d71c4]['field']+'\x20'+_0x3e82be[_0x510e('0x59')][_0x5d71c4][_0x510e('0x5d')]+(_0x121c15(_0x3e82be[_0x510e('0x59')][_0x5d71c4]['condition'])?'\x20'+_0x3e82be['rules'][_0x5d71c4]['value']:'');}return _0x4fd0a7+')';};var _0xb27047={'where':{'id':_0x5deb68['id']}},_0x4cf106,_0x4fd4be,_0x280fc4,_0x27575a,_0x241ff1;_0xb27047=_[_0x510e('0x37')]({},_0xb27047,_0x43116a);return db[_0x510e('0x26')][_0x510e('0x43')](_0xb27047)[_0x510e('0x20')](function(_0x21f092){if(_0x21f092){_0x4cf106=_0x21f092;return _0x21f092[_0x510e('0x7c')]();}return null;})[_0x510e('0x20')](function(_0x3df00a){if(_0x3df00a){if(!_0x3df00a[_0x510e('0x58')]){throw new db['Sequelize'][(_0x510e('0x5f'))](_0x510e('0x60'),0x193);}_0x4fd4be=_0x3df00a;return db['AnalyticMetric'][_0x510e('0x3c')]({'raw':!![]});}return null;})[_0x510e('0x20')](function(_0x769242){if(_0x769242){_0x280fc4=_[_0x510e('0x61')](_0x769242,'id');var _0x34cace;var _0x23e365=squel['select']();_0x23e365['from'](_0x4cf106[_0x510e('0x64')]);for(var _0x184d51=0x0;_0x184d51<_0x4fd4be[_0x510e('0x58')];_0x184d51+=0x1){_0x34cace=_0x4fd4be[_0x184d51][_0x510e('0x65')]?_0x280fc4[_0x4fd4be[_0x184d51]['MetricId']]['metric']:_0x4fd4be[_0x184d51][_0x510e('0x5c')];_0x34cace=_0x4fd4be[_0x184d51][_0x510e('0x67')]?_[_0x510e('0x68')](_0x548443[_0x4fd4be[_0x184d51][_0x510e('0x67')]],'%s',_0x34cace):_0x34cace;_0x34cace=_0x4fd4be[_0x184d51][_0x510e('0x69')]?_['replace'](_0x2056f5[_0x4fd4be[_0x184d51][_0x510e('0x69')]],'%s',_0x34cace):_0x34cace;if(_0x4fd4be[_0x184d51][_0x510e('0x7d')]){_0x23e365[_0x510e('0x5b')](_0x34cace);}_0x4fd4be[_0x184d51]['orderBy']&&_0x23e365[_0x510e('0x32')](_0x34cace,_0x4fd4be[_0x184d51][_0x510e('0x6a')]===_0x510e('0x6b')?![]:!![]);_0x23e365['field'](_0x34cace,_0x4fd4be[_0x184d51][_0x510e('0x6c')]||_0x34cace);}if(_0x4cf106[_0x510e('0x6d')]){_0x4cf106['joins']=JSON['parse'](_0x4cf106['joins']);for(var _0x56c047=0x0;_0x56c047<_0x4cf106['joins']['length'];_0x56c047+=0x1){if(_0x4cf106[_0x510e('0x6d')][_0x56c047][_0x510e('0x6e')]&&_[_0x510e('0x53')](_0x1517b3,_0x4cf106[_0x510e('0x6d')][_0x56c047][_0x510e('0x6e')])&&_0x4cf106['joins'][_0x56c047][_0x510e('0x71')]&&_0x4cf106['joins'][_0x56c047]['foreignTable']&&_0x4cf106['joins'][_0x56c047][_0x510e('0x70')]){_0x23e365[_0x4cf106[_0x510e('0x6d')][_0x56c047][_0x510e('0x6e')]](_0x4cf106['joins'][_0x56c047]['foreignTable'],null,util[_0x510e('0x69')](_0x510e('0x7e'),_0x4cf106['table'],_0x4cf106['joins'][_0x56c047][_0x510e('0x71')],_0x4cf106['joins'][_0x56c047][_0x510e('0x6f')],_0x4cf106[_0x510e('0x6d')][_0x56c047]['foreignKey']));}}}if(_0x4cf106[_0x510e('0x72')]){_0x4cf106['conditions']=JSON[_0x510e('0x7f')](_0x4cf106['conditions']);_0x23e365[_0x510e('0x34')](_0x867870(_0x4cf106[_0x510e('0x72')][_0x510e('0x5b')]));}_0x241ff1=_0x23e365[_0x510e('0x73')]();_0x23e365[_0x510e('0x1a')](_0x45fe4d);_0x23e365['offset'](0x0);logger[_0x510e('0x74')](_0x510e('0x75'),_0x23e365[_0x510e('0x76')]());return db[_0x510e('0x77')]['query'](_0x23e365[_0x510e('0x76')](),{'type':db[_0x510e('0x77')]['QueryTypes'][_0x510e('0x80')]});}})[_0x510e('0x20')](function(_0x16dc2c){if(!_0x16dc2c[_0x510e('0x58')]){throw new db['Sequelize']['ValidationErrorItem'](_0x510e('0x81'),0xcc);}if(_0x4e8363['output']===_0x510e('0x82')){return null;}var _0x1d1793=_[_0x510e('0x37')](_0x4e8363,{'name':_0x4e8363[_0x510e('0x83')]||_0x4e8363['name']||_0x4cf106[_0x510e('0x24')],'basename':_0x356387,'savename':util[_0x510e('0x69')](_0x510e('0x84'),_0x4e8363[_0x510e('0x24')]||_0x4cf106[_0x510e('0x24')],require(_0x510e('0x85'))[_0x510e('0x86')](0x4),_0x4e8363[_0x510e('0x87')]||_0x510e('0x88'))});return db[_0x510e('0x89')][_0x510e('0x41')](_0x1d1793,{'raw':!![]});})[_0x510e('0x20')](function(_0x2add15){if(_0x4cf106[_0x510e('0x64')]==='cdr'){_0x241ff1[_0x510e('0x34')](_0x4cf106[_0x510e('0x64')]+_0x510e('0x8a'),_0x4e8363['startDate'],_0x4e8363['endDate']);}else{_0x241ff1[_0x510e('0x34')](_0x4cf106[_0x510e('0x64')]+_0x510e('0x8b'),_0x4e8363[_0x510e('0x8c')],_0x4e8363[_0x510e('0x8d')]);}if(_0x2add15){logger['info'](_0x510e('0x8e'),_0x241ff1[_0x510e('0x76')]());require(_0x510e('0x8f'))[_0x510e('0x90')](path[_0x510e('0x91')](__dirname,_0x510e('0x92'),_0x2add15['output']),[_0x2add15['id'],_0x241ff1[_0x510e('0x76')](),path[_0x510e('0x91')](__dirname,_0x510e('0x93'),_0x2add15[_0x510e('0x94')]),_0x356387]);return _0x2add15;}else{var _0xf77ab7=squel[_0x510e('0x62')]();_0xf77ab7[_0x510e('0x63')]('('+_0x241ff1[_0x510e('0x76')]()+')','countTable');_0xf77ab7[_0x510e('0x5c')]('COUNT(*)',_0x510e('0x18'));_0x241ff1[_0x510e('0x1a')](_0x4e8363[_0x510e('0x1a')]||_0x45fe4d);_0x241ff1[_0x510e('0x19')](_0x4e8363[_0x510e('0x19')]||0x0);return db['sequelize']['query'](_0xf77ab7[_0x510e('0x76')](),{'type':db[_0x510e('0x77')][_0x510e('0x78')][_0x510e('0x80')]})[_0x510e('0x20')](function(_0x3547cd){if(!_0x3547cd['length']){_0x27575a=0x0;}else{_0x27575a=_0x3547cd[0x0][_0x510e('0x18')]||0x0;}return db[_0x510e('0x77')][_0x510e('0x29')](_0x241ff1[_0x510e('0x76')](),{'type':db[_0x510e('0x77')][_0x510e('0x78')][_0x510e('0x80')]});})[_0x510e('0x20')](function(_0x56ceb9){return{'rows':_0x56ceb9||[],'count':_0x27575a};});}});}exports[_0x510e('0x95')]=function(_0x114bf6,_0x548579){return runReport(_0x114bf6[_0x510e('0x40')],_0x114bf6[_0x510e('0x29')],_0x114bf6['options'])[_0x510e('0x20')](respondWithResult(_0x548579,null))[_0x510e('0x3e')](handleError(_0x548579,null));};exports[_0x510e('0x96')]=runReport;exports['query']=function(_0x59adad,_0x1ced80){var _0x2ee1d9=0xa;var _0x3a30ef=[_0x510e('0x91'),_0x510e('0x45'),_0x510e('0x46'),_0x510e('0x47'),_0x510e('0x79')];var _0x3bcd13={'SUM':_0x510e('0x48'),'COUNT':_0x510e('0x49'),'COUNT DISTINCT':_0x510e('0x4a'),'MAX':'MAX(%s)','MIN':_0x510e('0x7a'),'AVG':_0x510e('0x4b'),'GROUP_CONCAT':_0x510e('0x4c'),'GROUP_CONCAT ASC':_0x510e('0x4d'),'GROUP_CONCAT DESC':_0x510e('0x4e')};var _0x1d062f={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x510e('0x50'),'HOUR':'HOUR(%s)','ROUND':_0x510e('0x51'),'UNIX_TIMESTAMP':_0x510e('0x52')};var _0x5ce580=function(_0x38d99f){return!_['includes']([_0x510e('0x54'),_0x510e('0x55'),_0x510e('0x56'),_0x510e('0x57')],_0x38d99f);};var _0x33bd0d=function(_0x38aa80){if(!_0x38aa80||!_0x38aa80[_0x510e('0x59')]['length']){return'';}for(var _0x56f643='(',_0xd8d21f=0x0;_0xd8d21f<_0x38aa80['rules']['length'];_0xd8d21f+=0x1){_0xd8d21f>0x0&&(_0x56f643+='\x20'+_0x38aa80[_0x510e('0x5a')]+'\x20');_0x56f643+=_0x38aa80[_0x510e('0x59')][_0xd8d21f]['group']?_0x33bd0d(_0x38aa80[_0x510e('0x59')][_0xd8d21f][_0x510e('0x5b')]):_0x38aa80[_0x510e('0x59')][_0xd8d21f][_0x510e('0x5c')]+'\x20'+_0x38aa80[_0x510e('0x59')][_0xd8d21f][_0x510e('0x5d')]+(_0x5ce580(_0x38aa80[_0x510e('0x59')][_0xd8d21f][_0x510e('0x5d')])?'\x20'+_0x38aa80[_0x510e('0x59')][_0xd8d21f][_0x510e('0x5e')]:'');}return _0x56f643+')';};var _0x2ae613={'where':{'id':_0x59adad[_0x510e('0x40')]['id']}},_0x13fc40,_0x3b25fb,_0x4d8174,_0x1c0e0e,_0xa66499;_0x2ae613=_['merge']({},_0x2ae613,_0x59adad[_0x510e('0x39')]);return db[_0x510e('0x26')][_0x510e('0x43')](_0x2ae613)[_0x510e('0x20')](function(_0x31c733){if(_0x31c733){_0x13fc40=_0x31c733;return _0x31c733['getFields']();}return null;})[_0x510e('0x20')](function(_0x1d6bcc){if(_0x1d6bcc){if(!_0x1d6bcc['length']){throw new db[(_0x510e('0x97'))][(_0x510e('0x5f'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3b25fb=_0x1d6bcc;return db[_0x510e('0x98')][_0x510e('0x3c')]({'raw':!![]});}return null;})[_0x510e('0x20')](function(_0xf69897){if(_0xf69897){_0x4d8174=_[_0x510e('0x61')](_0xf69897,'id');var _0x3a1559;var _0x18a660=squel[_0x510e('0x62')]();_0x18a660[_0x510e('0x63')](_0x13fc40[_0x510e('0x64')]);for(var _0x49723e=0x0;_0x49723e<_0x3b25fb['length'];_0x49723e+=0x1){_0x3a1559=_0x3b25fb[_0x49723e][_0x510e('0x65')]?_0x4d8174[_0x3b25fb[_0x49723e]['MetricId']][_0x510e('0x66')]:_0x3b25fb[_0x49723e][_0x510e('0x5c')];_0x3a1559=_0x3b25fb[_0x49723e][_0x510e('0x67')]?_[_0x510e('0x68')](_0x3bcd13[_0x3b25fb[_0x49723e][_0x510e('0x67')]],'%s',_0x3a1559):_0x3a1559;_0x3a1559=_0x3b25fb[_0x49723e][_0x510e('0x69')]?_[_0x510e('0x68')](_0x1d062f[_0x3b25fb[_0x49723e]['format']],'%s',_0x3a1559):_0x3a1559;if(_0x3b25fb[_0x49723e][_0x510e('0x7d')]){_0x18a660[_0x510e('0x5b')](_0x3a1559);}_0x3b25fb[_0x49723e][_0x510e('0x6a')]&&_0x18a660[_0x510e('0x32')](_0x3a1559,_0x3b25fb[_0x49723e][_0x510e('0x6a')]===_0x510e('0x6b')?![]:!![]);_0x18a660[_0x510e('0x5c')](_0x3a1559,_0x3b25fb[_0x49723e][_0x510e('0x6c')]||_0x3a1559);}if(_0x13fc40[_0x510e('0x6d')]){_0x13fc40['joins']=JSON[_0x510e('0x7f')](_0x13fc40[_0x510e('0x6d')]);for(var _0x102f53=0x0;_0x102f53<_0x13fc40[_0x510e('0x6d')][_0x510e('0x58')];_0x102f53+=0x1){if(_0x13fc40[_0x510e('0x6d')][_0x102f53][_0x510e('0x6e')]&&_['includes'](_0x3a30ef,_0x13fc40['joins'][_0x102f53]['type'])&&_0x13fc40[_0x510e('0x6d')][_0x102f53]['parentKey']&&_0x13fc40[_0x510e('0x6d')][_0x102f53][_0x510e('0x6f')]&&_0x13fc40[_0x510e('0x6d')][_0x102f53][_0x510e('0x70')]){_0x18a660[_0x13fc40['joins'][_0x102f53][_0x510e('0x6e')]](_0x13fc40[_0x510e('0x6d')][_0x102f53][_0x510e('0x6f')],null,util['format'](_0x510e('0x7e'),_0x13fc40[_0x510e('0x64')],_0x13fc40[_0x510e('0x6d')][_0x102f53]['parentKey'],_0x13fc40[_0x510e('0x6d')][_0x102f53][_0x510e('0x6f')],_0x13fc40['joins'][_0x102f53][_0x510e('0x70')]));}}}if(_0x13fc40['conditions']){_0x13fc40['conditions']=JSON[_0x510e('0x7f')](_0x13fc40[_0x510e('0x72')]);_0x18a660[_0x510e('0x34')](_0x33bd0d(_0x13fc40[_0x510e('0x72')][_0x510e('0x5b')]));}_0xa66499=_0x18a660['clone']();_0x18a660[_0x510e('0x1a')](_0x2ee1d9);_0x18a660[_0x510e('0x19')](0x0);logger['debug']('Limited\x20Query:',_0x18a660[_0x510e('0x76')]());return db[_0x510e('0x77')]['query'](_0x18a660[_0x510e('0x76')](),{'type':db[_0x510e('0x77')][_0x510e('0x78')][_0x510e('0x80')]});}})['then'](function(){return{'sql':_0xa66499['toString']()};})[_0x510e('0x20')](respondWithResult(_0x1ced80,null))[_0x510e('0x3e')](handleError(_0x1ced80,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7292=['./analyticDefaultReport.attributes','define','AnalyticDefaultReport','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x1e05c1,_0x3cffa3){var _0x15f1ca=function(_0x3a9594){while(--_0x3a9594){_0x1e05c1['push'](_0x1e05c1['shift']());}};_0x15f1ca(++_0x3cffa3);}(_0x7292,0x18f));var _0x2729=function(_0x13b8f3,_0x442821){_0x13b8f3=_0x13b8f3-0x0;var _0x1a6d06=_0x7292[_0x13b8f3];return _0x1a6d06;};'use strict';var _=require(_0x2729('0x0'));var util=require(_0x2729('0x1'));var logger=require(_0x2729('0x2'))(_0x2729('0x3'));var moment=require('moment');var BPromise=require(_0x2729('0x4'));var rp=require(_0x2729('0x5'));var attributes=require(_0x2729('0x6'));module['exports']=function(_0x4973b2,_0x35f7b0){return _0x4973b2[_0x2729('0x7')](_0x2729('0x8'),attributes,{'tableName':'analytics_default_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1384=['AnalyticDefaultReport','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x349b0a,_0x12aad7){var _0x100735=function(_0x4d918f){while(--_0x4d918f){_0x349b0a['push'](_0x349b0a['shift']());}};_0x100735(++_0x12aad7);}(_0x1384,0x12e));var _0x4138=function(_0x46e4fd,_0x3b869f){_0x46e4fd=_0x46e4fd-0x0;var _0xff2507=_0x1384[_0x46e4fd];return _0xff2507;};'use strict';var _=require(_0x4138('0x0'));var util=require(_0x4138('0x1'));var logger=require(_0x4138('0x2'))(_0x4138('0x3'));var moment=require('moment');var BPromise=require(_0x4138('0x4'));var rp=require(_0x4138('0x5'));var attributes=require('./analyticDefaultReport.attributes');module['exports']=function(_0x31d337,_0x4560cc){return _0x31d337['define'](_0x4138('0x6'),attributes,{'tableName':'analytics_default_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd812=['debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','AnalyticDefaultReport,\x20%s,\x20%s','message','result','lodash','moment','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0xd812,0xf9));var _0x2d81=function(_0x1e4f2d,_0x22e2bb){_0x1e4f2d=_0x1e4f2d-0x0;var _0xd05ce5=_0xd812[_0x1e4f2d];return _0xd05ce5;};'use strict';var _=require(_0x2d81('0x0'));var util=require('util');var moment=require(_0x2d81('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x2d81('0x2'));var logger=require(_0x2d81('0x3'))(_0x2d81('0x4'));var config=require(_0x2d81('0x5'));var jayson=require(_0x2d81('0x6'));var client=jayson[_0x2d81('0x7')][_0x2d81('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x20e8e6,_0x2a6699,_0x5e4631){return new BPromise(function(_0x34d03b,_0xb013f4){return client['request'](_0x20e8e6,_0x5e4631)[_0x2d81('0x9')](function(_0x2fd9ca){logger[_0x2d81('0xa')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x2a6699,'request\x20sent');logger[_0x2d81('0xb')](_0x2d81('0xc'),_0x2a6699,_0x2d81('0xd'),JSON[_0x2d81('0xe')](_0x2fd9ca));if(_0x2fd9ca[_0x2d81('0xf')]){if(_0x2fd9ca[_0x2d81('0xf')][_0x2d81('0x10')]===0x1f4){logger[_0x2d81('0xf')](_0x2d81('0x11'),_0x2a6699,_0x2fd9ca['error'][_0x2d81('0x12')]);return _0xb013f4(_0x2fd9ca[_0x2d81('0xf')][_0x2d81('0x12')]);}logger[_0x2d81('0xf')](_0x2d81('0x11'),_0x2a6699,_0x2fd9ca['error'][_0x2d81('0x12')]);return _0x34d03b(_0x2fd9ca[_0x2d81('0xf')][_0x2d81('0x12')]);}else{logger[_0x2d81('0xa')](_0x2d81('0x11'),_0x2a6699,_0x2d81('0xd'));_0x34d03b(_0x2fd9ca[_0x2d81('0x13')][_0x2d81('0x12')]);}})['catch'](function(_0x44a7ab){logger['error'](_0x2d81('0x11'),_0x2a6699,_0x44a7ab);_0xb013f4(_0x44a7ab);});});}
\ No newline at end of file
+var _0x9c44=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','request\x20sent','debug','stringify','code','error','message','AnalyticDefaultReport,\x20%s,\x20%s','info','result','catch','moment','bluebird'];(function(_0x31cd90,_0x58b5d5){var _0x401407=function(_0x34f165){while(--_0x34f165){_0x31cd90['push'](_0x31cd90['shift']());}};_0x401407(++_0x58b5d5);}(_0x9c44,0x178));var _0x49c4=function(_0x279d37,_0x14de3f){_0x279d37=_0x279d37-0x0;var _0x530173=_0x9c44[_0x279d37];return _0x530173;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x49c4('0x0'));var BPromise=require(_0x49c4('0x1'));var rs=require(_0x49c4('0x2'));var fs=require('fs');var Redis=require(_0x49c4('0x3'));var db=require(_0x49c4('0x4'))['db'];var utils=require(_0x49c4('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x49c4('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x49c4('0x7')][_0x49c4('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x69bc41,_0x2c4e2e,_0x436234){return new BPromise(function(_0x511d53,_0x11c586){return client[_0x49c4('0x9')](_0x69bc41,_0x436234)[_0x49c4('0xa')](function(_0x4487ca){logger['info']('AnalyticDefaultReport,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'));logger[_0x49c4('0xc')]('AnalyticDefaultReport,\x20%s,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'),JSON[_0x49c4('0xd')](_0x4487ca));if(_0x4487ca['error']){if(_0x4487ca['error'][_0x49c4('0xe')]===0x1f4){logger[_0x49c4('0xf')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x2c4e2e,_0x4487ca[_0x49c4('0xf')][_0x49c4('0x10')]);return _0x11c586(_0x4487ca['error'][_0x49c4('0x10')]);}logger[_0x49c4('0xf')](_0x49c4('0x11'),_0x2c4e2e,_0x4487ca[_0x49c4('0xf')][_0x49c4('0x10')]);return _0x511d53(_0x4487ca[_0x49c4('0xf')][_0x49c4('0x10')]);}else{logger[_0x49c4('0x12')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'));_0x511d53(_0x4487ca[_0x49c4('0x13')][_0x49c4('0x10')]);}})[_0x49c4('0x14')](function(_0x2abc78){logger['error'](_0x49c4('0x11'),_0x2c4e2e,_0x2abc78);_0x11c586(_0x2abc78);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f5c=['destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','get','/:id','/:id/preview','isAuthenticated','run','/:id/query','query','create','update','delete'];(function(_0x980058,_0x42ae14){var _0xc85f12=function(_0x39e02f){while(--_0x39e02f){_0x980058['push'](_0x980058['shift']());}};_0xc85f12(++_0x42ae14);}(_0x6f5c,0x66));var _0xc6f5=function(_0x1380a5,_0x4e52e6){_0x1380a5=_0x1380a5-0x0;var _0x111846=_0x6f5c[_0x1380a5];return _0x111846;};'use strict';var multer=require(_0xc6f5('0x0'));var util=require(_0xc6f5('0x1'));var path=require(_0xc6f5('0x2'));var timeout=require(_0xc6f5('0x3'));var express=require(_0xc6f5('0x4'));var router=express[_0xc6f5('0x5')]();var auth=require(_0xc6f5('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xc6f5('0x7'));var controller=require('./analyticDefaultReport.controller');router[_0xc6f5('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xc6f5('0x8')](_0xc6f5('0x9'),auth['isAuthenticated'](),controller['show']);router['get'](_0xc6f5('0xa'),auth[_0xc6f5('0xb')](),controller['preview']);router['get']('/:id/run',auth['isAuthenticated'](),controller[_0xc6f5('0xc')]);router[_0xc6f5('0x8')](_0xc6f5('0xd'),auth[_0xc6f5('0xb')](),controller[_0xc6f5('0xe')]);router['post']('/',auth[_0xc6f5('0xb')](),controller[_0xc6f5('0xf')]);router['put']('/:id',auth[_0xc6f5('0xb')](),controller[_0xc6f5('0x10')]);router[_0xc6f5('0x11')]('/:id',auth[_0xc6f5('0xb')](),controller[_0xc6f5('0x12')]);module[_0xc6f5('0x13')]=router;
\ No newline at end of file
+var _0xb939=['update','delete','destroy','path','express','../../components/auth/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/preview','preview','/:id/run','run','query','post','create','put'];(function(_0x3315bb,_0x3d99dd){var _0x1e7043=function(_0x43f871){while(--_0x43f871){_0x3315bb['push'](_0x3315bb['shift']());}};_0x1e7043(++_0x3d99dd);}(_0xb939,0x16c));var _0x9b93=function(_0x2b585a,_0x434050){_0x2b585a=_0x2b585a-0x0;var _0x1f87d9=_0xb939[_0x2b585a];return _0x1f87d9;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x9b93('0x0'));var timeout=require('connect-timeout');var express=require(_0x9b93('0x1'));var router=express['Router']();var auth=require(_0x9b93('0x2'));var interaction=require('../../components/interaction/service');var config=require(_0x9b93('0x3'));var controller=require('./analyticDefaultReport.controller');router[_0x9b93('0x4')]('/',auth[_0x9b93('0x5')](),controller['index']);router[_0x9b93('0x4')](_0x9b93('0x6'),auth[_0x9b93('0x5')](),controller[_0x9b93('0x7')]);router['get'](_0x9b93('0x8'),auth[_0x9b93('0x5')](),controller[_0x9b93('0x9')]);router[_0x9b93('0x4')](_0x9b93('0xa'),auth[_0x9b93('0x5')](),controller[_0x9b93('0xb')]);router[_0x9b93('0x4')]('/:id/query',auth[_0x9b93('0x5')](),controller[_0x9b93('0xc')]);router[_0x9b93('0xd')]('/',auth['isAuthenticated'](),controller[_0x9b93('0xe')]);router[_0x9b93('0xf')](_0x9b93('0x6'),auth[_0x9b93('0x5')](),controller[_0x9b93('0x10')]);router[_0x9b93('0x11')](_0x9b93('0x6'),auth['isAuthenticated'](),controller[_0x9b93('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc98c=['sequelize','moment','STRING','ENUM','csv','xlsx','DATE','manual','scheduled'];(function(_0x16278f,_0x81ea9c){var _0x3bcdcd=function(_0x232ee4){while(--_0x232ee4){_0x16278f['push'](_0x16278f['shift']());}};_0x3bcdcd(++_0x81ea9c);}(_0xc98c,0x6c));var _0xcc98=function(_0x350bd6,_0x1c5b99){_0x350bd6=_0x350bd6-0x0;var _0x15d08c=_0xc98c[_0x350bd6];return _0x15d08c;};'use strict';var Sequelize=require(_0xcc98('0x0'));var moment=require(_0xcc98('0x1'));module['exports']={'name':{'type':Sequelize[_0xcc98('0x2')],'allowNull':![]},'basename':{'type':Sequelize[_0xcc98('0x2')],'allowNull':![]},'output':{'type':Sequelize[_0xcc98('0x3')](_0xcc98('0x4'),'pdf',_0xcc98('0x5')),'allowNull':![],'defaultValue':_0xcc98('0x4')},'savename':{'type':Sequelize[_0xcc98('0x2')],'allowNull':![]},'startDate':{'type':Sequelize[_0xcc98('0x6')]},'endDate':{'type':Sequelize[_0xcc98('0x6')]},'status':{'type':Sequelize[_0xcc98('0x2')],'defaultValue':'Loading'},'type':{'type':Sequelize[_0xcc98('0x3')](_0xcc98('0x7'),_0xcc98('0x8')),'allowNull':![],'defaultValue':'manual'}};
\ No newline at end of file
+var _0x75c1=['scheduled','manual','sequelize','moment','exports','STRING','pdf','xlsx','DATE','ENUM'];(function(_0x379d48,_0x379390){var _0x56e733=function(_0x416beb){while(--_0x416beb){_0x379d48['push'](_0x379d48['shift']());}};_0x56e733(++_0x379390);}(_0x75c1,0x14c));var _0x175c=function(_0x46bb99,_0x37163c){_0x46bb99=_0x46bb99-0x0;var _0x1fb95b=_0x75c1[_0x46bb99];return _0x1fb95b;};'use strict';var Sequelize=require(_0x175c('0x0'));var moment=require(_0x175c('0x1'));module[_0x175c('0x2')]={'name':{'type':Sequelize[_0x175c('0x3')],'allowNull':![]},'basename':{'type':Sequelize[_0x175c('0x3')],'allowNull':![]},'output':{'type':Sequelize['ENUM']('csv',_0x175c('0x4'),_0x175c('0x5')),'allowNull':![],'defaultValue':'csv'},'savename':{'type':Sequelize['STRING'],'allowNull':![]},'startDate':{'type':Sequelize[_0x175c('0x6')]},'endDate':{'type':Sequelize['DATE']},'status':{'type':Sequelize[_0x175c('0x3')],'defaultValue':'Loading'},'type':{'type':Sequelize[_0x175c('0x7')]('manual',_0x175c('0x8')),'allowNull':![],'defaultValue':_0x175c('0x9')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1272=['root','server/files/reports','savename','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','basename','toLowerCase','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','set','Content-Range','json','apply','save','update','destroy','then','error','name','index','AnalyticExtractedReport','model','keys','query','dateEnd','dateStart','filters','intersection','attributes','fields','limit','order','sort','where','pick','add','day','merge','filter','map','includeAll','include','findAll','rows','catch','params','rawAttributes','length','options','find','create','body','download','output','existsSync'];(function(_0x4cca27,_0x18e06f){var _0x3d8219=function(_0x2ba31b){while(--_0x2ba31b){_0x4cca27['push'](_0x4cca27['shift']());}};_0x3d8219(++_0x18e06f);}(_0x1272,0x1a9));var _0x2127=function(_0x25ff4a,_0x423dd3){_0x25ff4a=_0x25ff4a-0x0;var _0x5a689b=_0x1272[_0x25ff4a];return _0x5a689b;};'use strict';var pdf=require(_0x2127('0x0'));var emlformat=require(_0x2127('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x2127('0x2'));var jsonpatch=require(_0x2127('0x3'));var rp=require(_0x2127('0x4'));var moment=require(_0x2127('0x5'));var BPromise=require(_0x2127('0x6'));var Mustache=require(_0x2127('0x7'));var util=require(_0x2127('0x8'));var path=require('path');var sox=require(_0x2127('0x9'));var csv=require(_0x2127('0xa'));var ejs=require(_0x2127('0xb'));var fs=require('fs');var _=require(_0x2127('0xc'));var squel=require('squel');var crypto=require(_0x2127('0xd'));var jsforce=require(_0x2127('0xe'));var deskjs=require(_0x2127('0xf'));var toCsv=require('to-csv');var querystring=require(_0x2127('0x10'));var Papa=require(_0x2127('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0x2127('0x12'))(_0x2127('0x13'));var utils=require('../../config/utils');var config=require(_0x2127('0x14'));var db=require(_0x2127('0x15'))['db'];function respondWithStatusCode(_0x3afad6,_0x503da1){_0x503da1=_0x503da1||0xcc;return function(_0x28c33b){if(_0x28c33b){return _0x3afad6[_0x2127('0x16')](_0x503da1);}return _0x3afad6[_0x2127('0x17')](_0x503da1)[_0x2127('0x18')]();};}function respondWithResult(_0x5eefa4,_0x591063){_0x591063=_0x591063||0xc8;return function(_0x214ae9){if(_0x214ae9){return _0x5eefa4['status'](_0x591063)['json'](_0x214ae9);}};}function respondWithFilteredResult(_0x5742ad,_0xf3872b){return function(_0x27f843){if(_0x27f843){var _0x564518=_0x27f843[_0x2127('0x19')],_0xe53802=_0xf3872b['offset'],_0xf474f0=_0xf3872b[_0x2127('0x1a')]+_0xf3872b['limit'],_0x2a8e9d;if(_0xf474f0>=_0x564518){_0xf474f0=_0x564518;_0x2a8e9d=0xc8;}else{_0x2a8e9d=0xce;}_0x5742ad[_0x2127('0x17')](_0x2a8e9d);return _0x5742ad[_0x2127('0x1b')](_0x2127('0x1c'),_0xe53802+'-'+_0xf474f0+'/'+_0x564518)[_0x2127('0x1d')](_0x27f843);}return null;};}function patchUpdates(_0x1a59ba){return function(_0x4788d9){try{jsonpatch[_0x2127('0x1e')](_0x4788d9,_0x1a59ba,!![]);}catch(_0x2b035e){return BPromise['reject'](_0x2b035e);}return _0x4788d9[_0x2127('0x1f')]();};}function saveUpdates(_0x505d02,_0x3d0123){return function(_0x1f6193){if(_0x1f6193){return _0x1f6193[_0x2127('0x20')](_0x505d02)['then'](function(_0x2dc247){return _0x2dc247;});}return null;};}function removeEntity(_0x4aa68f,_0x5c1c4b){return function(_0x1906fc){if(_0x1906fc){return _0x1906fc[_0x2127('0x21')]()[_0x2127('0x22')](function(){_0x4aa68f[_0x2127('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x91a79f,_0x38f895){return function(_0x2c1f95){if(!_0x2c1f95){_0x91a79f[_0x2127('0x16')](0x194);}return _0x2c1f95;};}function handleError(_0x44a5be,_0x11a2ff){_0x11a2ff=_0x11a2ff||0x1f4;return function(_0x5881d5){logger[_0x2127('0x23')](_0x5881d5['stack']);if(_0x5881d5['name']){delete _0x5881d5[_0x2127('0x24')];}_0x44a5be[_0x2127('0x17')](_0x11a2ff)['send'](_0x5881d5);};}exports[_0x2127('0x25')]=function(_0x1faa28,_0x498279){var _0x5b3d0a={},_0x247c57={},_0x5cc973={'count':0x0,'rows':[]};var _0x1bd827=db[_0x2127('0x26')]['rawAttributes'];_0x247c57[_0x2127('0x27')]=_[_0x2127('0x28')](_0x1bd827);var _0x2fc8de={'dateStart':_0x1faa28[_0x2127('0x29')]['dateStart'],'dateEnd':_0x1faa28['query'][_0x2127('0x2a')]};delete _0x1faa28['query'][_0x2127('0x2b')];delete _0x1faa28[_0x2127('0x29')][_0x2127('0x2a')];_0x247c57['query']=_[_0x2127('0x28')](_0x1faa28[_0x2127('0x29')]);_0x247c57[_0x2127('0x2c')]=_[_0x2127('0x2d')](_0x247c57['model'],_0x247c57[_0x2127('0x29')]);_0x5b3d0a[_0x2127('0x2e')]=_[_0x2127('0x2d')](_0x247c57[_0x2127('0x27')],qs[_0x2127('0x2f')](_0x1faa28[_0x2127('0x29')][_0x2127('0x2f')]));_0x5b3d0a[_0x2127('0x2e')]=_0x5b3d0a[_0x2127('0x2e')]['length']?_0x5b3d0a[_0x2127('0x2e')]:_0x247c57[_0x2127('0x27')];if(!_0x1faa28['query']['hasOwnProperty']('nolimit')){_0x5b3d0a[_0x2127('0x30')]=qs[_0x2127('0x30')](_0x1faa28[_0x2127('0x29')][_0x2127('0x30')]);_0x5b3d0a[_0x2127('0x1a')]=qs[_0x2127('0x1a')](_0x1faa28['query'][_0x2127('0x1a')]);}_0x5b3d0a[_0x2127('0x31')]=qs[_0x2127('0x32')](_0x1faa28[_0x2127('0x29')][_0x2127('0x32')]);_0x5b3d0a[_0x2127('0x33')]=qs['filters'](_[_0x2127('0x34')](_0x1faa28[_0x2127('0x29')],_0x247c57[_0x2127('0x2c')]));if(_0x2fc8de['dateStart']){if(_0x2fc8de[_0x2127('0x2a')]){_0x2fc8de[_0x2127('0x2a')]=moment(_0x2fc8de[_0x2127('0x2a')])[_0x2127('0x35')](0x1,_0x2127('0x36'));}else{_0x2fc8de['dateEnd']=moment(_0x2fc8de[_0x2127('0x2b')])[_0x2127('0x35')](0x1,_0x2127('0x36'));}_[_0x2127('0x37')](_0x5b3d0a[_0x2127('0x33')],{'createdAt':{'$gte':_0x2fc8de['dateStart'],'$lte':_0x2fc8de['dateEnd']}});}if(_0x1faa28[_0x2127('0x29')][_0x2127('0x38')]){_0x5b3d0a[_0x2127('0x33')]=_[_0x2127('0x37')](_0x5b3d0a[_0x2127('0x33')],{'$or':_[_0x2127('0x39')](_0x5b3d0a['attributes'],function(_0x4eaaec){var _0x40c3fe={};_0x40c3fe[_0x4eaaec]={'$like':'%'+_0x1faa28[_0x2127('0x29')][_0x2127('0x38')]+'%'};return _0x40c3fe;})});}_0x5b3d0a=_[_0x2127('0x37')]({},_0x5b3d0a,_0x1faa28['options']);var _0x256ecf={'where':_0x5b3d0a[_0x2127('0x33')]};return db[_0x2127('0x26')][_0x2127('0x19')](_0x256ecf)[_0x2127('0x22')](function(_0x38a5a2){_0x5cc973['count']=_0x38a5a2;if(_0x1faa28[_0x2127('0x29')][_0x2127('0x3a')]){_0x5b3d0a[_0x2127('0x3b')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0x2127('0x3c')](_0x5b3d0a);})[_0x2127('0x22')](function(_0x246716){_0x5cc973[_0x2127('0x3d')]=_0x246716;return _0x5cc973;})[_0x2127('0x22')](respondWithFilteredResult(_0x498279,_0x5b3d0a))[_0x2127('0x3e')](handleError(_0x498279,null));};exports['show']=function(_0x4e3d17,_0x42b829){var _0x547017={'raw':!![],'where':{'id':_0x4e3d17[_0x2127('0x3f')]['id']}},_0x2b6f71={};_0x2b6f71[_0x2127('0x27')]=_['keys'](db[_0x2127('0x26')][_0x2127('0x40')]);_0x2b6f71[_0x2127('0x29')]=_[_0x2127('0x28')](_0x4e3d17[_0x2127('0x29')]);_0x2b6f71[_0x2127('0x2c')]=_['intersection'](_0x2b6f71[_0x2127('0x27')],_0x2b6f71[_0x2127('0x29')]);_0x547017[_0x2127('0x2e')]=_['intersection'](_0x2b6f71[_0x2127('0x27')],qs[_0x2127('0x2f')](_0x4e3d17[_0x2127('0x29')]['fields']));_0x547017[_0x2127('0x2e')]=_0x547017[_0x2127('0x2e')][_0x2127('0x41')]?_0x547017[_0x2127('0x2e')]:_0x2b6f71['model'];if(_0x4e3d17[_0x2127('0x29')][_0x2127('0x3a')]){_0x547017['include']=[{'all':!![]}];}_0x547017=_[_0x2127('0x37')]({},_0x547017,_0x4e3d17[_0x2127('0x42')]);return db[_0x2127('0x26')][_0x2127('0x43')](_0x547017)[_0x2127('0x22')](handleEntityNotFound(_0x42b829,null))['then'](respondWithResult(_0x42b829,null))[_0x2127('0x3e')](handleError(_0x42b829,null));};exports['create']=function(_0x758752,_0x4a2104){return db[_0x2127('0x26')][_0x2127('0x44')](_0x758752['body'],{})['then'](respondWithResult(_0x4a2104,0xc9))[_0x2127('0x3e')](handleError(_0x4a2104,null));};exports[_0x2127('0x20')]=function(_0x212822,_0x3bcf95){if(_0x212822[_0x2127('0x45')]['id']){delete _0x212822[_0x2127('0x45')]['id'];}return db[_0x2127('0x26')][_0x2127('0x43')]({'where':{'id':_0x212822[_0x2127('0x3f')]['id']}})[_0x2127('0x22')](handleEntityNotFound(_0x3bcf95,null))['then'](saveUpdates(_0x212822[_0x2127('0x45')],null))[_0x2127('0x22')](respondWithResult(_0x3bcf95,null))[_0x2127('0x3e')](handleError(_0x3bcf95,null));};exports[_0x2127('0x21')]=function(_0x3a2af3,_0x6f3f12){return db['AnalyticExtractedReport'][_0x2127('0x43')]({'where':{'id':_0x3a2af3[_0x2127('0x3f')]['id']}})[_0x2127('0x22')](handleEntityNotFound(_0x6f3f12,null))[_0x2127('0x22')](removeEntity(_0x6f3f12,null))['catch'](handleError(_0x6f3f12,null));};exports[_0x2127('0x46')]=function(_0xe09038,_0x417bc4,_0x4803e2){return db['AnalyticExtractedReport'][_0x2127('0x43')]({'where':{'id':_0xe09038[_0x2127('0x3f')]['id']},'attributes':['name','basename','savename',_0x2127('0x47')],'raw':!![]})[_0x2127('0x22')](handleEntityNotFound(_0x417bc4,null))[_0x2127('0x22')](function(_0x3c99aa){if(_0x3c99aa){if(!fs[_0x2127('0x48')](path['join'](config[_0x2127('0x49')],_0x2127('0x4a'),_0x3c99aa[_0x2127('0x4b')]))){throw new db['Sequelize'][(_0x2127('0x4c'))](_0x2127('0x4d'));}if(_0xe09038[_0x2127('0x29')][_0x2127('0x4e')]){return _0x417bc4[_0x2127('0x16')](0xc8);}return _0x417bc4[_0x2127('0x46')](path['join'](config[_0x2127('0x49')],_0x2127('0x4a'),_0x3c99aa[_0x2127('0x4b')]),util[_0x2127('0x4f')](_0x2127('0x50'),_0x3c99aa[_0x2127('0x51')]||_0x3c99aa[_0x2127('0x24')],_0x3c99aa[_0x2127('0x47')][_0x2127('0x52')]()));}})[_0x2127('0x3e')](handleError(_0x417bc4,null));};
\ No newline at end of file
+var _0x0c9c=['dateEnd','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','options','AnalyticExtractedReport','include','rows','catch','show','params','find','create','body','basename','savename','existsSync','join','root','server/files/reports','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','output','toLowerCase','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','lodash','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','reject','update','then','destroy','error','name','send','index','rawAttributes','keys','query','dateStart'];(function(_0x137f1a,_0x2887df){var _0x439923=function(_0x3d3075){while(--_0x3d3075){_0x137f1a['push'](_0x137f1a['shift']());}};_0x439923(++_0x2887df);}(_0x0c9c,0x1c2));var _0xc0c9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c9c[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0xc0c9('0x0'));var emlformat=require(_0xc0c9('0x1'));var rimraf=require(_0xc0c9('0x2'));var zipdir=require(_0xc0c9('0x3'));var jsonpatch=require(_0xc0c9('0x4'));var rp=require(_0xc0c9('0x5'));var moment=require(_0xc0c9('0x6'));var BPromise=require(_0xc0c9('0x7'));var Mustache=require('mustache');var util=require(_0xc0c9('0x8'));var path=require('path');var sox=require(_0xc0c9('0x9'));var csv=require('to-csv');var ejs=require(_0xc0c9('0xa'));var fs=require('fs');var _=require(_0xc0c9('0xb'));var squel=require(_0xc0c9('0xc'));var crypto=require(_0xc0c9('0xd'));var jsforce=require(_0xc0c9('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xc0c9('0xf'));var querystring=require('querystring');var Papa=require(_0xc0c9('0x10'));var Redis=require(_0xc0c9('0x11'));var qs=require(_0xc0c9('0x12'));var logger=require('../../config/logger')(_0xc0c9('0x13'));var utils=require('../../config/utils');var config=require(_0xc0c9('0x14'));var db=require(_0xc0c9('0x15'))['db'];function respondWithStatusCode(_0x52973e,_0x1e544d){_0x1e544d=_0x1e544d||0xcc;return function(_0x504d8c){if(_0x504d8c){return _0x52973e[_0xc0c9('0x16')](_0x1e544d);}return _0x52973e[_0xc0c9('0x17')](_0x1e544d)[_0xc0c9('0x18')]();};}function respondWithResult(_0x2cc030,_0x40170f){_0x40170f=_0x40170f||0xc8;return function(_0x407747){if(_0x407747){return _0x2cc030[_0xc0c9('0x17')](_0x40170f)[_0xc0c9('0x19')](_0x407747);}};}function respondWithFilteredResult(_0x4d98bc,_0x2d04de){return function(_0x34ac2c){if(_0x34ac2c){var _0x28acfe=_0x34ac2c[_0xc0c9('0x1a')],_0x28b1e4=_0x2d04de['offset'],_0x4ccbaf=_0x2d04de[_0xc0c9('0x1b')]+_0x2d04de[_0xc0c9('0x1c')],_0x163c64;if(_0x4ccbaf>=_0x28acfe){_0x4ccbaf=_0x28acfe;_0x163c64=0xc8;}else{_0x163c64=0xce;}_0x4d98bc[_0xc0c9('0x17')](_0x163c64);return _0x4d98bc[_0xc0c9('0x1d')]('Content-Range',_0x28b1e4+'-'+_0x4ccbaf+'/'+_0x28acfe)[_0xc0c9('0x19')](_0x34ac2c);}return null;};}function patchUpdates(_0x151f34){return function(_0x3b8adc){try{jsonpatch['apply'](_0x3b8adc,_0x151f34,!![]);}catch(_0x2e6009){return BPromise[_0xc0c9('0x1e')](_0x2e6009);}return _0x3b8adc['save']();};}function saveUpdates(_0x39194c,_0xa3df53){return function(_0x1fa4df){if(_0x1fa4df){return _0x1fa4df[_0xc0c9('0x1f')](_0x39194c)[_0xc0c9('0x20')](function(_0x2654af){return _0x2654af;});}return null;};}function removeEntity(_0x2060f0,_0x2b48c5){return function(_0x1e958a){if(_0x1e958a){return _0x1e958a[_0xc0c9('0x21')]()[_0xc0c9('0x20')](function(){_0x2060f0['status'](0xcc)[_0xc0c9('0x18')]();});}};}function handleEntityNotFound(_0x4e7514,_0x4ebb63){return function(_0x13fe84){if(!_0x13fe84){_0x4e7514['sendStatus'](0x194);}return _0x13fe84;};}function handleError(_0x507f77,_0x258166){_0x258166=_0x258166||0x1f4;return function(_0x49f921){logger[_0xc0c9('0x22')](_0x49f921['stack']);if(_0x49f921[_0xc0c9('0x23')]){delete _0x49f921[_0xc0c9('0x23')];}_0x507f77[_0xc0c9('0x17')](_0x258166)[_0xc0c9('0x24')](_0x49f921);};}exports[_0xc0c9('0x25')]=function(_0x51eae4,_0x4a2e89){var _0x307382={},_0x885865={},_0x29f1ee={'count':0x0,'rows':[]};var _0x42fa34=db['AnalyticExtractedReport'][_0xc0c9('0x26')];_0x885865['model']=_[_0xc0c9('0x27')](_0x42fa34);var _0x1cc131={'dateStart':_0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x29')],'dateEnd':_0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x2a')]};delete _0x51eae4['query'][_0xc0c9('0x29')];delete _0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x2a')];_0x885865['query']=_[_0xc0c9('0x27')](_0x51eae4[_0xc0c9('0x28')]);_0x885865['filters']=_[_0xc0c9('0x2b')](_0x885865['model'],_0x885865[_0xc0c9('0x28')]);_0x307382[_0xc0c9('0x2c')]=_['intersection'](_0x885865['model'],qs[_0xc0c9('0x2d')](_0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x2d')]));_0x307382[_0xc0c9('0x2c')]=_0x307382[_0xc0c9('0x2c')][_0xc0c9('0x2e')]?_0x307382[_0xc0c9('0x2c')]:_0x885865[_0xc0c9('0x2f')];if(!_0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x30')](_0xc0c9('0x31'))){_0x307382[_0xc0c9('0x1c')]=qs['limit'](_0x51eae4[_0xc0c9('0x28')]['limit']);_0x307382[_0xc0c9('0x1b')]=qs['offset'](_0x51eae4['query'][_0xc0c9('0x1b')]);}_0x307382[_0xc0c9('0x32')]=qs[_0xc0c9('0x33')](_0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x33')]);_0x307382[_0xc0c9('0x34')]=qs[_0xc0c9('0x35')](_[_0xc0c9('0x36')](_0x51eae4[_0xc0c9('0x28')],_0x885865[_0xc0c9('0x35')]));if(_0x1cc131[_0xc0c9('0x29')]){if(_0x1cc131['dateEnd']){_0x1cc131['dateEnd']=moment(_0x1cc131[_0xc0c9('0x2a')])[_0xc0c9('0x37')](0x1,_0xc0c9('0x38'));}else{_0x1cc131[_0xc0c9('0x2a')]=moment(_0x1cc131['dateStart'])['add'](0x1,_0xc0c9('0x38'));}_[_0xc0c9('0x39')](_0x307382[_0xc0c9('0x34')],{'createdAt':{'$gte':_0x1cc131['dateStart'],'$lte':_0x1cc131[_0xc0c9('0x2a')]}});}if(_0x51eae4[_0xc0c9('0x28')][_0xc0c9('0x3a')]){_0x307382[_0xc0c9('0x34')]=_[_0xc0c9('0x39')](_0x307382[_0xc0c9('0x34')],{'$or':_[_0xc0c9('0x3b')](_0x307382['attributes'],function(_0x133dc9){var _0x135a7b={};_0x135a7b[_0x133dc9]={'$like':'%'+_0x51eae4['query'][_0xc0c9('0x3a')]+'%'};return _0x135a7b;})});}_0x307382=_[_0xc0c9('0x39')]({},_0x307382,_0x51eae4[_0xc0c9('0x3c')]);var _0x2bfc0e={'where':_0x307382['where']};return db[_0xc0c9('0x3d')]['count'](_0x2bfc0e)[_0xc0c9('0x20')](function(_0x4a3cba){_0x29f1ee[_0xc0c9('0x1a')]=_0x4a3cba;if(_0x51eae4[_0xc0c9('0x28')]['includeAll']){_0x307382[_0xc0c9('0x3e')]=[{'all':!![]}];}return db[_0xc0c9('0x3d')]['findAll'](_0x307382);})[_0xc0c9('0x20')](function(_0x409aca){_0x29f1ee[_0xc0c9('0x3f')]=_0x409aca;return _0x29f1ee;})[_0xc0c9('0x20')](respondWithFilteredResult(_0x4a2e89,_0x307382))[_0xc0c9('0x40')](handleError(_0x4a2e89,null));};exports[_0xc0c9('0x41')]=function(_0x2c97f7,_0x1a4839){var _0x33f468={'raw':!![],'where':{'id':_0x2c97f7[_0xc0c9('0x42')]['id']}},_0x3f701f={};_0x3f701f[_0xc0c9('0x2f')]=_[_0xc0c9('0x27')](db[_0xc0c9('0x3d')][_0xc0c9('0x26')]);_0x3f701f['query']=_[_0xc0c9('0x27')](_0x2c97f7[_0xc0c9('0x28')]);_0x3f701f[_0xc0c9('0x35')]=_[_0xc0c9('0x2b')](_0x3f701f[_0xc0c9('0x2f')],_0x3f701f[_0xc0c9('0x28')]);_0x33f468[_0xc0c9('0x2c')]=_[_0xc0c9('0x2b')](_0x3f701f[_0xc0c9('0x2f')],qs[_0xc0c9('0x2d')](_0x2c97f7[_0xc0c9('0x28')]['fields']));_0x33f468[_0xc0c9('0x2c')]=_0x33f468[_0xc0c9('0x2c')][_0xc0c9('0x2e')]?_0x33f468[_0xc0c9('0x2c')]:_0x3f701f[_0xc0c9('0x2f')];if(_0x2c97f7[_0xc0c9('0x28')]['includeAll']){_0x33f468[_0xc0c9('0x3e')]=[{'all':!![]}];}_0x33f468=_[_0xc0c9('0x39')]({},_0x33f468,_0x2c97f7[_0xc0c9('0x3c')]);return db[_0xc0c9('0x3d')][_0xc0c9('0x43')](_0x33f468)[_0xc0c9('0x20')](handleEntityNotFound(_0x1a4839,null))[_0xc0c9('0x20')](respondWithResult(_0x1a4839,null))[_0xc0c9('0x40')](handleError(_0x1a4839,null));};exports[_0xc0c9('0x44')]=function(_0x3e2d5d,_0x505073){return db[_0xc0c9('0x3d')][_0xc0c9('0x44')](_0x3e2d5d['body'],{})['then'](respondWithResult(_0x505073,0xc9))[_0xc0c9('0x40')](handleError(_0x505073,null));};exports['update']=function(_0x32579d,_0x4d7653){if(_0x32579d['body']['id']){delete _0x32579d[_0xc0c9('0x45')]['id'];}return db[_0xc0c9('0x3d')][_0xc0c9('0x43')]({'where':{'id':_0x32579d[_0xc0c9('0x42')]['id']}})[_0xc0c9('0x20')](handleEntityNotFound(_0x4d7653,null))[_0xc0c9('0x20')](saveUpdates(_0x32579d['body'],null))[_0xc0c9('0x20')](respondWithResult(_0x4d7653,null))['catch'](handleError(_0x4d7653,null));};exports[_0xc0c9('0x21')]=function(_0x2b3bdc,_0x14afdc){return db[_0xc0c9('0x3d')][_0xc0c9('0x43')]({'where':{'id':_0x2b3bdc['params']['id']}})[_0xc0c9('0x20')](handleEntityNotFound(_0x14afdc,null))[_0xc0c9('0x20')](removeEntity(_0x14afdc,null))['catch'](handleError(_0x14afdc,null));};exports['download']=function(_0x42d268,_0x30c182,_0x42c107){return db[_0xc0c9('0x3d')][_0xc0c9('0x43')]({'where':{'id':_0x42d268['params']['id']},'attributes':[_0xc0c9('0x23'),_0xc0c9('0x46'),_0xc0c9('0x47'),'output'],'raw':!![]})['then'](handleEntityNotFound(_0x30c182,null))[_0xc0c9('0x20')](function(_0x5593e6){if(_0x5593e6){if(!fs[_0xc0c9('0x48')](path[_0xc0c9('0x49')](config[_0xc0c9('0x4a')],_0xc0c9('0x4b'),_0x5593e6[_0xc0c9('0x47')]))){throw new db['Sequelize'][(_0xc0c9('0x4c'))](_0xc0c9('0x4d'));}if(_0x42d268['query'][_0xc0c9('0x4e')]){return _0x30c182['sendStatus'](0xc8);}return _0x30c182[_0xc0c9('0x4f')](path[_0xc0c9('0x49')](config[_0xc0c9('0x4a')],_0xc0c9('0x4b'),_0x5593e6[_0xc0c9('0x47')]),util['format']('%s.%s',_0x5593e6[_0xc0c9('0x46')]||_0x5593e6['name'],_0x5593e6[_0xc0c9('0x50')][_0xc0c9('0x51')]()));}})['catch'](handleError(_0x30c182,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7582=['../../config/logger','api','bluebird','./analyticExtractedReport.attributes','exports','AnalyticExtractedReport','analytics_extracted_reports','util'];(function(_0x4a47e1,_0x1d611a){var _0x17f66b=function(_0x184e25){while(--_0x184e25){_0x4a47e1['push'](_0x4a47e1['shift']());}};_0x17f66b(++_0x1d611a);}(_0x7582,0x167));var _0x2758=function(_0x1e5cc3,_0x238a87){_0x1e5cc3=_0x1e5cc3-0x0;var _0x15c596=_0x7582[_0x1e5cc3];return _0x15c596;};'use strict';var _=require('lodash');var util=require(_0x2758('0x0'));var logger=require(_0x2758('0x1'))(_0x2758('0x2'));var moment=require('moment');var BPromise=require(_0x2758('0x3'));var rp=require('request-promise');var attributes=require(_0x2758('0x4'));module[_0x2758('0x5')]=function(_0x34cb22,_0x2d11dd){return _0x34cb22['define'](_0x2758('0x6'),attributes,{'tableName':_0x2758('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc302=['exports','define','AnalyticExtractedReport','analytics_extracted_reports','util','../../config/logger','moment','bluebird','./analyticExtractedReport.attributes'];(function(_0x3b92b4,_0xbce921){var _0x386cf5=function(_0x312b0f){while(--_0x312b0f){_0x3b92b4['push'](_0x3b92b4['shift']());}};_0x386cf5(++_0xbce921);}(_0xc302,0x187));var _0x2c30=function(_0x45bffc,_0x23c896){_0x45bffc=_0x45bffc-0x0;var _0x2b2eca=_0xc302[_0x45bffc];return _0x2b2eca;};'use strict';var _=require('lodash');var util=require(_0x2c30('0x0'));var logger=require(_0x2c30('0x1'))('api');var moment=require(_0x2c30('0x2'));var BPromise=require(_0x2c30('0x3'));var rp=require('request-promise');var attributes=require(_0x2c30('0x4'));module[_0x2c30('0x5')]=function(_0x3e25d2,_0x3d8cbd){return _0x3e25d2[_0x2c30('0x6')](_0x2c30('0x7'),attributes,{'tableName':_0x2c30('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f22=['request\x20sent','debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','AnalyticExtractedReport,\x20%s,\x20%s'];(function(_0x4487a2,_0x3fd5a5){var _0x4a1f33=function(_0x4f5310){while(--_0x4f5310){_0x4487a2['push'](_0x4487a2['shift']());}};_0x4a1f33(++_0x3fd5a5);}(_0x0f22,0x71));var _0x20f2=function(_0x2d4660,_0x84981e){_0x2d4660=_0x2d4660-0x0;var _0x5ef7a6=_0x0f22[_0x2d4660];return _0x5ef7a6;};'use strict';var _=require('lodash');var util=require(_0x20f2('0x0'));var moment=require(_0x20f2('0x1'));var BPromise=require(_0x20f2('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x20f2('0x3'))['db'];var utils=require(_0x20f2('0x4'));var logger=require(_0x20f2('0x5'))('rpc');var config=require(_0x20f2('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x20f2('0x7')][_0x20f2('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x547f6e,_0x53514b,_0x1c33b3){return new BPromise(function(_0x3d2fc0,_0x48dcf2){return client[_0x20f2('0x9')](_0x547f6e,_0x1c33b3)[_0x20f2('0xa')](function(_0x1d243a){logger[_0x20f2('0xb')](_0x20f2('0xc'),_0x53514b,_0x20f2('0xd'));logger[_0x20f2('0xe')](_0x20f2('0xf'),_0x53514b,'request\x20sent',JSON[_0x20f2('0x10')](_0x1d243a));if(_0x1d243a['error']){if(_0x1d243a['error']['code']===0x1f4){logger[_0x20f2('0x11')](_0x20f2('0xc'),_0x53514b,_0x1d243a[_0x20f2('0x11')]['message']);return _0x48dcf2(_0x1d243a[_0x20f2('0x11')][_0x20f2('0x12')]);}logger[_0x20f2('0x11')](_0x20f2('0xc'),_0x53514b,_0x1d243a[_0x20f2('0x11')]['message']);return _0x3d2fc0(_0x1d243a[_0x20f2('0x11')]['message']);}else{logger['info'](_0x20f2('0xc'),_0x53514b,_0x20f2('0xd'));_0x3d2fc0(_0x1d243a[_0x20f2('0x13')][_0x20f2('0x12')]);}})[_0x20f2('0x14')](function(_0x368aaf){logger[_0x20f2('0x11')](_0x20f2('0xc'),_0x53514b,_0x368aaf);_0x48dcf2(_0x368aaf);});});}
\ No newline at end of file
+var _0x4171=['stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s'];(function(_0x29f06c,_0x2af734){var _0x4b8359=function(_0x3eeef8){while(--_0x3eeef8){_0x29f06c['push'](_0x29f06c['shift']());}};_0x4b8359(++_0x2af734);}(_0x4171,0x100));var _0x1417=function(_0x439f98,_0x98c9d0){_0x439f98=_0x439f98-0x0;var _0x47e235=_0x4171[_0x439f98];return _0x47e235;};'use strict';var _=require(_0x1417('0x0'));var util=require('util');var moment=require(_0x1417('0x1'));var BPromise=require(_0x1417('0x2'));var rs=require(_0x1417('0x3'));var fs=require('fs');var Redis=require(_0x1417('0x4'));var db=require(_0x1417('0x5'))['db'];var utils=require(_0x1417('0x6'));var logger=require(_0x1417('0x7'))(_0x1417('0x8'));var config=require(_0x1417('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x1417('0xa')][_0x1417('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x350998,_0x194cc8,_0xe474e6){return new BPromise(function(_0x487779,_0x1ae4fa){return client[_0x1417('0xc')](_0x350998,_0xe474e6)[_0x1417('0xd')](function(_0x4fe04e){logger[_0x1417('0xe')](_0x1417('0xf'),_0x194cc8,_0x1417('0x10'));logger[_0x1417('0x11')](_0x1417('0x12'),_0x194cc8,_0x1417('0x10'),JSON[_0x1417('0x13')](_0x4fe04e));if(_0x4fe04e[_0x1417('0x14')]){if(_0x4fe04e[_0x1417('0x14')][_0x1417('0x15')]===0x1f4){logger[_0x1417('0x14')](_0x1417('0xf'),_0x194cc8,_0x4fe04e[_0x1417('0x14')][_0x1417('0x16')]);return _0x1ae4fa(_0x4fe04e[_0x1417('0x14')][_0x1417('0x16')]);}logger[_0x1417('0x14')](_0x1417('0xf'),_0x194cc8,_0x4fe04e[_0x1417('0x14')][_0x1417('0x16')]);return _0x487779(_0x4fe04e[_0x1417('0x14')][_0x1417('0x16')]);}else{logger[_0x1417('0xe')](_0x1417('0xf'),_0x194cc8,'request\x20sent');_0x487779(_0x4fe04e[_0x1417('0x17')][_0x1417('0x16')]);}})[_0x1417('0x18')](function(_0x15f959){logger['error']('AnalyticExtractedReport,\x20%s,\x20%s',_0x194cc8,_0x15f959);_0x1ae4fa(_0x15f959);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticExtractedReport.controller','get','/:id','show','/:id/download','isAuthenticated','download','create','put','destroy'];(function(_0x22868f,_0x450f48){var _0x97bc75=function(_0x447cb4){while(--_0x447cb4){_0x22868f['push'](_0x22868f['shift']());}};_0x97bc75(++_0x450f48);}(_0x1261,0x144));var _0x1126=function(_0x2610db,_0x454344){_0x2610db=_0x2610db-0x0;var _0x5d4d96=_0x1261[_0x2610db];return _0x5d4d96;};'use strict';var multer=require('multer');var util=require(_0x1126('0x0'));var path=require(_0x1126('0x1'));var timeout=require(_0x1126('0x2'));var express=require(_0x1126('0x3'));var router=express[_0x1126('0x4')]();var auth=require(_0x1126('0x5'));var interaction=require(_0x1126('0x6'));var config=require(_0x1126('0x7'));var controller=require(_0x1126('0x8'));router[_0x1126('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x1126('0x9')](_0x1126('0xa'),auth['isAuthenticated'](),controller[_0x1126('0xb')]);router[_0x1126('0x9')](_0x1126('0xc'),auth[_0x1126('0xd')](),controller[_0x1126('0xe')]);router['post']('/',auth[_0x1126('0xd')](),controller[_0x1126('0xf')]);router[_0x1126('0x10')]('/:id',auth[_0x1126('0xd')](),controller['update']);router['delete'](_0x1126('0xa'),auth['isAuthenticated'](),controller[_0x1126('0x11')]);module[_0x1126('0x12')]=router;
\ No newline at end of file
+var _0x2ef3=['express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/download','download','post','create','update','delete','destroy','multer','util','path','connect-timeout'];(function(_0x3b20c2,_0x888661){var _0x5b4482=function(_0x15b274){while(--_0x15b274){_0x3b20c2['push'](_0x3b20c2['shift']());}};_0x5b4482(++_0x888661);}(_0x2ef3,0xba));var _0x32ef=function(_0x577175,_0x4bcc33){_0x577175=_0x577175-0x0;var _0x535dfe=_0x2ef3[_0x577175];return _0x535dfe;};'use strict';var multer=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var path=require(_0x32ef('0x2'));var timeout=require(_0x32ef('0x3'));var express=require(_0x32ef('0x4'));var router=express[_0x32ef('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0x32ef('0x6'));var config=require(_0x32ef('0x7'));var controller=require('./analyticExtractedReport.controller');router[_0x32ef('0x8')]('/',auth[_0x32ef('0x9')](),controller['index']);router['get'](_0x32ef('0xa'),auth[_0x32ef('0x9')](),controller[_0x32ef('0xb')]);router[_0x32ef('0x8')](_0x32ef('0xc'),auth[_0x32ef('0x9')](),controller[_0x32ef('0xd')]);router[_0x32ef('0xe')]('/',auth[_0x32ef('0x9')](),controller[_0x32ef('0xf')]);router['put']('/:id',auth[_0x32ef('0x9')](),controller[_0x32ef('0x10')]);router[_0x32ef('0x11')](_0x32ef('0xa'),auth['isAuthenticated'](),controller[_0x32ef('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4b8=['STRING','BOOLEAN','sequelize','exports'];(function(_0x3e0916,_0x4a0573){var _0x452ff7=function(_0x3fd857){while(--_0x3fd857){_0x3e0916['push'](_0x3e0916['shift']());}};_0x452ff7(++_0x4a0573);}(_0xf4b8,0xee));var _0x8f4b=function(_0x206197,_0x41b219){_0x206197=_0x206197-0x0;var _0x536b9a=_0xf4b8[_0x206197];return _0x536b9a;};'use strict';var Sequelize=require(_0x8f4b('0x0'));module[_0x8f4b('0x1')]={'field':{'type':Sequelize['TEXT']},'alias':{'type':Sequelize[_0x8f4b('0x2')]},'function':{'type':Sequelize[_0x8f4b('0x2')]},'format':{'type':Sequelize[_0x8f4b('0x2')]},'groupBy':{'type':Sequelize[_0x8f4b('0x3')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x8f4b('0x2')]},'custom':{'type':Sequelize[_0x8f4b('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x2ee7=['sequelize','exports','TEXT','STRING','BOOLEAN'];(function(_0x52c511,_0x1d6b34){var _0x2fdc73=function(_0x4d0e46){while(--_0x4d0e46){_0x52c511['push'](_0x52c511['shift']());}};_0x2fdc73(++_0x1d6b34);}(_0x2ee7,0xeb));var _0x72ee=function(_0x321f4f,_0x20725d){_0x321f4f=_0x321f4f-0x0;var _0x4da2ee=_0x2ee7[_0x321f4f];return _0x4da2ee;};'use strict';var Sequelize=require(_0x72ee('0x0'));module[_0x72ee('0x1')]={'field':{'type':Sequelize[_0x72ee('0x2')]},'alias':{'type':Sequelize[_0x72ee('0x3')]},'function':{'type':Sequelize['STRING']},'format':{'type':Sequelize[_0x72ee('0x3')]},'groupBy':{'type':Sequelize[_0x72ee('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x72ee('0x3')]},'custom':{'type':Sequelize[_0x72ee('0x4')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8427=['moment','bluebird','mustache','util','path','to-csv','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','index','AnalyticFieldReport','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','model','fields','attributes','nolimit','order','sort','where','add','day','merge','filter','map','options','includeAll','show','params','length','include','find','catch','create','bulkCreate','body','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','sequelize','transaction','CustomReportId','findAll','html-pdf','eml-format','rimraf','zip-dir','request-promise'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x8427,0x137));var _0x7842=function(_0x5ac252,_0x458733){_0x5ac252=_0x5ac252-0x0;var _0x1ce61a=_0x8427[_0x5ac252];return _0x1ce61a;};'use strict';var pdf=require(_0x7842('0x0'));var emlformat=require(_0x7842('0x1'));var rimraf=require(_0x7842('0x2'));var zipdir=require(_0x7842('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7842('0x4'));var moment=require(_0x7842('0x5'));var BPromise=require(_0x7842('0x6'));var Mustache=require(_0x7842('0x7'));var util=require(_0x7842('0x8'));var path=require(_0x7842('0x9'));var sox=require('sox');var csv=require(_0x7842('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x7842('0xb'));var crypto=require(_0x7842('0xc'));var jsforce=require(_0x7842('0xd'));var deskjs=require(_0x7842('0xe'));var toCsv=require(_0x7842('0xa'));var querystring=require(_0x7842('0xf'));var Papa=require(_0x7842('0x10'));var qs=require(_0x7842('0x11'));var logger=require(_0x7842('0x12'))(_0x7842('0x13'));var utils=require('../../config/utils');var config=require(_0x7842('0x14'));var db=require(_0x7842('0x15'))['db'];function respondWithStatusCode(_0xea7eb3,_0x5907a9){_0x5907a9=_0x5907a9||0xcc;return function(_0x461fdb){if(_0x461fdb){return _0xea7eb3[_0x7842('0x16')](_0x5907a9);}return _0xea7eb3[_0x7842('0x17')](_0x5907a9)['end']();};}function respondWithResult(_0x417d3f,_0x1d24b7){_0x1d24b7=_0x1d24b7||0xc8;return function(_0x153ea2){if(_0x153ea2){return _0x417d3f['status'](_0x1d24b7)['json'](_0x153ea2);}};}function respondWithFilteredResult(_0x406103,_0x26094f){return function(_0x1dcc0a){if(_0x1dcc0a){var _0x5ba81d=_0x1dcc0a[_0x7842('0x18')],_0x24df67=_0x26094f['offset'],_0x55885c=_0x26094f[_0x7842('0x19')]+_0x26094f[_0x7842('0x1a')],_0x31dca9;if(_0x55885c>=_0x5ba81d){_0x55885c=_0x5ba81d;_0x31dca9=0xc8;}else{_0x31dca9=0xce;}_0x406103[_0x7842('0x17')](_0x31dca9);return _0x406103[_0x7842('0x1b')](_0x7842('0x1c'),_0x24df67+'-'+_0x55885c+'/'+_0x5ba81d)['json'](_0x1dcc0a);}return null;};}function patchUpdates(_0x3f3821){return function(_0x4e6e85){try{jsonpatch[_0x7842('0x1d')](_0x4e6e85,_0x3f3821,!![]);}catch(_0x33c3c2){return BPromise['reject'](_0x33c3c2);}return _0x4e6e85[_0x7842('0x1e')]();};}function saveUpdates(_0x348e02,_0x56c799){return function(_0x22abb8){if(_0x22abb8){return _0x22abb8[_0x7842('0x1f')](_0x348e02)[_0x7842('0x20')](function(_0x427ac1){return _0x427ac1;});}return null;};}function removeEntity(_0x1198e7,_0x9c05ed){return function(_0x165f9c){if(_0x165f9c){return _0x165f9c[_0x7842('0x21')]()[_0x7842('0x20')](function(){_0x1198e7['status'](0xcc)[_0x7842('0x22')]();});}};}function handleEntityNotFound(_0x260729,_0x3c8774){return function(_0x186074){if(!_0x186074){_0x260729[_0x7842('0x16')](0x194);}return _0x186074;};}function handleError(_0x423b9d,_0x122db2){_0x122db2=_0x122db2||0x1f4;return function(_0x55fc47){logger[_0x7842('0x23')](_0x55fc47[_0x7842('0x24')]);if(_0x55fc47['name']){delete _0x55fc47[_0x7842('0x25')];}_0x423b9d[_0x7842('0x17')](_0x122db2)['send'](_0x55fc47);};}exports[_0x7842('0x26')]=function(_0x32dcbb,_0x64aa7e){var _0x31f5c5={},_0x330738={},_0x13dc87={'count':0x0,'rows':[]};var _0x103ea2=db[_0x7842('0x27')][_0x7842('0x28')];_0x330738['model']=_[_0x7842('0x29')](_0x103ea2);var _0x2b96f8={'dateStart':_0x32dcbb[_0x7842('0x2a')][_0x7842('0x2b')],'dateEnd':_0x32dcbb[_0x7842('0x2a')][_0x7842('0x2c')]};delete _0x32dcbb[_0x7842('0x2a')][_0x7842('0x2b')];delete _0x32dcbb[_0x7842('0x2a')][_0x7842('0x2c')];_0x330738[_0x7842('0x2a')]=_[_0x7842('0x29')](_0x32dcbb['query']);_0x330738[_0x7842('0x2d')]=_[_0x7842('0x2e')](_0x330738[_0x7842('0x2f')],_0x330738[_0x7842('0x2a')]);_0x31f5c5['attributes']=_[_0x7842('0x2e')](_0x330738[_0x7842('0x2f')],qs[_0x7842('0x30')](_0x32dcbb[_0x7842('0x2a')][_0x7842('0x30')]));_0x31f5c5['attributes']=_0x31f5c5[_0x7842('0x31')]['length']?_0x31f5c5[_0x7842('0x31')]:_0x330738[_0x7842('0x2f')];if(!_0x32dcbb[_0x7842('0x2a')]['hasOwnProperty'](_0x7842('0x32'))){_0x31f5c5[_0x7842('0x1a')]=qs[_0x7842('0x1a')](_0x32dcbb['query'][_0x7842('0x1a')]);_0x31f5c5[_0x7842('0x19')]=qs[_0x7842('0x19')](_0x32dcbb[_0x7842('0x2a')][_0x7842('0x19')]);}_0x31f5c5[_0x7842('0x33')]=qs[_0x7842('0x34')](_0x32dcbb[_0x7842('0x2a')][_0x7842('0x34')]);_0x31f5c5[_0x7842('0x35')]=qs['filters'](_['pick'](_0x32dcbb[_0x7842('0x2a')],_0x330738[_0x7842('0x2d')]));if(_0x2b96f8[_0x7842('0x2b')]){if(_0x2b96f8[_0x7842('0x2c')]){_0x2b96f8[_0x7842('0x2c')]=moment(_0x2b96f8[_0x7842('0x2c')])[_0x7842('0x36')](0x1,_0x7842('0x37'));}else{_0x2b96f8[_0x7842('0x2c')]=moment(_0x2b96f8[_0x7842('0x2b')])[_0x7842('0x36')](0x1,_0x7842('0x37'));}_[_0x7842('0x38')](_0x31f5c5[_0x7842('0x35')],{'createdAt':{'$gte':_0x2b96f8[_0x7842('0x2b')],'$lte':_0x2b96f8[_0x7842('0x2c')]}});}if(_0x32dcbb[_0x7842('0x2a')][_0x7842('0x39')]){_0x31f5c5[_0x7842('0x35')]=_['merge'](_0x31f5c5[_0x7842('0x35')],{'$or':_[_0x7842('0x3a')](_0x31f5c5['attributes'],function(_0x589234){var _0x3fc570={};_0x3fc570[_0x589234]={'$like':'%'+_0x32dcbb['query']['filter']+'%'};return _0x3fc570;})});}_0x31f5c5=_[_0x7842('0x38')]({},_0x31f5c5,_0x32dcbb[_0x7842('0x3b')]);var _0x3d9a63={'where':_0x31f5c5['where']};return db[_0x7842('0x27')][_0x7842('0x18')](_0x3d9a63)[_0x7842('0x20')](function(_0x226be9){_0x13dc87['count']=_0x226be9;if(_0x32dcbb[_0x7842('0x2a')][_0x7842('0x3c')]){_0x31f5c5['include']=[{'all':!![]}];}return db['AnalyticFieldReport']['findAll'](_0x31f5c5);})['then'](function(_0x31f712){_0x13dc87['rows']=_0x31f712;return _0x13dc87;})[_0x7842('0x20')](respondWithFilteredResult(_0x64aa7e,_0x31f5c5))['catch'](handleError(_0x64aa7e,null));};exports[_0x7842('0x3d')]=function(_0x23db1b,_0x48e55e){var _0x367e86={'raw':![],'where':{'id':_0x23db1b[_0x7842('0x3e')]['id']}},_0x33dbd9={};_0x33dbd9[_0x7842('0x2f')]=_[_0x7842('0x29')](db[_0x7842('0x27')][_0x7842('0x28')]);_0x33dbd9['query']=_['keys'](_0x23db1b[_0x7842('0x2a')]);_0x33dbd9[_0x7842('0x2d')]=_[_0x7842('0x2e')](_0x33dbd9[_0x7842('0x2f')],_0x33dbd9[_0x7842('0x2a')]);_0x367e86['attributes']=_[_0x7842('0x2e')](_0x33dbd9[_0x7842('0x2f')],qs[_0x7842('0x30')](_0x23db1b[_0x7842('0x2a')][_0x7842('0x30')]));_0x367e86[_0x7842('0x31')]=_0x367e86[_0x7842('0x31')][_0x7842('0x3f')]?_0x367e86[_0x7842('0x31')]:_0x33dbd9['model'];if(_0x23db1b[_0x7842('0x2a')][_0x7842('0x3c')]){_0x367e86[_0x7842('0x40')]=[{'all':!![]}];}_0x367e86=_[_0x7842('0x38')]({},_0x367e86,_0x23db1b['options']);return db[_0x7842('0x27')][_0x7842('0x41')](_0x367e86)['then'](handleEntityNotFound(_0x48e55e,null))['then'](respondWithResult(_0x48e55e,null))[_0x7842('0x42')](handleError(_0x48e55e,null));};exports[_0x7842('0x43')]=function(_0x39e9bb,_0x128b94){return db['AnalyticFieldReport'][_0x7842('0x43')](_0x39e9bb['body'],{})[_0x7842('0x20')](respondWithResult(_0x128b94,0xc9))[_0x7842('0x42')](handleError(_0x128b94,null));};exports[_0x7842('0x44')]=function(_0x29d440,_0x57f187){return db[_0x7842('0x27')][_0x7842('0x44')](_0x29d440[_0x7842('0x45')],{'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x57f187,0xc9))[_0x7842('0x42')](handleError(_0x57f187,null));};exports['update']=function(_0x3f09f7,_0x24daf2){if(_0x3f09f7[_0x7842('0x45')]['id']){delete _0x3f09f7[_0x7842('0x45')]['id'];}return db[_0x7842('0x27')][_0x7842('0x41')]({'where':{'id':_0x3f09f7['params']['id']}})[_0x7842('0x20')](handleEntityNotFound(_0x24daf2,null))[_0x7842('0x20')](saveUpdates(_0x3f09f7[_0x7842('0x45')],null))['then'](respondWithResult(_0x24daf2,null))[_0x7842('0x42')](handleError(_0x24daf2,null));};exports['destroy']=function(_0x377641,_0x36ab5e){return db[_0x7842('0x27')][_0x7842('0x41')]({'where':{'id':_0x377641[_0x7842('0x3e')]['id']}})[_0x7842('0x20')](handleEntityNotFound(_0x36ab5e,null))[_0x7842('0x20')](removeEntity(_0x36ab5e,null))[_0x7842('0x42')](handleError(_0x36ab5e,null));};exports[_0x7842('0x46')]=function(_0x2679bf,_0x1dbaa3){return db['AnalyticFieldReport'][_0x7842('0x21')]({'where':{'id':_0x2679bf['query'][_0x7842('0x47')]||[]},'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x1dbaa3,0xcc))[_0x7842('0x42')](handleError(_0x1dbaa3,null));};exports[_0x7842('0x48')]=function(_0x514c19,_0x2a8b10,_0x248415){return db[_0x7842('0x49')][_0x7842('0x4a')]({'where':{'id':_0x514c19[_0x7842('0x3e')]['id']}})[_0x7842('0x20')](handleEntityNotFound(_0x2a8b10,null))[_0x7842('0x20')](function(_0x1c3ef4){if(_0x1c3ef4){return db[_0x7842('0x4b')][_0x7842('0x4c')](function(_0x21b0b1){return db['AnalyticFieldReport'][_0x7842('0x21')]({'where':{'CustomReportId':_0x514c19[_0x7842('0x3e')]['id']},'transaction':_0x21b0b1})[_0x7842('0x20')](function(_0x155eb1){var _0x48d589=_[_0x7842('0x3a')](_0x514c19[_0x7842('0x45')],function(_0x3c62ee){delete _0x3c62ee['id'];_0x3c62ee[_0x7842('0x4d')]=_0x514c19[_0x7842('0x3e')]['id'];return _0x3c62ee;});return db[_0x7842('0x27')][_0x7842('0x44')](_0x48d589,{'transaction':_0x21b0b1});});})['then'](function(){return db['AnalyticFieldReport'][_0x7842('0x4e')]({'where':{'CustomReportId':_0x514c19[_0x7842('0x3e')]['id']}});});}})['then'](respondWithResult(_0x2a8b10,null))['catch'](handleError(_0x2a8b10,null));};
\ No newline at end of file
+var _0xb574=['sort','where','filters','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch','create','body','bulkCreate','bulkDestroy','ids','findOne','sequelize','transaction','CustomReportId','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','index','AnalyticFieldReport','keys','query','dateStart','dateEnd','intersection','model','attributes','fields','length','nolimit','order'];(function(_0xce9a4f,_0x35cf8d){var _0x134100=function(_0x55ddc1){while(--_0x55ddc1){_0xce9a4f['push'](_0xce9a4f['shift']());}};_0x134100(++_0x35cf8d);}(_0xb574,0x106));var _0x4b57=function(_0x80b78d,_0x2c7235){_0x80b78d=_0x80b78d-0x0;var _0x3432a5=_0xb574[_0x80b78d];return _0x3432a5;};'use strict';var pdf=require(_0x4b57('0x0'));var emlformat=require(_0x4b57('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x4b57('0x2'));var jsonpatch=require(_0x4b57('0x3'));var rp=require('request-promise');var moment=require(_0x4b57('0x4'));var BPromise=require(_0x4b57('0x5'));var Mustache=require(_0x4b57('0x6'));var util=require(_0x4b57('0x7'));var path=require(_0x4b57('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4b57('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4b57('0xa'));var toCsv=require(_0x4b57('0xb'));var querystring=require(_0x4b57('0xc'));var Papa=require(_0x4b57('0xd'));var Redis=require(_0x4b57('0xe'));var qs=require(_0x4b57('0xf'));var logger=require(_0x4b57('0x10'))(_0x4b57('0x11'));var utils=require('../../config/utils');var config=require(_0x4b57('0x12'));var db=require(_0x4b57('0x13'))['db'];function respondWithStatusCode(_0x274912,_0x5947d0){_0x5947d0=_0x5947d0||0xcc;return function(_0x5782ac){if(_0x5782ac){return _0x274912[_0x4b57('0x14')](_0x5947d0);}return _0x274912[_0x4b57('0x15')](_0x5947d0)[_0x4b57('0x16')]();};}function respondWithResult(_0xf8a6fc,_0x607276){_0x607276=_0x607276||0xc8;return function(_0x1ab6a8){if(_0x1ab6a8){return _0xf8a6fc[_0x4b57('0x15')](_0x607276)[_0x4b57('0x17')](_0x1ab6a8);}};}function respondWithFilteredResult(_0x31cced,_0x4e15be){return function(_0x4a58dc){if(_0x4a58dc){var _0x236c95=_0x4a58dc[_0x4b57('0x18')],_0x24f776=_0x4e15be['offset'],_0x10b9ff=_0x4e15be[_0x4b57('0x19')]+_0x4e15be[_0x4b57('0x1a')],_0x58d6bd;if(_0x10b9ff>=_0x236c95){_0x10b9ff=_0x236c95;_0x58d6bd=0xc8;}else{_0x58d6bd=0xce;}_0x31cced[_0x4b57('0x15')](_0x58d6bd);return _0x31cced[_0x4b57('0x1b')](_0x4b57('0x1c'),_0x24f776+'-'+_0x10b9ff+'/'+_0x236c95)[_0x4b57('0x17')](_0x4a58dc);}return null;};}function patchUpdates(_0x4ede42){return function(_0x1b35ff){try{jsonpatch[_0x4b57('0x1d')](_0x1b35ff,_0x4ede42,!![]);}catch(_0x53f29a){return BPromise[_0x4b57('0x1e')](_0x53f29a);}return _0x1b35ff['save']();};}function saveUpdates(_0xb62450,_0x1ca49e){return function(_0xad9165){if(_0xad9165){return _0xad9165[_0x4b57('0x1f')](_0xb62450)[_0x4b57('0x20')](function(_0x4454c8){return _0x4454c8;});}return null;};}function removeEntity(_0x4f407d,_0x4b504b){return function(_0x131fed){if(_0x131fed){return _0x131fed[_0x4b57('0x21')]()['then'](function(){_0x4f407d[_0x4b57('0x15')](0xcc)[_0x4b57('0x16')]();});}};}function handleEntityNotFound(_0x286c7d,_0x1fa78d){return function(_0x56f017){if(!_0x56f017){_0x286c7d[_0x4b57('0x14')](0x194);}return _0x56f017;};}function handleError(_0x368c5f,_0x4d07c9){_0x4d07c9=_0x4d07c9||0x1f4;return function(_0x3e7b96){logger[_0x4b57('0x22')](_0x3e7b96[_0x4b57('0x23')]);if(_0x3e7b96[_0x4b57('0x24')]){delete _0x3e7b96['name'];}_0x368c5f[_0x4b57('0x15')](_0x4d07c9)['send'](_0x3e7b96);};}exports[_0x4b57('0x25')]=function(_0x517119,_0x36ceb1){var _0x2dc9d8={},_0x4af2c8={},_0x6584c4={'count':0x0,'rows':[]};var _0x104f52=db[_0x4b57('0x26')]['rawAttributes'];_0x4af2c8['model']=_[_0x4b57('0x27')](_0x104f52);var _0x4c58e4={'dateStart':_0x517119[_0x4b57('0x28')][_0x4b57('0x29')],'dateEnd':_0x517119[_0x4b57('0x28')][_0x4b57('0x2a')]};delete _0x517119[_0x4b57('0x28')][_0x4b57('0x29')];delete _0x517119['query'][_0x4b57('0x2a')];_0x4af2c8[_0x4b57('0x28')]=_[_0x4b57('0x27')](_0x517119[_0x4b57('0x28')]);_0x4af2c8['filters']=_[_0x4b57('0x2b')](_0x4af2c8[_0x4b57('0x2c')],_0x4af2c8['query']);_0x2dc9d8[_0x4b57('0x2d')]=_[_0x4b57('0x2b')](_0x4af2c8[_0x4b57('0x2c')],qs[_0x4b57('0x2e')](_0x517119['query']['fields']));_0x2dc9d8['attributes']=_0x2dc9d8[_0x4b57('0x2d')][_0x4b57('0x2f')]?_0x2dc9d8[_0x4b57('0x2d')]:_0x4af2c8[_0x4b57('0x2c')];if(!_0x517119[_0x4b57('0x28')]['hasOwnProperty'](_0x4b57('0x30'))){_0x2dc9d8[_0x4b57('0x1a')]=qs[_0x4b57('0x1a')](_0x517119['query'][_0x4b57('0x1a')]);_0x2dc9d8[_0x4b57('0x19')]=qs[_0x4b57('0x19')](_0x517119['query'][_0x4b57('0x19')]);}_0x2dc9d8[_0x4b57('0x31')]=qs['sort'](_0x517119[_0x4b57('0x28')][_0x4b57('0x32')]);_0x2dc9d8[_0x4b57('0x33')]=qs[_0x4b57('0x34')](_[_0x4b57('0x35')](_0x517119[_0x4b57('0x28')],_0x4af2c8['filters']));if(_0x4c58e4[_0x4b57('0x29')]){if(_0x4c58e4[_0x4b57('0x2a')]){_0x4c58e4[_0x4b57('0x2a')]=moment(_0x4c58e4[_0x4b57('0x2a')])[_0x4b57('0x36')](0x1,_0x4b57('0x37'));}else{_0x4c58e4[_0x4b57('0x2a')]=moment(_0x4c58e4['dateStart'])['add'](0x1,_0x4b57('0x37'));}_[_0x4b57('0x38')](_0x2dc9d8[_0x4b57('0x33')],{'createdAt':{'$gte':_0x4c58e4['dateStart'],'$lte':_0x4c58e4[_0x4b57('0x2a')]}});}if(_0x517119[_0x4b57('0x28')][_0x4b57('0x39')]){_0x2dc9d8[_0x4b57('0x33')]=_['merge'](_0x2dc9d8[_0x4b57('0x33')],{'$or':_[_0x4b57('0x3a')](_0x2dc9d8[_0x4b57('0x2d')],function(_0x2d24ab){var _0x56528f={};_0x56528f[_0x2d24ab]={'$like':'%'+_0x517119['query']['filter']+'%'};return _0x56528f;})});}_0x2dc9d8=_[_0x4b57('0x38')]({},_0x2dc9d8,_0x517119[_0x4b57('0x3b')]);var _0x188f24={'where':_0x2dc9d8[_0x4b57('0x33')]};return db['AnalyticFieldReport'][_0x4b57('0x18')](_0x188f24)[_0x4b57('0x20')](function(_0x286606){_0x6584c4[_0x4b57('0x18')]=_0x286606;if(_0x517119[_0x4b57('0x28')][_0x4b57('0x3c')]){_0x2dc9d8[_0x4b57('0x3d')]=[{'all':!![]}];}return db[_0x4b57('0x26')][_0x4b57('0x3e')](_0x2dc9d8);})['then'](function(_0x318187){_0x6584c4[_0x4b57('0x3f')]=_0x318187;return _0x6584c4;})[_0x4b57('0x20')](respondWithFilteredResult(_0x36ceb1,_0x2dc9d8))['catch'](handleError(_0x36ceb1,null));};exports[_0x4b57('0x40')]=function(_0x4bbd19,_0x37f15c){var _0x1cd4bf={'raw':![],'where':{'id':_0x4bbd19[_0x4b57('0x41')]['id']}},_0x457273={};_0x457273[_0x4b57('0x2c')]=_[_0x4b57('0x27')](db[_0x4b57('0x26')][_0x4b57('0x42')]);_0x457273[_0x4b57('0x28')]=_[_0x4b57('0x27')](_0x4bbd19[_0x4b57('0x28')]);_0x457273[_0x4b57('0x34')]=_[_0x4b57('0x2b')](_0x457273['model'],_0x457273['query']);_0x1cd4bf[_0x4b57('0x2d')]=_[_0x4b57('0x2b')](_0x457273[_0x4b57('0x2c')],qs[_0x4b57('0x2e')](_0x4bbd19['query'][_0x4b57('0x2e')]));_0x1cd4bf[_0x4b57('0x2d')]=_0x1cd4bf['attributes'][_0x4b57('0x2f')]?_0x1cd4bf['attributes']:_0x457273[_0x4b57('0x2c')];if(_0x4bbd19['query']['includeAll']){_0x1cd4bf[_0x4b57('0x3d')]=[{'all':!![]}];}_0x1cd4bf=_[_0x4b57('0x38')]({},_0x1cd4bf,_0x4bbd19['options']);return db[_0x4b57('0x26')][_0x4b57('0x43')](_0x1cd4bf)[_0x4b57('0x20')](handleEntityNotFound(_0x37f15c,null))[_0x4b57('0x20')](respondWithResult(_0x37f15c,null))[_0x4b57('0x44')](handleError(_0x37f15c,null));};exports[_0x4b57('0x45')]=function(_0x5a3463,_0x3f06e6){return db[_0x4b57('0x26')]['create'](_0x5a3463[_0x4b57('0x46')],{})[_0x4b57('0x20')](respondWithResult(_0x3f06e6,0xc9))[_0x4b57('0x44')](handleError(_0x3f06e6,null));};exports['bulkCreate']=function(_0x10fc0b,_0x5cba5f){return db[_0x4b57('0x26')][_0x4b57('0x47')](_0x10fc0b[_0x4b57('0x46')],{'raw':![],'individualHooks':!![]})[_0x4b57('0x20')](respondWithResult(_0x5cba5f,0xc9))[_0x4b57('0x44')](handleError(_0x5cba5f,null));};exports[_0x4b57('0x1f')]=function(_0x3d1ecd,_0x3ec6ba){if(_0x3d1ecd['body']['id']){delete _0x3d1ecd[_0x4b57('0x46')]['id'];}return db[_0x4b57('0x26')][_0x4b57('0x43')]({'where':{'id':_0x3d1ecd['params']['id']}})[_0x4b57('0x20')](handleEntityNotFound(_0x3ec6ba,null))[_0x4b57('0x20')](saveUpdates(_0x3d1ecd[_0x4b57('0x46')],null))['then'](respondWithResult(_0x3ec6ba,null))[_0x4b57('0x44')](handleError(_0x3ec6ba,null));};exports[_0x4b57('0x21')]=function(_0x343cec,_0xb56bf0){return db[_0x4b57('0x26')][_0x4b57('0x43')]({'where':{'id':_0x343cec[_0x4b57('0x41')]['id']}})['then'](handleEntityNotFound(_0xb56bf0,null))['then'](removeEntity(_0xb56bf0,null))[_0x4b57('0x44')](handleError(_0xb56bf0,null));};exports[_0x4b57('0x48')]=function(_0x3b4cbf,_0x2e64c2){return db['AnalyticFieldReport'][_0x4b57('0x21')]({'where':{'id':_0x3b4cbf[_0x4b57('0x28')][_0x4b57('0x49')]||[]},'raw':![],'individualHooks':!![]})[_0x4b57('0x20')](respondWithResult(_0x2e64c2,0xcc))['catch'](handleError(_0x2e64c2,null));};exports['addFields']=function(_0x403114,_0x1b64b6,_0x57efcc){return db['AnalyticCustomReport'][_0x4b57('0x4a')]({'where':{'id':_0x403114['params']['id']}})[_0x4b57('0x20')](handleEntityNotFound(_0x1b64b6,null))[_0x4b57('0x20')](function(_0x16f83a){if(_0x16f83a){return db[_0x4b57('0x4b')][_0x4b57('0x4c')](function(_0x4ca146){return db['AnalyticFieldReport']['destroy']({'where':{'CustomReportId':_0x403114['params']['id']},'transaction':_0x4ca146})[_0x4b57('0x20')](function(_0x470cd5){var _0x5e7a35=_[_0x4b57('0x3a')](_0x403114[_0x4b57('0x46')],function(_0x38d806){delete _0x38d806['id'];_0x38d806[_0x4b57('0x4d')]=_0x403114[_0x4b57('0x41')]['id'];return _0x38d806;});return db[_0x4b57('0x26')][_0x4b57('0x47')](_0x5e7a35,{'transaction':_0x4ca146});});})[_0x4b57('0x20')](function(){return db[_0x4b57('0x26')]['findAll']({'where':{'CustomReportId':_0x403114[_0x4b57('0x41')]['id']}});});}})['then'](respondWithResult(_0x1b64b6,null))[_0x4b57('0x44')](handleError(_0x1b64b6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48d1=['util','../../config/logger','moment','bluebird','request-promise','AnalyticFieldReport','analytics_report_fields','lodash'];(function(_0x190b91,_0x2f4cfe){var _0x2db823=function(_0x3b7a05){while(--_0x3b7a05){_0x190b91['push'](_0x190b91['shift']());}};_0x2db823(++_0x2f4cfe);}(_0x48d1,0x147));var _0x148d=function(_0x4d83b5,_0x52c6d3){_0x4d83b5=_0x4d83b5-0x0;var _0x3136ac=_0x48d1[_0x4d83b5];return _0x3136ac;};'use strict';var _=require(_0x148d('0x0'));var util=require(_0x148d('0x1'));var logger=require(_0x148d('0x2'))('api');var moment=require(_0x148d('0x3'));var BPromise=require(_0x148d('0x4'));var rp=require(_0x148d('0x5'));var attributes=require('./analyticFieldReport.attributes');module['exports']=function(_0xdc11c2,_0x5e24a8){return _0xdc11c2['define'](_0x148d('0x6'),attributes,{'tableName':_0x148d('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe03c=['exports','define','AnalyticFieldReport','analytics_report_fields','lodash','../../config/logger','moment','bluebird','request-promise','./analyticFieldReport.attributes'];(function(_0x1c9fc5,_0x3ca335){var _0x4eea03=function(_0x191625){while(--_0x191625){_0x1c9fc5['push'](_0x1c9fc5['shift']());}};_0x4eea03(++_0x3ca335);}(_0xe03c,0x14e));var _0xce03=function(_0x5e0bfe,_0x747312){_0x5e0bfe=_0x5e0bfe-0x0;var _0x6468b8=_0xe03c[_0x5e0bfe];return _0x6468b8;};'use strict';var _=require(_0xce03('0x0'));var util=require('util');var logger=require(_0xce03('0x1'))('api');var moment=require(_0xce03('0x2'));var BPromise=require(_0xce03('0x3'));var rp=require(_0xce03('0x4'));var attributes=require(_0xce03('0x5'));module[_0xce03('0x6')]=function(_0x2bfae5,_0x48758f){return _0x2bfae5[_0xce03('0x7')](_0xce03('0x8'),attributes,{'tableName':_0xce03('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2df=['http','then','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','AnalyticFieldReport,\x20%s,\x20%s','lodash','util','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x4871ec,_0x3e21aa){var _0x34173e=function(_0x3b78fc){while(--_0x3b78fc){_0x4871ec['push'](_0x4871ec['shift']());}};_0x34173e(++_0x3e21aa);}(_0xa2df,0x10e));var _0xfa2d=function(_0x5aafa4,_0x230af4){_0x5aafa4=_0x5aafa4-0x0;var _0x1e4996=_0xa2df[_0x5aafa4];return _0x1e4996;};'use strict';var _=require(_0xfa2d('0x0'));var util=require(_0xfa2d('0x1'));var moment=require('moment');var BPromise=require(_0xfa2d('0x2'));var rs=require(_0xfa2d('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xfa2d('0x4'));var logger=require(_0xfa2d('0x5'))(_0xfa2d('0x6'));var config=require(_0xfa2d('0x7'));var jayson=require(_0xfa2d('0x8'));var client=jayson[_0xfa2d('0x9')][_0xfa2d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xe6e78d,_0x13669c,_0x430843){return new BPromise(function(_0x5eb1e5,_0x12f6d4){return client['request'](_0xe6e78d,_0x430843)[_0xfa2d('0xb')](function(_0x56a1c9){logger['info']('AnalyticFieldReport,\x20%s,\x20%s',_0x13669c,_0xfa2d('0xc'));logger[_0xfa2d('0xd')](_0xfa2d('0xe'),_0x13669c,_0xfa2d('0xc'),JSON[_0xfa2d('0xf')](_0x56a1c9));if(_0x56a1c9[_0xfa2d('0x10')]){if(_0x56a1c9[_0xfa2d('0x10')][_0xfa2d('0x11')]===0x1f4){logger[_0xfa2d('0x10')]('AnalyticFieldReport,\x20%s,\x20%s',_0x13669c,_0x56a1c9[_0xfa2d('0x10')][_0xfa2d('0x12')]);return _0x12f6d4(_0x56a1c9['error']['message']);}logger['error'](_0xfa2d('0x13'),_0x13669c,_0x56a1c9[_0xfa2d('0x10')][_0xfa2d('0x12')]);return _0x5eb1e5(_0x56a1c9['error']['message']);}else{logger['info'](_0xfa2d('0x13'),_0x13669c,_0xfa2d('0xc'));_0x5eb1e5(_0x56a1c9['result'][_0xfa2d('0x12')]);}})['catch'](function(_0x10f036){logger[_0xfa2d('0x10')]('AnalyticFieldReport,\x20%s,\x20%s',_0x13669c,_0x10f036);_0x12f6d4(_0x10f036);});});}
\ No newline at end of file
+var _0x6347=['catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','request','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','AnalyticFieldReport,\x20%s,\x20%s','message','info'];(function(_0x5c6189,_0x5875f4){var _0xad0917=function(_0x5a91fa){while(--_0x5a91fa){_0x5c6189['push'](_0x5c6189['shift']());}};_0xad0917(++_0x5875f4);}(_0x6347,0x1c9));var _0x7634=function(_0x4c0185,_0x4b4e02){_0x4c0185=_0x4c0185-0x0;var _0x2806c9=_0x6347[_0x4c0185];return _0x2806c9;};'use strict';var _=require(_0x7634('0x0'));var util=require(_0x7634('0x1'));var moment=require('moment');var BPromise=require(_0x7634('0x2'));var rs=require(_0x7634('0x3'));var fs=require('fs');var Redis=require(_0x7634('0x4'));var db=require(_0x7634('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x7634('0x6'))('rpc');var config=require(_0x7634('0x7'));var jayson=require(_0x7634('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xa1f11a,_0x186db8,_0x33eb7e){return new BPromise(function(_0x453e4b,_0x37dc47){return client[_0x7634('0x9')](_0xa1f11a,_0x33eb7e)['then'](function(_0x3e8332){logger['info']('AnalyticFieldReport,\x20%s,\x20%s',_0x186db8,'request\x20sent');logger[_0x7634('0xa')](_0x7634('0xb'),_0x186db8,_0x7634('0xc'),JSON[_0x7634('0xd')](_0x3e8332));if(_0x3e8332[_0x7634('0xe')]){if(_0x3e8332['error']['code']===0x1f4){logger[_0x7634('0xe')](_0x7634('0xf'),_0x186db8,_0x3e8332[_0x7634('0xe')][_0x7634('0x10')]);return _0x37dc47(_0x3e8332[_0x7634('0xe')][_0x7634('0x10')]);}logger[_0x7634('0xe')](_0x7634('0xf'),_0x186db8,_0x3e8332['error'][_0x7634('0x10')]);return _0x453e4b(_0x3e8332[_0x7634('0xe')][_0x7634('0x10')]);}else{logger[_0x7634('0x11')]('AnalyticFieldReport,\x20%s,\x20%s',_0x186db8,_0x7634('0xc'));_0x453e4b(_0x3e8332['result'][_0x7634('0x10')]);}})[_0x7634('0x12')](function(_0x3b74da){logger[_0x7634('0xe')](_0x7634('0xf'),_0x186db8,_0x3b74da);_0x37dc47(_0x3b74da);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb94=['post','create','/create_many','bulkCreate','/:id/create_many','addFields','/:id','/destroy_many','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','get','isAuthenticated'];(function(_0x20cc29,_0x30a46d){var _0x28d513=function(_0x179b06){while(--_0x179b06){_0x20cc29['push'](_0x20cc29['shift']());}};_0x28d513(++_0x30a46d);}(_0xdb94,0xab));var _0x4db9=function(_0x4d18b1,_0x1f44cc){_0x4d18b1=_0x4d18b1-0x0;var _0x18e4d2=_0xdb94[_0x4d18b1];return _0x18e4d2;};'use strict';var multer=require(_0x4db9('0x0'));var util=require(_0x4db9('0x1'));var path=require(_0x4db9('0x2'));var timeout=require(_0x4db9('0x3'));var express=require(_0x4db9('0x4'));var router=express['Router']();var auth=require(_0x4db9('0x5'));var interaction=require(_0x4db9('0x6'));var config=require('../../config/environment');var controller=require('./analyticFieldReport.controller');router[_0x4db9('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0x4db9('0x7')]('/:id',auth[_0x4db9('0x8')](),controller['show']);router[_0x4db9('0x9')]('/',auth[_0x4db9('0x8')](),controller[_0x4db9('0xa')]);router[_0x4db9('0x9')](_0x4db9('0xb'),auth[_0x4db9('0x8')](),controller[_0x4db9('0xc')]);router[_0x4db9('0x9')](_0x4db9('0xd'),auth[_0x4db9('0x8')](),controller[_0x4db9('0xe')]);router['put'](_0x4db9('0xf'),auth[_0x4db9('0x8')](),controller['update']);router['delete'](_0x4db9('0x10'),auth['isAuthenticated'](),controller['bulkDestroy']);router[_0x4db9('0x11')](_0x4db9('0xf'),auth['isAuthenticated'](),controller[_0x4db9('0x12')]);module[_0x4db9('0x13')]=router;
\ No newline at end of file
+var _0xa5fa=['connect-timeout','express','../../components/auth/service','../../components/interaction/service','./analyticFieldReport.controller','get','isAuthenticated','index','/:id','show','post','create','/create_many','/:id/create_many','put','update','delete','/destroy_many','destroy','exports','util','path'];(function(_0x1084a9,_0x3640f3){var _0x3d2b28=function(_0x2361e2){while(--_0x2361e2){_0x1084a9['push'](_0x1084a9['shift']());}};_0x3d2b28(++_0x3640f3);}(_0xa5fa,0xc4));var _0xaa5f=function(_0x3ae1c8,_0x4f1c21){_0x3ae1c8=_0x3ae1c8-0x0;var _0x5a2621=_0xa5fa[_0x3ae1c8];return _0x5a2621;};'use strict';var multer=require('multer');var util=require(_0xaa5f('0x0'));var path=require(_0xaa5f('0x1'));var timeout=require(_0xaa5f('0x2'));var express=require(_0xaa5f('0x3'));var router=express['Router']();var auth=require(_0xaa5f('0x4'));var interaction=require(_0xaa5f('0x5'));var config=require('../../config/environment');var controller=require(_0xaa5f('0x6'));router[_0xaa5f('0x7')]('/',auth[_0xaa5f('0x8')](),controller[_0xaa5f('0x9')]);router[_0xaa5f('0x7')](_0xaa5f('0xa'),auth[_0xaa5f('0x8')](),controller[_0xaa5f('0xb')]);router[_0xaa5f('0xc')]('/',auth[_0xaa5f('0x8')](),controller[_0xaa5f('0xd')]);router['post'](_0xaa5f('0xe'),auth[_0xaa5f('0x8')](),controller['bulkCreate']);router['post'](_0xaa5f('0xf'),auth['isAuthenticated'](),controller['addFields']);router[_0xaa5f('0x10')]('/:id',auth[_0xaa5f('0x8')](),controller[_0xaa5f('0x11')]);router[_0xaa5f('0x12')](_0xaa5f('0x13'),auth[_0xaa5f('0x8')](),controller['bulkDestroy']);router[_0xaa5f('0x12')]('/:id',auth[_0xaa5f('0x8')](),controller[_0xaa5f('0x14')]);module[_0xaa5f('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7c3=['TEXT','sequelize','exports','name','STRING'];(function(_0x187ee1,_0x3fd1e6){var _0x388160=function(_0x542dd2){while(--_0x542dd2){_0x187ee1['push'](_0x187ee1['shift']());}};_0x388160(++_0x3fd1e6);}(_0xa7c3,0x141));var _0x3a7c=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xa7c3[_0x59ee6f];return _0x4c0979;};'use strict';var Sequelize=require(_0x3a7c('0x0'));module[_0x3a7c('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x3a7c('0x2')},'table':{'type':Sequelize[_0x3a7c('0x3')]},'metric':{'type':Sequelize[_0x3a7c('0x4')]},'description':{'type':Sequelize[_0x3a7c('0x3')]}};
\ No newline at end of file
+var _0xf851=['sequelize','STRING'];(function(_0x3be37c,_0x14f7dd){var _0x1e0d8d=function(_0x1b1df3){while(--_0x1b1df3){_0x3be37c['push'](_0x3be37c['shift']());}};_0x1e0d8d(++_0x14f7dd);}(_0xf851,0xaa));var _0x1f85=function(_0x27e83c,_0xe6fa23){_0x27e83c=_0x27e83c-0x0;var _0x20464c=_0xf851[_0x27e83c];return _0x20464c;};'use strict';var Sequelize=require(_0x1f85('0x0'));module['exports']={'name':{'type':Sequelize[_0x1f85('0x1')],'allowNull':![],'unique':'name'},'table':{'type':Sequelize[_0x1f85('0x1')]},'metric':{'type':Sequelize['TEXT']},'description':{'type':Sequelize[_0x1f85('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb37a=['attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','add','day','merge','filter','map','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','eml-format','rimraf','zip-dir','moment','util','sox','to-csv','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','index','AnalyticMetric','rawAttributes','model','keys','query','dateStart','dateEnd','intersection'];(function(_0x9b2d40,_0x5ab7c3){var _0xed3191=function(_0x2796fb){while(--_0x2796fb){_0x9b2d40['push'](_0x9b2d40['shift']());}};_0xed3191(++_0x5ab7c3);}(_0xb37a,0x129));var _0xab37=function(_0x50e117,_0x21aa13){_0x50e117=_0x50e117-0x0;var _0x44bd14=_0xb37a[_0x50e117];return _0x44bd14;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xab37('0x0'));var rimraf=require(_0xab37('0x1'));var zipdir=require(_0xab37('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xab37('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xab37('0x4'));var path=require('path');var sox=require(_0xab37('0x5'));var csv=require(_0xab37('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xab37('0x7'));var crypto=require(_0xab37('0x8'));var jsforce=require('jsforce');var deskjs=require(_0xab37('0x9'));var toCsv=require(_0xab37('0x6'));var querystring=require(_0xab37('0xa'));var Papa=require(_0xab37('0xb'));var qs=require(_0xab37('0xc'));var logger=require('../../config/logger')(_0xab37('0xd'));var utils=require(_0xab37('0xe'));var config=require('../../config/environment');var db=require(_0xab37('0xf'))['db'];function respondWithStatusCode(_0x227df3,_0x26b4c1){_0x26b4c1=_0x26b4c1||0xcc;return function(_0x1ad29e){if(_0x1ad29e){return _0x227df3['sendStatus'](_0x26b4c1);}return _0x227df3[_0xab37('0x10')](_0x26b4c1)[_0xab37('0x11')]();};}function respondWithResult(_0x478567,_0x26191e){_0x26191e=_0x26191e||0xc8;return function(_0x17d161){if(_0x17d161){return _0x478567['status'](_0x26191e)[_0xab37('0x12')](_0x17d161);}};}function respondWithFilteredResult(_0x2dfc8b,_0x899804){return function(_0x4ff1ac){if(_0x4ff1ac){var _0x23c61b=_0x4ff1ac[_0xab37('0x13')],_0x261484=_0x899804[_0xab37('0x14')],_0x2c816c=_0x899804['offset']+_0x899804[_0xab37('0x15')],_0x18c27b;if(_0x2c816c>=_0x23c61b){_0x2c816c=_0x23c61b;_0x18c27b=0xc8;}else{_0x18c27b=0xce;}_0x2dfc8b[_0xab37('0x10')](_0x18c27b);return _0x2dfc8b[_0xab37('0x16')](_0xab37('0x17'),_0x261484+'-'+_0x2c816c+'/'+_0x23c61b)[_0xab37('0x12')](_0x4ff1ac);}return null;};}function patchUpdates(_0x16277e){return function(_0x32ca86){try{jsonpatch[_0xab37('0x18')](_0x32ca86,_0x16277e,!![]);}catch(_0xb9877e){return BPromise[_0xab37('0x19')](_0xb9877e);}return _0x32ca86[_0xab37('0x1a')]();};}function saveUpdates(_0x1fd47f,_0xfa4ef1){return function(_0x2f9052){if(_0x2f9052){return _0x2f9052[_0xab37('0x1b')](_0x1fd47f)[_0xab37('0x1c')](function(_0x1217c9){return _0x1217c9;});}return null;};}function removeEntity(_0x51b2be,_0x3b3430){return function(_0x207fb3){if(_0x207fb3){return _0x207fb3[_0xab37('0x1d')]()[_0xab37('0x1c')](function(){_0x51b2be[_0xab37('0x10')](0xcc)[_0xab37('0x11')]();});}};}function handleEntityNotFound(_0xe35672,_0x50b23d){return function(_0x129680){if(!_0x129680){_0xe35672[_0xab37('0x1e')](0x194);}return _0x129680;};}function handleError(_0x21dd7a,_0x318bb0){_0x318bb0=_0x318bb0||0x1f4;return function(_0x3f90b1){logger[_0xab37('0x1f')](_0x3f90b1['stack']);if(_0x3f90b1['name']){delete _0x3f90b1[_0xab37('0x20')];}_0x21dd7a[_0xab37('0x10')](_0x318bb0)[_0xab37('0x21')](_0x3f90b1);};}exports[_0xab37('0x22')]=function(_0x5a9372,_0x53864d){var _0x56dffb={},_0x26ec58={},_0x359ad7={'count':0x0,'rows':[]};var _0x4b9de=db[_0xab37('0x23')][_0xab37('0x24')];_0x26ec58[_0xab37('0x25')]=_[_0xab37('0x26')](_0x4b9de);var _0x4b92be={'dateStart':_0x5a9372[_0xab37('0x27')][_0xab37('0x28')],'dateEnd':_0x5a9372[_0xab37('0x27')][_0xab37('0x29')]};delete _0x5a9372['query']['dateStart'];delete _0x5a9372[_0xab37('0x27')]['dateEnd'];_0x26ec58[_0xab37('0x27')]=_[_0xab37('0x26')](_0x5a9372[_0xab37('0x27')]);_0x26ec58['filters']=_[_0xab37('0x2a')](_0x26ec58[_0xab37('0x25')],_0x26ec58['query']);_0x56dffb[_0xab37('0x2b')]=_[_0xab37('0x2a')](_0x26ec58[_0xab37('0x25')],qs[_0xab37('0x2c')](_0x5a9372[_0xab37('0x27')][_0xab37('0x2c')]));_0x56dffb['attributes']=_0x56dffb['attributes'][_0xab37('0x2d')]?_0x56dffb['attributes']:_0x26ec58['model'];if(!_0x5a9372[_0xab37('0x27')][_0xab37('0x2e')]('nolimit')){_0x56dffb[_0xab37('0x15')]=qs['limit'](_0x5a9372[_0xab37('0x27')][_0xab37('0x15')]);_0x56dffb[_0xab37('0x14')]=qs[_0xab37('0x14')](_0x5a9372[_0xab37('0x27')][_0xab37('0x14')]);}_0x56dffb[_0xab37('0x2f')]=qs[_0xab37('0x30')](_0x5a9372[_0xab37('0x27')][_0xab37('0x30')]);_0x56dffb[_0xab37('0x31')]=qs[_0xab37('0x32')](_[_0xab37('0x33')](_0x5a9372[_0xab37('0x27')],_0x26ec58[_0xab37('0x32')]));if(_0x4b92be[_0xab37('0x28')]){if(_0x4b92be[_0xab37('0x29')]){_0x4b92be[_0xab37('0x29')]=moment(_0x4b92be[_0xab37('0x29')])['add'](0x1,'day');}else{_0x4b92be['dateEnd']=moment(_0x4b92be['dateStart'])[_0xab37('0x34')](0x1,_0xab37('0x35'));}_[_0xab37('0x36')](_0x56dffb[_0xab37('0x31')],{'createdAt':{'$gte':_0x4b92be['dateStart'],'$lte':_0x4b92be[_0xab37('0x29')]}});}if(_0x5a9372['query'][_0xab37('0x37')]){_0x56dffb[_0xab37('0x31')]=_[_0xab37('0x36')](_0x56dffb['where'],{'$or':_[_0xab37('0x38')](_0x56dffb[_0xab37('0x2b')],function(_0x3f0b0b){var _0x4c177a={};_0x4c177a[_0x3f0b0b]={'$like':'%'+_0x5a9372[_0xab37('0x27')]['filter']+'%'};return _0x4c177a;})});}_0x56dffb=_['merge']({},_0x56dffb,_0x5a9372[_0xab37('0x39')]);var _0x26df8e={'where':_0x56dffb['where']};return db[_0xab37('0x23')][_0xab37('0x13')](_0x26df8e)[_0xab37('0x1c')](function(_0x45e475){_0x359ad7[_0xab37('0x13')]=_0x45e475;if(_0x5a9372['query']['includeAll']){_0x56dffb[_0xab37('0x3a')]=[{'all':!![]}];}return db['AnalyticMetric'][_0xab37('0x3b')](_0x56dffb);})[_0xab37('0x1c')](function(_0x4548bb){_0x359ad7[_0xab37('0x3c')]=_0x4548bb;return _0x359ad7;})[_0xab37('0x1c')](respondWithFilteredResult(_0x53864d,_0x56dffb))[_0xab37('0x3d')](handleError(_0x53864d,null));};exports[_0xab37('0x3e')]=function(_0x3bf0a1,_0x43217e){var _0x3b83fb={'raw':!![],'where':{'id':_0x3bf0a1[_0xab37('0x3f')]['id']}},_0x1e1a97={};_0x1e1a97[_0xab37('0x25')]=_['keys'](db[_0xab37('0x23')][_0xab37('0x24')]);_0x1e1a97[_0xab37('0x27')]=_[_0xab37('0x26')](_0x3bf0a1['query']);_0x1e1a97[_0xab37('0x32')]=_[_0xab37('0x2a')](_0x1e1a97[_0xab37('0x25')],_0x1e1a97['query']);_0x3b83fb['attributes']=_[_0xab37('0x2a')](_0x1e1a97[_0xab37('0x25')],qs['fields'](_0x3bf0a1[_0xab37('0x27')][_0xab37('0x2c')]));_0x3b83fb[_0xab37('0x2b')]=_0x3b83fb[_0xab37('0x2b')]['length']?_0x3b83fb[_0xab37('0x2b')]:_0x1e1a97[_0xab37('0x25')];if(_0x3bf0a1[_0xab37('0x27')][_0xab37('0x40')]){_0x3b83fb[_0xab37('0x3a')]=[{'all':!![]}];}_0x3b83fb=_[_0xab37('0x36')]({},_0x3b83fb,_0x3bf0a1[_0xab37('0x39')]);return db[_0xab37('0x23')][_0xab37('0x41')](_0x3b83fb)['then'](handleEntityNotFound(_0x43217e,null))['then'](respondWithResult(_0x43217e,null))[_0xab37('0x3d')](handleError(_0x43217e,null));};exports[_0xab37('0x42')]=function(_0x30583d,_0x57aae0){return db['AnalyticMetric']['create'](_0x30583d['body'],{})['then'](respondWithResult(_0x57aae0,0xc9))[_0xab37('0x3d')](handleError(_0x57aae0,null));};exports['update']=function(_0x384c90,_0xabdd88){if(_0x384c90['body']['id']){delete _0x384c90[_0xab37('0x43')]['id'];}return db[_0xab37('0x23')]['find']({'where':{'id':_0x384c90[_0xab37('0x3f')]['id']}})[_0xab37('0x1c')](handleEntityNotFound(_0xabdd88,null))[_0xab37('0x1c')](saveUpdates(_0x384c90[_0xab37('0x43')],null))[_0xab37('0x1c')](respondWithResult(_0xabdd88,null))['catch'](handleError(_0xabdd88,null));};exports['destroy']=function(_0x3f515a,_0x342d8b){return db[_0xab37('0x23')][_0xab37('0x41')]({'where':{'id':_0x3f515a[_0xab37('0x3f')]['id']}})['then'](handleEntityNotFound(_0x342d8b,null))['then'](removeEntity(_0x342d8b,null))['catch'](handleError(_0x342d8b,null));};
\ No newline at end of file
+var _0x48d0=['day','merge','filter','map','attributes','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','update','then','destroy','error','stack','name','send','AnalyticMetric','model','query','dateEnd','dateStart','keys','filters','intersection','fields','hasOwnProperty','nolimit','order','sort','where','add'];(function(_0x641f18,_0x2919e8){var _0x16eefe=function(_0x578a89){while(--_0x578a89){_0x641f18['push'](_0x641f18['shift']());}};_0x16eefe(++_0x2919e8);}(_0x48d0,0x1ec));var _0x048d=function(_0x50d964,_0x447adc){_0x50d964=_0x50d964-0x0;var _0x57a322=_0x48d0[_0x50d964];return _0x57a322;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x048d('0x0'));var rimraf=require(_0x048d('0x1'));var zipdir=require(_0x048d('0x2'));var jsonpatch=require(_0x048d('0x3'));var rp=require(_0x048d('0x4'));var moment=require(_0x048d('0x5'));var BPromise=require(_0x048d('0x6'));var Mustache=require('mustache');var util=require(_0x048d('0x7'));var path=require(_0x048d('0x8'));var sox=require(_0x048d('0x9'));var csv=require(_0x048d('0xa'));var ejs=require(_0x048d('0xb'));var fs=require('fs');var _=require(_0x048d('0xc'));var squel=require(_0x048d('0xd'));var crypto=require(_0x048d('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x048d('0xa'));var querystring=require(_0x048d('0xf'));var Papa=require(_0x048d('0x10'));var Redis=require(_0x048d('0x11'));var qs=require(_0x048d('0x12'));var logger=require('../../config/logger')(_0x048d('0x13'));var utils=require(_0x048d('0x14'));var config=require('../../config/environment');var db=require(_0x048d('0x15'))['db'];function respondWithStatusCode(_0x3e6cde,_0x1dc156){_0x1dc156=_0x1dc156||0xcc;return function(_0x225367){if(_0x225367){return _0x3e6cde[_0x048d('0x16')](_0x1dc156);}return _0x3e6cde[_0x048d('0x17')](_0x1dc156)[_0x048d('0x18')]();};}function respondWithResult(_0x392986,_0x2ff1b9){_0x2ff1b9=_0x2ff1b9||0xc8;return function(_0x1b111e){if(_0x1b111e){return _0x392986[_0x048d('0x17')](_0x2ff1b9)[_0x048d('0x19')](_0x1b111e);}};}function respondWithFilteredResult(_0x55db73,_0x3e917a){return function(_0x5dd57c){if(_0x5dd57c){var _0x25c156=_0x5dd57c[_0x048d('0x1a')],_0x365a19=_0x3e917a[_0x048d('0x1b')],_0x583c13=_0x3e917a['offset']+_0x3e917a[_0x048d('0x1c')],_0xc610fa;if(_0x583c13>=_0x25c156){_0x583c13=_0x25c156;_0xc610fa=0xc8;}else{_0xc610fa=0xce;}_0x55db73['status'](_0xc610fa);return _0x55db73['set'](_0x048d('0x1d'),_0x365a19+'-'+_0x583c13+'/'+_0x25c156)[_0x048d('0x19')](_0x5dd57c);}return null;};}function patchUpdates(_0xac2d60){return function(_0x3840a5){try{jsonpatch['apply'](_0x3840a5,_0xac2d60,!![]);}catch(_0x53d257){return BPromise['reject'](_0x53d257);}return _0x3840a5['save']();};}function saveUpdates(_0x5e86f4,_0x529256){return function(_0x394cea){if(_0x394cea){return _0x394cea[_0x048d('0x1e')](_0x5e86f4)[_0x048d('0x1f')](function(_0x59d7cc){return _0x59d7cc;});}return null;};}function removeEntity(_0x520daa,_0x1bcae){return function(_0x489176){if(_0x489176){return _0x489176[_0x048d('0x20')]()['then'](function(){_0x520daa[_0x048d('0x17')](0xcc)[_0x048d('0x18')]();});}};}function handleEntityNotFound(_0x55df4b,_0x24278b){return function(_0xf50202){if(!_0xf50202){_0x55df4b['sendStatus'](0x194);}return _0xf50202;};}function handleError(_0xee4d45,_0xa106f2){_0xa106f2=_0xa106f2||0x1f4;return function(_0x493290){logger[_0x048d('0x21')](_0x493290[_0x048d('0x22')]);if(_0x493290[_0x048d('0x23')]){delete _0x493290[_0x048d('0x23')];}_0xee4d45[_0x048d('0x17')](_0xa106f2)[_0x048d('0x24')](_0x493290);};}exports['index']=function(_0x177b8b,_0x556026){var _0xfcbbd9={},_0x245538={},_0x32a6cd={'count':0x0,'rows':[]};var _0x3893f7=db[_0x048d('0x25')]['rawAttributes'];_0x245538[_0x048d('0x26')]=_['keys'](_0x3893f7);var _0x483fcc={'dateStart':_0x177b8b[_0x048d('0x27')]['dateStart'],'dateEnd':_0x177b8b[_0x048d('0x27')][_0x048d('0x28')]};delete _0x177b8b[_0x048d('0x27')][_0x048d('0x29')];delete _0x177b8b[_0x048d('0x27')][_0x048d('0x28')];_0x245538[_0x048d('0x27')]=_[_0x048d('0x2a')](_0x177b8b['query']);_0x245538[_0x048d('0x2b')]=_[_0x048d('0x2c')](_0x245538[_0x048d('0x26')],_0x245538[_0x048d('0x27')]);_0xfcbbd9['attributes']=_['intersection'](_0x245538[_0x048d('0x26')],qs[_0x048d('0x2d')](_0x177b8b[_0x048d('0x27')]['fields']));_0xfcbbd9['attributes']=_0xfcbbd9['attributes']['length']?_0xfcbbd9['attributes']:_0x245538[_0x048d('0x26')];if(!_0x177b8b[_0x048d('0x27')][_0x048d('0x2e')](_0x048d('0x2f'))){_0xfcbbd9['limit']=qs[_0x048d('0x1c')](_0x177b8b['query'][_0x048d('0x1c')]);_0xfcbbd9[_0x048d('0x1b')]=qs[_0x048d('0x1b')](_0x177b8b['query'][_0x048d('0x1b')]);}_0xfcbbd9[_0x048d('0x30')]=qs[_0x048d('0x31')](_0x177b8b[_0x048d('0x27')]['sort']);_0xfcbbd9[_0x048d('0x32')]=qs[_0x048d('0x2b')](_['pick'](_0x177b8b[_0x048d('0x27')],_0x245538['filters']));if(_0x483fcc[_0x048d('0x29')]){if(_0x483fcc['dateEnd']){_0x483fcc[_0x048d('0x28')]=moment(_0x483fcc[_0x048d('0x28')])[_0x048d('0x33')](0x1,'day');}else{_0x483fcc[_0x048d('0x28')]=moment(_0x483fcc[_0x048d('0x29')])['add'](0x1,_0x048d('0x34'));}_[_0x048d('0x35')](_0xfcbbd9[_0x048d('0x32')],{'createdAt':{'$gte':_0x483fcc[_0x048d('0x29')],'$lte':_0x483fcc[_0x048d('0x28')]}});}if(_0x177b8b['query'][_0x048d('0x36')]){_0xfcbbd9[_0x048d('0x32')]=_[_0x048d('0x35')](_0xfcbbd9[_0x048d('0x32')],{'$or':_[_0x048d('0x37')](_0xfcbbd9[_0x048d('0x38')],function(_0x1f0372){var _0xe78346={};_0xe78346[_0x1f0372]={'$like':'%'+_0x177b8b[_0x048d('0x27')][_0x048d('0x36')]+'%'};return _0xe78346;})});}_0xfcbbd9=_[_0x048d('0x35')]({},_0xfcbbd9,_0x177b8b[_0x048d('0x39')]);var _0x5c6a8c={'where':_0xfcbbd9[_0x048d('0x32')]};return db[_0x048d('0x25')][_0x048d('0x1a')](_0x5c6a8c)[_0x048d('0x1f')](function(_0x15c68b){_0x32a6cd['count']=_0x15c68b;if(_0x177b8b['query'][_0x048d('0x3a')]){_0xfcbbd9[_0x048d('0x3b')]=[{'all':!![]}];}return db['AnalyticMetric'][_0x048d('0x3c')](_0xfcbbd9);})['then'](function(_0x583a9b){_0x32a6cd[_0x048d('0x3d')]=_0x583a9b;return _0x32a6cd;})[_0x048d('0x1f')](respondWithFilteredResult(_0x556026,_0xfcbbd9))['catch'](handleError(_0x556026,null));};exports[_0x048d('0x3e')]=function(_0xc171a8,_0x54f407){var _0x123188={'raw':!![],'where':{'id':_0xc171a8[_0x048d('0x3f')]['id']}},_0x43e1e7={};_0x43e1e7['model']=_[_0x048d('0x2a')](db[_0x048d('0x25')]['rawAttributes']);_0x43e1e7[_0x048d('0x27')]=_[_0x048d('0x2a')](_0xc171a8['query']);_0x43e1e7[_0x048d('0x2b')]=_[_0x048d('0x2c')](_0x43e1e7[_0x048d('0x26')],_0x43e1e7[_0x048d('0x27')]);_0x123188[_0x048d('0x38')]=_['intersection'](_0x43e1e7[_0x048d('0x26')],qs[_0x048d('0x2d')](_0xc171a8[_0x048d('0x27')][_0x048d('0x2d')]));_0x123188[_0x048d('0x38')]=_0x123188[_0x048d('0x38')]['length']?_0x123188[_0x048d('0x38')]:_0x43e1e7['model'];if(_0xc171a8[_0x048d('0x27')][_0x048d('0x3a')]){_0x123188['include']=[{'all':!![]}];}_0x123188=_[_0x048d('0x35')]({},_0x123188,_0xc171a8[_0x048d('0x39')]);return db[_0x048d('0x25')][_0x048d('0x40')](_0x123188)[_0x048d('0x1f')](handleEntityNotFound(_0x54f407,null))[_0x048d('0x1f')](respondWithResult(_0x54f407,null))[_0x048d('0x41')](handleError(_0x54f407,null));};exports[_0x048d('0x42')]=function(_0x5e9d3f,_0x43feb1){return db[_0x048d('0x25')][_0x048d('0x42')](_0x5e9d3f[_0x048d('0x43')],{})[_0x048d('0x1f')](respondWithResult(_0x43feb1,0xc9))[_0x048d('0x41')](handleError(_0x43feb1,null));};exports[_0x048d('0x1e')]=function(_0x118d72,_0x588aff){if(_0x118d72[_0x048d('0x43')]['id']){delete _0x118d72[_0x048d('0x43')]['id'];}return db[_0x048d('0x25')]['find']({'where':{'id':_0x118d72['params']['id']}})['then'](handleEntityNotFound(_0x588aff,null))[_0x048d('0x1f')](saveUpdates(_0x118d72[_0x048d('0x43')],null))[_0x048d('0x1f')](respondWithResult(_0x588aff,null))[_0x048d('0x41')](handleError(_0x588aff,null));};exports[_0x048d('0x20')]=function(_0x5abdac,_0x22b016){return db[_0x048d('0x25')]['find']({'where':{'id':_0x5abdac['params']['id']}})[_0x048d('0x1f')](handleEntityNotFound(_0x22b016,null))[_0x048d('0x1f')](removeEntity(_0x22b016,null))['catch'](handleError(_0x22b016,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd491=['util','api','moment','bluebird','request-promise','./analyticMetric.attributes','exports','analytics_metrics'];(function(_0x2c67af,_0x149fc1){var _0x8ce164=function(_0x1046e2){while(--_0x1046e2){_0x2c67af['push'](_0x2c67af['shift']());}};_0x8ce164(++_0x149fc1);}(_0xd491,0x68));var _0x1d49=function(_0xd0706f,_0x381452){_0xd0706f=_0xd0706f-0x0;var _0x131778=_0xd491[_0xd0706f];return _0x131778;};'use strict';var _=require('lodash');var util=require(_0x1d49('0x0'));var logger=require('../../config/logger')(_0x1d49('0x1'));var moment=require(_0x1d49('0x2'));var BPromise=require(_0x1d49('0x3'));var rp=require(_0x1d49('0x4'));var attributes=require(_0x1d49('0x5'));module[_0x1d49('0x6')]=function(_0x5b06c4,_0x3c0297){return _0x5b06c4['define']('AnalyticMetric',attributes,{'tableName':_0x1d49('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x706f=['exports','AnalyticMetric','analytics_metrics','../../config/logger','api','moment','bluebird'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x706f,0x114));var _0xf706=function(_0x1172dd,_0x403fea){_0x1172dd=_0x1172dd-0x0;var _0x3f02fe=_0x706f[_0x1172dd];return _0x3f02fe;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xf706('0x0'))(_0xf706('0x1'));var moment=require(_0xf706('0x2'));var BPromise=require(_0xf706('0x3'));var rp=require('request-promise');var attributes=require('./analyticMetric.attributes');module[_0xf706('0x4')]=function(_0x1db2ef,_0x72a05d){return _0x1db2ef['define'](_0xf706('0x5'),attributes,{'tableName':_0xf706('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','AnalyticMetric,\x20%s,\x20%s,\x20%s','error','message','result','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info'];(function(_0x45783c,_0x49c56d){var _0x1161da=function(_0x3c5d41){while(--_0x3c5d41){_0x45783c['push'](_0x45783c['shift']());}};_0x1161da(++_0x49c56d);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var moment=require(_0x7995('0x2'));var BPromise=require(_0x7995('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x7995('0x4'))['db'];var utils=require(_0x7995('0x5'));var logger=require(_0x7995('0x6'))(_0x7995('0x7'));var config=require('../../config/environment');var jayson=require(_0x7995('0x8'));var client=jayson[_0x7995('0x9')][_0x7995('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x219534,_0xbda126,_0x326741){return new BPromise(function(_0x4996ca,_0x465276){return client[_0x7995('0xb')](_0x219534,_0x326741)['then'](function(_0xa2e5f0){logger[_0x7995('0xc')](_0x7995('0xd'),_0xbda126,_0x7995('0xe'));logger[_0x7995('0xf')](_0x7995('0x10'),_0xbda126,_0x7995('0xe'),JSON['stringify'](_0xa2e5f0));if(_0xa2e5f0[_0x7995('0x11')]){if(_0xa2e5f0[_0x7995('0x11')]['code']===0x1f4){logger[_0x7995('0x11')](_0x7995('0xd'),_0xbda126,_0xa2e5f0[_0x7995('0x11')][_0x7995('0x12')]);return _0x465276(_0xa2e5f0[_0x7995('0x11')][_0x7995('0x12')]);}logger[_0x7995('0x11')]('AnalyticMetric,\x20%s,\x20%s',_0xbda126,_0xa2e5f0['error'][_0x7995('0x12')]);return _0x4996ca(_0xa2e5f0[_0x7995('0x11')][_0x7995('0x12')]);}else{logger[_0x7995('0xc')](_0x7995('0xd'),_0xbda126,_0x7995('0xe'));_0x4996ca(_0xa2e5f0[_0x7995('0x13')][_0x7995('0x12')]);}})['catch'](function(_0x2eeacc){logger['error'](_0x7995('0xd'),_0xbda126,_0x2eeacc);_0x465276(_0x2eeacc);});});}
\ No newline at end of file
+var _0x63b6=['debug','AnalyticMetric,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','client','request','then','AnalyticMetric,\x20%s,\x20%s','request\x20sent'];(function(_0x1fc3af,_0x6278ee){var _0x11932a=function(_0x4b59b9){while(--_0x4b59b9){_0x1fc3af['push'](_0x1fc3af['shift']());}};_0x11932a(++_0x6278ee);}(_0x63b6,0x127));var _0x663b=function(_0x569311,_0x122db9){_0x569311=_0x569311-0x0;var _0x1f8338=_0x63b6[_0x569311];return _0x1f8338;};'use strict';var _=require(_0x663b('0x0'));var util=require(_0x663b('0x1'));var moment=require(_0x663b('0x2'));var BPromise=require('bluebird');var rs=require(_0x663b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x663b('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x663b('0x5'))(_0x663b('0x6'));var config=require(_0x663b('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x663b('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x210eb1,_0x53f5cf,_0x414dc2){return new BPromise(function(_0x2976ff,_0xf8f3ff){return client[_0x663b('0x9')](_0x210eb1,_0x414dc2)[_0x663b('0xa')](function(_0x1e1698){logger['info'](_0x663b('0xb'),_0x53f5cf,_0x663b('0xc'));logger[_0x663b('0xd')](_0x663b('0xe'),_0x53f5cf,_0x663b('0xc'),JSON[_0x663b('0xf')](_0x1e1698));if(_0x1e1698[_0x663b('0x10')]){if(_0x1e1698[_0x663b('0x10')][_0x663b('0x11')]===0x1f4){logger[_0x663b('0x10')]('AnalyticMetric,\x20%s,\x20%s',_0x53f5cf,_0x1e1698['error'][_0x663b('0x12')]);return _0xf8f3ff(_0x1e1698[_0x663b('0x10')][_0x663b('0x12')]);}logger[_0x663b('0x10')](_0x663b('0xb'),_0x53f5cf,_0x1e1698[_0x663b('0x10')]['message']);return _0x2976ff(_0x1e1698[_0x663b('0x10')][_0x663b('0x12')]);}else{logger[_0x663b('0x13')](_0x663b('0xb'),_0x53f5cf,_0x663b('0xc'));_0x2976ff(_0x1e1698[_0x663b('0x14')][_0x663b('0x12')]);}})[_0x663b('0x15')](function(_0x63443b){logger[_0x663b('0x10')](_0x663b('0xb'),_0x53f5cf,_0x63443b);_0xf8f3ff(_0x63443b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4bd3=['isAuthenticated','index','/:id','post','create','put','delete','destroy','multer','path','connect-timeout','../../components/interaction/service','../../config/environment','./analyticMetric.controller'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x4bd3,0x174));var _0x34bd=function(_0x20422b,_0x29dc44){_0x20422b=_0x20422b-0x0;var _0x11ab62=_0x4bd3[_0x20422b];return _0x11ab62;};'use strict';var multer=require(_0x34bd('0x0'));var util=require('util');var path=require(_0x34bd('0x1'));var timeout=require(_0x34bd('0x2'));var express=require('express');var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x34bd('0x3'));var config=require(_0x34bd('0x4'));var controller=require(_0x34bd('0x5'));router['get']('/',auth[_0x34bd('0x6')](),controller[_0x34bd('0x7')]);router['get'](_0x34bd('0x8'),auth[_0x34bd('0x6')](),controller['show']);router[_0x34bd('0x9')]('/',auth[_0x34bd('0x6')](),controller[_0x34bd('0xa')]);router[_0x34bd('0xb')](_0x34bd('0x8'),auth[_0x34bd('0x6')](),controller['update']);router[_0x34bd('0xc')](_0x34bd('0x8'),auth[_0x34bd('0x6')](),controller[_0x34bd('0xd')]);module['exports']=router;
\ No newline at end of file
+var _0xb7de=['destroy','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','post','create','put','update','delete'];(function(_0x1c42fb,_0x331266){var _0x4aa172=function(_0x3b1be6){while(--_0x3b1be6){_0x1c42fb['push'](_0x1c42fb['shift']());}};_0x4aa172(++_0x331266);}(_0xb7de,0xc7));var _0xeb7d=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0xb7de[_0x42245d];return _0x4b211a;};'use strict';var multer=require(_0xeb7d('0x0'));var util=require(_0xeb7d('0x1'));var path=require(_0xeb7d('0x2'));var timeout=require('connect-timeout');var express=require(_0xeb7d('0x3'));var router=express[_0xeb7d('0x4')]();var auth=require(_0xeb7d('0x5'));var interaction=require(_0xeb7d('0x6'));var config=require(_0xeb7d('0x7'));var controller=require('./analyticMetric.controller');router[_0xeb7d('0x8')]('/',auth[_0xeb7d('0x9')](),controller[_0xeb7d('0xa')]);router[_0xeb7d('0x8')](_0xeb7d('0xb'),auth['isAuthenticated'](),controller['show']);router[_0xeb7d('0xc')]('/',auth[_0xeb7d('0x9')](),controller[_0xeb7d('0xd')]);router[_0xeb7d('0xe')]('/:id',auth[_0xeb7d('0x9')](),controller[_0xeb7d('0xf')]);router[_0xeb7d('0x10')]('/:id',auth['isAuthenticated'](),controller[_0xeb7d('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24bb=['sequelize','exports'];(function(_0xd5201a,_0x3a5962){var _0x2fa3ee=function(_0x510762){while(--_0x510762){_0xd5201a['push'](_0xd5201a['shift']());}};_0x2fa3ee(++_0x3a5962);}(_0x24bb,0x134));var _0xb24b=function(_0x53a85a,_0x2c209e){_0x53a85a=_0x53a85a-0x0;var _0xa9876e=_0x24bb[_0x53a85a];return _0xa9876e;};'use strict';var Sequelize=require(_0xb24b('0x0'));module[_0xb24b('0x1')]={'tree':{'type':Sequelize['TEXT'],'allowNull':![]}};
\ No newline at end of file
+var _0xbf19=['TEXT','exports'];(function(_0x38537f,_0x252124){var _0x141e23=function(_0x2809b5){while(--_0x2809b5){_0x38537f['push'](_0x38537f['shift']());}};_0x141e23(++_0x252124);}(_0xbf19,0x1a9));var _0x9bf1=function(_0x408330,_0x198599){_0x408330=_0x408330-0x0;var _0x2ed34e=_0xbf19[_0x408330];return _0x2ed34e;};'use strict';var Sequelize=require('sequelize');module[_0x9bf1('0x0')]={'tree':{'type':Sequelize[_0x9bf1('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x19c7=['reject','save','then','error','stack','name','index','AnalyticTreeReport','rawAttributes','model','keys','dateStart','query','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','add','day','merge','filter','map','options','include','catch','show','params','includeAll','create','update','body','find','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','squel','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','apply'];(function(_0x3c4dad,_0x25ffd5){var _0x1a4f49=function(_0x6fe6c){while(--_0x6fe6c){_0x3c4dad['push'](_0x3c4dad['shift']());}};_0x1a4f49(++_0x25ffd5);}(_0x19c7,0x17d));var _0x719c=function(_0x5669ec,_0x7b42ad){_0x5669ec=_0x5669ec-0x0;var _0x2678f4=_0x19c7[_0x5669ec];return _0x2678f4;};'use strict';var pdf=require(_0x719c('0x0'));var emlformat=require(_0x719c('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x719c('0x2'));var jsonpatch=require(_0x719c('0x3'));var rp=require(_0x719c('0x4'));var moment=require(_0x719c('0x5'));var BPromise=require(_0x719c('0x6'));var Mustache=require(_0x719c('0x7'));var util=require('util');var path=require(_0x719c('0x8'));var sox=require('sox');var csv=require(_0x719c('0x9'));var ejs=require(_0x719c('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x719c('0xb'));var crypto=require('crypto');var jsforce=require(_0x719c('0xc'));var deskjs=require(_0x719c('0xd'));var toCsv=require('to-csv');var querystring=require(_0x719c('0xe'));var Papa=require('papaparse');var qs=require(_0x719c('0xf'));var logger=require(_0x719c('0x10'))(_0x719c('0x11'));var utils=require(_0x719c('0x12'));var config=require(_0x719c('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x54cc31,_0x2bfd65){_0x2bfd65=_0x2bfd65||0xcc;return function(_0x4038df){if(_0x4038df){return _0x54cc31[_0x719c('0x14')](_0x2bfd65);}return _0x54cc31[_0x719c('0x15')](_0x2bfd65)[_0x719c('0x16')]();};}function respondWithResult(_0x34efa4,_0x13ddf7){_0x13ddf7=_0x13ddf7||0xc8;return function(_0x5397ed){if(_0x5397ed){return _0x34efa4[_0x719c('0x15')](_0x13ddf7)[_0x719c('0x17')](_0x5397ed);}};}function respondWithFilteredResult(_0x4e778f,_0x9c2398){return function(_0x1b7ba3){if(_0x1b7ba3){var _0x2b98e0=_0x1b7ba3[_0x719c('0x18')],_0x558694=_0x9c2398[_0x719c('0x19')],_0x32c355=_0x9c2398['offset']+_0x9c2398['limit'],_0x5daaa7;if(_0x32c355>=_0x2b98e0){_0x32c355=_0x2b98e0;_0x5daaa7=0xc8;}else{_0x5daaa7=0xce;}_0x4e778f['status'](_0x5daaa7);return _0x4e778f['set']('Content-Range',_0x558694+'-'+_0x32c355+'/'+_0x2b98e0)[_0x719c('0x17')](_0x1b7ba3);}return null;};}function patchUpdates(_0x34e450){return function(_0x204f12){try{jsonpatch[_0x719c('0x1a')](_0x204f12,_0x34e450,!![]);}catch(_0x468c0f){return BPromise[_0x719c('0x1b')](_0x468c0f);}return _0x204f12[_0x719c('0x1c')]();};}function saveUpdates(_0x161ad0,_0x2d8128){return function(_0x445f25){if(_0x445f25){return _0x445f25['update'](_0x161ad0)[_0x719c('0x1d')](function(_0x5d7a3a){return _0x5d7a3a;});}return null;};}function removeEntity(_0x2cb648,_0x3635db){return function(_0xbc474){if(_0xbc474){return _0xbc474['destroy']()['then'](function(){_0x2cb648[_0x719c('0x15')](0xcc)[_0x719c('0x16')]();});}};}function handleEntityNotFound(_0x4c789f,_0x5d1f3a){return function(_0x3db1fb){if(!_0x3db1fb){_0x4c789f[_0x719c('0x14')](0x194);}return _0x3db1fb;};}function handleError(_0x2942c9,_0x490e4c){_0x490e4c=_0x490e4c||0x1f4;return function(_0x2ef474){logger[_0x719c('0x1e')](_0x2ef474[_0x719c('0x1f')]);if(_0x2ef474[_0x719c('0x20')]){delete _0x2ef474[_0x719c('0x20')];}_0x2942c9[_0x719c('0x15')](_0x490e4c)['send'](_0x2ef474);};}exports[_0x719c('0x21')]=function(_0xfc0bf1,_0x36807b){var _0x235850={},_0xd423cc={},_0x560107={'count':0x0,'rows':[]};var _0x5eaf87=db[_0x719c('0x22')][_0x719c('0x23')];_0xd423cc[_0x719c('0x24')]=_[_0x719c('0x25')](_0x5eaf87);var _0x324488={'dateStart':_0xfc0bf1['query'][_0x719c('0x26')],'dateEnd':_0xfc0bf1[_0x719c('0x27')][_0x719c('0x28')]};delete _0xfc0bf1[_0x719c('0x27')][_0x719c('0x26')];delete _0xfc0bf1[_0x719c('0x27')][_0x719c('0x28')];_0xd423cc['query']=_[_0x719c('0x25')](_0xfc0bf1[_0x719c('0x27')]);_0xd423cc[_0x719c('0x29')]=_[_0x719c('0x2a')](_0xd423cc[_0x719c('0x24')],_0xd423cc['query']);_0x235850['attributes']=_[_0x719c('0x2a')](_0xd423cc[_0x719c('0x24')],qs[_0x719c('0x2b')](_0xfc0bf1[_0x719c('0x27')][_0x719c('0x2b')]));_0x235850[_0x719c('0x2c')]=_0x235850['attributes'][_0x719c('0x2d')]?_0x235850[_0x719c('0x2c')]:_0xd423cc[_0x719c('0x24')];if(!_0xfc0bf1[_0x719c('0x27')][_0x719c('0x2e')](_0x719c('0x2f'))){_0x235850[_0x719c('0x30')]=qs[_0x719c('0x30')](_0xfc0bf1[_0x719c('0x27')]['limit']);_0x235850[_0x719c('0x19')]=qs[_0x719c('0x19')](_0xfc0bf1[_0x719c('0x27')]['offset']);}_0x235850[_0x719c('0x31')]=qs['sort'](_0xfc0bf1['query'][_0x719c('0x32')]);_0x235850[_0x719c('0x33')]=qs['filters'](_[_0x719c('0x34')](_0xfc0bf1[_0x719c('0x27')],_0xd423cc[_0x719c('0x29')]));if(_0x324488[_0x719c('0x26')]){if(_0x324488[_0x719c('0x28')]){_0x324488[_0x719c('0x28')]=moment(_0x324488['dateEnd'])[_0x719c('0x35')](0x1,_0x719c('0x36'));}else{_0x324488['dateEnd']=moment(_0x324488[_0x719c('0x26')])['add'](0x1,_0x719c('0x36'));}_[_0x719c('0x37')](_0x235850[_0x719c('0x33')],{'createdAt':{'$gte':_0x324488[_0x719c('0x26')],'$lte':_0x324488['dateEnd']}});}if(_0xfc0bf1[_0x719c('0x27')][_0x719c('0x38')]){_0x235850['where']=_[_0x719c('0x37')](_0x235850[_0x719c('0x33')],{'$or':_[_0x719c('0x39')](_0x235850[_0x719c('0x2c')],function(_0x3d0a3c){var _0x5955aa={};_0x5955aa[_0x3d0a3c]={'$like':'%'+_0xfc0bf1[_0x719c('0x27')][_0x719c('0x38')]+'%'};return _0x5955aa;})});}_0x235850=_['merge']({},_0x235850,_0xfc0bf1[_0x719c('0x3a')]);var _0x53444b={'where':_0x235850[_0x719c('0x33')]};return db['AnalyticTreeReport']['count'](_0x53444b)['then'](function(_0x2aa6b1){_0x560107[_0x719c('0x18')]=_0x2aa6b1;if(_0xfc0bf1[_0x719c('0x27')]['includeAll']){_0x235850[_0x719c('0x3b')]=[{'all':!![]}];}return db[_0x719c('0x22')]['findAll'](_0x235850);})['then'](function(_0x525ba8){_0x560107['rows']=_0x525ba8;return _0x560107;})[_0x719c('0x1d')](respondWithFilteredResult(_0x36807b,_0x235850))[_0x719c('0x3c')](handleError(_0x36807b,null));};exports[_0x719c('0x3d')]=function(_0x2e6239,_0x180f2d){var _0x27f77a={'raw':!![],'where':{'id':_0x2e6239[_0x719c('0x3e')]['id']}},_0x45fe4a={};_0x45fe4a[_0x719c('0x24')]=_[_0x719c('0x25')](db[_0x719c('0x22')][_0x719c('0x23')]);_0x45fe4a[_0x719c('0x27')]=_[_0x719c('0x25')](_0x2e6239[_0x719c('0x27')]);_0x45fe4a['filters']=_[_0x719c('0x2a')](_0x45fe4a['model'],_0x45fe4a[_0x719c('0x27')]);_0x27f77a[_0x719c('0x2c')]=_[_0x719c('0x2a')](_0x45fe4a[_0x719c('0x24')],qs[_0x719c('0x2b')](_0x2e6239['query'][_0x719c('0x2b')]));_0x27f77a[_0x719c('0x2c')]=_0x27f77a[_0x719c('0x2c')][_0x719c('0x2d')]?_0x27f77a[_0x719c('0x2c')]:_0x45fe4a[_0x719c('0x24')];if(_0x2e6239[_0x719c('0x27')][_0x719c('0x3f')]){_0x27f77a[_0x719c('0x3b')]=[{'all':!![]}];}_0x27f77a=_[_0x719c('0x37')]({},_0x27f77a,_0x2e6239[_0x719c('0x3a')]);return db[_0x719c('0x22')]['find'](_0x27f77a)[_0x719c('0x1d')](handleEntityNotFound(_0x180f2d,null))[_0x719c('0x1d')](respondWithResult(_0x180f2d,null))[_0x719c('0x3c')](handleError(_0x180f2d,null));};exports[_0x719c('0x40')]=function(_0x51a40d,_0x286416){return db[_0x719c('0x22')]['create'](_0x51a40d['body'],{})[_0x719c('0x1d')](respondWithResult(_0x286416,0xc9))[_0x719c('0x3c')](handleError(_0x286416,null));};exports[_0x719c('0x41')]=function(_0x3b7faa,_0x2fe555){if(_0x3b7faa[_0x719c('0x42')]['id']){delete _0x3b7faa[_0x719c('0x42')]['id'];}return db[_0x719c('0x22')][_0x719c('0x43')]({'where':{'id':_0x3b7faa[_0x719c('0x3e')]['id']}})[_0x719c('0x1d')](handleEntityNotFound(_0x2fe555,null))[_0x719c('0x1d')](saveUpdates(_0x3b7faa[_0x719c('0x42')],null))['then'](respondWithResult(_0x2fe555,null))[_0x719c('0x3c')](handleError(_0x2fe555,null));};exports['destroy']=function(_0x4a8d46,_0x24fc56){return db['AnalyticTreeReport'][_0x719c('0x43')]({'where':{'id':_0x4a8d46['params']['id']}})[_0x719c('0x1d')](handleEntityNotFound(_0x24fc56,null))[_0x719c('0x1d')](removeEntity(_0x24fc56,null))['catch'](handleError(_0x24fc56,null));};
\ No newline at end of file
+var _0x34e8=['rows','catch','show','include','find','create','body','params','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','Content-Range','apply','reject','update','destroy','then','sendStatus','error','stack','name','AnalyticTreeReport','rawAttributes','dateStart','query','dateEnd','keys','filters','intersection','model','attributes','fields','length','nolimit','sort','where','pick','add','day','merge','map','options','includeAll','findAll'];(function(_0x4fcd7c,_0x313dce){var _0x4bc039=function(_0x49cadf){while(--_0x49cadf){_0x4fcd7c['push'](_0x4fcd7c['shift']());}};_0x4bc039(++_0x313dce);}(_0x34e8,0x12c));var _0x834e=function(_0x1ad828,_0x14f5c0){_0x1ad828=_0x1ad828-0x0;var _0x541c41=_0x34e8[_0x1ad828];return _0x541c41;};'use strict';var pdf=require(_0x834e('0x0'));var emlformat=require(_0x834e('0x1'));var rimraf=require(_0x834e('0x2'));var zipdir=require(_0x834e('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x834e('0x4'));var moment=require(_0x834e('0x5'));var BPromise=require(_0x834e('0x6'));var Mustache=require(_0x834e('0x7'));var util=require(_0x834e('0x8'));var path=require(_0x834e('0x9'));var sox=require(_0x834e('0xa'));var csv=require('to-csv');var ejs=require(_0x834e('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x834e('0xc'));var crypto=require(_0x834e('0xd'));var jsforce=require(_0x834e('0xe'));var deskjs=require(_0x834e('0xf'));var toCsv=require(_0x834e('0x10'));var querystring=require(_0x834e('0x11'));var Papa=require(_0x834e('0x12'));var Redis=require(_0x834e('0x13'));var qs=require(_0x834e('0x14'));var logger=require(_0x834e('0x15'))(_0x834e('0x16'));var utils=require(_0x834e('0x17'));var config=require(_0x834e('0x18'));var db=require(_0x834e('0x19'))['db'];function respondWithStatusCode(_0x293514,_0x1e00de){_0x1e00de=_0x1e00de||0xcc;return function(_0x2fd95c){if(_0x2fd95c){return _0x293514['sendStatus'](_0x1e00de);}return _0x293514[_0x834e('0x1a')](_0x1e00de)[_0x834e('0x1b')]();};}function respondWithResult(_0x58a27e,_0x23848e){_0x23848e=_0x23848e||0xc8;return function(_0x2d95f2){if(_0x2d95f2){return _0x58a27e[_0x834e('0x1a')](_0x23848e)[_0x834e('0x1c')](_0x2d95f2);}};}function respondWithFilteredResult(_0x50e860,_0x43156c){return function(_0x302cbd){if(_0x302cbd){var _0x57274a=_0x302cbd[_0x834e('0x1d')],_0x316205=_0x43156c['offset'],_0x4a9cdc=_0x43156c[_0x834e('0x1e')]+_0x43156c[_0x834e('0x1f')],_0x38a8cd;if(_0x4a9cdc>=_0x57274a){_0x4a9cdc=_0x57274a;_0x38a8cd=0xc8;}else{_0x38a8cd=0xce;}_0x50e860[_0x834e('0x1a')](_0x38a8cd);return _0x50e860['set'](_0x834e('0x20'),_0x316205+'-'+_0x4a9cdc+'/'+_0x57274a)[_0x834e('0x1c')](_0x302cbd);}return null;};}function patchUpdates(_0x34e41a){return function(_0xb993a1){try{jsonpatch[_0x834e('0x21')](_0xb993a1,_0x34e41a,!![]);}catch(_0x254677){return BPromise[_0x834e('0x22')](_0x254677);}return _0xb993a1['save']();};}function saveUpdates(_0x2545b4,_0x1fd2c6){return function(_0x113ff4){if(_0x113ff4){return _0x113ff4[_0x834e('0x23')](_0x2545b4)['then'](function(_0x45a630){return _0x45a630;});}return null;};}function removeEntity(_0x62f8f1,_0x5a05c0){return function(_0x1b4bdf){if(_0x1b4bdf){return _0x1b4bdf[_0x834e('0x24')]()[_0x834e('0x25')](function(){_0x62f8f1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x231619,_0x34563b){return function(_0x589dde){if(!_0x589dde){_0x231619[_0x834e('0x26')](0x194);}return _0x589dde;};}function handleError(_0x1dc1e0,_0x58f4fd){_0x58f4fd=_0x58f4fd||0x1f4;return function(_0x3bc4f7){logger[_0x834e('0x27')](_0x3bc4f7[_0x834e('0x28')]);if(_0x3bc4f7['name']){delete _0x3bc4f7[_0x834e('0x29')];}_0x1dc1e0[_0x834e('0x1a')](_0x58f4fd)['send'](_0x3bc4f7);};}exports['index']=function(_0x1e713a,_0x508a1d){var _0x2826ec={},_0x3f1b0b={},_0x3db026={'count':0x0,'rows':[]};var _0x2cc2eb=db[_0x834e('0x2a')][_0x834e('0x2b')];_0x3f1b0b['model']=_['keys'](_0x2cc2eb);var _0x4dc64a={'dateStart':_0x1e713a['query'][_0x834e('0x2c')],'dateEnd':_0x1e713a[_0x834e('0x2d')][_0x834e('0x2e')]};delete _0x1e713a['query'][_0x834e('0x2c')];delete _0x1e713a[_0x834e('0x2d')][_0x834e('0x2e')];_0x3f1b0b[_0x834e('0x2d')]=_[_0x834e('0x2f')](_0x1e713a[_0x834e('0x2d')]);_0x3f1b0b[_0x834e('0x30')]=_[_0x834e('0x31')](_0x3f1b0b[_0x834e('0x32')],_0x3f1b0b['query']);_0x2826ec[_0x834e('0x33')]=_['intersection'](_0x3f1b0b[_0x834e('0x32')],qs[_0x834e('0x34')](_0x1e713a[_0x834e('0x2d')][_0x834e('0x34')]));_0x2826ec[_0x834e('0x33')]=_0x2826ec[_0x834e('0x33')][_0x834e('0x35')]?_0x2826ec[_0x834e('0x33')]:_0x3f1b0b[_0x834e('0x32')];if(!_0x1e713a[_0x834e('0x2d')]['hasOwnProperty'](_0x834e('0x36'))){_0x2826ec[_0x834e('0x1f')]=qs[_0x834e('0x1f')](_0x1e713a[_0x834e('0x2d')]['limit']);_0x2826ec[_0x834e('0x1e')]=qs[_0x834e('0x1e')](_0x1e713a['query']['offset']);}_0x2826ec['order']=qs[_0x834e('0x37')](_0x1e713a[_0x834e('0x2d')][_0x834e('0x37')]);_0x2826ec[_0x834e('0x38')]=qs[_0x834e('0x30')](_[_0x834e('0x39')](_0x1e713a['query'],_0x3f1b0b[_0x834e('0x30')]));if(_0x4dc64a['dateStart']){if(_0x4dc64a[_0x834e('0x2e')]){_0x4dc64a[_0x834e('0x2e')]=moment(_0x4dc64a['dateEnd'])[_0x834e('0x3a')](0x1,_0x834e('0x3b'));}else{_0x4dc64a['dateEnd']=moment(_0x4dc64a['dateStart'])[_0x834e('0x3a')](0x1,_0x834e('0x3b'));}_[_0x834e('0x3c')](_0x2826ec[_0x834e('0x38')],{'createdAt':{'$gte':_0x4dc64a[_0x834e('0x2c')],'$lte':_0x4dc64a['dateEnd']}});}if(_0x1e713a[_0x834e('0x2d')]['filter']){_0x2826ec['where']=_[_0x834e('0x3c')](_0x2826ec['where'],{'$or':_[_0x834e('0x3d')](_0x2826ec[_0x834e('0x33')],function(_0x16aea6){var _0x3c59af={};_0x3c59af[_0x16aea6]={'$like':'%'+_0x1e713a[_0x834e('0x2d')]['filter']+'%'};return _0x3c59af;})});}_0x2826ec=_[_0x834e('0x3c')]({},_0x2826ec,_0x1e713a[_0x834e('0x3e')]);var _0x38f266={'where':_0x2826ec['where']};return db[_0x834e('0x2a')][_0x834e('0x1d')](_0x38f266)['then'](function(_0x1e3e71){_0x3db026['count']=_0x1e3e71;if(_0x1e713a[_0x834e('0x2d')][_0x834e('0x3f')]){_0x2826ec['include']=[{'all':!![]}];}return db['AnalyticTreeReport'][_0x834e('0x40')](_0x2826ec);})[_0x834e('0x25')](function(_0x3bcbf4){_0x3db026[_0x834e('0x41')]=_0x3bcbf4;return _0x3db026;})[_0x834e('0x25')](respondWithFilteredResult(_0x508a1d,_0x2826ec))[_0x834e('0x42')](handleError(_0x508a1d,null));};exports[_0x834e('0x43')]=function(_0x4a3381,_0x13d45a){var _0x5abb7a={'raw':!![],'where':{'id':_0x4a3381['params']['id']}},_0x321efa={};_0x321efa[_0x834e('0x32')]=_['keys'](db[_0x834e('0x2a')][_0x834e('0x2b')]);_0x321efa['query']=_[_0x834e('0x2f')](_0x4a3381[_0x834e('0x2d')]);_0x321efa[_0x834e('0x30')]=_[_0x834e('0x31')](_0x321efa[_0x834e('0x32')],_0x321efa[_0x834e('0x2d')]);_0x5abb7a[_0x834e('0x33')]=_[_0x834e('0x31')](_0x321efa[_0x834e('0x32')],qs[_0x834e('0x34')](_0x4a3381['query'][_0x834e('0x34')]));_0x5abb7a[_0x834e('0x33')]=_0x5abb7a['attributes'][_0x834e('0x35')]?_0x5abb7a[_0x834e('0x33')]:_0x321efa[_0x834e('0x32')];if(_0x4a3381[_0x834e('0x2d')][_0x834e('0x3f')]){_0x5abb7a[_0x834e('0x44')]=[{'all':!![]}];}_0x5abb7a=_['merge']({},_0x5abb7a,_0x4a3381['options']);return db[_0x834e('0x2a')][_0x834e('0x45')](_0x5abb7a)[_0x834e('0x25')](handleEntityNotFound(_0x13d45a,null))[_0x834e('0x25')](respondWithResult(_0x13d45a,null))[_0x834e('0x42')](handleError(_0x13d45a,null));};exports[_0x834e('0x46')]=function(_0x1c8e80,_0x43f599){return db[_0x834e('0x2a')][_0x834e('0x46')](_0x1c8e80[_0x834e('0x47')],{})[_0x834e('0x25')](respondWithResult(_0x43f599,0xc9))[_0x834e('0x42')](handleError(_0x43f599,null));};exports[_0x834e('0x23')]=function(_0x2aa072,_0x1a3855){if(_0x2aa072[_0x834e('0x47')]['id']){delete _0x2aa072[_0x834e('0x47')]['id'];}return db[_0x834e('0x2a')][_0x834e('0x45')]({'where':{'id':_0x2aa072['params']['id']}})[_0x834e('0x25')](handleEntityNotFound(_0x1a3855,null))[_0x834e('0x25')](saveUpdates(_0x2aa072['body'],null))[_0x834e('0x25')](respondWithResult(_0x1a3855,null))[_0x834e('0x42')](handleError(_0x1a3855,null));};exports['destroy']=function(_0x3dcca3,_0x4ebe40){return db[_0x834e('0x2a')][_0x834e('0x45')]({'where':{'id':_0x3dcca3[_0x834e('0x48')]['id']}})[_0x834e('0x25')](handleEntityNotFound(_0x4ebe40,null))[_0x834e('0x25')](removeEntity(_0x4ebe40,null))['catch'](handleError(_0x4ebe40,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c8a=['./analyticTreeReport.attributes','define','AnalyticTreeReport','analytics_report_trees','lodash','util','../../config/logger','api','request-promise'];(function(_0x5c31a,_0x44aab9){var _0x40e219=function(_0x21e281){while(--_0x21e281){_0x5c31a['push'](_0x5c31a['shift']());}};_0x40e219(++_0x44aab9);}(_0x1c8a,0xd3));var _0xa1c8=function(_0xc137e7,_0x10baef){_0xc137e7=_0xc137e7-0x0;var _0x4d858c=_0x1c8a[_0xc137e7];return _0x4d858c;};'use strict';var _=require(_0xa1c8('0x0'));var util=require(_0xa1c8('0x1'));var logger=require(_0xa1c8('0x2'))(_0xa1c8('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa1c8('0x4'));var attributes=require(_0xa1c8('0x5'));module['exports']=function(_0x64b8eb,_0x4f47ef){return _0x64b8eb[_0xa1c8('0x6')](_0xa1c8('0x7'),attributes,{'tableName':_0xa1c8('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x48d7=['AnalyticTreeReport','../../config/logger','api','bluebird','request-promise','exports','define'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x48d7,0x197));var _0x748d=function(_0x5f3f88,_0x562baf){_0x5f3f88=_0x5f3f88-0x0;var _0xd08119=_0x48d7[_0x5f3f88];return _0xd08119;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x748d('0x0'))(_0x748d('0x1'));var moment=require('moment');var BPromise=require(_0x748d('0x2'));var rp=require(_0x748d('0x3'));var attributes=require('./analyticTreeReport.attributes');module[_0x748d('0x4')]=function(_0x2292a0,_0x4f34a8){return _0x2292a0[_0x748d('0x5')](_0x748d('0x6'),attributes,{'tableName':'analytics_report_trees','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1aef=['util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticTreeReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash'];(function(_0x568068,_0x1f4eef){var _0x47e8d9=function(_0x505e74){while(--_0x505e74){_0x568068['push'](_0x568068['shift']());}};_0x47e8d9(++_0x1f4eef);}(_0x1aef,0x13a));var _0xf1ae=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0x1aef[_0x2b4411];return _0x8e41ef;};'use strict';var _=require(_0xf1ae('0x0'));var util=require(_0xf1ae('0x1'));var moment=require('moment');var BPromise=require(_0xf1ae('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xf1ae('0x3'));var logger=require(_0xf1ae('0x4'))(_0xf1ae('0x5'));var config=require(_0xf1ae('0x6'));var jayson=require(_0xf1ae('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x27719b,_0x53661a,_0x1f4a89){return new BPromise(function(_0x4d03,_0x206cd6){return client[_0xf1ae('0x8')](_0x27719b,_0x1f4a89)[_0xf1ae('0x9')](function(_0x326a36){logger['info'](_0xf1ae('0xa'),_0x53661a,_0xf1ae('0xb'));logger[_0xf1ae('0xc')](_0xf1ae('0xd'),_0x53661a,_0xf1ae('0xb'),JSON[_0xf1ae('0xe')](_0x326a36));if(_0x326a36['error']){if(_0x326a36[_0xf1ae('0xf')][_0xf1ae('0x10')]===0x1f4){logger[_0xf1ae('0xf')](_0xf1ae('0xa'),_0x53661a,_0x326a36[_0xf1ae('0xf')]['message']);return _0x206cd6(_0x326a36[_0xf1ae('0xf')][_0xf1ae('0x11')]);}logger[_0xf1ae('0xf')](_0xf1ae('0xa'),_0x53661a,_0x326a36[_0xf1ae('0xf')][_0xf1ae('0x11')]);return _0x4d03(_0x326a36[_0xf1ae('0xf')][_0xf1ae('0x11')]);}else{logger[_0xf1ae('0x12')](_0xf1ae('0xa'),_0x53661a,'request\x20sent');_0x4d03(_0x326a36[_0xf1ae('0x13')][_0xf1ae('0x11')]);}})[_0xf1ae('0x14')](function(_0x40629f){logger[_0xf1ae('0xf')](_0xf1ae('0xa'),_0x53661a,_0x40629f);_0x206cd6(_0x40629f);});});}
\ No newline at end of file
+var _0xa14d=['info','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','AnalyticTreeReport,\x20%s,\x20%s,\x20%s','stringify','code','message','error','catch','lodash','util','moment','bluebird','randomstring','ioredis','client','http','request'];(function(_0x5ee73b,_0x282c4c){var _0x22948a=function(_0x4bb79b){while(--_0x4bb79b){_0x5ee73b['push'](_0x5ee73b['shift']());}};_0x22948a(++_0x282c4c);}(_0xa14d,0x117));var _0xda14=function(_0x2a39a0,_0xc70c6a){_0x2a39a0=_0x2a39a0-0x0;var _0x39adc1=_0xa14d[_0x2a39a0];return _0x39adc1;};'use strict';var _=require(_0xda14('0x0'));var util=require(_0xda14('0x1'));var moment=require(_0xda14('0x2'));var BPromise=require(_0xda14('0x3'));var rs=require(_0xda14('0x4'));var fs=require('fs');var Redis=require(_0xda14('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xda14('0x6')][_0xda14('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x16a1cd,_0x15f4e0,_0x12db95){return new BPromise(function(_0x577b0b,_0x458005){return client[_0xda14('0x8')](_0x16a1cd,_0x12db95)['then'](function(_0x38b2f6){logger[_0xda14('0x9')](_0xda14('0xa'),_0x15f4e0,_0xda14('0xb'));logger['debug'](_0xda14('0xc'),_0x15f4e0,_0xda14('0xb'),JSON[_0xda14('0xd')](_0x38b2f6));if(_0x38b2f6['error']){if(_0x38b2f6['error'][_0xda14('0xe')]===0x1f4){logger['error'](_0xda14('0xa'),_0x15f4e0,_0x38b2f6['error'][_0xda14('0xf')]);return _0x458005(_0x38b2f6[_0xda14('0x10')][_0xda14('0xf')]);}logger[_0xda14('0x10')](_0xda14('0xa'),_0x15f4e0,_0x38b2f6['error'][_0xda14('0xf')]);return _0x577b0b(_0x38b2f6[_0xda14('0x10')]['message']);}else{logger[_0xda14('0x9')](_0xda14('0xa'),_0x15f4e0,'request\x20sent');_0x577b0b(_0x38b2f6['result'][_0xda14('0xf')]);}})[_0xda14('0x11')](function(_0x378b69){logger[_0xda14('0x10')](_0xda14('0xa'),_0x15f4e0,_0x378b69);_0x458005(_0x378b69);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa77=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','post','update'];(function(_0x2eb6e2,_0xcbee29){var _0x2e5aa8=function(_0x4c7b7e){while(--_0x4c7b7e){_0x2eb6e2['push'](_0x2eb6e2['shift']());}};_0x2e5aa8(++_0xcbee29);}(_0xfa77,0x8b));var _0x7fa7=function(_0x4709d9,_0x49416f){_0x4709d9=_0x4709d9-0x0;var _0x5b3dfa=_0xfa77[_0x4709d9];return _0x5b3dfa;};'use strict';var multer=require(_0x7fa7('0x0'));var util=require(_0x7fa7('0x1'));var path=require(_0x7fa7('0x2'));var timeout=require(_0x7fa7('0x3'));var express=require(_0x7fa7('0x4'));var router=express[_0x7fa7('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0x7fa7('0x6'));var config=require(_0x7fa7('0x7'));var controller=require('./analyticTreeReport.controller');router[_0x7fa7('0x8')]('/',auth[_0x7fa7('0x9')](),controller['index']);router['get'](_0x7fa7('0xa'),auth[_0x7fa7('0x9')](),controller[_0x7fa7('0xb')]);router[_0x7fa7('0xc')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x7fa7('0xa'),auth['isAuthenticated'](),controller[_0x7fa7('0xd')]);router[_0x7fa7('0xe')]('/:id',auth[_0x7fa7('0x9')](),controller[_0x7fa7('0xf')]);module[_0x7fa7('0x10')]=router;
\ No newline at end of file
+var _0xca4c=['post','create','put','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','isAuthenticated','index'];(function(_0x16ab72,_0x4ecde8){var _0x1fdc54=function(_0x163cf5){while(--_0x163cf5){_0x16ab72['push'](_0x16ab72['shift']());}};_0x1fdc54(++_0x4ecde8);}(_0xca4c,0x94));var _0xcca4=function(_0x2fe69f,_0xd73fcb){_0x2fe69f=_0x2fe69f-0x0;var _0x4717c4=_0xca4c[_0x2fe69f];return _0x4717c4;};'use strict';var multer=require(_0xcca4('0x0'));var util=require(_0xcca4('0x1'));var path=require(_0xcca4('0x2'));var timeout=require(_0xcca4('0x3'));var express=require(_0xcca4('0x4'));var router=express['Router']();var auth=require(_0xcca4('0x5'));var interaction=require(_0xcca4('0x6'));var config=require(_0xcca4('0x7'));var controller=require(_0xcca4('0x8'));router[_0xcca4('0x9')]('/',auth[_0xcca4('0xa')](),controller[_0xcca4('0xb')]);router[_0xcca4('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0xcca4('0xc')]('/',auth['isAuthenticated'](),controller[_0xcca4('0xd')]);router[_0xcca4('0xe')](_0xcca4('0xf'),auth['isAuthenticated'](),controller[_0xcca4('0x10')]);router[_0xcca4('0x11')](_0xcca4('0xf'),auth[_0xcca4('0xa')](),controller[_0xcca4('0x12')]);module[_0xcca4('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b1c=['STRING','sequelize','exports'];(function(_0x3d5b51,_0x2b7895){var _0x29fabd=function(_0x284a08){while(--_0x284a08){_0x3d5b51['push'](_0x3d5b51['shift']());}};_0x29fabd(++_0x2b7895);}(_0x2b1c,0x10f));var _0xc2b1=function(_0x16bd1b,_0x3d91cc){_0x16bd1b=_0x16bd1b-0x0;var _0x1c80d7=_0x2b1c[_0x16bd1b];return _0x1c80d7;};'use strict';var Sequelize=require(_0xc2b1('0x0'));module[_0xc2b1('0x1')]={'name':{'type':Sequelize[_0xc2b1('0x2')]},'basename':{'type':Sequelize[_0xc2b1('0x2')]},'type':{'type':Sequelize[_0xc2b1('0x2')]}};
\ No newline at end of file
+var _0x43b2=['exports','STRING','sequelize'];(function(_0x1a1555,_0x22bd57){var _0x509562=function(_0x1b8bcd){while(--_0x1b8bcd){_0x1a1555['push'](_0x1a1555['shift']());}};_0x509562(++_0x22bd57);}(_0x43b2,0xc5));var _0x243b=function(_0x58a468,_0x5baed8){_0x58a468=_0x58a468-0x0;var _0x14eec4=_0x43b2[_0x58a468];return _0x14eec4;};'use strict';var Sequelize=require(_0x243b('0x0'));module[_0x243b('0x1')]={'name':{'type':Sequelize[_0x243b('0x2')]},'basename':{'type':Sequelize[_0x243b('0x2')]},'type':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x581b=['includeAll','include','findAll','rows','catch','show','find','body','params','destroy','create','file','originalname','basename','filename','type','mimetype','findOne','download','root','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','stack','name','index','Attachment','rawAttributes','model','query','dateStart','dateEnd','keys','intersection','fields','attributes','length','nolimit','sort','filters','add','day','merge','where','map','filter','options'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x581b,0x101));var _0xb581=function(_0x257017,_0x330627){_0x257017=_0x257017-0x0;var _0x38536d=_0x581b[_0x257017];return _0x38536d;};'use strict';var pdf=require(_0xb581('0x0'));var emlformat=require(_0xb581('0x1'));var rimraf=require(_0xb581('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb581('0x3'));var rp=require(_0xb581('0x4'));var moment=require(_0xb581('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb581('0x6'));var util=require(_0xb581('0x7'));var path=require(_0xb581('0x8'));var sox=require(_0xb581('0x9'));var csv=require(_0xb581('0xa'));var ejs=require(_0xb581('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xb581('0xc'));var jsforce=require(_0xb581('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb581('0xa'));var querystring=require(_0xb581('0xe'));var Papa=require(_0xb581('0xf'));var qs=require(_0xb581('0x10'));var logger=require(_0xb581('0x11'))(_0xb581('0x12'));var utils=require(_0xb581('0x13'));var config=require(_0xb581('0x14'));var db=require(_0xb581('0x15'))['db'];function respondWithStatusCode(_0x3e10b0,_0x29e771){_0x29e771=_0x29e771||0xcc;return function(_0x39b5e1){if(_0x39b5e1){return _0x3e10b0[_0xb581('0x16')](_0x29e771);}return _0x3e10b0[_0xb581('0x17')](_0x29e771)[_0xb581('0x18')]();};}function respondWithResult(_0x21b0bd,_0x424930){_0x424930=_0x424930||0xc8;return function(_0x8e8e68){if(_0x8e8e68){return _0x21b0bd[_0xb581('0x17')](_0x424930)[_0xb581('0x19')](_0x8e8e68);}};}function respondWithFilteredResult(_0x4df552,_0x280312){return function(_0x2027aa){if(_0x2027aa){var _0x38bb49=_0x2027aa[_0xb581('0x1a')],_0x1ce9dd=_0x280312[_0xb581('0x1b')],_0x48cd32=_0x280312['offset']+_0x280312[_0xb581('0x1c')],_0x36816f;if(_0x48cd32>=_0x38bb49){_0x48cd32=_0x38bb49;_0x36816f=0xc8;}else{_0x36816f=0xce;}_0x4df552[_0xb581('0x17')](_0x36816f);return _0x4df552[_0xb581('0x1d')](_0xb581('0x1e'),_0x1ce9dd+'-'+_0x48cd32+'/'+_0x38bb49)[_0xb581('0x19')](_0x2027aa);}return null;};}function patchUpdates(_0x342dc7){return function(_0x3caf57){try{jsonpatch[_0xb581('0x1f')](_0x3caf57,_0x342dc7,!![]);}catch(_0x28f92a){return BPromise['reject'](_0x28f92a);}return _0x3caf57[_0xb581('0x20')]();};}function saveUpdates(_0x44e082,_0x3de1ff){return function(_0xf9e273){if(_0xf9e273){return _0xf9e273[_0xb581('0x21')](_0x44e082)['then'](function(_0x3ca5ee){return _0x3ca5ee;});}return null;};}function removeEntity(_0x567597,_0x5756be){return function(_0x18e716){if(_0x18e716){return _0x18e716['destroy']()[_0xb581('0x22')](function(){_0x567597[_0xb581('0x17')](0xcc)[_0xb581('0x18')]();});}};}function handleEntityNotFound(_0x10a664,_0x55077a){return function(_0x171b20){if(!_0x171b20){_0x10a664[_0xb581('0x16')](0x194);}return _0x171b20;};}function handleError(_0x3cc285,_0x126830){_0x126830=_0x126830||0x1f4;return function(_0x17bb22){logger['error'](_0x17bb22[_0xb581('0x23')]);if(_0x17bb22['name']){delete _0x17bb22[_0xb581('0x24')];}_0x3cc285[_0xb581('0x17')](_0x126830)['send'](_0x17bb22);};}exports[_0xb581('0x25')]=function(_0x3b2381,_0x56f9ef){var _0x18de6a={},_0x2388fe={},_0x5bd00c={'count':0x0,'rows':[]};var _0x5b65d5=db[_0xb581('0x26')][_0xb581('0x27')];_0x2388fe[_0xb581('0x28')]=_['keys'](_0x5b65d5);var _0x450324={'dateStart':_0x3b2381[_0xb581('0x29')][_0xb581('0x2a')],'dateEnd':_0x3b2381[_0xb581('0x29')][_0xb581('0x2b')]};delete _0x3b2381[_0xb581('0x29')][_0xb581('0x2a')];delete _0x3b2381[_0xb581('0x29')][_0xb581('0x2b')];_0x2388fe[_0xb581('0x29')]=_[_0xb581('0x2c')](_0x3b2381['query']);_0x2388fe['filters']=_[_0xb581('0x2d')](_0x2388fe[_0xb581('0x28')],_0x2388fe['query']);_0x18de6a['attributes']=_[_0xb581('0x2d')](_0x2388fe[_0xb581('0x28')],qs[_0xb581('0x2e')](_0x3b2381['query'][_0xb581('0x2e')]));_0x18de6a[_0xb581('0x2f')]=_0x18de6a[_0xb581('0x2f')][_0xb581('0x30')]?_0x18de6a[_0xb581('0x2f')]:_0x2388fe[_0xb581('0x28')];if(!_0x3b2381[_0xb581('0x29')]['hasOwnProperty'](_0xb581('0x31'))){_0x18de6a[_0xb581('0x1c')]=qs['limit'](_0x3b2381[_0xb581('0x29')][_0xb581('0x1c')]);_0x18de6a[_0xb581('0x1b')]=qs['offset'](_0x3b2381[_0xb581('0x29')][_0xb581('0x1b')]);}_0x18de6a['order']=qs[_0xb581('0x32')](_0x3b2381[_0xb581('0x29')][_0xb581('0x32')]);_0x18de6a['where']=qs[_0xb581('0x33')](_['pick'](_0x3b2381[_0xb581('0x29')],_0x2388fe[_0xb581('0x33')]));if(_0x450324['dateStart']){if(_0x450324[_0xb581('0x2b')]){_0x450324[_0xb581('0x2b')]=moment(_0x450324[_0xb581('0x2b')])[_0xb581('0x34')](0x1,_0xb581('0x35'));}else{_0x450324[_0xb581('0x2b')]=moment(_0x450324[_0xb581('0x2a')])[_0xb581('0x34')](0x1,_0xb581('0x35'));}_[_0xb581('0x36')](_0x18de6a['where'],{'createdAt':{'$gte':_0x450324[_0xb581('0x2a')],'$lte':_0x450324['dateEnd']}});}if(_0x3b2381['query']['filter']){_0x18de6a['where']=_['merge'](_0x18de6a[_0xb581('0x37')],{'$or':_[_0xb581('0x38')](_0x18de6a['attributes'],function(_0x2b2c28){var _0x22a24e={};_0x22a24e[_0x2b2c28]={'$like':'%'+_0x3b2381[_0xb581('0x29')][_0xb581('0x39')]+'%'};return _0x22a24e;})});}_0x18de6a=_['merge']({},_0x18de6a,_0x3b2381[_0xb581('0x3a')]);var _0x1328df={'where':_0x18de6a[_0xb581('0x37')]};return db[_0xb581('0x26')][_0xb581('0x1a')](_0x1328df)['then'](function(_0x55a4ca){_0x5bd00c[_0xb581('0x1a')]=_0x55a4ca;if(_0x3b2381[_0xb581('0x29')][_0xb581('0x3b')]){_0x18de6a[_0xb581('0x3c')]=[{'all':!![]}];}return db[_0xb581('0x26')][_0xb581('0x3d')](_0x18de6a);})['then'](function(_0x129d62){_0x5bd00c[_0xb581('0x3e')]=_0x129d62;return _0x5bd00c;})[_0xb581('0x22')](respondWithFilteredResult(_0x56f9ef,_0x18de6a))[_0xb581('0x3f')](handleError(_0x56f9ef,null));};exports[_0xb581('0x40')]=function(_0x1ca0a9,_0x63d4ff){var _0x1d9429={'raw':!![],'where':{'id':_0x1ca0a9['params']['id']}},_0x5b68a0={};_0x5b68a0[_0xb581('0x28')]=_[_0xb581('0x2c')](db[_0xb581('0x26')][_0xb581('0x27')]);_0x5b68a0[_0xb581('0x29')]=_[_0xb581('0x2c')](_0x1ca0a9[_0xb581('0x29')]);_0x5b68a0['filters']=_[_0xb581('0x2d')](_0x5b68a0[_0xb581('0x28')],_0x5b68a0[_0xb581('0x29')]);_0x1d9429['attributes']=_[_0xb581('0x2d')](_0x5b68a0[_0xb581('0x28')],qs[_0xb581('0x2e')](_0x1ca0a9[_0xb581('0x29')][_0xb581('0x2e')]));_0x1d9429[_0xb581('0x2f')]=_0x1d9429[_0xb581('0x2f')]['length']?_0x1d9429[_0xb581('0x2f')]:_0x5b68a0[_0xb581('0x28')];if(_0x1ca0a9[_0xb581('0x29')][_0xb581('0x3b')]){_0x1d9429[_0xb581('0x3c')]=[{'all':!![]}];}_0x1d9429=_['merge']({},_0x1d9429,_0x1ca0a9[_0xb581('0x3a')]);return db['Attachment'][_0xb581('0x41')](_0x1d9429)[_0xb581('0x22')](handleEntityNotFound(_0x63d4ff,null))[_0xb581('0x22')](respondWithResult(_0x63d4ff,null))[_0xb581('0x3f')](handleError(_0x63d4ff,null));};exports[_0xb581('0x21')]=function(_0x300dda,_0x33018e){if(_0x300dda[_0xb581('0x42')]['id']){delete _0x300dda[_0xb581('0x42')]['id'];}return db[_0xb581('0x26')]['find']({'where':{'id':_0x300dda[_0xb581('0x43')]['id']}})[_0xb581('0x22')](handleEntityNotFound(_0x33018e,null))[_0xb581('0x22')](saveUpdates(_0x300dda[_0xb581('0x42')],null))['then'](respondWithResult(_0x33018e,null))[_0xb581('0x3f')](handleError(_0x33018e,null));};exports[_0xb581('0x44')]=function(_0x5e8632,_0x342488){return db['Attachment'][_0xb581('0x41')]({'where':{'id':_0x5e8632['params']['id']}})[_0xb581('0x22')](handleEntityNotFound(_0x342488,null))[_0xb581('0x22')](removeEntity(_0x342488,null))['catch'](handleError(_0x342488,null));};exports[_0xb581('0x45')]=function(_0xdc44ce,_0x9c764d,_0x4827ff){_0xdc44ce[_0xb581('0x42')][_0xb581('0x24')]=_0xdc44ce[_0xb581('0x46')][_0xb581('0x47')];_0xdc44ce['body'][_0xb581('0x48')]=_0xdc44ce['file'][_0xb581('0x49')];_0xdc44ce['body'][_0xb581('0x4a')]=_0xdc44ce['file'][_0xb581('0x4b')];return db[_0xb581('0x26')][_0xb581('0x45')](_0xdc44ce[_0xb581('0x42')])[_0xb581('0x22')](respondWithResult(_0x9c764d,0xc9))[_0xb581('0x3f')](handleError(_0x9c764d,null));};exports['download']=function(_0x3143e7,_0x5c4ae4,_0x1422b0){return db[_0xb581('0x26')][_0xb581('0x4c')]({'where':{'id':_0x3143e7[_0xb581('0x43')]['id']},'raw':!![]})[_0xb581('0x22')](handleEntityNotFound(_0x5c4ae4,null))[_0xb581('0x22')](function(_0x51fb0c){if(_0x51fb0c){return _0x5c4ae4[_0xb581('0x4d')](path['join'](config[_0xb581('0x4e')],'server/files/attachments/',_0x51fb0c[_0xb581('0x48')]));}})[_0xb581('0x3f')](handleError(_0x5c4ae4,null));};
\ No newline at end of file
+var _0xd03f=['lodash','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','offset','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','Attachment','rawAttributes','model','keys','query','dateEnd','dateStart','filters','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','add','day','merge','filter','map','options','count','includeAll','findAll','rows','catch','show','params','intersection','include','find','body','create','file','originalname','basename','filename','type','join','root','server/files/attachments/','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs'];(function(_0x4585c5,_0x309fd1){var _0x4c91d1=function(_0x2e5f72){while(--_0x2e5f72){_0x4585c5['push'](_0x4585c5['shift']());}};_0x4c91d1(++_0x309fd1);}(_0xd03f,0x183));var _0xfd03=function(_0x18fd65,_0x1bfd33){_0x18fd65=_0x18fd65-0x0;var _0x4ef15e=_0xd03f[_0x18fd65];return _0x4ef15e;};'use strict';var pdf=require(_0xfd03('0x0'));var emlformat=require(_0xfd03('0x1'));var rimraf=require(_0xfd03('0x2'));var zipdir=require(_0xfd03('0x3'));var jsonpatch=require(_0xfd03('0x4'));var rp=require(_0xfd03('0x5'));var moment=require(_0xfd03('0x6'));var BPromise=require(_0xfd03('0x7'));var Mustache=require(_0xfd03('0x8'));var util=require(_0xfd03('0x9'));var path=require(_0xfd03('0xa'));var sox=require('sox');var csv=require(_0xfd03('0xb'));var ejs=require(_0xfd03('0xc'));var fs=require('fs');var _=require(_0xfd03('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfd03('0xb'));var querystring=require(_0xfd03('0xe'));var Papa=require(_0xfd03('0xf'));var Redis=require(_0xfd03('0x10'));var qs=require(_0xfd03('0x11'));var logger=require(_0xfd03('0x12'))(_0xfd03('0x13'));var utils=require('../../config/utils');var config=require(_0xfd03('0x14'));var db=require(_0xfd03('0x15'))['db'];function respondWithStatusCode(_0x4d38fe,_0x55820b){_0x55820b=_0x55820b||0xcc;return function(_0x8cc8af){if(_0x8cc8af){return _0x4d38fe[_0xfd03('0x16')](_0x55820b);}return _0x4d38fe['status'](_0x55820b)['end']();};}function respondWithResult(_0x5d1830,_0x2a3a55){_0x2a3a55=_0x2a3a55||0xc8;return function(_0x6a46fb){if(_0x6a46fb){return _0x5d1830[_0xfd03('0x17')](_0x2a3a55)[_0xfd03('0x18')](_0x6a46fb);}};}function respondWithFilteredResult(_0x3c2f2a,_0x4d561e){return function(_0xaf345a){if(_0xaf345a){var _0x5f4fab=_0xaf345a['count'],_0x311801=_0x4d561e['offset'],_0x51e63f=_0x4d561e[_0xfd03('0x19')]+_0x4d561e['limit'],_0x5a6188;if(_0x51e63f>=_0x5f4fab){_0x51e63f=_0x5f4fab;_0x5a6188=0xc8;}else{_0x5a6188=0xce;}_0x3c2f2a[_0xfd03('0x17')](_0x5a6188);return _0x3c2f2a[_0xfd03('0x1a')](_0xfd03('0x1b'),_0x311801+'-'+_0x51e63f+'/'+_0x5f4fab)[_0xfd03('0x18')](_0xaf345a);}return null;};}function patchUpdates(_0x4ab7a1){return function(_0x41f733){try{jsonpatch[_0xfd03('0x1c')](_0x41f733,_0x4ab7a1,!![]);}catch(_0x1921ae){return BPromise[_0xfd03('0x1d')](_0x1921ae);}return _0x41f733[_0xfd03('0x1e')]();};}function saveUpdates(_0x7e989,_0x5a67c3){return function(_0x592e7b){if(_0x592e7b){return _0x592e7b[_0xfd03('0x1f')](_0x7e989)['then'](function(_0x1e7321){return _0x1e7321;});}return null;};}function removeEntity(_0x1120fb,_0x2450f9){return function(_0x15851b){if(_0x15851b){return _0x15851b[_0xfd03('0x20')]()[_0xfd03('0x21')](function(){_0x1120fb[_0xfd03('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0xf0d868,_0x4300af){return function(_0x4467e9){if(!_0x4467e9){_0xf0d868[_0xfd03('0x16')](0x194);}return _0x4467e9;};}function handleError(_0x876951,_0x34c599){_0x34c599=_0x34c599||0x1f4;return function(_0x14970f){logger[_0xfd03('0x22')](_0x14970f[_0xfd03('0x23')]);if(_0x14970f[_0xfd03('0x24')]){delete _0x14970f[_0xfd03('0x24')];}_0x876951['status'](_0x34c599)['send'](_0x14970f);};}exports['index']=function(_0x1942e8,_0x177282){var _0x5749a8={},_0x5b8458={},_0x36f342={'count':0x0,'rows':[]};var _0x52ea15=db[_0xfd03('0x25')][_0xfd03('0x26')];_0x5b8458[_0xfd03('0x27')]=_[_0xfd03('0x28')](_0x52ea15);var _0x399b5e={'dateStart':_0x1942e8['query']['dateStart'],'dateEnd':_0x1942e8[_0xfd03('0x29')][_0xfd03('0x2a')]};delete _0x1942e8['query'][_0xfd03('0x2b')];delete _0x1942e8['query']['dateEnd'];_0x5b8458[_0xfd03('0x29')]=_[_0xfd03('0x28')](_0x1942e8[_0xfd03('0x29')]);_0x5b8458[_0xfd03('0x2c')]=_['intersection'](_0x5b8458[_0xfd03('0x27')],_0x5b8458['query']);_0x5749a8['attributes']=_['intersection'](_0x5b8458[_0xfd03('0x27')],qs[_0xfd03('0x2d')](_0x1942e8['query'][_0xfd03('0x2d')]));_0x5749a8[_0xfd03('0x2e')]=_0x5749a8[_0xfd03('0x2e')][_0xfd03('0x2f')]?_0x5749a8['attributes']:_0x5b8458[_0xfd03('0x27')];if(!_0x1942e8[_0xfd03('0x29')][_0xfd03('0x30')](_0xfd03('0x31'))){_0x5749a8[_0xfd03('0x32')]=qs[_0xfd03('0x32')](_0x1942e8[_0xfd03('0x29')]['limit']);_0x5749a8[_0xfd03('0x19')]=qs[_0xfd03('0x19')](_0x1942e8[_0xfd03('0x29')][_0xfd03('0x19')]);}_0x5749a8[_0xfd03('0x33')]=qs[_0xfd03('0x34')](_0x1942e8['query'][_0xfd03('0x34')]);_0x5749a8[_0xfd03('0x35')]=qs[_0xfd03('0x2c')](_['pick'](_0x1942e8['query'],_0x5b8458['filters']));if(_0x399b5e[_0xfd03('0x2b')]){if(_0x399b5e['dateEnd']){_0x399b5e[_0xfd03('0x2a')]=moment(_0x399b5e[_0xfd03('0x2a')])['add'](0x1,'day');}else{_0x399b5e[_0xfd03('0x2a')]=moment(_0x399b5e[_0xfd03('0x2b')])[_0xfd03('0x36')](0x1,_0xfd03('0x37'));}_[_0xfd03('0x38')](_0x5749a8[_0xfd03('0x35')],{'createdAt':{'$gte':_0x399b5e[_0xfd03('0x2b')],'$lte':_0x399b5e[_0xfd03('0x2a')]}});}if(_0x1942e8[_0xfd03('0x29')][_0xfd03('0x39')]){_0x5749a8[_0xfd03('0x35')]=_[_0xfd03('0x38')](_0x5749a8[_0xfd03('0x35')],{'$or':_[_0xfd03('0x3a')](_0x5749a8[_0xfd03('0x2e')],function(_0x3d8eb5){var _0x48a758={};_0x48a758[_0x3d8eb5]={'$like':'%'+_0x1942e8[_0xfd03('0x29')][_0xfd03('0x39')]+'%'};return _0x48a758;})});}_0x5749a8=_[_0xfd03('0x38')]({},_0x5749a8,_0x1942e8[_0xfd03('0x3b')]);var _0x121dd6={'where':_0x5749a8[_0xfd03('0x35')]};return db[_0xfd03('0x25')]['count'](_0x121dd6)['then'](function(_0x2b1ec4){_0x36f342[_0xfd03('0x3c')]=_0x2b1ec4;if(_0x1942e8[_0xfd03('0x29')][_0xfd03('0x3d')]){_0x5749a8['include']=[{'all':!![]}];}return db[_0xfd03('0x25')][_0xfd03('0x3e')](_0x5749a8);})[_0xfd03('0x21')](function(_0x19d41f){_0x36f342[_0xfd03('0x3f')]=_0x19d41f;return _0x36f342;})[_0xfd03('0x21')](respondWithFilteredResult(_0x177282,_0x5749a8))[_0xfd03('0x40')](handleError(_0x177282,null));};exports[_0xfd03('0x41')]=function(_0x53e9e1,_0x23ebbe){var _0x413024={'raw':!![],'where':{'id':_0x53e9e1[_0xfd03('0x42')]['id']}},_0x23be1e={};_0x23be1e['model']=_['keys'](db['Attachment'][_0xfd03('0x26')]);_0x23be1e[_0xfd03('0x29')]=_[_0xfd03('0x28')](_0x53e9e1[_0xfd03('0x29')]);_0x23be1e[_0xfd03('0x2c')]=_[_0xfd03('0x43')](_0x23be1e['model'],_0x23be1e[_0xfd03('0x29')]);_0x413024[_0xfd03('0x2e')]=_[_0xfd03('0x43')](_0x23be1e[_0xfd03('0x27')],qs['fields'](_0x53e9e1[_0xfd03('0x29')][_0xfd03('0x2d')]));_0x413024[_0xfd03('0x2e')]=_0x413024[_0xfd03('0x2e')]['length']?_0x413024[_0xfd03('0x2e')]:_0x23be1e[_0xfd03('0x27')];if(_0x53e9e1[_0xfd03('0x29')][_0xfd03('0x3d')]){_0x413024[_0xfd03('0x44')]=[{'all':!![]}];}_0x413024=_['merge']({},_0x413024,_0x53e9e1['options']);return db[_0xfd03('0x25')][_0xfd03('0x45')](_0x413024)[_0xfd03('0x21')](handleEntityNotFound(_0x23ebbe,null))[_0xfd03('0x21')](respondWithResult(_0x23ebbe,null))[_0xfd03('0x40')](handleError(_0x23ebbe,null));};exports[_0xfd03('0x1f')]=function(_0x1c3d36,_0x33d15e){if(_0x1c3d36[_0xfd03('0x46')]['id']){delete _0x1c3d36[_0xfd03('0x46')]['id'];}return db['Attachment'][_0xfd03('0x45')]({'where':{'id':_0x1c3d36[_0xfd03('0x42')]['id']}})['then'](handleEntityNotFound(_0x33d15e,null))[_0xfd03('0x21')](saveUpdates(_0x1c3d36[_0xfd03('0x46')],null))[_0xfd03('0x21')](respondWithResult(_0x33d15e,null))[_0xfd03('0x40')](handleError(_0x33d15e,null));};exports[_0xfd03('0x20')]=function(_0x1c75d2,_0x44f4c5){return db['Attachment']['find']({'where':{'id':_0x1c75d2[_0xfd03('0x42')]['id']}})[_0xfd03('0x21')](handleEntityNotFound(_0x44f4c5,null))[_0xfd03('0x21')](removeEntity(_0x44f4c5,null))[_0xfd03('0x40')](handleError(_0x44f4c5,null));};exports[_0xfd03('0x47')]=function(_0x4c8668,_0x5dd61a,_0x1dc61f){_0x4c8668['body']['name']=_0x4c8668[_0xfd03('0x48')][_0xfd03('0x49')];_0x4c8668[_0xfd03('0x46')][_0xfd03('0x4a')]=_0x4c8668[_0xfd03('0x48')][_0xfd03('0x4b')];_0x4c8668[_0xfd03('0x46')][_0xfd03('0x4c')]=_0x4c8668[_0xfd03('0x48')]['mimetype'];return db[_0xfd03('0x25')][_0xfd03('0x47')](_0x4c8668[_0xfd03('0x46')])['then'](respondWithResult(_0x5dd61a,0xc9))[_0xfd03('0x40')](handleError(_0x5dd61a,null));};exports['download']=function(_0x4f7575,_0x5d5919,_0x29f087){return db['Attachment']['findOne']({'where':{'id':_0x4f7575[_0xfd03('0x42')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x5d5919,null))[_0xfd03('0x21')](function(_0x36dc64){if(_0x36dc64){return _0x5d5919['download'](path[_0xfd03('0x4d')](config[_0xfd03('0x4e')],_0xfd03('0x4f'),_0x36dc64[_0xfd03('0x4a')]));}})[_0xfd03('0x40')](handleError(_0x5d5919,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['Attachment','attachments','../../config/logger','api','moment','bluebird','request-promise','./attachment.attributes','exports','define'];(function(_0x323df4,_0x54e149){var _0x10f27c=function(_0x209fe0){while(--_0x209fe0){_0x323df4['push'](_0x323df4['shift']());}};_0x10f27c(++_0x54e149);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x4dab14,_0x164ea0){_0x4dab14=_0x4dab14-0x0;var _0xf41aa=_0x7fbe[_0x4dab14];return _0xf41aa;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xe7fb('0x0'))(_0xe7fb('0x1'));var moment=require(_0xe7fb('0x2'));var BPromise=require(_0xe7fb('0x3'));var rp=require(_0xe7fb('0x4'));var attributes=require(_0xe7fb('0x5'));module[_0xe7fb('0x6')]=function(_0x4524ff,_0x36ab90){return _0x4524ff[_0xe7fb('0x7')](_0xe7fb('0x8'),attributes,{'tableName':_0xe7fb('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x55ca=['bluebird','request-promise','exports','define','Attachment','attachments','lodash','util'];(function(_0x3b9d5f,_0x2e9039){var _0x39924e=function(_0x5752ee){while(--_0x5752ee){_0x3b9d5f['push'](_0x3b9d5f['shift']());}};_0x39924e(++_0x2e9039);}(_0x55ca,0x126));var _0xa55c=function(_0x9a7ea6,_0x1807a2){_0x9a7ea6=_0x9a7ea6-0x0;var _0x1c2040=_0x55ca[_0x9a7ea6];return _0x1c2040;};'use strict';var _=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xa55c('0x2'));var rp=require(_0xa55c('0x3'));var attributes=require('./attachment.attributes');module[_0xa55c('0x4')]=function(_0x2db02a,_0xcb02e3){return _0x2db02a[_0xa55c('0x5')](_0xa55c('0x6'),attributes,{'tableName':_0xa55c('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe820=['error','Attachment,\x20%s,\x20%s','message','catch','CreateAttachment','Attachment','create','body','options','raw','lodash','moment','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x33e188,_0x1440de){var _0x53da74=function(_0x134bb2){while(--_0x134bb2){_0x33e188['push'](_0x33e188['shift']());}};_0x53da74(++_0x1440de);}(_0xe820,0xd2));var _0x0e82=function(_0x58360e,_0x37202b){_0x58360e=_0x58360e-0x0;var _0x4201f1=_0xe820[_0x58360e];return _0x4201f1;};'use strict';var _=require(_0x0e82('0x0'));var util=require('util');var moment=require(_0x0e82('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x0e82('0x2'))['db'];var utils=require(_0x0e82('0x3'));var logger=require(_0x0e82('0x4'))('rpc');var config=require(_0x0e82('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x0e82('0x6')][_0x0e82('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x69e27f,_0x328b32,_0x2a0f9b){return new BPromise(function(_0x55f277,_0x10013b){return client[_0x0e82('0x8')](_0x69e27f,_0x2a0f9b)[_0x0e82('0x9')](function(_0x33c82a){logger[_0x0e82('0xa')]('Attachment,\x20%s,\x20%s',_0x328b32,_0x0e82('0xb'));logger[_0x0e82('0xc')](_0x0e82('0xd'),_0x328b32,_0x0e82('0xb'),JSON[_0x0e82('0xe')](_0x33c82a));if(_0x33c82a[_0x0e82('0xf')]){if(_0x33c82a[_0x0e82('0xf')]['code']===0x1f4){logger[_0x0e82('0xf')](_0x0e82('0x10'),_0x328b32,_0x33c82a[_0x0e82('0xf')][_0x0e82('0x11')]);return _0x10013b(_0x33c82a[_0x0e82('0xf')][_0x0e82('0x11')]);}logger['error'](_0x0e82('0x10'),_0x328b32,_0x33c82a['error']['message']);return _0x55f277(_0x33c82a[_0x0e82('0xf')]['message']);}else{logger['info']('Attachment,\x20%s,\x20%s',_0x328b32,_0x0e82('0xb'));_0x55f277(_0x33c82a['result']['message']);}})[_0x0e82('0x12')](function(_0x582f45){logger[_0x0e82('0xf')](_0x0e82('0x10'),_0x328b32,_0x582f45);_0x10013b(_0x582f45);});});}exports[_0x0e82('0x13')]=function(_0x315ce4){var _0x53622b=this;return new Promise(function(_0x25ac21,_0x310aac){return db[_0x0e82('0x14')][_0x0e82('0x15')](_0x315ce4[_0x0e82('0x16')],{'raw':_0x315ce4[_0x0e82('0x17')]?_0x315ce4[_0x0e82('0x17')][_0x0e82('0x18')]===undefined?!![]:![]:!![]})[_0x0e82('0x9')](function(_0x224455){logger[_0x0e82('0xa')]('CreateAttachment',_0x315ce4);logger['debug'](_0x0e82('0x13'),_0x315ce4,JSON[_0x0e82('0xe')](_0x224455));_0x25ac21(_0x224455);})[_0x0e82('0x12')](function(_0xb0a31){logger[_0x0e82('0xf')](_0x0e82('0x13'),_0xb0a31[_0x0e82('0x11')],_0x315ce4);_0x310aac(_0x53622b[_0x0e82('0xf')](0x1f4,_0xb0a31['message']));});});};
\ No newline at end of file
+var _0xdd2e=['catch','CreateAttachment','body','options','raw','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','then','info','Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result'];(function(_0x4d0662,_0x145963){var _0x6eea6d=function(_0x2def06){while(--_0x2def06){_0x4d0662['push'](_0x4d0662['shift']());}};_0x6eea6d(++_0x145963);}(_0xdd2e,0x13d));var _0xedd2=function(_0x8ce16d,_0xc01f9f){_0x8ce16d=_0x8ce16d-0x0;var _0x3843ce=_0xdd2e[_0x8ce16d];return _0x3843ce;};'use strict';var _=require(_0xedd2('0x0'));var util=require(_0xedd2('0x1'));var moment=require('moment');var BPromise=require(_0xedd2('0x2'));var rs=require(_0xedd2('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xedd2('0x4'))['db'];var utils=require(_0xedd2('0x5'));var logger=require(_0xedd2('0x6'))(_0xedd2('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xedd2('0x8')][_0xedd2('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1b4182,_0x160887,_0x3794d6){return new BPromise(function(_0x1c823c,_0x277fe0){return client['request'](_0x1b4182,_0x3794d6)[_0xedd2('0xa')](function(_0x5d8cb8){logger[_0xedd2('0xb')](_0xedd2('0xc'),_0x160887,_0xedd2('0xd'));logger[_0xedd2('0xe')](_0xedd2('0xf'),_0x160887,_0xedd2('0xd'),JSON[_0xedd2('0x10')](_0x5d8cb8));if(_0x5d8cb8['error']){if(_0x5d8cb8['error'][_0xedd2('0x11')]===0x1f4){logger[_0xedd2('0x12')](_0xedd2('0xc'),_0x160887,_0x5d8cb8[_0xedd2('0x12')]['message']);return _0x277fe0(_0x5d8cb8['error'][_0xedd2('0x13')]);}logger['error']('Attachment,\x20%s,\x20%s',_0x160887,_0x5d8cb8[_0xedd2('0x12')]['message']);return _0x1c823c(_0x5d8cb8[_0xedd2('0x12')]['message']);}else{logger[_0xedd2('0xb')]('Attachment,\x20%s,\x20%s',_0x160887,_0xedd2('0xd'));_0x1c823c(_0x5d8cb8[_0xedd2('0x14')][_0xedd2('0x13')]);}})[_0xedd2('0x15')](function(_0x16db7b){logger[_0xedd2('0x12')](_0xedd2('0xc'),_0x160887,_0x16db7b);_0x277fe0(_0x16db7b);});});}exports[_0xedd2('0x16')]=function(_0x2ed67b){var _0x32f592=this;return new Promise(function(_0x6e597b,_0xf33fe5){return db['Attachment']['create'](_0x2ed67b[_0xedd2('0x17')],{'raw':_0x2ed67b[_0xedd2('0x18')]?_0x2ed67b['options'][_0xedd2('0x19')]===undefined?!![]:![]:!![]})[_0xedd2('0xa')](function(_0xd9f8ae){logger[_0xedd2('0xb')]('CreateAttachment',_0x2ed67b);logger[_0xedd2('0xe')](_0xedd2('0x16'),_0x2ed67b,JSON[_0xedd2('0x10')](_0xd9f8ae));_0x6e597b(_0xd9f8ae);})[_0xedd2('0x15')](function(_0x5a02a3){logger[_0xedd2('0x12')]('CreateAttachment',_0x5a02a3[_0xedd2('0x13')],_0x2ed67b);_0xf33fe5(_0x32f592[_0xedd2('0x12')](0x1f4,_0x5a02a3['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d70=['join','root','server/files/attachments/','format','%s-%s','now','originalname','replace','post','single','file','create','put','/:id','update','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','show','/:id/download','diskStorage'];(function(_0x2d4080,_0x340d7a){var _0x474afe=function(_0x11bf4d){while(--_0x11bf4d){_0x2d4080['push'](_0x2d4080['shift']());}};_0x474afe(++_0x340d7a);}(_0x5d70,0x8d));var _0x05d7=function(_0x45f23c,_0x2781ac){_0x45f23c=_0x45f23c-0x0;var _0x2b364d=_0x5d70[_0x45f23c];return _0x2b364d;};'use strict';var multer=require(_0x05d7('0x0'));var util=require(_0x05d7('0x1'));var path=require('path');var timeout=require(_0x05d7('0x2'));var express=require(_0x05d7('0x3'));var router=express[_0x05d7('0x4')]();var auth=require(_0x05d7('0x5'));var interaction=require(_0x05d7('0x6'));var config=require(_0x05d7('0x7'));var controller=require('./attachment.controller');router[_0x05d7('0x8')]('/',auth[_0x05d7('0x9')](),controller[_0x05d7('0xa')]);router[_0x05d7('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x05d7('0xb')]);router[_0x05d7('0x8')](_0x05d7('0xc'),auth['isAuthenticated'](),controller['download']);var upload=multer({'storage':multer[_0x05d7('0xd')]({'destination':function(_0x40a1f6,_0x2d3d67,_0x2ae2ea){_0x2ae2ea(null,path[_0x05d7('0xe')](config[_0x05d7('0xf')],_0x05d7('0x10')));},'filename':function(_0x46e0bd,_0x42fcaf,_0x18abee){_0x18abee(null,util[_0x05d7('0x11')](_0x05d7('0x12'),Date[_0x05d7('0x13')](),_0x42fcaf[_0x05d7('0x14')][_0x05d7('0x15')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x05d7('0x16')]('/',upload[_0x05d7('0x17')](_0x05d7('0x18')),controller[_0x05d7('0x19')]);router[_0x05d7('0x1a')](_0x05d7('0x1b'),auth[_0x05d7('0x9')](),controller[_0x05d7('0x1c')]);router['delete'](_0x05d7('0x1b'),auth['isAuthenticated'](),controller[_0x05d7('0x1d')]);module[_0x05d7('0x1e')]=router;
\ No newline at end of file
+var _0xf296=['connect-timeout','../../components/auth/service','../../components/interaction/service','./attachment.controller','get','isAuthenticated','/:id','show','/:id/download','download','diskStorage','join','format','%s-%s','originalname','replace','post','single','file','put','delete','destroy','exports','multer','util'];(function(_0x5cf3b8,_0x2bbb34){var _0x2fb2ac=function(_0x105102){while(--_0x105102){_0x5cf3b8['push'](_0x5cf3b8['shift']());}};_0x2fb2ac(++_0x2bbb34);}(_0xf296,0x94));var _0x6f29=function(_0x44029c,_0x426690){_0x44029c=_0x44029c-0x0;var _0x547fa1=_0xf296[_0x44029c];return _0x547fa1;};'use strict';var multer=require(_0x6f29('0x0'));var util=require(_0x6f29('0x1'));var path=require('path');var timeout=require(_0x6f29('0x2'));var express=require('express');var router=express['Router']();var auth=require(_0x6f29('0x3'));var interaction=require(_0x6f29('0x4'));var config=require('../../config/environment');var controller=require(_0x6f29('0x5'));router[_0x6f29('0x6')]('/',auth[_0x6f29('0x7')](),controller['index']);router[_0x6f29('0x6')](_0x6f29('0x8'),auth['isAuthenticated'](),controller[_0x6f29('0x9')]);router[_0x6f29('0x6')](_0x6f29('0xa'),auth[_0x6f29('0x7')](),controller[_0x6f29('0xb')]);var upload=multer({'storage':multer[_0x6f29('0xc')]({'destination':function(_0x42773f,_0x533e59,_0x53db5d){_0x53db5d(null,path[_0x6f29('0xd')](config['root'],'server/files/attachments/'));},'filename':function(_0x29c69c,_0x5e24b4,_0x11b5a7){_0x11b5a7(null,util[_0x6f29('0xe')](_0x6f29('0xf'),Date['now'](),_0x5e24b4[_0x6f29('0x10')][_0x6f29('0x11')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x6f29('0x12')]('/',upload[_0x6f29('0x13')](_0x6f29('0x14')),controller['create']);router[_0x6f29('0x15')](_0x6f29('0x8'),auth[_0x6f29('0x7')](),controller['update']);router[_0x6f29('0x16')]('/:id',auth[_0x6f29('0x7')](),controller[_0x6f29('0x17')]);module[_0x6f29('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc1d=['passport','passport-google-oauth20','../../config/environment','authenticate','google','/login','profile','email','callback','clientSecret','secret','callbackURL','find','value','admin','user','User\x20email\x20not\x20found!','catch'];(function(_0x3444ab,_0x204ecf){var _0xc97bfb=function(_0x1b6d7b){while(--_0x1b6d7b){_0x3444ab['push'](_0x3444ab['shift']());}};_0xc97bfb(++_0x204ecf);}(_0xbc1d,0x19e));var _0xdbc1=function(_0x45b034,_0x3a57dd){_0x45b034=_0x45b034-0x0;var _0x509cb0=_0xbc1d[_0x45b034];return _0x509cb0;};'use strict';var _=require('lodash');var passport=require(_0xdbc1('0x0'));var GoogleStrategy=require(_0xdbc1('0x1'))['Strategy'];var db=require('../../mysqldb')['db'];var config=require(_0xdbc1('0x2'));var signToken=require('../../components/auth/service')['signToken'];exports['login']=passport[_0xdbc1('0x3')](_0xdbc1('0x4'),{'failureRedirect':_0xdbc1('0x5'),'scope':[_0xdbc1('0x6'),_0xdbc1('0x7')],'session':![]});exports[_0xdbc1('0x8')]=passport[_0xdbc1('0x3')](_0xdbc1('0x4'),{'failureRedirect':_0xdbc1('0x5'),'session':![]});passport['use'](new GoogleStrategy({'clientID':config['google']?config[_0xdbc1('0x4')]['clientID']:'id','clientSecret':config[_0xdbc1('0x4')]?config[_0xdbc1('0x4')][_0xdbc1('0x9')]:_0xdbc1('0xa'),'callbackURL':config[_0xdbc1('0x4')]?config['google'][_0xdbc1('0xb')]:''},function(_0x5d1da3,_0x40156b,_0x57989d,_0x4414a4){db['User'][_0xdbc1('0xc')]({'where':{'email':_['map'](_0x57989d['emails'],_0xdbc1('0xd')),'role':{'$or':[_0xdbc1('0xe'),_0xdbc1('0xf'),'agent']}}})['then'](function(_0x382cd7){if(_0x382cd7){return _0x4414a4(null,_0x382cd7);}_0x4414a4(_0xdbc1('0x10'));})[_0xdbc1('0x11')](function(_0x53b14e){_0x4414a4(_0x53b14e);});}));
\ No newline at end of file
+var _0xe5fe=['callbackURL','User','find','map','emails','user','agent','then','User\x20email\x20not\x20found!','catch','lodash','passport','passport-google-oauth20','Strategy','../../components/auth/service','login','google','profile','email','callback','authenticate','/login','use','secret'];(function(_0x1029f9,_0x15d0d7){var _0x570775=function(_0x4297ce){while(--_0x4297ce){_0x1029f9['push'](_0x1029f9['shift']());}};_0x570775(++_0x15d0d7);}(_0xe5fe,0x6a));var _0xee5f=function(_0x44a331,_0xdb23eb){_0x44a331=_0x44a331-0x0;var _0x4a53e4=_0xe5fe[_0x44a331];return _0x4a53e4;};'use strict';var _=require(_0xee5f('0x0'));var passport=require(_0xee5f('0x1'));var GoogleStrategy=require(_0xee5f('0x2'))[_0xee5f('0x3')];var db=require('../../mysqldb')['db'];var config=require('../../config/environment');var signToken=require(_0xee5f('0x4'))['signToken'];exports[_0xee5f('0x5')]=passport['authenticate'](_0xee5f('0x6'),{'failureRedirect':'/login','scope':[_0xee5f('0x7'),_0xee5f('0x8')],'session':![]});exports[_0xee5f('0x9')]=passport[_0xee5f('0xa')]('google',{'failureRedirect':_0xee5f('0xb'),'session':![]});passport[_0xee5f('0xc')](new GoogleStrategy({'clientID':config[_0xee5f('0x6')]?config[_0xee5f('0x6')]['clientID']:'id','clientSecret':config[_0xee5f('0x6')]?config[_0xee5f('0x6')]['clientSecret']:_0xee5f('0xd'),'callbackURL':config[_0xee5f('0x6')]?config[_0xee5f('0x6')][_0xee5f('0xe')]:''},function(_0x13dbb2,_0x2a4f95,_0x4d85d4,_0x200dc1){db[_0xee5f('0xf')][_0xee5f('0x10')]({'where':{'email':_[_0xee5f('0x11')](_0x4d85d4[_0xee5f('0x12')],'value'),'role':{'$or':['admin',_0xee5f('0x13'),_0xee5f('0x14')]}}})[_0xee5f('0x15')](function(_0x183806){if(_0x183806){return _0x200dc1(null,_0x183806);}_0x200dc1(_0xee5f('0x16'));})[_0xee5f('0x17')](function(_0x29e96f){_0x200dc1(_0x29e96f);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0253=['get','callback','express','Router','../../components/auth/service','setTokenCookie','login'];(function(_0x2e4055,_0x256d94){var _0x5e633b=function(_0x28d20e){while(--_0x28d20e){_0x2e4055['push'](_0x2e4055['shift']());}};_0x5e633b(++_0x256d94);}(_0x0253,0x1c2));var _0x3025=function(_0x178701,_0x38413a){_0x178701=_0x178701-0x0;var _0x189042=_0x0253[_0x178701];return _0x189042;};'use strict';var express=require(_0x3025('0x0'));var passport=require('passport');var router=express[_0x3025('0x1')]();var controller=require('./authGoogle.controller');var setTokenCookie=require(_0x3025('0x2'))[_0x3025('0x3')];router['get']('/',controller[_0x3025('0x4')]);router[_0x3025('0x5')]('/callback',controller[_0x3025('0x6')],setTokenCookie);module['exports']=router;
\ No newline at end of file
+var _0xa156=['setTokenCookie','get','/callback','callback','exports','express','passport','./authGoogle.controller'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0xa156,0x195));var _0x6a15=function(_0x13cd61,_0x5b619b){_0x13cd61=_0x13cd61-0x0;var _0x115a9b=_0xa156[_0x13cd61];return _0x115a9b;};'use strict';var express=require(_0x6a15('0x0'));var passport=require(_0x6a15('0x1'));var router=express['Router']();var controller=require(_0x6a15('0x2'));var setTokenCookie=require('../../components/auth/service')[_0x6a15('0x3')];router['get']('/',controller['login']);router[_0x6a15('0x4')](_0x6a15('0x5'),controller[_0x6a15('0x6')],setTokenCookie);module[_0x6a15('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdaed=['http','agent','User','count','then','getLicense','agents','catch','find','admin','user','name','This\x20name\x20is\x20not\x20registered','authenticate','MailAccount','email','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','auth','pass','merge','format','\x22%s\x22\x20<%s>','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','local','role','json','online','forgot','body','resetPasswordToken','now','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','http://','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','reset','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','password','resetPasswordExpires','save','Password\x20reset!','use','passport','Strategy','jayson/promise','lodash','../../config/logger','api','randomstring','../../mysqldb','../../components/auth/service','client'];(function(_0x1b8f52,_0x111226){var _0x17c536=function(_0x3cbea5){while(--_0x3cbea5){_0x1b8f52['push'](_0x1b8f52['shift']());}};_0x17c536(++_0x111226);}(_0xdaed,0xcb));var _0xddae=function(_0x4026de,_0x4960ba){_0x4026de=_0x4026de-0x0;var _0x232e75=_0xdaed[_0x4026de];return _0x232e75;};'use strict';var util=require('util');var passport=require(_0xddae('0x0'));var LocalStrategy=require('passport-local')[_0xddae('0x1')];var BPromise=require('bluebird');var jayson=require(_0xddae('0x2'));var _=require(_0xddae('0x3'));var logger=require(_0xddae('0x4'))(_0xddae('0x5'));var rs=require(_0xddae('0x6'));var db=require(_0xddae('0x7'))['db'];var signToken=require(_0xddae('0x8'))['signToken'];var client=jayson[_0xddae('0x9')][_0xddae('0xa')]({'port':0x232b});var getLicense=function(_0x269e82){return new BPromise(function(_0x3c440b,_0x122f20){var _0x3a5255=0x0;_0x269e82['role']!==_0xddae('0xb')&&_0x3c440b(_0x269e82);return db[_0xddae('0xc')][_0xddae('0xd')]({'where':{'role':_0xddae('0xb'),'online':!![],'id':{'$ne':_0x269e82['id']}}})[_0xddae('0xe')](function(_0x2adf67){_0x3a5255=_0x2adf67;return require('../../config/license/util')[_0xddae('0xf')]();})['then'](function(_0x12e854){if(_0x12e854&&_0x12e854[_0xddae('0x10')]&&_0x3a5255>=_0x12e854[_0xddae('0x10')]){return _0x122f20({'message':'Maximum\x20login\x20has\x20been\x20reached'});}return _0x3c440b(_0x269e82);})[_0xddae('0x11')](function(_0x4b8b30){return _0x122f20(_0x4b8b30);});});};function localAuthenticate(_0x96e59a,_0x3d8700,_0x29fb2e,_0x44dcd7){_0x96e59a[_0xddae('0x12')]({'where':{'name':_0x3d8700,'role':{'$or':[_0xddae('0x13'),_0xddae('0x14'),'agent']}}})[_0xddae('0xe')](function(_0x372fa3){if(!_0x372fa3||_0x372fa3&&_0x372fa3[_0xddae('0x15')]!==_0x3d8700){return _0x44dcd7(null,![],{'message':_0xddae('0x16')});}return getLicense(_0x372fa3);})[_0xddae('0xe')](function(_0x2459d4){_0x2459d4[_0xddae('0x17')](_0x29fb2e,function(_0xd4d326,_0xa7a141){if(_0xd4d326){return _0x44dcd7(_0xd4d326);}if(!_0xa7a141){return _0x44dcd7(null,![],{'message':'This\x20password\x20is\x20not\x20correct'});}else{return _0x44dcd7(null,_0x2459d4);}});})[_0xddae('0x11')](function(_0xc2d0e0){_0x44dcd7(_0xc2d0e0);});}function sendServiceMail(_0x4c228e){return db[_0xddae('0x18')][_0xddae('0x12')]({'where':{'service':!![]},'attributes':['id',_0xddae('0x15'),_0xddae('0x19')],'include':[{'model':db[_0xddae('0x1a')],'as':_0xddae('0x1b')}]})[_0xddae('0xe')](function(_0x359188){if(!_0x359188){throw new Error(_0xddae('0x1c'));}var _0x367e73={'tls':{'rejectUnauthorized':![]}};if(_0x359188[_0xddae('0x1b')]['service']){_0x367e73[_0xddae('0x1d')]=_0x359188['Smtp']['service'];}else{_0x367e73[_0xddae('0x1e')]=_0x359188['Smtp'][_0xddae('0x1e')];_0x367e73[_0xddae('0x1f')]=_0x359188[_0xddae('0x1b')][_0xddae('0x1f')];_0x367e73[_0xddae('0x20')]=_0x359188[_0xddae('0x1b')][_0xddae('0x20')];}if(_0x359188[_0xddae('0x1b')][_0xddae('0x21')]){_0x367e73[_0xddae('0x22')]={'user':_0x359188[_0xddae('0x1b')]['user'],'pass':_0x359188[_0xddae('0x1b')][_0xddae('0x23')]};}var _0x2b794b={'account':_0x367e73,'message':_[_0xddae('0x24')]({'from':util[_0xddae('0x25')](_0xddae('0x26'),_0x359188[_0xddae('0x15')],_0x359188[_0xddae('0x19')]||_0x359188[_0xddae('0x1b')][_0xddae('0x14')])},_0x4c228e)};return client[_0xddae('0x27')](_0xddae('0x28'),_0x2b794b);})[_0xddae('0xe')](function(_0x32dcdc){if(_0x32dcdc[_0xddae('0x29')]){throw new Error(util[_0xddae('0x25')](_0xddae('0x2a'),_0x32dcdc['error'][_0xddae('0x2b')]||JSON[_0xddae('0x2c')](_0x32dcdc[_0xddae('0x29')])));}return!![];});}function handleError(_0x455858,_0x4db171,_0x2d91a7){return _0x455858[_0xddae('0x2d')](_0x4db171||0x1f4)[_0xddae('0x2e')]({'message':_0x2d91a7?_0x2d91a7[_0xddae('0x2b')]||_0x2d91a7:''});}exports['login']=function(_0x290224,_0x613717,_0x34552e){passport[_0xddae('0x17')](_0xddae('0x2f'),function(_0x24d5be,_0x52dd6a,_0x260f41){var _0x29b51c=_0x24d5be||_0x260f41;if(_0x29b51c){return handleError(_0x613717,0x191,_0x29b51c);}if(!_0x52dd6a){return handleError(_0x613717,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}var _0x9a97a9=signToken(_0x52dd6a['id'],_0x52dd6a[_0xddae('0x30')]);_0x613717[_0xddae('0x31')]({'id':_0x52dd6a['id'],'token':_0x9a97a9,'statusCall':'','isAlreadyLogged':_0x52dd6a[_0xddae('0x32')]});})(_0x290224,_0x613717,_0x34552e);};exports[_0xddae('0x33')]=function(_0x53f1e2,_0x4a9d17,_0x116262){if(!_0x53f1e2[_0xddae('0x34')][_0xddae('0x19')]){return handleError(_0x4a9d17,0x1f4,{'message':'Email\x20parameter\x20is\x20missing'});}var _0x4ba1c3=rs['generate']();_0x53f1e2[_0xddae('0x34')]['email']=_0x53f1e2['body'][_0xddae('0x19')]['trim']()['toLowerCase']();return db[_0xddae('0xc')][_0xddae('0x12')]({'where':{'email':_0x53f1e2[_0xddae('0x34')][_0xddae('0x19')]}})[_0xddae('0xe')](function(_0x363c45){if(!_0x363c45){throw new Error('This\x20email\x20is\x20not\x20registered.');}_0x363c45[_0xddae('0x35')]=_0x4ba1c3;_0x363c45['resetPasswordExpires']=Date[_0xddae('0x36')]()+0x36ee80;return _0x363c45['save']();})[_0xddae('0xe')](function(){return sendServiceMail({'to':_0x53f1e2[_0xddae('0x34')][_0xddae('0x19')],'subject':_0xddae('0x37'),'text':_0xddae('0x38')+_0xddae('0x39')+_0xddae('0x3a')+_0x53f1e2['headers'][_0xddae('0x1e')]+_0xddae('0x3b')+_0x4ba1c3+'\x0a\x0a'+_0xddae('0x3c')});})[_0xddae('0xe')](function(){_0x4a9d17[_0xddae('0x2d')](0xc8)[_0xddae('0x2e')]({'message':_0xddae('0x3d')});})['catch'](function(_0x2a5c9b){return handleError(_0x4a9d17,0x1f4,_0x2a5c9b);});};exports[_0xddae('0x3e')]=function(_0x531593,_0x2cab93,_0x5c1e97){return db[_0xddae('0xc')][_0xddae('0x12')]({'where':{'resetPasswordToken':_0x531593[_0xddae('0x3f')][_0xddae('0x40')],'resetPasswordExpires':{'$gt':Date[_0xddae('0x36')]()}}})[_0xddae('0xe')](function(_0x1a2248){if(!_0x1a2248){throw new Error(_0xddae('0x41'));}_0x1a2248[_0xddae('0x42')]=_0x531593[_0xddae('0x34')][_0xddae('0x42')];_0x1a2248[_0xddae('0x35')]=null;_0x1a2248[_0xddae('0x43')]=null;return _0x1a2248[_0xddae('0x44')]();})['then'](function(){_0x2cab93['status'](0xc8)[_0xddae('0x2e')]({'message':_0xddae('0x45')});})[_0xddae('0x11')](function(_0x1cc4bf){return handleError(_0x2cab93,0x1f4,_0x1cc4bf);});};passport[_0xddae('0x46')](new LocalStrategy({'usernameField':'name','passwordField':_0xddae('0x42')},function(_0x47004b,_0x475247,_0x17aba3){return localAuthenticate(db[_0xddae('0xc')],_0x47004b,_0x475247,_0x17aba3);}));
\ No newline at end of file
+var _0xd61c=['request','SendMail','error','format','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','login','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','This\x20email\x20is\x20not\x20registered.','resetPasswordToken','now','save','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','http://','headers','/reset/','Reset\x20Email\x20sent!','reset','params','token','password','resetPasswordExpires','Password\x20reset!','use','passport','passport-local','Strategy','bluebird','jayson/promise','lodash','../../config/logger','api','../../mysqldb','../../components/auth/service','signToken','client','http','role','agent','User','then','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','catch','name','This\x20name\x20is\x20not\x20registered','This\x20password\x20is\x20not\x20correct','MailAccount','find','email','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','Smtp','host','port','secure','auth','user','pass','merge','\x22%s\x22\x20<%s>'];(function(_0x486d49,_0x47e05e){var _0x4379c0=function(_0x587602){while(--_0x587602){_0x486d49['push'](_0x486d49['shift']());}};_0x4379c0(++_0x47e05e);}(_0xd61c,0x6b));var _0xcd61=function(_0x4901bf,_0x5ba3bf){_0x4901bf=_0x4901bf-0x0;var _0xfde93f=_0xd61c[_0x4901bf];return _0xfde93f;};'use strict';var util=require('util');var passport=require(_0xcd61('0x0'));var LocalStrategy=require(_0xcd61('0x1'))[_0xcd61('0x2')];var BPromise=require(_0xcd61('0x3'));var jayson=require(_0xcd61('0x4'));var _=require(_0xcd61('0x5'));var logger=require(_0xcd61('0x6'))(_0xcd61('0x7'));var rs=require('randomstring');var db=require(_0xcd61('0x8'))['db'];var signToken=require(_0xcd61('0x9'))[_0xcd61('0xa')];var client=jayson[_0xcd61('0xb')][_0xcd61('0xc')]({'port':0x232b});var getLicense=function(_0x50c46a){return new BPromise(function(_0x338d86,_0x754876){var _0x1f4010=0x0;_0x50c46a[_0xcd61('0xd')]!==_0xcd61('0xe')&&_0x338d86(_0x50c46a);return db[_0xcd61('0xf')]['count']({'where':{'role':_0xcd61('0xe'),'online':!![],'id':{'$ne':_0x50c46a['id']}}})[_0xcd61('0x10')](function(_0x30ebb4){_0x1f4010=_0x30ebb4;return require(_0xcd61('0x11'))[_0xcd61('0x12')]();})[_0xcd61('0x10')](function(_0x404927){if(_0x404927&&_0x404927[_0xcd61('0x13')]&&_0x1f4010>=_0x404927[_0xcd61('0x13')]){return _0x754876({'message':_0xcd61('0x14')});}return _0x338d86(_0x50c46a);})[_0xcd61('0x15')](function(_0xba1ca7){return _0x754876(_0xba1ca7);});});};function localAuthenticate(_0x1c0408,_0x33af1f,_0x33054a,_0x4b6ae8){_0x1c0408['find']({'where':{'name':_0x33af1f,'role':{'$or':['admin','user',_0xcd61('0xe')]}}})['then'](function(_0x2f64a3){if(!_0x2f64a3||_0x2f64a3&&_0x2f64a3[_0xcd61('0x16')]!==_0x33af1f){return _0x4b6ae8(null,![],{'message':_0xcd61('0x17')});}return getLicense(_0x2f64a3);})['then'](function(_0x5479d8){_0x5479d8['authenticate'](_0x33054a,function(_0x49fdac,_0xfd43fb){if(_0x49fdac){return _0x4b6ae8(_0x49fdac);}if(!_0xfd43fb){return _0x4b6ae8(null,![],{'message':_0xcd61('0x18')});}else{return _0x4b6ae8(null,_0x5479d8);}});})[_0xcd61('0x15')](function(_0x113736){_0x4b6ae8(_0x113736);});}function sendServiceMail(_0x224ff4){return db[_0xcd61('0x19')][_0xcd61('0x1a')]({'where':{'service':!![]},'attributes':['id',_0xcd61('0x16'),_0xcd61('0x1b')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]})[_0xcd61('0x10')](function(_0x3b9f11){if(!_0x3b9f11){throw new Error(_0xcd61('0x1c'));}var _0x584f60={'tls':{'rejectUnauthorized':![]}};if(_0x3b9f11['Smtp']['service']){_0x584f60[_0xcd61('0x1d')]=_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x1d')];}else{_0x584f60['host']=_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x1f')];_0x584f60['port']=_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x20')];_0x584f60[_0xcd61('0x21')]=_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x21')];}if(_0x3b9f11[_0xcd61('0x1e')]['authentication']){_0x584f60[_0xcd61('0x22')]={'user':_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x23')],'pass':_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x24')]};}var _0x4247be={'account':_0x584f60,'message':_[_0xcd61('0x25')]({'from':util['format'](_0xcd61('0x26'),_0x3b9f11['name'],_0x3b9f11[_0xcd61('0x1b')]||_0x3b9f11[_0xcd61('0x1e')][_0xcd61('0x23')])},_0x224ff4)};return client[_0xcd61('0x27')](_0xcd61('0x28'),_0x4247be);})[_0xcd61('0x10')](function(_0x2b6b92){if(_0x2b6b92[_0xcd61('0x29')]){throw new Error(util[_0xcd61('0x2a')](_0xcd61('0x2b'),_0x2b6b92['error'][_0xcd61('0x2c')]||JSON[_0xcd61('0x2d')](_0x2b6b92[_0xcd61('0x29')])));}return!![];});}function handleError(_0x17f3ab,_0x2d2b70,_0x305366){return _0x17f3ab[_0xcd61('0x2e')](_0x2d2b70||0x1f4)[_0xcd61('0x2f')]({'message':_0x305366?_0x305366['message']||_0x305366:''});}exports[_0xcd61('0x30')]=function(_0x8c2abb,_0x2a8c2f,_0x557154){passport['authenticate'](_0xcd61('0x31'),function(_0x4ea323,_0x59a89c,_0x3688ee){var _0x1892e3=_0x4ea323||_0x3688ee;if(_0x1892e3){return handleError(_0x2a8c2f,0x191,_0x1892e3);}if(!_0x59a89c){return handleError(_0x2a8c2f,0x194,{'message':_0xcd61('0x32')});}var _0x579a2b=signToken(_0x59a89c['id'],_0x59a89c['role']);_0x2a8c2f['json']({'id':_0x59a89c['id'],'token':_0x579a2b,'statusCall':'','isAlreadyLogged':_0x59a89c[_0xcd61('0x33')]});})(_0x8c2abb,_0x2a8c2f,_0x557154);};exports[_0xcd61('0x34')]=function(_0x351630,_0x1ec6ad,_0x12d755){if(!_0x351630[_0xcd61('0x35')]['email']){return handleError(_0x1ec6ad,0x1f4,{'message':_0xcd61('0x36')});}var _0x1dced9=rs[_0xcd61('0x37')]();_0x351630[_0xcd61('0x35')]['email']=_0x351630[_0xcd61('0x35')]['email']['trim']()['toLowerCase']();return db['User'][_0xcd61('0x1a')]({'where':{'email':_0x351630[_0xcd61('0x35')]['email']}})[_0xcd61('0x10')](function(_0x134ad4){if(!_0x134ad4){throw new Error(_0xcd61('0x38'));}_0x134ad4[_0xcd61('0x39')]=_0x1dced9;_0x134ad4['resetPasswordExpires']=Date[_0xcd61('0x3a')]()+0x36ee80;return _0x134ad4[_0xcd61('0x3b')]();})[_0xcd61('0x10')](function(){return sendServiceMail({'to':_0x351630[_0xcd61('0x35')][_0xcd61('0x1b')],'subject':_0xcd61('0x3c'),'text':_0xcd61('0x3d')+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+_0xcd61('0x3e')+_0x351630[_0xcd61('0x3f')][_0xcd61('0x1f')]+_0xcd61('0x40')+_0x1dced9+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0xcd61('0x10')](function(){_0x1ec6ad[_0xcd61('0x2e')](0xc8)[_0xcd61('0x2f')]({'message':_0xcd61('0x41')});})[_0xcd61('0x15')](function(_0xd99b1f){return handleError(_0x1ec6ad,0x1f4,_0xd99b1f);});};exports[_0xcd61('0x42')]=function(_0x1a577b,_0x3888cd,_0x29a64e){return db[_0xcd61('0xf')][_0xcd61('0x1a')]({'where':{'resetPasswordToken':_0x1a577b[_0xcd61('0x43')][_0xcd61('0x44')],'resetPasswordExpires':{'$gt':Date[_0xcd61('0x3a')]()}}})[_0xcd61('0x10')](function(_0x332b05){if(!_0x332b05){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}_0x332b05[_0xcd61('0x45')]=_0x1a577b['body'][_0xcd61('0x45')];_0x332b05['resetPasswordToken']=null;_0x332b05[_0xcd61('0x46')]=null;return _0x332b05[_0xcd61('0x3b')]();})['then'](function(){_0x3888cd[_0xcd61('0x2e')](0xc8)[_0xcd61('0x2f')]({'message':_0xcd61('0x47')});})[_0xcd61('0x15')](function(_0x45d576){return handleError(_0x3888cd,0x1f4,_0x45d576);});};passport[_0xcd61('0x48')](new LocalStrategy({'usernameField':_0xcd61('0x16'),'passwordField':'password'},function(_0x5da0bc,_0x2065bf,_0x27e666){return localAuthenticate(db[_0xcd61('0xf')],_0x5da0bc,_0x2065bf,_0x27e666);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b1b=['post','login','/forgot','/reset/:token','reset','exports','express','Router','./authLocal.controller'];(function(_0x4f06ae,_0x46ccce){var _0x4d7960=function(_0x3c1a8e){while(--_0x3c1a8e){_0x4f06ae['push'](_0x4f06ae['shift']());}};_0x4d7960(++_0x46ccce);}(_0x4b1b,0x1d1));var _0xb4b1=function(_0x168650,_0x55a89c){_0x168650=_0x168650-0x0;var _0x4a497d=_0x4b1b[_0x168650];return _0x4a497d;};'use strict';var express=require(_0xb4b1('0x0'));var router=express[_0xb4b1('0x1')]();var controller=require(_0xb4b1('0x2'));router[_0xb4b1('0x3')]('/',controller[_0xb4b1('0x4')]);router['post'](_0xb4b1('0x5'),controller['forgot']);router[_0xb4b1('0x3')](_0xb4b1('0x6'),controller[_0xb4b1('0x7')]);module[_0xb4b1('0x8')]=router;
\ No newline at end of file
+var _0x2aea=['reset','exports','express','Router','./authLocal.controller','post','/forgot','forgot','/reset/:token'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x2aea,0x107));var _0xa2ae=function(_0x263f4c,_0x438626){_0x263f4c=_0x263f4c-0x0;var _0x3a78d3=_0x2aea[_0x263f4c];return _0x3a78d3;};'use strict';var express=require(_0xa2ae('0x0'));var router=express[_0xa2ae('0x1')]();var controller=require(_0xa2ae('0x2'));router[_0xa2ae('0x3')]('/',controller['login']);router[_0xa2ae('0x3')](_0xa2ae('0x4'),controller[_0xa2ae('0x5')]);router[_0xa2ae('0x3')](_0xa2ae('0x6'),controller[_0xa2ae('0x7')]);module[_0xa2ae('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f48=['STRING','BOOLEAN'];(function(_0x2cd5f1,_0x58e244){var _0x2761c6=function(_0x2f13c8){while(--_0x2f13c8){_0x2cd5f1['push'](_0x2cd5f1['shift']());}};_0x2761c6(++_0x58e244);}(_0x3f48,0x17c));var _0x83f4=function(_0x273687,_0x5eadcc){_0x273687=_0x273687-0x0;var _0x546f5b=_0x3f48[_0x273687];return _0x546f5b;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x83f4('0x0')],'allowNull':![]},'channel':{'type':Sequelize[_0x83f4('0x0')]},'description':{'type':Sequelize[_0x83f4('0x0')]},'status':{'type':Sequelize[_0x83f4('0x1')],'defaultValue':![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0xa}};
\ No newline at end of file
+var _0xccef=['exports','STRING','BOOLEAN','INTEGER'];(function(_0x30e0b7,_0x41927){var _0x6eca1c=function(_0x1b2ed4){while(--_0x1b2ed4){_0x30e0b7['push'](_0x30e0b7['shift']());}};_0x6eca1c(++_0x41927);}(_0xccef,0x1d4));var _0xfcce=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xccef[_0x502c7d];return _0x30b7ed;};'use strict';var Sequelize=require('sequelize');module[_0xfcce('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'channel':{'type':Sequelize[_0xfcce('0x1')]},'description':{'type':Sequelize[_0xfcce('0x1')]},'status':{'type':Sequelize[_0xfcce('0x2')],'defaultValue':![]},'timeout':{'type':Sequelize[_0xfcce('0x3')],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5496=['then','end','stack','name','send','index','Automation','rawAttributes','model','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','addConditions','Condition','ids','omit','getConditions','findOne','order','nolimit','addActions','Action','getActions','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','save','update','destroy'];(function(_0x379a81,_0x181b66){var _0x2781b5=function(_0x5b1979){while(--_0x5b1979){_0x379a81['push'](_0x379a81['shift']());}};_0x2781b5(++_0x181b66);}(_0x5496,0x175));var _0x6549=function(_0xb27582,_0x41ebb0){_0xb27582=_0xb27582-0x0;var _0x1b52d7=_0x5496[_0xb27582];return _0x1b52d7;};'use strict';var pdf=require(_0x6549('0x0'));var emlformat=require(_0x6549('0x1'));var rimraf=require(_0x6549('0x2'));var zipdir=require(_0x6549('0x3'));var jsonpatch=require(_0x6549('0x4'));var rp=require('request-promise');var moment=require(_0x6549('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6549('0x6'));var util=require(_0x6549('0x7'));var path=require(_0x6549('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x6549('0x9'));var fs=require('fs');var _=require(_0x6549('0xa'));var squel=require('squel');var crypto=require(_0x6549('0xb'));var jsforce=require(_0x6549('0xc'));var deskjs=require(_0x6549('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6549('0xe'));var Papa=require(_0x6549('0xf'));var qs=require(_0x6549('0x10'));var logger=require(_0x6549('0x11'))(_0x6549('0x12'));var utils=require(_0x6549('0x13'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e27d4,_0xac828c){_0xac828c=_0xac828c||0xcc;return function(_0x3c5f9b){if(_0x3c5f9b){return _0x1e27d4[_0x6549('0x14')](_0xac828c);}return _0x1e27d4[_0x6549('0x15')](_0xac828c)['end']();};}function respondWithResult(_0x4dfb06,_0x3f844f){_0x3f844f=_0x3f844f||0xc8;return function(_0x39d78c){if(_0x39d78c){return _0x4dfb06['status'](_0x3f844f)[_0x6549('0x16')](_0x39d78c);}};}function respondWithFilteredResult(_0x150fc8,_0x195d25){return function(_0x12b068){if(_0x12b068){var _0xc0e859=_0x12b068[_0x6549('0x17')],_0x86ae9d=_0x195d25[_0x6549('0x18')],_0x55c112=_0x195d25['offset']+_0x195d25[_0x6549('0x19')],_0x5db86d;if(_0x55c112>=_0xc0e859){_0x55c112=_0xc0e859;_0x5db86d=0xc8;}else{_0x5db86d=0xce;}_0x150fc8[_0x6549('0x15')](_0x5db86d);return _0x150fc8[_0x6549('0x1a')](_0x6549('0x1b'),_0x86ae9d+'-'+_0x55c112+'/'+_0xc0e859)[_0x6549('0x16')](_0x12b068);}return null;};}function patchUpdates(_0x53b12b){return function(_0x5d61a0){try{jsonpatch[_0x6549('0x1c')](_0x5d61a0,_0x53b12b,!![]);}catch(_0x48f037){return BPromise['reject'](_0x48f037);}return _0x5d61a0[_0x6549('0x1d')]();};}function saveUpdates(_0x1e5079,_0x19c4a6){return function(_0xfca192){if(_0xfca192){return _0xfca192[_0x6549('0x1e')](_0x1e5079)['then'](function(_0x228117){return _0x228117;});}return null;};}function removeEntity(_0x4b40c1,_0x125096){return function(_0x72322b){if(_0x72322b){return _0x72322b[_0x6549('0x1f')]()[_0x6549('0x20')](function(){_0x4b40c1[_0x6549('0x15')](0xcc)[_0x6549('0x21')]();});}};}function handleEntityNotFound(_0x427b47,_0x25bc01){return function(_0x2be467){if(!_0x2be467){_0x427b47[_0x6549('0x14')](0x194);}return _0x2be467;};}function handleError(_0x40d3f9,_0x1fbfa4){_0x1fbfa4=_0x1fbfa4||0x1f4;return function(_0x23c0ba){logger['error'](_0x23c0ba[_0x6549('0x22')]);if(_0x23c0ba[_0x6549('0x23')]){delete _0x23c0ba['name'];}_0x40d3f9[_0x6549('0x15')](_0x1fbfa4)[_0x6549('0x24')](_0x23c0ba);};}exports[_0x6549('0x25')]=function(_0x583c7d,_0x31a95){var _0xfb51a1={},_0x14de1f={},_0x2900cd={'count':0x0,'rows':[]};var _0x442862=db[_0x6549('0x26')][_0x6549('0x27')];_0x14de1f[_0x6549('0x28')]=_['keys'](_0x442862);var _0x1794bc={'dateStart':_0x583c7d[_0x6549('0x29')][_0x6549('0x2a')],'dateEnd':_0x583c7d['query'][_0x6549('0x2b')]};delete _0x583c7d['query']['dateStart'];delete _0x583c7d['query'][_0x6549('0x2b')];_0x14de1f[_0x6549('0x29')]=_['keys'](_0x583c7d[_0x6549('0x29')]);_0x14de1f[_0x6549('0x2c')]=_[_0x6549('0x2d')](_0x14de1f[_0x6549('0x28')],_0x14de1f[_0x6549('0x29')]);_0xfb51a1[_0x6549('0x2e')]=_[_0x6549('0x2d')](_0x14de1f['model'],qs[_0x6549('0x2f')](_0x583c7d[_0x6549('0x29')][_0x6549('0x2f')]));_0xfb51a1[_0x6549('0x2e')]=_0xfb51a1[_0x6549('0x2e')][_0x6549('0x30')]?_0xfb51a1['attributes']:_0x14de1f[_0x6549('0x28')];if(!_0x583c7d['query'][_0x6549('0x31')]('nolimit')){_0xfb51a1[_0x6549('0x19')]=qs[_0x6549('0x19')](_0x583c7d[_0x6549('0x29')]['limit']);_0xfb51a1[_0x6549('0x18')]=qs[_0x6549('0x18')](_0x583c7d[_0x6549('0x29')][_0x6549('0x18')]);}_0xfb51a1['order']=qs['sort'](_0x583c7d['query'][_0x6549('0x32')]);_0xfb51a1[_0x6549('0x33')]=qs['filters'](_[_0x6549('0x34')](_0x583c7d[_0x6549('0x29')],_0x14de1f[_0x6549('0x2c')]));if(_0x1794bc[_0x6549('0x2a')]){if(_0x1794bc[_0x6549('0x2b')]){_0x1794bc['dateEnd']=moment(_0x1794bc['dateEnd'])[_0x6549('0x35')](0x1,_0x6549('0x36'));}else{_0x1794bc[_0x6549('0x2b')]=moment(_0x1794bc[_0x6549('0x2a')])[_0x6549('0x35')](0x1,_0x6549('0x36'));}_[_0x6549('0x37')](_0xfb51a1[_0x6549('0x33')],{'createdAt':{'$gte':_0x1794bc[_0x6549('0x2a')],'$lte':_0x1794bc[_0x6549('0x2b')]}});}if(_0x583c7d['query'][_0x6549('0x38')]){_0xfb51a1[_0x6549('0x33')]=_[_0x6549('0x37')](_0xfb51a1[_0x6549('0x33')],{'$or':_[_0x6549('0x39')](_0xfb51a1['attributes'],function(_0x54ee33){var _0x4d63ba={};_0x4d63ba[_0x54ee33]={'$like':'%'+_0x583c7d[_0x6549('0x29')][_0x6549('0x38')]+'%'};return _0x4d63ba;})});}_0xfb51a1=_[_0x6549('0x37')]({},_0xfb51a1,_0x583c7d[_0x6549('0x3a')]);var _0x4f2c2f={'where':_0xfb51a1['where']};return db[_0x6549('0x26')][_0x6549('0x17')](_0x4f2c2f)[_0x6549('0x20')](function(_0x53a5a7){_0x2900cd[_0x6549('0x17')]=_0x53a5a7;if(_0x583c7d['query'][_0x6549('0x3b')]){_0xfb51a1[_0x6549('0x3c')]=[{'all':!![]}];}return db[_0x6549('0x26')][_0x6549('0x3d')](_0xfb51a1);})[_0x6549('0x20')](function(_0xd525a5){_0x2900cd[_0x6549('0x3e')]=_0xd525a5;return _0x2900cd;})['then'](respondWithFilteredResult(_0x31a95,_0xfb51a1))[_0x6549('0x3f')](handleError(_0x31a95,null));};exports[_0x6549('0x40')]=function(_0x12f56c,_0x29ae27){var _0xc5edba={'raw':![],'where':{'id':_0x12f56c[_0x6549('0x41')]['id']}},_0x18d88e={};_0x18d88e[_0x6549('0x28')]=_[_0x6549('0x42')](db[_0x6549('0x26')][_0x6549('0x27')]);_0x18d88e[_0x6549('0x29')]=_[_0x6549('0x42')](_0x12f56c[_0x6549('0x29')]);_0x18d88e[_0x6549('0x2c')]=_[_0x6549('0x2d')](_0x18d88e['model'],_0x18d88e[_0x6549('0x29')]);_0xc5edba[_0x6549('0x2e')]=_[_0x6549('0x2d')](_0x18d88e[_0x6549('0x28')],qs['fields'](_0x12f56c[_0x6549('0x29')]['fields']));_0xc5edba[_0x6549('0x2e')]=_0xc5edba[_0x6549('0x2e')]['length']?_0xc5edba[_0x6549('0x2e')]:_0x18d88e[_0x6549('0x28')];if(_0x12f56c[_0x6549('0x29')][_0x6549('0x3b')]){_0xc5edba[_0x6549('0x3c')]=[{'all':!![]}];}_0xc5edba=_['merge']({},_0xc5edba,_0x12f56c['options']);return db[_0x6549('0x26')][_0x6549('0x43')](_0xc5edba)[_0x6549('0x20')](handleEntityNotFound(_0x29ae27,null))[_0x6549('0x20')](respondWithResult(_0x29ae27,null))[_0x6549('0x3f')](handleError(_0x29ae27,null));};exports['create']=function(_0x22370d,_0x17e691){return db[_0x6549('0x26')][_0x6549('0x44')](_0x22370d[_0x6549('0x45')],{})[_0x6549('0x20')](respondWithResult(_0x17e691,0xc9))[_0x6549('0x3f')](handleError(_0x17e691,null));};exports[_0x6549('0x1e')]=function(_0x5e6abf,_0x32b2d4){if(_0x5e6abf['body']['id']){delete _0x5e6abf[_0x6549('0x45')]['id'];}return db[_0x6549('0x26')][_0x6549('0x43')]({'where':{'id':_0x5e6abf['params']['id']}})[_0x6549('0x20')](handleEntityNotFound(_0x32b2d4,null))[_0x6549('0x20')](saveUpdates(_0x5e6abf[_0x6549('0x45')],null))['then'](respondWithResult(_0x32b2d4,null))[_0x6549('0x3f')](handleError(_0x32b2d4,null));};exports[_0x6549('0x1f')]=function(_0x2644a6,_0x2b225e){return db[_0x6549('0x26')][_0x6549('0x43')]({'where':{'id':_0x2644a6['params']['id']}})[_0x6549('0x20')](handleEntityNotFound(_0x2b225e,null))['then'](removeEntity(_0x2b225e,null))[_0x6549('0x3f')](handleError(_0x2b225e,null));};exports[_0x6549('0x46')]=function(_0x1640aa,_0x218bf9,_0x40c92e){return db[_0x6549('0x47')][_0x6549('0x43')]({'where':{'id':_0x1640aa[_0x6549('0x41')]['id']}})[_0x6549('0x20')](handleEntityNotFound(_0x218bf9,null))[_0x6549('0x20')](function(_0x3b7f1a){if(_0x3b7f1a){return _0x3b7f1a[_0x6549('0x46')](_0x1640aa['body'][_0x6549('0x48')],_[_0x6549('0x49')](_0x1640aa[_0x6549('0x45')],[_0x6549('0x48'),'id'])||{});}})[_0x6549('0x20')](respondWithResult(_0x218bf9,null))[_0x6549('0x3f')](handleError(_0x218bf9,null));};exports[_0x6549('0x4a')]=function(_0x1e4112,_0x4da0dc,_0x199c7e){var _0x46e923={};var _0x2b655d={};var _0x23c5f4;var _0x2b0ba8;return db[_0x6549('0x26')][_0x6549('0x4b')]({'where':{'id':_0x1e4112[_0x6549('0x41')]['id']}})['then'](handleEntityNotFound(_0x4da0dc,null))[_0x6549('0x20')](function(_0x3b89d0){if(_0x3b89d0){_0x23c5f4=_0x3b89d0;_0x2b655d[_0x6549('0x28')]=_[_0x6549('0x42')](db[_0x6549('0x47')][_0x6549('0x27')]);_0x2b655d['query']=_[_0x6549('0x42')](_0x1e4112[_0x6549('0x29')]);_0x2b655d['filters']=_[_0x6549('0x2d')](_0x2b655d[_0x6549('0x28')],_0x2b655d[_0x6549('0x29')]);_0x46e923['attributes']=_[_0x6549('0x2d')](_0x2b655d[_0x6549('0x28')],qs['fields'](_0x1e4112[_0x6549('0x29')]['fields']));_0x46e923[_0x6549('0x2e')]=_0x46e923['attributes'][_0x6549('0x30')]?_0x46e923[_0x6549('0x2e')]:_0x2b655d[_0x6549('0x28')];_0x46e923[_0x6549('0x4c')]=qs[_0x6549('0x32')](_0x1e4112[_0x6549('0x29')][_0x6549('0x32')]);_0x46e923[_0x6549('0x33')]=qs[_0x6549('0x2c')](_[_0x6549('0x34')](_0x1e4112[_0x6549('0x29')],_0x2b655d[_0x6549('0x2c')]));if(_0x1e4112[_0x6549('0x29')][_0x6549('0x38')]){_0x46e923['where']=_[_0x6549('0x37')](_0x46e923[_0x6549('0x33')],{'$or':_['map'](_0x46e923[_0x6549('0x2e')],function(_0x8eb1eb){var _0x146d02={};_0x146d02[_0x8eb1eb]={'$like':'%'+_0x1e4112[_0x6549('0x29')]['filter']+'%'};return _0x146d02;})});}_0x46e923=_[_0x6549('0x37')]({},_0x46e923,_0x1e4112[_0x6549('0x3a')]);return _0x23c5f4[_0x6549('0x4a')](_0x46e923);}})[_0x6549('0x20')](function(_0x53d016){if(_0x53d016){_0x2b0ba8=_0x53d016[_0x6549('0x30')];if(!_0x1e4112['query'][_0x6549('0x31')](_0x6549('0x4d'))){_0x46e923[_0x6549('0x19')]=qs[_0x6549('0x19')](_0x1e4112[_0x6549('0x29')][_0x6549('0x19')]);_0x46e923[_0x6549('0x18')]=qs[_0x6549('0x18')](_0x1e4112[_0x6549('0x29')][_0x6549('0x18')]);}return _0x23c5f4['getConditions'](_0x46e923);}})[_0x6549('0x20')](function(_0x3b326a){if(_0x3b326a){return _0x3b326a?{'count':_0x2b0ba8,'rows':_0x3b326a}:null;}})[_0x6549('0x20')](respondWithResult(_0x4da0dc,null))[_0x6549('0x3f')](handleError(_0x4da0dc,null));};exports[_0x6549('0x4e')]=function(_0xfcebaf,_0x56e144,_0x47f0ed){return db[_0x6549('0x4f')][_0x6549('0x43')]({'where':{'id':_0xfcebaf[_0x6549('0x41')]['id']}})['then'](handleEntityNotFound(_0x56e144,null))[_0x6549('0x20')](function(_0x50d0c3){if(_0x50d0c3){return _0x50d0c3['addActions'](_0xfcebaf[_0x6549('0x45')][_0x6549('0x48')],_[_0x6549('0x49')](_0xfcebaf[_0x6549('0x45')],[_0x6549('0x48'),'id'])||{});}})[_0x6549('0x20')](respondWithResult(_0x56e144,null))[_0x6549('0x3f')](handleError(_0x56e144,null));};exports[_0x6549('0x50')]=function(_0x503935,_0x43c667,_0x51916f){var _0x23e42b={};var _0x44b5f1={};var _0x4ee4d5;var _0x372b67;return db[_0x6549('0x26')][_0x6549('0x4b')]({'where':{'id':_0x503935['params']['id']}})[_0x6549('0x20')](handleEntityNotFound(_0x43c667,null))[_0x6549('0x20')](function(_0x19da5a){if(_0x19da5a){_0x4ee4d5=_0x19da5a;_0x44b5f1[_0x6549('0x28')]=_[_0x6549('0x42')](db[_0x6549('0x4f')]['rawAttributes']);_0x44b5f1[_0x6549('0x29')]=_[_0x6549('0x42')](_0x503935[_0x6549('0x29')]);_0x44b5f1['filters']=_['intersection'](_0x44b5f1['model'],_0x44b5f1[_0x6549('0x29')]);_0x23e42b[_0x6549('0x2e')]=_[_0x6549('0x2d')](_0x44b5f1['model'],qs['fields'](_0x503935[_0x6549('0x29')]['fields']));_0x23e42b[_0x6549('0x2e')]=_0x23e42b[_0x6549('0x2e')][_0x6549('0x30')]?_0x23e42b[_0x6549('0x2e')]:_0x44b5f1[_0x6549('0x28')];_0x23e42b[_0x6549('0x4c')]=qs[_0x6549('0x32')](_0x503935['query'][_0x6549('0x32')]);_0x23e42b[_0x6549('0x33')]=qs[_0x6549('0x2c')](_['pick'](_0x503935[_0x6549('0x29')],_0x44b5f1[_0x6549('0x2c')]));if(_0x503935[_0x6549('0x29')][_0x6549('0x38')]){_0x23e42b[_0x6549('0x33')]=_[_0x6549('0x37')](_0x23e42b[_0x6549('0x33')],{'$or':_['map'](_0x23e42b[_0x6549('0x2e')],function(_0x53483c){var _0x328ff5={};_0x328ff5[_0x53483c]={'$like':'%'+_0x503935[_0x6549('0x29')][_0x6549('0x38')]+'%'};return _0x328ff5;})});}_0x23e42b=_[_0x6549('0x37')]({},_0x23e42b,_0x503935[_0x6549('0x3a')]);return _0x4ee4d5[_0x6549('0x50')](_0x23e42b);}})[_0x6549('0x20')](function(_0x13696e){if(_0x13696e){_0x372b67=_0x13696e['length'];if(!_0x503935[_0x6549('0x29')][_0x6549('0x31')](_0x6549('0x4d'))){_0x23e42b[_0x6549('0x19')]=qs[_0x6549('0x19')](_0x503935[_0x6549('0x29')][_0x6549('0x19')]);_0x23e42b[_0x6549('0x18')]=qs[_0x6549('0x18')](_0x503935[_0x6549('0x29')]['offset']);}return _0x4ee4d5[_0x6549('0x50')](_0x23e42b);}})[_0x6549('0x20')](function(_0x5a8b88){if(_0x5a8b88){return _0x5a8b88?{'count':_0x372b67,'rows':_0x5a8b88}:null;}})[_0x6549('0x20')](respondWithResult(_0x43c667,null))[_0x6549('0x3f')](handleError(_0x43c667,null));};
\ No newline at end of file
+var _0x7e59=['limit','set','Content-Range','reject','save','destroy','then','end','error','name','send','index','Automation','rawAttributes','keys','query','dateStart','dateEnd','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','add','merge','where','filter','map','options','includeAll','include','rows','catch','show','params','create','body','update','find','addConditions','Condition','ids','findOne','getConditions','addActions','Action','omit','getActions','html-pdf','rimraf','zip-dir','fast-json-patch','bluebird','util','sox','ejs','lodash','crypto','to-csv','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset'];(function(_0x535dae,_0x2681a7){var _0x716acb=function(_0x2540cd){while(--_0x2540cd){_0x535dae['push'](_0x535dae['shift']());}};_0x716acb(++_0x2681a7);}(_0x7e59,0x83));var _0x97e5=function(_0x33bc61,_0x2c191d){_0x33bc61=_0x33bc61-0x0;var _0xccb5b1=_0x7e59[_0x33bc61];return _0xccb5b1;};'use strict';var pdf=require(_0x97e5('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x97e5('0x1'));var zipdir=require(_0x97e5('0x2'));var jsonpatch=require(_0x97e5('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x97e5('0x4'));var Mustache=require('mustache');var util=require(_0x97e5('0x5'));var path=require('path');var sox=require(_0x97e5('0x6'));var csv=require('to-csv');var ejs=require(_0x97e5('0x7'));var fs=require('fs');var _=require(_0x97e5('0x8'));var squel=require('squel');var crypto=require(_0x97e5('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x97e5('0xa'));var querystring=require('querystring');var Papa=require(_0x97e5('0xb'));var Redis=require('ioredis');var qs=require(_0x97e5('0xc'));var logger=require(_0x97e5('0xd'))(_0x97e5('0xe'));var utils=require(_0x97e5('0xf'));var config=require(_0x97e5('0x10'));var db=require(_0x97e5('0x11'))['db'];function respondWithStatusCode(_0x33aedd,_0x39c81a){_0x39c81a=_0x39c81a||0xcc;return function(_0x13859c){if(_0x13859c){return _0x33aedd[_0x97e5('0x12')](_0x39c81a);}return _0x33aedd['status'](_0x39c81a)['end']();};}function respondWithResult(_0x520e56,_0x41ac5c){_0x41ac5c=_0x41ac5c||0xc8;return function(_0xd8ddfa){if(_0xd8ddfa){return _0x520e56[_0x97e5('0x13')](_0x41ac5c)[_0x97e5('0x14')](_0xd8ddfa);}};}function respondWithFilteredResult(_0x2c9817,_0x3311d4){return function(_0x294869){if(_0x294869){var _0x35a8c1=_0x294869[_0x97e5('0x15')],_0x449797=_0x3311d4[_0x97e5('0x16')],_0x66bbb1=_0x3311d4[_0x97e5('0x16')]+_0x3311d4[_0x97e5('0x17')],_0x336740;if(_0x66bbb1>=_0x35a8c1){_0x66bbb1=_0x35a8c1;_0x336740=0xc8;}else{_0x336740=0xce;}_0x2c9817[_0x97e5('0x13')](_0x336740);return _0x2c9817[_0x97e5('0x18')](_0x97e5('0x19'),_0x449797+'-'+_0x66bbb1+'/'+_0x35a8c1)[_0x97e5('0x14')](_0x294869);}return null;};}function patchUpdates(_0x337b4f){return function(_0x637e81){try{jsonpatch['apply'](_0x637e81,_0x337b4f,!![]);}catch(_0x15bf96){return BPromise[_0x97e5('0x1a')](_0x15bf96);}return _0x637e81[_0x97e5('0x1b')]();};}function saveUpdates(_0x29a7b4,_0x255228){return function(_0x2c70a4){if(_0x2c70a4){return _0x2c70a4['update'](_0x29a7b4)['then'](function(_0x55e3b4){return _0x55e3b4;});}return null;};}function removeEntity(_0x175e6f,_0x49c51d){return function(_0x6761ad){if(_0x6761ad){return _0x6761ad[_0x97e5('0x1c')]()[_0x97e5('0x1d')](function(){_0x175e6f[_0x97e5('0x13')](0xcc)[_0x97e5('0x1e')]();});}};}function handleEntityNotFound(_0x12026f,_0x21c8f2){return function(_0x426b86){if(!_0x426b86){_0x12026f['sendStatus'](0x194);}return _0x426b86;};}function handleError(_0x2cf6ec,_0x1b74fc){_0x1b74fc=_0x1b74fc||0x1f4;return function(_0x28ce47){logger[_0x97e5('0x1f')](_0x28ce47['stack']);if(_0x28ce47[_0x97e5('0x20')]){delete _0x28ce47[_0x97e5('0x20')];}_0x2cf6ec[_0x97e5('0x13')](_0x1b74fc)[_0x97e5('0x21')](_0x28ce47);};}exports[_0x97e5('0x22')]=function(_0x2bbae2,_0x4e2502){var _0x16b50c={},_0x121810={},_0x1f0e77={'count':0x0,'rows':[]};var _0x2beae9=db[_0x97e5('0x23')][_0x97e5('0x24')];_0x121810['model']=_[_0x97e5('0x25')](_0x2beae9);var _0x5a7b17={'dateStart':_0x2bbae2[_0x97e5('0x26')][_0x97e5('0x27')],'dateEnd':_0x2bbae2['query'][_0x97e5('0x28')]};delete _0x2bbae2[_0x97e5('0x26')][_0x97e5('0x27')];delete _0x2bbae2[_0x97e5('0x26')][_0x97e5('0x28')];_0x121810[_0x97e5('0x26')]=_[_0x97e5('0x25')](_0x2bbae2['query']);_0x121810[_0x97e5('0x29')]=_['intersection'](_0x121810[_0x97e5('0x2a')],_0x121810['query']);_0x16b50c[_0x97e5('0x2b')]=_[_0x97e5('0x2c')](_0x121810[_0x97e5('0x2a')],qs[_0x97e5('0x2d')](_0x2bbae2[_0x97e5('0x26')]['fields']));_0x16b50c[_0x97e5('0x2b')]=_0x16b50c[_0x97e5('0x2b')][_0x97e5('0x2e')]?_0x16b50c[_0x97e5('0x2b')]:_0x121810[_0x97e5('0x2a')];if(!_0x2bbae2[_0x97e5('0x26')][_0x97e5('0x2f')](_0x97e5('0x30'))){_0x16b50c[_0x97e5('0x17')]=qs[_0x97e5('0x17')](_0x2bbae2[_0x97e5('0x26')][_0x97e5('0x17')]);_0x16b50c[_0x97e5('0x16')]=qs[_0x97e5('0x16')](_0x2bbae2['query']['offset']);}_0x16b50c[_0x97e5('0x31')]=qs[_0x97e5('0x32')](_0x2bbae2[_0x97e5('0x26')]['sort']);_0x16b50c['where']=qs[_0x97e5('0x29')](_[_0x97e5('0x33')](_0x2bbae2[_0x97e5('0x26')],_0x121810['filters']));if(_0x5a7b17[_0x97e5('0x27')]){if(_0x5a7b17['dateEnd']){_0x5a7b17[_0x97e5('0x28')]=moment(_0x5a7b17['dateEnd'])[_0x97e5('0x34')](0x1,'day');}else{_0x5a7b17[_0x97e5('0x28')]=moment(_0x5a7b17[_0x97e5('0x27')])[_0x97e5('0x34')](0x1,'day');}_[_0x97e5('0x35')](_0x16b50c[_0x97e5('0x36')],{'createdAt':{'$gte':_0x5a7b17[_0x97e5('0x27')],'$lte':_0x5a7b17[_0x97e5('0x28')]}});}if(_0x2bbae2[_0x97e5('0x26')][_0x97e5('0x37')]){_0x16b50c['where']=_[_0x97e5('0x35')](_0x16b50c[_0x97e5('0x36')],{'$or':_[_0x97e5('0x38')](_0x16b50c[_0x97e5('0x2b')],function(_0x325374){var _0x25cfa4={};_0x25cfa4[_0x325374]={'$like':'%'+_0x2bbae2[_0x97e5('0x26')]['filter']+'%'};return _0x25cfa4;})});}_0x16b50c=_['merge']({},_0x16b50c,_0x2bbae2[_0x97e5('0x39')]);var _0x40850c={'where':_0x16b50c[_0x97e5('0x36')]};return db['Automation']['count'](_0x40850c)[_0x97e5('0x1d')](function(_0x33017a){_0x1f0e77[_0x97e5('0x15')]=_0x33017a;if(_0x2bbae2[_0x97e5('0x26')][_0x97e5('0x3a')]){_0x16b50c[_0x97e5('0x3b')]=[{'all':!![]}];}return db['Automation']['findAll'](_0x16b50c);})[_0x97e5('0x1d')](function(_0x433ced){_0x1f0e77[_0x97e5('0x3c')]=_0x433ced;return _0x1f0e77;})['then'](respondWithFilteredResult(_0x4e2502,_0x16b50c))[_0x97e5('0x3d')](handleError(_0x4e2502,null));};exports[_0x97e5('0x3e')]=function(_0x56d4ad,_0x132475){var _0x3b6983={'raw':![],'where':{'id':_0x56d4ad[_0x97e5('0x3f')]['id']}},_0x3ac5bd={};_0x3ac5bd['model']=_['keys'](db[_0x97e5('0x23')][_0x97e5('0x24')]);_0x3ac5bd['query']=_['keys'](_0x56d4ad[_0x97e5('0x26')]);_0x3ac5bd[_0x97e5('0x29')]=_[_0x97e5('0x2c')](_0x3ac5bd[_0x97e5('0x2a')],_0x3ac5bd[_0x97e5('0x26')]);_0x3b6983['attributes']=_[_0x97e5('0x2c')](_0x3ac5bd['model'],qs[_0x97e5('0x2d')](_0x56d4ad[_0x97e5('0x26')][_0x97e5('0x2d')]));_0x3b6983[_0x97e5('0x2b')]=_0x3b6983['attributes'][_0x97e5('0x2e')]?_0x3b6983[_0x97e5('0x2b')]:_0x3ac5bd[_0x97e5('0x2a')];if(_0x56d4ad['query'][_0x97e5('0x3a')]){_0x3b6983[_0x97e5('0x3b')]=[{'all':!![]}];}_0x3b6983=_[_0x97e5('0x35')]({},_0x3b6983,_0x56d4ad[_0x97e5('0x39')]);return db[_0x97e5('0x23')]['find'](_0x3b6983)[_0x97e5('0x1d')](handleEntityNotFound(_0x132475,null))['then'](respondWithResult(_0x132475,null))[_0x97e5('0x3d')](handleError(_0x132475,null));};exports[_0x97e5('0x40')]=function(_0x209938,_0x2a988e){return db[_0x97e5('0x23')][_0x97e5('0x40')](_0x209938[_0x97e5('0x41')],{})[_0x97e5('0x1d')](respondWithResult(_0x2a988e,0xc9))[_0x97e5('0x3d')](handleError(_0x2a988e,null));};exports[_0x97e5('0x42')]=function(_0x53013f,_0x269a2d){if(_0x53013f[_0x97e5('0x41')]['id']){delete _0x53013f[_0x97e5('0x41')]['id'];}return db[_0x97e5('0x23')][_0x97e5('0x43')]({'where':{'id':_0x53013f['params']['id']}})[_0x97e5('0x1d')](handleEntityNotFound(_0x269a2d,null))[_0x97e5('0x1d')](saveUpdates(_0x53013f['body'],null))[_0x97e5('0x1d')](respondWithResult(_0x269a2d,null))[_0x97e5('0x3d')](handleError(_0x269a2d,null));};exports[_0x97e5('0x1c')]=function(_0x112116,_0x2b6383){return db['Automation'][_0x97e5('0x43')]({'where':{'id':_0x112116[_0x97e5('0x3f')]['id']}})[_0x97e5('0x1d')](handleEntityNotFound(_0x2b6383,null))[_0x97e5('0x1d')](removeEntity(_0x2b6383,null))[_0x97e5('0x3d')](handleError(_0x2b6383,null));};exports[_0x97e5('0x44')]=function(_0x5b2d30,_0x13a084,_0x753cbf){return db[_0x97e5('0x45')][_0x97e5('0x43')]({'where':{'id':_0x5b2d30[_0x97e5('0x3f')]['id']}})[_0x97e5('0x1d')](handleEntityNotFound(_0x13a084,null))['then'](function(_0x4812dd){if(_0x4812dd){return _0x4812dd['addConditions'](_0x5b2d30['body'][_0x97e5('0x46')],_['omit'](_0x5b2d30[_0x97e5('0x41')],[_0x97e5('0x46'),'id'])||{});}})[_0x97e5('0x1d')](respondWithResult(_0x13a084,null))[_0x97e5('0x3d')](handleError(_0x13a084,null));};exports['getConditions']=function(_0x56b035,_0x305113,_0x236ded){var _0x59ce21={};var _0x5c858b={};var _0x1d3e4f;var _0xe48112;return db['Automation'][_0x97e5('0x47')]({'where':{'id':_0x56b035[_0x97e5('0x3f')]['id']}})[_0x97e5('0x1d')](handleEntityNotFound(_0x305113,null))[_0x97e5('0x1d')](function(_0xde909a){if(_0xde909a){_0x1d3e4f=_0xde909a;_0x5c858b['model']=_[_0x97e5('0x25')](db[_0x97e5('0x45')][_0x97e5('0x24')]);_0x5c858b['query']=_[_0x97e5('0x25')](_0x56b035['query']);_0x5c858b['filters']=_[_0x97e5('0x2c')](_0x5c858b[_0x97e5('0x2a')],_0x5c858b['query']);_0x59ce21[_0x97e5('0x2b')]=_['intersection'](_0x5c858b[_0x97e5('0x2a')],qs[_0x97e5('0x2d')](_0x56b035[_0x97e5('0x26')][_0x97e5('0x2d')]));_0x59ce21[_0x97e5('0x2b')]=_0x59ce21[_0x97e5('0x2b')][_0x97e5('0x2e')]?_0x59ce21[_0x97e5('0x2b')]:_0x5c858b[_0x97e5('0x2a')];_0x59ce21['order']=qs[_0x97e5('0x32')](_0x56b035['query'][_0x97e5('0x32')]);_0x59ce21[_0x97e5('0x36')]=qs[_0x97e5('0x29')](_[_0x97e5('0x33')](_0x56b035[_0x97e5('0x26')],_0x5c858b[_0x97e5('0x29')]));if(_0x56b035[_0x97e5('0x26')][_0x97e5('0x37')]){_0x59ce21[_0x97e5('0x36')]=_[_0x97e5('0x35')](_0x59ce21[_0x97e5('0x36')],{'$or':_[_0x97e5('0x38')](_0x59ce21[_0x97e5('0x2b')],function(_0x26e483){var _0x382999={};_0x382999[_0x26e483]={'$like':'%'+_0x56b035[_0x97e5('0x26')][_0x97e5('0x37')]+'%'};return _0x382999;})});}_0x59ce21=_['merge']({},_0x59ce21,_0x56b035[_0x97e5('0x39')]);return _0x1d3e4f['getConditions'](_0x59ce21);}})[_0x97e5('0x1d')](function(_0x52896f){if(_0x52896f){_0xe48112=_0x52896f[_0x97e5('0x2e')];if(!_0x56b035[_0x97e5('0x26')]['hasOwnProperty'](_0x97e5('0x30'))){_0x59ce21[_0x97e5('0x17')]=qs[_0x97e5('0x17')](_0x56b035['query'][_0x97e5('0x17')]);_0x59ce21[_0x97e5('0x16')]=qs[_0x97e5('0x16')](_0x56b035[_0x97e5('0x26')][_0x97e5('0x16')]);}return _0x1d3e4f[_0x97e5('0x48')](_0x59ce21);}})[_0x97e5('0x1d')](function(_0x1561e4){if(_0x1561e4){return _0x1561e4?{'count':_0xe48112,'rows':_0x1561e4}:null;}})[_0x97e5('0x1d')](respondWithResult(_0x305113,null))['catch'](handleError(_0x305113,null));};exports[_0x97e5('0x49')]=function(_0x53cd76,_0x2895da,_0x23d509){return db[_0x97e5('0x4a')][_0x97e5('0x43')]({'where':{'id':_0x53cd76[_0x97e5('0x3f')]['id']}})[_0x97e5('0x1d')](handleEntityNotFound(_0x2895da,null))[_0x97e5('0x1d')](function(_0x574b11){if(_0x574b11){return _0x574b11['addActions'](_0x53cd76[_0x97e5('0x41')][_0x97e5('0x46')],_[_0x97e5('0x4b')](_0x53cd76[_0x97e5('0x41')],['ids','id'])||{});}})[_0x97e5('0x1d')](respondWithResult(_0x2895da,null))[_0x97e5('0x3d')](handleError(_0x2895da,null));};exports[_0x97e5('0x4c')]=function(_0x3b3fde,_0x5137c2,_0x57f9e0){var _0x1508b1={};var _0x1dc597={};var _0x404e85;var _0x248374;return db[_0x97e5('0x23')][_0x97e5('0x47')]({'where':{'id':_0x3b3fde[_0x97e5('0x3f')]['id']}})[_0x97e5('0x1d')](handleEntityNotFound(_0x5137c2,null))[_0x97e5('0x1d')](function(_0x4ceb50){if(_0x4ceb50){_0x404e85=_0x4ceb50;_0x1dc597['model']=_[_0x97e5('0x25')](db[_0x97e5('0x4a')]['rawAttributes']);_0x1dc597['query']=_[_0x97e5('0x25')](_0x3b3fde['query']);_0x1dc597[_0x97e5('0x29')]=_[_0x97e5('0x2c')](_0x1dc597[_0x97e5('0x2a')],_0x1dc597[_0x97e5('0x26')]);_0x1508b1[_0x97e5('0x2b')]=_[_0x97e5('0x2c')](_0x1dc597[_0x97e5('0x2a')],qs['fields'](_0x3b3fde[_0x97e5('0x26')][_0x97e5('0x2d')]));_0x1508b1[_0x97e5('0x2b')]=_0x1508b1['attributes']['length']?_0x1508b1[_0x97e5('0x2b')]:_0x1dc597['model'];_0x1508b1[_0x97e5('0x31')]=qs['sort'](_0x3b3fde[_0x97e5('0x26')][_0x97e5('0x32')]);_0x1508b1[_0x97e5('0x36')]=qs['filters'](_[_0x97e5('0x33')](_0x3b3fde[_0x97e5('0x26')],_0x1dc597['filters']));if(_0x3b3fde[_0x97e5('0x26')][_0x97e5('0x37')]){_0x1508b1[_0x97e5('0x36')]=_['merge'](_0x1508b1['where'],{'$or':_[_0x97e5('0x38')](_0x1508b1[_0x97e5('0x2b')],function(_0x26ed93){var _0x2ce0b3={};_0x2ce0b3[_0x26ed93]={'$like':'%'+_0x3b3fde[_0x97e5('0x26')]['filter']+'%'};return _0x2ce0b3;})});}_0x1508b1=_[_0x97e5('0x35')]({},_0x1508b1,_0x3b3fde[_0x97e5('0x39')]);return _0x404e85[_0x97e5('0x4c')](_0x1508b1);}})['then'](function(_0x183212){if(_0x183212){_0x248374=_0x183212[_0x97e5('0x2e')];if(!_0x3b3fde[_0x97e5('0x26')][_0x97e5('0x2f')]('nolimit')){_0x1508b1[_0x97e5('0x17')]=qs[_0x97e5('0x17')](_0x3b3fde[_0x97e5('0x26')]['limit']);_0x1508b1['offset']=qs[_0x97e5('0x16')](_0x3b3fde[_0x97e5('0x26')]['offset']);}return _0x404e85[_0x97e5('0x4c')](_0x1508b1);}})['then'](function(_0x561ef7){if(_0x561ef7){return _0x561ef7?{'count':_0x248374,'rows':_0x561ef7}:null;}})['then'](respondWithResult(_0x5137c2,null))[_0x97e5('0x3d')](handleError(_0x5137c2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cde=['request-promise','./automation.attributes','exports','Automation','tools_automations','lodash','../../config/logger','api','moment'];(function(_0xf43de7,_0x4d549c){var _0x469742=function(_0x3098e1){while(--_0x3098e1){_0xf43de7['push'](_0xf43de7['shift']());}};_0x469742(++_0x4d549c);}(_0x7cde,0xc2));var _0xe7cd=function(_0x45fd3e,_0x30fea5){_0x45fd3e=_0x45fd3e-0x0;var _0x33eb94=_0x7cde[_0x45fd3e];return _0x33eb94;};'use strict';var _=require(_0xe7cd('0x0'));var util=require('util');var logger=require(_0xe7cd('0x1'))(_0xe7cd('0x2'));var moment=require(_0xe7cd('0x3'));var BPromise=require('bluebird');var rp=require(_0xe7cd('0x4'));var attributes=require(_0xe7cd('0x5'));module[_0xe7cd('0x6')]=function(_0x33d004,_0x10e44d){return _0x33d004['define'](_0xe7cd('0x7'),attributes,{'tableName':_0xe7cd('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfba8=['api','moment','bluebird','request-promise','./automation.attributes','exports','Automation','tools_automations','lodash','util','../../config/logger'];(function(_0x4ca3b4,_0x2450bc){var _0x51ea64=function(_0x1bdfd4){while(--_0x1bdfd4){_0x4ca3b4['push'](_0x4ca3b4['shift']());}};_0x51ea64(++_0x2450bc);}(_0xfba8,0x1d6));var _0x8fba=function(_0x5a8c9d,_0x5e108e){_0x5a8c9d=_0x5a8c9d-0x0;var _0x47d44b=_0xfba8[_0x5a8c9d];return _0x47d44b;};'use strict';var _=require(_0x8fba('0x0'));var util=require(_0x8fba('0x1'));var logger=require(_0x8fba('0x2'))(_0x8fba('0x3'));var moment=require(_0x8fba('0x4'));var BPromise=require(_0x8fba('0x5'));var rp=require(_0x8fba('0x6'));var attributes=require(_0x8fba('0x7'));module[_0x8fba('0x8')]=function(_0x5a6b3c,_0x1cdc4e){return _0x5a6b3c['define'](_0x8fba('0x9'),attributes,{'tableName':_0x8fba('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1467=['Automation,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','then','info','Automation,\x20%s,\x20%s','debug'];(function(_0x3a6201,_0x4afc84){var _0x499029=function(_0x5e6995){while(--_0x5e6995){_0x3a6201['push'](_0x3a6201['shift']());}};_0x499029(++_0x4afc84);}(_0x1467,0x133));var _0x7146=function(_0x51d3ac,_0x2cdcfc){_0x51d3ac=_0x51d3ac-0x0;var _0x29b333=_0x1467[_0x51d3ac];return _0x29b333;};'use strict';var _=require(_0x7146('0x0'));var util=require('util');var moment=require(_0x7146('0x1'));var BPromise=require(_0x7146('0x2'));var rs=require(_0x7146('0x3'));var fs=require('fs');var db=require(_0x7146('0x4'))['db'];var utils=require(_0x7146('0x5'));var logger=require(_0x7146('0x6'))('rpc');var config=require(_0x7146('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x7146('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x16dd1f,_0xe2934,_0x329b56){return new BPromise(function(_0x1afa6c,_0x4ca785){return client['request'](_0x16dd1f,_0x329b56)[_0x7146('0x9')](function(_0x361d0f){logger[_0x7146('0xa')](_0x7146('0xb'),_0xe2934,'request\x20sent');logger[_0x7146('0xc')](_0x7146('0xd'),_0xe2934,_0x7146('0xe'),JSON[_0x7146('0xf')](_0x361d0f));if(_0x361d0f[_0x7146('0x10')]){if(_0x361d0f[_0x7146('0x10')][_0x7146('0x11')]===0x1f4){logger[_0x7146('0x10')](_0x7146('0xb'),_0xe2934,_0x361d0f[_0x7146('0x10')][_0x7146('0x12')]);return _0x4ca785(_0x361d0f[_0x7146('0x10')]['message']);}logger[_0x7146('0x10')](_0x7146('0xb'),_0xe2934,_0x361d0f[_0x7146('0x10')][_0x7146('0x12')]);return _0x1afa6c(_0x361d0f['error'][_0x7146('0x12')]);}else{logger[_0x7146('0xa')](_0x7146('0xb'),_0xe2934,'request\x20sent');_0x1afa6c(_0x361d0f[_0x7146('0x13')][_0x7146('0x12')]);}})['catch'](function(_0x91f932){logger[_0x7146('0x10')]('Automation,\x20%s,\x20%s',_0xe2934,_0x91f932);_0x4ca785(_0x91f932);});});}
\ No newline at end of file
+var _0xfb65=['then','info','request\x20sent','debug','stringify','error','code','Automation,\x20%s,\x20%s','message','result','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request'];(function(_0x4651f3,_0x1cc2dd){var _0x3e8d63=function(_0x474ec4){while(--_0x474ec4){_0x4651f3['push'](_0x4651f3['shift']());}};_0x3e8d63(++_0x1cc2dd);}(_0xfb65,0x82));var _0x5fb6=function(_0x518fda,_0x57a086){_0x518fda=_0x518fda-0x0;var _0x3027cc=_0xfb65[_0x518fda];return _0x3027cc;};'use strict';var _=require('lodash');var util=require(_0x5fb6('0x0'));var moment=require(_0x5fb6('0x1'));var BPromise=require('bluebird');var rs=require(_0x5fb6('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5fb6('0x3'))['db'];var utils=require(_0x5fb6('0x4'));var logger=require(_0x5fb6('0x5'))(_0x5fb6('0x6'));var config=require(_0x5fb6('0x7'));var jayson=require(_0x5fb6('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x238914,_0x1b586b,_0x1f99b8){return new BPromise(function(_0x840390,_0x56d6e1){return client[_0x5fb6('0x9')](_0x238914,_0x1f99b8)[_0x5fb6('0xa')](function(_0x46e061){logger[_0x5fb6('0xb')]('Automation,\x20%s,\x20%s',_0x1b586b,_0x5fb6('0xc'));logger[_0x5fb6('0xd')]('Automation,\x20%s,\x20%s,\x20%s',_0x1b586b,_0x5fb6('0xc'),JSON[_0x5fb6('0xe')](_0x46e061));if(_0x46e061[_0x5fb6('0xf')]){if(_0x46e061[_0x5fb6('0xf')][_0x5fb6('0x10')]===0x1f4){logger['error'](_0x5fb6('0x11'),_0x1b586b,_0x46e061[_0x5fb6('0xf')][_0x5fb6('0x12')]);return _0x56d6e1(_0x46e061[_0x5fb6('0xf')][_0x5fb6('0x12')]);}logger[_0x5fb6('0xf')](_0x5fb6('0x11'),_0x1b586b,_0x46e061[_0x5fb6('0xf')]['message']);return _0x840390(_0x46e061['error'][_0x5fb6('0x12')]);}else{logger[_0x5fb6('0xb')]('Automation,\x20%s,\x20%s',_0x1b586b,_0x5fb6('0xc'));_0x840390(_0x46e061[_0x5fb6('0x13')][_0x5fb6('0x12')]);}})['catch'](function(_0x48f94d){logger[_0x5fb6('0xf')](_0x5fb6('0x11'),_0x1b586b,_0x48f94d);_0x56d6e1(_0x48f94d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x631c=['put','/:id','update','delete','destroy','exports','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','show','getConditions','/:id/actions','getActions','create','post','/:id/conditions','addConditions','addActions'];(function(_0x35df9a,_0x21bfde){var _0x3d2bfd=function(_0x2e6628){while(--_0x2e6628){_0x35df9a['push'](_0x35df9a['shift']());}};_0x3d2bfd(++_0x21bfde);}(_0x631c,0x1b6));var _0xc631=function(_0x57dda0,_0x483f3d){_0x57dda0=_0x57dda0-0x0;var _0x17bf84=_0x631c[_0x57dda0];return _0x17bf84;};'use strict';var multer=require(_0xc631('0x0'));var util=require(_0xc631('0x1'));var path=require('path');var timeout=require(_0xc631('0x2'));var express=require(_0xc631('0x3'));var router=express['Router']();var auth=require(_0xc631('0x4'));var interaction=require(_0xc631('0x5'));var config=require(_0xc631('0x6'));var controller=require('./automation.controller');router[_0xc631('0x7')]('/',auth[_0xc631('0x8')](),controller['index']);router[_0xc631('0x7')]('/:id',auth[_0xc631('0x8')](),controller[_0xc631('0x9')]);router['get']('/:id/conditions',auth['isAuthenticated'](),controller[_0xc631('0xa')]);router['get'](_0xc631('0xb'),auth[_0xc631('0x8')](),controller[_0xc631('0xc')]);router['post']('/',auth[_0xc631('0x8')](),controller[_0xc631('0xd')]);router[_0xc631('0xe')](_0xc631('0xf'),auth[_0xc631('0x8')](),controller[_0xc631('0x10')]);router['post'](_0xc631('0xb'),auth[_0xc631('0x8')](),controller[_0xc631('0x11')]);router[_0xc631('0x12')](_0xc631('0x13'),auth['isAuthenticated'](),controller[_0xc631('0x14')]);router[_0xc631('0x15')]('/:id',auth[_0xc631('0x8')](),controller[_0xc631('0x16')]);module[_0xc631('0x17')]=router;
\ No newline at end of file
+var _0xc7db=['./automation.controller','get','index','/:id','isAuthenticated','show','/:id/conditions','getConditions','getActions','post','create','addConditions','/:id/actions','put','update','destroy','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x20bc66,_0x2aef37){var _0x3c1b3c=function(_0x23c970){while(--_0x23c970){_0x20bc66['push'](_0x20bc66['shift']());}};_0x3c1b3c(++_0x2aef37);}(_0xc7db,0xd0));var _0xbc7d=function(_0x455132,_0x3adc13){_0x455132=_0x455132-0x0;var _0x38001b=_0xc7db[_0x455132];return _0x38001b;};'use strict';var multer=require(_0xbc7d('0x0'));var util=require(_0xbc7d('0x1'));var path=require('path');var timeout=require(_0xbc7d('0x2'));var express=require(_0xbc7d('0x3'));var router=express[_0xbc7d('0x4')]();var auth=require(_0xbc7d('0x5'));var interaction=require(_0xbc7d('0x6'));var config=require(_0xbc7d('0x7'));var controller=require(_0xbc7d('0x8'));router[_0xbc7d('0x9')]('/',auth['isAuthenticated'](),controller[_0xbc7d('0xa')]);router[_0xbc7d('0x9')](_0xbc7d('0xb'),auth[_0xbc7d('0xc')](),controller[_0xbc7d('0xd')]);router['get'](_0xbc7d('0xe'),auth[_0xbc7d('0xc')](),controller[_0xbc7d('0xf')]);router[_0xbc7d('0x9')]('/:id/actions',auth[_0xbc7d('0xc')](),controller[_0xbc7d('0x10')]);router[_0xbc7d('0x11')]('/',auth[_0xbc7d('0xc')](),controller[_0xbc7d('0x12')]);router[_0xbc7d('0x11')](_0xbc7d('0xe'),auth[_0xbc7d('0xc')](),controller[_0xbc7d('0x13')]);router[_0xbc7d('0x11')](_0xbc7d('0x14'),auth[_0xbc7d('0xc')](),controller['addActions']);router[_0xbc7d('0x15')](_0xbc7d('0xb'),auth[_0xbc7d('0xc')](),controller[_0xbc7d('0x16')]);router['delete'](_0xbc7d('0xb'),auth[_0xbc7d('0xc')](),controller[_0xbc7d('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d12=['#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','ENUM','always','never','onlyIfOpen','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','ASC','Cut\x20Digit\x20(min:1,\x20max:15)','sequelize','exports','STRING','name','ivr','BOOLEAN','Active/Disactive\x20Campaign','UNSIGNED','INTEGER','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'];(function(_0x44cc14,_0x3594da){var _0x5a5dea=function(_0x4a091d){while(--_0x4a091d){_0x44cc14['push'](_0x44cc14['shift']());}};_0x5a5dea(++_0x3594da);}(_0x0d12,0x128));var _0x20d1=function(_0x2c648c,_0x2aefdc){_0x2c648c=_0x2c648c-0x0;var _0x3bb537=_0x0d12[_0x2c648c];return _0x3bb537;};'use strict';var Sequelize=require(_0x20d1('0x0'));module[_0x20d1('0x1')]={'name':{'type':Sequelize[_0x20d1('0x2')],'unique':_0x20d1('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize['ENUM'](_0x20d1('0x4')),'allowNull':![],'defaultValue':_0x20d1('0x4')},'description':{'type':Sequelize[_0x20d1('0x2')]},'active':{'type':Sequelize[_0x20d1('0x5')],'defaultValue':0x0,'comment':_0x20d1('0x6')},'limitCalls':{'type':Sequelize['INTEGER'](0x4)[_0x20d1('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':'Max\x20200\x20calls.'},'dialOriginateCallerIdName':{'type':Sequelize[_0x20d1('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x20d1('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x20d1('0x9')},'dialCongestionMaxRetry':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x20d1('0xa')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x20d1('0x8')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x20d1('0xb')},'dialBusyMaxRetry':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize[_0x20d1('0x8')](0x5)[_0x20d1('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x20d1('0xc')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x20d1('0x8')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x20d1('0xd')},'dialGlobalMaxRetry':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x20d1('0xe')},'dialTimezone':{'type':Sequelize[_0x20d1('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x20d1('0x2')],'defaultValue':_0x20d1('0xf')},'dialCheckDuplicateType':{'type':Sequelize[_0x20d1('0x10')](_0x20d1('0x11'),_0x20d1('0x12'),_0x20d1('0x13')),'defaultValue':_0x20d1('0x11')},'dialAMDActive':{'type':Sequelize[_0x20d1('0x5')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0x20d1('0x8')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x20d1('0x14')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0x20d1('0x7')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x20d1('0x15')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x20d1('0x8')](0x9)[_0x20d1('0x7')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x20d1('0x16')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x20d1('0x8')](0x9)[_0x20d1('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x20d1('0x17')},'dialAMDMinWordLength':{'type':Sequelize[_0x20d1('0x8')](0x9)[_0x20d1('0x7')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x20d1('0x18')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x20d1('0x8')](0x9)[_0x20d1('0x7')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x20d1('0x19')},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)[_0x20d1('0x7')],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize['INTEGER'](0x5)[_0x20d1('0x7')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x20d1('0x1a')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x20d1('0x8')](0x9)[_0x20d1('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x20d1('0x1b')},'dialOrderByScheduledAt':{'type':Sequelize[_0x20d1('0x10')](_0x20d1('0x1c'),_0x20d1('0x1d')),'defaultValue':'DESC'},'dialPrefix':{'type':Sequelize[_0x20d1('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize[_0x20d1('0x8')](0x3)[_0x20d1('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x20d1('0x1e')}};
\ No newline at end of file
+var _0xf7ac=['Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Maximum\x20Word\x20Length','ASC','DESC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','sequelize','exports','STRING','ENUM','Active/Disactive\x20Campaign','INTEGER','UNSIGNED','Max\x20200\x20calls.','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','never','onlyIfOpen','BOOLEAN'];(function(_0x5490e0,_0x56768a){var _0x5b79f0=function(_0x23adcb){while(--_0x23adcb){_0x5490e0['push'](_0x5490e0['shift']());}};_0x5b79f0(++_0x56768a);}(_0xf7ac,0x84));var _0xcf7a=function(_0x161299,_0x4991c7){_0x161299=_0x161299-0x0;var _0x293d51=_0xf7ac[_0x161299];return _0x293d51;};'use strict';var Sequelize=require(_0xcf7a('0x0'));module[_0xcf7a('0x1')]={'name':{'type':Sequelize[_0xcf7a('0x2')],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0xcf7a('0x3')]('ivr'),'allowNull':![],'defaultValue':'ivr'},'description':{'type':Sequelize[_0xcf7a('0x2')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0xcf7a('0x4')},'limitCalls':{'type':Sequelize[_0xcf7a('0x5')](0x4)[_0xcf7a('0x6')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0xcf7a('0x7')},'dialOriginateCallerIdName':{'type':Sequelize[_0xcf7a('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xcf7a('0x2')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0xcf7a('0x6')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcf7a('0x8')},'dialCongestionMaxRetry':{'type':Sequelize[_0xcf7a('0x5')](0x3)[_0xcf7a('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcf7a('0x9')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xcf7a('0x5')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcf7a('0xa')},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcf7a('0xb')},'dialBusyRetryFrequency':{'type':Sequelize[_0xcf7a('0x5')](0x5)[_0xcf7a('0x6')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcf7a('0xc')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xcf7a('0x5')](0x3)[_0xcf7a('0x6')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xcf7a('0x5')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0xcf7a('0x5')](0x3)[_0xcf7a('0x6')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xcf7a('0xd')},'dialTimezone':{'type':Sequelize[_0xcf7a('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xcf7a('0x2')],'defaultValue':_0xcf7a('0xe')},'dialCheckDuplicateType':{'type':Sequelize[_0xcf7a('0x3')]('always',_0xcf7a('0xf'),_0xcf7a('0x10')),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize[_0xcf7a('0x11')],'defaultValue':0x0,'comment':_0xcf7a('0x12')},'dialAMDInitialSilence':{'type':Sequelize[_0xcf7a('0x5')](0x9)[_0xcf7a('0x6')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0xcf7a('0x13')},'dialAMDGreeting':{'type':Sequelize[_0xcf7a('0x5')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xcf7a('0x5')](0x9)[_0xcf7a('0x6')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xcf7a('0x14')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xcf7a('0x5')](0x9)[_0xcf7a('0x6')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xcf7a('0x15')},'dialAMDMinWordLength':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0xcf7a('0x16')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xcf7a('0x5')](0x9)[_0xcf7a('0x6')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xcf7a('0x17')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xcf7a('0x5')](0x9)[_0xcf7a('0x6')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xcf7a('0x18')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xcf7a('0x5')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':'#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)'},'dialAMDMaximumWordLength':{'type':Sequelize[_0xcf7a('0x5')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xcf7a('0x19')},'dialOrderByScheduledAt':{'type':Sequelize[_0xcf7a('0x3')]('DESC',_0xcf7a('0x1a')),'defaultValue':_0xcf7a('0x1b')},'dialPrefix':{'type':Sequelize[_0xcf7a('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xcf7a('0x5')](0x3)[_0xcf7a('0x6')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xcf7a('0x1c')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xcf7a('0x1d')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8dd6=['query','dateStart','dateEnd','keys','filters','intersection','model','fields','attributes','length','offset','sort','pick','add','day','merge','where','filter','includeAll','Campaign','findAll','rows','show','params','include','options','find','catch','create','clone','get','omit','createdAt','updatedAt','body','findOne','CmHopper','hasOwnProperty','nolimit','CampaignId','map','getHopperHistories','order','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId','select','field','NOW()','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','CmListId','phone\x20NOT\x20IN\x20(?)','calleridnum','cm_hopper_final','CampaignId\x20=\x20?','onlyIfOpen','ListId','push','sequelize','removeLists','getBlackLists','addBlackLists','cm_hopper_black','all','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','status','count','limit','Content-Range','json','apply','reject','save','update','then','destroy','error','name','index','rawAttributes'];(function(_0xb43856,_0x3edfbd){var _0x527333=function(_0x2a50fd){while(--_0x2a50fd){_0xb43856['push'](_0xb43856['shift']());}};_0x527333(++_0x3edfbd);}(_0x8dd6,0xcd));var _0x68dd=function(_0x338a0c,_0x3ca555){_0x338a0c=_0x338a0c-0x0;var _0x46a4fe=_0x8dd6[_0x338a0c];return _0x46a4fe;};'use strict';var pdf=require(_0x68dd('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x68dd('0x1'));var zipdir=require(_0x68dd('0x2'));var jsonpatch=require(_0x68dd('0x3'));var rp=require(_0x68dd('0x4'));var moment=require(_0x68dd('0x5'));var BPromise=require(_0x68dd('0x6'));var Mustache=require(_0x68dd('0x7'));var util=require(_0x68dd('0x8'));var path=require('path');var sox=require(_0x68dd('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x68dd('0xa'));var squel=require(_0x68dd('0xb'));var crypto=require(_0x68dd('0xc'));var jsforce=require(_0x68dd('0xd'));var deskjs=require(_0x68dd('0xe'));var toCsv=require(_0x68dd('0xf'));var querystring=require(_0x68dd('0x10'));var Papa=require(_0x68dd('0x11'));var qs=require(_0x68dd('0x12'));var logger=require(_0x68dd('0x13'))('api');var utils=require(_0x68dd('0x14'));var config=require(_0x68dd('0x15'));var db=require(_0x68dd('0x16'))['db'];function respondWithStatusCode(_0x4c74d6,_0x2672a2){_0x2672a2=_0x2672a2||0xcc;return function(_0x4d0810){if(_0x4d0810){return _0x4c74d6['sendStatus'](_0x2672a2);}return _0x4c74d6['status'](_0x2672a2)[_0x68dd('0x17')]();};}function respondWithResult(_0x3bafb8,_0x486010){_0x486010=_0x486010||0xc8;return function(_0x30a1c1){if(_0x30a1c1){return _0x3bafb8[_0x68dd('0x18')](_0x486010)['json'](_0x30a1c1);}};}function respondWithFilteredResult(_0x32b313,_0xbf13de){return function(_0x3be952){if(_0x3be952){var _0x61afb4=_0x3be952[_0x68dd('0x19')],_0x46ff29=_0xbf13de['offset'],_0x2250c4=_0xbf13de['offset']+_0xbf13de[_0x68dd('0x1a')],_0x3620df;if(_0x2250c4>=_0x61afb4){_0x2250c4=_0x61afb4;_0x3620df=0xc8;}else{_0x3620df=0xce;}_0x32b313[_0x68dd('0x18')](_0x3620df);return _0x32b313['set'](_0x68dd('0x1b'),_0x46ff29+'-'+_0x2250c4+'/'+_0x61afb4)[_0x68dd('0x1c')](_0x3be952);}return null;};}function patchUpdates(_0xd024e7){return function(_0x43675d){try{jsonpatch[_0x68dd('0x1d')](_0x43675d,_0xd024e7,!![]);}catch(_0x30fbc){return BPromise[_0x68dd('0x1e')](_0x30fbc);}return _0x43675d[_0x68dd('0x1f')]();};}function saveUpdates(_0x556df2,_0x233884){return function(_0x30bfd8){if(_0x30bfd8){return _0x30bfd8[_0x68dd('0x20')](_0x556df2)[_0x68dd('0x21')](function(_0x20aad5){return _0x20aad5;});}return null;};}function removeEntity(_0x4b84a5,_0x33fca3){return function(_0x1f3000){if(_0x1f3000){return _0x1f3000[_0x68dd('0x22')]()[_0x68dd('0x21')](function(){_0x4b84a5[_0x68dd('0x18')](0xcc)[_0x68dd('0x17')]();});}};}function handleEntityNotFound(_0x57f248,_0x29ccc1){return function(_0x5ba656){if(!_0x5ba656){_0x57f248['sendStatus'](0x194);}return _0x5ba656;};}function handleError(_0x27610c,_0x3f0550){_0x3f0550=_0x3f0550||0x1f4;return function(_0x19a83a){logger[_0x68dd('0x23')](_0x19a83a['stack']);if(_0x19a83a[_0x68dd('0x24')]){delete _0x19a83a[_0x68dd('0x24')];}_0x27610c[_0x68dd('0x18')](_0x3f0550)['send'](_0x19a83a);};}exports[_0x68dd('0x25')]=function(_0x49197e,_0x29fe85){var _0x2a589e={},_0x3acc19={},_0x397494={'count':0x0,'rows':[]};var _0x3f9e01=db['Campaign'][_0x68dd('0x26')];_0x3acc19['model']=_['keys'](_0x3f9e01);var _0x5d605d={'dateStart':_0x49197e[_0x68dd('0x27')][_0x68dd('0x28')],'dateEnd':_0x49197e[_0x68dd('0x27')][_0x68dd('0x29')]};delete _0x49197e[_0x68dd('0x27')]['dateStart'];delete _0x49197e[_0x68dd('0x27')][_0x68dd('0x29')];_0x3acc19['query']=_[_0x68dd('0x2a')](_0x49197e[_0x68dd('0x27')]);_0x3acc19[_0x68dd('0x2b')]=_[_0x68dd('0x2c')](_0x3acc19[_0x68dd('0x2d')],_0x3acc19[_0x68dd('0x27')]);_0x2a589e['attributes']=_[_0x68dd('0x2c')](_0x3acc19[_0x68dd('0x2d')],qs[_0x68dd('0x2e')](_0x49197e[_0x68dd('0x27')]['fields']));_0x2a589e[_0x68dd('0x2f')]=_0x2a589e[_0x68dd('0x2f')][_0x68dd('0x30')]?_0x2a589e[_0x68dd('0x2f')]:_0x3acc19[_0x68dd('0x2d')];if(!_0x49197e[_0x68dd('0x27')]['hasOwnProperty']('nolimit')){_0x2a589e[_0x68dd('0x1a')]=qs['limit'](_0x49197e[_0x68dd('0x27')][_0x68dd('0x1a')]);_0x2a589e[_0x68dd('0x31')]=qs[_0x68dd('0x31')](_0x49197e[_0x68dd('0x27')]['offset']);}_0x2a589e['order']=qs[_0x68dd('0x32')](_0x49197e[_0x68dd('0x27')][_0x68dd('0x32')]);_0x2a589e['where']=qs['filters'](_[_0x68dd('0x33')](_0x49197e[_0x68dd('0x27')],_0x3acc19[_0x68dd('0x2b')]));if(_0x5d605d[_0x68dd('0x28')]){if(_0x5d605d[_0x68dd('0x29')]){_0x5d605d[_0x68dd('0x29')]=moment(_0x5d605d['dateEnd'])[_0x68dd('0x34')](0x1,_0x68dd('0x35'));}else{_0x5d605d['dateEnd']=moment(_0x5d605d[_0x68dd('0x28')])[_0x68dd('0x34')](0x1,_0x68dd('0x35'));}_[_0x68dd('0x36')](_0x2a589e[_0x68dd('0x37')],{'createdAt':{'$gte':_0x5d605d[_0x68dd('0x28')],'$lte':_0x5d605d[_0x68dd('0x29')]}});}if(_0x49197e[_0x68dd('0x27')][_0x68dd('0x38')]){_0x2a589e[_0x68dd('0x37')]=_[_0x68dd('0x36')](_0x2a589e[_0x68dd('0x37')],{'$or':_['map'](_0x2a589e['attributes'],function(_0x5c9f6b){var _0x1837f4={};_0x1837f4[_0x5c9f6b]={'$like':'%'+_0x49197e['query'][_0x68dd('0x38')]+'%'};return _0x1837f4;})});}_0x2a589e=_[_0x68dd('0x36')]({},_0x2a589e,_0x49197e['options']);var _0xd49f41={'where':_0x2a589e[_0x68dd('0x37')]};return db['Campaign'][_0x68dd('0x19')](_0xd49f41)[_0x68dd('0x21')](function(_0x1ec405){_0x397494['count']=_0x1ec405;if(_0x49197e[_0x68dd('0x27')][_0x68dd('0x39')]){_0x2a589e['include']=[{'all':!![]}];}return db[_0x68dd('0x3a')][_0x68dd('0x3b')](_0x2a589e);})[_0x68dd('0x21')](function(_0x461c91){_0x397494[_0x68dd('0x3c')]=_0x461c91;return _0x397494;})[_0x68dd('0x21')](respondWithFilteredResult(_0x29fe85,_0x2a589e))['catch'](handleError(_0x29fe85,null));};exports[_0x68dd('0x3d')]=function(_0x16301b,_0x46f548){var _0xb93412={'raw':![],'where':{'id':_0x16301b[_0x68dd('0x3e')]['id']}},_0x4f057e={};_0x4f057e[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db[_0x68dd('0x3a')][_0x68dd('0x26')]);_0x4f057e[_0x68dd('0x27')]=_['keys'](_0x16301b['query']);_0x4f057e[_0x68dd('0x2b')]=_[_0x68dd('0x2c')](_0x4f057e[_0x68dd('0x2d')],_0x4f057e[_0x68dd('0x27')]);_0xb93412[_0x68dd('0x2f')]=_['intersection'](_0x4f057e[_0x68dd('0x2d')],qs[_0x68dd('0x2e')](_0x16301b['query'][_0x68dd('0x2e')]));_0xb93412[_0x68dd('0x2f')]=_0xb93412[_0x68dd('0x2f')]['length']?_0xb93412[_0x68dd('0x2f')]:_0x4f057e[_0x68dd('0x2d')];if(_0x16301b[_0x68dd('0x27')][_0x68dd('0x39')]){_0xb93412[_0x68dd('0x3f')]=[{'all':!![]}];}_0xb93412=_[_0x68dd('0x36')]({},_0xb93412,_0x16301b[_0x68dd('0x40')]);return db[_0x68dd('0x3a')][_0x68dd('0x41')](_0xb93412)[_0x68dd('0x21')](handleEntityNotFound(_0x46f548,null))['then'](respondWithResult(_0x46f548,null))[_0x68dd('0x42')](handleError(_0x46f548,null));};exports[_0x68dd('0x43')]=function(_0x26207a,_0x1f45b3){return db['Campaign'][_0x68dd('0x43')](_0x26207a['body'],{})[_0x68dd('0x21')](respondWithResult(_0x1f45b3,0xc9))['catch'](handleError(_0x1f45b3,null));};exports[_0x68dd('0x44')]=function(_0x5b95fc,_0x487455){var _0x9c1b42={'raw':![],'where':{'id':_0x5b95fc[_0x68dd('0x3e')]['id']}},_0x18d900={};_0x18d900[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db['Campaign']['rawAttributes']);_0x9c1b42[_0x68dd('0x2f')]=_[_0x68dd('0x2c')](_0x18d900[_0x68dd('0x2d')],qs[_0x68dd('0x2e')](_0x5b95fc[_0x68dd('0x27')][_0x68dd('0x2e')]));_0x9c1b42[_0x68dd('0x2f')]=_0x9c1b42[_0x68dd('0x2f')]['length']?_0x9c1b42[_0x68dd('0x2f')]:_0x18d900['model'];if(_0x5b95fc[_0x68dd('0x27')][_0x68dd('0x39')]){_0x9c1b42[_0x68dd('0x3f')]=[{'all':!![]}];}_0x9c1b42=_[_0x68dd('0x36')]({},_0x9c1b42,_0x5b95fc[_0x68dd('0x40')]);return db['Campaign'][_0x68dd('0x41')](_0x9c1b42)['then'](handleEntityNotFound(_0x487455,null))['then'](function(_0x5778d0){if(_0x5778d0){var _0xeaabec=_0x5778d0[_0x68dd('0x45')]({'plain':!![]});_0xeaabec=qs[_0x68dd('0x46')](_0xeaabec,['id',_0x68dd('0x47'),_0x68dd('0x48')]);_0x5b95fc[_0x68dd('0x49')]=_[_0x68dd('0x46')](_0x5b95fc[_0x68dd('0x49')],['id','createdAt',_0x68dd('0x48')]);return db[_0x68dd('0x3a')]['create'](_[_0x68dd('0x36')](_0xeaabec,_0x5b95fc[_0x68dd('0x49')]),{'include':_0x5b95fc[_0x68dd('0x27')][_0x68dd('0x39')]?[{'all':!![]}]:undefined});}})[_0x68dd('0x21')](respondWithResult(_0x487455,0xc9))[_0x68dd('0x42')](handleError(_0x487455,null));};exports[_0x68dd('0x20')]=function(_0x52bb1b,_0x598d17){if(_0x52bb1b[_0x68dd('0x49')]['id']){delete _0x52bb1b['body']['id'];}return db['Campaign']['find']({'where':{'id':_0x52bb1b[_0x68dd('0x3e')]['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x598d17,null))[_0x68dd('0x21')](saveUpdates(_0x52bb1b[_0x68dd('0x49')],null))[_0x68dd('0x21')](respondWithResult(_0x598d17,null))[_0x68dd('0x42')](handleError(_0x598d17,null));};exports[_0x68dd('0x22')]=function(_0x2de713,_0x506ef4){return db[_0x68dd('0x3a')][_0x68dd('0x41')]({'where':{'id':_0x2de713['params']['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x506ef4,null))[_0x68dd('0x21')](removeEntity(_0x506ef4,null))['catch'](handleError(_0x506ef4,null));};exports['getHoppers']=function(_0x2020f4,_0xaeb070,_0x23e00e){var _0x331fdc={'raw':!![],'where':{}};var _0x2d446e={};var _0x7e29b={'count':0x0,'rows':[]};return db[_0x68dd('0x3a')][_0x68dd('0x4a')]({'where':{'id':_0x2020f4[_0x68dd('0x3e')]['id']}})['then'](handleEntityNotFound(_0xaeb070,null))[_0x68dd('0x21')](function(_0x354a25){if(_0x354a25){_0x2d446e[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db[_0x68dd('0x4b')][_0x68dd('0x26')]);_0x2d446e[_0x68dd('0x27')]=_[_0x68dd('0x2a')](_0x2020f4['query']);_0x2d446e['filters']=_[_0x68dd('0x2c')](_0x2d446e[_0x68dd('0x2d')],_0x2d446e[_0x68dd('0x27')]);_0x331fdc[_0x68dd('0x2f')]=_[_0x68dd('0x2c')](_0x2d446e[_0x68dd('0x2d')],qs[_0x68dd('0x2e')](_0x2020f4[_0x68dd('0x27')][_0x68dd('0x2e')]));_0x331fdc['attributes']=_0x331fdc['attributes']['length']?_0x331fdc['attributes']:_0x2d446e[_0x68dd('0x2d')];if(!_0x2020f4[_0x68dd('0x27')][_0x68dd('0x4c')](_0x68dd('0x4d'))){_0x331fdc[_0x68dd('0x1a')]=qs['limit'](_0x2020f4[_0x68dd('0x27')][_0x68dd('0x1a')]);_0x331fdc[_0x68dd('0x31')]=qs['offset'](_0x2020f4[_0x68dd('0x27')][_0x68dd('0x31')]);}_0x331fdc['order']=qs['sort'](_0x2020f4[_0x68dd('0x27')][_0x68dd('0x32')]);_0x331fdc['where']=qs[_0x68dd('0x2b')](_[_0x68dd('0x33')](_0x2020f4[_0x68dd('0x27')],_0x2d446e[_0x68dd('0x2b')]));_0x331fdc[_0x68dd('0x37')][_0x68dd('0x4e')]=_0x354a25['id'];if(_0x2020f4[_0x68dd('0x27')][_0x68dd('0x38')]){_0x331fdc[_0x68dd('0x37')]=_[_0x68dd('0x36')](_0x331fdc[_0x68dd('0x37')],{'$or':_[_0x68dd('0x4f')](_0x331fdc[_0x68dd('0x2f')],function(_0x2931f2){var _0x2cb568={};_0x2cb568[_0x2931f2]={'$like':'%'+_0x2020f4['query'][_0x68dd('0x38')]+'%'};return _0x2cb568;})});}_0x331fdc=_['merge']({},_0x331fdc,_0x2020f4['options']);return db[_0x68dd('0x4b')][_0x68dd('0x19')]({'where':_0x331fdc['where']})['then'](function(_0x3e5e7c){_0x7e29b['count']=_0x3e5e7c;if(_0x2020f4['query'][_0x68dd('0x39')]){_0x331fdc[_0x68dd('0x3f')]=[{'all':!![]}];}return db[_0x68dd('0x4b')][_0x68dd('0x3b')](_0x331fdc);})['then'](function(_0x5d8a34){_0x7e29b[_0x68dd('0x3c')]=_0x5d8a34;return _0x7e29b;});}})[_0x68dd('0x21')](respondWithFilteredResult(_0xaeb070,_0x331fdc))['catch'](handleError(_0xaeb070,null));};exports[_0x68dd('0x50')]=function(_0x2cc636,_0x53e8ae,_0x4b85a0){var _0x542290={'raw':!![],'where':{}};var _0x3da32c={};var _0x217025={'count':0x0,'rows':[]};return db[_0x68dd('0x3a')][_0x68dd('0x4a')]({'where':{'id':_0x2cc636[_0x68dd('0x3e')]['id']}})['then'](handleEntityNotFound(_0x53e8ae,null))['then'](function(_0x3f197d){if(_0x3f197d){_0x3da32c['model']=_['keys'](db['CmHopperHistory']['rawAttributes']);_0x3da32c['query']=_[_0x68dd('0x2a')](_0x2cc636['query']);_0x3da32c['filters']=_[_0x68dd('0x2c')](_0x3da32c[_0x68dd('0x2d')],_0x3da32c[_0x68dd('0x27')]);_0x542290['attributes']=_[_0x68dd('0x2c')](_0x3da32c['model'],qs[_0x68dd('0x2e')](_0x2cc636[_0x68dd('0x27')][_0x68dd('0x2e')]));_0x542290[_0x68dd('0x2f')]=_0x542290[_0x68dd('0x2f')][_0x68dd('0x30')]?_0x542290[_0x68dd('0x2f')]:_0x3da32c['model'];if(!_0x2cc636[_0x68dd('0x27')]['hasOwnProperty'](_0x68dd('0x4d'))){_0x542290[_0x68dd('0x1a')]=qs[_0x68dd('0x1a')](_0x2cc636[_0x68dd('0x27')][_0x68dd('0x1a')]);_0x542290['offset']=qs[_0x68dd('0x31')](_0x2cc636[_0x68dd('0x27')][_0x68dd('0x31')]);}_0x542290[_0x68dd('0x51')]=qs[_0x68dd('0x32')](_0x2cc636[_0x68dd('0x27')][_0x68dd('0x32')]);_0x542290[_0x68dd('0x37')]=qs[_0x68dd('0x2b')](_['pick'](_0x2cc636[_0x68dd('0x27')],_0x3da32c[_0x68dd('0x2b')]));_0x542290[_0x68dd('0x37')][_0x68dd('0x4e')]=_0x3f197d['id'];if(_0x2cc636[_0x68dd('0x27')]['filter']){_0x542290[_0x68dd('0x37')]=_[_0x68dd('0x36')](_0x542290[_0x68dd('0x37')],{'$or':_[_0x68dd('0x4f')](_0x542290[_0x68dd('0x2f')],function(_0x23089c){var _0x2a5b48={};_0x2a5b48[_0x23089c]={'$like':'%'+_0x2cc636['query'][_0x68dd('0x38')]+'%'};return _0x2a5b48;})});}_0x542290=_[_0x68dd('0x36')]({},_0x542290,_0x2cc636['options']);return db['CmHopperHistory'][_0x68dd('0x19')]({'where':_0x542290[_0x68dd('0x37')]})[_0x68dd('0x21')](function(_0x275924){_0x217025[_0x68dd('0x19')]=_0x275924;if(_0x2cc636[_0x68dd('0x27')]['includeAll']){_0x542290['include']=[{'all':!![]}];}return db[_0x68dd('0x52')][_0x68dd('0x3b')](_0x542290);})[_0x68dd('0x21')](function(_0x2f616f){_0x217025[_0x68dd('0x3c')]=_0x2f616f;return _0x217025;});}})['then'](respondWithFilteredResult(_0x53e8ae,_0x542290))[_0x68dd('0x42')](handleError(_0x53e8ae,null));};exports[_0x68dd('0x53')]=function(_0x2c53b3,_0x97673a,_0xf35643){var _0x575dca={'raw':!![],'where':{}};var _0x4f2e2e={};var _0x46bbb3={'count':0x0,'rows':[]};return db[_0x68dd('0x3a')]['findOne']({'where':{'id':_0x2c53b3['params']['id']}})['then'](handleEntityNotFound(_0x97673a,null))[_0x68dd('0x21')](function(_0x4620a6){if(_0x4620a6){_0x4f2e2e[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db[_0x68dd('0x54')][_0x68dd('0x26')]);_0x4f2e2e[_0x68dd('0x27')]=_[_0x68dd('0x2a')](_0x2c53b3[_0x68dd('0x27')]);_0x4f2e2e[_0x68dd('0x2b')]=_['intersection'](_0x4f2e2e[_0x68dd('0x2d')],_0x4f2e2e[_0x68dd('0x27')]);_0x575dca['attributes']=_[_0x68dd('0x2c')](_0x4f2e2e[_0x68dd('0x2d')],qs[_0x68dd('0x2e')](_0x2c53b3[_0x68dd('0x27')][_0x68dd('0x2e')]));_0x575dca[_0x68dd('0x2f')]=_0x575dca[_0x68dd('0x2f')][_0x68dd('0x30')]?_0x575dca[_0x68dd('0x2f')]:_0x4f2e2e[_0x68dd('0x2d')];if(!_0x2c53b3[_0x68dd('0x27')]['hasOwnProperty'](_0x68dd('0x4d'))){_0x575dca['limit']=qs[_0x68dd('0x1a')](_0x2c53b3[_0x68dd('0x27')][_0x68dd('0x1a')]);_0x575dca['offset']=qs['offset'](_0x2c53b3[_0x68dd('0x27')]['offset']);}_0x575dca[_0x68dd('0x51')]=qs[_0x68dd('0x32')](_0x2c53b3[_0x68dd('0x27')]['sort']);_0x575dca[_0x68dd('0x37')]=qs['filters'](_[_0x68dd('0x33')](_0x2c53b3['query'],_0x4f2e2e['filters']));_0x575dca['where'][_0x68dd('0x4e')]=_0x4620a6['id'];if(_0x2c53b3['query'][_0x68dd('0x38')]){_0x575dca['where']=_['merge'](_0x575dca[_0x68dd('0x37')],{'$or':_['map'](_0x575dca[_0x68dd('0x2f')],function(_0x1053a2){var _0x16d0dc={};_0x16d0dc[_0x1053a2]={'$like':'%'+_0x2c53b3['query'][_0x68dd('0x38')]+'%'};return _0x16d0dc;})});}_0x575dca=_['merge']({},_0x575dca,_0x2c53b3[_0x68dd('0x40')]);return db['CmHopperFinal'][_0x68dd('0x19')]({'where':_0x575dca[_0x68dd('0x37')]})[_0x68dd('0x21')](function(_0x5c56aa){_0x46bbb3[_0x68dd('0x19')]=_0x5c56aa;if(_0x2c53b3['query'][_0x68dd('0x39')]){_0x575dca[_0x68dd('0x3f')]=[{'all':!![]}];}return db[_0x68dd('0x54')]['findAll'](_0x575dca);})['then'](function(_0x223884){_0x46bbb3[_0x68dd('0x3c')]=_0x223884;return _0x46bbb3;});}})[_0x68dd('0x21')](respondWithFilteredResult(_0x97673a,_0x575dca))[_0x68dd('0x42')](handleError(_0x97673a,null));};exports[_0x68dd('0x55')]=function(_0x396f43,_0x57bd54,_0x3aa801){var _0x14378c={'raw':!![],'where':{}};var _0x3012a1={};var _0x2006c4={'count':0x0,'rows':[]};return db[_0x68dd('0x3a')][_0x68dd('0x4a')]({'where':{'id':_0x396f43['params']['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x57bd54,null))[_0x68dd('0x21')](function(_0x1a091d){if(_0x1a091d){_0x3012a1[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db[_0x68dd('0x56')]['rawAttributes']);_0x3012a1[_0x68dd('0x27')]=_['keys'](_0x396f43['query']);_0x3012a1['filters']=_[_0x68dd('0x2c')](_0x3012a1['model'],_0x3012a1[_0x68dd('0x27')]);_0x14378c[_0x68dd('0x2f')]=_['intersection'](_0x3012a1['model'],qs[_0x68dd('0x2e')](_0x396f43[_0x68dd('0x27')][_0x68dd('0x2e')]));_0x14378c[_0x68dd('0x2f')]=_0x14378c[_0x68dd('0x2f')][_0x68dd('0x30')]?_0x14378c['attributes']:_0x3012a1[_0x68dd('0x2d')];if(!_0x396f43[_0x68dd('0x27')][_0x68dd('0x4c')](_0x68dd('0x4d'))){_0x14378c['limit']=qs[_0x68dd('0x1a')](_0x396f43[_0x68dd('0x27')]['limit']);_0x14378c[_0x68dd('0x31')]=qs['offset'](_0x396f43[_0x68dd('0x27')][_0x68dd('0x31')]);}_0x14378c[_0x68dd('0x51')]=qs[_0x68dd('0x32')](_0x396f43[_0x68dd('0x27')][_0x68dd('0x32')]);_0x14378c[_0x68dd('0x37')]=qs[_0x68dd('0x2b')](_[_0x68dd('0x33')](_0x396f43[_0x68dd('0x27')],_0x3012a1['filters']));_0x14378c['where']['CampaignId']=_0x1a091d['id'];if(_0x396f43[_0x68dd('0x27')]['filter']){_0x14378c[_0x68dd('0x37')]=_[_0x68dd('0x36')](_0x14378c['where'],{'$or':_[_0x68dd('0x4f')](_0x14378c[_0x68dd('0x2f')],function(_0x304445){var _0x4768c9={};_0x4768c9[_0x304445]={'$like':'%'+_0x396f43[_0x68dd('0x27')][_0x68dd('0x38')]+'%'};return _0x4768c9;})});}_0x14378c=_[_0x68dd('0x36')]({},_0x14378c,_0x396f43[_0x68dd('0x40')]);return db[_0x68dd('0x56')][_0x68dd('0x19')]({'where':_0x14378c[_0x68dd('0x37')]})[_0x68dd('0x21')](function(_0x1ae99a){_0x2006c4[_0x68dd('0x19')]=_0x1ae99a;if(_0x396f43[_0x68dd('0x27')][_0x68dd('0x39')]){_0x14378c[_0x68dd('0x3f')]=[{'all':!![]}];}return db[_0x68dd('0x56')][_0x68dd('0x3b')](_0x14378c);})[_0x68dd('0x21')](function(_0x516f09){_0x2006c4[_0x68dd('0x3c')]=_0x516f09;return _0x2006c4;});}})[_0x68dd('0x21')](respondWithFilteredResult(_0x57bd54,_0x14378c))[_0x68dd('0x42')](handleError(_0x57bd54,null));};exports[_0x68dd('0x57')]=function(_0x328ea8,_0x39f8f3,_0x3a8186){var _0x472b29={};var _0x41486d={};var _0x3a559f;var _0x2f4ad4;return db[_0x68dd('0x3a')][_0x68dd('0x4a')]({'where':{'id':_0x328ea8['params']['id']}})['then'](handleEntityNotFound(_0x39f8f3,null))[_0x68dd('0x21')](function(_0x5c83c6){if(_0x5c83c6){_0x3a559f=_0x5c83c6;_0x41486d[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db[_0x68dd('0x58')][_0x68dd('0x26')]);_0x41486d['query']=_[_0x68dd('0x2a')](_0x328ea8[_0x68dd('0x27')]);_0x41486d[_0x68dd('0x2b')]=_[_0x68dd('0x2c')](_0x41486d[_0x68dd('0x2d')],_0x41486d[_0x68dd('0x27')]);_0x472b29['attributes']=_[_0x68dd('0x2c')](_0x41486d[_0x68dd('0x2d')],qs[_0x68dd('0x2e')](_0x328ea8[_0x68dd('0x27')][_0x68dd('0x2e')]));_0x472b29[_0x68dd('0x2f')]=_0x472b29[_0x68dd('0x2f')][_0x68dd('0x30')]?_0x472b29[_0x68dd('0x2f')]:_0x41486d[_0x68dd('0x2d')];_0x472b29[_0x68dd('0x51')]=qs[_0x68dd('0x32')](_0x328ea8[_0x68dd('0x27')][_0x68dd('0x32')]);_0x472b29[_0x68dd('0x37')]=qs[_0x68dd('0x2b')](_[_0x68dd('0x33')](_0x328ea8['query'],_0x41486d['filters']));if(_0x328ea8[_0x68dd('0x27')][_0x68dd('0x38')]){_0x472b29[_0x68dd('0x37')]=_[_0x68dd('0x36')](_0x472b29[_0x68dd('0x37')],{'$or':_['map'](_0x472b29[_0x68dd('0x2f')],function(_0xb82f73){var _0x4e999e={};_0x4e999e[_0xb82f73]={'$like':'%'+_0x328ea8['query'][_0x68dd('0x38')]+'%'};return _0x4e999e;})});}_0x472b29=_[_0x68dd('0x36')]({},_0x472b29,_0x328ea8['options']);return _0x3a559f[_0x68dd('0x57')](_0x472b29);}})[_0x68dd('0x21')](function(_0x2789a1){if(_0x2789a1){_0x2f4ad4=_0x2789a1[_0x68dd('0x30')];if(!_0x328ea8[_0x68dd('0x27')][_0x68dd('0x4c')](_0x68dd('0x4d'))){_0x472b29['limit']=qs['limit'](_0x328ea8[_0x68dd('0x27')][_0x68dd('0x1a')]);_0x472b29[_0x68dd('0x31')]=qs[_0x68dd('0x31')](_0x328ea8[_0x68dd('0x27')][_0x68dd('0x31')]);}return _0x3a559f['getLists'](_0x472b29);}})[_0x68dd('0x21')](function(_0x33bbac){if(_0x33bbac){return _0x33bbac?{'count':_0x2f4ad4,'rows':_0x33bbac}:null;}})['then'](respondWithResult(_0x39f8f3,null))[_0x68dd('0x42')](handleError(_0x39f8f3,null));};exports[_0x68dd('0x59')]=function(_0x3fcbd1,_0x1915ff,_0x491264){var _0x2f44fc,_0x56a1b9;return db[_0x68dd('0x3a')][_0x68dd('0x41')]({'where':{'id':_0x3fcbd1[_0x68dd('0x3e')]['id']}})['then'](handleEntityNotFound(_0x1915ff,null))[_0x68dd('0x21')](function(_0xac033b){if(_0xac033b){_0x56a1b9=_0xac033b;return _0xac033b['addLists'](_0x3fcbd1[_0x68dd('0x49')][_0x68dd('0x5a')],_[_0x68dd('0x46')](_0x3fcbd1[_0x68dd('0x49')],[_0x68dd('0x5a'),'id'])||{});}return null;})['spread'](function(_0x1fdcfb){var _0x460366;_0x2f44fc=_0x1fdcfb||[];var _0x315385=[];if(_0x1fdcfb){for(var _0x58ea2b=0x0;_0x58ea2b<_0x1fdcfb[_0x68dd('0x30')];_0x58ea2b+=0x1){var _0x14a2af=_0x1fdcfb[_0x58ea2b][_0x68dd('0x45')]({'plain':!![]});_0x56a1b9['dialCheckDuplicateType']=_0x3fcbd1[_0x68dd('0x49')][_0x68dd('0x5b')]?_0x3fcbd1[_0x68dd('0x49')][_0x68dd('0x5b')]:_0x56a1b9['dialCheckDuplicateType'];switch(_0x56a1b9[_0x68dd('0x5b')]){case _0x68dd('0x5c'):_0x460366=squel[_0x68dd('0x5d')]()[_0x68dd('0x5e')](_0x68dd('0x5f'))[_0x68dd('0x60')]([_0x68dd('0x61'),_0x68dd('0x62'),_0x68dd('0x63'),'ListId',_0x68dd('0x4e'),_0x68dd('0x47'),_0x68dd('0x48')],squel[_0x68dd('0x64')]()[_0x68dd('0x65')](_0x68dd('0x61'),_0x68dd('0x61'))[_0x68dd('0x65')](_0x68dd('0x66'),_0x68dd('0x62'))['field']('id',_0x68dd('0x63'))['field'](_0x14a2af['CmListId'][_0x68dd('0x67')](),'ListId')['field'](_0x3fcbd1[_0x68dd('0x3e')]['id'][_0x68dd('0x67')](),_0x68dd('0x4e'))[_0x68dd('0x65')](_0x68dd('0x66'),_0x68dd('0x47'))[_0x68dd('0x65')](_0x68dd('0x66'),'updatedAt')[_0x68dd('0x68')](_0x68dd('0x69'))[_0x68dd('0x37')](_0x68dd('0x6a'))[_0x68dd('0x37')](_0x68dd('0x6b'),_0x14a2af[_0x68dd('0x6c')]['toString']())[_0x68dd('0x37')]('phone\x20IS\x20NOT\x20NULL')[_0x68dd('0x37')](_0x68dd('0x6d'),squel[_0x68dd('0x64')]()[_0x68dd('0x65')](_0x68dd('0x6e'))[_0x68dd('0x68')](_0x68dd('0x6f'))[_0x68dd('0x37')](_0x68dd('0x70'),_0x3fcbd1[_0x68dd('0x3e')]['id'][_0x68dd('0x67')]()))[_0x68dd('0x37')](_0x68dd('0x6d'),squel[_0x68dd('0x64')]()[_0x68dd('0x65')](_0x68dd('0x61'))['from'](_0x68dd('0x5f'))[_0x68dd('0x37')](_0x68dd('0x70'),_0x3fcbd1[_0x68dd('0x3e')]['id'][_0x68dd('0x67')]())))[_0x68dd('0x67')]();break;case _0x68dd('0x71'):_0x460366=squel[_0x68dd('0x5d')]()['into'](_0x68dd('0x5f'))['fromQuery']([_0x68dd('0x61'),'scheduledAt',_0x68dd('0x63'),_0x68dd('0x72'),_0x68dd('0x4e'),_0x68dd('0x47'),_0x68dd('0x48')],squel[_0x68dd('0x64')]()[_0x68dd('0x65')](_0x68dd('0x61'),_0x68dd('0x61'))[_0x68dd('0x65')](_0x68dd('0x66'),_0x68dd('0x62'))['field']('id',_0x68dd('0x63'))[_0x68dd('0x65')](_0x14a2af[_0x68dd('0x6c')]['toString'](),_0x68dd('0x72'))[_0x68dd('0x65')](_0x3fcbd1[_0x68dd('0x3e')]['id'][_0x68dd('0x67')](),_0x68dd('0x4e'))[_0x68dd('0x65')]('NOW()',_0x68dd('0x47'))[_0x68dd('0x65')](_0x68dd('0x66'),'updatedAt')[_0x68dd('0x68')]('cm_contacts')[_0x68dd('0x37')]('deletedAt\x20IS\x20NULL')['where'](_0x68dd('0x6b'),_0x14a2af[_0x68dd('0x6c')][_0x68dd('0x67')]())[_0x68dd('0x37')]('phone\x20IS\x20NOT\x20NULL')[_0x68dd('0x37')](_0x68dd('0x6d'),squel[_0x68dd('0x64')]()[_0x68dd('0x65')](_0x68dd('0x61'))[_0x68dd('0x68')](_0x68dd('0x5f'))[_0x68dd('0x37')](_0x68dd('0x70'),_0x3fcbd1[_0x68dd('0x3e')]['id'][_0x68dd('0x67')]())))[_0x68dd('0x67')]();break;default:_0x460366=squel[_0x68dd('0x5d')]()[_0x68dd('0x5e')](_0x68dd('0x5f'))[_0x68dd('0x60')]([_0x68dd('0x61'),'scheduledAt',_0x68dd('0x63'),_0x68dd('0x72'),_0x68dd('0x4e'),_0x68dd('0x47'),_0x68dd('0x48')],squel[_0x68dd('0x64')]()[_0x68dd('0x65')]('phone',_0x68dd('0x61'))['field']('NOW()',_0x68dd('0x62'))[_0x68dd('0x65')]('id',_0x68dd('0x63'))['field'](_0x14a2af[_0x68dd('0x6c')][_0x68dd('0x67')](),_0x68dd('0x72'))['field'](_0x3fcbd1[_0x68dd('0x3e')]['id'][_0x68dd('0x67')](),_0x68dd('0x4e'))[_0x68dd('0x65')](_0x68dd('0x66'),_0x68dd('0x47'))['field'](_0x68dd('0x66'),_0x68dd('0x48'))['from'](_0x68dd('0x69'))[_0x68dd('0x37')]('deletedAt\x20IS\x20NULL')['where'](_0x68dd('0x6b'),_0x14a2af[_0x68dd('0x6c')][_0x68dd('0x67')]())[_0x68dd('0x37')]('phone\x20IS\x20NOT\x20NULL'))['toString']();}_0x315385[_0x68dd('0x73')](db[_0x68dd('0x74')]['query'](_0x460366));}return BPromise['all'](_0x315385);}})[_0x68dd('0x21')](function(){return _0x2f44fc;})[_0x68dd('0x21')](respondWithResult(_0x1915ff,null))[_0x68dd('0x42')](handleError(_0x1915ff,null));};exports[_0x68dd('0x75')]=function(_0x4a4c70,_0x12485d,_0xee2a4e){var _0xc1c91a;return db['Campaign'][_0x68dd('0x41')]({'where':{'id':_0x4a4c70[_0x68dd('0x3e')]['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x12485d,null))[_0x68dd('0x21')](function(_0x574c54){if(_0x574c54){return _0x574c54[_0x68dd('0x75')](_0x4a4c70[_0x68dd('0x27')][_0x68dd('0x5a')]);}})[_0x68dd('0x21')](function(_0x11d986){if(_0x11d986){_0xc1c91a=_0x11d986;return db[_0x68dd('0x4b')][_0x68dd('0x22')]({'where':{'ListId':_0x4a4c70[_0x68dd('0x27')][_0x68dd('0x5a')],'CampaignId':_0x4a4c70[_0x68dd('0x3e')]['id']}})[_0x68dd('0x21')](function(){return _0xc1c91a;});}})[_0x68dd('0x21')](respondWithStatusCode(_0x12485d,null))[_0x68dd('0x42')](handleError(_0x12485d,null));};exports[_0x68dd('0x76')]=function(_0x372feb,_0x363b4b,_0x53edfc){var _0x74e439={'raw':!![],'where':{}};var _0x4a15fc={};var _0x41ff21={'count':0x0,'rows':[]};return db[_0x68dd('0x3a')][_0x68dd('0x4a')]({'where':{'id':_0x372feb[_0x68dd('0x3e')]['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x363b4b,null))['then'](function(_0x15ca93){if(_0x15ca93){_0x4a15fc[_0x68dd('0x2d')]=_[_0x68dd('0x2a')](db[_0x68dd('0x58')][_0x68dd('0x26')]);_0x4a15fc['query']=_[_0x68dd('0x2a')](_0x372feb[_0x68dd('0x27')]);_0x4a15fc['filters']=_[_0x68dd('0x2c')](_0x4a15fc[_0x68dd('0x2d')],_0x4a15fc['query']);_0x74e439[_0x68dd('0x2f')]=_[_0x68dd('0x2c')](_0x4a15fc[_0x68dd('0x2d')],qs['fields'](_0x372feb[_0x68dd('0x27')]['fields']));_0x74e439['attributes']=_0x74e439[_0x68dd('0x2f')][_0x68dd('0x30')]?_0x74e439[_0x68dd('0x2f')]:_0x4a15fc[_0x68dd('0x2d')];if(!_0x372feb[_0x68dd('0x27')][_0x68dd('0x4c')](_0x68dd('0x4d'))){_0x74e439['limit']=qs[_0x68dd('0x1a')](_0x372feb[_0x68dd('0x27')][_0x68dd('0x1a')]);_0x74e439[_0x68dd('0x31')]=qs[_0x68dd('0x31')](_0x372feb[_0x68dd('0x27')][_0x68dd('0x31')]);}_0x74e439['order']=qs['sort'](_0x372feb[_0x68dd('0x27')][_0x68dd('0x32')]);_0x74e439[_0x68dd('0x37')]=qs[_0x68dd('0x2b')](_[_0x68dd('0x33')](_0x372feb[_0x68dd('0x27')],_0x4a15fc[_0x68dd('0x2b')]));_0x74e439[_0x68dd('0x37')][_0x68dd('0x4e')]=_0x15ca93['id'];if(_0x372feb[_0x68dd('0x27')]['filter']){_0x74e439['where']=_['merge'](_0x74e439[_0x68dd('0x37')],{'$or':_[_0x68dd('0x4f')](_0x74e439[_0x68dd('0x2f')],function(_0x53b439){var _0x8c923={};_0x8c923[_0x53b439]={'$like':'%'+_0x372feb[_0x68dd('0x27')][_0x68dd('0x38')]+'%'};return _0x8c923;})});}_0x74e439=_[_0x68dd('0x36')]({},_0x74e439,_0x372feb[_0x68dd('0x40')]);return db[_0x68dd('0x58')][_0x68dd('0x19')]({'where':_0x74e439['where']})[_0x68dd('0x21')](function(_0x961f2d){_0x41ff21['count']=_0x961f2d;if(_0x372feb[_0x68dd('0x27')][_0x68dd('0x39')]){_0x74e439[_0x68dd('0x3f')]=[{'all':!![]}];}return db[_0x68dd('0x58')][_0x68dd('0x3b')](_0x74e439);})[_0x68dd('0x21')](function(_0x6b087b){_0x41ff21[_0x68dd('0x3c')]=_0x6b087b;return _0x41ff21;});}})[_0x68dd('0x21')](respondWithFilteredResult(_0x363b4b,_0x74e439))['catch'](handleError(_0x363b4b,null));};exports['addBlackLists']=function(_0x2c7e18,_0x45d783,_0x2b2517){var _0x5baece,_0x2f35cd;return db[_0x68dd('0x3a')][_0x68dd('0x41')]({'where':{'id':_0x2c7e18[_0x68dd('0x3e')]['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x45d783,null))[_0x68dd('0x21')](function(_0x55d64b){if(_0x55d64b){_0x2f35cd=_0x55d64b;return _0x55d64b[_0x68dd('0x77')](_0x2c7e18[_0x68dd('0x49')][_0x68dd('0x5a')],_[_0x68dd('0x46')](_0x2c7e18[_0x68dd('0x49')],[_0x68dd('0x5a'),'id'])||{});}return null;})['spread'](function(_0x3c0f13){var _0x1b17b8;_0x5baece=_0x3c0f13||[];var _0x101caf=[];if(_0x3c0f13){for(var _0x346d95=0x0;_0x346d95<_0x3c0f13[_0x68dd('0x30')];_0x346d95+=0x1){var _0x233760=_0x3c0f13[_0x346d95][_0x68dd('0x45')]({'plain':!![]});_0x1b17b8=squel[_0x68dd('0x5d')]()['into'](_0x68dd('0x78'))[_0x68dd('0x60')](['phone',_0x68dd('0x63'),_0x68dd('0x72'),_0x68dd('0x4e'),'createdAt','updatedAt'],squel['select']()[_0x68dd('0x65')]('phone',_0x68dd('0x61'))['field']('id',_0x68dd('0x63'))[_0x68dd('0x65')](_0x233760[_0x68dd('0x6c')][_0x68dd('0x67')](),_0x68dd('0x72'))['field'](_0x2c7e18[_0x68dd('0x3e')]['id']['toString'](),'CampaignId')[_0x68dd('0x65')]('NOW()',_0x68dd('0x47'))[_0x68dd('0x65')]('NOW()',_0x68dd('0x48'))[_0x68dd('0x68')]('cm_contacts')['where'](_0x68dd('0x6a'))[_0x68dd('0x37')](_0x68dd('0x6b'),_0x233760[_0x68dd('0x6c')][_0x68dd('0x67')]())['where']('phone\x20IS\x20NOT\x20NULL'))['toString']();_0x101caf[_0x68dd('0x73')](db[_0x68dd('0x74')][_0x68dd('0x27')](_0x1b17b8));}return BPromise[_0x68dd('0x79')](_0x101caf);}})[_0x68dd('0x21')](function(){return _0x5baece;})[_0x68dd('0x21')](respondWithResult(_0x45d783,null))['catch'](handleError(_0x45d783,null));};exports['removeBlackLists']=function(_0x2d64b7,_0x20d7cf,_0x4797b9){var _0x5e88a5;return db[_0x68dd('0x3a')][_0x68dd('0x41')]({'where':{'id':_0x2d64b7[_0x68dd('0x3e')]['id']}})[_0x68dd('0x21')](handleEntityNotFound(_0x20d7cf,null))[_0x68dd('0x21')](function(_0x2e0637){if(_0x2e0637){return _0x2e0637['removeBlackLists'](_0x2d64b7['query']['ids']);}})[_0x68dd('0x21')](function(_0x49fc5b){if(_0x49fc5b){_0x5e88a5=_0x49fc5b;return db[_0x68dd('0x56')][_0x68dd('0x22')]({'where':{'ListId':_0x2d64b7[_0x68dd('0x27')][_0x68dd('0x5a')],'CampaignId':_0x2d64b7[_0x68dd('0x3e')]['id']}})['then'](function(){return _0x5e88a5;});}})['then'](respondWithStatusCode(_0x20d7cf,null))[_0x68dd('0x42')](handleError(_0x20d7cf,null));};
\ No newline at end of file
+var _0x6209=['lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','destroy','then','error','stack','name','send','index','Campaign','rawAttributes','model','query','dateStart','dateEnd','keys','filters','attributes','intersection','fields','hasOwnProperty','order','sort','pick','add','day','merge','where','map','options','includeAll','findAll','catch','show','params','include','create','clone','get','omit','createdAt','updatedAt','body','update','find','getHoppers','findOne','CmHopper','length','nolimit','CampaignId','filter','getHopperHistories','CmHopperHistory','rows','CmHopperFinal','CmHopperBlack','getLists','CmList','addLists','ids','spread','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','phone','ContactId','ListId','select','field','CmListId','toString','NOW()','from','cm_contacts','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','calleridnum','CampaignId\x20=\x20?','onlyIfOpen','scheduledAt','deletedAt\x20IS\x20NULL','push','sequelize','removeLists','getBlackLists','addBlackLists','cm_hopper_black','all','removeBlackLists','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x6209,0x1e8));var _0x9620=function(_0x311c35,_0x534915){_0x311c35=_0x311c35-0x0;var _0x5cc50c=_0x6209[_0x311c35];return _0x5cc50c;};'use strict';var pdf=require(_0x9620('0x0'));var emlformat=require(_0x9620('0x1'));var rimraf=require(_0x9620('0x2'));var zipdir=require(_0x9620('0x3'));var jsonpatch=require(_0x9620('0x4'));var rp=require(_0x9620('0x5'));var moment=require(_0x9620('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x9620('0x7'));var util=require(_0x9620('0x8'));var path=require(_0x9620('0x9'));var sox=require('sox');var csv=require(_0x9620('0xa'));var ejs=require(_0x9620('0xb'));var fs=require('fs');var _=require(_0x9620('0xc'));var squel=require(_0x9620('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x9620('0xe'));var toCsv=require('to-csv');var querystring=require(_0x9620('0xf'));var Papa=require(_0x9620('0x10'));var Redis=require(_0x9620('0x11'));var qs=require(_0x9620('0x12'));var logger=require(_0x9620('0x13'))(_0x9620('0x14'));var utils=require(_0x9620('0x15'));var config=require('../../config/environment');var db=require(_0x9620('0x16'))['db'];function respondWithStatusCode(_0x52bb7c,_0x3f992f){_0x3f992f=_0x3f992f||0xcc;return function(_0xe4cfb4){if(_0xe4cfb4){return _0x52bb7c[_0x9620('0x17')](_0x3f992f);}return _0x52bb7c[_0x9620('0x18')](_0x3f992f)[_0x9620('0x19')]();};}function respondWithResult(_0x20f7d0,_0x41b678){_0x41b678=_0x41b678||0xc8;return function(_0x463512){if(_0x463512){return _0x20f7d0[_0x9620('0x18')](_0x41b678)[_0x9620('0x1a')](_0x463512);}};}function respondWithFilteredResult(_0x499cee,_0x5aba4e){return function(_0x2b144b){if(_0x2b144b){var _0x301805=_0x2b144b[_0x9620('0x1b')],_0x51f0a7=_0x5aba4e[_0x9620('0x1c')],_0x6d97fa=_0x5aba4e['offset']+_0x5aba4e[_0x9620('0x1d')],_0x309b4c;if(_0x6d97fa>=_0x301805){_0x6d97fa=_0x301805;_0x309b4c=0xc8;}else{_0x309b4c=0xce;}_0x499cee[_0x9620('0x18')](_0x309b4c);return _0x499cee['set'](_0x9620('0x1e'),_0x51f0a7+'-'+_0x6d97fa+'/'+_0x301805)['json'](_0x2b144b);}return null;};}function patchUpdates(_0x10a166){return function(_0x16514e){try{jsonpatch[_0x9620('0x1f')](_0x16514e,_0x10a166,!![]);}catch(_0x3a7a3a){return BPromise[_0x9620('0x20')](_0x3a7a3a);}return _0x16514e['save']();};}function saveUpdates(_0x2eae8a,_0x5738a2){return function(_0x519c1e){if(_0x519c1e){return _0x519c1e['update'](_0x2eae8a)['then'](function(_0x5c44df){return _0x5c44df;});}return null;};}function removeEntity(_0x293ecf,_0x5b62f5){return function(_0x3fc674){if(_0x3fc674){return _0x3fc674[_0x9620('0x21')]()[_0x9620('0x22')](function(){_0x293ecf[_0x9620('0x18')](0xcc)[_0x9620('0x19')]();});}};}function handleEntityNotFound(_0x2d5ff1,_0x1c7b67){return function(_0x4b1957){if(!_0x4b1957){_0x2d5ff1['sendStatus'](0x194);}return _0x4b1957;};}function handleError(_0x1d8665,_0x2bd6af){_0x2bd6af=_0x2bd6af||0x1f4;return function(_0x50386a){logger[_0x9620('0x23')](_0x50386a[_0x9620('0x24')]);if(_0x50386a[_0x9620('0x25')]){delete _0x50386a[_0x9620('0x25')];}_0x1d8665[_0x9620('0x18')](_0x2bd6af)[_0x9620('0x26')](_0x50386a);};}exports[_0x9620('0x27')]=function(_0x1527bd,_0x255cac){var _0x30c0cf={},_0x14727e={},_0x4907ea={'count':0x0,'rows':[]};var _0x6b92c5=db[_0x9620('0x28')][_0x9620('0x29')];_0x14727e[_0x9620('0x2a')]=_['keys'](_0x6b92c5);var _0x4a9e41={'dateStart':_0x1527bd[_0x9620('0x2b')]['dateStart'],'dateEnd':_0x1527bd[_0x9620('0x2b')]['dateEnd']};delete _0x1527bd['query'][_0x9620('0x2c')];delete _0x1527bd[_0x9620('0x2b')][_0x9620('0x2d')];_0x14727e['query']=_[_0x9620('0x2e')](_0x1527bd[_0x9620('0x2b')]);_0x14727e[_0x9620('0x2f')]=_['intersection'](_0x14727e[_0x9620('0x2a')],_0x14727e['query']);_0x30c0cf[_0x9620('0x30')]=_[_0x9620('0x31')](_0x14727e['model'],qs[_0x9620('0x32')](_0x1527bd[_0x9620('0x2b')][_0x9620('0x32')]));_0x30c0cf[_0x9620('0x30')]=_0x30c0cf['attributes']['length']?_0x30c0cf['attributes']:_0x14727e['model'];if(!_0x1527bd[_0x9620('0x2b')][_0x9620('0x33')]('nolimit')){_0x30c0cf[_0x9620('0x1d')]=qs[_0x9620('0x1d')](_0x1527bd['query'][_0x9620('0x1d')]);_0x30c0cf[_0x9620('0x1c')]=qs['offset'](_0x1527bd[_0x9620('0x2b')][_0x9620('0x1c')]);}_0x30c0cf[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x1527bd['query'][_0x9620('0x35')]);_0x30c0cf['where']=qs[_0x9620('0x2f')](_[_0x9620('0x36')](_0x1527bd['query'],_0x14727e['filters']));if(_0x4a9e41[_0x9620('0x2c')]){if(_0x4a9e41[_0x9620('0x2d')]){_0x4a9e41[_0x9620('0x2d')]=moment(_0x4a9e41[_0x9620('0x2d')])[_0x9620('0x37')](0x1,'day');}else{_0x4a9e41[_0x9620('0x2d')]=moment(_0x4a9e41[_0x9620('0x2c')])[_0x9620('0x37')](0x1,_0x9620('0x38'));}_[_0x9620('0x39')](_0x30c0cf['where'],{'createdAt':{'$gte':_0x4a9e41[_0x9620('0x2c')],'$lte':_0x4a9e41[_0x9620('0x2d')]}});}if(_0x1527bd[_0x9620('0x2b')]['filter']){_0x30c0cf[_0x9620('0x3a')]=_[_0x9620('0x39')](_0x30c0cf['where'],{'$or':_[_0x9620('0x3b')](_0x30c0cf['attributes'],function(_0x3494d8){var _0x32fd19={};_0x32fd19[_0x3494d8]={'$like':'%'+_0x1527bd[_0x9620('0x2b')]['filter']+'%'};return _0x32fd19;})});}_0x30c0cf=_[_0x9620('0x39')]({},_0x30c0cf,_0x1527bd[_0x9620('0x3c')]);var _0x36253a={'where':_0x30c0cf['where']};return db[_0x9620('0x28')]['count'](_0x36253a)['then'](function(_0x59c801){_0x4907ea[_0x9620('0x1b')]=_0x59c801;if(_0x1527bd['query'][_0x9620('0x3d')]){_0x30c0cf['include']=[{'all':!![]}];}return db['Campaign'][_0x9620('0x3e')](_0x30c0cf);})[_0x9620('0x22')](function(_0x25693b){_0x4907ea['rows']=_0x25693b;return _0x4907ea;})[_0x9620('0x22')](respondWithFilteredResult(_0x255cac,_0x30c0cf))[_0x9620('0x3f')](handleError(_0x255cac,null));};exports[_0x9620('0x40')]=function(_0x1af6e8,_0x14a6a2){var _0x3a18bd={'raw':![],'where':{'id':_0x1af6e8[_0x9620('0x41')]['id']}},_0x64e6ae={};_0x64e6ae[_0x9620('0x2a')]=_[_0x9620('0x2e')](db['Campaign'][_0x9620('0x29')]);_0x64e6ae[_0x9620('0x2b')]=_[_0x9620('0x2e')](_0x1af6e8[_0x9620('0x2b')]);_0x64e6ae[_0x9620('0x2f')]=_[_0x9620('0x31')](_0x64e6ae[_0x9620('0x2a')],_0x64e6ae['query']);_0x3a18bd[_0x9620('0x30')]=_['intersection'](_0x64e6ae[_0x9620('0x2a')],qs[_0x9620('0x32')](_0x1af6e8[_0x9620('0x2b')][_0x9620('0x32')]));_0x3a18bd['attributes']=_0x3a18bd['attributes']['length']?_0x3a18bd[_0x9620('0x30')]:_0x64e6ae[_0x9620('0x2a')];if(_0x1af6e8['query'][_0x9620('0x3d')]){_0x3a18bd[_0x9620('0x42')]=[{'all':!![]}];}_0x3a18bd=_['merge']({},_0x3a18bd,_0x1af6e8[_0x9620('0x3c')]);return db[_0x9620('0x28')]['find'](_0x3a18bd)[_0x9620('0x22')](handleEntityNotFound(_0x14a6a2,null))[_0x9620('0x22')](respondWithResult(_0x14a6a2,null))['catch'](handleError(_0x14a6a2,null));};exports[_0x9620('0x43')]=function(_0x574c14,_0xcd0d8e){return db['Campaign'][_0x9620('0x43')](_0x574c14['body'],{})[_0x9620('0x22')](respondWithResult(_0xcd0d8e,0xc9))[_0x9620('0x3f')](handleError(_0xcd0d8e,null));};exports[_0x9620('0x44')]=function(_0x55fb00,_0x17e52d){var _0x1d35a0={'raw':![],'where':{'id':_0x55fb00[_0x9620('0x41')]['id']}},_0x3086c4={};_0x3086c4[_0x9620('0x2a')]=_[_0x9620('0x2e')](db[_0x9620('0x28')][_0x9620('0x29')]);_0x1d35a0[_0x9620('0x30')]=_[_0x9620('0x31')](_0x3086c4[_0x9620('0x2a')],qs[_0x9620('0x32')](_0x55fb00[_0x9620('0x2b')]['fields']));_0x1d35a0[_0x9620('0x30')]=_0x1d35a0[_0x9620('0x30')]['length']?_0x1d35a0[_0x9620('0x30')]:_0x3086c4[_0x9620('0x2a')];if(_0x55fb00[_0x9620('0x2b')][_0x9620('0x3d')]){_0x1d35a0[_0x9620('0x42')]=[{'all':!![]}];}_0x1d35a0=_['merge']({},_0x1d35a0,_0x55fb00[_0x9620('0x3c')]);return db[_0x9620('0x28')]['find'](_0x1d35a0)[_0x9620('0x22')](handleEntityNotFound(_0x17e52d,null))[_0x9620('0x22')](function(_0x1bc44f){if(_0x1bc44f){var _0xa57524=_0x1bc44f[_0x9620('0x45')]({'plain':!![]});_0xa57524=qs[_0x9620('0x46')](_0xa57524,['id',_0x9620('0x47'),_0x9620('0x48')]);_0x55fb00['body']=_[_0x9620('0x46')](_0x55fb00[_0x9620('0x49')],['id','createdAt',_0x9620('0x48')]);return db[_0x9620('0x28')][_0x9620('0x43')](_['merge'](_0xa57524,_0x55fb00[_0x9620('0x49')]),{'include':_0x55fb00[_0x9620('0x2b')][_0x9620('0x3d')]?[{'all':!![]}]:undefined});}})[_0x9620('0x22')](respondWithResult(_0x17e52d,0xc9))['catch'](handleError(_0x17e52d,null));};exports[_0x9620('0x4a')]=function(_0x4d68ea,_0x42ac56){if(_0x4d68ea[_0x9620('0x49')]['id']){delete _0x4d68ea['body']['id'];}return db[_0x9620('0x28')]['find']({'where':{'id':_0x4d68ea[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x42ac56,null))[_0x9620('0x22')](saveUpdates(_0x4d68ea[_0x9620('0x49')],null))['then'](respondWithResult(_0x42ac56,null))[_0x9620('0x3f')](handleError(_0x42ac56,null));};exports[_0x9620('0x21')]=function(_0x1f9085,_0x5a5e3c){return db[_0x9620('0x28')][_0x9620('0x4b')]({'where':{'id':_0x1f9085['params']['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x5a5e3c,null))['then'](removeEntity(_0x5a5e3c,null))['catch'](handleError(_0x5a5e3c,null));};exports[_0x9620('0x4c')]=function(_0x549966,_0x4f0715,_0x398deb){var _0x4884a1={'raw':!![],'where':{}};var _0x23779d={};var _0x374e4a={'count':0x0,'rows':[]};return db[_0x9620('0x28')][_0x9620('0x4d')]({'where':{'id':_0x549966[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x4f0715,null))[_0x9620('0x22')](function(_0x4bc03b){if(_0x4bc03b){_0x23779d['model']=_[_0x9620('0x2e')](db[_0x9620('0x4e')][_0x9620('0x29')]);_0x23779d[_0x9620('0x2b')]=_[_0x9620('0x2e')](_0x549966[_0x9620('0x2b')]);_0x23779d[_0x9620('0x2f')]=_[_0x9620('0x31')](_0x23779d['model'],_0x23779d['query']);_0x4884a1[_0x9620('0x30')]=_[_0x9620('0x31')](_0x23779d['model'],qs[_0x9620('0x32')](_0x549966['query']['fields']));_0x4884a1['attributes']=_0x4884a1['attributes'][_0x9620('0x4f')]?_0x4884a1[_0x9620('0x30')]:_0x23779d[_0x9620('0x2a')];if(!_0x549966['query']['hasOwnProperty'](_0x9620('0x50'))){_0x4884a1[_0x9620('0x1d')]=qs[_0x9620('0x1d')](_0x549966[_0x9620('0x2b')]['limit']);_0x4884a1[_0x9620('0x1c')]=qs[_0x9620('0x1c')](_0x549966[_0x9620('0x2b')]['offset']);}_0x4884a1[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x549966[_0x9620('0x2b')]['sort']);_0x4884a1[_0x9620('0x3a')]=qs[_0x9620('0x2f')](_[_0x9620('0x36')](_0x549966[_0x9620('0x2b')],_0x23779d['filters']));_0x4884a1[_0x9620('0x3a')][_0x9620('0x51')]=_0x4bc03b['id'];if(_0x549966['query']['filter']){_0x4884a1['where']=_[_0x9620('0x39')](_0x4884a1[_0x9620('0x3a')],{'$or':_[_0x9620('0x3b')](_0x4884a1[_0x9620('0x30')],function(_0x36aaaa){var _0x426028={};_0x426028[_0x36aaaa]={'$like':'%'+_0x549966[_0x9620('0x2b')][_0x9620('0x52')]+'%'};return _0x426028;})});}_0x4884a1=_['merge']({},_0x4884a1,_0x549966[_0x9620('0x3c')]);return db[_0x9620('0x4e')]['count']({'where':_0x4884a1[_0x9620('0x3a')]})[_0x9620('0x22')](function(_0xcbfbb2){_0x374e4a[_0x9620('0x1b')]=_0xcbfbb2;if(_0x549966[_0x9620('0x2b')][_0x9620('0x3d')]){_0x4884a1[_0x9620('0x42')]=[{'all':!![]}];}return db[_0x9620('0x4e')][_0x9620('0x3e')](_0x4884a1);})[_0x9620('0x22')](function(_0x2adecf){_0x374e4a['rows']=_0x2adecf;return _0x374e4a;});}})[_0x9620('0x22')](respondWithFilteredResult(_0x4f0715,_0x4884a1))[_0x9620('0x3f')](handleError(_0x4f0715,null));};exports[_0x9620('0x53')]=function(_0x5dbdb1,_0x560711,_0x51dcc0){var _0x3f16c8={'raw':!![],'where':{}};var _0x4d351a={};var _0x2097fc={'count':0x0,'rows':[]};return db[_0x9620('0x28')]['findOne']({'where':{'id':_0x5dbdb1[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x560711,null))[_0x9620('0x22')](function(_0x1ebbf6){if(_0x1ebbf6){_0x4d351a[_0x9620('0x2a')]=_['keys'](db[_0x9620('0x54')][_0x9620('0x29')]);_0x4d351a[_0x9620('0x2b')]=_[_0x9620('0x2e')](_0x5dbdb1[_0x9620('0x2b')]);_0x4d351a[_0x9620('0x2f')]=_[_0x9620('0x31')](_0x4d351a['model'],_0x4d351a[_0x9620('0x2b')]);_0x3f16c8[_0x9620('0x30')]=_['intersection'](_0x4d351a[_0x9620('0x2a')],qs[_0x9620('0x32')](_0x5dbdb1[_0x9620('0x2b')][_0x9620('0x32')]));_0x3f16c8[_0x9620('0x30')]=_0x3f16c8[_0x9620('0x30')]['length']?_0x3f16c8[_0x9620('0x30')]:_0x4d351a[_0x9620('0x2a')];if(!_0x5dbdb1[_0x9620('0x2b')]['hasOwnProperty'](_0x9620('0x50'))){_0x3f16c8[_0x9620('0x1d')]=qs[_0x9620('0x1d')](_0x5dbdb1[_0x9620('0x2b')][_0x9620('0x1d')]);_0x3f16c8[_0x9620('0x1c')]=qs[_0x9620('0x1c')](_0x5dbdb1[_0x9620('0x2b')][_0x9620('0x1c')]);}_0x3f16c8[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x5dbdb1[_0x9620('0x2b')]['sort']);_0x3f16c8[_0x9620('0x3a')]=qs[_0x9620('0x2f')](_[_0x9620('0x36')](_0x5dbdb1[_0x9620('0x2b')],_0x4d351a['filters']));_0x3f16c8[_0x9620('0x3a')][_0x9620('0x51')]=_0x1ebbf6['id'];if(_0x5dbdb1[_0x9620('0x2b')][_0x9620('0x52')]){_0x3f16c8[_0x9620('0x3a')]=_['merge'](_0x3f16c8[_0x9620('0x3a')],{'$or':_['map'](_0x3f16c8['attributes'],function(_0xd90bfa){var _0x512fdc={};_0x512fdc[_0xd90bfa]={'$like':'%'+_0x5dbdb1[_0x9620('0x2b')][_0x9620('0x52')]+'%'};return _0x512fdc;})});}_0x3f16c8=_[_0x9620('0x39')]({},_0x3f16c8,_0x5dbdb1[_0x9620('0x3c')]);return db['CmHopperHistory'][_0x9620('0x1b')]({'where':_0x3f16c8[_0x9620('0x3a')]})[_0x9620('0x22')](function(_0x5b8d1e){_0x2097fc['count']=_0x5b8d1e;if(_0x5dbdb1[_0x9620('0x2b')][_0x9620('0x3d')]){_0x3f16c8['include']=[{'all':!![]}];}return db[_0x9620('0x54')][_0x9620('0x3e')](_0x3f16c8);})[_0x9620('0x22')](function(_0x4df29d){_0x2097fc[_0x9620('0x55')]=_0x4df29d;return _0x2097fc;});}})[_0x9620('0x22')](respondWithFilteredResult(_0x560711,_0x3f16c8))[_0x9620('0x3f')](handleError(_0x560711,null));};exports['getHopperFinals']=function(_0x55930c,_0x13be7e,_0x2d5c13){var _0x1fd4d8={'raw':!![],'where':{}};var _0xe56e89={};var _0x1d598a={'count':0x0,'rows':[]};return db['Campaign'][_0x9620('0x4d')]({'where':{'id':_0x55930c[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x13be7e,null))['then'](function(_0x1bfd3d){if(_0x1bfd3d){_0xe56e89[_0x9620('0x2a')]=_[_0x9620('0x2e')](db[_0x9620('0x56')][_0x9620('0x29')]);_0xe56e89[_0x9620('0x2b')]=_[_0x9620('0x2e')](_0x55930c[_0x9620('0x2b')]);_0xe56e89['filters']=_['intersection'](_0xe56e89['model'],_0xe56e89[_0x9620('0x2b')]);_0x1fd4d8[_0x9620('0x30')]=_[_0x9620('0x31')](_0xe56e89['model'],qs[_0x9620('0x32')](_0x55930c[_0x9620('0x2b')]['fields']));_0x1fd4d8[_0x9620('0x30')]=_0x1fd4d8[_0x9620('0x30')][_0x9620('0x4f')]?_0x1fd4d8[_0x9620('0x30')]:_0xe56e89[_0x9620('0x2a')];if(!_0x55930c[_0x9620('0x2b')][_0x9620('0x33')]('nolimit')){_0x1fd4d8[_0x9620('0x1d')]=qs[_0x9620('0x1d')](_0x55930c['query'][_0x9620('0x1d')]);_0x1fd4d8[_0x9620('0x1c')]=qs[_0x9620('0x1c')](_0x55930c[_0x9620('0x2b')][_0x9620('0x1c')]);}_0x1fd4d8[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x55930c['query'][_0x9620('0x35')]);_0x1fd4d8[_0x9620('0x3a')]=qs[_0x9620('0x2f')](_[_0x9620('0x36')](_0x55930c[_0x9620('0x2b')],_0xe56e89[_0x9620('0x2f')]));_0x1fd4d8[_0x9620('0x3a')][_0x9620('0x51')]=_0x1bfd3d['id'];if(_0x55930c[_0x9620('0x2b')]['filter']){_0x1fd4d8['where']=_['merge'](_0x1fd4d8[_0x9620('0x3a')],{'$or':_[_0x9620('0x3b')](_0x1fd4d8['attributes'],function(_0x4b3549){var _0xb0f64={};_0xb0f64[_0x4b3549]={'$like':'%'+_0x55930c[_0x9620('0x2b')][_0x9620('0x52')]+'%'};return _0xb0f64;})});}_0x1fd4d8=_[_0x9620('0x39')]({},_0x1fd4d8,_0x55930c[_0x9620('0x3c')]);return db['CmHopperFinal'][_0x9620('0x1b')]({'where':_0x1fd4d8['where']})[_0x9620('0x22')](function(_0x4c99b9){_0x1d598a[_0x9620('0x1b')]=_0x4c99b9;if(_0x55930c[_0x9620('0x2b')][_0x9620('0x3d')]){_0x1fd4d8['include']=[{'all':!![]}];}return db[_0x9620('0x56')][_0x9620('0x3e')](_0x1fd4d8);})[_0x9620('0x22')](function(_0x25abca){_0x1d598a['rows']=_0x25abca;return _0x1d598a;});}})[_0x9620('0x22')](respondWithFilteredResult(_0x13be7e,_0x1fd4d8))[_0x9620('0x3f')](handleError(_0x13be7e,null));};exports['getHopperBlacks']=function(_0x5810af,_0x20664a,_0x3fa965){var _0x8e423f={'raw':!![],'where':{}};var _0x3554e7={};var _0x5d10a0={'count':0x0,'rows':[]};return db[_0x9620('0x28')][_0x9620('0x4d')]({'where':{'id':_0x5810af[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x20664a,null))[_0x9620('0x22')](function(_0x65eb8b){if(_0x65eb8b){_0x3554e7['model']=_[_0x9620('0x2e')](db[_0x9620('0x57')][_0x9620('0x29')]);_0x3554e7[_0x9620('0x2b')]=_['keys'](_0x5810af[_0x9620('0x2b')]);_0x3554e7[_0x9620('0x2f')]=_[_0x9620('0x31')](_0x3554e7[_0x9620('0x2a')],_0x3554e7['query']);_0x8e423f[_0x9620('0x30')]=_[_0x9620('0x31')](_0x3554e7[_0x9620('0x2a')],qs[_0x9620('0x32')](_0x5810af['query'][_0x9620('0x32')]));_0x8e423f['attributes']=_0x8e423f[_0x9620('0x30')][_0x9620('0x4f')]?_0x8e423f[_0x9620('0x30')]:_0x3554e7[_0x9620('0x2a')];if(!_0x5810af[_0x9620('0x2b')][_0x9620('0x33')](_0x9620('0x50'))){_0x8e423f[_0x9620('0x1d')]=qs['limit'](_0x5810af[_0x9620('0x2b')][_0x9620('0x1d')]);_0x8e423f['offset']=qs[_0x9620('0x1c')](_0x5810af[_0x9620('0x2b')]['offset']);}_0x8e423f[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x5810af[_0x9620('0x2b')][_0x9620('0x35')]);_0x8e423f[_0x9620('0x3a')]=qs[_0x9620('0x2f')](_[_0x9620('0x36')](_0x5810af[_0x9620('0x2b')],_0x3554e7[_0x9620('0x2f')]));_0x8e423f[_0x9620('0x3a')][_0x9620('0x51')]=_0x65eb8b['id'];if(_0x5810af[_0x9620('0x2b')][_0x9620('0x52')]){_0x8e423f[_0x9620('0x3a')]=_[_0x9620('0x39')](_0x8e423f[_0x9620('0x3a')],{'$or':_[_0x9620('0x3b')](_0x8e423f[_0x9620('0x30')],function(_0x5b8323){var _0x5acec2={};_0x5acec2[_0x5b8323]={'$like':'%'+_0x5810af[_0x9620('0x2b')]['filter']+'%'};return _0x5acec2;})});}_0x8e423f=_['merge']({},_0x8e423f,_0x5810af[_0x9620('0x3c')]);return db[_0x9620('0x57')][_0x9620('0x1b')]({'where':_0x8e423f[_0x9620('0x3a')]})[_0x9620('0x22')](function(_0xbfdd65){_0x5d10a0[_0x9620('0x1b')]=_0xbfdd65;if(_0x5810af['query']['includeAll']){_0x8e423f[_0x9620('0x42')]=[{'all':!![]}];}return db[_0x9620('0x57')][_0x9620('0x3e')](_0x8e423f);})[_0x9620('0x22')](function(_0x45d0e2){_0x5d10a0[_0x9620('0x55')]=_0x45d0e2;return _0x5d10a0;});}})['then'](respondWithFilteredResult(_0x20664a,_0x8e423f))['catch'](handleError(_0x20664a,null));};exports[_0x9620('0x58')]=function(_0x45eedb,_0x24aa41,_0x31945a){var _0x1335a8={};var _0xf70821={};var _0x3af3c4;var _0x4b27c3;return db[_0x9620('0x28')][_0x9620('0x4d')]({'where':{'id':_0x45eedb['params']['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x24aa41,null))[_0x9620('0x22')](function(_0x431318){if(_0x431318){_0x3af3c4=_0x431318;_0xf70821[_0x9620('0x2a')]=_['keys'](db[_0x9620('0x59')][_0x9620('0x29')]);_0xf70821[_0x9620('0x2b')]=_[_0x9620('0x2e')](_0x45eedb[_0x9620('0x2b')]);_0xf70821[_0x9620('0x2f')]=_['intersection'](_0xf70821[_0x9620('0x2a')],_0xf70821[_0x9620('0x2b')]);_0x1335a8[_0x9620('0x30')]=_['intersection'](_0xf70821[_0x9620('0x2a')],qs[_0x9620('0x32')](_0x45eedb['query'][_0x9620('0x32')]));_0x1335a8[_0x9620('0x30')]=_0x1335a8[_0x9620('0x30')][_0x9620('0x4f')]?_0x1335a8[_0x9620('0x30')]:_0xf70821[_0x9620('0x2a')];_0x1335a8[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x45eedb[_0x9620('0x2b')][_0x9620('0x35')]);_0x1335a8[_0x9620('0x3a')]=qs['filters'](_[_0x9620('0x36')](_0x45eedb[_0x9620('0x2b')],_0xf70821[_0x9620('0x2f')]));if(_0x45eedb[_0x9620('0x2b')][_0x9620('0x52')]){_0x1335a8['where']=_[_0x9620('0x39')](_0x1335a8[_0x9620('0x3a')],{'$or':_[_0x9620('0x3b')](_0x1335a8[_0x9620('0x30')],function(_0x1eb900){var _0x69c342={};_0x69c342[_0x1eb900]={'$like':'%'+_0x45eedb['query'][_0x9620('0x52')]+'%'};return _0x69c342;})});}_0x1335a8=_['merge']({},_0x1335a8,_0x45eedb[_0x9620('0x3c')]);return _0x3af3c4[_0x9620('0x58')](_0x1335a8);}})[_0x9620('0x22')](function(_0x55d57c){if(_0x55d57c){_0x4b27c3=_0x55d57c['length'];if(!_0x45eedb[_0x9620('0x2b')][_0x9620('0x33')]('nolimit')){_0x1335a8[_0x9620('0x1d')]=qs[_0x9620('0x1d')](_0x45eedb[_0x9620('0x2b')][_0x9620('0x1d')]);_0x1335a8[_0x9620('0x1c')]=qs[_0x9620('0x1c')](_0x45eedb[_0x9620('0x2b')][_0x9620('0x1c')]);}return _0x3af3c4[_0x9620('0x58')](_0x1335a8);}})[_0x9620('0x22')](function(_0x1aed3d){if(_0x1aed3d){return _0x1aed3d?{'count':_0x4b27c3,'rows':_0x1aed3d}:null;}})['then'](respondWithResult(_0x24aa41,null))[_0x9620('0x3f')](handleError(_0x24aa41,null));};exports[_0x9620('0x5a')]=function(_0x513b70,_0x29e225,_0x1dbd6a){var _0x576d65,_0x56bff0;return db['Campaign'][_0x9620('0x4b')]({'where':{'id':_0x513b70[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x29e225,null))['then'](function(_0x279740){if(_0x279740){_0x56bff0=_0x279740;return _0x279740[_0x9620('0x5a')](_0x513b70[_0x9620('0x49')]['ids'],_[_0x9620('0x46')](_0x513b70[_0x9620('0x49')],[_0x9620('0x5b'),'id'])||{});}return null;})[_0x9620('0x5c')](function(_0x4057b1){var _0x3827a3;_0x576d65=_0x4057b1||[];var _0x5bd79a=[];if(_0x4057b1){for(var _0x1d521f=0x0;_0x1d521f<_0x4057b1[_0x9620('0x4f')];_0x1d521f+=0x1){var _0x102702=_0x4057b1[_0x1d521f]['get']({'plain':!![]});_0x56bff0[_0x9620('0x5d')]=_0x513b70[_0x9620('0x49')]['dialCheckDuplicateType']?_0x513b70[_0x9620('0x49')][_0x9620('0x5d')]:_0x56bff0[_0x9620('0x5d')];switch(_0x56bff0['dialCheckDuplicateType']){case _0x9620('0x5e'):_0x3827a3=squel[_0x9620('0x5f')]()[_0x9620('0x60')](_0x9620('0x61'))[_0x9620('0x62')]([_0x9620('0x63'),'scheduledAt',_0x9620('0x64'),_0x9620('0x65'),'CampaignId',_0x9620('0x47'),_0x9620('0x48')],squel[_0x9620('0x66')]()['field'](_0x9620('0x63'),_0x9620('0x63'))[_0x9620('0x67')]('NOW()','scheduledAt')['field']('id',_0x9620('0x64'))[_0x9620('0x67')](_0x102702[_0x9620('0x68')][_0x9620('0x69')](),_0x9620('0x65'))[_0x9620('0x67')](_0x513b70['params']['id'][_0x9620('0x69')](),_0x9620('0x51'))[_0x9620('0x67')](_0x9620('0x6a'),'createdAt')[_0x9620('0x67')]('NOW()',_0x9620('0x48'))[_0x9620('0x6b')](_0x9620('0x6c'))[_0x9620('0x3a')]('deletedAt\x20IS\x20NULL')[_0x9620('0x3a')](_0x9620('0x6d'),_0x102702[_0x9620('0x68')]['toString']())['where'](_0x9620('0x6e'))[_0x9620('0x3a')](_0x9620('0x6f'),squel[_0x9620('0x66')]()[_0x9620('0x67')](_0x9620('0x70'))[_0x9620('0x6b')]('cm_hopper_final')[_0x9620('0x3a')](_0x9620('0x71'),_0x513b70['params']['id']['toString']()))[_0x9620('0x3a')]('phone\x20NOT\x20IN\x20(?)',squel[_0x9620('0x66')]()[_0x9620('0x67')]('phone')[_0x9620('0x6b')](_0x9620('0x61'))[_0x9620('0x3a')](_0x9620('0x71'),_0x513b70[_0x9620('0x41')]['id']['toString']())))[_0x9620('0x69')]();break;case _0x9620('0x72'):_0x3827a3=squel[_0x9620('0x5f')]()[_0x9620('0x60')](_0x9620('0x61'))[_0x9620('0x62')]([_0x9620('0x63'),_0x9620('0x73'),'ContactId',_0x9620('0x65'),_0x9620('0x51'),'createdAt',_0x9620('0x48')],squel[_0x9620('0x66')]()['field']('phone',_0x9620('0x63'))[_0x9620('0x67')]('NOW()',_0x9620('0x73'))[_0x9620('0x67')]('id',_0x9620('0x64'))[_0x9620('0x67')](_0x102702[_0x9620('0x68')][_0x9620('0x69')](),_0x9620('0x65'))[_0x9620('0x67')](_0x513b70[_0x9620('0x41')]['id']['toString'](),_0x9620('0x51'))[_0x9620('0x67')](_0x9620('0x6a'),_0x9620('0x47'))[_0x9620('0x67')](_0x9620('0x6a'),_0x9620('0x48'))[_0x9620('0x6b')](_0x9620('0x6c'))[_0x9620('0x3a')](_0x9620('0x74'))[_0x9620('0x3a')](_0x9620('0x6d'),_0x102702[_0x9620('0x68')][_0x9620('0x69')]())[_0x9620('0x3a')]('phone\x20IS\x20NOT\x20NULL')['where'](_0x9620('0x6f'),squel['select']()['field']('phone')['from'](_0x9620('0x61'))[_0x9620('0x3a')]('CampaignId\x20=\x20?',_0x513b70['params']['id'][_0x9620('0x69')]())))[_0x9620('0x69')]();break;default:_0x3827a3=squel[_0x9620('0x5f')]()[_0x9620('0x60')]('cm_hopper')['fromQuery'](['phone',_0x9620('0x73'),_0x9620('0x64'),_0x9620('0x65'),_0x9620('0x51'),'createdAt',_0x9620('0x48')],squel['select']()[_0x9620('0x67')](_0x9620('0x63'),_0x9620('0x63'))[_0x9620('0x67')](_0x9620('0x6a'),_0x9620('0x73'))[_0x9620('0x67')]('id',_0x9620('0x64'))['field'](_0x102702[_0x9620('0x68')][_0x9620('0x69')](),_0x9620('0x65'))[_0x9620('0x67')](_0x513b70[_0x9620('0x41')]['id'][_0x9620('0x69')](),_0x9620('0x51'))[_0x9620('0x67')]('NOW()',_0x9620('0x47'))[_0x9620('0x67')](_0x9620('0x6a'),'updatedAt')[_0x9620('0x6b')](_0x9620('0x6c'))[_0x9620('0x3a')]('deletedAt\x20IS\x20NULL')[_0x9620('0x3a')](_0x9620('0x6d'),_0x102702['CmListId'][_0x9620('0x69')]())[_0x9620('0x3a')](_0x9620('0x6e')))['toString']();}_0x5bd79a[_0x9620('0x75')](db[_0x9620('0x76')]['query'](_0x3827a3));}return BPromise['all'](_0x5bd79a);}})[_0x9620('0x22')](function(){return _0x576d65;})[_0x9620('0x22')](respondWithResult(_0x29e225,null))[_0x9620('0x3f')](handleError(_0x29e225,null));};exports[_0x9620('0x77')]=function(_0x2ba974,_0x13a633,_0x230637){var _0x344568;return db['Campaign']['find']({'where':{'id':_0x2ba974['params']['id']}})['then'](handleEntityNotFound(_0x13a633,null))['then'](function(_0xb6d5c0){if(_0xb6d5c0){return _0xb6d5c0['removeLists'](_0x2ba974[_0x9620('0x2b')]['ids']);}})[_0x9620('0x22')](function(_0x339859){if(_0x339859){_0x344568=_0x339859;return db[_0x9620('0x4e')][_0x9620('0x21')]({'where':{'ListId':_0x2ba974['query'][_0x9620('0x5b')],'CampaignId':_0x2ba974[_0x9620('0x41')]['id']}})[_0x9620('0x22')](function(){return _0x344568;});}})[_0x9620('0x22')](respondWithStatusCode(_0x13a633,null))[_0x9620('0x3f')](handleError(_0x13a633,null));};exports[_0x9620('0x78')]=function(_0x11fe9d,_0x4e574c,_0x5267ef){var _0x1948f0={'raw':!![],'where':{}};var _0x48da21={};var _0x440fb4={'count':0x0,'rows':[]};return db[_0x9620('0x28')][_0x9620('0x4d')]({'where':{'id':_0x11fe9d['params']['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x4e574c,null))['then'](function(_0x3f8d2b){if(_0x3f8d2b){_0x48da21[_0x9620('0x2a')]=_[_0x9620('0x2e')](db[_0x9620('0x59')][_0x9620('0x29')]);_0x48da21[_0x9620('0x2b')]=_['keys'](_0x11fe9d['query']);_0x48da21[_0x9620('0x2f')]=_[_0x9620('0x31')](_0x48da21[_0x9620('0x2a')],_0x48da21[_0x9620('0x2b')]);_0x1948f0[_0x9620('0x30')]=_[_0x9620('0x31')](_0x48da21['model'],qs[_0x9620('0x32')](_0x11fe9d[_0x9620('0x2b')][_0x9620('0x32')]));_0x1948f0[_0x9620('0x30')]=_0x1948f0[_0x9620('0x30')][_0x9620('0x4f')]?_0x1948f0[_0x9620('0x30')]:_0x48da21[_0x9620('0x2a')];if(!_0x11fe9d[_0x9620('0x2b')][_0x9620('0x33')](_0x9620('0x50'))){_0x1948f0[_0x9620('0x1d')]=qs['limit'](_0x11fe9d[_0x9620('0x2b')][_0x9620('0x1d')]);_0x1948f0[_0x9620('0x1c')]=qs[_0x9620('0x1c')](_0x11fe9d[_0x9620('0x2b')][_0x9620('0x1c')]);}_0x1948f0[_0x9620('0x34')]=qs[_0x9620('0x35')](_0x11fe9d[_0x9620('0x2b')][_0x9620('0x35')]);_0x1948f0[_0x9620('0x3a')]=qs['filters'](_[_0x9620('0x36')](_0x11fe9d[_0x9620('0x2b')],_0x48da21[_0x9620('0x2f')]));_0x1948f0[_0x9620('0x3a')][_0x9620('0x51')]=_0x3f8d2b['id'];if(_0x11fe9d[_0x9620('0x2b')][_0x9620('0x52')]){_0x1948f0[_0x9620('0x3a')]=_[_0x9620('0x39')](_0x1948f0[_0x9620('0x3a')],{'$or':_[_0x9620('0x3b')](_0x1948f0['attributes'],function(_0x4598ba){var _0x38f0e0={};_0x38f0e0[_0x4598ba]={'$like':'%'+_0x11fe9d[_0x9620('0x2b')]['filter']+'%'};return _0x38f0e0;})});}_0x1948f0=_[_0x9620('0x39')]({},_0x1948f0,_0x11fe9d['options']);return db['CmList']['count']({'where':_0x1948f0[_0x9620('0x3a')]})['then'](function(_0x30195e){_0x440fb4[_0x9620('0x1b')]=_0x30195e;if(_0x11fe9d[_0x9620('0x2b')]['includeAll']){_0x1948f0[_0x9620('0x42')]=[{'all':!![]}];}return db[_0x9620('0x59')][_0x9620('0x3e')](_0x1948f0);})[_0x9620('0x22')](function(_0x28b86a){_0x440fb4[_0x9620('0x55')]=_0x28b86a;return _0x440fb4;});}})[_0x9620('0x22')](respondWithFilteredResult(_0x4e574c,_0x1948f0))[_0x9620('0x3f')](handleError(_0x4e574c,null));};exports[_0x9620('0x79')]=function(_0x1ebde6,_0x26baf6,_0x375164){var _0x45e5be,_0x3d870f;return db['Campaign'][_0x9620('0x4b')]({'where':{'id':_0x1ebde6[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x26baf6,null))[_0x9620('0x22')](function(_0x1070d9){if(_0x1070d9){_0x3d870f=_0x1070d9;return _0x1070d9[_0x9620('0x79')](_0x1ebde6[_0x9620('0x49')][_0x9620('0x5b')],_['omit'](_0x1ebde6[_0x9620('0x49')],[_0x9620('0x5b'),'id'])||{});}return null;})['spread'](function(_0x3e0ef8){var _0x6b535e;_0x45e5be=_0x3e0ef8||[];var _0xd27709=[];if(_0x3e0ef8){for(var _0x12e7a3=0x0;_0x12e7a3<_0x3e0ef8[_0x9620('0x4f')];_0x12e7a3+=0x1){var _0x3c677d=_0x3e0ef8[_0x12e7a3]['get']({'plain':!![]});_0x6b535e=squel[_0x9620('0x5f')]()[_0x9620('0x60')](_0x9620('0x7a'))['fromQuery'](['phone',_0x9620('0x64'),_0x9620('0x65'),'CampaignId',_0x9620('0x47'),_0x9620('0x48')],squel[_0x9620('0x66')]()[_0x9620('0x67')]('phone','phone')[_0x9620('0x67')]('id',_0x9620('0x64'))[_0x9620('0x67')](_0x3c677d['CmListId'][_0x9620('0x69')](),'ListId')[_0x9620('0x67')](_0x1ebde6[_0x9620('0x41')]['id']['toString'](),'CampaignId')[_0x9620('0x67')](_0x9620('0x6a'),_0x9620('0x47'))[_0x9620('0x67')]('NOW()',_0x9620('0x48'))[_0x9620('0x6b')](_0x9620('0x6c'))['where']('deletedAt\x20IS\x20NULL')[_0x9620('0x3a')]('ListId\x20=\x20?',_0x3c677d[_0x9620('0x68')][_0x9620('0x69')]())[_0x9620('0x3a')](_0x9620('0x6e')))[_0x9620('0x69')]();_0xd27709[_0x9620('0x75')](db[_0x9620('0x76')][_0x9620('0x2b')](_0x6b535e));}return BPromise[_0x9620('0x7b')](_0xd27709);}})[_0x9620('0x22')](function(){return _0x45e5be;})[_0x9620('0x22')](respondWithResult(_0x26baf6,null))[_0x9620('0x3f')](handleError(_0x26baf6,null));};exports[_0x9620('0x7c')]=function(_0x56a162,_0x12e3b0,_0x242c43){var _0x4025ae;return db[_0x9620('0x28')][_0x9620('0x4b')]({'where':{'id':_0x56a162[_0x9620('0x41')]['id']}})[_0x9620('0x22')](handleEntityNotFound(_0x12e3b0,null))[_0x9620('0x22')](function(_0x526021){if(_0x526021){return _0x526021[_0x9620('0x7c')](_0x56a162['query'][_0x9620('0x5b')]);}})['then'](function(_0x23005d){if(_0x23005d){_0x4025ae=_0x23005d;return db['CmHopperBlack'][_0x9620('0x21')]({'where':{'ListId':_0x56a162[_0x9620('0x2b')][_0x9620('0x5b')],'CampaignId':_0x56a162['params']['id']}})[_0x9620('0x22')](function(){return _0x4025ae;});}})['then'](respondWithStatusCode(_0x12e3b0,null))[_0x9620('0x3f')](handleError(_0x12e3b0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9967=['../../config/logger','api','moment','bluebird','request-promise','./campaign.attributes','define','campaigns','util'];(function(_0x235482,_0x14b833){var _0x5f5bea=function(_0x17a254){while(--_0x17a254){_0x235482['push'](_0x235482['shift']());}};_0x5f5bea(++_0x14b833);}(_0x9967,0x14c));var _0x7996=function(_0x2922c4,_0x568c26){_0x2922c4=_0x2922c4-0x0;var _0x150d05=_0x9967[_0x2922c4];return _0x150d05;};'use strict';var _=require('lodash');var util=require(_0x7996('0x0'));var logger=require(_0x7996('0x1'))(_0x7996('0x2'));var moment=require(_0x7996('0x3'));var BPromise=require(_0x7996('0x4'));var rp=require(_0x7996('0x5'));var attributes=require(_0x7996('0x6'));module['exports']=function(_0xf81ae3,_0x57b319){return _0xf81ae3[_0x7996('0x7')]('Campaign',attributes,{'tableName':_0x7996('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb37d=['request-promise','./campaign.attributes','exports','define','Campaign','lodash','util','../../config/logger','moment','bluebird'];(function(_0x2601b4,_0x315e78){var _0x3e3661=function(_0x13b45b){while(--_0x13b45b){_0x2601b4['push'](_0x2601b4['shift']());}};_0x3e3661(++_0x315e78);}(_0xb37d,0xa5));var _0xdb37=function(_0x255d8c,_0x48223a){_0x255d8c=_0x255d8c-0x0;var _0x150cf3=_0xb37d[_0x255d8c];return _0x150cf3;};'use strict';var _=require(_0xdb37('0x0'));var util=require(_0xdb37('0x1'));var logger=require(_0xdb37('0x2'))('api');var moment=require(_0xdb37('0x3'));var BPromise=require(_0xdb37('0x4'));var rp=require(_0xdb37('0x5'));var attributes=require(_0xdb37('0x6'));module[_0xdb37('0x7')]=function(_0x4667e7,_0xc87a8a){return _0x4667e7[_0xdb37('0x8')](_0xdb37('0x9'),attributes,{'tableName':'campaigns','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8776=['Campaign,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','GetCampaign','Campaign','findAll','options','raw','where','attributes','include','map','model','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','info'];(function(_0x10d34b,_0x4fef76){var _0x92b0bf=function(_0x16e291){while(--_0x16e291){_0x10d34b['push'](_0x10d34b['shift']());}};_0x92b0bf(++_0x4fef76);}(_0x8776,0x66));var _0x6877=function(_0x3199f3,_0x96f08){_0x3199f3=_0x3199f3-0x0;var _0x2a5ce1=_0x8776[_0x3199f3];return _0x2a5ce1;};'use strict';var _=require(_0x6877('0x0'));var util=require('util');var moment=require(_0x6877('0x1'));var BPromise=require('bluebird');var rs=require(_0x6877('0x2'));var fs=require('fs');var db=require(_0x6877('0x3'))['db'];var utils=require(_0x6877('0x4'));var logger=require(_0x6877('0x5'))(_0x6877('0x6'));var config=require(_0x6877('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x6877('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x274b06,_0x2ca31b,_0x1774ea){return new BPromise(function(_0x5ee04b,_0x2994fe){return client['request'](_0x274b06,_0x1774ea)['then'](function(_0x29136b){logger[_0x6877('0x9')](_0x6877('0xa'),_0x2ca31b,_0x6877('0xb'));logger[_0x6877('0xc')]('Campaign,\x20%s,\x20%s,\x20%s',_0x2ca31b,_0x6877('0xb'),JSON[_0x6877('0xd')](_0x29136b));if(_0x29136b[_0x6877('0xe')]){if(_0x29136b[_0x6877('0xe')][_0x6877('0xf')]===0x1f4){logger['error'](_0x6877('0xa'),_0x2ca31b,_0x29136b[_0x6877('0xe')][_0x6877('0x10')]);return _0x2994fe(_0x29136b['error'][_0x6877('0x10')]);}logger[_0x6877('0xe')](_0x6877('0xa'),_0x2ca31b,_0x29136b[_0x6877('0xe')][_0x6877('0x10')]);return _0x5ee04b(_0x29136b[_0x6877('0xe')][_0x6877('0x10')]);}else{logger['info'](_0x6877('0xa'),_0x2ca31b,_0x6877('0xb'));_0x5ee04b(_0x29136b[_0x6877('0x11')]['message']);}})['catch'](function(_0x121e33){logger['error'](_0x6877('0xa'),_0x2ca31b,_0x121e33);_0x2994fe(_0x121e33);});});}exports[_0x6877('0x12')]=function(_0x41e310){var _0x261af8=this;return new Promise(function(_0x4c5d67,_0x3dd64a){return db[_0x6877('0x13')][_0x6877('0x14')]({'raw':_0x41e310[_0x6877('0x15')]?_0x41e310[_0x6877('0x15')][_0x6877('0x16')]===undefined?!![]:![]:!![],'where':_0x41e310[_0x6877('0x15')]?_0x41e310['options'][_0x6877('0x17')]||null:null,'attributes':_0x41e310[_0x6877('0x15')]?_0x41e310[_0x6877('0x15')][_0x6877('0x18')]||null:null,'limit':_0x41e310[_0x6877('0x15')]?_0x41e310[_0x6877('0x15')]['limit']||null:null,'include':_0x41e310[_0x6877('0x15')]?_0x41e310[_0x6877('0x15')][_0x6877('0x19')]?_[_0x6877('0x1a')](_0x41e310[_0x6877('0x15')][_0x6877('0x19')],function(_0x23d5c9){return{'model':db[_0x23d5c9[_0x6877('0x1b')]],'as':_0x23d5c9['as'],'attributes':_0x23d5c9[_0x6877('0x18')],'include':_0x23d5c9[_0x6877('0x19')]?_[_0x6877('0x1a')](_0x23d5c9[_0x6877('0x19')],function(_0x217d2d){return{'model':db[_0x217d2d[_0x6877('0x1b')]],'as':_0x217d2d['as'],'attributes':_0x217d2d['attributes'],'include':_0x217d2d[_0x6877('0x19')]?_[_0x6877('0x1a')](_0x217d2d[_0x6877('0x19')],function(_0x3c446b){return{'model':db[_0x3c446b[_0x6877('0x1b')]],'as':_0x3c446b['as'],'attributes':_0x3c446b[_0x6877('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x400339){logger[_0x6877('0x9')](_0x6877('0x12'),_0x41e310);logger[_0x6877('0xc')](_0x6877('0x12'),_0x41e310,JSON['stringify'](_0x400339));_0x4c5d67(_0x400339);})['catch'](function(_0x130bed){logger[_0x6877('0xe')](_0x6877('0x12'),_0x130bed[_0x6877('0x10')],_0x41e310);_0x3dd64a(_0x261af8[_0x6877('0xe')](0x1f4,_0x130bed[_0x6877('0x10')]));});});};
\ No newline at end of file
+var _0x35ea=['catch','options','raw','where','include','model','attributes','map','GetCampaign','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','Campaign,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Campaign,\x20%s,\x20%s','result'];(function(_0x13b7c4,_0x32d511){var _0x5a1efe=function(_0x692ab8){while(--_0x692ab8){_0x13b7c4['push'](_0x13b7c4['shift']());}};_0x5a1efe(++_0x32d511);}(_0x35ea,0x6c));var _0xa35e=function(_0x5c908c,_0x4bcfab){_0x5c908c=_0x5c908c-0x0;var _0x39325f=_0x35ea[_0x5c908c];return _0x39325f;};'use strict';var _=require(_0xa35e('0x0'));var util=require(_0xa35e('0x1'));var moment=require('moment');var BPromise=require(_0xa35e('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa35e('0x3'));var db=require(_0xa35e('0x4'))['db'];var utils=require(_0xa35e('0x5'));var logger=require(_0xa35e('0x6'))(_0xa35e('0x7'));var config=require(_0xa35e('0x8'));var jayson=require(_0xa35e('0x9'));var client=jayson[_0xa35e('0xa')][_0xa35e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x9f05c4,_0x1ea767,_0x538fd2){return new BPromise(function(_0xd16a63,_0x34508d){return client[_0xa35e('0xc')](_0x9f05c4,_0x538fd2)[_0xa35e('0xd')](function(_0x33d723){logger[_0xa35e('0xe')]('Campaign,\x20%s,\x20%s',_0x1ea767,_0xa35e('0xf'));logger[_0xa35e('0x10')](_0xa35e('0x11'),_0x1ea767,_0xa35e('0xf'),JSON[_0xa35e('0x12')](_0x33d723));if(_0x33d723[_0xa35e('0x13')]){if(_0x33d723[_0xa35e('0x13')][_0xa35e('0x14')]===0x1f4){logger[_0xa35e('0x13')]('Campaign,\x20%s,\x20%s',_0x1ea767,_0x33d723[_0xa35e('0x13')][_0xa35e('0x15')]);return _0x34508d(_0x33d723[_0xa35e('0x13')][_0xa35e('0x15')]);}logger[_0xa35e('0x13')](_0xa35e('0x16'),_0x1ea767,_0x33d723[_0xa35e('0x13')]['message']);return _0xd16a63(_0x33d723[_0xa35e('0x13')]['message']);}else{logger[_0xa35e('0xe')](_0xa35e('0x16'),_0x1ea767,'request\x20sent');_0xd16a63(_0x33d723[_0xa35e('0x17')]['message']);}})[_0xa35e('0x18')](function(_0x2777b9){logger[_0xa35e('0x13')](_0xa35e('0x16'),_0x1ea767,_0x2777b9);_0x34508d(_0x2777b9);});});}exports['GetCampaign']=function(_0x265a14){var _0x43e3ab=this;return new Promise(function(_0x42e5a0,_0x60f065){return db['Campaign']['findAll']({'raw':_0x265a14[_0xa35e('0x19')]?_0x265a14[_0xa35e('0x19')][_0xa35e('0x1a')]===undefined?!![]:![]:!![],'where':_0x265a14[_0xa35e('0x19')]?_0x265a14['options'][_0xa35e('0x1b')]||null:null,'attributes':_0x265a14['options']?_0x265a14['options']['attributes']||null:null,'limit':_0x265a14[_0xa35e('0x19')]?_0x265a14[_0xa35e('0x19')]['limit']||null:null,'include':_0x265a14[_0xa35e('0x19')]?_0x265a14[_0xa35e('0x19')][_0xa35e('0x1c')]?_['map'](_0x265a14[_0xa35e('0x19')][_0xa35e('0x1c')],function(_0x27eb27){return{'model':db[_0x27eb27[_0xa35e('0x1d')]],'as':_0x27eb27['as'],'attributes':_0x27eb27[_0xa35e('0x1e')],'include':_0x27eb27[_0xa35e('0x1c')]?_[_0xa35e('0x1f')](_0x27eb27['include'],function(_0x1691c6){return{'model':db[_0x1691c6[_0xa35e('0x1d')]],'as':_0x1691c6['as'],'attributes':_0x1691c6['attributes'],'include':_0x1691c6['include']?_['map'](_0x1691c6[_0xa35e('0x1c')],function(_0x59df34){return{'model':db[_0x59df34['model']],'as':_0x59df34['as'],'attributes':_0x59df34[_0xa35e('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xa35e('0xd')](function(_0x3325fe){logger[_0xa35e('0xe')](_0xa35e('0x20'),_0x265a14);logger[_0xa35e('0x10')](_0xa35e('0x20'),_0x265a14,JSON[_0xa35e('0x12')](_0x3325fe));_0x42e5a0(_0x3325fe);})[_0xa35e('0x18')](function(_0x4d74cd){logger[_0xa35e('0x13')](_0xa35e('0x20'),_0x4d74cd[_0xa35e('0x15')],_0x265a14);_0x60f065(_0x43e3ab[_0xa35e('0x13')](0x1f4,_0x4d74cd[_0xa35e('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x109c=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./campaign.controller','get','/:id','isAuthenticated','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','/:id/hopper_black','getHopperBlacks','/:id/lists','getLists','/:id/blacklists','post','/:id/clone','addLists','addBlackLists','put','update','destroy','delete','removeLists','removeBlackLists','exports','util','path'];(function(_0x421eeb,_0x3d3e3e){var _0x2c7371=function(_0x174b74){while(--_0x174b74){_0x421eeb['push'](_0x421eeb['shift']());}};_0x2c7371(++_0x3d3e3e);}(_0x109c,0x1b8));var _0xc109=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x109c[_0x3b380d];return _0x54502b;};'use strict';var multer=require('multer');var util=require(_0xc109('0x0'));var path=require(_0xc109('0x1'));var timeout=require(_0xc109('0x2'));var express=require(_0xc109('0x3'));var router=express[_0xc109('0x4')]();var auth=require(_0xc109('0x5'));var interaction=require(_0xc109('0x6'));var config=require(_0xc109('0x7'));var controller=require(_0xc109('0x8'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xc109('0x9')](_0xc109('0xa'),auth[_0xc109('0xb')](),controller[_0xc109('0xc')]);router[_0xc109('0x9')](_0xc109('0xd'),auth['isAuthenticated'](),controller[_0xc109('0xe')]);router[_0xc109('0x9')](_0xc109('0xf'),auth[_0xc109('0xb')](),controller[_0xc109('0x10')]);router[_0xc109('0x9')](_0xc109('0x11'),auth[_0xc109('0xb')](),controller['getHopperFinals']);router[_0xc109('0x9')](_0xc109('0x12'),auth[_0xc109('0xb')](),controller[_0xc109('0x13')]);router[_0xc109('0x9')](_0xc109('0x14'),auth[_0xc109('0xb')](),controller[_0xc109('0x15')]);router['get'](_0xc109('0x16'),auth[_0xc109('0xb')](),controller['getBlackLists']);router[_0xc109('0x17')]('/',auth[_0xc109('0xb')](),controller['create']);router[_0xc109('0x17')](_0xc109('0x18'),auth[_0xc109('0xb')](),controller['clone']);router[_0xc109('0x17')]('/:id/lists',auth[_0xc109('0xb')](),controller[_0xc109('0x19')]);router[_0xc109('0x17')](_0xc109('0x16'),auth[_0xc109('0xb')](),controller[_0xc109('0x1a')]);router[_0xc109('0x1b')](_0xc109('0xa'),auth[_0xc109('0xb')](),controller[_0xc109('0x1c')]);router['delete'](_0xc109('0xa'),auth[_0xc109('0xb')](),controller[_0xc109('0x1d')]);router[_0xc109('0x1e')](_0xc109('0x14'),auth[_0xc109('0xb')](),controller[_0xc109('0x1f')]);router[_0xc109('0x1e')](_0xc109('0x16'),auth[_0xc109('0xb')](),controller[_0xc109('0x20')]);module[_0xc109('0x21')]=router;
\ No newline at end of file
+var _0xabfe=['removeBlackLists','exports','multer','util','path','../../components/interaction/service','../../config/environment','./campaign.controller','get','index','isAuthenticated','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','clone','addLists','addBlackLists','put','update','/:id','destroy','delete','removeLists'];(function(_0x3d5d36,_0x471d6b){var _0x3816c6=function(_0x489734){while(--_0x489734){_0x3d5d36['push'](_0x3d5d36['shift']());}};_0x3816c6(++_0x471d6b);}(_0xabfe,0x68));var _0xeabf=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xabfe[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xeabf('0x0'));var util=require(_0xeabf('0x1'));var path=require(_0xeabf('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0xeabf('0x3'));var config=require(_0xeabf('0x4'));var controller=require(_0xeabf('0x5'));router[_0xeabf('0x6')]('/',auth['isAuthenticated'](),controller[_0xeabf('0x7')]);router[_0xeabf('0x6')]('/:id',auth[_0xeabf('0x8')](),controller[_0xeabf('0x9')]);router[_0xeabf('0x6')](_0xeabf('0xa'),auth[_0xeabf('0x8')](),controller[_0xeabf('0xb')]);router[_0xeabf('0x6')](_0xeabf('0xc'),auth[_0xeabf('0x8')](),controller[_0xeabf('0xd')]);router[_0xeabf('0x6')](_0xeabf('0xe'),auth[_0xeabf('0x8')](),controller[_0xeabf('0xf')]);router[_0xeabf('0x6')](_0xeabf('0x10'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x11')]);router[_0xeabf('0x6')](_0xeabf('0x12'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x13')]);router['get'](_0xeabf('0x14'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x15')]);router[_0xeabf('0x16')]('/',auth[_0xeabf('0x8')](),controller['create']);router['post']('/:id/clone',auth[_0xeabf('0x8')](),controller[_0xeabf('0x17')]);router['post']('/:id/lists',auth['isAuthenticated'](),controller[_0xeabf('0x18')]);router[_0xeabf('0x16')](_0xeabf('0x14'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x19')]);router[_0xeabf('0x1a')]('/:id',auth[_0xeabf('0x8')](),controller[_0xeabf('0x1b')]);router['delete'](_0xeabf('0x1c'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x1d')]);router[_0xeabf('0x1e')](_0xeabf('0x12'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x1f')]);router[_0xeabf('0x1e')](_0xeabf('0x14'),auth[_0xeabf('0x8')](),controller[_0xeabf('0x20')]);module[_0xeabf('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71ab=['exports','TEXT'];(function(_0x26c721,_0x32898b){var _0x14bab9=function(_0x58ce38){while(--_0x58ce38){_0x26c721['push'](_0x26c721['shift']());}};_0x14bab9(++_0x32898b);}(_0x71ab,0x64));var _0xb71a=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x71ab[_0x13d07a];return _0x5ee0ee;};'use strict';var Sequelize=require('sequelize');module[_0xb71a('0x0')]={'key':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0xb71a('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xba34=['TEXT','sequelize','exports','STRING'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0xba34,0x119));var _0x4ba3=function(_0x1ee28f,_0x2ff291){_0x1ee28f=_0x1ee28f-0x0;var _0x21d069=_0xba34[_0x1ee28f];return _0x21d069;};'use strict';var Sequelize=require(_0x4ba3('0x0'));module[_0x4ba3('0x1')]={'key':{'type':Sequelize[_0x4ba3('0x2')],'allowNull':![]},'value':{'type':Sequelize[_0x4ba3('0x3')],'allowNull':![]},'description':{'type':Sequelize[_0x4ba3('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d17=['../../components/parsers/qs','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','name','send','CannedAnswer','rawAttributes','model','keys','query','dateEnd','dateStart','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','options','includeAll','include','findAll','rows','catch','show','params','find','body','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','html-pdf','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv'];(function(_0x14e1d5,_0x4c602c){var _0x1444cb=function(_0x5ef1d3){while(--_0x5ef1d3){_0x14e1d5['push'](_0x14e1d5['shift']());}};_0x1444cb(++_0x4c602c);}(_0x5d17,0x114));var _0x75d1=function(_0x43347e,_0x12f3ac){_0x43347e=_0x43347e-0x0;var _0xcb5363=_0x5d17[_0x43347e];return _0xcb5363;};'use strict';var pdf=require(_0x75d1('0x0'));var emlformat=require(_0x75d1('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x75d1('0x2'));var rp=require(_0x75d1('0x3'));var moment=require(_0x75d1('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x75d1('0x5'));var util=require(_0x75d1('0x6'));var path=require(_0x75d1('0x7'));var sox=require(_0x75d1('0x8'));var csv=require('to-csv');var ejs=require(_0x75d1('0x9'));var fs=require('fs');var _=require(_0x75d1('0xa'));var squel=require(_0x75d1('0xb'));var crypto=require(_0x75d1('0xc'));var jsforce=require(_0x75d1('0xd'));var deskjs=require(_0x75d1('0xe'));var toCsv=require(_0x75d1('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var qs=require(_0x75d1('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x75d1('0x11'));var config=require(_0x75d1('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x13d274,_0x3d7e39){_0x3d7e39=_0x3d7e39||0xcc;return function(_0x28b9b4){if(_0x28b9b4){return _0x13d274[_0x75d1('0x13')](_0x3d7e39);}return _0x13d274[_0x75d1('0x14')](_0x3d7e39)[_0x75d1('0x15')]();};}function respondWithResult(_0x49667a,_0x19e825){_0x19e825=_0x19e825||0xc8;return function(_0x2d3bfc){if(_0x2d3bfc){return _0x49667a[_0x75d1('0x14')](_0x19e825)[_0x75d1('0x16')](_0x2d3bfc);}};}function respondWithFilteredResult(_0x49d723,_0x553697){return function(_0x55b8a0){if(_0x55b8a0){var _0x24ba98=_0x55b8a0[_0x75d1('0x17')],_0x12fa32=_0x553697[_0x75d1('0x18')],_0x2fd022=_0x553697[_0x75d1('0x18')]+_0x553697[_0x75d1('0x19')],_0x52e649;if(_0x2fd022>=_0x24ba98){_0x2fd022=_0x24ba98;_0x52e649=0xc8;}else{_0x52e649=0xce;}_0x49d723[_0x75d1('0x14')](_0x52e649);return _0x49d723[_0x75d1('0x1a')](_0x75d1('0x1b'),_0x12fa32+'-'+_0x2fd022+'/'+_0x24ba98)[_0x75d1('0x16')](_0x55b8a0);}return null;};}function patchUpdates(_0x1bc5de){return function(_0x3d0717){try{jsonpatch[_0x75d1('0x1c')](_0x3d0717,_0x1bc5de,!![]);}catch(_0x5761db){return BPromise['reject'](_0x5761db);}return _0x3d0717[_0x75d1('0x1d')]();};}function saveUpdates(_0x42b7ac,_0x56730d){return function(_0x31eb88){if(_0x31eb88){return _0x31eb88[_0x75d1('0x1e')](_0x42b7ac)[_0x75d1('0x1f')](function(_0xf6cc70){return _0xf6cc70;});}return null;};}function removeEntity(_0xa42dbe,_0xac6a24){return function(_0x51d3b0){if(_0x51d3b0){return _0x51d3b0[_0x75d1('0x20')]()[_0x75d1('0x1f')](function(){_0xa42dbe['status'](0xcc)[_0x75d1('0x15')]();});}};}function handleEntityNotFound(_0x641ea4,_0x526f6c){return function(_0x2c0c21){if(!_0x2c0c21){_0x641ea4['sendStatus'](0x194);}return _0x2c0c21;};}function handleError(_0x3a85c0,_0xc256af){_0xc256af=_0xc256af||0x1f4;return function(_0x345cf5){logger['error'](_0x345cf5['stack']);if(_0x345cf5[_0x75d1('0x21')]){delete _0x345cf5[_0x75d1('0x21')];}_0x3a85c0[_0x75d1('0x14')](_0xc256af)[_0x75d1('0x22')](_0x345cf5);};}exports['index']=function(_0x280498,_0x2b5848){var _0x367238={},_0x51138e={},_0x54095d={'count':0x0,'rows':[]};var _0x57efd6=db[_0x75d1('0x23')][_0x75d1('0x24')];_0x51138e[_0x75d1('0x25')]=_[_0x75d1('0x26')](_0x57efd6);var _0x38653d={'dateStart':_0x280498['query']['dateStart'],'dateEnd':_0x280498[_0x75d1('0x27')][_0x75d1('0x28')]};delete _0x280498['query'][_0x75d1('0x29')];delete _0x280498['query'][_0x75d1('0x28')];_0x51138e[_0x75d1('0x27')]=_[_0x75d1('0x26')](_0x280498[_0x75d1('0x27')]);_0x51138e[_0x75d1('0x2a')]=_['intersection'](_0x51138e[_0x75d1('0x25')],_0x51138e[_0x75d1('0x27')]);_0x367238[_0x75d1('0x2b')]=_[_0x75d1('0x2c')](_0x51138e['model'],qs[_0x75d1('0x2d')](_0x280498['query'][_0x75d1('0x2d')]));_0x367238[_0x75d1('0x2b')]=_0x367238['attributes'][_0x75d1('0x2e')]?_0x367238[_0x75d1('0x2b')]:_0x51138e[_0x75d1('0x25')];if(!_0x280498[_0x75d1('0x27')][_0x75d1('0x2f')]('nolimit')){_0x367238[_0x75d1('0x19')]=qs[_0x75d1('0x19')](_0x280498[_0x75d1('0x27')][_0x75d1('0x19')]);_0x367238['offset']=qs['offset'](_0x280498['query'][_0x75d1('0x18')]);}_0x367238[_0x75d1('0x30')]=qs[_0x75d1('0x31')](_0x280498[_0x75d1('0x27')][_0x75d1('0x31')]);_0x367238[_0x75d1('0x32')]=qs[_0x75d1('0x2a')](_[_0x75d1('0x33')](_0x280498[_0x75d1('0x27')],_0x51138e['filters']));if(_0x38653d[_0x75d1('0x29')]){if(_0x38653d[_0x75d1('0x28')]){_0x38653d[_0x75d1('0x28')]=moment(_0x38653d[_0x75d1('0x28')])[_0x75d1('0x34')](0x1,'day');}else{_0x38653d['dateEnd']=moment(_0x38653d['dateStart'])[_0x75d1('0x34')](0x1,_0x75d1('0x35'));}_[_0x75d1('0x36')](_0x367238[_0x75d1('0x32')],{'createdAt':{'$gte':_0x38653d[_0x75d1('0x29')],'$lte':_0x38653d[_0x75d1('0x28')]}});}if(_0x280498['query']['filter']){_0x367238['where']=_[_0x75d1('0x36')](_0x367238['where'],{'$or':_['map'](_0x367238[_0x75d1('0x2b')],function(_0x21bfd8){var _0x45eea3={};_0x45eea3[_0x21bfd8]={'$like':'%'+_0x280498[_0x75d1('0x27')]['filter']+'%'};return _0x45eea3;})});}_0x367238=_[_0x75d1('0x36')]({},_0x367238,_0x280498[_0x75d1('0x37')]);var _0x38bf47={'where':_0x367238[_0x75d1('0x32')]};return db[_0x75d1('0x23')][_0x75d1('0x17')](_0x38bf47)[_0x75d1('0x1f')](function(_0x3e8865){_0x54095d[_0x75d1('0x17')]=_0x3e8865;if(_0x280498[_0x75d1('0x27')][_0x75d1('0x38')]){_0x367238[_0x75d1('0x39')]=[{'all':!![]}];}return db[_0x75d1('0x23')][_0x75d1('0x3a')](_0x367238);})[_0x75d1('0x1f')](function(_0xd4f344){_0x54095d[_0x75d1('0x3b')]=_0xd4f344;return _0x54095d;})[_0x75d1('0x1f')](respondWithFilteredResult(_0x2b5848,_0x367238))[_0x75d1('0x3c')](handleError(_0x2b5848,null));};exports[_0x75d1('0x3d')]=function(_0x9e2f32,_0x3a4bd9){var _0x4e70ba={'raw':!![],'where':{'id':_0x9e2f32[_0x75d1('0x3e')]['id']}},_0x5b2949={};_0x5b2949[_0x75d1('0x25')]=_[_0x75d1('0x26')](db[_0x75d1('0x23')]['rawAttributes']);_0x5b2949[_0x75d1('0x27')]=_[_0x75d1('0x26')](_0x9e2f32[_0x75d1('0x27')]);_0x5b2949[_0x75d1('0x2a')]=_['intersection'](_0x5b2949[_0x75d1('0x25')],_0x5b2949[_0x75d1('0x27')]);_0x4e70ba[_0x75d1('0x2b')]=_[_0x75d1('0x2c')](_0x5b2949['model'],qs[_0x75d1('0x2d')](_0x9e2f32['query'][_0x75d1('0x2d')]));_0x4e70ba[_0x75d1('0x2b')]=_0x4e70ba[_0x75d1('0x2b')][_0x75d1('0x2e')]?_0x4e70ba[_0x75d1('0x2b')]:_0x5b2949[_0x75d1('0x25')];if(_0x9e2f32['query'][_0x75d1('0x38')]){_0x4e70ba['include']=[{'all':!![]}];}_0x4e70ba=_['merge']({},_0x4e70ba,_0x9e2f32[_0x75d1('0x37')]);return db[_0x75d1('0x23')][_0x75d1('0x3f')](_0x4e70ba)[_0x75d1('0x1f')](handleEntityNotFound(_0x3a4bd9,null))[_0x75d1('0x1f')](respondWithResult(_0x3a4bd9,null))[_0x75d1('0x3c')](handleError(_0x3a4bd9,null));};exports[_0x75d1('0x1e')]=function(_0x5b7b7c,_0x5d7ebf){if(_0x5b7b7c[_0x75d1('0x40')]['id']){delete _0x5b7b7c[_0x75d1('0x40')]['id'];}return db['CannedAnswer'][_0x75d1('0x3f')]({'where':{'id':_0x5b7b7c[_0x75d1('0x3e')]['id']}})[_0x75d1('0x1f')](handleEntityNotFound(_0x5d7ebf,null))['then'](saveUpdates(_0x5b7b7c[_0x75d1('0x40')],null))[_0x75d1('0x1f')](respondWithResult(_0x5d7ebf,null))[_0x75d1('0x3c')](handleError(_0x5d7ebf,null));};exports[_0x75d1('0x20')]=function(_0x352208,_0x41869d){return db[_0x75d1('0x23')]['find']({'where':{'id':_0x352208[_0x75d1('0x3e')]['id']}})[_0x75d1('0x1f')](handleEntityNotFound(_0x41869d,null))[_0x75d1('0x1f')](removeEntity(_0x41869d,null))[_0x75d1('0x3c')](handleError(_0x41869d,null));};exports[_0x75d1('0x41')]=function(_0x326f42,_0x40a179){var _0x595ec7={'key':_0x326f42[_0x75d1('0x40')][_0x75d1('0x42')]};if(_0x326f42[_0x75d1('0x40')]['MailAccountId']){_0x595ec7[_0x75d1('0x43')]=_0x326f42[_0x75d1('0x40')][_0x75d1('0x43')];}else if(_0x326f42[_0x75d1('0x40')][_0x75d1('0x44')]){_0x595ec7[_0x75d1('0x44')]=_0x326f42['body'][_0x75d1('0x44')];}else if(_0x326f42[_0x75d1('0x40')][_0x75d1('0x45')]){_0x595ec7[_0x75d1('0x45')]=_0x326f42[_0x75d1('0x40')][_0x75d1('0x45')];}else if(_0x326f42[_0x75d1('0x40')][_0x75d1('0x46')]){_0x595ec7[_0x75d1('0x46')]=_0x326f42[_0x75d1('0x40')][_0x75d1('0x46')];}return db[_0x75d1('0x23')]['find']({'where':_0x595ec7})['then'](function(_0x41d54f){if(_0x41d54f){throw new db['Sequelize'][(_0x75d1('0x47'))](_0x75d1('0x48'));}return db['CannedAnswer'][_0x75d1('0x41')](_0x326f42[_0x75d1('0x40')]);})[_0x75d1('0x1f')](respondWithResult(_0x40a179,0xc9))[_0x75d1('0x3c')](handleError(_0x40a179,null));};
\ No newline at end of file
+var _0x72b1=['end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','CannedAnswer','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','add','day','merge','filter','options','includeAll','include','findAll','catch','show','find','body','params','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','jsforce','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status'];(function(_0x1c29f2,_0x546bf6){var _0xfa1442=function(_0x3229f1){while(--_0x3229f1){_0x1c29f2['push'](_0x1c29f2['shift']());}};_0xfa1442(++_0x546bf6);}(_0x72b1,0x16e));var _0x172b=function(_0x354f59,_0xfc3348){_0x354f59=_0x354f59-0x0;var _0x275f61=_0x72b1[_0x354f59];return _0x275f61;};'use strict';var pdf=require(_0x172b('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x172b('0x1'));var zipdir=require(_0x172b('0x2'));var jsonpatch=require(_0x172b('0x3'));var rp=require(_0x172b('0x4'));var moment=require(_0x172b('0x5'));var BPromise=require(_0x172b('0x6'));var Mustache=require(_0x172b('0x7'));var util=require('util');var path=require(_0x172b('0x8'));var sox=require(_0x172b('0x9'));var csv=require(_0x172b('0xa'));var ejs=require(_0x172b('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x172b('0xc'));var crypto=require('crypto');var jsforce=require(_0x172b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x172b('0xa'));var querystring=require(_0x172b('0xe'));var Papa=require(_0x172b('0xf'));var Redis=require(_0x172b('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0x172b('0x11'))(_0x172b('0x12'));var utils=require(_0x172b('0x13'));var config=require(_0x172b('0x14'));var db=require(_0x172b('0x15'))['db'];function respondWithStatusCode(_0x131762,_0x1d899a){_0x1d899a=_0x1d899a||0xcc;return function(_0x5a171f){if(_0x5a171f){return _0x131762[_0x172b('0x16')](_0x1d899a);}return _0x131762[_0x172b('0x17')](_0x1d899a)[_0x172b('0x18')]();};}function respondWithResult(_0x4970f8,_0x289040){_0x289040=_0x289040||0xc8;return function(_0x4a98e2){if(_0x4a98e2){return _0x4970f8[_0x172b('0x17')](_0x289040)[_0x172b('0x19')](_0x4a98e2);}};}function respondWithFilteredResult(_0x5239b9,_0x1b7247){return function(_0x3452f2){if(_0x3452f2){var _0x2790ed=_0x3452f2[_0x172b('0x1a')],_0xa28463=_0x1b7247[_0x172b('0x1b')],_0x5b0ab1=_0x1b7247[_0x172b('0x1b')]+_0x1b7247[_0x172b('0x1c')],_0x5293ef;if(_0x5b0ab1>=_0x2790ed){_0x5b0ab1=_0x2790ed;_0x5293ef=0xc8;}else{_0x5293ef=0xce;}_0x5239b9['status'](_0x5293ef);return _0x5239b9['set'](_0x172b('0x1d'),_0xa28463+'-'+_0x5b0ab1+'/'+_0x2790ed)[_0x172b('0x19')](_0x3452f2);}return null;};}function patchUpdates(_0x18c22a){return function(_0xba7825){try{jsonpatch[_0x172b('0x1e')](_0xba7825,_0x18c22a,!![]);}catch(_0x4e7cb9){return BPromise[_0x172b('0x1f')](_0x4e7cb9);}return _0xba7825[_0x172b('0x20')]();};}function saveUpdates(_0x2bedae,_0x33c62c){return function(_0x12f3ec){if(_0x12f3ec){return _0x12f3ec[_0x172b('0x21')](_0x2bedae)[_0x172b('0x22')](function(_0x5c7e17){return _0x5c7e17;});}return null;};}function removeEntity(_0x4edaad,_0x562db9){return function(_0x5abb78){if(_0x5abb78){return _0x5abb78[_0x172b('0x23')]()['then'](function(){_0x4edaad[_0x172b('0x17')](0xcc)[_0x172b('0x18')]();});}};}function handleEntityNotFound(_0x19ca8e,_0x256fb5){return function(_0x32419a){if(!_0x32419a){_0x19ca8e[_0x172b('0x16')](0x194);}return _0x32419a;};}function handleError(_0x507b99,_0x1cefd1){_0x1cefd1=_0x1cefd1||0x1f4;return function(_0x275414){logger['error'](_0x275414[_0x172b('0x24')]);if(_0x275414[_0x172b('0x25')]){delete _0x275414[_0x172b('0x25')];}_0x507b99[_0x172b('0x17')](_0x1cefd1)[_0x172b('0x26')](_0x275414);};}exports[_0x172b('0x27')]=function(_0x39bdc5,_0x5ee442){var _0x1deb7e={},_0x22827a={},_0x5c8603={'count':0x0,'rows':[]};var _0x4263a1=db[_0x172b('0x28')][_0x172b('0x29')];_0x22827a[_0x172b('0x2a')]=_[_0x172b('0x2b')](_0x4263a1);var _0x4bea8e={'dateStart':_0x39bdc5[_0x172b('0x2c')][_0x172b('0x2d')],'dateEnd':_0x39bdc5['query']['dateEnd']};delete _0x39bdc5[_0x172b('0x2c')][_0x172b('0x2d')];delete _0x39bdc5[_0x172b('0x2c')][_0x172b('0x2e')];_0x22827a[_0x172b('0x2c')]=_[_0x172b('0x2b')](_0x39bdc5[_0x172b('0x2c')]);_0x22827a[_0x172b('0x2f')]=_[_0x172b('0x30')](_0x22827a[_0x172b('0x2a')],_0x22827a[_0x172b('0x2c')]);_0x1deb7e[_0x172b('0x31')]=_[_0x172b('0x30')](_0x22827a[_0x172b('0x2a')],qs[_0x172b('0x32')](_0x39bdc5[_0x172b('0x2c')][_0x172b('0x32')]));_0x1deb7e[_0x172b('0x31')]=_0x1deb7e[_0x172b('0x31')][_0x172b('0x33')]?_0x1deb7e[_0x172b('0x31')]:_0x22827a[_0x172b('0x2a')];if(!_0x39bdc5[_0x172b('0x2c')][_0x172b('0x34')](_0x172b('0x35'))){_0x1deb7e['limit']=qs[_0x172b('0x1c')](_0x39bdc5[_0x172b('0x2c')][_0x172b('0x1c')]);_0x1deb7e['offset']=qs[_0x172b('0x1b')](_0x39bdc5['query']['offset']);}_0x1deb7e['order']=qs[_0x172b('0x36')](_0x39bdc5['query']['sort']);_0x1deb7e[_0x172b('0x37')]=qs[_0x172b('0x2f')](_[_0x172b('0x38')](_0x39bdc5['query'],_0x22827a[_0x172b('0x2f')]));if(_0x4bea8e[_0x172b('0x2d')]){if(_0x4bea8e[_0x172b('0x2e')]){_0x4bea8e[_0x172b('0x2e')]=moment(_0x4bea8e[_0x172b('0x2e')])[_0x172b('0x39')](0x1,_0x172b('0x3a'));}else{_0x4bea8e[_0x172b('0x2e')]=moment(_0x4bea8e[_0x172b('0x2d')])[_0x172b('0x39')](0x1,_0x172b('0x3a'));}_[_0x172b('0x3b')](_0x1deb7e[_0x172b('0x37')],{'createdAt':{'$gte':_0x4bea8e[_0x172b('0x2d')],'$lte':_0x4bea8e[_0x172b('0x2e')]}});}if(_0x39bdc5[_0x172b('0x2c')][_0x172b('0x3c')]){_0x1deb7e[_0x172b('0x37')]=_[_0x172b('0x3b')](_0x1deb7e['where'],{'$or':_['map'](_0x1deb7e[_0x172b('0x31')],function(_0x4fc858){var _0x5e8ff6={};_0x5e8ff6[_0x4fc858]={'$like':'%'+_0x39bdc5['query'][_0x172b('0x3c')]+'%'};return _0x5e8ff6;})});}_0x1deb7e=_[_0x172b('0x3b')]({},_0x1deb7e,_0x39bdc5[_0x172b('0x3d')]);var _0x54e62d={'where':_0x1deb7e[_0x172b('0x37')]};return db[_0x172b('0x28')][_0x172b('0x1a')](_0x54e62d)['then'](function(_0x3cff36){_0x5c8603['count']=_0x3cff36;if(_0x39bdc5[_0x172b('0x2c')][_0x172b('0x3e')]){_0x1deb7e[_0x172b('0x3f')]=[{'all':!![]}];}return db[_0x172b('0x28')][_0x172b('0x40')](_0x1deb7e);})[_0x172b('0x22')](function(_0x24fba9){_0x5c8603['rows']=_0x24fba9;return _0x5c8603;})[_0x172b('0x22')](respondWithFilteredResult(_0x5ee442,_0x1deb7e))[_0x172b('0x41')](handleError(_0x5ee442,null));};exports[_0x172b('0x42')]=function(_0x13ccb3,_0x9b8d79){var _0x28e9ea={'raw':!![],'where':{'id':_0x13ccb3['params']['id']}},_0x5302cf={};_0x5302cf[_0x172b('0x2a')]=_['keys'](db['CannedAnswer']['rawAttributes']);_0x5302cf[_0x172b('0x2c')]=_[_0x172b('0x2b')](_0x13ccb3[_0x172b('0x2c')]);_0x5302cf[_0x172b('0x2f')]=_['intersection'](_0x5302cf[_0x172b('0x2a')],_0x5302cf[_0x172b('0x2c')]);_0x28e9ea[_0x172b('0x31')]=_[_0x172b('0x30')](_0x5302cf[_0x172b('0x2a')],qs[_0x172b('0x32')](_0x13ccb3[_0x172b('0x2c')][_0x172b('0x32')]));_0x28e9ea[_0x172b('0x31')]=_0x28e9ea[_0x172b('0x31')][_0x172b('0x33')]?_0x28e9ea[_0x172b('0x31')]:_0x5302cf['model'];if(_0x13ccb3[_0x172b('0x2c')][_0x172b('0x3e')]){_0x28e9ea['include']=[{'all':!![]}];}_0x28e9ea=_['merge']({},_0x28e9ea,_0x13ccb3[_0x172b('0x3d')]);return db[_0x172b('0x28')][_0x172b('0x43')](_0x28e9ea)['then'](handleEntityNotFound(_0x9b8d79,null))[_0x172b('0x22')](respondWithResult(_0x9b8d79,null))['catch'](handleError(_0x9b8d79,null));};exports['update']=function(_0x2bd316,_0x273001){if(_0x2bd316[_0x172b('0x44')]['id']){delete _0x2bd316[_0x172b('0x44')]['id'];}return db[_0x172b('0x28')][_0x172b('0x43')]({'where':{'id':_0x2bd316[_0x172b('0x45')]['id']}})[_0x172b('0x22')](handleEntityNotFound(_0x273001,null))[_0x172b('0x22')](saveUpdates(_0x2bd316[_0x172b('0x44')],null))['then'](respondWithResult(_0x273001,null))['catch'](handleError(_0x273001,null));};exports[_0x172b('0x23')]=function(_0x29ee62,_0x5168dd){return db['CannedAnswer'][_0x172b('0x43')]({'where':{'id':_0x29ee62[_0x172b('0x45')]['id']}})[_0x172b('0x22')](handleEntityNotFound(_0x5168dd,null))[_0x172b('0x22')](removeEntity(_0x5168dd,null))[_0x172b('0x41')](handleError(_0x5168dd,null));};exports[_0x172b('0x46')]=function(_0x5c0526,_0x28ffa1){var _0x5f29d4={'key':_0x5c0526['body'][_0x172b('0x47')]};if(_0x5c0526[_0x172b('0x44')][_0x172b('0x48')]){_0x5f29d4['MailAccountId']=_0x5c0526[_0x172b('0x44')][_0x172b('0x48')];}else if(_0x5c0526[_0x172b('0x44')]['SmsAccountId']){_0x5f29d4['SmsAccountId']=_0x5c0526[_0x172b('0x44')][_0x172b('0x49')];}else if(_0x5c0526[_0x172b('0x44')][_0x172b('0x4a')]){_0x5f29d4[_0x172b('0x4a')]=_0x5c0526[_0x172b('0x44')][_0x172b('0x4a')];}else if(_0x5c0526[_0x172b('0x44')]['ChatWebsiteId']){_0x5f29d4[_0x172b('0x4b')]=_0x5c0526['body']['ChatWebsiteId'];}return db[_0x172b('0x28')]['find']({'where':_0x5f29d4})[_0x172b('0x22')](function(_0x3e3a33){if(_0x3e3a33){throw new db[(_0x172b('0x4c'))]['ValidationError'](_0x172b('0x4d'));}return db['CannedAnswer'][_0x172b('0x46')](_0x5c0526[_0x172b('0x44')]);})['then'](respondWithResult(_0x28ffa1,0xc9))[_0x172b('0x41')](handleError(_0x28ffa1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0aa2=['exports','define','tools_canned_answers','util','../../config/logger','api','moment'];(function(_0xdc2236,_0x30ab19){var _0x28f5bd=function(_0x1f891e){while(--_0x1f891e){_0xdc2236['push'](_0xdc2236['shift']());}};_0x28f5bd(++_0x30ab19);}(_0x0aa2,0x114));var _0x20aa=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x0aa2[_0x59ee6f];return _0x4c0979;};'use strict';var _=require('lodash');var util=require(_0x20aa('0x0'));var logger=require(_0x20aa('0x1'))(_0x20aa('0x2'));var moment=require(_0x20aa('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require('./cannedAnswer.attributes');module[_0x20aa('0x4')]=function(_0x1c2615,_0xad0a73){return _0x1c2615[_0x20aa('0x5')]('CannedAnswer',attributes,{'tableName':_0x20aa('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x558e=['bluebird','./cannedAnswer.attributes','define','CannedAnswer','tools_canned_answers','util','../../config/logger','moment'];(function(_0x1fda66,_0x5471c9){var _0x46d6ba=function(_0x11b9c2){while(--_0x11b9c2){_0x1fda66['push'](_0x1fda66['shift']());}};_0x46d6ba(++_0x5471c9);}(_0x558e,0xc5));var _0xe558=function(_0x205e5a,_0x5c19fb){_0x205e5a=_0x205e5a-0x0;var _0x10da58=_0x558e[_0x205e5a];return _0x10da58;};'use strict';var _=require('lodash');var util=require(_0xe558('0x0'));var logger=require(_0xe558('0x1'))('api');var moment=require(_0xe558('0x2'));var BPromise=require(_0xe558('0x3'));var rp=require('request-promise');var attributes=require(_0xe558('0x4'));module['exports']=function(_0x57879f,_0x3bc311){return _0x57879f[_0xe558('0x5')](_0xe558('0x6'),attributes,{'tableName':_0xe558('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x282a=['randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','CannedAnswer,\x20%s,\x20%s','CannedAnswer,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','bluebird'];(function(_0x7765a7,_0x3b1041){var _0x4d5be3=function(_0x22db38){while(--_0x22db38){_0x7765a7['push'](_0x7765a7['shift']());}};_0x4d5be3(++_0x3b1041);}(_0x282a,0xf9));var _0xa282=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0x282a[_0x413feb];return _0x40ee88;};'use strict';var _=require(_0xa282('0x0'));var util=require(_0xa282('0x1'));var moment=require('moment');var BPromise=require(_0xa282('0x2'));var rs=require(_0xa282('0x3'));var fs=require('fs');var db=require(_0xa282('0x4'))['db'];var utils=require(_0xa282('0x5'));var logger=require(_0xa282('0x6'))('rpc');var config=require(_0xa282('0x7'));var jayson=require(_0xa282('0x8'));var client=jayson[_0xa282('0x9')][_0xa282('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1e9409,_0x575b0b,_0x6e7b73){return new BPromise(function(_0x400721,_0x9d9049){return client[_0xa282('0xb')](_0x1e9409,_0x6e7b73)['then'](function(_0x417f3b){logger[_0xa282('0xc')](_0xa282('0xd'),_0x575b0b,'request\x20sent');logger['debug'](_0xa282('0xe'),_0x575b0b,_0xa282('0xf'),JSON[_0xa282('0x10')](_0x417f3b));if(_0x417f3b[_0xa282('0x11')]){if(_0x417f3b[_0xa282('0x11')][_0xa282('0x12')]===0x1f4){logger[_0xa282('0x11')](_0xa282('0xd'),_0x575b0b,_0x417f3b[_0xa282('0x11')][_0xa282('0x13')]);return _0x9d9049(_0x417f3b[_0xa282('0x11')][_0xa282('0x13')]);}logger[_0xa282('0x11')](_0xa282('0xd'),_0x575b0b,_0x417f3b[_0xa282('0x11')]['message']);return _0x400721(_0x417f3b[_0xa282('0x11')][_0xa282('0x13')]);}else{logger[_0xa282('0xc')](_0xa282('0xd'),_0x575b0b,_0xa282('0xf'));_0x400721(_0x417f3b['result'][_0xa282('0x13')]);}})[_0xa282('0x14')](function(_0x598f7d){logger[_0xa282('0x11')](_0xa282('0xd'),_0x575b0b,_0x598f7d);_0x9d9049(_0x598f7d);});});}
\ No newline at end of file
+var _0xaff4=['stringify','error','code','message','result','catch','moment','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','info','CannedAnswer,\x20%s,\x20%s','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x115a70,_0x1fa44b){var _0x295e89=function(_0x201dd3){while(--_0x201dd3){_0x115a70['push'](_0x115a70['shift']());}};_0x295e89(++_0x1fa44b);}(_0xaff4,0x8b));var _0x4aff=function(_0x4c321c,_0x3e9da0){_0x4c321c=_0x4c321c-0x0;var _0x25accb=_0xaff4[_0x4c321c];return _0x25accb;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x4aff('0x0'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4aff('0x1'))['db'];var utils=require(_0x4aff('0x2'));var logger=require('../../config/logger')('rpc');var config=require(_0x4aff('0x3'));var jayson=require('jayson/promise');var client=jayson[_0x4aff('0x4')][_0x4aff('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x1f65c8,_0x47fec4,_0x1b3a4a){return new BPromise(function(_0x28f2cf,_0x535238){return client[_0x4aff('0x6')](_0x1f65c8,_0x1b3a4a)[_0x4aff('0x7')](function(_0x28fd96){logger[_0x4aff('0x8')](_0x4aff('0x9'),_0x47fec4,'request\x20sent');logger[_0x4aff('0xa')](_0x4aff('0xb'),_0x47fec4,_0x4aff('0xc'),JSON[_0x4aff('0xd')](_0x28fd96));if(_0x28fd96[_0x4aff('0xe')]){if(_0x28fd96['error'][_0x4aff('0xf')]===0x1f4){logger[_0x4aff('0xe')](_0x4aff('0x9'),_0x47fec4,_0x28fd96[_0x4aff('0xe')][_0x4aff('0x10')]);return _0x535238(_0x28fd96[_0x4aff('0xe')][_0x4aff('0x10')]);}logger['error'](_0x4aff('0x9'),_0x47fec4,_0x28fd96[_0x4aff('0xe')][_0x4aff('0x10')]);return _0x28f2cf(_0x28fd96['error'][_0x4aff('0x10')]);}else{logger[_0x4aff('0x8')]('CannedAnswer,\x20%s,\x20%s',_0x47fec4,_0x4aff('0xc'));_0x28f2cf(_0x28fd96[_0x4aff('0x11')]['message']);}})[_0x4aff('0x12')](function(_0x458a45){logger[_0x4aff('0xe')]('CannedAnswer,\x20%s,\x20%s',_0x47fec4,_0x458a45);_0x535238(_0x458a45);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeebc=['destroy','exports','multer','path','express','../../config/environment','./cannedAnswer.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete'];(function(_0x298e76,_0x5718bf){var _0x51b1a8=function(_0x18a830){while(--_0x18a830){_0x298e76['push'](_0x298e76['shift']());}};_0x51b1a8(++_0x5718bf);}(_0xeebc,0x79));var _0xceeb=function(_0x4cbc15,_0x51c076){_0x4cbc15=_0x4cbc15-0x0;var _0x3aadc0=_0xeebc[_0x4cbc15];return _0x3aadc0;};'use strict';var multer=require(_0xceeb('0x0'));var util=require('util');var path=require(_0xceeb('0x1'));var timeout=require('connect-timeout');var express=require(_0xceeb('0x2'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xceeb('0x3'));var controller=require(_0xceeb('0x4'));router[_0xceeb('0x5')]('/',auth[_0xceeb('0x6')](),controller[_0xceeb('0x7')]);router[_0xceeb('0x5')](_0xceeb('0x8'),auth[_0xceeb('0x6')](),controller[_0xceeb('0x9')]);router[_0xceeb('0xa')]('/',auth['isAuthenticated'](),controller[_0xceeb('0xb')]);router[_0xceeb('0xc')](_0xceeb('0x8'),auth[_0xceeb('0x6')](),controller[_0xceeb('0xd')]);router[_0xceeb('0xe')](_0xceeb('0x8'),auth[_0xceeb('0x6')](),controller[_0xceeb('0xf')]);module[_0xceeb('0x10')]=router;
\ No newline at end of file
+var _0x379e=['multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cannedAnswer.controller','get','isAuthenticated','index','/:id','show','post','create','put','destroy','exports'];(function(_0x252328,_0x4c22f0){var _0xaa85b7=function(_0x2623d0){while(--_0x2623d0){_0x252328['push'](_0x252328['shift']());}};_0xaa85b7(++_0x4c22f0);}(_0x379e,0x1a2));var _0xe379=function(_0x11145c,_0x4587ec){_0x11145c=_0x11145c-0x0;var _0x527ebc=_0x379e[_0x11145c];return _0x527ebc;};'use strict';var multer=require(_0xe379('0x0'));var util=require(_0xe379('0x1'));var path=require('path');var timeout=require(_0xe379('0x2'));var express=require(_0xe379('0x3'));var router=express[_0xe379('0x4')]();var auth=require(_0xe379('0x5'));var interaction=require(_0xe379('0x6'));var config=require(_0xe379('0x7'));var controller=require(_0xe379('0x8'));router[_0xe379('0x9')]('/',auth[_0xe379('0xa')](),controller[_0xe379('0xb')]);router[_0xe379('0x9')](_0xe379('0xc'),auth['isAuthenticated'](),controller[_0xe379('0xd')]);router[_0xe379('0xe')]('/',auth[_0xe379('0xa')](),controller[_0xe379('0xf')]);router[_0xe379('0x10')](_0xe379('0xc'),auth[_0xe379('0xa')](),controller['update']);router['delete'](_0xe379('0xc'),auth[_0xe379('0xa')](),controller[_0xe379('0x11')]);module[_0xe379('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8763=['STRING','INTEGER','sequelize','DATE'];(function(_0x6ae430,_0x3a9974){var _0x17ff5e=function(_0x4ccd71){while(--_0x4ccd71){_0x6ae430['push'](_0x6ae430['shift']());}};_0x17ff5e(++_0x3a9974);}(_0x8763,0x1d2));var _0x3876=function(_0x595213,_0x890923){_0x595213=_0x595213-0x0;var _0x2e1124=_0x8763[_0x595213];return _0x2e1124;};'use strict';var Sequelize=require(_0x3876('0x0'));module['exports']={'calldate':{'type':Sequelize[_0x3876('0x1')],'allowNull':![],'defaultValue':'1970-01-01\x2000:00:01'},'clid':{'type':Sequelize[_0x3876('0x2')]},'src':{'type':Sequelize[_0x3876('0x2')]},'dst':{'type':Sequelize[_0x3876('0x2')]},'dcontext':{'type':Sequelize[_0x3876('0x2')]},'channel':{'type':Sequelize['STRING']},'dstchannel':{'type':Sequelize[_0x3876('0x2')]},'lastapp':{'type':Sequelize[_0x3876('0x2')]},'lastdata':{'type':Sequelize['STRING']},'duration':{'type':Sequelize[_0x3876('0x3')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x3876('0x3')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x3876('0x2')]},'amaflags':{'type':Sequelize[_0x3876('0x3')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x3876('0x2')]},'userfield':{'type':Sequelize[_0x3876('0x2')]},'uniqueid':{'type':Sequelize[_0x3876('0x2')]},'linkedid':{'type':Sequelize[_0x3876('0x2')]},'sequence':{'type':Sequelize['STRING']},'peeraccount':{'type':Sequelize[_0x3876('0x2')]},'type':{'type':Sequelize[_0x3876('0x2')]},'tag':{'type':Sequelize[_0x3876('0x2')]}};
\ No newline at end of file
+var _0x9e97=['INTEGER','DATE','1970-01-01\x2000:00:01','STRING'];(function(_0x284939,_0x8b35a1){var _0x1e16d8=function(_0x9d6893){while(--_0x9d6893){_0x284939['push'](_0x284939['shift']());}};_0x1e16d8(++_0x8b35a1);}(_0x9e97,0x129));var _0x79e9=function(_0x192c17,_0x1c0613){_0x192c17=_0x192c17-0x0;var _0x146cda=_0x9e97[_0x192c17];return _0x146cda;};'use strict';var Sequelize=require('sequelize');module['exports']={'calldate':{'type':Sequelize[_0x79e9('0x0')],'allowNull':![],'defaultValue':_0x79e9('0x1')},'clid':{'type':Sequelize[_0x79e9('0x2')]},'src':{'type':Sequelize[_0x79e9('0x2')]},'dst':{'type':Sequelize[_0x79e9('0x2')]},'dcontext':{'type':Sequelize[_0x79e9('0x2')]},'channel':{'type':Sequelize[_0x79e9('0x2')]},'dstchannel':{'type':Sequelize['STRING']},'lastapp':{'type':Sequelize[_0x79e9('0x2')]},'lastdata':{'type':Sequelize[_0x79e9('0x2')]},'duration':{'type':Sequelize[_0x79e9('0x3')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x79e9('0x2')]},'amaflags':{'type':Sequelize[_0x79e9('0x3')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x79e9('0x2')]},'userfield':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'linkedid':{'type':Sequelize[_0x79e9('0x2')]},'sequence':{'type':Sequelize[_0x79e9('0x2')]},'peeraccount':{'type':Sequelize[_0x79e9('0x2')]},'type':{'type':Sequelize[_0x79e9('0x2')]},'tag':{'type':Sequelize[_0x79e9('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb82=['includeAll','findAll','rows','catch','params','include','find','create','body','describe','html-pdf','eml-format','fast-json-patch','moment','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','reject','save','update','destroy','then','error','stack','name','send','Cdr','keys','query','dateEnd','dateStart','filters','model','attributes','intersection','fields','length','nolimit','order','sort','where','pick','add','day','merge','filter','map','options'];(function(_0x50aec0,_0xcade9b){var _0x2dbc2b=function(_0x16babc){while(--_0x16babc){_0x50aec0['push'](_0x50aec0['shift']());}};_0x2dbc2b(++_0xcade9b);}(_0xbb82,0x163));var _0x2bb8=function(_0xc55d64,_0x133f2d){_0xc55d64=_0xc55d64-0x0;var _0x4194f6=_0xbb82[_0xc55d64];return _0x4194f6;};'use strict';var pdf=require(_0x2bb8('0x0'));var emlformat=require(_0x2bb8('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2bb8('0x2'));var rp=require('request-promise');var moment=require(_0x2bb8('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2bb8('0x4'));var util=require('util');var path=require(_0x2bb8('0x5'));var sox=require(_0x2bb8('0x6'));var csv=require(_0x2bb8('0x7'));var ejs=require(_0x2bb8('0x8'));var fs=require('fs');var _=require(_0x2bb8('0x9'));var squel=require(_0x2bb8('0xa'));var crypto=require(_0x2bb8('0xb'));var jsforce=require(_0x2bb8('0xc'));var deskjs=require(_0x2bb8('0xd'));var toCsv=require(_0x2bb8('0x7'));var querystring=require('querystring');var Papa=require(_0x2bb8('0xe'));var qs=require(_0x2bb8('0xf'));var logger=require(_0x2bb8('0x10'))(_0x2bb8('0x11'));var utils=require('../../config/utils');var config=require(_0x2bb8('0x12'));var db=require(_0x2bb8('0x13'))['db'];function respondWithStatusCode(_0x2901da,_0x20076b){_0x20076b=_0x20076b||0xcc;return function(_0x4431e){if(_0x4431e){return _0x2901da[_0x2bb8('0x14')](_0x20076b);}return _0x2901da[_0x2bb8('0x15')](_0x20076b)[_0x2bb8('0x16')]();};}function respondWithResult(_0xbbb86d,_0x3b0970){_0x3b0970=_0x3b0970||0xc8;return function(_0xa6e3ab){if(_0xa6e3ab){return _0xbbb86d[_0x2bb8('0x15')](_0x3b0970)[_0x2bb8('0x17')](_0xa6e3ab);}};}function respondWithFilteredResult(_0x8974b4,_0x31776d){return function(_0x455d3b){if(_0x455d3b){var _0x37baae=_0x455d3b[_0x2bb8('0x18')],_0x437c40=_0x31776d[_0x2bb8('0x19')],_0x47a81b=_0x31776d[_0x2bb8('0x19')]+_0x31776d[_0x2bb8('0x1a')],_0xfdd6e2;if(_0x47a81b>=_0x37baae){_0x47a81b=_0x37baae;_0xfdd6e2=0xc8;}else{_0xfdd6e2=0xce;}_0x8974b4[_0x2bb8('0x15')](_0xfdd6e2);return _0x8974b4[_0x2bb8('0x1b')]('Content-Range',_0x437c40+'-'+_0x47a81b+'/'+_0x37baae)['json'](_0x455d3b);}return null;};}function patchUpdates(_0x4023b7){return function(_0x269835){try{jsonpatch['apply'](_0x269835,_0x4023b7,!![]);}catch(_0x566329){return BPromise[_0x2bb8('0x1c')](_0x566329);}return _0x269835[_0x2bb8('0x1d')]();};}function saveUpdates(_0x3210d7,_0x3908d1){return function(_0x26d735){if(_0x26d735){return _0x26d735[_0x2bb8('0x1e')](_0x3210d7)['then'](function(_0x24dda4){return _0x24dda4;});}return null;};}function removeEntity(_0x2f374c,_0x3fe4ca){return function(_0x2431ce){if(_0x2431ce){return _0x2431ce[_0x2bb8('0x1f')]()[_0x2bb8('0x20')](function(){_0x2f374c['status'](0xcc)[_0x2bb8('0x16')]();});}};}function handleEntityNotFound(_0x2233b5,_0x1811ad){return function(_0x2d2b56){if(!_0x2d2b56){_0x2233b5['sendStatus'](0x194);}return _0x2d2b56;};}function handleError(_0x17e1ec,_0xd3b3d4){_0xd3b3d4=_0xd3b3d4||0x1f4;return function(_0xcc60d1){logger[_0x2bb8('0x21')](_0xcc60d1[_0x2bb8('0x22')]);if(_0xcc60d1[_0x2bb8('0x23')]){delete _0xcc60d1[_0x2bb8('0x23')];}_0x17e1ec[_0x2bb8('0x15')](_0xd3b3d4)[_0x2bb8('0x24')](_0xcc60d1);};}exports['index']=function(_0x512e5d,_0x41acbe){var _0x2c375b={},_0x2d23a4={},_0x5b21c8={'count':0x0,'rows':[]};var _0x3848f8=db[_0x2bb8('0x25')]['rawAttributes'];_0x2d23a4['model']=_[_0x2bb8('0x26')](_0x3848f8);var _0x2d4ec3={'dateStart':_0x512e5d[_0x2bb8('0x27')]['dateStart'],'dateEnd':_0x512e5d[_0x2bb8('0x27')][_0x2bb8('0x28')]};delete _0x512e5d[_0x2bb8('0x27')][_0x2bb8('0x29')];delete _0x512e5d['query'][_0x2bb8('0x28')];_0x2d23a4[_0x2bb8('0x27')]=_[_0x2bb8('0x26')](_0x512e5d[_0x2bb8('0x27')]);_0x2d23a4[_0x2bb8('0x2a')]=_['intersection'](_0x2d23a4[_0x2bb8('0x2b')],_0x2d23a4[_0x2bb8('0x27')]);_0x2c375b[_0x2bb8('0x2c')]=_[_0x2bb8('0x2d')](_0x2d23a4[_0x2bb8('0x2b')],qs['fields'](_0x512e5d['query'][_0x2bb8('0x2e')]));_0x2c375b[_0x2bb8('0x2c')]=_0x2c375b[_0x2bb8('0x2c')][_0x2bb8('0x2f')]?_0x2c375b[_0x2bb8('0x2c')]:_0x2d23a4['model'];if(!_0x512e5d[_0x2bb8('0x27')]['hasOwnProperty'](_0x2bb8('0x30'))){_0x2c375b[_0x2bb8('0x1a')]=qs[_0x2bb8('0x1a')](_0x512e5d['query'][_0x2bb8('0x1a')]);_0x2c375b[_0x2bb8('0x19')]=qs[_0x2bb8('0x19')](_0x512e5d['query'][_0x2bb8('0x19')]);}_0x2c375b[_0x2bb8('0x31')]=qs[_0x2bb8('0x32')](_0x512e5d[_0x2bb8('0x27')][_0x2bb8('0x32')]);_0x2c375b[_0x2bb8('0x33')]=qs['filters'](_[_0x2bb8('0x34')](_0x512e5d[_0x2bb8('0x27')],_0x2d23a4[_0x2bb8('0x2a')]));if(_0x2d4ec3[_0x2bb8('0x29')]){if(_0x2d4ec3['dateEnd']){_0x2d4ec3['dateEnd']=moment(_0x2d4ec3[_0x2bb8('0x28')])[_0x2bb8('0x35')](0x1,'day');}else{_0x2d4ec3[_0x2bb8('0x28')]=moment(_0x2d4ec3['dateStart'])[_0x2bb8('0x35')](0x1,_0x2bb8('0x36'));}_[_0x2bb8('0x37')](_0x2c375b[_0x2bb8('0x33')],{'createdAt':{'$gte':_0x2d4ec3[_0x2bb8('0x29')],'$lte':_0x2d4ec3[_0x2bb8('0x28')]}});}if(_0x512e5d[_0x2bb8('0x27')][_0x2bb8('0x38')]){_0x2c375b[_0x2bb8('0x33')]=_[_0x2bb8('0x37')](_0x2c375b['where'],{'$or':_[_0x2bb8('0x39')](_0x2c375b['attributes'],function(_0x102a64){var _0x28ea6f={};_0x28ea6f[_0x102a64]={'$like':'%'+_0x512e5d[_0x2bb8('0x27')]['filter']+'%'};return _0x28ea6f;})});}_0x2c375b=_[_0x2bb8('0x37')]({},_0x2c375b,_0x512e5d[_0x2bb8('0x3a')]);var _0x4ac527={'where':_0x2c375b[_0x2bb8('0x33')]};return db[_0x2bb8('0x25')][_0x2bb8('0x18')](_0x4ac527)[_0x2bb8('0x20')](function(_0x4996a5){_0x5b21c8['count']=_0x4996a5;if(_0x512e5d[_0x2bb8('0x27')][_0x2bb8('0x3b')]){_0x2c375b['include']=[{'all':!![]}];}return db[_0x2bb8('0x25')][_0x2bb8('0x3c')](_0x2c375b);})[_0x2bb8('0x20')](function(_0x43c573){_0x5b21c8[_0x2bb8('0x3d')]=_0x43c573;return _0x5b21c8;})[_0x2bb8('0x20')](respondWithFilteredResult(_0x41acbe,_0x2c375b))[_0x2bb8('0x3e')](handleError(_0x41acbe,null));};exports['show']=function(_0x9b50a9,_0x2720a5){var _0x5ef270={'raw':!![],'where':{'id':_0x9b50a9[_0x2bb8('0x3f')]['id']}},_0x3cae25={};_0x3cae25[_0x2bb8('0x2b')]=_[_0x2bb8('0x26')](db[_0x2bb8('0x25')]['rawAttributes']);_0x3cae25[_0x2bb8('0x27')]=_[_0x2bb8('0x26')](_0x9b50a9[_0x2bb8('0x27')]);_0x3cae25[_0x2bb8('0x2a')]=_[_0x2bb8('0x2d')](_0x3cae25[_0x2bb8('0x2b')],_0x3cae25[_0x2bb8('0x27')]);_0x5ef270[_0x2bb8('0x2c')]=_[_0x2bb8('0x2d')](_0x3cae25[_0x2bb8('0x2b')],qs[_0x2bb8('0x2e')](_0x9b50a9[_0x2bb8('0x27')][_0x2bb8('0x2e')]));_0x5ef270[_0x2bb8('0x2c')]=_0x5ef270['attributes'][_0x2bb8('0x2f')]?_0x5ef270['attributes']:_0x3cae25[_0x2bb8('0x2b')];if(_0x9b50a9[_0x2bb8('0x27')]['includeAll']){_0x5ef270[_0x2bb8('0x40')]=[{'all':!![]}];}_0x5ef270=_[_0x2bb8('0x37')]({},_0x5ef270,_0x9b50a9[_0x2bb8('0x3a')]);return db[_0x2bb8('0x25')][_0x2bb8('0x41')](_0x5ef270)[_0x2bb8('0x20')](handleEntityNotFound(_0x2720a5,null))[_0x2bb8('0x20')](respondWithResult(_0x2720a5,null))[_0x2bb8('0x3e')](handleError(_0x2720a5,null));};exports[_0x2bb8('0x42')]=function(_0x4a53f5,_0x5ad8d6){return db[_0x2bb8('0x25')][_0x2bb8('0x42')](_0x4a53f5[_0x2bb8('0x43')],{})['then'](respondWithResult(_0x5ad8d6,0xc9))[_0x2bb8('0x3e')](handleError(_0x5ad8d6,null));};exports['update']=function(_0x184725,_0x37f8b5){if(_0x184725[_0x2bb8('0x43')]['id']){delete _0x184725[_0x2bb8('0x43')]['id'];}return db[_0x2bb8('0x25')]['find']({'where':{'id':_0x184725[_0x2bb8('0x3f')]['id']}})[_0x2bb8('0x20')](handleEntityNotFound(_0x37f8b5,null))[_0x2bb8('0x20')](saveUpdates(_0x184725[_0x2bb8('0x43')],null))[_0x2bb8('0x20')](respondWithResult(_0x37f8b5,null))[_0x2bb8('0x3e')](handleError(_0x37f8b5,null));};exports[_0x2bb8('0x1f')]=function(_0x227627,_0x4ec260){return db[_0x2bb8('0x25')][_0x2bb8('0x41')]({'where':{'id':_0x227627[_0x2bb8('0x3f')]['id']}})[_0x2bb8('0x20')](handleEntityNotFound(_0x4ec260,null))[_0x2bb8('0x20')](removeEntity(_0x4ec260,null))[_0x2bb8('0x3e')](handleError(_0x4ec260,null));};exports[_0x2bb8('0x44')]=function(_0x286a09,_0x218cb6){return db[_0x2bb8('0x25')][_0x2bb8('0x44')]()[_0x2bb8('0x20')](respondWithResult(_0x218cb6,null))[_0x2bb8('0x3e')](handleError(_0x218cb6,null));};
\ No newline at end of file
+var _0xa857=['length','nolimit','limit','order','sort','where','filters','pick','add','day','merge','filter','map','count','includeAll','findAll','rows','catch','show','include','options','find','create','body','update','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','set','Content-Range','reject','save','then','error','stack','name','send','index','Cdr','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','attributes','fields'];(function(_0x5417bc,_0x322220){var _0x545edb=function(_0x490dad){while(--_0x490dad){_0x5417bc['push'](_0x5417bc['shift']());}};_0x545edb(++_0x322220);}(_0xa857,0x147));var _0x7a85=function(_0x34657c,_0x85d5fa){_0x34657c=_0x34657c-0x0;var _0xa54db4=_0xa857[_0x34657c];return _0xa54db4;};'use strict';var pdf=require(_0x7a85('0x0'));var emlformat=require(_0x7a85('0x1'));var rimraf=require(_0x7a85('0x2'));var zipdir=require(_0x7a85('0x3'));var jsonpatch=require(_0x7a85('0x4'));var rp=require(_0x7a85('0x5'));var moment=require(_0x7a85('0x6'));var BPromise=require(_0x7a85('0x7'));var Mustache=require(_0x7a85('0x8'));var util=require(_0x7a85('0x9'));var path=require(_0x7a85('0xa'));var sox=require('sox');var csv=require(_0x7a85('0xb'));var ejs=require(_0x7a85('0xc'));var fs=require('fs');var _=require(_0x7a85('0xd'));var squel=require('squel');var crypto=require(_0x7a85('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x7a85('0xb'));var querystring=require(_0x7a85('0xf'));var Papa=require(_0x7a85('0x10'));var Redis=require(_0x7a85('0x11'));var qs=require(_0x7a85('0x12'));var logger=require(_0x7a85('0x13'))(_0x7a85('0x14'));var utils=require(_0x7a85('0x15'));var config=require(_0x7a85('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x520990,_0x705f17){_0x705f17=_0x705f17||0xcc;return function(_0x5e74b5){if(_0x5e74b5){return _0x520990[_0x7a85('0x17')](_0x705f17);}return _0x520990[_0x7a85('0x18')](_0x705f17)[_0x7a85('0x19')]();};}function respondWithResult(_0x3af9f1,_0x144376){_0x144376=_0x144376||0xc8;return function(_0x309eac){if(_0x309eac){return _0x3af9f1[_0x7a85('0x18')](_0x144376)[_0x7a85('0x1a')](_0x309eac);}};}function respondWithFilteredResult(_0x58c601,_0x9e37cb){return function(_0x2bf10f){if(_0x2bf10f){var _0x1b6a33=_0x2bf10f['count'],_0x3fe035=_0x9e37cb[_0x7a85('0x1b')],_0x75d15f=_0x9e37cb[_0x7a85('0x1b')]+_0x9e37cb['limit'],_0x3c08cb;if(_0x75d15f>=_0x1b6a33){_0x75d15f=_0x1b6a33;_0x3c08cb=0xc8;}else{_0x3c08cb=0xce;}_0x58c601[_0x7a85('0x18')](_0x3c08cb);return _0x58c601[_0x7a85('0x1c')](_0x7a85('0x1d'),_0x3fe035+'-'+_0x75d15f+'/'+_0x1b6a33)['json'](_0x2bf10f);}return null;};}function patchUpdates(_0x27b677){return function(_0x33bbd2){try{jsonpatch['apply'](_0x33bbd2,_0x27b677,!![]);}catch(_0x58b013){return BPromise[_0x7a85('0x1e')](_0x58b013);}return _0x33bbd2[_0x7a85('0x1f')]();};}function saveUpdates(_0x5acf33,_0x1f0656){return function(_0xcf6834){if(_0xcf6834){return _0xcf6834['update'](_0x5acf33)[_0x7a85('0x20')](function(_0x7f97e2){return _0x7f97e2;});}return null;};}function removeEntity(_0xb3a85d,_0x36e923){return function(_0x32aeb6){if(_0x32aeb6){return _0x32aeb6['destroy']()['then'](function(){_0xb3a85d[_0x7a85('0x18')](0xcc)[_0x7a85('0x19')]();});}};}function handleEntityNotFound(_0x47bb7f,_0x1d4ae8){return function(_0x1e61dd){if(!_0x1e61dd){_0x47bb7f[_0x7a85('0x17')](0x194);}return _0x1e61dd;};}function handleError(_0x5534c7,_0x3b7d29){_0x3b7d29=_0x3b7d29||0x1f4;return function(_0x220920){logger[_0x7a85('0x21')](_0x220920[_0x7a85('0x22')]);if(_0x220920[_0x7a85('0x23')]){delete _0x220920['name'];}_0x5534c7['status'](_0x3b7d29)[_0x7a85('0x24')](_0x220920);};}exports[_0x7a85('0x25')]=function(_0x5986b8,_0x398c1c){var _0x4111e4={},_0x35038e={},_0x16a7b5={'count':0x0,'rows':[]};var _0x3456bb=db[_0x7a85('0x26')][_0x7a85('0x27')];_0x35038e[_0x7a85('0x28')]=_[_0x7a85('0x29')](_0x3456bb);var _0x5dc2c3={'dateStart':_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x2b')],'dateEnd':_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x2c')]};delete _0x5986b8[_0x7a85('0x2a')]['dateStart'];delete _0x5986b8['query'][_0x7a85('0x2c')];_0x35038e[_0x7a85('0x2a')]=_[_0x7a85('0x29')](_0x5986b8[_0x7a85('0x2a')]);_0x35038e['filters']=_[_0x7a85('0x2d')](_0x35038e[_0x7a85('0x28')],_0x35038e['query']);_0x4111e4[_0x7a85('0x2e')]=_[_0x7a85('0x2d')](_0x35038e[_0x7a85('0x28')],qs['fields'](_0x5986b8['query'][_0x7a85('0x2f')]));_0x4111e4['attributes']=_0x4111e4[_0x7a85('0x2e')][_0x7a85('0x30')]?_0x4111e4[_0x7a85('0x2e')]:_0x35038e['model'];if(!_0x5986b8[_0x7a85('0x2a')]['hasOwnProperty'](_0x7a85('0x31'))){_0x4111e4[_0x7a85('0x32')]=qs[_0x7a85('0x32')](_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x32')]);_0x4111e4[_0x7a85('0x1b')]=qs[_0x7a85('0x1b')](_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x1b')]);}_0x4111e4[_0x7a85('0x33')]=qs[_0x7a85('0x34')](_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x34')]);_0x4111e4[_0x7a85('0x35')]=qs[_0x7a85('0x36')](_[_0x7a85('0x37')](_0x5986b8[_0x7a85('0x2a')],_0x35038e[_0x7a85('0x36')]));if(_0x5dc2c3[_0x7a85('0x2b')]){if(_0x5dc2c3['dateEnd']){_0x5dc2c3[_0x7a85('0x2c')]=moment(_0x5dc2c3['dateEnd'])[_0x7a85('0x38')](0x1,'day');}else{_0x5dc2c3[_0x7a85('0x2c')]=moment(_0x5dc2c3[_0x7a85('0x2b')])[_0x7a85('0x38')](0x1,_0x7a85('0x39'));}_[_0x7a85('0x3a')](_0x4111e4[_0x7a85('0x35')],{'createdAt':{'$gte':_0x5dc2c3[_0x7a85('0x2b')],'$lte':_0x5dc2c3[_0x7a85('0x2c')]}});}if(_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x3b')]){_0x4111e4[_0x7a85('0x35')]=_[_0x7a85('0x3a')](_0x4111e4['where'],{'$or':_[_0x7a85('0x3c')](_0x4111e4[_0x7a85('0x2e')],function(_0x1e3257){var _0xcdcd72={};_0xcdcd72[_0x1e3257]={'$like':'%'+_0x5986b8[_0x7a85('0x2a')]['filter']+'%'};return _0xcdcd72;})});}_0x4111e4=_['merge']({},_0x4111e4,_0x5986b8['options']);var _0x3831fb={'where':_0x4111e4[_0x7a85('0x35')]};return db[_0x7a85('0x26')][_0x7a85('0x3d')](_0x3831fb)['then'](function(_0x4b9860){_0x16a7b5['count']=_0x4b9860;if(_0x5986b8[_0x7a85('0x2a')][_0x7a85('0x3e')]){_0x4111e4['include']=[{'all':!![]}];}return db[_0x7a85('0x26')][_0x7a85('0x3f')](_0x4111e4);})[_0x7a85('0x20')](function(_0x1fe376){_0x16a7b5[_0x7a85('0x40')]=_0x1fe376;return _0x16a7b5;})['then'](respondWithFilteredResult(_0x398c1c,_0x4111e4))[_0x7a85('0x41')](handleError(_0x398c1c,null));};exports[_0x7a85('0x42')]=function(_0x4a537d,_0x1b35df){var _0x3fa7ae={'raw':!![],'where':{'id':_0x4a537d['params']['id']}},_0x3af5c5={};_0x3af5c5[_0x7a85('0x28')]=_[_0x7a85('0x29')](db[_0x7a85('0x26')][_0x7a85('0x27')]);_0x3af5c5['query']=_[_0x7a85('0x29')](_0x4a537d[_0x7a85('0x2a')]);_0x3af5c5[_0x7a85('0x36')]=_[_0x7a85('0x2d')](_0x3af5c5[_0x7a85('0x28')],_0x3af5c5[_0x7a85('0x2a')]);_0x3fa7ae[_0x7a85('0x2e')]=_[_0x7a85('0x2d')](_0x3af5c5['model'],qs[_0x7a85('0x2f')](_0x4a537d[_0x7a85('0x2a')]['fields']));_0x3fa7ae['attributes']=_0x3fa7ae[_0x7a85('0x2e')][_0x7a85('0x30')]?_0x3fa7ae['attributes']:_0x3af5c5[_0x7a85('0x28')];if(_0x4a537d[_0x7a85('0x2a')][_0x7a85('0x3e')]){_0x3fa7ae[_0x7a85('0x43')]=[{'all':!![]}];}_0x3fa7ae=_[_0x7a85('0x3a')]({},_0x3fa7ae,_0x4a537d[_0x7a85('0x44')]);return db[_0x7a85('0x26')][_0x7a85('0x45')](_0x3fa7ae)[_0x7a85('0x20')](handleEntityNotFound(_0x1b35df,null))['then'](respondWithResult(_0x1b35df,null))['catch'](handleError(_0x1b35df,null));};exports[_0x7a85('0x46')]=function(_0x4a24b8,_0x374a1f){return db[_0x7a85('0x26')]['create'](_0x4a24b8[_0x7a85('0x47')],{})[_0x7a85('0x20')](respondWithResult(_0x374a1f,0xc9))[_0x7a85('0x41')](handleError(_0x374a1f,null));};exports[_0x7a85('0x48')]=function(_0x2c67e2,_0x5d9d8b){if(_0x2c67e2[_0x7a85('0x47')]['id']){delete _0x2c67e2[_0x7a85('0x47')]['id'];}return db[_0x7a85('0x26')][_0x7a85('0x45')]({'where':{'id':_0x2c67e2['params']['id']}})[_0x7a85('0x20')](handleEntityNotFound(_0x5d9d8b,null))[_0x7a85('0x20')](saveUpdates(_0x2c67e2[_0x7a85('0x47')],null))[_0x7a85('0x20')](respondWithResult(_0x5d9d8b,null))['catch'](handleError(_0x5d9d8b,null));};exports[_0x7a85('0x49')]=function(_0x125196,_0x3dcd9e){return db[_0x7a85('0x26')][_0x7a85('0x45')]({'where':{'id':_0x125196['params']['id']}})[_0x7a85('0x20')](handleEntityNotFound(_0x3dcd9e,null))[_0x7a85('0x20')](removeEntity(_0x3dcd9e,null))[_0x7a85('0x41')](handleError(_0x3dcd9e,null));};exports[_0x7a85('0x4a')]=function(_0x3cd035,_0x18dbb3){return db[_0x7a85('0x26')][_0x7a85('0x4a')]()[_0x7a85('0x20')](respondWithResult(_0x18dbb3,null))[_0x7a85('0x41')](handleError(_0x18dbb3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3644=['bluebird','request-promise','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition','dst','src','lodash','../../config/logger'];(function(_0x446ef0,_0x5517a9){var _0x5aa7e0=function(_0x4291c0){while(--_0x4291c0){_0x446ef0['push'](_0x446ef0['shift']());}};_0x5aa7e0(++_0x5517a9);}(_0x3644,0x1df));var _0x4364=function(_0x2c5dbc,_0x2571ef){_0x2c5dbc=_0x2c5dbc-0x0;var _0x3d252a=_0x3644[_0x2c5dbc];return _0x3d252a;};'use strict';var _=require(_0x4364('0x0'));var util=require('util');var logger=require(_0x4364('0x1'))('api');var moment=require('moment');var BPromise=require(_0x4364('0x2'));var rp=require(_0x4364('0x3'));var attributes=require(_0x4364('0x4'));module[_0x4364('0x5')]=function(_0x598b56,_0x377b13){return _0x598b56[_0x4364('0x6')](_0x4364('0x7'),attributes,{'tableName':'cdr','paranoid':![],'indexes':[{'name':_0x4364('0x8'),'fields':[_0x4364('0x8')]},{'name':_0x4364('0x9'),'fields':['calldate']},{'name':'disposition','fields':[_0x4364('0xa')]},{'name':'dst','fields':[_0x4364('0xb')]},{'name':_0x4364('0xc'),'fields':[_0x4364('0xc')]},{'name':'uniqueid','fields':['uniqueid']}],'timestamps':![]});};
\ No newline at end of file
+var _0xc58d=['disposition','dst','src','uniqueid','lodash','util','api','moment','bluebird','request-promise','exports','define','Cdr','cdr','accountcode','calldate'];(function(_0x5608a3,_0x5b33c5){var _0x1ed50a=function(_0x959171){while(--_0x959171){_0x5608a3['push'](_0x5608a3['shift']());}};_0x1ed50a(++_0x5b33c5);}(_0xc58d,0x1f4));var _0xdc58=function(_0x104f1d,_0x17688e){_0x104f1d=_0x104f1d-0x0;var _0x592280=_0xc58d[_0x104f1d];return _0x592280;};'use strict';var _=require(_0xdc58('0x0'));var util=require(_0xdc58('0x1'));var logger=require('../../config/logger')(_0xdc58('0x2'));var moment=require(_0xdc58('0x3'));var BPromise=require(_0xdc58('0x4'));var rp=require(_0xdc58('0x5'));var attributes=require('./cdr.attributes');module[_0xdc58('0x6')]=function(_0x14d71f,_0x42b884){return _0x14d71f[_0xdc58('0x7')](_0xdc58('0x8'),attributes,{'tableName':_0xdc58('0x9'),'paranoid':![],'indexes':[{'name':_0xdc58('0xa'),'fields':[_0xdc58('0xa')]},{'name':'calldate','fields':[_0xdc58('0xb')]},{'name':_0xdc58('0xc'),'fields':[_0xdc58('0xc')]},{'name':_0xdc58('0xd'),'fields':[_0xdc58('0xd')]},{'name':_0xdc58('0xe'),'fields':[_0xdc58('0xe')]},{'name':_0xdc58('0xf'),'fields':[_0xdc58('0xf')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0a3=['../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','debug','Cdr,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Cdr,\x20%s,\x20%s','message','result','util','moment','bluebird'];(function(_0x4092de,_0x24186b){var _0x2e8a39=function(_0x2fa42f){while(--_0x2fa42f){_0x4092de['push'](_0x4092de['shift']());}};_0x2e8a39(++_0x24186b);}(_0xf0a3,0x18d));var _0x3f0a=function(_0x347eb2,_0x2cca6f){_0x347eb2=_0x347eb2-0x0;var _0x3bf64f=_0xf0a3[_0x347eb2];return _0x3bf64f;};'use strict';var _=require('lodash');var util=require(_0x3f0a('0x0'));var moment=require(_0x3f0a('0x1'));var BPromise=require(_0x3f0a('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x3f0a('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x3f0a('0x4'))('rpc');var config=require(_0x3f0a('0x5'));var jayson=require(_0x3f0a('0x6'));var client=jayson[_0x3f0a('0x7')][_0x3f0a('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x15adf8,_0x443907,_0x16fbbe){return new BPromise(function(_0xddc037,_0x789ae5){return client[_0x3f0a('0x9')](_0x15adf8,_0x16fbbe)['then'](function(_0x5d58fd){logger[_0x3f0a('0xa')]('Cdr,\x20%s,\x20%s',_0x443907,'request\x20sent');logger[_0x3f0a('0xb')](_0x3f0a('0xc'),_0x443907,_0x3f0a('0xd'),JSON[_0x3f0a('0xe')](_0x5d58fd));if(_0x5d58fd[_0x3f0a('0xf')]){if(_0x5d58fd[_0x3f0a('0xf')][_0x3f0a('0x10')]===0x1f4){logger[_0x3f0a('0xf')](_0x3f0a('0x11'),_0x443907,_0x5d58fd[_0x3f0a('0xf')]['message']);return _0x789ae5(_0x5d58fd[_0x3f0a('0xf')][_0x3f0a('0x12')]);}logger[_0x3f0a('0xf')](_0x3f0a('0x11'),_0x443907,_0x5d58fd[_0x3f0a('0xf')]['message']);return _0xddc037(_0x5d58fd['error']['message']);}else{logger[_0x3f0a('0xa')](_0x3f0a('0x11'),_0x443907,'request\x20sent');_0xddc037(_0x5d58fd[_0x3f0a('0x13')][_0x3f0a('0x12')]);}})['catch'](function(_0x2985bb){logger[_0x3f0a('0xf')](_0x3f0a('0x11'),_0x443907,_0x2985bb);_0x789ae5(_0x2985bb);});});}
\ No newline at end of file
+var _0xcd23=['request','then','Cdr,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http'];(function(_0x1abb09,_0x18ee91){var _0xea1c07=function(_0x38f42c){while(--_0x38f42c){_0x1abb09['push'](_0x1abb09['shift']());}};_0xea1c07(++_0x18ee91);}(_0xcd23,0xfd));var _0x3cd2=function(_0x3dc00c,_0x3e16ae){_0x3dc00c=_0x3dc00c-0x0;var _0x1ad7c0=_0xcd23[_0x3dc00c];return _0x1ad7c0;};'use strict';var _=require(_0x3cd2('0x0'));var util=require(_0x3cd2('0x1'));var moment=require(_0x3cd2('0x2'));var BPromise=require(_0x3cd2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3cd2('0x4'));var db=require(_0x3cd2('0x5'))['db'];var utils=require(_0x3cd2('0x6'));var logger=require('../../config/logger')(_0x3cd2('0x7'));var config=require(_0x3cd2('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x3cd2('0x9')][_0x3cd2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x7a4b92,_0x4ac44b,_0x2a4763){return new BPromise(function(_0x434945,_0x331728){return client[_0x3cd2('0xb')](_0x7a4b92,_0x2a4763)[_0x3cd2('0xc')](function(_0x4f3d54){logger['info'](_0x3cd2('0xd'),_0x4ac44b,_0x3cd2('0xe'));logger[_0x3cd2('0xf')]('Cdr,\x20%s,\x20%s,\x20%s',_0x4ac44b,_0x3cd2('0xe'),JSON[_0x3cd2('0x10')](_0x4f3d54));if(_0x4f3d54['error']){if(_0x4f3d54[_0x3cd2('0x11')][_0x3cd2('0x12')]===0x1f4){logger[_0x3cd2('0x11')](_0x3cd2('0xd'),_0x4ac44b,_0x4f3d54['error']['message']);return _0x331728(_0x4f3d54[_0x3cd2('0x11')][_0x3cd2('0x13')]);}logger['error'](_0x3cd2('0xd'),_0x4ac44b,_0x4f3d54[_0x3cd2('0x11')][_0x3cd2('0x13')]);return _0x434945(_0x4f3d54[_0x3cd2('0x11')]['message']);}else{logger[_0x3cd2('0x14')](_0x3cd2('0xd'),_0x4ac44b,_0x3cd2('0xe'));_0x434945(_0x4f3d54['result'][_0x3cd2('0x13')]);}})[_0x3cd2('0x15')](function(_0x369201){logger['error'](_0x3cd2('0xd'),_0x4ac44b,_0x369201);_0x331728(_0x369201);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ee6=['isAuthenticated','index','/describe','describe','post','delete','/:id','exports','path','Router','../../components/auth/service','../../components/interaction/service','./cdr.controller','get'];(function(_0xdc49b2,_0x2e00f1){var _0x324e56=function(_0x195c07){while(--_0x195c07){_0xdc49b2['push'](_0xdc49b2['shift']());}};_0x324e56(++_0x2e00f1);}(_0x8ee6,0x1ac));var _0x68ee=function(_0x4c6e3a,_0x129220){_0x4c6e3a=_0x4c6e3a-0x0;var _0x5c2203=_0x8ee6[_0x4c6e3a];return _0x5c2203;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x68ee('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x68ee('0x1')]();var auth=require(_0x68ee('0x2'));var interaction=require(_0x68ee('0x3'));var config=require('../../config/environment');var controller=require(_0x68ee('0x4'));router[_0x68ee('0x5')]('/',auth[_0x68ee('0x6')](),controller[_0x68ee('0x7')]);router[_0x68ee('0x5')](_0x68ee('0x8'),auth[_0x68ee('0x6')](),controller[_0x68ee('0x9')]);router[_0x68ee('0x5')]('/:id',auth[_0x68ee('0x6')](),controller['show']);router[_0x68ee('0xa')]('/',auth[_0x68ee('0x6')](),controller['create']);router['put']('/:id',auth[_0x68ee('0x6')](),controller['update']);router[_0x68ee('0xb')](_0x68ee('0xc'),auth[_0x68ee('0x6')](),controller['destroy']);module[_0x68ee('0xd')]=router;
\ No newline at end of file
+var _0xa75b=['connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','show','post','create','delete','path'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xa75b,0x1c1));var _0xba75=function(_0x497b6f,_0x3b8d48){_0x497b6f=_0x497b6f-0x0;var _0x225422=_0xa75b[_0x497b6f];return _0x225422;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xba75('0x0'));var timeout=require(_0xba75('0x1'));var express=require('express');var router=express[_0xba75('0x2')]();var auth=require(_0xba75('0x3'));var interaction=require(_0xba75('0x4'));var config=require(_0xba75('0x5'));var controller=require('./cdr.controller');router[_0xba75('0x6')]('/',auth[_0xba75('0x7')](),controller[_0xba75('0x8')]);router['get']('/describe',auth[_0xba75('0x7')](),controller[_0xba75('0x9')]);router[_0xba75('0x6')](_0xba75('0xa'),auth[_0xba75('0x7')](),controller[_0xba75('0xb')]);router[_0xba75('0xc')]('/',auth[_0xba75('0x7')](),controller[_0xba75('0xd')]);router['put'](_0xba75('0xa'),auth[_0xba75('0x7')](),controller['update']);router[_0xba75('0xe')]('/:id',auth[_0xba75('0x7')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c17=['noop','sequelize','exports','STRING'];(function(_0x2b9c1c,_0x10d5aa){var _0x369133=function(_0x46040b){while(--_0x46040b){_0x2b9c1c['push'](_0x2b9c1c['shift']());}};_0x369133(++_0x10d5aa);}(_0x0c17,0xd5));var _0x70c1=function(_0x2e1c86,_0x281ecc){_0x2e1c86=_0x2e1c86-0x0;var _0x584f13=_0x0c17[_0x2e1c86];return _0x584f13;};'use strict';var Sequelize=require(_0x70c1('0x0'));module[_0x70c1('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0x70c1('0x2')],'allowNull':![],'defaultValue':_0x70c1('0x3')},'appdata':{'type':Sequelize[_0x70c1('0x2')](0x1000),'defaultValue':''},'description':{'type':Sequelize[_0x70c1('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0xc4d9=['STRING','sequelize','exports','INTEGER','noop'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc4d9,0x15f));var _0x9c4d=function(_0x2355a9,_0x2766af){_0x2355a9=_0x2355a9-0x0;var _0x18afac=_0xc4d9[_0x2355a9];return _0x18afac;};'use strict';var Sequelize=require(_0x9c4d('0x0'));module[_0x9c4d('0x1')]={'priority':{'type':Sequelize[_0x9c4d('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x9c4d('0x3')},'appdata':{'type':Sequelize[_0x9c4d('0x4')](0x1000),'defaultValue':''},'description':{'type':Sequelize[_0x9c4d('0x4')]},'interval':{'type':Sequelize[_0x9c4d('0x4')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb90d=['limit','set','Content-Range','json','reject','update','then','destroy','end','error','stack','name','send','show','params','keys','ChatApplication','rawAttributes','filters','model','query','attributes','intersection','fields','length','includeAll','include','merge','options','find','catch','body','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset'];(function(_0x174549,_0x17b0d3){var _0x591524=function(_0x20578d){while(--_0x20578d){_0x174549['push'](_0x174549['shift']());}};_0x591524(++_0x17b0d3);}(_0xb90d,0x14c));var _0xdb90=function(_0x5575c1,_0x11b31a){_0x5575c1=_0x5575c1-0x0;var _0x50ea4e=_0xb90d[_0x5575c1];return _0x50ea4e;};'use strict';var pdf=require(_0xdb90('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xdb90('0x1'));var zipdir=require(_0xdb90('0x2'));var jsonpatch=require(_0xdb90('0x3'));var rp=require(_0xdb90('0x4'));var moment=require(_0xdb90('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xdb90('0x6'));var util=require(_0xdb90('0x7'));var path=require(_0xdb90('0x8'));var sox=require(_0xdb90('0x9'));var csv=require('to-csv');var ejs=require(_0xdb90('0xa'));var fs=require('fs');var _=require(_0xdb90('0xb'));var squel=require(_0xdb90('0xc'));var crypto=require(_0xdb90('0xd'));var jsforce=require(_0xdb90('0xe'));var deskjs=require(_0xdb90('0xf'));var toCsv=require(_0xdb90('0x10'));var querystring=require(_0xdb90('0x11'));var Papa=require(_0xdb90('0x12'));var qs=require(_0xdb90('0x13'));var logger=require(_0xdb90('0x14'))('api');var utils=require(_0xdb90('0x15'));var config=require(_0xdb90('0x16'));var db=require(_0xdb90('0x17'))['db'];function respondWithStatusCode(_0x24214c,_0x16547f){_0x16547f=_0x16547f||0xcc;return function(_0x307953){if(_0x307953){return _0x24214c[_0xdb90('0x18')](_0x16547f);}return _0x24214c['status'](_0x16547f)['end']();};}function respondWithResult(_0x58c1f1,_0x6f74d1){_0x6f74d1=_0x6f74d1||0xc8;return function(_0x3d8902){if(_0x3d8902){return _0x58c1f1[_0xdb90('0x19')](_0x6f74d1)['json'](_0x3d8902);}};}function respondWithFilteredResult(_0x26ca9f,_0x2f3d9a){return function(_0x55705c){if(_0x55705c){var _0x586da7=_0x55705c[_0xdb90('0x1a')],_0x1da486=_0x2f3d9a[_0xdb90('0x1b')],_0x1af079=_0x2f3d9a[_0xdb90('0x1b')]+_0x2f3d9a[_0xdb90('0x1c')],_0x23b930;if(_0x1af079>=_0x586da7){_0x1af079=_0x586da7;_0x23b930=0xc8;}else{_0x23b930=0xce;}_0x26ca9f['status'](_0x23b930);return _0x26ca9f[_0xdb90('0x1d')](_0xdb90('0x1e'),_0x1da486+'-'+_0x1af079+'/'+_0x586da7)[_0xdb90('0x1f')](_0x55705c);}return null;};}function patchUpdates(_0x45a3ee){return function(_0x3583d3){try{jsonpatch['apply'](_0x3583d3,_0x45a3ee,!![]);}catch(_0x54722b){return BPromise[_0xdb90('0x20')](_0x54722b);}return _0x3583d3['save']();};}function saveUpdates(_0x19aec1,_0x2ebff8){return function(_0x2e410d){if(_0x2e410d){return _0x2e410d[_0xdb90('0x21')](_0x19aec1)[_0xdb90('0x22')](function(_0x41da91){return _0x41da91;});}return null;};}function removeEntity(_0x4279b1,_0x1edcd5){return function(_0x5436e7){if(_0x5436e7){return _0x5436e7[_0xdb90('0x23')]()[_0xdb90('0x22')](function(){_0x4279b1['status'](0xcc)[_0xdb90('0x24')]();});}};}function handleEntityNotFound(_0x3811b1,_0x54361a){return function(_0x3e95dd){if(!_0x3e95dd){_0x3811b1[_0xdb90('0x18')](0x194);}return _0x3e95dd;};}function handleError(_0x15760d,_0x4ff941){_0x4ff941=_0x4ff941||0x1f4;return function(_0x8d8ed){logger[_0xdb90('0x25')](_0x8d8ed[_0xdb90('0x26')]);if(_0x8d8ed[_0xdb90('0x27')]){delete _0x8d8ed['name'];}_0x15760d[_0xdb90('0x19')](_0x4ff941)[_0xdb90('0x28')](_0x8d8ed);};}exports[_0xdb90('0x29')]=function(_0x196f13,_0x127543){var _0x3edba4={'raw':!![],'where':{'id':_0x196f13[_0xdb90('0x2a')]['id']}},_0x1d9695={};_0x1d9695['model']=_[_0xdb90('0x2b')](db[_0xdb90('0x2c')][_0xdb90('0x2d')]);_0x1d9695['query']=_['keys'](_0x196f13['query']);_0x1d9695[_0xdb90('0x2e')]=_['intersection'](_0x1d9695[_0xdb90('0x2f')],_0x1d9695[_0xdb90('0x30')]);_0x3edba4[_0xdb90('0x31')]=_[_0xdb90('0x32')](_0x1d9695[_0xdb90('0x2f')],qs[_0xdb90('0x33')](_0x196f13[_0xdb90('0x30')][_0xdb90('0x33')]));_0x3edba4[_0xdb90('0x31')]=_0x3edba4[_0xdb90('0x31')][_0xdb90('0x34')]?_0x3edba4[_0xdb90('0x31')]:_0x1d9695['model'];if(_0x196f13[_0xdb90('0x30')][_0xdb90('0x35')]){_0x3edba4[_0xdb90('0x36')]=[{'all':!![]}];}_0x3edba4=_[_0xdb90('0x37')]({},_0x3edba4,_0x196f13[_0xdb90('0x38')]);return db[_0xdb90('0x2c')][_0xdb90('0x39')](_0x3edba4)[_0xdb90('0x22')](handleEntityNotFound(_0x127543,null))[_0xdb90('0x22')](respondWithResult(_0x127543,null))[_0xdb90('0x3a')](handleError(_0x127543,null));};exports[_0xdb90('0x21')]=function(_0x5043f5,_0x58b037){if(_0x5043f5['body']['id']){delete _0x5043f5[_0xdb90('0x3b')]['id'];}return db['ChatApplication'][_0xdb90('0x39')]({'where':{'id':_0x5043f5['params']['id']}})[_0xdb90('0x22')](handleEntityNotFound(_0x58b037,null))[_0xdb90('0x22')](saveUpdates(_0x5043f5[_0xdb90('0x3b')],null))[_0xdb90('0x22')](respondWithResult(_0x58b037,null))['catch'](handleError(_0x58b037,null));};exports['destroy']=function(_0x453944,_0x53adab){return db[_0xdb90('0x2c')][_0xdb90('0x39')]({'where':{'id':_0x453944[_0xdb90('0x2a')]['id']}})['then'](handleEntityNotFound(_0x53adab,null))[_0xdb90('0x22')](removeEntity(_0x53adab,null))[_0xdb90('0x3a')](handleError(_0x53adab,null));};
\ No newline at end of file
+var _0x778b=['includeAll','include','options','find','catch','body','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','apply','reject','update','then','destroy','error','name','send','show','params','model','keys','ChatApplication','rawAttributes','filters','query','attributes','intersection','fields','length'];(function(_0x31d8e9,_0x46ee71){var _0x4e1798=function(_0x241e30){while(--_0x241e30){_0x31d8e9['push'](_0x31d8e9['shift']());}};_0x4e1798(++_0x46ee71);}(_0x778b,0x1c6));var _0xb778=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x778b[_0x4cf98e];return _0x1623ac;};'use strict';var pdf=require(_0xb778('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xb778('0x1'));var zipdir=require(_0xb778('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb778('0x3'));var moment=require(_0xb778('0x4'));var BPromise=require(_0xb778('0x5'));var Mustache=require(_0xb778('0x6'));var util=require(_0xb778('0x7'));var path=require(_0xb778('0x8'));var sox=require('sox');var csv=require(_0xb778('0x9'));var ejs=require(_0xb778('0xa'));var fs=require('fs');var _=require(_0xb778('0xb'));var squel=require(_0xb778('0xc'));var crypto=require(_0xb778('0xd'));var jsforce=require(_0xb778('0xe'));var deskjs=require(_0xb778('0xf'));var toCsv=require(_0xb778('0x9'));var querystring=require(_0xb778('0x10'));var Papa=require(_0xb778('0x11'));var Redis=require(_0xb778('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0xb778('0x13'))(_0xb778('0x14'));var utils=require(_0xb778('0x15'));var config=require(_0xb778('0x16'));var db=require(_0xb778('0x17'))['db'];function respondWithStatusCode(_0x57c4a6,_0x2df35d){_0x2df35d=_0x2df35d||0xcc;return function(_0x14e70b){if(_0x14e70b){return _0x57c4a6[_0xb778('0x18')](_0x2df35d);}return _0x57c4a6[_0xb778('0x19')](_0x2df35d)[_0xb778('0x1a')]();};}function respondWithResult(_0x161650,_0x53b33f){_0x53b33f=_0x53b33f||0xc8;return function(_0x3944dd){if(_0x3944dd){return _0x161650[_0xb778('0x19')](_0x53b33f)[_0xb778('0x1b')](_0x3944dd);}};}function respondWithFilteredResult(_0x56e426,_0x4a965a){return function(_0x9a3bc4){if(_0x9a3bc4){var _0x53b008=_0x9a3bc4['count'],_0x2da226=_0x4a965a[_0xb778('0x1c')],_0x3ed322=_0x4a965a['offset']+_0x4a965a[_0xb778('0x1d')],_0x49bd56;if(_0x3ed322>=_0x53b008){_0x3ed322=_0x53b008;_0x49bd56=0xc8;}else{_0x49bd56=0xce;}_0x56e426['status'](_0x49bd56);return _0x56e426['set']('Content-Range',_0x2da226+'-'+_0x3ed322+'/'+_0x53b008)[_0xb778('0x1b')](_0x9a3bc4);}return null;};}function patchUpdates(_0x1b1391){return function(_0x553ca8){try{jsonpatch[_0xb778('0x1e')](_0x553ca8,_0x1b1391,!![]);}catch(_0x5300c5){return BPromise[_0xb778('0x1f')](_0x5300c5);}return _0x553ca8['save']();};}function saveUpdates(_0x148a33,_0xebac12){return function(_0x40eaad){if(_0x40eaad){return _0x40eaad[_0xb778('0x20')](_0x148a33)[_0xb778('0x21')](function(_0x1f029e){return _0x1f029e;});}return null;};}function removeEntity(_0x4255a8,_0xaab3fb){return function(_0x433169){if(_0x433169){return _0x433169[_0xb778('0x22')]()[_0xb778('0x21')](function(){_0x4255a8['status'](0xcc)[_0xb778('0x1a')]();});}};}function handleEntityNotFound(_0x4299cc,_0x779fc5){return function(_0x25c2ce){if(!_0x25c2ce){_0x4299cc[_0xb778('0x18')](0x194);}return _0x25c2ce;};}function handleError(_0x156893,_0x930cbe){_0x930cbe=_0x930cbe||0x1f4;return function(_0x5b9dc8){logger[_0xb778('0x23')](_0x5b9dc8['stack']);if(_0x5b9dc8['name']){delete _0x5b9dc8[_0xb778('0x24')];}_0x156893[_0xb778('0x19')](_0x930cbe)[_0xb778('0x25')](_0x5b9dc8);};}exports[_0xb778('0x26')]=function(_0x5f0cb3,_0x51787c){var _0x39f1ae={'raw':!![],'where':{'id':_0x5f0cb3[_0xb778('0x27')]['id']}},_0x4afebb={};_0x4afebb[_0xb778('0x28')]=_[_0xb778('0x29')](db[_0xb778('0x2a')][_0xb778('0x2b')]);_0x4afebb['query']=_[_0xb778('0x29')](_0x5f0cb3['query']);_0x4afebb[_0xb778('0x2c')]=_['intersection'](_0x4afebb['model'],_0x4afebb[_0xb778('0x2d')]);_0x39f1ae[_0xb778('0x2e')]=_[_0xb778('0x2f')](_0x4afebb['model'],qs[_0xb778('0x30')](_0x5f0cb3[_0xb778('0x2d')][_0xb778('0x30')]));_0x39f1ae['attributes']=_0x39f1ae[_0xb778('0x2e')][_0xb778('0x31')]?_0x39f1ae[_0xb778('0x2e')]:_0x4afebb['model'];if(_0x5f0cb3['query'][_0xb778('0x32')]){_0x39f1ae[_0xb778('0x33')]=[{'all':!![]}];}_0x39f1ae=_['merge']({},_0x39f1ae,_0x5f0cb3[_0xb778('0x34')]);return db[_0xb778('0x2a')][_0xb778('0x35')](_0x39f1ae)[_0xb778('0x21')](handleEntityNotFound(_0x51787c,null))[_0xb778('0x21')](respondWithResult(_0x51787c,null))[_0xb778('0x36')](handleError(_0x51787c,null));};exports[_0xb778('0x20')]=function(_0x16cebc,_0x4745b1){if(_0x16cebc[_0xb778('0x37')]['id']){delete _0x16cebc[_0xb778('0x37')]['id'];}return db[_0xb778('0x2a')][_0xb778('0x35')]({'where':{'id':_0x16cebc['params']['id']}})[_0xb778('0x21')](handleEntityNotFound(_0x4745b1,null))[_0xb778('0x21')](saveUpdates(_0x16cebc[_0xb778('0x37')],null))[_0xb778('0x21')](respondWithResult(_0x4745b1,null))['catch'](handleError(_0x4745b1,null));};exports[_0xb778('0x22')]=function(_0x10d8c2,_0x41e0c9){return db[_0xb778('0x2a')][_0xb778('0x35')]({'where':{'id':_0x10d8c2['params']['id']}})[_0xb778('0x21')](handleEntityNotFound(_0x41e0c9,null))[_0xb778('0x21')](removeEntity(_0x41e0c9,null))[_0xb778('0x36')](handleError(_0x41e0c9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ad7=['../../config/logger','api','moment','request-promise','./chatApplication.attributes','exports','ChatApplication','chat_applications','lodash','util'];(function(_0xac1238,_0x36e7f4){var _0x4f010b=function(_0x22fcd5){while(--_0x22fcd5){_0xac1238['push'](_0xac1238['shift']());}};_0x4f010b(++_0x36e7f4);}(_0x3ad7,0x1ac));var _0x73ad=function(_0x10db88,_0x8bf030){_0x10db88=_0x10db88-0x0;var _0x2dc5e6=_0x3ad7[_0x10db88];return _0x2dc5e6;};'use strict';var _=require(_0x73ad('0x0'));var util=require(_0x73ad('0x1'));var logger=require(_0x73ad('0x2'))(_0x73ad('0x3'));var moment=require(_0x73ad('0x4'));var BPromise=require('bluebird');var rp=require(_0x73ad('0x5'));var attributes=require(_0x73ad('0x6'));module[_0x73ad('0x7')]=function(_0x9abf1b,_0x6361c7){return _0x9abf1b['define'](_0x73ad('0x8'),attributes,{'tableName':_0x73ad('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3648=['exports','define','ChatApplication','chat_applications','lodash','util','api','moment','bluebird'];(function(_0x4523f5,_0x19ddcf){var _0x541896=function(_0x176d2a){while(--_0x176d2a){_0x4523f5['push'](_0x4523f5['shift']());}};_0x541896(++_0x19ddcf);}(_0x3648,0x13f));var _0x8364=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x3648[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8364('0x0'));var util=require(_0x8364('0x1'));var logger=require('../../config/logger')(_0x8364('0x2'));var moment=require(_0x8364('0x3'));var BPromise=require(_0x8364('0x4'));var rp=require('request-promise');var attributes=require('./chatApplication.attributes');module[_0x8364('0x5')]=function(_0x43e426,_0x49bbd3){return _0x43e426[_0x8364('0x6')](_0x8364('0x7'),attributes,{'tableName':_0x8364('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x350a=['moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','ChatApplication,\x20%s,\x20%s','request\x20sent','debug','ChatApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util'];(function(_0x9a5e1f,_0xf845a6){var _0x47275e=function(_0x8304a){while(--_0x8304a){_0x9a5e1f['push'](_0x9a5e1f['shift']());}};_0x47275e(++_0xf845a6);}(_0x350a,0x1a1));var _0xa350=function(_0x33bc64,_0x4d1e92){_0x33bc64=_0x33bc64-0x0;var _0x3fdd34=_0x350a[_0x33bc64];return _0x3fdd34;};'use strict';var _=require('lodash');var util=require(_0xa350('0x0'));var moment=require(_0xa350('0x1'));var BPromise=require('bluebird');var rs=require(_0xa350('0x2'));var fs=require('fs');var db=require(_0xa350('0x3'))['db'];var utils=require(_0xa350('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xa350('0x5'));var jayson=require(_0xa350('0x6'));var client=jayson[_0xa350('0x7')][_0xa350('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x37d939,_0x303396,_0x35b802){return new BPromise(function(_0x27a943,_0x507c20){return client[_0xa350('0x9')](_0x37d939,_0x35b802)[_0xa350('0xa')](function(_0x366ae6){logger[_0xa350('0xb')](_0xa350('0xc'),_0x303396,_0xa350('0xd'));logger[_0xa350('0xe')](_0xa350('0xf'),_0x303396,_0xa350('0xd'),JSON[_0xa350('0x10')](_0x366ae6));if(_0x366ae6[_0xa350('0x11')]){if(_0x366ae6[_0xa350('0x11')][_0xa350('0x12')]===0x1f4){logger['error'](_0xa350('0xc'),_0x303396,_0x366ae6[_0xa350('0x11')][_0xa350('0x13')]);return _0x507c20(_0x366ae6[_0xa350('0x11')][_0xa350('0x13')]);}logger[_0xa350('0x11')](_0xa350('0xc'),_0x303396,_0x366ae6[_0xa350('0x11')][_0xa350('0x13')]);return _0x27a943(_0x366ae6[_0xa350('0x11')][_0xa350('0x13')]);}else{logger[_0xa350('0xb')](_0xa350('0xc'),_0x303396,'request\x20sent');_0x27a943(_0x366ae6[_0xa350('0x14')][_0xa350('0x13')]);}})[_0xa350('0x15')](function(_0x3f882f){logger['error'](_0xa350('0xc'),_0x303396,_0x3f882f);_0x507c20(_0x3f882f);});});}
\ No newline at end of file
+var _0xa28d=['client','http','request','then','info','request\x20sent','debug','ChatApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ChatApplication,\x20%s,\x20%s','result','catch','lodash','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x4a61a4,_0x3b3d77){var _0x22385f=function(_0xdf8ae6){while(--_0xdf8ae6){_0x4a61a4['push'](_0x4a61a4['shift']());}};_0x22385f(++_0x3b3d77);}(_0xa28d,0x1b1));var _0xda28=function(_0x208025,_0x1089a3){_0x208025=_0x208025-0x0;var _0xee6b7f=_0xa28d[_0x208025];return _0xee6b7f;};'use strict';var _=require(_0xda28('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xda28('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xda28('0x2'))['db'];var utils=require(_0xda28('0x3'));var logger=require(_0xda28('0x4'))(_0xda28('0x5'));var config=require('../../config/environment');var jayson=require(_0xda28('0x6'));var client=jayson[_0xda28('0x7')][_0xda28('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x52be69,_0x3c16cf,_0x4048c5){return new BPromise(function(_0x1f23a2,_0x3975fd){return client[_0xda28('0x9')](_0x52be69,_0x4048c5)[_0xda28('0xa')](function(_0x41f6fa){logger[_0xda28('0xb')]('ChatApplication,\x20%s,\x20%s',_0x3c16cf,_0xda28('0xc'));logger[_0xda28('0xd')](_0xda28('0xe'),_0x3c16cf,'request\x20sent',JSON[_0xda28('0xf')](_0x41f6fa));if(_0x41f6fa[_0xda28('0x10')]){if(_0x41f6fa[_0xda28('0x10')][_0xda28('0x11')]===0x1f4){logger[_0xda28('0x10')]('ChatApplication,\x20%s,\x20%s',_0x3c16cf,_0x41f6fa[_0xda28('0x10')][_0xda28('0x12')]);return _0x3975fd(_0x41f6fa[_0xda28('0x10')][_0xda28('0x12')]);}logger[_0xda28('0x10')]('ChatApplication,\x20%s,\x20%s',_0x3c16cf,_0x41f6fa[_0xda28('0x10')][_0xda28('0x12')]);return _0x1f23a2(_0x41f6fa[_0xda28('0x10')]['message']);}else{logger['info'](_0xda28('0x13'),_0x3c16cf,_0xda28('0xc'));_0x1f23a2(_0x41f6fa[_0xda28('0x14')][_0xda28('0x12')]);}})[_0xda28('0x15')](function(_0x5b8e69){logger[_0xda28('0x10')](_0xda28('0x13'),_0x3c16cf,_0x5b8e69);_0x3975fd(_0x5b8e69);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e28=['connect-timeout','../../components/auth/service','../../components/interaction/service','./chatApplication.controller','get','/:id','isAuthenticated','show','put','update','multer','util'];(function(_0x49f2dd,_0x377189){var _0x3915f6=function(_0x157cb8){while(--_0x157cb8){_0x49f2dd['push'](_0x49f2dd['shift']());}};_0x3915f6(++_0x377189);}(_0x6e28,0xa6));var _0x86e2=function(_0x27f32c,_0x2ca782){_0x27f32c=_0x27f32c-0x0;var _0x1fd90d=_0x6e28[_0x27f32c];return _0x1fd90d;};'use strict';var multer=require(_0x86e2('0x0'));var util=require(_0x86e2('0x1'));var path=require('path');var timeout=require(_0x86e2('0x2'));var express=require('express');var router=express['Router']();var auth=require(_0x86e2('0x3'));var interaction=require(_0x86e2('0x4'));var config=require('../../config/environment');var controller=require(_0x86e2('0x5'));router[_0x86e2('0x6')](_0x86e2('0x7'),auth[_0x86e2('0x8')](),controller[_0x86e2('0x9')]);router[_0x86e2('0xa')](_0x86e2('0x7'),auth[_0x86e2('0x8')](),controller[_0x86e2('0xb')]);router['delete'](_0x86e2('0x7'),auth[_0x86e2('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x9ce8=['get','/:id','isAuthenticated','show','put','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x832d15,_0x4645ea){var _0xd9f1d=function(_0x575ccd){while(--_0x575ccd){_0x832d15['push'](_0x832d15['shift']());}};_0xd9f1d(++_0x4645ea);}(_0x9ce8,0x1d3));var _0x89ce=function(_0x28d18d,_0x55896b){_0x28d18d=_0x28d18d-0x0;var _0x470640=_0x9ce8[_0x28d18d];return _0x470640;};'use strict';var multer=require(_0x89ce('0x0'));var util=require(_0x89ce('0x1'));var path=require(_0x89ce('0x2'));var timeout=require(_0x89ce('0x3'));var express=require(_0x89ce('0x4'));var router=express[_0x89ce('0x5')]();var auth=require(_0x89ce('0x6'));var interaction=require(_0x89ce('0x7'));var config=require(_0x89ce('0x8'));var controller=require('./chatApplication.controller');router[_0x89ce('0x9')](_0x89ce('0xa'),auth[_0x89ce('0xb')](),controller[_0x89ce('0xc')]);router[_0x89ce('0xd')](_0x89ce('0xa'),auth[_0x89ce('0xb')](),controller['update']);router[_0x89ce('0xe')](_0x89ce('0xa'),auth[_0x89ce('0xb')](),controller[_0x89ce('0xf')]);module[_0x89ce('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c3c=['STRING','sequelize','exports'];(function(_0x38813e,_0x4313eb){var _0x39a631=function(_0x1cbb90){while(--_0x1cbb90){_0x38813e['push'](_0x38813e['shift']());}};_0x39a631(++_0x4313eb);}(_0x0c3c,0x1ab));var _0xc0c3=function(_0x1d6dea,_0x1f8978){_0x1d6dea=_0x1d6dea-0x0;var _0x1b5967=_0x0c3c[_0x1d6dea];return _0x1b5967;};'use strict';var Sequelize=require(_0xc0c3('0x0'));module[_0xc0c3('0x1')]={'name':{'type':Sequelize[_0xc0c3('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xc0c3('0x2')]},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xc3e7=['STRING','sequelize'];(function(_0x5ac84c,_0x287781){var _0x3c53d2=function(_0x40cde0){while(--_0x40cde0){_0x5ac84c['push'](_0x5ac84c['shift']());}};_0x3c53d2(++_0x287781);}(_0xc3e7,0x19b));var _0x7c3e=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xc3e7[_0x5ddb1c];return _0x354adc;};'use strict';var Sequelize=require(_0x7c3e('0x0'));module['exports']={'name':{'type':Sequelize[_0x7c3e('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x7c3e('0x1')]},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1efb=['removeMembers','addMessage','ChatInternalMessage','getMessages','findOne','$gte','split','format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','../../components/parsers/qs','api','../../config/utils','../../mysqldb','redis','defaults','socket.io-emitter','register','http','request','then','info','ChatGroup,\x20%s,\x20%s','debug','ChatGroup,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','sendStatus','end','status','json','offset','apply','reject','save','update','destroy','stack','name','index','ChatGroup','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','sort','where','pick','add','day','merge','filter','map','options','count','findAll','show','params','rawAttributes','length','includeAll','find','create','body','describe','user','toInteger','addMembers','ids','omit','getMembers','User','order'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0x1efb,0x1ed));var _0xb1ef=function(_0x33032e,_0x31411a){_0x33032e=_0x33032e-0x0;var _0x13316b=_0x1efb[_0x33032e];return _0x13316b;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xb1ef('0x0'));var zipdir=require(_0xb1ef('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb1ef('0x2'));var moment=require(_0xb1ef('0x3'));var BPromise=require(_0xb1ef('0x4'));var Mustache=require(_0xb1ef('0x5'));var util=require(_0xb1ef('0x6'));var path=require(_0xb1ef('0x7'));var sox=require(_0xb1ef('0x8'));var csv=require(_0xb1ef('0x9'));var ejs=require(_0xb1ef('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xb1ef('0xb'));var crypto=require(_0xb1ef('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb1ef('0xd'));var toCsv=require(_0xb1ef('0x9'));var querystring=require(_0xb1ef('0xe'));var Papa=require('papaparse');var qs=require(_0xb1ef('0xf'));var logger=require('../../config/logger')(_0xb1ef('0x10'));var utils=require(_0xb1ef('0x11'));var config=require('../../config/environment');var db=require(_0xb1ef('0x12'))['db'];config[_0xb1ef('0x13')]=_[_0xb1ef('0x14')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb1ef('0x15'))(config[_0xb1ef('0x13')]);require('./chatGroup.socket')[_0xb1ef('0x16')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0xb1ef('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x450f42,_0x5d27c5,_0x217132,_0x2127a2){return new BPromise(function(_0x4e17ce,_0x13f5e8){var _0x3e4be1=_0x2127a2||client;return _0x3e4be1[_0xb1ef('0x18')](_0x450f42,_0x217132)[_0xb1ef('0x19')](function(_0x4b046e){logger[_0xb1ef('0x1a')](_0xb1ef('0x1b'),_0x5d27c5,'request\x20sent');logger[_0xb1ef('0x1c')](_0xb1ef('0x1d'),_0x5d27c5,_0xb1ef('0x1e'),JSON[_0xb1ef('0x1f')](_0x4b046e));if(_0x4b046e['error']){if(_0x4b046e[_0xb1ef('0x20')]['code']===0x1f4){logger[_0xb1ef('0x20')]('ChatGroup,\x20%s,\x20%s',_0x5d27c5,_0x4b046e[_0xb1ef('0x20')][_0xb1ef('0x21')]);return _0x13f5e8(_0x4b046e[_0xb1ef('0x20')][_0xb1ef('0x21')]);}logger[_0xb1ef('0x20')](_0xb1ef('0x1b'),_0x5d27c5,_0x4b046e[_0xb1ef('0x20')][_0xb1ef('0x21')]);return _0x4e17ce(_0x4b046e[_0xb1ef('0x20')]['message']);}else{logger[_0xb1ef('0x1a')](_0xb1ef('0x1b'),_0x5d27c5,_0xb1ef('0x1e'));_0x4e17ce(_0x4b046e['result']['message']);}})[_0xb1ef('0x22')](function(_0x25a6a9){logger[_0xb1ef('0x20')](_0xb1ef('0x1b'),_0x5d27c5,_0x25a6a9);_0x13f5e8(_0x25a6a9);});});}function respondWithStatusCode(_0x439d9b,_0x4443f3){_0x4443f3=_0x4443f3||0xcc;return function(_0x44de71){if(_0x44de71){return _0x439d9b[_0xb1ef('0x23')](_0x4443f3);}return _0x439d9b['status'](_0x4443f3)[_0xb1ef('0x24')]();};}function respondWithResult(_0x487692,_0x17aa4f){_0x17aa4f=_0x17aa4f||0xc8;return function(_0x581b22){if(_0x581b22){return _0x487692[_0xb1ef('0x25')](_0x17aa4f)[_0xb1ef('0x26')](_0x581b22);}};}function respondWithFilteredResult(_0x10c25a,_0x5938d4){return function(_0xee1dff){if(_0xee1dff){var _0x91377=_0xee1dff['count'],_0x24e287=_0x5938d4[_0xb1ef('0x27')],_0x514b16=_0x5938d4[_0xb1ef('0x27')]+_0x5938d4['limit'],_0x4d71c9;if(_0x514b16>=_0x91377){_0x514b16=_0x91377;_0x4d71c9=0xc8;}else{_0x4d71c9=0xce;}_0x10c25a[_0xb1ef('0x25')](_0x4d71c9);return _0x10c25a['set']('Content-Range',_0x24e287+'-'+_0x514b16+'/'+_0x91377)[_0xb1ef('0x26')](_0xee1dff);}return null;};}function patchUpdates(_0x4c9d04){return function(_0x28618a){try{jsonpatch[_0xb1ef('0x28')](_0x28618a,_0x4c9d04,!![]);}catch(_0x30a806){return BPromise[_0xb1ef('0x29')](_0x30a806);}return _0x28618a[_0xb1ef('0x2a')]();};}function saveUpdates(_0x37c9c7,_0x26a897){return function(_0x287a46){if(_0x287a46){return _0x287a46[_0xb1ef('0x2b')](_0x37c9c7)['then'](function(_0x2b2c8d){return _0x2b2c8d;});}return null;};}function removeEntity(_0x5eba17,_0xe979c4){return function(_0x469e94){if(_0x469e94){return _0x469e94[_0xb1ef('0x2c')]()[_0xb1ef('0x19')](function(){_0x5eba17[_0xb1ef('0x25')](0xcc)[_0xb1ef('0x24')]();});}};}function handleEntityNotFound(_0x3b47c5,_0x3fe81f){return function(_0x43bd68){if(!_0x43bd68){_0x3b47c5[_0xb1ef('0x23')](0x194);}return _0x43bd68;};}function handleError(_0x389473,_0x1c8991){_0x1c8991=_0x1c8991||0x1f4;return function(_0x52b77b){logger[_0xb1ef('0x20')](_0x52b77b[_0xb1ef('0x2d')]);if(_0x52b77b['name']){delete _0x52b77b[_0xb1ef('0x2e')];}_0x389473[_0xb1ef('0x25')](_0x1c8991)['send'](_0x52b77b);};}exports[_0xb1ef('0x2f')]=function(_0x3f24fc,_0x1761dc){var _0x570117={},_0x4373a0={},_0x2d9e06={'count':0x0,'rows':[]};var _0x7845f=db[_0xb1ef('0x30')]['rawAttributes'];_0x4373a0[_0xb1ef('0x31')]=_[_0xb1ef('0x32')](_0x7845f);var _0xf2637a={'dateStart':_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x34')],'dateEnd':_0x3f24fc['query']['dateEnd']};delete _0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x34')];delete _0x3f24fc['query'][_0xb1ef('0x35')];_0x4373a0[_0xb1ef('0x33')]=_['keys'](_0x3f24fc[_0xb1ef('0x33')]);_0x4373a0[_0xb1ef('0x36')]=_[_0xb1ef('0x37')](_0x4373a0[_0xb1ef('0x31')],_0x4373a0['query']);_0x570117['attributes']=_['intersection'](_0x4373a0['model'],qs[_0xb1ef('0x38')](_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x38')]));_0x570117[_0xb1ef('0x39')]=_0x570117['attributes']['length']?_0x570117[_0xb1ef('0x39')]:_0x4373a0[_0xb1ef('0x31')];if(!_0x3f24fc['query'][_0xb1ef('0x3a')](_0xb1ef('0x3b'))){_0x570117['limit']=qs[_0xb1ef('0x3c')](_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x3c')]);_0x570117[_0xb1ef('0x27')]=qs[_0xb1ef('0x27')](_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x27')]);}_0x570117['order']=qs['sort'](_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x3d')]);_0x570117[_0xb1ef('0x3e')]=qs['filters'](_[_0xb1ef('0x3f')](_0x3f24fc[_0xb1ef('0x33')],_0x4373a0[_0xb1ef('0x36')]));if(_0xf2637a['dateStart']){if(_0xf2637a['dateEnd']){_0xf2637a[_0xb1ef('0x35')]=moment(_0xf2637a[_0xb1ef('0x35')])[_0xb1ef('0x40')](0x1,'day');}else{_0xf2637a[_0xb1ef('0x35')]=moment(_0xf2637a[_0xb1ef('0x34')])[_0xb1ef('0x40')](0x1,_0xb1ef('0x41'));}_[_0xb1ef('0x42')](_0x570117['where'],{'createdAt':{'$gte':_0xf2637a[_0xb1ef('0x34')],'$lte':_0xf2637a[_0xb1ef('0x35')]}});}if(_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x43')]){_0x570117[_0xb1ef('0x3e')]=_[_0xb1ef('0x42')](_0x570117[_0xb1ef('0x3e')],{'$or':_[_0xb1ef('0x44')](_0x570117[_0xb1ef('0x39')],function(_0x5c12fd){var _0x2bef68={};_0x2bef68[_0x5c12fd]={'$like':'%'+_0x3f24fc[_0xb1ef('0x33')][_0xb1ef('0x43')]+'%'};return _0x2bef68;})});}_0x570117=_['merge']({},_0x570117,_0x3f24fc[_0xb1ef('0x45')]);var _0x1d5e36={'where':_0x570117[_0xb1ef('0x3e')]};return db[_0xb1ef('0x30')][_0xb1ef('0x46')](_0x1d5e36)[_0xb1ef('0x19')](function(_0x2aa005){_0x2d9e06['count']=_0x2aa005;if(_0x3f24fc[_0xb1ef('0x33')]['includeAll']){_0x570117['include']=[{'all':!![]}];}return db['ChatGroup'][_0xb1ef('0x47')](_0x570117);})[_0xb1ef('0x19')](function(_0x186db2){_0x2d9e06['rows']=_0x186db2;return _0x2d9e06;})[_0xb1ef('0x19')](respondWithFilteredResult(_0x1761dc,_0x570117))['catch'](handleError(_0x1761dc,null));};exports[_0xb1ef('0x48')]=function(_0x2f3001,_0x42b0da){var _0x49883b={'raw':!![],'where':{'id':_0x2f3001[_0xb1ef('0x49')]['id']}},_0xc6b41e={};_0xc6b41e[_0xb1ef('0x31')]=_[_0xb1ef('0x32')](db[_0xb1ef('0x30')][_0xb1ef('0x4a')]);_0xc6b41e[_0xb1ef('0x33')]=_['keys'](_0x2f3001[_0xb1ef('0x33')]);_0xc6b41e[_0xb1ef('0x36')]=_[_0xb1ef('0x37')](_0xc6b41e[_0xb1ef('0x31')],_0xc6b41e[_0xb1ef('0x33')]);_0x49883b['attributes']=_[_0xb1ef('0x37')](_0xc6b41e['model'],qs[_0xb1ef('0x38')](_0x2f3001['query']['fields']));_0x49883b[_0xb1ef('0x39')]=_0x49883b[_0xb1ef('0x39')][_0xb1ef('0x4b')]?_0x49883b[_0xb1ef('0x39')]:_0xc6b41e['model'];if(_0x2f3001[_0xb1ef('0x33')][_0xb1ef('0x4c')]){_0x49883b['include']=[{'all':!![]}];}_0x49883b=_['merge']({},_0x49883b,_0x2f3001[_0xb1ef('0x45')]);return db['ChatGroup'][_0xb1ef('0x4d')](_0x49883b)[_0xb1ef('0x19')](handleEntityNotFound(_0x42b0da,null))[_0xb1ef('0x19')](respondWithResult(_0x42b0da,null))[_0xb1ef('0x22')](handleError(_0x42b0da,null));};exports[_0xb1ef('0x4e')]=function(_0x2a20eb,_0xfdb9dd){return db[_0xb1ef('0x30')]['create'](_0x2a20eb[_0xb1ef('0x4f')],{})[_0xb1ef('0x19')](respondWithResult(_0xfdb9dd,0xc9))[_0xb1ef('0x22')](handleError(_0xfdb9dd,null));};exports['update']=function(_0x489bf1,_0x4e7439){if(_0x489bf1[_0xb1ef('0x4f')]['id']){delete _0x489bf1[_0xb1ef('0x4f')]['id'];}return db[_0xb1ef('0x30')][_0xb1ef('0x4d')]({'where':{'id':_0x489bf1[_0xb1ef('0x49')]['id']}})[_0xb1ef('0x19')](handleEntityNotFound(_0x4e7439,null))['then'](saveUpdates(_0x489bf1[_0xb1ef('0x4f')],null))[_0xb1ef('0x19')](respondWithResult(_0x4e7439,null))['catch'](handleError(_0x4e7439,null));};exports[_0xb1ef('0x2c')]=function(_0x15cc48,_0x4d5fbf){return db[_0xb1ef('0x30')][_0xb1ef('0x4d')]({'where':{'id':_0x15cc48[_0xb1ef('0x49')]['id']}})[_0xb1ef('0x19')](handleEntityNotFound(_0x4d5fbf,null))[_0xb1ef('0x19')](removeEntity(_0x4d5fbf,null))['catch'](handleError(_0x4d5fbf,null));};exports[_0xb1ef('0x50')]=function(_0x1797a3,_0x357b67){return db[_0xb1ef('0x30')][_0xb1ef('0x50')]()['then'](respondWithResult(_0x357b67,null))[_0xb1ef('0x22')](handleError(_0x357b67,null));};exports['getUnread']=function(_0x33e255,_0x47a04e,_0x3e448f){return db['ChatInternalMessage']['count']({'where':{'ChatGroupId':_0x33e255[_0xb1ef('0x49')]['id'],'ToId':_0x33e255[_0xb1ef('0x51')]['id'],'read':![]}})[_0xb1ef('0x19')](function(_0x4a56a0){return{'id':_[_0xb1ef('0x52')](_0x33e255[_0xb1ef('0x49')]['id']),'count':_0x4a56a0};})[_0xb1ef('0x19')](respondWithResult(_0x47a04e,null))[_0xb1ef('0x22')](handleError(_0x47a04e,null));};exports[_0xb1ef('0x53')]=function(_0x1621f0,_0x3be2eb,_0x28c38d){return db[_0xb1ef('0x30')]['find']({'where':{'id':_0x1621f0[_0xb1ef('0x49')]['id']}})['then'](handleEntityNotFound(_0x3be2eb,null))[_0xb1ef('0x19')](function(_0x5bc2a4){if(_0x5bc2a4){return _0x5bc2a4[_0xb1ef('0x53')](_0x1621f0['body'][_0xb1ef('0x54')],_[_0xb1ef('0x55')](_0x1621f0[_0xb1ef('0x4f')],['ids','id'])||{});}})[_0xb1ef('0x19')](respondWithResult(_0x3be2eb,null))[_0xb1ef('0x22')](handleError(_0x3be2eb,null));};exports[_0xb1ef('0x56')]=function(_0x5a1404,_0x3c5066,_0xee9cb){var _0xda63ba={};var _0x6e5d20={};var _0x380d81;var _0x114bfb;return db['ChatGroup']['findOne']({'where':{'id':_0x5a1404[_0xb1ef('0x49')]['id']}})[_0xb1ef('0x19')](handleEntityNotFound(_0x3c5066,null))['then'](function(_0x655f87){if(_0x655f87){_0x380d81=_0x655f87;_0x6e5d20[_0xb1ef('0x31')]=_['keys'](db[_0xb1ef('0x57')][_0xb1ef('0x4a')]);_0x6e5d20[_0xb1ef('0x33')]=_[_0xb1ef('0x32')](_0x5a1404[_0xb1ef('0x33')]);_0x6e5d20['filters']=_[_0xb1ef('0x37')](_0x6e5d20[_0xb1ef('0x31')],_0x6e5d20[_0xb1ef('0x33')]);_0xda63ba['attributes']=_['intersection'](_0x6e5d20[_0xb1ef('0x31')],qs[_0xb1ef('0x38')](_0x5a1404[_0xb1ef('0x33')][_0xb1ef('0x38')]));_0xda63ba[_0xb1ef('0x39')]=_0xda63ba[_0xb1ef('0x39')][_0xb1ef('0x4b')]?_0xda63ba[_0xb1ef('0x39')]:_0x6e5d20['model'];_0xda63ba[_0xb1ef('0x58')]=qs[_0xb1ef('0x3d')](_0x5a1404[_0xb1ef('0x33')][_0xb1ef('0x3d')]);_0xda63ba[_0xb1ef('0x3e')]=qs[_0xb1ef('0x36')](_[_0xb1ef('0x3f')](_0x5a1404[_0xb1ef('0x33')],_0x6e5d20[_0xb1ef('0x36')]));if(_0x5a1404[_0xb1ef('0x33')]['filter']){_0xda63ba[_0xb1ef('0x3e')]=_[_0xb1ef('0x42')](_0xda63ba[_0xb1ef('0x3e')],{'$or':_[_0xb1ef('0x44')](_0xda63ba['attributes'],function(_0x3a5cdf){var _0x2bc352={};_0x2bc352[_0x3a5cdf]={'$like':'%'+_0x5a1404[_0xb1ef('0x33')]['filter']+'%'};return _0x2bc352;})});}_0xda63ba=_['merge']({},_0xda63ba,_0x5a1404[_0xb1ef('0x45')]);return _0x380d81['getMembers'](_0xda63ba);}})['then'](function(_0x338b16){if(_0x338b16){_0x114bfb=_0x338b16['length'];if(!_0x5a1404[_0xb1ef('0x33')][_0xb1ef('0x3a')](_0xb1ef('0x3b'))){_0xda63ba[_0xb1ef('0x3c')]=qs[_0xb1ef('0x3c')](_0x5a1404[_0xb1ef('0x33')][_0xb1ef('0x3c')]);_0xda63ba[_0xb1ef('0x27')]=qs[_0xb1ef('0x27')](_0x5a1404['query'][_0xb1ef('0x27')]);}return _0x380d81['getMembers'](_0xda63ba);}})[_0xb1ef('0x19')](function(_0x10428a){if(_0x10428a){return _0x10428a?{'count':_0x114bfb,'rows':_0x10428a}:null;}})[_0xb1ef('0x19')](respondWithResult(_0x3c5066,null))['catch'](handleError(_0x3c5066,null));};exports[_0xb1ef('0x59')]=function(_0xf76c62,_0x2ef4ab,_0x4908b0){var _0x4f0984;return db[_0xb1ef('0x30')][_0xb1ef('0x4d')]({'where':{'id':_0xf76c62[_0xb1ef('0x49')]['id']}})['then'](handleEntityNotFound(_0x2ef4ab,null))['then'](function(_0x2562f6){if(_0x2562f6){return _0x2562f6[_0xb1ef('0x59')](_0xf76c62['query'][_0xb1ef('0x54')]);}})[_0xb1ef('0x19')](respondWithStatusCode(_0x2ef4ab,null))[_0xb1ef('0x22')](handleError(_0x2ef4ab,null));};exports[_0xb1ef('0x5a')]=function(_0x4cd4e4,_0xc88143,_0x4fd594){if(_0x4cd4e4[_0xb1ef('0x4f')]['id']){delete _0x4cd4e4[_0xb1ef('0x4f')]['id'];}return db[_0xb1ef('0x30')][_0xb1ef('0x4d')]({'where':{'id':_0x4cd4e4[_0xb1ef('0x49')]['id']}})[_0xb1ef('0x19')](handleEntityNotFound(_0xc88143,null))[_0xb1ef('0x19')](function(_0x1f98f0){if(_0x1f98f0){_0x4cd4e4[_0xb1ef('0x4f')]['ChatGroupId']=_0x1f98f0['id'];return db[_0xb1ef('0x5b')]['create'](_0x4cd4e4[_0xb1ef('0x4f')]);}})[_0xb1ef('0x19')](respondWithResult(_0xc88143,null))['catch'](handleError(_0xc88143,null));};exports[_0xb1ef('0x5c')]=function(_0x21ae0c,_0x350022,_0x319cd5){var _0x5bc4fc={};var _0x111579={};var _0x4f8c1a;var _0x7b312b;return db[_0xb1ef('0x30')][_0xb1ef('0x5d')]({'where':{'id':_0x21ae0c[_0xb1ef('0x49')]['id']}})[_0xb1ef('0x19')](handleEntityNotFound(_0x350022,null))[_0xb1ef('0x19')](function(_0xb29133){if(_0xb29133){_0x4f8c1a=_0xb29133;_0x111579['model']=_[_0xb1ef('0x32')](db[_0xb1ef('0x5b')][_0xb1ef('0x4a')]);_0x111579[_0xb1ef('0x33')]=_[_0xb1ef('0x32')](_0x21ae0c[_0xb1ef('0x33')]);_0x111579[_0xb1ef('0x36')]=_['intersection'](_0x111579[_0xb1ef('0x31')],_0x111579['query']);_0x5bc4fc['attributes']=_['intersection'](_0x111579[_0xb1ef('0x31')],qs['fields'](_0x21ae0c[_0xb1ef('0x33')][_0xb1ef('0x38')]));_0x5bc4fc[_0xb1ef('0x39')]=_0x5bc4fc['attributes'][_0xb1ef('0x4b')]?_0x5bc4fc[_0xb1ef('0x39')]:_0x111579[_0xb1ef('0x31')];_0x5bc4fc[_0xb1ef('0x58')]=qs[_0xb1ef('0x3d')](_0x21ae0c[_0xb1ef('0x33')][_0xb1ef('0x3d')]);_0x5bc4fc[_0xb1ef('0x3e')]=qs[_0xb1ef('0x36')](_[_0xb1ef('0x3f')](_0x21ae0c['query'],_0x111579[_0xb1ef('0x36')]));if(_0x21ae0c[_0xb1ef('0x33')]['filter']){_0x5bc4fc[_0xb1ef('0x3e')]=_[_0xb1ef('0x42')](_0x5bc4fc[_0xb1ef('0x3e')],{'$or':_['map'](_0x5bc4fc[_0xb1ef('0x39')],function(_0x411184){var _0x2d64fc={};_0x2d64fc[_0x411184]={'$like':'%'+_0x21ae0c[_0xb1ef('0x33')][_0xb1ef('0x43')]+'%'};return _0x2d64fc;})});}if(_0x21ae0c[_0xb1ef('0x33')][_0xb1ef('0x5e')]){var _0x5b7401=_0x21ae0c[_0xb1ef('0x33')][_0xb1ef('0x5e')][_0xb1ef('0x5f')](',');var _0x3cb1e1={};_0x3cb1e1[_0x5b7401[0x0]]={'$gte':moment(_0x5b7401[0x1])[_0xb1ef('0x60')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5bc4fc['where']=_[_0xb1ef('0x42')](_0x5bc4fc[_0xb1ef('0x3e')],_0x3cb1e1);}_0x5bc4fc=_[_0xb1ef('0x42')]({},_0x5bc4fc,_0x21ae0c[_0xb1ef('0x45')]);return _0x4f8c1a[_0xb1ef('0x5c')](_0x5bc4fc);}})[_0xb1ef('0x19')](function(_0x23427f){if(_0x23427f){_0x7b312b=_0x23427f['length'];if(!_0x21ae0c[_0xb1ef('0x33')][_0xb1ef('0x3a')](_0xb1ef('0x3b'))){_0x5bc4fc[_0xb1ef('0x3c')]=qs[_0xb1ef('0x3c')](_0x21ae0c[_0xb1ef('0x33')]['limit']);_0x5bc4fc[_0xb1ef('0x27')]=qs[_0xb1ef('0x27')](_0x21ae0c['query']['offset']);}return _0x4f8c1a[_0xb1ef('0x5c')](_0x5bc4fc);}})['then'](function(_0x163071){if(_0x163071){return _0x163071?{'count':_0x7b312b,'rows':_0x163071}:null;}})[_0xb1ef('0x19')](respondWithResult(_0x350022,null))[_0xb1ef('0x22')](handleError(_0x350022,null));};
\ No newline at end of file
+var _0xbdd4=['include','findAll','rows','catch','show','find','create','body','params','getUnread','ChatInternalMessage','user','toInteger','addMembers','omit','ids','findOne','User','getMembers','removeMembers','addMessage','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','lodash','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','defaults','redis','./chatGroup.socket','register','jayson/promise','client','http','request','info','ChatGroup,\x20%s,\x20%s','request\x20sent','debug','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','end','status','json','count','offset','limit','Content-Range','reject','update','destroy','then','stack','name','send','index','ChatGroup','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','includeAll'];(function(_0x30c4d8,_0x20db5a){var _0x585767=function(_0x4028e5){while(--_0x4028e5){_0x30c4d8['push'](_0x30c4d8['shift']());}};_0x585767(++_0x20db5a);}(_0xbdd4,0xe6));var _0x4bdd=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xbdd4[_0x5ddb1c];return _0x354adc;};'use strict';var pdf=require(_0x4bdd('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x4bdd('0x1'));var zipdir=require(_0x4bdd('0x2'));var jsonpatch=require(_0x4bdd('0x3'));var rp=require('request-promise');var moment=require(_0x4bdd('0x4'));var BPromise=require(_0x4bdd('0x5'));var Mustache=require(_0x4bdd('0x6'));var util=require('util');var path=require(_0x4bdd('0x7'));var sox=require(_0x4bdd('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x4bdd('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4bdd('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4bdd('0xb'));var Redis=require(_0x4bdd('0xc'));var qs=require(_0x4bdd('0xd'));var logger=require(_0x4bdd('0xe'))(_0x4bdd('0xf'));var utils=require(_0x4bdd('0x10'));var config=require('../../config/environment');var db=require(_0x4bdd('0x11'))['db'];config['redis']=_[_0x4bdd('0x12')](config[_0x4bdd('0x13')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x4bdd('0x14'))[_0x4bdd('0x15')](socket);var jayson=require(_0x4bdd('0x16'));var client=jayson[_0x4bdd('0x17')][_0x4bdd('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x444ed6,_0xa6c48c,_0x4eaa4e,_0x50ca92){return new BPromise(function(_0x870db1,_0x3587ee){var _0x1c17fa=_0x50ca92||client;return _0x1c17fa[_0x4bdd('0x19')](_0x444ed6,_0x4eaa4e)['then'](function(_0xb6e847){logger[_0x4bdd('0x1a')](_0x4bdd('0x1b'),_0xa6c48c,_0x4bdd('0x1c'));logger[_0x4bdd('0x1d')](_0x4bdd('0x1e'),_0xa6c48c,_0x4bdd('0x1c'),JSON[_0x4bdd('0x1f')](_0xb6e847));if(_0xb6e847[_0x4bdd('0x20')]){if(_0xb6e847['error'][_0x4bdd('0x21')]===0x1f4){logger['error'](_0x4bdd('0x1b'),_0xa6c48c,_0xb6e847[_0x4bdd('0x20')][_0x4bdd('0x22')]);return _0x3587ee(_0xb6e847[_0x4bdd('0x20')][_0x4bdd('0x22')]);}logger[_0x4bdd('0x20')](_0x4bdd('0x1b'),_0xa6c48c,_0xb6e847[_0x4bdd('0x20')]['message']);return _0x870db1(_0xb6e847[_0x4bdd('0x20')][_0x4bdd('0x22')]);}else{logger[_0x4bdd('0x1a')](_0x4bdd('0x1b'),_0xa6c48c,_0x4bdd('0x1c'));_0x870db1(_0xb6e847[_0x4bdd('0x23')][_0x4bdd('0x22')]);}})['catch'](function(_0x14fc3c){logger[_0x4bdd('0x20')](_0x4bdd('0x1b'),_0xa6c48c,_0x14fc3c);_0x3587ee(_0x14fc3c);});});}function respondWithStatusCode(_0x4c61ef,_0x291cb3){_0x291cb3=_0x291cb3||0xcc;return function(_0x1551d4){if(_0x1551d4){return _0x4c61ef['sendStatus'](_0x291cb3);}return _0x4c61ef['status'](_0x291cb3)[_0x4bdd('0x24')]();};}function respondWithResult(_0xec45fb,_0x26f4aa){_0x26f4aa=_0x26f4aa||0xc8;return function(_0x3f6782){if(_0x3f6782){return _0xec45fb[_0x4bdd('0x25')](_0x26f4aa)[_0x4bdd('0x26')](_0x3f6782);}};}function respondWithFilteredResult(_0x38cbe2,_0x148b78){return function(_0x16ccef){if(_0x16ccef){var _0x432a0b=_0x16ccef[_0x4bdd('0x27')],_0x23e8c5=_0x148b78['offset'],_0x30375d=_0x148b78[_0x4bdd('0x28')]+_0x148b78[_0x4bdd('0x29')],_0x5dde50;if(_0x30375d>=_0x432a0b){_0x30375d=_0x432a0b;_0x5dde50=0xc8;}else{_0x5dde50=0xce;}_0x38cbe2['status'](_0x5dde50);return _0x38cbe2['set'](_0x4bdd('0x2a'),_0x23e8c5+'-'+_0x30375d+'/'+_0x432a0b)[_0x4bdd('0x26')](_0x16ccef);}return null;};}function patchUpdates(_0x17634c){return function(_0x457bc8){try{jsonpatch['apply'](_0x457bc8,_0x17634c,!![]);}catch(_0x36a57c){return BPromise[_0x4bdd('0x2b')](_0x36a57c);}return _0x457bc8['save']();};}function saveUpdates(_0x2cc977,_0x4fccef){return function(_0x8f23f2){if(_0x8f23f2){return _0x8f23f2[_0x4bdd('0x2c')](_0x2cc977)['then'](function(_0xb079a6){return _0xb079a6;});}return null;};}function removeEntity(_0x10b3ff,_0x113174){return function(_0x4de553){if(_0x4de553){return _0x4de553[_0x4bdd('0x2d')]()[_0x4bdd('0x2e')](function(){_0x10b3ff[_0x4bdd('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0x262896,_0x79017a){return function(_0x203664){if(!_0x203664){_0x262896['sendStatus'](0x194);}return _0x203664;};}function handleError(_0x241469,_0x5589da){_0x5589da=_0x5589da||0x1f4;return function(_0x2f4848){logger[_0x4bdd('0x20')](_0x2f4848[_0x4bdd('0x2f')]);if(_0x2f4848['name']){delete _0x2f4848[_0x4bdd('0x30')];}_0x241469[_0x4bdd('0x25')](_0x5589da)[_0x4bdd('0x31')](_0x2f4848);};}exports[_0x4bdd('0x32')]=function(_0x444874,_0x673718){var _0xdd99af={},_0x39702e={},_0x3b3f9d={'count':0x0,'rows':[]};var _0x336233=db[_0x4bdd('0x33')][_0x4bdd('0x34')];_0x39702e['model']=_[_0x4bdd('0x35')](_0x336233);var _0x33c1e6={'dateStart':_0x444874[_0x4bdd('0x36')]['dateStart'],'dateEnd':_0x444874['query']['dateEnd']};delete _0x444874[_0x4bdd('0x36')][_0x4bdd('0x37')];delete _0x444874[_0x4bdd('0x36')][_0x4bdd('0x38')];_0x39702e[_0x4bdd('0x36')]=_[_0x4bdd('0x35')](_0x444874[_0x4bdd('0x36')]);_0x39702e[_0x4bdd('0x39')]=_[_0x4bdd('0x3a')](_0x39702e[_0x4bdd('0x3b')],_0x39702e[_0x4bdd('0x36')]);_0xdd99af['attributes']=_[_0x4bdd('0x3a')](_0x39702e[_0x4bdd('0x3b')],qs['fields'](_0x444874[_0x4bdd('0x36')][_0x4bdd('0x3c')]));_0xdd99af[_0x4bdd('0x3d')]=_0xdd99af[_0x4bdd('0x3d')][_0x4bdd('0x3e')]?_0xdd99af[_0x4bdd('0x3d')]:_0x39702e[_0x4bdd('0x3b')];if(!_0x444874[_0x4bdd('0x36')][_0x4bdd('0x3f')](_0x4bdd('0x40'))){_0xdd99af[_0x4bdd('0x29')]=qs[_0x4bdd('0x29')](_0x444874[_0x4bdd('0x36')][_0x4bdd('0x29')]);_0xdd99af['offset']=qs[_0x4bdd('0x28')](_0x444874[_0x4bdd('0x36')][_0x4bdd('0x28')]);}_0xdd99af[_0x4bdd('0x41')]=qs[_0x4bdd('0x42')](_0x444874['query'][_0x4bdd('0x42')]);_0xdd99af[_0x4bdd('0x43')]=qs[_0x4bdd('0x39')](_[_0x4bdd('0x44')](_0x444874[_0x4bdd('0x36')],_0x39702e['filters']));if(_0x33c1e6['dateStart']){if(_0x33c1e6[_0x4bdd('0x38')]){_0x33c1e6[_0x4bdd('0x38')]=moment(_0x33c1e6['dateEnd'])[_0x4bdd('0x45')](0x1,_0x4bdd('0x46'));}else{_0x33c1e6['dateEnd']=moment(_0x33c1e6[_0x4bdd('0x37')])[_0x4bdd('0x45')](0x1,'day');}_[_0x4bdd('0x47')](_0xdd99af['where'],{'createdAt':{'$gte':_0x33c1e6['dateStart'],'$lte':_0x33c1e6['dateEnd']}});}if(_0x444874[_0x4bdd('0x36')][_0x4bdd('0x48')]){_0xdd99af['where']=_[_0x4bdd('0x47')](_0xdd99af[_0x4bdd('0x43')],{'$or':_[_0x4bdd('0x49')](_0xdd99af['attributes'],function(_0x2671f2){var _0x5e66b2={};_0x5e66b2[_0x2671f2]={'$like':'%'+_0x444874[_0x4bdd('0x36')][_0x4bdd('0x48')]+'%'};return _0x5e66b2;})});}_0xdd99af=_['merge']({},_0xdd99af,_0x444874[_0x4bdd('0x4a')]);var _0x102a40={'where':_0xdd99af['where']};return db[_0x4bdd('0x33')][_0x4bdd('0x27')](_0x102a40)[_0x4bdd('0x2e')](function(_0x12ab94){_0x3b3f9d[_0x4bdd('0x27')]=_0x12ab94;if(_0x444874['query'][_0x4bdd('0x4b')]){_0xdd99af[_0x4bdd('0x4c')]=[{'all':!![]}];}return db[_0x4bdd('0x33')][_0x4bdd('0x4d')](_0xdd99af);})[_0x4bdd('0x2e')](function(_0x5c6ee0){_0x3b3f9d[_0x4bdd('0x4e')]=_0x5c6ee0;return _0x3b3f9d;})[_0x4bdd('0x2e')](respondWithFilteredResult(_0x673718,_0xdd99af))[_0x4bdd('0x4f')](handleError(_0x673718,null));};exports[_0x4bdd('0x50')]=function(_0x419510,_0x13f18f){var _0x432e47={'raw':!![],'where':{'id':_0x419510['params']['id']}},_0x6b7313={};_0x6b7313['model']=_['keys'](db['ChatGroup'][_0x4bdd('0x34')]);_0x6b7313[_0x4bdd('0x36')]=_['keys'](_0x419510[_0x4bdd('0x36')]);_0x6b7313[_0x4bdd('0x39')]=_['intersection'](_0x6b7313[_0x4bdd('0x3b')],_0x6b7313['query']);_0x432e47['attributes']=_[_0x4bdd('0x3a')](_0x6b7313['model'],qs[_0x4bdd('0x3c')](_0x419510[_0x4bdd('0x36')][_0x4bdd('0x3c')]));_0x432e47[_0x4bdd('0x3d')]=_0x432e47[_0x4bdd('0x3d')][_0x4bdd('0x3e')]?_0x432e47[_0x4bdd('0x3d')]:_0x6b7313[_0x4bdd('0x3b')];if(_0x419510['query'][_0x4bdd('0x4b')]){_0x432e47[_0x4bdd('0x4c')]=[{'all':!![]}];}_0x432e47=_[_0x4bdd('0x47')]({},_0x432e47,_0x419510['options']);return db['ChatGroup'][_0x4bdd('0x51')](_0x432e47)['then'](handleEntityNotFound(_0x13f18f,null))['then'](respondWithResult(_0x13f18f,null))['catch'](handleError(_0x13f18f,null));};exports[_0x4bdd('0x52')]=function(_0x3488a5,_0x3fdcf5){return db[_0x4bdd('0x33')]['create'](_0x3488a5[_0x4bdd('0x53')],{})[_0x4bdd('0x2e')](respondWithResult(_0x3fdcf5,0xc9))[_0x4bdd('0x4f')](handleError(_0x3fdcf5,null));};exports[_0x4bdd('0x2c')]=function(_0x350c58,_0x343c0b){if(_0x350c58[_0x4bdd('0x53')]['id']){delete _0x350c58[_0x4bdd('0x53')]['id'];}return db[_0x4bdd('0x33')]['find']({'where':{'id':_0x350c58[_0x4bdd('0x54')]['id']}})[_0x4bdd('0x2e')](handleEntityNotFound(_0x343c0b,null))[_0x4bdd('0x2e')](saveUpdates(_0x350c58[_0x4bdd('0x53')],null))[_0x4bdd('0x2e')](respondWithResult(_0x343c0b,null))[_0x4bdd('0x4f')](handleError(_0x343c0b,null));};exports[_0x4bdd('0x2d')]=function(_0x55a55c,_0x4e1574){return db[_0x4bdd('0x33')][_0x4bdd('0x51')]({'where':{'id':_0x55a55c[_0x4bdd('0x54')]['id']}})['then'](handleEntityNotFound(_0x4e1574,null))[_0x4bdd('0x2e')](removeEntity(_0x4e1574,null))[_0x4bdd('0x4f')](handleError(_0x4e1574,null));};exports['describe']=function(_0x57c36d,_0x317922){return db[_0x4bdd('0x33')]['describe']()[_0x4bdd('0x2e')](respondWithResult(_0x317922,null))[_0x4bdd('0x4f')](handleError(_0x317922,null));};exports[_0x4bdd('0x55')]=function(_0x3cf942,_0x163393,_0x567988){return db[_0x4bdd('0x56')][_0x4bdd('0x27')]({'where':{'ChatGroupId':_0x3cf942['params']['id'],'ToId':_0x3cf942[_0x4bdd('0x57')]['id'],'read':![]}})['then'](function(_0x53d1b2){return{'id':_[_0x4bdd('0x58')](_0x3cf942['params']['id']),'count':_0x53d1b2};})[_0x4bdd('0x2e')](respondWithResult(_0x163393,null))[_0x4bdd('0x4f')](handleError(_0x163393,null));};exports[_0x4bdd('0x59')]=function(_0x223458,_0x45bc84,_0x408093){return db[_0x4bdd('0x33')][_0x4bdd('0x51')]({'where':{'id':_0x223458[_0x4bdd('0x54')]['id']}})[_0x4bdd('0x2e')](handleEntityNotFound(_0x45bc84,null))[_0x4bdd('0x2e')](function(_0x3260b3){if(_0x3260b3){return _0x3260b3[_0x4bdd('0x59')](_0x223458[_0x4bdd('0x53')]['ids'],_[_0x4bdd('0x5a')](_0x223458[_0x4bdd('0x53')],[_0x4bdd('0x5b'),'id'])||{});}})[_0x4bdd('0x2e')](respondWithResult(_0x45bc84,null))['catch'](handleError(_0x45bc84,null));};exports['getMembers']=function(_0x3c10df,_0x2c1fff,_0x587a79){var _0x300018={};var _0x2f28ec={};var _0x1af96a;var _0x44ad9e;return db[_0x4bdd('0x33')][_0x4bdd('0x5c')]({'where':{'id':_0x3c10df[_0x4bdd('0x54')]['id']}})[_0x4bdd('0x2e')](handleEntityNotFound(_0x2c1fff,null))[_0x4bdd('0x2e')](function(_0xfed52e){if(_0xfed52e){_0x1af96a=_0xfed52e;_0x2f28ec[_0x4bdd('0x3b')]=_[_0x4bdd('0x35')](db[_0x4bdd('0x5d')]['rawAttributes']);_0x2f28ec[_0x4bdd('0x36')]=_[_0x4bdd('0x35')](_0x3c10df[_0x4bdd('0x36')]);_0x2f28ec['filters']=_['intersection'](_0x2f28ec['model'],_0x2f28ec[_0x4bdd('0x36')]);_0x300018[_0x4bdd('0x3d')]=_[_0x4bdd('0x3a')](_0x2f28ec[_0x4bdd('0x3b')],qs[_0x4bdd('0x3c')](_0x3c10df[_0x4bdd('0x36')]['fields']));_0x300018[_0x4bdd('0x3d')]=_0x300018[_0x4bdd('0x3d')]['length']?_0x300018[_0x4bdd('0x3d')]:_0x2f28ec[_0x4bdd('0x3b')];_0x300018['order']=qs[_0x4bdd('0x42')](_0x3c10df['query'][_0x4bdd('0x42')]);_0x300018[_0x4bdd('0x43')]=qs[_0x4bdd('0x39')](_['pick'](_0x3c10df[_0x4bdd('0x36')],_0x2f28ec[_0x4bdd('0x39')]));if(_0x3c10df['query']['filter']){_0x300018['where']=_[_0x4bdd('0x47')](_0x300018['where'],{'$or':_['map'](_0x300018['attributes'],function(_0x2b44df){var _0x4930f2={};_0x4930f2[_0x2b44df]={'$like':'%'+_0x3c10df['query']['filter']+'%'};return _0x4930f2;})});}_0x300018=_[_0x4bdd('0x47')]({},_0x300018,_0x3c10df[_0x4bdd('0x4a')]);return _0x1af96a[_0x4bdd('0x5e')](_0x300018);}})['then'](function(_0xbe42d6){if(_0xbe42d6){_0x44ad9e=_0xbe42d6[_0x4bdd('0x3e')];if(!_0x3c10df[_0x4bdd('0x36')]['hasOwnProperty']('nolimit')){_0x300018[_0x4bdd('0x29')]=qs[_0x4bdd('0x29')](_0x3c10df[_0x4bdd('0x36')][_0x4bdd('0x29')]);_0x300018[_0x4bdd('0x28')]=qs[_0x4bdd('0x28')](_0x3c10df[_0x4bdd('0x36')][_0x4bdd('0x28')]);}return _0x1af96a[_0x4bdd('0x5e')](_0x300018);}})[_0x4bdd('0x2e')](function(_0x3d46d6){if(_0x3d46d6){return _0x3d46d6?{'count':_0x44ad9e,'rows':_0x3d46d6}:null;}})[_0x4bdd('0x2e')](respondWithResult(_0x2c1fff,null))[_0x4bdd('0x4f')](handleError(_0x2c1fff,null));};exports[_0x4bdd('0x5f')]=function(_0x4aaa7f,_0x561d85,_0x3c3819){var _0x2990a5;return db['ChatGroup'][_0x4bdd('0x51')]({'where':{'id':_0x4aaa7f[_0x4bdd('0x54')]['id']}})[_0x4bdd('0x2e')](handleEntityNotFound(_0x561d85,null))['then'](function(_0x10a7f4){if(_0x10a7f4){return _0x10a7f4[_0x4bdd('0x5f')](_0x4aaa7f[_0x4bdd('0x36')]['ids']);}})[_0x4bdd('0x2e')](respondWithStatusCode(_0x561d85,null))[_0x4bdd('0x4f')](handleError(_0x561d85,null));};exports[_0x4bdd('0x60')]=function(_0x278097,_0x21d8ba,_0xe1a9b7){if(_0x278097['body']['id']){delete _0x278097[_0x4bdd('0x53')]['id'];}return db['ChatGroup'][_0x4bdd('0x51')]({'where':{'id':_0x278097['params']['id']}})[_0x4bdd('0x2e')](handleEntityNotFound(_0x21d8ba,null))[_0x4bdd('0x2e')](function(_0x182c66){if(_0x182c66){_0x278097[_0x4bdd('0x53')]['ChatGroupId']=_0x182c66['id'];return db[_0x4bdd('0x56')][_0x4bdd('0x52')](_0x278097['body']);}})[_0x4bdd('0x2e')](respondWithResult(_0x21d8ba,null))[_0x4bdd('0x4f')](handleError(_0x21d8ba,null));};exports[_0x4bdd('0x61')]=function(_0x4764bc,_0x472485,_0x29af2b){var _0x17d56a={};var _0x55e9b2={};var _0x314443;var _0x322f30;return db[_0x4bdd('0x33')][_0x4bdd('0x5c')]({'where':{'id':_0x4764bc[_0x4bdd('0x54')]['id']}})[_0x4bdd('0x2e')](handleEntityNotFound(_0x472485,null))[_0x4bdd('0x2e')](function(_0x2fcd09){if(_0x2fcd09){_0x314443=_0x2fcd09;_0x55e9b2[_0x4bdd('0x3b')]=_['keys'](db[_0x4bdd('0x56')]['rawAttributes']);_0x55e9b2[_0x4bdd('0x36')]=_['keys'](_0x4764bc[_0x4bdd('0x36')]);_0x55e9b2[_0x4bdd('0x39')]=_[_0x4bdd('0x3a')](_0x55e9b2[_0x4bdd('0x3b')],_0x55e9b2['query']);_0x17d56a[_0x4bdd('0x3d')]=_[_0x4bdd('0x3a')](_0x55e9b2[_0x4bdd('0x3b')],qs['fields'](_0x4764bc[_0x4bdd('0x36')]['fields']));_0x17d56a[_0x4bdd('0x3d')]=_0x17d56a[_0x4bdd('0x3d')][_0x4bdd('0x3e')]?_0x17d56a[_0x4bdd('0x3d')]:_0x55e9b2[_0x4bdd('0x3b')];_0x17d56a[_0x4bdd('0x41')]=qs[_0x4bdd('0x42')](_0x4764bc[_0x4bdd('0x36')][_0x4bdd('0x42')]);_0x17d56a['where']=qs[_0x4bdd('0x39')](_[_0x4bdd('0x44')](_0x4764bc[_0x4bdd('0x36')],_0x55e9b2[_0x4bdd('0x39')]));if(_0x4764bc[_0x4bdd('0x36')][_0x4bdd('0x48')]){_0x17d56a[_0x4bdd('0x43')]=_['merge'](_0x17d56a[_0x4bdd('0x43')],{'$or':_[_0x4bdd('0x49')](_0x17d56a['attributes'],function(_0x3d681a){var _0x227615={};_0x227615[_0x3d681a]={'$like':'%'+_0x4764bc['query'][_0x4bdd('0x48')]+'%'};return _0x227615;})});}if(_0x4764bc[_0x4bdd('0x36')]['$gte']){var _0x584f8c=_0x4764bc[_0x4bdd('0x36')][_0x4bdd('0x62')][_0x4bdd('0x63')](',');var _0xe381a0={};_0xe381a0[_0x584f8c[0x0]]={'$gte':moment(_0x584f8c[0x1])[_0x4bdd('0x64')](_0x4bdd('0x65'))};_0x17d56a[_0x4bdd('0x43')]=_[_0x4bdd('0x47')](_0x17d56a[_0x4bdd('0x43')],_0xe381a0);}_0x17d56a=_[_0x4bdd('0x47')]({},_0x17d56a,_0x4764bc['options']);return _0x314443[_0x4bdd('0x61')](_0x17d56a);}})['then'](function(_0x47197f){if(_0x47197f){_0x322f30=_0x47197f[_0x4bdd('0x3e')];if(!_0x4764bc[_0x4bdd('0x36')][_0x4bdd('0x3f')]('nolimit')){_0x17d56a[_0x4bdd('0x29')]=qs[_0x4bdd('0x29')](_0x4764bc[_0x4bdd('0x36')][_0x4bdd('0x29')]);_0x17d56a[_0x4bdd('0x28')]=qs[_0x4bdd('0x28')](_0x4764bc[_0x4bdd('0x36')][_0x4bdd('0x28')]);}return _0x314443[_0x4bdd('0x61')](_0x17d56a);}})[_0x4bdd('0x2e')](function(_0x149c04){if(_0x149c04){return _0x149c04?{'count':_0x322f30,'rows':_0x149c04}:null;}})[_0x4bdd('0x2e')](respondWithResult(_0x472485,null))[_0x4bdd('0x4f')](handleError(_0x472485,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58a2=['emit','exports','events','ChatGroup','save'];(function(_0x2fabdc,_0xc274f){var _0x9417a6=function(_0x324d7b){while(--_0x324d7b){_0x2fabdc['push'](_0x2fabdc['shift']());}};_0x9417a6(++_0xc274f);}(_0x58a2,0xb1));var _0x258a=function(_0x599f41,_0x4db732){_0x599f41=_0x599f41-0x0;var _0x2e4d58=_0x58a2[_0x599f41];return _0x2e4d58;};'use strict';var EventEmitter=require(_0x258a('0x0'));var ChatGroup=require('../../mysqldb')['db'][_0x258a('0x1')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x258a('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x230e6d){return function(_0x280e5a,_0x1a2ffe,_0x14d8ee){ChatGroupEvents[_0x258a('0x3')](_0x230e6d+':'+_0x280e5a['id'],_0x280e5a);ChatGroupEvents[_0x258a('0x3')](_0x230e6d,_0x280e5a);_0x14d8ee(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatGroup['hook'](e,emitEvent(event));}}module[_0x258a('0x4')]=ChatGroupEvents;
\ No newline at end of file
+var _0x6f01=['save','update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','setMaxListeners'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x6f01,0x11d));var _0x16f0=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x6f01[_0x397e5f];return _0x5302b8;};'use strict';var EventEmitter=require(_0x16f0('0x0'));var ChatGroup=require(_0x16f0('0x1'))['db']['ChatGroup'];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0x16f0('0x2')](0x0);var events={'afterCreate':_0x16f0('0x3'),'afterUpdate':_0x16f0('0x4'),'afterDestroy':_0x16f0('0x5')};function emitEvent(_0x13f94d){return function(_0x3cf580,_0x48ba01,_0x2be174){ChatGroupEvents[_0x16f0('0x6')](_0x13f94d+':'+_0x3cf580['id'],_0x3cf580);ChatGroupEvents['emit'](_0x13f94d,_0x3cf580);_0x2be174(null);};}for(var e in events){if(events[_0x16f0('0x7')](e)){var event=events[e];ChatGroup['hook'](e,emitEvent(event));}}module[_0x16f0('0x8')]=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd3e=['moment','bluebird','define','ChatGroup','chat_groups','util','../../config/logger','api'];(function(_0x37e713,_0x26a409){var _0x4c628b=function(_0x208144){while(--_0x208144){_0x37e713['push'](_0x37e713['shift']());}};_0x4c628b(++_0x26a409);}(_0xfd3e,0xbd));var _0xefd3=function(_0x270350,_0x27a2e7){_0x270350=_0x270350-0x0;var _0x483342=_0xfd3e[_0x270350];return _0x483342;};'use strict';var _=require('lodash');var util=require(_0xefd3('0x0'));var logger=require(_0xefd3('0x1'))(_0xefd3('0x2'));var moment=require(_0xefd3('0x3'));var BPromise=require(_0xefd3('0x4'));var rp=require('request-promise');var attributes=require('./chatGroup.attributes');module['exports']=function(_0x2c3a56,_0x40608b){return _0x2c3a56[_0xefd3('0x5')](_0xefd3('0x6'),attributes,{'tableName':_0xefd3('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9fdc=['moment','bluebird','./chatGroup.attributes','exports','define','ChatGroup','util','api'];(function(_0x5c66da,_0x5be20){var _0x1bbfcd=function(_0x3f7f19){while(--_0x3f7f19){_0x5c66da['push'](_0x5c66da['shift']());}};_0x1bbfcd(++_0x5be20);}(_0x9fdc,0xce));var _0xc9fd=function(_0x3a8dc1,_0x2f03b8){_0x3a8dc1=_0x3a8dc1-0x0;var _0x4b3595=_0x9fdc[_0x3a8dc1];return _0x4b3595;};'use strict';var _=require('lodash');var util=require(_0xc9fd('0x0'));var logger=require('../../config/logger')(_0xc9fd('0x1'));var moment=require(_0xc9fd('0x2'));var BPromise=require(_0xc9fd('0x3'));var rp=require('request-promise');var attributes=require(_0xc9fd('0x4'));module[_0xc9fd('0x5')]=function(_0x3b4191,_0x493379){return _0x3b4191[_0xc9fd('0x6')](_0xc9fd('0x7'),attributes,{'tableName':'chat_groups','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd1e=['code','message','request\x20sent','result','catch','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./chatGroup.socket','register','request','then','info','ChatGroup,\x20%s,\x20%s','debug','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x22da61,_0x237ba9){var _0x40b728=function(_0x24db93){while(--_0x24db93){_0x22da61['push'](_0x22da61['shift']());}};_0x40b728(++_0x237ba9);}(_0xcd1e,0x1c5));var _0xecd1=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0xcd1e[_0x17d9e3];return _0x14192d;};'use strict';var _=require(_0xecd1('0x0'));var util=require(_0xecd1('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xecd1('0x2'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xecd1('0x3'));var logger=require(_0xecd1('0x4'))(_0xecd1('0x5'));var config=require(_0xecd1('0x6'));var jayson=require(_0xecd1('0x7'));var client=jayson[_0xecd1('0x8')][_0xecd1('0x9')]({'port':0x232a});config[_0xecd1('0xa')]=_[_0xecd1('0xb')](config[_0xecd1('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xecd1('0xc'))(config[_0xecd1('0xa')]);require(_0xecd1('0xd'))[_0xecd1('0xe')](socket);function respondWithRpcPromise(_0x661da5,_0x5876ce,_0x208dc0){return new BPromise(function(_0x391708,_0x1c3949){return client[_0xecd1('0xf')](_0x661da5,_0x208dc0)[_0xecd1('0x10')](function(_0x498506){logger[_0xecd1('0x11')](_0xecd1('0x12'),_0x5876ce,'request\x20sent');logger[_0xecd1('0x13')](_0xecd1('0x14'),_0x5876ce,'request\x20sent',JSON[_0xecd1('0x15')](_0x498506));if(_0x498506[_0xecd1('0x16')]){if(_0x498506[_0xecd1('0x16')][_0xecd1('0x17')]===0x1f4){logger[_0xecd1('0x16')](_0xecd1('0x12'),_0x5876ce,_0x498506[_0xecd1('0x16')]['message']);return _0x1c3949(_0x498506[_0xecd1('0x16')]['message']);}logger[_0xecd1('0x16')](_0xecd1('0x12'),_0x5876ce,_0x498506[_0xecd1('0x16')][_0xecd1('0x18')]);return _0x391708(_0x498506[_0xecd1('0x16')][_0xecd1('0x18')]);}else{logger['info']('ChatGroup,\x20%s,\x20%s',_0x5876ce,_0xecd1('0x19'));_0x391708(_0x498506[_0xecd1('0x1a')][_0xecd1('0x18')]);}})[_0xecd1('0x1b')](function(_0x2c735b){logger[_0xecd1('0x16')](_0xecd1('0x12'),_0x5876ce,_0x2c735b);_0x1c3949(_0x2c735b);});});}
\ No newline at end of file
+var _0x81bd=['http','redis','localhost','./chatGroup.socket','register','request','then','info','ChatGroup,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client'];(function(_0x24193e,_0x4bfc12){var _0x424054=function(_0x379b3e){while(--_0x379b3e){_0x24193e['push'](_0x24193e['shift']());}};_0x424054(++_0x4bfc12);}(_0x81bd,0x7c));var _0xd81b=function(_0x5d6270,_0x83b57a){_0x5d6270=_0x5d6270-0x0;var _0x168f26=_0x81bd[_0x5d6270];return _0x168f26;};'use strict';var _=require(_0xd81b('0x0'));var util=require(_0xd81b('0x1'));var moment=require(_0xd81b('0x2'));var BPromise=require(_0xd81b('0x3'));var rs=require(_0xd81b('0x4'));var fs=require('fs');var Redis=require(_0xd81b('0x5'));var db=require(_0xd81b('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xd81b('0x7'))(_0xd81b('0x8'));var config=require(_0xd81b('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xd81b('0xa')][_0xd81b('0xb')]({'port':0x232a});config[_0xd81b('0xc')]=_['defaults'](config['redis'],{'host':_0xd81b('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd81b('0xc')]));require(_0xd81b('0xe'))[_0xd81b('0xf')](socket);function respondWithRpcPromise(_0x86dab6,_0x17fba4,_0x1ff60f){return new BPromise(function(_0x4391be,_0x17e09f){return client[_0xd81b('0x10')](_0x86dab6,_0x1ff60f)[_0xd81b('0x11')](function(_0x215b92){logger[_0xd81b('0x12')](_0xd81b('0x13'),_0x17fba4,'request\x20sent');logger[_0xd81b('0x14')]('ChatGroup,\x20%s,\x20%s,\x20%s',_0x17fba4,_0xd81b('0x15'),JSON[_0xd81b('0x16')](_0x215b92));if(_0x215b92['error']){if(_0x215b92[_0xd81b('0x17')]['code']===0x1f4){logger[_0xd81b('0x17')](_0xd81b('0x13'),_0x17fba4,_0x215b92[_0xd81b('0x17')][_0xd81b('0x18')]);return _0x17e09f(_0x215b92[_0xd81b('0x17')]['message']);}logger[_0xd81b('0x17')](_0xd81b('0x13'),_0x17fba4,_0x215b92['error'][_0xd81b('0x18')]);return _0x4391be(_0x215b92[_0xd81b('0x17')][_0xd81b('0x18')]);}else{logger[_0xd81b('0x12')](_0xd81b('0x13'),_0x17fba4,_0xd81b('0x15'));_0x4391be(_0x215b92[_0xd81b('0x19')][_0xd81b('0x18')]);}})[_0xd81b('0x1a')](function(_0x285164){logger[_0xd81b('0x17')](_0xd81b('0x13'),_0x17fba4,_0x285164);_0x17e09f(_0x285164);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb790=['chatGroup:','save','register','length'];(function(_0x299ccd,_0x336381){var _0x27147b=function(_0x263333){while(--_0x263333){_0x299ccd['push'](_0x299ccd['shift']());}};_0x27147b(++_0x336381);}(_0xb790,0xe5));var _0x0b79=function(_0x483d8b,_0x526c52){_0x483d8b=_0x483d8b-0x0;var _0x6500f1=_0xb790[_0x483d8b];return _0x6500f1;};'use strict';var ChatGroupEvents=require('./chatGroup.events');var events=[_0x0b79('0x0'),'remove','update'];function createListener(_0x4ee552,_0x200eca){return function(_0x515264){_0x200eca['emit'](_0x4ee552,_0x515264);};}function removeListener(_0x2d75b0,_0x30b3fa){return function(){ChatGroupEvents['removeListener'](_0x2d75b0,_0x30b3fa);};}exports[_0x0b79('0x1')]=function(_0x1b1f97){for(var _0x169608=0x0,_0x574c73=events[_0x0b79('0x2')];_0x169608<_0x574c73;_0x169608++){var _0x1e9124=events[_0x169608];var _0x3de006=createListener(_0x0b79('0x3')+_0x1e9124,_0x1b1f97);ChatGroupEvents['on'](_0x1e9124,_0x3de006);}};
\ No newline at end of file
+var _0x682e=['register','length','chatGroup:','./chatGroup.events','save','remove','update','emit','removeListener'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x682e,0x1ce));var _0xe682=function(_0x53cbde,_0x1ffa40){_0x53cbde=_0x53cbde-0x0;var _0x338d01=_0x682e[_0x53cbde];return _0x338d01;};'use strict';var ChatGroupEvents=require(_0xe682('0x0'));var events=[_0xe682('0x1'),_0xe682('0x2'),_0xe682('0x3')];function createListener(_0x1fc41a,_0x31f019){return function(_0x5cbf47){_0x31f019[_0xe682('0x4')](_0x1fc41a,_0x5cbf47);};}function removeListener(_0x10c8cd,_0x3705a2){return function(){ChatGroupEvents[_0xe682('0x5')](_0x10c8cd,_0x3705a2);};}exports[_0xe682('0x6')]=function(_0x51e786){for(var _0x3b4c98=0x0,_0xd6995=events[_0xe682('0x7')];_0x3b4c98<_0xd6995;_0x3b4c98++){var _0x1ab428=events[_0x3b4c98];var _0x4e7e7d=createListener(_0xe682('0x8')+_0x1ab428,_0x51e786);ChatGroupEvents['on'](_0x1ab428,_0x4e7e7d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59e0=['/:id/unread','getUnread','getMembers','/:id/messages','post','create','addMembers','addMessage','put','update','delete','destroy','/:id/members','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','index','/describe','isAuthenticated','describe','/:id','show'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0x59e0,0xa9));var _0x059e=function(_0x263ebc,_0x38c5ab){_0x263ebc=_0x263ebc-0x0;var _0x550752=_0x59e0[_0x263ebc];return _0x550752;};'use strict';var multer=require(_0x059e('0x0'));var util=require(_0x059e('0x1'));var path=require(_0x059e('0x2'));var timeout=require(_0x059e('0x3'));var express=require(_0x059e('0x4'));var router=express[_0x059e('0x5')]();var auth=require(_0x059e('0x6'));var interaction=require(_0x059e('0x7'));var config=require(_0x059e('0x8'));var controller=require(_0x059e('0x9'));router[_0x059e('0xa')]('/',auth['isAuthenticated'](),controller[_0x059e('0xb')]);router[_0x059e('0xa')](_0x059e('0xc'),auth[_0x059e('0xd')](),controller[_0x059e('0xe')]);router[_0x059e('0xa')](_0x059e('0xf'),auth[_0x059e('0xd')](),controller[_0x059e('0x10')]);router[_0x059e('0xa')](_0x059e('0x11'),auth[_0x059e('0xd')](),controller[_0x059e('0x12')]);router[_0x059e('0xa')]('/:id/members',auth[_0x059e('0xd')](),controller[_0x059e('0x13')]);router[_0x059e('0xa')](_0x059e('0x14'),auth[_0x059e('0xd')](),controller['getMessages']);router[_0x059e('0x15')]('/',auth[_0x059e('0xd')](),controller[_0x059e('0x16')]);router[_0x059e('0x15')]('/:id/members',auth[_0x059e('0xd')](),controller[_0x059e('0x17')]);router['post']('/:id/messages',auth[_0x059e('0xd')](),controller[_0x059e('0x18')]);router[_0x059e('0x19')](_0x059e('0xf'),auth['isAuthenticated'](),controller[_0x059e('0x1a')]);router[_0x059e('0x1b')](_0x059e('0xf'),auth['isAuthenticated'](),controller[_0x059e('0x1c')]);router[_0x059e('0x1b')](_0x059e('0x1d'),auth['isAuthenticated'](),controller['removeMembers']);module[_0x059e('0x1e')]=router;
\ No newline at end of file
+var _0x84b3=['index','get','/describe','describe','/:id','/:id/unread','getUnread','/:id/members','getMembers','/:id/messages','getMessages','create','addMembers','post','addMessage','put','update','delete','destroy','removeMembers','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatGroup.controller','isAuthenticated'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x84b3,0x12c));var _0x384b=function(_0x19de56,_0x2d7287){_0x19de56=_0x19de56-0x0;var _0x15e5b9=_0x84b3[_0x19de56];return _0x15e5b9;};'use strict';var multer=require(_0x384b('0x0'));var util=require(_0x384b('0x1'));var path=require(_0x384b('0x2'));var timeout=require(_0x384b('0x3'));var express=require('express');var router=express[_0x384b('0x4')]();var auth=require(_0x384b('0x5'));var interaction=require(_0x384b('0x6'));var config=require(_0x384b('0x7'));var controller=require(_0x384b('0x8'));router['get']('/',auth[_0x384b('0x9')](),controller[_0x384b('0xa')]);router[_0x384b('0xb')](_0x384b('0xc'),auth[_0x384b('0x9')](),controller[_0x384b('0xd')]);router[_0x384b('0xb')](_0x384b('0xe'),auth[_0x384b('0x9')](),controller['show']);router[_0x384b('0xb')](_0x384b('0xf'),auth[_0x384b('0x9')](),controller[_0x384b('0x10')]);router[_0x384b('0xb')](_0x384b('0x11'),auth[_0x384b('0x9')](),controller[_0x384b('0x12')]);router[_0x384b('0xb')](_0x384b('0x13'),auth[_0x384b('0x9')](),controller[_0x384b('0x14')]);router['post']('/',auth[_0x384b('0x9')](),controller[_0x384b('0x15')]);router['post'](_0x384b('0x11'),auth[_0x384b('0x9')](),controller[_0x384b('0x16')]);router[_0x384b('0x17')](_0x384b('0x13'),auth[_0x384b('0x9')](),controller[_0x384b('0x18')]);router[_0x384b('0x19')]('/:id',auth[_0x384b('0x9')](),controller[_0x384b('0x1a')]);router[_0x384b('0x1b')](_0x384b('0xe'),auth[_0x384b('0x9')](),controller[_0x384b('0x1c')]);router[_0x384b('0x1b')](_0x384b('0x11'),auth[_0x384b('0x9')](),controller[_0x384b('0x1d')]);module[_0x384b('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9348=['star','TEXT','STRING','DATE','out','sequelize','exports','BOOLEAN','INTEGER','ENUM','thumb'];(function(_0xf8279b,_0xc1edb0){var _0x582abc=function(_0xb326c3){while(--_0xb326c3){_0xf8279b['push'](_0xf8279b['shift']());}};_0x582abc(++_0xc1edb0);}(_0x9348,0x10d));var _0x8934=function(_0x426799,_0x21a06b){_0x426799=_0x426799-0x0;var _0xf6741e=_0x9348[_0x426799];return _0xf6741e;};'use strict';var Sequelize=require(_0x8934('0x0'));module[_0x8934('0x1')]={'closed':{'type':Sequelize[_0x8934('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x8934('0x3')]},'ratingType':{'type':Sequelize[_0x8934('0x4')]('star',_0x8934('0x5')),'defaultValue':_0x8934('0x6')},'ratingMessage':{'type':Sequelize['TEXT']},'pathTranscript':{'type':Sequelize[_0x8934('0x7')]},'mailTranscript':{'type':Sequelize[_0x8934('0x8')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x8934('0x9')]},'disposition':{'type':Sequelize[_0x8934('0x8')]},'note':{'type':Sequelize[_0x8934('0x8')]},'browserName':{'type':Sequelize[_0x8934('0x8')]},'browserVersion':{'type':Sequelize['STRING']},'osName':{'type':Sequelize[_0x8934('0x8')]},'osVersion':{'type':Sequelize[_0x8934('0x8')]},'deviceModel':{'type':Sequelize[_0x8934('0x8')]},'deviceVendor':{'type':Sequelize['STRING']},'deviceType':{'type':Sequelize['STRING']},'referer':{'type':Sequelize['STRING']},'customerIp':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0x8934('0x7')]('long')},'read1stAt':{'type':Sequelize[_0x8934('0x9')]},'lastMsgAt':{'type':Sequelize[_0x8934('0x9')]},'lastMsgDirection':{'type':Sequelize[_0x8934('0x4')]('in',_0x8934('0xa')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x8934('0x8')]}};
\ No newline at end of file
+var _0x6324=['long','ENUM','out','sequelize','exports','BOOLEAN','INTEGER','star','TEXT','DATE','STRING'];(function(_0x25c282,_0x45cdc5){var _0x56a2e6=function(_0x1e4a47){while(--_0x1e4a47){_0x25c282['push'](_0x25c282['shift']());}};_0x56a2e6(++_0x45cdc5);}(_0x6324,0x142));var _0x4632=function(_0x4bfac3,_0x58324d){_0x4bfac3=_0x4bfac3-0x0;var _0x15f0f2=_0x6324[_0x4bfac3];return _0x15f0f2;};'use strict';var Sequelize=require(_0x4632('0x0'));module[_0x4632('0x1')]={'closed':{'type':Sequelize[_0x4632('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x4632('0x3')]},'ratingType':{'type':Sequelize['ENUM'](_0x4632('0x4'),'thumb'),'defaultValue':_0x4632('0x4')},'ratingMessage':{'type':Sequelize['TEXT']},'pathTranscript':{'type':Sequelize[_0x4632('0x5')]},'mailTranscript':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x4632('0x6')]},'disposition':{'type':Sequelize[_0x4632('0x7')]},'note':{'type':Sequelize[_0x4632('0x7')]},'browserName':{'type':Sequelize[_0x4632('0x7')]},'browserVersion':{'type':Sequelize['STRING']},'osName':{'type':Sequelize[_0x4632('0x7')]},'osVersion':{'type':Sequelize[_0x4632('0x7')]},'deviceModel':{'type':Sequelize[_0x4632('0x7')]},'deviceVendor':{'type':Sequelize['STRING']},'deviceType':{'type':Sequelize[_0x4632('0x7')]},'referer':{'type':Sequelize[_0x4632('0x7')]},'customerIp':{'type':Sequelize['STRING']},'formData':{'type':Sequelize['TEXT'](_0x4632('0x8'))},'read1stAt':{'type':Sequelize[_0x4632('0x6')]},'lastMsgAt':{'type':Sequelize[_0x4632('0x6')]},'lastMsgDirection':{'type':Sequelize[_0x4632('0x9')]('in',_0x4632('0xa')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x4632('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84f4=['<hr>','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','</div>','existsSync','createReadStream','pipe','createWriteStream','toFile','interaction-','.pdf','log','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','Content-Range','apply','destroy','name','send','index','ChatInteraction','rawAttributes','keys','query','dateEnd','filters','intersection','attributes','model','fields','length','hasOwnProperty','limit','sort','dateStart','day','where','filter','merge','map','options','include','tag','Tag','Tags','distinct','read','push','ChatMessage','Messages','createdAt','includeAll','User','Users','fullname','Contact','Owner','internal','ChatWebsite','Account','key','direction','ThroughTags','findAll','rows','show','params','find','create','body','update','describe','customUpdate','abandon','UserId','Sequelize','Interaction\x20already\x20assigned','closed','closedAt','disposition','AbandonInteraction','attachmentUpload','file','originalname','basename','filename','type','mimetype','Attachment','attachmentDownload','findOne','Unauthorized','attachId','join','root','server/files/attachments/','close','mailTranscript','server/files/chat/upload/','format','pathTranscript','ChatWebsiteId','ContactId','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','appendFileSync','MailServerOut','Smtp','service','host','port','secure','sendMail','\x22%s\x22\x20<%s>','user','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','order','pick','$gte','split','YYYY-MM-DD\x20HH:mm:ss','getMyMessages','nolimit','ChatInteractionId','secret','includeAgent','addTags','setTags','spread','color','emit','chatInteractionTags:save','removeTags','download','unix','toString','server','files','tmp','interaction-%s.zip','CmContact','firstName','Letter','1cm','mkdirSync','<h1>Chat\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>'];(function(_0x7ba7d7,_0x30de0e){var _0x3ab128=function(_0x680a95){while(--_0x680a95){_0x7ba7d7['push'](_0x7ba7d7['shift']());}};_0x3ab128(++_0x30de0e);}(_0x84f4,0xdf));var _0x484f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x84f4[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x484f('0x0'));var emlformat=require(_0x484f('0x1'));var rimraf=require(_0x484f('0x2'));var zipdir=require(_0x484f('0x3'));var jsonpatch=require(_0x484f('0x4'));var rp=require(_0x484f('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x484f('0x6'));var path=require(_0x484f('0x7'));var sox=require(_0x484f('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x484f('0x9'));var squel=require(_0x484f('0xa'));var crypto=require(_0x484f('0xb'));var jsforce=require(_0x484f('0xc'));var deskjs=require(_0x484f('0xd'));var toCsv=require(_0x484f('0xe'));var querystring=require(_0x484f('0xf'));var Papa=require(_0x484f('0x10'));var qs=require(_0x484f('0x11'));var logger=require(_0x484f('0x12'))(_0x484f('0x13'));var utils=require('../../config/utils');var config=require(_0x484f('0x14'));var db=require(_0x484f('0x15'))['db'];config[_0x484f('0x16')]=_['defaults'](config[_0x484f('0x16')],{'host':_0x484f('0x17'),'port':0x18eb});var socket=require(_0x484f('0x18'))(config[_0x484f('0x16')]);require(_0x484f('0x19'))['register'](socket);var jayson=require(_0x484f('0x1a'));var client=jayson[_0x484f('0x1b')][_0x484f('0x1c')]({'port':0x232b});var client9004=jayson['client'][_0x484f('0x1c')]({'port':0x232c});function respondWithRpcPromise(_0x107802,_0x4d7e74,_0x3c9ec4,_0x2a90c6){return new BPromise(function(_0x520300,_0x383f52){var _0x27dea9=_0x2a90c6||client;return _0x27dea9[_0x484f('0x1d')](_0x107802,_0x3c9ec4)[_0x484f('0x1e')](function(_0x23e790){logger[_0x484f('0x1f')](_0x484f('0x20'),_0x4d7e74,_0x484f('0x21'));logger[_0x484f('0x22')](_0x484f('0x23'),_0x4d7e74,_0x484f('0x21'),JSON[_0x484f('0x24')](_0x23e790));if(_0x23e790[_0x484f('0x25')]){if(_0x23e790[_0x484f('0x25')][_0x484f('0x26')]===0x1f4){logger[_0x484f('0x25')]('ChatInteraction,\x20%s,\x20%s',_0x4d7e74,_0x23e790[_0x484f('0x25')][_0x484f('0x27')]);return _0x383f52(_0x23e790[_0x484f('0x25')][_0x484f('0x27')]);}logger[_0x484f('0x25')]('ChatInteraction,\x20%s,\x20%s',_0x4d7e74,_0x23e790[_0x484f('0x25')][_0x484f('0x27')]);return _0x520300(_0x23e790[_0x484f('0x25')][_0x484f('0x27')]);}else{logger[_0x484f('0x1f')](_0x484f('0x20'),_0x4d7e74,_0x484f('0x21'));_0x520300(_0x23e790[_0x484f('0x28')][_0x484f('0x27')]);}})[_0x484f('0x29')](function(_0x162025){logger[_0x484f('0x25')]('ChatInteraction,\x20%s,\x20%s',_0x4d7e74,_0x162025);_0x383f52(_0x162025);});});}function respondWithStatusCode(_0x1edcd5,_0x2c4d6e){_0x2c4d6e=_0x2c4d6e||0xcc;return function(_0x5a3fd5){if(_0x5a3fd5){return _0x1edcd5[_0x484f('0x2a')](_0x2c4d6e);}return _0x1edcd5[_0x484f('0x2b')](_0x2c4d6e)[_0x484f('0x2c')]();};}function respondWithResult(_0x2b7456,_0x372096){_0x372096=_0x372096||0xc8;return function(_0x55d15e){if(_0x55d15e){return _0x2b7456[_0x484f('0x2b')](_0x372096)[_0x484f('0x2d')](_0x55d15e);}};}function respondWithFilteredResult(_0x241e96,_0x797ca0){return function(_0x30a81a){if(_0x30a81a){var _0x2f8152=_0x30a81a[_0x484f('0x2e')],_0x456208=_0x797ca0['offset'],_0x4bf16b=_0x797ca0[_0x484f('0x2f')]+_0x797ca0['limit'],_0x512bae;if(_0x4bf16b>=_0x2f8152){_0x4bf16b=_0x2f8152;_0x512bae=0xc8;}else{_0x512bae=0xce;}_0x241e96[_0x484f('0x2b')](_0x512bae);return _0x241e96['set'](_0x484f('0x30'),_0x456208+'-'+_0x4bf16b+'/'+_0x2f8152)[_0x484f('0x2d')](_0x30a81a);}return null;};}function patchUpdates(_0x201b09){return function(_0x197e84){try{jsonpatch[_0x484f('0x31')](_0x197e84,_0x201b09,!![]);}catch(_0x13ce5b){return BPromise['reject'](_0x13ce5b);}return _0x197e84['save']();};}function saveUpdates(_0x2748fd,_0x5dd961){return function(_0x4d78a4){if(_0x4d78a4){return _0x4d78a4['update'](_0x2748fd)[_0x484f('0x1e')](function(_0x597f9b){return _0x597f9b;});}return null;};}function removeEntity(_0x8cc39d,_0x4a5e5b){return function(_0x318451){if(_0x318451){return _0x318451[_0x484f('0x32')]()[_0x484f('0x1e')](function(){_0x8cc39d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xf5db30,_0x29ccd9){return function(_0x57989b){if(!_0x57989b){_0xf5db30[_0x484f('0x2a')](0x194);}return _0x57989b;};}function handleError(_0x5be39a,_0x16dffd){_0x16dffd=_0x16dffd||0x1f4;return function(_0x47e265){logger[_0x484f('0x25')](_0x47e265['stack']);if(_0x47e265[_0x484f('0x33')]){delete _0x47e265[_0x484f('0x33')];}_0x5be39a[_0x484f('0x2b')](_0x16dffd)[_0x484f('0x34')](_0x47e265);};}exports[_0x484f('0x35')]=function(_0x154335,_0x54ff6b){var _0x478473={},_0x2513c7={},_0x124c75={'count':0x0,'rows':[]};var _0x3bf5e3=db[_0x484f('0x36')][_0x484f('0x37')];_0x2513c7['model']=_[_0x484f('0x38')](_0x3bf5e3);var _0x337a85={'dateStart':_0x154335[_0x484f('0x39')]['dateStart'],'dateEnd':_0x154335[_0x484f('0x39')][_0x484f('0x3a')]};delete _0x154335['query']['dateStart'];delete _0x154335[_0x484f('0x39')][_0x484f('0x3a')];_0x2513c7[_0x484f('0x39')]=_[_0x484f('0x38')](_0x154335[_0x484f('0x39')]);_0x2513c7[_0x484f('0x3b')]=_[_0x484f('0x3c')](_0x2513c7['model'],_0x2513c7['query']);_0x478473[_0x484f('0x3d')]=_[_0x484f('0x3c')](_0x2513c7[_0x484f('0x3e')],qs['fields'](_0x154335[_0x484f('0x39')][_0x484f('0x3f')]));_0x478473[_0x484f('0x3d')]=_0x478473[_0x484f('0x3d')][_0x484f('0x40')]?_0x478473['attributes']:_0x2513c7[_0x484f('0x3e')];if(!_0x154335[_0x484f('0x39')][_0x484f('0x41')]('nolimit')){_0x478473[_0x484f('0x42')]=qs[_0x484f('0x42')](_0x154335[_0x484f('0x39')][_0x484f('0x42')]);_0x478473[_0x484f('0x2f')]=qs[_0x484f('0x2f')](_0x154335[_0x484f('0x39')][_0x484f('0x2f')]);}_0x478473['order']=qs[_0x484f('0x43')](_0x154335['query'][_0x484f('0x43')]);_0x478473['where']=qs['filters'](_['pick'](_0x154335['query'],_0x2513c7[_0x484f('0x3b')]));if(_0x337a85[_0x484f('0x44')]){if(_0x337a85['dateEnd']){_0x337a85[_0x484f('0x3a')]=moment(_0x337a85[_0x484f('0x3a')])['add'](0x1,_0x484f('0x45'));}else{_0x337a85[_0x484f('0x3a')]=moment(_0x337a85[_0x484f('0x44')])['add'](0x1,_0x484f('0x45'));}_['merge'](_0x478473[_0x484f('0x46')],{'createdAt':{'$gte':_0x337a85['dateStart'],'$lte':_0x337a85['dateEnd']}});}if(_0x154335[_0x484f('0x39')][_0x484f('0x47')]){_0x478473[_0x484f('0x46')]=_[_0x484f('0x48')](_0x478473[_0x484f('0x46')],{'$or':_[_0x484f('0x49')](_0x478473[_0x484f('0x3d')],function(_0x55a005){var _0x2cac67={};_0x2cac67[_0x55a005]={'$like':'%'+_0x154335[_0x484f('0x39')][_0x484f('0x47')]+'%'};return _0x2cac67;})});}_0x478473=_[_0x484f('0x48')]({},_0x478473,_0x154335[_0x484f('0x4a')]);var _0xe38927={'where':_0x478473[_0x484f('0x46')]};_0xe38927[_0x484f('0x4b')]=[];if(_0x154335[_0x484f('0x39')][_0x484f('0x4c')]){_0xe38927[_0x484f('0x4b')]['push']({'model':db[_0x484f('0x4d')],'as':_0x484f('0x4e'),'attributes':['id'],'where':{'id':_0x154335[_0x484f('0x39')][_0x484f('0x4c')]},'required':!![]});_0xe38927[_0x484f('0x4f')]=!![];}if(_0x154335[_0x484f('0x39')][_0x484f('0x50')]){_0xe38927[_0x484f('0x4b')][_0x484f('0x51')]({'model':db[_0x484f('0x52')],'as':_0x484f('0x53'),'attributes':['id','direction',_0x484f('0x54'),'read'],'where':{'direction':'in','read':_0x154335[_0x484f('0x39')][_0x484f('0x50')]||![]},'required':!![]});_0xe38927[_0x484f('0x4f')]=!![];}return db[_0x484f('0x36')][_0x484f('0x2e')](_0xe38927)[_0x484f('0x1e')](function(_0x2e0b11){_0x124c75['count']=_0x2e0b11;if(_0x154335[_0x484f('0x39')][_0x484f('0x55')]){_0x478473['include']=[{'model':db[_0x484f('0x56')],'as':_0x484f('0x57'),'required':![],'attributes':['id',_0x484f('0x33'),_0x484f('0x58')]},{'model':db['CmContact'],'as':_0x484f('0x59'),'required':![]},{'model':db['User'],'as':_0x484f('0x5a'),'attributes':['name',_0x484f('0x58'),_0x484f('0x5b')],'required':![]},{'model':db[_0x484f('0x5c')],'as':_0x484f('0x5d'),'attributes':['name',_0x484f('0x5e')],'required':![]},{'model':db[_0x484f('0x52')],'as':_0x484f('0x53'),'attributes':['id',_0x484f('0x5f'),'createdAt',_0x484f('0x50')],'where':{'direction':'in','read':_0x154335[_0x484f('0x39')][_0x484f('0x50')]||![]},'required':_0x154335[_0x484f('0x39')][_0x484f('0x50')]||![]},{'model':db[_0x484f('0x4d')],'as':'Tags','attributes':['id',_0x484f('0x33'),'color'],'required':_0x154335['query'][_0x484f('0x4c')]?!![]:![]},{'model':db[_0x484f('0x4d')],'as':_0x484f('0x60'),'attributes':['id',_0x484f('0x33'),'color'],'through':_0x154335['query']['tag']?{'attributes':[],'where':{'TagId':_0x154335['query'][_0x484f('0x4c')]||undefined}}:{},'required':_0x154335['query'][_0x484f('0x4c')]?!![]:![]}];}return db[_0x484f('0x36')][_0x484f('0x61')](_0x478473);})['then'](function(_0x2443ae){_0x124c75[_0x484f('0x62')]=_0x2443ae;return _0x124c75;})['then'](respondWithFilteredResult(_0x54ff6b,_0x478473))[_0x484f('0x29')](handleError(_0x54ff6b,null));};exports[_0x484f('0x63')]=function(_0x127786,_0x376d66){var _0x4f016f={'raw':![],'where':{'id':_0x127786[_0x484f('0x64')]['id']}},_0x14d741={};_0x14d741[_0x484f('0x3e')]=_[_0x484f('0x38')](db[_0x484f('0x36')][_0x484f('0x37')]);_0x14d741[_0x484f('0x39')]=_[_0x484f('0x38')](_0x127786[_0x484f('0x39')]);_0x14d741[_0x484f('0x3b')]=_[_0x484f('0x3c')](_0x14d741['model'],_0x14d741[_0x484f('0x39')]);_0x4f016f[_0x484f('0x3d')]=_[_0x484f('0x3c')](_0x14d741[_0x484f('0x3e')],qs[_0x484f('0x3f')](_0x127786[_0x484f('0x39')]['fields']));_0x4f016f[_0x484f('0x3d')]=_0x4f016f['attributes'][_0x484f('0x40')]?_0x4f016f[_0x484f('0x3d')]:_0x14d741[_0x484f('0x3e')];if(_0x127786['query'][_0x484f('0x55')]){_0x4f016f[_0x484f('0x4b')]=[{'all':!![]}];}_0x4f016f=_[_0x484f('0x48')]({},_0x4f016f,_0x127786[_0x484f('0x4a')]);return db[_0x484f('0x36')][_0x484f('0x65')](_0x4f016f)['then'](handleEntityNotFound(_0x376d66,null))[_0x484f('0x1e')](respondWithResult(_0x376d66,null))['catch'](handleError(_0x376d66,null));};exports['create']=function(_0x5715bb,_0x21c6b4){return db[_0x484f('0x36')][_0x484f('0x66')](_0x5715bb[_0x484f('0x67')],{})[_0x484f('0x1e')](respondWithResult(_0x21c6b4,0xc9))['catch'](handleError(_0x21c6b4,null));};exports[_0x484f('0x68')]=function(_0x181f82,_0x1ac525){if(_0x181f82[_0x484f('0x67')]['id']){delete _0x181f82[_0x484f('0x67')]['id'];}return db['ChatInteraction'][_0x484f('0x65')]({'where':{'id':_0x181f82[_0x484f('0x64')]['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x1ac525,null))[_0x484f('0x1e')](saveUpdates(_0x181f82[_0x484f('0x67')],null))['then'](respondWithResult(_0x1ac525,null))[_0x484f('0x29')](handleError(_0x1ac525,null));};exports[_0x484f('0x32')]=function(_0x1bce94,_0x1a1f12){return db[_0x484f('0x36')]['find']({'where':{'id':_0x1bce94[_0x484f('0x64')]['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x1a1f12,null))['then'](removeEntity(_0x1a1f12,null))[_0x484f('0x29')](handleError(_0x1a1f12,null));};exports[_0x484f('0x69')]=function(_0x17e40d,_0x3dded4){return db[_0x484f('0x36')][_0x484f('0x69')]()[_0x484f('0x1e')](respondWithResult(_0x3dded4,null))[_0x484f('0x29')](handleError(_0x3dded4,null));};exports[_0x484f('0x6a')]=function(_0x482bc4,_0x367774){if(_0x482bc4[_0x484f('0x67')]['id']){delete _0x482bc4[_0x484f('0x67')]['id'];}return db['ChatInteraction'][_0x484f('0x65')]({'where':{'id':_0x482bc4['params']['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x367774,null))[_0x484f('0x1e')](saveUpdates(_0x482bc4[_0x484f('0x67')],null))[_0x484f('0x1e')](respondWithResult(_0x367774,null))[_0x484f('0x29')](handleError(_0x367774,null));};exports[_0x484f('0x6b')]=function(_0x498dd2,_0x1d75c9,_0x28fc5b){if(_0x498dd2[_0x484f('0x67')]['id']){delete _0x498dd2[_0x484f('0x67')]['id'];}return db[_0x484f('0x36')]['find']({'where':{'id':_0x498dd2['params']['id']}})['then'](function(_0x3aeff6){if(!_0x3aeff6){logger[_0x484f('0x25')]('abandonInteraction,\x20%s,\x20%s,\x20%s','abandon',0x194,'entity\x20not\x20found');_0x1d75c9[_0x484f('0x2a')](0x194);}else{if(_0x3aeff6[_0x484f('0x6c')]){throw new db[(_0x484f('0x6d'))]['ValidationError'](_0x484f('0x6e'));}}return _0x3aeff6;})['then'](function(_0x59c735){if(_0x59c735){return _0x59c735[_0x484f('0x68')]({'closed':_0x498dd2[_0x484f('0x67')][_0x484f('0x6f')],'closedAt':_0x498dd2[_0x484f('0x67')][_0x484f('0x70')],'disposition':_0x498dd2[_0x484f('0x67')][_0x484f('0x71')]})[_0x484f('0x1e')](function(_0x47b5fc){return _0x47b5fc;});}})[_0x484f('0x1e')](function(_0x1a9c98){return respondWithRpcPromise(_0x484f('0x72'),_0x484f('0x6b'),_0x498dd2['body'],client9004);})['then'](respondWithResult(_0x1d75c9,null))['catch'](handleError(_0x1d75c9,null));};exports[_0x484f('0x73')]=function(_0x51f108,_0x445b10,_0x3577ef){_0x51f108['body']['name']=_0x51f108[_0x484f('0x74')][_0x484f('0x75')];_0x51f108[_0x484f('0x67')][_0x484f('0x76')]=_0x51f108['file'][_0x484f('0x77')];_0x51f108[_0x484f('0x67')][_0x484f('0x78')]=_0x51f108[_0x484f('0x74')][_0x484f('0x79')];return db[_0x484f('0x7a')][_0x484f('0x66')](_0x51f108['body'])[_0x484f('0x1e')](respondWithResult(_0x445b10,0xc9))[_0x484f('0x29')](handleError(_0x445b10,null));};exports[_0x484f('0x7b')]=function(_0x46994d,_0x278101,_0x5c0739){return db[_0x484f('0x36')][_0x484f('0x7c')]({'where':{'id':_0x46994d[_0x484f('0x64')]['id']},'raw':!![]})[_0x484f('0x1e')](handleEntityNotFound(_0x278101,null))['then'](function(_0x2af681){if(_0x2af681){if(_0x2af681[_0x484f('0x6f')]){return _0x278101[_0x484f('0x2b')](0x193)[_0x484f('0x2d')]({'status':0x193,'message':_0x484f('0x7d')});}return db[_0x484f('0x7a')][_0x484f('0x7c')]({'where':{'id':_0x46994d[_0x484f('0x39')][_0x484f('0x7e')]},'raw':!![]})[_0x484f('0x1e')](handleEntityNotFound(_0x278101,null));}})['then'](function(_0x5dc579){if(_0x5dc579){return _0x278101['download'](path[_0x484f('0x7f')](config[_0x484f('0x80')],_0x484f('0x81'),_0x5dc579[_0x484f('0x76')]));}})[_0x484f('0x29')](handleError(_0x278101,null));};exports[_0x484f('0x82')]=function(_0x52c935,_0xbb304d){var _0x20fbef=null;var _0x1c769f=null;var _0x490ba9=null;var _0x3cc9ce=null;if(_0x52c935[_0x484f('0x67')]['id']){delete _0x52c935['body']['id'];}if(_0x52c935['body'][_0x484f('0x83')]){_0x3cc9ce=path[_0x484f('0x7f')](config[_0x484f('0x80')],_0x484f('0x84'),util[_0x484f('0x85')]('transcript-%s.txt',Date['now']()));_0x52c935['body'][_0x484f('0x86')]=_0x3cc9ce;}return db['ChatInteraction'][_0x484f('0x65')]({'where':{'id':_0x52c935[_0x484f('0x64')]['id']},'include':[{'model':db[_0x484f('0x52')],'as':_0x484f('0x53'),'include':[{'model':db[_0x484f('0x56')],'as':_0x484f('0x56')}]}]})[_0x484f('0x1e')](handleEntityNotFound(_0xbb304d,null))['then'](saveUpdates(_0x52c935[_0x484f('0x67')],null))[_0x484f('0x1e')](function(_0x25e5d3){if(_0x25e5d3){_0x20fbef=_0x25e5d3;return db[_0x484f('0x5c')][_0x484f('0x65')]({'where':{'id':_0x20fbef[_0x484f('0x87')]}});}})[_0x484f('0x1e')](function(_0x284994){if(_0x284994){_0x490ba9=_0x284994;return db['CmContact'][_0x484f('0x65')]({'where':{'id':_0x20fbef[_0x484f('0x88')]}});}})[_0x484f('0x1e')](function(_0x189b91){if(_0x189b91){_0x1c769f=_0x189b91;if(_0x3cc9ce){var _0x28534f=null;for(var _0x580869=0x1;_0x580869<_0x20fbef['Messages'][_0x484f('0x40')];++_0x580869){_0x28534f=_0x20fbef[_0x484f('0x53')][_0x580869];var _0xdadb96=_0x28534f['UserId']?util[_0x484f('0x85')](_0x484f('0x89'),_0x490ba9[_0x484f('0x8a')],_0x28534f[_0x484f('0x6c')]):_0x484f('0x8b');var _0x474f80=_0x52c935[_0x484f('0x67')][_0x484f('0x8c')]||util[_0x484f('0x85')]('%s%d',_0x484f('0x8d'),_0x28534f[_0x484f('0x88')]);switch(_0x490ba9[_0x484f('0x8e')]){case _0x484f('0x8f'):_0xdadb96=_0x28534f[_0x484f('0x6c')]?util['format'](_0x484f('0x89'),_0x490ba9[_0x484f('0x8a')],_0x28534f['UserId']):_0x484f('0x8b');break;case _0x484f('0x90'):_0xdadb96=_0x28534f[_0x484f('0x6c')]?_0x28534f[_0x484f('0x56')][_0x484f('0x91')]||_0x28534f[_0x484f('0x56')][_0x484f('0x58')]:_0x484f('0x8b');break;case _0x484f('0x92'):_0xdadb96=_0x28534f['UserId']?_0x28534f[_0x484f('0x56')]['fullname']:_0x484f('0x8b');break;default:_0xdadb96=_0x28534f['UserId']?util[_0x484f('0x85')](_0x484f('0x89'),_0x490ba9[_0x484f('0x8a')],_0x28534f[_0x484f('0x6c')]):'System';}var _0x14cd4a=util[_0x484f('0x85')](_0x484f('0x93'),moment(_0x28534f[_0x484f('0x54')])[_0x484f('0x85')](_0x484f('0x94')),_0x28534f[_0x484f('0x5f')]==='in'?_0x474f80:_0xdadb96,_0x28534f[_0x484f('0x67')]);if(!_0x28534f['secret']){fs[_0x484f('0x95')](_0x3cc9ce,_0x14cd4a);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x484f('0x96')],'as':'Smtp','raw':!![]}]});}}})[_0x484f('0x1e')](function(_0x292e2f){if(_0x292e2f&&_0x292e2f[_0x484f('0x97')]&&_0x52c935['body']){var _0x1c2b2b={'tls':{'rejectUnauthorized':![]}};if(_0x292e2f[_0x484f('0x97')]['service']){_0x1c2b2b[_0x484f('0x98')]=_0x292e2f[_0x484f('0x97')]['service'];}else{_0x1c2b2b[_0x484f('0x99')]=_0x292e2f['Smtp'][_0x484f('0x99')];_0x1c2b2b[_0x484f('0x9a')]=_0x292e2f['Smtp'][_0x484f('0x9a')];_0x1c2b2b['secure']=_0x292e2f['Smtp'][_0x484f('0x9b')];}if(_0x292e2f[_0x484f('0x97')]['authentication']){_0x1c2b2b['auth']={'user':_0x292e2f[_0x484f('0x97')]['user'],'pass':_0x292e2f['Smtp']['pass']};}return respondWithRpcPromise('SendMail',_0x484f('0x9c'),{'account':_0x1c2b2b,'message':{'from':util[_0x484f('0x85')](_0x484f('0x9d'),_0x292e2f[_0x484f('0x33')],_0x292e2f['email']||_0x292e2f['Smtp'][_0x484f('0x9e')]),'to':_0x52c935[_0x484f('0x67')][_0x484f('0x83')],'subject':_0x484f('0x9f'),'text':util['format'](_0x484f('0xa0'),_0x52c935[_0x484f('0x67')]['mailTranscript']),'attachments':[{'path':_0x3cc9ce}]}})[_0x484f('0x1e')](function(){return _0x20fbef;})[_0x484f('0x29')](function(_0x5e5974){console[_0x484f('0x25')](_0x5e5974);});}else{return _0x20fbef;}})[_0x484f('0x1e')](respondWithStatusCode(_0xbb304d,0xc8))[_0x484f('0x29')](handleError(_0xbb304d,null));};exports['addMessage']=function(_0x3b5b89,_0x1aa2ea,_0xda9921){return db[_0x484f('0x52')]['find']({'where':{'id':_0x3b5b89[_0x484f('0x64')]['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x1aa2ea,null))[_0x484f('0x1e')](function(_0x3b91c5){if(_0x3b91c5){return _0x3b91c5[_0x484f('0xa1')](_0x3b5b89[_0x484f('0x67')][_0x484f('0xa2')],_[_0x484f('0xa3')](_0x3b5b89[_0x484f('0x67')],['ids','id'])||{});}})['then'](respondWithResult(_0x1aa2ea,null))[_0x484f('0x29')](handleError(_0x1aa2ea,null));};exports['getMessages']=function(_0x37d7f5,_0x4fda27,_0x32c740){var _0x16198d={'raw':![],'where':{}};var _0x3d6e69={};var _0x1f4f5f={'count':0x0,'rows':[]};return db[_0x484f('0x36')][_0x484f('0x7c')]({'where':{'id':_0x37d7f5['params']['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x4fda27,null))[_0x484f('0x1e')](function(_0x52f3c7){if(_0x52f3c7){_0x3d6e69['model']=_[_0x484f('0x38')](db['ChatMessage'][_0x484f('0x37')]);_0x3d6e69[_0x484f('0x39')]=_[_0x484f('0x38')](_0x37d7f5[_0x484f('0x39')]);_0x3d6e69['filters']=_['intersection'](_0x3d6e69['model'],_0x3d6e69[_0x484f('0x39')]);_0x16198d[_0x484f('0x3d')]=_[_0x484f('0x3c')](_0x3d6e69[_0x484f('0x3e')],qs['fields'](_0x37d7f5[_0x484f('0x39')][_0x484f('0x3f')]));_0x16198d[_0x484f('0x3d')]=_0x16198d['attributes'][_0x484f('0x40')]?_0x16198d['attributes']:_0x3d6e69[_0x484f('0x3e')];if(!_0x37d7f5[_0x484f('0x39')][_0x484f('0x41')]('nolimit')){_0x16198d[_0x484f('0x42')]=qs[_0x484f('0x42')](_0x37d7f5[_0x484f('0x39')][_0x484f('0x42')]);_0x16198d[_0x484f('0x2f')]=qs['offset'](_0x37d7f5[_0x484f('0x39')][_0x484f('0x2f')]);}_0x16198d[_0x484f('0xa4')]=qs[_0x484f('0x43')](_0x37d7f5[_0x484f('0x39')][_0x484f('0x43')]);_0x16198d[_0x484f('0x46')]=qs[_0x484f('0x3b')](_[_0x484f('0xa5')](_0x37d7f5[_0x484f('0x39')],_0x3d6e69['filters']));_0x16198d['where']['ChatInteractionId']=_0x52f3c7['id'];if(_0x37d7f5[_0x484f('0x39')][_0x484f('0x47')]){_0x16198d['where']=_[_0x484f('0x48')](_0x16198d[_0x484f('0x46')],{'$or':_['map'](_0x16198d[_0x484f('0x3d')],function(_0x2eeef){var _0x5e63cd={};_0x5e63cd[_0x2eeef]={'$like':'%'+_0x37d7f5['query'][_0x484f('0x47')]+'%'};return _0x5e63cd;})});}if(_0x37d7f5[_0x484f('0x39')][_0x484f('0xa6')]){var _0x1a96fa=_0x37d7f5[_0x484f('0x39')][_0x484f('0xa6')][_0x484f('0xa7')](',');var _0x332f94={};_0x332f94[_0x1a96fa[0x0]]={'$gte':moment(_0x1a96fa[0x1])['format'](_0x484f('0xa8'))};_0x16198d['where']=_[_0x484f('0x48')](_0x16198d['where'],_0x332f94);}_0x16198d=_[_0x484f('0x48')]({},_0x16198d,_0x37d7f5['options']);return db['ChatMessage'][_0x484f('0x2e')]({'where':_0x16198d['where']})[_0x484f('0x1e')](function(_0x19ab28){_0x1f4f5f['count']=_0x19ab28;if(_0x37d7f5[_0x484f('0x39')][_0x484f('0x55')]){_0x16198d[_0x484f('0x4b')]=[{'all':!![]}];}return db[_0x484f('0x52')][_0x484f('0x61')](_0x16198d);})[_0x484f('0x1e')](function(_0x105422){_0x1f4f5f[_0x484f('0x62')]=_0x105422;return _0x1f4f5f;});}})['then'](respondWithFilteredResult(_0x4fda27,_0x16198d))[_0x484f('0x29')](handleError(_0x4fda27,null));};exports[_0x484f('0xa9')]=function(_0x28441b,_0x433e88,_0x1b5245){var _0x119345={'where':{}},_0x124576={},_0x37da20={'count':0x0,'rows':[]};return db[_0x484f('0x36')][_0x484f('0x7c')]({'where':{'id':_0x28441b['params']['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x433e88,null))[_0x484f('0x1e')](function(_0x1376bc){if(_0x1376bc){_0x124576[_0x484f('0x3e')]=_[_0x484f('0x38')](db[_0x484f('0x52')][_0x484f('0x37')]);_0x124576['query']=_[_0x484f('0x38')](_0x28441b[_0x484f('0x39')]);_0x124576[_0x484f('0x3b')]=_[_0x484f('0x3c')](_0x124576[_0x484f('0x3e')],_0x124576['query']);_0x119345['attributes']=_[_0x484f('0x3c')](_0x124576['model'],qs[_0x484f('0x3f')](_0x28441b[_0x484f('0x39')][_0x484f('0x3f')]));_0x119345['attributes']=_0x119345[_0x484f('0x3d')][_0x484f('0x40')]?_0x119345[_0x484f('0x3d')]:_0x124576['model'];if(!_0x28441b[_0x484f('0x39')][_0x484f('0x41')](_0x484f('0xaa'))){_0x119345[_0x484f('0x42')]=qs[_0x484f('0x42')](_0x28441b['query'][_0x484f('0x42')]);_0x119345[_0x484f('0x2f')]=qs[_0x484f('0x2f')](_0x28441b['query'][_0x484f('0x2f')]);}_0x119345[_0x484f('0xa4')]=qs[_0x484f('0x43')](_0x28441b[_0x484f('0x39')]['sort']);_0x119345[_0x484f('0x46')]=qs[_0x484f('0x3b')](_[_0x484f('0xa5')](_0x28441b[_0x484f('0x39')],_0x124576[_0x484f('0x3b')]));_0x119345[_0x484f('0x46')][_0x484f('0xab')]=_0x1376bc['id'];if(_0x28441b[_0x484f('0x39')][_0x484f('0x47')]){_0x119345[_0x484f('0x46')]=_[_0x484f('0x48')](_0x119345[_0x484f('0x46')],{'$or':_['map'](_0x119345['attributes'],function(_0x5c0c2a){var _0x534f3d={};_0x534f3d[_0x5c0c2a]={'$like':'%'+_0x28441b['query'][_0x484f('0x47')]+'%'};return _0x534f3d;})});}_0x119345['where'][_0x484f('0xac')]=![];if(_0x28441b['query']['id']){_0x119345['where']['id']={'$gt':_0x28441b[_0x484f('0x39')]['id']};}_0x119345=_[_0x484f('0x48')]({},_0x119345,_0x28441b[_0x484f('0x4a')]);return db[_0x484f('0x52')][_0x484f('0x2e')]({'where':_0x119345['where']})['then'](function(_0x39c42f){_0x37da20[_0x484f('0x2e')]=_0x39c42f;_0x119345['include']=[];if(_0x28441b[_0x484f('0x39')][_0x484f('0xad')]){_0x119345[_0x484f('0x4b')][_0x484f('0x51')]({'model':db[_0x484f('0x56')],'as':_0x484f('0x56'),'attributes':['id',_0x484f('0x58'),'alias']});}if(_0x28441b[_0x484f('0x39')]['includeAll']){_0x119345[_0x484f('0x4b')]=[{'all':!![]}];}return db[_0x484f('0x52')]['findAll'](_0x119345);})[_0x484f('0x1e')](function(_0x4079bc){_0x37da20['rows']=_0x4079bc;return _0x37da20;});}})[_0x484f('0x1e')](respondWithFilteredResult(_0x433e88,_0x119345))[_0x484f('0x29')](handleError(_0x433e88,null));};exports[_0x484f('0xae')]=function(_0x147ec3,_0x6b9aa5,_0x362226){return db[_0x484f('0x36')][_0x484f('0x65')]({'where':{'id':_0x147ec3[_0x484f('0x64')]['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x6b9aa5,null))['then'](function(_0x150c3a){if(_0x150c3a){return _0x150c3a[_0x484f('0xaf')](_0x147ec3[_0x484f('0x67')][_0x484f('0xa2')],_[_0x484f('0xa3')](_0x147ec3[_0x484f('0x67')],[_0x484f('0xa2'),'id'])||{})[_0x484f('0xb0')](function(){return db['Tag'][_0x484f('0x61')]({'attributes':['id',_0x484f('0x33'),_0x484f('0xb1')],'where':{'id':_0x147ec3[_0x484f('0x67')][_0x484f('0xa2')]}});})[_0x484f('0x1e')](function(_0x3efaf7){socket[_0x484f('0xb2')](_0x484f('0xb3'),{'id':Number(_0x147ec3['params']['id']),'tags':_0x3efaf7||[]});return{'id':Number(_0x147ec3[_0x484f('0x64')]['id']),'tags':_0x3efaf7||[]};});}})[_0x484f('0x1e')](respondWithResult(_0x6b9aa5,null))[_0x484f('0x29')](handleError(_0x6b9aa5,null));};exports['removeTags']=function(_0x3e62e0,_0x9e1bf6,_0x442bb4){var _0x577887;return db[_0x484f('0x36')][_0x484f('0x65')]({'where':{'id':_0x3e62e0[_0x484f('0x64')]['id']}})[_0x484f('0x1e')](handleEntityNotFound(_0x9e1bf6,null))['then'](function(_0x33d50b){if(_0x33d50b){return _0x33d50b[_0x484f('0xb4')](_0x3e62e0[_0x484f('0x39')]['ids']);}})['then'](respondWithStatusCode(_0x9e1bf6,null))['catch'](handleError(_0x9e1bf6,null));};exports[_0x484f('0xb5')]=function(_0x3ad530,_0x32876d){var _0x3c5bfa=moment()[_0x484f('0xb6')]()[_0x484f('0xb7')]();var _0x34e69d=path[_0x484f('0x7f')](config[_0x484f('0x80')],_0x484f('0xb8'),_0x484f('0xb9'),_0x484f('0xba'));var _0x14c461=path[_0x484f('0x7f')](config[_0x484f('0x80')],_0x484f('0xb8'),'files','attachments');var _0x10848b=path[_0x484f('0x7f')](_0x34e69d,_0x3c5bfa);var _0x11a44b=util[_0x484f('0x85')](_0x484f('0xbb'),_0x3c5bfa);var _0x45c7a4=path[_0x484f('0x7f')](_0x34e69d,_0x11a44b);var _0x53b65e=![];return db[_0x484f('0x36')][_0x484f('0x65')]({'where':{'id':_0x3ad530[_0x484f('0x64')]['id']},'include':[{'model':db[_0x484f('0x52')],'as':'Messages','attributes':['id',_0x484f('0x67')],'include':[{'model':db['User'],'as':_0x484f('0x56'),'attributes':['id',_0x484f('0x58')],'raw':!![]},{'model':db[_0x484f('0xbc')],'as':'Contact','attributes':['id',_0x484f('0xbd')],'raw':!![]},{'model':db[_0x484f('0x7a')],'as':'Attachment','raw':!![]}]}]})[_0x484f('0x1e')](handleEntityNotFound(_0x32876d,null))['then'](function(_0x128fcc){if(_0x128fcc){_0x53b65e=!![];var _0x1bacc7='';var _0x1fca88={'format':_0x484f('0xbe'),'border':_0x484f('0xbf')};fs[_0x484f('0xc0')](_0x10848b);_0x1bacc7+=util[_0x484f('0x85')](_0x484f('0xc1'),_0x128fcc['id']);_0x1bacc7+=util[_0x484f('0x85')](_0x484f('0xc2'),moment()[_0x484f('0x85')]('MMMM\x20Do\x20YYYY,\x20HH:mm:ss')[_0x484f('0xb7')]());_0x1bacc7+=_0x484f('0xc3');for(var _0x461fee=0x1;_0x461fee<_0x128fcc['Messages'][_0x484f('0x40')];_0x461fee++){var _0x4a4bb4=_0x128fcc[_0x484f('0x53')][_0x461fee];_0x1bacc7+=_0x484f('0xc4');_0x1bacc7+=util[_0x484f('0x85')](_0x484f('0xc5'),_0x4a4bb4[_0x484f('0x56')]?_0x4a4bb4['User'][_0x484f('0x58')]:_0x4a4bb4[_0x484f('0x59')]['firstName'],_0x4a4bb4[_0x484f('0x67')]);_0x1bacc7+=_0x484f('0xc6');if(_0x4a4bb4['Attachment']){var _0x2a73e3=_0x4a4bb4[_0x484f('0x7a')];var _0x50f154=path[_0x484f('0x7f')](_0x14c461,_0x2a73e3['basename']);if(fs[_0x484f('0xc7')](_0x50f154)){fs[_0x484f('0xc8')](_0x50f154)[_0x484f('0xc9')](fs[_0x484f('0xca')](path[_0x484f('0x7f')](_0x10848b,_0x2a73e3[_0x484f('0x76')])));}}}return new BPromise(function(_0x17ace8,_0x3929ed){pdf['create'](_0x1bacc7,_0x1fca88)[_0x484f('0xcb')](path[_0x484f('0x7f')](_0x10848b,_0x484f('0xcc')+_0x3c5bfa+_0x484f('0xcd')),function(_0x4ff933,_0xa2e8d8){if(_0x4ff933)return _0x3929ed(_0x4ff933);_0x17ace8(_0xa2e8d8);});});}})[_0x484f('0x1e')](function(){if(_0x53b65e){return new BPromise(function(_0x29b86d,_0x379c9b){zipdir(_0x10848b,{'saveTo':_0x45c7a4},function(_0xf332b9,_0x444cbb){if(_0xf332b9)return _0x379c9b(_0xf332b9);return _0x29b86d(_0x444cbb);});});}})[_0x484f('0x1e')](function(){if(_0x53b65e){return new BPromise(function(_0x36025f,_0x587f8e){rimraf(_0x10848b,function(_0x2f341a){if(_0x2f341a)_0x587f8e(_0x2f341a);return _0x36025f();});});}})[_0x484f('0x1e')](function(){if(_0x53b65e){return _0x32876d[_0x484f('0xb5')](_0x45c7a4,_0x11a44b,function(_0x2056a4){if(_0x2056a4){console[_0x484f('0xce')](_0x484f('0xcf'),_0x2056a4);}else{fs[_0x484f('0xd0')](_0x45c7a4);}});}else{return _0x32876d[_0x484f('0x2a')](0xc8);}})[_0x484f('0x29')](handleError(_0x32876d,null));};
\ No newline at end of file
+var _0xf120=['lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./chatInteraction.socket','register','jayson/promise','client','http','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','json','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','end','name','send','index','ChatInteraction','rawAttributes','model','keys','query','dateStart','dateEnd','attributes','fields','length','nolimit','offset','sort','where','pick','filters','add','merge','filter','options','include','tag','Tag','distinct','push','ChatMessage','Messages','read','includeAll','User','Users','fullname','CmContact','Contact','internal','ChatWebsite','key','direction','createdAt','color','ThroughTags','findAll','rows','catch','params','intersection','find','create','body','describe','customUpdate','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','UserId','ValidationError','Interaction\x20already\x20assigned','closedAt','AbandonInteraction','file','originalname','filename','type','findOne','Unauthorized','Attachment','attachId','download','root','server/files/attachments/','basename','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','ChatWebsiteId','ContactId','%s%d','agentAlias','System','customer','Visitor','website_alias','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','ids','omit','order','ChatInteractionId','map','$gte','getMyMessages','hasOwnProperty','addTags','emit','removeTags','unix','toString','join','server','tmp','attachments','interaction-%s.zip','firstName','Letter','1cm','mkdirSync','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<hr>','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','</div>','createReadStream','pipe','createWriteStream','interaction-','.pdf','log','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs'];(function(_0x2984d0,_0x1a7211){var _0x2885f2=function(_0x42f3da){while(--_0x42f3da){_0x2984d0['push'](_0x2984d0['shift']());}};_0x2885f2(++_0x1a7211);}(_0xf120,0x179));var _0x0f12=function(_0x5b0d0d,_0x44885b){_0x5b0d0d=_0x5b0d0d-0x0;var _0x3e974e=_0xf120[_0x5b0d0d];return _0x3e974e;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0f12('0x0'));var rimraf=require(_0x0f12('0x1'));var zipdir=require(_0x0f12('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0f12('0x3'));var moment=require(_0x0f12('0x4'));var BPromise=require(_0x0f12('0x5'));var Mustache=require('mustache');var util=require(_0x0f12('0x6'));var path=require(_0x0f12('0x7'));var sox=require(_0x0f12('0x8'));var csv=require(_0x0f12('0x9'));var ejs=require(_0x0f12('0xa'));var fs=require('fs');var _=require(_0x0f12('0xb'));var squel=require(_0x0f12('0xc'));var crypto=require(_0x0f12('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x0f12('0xe'));var toCsv=require('to-csv');var querystring=require(_0x0f12('0xf'));var Papa=require(_0x0f12('0x10'));var Redis=require(_0x0f12('0x11'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x0f12('0x12'));var utils=require(_0x0f12('0x13'));var config=require(_0x0f12('0x14'));var db=require(_0x0f12('0x15'))['db'];config[_0x0f12('0x16')]=_[_0x0f12('0x17')](config[_0x0f12('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x0f12('0x18'))(new Redis(config[_0x0f12('0x16')]));require(_0x0f12('0x19'))[_0x0f12('0x1a')](socket);var jayson=require(_0x0f12('0x1b'));var client=jayson[_0x0f12('0x1c')][_0x0f12('0x1d')]({'port':0x232b});var client9004=jayson[_0x0f12('0x1c')][_0x0f12('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x42b674,_0x23adc0,_0x3f2716,_0xe61624){return new BPromise(function(_0x27addc,_0xeccb7c){var _0x592617=_0xe61624||client;return _0x592617[_0x0f12('0x1e')](_0x42b674,_0x3f2716)['then'](function(_0x1c67b6){logger[_0x0f12('0x1f')](_0x0f12('0x20'),_0x23adc0,_0x0f12('0x21'));logger[_0x0f12('0x22')](_0x0f12('0x23'),_0x23adc0,'request\x20sent',JSON[_0x0f12('0x24')](_0x1c67b6));if(_0x1c67b6['error']){if(_0x1c67b6[_0x0f12('0x25')]['code']===0x1f4){logger['error'](_0x0f12('0x20'),_0x23adc0,_0x1c67b6[_0x0f12('0x25')][_0x0f12('0x26')]);return _0xeccb7c(_0x1c67b6['error'][_0x0f12('0x26')]);}logger['error'](_0x0f12('0x20'),_0x23adc0,_0x1c67b6['error'][_0x0f12('0x26')]);return _0x27addc(_0x1c67b6[_0x0f12('0x25')]['message']);}else{logger[_0x0f12('0x1f')](_0x0f12('0x20'),_0x23adc0,_0x0f12('0x21'));_0x27addc(_0x1c67b6[_0x0f12('0x27')][_0x0f12('0x26')]);}})['catch'](function(_0x3be931){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x23adc0,_0x3be931);_0xeccb7c(_0x3be931);});});}function respondWithStatusCode(_0x481670,_0xee18d0){_0xee18d0=_0xee18d0||0xcc;return function(_0x247f31){if(_0x247f31){return _0x481670[_0x0f12('0x28')](_0xee18d0);}return _0x481670[_0x0f12('0x29')](_0xee18d0)['end']();};}function respondWithResult(_0x310c03,_0x8917eb){_0x8917eb=_0x8917eb||0xc8;return function(_0xde0ddf){if(_0xde0ddf){return _0x310c03['status'](_0x8917eb)[_0x0f12('0x2a')](_0xde0ddf);}};}function respondWithFilteredResult(_0x2fdde4,_0x8f43f9){return function(_0x5cb12b){if(_0x5cb12b){var _0xeee65=_0x5cb12b[_0x0f12('0x2b')],_0x25a5dc=_0x8f43f9['offset'],_0x1521c6=_0x8f43f9['offset']+_0x8f43f9[_0x0f12('0x2c')],_0x89add5;if(_0x1521c6>=_0xeee65){_0x1521c6=_0xeee65;_0x89add5=0xc8;}else{_0x89add5=0xce;}_0x2fdde4['status'](_0x89add5);return _0x2fdde4[_0x0f12('0x2d')](_0x0f12('0x2e'),_0x25a5dc+'-'+_0x1521c6+'/'+_0xeee65)[_0x0f12('0x2a')](_0x5cb12b);}return null;};}function patchUpdates(_0x52fc14){return function(_0x12a575){try{jsonpatch[_0x0f12('0x2f')](_0x12a575,_0x52fc14,!![]);}catch(_0x3e71ac){return BPromise[_0x0f12('0x30')](_0x3e71ac);}return _0x12a575[_0x0f12('0x31')]();};}function saveUpdates(_0x25d56e,_0x521ce1){return function(_0x2c28e5){if(_0x2c28e5){return _0x2c28e5[_0x0f12('0x32')](_0x25d56e)[_0x0f12('0x33')](function(_0x5ee56e){return _0x5ee56e;});}return null;};}function removeEntity(_0x13807f,_0x40a279){return function(_0x214e11){if(_0x214e11){return _0x214e11[_0x0f12('0x34')]()['then'](function(){_0x13807f[_0x0f12('0x29')](0xcc)[_0x0f12('0x35')]();});}};}function handleEntityNotFound(_0x3d0a71,_0x15a629){return function(_0xc7a1f6){if(!_0xc7a1f6){_0x3d0a71[_0x0f12('0x28')](0x194);}return _0xc7a1f6;};}function handleError(_0x28886f,_0x494ed8){_0x494ed8=_0x494ed8||0x1f4;return function(_0x15a508){logger[_0x0f12('0x25')](_0x15a508['stack']);if(_0x15a508[_0x0f12('0x36')]){delete _0x15a508[_0x0f12('0x36')];}_0x28886f['status'](_0x494ed8)[_0x0f12('0x37')](_0x15a508);};}exports[_0x0f12('0x38')]=function(_0x50a610,_0x213ffa){var _0x5c4f38={},_0x20c6b0={},_0x62f49={'count':0x0,'rows':[]};var _0x2ed69c=db[_0x0f12('0x39')][_0x0f12('0x3a')];_0x20c6b0[_0x0f12('0x3b')]=_[_0x0f12('0x3c')](_0x2ed69c);var _0x1d48a7={'dateStart':_0x50a610[_0x0f12('0x3d')][_0x0f12('0x3e')],'dateEnd':_0x50a610['query'][_0x0f12('0x3f')]};delete _0x50a610[_0x0f12('0x3d')][_0x0f12('0x3e')];delete _0x50a610['query']['dateEnd'];_0x20c6b0['query']=_[_0x0f12('0x3c')](_0x50a610[_0x0f12('0x3d')]);_0x20c6b0['filters']=_['intersection'](_0x20c6b0[_0x0f12('0x3b')],_0x20c6b0[_0x0f12('0x3d')]);_0x5c4f38[_0x0f12('0x40')]=_['intersection'](_0x20c6b0[_0x0f12('0x3b')],qs[_0x0f12('0x41')](_0x50a610['query'][_0x0f12('0x41')]));_0x5c4f38[_0x0f12('0x40')]=_0x5c4f38[_0x0f12('0x40')][_0x0f12('0x42')]?_0x5c4f38[_0x0f12('0x40')]:_0x20c6b0[_0x0f12('0x3b')];if(!_0x50a610[_0x0f12('0x3d')]['hasOwnProperty'](_0x0f12('0x43'))){_0x5c4f38['limit']=qs[_0x0f12('0x2c')](_0x50a610[_0x0f12('0x3d')]['limit']);_0x5c4f38[_0x0f12('0x44')]=qs[_0x0f12('0x44')](_0x50a610[_0x0f12('0x3d')]['offset']);}_0x5c4f38['order']=qs[_0x0f12('0x45')](_0x50a610[_0x0f12('0x3d')][_0x0f12('0x45')]);_0x5c4f38[_0x0f12('0x46')]=qs['filters'](_[_0x0f12('0x47')](_0x50a610[_0x0f12('0x3d')],_0x20c6b0[_0x0f12('0x48')]));if(_0x1d48a7[_0x0f12('0x3e')]){if(_0x1d48a7['dateEnd']){_0x1d48a7[_0x0f12('0x3f')]=moment(_0x1d48a7[_0x0f12('0x3f')])['add'](0x1,'day');}else{_0x1d48a7[_0x0f12('0x3f')]=moment(_0x1d48a7[_0x0f12('0x3e')])[_0x0f12('0x49')](0x1,'day');}_['merge'](_0x5c4f38[_0x0f12('0x46')],{'createdAt':{'$gte':_0x1d48a7[_0x0f12('0x3e')],'$lte':_0x1d48a7['dateEnd']}});}if(_0x50a610[_0x0f12('0x3d')]['filter']){_0x5c4f38[_0x0f12('0x46')]=_[_0x0f12('0x4a')](_0x5c4f38['where'],{'$or':_['map'](_0x5c4f38[_0x0f12('0x40')],function(_0x397b2d){var _0x3783a9={};_0x3783a9[_0x397b2d]={'$like':'%'+_0x50a610[_0x0f12('0x3d')][_0x0f12('0x4b')]+'%'};return _0x3783a9;})});}_0x5c4f38=_[_0x0f12('0x4a')]({},_0x5c4f38,_0x50a610[_0x0f12('0x4c')]);var _0x33ce01={'where':_0x5c4f38['where']};_0x33ce01[_0x0f12('0x4d')]=[];if(_0x50a610['query'][_0x0f12('0x4e')]){_0x33ce01['include']['push']({'model':db[_0x0f12('0x4f')],'as':'Tags','attributes':['id'],'where':{'id':_0x50a610[_0x0f12('0x3d')][_0x0f12('0x4e')]},'required':!![]});_0x33ce01[_0x0f12('0x50')]=!![];}if(_0x50a610[_0x0f12('0x3d')]['read']){_0x33ce01[_0x0f12('0x4d')][_0x0f12('0x51')]({'model':db[_0x0f12('0x52')],'as':_0x0f12('0x53'),'attributes':['id','direction','createdAt',_0x0f12('0x54')],'where':{'direction':'in','read':_0x50a610[_0x0f12('0x3d')][_0x0f12('0x54')]||![]},'required':!![]});_0x33ce01[_0x0f12('0x50')]=!![];}return db[_0x0f12('0x39')]['count'](_0x33ce01)['then'](function(_0x58bb84){_0x62f49[_0x0f12('0x2b')]=_0x58bb84;if(_0x50a610[_0x0f12('0x3d')][_0x0f12('0x55')]){_0x5c4f38[_0x0f12('0x4d')]=[{'model':db[_0x0f12('0x56')],'as':_0x0f12('0x57'),'required':![],'attributes':['id',_0x0f12('0x36'),_0x0f12('0x58')]},{'model':db[_0x0f12('0x59')],'as':_0x0f12('0x5a'),'required':![]},{'model':db[_0x0f12('0x56')],'as':'Owner','attributes':[_0x0f12('0x36'),_0x0f12('0x58'),_0x0f12('0x5b')],'required':![]},{'model':db[_0x0f12('0x5c')],'as':'Account','attributes':['name',_0x0f12('0x5d')],'required':![]},{'model':db[_0x0f12('0x52')],'as':_0x0f12('0x53'),'attributes':['id',_0x0f12('0x5e'),_0x0f12('0x5f'),_0x0f12('0x54')],'where':{'direction':'in','read':_0x50a610[_0x0f12('0x3d')][_0x0f12('0x54')]||![]},'required':_0x50a610['query'][_0x0f12('0x54')]||![]},{'model':db[_0x0f12('0x4f')],'as':'Tags','attributes':['id',_0x0f12('0x36'),_0x0f12('0x60')],'required':_0x50a610[_0x0f12('0x3d')]['tag']?!![]:![]},{'model':db[_0x0f12('0x4f')],'as':_0x0f12('0x61'),'attributes':['id',_0x0f12('0x36'),_0x0f12('0x60')],'through':_0x50a610[_0x0f12('0x3d')]['tag']?{'attributes':[],'where':{'TagId':_0x50a610[_0x0f12('0x3d')]['tag']||undefined}}:{},'required':_0x50a610[_0x0f12('0x3d')]['tag']?!![]:![]}];}return db[_0x0f12('0x39')][_0x0f12('0x62')](_0x5c4f38);})['then'](function(_0x3d9828){_0x62f49[_0x0f12('0x63')]=_0x3d9828;return _0x62f49;})['then'](respondWithFilteredResult(_0x213ffa,_0x5c4f38))[_0x0f12('0x64')](handleError(_0x213ffa,null));};exports['show']=function(_0x2ee11f,_0x59cd88){var _0x1d6bb6={'raw':![],'where':{'id':_0x2ee11f[_0x0f12('0x65')]['id']}},_0x3783cc={};_0x3783cc['model']=_[_0x0f12('0x3c')](db[_0x0f12('0x39')][_0x0f12('0x3a')]);_0x3783cc['query']=_[_0x0f12('0x3c')](_0x2ee11f[_0x0f12('0x3d')]);_0x3783cc['filters']=_[_0x0f12('0x66')](_0x3783cc[_0x0f12('0x3b')],_0x3783cc['query']);_0x1d6bb6[_0x0f12('0x40')]=_[_0x0f12('0x66')](_0x3783cc[_0x0f12('0x3b')],qs[_0x0f12('0x41')](_0x2ee11f[_0x0f12('0x3d')][_0x0f12('0x41')]));_0x1d6bb6[_0x0f12('0x40')]=_0x1d6bb6[_0x0f12('0x40')][_0x0f12('0x42')]?_0x1d6bb6[_0x0f12('0x40')]:_0x3783cc[_0x0f12('0x3b')];if(_0x2ee11f[_0x0f12('0x3d')]['includeAll']){_0x1d6bb6[_0x0f12('0x4d')]=[{'all':!![]}];}_0x1d6bb6=_[_0x0f12('0x4a')]({},_0x1d6bb6,_0x2ee11f[_0x0f12('0x4c')]);return db[_0x0f12('0x39')][_0x0f12('0x67')](_0x1d6bb6)['then'](handleEntityNotFound(_0x59cd88,null))[_0x0f12('0x33')](respondWithResult(_0x59cd88,null))[_0x0f12('0x64')](handleError(_0x59cd88,null));};exports[_0x0f12('0x68')]=function(_0x5967c2,_0x128af9){return db['ChatInteraction'][_0x0f12('0x68')](_0x5967c2[_0x0f12('0x69')],{})[_0x0f12('0x33')](respondWithResult(_0x128af9,0xc9))[_0x0f12('0x64')](handleError(_0x128af9,null));};exports['update']=function(_0x3a0c70,_0x58a0de){if(_0x3a0c70[_0x0f12('0x69')]['id']){delete _0x3a0c70[_0x0f12('0x69')]['id'];}return db['ChatInteraction'][_0x0f12('0x67')]({'where':{'id':_0x3a0c70[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x58a0de,null))[_0x0f12('0x33')](saveUpdates(_0x3a0c70[_0x0f12('0x69')],null))[_0x0f12('0x33')](respondWithResult(_0x58a0de,null))['catch'](handleError(_0x58a0de,null));};exports[_0x0f12('0x34')]=function(_0x140dd9,_0x456bf2){return db[_0x0f12('0x39')][_0x0f12('0x67')]({'where':{'id':_0x140dd9[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x456bf2,null))[_0x0f12('0x33')](removeEntity(_0x456bf2,null))[_0x0f12('0x64')](handleError(_0x456bf2,null));};exports[_0x0f12('0x6a')]=function(_0x1f341f,_0x488f4b){return db[_0x0f12('0x39')]['describe']()[_0x0f12('0x33')](respondWithResult(_0x488f4b,null))[_0x0f12('0x64')](handleError(_0x488f4b,null));};exports[_0x0f12('0x6b')]=function(_0x5cce6d,_0x228abf){if(_0x5cce6d[_0x0f12('0x69')]['id']){delete _0x5cce6d[_0x0f12('0x69')]['id'];}return db[_0x0f12('0x39')][_0x0f12('0x67')]({'where':{'id':_0x5cce6d[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x228abf,null))[_0x0f12('0x33')](saveUpdates(_0x5cce6d['body'],null))[_0x0f12('0x33')](respondWithResult(_0x228abf,null))[_0x0f12('0x64')](handleError(_0x228abf,null));};exports[_0x0f12('0x6c')]=function(_0x34a65a,_0x29df5b,_0x513cbe){if(_0x34a65a[_0x0f12('0x69')]['id']){delete _0x34a65a[_0x0f12('0x69')]['id'];}return db[_0x0f12('0x39')]['find']({'where':{'id':_0x34a65a['params']['id']}})[_0x0f12('0x33')](function(_0x14e71a){if(!_0x14e71a){logger[_0x0f12('0x25')](_0x0f12('0x6d'),'abandon',0x194,_0x0f12('0x6e'));_0x29df5b[_0x0f12('0x28')](0x194);}else{if(_0x14e71a[_0x0f12('0x6f')]){throw new db['Sequelize'][(_0x0f12('0x70'))](_0x0f12('0x71'));}}return _0x14e71a;})[_0x0f12('0x33')](function(_0x36f840){if(_0x36f840){return _0x36f840[_0x0f12('0x32')]({'closed':_0x34a65a[_0x0f12('0x69')]['closed'],'closedAt':_0x34a65a[_0x0f12('0x69')][_0x0f12('0x72')],'disposition':_0x34a65a[_0x0f12('0x69')]['disposition']})[_0x0f12('0x33')](function(_0x1b28c2){return _0x1b28c2;});}})[_0x0f12('0x33')](function(_0x3c7b09){return respondWithRpcPromise(_0x0f12('0x73'),_0x0f12('0x6c'),_0x34a65a['body'],client9004);})[_0x0f12('0x33')](respondWithResult(_0x29df5b,null))[_0x0f12('0x64')](handleError(_0x29df5b,null));};exports['attachmentUpload']=function(_0x29a672,_0x171311,_0x6d45e){_0x29a672[_0x0f12('0x69')][_0x0f12('0x36')]=_0x29a672[_0x0f12('0x74')][_0x0f12('0x75')];_0x29a672[_0x0f12('0x69')]['basename']=_0x29a672['file'][_0x0f12('0x76')];_0x29a672[_0x0f12('0x69')][_0x0f12('0x77')]=_0x29a672[_0x0f12('0x74')]['mimetype'];return db['Attachment'][_0x0f12('0x68')](_0x29a672[_0x0f12('0x69')])['then'](respondWithResult(_0x171311,0xc9))[_0x0f12('0x64')](handleError(_0x171311,null));};exports['attachmentDownload']=function(_0x28d87c,_0x34cbf8,_0xf5b752){return db[_0x0f12('0x39')][_0x0f12('0x78')]({'where':{'id':_0x28d87c['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x34cbf8,null))[_0x0f12('0x33')](function(_0x26ffad){if(_0x26ffad){if(_0x26ffad['closed']){return _0x34cbf8[_0x0f12('0x29')](0x193)[_0x0f12('0x2a')]({'status':0x193,'message':_0x0f12('0x79')});}return db[_0x0f12('0x7a')]['findOne']({'where':{'id':_0x28d87c[_0x0f12('0x3d')][_0x0f12('0x7b')]},'raw':!![]})[_0x0f12('0x33')](handleEntityNotFound(_0x34cbf8,null));}})[_0x0f12('0x33')](function(_0x437d39){if(_0x437d39){return _0x34cbf8[_0x0f12('0x7c')](path['join'](config[_0x0f12('0x7d')],_0x0f12('0x7e'),_0x437d39[_0x0f12('0x7f')]));}})['catch'](handleError(_0x34cbf8,null));};exports['close']=function(_0x261216,_0x169fbb){var _0x820dbc=null;var _0x10e218=null;var _0x925b4c=null;var _0xfef4f=null;if(_0x261216[_0x0f12('0x69')]['id']){delete _0x261216[_0x0f12('0x69')]['id'];}if(_0x261216[_0x0f12('0x69')][_0x0f12('0x80')]){_0xfef4f=path['join'](config[_0x0f12('0x7d')],_0x0f12('0x81'),util[_0x0f12('0x82')](_0x0f12('0x83'),Date[_0x0f12('0x84')]()));_0x261216[_0x0f12('0x69')][_0x0f12('0x85')]=_0xfef4f;}return db[_0x0f12('0x39')][_0x0f12('0x67')]({'where':{'id':_0x261216['params']['id']},'include':[{'model':db['ChatMessage'],'as':_0x0f12('0x53'),'include':[{'model':db[_0x0f12('0x56')],'as':_0x0f12('0x56')}]}]})[_0x0f12('0x33')](handleEntityNotFound(_0x169fbb,null))[_0x0f12('0x33')](saveUpdates(_0x261216['body'],null))[_0x0f12('0x33')](function(_0x25f169){if(_0x25f169){_0x820dbc=_0x25f169;return db['ChatWebsite'][_0x0f12('0x67')]({'where':{'id':_0x820dbc[_0x0f12('0x86')]}});}})[_0x0f12('0x33')](function(_0x4680dc){if(_0x4680dc){_0x925b4c=_0x4680dc;return db[_0x0f12('0x59')][_0x0f12('0x67')]({'where':{'id':_0x820dbc[_0x0f12('0x87')]}});}})['then'](function(_0x8b8f68){if(_0x8b8f68){_0x10e218=_0x8b8f68;if(_0xfef4f){var _0x4d34da=null;for(var _0x532117=0x1;_0x532117<_0x820dbc[_0x0f12('0x53')][_0x0f12('0x42')];++_0x532117){_0x4d34da=_0x820dbc[_0x0f12('0x53')][_0x532117];var _0x3a9195=_0x4d34da[_0x0f12('0x6f')]?util['format'](_0x0f12('0x88'),_0x925b4c[_0x0f12('0x89')],_0x4d34da['UserId']):_0x0f12('0x8a');var _0x54f427=_0x261216['body'][_0x0f12('0x8b')]||util[_0x0f12('0x82')](_0x0f12('0x88'),_0x0f12('0x8c'),_0x4d34da[_0x0f12('0x87')]);switch(_0x925b4c['agentIdentifier']){case _0x0f12('0x8d'):_0x3a9195=_0x4d34da[_0x0f12('0x6f')]?util[_0x0f12('0x82')](_0x0f12('0x88'),_0x925b4c['agentAlias'],_0x4d34da['UserId']):_0x0f12('0x8a');break;case'agent_alias':_0x3a9195=_0x4d34da[_0x0f12('0x6f')]?_0x4d34da[_0x0f12('0x56')]['alias']||_0x4d34da[_0x0f12('0x56')][_0x0f12('0x58')]:_0x0f12('0x8a');break;case'agent_fullname':_0x3a9195=_0x4d34da[_0x0f12('0x6f')]?_0x4d34da[_0x0f12('0x56')][_0x0f12('0x58')]:_0x0f12('0x8a');break;default:_0x3a9195=_0x4d34da['UserId']?util[_0x0f12('0x82')](_0x0f12('0x88'),_0x925b4c[_0x0f12('0x89')],_0x4d34da[_0x0f12('0x6f')]):_0x0f12('0x8a');}var _0x2e05b8=util[_0x0f12('0x82')](_0x0f12('0x8e'),moment(_0x4d34da[_0x0f12('0x5f')])[_0x0f12('0x82')](_0x0f12('0x8f')),_0x4d34da[_0x0f12('0x5e')]==='in'?_0x54f427:_0x3a9195,_0x4d34da['body']);if(!_0x4d34da[_0x0f12('0x90')]){fs[_0x0f12('0x91')](_0xfef4f,_0x2e05b8);}}return db[_0x0f12('0x92')][_0x0f12('0x78')]({'where':{'service':!![]},'include':[{'model':db[_0x0f12('0x93')],'as':_0x0f12('0x94'),'raw':!![]}]});}}})['then'](function(_0x1f4d4a){if(_0x1f4d4a&&_0x1f4d4a['Smtp']&&_0x261216[_0x0f12('0x69')]){var _0x1786c9={'tls':{'rejectUnauthorized':![]}};if(_0x1f4d4a['Smtp'][_0x0f12('0x95')]){_0x1786c9[_0x0f12('0x95')]=_0x1f4d4a[_0x0f12('0x94')]['service'];}else{_0x1786c9[_0x0f12('0x96')]=_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x96')];_0x1786c9[_0x0f12('0x97')]=_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x97')];_0x1786c9[_0x0f12('0x98')]=_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x98')];}if(_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x99')]){_0x1786c9[_0x0f12('0x9a')]={'user':_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x9b')],'pass':_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x9c')]};}return respondWithRpcPromise('SendMail','sendMail',{'account':_0x1786c9,'message':{'from':util[_0x0f12('0x82')](_0x0f12('0x9d'),_0x1f4d4a[_0x0f12('0x36')],_0x1f4d4a['email']||_0x1f4d4a[_0x0f12('0x94')][_0x0f12('0x9b')]),'to':_0x261216[_0x0f12('0x69')]['mailTranscript'],'subject':_0x0f12('0x9e'),'text':util[_0x0f12('0x82')]('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x261216[_0x0f12('0x69')][_0x0f12('0x80')]),'attachments':[{'path':_0xfef4f}]}})['then'](function(){return _0x820dbc;})['catch'](function(_0x2b46f9){console[_0x0f12('0x25')](_0x2b46f9);});}else{return _0x820dbc;}})['then'](respondWithStatusCode(_0x169fbb,0xc8))[_0x0f12('0x64')](handleError(_0x169fbb,null));};exports['addMessage']=function(_0x3efcb6,_0x146b3b,_0xd8c085){return db[_0x0f12('0x52')][_0x0f12('0x67')]({'where':{'id':_0x3efcb6[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x146b3b,null))['then'](function(_0x410b44){if(_0x410b44){return _0x410b44[_0x0f12('0x9f')](_0x3efcb6['body'][_0x0f12('0xa0')],_[_0x0f12('0xa1')](_0x3efcb6[_0x0f12('0x69')],[_0x0f12('0xa0'),'id'])||{});}})[_0x0f12('0x33')](respondWithResult(_0x146b3b,null))[_0x0f12('0x64')](handleError(_0x146b3b,null));};exports['getMessages']=function(_0x387e92,_0x48fce0,_0x21f572){var _0x27fb7f={'raw':![],'where':{}};var _0x4aa0fa={};var _0x26003d={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x0f12('0x78')]({'where':{'id':_0x387e92[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x48fce0,null))[_0x0f12('0x33')](function(_0xbbc496){if(_0xbbc496){_0x4aa0fa[_0x0f12('0x3b')]=_[_0x0f12('0x3c')](db[_0x0f12('0x52')]['rawAttributes']);_0x4aa0fa[_0x0f12('0x3d')]=_['keys'](_0x387e92['query']);_0x4aa0fa[_0x0f12('0x48')]=_[_0x0f12('0x66')](_0x4aa0fa[_0x0f12('0x3b')],_0x4aa0fa['query']);_0x27fb7f[_0x0f12('0x40')]=_[_0x0f12('0x66')](_0x4aa0fa[_0x0f12('0x3b')],qs[_0x0f12('0x41')](_0x387e92[_0x0f12('0x3d')][_0x0f12('0x41')]));_0x27fb7f['attributes']=_0x27fb7f[_0x0f12('0x40')]['length']?_0x27fb7f['attributes']:_0x4aa0fa[_0x0f12('0x3b')];if(!_0x387e92[_0x0f12('0x3d')]['hasOwnProperty'](_0x0f12('0x43'))){_0x27fb7f['limit']=qs[_0x0f12('0x2c')](_0x387e92['query']['limit']);_0x27fb7f[_0x0f12('0x44')]=qs['offset'](_0x387e92[_0x0f12('0x3d')][_0x0f12('0x44')]);}_0x27fb7f[_0x0f12('0xa2')]=qs[_0x0f12('0x45')](_0x387e92[_0x0f12('0x3d')][_0x0f12('0x45')]);_0x27fb7f[_0x0f12('0x46')]=qs['filters'](_[_0x0f12('0x47')](_0x387e92['query'],_0x4aa0fa[_0x0f12('0x48')]));_0x27fb7f[_0x0f12('0x46')][_0x0f12('0xa3')]=_0xbbc496['id'];if(_0x387e92[_0x0f12('0x3d')][_0x0f12('0x4b')]){_0x27fb7f[_0x0f12('0x46')]=_[_0x0f12('0x4a')](_0x27fb7f[_0x0f12('0x46')],{'$or':_[_0x0f12('0xa4')](_0x27fb7f['attributes'],function(_0x5bdeec){var _0x32ee45={};_0x32ee45[_0x5bdeec]={'$like':'%'+_0x387e92[_0x0f12('0x3d')][_0x0f12('0x4b')]+'%'};return _0x32ee45;})});}if(_0x387e92['query'][_0x0f12('0xa5')]){var _0x4f6b16=_0x387e92['query'][_0x0f12('0xa5')]['split'](',');var _0xb1ea58={};_0xb1ea58[_0x4f6b16[0x0]]={'$gte':moment(_0x4f6b16[0x1])[_0x0f12('0x82')]('YYYY-MM-DD\x20HH:mm:ss')};_0x27fb7f[_0x0f12('0x46')]=_[_0x0f12('0x4a')](_0x27fb7f['where'],_0xb1ea58);}_0x27fb7f=_['merge']({},_0x27fb7f,_0x387e92['options']);return db[_0x0f12('0x52')]['count']({'where':_0x27fb7f['where']})[_0x0f12('0x33')](function(_0x3bd226){_0x26003d['count']=_0x3bd226;if(_0x387e92[_0x0f12('0x3d')][_0x0f12('0x55')]){_0x27fb7f[_0x0f12('0x4d')]=[{'all':!![]}];}return db[_0x0f12('0x52')][_0x0f12('0x62')](_0x27fb7f);})[_0x0f12('0x33')](function(_0x4edfa9){_0x26003d[_0x0f12('0x63')]=_0x4edfa9;return _0x26003d;});}})[_0x0f12('0x33')](respondWithFilteredResult(_0x48fce0,_0x27fb7f))[_0x0f12('0x64')](handleError(_0x48fce0,null));};exports[_0x0f12('0xa6')]=function(_0x238b6d,_0x2b988f,_0x42a0ff){var _0x5ce43a={'where':{}},_0x2572cd={},_0x4ed4f9={'count':0x0,'rows':[]};return db[_0x0f12('0x39')][_0x0f12('0x78')]({'where':{'id':_0x238b6d[_0x0f12('0x65')]['id']}})['then'](handleEntityNotFound(_0x2b988f,null))[_0x0f12('0x33')](function(_0x249962){if(_0x249962){_0x2572cd[_0x0f12('0x3b')]=_[_0x0f12('0x3c')](db[_0x0f12('0x52')][_0x0f12('0x3a')]);_0x2572cd['query']=_['keys'](_0x238b6d[_0x0f12('0x3d')]);_0x2572cd['filters']=_[_0x0f12('0x66')](_0x2572cd['model'],_0x2572cd['query']);_0x5ce43a[_0x0f12('0x40')]=_['intersection'](_0x2572cd[_0x0f12('0x3b')],qs['fields'](_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x41')]));_0x5ce43a[_0x0f12('0x40')]=_0x5ce43a[_0x0f12('0x40')][_0x0f12('0x42')]?_0x5ce43a[_0x0f12('0x40')]:_0x2572cd[_0x0f12('0x3b')];if(!_0x238b6d[_0x0f12('0x3d')][_0x0f12('0xa7')](_0x0f12('0x43'))){_0x5ce43a[_0x0f12('0x2c')]=qs[_0x0f12('0x2c')](_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x2c')]);_0x5ce43a[_0x0f12('0x44')]=qs[_0x0f12('0x44')](_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x44')]);}_0x5ce43a[_0x0f12('0xa2')]=qs[_0x0f12('0x45')](_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x45')]);_0x5ce43a[_0x0f12('0x46')]=qs['filters'](_[_0x0f12('0x47')](_0x238b6d['query'],_0x2572cd[_0x0f12('0x48')]));_0x5ce43a['where'][_0x0f12('0xa3')]=_0x249962['id'];if(_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x4b')]){_0x5ce43a[_0x0f12('0x46')]=_[_0x0f12('0x4a')](_0x5ce43a[_0x0f12('0x46')],{'$or':_[_0x0f12('0xa4')](_0x5ce43a['attributes'],function(_0x2b745c){var _0x56e638={};_0x56e638[_0x2b745c]={'$like':'%'+_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x4b')]+'%'};return _0x56e638;})});}_0x5ce43a[_0x0f12('0x46')][_0x0f12('0x90')]=![];if(_0x238b6d[_0x0f12('0x3d')]['id']){_0x5ce43a['where']['id']={'$gt':_0x238b6d['query']['id']};}_0x5ce43a=_[_0x0f12('0x4a')]({},_0x5ce43a,_0x238b6d[_0x0f12('0x4c')]);return db[_0x0f12('0x52')]['count']({'where':_0x5ce43a['where']})[_0x0f12('0x33')](function(_0x5a84f7){_0x4ed4f9[_0x0f12('0x2b')]=_0x5a84f7;_0x5ce43a[_0x0f12('0x4d')]=[];if(_0x238b6d[_0x0f12('0x3d')]['includeAgent']){_0x5ce43a['include'][_0x0f12('0x51')]({'model':db[_0x0f12('0x56')],'as':_0x0f12('0x56'),'attributes':['id',_0x0f12('0x58'),'alias']});}if(_0x238b6d[_0x0f12('0x3d')][_0x0f12('0x55')]){_0x5ce43a['include']=[{'all':!![]}];}return db['ChatMessage'][_0x0f12('0x62')](_0x5ce43a);})[_0x0f12('0x33')](function(_0xf9dffc){_0x4ed4f9['rows']=_0xf9dffc;return _0x4ed4f9;});}})[_0x0f12('0x33')](respondWithFilteredResult(_0x2b988f,_0x5ce43a))[_0x0f12('0x64')](handleError(_0x2b988f,null));};exports[_0x0f12('0xa8')]=function(_0x256781,_0x242a71,_0xb603d){return db[_0x0f12('0x39')][_0x0f12('0x67')]({'where':{'id':_0x256781[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x242a71,null))[_0x0f12('0x33')](function(_0x26b179){if(_0x26b179){return _0x26b179['setTags'](_0x256781['body']['ids'],_['omit'](_0x256781['body'],[_0x0f12('0xa0'),'id'])||{})['spread'](function(){return db[_0x0f12('0x4f')]['findAll']({'attributes':['id',_0x0f12('0x36'),'color'],'where':{'id':_0x256781['body'][_0x0f12('0xa0')]}});})['then'](function(_0x5a45b5){socket[_0x0f12('0xa9')]('chatInteractionTags:save',{'id':Number(_0x256781[_0x0f12('0x65')]['id']),'tags':_0x5a45b5||[]});return{'id':Number(_0x256781[_0x0f12('0x65')]['id']),'tags':_0x5a45b5||[]};});}})[_0x0f12('0x33')](respondWithResult(_0x242a71,null))[_0x0f12('0x64')](handleError(_0x242a71,null));};exports['removeTags']=function(_0x327fe1,_0x4b58e8,_0x23ec58){var _0x3a351f;return db['ChatInteraction'][_0x0f12('0x67')]({'where':{'id':_0x327fe1[_0x0f12('0x65')]['id']}})[_0x0f12('0x33')](handleEntityNotFound(_0x4b58e8,null))[_0x0f12('0x33')](function(_0x5bb30a){if(_0x5bb30a){return _0x5bb30a[_0x0f12('0xaa')](_0x327fe1[_0x0f12('0x3d')][_0x0f12('0xa0')]);}})[_0x0f12('0x33')](respondWithStatusCode(_0x4b58e8,null))['catch'](handleError(_0x4b58e8,null));};exports[_0x0f12('0x7c')]=function(_0x2683b0,_0x2453b9){var _0x318af6=moment()[_0x0f12('0xab')]()[_0x0f12('0xac')]();var _0x2a49e4=path[_0x0f12('0xad')](config[_0x0f12('0x7d')],_0x0f12('0xae'),'files',_0x0f12('0xaf'));var _0x2532fe=path[_0x0f12('0xad')](config[_0x0f12('0x7d')],'server','files',_0x0f12('0xb0'));var _0x89abbf=path[_0x0f12('0xad')](_0x2a49e4,_0x318af6);var _0x368673=util[_0x0f12('0x82')](_0x0f12('0xb1'),_0x318af6);var _0x229797=path[_0x0f12('0xad')](_0x2a49e4,_0x368673);var _0x36f88e=![];return db[_0x0f12('0x39')][_0x0f12('0x67')]({'where':{'id':_0x2683b0[_0x0f12('0x65')]['id']},'include':[{'model':db[_0x0f12('0x52')],'as':_0x0f12('0x53'),'attributes':['id',_0x0f12('0x69')],'include':[{'model':db['User'],'as':'User','attributes':['id','fullname'],'raw':!![]},{'model':db[_0x0f12('0x59')],'as':_0x0f12('0x5a'),'attributes':['id',_0x0f12('0xb2')],'raw':!![]},{'model':db['Attachment'],'as':_0x0f12('0x7a'),'raw':!![]}]}]})[_0x0f12('0x33')](handleEntityNotFound(_0x2453b9,null))[_0x0f12('0x33')](function(_0x3c39c7){if(_0x3c39c7){_0x36f88e=!![];var _0x562af6='';var _0x2b353d={'format':_0x0f12('0xb3'),'border':_0x0f12('0xb4')};fs[_0x0f12('0xb5')](_0x89abbf);_0x562af6+=util[_0x0f12('0x82')]('<h1>Chat\x20Interaction:\x20#%d</h1>',_0x3c39c7['id']);_0x562af6+=util[_0x0f12('0x82')]('<h2>Date:\x20%s</h2>',moment()[_0x0f12('0x82')](_0x0f12('0xb6'))['toString']());_0x562af6+=_0x0f12('0xb7');for(var _0xa203b3=0x1;_0xa203b3<_0x3c39c7[_0x0f12('0x53')][_0x0f12('0x42')];_0xa203b3++){var _0x1a76ee=_0x3c39c7[_0x0f12('0x53')][_0xa203b3];_0x562af6+=_0x0f12('0xb8');_0x562af6+=util['format'](_0x0f12('0xb9'),_0x1a76ee[_0x0f12('0x56')]?_0x1a76ee[_0x0f12('0x56')][_0x0f12('0x58')]:_0x1a76ee['Contact']['firstName'],_0x1a76ee[_0x0f12('0x69')]);_0x562af6+=_0x0f12('0xba');if(_0x1a76ee[_0x0f12('0x7a')]){var _0x430032=_0x1a76ee[_0x0f12('0x7a')];var _0x118495=path[_0x0f12('0xad')](_0x2532fe,_0x430032['basename']);if(fs['existsSync'](_0x118495)){fs[_0x0f12('0xbb')](_0x118495)[_0x0f12('0xbc')](fs[_0x0f12('0xbd')](path[_0x0f12('0xad')](_0x89abbf,_0x430032[_0x0f12('0x7f')])));}}}return new BPromise(function(_0x4d59da,_0x4dfbb7){pdf[_0x0f12('0x68')](_0x562af6,_0x2b353d)['toFile'](path[_0x0f12('0xad')](_0x89abbf,_0x0f12('0xbe')+_0x318af6+_0x0f12('0xbf')),function(_0x1e46af,_0x5c09a2){if(_0x1e46af)return _0x4dfbb7(_0x1e46af);_0x4d59da(_0x5c09a2);});});}})[_0x0f12('0x33')](function(){if(_0x36f88e){return new BPromise(function(_0x4416ec,_0x2386d1){zipdir(_0x89abbf,{'saveTo':_0x229797},function(_0x49f165,_0x2a4937){if(_0x49f165)return _0x2386d1(_0x49f165);return _0x4416ec(_0x2a4937);});});}})[_0x0f12('0x33')](function(){if(_0x36f88e){return new BPromise(function(_0x1d2111,_0x21a50a){rimraf(_0x89abbf,function(_0x56c019){if(_0x56c019)_0x21a50a(_0x56c019);return _0x1d2111();});});}})[_0x0f12('0x33')](function(){if(_0x36f88e){return _0x2453b9[_0x0f12('0x7c')](_0x229797,_0x368673,function(_0x4fbc58){if(_0x4fbc58){console[_0x0f12('0xc0')]('err',_0x4fbc58);}else{fs[_0x0f12('0xc1')](_0x229797);}});}else{return _0x2453b9['sendStatus'](0xc8);}})[_0x0f12('0x64')](handleError(_0x2453b9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf8d=['ChatInteraction','save','update','emit','hook','exports','events'];(function(_0x3e77e9,_0x3d939a){var _0x3deec3=function(_0x14bcb4){while(--_0x14bcb4){_0x3e77e9['push'](_0x3e77e9['shift']());}};_0x3deec3(++_0x3d939a);}(_0xdf8d,0x1bf));var _0xddf8=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0xdf8d[_0x17b6e3];return _0x3906f3;};'use strict';var EventEmitter=require(_0xddf8('0x0'));var ChatInteraction=require('../../mysqldb')['db'][_0xddf8('0x1')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xddf8('0x2'),'afterUpdate':_0xddf8('0x3'),'afterDestroy':'remove'};function emitEvent(_0x42ec9a){return function(_0x4d2415,_0x34cf4f,_0x4bfe69){ChatInteractionEvents[_0xddf8('0x4')](_0x42ec9a+':'+_0x4d2415['id'],_0x4d2415);ChatInteractionEvents[_0xddf8('0x4')](_0x42ec9a,_0x4d2415);_0x4bfe69(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInteraction[_0xddf8('0x5')](e,emitEvent(event));}}module[_0xddf8('0x6')]=ChatInteractionEvents;
\ No newline at end of file
+var _0x79a1=['remove','emit','hook','exports','../../mysqldb','setMaxListeners','save','update'];(function(_0x1cf1c2,_0x13c5df){var _0x77b89f=function(_0x1d6e23){while(--_0x1d6e23){_0x1cf1c2['push'](_0x1cf1c2['shift']());}};_0x77b89f(++_0x13c5df);}(_0x79a1,0x11c));var _0x179a=function(_0x3c30ae,_0x3f3585){_0x3c30ae=_0x3c30ae-0x0;var _0x42f67b=_0x79a1[_0x3c30ae];return _0x42f67b;};'use strict';var EventEmitter=require('events');var ChatInteraction=require(_0x179a('0x0'))['db']['ChatInteraction'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0x179a('0x1')](0x0);var events={'afterCreate':_0x179a('0x2'),'afterUpdate':_0x179a('0x3'),'afterDestroy':_0x179a('0x4')};function emitEvent(_0x17c375){return function(_0x190271,_0x4ebc48,_0x2da5a0){ChatInteractionEvents['emit'](_0x17c375+':'+_0x190271['id'],_0x190271);ChatInteractionEvents[_0x179a('0x5')](_0x17c375,_0x190271);_0x2da5a0(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInteraction[_0x179a('0x6')](e,emitEvent(event));}}module[_0x179a('0x7')]=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc810=['lodash','util','../../config/logger','api','moment','bluebird','./chatInteraction.attributes','exports','define','ChatInteraction','utf8mb4_unicode_ci'];(function(_0x2a16ef,_0x535d6e){var _0x153854=function(_0x456a96){while(--_0x456a96){_0x2a16ef['push'](_0x2a16ef['shift']());}};_0x153854(++_0x535d6e);}(_0xc810,0xdc));var _0x0c81=function(_0x99c67d,_0x181870){_0x99c67d=_0x99c67d-0x0;var _0x22174d=_0xc810[_0x99c67d];return _0x22174d;};'use strict';var _=require(_0x0c81('0x0'));var util=require(_0x0c81('0x1'));var logger=require(_0x0c81('0x2'))(_0x0c81('0x3'));var moment=require(_0x0c81('0x4'));var BPromise=require(_0x0c81('0x5'));var rp=require('request-promise');var attributes=require(_0x0c81('0x6'));module[_0x0c81('0x7')]=function(_0x1bde05,_0x3346b0){return _0x1bde05[_0x0c81('0x8')](_0x0c81('0x9'),attributes,{'tableName':'chat_interactions','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x0c81('0xa')});};
\ No newline at end of file
+var _0x8d31=['request-promise','./chatInteraction.attributes','exports','define','ChatInteraction','chat_interactions','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x565ed7,_0x398228){var _0x183ad7=function(_0x5a43d7){while(--_0x5a43d7){_0x565ed7['push'](_0x565ed7['shift']());}};_0x183ad7(++_0x398228);}(_0x8d31,0xe8));var _0x18d3=function(_0x2d82a9,_0x27e91c){_0x2d82a9=_0x2d82a9-0x0;var _0x43488b=_0x8d31[_0x2d82a9];return _0x43488b;};'use strict';var _=require(_0x18d3('0x0'));var util=require(_0x18d3('0x1'));var logger=require(_0x18d3('0x2'))(_0x18d3('0x3'));var moment=require(_0x18d3('0x4'));var BPromise=require(_0x18d3('0x5'));var rp=require(_0x18d3('0x6'));var attributes=require(_0x18d3('0x7'));module[_0x18d3('0x8')]=function(_0x3ee1cc,_0x38c9c7){return _0x3ee1cc[_0x18d3('0x9')](_0x18d3('0xa'),attributes,{'tableName':_0x18d3('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x18d3('0xc'),'collate':_0x18d3('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d25=['client','http','redis','defaults','localhost','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','result','UpdateChatInteraction','ChatInteraction','body','options','raw','where','attributes','limit','catch','AddTagsToChatInteraction','addTags','ids','omit','AddTags','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','../../config/environment','jayson/promise'];(function(_0x5baf62,_0x4d71c6){var _0x1109bd=function(_0x1a0b9f){while(--_0x1a0b9f){_0x5baf62['push'](_0x5baf62['shift']());}};_0x1109bd(++_0x4d71c6);}(_0x1d25,0xba));var _0x51d2=function(_0x56e32e,_0x9eb2f6){_0x56e32e=_0x56e32e-0x0;var _0x2a757b=_0x1d25[_0x56e32e];return _0x2a757b;};'use strict';var _=require(_0x51d2('0x0'));var util=require(_0x51d2('0x1'));var moment=require(_0x51d2('0x2'));var BPromise=require(_0x51d2('0x3'));var rs=require(_0x51d2('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x51d2('0x5'));var logger=require(_0x51d2('0x6'))('rpc');var config=require(_0x51d2('0x7'));var jayson=require(_0x51d2('0x8'));var client=jayson[_0x51d2('0x9')][_0x51d2('0xa')]({'port':0x232a});config[_0x51d2('0xb')]=_[_0x51d2('0xc')](config['redis'],{'host':_0x51d2('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x51d2('0xb')]);require('./chatInteraction.socket')['register'](socket);function respondWithRpcPromise(_0x30d7d0,_0x344cbf,_0x39cf55){return new BPromise(function(_0x359fb6,_0x50f9b4){return client[_0x51d2('0xe')](_0x30d7d0,_0x39cf55)[_0x51d2('0xf')](function(_0x32d0ff){logger[_0x51d2('0x10')](_0x51d2('0x11'),_0x344cbf,'request\x20sent');logger[_0x51d2('0x12')](_0x51d2('0x13'),_0x344cbf,'request\x20sent',JSON['stringify'](_0x32d0ff));if(_0x32d0ff[_0x51d2('0x14')]){if(_0x32d0ff[_0x51d2('0x14')][_0x51d2('0x15')]===0x1f4){logger[_0x51d2('0x14')](_0x51d2('0x11'),_0x344cbf,_0x32d0ff['error'][_0x51d2('0x16')]);return _0x50f9b4(_0x32d0ff['error'][_0x51d2('0x16')]);}logger[_0x51d2('0x14')](_0x51d2('0x11'),_0x344cbf,_0x32d0ff['error'][_0x51d2('0x16')]);return _0x359fb6(_0x32d0ff[_0x51d2('0x14')][_0x51d2('0x16')]);}else{logger[_0x51d2('0x10')](_0x51d2('0x11'),_0x344cbf,_0x51d2('0x17'));_0x359fb6(_0x32d0ff[_0x51d2('0x18')][_0x51d2('0x16')]);}})['catch'](function(_0x2d40ed){logger[_0x51d2('0x14')](_0x51d2('0x11'),_0x344cbf,_0x2d40ed);_0x50f9b4(_0x2d40ed);});});}exports[_0x51d2('0x19')]=function(_0x46fbba){var _0x360d82=this;return new Promise(function(_0x36a046,_0x41455e){return db[_0x51d2('0x1a')]['update'](_0x46fbba[_0x51d2('0x1b')],{'raw':_0x46fbba['options']?_0x46fbba[_0x51d2('0x1c')][_0x51d2('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x46fbba[_0x51d2('0x1c')]?_0x46fbba[_0x51d2('0x1c')][_0x51d2('0x1e')]||null:null,'attributes':_0x46fbba[_0x51d2('0x1c')]?_0x46fbba[_0x51d2('0x1c')][_0x51d2('0x1f')]||null:null,'limit':_0x46fbba['options']?_0x46fbba[_0x51d2('0x1c')][_0x51d2('0x20')]||null:null})[_0x51d2('0xf')](function(_0x56d8ed){logger[_0x51d2('0x10')](_0x51d2('0x19'),_0x46fbba);logger[_0x51d2('0x12')](_0x51d2('0x19'),_0x46fbba,JSON['stringify'](_0x56d8ed));_0x36a046(_0x56d8ed);})[_0x51d2('0x21')](function(_0x4ada82){logger[_0x51d2('0x14')](_0x51d2('0x19'),_0x4ada82[_0x51d2('0x16')],_0x46fbba);_0x41455e(_0x360d82[_0x51d2('0x14')](0x1f4,_0x4ada82[_0x51d2('0x16')]));});});};exports[_0x51d2('0x22')]=function(_0x280476){return new Promise(function(_0x72081a,_0x3c3b2b){return db[_0x51d2('0x1a')]['find']({'where':_0x280476['options']?_0x280476[_0x51d2('0x1c')][_0x51d2('0x1e')]||null:null})['then'](function(_0x5b721c){if(_0x5b721c){return _0x5b721c[_0x51d2('0x23')](_0x280476[_0x51d2('0x1b')][_0x51d2('0x24')],_[_0x51d2('0x25')](_0x280476[_0x51d2('0x1b')],['ids','id'])||{});}})['spread'](function(_0x442f8b){logger[_0x51d2('0x10')](_0x51d2('0x26'),_0x280476);logger[_0x51d2('0x12')]('AddTags',_0x280476,JSON['stringify'](_0x442f8b));_0x72081a(_0x442f8b);})[_0x51d2('0x21')](function(_0x380648){logger[_0x51d2('0x14')](_0x51d2('0x26'),_0x380648[_0x51d2('0x16')],_0x280476);_0x3c3b2b(_this['error'](0x1f4,_0x380648[_0x51d2('0x16')]));});});};
\ No newline at end of file
+var _0x1b60=['http','redis','defaults','localhost','./chatInteraction.socket','register','request','then','info','request\x20sent','debug','stringify','error','code','ChatInteraction,\x20%s,\x20%s','message','result','catch','ChatInteraction','body','options','raw','where','attributes','limit','UpdateChatInteraction','AddTagsToChatInteraction','find','addTags','ids','spread','AddTags','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x3055ab,_0x4d1f74){var _0x31d336=function(_0x207a6a){while(--_0x207a6a){_0x3055ab['push'](_0x3055ab['shift']());}};_0x31d336(++_0x4d1f74);}(_0x1b60,0x178));var _0x01b6=function(_0x3fdb4a,_0xd2d258){_0x3fdb4a=_0x3fdb4a-0x0;var _0x9816f3=_0x1b60[_0x3fdb4a];return _0x9816f3;};'use strict';var _=require(_0x01b6('0x0'));var util=require(_0x01b6('0x1'));var moment=require(_0x01b6('0x2'));var BPromise=require('bluebird');var rs=require(_0x01b6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x01b6('0x4'))['db'];var utils=require(_0x01b6('0x5'));var logger=require(_0x01b6('0x6'))(_0x01b6('0x7'));var config=require(_0x01b6('0x8'));var jayson=require(_0x01b6('0x9'));var client=jayson[_0x01b6('0xa')][_0x01b6('0xb')]({'port':0x232a});config[_0x01b6('0xc')]=_[_0x01b6('0xd')](config[_0x01b6('0xc')],{'host':_0x01b6('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x01b6('0xc')]));require(_0x01b6('0xf'))[_0x01b6('0x10')](socket);function respondWithRpcPromise(_0x4dda58,_0x315ec0,_0x20e346){return new BPromise(function(_0x406618,_0x303d81){return client[_0x01b6('0x11')](_0x4dda58,_0x20e346)[_0x01b6('0x12')](function(_0x527af7){logger[_0x01b6('0x13')]('ChatInteraction,\x20%s,\x20%s',_0x315ec0,_0x01b6('0x14'));logger[_0x01b6('0x15')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x315ec0,_0x01b6('0x14'),JSON[_0x01b6('0x16')](_0x527af7));if(_0x527af7[_0x01b6('0x17')]){if(_0x527af7['error'][_0x01b6('0x18')]===0x1f4){logger[_0x01b6('0x17')](_0x01b6('0x19'),_0x315ec0,_0x527af7[_0x01b6('0x17')][_0x01b6('0x1a')]);return _0x303d81(_0x527af7[_0x01b6('0x17')][_0x01b6('0x1a')]);}logger[_0x01b6('0x17')](_0x01b6('0x19'),_0x315ec0,_0x527af7['error'][_0x01b6('0x1a')]);return _0x406618(_0x527af7[_0x01b6('0x17')][_0x01b6('0x1a')]);}else{logger['info']('ChatInteraction,\x20%s,\x20%s',_0x315ec0,_0x01b6('0x14'));_0x406618(_0x527af7[_0x01b6('0x1b')][_0x01b6('0x1a')]);}})[_0x01b6('0x1c')](function(_0x5b4fd7){logger[_0x01b6('0x17')](_0x01b6('0x19'),_0x315ec0,_0x5b4fd7);_0x303d81(_0x5b4fd7);});});}exports['UpdateChatInteraction']=function(_0x3b71fd){var _0x3a4f8c=this;return new Promise(function(_0x4f1218,_0x31daa4){return db[_0x01b6('0x1d')]['update'](_0x3b71fd[_0x01b6('0x1e')],{'raw':_0x3b71fd[_0x01b6('0x1f')]?_0x3b71fd['options'][_0x01b6('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3b71fd[_0x01b6('0x1f')]?_0x3b71fd[_0x01b6('0x1f')][_0x01b6('0x21')]||null:null,'attributes':_0x3b71fd[_0x01b6('0x1f')]?_0x3b71fd['options'][_0x01b6('0x22')]||null:null,'limit':_0x3b71fd[_0x01b6('0x1f')]?_0x3b71fd['options'][_0x01b6('0x23')]||null:null})['then'](function(_0x469ef8){logger[_0x01b6('0x13')](_0x01b6('0x24'),_0x3b71fd);logger[_0x01b6('0x15')](_0x01b6('0x24'),_0x3b71fd,JSON['stringify'](_0x469ef8));_0x4f1218(_0x469ef8);})[_0x01b6('0x1c')](function(_0x46477a){logger[_0x01b6('0x17')](_0x01b6('0x24'),_0x46477a[_0x01b6('0x1a')],_0x3b71fd);_0x31daa4(_0x3a4f8c[_0x01b6('0x17')](0x1f4,_0x46477a['message']));});});};exports[_0x01b6('0x25')]=function(_0x4048d7){return new Promise(function(_0x16cf4a,_0x102981){return db[_0x01b6('0x1d')][_0x01b6('0x26')]({'where':_0x4048d7[_0x01b6('0x1f')]?_0x4048d7[_0x01b6('0x1f')][_0x01b6('0x21')]||null:null})[_0x01b6('0x12')](function(_0x2b079e){if(_0x2b079e){return _0x2b079e[_0x01b6('0x27')](_0x4048d7[_0x01b6('0x1e')][_0x01b6('0x28')],_['omit'](_0x4048d7[_0x01b6('0x1e')],[_0x01b6('0x28'),'id'])||{});}})[_0x01b6('0x29')](function(_0x31b1f4){logger[_0x01b6('0x13')](_0x01b6('0x2a'),_0x4048d7);logger[_0x01b6('0x15')]('AddTags',_0x4048d7,JSON[_0x01b6('0x16')](_0x31b1f4));_0x16cf4a(_0x31b1f4);})[_0x01b6('0x1c')](function(_0x12b459){logger[_0x01b6('0x17')]('AddTags',_0x12b459[_0x01b6('0x1a')],_0x4048d7);_0x102981(_this['error'](0x1f4,_0x12b459['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2881=['chatInteraction:','save','remove','removeListener','register','length'];(function(_0x214a25,_0x15071d){var _0x405988=function(_0x5c6fc1){while(--_0x5c6fc1){_0x214a25['push'](_0x214a25['shift']());}};_0x405988(++_0x15071d);}(_0x2881,0x1f3));var _0x1288=function(_0x434c50,_0x26934f){_0x434c50=_0x434c50-0x0;var _0x3a65a1=_0x2881[_0x434c50];return _0x3a65a1;};'use strict';var ChatInteractionEvents=require('./chatInteraction.events');var events=[_0x1288('0x0'),_0x1288('0x1'),'update'];function createListener(_0x1e18da,_0x13125a){return function(_0xe1b00b){_0x13125a['emit'](_0x1e18da,_0xe1b00b);};}function removeListener(_0x1151fa,_0x43c1c9){return function(){ChatInteractionEvents[_0x1288('0x2')](_0x1151fa,_0x43c1c9);};}exports[_0x1288('0x3')]=function(_0x14cb3a){for(var _0x5414f0=0x0,_0x515868=events[_0x1288('0x4')];_0x5414f0<_0x515868;_0x5414f0++){var _0x2731d7=events[_0x5414f0];var _0x414239=createListener(_0x1288('0x5')+_0x2731d7,_0x14cb3a);ChatInteractionEvents['on'](_0x2731d7,_0x414239);}};
\ No newline at end of file
+var _0x6a2f=['update','emit','removeListener','register','length','chatInteraction:','./chatInteraction.events','remove'];(function(_0x19e235,_0x2aa243){var _0x3d619c=function(_0x11bc70){while(--_0x11bc70){_0x19e235['push'](_0x19e235['shift']());}};_0x3d619c(++_0x2aa243);}(_0x6a2f,0x136));var _0xf6a2=function(_0x4b7b69,_0x3ab075){_0x4b7b69=_0x4b7b69-0x0;var _0x173b4c=_0x6a2f[_0x4b7b69];return _0x173b4c;};'use strict';var ChatInteractionEvents=require(_0xf6a2('0x0'));var events=['save',_0xf6a2('0x1'),_0xf6a2('0x2')];function createListener(_0x64338a,_0x1675ea){return function(_0xd27b97){_0x1675ea[_0xf6a2('0x3')](_0x64338a,_0xd27b97);};}function removeListener(_0x4590b7,_0x1893b7){return function(){ChatInteractionEvents[_0xf6a2('0x4')](_0x4590b7,_0x1893b7);};}exports[_0xf6a2('0x5')]=function(_0xdcbe6){for(var _0x217b88=0x0,_0x50e197=events[_0xf6a2('0x6')];_0x217b88<_0x50e197;_0x217b88++){var _0x1137b8=events[_0x217b88];var _0x48ffe1=createListener(_0xf6a2('0x7')+_0x1137b8,_0xdcbe6);ChatInteractionEvents['on'](_0x1137b8,_0x48ffe1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['show','/:id/attachment_download','isChatInteractionAuthorized','attachmentDownload','/:id/messages','getMessages','/:id/my_messages','/:id/download','download','diskStorage','join','root','format','%s-%s','now','originalname','post','/:id/attachment_upload','single','file','attachmentUpload','addMessage','/:id/tags','tracked','chat','chatinteraction:addtags','addTags','put','chatinteraction:update','/:id/custom_update','/:id/abandon','abandon','/:id/close','delete','chatinteraction:destroy','destroy','removeTags','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0x4cd690,_0x4797cc){var _0x4a74a9=function(_0x4cbbc5){while(--_0x4cbbc5){_0x4cd690['push'](_0x4cd690['shift']());}};_0x4a74a9(++_0x4797cc);}(_0xbaf0,0x12a));var _0x0baf=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0xbaf0[_0x126558];return _0x1f6d14;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var auth=require(_0x0baf('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x0baf('0x6'));var controller=require(_0x0baf('0x7'));router[_0x0baf('0x8')]('/',auth[_0x0baf('0x9')](),controller[_0x0baf('0xa')]);router[_0x0baf('0x8')](_0x0baf('0xb'),auth[_0x0baf('0x9')](),controller[_0x0baf('0xc')]);router['get'](_0x0baf('0xd'),auth['isChatInteractionAuthorized'](),controller[_0x0baf('0xe')]);router[_0x0baf('0x8')](_0x0baf('0xf'),auth[_0x0baf('0x10')](),controller[_0x0baf('0x11')]);router[_0x0baf('0x8')](_0x0baf('0x12'),auth[_0x0baf('0x9')](),controller[_0x0baf('0x13')]);router[_0x0baf('0x8')](_0x0baf('0x14'),auth['isChatInteractionAuthorized'](),controller['getMyMessages']);router[_0x0baf('0x8')](_0x0baf('0x15'),auth[_0x0baf('0x9')](),controller[_0x0baf('0x16')]);router['post']('/',auth[_0x0baf('0x9')](),controller['create']);var upload=multer({'storage':multer[_0x0baf('0x17')]({'destination':function(_0x1f50c3,_0x7fbf67,_0x2bc381){_0x2bc381(null,path[_0x0baf('0x18')](config[_0x0baf('0x19')],'server/files/attachments/'));},'filename':function(_0x4cd79d,_0x2312c7,_0x38395b){_0x38395b(null,util[_0x0baf('0x1a')](_0x0baf('0x1b'),Date[_0x0baf('0x1c')](),_0x2312c7[_0x0baf('0x1d')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x0baf('0x1e')](_0x0baf('0x1f'),upload[_0x0baf('0x20')](_0x0baf('0x21')),controller[_0x0baf('0x22')]);router[_0x0baf('0x1e')]('/:id/messages',auth['isChatInteractionAuthorized'](),controller[_0x0baf('0x23')]);router[_0x0baf('0x1e')](_0x0baf('0x24'),auth[_0x0baf('0x9')](),interaction[_0x0baf('0x25')](_0x0baf('0x26'),_0x0baf('0x27')),controller[_0x0baf('0x28')]);router[_0x0baf('0x29')](_0x0baf('0xd'),auth['isAuthenticated'](),interaction[_0x0baf('0x25')]('chat',_0x0baf('0x2a')),controller['update']);router['put'](_0x0baf('0x2b'),controller['customUpdate']);router['put'](_0x0baf('0x2c'),auth[_0x0baf('0x10')](),controller[_0x0baf('0x2d')]);router[_0x0baf('0x29')](_0x0baf('0x2e'),controller['close']);router[_0x0baf('0x2f')](_0x0baf('0xd'),auth[_0x0baf('0x9')](),interaction[_0x0baf('0x25')](_0x0baf('0x26'),_0x0baf('0x30')),controller[_0x0baf('0x31')]);router['delete'](_0x0baf('0x24'),auth[_0x0baf('0x9')](),controller[_0x0baf('0x32')]);module[_0x0baf('0x33')]=router;
\ No newline at end of file
+var _0xb10b=['/:id/download','download','post','create','diskStorage','join','root','server/files/attachments/','format','%s-%s','now','originalname','replace','/:id/attachment_upload','single','file','attachmentUpload','addMessage','/:id/tags','chat','chatinteraction:addtags','tracked','chatinteraction:update','update','put','/:id/custom_update','customUpdate','/:id/abandon','close','delete','chatinteraction:destroy','destroy','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','/describe','describe','/:id','isChatInteractionAuthorized','show','/:id/attachment_download','/:id/messages','getMessages','/:id/my_messages','getMyMessages'];(function(_0x50843d,_0x2f0303){var _0x148e56=function(_0x1011f8){while(--_0x1011f8){_0x50843d['push'](_0x50843d['shift']());}};_0x148e56(++_0x2f0303);}(_0xb10b,0x12a));var _0xbb10=function(_0x19e9a7,_0x57e686){_0x19e9a7=_0x19e9a7-0x0;var _0x3a8442=_0xb10b[_0x19e9a7];return _0x3a8442;};'use strict';var multer=require(_0xbb10('0x0'));var util=require('util');var path=require(_0xbb10('0x1'));var timeout=require(_0xbb10('0x2'));var express=require(_0xbb10('0x3'));var router=express['Router']();var auth=require(_0xbb10('0x4'));var interaction=require(_0xbb10('0x5'));var config=require(_0xbb10('0x6'));var controller=require(_0xbb10('0x7'));router[_0xbb10('0x8')]('/',auth[_0xbb10('0x9')](),controller['index']);router[_0xbb10('0x8')](_0xbb10('0xa'),auth['isAuthenticated'](),controller[_0xbb10('0xb')]);router[_0xbb10('0x8')](_0xbb10('0xc'),auth[_0xbb10('0xd')](),controller[_0xbb10('0xe')]);router[_0xbb10('0x8')](_0xbb10('0xf'),auth[_0xbb10('0xd')](),controller['attachmentDownload']);router['get'](_0xbb10('0x10'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x11')]);router['get'](_0xbb10('0x12'),auth['isChatInteractionAuthorized'](),controller[_0xbb10('0x13')]);router[_0xbb10('0x8')](_0xbb10('0x14'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x15')]);router[_0xbb10('0x16')]('/',auth['isAuthenticated'](),controller[_0xbb10('0x17')]);var upload=multer({'storage':multer[_0xbb10('0x18')]({'destination':function(_0x45b9d6,_0x17fd46,_0x3df17b){_0x3df17b(null,path[_0xbb10('0x19')](config[_0xbb10('0x1a')],_0xbb10('0x1b')));},'filename':function(_0x3e26f4,_0x2b184e,_0x4a2bfc){_0x4a2bfc(null,util[_0xbb10('0x1c')](_0xbb10('0x1d'),Date[_0xbb10('0x1e')](),_0x2b184e[_0xbb10('0x1f')][_0xbb10('0x20')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xbb10('0x16')](_0xbb10('0x21'),upload[_0xbb10('0x22')](_0xbb10('0x23')),controller[_0xbb10('0x24')]);router['post'](_0xbb10('0x10'),auth[_0xbb10('0xd')](),controller[_0xbb10('0x25')]);router[_0xbb10('0x16')](_0xbb10('0x26'),auth[_0xbb10('0x9')](),interaction['tracked'](_0xbb10('0x27'),_0xbb10('0x28')),controller['addTags']);router['put'](_0xbb10('0xc'),auth[_0xbb10('0x9')](),interaction[_0xbb10('0x29')](_0xbb10('0x27'),_0xbb10('0x2a')),controller[_0xbb10('0x2b')]);router[_0xbb10('0x2c')](_0xbb10('0x2d'),controller[_0xbb10('0x2e')]);router[_0xbb10('0x2c')](_0xbb10('0x2f'),auth[_0xbb10('0xd')](),controller['abandon']);router['put']('/:id/close',controller[_0xbb10('0x30')]);router[_0xbb10('0x31')](_0xbb10('0xc'),auth['isAuthenticated'](),interaction[_0xbb10('0x29')](_0xbb10('0x27'),_0xbb10('0x32')),controller[_0xbb10('0x33')]);router[_0xbb10('0x31')](_0xbb10('0x26'),auth[_0xbb10('0x9')](),controller['removeTags']);module[_0xbb10('0x34')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcaf2=['medium','INTEGER','sequelize','TEXT'];(function(_0x152121,_0x120c53){var _0x592a85=function(_0x241cab){while(--_0x241cab){_0x152121['push'](_0x152121['shift']());}};_0x592a85(++_0x120c53);}(_0xcaf2,0x8a));var _0x2caf=function(_0x20a1b0,_0x18fe84){_0x20a1b0=_0x20a1b0-0x0;var _0x321e14=_0xcaf2[_0x20a1b0];return _0x321e14;};'use strict';var Sequelize=require(_0x2caf('0x0'));module['exports']={'body':{'type':Sequelize[_0x2caf('0x1')](_0x2caf('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0x2caf('0x3')]}};
\ No newline at end of file
+var _0x9582=['exports','TEXT','medium','BOOLEAN','INTEGER','sequelize'];(function(_0x5c78d9,_0x2736c7){var _0x69ae1f=function(_0x4b31ac){while(--_0x4b31ac){_0x5c78d9['push'](_0x5c78d9['shift']());}};_0x69ae1f(++_0x2736c7);}(_0x9582,0x95));var _0x2958=function(_0x4812f3,_0x1b2cd4){_0x4812f3=_0x4812f3-0x0;var _0x254b68=_0x9582[_0x4812f3];return _0x254b68;};'use strict';var Sequelize=require(_0x2958('0x0'));module[_0x2958('0x1')]={'body':{'type':Sequelize[_0x2958('0x2')](_0x2958('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x2958('0x4')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0x2958('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','type','ToId','read','-createdAt','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','localhost','socket.io-emitter','redis','./chatInternalMessage.socket','register','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','save','then','error','stack','name','index','ChatInternalMessage','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','destroy','get','messages','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','User','user','role','userpic','internal','online','lastLoginAt'];(function(_0x57ba24,_0x489fd4){var _0x57d33f=function(_0x33cba8){while(--_0x33cba8){_0x57ba24['push'](_0x57ba24['shift']());}};_0x57d33f(++_0x489fd4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x40ac5e,_0x2de228){_0x40ac5e=_0x40ac5e-0x0;var _0x2839d6=_0xa9e0[_0x40ac5e];return _0x2839d6;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var qs=require(_0x0a9e('0xe'));var logger=require(_0x0a9e('0xf'))(_0x0a9e('0x10'));var utils=require(_0x0a9e('0x11'));var config=require(_0x0a9e('0x12'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x0a9e('0x13'),'port':0x18eb});var socket=require(_0x0a9e('0x14'))(config[_0x0a9e('0x15')]);require(_0x0a9e('0x16'))[_0x0a9e('0x17')](socket);function respondWithStatusCode(_0x69aeb7,_0x5db4b0){_0x5db4b0=_0x5db4b0||0xcc;return function(_0x4283ce){if(_0x4283ce){return _0x69aeb7[_0x0a9e('0x18')](_0x5db4b0);}return _0x69aeb7[_0x0a9e('0x19')](_0x5db4b0)[_0x0a9e('0x1a')]();};}function respondWithResult(_0x44dcfd,_0x4d5611){_0x4d5611=_0x4d5611||0xc8;return function(_0x52a03d){if(_0x52a03d){return _0x44dcfd[_0x0a9e('0x19')](_0x4d5611)['json'](_0x52a03d);}};}function respondWithFilteredResult(_0x1985b6,_0x519dfd){return function(_0x16033c){if(_0x16033c){var _0x12066b=_0x16033c[_0x0a9e('0x1b')],_0x48f32d=_0x519dfd[_0x0a9e('0x1c')],_0x225616=_0x519dfd[_0x0a9e('0x1c')]+_0x519dfd[_0x0a9e('0x1d')],_0x5a0a06;if(_0x225616>=_0x12066b){_0x225616=_0x12066b;_0x5a0a06=0xc8;}else{_0x5a0a06=0xce;}_0x1985b6[_0x0a9e('0x19')](_0x5a0a06);return _0x1985b6[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x48f32d+'-'+_0x225616+'/'+_0x12066b)[_0x0a9e('0x20')](_0x16033c);}return null;};}function patchUpdates(_0x1314ae){return function(_0x112016){try{jsonpatch[_0x0a9e('0x21')](_0x112016,_0x1314ae,!![]);}catch(_0x105080){return BPromise['reject'](_0x105080);}return _0x112016[_0x0a9e('0x22')]();};}function saveUpdates(_0x155cce,_0x53682f){return function(_0x20f109){if(_0x20f109){return _0x20f109['update'](_0x155cce)['then'](function(_0x3a02e1){return _0x3a02e1;});}return null;};}function removeEntity(_0x432e56,_0x38e7c4){return function(_0x30bae6){if(_0x30bae6){return _0x30bae6['destroy']()[_0x0a9e('0x23')](function(){_0x432e56[_0x0a9e('0x19')](0xcc)[_0x0a9e('0x1a')]();});}};}function handleEntityNotFound(_0x4d00e6,_0x370d86){return function(_0x42ac8f){if(!_0x42ac8f){_0x4d00e6[_0x0a9e('0x18')](0x194);}return _0x42ac8f;};}function handleError(_0x5ea472,_0x59181e){_0x59181e=_0x59181e||0x1f4;return function(_0x197ec0){logger[_0x0a9e('0x24')](_0x197ec0[_0x0a9e('0x25')]);if(_0x197ec0[_0x0a9e('0x26')]){delete _0x197ec0['name'];}_0x5ea472[_0x0a9e('0x19')](_0x59181e)['send'](_0x197ec0);};}exports[_0x0a9e('0x27')]=function(_0x5bfb33,_0x1dc186){var _0x34dc65={},_0x25fba9={},_0x14433c={'count':0x0,'rows':[]};var _0x140511=db[_0x0a9e('0x28')][_0x0a9e('0x29')];_0x25fba9[_0x0a9e('0x2a')]=_['keys'](_0x140511);var _0x3652a7={'dateStart':_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x2c')],'dateEnd':_0x5bfb33[_0x0a9e('0x2b')]['dateEnd']};delete _0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x2c')];delete _0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x2d')];_0x25fba9[_0x0a9e('0x2b')]=_[_0x0a9e('0x2e')](_0x5bfb33[_0x0a9e('0x2b')]);_0x25fba9[_0x0a9e('0x2f')]=_[_0x0a9e('0x30')](_0x25fba9['model'],_0x25fba9[_0x0a9e('0x2b')]);_0x34dc65['attributes']=_[_0x0a9e('0x30')](_0x25fba9[_0x0a9e('0x2a')],qs[_0x0a9e('0x31')](_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x31')]));_0x34dc65['attributes']=_0x34dc65[_0x0a9e('0x32')][_0x0a9e('0x33')]?_0x34dc65[_0x0a9e('0x32')]:_0x25fba9[_0x0a9e('0x2a')];if(!_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x34')](_0x0a9e('0x35'))){_0x34dc65[_0x0a9e('0x1d')]=qs['limit'](_0x5bfb33[_0x0a9e('0x2b')]['limit']);_0x34dc65[_0x0a9e('0x1c')]=qs[_0x0a9e('0x1c')](_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x1c')]);}_0x34dc65['order']=qs[_0x0a9e('0x36')](_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x36')]);_0x34dc65[_0x0a9e('0x37')]=qs['filters'](_['pick'](_0x5bfb33[_0x0a9e('0x2b')],_0x25fba9['filters']));if(_0x3652a7[_0x0a9e('0x2c')]){if(_0x3652a7[_0x0a9e('0x2d')]){_0x3652a7[_0x0a9e('0x2d')]=moment(_0x3652a7[_0x0a9e('0x2d')])['add'](0x1,_0x0a9e('0x38'));}else{_0x3652a7[_0x0a9e('0x2d')]=moment(_0x3652a7[_0x0a9e('0x2c')])['add'](0x1,_0x0a9e('0x38'));}_[_0x0a9e('0x39')](_0x34dc65[_0x0a9e('0x37')],{'createdAt':{'$gte':_0x3652a7['dateStart'],'$lte':_0x3652a7['dateEnd']}});}if(_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x3a')]){_0x34dc65['where']=_[_0x0a9e('0x39')](_0x34dc65[_0x0a9e('0x37')],{'$or':_[_0x0a9e('0x3b')](_0x34dc65[_0x0a9e('0x32')],function(_0x4b38d9){var _0x5a594b={};_0x5a594b[_0x4b38d9]={'$like':'%'+_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x3a')]+'%'};return _0x5a594b;})});}_0x34dc65=_['merge']({},_0x34dc65,_0x5bfb33[_0x0a9e('0x3c')]);var _0x1dec2e={'where':_0x34dc65[_0x0a9e('0x37')]};return db['ChatInternalMessage'][_0x0a9e('0x1b')](_0x1dec2e)[_0x0a9e('0x23')](function(_0x274e8e){_0x14433c[_0x0a9e('0x1b')]=_0x274e8e;if(_0x5bfb33[_0x0a9e('0x2b')][_0x0a9e('0x3d')]){_0x34dc65[_0x0a9e('0x3e')]=[{'all':!![]}];}return db[_0x0a9e('0x28')][_0x0a9e('0x3f')](_0x34dc65);})[_0x0a9e('0x23')](function(_0x2c3711){_0x14433c[_0x0a9e('0x40')]=_0x2c3711;return _0x14433c;})[_0x0a9e('0x23')](respondWithFilteredResult(_0x1dc186,_0x34dc65))[_0x0a9e('0x41')](handleError(_0x1dc186,null));};exports[_0x0a9e('0x42')]=function(_0x4d04c8,_0x52628e){var _0x473fdc={'raw':!![],'where':{'id':_0x4d04c8[_0x0a9e('0x43')]['id']}},_0xb3795a={};_0xb3795a[_0x0a9e('0x2a')]=_[_0x0a9e('0x2e')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0xb3795a[_0x0a9e('0x2b')]=_[_0x0a9e('0x2e')](_0x4d04c8[_0x0a9e('0x2b')]);_0xb3795a[_0x0a9e('0x2f')]=_[_0x0a9e('0x30')](_0xb3795a['model'],_0xb3795a[_0x0a9e('0x2b')]);_0x473fdc[_0x0a9e('0x32')]=_[_0x0a9e('0x30')](_0xb3795a[_0x0a9e('0x2a')],qs[_0x0a9e('0x31')](_0x4d04c8[_0x0a9e('0x2b')][_0x0a9e('0x31')]));_0x473fdc[_0x0a9e('0x32')]=_0x473fdc['attributes'][_0x0a9e('0x33')]?_0x473fdc['attributes']:_0xb3795a[_0x0a9e('0x2a')];if(_0x4d04c8[_0x0a9e('0x2b')][_0x0a9e('0x3d')]){_0x473fdc['include']=[{'all':!![]}];}_0x473fdc=_[_0x0a9e('0x39')]({},_0x473fdc,_0x4d04c8[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x44')](_0x473fdc)[_0x0a9e('0x23')](handleEntityNotFound(_0x52628e,null))[_0x0a9e('0x23')](respondWithResult(_0x52628e,null))[_0x0a9e('0x41')](handleError(_0x52628e,null));};exports['create']=function(_0x13f44d,_0x1bde3c){return db[_0x0a9e('0x28')][_0x0a9e('0x45')](_0x13f44d[_0x0a9e('0x46')],{})[_0x0a9e('0x23')](respondWithResult(_0x1bde3c,0xc9))[_0x0a9e('0x41')](handleError(_0x1bde3c,null));};exports[_0x0a9e('0x47')]=function(_0x34febd,_0x58a5c2){if(_0x34febd[_0x0a9e('0x46')]['id']){delete _0x34febd[_0x0a9e('0x46')]['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x34febd['params']['id']}})[_0x0a9e('0x23')](handleEntityNotFound(_0x58a5c2,null))[_0x0a9e('0x23')](saveUpdates(_0x34febd[_0x0a9e('0x46')],null))[_0x0a9e('0x23')](respondWithResult(_0x58a5c2,null))[_0x0a9e('0x41')](handleError(_0x58a5c2,null));};exports[_0x0a9e('0x48')]=function(_0x2e5165,_0x375c18){return db['ChatInternalMessage']['find']({'where':{'id':_0x2e5165['params']['id']}})[_0x0a9e('0x23')](handleEntityNotFound(_0x375c18,null))[_0x0a9e('0x23')](removeEntity(_0x375c18,null))[_0x0a9e('0x41')](handleError(_0x375c18,null));};exports['describe']=function(_0x2b69d9,_0x161aa7){return db['ChatInternalMessage']['describe']()[_0x0a9e('0x23')](respondWithResult(_0x161aa7,null))['catch'](handleError(_0x161aa7,null));};function wrapUser(_0x443e72){return function(_0x4c3845){var _0x2e5e62=_0x443e72[_0x0a9e('0x49')]({'plain':!![]});_0x2e5e62[_0x0a9e('0x4a')]=[];if(_0x4c3845){_0x2e5e62['lastMessageAt']=_0x4c3845[_0x0a9e('0x4b')];_0x2e5e62[_0x0a9e('0x4c')]=_0x4c3845;}else{_0x2e5e62['lastMessageAt']=moment(0x0)['format'](_0x0a9e('0x4d'));_0x2e5e62[_0x0a9e('0x4c')]={};}return _0x2e5e62;};}exports['getUsers']=function(_0x145931,_0x5ce9ac,_0x211ef9){var _0x523cd2=[];return db[_0x0a9e('0x4e')]['findAll']({'where':{'role':['agent','admin',_0x0a9e('0x4f')]},'attributes':['id','fullname',_0x0a9e('0x26'),_0x0a9e('0x50'),_0x0a9e('0x51'),_0x0a9e('0x52'),_0x0a9e('0x53'),_0x0a9e('0x54'),_0x0a9e('0x55'),_0x0a9e('0x56')],'order':qs['sort'](_0x0a9e('0x57')),'include':[{'model':db[_0x0a9e('0x58')],'as':_0x0a9e('0x59'),'attributes':['id',_0x0a9e('0x26'),_0x0a9e('0x5a')],'through':{'attributes':[]}}]})[_0x0a9e('0x23')](function(_0x5d86e9){var _0x956fbe=[];if(_0x5d86e9){_0x523cd2=_0x5d86e9;for(var _0x26bc80=0x0;_0x26bc80<_0x5d86e9['length'];_0x26bc80+=0x1){_0x523cd2[_0x26bc80][_0x0a9e('0x4a')]=[];_0x956fbe['push'](db[_0x0a9e('0x28')]['find']({'where':{'FromId':[_0x145931['user']['id'],_0x5d86e9[_0x26bc80]['id']],'ToId':[_0x145931['user']['id'],_0x5d86e9[_0x26bc80]['id']],'ChatGroupId':null},'attributes':['id',_0x0a9e('0x4b'),'FromId',_0x0a9e('0x5b'),_0x0a9e('0x5c'),_0x0a9e('0x46')],'order':qs[_0x0a9e('0x36')](_0x0a9e('0x5d')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x0a9e('0x23')](wrapUser(_0x5d86e9[_0x26bc80])));}return BPromise['all'](_0x956fbe);}return[];})[_0x0a9e('0x23')](function(_0x5854cc){return{'rows':_0x5854cc,'count':_0x5854cc[_0x0a9e('0x33')]};})[_0x0a9e('0x23')](respondWithResult(_0x5ce9ac,null))[_0x0a9e('0x41')](handleError(_0x5ce9ac,null));};
\ No newline at end of file
+var _0x8647=['dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','add','day','merge','filter','include','findAll','rows','catch','show','includeAll','find','create','body','params','describe','get','messages','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','fullname','name','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','push','user','FromId','read','-createdAt','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','json','count','offset','Content-Range','apply','reject','update','then','destroy','end','error','stack','index','ChatInternalMessage','rawAttributes','model','keys','query','dateStart'];(function(_0x459cf6,_0x234d19){var _0x4cfda5=function(_0x150f7b){while(--_0x150f7b){_0x459cf6['push'](_0x459cf6['shift']());}};_0x4cfda5(++_0x234d19);}(_0x8647,0x164));var _0x7864=function(_0x1d49c6,_0x36c18e){_0x1d49c6=_0x1d49c6-0x0;var _0x55bceb=_0x8647[_0x1d49c6];return _0x55bceb;};'use strict';var pdf=require(_0x7864('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7864('0x1'));var zipdir=require(_0x7864('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7864('0x3'));var moment=require(_0x7864('0x4'));var BPromise=require(_0x7864('0x5'));var Mustache=require('mustache');var util=require(_0x7864('0x6'));var path=require('path');var sox=require(_0x7864('0x7'));var csv=require(_0x7864('0x8'));var ejs=require(_0x7864('0x9'));var fs=require('fs');var _=require(_0x7864('0xa'));var squel=require(_0x7864('0xb'));var crypto=require(_0x7864('0xc'));var jsforce=require(_0x7864('0xd'));var deskjs=require(_0x7864('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7864('0xf'));var Redis=require('ioredis');var qs=require(_0x7864('0x10'));var logger=require('../../config/logger')(_0x7864('0x11'));var utils=require(_0x7864('0x12'));var config=require(_0x7864('0x13'));var db=require(_0x7864('0x14'))['db'];config[_0x7864('0x15')]=_[_0x7864('0x16')](config['redis'],{'host':_0x7864('0x17'),'port':0x18eb});var socket=require(_0x7864('0x18'))(new Redis(config[_0x7864('0x15')]));require(_0x7864('0x19'))[_0x7864('0x1a')](socket);function respondWithStatusCode(_0x88f74d,_0x45d96c){_0x45d96c=_0x45d96c||0xcc;return function(_0x2deb8e){if(_0x2deb8e){return _0x88f74d[_0x7864('0x1b')](_0x45d96c);}return _0x88f74d['status'](_0x45d96c)['end']();};}function respondWithResult(_0x17860b,_0x52488f){_0x52488f=_0x52488f||0xc8;return function(_0xb8bc21){if(_0xb8bc21){return _0x17860b[_0x7864('0x1c')](_0x52488f)[_0x7864('0x1d')](_0xb8bc21);}};}function respondWithFilteredResult(_0x30450a,_0x1d296a){return function(_0x208d25){if(_0x208d25){var _0x5a0d8c=_0x208d25[_0x7864('0x1e')],_0x22faa1=_0x1d296a['offset'],_0x197068=_0x1d296a[_0x7864('0x1f')]+_0x1d296a['limit'],_0x2c81e2;if(_0x197068>=_0x5a0d8c){_0x197068=_0x5a0d8c;_0x2c81e2=0xc8;}else{_0x2c81e2=0xce;}_0x30450a[_0x7864('0x1c')](_0x2c81e2);return _0x30450a['set'](_0x7864('0x20'),_0x22faa1+'-'+_0x197068+'/'+_0x5a0d8c)[_0x7864('0x1d')](_0x208d25);}return null;};}function patchUpdates(_0x25e6d6){return function(_0x16b250){try{jsonpatch[_0x7864('0x21')](_0x16b250,_0x25e6d6,!![]);}catch(_0x199114){return BPromise[_0x7864('0x22')](_0x199114);}return _0x16b250['save']();};}function saveUpdates(_0x30c1a2,_0x19236d){return function(_0x5b0aa7){if(_0x5b0aa7){return _0x5b0aa7[_0x7864('0x23')](_0x30c1a2)[_0x7864('0x24')](function(_0x1b8864){return _0x1b8864;});}return null;};}function removeEntity(_0x31aed1,_0x5a2089){return function(_0x22171d){if(_0x22171d){return _0x22171d[_0x7864('0x25')]()[_0x7864('0x24')](function(){_0x31aed1[_0x7864('0x1c')](0xcc)[_0x7864('0x26')]();});}};}function handleEntityNotFound(_0x890c3f,_0xd549ac){return function(_0x2b8d37){if(!_0x2b8d37){_0x890c3f[_0x7864('0x1b')](0x194);}return _0x2b8d37;};}function handleError(_0x32638c,_0x10c5d4){_0x10c5d4=_0x10c5d4||0x1f4;return function(_0x11442a){logger[_0x7864('0x27')](_0x11442a[_0x7864('0x28')]);if(_0x11442a['name']){delete _0x11442a['name'];}_0x32638c['status'](_0x10c5d4)['send'](_0x11442a);};}exports[_0x7864('0x29')]=function(_0x38a98b,_0x4cf1f0){var _0x2aa971={},_0x49c9fa={},_0xa1cf85={'count':0x0,'rows':[]};var _0x4a8244=db[_0x7864('0x2a')][_0x7864('0x2b')];_0x49c9fa[_0x7864('0x2c')]=_[_0x7864('0x2d')](_0x4a8244);var _0x45542c={'dateStart':_0x38a98b[_0x7864('0x2e')][_0x7864('0x2f')],'dateEnd':_0x38a98b[_0x7864('0x2e')]['dateEnd']};delete _0x38a98b['query'][_0x7864('0x2f')];delete _0x38a98b[_0x7864('0x2e')][_0x7864('0x30')];_0x49c9fa[_0x7864('0x2e')]=_[_0x7864('0x2d')](_0x38a98b[_0x7864('0x2e')]);_0x49c9fa[_0x7864('0x31')]=_[_0x7864('0x32')](_0x49c9fa[_0x7864('0x2c')],_0x49c9fa[_0x7864('0x2e')]);_0x2aa971[_0x7864('0x33')]=_[_0x7864('0x32')](_0x49c9fa['model'],qs[_0x7864('0x34')](_0x38a98b[_0x7864('0x2e')]['fields']));_0x2aa971['attributes']=_0x2aa971[_0x7864('0x33')][_0x7864('0x35')]?_0x2aa971[_0x7864('0x33')]:_0x49c9fa[_0x7864('0x2c')];if(!_0x38a98b['query'][_0x7864('0x36')](_0x7864('0x37'))){_0x2aa971[_0x7864('0x38')]=qs[_0x7864('0x38')](_0x38a98b[_0x7864('0x2e')][_0x7864('0x38')]);_0x2aa971[_0x7864('0x1f')]=qs[_0x7864('0x1f')](_0x38a98b[_0x7864('0x2e')][_0x7864('0x1f')]);}_0x2aa971[_0x7864('0x39')]=qs[_0x7864('0x3a')](_0x38a98b[_0x7864('0x2e')][_0x7864('0x3a')]);_0x2aa971[_0x7864('0x3b')]=qs[_0x7864('0x31')](_[_0x7864('0x3c')](_0x38a98b[_0x7864('0x2e')],_0x49c9fa['filters']));if(_0x45542c[_0x7864('0x2f')]){if(_0x45542c[_0x7864('0x30')]){_0x45542c[_0x7864('0x30')]=moment(_0x45542c[_0x7864('0x30')])[_0x7864('0x3d')](0x1,_0x7864('0x3e'));}else{_0x45542c['dateEnd']=moment(_0x45542c[_0x7864('0x2f')])[_0x7864('0x3d')](0x1,'day');}_[_0x7864('0x3f')](_0x2aa971['where'],{'createdAt':{'$gte':_0x45542c['dateStart'],'$lte':_0x45542c['dateEnd']}});}if(_0x38a98b[_0x7864('0x2e')]['filter']){_0x2aa971[_0x7864('0x3b')]=_['merge'](_0x2aa971[_0x7864('0x3b')],{'$or':_['map'](_0x2aa971['attributes'],function(_0x252f6e){var _0x118d50={};_0x118d50[_0x252f6e]={'$like':'%'+_0x38a98b[_0x7864('0x2e')][_0x7864('0x40')]+'%'};return _0x118d50;})});}_0x2aa971=_[_0x7864('0x3f')]({},_0x2aa971,_0x38a98b['options']);var _0x3039f4={'where':_0x2aa971[_0x7864('0x3b')]};return db[_0x7864('0x2a')][_0x7864('0x1e')](_0x3039f4)[_0x7864('0x24')](function(_0x3c427b){_0xa1cf85['count']=_0x3c427b;if(_0x38a98b[_0x7864('0x2e')]['includeAll']){_0x2aa971[_0x7864('0x41')]=[{'all':!![]}];}return db[_0x7864('0x2a')][_0x7864('0x42')](_0x2aa971);})['then'](function(_0x4eba90){_0xa1cf85[_0x7864('0x43')]=_0x4eba90;return _0xa1cf85;})[_0x7864('0x24')](respondWithFilteredResult(_0x4cf1f0,_0x2aa971))[_0x7864('0x44')](handleError(_0x4cf1f0,null));};exports[_0x7864('0x45')]=function(_0x1aab2b,_0xb79f91){var _0x9f1507={'raw':!![],'where':{'id':_0x1aab2b['params']['id']}},_0x1a8382={};_0x1a8382['model']=_[_0x7864('0x2d')](db[_0x7864('0x2a')]['rawAttributes']);_0x1a8382['query']=_[_0x7864('0x2d')](_0x1aab2b[_0x7864('0x2e')]);_0x1a8382['filters']=_['intersection'](_0x1a8382[_0x7864('0x2c')],_0x1a8382[_0x7864('0x2e')]);_0x9f1507[_0x7864('0x33')]=_[_0x7864('0x32')](_0x1a8382[_0x7864('0x2c')],qs['fields'](_0x1aab2b[_0x7864('0x2e')][_0x7864('0x34')]));_0x9f1507[_0x7864('0x33')]=_0x9f1507[_0x7864('0x33')][_0x7864('0x35')]?_0x9f1507[_0x7864('0x33')]:_0x1a8382[_0x7864('0x2c')];if(_0x1aab2b['query'][_0x7864('0x46')]){_0x9f1507[_0x7864('0x41')]=[{'all':!![]}];}_0x9f1507=_[_0x7864('0x3f')]({},_0x9f1507,_0x1aab2b['options']);return db[_0x7864('0x2a')][_0x7864('0x47')](_0x9f1507)[_0x7864('0x24')](handleEntityNotFound(_0xb79f91,null))[_0x7864('0x24')](respondWithResult(_0xb79f91,null))[_0x7864('0x44')](handleError(_0xb79f91,null));};exports[_0x7864('0x48')]=function(_0x27ddf7,_0x2b17cf){return db[_0x7864('0x2a')][_0x7864('0x48')](_0x27ddf7[_0x7864('0x49')],{})['then'](respondWithResult(_0x2b17cf,0xc9))[_0x7864('0x44')](handleError(_0x2b17cf,null));};exports['update']=function(_0x239925,_0x52fd22){if(_0x239925[_0x7864('0x49')]['id']){delete _0x239925[_0x7864('0x49')]['id'];}return db[_0x7864('0x2a')]['find']({'where':{'id':_0x239925[_0x7864('0x4a')]['id']}})[_0x7864('0x24')](handleEntityNotFound(_0x52fd22,null))[_0x7864('0x24')](saveUpdates(_0x239925['body'],null))['then'](respondWithResult(_0x52fd22,null))[_0x7864('0x44')](handleError(_0x52fd22,null));};exports[_0x7864('0x25')]=function(_0x5bd7b8,_0x36567d){return db[_0x7864('0x2a')][_0x7864('0x47')]({'where':{'id':_0x5bd7b8[_0x7864('0x4a')]['id']}})[_0x7864('0x24')](handleEntityNotFound(_0x36567d,null))['then'](removeEntity(_0x36567d,null))[_0x7864('0x44')](handleError(_0x36567d,null));};exports[_0x7864('0x4b')]=function(_0x23c1c0,_0x57e2d4){return db[_0x7864('0x2a')][_0x7864('0x4b')]()[_0x7864('0x24')](respondWithResult(_0x57e2d4,null))['catch'](handleError(_0x57e2d4,null));};function wrapUser(_0x10544d){return function(_0x2d545f){var _0x19f91a=_0x10544d[_0x7864('0x4c')]({'plain':!![]});_0x19f91a[_0x7864('0x4d')]=[];if(_0x2d545f){_0x19f91a[_0x7864('0x4e')]=_0x2d545f['createdAt'];_0x19f91a[_0x7864('0x4f')]=_0x2d545f;}else{_0x19f91a['lastMessageAt']=moment(0x0)[_0x7864('0x50')](_0x7864('0x51'));_0x19f91a[_0x7864('0x4f')]={};}return _0x19f91a;};}exports[_0x7864('0x52')]=function(_0x2c3daa,_0x5c10cb,_0x1ab124){var _0x21b67d=[];return db[_0x7864('0x53')][_0x7864('0x42')]({'where':{'role':[_0x7864('0x54'),'admin','user']},'attributes':['id',_0x7864('0x55'),_0x7864('0x56'),_0x7864('0x57'),_0x7864('0x58'),_0x7864('0x59'),'online',_0x7864('0x5a'),_0x7864('0x5b'),_0x7864('0x5c')],'order':qs[_0x7864('0x3a')](_0x7864('0x5d')),'include':[{'model':db[_0x7864('0x5e')],'as':_0x7864('0x5f'),'attributes':['id',_0x7864('0x56'),'type'],'through':{'attributes':[]}}]})['then'](function(_0x56b622){var _0x5ab53c=[];if(_0x56b622){_0x21b67d=_0x56b622;for(var _0x2f24cb=0x0;_0x2f24cb<_0x56b622[_0x7864('0x35')];_0x2f24cb+=0x1){_0x21b67d[_0x2f24cb][_0x7864('0x4d')]=[];_0x5ab53c[_0x7864('0x60')](db[_0x7864('0x2a')][_0x7864('0x47')]({'where':{'FromId':[_0x2c3daa[_0x7864('0x61')]['id'],_0x56b622[_0x2f24cb]['id']],'ToId':[_0x2c3daa[_0x7864('0x61')]['id'],_0x56b622[_0x2f24cb]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x7864('0x62'),'ToId',_0x7864('0x63'),'body'],'order':qs[_0x7864('0x3a')](_0x7864('0x64')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x7864('0x24')](wrapUser(_0x56b622[_0x2f24cb])));}return BPromise['all'](_0x5ab53c);}return[];})[_0x7864('0x24')](function(_0x4d499e){return{'rows':_0x4d499e,'count':_0x4d499e['length']};})['then'](respondWithResult(_0x5c10cb,null))[_0x7864('0x44')](handleError(_0x5c10cb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8da2=['setMaxListeners','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x4be367,_0x1a15bc){var _0x22b288=function(_0x1c50cc){while(--_0x1c50cc){_0x4be367['push'](_0x4be367['shift']());}};_0x22b288(++_0x1a15bc);}(_0x8da2,0x1c9));var _0x28da=function(_0x341cb6,_0x217617){_0x341cb6=_0x341cb6-0x0;var _0x293153=_0x8da2[_0x341cb6];return _0x293153;};'use strict';var EventEmitter=require(_0x28da('0x0'));var ChatInternalMessage=require(_0x28da('0x1'))['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x28da('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x28da('0x3'),'afterDestroy':_0x28da('0x4')};function emitEvent(_0x6db2b4){return function(_0x45291b,_0xd73109,_0x2b73fa){ChatInternalMessageEvents[_0x28da('0x5')](_0x6db2b4+':'+_0x45291b['id'],_0x45291b);ChatInternalMessageEvents['emit'](_0x6db2b4,_0x45291b);_0x2b73fa(null);};}for(var e in events){if(events[_0x28da('0x6')](e)){var event=events[e];ChatInternalMessage[_0x28da('0x7')](e,emitEvent(event));}}module[_0x28da('0x8')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0x376b=['events','../../mysqldb','ChatInternalMessage','update','remove','emit','hasOwnProperty','hook'];(function(_0x119f6a,_0x594d77){var _0x4c00a3=function(_0x50db72){while(--_0x50db72){_0x119f6a['push'](_0x119f6a['shift']());}};_0x4c00a3(++_0x594d77);}(_0x376b,0xd8));var _0xb376=function(_0xd3370f,_0x2b186a){_0xd3370f=_0xd3370f-0x0;var _0x5ac66e=_0x376b[_0xd3370f];return _0x5ac66e;};'use strict';var EventEmitter=require(_0xb376('0x0'));var ChatInternalMessage=require(_0xb376('0x1'))['db'][_0xb376('0x2')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xb376('0x3'),'afterDestroy':_0xb376('0x4')};function emitEvent(_0x5eb643){return function(_0x2627ec,_0x5e212e,_0x5e18c8){ChatInternalMessageEvents[_0xb376('0x5')](_0x5eb643+':'+_0x2627ec['id'],_0x2627ec);ChatInternalMessageEvents['emit'](_0x5eb643,_0x2627ec);_0x5e18c8(null);};}for(var e in events){if(events[_0xb376('0x6')](e)){var event=events[e];ChatInternalMessage[_0xb376('0x7')](e,emitEvent(event));}}module['exports']=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x280a=['bluebird','request-promise','exports','define','ChatInternalMessage','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment'];(function(_0x527e65,_0x20c73f){var _0x22286d=function(_0x6ab45){while(--_0x6ab45){_0x527e65['push'](_0x527e65['shift']());}};_0x22286d(++_0x20c73f);}(_0x280a,0xe3));var _0xa280=function(_0x514835,_0x95fcdf){_0x514835=_0x514835-0x0;var _0x44c151=_0x280a[_0x514835];return _0x44c151;};'use strict';var _=require(_0xa280('0x0'));var util=require(_0xa280('0x1'));var logger=require('../../config/logger')(_0xa280('0x2'));var moment=require(_0xa280('0x3'));var BPromise=require(_0xa280('0x4'));var rp=require(_0xa280('0x5'));var attributes=require('./chatInternalMessage.attributes');module[_0xa280('0x6')]=function(_0x4553b2,_0x406054){return _0x4553b2[_0xa280('0x7')](_0xa280('0x8'),attributes,{'tableName':'chat_internal_messages','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xa280('0x9'),'collate':_0xa280('0xa')});};
\ No newline at end of file
+var _0xfcb5=['utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','bluebird','request-promise','./chatInternalMessage.attributes','exports','chat_internal_messages'];(function(_0x9833ef,_0x458e24){var _0x435ff0=function(_0x2a8ec3){while(--_0x2a8ec3){_0x9833ef['push'](_0x9833ef['shift']());}};_0x435ff0(++_0x458e24);}(_0xfcb5,0x7a));var _0x5fcb=function(_0x4e4ae5,_0x52862f){_0x4e4ae5=_0x4e4ae5-0x0;var _0x4a4413=_0xfcb5[_0x4e4ae5];return _0x4a4413;};'use strict';var _=require(_0x5fcb('0x0'));var util=require(_0x5fcb('0x1'));var logger=require(_0x5fcb('0x2'))('api');var moment=require('moment');var BPromise=require(_0x5fcb('0x3'));var rp=require(_0x5fcb('0x4'));var attributes=require(_0x5fcb('0x5'));module[_0x5fcb('0x6')]=function(_0x43ab43,_0x26807e){return _0x43ab43['define']('ChatInternalMessage',attributes,{'tableName':_0x5fcb('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x5fcb('0x8'),'collate':_0x5fcb('0x9')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8815=['./chatInternalMessage.socket','register','request','then','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','ChatInternalMessage,\x20%s,\x20%s','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter'];(function(_0x1fced5,_0x15d811){var _0x5ac234=function(_0x3d1a64){while(--_0x3d1a64){_0x1fced5['push'](_0x1fced5['shift']());}};_0x5ac234(++_0x15d811);}(_0x8815,0x6b));var _0x5881=function(_0x37cc52,_0x459a9b){_0x37cc52=_0x37cc52-0x0;var _0x2b4a90=_0x8815[_0x37cc52];return _0x2b4a90;};'use strict';var _=require(_0x5881('0x0'));var util=require(_0x5881('0x1'));var moment=require(_0x5881('0x2'));var BPromise=require(_0x5881('0x3'));var rs=require(_0x5881('0x4'));var fs=require('fs');var db=require(_0x5881('0x5'))['db'];var utils=require(_0x5881('0x6'));var logger=require(_0x5881('0x7'))(_0x5881('0x8'));var config=require(_0x5881('0x9'));var jayson=require(_0x5881('0xa'));var client=jayson[_0x5881('0xb')][_0x5881('0xc')]({'port':0x232a});config[_0x5881('0xd')]=_[_0x5881('0xe')](config[_0x5881('0xd')],{'host':_0x5881('0xf'),'port':0x18eb});var socket=require(_0x5881('0x10'))(config[_0x5881('0xd')]);require(_0x5881('0x11'))[_0x5881('0x12')](socket);function respondWithRpcPromise(_0x290ea4,_0x1e5d61,_0x4b246b){return new BPromise(function(_0xadd96d,_0x5d3370){return client[_0x5881('0x13')](_0x290ea4,_0x4b246b)[_0x5881('0x14')](function(_0x8aa02d){logger['info']('ChatInternalMessage,\x20%s,\x20%s',_0x1e5d61,_0x5881('0x15'));logger[_0x5881('0x16')](_0x5881('0x17'),_0x1e5d61,_0x5881('0x15'),JSON[_0x5881('0x18')](_0x8aa02d));if(_0x8aa02d[_0x5881('0x19')]){if(_0x8aa02d['error']['code']===0x1f4){logger[_0x5881('0x19')]('ChatInternalMessage,\x20%s,\x20%s',_0x1e5d61,_0x8aa02d['error'][_0x5881('0x1a')]);return _0x5d3370(_0x8aa02d['error'][_0x5881('0x1a')]);}logger['error'](_0x5881('0x1b'),_0x1e5d61,_0x8aa02d[_0x5881('0x19')][_0x5881('0x1a')]);return _0xadd96d(_0x8aa02d['error'][_0x5881('0x1a')]);}else{logger[_0x5881('0x1c')]('ChatInternalMessage,\x20%s,\x20%s',_0x1e5d61,_0x5881('0x15'));_0xadd96d(_0x8aa02d[_0x5881('0x1d')]['message']);}})[_0x5881('0x1e')](function(_0x34db32){logger[_0x5881('0x19')](_0x5881('0x1b'),_0x1e5d61,_0x34db32);_0x5d3370(_0x34db32);});});}
\ No newline at end of file
+var _0x1fd9=['stringify','error','code','message','info','result','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','jayson/promise','client','http','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','register','request','then','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s'];(function(_0x51ab4f,_0x32f508){var _0xc004ae=function(_0x4d177b){while(--_0x4d177b){_0x51ab4f['push'](_0x51ab4f['shift']());}};_0xc004ae(++_0x32f508);}(_0x1fd9,0x19b));var _0x91fd=function(_0x2e0f29,_0x2f459a){_0x2e0f29=_0x2e0f29-0x0;var _0x26b940=_0x1fd9[_0x2e0f29];return _0x26b940;};'use strict';var _=require(_0x91fd('0x0'));var util=require(_0x91fd('0x1'));var moment=require(_0x91fd('0x2'));var BPromise=require(_0x91fd('0x3'));var rs=require(_0x91fd('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x91fd('0x5'));var logger=require(_0x91fd('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x91fd('0x7'));var client=jayson[_0x91fd('0x8')][_0x91fd('0x9')]({'port':0x232a});config[_0x91fd('0xa')]=_[_0x91fd('0xb')](config[_0x91fd('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x91fd('0xc'))(new Redis(config['redis']));require(_0x91fd('0xd'))[_0x91fd('0xe')](socket);function respondWithRpcPromise(_0x434256,_0x14f69c,_0x5b4d56){return new BPromise(function(_0x4f711a,_0x1ce670){return client[_0x91fd('0xf')](_0x434256,_0x5b4d56)[_0x91fd('0x10')](function(_0x17d900){logger['info'](_0x91fd('0x11'),_0x14f69c,_0x91fd('0x12'));logger[_0x91fd('0x13')](_0x91fd('0x14'),_0x14f69c,_0x91fd('0x12'),JSON[_0x91fd('0x15')](_0x17d900));if(_0x17d900[_0x91fd('0x16')]){if(_0x17d900['error'][_0x91fd('0x17')]===0x1f4){logger[_0x91fd('0x16')]('ChatInternalMessage,\x20%s,\x20%s',_0x14f69c,_0x17d900[_0x91fd('0x16')]['message']);return _0x1ce670(_0x17d900['error'][_0x91fd('0x18')]);}logger['error'](_0x91fd('0x11'),_0x14f69c,_0x17d900[_0x91fd('0x16')][_0x91fd('0x18')]);return _0x4f711a(_0x17d900[_0x91fd('0x16')]['message']);}else{logger[_0x91fd('0x19')](_0x91fd('0x11'),_0x14f69c,_0x91fd('0x12'));_0x4f711a(_0x17d900[_0x91fd('0x1a')]['message']);}})['catch'](function(_0x3110b4){logger[_0x91fd('0x16')]('ChatInternalMessage,\x20%s,\x20%s',_0x14f69c,_0x3110b4);_0x1ce670(_0x3110b4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24ee=['remove','removeListener','register','length','chatInternalMessage:','./chatInternalMessage.events','save'];(function(_0x5453b0,_0x11a4ba){var _0x2483c4=function(_0x21cece){while(--_0x21cece){_0x5453b0['push'](_0x5453b0['shift']());}};_0x2483c4(++_0x11a4ba);}(_0x24ee,0x1da));var _0xe24e=function(_0x38e870,_0x3d2e6a){_0x38e870=_0x38e870-0x0;var _0x2dabbe=_0x24ee[_0x38e870];return _0x2dabbe;};'use strict';var ChatInternalMessageEvents=require(_0xe24e('0x0'));var events=[_0xe24e('0x1'),_0xe24e('0x2'),'update'];function createListener(_0x55cbd1,_0x19455a){return function(_0x211e7b){_0x19455a['emit'](_0x55cbd1,_0x211e7b);};}function removeListener(_0x2daf21,_0x2a7682){return function(){ChatInternalMessageEvents[_0xe24e('0x3')](_0x2daf21,_0x2a7682);};}exports[_0xe24e('0x4')]=function(_0x5db7db){for(var _0x23d355=0x0,_0x1a903a=events[_0xe24e('0x5')];_0x23d355<_0x1a903a;_0x23d355++){var _0x3fabc8=events[_0x23d355];var _0x1e1bb0=createListener(_0xe24e('0x6')+_0x3fabc8,_0x5db7db);ChatInternalMessageEvents['on'](_0x3fabc8,_0x1e1bb0);}};
\ No newline at end of file
+var _0xbf05=['removeListener','register','length','./chatInternalMessage.events','remove','update','emit'];(function(_0x47da25,_0x2e3de6){var _0x24453a=function(_0x31001f){while(--_0x31001f){_0x47da25['push'](_0x47da25['shift']());}};_0x24453a(++_0x2e3de6);}(_0xbf05,0xd5));var _0x5bf0=function(_0x40f8df,_0x2dff60){_0x40f8df=_0x40f8df-0x0;var _0x1f4925=_0xbf05[_0x40f8df];return _0x1f4925;};'use strict';var ChatInternalMessageEvents=require(_0x5bf0('0x0'));var events=['save',_0x5bf0('0x1'),_0x5bf0('0x2')];function createListener(_0x1e6623,_0x434c68){return function(_0x36da69){_0x434c68[_0x5bf0('0x3')](_0x1e6623,_0x36da69);};}function removeListener(_0x3f7e7a,_0x2f2436){return function(){ChatInternalMessageEvents[_0x5bf0('0x4')](_0x3f7e7a,_0x2f2436);};}exports[_0x5bf0('0x5')]=function(_0x51fbbd){for(var _0xbab15d=0x0,_0x319b78=events[_0x5bf0('0x6')];_0xbab15d<_0x319b78;_0xbab15d++){var _0x2bdce1=events[_0xbab15d];var _0x30f960=createListener('chatInternalMessage:'+_0x2bdce1,_0x51fbbd);ChatInternalMessageEvents['on'](_0x2bdce1,_0x30f960);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9199=['./chatInternalMessage.controller','get','isAuthenticated','/describe','show','create','/:id','update','exports','multer','util','connect-timeout','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x5e8261,_0x5c853d){var _0x84552e=function(_0x42c1ff){while(--_0x42c1ff){_0x5e8261['push'](_0x5e8261['shift']());}};_0x84552e(++_0x5c853d);}(_0x9199,0x1e9));var _0x9919=function(_0x5817e6,_0x44a2d0){_0x5817e6=_0x5817e6-0x0;var _0x51916a=_0x9199[_0x5817e6];return _0x51916a;};'use strict';var multer=require(_0x9919('0x0'));var util=require(_0x9919('0x1'));var path=require('path');var timeout=require(_0x9919('0x2'));var express=require('express');var router=express[_0x9919('0x3')]();var auth=require(_0x9919('0x4'));var interaction=require(_0x9919('0x5'));var config=require('../../config/environment');var controller=require(_0x9919('0x6'));router[_0x9919('0x7')]('/',auth[_0x9919('0x8')](),controller['index']);router[_0x9919('0x7')](_0x9919('0x9'),auth[_0x9919('0x8')](),controller['describe']);router[_0x9919('0x7')]('/users',auth[_0x9919('0x8')](),controller['getUsers']);router[_0x9919('0x7')]('/:id',auth[_0x9919('0x8')](),controller[_0x9919('0xa')]);router['post']('/',auth[_0x9919('0x8')](),controller[_0x9919('0xb')]);router['put'](_0x9919('0xc'),controller[_0x9919('0xd')]);router['delete'](_0x9919('0xc'),auth[_0x9919('0x8')](),controller['destroy']);module[_0x9919('0xe')]=router;
\ No newline at end of file
+var _0x5a99=['update','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','./chatInternalMessage.controller','get','isAuthenticated','index','/describe','describe','/users','getUsers','/:id','show','create','put'];(function(_0x36dfbd,_0x5bfe2d){var _0x4ecad9=function(_0x5230da){while(--_0x5230da){_0x36dfbd['push'](_0x36dfbd['shift']());}};_0x4ecad9(++_0x5bfe2d);}(_0x5a99,0xc9));var _0x95a9=function(_0x4106fc,_0x3cbea9){_0x4106fc=_0x4106fc-0x0;var _0x12ca88=_0x5a99[_0x4106fc];return _0x12ca88;};'use strict';var multer=require(_0x95a9('0x0'));var util=require(_0x95a9('0x1'));var path=require(_0x95a9('0x2'));var timeout=require('connect-timeout');var express=require(_0x95a9('0x3'));var router=express[_0x95a9('0x4')]();var auth=require(_0x95a9('0x5'));var interaction=require(_0x95a9('0x6'));var config=require('../../config/environment');var controller=require(_0x95a9('0x7'));router[_0x95a9('0x8')]('/',auth[_0x95a9('0x9')](),controller[_0x95a9('0xa')]);router['get'](_0x95a9('0xb'),auth[_0x95a9('0x9')](),controller[_0x95a9('0xc')]);router['get'](_0x95a9('0xd'),auth['isAuthenticated'](),controller[_0x95a9('0xe')]);router[_0x95a9('0x8')](_0x95a9('0xf'),auth[_0x95a9('0x9')](),controller[_0x95a9('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0x95a9('0x11')]);router[_0x95a9('0x12')]('/:id',controller[_0x95a9('0x13')]);router['delete'](_0x95a9('0xf'),auth[_0x95a9('0x9')](),controller[_0x95a9('0x14')]);module[_0x95a9('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfe5=['medium','BOOLEAN','ENUM','out','DATE','exports','TEXT'];(function(_0x3fba2b,_0x3e6f68){var _0x362e02=function(_0xfbbeb0){while(--_0xfbbeb0){_0x3fba2b['push'](_0x3fba2b['shift']());}};_0x362e02(++_0x3e6f68);}(_0xbfe5,0x1b0));var _0x5bfe=function(_0x4d9d52,_0x387ff1){_0x4d9d52=_0x4d9d52-0x0;var _0x54b8eb=_0xbfe5[_0x4d9d52];return _0x54b8eb;};'use strict';var Sequelize=require('sequelize');module[_0x5bfe('0x0')]={'body':{'type':Sequelize[_0x5bfe('0x1')](_0x5bfe('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x5bfe('0x3')],'defaultValue':![]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x5bfe('0x4')]('in',_0x5bfe('0x5')),'defaultValue':_0x5bfe('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0x5bfe('0x6')]}};
\ No newline at end of file
+var _0x946a=['medium','BOOLEAN','ENUM','out','DATE','sequelize','TEXT'];(function(_0x5c2412,_0x50b728){var _0x132456=function(_0x5a705c){while(--_0x5a705c){_0x5c2412['push'](_0x5c2412['shift']());}};_0x132456(++_0x50b728);}(_0x946a,0x15c));var _0xa946=function(_0x512e4c,_0x19f1f6){_0x512e4c=_0x512e4c-0x0;var _0x306770=_0x946a[_0x512e4c];return _0x306770;};'use strict';var Sequelize=require(_0xa946('0x0'));module['exports']={'body':{'type':Sequelize[_0xa946('0x1')](_0xa946('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize[_0xa946('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xa946('0x4')]('in','out'),'defaultValue':_0xa946('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0xa946('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cba=['rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','day','add','where','filter','merge','map','options','includeAll','include','findAll','show','params','length','find','create','body','describe','chat-interactions','chat','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','ChatInteractionId','UserId','read1stAt','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','interaction','null','AcceptMessage','acceptMessage','manual','SIP/%s','channel','event','accept','EventManager','acceptmessage','parse','formData','agent','ChatInteraction','get','rejectMessage','interface','rejectmessage','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatMessage.socket','register','jayson/promise','http','client','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','ChatMessage'];(function(_0x130802,_0x303e4e){var _0x79dc11=function(_0x118ed4){while(--_0x118ed4){_0x130802['push'](_0x130802['shift']());}};_0x79dc11(++_0x303e4e);}(_0x4cba,0xba));var _0xa4cb=function(_0x106b40,_0x1d7763){_0x106b40=_0x106b40-0x0;var _0x563a53=_0x4cba[_0x106b40];return _0x563a53;};'use strict';var pdf=require(_0xa4cb('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa4cb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa4cb('0x2'));var rp=require(_0xa4cb('0x3'));var moment=require(_0xa4cb('0x4'));var BPromise=require(_0xa4cb('0x5'));var Mustache=require(_0xa4cb('0x6'));var util=require('util');var path=require(_0xa4cb('0x7'));var sox=require(_0xa4cb('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xa4cb('0x9'));var crypto=require(_0xa4cb('0xa'));var jsforce=require(_0xa4cb('0xb'));var deskjs=require(_0xa4cb('0xc'));var toCsv=require(_0xa4cb('0xd'));var querystring=require(_0xa4cb('0xe'));var Papa=require(_0xa4cb('0xf'));var qs=require(_0xa4cb('0x10'));var logger=require(_0xa4cb('0x11'))('api');var utils=require(_0xa4cb('0x12'));var config=require(_0xa4cb('0x13'));var db=require(_0xa4cb('0x14'))['db'];config[_0xa4cb('0x15')]=_[_0xa4cb('0x16')](config[_0xa4cb('0x15')],{'host':_0xa4cb('0x17'),'port':0x18eb});var socket=require(_0xa4cb('0x18'))(config[_0xa4cb('0x15')]);require(_0xa4cb('0x19'))[_0xa4cb('0x1a')](socket);var jayson=require(_0xa4cb('0x1b'));var client=jayson['client'][_0xa4cb('0x1c')]({'port':0x232c});var client9002=jayson[_0xa4cb('0x1d')][_0xa4cb('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x1f918f,_0x295428,_0x58e61e,_0x52c63a){return new BPromise(function(_0x81f560,_0x116398){var _0x15e57d=_0x52c63a||client;return _0x15e57d['request'](_0x1f918f,_0x58e61e)[_0xa4cb('0x1e')](function(_0x1c7591){logger[_0xa4cb('0x1f')](_0xa4cb('0x20'),_0x295428,_0xa4cb('0x21'));logger[_0xa4cb('0x22')](_0xa4cb('0x23'),_0x295428,_0xa4cb('0x21'),JSON[_0xa4cb('0x24')](_0x1c7591));if(_0x1c7591['error']){if(_0x1c7591[_0xa4cb('0x25')][_0xa4cb('0x26')]===0x1f4){logger[_0xa4cb('0x25')](_0xa4cb('0x20'),_0x295428,_0x1c7591[_0xa4cb('0x25')][_0xa4cb('0x27')]);return _0x116398(_0x1c7591[_0xa4cb('0x25')]['message']);}logger['error'](_0xa4cb('0x20'),_0x295428,_0x1c7591[_0xa4cb('0x25')]['message']);return _0x81f560(_0x1c7591['error'][_0xa4cb('0x27')]);}else{logger[_0xa4cb('0x1f')](_0xa4cb('0x20'),_0x295428,_0xa4cb('0x21'));_0x81f560(_0x1c7591[_0xa4cb('0x28')][_0xa4cb('0x27')]);}})[_0xa4cb('0x29')](function(_0x36370b){logger[_0xa4cb('0x25')](_0xa4cb('0x20'),_0x295428,_0x36370b);_0x116398(_0x36370b);});});}function respondWithStatusCode(_0x7c1f8e,_0x740daf){_0x740daf=_0x740daf||0xcc;return function(_0x47632e){if(_0x47632e){return _0x7c1f8e[_0xa4cb('0x2a')](_0x740daf);}return _0x7c1f8e[_0xa4cb('0x2b')](_0x740daf)[_0xa4cb('0x2c')]();};}function respondWithResult(_0x5b570a,_0x546a7d){_0x546a7d=_0x546a7d||0xc8;return function(_0x140431){if(_0x140431){return _0x5b570a[_0xa4cb('0x2b')](_0x546a7d)[_0xa4cb('0x2d')](_0x140431);}};}function respondWithFilteredResult(_0x27ab17,_0x37b6b4){return function(_0x4019bd){if(_0x4019bd){var _0x17d8f9=_0x4019bd[_0xa4cb('0x2e')],_0x5cc138=_0x37b6b4[_0xa4cb('0x2f')],_0x40fc63=_0x37b6b4[_0xa4cb('0x2f')]+_0x37b6b4[_0xa4cb('0x30')],_0x257431;if(_0x40fc63>=_0x17d8f9){_0x40fc63=_0x17d8f9;_0x257431=0xc8;}else{_0x257431=0xce;}_0x27ab17[_0xa4cb('0x2b')](_0x257431);return _0x27ab17[_0xa4cb('0x31')](_0xa4cb('0x32'),_0x5cc138+'-'+_0x40fc63+'/'+_0x17d8f9)[_0xa4cb('0x2d')](_0x4019bd);}return null;};}function patchUpdates(_0xb52baf){return function(_0x530477){try{jsonpatch[_0xa4cb('0x33')](_0x530477,_0xb52baf,!![]);}catch(_0x8cfb16){return BPromise[_0xa4cb('0x34')](_0x8cfb16);}return _0x530477[_0xa4cb('0x35')]();};}function saveUpdates(_0x19f9df,_0x2d8191){return function(_0x20307c){if(_0x20307c){return _0x20307c[_0xa4cb('0x36')](_0x19f9df)['then'](function(_0x5f1fa1){return _0x5f1fa1;});}return null;};}function removeEntity(_0xc3bac2,_0x397915){return function(_0x2736a3){if(_0x2736a3){return _0x2736a3[_0xa4cb('0x37')]()[_0xa4cb('0x1e')](function(){_0xc3bac2[_0xa4cb('0x2b')](0xcc)[_0xa4cb('0x2c')]();});}};}function handleEntityNotFound(_0x7e3ec7,_0x226eac){return function(_0x3a2224){if(!_0x3a2224){_0x7e3ec7[_0xa4cb('0x2a')](0x194);}return _0x3a2224;};}function handleError(_0x3ff27c,_0x19b3e0){_0x19b3e0=_0x19b3e0||0x1f4;return function(_0x204281){logger['error'](_0x204281[_0xa4cb('0x38')]);if(_0x204281[_0xa4cb('0x39')]){delete _0x204281[_0xa4cb('0x39')];}_0x3ff27c[_0xa4cb('0x2b')](_0x19b3e0)[_0xa4cb('0x3a')](_0x204281);};}exports['index']=function(_0x3e38b6,_0x3d921d){var _0x2c4dc4={},_0x131135={},_0xc99730={'count':0x0,'rows':[]};var _0x4fe48c=db[_0xa4cb('0x3b')][_0xa4cb('0x3c')];_0x131135[_0xa4cb('0x3d')]=_[_0xa4cb('0x3e')](_0x4fe48c);var _0x33ee4f={'dateStart':_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x40')],'dateEnd':_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x41')]};delete _0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x40')];delete _0x3e38b6['query'][_0xa4cb('0x41')];_0x131135['query']=_[_0xa4cb('0x3e')](_0x3e38b6['query']);_0x131135[_0xa4cb('0x42')]=_[_0xa4cb('0x43')](_0x131135[_0xa4cb('0x3d')],_0x131135[_0xa4cb('0x3f')]);_0x2c4dc4[_0xa4cb('0x44')]=_[_0xa4cb('0x43')](_0x131135[_0xa4cb('0x3d')],qs[_0xa4cb('0x45')](_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x45')]));_0x2c4dc4[_0xa4cb('0x44')]=_0x2c4dc4[_0xa4cb('0x44')]['length']?_0x2c4dc4['attributes']:_0x131135[_0xa4cb('0x3d')];if(!_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x46')](_0xa4cb('0x47'))){_0x2c4dc4['limit']=qs['limit'](_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x30')]);_0x2c4dc4[_0xa4cb('0x2f')]=qs['offset'](_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x2f')]);}_0x2c4dc4[_0xa4cb('0x48')]=qs[_0xa4cb('0x49')](_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x49')]);_0x2c4dc4['where']=qs['filters'](_[_0xa4cb('0x4a')](_0x3e38b6[_0xa4cb('0x3f')],_0x131135[_0xa4cb('0x42')]));if(_0x33ee4f['dateStart']){if(_0x33ee4f['dateEnd']){_0x33ee4f[_0xa4cb('0x41')]=moment(_0x33ee4f[_0xa4cb('0x41')])['add'](0x1,_0xa4cb('0x4b'));}else{_0x33ee4f[_0xa4cb('0x41')]=moment(_0x33ee4f[_0xa4cb('0x40')])[_0xa4cb('0x4c')](0x1,'day');}_['merge'](_0x2c4dc4[_0xa4cb('0x4d')],{'createdAt':{'$gte':_0x33ee4f['dateStart'],'$lte':_0x33ee4f['dateEnd']}});}if(_0x3e38b6['query'][_0xa4cb('0x4e')]){_0x2c4dc4[_0xa4cb('0x4d')]=_[_0xa4cb('0x4f')](_0x2c4dc4[_0xa4cb('0x4d')],{'$or':_[_0xa4cb('0x50')](_0x2c4dc4[_0xa4cb('0x44')],function(_0x1e5060){var _0x836dda={};_0x836dda[_0x1e5060]={'$like':'%'+_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x4e')]+'%'};return _0x836dda;})});}_0x2c4dc4=_[_0xa4cb('0x4f')]({},_0x2c4dc4,_0x3e38b6[_0xa4cb('0x51')]);var _0x3f6303={'where':_0x2c4dc4[_0xa4cb('0x4d')]};return db[_0xa4cb('0x3b')][_0xa4cb('0x2e')](_0x3f6303)[_0xa4cb('0x1e')](function(_0xdbaa23){_0xc99730[_0xa4cb('0x2e')]=_0xdbaa23;if(_0x3e38b6[_0xa4cb('0x3f')][_0xa4cb('0x52')]){_0x2c4dc4[_0xa4cb('0x53')]=[{'all':!![]}];}return db[_0xa4cb('0x3b')][_0xa4cb('0x54')](_0x2c4dc4);})[_0xa4cb('0x1e')](function(_0x37ccbf){_0xc99730['rows']=_0x37ccbf;return _0xc99730;})[_0xa4cb('0x1e')](respondWithFilteredResult(_0x3d921d,_0x2c4dc4))['catch'](handleError(_0x3d921d,null));};exports[_0xa4cb('0x55')]=function(_0x4e0aec,_0x52b371){var _0x542bfd={'raw':!![],'where':{'id':_0x4e0aec[_0xa4cb('0x56')]['id']}},_0x588041={};_0x588041['model']=_[_0xa4cb('0x3e')](db[_0xa4cb('0x3b')][_0xa4cb('0x3c')]);_0x588041[_0xa4cb('0x3f')]=_[_0xa4cb('0x3e')](_0x4e0aec[_0xa4cb('0x3f')]);_0x588041['filters']=_[_0xa4cb('0x43')](_0x588041['model'],_0x588041[_0xa4cb('0x3f')]);_0x542bfd[_0xa4cb('0x44')]=_[_0xa4cb('0x43')](_0x588041['model'],qs[_0xa4cb('0x45')](_0x4e0aec[_0xa4cb('0x3f')][_0xa4cb('0x45')]));_0x542bfd[_0xa4cb('0x44')]=_0x542bfd[_0xa4cb('0x44')][_0xa4cb('0x57')]?_0x542bfd[_0xa4cb('0x44')]:_0x588041['model'];if(_0x4e0aec[_0xa4cb('0x3f')]['includeAll']){_0x542bfd[_0xa4cb('0x53')]=[{'all':!![]}];}_0x542bfd=_['merge']({},_0x542bfd,_0x4e0aec[_0xa4cb('0x51')]);return db[_0xa4cb('0x3b')][_0xa4cb('0x58')](_0x542bfd)['then'](handleEntityNotFound(_0x52b371,null))[_0xa4cb('0x1e')](respondWithResult(_0x52b371,null))[_0xa4cb('0x29')](handleError(_0x52b371,null));};exports[_0xa4cb('0x59')]=function(_0x47ca20,_0x303fee){return db[_0xa4cb('0x3b')]['create'](_0x47ca20[_0xa4cb('0x5a')],{})[_0xa4cb('0x1e')](respondWithResult(_0x303fee,0xc9))[_0xa4cb('0x29')](handleError(_0x303fee,null));};exports['update']=function(_0x551b31,_0xc98af7){if(_0x551b31['body']['id']){delete _0x551b31['body']['id'];}return db['ChatMessage'][_0xa4cb('0x58')]({'where':{'id':_0x551b31[_0xa4cb('0x56')]['id']}})[_0xa4cb('0x1e')](handleEntityNotFound(_0xc98af7,null))[_0xa4cb('0x1e')](saveUpdates(_0x551b31['body'],null))[_0xa4cb('0x1e')](respondWithResult(_0xc98af7,null))['catch'](handleError(_0xc98af7,null));};exports[_0xa4cb('0x37')]=function(_0x5a1c38,_0x195bad){return db[_0xa4cb('0x3b')][_0xa4cb('0x58')]({'where':{'id':_0x5a1c38[_0xa4cb('0x56')]['id']}})['then'](handleEntityNotFound(_0x195bad,null))[_0xa4cb('0x1e')](removeEntity(_0x195bad,null))[_0xa4cb('0x29')](handleError(_0x195bad,null));};exports['describe']=function(_0x1d8156,_0x19eace){return db[_0xa4cb('0x3b')][_0xa4cb('0x5b')]()[_0xa4cb('0x1e')](respondWithResult(_0x19eace,null))[_0xa4cb('0x29')](handleError(_0x19eace,null));};var interaction_log=require(_0xa4cb('0x11'))(_0xa4cb('0x5c'));exports['accept']=function(_0x17347d,_0x57440a,_0x397900){var _0x17108a={'channel':_0xa4cb('0x5d')};if(_0x17347d[_0xa4cb('0x5a')]['id']){delete _0x17347d[_0xa4cb('0x5a')]['id'];}_0x17347d[_0xa4cb('0x5a')][_0xa4cb('0x5e')]=!![];_0x17347d['body'][_0xa4cb('0x5f')]=moment()[_0xa4cb('0x60')](_0xa4cb('0x61'));_0x17347d[_0xa4cb('0x5a')]['UserId']=_0x17347d[_0xa4cb('0x5a')]['UserId']||_0x17347d['user']['id'];return db['ChatMessage'][_0xa4cb('0x58')]({'where':{'id':_0x17347d[_0xa4cb('0x56')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':'Contact'}]})[_0xa4cb('0x1e')](handleEntityNotFound(_0x57440a,null))[_0xa4cb('0x1e')](saveUpdates(_0x17347d[_0xa4cb('0x5a')],null))[_0xa4cb('0x1e')](function(_0x30504b){if(_0x30504b){_0x17108a[_0xa4cb('0x27')]=_0x30504b['get']({'plain':!![]});return db['ChatInteraction'][_0xa4cb('0x58')]({'where':{'id':_0x30504b[_0xa4cb('0x62')]}});}return null;})['then'](handleEntityNotFound(_0x57440a,null))[_0xa4cb('0x1e')](function(_0x113bac){if(_0x113bac){return _0x113bac[_0xa4cb('0x36')]({'UserId':_0x17347d[_0xa4cb('0x5a')][_0xa4cb('0x63')],'read1stAt':_['isNil'](_0x113bac[_0xa4cb('0x64')])?moment()[_0xa4cb('0x60')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xa4cb('0x1e')](function(_0x7fa684){if(_0x7fa684){_0x17108a['interaction']=_0x7fa684['get']({'plain':!![]});interaction_log[_0xa4cb('0x1f')](_0xa4cb('0x65'),_0x17347d[_0xa4cb('0x66')]['id'],_0x17347d[_0xa4cb('0x66')][_0xa4cb('0x39')],_0x17347d['user'][_0xa4cb('0x67')],_0x17108a[_0xa4cb('0x68')]['id'],_0x17347d['body']?JSON['stringify'](_0x17347d['body']):_0xa4cb('0x69'));return respondWithRpcPromise(_0xa4cb('0x6a'),_0xa4cb('0x6b'),_0x17108a);}return null;})[_0xa4cb('0x1e')](function(_0x450a05){if(_0x450a05){if(_0x17347d[_0xa4cb('0x5a')][_0xa4cb('0x6c')]){_0x17108a[_0xa4cb('0x27')]['interface']=util[_0xa4cb('0x60')](_0xa4cb('0x6d'),_0x17347d['user'][_0xa4cb('0x39')]);_0x17108a[_0xa4cb('0x27')][_0xa4cb('0x6e')]=_0x17108a[_0xa4cb('0x6e')];_0x17108a[_0xa4cb('0x27')][_0xa4cb('0x6f')]=_0xa4cb('0x70');return respondWithRpcPromise(_0xa4cb('0x71'),_0xa4cb('0x71'),{'event':_0xa4cb('0x72'),'message':_[_0xa4cb('0x4f')](_0x17108a[_0xa4cb('0x27')],JSON[_0xa4cb('0x73')](_0x17108a['interaction'][_0xa4cb('0x74')]))},client9002)[_0xa4cb('0x1e')](function(){return _0x17108a;});}return _0x17108a;}return null;})[_0xa4cb('0x1e')](respondWithResult(_0x57440a,null))[_0xa4cb('0x29')](handleError(_0x57440a,null));};var interaction_log=require('../../config/logger')(_0xa4cb('0x5c'));exports[_0xa4cb('0x34')]=function(_0x36ae37,_0x543232,_0x2ff2d1){var _0x5d737c={'agent':{},'channel':_0xa4cb('0x5d')};if(_0x36ae37['body']['id']){delete _0x36ae37[_0xa4cb('0x5a')]['id'];}_0x36ae37[_0xa4cb('0x5a')][_0xa4cb('0x63')]=_0x36ae37['body']['UserId']||_0x36ae37['user']['id'];_0x5d737c[_0xa4cb('0x75')]['id']=_0x36ae37[_0xa4cb('0x5a')][_0xa4cb('0x63')];return db[_0xa4cb('0x3b')][_0xa4cb('0x58')]({'where':{'id':_0x36ae37[_0xa4cb('0x56')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x543232,null))[_0xa4cb('0x1e')](function(_0x32cced){if(_0x32cced){_0x5d737c['message']=_0x32cced['get']({'plain':!![]});return db[_0xa4cb('0x76')][_0xa4cb('0x58')]({'where':{'id':_0x32cced[_0xa4cb('0x62')]}});}return null;})[_0xa4cb('0x1e')](handleEntityNotFound(_0x543232,null))[_0xa4cb('0x1e')](function(_0x5135ca){if(_0x5135ca){_0x5d737c[_0xa4cb('0x68')]=_0x5135ca[_0xa4cb('0x77')]({'plain':!![]});interaction_log[_0xa4cb('0x1f')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x36ae37[_0xa4cb('0x66')]['id'],_0x36ae37[_0xa4cb('0x66')][_0xa4cb('0x39')],_0x36ae37[_0xa4cb('0x66')]['role'],_0x5d737c[_0xa4cb('0x68')]['id'],_0x36ae37[_0xa4cb('0x5a')]?JSON['stringify'](_0x36ae37[_0xa4cb('0x5a')]):_0xa4cb('0x69'));return respondWithRpcPromise('RejectMessage',_0xa4cb('0x78'),_0x5d737c);}return null;})['then'](function(_0x2b833b){if(_0x2b833b){_0x2b833b[_0xa4cb('0x27')][_0xa4cb('0x79')]=util[_0xa4cb('0x60')](_0xa4cb('0x6d'),_0x36ae37[_0xa4cb('0x66')]['name']);_0x2b833b[_0xa4cb('0x27')]['channel']=_0x5d737c[_0xa4cb('0x6e')];_0x2b833b['message'][_0xa4cb('0x6f')]=_0xa4cb('0x34');respondWithRpcPromise('EventManager',_0xa4cb('0x71'),{'event':_0xa4cb('0x7a'),'message':_0x2b833b[_0xa4cb('0x27')]},client9002);return _0x5d737c;}return null;})['then'](respondWithResult(_0x543232,null))['catch'](handleError(_0x543232,null));};
\ No newline at end of file
+var _0x44ce=['event','EventManager','acceptmessage','parse','chat-interactions','agent','[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','interface','SIP/%s','reject','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','./chatMessage.socket','register','jayson/promise','client','http','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','end','json','count','offset','Content-Range','apply','save','update','destroy','status','sendStatus','stack','name','send','index','ChatMessage','rawAttributes','query','dateStart','dateEnd','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','day','merge','filter','map','includeAll','include','findAll','rows','options','find','catch','create','body','params','describe','../../config/logger','accept','chat','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','ChatInteraction','ChatInteractionId','isNil','get','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','stringify','null','acceptMessage','manual','channel'];(function(_0xf87f3,_0x316f37){var _0x58af43=function(_0x5408b3){while(--_0x5408b3){_0xf87f3['push'](_0xf87f3['shift']());}};_0x58af43(++_0x316f37);}(_0x44ce,0x1ec));var _0xe44c=function(_0x32ce5e,_0x5445f2){_0x32ce5e=_0x32ce5e-0x0;var _0x179853=_0x44ce[_0x32ce5e];return _0x179853;};'use strict';var pdf=require(_0xe44c('0x0'));var emlformat=require(_0xe44c('0x1'));var rimraf=require(_0xe44c('0x2'));var zipdir=require(_0xe44c('0x3'));var jsonpatch=require(_0xe44c('0x4'));var rp=require('request-promise');var moment=require(_0xe44c('0x5'));var BPromise=require(_0xe44c('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0xe44c('0x7'));var sox=require(_0xe44c('0x8'));var csv=require(_0xe44c('0x9'));var ejs=require(_0xe44c('0xa'));var fs=require('fs');var _=require(_0xe44c('0xb'));var squel=require('squel');var crypto=require(_0xe44c('0xc'));var jsforce=require(_0xe44c('0xd'));var deskjs=require(_0xe44c('0xe'));var toCsv=require(_0xe44c('0x9'));var querystring=require(_0xe44c('0xf'));var Papa=require('papaparse');var Redis=require(_0xe44c('0x10'));var qs=require(_0xe44c('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xe44c('0x12'));var config=require(_0xe44c('0x13'));var db=require(_0xe44c('0x14'))['db'];config[_0xe44c('0x15')]=_['defaults'](config[_0xe44c('0x15')],{'host':_0xe44c('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xe44c('0x17'))[_0xe44c('0x18')](socket);var jayson=require(_0xe44c('0x19'));var client=jayson[_0xe44c('0x1a')][_0xe44c('0x1b')]({'port':0x232c});var client9002=jayson[_0xe44c('0x1a')][_0xe44c('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x43ff68,_0x4c33fa,_0x39b39c,_0x25f03a){return new BPromise(function(_0x185317,_0x3b8411){var _0x21c14a=_0x25f03a||client;return _0x21c14a[_0xe44c('0x1c')](_0x43ff68,_0x39b39c)[_0xe44c('0x1d')](function(_0x168598){logger[_0xe44c('0x1e')](_0xe44c('0x1f'),_0x4c33fa,_0xe44c('0x20'));logger[_0xe44c('0x21')](_0xe44c('0x22'),_0x4c33fa,_0xe44c('0x20'),JSON['stringify'](_0x168598));if(_0x168598[_0xe44c('0x23')]){if(_0x168598[_0xe44c('0x23')][_0xe44c('0x24')]===0x1f4){logger['error']('ChatMessage,\x20%s,\x20%s',_0x4c33fa,_0x168598[_0xe44c('0x23')][_0xe44c('0x25')]);return _0x3b8411(_0x168598[_0xe44c('0x23')][_0xe44c('0x25')]);}logger['error'](_0xe44c('0x1f'),_0x4c33fa,_0x168598[_0xe44c('0x23')][_0xe44c('0x25')]);return _0x185317(_0x168598[_0xe44c('0x23')]['message']);}else{logger[_0xe44c('0x1e')](_0xe44c('0x1f'),_0x4c33fa,_0xe44c('0x20'));_0x185317(_0x168598[_0xe44c('0x26')]['message']);}})['catch'](function(_0xa57284){logger['error']('ChatMessage,\x20%s,\x20%s',_0x4c33fa,_0xa57284);_0x3b8411(_0xa57284);});});}function respondWithStatusCode(_0x260eb8,_0x4b3d9e){_0x4b3d9e=_0x4b3d9e||0xcc;return function(_0x231840){if(_0x231840){return _0x260eb8['sendStatus'](_0x4b3d9e);}return _0x260eb8['status'](_0x4b3d9e)[_0xe44c('0x27')]();};}function respondWithResult(_0x1a0fa4,_0x4e5838){_0x4e5838=_0x4e5838||0xc8;return function(_0x307f40){if(_0x307f40){return _0x1a0fa4['status'](_0x4e5838)[_0xe44c('0x28')](_0x307f40);}};}function respondWithFilteredResult(_0x130ba9,_0x3fbded){return function(_0x239246){if(_0x239246){var _0x2aee29=_0x239246[_0xe44c('0x29')],_0x42a022=_0x3fbded[_0xe44c('0x2a')],_0x25290a=_0x3fbded[_0xe44c('0x2a')]+_0x3fbded['limit'],_0x3b0408;if(_0x25290a>=_0x2aee29){_0x25290a=_0x2aee29;_0x3b0408=0xc8;}else{_0x3b0408=0xce;}_0x130ba9['status'](_0x3b0408);return _0x130ba9['set'](_0xe44c('0x2b'),_0x42a022+'-'+_0x25290a+'/'+_0x2aee29)[_0xe44c('0x28')](_0x239246);}return null;};}function patchUpdates(_0x27b476){return function(_0x368048){try{jsonpatch[_0xe44c('0x2c')](_0x368048,_0x27b476,!![]);}catch(_0x580b8b){return BPromise['reject'](_0x580b8b);}return _0x368048[_0xe44c('0x2d')]();};}function saveUpdates(_0x469c1d,_0x2a54e0){return function(_0x5037c7){if(_0x5037c7){return _0x5037c7[_0xe44c('0x2e')](_0x469c1d)[_0xe44c('0x1d')](function(_0xad504){return _0xad504;});}return null;};}function removeEntity(_0xf913ff,_0x384447){return function(_0x1265a3){if(_0x1265a3){return _0x1265a3[_0xe44c('0x2f')]()['then'](function(){_0xf913ff[_0xe44c('0x30')](0xcc)[_0xe44c('0x27')]();});}};}function handleEntityNotFound(_0x690f34,_0x316023){return function(_0x4291c0){if(!_0x4291c0){_0x690f34[_0xe44c('0x31')](0x194);}return _0x4291c0;};}function handleError(_0x45c7af,_0x11e87b){_0x11e87b=_0x11e87b||0x1f4;return function(_0x483991){logger[_0xe44c('0x23')](_0x483991[_0xe44c('0x32')]);if(_0x483991[_0xe44c('0x33')]){delete _0x483991[_0xe44c('0x33')];}_0x45c7af[_0xe44c('0x30')](_0x11e87b)[_0xe44c('0x34')](_0x483991);};}exports[_0xe44c('0x35')]=function(_0x4b45be,_0x358a27){var _0x57df40={},_0x187e15={},_0x4bd3ad={'count':0x0,'rows':[]};var _0x3f8ae0=db[_0xe44c('0x36')][_0xe44c('0x37')];_0x187e15['model']=_['keys'](_0x3f8ae0);var _0x19efb0={'dateStart':_0x4b45be[_0xe44c('0x38')][_0xe44c('0x39')],'dateEnd':_0x4b45be[_0xe44c('0x38')]['dateEnd']};delete _0x4b45be['query'][_0xe44c('0x39')];delete _0x4b45be[_0xe44c('0x38')][_0xe44c('0x3a')];_0x187e15[_0xe44c('0x38')]=_[_0xe44c('0x3b')](_0x4b45be[_0xe44c('0x38')]);_0x187e15[_0xe44c('0x3c')]=_['intersection'](_0x187e15[_0xe44c('0x3d')],_0x187e15['query']);_0x57df40['attributes']=_[_0xe44c('0x3e')](_0x187e15[_0xe44c('0x3d')],qs[_0xe44c('0x3f')](_0x4b45be['query'][_0xe44c('0x3f')]));_0x57df40[_0xe44c('0x40')]=_0x57df40[_0xe44c('0x40')][_0xe44c('0x41')]?_0x57df40[_0xe44c('0x40')]:_0x187e15['model'];if(!_0x4b45be[_0xe44c('0x38')][_0xe44c('0x42')](_0xe44c('0x43'))){_0x57df40[_0xe44c('0x44')]=qs['limit'](_0x4b45be[_0xe44c('0x38')]['limit']);_0x57df40['offset']=qs[_0xe44c('0x2a')](_0x4b45be[_0xe44c('0x38')][_0xe44c('0x2a')]);}_0x57df40[_0xe44c('0x45')]=qs['sort'](_0x4b45be[_0xe44c('0x38')][_0xe44c('0x46')]);_0x57df40[_0xe44c('0x47')]=qs[_0xe44c('0x3c')](_[_0xe44c('0x48')](_0x4b45be[_0xe44c('0x38')],_0x187e15[_0xe44c('0x3c')]));if(_0x19efb0[_0xe44c('0x39')]){if(_0x19efb0[_0xe44c('0x3a')]){_0x19efb0['dateEnd']=moment(_0x19efb0[_0xe44c('0x3a')])['add'](0x1,_0xe44c('0x49'));}else{_0x19efb0[_0xe44c('0x3a')]=moment(_0x19efb0['dateStart'])['add'](0x1,_0xe44c('0x49'));}_[_0xe44c('0x4a')](_0x57df40['where'],{'createdAt':{'$gte':_0x19efb0[_0xe44c('0x39')],'$lte':_0x19efb0[_0xe44c('0x3a')]}});}if(_0x4b45be[_0xe44c('0x38')][_0xe44c('0x4b')]){_0x57df40['where']=_[_0xe44c('0x4a')](_0x57df40[_0xe44c('0x47')],{'$or':_[_0xe44c('0x4c')](_0x57df40[_0xe44c('0x40')],function(_0x4ad876){var _0x1ecd34={};_0x1ecd34[_0x4ad876]={'$like':'%'+_0x4b45be[_0xe44c('0x38')][_0xe44c('0x4b')]+'%'};return _0x1ecd34;})});}_0x57df40=_['merge']({},_0x57df40,_0x4b45be['options']);var _0x37e3ee={'where':_0x57df40['where']};return db[_0xe44c('0x36')][_0xe44c('0x29')](_0x37e3ee)[_0xe44c('0x1d')](function(_0x5c19d9){_0x4bd3ad[_0xe44c('0x29')]=_0x5c19d9;if(_0x4b45be[_0xe44c('0x38')][_0xe44c('0x4d')]){_0x57df40[_0xe44c('0x4e')]=[{'all':!![]}];}return db[_0xe44c('0x36')][_0xe44c('0x4f')](_0x57df40);})['then'](function(_0x5133ad){_0x4bd3ad[_0xe44c('0x50')]=_0x5133ad;return _0x4bd3ad;})[_0xe44c('0x1d')](respondWithFilteredResult(_0x358a27,_0x57df40))['catch'](handleError(_0x358a27,null));};exports['show']=function(_0x3961b8,_0x332520){var _0x3eace7={'raw':!![],'where':{'id':_0x3961b8['params']['id']}},_0x517fa7={};_0x517fa7[_0xe44c('0x3d')]=_[_0xe44c('0x3b')](db[_0xe44c('0x36')][_0xe44c('0x37')]);_0x517fa7[_0xe44c('0x38')]=_[_0xe44c('0x3b')](_0x3961b8[_0xe44c('0x38')]);_0x517fa7[_0xe44c('0x3c')]=_[_0xe44c('0x3e')](_0x517fa7['model'],_0x517fa7[_0xe44c('0x38')]);_0x3eace7[_0xe44c('0x40')]=_[_0xe44c('0x3e')](_0x517fa7[_0xe44c('0x3d')],qs[_0xe44c('0x3f')](_0x3961b8[_0xe44c('0x38')][_0xe44c('0x3f')]));_0x3eace7[_0xe44c('0x40')]=_0x3eace7[_0xe44c('0x40')][_0xe44c('0x41')]?_0x3eace7[_0xe44c('0x40')]:_0x517fa7['model'];if(_0x3961b8[_0xe44c('0x38')][_0xe44c('0x4d')]){_0x3eace7[_0xe44c('0x4e')]=[{'all':!![]}];}_0x3eace7=_['merge']({},_0x3eace7,_0x3961b8[_0xe44c('0x51')]);return db[_0xe44c('0x36')][_0xe44c('0x52')](_0x3eace7)[_0xe44c('0x1d')](handleEntityNotFound(_0x332520,null))['then'](respondWithResult(_0x332520,null))[_0xe44c('0x53')](handleError(_0x332520,null));};exports[_0xe44c('0x54')]=function(_0x32fa43,_0x5ac7c2){return db[_0xe44c('0x36')][_0xe44c('0x54')](_0x32fa43[_0xe44c('0x55')],{})[_0xe44c('0x1d')](respondWithResult(_0x5ac7c2,0xc9))[_0xe44c('0x53')](handleError(_0x5ac7c2,null));};exports['update']=function(_0x9344cc,_0xb88292){if(_0x9344cc['body']['id']){delete _0x9344cc[_0xe44c('0x55')]['id'];}return db[_0xe44c('0x36')][_0xe44c('0x52')]({'where':{'id':_0x9344cc[_0xe44c('0x56')]['id']}})['then'](handleEntityNotFound(_0xb88292,null))['then'](saveUpdates(_0x9344cc[_0xe44c('0x55')],null))[_0xe44c('0x1d')](respondWithResult(_0xb88292,null))[_0xe44c('0x53')](handleError(_0xb88292,null));};exports[_0xe44c('0x2f')]=function(_0x14d927,_0x46fb67){return db[_0xe44c('0x36')][_0xe44c('0x52')]({'where':{'id':_0x14d927['params']['id']}})[_0xe44c('0x1d')](handleEntityNotFound(_0x46fb67,null))[_0xe44c('0x1d')](removeEntity(_0x46fb67,null))[_0xe44c('0x53')](handleError(_0x46fb67,null));};exports[_0xe44c('0x57')]=function(_0x28d6a4,_0x4bc0ed){return db[_0xe44c('0x36')][_0xe44c('0x57')]()[_0xe44c('0x1d')](respondWithResult(_0x4bc0ed,null))[_0xe44c('0x53')](handleError(_0x4bc0ed,null));};var interaction_log=require(_0xe44c('0x58'))('chat-interactions');exports[_0xe44c('0x59')]=function(_0x3165df,_0x140fbf,_0x512fe8){var _0x53fa98={'channel':_0xe44c('0x5a')};if(_0x3165df['body']['id']){delete _0x3165df[_0xe44c('0x55')]['id'];}_0x3165df[_0xe44c('0x55')]['read']=!![];_0x3165df[_0xe44c('0x55')]['readAt']=moment()[_0xe44c('0x5b')](_0xe44c('0x5c'));_0x3165df[_0xe44c('0x55')]['UserId']=_0x3165df['body'][_0xe44c('0x5d')]||_0x3165df[_0xe44c('0x5e')]['id'];return db[_0xe44c('0x36')][_0xe44c('0x52')]({'where':{'id':_0x3165df[_0xe44c('0x56')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xe44c('0x5f')}]})[_0xe44c('0x1d')](handleEntityNotFound(_0x140fbf,null))[_0xe44c('0x1d')](saveUpdates(_0x3165df[_0xe44c('0x55')],null))[_0xe44c('0x1d')](function(_0x3058b2){if(_0x3058b2){_0x53fa98['message']=_0x3058b2['get']({'plain':!![]});return db[_0xe44c('0x60')][_0xe44c('0x52')]({'where':{'id':_0x3058b2[_0xe44c('0x61')]}});}return null;})[_0xe44c('0x1d')](handleEntityNotFound(_0x140fbf,null))[_0xe44c('0x1d')](function(_0x55a1a2){if(_0x55a1a2){return _0x55a1a2[_0xe44c('0x2e')]({'UserId':_0x3165df['body'][_0xe44c('0x5d')],'read1stAt':_[_0xe44c('0x62')](_0x55a1a2['read1stAt'])?moment()['format'](_0xe44c('0x5c')):undefined});}return null;})[_0xe44c('0x1d')](function(_0x3c0137){if(_0x3c0137){_0x53fa98['interaction']=_0x3c0137[_0xe44c('0x63')]({'plain':!![]});interaction_log[_0xe44c('0x1e')](_0xe44c('0x64'),_0x3165df['user']['id'],_0x3165df[_0xe44c('0x5e')][_0xe44c('0x33')],_0x3165df[_0xe44c('0x5e')][_0xe44c('0x65')],_0x53fa98[_0xe44c('0x66')]['id'],_0x3165df['body']?JSON[_0xe44c('0x67')](_0x3165df[_0xe44c('0x55')]):_0xe44c('0x68'));return respondWithRpcPromise('AcceptMessage',_0xe44c('0x69'),_0x53fa98);}return null;})[_0xe44c('0x1d')](function(_0x4f409c){if(_0x4f409c){if(_0x3165df['body'][_0xe44c('0x6a')]){_0x53fa98['message']['interface']=util[_0xe44c('0x5b')]('SIP/%s',_0x3165df[_0xe44c('0x5e')][_0xe44c('0x33')]);_0x53fa98[_0xe44c('0x25')][_0xe44c('0x6b')]=_0x53fa98[_0xe44c('0x6b')];_0x53fa98['message'][_0xe44c('0x6c')]='accept';return respondWithRpcPromise(_0xe44c('0x6d'),'EventManager',{'event':_0xe44c('0x6e'),'message':_[_0xe44c('0x4a')](_0x53fa98['message'],JSON[_0xe44c('0x6f')](_0x53fa98[_0xe44c('0x66')]['formData']))},client9002)[_0xe44c('0x1d')](function(){return _0x53fa98;});}return _0x53fa98;}return null;})[_0xe44c('0x1d')](respondWithResult(_0x140fbf,null))[_0xe44c('0x53')](handleError(_0x140fbf,null));};var interaction_log=require(_0xe44c('0x58'))(_0xe44c('0x70'));exports['reject']=function(_0x4b670f,_0x3cc3e2,_0x4ca0d7){var _0x12ff21={'agent':{},'channel':_0xe44c('0x5a')};if(_0x4b670f[_0xe44c('0x55')]['id']){delete _0x4b670f[_0xe44c('0x55')]['id'];}_0x4b670f[_0xe44c('0x55')][_0xe44c('0x5d')]=_0x4b670f[_0xe44c('0x55')][_0xe44c('0x5d')]||_0x4b670f[_0xe44c('0x5e')]['id'];_0x12ff21[_0xe44c('0x71')]['id']=_0x4b670f[_0xe44c('0x55')][_0xe44c('0x5d')];return db[_0xe44c('0x36')][_0xe44c('0x52')]({'where':{'id':_0x4b670f[_0xe44c('0x56')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x3cc3e2,null))['then'](function(_0x28235e){if(_0x28235e){_0x12ff21[_0xe44c('0x25')]=_0x28235e[_0xe44c('0x63')]({'plain':!![]});return db[_0xe44c('0x60')]['find']({'where':{'id':_0x28235e['ChatInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x3cc3e2,null))['then'](function(_0x3cc0a8){if(_0x3cc0a8){_0x12ff21['interaction']=_0x3cc0a8[_0xe44c('0x63')]({'plain':!![]});interaction_log[_0xe44c('0x1e')](_0xe44c('0x72'),_0x4b670f[_0xe44c('0x5e')]['id'],_0x4b670f['user']['name'],_0x4b670f[_0xe44c('0x5e')][_0xe44c('0x65')],_0x12ff21[_0xe44c('0x66')]['id'],_0x4b670f['body']?JSON[_0xe44c('0x67')](_0x4b670f[_0xe44c('0x55')]):'null');return respondWithRpcPromise('RejectMessage',_0xe44c('0x73'),_0x12ff21);}return null;})['then'](function(_0x5bc748){if(_0x5bc748){_0x5bc748['message'][_0xe44c('0x74')]=util[_0xe44c('0x5b')](_0xe44c('0x75'),_0x4b670f[_0xe44c('0x5e')]['name']);_0x5bc748[_0xe44c('0x25')][_0xe44c('0x6b')]=_0x12ff21[_0xe44c('0x6b')];_0x5bc748[_0xe44c('0x25')]['event']=_0xe44c('0x76');respondWithRpcPromise(_0xe44c('0x6d'),_0xe44c('0x6d'),{'event':_0xe44c('0x77'),'message':_0x5bc748['message']},client9002);return _0x12ff21;}return null;})[_0xe44c('0x1d')](respondWithResult(_0x3cc3e2,null))['catch'](handleError(_0x3cc3e2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x846f=['hasOwnProperty','hook','exports','events','ChatMessage','setMaxListeners','save','remove','emit'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x846f,0x93));var _0xf846=function(_0x17c6b1,_0x4f8975){_0x17c6b1=_0x17c6b1-0x0;var _0x24b4a5=_0x846f[_0x17c6b1];return _0x24b4a5;};'use strict';var EventEmitter=require(_0xf846('0x0'));var ChatMessage=require('../../mysqldb')['db'][_0xf846('0x1')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0xf846('0x2')](0x0);var events={'afterCreate':_0xf846('0x3'),'afterUpdate':'update','afterDestroy':_0xf846('0x4')};function emitEvent(_0xf6dcb3){return function(_0xe95642,_0xbee8e3,_0x92872e){ChatMessageEvents['emit'](_0xf6dcb3+':'+_0xe95642['id'],_0xe95642);ChatMessageEvents[_0xf846('0x5')](_0xf6dcb3,_0xe95642);_0x92872e(null);};}for(var e in events){if(events[_0xf846('0x6')](e)){var event=events[e];ChatMessage[_0xf846('0x7')](e,emitEvent(event));}}module[_0xf846('0x8')]=ChatMessageEvents;
\ No newline at end of file
+var _0xff12=['events','../../mysqldb','update','remove','emit','hasOwnProperty','exports'];(function(_0x1fe7e4,_0x5d39a4){var _0x4b3e54=function(_0x39fdf1){while(--_0x39fdf1){_0x1fe7e4['push'](_0x1fe7e4['shift']());}};_0x4b3e54(++_0x5d39a4);}(_0xff12,0xa8));var _0x2ff1=function(_0x58b7a5,_0x3e042d){_0x58b7a5=_0x58b7a5-0x0;var _0x31c9db=_0xff12[_0x58b7a5];return _0x31c9db;};'use strict';var EventEmitter=require(_0x2ff1('0x0'));var ChatMessage=require(_0x2ff1('0x1'))['db']['ChatMessage'];var ChatMessageEvents=new EventEmitter();ChatMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x2ff1('0x2'),'afterDestroy':_0x2ff1('0x3')};function emitEvent(_0x141d2c){return function(_0x4d658b,_0x48a8d0,_0x24840b){ChatMessageEvents[_0x2ff1('0x4')](_0x141d2c+':'+_0x4d658b['id'],_0x4d658b);ChatMessageEvents['emit'](_0x141d2c,_0x4d658b);_0x24840b(null);};}for(var e in events){if(events[_0x2ff1('0x5')](e)){var event=events[e];ChatMessage['hook'](e,emitEvent(event));}}module[_0x2ff1('0x6')]=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc429=['utf8mb4_unicode_ci','lodash','../../config/logger','bluebird','request-promise','./chatMessage.attributes','exports','ChatMessage','chat_messages','models','get','direction','toLowerCase','secret','UserId','ChatInteraction','ChatInteractionId','then','createdAt','catch','utf8mb4'];(function(_0x34bc30,_0x177cb0){var _0x5706de=function(_0x535a8c){while(--_0x535a8c){_0x34bc30['push'](_0x34bc30['shift']());}};_0x5706de(++_0x177cb0);}(_0xc429,0x1ba));var _0x9c42=function(_0xf2628e,_0x521bf7){_0xf2628e=_0xf2628e-0x0;var _0x13863a=_0xc429[_0xf2628e];return _0x13863a;};'use strict';var _=require(_0x9c42('0x0'));var util=require('util');var logger=require(_0x9c42('0x1'))('api');var moment=require('moment');var BPromise=require(_0x9c42('0x2'));var rp=require(_0x9c42('0x3'));var attributes=require(_0x9c42('0x4'));module[_0x9c42('0x5')]=function(_0x71ac80,_0x59d1c9){return _0x71ac80['define'](_0x9c42('0x6'),attributes,{'tableName':_0x9c42('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0xc663bb,_0x36c7e0,_0xcf40c2){var _0x28d46e=_0x71ac80[_0x9c42('0x8')];var _0x4c68a1=_0xc663bb[_0x9c42('0x9')]({'plain':!![]});if(_0x4c68a1[_0x9c42('0xa')][_0x9c42('0xb')]()==='in'||_0x4c68a1['direction'][_0x9c42('0xb')]()==='out'&&!_0x4c68a1[_0x9c42('0xc')]&&!_['isNil'](_0x4c68a1[_0x9c42('0xd')])){_0x28d46e[_0x9c42('0xe')]['findOne']({'where':{'id':_0x4c68a1[_0x9c42('0xf')]}})[_0x9c42('0x10')](function(_0x2979ce){if(_0x2979ce){_0x2979ce['update']({'lastMsgAt':_0x4c68a1[_0x9c42('0x11')],'lastMsgDirection':_0x4c68a1[_0x9c42('0xa')][_0x9c42('0xb')](),'lastMsgBody':_0x4c68a1['body']});}})[_0x9c42('0x12')](function(_0x5c0f0c){console['error'](_0x5c0f0c);});}_0xcf40c2();}},'charset':_0x9c42('0x13'),'collate':_0x9c42('0x14')});};
\ No newline at end of file
+var _0xcfc8=['error','utf8mb4','lodash','util','api','moment','bluebird','exports','define','chat_messages','models','get','direction','toLowerCase','out','isNil','UserId','ChatInteraction','findOne','ChatInteractionId','then','createdAt','body'];(function(_0xcb19ee,_0x291c41){var _0x243e4c=function(_0x3c8712){while(--_0x3c8712){_0xcb19ee['push'](_0xcb19ee['shift']());}};_0x243e4c(++_0x291c41);}(_0xcfc8,0x172));var _0x8cfc=function(_0xba45ef,_0x5e4065){_0xba45ef=_0xba45ef-0x0;var _0x2a03a4=_0xcfc8[_0xba45ef];return _0x2a03a4;};'use strict';var _=require(_0x8cfc('0x0'));var util=require(_0x8cfc('0x1'));var logger=require('../../config/logger')(_0x8cfc('0x2'));var moment=require(_0x8cfc('0x3'));var BPromise=require(_0x8cfc('0x4'));var rp=require('request-promise');var attributes=require('./chatMessage.attributes');module[_0x8cfc('0x5')]=function(_0x3dcff6,_0x586169){return _0x3dcff6[_0x8cfc('0x6')]('ChatMessage',attributes,{'tableName':_0x8cfc('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2f354c,_0x496fff,_0x49e875){var _0x3be4e5=_0x3dcff6[_0x8cfc('0x8')];var _0xd8dd0a=_0x2f354c[_0x8cfc('0x9')]({'plain':!![]});if(_0xd8dd0a[_0x8cfc('0xa')][_0x8cfc('0xb')]()==='in'||_0xd8dd0a['direction']['toLowerCase']()===_0x8cfc('0xc')&&!_0xd8dd0a['secret']&&!_[_0x8cfc('0xd')](_0xd8dd0a[_0x8cfc('0xe')])){_0x3be4e5[_0x8cfc('0xf')][_0x8cfc('0x10')]({'where':{'id':_0xd8dd0a[_0x8cfc('0x11')]}})[_0x8cfc('0x12')](function(_0x52cfb2){if(_0x52cfb2){_0x52cfb2['update']({'lastMsgAt':_0xd8dd0a[_0x8cfc('0x13')],'lastMsgDirection':_0xd8dd0a[_0x8cfc('0xa')][_0x8cfc('0xb')](),'lastMsgBody':_0xd8dd0a[_0x8cfc('0x14')]});}})['catch'](function(_0x54248b){console[_0x8cfc('0x15')](_0x54248b);});}_0x49e875();}},'charset':_0x8cfc('0x16'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x444a=['redis','defaults','localhost','./chatMessage.socket','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','code','error','message','catch','ChatMessage','create','body','options','raw','CreateChatMessage','debug','stringify','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x444a,0x170));var _0xa444=function(_0x20dd9b,_0x3c0fb8){_0x20dd9b=_0x20dd9b-0x0;var _0x2de3b0=_0x444a[_0x20dd9b];return _0x2de3b0;};'use strict';var _=require(_0xa444('0x0'));var util=require('util');var moment=require(_0xa444('0x1'));var BPromise=require(_0xa444('0x2'));var rs=require(_0xa444('0x3'));var fs=require('fs');var db=require(_0xa444('0x4'))['db'];var utils=require(_0xa444('0x5'));var logger=require(_0xa444('0x6'))('rpc');var config=require(_0xa444('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xa444('0x8')]['http']({'port':0x232a});config[_0xa444('0x9')]=_[_0xa444('0xa')](config[_0xa444('0x9')],{'host':_0xa444('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0xa444('0x9')]);require(_0xa444('0xc'))['register'](socket);function respondWithRpcPromise(_0x1e4332,_0x134883,_0x4b3937){return new BPromise(function(_0x4c1866,_0x346afa){return client['request'](_0x1e4332,_0x4b3937)[_0xa444('0xd')](function(_0x28ac38){logger[_0xa444('0xe')](_0xa444('0xf'),_0x134883,_0xa444('0x10'));logger['debug']('ChatMessage,\x20%s,\x20%s,\x20%s',_0x134883,_0xa444('0x10'),JSON['stringify'](_0x28ac38));if(_0x28ac38['error']){if(_0x28ac38['error'][_0xa444('0x11')]===0x1f4){logger['error'](_0xa444('0xf'),_0x134883,_0x28ac38[_0xa444('0x12')][_0xa444('0x13')]);return _0x346afa(_0x28ac38[_0xa444('0x12')][_0xa444('0x13')]);}logger[_0xa444('0x12')](_0xa444('0xf'),_0x134883,_0x28ac38[_0xa444('0x12')][_0xa444('0x13')]);return _0x4c1866(_0x28ac38[_0xa444('0x12')][_0xa444('0x13')]);}else{logger[_0xa444('0xe')](_0xa444('0xf'),_0x134883,_0xa444('0x10'));_0x4c1866(_0x28ac38['result'][_0xa444('0x13')]);}})[_0xa444('0x14')](function(_0x3876ce){logger[_0xa444('0x12')](_0xa444('0xf'),_0x134883,_0x3876ce);_0x346afa(_0x3876ce);});});}exports['CreateChatMessage']=function(_0xbedf3a){var _0x3fb8f2=this;return new Promise(function(_0x322eb8,_0x5b0eb3){return db[_0xa444('0x15')][_0xa444('0x16')](_0xbedf3a[_0xa444('0x17')],{'raw':_0xbedf3a[_0xa444('0x18')]?_0xbedf3a['options'][_0xa444('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x5ac090){logger[_0xa444('0xe')](_0xa444('0x1a'),_0xbedf3a);logger[_0xa444('0x1b')]('CreateChatMessage',_0xbedf3a,JSON[_0xa444('0x1c')](_0x5ac090));_0x322eb8(_0x5ac090);})[_0xa444('0x14')](function(_0x46a15c){logger[_0xa444('0x12')](_0xa444('0x1a'),_0x46a15c['message'],_0xbedf3a);_0x5b0eb3(_0x3fb8f2[_0xa444('0x12')](0x1f4,_0x46a15c[_0xa444('0x13')]));});});};
\ No newline at end of file
+var _0x661f=['then','CreateChatMessage','stringify','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','http','redis','defaults','localhost','socket.io-emitter','register','info','debug','ChatMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','ChatMessage,\x20%s,\x20%s','message','result','create','options','raw'];(function(_0x5b561d,_0x422b7c){var _0x431060=function(_0x401409){while(--_0x401409){_0x5b561d['push'](_0x5b561d['shift']());}};_0x431060(++_0x422b7c);}(_0x661f,0x19a));var _0xf661=function(_0x20ef64,_0x4a8fe9){_0x20ef64=_0x20ef64-0x0;var _0x3707d8=_0x661f[_0x20ef64];return _0x3707d8;};'use strict';var _=require('lodash');var util=require(_0xf661('0x0'));var moment=require(_0xf661('0x1'));var BPromise=require(_0xf661('0x2'));var rs=require(_0xf661('0x3'));var fs=require('fs');var Redis=require(_0xf661('0x4'));var db=require(_0xf661('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xf661('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0xf661('0x7')]({'port':0x232a});config[_0xf661('0x8')]=_[_0xf661('0x9')](config[_0xf661('0x8')],{'host':_0xf661('0xa'),'port':0x18eb});var socket=require(_0xf661('0xb'))(new Redis(config['redis']));require('./chatMessage.socket')[_0xf661('0xc')](socket);function respondWithRpcPromise(_0x51b912,_0x34ff46,_0x5abd1b){return new BPromise(function(_0x4f8166,_0x1c460b){return client['request'](_0x51b912,_0x5abd1b)['then'](function(_0x5d6b56){logger[_0xf661('0xd')]('ChatMessage,\x20%s,\x20%s',_0x34ff46,'request\x20sent');logger[_0xf661('0xe')](_0xf661('0xf'),_0x34ff46,_0xf661('0x10'),JSON['stringify'](_0x5d6b56));if(_0x5d6b56[_0xf661('0x11')]){if(_0x5d6b56[_0xf661('0x11')][_0xf661('0x12')]===0x1f4){logger[_0xf661('0x11')](_0xf661('0x13'),_0x34ff46,_0x5d6b56[_0xf661('0x11')]['message']);return _0x1c460b(_0x5d6b56[_0xf661('0x11')][_0xf661('0x14')]);}logger[_0xf661('0x11')](_0xf661('0x13'),_0x34ff46,_0x5d6b56[_0xf661('0x11')]['message']);return _0x4f8166(_0x5d6b56[_0xf661('0x11')]['message']);}else{logger[_0xf661('0xd')](_0xf661('0x13'),_0x34ff46,_0xf661('0x10'));_0x4f8166(_0x5d6b56[_0xf661('0x15')][_0xf661('0x14')]);}})['catch'](function(_0x3caed4){logger[_0xf661('0x11')](_0xf661('0x13'),_0x34ff46,_0x3caed4);_0x1c460b(_0x3caed4);});});}exports['CreateChatMessage']=function(_0x274e46){var _0xc3690=this;return new Promise(function(_0x2d2402,_0x3e358c){return db['ChatMessage'][_0xf661('0x16')](_0x274e46['body'],{'raw':_0x274e46[_0xf661('0x17')]?_0x274e46[_0xf661('0x17')][_0xf661('0x18')]===undefined?!![]:![]:!![]})[_0xf661('0x19')](function(_0x4cfd65){logger[_0xf661('0xd')](_0xf661('0x1a'),_0x274e46);logger[_0xf661('0xe')](_0xf661('0x1a'),_0x274e46,JSON[_0xf661('0x1b')](_0x4cfd65));_0x2d2402(_0x4cfd65);})[_0xf661('0x1c')](function(_0x3f712d){logger[_0xf661('0x11')](_0xf661('0x1a'),_0x3f712d['message'],_0x274e46);_0x3e358c(_0xc3690[_0xf661('0x11')](0x1f4,_0x3f712d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['./chatMessage.events','save','remove','update','emit','removeListener','register','chatMessage:'];(function(_0x439125,_0x4a44cf){var _0x109b78=function(_0x3e7770){while(--_0x3e7770){_0x439125['push'](_0x439125['shift']());}};_0x109b78(++_0x4a44cf);}(_0x008c,0x188));var _0xc008=function(_0x2e2292,_0x1891b8){_0x2e2292=_0x2e2292-0x0;var _0x4f77ab=_0x008c[_0x2e2292];return _0x4f77ab;};'use strict';var ChatMessageEvents=require(_0xc008('0x0'));var events=[_0xc008('0x1'),_0xc008('0x2'),_0xc008('0x3')];function createListener(_0x1d119a,_0x544fdf){return function(_0x3641af){_0x544fdf[_0xc008('0x4')](_0x1d119a,_0x3641af);};}function removeListener(_0x10b33c,_0x163bd9){return function(){ChatMessageEvents[_0xc008('0x5')](_0x10b33c,_0x163bd9);};}exports[_0xc008('0x6')]=function(_0x13aa7){for(var _0x39bb5e=0x0,_0x9c8cb2=events['length'];_0x39bb5e<_0x9c8cb2;_0x39bb5e++){var _0x428fa9=events[_0x39bb5e];var _0x5aa09b=createListener(_0xc008('0x7')+_0x428fa9,_0x13aa7);ChatMessageEvents['on'](_0x428fa9,_0x5aa09b);}};
\ No newline at end of file
+var _0x70e0=['chatMessage:','./chatMessage.events','save','remove','emit','removeListener'];(function(_0x2f944a,_0x2046d4){var _0x5562b9=function(_0x41f94a){while(--_0x41f94a){_0x2f944a['push'](_0x2f944a['shift']());}};_0x5562b9(++_0x2046d4);}(_0x70e0,0x17b));var _0x070e=function(_0x3447d9,_0x10a774){_0x3447d9=_0x3447d9-0x0;var _0x42832e=_0x70e0[_0x3447d9];return _0x42832e;};'use strict';var ChatMessageEvents=require(_0x070e('0x0'));var events=[_0x070e('0x1'),_0x070e('0x2'),'update'];function createListener(_0x579b83,_0x16e651){return function(_0xee173){_0x16e651[_0x070e('0x3')](_0x579b83,_0xee173);};}function removeListener(_0x2593e5,_0x5c90fc){return function(){ChatMessageEvents[_0x070e('0x4')](_0x2593e5,_0x5c90fc);};}exports['register']=function(_0x46fe68){for(var _0x4b041d=0x0,_0x56e420=events['length'];_0x4b041d<_0x56e420;_0x4b041d++){var _0x35ab0c=events[_0x4b041d];var _0x1e11f0=createListener(_0x070e('0x5')+_0x35ab0c,_0x46fe68);ChatMessageEvents['on'](_0x35ab0c,_0x1e11f0);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ae0=['./chatMessage.controller','get','isAuthenticated','/describe','describe','/:id','show','post','tracked','chat','chatmessage:create','create','update','put','/:id/accept','accept','reject','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x53b8b8,_0x5adc33){var _0x39f60e=function(_0x3d3bd8){while(--_0x3d3bd8){_0x53b8b8['push'](_0x53b8b8['shift']());}};_0x39f60e(++_0x5adc33);}(_0x9ae0,0xbb));var _0x09ae=function(_0xa6fbfe,_0x4ad76e){_0xa6fbfe=_0xa6fbfe-0x0;var _0x1e95e7=_0x9ae0[_0xa6fbfe];return _0x1e95e7;};'use strict';var multer=require(_0x09ae('0x0'));var util=require(_0x09ae('0x1'));var path=require(_0x09ae('0x2'));var timeout=require(_0x09ae('0x3'));var express=require(_0x09ae('0x4'));var router=express[_0x09ae('0x5')]();var auth=require(_0x09ae('0x6'));var interaction=require(_0x09ae('0x7'));var config=require(_0x09ae('0x8'));var controller=require(_0x09ae('0x9'));router[_0x09ae('0xa')]('/',auth[_0x09ae('0xb')](),controller['index']);router[_0x09ae('0xa')](_0x09ae('0xc'),auth[_0x09ae('0xb')](),controller[_0x09ae('0xd')]);router[_0x09ae('0xa')](_0x09ae('0xe'),auth['isAuthenticated'](),controller[_0x09ae('0xf')]);router[_0x09ae('0x10')]('/',auth[_0x09ae('0xb')](),interaction[_0x09ae('0x11')](_0x09ae('0x12'),_0x09ae('0x13')),controller[_0x09ae('0x14')]);router['put'](_0x09ae('0xe'),controller[_0x09ae('0x15')]);router[_0x09ae('0x16')](_0x09ae('0x17'),auth[_0x09ae('0xb')](),controller[_0x09ae('0x18')]);router[_0x09ae('0x16')]('/:id/reject',auth[_0x09ae('0xb')](),controller[_0x09ae('0x19')]);router[_0x09ae('0x1a')]('/:id',auth[_0x09ae('0xb')](),controller['destroy']);module[_0x09ae('0x1b')]=router;
\ No newline at end of file
+var _0xddf7=['reject','delete','/:id','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./chatMessage.controller','get','isAuthenticated','index','/describe','describe','show','post','tracked','create','put','update','/:id/accept','accept','/:id/reject'];(function(_0x2e97d5,_0x1ca37b){var _0x51a52e=function(_0x327c5c){while(--_0x327c5c){_0x2e97d5['push'](_0x2e97d5['shift']());}};_0x51a52e(++_0x1ca37b);}(_0xddf7,0x13c));var _0x7ddf=function(_0x14f946,_0x4fa7c6){_0x14f946=_0x14f946-0x0;var _0x344c47=_0xddf7[_0x14f946];return _0x344c47;};'use strict';var multer=require('multer');var util=require(_0x7ddf('0x0'));var path=require(_0x7ddf('0x1'));var timeout=require(_0x7ddf('0x2'));var express=require(_0x7ddf('0x3'));var router=express[_0x7ddf('0x4')]();var auth=require(_0x7ddf('0x5'));var interaction=require(_0x7ddf('0x6'));var config=require('../../config/environment');var controller=require(_0x7ddf('0x7'));router[_0x7ddf('0x8')]('/',auth[_0x7ddf('0x9')](),controller[_0x7ddf('0xa')]);router[_0x7ddf('0x8')](_0x7ddf('0xb'),auth['isAuthenticated'](),controller[_0x7ddf('0xc')]);router[_0x7ddf('0x8')]('/:id',auth[_0x7ddf('0x9')](),controller[_0x7ddf('0xd')]);router[_0x7ddf('0xe')]('/',auth['isAuthenticated'](),interaction[_0x7ddf('0xf')]('chat','chatmessage:create'),controller[_0x7ddf('0x10')]);router[_0x7ddf('0x11')]('/:id',controller[_0x7ddf('0x12')]);router[_0x7ddf('0x11')](_0x7ddf('0x13'),auth['isAuthenticated'](),controller[_0x7ddf('0x14')]);router['put'](_0x7ddf('0x15'),auth[_0x7ddf('0x9')](),controller[_0x7ddf('0x16')]);router[_0x7ddf('0x17')](_0x7ddf('0x18'),auth[_0x7ddf('0x9')](),controller['destroy']);module[_0x7ddf('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe48c=['exports','TEXT','medium','sequelize'];(function(_0x4214c2,_0x129781){var _0x2eea27=function(_0x258fe5){while(--_0x258fe5){_0x4214c2['push'](_0x4214c2['shift']());}};_0x2eea27(++_0x129781);}(_0xe48c,0x143));var _0xce48=function(_0xcf443e,_0x1a4a0e){_0xcf443e=_0xcf443e-0x0;var _0x5dcc17=_0xe48c[_0xcf443e];return _0x5dcc17;};'use strict';var Sequelize=require(_0xce48('0x0'));module[_0xce48('0x1')]={'body':{'type':Sequelize[_0xce48('0x2')](_0xce48('0x3')),'allowNull':![]}};
\ No newline at end of file
+var _0x2a1c=['medium','sequelize','TEXT'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x2a1c,0x12a));var _0xc2a1=function(_0x298ed3,_0x4ab5e1){_0x298ed3=_0x298ed3-0x0;var _0x5aad28=_0x2a1c[_0x298ed3];return _0x5aad28;};'use strict';var Sequelize=require(_0xc2a1('0x0'));module['exports']={'body':{'type':Sequelize[_0xc2a1('0x1')](_0xc2a1('0x2')),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfca6=['find','destroy','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','squel','crypto','jsforce','to-csv','papaparse','../../config/logger','api','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','sendStatus','error','name','send','index','ChatOfflineMessage','rawAttributes','model','keys','dateStart','query','dateEnd','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filters','add','day','merge','map','options','includeAll','findAll','rows','show','params','length','include','catch','create','update','body'];(function(_0xd75405,_0xacd743){var _0x47b529=function(_0x1b0870){while(--_0x1b0870){_0xd75405['push'](_0xd75405['shift']());}};_0x47b529(++_0xacd743);}(_0xfca6,0x8f));var _0x6fca=function(_0x467e51,_0x1aeca6){_0x467e51=_0x467e51-0x0;var _0x4b12b8=_0xfca6[_0x467e51];return _0x4b12b8;};'use strict';var pdf=require(_0x6fca('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6fca('0x1'));var zipdir=require(_0x6fca('0x2'));var jsonpatch=require(_0x6fca('0x3'));var rp=require(_0x6fca('0x4'));var moment=require(_0x6fca('0x5'));var BPromise=require(_0x6fca('0x6'));var Mustache=require('mustache');var util=require(_0x6fca('0x7'));var path=require(_0x6fca('0x8'));var sox=require(_0x6fca('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x6fca('0xa'));var crypto=require(_0x6fca('0xb'));var jsforce=require(_0x6fca('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x6fca('0xd'));var querystring=require('querystring');var Papa=require(_0x6fca('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x6fca('0xf'))(_0x6fca('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x6fca('0x11'))['db'];function respondWithStatusCode(_0xafa779,_0x2b70e3){_0x2b70e3=_0x2b70e3||0xcc;return function(_0x35e751){if(_0x35e751){return _0xafa779['sendStatus'](_0x2b70e3);}return _0xafa779[_0x6fca('0x12')](_0x2b70e3)[_0x6fca('0x13')]();};}function respondWithResult(_0xbab51e,_0x4d2ca1){_0x4d2ca1=_0x4d2ca1||0xc8;return function(_0x34162c){if(_0x34162c){return _0xbab51e[_0x6fca('0x12')](_0x4d2ca1)[_0x6fca('0x14')](_0x34162c);}};}function respondWithFilteredResult(_0x1f7c34,_0x406936){return function(_0x47be32){if(_0x47be32){var _0x50f66c=_0x47be32[_0x6fca('0x15')],_0x5a33d3=_0x406936[_0x6fca('0x16')],_0x481f87=_0x406936['offset']+_0x406936[_0x6fca('0x17')],_0x3a4036;if(_0x481f87>=_0x50f66c){_0x481f87=_0x50f66c;_0x3a4036=0xc8;}else{_0x3a4036=0xce;}_0x1f7c34['status'](_0x3a4036);return _0x1f7c34[_0x6fca('0x18')](_0x6fca('0x19'),_0x5a33d3+'-'+_0x481f87+'/'+_0x50f66c)[_0x6fca('0x14')](_0x47be32);}return null;};}function patchUpdates(_0x103f44){return function(_0x289016){try{jsonpatch[_0x6fca('0x1a')](_0x289016,_0x103f44,!![]);}catch(_0x38c8ff){return BPromise[_0x6fca('0x1b')](_0x38c8ff);}return _0x289016[_0x6fca('0x1c')]();};}function saveUpdates(_0x4f7986,_0x2360bb){return function(_0x10bbcb){if(_0x10bbcb){return _0x10bbcb['update'](_0x4f7986)[_0x6fca('0x1d')](function(_0x3aab24){return _0x3aab24;});}return null;};}function removeEntity(_0x1a4e86,_0x29786c){return function(_0x599bc5){if(_0x599bc5){return _0x599bc5['destroy']()['then'](function(){_0x1a4e86['status'](0xcc)[_0x6fca('0x13')]();});}};}function handleEntityNotFound(_0x22d26d,_0x527df1){return function(_0x7d2bd4){if(!_0x7d2bd4){_0x22d26d[_0x6fca('0x1e')](0x194);}return _0x7d2bd4;};}function handleError(_0x476061,_0x4ee4ee){_0x4ee4ee=_0x4ee4ee||0x1f4;return function(_0x3d9fc4){logger[_0x6fca('0x1f')](_0x3d9fc4['stack']);if(_0x3d9fc4[_0x6fca('0x20')]){delete _0x3d9fc4[_0x6fca('0x20')];}_0x476061['status'](_0x4ee4ee)[_0x6fca('0x21')](_0x3d9fc4);};}exports[_0x6fca('0x22')]=function(_0x4fd1a8,_0x3a9201){var _0x5f20e6={},_0x455cce={},_0x620c4={'count':0x0,'rows':[]};var _0x43c577=db[_0x6fca('0x23')][_0x6fca('0x24')];_0x455cce[_0x6fca('0x25')]=_[_0x6fca('0x26')](_0x43c577);var _0x2d09f7={'dateStart':_0x4fd1a8['query'][_0x6fca('0x27')],'dateEnd':_0x4fd1a8[_0x6fca('0x28')][_0x6fca('0x29')]};delete _0x4fd1a8[_0x6fca('0x28')][_0x6fca('0x27')];delete _0x4fd1a8[_0x6fca('0x28')][_0x6fca('0x29')];_0x455cce[_0x6fca('0x28')]=_[_0x6fca('0x26')](_0x4fd1a8[_0x6fca('0x28')]);_0x455cce['filters']=_[_0x6fca('0x2a')](_0x455cce['model'],_0x455cce[_0x6fca('0x28')]);_0x5f20e6['attributes']=_[_0x6fca('0x2a')](_0x455cce[_0x6fca('0x25')],qs['fields'](_0x4fd1a8['query'][_0x6fca('0x2b')]));_0x5f20e6[_0x6fca('0x2c')]=_0x5f20e6[_0x6fca('0x2c')]['length']?_0x5f20e6[_0x6fca('0x2c')]:_0x455cce[_0x6fca('0x25')];if(!_0x4fd1a8[_0x6fca('0x28')][_0x6fca('0x2d')](_0x6fca('0x2e'))){_0x5f20e6[_0x6fca('0x17')]=qs[_0x6fca('0x17')](_0x4fd1a8['query']['limit']);_0x5f20e6[_0x6fca('0x16')]=qs[_0x6fca('0x16')](_0x4fd1a8[_0x6fca('0x28')][_0x6fca('0x16')]);}_0x5f20e6['order']=qs['sort'](_0x4fd1a8[_0x6fca('0x28')][_0x6fca('0x2f')]);_0x5f20e6[_0x6fca('0x30')]=qs['filters'](_[_0x6fca('0x31')](_0x4fd1a8[_0x6fca('0x28')],_0x455cce[_0x6fca('0x32')]));if(_0x2d09f7[_0x6fca('0x27')]){if(_0x2d09f7[_0x6fca('0x29')]){_0x2d09f7[_0x6fca('0x29')]=moment(_0x2d09f7[_0x6fca('0x29')])[_0x6fca('0x33')](0x1,_0x6fca('0x34'));}else{_0x2d09f7[_0x6fca('0x29')]=moment(_0x2d09f7[_0x6fca('0x27')])[_0x6fca('0x33')](0x1,_0x6fca('0x34'));}_['merge'](_0x5f20e6[_0x6fca('0x30')],{'createdAt':{'$gte':_0x2d09f7['dateStart'],'$lte':_0x2d09f7[_0x6fca('0x29')]}});}if(_0x4fd1a8[_0x6fca('0x28')]['filter']){_0x5f20e6[_0x6fca('0x30')]=_[_0x6fca('0x35')](_0x5f20e6[_0x6fca('0x30')],{'$or':_[_0x6fca('0x36')](_0x5f20e6['attributes'],function(_0x161ad4){var _0x8a68cf={};_0x8a68cf[_0x161ad4]={'$like':'%'+_0x4fd1a8[_0x6fca('0x28')]['filter']+'%'};return _0x8a68cf;})});}_0x5f20e6=_[_0x6fca('0x35')]({},_0x5f20e6,_0x4fd1a8[_0x6fca('0x37')]);var _0xb3eb45={'where':_0x5f20e6[_0x6fca('0x30')]};return db[_0x6fca('0x23')]['count'](_0xb3eb45)[_0x6fca('0x1d')](function(_0x189e20){_0x620c4[_0x6fca('0x15')]=_0x189e20;if(_0x4fd1a8['query'][_0x6fca('0x38')]){_0x5f20e6['include']=[{'all':!![]}];}return db['ChatOfflineMessage'][_0x6fca('0x39')](_0x5f20e6);})['then'](function(_0x27d6d3){_0x620c4[_0x6fca('0x3a')]=_0x27d6d3;return _0x620c4;})[_0x6fca('0x1d')](respondWithFilteredResult(_0x3a9201,_0x5f20e6))['catch'](handleError(_0x3a9201,null));};exports[_0x6fca('0x3b')]=function(_0x274176,_0x336f0d){var _0x512ee2={'raw':!![],'where':{'id':_0x274176[_0x6fca('0x3c')]['id']}},_0x121210={};_0x121210[_0x6fca('0x25')]=_['keys'](db[_0x6fca('0x23')][_0x6fca('0x24')]);_0x121210['query']=_[_0x6fca('0x26')](_0x274176[_0x6fca('0x28')]);_0x121210[_0x6fca('0x32')]=_[_0x6fca('0x2a')](_0x121210[_0x6fca('0x25')],_0x121210[_0x6fca('0x28')]);_0x512ee2[_0x6fca('0x2c')]=_[_0x6fca('0x2a')](_0x121210[_0x6fca('0x25')],qs['fields'](_0x274176[_0x6fca('0x28')]['fields']));_0x512ee2[_0x6fca('0x2c')]=_0x512ee2['attributes'][_0x6fca('0x3d')]?_0x512ee2['attributes']:_0x121210[_0x6fca('0x25')];if(_0x274176[_0x6fca('0x28')][_0x6fca('0x38')]){_0x512ee2[_0x6fca('0x3e')]=[{'all':!![]}];}_0x512ee2=_[_0x6fca('0x35')]({},_0x512ee2,_0x274176['options']);return db[_0x6fca('0x23')]['find'](_0x512ee2)[_0x6fca('0x1d')](handleEntityNotFound(_0x336f0d,null))[_0x6fca('0x1d')](respondWithResult(_0x336f0d,null))[_0x6fca('0x3f')](handleError(_0x336f0d,null));};exports[_0x6fca('0x40')]=function(_0x2067a0,_0x439c8a){return db[_0x6fca('0x23')][_0x6fca('0x40')](_0x2067a0['body'],{})[_0x6fca('0x1d')](respondWithResult(_0x439c8a,0xc9))[_0x6fca('0x3f')](handleError(_0x439c8a,null));};exports[_0x6fca('0x41')]=function(_0x1ea2b8,_0x3089a3){if(_0x1ea2b8[_0x6fca('0x42')]['id']){delete _0x1ea2b8[_0x6fca('0x42')]['id'];}return db[_0x6fca('0x23')][_0x6fca('0x43')]({'where':{'id':_0x1ea2b8[_0x6fca('0x3c')]['id']}})[_0x6fca('0x1d')](handleEntityNotFound(_0x3089a3,null))[_0x6fca('0x1d')](saveUpdates(_0x1ea2b8[_0x6fca('0x42')],null))[_0x6fca('0x1d')](respondWithResult(_0x3089a3,null))[_0x6fca('0x3f')](handleError(_0x3089a3,null));};exports[_0x6fca('0x44')]=function(_0x36c8b9,_0x51b5a4){return db['ChatOfflineMessage'][_0x6fca('0x43')]({'where':{'id':_0x36c8b9[_0x6fca('0x3c')]['id']}})[_0x6fca('0x1d')](handleEntityNotFound(_0x51b5a4,null))['then'](removeEntity(_0x51b5a4,null))[_0x6fca('0x3f')](handleError(_0x51b5a4,null));};exports[_0x6fca('0x45')]=function(_0x23e837,_0x4f32e){return db['ChatOfflineMessage'][_0x6fca('0x45')]()['then'](respondWithResult(_0x4f32e,null))['catch'](handleError(_0x4f32e,null));};
\ No newline at end of file
+var _0x5831=['bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','set','Content-Range','apply','reject','then','error','stack','name','ChatOfflineMessage','rawAttributes','keys','query','dateEnd','dateStart','intersection','model','attributes','fields','length','nolimit','limit','order','sort','filters','add','day','merge','where','map','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0xfdb9a8,_0x353b9f){var _0x54c077=function(_0x548d96){while(--_0x548d96){_0xfdb9a8['push'](_0xfdb9a8['shift']());}};_0x54c077(++_0x353b9f);}(_0x5831,0x8c));var _0x1583=function(_0x110c3d,_0x12ee06){_0x110c3d=_0x110c3d-0x0;var _0x226d67=_0x5831[_0x110c3d];return _0x226d67;};'use strict';var pdf=require(_0x1583('0x0'));var emlformat=require(_0x1583('0x1'));var rimraf=require(_0x1583('0x2'));var zipdir=require(_0x1583('0x3'));var jsonpatch=require(_0x1583('0x4'));var rp=require(_0x1583('0x5'));var moment=require('moment');var BPromise=require(_0x1583('0x6'));var Mustache=require(_0x1583('0x7'));var util=require(_0x1583('0x8'));var path=require('path');var sox=require(_0x1583('0x9'));var csv=require(_0x1583('0xa'));var ejs=require(_0x1583('0xb'));var fs=require('fs');var _=require(_0x1583('0xc'));var squel=require(_0x1583('0xd'));var crypto=require(_0x1583('0xe'));var jsforce=require(_0x1583('0xf'));var deskjs=require(_0x1583('0x10'));var toCsv=require(_0x1583('0xa'));var querystring=require(_0x1583('0x11'));var Papa=require(_0x1583('0x12'));var Redis=require('ioredis');var qs=require(_0x1583('0x13'));var logger=require(_0x1583('0x14'))('api');var utils=require(_0x1583('0x15'));var config=require(_0x1583('0x16'));var db=require(_0x1583('0x17'))['db'];function respondWithStatusCode(_0x1c95d9,_0xe87c21){_0xe87c21=_0xe87c21||0xcc;return function(_0x376318){if(_0x376318){return _0x1c95d9[_0x1583('0x18')](_0xe87c21);}return _0x1c95d9['status'](_0xe87c21)[_0x1583('0x19')]();};}function respondWithResult(_0x9bf3f9,_0x25f384){_0x25f384=_0x25f384||0xc8;return function(_0x552d4a){if(_0x552d4a){return _0x9bf3f9[_0x1583('0x1a')](_0x25f384)[_0x1583('0x1b')](_0x552d4a);}};}function respondWithFilteredResult(_0x2d4722,_0x2693f0){return function(_0x230db7){if(_0x230db7){var _0x546ad7=_0x230db7[_0x1583('0x1c')],_0xd5bbd0=_0x2693f0[_0x1583('0x1d')],_0x50137d=_0x2693f0[_0x1583('0x1d')]+_0x2693f0['limit'],_0x38ea0b;if(_0x50137d>=_0x546ad7){_0x50137d=_0x546ad7;_0x38ea0b=0xc8;}else{_0x38ea0b=0xce;}_0x2d4722[_0x1583('0x1a')](_0x38ea0b);return _0x2d4722[_0x1583('0x1e')](_0x1583('0x1f'),_0xd5bbd0+'-'+_0x50137d+'/'+_0x546ad7)[_0x1583('0x1b')](_0x230db7);}return null;};}function patchUpdates(_0x3da7f4){return function(_0x1c1b3b){try{jsonpatch[_0x1583('0x20')](_0x1c1b3b,_0x3da7f4,!![]);}catch(_0x4bc6cb){return BPromise[_0x1583('0x21')](_0x4bc6cb);}return _0x1c1b3b['save']();};}function saveUpdates(_0x56c47c,_0x76c34c){return function(_0x9e2709){if(_0x9e2709){return _0x9e2709['update'](_0x56c47c)[_0x1583('0x22')](function(_0x5c8815){return _0x5c8815;});}return null;};}function removeEntity(_0x58c87c,_0x173709){return function(_0x339cc6){if(_0x339cc6){return _0x339cc6['destroy']()[_0x1583('0x22')](function(){_0x58c87c[_0x1583('0x1a')](0xcc)[_0x1583('0x19')]();});}};}function handleEntityNotFound(_0x16a6ae,_0x44ba5a){return function(_0x5e690f){if(!_0x5e690f){_0x16a6ae[_0x1583('0x18')](0x194);}return _0x5e690f;};}function handleError(_0x2ddba0,_0xc0a746){_0xc0a746=_0xc0a746||0x1f4;return function(_0x370904){logger[_0x1583('0x23')](_0x370904[_0x1583('0x24')]);if(_0x370904[_0x1583('0x25')]){delete _0x370904['name'];}_0x2ddba0['status'](_0xc0a746)['send'](_0x370904);};}exports['index']=function(_0x511ca8,_0x1bc324){var _0x282bfc={},_0x16a760={},_0x34cb0e={'count':0x0,'rows':[]};var _0x1702ad=db[_0x1583('0x26')][_0x1583('0x27')];_0x16a760['model']=_[_0x1583('0x28')](_0x1702ad);var _0x125807={'dateStart':_0x511ca8['query']['dateStart'],'dateEnd':_0x511ca8[_0x1583('0x29')][_0x1583('0x2a')]};delete _0x511ca8[_0x1583('0x29')][_0x1583('0x2b')];delete _0x511ca8['query']['dateEnd'];_0x16a760[_0x1583('0x29')]=_[_0x1583('0x28')](_0x511ca8[_0x1583('0x29')]);_0x16a760['filters']=_[_0x1583('0x2c')](_0x16a760[_0x1583('0x2d')],_0x16a760[_0x1583('0x29')]);_0x282bfc[_0x1583('0x2e')]=_['intersection'](_0x16a760[_0x1583('0x2d')],qs[_0x1583('0x2f')](_0x511ca8[_0x1583('0x29')]['fields']));_0x282bfc[_0x1583('0x2e')]=_0x282bfc[_0x1583('0x2e')][_0x1583('0x30')]?_0x282bfc[_0x1583('0x2e')]:_0x16a760[_0x1583('0x2d')];if(!_0x511ca8['query']['hasOwnProperty'](_0x1583('0x31'))){_0x282bfc[_0x1583('0x32')]=qs[_0x1583('0x32')](_0x511ca8[_0x1583('0x29')]['limit']);_0x282bfc[_0x1583('0x1d')]=qs[_0x1583('0x1d')](_0x511ca8[_0x1583('0x29')][_0x1583('0x1d')]);}_0x282bfc[_0x1583('0x33')]=qs[_0x1583('0x34')](_0x511ca8[_0x1583('0x29')]['sort']);_0x282bfc['where']=qs['filters'](_['pick'](_0x511ca8[_0x1583('0x29')],_0x16a760[_0x1583('0x35')]));if(_0x125807[_0x1583('0x2b')]){if(_0x125807[_0x1583('0x2a')]){_0x125807['dateEnd']=moment(_0x125807['dateEnd'])[_0x1583('0x36')](0x1,'day');}else{_0x125807[_0x1583('0x2a')]=moment(_0x125807[_0x1583('0x2b')])[_0x1583('0x36')](0x1,_0x1583('0x37'));}_[_0x1583('0x38')](_0x282bfc[_0x1583('0x39')],{'createdAt':{'$gte':_0x125807[_0x1583('0x2b')],'$lte':_0x125807[_0x1583('0x2a')]}});}if(_0x511ca8[_0x1583('0x29')]['filter']){_0x282bfc['where']=_[_0x1583('0x38')](_0x282bfc[_0x1583('0x39')],{'$or':_[_0x1583('0x3a')](_0x282bfc[_0x1583('0x2e')],function(_0x29f784){var _0x4d7e81={};_0x4d7e81[_0x29f784]={'$like':'%'+_0x511ca8['query'][_0x1583('0x3b')]+'%'};return _0x4d7e81;})});}_0x282bfc=_['merge']({},_0x282bfc,_0x511ca8[_0x1583('0x3c')]);var _0x39ebd9={'where':_0x282bfc['where']};return db['ChatOfflineMessage'][_0x1583('0x1c')](_0x39ebd9)['then'](function(_0x5a1528){_0x34cb0e[_0x1583('0x1c')]=_0x5a1528;if(_0x511ca8[_0x1583('0x29')][_0x1583('0x3d')]){_0x282bfc[_0x1583('0x3e')]=[{'all':!![]}];}return db['ChatOfflineMessage'][_0x1583('0x3f')](_0x282bfc);})[_0x1583('0x22')](function(_0x57b64c){_0x34cb0e[_0x1583('0x40')]=_0x57b64c;return _0x34cb0e;})[_0x1583('0x22')](respondWithFilteredResult(_0x1bc324,_0x282bfc))[_0x1583('0x41')](handleError(_0x1bc324,null));};exports[_0x1583('0x42')]=function(_0x244287,_0x5adfb9){var _0x5d7b14={'raw':!![],'where':{'id':_0x244287[_0x1583('0x43')]['id']}},_0x1e929e={};_0x1e929e[_0x1583('0x2d')]=_[_0x1583('0x28')](db[_0x1583('0x26')][_0x1583('0x27')]);_0x1e929e[_0x1583('0x29')]=_[_0x1583('0x28')](_0x244287[_0x1583('0x29')]);_0x1e929e[_0x1583('0x35')]=_[_0x1583('0x2c')](_0x1e929e['model'],_0x1e929e['query']);_0x5d7b14[_0x1583('0x2e')]=_[_0x1583('0x2c')](_0x1e929e[_0x1583('0x2d')],qs[_0x1583('0x2f')](_0x244287[_0x1583('0x29')]['fields']));_0x5d7b14[_0x1583('0x2e')]=_0x5d7b14[_0x1583('0x2e')][_0x1583('0x30')]?_0x5d7b14[_0x1583('0x2e')]:_0x1e929e[_0x1583('0x2d')];if(_0x244287['query']['includeAll']){_0x5d7b14[_0x1583('0x3e')]=[{'all':!![]}];}_0x5d7b14=_['merge']({},_0x5d7b14,_0x244287[_0x1583('0x3c')]);return db[_0x1583('0x26')][_0x1583('0x44')](_0x5d7b14)['then'](handleEntityNotFound(_0x5adfb9,null))[_0x1583('0x22')](respondWithResult(_0x5adfb9,null))[_0x1583('0x41')](handleError(_0x5adfb9,null));};exports['create']=function(_0x4da050,_0x501382){return db['ChatOfflineMessage'][_0x1583('0x45')](_0x4da050[_0x1583('0x46')],{})[_0x1583('0x22')](respondWithResult(_0x501382,0xc9))[_0x1583('0x41')](handleError(_0x501382,null));};exports[_0x1583('0x47')]=function(_0x57fa28,_0x27f137){if(_0x57fa28['body']['id']){delete _0x57fa28['body']['id'];}return db[_0x1583('0x26')]['find']({'where':{'id':_0x57fa28[_0x1583('0x43')]['id']}})[_0x1583('0x22')](handleEntityNotFound(_0x27f137,null))[_0x1583('0x22')](saveUpdates(_0x57fa28['body'],null))[_0x1583('0x22')](respondWithResult(_0x27f137,null))['catch'](handleError(_0x27f137,null));};exports['destroy']=function(_0xf2a7d0,_0x4b4331){return db['ChatOfflineMessage'][_0x1583('0x44')]({'where':{'id':_0xf2a7d0['params']['id']}})[_0x1583('0x22')](handleEntityNotFound(_0x4b4331,null))[_0x1583('0x22')](removeEntity(_0x4b4331,null))['catch'](handleError(_0x4b4331,null));};exports['describe']=function(_0x41adde,_0x2cc87b){return db[_0x1583('0x26')][_0x1583('0x48')]()[_0x1583('0x22')](respondWithResult(_0x2cc87b,null))['catch'](handleError(_0x2cc87b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0a6=['util','../../config/logger','moment','bluebird','./chatOfflineMessage.attributes','define','ChatOfflineMessage','chat_offline_messages','utf8mb4','utf8mb4_unicode_ci'];(function(_0x4cdcdc,_0x34eac7){var _0x4704ce=function(_0x1de4ed){while(--_0x1de4ed){_0x4cdcdc['push'](_0x4cdcdc['shift']());}};_0x4704ce(++_0x34eac7);}(_0xf0a6,0x96));var _0x6f0a=function(_0x3d33e3,_0x4aad7d){_0x3d33e3=_0x3d33e3-0x0;var _0x3f6bae=_0xf0a6[_0x3d33e3];return _0x3f6bae;};'use strict';var _=require('lodash');var util=require(_0x6f0a('0x0'));var logger=require(_0x6f0a('0x1'))('api');var moment=require(_0x6f0a('0x2'));var BPromise=require(_0x6f0a('0x3'));var rp=require('request-promise');var attributes=require(_0x6f0a('0x4'));module['exports']=function(_0x382706,_0x3c894d){return _0x382706[_0x6f0a('0x5')](_0x6f0a('0x6'),attributes,{'tableName':_0x6f0a('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x6f0a('0x8'),'collate':_0x6f0a('0x9')});};
\ No newline at end of file
+var _0x6540=['bluebird','request-promise','./chatOfflineMessage.attributes','define','ChatOfflineMessage','chat_offline_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment'];(function(_0x10852d,_0x4cdcc6){var _0x13a8d6=function(_0x2ece16){while(--_0x2ece16){_0x10852d['push'](_0x10852d['shift']());}};_0x13a8d6(++_0x4cdcc6);}(_0x6540,0x19b));var _0x0654=function(_0x3f577d,_0x4ccede){_0x3f577d=_0x3f577d-0x0;var _0x45965f=_0x6540[_0x3f577d];return _0x45965f;};'use strict';var _=require(_0x0654('0x0'));var util=require(_0x0654('0x1'));var logger=require(_0x0654('0x2'))(_0x0654('0x3'));var moment=require(_0x0654('0x4'));var BPromise=require(_0x0654('0x5'));var rp=require(_0x0654('0x6'));var attributes=require(_0x0654('0x7'));module['exports']=function(_0x1aed04,_0x5663d7){return _0x1aed04[_0x0654('0x8')](_0x0654('0x9'),attributes,{'tableName':_0x0654('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x0654('0xb'),'collate':_0x0654('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e00=['jayson/promise','client','http','request','then','info','debug','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','ChatOfflineMessage,\x20%s,\x20%s','message','request\x20sent','result','catch','lodash','moment','bluebird','../../mysqldb','../../config/utils'];(function(_0x331473,_0x28a760){var _0x3b2580=function(_0x52be96){while(--_0x52be96){_0x331473['push'](_0x331473['shift']());}};_0x3b2580(++_0x28a760);}(_0x1e00,0xa3));var _0x01e0=function(_0x31956b,_0x15162d){_0x31956b=_0x31956b-0x0;var _0xd3a9af=_0x1e00[_0x31956b];return _0xd3a9af;};'use strict';var _=require(_0x01e0('0x0'));var util=require('util');var moment=require(_0x01e0('0x1'));var BPromise=require(_0x01e0('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x01e0('0x3'))['db'];var utils=require(_0x01e0('0x4'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x01e0('0x5'));var client=jayson[_0x01e0('0x6')][_0x01e0('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x2ecda5,_0x47fcad,_0x5b0367){return new BPromise(function(_0x14c9fc,_0x2f465a){return client[_0x01e0('0x8')](_0x2ecda5,_0x5b0367)[_0x01e0('0x9')](function(_0x57c447){logger[_0x01e0('0xa')]('ChatOfflineMessage,\x20%s,\x20%s',_0x47fcad,'request\x20sent');logger[_0x01e0('0xb')](_0x01e0('0xc'),_0x47fcad,'request\x20sent',JSON[_0x01e0('0xd')](_0x57c447));if(_0x57c447['error']){if(_0x57c447['error'][_0x01e0('0xe')]===0x1f4){logger[_0x01e0('0xf')](_0x01e0('0x10'),_0x47fcad,_0x57c447[_0x01e0('0xf')][_0x01e0('0x11')]);return _0x2f465a(_0x57c447[_0x01e0('0xf')][_0x01e0('0x11')]);}logger['error']('ChatOfflineMessage,\x20%s,\x20%s',_0x47fcad,_0x57c447[_0x01e0('0xf')][_0x01e0('0x11')]);return _0x14c9fc(_0x57c447[_0x01e0('0xf')][_0x01e0('0x11')]);}else{logger[_0x01e0('0xa')](_0x01e0('0x10'),_0x47fcad,_0x01e0('0x12'));_0x14c9fc(_0x57c447[_0x01e0('0x13')]['message']);}})[_0x01e0('0x14')](function(_0x31c9b9){logger[_0x01e0('0xf')]('ChatOfflineMessage,\x20%s,\x20%s',_0x47fcad,_0x31c9b9);_0x2f465a(_0x31c9b9);});});}
\ No newline at end of file
+var _0x7528=['../../config/environment','jayson/promise','client','http','request','then','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x7528,0xe8));var _0x8752=function(_0x3c99f5,_0x3c4b1a){_0x3c99f5=_0x3c99f5-0x0;var _0x3b958e=_0x7528[_0x3c99f5];return _0x3b958e;};'use strict';var _=require(_0x8752('0x0'));var util=require(_0x8752('0x1'));var moment=require(_0x8752('0x2'));var BPromise=require(_0x8752('0x3'));var rs=require(_0x8752('0x4'));var fs=require('fs');var Redis=require(_0x8752('0x5'));var db=require(_0x8752('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x8752('0x7'));var config=require(_0x8752('0x8'));var jayson=require(_0x8752('0x9'));var client=jayson[_0x8752('0xa')][_0x8752('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x24e410,_0x29ce01,_0x5185fc){return new BPromise(function(_0x309ca0,_0x2e416f){return client[_0x8752('0xc')](_0x24e410,_0x5185fc)[_0x8752('0xd')](function(_0x4ee3fd){logger['info'](_0x8752('0xe'),_0x29ce01,_0x8752('0xf'));logger['debug'](_0x8752('0x10'),_0x29ce01,_0x8752('0xf'),JSON[_0x8752('0x11')](_0x4ee3fd));if(_0x4ee3fd[_0x8752('0x12')]){if(_0x4ee3fd[_0x8752('0x12')][_0x8752('0x13')]===0x1f4){logger[_0x8752('0x12')]('ChatOfflineMessage,\x20%s,\x20%s',_0x29ce01,_0x4ee3fd[_0x8752('0x12')][_0x8752('0x14')]);return _0x2e416f(_0x4ee3fd['error'][_0x8752('0x14')]);}logger['error'](_0x8752('0xe'),_0x29ce01,_0x4ee3fd[_0x8752('0x12')][_0x8752('0x14')]);return _0x309ca0(_0x4ee3fd[_0x8752('0x12')][_0x8752('0x14')]);}else{logger[_0x8752('0x15')](_0x8752('0xe'),_0x29ce01,_0x8752('0xf'));_0x309ca0(_0x4ee3fd[_0x8752('0x16')][_0x8752('0x14')]);}})[_0x8752('0x17')](function(_0x313408){logger[_0x8752('0x12')](_0x8752('0xe'),_0x29ce01,_0x313408);_0x2e416f(_0x313408);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf14b=['isAuthenticated','index','get','/describe','describe','show','post','put','/:id','update','delete','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatOfflineMessage.controller'];(function(_0x4d1d2c,_0x44f4d8){var _0x2c4cb9=function(_0x4b0c5f){while(--_0x4b0c5f){_0x4d1d2c['push'](_0x4d1d2c['shift']());}};_0x2c4cb9(++_0x44f4d8);}(_0xf14b,0xdd));var _0xbf14=function(_0x4d9598,_0x498a4e){_0x4d9598=_0x4d9598-0x0;var _0x493d83=_0xf14b[_0x4d9598];return _0x493d83;};'use strict';var multer=require(_0xbf14('0x0'));var util=require(_0xbf14('0x1'));var path=require(_0xbf14('0x2'));var timeout=require(_0xbf14('0x3'));var express=require(_0xbf14('0x4'));var router=express[_0xbf14('0x5')]();var auth=require(_0xbf14('0x6'));var interaction=require(_0xbf14('0x7'));var config=require(_0xbf14('0x8'));var controller=require(_0xbf14('0x9'));router['get']('/',auth[_0xbf14('0xa')](),controller[_0xbf14('0xb')]);router[_0xbf14('0xc')](_0xbf14('0xd'),auth[_0xbf14('0xa')](),controller[_0xbf14('0xe')]);router[_0xbf14('0xc')]('/:id',auth[_0xbf14('0xa')](),controller[_0xbf14('0xf')]);router[_0xbf14('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0xbf14('0x11')](_0xbf14('0x12'),auth[_0xbf14('0xa')](),controller[_0xbf14('0x13')]);router[_0xbf14('0x14')](_0xbf14('0x12'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x0f9f=['connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatOfflineMessage.controller','get','isAuthenticated','index','/describe','describe','show','post','create','put','/:id','delete','destroy','exports','util','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0f9f,0x1cc));var _0xf0f9=function(_0x4b1cd7,_0x27b641){_0x4b1cd7=_0x4b1cd7-0x0;var _0x400e61=_0x0f9f[_0x4b1cd7];return _0x400e61;};'use strict';var multer=require('multer');var util=require(_0xf0f9('0x0'));var path=require(_0xf0f9('0x1'));var timeout=require(_0xf0f9('0x2'));var express=require('express');var router=express[_0xf0f9('0x3')]();var auth=require(_0xf0f9('0x4'));var interaction=require(_0xf0f9('0x5'));var config=require(_0xf0f9('0x6'));var controller=require(_0xf0f9('0x7'));router[_0xf0f9('0x8')]('/',auth[_0xf0f9('0x9')](),controller[_0xf0f9('0xa')]);router[_0xf0f9('0x8')](_0xf0f9('0xb'),auth['isAuthenticated'](),controller[_0xf0f9('0xc')]);router[_0xf0f9('0x8')]('/:id',auth[_0xf0f9('0x9')](),controller[_0xf0f9('0xd')]);router[_0xf0f9('0xe')]('/',auth['isAuthenticated'](),controller[_0xf0f9('0xf')]);router[_0xf0f9('0x10')](_0xf0f9('0x11'),auth['isAuthenticated'](),controller['update']);router[_0xf0f9('0x12')](_0xf0f9('0x11'),auth[_0xf0f9('0x9')](),controller[_0xf0f9('0x13')]);module[_0xf0f9('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4621=['exports','STRING','ENUM','mouseOver','INTEGER'];(function(_0x108782,_0x196b08){var _0x3a6d2b=function(_0x28f3cd){while(--_0x28f3cd){_0x108782['push'](_0x108782['shift']());}};_0x3a6d2b(++_0x196b08);}(_0x4621,0xa0));var _0x1462=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x4621[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require('sequelize');module[_0x1462('0x0')]={'name':{'type':Sequelize[_0x1462('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1462('0x2')](_0x1462('0x3'),'timeout'),'defaultValue':_0x1462('0x3')},'selector':{'type':Sequelize[_0x1462('0x1')]},'timeout':{'type':Sequelize[_0x1462('0x4')]}};
\ No newline at end of file
+var _0x5ee5=['timeout','sequelize','exports','STRING','ENUM','mouseOver'];(function(_0x207259,_0x4d8db4){var _0xb637db=function(_0x55cc46){while(--_0x55cc46){_0x207259['push'](_0x207259['shift']());}};_0xb637db(++_0x4d8db4);}(_0x5ee5,0x199));var _0x55ee=function(_0x5bff0,_0x20716d){_0x5bff0=_0x5bff0-0x0;var _0x3ead2e=_0x5ee5[_0x5bff0];return _0x3ead2e;};'use strict';var Sequelize=require(_0x55ee('0x0'));module[_0x55ee('0x1')]={'name':{'type':Sequelize[_0x55ee('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x55ee('0x3')](_0x55ee('0x4'),_0x55ee('0x5')),'defaultValue':_0x55ee('0x4')},'selector':{'type':Sequelize[_0x55ee('0x2')]},'timeout':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['Content-Range','json','apply','save','update','destroy','then','error','stack','name','send','show','params','keys','ChatProactiveAction','rawAttributes','query','filters','model','attributes','fields','length','includeAll','merge','options','find','catch','create','body','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','count','offset','limit','set'];(function(_0x52bff1,_0x57dc15){var _0x24c9cf=function(_0x155070){while(--_0x155070){_0x52bff1['push'](_0x52bff1['shift']());}};_0x24c9cf(++_0x57dc15);}(_0x9957,0x93));var _0x7995=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x9957[_0x6c993a];return _0x27f547;};'use strict';var pdf=require(_0x7995('0x0'));var emlformat=require(_0x7995('0x1'));var rimraf=require(_0x7995('0x2'));var zipdir=require(_0x7995('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7995('0x4'));var moment=require(_0x7995('0x5'));var BPromise=require(_0x7995('0x6'));var Mustache=require(_0x7995('0x7'));var util=require('util');var path=require(_0x7995('0x8'));var sox=require(_0x7995('0x9'));var csv=require(_0x7995('0xa'));var ejs=require(_0x7995('0xb'));var fs=require('fs');var _=require(_0x7995('0xc'));var squel=require(_0x7995('0xd'));var crypto=require('crypto');var jsforce=require(_0x7995('0xe'));var deskjs=require(_0x7995('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7995('0x10'));var Papa=require(_0x7995('0x11'));var qs=require(_0x7995('0x12'));var logger=require(_0x7995('0x13'))(_0x7995('0x14'));var utils=require(_0x7995('0x15'));var config=require(_0x7995('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x245143,_0x41c652){_0x41c652=_0x41c652||0xcc;return function(_0x581f22){if(_0x581f22){return _0x245143[_0x7995('0x17')](_0x41c652);}return _0x245143[_0x7995('0x18')](_0x41c652)[_0x7995('0x19')]();};}function respondWithResult(_0x385f00,_0x281576){_0x281576=_0x281576||0xc8;return function(_0x23999f){if(_0x23999f){return _0x385f00[_0x7995('0x18')](_0x281576)['json'](_0x23999f);}};}function respondWithFilteredResult(_0x58f5ad,_0x2b4e94){return function(_0x2233dd){if(_0x2233dd){var _0x24b5bb=_0x2233dd[_0x7995('0x1a')],_0x321ae8=_0x2b4e94[_0x7995('0x1b')],_0x3f1d3e=_0x2b4e94['offset']+_0x2b4e94[_0x7995('0x1c')],_0x1a5310;if(_0x3f1d3e>=_0x24b5bb){_0x3f1d3e=_0x24b5bb;_0x1a5310=0xc8;}else{_0x1a5310=0xce;}_0x58f5ad['status'](_0x1a5310);return _0x58f5ad[_0x7995('0x1d')](_0x7995('0x1e'),_0x321ae8+'-'+_0x3f1d3e+'/'+_0x24b5bb)[_0x7995('0x1f')](_0x2233dd);}return null;};}function patchUpdates(_0x291317){return function(_0x1e1415){try{jsonpatch[_0x7995('0x20')](_0x1e1415,_0x291317,!![]);}catch(_0x4faa60){return BPromise['reject'](_0x4faa60);}return _0x1e1415[_0x7995('0x21')]();};}function saveUpdates(_0x5e6f90,_0x555f74){return function(_0x3ec178){if(_0x3ec178){return _0x3ec178[_0x7995('0x22')](_0x5e6f90)['then'](function(_0x3a9b54){return _0x3a9b54;});}return null;};}function removeEntity(_0x51f276,_0x4b1a8e){return function(_0x3e4c54){if(_0x3e4c54){return _0x3e4c54[_0x7995('0x23')]()[_0x7995('0x24')](function(){_0x51f276[_0x7995('0x18')](0xcc)[_0x7995('0x19')]();});}};}function handleEntityNotFound(_0x1c278a,_0x5d40ae){return function(_0x32a09a){if(!_0x32a09a){_0x1c278a[_0x7995('0x17')](0x194);}return _0x32a09a;};}function handleError(_0x204507,_0x285437){_0x285437=_0x285437||0x1f4;return function(_0x563799){logger[_0x7995('0x25')](_0x563799[_0x7995('0x26')]);if(_0x563799[_0x7995('0x27')]){delete _0x563799['name'];}_0x204507[_0x7995('0x18')](_0x285437)[_0x7995('0x28')](_0x563799);};}exports[_0x7995('0x29')]=function(_0x268ce7,_0x3a3fcf){var _0x2a307e={'raw':!![],'where':{'id':_0x268ce7[_0x7995('0x2a')]['id']}},_0x56691a={};_0x56691a['model']=_[_0x7995('0x2b')](db[_0x7995('0x2c')][_0x7995('0x2d')]);_0x56691a[_0x7995('0x2e')]=_[_0x7995('0x2b')](_0x268ce7['query']);_0x56691a[_0x7995('0x2f')]=_['intersection'](_0x56691a[_0x7995('0x30')],_0x56691a[_0x7995('0x2e')]);_0x2a307e[_0x7995('0x31')]=_['intersection'](_0x56691a['model'],qs['fields'](_0x268ce7[_0x7995('0x2e')][_0x7995('0x32')]));_0x2a307e[_0x7995('0x31')]=_0x2a307e[_0x7995('0x31')][_0x7995('0x33')]?_0x2a307e[_0x7995('0x31')]:_0x56691a['model'];if(_0x268ce7['query'][_0x7995('0x34')]){_0x2a307e['include']=[{'all':!![]}];}_0x2a307e=_[_0x7995('0x35')]({},_0x2a307e,_0x268ce7[_0x7995('0x36')]);return db[_0x7995('0x2c')][_0x7995('0x37')](_0x2a307e)[_0x7995('0x24')](handleEntityNotFound(_0x3a3fcf,null))['then'](respondWithResult(_0x3a3fcf,null))[_0x7995('0x38')](handleError(_0x3a3fcf,null));};exports[_0x7995('0x39')]=function(_0x5dd802,_0x48db25){return db['ChatProactiveAction'][_0x7995('0x39')](_0x5dd802[_0x7995('0x3a')],{})['then'](respondWithResult(_0x48db25,0xc9))[_0x7995('0x38')](handleError(_0x48db25,null));};exports['update']=function(_0x37917b,_0x1cb058){if(_0x37917b[_0x7995('0x3a')]['id']){delete _0x37917b['body']['id'];}return db['ChatProactiveAction'][_0x7995('0x37')]({'where':{'id':_0x37917b['params']['id']}})['then'](handleEntityNotFound(_0x1cb058,null))[_0x7995('0x24')](saveUpdates(_0x37917b[_0x7995('0x3a')],null))['then'](respondWithResult(_0x1cb058,null))[_0x7995('0x38')](handleError(_0x1cb058,null));};exports[_0x7995('0x23')]=function(_0x2b772f,_0x18667c){return db[_0x7995('0x2c')]['find']({'where':{'id':_0x2b772f[_0x7995('0x2a')]['id']}})[_0x7995('0x24')](handleEntityNotFound(_0x18667c,null))[_0x7995('0x24')](removeEntity(_0x18667c,null))[_0x7995('0x38')](handleError(_0x18667c,null));};
\ No newline at end of file
+var _0x0968=['intersection','attributes','fields','length','includeAll','include','options','catch','create','body','update','destroy','find','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','error','stack','name','send','show','params','model','ChatProactiveAction','rawAttributes','query','keys','filters'];(function(_0x9d95ad,_0x31e501){var _0x30768e=function(_0x3b64b9){while(--_0x3b64b9){_0x9d95ad['push'](_0x9d95ad['shift']());}};_0x30768e(++_0x31e501);}(_0x0968,0x1aa));var _0x8096=function(_0x3df094,_0x2ee89f){_0x3df094=_0x3df094-0x0;var _0x18601e=_0x0968[_0x3df094];return _0x18601e;};'use strict';var pdf=require(_0x8096('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8096('0x1'));var zipdir=require(_0x8096('0x2'));var jsonpatch=require(_0x8096('0x3'));var rp=require(_0x8096('0x4'));var moment=require(_0x8096('0x5'));var BPromise=require(_0x8096('0x6'));var Mustache=require(_0x8096('0x7'));var util=require(_0x8096('0x8'));var path=require(_0x8096('0x9'));var sox=require('sox');var csv=require(_0x8096('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x8096('0xb'));var squel=require('squel');var crypto=require(_0x8096('0xc'));var jsforce=require(_0x8096('0xd'));var deskjs=require(_0x8096('0xe'));var toCsv=require(_0x8096('0xa'));var querystring=require(_0x8096('0xf'));var Papa=require(_0x8096('0x10'));var Redis=require(_0x8096('0x11'));var qs=require(_0x8096('0x12'));var logger=require(_0x8096('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x8096('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x46f35d,_0x55c90e){_0x55c90e=_0x55c90e||0xcc;return function(_0x520576){if(_0x520576){return _0x46f35d[_0x8096('0x15')](_0x55c90e);}return _0x46f35d[_0x8096('0x16')](_0x55c90e)[_0x8096('0x17')]();};}function respondWithResult(_0x173093,_0x57228d){_0x57228d=_0x57228d||0xc8;return function(_0x402236){if(_0x402236){return _0x173093[_0x8096('0x16')](_0x57228d)[_0x8096('0x18')](_0x402236);}};}function respondWithFilteredResult(_0x3767fa,_0x3753f6){return function(_0x3e9c44){if(_0x3e9c44){var _0x521e26=_0x3e9c44[_0x8096('0x19')],_0x2d068b=_0x3753f6[_0x8096('0x1a')],_0x285dad=_0x3753f6[_0x8096('0x1a')]+_0x3753f6[_0x8096('0x1b')],_0x33253c;if(_0x285dad>=_0x521e26){_0x285dad=_0x521e26;_0x33253c=0xc8;}else{_0x33253c=0xce;}_0x3767fa[_0x8096('0x16')](_0x33253c);return _0x3767fa[_0x8096('0x1c')](_0x8096('0x1d'),_0x2d068b+'-'+_0x285dad+'/'+_0x521e26)['json'](_0x3e9c44);}return null;};}function patchUpdates(_0x42bc67){return function(_0x2f8f47){try{jsonpatch[_0x8096('0x1e')](_0x2f8f47,_0x42bc67,!![]);}catch(_0x324ba5){return BPromise[_0x8096('0x1f')](_0x324ba5);}return _0x2f8f47[_0x8096('0x20')]();};}function saveUpdates(_0xa68116,_0xae0f60){return function(_0xd72fbf){if(_0xd72fbf){return _0xd72fbf['update'](_0xa68116)[_0x8096('0x21')](function(_0x25b5e7){return _0x25b5e7;});}return null;};}function removeEntity(_0x126c39,_0x52c981){return function(_0x44d4fb){if(_0x44d4fb){return _0x44d4fb['destroy']()[_0x8096('0x21')](function(){_0x126c39[_0x8096('0x16')](0xcc)[_0x8096('0x17')]();});}};}function handleEntityNotFound(_0x33e089,_0x581acc){return function(_0x2841b4){if(!_0x2841b4){_0x33e089[_0x8096('0x15')](0x194);}return _0x2841b4;};}function handleError(_0x85ff0b,_0x2ee692){_0x2ee692=_0x2ee692||0x1f4;return function(_0x369e0f){logger[_0x8096('0x22')](_0x369e0f[_0x8096('0x23')]);if(_0x369e0f[_0x8096('0x24')]){delete _0x369e0f[_0x8096('0x24')];}_0x85ff0b[_0x8096('0x16')](_0x2ee692)[_0x8096('0x25')](_0x369e0f);};}exports[_0x8096('0x26')]=function(_0x48512a,_0x16be20){var _0x366afb={'raw':!![],'where':{'id':_0x48512a[_0x8096('0x27')]['id']}},_0x3f5e4d={};_0x3f5e4d[_0x8096('0x28')]=_['keys'](db[_0x8096('0x29')][_0x8096('0x2a')]);_0x3f5e4d[_0x8096('0x2b')]=_[_0x8096('0x2c')](_0x48512a['query']);_0x3f5e4d[_0x8096('0x2d')]=_[_0x8096('0x2e')](_0x3f5e4d[_0x8096('0x28')],_0x3f5e4d[_0x8096('0x2b')]);_0x366afb[_0x8096('0x2f')]=_[_0x8096('0x2e')](_0x3f5e4d[_0x8096('0x28')],qs[_0x8096('0x30')](_0x48512a['query'][_0x8096('0x30')]));_0x366afb['attributes']=_0x366afb[_0x8096('0x2f')][_0x8096('0x31')]?_0x366afb[_0x8096('0x2f')]:_0x3f5e4d[_0x8096('0x28')];if(_0x48512a[_0x8096('0x2b')][_0x8096('0x32')]){_0x366afb[_0x8096('0x33')]=[{'all':!![]}];}_0x366afb=_['merge']({},_0x366afb,_0x48512a[_0x8096('0x34')]);return db['ChatProactiveAction']['find'](_0x366afb)['then'](handleEntityNotFound(_0x16be20,null))[_0x8096('0x21')](respondWithResult(_0x16be20,null))[_0x8096('0x35')](handleError(_0x16be20,null));};exports[_0x8096('0x36')]=function(_0x1369ae,_0x25a616){return db[_0x8096('0x29')][_0x8096('0x36')](_0x1369ae[_0x8096('0x37')],{})[_0x8096('0x21')](respondWithResult(_0x25a616,0xc9))[_0x8096('0x35')](handleError(_0x25a616,null));};exports[_0x8096('0x38')]=function(_0x220a05,_0x169a91){if(_0x220a05[_0x8096('0x37')]['id']){delete _0x220a05[_0x8096('0x37')]['id'];}return db[_0x8096('0x29')]['find']({'where':{'id':_0x220a05[_0x8096('0x27')]['id']}})[_0x8096('0x21')](handleEntityNotFound(_0x169a91,null))['then'](saveUpdates(_0x220a05[_0x8096('0x37')],null))[_0x8096('0x21')](respondWithResult(_0x169a91,null))[_0x8096('0x35')](handleError(_0x169a91,null));};exports[_0x8096('0x39')]=function(_0x4a846a,_0xaacf49){return db['ChatProactiveAction'][_0x8096('0x3a')]({'where':{'id':_0x4a846a['params']['id']}})[_0x8096('0x21')](handleEntityNotFound(_0xaacf49,null))[_0x8096('0x21')](removeEntity(_0xaacf49,null))['catch'](handleError(_0xaacf49,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['lodash','api','request-promise','./chatProactiveAction.attributes','exports','define','ChatProactiveAction','chat_proactive_actions'];(function(_0x1b7f1c,_0x5394e2){var _0x4a77ca=function(_0x51fd12){while(--_0x51fd12){_0x1b7f1c['push'](_0x1b7f1c['shift']());}};_0x4a77ca(++_0x5394e2);}(_0x0295,0x1f0));var _0x5029=function(_0x1bfcfc,_0x140f5b){_0x1bfcfc=_0x1bfcfc-0x0;var _0x1041ff=_0x0295[_0x1bfcfc];return _0x1041ff;};'use strict';var _=require(_0x5029('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x5029('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x5029('0x2'));var attributes=require(_0x5029('0x3'));module[_0x5029('0x4')]=function(_0x3d0af1,_0x170504){return _0x3d0af1[_0x5029('0x5')](_0x5029('0x6'),attributes,{'tableName':_0x5029('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xadb5=['ChatProactiveAction','chat_proactive_actions','util','api','moment','bluebird','./chatProactiveAction.attributes','exports','define'];(function(_0x178db2,_0x432470){var _0x125b2c=function(_0xb703f4){while(--_0xb703f4){_0x178db2['push'](_0x178db2['shift']());}};_0x125b2c(++_0x432470);}(_0xadb5,0xad));var _0x5adb=function(_0x44eb95,_0x1f12a1){_0x44eb95=_0x44eb95-0x0;var _0xd4b40=_0xadb5[_0x44eb95];return _0xd4b40;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var logger=require('../../config/logger')(_0x5adb('0x1'));var moment=require(_0x5adb('0x2'));var BPromise=require(_0x5adb('0x3'));var rp=require('request-promise');var attributes=require(_0x5adb('0x4'));module[_0x5adb('0x5')]=function(_0x2e3ef4,_0x4cb1d1){return _0x2e3ef4[_0x5adb('0x6')](_0x5adb('0x7'),attributes,{'tableName':_0x5adb('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed5a=['error','message','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/logger','rpc','jayson/promise','client','request','then','info','ChatProactiveAction,\x20%s,\x20%s','ChatProactiveAction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x367e5b,_0x5721e4){var _0x4b909e=function(_0x22c6a4){while(--_0x22c6a4){_0x367e5b['push'](_0x367e5b['shift']());}};_0x4b909e(++_0x5721e4);}(_0xed5a,0xf4));var _0xaed5=function(_0x3f6565,_0x12a8bb){_0x3f6565=_0x3f6565-0x0;var _0x4abd23=_0xed5a[_0x3f6565];return _0x4abd23;};'use strict';var _=require(_0xaed5('0x0'));var util=require(_0xaed5('0x1'));var moment=require(_0xaed5('0x2'));var BPromise=require(_0xaed5('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0xaed5('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xaed5('0x5'))(_0xaed5('0x6'));var config=require('../../config/environment');var jayson=require(_0xaed5('0x7'));var client=jayson[_0xaed5('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x59a0b0,_0x3ba45c,_0x22ef9f){return new BPromise(function(_0x53b232,_0x105de5){return client[_0xaed5('0x9')](_0x59a0b0,_0x22ef9f)[_0xaed5('0xa')](function(_0xcf1e46){logger[_0xaed5('0xb')](_0xaed5('0xc'),_0x3ba45c,'request\x20sent');logger['debug'](_0xaed5('0xd'),_0x3ba45c,_0xaed5('0xe'),JSON[_0xaed5('0xf')](_0xcf1e46));if(_0xcf1e46['error']){if(_0xcf1e46[_0xaed5('0x10')]['code']===0x1f4){logger[_0xaed5('0x10')]('ChatProactiveAction,\x20%s,\x20%s',_0x3ba45c,_0xcf1e46[_0xaed5('0x10')][_0xaed5('0x11')]);return _0x105de5(_0xcf1e46['error'][_0xaed5('0x11')]);}logger[_0xaed5('0x10')](_0xaed5('0xc'),_0x3ba45c,_0xcf1e46['error'][_0xaed5('0x11')]);return _0x53b232(_0xcf1e46[_0xaed5('0x10')][_0xaed5('0x11')]);}else{logger[_0xaed5('0xb')](_0xaed5('0xc'),_0x3ba45c,_0xaed5('0xe'));_0x53b232(_0xcf1e46[_0xaed5('0x12')][_0xaed5('0x11')]);}})[_0xaed5('0x13')](function(_0x216f4d){logger['error']('ChatProactiveAction,\x20%s,\x20%s',_0x3ba45c,_0x216f4d);_0x105de5(_0x216f4d);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','debug','ChatProactiveAction,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x1a0ee1,_0x2abbdf){var _0x20a2c7=function(_0x4c4527){while(--_0x4c4527){_0x1a0ee1['push'](_0x1a0ee1['shift']());}};_0x20a2c7(++_0x2abbdf);}(_0xa9e0,0x123));var _0x0a9e=function(_0x8de54f,_0x271987){_0x8de54f=_0x8de54f-0x0;var _0x14cba4=_0xa9e0[_0x8de54f];return _0x14cba4;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd824=['util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','isAuthenticated','create','put','/:id','destroy','multer'];(function(_0x2e1c8a,_0x14216f){var _0x745ad2=function(_0x1e07a0){while(--_0x1e07a0){_0x2e1c8a['push'](_0x2e1c8a['shift']());}};_0x745ad2(++_0x14216f);}(_0xd824,0xc2));var _0x4d82=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xd824[_0x4a9fb1];return _0x348672;};'use strict';var multer=require(_0x4d82('0x0'));var util=require(_0x4d82('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x4d82('0x2'));var router=express[_0x4d82('0x3')]();var auth=require(_0x4d82('0x4'));var interaction=require(_0x4d82('0x5'));var config=require(_0x4d82('0x6'));var controller=require(_0x4d82('0x7'));router['get']('/:id',auth[_0x4d82('0x8')](),controller['show']);router['post']('/',auth[_0x4d82('0x8')](),controller[_0x4d82('0x9')]);router[_0x4d82('0xa')]('/:id',auth[_0x4d82('0x8')](),controller['update']);router['delete'](_0x4d82('0xb'),auth[_0x4d82('0x8')](),controller[_0x4d82('0xc')]);module['exports']=router;
\ No newline at end of file
+var _0x4325=['./chatProactiveAction.controller','get','isAuthenticated','show','put','/:id','update','delete','exports','multer','util','connect-timeout','express','Router','../../config/environment'];(function(_0x374e88,_0x38f2f9){var _0x59417a=function(_0x32703e){while(--_0x32703e){_0x374e88['push'](_0x374e88['shift']());}};_0x59417a(++_0x38f2f9);}(_0x4325,0x1da));var _0x5432=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x4325[_0x2641f9];return _0x585741;};'use strict';var multer=require(_0x5432('0x0'));var util=require(_0x5432('0x1'));var path=require('path');var timeout=require(_0x5432('0x2'));var express=require(_0x5432('0x3'));var router=express[_0x5432('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x5432('0x5'));var controller=require(_0x5432('0x6'));router[_0x5432('0x7')]('/:id',auth[_0x5432('0x8')](),controller[_0x5432('0x9')]);router['post']('/',auth[_0x5432('0x8')](),controller['create']);router[_0x5432('0xa')](_0x5432('0xb'),auth[_0x5432('0x8')](),controller[_0x5432('0xc')]);router[_0x5432('0xd')]('/:id',auth[_0x5432('0x8')](),controller['destroy']);module[_0x5432('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2bf=['beepall','sequelize','STRING','ENUM','rrmemory'];(function(_0x329dbf,_0x42a352){var _0x45b4d5=function(_0x354c0a){while(--_0x354c0a){_0x329dbf['push'](_0x329dbf['shift']());}};_0x45b4d5(++_0x42a352);}(_0xe2bf,0xa1));var _0xfe2b=function(_0x293ab0,_0x1c765c){_0x293ab0=_0x293ab0-0x0;var _0x439bcf=_0xe2bf[_0x293ab0];return _0x439bcf;};'use strict';var Sequelize=require(_0xfe2b('0x0'));module['exports']={'name':{'type':Sequelize[_0xfe2b('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xfe2b('0x1')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xfe2b('0x2')](_0xfe2b('0x3'),_0xfe2b('0x4'),'roundrobin')}};
\ No newline at end of file
+var _0x80fc=['INTEGER','ENUM','rrmemory','roundrobin','sequelize','exports','STRING'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0x80fc,0x1a1));var _0xc80f=function(_0x57f28d,_0x1a2e14){_0x57f28d=_0x57f28d-0x0;var _0x50a200=_0x80fc[_0x57f28d];return _0x50a200;};'use strict';var Sequelize=require(_0xc80f('0x0'));module[_0xc80f('0x1')]={'name':{'type':Sequelize[_0xc80f('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xc80f('0x2')]},'timeout':{'type':Sequelize[_0xc80f('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xc80f('0x4')](_0xc80f('0x5'),'beepall',_0xc80f('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf95a=['message','ChatQueue,\x20%s,\x20%s','info','catch','status','end','json','offset','limit','set','apply','reject','update','destroy','sendStatus','stack','name','send','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','add','day','merge','map','filter','options','ChatQueue','count','include','findAll','rows','params','fields','includeAll','create','body','find','describe','getMembers','findOne','get','UserChatQueue','pick','User','findAndCountAll','agent','chatPause','updatedAt','format','createdAt','getTeams','Team','addTeams','Agents','union','penalty','removeTeams','ids','addAgents','omit','spread','userChatQueue:save','removeAgents','isArray','emit','userChatQueue:remove','getAgents','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','squel','jsforce','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatQueue.socket','client','then','request\x20sent','error','code'];(function(_0x14a4cd,_0xab0368){var _0x57f9e9=function(_0x3e45ea){while(--_0x3e45ea){_0x14a4cd['push'](_0x14a4cd['shift']());}};_0x57f9e9(++_0xab0368);}(_0xf95a,0x12b));var _0xaf95=function(_0x533d0a,_0x566a49){_0x533d0a=_0x533d0a-0x0;var _0x37bde3=_0xf95a[_0x533d0a];return _0x37bde3;};'use strict';var pdf=require(_0xaf95('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xaf95('0x1'));var zipdir=require(_0xaf95('0x2'));var jsonpatch=require(_0xaf95('0x3'));var rp=require(_0xaf95('0x4'));var moment=require(_0xaf95('0x5'));var BPromise=require(_0xaf95('0x6'));var Mustache=require('mustache');var util=require(_0xaf95('0x7'));var path=require(_0xaf95('0x8'));var sox=require(_0xaf95('0x9'));var csv=require(_0xaf95('0xa'));var ejs=require(_0xaf95('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xaf95('0xc'));var crypto=require('crypto');var jsforce=require(_0xaf95('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xaf95('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require(_0xaf95('0xe'))(_0xaf95('0xf'));var utils=require(_0xaf95('0x10'));var config=require(_0xaf95('0x11'));var db=require(_0xaf95('0x12'))['db'];config['redis']=_['defaults'](config[_0xaf95('0x13')],{'host':_0xaf95('0x14'),'port':0x18eb});var socket=require(_0xaf95('0x15'))(config[_0xaf95('0x13')]);require(_0xaf95('0x16'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0xaf95('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0x49164a,_0xd0145b,_0x545298,_0x276fcf){return new BPromise(function(_0xd52de1,_0x33128f){var _0x5651bb=_0x276fcf||client;return _0x5651bb['request'](_0x49164a,_0x545298)[_0xaf95('0x18')](function(_0x3f17d0){logger['info']('ChatQueue,\x20%s,\x20%s',_0xd0145b,'request\x20sent');logger['debug']('ChatQueue,\x20%s,\x20%s,\x20%s',_0xd0145b,_0xaf95('0x19'),JSON['stringify'](_0x3f17d0));if(_0x3f17d0['error']){if(_0x3f17d0[_0xaf95('0x1a')][_0xaf95('0x1b')]===0x1f4){logger[_0xaf95('0x1a')]('ChatQueue,\x20%s,\x20%s',_0xd0145b,_0x3f17d0[_0xaf95('0x1a')][_0xaf95('0x1c')]);return _0x33128f(_0x3f17d0[_0xaf95('0x1a')]['message']);}logger[_0xaf95('0x1a')](_0xaf95('0x1d'),_0xd0145b,_0x3f17d0[_0xaf95('0x1a')][_0xaf95('0x1c')]);return _0xd52de1(_0x3f17d0[_0xaf95('0x1a')][_0xaf95('0x1c')]);}else{logger[_0xaf95('0x1e')]('ChatQueue,\x20%s,\x20%s',_0xd0145b,'request\x20sent');_0xd52de1(_0x3f17d0['result'][_0xaf95('0x1c')]);}})[_0xaf95('0x1f')](function(_0x5e5d7b){logger[_0xaf95('0x1a')]('ChatQueue,\x20%s,\x20%s',_0xd0145b,_0x5e5d7b);_0x33128f(_0x5e5d7b);});});}function respondWithStatusCode(_0x359fd4,_0x4cd1dd){_0x4cd1dd=_0x4cd1dd||0xcc;return function(_0x56a1b5){if(_0x56a1b5){return _0x359fd4['sendStatus'](_0x4cd1dd);}return _0x359fd4[_0xaf95('0x20')](_0x4cd1dd)[_0xaf95('0x21')]();};}function respondWithResult(_0x389064,_0x515cc9){_0x515cc9=_0x515cc9||0xc8;return function(_0x484ebd){if(_0x484ebd){return _0x389064['status'](_0x515cc9)[_0xaf95('0x22')](_0x484ebd);}};}function respondWithFilteredResult(_0x44eb4c,_0x2e14e4){return function(_0x1fdb34){if(_0x1fdb34){var _0xc8ebed=_0x1fdb34['count'],_0x2c3f36=_0x2e14e4[_0xaf95('0x23')],_0x5c15cf=_0x2e14e4['offset']+_0x2e14e4[_0xaf95('0x24')],_0x3a62dc;if(_0x5c15cf>=_0xc8ebed){_0x5c15cf=_0xc8ebed;_0x3a62dc=0xc8;}else{_0x3a62dc=0xce;}_0x44eb4c['status'](_0x3a62dc);return _0x44eb4c[_0xaf95('0x25')]('Content-Range',_0x2c3f36+'-'+_0x5c15cf+'/'+_0xc8ebed)['json'](_0x1fdb34);}return null;};}function patchUpdates(_0x2c0071){return function(_0x2890f5){try{jsonpatch[_0xaf95('0x26')](_0x2890f5,_0x2c0071,!![]);}catch(_0x5c3182){return BPromise[_0xaf95('0x27')](_0x5c3182);}return _0x2890f5['save']();};}function saveUpdates(_0x2ef5d7,_0x291890){return function(_0x54f03e){if(_0x54f03e){return _0x54f03e[_0xaf95('0x28')](_0x2ef5d7)[_0xaf95('0x18')](function(_0x2a795d){return _0x2a795d;});}return null;};}function removeEntity(_0x3ffa16,_0x2627ca){return function(_0xdc328d){if(_0xdc328d){return _0xdc328d[_0xaf95('0x29')]()[_0xaf95('0x18')](function(){_0x3ffa16['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x197823,_0x11f610){return function(_0x1cf9f7){if(!_0x1cf9f7){_0x197823[_0xaf95('0x2a')](0x194);}return _0x1cf9f7;};}function handleError(_0x40dcb9,_0x2091ab){_0x2091ab=_0x2091ab||0x1f4;return function(_0x220c8d){logger['error'](_0x220c8d[_0xaf95('0x2b')]);if(_0x220c8d[_0xaf95('0x2c')]){delete _0x220c8d[_0xaf95('0x2c')];}_0x40dcb9[_0xaf95('0x20')](_0x2091ab)[_0xaf95('0x2d')](_0x220c8d);};}exports[_0xaf95('0x2e')]=function(_0x315bfd,_0x55b7b7){var _0x4122ad={},_0x2f43a5={},_0x324ba5={'count':0x0,'rows':[]};var _0x216308=db['ChatQueue'][_0xaf95('0x2f')];_0x2f43a5[_0xaf95('0x30')]=_[_0xaf95('0x31')](_0x216308);var _0x474028={'dateStart':_0x315bfd[_0xaf95('0x32')][_0xaf95('0x33')],'dateEnd':_0x315bfd[_0xaf95('0x32')][_0xaf95('0x34')]};delete _0x315bfd[_0xaf95('0x32')]['dateStart'];delete _0x315bfd[_0xaf95('0x32')][_0xaf95('0x34')];_0x2f43a5[_0xaf95('0x32')]=_[_0xaf95('0x31')](_0x315bfd['query']);_0x2f43a5[_0xaf95('0x35')]=_[_0xaf95('0x36')](_0x2f43a5[_0xaf95('0x30')],_0x2f43a5[_0xaf95('0x32')]);_0x4122ad[_0xaf95('0x37')]=_['intersection'](_0x2f43a5['model'],qs['fields'](_0x315bfd['query']['fields']));_0x4122ad[_0xaf95('0x37')]=_0x4122ad[_0xaf95('0x37')][_0xaf95('0x38')]?_0x4122ad['attributes']:_0x2f43a5[_0xaf95('0x30')];if(!_0x315bfd['query'][_0xaf95('0x39')](_0xaf95('0x3a'))){_0x4122ad[_0xaf95('0x24')]=qs['limit'](_0x315bfd[_0xaf95('0x32')][_0xaf95('0x24')]);_0x4122ad[_0xaf95('0x23')]=qs[_0xaf95('0x23')](_0x315bfd['query'][_0xaf95('0x23')]);}_0x4122ad[_0xaf95('0x3b')]=qs[_0xaf95('0x3c')](_0x315bfd['query']['sort']);_0x4122ad[_0xaf95('0x3d')]=qs[_0xaf95('0x35')](_['pick'](_0x315bfd['query'],_0x2f43a5[_0xaf95('0x35')]));if(_0x474028[_0xaf95('0x33')]){if(_0x474028[_0xaf95('0x34')]){_0x474028[_0xaf95('0x34')]=moment(_0x474028[_0xaf95('0x34')])[_0xaf95('0x3e')](0x1,_0xaf95('0x3f'));}else{_0x474028[_0xaf95('0x34')]=moment(_0x474028[_0xaf95('0x33')])[_0xaf95('0x3e')](0x1,_0xaf95('0x3f'));}_[_0xaf95('0x40')](_0x4122ad['where'],{'createdAt':{'$gte':_0x474028[_0xaf95('0x33')],'$lte':_0x474028['dateEnd']}});}if(_0x315bfd[_0xaf95('0x32')]['filter']){_0x4122ad[_0xaf95('0x3d')]=_['merge'](_0x4122ad[_0xaf95('0x3d')],{'$or':_[_0xaf95('0x41')](_0x4122ad[_0xaf95('0x37')],function(_0x2330fd){var _0x2d1f00={};_0x2d1f00[_0x2330fd]={'$like':'%'+_0x315bfd[_0xaf95('0x32')][_0xaf95('0x42')]+'%'};return _0x2d1f00;})});}_0x4122ad=_[_0xaf95('0x40')]({},_0x4122ad,_0x315bfd[_0xaf95('0x43')]);var _0x125d02={'where':_0x4122ad['where']};return db[_0xaf95('0x44')][_0xaf95('0x45')](_0x125d02)[_0xaf95('0x18')](function(_0x1ac233){_0x324ba5[_0xaf95('0x45')]=_0x1ac233;if(_0x315bfd[_0xaf95('0x32')]['includeAll']){_0x4122ad[_0xaf95('0x46')]=[{'all':!![]}];}return db[_0xaf95('0x44')][_0xaf95('0x47')](_0x4122ad);})[_0xaf95('0x18')](function(_0x3bab10){_0x324ba5[_0xaf95('0x48')]=_0x3bab10;return _0x324ba5;})[_0xaf95('0x18')](respondWithFilteredResult(_0x55b7b7,_0x4122ad))['catch'](handleError(_0x55b7b7,null));};exports['show']=function(_0xc269fd,_0x1ff06d){var _0x20b2a9={'raw':!![],'where':{'id':_0xc269fd[_0xaf95('0x49')]['id']}},_0x4f3115={};_0x4f3115[_0xaf95('0x30')]=_[_0xaf95('0x31')](db[_0xaf95('0x44')]['rawAttributes']);_0x4f3115[_0xaf95('0x32')]=_[_0xaf95('0x31')](_0xc269fd[_0xaf95('0x32')]);_0x4f3115[_0xaf95('0x35')]=_[_0xaf95('0x36')](_0x4f3115[_0xaf95('0x30')],_0x4f3115[_0xaf95('0x32')]);_0x20b2a9['attributes']=_[_0xaf95('0x36')](_0x4f3115[_0xaf95('0x30')],qs[_0xaf95('0x4a')](_0xc269fd['query'][_0xaf95('0x4a')]));_0x20b2a9[_0xaf95('0x37')]=_0x20b2a9[_0xaf95('0x37')][_0xaf95('0x38')]?_0x20b2a9[_0xaf95('0x37')]:_0x4f3115[_0xaf95('0x30')];if(_0xc269fd['query'][_0xaf95('0x4b')]){_0x20b2a9[_0xaf95('0x46')]=[{'all':!![]}];}_0x20b2a9=_[_0xaf95('0x40')]({},_0x20b2a9,_0xc269fd[_0xaf95('0x43')]);return db['ChatQueue']['find'](_0x20b2a9)[_0xaf95('0x18')](handleEntityNotFound(_0x1ff06d,null))[_0xaf95('0x18')](respondWithResult(_0x1ff06d,null))[_0xaf95('0x1f')](handleError(_0x1ff06d,null));};exports['create']=function(_0x4a3c39,_0x6ebb05){return db[_0xaf95('0x44')][_0xaf95('0x4c')](_0x4a3c39[_0xaf95('0x4d')],{})[_0xaf95('0x18')](respondWithResult(_0x6ebb05,0xc9))[_0xaf95('0x1f')](handleError(_0x6ebb05,null));};exports[_0xaf95('0x28')]=function(_0x18c7e4,_0x2e5674){if(_0x18c7e4[_0xaf95('0x4d')]['id']){delete _0x18c7e4['body']['id'];}return db[_0xaf95('0x44')][_0xaf95('0x4e')]({'where':{'id':_0x18c7e4[_0xaf95('0x49')]['id']}})['then'](handleEntityNotFound(_0x2e5674,null))[_0xaf95('0x18')](saveUpdates(_0x18c7e4[_0xaf95('0x4d')],null))[_0xaf95('0x18')](respondWithResult(_0x2e5674,null))['catch'](handleError(_0x2e5674,null));};exports[_0xaf95('0x29')]=function(_0xfae349,_0x4424c7){return db[_0xaf95('0x44')][_0xaf95('0x4e')]({'where':{'id':_0xfae349[_0xaf95('0x49')]['id']}})[_0xaf95('0x18')](handleEntityNotFound(_0x4424c7,null))['then'](removeEntity(_0x4424c7,null))['catch'](handleError(_0x4424c7,null));};exports[_0xaf95('0x4f')]=function(_0x375cff,_0x55673d){return db['ChatQueue']['describe']()[_0xaf95('0x18')](respondWithResult(_0x55673d,null))[_0xaf95('0x1f')](handleError(_0x55673d,null));};exports[_0xaf95('0x50')]=function(_0x1940e7,_0x4c6260,_0x58df18){var _0x52f9b2={'raw':!![],'where':{}},_0x3c4cea={},_0x5c8cf2;return db[_0xaf95('0x44')][_0xaf95('0x51')]({'where':{'id':_0x1940e7['params']['id']}})['then'](handleEntityNotFound(_0x4c6260,null))[_0xaf95('0x18')](function(_0x2fb0ef){if(_0x2fb0ef){_0x5c8cf2=_0x2fb0ef[_0xaf95('0x52')]({'plain':!![]});_0x3c4cea[_0xaf95('0x30')]=_[_0xaf95('0x31')](db[_0xaf95('0x53')]['rawAttributes']);_0x3c4cea[_0xaf95('0x32')]=_['keys'](_0x1940e7[_0xaf95('0x32')]);_0x3c4cea[_0xaf95('0x35')]=_['intersection'](_0x3c4cea[_0xaf95('0x30')],_0x3c4cea[_0xaf95('0x32')]);_0x52f9b2[_0xaf95('0x37')]=_['intersection'](_0x3c4cea[_0xaf95('0x30')],qs[_0xaf95('0x4a')](_0x1940e7[_0xaf95('0x32')]['fields']));_0x52f9b2['attributes']=_0x52f9b2[_0xaf95('0x37')]['length']?_0x52f9b2[_0xaf95('0x37')]:_0x3c4cea['model'];if(!_0x1940e7[_0xaf95('0x32')][_0xaf95('0x39')](_0xaf95('0x3a'))){_0x52f9b2['limit']=qs[_0xaf95('0x24')](_0x1940e7[_0xaf95('0x32')][_0xaf95('0x24')]);_0x52f9b2[_0xaf95('0x23')]=qs[_0xaf95('0x23')](_0x1940e7['query'][_0xaf95('0x23')]);}_0x52f9b2['order']=qs[_0xaf95('0x3c')](_0x1940e7[_0xaf95('0x32')][_0xaf95('0x3c')]);_0x52f9b2['where']=qs[_0xaf95('0x35')](_[_0xaf95('0x54')](_0x1940e7[_0xaf95('0x32')],_0x3c4cea[_0xaf95('0x35')]));_0x52f9b2[_0xaf95('0x3d')]['ChatQueueId']=_0x2fb0ef['id'];if(_0x1940e7[_0xaf95('0x32')]['filter']){_0x52f9b2['where']=_[_0xaf95('0x40')](_0x52f9b2[_0xaf95('0x3d')],{'$or':_['map'](_0x52f9b2[_0xaf95('0x37')],function(_0x239a8c){var _0x16d726={};_0x16d726[_0x239a8c]={'$like':'%'+_0x1940e7[_0xaf95('0x32')][_0xaf95('0x42')]+'%'};return _0x16d726;})});}_0x52f9b2=_[_0xaf95('0x40')]({},_0x52f9b2,_0x1940e7[_0xaf95('0x43')]);return db['UserChatQueue'][_0xaf95('0x47')](_0x52f9b2);}})['then'](function(_0x1a7bdf){if(_0x1a7bdf){return db[_0xaf95('0x55')][_0xaf95('0x56')]({'where':{'id':_[_0xaf95('0x41')](_0x1a7bdf,'UserId'),'role':_0xaf95('0x57')},'attributes':['id',_0xaf95('0x2c'),_0xaf95('0x58'),_0xaf95('0x59'),'createdAt']});}})[_0xaf95('0x18')](function(_0x472d2a){if(_0x472d2a){return{'count':_0x472d2a[_0xaf95('0x45')],'rows':_[_0xaf95('0x41')](_0x472d2a[_0xaf95('0x48')],function(_0x517620){return{'membername':_0x517620[_0xaf95('0x2c')],'UserId':_0x517620['id'],'queue_name':_0x5c8cf2[_0xaf95('0x2c')],'ChatQueueId':_0x5c8cf2['id'],'interface':util[_0xaf95('0x5a')]('%s/%s','SIP',_0x517620[_0xaf95('0x2c')]),'penalty':0x0,'paused':_0x517620[_0xaf95('0x58')],'createdAt':_0x517620[_0xaf95('0x5b')],'updatedAt':_0x517620['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x4c6260,_0x52f9b2))[_0xaf95('0x1f')](handleError(_0x4c6260,null));};exports[_0xaf95('0x5c')]=function(_0x1a0889,_0x246d71,_0x5bd883){var _0x463640={};var _0x5b9c82={};var _0x3fac6f;var _0x1e263f;return db[_0xaf95('0x44')][_0xaf95('0x51')]({'where':{'id':_0x1a0889['params']['id']}})[_0xaf95('0x18')](handleEntityNotFound(_0x246d71,null))[_0xaf95('0x18')](function(_0x7ba344){if(_0x7ba344){_0x3fac6f=_0x7ba344;_0x5b9c82[_0xaf95('0x30')]=_[_0xaf95('0x31')](db[_0xaf95('0x5d')][_0xaf95('0x2f')]);_0x5b9c82[_0xaf95('0x32')]=_['keys'](_0x1a0889[_0xaf95('0x32')]);_0x5b9c82[_0xaf95('0x35')]=_[_0xaf95('0x36')](_0x5b9c82['model'],_0x5b9c82['query']);_0x463640[_0xaf95('0x37')]=_[_0xaf95('0x36')](_0x5b9c82['model'],qs[_0xaf95('0x4a')](_0x1a0889[_0xaf95('0x32')][_0xaf95('0x4a')]));_0x463640[_0xaf95('0x37')]=_0x463640[_0xaf95('0x37')][_0xaf95('0x38')]?_0x463640[_0xaf95('0x37')]:_0x5b9c82[_0xaf95('0x30')];_0x463640['order']=qs[_0xaf95('0x3c')](_0x1a0889[_0xaf95('0x32')][_0xaf95('0x3c')]);_0x463640['where']=qs[_0xaf95('0x35')](_[_0xaf95('0x54')](_0x1a0889['query'],_0x5b9c82[_0xaf95('0x35')]));if(_0x1a0889[_0xaf95('0x32')][_0xaf95('0x42')]){_0x463640[_0xaf95('0x3d')]=_[_0xaf95('0x40')](_0x463640[_0xaf95('0x3d')],{'$or':_[_0xaf95('0x41')](_0x463640[_0xaf95('0x37')],function(_0x358f50){var _0x81aec9={};_0x81aec9[_0x358f50]={'$like':'%'+_0x1a0889[_0xaf95('0x32')][_0xaf95('0x42')]+'%'};return _0x81aec9;})});}_0x463640=_['merge']({},_0x463640,_0x1a0889[_0xaf95('0x43')]);return _0x3fac6f[_0xaf95('0x5c')](_0x463640);}})[_0xaf95('0x18')](function(_0x35437c){if(_0x35437c){_0x1e263f=_0x35437c['length'];if(!_0x1a0889['query']['hasOwnProperty'](_0xaf95('0x3a'))){_0x463640['limit']=qs['limit'](_0x1a0889[_0xaf95('0x32')]['limit']);_0x463640[_0xaf95('0x23')]=qs[_0xaf95('0x23')](_0x1a0889['query'][_0xaf95('0x23')]);}return _0x3fac6f[_0xaf95('0x5c')](_0x463640);}})[_0xaf95('0x18')](function(_0x2f267c){if(_0x2f267c){return _0x2f267c?{'count':_0x1e263f,'rows':_0x2f267c}:null;}})[_0xaf95('0x18')](respondWithResult(_0x246d71,null))[_0xaf95('0x1f')](handleError(_0x246d71,null));};exports[_0xaf95('0x5e')]=function(_0x25ea99,_0x56aa18,_0xed2e0){var _0xa39b76=[];var _0x59ca4e;return db['Team'][_0xaf95('0x47')]({'where':{'id':_0x25ea99['body']['ids']},'attributes':['id'],'include':[{'model':db[_0xaf95('0x55')],'as':_0xaf95('0x5f'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x340071){if(_0x340071){for(var _0x2071fe=0x0;_0x2071fe<_0x340071[_0xaf95('0x38')];_0x2071fe+=0x1){for(var _0x3dd983=0x0;_0x3dd983<_0x340071[_0x2071fe]['Agents'][_0xaf95('0x38')];_0x3dd983+=0x1){_0xa39b76=_[_0xaf95('0x60')](_0xa39b76,[_0x340071[_0x2071fe][_0xaf95('0x5f')][_0x3dd983]['id']]);}}return _0xa39b76;}})[_0xaf95('0x18')](function(_0x4f1844){if(_0x4f1844){return db['ChatQueue'][_0xaf95('0x4e')]({'where':{'id':_0x25ea99[_0xaf95('0x49')]['id']}});}})['then'](function(_0x4f70e7){if(_0x4f70e7){_0x59ca4e=_0x4f70e7;return _0x59ca4e['addAgents'](_0xa39b76,{'penalty':_0x25ea99['body'][_0xaf95('0x61')]});}})[_0xaf95('0x18')](function(_0x319fec){if(_0x319fec){return _0x59ca4e[_0xaf95('0x5e')](_0x25ea99['body']['ids']);}})[_0xaf95('0x18')](handleEntityNotFound(_0x56aa18,null))['then'](respondWithStatusCode(_0x56aa18,null))[_0xaf95('0x1f')](handleError(_0x56aa18,null));};exports[_0xaf95('0x62')]=function(_0x4bfe01,_0x172405,_0x371fc5){var _0xee254e=[];var _0x3f147a;return db[_0xaf95('0x5d')]['findAll']({'where':{'id':_0x4bfe01[_0xaf95('0x32')][_0xaf95('0x63')]},'attributes':['id'],'include':[{'model':db[_0xaf95('0x55')],'as':_0xaf95('0x5f'),'attributes':['id'],'raw':!![]}]})[_0xaf95('0x18')](function(_0x1e8719){if(_0x1e8719){for(var _0x346512=0x0;_0x346512<_0x1e8719[_0xaf95('0x38')];_0x346512+=0x1){for(var _0x1ad32b=0x0;_0x1ad32b<_0x1e8719[_0x346512][_0xaf95('0x5f')]['length'];_0x1ad32b+=0x1){_0xee254e=_[_0xaf95('0x60')](_0xee254e,[_0x1e8719[_0x346512][_0xaf95('0x5f')][_0x1ad32b]['id']]);}}return _0xee254e;}})['then'](function(_0x57f203){if(_0x57f203){return db[_0xaf95('0x44')][_0xaf95('0x4e')]({'where':{'id':_0x4bfe01[_0xaf95('0x49')]['id']}});}})[_0xaf95('0x18')](function(_0x987c72){if(_0x987c72){_0x3f147a=_0x987c72;return _0x3f147a['removeAgents'](_0xee254e);}})[_0xaf95('0x18')](function(_0x1f187a){if(_0x3f147a){return _0x3f147a[_0xaf95('0x62')](_0x4bfe01['query']['ids']);}})[_0xaf95('0x18')](handleEntityNotFound(_0x172405,null))[_0xaf95('0x18')](respondWithStatusCode(_0x172405,null))[_0xaf95('0x1f')](handleError(_0x172405,null));};exports[_0xaf95('0x64')]=function(_0x172daf,_0xde01d2,_0x3a2a9d){return db[_0xaf95('0x44')]['find']({'where':{'id':_0x172daf['params']['id']}})[_0xaf95('0x18')](handleEntityNotFound(_0xde01d2,null))[_0xaf95('0x18')](function(_0x5cf2e0){if(_0x5cf2e0){return _0x5cf2e0[_0xaf95('0x64')](_0x172daf[_0xaf95('0x4d')][_0xaf95('0x63')],_[_0xaf95('0x65')](_0x172daf['body'],[_0xaf95('0x63'),'id'])||{})[_0xaf95('0x66')](function(_0x5c8cff){for(var _0x4d7fff=0x0;_0x4d7fff<_0x172daf[_0xaf95('0x4d')][_0xaf95('0x63')][_0xaf95('0x38')];_0x4d7fff+=0x1){socket['emit'](_0xaf95('0x67'),{'UserId':_0x172daf['body'][_0xaf95('0x63')][_0x4d7fff],'ChatQueueId':_0x172daf[_0xaf95('0x49')]['id']});}return _0x5c8cff;});}})[_0xaf95('0x18')](respondWithResult(_0xde01d2,null))[_0xaf95('0x1f')](handleError(_0xde01d2,null));};exports[_0xaf95('0x68')]=function(_0xf5f417,_0x355d55,_0x215109){var _0x26fef2;return db[_0xaf95('0x44')][_0xaf95('0x4e')]({'where':{'id':_0xf5f417[_0xaf95('0x49')]['id']}})[_0xaf95('0x18')](handleEntityNotFound(_0x355d55,null))[_0xaf95('0x18')](function(_0x1935ca){if(_0x1935ca){return _0x1935ca[_0xaf95('0x68')](_0xf5f417['query'][_0xaf95('0x63')])[_0xaf95('0x18')](function(_0x47cb30){if(_[_0xaf95('0x69')](_0xf5f417['query'][_0xaf95('0x63')])){for(var _0x485934=0x0;_0x485934<_0xf5f417[_0xaf95('0x32')][_0xaf95('0x63')][_0xaf95('0x38')];_0x485934+=0x1){socket[_0xaf95('0x6a')](_0xaf95('0x6b'),{'UserId':_0xf5f417[_0xaf95('0x32')][_0xaf95('0x63')][_0x485934],'ChatQueueId':_0xf5f417[_0xaf95('0x49')]['id']});}}else{socket[_0xaf95('0x6a')](_0xaf95('0x6b'),{'UserId':_0xf5f417[_0xaf95('0x32')]['ids'],'ChatQueueId':_0xf5f417[_0xaf95('0x49')]['id']});}});}})[_0xaf95('0x18')](respondWithStatusCode(_0x355d55,null))[_0xaf95('0x1f')](handleError(_0x355d55,null));};exports[_0xaf95('0x6c')]=function(_0x44ea7d,_0x2e6c1d,_0x23d449){var _0x347fbd={};var _0x411c9b={};var _0x2589a7;var _0x31344a;return db[_0xaf95('0x44')][_0xaf95('0x51')]({'where':{'id':_0x44ea7d['params']['id']}})[_0xaf95('0x18')](handleEntityNotFound(_0x2e6c1d,null))[_0xaf95('0x18')](function(_0x193dd7){if(_0x193dd7){_0x2589a7=_0x193dd7;_0x411c9b[_0xaf95('0x30')]=_[_0xaf95('0x31')](db['User'][_0xaf95('0x2f')]);_0x411c9b[_0xaf95('0x32')]=_['keys'](_0x44ea7d[_0xaf95('0x32')]);_0x411c9b[_0xaf95('0x35')]=_[_0xaf95('0x36')](_0x411c9b['model'],_0x411c9b[_0xaf95('0x32')]);_0x347fbd[_0xaf95('0x37')]=_[_0xaf95('0x36')](_0x411c9b['model'],qs[_0xaf95('0x4a')](_0x44ea7d[_0xaf95('0x32')][_0xaf95('0x4a')]));_0x347fbd[_0xaf95('0x37')]=_0x347fbd['attributes']['length']?_0x347fbd[_0xaf95('0x37')]:_0x411c9b[_0xaf95('0x30')];_0x347fbd['order']=qs[_0xaf95('0x3c')](_0x44ea7d['query'][_0xaf95('0x3c')]);_0x347fbd[_0xaf95('0x3d')]=qs[_0xaf95('0x35')](_[_0xaf95('0x54')](_0x44ea7d['query'],_0x411c9b[_0xaf95('0x35')]));if(_0x44ea7d['query'][_0xaf95('0x42')]){_0x347fbd[_0xaf95('0x3d')]=_['merge'](_0x347fbd[_0xaf95('0x3d')],{'$or':_[_0xaf95('0x41')](_0x347fbd['attributes'],function(_0x1b6b52){var _0x11111b={};_0x11111b[_0x1b6b52]={'$like':'%'+_0x44ea7d[_0xaf95('0x32')][_0xaf95('0x42')]+'%'};return _0x11111b;})});}_0x347fbd=_['merge']({},_0x347fbd,_0x44ea7d[_0xaf95('0x43')]);return _0x2589a7[_0xaf95('0x6c')](_0x347fbd);}})['then'](function(_0x33a469){if(_0x33a469){_0x31344a=_0x33a469[_0xaf95('0x38')];if(!_0x44ea7d[_0xaf95('0x32')][_0xaf95('0x39')](_0xaf95('0x3a'))){_0x347fbd[_0xaf95('0x24')]=qs[_0xaf95('0x24')](_0x44ea7d[_0xaf95('0x32')]['limit']);_0x347fbd['offset']=qs[_0xaf95('0x23')](_0x44ea7d[_0xaf95('0x32')]['offset']);}return _0x2589a7[_0xaf95('0x6c')](_0x347fbd);}})[_0xaf95('0x18')](function(_0x3bd52d){if(_0x3bd52d){return _0x3bd52d?{'count':_0x31344a,'rows':_0x3bd52d}:null;}})[_0xaf95('0x18')](respondWithResult(_0x2e6c1d,null))[_0xaf95('0x1f')](handleError(_0x2e6c1d,null));};
\ No newline at end of file
+var _0x814b=['index','ChatQueue','rawAttributes','model','keys','query','dateEnd','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','dateStart','add','day','filter','merge','map','options','includeAll','include','rows','show','params','find','create','body','describe','getMembers','findOne','UserChatQueue','ChatQueueId','findAll','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','format','SIP','getTeams','Team','ids','Agents','union','addAgents','penalty','addTeams','removeTeams','omit','spread','emit','isArray','userChatQueue:remove','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','redis','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','request','then','info','ChatQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result','catch','sendStatus','status','json','count','offset','set','reject','destroy','end','name','send'];(function(_0x4d1ee9,_0x394a78){var _0x9a5456=function(_0x224f3b){while(--_0x224f3b){_0x4d1ee9['push'](_0x4d1ee9['shift']());}};_0x9a5456(++_0x394a78);}(_0x814b,0x1a2));var _0xb814=function(_0x5e8c7c,_0x3429c6){_0x5e8c7c=_0x5e8c7c-0x0;var _0x48f7bd=_0x814b[_0x5e8c7c];return _0x48f7bd;};'use strict';var pdf=require(_0xb814('0x0'));var emlformat=require(_0xb814('0x1'));var rimraf=require(_0xb814('0x2'));var zipdir=require(_0xb814('0x3'));var jsonpatch=require(_0xb814('0x4'));var rp=require(_0xb814('0x5'));var moment=require('moment');var BPromise=require(_0xb814('0x6'));var Mustache=require(_0xb814('0x7'));var util=require(_0xb814('0x8'));var path=require(_0xb814('0x9'));var sox=require(_0xb814('0xa'));var csv=require(_0xb814('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb814('0xc'));var squel=require(_0xb814('0xd'));var crypto=require('crypto');var jsforce=require(_0xb814('0xe'));var deskjs=require(_0xb814('0xf'));var toCsv=require(_0xb814('0xb'));var querystring=require(_0xb814('0x10'));var Papa=require(_0xb814('0x11'));var Redis=require(_0xb814('0x12'));var qs=require(_0xb814('0x13'));var logger=require(_0xb814('0x14'))(_0xb814('0x15'));var utils=require(_0xb814('0x16'));var config=require(_0xb814('0x17'));var db=require('../../mysqldb')['db'];config[_0xb814('0x18')]=_['defaults'](config[_0xb814('0x18')],{'host':_0xb814('0x19'),'port':0x18eb});var socket=require(_0xb814('0x1a'))(new Redis(config[_0xb814('0x18')]));require(_0xb814('0x1b'))[_0xb814('0x1c')](socket);var jayson=require(_0xb814('0x1d'));var client=jayson[_0xb814('0x1e')][_0xb814('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x2ab627,_0x3f4881,_0x44fb96,_0x17f5bd){return new BPromise(function(_0x39bfcf,_0x303aca){var _0x3a71d6=_0x17f5bd||client;return _0x3a71d6[_0xb814('0x20')](_0x2ab627,_0x44fb96)[_0xb814('0x21')](function(_0x125ce2){logger[_0xb814('0x22')](_0xb814('0x23'),_0x3f4881,'request\x20sent');logger[_0xb814('0x24')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x3f4881,_0xb814('0x25'),JSON[_0xb814('0x26')](_0x125ce2));if(_0x125ce2['error']){if(_0x125ce2['error']['code']===0x1f4){logger[_0xb814('0x27')]('ChatQueue,\x20%s,\x20%s',_0x3f4881,_0x125ce2['error'][_0xb814('0x28')]);return _0x303aca(_0x125ce2[_0xb814('0x27')][_0xb814('0x28')]);}logger['error'](_0xb814('0x23'),_0x3f4881,_0x125ce2['error'][_0xb814('0x28')]);return _0x39bfcf(_0x125ce2[_0xb814('0x27')][_0xb814('0x28')]);}else{logger[_0xb814('0x22')](_0xb814('0x23'),_0x3f4881,_0xb814('0x25'));_0x39bfcf(_0x125ce2[_0xb814('0x29')]['message']);}})[_0xb814('0x2a')](function(_0x52b7a3){logger[_0xb814('0x27')](_0xb814('0x23'),_0x3f4881,_0x52b7a3);_0x303aca(_0x52b7a3);});});}function respondWithStatusCode(_0x31c7ec,_0x208927){_0x208927=_0x208927||0xcc;return function(_0x1c8a2e){if(_0x1c8a2e){return _0x31c7ec[_0xb814('0x2b')](_0x208927);}return _0x31c7ec[_0xb814('0x2c')](_0x208927)['end']();};}function respondWithResult(_0x392222,_0xc0ef66){_0xc0ef66=_0xc0ef66||0xc8;return function(_0x1c2625){if(_0x1c2625){return _0x392222[_0xb814('0x2c')](_0xc0ef66)[_0xb814('0x2d')](_0x1c2625);}};}function respondWithFilteredResult(_0x1d5965,_0x3f0150){return function(_0x1e4e89){if(_0x1e4e89){var _0x5a6291=_0x1e4e89[_0xb814('0x2e')],_0x271aa8=_0x3f0150[_0xb814('0x2f')],_0x328a08=_0x3f0150[_0xb814('0x2f')]+_0x3f0150['limit'],_0x52ed64;if(_0x328a08>=_0x5a6291){_0x328a08=_0x5a6291;_0x52ed64=0xc8;}else{_0x52ed64=0xce;}_0x1d5965[_0xb814('0x2c')](_0x52ed64);return _0x1d5965[_0xb814('0x30')]('Content-Range',_0x271aa8+'-'+_0x328a08+'/'+_0x5a6291)[_0xb814('0x2d')](_0x1e4e89);}return null;};}function patchUpdates(_0x526610){return function(_0x6efe9a){try{jsonpatch['apply'](_0x6efe9a,_0x526610,!![]);}catch(_0x4cfc58){return BPromise[_0xb814('0x31')](_0x4cfc58);}return _0x6efe9a['save']();};}function saveUpdates(_0x2431e2,_0x19469b){return function(_0x2b91bd){if(_0x2b91bd){return _0x2b91bd['update'](_0x2431e2)['then'](function(_0x26d3a9){return _0x26d3a9;});}return null;};}function removeEntity(_0x336e2b,_0x523566){return function(_0x2c8943){if(_0x2c8943){return _0x2c8943[_0xb814('0x32')]()[_0xb814('0x21')](function(){_0x336e2b[_0xb814('0x2c')](0xcc)[_0xb814('0x33')]();});}};}function handleEntityNotFound(_0x60024d,_0x3672f3){return function(_0x4df4e6){if(!_0x4df4e6){_0x60024d[_0xb814('0x2b')](0x194);}return _0x4df4e6;};}function handleError(_0x2263f6,_0x30de5a){_0x30de5a=_0x30de5a||0x1f4;return function(_0x424e2b){logger[_0xb814('0x27')](_0x424e2b['stack']);if(_0x424e2b[_0xb814('0x34')]){delete _0x424e2b['name'];}_0x2263f6[_0xb814('0x2c')](_0x30de5a)[_0xb814('0x35')](_0x424e2b);};}exports[_0xb814('0x36')]=function(_0x492d5e,_0x40b885){var _0xbdb3e9={},_0x4ea6f8={},_0x2fcd92={'count':0x0,'rows':[]};var _0x2d0e27=db[_0xb814('0x37')][_0xb814('0x38')];_0x4ea6f8[_0xb814('0x39')]=_[_0xb814('0x3a')](_0x2d0e27);var _0x4d81eb={'dateStart':_0x492d5e[_0xb814('0x3b')]['dateStart'],'dateEnd':_0x492d5e[_0xb814('0x3b')]['dateEnd']};delete _0x492d5e[_0xb814('0x3b')]['dateStart'];delete _0x492d5e[_0xb814('0x3b')][_0xb814('0x3c')];_0x4ea6f8['query']=_['keys'](_0x492d5e['query']);_0x4ea6f8['filters']=_[_0xb814('0x3d')](_0x4ea6f8[_0xb814('0x39')],_0x4ea6f8[_0xb814('0x3b')]);_0xbdb3e9[_0xb814('0x3e')]=_['intersection'](_0x4ea6f8['model'],qs[_0xb814('0x3f')](_0x492d5e['query'][_0xb814('0x3f')]));_0xbdb3e9[_0xb814('0x3e')]=_0xbdb3e9[_0xb814('0x3e')][_0xb814('0x40')]?_0xbdb3e9[_0xb814('0x3e')]:_0x4ea6f8[_0xb814('0x39')];if(!_0x492d5e[_0xb814('0x3b')][_0xb814('0x41')](_0xb814('0x42'))){_0xbdb3e9['limit']=qs['limit'](_0x492d5e['query'][_0xb814('0x43')]);_0xbdb3e9['offset']=qs[_0xb814('0x2f')](_0x492d5e['query'][_0xb814('0x2f')]);}_0xbdb3e9[_0xb814('0x44')]=qs[_0xb814('0x45')](_0x492d5e[_0xb814('0x3b')]['sort']);_0xbdb3e9[_0xb814('0x46')]=qs[_0xb814('0x47')](_[_0xb814('0x48')](_0x492d5e[_0xb814('0x3b')],_0x4ea6f8[_0xb814('0x47')]));if(_0x4d81eb[_0xb814('0x49')]){if(_0x4d81eb['dateEnd']){_0x4d81eb[_0xb814('0x3c')]=moment(_0x4d81eb[_0xb814('0x3c')])[_0xb814('0x4a')](0x1,_0xb814('0x4b'));}else{_0x4d81eb[_0xb814('0x3c')]=moment(_0x4d81eb[_0xb814('0x49')])[_0xb814('0x4a')](0x1,'day');}_['merge'](_0xbdb3e9[_0xb814('0x46')],{'createdAt':{'$gte':_0x4d81eb[_0xb814('0x49')],'$lte':_0x4d81eb[_0xb814('0x3c')]}});}if(_0x492d5e[_0xb814('0x3b')][_0xb814('0x4c')]){_0xbdb3e9[_0xb814('0x46')]=_[_0xb814('0x4d')](_0xbdb3e9[_0xb814('0x46')],{'$or':_[_0xb814('0x4e')](_0xbdb3e9[_0xb814('0x3e')],function(_0xe73300){var _0x5c7a49={};_0x5c7a49[_0xe73300]={'$like':'%'+_0x492d5e[_0xb814('0x3b')][_0xb814('0x4c')]+'%'};return _0x5c7a49;})});}_0xbdb3e9=_['merge']({},_0xbdb3e9,_0x492d5e[_0xb814('0x4f')]);var _0x55234d={'where':_0xbdb3e9[_0xb814('0x46')]};return db[_0xb814('0x37')][_0xb814('0x2e')](_0x55234d)[_0xb814('0x21')](function(_0x1d3833){_0x2fcd92[_0xb814('0x2e')]=_0x1d3833;if(_0x492d5e[_0xb814('0x3b')][_0xb814('0x50')]){_0xbdb3e9[_0xb814('0x51')]=[{'all':!![]}];}return db[_0xb814('0x37')]['findAll'](_0xbdb3e9);})['then'](function(_0x32eca6){_0x2fcd92[_0xb814('0x52')]=_0x32eca6;return _0x2fcd92;})[_0xb814('0x21')](respondWithFilteredResult(_0x40b885,_0xbdb3e9))[_0xb814('0x2a')](handleError(_0x40b885,null));};exports[_0xb814('0x53')]=function(_0x37ffc6,_0x135208){var _0x4a4f9a={'raw':!![],'where':{'id':_0x37ffc6[_0xb814('0x54')]['id']}},_0x26fd0b={};_0x26fd0b[_0xb814('0x39')]=_['keys'](db[_0xb814('0x37')]['rawAttributes']);_0x26fd0b[_0xb814('0x3b')]=_['keys'](_0x37ffc6[_0xb814('0x3b')]);_0x26fd0b[_0xb814('0x47')]=_['intersection'](_0x26fd0b[_0xb814('0x39')],_0x26fd0b[_0xb814('0x3b')]);_0x4a4f9a[_0xb814('0x3e')]=_['intersection'](_0x26fd0b[_0xb814('0x39')],qs['fields'](_0x37ffc6[_0xb814('0x3b')][_0xb814('0x3f')]));_0x4a4f9a['attributes']=_0x4a4f9a[_0xb814('0x3e')]['length']?_0x4a4f9a['attributes']:_0x26fd0b[_0xb814('0x39')];if(_0x37ffc6[_0xb814('0x3b')][_0xb814('0x50')]){_0x4a4f9a['include']=[{'all':!![]}];}_0x4a4f9a=_[_0xb814('0x4d')]({},_0x4a4f9a,_0x37ffc6['options']);return db[_0xb814('0x37')][_0xb814('0x55')](_0x4a4f9a)['then'](handleEntityNotFound(_0x135208,null))[_0xb814('0x21')](respondWithResult(_0x135208,null))['catch'](handleError(_0x135208,null));};exports[_0xb814('0x56')]=function(_0x1656ed,_0xb2bd82){return db[_0xb814('0x37')][_0xb814('0x56')](_0x1656ed[_0xb814('0x57')],{})[_0xb814('0x21')](respondWithResult(_0xb2bd82,0xc9))[_0xb814('0x2a')](handleError(_0xb2bd82,null));};exports['update']=function(_0x374532,_0x5441c5){if(_0x374532['body']['id']){delete _0x374532[_0xb814('0x57')]['id'];}return db[_0xb814('0x37')]['find']({'where':{'id':_0x374532[_0xb814('0x54')]['id']}})['then'](handleEntityNotFound(_0x5441c5,null))['then'](saveUpdates(_0x374532[_0xb814('0x57')],null))['then'](respondWithResult(_0x5441c5,null))[_0xb814('0x2a')](handleError(_0x5441c5,null));};exports[_0xb814('0x32')]=function(_0x2dec52,_0x586957){return db[_0xb814('0x37')]['find']({'where':{'id':_0x2dec52[_0xb814('0x54')]['id']}})[_0xb814('0x21')](handleEntityNotFound(_0x586957,null))[_0xb814('0x21')](removeEntity(_0x586957,null))[_0xb814('0x2a')](handleError(_0x586957,null));};exports[_0xb814('0x58')]=function(_0x3b374b,_0x2e5f99){return db[_0xb814('0x37')][_0xb814('0x58')]()['then'](respondWithResult(_0x2e5f99,null))[_0xb814('0x2a')](handleError(_0x2e5f99,null));};exports[_0xb814('0x59')]=function(_0x3852ae,_0x1ac6d0,_0x3b35a8){var _0x3d4843={'raw':!![],'where':{}},_0x52edfa={},_0x135e13;return db['ChatQueue'][_0xb814('0x5a')]({'where':{'id':_0x3852ae[_0xb814('0x54')]['id']}})[_0xb814('0x21')](handleEntityNotFound(_0x1ac6d0,null))['then'](function(_0x150e73){if(_0x150e73){_0x135e13=_0x150e73['get']({'plain':!![]});_0x52edfa[_0xb814('0x39')]=_['keys'](db[_0xb814('0x5b')][_0xb814('0x38')]);_0x52edfa[_0xb814('0x3b')]=_[_0xb814('0x3a')](_0x3852ae[_0xb814('0x3b')]);_0x52edfa[_0xb814('0x47')]=_[_0xb814('0x3d')](_0x52edfa['model'],_0x52edfa[_0xb814('0x3b')]);_0x3d4843['attributes']=_[_0xb814('0x3d')](_0x52edfa[_0xb814('0x39')],qs[_0xb814('0x3f')](_0x3852ae[_0xb814('0x3b')][_0xb814('0x3f')]));_0x3d4843[_0xb814('0x3e')]=_0x3d4843['attributes'][_0xb814('0x40')]?_0x3d4843[_0xb814('0x3e')]:_0x52edfa['model'];if(!_0x3852ae[_0xb814('0x3b')][_0xb814('0x41')](_0xb814('0x42'))){_0x3d4843[_0xb814('0x43')]=qs[_0xb814('0x43')](_0x3852ae['query'][_0xb814('0x43')]);_0x3d4843['offset']=qs[_0xb814('0x2f')](_0x3852ae[_0xb814('0x3b')][_0xb814('0x2f')]);}_0x3d4843[_0xb814('0x44')]=qs[_0xb814('0x45')](_0x3852ae[_0xb814('0x3b')]['sort']);_0x3d4843['where']=qs['filters'](_[_0xb814('0x48')](_0x3852ae['query'],_0x52edfa[_0xb814('0x47')]));_0x3d4843[_0xb814('0x46')][_0xb814('0x5c')]=_0x150e73['id'];if(_0x3852ae['query'][_0xb814('0x4c')]){_0x3d4843[_0xb814('0x46')]=_[_0xb814('0x4d')](_0x3d4843['where'],{'$or':_[_0xb814('0x4e')](_0x3d4843[_0xb814('0x3e')],function(_0x1f39c0){var _0x3564e0={};_0x3564e0[_0x1f39c0]={'$like':'%'+_0x3852ae['query']['filter']+'%'};return _0x3564e0;})});}_0x3d4843=_[_0xb814('0x4d')]({},_0x3d4843,_0x3852ae[_0xb814('0x4f')]);return db[_0xb814('0x5b')][_0xb814('0x5d')](_0x3d4843);}})[_0xb814('0x21')](function(_0xe5fc12){if(_0xe5fc12){return db[_0xb814('0x5e')][_0xb814('0x5f')]({'where':{'id':_[_0xb814('0x4e')](_0xe5fc12,_0xb814('0x60')),'role':_0xb814('0x61')},'attributes':['id',_0xb814('0x34'),_0xb814('0x62'),_0xb814('0x63'),_0xb814('0x64')]});}})['then'](function(_0x2332dc){if(_0x2332dc){return{'count':_0x2332dc[_0xb814('0x2e')],'rows':_[_0xb814('0x4e')](_0x2332dc[_0xb814('0x52')],function(_0xec821a){return{'membername':_0xec821a[_0xb814('0x34')],'UserId':_0xec821a['id'],'queue_name':_0x135e13['name'],'ChatQueueId':_0x135e13['id'],'interface':util[_0xb814('0x65')]('%s/%s',_0xb814('0x66'),_0xec821a[_0xb814('0x34')]),'penalty':0x0,'paused':_0xec821a[_0xb814('0x62')],'createdAt':_0xec821a[_0xb814('0x64')],'updatedAt':_0xec821a[_0xb814('0x63')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x1ac6d0,_0x3d4843))['catch'](handleError(_0x1ac6d0,null));};exports[_0xb814('0x67')]=function(_0x1b502b,_0x1bca54,_0x1cbf0c){var _0x488ef2={};var _0x1ee95d={};var _0x478d37;var _0x39073c;return db[_0xb814('0x37')]['findOne']({'where':{'id':_0x1b502b['params']['id']}})[_0xb814('0x21')](handleEntityNotFound(_0x1bca54,null))['then'](function(_0x3e9222){if(_0x3e9222){_0x478d37=_0x3e9222;_0x1ee95d[_0xb814('0x39')]=_[_0xb814('0x3a')](db[_0xb814('0x68')][_0xb814('0x38')]);_0x1ee95d[_0xb814('0x3b')]=_[_0xb814('0x3a')](_0x1b502b['query']);_0x1ee95d[_0xb814('0x47')]=_['intersection'](_0x1ee95d[_0xb814('0x39')],_0x1ee95d['query']);_0x488ef2[_0xb814('0x3e')]=_[_0xb814('0x3d')](_0x1ee95d['model'],qs[_0xb814('0x3f')](_0x1b502b['query'][_0xb814('0x3f')]));_0x488ef2[_0xb814('0x3e')]=_0x488ef2['attributes']['length']?_0x488ef2[_0xb814('0x3e')]:_0x1ee95d[_0xb814('0x39')];_0x488ef2[_0xb814('0x44')]=qs[_0xb814('0x45')](_0x1b502b[_0xb814('0x3b')][_0xb814('0x45')]);_0x488ef2[_0xb814('0x46')]=qs[_0xb814('0x47')](_[_0xb814('0x48')](_0x1b502b[_0xb814('0x3b')],_0x1ee95d['filters']));if(_0x1b502b['query']['filter']){_0x488ef2['where']=_['merge'](_0x488ef2[_0xb814('0x46')],{'$or':_[_0xb814('0x4e')](_0x488ef2[_0xb814('0x3e')],function(_0x59f3ff){var _0x121330={};_0x121330[_0x59f3ff]={'$like':'%'+_0x1b502b[_0xb814('0x3b')][_0xb814('0x4c')]+'%'};return _0x121330;})});}_0x488ef2=_[_0xb814('0x4d')]({},_0x488ef2,_0x1b502b[_0xb814('0x4f')]);return _0x478d37[_0xb814('0x67')](_0x488ef2);}})[_0xb814('0x21')](function(_0x1d9f13){if(_0x1d9f13){_0x39073c=_0x1d9f13['length'];if(!_0x1b502b[_0xb814('0x3b')][_0xb814('0x41')](_0xb814('0x42'))){_0x488ef2[_0xb814('0x43')]=qs['limit'](_0x1b502b[_0xb814('0x3b')][_0xb814('0x43')]);_0x488ef2[_0xb814('0x2f')]=qs[_0xb814('0x2f')](_0x1b502b[_0xb814('0x3b')]['offset']);}return _0x478d37['getTeams'](_0x488ef2);}})[_0xb814('0x21')](function(_0x57b3f2){if(_0x57b3f2){return _0x57b3f2?{'count':_0x39073c,'rows':_0x57b3f2}:null;}})[_0xb814('0x21')](respondWithResult(_0x1bca54,null))[_0xb814('0x2a')](handleError(_0x1bca54,null));};exports['addTeams']=function(_0xc8f730,_0x486495,_0xe17e86){var _0x520d0f=[];var _0x44e668;return db[_0xb814('0x68')][_0xb814('0x5d')]({'where':{'id':_0xc8f730[_0xb814('0x57')][_0xb814('0x69')]},'attributes':['id'],'include':[{'model':db[_0xb814('0x5e')],'as':_0xb814('0x6a'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x5a4e2e){if(_0x5a4e2e){for(var _0x21aa36=0x0;_0x21aa36<_0x5a4e2e['length'];_0x21aa36+=0x1){for(var _0x511e03=0x0;_0x511e03<_0x5a4e2e[_0x21aa36][_0xb814('0x6a')][_0xb814('0x40')];_0x511e03+=0x1){_0x520d0f=_[_0xb814('0x6b')](_0x520d0f,[_0x5a4e2e[_0x21aa36]['Agents'][_0x511e03]['id']]);}}return _0x520d0f;}})[_0xb814('0x21')](function(_0x5a25f2){if(_0x5a25f2){return db[_0xb814('0x37')][_0xb814('0x55')]({'where':{'id':_0xc8f730[_0xb814('0x54')]['id']}});}})[_0xb814('0x21')](function(_0x4c8a00){if(_0x4c8a00){_0x44e668=_0x4c8a00;return _0x44e668[_0xb814('0x6c')](_0x520d0f,{'penalty':_0xc8f730[_0xb814('0x57')][_0xb814('0x6d')]});}})['then'](function(_0x1ebbf6){if(_0x1ebbf6){return _0x44e668[_0xb814('0x6e')](_0xc8f730[_0xb814('0x57')]['ids']);}})[_0xb814('0x21')](handleEntityNotFound(_0x486495,null))[_0xb814('0x21')](respondWithStatusCode(_0x486495,null))[_0xb814('0x2a')](handleError(_0x486495,null));};exports[_0xb814('0x6f')]=function(_0x40b3c5,_0x1ae8e8,_0x37a7ab){var _0x472c38=[];var _0x37a8b1;return db[_0xb814('0x68')][_0xb814('0x5d')]({'where':{'id':_0x40b3c5[_0xb814('0x3b')][_0xb814('0x69')]},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0xb814('0x21')](function(_0x50697f){if(_0x50697f){for(var _0x320296=0x0;_0x320296<_0x50697f[_0xb814('0x40')];_0x320296+=0x1){for(var _0x43ab12=0x0;_0x43ab12<_0x50697f[_0x320296][_0xb814('0x6a')][_0xb814('0x40')];_0x43ab12+=0x1){_0x472c38=_[_0xb814('0x6b')](_0x472c38,[_0x50697f[_0x320296][_0xb814('0x6a')][_0x43ab12]['id']]);}}return _0x472c38;}})['then'](function(_0x4a460a){if(_0x4a460a){return db[_0xb814('0x37')]['find']({'where':{'id':_0x40b3c5[_0xb814('0x54')]['id']}});}})[_0xb814('0x21')](function(_0x1becf7){if(_0x1becf7){_0x37a8b1=_0x1becf7;return _0x37a8b1['removeAgents'](_0x472c38);}})[_0xb814('0x21')](function(_0x28c358){if(_0x37a8b1){return _0x37a8b1[_0xb814('0x6f')](_0x40b3c5[_0xb814('0x3b')][_0xb814('0x69')]);}})['then'](handleEntityNotFound(_0x1ae8e8,null))[_0xb814('0x21')](respondWithStatusCode(_0x1ae8e8,null))[_0xb814('0x2a')](handleError(_0x1ae8e8,null));};exports['addAgents']=function(_0x4530ed,_0x20f6ca,_0x3e3f69){return db['ChatQueue'][_0xb814('0x55')]({'where':{'id':_0x4530ed[_0xb814('0x54')]['id']}})['then'](handleEntityNotFound(_0x20f6ca,null))[_0xb814('0x21')](function(_0x171f83){if(_0x171f83){return _0x171f83['addAgents'](_0x4530ed[_0xb814('0x57')][_0xb814('0x69')],_[_0xb814('0x70')](_0x4530ed[_0xb814('0x57')],[_0xb814('0x69'),'id'])||{})[_0xb814('0x71')](function(_0x40ae0b){for(var _0x336a8f=0x0;_0x336a8f<_0x4530ed[_0xb814('0x57')][_0xb814('0x69')][_0xb814('0x40')];_0x336a8f+=0x1){socket[_0xb814('0x72')]('userChatQueue:save',{'UserId':_0x4530ed['body'][_0xb814('0x69')][_0x336a8f],'ChatQueueId':_0x4530ed['params']['id']});}return _0x40ae0b;});}})['then'](respondWithResult(_0x20f6ca,null))[_0xb814('0x2a')](handleError(_0x20f6ca,null));};exports['removeAgents']=function(_0x4f0427,_0x50cb34,_0x1044fa){var _0x2ce4de;return db[_0xb814('0x37')]['find']({'where':{'id':_0x4f0427[_0xb814('0x54')]['id']}})['then'](handleEntityNotFound(_0x50cb34,null))[_0xb814('0x21')](function(_0x2e6660){if(_0x2e6660){return _0x2e6660['removeAgents'](_0x4f0427[_0xb814('0x3b')]['ids'])[_0xb814('0x21')](function(_0x2cfedd){if(_[_0xb814('0x73')](_0x4f0427[_0xb814('0x3b')][_0xb814('0x69')])){for(var _0xaf705d=0x0;_0xaf705d<_0x4f0427[_0xb814('0x3b')][_0xb814('0x69')][_0xb814('0x40')];_0xaf705d+=0x1){socket[_0xb814('0x72')](_0xb814('0x74'),{'UserId':_0x4f0427[_0xb814('0x3b')][_0xb814('0x69')][_0xaf705d],'ChatQueueId':_0x4f0427[_0xb814('0x54')]['id']});}}else{socket[_0xb814('0x72')]('userChatQueue:remove',{'UserId':_0x4f0427[_0xb814('0x3b')][_0xb814('0x69')],'ChatQueueId':_0x4f0427['params']['id']});}});}})[_0xb814('0x21')](respondWithStatusCode(_0x50cb34,null))[_0xb814('0x2a')](handleError(_0x50cb34,null));};exports[_0xb814('0x75')]=function(_0x570191,_0x56b2aa,_0x473b30){var _0x4af71e={};var _0x2d40e6={};var _0x4eeee6;var _0xdf3e07;return db['ChatQueue']['findOne']({'where':{'id':_0x570191[_0xb814('0x54')]['id']}})[_0xb814('0x21')](handleEntityNotFound(_0x56b2aa,null))[_0xb814('0x21')](function(_0x21b286){if(_0x21b286){_0x4eeee6=_0x21b286;_0x2d40e6[_0xb814('0x39')]=_[_0xb814('0x3a')](db[_0xb814('0x5e')][_0xb814('0x38')]);_0x2d40e6[_0xb814('0x3b')]=_[_0xb814('0x3a')](_0x570191[_0xb814('0x3b')]);_0x2d40e6['filters']=_[_0xb814('0x3d')](_0x2d40e6['model'],_0x2d40e6[_0xb814('0x3b')]);_0x4af71e[_0xb814('0x3e')]=_[_0xb814('0x3d')](_0x2d40e6['model'],qs[_0xb814('0x3f')](_0x570191[_0xb814('0x3b')][_0xb814('0x3f')]));_0x4af71e[_0xb814('0x3e')]=_0x4af71e[_0xb814('0x3e')][_0xb814('0x40')]?_0x4af71e[_0xb814('0x3e')]:_0x2d40e6[_0xb814('0x39')];_0x4af71e[_0xb814('0x44')]=qs[_0xb814('0x45')](_0x570191[_0xb814('0x3b')][_0xb814('0x45')]);_0x4af71e[_0xb814('0x46')]=qs[_0xb814('0x47')](_[_0xb814('0x48')](_0x570191['query'],_0x2d40e6[_0xb814('0x47')]));if(_0x570191[_0xb814('0x3b')][_0xb814('0x4c')]){_0x4af71e['where']=_['merge'](_0x4af71e[_0xb814('0x46')],{'$or':_['map'](_0x4af71e['attributes'],function(_0x57181f){var _0x4b86c3={};_0x4b86c3[_0x57181f]={'$like':'%'+_0x570191[_0xb814('0x3b')][_0xb814('0x4c')]+'%'};return _0x4b86c3;})});}_0x4af71e=_['merge']({},_0x4af71e,_0x570191[_0xb814('0x4f')]);return _0x4eeee6[_0xb814('0x75')](_0x4af71e);}})[_0xb814('0x21')](function(_0x3d24c3){if(_0x3d24c3){_0xdf3e07=_0x3d24c3[_0xb814('0x40')];if(!_0x570191[_0xb814('0x3b')][_0xb814('0x41')](_0xb814('0x42'))){_0x4af71e[_0xb814('0x43')]=qs[_0xb814('0x43')](_0x570191[_0xb814('0x3b')]['limit']);_0x4af71e[_0xb814('0x2f')]=qs['offset'](_0x570191[_0xb814('0x3b')][_0xb814('0x2f')]);}return _0x4eeee6[_0xb814('0x75')](_0x4af71e);}})[_0xb814('0x21')](function(_0x1fd6c7){if(_0x1fd6c7){return _0x1fd6c7?{'count':_0xdf3e07,'rows':_0x1fd6c7}:null;}})[_0xb814('0x21')](respondWithResult(_0x56b2aa,null))[_0xb814('0x2a')](handleError(_0x56b2aa,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fee=['ChatQueue','setMaxListeners','save','remove','emit','hasOwnProperty','events','../../mysqldb'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x1fee,0x12e));var _0xe1fe=function(_0x415012,_0x44467b){_0x415012=_0x415012-0x0;var _0x3713b6=_0x1fee[_0x415012];return _0x3713b6;};'use strict';var EventEmitter=require(_0xe1fe('0x0'));var ChatQueue=require(_0xe1fe('0x1'))['db'][_0xe1fe('0x2')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0xe1fe('0x3')](0x0);var events={'afterCreate':_0xe1fe('0x4'),'afterUpdate':'update','afterDestroy':_0xe1fe('0x5')};function emitEvent(_0x3c47aa){return function(_0x388884,_0x954e9d,_0xf37f8e){ChatQueueEvents[_0xe1fe('0x6')](_0x3c47aa+':'+_0x388884['id'],_0x388884);ChatQueueEvents[_0xe1fe('0x6')](_0x3c47aa,_0x388884);_0xf37f8e(null);};}for(var e in events){if(events[_0xe1fe('0x7')](e)){var event=events[e];ChatQueue['hook'](e,emitEvent(event));}}module['exports']=ChatQueueEvents;
\ No newline at end of file
+var _0x5881=['hasOwnProperty','hook','exports','../../mysqldb','ChatQueue','setMaxListeners','save','update','emit'];(function(_0x342baa,_0x4a110f){var _0x1208f3=function(_0x56a645){while(--_0x56a645){_0x342baa['push'](_0x342baa['shift']());}};_0x1208f3(++_0x4a110f);}(_0x5881,0x1f2));var _0x1588=function(_0x315006,_0x488858){_0x315006=_0x315006-0x0;var _0x33d7a9=_0x5881[_0x315006];return _0x33d7a9;};'use strict';var EventEmitter=require('events');var ChatQueue=require(_0x1588('0x0'))['db'][_0x1588('0x1')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0x1588('0x2')](0x0);var events={'afterCreate':_0x1588('0x3'),'afterUpdate':_0x1588('0x4'),'afterDestroy':'remove'};function emitEvent(_0x7976f9){return function(_0x5a6deb,_0x476832,_0x46cbcd){ChatQueueEvents[_0x1588('0x5')](_0x7976f9+':'+_0x5a6deb['id'],_0x5a6deb);ChatQueueEvents[_0x1588('0x5')](_0x7976f9,_0x5a6deb);_0x46cbcd(null);};}for(var e in events){if(events[_0x1588('0x6')](e)){var event=events[e];ChatQueue[_0x1588('0x7')](e,emitEvent(event));}}module[_0x1588('0x8')]=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46ed=['lodash','util','api','moment','bluebird','./chatQueue.attributes','exports','define','ChatQueue','chat_queues'];(function(_0x50b3c8,_0x343ee0){var _0x3a4279=function(_0x44cd3c){while(--_0x44cd3c){_0x50b3c8['push'](_0x50b3c8['shift']());}};_0x3a4279(++_0x343ee0);}(_0x46ed,0x168));var _0xd46e=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0x46ed[_0x5c2e3e];return _0x53f64a;};'use strict';var _=require(_0xd46e('0x0'));var util=require(_0xd46e('0x1'));var logger=require('../../config/logger')(_0xd46e('0x2'));var moment=require(_0xd46e('0x3'));var BPromise=require(_0xd46e('0x4'));var rp=require('request-promise');var attributes=require(_0xd46e('0x5'));module[_0xd46e('0x6')]=function(_0x54ef98,_0x15c96e){return _0x54ef98[_0xd46e('0x7')](_0xd46e('0x8'),attributes,{'tableName':_0xd46e('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6f47=['exports','define','chat_queues','util','../../config/logger','moment','request-promise'];(function(_0x31eb67,_0x9bc8c0){var _0x2a8cb8=function(_0xac1c5d){while(--_0xac1c5d){_0x31eb67['push'](_0x31eb67['shift']());}};_0x2a8cb8(++_0x9bc8c0);}(_0x6f47,0xc7));var _0x76f4=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0x6f47[_0x43d11d];return _0x38cd08;};'use strict';var _=require('lodash');var util=require(_0x76f4('0x0'));var logger=require(_0x76f4('0x1'))('api');var moment=require(_0x76f4('0x2'));var BPromise=require('bluebird');var rp=require(_0x76f4('0x3'));var attributes=require('./chatQueue.attributes');module[_0x76f4('0x4')]=function(_0xc5dddc,_0x2795ee){return _0xc5dddc[_0x76f4('0x5')]('ChatQueue',attributes,{'tableName':_0x76f4('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7de2=['defaults','localhost','socket.io-emitter','redis','./chatQueue.socket','register','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','ChatQueue','findAll','options','raw','where','attributes','limit','include','model','map','catch','GetChatQueue','find','ShowChatQueue','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http'];(function(_0x428df3,_0xdd565a){var _0x35111d=function(_0xe82e5a){while(--_0xe82e5a){_0x428df3['push'](_0x428df3['shift']());}};_0x35111d(++_0xdd565a);}(_0x7de2,0x14d));var _0x27de=function(_0xe40254,_0x34ad74){_0xe40254=_0xe40254-0x0;var _0x3ace9e=_0x7de2[_0xe40254];return _0x3ace9e;};'use strict';var _=require(_0x27de('0x0'));var util=require(_0x27de('0x1'));var moment=require(_0x27de('0x2'));var BPromise=require(_0x27de('0x3'));var rs=require(_0x27de('0x4'));var fs=require('fs');var db=require(_0x27de('0x5'))['db'];var utils=require(_0x27de('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x27de('0x7'));var jayson=require(_0x27de('0x8'));var client=jayson[_0x27de('0x9')][_0x27de('0xa')]({'port':0x232a});config['redis']=_[_0x27de('0xb')](config['redis'],{'host':_0x27de('0xc'),'port':0x18eb});var socket=require(_0x27de('0xd'))(config[_0x27de('0xe')]);require(_0x27de('0xf'))[_0x27de('0x10')](socket);function respondWithRpcPromise(_0x1ad3c7,_0x422726,_0x319a53){return new BPromise(function(_0x4d5973,_0x611c14){return client[_0x27de('0x11')](_0x1ad3c7,_0x319a53)[_0x27de('0x12')](function(_0x86e97f){logger[_0x27de('0x13')](_0x27de('0x14'),_0x422726,_0x27de('0x15'));logger[_0x27de('0x16')](_0x27de('0x17'),_0x422726,_0x27de('0x15'),JSON[_0x27de('0x18')](_0x86e97f));if(_0x86e97f['error']){if(_0x86e97f[_0x27de('0x19')][_0x27de('0x1a')]===0x1f4){logger[_0x27de('0x19')](_0x27de('0x14'),_0x422726,_0x86e97f[_0x27de('0x19')][_0x27de('0x1b')]);return _0x611c14(_0x86e97f[_0x27de('0x19')]['message']);}logger['error'](_0x27de('0x14'),_0x422726,_0x86e97f[_0x27de('0x19')][_0x27de('0x1b')]);return _0x4d5973(_0x86e97f[_0x27de('0x19')]['message']);}else{logger[_0x27de('0x13')](_0x27de('0x14'),_0x422726,_0x27de('0x15'));_0x4d5973(_0x86e97f[_0x27de('0x1c')]['message']);}})['catch'](function(_0x2f9e27){logger[_0x27de('0x19')](_0x27de('0x14'),_0x422726,_0x2f9e27);_0x611c14(_0x2f9e27);});});}exports['GetChatQueue']=function(_0x57032c){var _0x2a0d80=this;return new Promise(function(_0x108f5b,_0x3bd497){return db[_0x27de('0x1d')][_0x27de('0x1e')]({'raw':_0x57032c['options']?_0x57032c[_0x27de('0x1f')][_0x27de('0x20')]===undefined?!![]:![]:!![],'where':_0x57032c['options']?_0x57032c[_0x27de('0x1f')][_0x27de('0x21')]||null:null,'attributes':_0x57032c[_0x27de('0x1f')]?_0x57032c[_0x27de('0x1f')][_0x27de('0x22')]||null:null,'limit':_0x57032c[_0x27de('0x1f')]?_0x57032c['options'][_0x27de('0x23')]||null:null,'include':_0x57032c[_0x27de('0x1f')]?_0x57032c[_0x27de('0x1f')][_0x27de('0x24')]?_['map'](_0x57032c[_0x27de('0x1f')][_0x27de('0x24')],function(_0x1ca998){return{'model':db[_0x1ca998['model']],'as':_0x1ca998['as'],'attributes':_0x1ca998['attributes'],'include':_0x1ca998['include']?_['map'](_0x1ca998['include'],function(_0x276a73){return{'model':db[_0x276a73[_0x27de('0x25')]],'as':_0x276a73['as'],'attributes':_0x276a73[_0x27de('0x22')],'include':_0x276a73[_0x27de('0x24')]?_[_0x27de('0x26')](_0x276a73[_0x27de('0x24')],function(_0x5cc95c){return{'model':db[_0x5cc95c[_0x27de('0x25')]],'as':_0x5cc95c['as'],'attributes':_0x5cc95c['attributes']};}):[]};}):[]};}):[]:[]})[_0x27de('0x12')](function(_0x3dad41){logger[_0x27de('0x13')]('GetChatQueue',_0x57032c);logger[_0x27de('0x16')]('GetChatQueue',_0x57032c,JSON[_0x27de('0x18')](_0x3dad41));_0x108f5b(_0x3dad41);})[_0x27de('0x27')](function(_0x8076a5){logger[_0x27de('0x19')](_0x27de('0x28'),_0x8076a5[_0x27de('0x1b')],_0x57032c);_0x3bd497(_0x2a0d80[_0x27de('0x19')](0x1f4,_0x8076a5[_0x27de('0x1b')]));});});};exports['ShowChatQueue']=function(_0x3ed1c8){var _0x348a92=this;return new Promise(function(_0x55924a,_0x43fb2e){return db[_0x27de('0x1d')][_0x27de('0x29')]({'raw':_0x3ed1c8['options']?_0x3ed1c8[_0x27de('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x3ed1c8[_0x27de('0x1f')]?_0x3ed1c8[_0x27de('0x1f')]['where']||null:null,'attributes':_0x3ed1c8['options']?_0x3ed1c8['options'][_0x27de('0x22')]||null:null,'include':_0x3ed1c8[_0x27de('0x1f')]?_0x3ed1c8[_0x27de('0x1f')][_0x27de('0x24')]?_['map'](_0x3ed1c8['options'][_0x27de('0x24')],function(_0x1b8bff){return{'model':db[_0x1b8bff[_0x27de('0x25')]],'as':_0x1b8bff['as'],'attributes':_0x1b8bff['attributes'],'include':_0x1b8bff[_0x27de('0x24')]?_[_0x27de('0x26')](_0x1b8bff['include'],function(_0x37263f){return{'model':db[_0x37263f[_0x27de('0x25')]],'as':_0x37263f['as'],'attributes':_0x37263f[_0x27de('0x22')],'include':_0x37263f[_0x27de('0x24')]?_[_0x27de('0x26')](_0x37263f[_0x27de('0x24')],function(_0x3ed974){return{'model':db[_0x3ed974[_0x27de('0x25')]],'as':_0x3ed974['as'],'attributes':_0x3ed974[_0x27de('0x22')]};}):[]};}):[]};}):[]:[]})[_0x27de('0x12')](function(_0x1da1c2){logger[_0x27de('0x13')](_0x27de('0x2a'),_0x3ed1c8);logger[_0x27de('0x16')](_0x27de('0x2a'),_0x3ed1c8,JSON['stringify'](_0x1da1c2));_0x55924a(_0x1da1c2);})['catch'](function(_0x202a1c){logger[_0x27de('0x19')](_0x27de('0x2a'),_0x202a1c['message'],_0x3ed1c8);_0x43fb2e(_0x348a92[_0x27de('0x19')](0x1f4,_0x202a1c[_0x27de('0x1b')]));});});};
\ No newline at end of file
+var _0xc81d=['../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','./chatQueue.socket','register','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetChatQueue','ChatQueue','findAll','options','where','limit','include','map','attributes','model','catch','ShowChatQueue','find','raw','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x1cec99,_0x2c9feb){var _0x2a947a=function(_0x1969d9){while(--_0x1969d9){_0x1cec99['push'](_0x1cec99['shift']());}};_0x2a947a(++_0x2c9feb);}(_0xc81d,0xf9));var _0xdc81=function(_0x26ed54,_0x1719fe){_0x26ed54=_0x26ed54-0x0;var _0x5c7730=_0xc81d[_0x26ed54];return _0x5c7730;};'use strict';var _=require(_0xdc81('0x0'));var util=require(_0xdc81('0x1'));var moment=require('moment');var BPromise=require(_0xdc81('0x2'));var rs=require(_0xdc81('0x3'));var fs=require('fs');var Redis=require(_0xdc81('0x4'));var db=require(_0xdc81('0x5'))['db'];var utils=require(_0xdc81('0x6'));var logger=require(_0xdc81('0x7'))(_0xdc81('0x8'));var config=require(_0xdc81('0x9'));var jayson=require(_0xdc81('0xa'));var client=jayson[_0xdc81('0xb')]['http']({'port':0x232a});config[_0xdc81('0xc')]=_['defaults'](config[_0xdc81('0xc')],{'host':_0xdc81('0xd'),'port':0x18eb});var socket=require(_0xdc81('0xe'))(new Redis(config[_0xdc81('0xc')]));require(_0xdc81('0xf'))[_0xdc81('0x10')](socket);function respondWithRpcPromise(_0x2eea16,_0x23198e,_0x4da120){return new BPromise(function(_0x46ac2c,_0xff49ec){return client[_0xdc81('0x11')](_0x2eea16,_0x4da120)[_0xdc81('0x12')](function(_0x34cac8){logger[_0xdc81('0x13')](_0xdc81('0x14'),_0x23198e,_0xdc81('0x15'));logger[_0xdc81('0x16')](_0xdc81('0x17'),_0x23198e,'request\x20sent',JSON[_0xdc81('0x18')](_0x34cac8));if(_0x34cac8['error']){if(_0x34cac8[_0xdc81('0x19')][_0xdc81('0x1a')]===0x1f4){logger[_0xdc81('0x19')](_0xdc81('0x14'),_0x23198e,_0x34cac8['error'][_0xdc81('0x1b')]);return _0xff49ec(_0x34cac8[_0xdc81('0x19')][_0xdc81('0x1b')]);}logger['error'](_0xdc81('0x14'),_0x23198e,_0x34cac8[_0xdc81('0x19')][_0xdc81('0x1b')]);return _0x46ac2c(_0x34cac8[_0xdc81('0x19')][_0xdc81('0x1b')]);}else{logger['info'](_0xdc81('0x14'),_0x23198e,_0xdc81('0x15'));_0x46ac2c(_0x34cac8[_0xdc81('0x1c')][_0xdc81('0x1b')]);}})['catch'](function(_0xcd7bec){logger['error'](_0xdc81('0x14'),_0x23198e,_0xcd7bec);_0xff49ec(_0xcd7bec);});});}exports[_0xdc81('0x1d')]=function(_0x13bc3a){var _0x266b1b=this;return new Promise(function(_0x5a90fa,_0x34349a){return db[_0xdc81('0x1e')][_0xdc81('0x1f')]({'raw':_0x13bc3a[_0xdc81('0x20')]?_0x13bc3a['options']['raw']===undefined?!![]:![]:!![],'where':_0x13bc3a[_0xdc81('0x20')]?_0x13bc3a['options'][_0xdc81('0x21')]||null:null,'attributes':_0x13bc3a[_0xdc81('0x20')]?_0x13bc3a[_0xdc81('0x20')]['attributes']||null:null,'limit':_0x13bc3a[_0xdc81('0x20')]?_0x13bc3a[_0xdc81('0x20')][_0xdc81('0x22')]||null:null,'include':_0x13bc3a[_0xdc81('0x20')]?_0x13bc3a['options'][_0xdc81('0x23')]?_[_0xdc81('0x24')](_0x13bc3a[_0xdc81('0x20')][_0xdc81('0x23')],function(_0x3719e9){return{'model':db[_0x3719e9['model']],'as':_0x3719e9['as'],'attributes':_0x3719e9[_0xdc81('0x25')],'include':_0x3719e9[_0xdc81('0x23')]?_['map'](_0x3719e9[_0xdc81('0x23')],function(_0x115b3d){return{'model':db[_0x115b3d[_0xdc81('0x26')]],'as':_0x115b3d['as'],'attributes':_0x115b3d[_0xdc81('0x25')],'include':_0x115b3d['include']?_[_0xdc81('0x24')](_0x115b3d[_0xdc81('0x23')],function(_0x1c0ccf){return{'model':db[_0x1c0ccf[_0xdc81('0x26')]],'as':_0x1c0ccf['as'],'attributes':_0x1c0ccf[_0xdc81('0x25')]};}):[]};}):[]};}):[]:[]})[_0xdc81('0x12')](function(_0x4dcb2b){logger['info'](_0xdc81('0x1d'),_0x13bc3a);logger['debug'](_0xdc81('0x1d'),_0x13bc3a,JSON[_0xdc81('0x18')](_0x4dcb2b));_0x5a90fa(_0x4dcb2b);})[_0xdc81('0x27')](function(_0x3a7750){logger[_0xdc81('0x19')](_0xdc81('0x1d'),_0x3a7750[_0xdc81('0x1b')],_0x13bc3a);_0x34349a(_0x266b1b[_0xdc81('0x19')](0x1f4,_0x3a7750[_0xdc81('0x1b')]));});});};exports[_0xdc81('0x28')]=function(_0x1fac75){var _0x22543b=this;return new Promise(function(_0x40ae6d,_0x5ca770){return db[_0xdc81('0x1e')][_0xdc81('0x29')]({'raw':_0x1fac75[_0xdc81('0x20')]?_0x1fac75[_0xdc81('0x20')][_0xdc81('0x2a')]===undefined?!![]:![]:!![],'where':_0x1fac75['options']?_0x1fac75[_0xdc81('0x20')]['where']||null:null,'attributes':_0x1fac75[_0xdc81('0x20')]?_0x1fac75[_0xdc81('0x20')][_0xdc81('0x25')]||null:null,'include':_0x1fac75['options']?_0x1fac75[_0xdc81('0x20')][_0xdc81('0x23')]?_['map'](_0x1fac75['options'][_0xdc81('0x23')],function(_0x1dafb5){return{'model':db[_0x1dafb5[_0xdc81('0x26')]],'as':_0x1dafb5['as'],'attributes':_0x1dafb5[_0xdc81('0x25')],'include':_0x1dafb5[_0xdc81('0x23')]?_[_0xdc81('0x24')](_0x1dafb5[_0xdc81('0x23')],function(_0x420a3d){return{'model':db[_0x420a3d['model']],'as':_0x420a3d['as'],'attributes':_0x420a3d[_0xdc81('0x25')],'include':_0x420a3d['include']?_[_0xdc81('0x24')](_0x420a3d[_0xdc81('0x23')],function(_0x552990){return{'model':db[_0x552990[_0xdc81('0x26')]],'as':_0x552990['as'],'attributes':_0x552990[_0xdc81('0x25')]};}):[]};}):[]};}):[]:[]})[_0xdc81('0x12')](function(_0x106e11){logger['info']('ShowChatQueue',_0x1fac75);logger['debug'](_0xdc81('0x28'),_0x1fac75,JSON['stringify'](_0x106e11));_0x40ae6d(_0x106e11);})[_0xdc81('0x27')](function(_0x2a714c){logger[_0xdc81('0x19')](_0xdc81('0x28'),_0x2a714c['message'],_0x1fac75);_0x5ca770(_0x22543b[_0xdc81('0x19')](0x1f4,_0x2a714c[_0xdc81('0x1b')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','chatQueue:','./chatQueue.events','save','remove','emit','removeListener'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1b828b,_0x344400){_0x1b828b=_0x1b828b-0x0;var _0x98da1a=_0xa9e0[_0x1b828b];return _0x98da1a;};'use strict';var ChatQueueEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){ChatQueueEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);ChatQueueEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','chatQueue:','./chatQueue.events','save','remove','emit','removeListener'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xa9e0[_0x5ddb1c];return _0x354adc;};'use strict';var ChatQueueEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){ChatQueueEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);ChatQueueEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fd2=['show','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addAgents','destroy','removeTeams','delete','removeAgents','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatQueue.controller','get','isAuthenticated','index','describe','/:id'];(function(_0x1573ea,_0x434f02){var _0x51c0e2=function(_0x5c9b28){while(--_0x5c9b28){_0x1573ea['push'](_0x1573ea['shift']());}};_0x51c0e2(++_0x434f02);}(_0x2fd2,0x7e));var _0x22fd=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x2fd2[_0x3947c9];return _0x2e7871;};'use strict';var multer=require(_0x22fd('0x0'));var util=require(_0x22fd('0x1'));var path=require('path');var timeout=require(_0x22fd('0x2'));var express=require(_0x22fd('0x3'));var router=express[_0x22fd('0x4')]();var auth=require(_0x22fd('0x5'));var interaction=require(_0x22fd('0x6'));var config=require(_0x22fd('0x7'));var controller=require(_0x22fd('0x8'));router[_0x22fd('0x9')]('/',auth[_0x22fd('0xa')](),controller[_0x22fd('0xb')]);router['get']('/describe',auth[_0x22fd('0xa')](),controller[_0x22fd('0xc')]);router['get'](_0x22fd('0xd'),auth[_0x22fd('0xa')](),controller[_0x22fd('0xe')]);router[_0x22fd('0x9')]('/:id/members',auth['isAuthenticated'](),controller[_0x22fd('0xf')]);router[_0x22fd('0x9')](_0x22fd('0x10'),auth[_0x22fd('0xa')](),controller[_0x22fd('0x11')]);router[_0x22fd('0x9')](_0x22fd('0x12'),auth[_0x22fd('0xa')](),controller[_0x22fd('0x13')]);router[_0x22fd('0x14')]('/',auth[_0x22fd('0xa')](),controller[_0x22fd('0x15')]);router[_0x22fd('0x14')](_0x22fd('0x10'),auth['isAuthenticated'](),controller['addTeams']);router[_0x22fd('0x14')](_0x22fd('0x12'),auth['isAuthenticated'](),controller[_0x22fd('0x16')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router['delete'](_0x22fd('0xd'),auth[_0x22fd('0xa')](),controller[_0x22fd('0x17')]);router['delete'](_0x22fd('0x10'),auth['isAuthenticated'](),controller[_0x22fd('0x18')]);router[_0x22fd('0x19')](_0x22fd('0x12'),auth[_0x22fd('0xa')](),controller[_0x22fd('0x1a')]);module[_0x22fd('0x1b')]=router;
\ No newline at end of file
+var _0xec92=['addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/describe','describe','/:id','show','getMembers','/:id/teams','/:id/users','getAgents','post','addTeams'];(function(_0x402a52,_0xf47c1e){var _0x6530f5=function(_0xcd2d09){while(--_0xcd2d09){_0x402a52['push'](_0x402a52['shift']());}};_0x6530f5(++_0xf47c1e);}(_0xec92,0x1e8));var _0x2ec9=function(_0x4e647f,_0x539d8f){_0x4e647f=_0x4e647f-0x0;var _0x2f74bc=_0xec92[_0x4e647f];return _0x2f74bc;};'use strict';var multer=require(_0x2ec9('0x0'));var util=require(_0x2ec9('0x1'));var path=require(_0x2ec9('0x2'));var timeout=require(_0x2ec9('0x3'));var express=require(_0x2ec9('0x4'));var router=express[_0x2ec9('0x5')]();var auth=require(_0x2ec9('0x6'));var interaction=require(_0x2ec9('0x7'));var config=require(_0x2ec9('0x8'));var controller=require('./chatQueue.controller');router['get']('/',auth[_0x2ec9('0x9')](),controller[_0x2ec9('0xa')]);router[_0x2ec9('0xb')](_0x2ec9('0xc'),auth[_0x2ec9('0x9')](),controller[_0x2ec9('0xd')]);router['get'](_0x2ec9('0xe'),auth[_0x2ec9('0x9')](),controller[_0x2ec9('0xf')]);router['get']('/:id/members',auth[_0x2ec9('0x9')](),controller[_0x2ec9('0x10')]);router[_0x2ec9('0xb')](_0x2ec9('0x11'),auth[_0x2ec9('0x9')](),controller['getTeams']);router[_0x2ec9('0xb')](_0x2ec9('0x12'),auth['isAuthenticated'](),controller[_0x2ec9('0x13')]);router[_0x2ec9('0x14')]('/',auth['isAuthenticated'](),controller['create']);router[_0x2ec9('0x14')](_0x2ec9('0x11'),auth[_0x2ec9('0x9')](),controller[_0x2ec9('0x15')]);router[_0x2ec9('0x14')](_0x2ec9('0x12'),auth[_0x2ec9('0x9')](),controller[_0x2ec9('0x16')]);router[_0x2ec9('0x17')]('/:id',auth[_0x2ec9('0x9')](),controller[_0x2ec9('0x18')]);router[_0x2ec9('0x19')](_0x2ec9('0xe'),auth[_0x2ec9('0x9')](),controller[_0x2ec9('0x1a')]);router['delete'](_0x2ec9('0x11'),auth['isAuthenticated'](),controller[_0x2ec9('0x1b')]);router[_0x2ec9('0x19')](_0x2ec9('0x12'),auth[_0x2ec9('0x9')](),controller[_0x2ec9('0x1c')]);module[_0x2ec9('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe4c0=['sequelize','STRING','DATE','moment'];(function(_0x238ffe,_0x412efa){var _0x311679=function(_0x936836){while(--_0x936836){_0x238ffe['push'](_0x238ffe['shift']());}};_0x311679(++_0x412efa);}(_0xe4c0,0x1ef));var _0x0e4c=function(_0x495e9f,_0x1b1d80){_0x495e9f=_0x495e9f-0x0;var _0xb249d2=_0xe4c0[_0x495e9f];return _0xb249d2;};'use strict';var moment=require(_0x0e4c('0x0'));var Sequelize=require(_0x0e4c('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0x0e4c('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x0e4c('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x0e4c('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x0e4c('0x2')]}};
\ No newline at end of file
+var _0x1e04=['STRING','DATE','sequelize'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x1e04,0xec));var _0x41e0=function(_0x459c55,_0x1d9022){_0x459c55=_0x459c55-0x0;var _0x17b241=_0x1e04[_0x459c55];return _0x17b241;};'use strict';var moment=require('moment');var Sequelize=require(_0x41e0('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x41e0('0x1')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x41e0('0x2')]},'acceptAt':{'type':Sequelize[_0x41e0('0x2')]},'exitAt':{'type':Sequelize[_0x41e0('0x2')]},'reason':{'type':Sequelize[_0x41e0('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f10=['describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','ChatQueueReport','rawAttributes','model','query','dateStart','dateEnd','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','day','add','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body'];(function(_0x2235bf,_0x3a06a7){var _0x4c3a64=function(_0x3b3bb6){while(--_0x3b3bb6){_0x2235bf['push'](_0x2235bf['shift']());}};_0x4c3a64(++_0x3a06a7);}(_0x9f10,0x178));var _0x09f1=function(_0x4c783d,_0x3a86cc){_0x4c783d=_0x4c783d-0x0;var _0x541562=_0x9f10[_0x4c783d];return _0x541562;};'use strict';var pdf=require(_0x09f1('0x0'));var emlformat=require(_0x09f1('0x1'));var rimraf=require(_0x09f1('0x2'));var zipdir=require(_0x09f1('0x3'));var jsonpatch=require(_0x09f1('0x4'));var rp=require(_0x09f1('0x5'));var moment=require(_0x09f1('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x09f1('0x7'));var path=require(_0x09f1('0x8'));var sox=require(_0x09f1('0x9'));var csv=require(_0x09f1('0xa'));var ejs=require(_0x09f1('0xb'));var fs=require('fs');var _=require(_0x09f1('0xc'));var squel=require(_0x09f1('0xd'));var crypto=require(_0x09f1('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x09f1('0xa'));var querystring=require(_0x09f1('0xf'));var Papa=require(_0x09f1('0x10'));var qs=require(_0x09f1('0x11'));var logger=require(_0x09f1('0x12'))('api');var utils=require(_0x09f1('0x13'));var config=require('../../config/environment');var db=require(_0x09f1('0x14'))['db'];function respondWithStatusCode(_0x40e67e,_0x53b0ed){_0x53b0ed=_0x53b0ed||0xcc;return function(_0x45cad1){if(_0x45cad1){return _0x40e67e[_0x09f1('0x15')](_0x53b0ed);}return _0x40e67e['status'](_0x53b0ed)[_0x09f1('0x16')]();};}function respondWithResult(_0x428eaf,_0x70af41){_0x70af41=_0x70af41||0xc8;return function(_0x588b8a){if(_0x588b8a){return _0x428eaf[_0x09f1('0x17')](_0x70af41)[_0x09f1('0x18')](_0x588b8a);}};}function respondWithFilteredResult(_0x5ea014,_0xecd9bb){return function(_0x2ddfa7){if(_0x2ddfa7){var _0xcb3fa=_0x2ddfa7[_0x09f1('0x19')],_0x355399=_0xecd9bb['offset'],_0x398967=_0xecd9bb[_0x09f1('0x1a')]+_0xecd9bb[_0x09f1('0x1b')],_0x5885cb;if(_0x398967>=_0xcb3fa){_0x398967=_0xcb3fa;_0x5885cb=0xc8;}else{_0x5885cb=0xce;}_0x5ea014[_0x09f1('0x17')](_0x5885cb);return _0x5ea014[_0x09f1('0x1c')](_0x09f1('0x1d'),_0x355399+'-'+_0x398967+'/'+_0xcb3fa)['json'](_0x2ddfa7);}return null;};}function patchUpdates(_0x79b28){return function(_0x319a12){try{jsonpatch[_0x09f1('0x1e')](_0x319a12,_0x79b28,!![]);}catch(_0x245bc5){return BPromise[_0x09f1('0x1f')](_0x245bc5);}return _0x319a12[_0x09f1('0x20')]();};}function saveUpdates(_0x47a125,_0x3a84bf){return function(_0x3f69c7){if(_0x3f69c7){return _0x3f69c7[_0x09f1('0x21')](_0x47a125)['then'](function(_0x20debc){return _0x20debc;});}return null;};}function removeEntity(_0x428467,_0x44ad72){return function(_0x14ce51){if(_0x14ce51){return _0x14ce51[_0x09f1('0x22')]()[_0x09f1('0x23')](function(){_0x428467[_0x09f1('0x17')](0xcc)[_0x09f1('0x16')]();});}};}function handleEntityNotFound(_0x1caa26,_0xe6b6e7){return function(_0x388bf8){if(!_0x388bf8){_0x1caa26[_0x09f1('0x15')](0x194);}return _0x388bf8;};}function handleError(_0x3268a6,_0x4d8945){_0x4d8945=_0x4d8945||0x1f4;return function(_0x28df9e){logger[_0x09f1('0x24')](_0x28df9e[_0x09f1('0x25')]);if(_0x28df9e['name']){delete _0x28df9e[_0x09f1('0x26')];}_0x3268a6[_0x09f1('0x17')](_0x4d8945)[_0x09f1('0x27')](_0x28df9e);};}exports[_0x09f1('0x28')]=function(_0x459e67,_0x1279c1){var _0x83335c={},_0x42b85d={},_0x3d1519={'count':0x0,'rows':[]};var _0xf71ac1=db[_0x09f1('0x29')][_0x09f1('0x2a')];_0x42b85d[_0x09f1('0x2b')]=_['keys'](_0xf71ac1);var _0x23b3ef={'dateStart':_0x459e67[_0x09f1('0x2c')][_0x09f1('0x2d')],'dateEnd':_0x459e67[_0x09f1('0x2c')][_0x09f1('0x2e')]};delete _0x459e67[_0x09f1('0x2c')]['dateStart'];delete _0x459e67[_0x09f1('0x2c')][_0x09f1('0x2e')];_0x42b85d[_0x09f1('0x2c')]=_[_0x09f1('0x2f')](_0x459e67[_0x09f1('0x2c')]);_0x42b85d[_0x09f1('0x30')]=_['intersection'](_0x42b85d[_0x09f1('0x2b')],_0x42b85d[_0x09f1('0x2c')]);_0x83335c[_0x09f1('0x31')]=_[_0x09f1('0x32')](_0x42b85d[_0x09f1('0x2b')],qs[_0x09f1('0x33')](_0x459e67[_0x09f1('0x2c')][_0x09f1('0x33')]));_0x83335c['attributes']=_0x83335c['attributes'][_0x09f1('0x34')]?_0x83335c[_0x09f1('0x31')]:_0x42b85d['model'];if(!_0x459e67['query'][_0x09f1('0x35')](_0x09f1('0x36'))){_0x83335c[_0x09f1('0x1b')]=qs[_0x09f1('0x1b')](_0x459e67[_0x09f1('0x2c')]['limit']);_0x83335c[_0x09f1('0x1a')]=qs[_0x09f1('0x1a')](_0x459e67[_0x09f1('0x2c')]['offset']);}_0x83335c[_0x09f1('0x37')]=qs[_0x09f1('0x38')](_0x459e67[_0x09f1('0x2c')][_0x09f1('0x38')]);_0x83335c[_0x09f1('0x39')]=qs[_0x09f1('0x30')](_[_0x09f1('0x3a')](_0x459e67[_0x09f1('0x2c')],_0x42b85d[_0x09f1('0x30')]));if(_0x23b3ef[_0x09f1('0x2d')]){if(_0x23b3ef[_0x09f1('0x2e')]){_0x23b3ef[_0x09f1('0x2e')]=moment(_0x23b3ef[_0x09f1('0x2e')])['add'](0x1,_0x09f1('0x3b'));}else{_0x23b3ef[_0x09f1('0x2e')]=moment(_0x23b3ef[_0x09f1('0x2d')])[_0x09f1('0x3c')](0x1,_0x09f1('0x3b'));}_[_0x09f1('0x3d')](_0x83335c[_0x09f1('0x39')],{'createdAt':{'$gte':_0x23b3ef['dateStart'],'$lte':_0x23b3ef['dateEnd']}});}if(_0x459e67['query'][_0x09f1('0x3e')]){_0x83335c['where']=_[_0x09f1('0x3d')](_0x83335c[_0x09f1('0x39')],{'$or':_['map'](_0x83335c[_0x09f1('0x31')],function(_0x5918f0){var _0x41c3e7={};_0x41c3e7[_0x5918f0]={'$like':'%'+_0x459e67[_0x09f1('0x2c')]['filter']+'%'};return _0x41c3e7;})});}_0x83335c=_[_0x09f1('0x3d')]({},_0x83335c,_0x459e67[_0x09f1('0x3f')]);var _0x808088={'where':_0x83335c['where']};return db[_0x09f1('0x29')][_0x09f1('0x19')](_0x808088)[_0x09f1('0x23')](function(_0x5a0a70){_0x3d1519[_0x09f1('0x19')]=_0x5a0a70;if(_0x459e67['query'][_0x09f1('0x40')]){_0x83335c[_0x09f1('0x41')]=[{'all':!![]}];}return db[_0x09f1('0x29')][_0x09f1('0x42')](_0x83335c);})[_0x09f1('0x23')](function(_0x1f52ed){_0x3d1519[_0x09f1('0x43')]=_0x1f52ed;return _0x3d1519;})[_0x09f1('0x23')](respondWithFilteredResult(_0x1279c1,_0x83335c))[_0x09f1('0x44')](handleError(_0x1279c1,null));};exports[_0x09f1('0x45')]=function(_0x485ba2,_0x5c4d75){var _0x2e1c63={'raw':!![],'where':{'id':_0x485ba2[_0x09f1('0x46')]['id']}},_0x1ce26f={};_0x1ce26f['model']=_[_0x09f1('0x2f')](db[_0x09f1('0x29')][_0x09f1('0x2a')]);_0x1ce26f[_0x09f1('0x2c')]=_[_0x09f1('0x2f')](_0x485ba2[_0x09f1('0x2c')]);_0x1ce26f[_0x09f1('0x30')]=_[_0x09f1('0x32')](_0x1ce26f[_0x09f1('0x2b')],_0x1ce26f[_0x09f1('0x2c')]);_0x2e1c63[_0x09f1('0x31')]=_[_0x09f1('0x32')](_0x1ce26f[_0x09f1('0x2b')],qs['fields'](_0x485ba2[_0x09f1('0x2c')][_0x09f1('0x33')]));_0x2e1c63[_0x09f1('0x31')]=_0x2e1c63[_0x09f1('0x31')][_0x09f1('0x34')]?_0x2e1c63['attributes']:_0x1ce26f[_0x09f1('0x2b')];if(_0x485ba2[_0x09f1('0x2c')][_0x09f1('0x40')]){_0x2e1c63[_0x09f1('0x41')]=[{'all':!![]}];}_0x2e1c63=_[_0x09f1('0x3d')]({},_0x2e1c63,_0x485ba2[_0x09f1('0x3f')]);return db[_0x09f1('0x29')][_0x09f1('0x47')](_0x2e1c63)[_0x09f1('0x23')](handleEntityNotFound(_0x5c4d75,null))[_0x09f1('0x23')](respondWithResult(_0x5c4d75,null))[_0x09f1('0x44')](handleError(_0x5c4d75,null));};exports[_0x09f1('0x48')]=function(_0x2b2b43,_0x45234f){return db[_0x09f1('0x29')][_0x09f1('0x48')](_0x2b2b43[_0x09f1('0x49')],{})[_0x09f1('0x23')](respondWithResult(_0x45234f,0xc9))[_0x09f1('0x44')](handleError(_0x45234f,null));};exports[_0x09f1('0x21')]=function(_0x26e398,_0x166b97){if(_0x26e398['body']['id']){delete _0x26e398['body']['id'];}return db['ChatQueueReport'][_0x09f1('0x47')]({'where':{'id':_0x26e398[_0x09f1('0x46')]['id']}})[_0x09f1('0x23')](handleEntityNotFound(_0x166b97,null))['then'](saveUpdates(_0x26e398[_0x09f1('0x49')],null))[_0x09f1('0x23')](respondWithResult(_0x166b97,null))[_0x09f1('0x44')](handleError(_0x166b97,null));};exports[_0x09f1('0x22')]=function(_0x307d9d,_0x4ba5e9){return db[_0x09f1('0x29')][_0x09f1('0x47')]({'where':{'id':_0x307d9d['params']['id']}})['then'](handleEntityNotFound(_0x4ba5e9,null))['then'](removeEntity(_0x4ba5e9,null))[_0x09f1('0x44')](handleError(_0x4ba5e9,null));};exports[_0x09f1('0x4a')]=function(_0x267153,_0x122322){return db[_0x09f1('0x29')][_0x09f1('0x4a')]()[_0x09f1('0x23')](respondWithResult(_0x122322,null))[_0x09f1('0x44')](handleError(_0x122322,null));};
\ No newline at end of file
+var _0xd946=['desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','limit','set','Content-Range','reject','update','then','destroy','error','stack','name','send','ChatQueueReport','rawAttributes','keys','query','dateEnd','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','offset','sort','pick','dateStart','add','day','merge','filter','where','map','options','includeAll','include','findAll','rows','catch','params','find','create','body','describe','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','lodash'];(function(_0x497344,_0x1cb572){var _0x2f506b=function(_0x106950){while(--_0x106950){_0x497344['push'](_0x497344['shift']());}};_0x2f506b(++_0x1cb572);}(_0xd946,0xc7));var _0x6d94=function(_0x2798b6,_0x5b9c8f){_0x2798b6=_0x2798b6-0x0;var _0x14a9a7=_0xd946[_0x2798b6];return _0x14a9a7;};'use strict';var pdf=require(_0x6d94('0x0'));var emlformat=require(_0x6d94('0x1'));var rimraf=require(_0x6d94('0x2'));var zipdir=require(_0x6d94('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6d94('0x4'));var moment=require(_0x6d94('0x5'));var BPromise=require(_0x6d94('0x6'));var Mustache=require(_0x6d94('0x7'));var util=require(_0x6d94('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x6d94('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6d94('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6d94('0xb'));var toCsv=require(_0x6d94('0x9'));var querystring=require(_0x6d94('0xc'));var Papa=require(_0x6d94('0xd'));var Redis=require(_0x6d94('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x6d94('0xf'))(_0x6d94('0x10'));var utils=require(_0x6d94('0x11'));var config=require(_0x6d94('0x12'));var db=require(_0x6d94('0x13'))['db'];function respondWithStatusCode(_0x4bc88e,_0x7c4fa0){_0x7c4fa0=_0x7c4fa0||0xcc;return function(_0x46afb0){if(_0x46afb0){return _0x4bc88e[_0x6d94('0x14')](_0x7c4fa0);}return _0x4bc88e[_0x6d94('0x15')](_0x7c4fa0)[_0x6d94('0x16')]();};}function respondWithResult(_0x3fbb39,_0x1e848c){_0x1e848c=_0x1e848c||0xc8;return function(_0x17daba){if(_0x17daba){return _0x3fbb39['status'](_0x1e848c)[_0x6d94('0x17')](_0x17daba);}};}function respondWithFilteredResult(_0x49a0b7,_0x17fd8e){return function(_0x5b5364){if(_0x5b5364){var _0x3a0a73=_0x5b5364[_0x6d94('0x18')],_0x109cca=_0x17fd8e['offset'],_0x257c0d=_0x17fd8e['offset']+_0x17fd8e[_0x6d94('0x19')],_0x5519c9;if(_0x257c0d>=_0x3a0a73){_0x257c0d=_0x3a0a73;_0x5519c9=0xc8;}else{_0x5519c9=0xce;}_0x49a0b7[_0x6d94('0x15')](_0x5519c9);return _0x49a0b7[_0x6d94('0x1a')](_0x6d94('0x1b'),_0x109cca+'-'+_0x257c0d+'/'+_0x3a0a73)[_0x6d94('0x17')](_0x5b5364);}return null;};}function patchUpdates(_0x5ef05a){return function(_0x54cc5b){try{jsonpatch['apply'](_0x54cc5b,_0x5ef05a,!![]);}catch(_0xc305c5){return BPromise[_0x6d94('0x1c')](_0xc305c5);}return _0x54cc5b['save']();};}function saveUpdates(_0x35cc49,_0x4163a0){return function(_0x364c2f){if(_0x364c2f){return _0x364c2f[_0x6d94('0x1d')](_0x35cc49)[_0x6d94('0x1e')](function(_0x15e3ea){return _0x15e3ea;});}return null;};}function removeEntity(_0x39b970,_0x377f00){return function(_0x4f96a3){if(_0x4f96a3){return _0x4f96a3[_0x6d94('0x1f')]()[_0x6d94('0x1e')](function(){_0x39b970[_0x6d94('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16dbce,_0x1e1fc0){return function(_0x383019){if(!_0x383019){_0x16dbce[_0x6d94('0x14')](0x194);}return _0x383019;};}function handleError(_0x465242,_0xa3bfc3){_0xa3bfc3=_0xa3bfc3||0x1f4;return function(_0x5fffa5){logger[_0x6d94('0x20')](_0x5fffa5[_0x6d94('0x21')]);if(_0x5fffa5[_0x6d94('0x22')]){delete _0x5fffa5[_0x6d94('0x22')];}_0x465242[_0x6d94('0x15')](_0xa3bfc3)[_0x6d94('0x23')](_0x5fffa5);};}exports['index']=function(_0x3e7be8,_0x4c5490){var _0xa031d1={},_0x198f6a={},_0x3e56de={'count':0x0,'rows':[]};var _0x3ea627=db[_0x6d94('0x24')][_0x6d94('0x25')];_0x198f6a['model']=_[_0x6d94('0x26')](_0x3ea627);var _0x3ddb3d={'dateStart':_0x3e7be8[_0x6d94('0x27')]['dateStart'],'dateEnd':_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x28')]};delete _0x3e7be8[_0x6d94('0x27')]['dateStart'];delete _0x3e7be8[_0x6d94('0x27')]['dateEnd'];_0x198f6a[_0x6d94('0x27')]=_['keys'](_0x3e7be8[_0x6d94('0x27')]);_0x198f6a[_0x6d94('0x29')]=_[_0x6d94('0x2a')](_0x198f6a[_0x6d94('0x2b')],_0x198f6a['query']);_0xa031d1[_0x6d94('0x2c')]=_[_0x6d94('0x2a')](_0x198f6a[_0x6d94('0x2b')],qs[_0x6d94('0x2d')](_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x2d')]));_0xa031d1['attributes']=_0xa031d1[_0x6d94('0x2c')][_0x6d94('0x2e')]?_0xa031d1['attributes']:_0x198f6a[_0x6d94('0x2b')];if(!_0x3e7be8['query'][_0x6d94('0x2f')](_0x6d94('0x30'))){_0xa031d1[_0x6d94('0x19')]=qs[_0x6d94('0x19')](_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x19')]);_0xa031d1[_0x6d94('0x31')]=qs[_0x6d94('0x31')](_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x31')]);}_0xa031d1['order']=qs[_0x6d94('0x32')](_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x32')]);_0xa031d1['where']=qs[_0x6d94('0x29')](_[_0x6d94('0x33')](_0x3e7be8[_0x6d94('0x27')],_0x198f6a[_0x6d94('0x29')]));if(_0x3ddb3d[_0x6d94('0x34')]){if(_0x3ddb3d[_0x6d94('0x28')]){_0x3ddb3d[_0x6d94('0x28')]=moment(_0x3ddb3d[_0x6d94('0x28')])[_0x6d94('0x35')](0x1,_0x6d94('0x36'));}else{_0x3ddb3d['dateEnd']=moment(_0x3ddb3d['dateStart'])['add'](0x1,'day');}_[_0x6d94('0x37')](_0xa031d1['where'],{'createdAt':{'$gte':_0x3ddb3d[_0x6d94('0x34')],'$lte':_0x3ddb3d[_0x6d94('0x28')]}});}if(_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x38')]){_0xa031d1[_0x6d94('0x39')]=_[_0x6d94('0x37')](_0xa031d1[_0x6d94('0x39')],{'$or':_[_0x6d94('0x3a')](_0xa031d1[_0x6d94('0x2c')],function(_0x3649d6){var _0x43d517={};_0x43d517[_0x3649d6]={'$like':'%'+_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x38')]+'%'};return _0x43d517;})});}_0xa031d1=_[_0x6d94('0x37')]({},_0xa031d1,_0x3e7be8[_0x6d94('0x3b')]);var _0x49d93a={'where':_0xa031d1[_0x6d94('0x39')]};return db[_0x6d94('0x24')][_0x6d94('0x18')](_0x49d93a)[_0x6d94('0x1e')](function(_0x3a292f){_0x3e56de[_0x6d94('0x18')]=_0x3a292f;if(_0x3e7be8[_0x6d94('0x27')][_0x6d94('0x3c')]){_0xa031d1[_0x6d94('0x3d')]=[{'all':!![]}];}return db['ChatQueueReport'][_0x6d94('0x3e')](_0xa031d1);})[_0x6d94('0x1e')](function(_0xf873c1){_0x3e56de[_0x6d94('0x3f')]=_0xf873c1;return _0x3e56de;})[_0x6d94('0x1e')](respondWithFilteredResult(_0x4c5490,_0xa031d1))[_0x6d94('0x40')](handleError(_0x4c5490,null));};exports['show']=function(_0xf7b3a,_0x59735f){var _0x3201ac={'raw':!![],'where':{'id':_0xf7b3a[_0x6d94('0x41')]['id']}},_0x5ad444={};_0x5ad444[_0x6d94('0x2b')]=_['keys'](db[_0x6d94('0x24')][_0x6d94('0x25')]);_0x5ad444[_0x6d94('0x27')]=_[_0x6d94('0x26')](_0xf7b3a['query']);_0x5ad444[_0x6d94('0x29')]=_[_0x6d94('0x2a')](_0x5ad444['model'],_0x5ad444[_0x6d94('0x27')]);_0x3201ac[_0x6d94('0x2c')]=_[_0x6d94('0x2a')](_0x5ad444[_0x6d94('0x2b')],qs[_0x6d94('0x2d')](_0xf7b3a[_0x6d94('0x27')][_0x6d94('0x2d')]));_0x3201ac[_0x6d94('0x2c')]=_0x3201ac[_0x6d94('0x2c')]['length']?_0x3201ac[_0x6d94('0x2c')]:_0x5ad444[_0x6d94('0x2b')];if(_0xf7b3a[_0x6d94('0x27')][_0x6d94('0x3c')]){_0x3201ac[_0x6d94('0x3d')]=[{'all':!![]}];}_0x3201ac=_[_0x6d94('0x37')]({},_0x3201ac,_0xf7b3a[_0x6d94('0x3b')]);return db['ChatQueueReport'][_0x6d94('0x42')](_0x3201ac)[_0x6d94('0x1e')](handleEntityNotFound(_0x59735f,null))[_0x6d94('0x1e')](respondWithResult(_0x59735f,null))[_0x6d94('0x40')](handleError(_0x59735f,null));};exports[_0x6d94('0x43')]=function(_0x35d5e0,_0x437ed0){return db[_0x6d94('0x24')]['create'](_0x35d5e0[_0x6d94('0x44')],{})[_0x6d94('0x1e')](respondWithResult(_0x437ed0,0xc9))[_0x6d94('0x40')](handleError(_0x437ed0,null));};exports[_0x6d94('0x1d')]=function(_0xc71679,_0x2a9729){if(_0xc71679[_0x6d94('0x44')]['id']){delete _0xc71679[_0x6d94('0x44')]['id'];}return db[_0x6d94('0x24')][_0x6d94('0x42')]({'where':{'id':_0xc71679['params']['id']}})[_0x6d94('0x1e')](handleEntityNotFound(_0x2a9729,null))[_0x6d94('0x1e')](saveUpdates(_0xc71679[_0x6d94('0x44')],null))[_0x6d94('0x1e')](respondWithResult(_0x2a9729,null))[_0x6d94('0x40')](handleError(_0x2a9729,null));};exports[_0x6d94('0x1f')]=function(_0x532d43,_0x37173d){return db['ChatQueueReport'][_0x6d94('0x42')]({'where':{'id':_0x532d43[_0x6d94('0x41')]['id']}})['then'](handleEntityNotFound(_0x37173d,null))['then'](removeEntity(_0x37173d,null))['catch'](handleError(_0x37173d,null));};exports[_0x6d94('0x45')]=function(_0x11d85f,_0x5c80f5){return db[_0x6d94('0x24')]['describe']()[_0x6d94('0x1e')](respondWithResult(_0x5c80f5,null))['catch'](handleError(_0x5c80f5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['moment','request-promise','./chatQueueReport.attributes','exports','define','ChatQueueReport','report_chat_queue','uniqueid','lodash','util','../../config/logger','api'];(function(_0x4b6646,_0x27d21e){var _0x4b50df=function(_0x154b4b){while(--_0x154b4b){_0x4b6646['push'](_0x4b6646['shift']());}};_0x4b50df(++_0x27d21e);}(_0x008c,0x188));var _0xc008=function(_0x5745d2,_0x536b58){_0x5745d2=_0x5745d2-0x0;var _0xd6df54=_0x008c[_0x5745d2];return _0xd6df54;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var logger=require(_0xc008('0x2'))(_0xc008('0x3'));var moment=require(_0xc008('0x4'));var BPromise=require('bluebird');var rp=require(_0xc008('0x5'));var attributes=require(_0xc008('0x6'));module[_0xc008('0x7')]=function(_0x163bd9,_0x1cbe76){return _0x163bd9[_0xc008('0x8')](_0xc008('0x9'),attributes,{'tableName':_0xc008('0xa'),'paranoid':![],'indexes':[{'name':_0xc008('0xb'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe14b=['ChatQueueReport','report_chat_queue','uniqueid','lodash','util','moment','bluebird','./chatQueueReport.attributes','define'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xe14b,0x93));var _0xbe14=function(_0x216867,_0x46d549){_0x216867=_0x216867-0x0;var _0x8bbd9d=_0xe14b[_0x216867];return _0x8bbd9d;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xbe14('0x2'));var BPromise=require(_0xbe14('0x3'));var rp=require('request-promise');var attributes=require(_0xbe14('0x4'));module['exports']=function(_0x496c04,_0x1833e3){return _0x496c04[_0xbe14('0x5')](_0xbe14('0x6'),attributes,{'tableName':_0xbe14('0x7'),'paranoid':![],'indexes':[{'name':_0xbe14('0x8'),'fields':[_0xbe14('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['request\x20sent','error','message','result','catch','CreateChatQueueReport','create','body','options','raw','info','stringify','UpdateChatQueueReport','ChatQueueReport','update','where','limit','debug','lodash','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','ChatQueueReport,\x20%s,\x20%s'];(function(_0x237f07,_0x2142a9){var _0x22c133=function(_0x3e1280){while(--_0x3e1280){_0x237f07['push'](_0x237f07['shift']());}};_0x22c133(++_0x2142a9);}(_0xe2fe,0x86));var _0xee2f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe2fe[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xee2f('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xee2f('0x1'));var rs=require('randomstring');var fs=require('fs');var db=require(_0xee2f('0x2'))['db'];var utils=require(_0xee2f('0x3'));var logger=require(_0xee2f('0x4'))(_0xee2f('0x5'));var config=require(_0xee2f('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xee2f('0x7')][_0xee2f('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x49926b,_0x1533a0,_0x2e1c8c){return new BPromise(function(_0x5a7975,_0x3c4095){return client['request'](_0x49926b,_0x2e1c8c)[_0xee2f('0x9')](function(_0x36920f){logger['info'](_0xee2f('0xa'),_0x1533a0,_0xee2f('0xb'));logger['debug']('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x1533a0,'request\x20sent',JSON['stringify'](_0x36920f));if(_0x36920f[_0xee2f('0xc')]){if(_0x36920f['error']['code']===0x1f4){logger['error'](_0xee2f('0xa'),_0x1533a0,_0x36920f[_0xee2f('0xc')][_0xee2f('0xd')]);return _0x3c4095(_0x36920f[_0xee2f('0xc')][_0xee2f('0xd')]);}logger[_0xee2f('0xc')]('ChatQueueReport,\x20%s,\x20%s',_0x1533a0,_0x36920f[_0xee2f('0xc')]['message']);return _0x5a7975(_0x36920f[_0xee2f('0xc')][_0xee2f('0xd')]);}else{logger['info'](_0xee2f('0xa'),_0x1533a0,_0xee2f('0xb'));_0x5a7975(_0x36920f[_0xee2f('0xe')][_0xee2f('0xd')]);}})[_0xee2f('0xf')](function(_0x58f42a){logger[_0xee2f('0xc')]('ChatQueueReport,\x20%s,\x20%s',_0x1533a0,_0x58f42a);_0x3c4095(_0x58f42a);});});}exports[_0xee2f('0x10')]=function(_0x3359ff){var _0x502eb6=this;return new Promise(function(_0x550da7,_0x40b5bc){return db['ChatQueueReport'][_0xee2f('0x11')](_0x3359ff[_0xee2f('0x12')],{'raw':_0x3359ff[_0xee2f('0x13')]?_0x3359ff['options'][_0xee2f('0x14')]===undefined?!![]:![]:!![]})[_0xee2f('0x9')](function(_0x4db2cc){logger[_0xee2f('0x15')](_0xee2f('0x10'),_0x3359ff);logger['debug']('CreateChatQueueReport',_0x3359ff,JSON[_0xee2f('0x16')](_0x4db2cc));_0x550da7(_0x4db2cc);})[_0xee2f('0xf')](function(_0x1ea808){logger[_0xee2f('0xc')](_0xee2f('0x10'),_0x1ea808[_0xee2f('0xd')],_0x3359ff);_0x40b5bc(_0x502eb6[_0xee2f('0xc')](0x1f4,_0x1ea808['message']));});});};exports[_0xee2f('0x17')]=function(_0x2c47c5){var _0x15ceda=this;return new Promise(function(_0x70e308,_0x820101){return db[_0xee2f('0x18')][_0xee2f('0x19')](_0x2c47c5[_0xee2f('0x12')],{'raw':_0x2c47c5[_0xee2f('0x13')]?_0x2c47c5[_0xee2f('0x13')][_0xee2f('0x14')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2c47c5[_0xee2f('0x13')]?_0x2c47c5[_0xee2f('0x13')][_0xee2f('0x1a')]||null:null,'attributes':_0x2c47c5['options']?_0x2c47c5['options']['attributes']||null:null,'limit':_0x2c47c5[_0xee2f('0x13')]?_0x2c47c5[_0xee2f('0x13')][_0xee2f('0x1b')]||null:null})[_0xee2f('0x9')](function(_0x892a4e){logger[_0xee2f('0x15')]('UpdateChatQueueReport',_0x2c47c5);logger[_0xee2f('0x1c')]('UpdateChatQueueReport',_0x2c47c5,JSON[_0xee2f('0x16')](_0x892a4e));_0x70e308(_0x892a4e);})[_0xee2f('0xf')](function(_0x25ee9c){logger[_0xee2f('0xc')](_0xee2f('0x17'),_0x25ee9c['message'],_0x2c47c5);_0x820101(_0x15ceda[_0xee2f('0xc')](0x1f4,_0x25ee9c[_0xee2f('0xd')]));});});};
\ No newline at end of file
+var _0x65ff=['CreateChatQueueReport','ChatQueueReport','body','options','raw','then','debug','where','attributes','limit','UpdateChatQueueReport','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','ChatQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x73e614,_0x14eb36){var _0x490baa=function(_0x298cf8){while(--_0x298cf8){_0x73e614['push'](_0x73e614['shift']());}};_0x490baa(++_0x14eb36);}(_0x65ff,0x13f));var _0xf65f=function(_0x1b5fff,_0x4a7dad){_0x1b5fff=_0x1b5fff-0x0;var _0x31cc64=_0x65ff[_0x1b5fff];return _0x31cc64;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xf65f('0x0'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xf65f('0x1'));var logger=require(_0xf65f('0x2'))(_0xf65f('0x3'));var config=require(_0xf65f('0x4'));var jayson=require('jayson/promise');var client=jayson['client'][_0xf65f('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x191b21,_0x2827cc,_0x366243){return new BPromise(function(_0x29cdd9,_0x4a760f){return client[_0xf65f('0x6')](_0x191b21,_0x366243)['then'](function(_0x83d978){logger[_0xf65f('0x7')](_0xf65f('0x8'),_0x2827cc,_0xf65f('0x9'));logger['debug'](_0xf65f('0xa'),_0x2827cc,_0xf65f('0x9'),JSON[_0xf65f('0xb')](_0x83d978));if(_0x83d978[_0xf65f('0xc')]){if(_0x83d978['error'][_0xf65f('0xd')]===0x1f4){logger[_0xf65f('0xc')](_0xf65f('0x8'),_0x2827cc,_0x83d978[_0xf65f('0xc')][_0xf65f('0xe')]);return _0x4a760f(_0x83d978[_0xf65f('0xc')][_0xf65f('0xe')]);}logger['error'](_0xf65f('0x8'),_0x2827cc,_0x83d978[_0xf65f('0xc')][_0xf65f('0xe')]);return _0x29cdd9(_0x83d978[_0xf65f('0xc')][_0xf65f('0xe')]);}else{logger[_0xf65f('0x7')](_0xf65f('0x8'),_0x2827cc,_0xf65f('0x9'));_0x29cdd9(_0x83d978[_0xf65f('0xf')][_0xf65f('0xe')]);}})[_0xf65f('0x10')](function(_0x19597){logger[_0xf65f('0xc')]('ChatQueueReport,\x20%s,\x20%s',_0x2827cc,_0x19597);_0x4a760f(_0x19597);});});}exports[_0xf65f('0x11')]=function(_0x4aad22){var _0x3fc987=this;return new Promise(function(_0x565080,_0x919144){return db[_0xf65f('0x12')]['create'](_0x4aad22[_0xf65f('0x13')],{'raw':_0x4aad22[_0xf65f('0x14')]?_0x4aad22['options'][_0xf65f('0x15')]===undefined?!![]:![]:!![]})[_0xf65f('0x16')](function(_0x1379a8){logger[_0xf65f('0x7')](_0xf65f('0x11'),_0x4aad22);logger[_0xf65f('0x17')](_0xf65f('0x11'),_0x4aad22,JSON['stringify'](_0x1379a8));_0x565080(_0x1379a8);})[_0xf65f('0x10')](function(_0x4afa9a){logger[_0xf65f('0xc')](_0xf65f('0x11'),_0x4afa9a[_0xf65f('0xe')],_0x4aad22);_0x919144(_0x3fc987[_0xf65f('0xc')](0x1f4,_0x4afa9a['message']));});});};exports['UpdateChatQueueReport']=function(_0x2e532b){var _0x54ff8c=this;return new Promise(function(_0x572b46,_0x59b6fb){return db['ChatQueueReport']['update'](_0x2e532b[_0xf65f('0x13')],{'raw':_0x2e532b[_0xf65f('0x14')]?_0x2e532b[_0xf65f('0x14')][_0xf65f('0x15')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2e532b['options']?_0x2e532b[_0xf65f('0x14')][_0xf65f('0x18')]||null:null,'attributes':_0x2e532b[_0xf65f('0x14')]?_0x2e532b[_0xf65f('0x14')][_0xf65f('0x19')]||null:null,'limit':_0x2e532b[_0xf65f('0x14')]?_0x2e532b[_0xf65f('0x14')][_0xf65f('0x1a')]||null:null})[_0xf65f('0x16')](function(_0x50c54d){logger[_0xf65f('0x7')](_0xf65f('0x1b'),_0x2e532b);logger[_0xf65f('0x17')](_0xf65f('0x1b'),_0x2e532b,JSON[_0xf65f('0xb')](_0x50c54d));_0x572b46(_0x50c54d);})['catch'](function(_0x3898e8){logger[_0xf65f('0xc')](_0xf65f('0x1b'),_0x3898e8[_0xf65f('0xe')],_0x2e532b);_0x59b6fb(_0x54ff8c[_0xf65f('0xc')](0x1f4,_0x3898e8[_0xf65f('0xe')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd64f=['multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatQueueReport.controller','get','index','isAuthenticated','show','post','put','/:id','update','delete','exports'];(function(_0x4491ef,_0x5153d9){var _0x3c72dc=function(_0x4c467d){while(--_0x4c467d){_0x4491ef['push'](_0x4491ef['shift']());}};_0x3c72dc(++_0x5153d9);}(_0xd64f,0x6c));var _0xfd64=function(_0x553051,_0x353695){_0x553051=_0x553051-0x0;var _0x38c239=_0xd64f[_0x553051];return _0x38c239;};'use strict';var multer=require(_0xfd64('0x0'));var util=require(_0xfd64('0x1'));var path=require(_0xfd64('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xfd64('0x3')]();var auth=require(_0xfd64('0x4'));var interaction=require(_0xfd64('0x5'));var config=require(_0xfd64('0x6'));var controller=require(_0xfd64('0x7'));router[_0xfd64('0x8')]('/',auth['isAuthenticated'](),controller[_0xfd64('0x9')]);router['get']('/describe',auth[_0xfd64('0xa')](),controller['describe']);router[_0xfd64('0x8')]('/:id',auth[_0xfd64('0xa')](),controller[_0xfd64('0xb')]);router[_0xfd64('0xc')]('/',auth[_0xfd64('0xa')](),controller['create']);router[_0xfd64('0xd')](_0xfd64('0xe'),auth['isAuthenticated'](),controller[_0xfd64('0xf')]);router[_0xfd64('0x10')]('/:id',auth[_0xfd64('0xa')](),controller['destroy']);module[_0xfd64('0x11')]=router;
\ No newline at end of file
+var _0x318a=['express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','show','post','put','/:id','update','exports','multer','connect-timeout'];(function(_0x1a26e1,_0x48073c){var _0x1662fb=function(_0x513961){while(--_0x513961){_0x1a26e1['push'](_0x1a26e1['shift']());}};_0x1662fb(++_0x48073c);}(_0x318a,0x1e4));var _0xa318=function(_0x2a3a8b,_0x2552b2){_0x2a3a8b=_0x2a3a8b-0x0;var _0x7c1123=_0x318a[_0x2a3a8b];return _0x7c1123;};'use strict';var multer=require(_0xa318('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xa318('0x1'));var express=require(_0xa318('0x2'));var router=express[_0xa318('0x3')]();var auth=require(_0xa318('0x4'));var interaction=require(_0xa318('0x5'));var config=require(_0xa318('0x6'));var controller=require('./chatQueueReport.controller');router[_0xa318('0x7')]('/',auth[_0xa318('0x8')](),controller[_0xa318('0x9')]);router[_0xa318('0x7')](_0xa318('0xa'),auth[_0xa318('0x8')](),controller[_0xa318('0xb')]);router[_0xa318('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xa318('0xc')]);router[_0xa318('0xd')]('/',auth[_0xa318('0x8')](),controller['create']);router[_0xa318('0xe')](_0xa318('0xf'),auth['isAuthenticated'](),controller[_0xa318('0x10')]);router['delete'](_0xa318('0xf'),auth[_0xa318('0x8')](),controller['destroy']);module[_0xa318('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbbb9=['queue','DATE','NOW','moment','exports','STRING','ENUM','account'];(function(_0x1f3ea1,_0x3680d6){var _0x18c7de=function(_0x59c713){while(--_0x59c713){_0x1f3ea1['push'](_0x1f3ea1['shift']());}};_0x18c7de(++_0x3680d6);}(_0xbbb9,0x1eb));var _0x9bbb=function(_0xe96788,_0x51cb47){_0xe96788=_0xe96788-0x0;var _0x1da103=_0xbbb9[_0xe96788];return _0x1da103;};'use strict';var moment=require(_0x9bbb('0x0'));var Sequelize=require('sequelize');module[_0x9bbb('0x1')]={'uniqueid':{'type':Sequelize[_0x9bbb('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x9bbb('0x3')](_0x9bbb('0x4'),'agent',_0x9bbb('0x5')),'allowNull':![],'defaultValue':_0x9bbb('0x5')},'transferredAt':{'type':Sequelize[_0x9bbb('0x6')],'allowNull':![],'defaultValue':Sequelize[_0x9bbb('0x7')]}};
\ No newline at end of file
+var _0x84e5=['moment','sequelize','exports','ENUM','account','queue','DATE'];(function(_0x1d9533,_0x382651){var _0x5c61d6=function(_0x28a106){while(--_0x28a106){_0x1d9533['push'](_0x1d9533['shift']());}};_0x5c61d6(++_0x382651);}(_0x84e5,0xc4));var _0x584e=function(_0x1477ef,_0x54a5d6){_0x1477ef=_0x1477ef-0x0;var _0x164acd=_0x84e5[_0x1477ef];return _0x164acd;};'use strict';var moment=require(_0x584e('0x0'));var Sequelize=require(_0x584e('0x1'));module[_0x584e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x584e('0x3')](_0x584e('0x4'),'agent',_0x584e('0x5')),'allowNull':![],'defaultValue':_0x584e('0x5')},'transferredAt':{'type':Sequelize[_0x584e('0x6')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f17=['fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','options','includeAll','include','ChatTransferReport','findAll','catch','params','find','create','body','destroy','describe','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','lodash','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','api','../../config/utils','sendStatus','status','end','count','offset','limit','Content-Range','json','apply','reject','save','update','then','error','name','send','index','rawAttributes','query','dateStart','dateEnd','keys','filters','model','attributes','intersection'];(function(_0x1ff97b,_0x5156d1){var _0x5d370a=function(_0x26e65a){while(--_0x26e65a){_0x1ff97b['push'](_0x1ff97b['shift']());}};_0x5d370a(++_0x5156d1);}(_0x4f17,0x9e));var _0x74f1=function(_0x47a5bd,_0x508329){_0x47a5bd=_0x47a5bd-0x0;var _0x5c2184=_0x4f17[_0x47a5bd];return _0x5c2184;};'use strict';var pdf=require(_0x74f1('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x74f1('0x1'));var zipdir=require(_0x74f1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x74f1('0x3'));var moment=require(_0x74f1('0x4'));var BPromise=require(_0x74f1('0x5'));var Mustache=require(_0x74f1('0x6'));var util=require(_0x74f1('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x74f1('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x74f1('0x9'));var squel=require('squel');var crypto=require(_0x74f1('0xa'));var jsforce=require(_0x74f1('0xb'));var deskjs=require(_0x74f1('0xc'));var toCsv=require('to-csv');var querystring=require(_0x74f1('0xd'));var Papa=require('papaparse');var qs=require(_0x74f1('0xe'));var logger=require('../../config/logger')(_0x74f1('0xf'));var utils=require(_0x74f1('0x10'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x28307c,_0x14484a){_0x14484a=_0x14484a||0xcc;return function(_0xd8e301){if(_0xd8e301){return _0x28307c[_0x74f1('0x11')](_0x14484a);}return _0x28307c[_0x74f1('0x12')](_0x14484a)[_0x74f1('0x13')]();};}function respondWithResult(_0x467e15,_0x3a2ce6){_0x3a2ce6=_0x3a2ce6||0xc8;return function(_0x400b0d){if(_0x400b0d){return _0x467e15[_0x74f1('0x12')](_0x3a2ce6)['json'](_0x400b0d);}};}function respondWithFilteredResult(_0xf135d0,_0x4e156f){return function(_0x41488b){if(_0x41488b){var _0x57e087=_0x41488b[_0x74f1('0x14')],_0x25f605=_0x4e156f[_0x74f1('0x15')],_0x17762d=_0x4e156f['offset']+_0x4e156f[_0x74f1('0x16')],_0x373b73;if(_0x17762d>=_0x57e087){_0x17762d=_0x57e087;_0x373b73=0xc8;}else{_0x373b73=0xce;}_0xf135d0[_0x74f1('0x12')](_0x373b73);return _0xf135d0['set'](_0x74f1('0x17'),_0x25f605+'-'+_0x17762d+'/'+_0x57e087)[_0x74f1('0x18')](_0x41488b);}return null;};}function patchUpdates(_0x520aae){return function(_0x1cc44b){try{jsonpatch[_0x74f1('0x19')](_0x1cc44b,_0x520aae,!![]);}catch(_0x37dbc7){return BPromise[_0x74f1('0x1a')](_0x37dbc7);}return _0x1cc44b[_0x74f1('0x1b')]();};}function saveUpdates(_0x4a10ab,_0x353918){return function(_0x85ab91){if(_0x85ab91){return _0x85ab91[_0x74f1('0x1c')](_0x4a10ab)[_0x74f1('0x1d')](function(_0x227fa9){return _0x227fa9;});}return null;};}function removeEntity(_0x27ae4b,_0x535590){return function(_0x551f9a){if(_0x551f9a){return _0x551f9a['destroy']()[_0x74f1('0x1d')](function(){_0x27ae4b[_0x74f1('0x12')](0xcc)[_0x74f1('0x13')]();});}};}function handleEntityNotFound(_0x749f27,_0x15c559){return function(_0x26d363){if(!_0x26d363){_0x749f27[_0x74f1('0x11')](0x194);}return _0x26d363;};}function handleError(_0x26cba4,_0x2c336b){_0x2c336b=_0x2c336b||0x1f4;return function(_0x15a96a){logger[_0x74f1('0x1e')](_0x15a96a['stack']);if(_0x15a96a['name']){delete _0x15a96a[_0x74f1('0x1f')];}_0x26cba4[_0x74f1('0x12')](_0x2c336b)[_0x74f1('0x20')](_0x15a96a);};}exports[_0x74f1('0x21')]=function(_0x458194,_0xddbb89){var _0xd079b5={},_0x5c1fa0={},_0x2f477e={'count':0x0,'rows':[]};var _0xad2a05=db['ChatTransferReport'][_0x74f1('0x22')];_0x5c1fa0['model']=_['keys'](_0xad2a05);var _0x2f0aee={'dateStart':_0x458194[_0x74f1('0x23')][_0x74f1('0x24')],'dateEnd':_0x458194[_0x74f1('0x23')][_0x74f1('0x25')]};delete _0x458194[_0x74f1('0x23')][_0x74f1('0x24')];delete _0x458194[_0x74f1('0x23')][_0x74f1('0x25')];_0x5c1fa0[_0x74f1('0x23')]=_[_0x74f1('0x26')](_0x458194[_0x74f1('0x23')]);_0x5c1fa0[_0x74f1('0x27')]=_['intersection'](_0x5c1fa0[_0x74f1('0x28')],_0x5c1fa0[_0x74f1('0x23')]);_0xd079b5[_0x74f1('0x29')]=_[_0x74f1('0x2a')](_0x5c1fa0['model'],qs[_0x74f1('0x2b')](_0x458194['query'][_0x74f1('0x2b')]));_0xd079b5[_0x74f1('0x29')]=_0xd079b5[_0x74f1('0x29')][_0x74f1('0x2c')]?_0xd079b5['attributes']:_0x5c1fa0[_0x74f1('0x28')];if(!_0x458194['query'][_0x74f1('0x2d')](_0x74f1('0x2e'))){_0xd079b5[_0x74f1('0x16')]=qs[_0x74f1('0x16')](_0x458194[_0x74f1('0x23')][_0x74f1('0x16')]);_0xd079b5[_0x74f1('0x15')]=qs[_0x74f1('0x15')](_0x458194[_0x74f1('0x23')]['offset']);}_0xd079b5[_0x74f1('0x2f')]=qs[_0x74f1('0x30')](_0x458194['query'][_0x74f1('0x30')]);_0xd079b5[_0x74f1('0x31')]=qs[_0x74f1('0x27')](_[_0x74f1('0x32')](_0x458194[_0x74f1('0x23')],_0x5c1fa0[_0x74f1('0x27')]));if(_0x2f0aee['dateStart']){if(_0x2f0aee[_0x74f1('0x25')]){_0x2f0aee[_0x74f1('0x25')]=moment(_0x2f0aee[_0x74f1('0x25')])[_0x74f1('0x33')](0x1,_0x74f1('0x34'));}else{_0x2f0aee[_0x74f1('0x25')]=moment(_0x2f0aee[_0x74f1('0x24')])[_0x74f1('0x33')](0x1,_0x74f1('0x34'));}_[_0x74f1('0x35')](_0xd079b5['where'],{'createdAt':{'$gte':_0x2f0aee[_0x74f1('0x24')],'$lte':_0x2f0aee['dateEnd']}});}if(_0x458194[_0x74f1('0x23')][_0x74f1('0x36')]){_0xd079b5['where']=_[_0x74f1('0x35')](_0xd079b5[_0x74f1('0x31')],{'$or':_['map'](_0xd079b5[_0x74f1('0x29')],function(_0x64706e){var _0x5c4939={};_0x5c4939[_0x64706e]={'$like':'%'+_0x458194[_0x74f1('0x23')][_0x74f1('0x36')]+'%'};return _0x5c4939;})});}_0xd079b5=_[_0x74f1('0x35')]({},_0xd079b5,_0x458194[_0x74f1('0x37')]);var _0x310e5e={'where':_0xd079b5[_0x74f1('0x31')]};return db['ChatTransferReport']['count'](_0x310e5e)[_0x74f1('0x1d')](function(_0x3e765a){_0x2f477e[_0x74f1('0x14')]=_0x3e765a;if(_0x458194[_0x74f1('0x23')][_0x74f1('0x38')]){_0xd079b5[_0x74f1('0x39')]=[{'all':!![]}];}return db[_0x74f1('0x3a')][_0x74f1('0x3b')](_0xd079b5);})[_0x74f1('0x1d')](function(_0x355820){_0x2f477e['rows']=_0x355820;return _0x2f477e;})['then'](respondWithFilteredResult(_0xddbb89,_0xd079b5))[_0x74f1('0x3c')](handleError(_0xddbb89,null));};exports['show']=function(_0x31403c,_0x3739c3){var _0x321ee5={'raw':!![],'where':{'id':_0x31403c[_0x74f1('0x3d')]['id']}},_0x5842eb={};_0x5842eb[_0x74f1('0x28')]=_[_0x74f1('0x26')](db[_0x74f1('0x3a')][_0x74f1('0x22')]);_0x5842eb[_0x74f1('0x23')]=_[_0x74f1('0x26')](_0x31403c[_0x74f1('0x23')]);_0x5842eb['filters']=_['intersection'](_0x5842eb[_0x74f1('0x28')],_0x5842eb['query']);_0x321ee5[_0x74f1('0x29')]=_[_0x74f1('0x2a')](_0x5842eb[_0x74f1('0x28')],qs[_0x74f1('0x2b')](_0x31403c[_0x74f1('0x23')][_0x74f1('0x2b')]));_0x321ee5[_0x74f1('0x29')]=_0x321ee5['attributes'][_0x74f1('0x2c')]?_0x321ee5[_0x74f1('0x29')]:_0x5842eb[_0x74f1('0x28')];if(_0x31403c[_0x74f1('0x23')][_0x74f1('0x38')]){_0x321ee5['include']=[{'all':!![]}];}_0x321ee5=_[_0x74f1('0x35')]({},_0x321ee5,_0x31403c[_0x74f1('0x37')]);return db[_0x74f1('0x3a')][_0x74f1('0x3e')](_0x321ee5)[_0x74f1('0x1d')](handleEntityNotFound(_0x3739c3,null))[_0x74f1('0x1d')](respondWithResult(_0x3739c3,null))[_0x74f1('0x3c')](handleError(_0x3739c3,null));};exports[_0x74f1('0x3f')]=function(_0xb15171,_0x513ada){return db[_0x74f1('0x3a')][_0x74f1('0x3f')](_0xb15171[_0x74f1('0x40')],{})['then'](respondWithResult(_0x513ada,0xc9))['catch'](handleError(_0x513ada,null));};exports[_0x74f1('0x1c')]=function(_0xc3207b,_0x18e247){if(_0xc3207b[_0x74f1('0x40')]['id']){delete _0xc3207b[_0x74f1('0x40')]['id'];}return db[_0x74f1('0x3a')][_0x74f1('0x3e')]({'where':{'id':_0xc3207b[_0x74f1('0x3d')]['id']}})['then'](handleEntityNotFound(_0x18e247,null))[_0x74f1('0x1d')](saveUpdates(_0xc3207b[_0x74f1('0x40')],null))[_0x74f1('0x1d')](respondWithResult(_0x18e247,null))[_0x74f1('0x3c')](handleError(_0x18e247,null));};exports[_0x74f1('0x41')]=function(_0x3148d8,_0x49441a){return db[_0x74f1('0x3a')][_0x74f1('0x3e')]({'where':{'id':_0x3148d8['params']['id']}})[_0x74f1('0x1d')](handleEntityNotFound(_0x49441a,null))[_0x74f1('0x1d')](removeEntity(_0x49441a,null))[_0x74f1('0x3c')](handleError(_0x49441a,null));};exports[_0x74f1('0x42')]=function(_0x1da6fb,_0x400e81){return db[_0x74f1('0x3a')][_0x74f1('0x42')]()[_0x74f1('0x1d')](respondWithResult(_0x400e81,null))[_0x74f1('0x3c')](handleError(_0x400e81,null));};
\ No newline at end of file
+var _0x2e1e=['destroy','sendStatus','stack','name','index','ChatTransferReport','rawAttributes','model','query','dateEnd','dateStart','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','sort','pick','add','day','filter','where','map','merge','options','count','includeAll','include','rows','params','find','catch','create','body','describe','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','status','end','offset','set','Content-Range','json','apply','save','update','then'];(function(_0x558678,_0x58f535){var _0x1afa93=function(_0x51d196){while(--_0x51d196){_0x558678['push'](_0x558678['shift']());}};_0x1afa93(++_0x58f535);}(_0x2e1e,0x17a));var _0xe2e1=function(_0x65c50e,_0x1aa926){_0x65c50e=_0x65c50e-0x0;var _0x4573e7=_0x2e1e[_0x65c50e];return _0x4573e7;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe2e1('0x0'));var zipdir=require(_0xe2e1('0x1'));var jsonpatch=require(_0xe2e1('0x2'));var rp=require('request-promise');var moment=require(_0xe2e1('0x3'));var BPromise=require(_0xe2e1('0x4'));var Mustache=require(_0xe2e1('0x5'));var util=require(_0xe2e1('0x6'));var path=require(_0xe2e1('0x7'));var sox=require('sox');var csv=require(_0xe2e1('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xe2e1('0x9'));var squel=require(_0xe2e1('0xa'));var crypto=require(_0xe2e1('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xe2e1('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe2e1('0xd'));var Redis=require(_0xe2e1('0xe'));var qs=require(_0xe2e1('0xf'));var logger=require(_0xe2e1('0x10'))(_0xe2e1('0x11'));var utils=require(_0xe2e1('0x12'));var config=require(_0xe2e1('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xf9ec26,_0x561ad1){_0x561ad1=_0x561ad1||0xcc;return function(_0x58dc12){if(_0x58dc12){return _0xf9ec26['sendStatus'](_0x561ad1);}return _0xf9ec26[_0xe2e1('0x14')](_0x561ad1)[_0xe2e1('0x15')]();};}function respondWithResult(_0x3f1abb,_0x4b6b77){_0x4b6b77=_0x4b6b77||0xc8;return function(_0x47e1ae){if(_0x47e1ae){return _0x3f1abb[_0xe2e1('0x14')](_0x4b6b77)['json'](_0x47e1ae);}};}function respondWithFilteredResult(_0x93847e,_0x4cad8b){return function(_0x25eb1f){if(_0x25eb1f){var _0x500370=_0x25eb1f['count'],_0x214761=_0x4cad8b['offset'],_0x47ef4a=_0x4cad8b[_0xe2e1('0x16')]+_0x4cad8b['limit'],_0x3c253b;if(_0x47ef4a>=_0x500370){_0x47ef4a=_0x500370;_0x3c253b=0xc8;}else{_0x3c253b=0xce;}_0x93847e[_0xe2e1('0x14')](_0x3c253b);return _0x93847e[_0xe2e1('0x17')](_0xe2e1('0x18'),_0x214761+'-'+_0x47ef4a+'/'+_0x500370)[_0xe2e1('0x19')](_0x25eb1f);}return null;};}function patchUpdates(_0x5dc0ea){return function(_0x5702cc){try{jsonpatch[_0xe2e1('0x1a')](_0x5702cc,_0x5dc0ea,!![]);}catch(_0x4b0417){return BPromise['reject'](_0x4b0417);}return _0x5702cc[_0xe2e1('0x1b')]();};}function saveUpdates(_0x140d44,_0x3d9bfd){return function(_0x55fc6e){if(_0x55fc6e){return _0x55fc6e[_0xe2e1('0x1c')](_0x140d44)[_0xe2e1('0x1d')](function(_0x35c837){return _0x35c837;});}return null;};}function removeEntity(_0x4b5ef5,_0x1c0366){return function(_0x55b336){if(_0x55b336){return _0x55b336[_0xe2e1('0x1e')]()[_0xe2e1('0x1d')](function(){_0x4b5ef5[_0xe2e1('0x14')](0xcc)[_0xe2e1('0x15')]();});}};}function handleEntityNotFound(_0x2f51f7,_0x3c735a){return function(_0x2dd8eb){if(!_0x2dd8eb){_0x2f51f7[_0xe2e1('0x1f')](0x194);}return _0x2dd8eb;};}function handleError(_0x14a576,_0x1eeee5){_0x1eeee5=_0x1eeee5||0x1f4;return function(_0x12220d){logger['error'](_0x12220d[_0xe2e1('0x20')]);if(_0x12220d[_0xe2e1('0x21')]){delete _0x12220d[_0xe2e1('0x21')];}_0x14a576[_0xe2e1('0x14')](_0x1eeee5)['send'](_0x12220d);};}exports[_0xe2e1('0x22')]=function(_0x36cde1,_0x3c68d4){var _0x11eb9f={},_0x2d7135={},_0x277268={'count':0x0,'rows':[]};var _0x4f3b43=db[_0xe2e1('0x23')][_0xe2e1('0x24')];_0x2d7135[_0xe2e1('0x25')]=_['keys'](_0x4f3b43);var _0x195963={'dateStart':_0x36cde1[_0xe2e1('0x26')]['dateStart'],'dateEnd':_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x27')]};delete _0x36cde1['query'][_0xe2e1('0x28')];delete _0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x27')];_0x2d7135[_0xe2e1('0x26')]=_[_0xe2e1('0x29')](_0x36cde1[_0xe2e1('0x26')]);_0x2d7135[_0xe2e1('0x2a')]=_[_0xe2e1('0x2b')](_0x2d7135['model'],_0x2d7135[_0xe2e1('0x26')]);_0x11eb9f[_0xe2e1('0x2c')]=_[_0xe2e1('0x2b')](_0x2d7135[_0xe2e1('0x25')],qs[_0xe2e1('0x2d')](_0x36cde1['query'][_0xe2e1('0x2d')]));_0x11eb9f['attributes']=_0x11eb9f[_0xe2e1('0x2c')][_0xe2e1('0x2e')]?_0x11eb9f['attributes']:_0x2d7135[_0xe2e1('0x25')];if(!_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x2f')]('nolimit')){_0x11eb9f['limit']=qs[_0xe2e1('0x30')](_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x30')]);_0x11eb9f[_0xe2e1('0x16')]=qs[_0xe2e1('0x16')](_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x16')]);}_0x11eb9f['order']=qs['sort'](_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x31')]);_0x11eb9f['where']=qs[_0xe2e1('0x2a')](_[_0xe2e1('0x32')](_0x36cde1[_0xe2e1('0x26')],_0x2d7135[_0xe2e1('0x2a')]));if(_0x195963['dateStart']){if(_0x195963[_0xe2e1('0x27')]){_0x195963[_0xe2e1('0x27')]=moment(_0x195963[_0xe2e1('0x27')])[_0xe2e1('0x33')](0x1,'day');}else{_0x195963['dateEnd']=moment(_0x195963['dateStart'])[_0xe2e1('0x33')](0x1,_0xe2e1('0x34'));}_['merge'](_0x11eb9f['where'],{'createdAt':{'$gte':_0x195963['dateStart'],'$lte':_0x195963['dateEnd']}});}if(_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x35')]){_0x11eb9f[_0xe2e1('0x36')]=_['merge'](_0x11eb9f[_0xe2e1('0x36')],{'$or':_[_0xe2e1('0x37')](_0x11eb9f[_0xe2e1('0x2c')],function(_0x1d6f15){var _0x5c7be9={};_0x5c7be9[_0x1d6f15]={'$like':'%'+_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x35')]+'%'};return _0x5c7be9;})});}_0x11eb9f=_[_0xe2e1('0x38')]({},_0x11eb9f,_0x36cde1[_0xe2e1('0x39')]);var _0x37194f={'where':_0x11eb9f['where']};return db['ChatTransferReport'][_0xe2e1('0x3a')](_0x37194f)[_0xe2e1('0x1d')](function(_0x54a454){_0x277268[_0xe2e1('0x3a')]=_0x54a454;if(_0x36cde1[_0xe2e1('0x26')][_0xe2e1('0x3b')]){_0x11eb9f[_0xe2e1('0x3c')]=[{'all':!![]}];}return db[_0xe2e1('0x23')]['findAll'](_0x11eb9f);})[_0xe2e1('0x1d')](function(_0x3a6365){_0x277268[_0xe2e1('0x3d')]=_0x3a6365;return _0x277268;})[_0xe2e1('0x1d')](respondWithFilteredResult(_0x3c68d4,_0x11eb9f))['catch'](handleError(_0x3c68d4,null));};exports['show']=function(_0xf3ea0a,_0xdd5c48){var _0x2e3336={'raw':!![],'where':{'id':_0xf3ea0a[_0xe2e1('0x3e')]['id']}},_0x78359={};_0x78359[_0xe2e1('0x25')]=_[_0xe2e1('0x29')](db[_0xe2e1('0x23')][_0xe2e1('0x24')]);_0x78359['query']=_[_0xe2e1('0x29')](_0xf3ea0a['query']);_0x78359[_0xe2e1('0x2a')]=_[_0xe2e1('0x2b')](_0x78359[_0xe2e1('0x25')],_0x78359[_0xe2e1('0x26')]);_0x2e3336[_0xe2e1('0x2c')]=_[_0xe2e1('0x2b')](_0x78359['model'],qs[_0xe2e1('0x2d')](_0xf3ea0a['query'][_0xe2e1('0x2d')]));_0x2e3336[_0xe2e1('0x2c')]=_0x2e3336[_0xe2e1('0x2c')][_0xe2e1('0x2e')]?_0x2e3336[_0xe2e1('0x2c')]:_0x78359[_0xe2e1('0x25')];if(_0xf3ea0a[_0xe2e1('0x26')][_0xe2e1('0x3b')]){_0x2e3336['include']=[{'all':!![]}];}_0x2e3336=_[_0xe2e1('0x38')]({},_0x2e3336,_0xf3ea0a['options']);return db[_0xe2e1('0x23')][_0xe2e1('0x3f')](_0x2e3336)[_0xe2e1('0x1d')](handleEntityNotFound(_0xdd5c48,null))['then'](respondWithResult(_0xdd5c48,null))[_0xe2e1('0x40')](handleError(_0xdd5c48,null));};exports[_0xe2e1('0x41')]=function(_0x3987cf,_0x18563a){return db[_0xe2e1('0x23')][_0xe2e1('0x41')](_0x3987cf[_0xe2e1('0x42')],{})[_0xe2e1('0x1d')](respondWithResult(_0x18563a,0xc9))[_0xe2e1('0x40')](handleError(_0x18563a,null));};exports[_0xe2e1('0x1c')]=function(_0x1fe3f0,_0x303a17){if(_0x1fe3f0[_0xe2e1('0x42')]['id']){delete _0x1fe3f0[_0xe2e1('0x42')]['id'];}return db['ChatTransferReport'][_0xe2e1('0x3f')]({'where':{'id':_0x1fe3f0[_0xe2e1('0x3e')]['id']}})['then'](handleEntityNotFound(_0x303a17,null))[_0xe2e1('0x1d')](saveUpdates(_0x1fe3f0[_0xe2e1('0x42')],null))[_0xe2e1('0x1d')](respondWithResult(_0x303a17,null))[_0xe2e1('0x40')](handleError(_0x303a17,null));};exports[_0xe2e1('0x1e')]=function(_0x54040f,_0x3ea95e){return db[_0xe2e1('0x23')][_0xe2e1('0x3f')]({'where':{'id':_0x54040f['params']['id']}})[_0xe2e1('0x1d')](handleEntityNotFound(_0x3ea95e,null))[_0xe2e1('0x1d')](removeEntity(_0x3ea95e,null))[_0xe2e1('0x40')](handleError(_0x3ea95e,null));};exports[_0xe2e1('0x43')]=function(_0x4d6785,_0x520552){return db[_0xe2e1('0x23')][_0xe2e1('0x43')]()[_0xe2e1('0x1d')](respondWithResult(_0x520552,null))[_0xe2e1('0x40')](handleError(_0x520552,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd151=['./chatTransferReport.attributes','exports','define','ChatTransferReport','report_chat_transfer','uniqueid','lodash','util','../../config/logger','api','moment','request-promise'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd151,0x17a));var _0x1d15=function(_0x3c1b2d,_0x23b1b9){_0x3c1b2d=_0x3c1b2d-0x0;var _0x412475=_0xd151[_0x3c1b2d];return _0x412475;};'use strict';var _=require(_0x1d15('0x0'));var util=require(_0x1d15('0x1'));var logger=require(_0x1d15('0x2'))(_0x1d15('0x3'));var moment=require(_0x1d15('0x4'));var BPromise=require('bluebird');var rp=require(_0x1d15('0x5'));var attributes=require(_0x1d15('0x6'));module[_0x1d15('0x7')]=function(_0x3bdc82,_0x211d85){return _0x3bdc82[_0x1d15('0x8')](_0x1d15('0x9'),attributes,{'tableName':_0x1d15('0xa'),'paranoid':![],'indexes':[{'name':_0x1d15('0xb'),'fields':[_0x1d15('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x12fd=['util','api','moment','bluebird','request-promise','./chatTransferReport.attributes','exports','define','ChatTransferReport','report_chat_transfer'];(function(_0x5c2748,_0x564960){var _0x59761d=function(_0x1ccb1a){while(--_0x1ccb1a){_0x5c2748['push'](_0x5c2748['shift']());}};_0x59761d(++_0x564960);}(_0x12fd,0x19a));var _0xd12f=function(_0x5f0e04,_0x589314){_0x5f0e04=_0x5f0e04-0x0;var _0x367ba6=_0x12fd[_0x5f0e04];return _0x367ba6;};'use strict';var _=require('lodash');var util=require(_0xd12f('0x0'));var logger=require('../../config/logger')(_0xd12f('0x1'));var moment=require(_0xd12f('0x2'));var BPromise=require(_0xd12f('0x3'));var rp=require(_0xd12f('0x4'));var attributes=require(_0xd12f('0x5'));module[_0xd12f('0x6')]=function(_0x204657,_0x2902cd){return _0x204657[_0xd12f('0x7')](_0xd12f('0x8'),attributes,{'tableName':_0xd12f('0x9'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5110=['catch','lodash','moment','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','ChatTransferReport,\x20%s,\x20%s','request\x20sent','stringify','error','info','result','message'];(function(_0x5157d2,_0x2db4c5){var _0x16dbc6=function(_0x24e21b){while(--_0x24e21b){_0x5157d2['push'](_0x5157d2['shift']());}};_0x16dbc6(++_0x2db4c5);}(_0x5110,0x1ef));var _0x0511=function(_0x2ec35e,_0x4ae5c3){_0x2ec35e=_0x2ec35e-0x0;var _0x2d2211=_0x5110[_0x2ec35e];return _0x2d2211;};'use strict';var _=require(_0x0511('0x0'));var util=require('util');var moment=require(_0x0511('0x1'));var BPromise=require('bluebird');var rs=require(_0x0511('0x2'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x0511('0x3'));var logger=require(_0x0511('0x4'))(_0x0511('0x5'));var config=require(_0x0511('0x6'));var jayson=require(_0x0511('0x7'));var client=jayson[_0x0511('0x8')][_0x0511('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1b1a44,_0x14c7eb,_0x39978e){return new BPromise(function(_0x3b4e0d,_0x4e1f8a){return client[_0x0511('0xa')](_0x1b1a44,_0x39978e)['then'](function(_0x4d7046){logger['info'](_0x0511('0xb'),_0x14c7eb,_0x0511('0xc'));logger['debug']('ChatTransferReport,\x20%s,\x20%s,\x20%s',_0x14c7eb,_0x0511('0xc'),JSON[_0x0511('0xd')](_0x4d7046));if(_0x4d7046[_0x0511('0xe')]){if(_0x4d7046[_0x0511('0xe')]['code']===0x1f4){logger[_0x0511('0xe')]('ChatTransferReport,\x20%s,\x20%s',_0x14c7eb,_0x4d7046[_0x0511('0xe')]['message']);return _0x4e1f8a(_0x4d7046['error']['message']);}logger[_0x0511('0xe')](_0x0511('0xb'),_0x14c7eb,_0x4d7046['error']['message']);return _0x3b4e0d(_0x4d7046['error']['message']);}else{logger[_0x0511('0xf')](_0x0511('0xb'),_0x14c7eb,_0x0511('0xc'));_0x3b4e0d(_0x4d7046[_0x0511('0x10')][_0x0511('0x11')]);}})[_0x0511('0x12')](function(_0x556ab1){logger['error']('ChatTransferReport,\x20%s,\x20%s',_0x14c7eb,_0x556ab1);_0x4e1f8a(_0x556ab1);});});}
\ No newline at end of file
+var _0x5a9b=['message','result','catch','lodash','util','moment','randomstring','../../config/utils','rpc','../../config/environment','client','request','ChatTransferReport,\x20%s,\x20%s','request\x20sent','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','code','error'];(function(_0x299bc5,_0x47e495){var _0xe524d5=function(_0x40a0e8){while(--_0x40a0e8){_0x299bc5['push'](_0x299bc5['shift']());}};_0xe524d5(++_0x47e495);}(_0x5a9b,0x1b3));var _0xb5a9=function(_0x2aafd0,_0x193383){_0x2aafd0=_0x2aafd0-0x0;var _0x2322d9=_0x5a9b[_0x2aafd0];return _0x2322d9;};'use strict';var _=require(_0xb5a9('0x0'));var util=require(_0xb5a9('0x1'));var moment=require(_0xb5a9('0x2'));var BPromise=require('bluebird');var rs=require(_0xb5a9('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xb5a9('0x4'));var logger=require('../../config/logger')(_0xb5a9('0x5'));var config=require(_0xb5a9('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xb5a9('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0xcd5e5d,_0x440721,_0x91db0c){return new BPromise(function(_0x15f58b,_0x3eed62){return client[_0xb5a9('0x8')](_0xcd5e5d,_0x91db0c)['then'](function(_0x479f28){logger['info'](_0xb5a9('0x9'),_0x440721,_0xb5a9('0xa'));logger[_0xb5a9('0xb')](_0xb5a9('0xc'),_0x440721,_0xb5a9('0xa'),JSON['stringify'](_0x479f28));if(_0x479f28['error']){if(_0x479f28['error'][_0xb5a9('0xd')]===0x1f4){logger[_0xb5a9('0xe')](_0xb5a9('0x9'),_0x440721,_0x479f28[_0xb5a9('0xe')]['message']);return _0x3eed62(_0x479f28['error'][_0xb5a9('0xf')]);}logger[_0xb5a9('0xe')](_0xb5a9('0x9'),_0x440721,_0x479f28[_0xb5a9('0xe')][_0xb5a9('0xf')]);return _0x15f58b(_0x479f28[_0xb5a9('0xe')][_0xb5a9('0xf')]);}else{logger['info'](_0xb5a9('0x9'),_0x440721,_0xb5a9('0xa'));_0x15f58b(_0x479f28[_0xb5a9('0x10')][_0xb5a9('0xf')]);}})[_0xb5a9('0x11')](function(_0x3f1978){logger[_0xb5a9('0xe')](_0xb5a9('0x9'),_0x440721,_0x3f1978);_0x3eed62(_0x3f1978);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb281=['delete','exports','multer','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','isAuthenticated','index','get','describe','/:id','show','post','create','put'];(function(_0xfd6743,_0x5083d9){var _0x391fd7=function(_0x353653){while(--_0x353653){_0xfd6743['push'](_0xfd6743['shift']());}};_0x391fd7(++_0x5083d9);}(_0xb281,0x6e));var _0x1b28=function(_0x25d173,_0x2d3cf0){_0x25d173=_0x25d173-0x0;var _0x4f30fd=_0xb281[_0x25d173];return _0x4f30fd;};'use strict';var multer=require(_0x1b28('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x1b28('0x1'));var express=require('express');var router=express[_0x1b28('0x2')]();var auth=require(_0x1b28('0x3'));var interaction=require(_0x1b28('0x4'));var config=require(_0x1b28('0x5'));var controller=require(_0x1b28('0x6'));router['get']('/',auth[_0x1b28('0x7')](),controller[_0x1b28('0x8')]);router[_0x1b28('0x9')]('/describe',auth[_0x1b28('0x7')](),controller[_0x1b28('0xa')]);router[_0x1b28('0x9')](_0x1b28('0xb'),auth['isAuthenticated'](),controller[_0x1b28('0xc')]);router[_0x1b28('0xd')]('/',auth[_0x1b28('0x7')](),controller[_0x1b28('0xe')]);router[_0x1b28('0xf')](_0x1b28('0xb'),auth['isAuthenticated'](),controller['update']);router[_0x1b28('0x10')]('/:id',auth[_0x1b28('0x7')](),controller['destroy']);module[_0x1b28('0x11')]=router;
\ No newline at end of file
+var _0xfadb=['path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','get','/describe','isAuthenticated','describe','show','post','create','/:id','delete','destroy','exports','multer','util'];(function(_0x47e6b5,_0x3f4de4){var _0x536cee=function(_0x3c1e8a){while(--_0x3c1e8a){_0x47e6b5['push'](_0x47e6b5['shift']());}};_0x536cee(++_0x3f4de4);}(_0xfadb,0xda));var _0xbfad=function(_0x3b231a,_0x53a00d){_0x3b231a=_0x3b231a-0x0;var _0x18d67a=_0xfadb[_0x3b231a];return _0x18d67a;};'use strict';var multer=require(_0xbfad('0x0'));var util=require(_0xbfad('0x1'));var path=require(_0xbfad('0x2'));var timeout=require('connect-timeout');var express=require(_0xbfad('0x3'));var router=express[_0xbfad('0x4')]();var auth=require(_0xbfad('0x5'));var interaction=require(_0xbfad('0x6'));var config=require(_0xbfad('0x7'));var controller=require(_0xbfad('0x8'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xbfad('0x9')](_0xbfad('0xa'),auth[_0xbfad('0xb')](),controller[_0xbfad('0xc')]);router['get']('/:id',auth[_0xbfad('0xb')](),controller[_0xbfad('0xd')]);router[_0xbfad('0xe')]('/',auth[_0xbfad('0xb')](),controller[_0xbfad('0xf')]);router['put'](_0xbfad('0x10'),auth[_0xbfad('0xb')](),controller['update']);router[_0xbfad('0x11')]('/:id',auth[_0xbfad('0xb')](),controller[_0xbfad('0x12')]);module[_0xbfad('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7da=['alternate','System','sequelize','randomstring','exports','STRING','address','email','Agent','#9f946a','#ffffff','INTEGER','BOOLEAN','rounded','squared','We\x20are\x20here!','Chat','Contact\x20us','Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Skip','ENUM','star','thumb','stringify','input','name','text','getDataValue','parse','onlineForm','setDataValue','TEXT','textarea','Comments','offlineForm','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.','New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.','Send','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','bottom_right'];(function(_0x4b9ff7,_0x2609f1){var _0x1e49df=function(_0x8fc5fe){while(--_0x8fc5fe){_0x4b9ff7['push'](_0x4b9ff7['shift']());}};_0x1e49df(++_0x2609f1);}(_0xc7da,0xf2));var _0xac7d=function(_0x3610a2,_0x105284){_0x3610a2=_0x3610a2-0x0;var _0x18ff68=_0xc7da[_0x3610a2];return _0x18ff68;};'use strict';var Sequelize=require(_0xac7d('0x0'));var rs=require(_0xac7d('0x1'));module[_0xac7d('0x2')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'address':{'type':Sequelize[_0xac7d('0x3')],'allowNull':![],'unique':_0xac7d('0x4')},'description':{'type':Sequelize['STRING']},'mapKey':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x5')},'mapKeyOffline':{'type':Sequelize['STRING'],'defaultValue':_0xac7d('0x5')},'key':{'type':Sequelize[_0xac7d('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x6')},'customerAlias':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0xac7d('0x3')],'allowNull':![],'defaultValue':'#9f946a','validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0xac7d('0x3')],'allowNull':![],'defaultValue':_0xac7d('0x7'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xac7d('0x3')],'allowNull':![],'defaultValue':_0xac7d('0x8'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xac7d('0x9')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xac7d('0x3')]},'animation':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':!![]},'header_shape':{'type':Sequelize['ENUM'](_0xac7d('0xb'),_0xac7d('0xc')),'defaultValue':_0xac7d('0xb')},'header_online':{'type':Sequelize['STRING'],'defaultValue':_0xac7d('0xd')},'start_chat_button':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0xe')},'offline_chat_button':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':'Send'},'header_offline':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0xf')},'download_transcript':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0xac7d('0x9')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':'Powered\x20by\x20xCALLY'},'defaultWhiteLabel':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':!![]},'sitepic':{'type':Sequelize['TEXT']},'closingQuestion':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x10')},'formSubmitSuccessMessage':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x11')},'formSubmitFailureMessage':{'type':Sequelize['STRING'],'defaultValue':_0xac7d('0x12')},'noteTitle':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x13')},'placeholderMessage':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x14')},'closingMessage':{'type':Sequelize['STRING'],'defaultValue':_0xac7d('0x15')},'closingMessageButton':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':'Send'},'skipMessageButton':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x16')},'conditionAgreement':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ratingType':{'type':Sequelize[_0xac7d('0x17')](_0xac7d('0x18'),_0xac7d('0x19')),'defaultValue':'star'},'ratingStarsNumber':{'type':Sequelize[_0xac7d('0x9')],'defaultValue':0x5},'onlineForm':{'type':Sequelize['TEXT'],'defaultValue':function(){return JSON[_0xac7d('0x1a')]({'items':[{'type':_0xac7d('0x1b'),'variable':null,'config':{'placeholder':_0xac7d('0x1c'),'type':_0xac7d('0x1d'),'required':!![]},'props':{'title':_0xac7d('0x1c'),'helpText':''}},{'type':_0xac7d('0x1b'),'props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xac7d('0x5')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0xac7d('0x1e')]('onlineForm')?JSON[_0xac7d('0x1f')](this[_0xac7d('0x1e')](_0xac7d('0x20'))):{};},'set':function(_0x1c1f88){return this[_0xac7d('0x21')](_0xac7d('0x20'),JSON[_0xac7d('0x1a')](_0x1c1f88));}},'offlineForm':{'type':Sequelize[_0xac7d('0x22')],'defaultValue':function(){return JSON[_0xac7d('0x1a')]({'items':[{'type':_0xac7d('0x1b'),'props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':_0xac7d('0x5'),'type':_0xac7d('0x5')},'variable':null},{'type':_0xac7d('0x23'),'config':{'placeholder':_0xac7d('0x24')},'props':{'title':'Comments','helpText':'Leave\x20your\x20comments'}}],'fromKey':0x0});},'get':function(){return this['getDataValue'](_0xac7d('0x25'))?JSON[_0xac7d('0x1f')](this[_0xac7d('0x1e')]('offlineForm')):{};},'set':function(_0x51df23){return this['setDataValue']('offlineForm',JSON['stringify'](_0x51df23));}},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs['generate']();}},'autoclose':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0xac7d('0x3')]},'forwardOffline':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize['STRING']},'waitingTitle':{'type':Sequelize['STRING'],'defaultValue':_0xac7d('0x26')},'waitingMessage':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x27')},'offlineMessageSubject':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x28')},'offlineMessageBody':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x29')},'enableUnmanagedNote':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x2a')},'skipUnmanaged':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x16')},'sendUnmanaged':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x2b')},'enableCustomerAttachment':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'agentAvatar':{'type':Sequelize['TEXT']},'showAgentAvatar':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'timezone':{'type':Sequelize[_0xac7d('0x3')]},'notificationTemplate':{'type':Sequelize[_0xac7d('0x22')],'defaultValue':function(){return _0xac7d('0x2c');}},'notificationSound':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':'website_alias'},'waitForTheAssignedAgent':{'type':Sequelize[_0xac7d('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x2d')},'verticalAlignment':{'type':Sequelize[_0xac7d('0x9')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x2e')},'defaultTitle':{'type':Sequelize[_0xac7d('0x3')]},'customerAvatar':{'type':Sequelize[_0xac7d('0x22')]},'showCustomerAvatar':{'type':Sequelize[_0xac7d('0xa')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0xac7d('0x9')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xac7d('0x3')],'allowNull':![],'defaultValue':'#fafafa','validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xac7d('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xac7d('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xac7d('0x3')],'defaultValue':_0xac7d('0x2f')},'systemAvatar':{'type':Sequelize[_0xac7d('0x22')]}};
\ No newline at end of file
+var _0x2c91=['stringify','name','text','input','getDataValue','onlineForm','parse','setDataValue','textarea','Comments','Leave\x20your\x20comments','offlineForm','generate','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','bottom_right','alternate','#fafafa','System','sequelize','randomstring','exports','STRING','address','email','Agent','#9f946a','#ffffff','INTEGER','BOOLEAN','ENUM','squared','rounded','We\x20are\x20here!','Chat','Send','Form\x20submission\x20error','Note','Thanks\x20you\x20for\x20your\x20time!','Skip','thumb','star','TEXT'];(function(_0x12d3ab,_0x4531a5){var _0x3560db=function(_0x84d2ad){while(--_0x84d2ad){_0x12d3ab['push'](_0x12d3ab['shift']());}};_0x3560db(++_0x4531a5);}(_0x2c91,0x158));var _0x12c9=function(_0x7bc1c9,_0x17c1f6){_0x7bc1c9=_0x7bc1c9-0x0;var _0x374c12=_0x2c91[_0x7bc1c9];return _0x374c12;};'use strict';var Sequelize=require(_0x12c9('0x0'));var rs=require(_0x12c9('0x1'));module[_0x12c9('0x2')]={'name':{'type':Sequelize[_0x12c9('0x3')],'allowNull':![]},'address':{'type':Sequelize[_0x12c9('0x3')],'allowNull':![],'unique':_0x12c9('0x4')},'description':{'type':Sequelize[_0x12c9('0x3')]},'mapKey':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'email'},'mapKeyOffline':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x5')},'key':{'type':Sequelize[_0x12c9('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x6')},'customerAlias':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0x12c9('0x3')],'allowNull':![],'defaultValue':'#9f946a','validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0x12c9('0x3')],'allowNull':![],'defaultValue':_0x12c9('0x7'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x12c9('0x8'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0x12c9('0x9')],'defaultValue':0xf},'remote':{'type':Sequelize['STRING']},'animation':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0x12c9('0xb')]('rounded',_0x12c9('0xc')),'defaultValue':_0x12c9('0xd')},'header_online':{'type':Sequelize['STRING'],'defaultValue':_0x12c9('0xe')},'start_chat_button':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0xf')},'offline_chat_button':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x10')},'header_offline':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'Contact\x20us'},'download_transcript':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0x12c9('0x9')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'Powered\x20by\x20xCALLY'},'defaultWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'sitepic':{'type':Sequelize['TEXT']},'closingQuestion':{'type':Sequelize['STRING'],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'Form\x20properly\x20submitted'},'formSubmitFailureMessage':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x11')},'noteTitle':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x12')},'placeholderMessage':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'Type\x20a\x20message'},'closingMessage':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x13')},'closingMessageButton':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x10')},'skipMessageButton':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x14')},'conditionAgreement':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ratingType':{'type':Sequelize[_0x12c9('0xb')]('star',_0x12c9('0x15')),'defaultValue':_0x12c9('0x16')},'ratingStarsNumber':{'type':Sequelize[_0x12c9('0x9')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0x12c9('0x17')],'defaultValue':function(){return JSON[_0x12c9('0x18')]({'items':[{'type':'input','variable':null,'config':{'placeholder':_0x12c9('0x19'),'type':_0x12c9('0x1a'),'required':!![]},'props':{'title':_0x12c9('0x19'),'helpText':''}},{'type':_0x12c9('0x1b'),'props':{'title':_0x12c9('0x5'),'helpText':''},'config':{'required':!![],'placeholder':_0x12c9('0x5'),'type':_0x12c9('0x5')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0x12c9('0x1c')](_0x12c9('0x1d'))?JSON[_0x12c9('0x1e')](this[_0x12c9('0x1c')]('onlineForm')):{};},'set':function(_0x667aaa){return this[_0x12c9('0x1f')](_0x12c9('0x1d'),JSON[_0x12c9('0x18')](_0x667aaa));}},'offlineForm':{'type':Sequelize[_0x12c9('0x17')],'defaultValue':function(){return JSON[_0x12c9('0x18')]({'items':[{'type':_0x12c9('0x1b'),'props':{'title':_0x12c9('0x5'),'helpText':''},'config':{'required':!![],'placeholder':_0x12c9('0x5'),'type':_0x12c9('0x5')},'variable':null},{'type':_0x12c9('0x20'),'config':{'placeholder':_0x12c9('0x21')},'props':{'title':_0x12c9('0x21'),'helpText':_0x12c9('0x22')}}],'fromKey':0x0});},'get':function(){return this[_0x12c9('0x1c')](_0x12c9('0x23'))?JSON[_0x12c9('0x1e')](this[_0x12c9('0x1c')](_0x12c9('0x23'))):{};},'set':function(_0x222419){return this['setDataValue'](_0x12c9('0x23'),JSON[_0x12c9('0x18')](_0x222419));}},'token':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':function(){return rs[_0x12c9('0x24')]();}},'autoclose':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize['STRING']},'forwardOffline':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0x12c9('0x3')]},'waitingTitle':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x25')},'waitingMessage':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.'},'offlineMessageSubject':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':'New\x20offline\x20message\x20from\x20websiteName'},'offlineMessageBody':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x26')},'enableUnmanagedNote':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x27')},'skipUnmanaged':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x14')},'sendUnmanaged':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x10')},'enableCustomerAttachment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0x12c9('0x17')]},'showAgentAvatar':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'timezone':{'type':Sequelize[_0x12c9('0x3')]},'notificationTemplate':{'type':Sequelize[_0x12c9('0x17')],'defaultValue':function(){return _0x12c9('0x28');}},'notificationSound':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x29')},'waitForTheAssignedAgent':{'type':Sequelize[_0x12c9('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize['STRING'],'defaultValue':_0x12c9('0x2a')},'verticalAlignment':{'type':Sequelize[_0x12c9('0x9')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':_0x12c9('0x2b')},'defaultTitle':{'type':Sequelize[_0x12c9('0x3')]},'customerAvatar':{'type':Sequelize[_0x12c9('0x17')]},'showCustomerAvatar':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0x12c9('0x9')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0x12c9('0x3')],'allowNull':![],'defaultValue':_0x12c9('0x2c'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x12c9('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x12c9('0xa')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x12c9('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0x12c9('0x3')],'defaultValue':_0x12c9('0x2d')},'systemAvatar':{'type':Sequelize[_0x12c9('0x17')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7330=['papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','defaults','localhost','redis','./chatWebsite.socket','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','message','ChatWebsite,\x20%s,\x20%s','result','catch','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','sendStatus','name','send','ChatWebsite','rawAttributes','model','dateStart','dateEnd','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','day','add','merge','filter','map','count','includeAll','include','findAll','rows','show','params','length','options','find','create','body','describe','ChatWebsiteId','getDispositions','findOne','Disposition','order','pick','removeDispositions','ids','addAnswer','CannedAnswer','removeAnswers','addLogo','sitepic','file','agentAvatar','filename','customerAvatar','addSystemAvatar','systemAvatar','join','root','../../config/license/util','getLicense','custom','isNil','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','existsSync','server/files/images/avatars/','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','getSystemAvatar','server/files/images/avatars/system_avatar.png','notify','user-agent-parser','setUA','user-agent','getResult','chat','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','from','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','CmContact','DESC','ChatApplication','Applications','account','applications','list','orderBy','priority','asc','Contacts','contact','firstName','lastName','customerIp','referer','browser','version','format','%s\x20%s','unknown','device','%s\x20%s\x20%s','vendor','threadId','externalUrl','ChatInteraction','ContactId','interaction','spread','get','created','close','unmanaged','*,*,*,*','ChatMessage','AttachmentId','UserId','User','agent','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','mapKeyOffline','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','findOrCreate','readFileSync','server/files/templates/chatOfflineMessage.ejs','utf8','toPairs','offlineMessageBody','ChatOfflineMessage','MailAccount','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','email','forwardOfflineAddress','offlineMessageSubject','addInteraction','omit','getInteractions','Contact','Owner','fullname','Tag','color','tag','Command','getSnippet','timezone','iftime\x20%s,%s','iftime\x20%s','indexOf','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','No\x20timezone','interval','inspect','Interval','Intervals','getProactiveActions','virtual','License','increment','chatLicenseExceeded','push','some','remote','headers','x-forwarded-for','connection','remoteAddress','replace','render','alignment','verticalAlignment','addApplications','sequelize','getApplications','addProactiveActions','chatProactiveAction','ChatProactiveAction','getFields','online','false','offlineForm','onlineForm','items','fromKey','addAgents','emit','userChatWebsite:save','removeAgents','userChatWebsite:remove','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv'];(function(_0x5ee575,_0x3bc3ec){var _0x99e395=function(_0x34cae2){while(--_0x34cae2){_0x5ee575['push'](_0x5ee575['shift']());}};_0x99e395(++_0x3bc3ec);}(_0x7330,0x101));var _0x0733=function(_0x5ad3b6,_0x36c0bb){_0x5ad3b6=_0x5ad3b6-0x0;var _0x48eccf=_0x7330[_0x5ad3b6];return _0x48eccf;};'use strict';var pdf=require(_0x0733('0x0'));var emlformat=require(_0x0733('0x1'));var rimraf=require(_0x0733('0x2'));var zipdir=require(_0x0733('0x3'));var jsonpatch=require(_0x0733('0x4'));var rp=require(_0x0733('0x5'));var moment=require('moment');var BPromise=require(_0x0733('0x6'));var Mustache=require(_0x0733('0x7'));var util=require(_0x0733('0x8'));var path=require(_0x0733('0x9'));var sox=require(_0x0733('0xa'));var csv=require('to-csv');var ejs=require(_0x0733('0xb'));var fs=require('fs');var _=require(_0x0733('0xc'));var squel=require(_0x0733('0xd'));var crypto=require('crypto');var jsforce=require(_0x0733('0xe'));var deskjs=require(_0x0733('0xf'));var toCsv=require(_0x0733('0x10'));var querystring=require('querystring');var Papa=require(_0x0733('0x11'));var qs=require(_0x0733('0x12'));var logger=require(_0x0733('0x13'))(_0x0733('0x14'));var utils=require('../../config/utils');var config=require(_0x0733('0x15'));var db=require(_0x0733('0x16'))['db'];config['redis']=_[_0x0733('0x17')](config['redis'],{'host':_0x0733('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x0733('0x19')]);require(_0x0733('0x1a'))['register'](socket);var jayson=require(_0x0733('0x1b'));var client=jayson[_0x0733('0x1c')]['http']({'port':0x232c});var client9002=jayson['client'][_0x0733('0x1d')]({'port':0x232a});var client9003=jayson[_0x0733('0x1c')][_0x0733('0x1d')]({'port':0x232b});function respondWithRpcPromise(_0x10ed63,_0x175f05,_0x194c3f,_0xe658f4){return new BPromise(function(_0x4baead,_0x29f4f9){var _0xa72d1d=_0xe658f4||client;return _0xa72d1d[_0x0733('0x1e')](_0x10ed63,_0x194c3f)[_0x0733('0x1f')](function(_0x7d771d){logger[_0x0733('0x20')]('ChatWebsite,\x20%s,\x20%s',_0x175f05,_0x0733('0x21'));logger[_0x0733('0x22')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x175f05,_0x0733('0x21'),JSON[_0x0733('0x23')](_0x7d771d));if(_0x7d771d['error']){if(_0x7d771d['error']['code']===0x1f4){logger[_0x0733('0x24')]('ChatWebsite,\x20%s,\x20%s',_0x175f05,_0x7d771d[_0x0733('0x24')][_0x0733('0x25')]);return _0x29f4f9(_0x7d771d[_0x0733('0x24')][_0x0733('0x25')]);}logger[_0x0733('0x24')](_0x0733('0x26'),_0x175f05,_0x7d771d[_0x0733('0x24')][_0x0733('0x25')]);return _0x4baead(_0x7d771d[_0x0733('0x24')][_0x0733('0x25')]);}else{logger['info']('ChatWebsite,\x20%s,\x20%s',_0x175f05,_0x0733('0x21'));_0x4baead(_0x7d771d[_0x0733('0x27')][_0x0733('0x25')]);}})[_0x0733('0x28')](function(_0x5c4692){logger[_0x0733('0x24')](_0x0733('0x26'),_0x175f05,_0x5c4692);_0x29f4f9(_0x5c4692);});});}function respondWithStatusCode(_0x27d423,_0x5b4c34){_0x5b4c34=_0x5b4c34||0xcc;return function(_0x17e632){if(_0x17e632){return _0x27d423['sendStatus'](_0x5b4c34);}return _0x27d423[_0x0733('0x29')](_0x5b4c34)[_0x0733('0x2a')]();};}function respondWithResult(_0x108e0e,_0x415464){_0x415464=_0x415464||0xc8;return function(_0x222d1c){if(_0x222d1c){return _0x108e0e[_0x0733('0x29')](_0x415464)[_0x0733('0x2b')](_0x222d1c);}};}function respondWithFilteredResult(_0x1b8ad4,_0x42550c){return function(_0x3f22cc){if(_0x3f22cc){var _0x46b9b9=_0x3f22cc['count'],_0x416747=_0x42550c[_0x0733('0x2c')],_0x49812d=_0x42550c[_0x0733('0x2c')]+_0x42550c[_0x0733('0x2d')],_0x18b7e4;if(_0x49812d>=_0x46b9b9){_0x49812d=_0x46b9b9;_0x18b7e4=0xc8;}else{_0x18b7e4=0xce;}_0x1b8ad4[_0x0733('0x29')](_0x18b7e4);return _0x1b8ad4[_0x0733('0x2e')](_0x0733('0x2f'),_0x416747+'-'+_0x49812d+'/'+_0x46b9b9)['json'](_0x3f22cc);}return null;};}function patchUpdates(_0x27ad0f){return function(_0xace544){try{jsonpatch[_0x0733('0x30')](_0xace544,_0x27ad0f,!![]);}catch(_0x2c6d8f){return BPromise[_0x0733('0x31')](_0x2c6d8f);}return _0xace544[_0x0733('0x32')]();};}function saveUpdates(_0x929bd4,_0x19c120){return function(_0x2ab111){if(_0x2ab111){return _0x2ab111[_0x0733('0x33')](_0x929bd4)['then'](function(_0x18264b){return _0x18264b;});}return null;};}function removeEntity(_0x4a4203,_0x61ce41){return function(_0x34ca18){if(_0x34ca18){return _0x34ca18[_0x0733('0x34')]()['then'](function(){_0x4a4203[_0x0733('0x29')](0xcc)[_0x0733('0x2a')]();});}};}function handleEntityNotFound(_0x4d9f7d,_0x23601b){return function(_0x97ed3e){if(!_0x97ed3e){_0x4d9f7d[_0x0733('0x35')](0x194);}return _0x97ed3e;};}function handleError(_0x1e7dd8,_0x75a5a3){_0x75a5a3=_0x75a5a3||0x1f4;return function(_0x536113){logger[_0x0733('0x24')](_0x536113['stack']);if(_0x536113[_0x0733('0x36')]){delete _0x536113[_0x0733('0x36')];}_0x1e7dd8[_0x0733('0x29')](_0x75a5a3)[_0x0733('0x37')](_0x536113);};}exports['index']=function(_0x5984da,_0x3cddf3){var _0xb08f74={},_0x2f865c={},_0x527dba={'count':0x0,'rows':[]};var _0x44607f=db[_0x0733('0x38')][_0x0733('0x39')];_0x2f865c[_0x0733('0x3a')]=_['keys'](_0x44607f);var _0x47b471={'dateStart':_0x5984da['query'][_0x0733('0x3b')],'dateEnd':_0x5984da['query'][_0x0733('0x3c')]};delete _0x5984da[_0x0733('0x3d')][_0x0733('0x3b')];delete _0x5984da['query'][_0x0733('0x3c')];_0x2f865c['query']=_[_0x0733('0x3e')](_0x5984da[_0x0733('0x3d')]);_0x2f865c[_0x0733('0x3f')]=_[_0x0733('0x40')](_0x2f865c[_0x0733('0x3a')],_0x2f865c[_0x0733('0x3d')]);_0xb08f74[_0x0733('0x41')]=_[_0x0733('0x40')](_0x2f865c['model'],qs[_0x0733('0x42')](_0x5984da[_0x0733('0x3d')][_0x0733('0x42')]));_0xb08f74[_0x0733('0x41')]=_0xb08f74[_0x0733('0x41')]['length']?_0xb08f74[_0x0733('0x41')]:_0x2f865c[_0x0733('0x3a')];if(!_0x5984da['query'][_0x0733('0x43')](_0x0733('0x44'))){_0xb08f74[_0x0733('0x2d')]=qs['limit'](_0x5984da['query'][_0x0733('0x2d')]);_0xb08f74[_0x0733('0x2c')]=qs[_0x0733('0x2c')](_0x5984da['query'][_0x0733('0x2c')]);}_0xb08f74['order']=qs[_0x0733('0x45')](_0x5984da[_0x0733('0x3d')][_0x0733('0x45')]);_0xb08f74[_0x0733('0x46')]=qs[_0x0733('0x3f')](_['pick'](_0x5984da[_0x0733('0x3d')],_0x2f865c[_0x0733('0x3f')]));if(_0x47b471['dateStart']){if(_0x47b471[_0x0733('0x3c')]){_0x47b471[_0x0733('0x3c')]=moment(_0x47b471[_0x0733('0x3c')])['add'](0x1,_0x0733('0x47'));}else{_0x47b471[_0x0733('0x3c')]=moment(_0x47b471[_0x0733('0x3b')])[_0x0733('0x48')](0x1,_0x0733('0x47'));}_[_0x0733('0x49')](_0xb08f74[_0x0733('0x46')],{'createdAt':{'$gte':_0x47b471['dateStart'],'$lte':_0x47b471[_0x0733('0x3c')]}});}if(_0x5984da[_0x0733('0x3d')][_0x0733('0x4a')]){_0xb08f74[_0x0733('0x46')]=_[_0x0733('0x49')](_0xb08f74[_0x0733('0x46')],{'$or':_[_0x0733('0x4b')](_0xb08f74[_0x0733('0x41')],function(_0x349631){var _0x2af8da={};_0x2af8da[_0x349631]={'$like':'%'+_0x5984da['query'][_0x0733('0x4a')]+'%'};return _0x2af8da;})});}_0xb08f74=_['merge']({},_0xb08f74,_0x5984da['options']);var _0x3d3244={'where':_0xb08f74[_0x0733('0x46')]};return db['ChatWebsite'][_0x0733('0x4c')](_0x3d3244)[_0x0733('0x1f')](function(_0x168171){_0x527dba[_0x0733('0x4c')]=_0x168171;if(_0x5984da[_0x0733('0x3d')][_0x0733('0x4d')]){_0xb08f74[_0x0733('0x4e')]=[{'all':!![]}];}return db[_0x0733('0x38')][_0x0733('0x4f')](_0xb08f74);})[_0x0733('0x1f')](function(_0x27b25f){_0x527dba[_0x0733('0x50')]=_0x27b25f;return _0x527dba;})[_0x0733('0x1f')](respondWithFilteredResult(_0x3cddf3,_0xb08f74))[_0x0733('0x28')](handleError(_0x3cddf3,null));};exports[_0x0733('0x51')]=function(_0x3cd617,_0x424808){var _0x4678d6={'raw':![],'where':{'id':_0x3cd617[_0x0733('0x52')]['id']}},_0x4217c4={};_0x4217c4[_0x0733('0x3a')]=_['keys'](db[_0x0733('0x38')][_0x0733('0x39')]);_0x4217c4[_0x0733('0x3d')]=_['keys'](_0x3cd617[_0x0733('0x3d')]);_0x4217c4['filters']=_['intersection'](_0x4217c4[_0x0733('0x3a')],_0x4217c4[_0x0733('0x3d')]);_0x4678d6['attributes']=_[_0x0733('0x40')](_0x4217c4['model'],qs[_0x0733('0x42')](_0x3cd617[_0x0733('0x3d')]['fields']));_0x4678d6[_0x0733('0x41')]=_0x4678d6[_0x0733('0x41')][_0x0733('0x53')]?_0x4678d6['attributes']:_0x4217c4[_0x0733('0x3a')];if(_0x3cd617[_0x0733('0x3d')][_0x0733('0x4d')]){_0x4678d6[_0x0733('0x4e')]=[{'all':!![]}];}_0x4678d6=_[_0x0733('0x49')]({},_0x4678d6,_0x3cd617[_0x0733('0x54')]);return db['ChatWebsite'][_0x0733('0x55')](_0x4678d6)[_0x0733('0x1f')](handleEntityNotFound(_0x424808,null))[_0x0733('0x1f')](respondWithResult(_0x424808,null))[_0x0733('0x28')](handleError(_0x424808,null));};exports[_0x0733('0x56')]=function(_0x147b58,_0x1a83bf){return db['ChatWebsite']['create'](_0x147b58[_0x0733('0x57')],{})[_0x0733('0x1f')](respondWithResult(_0x1a83bf,0xc9))[_0x0733('0x28')](handleError(_0x1a83bf,null));};exports[_0x0733('0x33')]=function(_0x422639,_0x500727){if(_0x422639[_0x0733('0x57')]['id']){delete _0x422639[_0x0733('0x57')]['id'];}return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x422639[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x500727,null))[_0x0733('0x1f')](saveUpdates(_0x422639[_0x0733('0x57')],null))['then'](respondWithResult(_0x500727,null))[_0x0733('0x28')](handleError(_0x500727,null));};exports['destroy']=function(_0x2c8466,_0x3eb092){return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x2c8466['params']['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x3eb092,null))[_0x0733('0x1f')](removeEntity(_0x3eb092,null))[_0x0733('0x28')](handleError(_0x3eb092,null));};exports[_0x0733('0x58')]=function(_0x3d3ceb,_0x3b0234){return db['ChatWebsite'][_0x0733('0x58')]()[_0x0733('0x1f')](respondWithResult(_0x3b0234,null))['catch'](handleError(_0x3b0234,null));};exports['addDisposition']=function(_0x2529f1,_0x309e71,_0x3e8f05){if(_0x2529f1[_0x0733('0x57')]['id']){delete _0x2529f1[_0x0733('0x57')]['id'];}return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x2529f1[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x309e71,null))[_0x0733('0x1f')](function(_0x35b314){if(_0x35b314){_0x2529f1[_0x0733('0x57')][_0x0733('0x59')]=_0x35b314['id'];return db['Disposition'][_0x0733('0x56')](_0x2529f1['body']);}})[_0x0733('0x1f')](respondWithResult(_0x309e71,null))[_0x0733('0x28')](handleError(_0x309e71,null));};exports[_0x0733('0x5a')]=function(_0x42b88a,_0x7be083,_0x21282f){var _0x34d6b2={'raw':![],'where':{}};var _0x440d12={};var _0x3223bd={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x0733('0x5b')]({'where':{'id':_0x42b88a[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x7be083,null))[_0x0733('0x1f')](function(_0x30f014){if(_0x30f014){_0x440d12[_0x0733('0x3a')]=_[_0x0733('0x3e')](db[_0x0733('0x5c')][_0x0733('0x39')]);_0x440d12[_0x0733('0x3d')]=_['keys'](_0x42b88a['query']);_0x440d12[_0x0733('0x3f')]=_[_0x0733('0x40')](_0x440d12['model'],_0x440d12[_0x0733('0x3d')]);_0x34d6b2['attributes']=_[_0x0733('0x40')](_0x440d12['model'],qs[_0x0733('0x42')](_0x42b88a[_0x0733('0x3d')]['fields']));_0x34d6b2[_0x0733('0x41')]=_0x34d6b2[_0x0733('0x41')][_0x0733('0x53')]?_0x34d6b2[_0x0733('0x41')]:_0x440d12[_0x0733('0x3a')];if(!_0x42b88a[_0x0733('0x3d')][_0x0733('0x43')](_0x0733('0x44'))){_0x34d6b2[_0x0733('0x2d')]=qs[_0x0733('0x2d')](_0x42b88a['query'][_0x0733('0x2d')]);_0x34d6b2[_0x0733('0x2c')]=qs['offset'](_0x42b88a[_0x0733('0x3d')][_0x0733('0x2c')]);}_0x34d6b2[_0x0733('0x5d')]=qs[_0x0733('0x45')](_0x42b88a[_0x0733('0x3d')][_0x0733('0x45')]);_0x34d6b2['where']=qs[_0x0733('0x3f')](_[_0x0733('0x5e')](_0x42b88a[_0x0733('0x3d')],_0x440d12[_0x0733('0x3f')]));_0x34d6b2[_0x0733('0x46')][_0x0733('0x59')]=_0x30f014['id'];if(_0x42b88a['query'][_0x0733('0x4a')]){_0x34d6b2[_0x0733('0x46')]=_[_0x0733('0x49')](_0x34d6b2['where'],{'$or':_[_0x0733('0x4b')](_0x34d6b2[_0x0733('0x41')],function(_0x5c86c1){var _0x3080c9={};_0x3080c9[_0x5c86c1]={'$like':'%'+_0x42b88a[_0x0733('0x3d')][_0x0733('0x4a')]+'%'};return _0x3080c9;})});}_0x34d6b2=_[_0x0733('0x49')]({},_0x34d6b2,_0x42b88a[_0x0733('0x54')]);return db[_0x0733('0x5c')][_0x0733('0x4c')]({'where':_0x34d6b2[_0x0733('0x46')]})[_0x0733('0x1f')](function(_0x2858d6){_0x3223bd[_0x0733('0x4c')]=_0x2858d6;if(_0x42b88a[_0x0733('0x3d')][_0x0733('0x4d')]){_0x34d6b2[_0x0733('0x4e')]=[{'all':!![]}];}return db[_0x0733('0x5c')][_0x0733('0x4f')](_0x34d6b2);})[_0x0733('0x1f')](function(_0x5af448){_0x3223bd[_0x0733('0x50')]=_0x5af448;return _0x3223bd;});}})[_0x0733('0x1f')](respondWithFilteredResult(_0x7be083,_0x34d6b2))['catch'](handleError(_0x7be083,null));};exports[_0x0733('0x5f')]=function(_0x1ea915,_0x310770,_0x1134f0){var _0x15d5ac;return db['ChatWebsite'][_0x0733('0x55')]({'where':{'id':_0x1ea915[_0x0733('0x52')]['id']}})['then'](handleEntityNotFound(_0x310770,null))[_0x0733('0x1f')](function(_0x5a5291){if(_0x5a5291){return _0x5a5291[_0x0733('0x5f')](_0x1ea915[_0x0733('0x3d')][_0x0733('0x60')]);}})['then'](respondWithStatusCode(_0x310770,null))[_0x0733('0x28')](handleError(_0x310770,null));};exports[_0x0733('0x61')]=function(_0x1c20c0,_0x189c7c,_0x10449b){if(_0x1c20c0[_0x0733('0x57')]['id']){delete _0x1c20c0[_0x0733('0x57')]['id'];}return db['ChatWebsite'][_0x0733('0x55')]({'where':{'id':_0x1c20c0['params']['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x189c7c,null))[_0x0733('0x1f')](function(_0x112fbf){if(_0x112fbf){_0x1c20c0['body'][_0x0733('0x59')]=_0x112fbf['id'];return db[_0x0733('0x62')][_0x0733('0x56')](_0x1c20c0[_0x0733('0x57')]);}})[_0x0733('0x1f')](respondWithResult(_0x189c7c,null))[_0x0733('0x28')](handleError(_0x189c7c,null));};exports['getAnswers']=function(_0x178e7b,_0x5322b7,_0x11559d){var _0x493bd4={'raw':![],'where':{}};var _0x289301={};var _0x133b2a={'count':0x0,'rows':[]};return db['ChatWebsite']['findOne']({'where':{'id':_0x178e7b[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x5322b7,null))[_0x0733('0x1f')](function(_0x9a2233){if(_0x9a2233){_0x289301[_0x0733('0x3a')]=_[_0x0733('0x3e')](db[_0x0733('0x62')][_0x0733('0x39')]);_0x289301[_0x0733('0x3d')]=_['keys'](_0x178e7b['query']);_0x289301[_0x0733('0x3f')]=_[_0x0733('0x40')](_0x289301['model'],_0x289301[_0x0733('0x3d')]);_0x493bd4[_0x0733('0x41')]=_[_0x0733('0x40')](_0x289301['model'],qs['fields'](_0x178e7b[_0x0733('0x3d')][_0x0733('0x42')]));_0x493bd4[_0x0733('0x41')]=_0x493bd4[_0x0733('0x41')][_0x0733('0x53')]?_0x493bd4[_0x0733('0x41')]:_0x289301[_0x0733('0x3a')];if(!_0x178e7b['query'][_0x0733('0x43')](_0x0733('0x44'))){_0x493bd4[_0x0733('0x2d')]=qs[_0x0733('0x2d')](_0x178e7b[_0x0733('0x3d')][_0x0733('0x2d')]);_0x493bd4[_0x0733('0x2c')]=qs[_0x0733('0x2c')](_0x178e7b[_0x0733('0x3d')][_0x0733('0x2c')]);}_0x493bd4['order']=qs[_0x0733('0x45')](_0x178e7b[_0x0733('0x3d')]['sort']);_0x493bd4[_0x0733('0x46')]=qs['filters'](_[_0x0733('0x5e')](_0x178e7b[_0x0733('0x3d')],_0x289301[_0x0733('0x3f')]));_0x493bd4[_0x0733('0x46')][_0x0733('0x59')]=_0x9a2233['id'];if(_0x178e7b[_0x0733('0x3d')]['filter']){_0x493bd4['where']=_['merge'](_0x493bd4['where'],{'$or':_[_0x0733('0x4b')](_0x493bd4[_0x0733('0x41')],function(_0x3b5dec){var _0x17f00c={};_0x17f00c[_0x3b5dec]={'$like':'%'+_0x178e7b[_0x0733('0x3d')]['filter']+'%'};return _0x17f00c;})});}_0x493bd4=_[_0x0733('0x49')]({},_0x493bd4,_0x178e7b[_0x0733('0x54')]);return db['CannedAnswer'][_0x0733('0x4c')]({'where':_0x493bd4[_0x0733('0x46')]})['then'](function(_0x371e8f){_0x133b2a['count']=_0x371e8f;if(_0x178e7b[_0x0733('0x3d')][_0x0733('0x4d')]){_0x493bd4['include']=[{'all':!![]}];}return db[_0x0733('0x62')]['findAll'](_0x493bd4);})['then'](function(_0x475700){_0x133b2a[_0x0733('0x50')]=_0x475700;return _0x133b2a;});}})[_0x0733('0x1f')](respondWithFilteredResult(_0x5322b7,_0x493bd4))['catch'](handleError(_0x5322b7,null));};exports['removeAnswers']=function(_0x26ae31,_0x57c5ff,_0x71f612){var _0x29840e;return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x26ae31[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x57c5ff,null))[_0x0733('0x1f')](function(_0x3bcf0f){if(_0x3bcf0f){return _0x3bcf0f[_0x0733('0x63')](_0x26ae31[_0x0733('0x3d')][_0x0733('0x60')]);}})[_0x0733('0x1f')](respondWithStatusCode(_0x57c5ff,null))[_0x0733('0x28')](handleError(_0x57c5ff,null));};exports[_0x0733('0x64')]=function(_0x4047b8,_0x29f249,_0x4f82fa){_0x4047b8[_0x0733('0x57')][_0x0733('0x65')]=_0x4047b8[_0x0733('0x66')]['filename'];return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x4047b8[_0x0733('0x52')]['id']}})['then'](handleEntityNotFound(_0x29f249,null))['then'](saveUpdates(_0x4047b8[_0x0733('0x57')],null))[_0x0733('0x1f')](respondWithResult(_0x29f249,null))[_0x0733('0x28')](handleError(_0x29f249,null));};exports['addAvatar']=function(_0xdb1c55,_0x595dd0,_0x5cbf0e){_0xdb1c55[_0x0733('0x57')][_0x0733('0x67')]=_0xdb1c55[_0x0733('0x66')][_0x0733('0x68')];return db[_0x0733('0x38')]['find']({'where':{'id':_0xdb1c55[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x595dd0,null))[_0x0733('0x1f')](saveUpdates(_0xdb1c55[_0x0733('0x57')],null))[_0x0733('0x1f')](respondWithResult(_0x595dd0,null))[_0x0733('0x28')](handleError(_0x595dd0,null));};exports['addCustomerAvatar']=function(_0x10d8eb,_0x2e880f,_0x30f68e){_0x10d8eb['body'][_0x0733('0x69')]=_0x10d8eb['file']['filename'];return db['ChatWebsite'][_0x0733('0x55')]({'where':{'id':_0x10d8eb['params']['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x2e880f,null))[_0x0733('0x1f')](saveUpdates(_0x10d8eb[_0x0733('0x57')],null))['then'](respondWithResult(_0x2e880f,null))[_0x0733('0x28')](handleError(_0x2e880f,null));};exports[_0x0733('0x6a')]=function(_0x5d2e53,_0x12ca8c,_0x396805){_0x5d2e53[_0x0733('0x57')][_0x0733('0x6b')]=_0x5d2e53[_0x0733('0x66')]['filename'];return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x5d2e53[_0x0733('0x52')]['id']}})['then'](handleEntityNotFound(_0x12ca8c,null))[_0x0733('0x1f')](saveUpdates(_0x5d2e53[_0x0733('0x57')],null))[_0x0733('0x1f')](respondWithResult(_0x12ca8c,null))[_0x0733('0x28')](handleError(_0x12ca8c,null));};exports['getLogo']=function(_0x5691ac,_0x425528,_0x59a3db){var _0x10161e=path[_0x0733('0x6c')](config[_0x0733('0x6d')],'server/files/images/logos/default_logo.png');var _0x222dd2={'where':{'id':_0x5691ac['params']['id']},'attributes':['id',_0x0733('0x65')],'raw':!![]};var _0x64344b=![];return require(_0x0733('0x6e'))[_0x0733('0x6f')]()['then'](function(_0x14b145){if(_0x14b145){_0x64344b=_0x14b145[_0x0733('0x70')];}})[_0x0733('0x1f')](function(){return db[_0x0733('0x38')][_0x0733('0x55')](_0x222dd2);})[_0x0733('0x1f')](handleEntityNotFound(_0x425528,null))[_0x0733('0x1f')](function(_0x4506ce){if(_0x4506ce){if(!_[_0x0733('0x71')](_0x4506ce[_0x0733('0x65')])){if(fs['existsSync'](path[_0x0733('0x6c')](config[_0x0733('0x6d')],_0x0733('0x72'),_0x4506ce['sitepic']))&&_0x64344b){_0x10161e=path[_0x0733('0x6c')](config[_0x0733('0x6d')],_0x0733('0x72'),_0x4506ce[_0x0733('0x65')]);}}return _0x425528[_0x0733('0x73')](_0x10161e);}})[_0x0733('0x28')](handleError(_0x425528,null));};exports[_0x0733('0x74')]=function(_0x50119e,_0x5a8eaf,_0x2cfb6f){var _0x266515=path[_0x0733('0x6c')](config['root'],_0x0733('0x75'));var _0x6e19d8={'where':{'id':_0x50119e[_0x0733('0x52')]['id']},'attributes':['id','agentAvatar'],'raw':!![]};return db[_0x0733('0x38')][_0x0733('0x55')](_0x6e19d8)[_0x0733('0x1f')](handleEntityNotFound(_0x5a8eaf,null))['then'](function(_0x5a4607){if(_0x5a4607){if(!_[_0x0733('0x71')](_0x5a4607[_0x0733('0x67')])){if(fs[_0x0733('0x76')](path['join'](config['root'],_0x0733('0x77'),_0x5a4607['agentAvatar']))){_0x266515=path['join'](config[_0x0733('0x6d')],'server/files/images/avatars/',_0x5a4607[_0x0733('0x67')]);}}return _0x5a8eaf[_0x0733('0x73')](_0x266515);}})[_0x0733('0x28')](handleError(_0x5a8eaf,null));};exports[_0x0733('0x78')]=function(_0x26b236,_0x58b958,_0x5360cb){var _0xa7f118=path[_0x0733('0x6c')](config['root'],_0x0733('0x79'));var _0x3c451c={'where':{'id':_0x26b236[_0x0733('0x52')]['id']},'attributes':['id','customerAvatar','showCustomerAvatar'],'raw':!![]};return db['ChatWebsite']['find'](_0x3c451c)[_0x0733('0x1f')](handleEntityNotFound(_0x58b958,null))[_0x0733('0x1f')](function(_0x55b245){if(_0x55b245){if(!_['isNil'](_0x55b245[_0x0733('0x69')])){if(fs[_0x0733('0x76')](path[_0x0733('0x6c')](config[_0x0733('0x6d')],_0x0733('0x77'),_0x55b245[_0x0733('0x69')]))&&_0x55b245[_0x0733('0x7a')]){_0xa7f118=path[_0x0733('0x6c')](config['root'],_0x0733('0x77'),_0x55b245[_0x0733('0x69')]);}}return _0x58b958[_0x0733('0x73')](_0xa7f118);}})['catch'](handleError(_0x58b958,null));};exports[_0x0733('0x7b')]=function(_0x40f88c,_0x33721f,_0x30e9b5){var _0x43e85a=path[_0x0733('0x6c')](config[_0x0733('0x6d')],_0x0733('0x7c'));var _0x91c9c6={'where':{'id':_0x40f88c['params']['id']},'attributes':['id','systemAvatar'],'raw':!![]};return db[_0x0733('0x38')][_0x0733('0x55')](_0x91c9c6)['then'](handleEntityNotFound(_0x33721f,null))[_0x0733('0x1f')](function(_0x291606){if(_0x291606){if(!_[_0x0733('0x71')](_0x291606[_0x0733('0x6b')])){if(fs[_0x0733('0x76')](path[_0x0733('0x6c')](config[_0x0733('0x6d')],_0x0733('0x77'),_0x291606[_0x0733('0x6b')]))){_0x43e85a=path[_0x0733('0x6c')](config[_0x0733('0x6d')],'server/files/images/avatars/',_0x291606[_0x0733('0x6b')]);}}return _0x33721f[_0x0733('0x73')](_0x43e85a);}})[_0x0733('0x28')](handleError(_0x33721f,null));};exports[_0x0733('0x7d')]=function(_0x938cbe,_0x1ffe26,_0x110638){var _0x463b3d=require(_0x0733('0x7e'));var _0x2f25f2=new _0x463b3d();var _0x485ef2=_0x2f25f2[_0x0733('0x7f')](_0x938cbe['headers'][_0x0733('0x80')])[_0x0733('0x81')]();var _0x26b430={'body':_0x938cbe[_0x0733('0x57')],'channel':_0x0733('0x82')};var _0x47ce35=[];var _0x359a28=[];var _0x332090={};var _0x17b860=![];return db['CmContact']['describe']()[_0x0733('0x1f')](function(_0x311458){if(!_0x311458){throw new db['Sequelize'][(_0x0733('0x83'))](_0x0733('0x84'));}_0x47ce35=_[_0x0733('0x85')](_[_0x0733('0x3e')](_0x311458),[_0x0733('0x86'),_0x0733('0x87')]);_0x359a28=_[_0x0733('0x85')](_[_0x0733('0x3e')](_0x311458),[_0x0733('0x86'),_0x0733('0x87'),_0x0733('0x88'),_0x0733('0x89')]);if(_0x938cbe[_0x0733('0x57')]['id']){delete _0x938cbe[_0x0733('0x57')]['id'];}if(_[_0x0733('0x71')](_0x938cbe[_0x0733('0x57')][_0x0733('0x8a')])){throw new db['Sequelize'][(_0x0733('0x83'))]('from\x20is\x20mandatory');}if(_[_0x0733('0x71')](_0x938cbe[_0x0733('0x57')][_0x0733('0x57')])||_0x938cbe[_0x0733('0x57')][_0x0733('0x57')]===''){throw new db[(_0x0733('0x8b'))][(_0x0733('0x83'))](_0x0733('0x8c'));}if(_['isNil'](_0x938cbe[_0x0733('0x57')][_0x0733('0x8d')])){throw new db[(_0x0733('0x8b'))][(_0x0733('0x83'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x359a28);}if(!_[_0x0733('0x8e')](_0x359a28,_0x938cbe['body'][_0x0733('0x8d')])){throw new db[(_0x0733('0x8b'))][(_0x0733('0x83'))](_0x0733('0x8f')+_0x359a28);}_0x332090[_0x938cbe['body'][_0x0733('0x8d')]]=_0x938cbe[_0x0733('0x57')][_0x0733('0x8a')];})[_0x0733('0x1f')](function(){return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x938cbe[_0x0733('0x52')]['id']},'include':[{'model':db[_0x0733('0x90')],'as':_0x0733('0x91'),'include':[{'model':db[_0x0733('0x92')],'as':'Contacts','where':_0x332090,'limit':0x1,'order':[[_0x0733('0x87'),_0x0733('0x93')]]}]},{'model':db[_0x0733('0x94')],'as':_0x0733('0x95')}]});})[_0x0733('0x1f')](handleEntityNotFound(_0x1ffe26,null))['then'](function(_0x5cb2d6){if(_0x5cb2d6&&_0x5cb2d6['List']){_0x26b430[_0x0733('0x96')]=_0x5cb2d6;_0x26b430[_0x0733('0x97')]=_0x5cb2d6['Applications'];_0x26b430[_0x0733('0x98')]=_0x5cb2d6[_0x0733('0x91')];_0x26b430[_0x0733('0x97')]=_[_0x0733('0x99')](_0x26b430[_0x0733('0x97')],[_0x0733('0x9a')],[_0x0733('0x9b')]);if(_0x26b430[_0x0733('0x96')][_0x0733('0x95')]){delete _0x26b430[_0x0733('0x96')][_0x0733('0x95')];}if(_0x26b430[_0x0733('0x96')]['List']&&_0x26b430[_0x0733('0x96')][_0x0733('0x91')][_0x0733('0x9c')]['length']){return _0x26b430[_0x0733('0x96')][_0x0733('0x91')][_0x0733('0x9c')][0x0];}var _0x4eb414=_['defaults'](_0x938cbe[_0x0733('0x57')],{'firstName':_0x938cbe[_0x0733('0x57')][_0x0733('0x8a')],'ListId':_0x5cb2d6[_0x0733('0x89')]});_0x4eb414[_0x938cbe[_0x0733('0x57')][_0x0733('0x8d')]]=_0x938cbe['body']['from'];return db['CmContact'][_0x0733('0x56')](_0x4eb414,{'fields':_0x47ce35,'raw':!![]});}})[_0x0733('0x1f')](handleEntityNotFound(_0x1ffe26,null))[_0x0733('0x1f')](function(_0x537618){_0x26b430[_0x0733('0x9d')]=_0x537618;if(_0x537618){var _0x5856d6={'ContactId':_0x537618['id'],'ChatWebsiteId':_0x938cbe[_0x0733('0x52')]['id'],'from':(_0x537618[_0x0733('0x9e')]||'')+'\x20'+(_0x537618[_0x0733('0x9f')]||''),'customerIp':_0x938cbe[_0x0733('0x57')][_0x0733('0xa0')],'referer':_0x938cbe['body'][_0x0733('0xa1')],'browserName':_0x485ef2[_0x0733('0xa2')]['name']&&_0x485ef2['browser'][_0x0733('0xa3')]?util[_0x0733('0xa4')](_0x0733('0xa5'),_0x485ef2['browser'][_0x0733('0x36')],_0x485ef2[_0x0733('0xa2')][_0x0733('0xa3')]):'unknown','browserVersion':_0x485ef2[_0x0733('0xa2')]['version']||_0x0733('0xa6'),'osName':util[_0x0733('0xa4')](_0x0733('0xa5'),_0x485ef2['os'][_0x0733('0x36')],_0x485ef2['os'][_0x0733('0xa3')]),'osVersion':_0x485ef2['os'][_0x0733('0xa3')],'deviceModel':_0x485ef2[_0x0733('0xa7')][_0x0733('0x3a')]&&_0x485ef2[_0x0733('0xa7')]['vendor']?util[_0x0733('0xa4')](_0x0733('0xa8'),_0x485ef2['device']['model'],_0x485ef2[_0x0733('0xa7')][_0x0733('0xa9')],_0x485ef2[_0x0733('0xa7')]['type']):null,'deviceVendor':_0x485ef2[_0x0733('0xa7')][_0x0733('0xa9')],'deviceType':_0x485ef2[_0x0733('0xa7')]['type'],'formData':JSON[_0x0733('0x23')](_0x938cbe['body'])};var _0x575f5a={'ChatWebsiteId':_0x938cbe[_0x0733('0x52')]['id'],'closed':![]};if(_0x938cbe[_0x0733('0x57')][_0x0733('0xaa')]){_0x575f5a['threadId']=_0x938cbe[_0x0733('0x57')][_0x0733('0xaa')];return db['ChatInteraction'][_0x0733('0x55')]({'where':_0x575f5a})[_0x0733('0x1f')](function(_0x47b0ef){if(_0x47b0ef){return[_0x47b0ef,![]];}_0x5856d6[_0x0733('0xaa')]=_0x938cbe[_0x0733('0x57')]['threadId'];_0x5856d6[_0x0733('0xab')]=_0x938cbe[_0x0733('0x57')][_0x0733('0xab')];return db[_0x0733('0xac')][_0x0733('0x56')](_0x5856d6)[_0x0733('0x1f')](function(_0x364e56){return[_0x364e56,!![]];});});}_0x575f5a[_0x0733('0xad')]=_0x537618['id'];if(_0x938cbe[_0x0733('0x57')][_0x0733('0xae')]&&_0x938cbe[_0x0733('0x57')]['interaction']['id']){_0x575f5a['id']=_0x938cbe[_0x0733('0x57')]['interaction']['id'];return db[_0x0733('0xac')][_0x0733('0x55')]({'where':_0x575f5a})[_0x0733('0x1f')](function(_0x5379fb){if(_0x5379fb){return[_0x5379fb,![]];}return db[_0x0733('0xac')]['create'](_0x5856d6)['then'](function(_0x34d89a){return[_0x34d89a,!![]];});});}return db[_0x0733('0xac')][_0x0733('0x56')](_0x5856d6)[_0x0733('0x1f')](function(_0x344973){return[_0x344973,!![]];});}})[_0x0733('0xaf')](function(_0x4dfdc4,_0x9407be){if(_0x4dfdc4){_0x17b860=_0x9407be;if(!_0x9407be){return _0x4dfdc4[_0x0733('0x33')]({'from':(_0x26b430['contact'][_0x0733('0x9e')]||'')+'\x20'+(_0x26b430['contact'][_0x0733('0x9f')]||'')});}else{return _0x4dfdc4;}}})[_0x0733('0x1f')](function(_0x34fc61){_0x26b430[_0x0733('0xae')]=_0x34fc61[_0x0733('0xb0')]({'plain':!![]});_0x26b430['interaction'][_0x0733('0xb1')]=_0x17b860;if(_0x26b430[_0x0733('0xae')][_0x0733('0xb1')]){if(_0x26b430['account']['autoclose']){_0x26b430[_0x0733('0x97')]['push']({'id':0x0,'priority':_0x26b430[_0x0733('0x97')][_0x0733('0x53')]+0x1,'app':_0x0733('0xb2'),'appdata':_0x0733('0xb3'),'interval':_0x0733('0xb4')});}}return db[_0x0733('0xb5')]['create']({'body':_0x938cbe[_0x0733('0x57')][_0x0733('0x57')],'ChatWebsiteId':_0x938cbe['params']['id'],'ChatInteractionId':_0x34fc61['id'],'direction':'in','ContactId':_0x26b430['contact']['id'],'AttachmentId':_0x938cbe['body'][_0x0733('0xb6')]});})[_0x0733('0x1f')](function(_0x3c4f7a){_0x26b430[_0x0733('0x25')]=_0x3c4f7a;if(_0x26b430[_0x0733('0xae')][_0x0733('0xb7')]){return db[_0x0733('0xb8')][_0x0733('0x55')]({'attributes':['id',_0x0733('0x36')],'where':{'id':_0x26b430[_0x0733('0xae')]['UserId']}})['then'](function(_0x58c826){if(_0x58c826){_0x26b430[_0x0733('0x97')]['unshift']({'id':0x0,'priority':0x0,'app':_0x0733('0xb9'),'appdata':_0x58c826[_0x0733('0x36')]+','+(_0x26b430['account'][_0x0733('0xba')]||0xa),'interval':'*,*,*,*'});_0x26b430[_0x0733('0xbb')]=!![];}return respondWithRpcPromise(_0x0733('0xbc'),_0x0733('0xbd'),_0x26b430);});}return respondWithRpcPromise(_0x0733('0xbc'),_0x0733('0xbd'),_0x26b430);})['then'](function(_0x48c83c){respondWithRpcPromise(_0x0733('0xbe'),_0x0733('0xbe'),{'event':_0x0733('0x7d'),'message':_0x48c83c},client9002);return _0x48c83c;})[_0x0733('0x1f')](respondWithResult(_0x1ffe26,null))[_0x0733('0x28')](handleError(_0x1ffe26,null));};exports['offline']=function(_0x493b93,_0x425706,_0x8a72ee){var _0x356580,_0x51c4b2,_0x27eb53;var _0x3a459f=[];var _0x37a4cc=[];var _0x3e0a44={};return db[_0x0733('0x92')]['describe']()[_0x0733('0x1f')](function(_0x2054c3){if(!_0x2054c3){throw new db[(_0x0733('0x8b'))]['ValidationError'](_0x0733('0x84'));}_0x37a4cc=_[_0x0733('0x85')](_['keys'](_0x2054c3),[_0x0733('0x86'),_0x0733('0x87')]);_0x3a459f=_[_0x0733('0x85')](_['keys'](_0x2054c3),['createdAt',_0x0733('0x87'),'CompanyId',_0x0733('0x89')]);if(_0x493b93['body']['id']){delete _0x493b93['body']['id'];}if(_[_0x0733('0x71')](_0x493b93[_0x0733('0x57')][_0x0733('0x8a')])){throw _0x425706['status'](0x1f4)['send'](new db['Sequelize']['ValidationError']('from\x20is\x20mandatory'));}if(_['isNil'](_0x493b93['body'][_0x0733('0x57')])||_0x493b93[_0x0733('0x57')][_0x0733('0x57')]===''){throw _0x425706[_0x0733('0x29')](0x1f4)[_0x0733('0x37')](new db[(_0x0733('0x8b'))][(_0x0733('0x83'))]('body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_['isNil'](_0x493b93[_0x0733('0x57')][_0x0733('0xbf')])){throw _0x425706[_0x0733('0x29')](0x1f4)[_0x0733('0x37')](new db[(_0x0733('0x8b'))][(_0x0733('0x83'))](_0x0733('0xc0')+_0x3a459f));}if(!_[_0x0733('0x8e')](_0x3a459f,_0x493b93['body']['mapKeyOffline'])){throw _0x425706[_0x0733('0x29')](0x1f4)[_0x0733('0x37')](new db[(_0x0733('0x8b'))][(_0x0733('0x83'))]('mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3a459f));}_0x3e0a44[_0x493b93[_0x0733('0x57')]['mapKeyOffline']]=_0x493b93[_0x0733('0x57')][_0x0733('0x8a')];})[_0x0733('0x1f')](function(){return db['ChatWebsite'][_0x0733('0x55')]({'where':{'id':_0x493b93[_0x0733('0x52')]['id']},'include':[{'model':db[_0x0733('0x90')],'as':_0x0733('0x91')}]});})['then'](handleEntityNotFound(_0x425706,null))['then'](function(_0x211aba){if(_0x211aba&&_0x211aba['List']){_0x51c4b2=_0x211aba;var _0x6c68fc=_[_0x0733('0x17')](_0x493b93[_0x0733('0x57')],{'firstName':_0x493b93[_0x0733('0x57')][_0x0733('0x8a')],'phone':_0x493b93['body'][_0x0733('0x8a')],'ListId':_0x211aba[_0x0733('0x89')]});_0x6c68fc[_0x493b93['body'][_0x0733('0xbf')]]=_0x493b93[_0x0733('0x57')]['from'];return db[_0x0733('0x92')][_0x0733('0xc1')]({'where':_0x3e0a44,'defaults':_0x6c68fc});}})[_0x0733('0xaf')](function(_0x5a37b2){if(_0x5a37b2){_0x27eb53=_0x5a37b2;var _0x1a4265=fs[_0x0733('0xc2')](path[_0x0733('0x6c')](config['root'],_0x0733('0xc3')),_0x0733('0xc4'));var _0x27d772=ejs['render'](_0x1a4265,{'body':_[_0x0733('0xc5')](_0x493b93[_0x0733('0x57')][_0x0733('0x57')]),'bodyTitle':_0x51c4b2[_0x0733('0xc6')]});return db[_0x0733('0xc7')][_0x0733('0x56')]({'body':_0x27d772,'ContactId':_0x5a37b2['id'],'ChatWebsiteId':_0x51c4b2['id']});}})[_0x0733('0x1f')](function(_0x152756){if(_0x152756){_0x356580=_0x152756;return db[_0x0733('0xc8')][_0x0733('0x5b')]({'where':{'service':!![]},'include':[{'model':db[_0x0733('0xc9')],'as':_0x0733('0xca'),'raw':!![]}]});}})['then'](function(_0x36ddbb){if(_0x36ddbb&&_0x36ddbb[_0x0733('0xca')]&&_0x51c4b2['forwardOfflineAddress']){var _0x329b0e={'tls':{'rejectUnauthorized':![]}};if(_0x36ddbb[_0x0733('0xca')][_0x0733('0xcb')]){_0x329b0e[_0x0733('0xcb')]=_0x36ddbb[_0x0733('0xca')][_0x0733('0xcb')];}else{_0x329b0e[_0x0733('0xcc')]=_0x36ddbb['Smtp'][_0x0733('0xcc')];_0x329b0e[_0x0733('0xcd')]=_0x36ddbb['Smtp'][_0x0733('0xcd')];_0x329b0e[_0x0733('0xce')]=_0x36ddbb[_0x0733('0xca')]['secure'];}if(_0x36ddbb[_0x0733('0xca')][_0x0733('0xcf')]){_0x329b0e[_0x0733('0xd0')]={'user':_0x36ddbb['Smtp'][_0x0733('0xd1')],'pass':_0x36ddbb[_0x0733('0xca')][_0x0733('0xd2')]};}return respondWithRpcPromise(_0x0733('0xd3'),_0x0733('0xd4'),{'account':_0x329b0e,'message':{'from':util['format'](_0x0733('0xd5'),_0x36ddbb[_0x0733('0x36')],_0x36ddbb[_0x0733('0xd6')]||_0x36ddbb[_0x0733('0xca')][_0x0733('0xd1')]),'to':_0x51c4b2[_0x0733('0xd7')],'subject':_0x51c4b2[_0x0733('0xd8')],'text':_0x356580[_0x0733('0x57')]}},client9003)[_0x0733('0x1f')](function(){return _0x356580;})['catch'](function(_0x4438a4){console[_0x0733('0x24')](_0x4438a4);});}})[_0x0733('0x1f')](function(){if(_0x356580){return _0x356580;}})['then'](respondWithResult(_0x425706,null))[_0x0733('0x28')](handleError(_0x425706,null));};exports[_0x0733('0xd9')]=function(_0x423ef9,_0x1332b3,_0xc8b21a){return db[_0x0733('0xac')][_0x0733('0x55')]({'where':{'id':_0x423ef9[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x1332b3,null))[_0x0733('0x1f')](function(_0x2b45dd){if(_0x2b45dd){return _0x2b45dd[_0x0733('0xd9')](_0x423ef9['body'][_0x0733('0x60')],_[_0x0733('0xda')](_0x423ef9[_0x0733('0x57')],[_0x0733('0x60'),'id'])||{});}})[_0x0733('0x1f')](respondWithResult(_0x1332b3,null))[_0x0733('0x28')](handleError(_0x1332b3,null));};exports[_0x0733('0xdb')]=function(_0x2c1a8a,_0x330432,_0x26862e){var _0x275022={'raw':![],'where':{}};var _0x5cb009={};var _0x423af8={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x0733('0x5b')]({'where':{'id':_0x2c1a8a[_0x0733('0x52')]['id']}})['then'](handleEntityNotFound(_0x330432,null))[_0x0733('0x1f')](function(_0x41a1f1){if(_0x41a1f1){_0x5cb009['model']=_[_0x0733('0x3e')](db['ChatInteraction'][_0x0733('0x39')]);_0x5cb009[_0x0733('0x3d')]=_[_0x0733('0x3e')](_0x2c1a8a[_0x0733('0x3d')]);_0x5cb009[_0x0733('0x3f')]=_[_0x0733('0x40')](_0x5cb009[_0x0733('0x3a')],_0x5cb009[_0x0733('0x3d')]);_0x275022['attributes']=_['intersection'](_0x5cb009[_0x0733('0x3a')],qs[_0x0733('0x42')](_0x2c1a8a['query']['fields']));_0x275022[_0x0733('0x41')]=_0x275022['attributes'][_0x0733('0x53')]?_0x275022[_0x0733('0x41')]:_0x5cb009[_0x0733('0x3a')];if(!_0x2c1a8a[_0x0733('0x3d')][_0x0733('0x43')](_0x0733('0x44'))){_0x275022[_0x0733('0x2d')]=qs[_0x0733('0x2d')](_0x2c1a8a['query'][_0x0733('0x2d')]);_0x275022[_0x0733('0x2c')]=qs['offset'](_0x2c1a8a['query']['offset']);}_0x275022[_0x0733('0x5d')]=qs[_0x0733('0x45')](_0x2c1a8a['query']['sort']);_0x275022[_0x0733('0x46')]=qs[_0x0733('0x3f')](_[_0x0733('0x5e')](_0x2c1a8a['query'],_0x5cb009['filters']));_0x275022[_0x0733('0x46')][_0x0733('0x59')]=_0x41a1f1['id'];if(_0x2c1a8a[_0x0733('0x3d')][_0x0733('0x4a')]){_0x275022['where']=_['merge'](_0x275022[_0x0733('0x46')],{'$or':_['map'](_0x275022[_0x0733('0x41')],function(_0x53d739){var _0x5e46c7={};_0x5e46c7[_0x53d739]={'$like':'%'+_0x2c1a8a['query']['filter']+'%'};return _0x5e46c7;})});}_0x275022=_[_0x0733('0x49')]({},_0x275022,_0x2c1a8a['options']);return db['ChatInteraction'][_0x0733('0x4c')]({'where':_0x275022['where']})[_0x0733('0x1f')](function(_0xb91cab){_0x423af8[_0x0733('0x4c')]=_0xb91cab;if(_0x2c1a8a['query'][_0x0733('0x4d')]){_0x275022[_0x0733('0x4e')]=[{'model':db[_0x0733('0x92')],'as':_0x0733('0xdc'),'required':![]},{'model':db['User'],'as':_0x0733('0xdd'),'attributes':[_0x0733('0x36'),_0x0733('0xde'),'internal'],'required':![]},{'model':db[_0x0733('0xdf')],'as':'Tags','attributes':['id','name',_0x0733('0xe0')],'where':_0x2c1a8a['query'][_0x0733('0xe1')]?{'id':_0x2c1a8a[_0x0733('0x3d')]['tag']}:undefined,'required':_0x2c1a8a[_0x0733('0x3d')][_0x0733('0xe1')]?!![]:![]}];}return db[_0x0733('0xac')][_0x0733('0x4f')](_0x275022);})['then'](function(_0x398ab3){_0x423af8[_0x0733('0x50')]=_0x398ab3;return _0x423af8;});}})[_0x0733('0x1f')](respondWithFilteredResult(_0x330432,_0x275022))['catch'](handleError(_0x330432,null));};function iftimePromise(_0x4b7ab4,_0x1aa20b){return respondWithRpcPromise(_0x0733('0xe2'),_0x0733('0xe3'),{'command':_0x1aa20b[_0x0733('0xe4')]?util[_0x0733('0xa4')](_0x0733('0xe5'),_0x4b7ab4['interval'],_0x1aa20b[_0x0733('0xe4')]):util['format'](_0x0733('0xe6'),_0x4b7ab4['interval'])},client9002)['then'](function(_0x405c06){var _0x1e3aa4=_0x405c06&&_0x405c06[_0x0733('0xe7')](_0x0733('0xe8'))>=0x0?!![]:![];logger[_0x0733('0x20')](_0x0733('0xe9'),_0x1aa20b['id'],_0x4b7ab4['id'],_0x4b7ab4['interval'],_0x1e3aa4?'ONLINE':'OFFLINE',_0x1aa20b[_0x0733('0xe4')]?_0x1aa20b[_0x0733('0xe4')]:_0x0733('0xea'));return _0x1e3aa4;})[_0x0733('0x28')](function(_0x5e7417){logger['error'](_0x0733('0xe9'),_0x1aa20b['id'],_0x4b7ab4['id'],_0x4b7ab4[_0x0733('0xeb')],util[_0x0733('0xec')](_0x5e7417,{'showHidden':![],'depth':null}),_0x1aa20b[_0x0733('0xe4')]?_0x1aa20b[_0x0733('0xe4')]:_0x0733('0xea'));return![];});}exports[_0x0733('0xe3')]=function(_0x37bacb,_0x47d833,_0x1780bc){var _0x129636=0x0;var _0x56f12f=0x0;var _0x3e3a4b=![];var _0x3bea61;var _0x30587d;return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x37bacb[_0x0733('0x52')]['id']},'include':[{'model':db['Interval'],'as':_0x0733('0xed'),'include':[{'model':db[_0x0733('0xed')],'as':_0x0733('0xee'),'attributes':['id',_0x0733('0xeb')],'raw':!![]}]}]})['then'](handleEntityNotFound(_0x47d833,null))[_0x0733('0x1f')](function(_0x496b08){if(_0x496b08){_0x3bea61=_0x496b08;return _0x496b08[_0x0733('0xef')]({'raw':!![]});}})[_0x0733('0x1f')](function(_0x2de025){if(_0x3bea61){if(_0x2de025){_0x30587d=_0x2de025;}}return require(_0x0733('0x6e'))[_0x0733('0x6f')]();})[_0x0733('0x1f')](function(_0x234df9){if(_0x234df9){_0x56f12f=_0x234df9[_0x0733('0xf0')];_0x3e3a4b=_0x234df9['custom'];}})[_0x0733('0x1f')](function(){return db[_0x0733('0xac')]['count']({'where':{'closed':![]}});})[_0x0733('0x1f')](function(_0x8bb934){_0x129636=_0x8bb934;if(_0x56f12f&&_0x8bb934>_0x56f12f){return db[_0x0733('0xf1')][_0x0733('0x5b')]({'where':{'id':0x1}})['then'](function(_0x129d56){if(_0x129d56){_0x129d56[_0x0733('0xf2')](_0x0733('0xf3'));}});}})['then'](function(){if(_0x3bea61[_0x0733('0xed')]&&_0x3bea61[_0x0733('0xed')][_0x0733('0xee')]){var _0x4a8887=[];for(var _0x3f8372=0x0;_0x3f8372<_0x3bea61['Interval'][_0x0733('0xee')][_0x0733('0x53')];_0x3f8372++){var _0x4b1ddf=_0x3bea61[_0x0733('0xed')][_0x0733('0xee')][_0x3f8372][_0x0733('0xb0')]({'plain':!![]});_0x4a8887[_0x0733('0xf4')](iftimePromise(_0x4b1ddf,_0x3bea61));}return BPromise['all'](_0x4a8887)[_0x0733('0x1f')](function(_0xcd674d){return _[_0x0733('0xf5')](_0xcd674d);});}else{return!![];}})['then'](function(_0x1b8ab8){var _0x2fb169=fs[_0x0733('0xc2')](path[_0x0733('0x6c')](config[_0x0733('0x6d')],'server/files/chat/iframe.js'),_0x0733('0xc4'));var _0x565fe9={'remote':_0x3bea61[_0x0733('0xf6')],'query':querystring[_0x0733('0x23')](_[_0x0733('0x49')](_0x3bea61['get']({'plain':!![]}),{'customerIp':_0x37bacb[_0x0733('0xf7')][_0x0733('0xf8')]||_0x37bacb['headers']['x-real-ip']||_0x37bacb[_0x0733('0xf9')][_0x0733('0xfa')]||_0x37bacb['ip'],'referer':_0x37bacb[_0x0733('0xf7')][_0x0733('0xa1')],'openedInteractions':_0x129636,'maxInteractions':_0x56f12f,'virtual':_0x3e3a4b[_0x0733('0xf0')],'online':_0x1b8ab8,'custom':_0x3e3a4b}))[_0x0733('0xfb')](/'/g,'\x5c\x27')};_0x47d833[_0x0733('0x37')](ejs[_0x0733('0xfc')](Mustache[_0x0733('0xfc')](_0x2fb169,_0x565fe9),{'proactiveActions':_0x30587d,'alignment':_0x3bea61[_0x0733('0xfd')],'verticalAlignment':_0x3bea61[_0x0733('0xfe')]}));})[_0x0733('0x28')](handleError(_0x47d833,null));};exports[_0x0733('0xff')]=function(_0xb05d80,_0x5bef7b,_0x4e63fe){return db[_0x0733('0x38')][_0x0733('0x5b')]({'where':{'id':_0xb05d80['params']['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x5bef7b,null))[_0x0733('0x1f')](function(_0x2008b0){if(_0x2008b0){return db[_0x0733('0x100')]['transaction'](function(_0x438e0f){return db[_0x0733('0x94')][_0x0733('0x34')]({'where':{'ChatWebsiteId':_0xb05d80[_0x0733('0x52')]['id']},'transaction':_0x438e0f})[_0x0733('0x1f')](function(_0x411aef){var _0xc03117=_['map'](_0xb05d80[_0x0733('0x57')],function(_0x53404b){_0x53404b['ChatWebsiteId']=_0xb05d80['params']['id'];return _0x53404b;});return db[_0x0733('0x94')]['bulkCreate'](_0xc03117,{'transaction':_0x438e0f});});})[_0x0733('0x1f')](function(){return db['ChatApplication']['findAndCountAll']({'where':{'ChatWebsiteId':_0xb05d80[_0x0733('0x52')]['id']},'order':_0x0733('0x9a')});});}})[_0x0733('0x1f')](respondWithResult(_0x5bef7b,null))['catch'](handleError(_0x5bef7b,null));};exports[_0x0733('0x101')]=function(_0x400815,_0x386301,_0x3d8eb3){var _0x473a14={};var _0x21e558={};var _0x598abb;var _0x28b3b2;return db['ChatWebsite'][_0x0733('0x5b')]({'where':{'id':_0x400815[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x386301,null))[_0x0733('0x1f')](function(_0x3f9623){if(_0x3f9623){_0x598abb=_0x3f9623;_0x21e558[_0x0733('0x3a')]=_[_0x0733('0x3e')](db[_0x0733('0x94')][_0x0733('0x39')]);_0x21e558[_0x0733('0x3d')]=_['keys'](_0x400815[_0x0733('0x3d')]);_0x21e558[_0x0733('0x3f')]=_['intersection'](_0x21e558[_0x0733('0x3a')],_0x21e558[_0x0733('0x3d')]);_0x473a14[_0x0733('0x41')]=_[_0x0733('0x40')](_0x21e558[_0x0733('0x3a')],qs['fields'](_0x400815[_0x0733('0x3d')][_0x0733('0x42')]));_0x473a14[_0x0733('0x41')]=_0x473a14[_0x0733('0x41')][_0x0733('0x53')]?_0x473a14[_0x0733('0x41')]:_0x21e558['model'];_0x473a14[_0x0733('0x5d')]=qs[_0x0733('0x45')](_0x400815[_0x0733('0x3d')]['sort']);_0x473a14[_0x0733('0x46')]=qs[_0x0733('0x3f')](_['pick'](_0x400815[_0x0733('0x3d')],_0x21e558[_0x0733('0x3f')]));if(_0x400815[_0x0733('0x3d')][_0x0733('0x4a')]){_0x473a14[_0x0733('0x46')]=_[_0x0733('0x49')](_0x473a14[_0x0733('0x46')],{'$or':_[_0x0733('0x4b')](_0x473a14[_0x0733('0x41')],function(_0x27466b){var _0x5f1db7={};_0x5f1db7[_0x27466b]={'$like':'%'+_0x400815['query']['filter']+'%'};return _0x5f1db7;})});}_0x473a14=_['merge']({},_0x473a14,_0x400815[_0x0733('0x54')]);return _0x598abb['getApplications'](_0x473a14);}})[_0x0733('0x1f')](function(_0x9ec91a){if(_0x9ec91a){_0x28b3b2=_0x9ec91a['length'];if(!_0x400815[_0x0733('0x3d')][_0x0733('0x43')](_0x0733('0x44'))){_0x473a14[_0x0733('0x2d')]=qs[_0x0733('0x2d')](_0x400815['query']['limit']);_0x473a14[_0x0733('0x2c')]=qs[_0x0733('0x2c')](_0x400815[_0x0733('0x3d')][_0x0733('0x2c')]);}return _0x598abb[_0x0733('0x101')](_0x473a14);}})[_0x0733('0x1f')](function(_0x4b9678){if(_0x4b9678){return _0x4b9678?{'count':_0x28b3b2,'rows':_0x4b9678}:null;}})[_0x0733('0x1f')](respondWithResult(_0x386301,null))['catch'](handleError(_0x386301,null));};exports[_0x0733('0x102')]=function(_0x59f787,_0x557880,_0x4e89c4){return db[_0x0733('0x103')][_0x0733('0x55')]({'where':{'id':_0x59f787[_0x0733('0x52')]['id']}})['then'](handleEntityNotFound(_0x557880,null))[_0x0733('0x1f')](function(_0x1627ed){if(_0x1627ed){return _0x1627ed[_0x0733('0x102')](_0x59f787[_0x0733('0x57')][_0x0733('0x60')],_[_0x0733('0xda')](_0x59f787[_0x0733('0x57')],[_0x0733('0x60'),'id'])||{});}})[_0x0733('0x1f')](respondWithResult(_0x557880,null))[_0x0733('0x28')](handleError(_0x557880,null));};exports['getProactiveActions']=function(_0x34c435,_0x180c69,_0x31da7a){var _0x459ef2={};var _0x9461ce={};var _0x242aa4;var _0x4e2c51;return db['ChatWebsite'][_0x0733('0x5b')]({'where':{'id':_0x34c435[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x180c69,null))[_0x0733('0x1f')](function(_0x25496c){if(_0x25496c){_0x242aa4=_0x25496c;_0x9461ce[_0x0733('0x3a')]=_[_0x0733('0x3e')](db[_0x0733('0x104')][_0x0733('0x39')]);_0x9461ce[_0x0733('0x3d')]=_[_0x0733('0x3e')](_0x34c435[_0x0733('0x3d')]);_0x9461ce['filters']=_[_0x0733('0x40')](_0x9461ce[_0x0733('0x3a')],_0x9461ce[_0x0733('0x3d')]);_0x459ef2[_0x0733('0x41')]=_['intersection'](_0x9461ce[_0x0733('0x3a')],qs[_0x0733('0x42')](_0x34c435[_0x0733('0x3d')][_0x0733('0x42')]));_0x459ef2[_0x0733('0x41')]=_0x459ef2[_0x0733('0x41')][_0x0733('0x53')]?_0x459ef2[_0x0733('0x41')]:_0x9461ce[_0x0733('0x3a')];_0x459ef2[_0x0733('0x5d')]=qs[_0x0733('0x45')](_0x34c435[_0x0733('0x3d')][_0x0733('0x45')]);_0x459ef2['where']=qs[_0x0733('0x3f')](_[_0x0733('0x5e')](_0x34c435[_0x0733('0x3d')],_0x9461ce[_0x0733('0x3f')]));if(_0x34c435['query'][_0x0733('0x4a')]){_0x459ef2[_0x0733('0x46')]=_[_0x0733('0x49')](_0x459ef2[_0x0733('0x46')],{'$or':_[_0x0733('0x4b')](_0x459ef2[_0x0733('0x41')],function(_0x5eaeeb){var _0xcdf23b={};_0xcdf23b[_0x5eaeeb]={'$like':'%'+_0x34c435[_0x0733('0x3d')][_0x0733('0x4a')]+'%'};return _0xcdf23b;})});}_0x459ef2=_[_0x0733('0x49')]({},_0x459ef2,_0x34c435[_0x0733('0x54')]);return _0x242aa4[_0x0733('0xef')](_0x459ef2);}})[_0x0733('0x1f')](function(_0x34d5de){if(_0x34d5de){_0x4e2c51=_0x34d5de[_0x0733('0x53')];if(!_0x34c435['query'][_0x0733('0x43')](_0x0733('0x44'))){_0x459ef2[_0x0733('0x2d')]=qs['limit'](_0x34c435[_0x0733('0x3d')]['limit']);_0x459ef2[_0x0733('0x2c')]=qs[_0x0733('0x2c')](_0x34c435[_0x0733('0x3d')][_0x0733('0x2c')]);}return _0x242aa4[_0x0733('0xef')](_0x459ef2);}})[_0x0733('0x1f')](function(_0x17d791){if(_0x17d791){return _0x17d791?{'count':_0x4e2c51,'rows':_0x17d791}:null;}})['then'](respondWithResult(_0x180c69,null))[_0x0733('0x28')](handleError(_0x180c69,null));};exports[_0x0733('0x105')]=function(_0x53a758,_0x3e6894,_0x3ae2bc){var _0x5ccb39=_0x53a758[_0x0733('0x3d')][_0x0733('0x106')]===_0x0733('0x107')?_0x0733('0x108'):_0x0733('0x109');return db[_0x0733('0x38')][_0x0733('0x55')]({'attributes':['id',_0x5ccb39],'where':{'id':_0x53a758[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x3e6894,null))[_0x0733('0x1f')](function(_0x519d6d){if(_0x519d6d){var _0x36d758=_0x519d6d[_0x5ccb39];var _0x17fd9f=_0x36d758&&_0x36d758[_0x0733('0x10a')]?_0x36d758[_0x0733('0x10a')]:[];_0x3e6894[_0x0733('0x37')]({'fromKey':_['isNil'](_0x36d758[_0x0733('0x10b')])?undefined:_0x36d758[_0x0733('0x10b')],'count':_0x17fd9f[_0x0733('0x53')],'rows':_0x17fd9f});}})['catch'](handleError(_0x3e6894,null));};exports['getOfflineMessages']=function(_0x56cb13,_0x3b91b6,_0x3c9a50){var _0x6f6df3={'raw':!![],'where':{}};var _0x46ef26={};var _0x14c903={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x0733('0x5b')]({'where':{'id':_0x56cb13[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x3b91b6,null))[_0x0733('0x1f')](function(_0x391995){if(_0x391995){_0x46ef26[_0x0733('0x3a')]=_['keys'](db['ChatOfflineMessage'][_0x0733('0x39')]);_0x46ef26[_0x0733('0x3d')]=_[_0x0733('0x3e')](_0x56cb13[_0x0733('0x3d')]);_0x46ef26[_0x0733('0x3f')]=_[_0x0733('0x40')](_0x46ef26[_0x0733('0x3a')],_0x46ef26[_0x0733('0x3d')]);_0x6f6df3[_0x0733('0x41')]=_[_0x0733('0x40')](_0x46ef26[_0x0733('0x3a')],qs[_0x0733('0x42')](_0x56cb13[_0x0733('0x3d')][_0x0733('0x42')]));_0x6f6df3[_0x0733('0x41')]=_0x6f6df3[_0x0733('0x41')]['length']?_0x6f6df3[_0x0733('0x41')]:_0x46ef26[_0x0733('0x3a')];if(!_0x56cb13[_0x0733('0x3d')]['hasOwnProperty'](_0x0733('0x44'))){_0x6f6df3[_0x0733('0x2d')]=qs['limit'](_0x56cb13[_0x0733('0x3d')][_0x0733('0x2d')]);_0x6f6df3[_0x0733('0x2c')]=qs[_0x0733('0x2c')](_0x56cb13['query'][_0x0733('0x2c')]);}_0x6f6df3[_0x0733('0x5d')]=qs[_0x0733('0x45')](_0x56cb13[_0x0733('0x3d')][_0x0733('0x45')]);_0x6f6df3[_0x0733('0x46')]=qs[_0x0733('0x3f')](_[_0x0733('0x5e')](_0x56cb13[_0x0733('0x3d')],_0x46ef26['filters']));_0x6f6df3['where']['ChatWebsiteId']=_0x391995['id'];if(_0x56cb13[_0x0733('0x3d')][_0x0733('0x4a')]){_0x6f6df3[_0x0733('0x46')]=_['merge'](_0x6f6df3[_0x0733('0x46')],{'$or':_[_0x0733('0x4b')](_0x6f6df3[_0x0733('0x41')],function(_0x585b29){var _0x3470c4={};_0x3470c4[_0x585b29]={'$like':'%'+_0x56cb13[_0x0733('0x3d')]['filter']+'%'};return _0x3470c4;})});}_0x6f6df3=_[_0x0733('0x49')]({},_0x6f6df3,_0x56cb13[_0x0733('0x54')]);return db[_0x0733('0xc7')][_0x0733('0x4c')]({'where':_0x6f6df3['where']})[_0x0733('0x1f')](function(_0x32ad4a){_0x14c903['count']=_0x32ad4a;if(_0x56cb13[_0x0733('0x3d')][_0x0733('0x4d')]){_0x6f6df3[_0x0733('0x4e')]=[{'all':!![]}];}return db[_0x0733('0xc7')][_0x0733('0x4f')](_0x6f6df3);})['then'](function(_0x4b236c){_0x14c903[_0x0733('0x50')]=_0x4b236c;return _0x14c903;});}})['then'](respondWithFilteredResult(_0x3b91b6,_0x6f6df3))['catch'](handleError(_0x3b91b6,null));};exports[_0x0733('0x10c')]=function(_0x22e440,_0x4da5b6,_0x5f48e3){return db['ChatWebsite'][_0x0733('0x55')]({'where':{'id':_0x22e440['params']['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x4da5b6,null))['then'](function(_0x4934f3){if(_0x4934f3){return _0x4934f3[_0x0733('0x10c')](_0x22e440['body'][_0x0733('0x60')],_[_0x0733('0xda')](_0x22e440[_0x0733('0x57')],[_0x0733('0x60'),'id'])||{})[_0x0733('0xaf')](function(_0x3e2c37){for(var _0x369344=0x0;_0x369344<_0x22e440['body'][_0x0733('0x60')]['length'];_0x369344+=0x1){socket[_0x0733('0x10d')](_0x0733('0x10e'),{'UserId':_0x22e440[_0x0733('0x57')][_0x0733('0x60')][_0x369344],'ChatWebsiteId':_0x22e440['params']['id']});}return _0x3e2c37;});}})[_0x0733('0x1f')](respondWithResult(_0x4da5b6,null))[_0x0733('0x28')](handleError(_0x4da5b6,null));};exports[_0x0733('0x10f')]=function(_0x1d793b,_0x15cb1e,_0x4c871a){var _0x175789;return db[_0x0733('0x38')][_0x0733('0x55')]({'where':{'id':_0x1d793b[_0x0733('0x52')]['id']}})[_0x0733('0x1f')](handleEntityNotFound(_0x15cb1e,null))[_0x0733('0x1f')](function(_0x185a3e){if(_0x185a3e){return _0x185a3e[_0x0733('0x10f')](_0x1d793b['query'][_0x0733('0x60')])[_0x0733('0x1f')](function(_0x6eb174){if(_['isArray'](_0x1d793b[_0x0733('0x3d')]['ids'])){for(var _0x56fa22=0x0;_0x56fa22<_0x1d793b[_0x0733('0x3d')][_0x0733('0x60')][_0x0733('0x53')];_0x56fa22+=0x1){socket[_0x0733('0x10d')](_0x0733('0x110'),{'UserId':_0x1d793b[_0x0733('0x3d')]['ids'][_0x56fa22],'ChatWebsiteId':_0x1d793b['params']['id']});}}else{socket[_0x0733('0x10d')](_0x0733('0x110'),{'UserId':_0x1d793b[_0x0733('0x3d')][_0x0733('0x60')],'ChatWebsiteId':_0x1d793b[_0x0733('0x52')]['id']});}});}})['then'](respondWithStatusCode(_0x15cb1e,null))[_0x0733('0x28')](handleError(_0x15cb1e,null));};exports[_0x0733('0x111')]=function(_0x32ce4f,_0x49152d,_0x8fafa0){var _0x1829f0={};var _0x3c5c6f={};var _0x4baed2;var _0x2661c3;return db[_0x0733('0x38')][_0x0733('0x5b')]({'where':{'id':_0x32ce4f[_0x0733('0x52')]['id']}})['then'](handleEntityNotFound(_0x49152d,null))[_0x0733('0x1f')](function(_0x1666a2){if(_0x1666a2){_0x4baed2=_0x1666a2;_0x3c5c6f[_0x0733('0x3a')]=_[_0x0733('0x3e')](db['User'][_0x0733('0x39')]);_0x3c5c6f[_0x0733('0x3d')]=_[_0x0733('0x3e')](_0x32ce4f['query']);_0x3c5c6f[_0x0733('0x3f')]=_['intersection'](_0x3c5c6f['model'],_0x3c5c6f['query']);_0x1829f0[_0x0733('0x41')]=_['intersection'](_0x3c5c6f[_0x0733('0x3a')],qs['fields'](_0x32ce4f[_0x0733('0x3d')][_0x0733('0x42')]));_0x1829f0['attributes']=_0x1829f0['attributes'][_0x0733('0x53')]?_0x1829f0['attributes']:_0x3c5c6f[_0x0733('0x3a')];_0x1829f0[_0x0733('0x5d')]=qs['sort'](_0x32ce4f[_0x0733('0x3d')][_0x0733('0x45')]);_0x1829f0[_0x0733('0x46')]=qs[_0x0733('0x3f')](_[_0x0733('0x5e')](_0x32ce4f[_0x0733('0x3d')],_0x3c5c6f[_0x0733('0x3f')]));if(_0x32ce4f[_0x0733('0x3d')][_0x0733('0x4a')]){_0x1829f0[_0x0733('0x46')]=_['merge'](_0x1829f0[_0x0733('0x46')],{'$or':_['map'](_0x1829f0[_0x0733('0x41')],function(_0x48e40d){var _0x424572={};_0x424572[_0x48e40d]={'$like':'%'+_0x32ce4f[_0x0733('0x3d')][_0x0733('0x4a')]+'%'};return _0x424572;})});}_0x1829f0=_['merge']({},_0x1829f0,_0x32ce4f['options']);return _0x4baed2[_0x0733('0x111')](_0x1829f0);}})[_0x0733('0x1f')](function(_0x212ac2){if(_0x212ac2){_0x2661c3=_0x212ac2[_0x0733('0x53')];if(!_0x32ce4f[_0x0733('0x3d')]['hasOwnProperty'](_0x0733('0x44'))){_0x1829f0[_0x0733('0x2d')]=qs[_0x0733('0x2d')](_0x32ce4f['query'][_0x0733('0x2d')]);_0x1829f0[_0x0733('0x2c')]=qs[_0x0733('0x2c')](_0x32ce4f['query']['offset']);}return _0x4baed2[_0x0733('0x111')](_0x1829f0);}})[_0x0733('0x1f')](function(_0x54a4e2){if(_0x54a4e2){return _0x54a4e2?{'count':_0x2661c3,'rows':_0x54a4e2}:null;}})[_0x0733('0x1f')](respondWithResult(_0x49152d,null))['catch'](handleError(_0x49152d,null));};
\ No newline at end of file
+var _0xedd9=['desk.js','querystring','ioredis','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatWebsite.socket','register','jayson/promise','http','client','then','info','request\x20sent','ChatWebsite,\x20%s,\x20%s,\x20%s','error','message','ChatWebsite,\x20%s,\x20%s','result','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','name','send','index','ChatWebsite','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','filter','merge','map','options','count','includeAll','include','findAll','show','params','find','create','body','describe','addDisposition','Disposition','ChatWebsiteId','rows','removeDispositions','findOne','CannedAnswer','removeAnswers','ids','addLogo','sitepic','file','addAvatar','agentAvatar','filename','addCustomerAvatar','customerAvatar','addSystemAvatar','join','root','server/files/images/logos/default_logo.png','getLicense','isNil','download','getAvatar','server/files/images/avatars/default_avatar.png','existsSync','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','server/files/images/avatars/','server/files/images/avatars/system_avatar.png','systemAvatar','notify','user-agent-parser','setUA','headers','user-agent','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','createdAt','CompanyId','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','CmList','List','Contacts','DESC','applications','orderBy','priority','asc','account','contact','firstName','lastName','customerIp','referer','version','format','%s\x20%s','browser','unknown','device','vendor','%s\x20%s\x20%s','type','stringify','threadId','ChatInteraction','externalUrl','interaction','get','created','autoclose','push','close','unmanaged','*,*,*,*','ChatMessage','UserId','User','unshift','agent','waitForTheAssignedAgent','Start','startRouting','EventManager','offline','mapKeyOffline','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','findOrCreate','spread','server/files/templates/chatOfflineMessage.ejs','utf8','render','offlineMessageBody','ChatOfflineMessage','MailServerOut','Smtp','forwardOfflineAddress','service','host','port','secure','authentication','auth','user','pass','SendMail','sendMail','email','offlineMessageSubject','addInteraction','omit','getInteractions','Contact','Owner','fullname','internal','Tags','tag','getSnippet','timezone','iftime\x20%s,%s','interval','iftime\x20%s','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','ONLINE','OFFLINE','No\x20timezone','Interval','Intervals','getProactiveActions','../../config/license/util','virtual','License','increment','chatLicenseExceeded','all','readFileSync','server/files/chat/iframe.js','remote','x-forwarded-for','x-real-ip','connection','remoteAddress','alignment','verticalAlignment','addApplications','sequelize','ChatApplication','bulkCreate','findAndCountAll','getApplications','addProactiveActions','chatProactiveAction','ChatProactiveAction','getFields','online','offlineForm','items','fromKey','getOfflineMessages','addAgents','emit','removeAgents','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','jsforce'];(function(_0x44afc7,_0xadb3cf){var _0x402c25=function(_0x3d56f8){while(--_0x3d56f8){_0x44afc7['push'](_0x44afc7['shift']());}};_0x402c25(++_0xadb3cf);}(_0xedd9,0xfc));var _0x9edd=function(_0x1f1b39,_0x223207){_0x1f1b39=_0x1f1b39-0x0;var _0x25c2be=_0xedd9[_0x1f1b39];return _0x25c2be;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9edd('0x0'));var rimraf=require(_0x9edd('0x1'));var zipdir=require(_0x9edd('0x2'));var jsonpatch=require(_0x9edd('0x3'));var rp=require(_0x9edd('0x4'));var moment=require(_0x9edd('0x5'));var BPromise=require(_0x9edd('0x6'));var Mustache=require(_0x9edd('0x7'));var util=require('util');var path=require(_0x9edd('0x8'));var sox=require(_0x9edd('0x9'));var csv=require(_0x9edd('0xa'));var ejs=require(_0x9edd('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x9edd('0xc'));var crypto=require('crypto');var jsforce=require(_0x9edd('0xd'));var deskjs=require(_0x9edd('0xe'));var toCsv=require(_0x9edd('0xa'));var querystring=require(_0x9edd('0xf'));var Papa=require('papaparse');var Redis=require(_0x9edd('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0x9edd('0x11'))(_0x9edd('0x12'));var utils=require('../../config/utils');var config=require(_0x9edd('0x13'));var db=require(_0x9edd('0x14'))['db'];config['redis']=_[_0x9edd('0x15')](config[_0x9edd('0x16')],{'host':_0x9edd('0x17'),'port':0x18eb});var socket=require(_0x9edd('0x18'))(new Redis(config[_0x9edd('0x16')]));require(_0x9edd('0x19'))[_0x9edd('0x1a')](socket);var jayson=require(_0x9edd('0x1b'));var client=jayson['client'][_0x9edd('0x1c')]({'port':0x232c});var client9002=jayson[_0x9edd('0x1d')][_0x9edd('0x1c')]({'port':0x232a});var client9003=jayson[_0x9edd('0x1d')][_0x9edd('0x1c')]({'port':0x232b});function respondWithRpcPromise(_0x338f3c,_0x1042aa,_0x75a4ab,_0x4ea60f){return new BPromise(function(_0x5f5bf4,_0x448996){var _0x449cee=_0x4ea60f||client;return _0x449cee['request'](_0x338f3c,_0x75a4ab)[_0x9edd('0x1e')](function(_0x35f454){logger[_0x9edd('0x1f')]('ChatWebsite,\x20%s,\x20%s',_0x1042aa,_0x9edd('0x20'));logger['debug'](_0x9edd('0x21'),_0x1042aa,_0x9edd('0x20'),JSON['stringify'](_0x35f454));if(_0x35f454['error']){if(_0x35f454[_0x9edd('0x22')]['code']===0x1f4){logger[_0x9edd('0x22')]('ChatWebsite,\x20%s,\x20%s',_0x1042aa,_0x35f454['error'][_0x9edd('0x23')]);return _0x448996(_0x35f454[_0x9edd('0x22')]['message']);}logger['error'](_0x9edd('0x24'),_0x1042aa,_0x35f454[_0x9edd('0x22')][_0x9edd('0x23')]);return _0x5f5bf4(_0x35f454['error'][_0x9edd('0x23')]);}else{logger[_0x9edd('0x1f')](_0x9edd('0x24'),_0x1042aa,_0x9edd('0x20'));_0x5f5bf4(_0x35f454[_0x9edd('0x25')]['message']);}})[_0x9edd('0x26')](function(_0xeaf55a){logger[_0x9edd('0x22')](_0x9edd('0x24'),_0x1042aa,_0xeaf55a);_0x448996(_0xeaf55a);});});}function respondWithStatusCode(_0x310a4d,_0x4d507f){_0x4d507f=_0x4d507f||0xcc;return function(_0x4b3d1b){if(_0x4b3d1b){return _0x310a4d[_0x9edd('0x27')](_0x4d507f);}return _0x310a4d[_0x9edd('0x28')](_0x4d507f)[_0x9edd('0x29')]();};}function respondWithResult(_0x25e135,_0x3c2227){_0x3c2227=_0x3c2227||0xc8;return function(_0x4fe471){if(_0x4fe471){return _0x25e135['status'](_0x3c2227)[_0x9edd('0x2a')](_0x4fe471);}};}function respondWithFilteredResult(_0x257a26,_0x1c762c){return function(_0x52746a){if(_0x52746a){var _0x238b22=_0x52746a['count'],_0x28cfae=_0x1c762c[_0x9edd('0x2b')],_0x2ae8dd=_0x1c762c[_0x9edd('0x2b')]+_0x1c762c[_0x9edd('0x2c')],_0x41af53;if(_0x2ae8dd>=_0x238b22){_0x2ae8dd=_0x238b22;_0x41af53=0xc8;}else{_0x41af53=0xce;}_0x257a26[_0x9edd('0x28')](_0x41af53);return _0x257a26[_0x9edd('0x2d')](_0x9edd('0x2e'),_0x28cfae+'-'+_0x2ae8dd+'/'+_0x238b22)[_0x9edd('0x2a')](_0x52746a);}return null;};}function patchUpdates(_0x1fba7b){return function(_0x19b6c1){try{jsonpatch[_0x9edd('0x2f')](_0x19b6c1,_0x1fba7b,!![]);}catch(_0x4fd03f){return BPromise[_0x9edd('0x30')](_0x4fd03f);}return _0x19b6c1[_0x9edd('0x31')]();};}function saveUpdates(_0xa55906,_0x1a6c23){return function(_0x5af178){if(_0x5af178){return _0x5af178[_0x9edd('0x32')](_0xa55906)[_0x9edd('0x1e')](function(_0x267c74){return _0x267c74;});}return null;};}function removeEntity(_0x5d1707,_0x2d2f88){return function(_0x3990fb){if(_0x3990fb){return _0x3990fb[_0x9edd('0x33')]()[_0x9edd('0x1e')](function(){_0x5d1707[_0x9edd('0x28')](0xcc)[_0x9edd('0x29')]();});}};}function handleEntityNotFound(_0x473068,_0x438a5d){return function(_0xd0fd74){if(!_0xd0fd74){_0x473068[_0x9edd('0x27')](0x194);}return _0xd0fd74;};}function handleError(_0x29e789,_0x42c1d9){_0x42c1d9=_0x42c1d9||0x1f4;return function(_0x27eb7e){logger[_0x9edd('0x22')](_0x27eb7e['stack']);if(_0x27eb7e[_0x9edd('0x34')]){delete _0x27eb7e['name'];}_0x29e789[_0x9edd('0x28')](_0x42c1d9)[_0x9edd('0x35')](_0x27eb7e);};}exports[_0x9edd('0x36')]=function(_0x434d26,_0x16770e){var _0x4fa5ab={},_0x6de835={},_0x44dbfc={'count':0x0,'rows':[]};var _0x2b3469=db[_0x9edd('0x37')][_0x9edd('0x38')];_0x6de835[_0x9edd('0x39')]=_[_0x9edd('0x3a')](_0x2b3469);var _0x1cbbac={'dateStart':_0x434d26[_0x9edd('0x3b')][_0x9edd('0x3c')],'dateEnd':_0x434d26['query'][_0x9edd('0x3d')]};delete _0x434d26['query'][_0x9edd('0x3c')];delete _0x434d26['query'][_0x9edd('0x3d')];_0x6de835[_0x9edd('0x3b')]=_[_0x9edd('0x3a')](_0x434d26['query']);_0x6de835[_0x9edd('0x3e')]=_[_0x9edd('0x3f')](_0x6de835[_0x9edd('0x39')],_0x6de835['query']);_0x4fa5ab[_0x9edd('0x40')]=_['intersection'](_0x6de835[_0x9edd('0x39')],qs[_0x9edd('0x41')](_0x434d26['query'][_0x9edd('0x41')]));_0x4fa5ab[_0x9edd('0x40')]=_0x4fa5ab[_0x9edd('0x40')][_0x9edd('0x42')]?_0x4fa5ab['attributes']:_0x6de835[_0x9edd('0x39')];if(!_0x434d26['query'][_0x9edd('0x43')](_0x9edd('0x44'))){_0x4fa5ab['limit']=qs[_0x9edd('0x2c')](_0x434d26['query']['limit']);_0x4fa5ab[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0x434d26[_0x9edd('0x3b')][_0x9edd('0x2b')]);}_0x4fa5ab[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0x434d26[_0x9edd('0x3b')][_0x9edd('0x46')]);_0x4fa5ab[_0x9edd('0x47')]=qs[_0x9edd('0x3e')](_[_0x9edd('0x48')](_0x434d26[_0x9edd('0x3b')],_0x6de835[_0x9edd('0x3e')]));if(_0x1cbbac[_0x9edd('0x3c')]){if(_0x1cbbac[_0x9edd('0x3d')]){_0x1cbbac['dateEnd']=moment(_0x1cbbac[_0x9edd('0x3d')])[_0x9edd('0x49')](0x1,_0x9edd('0x4a'));}else{_0x1cbbac[_0x9edd('0x3d')]=moment(_0x1cbbac[_0x9edd('0x3c')])[_0x9edd('0x49')](0x1,_0x9edd('0x4a'));}_['merge'](_0x4fa5ab['where'],{'createdAt':{'$gte':_0x1cbbac['dateStart'],'$lte':_0x1cbbac[_0x9edd('0x3d')]}});}if(_0x434d26['query'][_0x9edd('0x4b')]){_0x4fa5ab[_0x9edd('0x47')]=_[_0x9edd('0x4c')](_0x4fa5ab[_0x9edd('0x47')],{'$or':_[_0x9edd('0x4d')](_0x4fa5ab['attributes'],function(_0x387fb8){var _0x35e63c={};_0x35e63c[_0x387fb8]={'$like':'%'+_0x434d26[_0x9edd('0x3b')]['filter']+'%'};return _0x35e63c;})});}_0x4fa5ab=_[_0x9edd('0x4c')]({},_0x4fa5ab,_0x434d26[_0x9edd('0x4e')]);var _0x2159aa={'where':_0x4fa5ab[_0x9edd('0x47')]};return db[_0x9edd('0x37')][_0x9edd('0x4f')](_0x2159aa)['then'](function(_0x441e4a){_0x44dbfc[_0x9edd('0x4f')]=_0x441e4a;if(_0x434d26['query'][_0x9edd('0x50')]){_0x4fa5ab[_0x9edd('0x51')]=[{'all':!![]}];}return db['ChatWebsite'][_0x9edd('0x52')](_0x4fa5ab);})[_0x9edd('0x1e')](function(_0x468239){_0x44dbfc['rows']=_0x468239;return _0x44dbfc;})[_0x9edd('0x1e')](respondWithFilteredResult(_0x16770e,_0x4fa5ab))[_0x9edd('0x26')](handleError(_0x16770e,null));};exports[_0x9edd('0x53')]=function(_0x28c7bd,_0x53f6e3){var _0x446443={'raw':![],'where':{'id':_0x28c7bd[_0x9edd('0x54')]['id']}},_0x527727={};_0x527727['model']=_[_0x9edd('0x3a')](db[_0x9edd('0x37')]['rawAttributes']);_0x527727[_0x9edd('0x3b')]=_['keys'](_0x28c7bd[_0x9edd('0x3b')]);_0x527727[_0x9edd('0x3e')]=_[_0x9edd('0x3f')](_0x527727[_0x9edd('0x39')],_0x527727[_0x9edd('0x3b')]);_0x446443[_0x9edd('0x40')]=_[_0x9edd('0x3f')](_0x527727[_0x9edd('0x39')],qs[_0x9edd('0x41')](_0x28c7bd[_0x9edd('0x3b')][_0x9edd('0x41')]));_0x446443['attributes']=_0x446443[_0x9edd('0x40')][_0x9edd('0x42')]?_0x446443[_0x9edd('0x40')]:_0x527727['model'];if(_0x28c7bd[_0x9edd('0x3b')]['includeAll']){_0x446443['include']=[{'all':!![]}];}_0x446443=_['merge']({},_0x446443,_0x28c7bd[_0x9edd('0x4e')]);return db[_0x9edd('0x37')][_0x9edd('0x55')](_0x446443)[_0x9edd('0x1e')](handleEntityNotFound(_0x53f6e3,null))['then'](respondWithResult(_0x53f6e3,null))['catch'](handleError(_0x53f6e3,null));};exports['create']=function(_0x71820f,_0x5f666b){return db[_0x9edd('0x37')][_0x9edd('0x56')](_0x71820f[_0x9edd('0x57')],{})[_0x9edd('0x1e')](respondWithResult(_0x5f666b,0xc9))[_0x9edd('0x26')](handleError(_0x5f666b,null));};exports[_0x9edd('0x32')]=function(_0x4eb780,_0x16dfdc){if(_0x4eb780['body']['id']){delete _0x4eb780[_0x9edd('0x57')]['id'];}return db[_0x9edd('0x37')]['find']({'where':{'id':_0x4eb780[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x16dfdc,null))[_0x9edd('0x1e')](saveUpdates(_0x4eb780['body'],null))[_0x9edd('0x1e')](respondWithResult(_0x16dfdc,null))[_0x9edd('0x26')](handleError(_0x16dfdc,null));};exports[_0x9edd('0x33')]=function(_0x15ebfa,_0x1720b1){return db[_0x9edd('0x37')]['find']({'where':{'id':_0x15ebfa['params']['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x1720b1,null))['then'](removeEntity(_0x1720b1,null))[_0x9edd('0x26')](handleError(_0x1720b1,null));};exports[_0x9edd('0x58')]=function(_0x439083,_0x17d2f2){return db['ChatWebsite'][_0x9edd('0x58')]()['then'](respondWithResult(_0x17d2f2,null))[_0x9edd('0x26')](handleError(_0x17d2f2,null));};exports[_0x9edd('0x59')]=function(_0xc6bde6,_0x5ca123,_0x2651a2){if(_0xc6bde6['body']['id']){delete _0xc6bde6[_0x9edd('0x57')]['id'];}return db[_0x9edd('0x37')]['find']({'where':{'id':_0xc6bde6[_0x9edd('0x54')]['id']}})['then'](handleEntityNotFound(_0x5ca123,null))[_0x9edd('0x1e')](function(_0x134c9c){if(_0x134c9c){_0xc6bde6[_0x9edd('0x57')]['ChatWebsiteId']=_0x134c9c['id'];return db[_0x9edd('0x5a')][_0x9edd('0x56')](_0xc6bde6[_0x9edd('0x57')]);}})[_0x9edd('0x1e')](respondWithResult(_0x5ca123,null))[_0x9edd('0x26')](handleError(_0x5ca123,null));};exports['getDispositions']=function(_0x48f017,_0x2e1a96,_0x211526){var _0x5516c4={'raw':![],'where':{}};var _0x5496e9={};var _0x52afd7={'count':0x0,'rows':[]};return db[_0x9edd('0x37')]['findOne']({'where':{'id':_0x48f017['params']['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x2e1a96,null))[_0x9edd('0x1e')](function(_0x589348){if(_0x589348){_0x5496e9[_0x9edd('0x39')]=_[_0x9edd('0x3a')](db[_0x9edd('0x5a')]['rawAttributes']);_0x5496e9[_0x9edd('0x3b')]=_['keys'](_0x48f017[_0x9edd('0x3b')]);_0x5496e9[_0x9edd('0x3e')]=_['intersection'](_0x5496e9[_0x9edd('0x39')],_0x5496e9[_0x9edd('0x3b')]);_0x5516c4['attributes']=_[_0x9edd('0x3f')](_0x5496e9[_0x9edd('0x39')],qs[_0x9edd('0x41')](_0x48f017[_0x9edd('0x3b')]['fields']));_0x5516c4[_0x9edd('0x40')]=_0x5516c4['attributes'][_0x9edd('0x42')]?_0x5516c4[_0x9edd('0x40')]:_0x5496e9[_0x9edd('0x39')];if(!_0x48f017['query'][_0x9edd('0x43')](_0x9edd('0x44'))){_0x5516c4[_0x9edd('0x2c')]=qs[_0x9edd('0x2c')](_0x48f017[_0x9edd('0x3b')][_0x9edd('0x2c')]);_0x5516c4[_0x9edd('0x2b')]=qs['offset'](_0x48f017['query'][_0x9edd('0x2b')]);}_0x5516c4[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0x48f017[_0x9edd('0x3b')][_0x9edd('0x46')]);_0x5516c4['where']=qs[_0x9edd('0x3e')](_[_0x9edd('0x48')](_0x48f017[_0x9edd('0x3b')],_0x5496e9['filters']));_0x5516c4[_0x9edd('0x47')][_0x9edd('0x5b')]=_0x589348['id'];if(_0x48f017['query'][_0x9edd('0x4b')]){_0x5516c4[_0x9edd('0x47')]=_['merge'](_0x5516c4[_0x9edd('0x47')],{'$or':_[_0x9edd('0x4d')](_0x5516c4['attributes'],function(_0x3f08ac){var _0x4b8cbc={};_0x4b8cbc[_0x3f08ac]={'$like':'%'+_0x48f017['query'][_0x9edd('0x4b')]+'%'};return _0x4b8cbc;})});}_0x5516c4=_[_0x9edd('0x4c')]({},_0x5516c4,_0x48f017[_0x9edd('0x4e')]);return db['Disposition'][_0x9edd('0x4f')]({'where':_0x5516c4[_0x9edd('0x47')]})['then'](function(_0x1832c0){_0x52afd7[_0x9edd('0x4f')]=_0x1832c0;if(_0x48f017[_0x9edd('0x3b')][_0x9edd('0x50')]){_0x5516c4['include']=[{'all':!![]}];}return db['Disposition'][_0x9edd('0x52')](_0x5516c4);})['then'](function(_0x350c15){_0x52afd7[_0x9edd('0x5c')]=_0x350c15;return _0x52afd7;});}})[_0x9edd('0x1e')](respondWithFilteredResult(_0x2e1a96,_0x5516c4))[_0x9edd('0x26')](handleError(_0x2e1a96,null));};exports[_0x9edd('0x5d')]=function(_0x4786f8,_0x1eabcd,_0x5a4d4b){var _0xef1397;return db['ChatWebsite'][_0x9edd('0x55')]({'where':{'id':_0x4786f8[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x1eabcd,null))[_0x9edd('0x1e')](function(_0x206131){if(_0x206131){return _0x206131[_0x9edd('0x5d')](_0x4786f8[_0x9edd('0x3b')]['ids']);}})[_0x9edd('0x1e')](respondWithStatusCode(_0x1eabcd,null))[_0x9edd('0x26')](handleError(_0x1eabcd,null));};exports['addAnswer']=function(_0x26c11a,_0x14b6b9,_0x57231c){if(_0x26c11a[_0x9edd('0x57')]['id']){delete _0x26c11a[_0x9edd('0x57')]['id'];}return db[_0x9edd('0x37')]['find']({'where':{'id':_0x26c11a[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x14b6b9,null))[_0x9edd('0x1e')](function(_0x5a7de3){if(_0x5a7de3){_0x26c11a['body']['ChatWebsiteId']=_0x5a7de3['id'];return db['CannedAnswer'][_0x9edd('0x56')](_0x26c11a[_0x9edd('0x57')]);}})[_0x9edd('0x1e')](respondWithResult(_0x14b6b9,null))['catch'](handleError(_0x14b6b9,null));};exports['getAnswers']=function(_0x49dc1d,_0x56d794,_0x388252){var _0x20762d={'raw':![],'where':{}};var _0x35c7d4={};var _0x4713ae={'count':0x0,'rows':[]};return db[_0x9edd('0x37')][_0x9edd('0x5e')]({'where':{'id':_0x49dc1d[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x56d794,null))[_0x9edd('0x1e')](function(_0x2523b5){if(_0x2523b5){_0x35c7d4[_0x9edd('0x39')]=_['keys'](db[_0x9edd('0x5f')][_0x9edd('0x38')]);_0x35c7d4[_0x9edd('0x3b')]=_[_0x9edd('0x3a')](_0x49dc1d[_0x9edd('0x3b')]);_0x35c7d4[_0x9edd('0x3e')]=_[_0x9edd('0x3f')](_0x35c7d4[_0x9edd('0x39')],_0x35c7d4['query']);_0x20762d['attributes']=_[_0x9edd('0x3f')](_0x35c7d4['model'],qs[_0x9edd('0x41')](_0x49dc1d['query'][_0x9edd('0x41')]));_0x20762d[_0x9edd('0x40')]=_0x20762d['attributes'][_0x9edd('0x42')]?_0x20762d[_0x9edd('0x40')]:_0x35c7d4['model'];if(!_0x49dc1d[_0x9edd('0x3b')][_0x9edd('0x43')](_0x9edd('0x44'))){_0x20762d[_0x9edd('0x2c')]=qs[_0x9edd('0x2c')](_0x49dc1d['query'][_0x9edd('0x2c')]);_0x20762d[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0x49dc1d[_0x9edd('0x3b')][_0x9edd('0x2b')]);}_0x20762d['order']=qs['sort'](_0x49dc1d['query']['sort']);_0x20762d['where']=qs[_0x9edd('0x3e')](_['pick'](_0x49dc1d['query'],_0x35c7d4[_0x9edd('0x3e')]));_0x20762d[_0x9edd('0x47')][_0x9edd('0x5b')]=_0x2523b5['id'];if(_0x49dc1d[_0x9edd('0x3b')][_0x9edd('0x4b')]){_0x20762d[_0x9edd('0x47')]=_[_0x9edd('0x4c')](_0x20762d[_0x9edd('0x47')],{'$or':_[_0x9edd('0x4d')](_0x20762d[_0x9edd('0x40')],function(_0x5b5ae9){var _0x14e003={};_0x14e003[_0x5b5ae9]={'$like':'%'+_0x49dc1d[_0x9edd('0x3b')][_0x9edd('0x4b')]+'%'};return _0x14e003;})});}_0x20762d=_[_0x9edd('0x4c')]({},_0x20762d,_0x49dc1d[_0x9edd('0x4e')]);return db[_0x9edd('0x5f')][_0x9edd('0x4f')]({'where':_0x20762d[_0x9edd('0x47')]})['then'](function(_0x49a69b){_0x4713ae[_0x9edd('0x4f')]=_0x49a69b;if(_0x49dc1d[_0x9edd('0x3b')][_0x9edd('0x50')]){_0x20762d[_0x9edd('0x51')]=[{'all':!![]}];}return db[_0x9edd('0x5f')][_0x9edd('0x52')](_0x20762d);})[_0x9edd('0x1e')](function(_0x22590d){_0x4713ae[_0x9edd('0x5c')]=_0x22590d;return _0x4713ae;});}})[_0x9edd('0x1e')](respondWithFilteredResult(_0x56d794,_0x20762d))[_0x9edd('0x26')](handleError(_0x56d794,null));};exports[_0x9edd('0x60')]=function(_0x103a61,_0xf418d,_0x55bc19){var _0x43b19e;return db[_0x9edd('0x37')]['find']({'where':{'id':_0x103a61[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0xf418d,null))[_0x9edd('0x1e')](function(_0x2b4d4c){if(_0x2b4d4c){return _0x2b4d4c['removeAnswers'](_0x103a61[_0x9edd('0x3b')][_0x9edd('0x61')]);}})[_0x9edd('0x1e')](respondWithStatusCode(_0xf418d,null))[_0x9edd('0x26')](handleError(_0xf418d,null));};exports[_0x9edd('0x62')]=function(_0x5a23d0,_0x2fe939,_0x1c21d5){_0x5a23d0[_0x9edd('0x57')][_0x9edd('0x63')]=_0x5a23d0[_0x9edd('0x64')]['filename'];return db['ChatWebsite'][_0x9edd('0x55')]({'where':{'id':_0x5a23d0['params']['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x2fe939,null))['then'](saveUpdates(_0x5a23d0[_0x9edd('0x57')],null))[_0x9edd('0x1e')](respondWithResult(_0x2fe939,null))[_0x9edd('0x26')](handleError(_0x2fe939,null));};exports[_0x9edd('0x65')]=function(_0x2c7245,_0x34d086,_0x5975f9){_0x2c7245[_0x9edd('0x57')][_0x9edd('0x66')]=_0x2c7245[_0x9edd('0x64')][_0x9edd('0x67')];return db[_0x9edd('0x37')][_0x9edd('0x55')]({'where':{'id':_0x2c7245[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x34d086,null))['then'](saveUpdates(_0x2c7245[_0x9edd('0x57')],null))[_0x9edd('0x1e')](respondWithResult(_0x34d086,null))[_0x9edd('0x26')](handleError(_0x34d086,null));};exports[_0x9edd('0x68')]=function(_0x385814,_0x2e75c6,_0x3ce64e){_0x385814[_0x9edd('0x57')][_0x9edd('0x69')]=_0x385814[_0x9edd('0x64')][_0x9edd('0x67')];return db[_0x9edd('0x37')][_0x9edd('0x55')]({'where':{'id':_0x385814[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x2e75c6,null))[_0x9edd('0x1e')](saveUpdates(_0x385814[_0x9edd('0x57')],null))[_0x9edd('0x1e')](respondWithResult(_0x2e75c6,null))[_0x9edd('0x26')](handleError(_0x2e75c6,null));};exports[_0x9edd('0x6a')]=function(_0x220701,_0x495db0,_0xa704eb){_0x220701['body']['systemAvatar']=_0x220701[_0x9edd('0x64')][_0x9edd('0x67')];return db[_0x9edd('0x37')][_0x9edd('0x55')]({'where':{'id':_0x220701[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x495db0,null))[_0x9edd('0x1e')](saveUpdates(_0x220701[_0x9edd('0x57')],null))[_0x9edd('0x1e')](respondWithResult(_0x495db0,null))[_0x9edd('0x26')](handleError(_0x495db0,null));};exports['getLogo']=function(_0x423df4,_0x3c2c2c,_0x48f1ae){var _0x568067=path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],_0x9edd('0x6d'));var _0x28a8ff={'where':{'id':_0x423df4['params']['id']},'attributes':['id','sitepic'],'raw':!![]};var _0x272623=![];return require('../../config/license/util')[_0x9edd('0x6e')]()[_0x9edd('0x1e')](function(_0x3e2404){if(_0x3e2404){_0x272623=_0x3e2404['custom'];}})['then'](function(){return db['ChatWebsite'][_0x9edd('0x55')](_0x28a8ff);})[_0x9edd('0x1e')](handleEntityNotFound(_0x3c2c2c,null))[_0x9edd('0x1e')](function(_0x5bfbfd){if(_0x5bfbfd){if(!_[_0x9edd('0x6f')](_0x5bfbfd[_0x9edd('0x63')])){if(fs['existsSync'](path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],'server/files/images/logos/',_0x5bfbfd['sitepic']))&&_0x272623){_0x568067=path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],'server/files/images/logos/',_0x5bfbfd[_0x9edd('0x63')]);}}return _0x3c2c2c[_0x9edd('0x70')](_0x568067);}})['catch'](handleError(_0x3c2c2c,null));};exports[_0x9edd('0x71')]=function(_0x479ccb,_0x308a0f,_0x293d05){var _0x23eb54=path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],_0x9edd('0x72'));var _0x58bc3c={'where':{'id':_0x479ccb[_0x9edd('0x54')]['id']},'attributes':['id',_0x9edd('0x66')],'raw':!![]};return db[_0x9edd('0x37')]['find'](_0x58bc3c)[_0x9edd('0x1e')](handleEntityNotFound(_0x308a0f,null))['then'](function(_0x24ec69){if(_0x24ec69){if(!_[_0x9edd('0x6f')](_0x24ec69[_0x9edd('0x66')])){if(fs[_0x9edd('0x73')](path['join'](config['root'],'server/files/images/avatars/',_0x24ec69[_0x9edd('0x66')]))){_0x23eb54=path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],'server/files/images/avatars/',_0x24ec69[_0x9edd('0x66')]);}}return _0x308a0f[_0x9edd('0x70')](_0x23eb54);}})[_0x9edd('0x26')](handleError(_0x308a0f,null));};exports[_0x9edd('0x74')]=function(_0x1aa77f,_0x4345eb,_0x558d0a){var _0x5e5cda=path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],_0x9edd('0x75'));var _0x5c299a={'where':{'id':_0x1aa77f[_0x9edd('0x54')]['id']},'attributes':['id',_0x9edd('0x69'),_0x9edd('0x76')],'raw':!![]};return db[_0x9edd('0x37')]['find'](_0x5c299a)[_0x9edd('0x1e')](handleEntityNotFound(_0x4345eb,null))['then'](function(_0x3d8b18){if(_0x3d8b18){if(!_[_0x9edd('0x6f')](_0x3d8b18[_0x9edd('0x69')])){if(fs[_0x9edd('0x73')](path[_0x9edd('0x6b')](config['root'],_0x9edd('0x77'),_0x3d8b18['customerAvatar']))&&_0x3d8b18[_0x9edd('0x76')]){_0x5e5cda=path['join'](config[_0x9edd('0x6c')],'server/files/images/avatars/',_0x3d8b18[_0x9edd('0x69')]);}}return _0x4345eb[_0x9edd('0x70')](_0x5e5cda);}})[_0x9edd('0x26')](handleError(_0x4345eb,null));};exports['getSystemAvatar']=function(_0x244dce,_0x7512ea,_0x1c5038){var _0x2e7b0d=path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],_0x9edd('0x78'));var _0x311f11={'where':{'id':_0x244dce[_0x9edd('0x54')]['id']},'attributes':['id',_0x9edd('0x79')],'raw':!![]};return db[_0x9edd('0x37')][_0x9edd('0x55')](_0x311f11)[_0x9edd('0x1e')](handleEntityNotFound(_0x7512ea,null))[_0x9edd('0x1e')](function(_0x33dbe8){if(_0x33dbe8){if(!_[_0x9edd('0x6f')](_0x33dbe8[_0x9edd('0x79')])){if(fs[_0x9edd('0x73')](path[_0x9edd('0x6b')](config[_0x9edd('0x6c')],_0x9edd('0x77'),_0x33dbe8[_0x9edd('0x79')]))){_0x2e7b0d=path['join'](config[_0x9edd('0x6c')],'server/files/images/avatars/',_0x33dbe8[_0x9edd('0x79')]);}}return _0x7512ea[_0x9edd('0x70')](_0x2e7b0d);}})[_0x9edd('0x26')](handleError(_0x7512ea,null));};exports[_0x9edd('0x7a')]=function(_0x126034,_0x5465fd,_0x2d7cff){var _0x515913=require(_0x9edd('0x7b'));var _0x438cc5=new _0x515913();var _0x3bd4cc=_0x438cc5[_0x9edd('0x7c')](_0x126034[_0x9edd('0x7d')][_0x9edd('0x7e')])['getResult']();var _0x2d5389={'body':_0x126034[_0x9edd('0x57')],'channel':'chat'};var _0x4f7350=[];var _0x4adea1=[];var _0x5e2be1={};var _0x2a8525=![];return db[_0x9edd('0x7f')][_0x9edd('0x58')]()[_0x9edd('0x1e')](function(_0x239774){if(!_0x239774){throw new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))](_0x9edd('0x82'));}_0x4f7350=_[_0x9edd('0x83')](_[_0x9edd('0x3a')](_0x239774),['createdAt',_0x9edd('0x84')]);_0x4adea1=_['difference'](_['keys'](_0x239774),[_0x9edd('0x85'),_0x9edd('0x84'),_0x9edd('0x86'),_0x9edd('0x87')]);if(_0x126034[_0x9edd('0x57')]['id']){delete _0x126034['body']['id'];}if(_[_0x9edd('0x6f')](_0x126034[_0x9edd('0x57')][_0x9edd('0x88')])){throw new db[(_0x9edd('0x80'))]['ValidationError'](_0x9edd('0x89'));}if(_[_0x9edd('0x6f')](_0x126034[_0x9edd('0x57')][_0x9edd('0x57')])||_0x126034[_0x9edd('0x57')][_0x9edd('0x57')]===''){throw new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))](_0x9edd('0x8a'));}if(_[_0x9edd('0x6f')](_0x126034[_0x9edd('0x57')]['mapKey'])){throw new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))](_0x9edd('0x8b')+_0x4adea1);}if(!_[_0x9edd('0x8c')](_0x4adea1,_0x126034[_0x9edd('0x57')][_0x9edd('0x8d')])){throw new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4adea1);}_0x5e2be1[_0x126034['body']['mapKey']]=_0x126034[_0x9edd('0x57')][_0x9edd('0x88')];})[_0x9edd('0x1e')](function(){return db[_0x9edd('0x37')][_0x9edd('0x55')]({'where':{'id':_0x126034[_0x9edd('0x54')]['id']},'include':[{'model':db[_0x9edd('0x8e')],'as':_0x9edd('0x8f'),'include':[{'model':db[_0x9edd('0x7f')],'as':_0x9edd('0x90'),'where':_0x5e2be1,'limit':0x1,'order':[['updatedAt',_0x9edd('0x91')]]}]},{'model':db['ChatApplication'],'as':'Applications'}]});})[_0x9edd('0x1e')](handleEntityNotFound(_0x5465fd,null))[_0x9edd('0x1e')](function(_0x2d2ce9){if(_0x2d2ce9&&_0x2d2ce9['List']){_0x2d5389['account']=_0x2d2ce9;_0x2d5389['applications']=_0x2d2ce9['Applications'];_0x2d5389['list']=_0x2d2ce9[_0x9edd('0x8f')];_0x2d5389[_0x9edd('0x92')]=_[_0x9edd('0x93')](_0x2d5389['applications'],[_0x9edd('0x94')],[_0x9edd('0x95')]);if(_0x2d5389[_0x9edd('0x96')]['Applications']){delete _0x2d5389[_0x9edd('0x96')]['Applications'];}if(_0x2d5389[_0x9edd('0x96')][_0x9edd('0x8f')]&&_0x2d5389[_0x9edd('0x96')][_0x9edd('0x8f')]['Contacts'][_0x9edd('0x42')]){return _0x2d5389[_0x9edd('0x96')]['List'][_0x9edd('0x90')][0x0];}var _0x36e825=_[_0x9edd('0x15')](_0x126034[_0x9edd('0x57')],{'firstName':_0x126034['body'][_0x9edd('0x88')],'ListId':_0x2d2ce9[_0x9edd('0x87')]});_0x36e825[_0x126034[_0x9edd('0x57')][_0x9edd('0x8d')]]=_0x126034[_0x9edd('0x57')][_0x9edd('0x88')];return db[_0x9edd('0x7f')]['create'](_0x36e825,{'fields':_0x4f7350,'raw':!![]});}})[_0x9edd('0x1e')](handleEntityNotFound(_0x5465fd,null))['then'](function(_0x27d830){_0x2d5389[_0x9edd('0x97')]=_0x27d830;if(_0x27d830){var _0x49cbc7={'ContactId':_0x27d830['id'],'ChatWebsiteId':_0x126034[_0x9edd('0x54')]['id'],'from':(_0x27d830[_0x9edd('0x98')]||'')+'\x20'+(_0x27d830[_0x9edd('0x99')]||''),'customerIp':_0x126034['body'][_0x9edd('0x9a')],'referer':_0x126034[_0x9edd('0x57')][_0x9edd('0x9b')],'browserName':_0x3bd4cc['browser'][_0x9edd('0x34')]&&_0x3bd4cc['browser'][_0x9edd('0x9c')]?util[_0x9edd('0x9d')](_0x9edd('0x9e'),_0x3bd4cc[_0x9edd('0x9f')]['name'],_0x3bd4cc['browser'][_0x9edd('0x9c')]):_0x9edd('0xa0'),'browserVersion':_0x3bd4cc[_0x9edd('0x9f')][_0x9edd('0x9c')]||_0x9edd('0xa0'),'osName':util['format'](_0x9edd('0x9e'),_0x3bd4cc['os'][_0x9edd('0x34')],_0x3bd4cc['os'][_0x9edd('0x9c')]),'osVersion':_0x3bd4cc['os'][_0x9edd('0x9c')],'deviceModel':_0x3bd4cc[_0x9edd('0xa1')][_0x9edd('0x39')]&&_0x3bd4cc[_0x9edd('0xa1')][_0x9edd('0xa2')]?util[_0x9edd('0x9d')](_0x9edd('0xa3'),_0x3bd4cc[_0x9edd('0xa1')][_0x9edd('0x39')],_0x3bd4cc[_0x9edd('0xa1')]['vendor'],_0x3bd4cc[_0x9edd('0xa1')][_0x9edd('0xa4')]):null,'deviceVendor':_0x3bd4cc[_0x9edd('0xa1')][_0x9edd('0xa2')],'deviceType':_0x3bd4cc['device'][_0x9edd('0xa4')],'formData':JSON[_0x9edd('0xa5')](_0x126034[_0x9edd('0x57')])};var _0x4d6002={'ChatWebsiteId':_0x126034[_0x9edd('0x54')]['id'],'closed':![]};if(_0x126034['body']['threadId']){_0x4d6002[_0x9edd('0xa6')]=_0x126034[_0x9edd('0x57')][_0x9edd('0xa6')];return db[_0x9edd('0xa7')]['find']({'where':_0x4d6002})[_0x9edd('0x1e')](function(_0x27e060){if(_0x27e060){return[_0x27e060,![]];}_0x49cbc7[_0x9edd('0xa6')]=_0x126034[_0x9edd('0x57')][_0x9edd('0xa6')];_0x49cbc7[_0x9edd('0xa8')]=_0x126034[_0x9edd('0x57')][_0x9edd('0xa8')];return db[_0x9edd('0xa7')][_0x9edd('0x56')](_0x49cbc7)[_0x9edd('0x1e')](function(_0x2f8376){return[_0x2f8376,!![]];});});}_0x4d6002['ContactId']=_0x27d830['id'];if(_0x126034[_0x9edd('0x57')][_0x9edd('0xa9')]&&_0x126034[_0x9edd('0x57')][_0x9edd('0xa9')]['id']){_0x4d6002['id']=_0x126034[_0x9edd('0x57')]['interaction']['id'];return db[_0x9edd('0xa7')]['find']({'where':_0x4d6002})[_0x9edd('0x1e')](function(_0x22fb1d){if(_0x22fb1d){return[_0x22fb1d,![]];}return db['ChatInteraction']['create'](_0x49cbc7)[_0x9edd('0x1e')](function(_0x3686c0){return[_0x3686c0,!![]];});});}return db[_0x9edd('0xa7')][_0x9edd('0x56')](_0x49cbc7)[_0x9edd('0x1e')](function(_0x53535e){return[_0x53535e,!![]];});}})['spread'](function(_0x2567c8,_0x2a10ba){if(_0x2567c8){_0x2a8525=_0x2a10ba;if(!_0x2a10ba){return _0x2567c8[_0x9edd('0x32')]({'from':(_0x2d5389[_0x9edd('0x97')]['firstName']||'')+'\x20'+(_0x2d5389[_0x9edd('0x97')][_0x9edd('0x99')]||'')});}else{return _0x2567c8;}}})[_0x9edd('0x1e')](function(_0xecf9b7){_0x2d5389[_0x9edd('0xa9')]=_0xecf9b7[_0x9edd('0xaa')]({'plain':!![]});_0x2d5389[_0x9edd('0xa9')]['created']=_0x2a8525;if(_0x2d5389[_0x9edd('0xa9')][_0x9edd('0xab')]){if(_0x2d5389[_0x9edd('0x96')][_0x9edd('0xac')]){_0x2d5389[_0x9edd('0x92')][_0x9edd('0xad')]({'id':0x0,'priority':_0x2d5389[_0x9edd('0x92')][_0x9edd('0x42')]+0x1,'app':_0x9edd('0xae'),'appdata':_0x9edd('0xaf'),'interval':_0x9edd('0xb0')});}}return db[_0x9edd('0xb1')][_0x9edd('0x56')]({'body':_0x126034['body'][_0x9edd('0x57')],'ChatWebsiteId':_0x126034[_0x9edd('0x54')]['id'],'ChatInteractionId':_0xecf9b7['id'],'direction':'in','ContactId':_0x2d5389[_0x9edd('0x97')]['id'],'AttachmentId':_0x126034[_0x9edd('0x57')]['AttachmentId']});})[_0x9edd('0x1e')](function(_0x2d340b){_0x2d5389[_0x9edd('0x23')]=_0x2d340b;if(_0x2d5389[_0x9edd('0xa9')][_0x9edd('0xb2')]){return db[_0x9edd('0xb3')][_0x9edd('0x55')]({'attributes':['id',_0x9edd('0x34')],'where':{'id':_0x2d5389[_0x9edd('0xa9')][_0x9edd('0xb2')]}})[_0x9edd('0x1e')](function(_0x524a47){if(_0x524a47){_0x2d5389[_0x9edd('0x92')][_0x9edd('0xb4')]({'id':0x0,'priority':0x0,'app':_0x9edd('0xb5'),'appdata':_0x524a47[_0x9edd('0x34')]+','+(_0x2d5389[_0x9edd('0x96')][_0x9edd('0xb6')]||0xa),'interval':_0x9edd('0xb0')});_0x2d5389['forcedOwnership']=!![];}return respondWithRpcPromise(_0x9edd('0xb7'),_0x9edd('0xb8'),_0x2d5389);});}return respondWithRpcPromise(_0x9edd('0xb7'),_0x9edd('0xb8'),_0x2d5389);})[_0x9edd('0x1e')](function(_0x116fcb){respondWithRpcPromise(_0x9edd('0xb9'),_0x9edd('0xb9'),{'event':_0x9edd('0x7a'),'message':_0x116fcb},client9002);return _0x116fcb;})[_0x9edd('0x1e')](respondWithResult(_0x5465fd,null))[_0x9edd('0x26')](handleError(_0x5465fd,null));};exports[_0x9edd('0xba')]=function(_0x2ef994,_0x35e0ce,_0x73985d){var _0xd227fe,_0x106889,_0x56a952;var _0xadc0be=[];var _0x300094=[];var _0x15fce6={};return db[_0x9edd('0x7f')][_0x9edd('0x58')]()[_0x9edd('0x1e')](function(_0x39a099){if(!_0x39a099){throw new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))]('no\x20available\x20attributes');}_0x300094=_[_0x9edd('0x83')](_[_0x9edd('0x3a')](_0x39a099),[_0x9edd('0x85'),'updatedAt']);_0xadc0be=_[_0x9edd('0x83')](_['keys'](_0x39a099),[_0x9edd('0x85'),'updatedAt',_0x9edd('0x86'),_0x9edd('0x87')]);if(_0x2ef994['body']['id']){delete _0x2ef994[_0x9edd('0x57')]['id'];}if(_[_0x9edd('0x6f')](_0x2ef994[_0x9edd('0x57')][_0x9edd('0x88')])){throw _0x35e0ce[_0x9edd('0x28')](0x1f4)[_0x9edd('0x35')](new db[(_0x9edd('0x80'))]['ValidationError'](_0x9edd('0x89')));}if(_[_0x9edd('0x6f')](_0x2ef994['body'][_0x9edd('0x57')])||_0x2ef994['body'][_0x9edd('0x57')]===''){throw _0x35e0ce[_0x9edd('0x28')](0x1f4)[_0x9edd('0x35')](new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))](_0x9edd('0x8a')));}if(_[_0x9edd('0x6f')](_0x2ef994[_0x9edd('0x57')][_0x9edd('0xbb')])){throw _0x35e0ce[_0x9edd('0x28')](0x1f4)[_0x9edd('0x35')](new db[(_0x9edd('0x80'))]['ValidationError']('mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xadc0be));}if(!_[_0x9edd('0x8c')](_0xadc0be,_0x2ef994[_0x9edd('0x57')][_0x9edd('0xbb')])){throw _0x35e0ce[_0x9edd('0x28')](0x1f4)[_0x9edd('0x35')](new db[(_0x9edd('0x80'))][(_0x9edd('0x81'))](_0x9edd('0xbc')+_0xadc0be));}_0x15fce6[_0x2ef994[_0x9edd('0x57')]['mapKeyOffline']]=_0x2ef994[_0x9edd('0x57')]['from'];})[_0x9edd('0x1e')](function(){return db[_0x9edd('0x37')][_0x9edd('0x55')]({'where':{'id':_0x2ef994[_0x9edd('0x54')]['id']},'include':[{'model':db[_0x9edd('0x8e')],'as':_0x9edd('0x8f')}]});})[_0x9edd('0x1e')](handleEntityNotFound(_0x35e0ce,null))[_0x9edd('0x1e')](function(_0x39243e){if(_0x39243e&&_0x39243e[_0x9edd('0x8f')]){_0x106889=_0x39243e;var _0x77a00c=_[_0x9edd('0x15')](_0x2ef994[_0x9edd('0x57')],{'firstName':_0x2ef994[_0x9edd('0x57')][_0x9edd('0x88')],'phone':_0x2ef994[_0x9edd('0x57')][_0x9edd('0x88')],'ListId':_0x39243e[_0x9edd('0x87')]});_0x77a00c[_0x2ef994[_0x9edd('0x57')]['mapKeyOffline']]=_0x2ef994['body'][_0x9edd('0x88')];return db['CmContact'][_0x9edd('0xbd')]({'where':_0x15fce6,'defaults':_0x77a00c});}})[_0x9edd('0xbe')](function(_0x135452){if(_0x135452){_0x56a952=_0x135452;var _0x402108=fs['readFileSync'](path['join'](config[_0x9edd('0x6c')],_0x9edd('0xbf')),_0x9edd('0xc0'));var _0xf841b1=ejs[_0x9edd('0xc1')](_0x402108,{'body':_['toPairs'](_0x2ef994[_0x9edd('0x57')]['body']),'bodyTitle':_0x106889[_0x9edd('0xc2')]});return db[_0x9edd('0xc3')][_0x9edd('0x56')]({'body':_0xf841b1,'ContactId':_0x135452['id'],'ChatWebsiteId':_0x106889['id']});}})[_0x9edd('0x1e')](function(_0x5c8edb){if(_0x5c8edb){_0xd227fe=_0x5c8edb;return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x9edd('0xc4')],'as':_0x9edd('0xc5'),'raw':!![]}]});}})[_0x9edd('0x1e')](function(_0x268e54){if(_0x268e54&&_0x268e54[_0x9edd('0xc5')]&&_0x106889[_0x9edd('0xc6')]){var _0x48632d={'tls':{'rejectUnauthorized':![]}};if(_0x268e54[_0x9edd('0xc5')][_0x9edd('0xc7')]){_0x48632d['service']=_0x268e54['Smtp'][_0x9edd('0xc7')];}else{_0x48632d[_0x9edd('0xc8')]=_0x268e54[_0x9edd('0xc5')]['host'];_0x48632d[_0x9edd('0xc9')]=_0x268e54[_0x9edd('0xc5')][_0x9edd('0xc9')];_0x48632d[_0x9edd('0xca')]=_0x268e54['Smtp'][_0x9edd('0xca')];}if(_0x268e54[_0x9edd('0xc5')][_0x9edd('0xcb')]){_0x48632d[_0x9edd('0xcc')]={'user':_0x268e54[_0x9edd('0xc5')][_0x9edd('0xcd')],'pass':_0x268e54['Smtp'][_0x9edd('0xce')]};}return respondWithRpcPromise(_0x9edd('0xcf'),_0x9edd('0xd0'),{'account':_0x48632d,'message':{'from':util[_0x9edd('0x9d')]('\x22%s\x22\x20<%s>',_0x268e54['name'],_0x268e54[_0x9edd('0xd1')]||_0x268e54[_0x9edd('0xc5')][_0x9edd('0xcd')]),'to':_0x106889[_0x9edd('0xc6')],'subject':_0x106889[_0x9edd('0xd2')],'text':_0xd227fe[_0x9edd('0x57')]}},client9003)[_0x9edd('0x1e')](function(){return _0xd227fe;})[_0x9edd('0x26')](function(_0xad1233){console[_0x9edd('0x22')](_0xad1233);});}})[_0x9edd('0x1e')](function(){if(_0xd227fe){return _0xd227fe;}})[_0x9edd('0x1e')](respondWithResult(_0x35e0ce,null))['catch'](handleError(_0x35e0ce,null));};exports['addInteraction']=function(_0x2fb82d,_0x12cb24,_0x3bbec8){return db[_0x9edd('0xa7')][_0x9edd('0x55')]({'where':{'id':_0x2fb82d[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x12cb24,null))[_0x9edd('0x1e')](function(_0x5b3603){if(_0x5b3603){return _0x5b3603[_0x9edd('0xd3')](_0x2fb82d[_0x9edd('0x57')][_0x9edd('0x61')],_[_0x9edd('0xd4')](_0x2fb82d[_0x9edd('0x57')],[_0x9edd('0x61'),'id'])||{});}})['then'](respondWithResult(_0x12cb24,null))['catch'](handleError(_0x12cb24,null));};exports[_0x9edd('0xd5')]=function(_0xd353c9,_0x4cab68,_0x50c328){var _0x4bafc8={'raw':![],'where':{}};var _0x301e25={};var _0x18b6b2={'count':0x0,'rows':[]};return db[_0x9edd('0x37')][_0x9edd('0x5e')]({'where':{'id':_0xd353c9[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x4cab68,null))[_0x9edd('0x1e')](function(_0x1a6fa2){if(_0x1a6fa2){_0x301e25[_0x9edd('0x39')]=_[_0x9edd('0x3a')](db[_0x9edd('0xa7')]['rawAttributes']);_0x301e25[_0x9edd('0x3b')]=_['keys'](_0xd353c9['query']);_0x301e25['filters']=_[_0x9edd('0x3f')](_0x301e25[_0x9edd('0x39')],_0x301e25['query']);_0x4bafc8['attributes']=_['intersection'](_0x301e25['model'],qs[_0x9edd('0x41')](_0xd353c9[_0x9edd('0x3b')][_0x9edd('0x41')]));_0x4bafc8['attributes']=_0x4bafc8[_0x9edd('0x40')][_0x9edd('0x42')]?_0x4bafc8[_0x9edd('0x40')]:_0x301e25[_0x9edd('0x39')];if(!_0xd353c9[_0x9edd('0x3b')]['hasOwnProperty'](_0x9edd('0x44'))){_0x4bafc8['limit']=qs[_0x9edd('0x2c')](_0xd353c9['query'][_0x9edd('0x2c')]);_0x4bafc8[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0xd353c9['query'][_0x9edd('0x2b')]);}_0x4bafc8[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0xd353c9['query']['sort']);_0x4bafc8[_0x9edd('0x47')]=qs[_0x9edd('0x3e')](_[_0x9edd('0x48')](_0xd353c9[_0x9edd('0x3b')],_0x301e25[_0x9edd('0x3e')]));_0x4bafc8[_0x9edd('0x47')][_0x9edd('0x5b')]=_0x1a6fa2['id'];if(_0xd353c9[_0x9edd('0x3b')][_0x9edd('0x4b')]){_0x4bafc8[_0x9edd('0x47')]=_['merge'](_0x4bafc8[_0x9edd('0x47')],{'$or':_[_0x9edd('0x4d')](_0x4bafc8['attributes'],function(_0x5b268b){var _0x25ec9f={};_0x25ec9f[_0x5b268b]={'$like':'%'+_0xd353c9[_0x9edd('0x3b')][_0x9edd('0x4b')]+'%'};return _0x25ec9f;})});}_0x4bafc8=_[_0x9edd('0x4c')]({},_0x4bafc8,_0xd353c9['options']);return db[_0x9edd('0xa7')][_0x9edd('0x4f')]({'where':_0x4bafc8[_0x9edd('0x47')]})[_0x9edd('0x1e')](function(_0x5d8749){_0x18b6b2[_0x9edd('0x4f')]=_0x5d8749;if(_0xd353c9[_0x9edd('0x3b')][_0x9edd('0x50')]){_0x4bafc8['include']=[{'model':db[_0x9edd('0x7f')],'as':_0x9edd('0xd6'),'required':![]},{'model':db[_0x9edd('0xb3')],'as':_0x9edd('0xd7'),'attributes':[_0x9edd('0x34'),_0x9edd('0xd8'),_0x9edd('0xd9')],'required':![]},{'model':db['Tag'],'as':_0x9edd('0xda'),'attributes':['id',_0x9edd('0x34'),'color'],'where':_0xd353c9[_0x9edd('0x3b')]['tag']?{'id':_0xd353c9['query'][_0x9edd('0xdb')]}:undefined,'required':_0xd353c9[_0x9edd('0x3b')][_0x9edd('0xdb')]?!![]:![]}];}return db[_0x9edd('0xa7')][_0x9edd('0x52')](_0x4bafc8);})[_0x9edd('0x1e')](function(_0xb6e59a){_0x18b6b2[_0x9edd('0x5c')]=_0xb6e59a;return _0x18b6b2;});}})[_0x9edd('0x1e')](respondWithFilteredResult(_0x4cab68,_0x4bafc8))[_0x9edd('0x26')](handleError(_0x4cab68,null));};function iftimePromise(_0x2f798f,_0x55753d){return respondWithRpcPromise('Command',_0x9edd('0xdc'),{'command':_0x55753d[_0x9edd('0xdd')]?util[_0x9edd('0x9d')](_0x9edd('0xde'),_0x2f798f[_0x9edd('0xdf')],_0x55753d[_0x9edd('0xdd')]):util['format'](_0x9edd('0xe0'),_0x2f798f[_0x9edd('0xdf')])},client9002)[_0x9edd('0x1e')](function(_0x4c06ed){var _0x3e9430=_0x4c06ed&&_0x4c06ed['indexOf']('true')>=0x0?!![]:![];logger['info'](_0x9edd('0xe1'),_0x55753d['id'],_0x2f798f['id'],_0x2f798f[_0x9edd('0xdf')],_0x3e9430?_0x9edd('0xe2'):_0x9edd('0xe3'),_0x55753d[_0x9edd('0xdd')]?_0x55753d[_0x9edd('0xdd')]:_0x9edd('0xe4'));return _0x3e9430;})[_0x9edd('0x26')](function(_0xefe1d2){logger['error'](_0x9edd('0xe1'),_0x55753d['id'],_0x2f798f['id'],_0x2f798f[_0x9edd('0xdf')],util['inspect'](_0xefe1d2,{'showHidden':![],'depth':null}),_0x55753d['timezone']?_0x55753d[_0x9edd('0xdd')]:_0x9edd('0xe4'));return![];});}exports['getSnippet']=function(_0x17c5a6,_0x42c24c,_0x9e245f){var _0xaa92b9=0x0;var _0x4f292d=0x0;var _0x2dce8d=![];var _0x460bdd;var _0x3864ea;return db['ChatWebsite'][_0x9edd('0x55')]({'where':{'id':_0x17c5a6[_0x9edd('0x54')]['id']},'include':[{'model':db[_0x9edd('0xe5')],'as':_0x9edd('0xe5'),'include':[{'model':db[_0x9edd('0xe5')],'as':_0x9edd('0xe6'),'attributes':['id',_0x9edd('0xdf')],'raw':!![]}]}]})[_0x9edd('0x1e')](handleEntityNotFound(_0x42c24c,null))['then'](function(_0x595102){if(_0x595102){_0x460bdd=_0x595102;return _0x595102[_0x9edd('0xe7')]({'raw':!![]});}})[_0x9edd('0x1e')](function(_0x17b547){if(_0x460bdd){if(_0x17b547){_0x3864ea=_0x17b547;}}return require(_0x9edd('0xe8'))[_0x9edd('0x6e')]();})[_0x9edd('0x1e')](function(_0x57845c){if(_0x57845c){_0x4f292d=_0x57845c[_0x9edd('0xe9')];_0x2dce8d=_0x57845c['custom'];}})['then'](function(){return db[_0x9edd('0xa7')][_0x9edd('0x4f')]({'where':{'closed':![]}});})['then'](function(_0x78ae7f){_0xaa92b9=_0x78ae7f;if(_0x4f292d&&_0x78ae7f>_0x4f292d){return db[_0x9edd('0xea')][_0x9edd('0x5e')]({'where':{'id':0x1}})['then'](function(_0x5b652a){if(_0x5b652a){_0x5b652a[_0x9edd('0xeb')](_0x9edd('0xec'));}});}})['then'](function(){if(_0x460bdd['Interval']&&_0x460bdd[_0x9edd('0xe5')][_0x9edd('0xe6')]){var _0x12d142=[];for(var _0x3e61fe=0x0;_0x3e61fe<_0x460bdd['Interval']['Intervals'][_0x9edd('0x42')];_0x3e61fe++){var _0x2f73f2=_0x460bdd['Interval'][_0x9edd('0xe6')][_0x3e61fe]['get']({'plain':!![]});_0x12d142[_0x9edd('0xad')](iftimePromise(_0x2f73f2,_0x460bdd));}return BPromise[_0x9edd('0xed')](_0x12d142)[_0x9edd('0x1e')](function(_0x7e6c2){return _['some'](_0x7e6c2);});}else{return!![];}})[_0x9edd('0x1e')](function(_0x367d84){var _0x4d2d1b=fs[_0x9edd('0xee')](path['join'](config[_0x9edd('0x6c')],_0x9edd('0xef')),_0x9edd('0xc0'));var _0x3e620a={'remote':_0x460bdd[_0x9edd('0xf0')],'query':querystring[_0x9edd('0xa5')](_['merge'](_0x460bdd[_0x9edd('0xaa')]({'plain':!![]}),{'customerIp':_0x17c5a6[_0x9edd('0x7d')][_0x9edd('0xf1')]||_0x17c5a6[_0x9edd('0x7d')][_0x9edd('0xf2')]||_0x17c5a6[_0x9edd('0xf3')][_0x9edd('0xf4')]||_0x17c5a6['ip'],'referer':_0x17c5a6[_0x9edd('0x7d')][_0x9edd('0x9b')],'openedInteractions':_0xaa92b9,'maxInteractions':_0x4f292d,'virtual':_0x2dce8d[_0x9edd('0xe9')],'online':_0x367d84,'custom':_0x2dce8d}))['replace'](/'/g,'\x5c\x27')};_0x42c24c[_0x9edd('0x35')](ejs[_0x9edd('0xc1')](Mustache[_0x9edd('0xc1')](_0x4d2d1b,_0x3e620a),{'proactiveActions':_0x3864ea,'alignment':_0x460bdd[_0x9edd('0xf5')],'verticalAlignment':_0x460bdd[_0x9edd('0xf6')]}));})[_0x9edd('0x26')](handleError(_0x42c24c,null));};exports[_0x9edd('0xf7')]=function(_0x2f5a6e,_0x114c95,_0x20f2a0){return db[_0x9edd('0x37')][_0x9edd('0x5e')]({'where':{'id':_0x2f5a6e[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x114c95,null))[_0x9edd('0x1e')](function(_0x55a9ae){if(_0x55a9ae){return db[_0x9edd('0xf8')]['transaction'](function(_0x48bbd8){return db[_0x9edd('0xf9')][_0x9edd('0x33')]({'where':{'ChatWebsiteId':_0x2f5a6e[_0x9edd('0x54')]['id']},'transaction':_0x48bbd8})['then'](function(_0x60607e){var _0xfc9c37=_['map'](_0x2f5a6e['body'],function(_0x3d9ec8){_0x3d9ec8[_0x9edd('0x5b')]=_0x2f5a6e['params']['id'];return _0x3d9ec8;});return db[_0x9edd('0xf9')][_0x9edd('0xfa')](_0xfc9c37,{'transaction':_0x48bbd8});});})['then'](function(){return db[_0x9edd('0xf9')][_0x9edd('0xfb')]({'where':{'ChatWebsiteId':_0x2f5a6e[_0x9edd('0x54')]['id']},'order':_0x9edd('0x94')});});}})[_0x9edd('0x1e')](respondWithResult(_0x114c95,null))[_0x9edd('0x26')](handleError(_0x114c95,null));};exports[_0x9edd('0xfc')]=function(_0x17ae65,_0x55aae3,_0x3f580c){var _0x15bffc={};var _0x24dba6={};var _0x159472;var _0xa8c9f9;return db[_0x9edd('0x37')]['findOne']({'where':{'id':_0x17ae65[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x55aae3,null))[_0x9edd('0x1e')](function(_0xf9f712){if(_0xf9f712){_0x159472=_0xf9f712;_0x24dba6[_0x9edd('0x39')]=_[_0x9edd('0x3a')](db[_0x9edd('0xf9')]['rawAttributes']);_0x24dba6[_0x9edd('0x3b')]=_[_0x9edd('0x3a')](_0x17ae65[_0x9edd('0x3b')]);_0x24dba6['filters']=_[_0x9edd('0x3f')](_0x24dba6[_0x9edd('0x39')],_0x24dba6[_0x9edd('0x3b')]);_0x15bffc[_0x9edd('0x40')]=_[_0x9edd('0x3f')](_0x24dba6['model'],qs[_0x9edd('0x41')](_0x17ae65[_0x9edd('0x3b')][_0x9edd('0x41')]));_0x15bffc[_0x9edd('0x40')]=_0x15bffc[_0x9edd('0x40')]['length']?_0x15bffc['attributes']:_0x24dba6['model'];_0x15bffc[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0x17ae65[_0x9edd('0x3b')][_0x9edd('0x46')]);_0x15bffc[_0x9edd('0x47')]=qs['filters'](_[_0x9edd('0x48')](_0x17ae65[_0x9edd('0x3b')],_0x24dba6[_0x9edd('0x3e')]));if(_0x17ae65[_0x9edd('0x3b')]['filter']){_0x15bffc[_0x9edd('0x47')]=_[_0x9edd('0x4c')](_0x15bffc['where'],{'$or':_[_0x9edd('0x4d')](_0x15bffc[_0x9edd('0x40')],function(_0x464aac){var _0x3e03c6={};_0x3e03c6[_0x464aac]={'$like':'%'+_0x17ae65[_0x9edd('0x3b')][_0x9edd('0x4b')]+'%'};return _0x3e03c6;})});}_0x15bffc=_[_0x9edd('0x4c')]({},_0x15bffc,_0x17ae65[_0x9edd('0x4e')]);return _0x159472[_0x9edd('0xfc')](_0x15bffc);}})[_0x9edd('0x1e')](function(_0x13e584){if(_0x13e584){_0xa8c9f9=_0x13e584['length'];if(!_0x17ae65[_0x9edd('0x3b')][_0x9edd('0x43')]('nolimit')){_0x15bffc[_0x9edd('0x2c')]=qs[_0x9edd('0x2c')](_0x17ae65[_0x9edd('0x3b')]['limit']);_0x15bffc[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0x17ae65[_0x9edd('0x3b')][_0x9edd('0x2b')]);}return _0x159472['getApplications'](_0x15bffc);}})[_0x9edd('0x1e')](function(_0x4ffed3){if(_0x4ffed3){return _0x4ffed3?{'count':_0xa8c9f9,'rows':_0x4ffed3}:null;}})[_0x9edd('0x1e')](respondWithResult(_0x55aae3,null))[_0x9edd('0x26')](handleError(_0x55aae3,null));};exports[_0x9edd('0xfd')]=function(_0x2fa6a4,_0x331526,_0x27913e){return db[_0x9edd('0xfe')][_0x9edd('0x55')]({'where':{'id':_0x2fa6a4['params']['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x331526,null))[_0x9edd('0x1e')](function(_0x5c05db){if(_0x5c05db){return _0x5c05db[_0x9edd('0xfd')](_0x2fa6a4[_0x9edd('0x57')][_0x9edd('0x61')],_['omit'](_0x2fa6a4[_0x9edd('0x57')],[_0x9edd('0x61'),'id'])||{});}})[_0x9edd('0x1e')](respondWithResult(_0x331526,null))[_0x9edd('0x26')](handleError(_0x331526,null));};exports['getProactiveActions']=function(_0x1fc001,_0x219d8b,_0x17b5b3){var _0x196359={};var _0x36faef={};var _0x2c6e12;var _0x24c627;return db[_0x9edd('0x37')][_0x9edd('0x5e')]({'where':{'id':_0x1fc001[_0x9edd('0x54')]['id']}})['then'](handleEntityNotFound(_0x219d8b,null))[_0x9edd('0x1e')](function(_0x354ec9){if(_0x354ec9){_0x2c6e12=_0x354ec9;_0x36faef['model']=_['keys'](db[_0x9edd('0xff')][_0x9edd('0x38')]);_0x36faef[_0x9edd('0x3b')]=_[_0x9edd('0x3a')](_0x1fc001[_0x9edd('0x3b')]);_0x36faef[_0x9edd('0x3e')]=_['intersection'](_0x36faef[_0x9edd('0x39')],_0x36faef[_0x9edd('0x3b')]);_0x196359[_0x9edd('0x40')]=_[_0x9edd('0x3f')](_0x36faef[_0x9edd('0x39')],qs['fields'](_0x1fc001[_0x9edd('0x3b')][_0x9edd('0x41')]));_0x196359[_0x9edd('0x40')]=_0x196359[_0x9edd('0x40')][_0x9edd('0x42')]?_0x196359['attributes']:_0x36faef['model'];_0x196359[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0x1fc001[_0x9edd('0x3b')][_0x9edd('0x46')]);_0x196359[_0x9edd('0x47')]=qs['filters'](_[_0x9edd('0x48')](_0x1fc001[_0x9edd('0x3b')],_0x36faef[_0x9edd('0x3e')]));if(_0x1fc001[_0x9edd('0x3b')][_0x9edd('0x4b')]){_0x196359[_0x9edd('0x47')]=_[_0x9edd('0x4c')](_0x196359['where'],{'$or':_['map'](_0x196359[_0x9edd('0x40')],function(_0x47e5bb){var _0x4f19ec={};_0x4f19ec[_0x47e5bb]={'$like':'%'+_0x1fc001[_0x9edd('0x3b')][_0x9edd('0x4b')]+'%'};return _0x4f19ec;})});}_0x196359=_['merge']({},_0x196359,_0x1fc001['options']);return _0x2c6e12[_0x9edd('0xe7')](_0x196359);}})[_0x9edd('0x1e')](function(_0x1c0ad6){if(_0x1c0ad6){_0x24c627=_0x1c0ad6['length'];if(!_0x1fc001[_0x9edd('0x3b')][_0x9edd('0x43')](_0x9edd('0x44'))){_0x196359['limit']=qs[_0x9edd('0x2c')](_0x1fc001[_0x9edd('0x3b')]['limit']);_0x196359[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0x1fc001['query'][_0x9edd('0x2b')]);}return _0x2c6e12[_0x9edd('0xe7')](_0x196359);}})[_0x9edd('0x1e')](function(_0x43e587){if(_0x43e587){return _0x43e587?{'count':_0x24c627,'rows':_0x43e587}:null;}})[_0x9edd('0x1e')](respondWithResult(_0x219d8b,null))[_0x9edd('0x26')](handleError(_0x219d8b,null));};exports[_0x9edd('0x100')]=function(_0x39b3b6,_0x592771,_0x4b33c0){var _0x48bb80=_0x39b3b6[_0x9edd('0x3b')][_0x9edd('0x101')]==='false'?_0x9edd('0x102'):'onlineForm';return db[_0x9edd('0x37')]['find']({'attributes':['id',_0x48bb80],'where':{'id':_0x39b3b6[_0x9edd('0x54')]['id']}})['then'](handleEntityNotFound(_0x592771,null))[_0x9edd('0x1e')](function(_0x1a4c48){if(_0x1a4c48){var _0x4874fc=_0x1a4c48[_0x48bb80];var _0x28e39c=_0x4874fc&&_0x4874fc['items']?_0x4874fc[_0x9edd('0x103')]:[];_0x592771[_0x9edd('0x35')]({'fromKey':_['isNil'](_0x4874fc[_0x9edd('0x104')])?undefined:_0x4874fc['fromKey'],'count':_0x28e39c[_0x9edd('0x42')],'rows':_0x28e39c});}})[_0x9edd('0x26')](handleError(_0x592771,null));};exports[_0x9edd('0x105')]=function(_0x24050c,_0x452acb,_0x2599ab){var _0x479bc2={'raw':!![],'where':{}};var _0x1c44ad={};var _0x1f5bb0={'count':0x0,'rows':[]};return db[_0x9edd('0x37')][_0x9edd('0x5e')]({'where':{'id':_0x24050c[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x452acb,null))['then'](function(_0x3688dd){if(_0x3688dd){_0x1c44ad[_0x9edd('0x39')]=_[_0x9edd('0x3a')](db[_0x9edd('0xc3')]['rawAttributes']);_0x1c44ad[_0x9edd('0x3b')]=_[_0x9edd('0x3a')](_0x24050c['query']);_0x1c44ad[_0x9edd('0x3e')]=_[_0x9edd('0x3f')](_0x1c44ad[_0x9edd('0x39')],_0x1c44ad[_0x9edd('0x3b')]);_0x479bc2[_0x9edd('0x40')]=_['intersection'](_0x1c44ad[_0x9edd('0x39')],qs[_0x9edd('0x41')](_0x24050c[_0x9edd('0x3b')][_0x9edd('0x41')]));_0x479bc2[_0x9edd('0x40')]=_0x479bc2[_0x9edd('0x40')][_0x9edd('0x42')]?_0x479bc2[_0x9edd('0x40')]:_0x1c44ad['model'];if(!_0x24050c[_0x9edd('0x3b')][_0x9edd('0x43')]('nolimit')){_0x479bc2[_0x9edd('0x2c')]=qs[_0x9edd('0x2c')](_0x24050c[_0x9edd('0x3b')][_0x9edd('0x2c')]);_0x479bc2[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0x24050c[_0x9edd('0x3b')][_0x9edd('0x2b')]);}_0x479bc2[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0x24050c[_0x9edd('0x3b')][_0x9edd('0x46')]);_0x479bc2['where']=qs[_0x9edd('0x3e')](_[_0x9edd('0x48')](_0x24050c[_0x9edd('0x3b')],_0x1c44ad[_0x9edd('0x3e')]));_0x479bc2[_0x9edd('0x47')][_0x9edd('0x5b')]=_0x3688dd['id'];if(_0x24050c['query'][_0x9edd('0x4b')]){_0x479bc2[_0x9edd('0x47')]=_[_0x9edd('0x4c')](_0x479bc2[_0x9edd('0x47')],{'$or':_[_0x9edd('0x4d')](_0x479bc2[_0x9edd('0x40')],function(_0x212b0c){var _0x414c0a={};_0x414c0a[_0x212b0c]={'$like':'%'+_0x24050c[_0x9edd('0x3b')][_0x9edd('0x4b')]+'%'};return _0x414c0a;})});}_0x479bc2=_['merge']({},_0x479bc2,_0x24050c['options']);return db[_0x9edd('0xc3')][_0x9edd('0x4f')]({'where':_0x479bc2['where']})['then'](function(_0x550bd7){_0x1f5bb0[_0x9edd('0x4f')]=_0x550bd7;if(_0x24050c[_0x9edd('0x3b')][_0x9edd('0x50')]){_0x479bc2[_0x9edd('0x51')]=[{'all':!![]}];}return db[_0x9edd('0xc3')]['findAll'](_0x479bc2);})[_0x9edd('0x1e')](function(_0x438ce8){_0x1f5bb0[_0x9edd('0x5c')]=_0x438ce8;return _0x1f5bb0;});}})[_0x9edd('0x1e')](respondWithFilteredResult(_0x452acb,_0x479bc2))[_0x9edd('0x26')](handleError(_0x452acb,null));};exports[_0x9edd('0x106')]=function(_0x27130c,_0x2fc9d0,_0x3c217a){return db[_0x9edd('0x37')]['find']({'where':{'id':_0x27130c[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0x2fc9d0,null))[_0x9edd('0x1e')](function(_0x35a143){if(_0x35a143){return _0x35a143[_0x9edd('0x106')](_0x27130c[_0x9edd('0x57')]['ids'],_[_0x9edd('0xd4')](_0x27130c[_0x9edd('0x57')],[_0x9edd('0x61'),'id'])||{})[_0x9edd('0xbe')](function(_0x4614c6){for(var _0x2e9241=0x0;_0x2e9241<_0x27130c[_0x9edd('0x57')][_0x9edd('0x61')]['length'];_0x2e9241+=0x1){socket[_0x9edd('0x107')]('userChatWebsite:save',{'UserId':_0x27130c['body'][_0x9edd('0x61')][_0x2e9241],'ChatWebsiteId':_0x27130c['params']['id']});}return _0x4614c6;});}})['then'](respondWithResult(_0x2fc9d0,null))[_0x9edd('0x26')](handleError(_0x2fc9d0,null));};exports[_0x9edd('0x108')]=function(_0x542a44,_0xd4d9f1,_0x144b36){var _0x4bfe3e;return db[_0x9edd('0x37')][_0x9edd('0x55')]({'where':{'id':_0x542a44[_0x9edd('0x54')]['id']}})[_0x9edd('0x1e')](handleEntityNotFound(_0xd4d9f1,null))['then'](function(_0xecab43){if(_0xecab43){return _0xecab43[_0x9edd('0x108')](_0x542a44[_0x9edd('0x3b')]['ids'])[_0x9edd('0x1e')](function(_0x5867fc){if(_['isArray'](_0x542a44['query'][_0x9edd('0x61')])){for(var _0x4d910c=0x0;_0x4d910c<_0x542a44[_0x9edd('0x3b')]['ids']['length'];_0x4d910c+=0x1){socket['emit']('userChatWebsite:remove',{'UserId':_0x542a44['query'][_0x9edd('0x61')][_0x4d910c],'ChatWebsiteId':_0x542a44[_0x9edd('0x54')]['id']});}}else{socket[_0x9edd('0x107')]('userChatWebsite:remove',{'UserId':_0x542a44[_0x9edd('0x3b')][_0x9edd('0x61')],'ChatWebsiteId':_0x542a44['params']['id']});}});}})[_0x9edd('0x1e')](respondWithStatusCode(_0xd4d9f1,null))[_0x9edd('0x26')](handleError(_0xd4d9f1,null));};exports[_0x9edd('0x109')]=function(_0x35a945,_0x13df3a,_0x2bdc2a){var _0x49ebe5={};var _0x4c6418={};var _0x36dd14;var _0x323844;return db[_0x9edd('0x37')][_0x9edd('0x5e')]({'where':{'id':_0x35a945[_0x9edd('0x54')]['id']}})['then'](handleEntityNotFound(_0x13df3a,null))[_0x9edd('0x1e')](function(_0xfe4d45){if(_0xfe4d45){_0x36dd14=_0xfe4d45;_0x4c6418[_0x9edd('0x39')]=_[_0x9edd('0x3a')](db['User'][_0x9edd('0x38')]);_0x4c6418[_0x9edd('0x3b')]=_[_0x9edd('0x3a')](_0x35a945['query']);_0x4c6418[_0x9edd('0x3e')]=_[_0x9edd('0x3f')](_0x4c6418[_0x9edd('0x39')],_0x4c6418[_0x9edd('0x3b')]);_0x49ebe5[_0x9edd('0x40')]=_[_0x9edd('0x3f')](_0x4c6418[_0x9edd('0x39')],qs['fields'](_0x35a945[_0x9edd('0x3b')]['fields']));_0x49ebe5['attributes']=_0x49ebe5['attributes']['length']?_0x49ebe5[_0x9edd('0x40')]:_0x4c6418[_0x9edd('0x39')];_0x49ebe5[_0x9edd('0x45')]=qs[_0x9edd('0x46')](_0x35a945['query']['sort']);_0x49ebe5[_0x9edd('0x47')]=qs[_0x9edd('0x3e')](_['pick'](_0x35a945[_0x9edd('0x3b')],_0x4c6418[_0x9edd('0x3e')]));if(_0x35a945['query'][_0x9edd('0x4b')]){_0x49ebe5['where']=_[_0x9edd('0x4c')](_0x49ebe5[_0x9edd('0x47')],{'$or':_[_0x9edd('0x4d')](_0x49ebe5['attributes'],function(_0x1be813){var _0xfb49a4={};_0xfb49a4[_0x1be813]={'$like':'%'+_0x35a945[_0x9edd('0x3b')][_0x9edd('0x4b')]+'%'};return _0xfb49a4;})});}_0x49ebe5=_['merge']({},_0x49ebe5,_0x35a945[_0x9edd('0x4e')]);return _0x36dd14['getAgents'](_0x49ebe5);}})[_0x9edd('0x1e')](function(_0x1e7119){if(_0x1e7119){_0x323844=_0x1e7119[_0x9edd('0x42')];if(!_0x35a945[_0x9edd('0x3b')][_0x9edd('0x43')](_0x9edd('0x44'))){_0x49ebe5[_0x9edd('0x2c')]=qs[_0x9edd('0x2c')](_0x35a945[_0x9edd('0x3b')][_0x9edd('0x2c')]);_0x49ebe5[_0x9edd('0x2b')]=qs[_0x9edd('0x2b')](_0x35a945['query'][_0x9edd('0x2b')]);}return _0x36dd14[_0x9edd('0x109')](_0x49ebe5);}})[_0x9edd('0x1e')](function(_0x4bdd44){if(_0x4bdd44){return _0x4bdd44?{'count':_0x323844,'rows':_0x4bdd44}:null;}})['then'](respondWithResult(_0x13df3a,null))[_0x9edd('0x26')](handleError(_0x13df3a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3916=['setMaxListeners','update','remove','emit','hasOwnProperty','events','ChatWebsite'];(function(_0x1f7d02,_0x1e0620){var _0x219c5d=function(_0x19f4a5){while(--_0x19f4a5){_0x1f7d02['push'](_0x1f7d02['shift']());}};_0x219c5d(++_0x1e0620);}(_0x3916,0x18d));var _0x6391=function(_0x1f62c3,_0x1ff95b){_0x1f62c3=_0x1f62c3-0x0;var _0x385c1c=_0x3916[_0x1f62c3];return _0x385c1c;};'use strict';var EventEmitter=require(_0x6391('0x0'));var ChatWebsite=require('../../mysqldb')['db'][_0x6391('0x1')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x6391('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x6391('0x3'),'afterDestroy':_0x6391('0x4')};function emitEvent(_0x190840){return function(_0x4fae8e,_0x3f19b8,_0x33f42e){ChatWebsiteEvents['emit'](_0x190840+':'+_0x4fae8e['id'],_0x4fae8e);ChatWebsiteEvents[_0x6391('0x5')](_0x190840,_0x4fae8e);_0x33f42e(null);};}for(var e in events){if(events[_0x6391('0x6')](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module['exports']=ChatWebsiteEvents;
\ No newline at end of file
+var _0x57c2=['hasOwnProperty','exports','events','ChatWebsite','setMaxListeners','save','remove'];(function(_0x2abb75,_0x2e46b2){var _0xa98b02=function(_0x44a540){while(--_0x44a540){_0x2abb75['push'](_0x2abb75['shift']());}};_0xa98b02(++_0x2e46b2);}(_0x57c2,0x113));var _0x257c=function(_0x2ba44f,_0x1e75fd){_0x2ba44f=_0x2ba44f-0x0;var _0x30be2e=_0x57c2[_0x2ba44f];return _0x30be2e;};'use strict';var EventEmitter=require(_0x257c('0x0'));var ChatWebsite=require('../../mysqldb')['db'][_0x257c('0x1')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x257c('0x2')](0x0);var events={'afterCreate':_0x257c('0x3'),'afterUpdate':'update','afterDestroy':_0x257c('0x4')};function emitEvent(_0x158447){return function(_0x49960b,_0x1a8960,_0x5ce63f){ChatWebsiteEvents['emit'](_0x158447+':'+_0x49960b['id'],_0x49960b);ChatWebsiteEvents['emit'](_0x158447,_0x49960b);_0x5ce63f(null);};}for(var e in events){if(events[_0x257c('0x5')](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module[_0x257c('0x6')]=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0fd9=['exports','define','ChatWebsite','util','../../config/logger','api','moment','./chatWebsite.attributes'];(function(_0x3dee2e,_0x5c432e){var _0x374e80=function(_0x2cd6da){while(--_0x2cd6da){_0x3dee2e['push'](_0x3dee2e['shift']());}};_0x374e80(++_0x5c432e);}(_0x0fd9,0xa3));var _0x90fd=function(_0x3e91a9,_0x53c466){_0x3e91a9=_0x3e91a9-0x0;var _0x25c9ad=_0x0fd9[_0x3e91a9];return _0x25c9ad;};'use strict';var _=require('lodash');var util=require(_0x90fd('0x0'));var logger=require(_0x90fd('0x1'))(_0x90fd('0x2'));var moment=require(_0x90fd('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x90fd('0x4'));module[_0x90fd('0x5')]=function(_0xb7cf6,_0x37a8be){return _0xb7cf6[_0x90fd('0x6')](_0x90fd('0x7'),attributes,{'tableName':'chat_websites','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x37dc=['chat_websites','lodash','util','../../config/logger','api','bluebird','./chatWebsite.attributes','ChatWebsite'];(function(_0x201acf,_0xdf8847){var _0x137666=function(_0x5e5884){while(--_0x5e5884){_0x201acf['push'](_0x201acf['shift']());}};_0x137666(++_0xdf8847);}(_0x37dc,0x1e9));var _0xc37d=function(_0x240c45,_0x49da5e){_0x240c45=_0x240c45-0x0;var _0x12e7fa=_0x37dc[_0x240c45];return _0x12e7fa;};'use strict';var _=require(_0xc37d('0x0'));var util=require(_0xc37d('0x1'));var logger=require(_0xc37d('0x2'))(_0xc37d('0x3'));var moment=require('moment');var BPromise=require(_0xc37d('0x4'));var rp=require('request-promise');var attributes=require(_0xc37d('0x5'));module['exports']=function(_0x5ecb1f,_0x5458fb){return _0x5ecb1f['define'](_0xc37d('0x6'),attributes,{'tableName':_0xc37d('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fda=['moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','socket.io-emitter','./chatWebsite.socket','register','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','lodash','util'];(function(_0x156224,_0x171d66){var _0x314fe4=function(_0xf36b54){while(--_0xf36b54){_0x156224['push'](_0x156224['shift']());}};_0x314fe4(++_0x171d66);}(_0x2fda,0xe8));var _0xa2fd=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x2fda[_0x5783f4];return _0x28e380;};'use strict';var _=require(_0xa2fd('0x0'));var util=require(_0xa2fd('0x1'));var moment=require(_0xa2fd('0x2'));var BPromise=require(_0xa2fd('0x3'));var rs=require(_0xa2fd('0x4'));var fs=require('fs');var db=require(_0xa2fd('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa2fd('0x6'))(_0xa2fd('0x7'));var config=require(_0xa2fd('0x8'));var jayson=require(_0xa2fd('0x9'));var client=jayson[_0xa2fd('0xa')][_0xa2fd('0xb')]({'port':0x232a});config['redis']=_[_0xa2fd('0xc')](config[_0xa2fd('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0xa2fd('0xe'))(config['redis']);require(_0xa2fd('0xf'))[_0xa2fd('0x10')](socket);function respondWithRpcPromise(_0x246c9d,_0x560a12,_0x4c25f3){return new BPromise(function(_0x30d1eb,_0xee25fd){return client['request'](_0x246c9d,_0x4c25f3)['then'](function(_0x4916b4){logger['info'](_0xa2fd('0x11'),_0x560a12,_0xa2fd('0x12'));logger[_0xa2fd('0x13')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x560a12,_0xa2fd('0x12'),JSON[_0xa2fd('0x14')](_0x4916b4));if(_0x4916b4[_0xa2fd('0x15')]){if(_0x4916b4['error']['code']===0x1f4){logger[_0xa2fd('0x15')](_0xa2fd('0x11'),_0x560a12,_0x4916b4['error'][_0xa2fd('0x16')]);return _0xee25fd(_0x4916b4[_0xa2fd('0x15')]['message']);}logger['error'](_0xa2fd('0x11'),_0x560a12,_0x4916b4[_0xa2fd('0x15')][_0xa2fd('0x16')]);return _0x30d1eb(_0x4916b4[_0xa2fd('0x15')][_0xa2fd('0x16')]);}else{logger[_0xa2fd('0x17')](_0xa2fd('0x11'),_0x560a12,_0xa2fd('0x12'));_0x30d1eb(_0x4916b4[_0xa2fd('0x18')]['message']);}})[_0xa2fd('0x19')](function(_0x417ec8){logger[_0xa2fd('0x15')]('ChatWebsite,\x20%s,\x20%s',_0x560a12,_0x417ec8);_0xee25fd(_0x417ec8);});});}
\ No newline at end of file
+var _0x4708=['request','then','request\x20sent','debug','stringify','error','code','ChatWebsite,\x20%s,\x20%s','message','info','result','lodash','util','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./chatWebsite.socket','register'];(function(_0x1966ad,_0x43f2f3){var _0x5d7637=function(_0x24b943){while(--_0x24b943){_0x1966ad['push'](_0x1966ad['shift']());}};_0x5d7637(++_0x43f2f3);}(_0x4708,0xa7));var _0x8470=function(_0x4c1b13,_0x3445f5){_0x4c1b13=_0x4c1b13-0x0;var _0x30cf86=_0x4708[_0x4c1b13];return _0x30cf86;};'use strict';var _=require(_0x8470('0x0'));var util=require(_0x8470('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8470('0x2'));var db=require(_0x8470('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x8470('0x4'))(_0x8470('0x5'));var config=require(_0x8470('0x6'));var jayson=require(_0x8470('0x7'));var client=jayson[_0x8470('0x8')][_0x8470('0x9')]({'port':0x232a});config[_0x8470('0xa')]=_[_0x8470('0xb')](config[_0x8470('0xa')],{'host':_0x8470('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8470('0xa')]));require(_0x8470('0xd'))[_0x8470('0xe')](socket);function respondWithRpcPromise(_0x54a62a,_0x163b93,_0x4be20b){return new BPromise(function(_0xa64a87,_0xd625b7){return client[_0x8470('0xf')](_0x54a62a,_0x4be20b)[_0x8470('0x10')](function(_0x15c0af){logger['info']('ChatWebsite,\x20%s,\x20%s',_0x163b93,_0x8470('0x11'));logger[_0x8470('0x12')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x163b93,_0x8470('0x11'),JSON[_0x8470('0x13')](_0x15c0af));if(_0x15c0af[_0x8470('0x14')]){if(_0x15c0af['error'][_0x8470('0x15')]===0x1f4){logger[_0x8470('0x14')](_0x8470('0x16'),_0x163b93,_0x15c0af[_0x8470('0x14')][_0x8470('0x17')]);return _0xd625b7(_0x15c0af['error'][_0x8470('0x17')]);}logger['error'](_0x8470('0x16'),_0x163b93,_0x15c0af[_0x8470('0x14')][_0x8470('0x17')]);return _0xa64a87(_0x15c0af[_0x8470('0x14')][_0x8470('0x17')]);}else{logger[_0x8470('0x18')]('ChatWebsite,\x20%s,\x20%s',_0x163b93,_0x8470('0x11'));_0xa64a87(_0x15c0af[_0x8470('0x19')][_0x8470('0x17')]);}})['catch'](function(_0x4b6bad){logger[_0x8470('0x14')](_0x8470('0x16'),_0x163b93,_0x4b6bad);_0xd625b7(_0x4b6bad);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x655f=['remove','update','emit','removeListener','register','length','./chatWebsite.events','save'];(function(_0x1e4360,_0x930b9b){var _0x31e6b4=function(_0x49dd8e){while(--_0x49dd8e){_0x1e4360['push'](_0x1e4360['shift']());}};_0x31e6b4(++_0x930b9b);}(_0x655f,0xc6));var _0xf655=function(_0x24058a,_0x5eab77){_0x24058a=_0x24058a-0x0;var _0x3ba13d=_0x655f[_0x24058a];return _0x3ba13d;};'use strict';var ChatWebsiteEvents=require(_0xf655('0x0'));var events=[_0xf655('0x1'),_0xf655('0x2'),_0xf655('0x3')];function createListener(_0x1f3601,_0x5a60dd){return function(_0x268eef){_0x5a60dd[_0xf655('0x4')](_0x1f3601,_0x268eef);};}function removeListener(_0xf8d605,_0x49f8f2){return function(){ChatWebsiteEvents[_0xf655('0x5')](_0xf8d605,_0x49f8f2);};}exports[_0xf655('0x6')]=function(_0x2767e0){for(var _0x34ea1c=0x0,_0x2ceb7f=events[_0xf655('0x7')];_0x34ea1c<_0x2ceb7f;_0x34ea1c++){var _0x312c80=events[_0x34ea1c];var _0x31fa4e=createListener('chatWebsite:'+_0x312c80,_0x2767e0);ChatWebsiteEvents['on'](_0x312c80,_0x31fa4e);}};
\ No newline at end of file
+var _0x9c30=['length','chatWebsite:','./chatWebsite.events','remove','update','emit','register'];(function(_0x491f76,_0x478346){var _0x11a184=function(_0x3e11fe){while(--_0x3e11fe){_0x491f76['push'](_0x491f76['shift']());}};_0x11a184(++_0x478346);}(_0x9c30,0x11a));var _0x09c3=function(_0x564972,_0x36caa6){_0x564972=_0x564972-0x0;var _0x5ac8cd=_0x9c30[_0x564972];return _0x5ac8cd;};'use strict';var ChatWebsiteEvents=require(_0x09c3('0x0'));var events=['save',_0x09c3('0x1'),_0x09c3('0x2')];function createListener(_0x2d50d7,_0x3d8f06){return function(_0x5010e2){_0x3d8f06[_0x09c3('0x3')](_0x2d50d7,_0x5010e2);};}function removeListener(_0x489f45,_0x487498){return function(){ChatWebsiteEvents['removeListener'](_0x489f45,_0x487498);};}exports[_0x09c3('0x4')]=function(_0x30cc26){for(var _0x3994e1=0x0,_0x1b8916=events[_0x09c3('0x5')];_0x3994e1<_0x1b8916;_0x3994e1++){var _0x4a39b7=events[_0x3994e1];var _0x4aff86=createListener(_0x09c3('0x6')+_0x4a39b7,_0x30cc26);ChatWebsiteEvents['on'](_0x4a39b7,_0x4aff86);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13f5=['diskStorage','addCustomerAvatar','addSystemAvatar','/:id/notify','/:id/offline','addInteraction','addApplications','addAgents','update','delete','removeAnswers','removeAgents','multer','util','path','connect-timeout','Router','../../config/environment','./chatWebsite.controller','get','isAuthenticated','index','/describe','describe','/:id','/:id/dispositions','getDispositions','getAnswers','/:id/logo','getLogo','/:id/avatar','getAvatar','/:id/customer_avatar','getCustomerAvatar','/:id/system_avatar','getSystemAvatar','/:id/interactions','getSnippet','/:id/applications','getApplications','/:id/proactive_actions','getFields','getOfflineMessages','/:id/users','getAgents','create','addDisposition','post','/:id/canned_answers','join','root','server/files/images/logos/','format','now','originalname','file','addLogo','server/files/images/avatars/','%s-%s','single','addAvatar'];(function(_0x490be3,_0xf0fca3){var _0x3f5140=function(_0x15fa80){while(--_0x15fa80){_0x490be3['push'](_0x490be3['shift']());}};_0x3f5140(++_0xf0fca3);}(_0x13f5,0xc3));var _0x513f=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x13f5[_0x178e48];return _0x440d7e;};'use strict';var multer=require(_0x513f('0x0'));var util=require(_0x513f('0x1'));var path=require(_0x513f('0x2'));var timeout=require(_0x513f('0x3'));var express=require('express');var router=express[_0x513f('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x513f('0x5'));var controller=require(_0x513f('0x6'));router[_0x513f('0x7')]('/',auth[_0x513f('0x8')](),controller[_0x513f('0x9')]);router[_0x513f('0x7')](_0x513f('0xa'),auth[_0x513f('0x8')](),controller[_0x513f('0xb')]);router[_0x513f('0x7')](_0x513f('0xc'),auth[_0x513f('0x8')](),controller['show']);router[_0x513f('0x7')](_0x513f('0xd'),auth[_0x513f('0x8')](),controller[_0x513f('0xe')]);router[_0x513f('0x7')]('/:id/canned_answers',auth[_0x513f('0x8')](),controller[_0x513f('0xf')]);router['get'](_0x513f('0x10'),controller[_0x513f('0x11')]);router[_0x513f('0x7')](_0x513f('0x12'),controller[_0x513f('0x13')]);router[_0x513f('0x7')](_0x513f('0x14'),controller[_0x513f('0x15')]);router[_0x513f('0x7')](_0x513f('0x16'),controller[_0x513f('0x17')]);router[_0x513f('0x7')](_0x513f('0x18'),auth[_0x513f('0x8')](),controller['getInteractions']);router[_0x513f('0x7')]('/:id/snippet',controller[_0x513f('0x19')]);router[_0x513f('0x7')](_0x513f('0x1a'),auth[_0x513f('0x8')](),controller[_0x513f('0x1b')]);router['get'](_0x513f('0x1c'),auth[_0x513f('0x8')](),controller['getProactiveActions']);router[_0x513f('0x7')]('/:id/fields',controller[_0x513f('0x1d')]);router[_0x513f('0x7')]('/:id/offline_messages',auth[_0x513f('0x8')](),controller[_0x513f('0x1e')]);router[_0x513f('0x7')](_0x513f('0x1f'),auth[_0x513f('0x8')](),controller[_0x513f('0x20')]);router['post']('/',auth[_0x513f('0x8')](),controller[_0x513f('0x21')]);router['post'](_0x513f('0xd'),auth[_0x513f('0x8')](),controller[_0x513f('0x22')]);router[_0x513f('0x23')](_0x513f('0x24'),auth[_0x513f('0x8')](),controller['addAnswer']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x59de20,_0x3d7f4d,_0x4309cb){_0x4309cb(null,path[_0x513f('0x25')](config[_0x513f('0x26')],_0x513f('0x27')));},'filename':function(_0xabb40b,_0x1624d2,_0x3fc4b9){_0x3fc4b9(null,util[_0x513f('0x28')]('%s-%s',Date[_0x513f('0x29')](),_0x1624d2[_0x513f('0x2a')]));}})});router[_0x513f('0x23')](_0x513f('0x10'),upload['single'](_0x513f('0x2b')),controller[_0x513f('0x2c')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x3c41aa,_0x54c9aa,_0x47a5c4){_0x47a5c4(null,path[_0x513f('0x25')](config[_0x513f('0x26')],_0x513f('0x2d')));},'filename':function(_0x2154d2,_0x4c7d10,_0x2ff059){_0x2ff059(null,util[_0x513f('0x28')](_0x513f('0x2e'),Date[_0x513f('0x29')](),_0x4c7d10['originalname']));}})});router[_0x513f('0x23')](_0x513f('0x12'),upload[_0x513f('0x2f')](_0x513f('0x2b')),controller[_0x513f('0x30')]);var upload=multer({'storage':multer[_0x513f('0x31')]({'destination':function(_0x4d180a,_0x586a09,_0x2f4b30){_0x2f4b30(null,path[_0x513f('0x25')](config['root'],'server/files/images/avatars/'));},'filename':function(_0x1abbf6,_0x2f0d98,_0xc15d3f){_0xc15d3f(null,util['format'](_0x513f('0x2e'),Date[_0x513f('0x29')](),_0x2f0d98['originalname']));}})});router[_0x513f('0x23')](_0x513f('0x14'),upload[_0x513f('0x2f')](_0x513f('0x2b')),controller[_0x513f('0x32')]);var upload=multer({'storage':multer[_0x513f('0x31')]({'destination':function(_0x25f9aa,_0x36262a,_0x25b08d){_0x25b08d(null,path['join'](config[_0x513f('0x26')],'server/files/images/avatars/'));},'filename':function(_0x5aef4c,_0x1c2285,_0x571e6d){_0x571e6d(null,util[_0x513f('0x28')](_0x513f('0x2e'),Date['now'](),_0x1c2285[_0x513f('0x2a')]));}})});router['post']('/:id/system_avatar',upload[_0x513f('0x2f')](_0x513f('0x2b')),controller[_0x513f('0x33')]);router[_0x513f('0x23')](_0x513f('0x34'),controller['notify']);router[_0x513f('0x23')](_0x513f('0x35'),controller['offline']);router[_0x513f('0x23')](_0x513f('0x18'),auth[_0x513f('0x8')](),controller[_0x513f('0x36')]);router[_0x513f('0x23')]('/:id/applications',auth[_0x513f('0x8')](),controller[_0x513f('0x37')]);router[_0x513f('0x23')](_0x513f('0x1c'),auth['isAuthenticated'](),controller['addProactiveActions']);router[_0x513f('0x23')](_0x513f('0x1f'),auth[_0x513f('0x8')](),controller[_0x513f('0x38')]);router['put']('/:id',auth[_0x513f('0x8')](),controller[_0x513f('0x39')]);router[_0x513f('0x3a')](_0x513f('0xc'),auth[_0x513f('0x8')](),controller['destroy']);router[_0x513f('0x3a')](_0x513f('0xd'),auth[_0x513f('0x8')](),controller['removeDispositions']);router[_0x513f('0x3a')](_0x513f('0x24'),auth['isAuthenticated'](),controller[_0x513f('0x3b')]);router[_0x513f('0x3a')](_0x513f('0x1f'),auth[_0x513f('0x8')](),controller[_0x513f('0x3c')]);module['exports']=router;
\ No newline at end of file
+var _0x2bd8=['/:id/snippet','getSnippet','/:id/applications','getApplications','/:id/proactive_actions','getProactiveActions','/:id/fields','getFields','getOfflineMessages','/:id/users','getAgents','post','create','/:id/dispositions','addDisposition','addAnswer','diskStorage','root','server/files/images/logos/','format','%s-%s','now','originalname','join','/:id/avatar','single','file','addAvatar','server/files/images/avatars/','addCustomerAvatar','addSystemAvatar','/:id/notify','notify','addInteraction','addApplications','addProactiveActions','addAgents','update','/:id','destroy','delete','removeDispositions','removeAnswers','removeAgents','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id/canned_answers','/:id/logo','getAvatar','/:id/customer_avatar','getCustomerAvatar','/:id/system_avatar','/:id/interactions','getInteractions'];(function(_0x4523a6,_0xe60a70){var _0x1b461c=function(_0x1d028b){while(--_0x1d028b){_0x4523a6['push'](_0x4523a6['shift']());}};_0x1b461c(++_0xe60a70);}(_0x2bd8,0x130));var _0x82bd=function(_0x28e6bf,_0x21c81c){_0x28e6bf=_0x28e6bf-0x0;var _0x349247=_0x2bd8[_0x28e6bf];return _0x349247;};'use strict';var multer=require(_0x82bd('0x0'));var util=require('util');var path=require(_0x82bd('0x1'));var timeout=require(_0x82bd('0x2'));var express=require(_0x82bd('0x3'));var router=express[_0x82bd('0x4')]();var auth=require(_0x82bd('0x5'));var interaction=require(_0x82bd('0x6'));var config=require(_0x82bd('0x7'));var controller=require('./chatWebsite.controller');router[_0x82bd('0x8')]('/',auth[_0x82bd('0x9')](),controller[_0x82bd('0xa')]);router['get'](_0x82bd('0xb'),auth[_0x82bd('0x9')](),controller[_0x82bd('0xc')]);router[_0x82bd('0x8')]('/:id',auth[_0x82bd('0x9')](),controller['show']);router['get']('/:id/dispositions',auth[_0x82bd('0x9')](),controller['getDispositions']);router['get'](_0x82bd('0xd'),auth['isAuthenticated'](),controller['getAnswers']);router[_0x82bd('0x8')](_0x82bd('0xe'),controller['getLogo']);router[_0x82bd('0x8')]('/:id/avatar',controller[_0x82bd('0xf')]);router['get'](_0x82bd('0x10'),controller[_0x82bd('0x11')]);router[_0x82bd('0x8')](_0x82bd('0x12'),controller['getSystemAvatar']);router[_0x82bd('0x8')](_0x82bd('0x13'),auth['isAuthenticated'](),controller[_0x82bd('0x14')]);router['get'](_0x82bd('0x15'),controller[_0x82bd('0x16')]);router[_0x82bd('0x8')](_0x82bd('0x17'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x18')]);router[_0x82bd('0x8')](_0x82bd('0x19'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x1a')]);router[_0x82bd('0x8')](_0x82bd('0x1b'),controller[_0x82bd('0x1c')]);router[_0x82bd('0x8')]('/:id/offline_messages',auth['isAuthenticated'](),controller[_0x82bd('0x1d')]);router[_0x82bd('0x8')](_0x82bd('0x1e'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x1f')]);router[_0x82bd('0x20')]('/',auth[_0x82bd('0x9')](),controller[_0x82bd('0x21')]);router[_0x82bd('0x20')](_0x82bd('0x22'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x23')]);router[_0x82bd('0x20')](_0x82bd('0xd'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x24')]);var upload=multer({'storage':multer[_0x82bd('0x25')]({'destination':function(_0x3b6b93,_0x673943,_0x547e45){_0x547e45(null,path['join'](config[_0x82bd('0x26')],_0x82bd('0x27')));},'filename':function(_0x1cb292,_0x3eb6a5,_0x25cb16){_0x25cb16(null,util[_0x82bd('0x28')](_0x82bd('0x29'),Date[_0x82bd('0x2a')](),_0x3eb6a5[_0x82bd('0x2b')]));}})});router[_0x82bd('0x20')]('/:id/logo',upload['single']('file'),controller['addLogo']);var upload=multer({'storage':multer[_0x82bd('0x25')]({'destination':function(_0x52bcd8,_0x351d3d,_0x190bca){_0x190bca(null,path[_0x82bd('0x2c')](config['root'],'server/files/images/avatars/'));},'filename':function(_0x5b21ce,_0x1e6866,_0x2a5867){_0x2a5867(null,util[_0x82bd('0x28')]('%s-%s',Date[_0x82bd('0x2a')](),_0x1e6866['originalname']));}})});router[_0x82bd('0x20')](_0x82bd('0x2d'),upload[_0x82bd('0x2e')](_0x82bd('0x2f')),controller[_0x82bd('0x30')]);var upload=multer({'storage':multer[_0x82bd('0x25')]({'destination':function(_0x5ca7fc,_0x591b38,_0x406c96){_0x406c96(null,path[_0x82bd('0x2c')](config['root'],_0x82bd('0x31')));},'filename':function(_0x4c8a9b,_0x578e6e,_0x3b8015){_0x3b8015(null,util[_0x82bd('0x28')](_0x82bd('0x29'),Date[_0x82bd('0x2a')](),_0x578e6e[_0x82bd('0x2b')]));}})});router[_0x82bd('0x20')](_0x82bd('0x10'),upload[_0x82bd('0x2e')](_0x82bd('0x2f')),controller[_0x82bd('0x32')]);var upload=multer({'storage':multer[_0x82bd('0x25')]({'destination':function(_0xe666bd,_0x29813b,_0x77a0){_0x77a0(null,path[_0x82bd('0x2c')](config[_0x82bd('0x26')],_0x82bd('0x31')));},'filename':function(_0x4bdcae,_0x59b7ca,_0x59319d){_0x59319d(null,util[_0x82bd('0x28')](_0x82bd('0x29'),Date['now'](),_0x59b7ca[_0x82bd('0x2b')]));}})});router['post']('/:id/system_avatar',upload['single'](_0x82bd('0x2f')),controller[_0x82bd('0x33')]);router[_0x82bd('0x20')](_0x82bd('0x34'),controller[_0x82bd('0x35')]);router['post']('/:id/offline',controller['offline']);router[_0x82bd('0x20')]('/:id/interactions',auth['isAuthenticated'](),controller[_0x82bd('0x36')]);router[_0x82bd('0x20')](_0x82bd('0x17'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x37')]);router[_0x82bd('0x20')](_0x82bd('0x19'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x38')]);router['post']('/:id/users',auth[_0x82bd('0x9')](),controller[_0x82bd('0x39')]);router['put']('/:id',auth[_0x82bd('0x9')](),controller[_0x82bd('0x3a')]);router['delete'](_0x82bd('0x3b'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x3c')]);router[_0x82bd('0x3d')](_0x82bd('0x22'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x3e')]);router[_0x82bd('0x3d')](_0x82bd('0xd'),auth[_0x82bd('0x9')](),controller[_0x82bd('0x3f')]);router[_0x82bd('0x3d')]('/:id/users',auth[_0x82bd('0x9')](),controller[_0x82bd('0x40')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c8a=['sequelize','exports','STRING','name'];(function(_0x2d617f,_0x182066){var _0x38aa15=function(_0x1052e3){while(--_0x1052e3){_0x2d617f['push'](_0x2d617f['shift']());}};_0x38aa15(++_0x182066);}(_0x7c8a,0x120));var _0xa7c8=function(_0x174775,_0x5458a6){_0x174775=_0x174775-0x0;var _0x1fb65f=_0x7c8a[_0x174775];return _0x1fb65f;};'use strict';var Sequelize=require(_0xa7c8('0x0'));module[_0xa7c8('0x1')]={'name':{'type':Sequelize[_0xa7c8('0x2')],'unique':_0xa7c8('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize['STRING']},'companyId':{'type':Sequelize[_0xa7c8('0x2')]},'website':{'type':Sequelize[_0xa7c8('0x2')]},'phone':{'type':Sequelize[_0xa7c8('0x2')]},'fax':{'type':Sequelize['STRING']},'type':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0xa7c8('0x2')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0xa7c8('0x2')]},'email':{'type':Sequelize[_0xa7c8('0x2')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0xa7c8('0x2')]},'sStreet':{'type':Sequelize[_0xa7c8('0x2')]},'sPostalCode':{'type':Sequelize['STRING']},'sCity':{'type':Sequelize[_0xa7c8('0x2')]},'sCountry':{'type':Sequelize[_0xa7c8('0x2')]},'description':{'type':Sequelize[_0xa7c8('0x2')]}};
\ No newline at end of file
+var _0xa622=['STRING','name','sequelize'];(function(_0x4c440b,_0x3ea627){var _0x2d48cf=function(_0x56bac7){while(--_0x56bac7){_0x4c440b['push'](_0x4c440b['shift']());}};_0x2d48cf(++_0x3ea627);}(_0xa622,0xbc));var _0x2a62=function(_0x3c4079,_0x18e521){_0x3c4079=_0x3c4079-0x0;var _0x13e0fa=_0xa622[_0x3c4079];return _0x13e0fa;};'use strict';var Sequelize=require(_0x2a62('0x0'));module['exports']={'name':{'type':Sequelize[_0x2a62('0x1')],'unique':_0x2a62('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x2a62('0x1')]},'companyId':{'type':Sequelize[_0x2a62('0x1')]},'website':{'type':Sequelize[_0x2a62('0x1')]},'phone':{'type':Sequelize[_0x2a62('0x1')]},'fax':{'type':Sequelize[_0x2a62('0x1')]},'type':{'type':Sequelize[_0x2a62('0x1')]},'street':{'type':Sequelize[_0x2a62('0x1')]},'postalCode':{'type':Sequelize[_0x2a62('0x1')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0x2a62('0x1')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize['STRING']},'sStreet':{'type':Sequelize[_0x2a62('0x1')]},'sPostalCode':{'type':Sequelize[_0x2a62('0x1')]},'sCity':{'type':Sequelize[_0x2a62('0x1')]},'sCountry':{'type':Sequelize[_0x2a62('0x1')]},'description':{'type':Sequelize[_0x2a62('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf494=['rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','status','end','json','offset','limit','Content-Range','save','then','sendStatus','name','send','index','CmCompany','rawAttributes','query','dateStart','dateEnd','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','options','count','includeAll','include','findAll','catch','show','params','find','create','body','update','destroy','addContacts','CmContact','omit','findOne','getContacts','html-pdf','eml-format'];(function(_0x3b150c,_0x2f93f8){var _0x5cd414=function(_0x26305e){while(--_0x26305e){_0x3b150c['push'](_0x3b150c['shift']());}};_0x5cd414(++_0x2f93f8);}(_0xf494,0x1c6));var _0x4f49=function(_0x11d7c8,_0x5e314d){_0x11d7c8=_0x11d7c8-0x0;var _0x13f99b=_0xf494[_0x11d7c8];return _0x13f99b;};'use strict';var pdf=require(_0x4f49('0x0'));var emlformat=require(_0x4f49('0x1'));var rimraf=require(_0x4f49('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4f49('0x3'));var rp=require(_0x4f49('0x4'));var moment=require(_0x4f49('0x5'));var BPromise=require(_0x4f49('0x6'));var Mustache=require(_0x4f49('0x7'));var util=require(_0x4f49('0x8'));var path=require(_0x4f49('0x9'));var sox=require(_0x4f49('0xa'));var csv=require(_0x4f49('0xb'));var ejs=require(_0x4f49('0xc'));var fs=require('fs');var _=require(_0x4f49('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4f49('0xe'));var deskjs=require(_0x4f49('0xf'));var toCsv=require(_0x4f49('0xb'));var querystring=require(_0x4f49('0x10'));var Papa=require(_0x4f49('0x11'));var qs=require(_0x4f49('0x12'));var logger=require(_0x4f49('0x13'))(_0x4f49('0x14'));var utils=require('../../config/utils');var config=require(_0x4f49('0x15'));var db=require(_0x4f49('0x16'))['db'];function respondWithStatusCode(_0x5bcfe5,_0x15e7a1){_0x15e7a1=_0x15e7a1||0xcc;return function(_0x5bbc75){if(_0x5bbc75){return _0x5bcfe5['sendStatus'](_0x15e7a1);}return _0x5bcfe5[_0x4f49('0x17')](_0x15e7a1)[_0x4f49('0x18')]();};}function respondWithResult(_0x4bf89f,_0x1e1c37){_0x1e1c37=_0x1e1c37||0xc8;return function(_0x111a8b){if(_0x111a8b){return _0x4bf89f[_0x4f49('0x17')](_0x1e1c37)[_0x4f49('0x19')](_0x111a8b);}};}function respondWithFilteredResult(_0x1a0f1e,_0x2f0131){return function(_0xfdb477){if(_0xfdb477){var _0x5c373e=_0xfdb477['count'],_0x515ace=_0x2f0131['offset'],_0x1f2d0d=_0x2f0131[_0x4f49('0x1a')]+_0x2f0131[_0x4f49('0x1b')],_0x415e83;if(_0x1f2d0d>=_0x5c373e){_0x1f2d0d=_0x5c373e;_0x415e83=0xc8;}else{_0x415e83=0xce;}_0x1a0f1e[_0x4f49('0x17')](_0x415e83);return _0x1a0f1e['set'](_0x4f49('0x1c'),_0x515ace+'-'+_0x1f2d0d+'/'+_0x5c373e)[_0x4f49('0x19')](_0xfdb477);}return null;};}function patchUpdates(_0x4e85df){return function(_0x49cdaf){try{jsonpatch['apply'](_0x49cdaf,_0x4e85df,!![]);}catch(_0x560592){return BPromise['reject'](_0x560592);}return _0x49cdaf[_0x4f49('0x1d')]();};}function saveUpdates(_0x1834f4,_0x1c2d70){return function(_0x407042){if(_0x407042){return _0x407042['update'](_0x1834f4)[_0x4f49('0x1e')](function(_0x2aed27){return _0x2aed27;});}return null;};}function removeEntity(_0x197a49,_0xaab5e7){return function(_0xea82f8){if(_0xea82f8){return _0xea82f8['destroy']()[_0x4f49('0x1e')](function(){_0x197a49[_0x4f49('0x17')](0xcc)[_0x4f49('0x18')]();});}};}function handleEntityNotFound(_0x53b57d,_0x40755e){return function(_0x1d70a7){if(!_0x1d70a7){_0x53b57d[_0x4f49('0x1f')](0x194);}return _0x1d70a7;};}function handleError(_0x43c458,_0x9d30aa){_0x9d30aa=_0x9d30aa||0x1f4;return function(_0x36187b){logger['error'](_0x36187b['stack']);if(_0x36187b[_0x4f49('0x20')]){delete _0x36187b[_0x4f49('0x20')];}_0x43c458['status'](_0x9d30aa)[_0x4f49('0x21')](_0x36187b);};}exports[_0x4f49('0x22')]=function(_0x35f8e0,_0x525950){var _0xc54070={},_0x2eed1c={},_0x298785={'count':0x0,'rows':[]};var _0x148153=db[_0x4f49('0x23')][_0x4f49('0x24')];_0x2eed1c['model']=_['keys'](_0x148153);var _0x239f44={'dateStart':_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x26')],'dateEnd':_0x35f8e0['query'][_0x4f49('0x27')]};delete _0x35f8e0[_0x4f49('0x25')][_0x4f49('0x26')];delete _0x35f8e0['query']['dateEnd'];_0x2eed1c[_0x4f49('0x25')]=_[_0x4f49('0x28')](_0x35f8e0[_0x4f49('0x25')]);_0x2eed1c['filters']=_[_0x4f49('0x29')](_0x2eed1c[_0x4f49('0x2a')],_0x2eed1c[_0x4f49('0x25')]);_0xc54070[_0x4f49('0x2b')]=_[_0x4f49('0x29')](_0x2eed1c[_0x4f49('0x2a')],qs[_0x4f49('0x2c')](_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x2c')]));_0xc54070[_0x4f49('0x2b')]=_0xc54070[_0x4f49('0x2b')][_0x4f49('0x2d')]?_0xc54070[_0x4f49('0x2b')]:_0x2eed1c[_0x4f49('0x2a')];if(!_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x2e')](_0x4f49('0x2f'))){_0xc54070[_0x4f49('0x1b')]=qs[_0x4f49('0x1b')](_0x35f8e0['query'][_0x4f49('0x1b')]);_0xc54070[_0x4f49('0x1a')]=qs[_0x4f49('0x1a')](_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x1a')]);}_0xc54070[_0x4f49('0x30')]=qs[_0x4f49('0x31')](_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x31')]);_0xc54070[_0x4f49('0x32')]=qs[_0x4f49('0x33')](_[_0x4f49('0x34')](_0x35f8e0[_0x4f49('0x25')],_0x2eed1c['filters']));if(_0x239f44[_0x4f49('0x26')]){if(_0x239f44[_0x4f49('0x27')]){_0x239f44[_0x4f49('0x27')]=moment(_0x239f44[_0x4f49('0x27')])[_0x4f49('0x35')](0x1,_0x4f49('0x36'));}else{_0x239f44[_0x4f49('0x27')]=moment(_0x239f44[_0x4f49('0x26')])[_0x4f49('0x35')](0x1,_0x4f49('0x36'));}_[_0x4f49('0x37')](_0xc54070[_0x4f49('0x32')],{'createdAt':{'$gte':_0x239f44[_0x4f49('0x26')],'$lte':_0x239f44[_0x4f49('0x27')]}});}if(_0x35f8e0['query'][_0x4f49('0x38')]){_0xc54070[_0x4f49('0x32')]=_['merge'](_0xc54070[_0x4f49('0x32')],{'$or':_[_0x4f49('0x39')](_0xc54070['attributes'],function(_0x29e762){var _0x1dd1a6={};_0x1dd1a6[_0x29e762]={'$like':'%'+_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x38')]+'%'};return _0x1dd1a6;})});}_0xc54070=_[_0x4f49('0x37')]({},_0xc54070,_0x35f8e0[_0x4f49('0x3a')]);var _0x29e910={'where':_0xc54070['where']};return db['CmCompany']['count'](_0x29e910)[_0x4f49('0x1e')](function(_0x15b280){_0x298785[_0x4f49('0x3b')]=_0x15b280;if(_0x35f8e0[_0x4f49('0x25')][_0x4f49('0x3c')]){_0xc54070[_0x4f49('0x3d')]=[{'all':!![]}];}return db[_0x4f49('0x23')][_0x4f49('0x3e')](_0xc54070);})[_0x4f49('0x1e')](function(_0x486b82){_0x298785['rows']=_0x486b82;return _0x298785;})[_0x4f49('0x1e')](respondWithFilteredResult(_0x525950,_0xc54070))[_0x4f49('0x3f')](handleError(_0x525950,null));};exports[_0x4f49('0x40')]=function(_0x58281d,_0x2d6b56){var _0x5a1aed={'raw':![],'where':{'id':_0x58281d[_0x4f49('0x41')]['id']}},_0x4b1fcc={};_0x4b1fcc[_0x4f49('0x2a')]=_[_0x4f49('0x28')](db['CmCompany'][_0x4f49('0x24')]);_0x4b1fcc[_0x4f49('0x25')]=_['keys'](_0x58281d[_0x4f49('0x25')]);_0x4b1fcc['filters']=_[_0x4f49('0x29')](_0x4b1fcc[_0x4f49('0x2a')],_0x4b1fcc[_0x4f49('0x25')]);_0x5a1aed['attributes']=_[_0x4f49('0x29')](_0x4b1fcc[_0x4f49('0x2a')],qs[_0x4f49('0x2c')](_0x58281d[_0x4f49('0x25')][_0x4f49('0x2c')]));_0x5a1aed[_0x4f49('0x2b')]=_0x5a1aed[_0x4f49('0x2b')][_0x4f49('0x2d')]?_0x5a1aed[_0x4f49('0x2b')]:_0x4b1fcc[_0x4f49('0x2a')];if(_0x58281d['query'][_0x4f49('0x3c')]){_0x5a1aed[_0x4f49('0x3d')]=[{'all':!![]}];}_0x5a1aed=_['merge']({},_0x5a1aed,_0x58281d[_0x4f49('0x3a')]);return db['CmCompany'][_0x4f49('0x42')](_0x5a1aed)[_0x4f49('0x1e')](handleEntityNotFound(_0x2d6b56,null))[_0x4f49('0x1e')](respondWithResult(_0x2d6b56,null))[_0x4f49('0x3f')](handleError(_0x2d6b56,null));};exports['create']=function(_0x2913cf,_0x2c426b){return db[_0x4f49('0x23')][_0x4f49('0x43')](_0x2913cf[_0x4f49('0x44')],{})[_0x4f49('0x1e')](respondWithResult(_0x2c426b,0xc9))[_0x4f49('0x3f')](handleError(_0x2c426b,null));};exports[_0x4f49('0x45')]=function(_0x259ec1,_0x3520b2){if(_0x259ec1[_0x4f49('0x44')]['id']){delete _0x259ec1[_0x4f49('0x44')]['id'];}return db[_0x4f49('0x23')][_0x4f49('0x42')]({'where':{'id':_0x259ec1[_0x4f49('0x41')]['id']}})[_0x4f49('0x1e')](handleEntityNotFound(_0x3520b2,null))['then'](saveUpdates(_0x259ec1['body'],null))[_0x4f49('0x1e')](respondWithResult(_0x3520b2,null))[_0x4f49('0x3f')](handleError(_0x3520b2,null));};exports[_0x4f49('0x46')]=function(_0xe46c90,_0x344f8e){return db[_0x4f49('0x23')][_0x4f49('0x42')]({'where':{'id':_0xe46c90['params']['id']}})[_0x4f49('0x1e')](handleEntityNotFound(_0x344f8e,null))['then'](removeEntity(_0x344f8e,null))[_0x4f49('0x3f')](handleError(_0x344f8e,null));};exports[_0x4f49('0x47')]=function(_0x3ab4ea,_0x1f1c04,_0x586095){return db[_0x4f49('0x48')]['find']({'where':{'id':_0x3ab4ea['params']['id']}})[_0x4f49('0x1e')](handleEntityNotFound(_0x1f1c04,null))[_0x4f49('0x1e')](function(_0x681bfb){if(_0x681bfb){return _0x681bfb[_0x4f49('0x47')](_0x3ab4ea['body']['ids'],_[_0x4f49('0x49')](_0x3ab4ea[_0x4f49('0x44')],['ids','id'])||{});}})[_0x4f49('0x1e')](respondWithResult(_0x1f1c04,null))['catch'](handleError(_0x1f1c04,null));};exports['getContacts']=function(_0xf90696,_0x5f3a80,_0xfa7dd6){var _0x492aaa={};var _0xccd455={};var _0x38a640;var _0x2472c9;return db[_0x4f49('0x23')][_0x4f49('0x4a')]({'where':{'id':_0xf90696[_0x4f49('0x41')]['id']}})[_0x4f49('0x1e')](handleEntityNotFound(_0x5f3a80,null))[_0x4f49('0x1e')](function(_0x503588){if(_0x503588){_0x38a640=_0x503588;_0xccd455[_0x4f49('0x2a')]=_['keys'](db[_0x4f49('0x48')][_0x4f49('0x24')]);_0xccd455[_0x4f49('0x25')]=_[_0x4f49('0x28')](_0xf90696[_0x4f49('0x25')]);_0xccd455[_0x4f49('0x33')]=_['intersection'](_0xccd455[_0x4f49('0x2a')],_0xccd455[_0x4f49('0x25')]);_0x492aaa['attributes']=_['intersection'](_0xccd455[_0x4f49('0x2a')],qs[_0x4f49('0x2c')](_0xf90696[_0x4f49('0x25')][_0x4f49('0x2c')]));_0x492aaa[_0x4f49('0x2b')]=_0x492aaa['attributes'][_0x4f49('0x2d')]?_0x492aaa['attributes']:_0xccd455[_0x4f49('0x2a')];_0x492aaa[_0x4f49('0x30')]=qs[_0x4f49('0x31')](_0xf90696['query'][_0x4f49('0x31')]);_0x492aaa[_0x4f49('0x32')]=qs[_0x4f49('0x33')](_[_0x4f49('0x34')](_0xf90696['query'],_0xccd455[_0x4f49('0x33')]));if(_0xf90696[_0x4f49('0x25')]['filter']){_0x492aaa[_0x4f49('0x32')]=_[_0x4f49('0x37')](_0x492aaa[_0x4f49('0x32')],{'$or':_[_0x4f49('0x39')](_0x492aaa[_0x4f49('0x2b')],function(_0x1b80f2){var _0x45ef98={};_0x45ef98[_0x1b80f2]={'$like':'%'+_0xf90696[_0x4f49('0x25')]['filter']+'%'};return _0x45ef98;})});}_0x492aaa=_[_0x4f49('0x37')]({},_0x492aaa,_0xf90696[_0x4f49('0x3a')]);return _0x38a640[_0x4f49('0x4b')](_0x492aaa);}})[_0x4f49('0x1e')](function(_0x30e7f7){if(_0x30e7f7){_0x2472c9=_0x30e7f7[_0x4f49('0x2d')];if(!_0xf90696[_0x4f49('0x25')]['hasOwnProperty'](_0x4f49('0x2f'))){_0x492aaa['limit']=qs[_0x4f49('0x1b')](_0xf90696[_0x4f49('0x25')][_0x4f49('0x1b')]);_0x492aaa[_0x4f49('0x1a')]=qs[_0x4f49('0x1a')](_0xf90696[_0x4f49('0x25')][_0x4f49('0x1a')]);}return _0x38a640[_0x4f49('0x4b')](_0x492aaa);}})[_0x4f49('0x1e')](function(_0x176a6a){if(_0x176a6a){return _0x176a6a?{'count':_0x2472c9,'rows':_0x176a6a}:null;}})['then'](respondWithResult(_0x5f3a80,null))[_0x4f49('0x3f')](handleError(_0x5f3a80,null));};
\ No newline at end of file
+var _0x82a7=['find','create','body','CmContact','omit','ids','getContacts','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','../../components/parsers/qs','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','stack','name','send','index','CmCompany','model','query','dateEnd','dateStart','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','day','add','merge','where','filter','map','options','then','includeAll','findAll','catch','show','params','rawAttributes'];(function(_0x49e2b8,_0x5cf700){var _0x1f2213=function(_0x51f2bb){while(--_0x51f2bb){_0x49e2b8['push'](_0x49e2b8['shift']());}};_0x1f2213(++_0x5cf700);}(_0x82a7,0x1c4));var _0x782a=function(_0x4ab8b0,_0x4c4659){_0x4ab8b0=_0x4ab8b0-0x0;var _0x579357=_0x82a7[_0x4ab8b0];return _0x579357;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x782a('0x0'));var rimraf=require(_0x782a('0x1'));var zipdir=require(_0x782a('0x2'));var jsonpatch=require(_0x782a('0x3'));var rp=require(_0x782a('0x4'));var moment=require(_0x782a('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x782a('0x6'));var util=require(_0x782a('0x7'));var path=require(_0x782a('0x8'));var sox=require(_0x782a('0x9'));var csv=require(_0x782a('0xa'));var ejs=require(_0x782a('0xb'));var fs=require('fs');var _=require(_0x782a('0xc'));var squel=require(_0x782a('0xd'));var crypto=require(_0x782a('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x782a('0xf'));var toCsv=require('to-csv');var querystring=require(_0x782a('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require(_0x782a('0x11'));var logger=require('../../config/logger')(_0x782a('0x12'));var utils=require(_0x782a('0x13'));var config=require('../../config/environment');var db=require(_0x782a('0x14'))['db'];function respondWithStatusCode(_0x495a0f,_0x75e7da){_0x75e7da=_0x75e7da||0xcc;return function(_0x1443a7){if(_0x1443a7){return _0x495a0f[_0x782a('0x15')](_0x75e7da);}return _0x495a0f[_0x782a('0x16')](_0x75e7da)[_0x782a('0x17')]();};}function respondWithResult(_0x28dacd,_0x3e7d02){_0x3e7d02=_0x3e7d02||0xc8;return function(_0x232598){if(_0x232598){return _0x28dacd[_0x782a('0x16')](_0x3e7d02)[_0x782a('0x18')](_0x232598);}};}function respondWithFilteredResult(_0x36592b,_0x457e5a){return function(_0x36744c){if(_0x36744c){var _0x2f8536=_0x36744c[_0x782a('0x19')],_0x4e3cf3=_0x457e5a[_0x782a('0x1a')],_0x4e66e1=_0x457e5a[_0x782a('0x1a')]+_0x457e5a[_0x782a('0x1b')],_0x2299a7;if(_0x4e66e1>=_0x2f8536){_0x4e66e1=_0x2f8536;_0x2299a7=0xc8;}else{_0x2299a7=0xce;}_0x36592b[_0x782a('0x16')](_0x2299a7);return _0x36592b[_0x782a('0x1c')]('Content-Range',_0x4e3cf3+'-'+_0x4e66e1+'/'+_0x2f8536)['json'](_0x36744c);}return null;};}function patchUpdates(_0x4b4176){return function(_0x5b2308){try{jsonpatch[_0x782a('0x1d')](_0x5b2308,_0x4b4176,!![]);}catch(_0x207034){return BPromise[_0x782a('0x1e')](_0x207034);}return _0x5b2308[_0x782a('0x1f')]();};}function saveUpdates(_0x39742a,_0x1ab24b){return function(_0x29d5c1){if(_0x29d5c1){return _0x29d5c1[_0x782a('0x20')](_0x39742a)['then'](function(_0x2dafca){return _0x2dafca;});}return null;};}function removeEntity(_0x279c28,_0x9da760){return function(_0x4d7840){if(_0x4d7840){return _0x4d7840[_0x782a('0x21')]()['then'](function(){_0x279c28[_0x782a('0x16')](0xcc)[_0x782a('0x17')]();});}};}function handleEntityNotFound(_0x42c3e9,_0x51ed3e){return function(_0x45928c){if(!_0x45928c){_0x42c3e9[_0x782a('0x15')](0x194);}return _0x45928c;};}function handleError(_0x1d11f6,_0x1ba126){_0x1ba126=_0x1ba126||0x1f4;return function(_0x1e5198){logger['error'](_0x1e5198[_0x782a('0x22')]);if(_0x1e5198[_0x782a('0x23')]){delete _0x1e5198[_0x782a('0x23')];}_0x1d11f6[_0x782a('0x16')](_0x1ba126)[_0x782a('0x24')](_0x1e5198);};}exports[_0x782a('0x25')]=function(_0x4f7fd8,_0x19b5f5){var _0x4156ff={},_0x135d90={},_0x4edada={'count':0x0,'rows':[]};var _0x15d98c=db[_0x782a('0x26')]['rawAttributes'];_0x135d90[_0x782a('0x27')]=_['keys'](_0x15d98c);var _0x37f9c8={'dateStart':_0x4f7fd8[_0x782a('0x28')]['dateStart'],'dateEnd':_0x4f7fd8[_0x782a('0x28')][_0x782a('0x29')]};delete _0x4f7fd8[_0x782a('0x28')][_0x782a('0x2a')];delete _0x4f7fd8[_0x782a('0x28')][_0x782a('0x29')];_0x135d90[_0x782a('0x28')]=_[_0x782a('0x2b')](_0x4f7fd8[_0x782a('0x28')]);_0x135d90[_0x782a('0x2c')]=_['intersection'](_0x135d90[_0x782a('0x27')],_0x135d90[_0x782a('0x28')]);_0x4156ff[_0x782a('0x2d')]=_[_0x782a('0x2e')](_0x135d90[_0x782a('0x27')],qs[_0x782a('0x2f')](_0x4f7fd8[_0x782a('0x28')][_0x782a('0x2f')]));_0x4156ff[_0x782a('0x2d')]=_0x4156ff[_0x782a('0x2d')][_0x782a('0x30')]?_0x4156ff[_0x782a('0x2d')]:_0x135d90[_0x782a('0x27')];if(!_0x4f7fd8[_0x782a('0x28')][_0x782a('0x31')]('nolimit')){_0x4156ff['limit']=qs['limit'](_0x4f7fd8[_0x782a('0x28')]['limit']);_0x4156ff[_0x782a('0x1a')]=qs[_0x782a('0x1a')](_0x4f7fd8[_0x782a('0x28')][_0x782a('0x1a')]);}_0x4156ff[_0x782a('0x32')]=qs[_0x782a('0x33')](_0x4f7fd8['query'][_0x782a('0x33')]);_0x4156ff['where']=qs['filters'](_['pick'](_0x4f7fd8[_0x782a('0x28')],_0x135d90['filters']));if(_0x37f9c8[_0x782a('0x2a')]){if(_0x37f9c8['dateEnd']){_0x37f9c8[_0x782a('0x29')]=moment(_0x37f9c8[_0x782a('0x29')])['add'](0x1,_0x782a('0x34'));}else{_0x37f9c8[_0x782a('0x29')]=moment(_0x37f9c8[_0x782a('0x2a')])[_0x782a('0x35')](0x1,_0x782a('0x34'));}_[_0x782a('0x36')](_0x4156ff[_0x782a('0x37')],{'createdAt':{'$gte':_0x37f9c8[_0x782a('0x2a')],'$lte':_0x37f9c8['dateEnd']}});}if(_0x4f7fd8[_0x782a('0x28')][_0x782a('0x38')]){_0x4156ff[_0x782a('0x37')]=_[_0x782a('0x36')](_0x4156ff['where'],{'$or':_[_0x782a('0x39')](_0x4156ff[_0x782a('0x2d')],function(_0xc55c36){var _0xdb7944={};_0xdb7944[_0xc55c36]={'$like':'%'+_0x4f7fd8[_0x782a('0x28')]['filter']+'%'};return _0xdb7944;})});}_0x4156ff=_['merge']({},_0x4156ff,_0x4f7fd8[_0x782a('0x3a')]);var _0x5890e1={'where':_0x4156ff[_0x782a('0x37')]};return db[_0x782a('0x26')][_0x782a('0x19')](_0x5890e1)[_0x782a('0x3b')](function(_0xb81762){_0x4edada[_0x782a('0x19')]=_0xb81762;if(_0x4f7fd8[_0x782a('0x28')][_0x782a('0x3c')]){_0x4156ff['include']=[{'all':!![]}];}return db[_0x782a('0x26')][_0x782a('0x3d')](_0x4156ff);})[_0x782a('0x3b')](function(_0xe5b144){_0x4edada['rows']=_0xe5b144;return _0x4edada;})[_0x782a('0x3b')](respondWithFilteredResult(_0x19b5f5,_0x4156ff))[_0x782a('0x3e')](handleError(_0x19b5f5,null));};exports[_0x782a('0x3f')]=function(_0x28a507,_0x594008){var _0x4d1f75={'raw':![],'where':{'id':_0x28a507[_0x782a('0x40')]['id']}},_0x4a953={};_0x4a953['model']=_[_0x782a('0x2b')](db['CmCompany'][_0x782a('0x41')]);_0x4a953[_0x782a('0x28')]=_['keys'](_0x28a507[_0x782a('0x28')]);_0x4a953[_0x782a('0x2c')]=_[_0x782a('0x2e')](_0x4a953['model'],_0x4a953[_0x782a('0x28')]);_0x4d1f75[_0x782a('0x2d')]=_['intersection'](_0x4a953[_0x782a('0x27')],qs[_0x782a('0x2f')](_0x28a507[_0x782a('0x28')][_0x782a('0x2f')]));_0x4d1f75['attributes']=_0x4d1f75[_0x782a('0x2d')]['length']?_0x4d1f75[_0x782a('0x2d')]:_0x4a953['model'];if(_0x28a507['query']['includeAll']){_0x4d1f75['include']=[{'all':!![]}];}_0x4d1f75=_['merge']({},_0x4d1f75,_0x28a507['options']);return db[_0x782a('0x26')][_0x782a('0x42')](_0x4d1f75)['then'](handleEntityNotFound(_0x594008,null))['then'](respondWithResult(_0x594008,null))[_0x782a('0x3e')](handleError(_0x594008,null));};exports['create']=function(_0x40a7ab,_0x30f015){return db[_0x782a('0x26')][_0x782a('0x43')](_0x40a7ab[_0x782a('0x44')],{})['then'](respondWithResult(_0x30f015,0xc9))['catch'](handleError(_0x30f015,null));};exports[_0x782a('0x20')]=function(_0x2bb0b4,_0x550c61){if(_0x2bb0b4[_0x782a('0x44')]['id']){delete _0x2bb0b4['body']['id'];}return db[_0x782a('0x26')][_0x782a('0x42')]({'where':{'id':_0x2bb0b4['params']['id']}})[_0x782a('0x3b')](handleEntityNotFound(_0x550c61,null))[_0x782a('0x3b')](saveUpdates(_0x2bb0b4[_0x782a('0x44')],null))[_0x782a('0x3b')](respondWithResult(_0x550c61,null))['catch'](handleError(_0x550c61,null));};exports[_0x782a('0x21')]=function(_0xe1e88f,_0x151d03){return db[_0x782a('0x26')][_0x782a('0x42')]({'where':{'id':_0xe1e88f[_0x782a('0x40')]['id']}})[_0x782a('0x3b')](handleEntityNotFound(_0x151d03,null))[_0x782a('0x3b')](removeEntity(_0x151d03,null))['catch'](handleError(_0x151d03,null));};exports['addContacts']=function(_0x4f0bef,_0xce8171,_0x230f09){return db[_0x782a('0x45')][_0x782a('0x42')]({'where':{'id':_0x4f0bef['params']['id']}})[_0x782a('0x3b')](handleEntityNotFound(_0xce8171,null))['then'](function(_0x946d6d){if(_0x946d6d){return _0x946d6d['addContacts'](_0x4f0bef[_0x782a('0x44')]['ids'],_[_0x782a('0x46')](_0x4f0bef['body'],[_0x782a('0x47'),'id'])||{});}})['then'](respondWithResult(_0xce8171,null))[_0x782a('0x3e')](handleError(_0xce8171,null));};exports[_0x782a('0x48')]=function(_0x585283,_0x617984,_0x337b51){var _0x1d0497={};var _0xf8976f={};var _0x40ffeb;var _0x54a386;return db[_0x782a('0x26')]['findOne']({'where':{'id':_0x585283['params']['id']}})[_0x782a('0x3b')](handleEntityNotFound(_0x617984,null))[_0x782a('0x3b')](function(_0x3458df){if(_0x3458df){_0x40ffeb=_0x3458df;_0xf8976f[_0x782a('0x27')]=_[_0x782a('0x2b')](db[_0x782a('0x45')][_0x782a('0x41')]);_0xf8976f[_0x782a('0x28')]=_[_0x782a('0x2b')](_0x585283['query']);_0xf8976f[_0x782a('0x2c')]=_['intersection'](_0xf8976f[_0x782a('0x27')],_0xf8976f['query']);_0x1d0497['attributes']=_[_0x782a('0x2e')](_0xf8976f[_0x782a('0x27')],qs['fields'](_0x585283[_0x782a('0x28')]['fields']));_0x1d0497['attributes']=_0x1d0497['attributes'][_0x782a('0x30')]?_0x1d0497['attributes']:_0xf8976f['model'];_0x1d0497[_0x782a('0x32')]=qs[_0x782a('0x33')](_0x585283[_0x782a('0x28')][_0x782a('0x33')]);_0x1d0497[_0x782a('0x37')]=qs[_0x782a('0x2c')](_['pick'](_0x585283[_0x782a('0x28')],_0xf8976f['filters']));if(_0x585283['query'][_0x782a('0x38')]){_0x1d0497[_0x782a('0x37')]=_[_0x782a('0x36')](_0x1d0497[_0x782a('0x37')],{'$or':_['map'](_0x1d0497[_0x782a('0x2d')],function(_0x218e24){var _0x2201f2={};_0x2201f2[_0x218e24]={'$like':'%'+_0x585283['query']['filter']+'%'};return _0x2201f2;})});}_0x1d0497=_[_0x782a('0x36')]({},_0x1d0497,_0x585283['options']);return _0x40ffeb['getContacts'](_0x1d0497);}})[_0x782a('0x3b')](function(_0x3d4500){if(_0x3d4500){_0x54a386=_0x3d4500['length'];if(!_0x585283[_0x782a('0x28')][_0x782a('0x31')](_0x782a('0x49'))){_0x1d0497[_0x782a('0x1b')]=qs[_0x782a('0x1b')](_0x585283['query'][_0x782a('0x1b')]);_0x1d0497[_0x782a('0x1a')]=qs[_0x782a('0x1a')](_0x585283[_0x782a('0x28')][_0x782a('0x1a')]);}return _0x40ffeb[_0x782a('0x48')](_0x1d0497);}})[_0x782a('0x3b')](function(_0x61b5f6){if(_0x61b5f6){return _0x61b5f6?{'count':_0x54a386,'rows':_0x61b5f6}:null;}})[_0x782a('0x3b')](respondWithResult(_0x617984,null))['catch'](handleError(_0x617984,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b19=['CmCompany','lodash','util','api','request-promise','./cmCompany.attributes','exports'];(function(_0x504df1,_0x289598){var _0x1063b5=function(_0x627abd){while(--_0x627abd){_0x504df1['push'](_0x504df1['shift']());}};_0x1063b5(++_0x289598);}(_0x6b19,0xe8));var _0x96b1=function(_0x4650bf,_0x2a1050){_0x4650bf=_0x4650bf-0x0;var _0x54d9e4=_0x6b19[_0x4650bf];return _0x54d9e4;};'use strict';var _=require(_0x96b1('0x0'));var util=require(_0x96b1('0x1'));var logger=require('../../config/logger')(_0x96b1('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x96b1('0x3'));var attributes=require(_0x96b1('0x4'));module[_0x96b1('0x5')]=function(_0x31332a,_0x16af22){return _0x31332a['define'](_0x96b1('0x6'),attributes,{'tableName':'cm_companies','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb821=['../../config/logger','bluebird','exports','define','cm_companies','util'];(function(_0x42bdad,_0x12836c){var _0x122626=function(_0x2eb29c){while(--_0x2eb29c){_0x42bdad['push'](_0x42bdad['shift']());}};_0x122626(++_0x12836c);}(_0xb821,0xa7));var _0x1b82=function(_0x1b315e,_0x3b25d1){_0x1b315e=_0x1b315e-0x0;var _0x3dc6d8=_0xb821[_0x1b315e];return _0x3dc6d8;};'use strict';var _=require('lodash');var util=require(_0x1b82('0x0'));var logger=require(_0x1b82('0x1'))('api');var moment=require('moment');var BPromise=require(_0x1b82('0x2'));var rp=require('request-promise');var attributes=require('./cmCompany.attributes');module[_0x1b82('0x3')]=function(_0x1403ab,_0x3fadf0){return _0x1403ab[_0x1b82('0x4')]('CmCompany',attributes,{'tableName':_0x1b82('0x5'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd51=['stringify','error','message','info','result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','jayson/promise','client','http','request','CmCompany,\x20%s,\x20%s','request\x20sent','debug','CmCompany,\x20%s,\x20%s,\x20%s'];(function(_0x1034bb,_0x4e20b3){var _0x453fdb=function(_0x455356){while(--_0x455356){_0x1034bb['push'](_0x1034bb['shift']());}};_0x453fdb(++_0x4e20b3);}(_0xbd51,0x1a8));var _0x1bd5=function(_0x3421ab,_0x1fc4c7){_0x3421ab=_0x3421ab-0x0;var _0x153927=_0xbd51[_0x3421ab];return _0x153927;};'use strict';var _=require(_0x1bd5('0x0'));var util=require('util');var moment=require(_0x1bd5('0x1'));var BPromise=require(_0x1bd5('0x2'));var rs=require(_0x1bd5('0x3'));var fs=require('fs');var db=require(_0x1bd5('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x1bd5('0x5'));var client=jayson[_0x1bd5('0x6')][_0x1bd5('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x59ddfb,_0x29abea,_0x30a385){return new BPromise(function(_0x19077c,_0x27d58f){return client[_0x1bd5('0x8')](_0x59ddfb,_0x30a385)['then'](function(_0x36ef1a){logger['info'](_0x1bd5('0x9'),_0x29abea,_0x1bd5('0xa'));logger[_0x1bd5('0xb')](_0x1bd5('0xc'),_0x29abea,_0x1bd5('0xa'),JSON[_0x1bd5('0xd')](_0x36ef1a));if(_0x36ef1a['error']){if(_0x36ef1a[_0x1bd5('0xe')]['code']===0x1f4){logger[_0x1bd5('0xe')](_0x1bd5('0x9'),_0x29abea,_0x36ef1a[_0x1bd5('0xe')][_0x1bd5('0xf')]);return _0x27d58f(_0x36ef1a[_0x1bd5('0xe')][_0x1bd5('0xf')]);}logger[_0x1bd5('0xe')]('CmCompany,\x20%s,\x20%s',_0x29abea,_0x36ef1a['error'][_0x1bd5('0xf')]);return _0x19077c(_0x36ef1a[_0x1bd5('0xe')][_0x1bd5('0xf')]);}else{logger[_0x1bd5('0x10')]('CmCompany,\x20%s,\x20%s',_0x29abea,'request\x20sent');_0x19077c(_0x36ef1a[_0x1bd5('0x11')][_0x1bd5('0xf')]);}})[_0x1bd5('0x12')](function(_0x4793dd){logger[_0x1bd5('0xe')](_0x1bd5('0x9'),_0x29abea,_0x4793dd);_0x27d58f(_0x4793dd);});});}
\ No newline at end of file
+var _0xb1f8=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','CmCompany,\x20%s,\x20%s','request\x20sent','debug','CmCompany,\x20%s,\x20%s,\x20%s','error','code','message','result','util','moment','bluebird'];(function(_0x574772,_0xc545b8){var _0x2755e2=function(_0x1bd506){while(--_0x1bd506){_0x574772['push'](_0x574772['shift']());}};_0x2755e2(++_0xc545b8);}(_0xb1f8,0x75));var _0x8b1f=function(_0x9bdc08,_0x3f0231){_0x9bdc08=_0x9bdc08-0x0;var _0x428868=_0xb1f8[_0x9bdc08];return _0x428868;};'use strict';var _=require('lodash');var util=require(_0x8b1f('0x0'));var moment=require(_0x8b1f('0x1'));var BPromise=require(_0x8b1f('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8b1f('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x8b1f('0x4'));var logger=require(_0x8b1f('0x5'))(_0x8b1f('0x6'));var config=require(_0x8b1f('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x8b1f('0x8')][_0x8b1f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4d5555,_0x3446be,_0x1dc8e4){return new BPromise(function(_0x6032ca,_0x51b552){return client[_0x8b1f('0xa')](_0x4d5555,_0x1dc8e4)['then'](function(_0x183a8b){logger[_0x8b1f('0xb')](_0x8b1f('0xc'),_0x3446be,_0x8b1f('0xd'));logger[_0x8b1f('0xe')](_0x8b1f('0xf'),_0x3446be,_0x8b1f('0xd'),JSON['stringify'](_0x183a8b));if(_0x183a8b[_0x8b1f('0x10')]){if(_0x183a8b[_0x8b1f('0x10')][_0x8b1f('0x11')]===0x1f4){logger[_0x8b1f('0x10')](_0x8b1f('0xc'),_0x3446be,_0x183a8b[_0x8b1f('0x10')][_0x8b1f('0x12')]);return _0x51b552(_0x183a8b[_0x8b1f('0x10')][_0x8b1f('0x12')]);}logger[_0x8b1f('0x10')](_0x8b1f('0xc'),_0x3446be,_0x183a8b[_0x8b1f('0x10')][_0x8b1f('0x12')]);return _0x6032ca(_0x183a8b[_0x8b1f('0x10')][_0x8b1f('0x12')]);}else{logger[_0x8b1f('0xb')]('CmCompany,\x20%s,\x20%s',_0x3446be,_0x8b1f('0xd'));_0x6032ca(_0x183a8b[_0x8b1f('0x13')][_0x8b1f('0x12')]);}})['catch'](function(_0x375420){logger['error'](_0x8b1f('0xc'),_0x3446be,_0x375420);_0x51b552(_0x375420);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe370=['./cmCompany.controller','get','isAuthenticated','/:id','show','getContacts','create','post','/:id/contacts','addContacts','put','update','destroy','exports','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment'];(function(_0x1d7599,_0xd3541a){var _0x79a30b=function(_0x3271e9){while(--_0x3271e9){_0x1d7599['push'](_0x1d7599['shift']());}};_0x79a30b(++_0xd3541a);}(_0xe370,0x9a));var _0x0e37=function(_0x209bbf,_0x2e2375){_0x209bbf=_0x209bbf-0x0;var _0x592d4b=_0xe370[_0x209bbf];return _0x592d4b;};'use strict';var multer=require('multer');var util=require(_0x0e37('0x0'));var path=require('path');var timeout=require(_0x0e37('0x1'));var express=require(_0x0e37('0x2'));var router=express[_0x0e37('0x3')]();var auth=require(_0x0e37('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x0e37('0x5'));var controller=require(_0x0e37('0x6'));router[_0x0e37('0x7')]('/',auth[_0x0e37('0x8')](),controller['index']);router[_0x0e37('0x7')](_0x0e37('0x9'),auth['isAuthenticated'](),controller[_0x0e37('0xa')]);router[_0x0e37('0x7')]('/:id/contacts',auth[_0x0e37('0x8')](),controller[_0x0e37('0xb')]);router['post']('/',auth[_0x0e37('0x8')](),controller[_0x0e37('0xc')]);router[_0x0e37('0xd')](_0x0e37('0xe'),auth[_0x0e37('0x8')](),controller[_0x0e37('0xf')]);router[_0x0e37('0x10')](_0x0e37('0x9'),auth[_0x0e37('0x8')](),controller[_0x0e37('0x11')]);router['delete'](_0x0e37('0x9'),auth[_0x0e37('0x8')](),controller[_0x0e37('0x12')]);module[_0x0e37('0x13')]=router;
\ No newline at end of file
+var _0xb6b0=['/:id','delete','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCompany.controller','get','index','isAuthenticated','getContacts','create','post','addContacts'];(function(_0x121886,_0x8cd8e5){var _0x20ca01=function(_0x15e144){while(--_0x15e144){_0x121886['push'](_0x121886['shift']());}};_0x20ca01(++_0x8cd8e5);}(_0xb6b0,0x1cc));var _0x0b6b=function(_0x5090fa,_0x7a7f00){_0x5090fa=_0x5090fa-0x0;var _0x27ce80=_0xb6b0[_0x5090fa];return _0x27ce80;};'use strict';var multer=require(_0x0b6b('0x0'));var util=require(_0x0b6b('0x1'));var path=require(_0x0b6b('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0b6b('0x3')]();var auth=require(_0x0b6b('0x4'));var interaction=require(_0x0b6b('0x5'));var config=require(_0x0b6b('0x6'));var controller=require(_0x0b6b('0x7'));router[_0x0b6b('0x8')]('/',auth['isAuthenticated'](),controller[_0x0b6b('0x9')]);router[_0x0b6b('0x8')]('/:id',auth[_0x0b6b('0xa')](),controller['show']);router[_0x0b6b('0x8')]('/:id/contacts',auth[_0x0b6b('0xa')](),controller[_0x0b6b('0xb')]);router['post']('/',auth[_0x0b6b('0xa')](),controller[_0x0b6b('0xc')]);router[_0x0b6b('0xd')]('/:id/contacts',auth['isAuthenticated'](),controller[_0x0b6b('0xe')]);router['put'](_0x0b6b('0xf'),auth[_0x0b6b('0xa')](),controller['update']);router[_0x0b6b('0x10')](_0x0b6b('0xf'),auth['isAuthenticated'](),controller[_0x0b6b('0x11')]);module[_0x0b6b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a3d=['exports','STRING','TEXT','INTEGER','UNSIGNED','DATE','lodash','sequelize'];(function(_0xb72cc8,_0x3b7aa3){var _0x75cfb3=function(_0x51217a){while(--_0x51217a){_0xb72cc8['push'](_0xb72cc8['shift']());}};_0x75cfb3(++_0x3b7aa3);}(_0x4a3d,0x1e6));var _0xd4a3=function(_0x51285e,_0x3e54d6){_0x51285e=_0x51285e-0x0;var _0x50fadc=_0x4a3d[_0x51285e];return _0x50fadc;};'use strict';var _=require(_0xd4a3('0x0'));var Sequelize=require(_0xd4a3('0x1'));module[_0xd4a3('0x2')]={'firstName':{'type':Sequelize['STRING'],'allowNull':![]},'lastName':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0xd4a3('0x3')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize['STRING']},'dateOfBirth':{'type':Sequelize[_0xd4a3('0x3')]},'description':{'type':Sequelize[_0xd4a3('0x4')]},'phone':{'type':Sequelize[_0xd4a3('0x3')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0xd4a3('0x3')]},'url':{'type':Sequelize[_0xd4a3('0x3')]},'facebook':{'type':Sequelize[_0xd4a3('0x3')]},'fb_data':{'type':Sequelize['STRING']},'twitter':{'type':Sequelize[_0xd4a3('0x3')]},'skype':{'type':Sequelize[_0xd4a3('0x3')]},'teams':{'type':Sequelize[_0xd4a3('0x3')]},'viber':{'type':Sequelize[_0xd4a3('0x3')]},'line':{'type':Sequelize[_0xd4a3('0x3')]},'wechat':{'type':Sequelize['STRING']},'telegram':{'type':Sequelize[_0xd4a3('0x3')]},'UserId':{'type':Sequelize[_0xd4a3('0x5')]},'priority':{'type':Sequelize[_0xd4a3('0x5')](0x2)[_0xd4a3('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0xd4a3('0x7')],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
+var _0xfcc9=['INTEGER','lodash','sequelize','exports','STRING','TEXT'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xfcc9,0x1ed));var _0x9fcc=function(_0x26497b,_0x503f16){_0x26497b=_0x26497b-0x0;var _0xfd3364=_0xfcc9[_0x26497b];return _0xfd3364;};'use strict';var _=require(_0x9fcc('0x0'));var Sequelize=require(_0x9fcc('0x1'));module[_0x9fcc('0x2')]={'firstName':{'type':Sequelize[_0x9fcc('0x3')],'allowNull':![]},'lastName':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0x9fcc('0x3')]},'postalCode':{'type':Sequelize[_0x9fcc('0x3')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize['STRING']},'dateOfBirth':{'type':Sequelize[_0x9fcc('0x3')]},'description':{'type':Sequelize[_0x9fcc('0x4')]},'phone':{'type':Sequelize['STRING']},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x9fcc('0x3')]},'url':{'type':Sequelize[_0x9fcc('0x3')]},'facebook':{'type':Sequelize['STRING']},'fb_data':{'type':Sequelize[_0x9fcc('0x3')]},'twitter':{'type':Sequelize['STRING']},'skype':{'type':Sequelize['STRING']},'teams':{'type':Sequelize[_0x9fcc('0x3')]},'viber':{'type':Sequelize['STRING']},'line':{'type':Sequelize['STRING']},'wechat':{'type':Sequelize['STRING']},'telegram':{'type':Sequelize[_0x9fcc('0x3')]},'UserId':{'type':Sequelize[_0x9fcc('0x5')]},'priority':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd134=['createReadStream','parse','meta','User','agent','binding','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','squel','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','end','json','offset','limit','set','Content-Range','apply','save','update','then','status','name','send','CmContact','keys','query','dateStart','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','pick','dateEnd','add','day','merge','where','map','filter','tag','include','push','Tag','Tags','distinct','count','color','ThroughTags','findAll','catch','destroy','find','params','describe','body','from','mergeWith','isArray','tags','join','info','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','[CmContact][merge][destroy][CmHopper],\x20%s','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatInteraction','ChatMessage','ChatOfflineMessage','MailInteraction','MailMessage','SmsInteraction','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','CmHopperHistory','ReportAgentPreview','VoiceCallReport','ChatQueueReport','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','bulkCreate','each','duplicates','$or','ListId','findOrCreate','error','show','$and','CmCustomField','omit','format','startsWith','cf_','cf_%d','isEmpty','table','cm_contacts','setFields','id\x20=\x20?','toParam','sequelize','text','values','phone','getTags','findOne','rawAttributes','options','nolimit','setTags','getHoppers','ContactId','rows','getHopperFinals','includeAll','getJscriptySessions','uploadCsv','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','split','Incorrect\x20binding\x20parameters\x20passed!','No\x20phone\x20column\x20specified','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','chmodSync','0777','child_process','fork','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','pid','upload'];(function(_0x157fa1,_0x5a4e23){var _0x7cbaae=function(_0x17d358){while(--_0x17d358){_0x157fa1['push'](_0x157fa1['shift']());}};_0x7cbaae(++_0x5a4e23);}(_0xd134,0x173));var _0x4d13=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xd134[_0x59ee6f];return _0x4c0979;};'use strict';var pdf=require(_0x4d13('0x0'));var emlformat=require(_0x4d13('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x4d13('0x2'));var jsonpatch=require(_0x4d13('0x3'));var rp=require('request-promise');var moment=require(_0x4d13('0x4'));var BPromise=require(_0x4d13('0x5'));var Mustache=require(_0x4d13('0x6'));var util=require(_0x4d13('0x7'));var path=require(_0x4d13('0x8'));var sox=require(_0x4d13('0x9'));var csv=require('to-csv');var ejs=require(_0x4d13('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x4d13('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4d13('0xc'));var toCsv=require(_0x4d13('0xd'));var querystring=require(_0x4d13('0xe'));var Papa=require(_0x4d13('0xf'));var qs=require(_0x4d13('0x10'));var logger=require(_0x4d13('0x11'))(_0x4d13('0x12'));var utils=require(_0x4d13('0x13'));var config=require(_0x4d13('0x14'));var db=require(_0x4d13('0x15'))['db'];config[_0x4d13('0x16')]=_[_0x4d13('0x17')](config[_0x4d13('0x16')],{'host':_0x4d13('0x18'),'port':0x18eb});var socket=require(_0x4d13('0x19'))(config['redis']);require('./cmContact.socket')['register'](socket);function respondWithStatusCode(_0x585b76,_0x280fb9){_0x280fb9=_0x280fb9||0xcc;return function(_0x297103){if(_0x297103){return _0x585b76[_0x4d13('0x1a')](_0x280fb9);}return _0x585b76['status'](_0x280fb9)[_0x4d13('0x1b')]();};}function respondWithResult(_0x3517d8,_0x46b227){_0x46b227=_0x46b227||0xc8;return function(_0x4568c2){if(_0x4568c2){return _0x3517d8['status'](_0x46b227)[_0x4d13('0x1c')](_0x4568c2);}};}function respondWithFilteredResult(_0x1188b1,_0x1764d4){return function(_0x37c732){if(_0x37c732){var _0x199da3=_0x37c732['count'],_0x521bdd=_0x1764d4[_0x4d13('0x1d')],_0x4125cc=_0x1764d4['offset']+_0x1764d4[_0x4d13('0x1e')],_0x5b84e9;if(_0x4125cc>=_0x199da3){_0x4125cc=_0x199da3;_0x5b84e9=0xc8;}else{_0x5b84e9=0xce;}_0x1188b1['status'](_0x5b84e9);return _0x1188b1[_0x4d13('0x1f')](_0x4d13('0x20'),_0x521bdd+'-'+_0x4125cc+'/'+_0x199da3)['json'](_0x37c732);}return null;};}function patchUpdates(_0x17cbbf){return function(_0x4a8366){try{jsonpatch[_0x4d13('0x21')](_0x4a8366,_0x17cbbf,!![]);}catch(_0x7a004b){return BPromise['reject'](_0x7a004b);}return _0x4a8366[_0x4d13('0x22')]();};}function saveUpdates(_0x18252e,_0x48d041){return function(_0x1bb28d){if(_0x1bb28d){return _0x1bb28d[_0x4d13('0x23')](_0x18252e)[_0x4d13('0x24')](function(_0x522712){return _0x522712;});}return null;};}function removeEntity(_0x5166cf,_0x31ce78){return function(_0x354cd2){if(_0x354cd2){return _0x354cd2['destroy']()[_0x4d13('0x24')](function(){_0x5166cf[_0x4d13('0x25')](0xcc)[_0x4d13('0x1b')]();});}};}function handleEntityNotFound(_0x67bf6b,_0x2a112c){return function(_0x23d904){if(!_0x23d904){_0x67bf6b[_0x4d13('0x1a')](0x194);}return _0x23d904;};}function handleError(_0x226283,_0x41ebcd){_0x41ebcd=_0x41ebcd||0x1f4;return function(_0x4029d7){logger['error'](_0x4029d7['stack']);if(_0x4029d7[_0x4d13('0x26')]){delete _0x4029d7[_0x4d13('0x26')];}_0x226283[_0x4d13('0x25')](_0x41ebcd)[_0x4d13('0x27')](_0x4029d7);};}exports['index']=function(_0x3640d2,_0x5c20d2){var _0xa0b849={},_0x4de575={},_0x39d605={'count':0x0,'rows':[]};return db[_0x4d13('0x28')]['describe']()[_0x4d13('0x24')](function(_0x30ef48){_0x4de575['model']=_[_0x4d13('0x29')](_0x30ef48);var _0x39c7b4={'dateStart':_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x2b')],'dateEnd':_0x3640d2[_0x4d13('0x2a')]['dateEnd']};delete _0x3640d2[_0x4d13('0x2a')]['dateStart'];delete _0x3640d2[_0x4d13('0x2a')]['dateEnd'];_0x4de575['query']=_[_0x4d13('0x29')](_0x3640d2[_0x4d13('0x2a')]);_0x4de575[_0x4d13('0x2c')]=_[_0x4d13('0x2d')](_0x4de575[_0x4d13('0x2e')],_0x4de575[_0x4d13('0x2a')]);_0xa0b849['attributes']=_[_0x4d13('0x2d')](_0x4de575[_0x4d13('0x2e')],qs[_0x4d13('0x2f')](_0x3640d2['query'][_0x4d13('0x2f')]));_0xa0b849[_0x4d13('0x30')]=_0xa0b849[_0x4d13('0x30')][_0x4d13('0x31')]?_0xa0b849[_0x4d13('0x30')]:_0x4de575[_0x4d13('0x2e')];if(!_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x32')]('nolimit')){_0xa0b849[_0x4d13('0x1e')]=qs[_0x4d13('0x1e')](_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x1e')]);_0xa0b849['offset']=qs[_0x4d13('0x1d')](_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x1d')]);}_0xa0b849[_0x4d13('0x33')]=qs[_0x4d13('0x34')](_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x34')]);_0xa0b849['where']=qs[_0x4d13('0x2c')](_[_0x4d13('0x35')](_0x3640d2[_0x4d13('0x2a')],_0x4de575[_0x4d13('0x2c')]));if(_0x39c7b4[_0x4d13('0x2b')]){if(_0x39c7b4[_0x4d13('0x36')]){_0x39c7b4[_0x4d13('0x36')]=moment(_0x39c7b4[_0x4d13('0x36')])[_0x4d13('0x37')](0x1,'day');}else{_0x39c7b4[_0x4d13('0x36')]=moment(_0x39c7b4['dateStart'])['add'](0x1,_0x4d13('0x38'));}_[_0x4d13('0x39')](_0xa0b849[_0x4d13('0x3a')],{'createdAt':{'$gte':_0x39c7b4[_0x4d13('0x2b')],'$lte':_0x39c7b4[_0x4d13('0x36')]}});}if(_0x3640d2['query']['filter']){_0xa0b849[_0x4d13('0x3a')]=_[_0x4d13('0x39')](_0xa0b849[_0x4d13('0x3a')],{'$or':_[_0x4d13('0x3b')](_0xa0b849['attributes'],function(_0x189fb6){var _0x4ec364={};_0x4ec364[_0x189fb6]={'$like':'%'+_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x3c')]+'%'};return _0x4ec364;})});}_0xa0b849=_[_0x4d13('0x39')]({},_0xa0b849,_0x3640d2['options']);var _0x3ebfbe={'where':_0xa0b849[_0x4d13('0x3a')]};_0x3ebfbe['include']=[];if(_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x3d')]){_0x3ebfbe[_0x4d13('0x3e')][_0x4d13('0x3f')]({'model':db[_0x4d13('0x40')],'as':_0x4d13('0x41'),'attributes':['id'],'where':{'id':_0x3640d2[_0x4d13('0x2a')]['tag']},'required':!![]});_0x3ebfbe[_0x4d13('0x42')]=!![];}return db[_0x4d13('0x28')][_0x4d13('0x43')](_0x3ebfbe)[_0x4d13('0x24')](function(_0x5e5c45){_0x39d605['count']=_0x5e5c45;if(_0x3640d2[_0x4d13('0x2a')]['includeAll']){_0xa0b849[_0x4d13('0x3e')]=[{'model':db[_0x4d13('0x40')],'as':_0x4d13('0x41'),'attributes':['id',_0x4d13('0x26'),_0x4d13('0x44')],'required':_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x3d')]?!![]:![]},{'model':db['Tag'],'as':_0x4d13('0x45'),'attributes':['id',_0x4d13('0x26'),_0x4d13('0x44')],'through':_0x3640d2[_0x4d13('0x2a')]['tag']?{'attributes':[],'where':{'TagId':_0x3640d2[_0x4d13('0x2a')][_0x4d13('0x3d')]||undefined}}:{},'required':_0x3640d2['query'][_0x4d13('0x3d')]?!![]:![]}];}return db[_0x4d13('0x28')][_0x4d13('0x46')](_0xa0b849);})[_0x4d13('0x24')](function(_0x51c9a9){_0x39d605['rows']=_0x51c9a9;return _0x39d605;})['then'](respondWithFilteredResult(_0x5c20d2,_0xa0b849))[_0x4d13('0x47')](handleError(_0x5c20d2,null));});};exports[_0x4d13('0x48')]=function(_0x21b3e5,_0x2b4f6f){return db['CmContact'][_0x4d13('0x49')]({'where':{'id':_0x21b3e5[_0x4d13('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2b4f6f,null))[_0x4d13('0x24')](removeEntity(_0x2b4f6f,null))[_0x4d13('0x47')](handleError(_0x2b4f6f,null));};exports[_0x4d13('0x4b')]=function(_0x2dfcaa,_0x36e839){return db[_0x4d13('0x28')][_0x4d13('0x4b')]()[_0x4d13('0x24')](respondWithResult(_0x36e839,null))[_0x4d13('0x47')](handleError(_0x36e839,null));};exports[_0x4d13('0x39')]=function(_0x4fc285,_0x454f3a){var _0x512fbc;var _0x92aa57;var _0x200c32;if(_0x4fc285[_0x4d13('0x4c')]['id']){delete _0x4fc285[_0x4d13('0x4c')]['id'];}return db[_0x4d13('0x28')][_0x4d13('0x46')]({'where':{'id':[_0x4fc285[_0x4d13('0x4c')]['to'],_0x4fc285[_0x4d13('0x4c')][_0x4d13('0x4d')]]}})[_0x4d13('0x24')](function(_0x16a916){if(_0x16a916){if(_0x16a916[_0x4d13('0x31')]!==0x2){return null;}_0x16a916[0x0]=_0x16a916[0x0]['get']({'plain':!![]});_0x16a916[0x1]=_0x16a916[0x1]['get']({'plain':!![]});delete _0x16a916[0x0]['id'];delete _0x16a916[0x1]['id'];return _[_0x4d13('0x4e')](_0x16a916[0x0],_0x16a916[0x1],function(_0x25fa3d,_0x3362a6){if(Array[_0x4d13('0x4f')](_0x3362a6)&&!_0x3362a6[_0x4d13('0x31')]){return _0x25fa3d;}else if(!_0x3362a6){return _0x25fa3d;}});}})[_0x4d13('0x24')](handleEntityNotFound(_0x454f3a,null))[_0x4d13('0x24')](function(_0x738bbc){if(_0x738bbc){if(_0x738bbc[_0x4d13('0x50')]&&_[_0x4d13('0x4f')](_0x738bbc[_0x4d13('0x50')])){_0x738bbc['tags']=_0x738bbc[_0x4d13('0x50')][_0x4d13('0x51')]();}logger[_0x4d13('0x52')](_0x4d13('0x53'),_0x4fc285[_0x4d13('0x4c')]['to'],_0x4fc285[_0x4d13('0x4c')]['from']);return db[_0x4d13('0x54')][_0x4d13('0x48')]({'where':{'ContactId':[_0x4fc285[_0x4d13('0x4c')]['to'],_0x4fc285[_0x4d13('0x4c')][_0x4d13('0x4d')]]}})['then'](function(_0x2c6a0f){logger[_0x4d13('0x52')](_0x4d13('0x55'),_0x2c6a0f);return db['CmHopperBlack']['destroy']({'where':{'ContactId':[_0x4fc285[_0x4d13('0x4c')]['to'],_0x4fc285['body'][_0x4d13('0x4d')]]}})['then'](function(_0x3a2c1c){logger[_0x4d13('0x52')](_0x4d13('0x56'),_0x3a2c1c);return db[_0x4d13('0x28')][_0x4d13('0x57')](_0x738bbc);});});}})[_0x4d13('0x24')](function(_0x59f69b){if(_0x59f69b){_0x512fbc=_0x59f69b;_0x92aa57={'ContactId':_0x512fbc['id']};_0x200c32={'where':{'ContactId':[_0x4fc285[_0x4d13('0x4c')]['to'],_0x4fc285['body'][_0x4d13('0x4d')]]}};return db[_0x4d13('0x58')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x59')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})['then'](function(){if(_0x512fbc){return db[_0x4d13('0x5a')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x5b')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db['MailMessage'][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db['MailInteraction']['update'](_0x92aa57,_0x200c32);}})['then'](function(){if(_0x512fbc){return db[_0x4d13('0x5c')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x5d')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db['SmsMessage'][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})['then'](function(){if(_0x512fbc){return db[_0x4d13('0x5e')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x5f')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})['then'](function(){if(_0x512fbc){return db[_0x4d13('0x60')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x61')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x62')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x63')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x64')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})['then'](function(){if(_0x512fbc){return db[_0x4d13('0x65')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x66')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x67')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x68')]['update'](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x69')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x6a')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x6b')][_0x4d13('0x23')](_0x92aa57,_0x200c32);}})[_0x4d13('0x24')](function(){if(_0x512fbc){return db[_0x4d13('0x28')][_0x4d13('0x48')]({'where':{'id':[_0x4fc285[_0x4d13('0x4c')]['to'],_0x4fc285[_0x4d13('0x4c')][_0x4d13('0x4d')]]}});}})[_0x4d13('0x24')](function(){if(_0x512fbc){return _0x512fbc;}})[_0x4d13('0x24')](respondWithResult(_0x454f3a,null))[_0x4d13('0x47')](handleError(_0x454f3a,null));};exports[_0x4d13('0x57')]=function(_0x439161,_0x1cd10d){return db[_0x4d13('0x28')][_0x4d13('0x4b')]()[_0x4d13('0x24')](function(_0x2eb805){if(_0x439161[_0x4d13('0x4c')]['tags']&&_[_0x4d13('0x4f')](_0x439161['body'][_0x4d13('0x50')])){if(_0x439161[_0x4d13('0x4c')][_0x4d13('0x50')][_0x4d13('0x31')]){_0x439161[_0x4d13('0x4c')]['tags']=_0x439161[_0x4d13('0x4c')][_0x4d13('0x50')]['join'](';')+';';}else{_0x439161[_0x4d13('0x4c')][_0x4d13('0x50')]=null;}}else{_0x439161['body'][_0x4d13('0x50')]=null;}return db[_0x4d13('0x28')][_0x4d13('0x57')](_0x439161[_0x4d13('0x4c')],{'fields':_[_0x4d13('0x29')](_0x2eb805),'raw':!![]});})[_0x4d13('0x24')](respondWithResult(_0x1cd10d,0xc9))[_0x4d13('0x47')](handleError(_0x1cd10d,null));};exports[_0x4d13('0x6c')]=function(_0x2760ef,_0x597529){var _0x2bdf68=[];var _0x216e90=0x0;var _0x51c963=0x0;var _0x92e008=0x0;return db[_0x4d13('0x28')][_0x4d13('0x4b')]()[_0x4d13('0x24')](function(_0x208223){return BPromise[_0x4d13('0x6d')](_0x2760ef[_0x4d13('0x4c')],function(_0x32abe9){var _0x24dfb8={'where':{'$or':[]},'defaults':_0x32abe9,'fields':_['keys'](_0x208223),'raw':!![]};if(_0x32abe9[_0x4d13('0x6e')]){for(var _0x2bd423=0x0;_0x2bd423<_0x32abe9[_0x4d13('0x6e')]['length'];_0x2bd423++){var _0x399709={};_0x399709[_0x32abe9[_0x4d13('0x6e')][_0x2bd423]]=_0x32abe9[_0x32abe9[_0x4d13('0x6e')][_0x2bd423]];_0x24dfb8[_0x4d13('0x3a')][_0x4d13('0x6f')][_0x4d13('0x3f')](_0x399709);}_0x24dfb8['where'][_0x4d13('0x70')]=_0x32abe9[_0x4d13('0x70')];}return db['CmContact'][_0x4d13('0x71')](_0x24dfb8)['spread'](function(_0x57e464,_0x5d83fc){if(_0x5d83fc){_0x216e90++;}else{_0x92e008++;}})[_0x4d13('0x47')](function(_0x14118c){console[_0x4d13('0x72')](_0x14118c);_0x51c963++;});});})[_0x4d13('0x24')](function(_0x5a3d12){if(_0x5a3d12){return{'success':_0x216e90,'failure':_0x51c963,'duplicates':_0x92e008};}})[_0x4d13('0x24')](respondWithResult(_0x597529,0xc9))[_0x4d13('0x47')](handleError(_0x597529,null));};exports[_0x4d13('0x73')]=function(_0x370097,_0x5192fc,_0x36ba31){var _0x57678a;return db[_0x4d13('0x28')]['describe']()['then'](function(_0x87d2e3){return db['CmContact'][_0x4d13('0x49')]({'where':{'id':_0x370097['params']['id']},'include':[{'model':db[_0x4d13('0x40')],'as':_0x4d13('0x41'),'attributes':['id',_0x4d13('0x26'),_0x4d13('0x44')],'required':_0x370097['query'][_0x4d13('0x3d')]?!![]:![]}],'attributes':_[_0x4d13('0x29')](_0x87d2e3)});})[_0x4d13('0x24')](function(_0x5e234f){_0x57678a=_0x5e234f['get']({'plain':!![]});var _0x2072a7={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x5e234f&&_0x5e234f['ListId']){if(_0x5e234f[_0x4d13('0x70')]){_0x2072a7[_0x4d13('0x3a')][_0x4d13('0x74')][_0x4d13('0x3f')]({'ListId':{'$ne':_0x5e234f[_0x4d13('0x70')]}});}}return db[_0x4d13('0x75')]['findAll'](_0x2072a7);})['then'](function(_0x4e9870){return _[_0x4d13('0x76')](_0x57678a,_[_0x4d13('0x3b')](_0x4e9870,function(_0x503ee7){return util[_0x4d13('0x77')]('cf_%d',_0x503ee7['id']);}));})[_0x4d13('0x24')](handleEntityNotFound(_0x5192fc,null))[_0x4d13('0x24')](respondWithResult(_0x5192fc,null))[_0x4d13('0x47')](handleError(_0x5192fc,null));};exports[_0x4d13('0x23')]=function(_0x48d44b,_0x58fa63){var _0x51da84;if(_0x48d44b[_0x4d13('0x4c')]['id']){delete _0x48d44b[_0x4d13('0x4c')]['id'];}return db[_0x4d13('0x28')][_0x4d13('0x49')]({'where':{'id':_0x48d44b[_0x4d13('0x4a')]['id']}})['then'](handleEntityNotFound(_0x58fa63,null))[_0x4d13('0x24')](saveUpdates(_0x48d44b[_0x4d13('0x4c')],null))[_0x4d13('0x24')](function(_0x1e3d16){_0x51da84=_0x1e3d16;var _0x1dcee0={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x1e3d16&&_0x1e3d16[_0x4d13('0x70')]){if(_0x1e3d16[_0x4d13('0x70')]){_0x1dcee0[_0x4d13('0x3a')]['$and'][_0x4d13('0x3f')]({'ListId':{'$ne':_0x1e3d16[_0x4d13('0x70')]}});}}return db[_0x4d13('0x75')]['findAll'](_0x1dcee0);})[_0x4d13('0x24')](function(_0x3992e2){if(_0x3992e2){return _[_0x4d13('0x76')](_['pickBy'](_0x48d44b['body'],function(_0x43b7a9,_0x34045a){return _[_0x4d13('0x78')](_0x34045a,_0x4d13('0x79'));}),_[_0x4d13('0x3b')](_0x3992e2,function(_0x109988){return util['format'](_0x4d13('0x7a'),_0x109988['id']);}));}})['then'](function(_0x1853be){if(_0x1853be&&!_[_0x4d13('0x7b')](_0x1853be)){var _0x503d75=squel[_0x4d13('0x23')]()[_0x4d13('0x7c')](_0x4d13('0x7d'))[_0x4d13('0x7e')](_0x1853be)[_0x4d13('0x3a')](_0x4d13('0x7f'),_0x48d44b[_0x4d13('0x4a')]['id'])[_0x4d13('0x80')]();return db[_0x4d13('0x81')]['query'](_0x503d75[_0x4d13('0x82')],{'replacements':_0x503d75[_0x4d13('0x83')]});}})[_0x4d13('0x24')](function(){if(_0x48d44b[_0x4d13('0x4c')][_0x4d13('0x84')]&&_0x51da84){return db[_0x4d13('0x54')][_0x4d13('0x23')]({'phone':_0x48d44b[_0x4d13('0x4c')][_0x4d13('0x84')]},{'where':{'ContactId':_0x51da84['id']}});}})['then'](function(){return _0x51da84;})[_0x4d13('0x24')](respondWithResult(_0x58fa63,null))[_0x4d13('0x47')](handleError(_0x58fa63,null));};exports[_0x4d13('0x85')]=function(_0x34318e,_0x19fc06,_0x5cdd95){var _0x4b7e14={};var _0x1959f5={};var _0x35d060;var _0xcab9a9;return db[_0x4d13('0x28')][_0x4d13('0x86')]({'where':{'id':_0x34318e[_0x4d13('0x4a')]['id']}})[_0x4d13('0x24')](handleEntityNotFound(_0x19fc06,null))[_0x4d13('0x24')](function(_0x5d20f4){if(_0x5d20f4){_0x35d060=_0x5d20f4;_0x1959f5[_0x4d13('0x2e')]=_[_0x4d13('0x29')](db[_0x4d13('0x40')][_0x4d13('0x87')]);_0x1959f5['query']=_['keys'](_0x34318e[_0x4d13('0x2a')]);_0x1959f5[_0x4d13('0x2c')]=_[_0x4d13('0x2d')](_0x1959f5['model'],_0x1959f5[_0x4d13('0x2a')]);_0x4b7e14[_0x4d13('0x30')]=_[_0x4d13('0x2d')](_0x1959f5[_0x4d13('0x2e')],qs['fields'](_0x34318e[_0x4d13('0x2a')]['fields']));_0x4b7e14[_0x4d13('0x30')]=_0x4b7e14[_0x4d13('0x30')]['length']?_0x4b7e14['attributes']:_0x1959f5[_0x4d13('0x2e')];_0x4b7e14[_0x4d13('0x33')]=qs[_0x4d13('0x34')](_0x34318e['query']['sort']);_0x4b7e14[_0x4d13('0x3a')]=qs['filters'](_[_0x4d13('0x35')](_0x34318e[_0x4d13('0x2a')],_0x1959f5['filters']));if(_0x34318e['query']['filter']){_0x4b7e14[_0x4d13('0x3a')]=_[_0x4d13('0x39')](_0x4b7e14['where'],{'$or':_[_0x4d13('0x3b')](_0x4b7e14[_0x4d13('0x30')],function(_0x484e6f){var _0x132edf={};_0x132edf[_0x484e6f]={'$like':'%'+_0x34318e[_0x4d13('0x2a')][_0x4d13('0x3c')]+'%'};return _0x132edf;})});}_0x4b7e14=_['merge']({},_0x4b7e14,_0x34318e[_0x4d13('0x88')]);return _0x35d060[_0x4d13('0x85')](_0x4b7e14);}})[_0x4d13('0x24')](function(_0x2c28e8){if(_0x2c28e8){_0xcab9a9=_0x2c28e8['length'];if(!_0x34318e[_0x4d13('0x2a')][_0x4d13('0x32')](_0x4d13('0x89'))){_0x4b7e14[_0x4d13('0x1e')]=qs[_0x4d13('0x1e')](_0x34318e[_0x4d13('0x2a')][_0x4d13('0x1e')]);_0x4b7e14[_0x4d13('0x1d')]=qs[_0x4d13('0x1d')](_0x34318e['query'][_0x4d13('0x1d')]);}return _0x35d060['getTags'](_0x4b7e14);}})[_0x4d13('0x24')](function(_0xdbc733){if(_0xdbc733){return _0xdbc733?{'count':_0xcab9a9,'rows':_0xdbc733}:null;}})[_0x4d13('0x24')](respondWithResult(_0x19fc06,null))[_0x4d13('0x47')](handleError(_0x19fc06,null));};exports[_0x4d13('0x8a')]=function(_0x419ce7,_0x2eb1cb,_0x46f281){if(_0x419ce7['body']['id']){delete _0x419ce7[_0x4d13('0x4c')]['id'];}return db[_0x4d13('0x28')][_0x4d13('0x86')]({'where':{'id':_0x419ce7[_0x4d13('0x4a')]['id']}})[_0x4d13('0x24')](handleEntityNotFound(_0x2eb1cb,null))[_0x4d13('0x24')](function(_0x1d712e){if(_0x1d712e){return _0x1d712e[_0x4d13('0x8a')](_0x419ce7['body']['ids']||[]);}return null;})['then'](respondWithResult(_0x2eb1cb,null))['catch'](handleError(_0x2eb1cb,null));};exports[_0x4d13('0x8b')]=function(_0x15e4e4,_0x53c3d2,_0x5c709d){var _0x4a3435={'raw':![],'where':{}};var _0x4eaf7b={};var _0x202e42={'count':0x0,'rows':[]};return db['CmContact']['findOne']({'where':{'id':_0x15e4e4['params']['id']}})[_0x4d13('0x24')](handleEntityNotFound(_0x53c3d2,null))[_0x4d13('0x24')](function(_0x70ac20){if(_0x70ac20){_0x4eaf7b[_0x4d13('0x2e')]=_[_0x4d13('0x29')](db['CmHopper'][_0x4d13('0x87')]);_0x4eaf7b[_0x4d13('0x2a')]=_[_0x4d13('0x29')](_0x15e4e4[_0x4d13('0x2a')]);_0x4eaf7b[_0x4d13('0x2c')]=_['intersection'](_0x4eaf7b['model'],_0x4eaf7b[_0x4d13('0x2a')]);_0x4a3435[_0x4d13('0x30')]=_[_0x4d13('0x2d')](_0x4eaf7b[_0x4d13('0x2e')],qs['fields'](_0x15e4e4['query'][_0x4d13('0x2f')]));_0x4a3435[_0x4d13('0x30')]=_0x4a3435[_0x4d13('0x30')][_0x4d13('0x31')]?_0x4a3435[_0x4d13('0x30')]:_0x4eaf7b[_0x4d13('0x2e')];if(!_0x15e4e4[_0x4d13('0x2a')][_0x4d13('0x32')](_0x4d13('0x89'))){_0x4a3435[_0x4d13('0x1e')]=qs[_0x4d13('0x1e')](_0x15e4e4['query'][_0x4d13('0x1e')]);_0x4a3435['offset']=qs[_0x4d13('0x1d')](_0x15e4e4[_0x4d13('0x2a')][_0x4d13('0x1d')]);}_0x4a3435[_0x4d13('0x33')]=qs['sort'](_0x15e4e4[_0x4d13('0x2a')][_0x4d13('0x34')]);_0x4a3435[_0x4d13('0x3a')]=qs[_0x4d13('0x2c')](_['pick'](_0x15e4e4[_0x4d13('0x2a')],_0x4eaf7b[_0x4d13('0x2c')]));_0x4a3435[_0x4d13('0x3a')][_0x4d13('0x8c')]=_0x70ac20['id'];if(_0x15e4e4[_0x4d13('0x2a')][_0x4d13('0x3c')]){_0x4a3435['where']=_['merge'](_0x4a3435[_0x4d13('0x3a')],{'$or':_[_0x4d13('0x3b')](_0x4a3435[_0x4d13('0x30')],function(_0xf4d9b2){var _0xc68c0a={};_0xc68c0a[_0xf4d9b2]={'$like':'%'+_0x15e4e4[_0x4d13('0x2a')][_0x4d13('0x3c')]+'%'};return _0xc68c0a;})});}_0x4a3435=_[_0x4d13('0x39')]({},_0x4a3435,_0x15e4e4[_0x4d13('0x88')]);return db[_0x4d13('0x54')][_0x4d13('0x43')]({'where':_0x4a3435[_0x4d13('0x3a')]})[_0x4d13('0x24')](function(_0xa4e15a){_0x202e42[_0x4d13('0x43')]=_0xa4e15a;if(_0x15e4e4[_0x4d13('0x2a')]['includeAll']){_0x4a3435[_0x4d13('0x3e')]=[{'all':!![]}];}return db[_0x4d13('0x54')][_0x4d13('0x46')](_0x4a3435);})[_0x4d13('0x24')](function(_0x1f9c12){_0x202e42[_0x4d13('0x8d')]=_0x1f9c12;return _0x202e42;});}})['then'](respondWithFilteredResult(_0x53c3d2,_0x4a3435))[_0x4d13('0x47')](handleError(_0x53c3d2,null));};exports['getHopperHistories']=function(_0x132d5e,_0x3bccbb,_0x154390){var _0x57c8e0={'raw':!![],'where':{}};var _0xf0a038={};var _0x5ef160={'count':0x0,'rows':[]};return db[_0x4d13('0x28')][_0x4d13('0x86')]({'where':{'id':_0x132d5e[_0x4d13('0x4a')]['id']}})[_0x4d13('0x24')](handleEntityNotFound(_0x3bccbb,null))[_0x4d13('0x24')](function(_0x4729b1){if(_0x4729b1){_0xf0a038[_0x4d13('0x2e')]=_[_0x4d13('0x29')](db[_0x4d13('0x63')][_0x4d13('0x87')]);_0xf0a038[_0x4d13('0x2a')]=_['keys'](_0x132d5e[_0x4d13('0x2a')]);_0xf0a038['filters']=_[_0x4d13('0x2d')](_0xf0a038['model'],_0xf0a038[_0x4d13('0x2a')]);_0x57c8e0[_0x4d13('0x30')]=_[_0x4d13('0x2d')](_0xf0a038[_0x4d13('0x2e')],qs['fields'](_0x132d5e[_0x4d13('0x2a')][_0x4d13('0x2f')]));_0x57c8e0['attributes']=_0x57c8e0[_0x4d13('0x30')][_0x4d13('0x31')]?_0x57c8e0[_0x4d13('0x30')]:_0xf0a038[_0x4d13('0x2e')];if(!_0x132d5e['query'][_0x4d13('0x32')](_0x4d13('0x89'))){_0x57c8e0['limit']=qs[_0x4d13('0x1e')](_0x132d5e[_0x4d13('0x2a')][_0x4d13('0x1e')]);_0x57c8e0['offset']=qs[_0x4d13('0x1d')](_0x132d5e['query'][_0x4d13('0x1d')]);}_0x57c8e0[_0x4d13('0x33')]=qs['sort'](_0x132d5e[_0x4d13('0x2a')][_0x4d13('0x34')]);_0x57c8e0['where']=qs['filters'](_[_0x4d13('0x35')](_0x132d5e['query'],_0xf0a038[_0x4d13('0x2c')]));_0x57c8e0[_0x4d13('0x3a')][_0x4d13('0x8c')]=_0x4729b1['id'];if(_0x132d5e['query']['filter']){_0x57c8e0[_0x4d13('0x3a')]=_[_0x4d13('0x39')](_0x57c8e0['where'],{'$or':_[_0x4d13('0x3b')](_0x57c8e0[_0x4d13('0x30')],function(_0xc95940){var _0xf4408b={};_0xf4408b[_0xc95940]={'$like':'%'+_0x132d5e[_0x4d13('0x2a')][_0x4d13('0x3c')]+'%'};return _0xf4408b;})});}_0x57c8e0=_[_0x4d13('0x39')]({},_0x57c8e0,_0x132d5e[_0x4d13('0x88')]);return db['CmHopperHistory']['count']({'where':_0x57c8e0[_0x4d13('0x3a')]})['then'](function(_0x21c7f1){_0x5ef160[_0x4d13('0x43')]=_0x21c7f1;if(_0x132d5e[_0x4d13('0x2a')]['includeAll']){_0x57c8e0[_0x4d13('0x3e')]=[{'all':!![]}];}return db[_0x4d13('0x63')][_0x4d13('0x46')](_0x57c8e0);})[_0x4d13('0x24')](function(_0x373b0d){_0x5ef160['rows']=_0x373b0d;return _0x5ef160;});}})[_0x4d13('0x24')](respondWithFilteredResult(_0x3bccbb,_0x57c8e0))[_0x4d13('0x47')](handleError(_0x3bccbb,null));};exports[_0x4d13('0x8e')]=function(_0x5888a7,_0x134d6c,_0x31b2b9){var _0x57695e={'raw':!![],'where':{}};var _0x28d487={};var _0x2f1577={'count':0x0,'rows':[]};return db[_0x4d13('0x28')][_0x4d13('0x86')]({'where':{'id':_0x5888a7[_0x4d13('0x4a')]['id']}})[_0x4d13('0x24')](handleEntityNotFound(_0x134d6c,null))[_0x4d13('0x24')](function(_0x345ea8){if(_0x345ea8){_0x28d487[_0x4d13('0x2e')]=_[_0x4d13('0x29')](db['CmHopperFinal'][_0x4d13('0x87')]);_0x28d487[_0x4d13('0x2a')]=_[_0x4d13('0x29')](_0x5888a7[_0x4d13('0x2a')]);_0x28d487[_0x4d13('0x2c')]=_[_0x4d13('0x2d')](_0x28d487[_0x4d13('0x2e')],_0x28d487[_0x4d13('0x2a')]);_0x57695e['attributes']=_[_0x4d13('0x2d')](_0x28d487[_0x4d13('0x2e')],qs[_0x4d13('0x2f')](_0x5888a7[_0x4d13('0x2a')][_0x4d13('0x2f')]));_0x57695e[_0x4d13('0x30')]=_0x57695e[_0x4d13('0x30')][_0x4d13('0x31')]?_0x57695e['attributes']:_0x28d487['model'];if(!_0x5888a7[_0x4d13('0x2a')]['hasOwnProperty'](_0x4d13('0x89'))){_0x57695e[_0x4d13('0x1e')]=qs['limit'](_0x5888a7[_0x4d13('0x2a')]['limit']);_0x57695e[_0x4d13('0x1d')]=qs[_0x4d13('0x1d')](_0x5888a7[_0x4d13('0x2a')][_0x4d13('0x1d')]);}_0x57695e[_0x4d13('0x33')]=qs[_0x4d13('0x34')](_0x5888a7[_0x4d13('0x2a')][_0x4d13('0x34')]);_0x57695e[_0x4d13('0x3a')]=qs[_0x4d13('0x2c')](_['pick'](_0x5888a7[_0x4d13('0x2a')],_0x28d487['filters']));_0x57695e[_0x4d13('0x3a')][_0x4d13('0x8c')]=_0x345ea8['id'];if(_0x5888a7[_0x4d13('0x2a')][_0x4d13('0x3c')]){_0x57695e[_0x4d13('0x3a')]=_['merge'](_0x57695e['where'],{'$or':_['map'](_0x57695e['attributes'],function(_0x2e8f72){var _0x134878={};_0x134878[_0x2e8f72]={'$like':'%'+_0x5888a7[_0x4d13('0x2a')]['filter']+'%'};return _0x134878;})});}_0x57695e=_['merge']({},_0x57695e,_0x5888a7['options']);return db[_0x4d13('0x62')]['count']({'where':_0x57695e[_0x4d13('0x3a')]})[_0x4d13('0x24')](function(_0x15d1b9){_0x2f1577[_0x4d13('0x43')]=_0x15d1b9;if(_0x5888a7[_0x4d13('0x2a')][_0x4d13('0x8f')]){_0x57695e[_0x4d13('0x3e')]=[{'all':!![]}];}return db['CmHopperFinal'][_0x4d13('0x46')](_0x57695e);})[_0x4d13('0x24')](function(_0x32b536){_0x2f1577[_0x4d13('0x8d')]=_0x32b536;return _0x2f1577;});}})[_0x4d13('0x24')](respondWithFilteredResult(_0x134d6c,_0x57695e))[_0x4d13('0x47')](handleError(_0x134d6c,null));};exports[_0x4d13('0x90')]=function(_0xe490,_0x3911a2,_0x58bcbe){var _0x209781={'raw':!![],'where':{}};var _0x247357={};var _0x4ff50d={'count':0x0,'rows':[]};return db[_0x4d13('0x28')]['findOne']({'where':{'id':_0xe490[_0x4d13('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3911a2,null))[_0x4d13('0x24')](function(_0x5c7f40){if(_0x5c7f40){_0x247357['model']=_[_0x4d13('0x29')](db[_0x4d13('0x6b')][_0x4d13('0x87')]);_0x247357[_0x4d13('0x2a')]=_[_0x4d13('0x29')](_0xe490['query']);_0x247357[_0x4d13('0x2c')]=_['intersection'](_0x247357[_0x4d13('0x2e')],_0x247357[_0x4d13('0x2a')]);_0x209781[_0x4d13('0x30')]=_[_0x4d13('0x2d')](_0x247357[_0x4d13('0x2e')],qs[_0x4d13('0x2f')](_0xe490['query'][_0x4d13('0x2f')]));_0x209781[_0x4d13('0x30')]=_0x209781['attributes']['length']?_0x209781[_0x4d13('0x30')]:_0x247357[_0x4d13('0x2e')];if(!_0xe490[_0x4d13('0x2a')][_0x4d13('0x32')]('nolimit')){_0x209781['limit']=qs['limit'](_0xe490[_0x4d13('0x2a')][_0x4d13('0x1e')]);_0x209781[_0x4d13('0x1d')]=qs['offset'](_0xe490['query']['offset']);}_0x209781[_0x4d13('0x33')]=qs[_0x4d13('0x34')](_0xe490[_0x4d13('0x2a')][_0x4d13('0x34')]);_0x209781['where']=qs[_0x4d13('0x2c')](_[_0x4d13('0x35')](_0xe490[_0x4d13('0x2a')],_0x247357[_0x4d13('0x2c')]));_0x209781[_0x4d13('0x3a')][_0x4d13('0x8c')]=_0x5c7f40['id'];if(_0xe490[_0x4d13('0x2a')][_0x4d13('0x3c')]){_0x209781[_0x4d13('0x3a')]=_[_0x4d13('0x39')](_0x209781['where'],{'$or':_[_0x4d13('0x3b')](_0x209781[_0x4d13('0x30')],function(_0x4e880b){var _0x5eb255={};_0x5eb255[_0x4e880b]={'$like':'%'+_0xe490[_0x4d13('0x2a')][_0x4d13('0x3c')]+'%'};return _0x5eb255;})});}_0x209781=_[_0x4d13('0x39')]({},_0x209781,_0xe490[_0x4d13('0x88')]);return db[_0x4d13('0x6b')][_0x4d13('0x43')]({'where':_0x209781[_0x4d13('0x3a')]})[_0x4d13('0x24')](function(_0x285441){_0x4ff50d[_0x4d13('0x43')]=_0x285441;if(_0xe490[_0x4d13('0x2a')]['includeAll']){_0x209781[_0x4d13('0x3e')]=[{'all':!![]}];}return db[_0x4d13('0x6b')][_0x4d13('0x46')](_0x209781);})['then'](function(_0x2fc822){_0x4ff50d[_0x4d13('0x8d')]=_0x2fc822;return _0x4ff50d;});}})[_0x4d13('0x24')](respondWithFilteredResult(_0x3911a2,_0x209781))[_0x4d13('0x47')](handleError(_0x3911a2,null));};exports[_0x4d13('0x91')]=function(_0x473ca0,_0x229c10,_0xb9e72d){try{if(!_0x473ca0['body'][_0x4d13('0x70')]){throw new Error(_0x4d13('0x92'));}if(!_0x473ca0['body'][_0x4d13('0x93')]){throw new Error(_0x4d13('0x94'));}if(!_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x95')]){throw new Error(_0x4d13('0x96'));}if(!_0x473ca0['body'][_0x4d13('0x97')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x460c05=_0x473ca0['body'][_0x4d13('0x93')][_0x4d13('0x98')](',');var _0x307c77=_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x95')][_0x4d13('0x98')](',');if(!_0x460c05['length']||!_0x307c77[_0x4d13('0x31')]||_0x460c05[_0x4d13('0x31')]!==_0x307c77[_0x4d13('0x31')]){throw new Error(_0x4d13('0x99'));}_0x473ca0[_0x4d13('0x4c')]['fields']=_['zipObject'](_0x460c05,_0x307c77);if(!_0x473ca0['body'][_0x4d13('0x2f')][_0x4d13('0x84')]){throw new Error(_0x4d13('0x9a'));}if(!_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x2f')]['firstName']){throw new Error(_0x4d13('0x9b'));}var _0x165c92=path[_0x4d13('0x51')](config[_0x4d13('0x9c')],_0x4d13('0x9d'),_0x473ca0[_0x4d13('0x9e')][_0x4d13('0x9f')]);fs[_0x4d13('0xa0')](_0x165c92,parseInt(_0x4d13('0xa1'),0x8));var _0x2e2e66=require(_0x4d13('0xa2'))[_0x4d13('0xa3')](path['join'](__dirname,_0x4d13('0xa4')),[_0x165c92,_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x93')],_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x95')],_0x473ca0[_0x4d13('0x4c')]['ListId'],_0x473ca0[_0x4d13('0x4c')][_0x4d13('0xa5')],_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x6e')],_0x473ca0[_0x4d13('0x4c')][_0x4d13('0x97')]]);return _0x229c10[_0x4d13('0x25')](0xc8)[_0x4d13('0x1c')]({'message':_0x4d13('0xa6'),'pid':_0x2e2e66[_0x4d13('0xa7')]});}catch(_0x50417e){return _0x229c10[_0x4d13('0x25')](0x1f4)['send'](_0x50417e);}};exports[_0x4d13('0xa8')]=function(_0x17bedd,_0x218386,_0x2caed2){var _0xbf3941=fs[_0x4d13('0xa9')](_0x17bedd[_0x4d13('0x9e')]['path']);Papa[_0x4d13('0xaa')](_0xbf3941,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x146559){return _0x218386[_0x4d13('0x25')](0xc8)['json']({'file':_0x17bedd['file'],'fields':_0x146559[_0x4d13('0xab')][_0x4d13('0x2f')]});}});};exports['import']=function(_0x397e7e,_0x3991be,_0x260baa){return db[_0x4d13('0xac')][_0x4d13('0x46')]({'raw':!![],'attributes':['id'],'where':{'role':_0x4d13('0xad')}})[_0x4d13('0x24')](function(_0x261606){var _0x312adc=![];if(!_0x397e7e[_0x4d13('0x4c')][_0x4d13('0x70')]){throw new Error(_0x4d13('0x92'));}if(!_0x397e7e[_0x4d13('0x4c')][_0x4d13('0xae')][_0x4d13('0x84')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x397e7e[_0x4d13('0x4c')]['binding']['firstName']){throw new Error(_0x4d13('0x9b'));}if(!_0x397e7e[_0x4d13('0x4c')]['socket_timestamp']){throw new Error(_0x4d13('0xaf'));}var _0xbb3ee1=require(_0x4d13('0xa2'))[_0x4d13('0xa3')](path[_0x4d13('0x51')](__dirname,_0x4d13('0xb0')),[_0x397e7e[_0x4d13('0x4a')]['id'],JSON[_0x4d13('0xb1')](_0x397e7e[_0x4d13('0x4c')]),JSON[_0x4d13('0xb1')](_0x261606)]);_0xbb3ee1['on'](_0x4d13('0xb2'),function(_0x1dc144){_0x312adc=!![];return _0x3991be[_0x4d13('0x25')](0xc8)[_0x4d13('0x1c')]({'message':_0x4d13('0xb3'),'pid':_0xbb3ee1[_0x4d13('0xa7')]});});_0xbb3ee1['on']('exit',function(_0x376813){if(_0x376813&&!_0x312adc){return _0x3991be['status'](0x1f4)[_0x4d13('0x1c')]({'message':'error\x20child\x20process','pid':_0xbb3ee1[_0x4d13('0xa7')]});}});})['catch'](handleError(_0x3991be,null));};
\ No newline at end of file
+var _0x9aed=['index','describe','model','keys','query','dateStart','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','dateEnd','add','day','merge','map','filter','options','tag','include','push','Tags','distinct','CmContact','includeAll','Tag','ThroughTags','color','findAll','rows','catch','find','params','body','get','mergeWith','isArray','length','tags','info','from','CmHopper','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatInteraction','ChatMessage','ChatOfflineMessage','MailInteraction','MailMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','CmHopperHistory','VoiceCallReport','ChatQueueReport','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','bulkCreate','each','duplicates','$or','ListId','findOrCreate','spread','show','$and','cf_%d','pickBy','startsWith','cf_','format','isEmpty','table','setFields','toParam','sequelize','text','phone','findOne','rawAttributes','getTags','setTags','ids','getHoppers','ContactId','getHopperHistories','getHopperFinals','CmHopperFinal','getJscriptySessions','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','split','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','join','root','server/files/tmp','filename','chmodSync','child_process','fork','../../components/import/cm/csv','File\x20uploaded\x20correctly!','pid','upload','createReadStream','file','parse','meta','import','User','agent','binding','../../components/import/cm/csv2','stringify','message','exit','error\x20child\x20process','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./cmContact.socket','end','status','json','count','offset','limit','set','apply','reject','update','then','destroy','sendStatus','error','stack','name'];(function(_0x2cd944,_0x8ba004){var _0x39e44e=function(_0x3d60da){while(--_0x3d60da){_0x2cd944['push'](_0x2cd944['shift']());}};_0x39e44e(++_0x8ba004);}(_0x9aed,0x1e8));var _0xd9ae=function(_0x21f9cc,_0x3880b0){_0x21f9cc=_0x21f9cc-0x0;var _0x5765ad=_0x9aed[_0x21f9cc];return _0x5765ad;};'use strict';var pdf=require(_0xd9ae('0x0'));var emlformat=require(_0xd9ae('0x1'));var rimraf=require(_0xd9ae('0x2'));var zipdir=require(_0xd9ae('0x3'));var jsonpatch=require(_0xd9ae('0x4'));var rp=require(_0xd9ae('0x5'));var moment=require(_0xd9ae('0x6'));var BPromise=require(_0xd9ae('0x7'));var Mustache=require('mustache');var util=require('util');var path=require(_0xd9ae('0x8'));var sox=require('sox');var csv=require(_0xd9ae('0x9'));var ejs=require(_0xd9ae('0xa'));var fs=require('fs');var _=require(_0xd9ae('0xb'));var squel=require(_0xd9ae('0xc'));var crypto=require(_0xd9ae('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xd9ae('0xe'));var toCsv=require(_0xd9ae('0x9'));var querystring=require(_0xd9ae('0xf'));var Papa=require(_0xd9ae('0x10'));var Redis=require(_0xd9ae('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0xd9ae('0x12'))(_0xd9ae('0x13'));var utils=require(_0xd9ae('0x14'));var config=require(_0xd9ae('0x15'));var db=require('../../mysqldb')['db'];config[_0xd9ae('0x16')]=_[_0xd9ae('0x17')](config[_0xd9ae('0x16')],{'host':_0xd9ae('0x18'),'port':0x18eb});var socket=require(_0xd9ae('0x19'))(new Redis(config[_0xd9ae('0x16')]));require(_0xd9ae('0x1a'))['register'](socket);function respondWithStatusCode(_0x1dc09d,_0x554a57){_0x554a57=_0x554a57||0xcc;return function(_0x40a7c0){if(_0x40a7c0){return _0x1dc09d['sendStatus'](_0x554a57);}return _0x1dc09d['status'](_0x554a57)[_0xd9ae('0x1b')]();};}function respondWithResult(_0x353a22,_0x48ab03){_0x48ab03=_0x48ab03||0xc8;return function(_0x217ad2){if(_0x217ad2){return _0x353a22[_0xd9ae('0x1c')](_0x48ab03)[_0xd9ae('0x1d')](_0x217ad2);}};}function respondWithFilteredResult(_0x21acbf,_0x36f9f9){return function(_0x121eac){if(_0x121eac){var _0x35f8b8=_0x121eac[_0xd9ae('0x1e')],_0x48b5bf=_0x36f9f9[_0xd9ae('0x1f')],_0x4c172c=_0x36f9f9['offset']+_0x36f9f9[_0xd9ae('0x20')],_0x2e8dc7;if(_0x4c172c>=_0x35f8b8){_0x4c172c=_0x35f8b8;_0x2e8dc7=0xc8;}else{_0x2e8dc7=0xce;}_0x21acbf[_0xd9ae('0x1c')](_0x2e8dc7);return _0x21acbf[_0xd9ae('0x21')]('Content-Range',_0x48b5bf+'-'+_0x4c172c+'/'+_0x35f8b8)[_0xd9ae('0x1d')](_0x121eac);}return null;};}function patchUpdates(_0x224376){return function(_0x454026){try{jsonpatch[_0xd9ae('0x22')](_0x454026,_0x224376,!![]);}catch(_0x25b2fa){return BPromise[_0xd9ae('0x23')](_0x25b2fa);}return _0x454026['save']();};}function saveUpdates(_0x3f81ef,_0x5eda4f){return function(_0x4fe50a){if(_0x4fe50a){return _0x4fe50a[_0xd9ae('0x24')](_0x3f81ef)[_0xd9ae('0x25')](function(_0x4a838f){return _0x4a838f;});}return null;};}function removeEntity(_0x5730d1,_0x4640e9){return function(_0x3091d5){if(_0x3091d5){return _0x3091d5[_0xd9ae('0x26')]()[_0xd9ae('0x25')](function(){_0x5730d1[_0xd9ae('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x28d9c2,_0x43297e){return function(_0x20bb35){if(!_0x20bb35){_0x28d9c2[_0xd9ae('0x27')](0x194);}return _0x20bb35;};}function handleError(_0x425d9a,_0xe6cdbf){_0xe6cdbf=_0xe6cdbf||0x1f4;return function(_0x2bb4a0){logger[_0xd9ae('0x28')](_0x2bb4a0[_0xd9ae('0x29')]);if(_0x2bb4a0[_0xd9ae('0x2a')]){delete _0x2bb4a0[_0xd9ae('0x2a')];}_0x425d9a['status'](_0xe6cdbf)['send'](_0x2bb4a0);};}exports[_0xd9ae('0x2b')]=function(_0x3f6a2c,_0x15f033){var _0x5e2a37={},_0x57aedf={},_0x334dd4={'count':0x0,'rows':[]};return db['CmContact'][_0xd9ae('0x2c')]()[_0xd9ae('0x25')](function(_0x39d13b){_0x57aedf[_0xd9ae('0x2d')]=_[_0xd9ae('0x2e')](_0x39d13b);var _0x38d723={'dateStart':_0x3f6a2c[_0xd9ae('0x2f')]['dateStart'],'dateEnd':_0x3f6a2c[_0xd9ae('0x2f')]['dateEnd']};delete _0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x30')];delete _0x3f6a2c['query']['dateEnd'];_0x57aedf['query']=_['keys'](_0x3f6a2c['query']);_0x57aedf[_0xd9ae('0x31')]=_[_0xd9ae('0x32')](_0x57aedf['model'],_0x57aedf[_0xd9ae('0x2f')]);_0x5e2a37[_0xd9ae('0x33')]=_['intersection'](_0x57aedf[_0xd9ae('0x2d')],qs[_0xd9ae('0x34')](_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x34')]));_0x5e2a37['attributes']=_0x5e2a37[_0xd9ae('0x33')]['length']?_0x5e2a37[_0xd9ae('0x33')]:_0x57aedf['model'];if(!_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x35')](_0xd9ae('0x36'))){_0x5e2a37[_0xd9ae('0x20')]=qs['limit'](_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x20')]);_0x5e2a37[_0xd9ae('0x1f')]=qs[_0xd9ae('0x1f')](_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x1f')]);}_0x5e2a37[_0xd9ae('0x37')]=qs[_0xd9ae('0x38')](_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x38')]);_0x5e2a37[_0xd9ae('0x39')]=qs[_0xd9ae('0x31')](_[_0xd9ae('0x3a')](_0x3f6a2c[_0xd9ae('0x2f')],_0x57aedf[_0xd9ae('0x31')]));if(_0x38d723[_0xd9ae('0x30')]){if(_0x38d723[_0xd9ae('0x3b')]){_0x38d723[_0xd9ae('0x3b')]=moment(_0x38d723[_0xd9ae('0x3b')])[_0xd9ae('0x3c')](0x1,_0xd9ae('0x3d'));}else{_0x38d723['dateEnd']=moment(_0x38d723[_0xd9ae('0x30')])[_0xd9ae('0x3c')](0x1,_0xd9ae('0x3d'));}_['merge'](_0x5e2a37['where'],{'createdAt':{'$gte':_0x38d723[_0xd9ae('0x30')],'$lte':_0x38d723[_0xd9ae('0x3b')]}});}if(_0x3f6a2c[_0xd9ae('0x2f')]['filter']){_0x5e2a37['where']=_[_0xd9ae('0x3e')](_0x5e2a37[_0xd9ae('0x39')],{'$or':_[_0xd9ae('0x3f')](_0x5e2a37[_0xd9ae('0x33')],function(_0x2b3760){var _0x186e01={};_0x186e01[_0x2b3760]={'$like':'%'+_0x3f6a2c['query'][_0xd9ae('0x40')]+'%'};return _0x186e01;})});}_0x5e2a37=_[_0xd9ae('0x3e')]({},_0x5e2a37,_0x3f6a2c[_0xd9ae('0x41')]);var _0x53559f={'where':_0x5e2a37[_0xd9ae('0x39')]};_0x53559f['include']=[];if(_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x42')]){_0x53559f[_0xd9ae('0x43')][_0xd9ae('0x44')]({'model':db['Tag'],'as':_0xd9ae('0x45'),'attributes':['id'],'where':{'id':_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x42')]},'required':!![]});_0x53559f[_0xd9ae('0x46')]=!![];}return db[_0xd9ae('0x47')][_0xd9ae('0x1e')](_0x53559f)[_0xd9ae('0x25')](function(_0x32f388){_0x334dd4[_0xd9ae('0x1e')]=_0x32f388;if(_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x48')]){_0x5e2a37[_0xd9ae('0x43')]=[{'model':db[_0xd9ae('0x49')],'as':_0xd9ae('0x45'),'attributes':['id','name','color'],'required':_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x42')]?!![]:![]},{'model':db[_0xd9ae('0x49')],'as':_0xd9ae('0x4a'),'attributes':['id',_0xd9ae('0x2a'),_0xd9ae('0x4b')],'through':_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x42')]?{'attributes':[],'where':{'TagId':_0x3f6a2c[_0xd9ae('0x2f')]['tag']||undefined}}:{},'required':_0x3f6a2c[_0xd9ae('0x2f')][_0xd9ae('0x42')]?!![]:![]}];}return db['CmContact'][_0xd9ae('0x4c')](_0x5e2a37);})[_0xd9ae('0x25')](function(_0x3bc174){_0x334dd4[_0xd9ae('0x4d')]=_0x3bc174;return _0x334dd4;})[_0xd9ae('0x25')](respondWithFilteredResult(_0x15f033,_0x5e2a37))[_0xd9ae('0x4e')](handleError(_0x15f033,null));});};exports['destroy']=function(_0x6d3d05,_0x333da4){return db[_0xd9ae('0x47')][_0xd9ae('0x4f')]({'where':{'id':_0x6d3d05[_0xd9ae('0x50')]['id']}})['then'](handleEntityNotFound(_0x333da4,null))['then'](removeEntity(_0x333da4,null))[_0xd9ae('0x4e')](handleError(_0x333da4,null));};exports[_0xd9ae('0x2c')]=function(_0xc2092c,_0x312944){return db['CmContact'][_0xd9ae('0x2c')]()[_0xd9ae('0x25')](respondWithResult(_0x312944,null))[_0xd9ae('0x4e')](handleError(_0x312944,null));};exports[_0xd9ae('0x3e')]=function(_0x2f13c2,_0x2192ef){var _0x1d5fc5;var _0x4ed565;var _0x2ca35e;if(_0x2f13c2['body']['id']){delete _0x2f13c2[_0xd9ae('0x51')]['id'];}return db[_0xd9ae('0x47')][_0xd9ae('0x4c')]({'where':{'id':[_0x2f13c2['body']['to'],_0x2f13c2['body']['from']]}})[_0xd9ae('0x25')](function(_0x46b251){if(_0x46b251){if(_0x46b251['length']!==0x2){return null;}_0x46b251[0x0]=_0x46b251[0x0][_0xd9ae('0x52')]({'plain':!![]});_0x46b251[0x1]=_0x46b251[0x1][_0xd9ae('0x52')]({'plain':!![]});delete _0x46b251[0x0]['id'];delete _0x46b251[0x1]['id'];return _[_0xd9ae('0x53')](_0x46b251[0x0],_0x46b251[0x1],function(_0x36fc56,_0x1e39d8){if(Array[_0xd9ae('0x54')](_0x1e39d8)&&!_0x1e39d8[_0xd9ae('0x55')]){return _0x36fc56;}else if(!_0x1e39d8){return _0x36fc56;}});}})['then'](handleEntityNotFound(_0x2192ef,null))[_0xd9ae('0x25')](function(_0x332822){if(_0x332822){if(_0x332822[_0xd9ae('0x56')]&&_[_0xd9ae('0x54')](_0x332822['tags'])){_0x332822[_0xd9ae('0x56')]=_0x332822[_0xd9ae('0x56')]['join']();}logger[_0xd9ae('0x57')]('[CmContact][merge]\x20to\x20%s\x20from\x20%s',_0x2f13c2[_0xd9ae('0x51')]['to'],_0x2f13c2[_0xd9ae('0x51')][_0xd9ae('0x58')]);return db[_0xd9ae('0x59')]['destroy']({'where':{'ContactId':[_0x2f13c2[_0xd9ae('0x51')]['to'],_0x2f13c2[_0xd9ae('0x51')]['from']]}})[_0xd9ae('0x25')](function(_0x3b1be7){logger[_0xd9ae('0x57')]('[CmContact][merge][destroy][CmHopper],\x20%s',_0x3b1be7);return db['CmHopperBlack'][_0xd9ae('0x26')]({'where':{'ContactId':[_0x2f13c2[_0xd9ae('0x51')]['to'],_0x2f13c2[_0xd9ae('0x51')]['from']]}})[_0xd9ae('0x25')](function(_0x81aa35){logger['info'](_0xd9ae('0x5a'),_0x81aa35);return db[_0xd9ae('0x47')][_0xd9ae('0x5b')](_0x332822);});});}})[_0xd9ae('0x25')](function(_0x1d6f9e){if(_0x1d6f9e){_0x1d5fc5=_0x1d6f9e;_0x4ed565={'ContactId':_0x1d5fc5['id']};_0x2ca35e={'where':{'ContactId':[_0x2f13c2['body']['to'],_0x2f13c2['body'][_0xd9ae('0x58')]]}};return db[_0xd9ae('0x5c')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x5d')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x5e')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x5f')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x60')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db['MailInteraction'][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db['MailMessage'][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db['SmsInteraction'][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db['SmsMessage'][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x61')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db[_0xd9ae('0x62')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x63')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db['OpenchannelMessage']['update'](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db['CmHopperFinal']['update'](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x64')]['update'](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db['ReportAgentPreview'][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x65')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db[_0xd9ae('0x66')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x67')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x68')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db[_0xd9ae('0x69')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db[_0xd9ae('0x6a')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})['then'](function(){if(_0x1d5fc5){return db[_0xd9ae('0x6b')][_0xd9ae('0x24')](_0x4ed565,_0x2ca35e);}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return db[_0xd9ae('0x47')][_0xd9ae('0x26')]({'where':{'id':[_0x2f13c2[_0xd9ae('0x51')]['to'],_0x2f13c2[_0xd9ae('0x51')][_0xd9ae('0x58')]]}});}})[_0xd9ae('0x25')](function(){if(_0x1d5fc5){return _0x1d5fc5;}})['then'](respondWithResult(_0x2192ef,null))[_0xd9ae('0x4e')](handleError(_0x2192ef,null));};exports[_0xd9ae('0x5b')]=function(_0x2b9cd3,_0x2f4592){return db[_0xd9ae('0x47')][_0xd9ae('0x2c')]()['then'](function(_0x562e65){if(_0x2b9cd3['body'][_0xd9ae('0x56')]&&_[_0xd9ae('0x54')](_0x2b9cd3[_0xd9ae('0x51')][_0xd9ae('0x56')])){if(_0x2b9cd3[_0xd9ae('0x51')]['tags'][_0xd9ae('0x55')]){_0x2b9cd3[_0xd9ae('0x51')]['tags']=_0x2b9cd3[_0xd9ae('0x51')]['tags']['join'](';')+';';}else{_0x2b9cd3['body'][_0xd9ae('0x56')]=null;}}else{_0x2b9cd3['body']['tags']=null;}return db[_0xd9ae('0x47')]['create'](_0x2b9cd3['body'],{'fields':_['keys'](_0x562e65),'raw':!![]});})['then'](respondWithResult(_0x2f4592,0xc9))[_0xd9ae('0x4e')](handleError(_0x2f4592,null));};exports[_0xd9ae('0x6c')]=function(_0x27c7e1,_0x2e8b20){var _0xcfb90=[];var _0x2e4ead=0x0;var _0x2bb32c=0x0;var _0x4fa3cb=0x0;return db[_0xd9ae('0x47')][_0xd9ae('0x2c')]()['then'](function(_0x5e6761){return BPromise[_0xd9ae('0x6d')](_0x27c7e1[_0xd9ae('0x51')],function(_0x5a398d){var _0x239e2c={'where':{'$or':[]},'defaults':_0x5a398d,'fields':_[_0xd9ae('0x2e')](_0x5e6761),'raw':!![]};if(_0x5a398d[_0xd9ae('0x6e')]){for(var _0x5e88d6=0x0;_0x5e88d6<_0x5a398d['duplicates'][_0xd9ae('0x55')];_0x5e88d6++){var _0x9284e={};_0x9284e[_0x5a398d[_0xd9ae('0x6e')][_0x5e88d6]]=_0x5a398d[_0x5a398d['duplicates'][_0x5e88d6]];_0x239e2c[_0xd9ae('0x39')][_0xd9ae('0x6f')]['push'](_0x9284e);}_0x239e2c[_0xd9ae('0x39')][_0xd9ae('0x70')]=_0x5a398d[_0xd9ae('0x70')];}return db[_0xd9ae('0x47')][_0xd9ae('0x71')](_0x239e2c)[_0xd9ae('0x72')](function(_0x254cc3,_0x457beb){if(_0x457beb){_0x2e4ead++;}else{_0x4fa3cb++;}})['catch'](function(_0x3e29ab){console[_0xd9ae('0x28')](_0x3e29ab);_0x2bb32c++;});});})['then'](function(_0x40bf7f){if(_0x40bf7f){return{'success':_0x2e4ead,'failure':_0x2bb32c,'duplicates':_0x4fa3cb};}})['then'](respondWithResult(_0x2e8b20,0xc9))[_0xd9ae('0x4e')](handleError(_0x2e8b20,null));};exports[_0xd9ae('0x73')]=function(_0x503e0f,_0x454309,_0x1d8ccc){var _0x13d809;return db[_0xd9ae('0x47')]['describe']()[_0xd9ae('0x25')](function(_0x17e05b){return db['CmContact']['find']({'where':{'id':_0x503e0f[_0xd9ae('0x50')]['id']},'include':[{'model':db[_0xd9ae('0x49')],'as':_0xd9ae('0x45'),'attributes':['id',_0xd9ae('0x2a'),_0xd9ae('0x4b')],'required':_0x503e0f[_0xd9ae('0x2f')][_0xd9ae('0x42')]?!![]:![]}],'attributes':_['keys'](_0x17e05b)});})['then'](function(_0x3b8f73){_0x13d809=_0x3b8f73[_0xd9ae('0x52')]({'plain':!![]});var _0x2bc6dd={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x3b8f73&&_0x3b8f73[_0xd9ae('0x70')]){if(_0x3b8f73[_0xd9ae('0x70')]){_0x2bc6dd['where'][_0xd9ae('0x74')]['push']({'ListId':{'$ne':_0x3b8f73['ListId']}});}}return db['CmCustomField'][_0xd9ae('0x4c')](_0x2bc6dd);})[_0xd9ae('0x25')](function(_0x3fbc84){return _['omit'](_0x13d809,_[_0xd9ae('0x3f')](_0x3fbc84,function(_0x1734bd){return util['format'](_0xd9ae('0x75'),_0x1734bd['id']);}));})[_0xd9ae('0x25')](handleEntityNotFound(_0x454309,null))[_0xd9ae('0x25')](respondWithResult(_0x454309,null))[_0xd9ae('0x4e')](handleError(_0x454309,null));};exports[_0xd9ae('0x24')]=function(_0xa5029e,_0x1eb4f6){var _0x53275f;if(_0xa5029e['body']['id']){delete _0xa5029e[_0xd9ae('0x51')]['id'];}return db[_0xd9ae('0x47')][_0xd9ae('0x4f')]({'where':{'id':_0xa5029e['params']['id']}})[_0xd9ae('0x25')](handleEntityNotFound(_0x1eb4f6,null))[_0xd9ae('0x25')](saveUpdates(_0xa5029e[_0xd9ae('0x51')],null))['then'](function(_0x2e76f5){_0x53275f=_0x2e76f5;var _0x2aff01={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x2e76f5&&_0x2e76f5['ListId']){if(_0x2e76f5['ListId']){_0x2aff01[_0xd9ae('0x39')][_0xd9ae('0x74')][_0xd9ae('0x44')]({'ListId':{'$ne':_0x2e76f5[_0xd9ae('0x70')]}});}}return db['CmCustomField'][_0xd9ae('0x4c')](_0x2aff01);})[_0xd9ae('0x25')](function(_0x1d6e13){if(_0x1d6e13){return _['omit'](_[_0xd9ae('0x76')](_0xa5029e['body'],function(_0x57975c,_0x5ee5ff){return _[_0xd9ae('0x77')](_0x5ee5ff,_0xd9ae('0x78'));}),_['map'](_0x1d6e13,function(_0x1c4ef8){return util[_0xd9ae('0x79')]('cf_%d',_0x1c4ef8['id']);}));}})[_0xd9ae('0x25')](function(_0x52a861){if(_0x52a861&&!_[_0xd9ae('0x7a')](_0x52a861)){var _0x5e0407=squel[_0xd9ae('0x24')]()[_0xd9ae('0x7b')]('cm_contacts')[_0xd9ae('0x7c')](_0x52a861)[_0xd9ae('0x39')]('id\x20=\x20?',_0xa5029e[_0xd9ae('0x50')]['id'])[_0xd9ae('0x7d')]();return db[_0xd9ae('0x7e')]['query'](_0x5e0407[_0xd9ae('0x7f')],{'replacements':_0x5e0407['values']});}})[_0xd9ae('0x25')](function(){if(_0xa5029e[_0xd9ae('0x51')][_0xd9ae('0x80')]&&_0x53275f){return db[_0xd9ae('0x59')][_0xd9ae('0x24')]({'phone':_0xa5029e[_0xd9ae('0x51')]['phone']},{'where':{'ContactId':_0x53275f['id']}});}})[_0xd9ae('0x25')](function(){return _0x53275f;})['then'](respondWithResult(_0x1eb4f6,null))['catch'](handleError(_0x1eb4f6,null));};exports['getTags']=function(_0x116a53,_0x184b0c,_0x1adb22){var _0x50fbf0={};var _0x501891={};var _0x4a6289;var _0x97a4ac;return db[_0xd9ae('0x47')][_0xd9ae('0x81')]({'where':{'id':_0x116a53[_0xd9ae('0x50')]['id']}})[_0xd9ae('0x25')](handleEntityNotFound(_0x184b0c,null))[_0xd9ae('0x25')](function(_0x439a81){if(_0x439a81){_0x4a6289=_0x439a81;_0x501891[_0xd9ae('0x2d')]=_[_0xd9ae('0x2e')](db['Tag'][_0xd9ae('0x82')]);_0x501891[_0xd9ae('0x2f')]=_[_0xd9ae('0x2e')](_0x116a53['query']);_0x501891[_0xd9ae('0x31')]=_['intersection'](_0x501891['model'],_0x501891[_0xd9ae('0x2f')]);_0x50fbf0['attributes']=_[_0xd9ae('0x32')](_0x501891[_0xd9ae('0x2d')],qs['fields'](_0x116a53[_0xd9ae('0x2f')][_0xd9ae('0x34')]));_0x50fbf0[_0xd9ae('0x33')]=_0x50fbf0[_0xd9ae('0x33')][_0xd9ae('0x55')]?_0x50fbf0[_0xd9ae('0x33')]:_0x501891['model'];_0x50fbf0['order']=qs['sort'](_0x116a53[_0xd9ae('0x2f')][_0xd9ae('0x38')]);_0x50fbf0['where']=qs[_0xd9ae('0x31')](_[_0xd9ae('0x3a')](_0x116a53[_0xd9ae('0x2f')],_0x501891[_0xd9ae('0x31')]));if(_0x116a53[_0xd9ae('0x2f')][_0xd9ae('0x40')]){_0x50fbf0[_0xd9ae('0x39')]=_[_0xd9ae('0x3e')](_0x50fbf0['where'],{'$or':_['map'](_0x50fbf0[_0xd9ae('0x33')],function(_0x1d84f0){var _0x5658c7={};_0x5658c7[_0x1d84f0]={'$like':'%'+_0x116a53['query'][_0xd9ae('0x40')]+'%'};return _0x5658c7;})});}_0x50fbf0=_[_0xd9ae('0x3e')]({},_0x50fbf0,_0x116a53['options']);return _0x4a6289[_0xd9ae('0x83')](_0x50fbf0);}})['then'](function(_0x5f2c1f){if(_0x5f2c1f){_0x97a4ac=_0x5f2c1f['length'];if(!_0x116a53['query']['hasOwnProperty'](_0xd9ae('0x36'))){_0x50fbf0[_0xd9ae('0x20')]=qs[_0xd9ae('0x20')](_0x116a53[_0xd9ae('0x2f')][_0xd9ae('0x20')]);_0x50fbf0['offset']=qs['offset'](_0x116a53[_0xd9ae('0x2f')][_0xd9ae('0x1f')]);}return _0x4a6289['getTags'](_0x50fbf0);}})['then'](function(_0x4fc468){if(_0x4fc468){return _0x4fc468?{'count':_0x97a4ac,'rows':_0x4fc468}:null;}})[_0xd9ae('0x25')](respondWithResult(_0x184b0c,null))['catch'](handleError(_0x184b0c,null));};exports[_0xd9ae('0x84')]=function(_0x58e751,_0x17613d,_0x4ba972){if(_0x58e751[_0xd9ae('0x51')]['id']){delete _0x58e751[_0xd9ae('0x51')]['id'];}return db[_0xd9ae('0x47')][_0xd9ae('0x81')]({'where':{'id':_0x58e751[_0xd9ae('0x50')]['id']}})['then'](handleEntityNotFound(_0x17613d,null))[_0xd9ae('0x25')](function(_0x2c99c3){if(_0x2c99c3){return _0x2c99c3['setTags'](_0x58e751['body'][_0xd9ae('0x85')]||[]);}return null;})[_0xd9ae('0x25')](respondWithResult(_0x17613d,null))[_0xd9ae('0x4e')](handleError(_0x17613d,null));};exports[_0xd9ae('0x86')]=function(_0x123e3e,_0x1ec5cb,_0x17a25e){var _0x7ab6e2={'raw':![],'where':{}};var _0x10f1a6={};var _0x5e3608={'count':0x0,'rows':[]};return db[_0xd9ae('0x47')]['findOne']({'where':{'id':_0x123e3e['params']['id']}})[_0xd9ae('0x25')](handleEntityNotFound(_0x1ec5cb,null))[_0xd9ae('0x25')](function(_0xa9a21a){if(_0xa9a21a){_0x10f1a6[_0xd9ae('0x2d')]=_[_0xd9ae('0x2e')](db[_0xd9ae('0x59')][_0xd9ae('0x82')]);_0x10f1a6[_0xd9ae('0x2f')]=_['keys'](_0x123e3e[_0xd9ae('0x2f')]);_0x10f1a6[_0xd9ae('0x31')]=_[_0xd9ae('0x32')](_0x10f1a6['model'],_0x10f1a6['query']);_0x7ab6e2[_0xd9ae('0x33')]=_[_0xd9ae('0x32')](_0x10f1a6[_0xd9ae('0x2d')],qs[_0xd9ae('0x34')](_0x123e3e[_0xd9ae('0x2f')][_0xd9ae('0x34')]));_0x7ab6e2['attributes']=_0x7ab6e2['attributes'][_0xd9ae('0x55')]?_0x7ab6e2[_0xd9ae('0x33')]:_0x10f1a6[_0xd9ae('0x2d')];if(!_0x123e3e[_0xd9ae('0x2f')]['hasOwnProperty']('nolimit')){_0x7ab6e2[_0xd9ae('0x20')]=qs['limit'](_0x123e3e[_0xd9ae('0x2f')][_0xd9ae('0x20')]);_0x7ab6e2[_0xd9ae('0x1f')]=qs[_0xd9ae('0x1f')](_0x123e3e['query'][_0xd9ae('0x1f')]);}_0x7ab6e2[_0xd9ae('0x37')]=qs[_0xd9ae('0x38')](_0x123e3e['query'][_0xd9ae('0x38')]);_0x7ab6e2[_0xd9ae('0x39')]=qs[_0xd9ae('0x31')](_[_0xd9ae('0x3a')](_0x123e3e[_0xd9ae('0x2f')],_0x10f1a6['filters']));_0x7ab6e2[_0xd9ae('0x39')][_0xd9ae('0x87')]=_0xa9a21a['id'];if(_0x123e3e['query'][_0xd9ae('0x40')]){_0x7ab6e2[_0xd9ae('0x39')]=_[_0xd9ae('0x3e')](_0x7ab6e2[_0xd9ae('0x39')],{'$or':_[_0xd9ae('0x3f')](_0x7ab6e2['attributes'],function(_0x5596d5){var _0x545f80={};_0x545f80[_0x5596d5]={'$like':'%'+_0x123e3e[_0xd9ae('0x2f')]['filter']+'%'};return _0x545f80;})});}_0x7ab6e2=_['merge']({},_0x7ab6e2,_0x123e3e[_0xd9ae('0x41')]);return db[_0xd9ae('0x59')][_0xd9ae('0x1e')]({'where':_0x7ab6e2[_0xd9ae('0x39')]})[_0xd9ae('0x25')](function(_0x27abb7){_0x5e3608[_0xd9ae('0x1e')]=_0x27abb7;if(_0x123e3e[_0xd9ae('0x2f')][_0xd9ae('0x48')]){_0x7ab6e2['include']=[{'all':!![]}];}return db[_0xd9ae('0x59')][_0xd9ae('0x4c')](_0x7ab6e2);})[_0xd9ae('0x25')](function(_0x51f6d8){_0x5e3608['rows']=_0x51f6d8;return _0x5e3608;});}})[_0xd9ae('0x25')](respondWithFilteredResult(_0x1ec5cb,_0x7ab6e2))[_0xd9ae('0x4e')](handleError(_0x1ec5cb,null));};exports[_0xd9ae('0x88')]=function(_0x10eb55,_0x48e232,_0x183b34){var _0x563bec={'raw':!![],'where':{}};var _0x4dc5d7={};var _0x17ba72={'count':0x0,'rows':[]};return db['CmContact'][_0xd9ae('0x81')]({'where':{'id':_0x10eb55[_0xd9ae('0x50')]['id']}})[_0xd9ae('0x25')](handleEntityNotFound(_0x48e232,null))['then'](function(_0x45835a){if(_0x45835a){_0x4dc5d7['model']=_[_0xd9ae('0x2e')](db[_0xd9ae('0x64')][_0xd9ae('0x82')]);_0x4dc5d7['query']=_[_0xd9ae('0x2e')](_0x10eb55[_0xd9ae('0x2f')]);_0x4dc5d7[_0xd9ae('0x31')]=_[_0xd9ae('0x32')](_0x4dc5d7['model'],_0x4dc5d7[_0xd9ae('0x2f')]);_0x563bec[_0xd9ae('0x33')]=_['intersection'](_0x4dc5d7[_0xd9ae('0x2d')],qs[_0xd9ae('0x34')](_0x10eb55[_0xd9ae('0x2f')][_0xd9ae('0x34')]));_0x563bec['attributes']=_0x563bec[_0xd9ae('0x33')][_0xd9ae('0x55')]?_0x563bec[_0xd9ae('0x33')]:_0x4dc5d7[_0xd9ae('0x2d')];if(!_0x10eb55[_0xd9ae('0x2f')][_0xd9ae('0x35')](_0xd9ae('0x36'))){_0x563bec[_0xd9ae('0x20')]=qs[_0xd9ae('0x20')](_0x10eb55[_0xd9ae('0x2f')][_0xd9ae('0x20')]);_0x563bec[_0xd9ae('0x1f')]=qs['offset'](_0x10eb55[_0xd9ae('0x2f')][_0xd9ae('0x1f')]);}_0x563bec[_0xd9ae('0x37')]=qs[_0xd9ae('0x38')](_0x10eb55['query'][_0xd9ae('0x38')]);_0x563bec[_0xd9ae('0x39')]=qs['filters'](_[_0xd9ae('0x3a')](_0x10eb55[_0xd9ae('0x2f')],_0x4dc5d7[_0xd9ae('0x31')]));_0x563bec['where'][_0xd9ae('0x87')]=_0x45835a['id'];if(_0x10eb55[_0xd9ae('0x2f')][_0xd9ae('0x40')]){_0x563bec[_0xd9ae('0x39')]=_[_0xd9ae('0x3e')](_0x563bec[_0xd9ae('0x39')],{'$or':_[_0xd9ae('0x3f')](_0x563bec[_0xd9ae('0x33')],function(_0x4f61dc){var _0xae27d3={};_0xae27d3[_0x4f61dc]={'$like':'%'+_0x10eb55[_0xd9ae('0x2f')]['filter']+'%'};return _0xae27d3;})});}_0x563bec=_[_0xd9ae('0x3e')]({},_0x563bec,_0x10eb55[_0xd9ae('0x41')]);return db['CmHopperHistory']['count']({'where':_0x563bec[_0xd9ae('0x39')]})['then'](function(_0x47c6fe){_0x17ba72['count']=_0x47c6fe;if(_0x10eb55[_0xd9ae('0x2f')][_0xd9ae('0x48')]){_0x563bec[_0xd9ae('0x43')]=[{'all':!![]}];}return db[_0xd9ae('0x64')][_0xd9ae('0x4c')](_0x563bec);})[_0xd9ae('0x25')](function(_0x3ce54d){_0x17ba72[_0xd9ae('0x4d')]=_0x3ce54d;return _0x17ba72;});}})[_0xd9ae('0x25')](respondWithFilteredResult(_0x48e232,_0x563bec))[_0xd9ae('0x4e')](handleError(_0x48e232,null));};exports[_0xd9ae('0x89')]=function(_0x202bf2,_0x5a2ac7,_0x290a19){var _0xa04d3={'raw':!![],'where':{}};var _0x2f40c3={};var _0x532c6c={'count':0x0,'rows':[]};return db[_0xd9ae('0x47')][_0xd9ae('0x81')]({'where':{'id':_0x202bf2[_0xd9ae('0x50')]['id']}})[_0xd9ae('0x25')](handleEntityNotFound(_0x5a2ac7,null))[_0xd9ae('0x25')](function(_0x4caee1){if(_0x4caee1){_0x2f40c3[_0xd9ae('0x2d')]=_['keys'](db[_0xd9ae('0x8a')][_0xd9ae('0x82')]);_0x2f40c3['query']=_['keys'](_0x202bf2[_0xd9ae('0x2f')]);_0x2f40c3[_0xd9ae('0x31')]=_[_0xd9ae('0x32')](_0x2f40c3[_0xd9ae('0x2d')],_0x2f40c3[_0xd9ae('0x2f')]);_0xa04d3[_0xd9ae('0x33')]=_['intersection'](_0x2f40c3[_0xd9ae('0x2d')],qs[_0xd9ae('0x34')](_0x202bf2[_0xd9ae('0x2f')]['fields']));_0xa04d3[_0xd9ae('0x33')]=_0xa04d3[_0xd9ae('0x33')][_0xd9ae('0x55')]?_0xa04d3[_0xd9ae('0x33')]:_0x2f40c3[_0xd9ae('0x2d')];if(!_0x202bf2[_0xd9ae('0x2f')][_0xd9ae('0x35')]('nolimit')){_0xa04d3[_0xd9ae('0x20')]=qs[_0xd9ae('0x20')](_0x202bf2[_0xd9ae('0x2f')][_0xd9ae('0x20')]);_0xa04d3[_0xd9ae('0x1f')]=qs[_0xd9ae('0x1f')](_0x202bf2[_0xd9ae('0x2f')][_0xd9ae('0x1f')]);}_0xa04d3[_0xd9ae('0x37')]=qs[_0xd9ae('0x38')](_0x202bf2[_0xd9ae('0x2f')][_0xd9ae('0x38')]);_0xa04d3['where']=qs['filters'](_[_0xd9ae('0x3a')](_0x202bf2[_0xd9ae('0x2f')],_0x2f40c3[_0xd9ae('0x31')]));_0xa04d3[_0xd9ae('0x39')]['ContactId']=_0x4caee1['id'];if(_0x202bf2['query'][_0xd9ae('0x40')]){_0xa04d3[_0xd9ae('0x39')]=_['merge'](_0xa04d3['where'],{'$or':_[_0xd9ae('0x3f')](_0xa04d3[_0xd9ae('0x33')],function(_0x3755a7){var _0x371d78={};_0x371d78[_0x3755a7]={'$like':'%'+_0x202bf2[_0xd9ae('0x2f')]['filter']+'%'};return _0x371d78;})});}_0xa04d3=_['merge']({},_0xa04d3,_0x202bf2[_0xd9ae('0x41')]);return db[_0xd9ae('0x8a')]['count']({'where':_0xa04d3[_0xd9ae('0x39')]})[_0xd9ae('0x25')](function(_0x566125){_0x532c6c[_0xd9ae('0x1e')]=_0x566125;if(_0x202bf2[_0xd9ae('0x2f')][_0xd9ae('0x48')]){_0xa04d3['include']=[{'all':!![]}];}return db[_0xd9ae('0x8a')][_0xd9ae('0x4c')](_0xa04d3);})[_0xd9ae('0x25')](function(_0xd100eb){_0x532c6c[_0xd9ae('0x4d')]=_0xd100eb;return _0x532c6c;});}})['then'](respondWithFilteredResult(_0x5a2ac7,_0xa04d3))[_0xd9ae('0x4e')](handleError(_0x5a2ac7,null));};exports[_0xd9ae('0x8b')]=function(_0x4ce55b,_0x531755,_0x43fd44){var _0x4cb898={'raw':!![],'where':{}};var _0x35b3c7={};var _0x1e30dd={'count':0x0,'rows':[]};return db['CmContact']['findOne']({'where':{'id':_0x4ce55b['params']['id']}})['then'](handleEntityNotFound(_0x531755,null))[_0xd9ae('0x25')](function(_0x1cb981){if(_0x1cb981){_0x35b3c7['model']=_[_0xd9ae('0x2e')](db[_0xd9ae('0x6b')][_0xd9ae('0x82')]);_0x35b3c7[_0xd9ae('0x2f')]=_[_0xd9ae('0x2e')](_0x4ce55b[_0xd9ae('0x2f')]);_0x35b3c7['filters']=_['intersection'](_0x35b3c7[_0xd9ae('0x2d')],_0x35b3c7['query']);_0x4cb898['attributes']=_['intersection'](_0x35b3c7['model'],qs[_0xd9ae('0x34')](_0x4ce55b['query'][_0xd9ae('0x34')]));_0x4cb898[_0xd9ae('0x33')]=_0x4cb898[_0xd9ae('0x33')]['length']?_0x4cb898[_0xd9ae('0x33')]:_0x35b3c7[_0xd9ae('0x2d')];if(!_0x4ce55b[_0xd9ae('0x2f')][_0xd9ae('0x35')](_0xd9ae('0x36'))){_0x4cb898['limit']=qs[_0xd9ae('0x20')](_0x4ce55b[_0xd9ae('0x2f')]['limit']);_0x4cb898[_0xd9ae('0x1f')]=qs['offset'](_0x4ce55b[_0xd9ae('0x2f')][_0xd9ae('0x1f')]);}_0x4cb898[_0xd9ae('0x37')]=qs[_0xd9ae('0x38')](_0x4ce55b[_0xd9ae('0x2f')]['sort']);_0x4cb898[_0xd9ae('0x39')]=qs['filters'](_[_0xd9ae('0x3a')](_0x4ce55b[_0xd9ae('0x2f')],_0x35b3c7[_0xd9ae('0x31')]));_0x4cb898[_0xd9ae('0x39')][_0xd9ae('0x87')]=_0x1cb981['id'];if(_0x4ce55b[_0xd9ae('0x2f')][_0xd9ae('0x40')]){_0x4cb898['where']=_[_0xd9ae('0x3e')](_0x4cb898[_0xd9ae('0x39')],{'$or':_[_0xd9ae('0x3f')](_0x4cb898[_0xd9ae('0x33')],function(_0x50aec9){var _0x288319={};_0x288319[_0x50aec9]={'$like':'%'+_0x4ce55b[_0xd9ae('0x2f')][_0xd9ae('0x40')]+'%'};return _0x288319;})});}_0x4cb898=_[_0xd9ae('0x3e')]({},_0x4cb898,_0x4ce55b[_0xd9ae('0x41')]);return db[_0xd9ae('0x6b')][_0xd9ae('0x1e')]({'where':_0x4cb898['where']})[_0xd9ae('0x25')](function(_0x269cad){_0x1e30dd['count']=_0x269cad;if(_0x4ce55b['query'][_0xd9ae('0x48')]){_0x4cb898[_0xd9ae('0x43')]=[{'all':!![]}];}return db[_0xd9ae('0x6b')][_0xd9ae('0x4c')](_0x4cb898);})[_0xd9ae('0x25')](function(_0x439b35){_0x1e30dd[_0xd9ae('0x4d')]=_0x439b35;return _0x1e30dd;});}})['then'](respondWithFilteredResult(_0x531755,_0x4cb898))[_0xd9ae('0x4e')](handleError(_0x531755,null));};exports['uploadCsv']=function(_0x5afbad,_0x3a006a,_0x53a0ed){try{if(!_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x70')]){throw new Error(_0xd9ae('0x8c'));}if(!_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x8d')]){throw new Error(_0xd9ae('0x8e'));}if(!_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x8f')]){throw new Error(_0xd9ae('0x90'));}if(!_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x91')]){throw new Error(_0xd9ae('0x92'));}var _0x2b415a=_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x8d')][_0xd9ae('0x93')](',');var _0x1d61ee=_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x8f')][_0xd9ae('0x93')](',');if(!_0x2b415a[_0xd9ae('0x55')]||!_0x1d61ee[_0xd9ae('0x55')]||_0x2b415a[_0xd9ae('0x55')]!==_0x1d61ee['length']){throw new Error(_0xd9ae('0x94'));}_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x34')]=_[_0xd9ae('0x95')](_0x2b415a,_0x1d61ee);if(!_0x5afbad[_0xd9ae('0x51')]['fields'][_0xd9ae('0x80')]){throw new Error(_0xd9ae('0x96'));}if(!_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x34')][_0xd9ae('0x97')]){throw new Error(_0xd9ae('0x98'));}var _0x28cf1=path[_0xd9ae('0x99')](config[_0xd9ae('0x9a')],_0xd9ae('0x9b'),_0x5afbad['file'][_0xd9ae('0x9c')]);fs[_0xd9ae('0x9d')](_0x28cf1,parseInt('0777',0x8));var _0x502115=require(_0xd9ae('0x9e'))[_0xd9ae('0x9f')](path['join'](__dirname,_0xd9ae('0xa0')),[_0x28cf1,_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x8d')],_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x8f')],_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x70')],_0x5afbad[_0xd9ae('0x51')]['CompanyId'],_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x6e')],_0x5afbad[_0xd9ae('0x51')][_0xd9ae('0x91')]]);return _0x3a006a[_0xd9ae('0x1c')](0xc8)['json']({'message':_0xd9ae('0xa1'),'pid':_0x502115[_0xd9ae('0xa2')]});}catch(_0x2f5de8){return _0x3a006a['status'](0x1f4)['send'](_0x2f5de8);}};exports[_0xd9ae('0xa3')]=function(_0x1fb8e3,_0x4ee036,_0x3f2dbd){var _0x3c1040=fs[_0xd9ae('0xa4')](_0x1fb8e3[_0xd9ae('0xa5')]['path']);Papa[_0xd9ae('0xa6')](_0x3c1040,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x3995a8){return _0x4ee036[_0xd9ae('0x1c')](0xc8)[_0xd9ae('0x1d')]({'file':_0x1fb8e3['file'],'fields':_0x3995a8[_0xd9ae('0xa7')][_0xd9ae('0x34')]});}});};exports[_0xd9ae('0xa8')]=function(_0xcb44fe,_0x4d3bd0,_0x3eb492){return db[_0xd9ae('0xa9')][_0xd9ae('0x4c')]({'raw':!![],'attributes':['id'],'where':{'role':_0xd9ae('0xaa')}})['then'](function(_0x42aea5){var _0x438d84=![];if(!_0xcb44fe[_0xd9ae('0x51')][_0xd9ae('0x70')]){throw new Error(_0xd9ae('0x8c'));}if(!_0xcb44fe[_0xd9ae('0x51')][_0xd9ae('0xab')][_0xd9ae('0x80')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0xcb44fe[_0xd9ae('0x51')][_0xd9ae('0xab')][_0xd9ae('0x97')]){throw new Error('No\x20firstName\x20column\x20specified');}if(!_0xcb44fe[_0xd9ae('0x51')][_0xd9ae('0x91')]){throw new Error(_0xd9ae('0x92'));}var _0x44d425=require(_0xd9ae('0x9e'))[_0xd9ae('0x9f')](path[_0xd9ae('0x99')](__dirname,_0xd9ae('0xac')),[_0xcb44fe['params']['id'],JSON[_0xd9ae('0xad')](_0xcb44fe[_0xd9ae('0x51')]),JSON[_0xd9ae('0xad')](_0x42aea5)]);_0x44d425['on'](_0xd9ae('0xae'),function(_0x16611f){_0x438d84=!![];return _0x4d3bd0['status'](0xc8)['json']({'message':'start\x20child\x20process\x20correctly!','pid':_0x44d425[_0xd9ae('0xa2')]});});_0x44d425['on'](_0xd9ae('0xaf'),function(_0x4fd54d){if(_0x4fd54d&&!_0x438d84){return _0x4d3bd0['status'](0x1f4)[_0xd9ae('0x1d')]({'message':_0xd9ae('0xb0'),'pid':_0x44d425[_0xd9ae('0xa2')]});}});})['catch'](handleError(_0x4d3bd0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2a5=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','CmContact','setMaxListeners','save','update','remove'];(function(_0x1bc4cc,_0x4e47c2){var _0x7c6009=function(_0x55dbed){while(--_0x55dbed){_0x1bc4cc['push'](_0x1bc4cc['shift']());}};_0x7c6009(++_0x4e47c2);}(_0xf2a5,0xa9));var _0x5f2a=function(_0x57f3e9,_0x2a823c){_0x57f3e9=_0x57f3e9-0x0;var _0x15bd17=_0xf2a5[_0x57f3e9];return _0x15bd17;};'use strict';var EventEmitter=require(_0x5f2a('0x0'));var CmContact=require(_0x5f2a('0x1'))['db'][_0x5f2a('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x5f2a('0x3')](0x0);var events={'afterCreate':_0x5f2a('0x4'),'afterUpdate':_0x5f2a('0x5'),'afterDestroy':_0x5f2a('0x6')};function emitEvent(_0x5ee9b3){return function(_0x47d6c8,_0xf1e097,_0x33c5ff){CmContactEvents[_0x5f2a('0x7')](_0x5ee9b3+':'+_0x47d6c8['id'],_0x47d6c8);CmContactEvents[_0x5f2a('0x7')](_0x5ee9b3,_0x47d6c8);_0x33c5ff(null);};}for(var e in events){if(events[_0x5f2a('0x8')](e)){var event=events[e];CmContact[_0x5f2a('0x9')](e,emitEvent(event));}}module[_0x5f2a('0xa')]=CmContactEvents;
\ No newline at end of file
+var _0xb66f=['setMaxListeners','update','emit','hasOwnProperty','exports','events'];(function(_0x242921,_0x46263c){var _0x137b1b=function(_0x5702bb){while(--_0x5702bb){_0x242921['push'](_0x242921['shift']());}};_0x137b1b(++_0x46263c);}(_0xb66f,0x83));var _0xfb66=function(_0x24c7f7,_0x2bb77a){_0x24c7f7=_0x24c7f7-0x0;var _0x25604f=_0xb66f[_0x24c7f7];return _0x25604f;};'use strict';var EventEmitter=require(_0xfb66('0x0'));var CmContact=require('../../mysqldb')['db']['CmContact'];var CmContactEvents=new EventEmitter();CmContactEvents[_0xfb66('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0xfb66('0x2'),'afterDestroy':'remove'};function emitEvent(_0x28209f){return function(_0x1f8165,_0x4c6ad6,_0x37dbc8){CmContactEvents[_0xfb66('0x3')](_0x28209f+':'+_0x1f8165['id'],_0x1f8165);CmContactEvents['emit'](_0x28209f,_0x1f8165);_0x37dbc8(null);};}for(var e in events){if(events[_0xfb66('0x4')](e)){var event=events[e];CmContact['hook'](e,emitEvent(event));}}module[_0xfb66('0x5')]=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36c3=['request-promise','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','models','get','error','cmContact','afterCreate','inspect','CmHopper','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','scheduledat','format','callbackUniqueid','YYYY-MM-DD\x20HH:mm:ss','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId','findOne','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','Lists','length','always','onlyIfOpen','CmList','BlackLists','CmHopperBlack','Campaign','cmContact,\x20%s,\x20%s','message','List\x20not\x20found','destroy','ContactId','VoiceQueueId','CampaignId','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','api','moment','bluebird'];(function(_0x1d97b9,_0x85c8b7){var _0x5bf35b=function(_0x39c134){while(--_0x39c134){_0x1d97b9['push'](_0x1d97b9['shift']());}};_0x5bf35b(++_0x85c8b7);}(_0x36c3,0x1a6));var _0x336c=function(_0x2159e6,_0x55c285){_0x2159e6=_0x2159e6-0x0;var _0x355dbb=_0x36c3[_0x2159e6];return _0x355dbb;};'use strict';var _=require(_0x336c('0x0'));var util=require(_0x336c('0x1'));var logger=require('../../config/logger')(_0x336c('0x2'));var moment=require(_0x336c('0x3'));var BPromise=require(_0x336c('0x4'));var rp=require(_0x336c('0x5'));var attributes=require(_0x336c('0x6'));module[_0x336c('0x7')]=function(_0x39ed12,_0x4e4c07){return _0x39ed12[_0x336c('0x8')](_0x336c('0x9'),attributes,{'tableName':_0x336c('0xa'),'paranoid':!![],'indexes':[{'name':_0x336c('0xb'),'fields':[_0x336c('0xb')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4d1e4f,_0x108bb0,_0x1e6f42){var _0x3b4f93=_0x39ed12[_0x336c('0xc')];var _0x8b3722=_0x4d1e4f[_0x336c('0xd')]({'plain':!![]});function _0x33ced0(){return function(_0x1a4503){logger[_0x336c('0xe')](_0x336c('0xf'),_0x336c('0x10'),util[_0x336c('0x11')](_0x1a4503,{'showHidden':![],'depth':null}));};}var _0x1d896b=function(_0x244e74){return new BPromise(function(_0x146cf9,_0xb33aac){_0x3b4f93[_0x336c('0x12')]['findOne']({'where':{'phone':_0x8b3722['phone'],'VoiceQueueId':_0x244e74['id']}})[_0x336c('0x13')](function(_0x577bd6){if(!_[_0x336c('0x14')](_0x577bd6)){throw new Error(_0x336c('0x15')+_0x8b3722[_0x336c('0xb')]+_0x336c('0x16')+_0x244e74['id']);}return _0x3b4f93['CmHopper'][_0x336c('0x17')]({'phone':_0x8b3722[_0x336c('0xb')],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722['ListId'],'priority':_0x8b3722[_0x336c('0x18')]?_0x8b3722['priority']:0x2,'scheduledat':_0x8b3722[_0x336c('0x19')]?_0x8b3722['scheduledat']:moment()[_0x336c('0x1a')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x8b3722[_0x336c('0x1b')]?!![]:![],'callbackuniqueid':_0x8b3722[_0x336c('0x1b')]?_0x8b3722['callbackUniqueid']:undefined,'callbackat':_0x8b3722['callbackUniqueid']?moment()[_0x336c('0x1a')](_0x336c('0x1c')):undefined,'VoiceQueueId':_0x244e74['id']});})[_0x336c('0x1d')](function(_0x221408){_0xb33aac(_0x221408);});});};var _0x366182=function(_0x4fde93){return new BPromise(function(_0x327e10,_0x532e12){_0x3b4f93['CmHopper']['findOne']({'where':{'phone':_0x8b3722[_0x336c('0xb')],'VoiceQueueId':_0x4fde93['id']}})[_0x336c('0x13')](function(_0x2c8254){if(!_['isNil'](_0x2c8254)){throw new Error('cmContact,\x20afterCreate\x20'+_0x8b3722[_0x336c('0xb')]+_0x336c('0x1e')+_0x4fde93['id']);}return _0x3b4f93[_0x336c('0x1f')]['findOne']({'where':{'calleridnum':_0x8b3722[_0x336c('0xb')],'VoiceQueueId':_0x4fde93['id']}});})[_0x336c('0x13')](function(_0x37a355){if(!_['isNil'](_0x37a355)){throw new Error(_0x336c('0x20')+_0x8b3722[_0x336c('0xb')]+_0x336c('0x21')+_0x4fde93['id']);}return _0x3b4f93[_0x336c('0x12')]['create']({'phone':_0x8b3722[_0x336c('0xb')],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722[_0x336c('0x22')],'priority':_0x8b3722[_0x336c('0x18')]?_0x8b3722[_0x336c('0x18')]:0x2,'scheduledat':_0x8b3722[_0x336c('0x19')]?_0x8b3722[_0x336c('0x19')]:moment()['format'](_0x336c('0x1c')),'callback':_0x8b3722[_0x336c('0x1b')]?!![]:![],'callbackuniqueid':_0x8b3722[_0x336c('0x1b')]?_0x8b3722[_0x336c('0x1b')]:undefined,'callbackat':_0x8b3722['callbackUniqueid']?moment()[_0x336c('0x1a')](_0x336c('0x1c')):undefined,'VoiceQueueId':_0x4fde93['id']});})['catch'](function(_0x5476ff){_0x532e12(_0x5476ff);});});};function _0x562043(){return function(_0x2ba9c1){logger[_0x336c('0xe')]('cmContact','afterCreate',util['inspect'](_0x2ba9c1,{'showHidden':![],'depth':null}));};}var _0x209c2b=function(_0x37782a){return new BPromise(function(_0x1dfa5e,_0x424712){_0x3b4f93[_0x336c('0x12')][_0x336c('0x23')]({'where':{'phone':_0x8b3722[_0x336c('0xb')],'CampaignId':_0x37782a['id']}})['then'](function(_0x90d7de){if(!_[_0x336c('0x14')](_0x90d7de)){throw new Error(_0x336c('0x15')+_0x8b3722[_0x336c('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x37782a['id']);}return _0x3b4f93[_0x336c('0x12')][_0x336c('0x17')]({'phone':_0x8b3722['phone'],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722[_0x336c('0x22')],'priority':_0x8b3722[_0x336c('0x18')]?_0x8b3722['priority']:0x2,'scheduledat':_0x8b3722[_0x336c('0x19')]?_0x8b3722[_0x336c('0x19')]:moment()[_0x336c('0x1a')](_0x336c('0x1c')),'callback':_0x8b3722[_0x336c('0x1b')]?!![]:![],'callbackuniqueid':_0x8b3722[_0x336c('0x1b')]?_0x8b3722[_0x336c('0x1b')]:undefined,'callbackat':_0x8b3722[_0x336c('0x1b')]?moment()['format'](_0x336c('0x1c')):undefined,'CampaignId':_0x37782a['id']});})[_0x336c('0x1d')](function(_0x195af4){_0x424712(_0x195af4);});});};var _0x33dfc6=function(_0x3bc7f6){return new BPromise(function(_0x31bd15,_0x6d823a){_0x3b4f93[_0x336c('0x12')][_0x336c('0x23')]({'where':{'phone':_0x8b3722[_0x336c('0xb')],'CampaignId':_0x3bc7f6['id']}})['then'](function(_0x2704fc){if(!_[_0x336c('0x14')](_0x2704fc)){throw new Error(_0x336c('0x15')+_0x8b3722[_0x336c('0xb')]+_0x336c('0x24')+_0x3bc7f6['id']);}return _0x3b4f93[_0x336c('0x1f')][_0x336c('0x23')]({'where':{'calleridnum':_0x8b3722[_0x336c('0xb')],'CampaignId':_0x3bc7f6['id']}});})[_0x336c('0x13')](function(_0xf9c76a){if(!_['isNil'](_0xf9c76a)){throw new Error(_0x336c('0x20')+_0x8b3722[_0x336c('0xb')]+_0x336c('0x25')+_0x3bc7f6['id']);}return _0x3b4f93['CmHopper'][_0x336c('0x17')]({'phone':_0x8b3722[_0x336c('0xb')],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722[_0x336c('0x22')],'priority':_0x8b3722[_0x336c('0x18')]?_0x8b3722['priority']:0x2,'scheduledat':_0x8b3722[_0x336c('0x19')]?_0x8b3722[_0x336c('0x19')]:moment()['format'](_0x336c('0x1c')),'callback':_0x8b3722[_0x336c('0x1b')]?!![]:![],'callbackuniqueid':_0x8b3722[_0x336c('0x1b')]?_0x8b3722['callbackUniqueid']:undefined,'callbackat':_0x8b3722[_0x336c('0x1b')]?moment()[_0x336c('0x1a')](_0x336c('0x1c')):undefined,'CampaignId':_0x3bc7f6['id']});})[_0x336c('0x1d')](function(_0x5405c9){_0x6d823a(_0x5405c9);});});};if(_0x8b3722[_0x336c('0x22')]){_0x3b4f93[_0x336c('0x26')][_0x336c('0x27')]({'where':{'type':_0x336c('0x28')},'attributes':['id',_0x336c('0x29')],'include':[{'model':_0x3b4f93['CmList'],'as':_0x336c('0x2a'),'where':{'id':_0x8b3722[_0x336c('0x22')]}}]})[_0x336c('0x13')](function(_0x5b2f25){if(_0x5b2f25){var _0x22ad35=[];for(var _0xabb11e=0x0,_0x48ea1c;_0xabb11e<_0x5b2f25[_0x336c('0x2b')];_0xabb11e+=0x1){_0x48ea1c=_0x5b2f25[_0xabb11e][_0x336c('0xd')]({'plain':!![]});switch(_0x48ea1c[_0x336c('0x29')]){case _0x336c('0x2c'):_0x366182(_0x48ea1c)['catch'](_0x33ced0());break;case _0x336c('0x2d'):_0x1d896b(_0x48ea1c)[_0x336c('0x1d')](_0x33ced0());break;default:_0x3b4f93['CmHopper'][_0x336c('0x17')]({'phone':_0x8b3722[_0x336c('0xb')],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722['ListId'],'scheduledat':_0x8b3722[_0x336c('0x19')]?_0x8b3722[_0x336c('0x19')]:moment()[_0x336c('0x1a')](_0x336c('0x1c')),'priority':_0x8b3722['priority']?_0x8b3722[_0x336c('0x18')]:0x2,'callback':_0x8b3722[_0x336c('0x1b')]?!![]:![],'callbackuniqueid':_0x8b3722[_0x336c('0x1b')]?_0x8b3722[_0x336c('0x1b')]:undefined,'callbackat':_0x8b3722[_0x336c('0x1b')]?moment()[_0x336c('0x1a')](_0x336c('0x1c')):undefined,'VoiceQueueId':_0x48ea1c['id']})[_0x336c('0x1d')](_0x33ced0());}}}})[_0x336c('0x13')](function(){return _0x3b4f93['VoiceQueue'][_0x336c('0x27')]({'where':{'type':_0x336c('0x28')},'attributes':['id'],'include':[{'model':_0x3b4f93[_0x336c('0x2e')],'as':_0x336c('0x2f'),'where':{'id':_0x8b3722[_0x336c('0x22')]}}]})[_0x336c('0x13')](function(_0x41e794){if(_0x41e794){var _0xbfac47=[];for(var _0x3bdbb8=0x0,_0x30e20c;_0x3bdbb8<_0x41e794[_0x336c('0x2b')];_0x3bdbb8+=0x1){_0x30e20c=_0x41e794[_0x3bdbb8][_0x336c('0xd')]({'plain':!![]});_0x3b4f93[_0x336c('0x30')]['create']({'phone':_0x8b3722[_0x336c('0xb')],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722['ListId'],'VoiceQueueId':_0x30e20c['id']})['catch'](function(_0x20fc1c){logger['error']('cmContact,\x20%s,\x20%s',_0x336c('0x10'),_0x20fc1c['message']);});}}});})[_0x336c('0x13')](function(){return _0x3b4f93[_0x336c('0x31')][_0x336c('0x27')]({'attributes':['id',_0x336c('0x29')],'include':[{'model':_0x3b4f93['CmList'],'as':'Lists','where':{'id':_0x8b3722[_0x336c('0x22')]}}]})[_0x336c('0x13')](function(_0x4b70ba){if(_0x4b70ba){var _0x36f124=[];for(var _0x6812b3=0x0,_0x5dd939;_0x6812b3<_0x4b70ba[_0x336c('0x2b')];_0x6812b3+=0x1){_0x5dd939=_0x4b70ba[_0x6812b3][_0x336c('0xd')]({'plain':!![]});switch(_0x5dd939[_0x336c('0x29')]){case _0x336c('0x2c'):_0x33dfc6(_0x5dd939)['catch'](_0x562043());break;case _0x336c('0x2d'):_0x209c2b(_0x5dd939)[_0x336c('0x1d')](_0x562043());break;default:_0x3b4f93['CmHopper']['create']({'phone':_0x8b3722['phone'],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722['ListId'],'scheduledat':_0x8b3722['scheduledat']?_0x8b3722[_0x336c('0x19')]:moment()[_0x336c('0x1a')](_0x336c('0x1c')),'priority':_0x8b3722[_0x336c('0x18')]?_0x8b3722['priority']:0x2,'callback':_0x8b3722[_0x336c('0x1b')]?!![]:![],'callbackuniqueid':_0x8b3722[_0x336c('0x1b')]?_0x8b3722[_0x336c('0x1b')]:undefined,'callbackat':_0x8b3722[_0x336c('0x1b')]?moment()['format'](_0x336c('0x1c')):undefined,'CampaignId':_0x5dd939['id']})['catch'](_0x562043());}}}});})[_0x336c('0x13')](function(){return _0x3b4f93[_0x336c('0x31')][_0x336c('0x27')]({'attributes':['id'],'include':[{'model':_0x3b4f93[_0x336c('0x2e')],'as':_0x336c('0x2f'),'where':{'id':_0x8b3722[_0x336c('0x22')]}}]})['then'](function(_0x561e54){if(_0x561e54){var _0x410c9e=[];for(var _0x956a06=0x0,_0x517b61;_0x956a06<_0x561e54[_0x336c('0x2b')];_0x956a06+=0x1){_0x517b61=_0x561e54[_0x956a06][_0x336c('0xd')]({'plain':!![]});_0x3b4f93[_0x336c('0x30')]['create']({'phone':_0x8b3722['phone'],'ContactId':_0x8b3722['id'],'ListId':_0x8b3722[_0x336c('0x22')],'CampaignId':_0x517b61['id']})[_0x336c('0x1d')](function(_0x2c610d){logger[_0x336c('0xe')](_0x336c('0x32'),_0x336c('0x10'),_0x2c610d['message']);});}}});})[_0x336c('0x13')](function(){_0x1e6f42();})[_0x336c('0x1d')](function(_0x45d69d){logger['error']('cmContact,\x20%s,\x20%s',_0x336c('0x10'),_0x45d69d[_0x336c('0x33')]);_0x1e6f42(_0x45d69d);});}else{_0x1e6f42(new Error(_0x336c('0x34')));}},'afterDestroy':function(_0x1b8a1b,_0xf64546,_0x2842c3){var _0x2e5c81=_0x39ed12[_0x336c('0xc')];var _0x13a726=_0x1b8a1b[_0x336c('0xd')]({'plain':!![]});return _0x2e5c81[_0x336c('0x12')][_0x336c('0x27')]({'raw':!![],'where':{'ListId':_0x13a726[_0x336c('0x22')],'ContactId':_0x13a726['id']}})['then'](function(_0x5dc995){if(!_['isEmpty'](_0x5dc995)){var _0x4ddd8d=[];for(var _0x2f73e6=0x0;_0x2f73e6<_0x5dc995[_0x336c('0x2b')];_0x2f73e6+=0x1){var _0x53e56d=_0x2e5c81[_0x336c('0x12')][_0x336c('0x35')]({'where':{'ListId':_0x5dc995[_0x2f73e6][_0x336c('0x22')],'ContactId':_0x5dc995[_0x2f73e6][_0x336c('0x36')],'VoiceQueueId':_0x5dc995[_0x2f73e6][_0x336c('0x37')],'CampaignId':_0x5dc995[_0x2f73e6][_0x336c('0x38')]}});_0x4ddd8d['push'](_0x53e56d);}return BPromise[_0x336c('0x39')](_0x4ddd8d);}})['then'](function(_0x46c2a7){logger[_0x336c('0x3a')](_0x336c('0x3b'),util['inspect'](_0x46c2a7,{'showHidden':![],'depth':null}));_0x2842c3();})[_0x336c('0x1d')](function(_0x39697d){logger['error'](_0x336c('0x3c'),util['inspect'](_0x39697d,{'showHidden':![],'depth':null}));_0x2842c3(_0x39697d);});}}});};
\ No newline at end of file
+var _0x1267=['BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','afterCreate','message','Campaign','List\x20not\x20found','isEmpty','ContactId','CampaignId','all','info','[CmContact][afterDestroy][Succesfull]','lodash','util','moment','bluebird','request-promise','./cmContact.attributes','exports','CmContact','cm_contacts','phone','get','error','inspect','CmHopper','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','format','findOne','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','catch','cmContact','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen'];(function(_0x10a546,_0x5ea132){var _0x30e897=function(_0x54964b){while(--_0x54964b){_0x10a546['push'](_0x10a546['shift']());}};_0x30e897(++_0x5ea132);}(_0x1267,0xb5));var _0x7126=function(_0x2fac3f,_0x20617a){_0x2fac3f=_0x2fac3f-0x0;var _0x160d71=_0x1267[_0x2fac3f];return _0x160d71;};'use strict';var _=require(_0x7126('0x0'));var util=require(_0x7126('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x7126('0x2'));var BPromise=require(_0x7126('0x3'));var rp=require(_0x7126('0x4'));var attributes=require(_0x7126('0x5'));module[_0x7126('0x6')]=function(_0x403ed4,_0x4346f7){return _0x403ed4['define'](_0x7126('0x7'),attributes,{'tableName':_0x7126('0x8'),'paranoid':!![],'indexes':[{'name':_0x7126('0x9'),'fields':[_0x7126('0x9')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4f4607,_0x1605ba,_0x4f1e7f){var _0x25852b=_0x403ed4['models'];var _0x26f0fa=_0x4f4607[_0x7126('0xa')]({'plain':!![]});function _0xe8b480(){return function(_0x3c9cd8){logger[_0x7126('0xb')]('cmContact','afterCreate',util[_0x7126('0xc')](_0x3c9cd8,{'showHidden':![],'depth':null}));};}var _0x397339=function(_0x34d819){return new BPromise(function(_0x433b90,_0x36d040){_0x25852b[_0x7126('0xd')]['findOne']({'where':{'phone':_0x26f0fa['phone'],'VoiceQueueId':_0x34d819['id']}})[_0x7126('0xe')](function(_0x1f2c29){if(!_['isNil'](_0x1f2c29)){throw new Error('cmContact,\x20afterCreate\x20'+_0x26f0fa[_0x7126('0x9')]+_0x7126('0xf')+_0x34d819['id']);}return _0x25852b['CmHopper'][_0x7126('0x10')]({'phone':_0x26f0fa['phone'],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa[_0x7126('0x11')],'priority':_0x26f0fa[_0x7126('0x12')]?_0x26f0fa['priority']:0x2,'scheduledat':_0x26f0fa['scheduledat']?_0x26f0fa[_0x7126('0x13')]:moment()['format'](_0x7126('0x14')),'callback':_0x26f0fa[_0x7126('0x15')]?!![]:![],'callbackuniqueid':_0x26f0fa[_0x7126('0x15')]?_0x26f0fa[_0x7126('0x15')]:undefined,'callbackat':_0x26f0fa[_0x7126('0x15')]?moment()[_0x7126('0x16')](_0x7126('0x14')):undefined,'VoiceQueueId':_0x34d819['id']});})['catch'](function(_0x71b180){_0x36d040(_0x71b180);});});};var _0x369f8f=function(_0x56ec9a){return new BPromise(function(_0x37e3f5,_0x1515ca){_0x25852b['CmHopper'][_0x7126('0x17')]({'where':{'phone':_0x26f0fa['phone'],'VoiceQueueId':_0x56ec9a['id']}})['then'](function(_0x8a1298){if(!_[_0x7126('0x18')](_0x8a1298)){throw new Error(_0x7126('0x19')+_0x26f0fa[_0x7126('0x9')]+_0x7126('0x1a')+_0x56ec9a['id']);}return _0x25852b['CmHopperFinal'][_0x7126('0x17')]({'where':{'calleridnum':_0x26f0fa[_0x7126('0x9')],'VoiceQueueId':_0x56ec9a['id']}});})[_0x7126('0xe')](function(_0x387133){if(!_[_0x7126('0x18')](_0x387133)){throw new Error(_0x7126('0x1b')+_0x26f0fa[_0x7126('0x9')]+_0x7126('0x1c')+_0x56ec9a['id']);}return _0x25852b['CmHopper']['create']({'phone':_0x26f0fa['phone'],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa[_0x7126('0x11')],'priority':_0x26f0fa[_0x7126('0x12')]?_0x26f0fa[_0x7126('0x12')]:0x2,'scheduledat':_0x26f0fa[_0x7126('0x13')]?_0x26f0fa[_0x7126('0x13')]:moment()[_0x7126('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x26f0fa[_0x7126('0x15')]?!![]:![],'callbackuniqueid':_0x26f0fa['callbackUniqueid']?_0x26f0fa[_0x7126('0x15')]:undefined,'callbackat':_0x26f0fa['callbackUniqueid']?moment()[_0x7126('0x16')](_0x7126('0x14')):undefined,'VoiceQueueId':_0x56ec9a['id']});})[_0x7126('0x1d')](function(_0x53624e){_0x1515ca(_0x53624e);});});};function _0x512334(){return function(_0x5c56eb){logger[_0x7126('0xb')](_0x7126('0x1e'),'afterCreate',util[_0x7126('0xc')](_0x5c56eb,{'showHidden':![],'depth':null}));};}var _0x82621e=function(_0x8f0e73){return new BPromise(function(_0xef1f31,_0x70da80){_0x25852b[_0x7126('0xd')][_0x7126('0x17')]({'where':{'phone':_0x26f0fa['phone'],'CampaignId':_0x8f0e73['id']}})[_0x7126('0xe')](function(_0x4e05f7){if(!_['isNil'](_0x4e05f7)){throw new Error(_0x7126('0x19')+_0x26f0fa[_0x7126('0x9')]+_0x7126('0x1f')+_0x8f0e73['id']);}return _0x25852b[_0x7126('0xd')]['create']({'phone':_0x26f0fa[_0x7126('0x9')],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa[_0x7126('0x11')],'priority':_0x26f0fa[_0x7126('0x12')]?_0x26f0fa['priority']:0x2,'scheduledat':_0x26f0fa['scheduledat']?_0x26f0fa[_0x7126('0x13')]:moment()[_0x7126('0x16')](_0x7126('0x14')),'callback':_0x26f0fa[_0x7126('0x15')]?!![]:![],'callbackuniqueid':_0x26f0fa[_0x7126('0x15')]?_0x26f0fa['callbackUniqueid']:undefined,'callbackat':_0x26f0fa[_0x7126('0x15')]?moment()[_0x7126('0x16')](_0x7126('0x14')):undefined,'CampaignId':_0x8f0e73['id']});})[_0x7126('0x1d')](function(_0x1a7dd0){_0x70da80(_0x1a7dd0);});});};var _0x551deb=function(_0x5745de){return new BPromise(function(_0x2de93b,_0x64982d){_0x25852b[_0x7126('0xd')][_0x7126('0x17')]({'where':{'phone':_0x26f0fa[_0x7126('0x9')],'CampaignId':_0x5745de['id']}})['then'](function(_0x3f8f9b){if(!_['isNil'](_0x3f8f9b)){throw new Error(_0x7126('0x19')+_0x26f0fa[_0x7126('0x9')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x5745de['id']);}return _0x25852b[_0x7126('0x20')][_0x7126('0x17')]({'where':{'calleridnum':_0x26f0fa[_0x7126('0x9')],'CampaignId':_0x5745de['id']}});})['then'](function(_0x3e0817){if(!_[_0x7126('0x18')](_0x3e0817)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x26f0fa[_0x7126('0x9')]+_0x7126('0x21')+_0x5745de['id']);}return _0x25852b[_0x7126('0xd')]['create']({'phone':_0x26f0fa[_0x7126('0x9')],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa['ListId'],'priority':_0x26f0fa[_0x7126('0x12')]?_0x26f0fa[_0x7126('0x12')]:0x2,'scheduledat':_0x26f0fa['scheduledat']?_0x26f0fa[_0x7126('0x13')]:moment()[_0x7126('0x16')](_0x7126('0x14')),'callback':_0x26f0fa[_0x7126('0x15')]?!![]:![],'callbackuniqueid':_0x26f0fa[_0x7126('0x15')]?_0x26f0fa[_0x7126('0x15')]:undefined,'callbackat':_0x26f0fa[_0x7126('0x15')]?moment()['format'](_0x7126('0x14')):undefined,'CampaignId':_0x5745de['id']});})[_0x7126('0x1d')](function(_0x3d35dd){_0x64982d(_0x3d35dd);});});};if(_0x26f0fa[_0x7126('0x11')]){_0x25852b[_0x7126('0x22')][_0x7126('0x23')]({'where':{'type':_0x7126('0x24')},'attributes':['id',_0x7126('0x25')],'include':[{'model':_0x25852b[_0x7126('0x26')],'as':_0x7126('0x27'),'where':{'id':_0x26f0fa[_0x7126('0x11')]}}]})['then'](function(_0x18bdef){if(_0x18bdef){var _0x1a05e4=[];for(var _0x2859dd=0x0,_0x2b4d68;_0x2859dd<_0x18bdef[_0x7126('0x28')];_0x2859dd+=0x1){_0x2b4d68=_0x18bdef[_0x2859dd][_0x7126('0xa')]({'plain':!![]});switch(_0x2b4d68[_0x7126('0x25')]){case _0x7126('0x29'):_0x369f8f(_0x2b4d68)['catch'](_0xe8b480());break;case _0x7126('0x2a'):_0x397339(_0x2b4d68)['catch'](_0xe8b480());break;default:_0x25852b[_0x7126('0xd')][_0x7126('0x10')]({'phone':_0x26f0fa[_0x7126('0x9')],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa[_0x7126('0x11')],'scheduledat':_0x26f0fa[_0x7126('0x13')]?_0x26f0fa[_0x7126('0x13')]:moment()[_0x7126('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x26f0fa[_0x7126('0x12')]?_0x26f0fa[_0x7126('0x12')]:0x2,'callback':_0x26f0fa[_0x7126('0x15')]?!![]:![],'callbackuniqueid':_0x26f0fa['callbackUniqueid']?_0x26f0fa[_0x7126('0x15')]:undefined,'callbackat':_0x26f0fa[_0x7126('0x15')]?moment()['format'](_0x7126('0x14')):undefined,'VoiceQueueId':_0x2b4d68['id']})[_0x7126('0x1d')](_0xe8b480());}}}})['then'](function(){return _0x25852b[_0x7126('0x22')][_0x7126('0x23')]({'where':{'type':_0x7126('0x24')},'attributes':['id'],'include':[{'model':_0x25852b[_0x7126('0x26')],'as':_0x7126('0x2b'),'where':{'id':_0x26f0fa[_0x7126('0x11')]}}]})[_0x7126('0xe')](function(_0x38bde8){if(_0x38bde8){var _0x1ccfeb=[];for(var _0x3ab107=0x0,_0xbb3810;_0x3ab107<_0x38bde8[_0x7126('0x28')];_0x3ab107+=0x1){_0xbb3810=_0x38bde8[_0x3ab107]['get']({'plain':!![]});_0x25852b[_0x7126('0x2c')][_0x7126('0x10')]({'phone':_0x26f0fa['phone'],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa[_0x7126('0x11')],'VoiceQueueId':_0xbb3810['id']})['catch'](function(_0x13efb6){logger[_0x7126('0xb')](_0x7126('0x2d'),_0x7126('0x2e'),_0x13efb6[_0x7126('0x2f')]);});}}});})[_0x7126('0xe')](function(){return _0x25852b[_0x7126('0x30')][_0x7126('0x23')]({'attributes':['id',_0x7126('0x25')],'include':[{'model':_0x25852b[_0x7126('0x26')],'as':_0x7126('0x27'),'where':{'id':_0x26f0fa[_0x7126('0x11')]}}]})[_0x7126('0xe')](function(_0x1c43ff){if(_0x1c43ff){var _0x26466d=[];for(var _0x39f4d6=0x0,_0x2f4e90;_0x39f4d6<_0x1c43ff['length'];_0x39f4d6+=0x1){_0x2f4e90=_0x1c43ff[_0x39f4d6]['get']({'plain':!![]});switch(_0x2f4e90[_0x7126('0x25')]){case'always':_0x551deb(_0x2f4e90)[_0x7126('0x1d')](_0x512334());break;case _0x7126('0x2a'):_0x82621e(_0x2f4e90)[_0x7126('0x1d')](_0x512334());break;default:_0x25852b['CmHopper']['create']({'phone':_0x26f0fa['phone'],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa['ListId'],'scheduledat':_0x26f0fa[_0x7126('0x13')]?_0x26f0fa[_0x7126('0x13')]:moment()[_0x7126('0x16')](_0x7126('0x14')),'priority':_0x26f0fa[_0x7126('0x12')]?_0x26f0fa[_0x7126('0x12')]:0x2,'callback':_0x26f0fa[_0x7126('0x15')]?!![]:![],'callbackuniqueid':_0x26f0fa[_0x7126('0x15')]?_0x26f0fa[_0x7126('0x15')]:undefined,'callbackat':_0x26f0fa['callbackUniqueid']?moment()[_0x7126('0x16')](_0x7126('0x14')):undefined,'CampaignId':_0x2f4e90['id']})[_0x7126('0x1d')](_0x512334());}}}});})[_0x7126('0xe')](function(){return _0x25852b[_0x7126('0x30')][_0x7126('0x23')]({'attributes':['id'],'include':[{'model':_0x25852b[_0x7126('0x26')],'as':'BlackLists','where':{'id':_0x26f0fa[_0x7126('0x11')]}}]})['then'](function(_0x4c24e9){if(_0x4c24e9){var _0xb22a25=[];for(var _0x1fcc7d=0x0,_0x416311;_0x1fcc7d<_0x4c24e9[_0x7126('0x28')];_0x1fcc7d+=0x1){_0x416311=_0x4c24e9[_0x1fcc7d][_0x7126('0xa')]({'plain':!![]});_0x25852b['CmHopperBlack'][_0x7126('0x10')]({'phone':_0x26f0fa[_0x7126('0x9')],'ContactId':_0x26f0fa['id'],'ListId':_0x26f0fa[_0x7126('0x11')],'CampaignId':_0x416311['id']})[_0x7126('0x1d')](function(_0xdcc04b){logger[_0x7126('0xb')]('cmContact,\x20%s,\x20%s',_0x7126('0x2e'),_0xdcc04b[_0x7126('0x2f')]);});}}});})['then'](function(){_0x4f1e7f();})[_0x7126('0x1d')](function(_0x41b1af){logger[_0x7126('0xb')](_0x7126('0x2d'),'afterCreate',_0x41b1af[_0x7126('0x2f')]);_0x4f1e7f(_0x41b1af);});}else{_0x4f1e7f(new Error(_0x7126('0x31')));}},'afterDestroy':function(_0x8be8ef,_0x165797,_0x5c62b6){var _0x2bcb3d=_0x403ed4['models'];var _0x2aecfe=_0x8be8ef[_0x7126('0xa')]({'plain':!![]});return _0x2bcb3d[_0x7126('0xd')][_0x7126('0x23')]({'raw':!![],'where':{'ListId':_0x2aecfe[_0x7126('0x11')],'ContactId':_0x2aecfe['id']}})[_0x7126('0xe')](function(_0x1e72f9){if(!_[_0x7126('0x32')](_0x1e72f9)){var _0x3b9a49=[];for(var _0x41fdd1=0x0;_0x41fdd1<_0x1e72f9[_0x7126('0x28')];_0x41fdd1+=0x1){var _0xf133e8=_0x2bcb3d['CmHopper']['destroy']({'where':{'ListId':_0x1e72f9[_0x41fdd1][_0x7126('0x11')],'ContactId':_0x1e72f9[_0x41fdd1][_0x7126('0x33')],'VoiceQueueId':_0x1e72f9[_0x41fdd1]['VoiceQueueId'],'CampaignId':_0x1e72f9[_0x41fdd1][_0x7126('0x34')]}});_0x3b9a49['push'](_0xf133e8);}return BPromise[_0x7126('0x35')](_0x3b9a49);}})['then'](function(_0x30f3d0){logger[_0x7126('0x36')](_0x7126('0x37'),util[_0x7126('0xc')](_0x30f3d0,{'showHidden':![],'depth':null}));_0x5c62b6();})['catch'](function(_0x2e6a1d){logger[_0x7126('0xb')]('[CmContact][afterDestroy][Error]',util[_0x7126('0xc')](_0x2e6a1d,{'showHidden':![],'depth':null}));_0x5c62b6(_0x2e6a1d);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x19a1=['CmContact,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','ShowCmContact','CmContact','options','raw','attributes','include','map','model','CreateCmContact','body','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./cmContact.socket','register','request','then','info','CmContact,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x455c6c,_0x1e78b7){var _0x488242=function(_0x3e8fb0){while(--_0x3e8fb0){_0x455c6c['push'](_0x455c6c['shift']());}};_0x488242(++_0x1e78b7);}(_0x19a1,0x18c));var _0x119a=function(_0x2f2a0d,_0x5d1976){_0x2f2a0d=_0x2f2a0d-0x0;var _0x823f5e=_0x19a1[_0x2f2a0d];return _0x823f5e;};'use strict';var _=require(_0x119a('0x0'));var util=require(_0x119a('0x1'));var moment=require('moment');var BPromise=require(_0x119a('0x2'));var rs=require(_0x119a('0x3'));var fs=require('fs');var db=require(_0x119a('0x4'))['db'];var utils=require(_0x119a('0x5'));var logger=require('../../config/logger')(_0x119a('0x6'));var config=require(_0x119a('0x7'));var jayson=require(_0x119a('0x8'));var client=jayson[_0x119a('0x9')][_0x119a('0xa')]({'port':0x232a});config[_0x119a('0xb')]=_[_0x119a('0xc')](config[_0x119a('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x119a('0xd'))(config['redis']);require(_0x119a('0xe'))[_0x119a('0xf')](socket);function respondWithRpcPromise(_0x511f4c,_0x15a08c,_0x4b30b4){return new BPromise(function(_0x1f9676,_0x139c40){return client[_0x119a('0x10')](_0x511f4c,_0x4b30b4)[_0x119a('0x11')](function(_0x4ec061){logger[_0x119a('0x12')](_0x119a('0x13'),_0x15a08c,_0x119a('0x14'));logger[_0x119a('0x15')](_0x119a('0x16'),_0x15a08c,_0x119a('0x14'),JSON[_0x119a('0x17')](_0x4ec061));if(_0x4ec061[_0x119a('0x18')]){if(_0x4ec061[_0x119a('0x18')][_0x119a('0x19')]===0x1f4){logger[_0x119a('0x18')]('CmContact,\x20%s,\x20%s',_0x15a08c,_0x4ec061[_0x119a('0x18')][_0x119a('0x1a')]);return _0x139c40(_0x4ec061[_0x119a('0x18')][_0x119a('0x1a')]);}logger[_0x119a('0x18')](_0x119a('0x13'),_0x15a08c,_0x4ec061[_0x119a('0x18')][_0x119a('0x1a')]);return _0x1f9676(_0x4ec061[_0x119a('0x18')][_0x119a('0x1a')]);}else{logger[_0x119a('0x12')]('CmContact,\x20%s,\x20%s',_0x15a08c,_0x119a('0x14'));_0x1f9676(_0x4ec061['result'][_0x119a('0x1a')]);}})[_0x119a('0x1b')](function(_0x1760df){logger[_0x119a('0x18')](_0x119a('0x13'),_0x15a08c,_0x1760df);_0x139c40(_0x1760df);});});}exports[_0x119a('0x1c')]=function(_0x3d7179){var _0x4a2e44=this;return new Promise(function(_0xbe554e,_0x2104a8){return db[_0x119a('0x1d')]['find']({'raw':_0x3d7179['options']?_0x3d7179[_0x119a('0x1e')][_0x119a('0x1f')]===undefined?!![]:![]:!![],'where':_0x3d7179['options']?_0x3d7179['options']['where']||null:null,'attributes':_0x3d7179[_0x119a('0x1e')]?_0x3d7179[_0x119a('0x1e')][_0x119a('0x20')]||null:null,'include':_0x3d7179[_0x119a('0x1e')]?_0x3d7179[_0x119a('0x1e')][_0x119a('0x21')]?_[_0x119a('0x22')](_0x3d7179[_0x119a('0x1e')][_0x119a('0x21')],function(_0x20c110){return{'model':db[_0x20c110[_0x119a('0x23')]],'as':_0x20c110['as'],'attributes':_0x20c110[_0x119a('0x20')],'include':_0x20c110[_0x119a('0x21')]?_[_0x119a('0x22')](_0x20c110[_0x119a('0x21')],function(_0x4f743c){return{'model':db[_0x4f743c[_0x119a('0x23')]],'as':_0x4f743c['as'],'attributes':_0x4f743c['attributes'],'include':_0x4f743c[_0x119a('0x21')]?_[_0x119a('0x22')](_0x4f743c['include'],function(_0x116b6f){return{'model':db[_0x116b6f[_0x119a('0x23')]],'as':_0x116b6f['as'],'attributes':_0x116b6f[_0x119a('0x20')]};}):[]};}):[]};}):[]:[]})[_0x119a('0x11')](function(_0x2d6ffb){logger['info']('ShowCmContact',_0x3d7179);logger[_0x119a('0x15')](_0x119a('0x1c'),_0x3d7179,JSON[_0x119a('0x17')](_0x2d6ffb));_0xbe554e(_0x2d6ffb);})[_0x119a('0x1b')](function(_0x14aed3){logger[_0x119a('0x18')](_0x119a('0x1c'),_0x14aed3[_0x119a('0x1a')],_0x3d7179);_0x2104a8(_0x4a2e44['error'](0x1f4,_0x14aed3['message']));});});};exports[_0x119a('0x24')]=function(_0x294da3){var _0x32a743=this;return new Promise(function(_0x3c1828,_0x192f06){return db[_0x119a('0x1d')]['create'](_0x294da3[_0x119a('0x25')],{'raw':_0x294da3[_0x119a('0x1e')]?_0x294da3['options'][_0x119a('0x1f')]===undefined?!![]:![]:!![]})['then'](function(_0x195040){logger[_0x119a('0x12')](_0x119a('0x24'),_0x294da3);logger[_0x119a('0x15')](_0x119a('0x24'),_0x294da3,JSON[_0x119a('0x17')](_0x195040));_0x3c1828(_0x195040);})[_0x119a('0x1b')](function(_0x5163f0){logger[_0x119a('0x18')](_0x119a('0x24'),_0x5163f0['message'],_0x294da3);_0x192f06(_0x32a743[_0x119a('0x18')](0x1f4,_0x5163f0[_0x119a('0x1a')]));});});};
\ No newline at end of file
+var _0x2873=['stringify','CreateCmContact','create','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./cmContact.socket','register','then','info','request\x20sent','CmContact,\x20%s,\x20%s,\x20%s','error','CmContact,\x20%s,\x20%s','message','result','catch','ShowCmContact','CmContact','find','options','raw','where','include','map','model','attributes'];(function(_0x52476b,_0x4625c7){var _0xb7d27=function(_0x42119f){while(--_0x42119f){_0x52476b['push'](_0x52476b['shift']());}};_0xb7d27(++_0x4625c7);}(_0x2873,0x11b));var _0x3287=function(_0x54de9c,_0x5cad6b){_0x54de9c=_0x54de9c-0x0;var _0x37cd59=_0x2873[_0x54de9c];return _0x37cd59;};'use strict';var _=require(_0x3287('0x0'));var util=require(_0x3287('0x1'));var moment=require(_0x3287('0x2'));var BPromise=require(_0x3287('0x3'));var rs=require(_0x3287('0x4'));var fs=require('fs');var Redis=require(_0x3287('0x5'));var db=require(_0x3287('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x3287('0x7'));var config=require(_0x3287('0x8'));var jayson=require(_0x3287('0x9'));var client=jayson[_0x3287('0xa')][_0x3287('0xb')]({'port':0x232a});config[_0x3287('0xc')]=_[_0x3287('0xd')](config[_0x3287('0xc')],{'host':_0x3287('0xe'),'port':0x18eb});var socket=require(_0x3287('0xf'))(new Redis(config[_0x3287('0xc')]));require(_0x3287('0x10'))[_0x3287('0x11')](socket);function respondWithRpcPromise(_0x2aa48a,_0xf7fa46,_0x266924){return new BPromise(function(_0x1e52a3,_0x499f96){return client['request'](_0x2aa48a,_0x266924)[_0x3287('0x12')](function(_0x43c152){logger[_0x3287('0x13')]('CmContact,\x20%s,\x20%s',_0xf7fa46,_0x3287('0x14'));logger['debug'](_0x3287('0x15'),_0xf7fa46,'request\x20sent',JSON['stringify'](_0x43c152));if(_0x43c152[_0x3287('0x16')]){if(_0x43c152[_0x3287('0x16')]['code']===0x1f4){logger['error'](_0x3287('0x17'),_0xf7fa46,_0x43c152[_0x3287('0x16')]['message']);return _0x499f96(_0x43c152[_0x3287('0x16')][_0x3287('0x18')]);}logger['error'](_0x3287('0x17'),_0xf7fa46,_0x43c152['error'][_0x3287('0x18')]);return _0x1e52a3(_0x43c152[_0x3287('0x16')][_0x3287('0x18')]);}else{logger[_0x3287('0x13')]('CmContact,\x20%s,\x20%s',_0xf7fa46,_0x3287('0x14'));_0x1e52a3(_0x43c152[_0x3287('0x19')][_0x3287('0x18')]);}})[_0x3287('0x1a')](function(_0x5211b4){logger[_0x3287('0x16')]('CmContact,\x20%s,\x20%s',_0xf7fa46,_0x5211b4);_0x499f96(_0x5211b4);});});}exports[_0x3287('0x1b')]=function(_0xab97c8){var _0x231d95=this;return new Promise(function(_0x3a4808,_0x1cbf1f){return db[_0x3287('0x1c')][_0x3287('0x1d')]({'raw':_0xab97c8['options']?_0xab97c8[_0x3287('0x1e')][_0x3287('0x1f')]===undefined?!![]:![]:!![],'where':_0xab97c8[_0x3287('0x1e')]?_0xab97c8['options'][_0x3287('0x20')]||null:null,'attributes':_0xab97c8[_0x3287('0x1e')]?_0xab97c8[_0x3287('0x1e')]['attributes']||null:null,'include':_0xab97c8[_0x3287('0x1e')]?_0xab97c8['options'][_0x3287('0x21')]?_[_0x3287('0x22')](_0xab97c8[_0x3287('0x1e')][_0x3287('0x21')],function(_0x173c8a){return{'model':db[_0x173c8a[_0x3287('0x23')]],'as':_0x173c8a['as'],'attributes':_0x173c8a[_0x3287('0x24')],'include':_0x173c8a[_0x3287('0x21')]?_[_0x3287('0x22')](_0x173c8a['include'],function(_0x39796f){return{'model':db[_0x39796f[_0x3287('0x23')]],'as':_0x39796f['as'],'attributes':_0x39796f[_0x3287('0x24')],'include':_0x39796f['include']?_[_0x3287('0x22')](_0x39796f[_0x3287('0x21')],function(_0x38e934){return{'model':db[_0x38e934[_0x3287('0x23')]],'as':_0x38e934['as'],'attributes':_0x38e934[_0x3287('0x24')]};}):[]};}):[]};}):[]:[]})[_0x3287('0x12')](function(_0x4e0f66){logger[_0x3287('0x13')](_0x3287('0x1b'),_0xab97c8);logger['debug']('ShowCmContact',_0xab97c8,JSON[_0x3287('0x25')](_0x4e0f66));_0x3a4808(_0x4e0f66);})[_0x3287('0x1a')](function(_0x23b89a){logger['error'](_0x3287('0x1b'),_0x23b89a[_0x3287('0x18')],_0xab97c8);_0x1cbf1f(_0x231d95[_0x3287('0x16')](0x1f4,_0x23b89a['message']));});});};exports[_0x3287('0x26')]=function(_0x4b66bc){var _0x2144d5=this;return new Promise(function(_0x1499ca,_0x1d135c){return db[_0x3287('0x1c')][_0x3287('0x27')](_0x4b66bc['body'],{'raw':_0x4b66bc['options']?_0x4b66bc[_0x3287('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0x3287('0x12')](function(_0x3d85e8){logger[_0x3287('0x13')]('CreateCmContact',_0x4b66bc);logger['debug'](_0x3287('0x26'),_0x4b66bc,JSON[_0x3287('0x25')](_0x3d85e8));_0x1499ca(_0x3d85e8);})[_0x3287('0x1a')](function(_0x4592a6){logger['error'](_0x3287('0x26'),_0x4592a6['message'],_0x4b66bc);_0x1d135c(_0x2144d5['error'](0x1f4,_0x4592a6['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe0ae=['update','emit','removeListener','length','cmContact:','remove'];(function(_0x49b207,_0x408ade){var _0x2dc8fa=function(_0x150975){while(--_0x150975){_0x49b207['push'](_0x49b207['shift']());}};_0x2dc8fa(++_0x408ade);}(_0xe0ae,0xa1));var _0xee0a=function(_0x2c18a8,_0x24eaa5){_0x2c18a8=_0x2c18a8-0x0;var _0x1e009a=_0xe0ae[_0x2c18a8];return _0x1e009a;};'use strict';var CmContactEvents=require('./cmContact.events');var events=['save',_0xee0a('0x0'),_0xee0a('0x1')];function createListener(_0x49a5e2,_0x42f3f6){return function(_0x4fa2cf){_0x42f3f6[_0xee0a('0x2')](_0x49a5e2,_0x4fa2cf);};}function removeListener(_0x45bbca,_0x4cd518){return function(){CmContactEvents[_0xee0a('0x3')](_0x45bbca,_0x4cd518);};}exports['register']=function(_0x5bef07){for(var _0x39a302=0x0,_0x1c5071=events[_0xee0a('0x4')];_0x39a302<_0x1c5071;_0x39a302++){var _0x344355=events[_0x39a302];var _0x5e6d2e=createListener(_0xee0a('0x5')+_0x344355,_0x5bef07);CmContactEvents['on'](_0x344355,_0x5e6d2e);}};
\ No newline at end of file
+var _0x6753=['save','remove','update','length','cmContact:','./cmContact.events'];(function(_0x11ca63,_0xea9f9c){var _0x41f1f6=function(_0xb80b69){while(--_0xb80b69){_0x11ca63['push'](_0x11ca63['shift']());}};_0x41f1f6(++_0xea9f9c);}(_0x6753,0xa1));var _0x3675=function(_0x303882,_0x1ba70b){_0x303882=_0x303882-0x0;var _0x42fa85=_0x6753[_0x303882];return _0x42fa85;};'use strict';var CmContactEvents=require(_0x3675('0x0'));var events=[_0x3675('0x1'),_0x3675('0x2'),_0x3675('0x3')];function createListener(_0x485956,_0x2efb4b){return function(_0x461046){_0x2efb4b['emit'](_0x485956,_0x461046);};}function removeListener(_0x2c892a,_0x2b2c83){return function(){CmContactEvents['removeListener'](_0x2c892a,_0x2b2c83);};}exports['register']=function(_0x4e4e73){for(var _0x396a35=0x0,_0x1fbfe8=events[_0x3675('0x4')];_0x396a35<_0x1fbfe8;_0x396a35++){var _0x1a5526=events[_0x396a35];var _0x154571=createListener(_0x3675('0x5')+_0x1a5526,_0x4e4e73);CmContactEvents['on'](_0x1a5526,_0x154571);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb615=['delete','destroy','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./cmContact.controller','isAuthenticated','/describe','describe','get','/:id','show','/:id/tags','getTags','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/merge','post','create','/create_many','bulkCreate','join','root','server/files/tmp','originalname','replace','format','%s-%s%s','basename','extname','now','single','file','uploadCsv','diskStorage','update'];(function(_0x2b1d1b,_0x1fea34){var _0x11a64a=function(_0x10870c){while(--_0x10870c){_0x2b1d1b['push'](_0x2b1d1b['shift']());}};_0x11a64a(++_0x1fea34);}(_0xb615,0x14a));var _0x5b61=function(_0x1ef31f,_0xed6003){_0x1ef31f=_0x1ef31f-0x0;var _0x2f5037=_0xb615[_0x1ef31f];return _0x2f5037;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x5b61('0x0'));var timeout=require(_0x5b61('0x1'));var express=require(_0x5b61('0x2'));var router=express[_0x5b61('0x3')]();var auth=require(_0x5b61('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x5b61('0x5'));var controller=require(_0x5b61('0x6'));router['get']('/',auth[_0x5b61('0x7')](),controller['index']);router['get'](_0x5b61('0x8'),auth['isAuthenticated'](),controller[_0x5b61('0x9')]);router[_0x5b61('0xa')](_0x5b61('0xb'),auth['isAuthenticated'](),controller[_0x5b61('0xc')]);router[_0x5b61('0xa')](_0x5b61('0xd'),auth[_0x5b61('0x7')](),controller[_0x5b61('0xe')]);router['get']('/:id/hoppers',auth[_0x5b61('0x7')](),controller['getHoppers']);router[_0x5b61('0xa')](_0x5b61('0xf'),auth[_0x5b61('0x7')](),controller[_0x5b61('0x10')]);router[_0x5b61('0xa')](_0x5b61('0x11'),auth[_0x5b61('0x7')](),controller[_0x5b61('0x12')]);router['get']('/:id/jscripty_sessions',auth[_0x5b61('0x7')](),controller['getJscriptySessions']);router['post'](_0x5b61('0x13'),auth[_0x5b61('0x7')](),controller['merge']);router[_0x5b61('0x14')]('/',auth[_0x5b61('0x7')](),controller[_0x5b61('0x15')]);router[_0x5b61('0x14')](_0x5b61('0x16'),auth[_0x5b61('0x7')](),controller[_0x5b61('0x17')]);router['post'](_0x5b61('0xd'),auth[_0x5b61('0x7')](),controller['setTags']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x1d211c,_0x14159b,_0x3b4e90){_0x3b4e90(null,path[_0x5b61('0x18')](config[_0x5b61('0x19')],_0x5b61('0x1a')));},'filename':function(_0x23fb7e,_0x172529,_0x483ff6){_0x172529[_0x5b61('0x1b')]=_0x172529[_0x5b61('0x1b')][_0x5b61('0x1c')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x483ff6(null,util[_0x5b61('0x1d')](_0x5b61('0x1e'),path[_0x5b61('0x1f')](_0x172529[_0x5b61('0x1b')],path[_0x5b61('0x20')](_0x172529[_0x5b61('0x1b')])),Date[_0x5b61('0x21')](),path[_0x5b61('0x20')](_0x172529[_0x5b61('0x1b')])));}})});router['post']('/csv',upload[_0x5b61('0x22')](_0x5b61('0x23')),controller[_0x5b61('0x24')]);var upload=multer({'storage':multer[_0x5b61('0x25')]({'destination':function(_0x43855e,_0x325af8,_0x46133b){_0x46133b(null,path[_0x5b61('0x18')](config[_0x5b61('0x19')],_0x5b61('0x1a')));},'filename':function(_0x4dcd6f,_0x353986,_0x412fdf){_0x353986[_0x5b61('0x1b')]=_0x353986[_0x5b61('0x1b')][_0x5b61('0x1c')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x412fdf(null,util[_0x5b61('0x1d')](_0x5b61('0x1e'),path[_0x5b61('0x1f')](_0x353986[_0x5b61('0x1b')],path[_0x5b61('0x20')](_0x353986[_0x5b61('0x1b')])),Date[_0x5b61('0x21')](),path['extname'](_0x353986[_0x5b61('0x1b')])));}})});router[_0x5b61('0x14')]('/upload',upload[_0x5b61('0x22')](_0x5b61('0x23')),controller['upload']);router['post']('/upload/:id',auth['isAuthenticated'](),controller['import']);router['put'](_0x5b61('0xb'),auth[_0x5b61('0x7')](),controller[_0x5b61('0x26')]);router[_0x5b61('0x27')]('/:id',auth[_0x5b61('0x7')](),controller[_0x5b61('0x28')]);module['exports']=router;
\ No newline at end of file
+var _0x511e=['../../components/interaction/service','../../config/environment','./cmContact.controller','isAuthenticated','index','describe','/:id','show','get','/:id/tags','getTags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','getJscriptySessions','post','/merge','create','/create_many','bulkCreate','setTags','join','server/files/tmp','originalname','replace','%s-%s%s','basename','extname','file','uploadCsv','/upload','single','upload','/upload/:id','import','put','delete','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x469ae6,_0x1fb476){var _0xe9618b=function(_0xd5c08f){while(--_0xd5c08f){_0x469ae6['push'](_0x469ae6['shift']());}};_0xe9618b(++_0x1fb476);}(_0x511e,0xea));var _0xe511=function(_0x17c8cc,_0x5e5647){_0x17c8cc=_0x17c8cc-0x0;var _0x3db4eb=_0x511e[_0x17c8cc];return _0x3db4eb;};'use strict';var multer=require(_0xe511('0x0'));var util=require(_0xe511('0x1'));var path=require(_0xe511('0x2'));var timeout=require(_0xe511('0x3'));var express=require(_0xe511('0x4'));var router=express[_0xe511('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0xe511('0x6'));var config=require(_0xe511('0x7'));var controller=require(_0xe511('0x8'));router['get']('/',auth[_0xe511('0x9')](),controller[_0xe511('0xa')]);router['get']('/describe',auth[_0xe511('0x9')](),controller[_0xe511('0xb')]);router['get'](_0xe511('0xc'),auth[_0xe511('0x9')](),controller[_0xe511('0xd')]);router[_0xe511('0xe')](_0xe511('0xf'),auth[_0xe511('0x9')](),controller[_0xe511('0x10')]);router[_0xe511('0xe')](_0xe511('0x11'),auth[_0xe511('0x9')](),controller[_0xe511('0x12')]);router[_0xe511('0xe')](_0xe511('0x13'),auth[_0xe511('0x9')](),controller[_0xe511('0x14')]);router[_0xe511('0xe')](_0xe511('0x15'),auth['isAuthenticated'](),controller[_0xe511('0x16')]);router[_0xe511('0xe')]('/:id/jscripty_sessions',auth[_0xe511('0x9')](),controller[_0xe511('0x17')]);router[_0xe511('0x18')](_0xe511('0x19'),auth[_0xe511('0x9')](),controller['merge']);router[_0xe511('0x18')]('/',auth[_0xe511('0x9')](),controller[_0xe511('0x1a')]);router[_0xe511('0x18')](_0xe511('0x1b'),auth[_0xe511('0x9')](),controller[_0xe511('0x1c')]);router[_0xe511('0x18')](_0xe511('0xf'),auth[_0xe511('0x9')](),controller[_0xe511('0x1d')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x5dadf6,_0x565592,_0xeac8b){_0xeac8b(null,path[_0xe511('0x1e')](config['root'],_0xe511('0x1f')));},'filename':function(_0x3597c1,_0x23a3f7,_0x49037e){_0x23a3f7[_0xe511('0x20')]=_0x23a3f7[_0xe511('0x20')][_0xe511('0x21')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x49037e(null,util['format'](_0xe511('0x22'),path[_0xe511('0x23')](_0x23a3f7[_0xe511('0x20')],path[_0xe511('0x24')](_0x23a3f7[_0xe511('0x20')])),Date['now'](),path['extname'](_0x23a3f7[_0xe511('0x20')])));}})});router[_0xe511('0x18')]('/csv',upload['single'](_0xe511('0x25')),controller[_0xe511('0x26')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x4dcdb4,_0x49652e,_0x27adfc){_0x27adfc(null,path[_0xe511('0x1e')](config['root'],_0xe511('0x1f')));},'filename':function(_0x1125c8,_0x4b0c28,_0x4e5ec9){_0x4b0c28['originalname']=_0x4b0c28[_0xe511('0x20')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x4e5ec9(null,util['format']('%s-%s%s',path['basename'](_0x4b0c28[_0xe511('0x20')],path[_0xe511('0x24')](_0x4b0c28['originalname'])),Date['now'](),path['extname'](_0x4b0c28[_0xe511('0x20')])));}})});router[_0xe511('0x18')](_0xe511('0x27'),upload[_0xe511('0x28')](_0xe511('0x25')),controller[_0xe511('0x29')]);router[_0xe511('0x18')](_0xe511('0x2a'),auth[_0xe511('0x9')](),controller[_0xe511('0x2b')]);router[_0xe511('0x2c')](_0xe511('0xc'),auth[_0xe511('0x9')](),controller['update']);router[_0xe511('0x2d')]('/:id',auth[_0xe511('0x9')](),controller[_0xe511('0x2e')]);module[_0xe511('0x2f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a99=['values','isArray','stringify','BOOLEAN','sequelize','exports','getDataValue','alias','setDataValue','name','STRING','long','type','select'];(function(_0x3653c7,_0xadb356){var _0x58a021=function(_0x20b237){while(--_0x20b237){_0x3653c7['push'](_0x3653c7['shift']());}};_0x58a021(++_0xadb356);}(_0x5a99,0x162));var _0x95a9=function(_0x58f3e8,_0x3de48d){_0x58f3e8=_0x58f3e8-0x0;var _0x2f6cd2=_0x5a99[_0x58f3e8];return _0x2f6cd2;};'use strict';var Sequelize=require(_0x95a9('0x0'));var _=require('lodash');module[_0x95a9('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x3d27f9){return this[_0x95a9('0x2')](_0x95a9('0x3'));}},'alias':{'type':Sequelize['STRING'],'allowNull':![],'set':function(_0x5b9357){this[_0x95a9('0x4')](_0x95a9('0x3'),_0x5b9357?_0x5b9357:this[_0x95a9('0x2')](_0x95a9('0x5')));}},'type':{'type':Sequelize[_0x95a9('0x6')],'allowNull':![]},'values':{'type':Sequelize['TEXT'](_0x95a9('0x7')),'get':function(){if(this[_0x95a9('0x2')](_0x95a9('0x8'))===_0x95a9('0x9')){return JSON['parse'](this[_0x95a9('0x2')](_0x95a9('0xa')));}else{return this[_0x95a9('0x2')](_0x95a9('0xa'));}},'set':function(_0x36d356){if(Array[_0x95a9('0xb')](_0x36d356)){this[_0x95a9('0x4')](_0x95a9('0xa'),JSON[_0x95a9('0xc')](_0x36d356));}else{this[_0x95a9('0x4')](_0x95a9('0xa'),_0x36d356);}}},'required':{'type':Sequelize[_0x95a9('0xd')],'defaultValue':![]}};
\ No newline at end of file
+var _0x32b9=['exports','VIRTUAL','getDataValue','alias','STRING','setDataValue','TEXT','type','select','values','stringify','BOOLEAN','sequelize','lodash'];(function(_0x296e0e,_0x342fa4){var _0x101c03=function(_0x5b9269){while(--_0x5b9269){_0x296e0e['push'](_0x296e0e['shift']());}};_0x101c03(++_0x342fa4);}(_0x32b9,0x1b0));var _0x932b=function(_0x445976,_0x406585){_0x445976=_0x445976-0x0;var _0x5f2971=_0x32b9[_0x445976];return _0x5f2971;};'use strict';var Sequelize=require(_0x932b('0x0'));var _=require(_0x932b('0x1'));module[_0x932b('0x2')]={'name':{'type':Sequelize[_0x932b('0x3')],'get':function(_0x4d87f0){return this[_0x932b('0x4')](_0x932b('0x5'));}},'alias':{'type':Sequelize[_0x932b('0x6')],'allowNull':![],'set':function(_0x572330){this[_0x932b('0x7')]('alias',_0x572330?_0x572330:this[_0x932b('0x4')]('name'));}},'type':{'type':Sequelize[_0x932b('0x6')],'allowNull':![]},'values':{'type':Sequelize[_0x932b('0x8')]('long'),'get':function(){if(this[_0x932b('0x4')](_0x932b('0x9'))===_0x932b('0xa')){return JSON['parse'](this[_0x932b('0x4')](_0x932b('0xb')));}else{return this['getDataValue']('values');}},'set':function(_0x598ad9){if(Array['isArray'](_0x598ad9)){this[_0x932b('0x7')](_0x932b('0xb'),JSON[_0x932b('0xc')](_0x598ad9));}else{this[_0x932b('0x7')](_0x932b('0xb'),_0x598ad9);}}},'required':{'type':Sequelize[_0x932b('0xd')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09df=['destroy','error','name','send','index','CmCustomField','keys','query','dateStart','dateEnd','filters','intersection','model','attributes','fields','nolimit','limit','order','sort','where','pick','add','day','merge','map','filter','options','includeAll','include','rows','catch','show','params','length','find','body','create','Sequelize','TEXT','text','type','INTEGER','switch','BOOLEAN','sequelize','queryInterface','format','cf_%d','html-pdf','eml-format','zip-dir','moment','util','path','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','set','Content-Range','json','apply','reject','save','then'];(function(_0x476002,_0x4867b4){var _0x5948d0=function(_0x1807f1){while(--_0x1807f1){_0x476002['push'](_0x476002['shift']());}};_0x5948d0(++_0x4867b4);}(_0x09df,0x164));var _0xf09d=function(_0x2db12b,_0x30ab1d){_0x2db12b=_0x2db12b-0x0;var _0x20990b=_0x09df[_0x2db12b];return _0x20990b;};'use strict';var pdf=require(_0xf09d('0x0'));var emlformat=require(_0xf09d('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xf09d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xf09d('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xf09d('0x4'));var path=require(_0xf09d('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xf09d('0x6'));var squel=require('squel');var crypto=require(_0xf09d('0x7'));var jsforce=require(_0xf09d('0x8'));var deskjs=require(_0xf09d('0x9'));var toCsv=require(_0xf09d('0xa'));var querystring=require(_0xf09d('0xb'));var Papa=require(_0xf09d('0xc'));var qs=require(_0xf09d('0xd'));var logger=require('../../config/logger')(_0xf09d('0xe'));var utils=require(_0xf09d('0xf'));var config=require('../../config/environment');var db=require(_0xf09d('0x10'))['db'];function respondWithStatusCode(_0x5eab7c,_0x2f9736){_0x2f9736=_0x2f9736||0xcc;return function(_0x25199f){if(_0x25199f){return _0x5eab7c[_0xf09d('0x11')](_0x2f9736);}return _0x5eab7c[_0xf09d('0x12')](_0x2f9736)[_0xf09d('0x13')]();};}function respondWithResult(_0x1ab8e4,_0xda2939){_0xda2939=_0xda2939||0xc8;return function(_0x2a92f3){if(_0x2a92f3){return _0x1ab8e4[_0xf09d('0x12')](_0xda2939)['json'](_0x2a92f3);}};}function respondWithFilteredResult(_0x427981,_0x1cbbdf){return function(_0x6bb95b){if(_0x6bb95b){var _0x486d20=_0x6bb95b[_0xf09d('0x14')],_0x5572b4=_0x1cbbdf['offset'],_0x214e5b=_0x1cbbdf[_0xf09d('0x15')]+_0x1cbbdf['limit'],_0x3a8652;if(_0x214e5b>=_0x486d20){_0x214e5b=_0x486d20;_0x3a8652=0xc8;}else{_0x3a8652=0xce;}_0x427981[_0xf09d('0x12')](_0x3a8652);return _0x427981[_0xf09d('0x16')](_0xf09d('0x17'),_0x5572b4+'-'+_0x214e5b+'/'+_0x486d20)[_0xf09d('0x18')](_0x6bb95b);}return null;};}function patchUpdates(_0x57e3f8){return function(_0x38083e){try{jsonpatch[_0xf09d('0x19')](_0x38083e,_0x57e3f8,!![]);}catch(_0x106fb0){return BPromise[_0xf09d('0x1a')](_0x106fb0);}return _0x38083e[_0xf09d('0x1b')]();};}function saveUpdates(_0x2b486f,_0x4f336c){return function(_0x2f341d){if(_0x2f341d){return _0x2f341d['update'](_0x2b486f)[_0xf09d('0x1c')](function(_0x342e14){return _0x342e14;});}return null;};}function removeEntity(_0x408ede,_0x236222){return function(_0x11eadd){if(_0x11eadd){return _0x11eadd[_0xf09d('0x1d')]()['then'](function(){_0x408ede[_0xf09d('0x12')](0xcc)[_0xf09d('0x13')]();});}};}function handleEntityNotFound(_0x2ab38c,_0x1012dd){return function(_0x12af9f){if(!_0x12af9f){_0x2ab38c[_0xf09d('0x11')](0x194);}return _0x12af9f;};}function handleError(_0x15e861,_0x1affe3){_0x1affe3=_0x1affe3||0x1f4;return function(_0x507484){logger[_0xf09d('0x1e')](_0x507484['stack']);if(_0x507484[_0xf09d('0x1f')]){delete _0x507484['name'];}_0x15e861[_0xf09d('0x12')](_0x1affe3)[_0xf09d('0x20')](_0x507484);};}exports[_0xf09d('0x21')]=function(_0x3363ae,_0x44711a){var _0x2aa592={},_0x56b56a={},_0xfbde68={'count':0x0,'rows':[]};var _0x35957d=db[_0xf09d('0x22')]['rawAttributes'];_0x56b56a['model']=_['differenceBy'](_[_0xf09d('0x23')](_0x35957d),[_0xf09d('0x1f')]);var _0x28eb98={'dateStart':_0x3363ae[_0xf09d('0x24')][_0xf09d('0x25')],'dateEnd':_0x3363ae[_0xf09d('0x24')][_0xf09d('0x26')]};delete _0x3363ae['query'][_0xf09d('0x25')];delete _0x3363ae['query']['dateEnd'];_0x56b56a[_0xf09d('0x24')]=_[_0xf09d('0x23')](_0x3363ae['query']);_0x56b56a[_0xf09d('0x27')]=_[_0xf09d('0x28')](_0x56b56a[_0xf09d('0x29')],_0x56b56a['query']);_0x2aa592[_0xf09d('0x2a')]=_[_0xf09d('0x28')](_0x56b56a['model'],qs[_0xf09d('0x2b')](_0x3363ae[_0xf09d('0x24')]['fields']));_0x2aa592['attributes']=_0x2aa592[_0xf09d('0x2a')]['length']?_0x2aa592['attributes']:_0x56b56a[_0xf09d('0x29')];if(!_0x3363ae[_0xf09d('0x24')]['hasOwnProperty'](_0xf09d('0x2c'))){_0x2aa592['limit']=qs['limit'](_0x3363ae['query'][_0xf09d('0x2d')]);_0x2aa592[_0xf09d('0x15')]=qs['offset'](_0x3363ae[_0xf09d('0x24')][_0xf09d('0x15')]);}_0x2aa592[_0xf09d('0x2e')]=qs['sort'](_0x3363ae['query'][_0xf09d('0x2f')]);_0x2aa592[_0xf09d('0x30')]=qs[_0xf09d('0x27')](_[_0xf09d('0x31')](_0x3363ae[_0xf09d('0x24')],_0x56b56a['filters']));if(_0x28eb98['dateStart']){if(_0x28eb98[_0xf09d('0x26')]){_0x28eb98[_0xf09d('0x26')]=moment(_0x28eb98[_0xf09d('0x26')])[_0xf09d('0x32')](0x1,_0xf09d('0x33'));}else{_0x28eb98[_0xf09d('0x26')]=moment(_0x28eb98[_0xf09d('0x25')])[_0xf09d('0x32')](0x1,_0xf09d('0x33'));}_[_0xf09d('0x34')](_0x2aa592[_0xf09d('0x30')],{'createdAt':{'$gte':_0x28eb98[_0xf09d('0x25')],'$lte':_0x28eb98['dateEnd']}});}if(_0x3363ae[_0xf09d('0x24')]['filter']){_0x2aa592[_0xf09d('0x30')]=_['merge'](_0x2aa592[_0xf09d('0x30')],{'$or':_[_0xf09d('0x35')](_0x2aa592[_0xf09d('0x2a')],function(_0x3e2b69){var _0x3bd5b2={};_0x3bd5b2[_0x3e2b69]={'$like':'%'+_0x3363ae[_0xf09d('0x24')][_0xf09d('0x36')]+'%'};return _0x3bd5b2;})});}_0x2aa592=_[_0xf09d('0x34')]({},_0x2aa592,_0x3363ae[_0xf09d('0x37')]);var _0x2e23de={'where':_0x2aa592[_0xf09d('0x30')]};return db[_0xf09d('0x22')][_0xf09d('0x14')](_0x2e23de)[_0xf09d('0x1c')](function(_0x34127a){_0xfbde68[_0xf09d('0x14')]=_0x34127a;if(_0x3363ae[_0xf09d('0x24')][_0xf09d('0x38')]){_0x2aa592[_0xf09d('0x39')]=[{'all':!![]}];}return db[_0xf09d('0x22')]['findAll'](_0x2aa592);})[_0xf09d('0x1c')](function(_0xa09f3e){_0xfbde68[_0xf09d('0x3a')]=_0xa09f3e;return _0xfbde68;})[_0xf09d('0x1c')](respondWithFilteredResult(_0x44711a,_0x2aa592))[_0xf09d('0x3b')](handleError(_0x44711a,null));};exports[_0xf09d('0x3c')]=function(_0x2e1fd3,_0x512e4c){var _0x52ee42={'raw':!![],'where':{'id':_0x2e1fd3[_0xf09d('0x3d')]['id']}},_0x4c2021={};_0x4c2021[_0xf09d('0x29')]=_[_0xf09d('0x23')](db[_0xf09d('0x22')]['rawAttributes']);_0x4c2021['query']=_[_0xf09d('0x23')](_0x2e1fd3[_0xf09d('0x24')]);_0x4c2021['filters']=_[_0xf09d('0x28')](_0x4c2021[_0xf09d('0x29')],_0x4c2021[_0xf09d('0x24')]);_0x52ee42[_0xf09d('0x2a')]=_[_0xf09d('0x28')](_0x4c2021[_0xf09d('0x29')],qs['fields'](_0x2e1fd3['query']['fields']));_0x52ee42['attributes']=_0x52ee42[_0xf09d('0x2a')][_0xf09d('0x3e')]?_0x52ee42[_0xf09d('0x2a')]:_0x4c2021['model'];if(_0x2e1fd3['query'][_0xf09d('0x38')]){_0x52ee42[_0xf09d('0x39')]=[{'all':!![]}];}_0x52ee42=_[_0xf09d('0x34')]({},_0x52ee42,_0x2e1fd3[_0xf09d('0x37')]);return db[_0xf09d('0x22')][_0xf09d('0x3f')](_0x52ee42)['then'](handleEntityNotFound(_0x512e4c,null))[_0xf09d('0x1c')](respondWithResult(_0x512e4c,null))['catch'](handleError(_0x512e4c,null));};exports['update']=function(_0x6204fb,_0x21f6c7){if(_0x6204fb[_0xf09d('0x40')]['id']){delete _0x6204fb['body']['id'];}return db['CmCustomField'][_0xf09d('0x3f')]({'where':{'id':_0x6204fb[_0xf09d('0x3d')]['id']}})[_0xf09d('0x1c')](handleEntityNotFound(_0x21f6c7,null))[_0xf09d('0x1c')](saveUpdates(_0x6204fb['body'],null))[_0xf09d('0x1c')](respondWithResult(_0x21f6c7,null))[_0xf09d('0x3b')](handleError(_0x21f6c7,null));};exports[_0xf09d('0x1d')]=function(_0x4cdbff,_0x1edacc){return db[_0xf09d('0x22')][_0xf09d('0x3f')]({'where':{'id':_0x4cdbff[_0xf09d('0x3d')]['id']}})[_0xf09d('0x1c')](handleEntityNotFound(_0x1edacc,null))['then'](removeEntity(_0x1edacc,null))[_0xf09d('0x3b')](handleError(_0x1edacc,null));};exports[_0xf09d('0x41')]=function(_0xba97be,_0x334943){var _0x2b6b6b;return db['sequelize']['transaction'](function(_0x40c355){return db['CmCustomField'][_0xf09d('0x41')](_0xba97be[_0xf09d('0x40')],{'transaction':_0x40c355})[_0xf09d('0x1c')](function(_0x832840){_0x2b6b6b=_0x832840;var _0x386167={'type':db[_0xf09d('0x42')][_0xf09d('0x43')],'transaction':_0x40c355};switch(_0xba97be['body']['type']){case _0xf09d('0x44'):_0x386167[_0xf09d('0x45')]=db['Sequelize'][_0xf09d('0x43')];break;case'number':_0x386167['type']=db[_0xf09d('0x42')][_0xf09d('0x46')];break;case _0xf09d('0x47'):_0x386167['type']=db[_0xf09d('0x42')][_0xf09d('0x48')];_0x386167['defaultValue']=![];break;default:}return db[_0xf09d('0x49')][_0xf09d('0x4a')]['addColumn']('cm_contacts',util[_0xf09d('0x4b')](_0xf09d('0x4c'),_0x2b6b6b['id']),_0x386167);})[_0xf09d('0x1c')](function(){return _0x2b6b6b;});})[_0xf09d('0x1c')](respondWithResult(_0x334943,0xc9))['catch'](handleError(_0x334943,null));};
\ No newline at end of file
+var _0x2fef=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','add','day','merge','filter','where','options','includeAll','findAll','show','params','CmCustomField','include','find','body','transaction','create','Sequelize','TEXT','type','text','number','INTEGER','switch','BOOLEAN','defaultValue','sequelize','queryInterface','addColumn','format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/logger','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','index','rawAttributes','model','differenceBy','keys','query','dateStart','dateEnd','filters','intersection'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2fef,0x174));var _0xf2fe=function(_0x222054,_0x45620f){_0x222054=_0x222054-0x0;var _0x5de492=_0x2fef[_0x222054];return _0x5de492;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf2fe('0x0'));var rimraf=require(_0xf2fe('0x1'));var zipdir=require(_0xf2fe('0x2'));var jsonpatch=require(_0xf2fe('0x3'));var rp=require(_0xf2fe('0x4'));var moment=require(_0xf2fe('0x5'));var BPromise=require(_0xf2fe('0x6'));var Mustache=require(_0xf2fe('0x7'));var util=require(_0xf2fe('0x8'));var path=require(_0xf2fe('0x9'));var sox=require(_0xf2fe('0xa'));var csv=require(_0xf2fe('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xf2fe('0xc'));var crypto=require('crypto');var jsforce=require(_0xf2fe('0xd'));var deskjs=require(_0xf2fe('0xe'));var toCsv=require(_0xf2fe('0xb'));var querystring=require(_0xf2fe('0xf'));var Papa=require('papaparse');var Redis=require(_0xf2fe('0x10'));var qs=require(_0xf2fe('0x11'));var logger=require(_0xf2fe('0x12'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0xf2fe('0x13'))['db'];function respondWithStatusCode(_0x67039,_0x5c338f){_0x5c338f=_0x5c338f||0xcc;return function(_0x323f1f){if(_0x323f1f){return _0x67039['sendStatus'](_0x5c338f);}return _0x67039[_0xf2fe('0x14')](_0x5c338f)[_0xf2fe('0x15')]();};}function respondWithResult(_0x2bd6b7,_0x3778bb){_0x3778bb=_0x3778bb||0xc8;return function(_0x48343d){if(_0x48343d){return _0x2bd6b7[_0xf2fe('0x14')](_0x3778bb)[_0xf2fe('0x16')](_0x48343d);}};}function respondWithFilteredResult(_0x130515,_0x13251d){return function(_0x3ce230){if(_0x3ce230){var _0x3acb94=_0x3ce230[_0xf2fe('0x17')],_0x2cdcf5=_0x13251d[_0xf2fe('0x18')],_0x1ce1ab=_0x13251d['offset']+_0x13251d[_0xf2fe('0x19')],_0x3f06f4;if(_0x1ce1ab>=_0x3acb94){_0x1ce1ab=_0x3acb94;_0x3f06f4=0xc8;}else{_0x3f06f4=0xce;}_0x130515[_0xf2fe('0x14')](_0x3f06f4);return _0x130515[_0xf2fe('0x1a')](_0xf2fe('0x1b'),_0x2cdcf5+'-'+_0x1ce1ab+'/'+_0x3acb94)[_0xf2fe('0x16')](_0x3ce230);}return null;};}function patchUpdates(_0x54d33a){return function(_0x13bd6b){try{jsonpatch[_0xf2fe('0x1c')](_0x13bd6b,_0x54d33a,!![]);}catch(_0x3a54f5){return BPromise[_0xf2fe('0x1d')](_0x3a54f5);}return _0x13bd6b[_0xf2fe('0x1e')]();};}function saveUpdates(_0x11d552,_0x469b9c){return function(_0x4e8b72){if(_0x4e8b72){return _0x4e8b72[_0xf2fe('0x1f')](_0x11d552)[_0xf2fe('0x20')](function(_0x4803ad){return _0x4803ad;});}return null;};}function removeEntity(_0x5a917b,_0x7f62c0){return function(_0x4bffbc){if(_0x4bffbc){return _0x4bffbc[_0xf2fe('0x21')]()[_0xf2fe('0x20')](function(){_0x5a917b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a03b2,_0x43bb5f){return function(_0x3ca329){if(!_0x3ca329){_0x2a03b2[_0xf2fe('0x22')](0x194);}return _0x3ca329;};}function handleError(_0x33b4e0,_0x5000a0){_0x5000a0=_0x5000a0||0x1f4;return function(_0x2264b2){logger[_0xf2fe('0x23')](_0x2264b2['stack']);if(_0x2264b2[_0xf2fe('0x24')]){delete _0x2264b2[_0xf2fe('0x24')];}_0x33b4e0['status'](_0x5000a0)[_0xf2fe('0x25')](_0x2264b2);};}exports[_0xf2fe('0x26')]=function(_0x2d3cd1,_0x38dc1a){var _0x36b46c={},_0x1eac88={},_0x4a6edc={'count':0x0,'rows':[]};var _0x502570=db['CmCustomField'][_0xf2fe('0x27')];_0x1eac88[_0xf2fe('0x28')]=_[_0xf2fe('0x29')](_[_0xf2fe('0x2a')](_0x502570),['name']);var _0x18197d={'dateStart':_0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x2c')],'dateEnd':_0x2d3cd1['query'][_0xf2fe('0x2d')]};delete _0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x2c')];delete _0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x2d')];_0x1eac88[_0xf2fe('0x2b')]=_[_0xf2fe('0x2a')](_0x2d3cd1['query']);_0x1eac88[_0xf2fe('0x2e')]=_[_0xf2fe('0x2f')](_0x1eac88['model'],_0x1eac88[_0xf2fe('0x2b')]);_0x36b46c[_0xf2fe('0x30')]=_['intersection'](_0x1eac88[_0xf2fe('0x28')],qs[_0xf2fe('0x31')](_0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x31')]));_0x36b46c[_0xf2fe('0x30')]=_0x36b46c[_0xf2fe('0x30')][_0xf2fe('0x32')]?_0x36b46c['attributes']:_0x1eac88[_0xf2fe('0x28')];if(!_0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x33')](_0xf2fe('0x34'))){_0x36b46c['limit']=qs[_0xf2fe('0x19')](_0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x19')]);_0x36b46c[_0xf2fe('0x18')]=qs['offset'](_0x2d3cd1[_0xf2fe('0x2b')]['offset']);}_0x36b46c[_0xf2fe('0x35')]=qs[_0xf2fe('0x36')](_0x2d3cd1['query'][_0xf2fe('0x36')]);_0x36b46c['where']=qs[_0xf2fe('0x2e')](_['pick'](_0x2d3cd1[_0xf2fe('0x2b')],_0x1eac88[_0xf2fe('0x2e')]));if(_0x18197d[_0xf2fe('0x2c')]){if(_0x18197d[_0xf2fe('0x2d')]){_0x18197d['dateEnd']=moment(_0x18197d[_0xf2fe('0x2d')])[_0xf2fe('0x37')](0x1,_0xf2fe('0x38'));}else{_0x18197d[_0xf2fe('0x2d')]=moment(_0x18197d[_0xf2fe('0x2c')])['add'](0x1,'day');}_[_0xf2fe('0x39')](_0x36b46c['where'],{'createdAt':{'$gte':_0x18197d[_0xf2fe('0x2c')],'$lte':_0x18197d['dateEnd']}});}if(_0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x3a')]){_0x36b46c[_0xf2fe('0x3b')]=_['merge'](_0x36b46c[_0xf2fe('0x3b')],{'$or':_['map'](_0x36b46c['attributes'],function(_0x6d07d1){var _0xcdfd17={};_0xcdfd17[_0x6d07d1]={'$like':'%'+_0x2d3cd1['query']['filter']+'%'};return _0xcdfd17;})});}_0x36b46c=_[_0xf2fe('0x39')]({},_0x36b46c,_0x2d3cd1[_0xf2fe('0x3c')]);var _0x49bf84={'where':_0x36b46c[_0xf2fe('0x3b')]};return db['CmCustomField'][_0xf2fe('0x17')](_0x49bf84)[_0xf2fe('0x20')](function(_0x263a0a){_0x4a6edc[_0xf2fe('0x17')]=_0x263a0a;if(_0x2d3cd1[_0xf2fe('0x2b')][_0xf2fe('0x3d')]){_0x36b46c['include']=[{'all':!![]}];}return db['CmCustomField'][_0xf2fe('0x3e')](_0x36b46c);})['then'](function(_0x283b0a){_0x4a6edc['rows']=_0x283b0a;return _0x4a6edc;})['then'](respondWithFilteredResult(_0x38dc1a,_0x36b46c))['catch'](handleError(_0x38dc1a,null));};exports[_0xf2fe('0x3f')]=function(_0x45cb9b,_0x3afe38){var _0x374f1a={'raw':!![],'where':{'id':_0x45cb9b[_0xf2fe('0x40')]['id']}},_0x3429f6={};_0x3429f6['model']=_[_0xf2fe('0x2a')](db[_0xf2fe('0x41')]['rawAttributes']);_0x3429f6[_0xf2fe('0x2b')]=_[_0xf2fe('0x2a')](_0x45cb9b['query']);_0x3429f6[_0xf2fe('0x2e')]=_[_0xf2fe('0x2f')](_0x3429f6['model'],_0x3429f6[_0xf2fe('0x2b')]);_0x374f1a[_0xf2fe('0x30')]=_[_0xf2fe('0x2f')](_0x3429f6[_0xf2fe('0x28')],qs['fields'](_0x45cb9b['query'][_0xf2fe('0x31')]));_0x374f1a[_0xf2fe('0x30')]=_0x374f1a['attributes'][_0xf2fe('0x32')]?_0x374f1a[_0xf2fe('0x30')]:_0x3429f6[_0xf2fe('0x28')];if(_0x45cb9b['query'][_0xf2fe('0x3d')]){_0x374f1a[_0xf2fe('0x42')]=[{'all':!![]}];}_0x374f1a=_[_0xf2fe('0x39')]({},_0x374f1a,_0x45cb9b[_0xf2fe('0x3c')]);return db[_0xf2fe('0x41')][_0xf2fe('0x43')](_0x374f1a)['then'](handleEntityNotFound(_0x3afe38,null))[_0xf2fe('0x20')](respondWithResult(_0x3afe38,null))['catch'](handleError(_0x3afe38,null));};exports[_0xf2fe('0x1f')]=function(_0x2ecb2c,_0x270505){if(_0x2ecb2c[_0xf2fe('0x44')]['id']){delete _0x2ecb2c[_0xf2fe('0x44')]['id'];}return db[_0xf2fe('0x41')][_0xf2fe('0x43')]({'where':{'id':_0x2ecb2c[_0xf2fe('0x40')]['id']}})[_0xf2fe('0x20')](handleEntityNotFound(_0x270505,null))[_0xf2fe('0x20')](saveUpdates(_0x2ecb2c['body'],null))[_0xf2fe('0x20')](respondWithResult(_0x270505,null))['catch'](handleError(_0x270505,null));};exports[_0xf2fe('0x21')]=function(_0x1870d3,_0x3d4023){return db['CmCustomField'][_0xf2fe('0x43')]({'where':{'id':_0x1870d3['params']['id']}})[_0xf2fe('0x20')](handleEntityNotFound(_0x3d4023,null))[_0xf2fe('0x20')](removeEntity(_0x3d4023,null))['catch'](handleError(_0x3d4023,null));};exports['create']=function(_0x2c3a6f,_0x4d8376){var _0x4e6089;return db['sequelize'][_0xf2fe('0x45')](function(_0xa8f3bd){return db[_0xf2fe('0x41')][_0xf2fe('0x46')](_0x2c3a6f['body'],{'transaction':_0xa8f3bd})['then'](function(_0x4c8597){_0x4e6089=_0x4c8597;var _0x3c5c9e={'type':db[_0xf2fe('0x47')][_0xf2fe('0x48')],'transaction':_0xa8f3bd};switch(_0x2c3a6f[_0xf2fe('0x44')][_0xf2fe('0x49')]){case _0xf2fe('0x4a'):_0x3c5c9e[_0xf2fe('0x49')]=db[_0xf2fe('0x47')][_0xf2fe('0x48')];break;case _0xf2fe('0x4b'):_0x3c5c9e[_0xf2fe('0x49')]=db[_0xf2fe('0x47')][_0xf2fe('0x4c')];break;case _0xf2fe('0x4d'):_0x3c5c9e[_0xf2fe('0x49')]=db[_0xf2fe('0x47')][_0xf2fe('0x4e')];_0x3c5c9e[_0xf2fe('0x4f')]=![];break;default:}return db[_0xf2fe('0x50')][_0xf2fe('0x51')][_0xf2fe('0x52')]('cm_contacts',util[_0xf2fe('0x53')]('cf_%d',_0x4e6089['id']),_0x3c5c9e);})[_0xf2fe('0x20')](function(){return _0x4e6089;});})[_0xf2fe('0x20')](respondWithResult(_0x4d8376,0xc9))['catch'](handleError(_0x4d8376,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9502=['bluebird','request-promise','./cmCustomField.attributes','exports','define','CmCustomField','cm_custom_fields','util','api','moment'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x9502,0x1dd));var _0x2950=function(_0x348a50,_0xe211f1){_0x348a50=_0x348a50-0x0;var _0x29beb2=_0x9502[_0x348a50];return _0x29beb2;};'use strict';var _=require('lodash');var util=require(_0x2950('0x0'));var logger=require('../../config/logger')(_0x2950('0x1'));var moment=require(_0x2950('0x2'));var BPromise=require(_0x2950('0x3'));var rp=require(_0x2950('0x4'));var attributes=require(_0x2950('0x5'));module[_0x2950('0x6')]=function(_0x1eb212,_0x2d847c){return _0x1eb212[_0x2950('0x7')](_0x2950('0x8'),attributes,{'tableName':_0x2950('0x9'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdd8a=['api','moment','bluebird','request-promise','./cmCustomField.attributes','exports','define','cm_custom_fields','lodash','util','../../config/logger'];(function(_0x535c17,_0x206242){var _0x52d73f=function(_0xb13021){while(--_0xb13021){_0x535c17['push'](_0x535c17['shift']());}};_0x52d73f(++_0x206242);}(_0xdd8a,0x1e1));var _0xadd8=function(_0x3bef2c,_0x5a86fd){_0x3bef2c=_0x3bef2c-0x0;var _0x331503=_0xdd8a[_0x3bef2c];return _0x331503;};'use strict';var _=require(_0xadd8('0x0'));var util=require(_0xadd8('0x1'));var logger=require(_0xadd8('0x2'))(_0xadd8('0x3'));var moment=require(_0xadd8('0x4'));var BPromise=require(_0xadd8('0x5'));var rp=require(_0xadd8('0x6'));var attributes=require(_0xadd8('0x7'));module[_0xadd8('0x8')]=function(_0x17d109,_0x12093e){return _0x17d109[_0xadd8('0x9')]('CmCustomField',attributes,{'tableName':_0xadd8('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef6d=['http','then','info','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','error','CmCustomField,\x20%s,\x20%s','message','catch','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x56c02,_0x530e98){var _0x2d1e9d=function(_0x551d37){while(--_0x551d37){_0x56c02['push'](_0x56c02['shift']());}};_0x2d1e9d(++_0x530e98);}(_0xef6d,0xf8));var _0xdef6=function(_0x5e7035,_0x317140){_0x5e7035=_0x5e7035-0x0;var _0x275b3f=_0xef6d[_0x5e7035];return _0x275b3f;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xdef6('0x0'));var BPromise=require(_0xdef6('0x1'));var rs=require(_0xdef6('0x2'));var fs=require('fs');var db=require(_0xdef6('0x3'))['db'];var utils=require(_0xdef6('0x4'));var logger=require(_0xdef6('0x5'))('rpc');var config=require(_0xdef6('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0xdef6('0x7')]({'port':0x232a});function respondWithRpcPromise(_0xf25f3,_0x5047a5,_0x1c15b2){return new BPromise(function(_0x4b5d75,_0x52245e){return client['request'](_0xf25f3,_0x1c15b2)[_0xdef6('0x8')](function(_0x29f86a){logger[_0xdef6('0x9')]('CmCustomField,\x20%s,\x20%s',_0x5047a5,_0xdef6('0xa'));logger[_0xdef6('0xb')](_0xdef6('0xc'),_0x5047a5,_0xdef6('0xa'),JSON['stringify'](_0x29f86a));if(_0x29f86a[_0xdef6('0xd')]){if(_0x29f86a[_0xdef6('0xd')]['code']===0x1f4){logger['error'](_0xdef6('0xe'),_0x5047a5,_0x29f86a[_0xdef6('0xd')][_0xdef6('0xf')]);return _0x52245e(_0x29f86a['error'][_0xdef6('0xf')]);}logger[_0xdef6('0xd')]('CmCustomField,\x20%s,\x20%s',_0x5047a5,_0x29f86a[_0xdef6('0xd')][_0xdef6('0xf')]);return _0x4b5d75(_0x29f86a[_0xdef6('0xd')][_0xdef6('0xf')]);}else{logger[_0xdef6('0x9')](_0xdef6('0xe'),_0x5047a5,'request\x20sent');_0x4b5d75(_0x29f86a['result'][_0xdef6('0xf')]);}})[_0xdef6('0x10')](function(_0x372e2e){logger[_0xdef6('0xd')](_0xdef6('0xe'),_0x5047a5,_0x372e2e);_0x52245e(_0x372e2e);});});}
\ No newline at end of file
+var _0xcc6f=['CmCustomField,\x20%s,\x20%s','message','result','catch','lodash','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','info','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x167b84,_0x3233e2){var _0x30d147=function(_0xf8f1a6){while(--_0xf8f1a6){_0x167b84['push'](_0x167b84['shift']());}};_0x30d147(++_0x3233e2);}(_0xcc6f,0xaf));var _0xfcc6=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0xcc6f[_0x4f9b18];return _0x29f20c;};'use strict';var _=require(_0xfcc6('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfcc6('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xfcc6('0x2'))(_0xfcc6('0x3'));var config=require(_0xfcc6('0x4'));var jayson=require(_0xfcc6('0x5'));var client=jayson['client'][_0xfcc6('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1d2f18,_0x565f3f,_0x2a3179){return new BPromise(function(_0x1dd781,_0x346b33){return client['request'](_0x1d2f18,_0x2a3179)[_0xfcc6('0x7')](function(_0x51bac4){logger[_0xfcc6('0x8')]('CmCustomField,\x20%s,\x20%s',_0x565f3f,_0xfcc6('0x9'));logger[_0xfcc6('0xa')](_0xfcc6('0xb'),_0x565f3f,'request\x20sent',JSON[_0xfcc6('0xc')](_0x51bac4));if(_0x51bac4[_0xfcc6('0xd')]){if(_0x51bac4[_0xfcc6('0xd')][_0xfcc6('0xe')]===0x1f4){logger[_0xfcc6('0xd')](_0xfcc6('0xf'),_0x565f3f,_0x51bac4['error'][_0xfcc6('0x10')]);return _0x346b33(_0x51bac4[_0xfcc6('0xd')]['message']);}logger[_0xfcc6('0xd')](_0xfcc6('0xf'),_0x565f3f,_0x51bac4['error']['message']);return _0x1dd781(_0x51bac4[_0xfcc6('0xd')]['message']);}else{logger[_0xfcc6('0x8')](_0xfcc6('0xf'),_0x565f3f,'request\x20sent');_0x1dd781(_0x51bac4[_0xfcc6('0x11')][_0xfcc6('0x10')]);}})[_0xfcc6('0x12')](function(_0x38927a){logger[_0xfcc6('0xd')](_0xfcc6('0xf'),_0x565f3f,_0x38927a);_0x346b33(_0x38927a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18bd=['../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCustomField.controller','get','isAuthenticated','show','put','/:id','update','delete','destroy','util','connect-timeout','Router'];(function(_0xef2a14,_0x4c359a){var _0x242a4d=function(_0x3227c9){while(--_0x3227c9){_0xef2a14['push'](_0xef2a14['shift']());}};_0x242a4d(++_0x4c359a);}(_0x18bd,0x165));var _0xd18b=function(_0x56c018,_0x485ba5){_0x56c018=_0x56c018-0x0;var _0x2cb33a=_0x18bd[_0x56c018];return _0x2cb33a;};'use strict';var multer=require('multer');var util=require(_0xd18b('0x0'));var path=require('path');var timeout=require(_0xd18b('0x1'));var express=require('express');var router=express[_0xd18b('0x2')]();var auth=require(_0xd18b('0x3'));var interaction=require(_0xd18b('0x4'));var config=require(_0xd18b('0x5'));var controller=require(_0xd18b('0x6'));router[_0xd18b('0x7')]('/',auth[_0xd18b('0x8')](),controller['index']);router[_0xd18b('0x7')]('/:id',auth[_0xd18b('0x8')](),controller[_0xd18b('0x9')]);router['post']('/',auth[_0xd18b('0x8')](),controller['create']);router[_0xd18b('0xa')](_0xd18b('0xb'),auth[_0xd18b('0x8')](),controller[_0xd18b('0xc')]);router[_0xd18b('0xd')]('/:id',auth['isAuthenticated'](),controller[_0xd18b('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0xd568=['../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCustomField.controller','get','/:id','show','post','isAuthenticated','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router'];(function(_0x3299d1,_0x545733){var _0x44356e=function(_0x52fd77){while(--_0x52fd77){_0x3299d1['push'](_0x3299d1['shift']());}};_0x44356e(++_0x545733);}(_0xd568,0xde));var _0x8d56=function(_0x33f269,_0x30e9c4){_0x33f269=_0x33f269-0x0;var _0xd79eb5=_0xd568[_0x33f269];return _0xd79eb5;};'use strict';var multer=require(_0x8d56('0x0'));var util=require(_0x8d56('0x1'));var path=require(_0x8d56('0x2'));var timeout=require(_0x8d56('0x3'));var express=require(_0x8d56('0x4'));var router=express[_0x8d56('0x5')]();var auth=require(_0x8d56('0x6'));var interaction=require(_0x8d56('0x7'));var config=require(_0x8d56('0x8'));var controller=require(_0x8d56('0x9'));router[_0x8d56('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x8d56('0xa')](_0x8d56('0xb'),auth['isAuthenticated'](),controller[_0x8d56('0xc')]);router[_0x8d56('0xd')]('/',auth[_0x8d56('0xe')](),controller['create']);router[_0x8d56('0xf')](_0x8d56('0xb'),auth[_0x8d56('0xe')](),controller[_0x8d56('0x10')]);router[_0x8d56('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x8d56('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c9d=['format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','BOOLEAN','UNSIGNED','contactListQueue','moment','sequelize','exports','STRING','DATE'];(function(_0xcfe8cc,_0xb83aeb){var _0x55ac53=function(_0x4067d4){while(--_0x4067d4){_0xcfe8cc['push'](_0xcfe8cc['shift']());}};_0x55ac53(++_0xb83aeb);}(_0x9c9d,0x69));var _0xd9c9=function(_0x45ca7d,_0x145829){_0x45ca7d=_0x45ca7d-0x0;var _0xfd0c6d=_0x9c9d[_0x45ca7d];return _0xfd0c6d;};'use strict';var moment=require(_0xd9c9('0x0'));var Sequelize=require(_0xd9c9('0x1'));module[_0xd9c9('0x2')]={'phone':{'type':Sequelize[_0xd9c9('0x3')],'allowNull':![]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0xd9c9('0x4')],'defaultValue':moment()[_0xd9c9('0x5')](_0xd9c9('0x6'))},'countbusyretry':{'type':Sequelize[_0xd9c9('0x7')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xd9c9('0x7')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xd9c9('0x7')],'defaultValue':0x0},'callback':{'type':Sequelize[_0xd9c9('0x8')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xd9c9('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'priority':{'type':Sequelize[_0xd9c9('0x7')](0x2)[_0xd9c9('0x9')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0xd9c9('0xa')},'ListId':{'type':Sequelize[_0xd9c9('0x7')],'unique':_0xd9c9('0xa')},'UserId':{'type':Sequelize[_0xd9c9('0x7')]},'VoiceQueueId':{'type':Sequelize[_0xd9c9('0x7')],'unique':_0xd9c9('0xa')},'CampaignId':{'type':Sequelize[_0xd9c9('0x7')]}};
\ No newline at end of file
+var _0x919c=['exports','STRING','DATE','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','BOOLEAN','contactListQueue','sequelize'];(function(_0x1cc4b0,_0x371d76){var _0x4bf3bf=function(_0xe23b2a){while(--_0xe23b2a){_0x1cc4b0['push'](_0x1cc4b0['shift']());}};_0x4bf3bf(++_0x371d76);}(_0x919c,0x1c1));var _0xc919=function(_0x41d52a,_0x1702e4){_0x41d52a=_0x41d52a-0x0;var _0x330ad4=_0x919c[_0x41d52a];return _0x330ad4;};'use strict';var moment=require('moment');var Sequelize=require(_0xc919('0x0'));module[_0xc919('0x1')]={'phone':{'type':Sequelize[_0xc919('0x2')],'allowNull':![]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0xc919('0x3')],'defaultValue':moment()[_0xc919('0x4')](_0xc919('0x5'))},'countbusyretry':{'type':Sequelize[_0xc919('0x6')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xc919('0x6')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xc919('0x6')],'defaultValue':0x0},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xc919('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'priority':{'type':Sequelize[_0xc919('0x6')](0x2)['UNSIGNED'],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0xc919('0x7')],'defaultValue':![]},'ContactId':{'type':Sequelize[_0xc919('0x6')],'unique':_0xc919('0x8')},'ListId':{'type':Sequelize[_0xc919('0x6')],'unique':_0xc919('0x8')},'UserId':{'type':Sequelize[_0xc919('0x6')]},'VoiceQueueId':{'type':Sequelize[_0xc919('0x6')],'unique':_0xc919('0x8')},'CampaignId':{'type':Sequelize[_0xc919('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Company','CmList','List','Queue','dialActive','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','entity\x20not\x20found','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','then','error','stack','name','rawAttributes','keys','query','dateStart','dateEnd','intersection','model','filters','concat','$and','$or','$gt','$lt','$ne','$eq','$not','$between','$notBetween','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$any','fields','attributes','length','hasOwnProperty','sort','pick','day','merge','where','filter','map','options','count','includeAll','include','CmHopper','findAll','rows','catch','show','params','create','body','find','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','createdAt','updatedAt','statedesc','campaign','user','deleted','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','describe','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','transaction','direction','hopperIds','priority','ASC','scheduledAt','sequelize','literal','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xa9e0,0x123));var _0x0a9e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0xa9e0[_0xa1e3e3];return _0xc980e9;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var qs=require(_0x0a9e('0xe'));var logger=require(_0x0a9e('0xf'))(_0x0a9e('0x10'));var utils=require(_0x0a9e('0x11'));var config=require(_0x0a9e('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x50dfb2,_0x527cdd){_0x527cdd=_0x527cdd||0xcc;return function(_0x4cfe67){if(_0x4cfe67){return _0x50dfb2[_0x0a9e('0x13')](_0x527cdd);}return _0x50dfb2[_0x0a9e('0x14')](_0x527cdd)[_0x0a9e('0x15')]();};}function respondWithResult(_0x26d672,_0x32d742){_0x32d742=_0x32d742||0xc8;return function(_0x69aeb7){if(_0x69aeb7){return _0x26d672['status'](_0x32d742)[_0x0a9e('0x16')](_0x69aeb7);}};}function respondWithFilteredResult(_0x239b12,_0x2b4227){return function(_0x281129){if(_0x281129){var _0x44dcfd=_0x281129['count'],_0x4d5611=_0x2b4227[_0x0a9e('0x17')],_0x52a03d=_0x2b4227['offset']+_0x2b4227[_0x0a9e('0x18')],_0x22dccb;if(_0x52a03d>=_0x44dcfd){_0x52a03d=_0x44dcfd;_0x22dccb=0xc8;}else{_0x22dccb=0xce;}_0x239b12[_0x0a9e('0x14')](_0x22dccb);return _0x239b12['set'](_0x0a9e('0x19'),_0x4d5611+'-'+_0x52a03d+'/'+_0x44dcfd)['json'](_0x281129);}return null;};}function patchUpdates(_0x459eb1){return function(_0x478723){try{jsonpatch[_0x0a9e('0x1a')](_0x478723,_0x459eb1,!![]);}catch(_0x205fd6){return BPromise[_0x0a9e('0x1b')](_0x205fd6);}return _0x478723[_0x0a9e('0x1c')]();};}function saveUpdates(_0x530eb7,_0x20559e){return function(_0x1314ae){if(_0x1314ae){return _0x1314ae[_0x0a9e('0x1d')](_0x530eb7)[_0x0a9e('0x1e')](function(_0x105080){return _0x105080;});}return null;};}function removeEntity(_0x4bb1e3,_0x2c3407){return function(_0x155cce){if(_0x155cce){return _0x155cce['destroy']()[_0x0a9e('0x1e')](function(){_0x4bb1e3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a02e1,_0x432e56){return function(_0x38e7c4){if(!_0x38e7c4){_0x3a02e1[_0x0a9e('0x13')](0x194);}return _0x38e7c4;};}function handleError(_0x4abc77,_0xfb6e48){_0xfb6e48=_0xfb6e48||0x1f4;return function(_0x2fb0e4){logger[_0x0a9e('0x1f')](_0x2fb0e4[_0x0a9e('0x20')]);if(_0x2fb0e4[_0x0a9e('0x21')]){delete _0x2fb0e4[_0x0a9e('0x21')];}_0x4abc77[_0x0a9e('0x14')](_0xfb6e48)['send'](_0x2fb0e4);};}exports['index']=function(_0x197ec0,_0x3a8e58){var _0x40c424={},_0x33161b={},_0x526cf3={'count':0x0,'rows':[]};var _0x384319=db['CmHopper'][_0x0a9e('0x22')];_0x33161b['model']=_[_0x0a9e('0x23')](_0x384319);var _0x34dc65={'dateStart':_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x25')],'dateEnd':_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x26')]};delete _0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x25')];delete _0x197ec0['query'][_0x0a9e('0x26')];_0x33161b[_0x0a9e('0x24')]=_[_0x0a9e('0x23')](_0x197ec0[_0x0a9e('0x24')]);_0x33161b['filters']=_[_0x0a9e('0x27')](_0x33161b[_0x0a9e('0x28')],_0x33161b[_0x0a9e('0x24')]);_0x33161b[_0x0a9e('0x29')]=_[_0x0a9e('0x2a')](_0x33161b[_0x0a9e('0x29')],[_0x0a9e('0x2b'),_0x0a9e('0x2c'),_0x0a9e('0x2d'),'$gte',_0x0a9e('0x2e'),'$lte',_0x0a9e('0x2f'),_0x0a9e('0x30'),_0x0a9e('0x31'),_0x0a9e('0x32'),_0x0a9e('0x33'),'$in',_0x0a9e('0x34'),_0x0a9e('0x35'),_0x0a9e('0x36'),_0x0a9e('0x37'),_0x0a9e('0x38'),_0x0a9e('0x35'),_0x0a9e('0x39'),_0x0a9e('0x3a'),'$contained',_0x0a9e('0x3b')]);_0x40c424['attributes']=_[_0x0a9e('0x27')](_0x33161b[_0x0a9e('0x28')],qs[_0x0a9e('0x3c')](_0x197ec0[_0x0a9e('0x24')]['fields']));_0x40c424[_0x0a9e('0x3d')]=_0x40c424[_0x0a9e('0x3d')][_0x0a9e('0x3e')]?_0x40c424[_0x0a9e('0x3d')]:_0x33161b['model'];if(!_0x197ec0['query'][_0x0a9e('0x3f')]('nolimit')){_0x40c424[_0x0a9e('0x18')]=qs[_0x0a9e('0x18')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x18')]);_0x40c424['offset']=qs[_0x0a9e('0x17')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x17')]);}_0x40c424['order']=qs[_0x0a9e('0x40')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x40')]);_0x40c424['where']=qs['filters'](_[_0x0a9e('0x41')](_0x197ec0[_0x0a9e('0x24')],_0x33161b['filters']));if(_0x34dc65[_0x0a9e('0x25')]){if(_0x34dc65[_0x0a9e('0x26')]){_0x34dc65[_0x0a9e('0x26')]=moment(_0x34dc65[_0x0a9e('0x26')])['add'](0x1,'day');}else{_0x34dc65[_0x0a9e('0x26')]=moment(_0x34dc65[_0x0a9e('0x25')])['add'](0x1,_0x0a9e('0x42'));}_[_0x0a9e('0x43')](_0x40c424[_0x0a9e('0x44')],{'createdAt':{'$gte':_0x34dc65['dateStart'],'$lte':_0x34dc65[_0x0a9e('0x26')]}});}if(_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x45')]){_0x40c424[_0x0a9e('0x44')]=_[_0x0a9e('0x43')](_0x40c424[_0x0a9e('0x44')],{'$or':_[_0x0a9e('0x46')](_0x40c424[_0x0a9e('0x3d')],function(_0x23b089){var _0x3da2cd={};_0x3da2cd[_0x23b089]={'$like':'%'+_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x45')]+'%'};return _0x3da2cd;})});}_0x40c424=_[_0x0a9e('0x43')]({},_0x40c424,_0x197ec0[_0x0a9e('0x47')]);var _0x37f6cc={'where':_0x40c424['where']};return db['CmHopper'][_0x0a9e('0x48')](_0x37f6cc)[_0x0a9e('0x1e')](function(_0x405c8f){_0x526cf3[_0x0a9e('0x48')]=_0x405c8f;if(_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x49')]){_0x40c424[_0x0a9e('0x4a')]=[{'all':!![]}];}return db[_0x0a9e('0x4b')][_0x0a9e('0x4c')](_0x40c424);})[_0x0a9e('0x1e')](function(_0x2c2cb0){_0x526cf3[_0x0a9e('0x4d')]=_0x2c2cb0;return _0x526cf3;})['then'](respondWithFilteredResult(_0x3a8e58,_0x40c424))[_0x0a9e('0x4e')](handleError(_0x3a8e58,null));};exports[_0x0a9e('0x4f')]=function(_0xdd268f,_0xfbd5ad){var _0x2e8caf={'raw':!![],'where':{'id':_0xdd268f[_0x0a9e('0x50')]['id']}},_0xbe9d19={};_0xbe9d19[_0x0a9e('0x28')]=_['keys'](db[_0x0a9e('0x4b')]['rawAttributes']);_0xbe9d19[_0x0a9e('0x24')]=_[_0x0a9e('0x23')](_0xdd268f[_0x0a9e('0x24')]);_0xbe9d19['filters']=_[_0x0a9e('0x27')](_0xbe9d19[_0x0a9e('0x28')],_0xbe9d19[_0x0a9e('0x24')]);_0x2e8caf[_0x0a9e('0x3d')]=_[_0x0a9e('0x27')](_0xbe9d19[_0x0a9e('0x28')],qs[_0x0a9e('0x3c')](_0xdd268f['query'][_0x0a9e('0x3c')]));_0x2e8caf[_0x0a9e('0x3d')]=_0x2e8caf[_0x0a9e('0x3d')][_0x0a9e('0x3e')]?_0x2e8caf[_0x0a9e('0x3d')]:_0xbe9d19[_0x0a9e('0x28')];if(_0xdd268f[_0x0a9e('0x24')][_0x0a9e('0x49')]){_0x2e8caf[_0x0a9e('0x4a')]=[{'all':!![]}];}_0x2e8caf=_['merge']({},_0x2e8caf,_0xdd268f[_0x0a9e('0x47')]);return db[_0x0a9e('0x4b')]['find'](_0x2e8caf)['then'](handleEntityNotFound(_0xfbd5ad,null))['then'](respondWithResult(_0xfbd5ad,null))[_0x0a9e('0x4e')](handleError(_0xfbd5ad,null));};exports[_0x0a9e('0x51')]=function(_0x37edaa,_0x11545a){return db[_0x0a9e('0x4b')][_0x0a9e('0x51')](_0x37edaa[_0x0a9e('0x52')],{})[_0x0a9e('0x1e')](respondWithResult(_0x11545a,0xc9))['catch'](handleError(_0x11545a,null));};exports['update']=function(_0x53975a,_0x39d77d){if(_0x53975a[_0x0a9e('0x52')]['id']){delete _0x53975a[_0x0a9e('0x52')]['id'];}return db['CmHopper'][_0x0a9e('0x53')]({'where':{'id':_0x53975a[_0x0a9e('0x50')]['id']}})['then'](handleEntityNotFound(_0x39d77d,null))['then'](saveUpdates(_0x53975a[_0x0a9e('0x52')],null))['then'](respondWithResult(_0x39d77d,null))[_0x0a9e('0x4e')](handleError(_0x39d77d,null));};exports['describe']=function(_0x2e5e62,_0x3c20b2){return db[_0x0a9e('0x4b')]['describe']()[_0x0a9e('0x1e')](respondWithResult(_0x3c20b2,null))[_0x0a9e('0x4e')](handleError(_0x3c20b2,null));};exports['destroy']=function(_0x50f687,_0x128aa6){var _0x3aedd0;return db['CmHopper'][_0x0a9e('0x53')]({'where':{'id':_0x50f687['params']['id']}})[_0x0a9e('0x1e')](handleEntityNotFound(_0x128aa6,null))['then'](function(_0xe22ccc){if(_0xe22ccc){return _0xe22ccc['destroy']()['then'](function(_0x5df0ad){return _0x5df0ad;});}})[_0x0a9e('0x1e')](function(_0x47de4c){_0x3aedd0=_0x47de4c;if(_0x47de4c){if(_0x47de4c[_0x0a9e('0x54')]||_0x47de4c[_0x0a9e('0x55')]){return db[_0x47de4c[_0x0a9e('0x54')]?_0x0a9e('0x56'):_0x0a9e('0x57')][_0x0a9e('0x53')]({'where':{'id':_0x47de4c[_0x0a9e('0x54')]?_0x47de4c[_0x0a9e('0x54')]:_0x47de4c['CampaignId']},'attributes':['id',_0x0a9e('0x21')],'raw':!![]});}}})[_0x0a9e('0x1e')](function(_0x2642bb){var _0x30c491={};if(_0x2642bb){_[_0x0a9e('0x43')](_0x30c491,_[_0x0a9e('0x58')](_0x3aedd0['dataValues'],[_0x0a9e('0x59'),_0x0a9e('0x5a'),'id']));_0x30c491['state']=0x15;_0x30c491[_0x0a9e('0x5b')]='deleted';_0x30c491[_0x0a9e('0x5c')]=_0x2642bb['name'];_0x30c491['membername']=_0x50f687['user'][_0x0a9e('0x21')];_0x30c491['UserId']=_0x50f687[_0x0a9e('0x5d')]['id'];_0x30c491[_0x0a9e('0x5e')]=!![];_0x30c491[_0x0a9e('0x5f')]=moment()[_0x0a9e('0x60')](_0x0a9e('0x61'));_0x30c491[_0x0a9e('0x62')]=_0x3aedd0['phone'];_0x30c491[_0x0a9e('0x63')]=_0x3aedd0['VoiceQueueId']?_0x0a9e('0x64'):_0x0a9e('0x65');return db[_0x0a9e('0x66')]['find']({'where':{'id':_0x30c491[_0x0a9e('0x67')]},'attributes':[_0x0a9e('0x68'),_0x0a9e('0x69')]})[_0x0a9e('0x1e')](function(_0x497d91){if(!_[_0x0a9e('0x6a')](_0x128aa6)&&!_[_0x0a9e('0x6a')](_0x497d91['firstName'])){_0x30c491[_0x0a9e('0x6b')]=_0x497d91[_0x0a9e('0x68')];if(!_[_0x0a9e('0x6a')](_0x497d91[_0x0a9e('0x69')])){_0x30c491[_0x0a9e('0x6b')]+='\x20'+_0x497d91['lastName'];}}})[_0x0a9e('0x6c')](function(){return db[_0x0a9e('0x6d')][_0x0a9e('0x51')](_0x30c491);});}})['then'](function(){return _0x128aa6[_0x0a9e('0x14')](0xcc)['end']();})['catch'](handleError(_0x128aa6,null));};exports[_0x0a9e('0x6e')]=function(_0x4556c5,_0x9375fb,_0x19c995){var _0x186f39=[];return db[_0x0a9e('0x66')][_0x0a9e('0x6f')]()[_0x0a9e('0x1e')](function(_0x2d7205){_0x186f39=_[_0x0a9e('0x23')](_0x2d7205);return _0x4556c5[_0x0a9e('0x5d')][_0x0a9e('0x70')]({'where':{'type':_0x0a9e('0x71'),'dialActive':!![],'dialMethod':_0x0a9e('0x72')},'attributes':['id',_0x0a9e('0x73')],'raw':!![]});})[_0x0a9e('0x1e')](function(_0x2a28c0){if(_0x2a28c0&&_0x2a28c0[_0x0a9e('0x3e')]){return db['sequelize'][_0x0a9e('0x74')](function(_0x295763){var _0x243d12={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x0a9e('0x61'))},'VoiceQueueId':{'$in':_[_0x0a9e('0x46')](_0x2a28c0,'id')},'$or':[{'UserId':null},{'UserId':_0x4556c5['user']['id']}]};var _0x83f0b2=[];if(_0x4556c5[_0x0a9e('0x52')][_0x0a9e('0x75')]&&_0x4556c5[_0x0a9e('0x52')][_0x0a9e('0x75')]==='prev'){if(!_['isEmpty'](_0x4556c5['body'][_0x0a9e('0x76')])){_0x243d12['id']={'$in':_0x4556c5[_0x0a9e('0x52')][_0x0a9e('0x76')]};}_0x83f0b2=[[_0x0a9e('0x77'),_0x0a9e('0x78')],[_0x0a9e('0x79'),_0x2a28c0[0x0][_0x0a9e('0x73')]===_0x0a9e('0x78')?'DESC':_0x0a9e('0x78')],db[_0x0a9e('0x7a')][_0x0a9e('0x7b')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x0a9e('0x7c')]];}else{if(!_['isEmpty'](_0x4556c5[_0x0a9e('0x52')][_0x0a9e('0x76')])){_0x243d12['id']={'$notIn':_0x4556c5['body'][_0x0a9e('0x76')]};}_0x83f0b2=[[_0x0a9e('0x77'),_0x0a9e('0x7c')],[_0x0a9e('0x79'),_0x2a28c0[0x0]['dialOrderByScheduledAt']],db[_0x0a9e('0x7a')][_0x0a9e('0x7b')](_0x0a9e('0x7d')),['id',_0x0a9e('0x78')]];}return db['CmHopper'][_0x0a9e('0x7e')]({'attributes':['id',_0x0a9e('0x7f')],'where':_0x243d12,'order':_0x83f0b2,'transaction':_0x295763,'lock':_0x295763[_0x0a9e('0x80')][_0x0a9e('0x81')],'include':[{'model':db['CmContact'],'as':_0x0a9e('0x82'),'attributes':_0x186f39,'include':[{'model':db[_0x0a9e('0x83')],'as':_0x0a9e('0x84'),'attributes':['id',_0x0a9e('0x21')]}]},{'model':db[_0x0a9e('0x85')],'as':_0x0a9e('0x86'),'attributes':['id',_0x0a9e('0x21')]},{'model':db[_0x0a9e('0x56')],'as':_0x0a9e('0x87'),'attributes':['id',_0x0a9e('0x21'),_0x0a9e('0x88')]}]})[_0x0a9e('0x1e')](function(_0x25744a){if(_0x25744a){return _0x25744a[_0x0a9e('0x1d')]({'UserId':_0x4556c5['user']['id']},{'transaction':_0x295763});}});});}})[_0x0a9e('0x1e')](handleEntityNotFound(_0x9375fb,null))[_0x0a9e('0x1e')](respondWithResult(_0x9375fb,null))[_0x0a9e('0x4e')](handleError(_0x9375fb,null));};exports['getOpenContacts']=function(_0x3736e0,_0x33dda0,_0x8cea96){return _0x3736e0[_0x0a9e('0x5d')]['getVoiceQueues']({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x0a9e('0x72')},'attributes':['id'],'raw':!![]})[_0x0a9e('0x1e')](function(_0x4c54fa){if(_0x4c54fa&&_0x4c54fa[_0x0a9e('0x3e')]){return db['CmHopper'][_0x0a9e('0x48')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x0a9e('0x60')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x0a9e('0x46')](_0x4c54fa,'id')},'$or':[{'UserId':null},{'UserId':_0x3736e0[_0x0a9e('0x5d')]['id']}]}});}return 0x0;})[_0x0a9e('0x1e')](function(_0x42b959){if(!_[_0x0a9e('0x6a')](_0x42b959)&&_[_0x0a9e('0x89')](_0x42b959)){return _0x33dda0[_0x0a9e('0x14')](0xc8)['json']({'contacts':_0x42b959});}else{logger[_0x0a9e('0x1f')](_0x0a9e('0x8a'),_0x0a9e('0x8b'),0x194,_0x0a9e('0x8c'));_0x33dda0['sendStatus'](0x194);}})[_0x0a9e('0x4e')](handleError(_0x33dda0,null));};
\ No newline at end of file
+var _0x2fb6=['prev','hopperIds','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','priority','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','CmCompany','Company','CmList','List','Queue','dialActive','getOpenContacts','getVoiceQueues','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','crypto','jsforce','querystring','papaparse','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','CmHopper','model','keys','dateStart','query','dateEnd','filters','intersection','concat','$and','$or','$gt','$gte','$lt','$ne','$eq','$not','$between','$notBetween','$notIn','$like','$iLike','$notILike','$overlap','$contains','$any','fields','attributes','hasOwnProperty','order','sort','where','pick','day','add','filter','merge','map','options','includeAll','findAll','rows','rawAttributes','length','include','find','create','body','params','catch','destroy','VoiceQueueId','VoiceQueue','CampaignId','createdAt','updatedAt','state','statedesc','deleted','campaign','user','UserId','format','calleridnum','campaigntype','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','outbound','preview','dialOrderByScheduledAt','sequelize','YYYY-MM-DD\x20HH:mm:ss','direction'];(function(_0x5c5c52,_0x36d085){var _0x4229ff=function(_0x3806df){while(--_0x3806df){_0x5c5c52['push'](_0x5c5c52['shift']());}};_0x4229ff(++_0x36d085);}(_0x2fb6,0x1c6));var _0x62fb=function(_0x58af8c,_0x1dac8f){_0x58af8c=_0x58af8c-0x0;var _0x59551c=_0x2fb6[_0x58af8c];return _0x59551c;};'use strict';var pdf=require(_0x62fb('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x62fb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x62fb('0x2'));var rp=require(_0x62fb('0x3'));var moment=require(_0x62fb('0x4'));var BPromise=require(_0x62fb('0x5'));var Mustache=require('mustache');var util=require(_0x62fb('0x6'));var path=require(_0x62fb('0x7'));var sox=require(_0x62fb('0x8'));var csv=require(_0x62fb('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x62fb('0xa'));var squel=require('squel');var crypto=require(_0x62fb('0xb'));var jsforce=require(_0x62fb('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x62fb('0x9'));var querystring=require(_0x62fb('0xd'));var Papa=require(_0x62fb('0xe'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x62fb('0xf'))(_0x62fb('0x10'));var utils=require(_0x62fb('0x11'));var config=require('../../config/environment');var db=require(_0x62fb('0x12'))['db'];function respondWithStatusCode(_0x58558f,_0x143895){_0x143895=_0x143895||0xcc;return function(_0x36e793){if(_0x36e793){return _0x58558f[_0x62fb('0x13')](_0x143895);}return _0x58558f[_0x62fb('0x14')](_0x143895)[_0x62fb('0x15')]();};}function respondWithResult(_0x3fc9c1,_0x5614d6){_0x5614d6=_0x5614d6||0xc8;return function(_0x488b9b){if(_0x488b9b){return _0x3fc9c1[_0x62fb('0x14')](_0x5614d6)['json'](_0x488b9b);}};}function respondWithFilteredResult(_0x489cf7,_0x201d8d){return function(_0x1dbea2){if(_0x1dbea2){var _0xdc152e=_0x1dbea2[_0x62fb('0x16')],_0x58afe9=_0x201d8d['offset'],_0x10bed5=_0x201d8d[_0x62fb('0x17')]+_0x201d8d[_0x62fb('0x18')],_0x25ffc9;if(_0x10bed5>=_0xdc152e){_0x10bed5=_0xdc152e;_0x25ffc9=0xc8;}else{_0x25ffc9=0xce;}_0x489cf7[_0x62fb('0x14')](_0x25ffc9);return _0x489cf7[_0x62fb('0x19')](_0x62fb('0x1a'),_0x58afe9+'-'+_0x10bed5+'/'+_0xdc152e)[_0x62fb('0x1b')](_0x1dbea2);}return null;};}function patchUpdates(_0xc4950a){return function(_0x7d66){try{jsonpatch[_0x62fb('0x1c')](_0x7d66,_0xc4950a,!![]);}catch(_0x26c3f1){return BPromise[_0x62fb('0x1d')](_0x26c3f1);}return _0x7d66[_0x62fb('0x1e')]();};}function saveUpdates(_0x17518c,_0x3d6a09){return function(_0x2fc90d){if(_0x2fc90d){return _0x2fc90d[_0x62fb('0x1f')](_0x17518c)[_0x62fb('0x20')](function(_0x50c967){return _0x50c967;});}return null;};}function removeEntity(_0x20dd7f,_0x40c31a){return function(_0x941ed5){if(_0x941ed5){return _0x941ed5['destroy']()[_0x62fb('0x20')](function(){_0x20dd7f[_0x62fb('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e77ce,_0x143775){return function(_0xd77cd9){if(!_0xd77cd9){_0x4e77ce[_0x62fb('0x13')](0x194);}return _0xd77cd9;};}function handleError(_0x33b43d,_0x398991){_0x398991=_0x398991||0x1f4;return function(_0x2942a3){logger[_0x62fb('0x21')](_0x2942a3[_0x62fb('0x22')]);if(_0x2942a3[_0x62fb('0x23')]){delete _0x2942a3[_0x62fb('0x23')];}_0x33b43d[_0x62fb('0x14')](_0x398991)[_0x62fb('0x24')](_0x2942a3);};}exports[_0x62fb('0x25')]=function(_0x354d6c,_0x2882f2){var _0x530349={},_0x26a037={},_0x25ffd0={'count':0x0,'rows':[]};var _0x598365=db[_0x62fb('0x26')]['rawAttributes'];_0x26a037[_0x62fb('0x27')]=_[_0x62fb('0x28')](_0x598365);var _0x48bd1e={'dateStart':_0x354d6c['query'][_0x62fb('0x29')],'dateEnd':_0x354d6c[_0x62fb('0x2a')]['dateEnd']};delete _0x354d6c[_0x62fb('0x2a')]['dateStart'];delete _0x354d6c[_0x62fb('0x2a')][_0x62fb('0x2b')];_0x26a037[_0x62fb('0x2a')]=_[_0x62fb('0x28')](_0x354d6c[_0x62fb('0x2a')]);_0x26a037[_0x62fb('0x2c')]=_[_0x62fb('0x2d')](_0x26a037[_0x62fb('0x27')],_0x26a037[_0x62fb('0x2a')]);_0x26a037[_0x62fb('0x2c')]=_[_0x62fb('0x2e')](_0x26a037['filters'],[_0x62fb('0x2f'),_0x62fb('0x30'),_0x62fb('0x31'),_0x62fb('0x32'),_0x62fb('0x33'),'$lte',_0x62fb('0x34'),_0x62fb('0x35'),_0x62fb('0x36'),_0x62fb('0x37'),_0x62fb('0x38'),'$in',_0x62fb('0x39'),_0x62fb('0x3a'),'$notLike',_0x62fb('0x3b'),_0x62fb('0x3c'),_0x62fb('0x3a'),_0x62fb('0x3d'),_0x62fb('0x3e'),'$contained',_0x62fb('0x3f')]);_0x530349['attributes']=_[_0x62fb('0x2d')](_0x26a037[_0x62fb('0x27')],qs[_0x62fb('0x40')](_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x40')]));_0x530349[_0x62fb('0x41')]=_0x530349[_0x62fb('0x41')]['length']?_0x530349['attributes']:_0x26a037[_0x62fb('0x27')];if(!_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x42')]('nolimit')){_0x530349[_0x62fb('0x18')]=qs[_0x62fb('0x18')](_0x354d6c['query'][_0x62fb('0x18')]);_0x530349[_0x62fb('0x17')]=qs[_0x62fb('0x17')](_0x354d6c[_0x62fb('0x2a')]['offset']);}_0x530349[_0x62fb('0x43')]=qs[_0x62fb('0x44')](_0x354d6c[_0x62fb('0x2a')]['sort']);_0x530349[_0x62fb('0x45')]=qs[_0x62fb('0x2c')](_[_0x62fb('0x46')](_0x354d6c[_0x62fb('0x2a')],_0x26a037['filters']));if(_0x48bd1e[_0x62fb('0x29')]){if(_0x48bd1e[_0x62fb('0x2b')]){_0x48bd1e[_0x62fb('0x2b')]=moment(_0x48bd1e[_0x62fb('0x2b')])['add'](0x1,_0x62fb('0x47'));}else{_0x48bd1e[_0x62fb('0x2b')]=moment(_0x48bd1e[_0x62fb('0x29')])[_0x62fb('0x48')](0x1,_0x62fb('0x47'));}_['merge'](_0x530349[_0x62fb('0x45')],{'createdAt':{'$gte':_0x48bd1e[_0x62fb('0x29')],'$lte':_0x48bd1e['dateEnd']}});}if(_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x49')]){_0x530349[_0x62fb('0x45')]=_[_0x62fb('0x4a')](_0x530349[_0x62fb('0x45')],{'$or':_[_0x62fb('0x4b')](_0x530349[_0x62fb('0x41')],function(_0x397cc7){var _0x21c758={};_0x21c758[_0x397cc7]={'$like':'%'+_0x354d6c['query'][_0x62fb('0x49')]+'%'};return _0x21c758;})});}_0x530349=_['merge']({},_0x530349,_0x354d6c[_0x62fb('0x4c')]);var _0x1f21cb={'where':_0x530349['where']};return db[_0x62fb('0x26')][_0x62fb('0x16')](_0x1f21cb)[_0x62fb('0x20')](function(_0x57c173){_0x25ffd0[_0x62fb('0x16')]=_0x57c173;if(_0x354d6c[_0x62fb('0x2a')][_0x62fb('0x4d')]){_0x530349['include']=[{'all':!![]}];}return db['CmHopper'][_0x62fb('0x4e')](_0x530349);})[_0x62fb('0x20')](function(_0x457293){_0x25ffd0[_0x62fb('0x4f')]=_0x457293;return _0x25ffd0;})['then'](respondWithFilteredResult(_0x2882f2,_0x530349))['catch'](handleError(_0x2882f2,null));};exports['show']=function(_0x5f06ac,_0xcd9b8c){var _0x17bf84={'raw':!![],'where':{'id':_0x5f06ac['params']['id']}},_0x5e8fd8={};_0x5e8fd8['model']=_['keys'](db[_0x62fb('0x26')][_0x62fb('0x50')]);_0x5e8fd8['query']=_['keys'](_0x5f06ac[_0x62fb('0x2a')]);_0x5e8fd8[_0x62fb('0x2c')]=_[_0x62fb('0x2d')](_0x5e8fd8[_0x62fb('0x27')],_0x5e8fd8[_0x62fb('0x2a')]);_0x17bf84[_0x62fb('0x41')]=_[_0x62fb('0x2d')](_0x5e8fd8['model'],qs[_0x62fb('0x40')](_0x5f06ac[_0x62fb('0x2a')][_0x62fb('0x40')]));_0x17bf84[_0x62fb('0x41')]=_0x17bf84[_0x62fb('0x41')][_0x62fb('0x51')]?_0x17bf84[_0x62fb('0x41')]:_0x5e8fd8['model'];if(_0x5f06ac[_0x62fb('0x2a')][_0x62fb('0x4d')]){_0x17bf84[_0x62fb('0x52')]=[{'all':!![]}];}_0x17bf84=_['merge']({},_0x17bf84,_0x5f06ac[_0x62fb('0x4c')]);return db[_0x62fb('0x26')][_0x62fb('0x53')](_0x17bf84)['then'](handleEntityNotFound(_0xcd9b8c,null))['then'](respondWithResult(_0xcd9b8c,null))['catch'](handleError(_0xcd9b8c,null));};exports[_0x62fb('0x54')]=function(_0x554026,_0x26727f){return db[_0x62fb('0x26')][_0x62fb('0x54')](_0x554026[_0x62fb('0x55')],{})[_0x62fb('0x20')](respondWithResult(_0x26727f,0xc9))['catch'](handleError(_0x26727f,null));};exports['update']=function(_0x24da12,_0x5c4f3e){if(_0x24da12[_0x62fb('0x55')]['id']){delete _0x24da12['body']['id'];}return db[_0x62fb('0x26')][_0x62fb('0x53')]({'where':{'id':_0x24da12[_0x62fb('0x56')]['id']}})['then'](handleEntityNotFound(_0x5c4f3e,null))[_0x62fb('0x20')](saveUpdates(_0x24da12['body'],null))['then'](respondWithResult(_0x5c4f3e,null))[_0x62fb('0x57')](handleError(_0x5c4f3e,null));};exports['describe']=function(_0x5df2e2,_0x21706d){return db[_0x62fb('0x26')]['describe']()[_0x62fb('0x20')](respondWithResult(_0x21706d,null))['catch'](handleError(_0x21706d,null));};exports[_0x62fb('0x58')]=function(_0x2443d5,_0x3ddc71){var _0x282174;return db['CmHopper'][_0x62fb('0x53')]({'where':{'id':_0x2443d5['params']['id']}})[_0x62fb('0x20')](handleEntityNotFound(_0x3ddc71,null))[_0x62fb('0x20')](function(_0x4ad2e1){if(_0x4ad2e1){return _0x4ad2e1[_0x62fb('0x58')]()[_0x62fb('0x20')](function(_0x189d00){return _0x189d00;});}})['then'](function(_0x1de637){_0x282174=_0x1de637;if(_0x1de637){if(_0x1de637[_0x62fb('0x59')]||_0x1de637['CampaignId']){return db[_0x1de637[_0x62fb('0x59')]?_0x62fb('0x5a'):'Campaign'][_0x62fb('0x53')]({'where':{'id':_0x1de637[_0x62fb('0x59')]?_0x1de637[_0x62fb('0x59')]:_0x1de637[_0x62fb('0x5b')]},'attributes':['id','name'],'raw':!![]});}}})[_0x62fb('0x20')](function(_0x1840c6){var _0x566a7c={};if(_0x1840c6){_[_0x62fb('0x4a')](_0x566a7c,_['omit'](_0x282174['dataValues'],[_0x62fb('0x5c'),_0x62fb('0x5d'),'id']));_0x566a7c[_0x62fb('0x5e')]=0x15;_0x566a7c[_0x62fb('0x5f')]=_0x62fb('0x60');_0x566a7c[_0x62fb('0x61')]=_0x1840c6['name'];_0x566a7c['membername']=_0x2443d5[_0x62fb('0x62')][_0x62fb('0x23')];_0x566a7c[_0x62fb('0x63')]=_0x2443d5[_0x62fb('0x62')]['id'];_0x566a7c[_0x62fb('0x60')]=!![];_0x566a7c['deletedat']=moment()[_0x62fb('0x64')]('YYYY-MM-DD\x20HH:mm:ss');_0x566a7c[_0x62fb('0x65')]=_0x282174['phone'];_0x566a7c[_0x62fb('0x66')]=_0x282174[_0x62fb('0x59')]?'queue':_0x62fb('0x67');return db[_0x62fb('0x68')][_0x62fb('0x53')]({'where':{'id':_0x566a7c[_0x62fb('0x69')]},'attributes':[_0x62fb('0x6a'),_0x62fb('0x6b')]})[_0x62fb('0x20')](function(_0x1ed96f){if(!_[_0x62fb('0x6c')](_0x3ddc71)&&!_[_0x62fb('0x6c')](_0x1ed96f[_0x62fb('0x6a')])){_0x566a7c['calleridname']=_0x1ed96f[_0x62fb('0x6a')];if(!_[_0x62fb('0x6c')](_0x1ed96f[_0x62fb('0x6b')])){_0x566a7c[_0x62fb('0x6d')]+='\x20'+_0x1ed96f[_0x62fb('0x6b')];}}})[_0x62fb('0x6e')](function(){return db[_0x62fb('0x6f')][_0x62fb('0x54')](_0x566a7c);});}})['then'](function(){return _0x3ddc71[_0x62fb('0x14')](0xcc)[_0x62fb('0x15')]();})[_0x62fb('0x57')](handleError(_0x3ddc71,null));};exports['getPreview']=function(_0x3e2650,_0xde92b7,_0x55069c){var _0x265a54=[];return db[_0x62fb('0x68')]['describe']()[_0x62fb('0x20')](function(_0x90b2ae){_0x265a54=_[_0x62fb('0x28')](_0x90b2ae);return _0x3e2650[_0x62fb('0x62')]['getVoiceQueues']({'where':{'type':_0x62fb('0x70'),'dialActive':!![],'dialMethod':_0x62fb('0x71')},'attributes':['id',_0x62fb('0x72')],'raw':!![]});})[_0x62fb('0x20')](function(_0xfa7ffc){if(_0xfa7ffc&&_0xfa7ffc[_0x62fb('0x51')]){return db[_0x62fb('0x73')]['transaction'](function(_0x31aa85){var _0x3c9d75={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x62fb('0x64')](_0x62fb('0x74'))},'VoiceQueueId':{'$in':_['map'](_0xfa7ffc,'id')},'$or':[{'UserId':null},{'UserId':_0x3e2650['user']['id']}]};var _0x1a03bd=[];if(_0x3e2650[_0x62fb('0x55')][_0x62fb('0x75')]&&_0x3e2650[_0x62fb('0x55')][_0x62fb('0x75')]===_0x62fb('0x76')){if(!_['isEmpty'](_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')])){_0x3c9d75['id']={'$in':_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')]};}_0x1a03bd=[['priority',_0x62fb('0x78')],[_0x62fb('0x79'),_0xfa7ffc[0x0][_0x62fb('0x72')]===_0x62fb('0x78')?_0x62fb('0x7a'):_0x62fb('0x78')],db[_0x62fb('0x73')][_0x62fb('0x7b')](_0x62fb('0x7c')),['id','DESC']];}else{if(!_[_0x62fb('0x7d')](_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')])){_0x3c9d75['id']={'$notIn':_0x3e2650[_0x62fb('0x55')][_0x62fb('0x77')]};}_0x1a03bd=[[_0x62fb('0x7e'),_0x62fb('0x7a')],[_0x62fb('0x79'),_0xfa7ffc[0x0]['dialOrderByScheduledAt']],db['sequelize'][_0x62fb('0x7b')](_0x62fb('0x7f')),['id',_0x62fb('0x78')]];}return db[_0x62fb('0x26')][_0x62fb('0x80')]({'attributes':['id',_0x62fb('0x81')],'where':_0x3c9d75,'order':_0x1a03bd,'transaction':_0x31aa85,'lock':_0x31aa85[_0x62fb('0x82')][_0x62fb('0x83')],'include':[{'model':db[_0x62fb('0x68')],'as':_0x62fb('0x84'),'attributes':_0x265a54,'include':[{'model':db[_0x62fb('0x85')],'as':_0x62fb('0x86'),'attributes':['id',_0x62fb('0x23')]}]},{'model':db[_0x62fb('0x87')],'as':_0x62fb('0x88'),'attributes':['id',_0x62fb('0x23')]},{'model':db['VoiceQueue'],'as':_0x62fb('0x89'),'attributes':['id',_0x62fb('0x23'),_0x62fb('0x8a')]}]})[_0x62fb('0x20')](function(_0x562506){if(_0x562506){return _0x562506[_0x62fb('0x1f')]({'UserId':_0x3e2650[_0x62fb('0x62')]['id']},{'transaction':_0x31aa85});}});});}})[_0x62fb('0x20')](handleEntityNotFound(_0xde92b7,null))[_0x62fb('0x20')](respondWithResult(_0xde92b7,null))[_0x62fb('0x57')](handleError(_0xde92b7,null));};exports[_0x62fb('0x8b')]=function(_0x49e722,_0x37be8b,_0x1c4187){return _0x49e722[_0x62fb('0x62')][_0x62fb('0x8c')]({'where':{'type':_0x62fb('0x70'),'dialActive':!![],'dialMethod':_0x62fb('0x71')},'attributes':['id'],'raw':!![]})[_0x62fb('0x20')](function(_0x100cfc){if(_0x100cfc&&_0x100cfc[_0x62fb('0x51')]){return db[_0x62fb('0x26')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x62fb('0x64')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x62fb('0x4b')](_0x100cfc,'id')},'$or':[{'UserId':null},{'UserId':_0x49e722[_0x62fb('0x62')]['id']}]}});}return 0x0;})[_0x62fb('0x20')](function(_0x9da759){if(!_[_0x62fb('0x6c')](_0x9da759)&&_['isNumber'](_0x9da759)){return _0x37be8b[_0x62fb('0x14')](0xc8)[_0x62fb('0x1b')]({'contacts':_0x9da759});}else{logger[_0x62fb('0x21')](_0x62fb('0x8d'),_0x62fb('0x8b'),0x194,_0x62fb('0x8e'));_0x37be8b[_0x62fb('0x13')](0x194);}})[_0x62fb('0x57')](handleError(_0x37be8b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d83=['lodash','util','../../config/logger','api','moment','bluebird','./cmHopper.attributes','exports','define','CmHopper','cm_hopper','scheduledat','phone','priority'];(function(_0x5b2f70,_0x24d13c){var _0x2a2d03=function(_0xb54767){while(--_0xb54767){_0x5b2f70['push'](_0x5b2f70['shift']());}};_0x2a2d03(++_0x24d13c);}(_0x2d83,0xd2));var _0x32d8=function(_0xa7cd7d,_0x171256){_0xa7cd7d=_0xa7cd7d-0x0;var _0x245aea=_0x2d83[_0xa7cd7d];return _0x245aea;};'use strict';var _=require(_0x32d8('0x0'));var util=require(_0x32d8('0x1'));var logger=require(_0x32d8('0x2'))(_0x32d8('0x3'));var moment=require(_0x32d8('0x4'));var BPromise=require(_0x32d8('0x5'));var rp=require('request-promise');var attributes=require(_0x32d8('0x6'));module[_0x32d8('0x7')]=function(_0x5a3dcd,_0x4a32d7){return _0x5a3dcd[_0x32d8('0x8')](_0x32d8('0x9'),attributes,{'tableName':_0x32d8('0xa'),'paranoid':![],'indexes':[{'name':_0x32d8('0xb'),'fields':[_0x32d8('0xb')]},{'name':_0x32d8('0xc'),'fields':['phone']},{'name':_0x32d8('0xd'),'fields':['priority']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x2632=['cm_hopper','scheduledat','phone','priority','lodash','util','../../config/logger','api','moment','exports'];(function(_0x243095,_0x2b000b){var _0x5b82b5=function(_0x5ea86c){while(--_0x5ea86c){_0x243095['push'](_0x243095['shift']());}};_0x5b82b5(++_0x2b000b);}(_0x2632,0x7c));var _0x2263=function(_0x5cf2a8,_0x3a5f1c){_0x5cf2a8=_0x5cf2a8-0x0;var _0x54661b=_0x2632[_0x5cf2a8];return _0x54661b;};'use strict';var _=require(_0x2263('0x0'));var util=require(_0x2263('0x1'));var logger=require(_0x2263('0x2'))(_0x2263('0x3'));var moment=require(_0x2263('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require('./cmHopper.attributes');module[_0x2263('0x5')]=function(_0x5a36e7,_0x5cb250){return _0x5a36e7['define']('CmHopper',attributes,{'tableName':_0x2263('0x6'),'paranoid':![],'indexes':[{'name':_0x2263('0x7'),'fields':[_0x2263('0x7')]},{'name':_0x2263('0x8'),'fields':[_0x2263('0x8')]},{'name':_0x2263('0x9'),'fields':[_0x2263('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0352=['info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetCmHopper','CmHopper','options','raw','where','attributes','limit','include','map','model','ShowCmHopper','find','body','CreateCmHopper','update','UpdateCmHopper','DestroyCmHopper','GetContactDialer','CmContact','describe','sequelize','transaction','findAll','order','LOCK','UPDATE','Contact','keys','length','push','MoveContactManagedDialer','create','destroy','CountReScheduled','COUNT','literal','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','contactsRescheduled','UserId','all','GetContactRecallMe','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then'];(function(_0x5975cd,_0x35881c){var _0x327a3e=function(_0x1e1b5d){while(--_0x1e1b5d){_0x5975cd['push'](_0x5975cd['shift']());}};_0x327a3e(++_0x35881c);}(_0x0352,0xbe));var _0x2035=function(_0x381d93,_0x5b60a8){_0x381d93=_0x381d93-0x0;var _0xcfe846=_0x0352[_0x381d93];return _0xcfe846;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2035('0x0'));var BPromise=require(_0x2035('0x1'));var rs=require(_0x2035('0x2'));var fs=require('fs');var db=require(_0x2035('0x3'))['db'];var utils=require(_0x2035('0x4'));var logger=require(_0x2035('0x5'))(_0x2035('0x6'));var config=require('../../config/environment');var jayson=require(_0x2035('0x7'));var client=jayson[_0x2035('0x8')][_0x2035('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1d3967,_0x9a5c53,_0x5161d1){return new BPromise(function(_0x3ceb76,_0x1571bc){return client['request'](_0x1d3967,_0x5161d1)[_0x2035('0xa')](function(_0x374860){logger[_0x2035('0xb')](_0x2035('0xc'),_0x9a5c53,_0x2035('0xd'));logger[_0x2035('0xe')](_0x2035('0xf'),_0x9a5c53,_0x2035('0xd'),JSON[_0x2035('0x10')](_0x374860));if(_0x374860[_0x2035('0x11')]){if(_0x374860[_0x2035('0x11')][_0x2035('0x12')]===0x1f4){logger[_0x2035('0x11')](_0x2035('0xc'),_0x9a5c53,_0x374860['error'][_0x2035('0x13')]);return _0x1571bc(_0x374860[_0x2035('0x11')]['message']);}logger[_0x2035('0x11')](_0x2035('0xc'),_0x9a5c53,_0x374860[_0x2035('0x11')][_0x2035('0x13')]);return _0x3ceb76(_0x374860[_0x2035('0x11')][_0x2035('0x13')]);}else{logger[_0x2035('0xb')](_0x2035('0xc'),_0x9a5c53,'request\x20sent');_0x3ceb76(_0x374860[_0x2035('0x14')][_0x2035('0x13')]);}})[_0x2035('0x15')](function(_0x303b8b){logger[_0x2035('0x11')]('CmHopper,\x20%s,\x20%s',_0x9a5c53,_0x303b8b);_0x1571bc(_0x303b8b);});});}exports[_0x2035('0x16')]=function(_0x3f3670){var _0x3283d2=this;return new Promise(function(_0x46ae65,_0x5df8d0){return db[_0x2035('0x17')]['findAll']({'raw':_0x3f3670['options']?_0x3f3670[_0x2035('0x18')][_0x2035('0x19')]===undefined?!![]:![]:!![],'where':_0x3f3670[_0x2035('0x18')]?_0x3f3670[_0x2035('0x18')][_0x2035('0x1a')]||null:null,'attributes':_0x3f3670['options']?_0x3f3670[_0x2035('0x18')][_0x2035('0x1b')]||null:null,'limit':_0x3f3670['options']?_0x3f3670[_0x2035('0x18')][_0x2035('0x1c')]||null:null,'include':_0x3f3670[_0x2035('0x18')]?_0x3f3670[_0x2035('0x18')][_0x2035('0x1d')]?_['map'](_0x3f3670[_0x2035('0x18')][_0x2035('0x1d')],function(_0x2fd2f1){return{'model':db[_0x2fd2f1['model']],'as':_0x2fd2f1['as'],'attributes':_0x2fd2f1['attributes'],'include':_0x2fd2f1[_0x2035('0x1d')]?_[_0x2035('0x1e')](_0x2fd2f1[_0x2035('0x1d')],function(_0x52a0cc){return{'model':db[_0x52a0cc[_0x2035('0x1f')]],'as':_0x52a0cc['as'],'attributes':_0x52a0cc[_0x2035('0x1b')],'include':_0x52a0cc[_0x2035('0x1d')]?_[_0x2035('0x1e')](_0x52a0cc[_0x2035('0x1d')],function(_0x3f9aea){return{'model':db[_0x3f9aea[_0x2035('0x1f')]],'as':_0x3f9aea['as'],'attributes':_0x3f9aea[_0x2035('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x38259d){logger[_0x2035('0xb')]('GetCmHopper',_0x3f3670);logger['debug']('GetCmHopper',_0x3f3670,JSON['stringify'](_0x38259d));_0x46ae65(_0x38259d);})[_0x2035('0x15')](function(_0x1c3cad){logger[_0x2035('0x11')](_0x2035('0x16'),_0x1c3cad[_0x2035('0x13')],_0x3f3670);_0x5df8d0(_0x3283d2[_0x2035('0x11')](0x1f4,_0x1c3cad[_0x2035('0x13')]));});});};exports[_0x2035('0x20')]=function(_0x553bbd){var _0x561c9b=this;return new Promise(function(_0x5c9fde,_0xfec9a2){return db['CmHopper'][_0x2035('0x21')]({'raw':_0x553bbd[_0x2035('0x18')]?_0x553bbd[_0x2035('0x18')][_0x2035('0x19')]===undefined?!![]:![]:!![],'where':_0x553bbd['options']?_0x553bbd[_0x2035('0x18')]['where']||null:null,'attributes':_0x553bbd[_0x2035('0x18')]?_0x553bbd[_0x2035('0x18')][_0x2035('0x1b')]||null:null,'include':_0x553bbd[_0x2035('0x18')]?_0x553bbd[_0x2035('0x18')][_0x2035('0x1d')]?_[_0x2035('0x1e')](_0x553bbd['options'][_0x2035('0x1d')],function(_0xcdb378){return{'model':db[_0xcdb378[_0x2035('0x1f')]],'as':_0xcdb378['as'],'attributes':_0xcdb378[_0x2035('0x1b')],'include':_0xcdb378['include']?_[_0x2035('0x1e')](_0xcdb378['include'],function(_0x2730c2){return{'model':db[_0x2730c2['model']],'as':_0x2730c2['as'],'attributes':_0x2730c2[_0x2035('0x1b')],'include':_0x2730c2['include']?_[_0x2035('0x1e')](_0x2730c2[_0x2035('0x1d')],function(_0x4bbf07){return{'model':db[_0x4bbf07[_0x2035('0x1f')]],'as':_0x4bbf07['as'],'attributes':_0x4bbf07[_0x2035('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x2035('0xa')](function(_0x4e16b5){logger[_0x2035('0xb')]('ShowCmHopper',_0x553bbd);logger[_0x2035('0xe')]('ShowCmHopper',_0x553bbd,JSON['stringify'](_0x4e16b5));_0x5c9fde(_0x4e16b5);})[_0x2035('0x15')](function(_0x384eac){logger[_0x2035('0x11')](_0x2035('0x20'),_0x384eac[_0x2035('0x13')],_0x553bbd);_0xfec9a2(_0x561c9b[_0x2035('0x11')](0x1f4,_0x384eac[_0x2035('0x13')]));});});};exports['CreateCmHopper']=function(_0x16beb8){var _0x221976=this;return new Promise(function(_0x5c34d2,_0x1ddc52){return db[_0x2035('0x17')]['create'](_0x16beb8[_0x2035('0x22')],{'raw':_0x16beb8[_0x2035('0x18')]?_0x16beb8[_0x2035('0x18')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x4f0216){logger['info'](_0x2035('0x23'),_0x16beb8);logger[_0x2035('0xe')](_0x2035('0x23'),_0x16beb8,JSON[_0x2035('0x10')](_0x4f0216));_0x5c34d2(_0x4f0216);})[_0x2035('0x15')](function(_0x3d5e41){logger['error'](_0x2035('0x23'),_0x3d5e41[_0x2035('0x13')],_0x16beb8);_0x1ddc52(_0x221976[_0x2035('0x11')](0x1f4,_0x3d5e41['message']));});});};exports['UpdateCmHopper']=function(_0x3205fe){var _0x592756=this;return new Promise(function(_0xf60b6b,_0x3acba9){return db['CmHopper'][_0x2035('0x24')](_0x3205fe[_0x2035('0x22')],{'raw':_0x3205fe['options']?_0x3205fe[_0x2035('0x18')][_0x2035('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3205fe[_0x2035('0x18')]?_0x3205fe[_0x2035('0x18')][_0x2035('0x1a')]||null:null,'attributes':_0x3205fe[_0x2035('0x18')]?_0x3205fe[_0x2035('0x18')]['attributes']||null:null,'limit':_0x3205fe[_0x2035('0x18')]?_0x3205fe[_0x2035('0x18')][_0x2035('0x1c')]||null:null})[_0x2035('0xa')](function(_0x1f7a65){logger[_0x2035('0xb')](_0x2035('0x25'),_0x3205fe);logger[_0x2035('0xe')](_0x2035('0x25'),_0x3205fe,JSON['stringify'](_0x1f7a65));_0xf60b6b(_0x1f7a65);})['catch'](function(_0x341b9c){logger[_0x2035('0x11')](_0x2035('0x25'),_0x341b9c[_0x2035('0x13')],_0x3205fe);_0x3acba9(_0x592756['error'](0x1f4,_0x341b9c['message']));});});};exports[_0x2035('0x26')]=function(_0x4ca0dd){var _0x4f3d50=this;return new Promise(function(_0x30d5d4,_0x49b762){return db[_0x2035('0x17')]['destroy']({'where':_0x4ca0dd['options']?_0x4ca0dd[_0x2035('0x18')][_0x2035('0x1a')]||null:null})[_0x2035('0xa')](function(_0x515903){logger[_0x2035('0xb')]('DestroyCmHopper',_0x4ca0dd);logger['debug'](_0x2035('0x26'),_0x4ca0dd,JSON[_0x2035('0x10')](_0x515903));_0x30d5d4(_0x515903);})[_0x2035('0x15')](function(_0x321df7){logger['error'](_0x2035('0x26'),_0x321df7[_0x2035('0x13')],_0x4ca0dd);_0x49b762(_0x4f3d50['error'](0x1f4,_0x321df7[_0x2035('0x13')]));});});};exports[_0x2035('0x27')]=function(_0x3590fe){var _0x1977c8=this;return new Promise(function(_0x56cbf6,_0x1a5fd0){return db[_0x2035('0x28')][_0x2035('0x29')]()['then'](function(_0x37a2d0){return db[_0x2035('0x2a')][_0x2035('0x2b')](function(_0x47ea60){return db[_0x2035('0x17')][_0x2035('0x2c')]({'where':_0x3590fe['options']?_0x3590fe[_0x2035('0x18')][_0x2035('0x1a')]||null:null,'attributes':_0x3590fe[_0x2035('0x18')]?_0x3590fe[_0x2035('0x18')]['attributes']||null:null,'limit':_0x3590fe[_0x2035('0x18')]?_0x3590fe[_0x2035('0x18')]['limit']||null:null,'order':_0x3590fe[_0x2035('0x18')]?_0x3590fe[_0x2035('0x18')][_0x2035('0x2d')]||null:null,'transaction':_0x47ea60,'lock':_0x47ea60[_0x2035('0x2e')][_0x2035('0x2f')],'include':[{'model':db['CmContact'],'as':_0x2035('0x30'),'attributes':_[_0x2035('0x31')](_0x37a2d0)}]})[_0x2035('0xa')](function(_0x21a7bb){var _0x3b9b26=[];for(var _0x9f295c=0x0;_0x9f295c<_0x21a7bb[_0x2035('0x32')];_0x9f295c+=0x1){_0x3b9b26[_0x2035('0x33')](_0x21a7bb[_0x9f295c][_0x2035('0x24')](_0x3590fe['body'],{'transaction':_0x47ea60}));}return BPromise['all'](_0x3b9b26);});})[_0x2035('0xa')](function(_0x194fa2){logger['info'](_0x2035('0x27'),_0x3590fe);logger['debug'](_0x2035('0x27'),_0x3590fe,JSON[_0x2035('0x10')](_0x194fa2));_0x56cbf6(_0x194fa2);})[_0x2035('0x15')](function(_0x457276){logger[_0x2035('0x11')]('GetContactDialer',_0x457276[_0x2035('0x13')],_0x3590fe);_0x1a5fd0(_0x1977c8[_0x2035('0x11')](0x1f4,_0x457276[_0x2035('0x13')]));});});});};exports[_0x2035('0x34')]=function(_0x28f76e){var _0x3a8548=this;return new Promise(function(_0x4feab0,_0x3e3f56){return db[_0x2035('0x2a')][_0x2035('0x2b')](function(_0x4379c6){return db['CmHopperFinal'][_0x2035('0x35')](_0x28f76e['body'],{'raw':_0x28f76e['options']?_0x28f76e['options']['raw']===undefined?!![]:![]:!![],'transaction':_0x4379c6})[_0x2035('0xa')](function(){return db[_0x2035('0x17')][_0x2035('0x36')]({'where':_0x28f76e[_0x2035('0x18')]?_0x28f76e['options'][_0x2035('0x1a')]||null:null,'transaction':_0x4379c6});});})[_0x2035('0xa')](function(_0x1444da){logger['info'](_0x2035('0x34'),_0x28f76e);logger['debug'](_0x2035('0x34'),_0x28f76e,JSON[_0x2035('0x10')](_0x1444da));_0x4feab0(_0x1444da);})[_0x2035('0x15')](function(_0x54bb88){logger[_0x2035('0x11')](_0x2035('0x34'),_0x54bb88[_0x2035('0x13')],_0x28f76e);_0x3e3f56(_0x3a8548[_0x2035('0x11')](0x1f4,_0x54bb88['message']));});});};exports[_0x2035('0x37')]=function(_0x9ca870){var _0xc80a8c=this;return new Promise(function(_0xb61e70,_0x4b12b2){return db['CmHopper'][_0x2035('0x2c')]({'raw':_0x9ca870['options']?_0x9ca870[_0x2035('0x18')][_0x2035('0x19')]===undefined?!![]:![]:!![],'where':_0x9ca870[_0x2035('0x18')]?_0x9ca870[_0x2035('0x18')]['where']||null:null,'attributes':[[db[_0x2035('0x2a')]['fn'](_0x2035('0x38'),db[_0x2035('0x2a')]['fn']('IF',db[_0x2035('0x2a')][_0x2035('0x39')](_0x2035('0x3a')+util[_0x2035('0x3b')](_0x2035('0x3c'),moment()[_0x2035('0x3b')](_0x2035('0x3d')))+_0x2035('0x3e')))),_0x2035('0x3f')]]})[_0x2035('0xa')](function(_0x2f3306){logger[_0x2035('0xb')](_0x2035('0x37'),_0x9ca870);logger[_0x2035('0xe')](_0x2035('0x37'),_0x9ca870,JSON[_0x2035('0x10')](_0x2f3306));_0xb61e70(_0x2f3306);})[_0x2035('0x15')](function(_0x367443){logger[_0x2035('0x11')]('CountReScheduled',_0x367443[_0x2035('0x13')],_0x9ca870);_0x4b12b2(_0xc80a8c[_0x2035('0x11')](0x1f4,_0x367443[_0x2035('0x13')]));});});};exports['GetContactRecallMe']=function(_0x220668){var _0x1d2909=this;return new Promise(function(_0x1465ec,_0xa0f3ce){return db[_0x2035('0x28')][_0x2035('0x29')]()[_0x2035('0xa')](function(_0x57d8af){return db[_0x2035('0x2a')][_0x2035('0x2b')](function(_0x1e8d0b){return db[_0x2035('0x17')]['findAll']({'where':_0x220668['options']?_0x220668['options'][_0x2035('0x1a')]||null:null,'attributes':_0x220668['options']?_0x220668[_0x2035('0x18')][_0x2035('0x1b')]||null:null,'limit':0x1,'order':_0x220668[_0x2035('0x18')]?_0x220668[_0x2035('0x18')][_0x2035('0x2d')]||null:null,'group':db[_0x2035('0x17')][_0x2035('0x40')],'transaction':_0x1e8d0b,'lock':_0x1e8d0b[_0x2035('0x2e')]['UPDATE'],'include':_0x220668[_0x2035('0x18')]?_0x220668[_0x2035('0x18')]['include']?_[_0x2035('0x1e')](_0x220668[_0x2035('0x18')][_0x2035('0x1d')],function(_0x16680a){return{'model':db[_0x16680a[_0x2035('0x1f')]],'as':_0x16680a['as'],'attributes':_0x16680a['attributes'],'include':_0x16680a[_0x2035('0x1d')]?_[_0x2035('0x1e')](_0x16680a[_0x2035('0x1d')],function(_0x54d56b){return{'model':db[_0x54d56b[_0x2035('0x1f')]],'as':_0x54d56b['as'],'attributes':_0x54d56b['attributes'],'include':_0x54d56b[_0x2035('0x1d')]?_[_0x2035('0x1e')](_0x54d56b[_0x2035('0x1d')],function(_0xcb67fe){return{'model':db[_0xcb67fe[_0x2035('0x1f')]],'as':_0xcb67fe['as'],'attributes':_0xcb67fe['attributes']};}):[]};}):[]};}):[]:[]})[_0x2035('0xa')](function(_0x58cc20){var _0x470f53=[];for(var _0x444519=0x0;_0x444519<_0x58cc20[_0x2035('0x32')];_0x444519+=0x1){_0x470f53[_0x2035('0x33')](_0x58cc20[_0x444519][_0x2035('0x24')](_0x220668[_0x2035('0x22')],{'transaction':_0x1e8d0b}));}return BPromise[_0x2035('0x41')](_0x470f53);});})['then'](function(_0x4054fb){logger[_0x2035('0xb')](_0x2035('0x42'),_0x220668);logger['debug']('GetContactRecallMe',_0x220668,JSON[_0x2035('0x10')](_0x4054fb));_0x1465ec(_0x4054fb);})[_0x2035('0x15')](function(_0x256642){logger[_0x2035('0x11')](_0x2035('0x42'),_0x256642[_0x2035('0x13')],_0x220668);_0xa0f3ce(_0x1d2909[_0x2035('0x11')](0x1f4,_0x256642[_0x2035('0x13')]));});});});};
\ No newline at end of file
+var _0x593c=['bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','CmHopper,\x20%s,\x20%s','request\x20sent','error','code','message','GetCmHopper','findAll','options','raw','attributes','include','model','map','then','debug','stringify','catch','ShowCmHopper','CmHopper','where','CreateCmHopper','create','body','UpdateCmHopper','update','limit','DestroyCmHopper','CmContact','sequelize','transaction','UPDATE','keys','push','all','GetContactDialer','MoveContactManagedDialer','CmHopperFinal','destroy','COUNT','literal','`scheduledat`\x20>=\x20','format','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','contactsRescheduled','CountReScheduled','GetContactRecallMe','describe','LOCK','length','util'];(function(_0x2124d8,_0x2ab19c){var _0x1579a1=function(_0x3fdfd0){while(--_0x3fdfd0){_0x2124d8['push'](_0x2124d8['shift']());}};_0x1579a1(++_0x2ab19c);}(_0x593c,0x179));var _0xc593=function(_0x55c979,_0x36c5f0){_0x55c979=_0x55c979-0x0;var _0x690107=_0x593c[_0x55c979];return _0x690107;};'use strict';var _=require('lodash');var util=require(_0xc593('0x0'));var moment=require('moment');var BPromise=require(_0xc593('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc593('0x2'));var db=require(_0xc593('0x3'))['db'];var utils=require(_0xc593('0x4'));var logger=require(_0xc593('0x5'))(_0xc593('0x6'));var config=require(_0xc593('0x7'));var jayson=require(_0xc593('0x8'));var client=jayson[_0xc593('0x9')][_0xc593('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x54985e,_0x3d7ce0,_0x4a5b81){return new BPromise(function(_0x25168a,_0x2c9de1){return client[_0xc593('0xb')](_0x54985e,_0x4a5b81)['then'](function(_0x51f614){logger[_0xc593('0xc')](_0xc593('0xd'),_0x3d7ce0,_0xc593('0xe'));logger['debug']('CmHopper,\x20%s,\x20%s,\x20%s',_0x3d7ce0,_0xc593('0xe'),JSON['stringify'](_0x51f614));if(_0x51f614[_0xc593('0xf')]){if(_0x51f614[_0xc593('0xf')][_0xc593('0x10')]===0x1f4){logger['error']('CmHopper,\x20%s,\x20%s',_0x3d7ce0,_0x51f614[_0xc593('0xf')][_0xc593('0x11')]);return _0x2c9de1(_0x51f614[_0xc593('0xf')]['message']);}logger[_0xc593('0xf')](_0xc593('0xd'),_0x3d7ce0,_0x51f614['error'][_0xc593('0x11')]);return _0x25168a(_0x51f614[_0xc593('0xf')][_0xc593('0x11')]);}else{logger[_0xc593('0xc')](_0xc593('0xd'),_0x3d7ce0,'request\x20sent');_0x25168a(_0x51f614['result']['message']);}})['catch'](function(_0x1f4a4e){logger['error']('CmHopper,\x20%s,\x20%s',_0x3d7ce0,_0x1f4a4e);_0x2c9de1(_0x1f4a4e);});});}exports[_0xc593('0x12')]=function(_0x48207e){var _0x85263e=this;return new Promise(function(_0x10bf9a,_0x16dc99){return db['CmHopper'][_0xc593('0x13')]({'raw':_0x48207e[_0xc593('0x14')]?_0x48207e[_0xc593('0x14')][_0xc593('0x15')]===undefined?!![]:![]:!![],'where':_0x48207e[_0xc593('0x14')]?_0x48207e['options']['where']||null:null,'attributes':_0x48207e[_0xc593('0x14')]?_0x48207e[_0xc593('0x14')][_0xc593('0x16')]||null:null,'limit':_0x48207e[_0xc593('0x14')]?_0x48207e['options']['limit']||null:null,'include':_0x48207e['options']?_0x48207e[_0xc593('0x14')][_0xc593('0x17')]?_['map'](_0x48207e['options'][_0xc593('0x17')],function(_0x53a4e2){return{'model':db[_0x53a4e2[_0xc593('0x18')]],'as':_0x53a4e2['as'],'attributes':_0x53a4e2[_0xc593('0x16')],'include':_0x53a4e2[_0xc593('0x17')]?_[_0xc593('0x19')](_0x53a4e2[_0xc593('0x17')],function(_0x16c745){return{'model':db[_0x16c745[_0xc593('0x18')]],'as':_0x16c745['as'],'attributes':_0x16c745[_0xc593('0x16')],'include':_0x16c745[_0xc593('0x17')]?_['map'](_0x16c745[_0xc593('0x17')],function(_0x415832){return{'model':db[_0x415832['model']],'as':_0x415832['as'],'attributes':_0x415832['attributes']};}):[]};}):[]};}):[]:[]})[_0xc593('0x1a')](function(_0x40ed92){logger[_0xc593('0xc')](_0xc593('0x12'),_0x48207e);logger[_0xc593('0x1b')](_0xc593('0x12'),_0x48207e,JSON[_0xc593('0x1c')](_0x40ed92));_0x10bf9a(_0x40ed92);})[_0xc593('0x1d')](function(_0x525891){logger['error']('GetCmHopper',_0x525891[_0xc593('0x11')],_0x48207e);_0x16dc99(_0x85263e['error'](0x1f4,_0x525891[_0xc593('0x11')]));});});};exports[_0xc593('0x1e')]=function(_0x467fde){var _0x525e10=this;return new Promise(function(_0x53bade,_0x3721ac){return db[_0xc593('0x1f')]['find']({'raw':_0x467fde[_0xc593('0x14')]?_0x467fde[_0xc593('0x14')][_0xc593('0x15')]===undefined?!![]:![]:!![],'where':_0x467fde[_0xc593('0x14')]?_0x467fde['options'][_0xc593('0x20')]||null:null,'attributes':_0x467fde[_0xc593('0x14')]?_0x467fde[_0xc593('0x14')][_0xc593('0x16')]||null:null,'include':_0x467fde[_0xc593('0x14')]?_0x467fde[_0xc593('0x14')][_0xc593('0x17')]?_[_0xc593('0x19')](_0x467fde[_0xc593('0x14')]['include'],function(_0x51b3bf){return{'model':db[_0x51b3bf['model']],'as':_0x51b3bf['as'],'attributes':_0x51b3bf[_0xc593('0x16')],'include':_0x51b3bf[_0xc593('0x17')]?_[_0xc593('0x19')](_0x51b3bf[_0xc593('0x17')],function(_0x464d67){return{'model':db[_0x464d67['model']],'as':_0x464d67['as'],'attributes':_0x464d67[_0xc593('0x16')],'include':_0x464d67[_0xc593('0x17')]?_[_0xc593('0x19')](_0x464d67[_0xc593('0x17')],function(_0xec4965){return{'model':db[_0xec4965[_0xc593('0x18')]],'as':_0xec4965['as'],'attributes':_0xec4965['attributes']};}):[]};}):[]};}):[]:[]})[_0xc593('0x1a')](function(_0x588b2e){logger[_0xc593('0xc')](_0xc593('0x1e'),_0x467fde);logger['debug']('ShowCmHopper',_0x467fde,JSON['stringify'](_0x588b2e));_0x53bade(_0x588b2e);})['catch'](function(_0x6e0f2c){logger[_0xc593('0xf')](_0xc593('0x1e'),_0x6e0f2c[_0xc593('0x11')],_0x467fde);_0x3721ac(_0x525e10[_0xc593('0xf')](0x1f4,_0x6e0f2c[_0xc593('0x11')]));});});};exports[_0xc593('0x21')]=function(_0x778bdb){var _0x4f1968=this;return new Promise(function(_0x41acf1,_0x61552c){return db[_0xc593('0x1f')][_0xc593('0x22')](_0x778bdb[_0xc593('0x23')],{'raw':_0x778bdb['options']?_0x778bdb[_0xc593('0x14')][_0xc593('0x15')]===undefined?!![]:![]:!![]})[_0xc593('0x1a')](function(_0x3abb87){logger[_0xc593('0xc')](_0xc593('0x21'),_0x778bdb);logger[_0xc593('0x1b')](_0xc593('0x21'),_0x778bdb,JSON[_0xc593('0x1c')](_0x3abb87));_0x41acf1(_0x3abb87);})[_0xc593('0x1d')](function(_0x408f8b){logger[_0xc593('0xf')](_0xc593('0x21'),_0x408f8b['message'],_0x778bdb);_0x61552c(_0x4f1968[_0xc593('0xf')](0x1f4,_0x408f8b[_0xc593('0x11')]));});});};exports[_0xc593('0x24')]=function(_0x20fbd0){var _0x548f22=this;return new Promise(function(_0x4f08fd,_0x36b722){return db[_0xc593('0x1f')][_0xc593('0x25')](_0x20fbd0[_0xc593('0x23')],{'raw':_0x20fbd0['options']?_0x20fbd0[_0xc593('0x14')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x20fbd0[_0xc593('0x14')]?_0x20fbd0[_0xc593('0x14')][_0xc593('0x20')]||null:null,'attributes':_0x20fbd0[_0xc593('0x14')]?_0x20fbd0[_0xc593('0x14')][_0xc593('0x16')]||null:null,'limit':_0x20fbd0[_0xc593('0x14')]?_0x20fbd0['options'][_0xc593('0x26')]||null:null})['then'](function(_0x4bdbb0){logger[_0xc593('0xc')](_0xc593('0x24'),_0x20fbd0);logger[_0xc593('0x1b')](_0xc593('0x24'),_0x20fbd0,JSON[_0xc593('0x1c')](_0x4bdbb0));_0x4f08fd(_0x4bdbb0);})[_0xc593('0x1d')](function(_0x293654){logger[_0xc593('0xf')](_0xc593('0x24'),_0x293654[_0xc593('0x11')],_0x20fbd0);_0x36b722(_0x548f22['error'](0x1f4,_0x293654[_0xc593('0x11')]));});});};exports['DestroyCmHopper']=function(_0x57b142){var _0xb45a44=this;return new Promise(function(_0xbeaed5,_0x293530){return db[_0xc593('0x1f')]['destroy']({'where':_0x57b142[_0xc593('0x14')]?_0x57b142[_0xc593('0x14')][_0xc593('0x20')]||null:null})[_0xc593('0x1a')](function(_0x4642c8){logger[_0xc593('0xc')](_0xc593('0x27'),_0x57b142);logger[_0xc593('0x1b')](_0xc593('0x27'),_0x57b142,JSON[_0xc593('0x1c')](_0x4642c8));_0xbeaed5(_0x4642c8);})[_0xc593('0x1d')](function(_0x4c6472){logger[_0xc593('0xf')](_0xc593('0x27'),_0x4c6472['message'],_0x57b142);_0x293530(_0xb45a44['error'](0x1f4,_0x4c6472['message']));});});};exports['GetContactDialer']=function(_0x40f941){var _0x4cb8aa=this;return new Promise(function(_0x36a2c1,_0x1db340){return db[_0xc593('0x28')]['describe']()[_0xc593('0x1a')](function(_0x55c92d){return db[_0xc593('0x29')][_0xc593('0x2a')](function(_0x208b93){return db['CmHopper']['findAll']({'where':_0x40f941['options']?_0x40f941[_0xc593('0x14')][_0xc593('0x20')]||null:null,'attributes':_0x40f941[_0xc593('0x14')]?_0x40f941[_0xc593('0x14')][_0xc593('0x16')]||null:null,'limit':_0x40f941[_0xc593('0x14')]?_0x40f941['options']['limit']||null:null,'order':_0x40f941[_0xc593('0x14')]?_0x40f941[_0xc593('0x14')]['order']||null:null,'transaction':_0x208b93,'lock':_0x208b93['LOCK'][_0xc593('0x2b')],'include':[{'model':db[_0xc593('0x28')],'as':'Contact','attributes':_[_0xc593('0x2c')](_0x55c92d)}]})['then'](function(_0x1d4d7e){var _0x1adf29=[];for(var _0x2c2bea=0x0;_0x2c2bea<_0x1d4d7e['length'];_0x2c2bea+=0x1){_0x1adf29[_0xc593('0x2d')](_0x1d4d7e[_0x2c2bea][_0xc593('0x25')](_0x40f941[_0xc593('0x23')],{'transaction':_0x208b93}));}return BPromise[_0xc593('0x2e')](_0x1adf29);});})[_0xc593('0x1a')](function(_0x530f53){logger[_0xc593('0xc')]('GetContactDialer',_0x40f941);logger[_0xc593('0x1b')](_0xc593('0x2f'),_0x40f941,JSON[_0xc593('0x1c')](_0x530f53));_0x36a2c1(_0x530f53);})[_0xc593('0x1d')](function(_0x5480b4){logger['error'](_0xc593('0x2f'),_0x5480b4[_0xc593('0x11')],_0x40f941);_0x1db340(_0x4cb8aa[_0xc593('0xf')](0x1f4,_0x5480b4[_0xc593('0x11')]));});});});};exports[_0xc593('0x30')]=function(_0x4b5c8a){var _0x17f68b=this;return new Promise(function(_0x45acd8,_0x5be71a){return db[_0xc593('0x29')][_0xc593('0x2a')](function(_0x59b1fe){return db[_0xc593('0x31')][_0xc593('0x22')](_0x4b5c8a[_0xc593('0x23')],{'raw':_0x4b5c8a[_0xc593('0x14')]?_0x4b5c8a[_0xc593('0x14')][_0xc593('0x15')]===undefined?!![]:![]:!![],'transaction':_0x59b1fe})[_0xc593('0x1a')](function(){return db[_0xc593('0x1f')][_0xc593('0x32')]({'where':_0x4b5c8a['options']?_0x4b5c8a['options'][_0xc593('0x20')]||null:null,'transaction':_0x59b1fe});});})[_0xc593('0x1a')](function(_0x141cbc){logger['info'](_0xc593('0x30'),_0x4b5c8a);logger[_0xc593('0x1b')](_0xc593('0x30'),_0x4b5c8a,JSON[_0xc593('0x1c')](_0x141cbc));_0x45acd8(_0x141cbc);})[_0xc593('0x1d')](function(_0x546a65){logger['error'](_0xc593('0x30'),_0x546a65[_0xc593('0x11')],_0x4b5c8a);_0x5be71a(_0x17f68b[_0xc593('0xf')](0x1f4,_0x546a65[_0xc593('0x11')]));});});};exports['CountReScheduled']=function(_0x75f479){var _0x3a3d21=this;return new Promise(function(_0x222f24,_0x37ae3c){return db[_0xc593('0x1f')][_0xc593('0x13')]({'raw':_0x75f479[_0xc593('0x14')]?_0x75f479[_0xc593('0x14')][_0xc593('0x15')]===undefined?!![]:![]:!![],'where':_0x75f479['options']?_0x75f479['options'][_0xc593('0x20')]||null:null,'attributes':[[db[_0xc593('0x29')]['fn'](_0xc593('0x33'),db[_0xc593('0x29')]['fn']('IF',db[_0xc593('0x29')][_0xc593('0x34')](_0xc593('0x35')+util[_0xc593('0x36')]('\x22%s\x22',moment()[_0xc593('0x36')](_0xc593('0x37')))+_0xc593('0x38')))),_0xc593('0x39')]]})['then'](function(_0x563778){logger[_0xc593('0xc')](_0xc593('0x3a'),_0x75f479);logger[_0xc593('0x1b')]('CountReScheduled',_0x75f479,JSON['stringify'](_0x563778));_0x222f24(_0x563778);})[_0xc593('0x1d')](function(_0x304e08){logger[_0xc593('0xf')](_0xc593('0x3a'),_0x304e08['message'],_0x75f479);_0x37ae3c(_0x3a3d21[_0xc593('0xf')](0x1f4,_0x304e08[_0xc593('0x11')]));});});};exports[_0xc593('0x3b')]=function(_0x584942){var _0x5c48df=this;return new Promise(function(_0x881142,_0x50ddea){return db[_0xc593('0x28')][_0xc593('0x3c')]()[_0xc593('0x1a')](function(_0x2b8e1d){return db['sequelize'][_0xc593('0x2a')](function(_0x3cade4){return db[_0xc593('0x1f')]['findAll']({'where':_0x584942[_0xc593('0x14')]?_0x584942['options']['where']||null:null,'attributes':_0x584942[_0xc593('0x14')]?_0x584942[_0xc593('0x14')][_0xc593('0x16')]||null:null,'limit':0x1,'order':_0x584942['options']?_0x584942[_0xc593('0x14')]['order']||null:null,'group':db['CmHopper']['UserId'],'transaction':_0x3cade4,'lock':_0x3cade4[_0xc593('0x3d')]['UPDATE'],'include':_0x584942[_0xc593('0x14')]?_0x584942[_0xc593('0x14')][_0xc593('0x17')]?_['map'](_0x584942['options'][_0xc593('0x17')],function(_0x5e8e0a){return{'model':db[_0x5e8e0a[_0xc593('0x18')]],'as':_0x5e8e0a['as'],'attributes':_0x5e8e0a[_0xc593('0x16')],'include':_0x5e8e0a['include']?_[_0xc593('0x19')](_0x5e8e0a[_0xc593('0x17')],function(_0x50014e){return{'model':db[_0x50014e[_0xc593('0x18')]],'as':_0x50014e['as'],'attributes':_0x50014e[_0xc593('0x16')],'include':_0x50014e['include']?_['map'](_0x50014e[_0xc593('0x17')],function(_0x193620){return{'model':db[_0x193620[_0xc593('0x18')]],'as':_0x193620['as'],'attributes':_0x193620[_0xc593('0x16')]};}):[]};}):[]};}):[]:[]})[_0xc593('0x1a')](function(_0x41afb9){var _0x273ec7=[];for(var _0xfd72cb=0x0;_0xfd72cb<_0x41afb9[_0xc593('0x3e')];_0xfd72cb+=0x1){_0x273ec7['push'](_0x41afb9[_0xfd72cb][_0xc593('0x25')](_0x584942[_0xc593('0x23')],{'transaction':_0x3cade4}));}return BPromise['all'](_0x273ec7);});})[_0xc593('0x1a')](function(_0x280fce){logger[_0xc593('0xc')](_0xc593('0x3b'),_0x584942);logger[_0xc593('0x1b')]('GetContactRecallMe',_0x584942,JSON['stringify'](_0x280fce));_0x881142(_0x280fce);})[_0xc593('0x1d')](function(_0x209873){logger['error'](_0xc593('0x3b'),_0x209873[_0xc593('0x11')],_0x584942);_0x50ddea(_0x5c48df[_0xc593('0xf')](0x1f4,_0x209873[_0xc593('0x11')]));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['destroy','exports','multer','util','path','express','Router','../../components/interaction/service','../../config/environment','./cmHopper.controller','get','isAuthenticated','describe','/opencontacts','/:id','post','/preview','getPreview','put','delete'];(function(_0x5148f8,_0x28c700){var _0x5c70f2=function(_0x131649){while(--_0x131649){_0x5148f8['push'](_0x5148f8['shift']());}};_0x5c70f2(++_0x28c700);}(_0x7a54,0x106));var _0x47a5=function(_0x1a8590,_0x36201c){_0x1a8590=_0x1a8590-0x0;var _0x3958fc=_0x7a54[_0x1a8590];return _0x3958fc;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0x47a5('0x5'));var config=require(_0x47a5('0x6'));var controller=require(_0x47a5('0x7'));router[_0x47a5('0x8')]('/',auth[_0x47a5('0x9')](),controller['index']);router[_0x47a5('0x8')]('/describe',auth[_0x47a5('0x9')](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth['isAuthenticated'](),controller['getOpenContacts']);router['get'](_0x47a5('0xc'),auth[_0x47a5('0x9')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router[_0x47a5('0xd')](_0x47a5('0xe'),auth[_0x47a5('0x9')](),controller[_0x47a5('0xf')]);router[_0x47a5('0x10')](_0x47a5('0xc'),auth[_0x47a5('0x9')](),controller['update']);router[_0x47a5('0x11')](_0x47a5('0xc'),auth[_0x47a5('0x9')](),controller[_0x47a5('0x12')]);module[_0x47a5('0x13')]=router;
\ No newline at end of file
+var _0x9957=['/:id','show','post','/preview','getPreview','put','update','delete','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','/opencontacts','getOpenContacts'];(function(_0x38ced4,_0x24263f){var _0x547c07=function(_0x279fc4){while(--_0x279fc4){_0x38ced4['push'](_0x38ced4['shift']());}};_0x547c07(++_0x24263f);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var auth=require(_0x7995('0x5'));var interaction=require(_0x7995('0x6'));var config=require(_0x7995('0x7'));var controller=require('./cmHopper.controller');router[_0x7995('0x8')]('/',auth[_0x7995('0x9')](),controller[_0x7995('0xa')]);router[_0x7995('0x8')](_0x7995('0xb'),auth[_0x7995('0x9')](),controller['describe']);router[_0x7995('0x8')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x8')](_0x7995('0xe'),auth[_0x7995('0x9')](),controller[_0x7995('0xf')]);router[_0x7995('0x10')]('/',auth[_0x7995('0x9')](),controller['create']);router[_0x7995('0x10')](_0x7995('0x11'),auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x13')](_0x7995('0xe'),auth[_0x7995('0x9')](),controller[_0x7995('0x14')]);router[_0x7995('0x15')](_0x7995('0xe'),auth['isAuthenticated'](),controller['destroy']);module[_0x7995('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6b5=['STRING','INTEGER','contactListQueue','sequelize','exports'];(function(_0x57a50d,_0x2871f8){var _0x1b25b3=function(_0x45691e){while(--_0x45691e){_0x57a50d['push'](_0x57a50d['shift']());}};_0x1b25b3(++_0x2871f8);}(_0xa6b5,0x17a));var _0x5a6b=function(_0x41fe92,_0x5eb274){_0x41fe92=_0x41fe92-0x0;var _0x1902de=_0xa6b5[_0x41fe92];return _0x1902de;};'use strict';var moment=require('moment');var Sequelize=require(_0x5a6b('0x0'));module[_0x5a6b('0x1')]={'phone':{'type':Sequelize[_0x5a6b('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize[_0x5a6b('0x3')],'unique':_0x5a6b('0x4')},'ListId':{'type':Sequelize[_0x5a6b('0x3')],'unique':_0x5a6b('0x4')},'VoiceQueueId':{'type':Sequelize[_0x5a6b('0x3')],'unique':_0x5a6b('0x4')}};
\ No newline at end of file
+var _0x13fd=['exports','STRING','INTEGER','contactListQueue','moment'];(function(_0x23945f,_0x9d3e4e){var _0xa38592=function(_0x406b83){while(--_0x406b83){_0x23945f['push'](_0x23945f['shift']());}};_0xa38592(++_0x9d3e4e);}(_0x13fd,0x1d5));var _0xd13f=function(_0x45be7b,_0x438d0a){_0x45be7b=_0x45be7b-0x0;var _0x11f9db=_0x13fd[_0x45be7b];return _0x11f9db;};'use strict';var moment=require(_0xd13f('0x0'));var Sequelize=require('sequelize');module[_0xd13f('0x1')]={'phone':{'type':Sequelize[_0xd13f('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize[_0xd13f('0x3')],'unique':_0xd13f('0x4')},'ListId':{'type':Sequelize[_0xd13f('0x3')],'unique':'contactListQueue'},'VoiceQueueId':{'type':Sequelize[_0xd13f('0x3')],'unique':_0xd13f('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a25=['includeAll','findAll','rows','catch','show','params','length','include','find','body','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','apply','save','update','then','end','error','name','index','CmHopperBlack','rawAttributes','keys','query','dateEnd','dateStart','filters','attributes','intersection','model','fields','hasOwnProperty','nolimit','sort','where','pick','add','day','merge','filter','map','options'];(function(_0x3a7001,_0x5f0dc8){var _0x1e35d2=function(_0x422ef6){while(--_0x422ef6){_0x3a7001['push'](_0x3a7001['shift']());}};_0x1e35d2(++_0x5f0dc8);}(_0x8a25,0x94));var _0x58a2=function(_0x2526b6,_0x5272bd){_0x2526b6=_0x2526b6-0x0;var _0x168b4e=_0x8a25[_0x2526b6];return _0x168b4e;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x58a2('0x0'));var zipdir=require(_0x58a2('0x1'));var jsonpatch=require(_0x58a2('0x2'));var rp=require(_0x58a2('0x3'));var moment=require(_0x58a2('0x4'));var BPromise=require(_0x58a2('0x5'));var Mustache=require('mustache');var util=require(_0x58a2('0x6'));var path=require(_0x58a2('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x58a2('0x8'));var crypto=require(_0x58a2('0x9'));var jsforce=require(_0x58a2('0xa'));var deskjs=require(_0x58a2('0xb'));var toCsv=require('to-csv');var querystring=require(_0x58a2('0xc'));var Papa=require(_0x58a2('0xd'));var qs=require(_0x58a2('0xe'));var logger=require('../../config/logger')(_0x58a2('0xf'));var utils=require(_0x58a2('0x10'));var config=require(_0x58a2('0x11'));var db=require(_0x58a2('0x12'))['db'];function respondWithStatusCode(_0x4f8f23,_0x57a42c){_0x57a42c=_0x57a42c||0xcc;return function(_0x334a93){if(_0x334a93){return _0x4f8f23[_0x58a2('0x13')](_0x57a42c);}return _0x4f8f23['status'](_0x57a42c)['end']();};}function respondWithResult(_0xd0124b,_0x394434){_0x394434=_0x394434||0xc8;return function(_0xa48b38){if(_0xa48b38){return _0xd0124b[_0x58a2('0x14')](_0x394434)[_0x58a2('0x15')](_0xa48b38);}};}function respondWithFilteredResult(_0x2ecaae,_0x15493d){return function(_0x4a039d){if(_0x4a039d){var _0x2e63a3=_0x4a039d[_0x58a2('0x16')],_0x4d3d53=_0x15493d[_0x58a2('0x17')],_0x5e7fa2=_0x15493d[_0x58a2('0x17')]+_0x15493d[_0x58a2('0x18')],_0x3293ee;if(_0x5e7fa2>=_0x2e63a3){_0x5e7fa2=_0x2e63a3;_0x3293ee=0xc8;}else{_0x3293ee=0xce;}_0x2ecaae[_0x58a2('0x14')](_0x3293ee);return _0x2ecaae[_0x58a2('0x19')]('Content-Range',_0x4d3d53+'-'+_0x5e7fa2+'/'+_0x2e63a3)[_0x58a2('0x15')](_0x4a039d);}return null;};}function patchUpdates(_0x3a7343){return function(_0x1e88bd){try{jsonpatch[_0x58a2('0x1a')](_0x1e88bd,_0x3a7343,!![]);}catch(_0x3d1183){return BPromise['reject'](_0x3d1183);}return _0x1e88bd[_0x58a2('0x1b')]();};}function saveUpdates(_0x180a06,_0x3e79ec){return function(_0x4758a9){if(_0x4758a9){return _0x4758a9[_0x58a2('0x1c')](_0x180a06)[_0x58a2('0x1d')](function(_0x1769fc){return _0x1769fc;});}return null;};}function removeEntity(_0x427286,_0xbd8c1d){return function(_0x1f72d9){if(_0x1f72d9){return _0x1f72d9['destroy']()[_0x58a2('0x1d')](function(){_0x427286[_0x58a2('0x14')](0xcc)[_0x58a2('0x1e')]();});}};}function handleEntityNotFound(_0x68b276,_0x343c8b){return function(_0x67a1bc){if(!_0x67a1bc){_0x68b276[_0x58a2('0x13')](0x194);}return _0x67a1bc;};}function handleError(_0x49c24f,_0x4033c1){_0x4033c1=_0x4033c1||0x1f4;return function(_0x38fadd){logger[_0x58a2('0x1f')](_0x38fadd['stack']);if(_0x38fadd[_0x58a2('0x20')]){delete _0x38fadd[_0x58a2('0x20')];}_0x49c24f[_0x58a2('0x14')](_0x4033c1)['send'](_0x38fadd);};}exports[_0x58a2('0x21')]=function(_0x293887,_0x5b1230){var _0x3eb2a8={},_0x518d6a={},_0x2af832={'count':0x0,'rows':[]};var _0x5e7368=db[_0x58a2('0x22')][_0x58a2('0x23')];_0x518d6a['model']=_[_0x58a2('0x24')](_0x5e7368);var _0x5948cc={'dateStart':_0x293887[_0x58a2('0x25')]['dateStart'],'dateEnd':_0x293887[_0x58a2('0x25')][_0x58a2('0x26')]};delete _0x293887[_0x58a2('0x25')][_0x58a2('0x27')];delete _0x293887['query'][_0x58a2('0x26')];_0x518d6a[_0x58a2('0x25')]=_['keys'](_0x293887[_0x58a2('0x25')]);_0x518d6a[_0x58a2('0x28')]=_['intersection'](_0x518d6a['model'],_0x518d6a[_0x58a2('0x25')]);_0x3eb2a8[_0x58a2('0x29')]=_[_0x58a2('0x2a')](_0x518d6a[_0x58a2('0x2b')],qs[_0x58a2('0x2c')](_0x293887['query'][_0x58a2('0x2c')]));_0x3eb2a8[_0x58a2('0x29')]=_0x3eb2a8[_0x58a2('0x29')]['length']?_0x3eb2a8[_0x58a2('0x29')]:_0x518d6a[_0x58a2('0x2b')];if(!_0x293887[_0x58a2('0x25')][_0x58a2('0x2d')](_0x58a2('0x2e'))){_0x3eb2a8[_0x58a2('0x18')]=qs[_0x58a2('0x18')](_0x293887[_0x58a2('0x25')][_0x58a2('0x18')]);_0x3eb2a8[_0x58a2('0x17')]=qs['offset'](_0x293887[_0x58a2('0x25')][_0x58a2('0x17')]);}_0x3eb2a8['order']=qs[_0x58a2('0x2f')](_0x293887[_0x58a2('0x25')][_0x58a2('0x2f')]);_0x3eb2a8[_0x58a2('0x30')]=qs[_0x58a2('0x28')](_[_0x58a2('0x31')](_0x293887[_0x58a2('0x25')],_0x518d6a[_0x58a2('0x28')]));if(_0x5948cc['dateStart']){if(_0x5948cc[_0x58a2('0x26')]){_0x5948cc['dateEnd']=moment(_0x5948cc[_0x58a2('0x26')])[_0x58a2('0x32')](0x1,_0x58a2('0x33'));}else{_0x5948cc[_0x58a2('0x26')]=moment(_0x5948cc[_0x58a2('0x27')])[_0x58a2('0x32')](0x1,'day');}_[_0x58a2('0x34')](_0x3eb2a8[_0x58a2('0x30')],{'createdAt':{'$gte':_0x5948cc[_0x58a2('0x27')],'$lte':_0x5948cc['dateEnd']}});}if(_0x293887[_0x58a2('0x25')][_0x58a2('0x35')]){_0x3eb2a8[_0x58a2('0x30')]=_[_0x58a2('0x34')](_0x3eb2a8[_0x58a2('0x30')],{'$or':_[_0x58a2('0x36')](_0x3eb2a8[_0x58a2('0x29')],function(_0x234c76){var _0x32d886={};_0x32d886[_0x234c76]={'$like':'%'+_0x293887[_0x58a2('0x25')][_0x58a2('0x35')]+'%'};return _0x32d886;})});}_0x3eb2a8=_[_0x58a2('0x34')]({},_0x3eb2a8,_0x293887[_0x58a2('0x37')]);var _0x59a2db={'where':_0x3eb2a8['where']};return db[_0x58a2('0x22')][_0x58a2('0x16')](_0x59a2db)[_0x58a2('0x1d')](function(_0xac05fc){_0x2af832[_0x58a2('0x16')]=_0xac05fc;if(_0x293887[_0x58a2('0x25')][_0x58a2('0x38')]){_0x3eb2a8['include']=[{'all':!![]}];}return db[_0x58a2('0x22')][_0x58a2('0x39')](_0x3eb2a8);})[_0x58a2('0x1d')](function(_0x264ddf){_0x2af832[_0x58a2('0x3a')]=_0x264ddf;return _0x2af832;})[_0x58a2('0x1d')](respondWithFilteredResult(_0x5b1230,_0x3eb2a8))[_0x58a2('0x3b')](handleError(_0x5b1230,null));};exports[_0x58a2('0x3c')]=function(_0x57a4d2,_0x53d79e){var _0xdf3d04={'raw':!![],'where':{'id':_0x57a4d2[_0x58a2('0x3d')]['id']}},_0x380832={};_0x380832[_0x58a2('0x2b')]=_[_0x58a2('0x24')](db[_0x58a2('0x22')]['rawAttributes']);_0x380832['query']=_['keys'](_0x57a4d2[_0x58a2('0x25')]);_0x380832[_0x58a2('0x28')]=_[_0x58a2('0x2a')](_0x380832['model'],_0x380832[_0x58a2('0x25')]);_0xdf3d04[_0x58a2('0x29')]=_['intersection'](_0x380832[_0x58a2('0x2b')],qs[_0x58a2('0x2c')](_0x57a4d2['query'][_0x58a2('0x2c')]));_0xdf3d04[_0x58a2('0x29')]=_0xdf3d04['attributes'][_0x58a2('0x3e')]?_0xdf3d04[_0x58a2('0x29')]:_0x380832[_0x58a2('0x2b')];if(_0x57a4d2[_0x58a2('0x25')][_0x58a2('0x38')]){_0xdf3d04[_0x58a2('0x3f')]=[{'all':!![]}];}_0xdf3d04=_[_0x58a2('0x34')]({},_0xdf3d04,_0x57a4d2[_0x58a2('0x37')]);return db[_0x58a2('0x22')]['find'](_0xdf3d04)[_0x58a2('0x1d')](handleEntityNotFound(_0x53d79e,null))[_0x58a2('0x1d')](respondWithResult(_0x53d79e,null))[_0x58a2('0x3b')](handleError(_0x53d79e,null));};exports[_0x58a2('0x1c')]=function(_0x3167f8,_0x148630){if(_0x3167f8['body']['id']){delete _0x3167f8['body']['id'];}return db['CmHopperBlack'][_0x58a2('0x40')]({'where':{'id':_0x3167f8['params']['id']}})[_0x58a2('0x1d')](handleEntityNotFound(_0x148630,null))[_0x58a2('0x1d')](saveUpdates(_0x3167f8[_0x58a2('0x41')],null))[_0x58a2('0x1d')](respondWithResult(_0x148630,null))[_0x58a2('0x3b')](handleError(_0x148630,null));};exports[_0x58a2('0x42')]=function(_0x57c4e0,_0x45efb6){return db[_0x58a2('0x22')][_0x58a2('0x40')]({'where':{'id':_0x57c4e0[_0x58a2('0x3d')]['id']}})[_0x58a2('0x1d')](handleEntityNotFound(_0x45efb6,null))[_0x58a2('0x1d')](removeEntity(_0x45efb6,null))[_0x58a2('0x3b')](handleError(_0x45efb6,null));};exports['describe']=function(_0x18e777,_0x458302){return db[_0x58a2('0x22')][_0x58a2('0x43')]()['then'](respondWithResult(_0x458302,null))[_0x58a2('0x3b')](handleError(_0x458302,null));};
\ No newline at end of file
+var _0x20df=['limit','order','sort','where','add','day','filter','merge','map','options','count','includeAll','include','findAll','rows','find','catch','body','params','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','squel','crypto','desk.js','querystring','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','set','Content-Range','apply','reject','save','update','then','error','name','send','index','CmHopperBlack','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','nolimit'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x20df,0x16e));var _0xf20d=function(_0x1b2255,_0x3de34f){_0x1b2255=_0x1b2255-0x0;var _0x33e57d=_0x20df[_0x1b2255];return _0x33e57d;};'use strict';var pdf=require(_0xf20d('0x0'));var emlformat=require(_0xf20d('0x1'));var rimraf=require(_0xf20d('0x2'));var zipdir=require(_0xf20d('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf20d('0x4'));var moment=require('moment');var BPromise=require(_0xf20d('0x5'));var Mustache=require(_0xf20d('0x6'));var util=require(_0xf20d('0x7'));var path=require('path');var sox=require(_0xf20d('0x8'));var csv=require(_0xf20d('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xf20d('0xa'));var crypto=require(_0xf20d('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xf20d('0xc'));var toCsv=require(_0xf20d('0x9'));var querystring=require(_0xf20d('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0xf20d('0xe'))(_0xf20d('0xf'));var utils=require(_0xf20d('0x10'));var config=require(_0xf20d('0x11'));var db=require(_0xf20d('0x12'))['db'];function respondWithStatusCode(_0xa14be9,_0x3ec046){_0x3ec046=_0x3ec046||0xcc;return function(_0x46a428){if(_0x46a428){return _0xa14be9[_0xf20d('0x13')](_0x3ec046);}return _0xa14be9['status'](_0x3ec046)[_0xf20d('0x14')]();};}function respondWithResult(_0x24dd67,_0x2306ce){_0x2306ce=_0x2306ce||0xc8;return function(_0x7dd2e4){if(_0x7dd2e4){return _0x24dd67[_0xf20d('0x15')](_0x2306ce)[_0xf20d('0x16')](_0x7dd2e4);}};}function respondWithFilteredResult(_0x4e6dac,_0x1338d8){return function(_0x435d04){if(_0x435d04){var _0x185d98=_0x435d04['count'],_0x3523a4=_0x1338d8[_0xf20d('0x17')],_0x1155ec=_0x1338d8[_0xf20d('0x17')]+_0x1338d8['limit'],_0x3daa85;if(_0x1155ec>=_0x185d98){_0x1155ec=_0x185d98;_0x3daa85=0xc8;}else{_0x3daa85=0xce;}_0x4e6dac[_0xf20d('0x15')](_0x3daa85);return _0x4e6dac[_0xf20d('0x18')](_0xf20d('0x19'),_0x3523a4+'-'+_0x1155ec+'/'+_0x185d98)[_0xf20d('0x16')](_0x435d04);}return null;};}function patchUpdates(_0x1d6300){return function(_0x38925f){try{jsonpatch[_0xf20d('0x1a')](_0x38925f,_0x1d6300,!![]);}catch(_0x4e2eb0){return BPromise[_0xf20d('0x1b')](_0x4e2eb0);}return _0x38925f[_0xf20d('0x1c')]();};}function saveUpdates(_0x97ef37,_0x4d3058){return function(_0x5d5359){if(_0x5d5359){return _0x5d5359[_0xf20d('0x1d')](_0x97ef37)[_0xf20d('0x1e')](function(_0x1bae2c){return _0x1bae2c;});}return null;};}function removeEntity(_0x5bded9,_0x19334c){return function(_0x5ef583){if(_0x5ef583){return _0x5ef583['destroy']()['then'](function(){_0x5bded9['status'](0xcc)[_0xf20d('0x14')]();});}};}function handleEntityNotFound(_0x43d7b9,_0x12ece7){return function(_0x20e8af){if(!_0x20e8af){_0x43d7b9[_0xf20d('0x13')](0x194);}return _0x20e8af;};}function handleError(_0x461766,_0x54c65a){_0x54c65a=_0x54c65a||0x1f4;return function(_0x5098fa){logger[_0xf20d('0x1f')](_0x5098fa['stack']);if(_0x5098fa['name']){delete _0x5098fa[_0xf20d('0x20')];}_0x461766[_0xf20d('0x15')](_0x54c65a)[_0xf20d('0x21')](_0x5098fa);};}exports[_0xf20d('0x22')]=function(_0x5250d4,_0x51f71c){var _0x30ecbf={},_0x1adf2a={},_0x4f67ee={'count':0x0,'rows':[]};var _0x3b6859=db[_0xf20d('0x23')][_0xf20d('0x24')];_0x1adf2a[_0xf20d('0x25')]=_[_0xf20d('0x26')](_0x3b6859);var _0x213fc7={'dateStart':_0x5250d4[_0xf20d('0x27')][_0xf20d('0x28')],'dateEnd':_0x5250d4[_0xf20d('0x27')][_0xf20d('0x29')]};delete _0x5250d4['query']['dateStart'];delete _0x5250d4['query'][_0xf20d('0x29')];_0x1adf2a[_0xf20d('0x27')]=_[_0xf20d('0x26')](_0x5250d4[_0xf20d('0x27')]);_0x1adf2a[_0xf20d('0x2a')]=_[_0xf20d('0x2b')](_0x1adf2a[_0xf20d('0x25')],_0x1adf2a[_0xf20d('0x27')]);_0x30ecbf[_0xf20d('0x2c')]=_[_0xf20d('0x2b')](_0x1adf2a['model'],qs[_0xf20d('0x2d')](_0x5250d4['query'][_0xf20d('0x2d')]));_0x30ecbf[_0xf20d('0x2c')]=_0x30ecbf[_0xf20d('0x2c')][_0xf20d('0x2e')]?_0x30ecbf['attributes']:_0x1adf2a[_0xf20d('0x25')];if(!_0x5250d4[_0xf20d('0x27')]['hasOwnProperty'](_0xf20d('0x2f'))){_0x30ecbf[_0xf20d('0x30')]=qs[_0xf20d('0x30')](_0x5250d4[_0xf20d('0x27')]['limit']);_0x30ecbf['offset']=qs['offset'](_0x5250d4['query']['offset']);}_0x30ecbf[_0xf20d('0x31')]=qs['sort'](_0x5250d4[_0xf20d('0x27')][_0xf20d('0x32')]);_0x30ecbf[_0xf20d('0x33')]=qs['filters'](_['pick'](_0x5250d4[_0xf20d('0x27')],_0x1adf2a[_0xf20d('0x2a')]));if(_0x213fc7['dateStart']){if(_0x213fc7[_0xf20d('0x29')]){_0x213fc7[_0xf20d('0x29')]=moment(_0x213fc7[_0xf20d('0x29')])[_0xf20d('0x34')](0x1,_0xf20d('0x35'));}else{_0x213fc7[_0xf20d('0x29')]=moment(_0x213fc7['dateStart'])[_0xf20d('0x34')](0x1,_0xf20d('0x35'));}_['merge'](_0x30ecbf[_0xf20d('0x33')],{'createdAt':{'$gte':_0x213fc7[_0xf20d('0x28')],'$lte':_0x213fc7[_0xf20d('0x29')]}});}if(_0x5250d4[_0xf20d('0x27')][_0xf20d('0x36')]){_0x30ecbf[_0xf20d('0x33')]=_[_0xf20d('0x37')](_0x30ecbf[_0xf20d('0x33')],{'$or':_[_0xf20d('0x38')](_0x30ecbf[_0xf20d('0x2c')],function(_0x3de09a){var _0x50bec6={};_0x50bec6[_0x3de09a]={'$like':'%'+_0x5250d4['query'][_0xf20d('0x36')]+'%'};return _0x50bec6;})});}_0x30ecbf=_[_0xf20d('0x37')]({},_0x30ecbf,_0x5250d4[_0xf20d('0x39')]);var _0xe3d40e={'where':_0x30ecbf['where']};return db[_0xf20d('0x23')][_0xf20d('0x3a')](_0xe3d40e)[_0xf20d('0x1e')](function(_0x475ed3){_0x4f67ee[_0xf20d('0x3a')]=_0x475ed3;if(_0x5250d4[_0xf20d('0x27')][_0xf20d('0x3b')]){_0x30ecbf[_0xf20d('0x3c')]=[{'all':!![]}];}return db[_0xf20d('0x23')][_0xf20d('0x3d')](_0x30ecbf);})[_0xf20d('0x1e')](function(_0x39877a){_0x4f67ee[_0xf20d('0x3e')]=_0x39877a;return _0x4f67ee;})['then'](respondWithFilteredResult(_0x51f71c,_0x30ecbf))['catch'](handleError(_0x51f71c,null));};exports['show']=function(_0x32ac20,_0x1bbf50){var _0x351006={'raw':!![],'where':{'id':_0x32ac20['params']['id']}},_0x5e1d45={};_0x5e1d45['model']=_[_0xf20d('0x26')](db['CmHopperBlack'][_0xf20d('0x24')]);_0x5e1d45['query']=_['keys'](_0x32ac20[_0xf20d('0x27')]);_0x5e1d45['filters']=_[_0xf20d('0x2b')](_0x5e1d45[_0xf20d('0x25')],_0x5e1d45[_0xf20d('0x27')]);_0x351006[_0xf20d('0x2c')]=_[_0xf20d('0x2b')](_0x5e1d45[_0xf20d('0x25')],qs['fields'](_0x32ac20[_0xf20d('0x27')][_0xf20d('0x2d')]));_0x351006[_0xf20d('0x2c')]=_0x351006['attributes'][_0xf20d('0x2e')]?_0x351006[_0xf20d('0x2c')]:_0x5e1d45[_0xf20d('0x25')];if(_0x32ac20[_0xf20d('0x27')]['includeAll']){_0x351006['include']=[{'all':!![]}];}_0x351006=_[_0xf20d('0x37')]({},_0x351006,_0x32ac20['options']);return db[_0xf20d('0x23')][_0xf20d('0x3f')](_0x351006)[_0xf20d('0x1e')](handleEntityNotFound(_0x1bbf50,null))[_0xf20d('0x1e')](respondWithResult(_0x1bbf50,null))[_0xf20d('0x40')](handleError(_0x1bbf50,null));};exports[_0xf20d('0x1d')]=function(_0x2c87ea,_0x5d9a49){if(_0x2c87ea[_0xf20d('0x41')]['id']){delete _0x2c87ea['body']['id'];}return db[_0xf20d('0x23')][_0xf20d('0x3f')]({'where':{'id':_0x2c87ea[_0xf20d('0x42')]['id']}})['then'](handleEntityNotFound(_0x5d9a49,null))[_0xf20d('0x1e')](saveUpdates(_0x2c87ea[_0xf20d('0x41')],null))[_0xf20d('0x1e')](respondWithResult(_0x5d9a49,null))[_0xf20d('0x40')](handleError(_0x5d9a49,null));};exports[_0xf20d('0x43')]=function(_0x20d9be,_0xcdb18b){return db[_0xf20d('0x23')][_0xf20d('0x3f')]({'where':{'id':_0x20d9be[_0xf20d('0x42')]['id']}})[_0xf20d('0x1e')](handleEntityNotFound(_0xcdb18b,null))['then'](removeEntity(_0xcdb18b,null))[_0xf20d('0x40')](handleError(_0xcdb18b,null));};exports[_0xf20d('0x44')]=function(_0x449ab4,_0x4cbb84){return db[_0xf20d('0x23')][_0xf20d('0x44')]()[_0xf20d('0x1e')](respondWithResult(_0x4cbb84,null))[_0xf20d('0x40')](handleError(_0x4cbb84,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf818=['CmHopperBlack','cm_hopper_black','lodash','../../config/logger','api','request-promise','./cmHopperBlack.attributes','exports','define'];(function(_0x576170,_0x1712ae){var _0x397c70=function(_0x2eb9de){while(--_0x2eb9de){_0x576170['push'](_0x576170['shift']());}};_0x397c70(++_0x1712ae);}(_0xf818,0x77));var _0x8f81=function(_0x29e071,_0x3cf949){_0x29e071=_0x29e071-0x0;var _0x3bc48f=_0xf818[_0x29e071];return _0x3bc48f;};'use strict';var _=require(_0x8f81('0x0'));var util=require('util');var logger=require(_0x8f81('0x1'))(_0x8f81('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x8f81('0x3'));var attributes=require(_0x8f81('0x4'));module[_0x8f81('0x5')]=function(_0x1fff99,_0x3fb119){return _0x1fff99[_0x8f81('0x6')](_0x8f81('0x7'),attributes,{'tableName':_0x8f81('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6182=['cm_hopper_black','lodash','util','../../config/logger','api','moment','./cmHopperBlack.attributes','exports','CmHopperBlack'];(function(_0x81dcac,_0x8ff7db){var _0xc7803b=function(_0x499b29){while(--_0x499b29){_0x81dcac['push'](_0x81dcac['shift']());}};_0xc7803b(++_0x8ff7db);}(_0x6182,0x145));var _0x2618=function(_0x4c2637,_0x17665){_0x4c2637=_0x4c2637-0x0;var _0x1dbfa7=_0x6182[_0x4c2637];return _0x1dbfa7;};'use strict';var _=require(_0x2618('0x0'));var util=require(_0x2618('0x1'));var logger=require(_0x2618('0x2'))(_0x2618('0x3'));var moment=require(_0x2618('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x2618('0x5'));module[_0x2618('0x6')]=function(_0x2ad608,_0x5dddb5){return _0x2ad608['define'](_0x2618('0x7'),attributes,{'tableName':_0x2618('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a24=['options','raw','where','attributes','limit','map','include','model','then','UpdateCmHopperBlack','update','body','DestroyCmHopperBlack','destroy','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','info','request\x20sent','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','stringify','error','CmHopperBlack,\x20%s,\x20%s','message','catch','GetCmHopperBlack','CmHopperBlack','findAll'];(function(_0x5adb18,_0x222326){var _0x420c98=function(_0x146b7b){while(--_0x146b7b){_0x5adb18['push'](_0x5adb18['shift']());}};_0x420c98(++_0x222326);}(_0x3a24,0x1ef));var _0x43a2=function(_0x1bd323,_0x1c16ab){_0x1bd323=_0x1bd323-0x0;var _0x13097b=_0x3a24[_0x1bd323];return _0x13097b;};'use strict';var _=require(_0x43a2('0x0'));var util=require(_0x43a2('0x1'));var moment=require(_0x43a2('0x2'));var BPromise=require(_0x43a2('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x43a2('0x4'))['db'];var utils=require(_0x43a2('0x5'));var logger=require(_0x43a2('0x6'))('rpc');var config=require(_0x43a2('0x7'));var jayson=require(_0x43a2('0x8'));var client=jayson[_0x43a2('0x9')][_0x43a2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x518378,_0x280e8e,_0x235b43){return new BPromise(function(_0x16dd7f,_0x10f07d){return client['request'](_0x518378,_0x235b43)['then'](function(_0xb3efb0){logger[_0x43a2('0xb')]('CmHopperBlack,\x20%s,\x20%s',_0x280e8e,_0x43a2('0xc'));logger[_0x43a2('0xd')](_0x43a2('0xe'),_0x280e8e,_0x43a2('0xc'),JSON[_0x43a2('0xf')](_0xb3efb0));if(_0xb3efb0['error']){if(_0xb3efb0[_0x43a2('0x10')]['code']===0x1f4){logger[_0x43a2('0x10')](_0x43a2('0x11'),_0x280e8e,_0xb3efb0[_0x43a2('0x10')]['message']);return _0x10f07d(_0xb3efb0[_0x43a2('0x10')][_0x43a2('0x12')]);}logger[_0x43a2('0x10')](_0x43a2('0x11'),_0x280e8e,_0xb3efb0[_0x43a2('0x10')][_0x43a2('0x12')]);return _0x16dd7f(_0xb3efb0[_0x43a2('0x10')]['message']);}else{logger[_0x43a2('0xb')](_0x43a2('0x11'),_0x280e8e,_0x43a2('0xc'));_0x16dd7f(_0xb3efb0['result'][_0x43a2('0x12')]);}})[_0x43a2('0x13')](function(_0x1a4b22){logger[_0x43a2('0x10')](_0x43a2('0x11'),_0x280e8e,_0x1a4b22);_0x10f07d(_0x1a4b22);});});}exports[_0x43a2('0x14')]=function(_0x2aa627){var _0x1d93fb=this;return new Promise(function(_0x46e54d,_0x54aa5e){return db[_0x43a2('0x15')][_0x43a2('0x16')]({'raw':_0x2aa627[_0x43a2('0x17')]?_0x2aa627[_0x43a2('0x17')][_0x43a2('0x18')]===undefined?!![]:![]:!![],'where':_0x2aa627['options']?_0x2aa627[_0x43a2('0x17')][_0x43a2('0x19')]||null:null,'attributes':_0x2aa627['options']?_0x2aa627[_0x43a2('0x17')][_0x43a2('0x1a')]||null:null,'limit':_0x2aa627[_0x43a2('0x17')]?_0x2aa627[_0x43a2('0x17')][_0x43a2('0x1b')]||null:null,'include':_0x2aa627[_0x43a2('0x17')]?_0x2aa627[_0x43a2('0x17')]['include']?_[_0x43a2('0x1c')](_0x2aa627[_0x43a2('0x17')][_0x43a2('0x1d')],function(_0x50979d){return{'model':db[_0x50979d[_0x43a2('0x1e')]],'as':_0x50979d['as'],'attributes':_0x50979d[_0x43a2('0x1a')],'include':_0x50979d['include']?_['map'](_0x50979d['include'],function(_0x534c9e){return{'model':db[_0x534c9e[_0x43a2('0x1e')]],'as':_0x534c9e['as'],'attributes':_0x534c9e[_0x43a2('0x1a')],'include':_0x534c9e[_0x43a2('0x1d')]?_[_0x43a2('0x1c')](_0x534c9e[_0x43a2('0x1d')],function(_0x456506){return{'model':db[_0x456506[_0x43a2('0x1e')]],'as':_0x456506['as'],'attributes':_0x456506[_0x43a2('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x43a2('0x1f')](function(_0x3d7c78){logger[_0x43a2('0xb')](_0x43a2('0x14'),_0x2aa627);logger[_0x43a2('0xd')](_0x43a2('0x14'),_0x2aa627,JSON[_0x43a2('0xf')](_0x3d7c78));_0x46e54d(_0x3d7c78);})[_0x43a2('0x13')](function(_0x6c94cb){logger[_0x43a2('0x10')](_0x43a2('0x14'),_0x6c94cb['message'],_0x2aa627);_0x54aa5e(_0x1d93fb[_0x43a2('0x10')](0x1f4,_0x6c94cb[_0x43a2('0x12')]));});});};exports[_0x43a2('0x20')]=function(_0xd195c0){var _0x5669b5=this;return new Promise(function(_0x317540,_0x53ae80){return db[_0x43a2('0x15')][_0x43a2('0x21')](_0xd195c0[_0x43a2('0x22')],{'raw':_0xd195c0['options']?_0xd195c0['options'][_0x43a2('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xd195c0[_0x43a2('0x17')]?_0xd195c0['options'][_0x43a2('0x19')]||null:null,'attributes':_0xd195c0[_0x43a2('0x17')]?_0xd195c0[_0x43a2('0x17')][_0x43a2('0x1a')]||null:null,'limit':_0xd195c0[_0x43a2('0x17')]?_0xd195c0[_0x43a2('0x17')][_0x43a2('0x1b')]||null:null})[_0x43a2('0x1f')](function(_0x4359d6){logger[_0x43a2('0xb')]('UpdateCmHopperBlack',_0xd195c0);logger[_0x43a2('0xd')](_0x43a2('0x20'),_0xd195c0,JSON[_0x43a2('0xf')](_0x4359d6));_0x317540(_0x4359d6);})['catch'](function(_0x35b744){logger[_0x43a2('0x10')](_0x43a2('0x20'),_0x35b744[_0x43a2('0x12')],_0xd195c0);_0x53ae80(_0x5669b5[_0x43a2('0x10')](0x1f4,_0x35b744[_0x43a2('0x12')]));});});};exports[_0x43a2('0x23')]=function(_0x559dc2){var _0x117e0d=this;return new Promise(function(_0x54dc04,_0x4a260b){return db[_0x43a2('0x15')][_0x43a2('0x24')]({'where':_0x559dc2['options']?_0x559dc2[_0x43a2('0x17')][_0x43a2('0x19')]||null:null})[_0x43a2('0x1f')](function(_0x1a96f9){logger[_0x43a2('0xb')](_0x43a2('0x23'),_0x559dc2);logger['debug'](_0x43a2('0x23'),_0x559dc2,JSON[_0x43a2('0xf')](_0x1a96f9));_0x54dc04(_0x1a96f9);})[_0x43a2('0x13')](function(_0x49e842){logger['error'](_0x43a2('0x23'),_0x49e842[_0x43a2('0x12')],_0x559dc2);_0x4a260b(_0x117e0d[_0x43a2('0x10')](0x1f4,_0x49e842[_0x43a2('0x12')]));});});};
\ No newline at end of file
+var _0x7dc1=['CmHopperBlack','findAll','options','raw','where','attributes','limit','include','map','model','GetCmHopperBlack','catch','UpdateCmHopperBlack','update','body','destroy','DestroyCmHopperBlack','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','jayson/promise','http','then','info','CmHopperBlack,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message'];(function(_0x26d6d9,_0x431cb8){var _0x1b4875=function(_0x41111f){while(--_0x41111f){_0x26d6d9['push'](_0x26d6d9['shift']());}};_0x1b4875(++_0x431cb8);}(_0x7dc1,0xc0));var _0x17dc=function(_0xcf3469,_0x3da7d3){_0xcf3469=_0xcf3469-0x0;var _0x26ffdb=_0x7dc1[_0xcf3469];return _0x26ffdb;};'use strict';var _=require(_0x17dc('0x0'));var util=require(_0x17dc('0x1'));var moment=require(_0x17dc('0x2'));var BPromise=require(_0x17dc('0x3'));var rs=require(_0x17dc('0x4'));var fs=require('fs');var Redis=require(_0x17dc('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x17dc('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x17dc('0x7'));var client=jayson['client'][_0x17dc('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x55cd61,_0xd703fb,_0x860d15){return new BPromise(function(_0x346be9,_0x4d10a0){return client['request'](_0x55cd61,_0x860d15)[_0x17dc('0x9')](function(_0x399902){logger[_0x17dc('0xa')](_0x17dc('0xb'),_0xd703fb,'request\x20sent');logger[_0x17dc('0xc')]('CmHopperBlack,\x20%s,\x20%s,\x20%s',_0xd703fb,_0x17dc('0xd'),JSON[_0x17dc('0xe')](_0x399902));if(_0x399902['error']){if(_0x399902[_0x17dc('0xf')][_0x17dc('0x10')]===0x1f4){logger[_0x17dc('0xf')](_0x17dc('0xb'),_0xd703fb,_0x399902[_0x17dc('0xf')][_0x17dc('0x11')]);return _0x4d10a0(_0x399902['error'][_0x17dc('0x11')]);}logger[_0x17dc('0xf')](_0x17dc('0xb'),_0xd703fb,_0x399902[_0x17dc('0xf')]['message']);return _0x346be9(_0x399902['error']['message']);}else{logger[_0x17dc('0xa')]('CmHopperBlack,\x20%s,\x20%s',_0xd703fb,_0x17dc('0xd'));_0x346be9(_0x399902['result'][_0x17dc('0x11')]);}})['catch'](function(_0x1f8573){logger[_0x17dc('0xf')](_0x17dc('0xb'),_0xd703fb,_0x1f8573);_0x4d10a0(_0x1f8573);});});}exports['GetCmHopperBlack']=function(_0x1683e1){var _0x35d42f=this;return new Promise(function(_0x53b23,_0x5dcd5d){return db[_0x17dc('0x12')][_0x17dc('0x13')]({'raw':_0x1683e1['options']?_0x1683e1[_0x17dc('0x14')][_0x17dc('0x15')]===undefined?!![]:![]:!![],'where':_0x1683e1[_0x17dc('0x14')]?_0x1683e1[_0x17dc('0x14')][_0x17dc('0x16')]||null:null,'attributes':_0x1683e1[_0x17dc('0x14')]?_0x1683e1['options'][_0x17dc('0x17')]||null:null,'limit':_0x1683e1[_0x17dc('0x14')]?_0x1683e1['options'][_0x17dc('0x18')]||null:null,'include':_0x1683e1[_0x17dc('0x14')]?_0x1683e1[_0x17dc('0x14')][_0x17dc('0x19')]?_[_0x17dc('0x1a')](_0x1683e1[_0x17dc('0x14')][_0x17dc('0x19')],function(_0x4bf11e){return{'model':db[_0x4bf11e[_0x17dc('0x1b')]],'as':_0x4bf11e['as'],'attributes':_0x4bf11e['attributes'],'include':_0x4bf11e[_0x17dc('0x19')]?_[_0x17dc('0x1a')](_0x4bf11e[_0x17dc('0x19')],function(_0x6da710){return{'model':db[_0x6da710[_0x17dc('0x1b')]],'as':_0x6da710['as'],'attributes':_0x6da710[_0x17dc('0x17')],'include':_0x6da710[_0x17dc('0x19')]?_['map'](_0x6da710[_0x17dc('0x19')],function(_0x29855f){return{'model':db[_0x29855f[_0x17dc('0x1b')]],'as':_0x29855f['as'],'attributes':_0x29855f[_0x17dc('0x17')]};}):[]};}):[]};}):[]:[]})[_0x17dc('0x9')](function(_0x349d60){logger[_0x17dc('0xa')](_0x17dc('0x1c'),_0x1683e1);logger[_0x17dc('0xc')]('GetCmHopperBlack',_0x1683e1,JSON[_0x17dc('0xe')](_0x349d60));_0x53b23(_0x349d60);})[_0x17dc('0x1d')](function(_0x438d87){logger[_0x17dc('0xf')]('GetCmHopperBlack',_0x438d87[_0x17dc('0x11')],_0x1683e1);_0x5dcd5d(_0x35d42f[_0x17dc('0xf')](0x1f4,_0x438d87[_0x17dc('0x11')]));});});};exports[_0x17dc('0x1e')]=function(_0x4a5c04){var _0x3ff984=this;return new Promise(function(_0x554fa9,_0x40ab03){return db[_0x17dc('0x12')][_0x17dc('0x1f')](_0x4a5c04[_0x17dc('0x20')],{'raw':_0x4a5c04['options']?_0x4a5c04[_0x17dc('0x14')][_0x17dc('0x15')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4a5c04['options']?_0x4a5c04[_0x17dc('0x14')][_0x17dc('0x16')]||null:null,'attributes':_0x4a5c04[_0x17dc('0x14')]?_0x4a5c04[_0x17dc('0x14')]['attributes']||null:null,'limit':_0x4a5c04[_0x17dc('0x14')]?_0x4a5c04[_0x17dc('0x14')][_0x17dc('0x18')]||null:null})[_0x17dc('0x9')](function(_0x1b4dbd){logger[_0x17dc('0xa')]('UpdateCmHopperBlack',_0x4a5c04);logger[_0x17dc('0xc')](_0x17dc('0x1e'),_0x4a5c04,JSON[_0x17dc('0xe')](_0x1b4dbd));_0x554fa9(_0x1b4dbd);})['catch'](function(_0x420e71){logger[_0x17dc('0xf')](_0x17dc('0x1e'),_0x420e71[_0x17dc('0x11')],_0x4a5c04);_0x40ab03(_0x3ff984[_0x17dc('0xf')](0x1f4,_0x420e71['message']));});});};exports['DestroyCmHopperBlack']=function(_0x4669c0){var _0x7eafff=this;return new Promise(function(_0x781392,_0x5b5471){return db['CmHopperBlack'][_0x17dc('0x21')]({'where':_0x4669c0[_0x17dc('0x14')]?_0x4669c0[_0x17dc('0x14')][_0x17dc('0x16')]||null:null})[_0x17dc('0x9')](function(_0x2dc7bb){logger[_0x17dc('0xa')](_0x17dc('0x22'),_0x4669c0);logger[_0x17dc('0xc')](_0x17dc('0x22'),_0x4669c0,JSON[_0x17dc('0xe')](_0x2dc7bb));_0x781392(_0x2dc7bb);})[_0x17dc('0x1d')](function(_0x3cf016){logger['error'](_0x17dc('0x22'),_0x3cf016[_0x17dc('0x11')],_0x4669c0);_0x5b5471(_0x7eafff['error'](0x1f4,_0x3cf016['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4c5=['/:id','show','put','update','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','isAuthenticated','index','get','/describe','describe'];(function(_0x37db36,_0x147d3e){var _0x158866=function(_0x2f2b3a){while(--_0x2f2b3a){_0x37db36['push'](_0x37db36['shift']());}};_0x158866(++_0x147d3e);}(_0xd4c5,0x1d2));var _0x5d4c=function(_0x59eeba,_0xa0583f){_0x59eeba=_0x59eeba-0x0;var _0x28d174=_0xd4c5[_0x59eeba];return _0x28d174;};'use strict';var multer=require(_0x5d4c('0x0'));var util=require(_0x5d4c('0x1'));var path=require(_0x5d4c('0x2'));var timeout=require('connect-timeout');var express=require(_0x5d4c('0x3'));var router=express[_0x5d4c('0x4')]();var auth=require(_0x5d4c('0x5'));var interaction=require(_0x5d4c('0x6'));var config=require(_0x5d4c('0x7'));var controller=require(_0x5d4c('0x8'));router['get']('/',auth[_0x5d4c('0x9')](),controller[_0x5d4c('0xa')]);router[_0x5d4c('0xb')](_0x5d4c('0xc'),auth[_0x5d4c('0x9')](),controller[_0x5d4c('0xd')]);router[_0x5d4c('0xb')](_0x5d4c('0xe'),auth[_0x5d4c('0x9')](),controller[_0x5d4c('0xf')]);router[_0x5d4c('0x10')](_0x5d4c('0xe'),auth[_0x5d4c('0x9')](),controller[_0x5d4c('0x11')]);router['delete'](_0x5d4c('0xe'),auth['isAuthenticated'](),controller[_0x5d4c('0x12')]);module[_0x5d4c('0x13')]=router;
\ No newline at end of file
+var _0x56e7=['put','/:id','delete','exports','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','get','index','/describe','isAuthenticated','show'];(function(_0x2298f0,_0x3bbf4f){var _0x39b136=function(_0xc2cd6e){while(--_0xc2cd6e){_0x2298f0['push'](_0x2298f0['shift']());}};_0x39b136(++_0x3bbf4f);}(_0x56e7,0x7b));var _0x756e=function(_0x549fc4,_0x1b991c){_0x549fc4=_0x549fc4-0x0;var _0x28cdc8=_0x56e7[_0x549fc4];return _0x28cdc8;};'use strict';var multer=require('multer');var util=require(_0x756e('0x0'));var path=require(_0x756e('0x1'));var timeout=require('connect-timeout');var express=require(_0x756e('0x2'));var router=express[_0x756e('0x3')]();var auth=require(_0x756e('0x4'));var interaction=require(_0x756e('0x5'));var config=require(_0x756e('0x6'));var controller=require(_0x756e('0x7'));router[_0x756e('0x8')]('/',auth['isAuthenticated'](),controller[_0x756e('0x9')]);router[_0x756e('0x8')](_0x756e('0xa'),auth[_0x756e('0xb')](),controller['describe']);router[_0x756e('0x8')]('/:id',auth[_0x756e('0xb')](),controller[_0x756e('0xc')]);router[_0x756e('0xd')](_0x756e('0xe'),auth['isAuthenticated'](),controller['update']);router[_0x756e('0xf')](_0x756e('0xe'),auth[_0x756e('0xb')](),controller['destroy']);module[_0x756e('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c60=['endtime','setDataValue','diff','BOOLEAN','sequelize','moment','exports','INTEGER','DATE','STRING','getDataValue'];(function(_0x4288ce,_0xe730f2){var _0x4c6ab7=function(_0x24115e){while(--_0x24115e){_0x4288ce['push'](_0x4288ce['shift']());}};_0x4c6ab7(++_0xe730f2);}(_0x8c60,0xd5));var _0x08c6=function(_0x14cb5,_0x5949d6){_0x14cb5=_0x14cb5-0x0;var _0x3e676f=_0x8c60[_0x14cb5];return _0x3e676f;};'use strict';var Sequelize=require(_0x08c6('0x0'));var moment=require(_0x08c6('0x1'));module[_0x08c6('0x2')]={'state':{'type':Sequelize[_0x08c6('0x3')](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0x08c6('0x4')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x08c6('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x08c6('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize[_0x08c6('0x5')]},'originatecalleridname':{'type':Sequelize[_0x08c6('0x5')]},'calleridnum':{'type':Sequelize[_0x08c6('0x5')]},'calleridname':{'type':Sequelize[_0x08c6('0x5')]},'starttime':{'type':Sequelize[_0x08c6('0x4')]},'responsetime':{'type':Sequelize[_0x08c6('0x4')]},'answertime':{'type':Sequelize[_0x08c6('0x4')]},'droptime':{'type':Sequelize[_0x08c6('0x4')]},'endtime':{'type':Sequelize[_0x08c6('0x4')]},'ringtime':{'type':Sequelize[_0x08c6('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x08c6('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'dropreason':{'type':Sequelize['STRING']},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0x08c6('0x5')]},'membername':{'type':Sequelize[_0x08c6('0x5')]},'reason':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0x08c6('0x5')]},'dispositionat':{'type':Sequelize[_0x08c6('0x4')],'set':function(_0x3efb33){var _0x55961f=this[_0x08c6('0x6')](_0x08c6('0x7'));if(_0x55961f&&_0x3efb33){this[_0x08c6('0x8')]('followuptime',moment(_0x3efb33)[_0x08c6('0x9')](moment(_0x55961f),'seconds'));}return this['setDataValue']('dispositionat',_0x3efb33);}},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0x08c6('0xa')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x08c6('0xa')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x08c6('0xa')],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0x08c6('0x4')]},'callback':{'type':Sequelize[_0x08c6('0xa')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x08c6('0x5')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x08c6('0x4')]},'deleted':{'type':Sequelize[_0x08c6('0x5')],'defaultValue':null},'deletedat':{'type':Sequelize['DATE']},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x08c6('0x4')]}};
\ No newline at end of file
+var _0xa472=['sequelize','moment','exports','INTEGER','STRING','DATE','getDataValue','endtime','setDataValue','followuptime','diff','BOOLEAN'];(function(_0x40e5e7,_0x5de9fb){var _0x305d7b=function(_0x1f10cd){while(--_0x1f10cd){_0x40e5e7['push'](_0x40e5e7['shift']());}};_0x305d7b(++_0x5de9fb);}(_0xa472,0x1e0));var _0x2a47=function(_0x3a4a48,_0x55e267){_0x3a4a48=_0x3a4a48-0x0;var _0x409848=_0xa472[_0x3a4a48];return _0x409848;};'use strict';var Sequelize=require(_0x2a47('0x0'));var moment=require(_0x2a47('0x1'));module[_0x2a47('0x2')]={'state':{'type':Sequelize[_0x2a47('0x3')](0x2)},'statedesc':{'type':Sequelize[_0x2a47('0x4')]},'scheduledat':{'type':Sequelize[_0x2a47('0x5')]},'countbusyretry':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x2a47('0x4')]},'originatecalleridnum':{'type':Sequelize[_0x2a47('0x4')]},'originatecalleridname':{'type':Sequelize[_0x2a47('0x4')]},'calleridnum':{'type':Sequelize[_0x2a47('0x4')]},'calleridname':{'type':Sequelize[_0x2a47('0x4')]},'starttime':{'type':Sequelize[_0x2a47('0x5')]},'responsetime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize[_0x2a47('0x5')]},'endtime':{'type':Sequelize[_0x2a47('0x5')]},'ringtime':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x2a47('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x2a47('0x4')]},'campaign':{'type':Sequelize[_0x2a47('0x4')]},'campaigntype':{'type':Sequelize[_0x2a47('0x4')]},'membername':{'type':Sequelize[_0x2a47('0x4')]},'reason':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize['STRING']},'dispositionat':{'type':Sequelize[_0x2a47('0x5')],'set':function(_0x3b0138){var _0x2fbbb0=this[_0x2a47('0x6')](_0x2a47('0x7'));if(_0x2fbbb0&&_0x3b0138){this[_0x2a47('0x8')](_0x2a47('0x9'),moment(_0x3b0138)[_0x2a47('0xa')](moment(_0x2fbbb0),'seconds'));}return this[_0x2a47('0x8')]('dispositionat',_0x3b0138);}},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0x2a47('0xb')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x2a47('0xb')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x2a47('0xb')],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0x2a47('0x5')]},'callback':{'type':Sequelize[_0x2a47('0xb')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x2a47('0x4')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'deleted':{'type':Sequelize[_0x2a47('0x4')],'defaultValue':null},'deletedat':{'type':Sequelize[_0x2a47('0x5')]},'recallme':{'type':Sequelize[_0x2a47('0xb')],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x2a47('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6045=['../../config/utils','../../config/environment','../../mysqldb','end','status','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','CmHopperFinal','rawAttributes','model','keys','query','dateEnd','dateStart','filters','fields','attributes','hasOwnProperty','nolimit','sort','day','add','where','filter','merge','map','count','includeAll','findAll','rows','show','intersection','include','options','find','catch','describe','body','uniqueid','params','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','`state`\x20=\x203,\x201,\x20null','busyContacts','literal','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2022,\x201,\x20null','countContactsIvrCampaignHopperFinal','noAnswerContacts','congestionContacts','dropContacts','abandonedContacts','reCallContacts','moveContactsQueueCampaignHopperFinal','VoiceQueue','cm_hopper','fromQuery','scheduledAt','ContactId','ListId','createdAt','updatedAt','select','field','ANY_VALUE(calleridnum)','phone','VoiceQueueId','NOW()','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','Campaign','insert','into','CampaignId','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','state\x20=\x20?','calleridnum\x20NOT\x20IN\x20(?)','checkContactHopper','CmHopper','findOne','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','squel','jsforce','desk.js','querystring','papaparse','../../config/logger','api'];(function(_0x4dd6be,_0x4395dd){var _0x51b571=function(_0x47572d){while(--_0x47572d){_0x4dd6be['push'](_0x4dd6be['shift']());}};_0x51b571(++_0x4395dd);}(_0x6045,0xe5));var _0x5604=function(_0x36ab7c,_0x4d209f){_0x36ab7c=_0x36ab7c-0x0;var _0x5db523=_0x6045[_0x36ab7c];return _0x5db523;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5604('0x0'));var rimraf=require(_0x5604('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5604('0x2'));var rp=require(_0x5604('0x3'));var moment=require(_0x5604('0x4'));var BPromise=require(_0x5604('0x5'));var Mustache=require(_0x5604('0x6'));var util=require(_0x5604('0x7'));var path=require(_0x5604('0x8'));var sox=require('sox');var csv=require(_0x5604('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x5604('0xa'));var crypto=require('crypto');var jsforce=require(_0x5604('0xb'));var deskjs=require(_0x5604('0xc'));var toCsv=require('to-csv');var querystring=require(_0x5604('0xd'));var Papa=require(_0x5604('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x5604('0xf'))(_0x5604('0x10'));var utils=require(_0x5604('0x11'));var config=require(_0x5604('0x12'));var db=require(_0x5604('0x13'))['db'];function respondWithStatusCode(_0x142109,_0x2cb69e){_0x2cb69e=_0x2cb69e||0xcc;return function(_0xc94a5b){if(_0xc94a5b){return _0x142109['sendStatus'](_0x2cb69e);}return _0x142109['status'](_0x2cb69e)[_0x5604('0x14')]();};}function respondWithResult(_0x27ab3d,_0x498835){_0x498835=_0x498835||0xc8;return function(_0x502cc4){if(_0x502cc4){return _0x27ab3d[_0x5604('0x15')](_0x498835)[_0x5604('0x16')](_0x502cc4);}};}function respondWithFilteredResult(_0x3378fa,_0x23454e){return function(_0x20df12){if(_0x20df12){var _0x475f3c=_0x20df12['count'],_0x4fce27=_0x23454e['offset'],_0x35530f=_0x23454e[_0x5604('0x17')]+_0x23454e[_0x5604('0x18')],_0x13c917;if(_0x35530f>=_0x475f3c){_0x35530f=_0x475f3c;_0x13c917=0xc8;}else{_0x13c917=0xce;}_0x3378fa['status'](_0x13c917);return _0x3378fa[_0x5604('0x19')](_0x5604('0x1a'),_0x4fce27+'-'+_0x35530f+'/'+_0x475f3c)['json'](_0x20df12);}return null;};}function patchUpdates(_0x1e4a95){return function(_0x28e2c0){try{jsonpatch[_0x5604('0x1b')](_0x28e2c0,_0x1e4a95,!![]);}catch(_0x47011f){return BPromise[_0x5604('0x1c')](_0x47011f);}return _0x28e2c0[_0x5604('0x1d')]();};}function saveUpdates(_0xc0a02a,_0x6d7cf2){return function(_0x5b5077){if(_0x5b5077){return _0x5b5077[_0x5604('0x1e')](_0xc0a02a)[_0x5604('0x1f')](function(_0x2bc467){return _0x2bc467;});}return null;};}function removeEntity(_0x322d3c,_0x1f9254){return function(_0x388f3a){if(_0x388f3a){return _0x388f3a[_0x5604('0x20')]()['then'](function(){_0x322d3c['status'](0xcc)[_0x5604('0x14')]();});}};}function handleEntityNotFound(_0x4ad64b,_0x4a5e10){return function(_0x24a870){if(!_0x24a870){_0x4ad64b['sendStatus'](0x194);}return _0x24a870;};}function handleError(_0x3f2981,_0x2ebd3a){_0x2ebd3a=_0x2ebd3a||0x1f4;return function(_0x313cca){logger[_0x5604('0x21')](_0x313cca[_0x5604('0x22')]);if(_0x313cca[_0x5604('0x23')]){delete _0x313cca[_0x5604('0x23')];}_0x3f2981[_0x5604('0x15')](_0x2ebd3a)[_0x5604('0x24')](_0x313cca);};}exports[_0x5604('0x25')]=function(_0x51f142,_0x13cec8){var _0x40aff1={},_0x4196f3={},_0x25ee47={'count':0x0,'rows':[]};var _0x2f7a02=db[_0x5604('0x26')][_0x5604('0x27')];_0x4196f3[_0x5604('0x28')]=_[_0x5604('0x29')](_0x2f7a02);var _0x3c32ef={'dateStart':_0x51f142[_0x5604('0x2a')]['dateStart'],'dateEnd':_0x51f142[_0x5604('0x2a')][_0x5604('0x2b')]};delete _0x51f142[_0x5604('0x2a')][_0x5604('0x2c')];delete _0x51f142[_0x5604('0x2a')][_0x5604('0x2b')];_0x4196f3['query']=_[_0x5604('0x29')](_0x51f142[_0x5604('0x2a')]);_0x4196f3[_0x5604('0x2d')]=_['intersection'](_0x4196f3[_0x5604('0x28')],_0x4196f3[_0x5604('0x2a')]);_0x40aff1['attributes']=_['intersection'](_0x4196f3[_0x5604('0x28')],qs[_0x5604('0x2e')](_0x51f142[_0x5604('0x2a')]['fields']));_0x40aff1[_0x5604('0x2f')]=_0x40aff1[_0x5604('0x2f')]['length']?_0x40aff1[_0x5604('0x2f')]:_0x4196f3[_0x5604('0x28')];if(!_0x51f142[_0x5604('0x2a')][_0x5604('0x30')](_0x5604('0x31'))){_0x40aff1[_0x5604('0x18')]=qs[_0x5604('0x18')](_0x51f142[_0x5604('0x2a')][_0x5604('0x18')]);_0x40aff1['offset']=qs[_0x5604('0x17')](_0x51f142[_0x5604('0x2a')][_0x5604('0x17')]);}_0x40aff1['order']=qs[_0x5604('0x32')](_0x51f142[_0x5604('0x2a')][_0x5604('0x32')]);_0x40aff1['where']=qs[_0x5604('0x2d')](_['pick'](_0x51f142[_0x5604('0x2a')],_0x4196f3[_0x5604('0x2d')]));if(_0x3c32ef[_0x5604('0x2c')]){if(_0x3c32ef[_0x5604('0x2b')]){_0x3c32ef[_0x5604('0x2b')]=moment(_0x3c32ef[_0x5604('0x2b')])['add'](0x1,_0x5604('0x33'));}else{_0x3c32ef['dateEnd']=moment(_0x3c32ef[_0x5604('0x2c')])[_0x5604('0x34')](0x1,'day');}_['merge'](_0x40aff1[_0x5604('0x35')],{'createdAt':{'$gte':_0x3c32ef[_0x5604('0x2c')],'$lte':_0x3c32ef[_0x5604('0x2b')]}});}if(_0x51f142[_0x5604('0x2a')][_0x5604('0x36')]){_0x40aff1[_0x5604('0x35')]=_[_0x5604('0x37')](_0x40aff1[_0x5604('0x35')],{'$or':_[_0x5604('0x38')](_0x40aff1[_0x5604('0x2f')],function(_0x4961c9){var _0x21cdc9={};_0x21cdc9[_0x4961c9]={'$like':'%'+_0x51f142[_0x5604('0x2a')]['filter']+'%'};return _0x21cdc9;})});}_0x40aff1=_[_0x5604('0x37')]({},_0x40aff1,_0x51f142['options']);var _0x235052={'where':_0x40aff1[_0x5604('0x35')]};return db['CmHopperFinal'][_0x5604('0x39')](_0x235052)[_0x5604('0x1f')](function(_0x27a1a5){_0x25ee47['count']=_0x27a1a5;if(_0x51f142[_0x5604('0x2a')][_0x5604('0x3a')]){_0x40aff1['include']=[{'all':!![]}];}return db[_0x5604('0x26')][_0x5604('0x3b')](_0x40aff1);})['then'](function(_0x436e88){_0x25ee47[_0x5604('0x3c')]=_0x436e88;return _0x25ee47;})[_0x5604('0x1f')](respondWithFilteredResult(_0x13cec8,_0x40aff1))['catch'](handleError(_0x13cec8,null));};exports[_0x5604('0x3d')]=function(_0x4153f1,_0x39ec1d){var _0x178d09={'raw':!![],'where':{'id':_0x4153f1['params']['id']}},_0x30c36c={};_0x30c36c[_0x5604('0x28')]=_[_0x5604('0x29')](db[_0x5604('0x26')][_0x5604('0x27')]);_0x30c36c['query']=_[_0x5604('0x29')](_0x4153f1[_0x5604('0x2a')]);_0x30c36c[_0x5604('0x2d')]=_[_0x5604('0x3e')](_0x30c36c[_0x5604('0x28')],_0x30c36c['query']);_0x178d09[_0x5604('0x2f')]=_['intersection'](_0x30c36c[_0x5604('0x28')],qs['fields'](_0x4153f1[_0x5604('0x2a')]['fields']));_0x178d09[_0x5604('0x2f')]=_0x178d09[_0x5604('0x2f')]['length']?_0x178d09[_0x5604('0x2f')]:_0x30c36c[_0x5604('0x28')];if(_0x4153f1['query'][_0x5604('0x3a')]){_0x178d09[_0x5604('0x3f')]=[{'all':!![]}];}_0x178d09=_[_0x5604('0x37')]({},_0x178d09,_0x4153f1[_0x5604('0x40')]);return db[_0x5604('0x26')][_0x5604('0x41')](_0x178d09)[_0x5604('0x1f')](handleEntityNotFound(_0x39ec1d,null))['then'](respondWithResult(_0x39ec1d,null))[_0x5604('0x42')](handleError(_0x39ec1d,null));};exports['describe']=function(_0x38ef13,_0x8c633){return db[_0x5604('0x26')][_0x5604('0x43')]()[_0x5604('0x1f')](respondWithResult(_0x8c633,null))[_0x5604('0x42')](handleError(_0x8c633,null));};exports[_0x5604('0x1e')]=function(_0x16170b,_0x6b6bd4){if(_0x16170b[_0x5604('0x44')][_0x5604('0x45')]){delete _0x16170b[_0x5604('0x44')]['uniqueid'];}return db[_0x5604('0x26')]['find']({'where':{'uniqueid':_0x16170b['params']['id']}})['then'](handleEntityNotFound(_0x6b6bd4,null))['then'](saveUpdates(_0x16170b[_0x5604('0x44')],null))[_0x5604('0x1f')](respondWithResult(_0x6b6bd4,null))[_0x5604('0x42')](handleError(_0x6b6bd4,null));};exports['countContactsQueueCampaignHopperFinal']=function(_0x2a497f,_0x489be4,_0xeef8e6){return db[_0x5604('0x26')][_0x5604('0x3b')]({'raw':![],'where':{'VoiceQueueId':_0x2a497f[_0x5604('0x46')]['id']},'attributes':[[db[_0x5604('0x47')]['fn'](_0x5604('0x48'),db[_0x5604('0x47')]['fn']('IF',db['sequelize']['literal'](_0x5604('0x49')))),'noSuchContacts'],[db[_0x5604('0x47')]['fn'](_0x5604('0x48'),db['sequelize']['fn']('IF',db[_0x5604('0x47')]['literal'](_0x5604('0x4a')))),'noAnswerContacts'],[db[_0x5604('0x47')]['fn'](_0x5604('0x48'),db[_0x5604('0x47')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x205,\x201,\x20null'))),_0x5604('0x4b')],[db[_0x5604('0x47')]['fn'](_0x5604('0x48'),db[_0x5604('0x47')]['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')]('`state`\x20=\x208,\x201,\x20null'))),'congestionContacts'],[db[_0x5604('0x47')]['fn'](_0x5604('0x48'),db[_0x5604('0x47')]['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')](_0x5604('0x4d')))),'dropContacts'],[db['sequelize']['fn'](_0x5604('0x48'),db[_0x5604('0x47')]['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'abandonedContacts'],[db[_0x5604('0x47')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')](_0x5604('0x4e')))),'reCallContacts']]})[_0x5604('0x1f')](handleEntityNotFound(_0x489be4,null))[_0x5604('0x1f')](respondWithResult(_0x489be4,null))[_0x5604('0x42')](handleError(_0x489be4,null));};exports[_0x5604('0x4f')]=function(_0x305b8d,_0x5dac12,_0xa2b95b){return db[_0x5604('0x26')][_0x5604('0x3b')]({'raw':![],'where':{'CampaignId':_0x305b8d['params']['id']},'attributes':[[db[_0x5604('0x47')]['fn']('COUNT',db[_0x5604('0x47')]['fn']('IF',db[_0x5604('0x47')]['literal'](_0x5604('0x49')))),'noSuchContacts'],[db['sequelize']['fn'](_0x5604('0x48'),db['sequelize']['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')]('`state`\x20=\x203,\x201,\x20null'))),_0x5604('0x50')],[db[_0x5604('0x47')]['fn'](_0x5604('0x48'),db['sequelize']['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')]('`state`\x20=\x205,\x201,\x20null'))),_0x5604('0x4b')],[db[_0x5604('0x47')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')]('`state`\x20=\x208,\x201,\x20null'))),_0x5604('0x51')],[db['sequelize']['fn'](_0x5604('0x48'),db['sequelize']['fn']('IF',db[_0x5604('0x47')]['literal'](_0x5604('0x4d')))),_0x5604('0x52')],[db[_0x5604('0x47')]['fn']('COUNT',db[_0x5604('0x47')]['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')]('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x5604('0x53')],[db[_0x5604('0x47')]['fn']('COUNT',db[_0x5604('0x47')]['fn']('IF',db[_0x5604('0x47')][_0x5604('0x4c')](_0x5604('0x4e')))),_0x5604('0x54')]]})[_0x5604('0x1f')](handleEntityNotFound(_0x5dac12,null))[_0x5604('0x1f')](respondWithResult(_0x5dac12,null))[_0x5604('0x42')](handleError(_0x5dac12,null));};exports[_0x5604('0x55')]=function(_0x2bc68a,_0x18002e,_0x1bf7bd){return db[_0x5604('0x56')][_0x5604('0x41')]({'where':{'id':_0x2bc68a['params']['id']}})[_0x5604('0x1f')](handleEntityNotFound(_0x18002e,null))[_0x5604('0x1f')](function(_0x29fc5f){var _0x55c6ed;if(_0x29fc5f){_0x55c6ed=squel['insert']()['into'](_0x5604('0x57'))[_0x5604('0x58')](['phone',_0x5604('0x59'),_0x5604('0x5a'),_0x5604('0x5b'),'VoiceQueueId',_0x5604('0x5c'),_0x5604('0x5d')],squel[_0x5604('0x5e')]()[_0x5604('0x5f')](_0x5604('0x60'),_0x5604('0x61'))[_0x5604('0x5f')]('NOW()',_0x5604('0x59'))['field']('ANY_VALUE(ContactId)','ContactId')['field']('ANY_VALUE(ListId)','ListId')[_0x5604('0x5f')]('ANY_VALUE(VoiceQueueId)',_0x5604('0x62'))[_0x5604('0x5f')](_0x5604('0x63'),_0x5604('0x5c'))[_0x5604('0x5f')]('NOW()',_0x5604('0x5d'))[_0x5604('0x64')](_0x5604('0x65'))[_0x5604('0x35')](_0x5604('0x66'),_0x2bc68a['params']['id'][_0x5604('0x67')]())[_0x5604('0x35')]('state\x20=\x20?',_0x2bc68a[_0x5604('0x44')][_0x5604('0x68')][_0x5604('0x67')]())[_0x5604('0x35')](_0x5604('0x69'))['where']('calleridnum\x20NOT\x20IN\x20(?)',squel['select']()[_0x5604('0x5f')](_0x5604('0x61'))[_0x5604('0x64')](_0x5604('0x57'))[_0x5604('0x35')](_0x5604('0x66'),_0x2bc68a['params']['id']['toString']()))[_0x5604('0x35')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x5604('0x5e')]()['field'](_0x5604('0x6a'))['from']('cm_hopper_final')['where'](_0x5604('0x66'),_0x2bc68a[_0x5604('0x46')]['id']['toString']())[_0x5604('0x35')](_0x5604('0x6b')))[_0x5604('0x6c')](_0x5604('0x5a')))[_0x5604('0x67')]();return db[_0x5604('0x47')]['query'](_0x55c6ed);}return[];})[_0x5604('0x1f')](respondWithResult(_0x18002e,null))['catch'](handleError(_0x18002e,null));};exports[_0x5604('0x6d')]=function(_0x53ea5b,_0x40280d,_0xd15db){return db[_0x5604('0x6e')][_0x5604('0x41')]({'where':{'id':_0x53ea5b[_0x5604('0x46')]['id']}})[_0x5604('0x1f')](handleEntityNotFound(_0x40280d,null))[_0x5604('0x1f')](function(_0x3f3a26){var _0x3a8e45;if(_0x3f3a26){_0x3a8e45=squel[_0x5604('0x6f')]()[_0x5604('0x70')]('cm_hopper')[_0x5604('0x58')]([_0x5604('0x61'),_0x5604('0x59'),'ContactId','ListId',_0x5604('0x71'),_0x5604('0x5c'),_0x5604('0x5d')],squel[_0x5604('0x5e')]()['field'](_0x5604('0x60'),_0x5604('0x61'))[_0x5604('0x5f')](_0x5604('0x63'),_0x5604('0x59'))[_0x5604('0x5f')](_0x5604('0x72'),_0x5604('0x5a'))[_0x5604('0x5f')](_0x5604('0x73'),_0x5604('0x5b'))['field'](_0x5604('0x74'),_0x5604('0x71'))[_0x5604('0x5f')](_0x5604('0x63'),_0x5604('0x5c'))[_0x5604('0x5f')](_0x5604('0x63'),_0x5604('0x5d'))[_0x5604('0x64')](_0x5604('0x65'))['where'](_0x5604('0x75'),_0x53ea5b[_0x5604('0x46')]['id'][_0x5604('0x67')]())['where'](_0x5604('0x76'),_0x53ea5b[_0x5604('0x44')]['state'][_0x5604('0x67')]())[_0x5604('0x35')]('calleridnum\x20IS\x20NOT\x20NULL')[_0x5604('0x35')](_0x5604('0x77'),squel[_0x5604('0x5e')]()[_0x5604('0x5f')](_0x5604('0x61'))[_0x5604('0x64')](_0x5604('0x57'))['where'](_0x5604('0x75'),_0x53ea5b[_0x5604('0x46')]['id'][_0x5604('0x67')]()))['where'](_0x5604('0x77'),squel['select']()[_0x5604('0x5f')](_0x5604('0x6a'))['from']('cm_hopper_final')['where'](_0x5604('0x75'),_0x53ea5b['params']['id'][_0x5604('0x67')]())[_0x5604('0x35')](_0x5604('0x6b')))[_0x5604('0x6c')](_0x5604('0x5a')))[_0x5604('0x67')]();return db[_0x5604('0x47')][_0x5604('0x2a')](_0x3a8e45);}return[];})[_0x5604('0x1f')](respondWithResult(_0x40280d,null))[_0x5604('0x42')](handleError(_0x40280d,null));};exports[_0x5604('0x78')]=function(_0x4ad64f,_0x2a08a9,_0x96bde3){return db[_0x5604('0x79')][_0x5604('0x7a')]({'where':{'VoiceQueueId':_0x4ad64f[_0x5604('0x44')][_0x5604('0x62')],'CampaignId':_0x4ad64f[_0x5604('0x44')][_0x5604('0x71')],'ContactId':_0x4ad64f[_0x5604('0x44')][_0x5604('0x5a')]}})['then'](handleEntityNotFound(_0x2a08a9,null))[_0x5604('0x1f')](function(_0x3434cc){if(_0x3434cc){return _0x3434cc;}return null;})[_0x5604('0x1f')](respondWithResult(_0x2a08a9,null))[_0x5604('0x42')](handleError(_0x2a08a9,null));};
\ No newline at end of file
+var _0x8dd1=['eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/parsers/qs','../../config/logger','api','status','end','count','offset','Content-Range','json','apply','save','then','destroy','error','stack','name','index','CmHopperFinal','rawAttributes','keys','query','dateEnd','dateStart','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','options','includeAll','findAll','rows','catch','show','params','length','find','describe','update','body','uniqueid','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','`state`\x20=\x2022,\x201,\x20null','abandonedContacts','reCallContacts','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','cm_hopper','phone','scheduledAt','ContactId','ListId','VoiceQueueId','createdAt','updatedAt','select','field','ANY_VALUE(calleridnum)','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(VoiceQueueId)','from','cm_hopper_final','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','VoiceQueueId\x20=\x20?','state\x20=\x204','fromQuery','CampaignId','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','group','checkContactHopper','CmHopper','findOne','html-pdf'];(function(_0x57d0db,_0x11e543){var _0x4bdf6b=function(_0x24d8d1){while(--_0x24d8d1){_0x57d0db['push'](_0x57d0db['shift']());}};_0x4bdf6b(++_0x11e543);}(_0x8dd1,0xf1));var _0x18dd=function(_0x39afbf,_0x2a4f57){_0x39afbf=_0x39afbf-0x0;var _0x489130=_0x8dd1[_0x39afbf];return _0x489130;};'use strict';var pdf=require(_0x18dd('0x0'));var emlformat=require(_0x18dd('0x1'));var rimraf=require(_0x18dd('0x2'));var zipdir=require(_0x18dd('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x18dd('0x4'));var moment=require('moment');var BPromise=require(_0x18dd('0x5'));var Mustache=require('mustache');var util=require(_0x18dd('0x6'));var path=require(_0x18dd('0x7'));var sox=require(_0x18dd('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x18dd('0x9'));var squel=require(_0x18dd('0xa'));var crypto=require(_0x18dd('0xb'));var jsforce=require(_0x18dd('0xc'));var deskjs=require(_0x18dd('0xd'));var toCsv=require(_0x18dd('0xe'));var querystring=require('querystring');var Papa=require(_0x18dd('0xf'));var Redis=require('ioredis');var qs=require(_0x18dd('0x10'));var logger=require(_0x18dd('0x11'))(_0x18dd('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x58a03d,_0xbc1e36){_0xbc1e36=_0xbc1e36||0xcc;return function(_0x4269bd){if(_0x4269bd){return _0x58a03d['sendStatus'](_0xbc1e36);}return _0x58a03d[_0x18dd('0x13')](_0xbc1e36)[_0x18dd('0x14')]();};}function respondWithResult(_0x359c6f,_0x26375e){_0x26375e=_0x26375e||0xc8;return function(_0x2b2780){if(_0x2b2780){return _0x359c6f[_0x18dd('0x13')](_0x26375e)['json'](_0x2b2780);}};}function respondWithFilteredResult(_0x5cb631,_0x1a34b7){return function(_0x4ad05b){if(_0x4ad05b){var _0x57c8b4=_0x4ad05b[_0x18dd('0x15')],_0x42749d=_0x1a34b7[_0x18dd('0x16')],_0x1eb57c=_0x1a34b7[_0x18dd('0x16')]+_0x1a34b7['limit'],_0x17019f;if(_0x1eb57c>=_0x57c8b4){_0x1eb57c=_0x57c8b4;_0x17019f=0xc8;}else{_0x17019f=0xce;}_0x5cb631[_0x18dd('0x13')](_0x17019f);return _0x5cb631['set'](_0x18dd('0x17'),_0x42749d+'-'+_0x1eb57c+'/'+_0x57c8b4)[_0x18dd('0x18')](_0x4ad05b);}return null;};}function patchUpdates(_0x501184){return function(_0xf035b6){try{jsonpatch[_0x18dd('0x19')](_0xf035b6,_0x501184,!![]);}catch(_0x1aeef7){return BPromise['reject'](_0x1aeef7);}return _0xf035b6[_0x18dd('0x1a')]();};}function saveUpdates(_0x3f0e13,_0x158954){return function(_0x2f6745){if(_0x2f6745){return _0x2f6745['update'](_0x3f0e13)[_0x18dd('0x1b')](function(_0x3eac4f){return _0x3eac4f;});}return null;};}function removeEntity(_0x5e4947,_0x52b35e){return function(_0x4506dd){if(_0x4506dd){return _0x4506dd[_0x18dd('0x1c')]()['then'](function(){_0x5e4947[_0x18dd('0x13')](0xcc)[_0x18dd('0x14')]();});}};}function handleEntityNotFound(_0x3a96c3,_0x3ea6c9){return function(_0x23622f){if(!_0x23622f){_0x3a96c3['sendStatus'](0x194);}return _0x23622f;};}function handleError(_0x53f797,_0x1b5913){_0x1b5913=_0x1b5913||0x1f4;return function(_0x1f2d97){logger[_0x18dd('0x1d')](_0x1f2d97[_0x18dd('0x1e')]);if(_0x1f2d97[_0x18dd('0x1f')]){delete _0x1f2d97['name'];}_0x53f797[_0x18dd('0x13')](_0x1b5913)['send'](_0x1f2d97);};}exports[_0x18dd('0x20')]=function(_0x24f333,_0x3756c2){var _0x1de095={},_0x347e21={},_0x3c603e={'count':0x0,'rows':[]};var _0x1b8736=db[_0x18dd('0x21')][_0x18dd('0x22')];_0x347e21['model']=_[_0x18dd('0x23')](_0x1b8736);var _0x171ac5={'dateStart':_0x24f333[_0x18dd('0x24')]['dateStart'],'dateEnd':_0x24f333[_0x18dd('0x24')][_0x18dd('0x25')]};delete _0x24f333[_0x18dd('0x24')][_0x18dd('0x26')];delete _0x24f333[_0x18dd('0x24')][_0x18dd('0x25')];_0x347e21[_0x18dd('0x24')]=_[_0x18dd('0x23')](_0x24f333[_0x18dd('0x24')]);_0x347e21['filters']=_[_0x18dd('0x27')](_0x347e21[_0x18dd('0x28')],_0x347e21['query']);_0x1de095[_0x18dd('0x29')]=_[_0x18dd('0x27')](_0x347e21[_0x18dd('0x28')],qs[_0x18dd('0x2a')](_0x24f333[_0x18dd('0x24')]['fields']));_0x1de095[_0x18dd('0x29')]=_0x1de095[_0x18dd('0x29')]['length']?_0x1de095[_0x18dd('0x29')]:_0x347e21[_0x18dd('0x28')];if(!_0x24f333[_0x18dd('0x24')][_0x18dd('0x2b')](_0x18dd('0x2c'))){_0x1de095['limit']=qs['limit'](_0x24f333[_0x18dd('0x24')]['limit']);_0x1de095[_0x18dd('0x16')]=qs[_0x18dd('0x16')](_0x24f333[_0x18dd('0x24')]['offset']);}_0x1de095[_0x18dd('0x2d')]=qs['sort'](_0x24f333[_0x18dd('0x24')][_0x18dd('0x2e')]);_0x1de095[_0x18dd('0x2f')]=qs[_0x18dd('0x30')](_[_0x18dd('0x31')](_0x24f333[_0x18dd('0x24')],_0x347e21[_0x18dd('0x30')]));if(_0x171ac5[_0x18dd('0x26')]){if(_0x171ac5[_0x18dd('0x25')]){_0x171ac5[_0x18dd('0x25')]=moment(_0x171ac5[_0x18dd('0x25')])[_0x18dd('0x32')](0x1,_0x18dd('0x33'));}else{_0x171ac5[_0x18dd('0x25')]=moment(_0x171ac5[_0x18dd('0x26')])[_0x18dd('0x32')](0x1,_0x18dd('0x33'));}_[_0x18dd('0x34')](_0x1de095[_0x18dd('0x2f')],{'createdAt':{'$gte':_0x171ac5['dateStart'],'$lte':_0x171ac5['dateEnd']}});}if(_0x24f333['query'][_0x18dd('0x35')]){_0x1de095[_0x18dd('0x2f')]=_[_0x18dd('0x34')](_0x1de095[_0x18dd('0x2f')],{'$or':_[_0x18dd('0x36')](_0x1de095[_0x18dd('0x29')],function(_0xf1f399){var _0x2be2b2={};_0x2be2b2[_0xf1f399]={'$like':'%'+_0x24f333[_0x18dd('0x24')][_0x18dd('0x35')]+'%'};return _0x2be2b2;})});}_0x1de095=_[_0x18dd('0x34')]({},_0x1de095,_0x24f333[_0x18dd('0x37')]);var _0x873191={'where':_0x1de095[_0x18dd('0x2f')]};return db[_0x18dd('0x21')]['count'](_0x873191)[_0x18dd('0x1b')](function(_0x1a6354){_0x3c603e[_0x18dd('0x15')]=_0x1a6354;if(_0x24f333['query'][_0x18dd('0x38')]){_0x1de095['include']=[{'all':!![]}];}return db[_0x18dd('0x21')][_0x18dd('0x39')](_0x1de095);})[_0x18dd('0x1b')](function(_0xf4147e){_0x3c603e[_0x18dd('0x3a')]=_0xf4147e;return _0x3c603e;})[_0x18dd('0x1b')](respondWithFilteredResult(_0x3756c2,_0x1de095))[_0x18dd('0x3b')](handleError(_0x3756c2,null));};exports[_0x18dd('0x3c')]=function(_0x416cf4,_0x51d7e8){var _0x4c7926={'raw':!![],'where':{'id':_0x416cf4[_0x18dd('0x3d')]['id']}},_0x26feaf={};_0x26feaf[_0x18dd('0x28')]=_[_0x18dd('0x23')](db[_0x18dd('0x21')][_0x18dd('0x22')]);_0x26feaf[_0x18dd('0x24')]=_['keys'](_0x416cf4[_0x18dd('0x24')]);_0x26feaf[_0x18dd('0x30')]=_['intersection'](_0x26feaf[_0x18dd('0x28')],_0x26feaf[_0x18dd('0x24')]);_0x4c7926[_0x18dd('0x29')]=_[_0x18dd('0x27')](_0x26feaf['model'],qs[_0x18dd('0x2a')](_0x416cf4['query'][_0x18dd('0x2a')]));_0x4c7926[_0x18dd('0x29')]=_0x4c7926[_0x18dd('0x29')][_0x18dd('0x3e')]?_0x4c7926[_0x18dd('0x29')]:_0x26feaf[_0x18dd('0x28')];if(_0x416cf4['query'][_0x18dd('0x38')]){_0x4c7926['include']=[{'all':!![]}];}_0x4c7926=_[_0x18dd('0x34')]({},_0x4c7926,_0x416cf4[_0x18dd('0x37')]);return db['CmHopperFinal'][_0x18dd('0x3f')](_0x4c7926)[_0x18dd('0x1b')](handleEntityNotFound(_0x51d7e8,null))[_0x18dd('0x1b')](respondWithResult(_0x51d7e8,null))['catch'](handleError(_0x51d7e8,null));};exports[_0x18dd('0x40')]=function(_0x1f31b5,_0x43127c){return db[_0x18dd('0x21')][_0x18dd('0x40')]()['then'](respondWithResult(_0x43127c,null))[_0x18dd('0x3b')](handleError(_0x43127c,null));};exports[_0x18dd('0x41')]=function(_0x10e75d,_0x4c4252){if(_0x10e75d[_0x18dd('0x42')]['uniqueid']){delete _0x10e75d[_0x18dd('0x42')][_0x18dd('0x43')];}return db[_0x18dd('0x21')][_0x18dd('0x3f')]({'where':{'uniqueid':_0x10e75d[_0x18dd('0x3d')]['id']}})[_0x18dd('0x1b')](handleEntityNotFound(_0x4c4252,null))['then'](saveUpdates(_0x10e75d[_0x18dd('0x42')],null))[_0x18dd('0x1b')](respondWithResult(_0x4c4252,null))[_0x18dd('0x3b')](handleError(_0x4c4252,null));};exports['countContactsQueueCampaignHopperFinal']=function(_0xd34248,_0x1e01d1,_0x2ae6f3){return db[_0x18dd('0x21')][_0x18dd('0x39')]({'raw':![],'where':{'VoiceQueueId':_0xd34248[_0x18dd('0x3d')]['id']},'attributes':[[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db['sequelize']['literal'](_0x18dd('0x46')))),_0x18dd('0x47')],[db['sequelize']['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')][_0x18dd('0x48')](_0x18dd('0x49')))),_0x18dd('0x4a')],[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')]['literal']('`state`\x20=\x205,\x201,\x20null'))),_0x18dd('0x4b')],[db['sequelize']['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')]['literal'](_0x18dd('0x4c')))),_0x18dd('0x4d')],[db['sequelize']['fn'](_0x18dd('0x45'),db['sequelize']['fn']('IF',db[_0x18dd('0x44')][_0x18dd('0x48')](_0x18dd('0x4e')))),_0x18dd('0x4f')],[db[_0x18dd('0x44')]['fn']('COUNT',db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')]['literal'](_0x18dd('0x50')))),'abandonedContacts'],[db[_0x18dd('0x44')]['fn']('COUNT',db[_0x18dd('0x44')]['fn']('IF',db['sequelize'][_0x18dd('0x48')](_0x18dd('0x51')))),'reCallContacts']]})[_0x18dd('0x1b')](handleEntityNotFound(_0x1e01d1,null))[_0x18dd('0x1b')](respondWithResult(_0x1e01d1,null))[_0x18dd('0x3b')](handleError(_0x1e01d1,null));};exports['countContactsIvrCampaignHopperFinal']=function(_0x12dc10,_0x5e0c11,_0x44874a){return db[_0x18dd('0x21')][_0x18dd('0x39')]({'raw':![],'where':{'CampaignId':_0x12dc10[_0x18dd('0x3d')]['id']},'attributes':[[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')][_0x18dd('0x48')](_0x18dd('0x46')))),_0x18dd('0x47')],[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db['sequelize']['fn']('IF',db[_0x18dd('0x44')]['literal'](_0x18dd('0x49')))),'noAnswerContacts'],[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')]['literal']('`state`\x20=\x205,\x201,\x20null'))),_0x18dd('0x4b')],[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db['sequelize'][_0x18dd('0x48')](_0x18dd('0x4c')))),'congestionContacts'],[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db['sequelize']['fn']('IF',db['sequelize'][_0x18dd('0x48')](_0x18dd('0x4e')))),_0x18dd('0x4f')],[db['sequelize']['fn'](_0x18dd('0x45'),db[_0x18dd('0x44')]['fn']('IF',db[_0x18dd('0x44')][_0x18dd('0x48')](_0x18dd('0x50')))),_0x18dd('0x52')],[db[_0x18dd('0x44')]['fn'](_0x18dd('0x45'),db['sequelize']['fn']('IF',db[_0x18dd('0x44')][_0x18dd('0x48')](_0x18dd('0x51')))),_0x18dd('0x53')]]})[_0x18dd('0x1b')](handleEntityNotFound(_0x5e0c11,null))[_0x18dd('0x1b')](respondWithResult(_0x5e0c11,null))[_0x18dd('0x3b')](handleError(_0x5e0c11,null));};exports[_0x18dd('0x54')]=function(_0x54f0b4,_0x2e4caa,_0x1f162f){return db[_0x18dd('0x55')][_0x18dd('0x3f')]({'where':{'id':_0x54f0b4[_0x18dd('0x3d')]['id']}})[_0x18dd('0x1b')](handleEntityNotFound(_0x2e4caa,null))[_0x18dd('0x1b')](function(_0x39e950){var _0x27dd54;if(_0x39e950){_0x27dd54=squel[_0x18dd('0x56')]()[_0x18dd('0x57')](_0x18dd('0x58'))['fromQuery']([_0x18dd('0x59'),_0x18dd('0x5a'),_0x18dd('0x5b'),_0x18dd('0x5c'),_0x18dd('0x5d'),_0x18dd('0x5e'),_0x18dd('0x5f')],squel[_0x18dd('0x60')]()[_0x18dd('0x61')](_0x18dd('0x62'),_0x18dd('0x59'))['field'](_0x18dd('0x63'),_0x18dd('0x5a'))[_0x18dd('0x61')](_0x18dd('0x64'),_0x18dd('0x5b'))[_0x18dd('0x61')]('ANY_VALUE(ListId)',_0x18dd('0x5c'))['field'](_0x18dd('0x65'),_0x18dd('0x5d'))['field'](_0x18dd('0x63'),'createdAt')[_0x18dd('0x61')](_0x18dd('0x63'),_0x18dd('0x5f'))[_0x18dd('0x66')](_0x18dd('0x67'))[_0x18dd('0x2f')]('VoiceQueueId\x20=\x20?',_0x54f0b4[_0x18dd('0x3d')]['id'][_0x18dd('0x68')]())[_0x18dd('0x2f')](_0x18dd('0x69'),_0x54f0b4[_0x18dd('0x42')][_0x18dd('0x6a')]['toString']())['where'](_0x18dd('0x6b'))['where'](_0x18dd('0x6c'),squel[_0x18dd('0x60')]()['field']('phone')[_0x18dd('0x66')](_0x18dd('0x58'))[_0x18dd('0x2f')]('VoiceQueueId\x20=\x20?',_0x54f0b4[_0x18dd('0x3d')]['id'][_0x18dd('0x68')]()))[_0x18dd('0x2f')](_0x18dd('0x6c'),squel['select']()[_0x18dd('0x61')](_0x18dd('0x6d'))[_0x18dd('0x66')]('cm_hopper_final')[_0x18dd('0x2f')](_0x18dd('0x6e'),_0x54f0b4[_0x18dd('0x3d')]['id'][_0x18dd('0x68')]())['where'](_0x18dd('0x6f')))['group'](_0x18dd('0x5b')))['toString']();return db['sequelize'][_0x18dd('0x24')](_0x27dd54);}return[];})['then'](respondWithResult(_0x2e4caa,null))[_0x18dd('0x3b')](handleError(_0x2e4caa,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x3a63ea,_0x55d610,_0x5b4e84){return db['Campaign'][_0x18dd('0x3f')]({'where':{'id':_0x3a63ea[_0x18dd('0x3d')]['id']}})[_0x18dd('0x1b')](handleEntityNotFound(_0x55d610,null))['then'](function(_0x2d0cfb){var _0x199b02;if(_0x2d0cfb){_0x199b02=squel[_0x18dd('0x56')]()[_0x18dd('0x57')](_0x18dd('0x58'))[_0x18dd('0x70')]([_0x18dd('0x59'),_0x18dd('0x5a'),_0x18dd('0x5b'),_0x18dd('0x5c'),_0x18dd('0x71'),_0x18dd('0x5e'),_0x18dd('0x5f')],squel[_0x18dd('0x60')]()[_0x18dd('0x61')](_0x18dd('0x62'),_0x18dd('0x59'))[_0x18dd('0x61')]('NOW()',_0x18dd('0x5a'))[_0x18dd('0x61')](_0x18dd('0x64'),_0x18dd('0x5b'))[_0x18dd('0x61')](_0x18dd('0x72'),_0x18dd('0x5c'))['field'](_0x18dd('0x73'),_0x18dd('0x71'))[_0x18dd('0x61')](_0x18dd('0x63'),_0x18dd('0x5e'))[_0x18dd('0x61')](_0x18dd('0x63'),_0x18dd('0x5f'))['from'](_0x18dd('0x67'))['where']('CampaignId\x20=\x20?',_0x3a63ea[_0x18dd('0x3d')]['id'][_0x18dd('0x68')]())[_0x18dd('0x2f')](_0x18dd('0x69'),_0x3a63ea['body']['state']['toString']())[_0x18dd('0x2f')](_0x18dd('0x6b'))[_0x18dd('0x2f')]('calleridnum\x20NOT\x20IN\x20(?)',squel['select']()[_0x18dd('0x61')](_0x18dd('0x59'))[_0x18dd('0x66')](_0x18dd('0x58'))[_0x18dd('0x2f')](_0x18dd('0x74'),_0x3a63ea['params']['id'][_0x18dd('0x68')]()))[_0x18dd('0x2f')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x18dd('0x60')]()[_0x18dd('0x61')](_0x18dd('0x6d'))['from'](_0x18dd('0x67'))[_0x18dd('0x2f')](_0x18dd('0x74'),_0x3a63ea[_0x18dd('0x3d')]['id'][_0x18dd('0x68')]())['where'](_0x18dd('0x6f')))[_0x18dd('0x75')]('ContactId'))[_0x18dd('0x68')]();return db[_0x18dd('0x44')][_0x18dd('0x24')](_0x199b02);}return[];})[_0x18dd('0x1b')](respondWithResult(_0x55d610,null))[_0x18dd('0x3b')](handleError(_0x55d610,null));};exports[_0x18dd('0x76')]=function(_0x1ce134,_0x106e35,_0x28e472){return db[_0x18dd('0x77')][_0x18dd('0x78')]({'where':{'VoiceQueueId':_0x1ce134['body'][_0x18dd('0x5d')],'CampaignId':_0x1ce134[_0x18dd('0x42')][_0x18dd('0x71')],'ContactId':_0x1ce134[_0x18dd('0x42')]['ContactId']}})[_0x18dd('0x1b')](handleEntityNotFound(_0x106e35,null))[_0x18dd('0x1b')](function(_0x21a79d){if(_0x21a79d){return _0x21a79d;}return null;})[_0x18dd('0x1b')](respondWithResult(_0x106e35,null))[_0x18dd('0x3b')](handleError(_0x106e35,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66fa=['cm_hopper_final','calleridnum','uniqueid','lodash','util','api','moment','bluebird','request-promise','./cmHopperFinal.attributes','exports','CmHopperFinal'];(function(_0x69c346,_0x335e7f){var _0x2581cf=function(_0x3d90a0){while(--_0x3d90a0){_0x69c346['push'](_0x69c346['shift']());}};_0x2581cf(++_0x335e7f);}(_0x66fa,0x117));var _0xa66f=function(_0x56c483,_0x3d79c2){_0x56c483=_0x56c483-0x0;var _0x130287=_0x66fa[_0x56c483];return _0x130287;};'use strict';var _=require(_0xa66f('0x0'));var util=require(_0xa66f('0x1'));var logger=require('../../config/logger')(_0xa66f('0x2'));var moment=require(_0xa66f('0x3'));var BPromise=require(_0xa66f('0x4'));var rp=require(_0xa66f('0x5'));var attributes=require(_0xa66f('0x6'));module[_0xa66f('0x7')]=function(_0x3f4904,_0x5ebea5){return _0x3f4904['define'](_0xa66f('0x8'),attributes,{'tableName':_0xa66f('0x9'),'paranoid':![],'indexes':[{'name':_0xa66f('0xa'),'fields':[_0xa66f('0xa')]},{'name':_0xa66f('0xb'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x2ef3=['util','../../config/logger','api','moment','bluebird','./cmHopperFinal.attributes','exports','define','calleridnum','uniqueid','lodash'];(function(_0x135758,_0x295f01){var _0x5ba24b=function(_0x5b8e8f){while(--_0x5b8e8f){_0x135758['push'](_0x135758['shift']());}};_0x5ba24b(++_0x295f01);}(_0x2ef3,0xba));var _0x32ef=function(_0x3be9f8,_0x48f632){_0x3be9f8=_0x3be9f8-0x0;var _0x758b8f=_0x2ef3[_0x3be9f8];return _0x758b8f;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var logger=require(_0x32ef('0x2'))(_0x32ef('0x3'));var moment=require(_0x32ef('0x4'));var BPromise=require(_0x32ef('0x5'));var rp=require('request-promise');var attributes=require(_0x32ef('0x6'));module[_0x32ef('0x7')]=function(_0x524ab6,_0x402857){return _0x524ab6[_0x32ef('0x8')]('CmHopperFinal',attributes,{'tableName':'cm_hopper_final','paranoid':![],'indexes':[{'name':_0x32ef('0x9'),'fields':[_0x32ef('0x9')]},{'name':_0x32ef('0xa'),'fields':[_0x32ef('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdf7=['options','raw','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','stringify','error','code','CmHopperFinal,\x20%s,\x20%s','message','result','catch','CreateCmHopperFinal','CmHopperFinal','create','body'];(function(_0x28947d,_0x4cc9c6){var _0x12d2ee=function(_0x3f38fc){while(--_0x3f38fc){_0x28947d['push'](_0x28947d['shift']());}};_0x12d2ee(++_0x4cc9c6);}(_0xfdf7,0xe2));var _0x7fdf=function(_0x3a840c,_0x2c866a){_0x3a840c=_0x3a840c-0x0;var _0x16627f=_0xfdf7[_0x3a840c];return _0x16627f;};'use strict';var _=require('lodash');var util=require(_0x7fdf('0x0'));var moment=require('moment');var BPromise=require(_0x7fdf('0x1'));var rs=require(_0x7fdf('0x2'));var fs=require('fs');var db=require(_0x7fdf('0x3'))['db'];var utils=require(_0x7fdf('0x4'));var logger=require(_0x7fdf('0x5'))(_0x7fdf('0x6'));var config=require(_0x7fdf('0x7'));var jayson=require(_0x7fdf('0x8'));var client=jayson['client'][_0x7fdf('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5cc74a,_0x3f27a6,_0x4a51fc){return new BPromise(function(_0x416f01,_0x24a6f8){return client[_0x7fdf('0xa')](_0x5cc74a,_0x4a51fc)[_0x7fdf('0xb')](function(_0x12d59a){logger[_0x7fdf('0xc')]('CmHopperFinal,\x20%s,\x20%s',_0x3f27a6,_0x7fdf('0xd'));logger[_0x7fdf('0xe')]('CmHopperFinal,\x20%s,\x20%s,\x20%s',_0x3f27a6,'request\x20sent',JSON[_0x7fdf('0xf')](_0x12d59a));if(_0x12d59a['error']){if(_0x12d59a[_0x7fdf('0x10')][_0x7fdf('0x11')]===0x1f4){logger[_0x7fdf('0x10')](_0x7fdf('0x12'),_0x3f27a6,_0x12d59a[_0x7fdf('0x10')][_0x7fdf('0x13')]);return _0x24a6f8(_0x12d59a[_0x7fdf('0x10')]['message']);}logger[_0x7fdf('0x10')](_0x7fdf('0x12'),_0x3f27a6,_0x12d59a[_0x7fdf('0x10')]['message']);return _0x416f01(_0x12d59a[_0x7fdf('0x10')][_0x7fdf('0x13')]);}else{logger[_0x7fdf('0xc')]('CmHopperFinal,\x20%s,\x20%s',_0x3f27a6,_0x7fdf('0xd'));_0x416f01(_0x12d59a[_0x7fdf('0x14')][_0x7fdf('0x13')]);}})[_0x7fdf('0x15')](function(_0x22e4ea){logger[_0x7fdf('0x10')](_0x7fdf('0x12'),_0x3f27a6,_0x22e4ea);_0x24a6f8(_0x22e4ea);});});}exports[_0x7fdf('0x16')]=function(_0x4bd88e){var _0x370edf=this;return new Promise(function(_0x53e046,_0x45681d){return db[_0x7fdf('0x17')][_0x7fdf('0x18')](_0x4bd88e[_0x7fdf('0x19')],{'raw':_0x4bd88e['options']?_0x4bd88e[_0x7fdf('0x1a')][_0x7fdf('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x1b5848){logger[_0x7fdf('0xc')](_0x7fdf('0x16'),_0x4bd88e);logger[_0x7fdf('0xe')](_0x7fdf('0x16'),_0x4bd88e,JSON[_0x7fdf('0xf')](_0x1b5848));_0x53e046(_0x1b5848);})['catch'](function(_0x2f6fa9){logger[_0x7fdf('0x10')]('CreateCmHopperFinal',_0x2f6fa9[_0x7fdf('0x13')],_0x4bd88e);_0x45681d(_0x370edf[_0x7fdf('0x10')](0x1f4,_0x2f6fa9[_0x7fdf('0x13')]));});});};
\ No newline at end of file
+var _0x2547=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','CmHopperFinal,\x20%s,\x20%s','request\x20sent','debug','CmHopperFinal,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','CreateCmHopperFinal','CmHopperFinal','create','body','options','raw','then','util','moment','bluebird'];(function(_0x2d4547,_0x2382dd){var _0x1dcab8=function(_0x3474bc){while(--_0x3474bc){_0x2d4547['push'](_0x2d4547['shift']());}};_0x1dcab8(++_0x2382dd);}(_0x2547,0x1cd));var _0x7254=function(_0x50e6af,_0x2e901e){_0x50e6af=_0x50e6af-0x0;var _0xef91d7=_0x2547[_0x50e6af];return _0xef91d7;};'use strict';var _=require('lodash');var util=require(_0x7254('0x0'));var moment=require(_0x7254('0x1'));var BPromise=require(_0x7254('0x2'));var rs=require(_0x7254('0x3'));var fs=require('fs');var Redis=require(_0x7254('0x4'));var db=require(_0x7254('0x5'))['db'];var utils=require(_0x7254('0x6'));var logger=require(_0x7254('0x7'))('rpc');var config=require(_0x7254('0x8'));var jayson=require(_0x7254('0x9'));var client=jayson[_0x7254('0xa')][_0x7254('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4b845f,_0x253b1e,_0x6e3d84){return new BPromise(function(_0x395913,_0x5da1ec){return client[_0x7254('0xc')](_0x4b845f,_0x6e3d84)['then'](function(_0x50925f){logger['info'](_0x7254('0xd'),_0x253b1e,_0x7254('0xe'));logger[_0x7254('0xf')](_0x7254('0x10'),_0x253b1e,_0x7254('0xe'),JSON[_0x7254('0x11')](_0x50925f));if(_0x50925f['error']){if(_0x50925f[_0x7254('0x12')]['code']===0x1f4){logger[_0x7254('0x12')]('CmHopperFinal,\x20%s,\x20%s',_0x253b1e,_0x50925f[_0x7254('0x12')][_0x7254('0x13')]);return _0x5da1ec(_0x50925f[_0x7254('0x12')][_0x7254('0x13')]);}logger[_0x7254('0x12')](_0x7254('0xd'),_0x253b1e,_0x50925f[_0x7254('0x12')][_0x7254('0x13')]);return _0x395913(_0x50925f[_0x7254('0x12')][_0x7254('0x13')]);}else{logger[_0x7254('0x14')](_0x7254('0xd'),_0x253b1e,_0x7254('0xe'));_0x395913(_0x50925f['result'][_0x7254('0x13')]);}})[_0x7254('0x15')](function(_0xf47255){logger[_0x7254('0x12')](_0x7254('0xd'),_0x253b1e,_0xf47255);_0x5da1ec(_0xf47255);});});}exports[_0x7254('0x16')]=function(_0x2737e0){var _0x5dd23b=this;return new Promise(function(_0x1f48f6,_0x2283b7){return db[_0x7254('0x17')][_0x7254('0x18')](_0x2737e0[_0x7254('0x19')],{'raw':_0x2737e0[_0x7254('0x1a')]?_0x2737e0[_0x7254('0x1a')][_0x7254('0x1b')]===undefined?!![]:![]:!![]})[_0x7254('0x1c')](function(_0x3b6cb6){logger[_0x7254('0x14')](_0x7254('0x16'),_0x2737e0);logger[_0x7254('0xf')](_0x7254('0x16'),_0x2737e0,JSON[_0x7254('0x11')](_0x3b6cb6));_0x1f48f6(_0x3b6cb6);})[_0x7254('0x15')](function(_0x2bb2fe){logger[_0x7254('0x12')](_0x7254('0x16'),_0x2bb2fe[_0x7254('0x13')],_0x2737e0);_0x2283b7(_0x5dd23b[_0x7254('0x12')](0x1f4,_0x2bb2fe['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperFinal.controller','get','isAuthenticated','describe','/:id','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id','countContactsIvrCampaignHopperFinal','post','/voice/queue/moveContacts/:id','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','/checkContactHopper','put','update'];(function(_0x372101,_0x39e007){var _0x3f7470=function(_0x120d47){while(--_0x120d47){_0x372101['push'](_0x372101['shift']());}};_0x3f7470(++_0x39e007);}(_0x34e8,0x12c));var _0x834e=function(_0x47834b,_0x56e9d5){_0x47834b=_0x47834b-0x0;var _0x6a4f94=_0x34e8[_0x47834b];return _0x6a4f94;};'use strict';var multer=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var path=require(_0x834e('0x2'));var timeout=require(_0x834e('0x3'));var express=require('express');var router=express[_0x834e('0x4')]();var auth=require(_0x834e('0x5'));var interaction=require(_0x834e('0x6'));var config=require(_0x834e('0x7'));var controller=require(_0x834e('0x8'));router[_0x834e('0x9')]('/',auth[_0x834e('0xa')](),controller['index']);router[_0x834e('0x9')]('/describe',auth[_0x834e('0xa')](),controller[_0x834e('0xb')]);router[_0x834e('0x9')](_0x834e('0xc'),auth[_0x834e('0xa')](),controller[_0x834e('0xd')]);router[_0x834e('0x9')](_0x834e('0xe'),auth[_0x834e('0xa')](),controller[_0x834e('0xf')]);router[_0x834e('0x9')](_0x834e('0x10'),auth[_0x834e('0xa')](),controller[_0x834e('0x11')]);router[_0x834e('0x12')](_0x834e('0x13'),auth[_0x834e('0xa')](),controller['moveContactsQueueCampaignHopperFinal']);router[_0x834e('0x12')](_0x834e('0x14'),auth['isAuthenticated'](),controller[_0x834e('0x15')]);router[_0x834e('0x12')](_0x834e('0x16'),auth[_0x834e('0xa')](),controller['checkContactHopper']);router[_0x834e('0x17')](_0x834e('0xc'),auth['isAuthenticated'](),controller[_0x834e('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0x9c44=['put','update','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get','index','/describe','isAuthenticated','describe','/:id','show','countContactsQueueCampaignHopperFinal','countContactsIvrCampaignHopperFinal','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','post','/checkContactHopper','checkContactHopper'];(function(_0x5d2c2d,_0x5d2ad0){var _0x1aaef0=function(_0x3b9b17){while(--_0x3b9b17){_0x5d2c2d['push'](_0x5d2c2d['shift']());}};_0x1aaef0(++_0x5d2ad0);}(_0x9c44,0x178));var _0x49c4=function(_0x2dea24,_0x2fc021){_0x2dea24=_0x2dea24-0x0;var _0x309d58=_0x9c44[_0x2dea24];return _0x309d58;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var auth=require(_0x49c4('0x4'));var interaction=require(_0x49c4('0x5'));var config=require('../../config/environment');var controller=require('./cmHopperFinal.controller');router[_0x49c4('0x6')]('/',auth['isAuthenticated'](),controller[_0x49c4('0x7')]);router[_0x49c4('0x6')](_0x49c4('0x8'),auth[_0x49c4('0x9')](),controller[_0x49c4('0xa')]);router['get'](_0x49c4('0xb'),auth[_0x49c4('0x9')](),controller[_0x49c4('0xc')]);router[_0x49c4('0x6')]('/voice/queue/countAttributes/:id',auth['isAuthenticated'](),controller[_0x49c4('0xd')]);router[_0x49c4('0x6')]('/campaign/countAttributes/:id',auth[_0x49c4('0x9')](),controller[_0x49c4('0xe')]);router['post']('/voice/queue/moveContacts/:id',auth[_0x49c4('0x9')](),controller[_0x49c4('0xf')]);router['post'](_0x49c4('0x10'),auth[_0x49c4('0x9')](),controller['moveContactsIvrCampaignHopperFinal']);router[_0x49c4('0x11')](_0x49c4('0x12'),auth[_0x49c4('0x9')](),controller[_0x49c4('0x13')]);router[_0x49c4('0x14')](_0x49c4('0xb'),auth[_0x49c4('0x9')](),controller[_0x49c4('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46fc=['BOOLEAN','sequelize','exports','INTEGER','STRING','DATE'];(function(_0x17d072,_0x1aa810){var _0x3b7ddd=function(_0x5b1e9f){while(--_0x5b1e9f){_0x17d072['push'](_0x17d072['shift']());}};_0x3b7ddd(++_0x1aa810);}(_0x46fc,0x103));var _0xc46f=function(_0x4aa33b,_0x18235f){_0x4aa33b=_0x4aa33b-0x0;var _0x5efce2=_0x46fc[_0x4aa33b];return _0x5efce2;};'use strict';var Sequelize=require(_0xc46f('0x0'));module[_0xc46f('0x1')]={'state':{'type':Sequelize[_0xc46f('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xc46f('0x3')]},'scheduledat':{'type':Sequelize[_0xc46f('0x4')]},'countbusyretry':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0xc46f('0x3')]},'calleridnum':{'type':Sequelize[_0xc46f('0x3')]},'calleridname':{'type':Sequelize[_0xc46f('0x3')]},'starttime':{'type':Sequelize[_0xc46f('0x4')]},'responsetime':{'type':Sequelize[_0xc46f('0x4')]},'answertime':{'type':Sequelize[_0xc46f('0x4')]},'droptime':{'type':Sequelize[_0xc46f('0x4')]},'endtime':{'type':Sequelize[_0xc46f('0x4')]},'ringtime':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xc46f('0x2')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xc46f('0x3')]},'campaign':{'type':Sequelize[_0xc46f('0x3')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0xc46f('0x3')]},'reason':{'type':Sequelize[_0xc46f('0x3')]},'amd':{'type':Sequelize[_0xc46f('0x5')],'defaultValue':![]},'fax':{'type':Sequelize[_0xc46f('0x5')],'defaultValue':![]},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'recallme':{'type':Sequelize[_0xc46f('0x5')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xc46f('0x4')]},'edited':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xd9ef=['exports','STRING','INTEGER','DATE','BOOLEAN','sequelize'];(function(_0x4e1a73,_0x2056b1){var _0x5efdd5=function(_0x162e02){while(--_0x162e02){_0x4e1a73['push'](_0x4e1a73['shift']());}};_0x5efdd5(++_0x2056b1);}(_0xd9ef,0x95));var _0xfd9e=function(_0x2774cf,_0x50e148){_0x2774cf=_0x2774cf-0x0;var _0x8d4328=_0xd9ef[_0x2774cf];return _0x8d4328;};'use strict';var Sequelize=require(_0xfd9e('0x0'));module[_0xfd9e('0x1')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0xfd9e('0x2')]},'scheduledat':{'type':Sequelize['DATE']},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xfd9e('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xfd9e('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xfd9e('0x2')]},'originatecalleridnum':{'type':Sequelize[_0xfd9e('0x2')]},'originatecalleridname':{'type':Sequelize[_0xfd9e('0x2')]},'calleridnum':{'type':Sequelize[_0xfd9e('0x2')]},'calleridname':{'type':Sequelize[_0xfd9e('0x2')]},'starttime':{'type':Sequelize[_0xfd9e('0x4')]},'responsetime':{'type':Sequelize[_0xfd9e('0x4')]},'answertime':{'type':Sequelize[_0xfd9e('0x4')]},'droptime':{'type':Sequelize[_0xfd9e('0x4')]},'endtime':{'type':Sequelize[_0xfd9e('0x4')]},'ringtime':{'type':Sequelize[_0xfd9e('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xfd9e('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xfd9e('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize['STRING']},'campaign':{'type':Sequelize[_0xfd9e('0x2')]},'campaigntype':{'type':Sequelize[_0xfd9e('0x2')]},'membername':{'type':Sequelize[_0xfd9e('0x2')]},'reason':{'type':Sequelize['STRING']},'amd':{'type':Sequelize[_0xfd9e('0x5')],'defaultValue':![]},'fax':{'type':Sequelize[_0xfd9e('0x5')],'defaultValue':![]},'callback':{'type':Sequelize[_0xfd9e('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xfd9e('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xfd9e('0x4')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'editedat':{'type':Sequelize[_0xfd9e('0x4')]},'edited':{'type':Sequelize[_0xfd9e('0x5')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc980=['crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','end','status','json','offset','limit','set','reject','save','update','destroy','then','sendStatus','error','stack','name','index','CmHopperHistory','rawAttributes','model','query','dateStart','dateEnd','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','count','includeAll','include','findAll','rows','catch','show','params','keys','length','options','create','body','describe','uniqueid','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','squel'];(function(_0x433303,_0x138d1a){var _0x3fb857=function(_0x25191f){while(--_0x25191f){_0x433303['push'](_0x433303['shift']());}};_0x3fb857(++_0x138d1a);}(_0xc980,0x11c));var _0x0c98=function(_0x4bd950,_0x184ed5){_0x4bd950=_0x4bd950-0x0;var _0x5dc59a=_0xc980[_0x4bd950];return _0x5dc59a;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0c98('0x0'));var rimraf=require(_0x0c98('0x1'));var zipdir=require(_0x0c98('0x2'));var jsonpatch=require(_0x0c98('0x3'));var rp=require(_0x0c98('0x4'));var moment=require(_0x0c98('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0c98('0x6'));var util=require(_0x0c98('0x7'));var path=require('path');var sox=require(_0x0c98('0x8'));var csv=require(_0x0c98('0x9'));var ejs=require(_0x0c98('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x0c98('0xb'));var crypto=require(_0x0c98('0xc'));var jsforce=require(_0x0c98('0xd'));var deskjs=require(_0x0c98('0xe'));var toCsv=require(_0x0c98('0x9'));var querystring=require(_0x0c98('0xf'));var Papa=require(_0x0c98('0x10'));var qs=require(_0x0c98('0x11'));var logger=require(_0x0c98('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x0c98('0x13'));var db=require(_0x0c98('0x14'))['db'];function respondWithStatusCode(_0x2bd6ef,_0x12b93a){_0x12b93a=_0x12b93a||0xcc;return function(_0x6a8e5c){if(_0x6a8e5c){return _0x2bd6ef['sendStatus'](_0x12b93a);}return _0x2bd6ef['status'](_0x12b93a)[_0x0c98('0x15')]();};}function respondWithResult(_0x769782,_0x2cd4e8){_0x2cd4e8=_0x2cd4e8||0xc8;return function(_0x26723f){if(_0x26723f){return _0x769782[_0x0c98('0x16')](_0x2cd4e8)[_0x0c98('0x17')](_0x26723f);}};}function respondWithFilteredResult(_0x8f861a,_0x131539){return function(_0x5e54bd){if(_0x5e54bd){var _0x540118=_0x5e54bd['count'],_0x24782f=_0x131539[_0x0c98('0x18')],_0x164303=_0x131539[_0x0c98('0x18')]+_0x131539[_0x0c98('0x19')],_0x552a21;if(_0x164303>=_0x540118){_0x164303=_0x540118;_0x552a21=0xc8;}else{_0x552a21=0xce;}_0x8f861a[_0x0c98('0x16')](_0x552a21);return _0x8f861a[_0x0c98('0x1a')]('Content-Range',_0x24782f+'-'+_0x164303+'/'+_0x540118)['json'](_0x5e54bd);}return null;};}function patchUpdates(_0x4c01f0){return function(_0x17d058){try{jsonpatch['apply'](_0x17d058,_0x4c01f0,!![]);}catch(_0x152e21){return BPromise[_0x0c98('0x1b')](_0x152e21);}return _0x17d058[_0x0c98('0x1c')]();};}function saveUpdates(_0x3977e9,_0x57b762){return function(_0xc9e588){if(_0xc9e588){return _0xc9e588[_0x0c98('0x1d')](_0x3977e9)['then'](function(_0x61a5cd){return _0x61a5cd;});}return null;};}function removeEntity(_0xe77a26,_0x8098f5){return function(_0x4852b3){if(_0x4852b3){return _0x4852b3[_0x0c98('0x1e')]()[_0x0c98('0x1f')](function(){_0xe77a26[_0x0c98('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x440be4,_0x30cd71){return function(_0x2df28f){if(!_0x2df28f){_0x440be4[_0x0c98('0x20')](0x194);}return _0x2df28f;};}function handleError(_0x118afe,_0x577010){_0x577010=_0x577010||0x1f4;return function(_0x50bb63){logger[_0x0c98('0x21')](_0x50bb63[_0x0c98('0x22')]);if(_0x50bb63[_0x0c98('0x23')]){delete _0x50bb63[_0x0c98('0x23')];}_0x118afe[_0x0c98('0x16')](_0x577010)['send'](_0x50bb63);};}exports[_0x0c98('0x24')]=function(_0x38dd15,_0x1ae048){var _0x445740={},_0x170244={},_0x3177ef={'count':0x0,'rows':[]};var _0x3ff76e=db[_0x0c98('0x25')][_0x0c98('0x26')];_0x170244[_0x0c98('0x27')]=_['keys'](_0x3ff76e);var _0x2b07ca={'dateStart':_0x38dd15[_0x0c98('0x28')][_0x0c98('0x29')],'dateEnd':_0x38dd15['query'][_0x0c98('0x2a')]};delete _0x38dd15[_0x0c98('0x28')][_0x0c98('0x29')];delete _0x38dd15[_0x0c98('0x28')]['dateEnd'];_0x170244['query']=_['keys'](_0x38dd15['query']);_0x170244['filters']=_[_0x0c98('0x2b')](_0x170244[_0x0c98('0x27')],_0x170244[_0x0c98('0x28')]);_0x445740[_0x0c98('0x2c')]=_['intersection'](_0x170244[_0x0c98('0x27')],qs[_0x0c98('0x2d')](_0x38dd15['query'][_0x0c98('0x2d')]));_0x445740['attributes']=_0x445740[_0x0c98('0x2c')]['length']?_0x445740[_0x0c98('0x2c')]:_0x170244[_0x0c98('0x27')];if(!_0x38dd15[_0x0c98('0x28')][_0x0c98('0x2e')](_0x0c98('0x2f'))){_0x445740[_0x0c98('0x19')]=qs[_0x0c98('0x19')](_0x38dd15[_0x0c98('0x28')][_0x0c98('0x19')]);_0x445740['offset']=qs['offset'](_0x38dd15[_0x0c98('0x28')][_0x0c98('0x18')]);}_0x445740[_0x0c98('0x30')]=qs['sort'](_0x38dd15[_0x0c98('0x28')][_0x0c98('0x31')]);_0x445740[_0x0c98('0x32')]=qs[_0x0c98('0x33')](_[_0x0c98('0x34')](_0x38dd15[_0x0c98('0x28')],_0x170244[_0x0c98('0x33')]));if(_0x2b07ca[_0x0c98('0x29')]){if(_0x2b07ca['dateEnd']){_0x2b07ca['dateEnd']=moment(_0x2b07ca[_0x0c98('0x2a')])[_0x0c98('0x35')](0x1,_0x0c98('0x36'));}else{_0x2b07ca[_0x0c98('0x2a')]=moment(_0x2b07ca['dateStart'])[_0x0c98('0x35')](0x1,_0x0c98('0x36'));}_[_0x0c98('0x37')](_0x445740['where'],{'createdAt':{'$gte':_0x2b07ca[_0x0c98('0x29')],'$lte':_0x2b07ca[_0x0c98('0x2a')]}});}if(_0x38dd15['query'][_0x0c98('0x38')]){_0x445740['where']=_['merge'](_0x445740[_0x0c98('0x32')],{'$or':_[_0x0c98('0x39')](_0x445740['attributes'],function(_0x5454c8){var _0x3893b9={};_0x3893b9[_0x5454c8]={'$like':'%'+_0x38dd15[_0x0c98('0x28')]['filter']+'%'};return _0x3893b9;})});}_0x445740=_[_0x0c98('0x37')]({},_0x445740,_0x38dd15['options']);var _0x41fa35={'where':_0x445740[_0x0c98('0x32')]};return db[_0x0c98('0x25')][_0x0c98('0x3a')](_0x41fa35)['then'](function(_0x42311){_0x3177ef[_0x0c98('0x3a')]=_0x42311;if(_0x38dd15[_0x0c98('0x28')][_0x0c98('0x3b')]){_0x445740[_0x0c98('0x3c')]=[{'all':!![]}];}return db[_0x0c98('0x25')][_0x0c98('0x3d')](_0x445740);})[_0x0c98('0x1f')](function(_0x39b747){_0x3177ef[_0x0c98('0x3e')]=_0x39b747;return _0x3177ef;})[_0x0c98('0x1f')](respondWithFilteredResult(_0x1ae048,_0x445740))[_0x0c98('0x3f')](handleError(_0x1ae048,null));};exports[_0x0c98('0x40')]=function(_0x383dc0,_0x27b4bf){var _0x16d3c4={'raw':!![],'where':{'id':_0x383dc0[_0x0c98('0x41')]['id']}},_0x4e5b4d={};_0x4e5b4d[_0x0c98('0x27')]=_[_0x0c98('0x42')](db[_0x0c98('0x25')]['rawAttributes']);_0x4e5b4d[_0x0c98('0x28')]=_[_0x0c98('0x42')](_0x383dc0[_0x0c98('0x28')]);_0x4e5b4d[_0x0c98('0x33')]=_[_0x0c98('0x2b')](_0x4e5b4d[_0x0c98('0x27')],_0x4e5b4d[_0x0c98('0x28')]);_0x16d3c4['attributes']=_[_0x0c98('0x2b')](_0x4e5b4d[_0x0c98('0x27')],qs[_0x0c98('0x2d')](_0x383dc0[_0x0c98('0x28')][_0x0c98('0x2d')]));_0x16d3c4['attributes']=_0x16d3c4['attributes'][_0x0c98('0x43')]?_0x16d3c4[_0x0c98('0x2c')]:_0x4e5b4d['model'];if(_0x383dc0[_0x0c98('0x28')][_0x0c98('0x3b')]){_0x16d3c4['include']=[{'all':!![]}];}_0x16d3c4=_['merge']({},_0x16d3c4,_0x383dc0[_0x0c98('0x44')]);return db[_0x0c98('0x25')]['find'](_0x16d3c4)[_0x0c98('0x1f')](handleEntityNotFound(_0x27b4bf,null))['then'](respondWithResult(_0x27b4bf,null))[_0x0c98('0x3f')](handleError(_0x27b4bf,null));};exports[_0x0c98('0x45')]=function(_0x55fb8e,_0x55230a){return db['CmHopperHistory'][_0x0c98('0x45')](_0x55fb8e[_0x0c98('0x46')],{})['then'](respondWithResult(_0x55230a,0xc9))['catch'](handleError(_0x55230a,null));};exports[_0x0c98('0x47')]=function(_0x30649d,_0x39de65){return db[_0x0c98('0x25')][_0x0c98('0x47')]()[_0x0c98('0x1f')](respondWithResult(_0x39de65,null))['catch'](handleError(_0x39de65,null));};exports[_0x0c98('0x1d')]=function(_0x214ebc,_0x5186a1){if(_0x214ebc[_0x0c98('0x46')][_0x0c98('0x48')]){delete _0x214ebc[_0x0c98('0x46')]['uniqueid'];}return db[_0x0c98('0x25')][_0x0c98('0x49')]({'where':{'uniqueid':_0x214ebc[_0x0c98('0x41')]['id']}})[_0x0c98('0x1f')](handleEntityNotFound(_0x5186a1,null))[_0x0c98('0x1f')](saveUpdates(_0x214ebc[_0x0c98('0x46')],null))[_0x0c98('0x1f')](respondWithResult(_0x5186a1,null))[_0x0c98('0x3f')](handleError(_0x5186a1,null));};
\ No newline at end of file
+var _0x55c2=['moment','bluebird','util','path','to-csv','lodash','squel','crypto','jsforce','querystring','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','count','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','CmHopperHistory','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','add','day','merge','filter','map','includeAll','include','findAll','rows','catch','params','intersection','options','find','create','body','uniqueid','eml-format','rimraf','zip-dir','request-promise'];(function(_0x60ffc,_0x3de7d4){var _0x4ab09b=function(_0x1625d4){while(--_0x1625d4){_0x60ffc['push'](_0x60ffc['shift']());}};_0x4ab09b(++_0x3de7d4);}(_0x55c2,0x1df));var _0x255c=function(_0x35f3c9,_0x1aaafe){_0x35f3c9=_0x35f3c9-0x0;var _0x483f61=_0x55c2[_0x35f3c9];return _0x483f61;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x255c('0x0'));var rimraf=require(_0x255c('0x1'));var zipdir=require(_0x255c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x255c('0x3'));var moment=require(_0x255c('0x4'));var BPromise=require(_0x255c('0x5'));var Mustache=require('mustache');var util=require(_0x255c('0x6'));var path=require(_0x255c('0x7'));var sox=require('sox');var csv=require(_0x255c('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x255c('0x9'));var squel=require(_0x255c('0xa'));var crypto=require(_0x255c('0xb'));var jsforce=require(_0x255c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x255c('0x8'));var querystring=require(_0x255c('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x255c('0xe'))(_0x255c('0xf'));var utils=require(_0x255c('0x10'));var config=require(_0x255c('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a4e64,_0xe256b7){_0xe256b7=_0xe256b7||0xcc;return function(_0x1fc6d4){if(_0x1fc6d4){return _0x2a4e64[_0x255c('0x12')](_0xe256b7);}return _0x2a4e64['status'](_0xe256b7)[_0x255c('0x13')]();};}function respondWithResult(_0x17dfba,_0x5ad7e7){_0x5ad7e7=_0x5ad7e7||0xc8;return function(_0x3ae1c2){if(_0x3ae1c2){return _0x17dfba[_0x255c('0x14')](_0x5ad7e7)[_0x255c('0x15')](_0x3ae1c2);}};}function respondWithFilteredResult(_0x3caf39,_0x4dca4a){return function(_0x27ea6c){if(_0x27ea6c){var _0x32ae03=_0x27ea6c[_0x255c('0x16')],_0x4b1e37=_0x4dca4a[_0x255c('0x17')],_0x503fce=_0x4dca4a['offset']+_0x4dca4a['limit'],_0x3320e0;if(_0x503fce>=_0x32ae03){_0x503fce=_0x32ae03;_0x3320e0=0xc8;}else{_0x3320e0=0xce;}_0x3caf39[_0x255c('0x14')](_0x3320e0);return _0x3caf39[_0x255c('0x18')](_0x255c('0x19'),_0x4b1e37+'-'+_0x503fce+'/'+_0x32ae03)[_0x255c('0x15')](_0x27ea6c);}return null;};}function patchUpdates(_0x596410){return function(_0x518da9){try{jsonpatch[_0x255c('0x1a')](_0x518da9,_0x596410,!![]);}catch(_0x33b7bf){return BPromise['reject'](_0x33b7bf);}return _0x518da9[_0x255c('0x1b')]();};}function saveUpdates(_0x45aee4,_0x2f142b){return function(_0x423897){if(_0x423897){return _0x423897[_0x255c('0x1c')](_0x45aee4)[_0x255c('0x1d')](function(_0x477caf){return _0x477caf;});}return null;};}function removeEntity(_0x448fc6,_0x41809e){return function(_0x58cde6){if(_0x58cde6){return _0x58cde6[_0x255c('0x1e')]()[_0x255c('0x1d')](function(){_0x448fc6[_0x255c('0x14')](0xcc)[_0x255c('0x13')]();});}};}function handleEntityNotFound(_0x2f90d3,_0x3c983a){return function(_0x539e3b){if(!_0x539e3b){_0x2f90d3[_0x255c('0x12')](0x194);}return _0x539e3b;};}function handleError(_0x547a77,_0x2e564a){_0x2e564a=_0x2e564a||0x1f4;return function(_0xa97816){logger[_0x255c('0x1f')](_0xa97816[_0x255c('0x20')]);if(_0xa97816[_0x255c('0x21')]){delete _0xa97816[_0x255c('0x21')];}_0x547a77[_0x255c('0x14')](_0x2e564a)[_0x255c('0x22')](_0xa97816);};}exports['index']=function(_0x181ccd,_0x58b99e){var _0x40cf6c={},_0x2c307d={},_0xf431f1={'count':0x0,'rows':[]};var _0x29d943=db[_0x255c('0x23')][_0x255c('0x24')];_0x2c307d[_0x255c('0x25')]=_[_0x255c('0x26')](_0x29d943);var _0x4f519f={'dateStart':_0x181ccd[_0x255c('0x27')][_0x255c('0x28')],'dateEnd':_0x181ccd[_0x255c('0x27')]['dateEnd']};delete _0x181ccd[_0x255c('0x27')]['dateStart'];delete _0x181ccd[_0x255c('0x27')][_0x255c('0x29')];_0x2c307d['query']=_[_0x255c('0x26')](_0x181ccd[_0x255c('0x27')]);_0x2c307d[_0x255c('0x2a')]=_['intersection'](_0x2c307d['model'],_0x2c307d['query']);_0x40cf6c[_0x255c('0x2b')]=_['intersection'](_0x2c307d[_0x255c('0x25')],qs[_0x255c('0x2c')](_0x181ccd[_0x255c('0x27')][_0x255c('0x2c')]));_0x40cf6c[_0x255c('0x2b')]=_0x40cf6c[_0x255c('0x2b')][_0x255c('0x2d')]?_0x40cf6c[_0x255c('0x2b')]:_0x2c307d[_0x255c('0x25')];if(!_0x181ccd[_0x255c('0x27')][_0x255c('0x2e')]('nolimit')){_0x40cf6c['limit']=qs['limit'](_0x181ccd[_0x255c('0x27')][_0x255c('0x2f')]);_0x40cf6c['offset']=qs['offset'](_0x181ccd[_0x255c('0x27')]['offset']);}_0x40cf6c[_0x255c('0x30')]=qs[_0x255c('0x31')](_0x181ccd[_0x255c('0x27')][_0x255c('0x31')]);_0x40cf6c[_0x255c('0x32')]=qs[_0x255c('0x2a')](_[_0x255c('0x33')](_0x181ccd[_0x255c('0x27')],_0x2c307d[_0x255c('0x2a')]));if(_0x4f519f['dateStart']){if(_0x4f519f[_0x255c('0x29')]){_0x4f519f[_0x255c('0x29')]=moment(_0x4f519f[_0x255c('0x29')])[_0x255c('0x34')](0x1,_0x255c('0x35'));}else{_0x4f519f[_0x255c('0x29')]=moment(_0x4f519f['dateStart'])[_0x255c('0x34')](0x1,_0x255c('0x35'));}_[_0x255c('0x36')](_0x40cf6c['where'],{'createdAt':{'$gte':_0x4f519f['dateStart'],'$lte':_0x4f519f[_0x255c('0x29')]}});}if(_0x181ccd[_0x255c('0x27')][_0x255c('0x37')]){_0x40cf6c[_0x255c('0x32')]=_['merge'](_0x40cf6c['where'],{'$or':_[_0x255c('0x38')](_0x40cf6c[_0x255c('0x2b')],function(_0x131565){var _0x73ad12={};_0x73ad12[_0x131565]={'$like':'%'+_0x181ccd[_0x255c('0x27')][_0x255c('0x37')]+'%'};return _0x73ad12;})});}_0x40cf6c=_['merge']({},_0x40cf6c,_0x181ccd['options']);var _0x36cfe2={'where':_0x40cf6c['where']};return db[_0x255c('0x23')]['count'](_0x36cfe2)['then'](function(_0xfee43){_0xf431f1[_0x255c('0x16')]=_0xfee43;if(_0x181ccd[_0x255c('0x27')][_0x255c('0x39')]){_0x40cf6c[_0x255c('0x3a')]=[{'all':!![]}];}return db[_0x255c('0x23')][_0x255c('0x3b')](_0x40cf6c);})[_0x255c('0x1d')](function(_0x3b248c){_0xf431f1[_0x255c('0x3c')]=_0x3b248c;return _0xf431f1;})[_0x255c('0x1d')](respondWithFilteredResult(_0x58b99e,_0x40cf6c))[_0x255c('0x3d')](handleError(_0x58b99e,null));};exports['show']=function(_0x306bde,_0xe8d435){var _0x4e8f08={'raw':!![],'where':{'id':_0x306bde[_0x255c('0x3e')]['id']}},_0x39e1df={};_0x39e1df[_0x255c('0x25')]=_[_0x255c('0x26')](db['CmHopperHistory']['rawAttributes']);_0x39e1df[_0x255c('0x27')]=_[_0x255c('0x26')](_0x306bde[_0x255c('0x27')]);_0x39e1df[_0x255c('0x2a')]=_[_0x255c('0x3f')](_0x39e1df[_0x255c('0x25')],_0x39e1df['query']);_0x4e8f08[_0x255c('0x2b')]=_['intersection'](_0x39e1df[_0x255c('0x25')],qs['fields'](_0x306bde['query'][_0x255c('0x2c')]));_0x4e8f08[_0x255c('0x2b')]=_0x4e8f08[_0x255c('0x2b')][_0x255c('0x2d')]?_0x4e8f08[_0x255c('0x2b')]:_0x39e1df[_0x255c('0x25')];if(_0x306bde['query'][_0x255c('0x39')]){_0x4e8f08[_0x255c('0x3a')]=[{'all':!![]}];}_0x4e8f08=_[_0x255c('0x36')]({},_0x4e8f08,_0x306bde[_0x255c('0x40')]);return db[_0x255c('0x23')][_0x255c('0x41')](_0x4e8f08)[_0x255c('0x1d')](handleEntityNotFound(_0xe8d435,null))[_0x255c('0x1d')](respondWithResult(_0xe8d435,null))[_0x255c('0x3d')](handleError(_0xe8d435,null));};exports[_0x255c('0x42')]=function(_0x354c64,_0x56975a){return db['CmHopperHistory'][_0x255c('0x42')](_0x354c64[_0x255c('0x43')],{})[_0x255c('0x1d')](respondWithResult(_0x56975a,0xc9))['catch'](handleError(_0x56975a,null));};exports['describe']=function(_0x30996b,_0x326e74){return db[_0x255c('0x23')]['describe']()[_0x255c('0x1d')](respondWithResult(_0x326e74,null))[_0x255c('0x3d')](handleError(_0x326e74,null));};exports[_0x255c('0x1c')]=function(_0x1ca74c,_0x2cab2c){if(_0x1ca74c[_0x255c('0x43')][_0x255c('0x44')]){delete _0x1ca74c[_0x255c('0x43')]['uniqueid'];}return db[_0x255c('0x23')][_0x255c('0x41')]({'where':{'uniqueid':_0x1ca74c['params']['id']}})['then'](handleEntityNotFound(_0x2cab2c,null))[_0x255c('0x1d')](saveUpdates(_0x1ca74c['body'],null))[_0x255c('0x1d')](respondWithResult(_0x2cab2c,null))[_0x255c('0x3d')](handleError(_0x2cab2c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ac7=['uniqueid','lodash','util','../../config/logger','moment','request-promise','./cmHopperHistory.attributes','exports','define','CmHopperHistory','cm_hopper_history','endtime'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0x8ac7,0x18d));var _0x78ac=function(_0x4cd335,_0x169bf6){_0x4cd335=_0x4cd335-0x0;var _0x373807=_0x8ac7[_0x4cd335];return _0x373807;};'use strict';var _=require(_0x78ac('0x0'));var util=require(_0x78ac('0x1'));var logger=require(_0x78ac('0x2'))('api');var moment=require(_0x78ac('0x3'));var BPromise=require('bluebird');var rp=require(_0x78ac('0x4'));var attributes=require(_0x78ac('0x5'));module[_0x78ac('0x6')]=function(_0x529b9a,_0x323a7b){return _0x529b9a[_0x78ac('0x7')](_0x78ac('0x8'),attributes,{'tableName':_0x78ac('0x9'),'paranoid':![],'indexes':[{'name':_0x78ac('0xa'),'fields':[_0x78ac('0xa')]},{'name':_0x78ac('0xb'),'fields':[_0x78ac('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf4ca=['cm_hopper_history','endtime','uniqueid','lodash','util','../../config/logger','api','moment','request-promise','exports','define','CmHopperHistory'];(function(_0xfb42e6,_0x5f5d4b){var _0x27265b=function(_0x163e81){while(--_0x163e81){_0xfb42e6['push'](_0xfb42e6['shift']());}};_0x27265b(++_0x5f5d4b);}(_0xf4ca,0x1e3));var _0xaf4c=function(_0xe9fb11,_0x594502){_0xe9fb11=_0xe9fb11-0x0;var _0x1c2508=_0xf4ca[_0xe9fb11];return _0x1c2508;};'use strict';var _=require(_0xaf4c('0x0'));var util=require(_0xaf4c('0x1'));var logger=require(_0xaf4c('0x2'))(_0xaf4c('0x3'));var moment=require(_0xaf4c('0x4'));var BPromise=require('bluebird');var rp=require(_0xaf4c('0x5'));var attributes=require('./cmHopperHistory.attributes');module[_0xaf4c('0x6')]=function(_0x66181f,_0x32b184){return _0x66181f[_0xaf4c('0x7')](_0xaf4c('0x8'),attributes,{'tableName':_0xaf4c('0x9'),'paranoid':![],'indexes':[{'name':_0xaf4c('0xa'),'fields':[_0xaf4c('0xa')]},{'name':'uniqueid','fields':[_0xaf4c('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f99=['`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','GetVoiceQueueHopperHistory','name','`state`\x20=\x200,\x201,\x20null','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x204,\x201,\x20null','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundCongestionCallsDay','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','campaign','GetCampaignHopperHistory','ivrTotalCallsDays','ivrAnswerCallsDay','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','CmHopperHistory,\x20%s,\x20%s','CreateCmHopperHistory','CmHopperHistory','create','body','raw','stringify','catch','AvgHandleTime','findAll','options','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','predictiveIntervalAnsweredCalls'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0x7f99,0x16c));var _0x97f9=function(_0x4efa0f,_0x13da03){_0x4efa0f=_0x4efa0f-0x0;var _0x1d77bc=_0x7f99[_0x4efa0f];return _0x1d77bc;};'use strict';var _=require(_0x97f9('0x0'));var util=require('util');var moment=require(_0x97f9('0x1'));var BPromise=require(_0x97f9('0x2'));var rs=require(_0x97f9('0x3'));var fs=require('fs');var db=require(_0x97f9('0x4'))['db'];var utils=require(_0x97f9('0x5'));var logger=require(_0x97f9('0x6'))('rpc');var config=require(_0x97f9('0x7'));var jayson=require(_0x97f9('0x8'));var client=jayson[_0x97f9('0x9')][_0x97f9('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x550103,_0xc544c3,_0x28b324){return new BPromise(function(_0x3333de,_0x31e514){return client[_0x97f9('0xb')](_0x550103,_0x28b324)[_0x97f9('0xc')](function(_0x4ad4af){logger[_0x97f9('0xd')]('CmHopperHistory,\x20%s,\x20%s',_0xc544c3,'request\x20sent');logger[_0x97f9('0xe')](_0x97f9('0xf'),_0xc544c3,_0x97f9('0x10'),JSON['stringify'](_0x4ad4af));if(_0x4ad4af[_0x97f9('0x11')]){if(_0x4ad4af[_0x97f9('0x11')][_0x97f9('0x12')]===0x1f4){logger[_0x97f9('0x11')]('CmHopperHistory,\x20%s,\x20%s',_0xc544c3,_0x4ad4af['error']['message']);return _0x31e514(_0x4ad4af[_0x97f9('0x11')][_0x97f9('0x13')]);}logger['error'](_0x97f9('0x14'),_0xc544c3,_0x4ad4af[_0x97f9('0x11')]['message']);return _0x3333de(_0x4ad4af[_0x97f9('0x11')][_0x97f9('0x13')]);}else{logger[_0x97f9('0xd')]('CmHopperHistory,\x20%s,\x20%s',_0xc544c3,'request\x20sent');_0x3333de(_0x4ad4af['result'][_0x97f9('0x13')]);}})['catch'](function(_0xced913){logger[_0x97f9('0x11')](_0x97f9('0x14'),_0xc544c3,_0xced913);_0x31e514(_0xced913);});});}exports[_0x97f9('0x15')]=function(_0x501846){var _0x5f2145=this;return new Promise(function(_0x43fda6,_0x5b0832){return db[_0x97f9('0x16')][_0x97f9('0x17')](_0x501846[_0x97f9('0x18')],{'raw':_0x501846['options']?_0x501846['options'][_0x97f9('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x3b28b3){logger[_0x97f9('0xd')]('CreateCmHopperHistory',_0x501846);logger[_0x97f9('0xe')](_0x97f9('0x15'),_0x501846,JSON[_0x97f9('0x1a')](_0x3b28b3));_0x43fda6(_0x3b28b3);})[_0x97f9('0x1b')](function(_0x3fa80f){logger[_0x97f9('0x11')](_0x97f9('0x15'),_0x3fa80f['message'],_0x501846);_0x5b0832(_0x5f2145['error'](0x1f4,_0x3fa80f['message']));});});};exports[_0x97f9('0x1c')]=function(_0x3a4d24){var _0x3e6ea0=this;return new Promise(function(_0x3c52dd,_0x10bdf1){return db[_0x97f9('0x16')][_0x97f9('0x1d')]({'raw':_0x3a4d24[_0x97f9('0x1e')]?_0x3a4d24['options'][_0x97f9('0x19')]===undefined?!![]:![]:!![],'where':_0x3a4d24[_0x97f9('0x1e')]?_0x3a4d24[_0x97f9('0x1e')][_0x97f9('0x1f')]||null:null,'attributes':[[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')][_0x97f9('0x22')]('id')),_0x97f9('0x23')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')]('`state`\x20=\x204,\x201,\x20null'))),_0x97f9('0x25')],[db['sequelize']['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')](_0x97f9('0x26')))),_0x97f9('0x27')],[db[_0x97f9('0x20')]['fn']('COUNT',db[_0x97f9('0x20')]['fn']('IF',db['sequelize'][_0x97f9('0x24')]('`state`\x20=\x2011,\x201,\x20null'))),_0x97f9('0x28')],[db[_0x97f9('0x20')]['fn']('AVG',db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')](_0x97f9('0x29')))),_0x97f9('0x2a')],[db[_0x97f9('0x20')]['fn']('AVG',db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')]['literal'](_0x97f9('0x2b')))),_0x97f9('0x2c')]]})[_0x97f9('0xc')](function(_0x5590ab){logger[_0x97f9('0xd')]('AvgHandleTime',_0x3a4d24);logger[_0x97f9('0xe')](_0x97f9('0x1c'),_0x3a4d24,JSON[_0x97f9('0x1a')](_0x5590ab));_0x3c52dd(_0x5590ab);})['catch'](function(_0x47bfe3){logger[_0x97f9('0x11')](_0x97f9('0x1c'),_0x47bfe3[_0x97f9('0x13')],_0x3a4d24);_0x10bdf1(_0x3e6ea0[_0x97f9('0x11')](0x1f4,_0x47bfe3[_0x97f9('0x13')]));});});};exports[_0x97f9('0x2d')]=function(_0x208bb7){var _0xfe73a=this;return new Promise(function(_0x14354b,_0x3177f2){return db[_0x97f9('0x16')]['findAll']({'raw':_0x208bb7['options']?_0x208bb7[_0x97f9('0x1e')][_0x97f9('0x19')]===undefined?!![]:![]:!![],'where':_0x208bb7[_0x97f9('0x1e')]?_0x208bb7[_0x97f9('0x1e')][_0x97f9('0x1f')]||null:null,'attributes':[['campaign',_0x97f9('0x2e')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')](_0x97f9('0x2f')))),'outboundNoSuchCallsDay'],[db['sequelize']['fn']('COUNT',db[_0x97f9('0x20')]['fn']('IF',db['sequelize'][_0x97f9('0x24')](_0x97f9('0x30')))),'outboundNoAnswerCallsDay'],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')]['literal'](_0x97f9('0x31')))),_0x97f9('0x32')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db['sequelize']['fn']('IF',db['sequelize'][_0x97f9('0x24')](_0x97f9('0x33')))),'outboundBusyCallsDay'],[db['sequelize']['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db['sequelize'][_0x97f9('0x24')]('`state`\x20=\x208,\x201,\x20null'))),_0x97f9('0x34')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db['sequelize']['fn']('IF',db['sequelize'][_0x97f9('0x24')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x97f9('0x35')],[db[_0x97f9('0x20')]['fn']('COUNT',db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')](_0x97f9('0x36')))),_0x97f9('0x37')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')]['literal']('`state`\x20=\x2012,\x201,\x20null'))),_0x97f9('0x38')],[db['sequelize']['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')](_0x97f9('0x39')))),_0x97f9('0x3a')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db['sequelize']['literal'](_0x97f9('0x3b')))),_0x97f9('0x3c')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db['sequelize'][_0x97f9('0x24')]('`state`\x20=\x2018,\x201,\x20null'))),_0x97f9('0x3d')],[db['sequelize']['fn'](_0x97f9('0x21'),db['sequelize']['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')]('`state`\x20=\x2016,\x201,\x20null'))),'outboundAnswerAgiCallsDay'],[db['sequelize']['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')]('`state`\x20=\x2020,\x201,\x20null'))),_0x97f9('0x3d')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db[_0x97f9('0x20')][_0x97f9('0x24')]('`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null'))),_0x97f9('0x3e')]],'group':[_0x97f9('0x3f')]})[_0x97f9('0xc')](function(_0x25ff62){logger[_0x97f9('0xd')](_0x97f9('0x2d'),_0x208bb7);logger[_0x97f9('0xe')](_0x97f9('0x2d'),_0x208bb7,JSON['stringify'](_0x25ff62));_0x14354b(_0x25ff62);})[_0x97f9('0x1b')](function(_0x14a75d){logger[_0x97f9('0x11')](_0x97f9('0x2d'),_0x14a75d[_0x97f9('0x13')],_0x208bb7);_0x3177f2(_0xfe73a['error'](0x1f4,_0x14a75d[_0x97f9('0x13')]));});});};exports[_0x97f9('0x40')]=function(_0x52ad71){var _0x394dbd=this;return new Promise(function(_0x49179c,_0x45f0f0){return db[_0x97f9('0x16')][_0x97f9('0x1d')]({'raw':_0x52ad71[_0x97f9('0x1e')]?_0x52ad71[_0x97f9('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x52ad71[_0x97f9('0x1e')]?_0x52ad71[_0x97f9('0x1e')]['where']||null:null,'attributes':[['campaign',_0x97f9('0x2e')],[db[_0x97f9('0x20')]['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')][_0x97f9('0x22')]('id')),_0x97f9('0x41')],[db['sequelize']['fn'](_0x97f9('0x21'),db[_0x97f9('0x20')]['fn']('IF',db['sequelize']['literal'](_0x97f9('0x31')))),_0x97f9('0x42')]],'group':[_0x97f9('0x3f')]})[_0x97f9('0xc')](function(_0x119dd3){logger[_0x97f9('0xd')](_0x97f9('0x40'),_0x52ad71);logger[_0x97f9('0xe')](_0x97f9('0x40'),_0x52ad71,JSON[_0x97f9('0x1a')](_0x119dd3));_0x49179c(_0x119dd3);})[_0x97f9('0x1b')](function(_0x16c2d3){logger[_0x97f9('0x11')](_0x97f9('0x40'),_0x16c2d3[_0x97f9('0x13')],_0x52ad71);_0x45f0f0(_0x394dbd['error'](0x1f4,_0x16c2d3[_0x97f9('0x13')]));});});};
\ No newline at end of file
+var _0xb5a4=['campaign','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','`state`\x20=\x203,\x201,\x20null','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetVoiceQueueHopperHistory','ivrTotalCallsDays','GetCampaignHopperHistory','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','error','code','message','CmHopperHistory,\x20%s,\x20%s','result','catch','CreateCmHopperHistory','body','options','raw','debug','AvgHandleTime','CmHopperHistory','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','`state`\x20=\x204,\x201,\x20null','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','AVG','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','stringify','findAll','where'];(function(_0x4e94fc,_0x3dae09){var _0x2114a7=function(_0x13589d){while(--_0x13589d){_0x4e94fc['push'](_0x4e94fc['shift']());}};_0x2114a7(++_0x3dae09);}(_0xb5a4,0x17d));var _0x4b5a=function(_0x7c85a7,_0x4a84b3){_0x7c85a7=_0x7c85a7-0x0;var _0x9a35ae=_0xb5a4[_0x7c85a7];return _0x9a35ae;};'use strict';var _=require('lodash');var util=require(_0x4b5a('0x0'));var moment=require(_0x4b5a('0x1'));var BPromise=require(_0x4b5a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4b5a('0x3'));var db=require(_0x4b5a('0x4'))['db'];var utils=require(_0x4b5a('0x5'));var logger=require(_0x4b5a('0x6'))(_0x4b5a('0x7'));var config=require(_0x4b5a('0x8'));var jayson=require(_0x4b5a('0x9'));var client=jayson[_0x4b5a('0xa')][_0x4b5a('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x56d278,_0x2b3d11,_0xa18b37){return new BPromise(function(_0x6be522,_0x30fada){return client[_0x4b5a('0xc')](_0x56d278,_0xa18b37)[_0x4b5a('0xd')](function(_0x2f0711){logger[_0x4b5a('0xe')]('CmHopperHistory,\x20%s,\x20%s',_0x2b3d11,_0x4b5a('0xf'));logger['debug']('CmHopperHistory,\x20%s,\x20%s,\x20%s',_0x2b3d11,_0x4b5a('0xf'),JSON['stringify'](_0x2f0711));if(_0x2f0711[_0x4b5a('0x10')]){if(_0x2f0711[_0x4b5a('0x10')][_0x4b5a('0x11')]===0x1f4){logger['error']('CmHopperHistory,\x20%s,\x20%s',_0x2b3d11,_0x2f0711[_0x4b5a('0x10')][_0x4b5a('0x12')]);return _0x30fada(_0x2f0711[_0x4b5a('0x10')][_0x4b5a('0x12')]);}logger[_0x4b5a('0x10')](_0x4b5a('0x13'),_0x2b3d11,_0x2f0711['error']['message']);return _0x6be522(_0x2f0711[_0x4b5a('0x10')][_0x4b5a('0x12')]);}else{logger[_0x4b5a('0xe')]('CmHopperHistory,\x20%s,\x20%s',_0x2b3d11,'request\x20sent');_0x6be522(_0x2f0711[_0x4b5a('0x14')]['message']);}})[_0x4b5a('0x15')](function(_0x26794e){logger['error'](_0x4b5a('0x13'),_0x2b3d11,_0x26794e);_0x30fada(_0x26794e);});});}exports[_0x4b5a('0x16')]=function(_0x1b1840){var _0x3e4e10=this;return new Promise(function(_0x23dfb8,_0x57f321){return db['CmHopperHistory']['create'](_0x1b1840[_0x4b5a('0x17')],{'raw':_0x1b1840[_0x4b5a('0x18')]?_0x1b1840[_0x4b5a('0x18')][_0x4b5a('0x19')]===undefined?!![]:![]:!![]})[_0x4b5a('0xd')](function(_0x5140c1){logger[_0x4b5a('0xe')](_0x4b5a('0x16'),_0x1b1840);logger[_0x4b5a('0x1a')](_0x4b5a('0x16'),_0x1b1840,JSON['stringify'](_0x5140c1));_0x23dfb8(_0x5140c1);})[_0x4b5a('0x15')](function(_0x36952f){logger[_0x4b5a('0x10')]('CreateCmHopperHistory',_0x36952f[_0x4b5a('0x12')],_0x1b1840);_0x57f321(_0x3e4e10[_0x4b5a('0x10')](0x1f4,_0x36952f[_0x4b5a('0x12')]));});});};exports[_0x4b5a('0x1b')]=function(_0x3ec6f3){var _0x4aa921=this;return new Promise(function(_0x1938f2,_0x9bcf2){return db[_0x4b5a('0x1c')]['findAll']({'raw':_0x3ec6f3[_0x4b5a('0x18')]?_0x3ec6f3[_0x4b5a('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x3ec6f3[_0x4b5a('0x18')]?_0x3ec6f3[_0x4b5a('0x18')]['where']||null:null,'attributes':[[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')][_0x4b5a('0x1f')]('id')),_0x4b5a('0x20')],[db[_0x4b5a('0x1d')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x22')))),'predictiveIntervalAnsweredCalls'],[db['sequelize']['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')]['literal']('`state`\x20=\x2010,\x201,\x20null'))),'predictiveIntervalDroppedCallsTimeout'],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x23')))),_0x4b5a('0x24')],[db[_0x4b5a('0x1d')]['fn']('AVG',db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x25')))),_0x4b5a('0x26')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x27'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')]['literal'](_0x4b5a('0x28')))),_0x4b5a('0x29')]]})[_0x4b5a('0xd')](function(_0x4b9a5b){logger['info'](_0x4b5a('0x1b'),_0x3ec6f3);logger['debug']('AvgHandleTime',_0x3ec6f3,JSON[_0x4b5a('0x2a')](_0x4b9a5b));_0x1938f2(_0x4b9a5b);})[_0x4b5a('0x15')](function(_0x4aec39){logger['error']('AvgHandleTime',_0x4aec39[_0x4b5a('0x12')],_0x3ec6f3);_0x9bcf2(_0x4aa921[_0x4b5a('0x10')](0x1f4,_0x4aec39[_0x4b5a('0x12')]));});});};exports['GetVoiceQueueHopperHistory']=function(_0x48b4c2){var _0x17e612=this;return new Promise(function(_0x42ee56,_0x5ce35e){return db[_0x4b5a('0x1c')][_0x4b5a('0x2b')]({'raw':_0x48b4c2[_0x4b5a('0x18')]?_0x48b4c2[_0x4b5a('0x18')][_0x4b5a('0x19')]===undefined?!![]:![]:!![],'where':_0x48b4c2[_0x4b5a('0x18')]?_0x48b4c2[_0x4b5a('0x18')][_0x4b5a('0x2c')]||null:null,'attributes':[[_0x4b5a('0x2d'),_0x4b5a('0x2e')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db['sequelize']['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x2f')))),_0x4b5a('0x30')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db['sequelize'][_0x4b5a('0x21')](_0x4b5a('0x31')))),'outboundNoAnswerCallsDay'],[db[_0x4b5a('0x1d')]['fn']('COUNT',db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x22')))),_0x4b5a('0x32')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db['sequelize']['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x33')))),'outboundBusyCallsDay'],[db[_0x4b5a('0x1d')]['fn']('COUNT',db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x34')))),_0x4b5a('0x35')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x36')))),_0x4b5a('0x37')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x38')))),'outboundDropCallsDayCallersExit'],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')]('`state`\x20=\x2012,\x201,\x20null'))),_0x4b5a('0x39')],[db[_0x4b5a('0x1d')]['fn']('COUNT',db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x3a')))),'outboundBlacklistCallsDay'],[db['sequelize']['fn'](_0x4b5a('0x1e'),db['sequelize']['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x3b')))),_0x4b5a('0x3c')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x3d')))),_0x4b5a('0x3e')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x3f')))),_0x4b5a('0x40')],[db['sequelize']['fn']('COUNT',db[_0x4b5a('0x1d')]['fn']('IF',db['sequelize']['literal'](_0x4b5a('0x41')))),_0x4b5a('0x3e')],[db[_0x4b5a('0x1d')]['fn'](_0x4b5a('0x1e'),db['sequelize']['fn']('IF',db['sequelize'][_0x4b5a('0x21')](_0x4b5a('0x42')))),_0x4b5a('0x43')]],'group':[_0x4b5a('0x2d')]})[_0x4b5a('0xd')](function(_0x236ca4){logger[_0x4b5a('0xe')](_0x4b5a('0x44'),_0x48b4c2);logger[_0x4b5a('0x1a')]('GetVoiceQueueHopperHistory',_0x48b4c2,JSON['stringify'](_0x236ca4));_0x42ee56(_0x236ca4);})['catch'](function(_0x5693bb){logger[_0x4b5a('0x10')](_0x4b5a('0x44'),_0x5693bb['message'],_0x48b4c2);_0x5ce35e(_0x17e612[_0x4b5a('0x10')](0x1f4,_0x5693bb[_0x4b5a('0x12')]));});});};exports['GetCampaignHopperHistory']=function(_0x368a25){var _0xa06bf7=this;return new Promise(function(_0x35f60e,_0x6f2f48){return db[_0x4b5a('0x1c')][_0x4b5a('0x2b')]({'raw':_0x368a25['options']?_0x368a25[_0x4b5a('0x18')][_0x4b5a('0x19')]===undefined?!![]:![]:!![],'where':_0x368a25[_0x4b5a('0x18')]?_0x368a25[_0x4b5a('0x18')][_0x4b5a('0x2c')]||null:null,'attributes':[[_0x4b5a('0x2d'),_0x4b5a('0x2e')],[db[_0x4b5a('0x1d')]['fn']('COUNT',db[_0x4b5a('0x1d')][_0x4b5a('0x1f')]('id')),_0x4b5a('0x45')],[db['sequelize']['fn']('COUNT',db[_0x4b5a('0x1d')]['fn']('IF',db[_0x4b5a('0x1d')][_0x4b5a('0x21')](_0x4b5a('0x22')))),'ivrAnswerCallsDay']],'group':[_0x4b5a('0x2d')]})[_0x4b5a('0xd')](function(_0x31e5dc){logger[_0x4b5a('0xe')](_0x4b5a('0x46'),_0x368a25);logger[_0x4b5a('0x1a')]('GetCampaignHopperHistory',_0x368a25,JSON[_0x4b5a('0x2a')](_0x31e5dc));_0x35f60e(_0x31e5dc);})[_0x4b5a('0x15')](function(_0x6f50ff){logger[_0x4b5a('0x10')](_0x4b5a('0x46'),_0x6f50ff['message'],_0x368a25);_0x6f2f48(_0xa06bf7[_0x4b5a('0x10')](0x1f4,_0x6f50ff['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6688=['multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperHistory.controller','get','index','isAuthenticated','describe','/:id','show','post','update','exports'];(function(_0x21aec3,_0x5c97e9){var _0x288bbc=function(_0x2283fe){while(--_0x2283fe){_0x21aec3['push'](_0x21aec3['shift']());}};_0x288bbc(++_0x5c97e9);}(_0x6688,0x10e));var _0x8668=function(_0x34fa25,_0x409353){_0x34fa25=_0x34fa25-0x0;var _0x5b62e0=_0x6688[_0x34fa25];return _0x5b62e0;};'use strict';var multer=require(_0x8668('0x0'));var util=require(_0x8668('0x1'));var path=require(_0x8668('0x2'));var timeout=require('connect-timeout');var express=require(_0x8668('0x3'));var router=express[_0x8668('0x4')]();var auth=require(_0x8668('0x5'));var interaction=require(_0x8668('0x6'));var config=require(_0x8668('0x7'));var controller=require(_0x8668('0x8'));router[_0x8668('0x9')]('/',auth['isAuthenticated'](),controller[_0x8668('0xa')]);router[_0x8668('0x9')]('/describe',auth[_0x8668('0xb')](),controller[_0x8668('0xc')]);router[_0x8668('0x9')](_0x8668('0xd'),auth[_0x8668('0xb')](),controller[_0x8668('0xe')]);router[_0x8668('0xf')]('/',auth[_0x8668('0xb')](),controller['create']);router['put']('/:id',auth['isAuthenticated'](),controller[_0x8668('0x10')]);module[_0x8668('0x11')]=router;
\ No newline at end of file
+var _0x8a8b=['express','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','create','put','update','exports','multer','connect-timeout'];(function(_0x52f65d,_0x278b1b){var _0x255f6a=function(_0x23ca88){while(--_0x23ca88){_0x52f65d['push'](_0x52f65d['shift']());}};_0x255f6a(++_0x278b1b);}(_0x8a8b,0xae));var _0xb8a8=function(_0x10a9af,_0x57740b){_0x10a9af=_0x10a9af-0x0;var _0x3bcdef=_0x8a8b[_0x10a9af];return _0x3bcdef;};'use strict';var multer=require(_0xb8a8('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xb8a8('0x1'));var express=require(_0xb8a8('0x2'));var router=express['Router']();var auth=require(_0xb8a8('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xb8a8('0x4'));var controller=require('./cmHopperHistory.controller');router[_0xb8a8('0x5')]('/',auth[_0xb8a8('0x6')](),controller[_0xb8a8('0x7')]);router['get'](_0xb8a8('0x8'),auth['isAuthenticated'](),controller[_0xb8a8('0x9')]);router['get'](_0xb8a8('0xa'),auth[_0xb8a8('0x6')](),controller[_0xb8a8('0xb')]);router['post']('/',auth[_0xb8a8('0x6')](),controller[_0xb8a8('0xc')]);router[_0xb8a8('0xd')](_0xb8a8('0xa'),auth[_0xb8a8('0x6')](),controller[_0xb8a8('0xe')]);module[_0xb8a8('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c5a=['exports','name','STRING','sequelize'];(function(_0xf166de,_0x335fa7){var _0x4434f7=function(_0x1c5121){while(--_0x1c5121){_0xf166de['push'](_0xf166de['shift']());}};_0x4434f7(++_0x335fa7);}(_0x9c5a,0x1c3));var _0xa9c5=function(_0x155103,_0x560ab9){_0x155103=_0x155103-0x0;var _0x102e50=_0x9c5a[_0x155103];return _0x102e50;};'use strict';var Sequelize=require(_0xa9c5('0x0'));module[_0xa9c5('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xa9c5('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xa9c5('0x3')]},'dialPrefix':{'type':Sequelize[_0xa9c5('0x3')]}};
\ No newline at end of file
+var _0xe14b=['sequelize','exports','STRING'];(function(_0x4ffd80,_0x1df61a){var _0x5cca73=function(_0x59f3dc){while(--_0x59f3dc){_0x4ffd80['push'](_0x4ffd80['shift']());}};_0x5cca73(++_0x1df61a);}(_0xe14b,0x93));var _0xbe14=function(_0x5edef8,_0x7af9a9){_0x5edef8=_0x5edef8-0x0;var _0x5438f6=_0xe14b[_0x5edef8];return _0x5438f6;};'use strict';var Sequelize=require(_0xbe14('0x0'));module[_0xbe14('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xbe14('0x2')]},'dialPrefix':{'type':Sequelize[_0xbe14('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf2d=['text','switch','BOOLEAN','defaultValue','sequelize','queryInterface','addColumn','cm_contacts','cf_%s','getCustomFields','findAndCountAll','addAgents','spread','userCmList:save','removeAgents','emit','userCmList:remove','getAgents','User','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','util','path','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/environment','defaults','redis','./cmList.socket','register','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','keys','query','dateStart','dateEnd','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','CmList','includeAll','include','findAll','params','find','catch','create','body','describe','ListId','Disposition','getDispositions','findOne','rawAttributes','removeDispositions','ids','addContacts','CmContact','tags','isArray','join','push','each','omit','success','dataValues','errors','Malformed\x20request\x20syntax','getContacts','concat','format','cf_%d','getContactsCsv','CustomFields','raw','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','text/csv','download','addCustomField','transaction','CmCustomField','addCustomFields','Sequelize','TEXT','type'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0xaf2d,0x99));var _0xdaf2=function(_0x4aab61,_0x399268){_0x4aab61=_0x4aab61-0x0;var _0x5c8edd=_0xaf2d[_0x4aab61];return _0x5c8edd;};'use strict';var pdf=require(_0xdaf2('0x0'));var emlformat=require(_0xdaf2('0x1'));var rimraf=require(_0xdaf2('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xdaf2('0x3'));var rp=require('request-promise');var moment=require(_0xdaf2('0x4'));var BPromise=require(_0xdaf2('0x5'));var Mustache=require('mustache');var util=require(_0xdaf2('0x6'));var path=require(_0xdaf2('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xdaf2('0x8'));var fs=require('fs');var _=require(_0xdaf2('0x9'));var squel=require(_0xdaf2('0xa'));var crypto=require(_0xdaf2('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xdaf2('0xc'));var toCsv=require(_0xdaf2('0xd'));var querystring=require(_0xdaf2('0xe'));var Papa=require(_0xdaf2('0xf'));var qs=require(_0xdaf2('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xdaf2('0x11'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xdaf2('0x12')](config[_0xdaf2('0x13')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(config[_0xdaf2('0x13')]);require(_0xdaf2('0x14'))[_0xdaf2('0x15')](socket);function respondWithStatusCode(_0x5bf972,_0x418ecd){_0x418ecd=_0x418ecd||0xcc;return function(_0x1dc282){if(_0x1dc282){return _0x5bf972[_0xdaf2('0x16')](_0x418ecd);}return _0x5bf972[_0xdaf2('0x17')](_0x418ecd)[_0xdaf2('0x18')]();};}function respondWithResult(_0x5766e2,_0x479ca6){_0x479ca6=_0x479ca6||0xc8;return function(_0x14ca21){if(_0x14ca21){return _0x5766e2['status'](_0x479ca6)[_0xdaf2('0x19')](_0x14ca21);}};}function respondWithFilteredResult(_0x295f4c,_0x50c2a1){return function(_0x5a8a8f){if(_0x5a8a8f){var _0x216bde=_0x5a8a8f[_0xdaf2('0x1a')],_0x5817ef=_0x50c2a1[_0xdaf2('0x1b')],_0x143e85=_0x50c2a1[_0xdaf2('0x1b')]+_0x50c2a1[_0xdaf2('0x1c')],_0xed8ba8;if(_0x143e85>=_0x216bde){_0x143e85=_0x216bde;_0xed8ba8=0xc8;}else{_0xed8ba8=0xce;}_0x295f4c[_0xdaf2('0x17')](_0xed8ba8);return _0x295f4c['set'](_0xdaf2('0x1d'),_0x5817ef+'-'+_0x143e85+'/'+_0x216bde)[_0xdaf2('0x19')](_0x5a8a8f);}return null;};}function patchUpdates(_0x33f86e){return function(_0x2e055b){try{jsonpatch[_0xdaf2('0x1e')](_0x2e055b,_0x33f86e,!![]);}catch(_0x5bacb2){return BPromise[_0xdaf2('0x1f')](_0x5bacb2);}return _0x2e055b[_0xdaf2('0x20')]();};}function saveUpdates(_0x1dfde7,_0x204244){return function(_0x1f8cbb){if(_0x1f8cbb){return _0x1f8cbb[_0xdaf2('0x21')](_0x1dfde7)['then'](function(_0x41acaa){return _0x41acaa;});}return null;};}function removeEntity(_0x5c9af6,_0x315d8b){return function(_0x384da4){if(_0x384da4){return _0x384da4[_0xdaf2('0x22')]()[_0xdaf2('0x23')](function(){_0x5c9af6[_0xdaf2('0x17')](0xcc)[_0xdaf2('0x18')]();});}};}function handleEntityNotFound(_0x1963a3,_0x2cbfae){return function(_0x252917){if(!_0x252917){_0x1963a3[_0xdaf2('0x16')](0x194);}return _0x252917;};}function handleError(_0x18fc71,_0x4f5078){_0x4f5078=_0x4f5078||0x1f4;return function(_0xb3dd4f){logger[_0xdaf2('0x24')](_0xb3dd4f[_0xdaf2('0x25')]);if(_0xb3dd4f[_0xdaf2('0x26')]){delete _0xb3dd4f[_0xdaf2('0x26')];}_0x18fc71[_0xdaf2('0x17')](_0x4f5078)[_0xdaf2('0x27')](_0xb3dd4f);};}exports['index']=function(_0x5234cf,_0x1c324b){var _0x17ca54={},_0x105bf6={},_0x15d434={'count':0x0,'rows':[]};var _0x525e65=db['CmList']['rawAttributes'];_0x105bf6['model']=_[_0xdaf2('0x28')](_0x525e65);var _0x26bc28={'dateStart':_0x5234cf[_0xdaf2('0x29')][_0xdaf2('0x2a')],'dateEnd':_0x5234cf[_0xdaf2('0x29')]['dateEnd']};delete _0x5234cf['query'][_0xdaf2('0x2a')];delete _0x5234cf[_0xdaf2('0x29')][_0xdaf2('0x2b')];_0x105bf6['query']=_['keys'](_0x5234cf[_0xdaf2('0x29')]);_0x105bf6[_0xdaf2('0x2c')]=_[_0xdaf2('0x2d')](_0x105bf6[_0xdaf2('0x2e')],_0x105bf6['query']);_0x17ca54['attributes']=_[_0xdaf2('0x2d')](_0x105bf6[_0xdaf2('0x2e')],qs['fields'](_0x5234cf[_0xdaf2('0x29')][_0xdaf2('0x2f')]));_0x17ca54[_0xdaf2('0x30')]=_0x17ca54['attributes'][_0xdaf2('0x31')]?_0x17ca54['attributes']:_0x105bf6['model'];if(!_0x5234cf['query'][_0xdaf2('0x32')](_0xdaf2('0x33'))){_0x17ca54['limit']=qs[_0xdaf2('0x1c')](_0x5234cf[_0xdaf2('0x29')][_0xdaf2('0x1c')]);_0x17ca54[_0xdaf2('0x1b')]=qs[_0xdaf2('0x1b')](_0x5234cf['query'][_0xdaf2('0x1b')]);}_0x17ca54[_0xdaf2('0x34')]=qs['sort'](_0x5234cf[_0xdaf2('0x29')][_0xdaf2('0x35')]);_0x17ca54[_0xdaf2('0x36')]=qs[_0xdaf2('0x2c')](_[_0xdaf2('0x37')](_0x5234cf['query'],_0x105bf6[_0xdaf2('0x2c')]));if(_0x26bc28[_0xdaf2('0x2a')]){if(_0x26bc28['dateEnd']){_0x26bc28[_0xdaf2('0x2b')]=moment(_0x26bc28[_0xdaf2('0x2b')])[_0xdaf2('0x38')](0x1,_0xdaf2('0x39'));}else{_0x26bc28[_0xdaf2('0x2b')]=moment(_0x26bc28['dateStart'])['add'](0x1,_0xdaf2('0x39'));}_[_0xdaf2('0x3a')](_0x17ca54[_0xdaf2('0x36')],{'createdAt':{'$gte':_0x26bc28[_0xdaf2('0x2a')],'$lte':_0x26bc28[_0xdaf2('0x2b')]}});}if(_0x5234cf['query'][_0xdaf2('0x3b')]){_0x17ca54['where']=_['merge'](_0x17ca54[_0xdaf2('0x36')],{'$or':_[_0xdaf2('0x3c')](_0x17ca54[_0xdaf2('0x30')],function(_0x3a11b4){var _0x3f7b46={};_0x3f7b46[_0x3a11b4]={'$like':'%'+_0x5234cf[_0xdaf2('0x29')][_0xdaf2('0x3b')]+'%'};return _0x3f7b46;})});}_0x17ca54=_[_0xdaf2('0x3a')]({},_0x17ca54,_0x5234cf[_0xdaf2('0x3d')]);var _0x300567={'where':_0x17ca54[_0xdaf2('0x36')]};return db[_0xdaf2('0x3e')][_0xdaf2('0x1a')](_0x300567)[_0xdaf2('0x23')](function(_0x504008){_0x15d434['count']=_0x504008;if(_0x5234cf['query'][_0xdaf2('0x3f')]){_0x17ca54[_0xdaf2('0x40')]=[{'all':!![]}];}return db['CmList'][_0xdaf2('0x41')](_0x17ca54);})['then'](function(_0x13bed0){_0x15d434['rows']=_0x13bed0;return _0x15d434;})[_0xdaf2('0x23')](respondWithFilteredResult(_0x1c324b,_0x17ca54))['catch'](handleError(_0x1c324b,null));};exports['show']=function(_0x5b5e0c,_0x3a202e){var _0x37457a={'raw':![],'where':{'id':_0x5b5e0c[_0xdaf2('0x42')]['id']}},_0x456441={};_0x456441['model']=_['keys'](db[_0xdaf2('0x3e')]['rawAttributes']);_0x456441[_0xdaf2('0x29')]=_['keys'](_0x5b5e0c['query']);_0x456441[_0xdaf2('0x2c')]=_['intersection'](_0x456441[_0xdaf2('0x2e')],_0x456441['query']);_0x37457a['attributes']=_['intersection'](_0x456441[_0xdaf2('0x2e')],qs[_0xdaf2('0x2f')](_0x5b5e0c[_0xdaf2('0x29')][_0xdaf2('0x2f')]));_0x37457a[_0xdaf2('0x30')]=_0x37457a[_0xdaf2('0x30')][_0xdaf2('0x31')]?_0x37457a[_0xdaf2('0x30')]:_0x456441[_0xdaf2('0x2e')];if(_0x5b5e0c[_0xdaf2('0x29')][_0xdaf2('0x3f')]){_0x37457a[_0xdaf2('0x40')]=[{'all':!![]}];}_0x37457a=_[_0xdaf2('0x3a')]({},_0x37457a,_0x5b5e0c[_0xdaf2('0x3d')]);return db[_0xdaf2('0x3e')][_0xdaf2('0x43')](_0x37457a)['then'](handleEntityNotFound(_0x3a202e,null))[_0xdaf2('0x23')](respondWithResult(_0x3a202e,null))[_0xdaf2('0x44')](handleError(_0x3a202e,null));};exports[_0xdaf2('0x45')]=function(_0x2c67fe,_0x3e0219){return db[_0xdaf2('0x3e')][_0xdaf2('0x45')](_0x2c67fe[_0xdaf2('0x46')],{})[_0xdaf2('0x23')](respondWithResult(_0x3e0219,0xc9))['catch'](handleError(_0x3e0219,null));};exports[_0xdaf2('0x21')]=function(_0x220968,_0xd2204c){if(_0x220968['body']['id']){delete _0x220968[_0xdaf2('0x46')]['id'];}return db[_0xdaf2('0x3e')][_0xdaf2('0x43')]({'where':{'id':_0x220968[_0xdaf2('0x42')]['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0xd2204c,null))[_0xdaf2('0x23')](saveUpdates(_0x220968[_0xdaf2('0x46')],null))[_0xdaf2('0x23')](respondWithResult(_0xd2204c,null))[_0xdaf2('0x44')](handleError(_0xd2204c,null));};exports[_0xdaf2('0x22')]=function(_0x4830bc,_0x50c776){return db['CmList'][_0xdaf2('0x43')]({'where':{'id':_0x4830bc['params']['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0x50c776,null))['then'](removeEntity(_0x50c776,null))[_0xdaf2('0x44')](handleError(_0x50c776,null));};exports[_0xdaf2('0x47')]=function(_0x59d6cb,_0x4147fa){return db[_0xdaf2('0x3e')][_0xdaf2('0x47')]()[_0xdaf2('0x23')](respondWithResult(_0x4147fa,null))[_0xdaf2('0x44')](handleError(_0x4147fa,null));};exports['addDisposition']=function(_0x5c213f,_0x4599ba,_0x2df71e){if(_0x5c213f[_0xdaf2('0x46')]['id']){delete _0x5c213f[_0xdaf2('0x46')]['id'];}return db[_0xdaf2('0x3e')][_0xdaf2('0x43')]({'where':{'id':_0x5c213f[_0xdaf2('0x42')]['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0x4599ba,null))['then'](function(_0x174016){if(_0x174016){_0x5c213f['body'][_0xdaf2('0x48')]=_0x174016['id'];return db[_0xdaf2('0x49')][_0xdaf2('0x45')](_0x5c213f[_0xdaf2('0x46')]);}})[_0xdaf2('0x23')](respondWithResult(_0x4599ba,null))['catch'](handleError(_0x4599ba,null));};exports[_0xdaf2('0x4a')]=function(_0x58eadf,_0x5a4d80,_0x139967){var _0x89f408={'raw':![],'where':{}};var _0x520ea7={};var _0x55deda={'count':0x0,'rows':[]};return db[_0xdaf2('0x3e')][_0xdaf2('0x4b')]({'where':{'id':_0x58eadf[_0xdaf2('0x42')]['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0x5a4d80,null))[_0xdaf2('0x23')](function(_0x58efc6){if(_0x58efc6){_0x520ea7[_0xdaf2('0x2e')]=_['keys'](db[_0xdaf2('0x49')][_0xdaf2('0x4c')]);_0x520ea7[_0xdaf2('0x29')]=_[_0xdaf2('0x28')](_0x58eadf[_0xdaf2('0x29')]);_0x520ea7[_0xdaf2('0x2c')]=_[_0xdaf2('0x2d')](_0x520ea7[_0xdaf2('0x2e')],_0x520ea7['query']);_0x89f408[_0xdaf2('0x30')]=_['intersection'](_0x520ea7[_0xdaf2('0x2e')],qs[_0xdaf2('0x2f')](_0x58eadf[_0xdaf2('0x29')]['fields']));_0x89f408[_0xdaf2('0x30')]=_0x89f408[_0xdaf2('0x30')][_0xdaf2('0x31')]?_0x89f408[_0xdaf2('0x30')]:_0x520ea7[_0xdaf2('0x2e')];if(!_0x58eadf[_0xdaf2('0x29')]['hasOwnProperty'](_0xdaf2('0x33'))){_0x89f408[_0xdaf2('0x1c')]=qs[_0xdaf2('0x1c')](_0x58eadf[_0xdaf2('0x29')]['limit']);_0x89f408[_0xdaf2('0x1b')]=qs[_0xdaf2('0x1b')](_0x58eadf[_0xdaf2('0x29')][_0xdaf2('0x1b')]);}_0x89f408[_0xdaf2('0x34')]=qs['sort'](_0x58eadf[_0xdaf2('0x29')][_0xdaf2('0x35')]);_0x89f408['where']=qs['filters'](_[_0xdaf2('0x37')](_0x58eadf[_0xdaf2('0x29')],_0x520ea7[_0xdaf2('0x2c')]));_0x89f408[_0xdaf2('0x36')][_0xdaf2('0x48')]=_0x58efc6['id'];if(_0x58eadf[_0xdaf2('0x29')]['filter']){_0x89f408[_0xdaf2('0x36')]=_[_0xdaf2('0x3a')](_0x89f408[_0xdaf2('0x36')],{'$or':_[_0xdaf2('0x3c')](_0x89f408['attributes'],function(_0x563c84){var _0x31126c={};_0x31126c[_0x563c84]={'$like':'%'+_0x58eadf['query'][_0xdaf2('0x3b')]+'%'};return _0x31126c;})});}_0x89f408=_[_0xdaf2('0x3a')]({},_0x89f408,_0x58eadf[_0xdaf2('0x3d')]);return db['Disposition']['count']({'where':_0x89f408[_0xdaf2('0x36')]})['then'](function(_0x35cd2e){_0x55deda[_0xdaf2('0x1a')]=_0x35cd2e;if(_0x58eadf[_0xdaf2('0x29')][_0xdaf2('0x3f')]){_0x89f408[_0xdaf2('0x40')]=[{'all':!![]}];}return db[_0xdaf2('0x49')][_0xdaf2('0x41')](_0x89f408);})[_0xdaf2('0x23')](function(_0x439dac){_0x55deda['rows']=_0x439dac;return _0x55deda;});}})[_0xdaf2('0x23')](respondWithFilteredResult(_0x5a4d80,_0x89f408))[_0xdaf2('0x44')](handleError(_0x5a4d80,null));};exports[_0xdaf2('0x4d')]=function(_0x32a3d3,_0x1fa399,_0x2ec23f){var _0x13680b;return db['CmList'][_0xdaf2('0x43')]({'where':{'id':_0x32a3d3['params']['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0x1fa399,null))[_0xdaf2('0x23')](function(_0x4b2112){if(_0x4b2112){return _0x4b2112[_0xdaf2('0x4d')](_0x32a3d3[_0xdaf2('0x29')][_0xdaf2('0x4e')]);}})['then'](respondWithStatusCode(_0x1fa399,null))[_0xdaf2('0x44')](handleError(_0x1fa399,null));};exports[_0xdaf2('0x4f')]=function(_0x5226d8,_0x2bf134,_0x2afc2f){return db[_0xdaf2('0x3e')][_0xdaf2('0x43')]({'where':{'id':_0x5226d8[_0xdaf2('0x42')]['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0x2bf134,null))['then'](function(_0x21c987){if(_0x21c987){var _0x136baa=[];var _0xd52a29={'success':[],'errors':[]};return db[_0xdaf2('0x50')][_0xdaf2('0x47')]()[_0xdaf2('0x23')](function(_0x48c164){if(_0x5226d8[_0xdaf2('0x46')][_0xdaf2('0x51')]&&_[_0xdaf2('0x52')](_0x5226d8[_0xdaf2('0x46')][_0xdaf2('0x51')])){if(_0x5226d8[_0xdaf2('0x46')][_0xdaf2('0x51')][_0xdaf2('0x31')]){_0x5226d8['body'][_0xdaf2('0x51')]=_0x5226d8[_0xdaf2('0x46')][_0xdaf2('0x51')][_0xdaf2('0x53')](';')+';';}else{_0x5226d8[_0xdaf2('0x46')][_0xdaf2('0x51')]=null;}}else{_0x5226d8[_0xdaf2('0x46')][_0xdaf2('0x51')]=null;}if(_0x5226d8[_0xdaf2('0x46')]&&_[_0xdaf2('0x52')](_0x5226d8[_0xdaf2('0x46')])){for(var _0x24617a=0x0;_0x24617a<_0x5226d8['body'][_0xdaf2('0x31')];_0x24617a+=0x1){_0x5226d8['body'][_0x24617a][_0xdaf2('0x48')]=_0x5226d8[_0xdaf2('0x42')]['id'];_0x136baa[_0xdaf2('0x54')](_0x5226d8[_0xdaf2('0x46')][_0x24617a]);}return BPromise[_0xdaf2('0x55')](_0x136baa,function(_0xceeacf){return db[_0xdaf2('0x50')]['create'](_[_0xdaf2('0x56')](_0xceeacf,['ids','id'])||{},{'fields':_[_0xdaf2('0x28')](_0x48c164),'raw':!![]})[_0xdaf2('0x23')](function(_0x9cdc0){_0xd52a29[_0xdaf2('0x57')][_0xdaf2('0x54')](_0x9cdc0[_0xdaf2('0x58')]);})['catch'](function(_0x5f44ec){_0xd52a29[_0xdaf2('0x59')][_0xdaf2('0x54')]({'data':_0xceeacf,'error':_0x5f44ec['message']});});})[_0xdaf2('0x23')](function(_0x270046){return _0xd52a29;})['catch'](function(_0x445cdc){return _0x445cdc;});}else{_0x2bf134[_0xdaf2('0x17')](0x190)[_0xdaf2('0x19')]({'message':_0xdaf2('0x5a')});}});}})[_0xdaf2('0x23')](respondWithResult(_0x2bf134,null))['catch'](handleError(_0x2bf134,null));};exports[_0xdaf2('0x5b')]=function(_0x5216c1,_0xc464ea,_0x100755){var _0x1dcf61;return db['CmList'][_0xdaf2('0x43')]({'where':{'id':_0x5216c1[_0xdaf2('0x42')]['id']},'include':[{'model':db['CmCustomField'],'as':'CustomFields'}]})[_0xdaf2('0x23')](handleEntityNotFound(_0xc464ea,null))[_0xdaf2('0x23')](function(_0x470243){if(_0x470243){_0x1dcf61=_0x470243;return db[_0xdaf2('0x50')][_0xdaf2('0x4c')];}})[_0xdaf2('0x23')](function(_0x11e89f){if(_0x11e89f){var _0x34e2d4={};var _0x40e444={};_0x40e444[_0xdaf2('0x2e')]=_[_0xdaf2('0x5c')](_[_0xdaf2('0x28')](_0x11e89f),_[_0xdaf2('0x3c')](_0x1dcf61['CustomFields'],function(_0x3913a6){return util[_0xdaf2('0x5d')](_0xdaf2('0x5e'),_0x3913a6['id']);}));_0x40e444[_0xdaf2('0x29')]=_['keys'](_0x5216c1['query']);_0x40e444['filters']=_[_0xdaf2('0x2d')](_0x40e444[_0xdaf2('0x2e')],_0x40e444[_0xdaf2('0x29')]);_0x34e2d4[_0xdaf2('0x30')]=_[_0xdaf2('0x2d')](_0x40e444[_0xdaf2('0x2e')],qs[_0xdaf2('0x2f')](_0x5216c1[_0xdaf2('0x29')][_0xdaf2('0x2f')]));_0x34e2d4['attributes']=_0x34e2d4[_0xdaf2('0x30')][_0xdaf2('0x31')]?_0x34e2d4[_0xdaf2('0x30')]:_0x40e444['model'];if(!_0x5216c1[_0xdaf2('0x29')][_0xdaf2('0x32')](_0xdaf2('0x33'))){_0x34e2d4[_0xdaf2('0x1c')]=qs[_0xdaf2('0x1c')](_0x5216c1[_0xdaf2('0x29')][_0xdaf2('0x1c')]);_0x34e2d4[_0xdaf2('0x1b')]=qs[_0xdaf2('0x1b')](_0x5216c1[_0xdaf2('0x29')][_0xdaf2('0x1b')]);}_0x34e2d4[_0xdaf2('0x34')]=qs[_0xdaf2('0x35')](_0x5216c1[_0xdaf2('0x29')][_0xdaf2('0x35')]);_0x34e2d4[_0xdaf2('0x36')]=qs[_0xdaf2('0x2c')](_[_0xdaf2('0x37')](_0x5216c1['query'],_0x40e444[_0xdaf2('0x2c')]));_0x34e2d4['raw']=!![];if(_0x5216c1['query'][_0xdaf2('0x3b')]){_0x34e2d4['where']=_[_0xdaf2('0x3a')](_0x34e2d4['where'],{'$or':_[_0xdaf2('0x3c')](_0x34e2d4[_0xdaf2('0x30')],function(_0x579f3c){var _0x1f7cc2={};_0x1f7cc2[_0x579f3c]={'$like':'%'+_0x5216c1['query']['filter']+'%'};return _0x1f7cc2;})});}_0x34e2d4=_[_0xdaf2('0x3a')]({},_0x34e2d4,_0x5216c1[_0xdaf2('0x3d')]);return _0x1dcf61[_0xdaf2('0x5b')](_0x34e2d4);}})[_0xdaf2('0x23')](respondWithResult(_0xc464ea,null))[_0xdaf2('0x44')](handleError(_0xc464ea,null));};exports[_0xdaf2('0x5f')]=function(_0x44f9f7,_0x22f112,_0x1254b5){var _0xa8932b;return db['CmList'][_0xdaf2('0x43')]({'where':{'id':_0x44f9f7[_0xdaf2('0x42')]['id']},'include':[{'model':db['CmCustomField'],'as':'CustomFields'}]})[_0xdaf2('0x23')](handleEntityNotFound(_0x22f112,null))[_0xdaf2('0x23')](function(_0x37563c){if(_0x37563c){_0xa8932b=_0x37563c;return db[_0xdaf2('0x50')][_0xdaf2('0x4c')];}})[_0xdaf2('0x23')](function(_0x3fc497){if(_0x3fc497){var _0x3a3969={};var _0x27674f={};_0x27674f[_0xdaf2('0x2e')]=_[_0xdaf2('0x5c')](_[_0xdaf2('0x28')](_0x3fc497),_[_0xdaf2('0x3c')](_0xa8932b[_0xdaf2('0x60')],function(_0x4bb505){return util[_0xdaf2('0x5d')]('cf_%d',_0x4bb505['id']);}));_0x27674f[_0xdaf2('0x29')]=_[_0xdaf2('0x28')](_0x44f9f7[_0xdaf2('0x29')]);_0x27674f[_0xdaf2('0x2c')]=_[_0xdaf2('0x2d')](_0x27674f[_0xdaf2('0x2e')],_0x27674f[_0xdaf2('0x29')]);_0x3a3969['attributes']=_[_0xdaf2('0x2d')](_0x27674f[_0xdaf2('0x2e')],qs[_0xdaf2('0x2f')](_0x44f9f7[_0xdaf2('0x29')][_0xdaf2('0x2f')]));_0x3a3969['attributes']=_0x3a3969['attributes'][_0xdaf2('0x31')]?_0x3a3969[_0xdaf2('0x30')]:_0x27674f[_0xdaf2('0x2e')];if(!_0x44f9f7['query'][_0xdaf2('0x32')]('nolimit')){_0x3a3969['limit']=qs[_0xdaf2('0x1c')](_0x44f9f7[_0xdaf2('0x29')][_0xdaf2('0x1c')]);_0x3a3969['offset']=qs[_0xdaf2('0x1b')](_0x44f9f7['query'][_0xdaf2('0x1b')]);}_0x3a3969[_0xdaf2('0x34')]=qs[_0xdaf2('0x35')](_0x44f9f7['query'][_0xdaf2('0x35')]);_0x3a3969[_0xdaf2('0x36')]=qs[_0xdaf2('0x2c')](_[_0xdaf2('0x37')](_0x44f9f7['query'],_0x27674f[_0xdaf2('0x2c')]));_0x3a3969[_0xdaf2('0x61')]=!![];if(_0x44f9f7[_0xdaf2('0x29')][_0xdaf2('0x3b')]){_0x3a3969[_0xdaf2('0x36')]=_['merge'](_0x3a3969[_0xdaf2('0x36')],{'$or':_[_0xdaf2('0x3c')](_0x3a3969[_0xdaf2('0x30')],function(_0x386add){var _0x548632={};_0x548632[_0x386add]={'$like':'%'+_0x44f9f7[_0xdaf2('0x29')][_0xdaf2('0x3b')]+'%'};return _0x548632;})});}_0x3a3969=_[_0xdaf2('0x3a')]({},_0x3a3969,_0x44f9f7['options']);return _0xa8932b[_0xdaf2('0x5b')](_0x3a3969);}})[_0xdaf2('0x23')](function(_0x9971e8){if(!_[_0xdaf2('0x62')](_0x9971e8)){var _0x5db13a=toCsv(_0x9971e8);var _0x348020=Date[_0xdaf2('0x63')]();fs[_0xdaf2('0x64')](util[_0xdaf2('0x5d')](_0xdaf2('0x65'),_0xa8932b['id'],_0x348020),_0x5db13a);_0x22f112[_0xdaf2('0x66')](_0xdaf2('0x67'),_0xdaf2('0x68')+util['format'](_0xdaf2('0x69'),_0xa8932b['id'],_0x348020));_0x22f112[_0xdaf2('0x66')]('Content-type',_0xdaf2('0x6a'));return _0x22f112[_0xdaf2('0x6b')](util[_0xdaf2('0x5d')]('/tmp/list_%d_%s.csv',_0xa8932b['id'],_0x348020));}else{return _0x22f112[_0xdaf2('0x16')](0xcc);}})[_0xdaf2('0x44')](handleError(_0x22f112,null));};exports[_0xdaf2('0x6c')]=function(_0x2a8c8f,_0x49438b,_0x128cdf){var _0x4db5fa;delete _0x2a8c8f['body']['id'];return db[_0xdaf2('0x3e')][_0xdaf2('0x4b')]({'where':{'id':_0x2a8c8f['params']['id']}})['then'](handleEntityNotFound(_0x49438b,null))[_0xdaf2('0x23')](function(_0x1cff2e){if(_0x1cff2e){return db['sequelize'][_0xdaf2('0x6d')](function(_0x167c89){return db[_0xdaf2('0x6e')]['create'](_0x2a8c8f[_0xdaf2('0x46')],{'transaction':_0x167c89})['then'](function(_0x3bd682){_0x4db5fa=_0x3bd682;return _0x1cff2e[_0xdaf2('0x6f')](_0x3bd682,{'transaction':_0x167c89});})['then'](function(){var _0x528ca7={'type':db[_0xdaf2('0x70')][_0xdaf2('0x71')],'transaction':_0x167c89};switch(_0x2a8c8f[_0xdaf2('0x46')][_0xdaf2('0x72')]){case _0xdaf2('0x73'):_0x528ca7[_0xdaf2('0x72')]=db[_0xdaf2('0x70')]['TEXT'];break;case'number':_0x528ca7[_0xdaf2('0x72')]=db[_0xdaf2('0x70')]['INTEGER'];break;case _0xdaf2('0x74'):_0x528ca7[_0xdaf2('0x72')]=db['Sequelize'][_0xdaf2('0x75')];_0x528ca7[_0xdaf2('0x76')]=![];break;default:}return db[_0xdaf2('0x77')][_0xdaf2('0x78')][_0xdaf2('0x79')](_0xdaf2('0x7a'),util['format'](_0xdaf2('0x7b'),_0x4db5fa['id']),_0x528ca7);})[_0xdaf2('0x23')](function(){return _0x4db5fa;});});}})[_0xdaf2('0x23')](respondWithResult(_0x49438b,null))[_0xdaf2('0x44')](handleError(_0x49438b,null));};exports[_0xdaf2('0x7c')]=function(_0x306eb8,_0x5abc6b,_0x170063){var _0x461151={};var _0x596a08={};var _0x3675d7;var _0x557246;return db[_0xdaf2('0x3e')]['findOne']({'where':{'id':_0x306eb8[_0xdaf2('0x42')]['id']}})['then'](handleEntityNotFound(_0x5abc6b,null))['then'](function(_0x21b0e6){if(_0x21b0e6){_0x3675d7=_0x21b0e6;_0x596a08[_0xdaf2('0x2e')]=_[_0xdaf2('0x28')](db[_0xdaf2('0x6e')]['rawAttributes']);_0x596a08[_0xdaf2('0x29')]=_[_0xdaf2('0x28')](_0x306eb8['query']);_0x596a08['filters']=_[_0xdaf2('0x2d')](_0x596a08[_0xdaf2('0x2e')],_0x596a08[_0xdaf2('0x29')]);_0x461151[_0xdaf2('0x30')]=_[_0xdaf2('0x2d')](_0x596a08[_0xdaf2('0x2e')],qs[_0xdaf2('0x2f')](_0x306eb8['query'][_0xdaf2('0x2f')]));_0x461151[_0xdaf2('0x30')]=_0x461151[_0xdaf2('0x30')][_0xdaf2('0x31')]?_0x461151[_0xdaf2('0x30')]:_0x596a08['model'];_0x461151['order']=qs[_0xdaf2('0x35')](_0x306eb8['query']['sort']);_0x461151[_0xdaf2('0x36')]=qs[_0xdaf2('0x2c')](_['pick'](_0x306eb8[_0xdaf2('0x29')],_0x596a08[_0xdaf2('0x2c')]));_0x461151['where']=_[_0xdaf2('0x3a')](_0x461151[_0xdaf2('0x36')],{'$or':[{'ListId':_0x21b0e6['id']},{'ListId':null}]});if(_0x306eb8['query'][_0xdaf2('0x3b')]){_0x461151[_0xdaf2('0x36')]=_['merge'](_0x461151[_0xdaf2('0x36')],{'$or':_['map'](_0x461151['attributes'],function(_0x2c3b47){var _0x5227cf={};_0x5227cf[_0x2c3b47]={'$like':'%'+_0x306eb8[_0xdaf2('0x29')][_0xdaf2('0x3b')]+'%'};return _0x5227cf;})});}_0x461151=_[_0xdaf2('0x3a')]({},_0x461151,_0x306eb8[_0xdaf2('0x3d')]);return db[_0xdaf2('0x6e')][_0xdaf2('0x7d')](_0x461151);}})[_0xdaf2('0x23')](respondWithResult(_0x5abc6b,null))['catch'](handleError(_0x5abc6b,null));};exports['addAgents']=function(_0x120095,_0xc3ba20,_0x7ef8f){return db[_0xdaf2('0x3e')]['find']({'where':{'id':_0x120095['params']['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0xc3ba20,null))['then'](function(_0x20aa66){if(_0x20aa66){return _0x20aa66[_0xdaf2('0x7e')](_0x120095['body'][_0xdaf2('0x4e')],_['omit'](_0x120095[_0xdaf2('0x46')],['ids','id'])||{})[_0xdaf2('0x7f')](function(_0x12000d){for(var _0x3bb071=0x0;_0x3bb071<_0x120095[_0xdaf2('0x46')]['ids'][_0xdaf2('0x31')];_0x3bb071+=0x1){socket['emit'](_0xdaf2('0x80'),{'UserId':_0x120095['body']['ids'][_0x3bb071],'CmListId':_0x120095[_0xdaf2('0x42')]['id']});}return _0x12000d;});}})[_0xdaf2('0x23')](respondWithResult(_0xc3ba20,null))[_0xdaf2('0x44')](handleError(_0xc3ba20,null));};exports[_0xdaf2('0x81')]=function(_0x1e8765,_0x481c63,_0x155dac){var _0x2fde7f;return db[_0xdaf2('0x3e')][_0xdaf2('0x43')]({'where':{'id':_0x1e8765['params']['id']}})['then'](handleEntityNotFound(_0x481c63,null))[_0xdaf2('0x23')](function(_0x4b1619){if(_0x4b1619){return _0x4b1619[_0xdaf2('0x81')](_0x1e8765[_0xdaf2('0x29')][_0xdaf2('0x4e')])[_0xdaf2('0x23')](function(_0x2f7756){if(_[_0xdaf2('0x52')](_0x1e8765['query'][_0xdaf2('0x4e')])){for(var _0x26cee1=0x0;_0x26cee1<_0x1e8765[_0xdaf2('0x29')][_0xdaf2('0x4e')][_0xdaf2('0x31')];_0x26cee1+=0x1){socket['emit']('userCmList:remove',{'UserId':_0x1e8765[_0xdaf2('0x29')]['ids'][_0x26cee1],'CmListId':_0x1e8765[_0xdaf2('0x42')]['id']});}}else{socket[_0xdaf2('0x82')](_0xdaf2('0x83'),{'UserId':_0x1e8765[_0xdaf2('0x29')][_0xdaf2('0x4e')],'CmListId':_0x1e8765[_0xdaf2('0x42')]['id']});}});}})[_0xdaf2('0x23')](respondWithStatusCode(_0x481c63,null))[_0xdaf2('0x44')](handleError(_0x481c63,null));};exports[_0xdaf2('0x84')]=function(_0x139dad,_0x1e88d5,_0x4a0230){var _0x44ae3d={};var _0x4b8f6f={};var _0x56ee17;var _0x1cb95f;return db[_0xdaf2('0x3e')][_0xdaf2('0x4b')]({'where':{'id':_0x139dad[_0xdaf2('0x42')]['id']}})[_0xdaf2('0x23')](handleEntityNotFound(_0x1e88d5,null))[_0xdaf2('0x23')](function(_0x1f1ea6){if(_0x1f1ea6){_0x56ee17=_0x1f1ea6;_0x4b8f6f[_0xdaf2('0x2e')]=_[_0xdaf2('0x28')](db[_0xdaf2('0x85')][_0xdaf2('0x4c')]);_0x4b8f6f[_0xdaf2('0x29')]=_[_0xdaf2('0x28')](_0x139dad[_0xdaf2('0x29')]);_0x4b8f6f[_0xdaf2('0x2c')]=_[_0xdaf2('0x2d')](_0x4b8f6f[_0xdaf2('0x2e')],_0x4b8f6f[_0xdaf2('0x29')]);_0x44ae3d[_0xdaf2('0x30')]=_[_0xdaf2('0x2d')](_0x4b8f6f['model'],qs[_0xdaf2('0x2f')](_0x139dad['query'][_0xdaf2('0x2f')]));_0x44ae3d['attributes']=_0x44ae3d['attributes'][_0xdaf2('0x31')]?_0x44ae3d[_0xdaf2('0x30')]:_0x4b8f6f[_0xdaf2('0x2e')];_0x44ae3d[_0xdaf2('0x34')]=qs[_0xdaf2('0x35')](_0x139dad[_0xdaf2('0x29')][_0xdaf2('0x35')]);_0x44ae3d['where']=qs['filters'](_[_0xdaf2('0x37')](_0x139dad[_0xdaf2('0x29')],_0x4b8f6f['filters']));if(_0x139dad['query'][_0xdaf2('0x3b')]){_0x44ae3d[_0xdaf2('0x36')]=_[_0xdaf2('0x3a')](_0x44ae3d[_0xdaf2('0x36')],{'$or':_[_0xdaf2('0x3c')](_0x44ae3d[_0xdaf2('0x30')],function(_0x591aec){var _0x1608eb={};_0x1608eb[_0x591aec]={'$like':'%'+_0x139dad[_0xdaf2('0x29')][_0xdaf2('0x3b')]+'%'};return _0x1608eb;})});}_0x44ae3d=_[_0xdaf2('0x3a')]({},_0x44ae3d,_0x139dad['options']);return _0x56ee17[_0xdaf2('0x84')](_0x44ae3d);}})[_0xdaf2('0x23')](function(_0x831860){if(_0x831860){_0x1cb95f=_0x831860[_0xdaf2('0x31')];if(!_0x139dad[_0xdaf2('0x29')][_0xdaf2('0x32')](_0xdaf2('0x33'))){_0x44ae3d['limit']=qs[_0xdaf2('0x1c')](_0x139dad[_0xdaf2('0x29')][_0xdaf2('0x1c')]);_0x44ae3d['offset']=qs['offset'](_0x139dad[_0xdaf2('0x29')][_0xdaf2('0x1b')]);}return _0x56ee17['getAgents'](_0x44ae3d);}})[_0xdaf2('0x23')](function(_0x2a42aa){if(_0x2a42aa){return _0x2a42aa?{'count':_0x1cb95f,'rows':_0x2a42aa}:null;}})[_0xdaf2('0x23')](respondWithResult(_0x1e88d5,null))[_0xdaf2('0x44')](handleError(_0x1e88d5,null));};
\ No newline at end of file
+var _0xe33b=['describe','addDisposition','ListId','getDispositions','findOne','Disposition','options','removeDispositions','ids','addContacts','CmContact','tags','isArray','each','omit','dataValues','errors','push','message','Malformed\x20request\x20syntax','getContacts','CmCustomField','concat','cf_%d','raw','getContactsCsv','CustomFields','format','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','attachment;\x20filename=','list_%d_%s.csv','Content-type','text/csv','addCustomField','sequelize','transaction','addCustomFields','TEXT','type','text','number','INTEGER','Sequelize','defaultValue','cf_%s','getCustomFields','addAgents','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','User','html-pdf','zip-dir','fast-json-patch','request-promise','mustache','path','sox','to-csv','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./cmList.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','CmList','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','add','day','merge','where','map','filter','includeAll','include','findAll','rows','catch','show','params','length','create','body','find'];(function(_0x52c4e4,_0x4978e3){var _0x4d154e=function(_0x461e20){while(--_0x461e20){_0x52c4e4['push'](_0x52c4e4['shift']());}};_0x4d154e(++_0x4978e3);}(_0xe33b,0x13d));var _0xbe33=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xe33b[_0x167cc1];return _0x10bc4b;};'use strict';var pdf=require(_0xbe33('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xbe33('0x1'));var jsonpatch=require(_0xbe33('0x2'));var rp=require(_0xbe33('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbe33('0x4'));var util=require('util');var path=require(_0xbe33('0x5'));var sox=require(_0xbe33('0x6'));var csv=require(_0xbe33('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xbe33('0x8'));var crypto=require('crypto');var jsforce=require(_0xbe33('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xbe33('0x7'));var querystring=require(_0xbe33('0xa'));var Papa=require(_0xbe33('0xb'));var Redis=require(_0xbe33('0xc'));var qs=require(_0xbe33('0xd'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xbe33('0xe'));var db=require(_0xbe33('0xf'))['db'];config[_0xbe33('0x10')]=_[_0xbe33('0x11')](config[_0xbe33('0x10')],{'host':_0xbe33('0x12'),'port':0x18eb});var socket=require(_0xbe33('0x13'))(new Redis(config['redis']));require(_0xbe33('0x14'))[_0xbe33('0x15')](socket);function respondWithStatusCode(_0x2bdf0d,_0x38a021){_0x38a021=_0x38a021||0xcc;return function(_0x191c98){if(_0x191c98){return _0x2bdf0d[_0xbe33('0x16')](_0x38a021);}return _0x2bdf0d[_0xbe33('0x17')](_0x38a021)[_0xbe33('0x18')]();};}function respondWithResult(_0x232edf,_0x53898c){_0x53898c=_0x53898c||0xc8;return function(_0x43a609){if(_0x43a609){return _0x232edf['status'](_0x53898c)[_0xbe33('0x19')](_0x43a609);}};}function respondWithFilteredResult(_0x548521,_0x3fdab3){return function(_0x3e3ae7){if(_0x3e3ae7){var _0x4703e4=_0x3e3ae7[_0xbe33('0x1a')],_0xee5b24=_0x3fdab3['offset'],_0x15bfd0=_0x3fdab3[_0xbe33('0x1b')]+_0x3fdab3[_0xbe33('0x1c')],_0x5e4ae7;if(_0x15bfd0>=_0x4703e4){_0x15bfd0=_0x4703e4;_0x5e4ae7=0xc8;}else{_0x5e4ae7=0xce;}_0x548521[_0xbe33('0x17')](_0x5e4ae7);return _0x548521[_0xbe33('0x1d')](_0xbe33('0x1e'),_0xee5b24+'-'+_0x15bfd0+'/'+_0x4703e4)[_0xbe33('0x19')](_0x3e3ae7);}return null;};}function patchUpdates(_0x3ef760){return function(_0x11c438){try{jsonpatch[_0xbe33('0x1f')](_0x11c438,_0x3ef760,!![]);}catch(_0x4e1ca7){return BPromise['reject'](_0x4e1ca7);}return _0x11c438[_0xbe33('0x20')]();};}function saveUpdates(_0x1e8c93,_0x531fe1){return function(_0x1abb7b){if(_0x1abb7b){return _0x1abb7b[_0xbe33('0x21')](_0x1e8c93)[_0xbe33('0x22')](function(_0x1c4c9e){return _0x1c4c9e;});}return null;};}function removeEntity(_0x32bdc3,_0x36283b){return function(_0x2f2708){if(_0x2f2708){return _0x2f2708[_0xbe33('0x23')]()[_0xbe33('0x22')](function(){_0x32bdc3[_0xbe33('0x17')](0xcc)[_0xbe33('0x18')]();});}};}function handleEntityNotFound(_0x493ae2,_0x45490a){return function(_0x5ebb91){if(!_0x5ebb91){_0x493ae2[_0xbe33('0x16')](0x194);}return _0x5ebb91;};}function handleError(_0x3b189c,_0x11018c){_0x11018c=_0x11018c||0x1f4;return function(_0x3b1a02){logger['error'](_0x3b1a02[_0xbe33('0x24')]);if(_0x3b1a02[_0xbe33('0x25')]){delete _0x3b1a02[_0xbe33('0x25')];}_0x3b189c['status'](_0x11018c)[_0xbe33('0x26')](_0x3b1a02);};}exports[_0xbe33('0x27')]=function(_0x27bc1e,_0x167186){var _0x4e1459={},_0x1c8ea7={},_0x3be9a7={'count':0x0,'rows':[]};var _0x2654fc=db[_0xbe33('0x28')][_0xbe33('0x29')];_0x1c8ea7[_0xbe33('0x2a')]=_[_0xbe33('0x2b')](_0x2654fc);var _0x52119c={'dateStart':_0x27bc1e[_0xbe33('0x2c')][_0xbe33('0x2d')],'dateEnd':_0x27bc1e['query'][_0xbe33('0x2e')]};delete _0x27bc1e[_0xbe33('0x2c')]['dateStart'];delete _0x27bc1e[_0xbe33('0x2c')][_0xbe33('0x2e')];_0x1c8ea7[_0xbe33('0x2c')]=_['keys'](_0x27bc1e[_0xbe33('0x2c')]);_0x1c8ea7[_0xbe33('0x2f')]=_[_0xbe33('0x30')](_0x1c8ea7[_0xbe33('0x2a')],_0x1c8ea7['query']);_0x4e1459[_0xbe33('0x31')]=_[_0xbe33('0x30')](_0x1c8ea7[_0xbe33('0x2a')],qs['fields'](_0x27bc1e[_0xbe33('0x2c')][_0xbe33('0x32')]));_0x4e1459['attributes']=_0x4e1459['attributes']['length']?_0x4e1459[_0xbe33('0x31')]:_0x1c8ea7[_0xbe33('0x2a')];if(!_0x27bc1e[_0xbe33('0x2c')][_0xbe33('0x33')](_0xbe33('0x34'))){_0x4e1459['limit']=qs[_0xbe33('0x1c')](_0x27bc1e[_0xbe33('0x2c')]['limit']);_0x4e1459[_0xbe33('0x1b')]=qs['offset'](_0x27bc1e['query']['offset']);}_0x4e1459[_0xbe33('0x35')]=qs[_0xbe33('0x36')](_0x27bc1e['query'][_0xbe33('0x36')]);_0x4e1459['where']=qs['filters'](_[_0xbe33('0x37')](_0x27bc1e[_0xbe33('0x2c')],_0x1c8ea7[_0xbe33('0x2f')]));if(_0x52119c[_0xbe33('0x2d')]){if(_0x52119c[_0xbe33('0x2e')]){_0x52119c[_0xbe33('0x2e')]=moment(_0x52119c['dateEnd'])[_0xbe33('0x38')](0x1,'day');}else{_0x52119c[_0xbe33('0x2e')]=moment(_0x52119c['dateStart'])['add'](0x1,_0xbe33('0x39'));}_[_0xbe33('0x3a')](_0x4e1459[_0xbe33('0x3b')],{'createdAt':{'$gte':_0x52119c[_0xbe33('0x2d')],'$lte':_0x52119c[_0xbe33('0x2e')]}});}if(_0x27bc1e[_0xbe33('0x2c')]['filter']){_0x4e1459['where']=_['merge'](_0x4e1459[_0xbe33('0x3b')],{'$or':_[_0xbe33('0x3c')](_0x4e1459[_0xbe33('0x31')],function(_0x3425a0){var _0x249fc2={};_0x249fc2[_0x3425a0]={'$like':'%'+_0x27bc1e[_0xbe33('0x2c')][_0xbe33('0x3d')]+'%'};return _0x249fc2;})});}_0x4e1459=_[_0xbe33('0x3a')]({},_0x4e1459,_0x27bc1e['options']);var _0x59693f={'where':_0x4e1459[_0xbe33('0x3b')]};return db[_0xbe33('0x28')][_0xbe33('0x1a')](_0x59693f)[_0xbe33('0x22')](function(_0x39b1a0){_0x3be9a7[_0xbe33('0x1a')]=_0x39b1a0;if(_0x27bc1e[_0xbe33('0x2c')][_0xbe33('0x3e')]){_0x4e1459[_0xbe33('0x3f')]=[{'all':!![]}];}return db[_0xbe33('0x28')][_0xbe33('0x40')](_0x4e1459);})[_0xbe33('0x22')](function(_0x2c397f){_0x3be9a7[_0xbe33('0x41')]=_0x2c397f;return _0x3be9a7;})[_0xbe33('0x22')](respondWithFilteredResult(_0x167186,_0x4e1459))[_0xbe33('0x42')](handleError(_0x167186,null));};exports[_0xbe33('0x43')]=function(_0x8bfd85,_0x5f399a){var _0x3a3770={'raw':![],'where':{'id':_0x8bfd85[_0xbe33('0x44')]['id']}},_0x40e11c={};_0x40e11c[_0xbe33('0x2a')]=_[_0xbe33('0x2b')](db[_0xbe33('0x28')][_0xbe33('0x29')]);_0x40e11c['query']=_[_0xbe33('0x2b')](_0x8bfd85[_0xbe33('0x2c')]);_0x40e11c[_0xbe33('0x2f')]=_[_0xbe33('0x30')](_0x40e11c[_0xbe33('0x2a')],_0x40e11c[_0xbe33('0x2c')]);_0x3a3770[_0xbe33('0x31')]=_[_0xbe33('0x30')](_0x40e11c['model'],qs['fields'](_0x8bfd85['query'][_0xbe33('0x32')]));_0x3a3770['attributes']=_0x3a3770[_0xbe33('0x31')][_0xbe33('0x45')]?_0x3a3770[_0xbe33('0x31')]:_0x40e11c[_0xbe33('0x2a')];if(_0x8bfd85[_0xbe33('0x2c')][_0xbe33('0x3e')]){_0x3a3770[_0xbe33('0x3f')]=[{'all':!![]}];}_0x3a3770=_[_0xbe33('0x3a')]({},_0x3a3770,_0x8bfd85['options']);return db[_0xbe33('0x28')]['find'](_0x3a3770)[_0xbe33('0x22')](handleEntityNotFound(_0x5f399a,null))[_0xbe33('0x22')](respondWithResult(_0x5f399a,null))[_0xbe33('0x42')](handleError(_0x5f399a,null));};exports['create']=function(_0x1735d6,_0x30e407){return db[_0xbe33('0x28')][_0xbe33('0x46')](_0x1735d6[_0xbe33('0x47')],{})[_0xbe33('0x22')](respondWithResult(_0x30e407,0xc9))[_0xbe33('0x42')](handleError(_0x30e407,null));};exports[_0xbe33('0x21')]=function(_0x2c006a,_0x4ec7ac){if(_0x2c006a[_0xbe33('0x47')]['id']){delete _0x2c006a[_0xbe33('0x47')]['id'];}return db[_0xbe33('0x28')][_0xbe33('0x48')]({'where':{'id':_0x2c006a[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x4ec7ac,null))[_0xbe33('0x22')](saveUpdates(_0x2c006a[_0xbe33('0x47')],null))[_0xbe33('0x22')](respondWithResult(_0x4ec7ac,null))[_0xbe33('0x42')](handleError(_0x4ec7ac,null));};exports[_0xbe33('0x23')]=function(_0x37b9c1,_0x3dd0ed){return db['CmList'][_0xbe33('0x48')]({'where':{'id':_0x37b9c1[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x3dd0ed,null))[_0xbe33('0x22')](removeEntity(_0x3dd0ed,null))['catch'](handleError(_0x3dd0ed,null));};exports[_0xbe33('0x49')]=function(_0x24f7d2,_0x19fea1){return db[_0xbe33('0x28')]['describe']()[_0xbe33('0x22')](respondWithResult(_0x19fea1,null))[_0xbe33('0x42')](handleError(_0x19fea1,null));};exports[_0xbe33('0x4a')]=function(_0x8435ce,_0x324849,_0x147057){if(_0x8435ce[_0xbe33('0x47')]['id']){delete _0x8435ce[_0xbe33('0x47')]['id'];}return db[_0xbe33('0x28')][_0xbe33('0x48')]({'where':{'id':_0x8435ce['params']['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x324849,null))['then'](function(_0x1e8a65){if(_0x1e8a65){_0x8435ce[_0xbe33('0x47')][_0xbe33('0x4b')]=_0x1e8a65['id'];return db['Disposition'][_0xbe33('0x46')](_0x8435ce[_0xbe33('0x47')]);}})[_0xbe33('0x22')](respondWithResult(_0x324849,null))[_0xbe33('0x42')](handleError(_0x324849,null));};exports[_0xbe33('0x4c')]=function(_0x31b701,_0x1ff67a,_0x4ec850){var _0x3f9bea={'raw':![],'where':{}};var _0x2e1080={};var _0x312332={'count':0x0,'rows':[]};return db[_0xbe33('0x28')][_0xbe33('0x4d')]({'where':{'id':_0x31b701[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x1ff67a,null))['then'](function(_0x4b0a20){if(_0x4b0a20){_0x2e1080[_0xbe33('0x2a')]=_[_0xbe33('0x2b')](db[_0xbe33('0x4e')]['rawAttributes']);_0x2e1080[_0xbe33('0x2c')]=_['keys'](_0x31b701[_0xbe33('0x2c')]);_0x2e1080[_0xbe33('0x2f')]=_[_0xbe33('0x30')](_0x2e1080[_0xbe33('0x2a')],_0x2e1080[_0xbe33('0x2c')]);_0x3f9bea[_0xbe33('0x31')]=_[_0xbe33('0x30')](_0x2e1080['model'],qs[_0xbe33('0x32')](_0x31b701[_0xbe33('0x2c')][_0xbe33('0x32')]));_0x3f9bea[_0xbe33('0x31')]=_0x3f9bea[_0xbe33('0x31')][_0xbe33('0x45')]?_0x3f9bea[_0xbe33('0x31')]:_0x2e1080[_0xbe33('0x2a')];if(!_0x31b701[_0xbe33('0x2c')][_0xbe33('0x33')]('nolimit')){_0x3f9bea[_0xbe33('0x1c')]=qs[_0xbe33('0x1c')](_0x31b701[_0xbe33('0x2c')]['limit']);_0x3f9bea[_0xbe33('0x1b')]=qs[_0xbe33('0x1b')](_0x31b701[_0xbe33('0x2c')]['offset']);}_0x3f9bea[_0xbe33('0x35')]=qs[_0xbe33('0x36')](_0x31b701[_0xbe33('0x2c')][_0xbe33('0x36')]);_0x3f9bea['where']=qs[_0xbe33('0x2f')](_[_0xbe33('0x37')](_0x31b701[_0xbe33('0x2c')],_0x2e1080[_0xbe33('0x2f')]));_0x3f9bea[_0xbe33('0x3b')]['ListId']=_0x4b0a20['id'];if(_0x31b701[_0xbe33('0x2c')][_0xbe33('0x3d')]){_0x3f9bea[_0xbe33('0x3b')]=_[_0xbe33('0x3a')](_0x3f9bea[_0xbe33('0x3b')],{'$or':_[_0xbe33('0x3c')](_0x3f9bea[_0xbe33('0x31')],function(_0x14515b){var _0x369630={};_0x369630[_0x14515b]={'$like':'%'+_0x31b701[_0xbe33('0x2c')][_0xbe33('0x3d')]+'%'};return _0x369630;})});}_0x3f9bea=_[_0xbe33('0x3a')]({},_0x3f9bea,_0x31b701[_0xbe33('0x4f')]);return db[_0xbe33('0x4e')][_0xbe33('0x1a')]({'where':_0x3f9bea[_0xbe33('0x3b')]})['then'](function(_0x5efe3d){_0x312332[_0xbe33('0x1a')]=_0x5efe3d;if(_0x31b701['query'][_0xbe33('0x3e')]){_0x3f9bea[_0xbe33('0x3f')]=[{'all':!![]}];}return db[_0xbe33('0x4e')][_0xbe33('0x40')](_0x3f9bea);})[_0xbe33('0x22')](function(_0x2fd98e){_0x312332[_0xbe33('0x41')]=_0x2fd98e;return _0x312332;});}})[_0xbe33('0x22')](respondWithFilteredResult(_0x1ff67a,_0x3f9bea))[_0xbe33('0x42')](handleError(_0x1ff67a,null));};exports[_0xbe33('0x50')]=function(_0x249b87,_0x4cfe50,_0x9b051b){var _0x36abe5;return db['CmList'][_0xbe33('0x48')]({'where':{'id':_0x249b87[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x4cfe50,null))[_0xbe33('0x22')](function(_0x463898){if(_0x463898){return _0x463898[_0xbe33('0x50')](_0x249b87['query'][_0xbe33('0x51')]);}})[_0xbe33('0x22')](respondWithStatusCode(_0x4cfe50,null))[_0xbe33('0x42')](handleError(_0x4cfe50,null));};exports[_0xbe33('0x52')]=function(_0x52319c,_0x35591d,_0x539065){return db['CmList'][_0xbe33('0x48')]({'where':{'id':_0x52319c['params']['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x35591d,null))[_0xbe33('0x22')](function(_0x48921c){if(_0x48921c){var _0x3bf228=[];var _0x2bfd14={'success':[],'errors':[]};return db[_0xbe33('0x53')][_0xbe33('0x49')]()[_0xbe33('0x22')](function(_0x1c7b03){if(_0x52319c[_0xbe33('0x47')][_0xbe33('0x54')]&&_['isArray'](_0x52319c['body']['tags'])){if(_0x52319c[_0xbe33('0x47')][_0xbe33('0x54')][_0xbe33('0x45')]){_0x52319c[_0xbe33('0x47')][_0xbe33('0x54')]=_0x52319c[_0xbe33('0x47')][_0xbe33('0x54')]['join'](';')+';';}else{_0x52319c[_0xbe33('0x47')][_0xbe33('0x54')]=null;}}else{_0x52319c[_0xbe33('0x47')][_0xbe33('0x54')]=null;}if(_0x52319c[_0xbe33('0x47')]&&_[_0xbe33('0x55')](_0x52319c[_0xbe33('0x47')])){for(var _0x492461=0x0;_0x492461<_0x52319c['body']['length'];_0x492461+=0x1){_0x52319c['body'][_0x492461][_0xbe33('0x4b')]=_0x52319c[_0xbe33('0x44')]['id'];_0x3bf228['push'](_0x52319c[_0xbe33('0x47')][_0x492461]);}return BPromise[_0xbe33('0x56')](_0x3bf228,function(_0x19af6f){return db[_0xbe33('0x53')][_0xbe33('0x46')](_[_0xbe33('0x57')](_0x19af6f,[_0xbe33('0x51'),'id'])||{},{'fields':_['keys'](_0x1c7b03),'raw':!![]})['then'](function(_0x5d7eb5){_0x2bfd14['success']['push'](_0x5d7eb5[_0xbe33('0x58')]);})[_0xbe33('0x42')](function(_0x2ed644){_0x2bfd14[_0xbe33('0x59')][_0xbe33('0x5a')]({'data':_0x19af6f,'error':_0x2ed644[_0xbe33('0x5b')]});});})[_0xbe33('0x22')](function(_0x898d54){return _0x2bfd14;})[_0xbe33('0x42')](function(_0x3a305d){return _0x3a305d;});}else{_0x35591d[_0xbe33('0x17')](0x190)[_0xbe33('0x19')]({'message':_0xbe33('0x5c')});}});}})['then'](respondWithResult(_0x35591d,null))[_0xbe33('0x42')](handleError(_0x35591d,null));};exports[_0xbe33('0x5d')]=function(_0xc6e1d5,_0x2dcb33,_0x4a27de){var _0x573aea;return db[_0xbe33('0x28')][_0xbe33('0x48')]({'where':{'id':_0xc6e1d5[_0xbe33('0x44')]['id']},'include':[{'model':db[_0xbe33('0x5e')],'as':'CustomFields'}]})[_0xbe33('0x22')](handleEntityNotFound(_0x2dcb33,null))[_0xbe33('0x22')](function(_0x371ad2){if(_0x371ad2){_0x573aea=_0x371ad2;return db[_0xbe33('0x53')][_0xbe33('0x29')];}})['then'](function(_0x15c864){if(_0x15c864){var _0xdae0eb={};var _0x285cd9={};_0x285cd9[_0xbe33('0x2a')]=_[_0xbe33('0x5f')](_['keys'](_0x15c864),_[_0xbe33('0x3c')](_0x573aea['CustomFields'],function(_0x2a22a7){return util['format'](_0xbe33('0x60'),_0x2a22a7['id']);}));_0x285cd9[_0xbe33('0x2c')]=_['keys'](_0xc6e1d5[_0xbe33('0x2c')]);_0x285cd9[_0xbe33('0x2f')]=_[_0xbe33('0x30')](_0x285cd9['model'],_0x285cd9[_0xbe33('0x2c')]);_0xdae0eb[_0xbe33('0x31')]=_[_0xbe33('0x30')](_0x285cd9[_0xbe33('0x2a')],qs[_0xbe33('0x32')](_0xc6e1d5['query'][_0xbe33('0x32')]));_0xdae0eb[_0xbe33('0x31')]=_0xdae0eb['attributes'][_0xbe33('0x45')]?_0xdae0eb['attributes']:_0x285cd9['model'];if(!_0xc6e1d5[_0xbe33('0x2c')][_0xbe33('0x33')](_0xbe33('0x34'))){_0xdae0eb[_0xbe33('0x1c')]=qs['limit'](_0xc6e1d5[_0xbe33('0x2c')][_0xbe33('0x1c')]);_0xdae0eb[_0xbe33('0x1b')]=qs[_0xbe33('0x1b')](_0xc6e1d5[_0xbe33('0x2c')][_0xbe33('0x1b')]);}_0xdae0eb[_0xbe33('0x35')]=qs[_0xbe33('0x36')](_0xc6e1d5[_0xbe33('0x2c')][_0xbe33('0x36')]);_0xdae0eb['where']=qs['filters'](_[_0xbe33('0x37')](_0xc6e1d5[_0xbe33('0x2c')],_0x285cd9['filters']));_0xdae0eb[_0xbe33('0x61')]=!![];if(_0xc6e1d5[_0xbe33('0x2c')][_0xbe33('0x3d')]){_0xdae0eb[_0xbe33('0x3b')]=_[_0xbe33('0x3a')](_0xdae0eb[_0xbe33('0x3b')],{'$or':_[_0xbe33('0x3c')](_0xdae0eb[_0xbe33('0x31')],function(_0x2c919d){var _0x65e227={};_0x65e227[_0x2c919d]={'$like':'%'+_0xc6e1d5[_0xbe33('0x2c')][_0xbe33('0x3d')]+'%'};return _0x65e227;})});}_0xdae0eb=_[_0xbe33('0x3a')]({},_0xdae0eb,_0xc6e1d5[_0xbe33('0x4f')]);return _0x573aea['getContacts'](_0xdae0eb);}})['then'](respondWithResult(_0x2dcb33,null))[_0xbe33('0x42')](handleError(_0x2dcb33,null));};exports[_0xbe33('0x62')]=function(_0x562af1,_0x4edfa7,_0x1b130b){var _0x3d90ae;return db[_0xbe33('0x28')][_0xbe33('0x48')]({'where':{'id':_0x562af1[_0xbe33('0x44')]['id']},'include':[{'model':db['CmCustomField'],'as':_0xbe33('0x63')}]})[_0xbe33('0x22')](handleEntityNotFound(_0x4edfa7,null))[_0xbe33('0x22')](function(_0x2cc57a){if(_0x2cc57a){_0x3d90ae=_0x2cc57a;return db[_0xbe33('0x53')]['rawAttributes'];}})['then'](function(_0x5e8aee){if(_0x5e8aee){var _0x5c13ca={};var _0x113c17={};_0x113c17['model']=_[_0xbe33('0x5f')](_['keys'](_0x5e8aee),_[_0xbe33('0x3c')](_0x3d90ae[_0xbe33('0x63')],function(_0x2a3986){return util[_0xbe33('0x64')](_0xbe33('0x60'),_0x2a3986['id']);}));_0x113c17[_0xbe33('0x2c')]=_[_0xbe33('0x2b')](_0x562af1[_0xbe33('0x2c')]);_0x113c17[_0xbe33('0x2f')]=_[_0xbe33('0x30')](_0x113c17[_0xbe33('0x2a')],_0x113c17[_0xbe33('0x2c')]);_0x5c13ca[_0xbe33('0x31')]=_[_0xbe33('0x30')](_0x113c17[_0xbe33('0x2a')],qs['fields'](_0x562af1[_0xbe33('0x2c')]['fields']));_0x5c13ca[_0xbe33('0x31')]=_0x5c13ca[_0xbe33('0x31')][_0xbe33('0x45')]?_0x5c13ca[_0xbe33('0x31')]:_0x113c17[_0xbe33('0x2a')];if(!_0x562af1[_0xbe33('0x2c')]['hasOwnProperty'](_0xbe33('0x34'))){_0x5c13ca[_0xbe33('0x1c')]=qs[_0xbe33('0x1c')](_0x562af1[_0xbe33('0x2c')]['limit']);_0x5c13ca['offset']=qs['offset'](_0x562af1[_0xbe33('0x2c')][_0xbe33('0x1b')]);}_0x5c13ca[_0xbe33('0x35')]=qs[_0xbe33('0x36')](_0x562af1[_0xbe33('0x2c')][_0xbe33('0x36')]);_0x5c13ca[_0xbe33('0x3b')]=qs['filters'](_[_0xbe33('0x37')](_0x562af1[_0xbe33('0x2c')],_0x113c17[_0xbe33('0x2f')]));_0x5c13ca[_0xbe33('0x61')]=!![];if(_0x562af1[_0xbe33('0x2c')][_0xbe33('0x3d')]){_0x5c13ca['where']=_[_0xbe33('0x3a')](_0x5c13ca[_0xbe33('0x3b')],{'$or':_['map'](_0x5c13ca[_0xbe33('0x31')],function(_0x104771){var _0x247ee8={};_0x247ee8[_0x104771]={'$like':'%'+_0x562af1[_0xbe33('0x2c')]['filter']+'%'};return _0x247ee8;})});}_0x5c13ca=_[_0xbe33('0x3a')]({},_0x5c13ca,_0x562af1[_0xbe33('0x4f')]);return _0x3d90ae[_0xbe33('0x5d')](_0x5c13ca);}})['then'](function(_0x17414c){if(!_[_0xbe33('0x65')](_0x17414c)){var _0x2f93e9=toCsv(_0x17414c);var _0x204459=Date[_0xbe33('0x66')]();fs[_0xbe33('0x67')](util[_0xbe33('0x64')](_0xbe33('0x68'),_0x3d90ae['id'],_0x204459),_0x2f93e9);_0x4edfa7[_0xbe33('0x69')]('Content-disposition',_0xbe33('0x6a')+util['format'](_0xbe33('0x6b'),_0x3d90ae['id'],_0x204459));_0x4edfa7[_0xbe33('0x69')](_0xbe33('0x6c'),_0xbe33('0x6d'));return _0x4edfa7['download'](util[_0xbe33('0x64')](_0xbe33('0x68'),_0x3d90ae['id'],_0x204459));}else{return _0x4edfa7[_0xbe33('0x16')](0xcc);}})[_0xbe33('0x42')](handleError(_0x4edfa7,null));};exports[_0xbe33('0x6e')]=function(_0x5d6807,_0x4b8984,_0x350261){var _0x3ece81;delete _0x5d6807[_0xbe33('0x47')]['id'];return db[_0xbe33('0x28')]['findOne']({'where':{'id':_0x5d6807['params']['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x4b8984,null))[_0xbe33('0x22')](function(_0x8cc75){if(_0x8cc75){return db[_0xbe33('0x6f')][_0xbe33('0x70')](function(_0x44dbe7){return db[_0xbe33('0x5e')][_0xbe33('0x46')](_0x5d6807[_0xbe33('0x47')],{'transaction':_0x44dbe7})[_0xbe33('0x22')](function(_0x59be4c){_0x3ece81=_0x59be4c;return _0x8cc75[_0xbe33('0x71')](_0x59be4c,{'transaction':_0x44dbe7});})[_0xbe33('0x22')](function(){var _0x2e70d4={'type':db['Sequelize'][_0xbe33('0x72')],'transaction':_0x44dbe7};switch(_0x5d6807[_0xbe33('0x47')][_0xbe33('0x73')]){case _0xbe33('0x74'):_0x2e70d4[_0xbe33('0x73')]=db['Sequelize']['TEXT'];break;case _0xbe33('0x75'):_0x2e70d4['type']=db['Sequelize'][_0xbe33('0x76')];break;case'switch':_0x2e70d4[_0xbe33('0x73')]=db[_0xbe33('0x77')]['BOOLEAN'];_0x2e70d4[_0xbe33('0x78')]=![];break;default:}return db[_0xbe33('0x6f')]['queryInterface']['addColumn']('cm_contacts',util['format'](_0xbe33('0x79'),_0x3ece81['id']),_0x2e70d4);})[_0xbe33('0x22')](function(){return _0x3ece81;});});}})[_0xbe33('0x22')](respondWithResult(_0x4b8984,null))['catch'](handleError(_0x4b8984,null));};exports[_0xbe33('0x7a')]=function(_0x48e792,_0x1f7be4,_0x3e32f8){var _0x69e8d8={};var _0x2a2659={};var _0xa0ec75;var _0x3a924;return db[_0xbe33('0x28')][_0xbe33('0x4d')]({'where':{'id':_0x48e792[_0xbe33('0x44')]['id']}})['then'](handleEntityNotFound(_0x1f7be4,null))[_0xbe33('0x22')](function(_0x2676ea){if(_0x2676ea){_0xa0ec75=_0x2676ea;_0x2a2659['model']=_['keys'](db[_0xbe33('0x5e')][_0xbe33('0x29')]);_0x2a2659['query']=_[_0xbe33('0x2b')](_0x48e792[_0xbe33('0x2c')]);_0x2a2659[_0xbe33('0x2f')]=_['intersection'](_0x2a2659[_0xbe33('0x2a')],_0x2a2659[_0xbe33('0x2c')]);_0x69e8d8[_0xbe33('0x31')]=_[_0xbe33('0x30')](_0x2a2659['model'],qs[_0xbe33('0x32')](_0x48e792[_0xbe33('0x2c')]['fields']));_0x69e8d8['attributes']=_0x69e8d8['attributes'][_0xbe33('0x45')]?_0x69e8d8[_0xbe33('0x31')]:_0x2a2659[_0xbe33('0x2a')];_0x69e8d8[_0xbe33('0x35')]=qs[_0xbe33('0x36')](_0x48e792[_0xbe33('0x2c')][_0xbe33('0x36')]);_0x69e8d8[_0xbe33('0x3b')]=qs['filters'](_['pick'](_0x48e792['query'],_0x2a2659[_0xbe33('0x2f')]));_0x69e8d8[_0xbe33('0x3b')]=_[_0xbe33('0x3a')](_0x69e8d8[_0xbe33('0x3b')],{'$or':[{'ListId':_0x2676ea['id']},{'ListId':null}]});if(_0x48e792[_0xbe33('0x2c')][_0xbe33('0x3d')]){_0x69e8d8[_0xbe33('0x3b')]=_['merge'](_0x69e8d8[_0xbe33('0x3b')],{'$or':_['map'](_0x69e8d8[_0xbe33('0x31')],function(_0x5263b7){var _0x538916={};_0x538916[_0x5263b7]={'$like':'%'+_0x48e792['query'][_0xbe33('0x3d')]+'%'};return _0x538916;})});}_0x69e8d8=_[_0xbe33('0x3a')]({},_0x69e8d8,_0x48e792[_0xbe33('0x4f')]);return db[_0xbe33('0x5e')]['findAndCountAll'](_0x69e8d8);}})[_0xbe33('0x22')](respondWithResult(_0x1f7be4,null))[_0xbe33('0x42')](handleError(_0x1f7be4,null));};exports[_0xbe33('0x7b')]=function(_0x52a922,_0x4bc836,_0x306a5a){return db[_0xbe33('0x28')][_0xbe33('0x48')]({'where':{'id':_0x52a922[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x4bc836,null))[_0xbe33('0x22')](function(_0x5e5ee8){if(_0x5e5ee8){return _0x5e5ee8['addAgents'](_0x52a922[_0xbe33('0x47')][_0xbe33('0x51')],_[_0xbe33('0x57')](_0x52a922['body'],[_0xbe33('0x51'),'id'])||{})['spread'](function(_0x41a467){for(var _0x1259e5=0x0;_0x1259e5<_0x52a922[_0xbe33('0x47')][_0xbe33('0x51')][_0xbe33('0x45')];_0x1259e5+=0x1){socket[_0xbe33('0x7c')](_0xbe33('0x7d'),{'UserId':_0x52a922[_0xbe33('0x47')][_0xbe33('0x51')][_0x1259e5],'CmListId':_0x52a922[_0xbe33('0x44')]['id']});}return _0x41a467;});}})[_0xbe33('0x22')](respondWithResult(_0x4bc836,null))[_0xbe33('0x42')](handleError(_0x4bc836,null));};exports['removeAgents']=function(_0xd1e6b2,_0x3c387c,_0x1f45ea){var _0x252792;return db[_0xbe33('0x28')][_0xbe33('0x48')]({'where':{'id':_0xd1e6b2[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x3c387c,null))[_0xbe33('0x22')](function(_0x82b440){if(_0x82b440){return _0x82b440[_0xbe33('0x7e')](_0xd1e6b2[_0xbe33('0x2c')][_0xbe33('0x51')])[_0xbe33('0x22')](function(_0x483f19){if(_[_0xbe33('0x55')](_0xd1e6b2[_0xbe33('0x2c')][_0xbe33('0x51')])){for(var _0x11570d=0x0;_0x11570d<_0xd1e6b2['query'][_0xbe33('0x51')][_0xbe33('0x45')];_0x11570d+=0x1){socket[_0xbe33('0x7c')](_0xbe33('0x7f'),{'UserId':_0xd1e6b2['query']['ids'][_0x11570d],'CmListId':_0xd1e6b2[_0xbe33('0x44')]['id']});}}else{socket[_0xbe33('0x7c')](_0xbe33('0x7f'),{'UserId':_0xd1e6b2[_0xbe33('0x2c')][_0xbe33('0x51')],'CmListId':_0xd1e6b2['params']['id']});}});}})[_0xbe33('0x22')](respondWithStatusCode(_0x3c387c,null))['catch'](handleError(_0x3c387c,null));};exports[_0xbe33('0x80')]=function(_0x25229f,_0x11e9bf,_0xad3e78){var _0x228b3e={};var _0x426a8b={};var _0x1f1237;var _0x5c83e7;return db[_0xbe33('0x28')][_0xbe33('0x4d')]({'where':{'id':_0x25229f[_0xbe33('0x44')]['id']}})[_0xbe33('0x22')](handleEntityNotFound(_0x11e9bf,null))[_0xbe33('0x22')](function(_0x3fb596){if(_0x3fb596){_0x1f1237=_0x3fb596;_0x426a8b[_0xbe33('0x2a')]=_[_0xbe33('0x2b')](db[_0xbe33('0x81')][_0xbe33('0x29')]);_0x426a8b[_0xbe33('0x2c')]=_[_0xbe33('0x2b')](_0x25229f[_0xbe33('0x2c')]);_0x426a8b[_0xbe33('0x2f')]=_[_0xbe33('0x30')](_0x426a8b[_0xbe33('0x2a')],_0x426a8b[_0xbe33('0x2c')]);_0x228b3e[_0xbe33('0x31')]=_['intersection'](_0x426a8b[_0xbe33('0x2a')],qs[_0xbe33('0x32')](_0x25229f[_0xbe33('0x2c')][_0xbe33('0x32')]));_0x228b3e[_0xbe33('0x31')]=_0x228b3e['attributes'][_0xbe33('0x45')]?_0x228b3e['attributes']:_0x426a8b[_0xbe33('0x2a')];_0x228b3e[_0xbe33('0x35')]=qs[_0xbe33('0x36')](_0x25229f[_0xbe33('0x2c')][_0xbe33('0x36')]);_0x228b3e[_0xbe33('0x3b')]=qs['filters'](_['pick'](_0x25229f[_0xbe33('0x2c')],_0x426a8b[_0xbe33('0x2f')]));if(_0x25229f['query'][_0xbe33('0x3d')]){_0x228b3e[_0xbe33('0x3b')]=_['merge'](_0x228b3e[_0xbe33('0x3b')],{'$or':_[_0xbe33('0x3c')](_0x228b3e[_0xbe33('0x31')],function(_0x153156){var _0xe57fb3={};_0xe57fb3[_0x153156]={'$like':'%'+_0x25229f[_0xbe33('0x2c')][_0xbe33('0x3d')]+'%'};return _0xe57fb3;})});}_0x228b3e=_['merge']({},_0x228b3e,_0x25229f[_0xbe33('0x4f')]);return _0x1f1237[_0xbe33('0x80')](_0x228b3e);}})[_0xbe33('0x22')](function(_0xb5f0de){if(_0xb5f0de){_0x5c83e7=_0xb5f0de[_0xbe33('0x45')];if(!_0x25229f[_0xbe33('0x2c')]['hasOwnProperty']('nolimit')){_0x228b3e[_0xbe33('0x1c')]=qs[_0xbe33('0x1c')](_0x25229f['query']['limit']);_0x228b3e[_0xbe33('0x1b')]=qs['offset'](_0x25229f[_0xbe33('0x2c')][_0xbe33('0x1b')]);}return _0x1f1237[_0xbe33('0x80')](_0x228b3e);}})[_0xbe33('0x22')](function(_0x5812be){if(_0x5812be){return _0x5812be?{'count':_0x5c83e7,'rows':_0x5812be}:null;}})['then'](respondWithResult(_0x11e9bf,null))[_0xbe33('0x42')](handleError(_0x11e9bf,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc130=['emit','hasOwnProperty','hook','events','../../mysqldb','CmList','save','update','remove'];(function(_0x2221f3,_0x25628e){var _0xe022a=function(_0x5e0387){while(--_0x5e0387){_0x2221f3['push'](_0x2221f3['shift']());}};_0xe022a(++_0x25628e);}(_0xc130,0x8a));var _0x0c13=function(_0x37e959,_0x320df8){_0x37e959=_0x37e959-0x0;var _0x44c80f=_0xc130[_0x37e959];return _0x44c80f;};'use strict';var EventEmitter=require(_0x0c13('0x0'));var CmList=require(_0x0c13('0x1'))['db'][_0x0c13('0x2')];var CmListEvents=new EventEmitter();CmListEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x0c13('0x3'),'afterUpdate':_0x0c13('0x4'),'afterDestroy':_0x0c13('0x5')};function emitEvent(_0x26aa46){return function(_0x376e7c,_0x37871a,_0x263c99){CmListEvents[_0x0c13('0x6')](_0x26aa46+':'+_0x376e7c['id'],_0x376e7c);CmListEvents['emit'](_0x26aa46,_0x376e7c);_0x263c99(null);};}for(var e in events){if(events[_0x0c13('0x7')](e)){var event=events[e];CmList[_0x0c13('0x8')](e,emitEvent(event));}}module['exports']=CmListEvents;
\ No newline at end of file
+var _0xfa47=['events','CmList','setMaxListeners','save','emit','hasOwnProperty','hook'];(function(_0x25662e,_0x4cec68){var _0x59b7bc=function(_0xafb159){while(--_0xafb159){_0x25662e['push'](_0x25662e['shift']());}};_0x59b7bc(++_0x4cec68);}(_0xfa47,0xb6));var _0x7fa4=function(_0x375325,_0x57a850){_0x375325=_0x375325-0x0;var _0x228f57=_0xfa47[_0x375325];return _0x228f57;};'use strict';var EventEmitter=require(_0x7fa4('0x0'));var CmList=require('../../mysqldb')['db'][_0x7fa4('0x1')];var CmListEvents=new EventEmitter();CmListEvents[_0x7fa4('0x2')](0x0);var events={'afterCreate':_0x7fa4('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x38825b){return function(_0x431e02,_0x554e70,_0xfbb0c9){CmListEvents[_0x7fa4('0x4')](_0x38825b+':'+_0x431e02['id'],_0x431e02);CmListEvents['emit'](_0x38825b,_0x431e02);_0xfbb0c9(null);};}for(var e in events){if(events[_0x7fa4('0x5')](e)){var event=events[e];CmList[_0x7fa4('0x6')](e,emitEvent(event));}}module['exports']=CmListEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d52=['request-promise','./cmList.attributes','cm_lists','lodash','../../config/logger','moment','bluebird'];(function(_0x1cf0c3,_0x597047){var _0x288a7d=function(_0x4f520b){while(--_0x4f520b){_0x1cf0c3['push'](_0x1cf0c3['shift']());}};_0x288a7d(++_0x597047);}(_0x8d52,0x15a));var _0x28d5=function(_0x4dc436,_0x3e6da1){_0x4dc436=_0x4dc436-0x0;var _0x736819=_0x8d52[_0x4dc436];return _0x736819;};'use strict';var _=require(_0x28d5('0x0'));var util=require('util');var logger=require(_0x28d5('0x1'))('api');var moment=require(_0x28d5('0x2'));var BPromise=require(_0x28d5('0x3'));var rp=require(_0x28d5('0x4'));var attributes=require(_0x28d5('0x5'));module['exports']=function(_0x59bda5,_0x1b7492){return _0x59bda5['define']('CmList',attributes,{'tableName':_0x28d5('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xef7c=['request-promise','./cmList.attributes','exports','define','CmList','cm_lists','lodash','util','../../config/logger','api'];(function(_0x4dca18,_0x17acc3){var _0x5403a3=function(_0x3e05bd){while(--_0x3e05bd){_0x4dca18['push'](_0x4dca18['shift']());}};_0x5403a3(++_0x17acc3);}(_0xef7c,0x164));var _0xcef7=function(_0x16a116,_0x5135fd){_0x16a116=_0x16a116-0x0;var _0x514392=_0xef7c[_0x16a116];return _0x514392;};'use strict';var _=require(_0xcef7('0x0'));var util=require(_0xcef7('0x1'));var logger=require(_0xcef7('0x2'))(_0xcef7('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xcef7('0x4'));var attributes=require(_0xcef7('0x5'));module[_0xcef7('0x6')]=function(_0x62d52,_0x5721d0){return _0x62d52[_0xcef7('0x7')](_0xcef7('0x8'),attributes,{'tableName':_0xcef7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6ab=['rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','then','info','request\x20sent','debug','CmList,\x20%s,\x20%s,\x20%s','code','error','CmList,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/logger'];(function(_0xa1177e,_0x2ad1e1){var _0x1a3d2c=function(_0x12d08e){while(--_0x12d08e){_0xa1177e['push'](_0xa1177e['shift']());}};_0x1a3d2c(++_0x2ad1e1);}(_0xc6ab,0x96));var _0xbc6a=function(_0x5d64ab,_0x45d58b){_0x5d64ab=_0x5d64ab-0x0;var _0x59789a=_0xc6ab[_0x5d64ab];return _0x59789a;};'use strict';var _=require(_0xbc6a('0x0'));var util=require(_0xbc6a('0x1'));var moment=require(_0xbc6a('0x2'));var BPromise=require(_0xbc6a('0x3'));var rs=require(_0xbc6a('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbc6a('0x5'))(_0xbc6a('0x6'));var config=require(_0xbc6a('0x7'));var jayson=require(_0xbc6a('0x8'));var client=jayson[_0xbc6a('0x9')]['http']({'port':0x232a});config[_0xbc6a('0xa')]=_[_0xbc6a('0xb')](config[_0xbc6a('0xa')],{'host':_0xbc6a('0xc'),'port':0x18eb});var socket=require(_0xbc6a('0xd'))(config['redis']);require('./cmList.socket')[_0xbc6a('0xe')](socket);function respondWithRpcPromise(_0x2a1ba6,_0x5cb7cf,_0x4d22b2){return new BPromise(function(_0x446338,_0x18b608){return client['request'](_0x2a1ba6,_0x4d22b2)[_0xbc6a('0xf')](function(_0xe1c7bd){logger[_0xbc6a('0x10')]('CmList,\x20%s,\x20%s',_0x5cb7cf,_0xbc6a('0x11'));logger[_0xbc6a('0x12')](_0xbc6a('0x13'),_0x5cb7cf,_0xbc6a('0x11'),JSON['stringify'](_0xe1c7bd));if(_0xe1c7bd['error']){if(_0xe1c7bd['error'][_0xbc6a('0x14')]===0x1f4){logger[_0xbc6a('0x15')]('CmList,\x20%s,\x20%s',_0x5cb7cf,_0xe1c7bd[_0xbc6a('0x15')]['message']);return _0x18b608(_0xe1c7bd[_0xbc6a('0x15')]['message']);}logger[_0xbc6a('0x15')](_0xbc6a('0x16'),_0x5cb7cf,_0xe1c7bd[_0xbc6a('0x15')][_0xbc6a('0x17')]);return _0x446338(_0xe1c7bd[_0xbc6a('0x15')][_0xbc6a('0x17')]);}else{logger[_0xbc6a('0x10')]('CmList,\x20%s,\x20%s',_0x5cb7cf,'request\x20sent');_0x446338(_0xe1c7bd[_0xbc6a('0x18')][_0xbc6a('0x17')]);}})[_0xbc6a('0x19')](function(_0x1730af){logger[_0xbc6a('0x15')](_0xbc6a('0x16'),_0x5cb7cf,_0x1730af);_0x18b608(_0x1730af);});});}
\ No newline at end of file
+var _0x244b=['randomstring','../../config/logger','../../config/environment','client','http','redis','defaults','socket.io-emitter','request','info','CmList,\x20%s,\x20%s','CmList,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','lodash','moment','bluebird'];(function(_0x972085,_0x326033){var _0x298ece=function(_0x280e7e){while(--_0x280e7e){_0x972085['push'](_0x972085['shift']());}};_0x298ece(++_0x326033);}(_0x244b,0x82));var _0xb244=function(_0x1b5dfe,_0x21bb8f){_0x1b5dfe=_0x1b5dfe-0x0;var _0x2fe2b1=_0x244b[_0x1b5dfe];return _0x2fe2b1;};'use strict';var _=require(_0xb244('0x0'));var util=require('util');var moment=require(_0xb244('0x1'));var BPromise=require(_0xb244('0x2'));var rs=require(_0xb244('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xb244('0x4'))('rpc');var config=require(_0xb244('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xb244('0x6')][_0xb244('0x7')]({'port':0x232a});config[_0xb244('0x8')]=_[_0xb244('0x9')](config[_0xb244('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xb244('0xa'))(new Redis(config[_0xb244('0x8')]));require('./cmList.socket')['register'](socket);function respondWithRpcPromise(_0x29f611,_0x144b95,_0x18ac0e){return new BPromise(function(_0x5d9a9f,_0x3f0f08){return client[_0xb244('0xb')](_0x29f611,_0x18ac0e)['then'](function(_0x17d716){logger[_0xb244('0xc')](_0xb244('0xd'),_0x144b95,'request\x20sent');logger['debug'](_0xb244('0xe'),_0x144b95,_0xb244('0xf'),JSON['stringify'](_0x17d716));if(_0x17d716['error']){if(_0x17d716[_0xb244('0x10')][_0xb244('0x11')]===0x1f4){logger[_0xb244('0x10')]('CmList,\x20%s,\x20%s',_0x144b95,_0x17d716[_0xb244('0x10')]['message']);return _0x3f0f08(_0x17d716[_0xb244('0x10')][_0xb244('0x12')]);}logger[_0xb244('0x10')]('CmList,\x20%s,\x20%s',_0x144b95,_0x17d716['error']['message']);return _0x5d9a9f(_0x17d716[_0xb244('0x10')][_0xb244('0x12')]);}else{logger[_0xb244('0xc')]('CmList,\x20%s,\x20%s',_0x144b95,_0xb244('0xf'));_0x5d9a9f(_0x17d716['result'][_0xb244('0x12')]);}})['catch'](function(_0x4bc336){logger[_0xb244('0x10')](_0xb244('0xd'),_0x144b95,_0x4bc336);_0x3f0f08(_0x4bc336);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77c6=['./cmList.events','save','emit','removeListener','length','cmList:'];(function(_0x819464,_0x46fc91){var _0x49dcc0=function(_0x36b2b2){while(--_0x36b2b2){_0x819464['push'](_0x819464['shift']());}};_0x49dcc0(++_0x46fc91);}(_0x77c6,0x1c8));var _0x677c=function(_0x361768,_0x1c779f){_0x361768=_0x361768-0x0;var _0x1868de=_0x77c6[_0x361768];return _0x1868de;};'use strict';var CmListEvents=require(_0x677c('0x0'));var events=[_0x677c('0x1'),'remove','update'];function createListener(_0x3c741b,_0x2f8f63){return function(_0x1201dc){_0x2f8f63[_0x677c('0x2')](_0x3c741b,_0x1201dc);};}function removeListener(_0x56e4df,_0x1c92d1){return function(){CmListEvents[_0x677c('0x3')](_0x56e4df,_0x1c92d1);};}exports['register']=function(_0x472f92){for(var _0x14c9b6=0x0,_0x19a39d=events[_0x677c('0x4')];_0x14c9b6<_0x19a39d;_0x14c9b6++){var _0x13778c=events[_0x14c9b6];var _0x420e0f=createListener(_0x677c('0x5')+_0x13778c,_0x472f92);CmListEvents['on'](_0x13778c,_0x420e0f);}};
\ No newline at end of file
+var _0x46ee=['update','register','length','./cmList.events','save'];(function(_0x3f7d34,_0x3c3a8f){var _0x3b4110=function(_0x1504aa){while(--_0x1504aa){_0x3f7d34['push'](_0x3f7d34['shift']());}};_0x3b4110(++_0x3c3a8f);}(_0x46ee,0x8f));var _0xe46e=function(_0x5821d0,_0x32fc4d){_0x5821d0=_0x5821d0-0x0;var _0x3df395=_0x46ee[_0x5821d0];return _0x3df395;};'use strict';var CmListEvents=require(_0xe46e('0x0'));var events=[_0xe46e('0x1'),'remove',_0xe46e('0x2')];function createListener(_0x8228ca,_0x3710c9){return function(_0x1d4af4){_0x3710c9['emit'](_0x8228ca,_0x1d4af4);};}function removeListener(_0x599f98,_0x5b8839){return function(){CmListEvents['removeListener'](_0x599f98,_0x5b8839);};}exports[_0xe46e('0x3')]=function(_0x34ca57){for(var _0x495366=0x0,_0x1a1ecb=events[_0xe46e('0x4')];_0x495366<_0x1a1ecb;_0x495366++){var _0x2fbdf3=events[_0x495366];var _0x4234c6=createListener('cmList:'+_0x2fbdf3,_0x34ca57);CmListEvents['on'](_0x2fbdf3,_0x4234c6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5113=['getContactsCsv','/:id/fields','getCustomFields','getAgents','post','create','addDisposition','/:id/contacts','addContacts','/:id/users','addAgents','put','delete','destroy','removeDispositions','removeAgents','exports','multer','util','path','express','Router','../../components/auth/service','../../config/environment','./cmList.controller','get','/describe','isAuthenticated','/:id','/:id/dispositions','getContacts'];(function(_0x1ec6ca,_0x5de246){var _0x120ba0=function(_0x1de660){while(--_0x1de660){_0x1ec6ca['push'](_0x1ec6ca['shift']());}};_0x120ba0(++_0x5de246);}(_0x5113,0x1a4));var _0x3511=function(_0x5b6d34,_0x2a32a0){_0x5b6d34=_0x5b6d34-0x0;var _0x65eb46=_0x5113[_0x5b6d34];return _0x65eb46;};'use strict';var multer=require(_0x3511('0x0'));var util=require(_0x3511('0x1'));var path=require(_0x3511('0x2'));var timeout=require('connect-timeout');var express=require(_0x3511('0x3'));var router=express[_0x3511('0x4')]();var auth=require(_0x3511('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x3511('0x6'));var controller=require(_0x3511('0x7'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x3511('0x8')](_0x3511('0x9'),auth[_0x3511('0xa')](),controller['describe']);router[_0x3511('0x8')](_0x3511('0xb'),auth[_0x3511('0xa')](),controller['show']);router[_0x3511('0x8')](_0x3511('0xc'),auth['isAuthenticated'](),controller['getDispositions']);router[_0x3511('0x8')]('/:id/contacts',auth['isAuthenticated'](),controller[_0x3511('0xd')]);router[_0x3511('0x8')]('/:id/contacts/csv',auth[_0x3511('0xa')](),controller[_0x3511('0xe')]);router[_0x3511('0x8')](_0x3511('0xf'),auth[_0x3511('0xa')](),controller[_0x3511('0x10')]);router['get']('/:id/users',auth['isAuthenticated'](),controller[_0x3511('0x11')]);router[_0x3511('0x12')]('/',auth[_0x3511('0xa')](),controller[_0x3511('0x13')]);router[_0x3511('0x12')](_0x3511('0xc'),auth['isAuthenticated'](),controller[_0x3511('0x14')]);router[_0x3511('0x12')](_0x3511('0x15'),auth['isAuthenticated'](),controller[_0x3511('0x16')]);router['post'](_0x3511('0xf'),auth[_0x3511('0xa')](),controller['addCustomField']);router[_0x3511('0x12')](_0x3511('0x17'),auth[_0x3511('0xa')](),controller[_0x3511('0x18')]);router[_0x3511('0x19')](_0x3511('0xb'),auth['isAuthenticated'](),controller['update']);router[_0x3511('0x1a')]('/:id',auth['isAuthenticated'](),controller[_0x3511('0x1b')]);router[_0x3511('0x1a')](_0x3511('0xc'),auth['isAuthenticated'](),controller[_0x3511('0x1c')]);router[_0x3511('0x1a')]('/:id/users',auth[_0x3511('0xa')](),controller[_0x3511('0x1d')]);module[_0x3511('0x1e')]=router;
\ No newline at end of file
+var _0x8477=['removeDispositions','removeAgents','exports','multer','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmList.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/contacts','getContacts','/:id/contacts/csv','getContactsCsv','/:id/fields','getCustomFields','/:id/users','getAgents','post','addContacts','addCustomField','addAgents','put','delete'];(function(_0x12475a,_0x7a07c3){var _0x37e3f3=function(_0xf63731){while(--_0xf63731){_0x12475a['push'](_0x12475a['shift']());}};_0x37e3f3(++_0x7a07c3);}(_0x8477,0x113));var _0x7847=function(_0x56916d,_0x37b935){_0x56916d=_0x56916d-0x0;var _0x2b7f1f=_0x8477[_0x56916d];return _0x2b7f1f;};'use strict';var multer=require(_0x7847('0x0'));var util=require('util');var path=require(_0x7847('0x1'));var timeout=require(_0x7847('0x2'));var express=require('express');var router=express[_0x7847('0x3')]();var auth=require(_0x7847('0x4'));var interaction=require(_0x7847('0x5'));var config=require(_0x7847('0x6'));var controller=require(_0x7847('0x7'));router[_0x7847('0x8')]('/',auth[_0x7847('0x9')](),controller[_0x7847('0xa')]);router['get'](_0x7847('0xb'),auth['isAuthenticated'](),controller[_0x7847('0xc')]);router[_0x7847('0x8')](_0x7847('0xd'),auth[_0x7847('0x9')](),controller[_0x7847('0xe')]);router['get'](_0x7847('0xf'),auth['isAuthenticated'](),controller[_0x7847('0x10')]);router[_0x7847('0x8')](_0x7847('0x11'),auth[_0x7847('0x9')](),controller[_0x7847('0x12')]);router[_0x7847('0x8')](_0x7847('0x13'),auth[_0x7847('0x9')](),controller[_0x7847('0x14')]);router[_0x7847('0x8')](_0x7847('0x15'),auth[_0x7847('0x9')](),controller[_0x7847('0x16')]);router[_0x7847('0x8')](_0x7847('0x17'),auth['isAuthenticated'](),controller[_0x7847('0x18')]);router[_0x7847('0x19')]('/',auth['isAuthenticated'](),controller['create']);router[_0x7847('0x19')](_0x7847('0xf'),auth[_0x7847('0x9')](),controller['addDisposition']);router[_0x7847('0x19')](_0x7847('0x11'),auth[_0x7847('0x9')](),controller[_0x7847('0x1a')]);router[_0x7847('0x19')](_0x7847('0x15'),auth[_0x7847('0x9')](),controller[_0x7847('0x1b')]);router['post']('/:id/users',auth[_0x7847('0x9')](),controller[_0x7847('0x1c')]);router[_0x7847('0x1d')](_0x7847('0xd'),auth[_0x7847('0x9')](),controller['update']);router['delete']('/:id',auth[_0x7847('0x9')](),controller['destroy']);router[_0x7847('0x1e')]('/:id/dispositions',auth[_0x7847('0x9')](),controller[_0x7847('0x1f')]);router['delete'](_0x7847('0x17'),auth['isAuthenticated'](),controller[_0x7847('0x20')]);module[_0x7847('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97bf=['field','STRING','sequelize','exports','VIRTUAL','getDataValue'];(function(_0x9d9797,_0xe3ebe8){var _0x3c16ca=function(_0x3d8735){while(--_0x3d8735){_0x9d9797['push'](_0x9d9797['shift']());}};_0x3c16ca(++_0xe3ebe8);}(_0x97bf,0x188));var _0xf97b=function(_0x3239fc,_0x35bbe6){_0x3239fc=_0x3239fc-0x0;var _0x500000=_0x97bf[_0x3239fc];return _0x500000;};'use strict';var Sequelize=require(_0xf97b('0x0'));module[_0xf97b('0x1')]={'name':{'type':Sequelize[_0xf97b('0x2')],'get':function(_0x14c443){return this[_0xf97b('0x3')](_0xf97b('0x4'));}},'field':{'type':Sequelize[_0xf97b('0x5')],'allowNull':![]},'operator':{'type':Sequelize[_0xf97b('0x5')],'allowNull':![]},'value':{'type':Sequelize[_0xf97b('0x5')],'allowNull':![]}};
\ No newline at end of file
+var _0x6754=['getDataValue','field','STRING','sequelize','VIRTUAL'];(function(_0x1a3c9b,_0x3eb0cb){var _0x57f1d8=function(_0x53662d){while(--_0x53662d){_0x1a3c9b['push'](_0x1a3c9b['shift']());}};_0x57f1d8(++_0x3eb0cb);}(_0x6754,0x12a));var _0x4675=function(_0x237450,_0x4f33c4){_0x237450=_0x237450-0x0;var _0x5b23f2=_0x6754[_0x237450];return _0x5b23f2;};'use strict';var Sequelize=require(_0x4675('0x0'));module['exports']={'name':{'type':Sequelize[_0x4675('0x1')],'get':function(_0x109027){return this[_0x4675('0x2')](_0x4675('0x3'));}},'field':{'type':Sequelize[_0x4675('0x4')],'allowNull':![]},'operator':{'type':Sequelize[_0x4675('0x4')],'allowNull':![]},'value':{'type':Sequelize[_0x4675('0x4')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc99e=['querystring','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','update','then','destroy','end','error','stack','name','body','find','params','catch','Condition','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce'];(function(_0x25219b,_0x3f2327){var _0x1b1884=function(_0x198bd9){while(--_0x198bd9){_0x25219b['push'](_0x25219b['shift']());}};_0x1b1884(++_0x3f2327);}(_0xc99e,0x6e));var _0xec99=function(_0x584038,_0x1f0f12){_0x584038=_0x584038-0x0;var _0x5078e7=_0xc99e[_0x584038];return _0x5078e7;};'use strict';var pdf=require(_0xec99('0x0'));var emlformat=require(_0xec99('0x1'));var rimraf=require(_0xec99('0x2'));var zipdir=require(_0xec99('0x3'));var jsonpatch=require(_0xec99('0x4'));var rp=require(_0xec99('0x5'));var moment=require('moment');var BPromise=require(_0xec99('0x6'));var Mustache=require(_0xec99('0x7'));var util=require(_0xec99('0x8'));var path=require(_0xec99('0x9'));var sox=require(_0xec99('0xa'));var csv=require(_0xec99('0xb'));var ejs=require(_0xec99('0xc'));var fs=require('fs');var _=require(_0xec99('0xd'));var squel=require('squel');var crypto=require(_0xec99('0xe'));var jsforce=require(_0xec99('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xec99('0xb'));var querystring=require(_0xec99('0x10'));var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require(_0xec99('0x11'))(_0xec99('0x12'));var utils=require(_0xec99('0x13'));var config=require('../../config/environment');var db=require(_0xec99('0x14'))['db'];function respondWithStatusCode(_0x169b62,_0x1853d7){_0x1853d7=_0x1853d7||0xcc;return function(_0x33e223){if(_0x33e223){return _0x169b62[_0xec99('0x15')](_0x1853d7);}return _0x169b62[_0xec99('0x16')](_0x1853d7)['end']();};}function respondWithResult(_0xd5aa6f,_0x549ba9){_0x549ba9=_0x549ba9||0xc8;return function(_0xe1a114){if(_0xe1a114){return _0xd5aa6f['status'](_0x549ba9)[_0xec99('0x17')](_0xe1a114);}};}function respondWithFilteredResult(_0x57bf4c,_0x59374e){return function(_0xc7627){if(_0xc7627){var _0x569825=_0xc7627[_0xec99('0x18')],_0x3234f2=_0x59374e[_0xec99('0x19')],_0x159c47=_0x59374e[_0xec99('0x19')]+_0x59374e[_0xec99('0x1a')],_0x3946b3;if(_0x159c47>=_0x569825){_0x159c47=_0x569825;_0x3946b3=0xc8;}else{_0x3946b3=0xce;}_0x57bf4c['status'](_0x3946b3);return _0x57bf4c[_0xec99('0x1b')](_0xec99('0x1c'),_0x3234f2+'-'+_0x159c47+'/'+_0x569825)[_0xec99('0x17')](_0xc7627);}return null;};}function patchUpdates(_0x387e3d){return function(_0x3d7eb5){try{jsonpatch[_0xec99('0x1d')](_0x3d7eb5,_0x387e3d,!![]);}catch(_0x50ae54){return BPromise['reject'](_0x50ae54);}return _0x3d7eb5['save']();};}function saveUpdates(_0x1a6d8e,_0x1fb587){return function(_0x6127a9){if(_0x6127a9){return _0x6127a9[_0xec99('0x1e')](_0x1a6d8e)[_0xec99('0x1f')](function(_0x1edaf9){return _0x1edaf9;});}return null;};}function removeEntity(_0x1644a8,_0x55c955){return function(_0x56b54b){if(_0x56b54b){return _0x56b54b[_0xec99('0x20')]()[_0xec99('0x1f')](function(){_0x1644a8['status'](0xcc)[_0xec99('0x21')]();});}};}function handleEntityNotFound(_0x1be97d,_0x172d6b){return function(_0x2c4a60){if(!_0x2c4a60){_0x1be97d[_0xec99('0x15')](0x194);}return _0x2c4a60;};}function handleError(_0x3c2e16,_0x1b32c6){_0x1b32c6=_0x1b32c6||0x1f4;return function(_0x10ab73){logger[_0xec99('0x22')](_0x10ab73[_0xec99('0x23')]);if(_0x10ab73['name']){delete _0x10ab73[_0xec99('0x24')];}_0x3c2e16['status'](_0x1b32c6)['send'](_0x10ab73);};}exports['update']=function(_0x4733ea,_0x39754c){if(_0x4733ea[_0xec99('0x25')]['id']){delete _0x4733ea[_0xec99('0x25')]['id'];}return db['Condition'][_0xec99('0x26')]({'where':{'id':_0x4733ea[_0xec99('0x27')]['id']}})[_0xec99('0x1f')](handleEntityNotFound(_0x39754c,null))[_0xec99('0x1f')](saveUpdates(_0x4733ea[_0xec99('0x25')],null))[_0xec99('0x1f')](respondWithResult(_0x39754c,null))[_0xec99('0x28')](handleError(_0x39754c,null));};exports[_0xec99('0x20')]=function(_0x12a3d6,_0x373666){return db[_0xec99('0x29')]['find']({'where':{'id':_0x12a3d6[_0xec99('0x27')]['id']}})[_0xec99('0x1f')](handleEntityNotFound(_0x373666,null))['then'](removeEntity(_0x373666,null))[_0xec99('0x28')](handleError(_0x373666,null));};
\ No newline at end of file
+var _0x97ee=['path','to-csv','ejs','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','reject','update','then','error','stack','name','send','body','Condition','find','catch','destroy','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x59e7a8,_0x4c232f){var _0xc8d1b7=function(_0x5dc6cf){while(--_0x5dc6cf){_0x59e7a8['push'](_0x59e7a8['shift']());}};_0xc8d1b7(++_0x4c232f);}(_0x97ee,0x1ee));var _0xe97e=function(_0x3aaf0a,_0x450970){_0x3aaf0a=_0x3aaf0a-0x0;var _0x33e6bc=_0x97ee[_0x3aaf0a];return _0x33e6bc;};'use strict';var pdf=require(_0xe97e('0x0'));var emlformat=require(_0xe97e('0x1'));var rimraf=require(_0xe97e('0x2'));var zipdir=require(_0xe97e('0x3'));var jsonpatch=require(_0xe97e('0x4'));var rp=require(_0xe97e('0x5'));var moment=require(_0xe97e('0x6'));var BPromise=require(_0xe97e('0x7'));var Mustache=require(_0xe97e('0x8'));var util=require(_0xe97e('0x9'));var path=require(_0xe97e('0xa'));var sox=require('sox');var csv=require(_0xe97e('0xb'));var ejs=require(_0xe97e('0xc'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xe97e('0xd'));var jsforce=require(_0xe97e('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xe97e('0xb'));var querystring=require(_0xe97e('0xf'));var Papa=require(_0xe97e('0x10'));var Redis=require(_0xe97e('0x11'));var qs=require(_0xe97e('0x12'));var logger=require(_0xe97e('0x13'))('api');var utils=require(_0xe97e('0x14'));var config=require('../../config/environment');var db=require(_0xe97e('0x15'))['db'];function respondWithStatusCode(_0x53fd5d,_0x31321c){_0x31321c=_0x31321c||0xcc;return function(_0x3cbc21){if(_0x3cbc21){return _0x53fd5d[_0xe97e('0x16')](_0x31321c);}return _0x53fd5d[_0xe97e('0x17')](_0x31321c)[_0xe97e('0x18')]();};}function respondWithResult(_0x3b4efd,_0x337d98){_0x337d98=_0x337d98||0xc8;return function(_0x48f0af){if(_0x48f0af){return _0x3b4efd[_0xe97e('0x17')](_0x337d98)[_0xe97e('0x19')](_0x48f0af);}};}function respondWithFilteredResult(_0x547feb,_0x2ee49c){return function(_0x5eb605){if(_0x5eb605){var _0x8cab89=_0x5eb605[_0xe97e('0x1a')],_0x24ba22=_0x2ee49c[_0xe97e('0x1b')],_0x40884c=_0x2ee49c[_0xe97e('0x1b')]+_0x2ee49c[_0xe97e('0x1c')],_0x3e4d64;if(_0x40884c>=_0x8cab89){_0x40884c=_0x8cab89;_0x3e4d64=0xc8;}else{_0x3e4d64=0xce;}_0x547feb['status'](_0x3e4d64);return _0x547feb['set'](_0xe97e('0x1d'),_0x24ba22+'-'+_0x40884c+'/'+_0x8cab89)['json'](_0x5eb605);}return null;};}function patchUpdates(_0x4c9b3b){return function(_0x563e11){try{jsonpatch['apply'](_0x563e11,_0x4c9b3b,!![]);}catch(_0x276cd5){return BPromise[_0xe97e('0x1e')](_0x276cd5);}return _0x563e11['save']();};}function saveUpdates(_0xea69f3,_0x21277f){return function(_0x42eca6){if(_0x42eca6){return _0x42eca6[_0xe97e('0x1f')](_0xea69f3)[_0xe97e('0x20')](function(_0x360bf3){return _0x360bf3;});}return null;};}function removeEntity(_0x5bdc49,_0x3d5d7d){return function(_0x38a065){if(_0x38a065){return _0x38a065['destroy']()[_0xe97e('0x20')](function(){_0x5bdc49['status'](0xcc)[_0xe97e('0x18')]();});}};}function handleEntityNotFound(_0x38dd28,_0x39f81c){return function(_0x4a49ec){if(!_0x4a49ec){_0x38dd28['sendStatus'](0x194);}return _0x4a49ec;};}function handleError(_0xdf4435,_0x13e225){_0x13e225=_0x13e225||0x1f4;return function(_0x3490ef){logger[_0xe97e('0x21')](_0x3490ef[_0xe97e('0x22')]);if(_0x3490ef[_0xe97e('0x23')]){delete _0x3490ef[_0xe97e('0x23')];}_0xdf4435['status'](_0x13e225)[_0xe97e('0x24')](_0x3490ef);};}exports['update']=function(_0x2ca201,_0x361b03){if(_0x2ca201[_0xe97e('0x25')]['id']){delete _0x2ca201[_0xe97e('0x25')]['id'];}return db[_0xe97e('0x26')][_0xe97e('0x27')]({'where':{'id':_0x2ca201['params']['id']}})[_0xe97e('0x20')](handleEntityNotFound(_0x361b03,null))[_0xe97e('0x20')](saveUpdates(_0x2ca201[_0xe97e('0x25')],null))['then'](respondWithResult(_0x361b03,null))[_0xe97e('0x28')](handleError(_0x361b03,null));};exports[_0xe97e('0x29')]=function(_0x1e19cf,_0x3af569){return db['Condition'][_0xe97e('0x27')]({'where':{'id':_0x1e19cf['params']['id']}})[_0xe97e('0x20')](handleEntityNotFound(_0x3af569,null))[_0xe97e('0x20')](removeEntity(_0x3af569,null))['catch'](handleError(_0x3af569,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50ad=['Condition','tools_conditions','lodash','../../config/logger','api','moment','bluebird','request-promise','./condition.attributes','exports','define'];(function(_0x1098db,_0x39ba6b){var _0x14f090=function(_0x473ffe){while(--_0x473ffe){_0x1098db['push'](_0x1098db['shift']());}};_0x14f090(++_0x39ba6b);}(_0x50ad,0xde));var _0xd50a=function(_0x54b56d,_0x43cee0){_0x54b56d=_0x54b56d-0x0;var _0x29e581=_0x50ad[_0x54b56d];return _0x29e581;};'use strict';var _=require(_0xd50a('0x0'));var util=require('util');var logger=require(_0xd50a('0x1'))(_0xd50a('0x2'));var moment=require(_0xd50a('0x3'));var BPromise=require(_0xd50a('0x4'));var rp=require(_0xd50a('0x5'));var attributes=require(_0xd50a('0x6'));module[_0xd50a('0x7')]=function(_0xb8b777,_0x50e92f){return _0xb8b777[_0xd50a('0x8')](_0xd50a('0x9'),attributes,{'tableName':_0xd50a('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9083=['bluebird','request-promise','exports','Condition','tools_conditions','lodash','util','../../config/logger','api','moment'];(function(_0x418917,_0x48419d){var _0x206394=function(_0x48db26){while(--_0x48db26){_0x418917['push'](_0x418917['shift']());}};_0x206394(++_0x48419d);}(_0x9083,0x87));var _0x3908=function(_0x1f2b0e,_0xc804dc){_0x1f2b0e=_0x1f2b0e-0x0;var _0x23b334=_0x9083[_0x1f2b0e];return _0x23b334;};'use strict';var _=require(_0x3908('0x0'));var util=require(_0x3908('0x1'));var logger=require(_0x3908('0x2'))(_0x3908('0x3'));var moment=require(_0x3908('0x4'));var BPromise=require(_0x3908('0x5'));var rp=require(_0x3908('0x6'));var attributes=require('./condition.attributes');module[_0x3908('0x7')]=function(_0x497b54,_0x567c00){return _0x497b54['define'](_0x3908('0x8'),attributes,{'tableName':_0x3908('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x291c=['rpc','../../config/environment','jayson/promise','client','http','request','then','Condition,\x20%s,\x20%s','request\x20sent','Condition,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x397843,_0xa7173e){var _0x2ba028=function(_0x243ab4){while(--_0x243ab4){_0x397843['push'](_0x397843['shift']());}};_0x2ba028(++_0xa7173e);}(_0x291c,0x191));var _0xc291=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x291c[_0x2be8c2];return _0x97f531;};'use strict';var _=require(_0xc291('0x0'));var util=require(_0xc291('0x1'));var moment=require(_0xc291('0x2'));var BPromise=require(_0xc291('0x3'));var rs=require(_0xc291('0x4'));var fs=require('fs');var db=require(_0xc291('0x5'))['db'];var utils=require(_0xc291('0x6'));var logger=require('../../config/logger')(_0xc291('0x7'));var config=require(_0xc291('0x8'));var jayson=require(_0xc291('0x9'));var client=jayson[_0xc291('0xa')][_0xc291('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1d40d0,_0x554acd,_0x4ce754){return new BPromise(function(_0x50ce28,_0x432338){return client[_0xc291('0xc')](_0x1d40d0,_0x4ce754)[_0xc291('0xd')](function(_0x24ba0b){logger['info'](_0xc291('0xe'),_0x554acd,_0xc291('0xf'));logger['debug'](_0xc291('0x10'),_0x554acd,_0xc291('0xf'),JSON[_0xc291('0x11')](_0x24ba0b));if(_0x24ba0b[_0xc291('0x12')]){if(_0x24ba0b[_0xc291('0x12')][_0xc291('0x13')]===0x1f4){logger[_0xc291('0x12')](_0xc291('0xe'),_0x554acd,_0x24ba0b[_0xc291('0x12')]['message']);return _0x432338(_0x24ba0b[_0xc291('0x12')][_0xc291('0x14')]);}logger[_0xc291('0x12')](_0xc291('0xe'),_0x554acd,_0x24ba0b['error'][_0xc291('0x14')]);return _0x50ce28(_0x24ba0b[_0xc291('0x12')]['message']);}else{logger[_0xc291('0x15')](_0xc291('0xe'),_0x554acd,_0xc291('0xf'));_0x50ce28(_0x24ba0b[_0xc291('0x16')][_0xc291('0x14')]);}})[_0xc291('0x17')](function(_0xadf9d4){logger[_0xc291('0x12')](_0xc291('0xe'),_0x554acd,_0xadf9d4);_0x432338(_0xadf9d4);});});}
\ No newline at end of file
+var _0x88d5=['message','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','Condition,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x88d5,0xe6));var _0x588d=function(_0x2d370a,_0x5ea4d9){_0x2d370a=_0x2d370a-0x0;var _0x20fa6f=_0x88d5[_0x2d370a];return _0x20fa6f;};'use strict';var _=require(_0x588d('0x0'));var util=require(_0x588d('0x1'));var moment=require('moment');var BPromise=require(_0x588d('0x2'));var rs=require(_0x588d('0x3'));var fs=require('fs');var Redis=require(_0x588d('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x588d('0x5'));var logger=require(_0x588d('0x6'))(_0x588d('0x7'));var config=require(_0x588d('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x4161ee,_0x2fc6de,_0x36a7fc){return new BPromise(function(_0x576c9d,_0x3c9ed4){return client[_0x588d('0x9')](_0x4161ee,_0x36a7fc)[_0x588d('0xa')](function(_0x101bb3){logger['info'](_0x588d('0xb'),_0x2fc6de,_0x588d('0xc'));logger[_0x588d('0xd')]('Condition,\x20%s,\x20%s,\x20%s',_0x2fc6de,_0x588d('0xc'),JSON[_0x588d('0xe')](_0x101bb3));if(_0x101bb3[_0x588d('0xf')]){if(_0x101bb3[_0x588d('0xf')][_0x588d('0x10')]===0x1f4){logger[_0x588d('0xf')](_0x588d('0xb'),_0x2fc6de,_0x101bb3[_0x588d('0xf')]['message']);return _0x3c9ed4(_0x101bb3[_0x588d('0xf')][_0x588d('0x11')]);}logger['error'](_0x588d('0xb'),_0x2fc6de,_0x101bb3[_0x588d('0xf')][_0x588d('0x11')]);return _0x576c9d(_0x101bb3['error']['message']);}else{logger['info'](_0x588d('0xb'),_0x2fc6de,_0x588d('0xc'));_0x576c9d(_0x101bb3[_0x588d('0x12')][_0x588d('0x11')]);}})['catch'](function(_0x180def){logger['error'](_0x588d('0xb'),_0x2fc6de,_0x180def);_0x3c9ed4(_0x180def);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1ee=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated','update'];(function(_0x57fa12,_0x4b82fe){var _0x5dae05=function(_0xb88f94){while(--_0xb88f94){_0x57fa12['push'](_0x57fa12['shift']());}};_0x5dae05(++_0x4b82fe);}(_0xb1ee,0xa9));var _0xeb1e=function(_0x4e93a9,_0x413f30){_0x4e93a9=_0x4e93a9-0x0;var _0x43013c=_0xb1ee[_0x4e93a9];return _0x43013c;};'use strict';var multer=require(_0xeb1e('0x0'));var util=require(_0xeb1e('0x1'));var path=require(_0xeb1e('0x2'));var timeout=require(_0xeb1e('0x3'));var express=require(_0xeb1e('0x4'));var router=express[_0xeb1e('0x5')]();var auth=require(_0xeb1e('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xeb1e('0x7'));var controller=require(_0xeb1e('0x8'));router[_0xeb1e('0x9')](_0xeb1e('0xa'),auth[_0xeb1e('0xb')](),controller[_0xeb1e('0xc')]);router['delete'](_0xeb1e('0xa'),auth[_0xeb1e('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xcd42=['/:id','destroy','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./condition.controller','isAuthenticated','update','delete'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xcd42,0xff));var _0x2cd4=function(_0x318631,_0x3fc087){_0x318631=_0x318631-0x0;var _0x523d36=_0xcd42[_0x318631];return _0x523d36;};'use strict';var multer=require(_0x2cd4('0x0'));var util=require('util');var path=require(_0x2cd4('0x1'));var timeout=require(_0x2cd4('0x2'));var express=require(_0x2cd4('0x3'));var router=express['Router']();var auth=require(_0x2cd4('0x4'));var interaction=require(_0x2cd4('0x5'));var config=require(_0x2cd4('0x6'));var controller=require(_0x2cd4('0x7'));router['put']('/:id',auth[_0x2cd4('0x8')](),controller[_0x2cd4('0x9')]);router[_0x2cd4('0xa')](_0x2cd4('0xb'),auth[_0x2cd4('0x8')](),controller[_0x2cd4('0xc')]);module[_0x2cd4('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xece1=['name','sequelize'];(function(_0x1cb2c5,_0x2589dc){var _0x1e373c=function(_0x55121a){while(--_0x55121a){_0x1cb2c5['push'](_0x1cb2c5['shift']());}};_0x1e373c(++_0x2589dc);}(_0xece1,0xc3));var _0x1ece=function(_0x1039d3,_0x57808c){_0x1039d3=_0x1039d3-0x0;var _0xb9088f=_0xece1[_0x1039d3];return _0xb9088f;};'use strict';var Sequelize=require(_0x1ece('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x1ece('0x1')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x415d=['exports','name','STRING','sequelize'];(function(_0x3d48b7,_0xfa7236){var _0xe974cc=function(_0x41bed9){while(--_0x41bed9){_0x3d48b7['push'](_0x3d48b7['shift']());}};_0xe974cc(++_0xfa7236);}(_0x415d,0x163));var _0xd415=function(_0x402fee,_0x34e3f8){_0x402fee=_0x402fee-0x0;var _0x548aec=_0x415d[_0x402fee];return _0x548aec;};'use strict';var Sequelize=require(_0xd415('0x0'));module[_0xd415('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd415('0x2')},'description':{'type':Sequelize[_0xd415('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf6d=['dateStart','query','dateEnd','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','map','filter','includeAll','include','catch','show','params','rawAttributes','find','create','body','clone','options','omit','createdAt','updatedAt','type','iframe','attrUrl','attrs','value','https://','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','DashboardItem','findOne','getItems','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./dashboard.socket','register','sendStatus','status','count','offset','limit','Content-Range','json','apply','reject','save','update','then','destroy','end','error','name','Dashboard','model','keys'];(function(_0x4283fc,_0x3960dd){var _0x1d5e98=function(_0x149c3b){while(--_0x149c3b){_0x4283fc['push'](_0x4283fc['shift']());}};_0x1d5e98(++_0x3960dd);}(_0xbf6d,0x181));var _0xdbf6=function(_0x46c9cc,_0xd27dca){_0x46c9cc=_0x46c9cc-0x0;var _0x21b46e=_0xbf6d[_0x46c9cc];return _0x21b46e;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xdbf6('0x0'));var zipdir=require(_0xdbf6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdbf6('0x2'));var moment=require('moment');var BPromise=require(_0xdbf6('0x3'));var Mustache=require(_0xdbf6('0x4'));var util=require('util');var path=require(_0xdbf6('0x5'));var sox=require(_0xdbf6('0x6'));var csv=require(_0xdbf6('0x7'));var ejs=require(_0xdbf6('0x8'));var fs=require('fs');var _=require(_0xdbf6('0x9'));var squel=require(_0xdbf6('0xa'));var crypto=require(_0xdbf6('0xb'));var jsforce=require(_0xdbf6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xdbf6('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var qs=require(_0xdbf6('0xd'));var logger=require(_0xdbf6('0xe'))(_0xdbf6('0xf'));var utils=require(_0xdbf6('0x10'));var config=require(_0xdbf6('0x11'));var db=require(_0xdbf6('0x12'))['db'];config[_0xdbf6('0x13')]=_['defaults'](config[_0xdbf6('0x13')],{'host':_0xdbf6('0x14'),'port':0x18eb});var socket=require(_0xdbf6('0x15'))(config['redis']);require(_0xdbf6('0x16'))[_0xdbf6('0x17')](socket);function respondWithStatusCode(_0x41c7a8,_0x159447){_0x159447=_0x159447||0xcc;return function(_0x4d095b){if(_0x4d095b){return _0x41c7a8[_0xdbf6('0x18')](_0x159447);}return _0x41c7a8[_0xdbf6('0x19')](_0x159447)['end']();};}function respondWithResult(_0x161d39,_0x4ac65f){_0x4ac65f=_0x4ac65f||0xc8;return function(_0x52d3cb){if(_0x52d3cb){return _0x161d39[_0xdbf6('0x19')](_0x4ac65f)['json'](_0x52d3cb);}};}function respondWithFilteredResult(_0x5d942e,_0x585531){return function(_0x5a081a){if(_0x5a081a){var _0x11f85a=_0x5a081a[_0xdbf6('0x1a')],_0x11b975=_0x585531[_0xdbf6('0x1b')],_0xc93ed3=_0x585531[_0xdbf6('0x1b')]+_0x585531[_0xdbf6('0x1c')],_0x3cae33;if(_0xc93ed3>=_0x11f85a){_0xc93ed3=_0x11f85a;_0x3cae33=0xc8;}else{_0x3cae33=0xce;}_0x5d942e[_0xdbf6('0x19')](_0x3cae33);return _0x5d942e['set'](_0xdbf6('0x1d'),_0x11b975+'-'+_0xc93ed3+'/'+_0x11f85a)[_0xdbf6('0x1e')](_0x5a081a);}return null;};}function patchUpdates(_0x146a30){return function(_0x52851e){try{jsonpatch[_0xdbf6('0x1f')](_0x52851e,_0x146a30,!![]);}catch(_0x5d3976){return BPromise[_0xdbf6('0x20')](_0x5d3976);}return _0x52851e[_0xdbf6('0x21')]();};}function saveUpdates(_0x445c81,_0x8c541e){return function(_0x2e8f2b){if(_0x2e8f2b){return _0x2e8f2b[_0xdbf6('0x22')](_0x445c81)[_0xdbf6('0x23')](function(_0x4417d7){return _0x4417d7;});}return null;};}function removeEntity(_0x23034f,_0x278a59){return function(_0x571f4e){if(_0x571f4e){return _0x571f4e[_0xdbf6('0x24')]()[_0xdbf6('0x23')](function(){_0x23034f['status'](0xcc)[_0xdbf6('0x25')]();});}};}function handleEntityNotFound(_0x294f28,_0x52e2b5){return function(_0x5d2bc6){if(!_0x5d2bc6){_0x294f28[_0xdbf6('0x18')](0x194);}return _0x5d2bc6;};}function handleError(_0x397018,_0x31879b){_0x31879b=_0x31879b||0x1f4;return function(_0x13edc0){logger[_0xdbf6('0x26')](_0x13edc0['stack']);if(_0x13edc0['name']){delete _0x13edc0[_0xdbf6('0x27')];}_0x397018[_0xdbf6('0x19')](_0x31879b)['send'](_0x13edc0);};}exports['index']=function(_0x351872,_0x272eed){var _0x2ed42c={},_0x1796c2={},_0x564f71={'count':0x0,'rows':[]};var _0x57dd66=db[_0xdbf6('0x28')]['rawAttributes'];_0x1796c2[_0xdbf6('0x29')]=_[_0xdbf6('0x2a')](_0x57dd66);var _0x51ff8a={'dateStart':_0x351872['query'][_0xdbf6('0x2b')],'dateEnd':_0x351872[_0xdbf6('0x2c')][_0xdbf6('0x2d')]};delete _0x351872[_0xdbf6('0x2c')]['dateStart'];delete _0x351872['query'][_0xdbf6('0x2d')];_0x1796c2[_0xdbf6('0x2c')]=_[_0xdbf6('0x2a')](_0x351872[_0xdbf6('0x2c')]);_0x1796c2['filters']=_['intersection'](_0x1796c2[_0xdbf6('0x29')],_0x1796c2['query']);_0x2ed42c['attributes']=_[_0xdbf6('0x2e')](_0x1796c2[_0xdbf6('0x29')],qs[_0xdbf6('0x2f')](_0x351872[_0xdbf6('0x2c')][_0xdbf6('0x2f')]));_0x2ed42c['attributes']=_0x2ed42c[_0xdbf6('0x30')][_0xdbf6('0x31')]?_0x2ed42c[_0xdbf6('0x30')]:_0x1796c2[_0xdbf6('0x29')];if(!_0x351872[_0xdbf6('0x2c')][_0xdbf6('0x32')](_0xdbf6('0x33'))){_0x2ed42c[_0xdbf6('0x1c')]=qs['limit'](_0x351872[_0xdbf6('0x2c')][_0xdbf6('0x1c')]);_0x2ed42c[_0xdbf6('0x1b')]=qs[_0xdbf6('0x1b')](_0x351872['query']['offset']);}_0x2ed42c[_0xdbf6('0x34')]=qs['sort'](_0x351872[_0xdbf6('0x2c')][_0xdbf6('0x35')]);_0x2ed42c[_0xdbf6('0x36')]=qs[_0xdbf6('0x37')](_[_0xdbf6('0x38')](_0x351872['query'],_0x1796c2[_0xdbf6('0x37')]));if(_0x51ff8a[_0xdbf6('0x2b')]){if(_0x51ff8a[_0xdbf6('0x2d')]){_0x51ff8a['dateEnd']=moment(_0x51ff8a[_0xdbf6('0x2d')])[_0xdbf6('0x39')](0x1,_0xdbf6('0x3a'));}else{_0x51ff8a[_0xdbf6('0x2d')]=moment(_0x51ff8a[_0xdbf6('0x2b')])[_0xdbf6('0x39')](0x1,_0xdbf6('0x3a'));}_['merge'](_0x2ed42c[_0xdbf6('0x36')],{'createdAt':{'$gte':_0x51ff8a['dateStart'],'$lte':_0x51ff8a['dateEnd']}});}if(_0x351872[_0xdbf6('0x2c')]['filter']){_0x2ed42c[_0xdbf6('0x36')]=_[_0xdbf6('0x3b')](_0x2ed42c[_0xdbf6('0x36')],{'$or':_[_0xdbf6('0x3c')](_0x2ed42c[_0xdbf6('0x30')],function(_0x4b7807){var _0x284d6b={};_0x284d6b[_0x4b7807]={'$like':'%'+_0x351872['query'][_0xdbf6('0x3d')]+'%'};return _0x284d6b;})});}_0x2ed42c=_[_0xdbf6('0x3b')]({},_0x2ed42c,_0x351872['options']);var _0x526a6a={'where':_0x2ed42c[_0xdbf6('0x36')]};return db[_0xdbf6('0x28')]['count'](_0x526a6a)[_0xdbf6('0x23')](function(_0x569c14){_0x564f71['count']=_0x569c14;if(_0x351872['query'][_0xdbf6('0x3e')]){_0x2ed42c[_0xdbf6('0x3f')]=[{'all':!![]}];}return db[_0xdbf6('0x28')]['findAll'](_0x2ed42c);})['then'](function(_0x49326e){_0x564f71['rows']=_0x49326e;return _0x564f71;})[_0xdbf6('0x23')](respondWithFilteredResult(_0x272eed,_0x2ed42c))[_0xdbf6('0x40')](handleError(_0x272eed,null));};exports[_0xdbf6('0x41')]=function(_0x1776cc,_0x3850eb){var _0x129704={'raw':![],'where':{'id':_0x1776cc[_0xdbf6('0x42')]['id']}},_0x2d5918={};_0x2d5918[_0xdbf6('0x29')]=_['keys'](db['Dashboard'][_0xdbf6('0x43')]);_0x2d5918[_0xdbf6('0x2c')]=_[_0xdbf6('0x2a')](_0x1776cc[_0xdbf6('0x2c')]);_0x2d5918[_0xdbf6('0x37')]=_[_0xdbf6('0x2e')](_0x2d5918[_0xdbf6('0x29')],_0x2d5918[_0xdbf6('0x2c')]);_0x129704[_0xdbf6('0x30')]=_['intersection'](_0x2d5918['model'],qs[_0xdbf6('0x2f')](_0x1776cc['query']['fields']));_0x129704[_0xdbf6('0x30')]=_0x129704[_0xdbf6('0x30')]['length']?_0x129704[_0xdbf6('0x30')]:_0x2d5918['model'];if(_0x1776cc['query'][_0xdbf6('0x3e')]){_0x129704[_0xdbf6('0x3f')]=[{'all':!![]}];}_0x129704=_[_0xdbf6('0x3b')]({},_0x129704,_0x1776cc['options']);return db[_0xdbf6('0x28')][_0xdbf6('0x44')](_0x129704)[_0xdbf6('0x23')](handleEntityNotFound(_0x3850eb,null))[_0xdbf6('0x23')](respondWithResult(_0x3850eb,null))['catch'](handleError(_0x3850eb,null));};exports[_0xdbf6('0x45')]=function(_0x1e7c71,_0x1c8384){return db[_0xdbf6('0x28')]['create'](_0x1e7c71[_0xdbf6('0x46')],{})['then'](respondWithResult(_0x1c8384,0xc9))[_0xdbf6('0x40')](handleError(_0x1c8384,null));};exports[_0xdbf6('0x47')]=function(_0x38bc57,_0x349463){var _0x50c98e={'raw':![],'where':{'id':_0x38bc57[_0xdbf6('0x42')]['id']}},_0x36bf34={};_0x36bf34[_0xdbf6('0x29')]=_[_0xdbf6('0x2a')](db['Dashboard'][_0xdbf6('0x43')]);_0x50c98e[_0xdbf6('0x30')]=_[_0xdbf6('0x2e')](_0x36bf34[_0xdbf6('0x29')],qs[_0xdbf6('0x2f')](_0x38bc57[_0xdbf6('0x2c')][_0xdbf6('0x2f')]));_0x50c98e[_0xdbf6('0x30')]=_0x50c98e[_0xdbf6('0x30')][_0xdbf6('0x31')]?_0x50c98e[_0xdbf6('0x30')]:_0x36bf34[_0xdbf6('0x29')];if(_0x38bc57['query'][_0xdbf6('0x3e')]){_0x50c98e[_0xdbf6('0x3f')]=[{'all':!![]}];}_0x50c98e=_[_0xdbf6('0x3b')]({},_0x50c98e,_0x38bc57[_0xdbf6('0x48')]);return db[_0xdbf6('0x28')][_0xdbf6('0x44')](_0x50c98e)[_0xdbf6('0x23')](handleEntityNotFound(_0x349463,null))[_0xdbf6('0x23')](function(_0x37c1c4){if(_0x37c1c4){var _0x415854=_0x37c1c4['get']({'plain':!![]});_0x415854=qs[_0xdbf6('0x49')](_0x415854,['id',_0xdbf6('0x4a'),_0xdbf6('0x4b')]);_0x38bc57['body']=_['omit'](_0x38bc57[_0xdbf6('0x46')],['id','createdAt','updatedAt']);return db[_0xdbf6('0x28')]['create'](_[_0xdbf6('0x3b')](_0x415854,_0x38bc57[_0xdbf6('0x46')]),{'include':_0x38bc57[_0xdbf6('0x2c')]['includeAll']?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x349463,0xc9))['catch'](handleError(_0x349463,null));};exports[_0xdbf6('0x22')]=function(_0x182b58,_0xaad89a){if(_0x182b58[_0xdbf6('0x46')]['id']){delete _0x182b58[_0xdbf6('0x46')]['id'];}return db[_0xdbf6('0x28')][_0xdbf6('0x44')]({'where':{'id':_0x182b58['params']['id']}})[_0xdbf6('0x23')](handleEntityNotFound(_0xaad89a,null))['then'](saveUpdates(_0x182b58[_0xdbf6('0x46')],null))[_0xdbf6('0x23')](respondWithResult(_0xaad89a,null))['catch'](handleError(_0xaad89a,null));};exports[_0xdbf6('0x24')]=function(_0x466a60,_0x25e570){return db[_0xdbf6('0x28')]['find']({'where':{'id':_0x466a60[_0xdbf6('0x42')]['id']}})[_0xdbf6('0x23')](handleEntityNotFound(_0x25e570,null))[_0xdbf6('0x23')](removeEntity(_0x25e570,null))[_0xdbf6('0x40')](handleError(_0x25e570,null));};function widgetAttributes(_0x42528e){try{switch(_0x42528e[_0xdbf6('0x4c')]){case _0xdbf6('0x4d'):return[{'name':_0xdbf6('0x4e'),'value':_0x42528e[_0xdbf6('0x4e')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e['attrs'][0x0]?_0x42528e[_0xdbf6('0x4f')][0x0][_0xdbf6('0x50')]:undefined)||_0xdbf6('0x51')}];case'custom':return[{'name':_0xdbf6('0x52'),'value':_0x42528e[_0xdbf6('0x52')]||(_0x42528e['attrs']&&_0x42528e[_0xdbf6('0x4f')][0x0]?_0x42528e[_0xdbf6('0x4f')][0x0][_0xdbf6('0x50')]:undefined)||''}];case'clock':return[{'name':_0xdbf6('0x53'),'value':_0x42528e[_0xdbf6('0x53')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x0]?_0x42528e[_0xdbf6('0x4f')][0x0][_0xdbf6('0x50')]:undefined)||_0xdbf6('0x54')},{'name':_0xdbf6('0x55'),'value':_0x42528e[_0xdbf6('0x55')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x1]?_0x42528e[_0xdbf6('0x4f')][0x1]['value']:undefined)||_0xdbf6('0x56')},{'name':_0xdbf6('0x57'),'value':_0x42528e[_0xdbf6('0x57')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x2]?_0x42528e[_0xdbf6('0x4f')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0xdbf6('0x58'),'value':_0x42528e[_0xdbf6('0x58')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e['attrs'][0x0]?_0x42528e[_0xdbf6('0x4f')][0x0]['value']:undefined)||_0xdbf6('0x59')},{'name':_0xdbf6('0x5a'),'value':_0x42528e[_0xdbf6('0x5a')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e['attrs'][0x1]?_0x42528e[_0xdbf6('0x4f')][0x1]['value']:undefined)||[]},{'name':_0xdbf6('0x57'),'value':_0x42528e[_0xdbf6('0x57')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x2]?_0x42528e['attrs'][0x2][_0xdbf6('0x50')]:undefined)||0x14}];case _0xdbf6('0x5b'):case _0xdbf6('0x5c'):return[{'name':'attrSerie1','value':_0x42528e[_0xdbf6('0x5d')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x0]?_0x42528e[_0xdbf6('0x4f')][0x0][_0xdbf6('0x50')]:undefined)||'total'},{'name':_0xdbf6('0x5e'),'value':_0x42528e[_0xdbf6('0x5e')]||(_0x42528e['attrs']&&_0x42528e['attrs'][0x1]?_0x42528e['attrs'][0x1]['value']:undefined)||null},{'name':_0xdbf6('0x5f'),'value':_0x42528e['attrSerie3']||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x2]?_0x42528e[_0xdbf6('0x4f')][0x2][_0xdbf6('0x50')]:undefined)||null},{'name':_0xdbf6('0x5a'),'value':_0x42528e[_0xdbf6('0x5a')]||(_0x42528e['attrs']&&_0x42528e['attrs'][0x3]?_0x42528e[_0xdbf6('0x4f')][0x3]['value']:undefined)||[]}];case _0xdbf6('0x60'):return[{'name':_0xdbf6('0x61'),'type':_0x42528e[_0xdbf6('0x62')]||null,'value':_0x42528e[_0xdbf6('0x61')]||(_0x42528e[_0xdbf6('0x4f')]&&_0x42528e[_0xdbf6('0x4f')][0x0]?_0x42528e['attrs'][0x0][_0xdbf6('0x50')]:undefined)||null},{'name':_0xdbf6('0x63'),'value':_0x42528e[_0xdbf6('0x63')]||(_0x42528e['attrs']&&_0x42528e['attrs'][0x1]?_0x42528e[_0xdbf6('0x4f')][0x1][_0xdbf6('0x50')]:undefined)||0x0}];default:return[];}}catch(_0x795ba4){logger[_0xdbf6('0x26')](_0xdbf6('0x64'),JSON[_0xdbf6('0x65')](_0x795ba4));return[];}}exports[_0xdbf6('0x66')]=function(_0x1f9161,_0x571267,_0x495eac){if(_0x1f9161[_0xdbf6('0x46')]['id']){delete _0x1f9161[_0xdbf6('0x46')]['id'];}return db[_0xdbf6('0x28')][_0xdbf6('0x44')]({'where':{'id':_0x1f9161[_0xdbf6('0x42')]['id']}})[_0xdbf6('0x23')](handleEntityNotFound(_0x571267,null))['then'](function(_0x515115){if(_0x515115){_0x1f9161[_0xdbf6('0x46')][_0xdbf6('0x67')]=_0x515115['id'];_0x1f9161['body'][_0xdbf6('0x4f')]=widgetAttributes(_0x1f9161['body']);return db[_0xdbf6('0x68')][_0xdbf6('0x45')](_0x1f9161[_0xdbf6('0x46')]);}})[_0xdbf6('0x23')](respondWithResult(_0x571267,null))[_0xdbf6('0x40')](handleError(_0x571267,null));};exports['getItems']=function(_0x111ada,_0x1d74e1,_0x137454){var _0xfd10d7={};var _0x76892f={};var _0x54bdb6;var _0x363971;return db[_0xdbf6('0x28')][_0xdbf6('0x69')]({'where':{'id':_0x111ada['params']['id']}})['then'](handleEntityNotFound(_0x1d74e1,null))[_0xdbf6('0x23')](function(_0x11bc34){if(_0x11bc34){_0x54bdb6=_0x11bc34;_0x76892f[_0xdbf6('0x29')]=_[_0xdbf6('0x2a')](db['DashboardItem'][_0xdbf6('0x43')]);_0x76892f[_0xdbf6('0x2c')]=_['keys'](_0x111ada[_0xdbf6('0x2c')]);_0x76892f[_0xdbf6('0x37')]=_[_0xdbf6('0x2e')](_0x76892f[_0xdbf6('0x29')],_0x76892f[_0xdbf6('0x2c')]);_0xfd10d7[_0xdbf6('0x30')]=_[_0xdbf6('0x2e')](_0x76892f[_0xdbf6('0x29')],qs[_0xdbf6('0x2f')](_0x111ada['query']['fields']));_0xfd10d7[_0xdbf6('0x30')]=_0xfd10d7[_0xdbf6('0x30')][_0xdbf6('0x31')]?_0xfd10d7[_0xdbf6('0x30')]:_0x76892f[_0xdbf6('0x29')];_0xfd10d7[_0xdbf6('0x34')]=qs[_0xdbf6('0x35')](_0x111ada[_0xdbf6('0x2c')]['sort']);_0xfd10d7[_0xdbf6('0x36')]=qs[_0xdbf6('0x37')](_[_0xdbf6('0x38')](_0x111ada[_0xdbf6('0x2c')],_0x76892f[_0xdbf6('0x37')]));if(_0x111ada['query'][_0xdbf6('0x3d')]){_0xfd10d7[_0xdbf6('0x36')]=_['merge'](_0xfd10d7[_0xdbf6('0x36')],{'$or':_['map'](_0xfd10d7['attributes'],function(_0x590bda){var _0x4740cf={};_0x4740cf[_0x590bda]={'$like':'%'+_0x111ada[_0xdbf6('0x2c')][_0xdbf6('0x3d')]+'%'};return _0x4740cf;})});}_0xfd10d7=_[_0xdbf6('0x3b')]({},_0xfd10d7,_0x111ada[_0xdbf6('0x48')]);return _0x54bdb6[_0xdbf6('0x6a')](_0xfd10d7);}})[_0xdbf6('0x23')](function(_0x43a7d0){if(_0x43a7d0){_0x363971=_0x43a7d0[_0xdbf6('0x31')];if(!_0x111ada[_0xdbf6('0x2c')][_0xdbf6('0x32')](_0xdbf6('0x33'))){_0xfd10d7[_0xdbf6('0x1c')]=qs['limit'](_0x111ada['query']['limit']);_0xfd10d7[_0xdbf6('0x1b')]=qs['offset'](_0x111ada['query'][_0xdbf6('0x1b')]);}return _0x54bdb6[_0xdbf6('0x6a')](_0xfd10d7);}})[_0xdbf6('0x23')](function(_0x58ca60){if(_0x58ca60){return _0x58ca60?{'count':_0x363971,'rows':_0x58ca60}:null;}})['then'](respondWithResult(_0x1d74e1,null))['catch'](handleError(_0x1d74e1,null));};
\ No newline at end of file
+var _0x7d96=['attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','DashboardItem','getItems','findOne','order','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','socket.io-emitter','sendStatus','end','json','count','offset','limit','status','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','index','Dashboard','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','add','merge','filter','map','options','includeAll','include','catch','show','find','create','body','clone','params','get','omit','createdAt','updatedAt','type','iframe','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','attrTimezone','attrFontSize','counter'];(function(_0x28a9a1,_0x5f315b){var _0x1ffbc6=function(_0x2e4acb){while(--_0x2e4acb){_0x28a9a1['push'](_0x28a9a1['shift']());}};_0x1ffbc6(++_0x5f315b);}(_0x7d96,0x1d1));var _0x67d9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7d96[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x67d9('0x0'));var emlformat=require(_0x67d9('0x1'));var rimraf=require(_0x67d9('0x2'));var zipdir=require(_0x67d9('0x3'));var jsonpatch=require(_0x67d9('0x4'));var rp=require(_0x67d9('0x5'));var moment=require(_0x67d9('0x6'));var BPromise=require(_0x67d9('0x7'));var Mustache=require(_0x67d9('0x8'));var util=require(_0x67d9('0x9'));var path=require(_0x67d9('0xa'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x67d9('0xb'));var fs=require('fs');var _=require(_0x67d9('0xc'));var squel=require(_0x67d9('0xd'));var crypto=require(_0x67d9('0xe'));var jsforce=require(_0x67d9('0xf'));var deskjs=require(_0x67d9('0x10'));var toCsv=require(_0x67d9('0x11'));var querystring=require(_0x67d9('0x12'));var Papa=require(_0x67d9('0x13'));var Redis=require(_0x67d9('0x14'));var qs=require(_0x67d9('0x15'));var logger=require(_0x67d9('0x16'))(_0x67d9('0x17'));var utils=require(_0x67d9('0x18'));var config=require(_0x67d9('0x19'));var db=require(_0x67d9('0x1a'))['db'];config['redis']=_[_0x67d9('0x1b')](config[_0x67d9('0x1c')],{'host':'localhost','port':0x18eb});var socket=require(_0x67d9('0x1d'))(new Redis(config[_0x67d9('0x1c')]));require('./dashboard.socket')['register'](socket);function respondWithStatusCode(_0xa089c1,_0x4ba707){_0x4ba707=_0x4ba707||0xcc;return function(_0x5f31b2){if(_0x5f31b2){return _0xa089c1[_0x67d9('0x1e')](_0x4ba707);}return _0xa089c1['status'](_0x4ba707)[_0x67d9('0x1f')]();};}function respondWithResult(_0x5d9959,_0x4e520d){_0x4e520d=_0x4e520d||0xc8;return function(_0x541694){if(_0x541694){return _0x5d9959['status'](_0x4e520d)[_0x67d9('0x20')](_0x541694);}};}function respondWithFilteredResult(_0x5594ca,_0xacc6c3){return function(_0x482d98){if(_0x482d98){var _0x49ae13=_0x482d98[_0x67d9('0x21')],_0x4adacd=_0xacc6c3['offset'],_0xf6591d=_0xacc6c3[_0x67d9('0x22')]+_0xacc6c3[_0x67d9('0x23')],_0x1e77f2;if(_0xf6591d>=_0x49ae13){_0xf6591d=_0x49ae13;_0x1e77f2=0xc8;}else{_0x1e77f2=0xce;}_0x5594ca[_0x67d9('0x24')](_0x1e77f2);return _0x5594ca['set'](_0x67d9('0x25'),_0x4adacd+'-'+_0xf6591d+'/'+_0x49ae13)[_0x67d9('0x20')](_0x482d98);}return null;};}function patchUpdates(_0x4d8252){return function(_0x5f3fd6){try{jsonpatch[_0x67d9('0x26')](_0x5f3fd6,_0x4d8252,!![]);}catch(_0x5d5c00){return BPromise[_0x67d9('0x27')](_0x5d5c00);}return _0x5f3fd6[_0x67d9('0x28')]();};}function saveUpdates(_0x13db43,_0x30d20e){return function(_0x10c3e9){if(_0x10c3e9){return _0x10c3e9[_0x67d9('0x29')](_0x13db43)[_0x67d9('0x2a')](function(_0x636036){return _0x636036;});}return null;};}function removeEntity(_0xde04fa,_0x347cab){return function(_0x2e0de3){if(_0x2e0de3){return _0x2e0de3[_0x67d9('0x2b')]()[_0x67d9('0x2a')](function(){_0xde04fa[_0x67d9('0x24')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bdbc0,_0x476690){return function(_0x207eb2){if(!_0x207eb2){_0x3bdbc0[_0x67d9('0x1e')](0x194);}return _0x207eb2;};}function handleError(_0x56999e,_0x29eeb6){_0x29eeb6=_0x29eeb6||0x1f4;return function(_0x22056){logger[_0x67d9('0x2c')](_0x22056[_0x67d9('0x2d')]);if(_0x22056['name']){delete _0x22056['name'];}_0x56999e['status'](_0x29eeb6)[_0x67d9('0x2e')](_0x22056);};}exports[_0x67d9('0x2f')]=function(_0x114362,_0xd343ca){var _0x3cabb9={},_0x2d6939={},_0xe7ae70={'count':0x0,'rows':[]};var _0x2f90ad=db[_0x67d9('0x30')][_0x67d9('0x31')];_0x2d6939[_0x67d9('0x32')]=_[_0x67d9('0x33')](_0x2f90ad);var _0x21092e={'dateStart':_0x114362[_0x67d9('0x34')][_0x67d9('0x35')],'dateEnd':_0x114362[_0x67d9('0x34')]['dateEnd']};delete _0x114362[_0x67d9('0x34')][_0x67d9('0x35')];delete _0x114362[_0x67d9('0x34')][_0x67d9('0x36')];_0x2d6939['query']=_[_0x67d9('0x33')](_0x114362[_0x67d9('0x34')]);_0x2d6939[_0x67d9('0x37')]=_[_0x67d9('0x38')](_0x2d6939[_0x67d9('0x32')],_0x2d6939['query']);_0x3cabb9['attributes']=_[_0x67d9('0x38')](_0x2d6939[_0x67d9('0x32')],qs['fields'](_0x114362[_0x67d9('0x34')][_0x67d9('0x39')]));_0x3cabb9[_0x67d9('0x3a')]=_0x3cabb9[_0x67d9('0x3a')][_0x67d9('0x3b')]?_0x3cabb9[_0x67d9('0x3a')]:_0x2d6939[_0x67d9('0x32')];if(!_0x114362[_0x67d9('0x34')][_0x67d9('0x3c')](_0x67d9('0x3d'))){_0x3cabb9[_0x67d9('0x23')]=qs[_0x67d9('0x23')](_0x114362['query']['limit']);_0x3cabb9['offset']=qs['offset'](_0x114362[_0x67d9('0x34')][_0x67d9('0x22')]);}_0x3cabb9['order']=qs[_0x67d9('0x3e')](_0x114362[_0x67d9('0x34')][_0x67d9('0x3e')]);_0x3cabb9[_0x67d9('0x3f')]=qs[_0x67d9('0x37')](_[_0x67d9('0x40')](_0x114362['query'],_0x2d6939[_0x67d9('0x37')]));if(_0x21092e[_0x67d9('0x35')]){if(_0x21092e[_0x67d9('0x36')]){_0x21092e[_0x67d9('0x36')]=moment(_0x21092e['dateEnd'])[_0x67d9('0x41')](0x1,'day');}else{_0x21092e[_0x67d9('0x36')]=moment(_0x21092e['dateStart'])[_0x67d9('0x41')](0x1,'day');}_[_0x67d9('0x42')](_0x3cabb9['where'],{'createdAt':{'$gte':_0x21092e[_0x67d9('0x35')],'$lte':_0x21092e[_0x67d9('0x36')]}});}if(_0x114362[_0x67d9('0x34')][_0x67d9('0x43')]){_0x3cabb9['where']=_[_0x67d9('0x42')](_0x3cabb9[_0x67d9('0x3f')],{'$or':_[_0x67d9('0x44')](_0x3cabb9[_0x67d9('0x3a')],function(_0x588d1f){var _0x516577={};_0x516577[_0x588d1f]={'$like':'%'+_0x114362['query'][_0x67d9('0x43')]+'%'};return _0x516577;})});}_0x3cabb9=_[_0x67d9('0x42')]({},_0x3cabb9,_0x114362[_0x67d9('0x45')]);var _0x212217={'where':_0x3cabb9[_0x67d9('0x3f')]};return db[_0x67d9('0x30')][_0x67d9('0x21')](_0x212217)[_0x67d9('0x2a')](function(_0xd5fe63){_0xe7ae70[_0x67d9('0x21')]=_0xd5fe63;if(_0x114362['query'][_0x67d9('0x46')]){_0x3cabb9[_0x67d9('0x47')]=[{'all':!![]}];}return db['Dashboard']['findAll'](_0x3cabb9);})[_0x67d9('0x2a')](function(_0x4b5b8f){_0xe7ae70['rows']=_0x4b5b8f;return _0xe7ae70;})[_0x67d9('0x2a')](respondWithFilteredResult(_0xd343ca,_0x3cabb9))[_0x67d9('0x48')](handleError(_0xd343ca,null));};exports[_0x67d9('0x49')]=function(_0x32ff86,_0x2b86e7){var _0x36ab0d={'raw':![],'where':{'id':_0x32ff86['params']['id']}},_0x52ec43={};_0x52ec43[_0x67d9('0x32')]=_[_0x67d9('0x33')](db[_0x67d9('0x30')]['rawAttributes']);_0x52ec43[_0x67d9('0x34')]=_['keys'](_0x32ff86[_0x67d9('0x34')]);_0x52ec43[_0x67d9('0x37')]=_[_0x67d9('0x38')](_0x52ec43[_0x67d9('0x32')],_0x52ec43[_0x67d9('0x34')]);_0x36ab0d[_0x67d9('0x3a')]=_[_0x67d9('0x38')](_0x52ec43[_0x67d9('0x32')],qs[_0x67d9('0x39')](_0x32ff86[_0x67d9('0x34')][_0x67d9('0x39')]));_0x36ab0d[_0x67d9('0x3a')]=_0x36ab0d[_0x67d9('0x3a')]['length']?_0x36ab0d[_0x67d9('0x3a')]:_0x52ec43[_0x67d9('0x32')];if(_0x32ff86[_0x67d9('0x34')][_0x67d9('0x46')]){_0x36ab0d['include']=[{'all':!![]}];}_0x36ab0d=_[_0x67d9('0x42')]({},_0x36ab0d,_0x32ff86[_0x67d9('0x45')]);return db[_0x67d9('0x30')][_0x67d9('0x4a')](_0x36ab0d)[_0x67d9('0x2a')](handleEntityNotFound(_0x2b86e7,null))[_0x67d9('0x2a')](respondWithResult(_0x2b86e7,null))[_0x67d9('0x48')](handleError(_0x2b86e7,null));};exports[_0x67d9('0x4b')]=function(_0x45a6d4,_0x9b2dfa){return db[_0x67d9('0x30')]['create'](_0x45a6d4[_0x67d9('0x4c')],{})[_0x67d9('0x2a')](respondWithResult(_0x9b2dfa,0xc9))[_0x67d9('0x48')](handleError(_0x9b2dfa,null));};exports[_0x67d9('0x4d')]=function(_0x3ef58b,_0x1aaa2d){var _0xc4629d={'raw':![],'where':{'id':_0x3ef58b[_0x67d9('0x4e')]['id']}},_0x40916c={};_0x40916c[_0x67d9('0x32')]=_['keys'](db[_0x67d9('0x30')][_0x67d9('0x31')]);_0xc4629d[_0x67d9('0x3a')]=_['intersection'](_0x40916c[_0x67d9('0x32')],qs[_0x67d9('0x39')](_0x3ef58b[_0x67d9('0x34')][_0x67d9('0x39')]));_0xc4629d['attributes']=_0xc4629d[_0x67d9('0x3a')][_0x67d9('0x3b')]?_0xc4629d[_0x67d9('0x3a')]:_0x40916c[_0x67d9('0x32')];if(_0x3ef58b[_0x67d9('0x34')][_0x67d9('0x46')]){_0xc4629d[_0x67d9('0x47')]=[{'all':!![]}];}_0xc4629d=_[_0x67d9('0x42')]({},_0xc4629d,_0x3ef58b[_0x67d9('0x45')]);return db['Dashboard'][_0x67d9('0x4a')](_0xc4629d)[_0x67d9('0x2a')](handleEntityNotFound(_0x1aaa2d,null))[_0x67d9('0x2a')](function(_0x480701){if(_0x480701){var _0xbc1e4d=_0x480701[_0x67d9('0x4f')]({'plain':!![]});_0xbc1e4d=qs[_0x67d9('0x50')](_0xbc1e4d,['id',_0x67d9('0x51'),_0x67d9('0x52')]);_0x3ef58b[_0x67d9('0x4c')]=_[_0x67d9('0x50')](_0x3ef58b[_0x67d9('0x4c')],['id',_0x67d9('0x51'),_0x67d9('0x52')]);return db[_0x67d9('0x30')][_0x67d9('0x4b')](_[_0x67d9('0x42')](_0xbc1e4d,_0x3ef58b[_0x67d9('0x4c')]),{'include':_0x3ef58b[_0x67d9('0x34')][_0x67d9('0x46')]?[{'all':!![]}]:undefined});}})[_0x67d9('0x2a')](respondWithResult(_0x1aaa2d,0xc9))[_0x67d9('0x48')](handleError(_0x1aaa2d,null));};exports[_0x67d9('0x29')]=function(_0x124f77,_0x55cb86){if(_0x124f77[_0x67d9('0x4c')]['id']){delete _0x124f77[_0x67d9('0x4c')]['id'];}return db[_0x67d9('0x30')][_0x67d9('0x4a')]({'where':{'id':_0x124f77[_0x67d9('0x4e')]['id']}})[_0x67d9('0x2a')](handleEntityNotFound(_0x55cb86,null))[_0x67d9('0x2a')](saveUpdates(_0x124f77[_0x67d9('0x4c')],null))[_0x67d9('0x2a')](respondWithResult(_0x55cb86,null))[_0x67d9('0x48')](handleError(_0x55cb86,null));};exports[_0x67d9('0x2b')]=function(_0x2a2b91,_0xff60b){return db[_0x67d9('0x30')]['find']({'where':{'id':_0x2a2b91[_0x67d9('0x4e')]['id']}})[_0x67d9('0x2a')](handleEntityNotFound(_0xff60b,null))[_0x67d9('0x2a')](removeEntity(_0xff60b,null))[_0x67d9('0x48')](handleError(_0xff60b,null));};function widgetAttributes(_0x1a6258){try{switch(_0x1a6258[_0x67d9('0x53')]){case _0x67d9('0x54'):return[{'name':'attrUrl','value':_0x1a6258[_0x67d9('0x55')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x0]?_0x1a6258[_0x67d9('0x56')][0x0][_0x67d9('0x57')]:undefined)||'https://'}];case _0x67d9('0x58'):return[{'name':_0x67d9('0x59'),'value':_0x1a6258[_0x67d9('0x59')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x0]?_0x1a6258[_0x67d9('0x56')][0x0]['value']:undefined)||''}];case _0x67d9('0x5a'):return[{'name':_0x67d9('0x5b'),'value':_0x1a6258[_0x67d9('0x5b')]||(_0x1a6258['attrs']&&_0x1a6258['attrs'][0x0]?_0x1a6258[_0x67d9('0x56')][0x0][_0x67d9('0x57')]:undefined)||'HH:mm:ss'},{'name':_0x67d9('0x5c'),'value':_0x1a6258[_0x67d9('0x5c')]||(_0x1a6258['attrs']&&_0x1a6258[_0x67d9('0x56')][0x1]?_0x1a6258[_0x67d9('0x56')][0x1][_0x67d9('0x57')]:undefined)||'0.00'},{'name':_0x67d9('0x5d'),'value':_0x1a6258[_0x67d9('0x5d')]||(_0x1a6258['attrs']&&_0x1a6258[_0x67d9('0x56')][0x2]?_0x1a6258[_0x67d9('0x56')][0x2][_0x67d9('0x57')]:undefined)||0xc}];case _0x67d9('0x5e'):return[{'name':_0x67d9('0x5f'),'value':_0x1a6258[_0x67d9('0x5f')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x0]?_0x1a6258[_0x67d9('0x56')][0x0][_0x67d9('0x57')]:undefined)||_0x67d9('0x60')},{'name':_0x67d9('0x61'),'value':_0x1a6258[_0x67d9('0x61')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x1]?_0x1a6258['attrs'][0x1]['value']:undefined)||[]},{'name':_0x67d9('0x5d'),'value':_0x1a6258[_0x67d9('0x5d')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258['attrs'][0x2]?_0x1a6258[_0x67d9('0x56')][0x2][_0x67d9('0x57')]:undefined)||0x14}];case _0x67d9('0x62'):case _0x67d9('0x63'):return[{'name':_0x67d9('0x64'),'value':_0x1a6258[_0x67d9('0x64')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x0]?_0x1a6258[_0x67d9('0x56')][0x0][_0x67d9('0x57')]:undefined)||'total'},{'name':_0x67d9('0x65'),'value':_0x1a6258[_0x67d9('0x65')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x1]?_0x1a6258[_0x67d9('0x56')][0x1][_0x67d9('0x57')]:undefined)||null},{'name':'attrSerie3','value':_0x1a6258[_0x67d9('0x66')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x2]?_0x1a6258[_0x67d9('0x56')][0x2][_0x67d9('0x57')]:undefined)||null},{'name':_0x67d9('0x61'),'value':_0x1a6258[_0x67d9('0x61')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x3]?_0x1a6258['attrs'][0x3][_0x67d9('0x57')]:undefined)||[]}];case _0x67d9('0x67'):return[{'name':_0x67d9('0x68'),'type':_0x1a6258['reportType']||null,'value':_0x1a6258['attrReport']||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x0]?_0x1a6258['attrs'][0x0][_0x67d9('0x57')]:undefined)||null},{'name':_0x67d9('0x69'),'value':_0x1a6258[_0x67d9('0x69')]||(_0x1a6258[_0x67d9('0x56')]&&_0x1a6258[_0x67d9('0x56')][0x1]?_0x1a6258['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x3d9ec5){logger['error'](_0x67d9('0x6a'),JSON[_0x67d9('0x6b')](_0x3d9ec5));return[];}}exports['addItem']=function(_0x544f11,_0x2b30ed,_0x4d7ddb){if(_0x544f11[_0x67d9('0x4c')]['id']){delete _0x544f11[_0x67d9('0x4c')]['id'];}return db['Dashboard']['find']({'where':{'id':_0x544f11['params']['id']}})['then'](handleEntityNotFound(_0x2b30ed,null))[_0x67d9('0x2a')](function(_0x184b1e){if(_0x184b1e){_0x544f11[_0x67d9('0x4c')]['DashboardId']=_0x184b1e['id'];_0x544f11[_0x67d9('0x4c')][_0x67d9('0x56')]=widgetAttributes(_0x544f11[_0x67d9('0x4c')]);return db[_0x67d9('0x6c')][_0x67d9('0x4b')](_0x544f11['body']);}})[_0x67d9('0x2a')](respondWithResult(_0x2b30ed,null))[_0x67d9('0x48')](handleError(_0x2b30ed,null));};exports[_0x67d9('0x6d')]=function(_0x55b4af,_0x44e912,_0x1864c9){var _0x3fabf9={};var _0x4ba404={};var _0x23b5c3;var _0x32e535;return db['Dashboard'][_0x67d9('0x6e')]({'where':{'id':_0x55b4af[_0x67d9('0x4e')]['id']}})['then'](handleEntityNotFound(_0x44e912,null))['then'](function(_0x293087){if(_0x293087){_0x23b5c3=_0x293087;_0x4ba404[_0x67d9('0x32')]=_[_0x67d9('0x33')](db[_0x67d9('0x6c')][_0x67d9('0x31')]);_0x4ba404['query']=_[_0x67d9('0x33')](_0x55b4af[_0x67d9('0x34')]);_0x4ba404[_0x67d9('0x37')]=_['intersection'](_0x4ba404[_0x67d9('0x32')],_0x4ba404[_0x67d9('0x34')]);_0x3fabf9[_0x67d9('0x3a')]=_[_0x67d9('0x38')](_0x4ba404[_0x67d9('0x32')],qs[_0x67d9('0x39')](_0x55b4af[_0x67d9('0x34')][_0x67d9('0x39')]));_0x3fabf9['attributes']=_0x3fabf9['attributes']['length']?_0x3fabf9[_0x67d9('0x3a')]:_0x4ba404['model'];_0x3fabf9[_0x67d9('0x6f')]=qs[_0x67d9('0x3e')](_0x55b4af['query'][_0x67d9('0x3e')]);_0x3fabf9[_0x67d9('0x3f')]=qs[_0x67d9('0x37')](_[_0x67d9('0x40')](_0x55b4af['query'],_0x4ba404[_0x67d9('0x37')]));if(_0x55b4af[_0x67d9('0x34')][_0x67d9('0x43')]){_0x3fabf9[_0x67d9('0x3f')]=_[_0x67d9('0x42')](_0x3fabf9[_0x67d9('0x3f')],{'$or':_[_0x67d9('0x44')](_0x3fabf9['attributes'],function(_0x205f7f){var _0x2b2186={};_0x2b2186[_0x205f7f]={'$like':'%'+_0x55b4af[_0x67d9('0x34')][_0x67d9('0x43')]+'%'};return _0x2b2186;})});}_0x3fabf9=_[_0x67d9('0x42')]({},_0x3fabf9,_0x55b4af[_0x67d9('0x45')]);return _0x23b5c3[_0x67d9('0x6d')](_0x3fabf9);}})[_0x67d9('0x2a')](function(_0x1a8fce){if(_0x1a8fce){_0x32e535=_0x1a8fce[_0x67d9('0x3b')];if(!_0x55b4af[_0x67d9('0x34')][_0x67d9('0x3c')](_0x67d9('0x3d'))){_0x3fabf9[_0x67d9('0x23')]=qs['limit'](_0x55b4af[_0x67d9('0x34')][_0x67d9('0x23')]);_0x3fabf9[_0x67d9('0x22')]=qs['offset'](_0x55b4af[_0x67d9('0x34')][_0x67d9('0x22')]);}return _0x23b5c3[_0x67d9('0x6d')](_0x3fabf9);}})[_0x67d9('0x2a')](function(_0x2765cc){if(_0x2765cc){return _0x2765cc?{'count':_0x32e535,'rows':_0x2765cc}:null;}})[_0x67d9('0x2a')](respondWithResult(_0x44e912,null))['catch'](handleError(_0x44e912,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x393f=['emit','hook','exports','events','Dashboard','setMaxListeners','save'];(function(_0x11a11b,_0x389ed9){var _0x44580e=function(_0x19ffca){while(--_0x19ffca){_0x11a11b['push'](_0x11a11b['shift']());}};_0x44580e(++_0x389ed9);}(_0x393f,0x18b));var _0xf393=function(_0x2a7467,_0x44f2f7){_0x2a7467=_0x2a7467-0x0;var _0x238a31=_0x393f[_0x2a7467];return _0x238a31;};'use strict';var EventEmitter=require(_0xf393('0x0'));var Dashboard=require('../../mysqldb')['db'][_0xf393('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents[_0xf393('0x2')](0x0);var events={'afterCreate':_0xf393('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x378bfd){return function(_0x370b08,_0x5266df,_0x25d43e){DashboardEvents[_0xf393('0x4')](_0x378bfd+':'+_0x370b08['id'],_0x370b08);DashboardEvents['emit'](_0x378bfd,_0x370b08);_0x25d43e(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];Dashboard[_0xf393('0x5')](e,emitEvent(event));}}module[_0xf393('0x6')]=DashboardEvents;
\ No newline at end of file
+var _0xd3d2=['events','../../mysqldb','setMaxListeners','update','remove','emit','hasOwnProperty','exports'];(function(_0x2de773,_0x52d641){var _0x29fd69=function(_0x54d3eb){while(--_0x54d3eb){_0x2de773['push'](_0x2de773['shift']());}};_0x29fd69(++_0x52d641);}(_0xd3d2,0x120));var _0x2d3d=function(_0x1517c5,_0x1618ca){_0x1517c5=_0x1517c5-0x0;var _0x283137=_0xd3d2[_0x1517c5];return _0x283137;};'use strict';var EventEmitter=require(_0x2d3d('0x0'));var Dashboard=require(_0x2d3d('0x1'))['db']['Dashboard'];var DashboardEvents=new EventEmitter();DashboardEvents[_0x2d3d('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x2d3d('0x3'),'afterDestroy':_0x2d3d('0x4')};function emitEvent(_0x292d11){return function(_0x58cf52,_0x20a7a7,_0x336c3a){DashboardEvents[_0x2d3d('0x5')](_0x292d11+':'+_0x58cf52['id'],_0x58cf52);DashboardEvents[_0x2d3d('0x5')](_0x292d11,_0x58cf52);_0x336c3a(null);};}for(var e in events){if(events[_0x2d3d('0x6')](e)){var event=events[e];Dashboard['hook'](e,emitEvent(event));}}module[_0x2d3d('0x7')]=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x471a=['moment','bluebird','request-promise','./dashboard.attributes','define','lodash','util','../../config/logger'];(function(_0xf0b977,_0xe512bd){var _0x32199c=function(_0xe0eb43){while(--_0xe0eb43){_0xf0b977['push'](_0xf0b977['shift']());}};_0x32199c(++_0xe512bd);}(_0x471a,0x18d));var _0xa471=function(_0x2c2733,_0x35f447){_0x2c2733=_0x2c2733-0x0;var _0x578023=_0x471a[_0x2c2733];return _0x578023;};'use strict';var _=require(_0xa471('0x0'));var util=require(_0xa471('0x1'));var logger=require(_0xa471('0x2'))('api');var moment=require(_0xa471('0x3'));var BPromise=require(_0xa471('0x4'));var rp=require(_0xa471('0x5'));var attributes=require(_0xa471('0x6'));module['exports']=function(_0x50b329,_0x53e557){return _0x50b329[_0xa471('0x7')]('Dashboard',attributes,{'tableName':'dashboards','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd7d1=['bluebird','request-promise','./dashboard.attributes','exports','define','Dashboard','lodash','util','../../config/logger','api','moment'];(function(_0x12595a,_0x2af6b5){var _0x54ddfa=function(_0x39f3d3){while(--_0x39f3d3){_0x12595a['push'](_0x12595a['shift']());}};_0x54ddfa(++_0x2af6b5);}(_0xd7d1,0x1b3));var _0x1d7d=function(_0x2d25f5,_0x1ee01f){_0x2d25f5=_0x2d25f5-0x0;var _0x2be619=_0xd7d1[_0x2d25f5];return _0x2be619;};'use strict';var _=require(_0x1d7d('0x0'));var util=require(_0x1d7d('0x1'));var logger=require(_0x1d7d('0x2'))(_0x1d7d('0x3'));var moment=require(_0x1d7d('0x4'));var BPromise=require(_0x1d7d('0x5'));var rp=require(_0x1d7d('0x6'));var attributes=require(_0x1d7d('0x7'));module[_0x1d7d('0x8')]=function(_0x1adb6b,_0x3c0839){return _0x1adb6b[_0x1d7d('0x9')](_0x1d7d('0xa'),attributes,{'tableName':'dashboards','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2739=['bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','redis','localhost','./dashboard.socket','register','request','info','Dashboard,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','util','moment'];(function(_0x3b0e90,_0x589c18){var _0x4665a3=function(_0x2d1e36){while(--_0x2d1e36){_0x3b0e90['push'](_0x3b0e90['shift']());}};_0x4665a3(++_0x589c18);}(_0x2739,0x14e));var _0x9273=function(_0x1b80a6,_0x43daa7){_0x1b80a6=_0x1b80a6-0x0;var _0x17010d=_0x2739[_0x1b80a6];return _0x17010d;};'use strict';var _=require('lodash');var util=require(_0x9273('0x0'));var moment=require(_0x9273('0x1'));var BPromise=require(_0x9273('0x2'));var rs=require(_0x9273('0x3'));var fs=require('fs');var db=require(_0x9273('0x4'))['db'];var utils=require(_0x9273('0x5'));var logger=require('../../config/logger')(_0x9273('0x6'));var config=require('../../config/environment');var jayson=require(_0x9273('0x7'));var client=jayson[_0x9273('0x8')][_0x9273('0x9')]({'port':0x232a});config[_0x9273('0xa')]=_['defaults'](config[_0x9273('0xa')],{'host':_0x9273('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(config['redis']);require(_0x9273('0xc'))[_0x9273('0xd')](socket);function respondWithRpcPromise(_0x3ac839,_0x53ced0,_0x4f7c39){return new BPromise(function(_0x3dae6f,_0xcdd801){return client[_0x9273('0xe')](_0x3ac839,_0x4f7c39)['then'](function(_0xa4ec82){logger[_0x9273('0xf')](_0x9273('0x10'),_0x53ced0,_0x9273('0x11'));logger['debug']('Dashboard,\x20%s,\x20%s,\x20%s',_0x53ced0,_0x9273('0x11'),JSON[_0x9273('0x12')](_0xa4ec82));if(_0xa4ec82[_0x9273('0x13')]){if(_0xa4ec82[_0x9273('0x13')][_0x9273('0x14')]===0x1f4){logger[_0x9273('0x13')]('Dashboard,\x20%s,\x20%s',_0x53ced0,_0xa4ec82['error']['message']);return _0xcdd801(_0xa4ec82[_0x9273('0x13')][_0x9273('0x15')]);}logger['error']('Dashboard,\x20%s,\x20%s',_0x53ced0,_0xa4ec82[_0x9273('0x13')][_0x9273('0x15')]);return _0x3dae6f(_0xa4ec82['error'][_0x9273('0x15')]);}else{logger[_0x9273('0xf')](_0x9273('0x10'),_0x53ced0,'request\x20sent');_0x3dae6f(_0xa4ec82[_0x9273('0x16')]['message']);}})[_0x9273('0x17')](function(_0xb00793){logger['error'](_0x9273('0x10'),_0x53ced0,_0xb00793);_0xcdd801(_0xb00793);});});}
\ No newline at end of file
+var _0x1da5=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','then','Dashboard,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch'];(function(_0x200217,_0x15709e){var _0x517229=function(_0x1fd293){while(--_0x1fd293){_0x200217['push'](_0x200217['shift']());}};_0x517229(++_0x15709e);}(_0x1da5,0x6c));var _0x51da=function(_0x205045,_0x3eab35){_0x205045=_0x205045-0x0;var _0x37162a=_0x1da5[_0x205045];return _0x37162a;};'use strict';var _=require(_0x51da('0x0'));var util=require(_0x51da('0x1'));var moment=require(_0x51da('0x2'));var BPromise=require(_0x51da('0x3'));var rs=require(_0x51da('0x4'));var fs=require('fs');var Redis=require(_0x51da('0x5'));var db=require(_0x51da('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x51da('0x7'))(_0x51da('0x8'));var config=require(_0x51da('0x9'));var jayson=require(_0x51da('0xa'));var client=jayson['client'][_0x51da('0xb')]({'port':0x232a});config[_0x51da('0xc')]=_[_0x51da('0xd')](config['redis'],{'host':_0x51da('0xe'),'port':0x18eb});var socket=require(_0x51da('0xf'))(new Redis(config[_0x51da('0xc')]));require(_0x51da('0x10'))['register'](socket);function respondWithRpcPromise(_0x550bef,_0x259476,_0x97387d){return new BPromise(function(_0x1dc9c3,_0x52f0e2){return client['request'](_0x550bef,_0x97387d)[_0x51da('0x11')](function(_0x4251b2){logger['info'](_0x51da('0x12'),_0x259476,_0x51da('0x13'));logger[_0x51da('0x14')]('Dashboard,\x20%s,\x20%s,\x20%s',_0x259476,_0x51da('0x13'),JSON['stringify'](_0x4251b2));if(_0x4251b2[_0x51da('0x15')]){if(_0x4251b2[_0x51da('0x15')][_0x51da('0x16')]===0x1f4){logger['error'](_0x51da('0x12'),_0x259476,_0x4251b2['error'][_0x51da('0x17')]);return _0x52f0e2(_0x4251b2[_0x51da('0x15')][_0x51da('0x17')]);}logger[_0x51da('0x15')]('Dashboard,\x20%s,\x20%s',_0x259476,_0x4251b2[_0x51da('0x15')]['message']);return _0x1dc9c3(_0x4251b2[_0x51da('0x15')][_0x51da('0x17')]);}else{logger[_0x51da('0x18')](_0x51da('0x12'),_0x259476,_0x51da('0x13'));_0x1dc9c3(_0x4251b2[_0x51da('0x19')]['message']);}})[_0x51da('0x1a')](function(_0x3f314c){logger[_0x51da('0x15')](_0x51da('0x12'),_0x259476,_0x3f314c);_0x52f0e2(_0x3f314c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b15=['dashboard:','./dashboard.events','remove','emit','removeListener'];(function(_0x1a700e,_0x51cf33){var _0x4c3673=function(_0x52855c){while(--_0x52855c){_0x1a700e['push'](_0x1a700e['shift']());}};_0x4c3673(++_0x51cf33);}(_0x2b15,0x6f));var _0x52b1=function(_0x5d5071,_0x1e4773){_0x5d5071=_0x5d5071-0x0;var _0x367d9f=_0x2b15[_0x5d5071];return _0x367d9f;};'use strict';var DashboardEvents=require(_0x52b1('0x0'));var events=['save',_0x52b1('0x1'),'update'];function createListener(_0x383149,_0x5e1e49){return function(_0x425493){_0x5e1e49[_0x52b1('0x2')](_0x383149,_0x425493);};}function removeListener(_0x124cdf,_0x46fce5){return function(){DashboardEvents[_0x52b1('0x3')](_0x124cdf,_0x46fce5);};}exports['register']=function(_0x541d0d){for(var _0x40f37c=0x0,_0x15f98e=events['length'];_0x40f37c<_0x15f98e;_0x40f37c++){var _0x55951c=events[_0x40f37c];var _0x347011=createListener(_0x52b1('0x4')+_0x55951c,_0x541d0d);DashboardEvents['on'](_0x55951c,_0x347011);}};
\ No newline at end of file
+var _0xf070=['save','remove','update','emit','removeListener','register','length','dashboard:'];(function(_0x363cd8,_0x288e5d){var _0x53d09c=function(_0x298e12){while(--_0x298e12){_0x363cd8['push'](_0x363cd8['shift']());}};_0x53d09c(++_0x288e5d);}(_0xf070,0x1d8));var _0x0f07=function(_0x18ddc1,_0x2a466d){_0x18ddc1=_0x18ddc1-0x0;var _0x4b6e6f=_0xf070[_0x18ddc1];return _0x4b6e6f;};'use strict';var DashboardEvents=require('./dashboard.events');var events=[_0x0f07('0x0'),_0x0f07('0x1'),_0x0f07('0x2')];function createListener(_0x5e63cf,_0x3df287){return function(_0x50788d){_0x3df287[_0x0f07('0x3')](_0x5e63cf,_0x50788d);};}function removeListener(_0x5bc894,_0x4e0524){return function(){DashboardEvents[_0x0f07('0x4')](_0x5bc894,_0x4e0524);};}exports[_0x0f07('0x5')]=function(_0x17c235){for(var _0x5a3a61=0x0,_0x1e2244=events[_0x0f07('0x6')];_0x5a3a61<_0x1e2244;_0x5a3a61++){var _0x5a56ad=events[_0x5a3a61];var _0x6635ec=createListener(_0x0f07('0x7')+_0x5a56ad,_0x17c235);DashboardEvents['on'](_0x5a56ad,_0x6635ec);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec98=['create','post','/:id/clone','clone','addItem','put','delete','destroy','exports','multer','util','express','Router','../../components/interaction/service','../../config/environment','./dashboard.controller','get','index','/:id','isAuthenticated','show','/:id/items','getItems'];(function(_0x32b74b,_0x2b6636){var _0x270c7f=function(_0x137d36){while(--_0x137d36){_0x32b74b['push'](_0x32b74b['shift']());}};_0x270c7f(++_0x2b6636);}(_0xec98,0x14b));var _0x8ec9=function(_0x232bba,_0x3e346e){_0x232bba=_0x232bba-0x0;var _0x40d69e=_0xec98[_0x232bba];return _0x40d69e;};'use strict';var multer=require(_0x8ec9('0x0'));var util=require(_0x8ec9('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x8ec9('0x2'));var router=express[_0x8ec9('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x8ec9('0x4'));var config=require(_0x8ec9('0x5'));var controller=require(_0x8ec9('0x6'));router[_0x8ec9('0x7')]('/',auth['isAuthenticated'](),controller[_0x8ec9('0x8')]);router[_0x8ec9('0x7')](_0x8ec9('0x9'),auth[_0x8ec9('0xa')](),controller[_0x8ec9('0xb')]);router[_0x8ec9('0x7')](_0x8ec9('0xc'),auth[_0x8ec9('0xa')](),controller[_0x8ec9('0xd')]);router['post']('/',auth[_0x8ec9('0xa')](),controller[_0x8ec9('0xe')]);router[_0x8ec9('0xf')](_0x8ec9('0x10'),auth['isAuthenticated'](),controller[_0x8ec9('0x11')]);router[_0x8ec9('0xf')](_0x8ec9('0xc'),auth[_0x8ec9('0xa')](),controller[_0x8ec9('0x12')]);router[_0x8ec9('0x13')](_0x8ec9('0x9'),auth[_0x8ec9('0xa')](),controller['update']);router[_0x8ec9('0x14')]('/:id',auth[_0x8ec9('0xa')](),controller[_0x8ec9('0x15')]);module[_0x8ec9('0x16')]=router;
\ No newline at end of file
+var _0x27a3=['create','post','/:id/clone','clone','put','update','delete','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','/:id/items','getItems'];(function(_0x22e2cd,_0x171e63){var _0x552783=function(_0x16d14a){while(--_0x16d14a){_0x22e2cd['push'](_0x22e2cd['shift']());}};_0x552783(++_0x171e63);}(_0x27a3,0x12e));var _0x327a=function(_0x2f8a10,_0x3bef5b){_0x2f8a10=_0x2f8a10-0x0;var _0x357761=_0x27a3[_0x2f8a10];return _0x357761;};'use strict';var multer=require(_0x327a('0x0'));var util=require('util');var path=require(_0x327a('0x1'));var timeout=require(_0x327a('0x2'));var express=require(_0x327a('0x3'));var router=express[_0x327a('0x4')]();var auth=require(_0x327a('0x5'));var interaction=require(_0x327a('0x6'));var config=require(_0x327a('0x7'));var controller=require('./dashboard.controller');router[_0x327a('0x8')]('/',auth[_0x327a('0x9')](),controller['index']);router[_0x327a('0x8')](_0x327a('0xa'),auth[_0x327a('0x9')](),controller['show']);router[_0x327a('0x8')](_0x327a('0xb'),auth[_0x327a('0x9')](),controller[_0x327a('0xc')]);router['post']('/',auth['isAuthenticated'](),controller[_0x327a('0xd')]);router[_0x327a('0xe')](_0x327a('0xf'),auth[_0x327a('0x9')](),controller[_0x327a('0x10')]);router['post'](_0x327a('0xb'),auth[_0x327a('0x9')](),controller['addItem']);router[_0x327a('0x11')](_0x327a('0xa'),auth[_0x327a('0x9')](),controller[_0x327a('0x12')]);router[_0x327a('0x13')](_0x327a('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x327a('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdeb9=['STRING','TEXT','parse','getDataValue','attrs','setDataValue','stringify','INTEGER','sequelize','squel','lodash'];(function(_0x42540c,_0x27ca3b){var _0x1a27dc=function(_0x14665e){while(--_0x14665e){_0x42540c['push'](_0x42540c['shift']());}};_0x1a27dc(++_0x27ca3b);}(_0xdeb9,0xd9));var _0x9deb=function(_0x56ebd5,_0x264d92){_0x56ebd5=_0x56ebd5-0x0;var _0x39d716=_0xdeb9[_0x56ebd5];return _0x39d716;};'use strict';var Sequelize=require(_0x9deb('0x0'));var squel=require(_0x9deb('0x1'));var _=require(_0x9deb('0x2'));module['exports']={'title':{'type':Sequelize[_0x9deb('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0x9deb('0x3')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x9deb('0x4')]('long'),'get':function(){try{return JSON[_0x9deb('0x5')](this[_0x9deb('0x6')](_0x9deb('0x7')));}catch(_0x340533){return[];}},'set':function(_0x46f58c){try{this[_0x9deb('0x8')](_0x9deb('0x7'),JSON[_0x9deb('0x9')](_0x46f58c));}catch(_0x240beb){this[_0x9deb('0x8')](_0x9deb('0x7'),JSON[_0x9deb('0x9')]([]));}}},'sizeX':{'type':Sequelize[_0x9deb('0xa')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x9deb('0xa')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x9deb('0xa')]},'col':{'type':Sequelize[_0x9deb('0xa')]},'background':{'type':Sequelize[_0x9deb('0x3')],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x9deb('0x3')],'allowNull':![],'defaultValue':'#2196f3','validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x9deb('0x3')]}};
\ No newline at end of file
+var _0x794b=['setDataValue','stringify','INTEGER','#ffffff','sequelize','lodash','STRING','TEXT','parse','getDataValue','attrs'];(function(_0x3a796e,_0x4e8a8c){var _0x11cc46=function(_0x3652de){while(--_0x3652de){_0x3a796e['push'](_0x3a796e['shift']());}};_0x11cc46(++_0x4e8a8c);}(_0x794b,0x1bc));var _0xb794=function(_0x36c997,_0x1b95e9){_0x36c997=_0x36c997-0x0;var _0x168fd7=_0x794b[_0x36c997];return _0x168fd7;};'use strict';var Sequelize=require(_0xb794('0x0'));var squel=require('squel');var _=require(_0xb794('0x1'));module['exports']={'title':{'type':Sequelize[_0xb794('0x2')],'allowNull':![]},'type':{'type':Sequelize['STRING'](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0xb794('0x3')]('long'),'get':function(){try{return JSON[_0xb794('0x4')](this[_0xb794('0x5')]('attrs'));}catch(_0x280326){return[];}},'set':function(_0x2fea2a){try{this['setDataValue'](_0xb794('0x6'),JSON['stringify'](_0x2fea2a));}catch(_0x21c551){this[_0xb794('0x7')](_0xb794('0x6'),JSON[_0xb794('0x8')]([]));}}},'sizeX':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0xb794('0x9')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize['INTEGER']},'col':{'type':Sequelize[_0xb794('0x9')]},'background':{'type':Sequelize[_0xb794('0x2')],'allowNull':![],'defaultValue':_0xb794('0xa'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0xb794('0x2')],'allowNull':![],'defaultValue':'#2196f3','validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0xb794('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d4c=['type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','update','html-pdf','zip-dir','request-promise','moment','bluebird','mustache','path','to-csv','squel','crypto','jsforce','desk.js','papaparse','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','destroy','then','error','stack','params','DashboardItem','rawAttributes','query','filters','intersection','model','fields','attributes','includeAll','include','merge','options','find','catch'];(function(_0x4b7c65,_0x48df1d){var _0x16a07f=function(_0x120abf){while(--_0x120abf){_0x4b7c65['push'](_0x4b7c65['shift']());}};_0x16a07f(++_0x48df1d);}(_0x3d4c,0x70));var _0xc3d4=function(_0x5385cf,_0x56423b){_0x5385cf=_0x5385cf-0x0;var _0x227249=_0x3d4c[_0x5385cf];return _0x227249;};'use strict';var pdf=require(_0xc3d4('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc3d4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc3d4('0x2'));var moment=require(_0xc3d4('0x3'));var BPromise=require(_0xc3d4('0x4'));var Mustache=require(_0xc3d4('0x5'));var util=require('util');var path=require(_0xc3d4('0x6'));var sox=require('sox');var csv=require(_0xc3d4('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xc3d4('0x8'));var crypto=require(_0xc3d4('0x9'));var jsforce=require(_0xc3d4('0xa'));var deskjs=require(_0xc3d4('0xb'));var toCsv=require(_0xc3d4('0x7'));var querystring=require('querystring');var Papa=require(_0xc3d4('0xc'));var qs=require('../../components/parsers/qs');var logger=require(_0xc3d4('0xd'))('api');var utils=require('../../config/utils');var config=require(_0xc3d4('0xe'));var db=require(_0xc3d4('0xf'))['db'];config[_0xc3d4('0x10')]=_[_0xc3d4('0x11')](config[_0xc3d4('0x10')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(config['redis']);require(_0xc3d4('0x12'))[_0xc3d4('0x13')](socket);function respondWithStatusCode(_0x451e73,_0x1e95f0){_0x1e95f0=_0x1e95f0||0xcc;return function(_0x3fb98c){if(_0x3fb98c){return _0x451e73[_0xc3d4('0x14')](_0x1e95f0);}return _0x451e73[_0xc3d4('0x15')](_0x1e95f0)[_0xc3d4('0x16')]();};}function respondWithResult(_0x242f78,_0x4cc05a){_0x4cc05a=_0x4cc05a||0xc8;return function(_0x22217b){if(_0x22217b){return _0x242f78[_0xc3d4('0x15')](_0x4cc05a)[_0xc3d4('0x17')](_0x22217b);}};}function respondWithFilteredResult(_0x55b8b4,_0xf716d1){return function(_0x3890e3){if(_0x3890e3){var _0x14f205=_0x3890e3[_0xc3d4('0x18')],_0x331970=_0xf716d1[_0xc3d4('0x19')],_0xe6daa1=_0xf716d1[_0xc3d4('0x19')]+_0xf716d1[_0xc3d4('0x1a')],_0x753b00;if(_0xe6daa1>=_0x14f205){_0xe6daa1=_0x14f205;_0x753b00=0xc8;}else{_0x753b00=0xce;}_0x55b8b4['status'](_0x753b00);return _0x55b8b4[_0xc3d4('0x1b')]('Content-Range',_0x331970+'-'+_0xe6daa1+'/'+_0x14f205)[_0xc3d4('0x17')](_0x3890e3);}return null;};}function patchUpdates(_0x202633){return function(_0x418d86){try{jsonpatch[_0xc3d4('0x1c')](_0x418d86,_0x202633,!![]);}catch(_0x5a1384){return BPromise[_0xc3d4('0x1d')](_0x5a1384);}return _0x418d86[_0xc3d4('0x1e')]();};}function saveUpdates(_0x13dde1,_0x574346){return function(_0x510ffe){if(_0x510ffe){return _0x510ffe['update'](_0x13dde1)['then'](function(_0x2e4902){return _0x2e4902;});}return null;};}function removeEntity(_0x2ee7d4,_0x5c3dc2){return function(_0x1d02a7){if(_0x1d02a7){return _0x1d02a7[_0xc3d4('0x1f')]()[_0xc3d4('0x20')](function(){_0x2ee7d4[_0xc3d4('0x15')](0xcc)[_0xc3d4('0x16')]();});}};}function handleEntityNotFound(_0x44d4ab,_0x27c31a){return function(_0x193e63){if(!_0x193e63){_0x44d4ab[_0xc3d4('0x14')](0x194);}return _0x193e63;};}function handleError(_0x29442f,_0x4d0329){_0x4d0329=_0x4d0329||0x1f4;return function(_0x348ec7){logger[_0xc3d4('0x21')](_0x348ec7[_0xc3d4('0x22')]);if(_0x348ec7['name']){delete _0x348ec7['name'];}_0x29442f['status'](_0x4d0329)['send'](_0x348ec7);};}exports['show']=function(_0x73bc02,_0x4bd434){var _0x3585b9={'raw':![],'where':{'id':_0x73bc02[_0xc3d4('0x23')]['id']}},_0x41903d={};_0x41903d['model']=_['keys'](db[_0xc3d4('0x24')][_0xc3d4('0x25')]);_0x41903d[_0xc3d4('0x26')]=_['keys'](_0x73bc02[_0xc3d4('0x26')]);_0x41903d[_0xc3d4('0x27')]=_[_0xc3d4('0x28')](_0x41903d[_0xc3d4('0x29')],_0x41903d[_0xc3d4('0x26')]);_0x3585b9['attributes']=_[_0xc3d4('0x28')](_0x41903d[_0xc3d4('0x29')],qs[_0xc3d4('0x2a')](_0x73bc02[_0xc3d4('0x26')][_0xc3d4('0x2a')]));_0x3585b9[_0xc3d4('0x2b')]=_0x3585b9['attributes']['length']?_0x3585b9[_0xc3d4('0x2b')]:_0x41903d[_0xc3d4('0x29')];if(_0x73bc02['query'][_0xc3d4('0x2c')]){_0x3585b9[_0xc3d4('0x2d')]=[{'all':!![]}];}_0x3585b9=_[_0xc3d4('0x2e')]({},_0x3585b9,_0x73bc02[_0xc3d4('0x2f')]);return db['DashboardItem']['find'](_0x3585b9)[_0xc3d4('0x20')](handleEntityNotFound(_0x4bd434,null))[_0xc3d4('0x20')](respondWithResult(_0x4bd434,null))['catch'](handleError(_0x4bd434,null));};exports[_0xc3d4('0x1f')]=function(_0x2cacdd,_0x336e12){return db[_0xc3d4('0x24')][_0xc3d4('0x30')]({'where':{'id':_0x2cacdd[_0xc3d4('0x23')]['id']}})[_0xc3d4('0x20')](handleEntityNotFound(_0x336e12,null))[_0xc3d4('0x20')](removeEntity(_0x336e12,null))[_0xc3d4('0x31')](handleError(_0x336e12,null));};function widgetAttributes(_0x3f2a6e){try{switch(_0x3f2a6e[_0xc3d4('0x32')]){case _0xc3d4('0x33'):return[{'name':_0xc3d4('0x34'),'value':_0x3f2a6e[_0xc3d4('0x34')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e[_0xc3d4('0x35')][0x0]?_0x3f2a6e[_0xc3d4('0x35')][0x0][_0xc3d4('0x36')]:undefined)||_0xc3d4('0x37')}];case _0xc3d4('0x38'):return[{'name':'attrPath','value':_0x3f2a6e[_0xc3d4('0x39')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e[_0xc3d4('0x35')][0x0]?_0x3f2a6e[_0xc3d4('0x35')][0x0]['value']:undefined)||''}];case _0xc3d4('0x3a'):return[{'name':_0xc3d4('0x3b'),'value':_0x3f2a6e['attrHourFormat']||(_0x3f2a6e['attrs']&&_0x3f2a6e[_0xc3d4('0x35')][0x0]?_0x3f2a6e[_0xc3d4('0x35')][0x0]['value']:undefined)||_0xc3d4('0x3c')},{'name':_0xc3d4('0x3d'),'value':_0x3f2a6e[_0xc3d4('0x3d')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e[_0xc3d4('0x35')][0x1]?_0x3f2a6e['attrs'][0x1][_0xc3d4('0x36')]:undefined)||_0xc3d4('0x3e')},{'name':_0xc3d4('0x3f'),'value':_0x3f2a6e[_0xc3d4('0x3f')]||(_0x3f2a6e['attrs']&&_0x3f2a6e['attrs'][0x2]?_0x3f2a6e[_0xc3d4('0x35')][0x2][_0xc3d4('0x36')]:undefined)||0xc}];case _0xc3d4('0x40'):return[{'name':_0xc3d4('0x41'),'value':_0x3f2a6e[_0xc3d4('0x41')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e[_0xc3d4('0x35')][0x0]?_0x3f2a6e[_0xc3d4('0x35')][0x0][_0xc3d4('0x36')]:undefined)||_0xc3d4('0x42')},{'name':_0xc3d4('0x43'),'value':_0x3f2a6e['attrVoiceQueues']||(_0x3f2a6e['attrs']&&_0x3f2a6e[_0xc3d4('0x35')][0x1]?_0x3f2a6e[_0xc3d4('0x35')][0x1][_0xc3d4('0x36')]:undefined)||[]},{'name':_0xc3d4('0x3f'),'value':_0x3f2a6e[_0xc3d4('0x3f')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e['attrs'][0x2]?_0x3f2a6e[_0xc3d4('0x35')][0x2][_0xc3d4('0x36')]:undefined)||0x14}];case _0xc3d4('0x44'):case _0xc3d4('0x45'):return[{'name':_0xc3d4('0x46'),'value':_0x3f2a6e['attrSerie1']||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e['attrs'][0x0]?_0x3f2a6e['attrs'][0x0][_0xc3d4('0x36')]:undefined)||_0xc3d4('0x42')},{'name':_0xc3d4('0x47'),'value':_0x3f2a6e['attrSerie2']||(_0x3f2a6e['attrs']&&_0x3f2a6e['attrs'][0x1]?_0x3f2a6e[_0xc3d4('0x35')][0x1][_0xc3d4('0x36')]:undefined)||null},{'name':'attrSerie3','value':_0x3f2a6e[_0xc3d4('0x48')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e['attrs'][0x2]?_0x3f2a6e[_0xc3d4('0x35')][0x2][_0xc3d4('0x36')]:undefined)||null},{'name':_0xc3d4('0x43'),'value':_0x3f2a6e[_0xc3d4('0x43')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e[_0xc3d4('0x35')][0x3]?_0x3f2a6e[_0xc3d4('0x35')][0x3]['value']:undefined)||[]}];case _0xc3d4('0x49'):return[{'name':'attrReport','type':_0x3f2a6e['reportType']||null,'value':_0x3f2a6e[_0xc3d4('0x4a')]||(_0x3f2a6e[_0xc3d4('0x35')]&&_0x3f2a6e['attrs'][0x0]?_0x3f2a6e[_0xc3d4('0x35')][0x0][_0xc3d4('0x36')]:undefined)||null},{'name':_0xc3d4('0x4b'),'value':_0x3f2a6e['attrRefresh']||(_0x3f2a6e['attrs']&&_0x3f2a6e['attrs'][0x1]?_0x3f2a6e[_0xc3d4('0x35')][0x1][_0xc3d4('0x36')]:undefined)||0x0}];default:return[];}}catch(_0x1fff22){logger[_0xc3d4('0x21')](_0xc3d4('0x4c'),JSON[_0xc3d4('0x4d')](_0x1fff22));return[];}}exports[_0xc3d4('0x4e')]=function(_0x2b08fe,_0x5c0e7c){if(_0x2b08fe['body']){_0x2b08fe[_0xc3d4('0x4f')][_0xc3d4('0x35')]=widgetAttributes(_0x2b08fe[_0xc3d4('0x4f')]);}return db[_0xc3d4('0x24')][_0xc3d4('0x4e')](_0x2b08fe[_0xc3d4('0x4f')],{})[_0xc3d4('0x20')](respondWithResult(_0x5c0e7c,0xc9))['catch'](handleError(_0x5c0e7c,null));};exports[_0xc3d4('0x50')]=function(_0x168bdc,_0xf09c92){if(_0x168bdc['body']['id']){delete _0x168bdc[_0xc3d4('0x4f')]['id'];}_0x168bdc[_0xc3d4('0x4f')][_0xc3d4('0x35')]=widgetAttributes(_0x168bdc['body']);return db[_0xc3d4('0x24')][_0xc3d4('0x30')]({'where':{'id':_0x168bdc[_0xc3d4('0x23')]['id']}})[_0xc3d4('0x20')](handleEntityNotFound(_0xf09c92,null))['then'](saveUpdates(_0x168bdc[_0xc3d4('0x4f')],null))[_0xc3d4('0x20')](respondWithResult(_0xf09c92,null))[_0xc3d4('0x31')](handleError(_0xf09c92,null));};
\ No newline at end of file
+var _0xa9e0=['intersection','fields','length','includeAll','include','merge','find','catch','iframe','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','create','body','update','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','params','model','keys','DashboardItem','query','filters','attributes'];(function(_0x2a0611,_0x1f439f){var _0x4050fd=function(_0x522bbb){while(--_0x522bbb){_0x2a0611['push'](_0x2a0611['shift']());}};_0x4050fd(++_0x1f439f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0xa9e0[_0x32d457];return _0x338386;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var qs=require(_0x0a9e('0xf'));var logger=require(_0x0a9e('0x10'))(_0x0a9e('0x11'));var utils=require(_0x0a9e('0x12'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x0a9e('0x13')],{'host':_0x0a9e('0x14'),'port':0x18eb});var socket=require(_0x0a9e('0x15'))(new Redis(config[_0x0a9e('0x13')]));require(_0x0a9e('0x16'))[_0x0a9e('0x17')](socket);function respondWithStatusCode(_0x5db4b0,_0x4283ce){_0x4283ce=_0x4283ce||0xcc;return function(_0x239b12){if(_0x239b12){return _0x5db4b0[_0x0a9e('0x18')](_0x4283ce);}return _0x5db4b0[_0x0a9e('0x19')](_0x4283ce)[_0x0a9e('0x1a')]();};}function respondWithResult(_0x4d5611,_0x52a03d){_0x52a03d=_0x52a03d||0xc8;return function(_0x22dccb){if(_0x22dccb){return _0x4d5611['status'](_0x52a03d)[_0x0a9e('0x1b')](_0x22dccb);}};}function respondWithFilteredResult(_0x519dfd,_0x16033c){return function(_0x12066b){if(_0x12066b){var _0x48f32d=_0x12066b[_0x0a9e('0x1c')],_0x225616=_0x16033c[_0x0a9e('0x1d')],_0x5a0a06=_0x16033c[_0x0a9e('0x1d')]+_0x16033c[_0x0a9e('0x1e')],_0x459eb1;if(_0x5a0a06>=_0x48f32d){_0x5a0a06=_0x48f32d;_0x459eb1=0xc8;}else{_0x459eb1=0xce;}_0x519dfd[_0x0a9e('0x19')](_0x459eb1);return _0x519dfd[_0x0a9e('0x1f')](_0x0a9e('0x20'),_0x225616+'-'+_0x5a0a06+'/'+_0x48f32d)[_0x0a9e('0x1b')](_0x12066b);}return null;};}function patchUpdates(_0x112016){return function(_0x1c696a){try{jsonpatch[_0x0a9e('0x21')](_0x1c696a,_0x112016,!![]);}catch(_0x4bb1e3){return BPromise[_0x0a9e('0x22')](_0x4bb1e3);}return _0x1c696a[_0x0a9e('0x23')]();};}function saveUpdates(_0x53682f,_0x20f109){return function(_0x5a09ef){if(_0x5a09ef){return _0x5a09ef['update'](_0x53682f)[_0x0a9e('0x24')](function(_0x432e56){return _0x432e56;});}return null;};}function removeEntity(_0x38e7c4,_0x30bae6){return function(_0x4abc77){if(_0x4abc77){return _0x4abc77[_0x0a9e('0x25')]()[_0x0a9e('0x24')](function(){_0x38e7c4[_0x0a9e('0x19')](0xcc)[_0x0a9e('0x1a')]();});}};}function handleEntityNotFound(_0x370d86,_0x42ac8f){return function(_0x16b1ca){if(!_0x16b1ca){_0x370d86['sendStatus'](0x194);}return _0x16b1ca;};}function handleError(_0x59181e,_0x197ec0){_0x197ec0=_0x197ec0||0x1f4;return function(_0x3a8e58){logger[_0x0a9e('0x26')](_0x3a8e58[_0x0a9e('0x27')]);if(_0x3a8e58['name']){delete _0x3a8e58[_0x0a9e('0x28')];}_0x59181e['status'](_0x197ec0)[_0x0a9e('0x29')](_0x3a8e58);};}exports['show']=function(_0x1dc186,_0x34dc65){var _0x25fba9={'raw':![],'where':{'id':_0x1dc186[_0x0a9e('0x2a')]['id']}},_0x14433c={};_0x14433c[_0x0a9e('0x2b')]=_[_0x0a9e('0x2c')](db[_0x0a9e('0x2d')]['rawAttributes']);_0x14433c[_0x0a9e('0x2e')]=_[_0x0a9e('0x2c')](_0x1dc186[_0x0a9e('0x2e')]);_0x14433c[_0x0a9e('0x2f')]=_['intersection'](_0x14433c[_0x0a9e('0x2b')],_0x14433c[_0x0a9e('0x2e')]);_0x25fba9[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x14433c[_0x0a9e('0x2b')],qs[_0x0a9e('0x32')](_0x1dc186[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x25fba9[_0x0a9e('0x30')]=_0x25fba9['attributes'][_0x0a9e('0x33')]?_0x25fba9['attributes']:_0x14433c[_0x0a9e('0x2b')];if(_0x1dc186[_0x0a9e('0x2e')][_0x0a9e('0x34')]){_0x25fba9[_0x0a9e('0x35')]=[{'all':!![]}];}_0x25fba9=_[_0x0a9e('0x36')]({},_0x25fba9,_0x1dc186['options']);return db[_0x0a9e('0x2d')][_0x0a9e('0x37')](_0x25fba9)[_0x0a9e('0x24')](handleEntityNotFound(_0x34dc65,null))[_0x0a9e('0x24')](respondWithResult(_0x34dc65,null))[_0x0a9e('0x38')](handleError(_0x34dc65,null));};exports[_0x0a9e('0x25')]=function(_0x332d35,_0x39e565){return db['DashboardItem'][_0x0a9e('0x37')]({'where':{'id':_0x332d35['params']['id']}})[_0x0a9e('0x24')](handleEntityNotFound(_0x39e565,null))[_0x0a9e('0x24')](removeEntity(_0x39e565,null))[_0x0a9e('0x38')](handleError(_0x39e565,null));};function widgetAttributes(_0x3f3d41){try{switch(_0x3f3d41['type']){case _0x0a9e('0x39'):return[{'name':_0x0a9e('0x3a'),'value':_0x3f3d41[_0x0a9e('0x3a')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41['attrs'][0x0]?_0x3f3d41['attrs'][0x0][_0x0a9e('0x3c')]:undefined)||'https://'}];case _0x0a9e('0x3d'):return[{'name':_0x0a9e('0x3e'),'value':_0x3f3d41[_0x0a9e('0x3e')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41['attrs'][0x0]?_0x3f3d41[_0x0a9e('0x3b')][0x0][_0x0a9e('0x3c')]:undefined)||''}];case _0x0a9e('0x3f'):return[{'name':'attrHourFormat','value':_0x3f3d41[_0x0a9e('0x40')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x0]?_0x3f3d41['attrs'][0x0]['value']:undefined)||_0x0a9e('0x41')},{'name':_0x0a9e('0x42'),'value':_0x3f3d41['attrTimezone']||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x1]?_0x3f3d41[_0x0a9e('0x3b')][0x1][_0x0a9e('0x3c')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x3f3d41[_0x0a9e('0x43')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41['attrs'][0x2]?_0x3f3d41[_0x0a9e('0x3b')][0x2][_0x0a9e('0x3c')]:undefined)||0xc}];case _0x0a9e('0x44'):return[{'name':'attrMetric','value':_0x3f3d41[_0x0a9e('0x45')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x0]?_0x3f3d41[_0x0a9e('0x3b')][0x0][_0x0a9e('0x3c')]:undefined)||_0x0a9e('0x46')},{'name':_0x0a9e('0x47'),'value':_0x3f3d41[_0x0a9e('0x47')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x1]?_0x3f3d41[_0x0a9e('0x3b')][0x1][_0x0a9e('0x3c')]:undefined)||[]},{'name':_0x0a9e('0x43'),'value':_0x3f3d41[_0x0a9e('0x43')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41['attrs'][0x2]?_0x3f3d41['attrs'][0x2][_0x0a9e('0x3c')]:undefined)||0x14}];case _0x0a9e('0x48'):case _0x0a9e('0x49'):return[{'name':_0x0a9e('0x4a'),'value':_0x3f3d41[_0x0a9e('0x4a')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x0]?_0x3f3d41[_0x0a9e('0x3b')][0x0][_0x0a9e('0x3c')]:undefined)||_0x0a9e('0x46')},{'name':_0x0a9e('0x4b'),'value':_0x3f3d41[_0x0a9e('0x4b')]||(_0x3f3d41['attrs']&&_0x3f3d41[_0x0a9e('0x3b')][0x1]?_0x3f3d41[_0x0a9e('0x3b')][0x1][_0x0a9e('0x3c')]:undefined)||null},{'name':_0x0a9e('0x4c'),'value':_0x3f3d41[_0x0a9e('0x4c')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x2]?_0x3f3d41[_0x0a9e('0x3b')][0x2]['value']:undefined)||null},{'name':_0x0a9e('0x47'),'value':_0x3f3d41['attrVoiceQueues']||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x3]?_0x3f3d41[_0x0a9e('0x3b')][0x3]['value']:undefined)||[]}];case _0x0a9e('0x4d'):return[{'name':_0x0a9e('0x4e'),'type':_0x3f3d41[_0x0a9e('0x4f')]||null,'value':_0x3f3d41[_0x0a9e('0x4e')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x0]?_0x3f3d41[_0x0a9e('0x3b')][0x0]['value']:undefined)||null},{'name':_0x0a9e('0x50'),'value':_0x3f3d41[_0x0a9e('0x50')]||(_0x3f3d41[_0x0a9e('0x3b')]&&_0x3f3d41[_0x0a9e('0x3b')][0x1]?_0x3f3d41[_0x0a9e('0x3b')][0x1][_0x0a9e('0x3c')]:undefined)||0x0}];default:return[];}}catch(_0x6054ee){logger[_0x0a9e('0x26')](_0x0a9e('0x51'),JSON['stringify'](_0x6054ee));return[];}}exports[_0x0a9e('0x52')]=function(_0x3fe430,_0x4f7240){if(_0x3fe430['body']){_0x3fe430['body'][_0x0a9e('0x3b')]=widgetAttributes(_0x3fe430[_0x0a9e('0x53')]);}return db[_0x0a9e('0x2d')][_0x0a9e('0x52')](_0x3fe430[_0x0a9e('0x53')],{})[_0x0a9e('0x24')](respondWithResult(_0x4f7240,0xc9))[_0x0a9e('0x38')](handleError(_0x4f7240,null));};exports[_0x0a9e('0x54')]=function(_0x5d38ae,_0x4b1b9f){if(_0x5d38ae['body']['id']){delete _0x5d38ae[_0x0a9e('0x53')]['id'];}_0x5d38ae[_0x0a9e('0x53')][_0x0a9e('0x3b')]=widgetAttributes(_0x5d38ae['body']);return db[_0x0a9e('0x2d')][_0x0a9e('0x37')]({'where':{'id':_0x5d38ae['params']['id']}})['then'](handleEntityNotFound(_0x4b1b9f,null))[_0x0a9e('0x24')](saveUpdates(_0x5d38ae['body'],null))[_0x0a9e('0x24')](respondWithResult(_0x4b1b9f,null))['catch'](handleError(_0x4b1b9f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f9a=['events','../../mysqldb','DashboardItem','save','emit','exports'];(function(_0x503306,_0x356f2f){var _0x44a99d=function(_0x1a6ec4){while(--_0x1a6ec4){_0x503306['push'](_0x503306['shift']());}};_0x44a99d(++_0x356f2f);}(_0x9f9a,0x174));var _0xa9f9=function(_0x1034bb,_0x4e20b3){_0x1034bb=_0x1034bb-0x0;var _0x453fdb=_0x9f9a[_0x1034bb];return _0x453fdb;};'use strict';var EventEmitter=require(_0xa9f9('0x0'));var DashboardItem=require(_0xa9f9('0x1'))['db'][_0xa9f9('0x2')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xa9f9('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x77daf5){return function(_0x1eb944,_0x5cca85,_0x1e40cc){DashboardItemEvents[_0xa9f9('0x4')](_0x77daf5+':'+_0x1eb944['id'],_0x1eb944);DashboardItemEvents[_0xa9f9('0x4')](_0x77daf5,_0x1eb944);_0x1e40cc(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];DashboardItem['hook'](e,emitEvent(event));}}module[_0xa9f9('0x5')]=DashboardItemEvents;
\ No newline at end of file
+var _0x6bf9=['setMaxListeners','update','remove','emit','hook','exports','events','DashboardItem'];(function(_0x37cea7,_0x392c1c){var _0x5456a4=function(_0x264acb){while(--_0x264acb){_0x37cea7['push'](_0x37cea7['shift']());}};_0x5456a4(++_0x392c1c);}(_0x6bf9,0x1be));var _0x96bf=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0x6bf9[_0x3511d3];return _0x5d6321;};'use strict';var EventEmitter=require(_0x96bf('0x0'));var DashboardItem=require('../../mysqldb')['db'][_0x96bf('0x1')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents[_0x96bf('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x96bf('0x3'),'afterDestroy':_0x96bf('0x4')};function emitEvent(_0x4a35ff){return function(_0x186971,_0x1a5cd4,_0x53c73d){DashboardItemEvents['emit'](_0x4a35ff+':'+_0x186971['id'],_0x186971);DashboardItemEvents[_0x96bf('0x5')](_0x4a35ff,_0x186971);_0x53c73d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];DashboardItem[_0x96bf('0x6')](e,emitEvent(event));}}module[_0x96bf('0x7')]=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['dashboard_items','lodash','util','../../config/logger','moment','bluebird','./dashboardItem.attributes','exports','define'];(function(_0x421791,_0x3625d8){var _0x495838=function(_0x5190c3){while(--_0x5190c3){_0x421791['push'](_0x421791['shift']());}};_0x495838(++_0x3625d8);}(_0x7a54,0x106));var _0x47a5=function(_0x11c810,_0x1d845a){_0x11c810=_0x11c810-0x0;var _0x56a019=_0x7a54[_0x11c810];return _0x56a019;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var attributes=require(_0x47a5('0x5'));module[_0x47a5('0x6')]=function(_0x2a1a7e,_0x3717e1){return _0x2a1a7e[_0x47a5('0x7')]('DashboardItem',attributes,{'tableName':_0x47a5('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a54=['dashboard_items','lodash','util','../../config/logger','moment','bluebird','./dashboardItem.attributes','exports','define'];(function(_0x3740fe,_0x6c543c){var _0x55492b=function(_0x1f851f){while(--_0x1f851f){_0x3740fe['push'](_0x3740fe['shift']());}};_0x55492b(++_0x6c543c);}(_0x7a54,0x106));var _0x47a5=function(_0x2ef6b9,_0xb0c2fe){_0x2ef6b9=_0x2ef6b9-0x0;var _0xa82d3a=_0x7a54[_0x2ef6b9];return _0xa82d3a;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var attributes=require(_0x47a5('0x5'));module[_0x47a5('0x6')]=function(_0x2a1a7e,_0x3717e1){return _0x2a1a7e[_0x47a5('0x7')]('DashboardItem',attributes,{'tableName':_0x47a5('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757a=['info','catch','util','moment','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','request','then','request\x20sent','error','DashboardItem,\x20%s,\x20%s','message'];(function(_0x3126b6,_0x450061){var _0x116531=function(_0x4db330){while(--_0x4db330){_0x3126b6['push'](_0x3126b6['shift']());}};_0x116531(++_0x450061);}(_0x757a,0xde));var _0xa757=function(_0x1f35f9,_0x3848e3){_0x1f35f9=_0x1f35f9-0x0;var _0x1c9ca5=_0x757a[_0x1f35f9];return _0x1c9ca5;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var moment=require(_0xa757('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xa757('0x2'));var logger=require(_0xa757('0x3'))(_0xa757('0x4'));var config=require(_0xa757('0x5'));var jayson=require(_0xa757('0x6'));var client=jayson[_0xa757('0x7')]['http']({'port':0x232a});config[_0xa757('0x8')]=_[_0xa757('0x9')](config['redis'],{'host':_0xa757('0xa'),'port':0x18eb});var socket=require(_0xa757('0xb'))(config[_0xa757('0x8')]);require(_0xa757('0xc'))[_0xa757('0xd')](socket);function respondWithRpcPromise(_0x5aef8a,_0x89c630,_0x2ca96f){return new BPromise(function(_0x32f0ec,_0x3e2c9a){return client[_0xa757('0xe')](_0x5aef8a,_0x2ca96f)[_0xa757('0xf')](function(_0x17408b){logger['info']('DashboardItem,\x20%s,\x20%s',_0x89c630,'request\x20sent');logger['debug']('DashboardItem,\x20%s,\x20%s,\x20%s',_0x89c630,_0xa757('0x10'),JSON['stringify'](_0x17408b));if(_0x17408b['error']){if(_0x17408b[_0xa757('0x11')]['code']===0x1f4){logger['error'](_0xa757('0x12'),_0x89c630,_0x17408b[_0xa757('0x11')][_0xa757('0x13')]);return _0x3e2c9a(_0x17408b[_0xa757('0x11')][_0xa757('0x13')]);}logger[_0xa757('0x11')](_0xa757('0x12'),_0x89c630,_0x17408b[_0xa757('0x11')][_0xa757('0x13')]);return _0x32f0ec(_0x17408b[_0xa757('0x11')]['message']);}else{logger[_0xa757('0x14')](_0xa757('0x12'),_0x89c630,_0xa757('0x10'));_0x32f0ec(_0x17408b['result']['message']);}})[_0xa757('0x15')](function(_0x468d45){logger[_0xa757('0x11')](_0xa757('0x12'),_0x89c630,_0x468d45);_0x3e2c9a(_0x468d45);});});}
\ No newline at end of file
+var _0x093a=['bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','then','info','request\x20sent','debug','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','error','message','DashboardItem,\x20%s,\x20%s','result','catch','util','moment'];(function(_0x438395,_0x1e1964){var _0x507d25=function(_0xc01bc9){while(--_0xc01bc9){_0x438395['push'](_0x438395['shift']());}};_0x507d25(++_0x1e1964);}(_0x093a,0x16a));var _0xa093=function(_0x82129b,_0x484ae9){_0x82129b=_0x82129b-0x0;var _0x2ae5dc=_0x093a[_0x82129b];return _0x2ae5dc;};'use strict';var _=require('lodash');var util=require(_0xa093('0x0'));var moment=require(_0xa093('0x1'));var BPromise=require(_0xa093('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa093('0x3'))['db'];var utils=require(_0xa093('0x4'));var logger=require(_0xa093('0x5'))(_0xa093('0x6'));var config=require(_0xa093('0x7'));var jayson=require(_0xa093('0x8'));var client=jayson[_0xa093('0x9')][_0xa093('0xa')]({'port':0x232a});config[_0xa093('0xb')]=_[_0xa093('0xc')](config[_0xa093('0xb')],{'host':_0xa093('0xd'),'port':0x18eb});var socket=require(_0xa093('0xe'))(new Redis(config[_0xa093('0xb')]));require(_0xa093('0xf'))[_0xa093('0x10')](socket);function respondWithRpcPromise(_0x13da42,_0x28892a,_0x86da1a){return new BPromise(function(_0x9064f1,_0x5cb78){return client['request'](_0x13da42,_0x86da1a)[_0xa093('0x11')](function(_0x3e8ba0){logger[_0xa093('0x12')]('DashboardItem,\x20%s,\x20%s',_0x28892a,_0xa093('0x13'));logger[_0xa093('0x14')](_0xa093('0x15'),_0x28892a,_0xa093('0x13'),JSON[_0xa093('0x16')](_0x3e8ba0));if(_0x3e8ba0[_0xa093('0x17')]){if(_0x3e8ba0[_0xa093('0x17')]['code']===0x1f4){logger[_0xa093('0x17')]('DashboardItem,\x20%s,\x20%s',_0x28892a,_0x3e8ba0[_0xa093('0x17')][_0xa093('0x18')]);return _0x5cb78(_0x3e8ba0[_0xa093('0x17')][_0xa093('0x18')]);}logger[_0xa093('0x17')](_0xa093('0x19'),_0x28892a,_0x3e8ba0[_0xa093('0x17')][_0xa093('0x18')]);return _0x9064f1(_0x3e8ba0['error'][_0xa093('0x18')]);}else{logger[_0xa093('0x12')](_0xa093('0x19'),_0x28892a,_0xa093('0x13'));_0x9064f1(_0x3e8ba0[_0xa093('0x1a')][_0xa093('0x18')]);}})[_0xa093('0x1b')](function(_0x487ed7){logger[_0xa093('0x17')]('DashboardItem,\x20%s,\x20%s',_0x28892a,_0x487ed7);_0x5cb78(_0x487ed7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['dashboardItem:','./dashboardItem.events','remove','update','removeListener','register','length'];(function(_0x5dc123,_0x1a7217){var _0xd98e38=function(_0x1332aa){while(--_0x1332aa){_0x5dc123['push'](_0x5dc123['shift']());}};_0xd98e38(++_0x1a7217);}(_0x7217,0x19e));var _0x7721=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0x7217[_0x4243a3];return _0x1b2a33;};'use strict';var DashboardItemEvents=require(_0x7721('0x0'));var events=['save',_0x7721('0x1'),_0x7721('0x2')];function createListener(_0x1de988,_0x2a78d8){return function(_0x115ab3){_0x2a78d8['emit'](_0x1de988,_0x115ab3);};}function removeListener(_0x5bf160,_0x472a96){return function(){DashboardItemEvents[_0x7721('0x3')](_0x5bf160,_0x472a96);};}exports[_0x7721('0x4')]=function(_0x3fe47c){for(var _0xb239e0=0x0,_0xf7ff37=events[_0x7721('0x5')];_0xb239e0<_0xf7ff37;_0xb239e0++){var _0x21f680=events[_0xb239e0];var _0x225610=createListener(_0x7721('0x6')+_0x21f680,_0x3fe47c);DashboardItemEvents['on'](_0x21f680,_0x225610);}};
\ No newline at end of file
+var _0x008c=['./dashboardItem.events','save','remove','update','emit','removeListener','register','dashboardItem:'];(function(_0x4984aa,_0xbfa5f5){var _0xab589e=function(_0x2a48a6){while(--_0x2a48a6){_0x4984aa['push'](_0x4984aa['shift']());}};_0xab589e(++_0xbfa5f5);}(_0x008c,0x188));var _0xc008=function(_0xa96436,_0x656eb1){_0xa96436=_0xa96436-0x0;var _0x310513=_0x008c[_0xa96436];return _0x310513;};'use strict';var DashboardItemEvents=require(_0xc008('0x0'));var events=[_0xc008('0x1'),_0xc008('0x2'),_0xc008('0x3')];function createListener(_0x1d119a,_0x544fdf){return function(_0x3641af){_0x544fdf[_0xc008('0x4')](_0x1d119a,_0x3641af);};}function removeListener(_0x10b33c,_0x163bd9){return function(){DashboardItemEvents[_0xc008('0x5')](_0x10b33c,_0x163bd9);};}exports[_0xc008('0x6')]=function(_0x13aa7){for(var _0x39bb5e=0x0,_0x9c8cb2=events['length'];_0x39bb5e<_0x9c8cb2;_0x39bb5e++){var _0x428fa9=events[_0x39bb5e];var _0x5aa09b=createListener(_0xc008('0x7')+_0x428fa9,_0x13aa7);DashboardItemEvents['on'](_0x428fa9,_0x5aa09b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec80=['util','path','express','Router','../../components/auth/service','./dashboardItem.controller','/:id','post','isAuthenticated','create','put','delete','destroy','exports','multer'];(function(_0xf48e79,_0x7b3f8b){var _0x5dcdff=function(_0x5b2f8c){while(--_0x5b2f8c){_0xf48e79['push'](_0xf48e79['shift']());}};_0x5dcdff(++_0x7b3f8b);}(_0xec80,0x1df));var _0x0ec8=function(_0x1554e2,_0x4efeec){_0x1554e2=_0x1554e2-0x0;var _0x51aa70=_0xec80[_0x1554e2];return _0x51aa70;};'use strict';var multer=require(_0x0ec8('0x0'));var util=require(_0x0ec8('0x1'));var path=require(_0x0ec8('0x2'));var timeout=require('connect-timeout');var express=require(_0x0ec8('0x3'));var router=express[_0x0ec8('0x4')]();var auth=require(_0x0ec8('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x0ec8('0x6'));router['get'](_0x0ec8('0x7'),auth['isAuthenticated'](),controller['show']);router[_0x0ec8('0x8')]('/',auth[_0x0ec8('0x9')](),controller[_0x0ec8('0xa')]);router[_0x0ec8('0xb')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x0ec8('0xc')](_0x0ec8('0x7'),auth['isAuthenticated'](),controller[_0x0ec8('0xd')]);module[_0x0ec8('0xe')]=router;
\ No newline at end of file
+var _0x1a44=['path','connect-timeout','express','../../config/environment','get','/:id','isAuthenticated','show','put','update','exports'];(function(_0x170682,_0x1fe7b7){var _0x2d9f0e=function(_0x1912d7){while(--_0x1912d7){_0x170682['push'](_0x170682['shift']());}};_0x2d9f0e(++_0x1fe7b7);}(_0x1a44,0x1ce));var _0x41a4=function(_0x360076,_0x5e3ad5){_0x360076=_0x360076-0x0;var _0x27c6ec=_0x1a44[_0x360076];return _0x27c6ec;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x41a4('0x0'));var timeout=require(_0x41a4('0x1'));var express=require(_0x41a4('0x2'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x41a4('0x3'));var controller=require('./dashboardItem.controller');router[_0x41a4('0x4')](_0x41a4('0x5'),auth[_0x41a4('0x6')](),controller[_0x41a4('0x7')]);router['post']('/',auth[_0x41a4('0x6')](),controller['create']);router[_0x41a4('0x8')]('/:id',auth[_0x41a4('0x6')](),controller[_0x41a4('0x9')]);router['delete'](_0x41a4('0x5'),auth[_0x41a4('0x6')](),controller['destroy']);module[_0x41a4('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc98c=['STRING','exports'];(function(_0x2160a9,_0x3cbd9e){var _0xa88cf7=function(_0x51ab6f){while(--_0x51ab6f){_0x2160a9['push'](_0x2160a9['shift']());}};_0xa88cf7(++_0x3cbd9e);}(_0xc98c,0x1db));var _0xcc98=function(_0x1a0769,_0x4e3497){_0x1a0769=_0x1a0769-0x0;var _0x165b84=_0xc98c[_0x1a0769];return _0x165b84;};'use strict';var Sequelize=require('sequelize');module[_0xcc98('0x0')]={'name':{'type':Sequelize[_0xcc98('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0x49ec=['exports','sequelize'];(function(_0x367e5b,_0x5721e4){var _0x4b909e=function(_0x22c6a4){while(--_0x22c6a4){_0x367e5b['push'](_0x367e5b['shift']());}};_0x4b909e(++_0x5721e4);}(_0x49ec,0x14d));var _0xc49e=function(_0x282acb,_0xc74e19){_0x282acb=_0x282acb-0x0;var _0x46fc56=_0x49ec[_0x282acb];return _0x46fc56;};'use strict';var Sequelize=require(_0xc49e('0x0'));module[_0xc49e('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49da=['model','fields','length','nolimit','limit','order','sort','where','day','add','merge','map','filter','options','includeAll','include','findAll','catch','show','find','create','body','params','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','jsforce','desk.js','papaparse','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','json','count','offset','status','Content-Range','apply','reject','update','then','destroy','stack','name','send','Disposition','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','attributes'];(function(_0x582f74,_0x515b61){var _0x4e8a25=function(_0x335cb0){while(--_0x335cb0){_0x582f74['push'](_0x582f74['shift']());}};_0x4e8a25(++_0x515b61);}(_0x49da,0x1de));var _0xa49d=function(_0x486517,_0x223167){_0x486517=_0x486517-0x0;var _0x59ab3b=_0x49da[_0x486517];return _0x59ab3b;};'use strict';var pdf=require(_0xa49d('0x0'));var emlformat=require(_0xa49d('0x1'));var rimraf=require(_0xa49d('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xa49d('0x3'));var moment=require(_0xa49d('0x4'));var BPromise=require(_0xa49d('0x5'));var Mustache=require(_0xa49d('0x6'));var util=require('util');var path=require(_0xa49d('0x7'));var sox=require(_0xa49d('0x8'));var csv=require(_0xa49d('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa49d('0xa'));var squel=require(_0xa49d('0xb'));var crypto=require('crypto');var jsforce=require(_0xa49d('0xc'));var deskjs=require(_0xa49d('0xd'));var toCsv=require(_0xa49d('0x9'));var querystring=require('querystring');var Papa=require(_0xa49d('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0xa49d('0xf'))('api');var utils=require(_0xa49d('0x10'));var config=require('../../config/environment');var db=require(_0xa49d('0x11'))['db'];function respondWithStatusCode(_0xa0b907,_0x46b183){_0x46b183=_0x46b183||0xcc;return function(_0x479369){if(_0x479369){return _0xa0b907[_0xa49d('0x12')](_0x46b183);}return _0xa0b907['status'](_0x46b183)[_0xa49d('0x13')]();};}function respondWithResult(_0x436a8d,_0xa2f4bd){_0xa2f4bd=_0xa2f4bd||0xc8;return function(_0x43e6d6){if(_0x43e6d6){return _0x436a8d['status'](_0xa2f4bd)[_0xa49d('0x14')](_0x43e6d6);}};}function respondWithFilteredResult(_0x246030,_0x52820b){return function(_0x22e373){if(_0x22e373){var _0x31fdad=_0x22e373[_0xa49d('0x15')],_0x1e10f7=_0x52820b[_0xa49d('0x16')],_0x1f85d9=_0x52820b[_0xa49d('0x16')]+_0x52820b['limit'],_0x1ad174;if(_0x1f85d9>=_0x31fdad){_0x1f85d9=_0x31fdad;_0x1ad174=0xc8;}else{_0x1ad174=0xce;}_0x246030[_0xa49d('0x17')](_0x1ad174);return _0x246030['set'](_0xa49d('0x18'),_0x1e10f7+'-'+_0x1f85d9+'/'+_0x31fdad)[_0xa49d('0x14')](_0x22e373);}return null;};}function patchUpdates(_0x364591){return function(_0x33237c){try{jsonpatch[_0xa49d('0x19')](_0x33237c,_0x364591,!![]);}catch(_0x5f5b8b){return BPromise[_0xa49d('0x1a')](_0x5f5b8b);}return _0x33237c['save']();};}function saveUpdates(_0x4a3857,_0x406f04){return function(_0x4bed89){if(_0x4bed89){return _0x4bed89[_0xa49d('0x1b')](_0x4a3857)[_0xa49d('0x1c')](function(_0x204832){return _0x204832;});}return null;};}function removeEntity(_0x3af4e4,_0x3af6b5){return function(_0x2322db){if(_0x2322db){return _0x2322db[_0xa49d('0x1d')]()[_0xa49d('0x1c')](function(){_0x3af4e4[_0xa49d('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3f372e,_0x2ff7ab){return function(_0x200254){if(!_0x200254){_0x3f372e[_0xa49d('0x12')](0x194);}return _0x200254;};}function handleError(_0x15a5e6,_0x4965d3){_0x4965d3=_0x4965d3||0x1f4;return function(_0x3aef17){logger['error'](_0x3aef17[_0xa49d('0x1e')]);if(_0x3aef17[_0xa49d('0x1f')]){delete _0x3aef17[_0xa49d('0x1f')];}_0x15a5e6['status'](_0x4965d3)[_0xa49d('0x20')](_0x3aef17);};}exports['index']=function(_0x5d7c48,_0x4556d7){var _0x42c0af={},_0x350480={},_0x464b6d={'count':0x0,'rows':[]};var _0x5c7b98=db[_0xa49d('0x21')][_0xa49d('0x22')];_0x350480['model']=_[_0xa49d('0x23')](_0x5c7b98);var _0x3803cc={'dateStart':_0x5d7c48[_0xa49d('0x24')][_0xa49d('0x25')],'dateEnd':_0x5d7c48[_0xa49d('0x24')][_0xa49d('0x26')]};delete _0x5d7c48['query'][_0xa49d('0x25')];delete _0x5d7c48[_0xa49d('0x24')][_0xa49d('0x26')];_0x350480['query']=_['keys'](_0x5d7c48[_0xa49d('0x24')]);_0x350480[_0xa49d('0x27')]=_[_0xa49d('0x28')](_0x350480['model'],_0x350480[_0xa49d('0x24')]);_0x42c0af[_0xa49d('0x29')]=_['intersection'](_0x350480[_0xa49d('0x2a')],qs[_0xa49d('0x2b')](_0x5d7c48[_0xa49d('0x24')][_0xa49d('0x2b')]));_0x42c0af['attributes']=_0x42c0af[_0xa49d('0x29')][_0xa49d('0x2c')]?_0x42c0af['attributes']:_0x350480[_0xa49d('0x2a')];if(!_0x5d7c48['query']['hasOwnProperty'](_0xa49d('0x2d'))){_0x42c0af['limit']=qs[_0xa49d('0x2e')](_0x5d7c48[_0xa49d('0x24')][_0xa49d('0x2e')]);_0x42c0af['offset']=qs['offset'](_0x5d7c48['query'][_0xa49d('0x16')]);}_0x42c0af[_0xa49d('0x2f')]=qs[_0xa49d('0x30')](_0x5d7c48[_0xa49d('0x24')]['sort']);_0x42c0af[_0xa49d('0x31')]=qs['filters'](_['pick'](_0x5d7c48[_0xa49d('0x24')],_0x350480[_0xa49d('0x27')]));if(_0x3803cc['dateStart']){if(_0x3803cc[_0xa49d('0x26')]){_0x3803cc[_0xa49d('0x26')]=moment(_0x3803cc[_0xa49d('0x26')])['add'](0x1,_0xa49d('0x32'));}else{_0x3803cc['dateEnd']=moment(_0x3803cc[_0xa49d('0x25')])[_0xa49d('0x33')](0x1,_0xa49d('0x32'));}_[_0xa49d('0x34')](_0x42c0af['where'],{'createdAt':{'$gte':_0x3803cc['dateStart'],'$lte':_0x3803cc[_0xa49d('0x26')]}});}if(_0x5d7c48['query']['filter']){_0x42c0af[_0xa49d('0x31')]=_[_0xa49d('0x34')](_0x42c0af[_0xa49d('0x31')],{'$or':_[_0xa49d('0x35')](_0x42c0af[_0xa49d('0x29')],function(_0x4cc889){var _0xcd09f8={};_0xcd09f8[_0x4cc889]={'$like':'%'+_0x5d7c48[_0xa49d('0x24')][_0xa49d('0x36')]+'%'};return _0xcd09f8;})});}_0x42c0af=_[_0xa49d('0x34')]({},_0x42c0af,_0x5d7c48[_0xa49d('0x37')]);var _0x1ac81c={'where':_0x42c0af[_0xa49d('0x31')]};return db[_0xa49d('0x21')][_0xa49d('0x15')](_0x1ac81c)[_0xa49d('0x1c')](function(_0x4ebf06){_0x464b6d[_0xa49d('0x15')]=_0x4ebf06;if(_0x5d7c48[_0xa49d('0x24')][_0xa49d('0x38')]){_0x42c0af[_0xa49d('0x39')]=[{'all':!![]}];}return db[_0xa49d('0x21')][_0xa49d('0x3a')](_0x42c0af);})[_0xa49d('0x1c')](function(_0xea8a07){_0x464b6d['rows']=_0xea8a07;return _0x464b6d;})[_0xa49d('0x1c')](respondWithFilteredResult(_0x4556d7,_0x42c0af))[_0xa49d('0x3b')](handleError(_0x4556d7,null));};exports[_0xa49d('0x3c')]=function(_0x4279b0,_0x5b35ee){var _0x5f0134={'raw':!![],'where':{'id':_0x4279b0['params']['id']}},_0x2af92d={};_0x2af92d['model']=_[_0xa49d('0x23')](db['Disposition'][_0xa49d('0x22')]);_0x2af92d[_0xa49d('0x24')]=_[_0xa49d('0x23')](_0x4279b0[_0xa49d('0x24')]);_0x2af92d[_0xa49d('0x27')]=_[_0xa49d('0x28')](_0x2af92d['model'],_0x2af92d[_0xa49d('0x24')]);_0x5f0134[_0xa49d('0x29')]=_[_0xa49d('0x28')](_0x2af92d[_0xa49d('0x2a')],qs[_0xa49d('0x2b')](_0x4279b0['query'][_0xa49d('0x2b')]));_0x5f0134[_0xa49d('0x29')]=_0x5f0134['attributes'][_0xa49d('0x2c')]?_0x5f0134[_0xa49d('0x29')]:_0x2af92d[_0xa49d('0x2a')];if(_0x4279b0[_0xa49d('0x24')]['includeAll']){_0x5f0134[_0xa49d('0x39')]=[{'all':!![]}];}_0x5f0134=_[_0xa49d('0x34')]({},_0x5f0134,_0x4279b0[_0xa49d('0x37')]);return db['Disposition'][_0xa49d('0x3d')](_0x5f0134)[_0xa49d('0x1c')](handleEntityNotFound(_0x5b35ee,null))[_0xa49d('0x1c')](respondWithResult(_0x5b35ee,null))[_0xa49d('0x3b')](handleError(_0x5b35ee,null));};exports[_0xa49d('0x3e')]=function(_0x1fc082,_0x44c6db){return db[_0xa49d('0x21')][_0xa49d('0x3e')](_0x1fc082['body'],{})[_0xa49d('0x1c')](respondWithResult(_0x44c6db,0xc9))[_0xa49d('0x3b')](handleError(_0x44c6db,null));};exports[_0xa49d('0x1b')]=function(_0x540119,_0x49108a){if(_0x540119[_0xa49d('0x3f')]['id']){delete _0x540119[_0xa49d('0x3f')]['id'];}return db[_0xa49d('0x21')]['find']({'where':{'id':_0x540119[_0xa49d('0x40')]['id']}})[_0xa49d('0x1c')](handleEntityNotFound(_0x49108a,null))[_0xa49d('0x1c')](saveUpdates(_0x540119['body'],null))[_0xa49d('0x1c')](respondWithResult(_0x49108a,null))['catch'](handleError(_0x49108a,null));};exports[_0xa49d('0x1d')]=function(_0xbd24b4,_0x2bdeb7){return db[_0xa49d('0x21')][_0xa49d('0x3d')]({'where':{'id':_0xbd24b4[_0xa49d('0x40')]['id']}})[_0xa49d('0x1c')](handleEntityNotFound(_0x2bdeb7,null))[_0xa49d('0x1c')](removeEntity(_0x2bdeb7,null))['catch'](handleError(_0x2bdeb7,null));};
\ No newline at end of file
+var _0x05aa=['then','destroy','end','stack','name','send','index','Disposition','keys','query','dateStart','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','dateEnd','add','day','merge','filter','map','options','include','rows','catch','params','rawAttributes','includeAll','find','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','sendStatus','status','count','offset','limit','set','json','reject','save','update'];(function(_0xe4f05b,_0x4a5910){var _0x70ab37=function(_0x303327){while(--_0x303327){_0xe4f05b['push'](_0xe4f05b['shift']());}};_0x70ab37(++_0x4a5910);}(_0x05aa,0x142));var _0xa05a=function(_0xe73080,_0x24c56d){_0xe73080=_0xe73080-0x0;var _0x12cbc4=_0x05aa[_0xe73080];return _0x12cbc4;};'use strict';var pdf=require(_0xa05a('0x0'));var emlformat=require(_0xa05a('0x1'));var rimraf=require(_0xa05a('0x2'));var zipdir=require(_0xa05a('0x3'));var jsonpatch=require(_0xa05a('0x4'));var rp=require(_0xa05a('0x5'));var moment=require(_0xa05a('0x6'));var BPromise=require(_0xa05a('0x7'));var Mustache=require('mustache');var util=require(_0xa05a('0x8'));var path=require(_0xa05a('0x9'));var sox=require(_0xa05a('0xa'));var csv=require(_0xa05a('0xb'));var ejs=require(_0xa05a('0xc'));var fs=require('fs');var _=require(_0xa05a('0xd'));var squel=require(_0xa05a('0xe'));var crypto=require(_0xa05a('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xa05a('0x10'));var toCsv=require(_0xa05a('0xb'));var querystring=require(_0xa05a('0x11'));var Papa=require(_0xa05a('0x12'));var Redis=require(_0xa05a('0x13'));var qs=require(_0xa05a('0x14'));var logger=require(_0xa05a('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xa05a('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x43ac67,_0x33e0b2){_0x33e0b2=_0x33e0b2||0xcc;return function(_0x9eeac1){if(_0x9eeac1){return _0x43ac67[_0xa05a('0x17')](_0x33e0b2);}return _0x43ac67[_0xa05a('0x18')](_0x33e0b2)['end']();};}function respondWithResult(_0x23e30b,_0x28ea8a){_0x28ea8a=_0x28ea8a||0xc8;return function(_0x5098ff){if(_0x5098ff){return _0x23e30b['status'](_0x28ea8a)['json'](_0x5098ff);}};}function respondWithFilteredResult(_0x151087,_0x5f558b){return function(_0x5ca398){if(_0x5ca398){var _0x3ed65e=_0x5ca398[_0xa05a('0x19')],_0x321728=_0x5f558b['offset'],_0x521eb8=_0x5f558b[_0xa05a('0x1a')]+_0x5f558b[_0xa05a('0x1b')],_0x726aa3;if(_0x521eb8>=_0x3ed65e){_0x521eb8=_0x3ed65e;_0x726aa3=0xc8;}else{_0x726aa3=0xce;}_0x151087['status'](_0x726aa3);return _0x151087[_0xa05a('0x1c')]('Content-Range',_0x321728+'-'+_0x521eb8+'/'+_0x3ed65e)[_0xa05a('0x1d')](_0x5ca398);}return null;};}function patchUpdates(_0x15ff36){return function(_0x728a63){try{jsonpatch['apply'](_0x728a63,_0x15ff36,!![]);}catch(_0x5dfdf6){return BPromise[_0xa05a('0x1e')](_0x5dfdf6);}return _0x728a63[_0xa05a('0x1f')]();};}function saveUpdates(_0x2c9320,_0x387d7a){return function(_0xa3d5e7){if(_0xa3d5e7){return _0xa3d5e7[_0xa05a('0x20')](_0x2c9320)[_0xa05a('0x21')](function(_0x51594d){return _0x51594d;});}return null;};}function removeEntity(_0x11b0e1,_0x40c635){return function(_0x3fb7bb){if(_0x3fb7bb){return _0x3fb7bb[_0xa05a('0x22')]()[_0xa05a('0x21')](function(){_0x11b0e1[_0xa05a('0x18')](0xcc)[_0xa05a('0x23')]();});}};}function handleEntityNotFound(_0xcdb184,_0x30ecfb){return function(_0x19fc2a){if(!_0x19fc2a){_0xcdb184[_0xa05a('0x17')](0x194);}return _0x19fc2a;};}function handleError(_0x385e31,_0x51bc32){_0x51bc32=_0x51bc32||0x1f4;return function(_0x3ec3c8){logger['error'](_0x3ec3c8[_0xa05a('0x24')]);if(_0x3ec3c8['name']){delete _0x3ec3c8[_0xa05a('0x25')];}_0x385e31[_0xa05a('0x18')](_0x51bc32)[_0xa05a('0x26')](_0x3ec3c8);};}exports[_0xa05a('0x27')]=function(_0x5b272b,_0x1ded2d){var _0x4db56f={},_0x1165f2={},_0x2be795={'count':0x0,'rows':[]};var _0x480e0e=db[_0xa05a('0x28')]['rawAttributes'];_0x1165f2['model']=_[_0xa05a('0x29')](_0x480e0e);var _0x379210={'dateStart':_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x2b')],'dateEnd':_0x5b272b[_0xa05a('0x2a')]['dateEnd']};delete _0x5b272b[_0xa05a('0x2a')][_0xa05a('0x2b')];delete _0x5b272b['query']['dateEnd'];_0x1165f2[_0xa05a('0x2a')]=_[_0xa05a('0x29')](_0x5b272b['query']);_0x1165f2[_0xa05a('0x2c')]=_[_0xa05a('0x2d')](_0x1165f2[_0xa05a('0x2e')],_0x1165f2['query']);_0x4db56f['attributes']=_[_0xa05a('0x2d')](_0x1165f2[_0xa05a('0x2e')],qs[_0xa05a('0x2f')](_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x2f')]));_0x4db56f[_0xa05a('0x30')]=_0x4db56f[_0xa05a('0x30')][_0xa05a('0x31')]?_0x4db56f[_0xa05a('0x30')]:_0x1165f2[_0xa05a('0x2e')];if(!_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x32')](_0xa05a('0x33'))){_0x4db56f[_0xa05a('0x1b')]=qs[_0xa05a('0x1b')](_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x1b')]);_0x4db56f[_0xa05a('0x1a')]=qs[_0xa05a('0x1a')](_0x5b272b['query']['offset']);}_0x4db56f[_0xa05a('0x34')]=qs['sort'](_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x35')]);_0x4db56f[_0xa05a('0x36')]=qs[_0xa05a('0x2c')](_['pick'](_0x5b272b[_0xa05a('0x2a')],_0x1165f2['filters']));if(_0x379210[_0xa05a('0x2b')]){if(_0x379210[_0xa05a('0x37')]){_0x379210['dateEnd']=moment(_0x379210[_0xa05a('0x37')])[_0xa05a('0x38')](0x1,_0xa05a('0x39'));}else{_0x379210['dateEnd']=moment(_0x379210['dateStart'])[_0xa05a('0x38')](0x1,_0xa05a('0x39'));}_[_0xa05a('0x3a')](_0x4db56f[_0xa05a('0x36')],{'createdAt':{'$gte':_0x379210[_0xa05a('0x2b')],'$lte':_0x379210['dateEnd']}});}if(_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x3b')]){_0x4db56f[_0xa05a('0x36')]=_[_0xa05a('0x3a')](_0x4db56f['where'],{'$or':_[_0xa05a('0x3c')](_0x4db56f[_0xa05a('0x30')],function(_0x50403d){var _0x5db8ab={};_0x5db8ab[_0x50403d]={'$like':'%'+_0x5b272b[_0xa05a('0x2a')][_0xa05a('0x3b')]+'%'};return _0x5db8ab;})});}_0x4db56f=_['merge']({},_0x4db56f,_0x5b272b[_0xa05a('0x3d')]);var _0x242d9b={'where':_0x4db56f[_0xa05a('0x36')]};return db[_0xa05a('0x28')][_0xa05a('0x19')](_0x242d9b)[_0xa05a('0x21')](function(_0x16094c){_0x2be795[_0xa05a('0x19')]=_0x16094c;if(_0x5b272b[_0xa05a('0x2a')]['includeAll']){_0x4db56f[_0xa05a('0x3e')]=[{'all':!![]}];}return db[_0xa05a('0x28')]['findAll'](_0x4db56f);})[_0xa05a('0x21')](function(_0x297522){_0x2be795[_0xa05a('0x3f')]=_0x297522;return _0x2be795;})[_0xa05a('0x21')](respondWithFilteredResult(_0x1ded2d,_0x4db56f))[_0xa05a('0x40')](handleError(_0x1ded2d,null));};exports['show']=function(_0x3621fa,_0xccc271){var _0x109fe7={'raw':!![],'where':{'id':_0x3621fa[_0xa05a('0x41')]['id']}},_0x5b7ba4={};_0x5b7ba4[_0xa05a('0x2e')]=_[_0xa05a('0x29')](db['Disposition'][_0xa05a('0x42')]);_0x5b7ba4['query']=_[_0xa05a('0x29')](_0x3621fa[_0xa05a('0x2a')]);_0x5b7ba4['filters']=_[_0xa05a('0x2d')](_0x5b7ba4[_0xa05a('0x2e')],_0x5b7ba4[_0xa05a('0x2a')]);_0x109fe7['attributes']=_['intersection'](_0x5b7ba4[_0xa05a('0x2e')],qs['fields'](_0x3621fa[_0xa05a('0x2a')]['fields']));_0x109fe7[_0xa05a('0x30')]=_0x109fe7[_0xa05a('0x30')][_0xa05a('0x31')]?_0x109fe7['attributes']:_0x5b7ba4[_0xa05a('0x2e')];if(_0x3621fa[_0xa05a('0x2a')][_0xa05a('0x43')]){_0x109fe7[_0xa05a('0x3e')]=[{'all':!![]}];}_0x109fe7=_[_0xa05a('0x3a')]({},_0x109fe7,_0x3621fa[_0xa05a('0x3d')]);return db[_0xa05a('0x28')][_0xa05a('0x44')](_0x109fe7)[_0xa05a('0x21')](handleEntityNotFound(_0xccc271,null))[_0xa05a('0x21')](respondWithResult(_0xccc271,null))[_0xa05a('0x40')](handleError(_0xccc271,null));};exports[_0xa05a('0x45')]=function(_0x26333c,_0x4939f6){return db[_0xa05a('0x28')]['create'](_0x26333c[_0xa05a('0x46')],{})[_0xa05a('0x21')](respondWithResult(_0x4939f6,0xc9))[_0xa05a('0x40')](handleError(_0x4939f6,null));};exports['update']=function(_0x14fe0f,_0xdfbd53){if(_0x14fe0f[_0xa05a('0x46')]['id']){delete _0x14fe0f['body']['id'];}return db[_0xa05a('0x28')][_0xa05a('0x44')]({'where':{'id':_0x14fe0f[_0xa05a('0x41')]['id']}})[_0xa05a('0x21')](handleEntityNotFound(_0xdfbd53,null))[_0xa05a('0x21')](saveUpdates(_0x14fe0f[_0xa05a('0x46')],null))[_0xa05a('0x21')](respondWithResult(_0xdfbd53,null))[_0xa05a('0x40')](handleError(_0xdfbd53,null));};exports[_0xa05a('0x22')]=function(_0x298274,_0x5c5478){return db[_0xa05a('0x28')]['find']({'where':{'id':_0x298274[_0xa05a('0x41')]['id']}})['then'](handleEntityNotFound(_0x5c5478,null))[_0xa05a('0x21')](removeEntity(_0x5c5478,null))[_0xa05a('0x40')](handleError(_0x5c5478,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14a0=['api','moment','bluebird','request-promise','./disposition.attributes','define','Disposition','name','ListId','name_chat','name_mail','SmsAccountId','FaxAccountId','OpenchannelAccountId','util','../../config/logger'];(function(_0x3c4e47,_0x49bd10){var _0x2a451b=function(_0x1ca400){while(--_0x1ca400){_0x3c4e47['push'](_0x3c4e47['shift']());}};_0x2a451b(++_0x49bd10);}(_0x14a0,0x8e));var _0x014a=function(_0x900cc4,_0x4aca02){_0x900cc4=_0x900cc4-0x0;var _0x132628=_0x14a0[_0x900cc4];return _0x132628;};'use strict';var _=require('lodash');var util=require(_0x014a('0x0'));var logger=require(_0x014a('0x1'))(_0x014a('0x2'));var moment=require(_0x014a('0x3'));var BPromise=require(_0x014a('0x4'));var rp=require(_0x014a('0x5'));var attributes=require(_0x014a('0x6'));module['exports']=function(_0x57a522,_0x1730a5){return _0x57a522[_0x014a('0x7')](_0x014a('0x8'),attributes,{'tableName':'tools_dispositions','paranoid':![],'indexes':[{'unique':!![],'name':'name_voice','fields':[_0x014a('0x9'),_0x014a('0xa')]},{'unique':!![],'name':_0x014a('0xb'),'fields':['name','ChatWebsiteId']},{'unique':!![],'name':_0x014a('0xc'),'fields':['name','MailAccountId']},{'unique':!![],'name':'name_sms','fields':['name',_0x014a('0xd')]},{'unique':!![],'name':'name_fax','fields':[_0x014a('0x9'),_0x014a('0xe')]},{'unique':!![],'name':'name_openchannel','fields':[_0x014a('0x9'),_0x014a('0xf')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xadb5=['Disposition','tools_dispositions','name_voice','name','ListId','name_chat','ChatWebsiteId','name_mail','MailAccountId','name_sms','FaxAccountId','name_openchannel','OpenchannelAccountId','util','api','moment','bluebird','./disposition.attributes','exports','define'];(function(_0x400f6a,_0x1b9fbf){var _0x589dce=function(_0x148440){while(--_0x148440){_0x400f6a['push'](_0x400f6a['shift']());}};_0x589dce(++_0x1b9fbf);}(_0xadb5,0xad));var _0x5adb=function(_0x49ead4,_0x584680){_0x49ead4=_0x49ead4-0x0;var _0x4eec87=_0xadb5[_0x49ead4];return _0x4eec87;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var logger=require('../../config/logger')(_0x5adb('0x1'));var moment=require(_0x5adb('0x2'));var BPromise=require(_0x5adb('0x3'));var rp=require('request-promise');var attributes=require(_0x5adb('0x4'));module[_0x5adb('0x5')]=function(_0x2e3ef4,_0x4cb1d1){return _0x2e3ef4[_0x5adb('0x6')](_0x5adb('0x7'),attributes,{'tableName':_0x5adb('0x8'),'paranoid':![],'indexes':[{'unique':!![],'name':_0x5adb('0x9'),'fields':[_0x5adb('0xa'),_0x5adb('0xb')]},{'unique':!![],'name':_0x5adb('0xc'),'fields':[_0x5adb('0xa'),_0x5adb('0xd')]},{'unique':!![],'name':_0x5adb('0xe'),'fields':[_0x5adb('0xa'),_0x5adb('0xf')]},{'unique':!![],'name':_0x5adb('0x10'),'fields':[_0x5adb('0xa'),'SmsAccountId']},{'unique':!![],'name':'name_fax','fields':[_0x5adb('0xa'),_0x5adb('0x11')]},{'unique':!![],'name':_0x5adb('0x12'),'fields':['name',_0x5adb('0x13')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['code','message','result','catch','lodash','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','Disposition,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x2dea24,_0x2fc021){var _0x309d58=function(_0x2eb89f){while(--_0x2eb89f){_0x2dea24['push'](_0x2dea24['shift']());}};_0x309d58(++_0x2fc021);}(_0xb10b,0x12a));var _0xbb10=function(_0x272587,_0x4e5fb1){_0x272587=_0x272587-0x0;var _0x3c2ff6=_0xb10b[_0x272587];return _0x3c2ff6;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xbb10('0x4'));var logger=require(_0xbb10('0x5'))(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var jayson=require(_0xbb10('0x8'));var client=jayson[_0xbb10('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x328583,_0x3cdd53,_0x513741){return new BPromise(function(_0x1b9e94,_0x3fb675){return client[_0xbb10('0xa')](_0x328583,_0x513741)[_0xbb10('0xb')](function(_0x2353ef){logger[_0xbb10('0xc')](_0xbb10('0xd'),_0x3cdd53,_0xbb10('0xe'));logger['debug']('Disposition,\x20%s,\x20%s,\x20%s',_0x3cdd53,_0xbb10('0xe'),JSON[_0xbb10('0xf')](_0x2353ef));if(_0x2353ef[_0xbb10('0x10')]){if(_0x2353ef['error'][_0xbb10('0x11')]===0x1f4){logger['error'](_0xbb10('0xd'),_0x3cdd53,_0x2353ef[_0xbb10('0x10')][_0xbb10('0x12')]);return _0x3fb675(_0x2353ef[_0xbb10('0x10')][_0xbb10('0x12')]);}logger[_0xbb10('0x10')]('Disposition,\x20%s,\x20%s',_0x3cdd53,_0x2353ef[_0xbb10('0x10')][_0xbb10('0x12')]);return _0x1b9e94(_0x2353ef[_0xbb10('0x10')][_0xbb10('0x12')]);}else{logger[_0xbb10('0xc')](_0xbb10('0xd'),_0x3cdd53,_0xbb10('0xe'));_0x1b9e94(_0x2353ef[_0xbb10('0x13')][_0xbb10('0x12')]);}})[_0xbb10('0x14')](function(_0x4a2bfc){logger[_0xbb10('0x10')](_0xbb10('0xd'),_0x3cdd53,_0x4a2bfc);_0x3fb675(_0x4a2bfc);});});}
\ No newline at end of file
+var _0xee3c=['code','Disposition,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x258919,_0x1754e6){var _0xfbd68b=function(_0x3bc3e9){while(--_0x3bc3e9){_0x258919['push'](_0x258919['shift']());}};_0xfbd68b(++_0x1754e6);}(_0xee3c,0x14a));var _0xcee3=function(_0x1bb304,_0x27f907){_0x1bb304=_0x1bb304-0x0;var _0xfedf21=_0xee3c[_0x1bb304];return _0xfedf21;};'use strict';var _=require(_0xcee3('0x0'));var util=require(_0xcee3('0x1'));var moment=require(_0xcee3('0x2'));var BPromise=require(_0xcee3('0x3'));var rs=require(_0xcee3('0x4'));var fs=require('fs');var Redis=require(_0xcee3('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xcee3('0x6'))(_0xcee3('0x7'));var config=require(_0xcee3('0x8'));var jayson=require(_0xcee3('0x9'));var client=jayson[_0xcee3('0xa')][_0xcee3('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3b8ffe,_0x97f00e,_0x22953c){return new BPromise(function(_0x364eb2,_0x4770ed){return client[_0xcee3('0xc')](_0x3b8ffe,_0x22953c)[_0xcee3('0xd')](function(_0x81de8e){logger[_0xcee3('0xe')]('Disposition,\x20%s,\x20%s',_0x97f00e,_0xcee3('0xf'));logger[_0xcee3('0x10')](_0xcee3('0x11'),_0x97f00e,_0xcee3('0xf'),JSON[_0xcee3('0x12')](_0x81de8e));if(_0x81de8e[_0xcee3('0x13')]){if(_0x81de8e['error'][_0xcee3('0x14')]===0x1f4){logger[_0xcee3('0x13')](_0xcee3('0x15'),_0x97f00e,_0x81de8e[_0xcee3('0x13')][_0xcee3('0x16')]);return _0x4770ed(_0x81de8e['error'][_0xcee3('0x16')]);}logger['error']('Disposition,\x20%s,\x20%s',_0x97f00e,_0x81de8e['error'][_0xcee3('0x16')]);return _0x364eb2(_0x81de8e[_0xcee3('0x13')]['message']);}else{logger['info'](_0xcee3('0x15'),_0x97f00e,'request\x20sent');_0x364eb2(_0x81de8e[_0xcee3('0x17')]['message']);}})[_0xcee3('0x18')](function(_0x952a21){logger['error'](_0xcee3('0x15'),_0x97f00e,_0x952a21);_0x4770ed(_0x952a21);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe32e=['connect-timeout','express','../../components/auth/service','../../components/interaction/service','./disposition.controller','get','isAuthenticated','index','/:id','show','post','put','destroy','exports','util','path'];(function(_0x4fd90,_0x29f3a8){var _0x13d54f=function(_0x334c3a){while(--_0x334c3a){_0x4fd90['push'](_0x4fd90['shift']());}};_0x13d54f(++_0x29f3a8);}(_0xe32e,0x11e));var _0xee32=function(_0x4a7827,_0x5468d5){_0x4a7827=_0x4a7827-0x0;var _0x3f60c7=_0xe32e[_0x4a7827];return _0x3f60c7;};'use strict';var multer=require('multer');var util=require(_0xee32('0x0'));var path=require(_0xee32('0x1'));var timeout=require(_0xee32('0x2'));var express=require(_0xee32('0x3'));var router=express['Router']();var auth=require(_0xee32('0x4'));var interaction=require(_0xee32('0x5'));var config=require('../../config/environment');var controller=require(_0xee32('0x6'));router[_0xee32('0x7')]('/',auth[_0xee32('0x8')](),controller[_0xee32('0x9')]);router['get'](_0xee32('0xa'),auth[_0xee32('0x8')](),controller[_0xee32('0xb')]);router[_0xee32('0xc')]('/',auth[_0xee32('0x8')](),controller['create']);router[_0xee32('0xd')](_0xee32('0xa'),auth[_0xee32('0x8')](),controller['update']);router['delete'](_0xee32('0xa'),auth['isAuthenticated'](),controller[_0xee32('0xe')]);module[_0xee32('0xf')]=router;
\ No newline at end of file
+var _0xf84e=['connect-timeout','express','Router','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','show','post','create','put','destroy','exports','multer','util','path'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xf84e,0xc3));var _0xef84=function(_0x50577b,_0x4c96f6){_0x50577b=_0x50577b-0x0;var _0x25e088=_0xf84e[_0x50577b];return _0x25e088;};'use strict';var multer=require(_0xef84('0x0'));var util=require(_0xef84('0x1'));var path=require(_0xef84('0x2'));var timeout=require(_0xef84('0x3'));var express=require(_0xef84('0x4'));var router=express[_0xef84('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0xef84('0x6'));var config=require(_0xef84('0x7'));var controller=require('./disposition.controller');router[_0xef84('0x8')]('/',auth['isAuthenticated'](),controller[_0xef84('0x9')]);router[_0xef84('0x8')](_0xef84('0xa'),auth[_0xef84('0xb')](),controller[_0xef84('0xc')]);router[_0xef84('0xd')]('/',auth[_0xef84('0xb')](),controller[_0xef84('0xe')]);router[_0xef84('0xf')]('/:id',auth[_0xef84('0xb')](),controller['update']);router['delete'](_0xef84('0xa'),auth['isAuthenticated'](),controller[_0xef84('0x10')]);module[_0xef84('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59b6=['14400','INTEGER','SIP','DADHI','KHOMP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','sequelize','exports','STRING','yes','xCALLY\x20Motion\x20Fax','ENUM','2400','4800','7200','9600','12000'];(function(_0x4914ad,_0x551a18){var _0x3cd61f=function(_0x2a773e){while(--_0x2a773e){_0x4914ad['push'](_0x4914ad['shift']());}};_0x3cd61f(++_0x551a18);}(_0x59b6,0x1aa));var _0x659b=function(_0x1bc1f2,_0x30ae1b){_0x1bc1f2=_0x1bc1f2-0x0;var _0x599c8b=_0x59b6[_0x1bc1f2];return _0x599c8b;};'use strict';var Sequelize=require(_0x659b('0x0'));module[_0x659b('0x1')]={'name':{'type':Sequelize[_0x659b('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x659b('0x2')]},'ecm':{'type':Sequelize['ENUM'](_0x659b('0x3'),'no'),'defaultValue':_0x659b('0x3')},'headerinfo':{'type':Sequelize[_0x659b('0x2')],'defaultValue':_0x659b('0x4')},'localstationid':{'type':Sequelize['STRING'],'unique':'localstationid'},'minrate':{'type':Sequelize[_0x659b('0x5')](_0x659b('0x6'),_0x659b('0x7'),_0x659b('0x8'),_0x659b('0x9'),_0x659b('0xa'),'14400'),'defaultValue':_0x659b('0x7')},'maxrate':{'type':Sequelize[_0x659b('0x5')](_0x659b('0x6'),'4800',_0x659b('0x8'),_0x659b('0x9'),_0x659b('0xa'),_0x659b('0xb')),'defaultValue':_0x659b('0xb')},'modem':{'type':Sequelize['STRING'],'defaultValue':'v17,v27,v29'},'gateway':{'type':Sequelize[_0x659b('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x659b('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x659b('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize['ENUM'](_0x659b('0xd'),'IAX',_0x659b('0xe'),_0x659b('0xf')),'defaultValue':_0x659b('0xd')},'key':{'type':Sequelize[_0x659b('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x659b('0x10')],'defaultValue':function(){return _0x659b('0x11');}},'notificationSound':{'type':Sequelize[_0x659b('0x12')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x659b('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c}};
\ No newline at end of file
+var _0x9b7e=['ENUM','yes','xCALLY\x20Motion\x20Fax','localstationid','2400','7200','12000','14400','4800','v17,v27,v29','INTEGER','SIP','IAX','DADHI','KHOMP','TEXT','BOOLEAN','exports','STRING'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0x9b7e,0x12e));var _0xe9b7=function(_0x50af9c,_0xf03b1e){_0x50af9c=_0x50af9c-0x0;var _0x5b5e5a=_0x9b7e[_0x50af9c];return _0x5b5e5a;};'use strict';var Sequelize=require('sequelize');module[_0xe9b7('0x0')]={'name':{'type':Sequelize[_0xe9b7('0x1')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xe9b7('0x1')]},'ecm':{'type':Sequelize[_0xe9b7('0x2')](_0xe9b7('0x3'),'no'),'defaultValue':_0xe9b7('0x3')},'headerinfo':{'type':Sequelize[_0xe9b7('0x1')],'defaultValue':_0xe9b7('0x4')},'localstationid':{'type':Sequelize[_0xe9b7('0x1')],'unique':_0xe9b7('0x5')},'minrate':{'type':Sequelize['ENUM'](_0xe9b7('0x6'),'4800',_0xe9b7('0x7'),'9600',_0xe9b7('0x8'),_0xe9b7('0x9')),'defaultValue':_0xe9b7('0xa')},'maxrate':{'type':Sequelize[_0xe9b7('0x2')](_0xe9b7('0x6'),_0xe9b7('0xa'),_0xe9b7('0x7'),'9600',_0xe9b7('0x8'),'14400'),'defaultValue':_0xe9b7('0x9')},'modem':{'type':Sequelize['STRING'],'defaultValue':_0xe9b7('0xb')},'gateway':{'type':Sequelize[_0xe9b7('0x1')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0xe9b7('0x1')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0xe9b7('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0xe9b7('0x2')](_0xe9b7('0xd'),_0xe9b7('0xe'),_0xe9b7('0xf'),_0xe9b7('0x10')),'defaultValue':_0xe9b7('0xd')},'key':{'type':Sequelize[_0xe9b7('0x1')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xe9b7('0x11')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0xe9b7('0x12')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xe9b7('0x12')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xe9b7('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xe9b7('0x12')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xe9b7('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xe9b7('0x12')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7524=['isNil','from','\x22%s\x22\x20<%s>','List','ListId','Send\x20Fax\x20failed','out','filename','user','Messages','spread','ContactId','dataValues','SendFax','info','SendFaxRpc,\x20%s','addAgents','emit','userFaxAccount:save','removeAgents','isArray','userFaxAccount:remove','getAgents','eml-format','rimraf','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','jayson/promise','client','then','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','request\x20sent','catch','sendStatus','status','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','end','stack','name','send','FaxAccount','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','day','add','merge','filter','map','options','count','include','findAll','rows','show','params','find','create','body','describe','addDisposition','FaxAccountId','Disposition','getDispositions','includeAll','removeDispositions','getAnswers','findOne','CannedAnswer','removeAnswers','ids','addInteraction','FaxInteraction','getInteractions','CmContact','Contact','Owner','fullname','Tag','Tags','color','tag','addApplications','sequelize','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','from-voip-provider','exten','localstationid','app','type','system','description','appdata','push','Answer','CDR(type)=inbound-fax','Set','ecm','gateway','headerinfo','maxrate','minrate','t38timeout','FAXOPT(','ReceiveFax','addAccountApplications','get','VoiceExtension','updateAccountApplications','omit','key','createdAt','TrunkId','findById','getMessages','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','Contacts','updatedAt','DESC','attachments','join','server/files/attachments','basename','CheckAfterSend'];(function(_0xb15355,_0x11c4e5){var _0x36ff3c=function(_0x56ff2c){while(--_0x56ff2c){_0xb15355['push'](_0xb15355['shift']());}};_0x36ff3c(++_0x11c4e5);}(_0x7524,0xce));var _0x4752=function(_0x5ba362,_0x2465fe){_0x5ba362=_0x5ba362-0x0;var _0x5542cb=_0x7524[_0x5ba362];return _0x5542cb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4752('0x0'));var rimraf=require(_0x4752('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4752('0x2'));var rp=require(_0x4752('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4752('0x4'));var util=require('util');var path=require(_0x4752('0x5'));var sox=require(_0x4752('0x6'));var csv=require(_0x4752('0x7'));var ejs=require(_0x4752('0x8'));var fs=require('fs');var _=require(_0x4752('0x9'));var squel=require('squel');var crypto=require(_0x4752('0xa'));var jsforce=require(_0x4752('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4752('0xc'));var Papa=require(_0x4752('0xd'));var qs=require(_0x4752('0xe'));var logger=require(_0x4752('0xf'))('api');var utils=require(_0x4752('0x10'));var config=require(_0x4752('0x11'));var db=require(_0x4752('0x12'))['db'];config[_0x4752('0x13')]=_[_0x4752('0x14')](config['redis'],{'host':_0x4752('0x15'),'port':0x18eb});var socket=require(_0x4752('0x16'))(config[_0x4752('0x13')]);require(_0x4752('0x17'))[_0x4752('0x18')](socket);var jayson=require(_0x4752('0x19'));var client=jayson[_0x4752('0x1a')]['http']({'port':0x232c});var client9002=jayson[_0x4752('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x38e6bb,_0x32d837,_0x461f58,_0x17a8b8){return new BPromise(function(_0x2e53e4,_0x33131a){var _0x410f88=_0x17a8b8||client;return _0x410f88['request'](_0x38e6bb,_0x461f58)[_0x4752('0x1b')](function(_0x1dad7c){logger['info'](_0x4752('0x1c'),_0x32d837,'request\x20sent');logger[_0x4752('0x1d')](_0x4752('0x1e'),_0x32d837,'request\x20sent',JSON[_0x4752('0x1f')](_0x1dad7c));if(_0x1dad7c['error']){if(_0x1dad7c['error'][_0x4752('0x20')]===0x1f4){logger[_0x4752('0x21')](_0x4752('0x1c'),_0x32d837,_0x1dad7c[_0x4752('0x21')][_0x4752('0x22')]);return _0x33131a(_0x1dad7c[_0x4752('0x21')]['message']);}logger[_0x4752('0x21')](_0x4752('0x1c'),_0x32d837,_0x1dad7c[_0x4752('0x21')][_0x4752('0x22')]);return _0x2e53e4(_0x1dad7c[_0x4752('0x21')][_0x4752('0x22')]);}else{logger['info'](_0x4752('0x1c'),_0x32d837,_0x4752('0x23'));_0x2e53e4(_0x1dad7c['result'][_0x4752('0x22')]);}})[_0x4752('0x24')](function(_0x1e4e86){logger[_0x4752('0x21')](_0x4752('0x1c'),_0x32d837,_0x1e4e86);_0x33131a(_0x1e4e86);});});}function respondWithStatusCode(_0x26c332,_0x1135bf){_0x1135bf=_0x1135bf||0xcc;return function(_0x45c557){if(_0x45c557){return _0x26c332[_0x4752('0x25')](_0x1135bf);}return _0x26c332[_0x4752('0x26')](_0x1135bf)['end']();};}function respondWithResult(_0x113cd5,_0x560df8){_0x560df8=_0x560df8||0xc8;return function(_0x4b2635){if(_0x4b2635){return _0x113cd5['status'](_0x560df8)[_0x4752('0x27')](_0x4b2635);}};}function respondWithFilteredResult(_0x4618b0,_0x1bc71b){return function(_0x1cb8e7){if(_0x1cb8e7){var _0x2eb700=_0x1cb8e7['count'],_0x3bf3bf=_0x1bc71b['offset'],_0xd27309=_0x1bc71b[_0x4752('0x28')]+_0x1bc71b[_0x4752('0x29')],_0x1dbba0;if(_0xd27309>=_0x2eb700){_0xd27309=_0x2eb700;_0x1dbba0=0xc8;}else{_0x1dbba0=0xce;}_0x4618b0[_0x4752('0x26')](_0x1dbba0);return _0x4618b0[_0x4752('0x2a')](_0x4752('0x2b'),_0x3bf3bf+'-'+_0xd27309+'/'+_0x2eb700)[_0x4752('0x27')](_0x1cb8e7);}return null;};}function patchUpdates(_0x258795){return function(_0x3164d0){try{jsonpatch[_0x4752('0x2c')](_0x3164d0,_0x258795,!![]);}catch(_0x1f54ab){return BPromise[_0x4752('0x2d')](_0x1f54ab);}return _0x3164d0[_0x4752('0x2e')]();};}function saveUpdates(_0x2cc93f,_0x28e8d9){return function(_0x46d889){if(_0x46d889){return _0x46d889[_0x4752('0x2f')](_0x2cc93f)['then'](function(_0x50b325){return _0x50b325;});}return null;};}function removeEntity(_0x169be3,_0x3aaf4c){return function(_0x351ad1){if(_0x351ad1){return _0x351ad1[_0x4752('0x30')]()[_0x4752('0x1b')](function(){_0x169be3[_0x4752('0x26')](0xcc)[_0x4752('0x31')]();});}};}function handleEntityNotFound(_0x1bda28,_0x376edb){return function(_0x3f2f44){if(!_0x3f2f44){_0x1bda28['sendStatus'](0x194);}return _0x3f2f44;};}function handleError(_0x12351a,_0x570301){_0x570301=_0x570301||0x1f4;return function(_0x122ac4){logger[_0x4752('0x21')](_0x122ac4[_0x4752('0x32')]);if(_0x122ac4[_0x4752('0x33')]){delete _0x122ac4[_0x4752('0x33')];}_0x12351a['status'](_0x570301)[_0x4752('0x34')](_0x122ac4);};}exports['index']=function(_0x26d283,_0x21fa27){var _0xd23ea3={},_0x1779a1={},_0xa96174={'count':0x0,'rows':[]};var _0x659c70=db[_0x4752('0x35')][_0x4752('0x36')];_0x1779a1[_0x4752('0x37')]=_[_0x4752('0x38')](_0x659c70);var _0x49f116={'dateStart':_0x26d283[_0x4752('0x39')][_0x4752('0x3a')],'dateEnd':_0x26d283[_0x4752('0x39')][_0x4752('0x3b')]};delete _0x26d283[_0x4752('0x39')][_0x4752('0x3a')];delete _0x26d283[_0x4752('0x39')][_0x4752('0x3b')];_0x1779a1['query']=_[_0x4752('0x38')](_0x26d283['query']);_0x1779a1[_0x4752('0x3c')]=_[_0x4752('0x3d')](_0x1779a1[_0x4752('0x37')],_0x1779a1[_0x4752('0x39')]);_0xd23ea3['attributes']=_['intersection'](_0x1779a1['model'],qs['fields'](_0x26d283[_0x4752('0x39')][_0x4752('0x3e')]));_0xd23ea3['attributes']=_0xd23ea3[_0x4752('0x3f')][_0x4752('0x40')]?_0xd23ea3[_0x4752('0x3f')]:_0x1779a1['model'];if(!_0x26d283[_0x4752('0x39')][_0x4752('0x41')](_0x4752('0x42'))){_0xd23ea3[_0x4752('0x29')]=qs[_0x4752('0x29')](_0x26d283['query']['limit']);_0xd23ea3[_0x4752('0x28')]=qs[_0x4752('0x28')](_0x26d283[_0x4752('0x39')][_0x4752('0x28')]);}_0xd23ea3[_0x4752('0x43')]=qs[_0x4752('0x44')](_0x26d283[_0x4752('0x39')][_0x4752('0x44')]);_0xd23ea3[_0x4752('0x45')]=qs[_0x4752('0x3c')](_[_0x4752('0x46')](_0x26d283[_0x4752('0x39')],_0x1779a1['filters']));if(_0x49f116[_0x4752('0x3a')]){if(_0x49f116['dateEnd']){_0x49f116[_0x4752('0x3b')]=moment(_0x49f116[_0x4752('0x3b')])['add'](0x1,_0x4752('0x47'));}else{_0x49f116[_0x4752('0x3b')]=moment(_0x49f116[_0x4752('0x3a')])[_0x4752('0x48')](0x1,_0x4752('0x47'));}_[_0x4752('0x49')](_0xd23ea3['where'],{'createdAt':{'$gte':_0x49f116[_0x4752('0x3a')],'$lte':_0x49f116[_0x4752('0x3b')]}});}if(_0x26d283[_0x4752('0x39')][_0x4752('0x4a')]){_0xd23ea3[_0x4752('0x45')]=_[_0x4752('0x49')](_0xd23ea3['where'],{'$or':_[_0x4752('0x4b')](_0xd23ea3[_0x4752('0x3f')],function(_0xa03eff){var _0x2b0dfb={};_0x2b0dfb[_0xa03eff]={'$like':'%'+_0x26d283[_0x4752('0x39')][_0x4752('0x4a')]+'%'};return _0x2b0dfb;})});}_0xd23ea3=_['merge']({},_0xd23ea3,_0x26d283[_0x4752('0x4c')]);var _0x5daafc={'where':_0xd23ea3['where']};return db[_0x4752('0x35')][_0x4752('0x4d')](_0x5daafc)[_0x4752('0x1b')](function(_0x4bcd96){_0xa96174[_0x4752('0x4d')]=_0x4bcd96;if(_0x26d283[_0x4752('0x39')]['includeAll']){_0xd23ea3[_0x4752('0x4e')]=[{'all':!![]}];}return db[_0x4752('0x35')][_0x4752('0x4f')](_0xd23ea3);})['then'](function(_0x2ba24b){_0xa96174[_0x4752('0x50')]=_0x2ba24b;return _0xa96174;})[_0x4752('0x1b')](respondWithFilteredResult(_0x21fa27,_0xd23ea3))[_0x4752('0x24')](handleError(_0x21fa27,null));};exports[_0x4752('0x51')]=function(_0x3f00f0,_0x54389f){var _0x3b7db0={'raw':![],'where':{'id':_0x3f00f0[_0x4752('0x52')]['id']}},_0x5ac67f={};_0x5ac67f[_0x4752('0x37')]=_['keys'](db['FaxAccount']['rawAttributes']);_0x5ac67f['query']=_['keys'](_0x3f00f0[_0x4752('0x39')]);_0x5ac67f[_0x4752('0x3c')]=_[_0x4752('0x3d')](_0x5ac67f[_0x4752('0x37')],_0x5ac67f['query']);_0x3b7db0[_0x4752('0x3f')]=_[_0x4752('0x3d')](_0x5ac67f[_0x4752('0x37')],qs[_0x4752('0x3e')](_0x3f00f0[_0x4752('0x39')]['fields']));_0x3b7db0[_0x4752('0x3f')]=_0x3b7db0[_0x4752('0x3f')][_0x4752('0x40')]?_0x3b7db0[_0x4752('0x3f')]:_0x5ac67f[_0x4752('0x37')];if(_0x3f00f0[_0x4752('0x39')]['includeAll']){_0x3b7db0[_0x4752('0x4e')]=[{'all':!![]}];}_0x3b7db0=_[_0x4752('0x49')]({},_0x3b7db0,_0x3f00f0['options']);return db[_0x4752('0x35')][_0x4752('0x53')](_0x3b7db0)[_0x4752('0x1b')](handleEntityNotFound(_0x54389f,null))[_0x4752('0x1b')](respondWithResult(_0x54389f,null))[_0x4752('0x24')](handleError(_0x54389f,null));};exports[_0x4752('0x54')]=function(_0x393bba,_0x26e522){return db[_0x4752('0x35')][_0x4752('0x54')](_0x393bba['body'],{})['then'](respondWithResult(_0x26e522,0xc9))[_0x4752('0x24')](handleError(_0x26e522,null));};exports[_0x4752('0x2f')]=function(_0x2c9006,_0x279ab1){if(_0x2c9006[_0x4752('0x55')]['id']){delete _0x2c9006[_0x4752('0x55')]['id'];}return db['FaxAccount'][_0x4752('0x53')]({'where':{'id':_0x2c9006[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x279ab1,null))[_0x4752('0x1b')](saveUpdates(_0x2c9006[_0x4752('0x55')],null))[_0x4752('0x1b')](respondWithResult(_0x279ab1,null))[_0x4752('0x24')](handleError(_0x279ab1,null));};exports[_0x4752('0x30')]=function(_0x179868,_0x2c4e74){return db['FaxAccount'][_0x4752('0x53')]({'where':{'id':_0x179868[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x2c4e74,null))[_0x4752('0x1b')](removeEntity(_0x2c4e74,null))[_0x4752('0x24')](handleError(_0x2c4e74,null));};exports[_0x4752('0x56')]=function(_0x1b8f65,_0x157777){return db['FaxAccount'][_0x4752('0x56')]()[_0x4752('0x1b')](respondWithResult(_0x157777,null))['catch'](handleError(_0x157777,null));};exports[_0x4752('0x57')]=function(_0x7bda95,_0x50526e,_0x3f410e){if(_0x7bda95[_0x4752('0x55')]['id']){delete _0x7bda95[_0x4752('0x55')]['id'];}return db['FaxAccount'][_0x4752('0x53')]({'where':{'id':_0x7bda95[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x50526e,null))[_0x4752('0x1b')](function(_0x4b5c9c){if(_0x4b5c9c){_0x7bda95['body'][_0x4752('0x58')]=_0x4b5c9c['id'];return db[_0x4752('0x59')][_0x4752('0x54')](_0x7bda95[_0x4752('0x55')]);}})[_0x4752('0x1b')](respondWithResult(_0x50526e,null))[_0x4752('0x24')](handleError(_0x50526e,null));};exports[_0x4752('0x5a')]=function(_0x1470f2,_0x13fafa,_0x2796d1){var _0x560a99={'raw':![],'where':{}};var _0x32d797={};var _0x2fa835={'count':0x0,'rows':[]};return db[_0x4752('0x35')]['findOne']({'where':{'id':_0x1470f2[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x13fafa,null))[_0x4752('0x1b')](function(_0x5c4b31){if(_0x5c4b31){_0x32d797['model']=_[_0x4752('0x38')](db['Disposition'][_0x4752('0x36')]);_0x32d797[_0x4752('0x39')]=_['keys'](_0x1470f2[_0x4752('0x39')]);_0x32d797[_0x4752('0x3c')]=_[_0x4752('0x3d')](_0x32d797[_0x4752('0x37')],_0x32d797[_0x4752('0x39')]);_0x560a99[_0x4752('0x3f')]=_[_0x4752('0x3d')](_0x32d797[_0x4752('0x37')],qs[_0x4752('0x3e')](_0x1470f2[_0x4752('0x39')]['fields']));_0x560a99[_0x4752('0x3f')]=_0x560a99[_0x4752('0x3f')][_0x4752('0x40')]?_0x560a99[_0x4752('0x3f')]:_0x32d797['model'];if(!_0x1470f2[_0x4752('0x39')]['hasOwnProperty'](_0x4752('0x42'))){_0x560a99[_0x4752('0x29')]=qs['limit'](_0x1470f2[_0x4752('0x39')][_0x4752('0x29')]);_0x560a99[_0x4752('0x28')]=qs['offset'](_0x1470f2['query']['offset']);}_0x560a99[_0x4752('0x43')]=qs[_0x4752('0x44')](_0x1470f2['query']['sort']);_0x560a99[_0x4752('0x45')]=qs[_0x4752('0x3c')](_[_0x4752('0x46')](_0x1470f2[_0x4752('0x39')],_0x32d797[_0x4752('0x3c')]));_0x560a99[_0x4752('0x45')][_0x4752('0x58')]=_0x5c4b31['id'];if(_0x1470f2[_0x4752('0x39')][_0x4752('0x4a')]){_0x560a99[_0x4752('0x45')]=_[_0x4752('0x49')](_0x560a99[_0x4752('0x45')],{'$or':_[_0x4752('0x4b')](_0x560a99[_0x4752('0x3f')],function(_0x3f40a3){var _0x48d465={};_0x48d465[_0x3f40a3]={'$like':'%'+_0x1470f2[_0x4752('0x39')][_0x4752('0x4a')]+'%'};return _0x48d465;})});}_0x560a99=_[_0x4752('0x49')]({},_0x560a99,_0x1470f2[_0x4752('0x4c')]);return db[_0x4752('0x59')][_0x4752('0x4d')]({'where':_0x560a99['where']})['then'](function(_0x1a36c4){_0x2fa835[_0x4752('0x4d')]=_0x1a36c4;if(_0x1470f2[_0x4752('0x39')][_0x4752('0x5b')]){_0x560a99[_0x4752('0x4e')]=[{'all':!![]}];}return db['Disposition'][_0x4752('0x4f')](_0x560a99);})[_0x4752('0x1b')](function(_0x3dad4a){_0x2fa835[_0x4752('0x50')]=_0x3dad4a;return _0x2fa835;});}})[_0x4752('0x1b')](respondWithFilteredResult(_0x13fafa,_0x560a99))[_0x4752('0x24')](handleError(_0x13fafa,null));};exports[_0x4752('0x5c')]=function(_0x215923,_0x21e501,_0x30a8c5){var _0x3e99b3;return db['FaxAccount']['find']({'where':{'id':_0x215923[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x21e501,null))[_0x4752('0x1b')](function(_0x3a0edb){if(_0x3a0edb){return _0x3a0edb[_0x4752('0x5c')](_0x215923[_0x4752('0x39')]['ids']);}})[_0x4752('0x1b')](respondWithStatusCode(_0x21e501,null))[_0x4752('0x24')](handleError(_0x21e501,null));};exports['addAnswer']=function(_0x45291f,_0x20869f,_0x5180bd){if(_0x45291f[_0x4752('0x55')]['id']){delete _0x45291f[_0x4752('0x55')]['id'];}return db['FaxAccount']['find']({'where':{'id':_0x45291f[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x20869f,null))['then'](function(_0x421770){if(_0x421770){_0x45291f[_0x4752('0x55')]['FaxAccountId']=_0x421770['id'];return db['CannedAnswer'][_0x4752('0x54')](_0x45291f['body']);}})[_0x4752('0x1b')](respondWithResult(_0x20869f,null))[_0x4752('0x24')](handleError(_0x20869f,null));};exports[_0x4752('0x5d')]=function(_0x223de7,_0x4f4978,_0x94a606){var _0x1c18cc={'raw':![],'where':{}};var _0x5b38c8={};var _0x4a4c3f={'count':0x0,'rows':[]};return db['FaxAccount'][_0x4752('0x5e')]({'where':{'id':_0x223de7['params']['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x4f4978,null))[_0x4752('0x1b')](function(_0x13be78){if(_0x13be78){_0x5b38c8[_0x4752('0x37')]=_[_0x4752('0x38')](db[_0x4752('0x5f')][_0x4752('0x36')]);_0x5b38c8[_0x4752('0x39')]=_[_0x4752('0x38')](_0x223de7[_0x4752('0x39')]);_0x5b38c8[_0x4752('0x3c')]=_['intersection'](_0x5b38c8[_0x4752('0x37')],_0x5b38c8[_0x4752('0x39')]);_0x1c18cc[_0x4752('0x3f')]=_['intersection'](_0x5b38c8[_0x4752('0x37')],qs[_0x4752('0x3e')](_0x223de7[_0x4752('0x39')]['fields']));_0x1c18cc[_0x4752('0x3f')]=_0x1c18cc['attributes'][_0x4752('0x40')]?_0x1c18cc[_0x4752('0x3f')]:_0x5b38c8[_0x4752('0x37')];if(!_0x223de7[_0x4752('0x39')]['hasOwnProperty']('nolimit')){_0x1c18cc[_0x4752('0x29')]=qs[_0x4752('0x29')](_0x223de7[_0x4752('0x39')][_0x4752('0x29')]);_0x1c18cc['offset']=qs[_0x4752('0x28')](_0x223de7[_0x4752('0x39')][_0x4752('0x28')]);}_0x1c18cc[_0x4752('0x43')]=qs[_0x4752('0x44')](_0x223de7[_0x4752('0x39')]['sort']);_0x1c18cc[_0x4752('0x45')]=qs[_0x4752('0x3c')](_[_0x4752('0x46')](_0x223de7['query'],_0x5b38c8[_0x4752('0x3c')]));_0x1c18cc['where'][_0x4752('0x58')]=_0x13be78['id'];if(_0x223de7[_0x4752('0x39')][_0x4752('0x4a')]){_0x1c18cc[_0x4752('0x45')]=_['merge'](_0x1c18cc[_0x4752('0x45')],{'$or':_['map'](_0x1c18cc['attributes'],function(_0x29b2f3){var _0x26b291={};_0x26b291[_0x29b2f3]={'$like':'%'+_0x223de7[_0x4752('0x39')]['filter']+'%'};return _0x26b291;})});}_0x1c18cc=_[_0x4752('0x49')]({},_0x1c18cc,_0x223de7[_0x4752('0x4c')]);return db['CannedAnswer']['count']({'where':_0x1c18cc[_0x4752('0x45')]})[_0x4752('0x1b')](function(_0xdea746){_0x4a4c3f[_0x4752('0x4d')]=_0xdea746;if(_0x223de7[_0x4752('0x39')]['includeAll']){_0x1c18cc[_0x4752('0x4e')]=[{'all':!![]}];}return db['CannedAnswer'][_0x4752('0x4f')](_0x1c18cc);})[_0x4752('0x1b')](function(_0x16b995){_0x4a4c3f[_0x4752('0x50')]=_0x16b995;return _0x4a4c3f;});}})[_0x4752('0x1b')](respondWithFilteredResult(_0x4f4978,_0x1c18cc))[_0x4752('0x24')](handleError(_0x4f4978,null));};exports[_0x4752('0x60')]=function(_0x68600b,_0xa0422f,_0x229132){var _0x25cf3d;return db[_0x4752('0x35')][_0x4752('0x53')]({'where':{'id':_0x68600b[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0xa0422f,null))[_0x4752('0x1b')](function(_0x24ad81){if(_0x24ad81){return _0x24ad81['removeAnswers'](_0x68600b[_0x4752('0x39')][_0x4752('0x61')]);}})[_0x4752('0x1b')](respondWithStatusCode(_0xa0422f,null))[_0x4752('0x24')](handleError(_0xa0422f,null));};exports[_0x4752('0x62')]=function(_0x562f95,_0x452666,_0x3578f4){return db[_0x4752('0x63')]['find']({'where':{'id':_0x562f95[_0x4752('0x52')]['id']}})['then'](handleEntityNotFound(_0x452666,null))['then'](function(_0x2cfdd5){if(_0x2cfdd5){return _0x2cfdd5[_0x4752('0x62')](_0x562f95['body'][_0x4752('0x61')],_['omit'](_0x562f95[_0x4752('0x55')],['ids','id'])||{});}})[_0x4752('0x1b')](respondWithResult(_0x452666,null))[_0x4752('0x24')](handleError(_0x452666,null));};exports[_0x4752('0x64')]=function(_0x17f1ad,_0x5a632d,_0x5f147d){var _0x4ab6b9={'raw':![],'where':{}};var _0x1b0da8={};var _0x658ef2={'count':0x0,'rows':[]};return db[_0x4752('0x35')][_0x4752('0x5e')]({'where':{'id':_0x17f1ad['params']['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x5a632d,null))[_0x4752('0x1b')](function(_0xcccb53){if(_0xcccb53){_0x1b0da8[_0x4752('0x37')]=_['keys'](db[_0x4752('0x63')][_0x4752('0x36')]);_0x1b0da8[_0x4752('0x39')]=_['keys'](_0x17f1ad[_0x4752('0x39')]);_0x1b0da8['filters']=_['intersection'](_0x1b0da8[_0x4752('0x37')],_0x1b0da8[_0x4752('0x39')]);_0x4ab6b9[_0x4752('0x3f')]=_[_0x4752('0x3d')](_0x1b0da8[_0x4752('0x37')],qs[_0x4752('0x3e')](_0x17f1ad[_0x4752('0x39')]['fields']));_0x4ab6b9[_0x4752('0x3f')]=_0x4ab6b9[_0x4752('0x3f')][_0x4752('0x40')]?_0x4ab6b9[_0x4752('0x3f')]:_0x1b0da8[_0x4752('0x37')];if(!_0x17f1ad[_0x4752('0x39')][_0x4752('0x41')](_0x4752('0x42'))){_0x4ab6b9[_0x4752('0x29')]=qs[_0x4752('0x29')](_0x17f1ad[_0x4752('0x39')]['limit']);_0x4ab6b9[_0x4752('0x28')]=qs[_0x4752('0x28')](_0x17f1ad[_0x4752('0x39')][_0x4752('0x28')]);}_0x4ab6b9['order']=qs[_0x4752('0x44')](_0x17f1ad[_0x4752('0x39')]['sort']);_0x4ab6b9[_0x4752('0x45')]=qs['filters'](_[_0x4752('0x46')](_0x17f1ad[_0x4752('0x39')],_0x1b0da8[_0x4752('0x3c')]));_0x4ab6b9['where'][_0x4752('0x58')]=_0xcccb53['id'];if(_0x17f1ad[_0x4752('0x39')][_0x4752('0x4a')]){_0x4ab6b9['where']=_[_0x4752('0x49')](_0x4ab6b9['where'],{'$or':_['map'](_0x4ab6b9[_0x4752('0x3f')],function(_0x25cfd0){var _0x14d1ce={};_0x14d1ce[_0x25cfd0]={'$like':'%'+_0x17f1ad[_0x4752('0x39')][_0x4752('0x4a')]+'%'};return _0x14d1ce;})});}_0x4ab6b9=_[_0x4752('0x49')]({},_0x4ab6b9,_0x17f1ad[_0x4752('0x4c')]);return db[_0x4752('0x63')]['count']({'where':_0x4ab6b9[_0x4752('0x45')]})[_0x4752('0x1b')](function(_0x2c1a42){_0x658ef2[_0x4752('0x4d')]=_0x2c1a42;if(_0x17f1ad[_0x4752('0x39')][_0x4752('0x5b')]){_0x4ab6b9['include']=[{'model':db[_0x4752('0x65')],'as':_0x4752('0x66'),'required':![]},{'model':db['User'],'as':_0x4752('0x67'),'attributes':['name',_0x4752('0x68'),'internal'],'required':![]},{'model':db[_0x4752('0x69')],'as':_0x4752('0x6a'),'attributes':['id','name',_0x4752('0x6b')],'where':_0x17f1ad[_0x4752('0x39')][_0x4752('0x6c')]?{'id':_0x17f1ad['query'][_0x4752('0x6c')]}:undefined,'required':_0x17f1ad[_0x4752('0x39')][_0x4752('0x6c')]?!![]:![]}];}return db[_0x4752('0x63')][_0x4752('0x4f')](_0x4ab6b9);})[_0x4752('0x1b')](function(_0x219c8b){_0x658ef2[_0x4752('0x50')]=_0x219c8b;return _0x658ef2;});}})[_0x4752('0x1b')](respondWithFilteredResult(_0x5a632d,_0x4ab6b9))[_0x4752('0x24')](handleError(_0x5a632d,null));};exports[_0x4752('0x6d')]=function(_0x3d5412,_0x5f5d54,_0x524d73){return db['FaxAccount'][_0x4752('0x5e')]({'where':{'id':_0x3d5412[_0x4752('0x52')]['id']}})['then'](handleEntityNotFound(_0x5f5d54,null))[_0x4752('0x1b')](function(_0x3976aa){if(_0x3976aa){return db[_0x4752('0x6e')][_0x4752('0x6f')](function(_0x467ecf){return db[_0x4752('0x70')]['destroy']({'where':{'FaxAccountId':_0x3d5412[_0x4752('0x52')]['id']},'transaction':_0x467ecf})[_0x4752('0x1b')](function(_0x465594){var _0xb7d42f=_[_0x4752('0x4b')](_0x3d5412[_0x4752('0x55')],function(_0x5e4a68){_0x5e4a68['FaxAccountId']=_0x3d5412['params']['id'];return _0x5e4a68;});return db['FaxApplication'][_0x4752('0x71')](_0xb7d42f,{'transaction':_0x467ecf});});})['then'](function(){return db[_0x4752('0x70')][_0x4752('0x72')]({'where':{'FaxAccountId':_0x3d5412[_0x4752('0x52')]['id']},'order':_0x4752('0x73')});});}})[_0x4752('0x1b')](respondWithResult(_0x5f5d54,null))[_0x4752('0x24')](handleError(_0x5f5d54,null));};exports['getApplications']=function(_0x5840b3,_0x5c8ff2,_0x47f957){var _0x169638={};var _0x5389bd={};var _0x1906dd;var _0x170cc1;return db['FaxAccount'][_0x4752('0x5e')]({'where':{'id':_0x5840b3['params']['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x5c8ff2,null))['then'](function(_0x59358c){if(_0x59358c){_0x1906dd=_0x59358c;_0x5389bd[_0x4752('0x37')]=_['keys'](db['FaxApplication'][_0x4752('0x36')]);_0x5389bd[_0x4752('0x39')]=_[_0x4752('0x38')](_0x5840b3['query']);_0x5389bd[_0x4752('0x3c')]=_[_0x4752('0x3d')](_0x5389bd['model'],_0x5389bd[_0x4752('0x39')]);_0x169638[_0x4752('0x3f')]=_[_0x4752('0x3d')](_0x5389bd[_0x4752('0x37')],qs[_0x4752('0x3e')](_0x5840b3[_0x4752('0x39')][_0x4752('0x3e')]));_0x169638['attributes']=_0x169638['attributes'][_0x4752('0x40')]?_0x169638[_0x4752('0x3f')]:_0x5389bd[_0x4752('0x37')];_0x169638['order']=qs['sort'](_0x5840b3[_0x4752('0x39')]['sort']);_0x169638[_0x4752('0x45')]=qs[_0x4752('0x3c')](_['pick'](_0x5840b3['query'],_0x5389bd[_0x4752('0x3c')]));if(_0x5840b3['query'][_0x4752('0x4a')]){_0x169638[_0x4752('0x45')]=_[_0x4752('0x49')](_0x169638[_0x4752('0x45')],{'$or':_['map'](_0x169638[_0x4752('0x3f')],function(_0x418002){var _0x2b6592={};_0x2b6592[_0x418002]={'$like':'%'+_0x5840b3['query'][_0x4752('0x4a')]+'%'};return _0x2b6592;})});}_0x169638=_['merge']({},_0x169638,_0x5840b3[_0x4752('0x4c')]);return _0x1906dd['getApplications'](_0x169638);}})[_0x4752('0x1b')](function(_0x3553b8){if(_0x3553b8){_0x170cc1=_0x3553b8[_0x4752('0x40')];if(!_0x5840b3[_0x4752('0x39')][_0x4752('0x41')]('nolimit')){_0x169638[_0x4752('0x29')]=qs[_0x4752('0x29')](_0x5840b3[_0x4752('0x39')][_0x4752('0x29')]);_0x169638[_0x4752('0x28')]=qs[_0x4752('0x28')](_0x5840b3[_0x4752('0x39')][_0x4752('0x28')]);}return _0x1906dd[_0x4752('0x74')](_0x169638);}})[_0x4752('0x1b')](function(_0x200936){if(_0x200936){return _0x200936?{'count':_0x170cc1,'rows':_0x200936}:null;}})[_0x4752('0x1b')](respondWithResult(_0x5c8ff2,null))['catch'](handleError(_0x5c8ff2,null));};function Extension(_0x246aaf,_0x282764,_0x3e8088,_0x21525d){this['context']=_0x4752('0x75');this[_0x4752('0x76')]=_0x246aaf[_0x4752('0x77')];this[_0x4752('0x78')]=_0x21525d;this[_0x4752('0x79')]=_0x4752('0x7a');this[_0x4752('0x7b')]='Fax\x20Extension';this[_0x4752('0x58')]=_0x246aaf['id'];this[_0x4752('0x73')]=_0x282764;this[_0x4752('0x7c')]=_0x3e8088;}function createExtensionsReciveFax(_0x2d1b46){var _0x13e95e=0x1;var _0x465bdd=[];_0x465bdd[_0x4752('0x7d')](new Extension(_0x2d1b46,_0x13e95e,'',_0x4752('0x7e')));_0x13e95e+=0x1;_0x465bdd['push'](new Extension(_0x2d1b46,_0x13e95e,_0x4752('0x7f'),_0x4752('0x80')));_0x13e95e+=0x1;for(var _0x1edf97 in _0x2d1b46){if(_0x2d1b46[_0x4752('0x41')](_0x1edf97)&&(_0x1edf97===_0x4752('0x81')||_0x1edf97===_0x4752('0x77')||_0x1edf97===_0x4752('0x82')||_0x1edf97==='faxdetect'||_0x1edf97===_0x4752('0x83')||_0x1edf97===_0x4752('0x84')||_0x1edf97===_0x4752('0x85')||_0x1edf97==='modem'||_0x1edf97===_0x4752('0x86'))){_0x465bdd[_0x4752('0x7d')](new Extension(_0x2d1b46,_0x13e95e,_0x4752('0x87')+_0x1edf97+')='+_0x2d1b46[_0x1edf97],_0x4752('0x80')));_0x13e95e+=0x1;}}_0x465bdd['push'](new Extension(_0x2d1b46,_0x13e95e,'6','Wait'));_0x13e95e+=0x1;_0x465bdd[_0x4752('0x7d')](new Extension(_0x2d1b46,_0x13e95e,'/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d',_0x4752('0x88')));_0x13e95e=0x0;return _0x465bdd;}exports[_0x4752('0x89')]=function(_0x411956,_0xfacb43,_0x19ca49){var _0x4b8b8c;return db['sequelize']['transaction'](function(_0x529075){return db[_0x4752('0x35')][_0x4752('0x54')](_0x411956[_0x4752('0x55')],{'transaction':_0x529075})[_0x4752('0x1b')](function(_0x52ad21){_0x4b8b8c=_0x52ad21[_0x4752('0x8a')]({'plain':!![]});return db[_0x4752('0x8b')][_0x4752('0x71')](createExtensionsReciveFax(_0x4b8b8c),{'transaction':_0x529075});});})['then'](function(){return _0x4b8b8c;})[_0x4752('0x1b')](respondWithResult(_0xfacb43,null))['catch'](handleError(_0xfacb43,null));};exports[_0x4752('0x8c')]=function(_0x51654c,_0x3f9e5e,_0x1926a6){var _0xae7d8c;return db[_0x4752('0x6e')][_0x4752('0x6f')](function(_0x4053c0){return db[_0x4752('0x35')][_0x4752('0x2f')](_0x51654c[_0x4752('0x55')],{'where':{'id':_0x51654c[_0x4752('0x55')]['id']},'transaction':_0x4053c0})[_0x4752('0x1b')](function(_0x39682a){return db['VoiceExtension'][_0x4752('0x30')]({'where':{'FaxAccountId':_0x51654c['body']['id']},'transaction':_0x4053c0})[_0x4752('0x1b')](function(_0x4249ed){return db[_0x4752('0x8b')][_0x4752('0x71')](createExtensionsReciveFax(_[_0x4752('0x8d')](_0x51654c[_0x4752('0x55')],['tech',_0x4752('0x8e'),_0x4752('0x8f'),'updatedAt',_0x4752('0x90'),'ListId'])),{'transaction':_0x4053c0});});});})[_0x4752('0x1b')](function(){return db[_0x4752('0x35')][_0x4752('0x91')](_0x51654c[_0x4752('0x55')]['id']);})[_0x4752('0x1b')](respondWithResult(_0x3f9e5e,null))[_0x4752('0x24')](handleError(_0x3f9e5e,null));};exports[_0x4752('0x92')]=function(_0x4955d7,_0x11b63a,_0x41550e){var _0x14fee1={'raw':!![],'where':{}};var _0x16d2ac={};var _0x30d973={'count':0x0,'rows':[]};return db[_0x4752('0x35')][_0x4752('0x5e')]({'where':{'id':_0x4955d7[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0x11b63a,null))[_0x4752('0x1b')](function(_0x5af7ea){if(_0x5af7ea){_0x16d2ac[_0x4752('0x37')]=_[_0x4752('0x38')](db[_0x4752('0x93')][_0x4752('0x36')]);_0x16d2ac[_0x4752('0x39')]=_['keys'](_0x4955d7[_0x4752('0x39')]);_0x16d2ac[_0x4752('0x3c')]=_['intersection'](_0x16d2ac['model'],_0x16d2ac[_0x4752('0x39')]);_0x14fee1[_0x4752('0x3f')]=_[_0x4752('0x3d')](_0x16d2ac['model'],qs['fields'](_0x4955d7[_0x4752('0x39')][_0x4752('0x3e')]));_0x14fee1[_0x4752('0x3f')]=_0x14fee1[_0x4752('0x3f')]['length']?_0x14fee1[_0x4752('0x3f')]:_0x16d2ac['model'];if(!_0x4955d7[_0x4752('0x39')][_0x4752('0x41')](_0x4752('0x42'))){_0x14fee1[_0x4752('0x29')]=qs[_0x4752('0x29')](_0x4955d7[_0x4752('0x39')]['limit']);_0x14fee1['offset']=qs['offset'](_0x4955d7['query'][_0x4752('0x28')]);}_0x14fee1['order']=qs[_0x4752('0x44')](_0x4955d7[_0x4752('0x39')][_0x4752('0x44')]);_0x14fee1[_0x4752('0x45')]=qs[_0x4752('0x3c')](_['pick'](_0x4955d7[_0x4752('0x39')],_0x16d2ac['filters']));_0x14fee1['where'][_0x4752('0x58')]=_0x5af7ea['id'];if(_0x4955d7[_0x4752('0x39')][_0x4752('0x4a')]){_0x14fee1[_0x4752('0x45')]=_[_0x4752('0x49')](_0x14fee1[_0x4752('0x45')],{'$or':_[_0x4752('0x4b')](_0x14fee1[_0x4752('0x3f')],function(_0x5dd658){var _0x1f64e6={};_0x1f64e6[_0x5dd658]={'$like':'%'+_0x4955d7['query'][_0x4752('0x4a')]+'%'};return _0x1f64e6;})});}if(_0x4955d7[_0x4752('0x39')][_0x4752('0x94')]){var _0x46636d=_0x4955d7[_0x4752('0x39')][_0x4752('0x94')][_0x4752('0x95')](',');var _0x39cdaf={};_0x39cdaf[_0x46636d[0x0]]={'$gte':moment(_0x46636d[0x1])[_0x4752('0x96')](_0x4752('0x97'))};_0x14fee1[_0x4752('0x45')]=_[_0x4752('0x49')](_0x14fee1[_0x4752('0x45')],_0x39cdaf);}_0x14fee1=_[_0x4752('0x49')]({},_0x14fee1,_0x4955d7['options']);return db['FaxMessage'][_0x4752('0x4d')]({'where':_0x14fee1[_0x4752('0x45')]})['then'](function(_0x43f0bd){_0x30d973[_0x4752('0x4d')]=_0x43f0bd;if(_0x4955d7[_0x4752('0x39')][_0x4752('0x5b')]){_0x14fee1[_0x4752('0x4e')]=[{'all':!![]}];}return db[_0x4752('0x93')][_0x4752('0x4f')](_0x14fee1);})[_0x4752('0x1b')](function(_0x5a2454){_0x30d973['rows']=_0x5a2454;return _0x30d973;});}})['then'](respondWithFilteredResult(_0x11b63a,_0x14fee1))[_0x4752('0x24')](handleError(_0x11b63a,null));};exports[_0x4752('0x34')]=function(_0x451016,_0x7017,_0xd2a770){var _0x2d3d1f,_0x47f07e={},_0x536be6;if(_0x451016[_0x4752('0x55')]['to']){_0x536be6=_0x451016[_0x4752('0x55')]['to'][0x0];}return db['FaxAccount']['find']({'where':{'id':_0x451016[_0x4752('0x52')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x4752('0x65')],'as':_0x4752('0x98'),'where':{'fax':_0x536be6},'limit':0x1,'order':[[_0x4752('0x99'),_0x4752('0x9a')]]}]}]})[_0x4752('0x1b')](handleEntityNotFound(_0x7017,null))[_0x4752('0x1b')](function(_0x127ba8){_0x2d3d1f=_0x127ba8;if(_0x451016['body'][_0x4752('0x9b')]&&_0x451016['body'][_0x4752('0x9b')][_0x4752('0x40')]){for(var _0x275d01=0x0;_0x275d01<_0x451016['body'][_0x4752('0x9b')]['length'];_0x275d01+=0x1){_0x451016[_0x4752('0x55')][_0x4752('0x9b')][_0x275d01]={'filename':_0x451016[_0x4752('0x55')][_0x4752('0x9b')][_0x275d01][_0x4752('0x33')],'id':_0x451016[_0x4752('0x55')][_0x4752('0x9b')][_0x275d01]['id'],'path':path[_0x4752('0x9c')](config['root'],_0x4752('0x9d'),_0x451016[_0x4752('0x55')][_0x4752('0x9b')][_0x275d01][_0x4752('0x9e')])};}}return respondWithRpcPromise(_0x4752('0x9f'),_0x4752('0x9f'),{'FaxAccountId':_['isNil'](_0x451016[_0x4752('0x52')]['id'])?undefined:_0x451016[_0x4752('0x52')]['id'],'path':_[_0x4752('0xa0')](_0x451016[_0x4752('0x55')][_0x4752('0x9b')][0x0][_0x4752('0x5')])?undefined:_0x451016[_0x4752('0x55')][_0x4752('0x9b')][0x0][_0x4752('0x5')],'fax':_[_0x4752('0xa0')](_0x451016[_0x4752('0x55')]['to'][0x0])?undefined:_0x451016[_0x4752('0x55')]['to'][0x0]},client9002);})[_0x4752('0x1b')](function(){if(_0x2d3d1f){if(_[_0x4752('0xa0')](_0x451016['body'][_0x4752('0xa1')])){_0x451016['body']['from']=util['format'](_0x4752('0xa2'),_0x2d3d1f[_0x4752('0x33')],_0x2d3d1f['fax']);}if(_0x2d3d1f[_0x4752('0xa3')]){if(_0x2d3d1f[_0x4752('0xa3')][_0x4752('0x98')][_0x4752('0x40')]){return _0x2d3d1f[_0x4752('0xa3')][_0x4752('0x98')][0x0];}else{return db[_0x4752('0x65')][_0x4752('0x54')](_[_0x4752('0x14')](_0x451016[_0x4752('0x55')],{'firstName':_0x451016[_0x4752('0x55')]['to'][0x0],'phone':_0x451016[_0x4752('0x55')]['to'][0x0],'fax':_0x451016[_0x4752('0x55')]['to'][0x0],'ListId':_0x2d3d1f[_0x4752('0xa4')]}));}}else{throw new Error('List\x20not\x20found');}}else{throw new Error(_0x4752('0xa5'));}})['then'](function(_0x37ec71){if(_0x37ec71){return db[_0x4752('0x63')][_0x4752('0x53')]({'where':{'ContactId':_0x37ec71['id'],'closed':![],'FaxAccountId':_0x2d3d1f['id']}})[_0x4752('0x1b')](function(_0x532d7c){if(_0x532d7c){return[_0x532d7c,![]];}return db['FaxInteraction']['create']({'UserId':_0x451016['user']['id'],'ContactId':_0x37ec71['id'],'FaxAccountId':_0x2d3d1f['id'],'fax':_0x451016[_0x4752('0x55')]['to'][0x0],'firstMsgDirection':_0x4752('0xa6'),'Messages':[_[_0x4752('0x49')](_0x451016[_0x4752('0x55')],{'read':![],'body':_0x451016[_0x4752('0x55')]['attachments'][0x0][_0x4752('0xa7')],'FaxAccountId':_0x2d3d1f['id'],'UserId':_0x451016[_0x4752('0xa8')]['id'],'ContactId':_0x37ec71['id'],'AttachmentId':_0x451016[_0x4752('0x55')][_0x4752('0x9b')][0x0]['id']})]},{'include':[{'model':db['FaxMessage'],'as':_0x4752('0xa9')}]})[_0x4752('0x1b')](function(_0x5cdc0b){return[_0x5cdc0b,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x4752('0xaa')](function(_0x270297,_0x56dde7){if(_0x56dde7){return _0x270297;}return db['FaxMessage'][_0x4752('0x54')]({'direction':_0x4752('0xa6'),'read':![],'body':_0x451016['body'][_0x4752('0x9b')][0x0][_0x4752('0xa7')],'FaxAccountId':_0x2d3d1f['id'],'FaxInteractionId':_0x270297['id'],'UserId':_0x451016[_0x4752('0xa8')]['id'],'ContactId':_0x270297[_0x4752('0xab')],'AttachmentId':_0x451016['body'][_0x4752('0x9b')][0x0]['id']})[_0x4752('0x1b')](function(_0x409904){_0x270297['dataValues'][_0x4752('0xa9')]=[];_0x270297['dataValues']['Messages']['push'](_0x409904[_0x4752('0xac')]);return _0x270297;});})['then'](function(_0x373624){respondWithRpcPromise(_0x4752('0xad'),_0x4752('0xad'),{'FaxAccountId':_[_0x4752('0xa0')](_0x451016[_0x4752('0x52')]['id'])?undefined:_0x451016[_0x4752('0x52')]['id'],'path':_[_0x4752('0xa0')](_0x451016[_0x4752('0x55')][_0x4752('0x9b')][0x0][_0x4752('0x5')])?undefined:_0x451016[_0x4752('0x55')][_0x4752('0x9b')][0x0]['path'],'fax':_[_0x4752('0xa0')](_0x451016[_0x4752('0x55')]['to'][0x0])?undefined:_0x451016['body']['to'][0x0],'AttachmentId':_0x451016[_0x4752('0x55')]['attachments'][0x0]['id']},client9002)[_0x4752('0x1b')](function(_0x2ee264){logger[_0x4752('0xae')](_0x4752('0xaf'),_0x2ee264);})[_0x4752('0x24')](function(_0x127e05){logger[_0x4752('0xae')](_0x4752('0xaf'),_0x127e05);});return _0x373624;})[_0x4752('0x1b')](respondWithResult(_0x7017,null))[_0x4752('0x24')](handleError(_0x7017,null));};exports[_0x4752('0xb0')]=function(_0x174355,_0x3686b7,_0x44a12a){return db[_0x4752('0x35')][_0x4752('0x53')]({'where':{'id':_0x174355['params']['id']}})['then'](handleEntityNotFound(_0x3686b7,null))[_0x4752('0x1b')](function(_0x3c385d){if(_0x3c385d){return _0x3c385d[_0x4752('0xb0')](_0x174355[_0x4752('0x55')]['ids'],_[_0x4752('0x8d')](_0x174355['body'],[_0x4752('0x61'),'id'])||{})['spread'](function(_0x6a85ab){for(var _0x2701fc=0x0;_0x2701fc<_0x174355[_0x4752('0x55')][_0x4752('0x61')][_0x4752('0x40')];_0x2701fc+=0x1){socket[_0x4752('0xb1')](_0x4752('0xb2'),{'UserId':_0x174355['body'][_0x4752('0x61')][_0x2701fc],'FaxAccountId':_0x174355[_0x4752('0x52')]['id']});}return _0x6a85ab;});}})[_0x4752('0x1b')](respondWithResult(_0x3686b7,null))[_0x4752('0x24')](handleError(_0x3686b7,null));};exports[_0x4752('0xb3')]=function(_0x578612,_0xb83141,_0x548793){var _0x52785f;return db[_0x4752('0x35')][_0x4752('0x53')]({'where':{'id':_0x578612[_0x4752('0x52')]['id']}})[_0x4752('0x1b')](handleEntityNotFound(_0xb83141,null))[_0x4752('0x1b')](function(_0x44d259){if(_0x44d259){return _0x44d259[_0x4752('0xb3')](_0x578612[_0x4752('0x39')][_0x4752('0x61')])[_0x4752('0x1b')](function(_0x2113d6){if(_[_0x4752('0xb4')](_0x578612[_0x4752('0x39')][_0x4752('0x61')])){for(var _0x1d1b84=0x0;_0x1d1b84<_0x578612[_0x4752('0x39')]['ids'][_0x4752('0x40')];_0x1d1b84+=0x1){socket['emit'](_0x4752('0xb5'),{'UserId':_0x578612[_0x4752('0x39')][_0x4752('0x61')][_0x1d1b84],'FaxAccountId':_0x578612[_0x4752('0x52')]['id']});}}else{socket[_0x4752('0xb1')](_0x4752('0xb5'),{'UserId':_0x578612[_0x4752('0x39')][_0x4752('0x61')],'FaxAccountId':_0x578612[_0x4752('0x52')]['id']});}});}})[_0x4752('0x1b')](respondWithStatusCode(_0xb83141,null))['catch'](handleError(_0xb83141,null));};exports[_0x4752('0xb6')]=function(_0x1ef033,_0x304764,_0x55debe){var _0x29f212={};var _0x3dbb42={};var _0x86a262;var _0x5de6ea;return db[_0x4752('0x35')][_0x4752('0x5e')]({'where':{'id':_0x1ef033[_0x4752('0x52')]['id']}})['then'](handleEntityNotFound(_0x304764,null))[_0x4752('0x1b')](function(_0x1ef289){if(_0x1ef289){_0x86a262=_0x1ef289;_0x3dbb42['model']=_[_0x4752('0x38')](db['User']['rawAttributes']);_0x3dbb42[_0x4752('0x39')]=_[_0x4752('0x38')](_0x1ef033[_0x4752('0x39')]);_0x3dbb42[_0x4752('0x3c')]=_[_0x4752('0x3d')](_0x3dbb42[_0x4752('0x37')],_0x3dbb42[_0x4752('0x39')]);_0x29f212[_0x4752('0x3f')]=_[_0x4752('0x3d')](_0x3dbb42['model'],qs['fields'](_0x1ef033[_0x4752('0x39')]['fields']));_0x29f212[_0x4752('0x3f')]=_0x29f212[_0x4752('0x3f')]['length']?_0x29f212[_0x4752('0x3f')]:_0x3dbb42['model'];_0x29f212[_0x4752('0x43')]=qs[_0x4752('0x44')](_0x1ef033[_0x4752('0x39')][_0x4752('0x44')]);_0x29f212[_0x4752('0x45')]=qs[_0x4752('0x3c')](_['pick'](_0x1ef033[_0x4752('0x39')],_0x3dbb42[_0x4752('0x3c')]));if(_0x1ef033[_0x4752('0x39')][_0x4752('0x4a')]){_0x29f212['where']=_['merge'](_0x29f212[_0x4752('0x45')],{'$or':_[_0x4752('0x4b')](_0x29f212['attributes'],function(_0x1301c8){var _0x5de0bb={};_0x5de0bb[_0x1301c8]={'$like':'%'+_0x1ef033[_0x4752('0x39')][_0x4752('0x4a')]+'%'};return _0x5de0bb;})});}_0x29f212=_[_0x4752('0x49')]({},_0x29f212,_0x1ef033[_0x4752('0x4c')]);return _0x86a262['getAgents'](_0x29f212);}})[_0x4752('0x1b')](function(_0x78f199){if(_0x78f199){_0x5de6ea=_0x78f199[_0x4752('0x40')];if(!_0x1ef033[_0x4752('0x39')][_0x4752('0x41')](_0x4752('0x42'))){_0x29f212[_0x4752('0x29')]=qs[_0x4752('0x29')](_0x1ef033[_0x4752('0x39')]['limit']);_0x29f212[_0x4752('0x28')]=qs['offset'](_0x1ef033['query'][_0x4752('0x28')]);}return _0x86a262[_0x4752('0xb6')](_0x29f212);}})[_0x4752('0x1b')](function(_0x261054){if(_0x261054){return _0x261054?{'count':_0x5de6ea,'rows':_0x261054}:null;}})[_0x4752('0x1b')](respondWithResult(_0x304764,null))[_0x4752('0x24')](handleError(_0x304764,null));};
\ No newline at end of file
+var _0x900f=['updatedAt','TrunkId','ListId','findById','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','FaxMessage','List','Contacts','attachments','join','CheckAfterSend','isNil','path','from','\x22%s\x22\x20<%s>','fax','List\x20not\x20found','Send\x20Fax\x20failed','out','user','Messages','spread','filename','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','emit','removeAgents','isArray','userFaxAccount:remove','getAgents','User','html-pdf','eml-format','rimraf','fast-json-patch','moment','mustache','util','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','defaults','redis','socket.io-emitter','./faxAccount.socket','register','client','http','request','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','json','count','offset','Content-Range','reject','save','update','destroy','stack','name','send','FaxAccount','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','day','merge','map','filter','options','includeAll','include','findAll','catch','show','params','find','create','body','describe','FaxAccountId','Disposition','findOne','nolimit','limit','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addInteraction','omit','getInteractions','FaxInteraction','CmContact','Contact','Owner','internal','Tag','Tags','color','tag','sequelize','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','from-voip-provider','exten','localstationid','app','type','system','appdata','CDR(type)=inbound-fax','Set','gateway','faxdetect','headerinfo','minrate','t38timeout','push','FAXOPT(','/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d','addAccountApplications','get','VoiceExtension','updateAccountApplications','createdAt'];(function(_0x5287d3,_0x236dc7){var _0x3c2cda=function(_0x5625ac){while(--_0x5625ac){_0x5287d3['push'](_0x5287d3['shift']());}};_0x3c2cda(++_0x236dc7);}(_0x900f,0xd4));var _0xf900=function(_0x4a2689,_0x314a16){_0x4a2689=_0x4a2689-0x0;var _0x463450=_0x900f[_0x4a2689];return _0x463450;};'use strict';var pdf=require(_0xf900('0x0'));var emlformat=require(_0xf900('0x1'));var rimraf=require(_0xf900('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf900('0x3'));var rp=require('request-promise');var moment=require(_0xf900('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf900('0x5'));var util=require(_0xf900('0x6'));var path=require('path');var sox=require(_0xf900('0x7'));var csv=require(_0xf900('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf900('0x9'));var squel=require('squel');var crypto=require(_0xf900('0xa'));var jsforce=require(_0xf900('0xb'));var deskjs=require(_0xf900('0xc'));var toCsv=require(_0xf900('0x8'));var querystring=require(_0xf900('0xd'));var Papa=require(_0xf900('0xe'));var Redis=require(_0xf900('0xf'));var qs=require(_0xf900('0x10'));var logger=require('../../config/logger')(_0xf900('0x11'));var utils=require(_0xf900('0x12'));var config=require(_0xf900('0x13'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xf900('0x14')](config[_0xf900('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0xf900('0x16'))(new Redis(config['redis']));require(_0xf900('0x17'))[_0xf900('0x18')](socket);var jayson=require('jayson/promise');var client=jayson[_0xf900('0x19')]['http']({'port':0x232c});var client9002=jayson[_0xf900('0x19')][_0xf900('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x4616e2,_0x212d0b,_0x5121dc,_0x479fac){return new BPromise(function(_0x4fc099,_0x9f89a0){var _0x30c71d=_0x479fac||client;return _0x30c71d[_0xf900('0x1b')](_0x4616e2,_0x5121dc)[_0xf900('0x1c')](function(_0x17e956){logger[_0xf900('0x1d')]('FaxAccount,\x20%s,\x20%s',_0x212d0b,_0xf900('0x1e'));logger[_0xf900('0x1f')](_0xf900('0x20'),_0x212d0b,_0xf900('0x1e'),JSON[_0xf900('0x21')](_0x17e956));if(_0x17e956[_0xf900('0x22')]){if(_0x17e956[_0xf900('0x22')][_0xf900('0x23')]===0x1f4){logger[_0xf900('0x22')]('FaxAccount,\x20%s,\x20%s',_0x212d0b,_0x17e956[_0xf900('0x22')]['message']);return _0x9f89a0(_0x17e956[_0xf900('0x22')][_0xf900('0x24')]);}logger[_0xf900('0x22')]('FaxAccount,\x20%s,\x20%s',_0x212d0b,_0x17e956['error'][_0xf900('0x24')]);return _0x4fc099(_0x17e956[_0xf900('0x22')]['message']);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x212d0b,_0xf900('0x1e'));_0x4fc099(_0x17e956[_0xf900('0x25')][_0xf900('0x24')]);}})['catch'](function(_0x29b778){logger['error']('FaxAccount,\x20%s,\x20%s',_0x212d0b,_0x29b778);_0x9f89a0(_0x29b778);});});}function respondWithStatusCode(_0x3a341c,_0x553d16){_0x553d16=_0x553d16||0xcc;return function(_0x1e994a){if(_0x1e994a){return _0x3a341c[_0xf900('0x26')](_0x553d16);}return _0x3a341c[_0xf900('0x27')](_0x553d16)[_0xf900('0x28')]();};}function respondWithResult(_0x4a347d,_0x2ef0ed){_0x2ef0ed=_0x2ef0ed||0xc8;return function(_0x3e9b24){if(_0x3e9b24){return _0x4a347d[_0xf900('0x27')](_0x2ef0ed)[_0xf900('0x29')](_0x3e9b24);}};}function respondWithFilteredResult(_0x405fb7,_0x4c7984){return function(_0x4230da){if(_0x4230da){var _0x1ec1e2=_0x4230da[_0xf900('0x2a')],_0xd6f632=_0x4c7984[_0xf900('0x2b')],_0x21169d=_0x4c7984[_0xf900('0x2b')]+_0x4c7984['limit'],_0xb14143;if(_0x21169d>=_0x1ec1e2){_0x21169d=_0x1ec1e2;_0xb14143=0xc8;}else{_0xb14143=0xce;}_0x405fb7[_0xf900('0x27')](_0xb14143);return _0x405fb7['set'](_0xf900('0x2c'),_0xd6f632+'-'+_0x21169d+'/'+_0x1ec1e2)[_0xf900('0x29')](_0x4230da);}return null;};}function patchUpdates(_0x5c9b81){return function(_0x52c3ea){try{jsonpatch['apply'](_0x52c3ea,_0x5c9b81,!![]);}catch(_0x3072aa){return BPromise[_0xf900('0x2d')](_0x3072aa);}return _0x52c3ea[_0xf900('0x2e')]();};}function saveUpdates(_0x533b44,_0x4420fb){return function(_0x402891){if(_0x402891){return _0x402891[_0xf900('0x2f')](_0x533b44)[_0xf900('0x1c')](function(_0x209e01){return _0x209e01;});}return null;};}function removeEntity(_0x2648de,_0x3c192b){return function(_0x246b9e){if(_0x246b9e){return _0x246b9e[_0xf900('0x30')]()['then'](function(){_0x2648de[_0xf900('0x27')](0xcc)[_0xf900('0x28')]();});}};}function handleEntityNotFound(_0x530c9d,_0x36f644){return function(_0x4f3d0c){if(!_0x4f3d0c){_0x530c9d['sendStatus'](0x194);}return _0x4f3d0c;};}function handleError(_0x1a92f9,_0x25fe66){_0x25fe66=_0x25fe66||0x1f4;return function(_0xc5f08f){logger[_0xf900('0x22')](_0xc5f08f[_0xf900('0x31')]);if(_0xc5f08f[_0xf900('0x32')]){delete _0xc5f08f['name'];}_0x1a92f9[_0xf900('0x27')](_0x25fe66)[_0xf900('0x33')](_0xc5f08f);};}exports['index']=function(_0x209658,_0x2439f6){var _0x359375={},_0x685089={},_0x5a6895={'count':0x0,'rows':[]};var _0x3b3ad5=db[_0xf900('0x34')][_0xf900('0x35')];_0x685089[_0xf900('0x36')]=_[_0xf900('0x37')](_0x3b3ad5);var _0x4e46cc={'dateStart':_0x209658[_0xf900('0x38')][_0xf900('0x39')],'dateEnd':_0x209658[_0xf900('0x38')][_0xf900('0x3a')]};delete _0x209658[_0xf900('0x38')][_0xf900('0x39')];delete _0x209658[_0xf900('0x38')][_0xf900('0x3a')];_0x685089['query']=_[_0xf900('0x37')](_0x209658[_0xf900('0x38')]);_0x685089[_0xf900('0x3b')]=_[_0xf900('0x3c')](_0x685089[_0xf900('0x36')],_0x685089[_0xf900('0x38')]);_0x359375[_0xf900('0x3d')]=_[_0xf900('0x3c')](_0x685089[_0xf900('0x36')],qs[_0xf900('0x3e')](_0x209658[_0xf900('0x38')][_0xf900('0x3e')]));_0x359375[_0xf900('0x3d')]=_0x359375[_0xf900('0x3d')][_0xf900('0x3f')]?_0x359375[_0xf900('0x3d')]:_0x685089[_0xf900('0x36')];if(!_0x209658['query'][_0xf900('0x40')]('nolimit')){_0x359375['limit']=qs['limit'](_0x209658[_0xf900('0x38')]['limit']);_0x359375[_0xf900('0x2b')]=qs[_0xf900('0x2b')](_0x209658[_0xf900('0x38')]['offset']);}_0x359375[_0xf900('0x41')]=qs[_0xf900('0x42')](_0x209658[_0xf900('0x38')][_0xf900('0x42')]);_0x359375[_0xf900('0x43')]=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x209658[_0xf900('0x38')],_0x685089['filters']));if(_0x4e46cc['dateStart']){if(_0x4e46cc[_0xf900('0x3a')]){_0x4e46cc[_0xf900('0x3a')]=moment(_0x4e46cc[_0xf900('0x3a')])['add'](0x1,_0xf900('0x45'));}else{_0x4e46cc[_0xf900('0x3a')]=moment(_0x4e46cc[_0xf900('0x39')])['add'](0x1,_0xf900('0x45'));}_[_0xf900('0x46')](_0x359375[_0xf900('0x43')],{'createdAt':{'$gte':_0x4e46cc['dateStart'],'$lte':_0x4e46cc[_0xf900('0x3a')]}});}if(_0x209658[_0xf900('0x38')]['filter']){_0x359375[_0xf900('0x43')]=_[_0xf900('0x46')](_0x359375[_0xf900('0x43')],{'$or':_[_0xf900('0x47')](_0x359375['attributes'],function(_0x19835e){var _0x37af7c={};_0x37af7c[_0x19835e]={'$like':'%'+_0x209658[_0xf900('0x38')][_0xf900('0x48')]+'%'};return _0x37af7c;})});}_0x359375=_[_0xf900('0x46')]({},_0x359375,_0x209658[_0xf900('0x49')]);var _0x5a85a1={'where':_0x359375[_0xf900('0x43')]};return db[_0xf900('0x34')][_0xf900('0x2a')](_0x5a85a1)['then'](function(_0x1f0392){_0x5a6895[_0xf900('0x2a')]=_0x1f0392;if(_0x209658[_0xf900('0x38')][_0xf900('0x4a')]){_0x359375[_0xf900('0x4b')]=[{'all':!![]}];}return db['FaxAccount'][_0xf900('0x4c')](_0x359375);})[_0xf900('0x1c')](function(_0x1b99f6){_0x5a6895['rows']=_0x1b99f6;return _0x5a6895;})[_0xf900('0x1c')](respondWithFilteredResult(_0x2439f6,_0x359375))[_0xf900('0x4d')](handleError(_0x2439f6,null));};exports[_0xf900('0x4e')]=function(_0x10a2b7,_0x444cb0){var _0x3054a5={'raw':![],'where':{'id':_0x10a2b7[_0xf900('0x4f')]['id']}},_0x305fde={};_0x305fde['model']=_[_0xf900('0x37')](db[_0xf900('0x34')][_0xf900('0x35')]);_0x305fde['query']=_[_0xf900('0x37')](_0x10a2b7[_0xf900('0x38')]);_0x305fde[_0xf900('0x3b')]=_[_0xf900('0x3c')](_0x305fde[_0xf900('0x36')],_0x305fde['query']);_0x3054a5[_0xf900('0x3d')]=_[_0xf900('0x3c')](_0x305fde[_0xf900('0x36')],qs[_0xf900('0x3e')](_0x10a2b7[_0xf900('0x38')]['fields']));_0x3054a5[_0xf900('0x3d')]=_0x3054a5[_0xf900('0x3d')][_0xf900('0x3f')]?_0x3054a5['attributes']:_0x305fde['model'];if(_0x10a2b7[_0xf900('0x38')][_0xf900('0x4a')]){_0x3054a5['include']=[{'all':!![]}];}_0x3054a5=_[_0xf900('0x46')]({},_0x3054a5,_0x10a2b7[_0xf900('0x49')]);return db[_0xf900('0x34')][_0xf900('0x50')](_0x3054a5)[_0xf900('0x1c')](handleEntityNotFound(_0x444cb0,null))['then'](respondWithResult(_0x444cb0,null))[_0xf900('0x4d')](handleError(_0x444cb0,null));};exports[_0xf900('0x51')]=function(_0x3ccb92,_0x3c936e){return db[_0xf900('0x34')][_0xf900('0x51')](_0x3ccb92[_0xf900('0x52')],{})['then'](respondWithResult(_0x3c936e,0xc9))[_0xf900('0x4d')](handleError(_0x3c936e,null));};exports['update']=function(_0x5f198c,_0x82a25b){if(_0x5f198c['body']['id']){delete _0x5f198c[_0xf900('0x52')]['id'];}return db[_0xf900('0x34')][_0xf900('0x50')]({'where':{'id':_0x5f198c['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x82a25b,null))[_0xf900('0x1c')](saveUpdates(_0x5f198c[_0xf900('0x52')],null))[_0xf900('0x1c')](respondWithResult(_0x82a25b,null))[_0xf900('0x4d')](handleError(_0x82a25b,null));};exports[_0xf900('0x30')]=function(_0x151087,_0x467c12){return db['FaxAccount'][_0xf900('0x50')]({'where':{'id':_0x151087[_0xf900('0x4f')]['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x467c12,null))[_0xf900('0x1c')](removeEntity(_0x467c12,null))[_0xf900('0x4d')](handleError(_0x467c12,null));};exports[_0xf900('0x53')]=function(_0x2381f9,_0x34fc5b){return db['FaxAccount']['describe']()[_0xf900('0x1c')](respondWithResult(_0x34fc5b,null))[_0xf900('0x4d')](handleError(_0x34fc5b,null));};exports['addDisposition']=function(_0x2036d0,_0x1843a3,_0x23d95f){if(_0x2036d0[_0xf900('0x52')]['id']){delete _0x2036d0[_0xf900('0x52')]['id'];}return db[_0xf900('0x34')]['find']({'where':{'id':_0x2036d0['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x1843a3,null))['then'](function(_0x39516b){if(_0x39516b){_0x2036d0[_0xf900('0x52')][_0xf900('0x54')]=_0x39516b['id'];return db[_0xf900('0x55')][_0xf900('0x51')](_0x2036d0['body']);}})[_0xf900('0x1c')](respondWithResult(_0x1843a3,null))[_0xf900('0x4d')](handleError(_0x1843a3,null));};exports['getDispositions']=function(_0x139149,_0x57a627,_0x2f7d44){var _0x261c41={'raw':![],'where':{}};var _0x183702={};var _0x21c0ba={'count':0x0,'rows':[]};return db['FaxAccount'][_0xf900('0x56')]({'where':{'id':_0x139149[_0xf900('0x4f')]['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x57a627,null))[_0xf900('0x1c')](function(_0x9c9732){if(_0x9c9732){_0x183702[_0xf900('0x36')]=_[_0xf900('0x37')](db[_0xf900('0x55')][_0xf900('0x35')]);_0x183702[_0xf900('0x38')]=_[_0xf900('0x37')](_0x139149[_0xf900('0x38')]);_0x183702['filters']=_['intersection'](_0x183702[_0xf900('0x36')],_0x183702['query']);_0x261c41['attributes']=_['intersection'](_0x183702[_0xf900('0x36')],qs['fields'](_0x139149[_0xf900('0x38')]['fields']));_0x261c41[_0xf900('0x3d')]=_0x261c41[_0xf900('0x3d')]['length']?_0x261c41[_0xf900('0x3d')]:_0x183702['model'];if(!_0x139149[_0xf900('0x38')][_0xf900('0x40')](_0xf900('0x57'))){_0x261c41['limit']=qs[_0xf900('0x58')](_0x139149[_0xf900('0x38')][_0xf900('0x58')]);_0x261c41[_0xf900('0x2b')]=qs[_0xf900('0x2b')](_0x139149[_0xf900('0x38')][_0xf900('0x2b')]);}_0x261c41[_0xf900('0x41')]=qs[_0xf900('0x42')](_0x139149[_0xf900('0x38')][_0xf900('0x42')]);_0x261c41[_0xf900('0x43')]=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x139149[_0xf900('0x38')],_0x183702[_0xf900('0x3b')]));_0x261c41[_0xf900('0x43')][_0xf900('0x54')]=_0x9c9732['id'];if(_0x139149['query'][_0xf900('0x48')]){_0x261c41[_0xf900('0x43')]=_[_0xf900('0x46')](_0x261c41[_0xf900('0x43')],{'$or':_[_0xf900('0x47')](_0x261c41['attributes'],function(_0x320c9a){var _0x242a4e={};_0x242a4e[_0x320c9a]={'$like':'%'+_0x139149[_0xf900('0x38')]['filter']+'%'};return _0x242a4e;})});}_0x261c41=_['merge']({},_0x261c41,_0x139149[_0xf900('0x49')]);return db[_0xf900('0x55')]['count']({'where':_0x261c41['where']})[_0xf900('0x1c')](function(_0x18b02c){_0x21c0ba[_0xf900('0x2a')]=_0x18b02c;if(_0x139149[_0xf900('0x38')][_0xf900('0x4a')]){_0x261c41['include']=[{'all':!![]}];}return db[_0xf900('0x55')][_0xf900('0x4c')](_0x261c41);})[_0xf900('0x1c')](function(_0x330277){_0x21c0ba[_0xf900('0x59')]=_0x330277;return _0x21c0ba;});}})[_0xf900('0x1c')](respondWithFilteredResult(_0x57a627,_0x261c41))[_0xf900('0x4d')](handleError(_0x57a627,null));};exports[_0xf900('0x5a')]=function(_0x4ba81a,_0x230e4,_0x23b4fd){var _0x131881;return db[_0xf900('0x34')][_0xf900('0x50')]({'where':{'id':_0x4ba81a[_0xf900('0x4f')]['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x230e4,null))['then'](function(_0x5d6ac5){if(_0x5d6ac5){return _0x5d6ac5[_0xf900('0x5a')](_0x4ba81a[_0xf900('0x38')][_0xf900('0x5b')]);}})[_0xf900('0x1c')](respondWithStatusCode(_0x230e4,null))[_0xf900('0x4d')](handleError(_0x230e4,null));};exports[_0xf900('0x5c')]=function(_0x10fbd4,_0x55b9ff,_0x5a4594){if(_0x10fbd4[_0xf900('0x52')]['id']){delete _0x10fbd4[_0xf900('0x52')]['id'];}return db['FaxAccount'][_0xf900('0x50')]({'where':{'id':_0x10fbd4['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x55b9ff,null))[_0xf900('0x1c')](function(_0x4776d1){if(_0x4776d1){_0x10fbd4[_0xf900('0x52')][_0xf900('0x54')]=_0x4776d1['id'];return db[_0xf900('0x5d')][_0xf900('0x51')](_0x10fbd4[_0xf900('0x52')]);}})[_0xf900('0x1c')](respondWithResult(_0x55b9ff,null))[_0xf900('0x4d')](handleError(_0x55b9ff,null));};exports[_0xf900('0x5e')]=function(_0x1afef9,_0x3b626e,_0xf294ff){var _0x5ced44={'raw':![],'where':{}};var _0x343ff3={};var _0x37c129={'count':0x0,'rows':[]};return db[_0xf900('0x34')][_0xf900('0x56')]({'where':{'id':_0x1afef9['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x3b626e,null))['then'](function(_0x46dcca){if(_0x46dcca){_0x343ff3[_0xf900('0x36')]=_[_0xf900('0x37')](db[_0xf900('0x5d')][_0xf900('0x35')]);_0x343ff3['query']=_[_0xf900('0x37')](_0x1afef9['query']);_0x343ff3[_0xf900('0x3b')]=_[_0xf900('0x3c')](_0x343ff3[_0xf900('0x36')],_0x343ff3[_0xf900('0x38')]);_0x5ced44[_0xf900('0x3d')]=_[_0xf900('0x3c')](_0x343ff3[_0xf900('0x36')],qs[_0xf900('0x3e')](_0x1afef9['query'][_0xf900('0x3e')]));_0x5ced44[_0xf900('0x3d')]=_0x5ced44[_0xf900('0x3d')]['length']?_0x5ced44[_0xf900('0x3d')]:_0x343ff3['model'];if(!_0x1afef9[_0xf900('0x38')]['hasOwnProperty'](_0xf900('0x57'))){_0x5ced44[_0xf900('0x58')]=qs[_0xf900('0x58')](_0x1afef9[_0xf900('0x38')][_0xf900('0x58')]);_0x5ced44['offset']=qs[_0xf900('0x2b')](_0x1afef9[_0xf900('0x38')][_0xf900('0x2b')]);}_0x5ced44[_0xf900('0x41')]=qs['sort'](_0x1afef9[_0xf900('0x38')][_0xf900('0x42')]);_0x5ced44[_0xf900('0x43')]=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x1afef9[_0xf900('0x38')],_0x343ff3[_0xf900('0x3b')]));_0x5ced44[_0xf900('0x43')][_0xf900('0x54')]=_0x46dcca['id'];if(_0x1afef9['query'][_0xf900('0x48')]){_0x5ced44[_0xf900('0x43')]=_[_0xf900('0x46')](_0x5ced44[_0xf900('0x43')],{'$or':_[_0xf900('0x47')](_0x5ced44[_0xf900('0x3d')],function(_0x48de93){var _0x1109de={};_0x1109de[_0x48de93]={'$like':'%'+_0x1afef9['query'][_0xf900('0x48')]+'%'};return _0x1109de;})});}_0x5ced44=_['merge']({},_0x5ced44,_0x1afef9['options']);return db[_0xf900('0x5d')][_0xf900('0x2a')]({'where':_0x5ced44['where']})[_0xf900('0x1c')](function(_0x1a5b6b){_0x37c129[_0xf900('0x2a')]=_0x1a5b6b;if(_0x1afef9['query'][_0xf900('0x4a')]){_0x5ced44[_0xf900('0x4b')]=[{'all':!![]}];}return db['CannedAnswer'][_0xf900('0x4c')](_0x5ced44);})[_0xf900('0x1c')](function(_0xf3bcc4){_0x37c129[_0xf900('0x59')]=_0xf3bcc4;return _0x37c129;});}})['then'](respondWithFilteredResult(_0x3b626e,_0x5ced44))[_0xf900('0x4d')](handleError(_0x3b626e,null));};exports[_0xf900('0x5f')]=function(_0xc3789d,_0x1de33b,_0x4d50a3){var _0x24b665;return db['FaxAccount'][_0xf900('0x50')]({'where':{'id':_0xc3789d[_0xf900('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1de33b,null))['then'](function(_0x5a7ca5){if(_0x5a7ca5){return _0x5a7ca5['removeAnswers'](_0xc3789d[_0xf900('0x38')][_0xf900('0x5b')]);}})['then'](respondWithStatusCode(_0x1de33b,null))[_0xf900('0x4d')](handleError(_0x1de33b,null));};exports[_0xf900('0x60')]=function(_0xff67ef,_0x267e89,_0x55033a){return db['FaxInteraction'][_0xf900('0x50')]({'where':{'id':_0xff67ef[_0xf900('0x4f')]['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x267e89,null))[_0xf900('0x1c')](function(_0x55661c){if(_0x55661c){return _0x55661c[_0xf900('0x60')](_0xff67ef[_0xf900('0x52')][_0xf900('0x5b')],_[_0xf900('0x61')](_0xff67ef[_0xf900('0x52')],[_0xf900('0x5b'),'id'])||{});}})[_0xf900('0x1c')](respondWithResult(_0x267e89,null))[_0xf900('0x4d')](handleError(_0x267e89,null));};exports[_0xf900('0x62')]=function(_0x52f00a,_0x4581ac,_0x2ba903){var _0x1d2412={'raw':![],'where':{}};var _0x457e78={};var _0x2a0c8f={'count':0x0,'rows':[]};return db[_0xf900('0x34')][_0xf900('0x56')]({'where':{'id':_0x52f00a[_0xf900('0x4f')]['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x4581ac,null))['then'](function(_0x2d20e0){if(_0x2d20e0){_0x457e78[_0xf900('0x36')]=_['keys'](db[_0xf900('0x63')][_0xf900('0x35')]);_0x457e78['query']=_[_0xf900('0x37')](_0x52f00a[_0xf900('0x38')]);_0x457e78[_0xf900('0x3b')]=_[_0xf900('0x3c')](_0x457e78[_0xf900('0x36')],_0x457e78[_0xf900('0x38')]);_0x1d2412['attributes']=_['intersection'](_0x457e78[_0xf900('0x36')],qs[_0xf900('0x3e')](_0x52f00a[_0xf900('0x38')][_0xf900('0x3e')]));_0x1d2412[_0xf900('0x3d')]=_0x1d2412[_0xf900('0x3d')][_0xf900('0x3f')]?_0x1d2412[_0xf900('0x3d')]:_0x457e78[_0xf900('0x36')];if(!_0x52f00a[_0xf900('0x38')][_0xf900('0x40')](_0xf900('0x57'))){_0x1d2412[_0xf900('0x58')]=qs[_0xf900('0x58')](_0x52f00a['query'][_0xf900('0x58')]);_0x1d2412[_0xf900('0x2b')]=qs[_0xf900('0x2b')](_0x52f00a['query']['offset']);}_0x1d2412[_0xf900('0x41')]=qs[_0xf900('0x42')](_0x52f00a[_0xf900('0x38')][_0xf900('0x42')]);_0x1d2412[_0xf900('0x43')]=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x52f00a['query'],_0x457e78[_0xf900('0x3b')]));_0x1d2412['where']['FaxAccountId']=_0x2d20e0['id'];if(_0x52f00a[_0xf900('0x38')][_0xf900('0x48')]){_0x1d2412[_0xf900('0x43')]=_[_0xf900('0x46')](_0x1d2412[_0xf900('0x43')],{'$or':_[_0xf900('0x47')](_0x1d2412[_0xf900('0x3d')],function(_0x1085ea){var _0x2e6b59={};_0x2e6b59[_0x1085ea]={'$like':'%'+_0x52f00a[_0xf900('0x38')][_0xf900('0x48')]+'%'};return _0x2e6b59;})});}_0x1d2412=_['merge']({},_0x1d2412,_0x52f00a[_0xf900('0x49')]);return db['FaxInteraction'][_0xf900('0x2a')]({'where':_0x1d2412[_0xf900('0x43')]})['then'](function(_0x204770){_0x2a0c8f['count']=_0x204770;if(_0x52f00a[_0xf900('0x38')][_0xf900('0x4a')]){_0x1d2412[_0xf900('0x4b')]=[{'model':db[_0xf900('0x64')],'as':_0xf900('0x65'),'required':![]},{'model':db['User'],'as':_0xf900('0x66'),'attributes':[_0xf900('0x32'),'fullname',_0xf900('0x67')],'required':![]},{'model':db[_0xf900('0x68')],'as':_0xf900('0x69'),'attributes':['id',_0xf900('0x32'),_0xf900('0x6a')],'where':_0x52f00a[_0xf900('0x38')][_0xf900('0x6b')]?{'id':_0x52f00a[_0xf900('0x38')][_0xf900('0x6b')]}:undefined,'required':_0x52f00a[_0xf900('0x38')]['tag']?!![]:![]}];}return db[_0xf900('0x63')]['findAll'](_0x1d2412);})[_0xf900('0x1c')](function(_0x4eef42){_0x2a0c8f[_0xf900('0x59')]=_0x4eef42;return _0x2a0c8f;});}})[_0xf900('0x1c')](respondWithFilteredResult(_0x4581ac,_0x1d2412))[_0xf900('0x4d')](handleError(_0x4581ac,null));};exports['addApplications']=function(_0x4e094f,_0x534265,_0x302362){return db[_0xf900('0x34')]['findOne']({'where':{'id':_0x4e094f['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x534265,null))[_0xf900('0x1c')](function(_0xa68673){if(_0xa68673){return db[_0xf900('0x6c')][_0xf900('0x6d')](function(_0xf85d86){return db[_0xf900('0x6e')]['destroy']({'where':{'FaxAccountId':_0x4e094f[_0xf900('0x4f')]['id']},'transaction':_0xf85d86})[_0xf900('0x1c')](function(_0xc33085){var _0x254b01=_['map'](_0x4e094f[_0xf900('0x52')],function(_0x32b255){_0x32b255['FaxAccountId']=_0x4e094f[_0xf900('0x4f')]['id'];return _0x32b255;});return db[_0xf900('0x6e')][_0xf900('0x6f')](_0x254b01,{'transaction':_0xf85d86});});})[_0xf900('0x1c')](function(){return db['FaxApplication'][_0xf900('0x70')]({'where':{'FaxAccountId':_0x4e094f[_0xf900('0x4f')]['id']},'order':_0xf900('0x71')});});}})[_0xf900('0x1c')](respondWithResult(_0x534265,null))['catch'](handleError(_0x534265,null));};exports['getApplications']=function(_0x5dc3d7,_0x4e45c8,_0x2fc0d1){var _0x141faa={};var _0x3c32e3={};var _0x34f99e;var _0x4dba74;return db[_0xf900('0x34')][_0xf900('0x56')]({'where':{'id':_0x5dc3d7['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x4e45c8,null))[_0xf900('0x1c')](function(_0x59042d){if(_0x59042d){_0x34f99e=_0x59042d;_0x3c32e3[_0xf900('0x36')]=_[_0xf900('0x37')](db[_0xf900('0x6e')][_0xf900('0x35')]);_0x3c32e3['query']=_[_0xf900('0x37')](_0x5dc3d7[_0xf900('0x38')]);_0x3c32e3[_0xf900('0x3b')]=_[_0xf900('0x3c')](_0x3c32e3[_0xf900('0x36')],_0x3c32e3[_0xf900('0x38')]);_0x141faa[_0xf900('0x3d')]=_[_0xf900('0x3c')](_0x3c32e3[_0xf900('0x36')],qs['fields'](_0x5dc3d7[_0xf900('0x38')][_0xf900('0x3e')]));_0x141faa[_0xf900('0x3d')]=_0x141faa[_0xf900('0x3d')]['length']?_0x141faa[_0xf900('0x3d')]:_0x3c32e3[_0xf900('0x36')];_0x141faa['order']=qs[_0xf900('0x42')](_0x5dc3d7[_0xf900('0x38')][_0xf900('0x42')]);_0x141faa[_0xf900('0x43')]=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x5dc3d7[_0xf900('0x38')],_0x3c32e3[_0xf900('0x3b')]));if(_0x5dc3d7['query'][_0xf900('0x48')]){_0x141faa['where']=_[_0xf900('0x46')](_0x141faa[_0xf900('0x43')],{'$or':_[_0xf900('0x47')](_0x141faa[_0xf900('0x3d')],function(_0x3bb34a){var _0x2799bc={};_0x2799bc[_0x3bb34a]={'$like':'%'+_0x5dc3d7['query']['filter']+'%'};return _0x2799bc;})});}_0x141faa=_[_0xf900('0x46')]({},_0x141faa,_0x5dc3d7[_0xf900('0x49')]);return _0x34f99e[_0xf900('0x72')](_0x141faa);}})[_0xf900('0x1c')](function(_0x3e1493){if(_0x3e1493){_0x4dba74=_0x3e1493['length'];if(!_0x5dc3d7[_0xf900('0x38')][_0xf900('0x40')](_0xf900('0x57'))){_0x141faa[_0xf900('0x58')]=qs[_0xf900('0x58')](_0x5dc3d7[_0xf900('0x38')]['limit']);_0x141faa['offset']=qs[_0xf900('0x2b')](_0x5dc3d7[_0xf900('0x38')][_0xf900('0x2b')]);}return _0x34f99e[_0xf900('0x72')](_0x141faa);}})[_0xf900('0x1c')](function(_0x271dc7){if(_0x271dc7){return _0x271dc7?{'count':_0x4dba74,'rows':_0x271dc7}:null;}})[_0xf900('0x1c')](respondWithResult(_0x4e45c8,null))['catch'](handleError(_0x4e45c8,null));};function Extension(_0x32e0fc,_0x2714d1,_0x5b18a2,_0x49dab5){this[_0xf900('0x73')]=_0xf900('0x74');this[_0xf900('0x75')]=_0x32e0fc[_0xf900('0x76')];this[_0xf900('0x77')]=_0x49dab5;this[_0xf900('0x78')]=_0xf900('0x79');this['description']='Fax\x20Extension';this[_0xf900('0x54')]=_0x32e0fc['id'];this[_0xf900('0x71')]=_0x2714d1;this[_0xf900('0x7a')]=_0x5b18a2;}function createExtensionsReciveFax(_0x2a1dc0){var _0x16cc52=0x1;var _0x7751bc=[];_0x7751bc['push'](new Extension(_0x2a1dc0,_0x16cc52,'','Answer'));_0x16cc52+=0x1;_0x7751bc['push'](new Extension(_0x2a1dc0,_0x16cc52,_0xf900('0x7b'),_0xf900('0x7c')));_0x16cc52+=0x1;for(var _0x1d2997 in _0x2a1dc0){if(_0x2a1dc0[_0xf900('0x40')](_0x1d2997)&&(_0x1d2997==='ecm'||_0x1d2997===_0xf900('0x76')||_0x1d2997===_0xf900('0x7d')||_0x1d2997===_0xf900('0x7e')||_0x1d2997===_0xf900('0x7f')||_0x1d2997==='maxrate'||_0x1d2997===_0xf900('0x80')||_0x1d2997==='modem'||_0x1d2997===_0xf900('0x81'))){_0x7751bc[_0xf900('0x82')](new Extension(_0x2a1dc0,_0x16cc52,_0xf900('0x83')+_0x1d2997+')='+_0x2a1dc0[_0x1d2997],_0xf900('0x7c')));_0x16cc52+=0x1;}}_0x7751bc[_0xf900('0x82')](new Extension(_0x2a1dc0,_0x16cc52,'6','Wait'));_0x16cc52+=0x1;_0x7751bc[_0xf900('0x82')](new Extension(_0x2a1dc0,_0x16cc52,_0xf900('0x84'),'ReceiveFax'));_0x16cc52=0x0;return _0x7751bc;}exports[_0xf900('0x85')]=function(_0x186bf4,_0x1b51e0,_0x4685e8){var _0x304c8d;return db[_0xf900('0x6c')][_0xf900('0x6d')](function(_0xa72738){return db[_0xf900('0x34')][_0xf900('0x51')](_0x186bf4[_0xf900('0x52')],{'transaction':_0xa72738})['then'](function(_0x4d82a8){_0x304c8d=_0x4d82a8[_0xf900('0x86')]({'plain':!![]});return db[_0xf900('0x87')][_0xf900('0x6f')](createExtensionsReciveFax(_0x304c8d),{'transaction':_0xa72738});});})['then'](function(){return _0x304c8d;})[_0xf900('0x1c')](respondWithResult(_0x1b51e0,null))[_0xf900('0x4d')](handleError(_0x1b51e0,null));};exports[_0xf900('0x88')]=function(_0x26b9f3,_0x753106,_0xc06b12){var _0x5483c4;return db[_0xf900('0x6c')]['transaction'](function(_0x4ac7a9){return db[_0xf900('0x34')][_0xf900('0x2f')](_0x26b9f3[_0xf900('0x52')],{'where':{'id':_0x26b9f3['body']['id']},'transaction':_0x4ac7a9})[_0xf900('0x1c')](function(_0x54aae9){return db[_0xf900('0x87')]['destroy']({'where':{'FaxAccountId':_0x26b9f3[_0xf900('0x52')]['id']},'transaction':_0x4ac7a9})[_0xf900('0x1c')](function(_0x4da4a5){return db[_0xf900('0x87')]['bulkCreate'](createExtensionsReciveFax(_[_0xf900('0x61')](_0x26b9f3[_0xf900('0x52')],['tech','key',_0xf900('0x89'),_0xf900('0x8a'),_0xf900('0x8b'),_0xf900('0x8c')])),{'transaction':_0x4ac7a9});});});})['then'](function(){return db[_0xf900('0x34')][_0xf900('0x8d')](_0x26b9f3[_0xf900('0x52')]['id']);})[_0xf900('0x1c')](respondWithResult(_0x753106,null))[_0xf900('0x4d')](handleError(_0x753106,null));};exports[_0xf900('0x8e')]=function(_0x46d3a5,_0x51058c,_0x440d84){var _0x5a9132={'raw':!![],'where':{}};var _0x418175={};var _0x19367b={'count':0x0,'rows':[]};return db[_0xf900('0x34')][_0xf900('0x56')]({'where':{'id':_0x46d3a5[_0xf900('0x4f')]['id']}})['then'](handleEntityNotFound(_0x51058c,null))[_0xf900('0x1c')](function(_0x619818){if(_0x619818){_0x418175[_0xf900('0x36')]=_[_0xf900('0x37')](db['FaxMessage'][_0xf900('0x35')]);_0x418175[_0xf900('0x38')]=_[_0xf900('0x37')](_0x46d3a5['query']);_0x418175['filters']=_[_0xf900('0x3c')](_0x418175[_0xf900('0x36')],_0x418175[_0xf900('0x38')]);_0x5a9132[_0xf900('0x3d')]=_['intersection'](_0x418175[_0xf900('0x36')],qs['fields'](_0x46d3a5[_0xf900('0x38')][_0xf900('0x3e')]));_0x5a9132[_0xf900('0x3d')]=_0x5a9132[_0xf900('0x3d')][_0xf900('0x3f')]?_0x5a9132[_0xf900('0x3d')]:_0x418175[_0xf900('0x36')];if(!_0x46d3a5[_0xf900('0x38')]['hasOwnProperty']('nolimit')){_0x5a9132['limit']=qs['limit'](_0x46d3a5[_0xf900('0x38')][_0xf900('0x58')]);_0x5a9132['offset']=qs['offset'](_0x46d3a5[_0xf900('0x38')][_0xf900('0x2b')]);}_0x5a9132[_0xf900('0x41')]=qs['sort'](_0x46d3a5[_0xf900('0x38')][_0xf900('0x42')]);_0x5a9132['where']=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x46d3a5[_0xf900('0x38')],_0x418175['filters']));_0x5a9132[_0xf900('0x43')][_0xf900('0x54')]=_0x619818['id'];if(_0x46d3a5[_0xf900('0x38')]['filter']){_0x5a9132[_0xf900('0x43')]=_[_0xf900('0x46')](_0x5a9132[_0xf900('0x43')],{'$or':_[_0xf900('0x47')](_0x5a9132[_0xf900('0x3d')],function(_0x83268f){var _0x42c890={};_0x42c890[_0x83268f]={'$like':'%'+_0x46d3a5['query'][_0xf900('0x48')]+'%'};return _0x42c890;})});}if(_0x46d3a5[_0xf900('0x38')][_0xf900('0x8f')]){var _0x2958b1=_0x46d3a5[_0xf900('0x38')][_0xf900('0x8f')][_0xf900('0x90')](',');var _0xf84150={};_0xf84150[_0x2958b1[0x0]]={'$gte':moment(_0x2958b1[0x1])[_0xf900('0x91')](_0xf900('0x92'))};_0x5a9132[_0xf900('0x43')]=_[_0xf900('0x46')](_0x5a9132[_0xf900('0x43')],_0xf84150);}_0x5a9132=_[_0xf900('0x46')]({},_0x5a9132,_0x46d3a5[_0xf900('0x49')]);return db[_0xf900('0x93')][_0xf900('0x2a')]({'where':_0x5a9132['where']})[_0xf900('0x1c')](function(_0x2149cc){_0x19367b[_0xf900('0x2a')]=_0x2149cc;if(_0x46d3a5[_0xf900('0x38')][_0xf900('0x4a')]){_0x5a9132[_0xf900('0x4b')]=[{'all':!![]}];}return db[_0xf900('0x93')][_0xf900('0x4c')](_0x5a9132);})[_0xf900('0x1c')](function(_0x10ec76){_0x19367b[_0xf900('0x59')]=_0x10ec76;return _0x19367b;});}})[_0xf900('0x1c')](respondWithFilteredResult(_0x51058c,_0x5a9132))['catch'](handleError(_0x51058c,null));};exports[_0xf900('0x33')]=function(_0x44c80f,_0x33bbe4,_0x1fe69c){var _0x34334b,_0x4be6b9={},_0x2a57a7;if(_0x44c80f[_0xf900('0x52')]['to']){_0x2a57a7=_0x44c80f[_0xf900('0x52')]['to'][0x0];}return db[_0xf900('0x34')][_0xf900('0x50')]({'where':{'id':_0x44c80f[_0xf900('0x4f')]['id']},'include':[{'model':db['CmList'],'as':_0xf900('0x94'),'include':[{'model':db[_0xf900('0x64')],'as':_0xf900('0x95'),'where':{'fax':_0x2a57a7},'limit':0x1,'order':[[_0xf900('0x8a'),'DESC']]}]}]})[_0xf900('0x1c')](handleEntityNotFound(_0x33bbe4,null))[_0xf900('0x1c')](function(_0x2311b2){_0x34334b=_0x2311b2;if(_0x44c80f[_0xf900('0x52')]['attachments']&&_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][_0xf900('0x3f')]){for(var _0x4f8893=0x0;_0x4f8893<_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][_0xf900('0x3f')];_0x4f8893+=0x1){_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][_0x4f8893]={'filename':_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][_0x4f8893][_0xf900('0x32')],'id':_0x44c80f['body']['attachments'][_0x4f8893]['id'],'path':path[_0xf900('0x97')](config['root'],'server/files/attachments',_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][_0x4f8893]['basename'])};}}return respondWithRpcPromise(_0xf900('0x98'),_0xf900('0x98'),{'FaxAccountId':_[_0xf900('0x99')](_0x44c80f[_0xf900('0x4f')]['id'])?undefined:_0x44c80f['params']['id'],'path':_['isNil'](_0x44c80f[_0xf900('0x52')]['attachments'][0x0][_0xf900('0x9a')])?undefined:_0x44c80f[_0xf900('0x52')]['attachments'][0x0]['path'],'fax':_[_0xf900('0x99')](_0x44c80f[_0xf900('0x52')]['to'][0x0])?undefined:_0x44c80f[_0xf900('0x52')]['to'][0x0]},client9002);})['then'](function(){if(_0x34334b){if(_[_0xf900('0x99')](_0x44c80f[_0xf900('0x52')][_0xf900('0x9b')])){_0x44c80f[_0xf900('0x52')]['from']=util['format'](_0xf900('0x9c'),_0x34334b[_0xf900('0x32')],_0x34334b[_0xf900('0x9d')]);}if(_0x34334b[_0xf900('0x94')]){if(_0x34334b[_0xf900('0x94')]['Contacts'][_0xf900('0x3f')]){return _0x34334b[_0xf900('0x94')][_0xf900('0x95')][0x0];}else{return db[_0xf900('0x64')][_0xf900('0x51')](_[_0xf900('0x14')](_0x44c80f['body'],{'firstName':_0x44c80f['body']['to'][0x0],'phone':_0x44c80f['body']['to'][0x0],'fax':_0x44c80f[_0xf900('0x52')]['to'][0x0],'ListId':_0x34334b['ListId']}));}}else{throw new Error(_0xf900('0x9e'));}}else{throw new Error(_0xf900('0x9f'));}})[_0xf900('0x1c')](function(_0x55ec4d){if(_0x55ec4d){return db[_0xf900('0x63')][_0xf900('0x50')]({'where':{'ContactId':_0x55ec4d['id'],'closed':![],'FaxAccountId':_0x34334b['id']}})['then'](function(_0x517106){if(_0x517106){return[_0x517106,![]];}return db[_0xf900('0x63')][_0xf900('0x51')]({'UserId':_0x44c80f['user']['id'],'ContactId':_0x55ec4d['id'],'FaxAccountId':_0x34334b['id'],'fax':_0x44c80f['body']['to'][0x0],'firstMsgDirection':_0xf900('0xa0'),'Messages':[_['merge'](_0x44c80f['body'],{'read':![],'body':_0x44c80f['body'][_0xf900('0x96')][0x0]['filename'],'FaxAccountId':_0x34334b['id'],'UserId':_0x44c80f[_0xf900('0xa1')]['id'],'ContactId':_0x55ec4d['id'],'AttachmentId':_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][0x0]['id']})]},{'include':[{'model':db[_0xf900('0x93')],'as':_0xf900('0xa2')}]})[_0xf900('0x1c')](function(_0x3dadcc){return[_0x3dadcc,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xf900('0xa3')](function(_0x20f62b,_0x38aebf){if(_0x38aebf){return _0x20f62b;}return db['FaxMessage'][_0xf900('0x51')]({'direction':_0xf900('0xa0'),'read':![],'body':_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][0x0][_0xf900('0xa4')],'FaxAccountId':_0x34334b['id'],'FaxInteractionId':_0x20f62b['id'],'UserId':_0x44c80f['user']['id'],'ContactId':_0x20f62b['ContactId'],'AttachmentId':_0x44c80f['body'][_0xf900('0x96')][0x0]['id']})[_0xf900('0x1c')](function(_0x7b57c7){_0x20f62b[_0xf900('0xa5')][_0xf900('0xa2')]=[];_0x20f62b[_0xf900('0xa5')][_0xf900('0xa2')][_0xf900('0x82')](_0x7b57c7[_0xf900('0xa5')]);return _0x20f62b;});})[_0xf900('0x1c')](function(_0x5b6c89){respondWithRpcPromise(_0xf900('0xa6'),_0xf900('0xa6'),{'FaxAccountId':_[_0xf900('0x99')](_0x44c80f[_0xf900('0x4f')]['id'])?undefined:_0x44c80f[_0xf900('0x4f')]['id'],'path':_[_0xf900('0x99')](_0x44c80f['body']['attachments'][0x0]['path'])?undefined:_0x44c80f[_0xf900('0x52')][_0xf900('0x96')][0x0][_0xf900('0x9a')],'fax':_['isNil'](_0x44c80f[_0xf900('0x52')]['to'][0x0])?undefined:_0x44c80f[_0xf900('0x52')]['to'][0x0],'AttachmentId':_0x44c80f['body']['attachments'][0x0]['id']},client9002)[_0xf900('0x1c')](function(_0x4dfea6){logger[_0xf900('0x1d')](_0xf900('0xa7'),_0x4dfea6);})[_0xf900('0x4d')](function(_0x3e5fd7){logger[_0xf900('0x1d')](_0xf900('0xa7'),_0x3e5fd7);});return _0x5b6c89;})[_0xf900('0x1c')](respondWithResult(_0x33bbe4,null))[_0xf900('0x4d')](handleError(_0x33bbe4,null));};exports[_0xf900('0xa8')]=function(_0x3decb4,_0x583ec2,_0x282b5e){return db['FaxAccount']['find']({'where':{'id':_0x3decb4['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x583ec2,null))[_0xf900('0x1c')](function(_0x3ab805){if(_0x3ab805){return _0x3ab805[_0xf900('0xa8')](_0x3decb4[_0xf900('0x52')][_0xf900('0x5b')],_[_0xf900('0x61')](_0x3decb4[_0xf900('0x52')],[_0xf900('0x5b'),'id'])||{})['spread'](function(_0x45a3e9){for(var _0x4a2c2c=0x0;_0x4a2c2c<_0x3decb4[_0xf900('0x52')][_0xf900('0x5b')][_0xf900('0x3f')];_0x4a2c2c+=0x1){socket[_0xf900('0xa9')]('userFaxAccount:save',{'UserId':_0x3decb4['body'][_0xf900('0x5b')][_0x4a2c2c],'FaxAccountId':_0x3decb4[_0xf900('0x4f')]['id']});}return _0x45a3e9;});}})[_0xf900('0x1c')](respondWithResult(_0x583ec2,null))['catch'](handleError(_0x583ec2,null));};exports[_0xf900('0xaa')]=function(_0x4de72f,_0x36ae2d,_0x25471b){var _0x18c7e4;return db[_0xf900('0x34')][_0xf900('0x50')]({'where':{'id':_0x4de72f['params']['id']}})[_0xf900('0x1c')](handleEntityNotFound(_0x36ae2d,null))[_0xf900('0x1c')](function(_0x3a4b8d){if(_0x3a4b8d){return _0x3a4b8d['removeAgents'](_0x4de72f['query'][_0xf900('0x5b')])[_0xf900('0x1c')](function(_0x5f129a){if(_[_0xf900('0xab')](_0x4de72f[_0xf900('0x38')][_0xf900('0x5b')])){for(var _0x5bdaad=0x0;_0x5bdaad<_0x4de72f[_0xf900('0x38')]['ids'][_0xf900('0x3f')];_0x5bdaad+=0x1){socket['emit'](_0xf900('0xac'),{'UserId':_0x4de72f[_0xf900('0x38')][_0xf900('0x5b')][_0x5bdaad],'FaxAccountId':_0x4de72f[_0xf900('0x4f')]['id']});}}else{socket[_0xf900('0xa9')](_0xf900('0xac'),{'UserId':_0x4de72f['query'][_0xf900('0x5b')],'FaxAccountId':_0x4de72f[_0xf900('0x4f')]['id']});}});}})['then'](respondWithStatusCode(_0x36ae2d,null))[_0xf900('0x4d')](handleError(_0x36ae2d,null));};exports[_0xf900('0xad')]=function(_0x4e383f,_0x5e218d,_0x536471){var _0x576ae9={};var _0x2866c4={};var _0x2548e8;var _0x4cb395;return db[_0xf900('0x34')][_0xf900('0x56')]({'where':{'id':_0x4e383f[_0xf900('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5e218d,null))[_0xf900('0x1c')](function(_0x356484){if(_0x356484){_0x2548e8=_0x356484;_0x2866c4['model']=_[_0xf900('0x37')](db[_0xf900('0xae')][_0xf900('0x35')]);_0x2866c4['query']=_[_0xf900('0x37')](_0x4e383f[_0xf900('0x38')]);_0x2866c4[_0xf900('0x3b')]=_[_0xf900('0x3c')](_0x2866c4[_0xf900('0x36')],_0x2866c4['query']);_0x576ae9[_0xf900('0x3d')]=_[_0xf900('0x3c')](_0x2866c4['model'],qs[_0xf900('0x3e')](_0x4e383f[_0xf900('0x38')][_0xf900('0x3e')]));_0x576ae9['attributes']=_0x576ae9['attributes'][_0xf900('0x3f')]?_0x576ae9[_0xf900('0x3d')]:_0x2866c4[_0xf900('0x36')];_0x576ae9[_0xf900('0x41')]=qs[_0xf900('0x42')](_0x4e383f['query']['sort']);_0x576ae9[_0xf900('0x43')]=qs[_0xf900('0x3b')](_[_0xf900('0x44')](_0x4e383f[_0xf900('0x38')],_0x2866c4[_0xf900('0x3b')]));if(_0x4e383f['query'][_0xf900('0x48')]){_0x576ae9[_0xf900('0x43')]=_[_0xf900('0x46')](_0x576ae9[_0xf900('0x43')],{'$or':_['map'](_0x576ae9[_0xf900('0x3d')],function(_0x32045b){var _0x485b68={};_0x485b68[_0x32045b]={'$like':'%'+_0x4e383f[_0xf900('0x38')][_0xf900('0x48')]+'%'};return _0x485b68;})});}_0x576ae9=_[_0xf900('0x46')]({},_0x576ae9,_0x4e383f[_0xf900('0x49')]);return _0x2548e8[_0xf900('0xad')](_0x576ae9);}})[_0xf900('0x1c')](function(_0x4809a6){if(_0x4809a6){_0x4cb395=_0x4809a6[_0xf900('0x3f')];if(!_0x4e383f[_0xf900('0x38')][_0xf900('0x40')](_0xf900('0x57'))){_0x576ae9[_0xf900('0x58')]=qs[_0xf900('0x58')](_0x4e383f[_0xf900('0x38')][_0xf900('0x58')]);_0x576ae9['offset']=qs[_0xf900('0x2b')](_0x4e383f['query'][_0xf900('0x2b')]);}return _0x2548e8[_0xf900('0xad')](_0x576ae9);}})['then'](function(_0x1b9877){if(_0x1b9877){return _0x1b9877?{'count':_0x4cb395,'rows':_0x1b9877}:null;}})['then'](respondWithResult(_0x5e218d,null))['catch'](handleError(_0x5e218d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf807=['hook','exports','events','../../mysqldb','FaxAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x1e172a,_0x52102b){var _0x96338b=function(_0x307313){while(--_0x307313){_0x1e172a['push'](_0x1e172a['shift']());}};_0x96338b(++_0x52102b);}(_0xf807,0x12b));var _0x7f80=function(_0x4e33c0,_0x555fda){_0x4e33c0=_0x4e33c0-0x0;var _0x1f7aa3=_0xf807[_0x4e33c0];return _0x1f7aa3;};'use strict';var EventEmitter=require(_0x7f80('0x0'));var FaxAccount=require(_0x7f80('0x1'))['db'][_0x7f80('0x2')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x7f80('0x3')](0x0);var events={'afterCreate':_0x7f80('0x4'),'afterUpdate':_0x7f80('0x5'),'afterDestroy':_0x7f80('0x6')};function emitEvent(_0x400a07){return function(_0x52da96,_0x10fcd8,_0x17a45d){FaxAccountEvents[_0x7f80('0x7')](_0x400a07+':'+_0x52da96['id'],_0x52da96);FaxAccountEvents[_0x7f80('0x7')](_0x400a07,_0x52da96);_0x17a45d(null);};}for(var e in events){if(events[_0x7f80('0x8')](e)){var event=events[e];FaxAccount[_0x7f80('0x9')](e,emitEvent(event));}}module[_0x7f80('0xa')]=FaxAccountEvents;
\ No newline at end of file
+var _0x6446=['../../mysqldb','FaxAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports'];(function(_0x3c211c,_0x7291c9){var _0x3e960a=function(_0x181d01){while(--_0x181d01){_0x3c211c['push'](_0x3c211c['shift']());}};_0x3e960a(++_0x7291c9);}(_0x6446,0x1c2));var _0x6644=function(_0x1d0e07,_0x2037e9){_0x1d0e07=_0x1d0e07-0x0;var _0x8912e0=_0x6446[_0x1d0e07];return _0x8912e0;};'use strict';var EventEmitter=require('events');var FaxAccount=require(_0x6644('0x0'))['db'][_0x6644('0x1')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x6644('0x2')](0x0);var events={'afterCreate':_0x6644('0x3'),'afterUpdate':_0x6644('0x4'),'afterDestroy':_0x6644('0x5')};function emitEvent(_0xedfd60){return function(_0x6cd359,_0x3b4bcd,_0x47505f){FaxAccountEvents[_0x6644('0x6')](_0xedfd60+':'+_0x6cd359['id'],_0x6cd359);FaxAccountEvents[_0x6644('0x6')](_0xedfd60,_0x6cd359);_0x47505f(null);};}for(var e in events){if(events[_0x6644('0x7')](e)){var event=events[e];FaxAccount['hook'](e,emitEvent(event));}}module[_0x6644('0x8')]=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb16=['define','FaxAccount','fax_accounts','lodash','util','moment','bluebird','exports'];(function(_0x28c608,_0x432ee1){var _0x3ace3e=function(_0xea6cf7){while(--_0xea6cf7){_0x28c608['push'](_0x28c608['shift']());}};_0x3ace3e(++_0x432ee1);}(_0xdb16,0x1b3));var _0x6db1=function(_0x4f8b44,_0x4eda31){_0x4f8b44=_0x4f8b44-0x0;var _0x45727b=_0xdb16[_0x4f8b44];return _0x45727b;};'use strict';var _=require(_0x6db1('0x0'));var util=require(_0x6db1('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x6db1('0x2'));var BPromise=require(_0x6db1('0x3'));var rp=require('request-promise');var attributes=require('./faxAccount.attributes');module[_0x6db1('0x4')]=function(_0x44fdfe,_0x1fa262){return _0x44fdfe[_0x6db1('0x5')](_0x6db1('0x6'),attributes,{'tableName':_0x6db1('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb885=['request-promise','FaxAccount','../../config/logger','api','moment','bluebird'];(function(_0x1c0d44,_0x239c1b){var _0x354d48=function(_0x2bcaf1){while(--_0x2bcaf1){_0x1c0d44['push'](_0x1c0d44['shift']());}};_0x354d48(++_0x239c1b);}(_0xb885,0x7a));var _0x5b88=function(_0x3c6b7d,_0x5f0d90){_0x3c6b7d=_0x3c6b7d-0x0;var _0x1d3ed2=_0xb885[_0x3c6b7d];return _0x1d3ed2;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5b88('0x0'))(_0x5b88('0x1'));var moment=require(_0x5b88('0x2'));var BPromise=require(_0x5b88('0x3'));var rp=require(_0x5b88('0x4'));var attributes=require('./faxAccount.attributes');module['exports']=function(_0x44c63c,_0x28d1a2){return _0x44c63c['define'](_0x5b88('0x5'),attributes,{'tableName':'fax_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['from','find','account','CmList','CmContact','Contacts','DESC','FaxApplication','Applications','List','get','applications','list','orderBy','priority','asc','length','ListId','create','contact','FaxInteraction','Contact\x20not\x20found','autoclose','push','close','unmanaged','*,*,*,*','FaxMessage','ContactId','UserId','User','interaction','unshift','name','waitForTheAssignedAgent','Start','lodash','util','moment','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','request','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxAccount,\x20%s,\x20%s','message','result','catch','GetFaxAccount','FaxAccount','options','attributes','limit','include','map','model','then','info','NotifyFaxAccount','body','fax','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','updatedAt','createdAt','CompanyId','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2160a9,_0x3cbd9e){_0x2160a9=_0x2160a9-0x0;var _0xa88cf7=_0xa9e0[_0x2160a9];return _0xa88cf7;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x0a9e('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x0a9e('0x4'))(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var jayson=require(_0x0a9e('0x7'));var client=jayson[_0x0a9e('0x8')]['http']({'port':0x232c});config[_0x0a9e('0x9')]=_[_0x0a9e('0xa')](config[_0x0a9e('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(config[_0x0a9e('0x9')]);require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x39753a,_0xf81284,_0x307b3e){return new BPromise(function(_0x3ab53f,_0xfeb75b){return client[_0x0a9e('0xb')](_0x39753a,_0x307b3e)['then'](function(_0x50dfb2){logger['info']('FaxAccount,\x20%s,\x20%s',_0xf81284,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0xf81284,_0x0a9e('0xc'),JSON[_0x0a9e('0xf')](_0x50dfb2));if(_0x50dfb2[_0x0a9e('0x10')]){if(_0x50dfb2['error'][_0x0a9e('0x11')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0x12'),_0xf81284,_0x50dfb2[_0x0a9e('0x10')][_0x0a9e('0x13')]);return _0xfeb75b(_0x50dfb2[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')]('FaxAccount,\x20%s,\x20%s',_0xf81284,_0x50dfb2[_0x0a9e('0x10')]['message']);return _0x3ab53f(_0x50dfb2[_0x0a9e('0x10')][_0x0a9e('0x13')]);}else{logger['info'](_0x0a9e('0x12'),_0xf81284,'request\x20sent');_0x3ab53f(_0x50dfb2[_0x0a9e('0x14')][_0x0a9e('0x13')]);}})[_0x0a9e('0x15')](function(_0x205fd6){logger[_0x0a9e('0x10')](_0x0a9e('0x12'),_0xf81284,_0x205fd6);_0xfeb75b(_0x205fd6);});});}exports[_0x0a9e('0x16')]=function(_0x20559e){var _0x1314ae=this;return new Promise(function(_0x112016,_0x1c696a){return db[_0x0a9e('0x17')]['findAll']({'raw':_0x20559e[_0x0a9e('0x18')]?_0x20559e[_0x0a9e('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x20559e[_0x0a9e('0x18')]?_0x20559e['options']['where']||null:null,'attributes':_0x20559e[_0x0a9e('0x18')]?_0x20559e[_0x0a9e('0x18')][_0x0a9e('0x19')]||null:null,'limit':_0x20559e[_0x0a9e('0x18')]?_0x20559e['options'][_0x0a9e('0x1a')]||null:null,'include':_0x20559e[_0x0a9e('0x18')]?_0x20559e[_0x0a9e('0x18')][_0x0a9e('0x1b')]?_[_0x0a9e('0x1c')](_0x20559e[_0x0a9e('0x18')][_0x0a9e('0x1b')],function(_0x5ea472){return{'model':db[_0x5ea472['model']],'as':_0x5ea472['as'],'attributes':_0x5ea472[_0x0a9e('0x19')],'include':_0x5ea472[_0x0a9e('0x1b')]?_[_0x0a9e('0x1c')](_0x5ea472[_0x0a9e('0x1b')],function(_0x526cf3){return{'model':db[_0x526cf3[_0x0a9e('0x1d')]],'as':_0x526cf3['as'],'attributes':_0x526cf3['attributes'],'include':_0x526cf3[_0x0a9e('0x1b')]?_['map'](_0x526cf3[_0x0a9e('0x1b')],function(_0x34dc65){return{'model':db[_0x34dc65[_0x0a9e('0x1d')]],'as':_0x34dc65['as'],'attributes':_0x34dc65[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x1e')](function(_0x1538a4){logger[_0x0a9e('0x1f')](_0x0a9e('0x16'),_0x20559e);logger['debug'](_0x0a9e('0x16'),_0x20559e,JSON[_0x0a9e('0xf')](_0x1538a4));_0x112016(_0x1538a4);})[_0x0a9e('0x15')](function(_0x2ec755){logger['error'](_0x0a9e('0x16'),_0x2ec755[_0x0a9e('0x13')],_0x20559e);_0x1c696a(_0x1314ae[_0x0a9e('0x10')](0x1f4,_0x2ec755[_0x0a9e('0x13')]));});});};exports[_0x0a9e('0x20')]=function(_0x563b45,_0x296f41,_0x2e8759){var _0x1dbde2=this;return new Promise(function(_0x540530,_0x426950){var _0x5d1e0e={'body':_0x563b45[_0x0a9e('0x21')],'channel':_0x0a9e('0x22')};var _0x1122db=[];var _0x33bdb7=[];var _0x25ce3a={};return db['CmContact'][_0x0a9e('0x23')]()[_0x0a9e('0x1e')](function(_0x40cb85){if(!_0x40cb85){throw new db[(_0x0a9e('0x24'))][(_0x0a9e('0x25'))](_0x0a9e('0x26'));}_0x1122db=_[_0x0a9e('0x27')](_[_0x0a9e('0x28')](_0x40cb85),['createdAt',_0x0a9e('0x29')]);_0x33bdb7=_['difference'](_[_0x0a9e('0x28')](_0x40cb85),[_0x0a9e('0x2a'),_0x0a9e('0x29'),_0x0a9e('0x2b'),'ListId']);if(_0x563b45[_0x0a9e('0x21')]['id']){delete _0x563b45[_0x0a9e('0x21')]['id'];}if(_[_0x0a9e('0x2c')](_0x563b45[_0x0a9e('0x21')]['from'])){throw new db['Sequelize'][(_0x0a9e('0x25'))]('from\x20is\x20mandatory');}if(_[_0x0a9e('0x2c')](_0x563b45[_0x0a9e('0x21')][_0x0a9e('0x21')])||_0x563b45[_0x0a9e('0x21')]['body']===''){throw new db[(_0x0a9e('0x24'))][(_0x0a9e('0x25'))](_0x0a9e('0x2d'));}if(_['isNil'](_0x563b45[_0x0a9e('0x21')][_0x0a9e('0x2e')])){throw new db[(_0x0a9e('0x24'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x33bdb7);}if(!_[_0x0a9e('0x2f')](_0x33bdb7,_0x563b45[_0x0a9e('0x21')]['mapKey'])){throw new db[(_0x0a9e('0x24'))][(_0x0a9e('0x25'))](_0x0a9e('0x30')+_0x33bdb7);}_0x25ce3a[_0x563b45[_0x0a9e('0x21')]['mapKey']]=_0x563b45['body'][_0x0a9e('0x31')];})[_0x0a9e('0x1e')](function(){return db['FaxAccount'][_0x0a9e('0x32')]({'where':{'id':_0x563b45[_0x0a9e('0x33')]['id']},'include':[{'model':db[_0x0a9e('0x34')],'as':'List','include':[{'model':db[_0x0a9e('0x35')],'as':_0x0a9e('0x36'),'where':_0x25ce3a,'limit':0x1,'order':[[_0x0a9e('0x29'),_0x0a9e('0x37')]]}]},{'model':db[_0x0a9e('0x38')],'as':_0x0a9e('0x39')}]});})[_0x0a9e('0x1e')](function(_0x45a9b8){if(_0x45a9b8&&_0x45a9b8[_0x0a9e('0x3a')]){var _0x3da2cd=_0x45a9b8[_0x0a9e('0x3b')]({'plain':!![]});_0x5d1e0e[_0x0a9e('0x33')]=_0x3da2cd;_0x5d1e0e[_0x0a9e('0x3c')]=_0x3da2cd[_0x0a9e('0x39')];_0x5d1e0e[_0x0a9e('0x3d')]=_0x3da2cd['List'];_0x5d1e0e['applications']=_[_0x0a9e('0x3e')](_0x5d1e0e[_0x0a9e('0x3c')],[_0x0a9e('0x3f')],[_0x0a9e('0x40')]);if(_0x5d1e0e[_0x0a9e('0x33')][_0x0a9e('0x39')]){delete _0x5d1e0e[_0x0a9e('0x33')][_0x0a9e('0x39')];}if(_0x5d1e0e[_0x0a9e('0x33')][_0x0a9e('0x3a')]&&_0x5d1e0e[_0x0a9e('0x33')][_0x0a9e('0x3a')]['Contacts'][_0x0a9e('0x41')]){return _0x5d1e0e[_0x0a9e('0x33')][_0x0a9e('0x3a')][_0x0a9e('0x36')][0x0];}var _0x2e8caf=_[_0x0a9e('0xa')](_0x563b45[_0x0a9e('0x21')],{'firstName':_0x563b45[_0x0a9e('0x21')]['from'],'ListId':_0x3da2cd[_0x0a9e('0x42')]});_0x2e8caf[_0x563b45['body'][_0x0a9e('0x2e')]]=_0x563b45[_0x0a9e('0x21')][_0x0a9e('0x31')];return db['CmContact'][_0x0a9e('0x43')](_0x2e8caf,{'fields':_0x1122db,'raw':!![]});}})[_0x0a9e('0x1e')](function(_0x4774f4){_0x5d1e0e[_0x0a9e('0x44')]=_0x4774f4;if(_0x4774f4){var _0x45c845={'ContactId':_0x4774f4['id'],'FaxAccountId':_0x563b45[_0x0a9e('0x33')]['id'],'fax':_0x4774f4[_0x0a9e('0x22')]};return db['FaxInteraction'][_0x0a9e('0x32')]({'where':{'ContactId':_0x4774f4['id'],'closed':![],'FaxAccountId':_0x563b45[_0x0a9e('0x33')]['id']}})[_0x0a9e('0x1e')](function(_0x16f976){if(_0x16f976){return[_0x16f976,![]];}return db[_0x0a9e('0x45')][_0x0a9e('0x43')](_0x45c845)[_0x0a9e('0x1e')](function(_0x19383e){return[_0x19383e,!![]];});});}else{throw new Error(_0x0a9e('0x46'));}})['spread'](function(_0xe401a,_0x3fe430){var _0x4f7240=_0xe401a['get']({'plain':!![]});if(_0x3fe430){if(_0x5d1e0e['account'][_0x0a9e('0x47')]){_0x5d1e0e[_0x0a9e('0x3c')][_0x0a9e('0x48')]({'id':0x0,'priority':_0x5d1e0e[_0x0a9e('0x3c')][_0x0a9e('0x41')]+0x1,'app':_0x0a9e('0x49'),'appdata':_0x0a9e('0x4a'),'interval':_0x0a9e('0x4b')});}_0x4f7240['created']=!![];}else{_0x4f7240['created']=![];}_0x5d1e0e['interaction']=_0x4f7240;return db[_0x0a9e('0x4c')][_0x0a9e('0x43')]({'body':_0x563b45[_0x0a9e('0x21')]['body'],'FaxAccountId':_0x563b45[_0x0a9e('0x33')]['id'],'FaxInteractionId':_0xe401a['id'],'direction':'in','ContactId':_0xe401a[_0x0a9e('0x4d')],'AttachmentId':_0x563b45['body']['AttachmentId']});})[_0x0a9e('0x1e')](function(_0x59c6ff){_0x5d1e0e[_0x0a9e('0x13')]=_0x59c6ff;if(_0x5d1e0e['interaction'][_0x0a9e('0x4e')]){return db[_0x0a9e('0x4f')][_0x0a9e('0x32')]({'attributes':['id','name'],'where':{'id':_0x5d1e0e[_0x0a9e('0x50')][_0x0a9e('0x4e')]}})['then'](function(_0x50f687){if(_0x50f687){_0x5d1e0e[_0x0a9e('0x3c')][_0x0a9e('0x51')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x50f687[_0x0a9e('0x52')]+','+(_0x5d1e0e['account'][_0x0a9e('0x53')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x0a9e('0x54'),'startRouting',_0x5d1e0e);});}return respondWithRpcPromise('Start','startRouting',_0x5d1e0e);})[_0x0a9e('0x1e')](function(_0x47de4c){_0x540530(_0x47de4c);})[_0x0a9e('0x15')](function(_0x65432){_0x426950(_0x1dbde2[_0x0a9e('0x10')](0x1f4,_0x65432[_0x0a9e('0x13')]));});});};
\ No newline at end of file
+var _0xc891=['debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetFaxAccount','FaxAccount','options','raw','limit','include','map','attributes','model','then','NotifyFaxAccount','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','createdAt','keys','updatedAt','CompanyId','ListId','body','from','from\x20is\x20mandatory','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','DESC','Applications','get','applications','orderBy','priority','asc','Contacts','length','create','find','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','UserId','User','unshift','agent','name','waitForTheAssignedAgent','Start','startRouting','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','request','info','FaxAccount,\x20%s,\x20%s','request\x20sent'];(function(_0x26a1e0,_0xde66fa){var _0x2fadb0=function(_0x24f002){while(--_0x24f002){_0x26a1e0['push'](_0x26a1e0['shift']());}};_0x2fadb0(++_0xde66fa);}(_0xc891,0x152));var _0x1c89=function(_0x2cf2e9,_0xd58ea1){_0x2cf2e9=_0x2cf2e9-0x0;var _0xd3670d=_0xc891[_0x2cf2e9];return _0xd3670d;};'use strict';var _=require(_0x1c89('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x1c89('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1c89('0x2'));var db=require(_0x1c89('0x3'))['db'];var utils=require(_0x1c89('0x4'));var logger=require('../../config/logger')(_0x1c89('0x5'));var config=require(_0x1c89('0x6'));var jayson=require(_0x1c89('0x7'));var client=jayson[_0x1c89('0x8')]['http']({'port':0x232c});config[_0x1c89('0x9')]=_[_0x1c89('0xa')](config['redis'],{'host':_0x1c89('0xb'),'port':0x18eb});var socket=require(_0x1c89('0xc'))(new Redis(config['redis']));require(_0x1c89('0xd'))['register'](socket);function respondWithRpcPromise(_0x21f69d,_0x4a9ffa,_0x4b57fc){return new BPromise(function(_0x4c69e3,_0x478ca1){return client[_0x1c89('0xe')](_0x21f69d,_0x4b57fc)['then'](function(_0x289f67){logger[_0x1c89('0xf')](_0x1c89('0x10'),_0x4a9ffa,_0x1c89('0x11'));logger[_0x1c89('0x12')](_0x1c89('0x13'),_0x4a9ffa,_0x1c89('0x11'),JSON[_0x1c89('0x14')](_0x289f67));if(_0x289f67['error']){if(_0x289f67[_0x1c89('0x15')]['code']===0x1f4){logger[_0x1c89('0x15')](_0x1c89('0x10'),_0x4a9ffa,_0x289f67[_0x1c89('0x15')]['message']);return _0x478ca1(_0x289f67[_0x1c89('0x15')][_0x1c89('0x16')]);}logger[_0x1c89('0x15')]('FaxAccount,\x20%s,\x20%s',_0x4a9ffa,_0x289f67[_0x1c89('0x15')][_0x1c89('0x16')]);return _0x4c69e3(_0x289f67[_0x1c89('0x15')][_0x1c89('0x16')]);}else{logger[_0x1c89('0xf')](_0x1c89('0x10'),_0x4a9ffa,_0x1c89('0x11'));_0x4c69e3(_0x289f67[_0x1c89('0x17')][_0x1c89('0x16')]);}})[_0x1c89('0x18')](function(_0x2d2e23){logger['error'](_0x1c89('0x10'),_0x4a9ffa,_0x2d2e23);_0x478ca1(_0x2d2e23);});});}exports[_0x1c89('0x19')]=function(_0x4c9069){var _0xdb5b03=this;return new Promise(function(_0x3b43a3,_0x14121c){return db[_0x1c89('0x1a')]['findAll']({'raw':_0x4c9069['options']?_0x4c9069[_0x1c89('0x1b')][_0x1c89('0x1c')]===undefined?!![]:![]:!![],'where':_0x4c9069[_0x1c89('0x1b')]?_0x4c9069[_0x1c89('0x1b')]['where']||null:null,'attributes':_0x4c9069[_0x1c89('0x1b')]?_0x4c9069[_0x1c89('0x1b')]['attributes']||null:null,'limit':_0x4c9069[_0x1c89('0x1b')]?_0x4c9069[_0x1c89('0x1b')][_0x1c89('0x1d')]||null:null,'include':_0x4c9069['options']?_0x4c9069[_0x1c89('0x1b')][_0x1c89('0x1e')]?_[_0x1c89('0x1f')](_0x4c9069['options'][_0x1c89('0x1e')],function(_0x49f69b){return{'model':db[_0x49f69b['model']],'as':_0x49f69b['as'],'attributes':_0x49f69b[_0x1c89('0x20')],'include':_0x49f69b[_0x1c89('0x1e')]?_['map'](_0x49f69b['include'],function(_0x50868f){return{'model':db[_0x50868f[_0x1c89('0x21')]],'as':_0x50868f['as'],'attributes':_0x50868f['attributes'],'include':_0x50868f['include']?_[_0x1c89('0x1f')](_0x50868f['include'],function(_0x193d8d){return{'model':db[_0x193d8d['model']],'as':_0x193d8d['as'],'attributes':_0x193d8d['attributes']};}):[]};}):[]};}):[]:[]})[_0x1c89('0x22')](function(_0x10dc12){logger[_0x1c89('0xf')]('GetFaxAccount',_0x4c9069);logger[_0x1c89('0x12')](_0x1c89('0x19'),_0x4c9069,JSON['stringify'](_0x10dc12));_0x3b43a3(_0x10dc12);})[_0x1c89('0x18')](function(_0x545e37){logger[_0x1c89('0x15')](_0x1c89('0x19'),_0x545e37[_0x1c89('0x16')],_0x4c9069);_0x14121c(_0xdb5b03[_0x1c89('0x15')](0x1f4,_0x545e37[_0x1c89('0x16')]));});});};exports[_0x1c89('0x23')]=function(_0x3a0190,_0x4222e7,_0x1c0b67){var _0x192b86=this;return new Promise(function(_0x5f582a,_0x345453){var _0x5204b1={'body':_0x3a0190['body'],'channel':_0x1c89('0x24')};var _0x1a5af9=[];var _0x22810f=[];var _0xa9e895={};return db[_0x1c89('0x25')][_0x1c89('0x26')]()[_0x1c89('0x22')](function(_0x51be1f){if(!_0x51be1f){throw new db[(_0x1c89('0x27'))][(_0x1c89('0x28'))](_0x1c89('0x29'));}_0x1a5af9=_['difference'](_['keys'](_0x51be1f),[_0x1c89('0x2a'),'updatedAt']);_0x22810f=_['difference'](_[_0x1c89('0x2b')](_0x51be1f),[_0x1c89('0x2a'),_0x1c89('0x2c'),_0x1c89('0x2d'),_0x1c89('0x2e')]);if(_0x3a0190[_0x1c89('0x2f')]['id']){delete _0x3a0190[_0x1c89('0x2f')]['id'];}if(_['isNil'](_0x3a0190[_0x1c89('0x2f')][_0x1c89('0x30')])){throw new db['Sequelize'][(_0x1c89('0x28'))](_0x1c89('0x31'));}if(_[_0x1c89('0x32')](_0x3a0190[_0x1c89('0x2f')][_0x1c89('0x2f')])||_0x3a0190['body'][_0x1c89('0x2f')]===''){throw new db[(_0x1c89('0x27'))][(_0x1c89('0x28'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x1c89('0x32')](_0x3a0190['body'][_0x1c89('0x33')])){throw new db['Sequelize'][(_0x1c89('0x28'))](_0x1c89('0x34')+_0x22810f);}if(!_[_0x1c89('0x35')](_0x22810f,_0x3a0190[_0x1c89('0x2f')][_0x1c89('0x33')])){throw new db[(_0x1c89('0x27'))][(_0x1c89('0x28'))](_0x1c89('0x36')+_0x22810f);}_0xa9e895[_0x3a0190[_0x1c89('0x2f')]['mapKey']]=_0x3a0190[_0x1c89('0x2f')][_0x1c89('0x30')];})[_0x1c89('0x22')](function(){return db[_0x1c89('0x1a')]['find']({'where':{'id':_0x3a0190[_0x1c89('0x37')]['id']},'include':[{'model':db[_0x1c89('0x38')],'as':_0x1c89('0x39'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0xa9e895,'limit':0x1,'order':[[_0x1c89('0x2c'),_0x1c89('0x3a')]]}]},{'model':db['FaxApplication'],'as':_0x1c89('0x3b')}]});})[_0x1c89('0x22')](function(_0x18bb25){if(_0x18bb25&&_0x18bb25[_0x1c89('0x39')]){var _0x1ed4de=_0x18bb25[_0x1c89('0x3c')]({'plain':!![]});_0x5204b1[_0x1c89('0x37')]=_0x1ed4de;_0x5204b1['applications']=_0x1ed4de[_0x1c89('0x3b')];_0x5204b1['list']=_0x1ed4de['List'];_0x5204b1[_0x1c89('0x3d')]=_[_0x1c89('0x3e')](_0x5204b1[_0x1c89('0x3d')],[_0x1c89('0x3f')],[_0x1c89('0x40')]);if(_0x5204b1[_0x1c89('0x37')][_0x1c89('0x3b')]){delete _0x5204b1[_0x1c89('0x37')][_0x1c89('0x3b')];}if(_0x5204b1[_0x1c89('0x37')][_0x1c89('0x39')]&&_0x5204b1[_0x1c89('0x37')][_0x1c89('0x39')][_0x1c89('0x41')][_0x1c89('0x42')]){return _0x5204b1[_0x1c89('0x37')]['List'][_0x1c89('0x41')][0x0];}var _0x4dbb87=_['defaults'](_0x3a0190[_0x1c89('0x2f')],{'firstName':_0x3a0190['body']['from'],'ListId':_0x1ed4de[_0x1c89('0x2e')]});_0x4dbb87[_0x3a0190[_0x1c89('0x2f')][_0x1c89('0x33')]]=_0x3a0190['body'][_0x1c89('0x30')];return db['CmContact'][_0x1c89('0x43')](_0x4dbb87,{'fields':_0x1a5af9,'raw':!![]});}})['then'](function(_0x1cbe55){_0x5204b1['contact']=_0x1cbe55;if(_0x1cbe55){var _0x36d5fc={'ContactId':_0x1cbe55['id'],'FaxAccountId':_0x3a0190[_0x1c89('0x37')]['id'],'fax':_0x1cbe55[_0x1c89('0x24')]};return db['FaxInteraction'][_0x1c89('0x44')]({'where':{'ContactId':_0x1cbe55['id'],'closed':![],'FaxAccountId':_0x3a0190[_0x1c89('0x37')]['id']}})['then'](function(_0x4b589d){if(_0x4b589d){return[_0x4b589d,![]];}return db[_0x1c89('0x45')][_0x1c89('0x43')](_0x36d5fc)[_0x1c89('0x22')](function(_0x3cc93e){return[_0x3cc93e,!![]];});});}else{throw new Error(_0x1c89('0x46'));}})[_0x1c89('0x47')](function(_0x61a238,_0x1cbf0b){var _0x34fea6=_0x61a238[_0x1c89('0x3c')]({'plain':!![]});if(_0x1cbf0b){if(_0x5204b1[_0x1c89('0x37')][_0x1c89('0x48')]){_0x5204b1[_0x1c89('0x3d')][_0x1c89('0x49')]({'id':0x0,'priority':_0x5204b1[_0x1c89('0x3d')][_0x1c89('0x42')]+0x1,'app':_0x1c89('0x4a'),'appdata':_0x1c89('0x4b'),'interval':_0x1c89('0x4c')});}_0x34fea6[_0x1c89('0x4d')]=!![];}else{_0x34fea6['created']=![];}_0x5204b1[_0x1c89('0x4e')]=_0x34fea6;return db[_0x1c89('0x4f')][_0x1c89('0x43')]({'body':_0x3a0190[_0x1c89('0x2f')][_0x1c89('0x2f')],'FaxAccountId':_0x3a0190[_0x1c89('0x37')]['id'],'FaxInteractionId':_0x61a238['id'],'direction':'in','ContactId':_0x61a238[_0x1c89('0x50')],'AttachmentId':_0x3a0190[_0x1c89('0x2f')]['AttachmentId']});})[_0x1c89('0x22')](function(_0x34b4d2){_0x5204b1[_0x1c89('0x16')]=_0x34b4d2;if(_0x5204b1['interaction'][_0x1c89('0x51')]){return db[_0x1c89('0x52')][_0x1c89('0x44')]({'attributes':['id','name'],'where':{'id':_0x5204b1[_0x1c89('0x4e')][_0x1c89('0x51')]}})['then'](function(_0x59e0eb){if(_0x59e0eb){_0x5204b1['applications'][_0x1c89('0x53')]({'id':0x0,'priority':0x0,'app':_0x1c89('0x54'),'appdata':_0x59e0eb[_0x1c89('0x55')]+','+(_0x5204b1[_0x1c89('0x37')][_0x1c89('0x56')]||0xa),'interval':_0x1c89('0x4c')});}return respondWithRpcPromise(_0x1c89('0x57'),'startRouting',_0x5204b1);});}return respondWithRpcPromise('Start',_0x1c89('0x58'),_0x5204b1);})[_0x1c89('0x22')](function(_0x236824){_0x5f582a(_0x236824);})[_0x1c89('0x18')](function(_0x391d91){_0x345453(_0x192b86[_0x1c89('0x15')](0x1f4,_0x391d91[_0x1c89('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa849=['faxAccount:','./faxAccount.events','save','remove','update','emit','removeListener','length'];(function(_0x2d823b,_0x5f01e2){var _0x1b7f79=function(_0x1f828b){while(--_0x1f828b){_0x2d823b['push'](_0x2d823b['shift']());}};_0x1b7f79(++_0x5f01e2);}(_0xa849,0xa9));var _0x9a84=function(_0x3944b3,_0xf05375){_0x3944b3=_0x3944b3-0x0;var _0xbf7a53=_0xa849[_0x3944b3];return _0xbf7a53;};'use strict';var FaxAccountEvents=require(_0x9a84('0x0'));var events=[_0x9a84('0x1'),_0x9a84('0x2'),_0x9a84('0x3')];function createListener(_0x5e6266,_0x2fec32){return function(_0x531199){_0x2fec32[_0x9a84('0x4')](_0x5e6266,_0x531199);};}function removeListener(_0x3b5d03,_0x47b3da){return function(){FaxAccountEvents[_0x9a84('0x5')](_0x3b5d03,_0x47b3da);};}exports['register']=function(_0xb5b26f){for(var _0x463d4b=0x0,_0x40638f=events[_0x9a84('0x6')];_0x463d4b<_0x40638f;_0x463d4b++){var _0x4a1e68=events[_0x463d4b];var _0x21091f=createListener(_0x9a84('0x7')+_0x4a1e68,_0xb5b26f);FaxAccountEvents['on'](_0x4a1e68,_0x21091f);}};
\ No newline at end of file
+var _0x7c46=['length','save','remove','update','removeListener'];(function(_0x4c750d,_0x43e498){var _0x87c835=function(_0x953868){while(--_0x953868){_0x4c750d['push'](_0x4c750d['shift']());}};_0x87c835(++_0x43e498);}(_0x7c46,0x12d));var _0x67c4=function(_0x1aa910,_0x27f9fa){_0x1aa910=_0x1aa910-0x0;var _0x1518bb=_0x7c46[_0x1aa910];return _0x1518bb;};'use strict';var FaxAccountEvents=require('./faxAccount.events');var events=[_0x67c4('0x0'),_0x67c4('0x1'),_0x67c4('0x2')];function createListener(_0x3ca602,_0x3e9409){return function(_0x55a18a){_0x3e9409['emit'](_0x3ca602,_0x55a18a);};}function removeListener(_0x566156,_0x17ad46){return function(){FaxAccountEvents[_0x67c4('0x3')](_0x566156,_0x17ad46);};}exports['register']=function(_0x5c80e8){for(var _0x1f1e6e=0x0,_0x1e1317=events[_0x67c4('0x4')];_0x1f1e6e<_0x1e1317;_0x1f1e6e++){var _0xdb72fa=events[_0x1f1e6e];var _0x314dab=createListener('faxAccount:'+_0xdb72fa,_0x5c80e8);FaxAccountEvents['on'](_0xdb72fa,_0x314dab);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a13=['addApplications','/addaccountapplications','addAccountApplications','/updateaccountapplications','updateAccountApplications','/:id/send','send','/:id/users','addAgents','put','update','delete','destroy','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./faxAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/interactions','getInteractions','/:id/applications','getApplications','/:id/messages','getMessages','create','post','addDisposition','addInteraction'];(function(_0x207574,_0x5caeda){var _0x4c2f17=function(_0x352c6b){while(--_0x352c6b){_0x207574['push'](_0x207574['shift']());}};_0x4c2f17(++_0x5caeda);}(_0x7a13,0x97));var _0x37a1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7a13[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x37a1('0x0'));var util=require(_0x37a1('0x1'));var path=require(_0x37a1('0x2'));var timeout=require(_0x37a1('0x3'));var express=require(_0x37a1('0x4'));var router=express['Router']();var auth=require(_0x37a1('0x5'));var interaction=require(_0x37a1('0x6'));var config=require('../../config/environment');var controller=require(_0x37a1('0x7'));router[_0x37a1('0x8')]('/',auth[_0x37a1('0x9')](),controller[_0x37a1('0xa')]);router[_0x37a1('0x8')](_0x37a1('0xb'),auth['isAuthenticated'](),controller[_0x37a1('0xc')]);router[_0x37a1('0x8')](_0x37a1('0xd'),auth['isAuthenticated'](),controller[_0x37a1('0xe')]);router[_0x37a1('0x8')](_0x37a1('0xf'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x10')]);router[_0x37a1('0x8')](_0x37a1('0x11'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x12')]);router[_0x37a1('0x8')](_0x37a1('0x13'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x14')]);router[_0x37a1('0x8')](_0x37a1('0x15'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x16')]);router[_0x37a1('0x8')](_0x37a1('0x17'),auth['isAuthenticated'](),controller[_0x37a1('0x18')]);router[_0x37a1('0x8')]('/:id/users',auth[_0x37a1('0x9')](),controller['getAgents']);router['post']('/',auth[_0x37a1('0x9')](),controller[_0x37a1('0x19')]);router[_0x37a1('0x1a')](_0x37a1('0xf'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x1b')]);router[_0x37a1('0x1a')](_0x37a1('0x11'),auth[_0x37a1('0x9')](),controller['addAnswer']);router[_0x37a1('0x1a')]('/:id/interactions',auth['isAuthenticated'](),controller[_0x37a1('0x1c')]);router[_0x37a1('0x1a')](_0x37a1('0x15'),auth['isAuthenticated'](),controller[_0x37a1('0x1d')]);router[_0x37a1('0x1a')](_0x37a1('0x1e'),auth['isAuthenticated'](),controller[_0x37a1('0x1f')]);router[_0x37a1('0x1a')](_0x37a1('0x20'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x21')]);router['post'](_0x37a1('0x22'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x23')]);router[_0x37a1('0x1a')](_0x37a1('0x24'),auth['isAuthenticated'](),controller[_0x37a1('0x25')]);router[_0x37a1('0x26')](_0x37a1('0xd'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x27')]);router[_0x37a1('0x28')](_0x37a1('0xd'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x29')]);router[_0x37a1('0x28')](_0x37a1('0xf'),auth[_0x37a1('0x9')](),controller['removeDispositions']);router[_0x37a1('0x28')](_0x37a1('0x11'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x2a')]);router['delete'](_0x37a1('0x24'),auth[_0x37a1('0x9')](),controller[_0x37a1('0x2b')]);module[_0x37a1('0x2c')]=router;
\ No newline at end of file
+var _0xff3d=['send','addAgents','put','update','destroy','delete','removeDispositions','removeAnswers','exports','multer','util','path','Router','../../components/interaction/service','./faxAccount.controller','get','isAuthenticated','/:id','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/interactions','getInteractions','/:id/applications','getApplications','/:id/messages','getMessages','/:id/users','post','create','addAnswer','addInteraction','/addaccountapplications','addAccountApplications','updateAccountApplications','/:id/send'];(function(_0x1ebc6c,_0x58a00b){var _0x3a826d=function(_0x27d7eb){while(--_0x27d7eb){_0x1ebc6c['push'](_0x1ebc6c['shift']());}};_0x3a826d(++_0x58a00b);}(_0xff3d,0xc2));var _0xdff3=function(_0x223373,_0x200901){_0x223373=_0x223373-0x0;var _0xc9c340=_0xff3d[_0x223373];return _0xc9c340;};'use strict';var multer=require(_0xdff3('0x0'));var util=require(_0xdff3('0x1'));var path=require(_0xdff3('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xdff3('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0xdff3('0x4'));var config=require('../../config/environment');var controller=require(_0xdff3('0x5'));router[_0xdff3('0x6')]('/',auth[_0xdff3('0x7')](),controller['index']);router[_0xdff3('0x6')]('/describe',auth[_0xdff3('0x7')](),controller['describe']);router[_0xdff3('0x6')](_0xdff3('0x8'),auth[_0xdff3('0x7')](),controller['show']);router[_0xdff3('0x6')](_0xdff3('0x9'),auth[_0xdff3('0x7')](),controller[_0xdff3('0xa')]);router['get'](_0xdff3('0xb'),auth[_0xdff3('0x7')](),controller[_0xdff3('0xc')]);router[_0xdff3('0x6')](_0xdff3('0xd'),auth['isAuthenticated'](),controller[_0xdff3('0xe')]);router['get'](_0xdff3('0xf'),auth[_0xdff3('0x7')](),controller[_0xdff3('0x10')]);router[_0xdff3('0x6')](_0xdff3('0x11'),auth['isAuthenticated'](),controller[_0xdff3('0x12')]);router['get'](_0xdff3('0x13'),auth['isAuthenticated'](),controller['getAgents']);router[_0xdff3('0x14')]('/',auth[_0xdff3('0x7')](),controller[_0xdff3('0x15')]);router[_0xdff3('0x14')](_0xdff3('0x9'),auth[_0xdff3('0x7')](),controller['addDisposition']);router[_0xdff3('0x14')]('/:id/canned_answers',auth[_0xdff3('0x7')](),controller[_0xdff3('0x16')]);router[_0xdff3('0x14')]('/:id/interactions',auth[_0xdff3('0x7')](),controller[_0xdff3('0x17')]);router[_0xdff3('0x14')](_0xdff3('0xf'),auth[_0xdff3('0x7')](),controller['addApplications']);router['post'](_0xdff3('0x18'),auth[_0xdff3('0x7')](),controller[_0xdff3('0x19')]);router['post']('/updateaccountapplications',auth[_0xdff3('0x7')](),controller[_0xdff3('0x1a')]);router['post'](_0xdff3('0x1b'),auth[_0xdff3('0x7')](),controller[_0xdff3('0x1c')]);router['post']('/:id/users',auth['isAuthenticated'](),controller[_0xdff3('0x1d')]);router[_0xdff3('0x1e')](_0xdff3('0x8'),auth[_0xdff3('0x7')](),controller[_0xdff3('0x1f')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xdff3('0x20')]);router[_0xdff3('0x21')](_0xdff3('0x9'),auth[_0xdff3('0x7')](),controller[_0xdff3('0x22')]);router[_0xdff3('0x21')](_0xdff3('0xb'),auth[_0xdff3('0x7')](),controller[_0xdff3('0x23')]);router[_0xdff3('0x21')](_0xdff3('0x13'),auth[_0xdff3('0x7')](),controller['removeAgents']);module[_0xdff3('0x24')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa55=['*,*,*,*','exports','INTEGER','STRING','noop'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xaa55,0x1be));var _0x5aa5=function(_0x2fd615,_0x17f667){_0x2fd615=_0x2fd615-0x0;var _0x5f3b0a=_0xaa55[_0x2fd615];return _0x5f3b0a;};'use strict';var Sequelize=require('sequelize');module[_0x5aa5('0x0')]={'priority':{'type':Sequelize[_0x5aa5('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x5aa5('0x2')],'allowNull':![],'defaultValue':_0x5aa5('0x3')},'appdata':{'type':Sequelize[_0x5aa5('0x2')](0x1000),'defaultValue':''},'description':{'type':Sequelize[_0x5aa5('0x2')]},'interval':{'type':Sequelize[_0x5aa5('0x2')],'defaultValue':_0x5aa5('0x4')}};
\ No newline at end of file
+var _0x26db=['STRING','noop','INTEGER'];(function(_0x374ccf,_0xa945c4){var _0x443cde=function(_0x27ff10){while(--_0x27ff10){_0x374ccf['push'](_0x374ccf['shift']());}};_0x443cde(++_0xa945c4);}(_0x26db,0x143));var _0xb26d=function(_0x5630ad,_0x2be8e7){_0x5630ad=_0x5630ad-0x0;var _0xf86564=_0x26db[_0x5630ad];return _0xf86564;};'use strict';var Sequelize=require('sequelize');module['exports']={'priority':{'type':Sequelize[_0xb26d('0x0')],'allowNull':![]},'app':{'type':Sequelize[_0xb26d('0x1')],'allowNull':![],'defaultValue':_0xb26d('0x2')},'appdata':{'type':Sequelize[_0xb26d('0x1')](0x1000),'defaultValue':''},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xb26d('0x1')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf839=['querystring','../../components/parsers/qs','../../config/logger','api','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','update','then','stack','name','send','index','FaxApplication','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','nolimit','sort','pick','add','day','merge','filter','where','attributes','options','includeAll','findAll','rows','show','params','length','find','catch','create','body','destroy','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','desk.js'];(function(_0x654576,_0x325445){var _0x507697=function(_0x49df9b){while(--_0x49df9b){_0x654576['push'](_0x654576['shift']());}};_0x507697(++_0x325445);}(_0xf839,0xbb));var _0x9f83=function(_0x2f4f5b,_0x57b43f){_0x2f4f5b=_0x2f4f5b-0x0;var _0x334e1c=_0xf839[_0x2f4f5b];return _0x334e1c;};'use strict';var pdf=require(_0x9f83('0x0'));var emlformat=require(_0x9f83('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x9f83('0x2'));var jsonpatch=require(_0x9f83('0x3'));var rp=require(_0x9f83('0x4'));var moment=require('moment');var BPromise=require(_0x9f83('0x5'));var Mustache=require(_0x9f83('0x6'));var util=require(_0x9f83('0x7'));var path=require('path');var sox=require(_0x9f83('0x8'));var csv=require(_0x9f83('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x9f83('0xa'));var squel=require(_0x9f83('0xb'));var crypto=require(_0x9f83('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9f83('0xd'));var toCsv=require(_0x9f83('0x9'));var querystring=require(_0x9f83('0xe'));var Papa=require('papaparse');var qs=require(_0x9f83('0xf'));var logger=require(_0x9f83('0x10'))(_0x9f83('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x9f83('0x12'))['db'];function respondWithStatusCode(_0x20448e,_0x4e4a8b){_0x4e4a8b=_0x4e4a8b||0xcc;return function(_0x1f6e12){if(_0x1f6e12){return _0x20448e[_0x9f83('0x13')](_0x4e4a8b);}return _0x20448e[_0x9f83('0x14')](_0x4e4a8b)[_0x9f83('0x15')]();};}function respondWithResult(_0x5dbc52,_0xf5a603){_0xf5a603=_0xf5a603||0xc8;return function(_0x15faaa){if(_0x15faaa){return _0x5dbc52[_0x9f83('0x14')](_0xf5a603)['json'](_0x15faaa);}};}function respondWithFilteredResult(_0x1a0674,_0x7cdf5c){return function(_0x5195e4){if(_0x5195e4){var _0x39a8f4=_0x5195e4[_0x9f83('0x16')],_0x2affb8=_0x7cdf5c[_0x9f83('0x17')],_0x29fd80=_0x7cdf5c[_0x9f83('0x17')]+_0x7cdf5c[_0x9f83('0x18')],_0x1ef99e;if(_0x29fd80>=_0x39a8f4){_0x29fd80=_0x39a8f4;_0x1ef99e=0xc8;}else{_0x1ef99e=0xce;}_0x1a0674[_0x9f83('0x14')](_0x1ef99e);return _0x1a0674[_0x9f83('0x19')](_0x9f83('0x1a'),_0x2affb8+'-'+_0x29fd80+'/'+_0x39a8f4)[_0x9f83('0x1b')](_0x5195e4);}return null;};}function patchUpdates(_0x53192e){return function(_0xfca417){try{jsonpatch[_0x9f83('0x1c')](_0xfca417,_0x53192e,!![]);}catch(_0x27835e){return BPromise[_0x9f83('0x1d')](_0x27835e);}return _0xfca417['save']();};}function saveUpdates(_0x2cd78a,_0x1610d3){return function(_0x5c335a){if(_0x5c335a){return _0x5c335a[_0x9f83('0x1e')](_0x2cd78a)['then'](function(_0x5ec6f8){return _0x5ec6f8;});}return null;};}function removeEntity(_0x3f3a30,_0x55a2aa){return function(_0xe53c33){if(_0xe53c33){return _0xe53c33['destroy']()[_0x9f83('0x1f')](function(){_0x3f3a30[_0x9f83('0x14')](0xcc)[_0x9f83('0x15')]();});}};}function handleEntityNotFound(_0x2641ee,_0x4f3787){return function(_0x4a565c){if(!_0x4a565c){_0x2641ee[_0x9f83('0x13')](0x194);}return _0x4a565c;};}function handleError(_0x35f1c3,_0x1cb0de){_0x1cb0de=_0x1cb0de||0x1f4;return function(_0x11eb8a){logger['error'](_0x11eb8a[_0x9f83('0x20')]);if(_0x11eb8a[_0x9f83('0x21')]){delete _0x11eb8a[_0x9f83('0x21')];}_0x35f1c3[_0x9f83('0x14')](_0x1cb0de)[_0x9f83('0x22')](_0x11eb8a);};}exports[_0x9f83('0x23')]=function(_0x2052ad,_0x239660){var _0x4fc78f={},_0x35d544={},_0x1265c1={'count':0x0,'rows':[]};var _0x229e95=db[_0x9f83('0x24')][_0x9f83('0x25')];_0x35d544[_0x9f83('0x26')]=_[_0x9f83('0x27')](_0x229e95);var _0xbed0ab={'dateStart':_0x2052ad[_0x9f83('0x28')][_0x9f83('0x29')],'dateEnd':_0x2052ad['query'][_0x9f83('0x2a')]};delete _0x2052ad['query']['dateStart'];delete _0x2052ad['query'][_0x9f83('0x2a')];_0x35d544['query']=_[_0x9f83('0x27')](_0x2052ad[_0x9f83('0x28')]);_0x35d544[_0x9f83('0x2b')]=_[_0x9f83('0x2c')](_0x35d544[_0x9f83('0x26')],_0x35d544['query']);_0x4fc78f['attributes']=_[_0x9f83('0x2c')](_0x35d544[_0x9f83('0x26')],qs[_0x9f83('0x2d')](_0x2052ad[_0x9f83('0x28')]['fields']));_0x4fc78f['attributes']=_0x4fc78f['attributes']['length']?_0x4fc78f['attributes']:_0x35d544[_0x9f83('0x26')];if(!_0x2052ad[_0x9f83('0x28')]['hasOwnProperty'](_0x9f83('0x2e'))){_0x4fc78f['limit']=qs[_0x9f83('0x18')](_0x2052ad[_0x9f83('0x28')][_0x9f83('0x18')]);_0x4fc78f[_0x9f83('0x17')]=qs[_0x9f83('0x17')](_0x2052ad[_0x9f83('0x28')]['offset']);}_0x4fc78f['order']=qs[_0x9f83('0x2f')](_0x2052ad[_0x9f83('0x28')]['sort']);_0x4fc78f['where']=qs[_0x9f83('0x2b')](_[_0x9f83('0x30')](_0x2052ad[_0x9f83('0x28')],_0x35d544[_0x9f83('0x2b')]));if(_0xbed0ab[_0x9f83('0x29')]){if(_0xbed0ab['dateEnd']){_0xbed0ab[_0x9f83('0x2a')]=moment(_0xbed0ab['dateEnd'])[_0x9f83('0x31')](0x1,_0x9f83('0x32'));}else{_0xbed0ab[_0x9f83('0x2a')]=moment(_0xbed0ab[_0x9f83('0x29')])[_0x9f83('0x31')](0x1,_0x9f83('0x32'));}_[_0x9f83('0x33')](_0x4fc78f['where'],{'createdAt':{'$gte':_0xbed0ab['dateStart'],'$lte':_0xbed0ab[_0x9f83('0x2a')]}});}if(_0x2052ad[_0x9f83('0x28')][_0x9f83('0x34')]){_0x4fc78f[_0x9f83('0x35')]=_['merge'](_0x4fc78f[_0x9f83('0x35')],{'$or':_['map'](_0x4fc78f[_0x9f83('0x36')],function(_0x116cc5){var _0x1877c1={};_0x1877c1[_0x116cc5]={'$like':'%'+_0x2052ad[_0x9f83('0x28')][_0x9f83('0x34')]+'%'};return _0x1877c1;})});}_0x4fc78f=_['merge']({},_0x4fc78f,_0x2052ad[_0x9f83('0x37')]);var _0x531de4={'where':_0x4fc78f['where']};return db[_0x9f83('0x24')]['count'](_0x531de4)[_0x9f83('0x1f')](function(_0xd1e77c){_0x1265c1[_0x9f83('0x16')]=_0xd1e77c;if(_0x2052ad[_0x9f83('0x28')][_0x9f83('0x38')]){_0x4fc78f['include']=[{'all':!![]}];}return db[_0x9f83('0x24')][_0x9f83('0x39')](_0x4fc78f);})[_0x9f83('0x1f')](function(_0x326b09){_0x1265c1[_0x9f83('0x3a')]=_0x326b09;return _0x1265c1;})[_0x9f83('0x1f')](respondWithFilteredResult(_0x239660,_0x4fc78f))['catch'](handleError(_0x239660,null));};exports[_0x9f83('0x3b')]=function(_0x51203f,_0x1513a0){var _0x362bf5={'raw':!![],'where':{'id':_0x51203f[_0x9f83('0x3c')]['id']}},_0x2fdd96={};_0x2fdd96[_0x9f83('0x26')]=_['keys'](db[_0x9f83('0x24')][_0x9f83('0x25')]);_0x2fdd96[_0x9f83('0x28')]=_[_0x9f83('0x27')](_0x51203f[_0x9f83('0x28')]);_0x2fdd96[_0x9f83('0x2b')]=_[_0x9f83('0x2c')](_0x2fdd96[_0x9f83('0x26')],_0x2fdd96[_0x9f83('0x28')]);_0x362bf5[_0x9f83('0x36')]=_[_0x9f83('0x2c')](_0x2fdd96[_0x9f83('0x26')],qs[_0x9f83('0x2d')](_0x51203f[_0x9f83('0x28')]['fields']));_0x362bf5['attributes']=_0x362bf5[_0x9f83('0x36')][_0x9f83('0x3d')]?_0x362bf5[_0x9f83('0x36')]:_0x2fdd96['model'];if(_0x51203f[_0x9f83('0x28')][_0x9f83('0x38')]){_0x362bf5['include']=[{'all':!![]}];}_0x362bf5=_[_0x9f83('0x33')]({},_0x362bf5,_0x51203f[_0x9f83('0x37')]);return db[_0x9f83('0x24')][_0x9f83('0x3e')](_0x362bf5)[_0x9f83('0x1f')](handleEntityNotFound(_0x1513a0,null))[_0x9f83('0x1f')](respondWithResult(_0x1513a0,null))[_0x9f83('0x3f')](handleError(_0x1513a0,null));};exports[_0x9f83('0x40')]=function(_0x3ca556,_0x287d45){return db[_0x9f83('0x24')]['create'](_0x3ca556['body'],{})[_0x9f83('0x1f')](respondWithResult(_0x287d45,0xc9))['catch'](handleError(_0x287d45,null));};exports[_0x9f83('0x1e')]=function(_0x599744,_0x224828){if(_0x599744[_0x9f83('0x41')]['id']){delete _0x599744[_0x9f83('0x41')]['id'];}return db[_0x9f83('0x24')][_0x9f83('0x3e')]({'where':{'id':_0x599744['params']['id']}})[_0x9f83('0x1f')](handleEntityNotFound(_0x224828,null))[_0x9f83('0x1f')](saveUpdates(_0x599744[_0x9f83('0x41')],null))[_0x9f83('0x1f')](respondWithResult(_0x224828,null))['catch'](handleError(_0x224828,null));};exports[_0x9f83('0x42')]=function(_0x7932fc,_0x3f8f0d){return db[_0x9f83('0x24')][_0x9f83('0x3e')]({'where':{'id':_0x7932fc[_0x9f83('0x3c')]['id']}})[_0x9f83('0x1f')](handleEntityNotFound(_0x3f8f0d,null))['then'](removeEntity(_0x3f8f0d,null))[_0x9f83('0x3f')](handleError(_0x3f8f0d,null));};
\ No newline at end of file
+var _0x1605=['update','then','destroy','error','name','send','index','rawAttributes','model','dateStart','query','dateEnd','filters','intersection','attributes','hasOwnProperty','limit','order','sort','where','add','day','merge','filter','map','options','FaxApplication','include','rows','show','params','keys','fields','length','includeAll','find','catch','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','set','Content-Range','json','apply','reject','save'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0x1605,0xbb));var _0x5160=function(_0x9fd7e7,_0x34bcce){_0x9fd7e7=_0x9fd7e7-0x0;var _0x299514=_0x1605[_0x9fd7e7];return _0x299514;};'use strict';var pdf=require(_0x5160('0x0'));var emlformat=require(_0x5160('0x1'));var rimraf=require(_0x5160('0x2'));var zipdir=require(_0x5160('0x3'));var jsonpatch=require(_0x5160('0x4'));var rp=require(_0x5160('0x5'));var moment=require(_0x5160('0x6'));var BPromise=require(_0x5160('0x7'));var Mustache=require(_0x5160('0x8'));var util=require('util');var path=require('path');var sox=require(_0x5160('0x9'));var csv=require(_0x5160('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x5160('0xb'));var squel=require(_0x5160('0xc'));var crypto=require(_0x5160('0xd'));var jsforce=require(_0x5160('0xe'));var deskjs=require(_0x5160('0xf'));var toCsv=require(_0x5160('0xa'));var querystring=require(_0x5160('0x10'));var Papa=require(_0x5160('0x11'));var Redis=require(_0x5160('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0x5160('0x13'))(_0x5160('0x14'));var utils=require(_0x5160('0x15'));var config=require(_0x5160('0x16'));var db=require(_0x5160('0x17'))['db'];function respondWithStatusCode(_0x1292bc,_0x1044d2){_0x1044d2=_0x1044d2||0xcc;return function(_0x3eeb80){if(_0x3eeb80){return _0x1292bc[_0x5160('0x18')](_0x1044d2);}return _0x1292bc[_0x5160('0x19')](_0x1044d2)[_0x5160('0x1a')]();};}function respondWithResult(_0xccab71,_0x155a77){_0x155a77=_0x155a77||0xc8;return function(_0x4a76a0){if(_0x4a76a0){return _0xccab71[_0x5160('0x19')](_0x155a77)['json'](_0x4a76a0);}};}function respondWithFilteredResult(_0x4c0b75,_0x3d523f){return function(_0x246bc4){if(_0x246bc4){var _0xc3f509=_0x246bc4[_0x5160('0x1b')],_0x1665b3=_0x3d523f[_0x5160('0x1c')],_0x5d0bf1=_0x3d523f[_0x5160('0x1c')]+_0x3d523f['limit'],_0x5b5876;if(_0x5d0bf1>=_0xc3f509){_0x5d0bf1=_0xc3f509;_0x5b5876=0xc8;}else{_0x5b5876=0xce;}_0x4c0b75['status'](_0x5b5876);return _0x4c0b75[_0x5160('0x1d')](_0x5160('0x1e'),_0x1665b3+'-'+_0x5d0bf1+'/'+_0xc3f509)[_0x5160('0x1f')](_0x246bc4);}return null;};}function patchUpdates(_0x21a923){return function(_0x322bba){try{jsonpatch[_0x5160('0x20')](_0x322bba,_0x21a923,!![]);}catch(_0x1fbfe3){return BPromise[_0x5160('0x21')](_0x1fbfe3);}return _0x322bba[_0x5160('0x22')]();};}function saveUpdates(_0x250e7f,_0x310d81){return function(_0x1409b8){if(_0x1409b8){return _0x1409b8[_0x5160('0x23')](_0x250e7f)[_0x5160('0x24')](function(_0x7544a4){return _0x7544a4;});}return null;};}function removeEntity(_0x13b9dd,_0x4dcb24){return function(_0x5897bc){if(_0x5897bc){return _0x5897bc[_0x5160('0x25')]()[_0x5160('0x24')](function(){_0x13b9dd[_0x5160('0x19')](0xcc)[_0x5160('0x1a')]();});}};}function handleEntityNotFound(_0x2ae4ff,_0x3a156f){return function(_0x422cfa){if(!_0x422cfa){_0x2ae4ff[_0x5160('0x18')](0x194);}return _0x422cfa;};}function handleError(_0x4266c8,_0x20bc1f){_0x20bc1f=_0x20bc1f||0x1f4;return function(_0x1713f3){logger[_0x5160('0x26')](_0x1713f3['stack']);if(_0x1713f3[_0x5160('0x27')]){delete _0x1713f3[_0x5160('0x27')];}_0x4266c8[_0x5160('0x19')](_0x20bc1f)[_0x5160('0x28')](_0x1713f3);};}exports[_0x5160('0x29')]=function(_0x29e727,_0x5238a4){var _0x5d40d2={},_0x1d3667={},_0x3ffeeb={'count':0x0,'rows':[]};var _0x3c25d3=db['FaxApplication'][_0x5160('0x2a')];_0x1d3667[_0x5160('0x2b')]=_['keys'](_0x3c25d3);var _0x4c6057={'dateStart':_0x29e727['query'][_0x5160('0x2c')],'dateEnd':_0x29e727[_0x5160('0x2d')][_0x5160('0x2e')]};delete _0x29e727[_0x5160('0x2d')][_0x5160('0x2c')];delete _0x29e727[_0x5160('0x2d')][_0x5160('0x2e')];_0x1d3667[_0x5160('0x2d')]=_['keys'](_0x29e727[_0x5160('0x2d')]);_0x1d3667[_0x5160('0x2f')]=_['intersection'](_0x1d3667[_0x5160('0x2b')],_0x1d3667[_0x5160('0x2d')]);_0x5d40d2['attributes']=_[_0x5160('0x30')](_0x1d3667[_0x5160('0x2b')],qs['fields'](_0x29e727[_0x5160('0x2d')]['fields']));_0x5d40d2[_0x5160('0x31')]=_0x5d40d2[_0x5160('0x31')]['length']?_0x5d40d2[_0x5160('0x31')]:_0x1d3667['model'];if(!_0x29e727['query'][_0x5160('0x32')]('nolimit')){_0x5d40d2[_0x5160('0x33')]=qs[_0x5160('0x33')](_0x29e727[_0x5160('0x2d')][_0x5160('0x33')]);_0x5d40d2[_0x5160('0x1c')]=qs[_0x5160('0x1c')](_0x29e727[_0x5160('0x2d')][_0x5160('0x1c')]);}_0x5d40d2[_0x5160('0x34')]=qs[_0x5160('0x35')](_0x29e727[_0x5160('0x2d')][_0x5160('0x35')]);_0x5d40d2[_0x5160('0x36')]=qs[_0x5160('0x2f')](_['pick'](_0x29e727[_0x5160('0x2d')],_0x1d3667['filters']));if(_0x4c6057[_0x5160('0x2c')]){if(_0x4c6057[_0x5160('0x2e')]){_0x4c6057[_0x5160('0x2e')]=moment(_0x4c6057[_0x5160('0x2e')])[_0x5160('0x37')](0x1,'day');}else{_0x4c6057[_0x5160('0x2e')]=moment(_0x4c6057[_0x5160('0x2c')])[_0x5160('0x37')](0x1,_0x5160('0x38'));}_[_0x5160('0x39')](_0x5d40d2['where'],{'createdAt':{'$gte':_0x4c6057[_0x5160('0x2c')],'$lte':_0x4c6057[_0x5160('0x2e')]}});}if(_0x29e727['query'][_0x5160('0x3a')]){_0x5d40d2[_0x5160('0x36')]=_['merge'](_0x5d40d2[_0x5160('0x36')],{'$or':_[_0x5160('0x3b')](_0x5d40d2[_0x5160('0x31')],function(_0x5ca821){var _0x18d1e0={};_0x18d1e0[_0x5ca821]={'$like':'%'+_0x29e727[_0x5160('0x2d')]['filter']+'%'};return _0x18d1e0;})});}_0x5d40d2=_['merge']({},_0x5d40d2,_0x29e727[_0x5160('0x3c')]);var _0x1fb36b={'where':_0x5d40d2['where']};return db[_0x5160('0x3d')][_0x5160('0x1b')](_0x1fb36b)[_0x5160('0x24')](function(_0x48a744){_0x3ffeeb[_0x5160('0x1b')]=_0x48a744;if(_0x29e727[_0x5160('0x2d')]['includeAll']){_0x5d40d2[_0x5160('0x3e')]=[{'all':!![]}];}return db[_0x5160('0x3d')]['findAll'](_0x5d40d2);})[_0x5160('0x24')](function(_0x58ffd1){_0x3ffeeb[_0x5160('0x3f')]=_0x58ffd1;return _0x3ffeeb;})[_0x5160('0x24')](respondWithFilteredResult(_0x5238a4,_0x5d40d2))['catch'](handleError(_0x5238a4,null));};exports[_0x5160('0x40')]=function(_0x56aa42,_0x1c964c){var _0x3fcb72={'raw':!![],'where':{'id':_0x56aa42[_0x5160('0x41')]['id']}},_0x4eb888={};_0x4eb888['model']=_[_0x5160('0x42')](db[_0x5160('0x3d')][_0x5160('0x2a')]);_0x4eb888[_0x5160('0x2d')]=_[_0x5160('0x42')](_0x56aa42['query']);_0x4eb888[_0x5160('0x2f')]=_['intersection'](_0x4eb888[_0x5160('0x2b')],_0x4eb888['query']);_0x3fcb72[_0x5160('0x31')]=_[_0x5160('0x30')](_0x4eb888[_0x5160('0x2b')],qs[_0x5160('0x43')](_0x56aa42[_0x5160('0x2d')][_0x5160('0x43')]));_0x3fcb72[_0x5160('0x31')]=_0x3fcb72[_0x5160('0x31')][_0x5160('0x44')]?_0x3fcb72[_0x5160('0x31')]:_0x4eb888[_0x5160('0x2b')];if(_0x56aa42[_0x5160('0x2d')][_0x5160('0x45')]){_0x3fcb72[_0x5160('0x3e')]=[{'all':!![]}];}_0x3fcb72=_[_0x5160('0x39')]({},_0x3fcb72,_0x56aa42['options']);return db[_0x5160('0x3d')][_0x5160('0x46')](_0x3fcb72)['then'](handleEntityNotFound(_0x1c964c,null))[_0x5160('0x24')](respondWithResult(_0x1c964c,null))[_0x5160('0x47')](handleError(_0x1c964c,null));};exports[_0x5160('0x48')]=function(_0x5c583b,_0x3c4926){return db[_0x5160('0x3d')][_0x5160('0x48')](_0x5c583b['body'],{})['then'](respondWithResult(_0x3c4926,0xc9))[_0x5160('0x47')](handleError(_0x3c4926,null));};exports[_0x5160('0x23')]=function(_0x2cb46e,_0x4d4e37){if(_0x2cb46e['body']['id']){delete _0x2cb46e['body']['id'];}return db[_0x5160('0x3d')][_0x5160('0x46')]({'where':{'id':_0x2cb46e[_0x5160('0x41')]['id']}})[_0x5160('0x24')](handleEntityNotFound(_0x4d4e37,null))[_0x5160('0x24')](saveUpdates(_0x2cb46e[_0x5160('0x49')],null))[_0x5160('0x24')](respondWithResult(_0x4d4e37,null))[_0x5160('0x47')](handleError(_0x4d4e37,null));};exports[_0x5160('0x25')]=function(_0x2592fc,_0x31f63a){return db[_0x5160('0x3d')][_0x5160('0x46')]({'where':{'id':_0x2592fc['params']['id']}})['then'](handleEntityNotFound(_0x31f63a,null))[_0x5160('0x24')](removeEntity(_0x31f63a,null))['catch'](handleError(_0x31f63a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b65=['lodash','util','../../config/logger','api','bluebird','request-promise','exports','define','FaxApplication','fax_applications'];(function(_0x4bd20a,_0x336d9c){var _0x17305d=function(_0x338b13){while(--_0x338b13){_0x4bd20a['push'](_0x4bd20a['shift']());}};_0x17305d(++_0x336d9c);}(_0x2b65,0xfa));var _0x52b6=function(_0x5a3fd7,_0x5919da){_0x5a3fd7=_0x5a3fd7-0x0;var _0x572299=_0x2b65[_0x5a3fd7];return _0x572299;};'use strict';var _=require(_0x52b6('0x0'));var util=require(_0x52b6('0x1'));var logger=require(_0x52b6('0x2'))(_0x52b6('0x3'));var moment=require('moment');var BPromise=require(_0x52b6('0x4'));var rp=require(_0x52b6('0x5'));var attributes=require('./faxApplication.attributes');module[_0x52b6('0x6')]=function(_0x39cb8b,_0x251637){return _0x39cb8b[_0x52b6('0x7')](_0x52b6('0x8'),attributes,{'tableName':_0x52b6('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9694=['exports','define','fax_applications','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./faxApplication.attributes'];(function(_0xac6679,_0x305faf){var _0x1b7bca=function(_0x3afffe){while(--_0x3afffe){_0xac6679['push'](_0xac6679['shift']());}};_0x1b7bca(++_0x305faf);}(_0x9694,0xa8));var _0x4969=function(_0x3e5e9f,_0x5fef20){_0x3e5e9f=_0x3e5e9f-0x0;var _0x25bf34=_0x9694[_0x3e5e9f];return _0x25bf34;};'use strict';var _=require(_0x4969('0x0'));var util=require(_0x4969('0x1'));var logger=require(_0x4969('0x2'))(_0x4969('0x3'));var moment=require(_0x4969('0x4'));var BPromise=require(_0x4969('0x5'));var rp=require(_0x4969('0x6'));var attributes=require(_0x4969('0x7'));module[_0x4969('0x8')]=function(_0x49133d,_0x4063ab){return _0x49133d[_0x4969('0x9')]('FaxApplication',attributes,{'tableName':_0x4969('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98a8=['../../config/environment','jayson/promise','client','http','request','then','info','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','error','code','message','FaxApplication','options','where','attributes','UpdateFaxApplication','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc'];(function(_0x43026b,_0x928d8c){var _0x4a96cd=function(_0x362cbd){while(--_0x362cbd){_0x43026b['push'](_0x43026b['shift']());}};_0x4a96cd(++_0x928d8c);}(_0x98a8,0x12c));var _0x898a=function(_0x5442a0,_0x3cb2b6){_0x5442a0=_0x5442a0-0x0;var _0x3f6000=_0x98a8[_0x5442a0];return _0x3f6000;};'use strict';var _=require(_0x898a('0x0'));var util=require(_0x898a('0x1'));var moment=require(_0x898a('0x2'));var BPromise=require(_0x898a('0x3'));var rs=require(_0x898a('0x4'));var fs=require('fs');var db=require(_0x898a('0x5'))['db'];var utils=require(_0x898a('0x6'));var logger=require('../../config/logger')(_0x898a('0x7'));var config=require(_0x898a('0x8'));var jayson=require(_0x898a('0x9'));var client=jayson[_0x898a('0xa')][_0x898a('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5d7e59,_0x3aadc2,_0x564583){return new BPromise(function(_0xfa8c50,_0x4fbce5){return client[_0x898a('0xc')](_0x5d7e59,_0x564583)[_0x898a('0xd')](function(_0x2101b3){logger[_0x898a('0xe')](_0x898a('0xf'),_0x3aadc2,_0x898a('0x10'));logger[_0x898a('0x11')](_0x898a('0x12'),_0x3aadc2,_0x898a('0x10'),JSON['stringify'](_0x2101b3));if(_0x2101b3[_0x898a('0x13')]){if(_0x2101b3['error'][_0x898a('0x14')]===0x1f4){logger['error'](_0x898a('0xf'),_0x3aadc2,_0x2101b3[_0x898a('0x13')][_0x898a('0x15')]);return _0x4fbce5(_0x2101b3['error']['message']);}logger['error'](_0x898a('0xf'),_0x3aadc2,_0x2101b3[_0x898a('0x13')][_0x898a('0x15')]);return _0xfa8c50(_0x2101b3[_0x898a('0x13')][_0x898a('0x15')]);}else{logger[_0x898a('0xe')]('FaxApplication,\x20%s,\x20%s',_0x3aadc2,_0x898a('0x10'));_0xfa8c50(_0x2101b3['result'][_0x898a('0x15')]);}})['catch'](function(_0x303321){logger['error'](_0x898a('0xf'),_0x3aadc2,_0x303321);_0x4fbce5(_0x303321);});});}exports['UpdateFaxApplication']=function(_0xee4408){var _0x3197f7=this;return new Promise(function(_0x28cc63,_0x4ddd4d){return db[_0x898a('0x16')]['update'](_0xee4408['body'],{'raw':_0xee4408[_0x898a('0x17')]?_0xee4408[_0x898a('0x17')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xee4408['options']?_0xee4408[_0x898a('0x17')][_0x898a('0x18')]||null:null,'attributes':_0xee4408[_0x898a('0x17')]?_0xee4408[_0x898a('0x17')][_0x898a('0x19')]||null:null,'limit':_0xee4408[_0x898a('0x17')]?_0xee4408[_0x898a('0x17')]['limit']||null:null})[_0x898a('0xd')](function(_0x50718e){logger[_0x898a('0xe')](_0x898a('0x1a'),_0xee4408);logger[_0x898a('0x11')](_0x898a('0x1a'),_0xee4408,JSON['stringify'](_0x50718e));_0x28cc63(_0x50718e);})[_0x898a('0x1b')](function(_0x16c318){logger[_0x898a('0x13')](_0x898a('0x1a'),_0x16c318[_0x898a('0x15')],_0xee4408);_0x4ddd4d(_0x3197f7[_0x898a('0x13')](0x1f4,_0x16c318['message']));});});};
\ No newline at end of file
+var _0xc27c=['catch','FaxApplication','update','body','options','raw','where','attributes','limit','UpdateFaxApplication','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','request','then','info','FaxApplication,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message'];(function(_0x571fac,_0x27ab87){var _0xbf53e3=function(_0x53e603){while(--_0x53e603){_0x571fac['push'](_0x571fac['shift']());}};_0xbf53e3(++_0x27ab87);}(_0xc27c,0x190));var _0xcc27=function(_0x10942f,_0x34b09d){_0x10942f=_0x10942f-0x0;var _0x3ff6c8=_0xc27c[_0x10942f];return _0x3ff6c8;};'use strict';var _=require('lodash');var util=require(_0xcc27('0x0'));var moment=require(_0xcc27('0x1'));var BPromise=require(_0xcc27('0x2'));var rs=require(_0xcc27('0x3'));var fs=require('fs');var Redis=require(_0xcc27('0x4'));var db=require(_0xcc27('0x5'))['db'];var utils=require(_0xcc27('0x6'));var logger=require(_0xcc27('0x7'))(_0xcc27('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xcc27('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x31ecfa,_0x1031d8,_0x270a8e){return new BPromise(function(_0x4700aa,_0x179283){return client[_0xcc27('0xa')](_0x31ecfa,_0x270a8e)[_0xcc27('0xb')](function(_0x459a99){logger[_0xcc27('0xc')](_0xcc27('0xd'),_0x1031d8,'request\x20sent');logger[_0xcc27('0xe')]('FaxApplication,\x20%s,\x20%s,\x20%s',_0x1031d8,_0xcc27('0xf'),JSON[_0xcc27('0x10')](_0x459a99));if(_0x459a99[_0xcc27('0x11')]){if(_0x459a99[_0xcc27('0x11')][_0xcc27('0x12')]===0x1f4){logger[_0xcc27('0x11')](_0xcc27('0xd'),_0x1031d8,_0x459a99[_0xcc27('0x11')]['message']);return _0x179283(_0x459a99[_0xcc27('0x11')][_0xcc27('0x13')]);}logger[_0xcc27('0x11')](_0xcc27('0xd'),_0x1031d8,_0x459a99[_0xcc27('0x11')][_0xcc27('0x13')]);return _0x4700aa(_0x459a99[_0xcc27('0x11')]['message']);}else{logger[_0xcc27('0xc')]('FaxApplication,\x20%s,\x20%s',_0x1031d8,_0xcc27('0xf'));_0x4700aa(_0x459a99['result'][_0xcc27('0x13')]);}})[_0xcc27('0x14')](function(_0x3fa1e5){logger[_0xcc27('0x11')](_0xcc27('0xd'),_0x1031d8,_0x3fa1e5);_0x179283(_0x3fa1e5);});});}exports['UpdateFaxApplication']=function(_0x23ead9){var _0x1f98e1=this;return new Promise(function(_0x2013a6,_0x13090c){return db[_0xcc27('0x15')][_0xcc27('0x16')](_0x23ead9[_0xcc27('0x17')],{'raw':_0x23ead9[_0xcc27('0x18')]?_0x23ead9['options'][_0xcc27('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x23ead9['options']?_0x23ead9['options'][_0xcc27('0x1a')]||null:null,'attributes':_0x23ead9[_0xcc27('0x18')]?_0x23ead9[_0xcc27('0x18')][_0xcc27('0x1b')]||null:null,'limit':_0x23ead9[_0xcc27('0x18')]?_0x23ead9[_0xcc27('0x18')][_0xcc27('0x1c')]||null:null})[_0xcc27('0xb')](function(_0x929f6){logger[_0xcc27('0xc')]('UpdateFaxApplication',_0x23ead9);logger[_0xcc27('0xe')](_0xcc27('0x1d'),_0x23ead9,JSON[_0xcc27('0x10')](_0x929f6));_0x2013a6(_0x929f6);})['catch'](function(_0x331661){logger[_0xcc27('0x11')](_0xcc27('0x1d'),_0x331661[_0xcc27('0x13')],_0x23ead9);_0x13090c(_0x1f98e1['error'](0x1f4,_0x331661[_0xcc27('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde9f=['../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','create','update','exports','multer','util','path','connect-timeout','Router','../../components/auth/service'];(function(_0x1fa880,_0x2d5a98){var _0x1f0d27=function(_0x43600f){while(--_0x43600f){_0x1fa880['push'](_0x1fa880['shift']());}};_0x1f0d27(++_0x2d5a98);}(_0xde9f,0xe8));var _0xfde9=function(_0x1da527,_0x2dc953){_0x1da527=_0x1da527-0x0;var _0x40fc7c=_0xde9f[_0x1da527];return _0x40fc7c;};'use strict';var multer=require(_0xfde9('0x0'));var util=require(_0xfde9('0x1'));var path=require(_0xfde9('0x2'));var timeout=require(_0xfde9('0x3'));var express=require('express');var router=express[_0xfde9('0x4')]();var auth=require(_0xfde9('0x5'));var interaction=require(_0xfde9('0x6'));var config=require(_0xfde9('0x7'));var controller=require('./faxApplication.controller');router[_0xfde9('0x8')]('/',auth[_0xfde9('0x9')](),controller[_0xfde9('0xa')]);router['get'](_0xfde9('0xb'),auth[_0xfde9('0x9')](),controller[_0xfde9('0xc')]);router[_0xfde9('0xd')]('/',auth[_0xfde9('0x9')](),controller[_0xfde9('0xe')]);router['put'](_0xfde9('0xb'),auth[_0xfde9('0x9')](),controller[_0xfde9('0xf')]);router['delete'](_0xfde9('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xfde9('0x10')]=router;
\ No newline at end of file
+var _0xe52a=['Router','../../config/environment','get','isAuthenticated','index','/:id','show','post','put','update','delete','destroy','exports','util','path','connect-timeout','express'];(function(_0x5c2150,_0x4f0435){var _0x59bfce=function(_0x97ee8b){while(--_0x97ee8b){_0x5c2150['push'](_0x5c2150['shift']());}};_0x59bfce(++_0x4f0435);}(_0xe52a,0x1c7));var _0xae52=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xe52a[_0x491a7f];return _0x3d8f44;};'use strict';var multer=require('multer');var util=require(_0xae52('0x0'));var path=require(_0xae52('0x1'));var timeout=require(_0xae52('0x2'));var express=require(_0xae52('0x3'));var router=express[_0xae52('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xae52('0x5'));var controller=require('./faxApplication.controller');router[_0xae52('0x6')]('/',auth[_0xae52('0x7')](),controller[_0xae52('0x8')]);router[_0xae52('0x6')](_0xae52('0x9'),auth['isAuthenticated'](),controller[_0xae52('0xa')]);router[_0xae52('0xb')]('/',auth[_0xae52('0x7')](),controller['create']);router[_0xae52('0xc')](_0xae52('0x9'),auth[_0xae52('0x7')](),controller[_0xae52('0xd')]);router[_0xae52('0xe')](_0xae52('0x9'),auth['isAuthenticated'](),controller[_0xae52('0xf')]);module[_0xae52('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bdb=['DATE','ENUM','out','sequelize','BOOLEAN','STRING'];(function(_0x3f8743,_0x33973f){var _0x1f844c=function(_0x568841){while(--_0x568841){_0x3f8743['push'](_0x3f8743['shift']());}};_0x1f844c(++_0x33973f);}(_0x2bdb,0x105));var _0xb2bd=function(_0x3164b1,_0x4afd29){_0x3164b1=_0x3164b1-0x0;var _0x4f40b2=_0x2bdb[_0x3164b1];return _0x4f40b2;};'use strict';var Sequelize=require(_0xb2bd('0x0'));module['exports']={'closed':{'type':Sequelize[_0xb2bd('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0xb2bd('0x2')]},'note':{'type':Sequelize[_0xb2bd('0x2')]},'read1stAt':{'type':Sequelize[_0xb2bd('0x3')]},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0xb2bd('0x4')]('in',_0xb2bd('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xb2bd('0x3')]},'lastMsgDirection':{'type':Sequelize[_0xb2bd('0x4')]('in',_0xb2bd('0x5')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0x1965=['BOOLEAN','DATE','ENUM','out','sequelize'];(function(_0x54b7a6,_0x4f6cb9){var _0x4ecd83=function(_0x1e5131){while(--_0x1e5131){_0x54b7a6['push'](_0x54b7a6['shift']());}};_0x4ecd83(++_0x4f6cb9);}(_0x1965,0x1b2));var _0x5196=function(_0x36f4fe,_0x833c28){_0x36f4fe=_0x36f4fe-0x0;var _0x5fc521=_0x1965[_0x36f4fe];return _0x5fc521;};'use strict';var Sequelize=require(_0x5196('0x0'));module['exports']={'closed':{'type':Sequelize[_0x5196('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x5196('0x2')]},'disposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x5196('0x2')]},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0x5196('0x3')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x5196('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x5196('0x3')]('in',_0x5196('0x4')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0700=['getMessages','pick','FaxInteractionId','split','format','rows','addTags','spread','download','unix','toString','join','server','files','attachments','root','Attachment','basename','existsSync','pipe','log','err','unlinkSync','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./faxInteraction.socket','register','status','end','json','count','offset','limit','set','reject','update','then','destroy','sendStatus','error','stack','name','send','FaxInteraction','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','add','day','merge','filter','map','options','include','tag','push','Tag','Tags','distinct','read','FaxMessage','direction','User','Users','fullname','CmContact','Contact','Owner','internal','FaxAccount','Account','key','color','findAll','catch','show','params','rawAttributes','length','includeAll','find','create','body','describe','addMessage','ids','omit'];(function(_0x4b4f24,_0x5654a8){var _0x1c13d4=function(_0x4940bf){while(--_0x4940bf){_0x4b4f24['push'](_0x4b4f24['shift']());}};_0x1c13d4(++_0x5654a8);}(_0x0700,0x188));var _0x0070=function(_0x3a4997,_0x477efa){_0x3a4997=_0x3a4997-0x0;var _0x1bff7d=_0x0700[_0x3a4997];return _0x1bff7d;};'use strict';var pdf=require(_0x0070('0x0'));var emlformat=require(_0x0070('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x0070('0x2'));var jsonpatch=require(_0x0070('0x3'));var rp=require(_0x0070('0x4'));var moment=require(_0x0070('0x5'));var BPromise=require(_0x0070('0x6'));var Mustache=require(_0x0070('0x7'));var util=require(_0x0070('0x8'));var path=require(_0x0070('0x9'));var sox=require(_0x0070('0xa'));var csv=require(_0x0070('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x0070('0xc'));var squel=require(_0x0070('0xd'));var crypto=require('crypto');var jsforce=require(_0x0070('0xe'));var deskjs=require(_0x0070('0xf'));var toCsv=require(_0x0070('0xb'));var querystring=require(_0x0070('0x10'));var Papa=require(_0x0070('0x11'));var qs=require(_0x0070('0x12'));var logger=require(_0x0070('0x13'))(_0x0070('0x14'));var utils=require(_0x0070('0x15'));var config=require(_0x0070('0x16'));var db=require(_0x0070('0x17'))['db'];config[_0x0070('0x18')]=_['defaults'](config[_0x0070('0x18')],{'host':_0x0070('0x19'),'port':0x18eb});var socket=require(_0x0070('0x1a'))(config[_0x0070('0x18')]);require(_0x0070('0x1b'))[_0x0070('0x1c')](socket);function respondWithStatusCode(_0x4f3951,_0x1700d5){_0x1700d5=_0x1700d5||0xcc;return function(_0x4bb538){if(_0x4bb538){return _0x4f3951['sendStatus'](_0x1700d5);}return _0x4f3951[_0x0070('0x1d')](_0x1700d5)[_0x0070('0x1e')]();};}function respondWithResult(_0x206336,_0x5be4f8){_0x5be4f8=_0x5be4f8||0xc8;return function(_0x59c254){if(_0x59c254){return _0x206336[_0x0070('0x1d')](_0x5be4f8)[_0x0070('0x1f')](_0x59c254);}};}function respondWithFilteredResult(_0x1d550f,_0x14093b){return function(_0x36db34){if(_0x36db34){var _0x8e060c=_0x36db34[_0x0070('0x20')],_0x313154=_0x14093b[_0x0070('0x21')],_0x53e2a8=_0x14093b['offset']+_0x14093b[_0x0070('0x22')],_0x25db17;if(_0x53e2a8>=_0x8e060c){_0x53e2a8=_0x8e060c;_0x25db17=0xc8;}else{_0x25db17=0xce;}_0x1d550f[_0x0070('0x1d')](_0x25db17);return _0x1d550f[_0x0070('0x23')]('Content-Range',_0x313154+'-'+_0x53e2a8+'/'+_0x8e060c)[_0x0070('0x1f')](_0x36db34);}return null;};}function patchUpdates(_0x46253b){return function(_0x3a4168){try{jsonpatch['apply'](_0x3a4168,_0x46253b,!![]);}catch(_0x1ca4c6){return BPromise[_0x0070('0x24')](_0x1ca4c6);}return _0x3a4168['save']();};}function saveUpdates(_0x5e7c0c,_0x600d1e){return function(_0x54914d){if(_0x54914d){return _0x54914d[_0x0070('0x25')](_0x5e7c0c)[_0x0070('0x26')](function(_0x403dfb){return _0x403dfb;});}return null;};}function removeEntity(_0x512077,_0xfc3e04){return function(_0x20e4ca){if(_0x20e4ca){return _0x20e4ca[_0x0070('0x27')]()[_0x0070('0x26')](function(){_0x512077['status'](0xcc)[_0x0070('0x1e')]();});}};}function handleEntityNotFound(_0x3b786b,_0x252523){return function(_0x15cc34){if(!_0x15cc34){_0x3b786b[_0x0070('0x28')](0x194);}return _0x15cc34;};}function handleError(_0x5dc378,_0x430cc1){_0x430cc1=_0x430cc1||0x1f4;return function(_0x85e44e){logger[_0x0070('0x29')](_0x85e44e[_0x0070('0x2a')]);if(_0x85e44e['name']){delete _0x85e44e[_0x0070('0x2b')];}_0x5dc378[_0x0070('0x1d')](_0x430cc1)[_0x0070('0x2c')](_0x85e44e);};}exports['index']=function(_0x410c2e,_0x38bc3c){var _0x21e99b={},_0x34f4ef={},_0x429782={'count':0x0,'rows':[]};var _0x3a535b=db[_0x0070('0x2d')]['rawAttributes'];_0x34f4ef[_0x0070('0x2e')]=_[_0x0070('0x2f')](_0x3a535b);var _0x1995a0={'dateStart':_0x410c2e[_0x0070('0x30')][_0x0070('0x31')],'dateEnd':_0x410c2e[_0x0070('0x30')][_0x0070('0x32')]};delete _0x410c2e[_0x0070('0x30')]['dateStart'];delete _0x410c2e['query']['dateEnd'];_0x34f4ef[_0x0070('0x30')]=_[_0x0070('0x2f')](_0x410c2e[_0x0070('0x30')]);_0x34f4ef[_0x0070('0x33')]=_[_0x0070('0x34')](_0x34f4ef[_0x0070('0x2e')],_0x34f4ef['query']);_0x21e99b['attributes']=_[_0x0070('0x34')](_0x34f4ef[_0x0070('0x2e')],qs[_0x0070('0x35')](_0x410c2e[_0x0070('0x30')]['fields']));_0x21e99b['attributes']=_0x21e99b[_0x0070('0x36')]['length']?_0x21e99b['attributes']:_0x34f4ef[_0x0070('0x2e')];if(!_0x410c2e[_0x0070('0x30')][_0x0070('0x37')](_0x0070('0x38'))){_0x21e99b[_0x0070('0x22')]=qs[_0x0070('0x22')](_0x410c2e['query'][_0x0070('0x22')]);_0x21e99b[_0x0070('0x21')]=qs[_0x0070('0x21')](_0x410c2e[_0x0070('0x30')][_0x0070('0x21')]);}_0x21e99b[_0x0070('0x39')]=qs[_0x0070('0x3a')](_0x410c2e[_0x0070('0x30')][_0x0070('0x3a')]);_0x21e99b[_0x0070('0x3b')]=qs[_0x0070('0x33')](_['pick'](_0x410c2e['query'],_0x34f4ef[_0x0070('0x33')]));if(_0x1995a0['dateStart']){if(_0x1995a0[_0x0070('0x32')]){_0x1995a0[_0x0070('0x32')]=moment(_0x1995a0[_0x0070('0x32')])[_0x0070('0x3c')](0x1,_0x0070('0x3d'));}else{_0x1995a0[_0x0070('0x32')]=moment(_0x1995a0[_0x0070('0x31')])['add'](0x1,'day');}_[_0x0070('0x3e')](_0x21e99b[_0x0070('0x3b')],{'createdAt':{'$gte':_0x1995a0[_0x0070('0x31')],'$lte':_0x1995a0[_0x0070('0x32')]}});}if(_0x410c2e[_0x0070('0x30')][_0x0070('0x3f')]){_0x21e99b[_0x0070('0x3b')]=_['merge'](_0x21e99b['where'],{'$or':_[_0x0070('0x40')](_0x21e99b[_0x0070('0x36')],function(_0x4d35a5){var _0x27b3c5={};_0x27b3c5[_0x4d35a5]={'$like':'%'+_0x410c2e['query']['filter']+'%'};return _0x27b3c5;})});}_0x21e99b=_[_0x0070('0x3e')]({},_0x21e99b,_0x410c2e[_0x0070('0x41')]);var _0x214581={'where':_0x21e99b['where']};_0x214581[_0x0070('0x42')]=[];if(_0x410c2e['query'][_0x0070('0x43')]){_0x214581[_0x0070('0x42')][_0x0070('0x44')]({'model':db[_0x0070('0x45')],'as':_0x0070('0x46'),'attributes':['id'],'where':{'id':_0x410c2e[_0x0070('0x30')][_0x0070('0x43')]},'required':!![]});_0x214581[_0x0070('0x47')]=!![];}if(_0x410c2e['query'][_0x0070('0x48')]){_0x214581['include']['push']({'model':db[_0x0070('0x49')],'as':'Messages','attributes':['id',_0x0070('0x4a'),'createdAt',_0x0070('0x48')],'where':{'direction':'in','read':_0x410c2e[_0x0070('0x30')]['read']||![]},'required':!![]});_0x214581[_0x0070('0x47')]=!![];}return db[_0x0070('0x2d')]['count'](_0x214581)[_0x0070('0x26')](function(_0x194453){_0x429782[_0x0070('0x20')]=_0x194453;if(_0x410c2e[_0x0070('0x30')]['includeAll']){_0x21e99b['include']=[{'model':db[_0x0070('0x4b')],'as':_0x0070('0x4c'),'required':![],'attributes':['id','name',_0x0070('0x4d')]},{'model':db[_0x0070('0x4e')],'as':_0x0070('0x4f'),'required':![]},{'model':db['User'],'as':_0x0070('0x50'),'attributes':[_0x0070('0x2b'),_0x0070('0x4d'),_0x0070('0x51')],'required':![]},{'model':db[_0x0070('0x52')],'as':_0x0070('0x53'),'attributes':[_0x0070('0x2b'),_0x0070('0x54')],'required':![]},{'model':db['FaxMessage'],'as':'Messages','attributes':['id',_0x0070('0x4a'),'createdAt',_0x0070('0x48')],'where':{'direction':'in','read':_0x410c2e[_0x0070('0x30')][_0x0070('0x48')]||![]},'required':_0x410c2e[_0x0070('0x30')][_0x0070('0x48')]||![]},{'model':db[_0x0070('0x45')],'as':_0x0070('0x46'),'attributes':['id',_0x0070('0x2b'),_0x0070('0x55')],'required':_0x410c2e[_0x0070('0x30')][_0x0070('0x43')]?!![]:![]},{'model':db['Tag'],'as':'ThroughTags','attributes':['id',_0x0070('0x2b'),'color'],'through':_0x410c2e[_0x0070('0x30')][_0x0070('0x43')]?{'attributes':[],'where':{'TagId':_0x410c2e[_0x0070('0x30')][_0x0070('0x43')]||undefined}}:{},'required':_0x410c2e[_0x0070('0x30')][_0x0070('0x43')]?!![]:![]}];}return db[_0x0070('0x2d')][_0x0070('0x56')](_0x21e99b);})[_0x0070('0x26')](function(_0x20e203){_0x429782['rows']=_0x20e203;return _0x429782;})[_0x0070('0x26')](respondWithFilteredResult(_0x38bc3c,_0x21e99b))[_0x0070('0x57')](handleError(_0x38bc3c,null));};exports[_0x0070('0x58')]=function(_0x235f91,_0x7a91c3){var _0x98b5e9={'raw':![],'where':{'id':_0x235f91[_0x0070('0x59')]['id']}},_0x2e5b25={};_0x2e5b25['model']=_[_0x0070('0x2f')](db[_0x0070('0x2d')][_0x0070('0x5a')]);_0x2e5b25[_0x0070('0x30')]=_['keys'](_0x235f91[_0x0070('0x30')]);_0x2e5b25['filters']=_[_0x0070('0x34')](_0x2e5b25[_0x0070('0x2e')],_0x2e5b25[_0x0070('0x30')]);_0x98b5e9[_0x0070('0x36')]=_['intersection'](_0x2e5b25['model'],qs[_0x0070('0x35')](_0x235f91[_0x0070('0x30')][_0x0070('0x35')]));_0x98b5e9[_0x0070('0x36')]=_0x98b5e9[_0x0070('0x36')][_0x0070('0x5b')]?_0x98b5e9['attributes']:_0x2e5b25[_0x0070('0x2e')];if(_0x235f91[_0x0070('0x30')][_0x0070('0x5c')]){_0x98b5e9['include']=[{'all':!![]}];}_0x98b5e9=_[_0x0070('0x3e')]({},_0x98b5e9,_0x235f91['options']);return db['FaxInteraction'][_0x0070('0x5d')](_0x98b5e9)['then'](handleEntityNotFound(_0x7a91c3,null))[_0x0070('0x26')](respondWithResult(_0x7a91c3,null))[_0x0070('0x57')](handleError(_0x7a91c3,null));};exports[_0x0070('0x5e')]=function(_0x4c80cd,_0x28db32){return db[_0x0070('0x2d')][_0x0070('0x5e')](_0x4c80cd[_0x0070('0x5f')],{})[_0x0070('0x26')](respondWithResult(_0x28db32,0xc9))[_0x0070('0x57')](handleError(_0x28db32,null));};exports['update']=function(_0x364020,_0x3a73f4){if(_0x364020['body']['id']){delete _0x364020[_0x0070('0x5f')]['id'];}return db['FaxInteraction'][_0x0070('0x5d')]({'where':{'id':_0x364020[_0x0070('0x59')]['id']}})['then'](handleEntityNotFound(_0x3a73f4,null))[_0x0070('0x26')](saveUpdates(_0x364020[_0x0070('0x5f')],null))[_0x0070('0x26')](respondWithResult(_0x3a73f4,null))[_0x0070('0x57')](handleError(_0x3a73f4,null));};exports[_0x0070('0x27')]=function(_0x2fc904,_0x4dc775){return db[_0x0070('0x2d')][_0x0070('0x5d')]({'where':{'id':_0x2fc904[_0x0070('0x59')]['id']}})[_0x0070('0x26')](handleEntityNotFound(_0x4dc775,null))[_0x0070('0x26')](removeEntity(_0x4dc775,null))[_0x0070('0x57')](handleError(_0x4dc775,null));};exports[_0x0070('0x60')]=function(_0x5bde96,_0x2f11d5){return db[_0x0070('0x2d')][_0x0070('0x60')]()[_0x0070('0x26')](respondWithResult(_0x2f11d5,null))[_0x0070('0x57')](handleError(_0x2f11d5,null));};exports[_0x0070('0x61')]=function(_0x3aa8a2,_0xb1613a,_0x1a423d){return db[_0x0070('0x49')][_0x0070('0x5d')]({'where':{'id':_0x3aa8a2[_0x0070('0x59')]['id']}})[_0x0070('0x26')](handleEntityNotFound(_0xb1613a,null))[_0x0070('0x26')](function(_0x13fd93){if(_0x13fd93){return _0x13fd93['addMessage'](_0x3aa8a2['body'][_0x0070('0x62')],_[_0x0070('0x63')](_0x3aa8a2['body'],['ids','id'])||{});}})[_0x0070('0x26')](respondWithResult(_0xb1613a,null))[_0x0070('0x57')](handleError(_0xb1613a,null));};exports[_0x0070('0x64')]=function(_0x20f5a4,_0x37f1db,_0x3301d7){var _0x5b7108={'raw':![],'where':{}};var _0x20c5a8={};var _0x42ef5e={'count':0x0,'rows':[]};return db['FaxInteraction']['findOne']({'where':{'id':_0x20f5a4[_0x0070('0x59')]['id']}})[_0x0070('0x26')](handleEntityNotFound(_0x37f1db,null))[_0x0070('0x26')](function(_0x30602c){if(_0x30602c){_0x20c5a8[_0x0070('0x2e')]=_[_0x0070('0x2f')](db[_0x0070('0x49')][_0x0070('0x5a')]);_0x20c5a8['query']=_['keys'](_0x20f5a4[_0x0070('0x30')]);_0x20c5a8[_0x0070('0x33')]=_[_0x0070('0x34')](_0x20c5a8[_0x0070('0x2e')],_0x20c5a8[_0x0070('0x30')]);_0x5b7108[_0x0070('0x36')]=_['intersection'](_0x20c5a8['model'],qs['fields'](_0x20f5a4[_0x0070('0x30')]['fields']));_0x5b7108['attributes']=_0x5b7108['attributes']['length']?_0x5b7108[_0x0070('0x36')]:_0x20c5a8['model'];if(!_0x20f5a4[_0x0070('0x30')][_0x0070('0x37')](_0x0070('0x38'))){_0x5b7108[_0x0070('0x22')]=qs[_0x0070('0x22')](_0x20f5a4['query'][_0x0070('0x22')]);_0x5b7108['offset']=qs[_0x0070('0x21')](_0x20f5a4['query'][_0x0070('0x21')]);}_0x5b7108['order']=qs[_0x0070('0x3a')](_0x20f5a4[_0x0070('0x30')][_0x0070('0x3a')]);_0x5b7108[_0x0070('0x3b')]=qs[_0x0070('0x33')](_[_0x0070('0x65')](_0x20f5a4[_0x0070('0x30')],_0x20c5a8[_0x0070('0x33')]));_0x5b7108['where'][_0x0070('0x66')]=_0x30602c['id'];if(_0x20f5a4[_0x0070('0x30')][_0x0070('0x3f')]){_0x5b7108[_0x0070('0x3b')]=_['merge'](_0x5b7108['where'],{'$or':_[_0x0070('0x40')](_0x5b7108[_0x0070('0x36')],function(_0x2212b5){var _0x2a74cb={};_0x2a74cb[_0x2212b5]={'$like':'%'+_0x20f5a4[_0x0070('0x30')][_0x0070('0x3f')]+'%'};return _0x2a74cb;})});}if(_0x20f5a4['query']['$gte']){var _0x190dc3=_0x20f5a4['query']['$gte'][_0x0070('0x67')](',');var _0x213a31={};_0x213a31[_0x190dc3[0x0]]={'$gte':moment(_0x190dc3[0x1])[_0x0070('0x68')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5b7108[_0x0070('0x3b')]=_[_0x0070('0x3e')](_0x5b7108[_0x0070('0x3b')],_0x213a31);}_0x5b7108=_[_0x0070('0x3e')]({},_0x5b7108,_0x20f5a4['options']);return db['FaxMessage'][_0x0070('0x20')]({'where':_0x5b7108[_0x0070('0x3b')]})[_0x0070('0x26')](function(_0x5d9a3c){_0x42ef5e[_0x0070('0x20')]=_0x5d9a3c;if(_0x20f5a4['query'][_0x0070('0x5c')]){_0x5b7108[_0x0070('0x42')]=[{'all':!![]}];}return db['FaxMessage']['findAll'](_0x5b7108);})[_0x0070('0x26')](function(_0x2b6f88){_0x42ef5e[_0x0070('0x69')]=_0x2b6f88;return _0x42ef5e;});}})[_0x0070('0x26')](respondWithFilteredResult(_0x37f1db,_0x5b7108))[_0x0070('0x57')](handleError(_0x37f1db,null));};exports[_0x0070('0x6a')]=function(_0x3003b2,_0x48f1bf,_0x47183b){return db['FaxInteraction']['find']({'where':{'id':_0x3003b2['params']['id']}})[_0x0070('0x26')](handleEntityNotFound(_0x48f1bf,null))[_0x0070('0x26')](function(_0x458bfd){if(_0x458bfd){return _0x458bfd['setTags'](_0x3003b2[_0x0070('0x5f')]['ids'],_[_0x0070('0x63')](_0x3003b2[_0x0070('0x5f')],[_0x0070('0x62'),'id'])||{})[_0x0070('0x6b')](function(){return db[_0x0070('0x45')][_0x0070('0x56')]({'attributes':['id',_0x0070('0x2b'),_0x0070('0x55')],'where':{'id':_0x3003b2[_0x0070('0x5f')][_0x0070('0x62')]}});})[_0x0070('0x26')](function(_0x156e21){socket['emit']('faxInteractionTags:save',{'id':Number(_0x3003b2[_0x0070('0x59')]['id']),'tags':_0x156e21||[]});return{'id':Number(_0x3003b2['params']['id']),'tags':_0x156e21||[]};});}})[_0x0070('0x26')](respondWithResult(_0x48f1bf,null))[_0x0070('0x57')](handleError(_0x48f1bf,null));};exports['removeTags']=function(_0xed2a76,_0x26d327,_0x4c301a){var _0x4e4890;return db[_0x0070('0x2d')][_0x0070('0x5d')]({'where':{'id':_0xed2a76['params']['id']}})[_0x0070('0x26')](handleEntityNotFound(_0x26d327,null))[_0x0070('0x26')](function(_0x43ddf6){if(_0x43ddf6){return _0x43ddf6['removeTags'](_0xed2a76[_0x0070('0x30')][_0x0070('0x62')]);}})[_0x0070('0x26')](respondWithStatusCode(_0x26d327,null))[_0x0070('0x57')](handleError(_0x26d327,null));};exports[_0x0070('0x6c')]=function(_0xe117bb,_0x5156f4){var _0x99dc42=moment()[_0x0070('0x6d')]()[_0x0070('0x6e')]();var _0x43405f=path[_0x0070('0x6f')](config['root'],_0x0070('0x70'),_0x0070('0x71'),_0x0070('0x72'));var _0x287a50=path[_0x0070('0x6f')](config[_0x0070('0x73')],_0x0070('0x70'),_0x0070('0x71'),'tmp');var _0x495353=path[_0x0070('0x6f')](_0x287a50,_0x99dc42);var _0x57b218=util[_0x0070('0x68')]('interaction-%s.zip',_0x99dc42);var _0x5190c3=path[_0x0070('0x6f')](_0x287a50,_0x57b218);var _0xaa15a5=![];return db[_0x0070('0x2d')][_0x0070('0x5d')]({'where':{'id':_0xe117bb[_0x0070('0x59')]['id']}})[_0x0070('0x26')](handleEntityNotFound(_0x5156f4,null))[_0x0070('0x26')](function(_0x57af8b){if(_0x57af8b){return _0x57af8b['getMessages']({'attributes':['id',_0x0070('0x5f'),'createdAt'],'include':[{'model':db['Attachment'],'as':_0x0070('0x74')}]});}return[];})[_0x0070('0x26')](function(_0x2fae55){_0xaa15a5=_0x2fae55[_0x0070('0x5b')];if(_0x2fae55[_0x0070('0x5b')]){fs['mkdirSync'](_0x495353);for(var _0x59e502=0x0;_0x59e502<_0x2fae55['length'];_0x59e502++){var _0x2adb38=_0x2fae55[_0x59e502];var _0x31950e=_0x2adb38[_0x0070('0x74')];if(_0x31950e){var _0x1da6d9=path[_0x0070('0x6f')](_0x43405f,_0x31950e[_0x0070('0x75')]);if(fs[_0x0070('0x76')](_0x1da6d9)){fs['createReadStream'](_0x1da6d9)[_0x0070('0x77')](fs['createWriteStream'](path[_0x0070('0x6f')](_0x495353,_0x31950e[_0x0070('0x75')])));}}}}})['then'](function(){if(_0xaa15a5){return new BPromise(function(_0xee3266,_0x2ba521){zipdir(_0x495353,{'saveTo':_0x5190c3},function(_0x7e87a6,_0x40add4){if(_0x7e87a6)return _0x2ba521(_0x7e87a6);return _0xee3266(_0x40add4);});});}})[_0x0070('0x26')](function(){if(_0xaa15a5){return new BPromise(function(_0x25108a,_0x141a33){rimraf(_0x495353,function(_0x52df97){if(_0x52df97)_0x141a33(_0x52df97);return _0x25108a();});});}})[_0x0070('0x26')](function(){if(_0xaa15a5){return _0x5156f4[_0x0070('0x6c')](_0x5190c3,_0x57b218,function(_0xfbf455){if(_0xfbf455){console[_0x0070('0x78')](_0x0070('0x79'),_0xfbf455);}else{fs[_0x0070('0x7a')](_0x5190c3);}});}else{return _0x5156f4[_0x0070('0x28')](0xc8);}})[_0x0070('0x57')](handleError(_0x5156f4,null));};
\ No newline at end of file
+var _0x29e7=['../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','status','json','offset','limit','Content-Range','apply','reject','save','update','then','end','sendStatus','error','stack','name','send','index','FaxInteraction','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','include','tag','push','Tag','Tags','distinct','FaxMessage','direction','createdAt','read','count','includeAll','User','fullname','CmContact','Contact','internal','FaxAccount','Account','key','Messages','color','ThroughTags','findAll','rows','catch','show','params','rawAttributes','find','create','body','destroy','describe','addMessage','ids','omit','getMessages','findOne','FaxInteractionId','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','spread','emit','removeTags','download','unix','join','root','server','files','attachments','tmp','interaction-%s.zip','Attachment','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','log','err','unlinkSync','html-pdf','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis'];(function(_0x316fd3,_0x1b2723){var _0x185b28=function(_0x307dd9){while(--_0x307dd9){_0x316fd3['push'](_0x316fd3['shift']());}};_0x185b28(++_0x1b2723);}(_0x29e7,0x77));var _0x729e=function(_0x1a7c7d,_0x59e6cc){_0x1a7c7d=_0x1a7c7d-0x0;var _0x4f2eac=_0x29e7[_0x1a7c7d];return _0x4f2eac;};'use strict';var pdf=require(_0x729e('0x0'));var emlformat=require(_0x729e('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x729e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x729e('0x3'));var moment=require('moment');var BPromise=require(_0x729e('0x4'));var Mustache=require(_0x729e('0x5'));var util=require(_0x729e('0x6'));var path=require(_0x729e('0x7'));var sox=require(_0x729e('0x8'));var csv=require(_0x729e('0x9'));var ejs=require(_0x729e('0xa'));var fs=require('fs');var _=require(_0x729e('0xb'));var squel=require(_0x729e('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x729e('0xd'));var toCsv=require('to-csv');var querystring=require(_0x729e('0xe'));var Papa=require(_0x729e('0xf'));var Redis=require(_0x729e('0x10'));var qs=require(_0x729e('0x11'));var logger=require('../../config/logger')(_0x729e('0x12'));var utils=require(_0x729e('0x13'));var config=require(_0x729e('0x14'));var db=require(_0x729e('0x15'))['db'];config[_0x729e('0x16')]=_[_0x729e('0x17')](config[_0x729e('0x16')],{'host':_0x729e('0x18'),'port':0x18eb});var socket=require(_0x729e('0x19'))(new Redis(config[_0x729e('0x16')]));require(_0x729e('0x1a'))[_0x729e('0x1b')](socket);function respondWithStatusCode(_0x1881f6,_0x3d608e){_0x3d608e=_0x3d608e||0xcc;return function(_0x3fac77){if(_0x3fac77){return _0x1881f6['sendStatus'](_0x3d608e);}return _0x1881f6[_0x729e('0x1c')](_0x3d608e)['end']();};}function respondWithResult(_0x2a0570,_0x4145c1){_0x4145c1=_0x4145c1||0xc8;return function(_0x305919){if(_0x305919){return _0x2a0570[_0x729e('0x1c')](_0x4145c1)[_0x729e('0x1d')](_0x305919);}};}function respondWithFilteredResult(_0x74f109,_0x30cbd1){return function(_0x183f87){if(_0x183f87){var _0x24d780=_0x183f87['count'],_0x441f00=_0x30cbd1[_0x729e('0x1e')],_0x323998=_0x30cbd1['offset']+_0x30cbd1[_0x729e('0x1f')],_0x12cfb1;if(_0x323998>=_0x24d780){_0x323998=_0x24d780;_0x12cfb1=0xc8;}else{_0x12cfb1=0xce;}_0x74f109[_0x729e('0x1c')](_0x12cfb1);return _0x74f109['set'](_0x729e('0x20'),_0x441f00+'-'+_0x323998+'/'+_0x24d780)[_0x729e('0x1d')](_0x183f87);}return null;};}function patchUpdates(_0x11711a){return function(_0xe74537){try{jsonpatch[_0x729e('0x21')](_0xe74537,_0x11711a,!![]);}catch(_0x16f049){return BPromise[_0x729e('0x22')](_0x16f049);}return _0xe74537[_0x729e('0x23')]();};}function saveUpdates(_0x4b3103,_0x2fe7c5){return function(_0x48aab6){if(_0x48aab6){return _0x48aab6[_0x729e('0x24')](_0x4b3103)[_0x729e('0x25')](function(_0x5346c9){return _0x5346c9;});}return null;};}function removeEntity(_0x13476f,_0x103f3a){return function(_0x622731){if(_0x622731){return _0x622731['destroy']()[_0x729e('0x25')](function(){_0x13476f['status'](0xcc)[_0x729e('0x26')]();});}};}function handleEntityNotFound(_0x495819,_0x23072e){return function(_0x246d4f){if(!_0x246d4f){_0x495819[_0x729e('0x27')](0x194);}return _0x246d4f;};}function handleError(_0x546e1d,_0x141cc3){_0x141cc3=_0x141cc3||0x1f4;return function(_0x1c5dbc){logger[_0x729e('0x28')](_0x1c5dbc[_0x729e('0x29')]);if(_0x1c5dbc[_0x729e('0x2a')]){delete _0x1c5dbc[_0x729e('0x2a')];}_0x546e1d[_0x729e('0x1c')](_0x141cc3)[_0x729e('0x2b')](_0x1c5dbc);};}exports[_0x729e('0x2c')]=function(_0x5871f6,_0x54f816){var _0x4518e4={},_0x555510={},_0x5bb573={'count':0x0,'rows':[]};var _0x1b3d6d=db[_0x729e('0x2d')]['rawAttributes'];_0x555510[_0x729e('0x2e')]=_[_0x729e('0x2f')](_0x1b3d6d);var _0x418519={'dateStart':_0x5871f6[_0x729e('0x30')][_0x729e('0x31')],'dateEnd':_0x5871f6[_0x729e('0x30')][_0x729e('0x32')]};delete _0x5871f6['query'][_0x729e('0x31')];delete _0x5871f6['query'][_0x729e('0x32')];_0x555510['query']=_[_0x729e('0x2f')](_0x5871f6[_0x729e('0x30')]);_0x555510[_0x729e('0x33')]=_[_0x729e('0x34')](_0x555510['model'],_0x555510['query']);_0x4518e4[_0x729e('0x35')]=_[_0x729e('0x34')](_0x555510[_0x729e('0x2e')],qs[_0x729e('0x36')](_0x5871f6[_0x729e('0x30')]['fields']));_0x4518e4[_0x729e('0x35')]=_0x4518e4['attributes'][_0x729e('0x37')]?_0x4518e4[_0x729e('0x35')]:_0x555510[_0x729e('0x2e')];if(!_0x5871f6[_0x729e('0x30')][_0x729e('0x38')](_0x729e('0x39'))){_0x4518e4[_0x729e('0x1f')]=qs[_0x729e('0x1f')](_0x5871f6[_0x729e('0x30')][_0x729e('0x1f')]);_0x4518e4[_0x729e('0x1e')]=qs[_0x729e('0x1e')](_0x5871f6[_0x729e('0x30')][_0x729e('0x1e')]);}_0x4518e4[_0x729e('0x3a')]=qs[_0x729e('0x3b')](_0x5871f6['query'][_0x729e('0x3b')]);_0x4518e4[_0x729e('0x3c')]=qs[_0x729e('0x33')](_[_0x729e('0x3d')](_0x5871f6[_0x729e('0x30')],_0x555510[_0x729e('0x33')]));if(_0x418519['dateStart']){if(_0x418519[_0x729e('0x32')]){_0x418519[_0x729e('0x32')]=moment(_0x418519[_0x729e('0x32')])[_0x729e('0x3e')](0x1,_0x729e('0x3f'));}else{_0x418519[_0x729e('0x32')]=moment(_0x418519[_0x729e('0x31')])[_0x729e('0x3e')](0x1,'day');}_[_0x729e('0x40')](_0x4518e4[_0x729e('0x3c')],{'createdAt':{'$gte':_0x418519[_0x729e('0x31')],'$lte':_0x418519['dateEnd']}});}if(_0x5871f6[_0x729e('0x30')][_0x729e('0x41')]){_0x4518e4[_0x729e('0x3c')]=_['merge'](_0x4518e4['where'],{'$or':_[_0x729e('0x42')](_0x4518e4[_0x729e('0x35')],function(_0x28328f){var _0x256e5c={};_0x256e5c[_0x28328f]={'$like':'%'+_0x5871f6['query'][_0x729e('0x41')]+'%'};return _0x256e5c;})});}_0x4518e4=_[_0x729e('0x40')]({},_0x4518e4,_0x5871f6[_0x729e('0x43')]);var _0x25955f={'where':_0x4518e4[_0x729e('0x3c')]};_0x25955f[_0x729e('0x44')]=[];if(_0x5871f6[_0x729e('0x30')][_0x729e('0x45')]){_0x25955f[_0x729e('0x44')][_0x729e('0x46')]({'model':db[_0x729e('0x47')],'as':_0x729e('0x48'),'attributes':['id'],'where':{'id':_0x5871f6['query'][_0x729e('0x45')]},'required':!![]});_0x25955f[_0x729e('0x49')]=!![];}if(_0x5871f6[_0x729e('0x30')]['read']){_0x25955f['include']['push']({'model':db[_0x729e('0x4a')],'as':'Messages','attributes':['id',_0x729e('0x4b'),_0x729e('0x4c'),_0x729e('0x4d')],'where':{'direction':'in','read':_0x5871f6[_0x729e('0x30')]['read']||![]},'required':!![]});_0x25955f[_0x729e('0x49')]=!![];}return db[_0x729e('0x2d')][_0x729e('0x4e')](_0x25955f)[_0x729e('0x25')](function(_0x1afa1d){_0x5bb573['count']=_0x1afa1d;if(_0x5871f6[_0x729e('0x30')][_0x729e('0x4f')]){_0x4518e4['include']=[{'model':db[_0x729e('0x50')],'as':'Users','required':![],'attributes':['id',_0x729e('0x2a'),_0x729e('0x51')]},{'model':db[_0x729e('0x52')],'as':_0x729e('0x53'),'required':![]},{'model':db['User'],'as':'Owner','attributes':[_0x729e('0x2a'),_0x729e('0x51'),_0x729e('0x54')],'required':![]},{'model':db[_0x729e('0x55')],'as':_0x729e('0x56'),'attributes':[_0x729e('0x2a'),_0x729e('0x57')],'required':![]},{'model':db[_0x729e('0x4a')],'as':_0x729e('0x58'),'attributes':['id',_0x729e('0x4b'),_0x729e('0x4c'),_0x729e('0x4d')],'where':{'direction':'in','read':_0x5871f6['query'][_0x729e('0x4d')]||![]},'required':_0x5871f6[_0x729e('0x30')][_0x729e('0x4d')]||![]},{'model':db[_0x729e('0x47')],'as':_0x729e('0x48'),'attributes':['id',_0x729e('0x2a'),_0x729e('0x59')],'required':_0x5871f6[_0x729e('0x30')][_0x729e('0x45')]?!![]:![]},{'model':db[_0x729e('0x47')],'as':_0x729e('0x5a'),'attributes':['id',_0x729e('0x2a'),'color'],'through':_0x5871f6[_0x729e('0x30')]['tag']?{'attributes':[],'where':{'TagId':_0x5871f6[_0x729e('0x30')][_0x729e('0x45')]||undefined}}:{},'required':_0x5871f6[_0x729e('0x30')][_0x729e('0x45')]?!![]:![]}];}return db['FaxInteraction'][_0x729e('0x5b')](_0x4518e4);})['then'](function(_0x3b26e9){_0x5bb573[_0x729e('0x5c')]=_0x3b26e9;return _0x5bb573;})['then'](respondWithFilteredResult(_0x54f816,_0x4518e4))[_0x729e('0x5d')](handleError(_0x54f816,null));};exports[_0x729e('0x5e')]=function(_0x5469f0,_0x2164a0){var _0x26b36c={'raw':![],'where':{'id':_0x5469f0[_0x729e('0x5f')]['id']}},_0x77321c={};_0x77321c[_0x729e('0x2e')]=_['keys'](db[_0x729e('0x2d')][_0x729e('0x60')]);_0x77321c[_0x729e('0x30')]=_[_0x729e('0x2f')](_0x5469f0['query']);_0x77321c[_0x729e('0x33')]=_[_0x729e('0x34')](_0x77321c[_0x729e('0x2e')],_0x77321c[_0x729e('0x30')]);_0x26b36c[_0x729e('0x35')]=_[_0x729e('0x34')](_0x77321c[_0x729e('0x2e')],qs[_0x729e('0x36')](_0x5469f0[_0x729e('0x30')][_0x729e('0x36')]));_0x26b36c[_0x729e('0x35')]=_0x26b36c[_0x729e('0x35')][_0x729e('0x37')]?_0x26b36c['attributes']:_0x77321c[_0x729e('0x2e')];if(_0x5469f0[_0x729e('0x30')][_0x729e('0x4f')]){_0x26b36c[_0x729e('0x44')]=[{'all':!![]}];}_0x26b36c=_[_0x729e('0x40')]({},_0x26b36c,_0x5469f0[_0x729e('0x43')]);return db[_0x729e('0x2d')][_0x729e('0x61')](_0x26b36c)[_0x729e('0x25')](handleEntityNotFound(_0x2164a0,null))[_0x729e('0x25')](respondWithResult(_0x2164a0,null))[_0x729e('0x5d')](handleError(_0x2164a0,null));};exports[_0x729e('0x62')]=function(_0xdb8d6f,_0x29a26a){return db['FaxInteraction'][_0x729e('0x62')](_0xdb8d6f[_0x729e('0x63')],{})[_0x729e('0x25')](respondWithResult(_0x29a26a,0xc9))[_0x729e('0x5d')](handleError(_0x29a26a,null));};exports[_0x729e('0x24')]=function(_0x3ce546,_0x3e8853){if(_0x3ce546[_0x729e('0x63')]['id']){delete _0x3ce546[_0x729e('0x63')]['id'];}return db[_0x729e('0x2d')][_0x729e('0x61')]({'where':{'id':_0x3ce546[_0x729e('0x5f')]['id']}})[_0x729e('0x25')](handleEntityNotFound(_0x3e8853,null))[_0x729e('0x25')](saveUpdates(_0x3ce546[_0x729e('0x63')],null))[_0x729e('0x25')](respondWithResult(_0x3e8853,null))[_0x729e('0x5d')](handleError(_0x3e8853,null));};exports[_0x729e('0x64')]=function(_0x18750f,_0x474b15){return db[_0x729e('0x2d')][_0x729e('0x61')]({'where':{'id':_0x18750f['params']['id']}})[_0x729e('0x25')](handleEntityNotFound(_0x474b15,null))['then'](removeEntity(_0x474b15,null))[_0x729e('0x5d')](handleError(_0x474b15,null));};exports[_0x729e('0x65')]=function(_0x3a7dbc,_0x2eb385){return db[_0x729e('0x2d')][_0x729e('0x65')]()[_0x729e('0x25')](respondWithResult(_0x2eb385,null))[_0x729e('0x5d')](handleError(_0x2eb385,null));};exports[_0x729e('0x66')]=function(_0x3097e1,_0x5d3f08,_0x32a65e){return db[_0x729e('0x4a')][_0x729e('0x61')]({'where':{'id':_0x3097e1['params']['id']}})[_0x729e('0x25')](handleEntityNotFound(_0x5d3f08,null))[_0x729e('0x25')](function(_0x109147){if(_0x109147){return _0x109147[_0x729e('0x66')](_0x3097e1[_0x729e('0x63')][_0x729e('0x67')],_[_0x729e('0x68')](_0x3097e1[_0x729e('0x63')],['ids','id'])||{});}})[_0x729e('0x25')](respondWithResult(_0x5d3f08,null))[_0x729e('0x5d')](handleError(_0x5d3f08,null));};exports[_0x729e('0x69')]=function(_0x4534a9,_0x11c71d,_0x37b91c){var _0x515f21={'raw':![],'where':{}};var _0x3c813={};var _0x1b65a0={'count':0x0,'rows':[]};return db[_0x729e('0x2d')][_0x729e('0x6a')]({'where':{'id':_0x4534a9['params']['id']}})[_0x729e('0x25')](handleEntityNotFound(_0x11c71d,null))[_0x729e('0x25')](function(_0x2beff2){if(_0x2beff2){_0x3c813[_0x729e('0x2e')]=_[_0x729e('0x2f')](db[_0x729e('0x4a')][_0x729e('0x60')]);_0x3c813[_0x729e('0x30')]=_[_0x729e('0x2f')](_0x4534a9[_0x729e('0x30')]);_0x3c813[_0x729e('0x33')]=_['intersection'](_0x3c813[_0x729e('0x2e')],_0x3c813['query']);_0x515f21['attributes']=_[_0x729e('0x34')](_0x3c813[_0x729e('0x2e')],qs[_0x729e('0x36')](_0x4534a9[_0x729e('0x30')][_0x729e('0x36')]));_0x515f21[_0x729e('0x35')]=_0x515f21[_0x729e('0x35')][_0x729e('0x37')]?_0x515f21[_0x729e('0x35')]:_0x3c813[_0x729e('0x2e')];if(!_0x4534a9[_0x729e('0x30')][_0x729e('0x38')](_0x729e('0x39'))){_0x515f21[_0x729e('0x1f')]=qs[_0x729e('0x1f')](_0x4534a9[_0x729e('0x30')]['limit']);_0x515f21[_0x729e('0x1e')]=qs['offset'](_0x4534a9[_0x729e('0x30')][_0x729e('0x1e')]);}_0x515f21[_0x729e('0x3a')]=qs[_0x729e('0x3b')](_0x4534a9[_0x729e('0x30')][_0x729e('0x3b')]);_0x515f21[_0x729e('0x3c')]=qs[_0x729e('0x33')](_[_0x729e('0x3d')](_0x4534a9['query'],_0x3c813['filters']));_0x515f21[_0x729e('0x3c')][_0x729e('0x6b')]=_0x2beff2['id'];if(_0x4534a9['query']['filter']){_0x515f21[_0x729e('0x3c')]=_[_0x729e('0x40')](_0x515f21['where'],{'$or':_[_0x729e('0x42')](_0x515f21[_0x729e('0x35')],function(_0x38b2fa){var _0x1c8b45={};_0x1c8b45[_0x38b2fa]={'$like':'%'+_0x4534a9[_0x729e('0x30')][_0x729e('0x41')]+'%'};return _0x1c8b45;})});}if(_0x4534a9[_0x729e('0x30')]['$gte']){var _0x4e6f13=_0x4534a9['query'][_0x729e('0x6c')][_0x729e('0x6d')](',');var _0xf05ee2={};_0xf05ee2[_0x4e6f13[0x0]]={'$gte':moment(_0x4e6f13[0x1])[_0x729e('0x6e')](_0x729e('0x6f'))};_0x515f21[_0x729e('0x3c')]=_[_0x729e('0x40')](_0x515f21[_0x729e('0x3c')],_0xf05ee2);}_0x515f21=_[_0x729e('0x40')]({},_0x515f21,_0x4534a9[_0x729e('0x43')]);return db['FaxMessage'][_0x729e('0x4e')]({'where':_0x515f21['where']})[_0x729e('0x25')](function(_0x3d1ad3){_0x1b65a0[_0x729e('0x4e')]=_0x3d1ad3;if(_0x4534a9['query']['includeAll']){_0x515f21[_0x729e('0x44')]=[{'all':!![]}];}return db[_0x729e('0x4a')]['findAll'](_0x515f21);})['then'](function(_0x5d17d4){_0x1b65a0[_0x729e('0x5c')]=_0x5d17d4;return _0x1b65a0;});}})['then'](respondWithFilteredResult(_0x11c71d,_0x515f21))[_0x729e('0x5d')](handleError(_0x11c71d,null));};exports[_0x729e('0x70')]=function(_0x3a421c,_0x4200af,_0x582e0c){return db['FaxInteraction'][_0x729e('0x61')]({'where':{'id':_0x3a421c[_0x729e('0x5f')]['id']}})['then'](handleEntityNotFound(_0x4200af,null))[_0x729e('0x25')](function(_0x355acc){if(_0x355acc){return _0x355acc[_0x729e('0x71')](_0x3a421c[_0x729e('0x63')][_0x729e('0x67')],_[_0x729e('0x68')](_0x3a421c[_0x729e('0x63')],[_0x729e('0x67'),'id'])||{})[_0x729e('0x72')](function(){return db[_0x729e('0x47')][_0x729e('0x5b')]({'attributes':['id',_0x729e('0x2a'),'color'],'where':{'id':_0x3a421c['body'][_0x729e('0x67')]}});})['then'](function(_0x564c4f){socket[_0x729e('0x73')]('faxInteractionTags:save',{'id':Number(_0x3a421c[_0x729e('0x5f')]['id']),'tags':_0x564c4f||[]});return{'id':Number(_0x3a421c[_0x729e('0x5f')]['id']),'tags':_0x564c4f||[]};});}})['then'](respondWithResult(_0x4200af,null))[_0x729e('0x5d')](handleError(_0x4200af,null));};exports['removeTags']=function(_0x26375e,_0x3929f2,_0x457ddd){var _0x14a45b;return db['FaxInteraction'][_0x729e('0x61')]({'where':{'id':_0x26375e[_0x729e('0x5f')]['id']}})[_0x729e('0x25')](handleEntityNotFound(_0x3929f2,null))[_0x729e('0x25')](function(_0x58b111){if(_0x58b111){return _0x58b111[_0x729e('0x74')](_0x26375e[_0x729e('0x30')][_0x729e('0x67')]);}})['then'](respondWithStatusCode(_0x3929f2,null))['catch'](handleError(_0x3929f2,null));};exports[_0x729e('0x75')]=function(_0xfdd902,_0x132909){var _0x3bf70f=moment()[_0x729e('0x76')]()['toString']();var _0x28390e=path[_0x729e('0x77')](config[_0x729e('0x78')],_0x729e('0x79'),_0x729e('0x7a'),_0x729e('0x7b'));var _0x2ca38b=path[_0x729e('0x77')](config[_0x729e('0x78')],_0x729e('0x79'),_0x729e('0x7a'),_0x729e('0x7c'));var _0x2bf4f0=path[_0x729e('0x77')](_0x2ca38b,_0x3bf70f);var _0x5e1324=util[_0x729e('0x6e')](_0x729e('0x7d'),_0x3bf70f);var _0x4f6020=path['join'](_0x2ca38b,_0x5e1324);var _0x536f7e=![];return db[_0x729e('0x2d')][_0x729e('0x61')]({'where':{'id':_0xfdd902[_0x729e('0x5f')]['id']}})[_0x729e('0x25')](handleEntityNotFound(_0x132909,null))['then'](function(_0x1659b2){if(_0x1659b2){return _0x1659b2[_0x729e('0x69')]({'attributes':['id',_0x729e('0x63'),_0x729e('0x4c')],'include':[{'model':db['Attachment'],'as':_0x729e('0x7e')}]});}return[];})[_0x729e('0x25')](function(_0x37a56d){_0x536f7e=_0x37a56d[_0x729e('0x37')];if(_0x37a56d[_0x729e('0x37')]){fs[_0x729e('0x7f')](_0x2bf4f0);for(var _0x328ee0=0x0;_0x328ee0<_0x37a56d[_0x729e('0x37')];_0x328ee0++){var _0x3ef4a6=_0x37a56d[_0x328ee0];var _0x3c6b96=_0x3ef4a6[_0x729e('0x7e')];if(_0x3c6b96){var _0x35df63=path[_0x729e('0x77')](_0x28390e,_0x3c6b96[_0x729e('0x80')]);if(fs[_0x729e('0x81')](_0x35df63)){fs[_0x729e('0x82')](_0x35df63)[_0x729e('0x83')](fs[_0x729e('0x84')](path['join'](_0x2bf4f0,_0x3c6b96[_0x729e('0x80')])));}}}}})[_0x729e('0x25')](function(){if(_0x536f7e){return new BPromise(function(_0x592a2b,_0x4f578a){zipdir(_0x2bf4f0,{'saveTo':_0x4f6020},function(_0x3ef00a,_0x1d0d08){if(_0x3ef00a)return _0x4f578a(_0x3ef00a);return _0x592a2b(_0x1d0d08);});});}})[_0x729e('0x25')](function(){if(_0x536f7e){return new BPromise(function(_0x4d4099,_0x2d1836){rimraf(_0x2bf4f0,function(_0x204ebe){if(_0x204ebe)_0x2d1836(_0x204ebe);return _0x4d4099();});});}})[_0x729e('0x25')](function(){if(_0x536f7e){return _0x132909[_0x729e('0x75')](_0x4f6020,_0x5e1324,function(_0x1648d4){if(_0x1648d4){console[_0x729e('0x85')](_0x729e('0x86'),_0x1648d4);}else{fs[_0x729e('0x87')](_0x4f6020);}});}else{return _0x132909[_0x729e('0x27')](0xc8);}})[_0x729e('0x5d')](handleError(_0x132909,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f4d=['events','../../mysqldb','FaxInteraction','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x547456,_0x1de17e){var _0xc1fd7b=function(_0x12be35){while(--_0x12be35){_0x547456['push'](_0x547456['shift']());}};_0xc1fd7b(++_0x1de17e);}(_0x9f4d,0xb0));var _0xd9f4=function(_0x12a020,_0x85b476){_0x12a020=_0x12a020-0x0;var _0x63cddd=_0x9f4d[_0x12a020];return _0x63cddd;};'use strict';var EventEmitter=require(_0xd9f4('0x0'));var FaxInteraction=require(_0xd9f4('0x1'))['db'][_0xd9f4('0x2')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0xd9f4('0x3')](0x0);var events={'afterCreate':_0xd9f4('0x4'),'afterUpdate':_0xd9f4('0x5'),'afterDestroy':_0xd9f4('0x6')};function emitEvent(_0x273eb9){return function(_0x7dccea,_0x5e0ab0,_0x2c39cb){FaxInteractionEvents['emit'](_0x273eb9+':'+_0x7dccea['id'],_0x7dccea);FaxInteractionEvents[_0xd9f4('0x7')](_0x273eb9,_0x7dccea);_0x2c39cb(null);};}for(var e in events){if(events[_0xd9f4('0x8')](e)){var event=events[e];FaxInteraction[_0xd9f4('0x9')](e,emitEvent(event));}}module[_0xd9f4('0xa')]=FaxInteractionEvents;
\ No newline at end of file
+var _0x1752=['remove','emit','hasOwnProperty','hook','exports','../../mysqldb','FaxInteraction','setMaxListeners','save','update'];(function(_0x412587,_0x4ea099){var _0x2f7f2d=function(_0x104379){while(--_0x104379){_0x412587['push'](_0x412587['shift']());}};_0x2f7f2d(++_0x4ea099);}(_0x1752,0xa5));var _0x2175=function(_0x1e113d,_0x7a69f6){_0x1e113d=_0x1e113d-0x0;var _0xb12a75=_0x1752[_0x1e113d];return _0xb12a75;};'use strict';var EventEmitter=require('events');var FaxInteraction=require(_0x2175('0x0'))['db'][_0x2175('0x1')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x2175('0x2')](0x0);var events={'afterCreate':_0x2175('0x3'),'afterUpdate':_0x2175('0x4'),'afterDestroy':_0x2175('0x5')};function emitEvent(_0x56c315){return function(_0x1ee277,_0x22c167,_0x12b8d9){FaxInteractionEvents[_0x2175('0x6')](_0x56c315+':'+_0x1ee277['id'],_0x1ee277);FaxInteractionEvents[_0x2175('0x6')](_0x56c315,_0x1ee277);_0x12b8d9(null);};}for(var e in events){if(events[_0x2175('0x7')](e)){var event=events[e];FaxInteraction[_0x2175('0x8')](e,emitEvent(event));}}module[_0x2175('0x9')]=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2988=['moment','request-promise','./faxInteraction.attributes','exports','define','FaxInteraction','util','../../config/logger'];(function(_0xe2b8fc,_0x3ec76a){var _0x1bfefb=function(_0x11e1ec){while(--_0x11e1ec){_0xe2b8fc['push'](_0xe2b8fc['shift']());}};_0x1bfefb(++_0x3ec76a);}(_0x2988,0x6e));var _0x8298=function(_0x146da4,_0x585d89){_0x146da4=_0x146da4-0x0;var _0x23b03a=_0x2988[_0x146da4];return _0x23b03a;};'use strict';var _=require('lodash');var util=require(_0x8298('0x0'));var logger=require(_0x8298('0x1'))('api');var moment=require(_0x8298('0x2'));var BPromise=require('bluebird');var rp=require(_0x8298('0x3'));var attributes=require(_0x8298('0x4'));module[_0x8298('0x5')]=function(_0x324222,_0x4f6576){return _0x324222[_0x8298('0x6')](_0x8298('0x7'),attributes,{'tableName':'fax_interactions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb79c=['lodash','util','../../config/logger','moment','request-promise','exports','define','fax_interactions'];(function(_0x3964f7,_0x411ad0){var _0x25501d=function(_0xda6551){while(--_0xda6551){_0x3964f7['push'](_0x3964f7['shift']());}};_0x25501d(++_0x411ad0);}(_0xb79c,0x1b0));var _0xcb79=function(_0x1b478b,_0x5e4049){_0x1b478b=_0x1b478b-0x0;var _0x35d4f8=_0xb79c[_0x1b478b];return _0x35d4f8;};'use strict';var _=require(_0xcb79('0x0'));var util=require(_0xcb79('0x1'));var logger=require(_0xcb79('0x2'))('api');var moment=require(_0xcb79('0x3'));var BPromise=require('bluebird');var rp=require(_0xcb79('0x4'));var attributes=require('./faxInteraction.attributes');module[_0xcb79('0x5')]=function(_0x4ff20d,_0x401d06){return _0x4ff20d[_0xcb79('0x6')]('FaxInteraction',attributes,{'tableName':_0xcb79('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b99=['error','code','message','result','UpdateFaxInteraction','FaxInteraction','update','body','options','raw','where','attributes','limit','stringify','catch','find','omit','ids','spread','AddTags','lodash','util','moment','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','./faxInteraction.socket','request','then','info','FaxInteraction,\x20%s,\x20%s','request\x20sent','debug','FaxInteraction,\x20%s,\x20%s,\x20%s'];(function(_0x1def7e,_0x34e251){var _0x3c1e09=function(_0x2f3912){while(--_0x2f3912){_0x1def7e['push'](_0x1def7e['shift']());}};_0x3c1e09(++_0x34e251);}(_0x1b99,0x17c));var _0x91b9=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0x1b99[_0x37c22c];return _0x119d79;};'use strict';var _=require(_0x91b9('0x0'));var util=require(_0x91b9('0x1'));var moment=require(_0x91b9('0x2'));var BPromise=require('bluebird');var rs=require(_0x91b9('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x91b9('0x4'))(_0x91b9('0x5'));var config=require(_0x91b9('0x6'));var jayson=require(_0x91b9('0x7'));var client=jayson[_0x91b9('0x8')][_0x91b9('0x9')]({'port':0x232a});config[_0x91b9('0xa')]=_[_0x91b9('0xb')](config[_0x91b9('0xa')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(config[_0x91b9('0xa')]);require(_0x91b9('0xc'))['register'](socket);function respondWithRpcPromise(_0x291519,_0x4493ba,_0x4e2dc5){return new BPromise(function(_0x5d87a7,_0x59867d){return client[_0x91b9('0xd')](_0x291519,_0x4e2dc5)[_0x91b9('0xe')](function(_0x2f1a17){logger[_0x91b9('0xf')](_0x91b9('0x10'),_0x4493ba,_0x91b9('0x11'));logger[_0x91b9('0x12')](_0x91b9('0x13'),_0x4493ba,_0x91b9('0x11'),JSON['stringify'](_0x2f1a17));if(_0x2f1a17[_0x91b9('0x14')]){if(_0x2f1a17['error'][_0x91b9('0x15')]===0x1f4){logger[_0x91b9('0x14')]('FaxInteraction,\x20%s,\x20%s',_0x4493ba,_0x2f1a17[_0x91b9('0x14')]['message']);return _0x59867d(_0x2f1a17[_0x91b9('0x14')][_0x91b9('0x16')]);}logger[_0x91b9('0x14')](_0x91b9('0x10'),_0x4493ba,_0x2f1a17[_0x91b9('0x14')][_0x91b9('0x16')]);return _0x5d87a7(_0x2f1a17[_0x91b9('0x14')][_0x91b9('0x16')]);}else{logger[_0x91b9('0xf')](_0x91b9('0x10'),_0x4493ba,_0x91b9('0x11'));_0x5d87a7(_0x2f1a17[_0x91b9('0x17')][_0x91b9('0x16')]);}})['catch'](function(_0x579d16){logger[_0x91b9('0x14')]('FaxInteraction,\x20%s,\x20%s',_0x4493ba,_0x579d16);_0x59867d(_0x579d16);});});}exports[_0x91b9('0x18')]=function(_0x532c54){var _0x49adb4=this;return new Promise(function(_0xec1548,_0x424dfd){return db[_0x91b9('0x19')][_0x91b9('0x1a')](_0x532c54[_0x91b9('0x1b')],{'raw':_0x532c54[_0x91b9('0x1c')]?_0x532c54[_0x91b9('0x1c')][_0x91b9('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x532c54[_0x91b9('0x1c')]?_0x532c54[_0x91b9('0x1c')][_0x91b9('0x1e')]||null:null,'attributes':_0x532c54[_0x91b9('0x1c')]?_0x532c54[_0x91b9('0x1c')][_0x91b9('0x1f')]||null:null,'limit':_0x532c54[_0x91b9('0x1c')]?_0x532c54[_0x91b9('0x1c')][_0x91b9('0x20')]||null:null})[_0x91b9('0xe')](function(_0xd07cef){logger[_0x91b9('0xf')](_0x91b9('0x18'),_0x532c54);logger[_0x91b9('0x12')](_0x91b9('0x18'),_0x532c54,JSON[_0x91b9('0x21')](_0xd07cef));_0xec1548(_0xd07cef);})[_0x91b9('0x22')](function(_0x2af290){logger[_0x91b9('0x14')]('UpdateFaxInteraction',_0x2af290[_0x91b9('0x16')],_0x532c54);_0x424dfd(_0x49adb4[_0x91b9('0x14')](0x1f4,_0x2af290[_0x91b9('0x16')]));});});};exports['AddTagsToFaxInteraction']=function(_0x4a0881){return new Promise(function(_0x24ec3c,_0x57097e){return db['FaxInteraction'][_0x91b9('0x23')]({'where':_0x4a0881[_0x91b9('0x1c')]?_0x4a0881['options'][_0x91b9('0x1e')]||null:null})['then'](function(_0x3f8440){if(_0x3f8440){return _0x3f8440['addTags'](_0x4a0881[_0x91b9('0x1b')]['ids'],_[_0x91b9('0x24')](_0x4a0881[_0x91b9('0x1b')],[_0x91b9('0x25'),'id'])||{});}})[_0x91b9('0x26')](function(_0x1d667f){logger[_0x91b9('0xf')](_0x91b9('0x27'),_0x4a0881);logger['debug'](_0x91b9('0x27'),_0x4a0881,JSON[_0x91b9('0x21')](_0x1d667f));_0x24ec3c(_0x1d667f);})['catch'](function(_0x1066e4){logger[_0x91b9('0x14')](_0x91b9('0x27'),_0x1066e4[_0x91b9('0x16')],_0x4a0881);_0x57097e(_this[_0x91b9('0x14')](0x1f4,_0x1066e4['message']));});});};
\ No newline at end of file
+var _0x9791=['attributes','then','AddTagsToFaxInteraction','FaxInteraction','where','addTags','ids','omit','spread','AddTags','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','http','redis','defaults','./faxInteraction.socket','request','request\x20sent','debug','stringify','error','FaxInteraction,\x20%s,\x20%s','message','info','result','catch','UpdateFaxInteraction','update','body','options'];(function(_0x24ae1a,_0xeed885){var _0x1dd15d=function(_0x3f6d1c){while(--_0x3f6d1c){_0x24ae1a['push'](_0x24ae1a['shift']());}};_0x1dd15d(++_0xeed885);}(_0x9791,0x73));var _0x1979=function(_0x24b3d9,_0x4f43f9){_0x24b3d9=_0x24b3d9-0x0;var _0x3c9216=_0x9791[_0x24b3d9];return _0x3c9216;};'use strict';var _=require(_0x1979('0x0'));var util=require('util');var moment=require(_0x1979('0x1'));var BPromise=require('bluebird');var rs=require(_0x1979('0x2'));var fs=require('fs');var Redis=require(_0x1979('0x3'));var db=require(_0x1979('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x1979('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x1979('0x6'));var client=jayson['client'][_0x1979('0x7')]({'port':0x232a});config[_0x1979('0x8')]=_[_0x1979('0x9')](config[_0x1979('0x8')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1979('0x8')]));require(_0x1979('0xa'))['register'](socket);function respondWithRpcPromise(_0x1ae239,_0x2cfcb8,_0x5435bd){return new BPromise(function(_0x54541f,_0x3db990){return client[_0x1979('0xb')](_0x1ae239,_0x5435bd)['then'](function(_0x362f1c){logger['info']('FaxInteraction,\x20%s,\x20%s',_0x2cfcb8,_0x1979('0xc'));logger[_0x1979('0xd')]('FaxInteraction,\x20%s,\x20%s,\x20%s',_0x2cfcb8,_0x1979('0xc'),JSON[_0x1979('0xe')](_0x362f1c));if(_0x362f1c[_0x1979('0xf')]){if(_0x362f1c[_0x1979('0xf')]['code']===0x1f4){logger[_0x1979('0xf')](_0x1979('0x10'),_0x2cfcb8,_0x362f1c[_0x1979('0xf')][_0x1979('0x11')]);return _0x3db990(_0x362f1c[_0x1979('0xf')]['message']);}logger[_0x1979('0xf')](_0x1979('0x10'),_0x2cfcb8,_0x362f1c[_0x1979('0xf')][_0x1979('0x11')]);return _0x54541f(_0x362f1c[_0x1979('0xf')]['message']);}else{logger[_0x1979('0x12')](_0x1979('0x10'),_0x2cfcb8,_0x1979('0xc'));_0x54541f(_0x362f1c[_0x1979('0x13')][_0x1979('0x11')]);}})[_0x1979('0x14')](function(_0xa67874){logger[_0x1979('0xf')](_0x1979('0x10'),_0x2cfcb8,_0xa67874);_0x3db990(_0xa67874);});});}exports[_0x1979('0x15')]=function(_0x36c5c2){var _0x89ed80=this;return new Promise(function(_0x1f18fc,_0x3a53eb){return db['FaxInteraction'][_0x1979('0x16')](_0x36c5c2[_0x1979('0x17')],{'raw':_0x36c5c2['options']?_0x36c5c2[_0x1979('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x36c5c2[_0x1979('0x18')]?_0x36c5c2[_0x1979('0x18')]['where']||null:null,'attributes':_0x36c5c2[_0x1979('0x18')]?_0x36c5c2['options'][_0x1979('0x19')]||null:null,'limit':_0x36c5c2[_0x1979('0x18')]?_0x36c5c2['options']['limit']||null:null})[_0x1979('0x1a')](function(_0x6a228c){logger['info'](_0x1979('0x15'),_0x36c5c2);logger['debug'](_0x1979('0x15'),_0x36c5c2,JSON['stringify'](_0x6a228c));_0x1f18fc(_0x6a228c);})[_0x1979('0x14')](function(_0x46af19){logger[_0x1979('0xf')](_0x1979('0x15'),_0x46af19[_0x1979('0x11')],_0x36c5c2);_0x3a53eb(_0x89ed80[_0x1979('0xf')](0x1f4,_0x46af19['message']));});});};exports[_0x1979('0x1b')]=function(_0x4d5e73){return new Promise(function(_0x4a091e,_0x15157e){return db[_0x1979('0x1c')]['find']({'where':_0x4d5e73[_0x1979('0x18')]?_0x4d5e73[_0x1979('0x18')][_0x1979('0x1d')]||null:null})[_0x1979('0x1a')](function(_0x24104b){if(_0x24104b){return _0x24104b[_0x1979('0x1e')](_0x4d5e73[_0x1979('0x17')][_0x1979('0x1f')],_[_0x1979('0x20')](_0x4d5e73[_0x1979('0x17')],[_0x1979('0x1f'),'id'])||{});}})[_0x1979('0x21')](function(_0x4d873a){logger[_0x1979('0x12')](_0x1979('0x22'),_0x4d5e73);logger['debug'](_0x1979('0x22'),_0x4d5e73,JSON[_0x1979('0xe')](_0x4d873a));_0x4a091e(_0x4d873a);})['catch'](function(_0x1c8008){logger[_0x1979('0xf')](_0x1979('0x22'),_0x1c8008[_0x1979('0x11')],_0x4d5e73);_0x15157e(_this[_0x1979('0xf')](0x1f4,_0x1c8008[_0x1979('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3dae=['faxInteraction:','remove','update','emit','register','length'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x3dae,0x7f));var _0xe3da=function(_0x17da9b,_0x43d15d){_0x17da9b=_0x17da9b-0x0;var _0x2c8907=_0x3dae[_0x17da9b];return _0x2c8907;};'use strict';var FaxInteractionEvents=require('./faxInteraction.events');var events=['save',_0xe3da('0x0'),_0xe3da('0x1')];function createListener(_0x3c6551,_0x44ad4d){return function(_0xcddefd){_0x44ad4d[_0xe3da('0x2')](_0x3c6551,_0xcddefd);};}function removeListener(_0x4fea1a,_0x5f318a){return function(){FaxInteractionEvents['removeListener'](_0x4fea1a,_0x5f318a);};}exports[_0xe3da('0x3')]=function(_0x171e9e){for(var _0x23a919=0x0,_0x5ebf49=events[_0xe3da('0x4')];_0x23a919<_0x5ebf49;_0x23a919++){var _0x333a61=events[_0x23a919];var _0x38120a=createListener(_0xe3da('0x5')+_0x333a61,_0x171e9e);FaxInteractionEvents['on'](_0x333a61,_0x38120a);}};
\ No newline at end of file
+var _0x510d=['./faxInteraction.events','save','remove','emit','removeListener','register','length'];(function(_0x306122,_0x19b49f){var _0x58bc7e=function(_0x82cd13){while(--_0x82cd13){_0x306122['push'](_0x306122['shift']());}};_0x58bc7e(++_0x19b49f);}(_0x510d,0xee));var _0xd510=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x510d[_0x6131cd];return _0x47e916;};'use strict';var FaxInteractionEvents=require(_0xd510('0x0'));var events=[_0xd510('0x1'),_0xd510('0x2'),'update'];function createListener(_0x4f3ab0,_0x26812e){return function(_0x5472c9){_0x26812e[_0xd510('0x3')](_0x4f3ab0,_0x5472c9);};}function removeListener(_0x5934b6,_0x275fd0){return function(){FaxInteractionEvents[_0xd510('0x4')](_0x5934b6,_0x275fd0);};}exports[_0xd510('0x5')]=function(_0x1d2ac9){for(var _0x7ef9c1=0x0,_0x4007d3=events[_0xd510('0x6')];_0x7ef9c1<_0x4007d3;_0x7ef9c1++){var _0x5146b8=events[_0x7ef9c1];var _0x3292c6=createListener('faxInteraction:'+_0x5146b8,_0x1d2ac9);FaxInteractionEvents['on'](_0x5146b8,_0x3292c6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49d1=['fax','faxinteraction:addtags','addTags','/:id','faxinteraction:update','delete','destroy','/:id/tags','removeTags','exports','multer','express','../../config/environment','./faxInteraction.controller','get','index','isAuthenticated','describe','show','/:id/messages','/:id/download','post','create','addMessage','tracked'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x49d1,0x168));var _0x149d=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x49d1[_0x2641f9];return _0x585741;};'use strict';var multer=require(_0x149d('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x149d('0x1'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x149d('0x2'));var controller=require(_0x149d('0x3'));router[_0x149d('0x4')]('/',auth['isAuthenticated'](),controller[_0x149d('0x5')]);router['get']('/describe',auth[_0x149d('0x6')](),controller[_0x149d('0x7')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x149d('0x8')]);router[_0x149d('0x4')](_0x149d('0x9'),auth[_0x149d('0x6')](),controller['getMessages']);router[_0x149d('0x4')](_0x149d('0xa'),auth[_0x149d('0x6')](),controller['download']);router[_0x149d('0xb')]('/',auth[_0x149d('0x6')](),controller[_0x149d('0xc')]);router[_0x149d('0xb')](_0x149d('0x9'),auth[_0x149d('0x6')](),controller[_0x149d('0xd')]);router[_0x149d('0xb')]('/:id/tags',auth[_0x149d('0x6')](),interaction[_0x149d('0xe')](_0x149d('0xf'),_0x149d('0x10')),controller[_0x149d('0x11')]);router['put'](_0x149d('0x12'),auth[_0x149d('0x6')](),interaction[_0x149d('0xe')](_0x149d('0xf'),_0x149d('0x13')),controller['update']);router[_0x149d('0x14')](_0x149d('0x12'),auth[_0x149d('0x6')](),interaction[_0x149d('0xe')](_0x149d('0xf'),'faxinteraction:destroy'),controller[_0x149d('0x15')]);router['delete'](_0x149d('0x16'),auth[_0x149d('0x6')](),controller[_0x149d('0x17')]);module[_0x149d('0x18')]=router;
\ No newline at end of file
+var _0x688d=['multer','util','path','express','../../components/auth/service','../../config/environment','./faxInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','/:id/download','download','post','create','addMessage','/:id/tags','fax','faxinteraction:addtags','addTags','put','tracked','faxinteraction:update','update','destroy','removeTags'];(function(_0x87b0ff,_0x314389){var _0x3bc0b2=function(_0x41682b){while(--_0x41682b){_0x87b0ff['push'](_0x87b0ff['shift']());}};_0x3bc0b2(++_0x314389);}(_0x688d,0x136));var _0xd688=function(_0x157b06,_0x1352ec){_0x157b06=_0x157b06-0x0;var _0x33a8e6=_0x688d[_0x157b06];return _0x33a8e6;};'use strict';var multer=require(_0xd688('0x0'));var util=require(_0xd688('0x1'));var path=require(_0xd688('0x2'));var timeout=require('connect-timeout');var express=require(_0xd688('0x3'));var router=express['Router']();var auth=require(_0xd688('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xd688('0x5'));var controller=require(_0xd688('0x6'));router[_0xd688('0x7')]('/',auth[_0xd688('0x8')](),controller[_0xd688('0x9')]);router[_0xd688('0x7')](_0xd688('0xa'),auth[_0xd688('0x8')](),controller[_0xd688('0xb')]);router['get'](_0xd688('0xc'),auth[_0xd688('0x8')](),controller[_0xd688('0xd')]);router[_0xd688('0x7')](_0xd688('0xe'),auth[_0xd688('0x8')](),controller[_0xd688('0xf')]);router[_0xd688('0x7')](_0xd688('0x10'),auth[_0xd688('0x8')](),controller[_0xd688('0x11')]);router[_0xd688('0x12')]('/',auth[_0xd688('0x8')](),controller[_0xd688('0x13')]);router['post'](_0xd688('0xe'),auth[_0xd688('0x8')](),controller[_0xd688('0x14')]);router[_0xd688('0x12')](_0xd688('0x15'),auth[_0xd688('0x8')](),interaction['tracked'](_0xd688('0x16'),_0xd688('0x17')),controller[_0xd688('0x18')]);router[_0xd688('0x19')](_0xd688('0xc'),auth[_0xd688('0x8')](),interaction[_0xd688('0x1a')]('fax',_0xd688('0x1b')),controller[_0xd688('0x1c')]);router['delete'](_0xd688('0xc'),auth[_0xd688('0x8')](),interaction[_0xd688('0x1a')]('fax','faxinteraction:destroy'),controller[_0xd688('0x1d')]);router['delete'](_0xd688('0x15'),auth[_0xd688('0x8')](),controller[_0xd688('0x1e')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2072=['ENUM','out','TEXT','medium','BOOLEAN'];(function(_0x137e01,_0x407ffc){var _0x586b7e=function(_0x360036){while(--_0x360036){_0x137e01['push'](_0x137e01['shift']());}};_0x586b7e(++_0x407ffc);}(_0x2072,0x1a6));var _0x2207=function(_0x1d0fc5,_0x33b376){_0x1d0fc5=_0x1d0fc5-0x0;var _0x5a9e7e=_0x2072[_0x1d0fc5];return _0x5a9e7e;};'use strict';var Sequelize=require('sequelize');module['exports']={'body':{'type':Sequelize[_0x2207('0x0')](_0x2207('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0x2207('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x2207('0x3')]('in',_0x2207('0x4')),'defaultValue':_0x2207('0x4'),'allowNull':![]},'failMessage':{'type':Sequelize[_0x2207('0x0')],'defaultValue':null},'readAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
+var _0x2b44=['out','DATE','sequelize','TEXT','medium','BOOLEAN','ENUM'];(function(_0x8072e7,_0x5a6939){var _0x46ef5a=function(_0x4c3a88){while(--_0x4c3a88){_0x8072e7['push'](_0x8072e7['shift']());}};_0x46ef5a(++_0x5a6939);}(_0x2b44,0x1d7));var _0x42b4=function(_0x2ab8e9,_0x522bca){_0x2ab8e9=_0x2ab8e9-0x0;var _0x2a0b9f=_0x2b44[_0x2ab8e9];return _0x2a0b9f;};'use strict';var Sequelize=require(_0x42b4('0x0'));module['exports']={'body':{'type':Sequelize[_0x42b4('0x1')](_0x42b4('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x42b4('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x42b4('0x4')]('in',_0x42b4('0x5')),'defaultValue':_0x42b4('0x5'),'allowNull':![]},'failMessage':{'type':Sequelize[_0x42b4('0x1')],'defaultValue':null},'readAt':{'type':Sequelize[_0x42b4('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa49e=['set','apply','reject','then','sendStatus','stack','name','send','index','FaxMessage','rawAttributes','model','keys','query','dateStart','dateEnd','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','where','pick','add','day','merge','filter','map','includeAll','include','rows','show','params','options','body','destroy','find','describe','../../config/logger','accept','fax','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','FaxInteraction','FaxInteractionId','update','isNil','read1stAt','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','EventManager','acceptmessage','get','RejectMessage','event','rejectmessage','create','findOne','Attachment','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','download','join','root','server','files','attachments','basename','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','papaparse','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','register','client','http','request','info','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','FaxMessage,\x20%s,\x20%s','result','catch','status','end','json','count','offset','limit'];(function(_0x46c1d5,_0x5ca335){var _0x40fe7b=function(_0x34cb99){while(--_0x34cb99){_0x46c1d5['push'](_0x46c1d5['shift']());}};_0x40fe7b(++_0x5ca335);}(_0xa49e,0x1de));var _0xea49=function(_0x769935,_0x2311a5){_0x769935=_0x769935-0x0;var _0x24f62e=_0xa49e[_0x769935];return _0x24f62e;};'use strict';var pdf=require(_0xea49('0x0'));var emlformat=require(_0xea49('0x1'));var rimraf=require(_0xea49('0x2'));var zipdir=require(_0xea49('0x3'));var jsonpatch=require(_0xea49('0x4'));var rp=require(_0xea49('0x5'));var moment=require(_0xea49('0x6'));var BPromise=require(_0xea49('0x7'));var Mustache=require('mustache');var util=require(_0xea49('0x8'));var path=require(_0xea49('0x9'));var sox=require(_0xea49('0xa'));var csv=require('to-csv');var ejs=require(_0xea49('0xb'));var fs=require('fs');var _=require(_0xea49('0xc'));var squel=require(_0xea49('0xd'));var crypto=require(_0xea49('0xe'));var jsforce=require(_0xea49('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xea49('0x10'));var querystring=require('querystring');var Papa=require(_0xea49('0x11'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0xea49('0x12'));var config=require(_0xea49('0x13'));var db=require(_0xea49('0x14'))['db'];config[_0xea49('0x15')]=_[_0xea49('0x16')](config[_0xea49('0x15')],{'host':_0xea49('0x17'),'port':0x18eb});var socket=require(_0xea49('0x18'))(config[_0xea49('0x15')]);require(_0xea49('0x19'))[_0xea49('0x1a')](socket);var jayson=require('jayson/promise');var client=jayson[_0xea49('0x1b')][_0xea49('0x1c')]({'port':0x232c});var client9002=jayson[_0xea49('0x1b')][_0xea49('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x499800,_0x4425a2,_0x47723b,_0x53b66c){return new BPromise(function(_0x21047d,_0x415114){var _0x20a73d=_0x53b66c||client;return _0x20a73d[_0xea49('0x1d')](_0x499800,_0x47723b)['then'](function(_0x538efa){logger[_0xea49('0x1e')]('FaxMessage,\x20%s,\x20%s',_0x4425a2,_0xea49('0x1f'));logger[_0xea49('0x20')](_0xea49('0x21'),_0x4425a2,'request\x20sent',JSON[_0xea49('0x22')](_0x538efa));if(_0x538efa[_0xea49('0x23')]){if(_0x538efa[_0xea49('0x23')]['code']===0x1f4){logger[_0xea49('0x23')]('FaxMessage,\x20%s,\x20%s',_0x4425a2,_0x538efa[_0xea49('0x23')][_0xea49('0x24')]);return _0x415114(_0x538efa[_0xea49('0x23')][_0xea49('0x24')]);}logger[_0xea49('0x23')](_0xea49('0x25'),_0x4425a2,_0x538efa[_0xea49('0x23')][_0xea49('0x24')]);return _0x21047d(_0x538efa['error'][_0xea49('0x24')]);}else{logger['info'](_0xea49('0x25'),_0x4425a2,_0xea49('0x1f'));_0x21047d(_0x538efa[_0xea49('0x26')][_0xea49('0x24')]);}})[_0xea49('0x27')](function(_0x4b22d8){logger[_0xea49('0x23')](_0xea49('0x25'),_0x4425a2,_0x4b22d8);_0x415114(_0x4b22d8);});});}function respondWithStatusCode(_0x2c4751,_0x3b25d2){_0x3b25d2=_0x3b25d2||0xcc;return function(_0xb13981){if(_0xb13981){return _0x2c4751['sendStatus'](_0x3b25d2);}return _0x2c4751[_0xea49('0x28')](_0x3b25d2)[_0xea49('0x29')]();};}function respondWithResult(_0x2dc11b,_0xfd82fe){_0xfd82fe=_0xfd82fe||0xc8;return function(_0x48deb4){if(_0x48deb4){return _0x2dc11b[_0xea49('0x28')](_0xfd82fe)[_0xea49('0x2a')](_0x48deb4);}};}function respondWithFilteredResult(_0x2c5f8d,_0x180d2b){return function(_0x406332){if(_0x406332){var _0x4b39a4=_0x406332[_0xea49('0x2b')],_0x19ba26=_0x180d2b[_0xea49('0x2c')],_0x440af9=_0x180d2b[_0xea49('0x2c')]+_0x180d2b[_0xea49('0x2d')],_0x2a753e;if(_0x440af9>=_0x4b39a4){_0x440af9=_0x4b39a4;_0x2a753e=0xc8;}else{_0x2a753e=0xce;}_0x2c5f8d[_0xea49('0x28')](_0x2a753e);return _0x2c5f8d[_0xea49('0x2e')]('Content-Range',_0x19ba26+'-'+_0x440af9+'/'+_0x4b39a4)['json'](_0x406332);}return null;};}function patchUpdates(_0x1e63a2){return function(_0x268266){try{jsonpatch[_0xea49('0x2f')](_0x268266,_0x1e63a2,!![]);}catch(_0x56d69c){return BPromise[_0xea49('0x30')](_0x56d69c);}return _0x268266['save']();};}function saveUpdates(_0x4e7bd6,_0x1fdd1e){return function(_0x1ab854){if(_0x1ab854){return _0x1ab854['update'](_0x4e7bd6)[_0xea49('0x31')](function(_0x4cd235){return _0x4cd235;});}return null;};}function removeEntity(_0x11d773,_0x3c478e){return function(_0xe41ea){if(_0xe41ea){return _0xe41ea['destroy']()[_0xea49('0x31')](function(){_0x11d773[_0xea49('0x28')](0xcc)[_0xea49('0x29')]();});}};}function handleEntityNotFound(_0x42894e,_0x23f32c){return function(_0x720dfe){if(!_0x720dfe){_0x42894e[_0xea49('0x32')](0x194);}return _0x720dfe;};}function handleError(_0x22bdb9,_0xa7dee5){_0xa7dee5=_0xa7dee5||0x1f4;return function(_0x502026){logger[_0xea49('0x23')](_0x502026[_0xea49('0x33')]);if(_0x502026[_0xea49('0x34')]){delete _0x502026['name'];}_0x22bdb9[_0xea49('0x28')](_0xa7dee5)[_0xea49('0x35')](_0x502026);};}exports[_0xea49('0x36')]=function(_0x2d5f89,_0x5d771a){var _0x4079c8={},_0x10a21c={},_0xbfdf56={'count':0x0,'rows':[]};var _0xac7d19=db[_0xea49('0x37')][_0xea49('0x38')];_0x10a21c[_0xea49('0x39')]=_[_0xea49('0x3a')](_0xac7d19);var _0x379ec3={'dateStart':_0x2d5f89[_0xea49('0x3b')][_0xea49('0x3c')],'dateEnd':_0x2d5f89[_0xea49('0x3b')][_0xea49('0x3d')]};delete _0x2d5f89['query']['dateStart'];delete _0x2d5f89[_0xea49('0x3b')][_0xea49('0x3d')];_0x10a21c['query']=_[_0xea49('0x3a')](_0x2d5f89[_0xea49('0x3b')]);_0x10a21c['filters']=_['intersection'](_0x10a21c['model'],_0x10a21c[_0xea49('0x3b')]);_0x4079c8[_0xea49('0x3e')]=_[_0xea49('0x3f')](_0x10a21c['model'],qs[_0xea49('0x40')](_0x2d5f89[_0xea49('0x3b')]['fields']));_0x4079c8[_0xea49('0x3e')]=_0x4079c8[_0xea49('0x3e')][_0xea49('0x41')]?_0x4079c8['attributes']:_0x10a21c[_0xea49('0x39')];if(!_0x2d5f89[_0xea49('0x3b')][_0xea49('0x42')](_0xea49('0x43'))){_0x4079c8['limit']=qs[_0xea49('0x2d')](_0x2d5f89[_0xea49('0x3b')][_0xea49('0x2d')]);_0x4079c8[_0xea49('0x2c')]=qs[_0xea49('0x2c')](_0x2d5f89['query'][_0xea49('0x2c')]);}_0x4079c8[_0xea49('0x44')]=qs['sort'](_0x2d5f89[_0xea49('0x3b')]['sort']);_0x4079c8[_0xea49('0x45')]=qs['filters'](_[_0xea49('0x46')](_0x2d5f89['query'],_0x10a21c['filters']));if(_0x379ec3[_0xea49('0x3c')]){if(_0x379ec3['dateEnd']){_0x379ec3[_0xea49('0x3d')]=moment(_0x379ec3[_0xea49('0x3d')])[_0xea49('0x47')](0x1,_0xea49('0x48'));}else{_0x379ec3['dateEnd']=moment(_0x379ec3['dateStart'])['add'](0x1,'day');}_[_0xea49('0x49')](_0x4079c8[_0xea49('0x45')],{'createdAt':{'$gte':_0x379ec3[_0xea49('0x3c')],'$lte':_0x379ec3[_0xea49('0x3d')]}});}if(_0x2d5f89[_0xea49('0x3b')][_0xea49('0x4a')]){_0x4079c8[_0xea49('0x45')]=_[_0xea49('0x49')](_0x4079c8[_0xea49('0x45')],{'$or':_[_0xea49('0x4b')](_0x4079c8[_0xea49('0x3e')],function(_0x149cf4){var _0x408130={};_0x408130[_0x149cf4]={'$like':'%'+_0x2d5f89[_0xea49('0x3b')][_0xea49('0x4a')]+'%'};return _0x408130;})});}_0x4079c8=_[_0xea49('0x49')]({},_0x4079c8,_0x2d5f89['options']);var _0x1c4758={'where':_0x4079c8[_0xea49('0x45')]};return db[_0xea49('0x37')]['count'](_0x1c4758)[_0xea49('0x31')](function(_0x4f6502){_0xbfdf56['count']=_0x4f6502;if(_0x2d5f89['query'][_0xea49('0x4c')]){_0x4079c8[_0xea49('0x4d')]=[{'all':!![]}];}return db[_0xea49('0x37')]['findAll'](_0x4079c8);})[_0xea49('0x31')](function(_0x5b3ad7){_0xbfdf56[_0xea49('0x4e')]=_0x5b3ad7;return _0xbfdf56;})['then'](respondWithFilteredResult(_0x5d771a,_0x4079c8))[_0xea49('0x27')](handleError(_0x5d771a,null));};exports[_0xea49('0x4f')]=function(_0x19629a,_0x2095f3){var _0x14fea0={'raw':!![],'where':{'id':_0x19629a[_0xea49('0x50')]['id']}},_0xeac1e5={};_0xeac1e5['model']=_[_0xea49('0x3a')](db[_0xea49('0x37')][_0xea49('0x38')]);_0xeac1e5[_0xea49('0x3b')]=_[_0xea49('0x3a')](_0x19629a[_0xea49('0x3b')]);_0xeac1e5['filters']=_['intersection'](_0xeac1e5[_0xea49('0x39')],_0xeac1e5[_0xea49('0x3b')]);_0x14fea0[_0xea49('0x3e')]=_[_0xea49('0x3f')](_0xeac1e5[_0xea49('0x39')],qs['fields'](_0x19629a[_0xea49('0x3b')][_0xea49('0x40')]));_0x14fea0[_0xea49('0x3e')]=_0x14fea0[_0xea49('0x3e')][_0xea49('0x41')]?_0x14fea0[_0xea49('0x3e')]:_0xeac1e5[_0xea49('0x39')];if(_0x19629a['query']['includeAll']){_0x14fea0['include']=[{'all':!![]}];}_0x14fea0=_['merge']({},_0x14fea0,_0x19629a[_0xea49('0x51')]);return db[_0xea49('0x37')]['find'](_0x14fea0)[_0xea49('0x31')](handleEntityNotFound(_0x2095f3,null))[_0xea49('0x31')](respondWithResult(_0x2095f3,null))['catch'](handleError(_0x2095f3,null));};exports['update']=function(_0x3bf242,_0x9487a8){if(_0x3bf242[_0xea49('0x52')]['id']){delete _0x3bf242[_0xea49('0x52')]['id'];}return db[_0xea49('0x37')]['find']({'where':{'id':_0x3bf242[_0xea49('0x50')]['id']}})[_0xea49('0x31')](handleEntityNotFound(_0x9487a8,null))[_0xea49('0x31')](saveUpdates(_0x3bf242[_0xea49('0x52')],null))['then'](respondWithResult(_0x9487a8,null))[_0xea49('0x27')](handleError(_0x9487a8,null));};exports[_0xea49('0x53')]=function(_0x13cbba,_0x4e8f91){return db[_0xea49('0x37')][_0xea49('0x54')]({'where':{'id':_0x13cbba[_0xea49('0x50')]['id']}})[_0xea49('0x31')](handleEntityNotFound(_0x4e8f91,null))[_0xea49('0x31')](removeEntity(_0x4e8f91,null))[_0xea49('0x27')](handleError(_0x4e8f91,null));};exports[_0xea49('0x55')]=function(_0x2f8d4b,_0x51e24a){return db[_0xea49('0x37')][_0xea49('0x55')]()[_0xea49('0x31')](respondWithResult(_0x51e24a,null))[_0xea49('0x27')](handleError(_0x51e24a,null));};var interaction_log=require(_0xea49('0x56'))('fax-interactions');exports[_0xea49('0x57')]=function(_0x5ac13b,_0x47644e,_0x53aaaa){var _0x57ec10={'channel':_0xea49('0x58')};if(_0x5ac13b[_0xea49('0x52')]['id']){delete _0x5ac13b[_0xea49('0x52')]['id'];}_0x5ac13b['body'][_0xea49('0x59')]=!![];_0x5ac13b[_0xea49('0x52')][_0xea49('0x5a')]=moment()[_0xea49('0x5b')](_0xea49('0x5c'));_0x5ac13b[_0xea49('0x52')][_0xea49('0x5d')]=_0x5ac13b[_0xea49('0x52')]['UserId']||_0x5ac13b['user']['id'];return db[_0xea49('0x37')][_0xea49('0x54')]({'where':{'id':_0x5ac13b[_0xea49('0x50')]['id'],'UserId':null},'include':[{'model':db[_0xea49('0x5e')],'as':'Contact'}]})[_0xea49('0x31')](handleEntityNotFound(_0x47644e,null))[_0xea49('0x31')](saveUpdates(_0x5ac13b[_0xea49('0x52')],null))[_0xea49('0x31')](function(_0x4571a9){if(_0x4571a9){_0x57ec10[_0xea49('0x24')]=_0x4571a9['get']({'plain':!![]});return db[_0xea49('0x5f')]['find']({'where':{'id':_0x4571a9[_0xea49('0x60')]}});}return null;})[_0xea49('0x31')](handleEntityNotFound(_0x47644e,null))[_0xea49('0x31')](function(_0x1a5b47){if(_0x1a5b47){return _0x1a5b47[_0xea49('0x61')]({'UserId':_0x5ac13b[_0xea49('0x52')][_0xea49('0x5d')],'read1stAt':_[_0xea49('0x62')](_0x1a5b47[_0xea49('0x63')])?moment()[_0xea49('0x5b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xea49('0x31')](function(_0x4ab5f1){if(_0x4ab5f1){_0x57ec10[_0xea49('0x64')]=_0x4ab5f1['get']({'plain':!![]});interaction_log[_0xea49('0x1e')](_0xea49('0x65'),_0x5ac13b['user']['id'],_0x5ac13b[_0xea49('0x66')][_0xea49('0x34')],_0x5ac13b[_0xea49('0x66')][_0xea49('0x67')],_0x57ec10['interaction']['id'],_0x5ac13b[_0xea49('0x52')]?JSON['stringify'](_0x5ac13b[_0xea49('0x52')]):_0xea49('0x68'));return respondWithRpcPromise(_0xea49('0x69'),_0xea49('0x6a'),_0x57ec10);}return null;})[_0xea49('0x31')](function(_0x1e19c0){if(_0x1e19c0){if(_0x5ac13b[_0xea49('0x52')][_0xea49('0x6b')]){_0x57ec10[_0xea49('0x24')][_0xea49('0x6c')]=util['format'](_0xea49('0x6d'),_0x5ac13b[_0xea49('0x66')]['name']);_0x57ec10[_0xea49('0x24')][_0xea49('0x6e')]=_0x57ec10[_0xea49('0x6e')];_0x57ec10['message']['event']='accept';return respondWithRpcPromise('EventManager',_0xea49('0x6f'),{'event':_0xea49('0x70'),'message':_0x57ec10[_0xea49('0x24')]},client9002)[_0xea49('0x31')](function(){return _0x57ec10;});}return _0x57ec10;}return null;})[_0xea49('0x31')](respondWithResult(_0x47644e,null))[_0xea49('0x27')](handleError(_0x47644e,null));};var interaction_log=require(_0xea49('0x56'))('fax-interactions');exports[_0xea49('0x30')]=function(_0x4330aa,_0x156a1d,_0x411e9c){var _0x1cd988={'agent':{},'channel':_0xea49('0x58')};if(_0x4330aa[_0xea49('0x52')]['id']){delete _0x4330aa[_0xea49('0x52')]['id'];}_0x4330aa['body'][_0xea49('0x5d')]=_0x4330aa[_0xea49('0x52')]['UserId']||_0x4330aa[_0xea49('0x66')]['id'];_0x1cd988['agent']['id']=_0x4330aa['body']['UserId'];return db[_0xea49('0x37')][_0xea49('0x54')]({'where':{'id':_0x4330aa['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x156a1d,null))[_0xea49('0x31')](function(_0x63f0c6){if(_0x63f0c6){_0x1cd988[_0xea49('0x24')]=_0x63f0c6['get']({'plain':!![]});return db[_0xea49('0x5f')]['find']({'where':{'id':_0x63f0c6[_0xea49('0x60')]}});}return null;})[_0xea49('0x31')](handleEntityNotFound(_0x156a1d,null))[_0xea49('0x31')](function(_0x29c6a0){if(_0x29c6a0){_0x1cd988[_0xea49('0x64')]=_0x29c6a0[_0xea49('0x71')]({'plain':!![]});interaction_log[_0xea49('0x1e')]('[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4330aa[_0xea49('0x66')]['id'],_0x4330aa[_0xea49('0x66')][_0xea49('0x34')],_0x4330aa['user'][_0xea49('0x67')],_0x1cd988[_0xea49('0x64')]['id'],_0x4330aa[_0xea49('0x52')]?JSON['stringify'](_0x4330aa[_0xea49('0x52')]):_0xea49('0x68'));return respondWithRpcPromise(_0xea49('0x72'),'rejectMessage',_0x1cd988);}return null;})['then'](function(_0xa922a5){if(_0xa922a5){_0xa922a5['message'][_0xea49('0x6c')]=util[_0xea49('0x5b')]('SIP/%s',_0x4330aa[_0xea49('0x66')]['name']);_0xa922a5['message'][_0xea49('0x6e')]=_0x1cd988[_0xea49('0x6e')];_0xa922a5['message'][_0xea49('0x73')]='reject';respondWithRpcPromise(_0xea49('0x6f'),_0xea49('0x6f'),{'event':_0xea49('0x74'),'message':_0xa922a5[_0xea49('0x24')]},client9002);return _0x1cd988;}return null;})[_0xea49('0x31')](respondWithResult(_0x156a1d,null))[_0xea49('0x27')](handleError(_0x156a1d,null));};exports[_0xea49('0x75')]=function(_0x5db227,_0xc4012b){var _0x594405;return db[_0xea49('0x37')][_0xea49('0x75')](_0x5db227['body'],{})[_0xea49('0x31')](function(_0x57b2ab){_0x594405=_0x57b2ab;return db[_0xea49('0x5e')][_0xea49('0x76')]({'where':{'id':_0x594405['ContactId']}});})[_0xea49('0x31')](function(_0x5cba88){if(_[_0xea49('0x62')](_0x5cba88)){return;}else{_0x594405[_0xea49('0x58')]=_0x5cba88[_0xea49('0x58')];return db[_0xea49('0x77')][_0xea49('0x76')]({'where':{'id':_0x594405[_0xea49('0x78')]}});}})[_0xea49('0x31')](function(_0x405ad1){return respondWithRpcPromise(_0xea49('0x79'),_0xea49('0x79'),{'FaxAccountId':_[_0xea49('0x62')](_0x5db227[_0xea49('0x52')])?undefined:_0x5db227[_0xea49('0x52')][_0xea49('0x7a')],'path':_[_0xea49('0x62')](_0x405ad1)?undefined:util[_0xea49('0x5b')](_0xea49('0x7b'),_0x405ad1['basename']),'fax':_[_0xea49('0x62')](_0x594405[_0xea49('0x58')])?undefined:_0x594405['fax'],'AttachmentId':_0x594405[_0xea49('0x78')]},client9002);})[_0xea49('0x31')](respondWithResult(_0xc4012b,0xc9))[_0xea49('0x27')](handleError(_0xc4012b,null));};exports[_0xea49('0x7c')]=function(_0x29ddf9,_0x375a15){var _0x5aafc9=path[_0xea49('0x7d')](config[_0xea49('0x7e')],_0xea49('0x7f'),_0xea49('0x80'),_0xea49('0x81'));return db[_0xea49('0x37')]['find']({'where':{'id':_0x29ddf9['params']['id']},'include':[{'model':db[_0xea49('0x77')],'as':_0xea49('0x77')}]})[_0xea49('0x31')](handleEntityNotFound(_0x375a15,null))['then'](function(_0x49d0e6){if(_0x49d0e6){return _0x375a15['download'](path[_0xea49('0x7d')](_0x5aafc9,_0x49d0e6[_0xea49('0x77')][_0xea49('0x82')]));}})[_0xea49('0x27')](handleError(_0x375a15,null));};
\ No newline at end of file
+var _0xcb3f=['../../config/logger','reject','agent','get','FaxInteraction','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','findOne','Attachment','AttachmentId','SendFax','FaxAccountId','basename','download','join','root','files','attachments','html-pdf','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./faxMessage.socket','jayson/promise','client','http','request','then','info','FaxMessage,\x20%s,\x20%s','debug','FaxMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','destroy','stack','name','send','index','FaxMessage','keys','query','dateEnd','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','where','pick','dateStart','add','day','filter','merge','options','include','findAll','show','params','rawAttributes','includeAll','find','body','describe','fax-interactions','accept','fax','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','FaxInteractionId','isNil','read1stAt','format','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','interaction','stringify','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage'];(function(_0x23467a,_0x41c08a){var _0x14470f=function(_0x275e09){while(--_0x275e09){_0x23467a['push'](_0x23467a['shift']());}};_0x14470f(++_0x41c08a);}(_0xcb3f,0x118));var _0xfcb3=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0xcb3f[_0x1d1779];return _0x2377e9;};'use strict';var pdf=require(_0xfcb3('0x0'));var emlformat=require(_0xfcb3('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xfcb3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfcb3('0x3'));var moment=require(_0xfcb3('0x4'));var BPromise=require(_0xfcb3('0x5'));var Mustache=require(_0xfcb3('0x6'));var util=require(_0xfcb3('0x7'));var path=require(_0xfcb3('0x8'));var sox=require(_0xfcb3('0x9'));var csv=require('to-csv');var ejs=require(_0xfcb3('0xa'));var fs=require('fs');var _=require(_0xfcb3('0xb'));var squel=require(_0xfcb3('0xc'));var crypto=require('crypto');var jsforce=require(_0xfcb3('0xd'));var deskjs=require(_0xfcb3('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xfcb3('0xf'));var Redis=require(_0xfcb3('0x10'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0xfcb3('0x11'));var config=require(_0xfcb3('0x12'));var db=require(_0xfcb3('0x13'))['db'];config[_0xfcb3('0x14')]=_[_0xfcb3('0x15')](config[_0xfcb3('0x14')],{'host':'localhost','port':0x18eb});var socket=require(_0xfcb3('0x16'))(new Redis(config[_0xfcb3('0x14')]));require(_0xfcb3('0x17'))['register'](socket);var jayson=require(_0xfcb3('0x18'));var client=jayson[_0xfcb3('0x19')][_0xfcb3('0x1a')]({'port':0x232c});var client9002=jayson[_0xfcb3('0x19')][_0xfcb3('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x4ddd91,_0x2124fd,_0x399098,_0x2821db){return new BPromise(function(_0x33c172,_0x45c00e){var _0x1e004a=_0x2821db||client;return _0x1e004a[_0xfcb3('0x1b')](_0x4ddd91,_0x399098)[_0xfcb3('0x1c')](function(_0x356ee9){logger[_0xfcb3('0x1d')](_0xfcb3('0x1e'),_0x2124fd,'request\x20sent');logger[_0xfcb3('0x1f')](_0xfcb3('0x20'),_0x2124fd,_0xfcb3('0x21'),JSON['stringify'](_0x356ee9));if(_0x356ee9[_0xfcb3('0x22')]){if(_0x356ee9[_0xfcb3('0x22')][_0xfcb3('0x23')]===0x1f4){logger[_0xfcb3('0x22')](_0xfcb3('0x1e'),_0x2124fd,_0x356ee9['error']['message']);return _0x45c00e(_0x356ee9[_0xfcb3('0x22')][_0xfcb3('0x24')]);}logger[_0xfcb3('0x22')](_0xfcb3('0x1e'),_0x2124fd,_0x356ee9['error']['message']);return _0x33c172(_0x356ee9[_0xfcb3('0x22')]['message']);}else{logger['info']('FaxMessage,\x20%s,\x20%s',_0x2124fd,_0xfcb3('0x21'));_0x33c172(_0x356ee9[_0xfcb3('0x25')][_0xfcb3('0x24')]);}})[_0xfcb3('0x26')](function(_0x222192){logger[_0xfcb3('0x22')](_0xfcb3('0x1e'),_0x2124fd,_0x222192);_0x45c00e(_0x222192);});});}function respondWithStatusCode(_0x4c619b,_0x4044b9){_0x4044b9=_0x4044b9||0xcc;return function(_0x13b03f){if(_0x13b03f){return _0x4c619b[_0xfcb3('0x27')](_0x4044b9);}return _0x4c619b[_0xfcb3('0x28')](_0x4044b9)[_0xfcb3('0x29')]();};}function respondWithResult(_0x9963ba,_0x13cf5c){_0x13cf5c=_0x13cf5c||0xc8;return function(_0x949179){if(_0x949179){return _0x9963ba[_0xfcb3('0x28')](_0x13cf5c)[_0xfcb3('0x2a')](_0x949179);}};}function respondWithFilteredResult(_0x2b5c96,_0x17aafb){return function(_0x43b2eb){if(_0x43b2eb){var _0x2e0f78=_0x43b2eb[_0xfcb3('0x2b')],_0x207d44=_0x17aafb[_0xfcb3('0x2c')],_0x21fa8d=_0x17aafb[_0xfcb3('0x2c')]+_0x17aafb[_0xfcb3('0x2d')],_0x2eff9b;if(_0x21fa8d>=_0x2e0f78){_0x21fa8d=_0x2e0f78;_0x2eff9b=0xc8;}else{_0x2eff9b=0xce;}_0x2b5c96[_0xfcb3('0x28')](_0x2eff9b);return _0x2b5c96['set'](_0xfcb3('0x2e'),_0x207d44+'-'+_0x21fa8d+'/'+_0x2e0f78)[_0xfcb3('0x2a')](_0x43b2eb);}return null;};}function patchUpdates(_0x3e9884){return function(_0xe75184){try{jsonpatch[_0xfcb3('0x2f')](_0xe75184,_0x3e9884,!![]);}catch(_0x295a18){return BPromise['reject'](_0x295a18);}return _0xe75184[_0xfcb3('0x30')]();};}function saveUpdates(_0x14e8bb,_0x56bf6c){return function(_0x1e3918){if(_0x1e3918){return _0x1e3918[_0xfcb3('0x31')](_0x14e8bb)[_0xfcb3('0x1c')](function(_0x24defd){return _0x24defd;});}return null;};}function removeEntity(_0x4176a2,_0x11cf43){return function(_0x548a2e){if(_0x548a2e){return _0x548a2e[_0xfcb3('0x32')]()['then'](function(){_0x4176a2[_0xfcb3('0x28')](0xcc)[_0xfcb3('0x29')]();});}};}function handleEntityNotFound(_0x39bb9f,_0x3bb5d9){return function(_0x134d32){if(!_0x134d32){_0x39bb9f[_0xfcb3('0x27')](0x194);}return _0x134d32;};}function handleError(_0x167249,_0x4c9879){_0x4c9879=_0x4c9879||0x1f4;return function(_0x5ae92f){logger['error'](_0x5ae92f[_0xfcb3('0x33')]);if(_0x5ae92f[_0xfcb3('0x34')]){delete _0x5ae92f['name'];}_0x167249[_0xfcb3('0x28')](_0x4c9879)[_0xfcb3('0x35')](_0x5ae92f);};}exports[_0xfcb3('0x36')]=function(_0x28a709,_0xca7cfc){var _0xcfe738={},_0x3c54ae={},_0x55e185={'count':0x0,'rows':[]};var _0x3c3bb5=db[_0xfcb3('0x37')]['rawAttributes'];_0x3c54ae['model']=_[_0xfcb3('0x38')](_0x3c3bb5);var _0x15d1e1={'dateStart':_0x28a709[_0xfcb3('0x39')]['dateStart'],'dateEnd':_0x28a709[_0xfcb3('0x39')][_0xfcb3('0x3a')]};delete _0x28a709[_0xfcb3('0x39')]['dateStart'];delete _0x28a709[_0xfcb3('0x39')]['dateEnd'];_0x3c54ae[_0xfcb3('0x39')]=_[_0xfcb3('0x38')](_0x28a709[_0xfcb3('0x39')]);_0x3c54ae[_0xfcb3('0x3b')]=_[_0xfcb3('0x3c')](_0x3c54ae[_0xfcb3('0x3d')],_0x3c54ae['query']);_0xcfe738['attributes']=_['intersection'](_0x3c54ae['model'],qs['fields'](_0x28a709['query'][_0xfcb3('0x3e')]));_0xcfe738[_0xfcb3('0x3f')]=_0xcfe738['attributes'][_0xfcb3('0x40')]?_0xcfe738['attributes']:_0x3c54ae[_0xfcb3('0x3d')];if(!_0x28a709['query'][_0xfcb3('0x41')]('nolimit')){_0xcfe738[_0xfcb3('0x2d')]=qs[_0xfcb3('0x2d')](_0x28a709[_0xfcb3('0x39')][_0xfcb3('0x2d')]);_0xcfe738[_0xfcb3('0x2c')]=qs[_0xfcb3('0x2c')](_0x28a709['query'][_0xfcb3('0x2c')]);}_0xcfe738[_0xfcb3('0x42')]=qs[_0xfcb3('0x43')](_0x28a709['query'][_0xfcb3('0x43')]);_0xcfe738[_0xfcb3('0x44')]=qs[_0xfcb3('0x3b')](_[_0xfcb3('0x45')](_0x28a709[_0xfcb3('0x39')],_0x3c54ae['filters']));if(_0x15d1e1[_0xfcb3('0x46')]){if(_0x15d1e1[_0xfcb3('0x3a')]){_0x15d1e1[_0xfcb3('0x3a')]=moment(_0x15d1e1[_0xfcb3('0x3a')])[_0xfcb3('0x47')](0x1,_0xfcb3('0x48'));}else{_0x15d1e1[_0xfcb3('0x3a')]=moment(_0x15d1e1[_0xfcb3('0x46')])[_0xfcb3('0x47')](0x1,_0xfcb3('0x48'));}_['merge'](_0xcfe738[_0xfcb3('0x44')],{'createdAt':{'$gte':_0x15d1e1[_0xfcb3('0x46')],'$lte':_0x15d1e1[_0xfcb3('0x3a')]}});}if(_0x28a709['query'][_0xfcb3('0x49')]){_0xcfe738[_0xfcb3('0x44')]=_[_0xfcb3('0x4a')](_0xcfe738['where'],{'$or':_['map'](_0xcfe738[_0xfcb3('0x3f')],function(_0x9276f7){var _0x1e859b={};_0x1e859b[_0x9276f7]={'$like':'%'+_0x28a709[_0xfcb3('0x39')][_0xfcb3('0x49')]+'%'};return _0x1e859b;})});}_0xcfe738=_[_0xfcb3('0x4a')]({},_0xcfe738,_0x28a709[_0xfcb3('0x4b')]);var _0x3f0414={'where':_0xcfe738[_0xfcb3('0x44')]};return db[_0xfcb3('0x37')]['count'](_0x3f0414)[_0xfcb3('0x1c')](function(_0x4dfbf7){_0x55e185[_0xfcb3('0x2b')]=_0x4dfbf7;if(_0x28a709[_0xfcb3('0x39')]['includeAll']){_0xcfe738[_0xfcb3('0x4c')]=[{'all':!![]}];}return db[_0xfcb3('0x37')][_0xfcb3('0x4d')](_0xcfe738);})[_0xfcb3('0x1c')](function(_0x9dd90c){_0x55e185['rows']=_0x9dd90c;return _0x55e185;})[_0xfcb3('0x1c')](respondWithFilteredResult(_0xca7cfc,_0xcfe738))[_0xfcb3('0x26')](handleError(_0xca7cfc,null));};exports[_0xfcb3('0x4e')]=function(_0x66bb9f,_0x42498d){var _0x58f094={'raw':!![],'where':{'id':_0x66bb9f[_0xfcb3('0x4f')]['id']}},_0x5f48e3={};_0x5f48e3[_0xfcb3('0x3d')]=_[_0xfcb3('0x38')](db[_0xfcb3('0x37')][_0xfcb3('0x50')]);_0x5f48e3[_0xfcb3('0x39')]=_[_0xfcb3('0x38')](_0x66bb9f[_0xfcb3('0x39')]);_0x5f48e3[_0xfcb3('0x3b')]=_[_0xfcb3('0x3c')](_0x5f48e3[_0xfcb3('0x3d')],_0x5f48e3[_0xfcb3('0x39')]);_0x58f094['attributes']=_[_0xfcb3('0x3c')](_0x5f48e3[_0xfcb3('0x3d')],qs[_0xfcb3('0x3e')](_0x66bb9f[_0xfcb3('0x39')][_0xfcb3('0x3e')]));_0x58f094[_0xfcb3('0x3f')]=_0x58f094[_0xfcb3('0x3f')][_0xfcb3('0x40')]?_0x58f094[_0xfcb3('0x3f')]:_0x5f48e3[_0xfcb3('0x3d')];if(_0x66bb9f[_0xfcb3('0x39')][_0xfcb3('0x51')]){_0x58f094[_0xfcb3('0x4c')]=[{'all':!![]}];}_0x58f094=_[_0xfcb3('0x4a')]({},_0x58f094,_0x66bb9f[_0xfcb3('0x4b')]);return db[_0xfcb3('0x37')][_0xfcb3('0x52')](_0x58f094)[_0xfcb3('0x1c')](handleEntityNotFound(_0x42498d,null))['then'](respondWithResult(_0x42498d,null))[_0xfcb3('0x26')](handleError(_0x42498d,null));};exports[_0xfcb3('0x31')]=function(_0x3df890,_0x226d6a){if(_0x3df890[_0xfcb3('0x53')]['id']){delete _0x3df890[_0xfcb3('0x53')]['id'];}return db[_0xfcb3('0x37')][_0xfcb3('0x52')]({'where':{'id':_0x3df890[_0xfcb3('0x4f')]['id']}})['then'](handleEntityNotFound(_0x226d6a,null))['then'](saveUpdates(_0x3df890['body'],null))[_0xfcb3('0x1c')](respondWithResult(_0x226d6a,null))[_0xfcb3('0x26')](handleError(_0x226d6a,null));};exports[_0xfcb3('0x32')]=function(_0x4dea20,_0x1892e6){return db['FaxMessage']['find']({'where':{'id':_0x4dea20[_0xfcb3('0x4f')]['id']}})[_0xfcb3('0x1c')](handleEntityNotFound(_0x1892e6,null))['then'](removeEntity(_0x1892e6,null))[_0xfcb3('0x26')](handleError(_0x1892e6,null));};exports['describe']=function(_0x25f395,_0x273fa0){return db[_0xfcb3('0x37')][_0xfcb3('0x54')]()[_0xfcb3('0x1c')](respondWithResult(_0x273fa0,null))[_0xfcb3('0x26')](handleError(_0x273fa0,null));};var interaction_log=require('../../config/logger')(_0xfcb3('0x55'));exports[_0xfcb3('0x56')]=function(_0x477929,_0x457569,_0x1d7f5c){var _0x26607e={'channel':_0xfcb3('0x57')};if(_0x477929[_0xfcb3('0x53')]['id']){delete _0x477929[_0xfcb3('0x53')]['id'];}_0x477929[_0xfcb3('0x53')][_0xfcb3('0x58')]=!![];_0x477929[_0xfcb3('0x53')][_0xfcb3('0x59')]=moment()['format'](_0xfcb3('0x5a'));_0x477929['body'][_0xfcb3('0x5b')]=_0x477929[_0xfcb3('0x53')][_0xfcb3('0x5b')]||_0x477929['user']['id'];return db['FaxMessage'][_0xfcb3('0x52')]({'where':{'id':_0x477929['params']['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':'Contact'}]})['then'](handleEntityNotFound(_0x457569,null))[_0xfcb3('0x1c')](saveUpdates(_0x477929['body'],null))[_0xfcb3('0x1c')](function(_0xa7b2ea){if(_0xa7b2ea){_0x26607e[_0xfcb3('0x24')]=_0xa7b2ea['get']({'plain':!![]});return db['FaxInteraction']['find']({'where':{'id':_0xa7b2ea[_0xfcb3('0x5c')]}});}return null;})[_0xfcb3('0x1c')](handleEntityNotFound(_0x457569,null))['then'](function(_0x27519d){if(_0x27519d){return _0x27519d[_0xfcb3('0x31')]({'UserId':_0x477929[_0xfcb3('0x53')][_0xfcb3('0x5b')],'read1stAt':_[_0xfcb3('0x5d')](_0x27519d[_0xfcb3('0x5e')])?moment()[_0xfcb3('0x5f')](_0xfcb3('0x5a')):undefined});}return null;})[_0xfcb3('0x1c')](function(_0x23fb2e){if(_0x23fb2e){_0x26607e['interaction']=_0x23fb2e['get']({'plain':!![]});interaction_log['info'](_0xfcb3('0x60'),_0x477929['user']['id'],_0x477929[_0xfcb3('0x61')][_0xfcb3('0x34')],_0x477929[_0xfcb3('0x61')][_0xfcb3('0x62')],_0x26607e[_0xfcb3('0x63')]['id'],_0x477929[_0xfcb3('0x53')]?JSON[_0xfcb3('0x64')](_0x477929[_0xfcb3('0x53')]):'null');return respondWithRpcPromise(_0xfcb3('0x65'),_0xfcb3('0x66'),_0x26607e);}return null;})[_0xfcb3('0x1c')](function(_0x1048ab){if(_0x1048ab){if(_0x477929[_0xfcb3('0x53')][_0xfcb3('0x67')]){_0x26607e[_0xfcb3('0x24')][_0xfcb3('0x68')]=util[_0xfcb3('0x5f')](_0xfcb3('0x69'),_0x477929[_0xfcb3('0x61')][_0xfcb3('0x34')]);_0x26607e[_0xfcb3('0x24')][_0xfcb3('0x6a')]=_0x26607e[_0xfcb3('0x6a')];_0x26607e[_0xfcb3('0x24')][_0xfcb3('0x6b')]=_0xfcb3('0x56');return respondWithRpcPromise(_0xfcb3('0x6c'),_0xfcb3('0x6c'),{'event':_0xfcb3('0x6d'),'message':_0x26607e[_0xfcb3('0x24')]},client9002)[_0xfcb3('0x1c')](function(){return _0x26607e;});}return _0x26607e;}return null;})['then'](respondWithResult(_0x457569,null))[_0xfcb3('0x26')](handleError(_0x457569,null));};var interaction_log=require(_0xfcb3('0x6e'))(_0xfcb3('0x55'));exports[_0xfcb3('0x6f')]=function(_0x598115,_0x7ad48f,_0x4da7bc){var _0xf62d55={'agent':{},'channel':_0xfcb3('0x57')};if(_0x598115[_0xfcb3('0x53')]['id']){delete _0x598115[_0xfcb3('0x53')]['id'];}_0x598115[_0xfcb3('0x53')][_0xfcb3('0x5b')]=_0x598115['body'][_0xfcb3('0x5b')]||_0x598115[_0xfcb3('0x61')]['id'];_0xf62d55[_0xfcb3('0x70')]['id']=_0x598115['body'][_0xfcb3('0x5b')];return db[_0xfcb3('0x37')][_0xfcb3('0x52')]({'where':{'id':_0x598115['params']['id'],'UserId':null}})[_0xfcb3('0x1c')](handleEntityNotFound(_0x7ad48f,null))[_0xfcb3('0x1c')](function(_0x7ec68f){if(_0x7ec68f){_0xf62d55[_0xfcb3('0x24')]=_0x7ec68f[_0xfcb3('0x71')]({'plain':!![]});return db[_0xfcb3('0x72')][_0xfcb3('0x52')]({'where':{'id':_0x7ec68f['FaxInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x7ad48f,null))[_0xfcb3('0x1c')](function(_0x59440f){if(_0x59440f){_0xf62d55[_0xfcb3('0x63')]=_0x59440f['get']({'plain':!![]});interaction_log[_0xfcb3('0x1d')](_0xfcb3('0x73'),_0x598115[_0xfcb3('0x61')]['id'],_0x598115[_0xfcb3('0x61')][_0xfcb3('0x34')],_0x598115[_0xfcb3('0x61')][_0xfcb3('0x62')],_0xf62d55[_0xfcb3('0x63')]['id'],_0x598115[_0xfcb3('0x53')]?JSON[_0xfcb3('0x64')](_0x598115[_0xfcb3('0x53')]):_0xfcb3('0x74'));return respondWithRpcPromise(_0xfcb3('0x75'),_0xfcb3('0x76'),_0xf62d55);}return null;})['then'](function(_0x255402){if(_0x255402){_0x255402[_0xfcb3('0x24')][_0xfcb3('0x68')]=util[_0xfcb3('0x5f')](_0xfcb3('0x69'),_0x598115[_0xfcb3('0x61')][_0xfcb3('0x34')]);_0x255402[_0xfcb3('0x24')][_0xfcb3('0x6a')]=_0xf62d55[_0xfcb3('0x6a')];_0x255402['message'][_0xfcb3('0x6b')]=_0xfcb3('0x6f');respondWithRpcPromise(_0xfcb3('0x6c'),_0xfcb3('0x6c'),{'event':'rejectmessage','message':_0x255402[_0xfcb3('0x24')]},client9002);return _0xf62d55;}return null;})[_0xfcb3('0x1c')](respondWithResult(_0x7ad48f,null))['catch'](handleError(_0x7ad48f,null));};exports['create']=function(_0x1cf611,_0x1485a1){var _0x35405f;return db[_0xfcb3('0x37')]['create'](_0x1cf611['body'],{})[_0xfcb3('0x1c')](function(_0x44f5c2){_0x35405f=_0x44f5c2;return db['CmContact'][_0xfcb3('0x77')]({'where':{'id':_0x35405f['ContactId']}});})[_0xfcb3('0x1c')](function(_0x10af9b){if(_[_0xfcb3('0x5d')](_0x10af9b)){return;}else{_0x35405f['fax']=_0x10af9b[_0xfcb3('0x57')];return db[_0xfcb3('0x78')][_0xfcb3('0x77')]({'where':{'id':_0x35405f[_0xfcb3('0x79')]}});}})[_0xfcb3('0x1c')](function(_0x4e365a){return respondWithRpcPromise(_0xfcb3('0x7a'),_0xfcb3('0x7a'),{'FaxAccountId':_[_0xfcb3('0x5d')](_0x1cf611[_0xfcb3('0x53')])?undefined:_0x1cf611[_0xfcb3('0x53')][_0xfcb3('0x7b')],'path':_['isNil'](_0x4e365a)?undefined:util[_0xfcb3('0x5f')]('/var/opt/motion2/server/files/attachments/%s',_0x4e365a[_0xfcb3('0x7c')]),'fax':_[_0xfcb3('0x5d')](_0x35405f[_0xfcb3('0x57')])?undefined:_0x35405f[_0xfcb3('0x57')],'AttachmentId':_0x35405f[_0xfcb3('0x79')]},client9002);})[_0xfcb3('0x1c')](respondWithResult(_0x1485a1,0xc9))[_0xfcb3('0x26')](handleError(_0x1485a1,null));};exports[_0xfcb3('0x7d')]=function(_0x113eb8,_0x4525c4){var _0x237d00=path[_0xfcb3('0x7e')](config[_0xfcb3('0x7f')],'server',_0xfcb3('0x80'),_0xfcb3('0x81'));return db[_0xfcb3('0x37')][_0xfcb3('0x52')]({'where':{'id':_0x113eb8[_0xfcb3('0x4f')]['id']},'include':[{'model':db[_0xfcb3('0x78')],'as':_0xfcb3('0x78')}]})[_0xfcb3('0x1c')](handleEntityNotFound(_0x4525c4,null))['then'](function(_0x70f809){if(_0x70f809){return _0x4525c4[_0xfcb3('0x7d')](path[_0xfcb3('0x7e')](_0x237d00,_0x70f809[_0xfcb3('0x78')][_0xfcb3('0x7c')]));}})['catch'](handleError(_0x4525c4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c29=['../../mysqldb','FaxMessage','setMaxListeners','update','remove','emit','hasOwnProperty','exports','events'];(function(_0x19ebfd,_0x5ae121){var _0x11017a=function(_0x24db17){while(--_0x24db17){_0x19ebfd['push'](_0x19ebfd['shift']());}};_0x11017a(++_0x5ae121);}(_0x8c29,0x14c));var _0x98c2=function(_0x462e4c,_0x17228f){_0x462e4c=_0x462e4c-0x0;var _0x2b2043=_0x8c29[_0x462e4c];return _0x2b2043;};'use strict';var EventEmitter=require(_0x98c2('0x0'));var FaxMessage=require(_0x98c2('0x1'))['db'][_0x98c2('0x2')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0x98c2('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x98c2('0x4'),'afterDestroy':_0x98c2('0x5')};function emitEvent(_0x3d2600){return function(_0x50af8c,_0x494985,_0x3ba5c6){FaxMessageEvents[_0x98c2('0x6')](_0x3d2600+':'+_0x50af8c['id'],_0x50af8c);FaxMessageEvents[_0x98c2('0x6')](_0x3d2600,_0x50af8c);_0x3ba5c6(null);};}for(var e in events){if(events[_0x98c2('0x7')](e)){var event=events[e];FaxMessage['hook'](e,emitEvent(event));}}module[_0x98c2('0x8')]=FaxMessageEvents;
\ No newline at end of file
+var _0x2a8e=['update','remove','emit','hasOwnProperty','hook','exports','events','FaxMessage','setMaxListeners','save'];(function(_0x3f77f0,_0x1d5022){var _0x514414=function(_0x2ab4a2){while(--_0x2ab4a2){_0x3f77f0['push'](_0x3f77f0['shift']());}};_0x514414(++_0x1d5022);}(_0x2a8e,0x132));var _0xe2a8=function(_0x209a3a,_0x3f24e2){_0x209a3a=_0x209a3a-0x0;var _0x5c8531=_0x2a8e[_0x209a3a];return _0x5c8531;};'use strict';var EventEmitter=require(_0xe2a8('0x0'));var FaxMessage=require('../../mysqldb')['db'][_0xe2a8('0x1')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0xe2a8('0x2')](0x0);var events={'afterCreate':_0xe2a8('0x3'),'afterUpdate':_0xe2a8('0x4'),'afterDestroy':_0xe2a8('0x5')};function emitEvent(_0x23bce4){return function(_0x35d881,_0x3331f3,_0x1baf49){FaxMessageEvents['emit'](_0x23bce4+':'+_0x35d881['id'],_0x35d881);FaxMessageEvents[_0xe2a8('0x6')](_0x23bce4,_0x35d881);_0x1baf49(null);};}for(var e in events){if(events[_0xe2a8('0x7')](e)){var event=events[e];FaxMessage[_0xe2a8('0x8')](e,emitEvent(event));}}module[_0xe2a8('0x9')]=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x570f=['update','createdAt','body','catch','error','utf8mb4','utf8mb4_unicode_ci','../../config/logger','moment','bluebird','request-promise','exports','define','fax_messages','models','get','direction','toLowerCase','out','UserId','FaxInteraction','findOne','then'];(function(_0xb68695,_0x1881a4){var _0x15a817=function(_0x4d04d6){while(--_0x4d04d6){_0xb68695['push'](_0xb68695['shift']());}};_0x15a817(++_0x1881a4);}(_0x570f,0x1a5));var _0xf570=function(_0x216327,_0x5482e3){_0x216327=_0x216327-0x0;var _0x4f152b=_0x570f[_0x216327];return _0x4f152b;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xf570('0x0'))('api');var moment=require(_0xf570('0x1'));var BPromise=require(_0xf570('0x2'));var rp=require(_0xf570('0x3'));var attributes=require('./faxMessage.attributes');module[_0xf570('0x4')]=function(_0x42fa40,_0x2b3cef){return _0x42fa40[_0xf570('0x5')]('FaxMessage',attributes,{'tableName':_0xf570('0x6'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x53c6f0,_0x1f06f7,_0x1e727){var _0x236fdc=_0x42fa40[_0xf570('0x7')];var _0xca61fc=_0x53c6f0[_0xf570('0x8')]({'plain':!![]});if(_0xca61fc[_0xf570('0x9')][_0xf570('0xa')]()==='in'||_0xca61fc[_0xf570('0x9')][_0xf570('0xa')]()===_0xf570('0xb')&&!_0xca61fc['secret']&&!_['isNil'](_0xca61fc[_0xf570('0xc')])){_0x236fdc[_0xf570('0xd')][_0xf570('0xe')]({'where':{'id':_0xca61fc['FaxInteractionId']}})[_0xf570('0xf')](function(_0x401366){if(_0x401366){_0x401366[_0xf570('0x10')]({'lastMsgAt':_0xca61fc[_0xf570('0x11')],'lastMsgDirection':_0xca61fc[_0xf570('0x9')][_0xf570('0xa')](),'lastMsgBody':_0xca61fc[_0xf570('0x12')]});}})[_0xf570('0x13')](function(_0x1a92c8){console[_0xf570('0x14')](_0x1a92c8);});}_0x1e727();}},'charset':_0xf570('0x15'),'collate':_0xf570('0x16')});};
\ No newline at end of file
+var _0x083d=['fax_messages','models','get','direction','toLowerCase','out','secret','UserId','FaxInteraction','findOne','FaxInteractionId','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','util','api','bluebird','./faxMessage.attributes','exports','define','FaxMessage'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x083d,0x157));var _0xd083=function(_0x35b10b,_0x45b5d6){_0x35b10b=_0x35b10b-0x0;var _0x56d04c=_0x083d[_0x35b10b];return _0x56d04c;};'use strict';var _=require('lodash');var util=require(_0xd083('0x0'));var logger=require('../../config/logger')(_0xd083('0x1'));var moment=require('moment');var BPromise=require(_0xd083('0x2'));var rp=require('request-promise');var attributes=require(_0xd083('0x3'));module[_0xd083('0x4')]=function(_0xc50be6,_0x2f537){return _0xc50be6[_0xd083('0x5')](_0xd083('0x6'),attributes,{'tableName':_0xd083('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x1a9cdc,_0xe34f3a,_0x7e7f2b){var _0x2d8f97=_0xc50be6[_0xd083('0x8')];var _0x1daefb=_0x1a9cdc[_0xd083('0x9')]({'plain':!![]});if(_0x1daefb[_0xd083('0xa')][_0xd083('0xb')]()==='in'||_0x1daefb[_0xd083('0xa')][_0xd083('0xb')]()===_0xd083('0xc')&&!_0x1daefb[_0xd083('0xd')]&&!_['isNil'](_0x1daefb[_0xd083('0xe')])){_0x2d8f97[_0xd083('0xf')][_0xd083('0x10')]({'where':{'id':_0x1daefb[_0xd083('0x11')]}})[_0xd083('0x12')](function(_0x18cf79){if(_0x18cf79){_0x18cf79[_0xd083('0x13')]({'lastMsgAt':_0x1daefb[_0xd083('0x14')],'lastMsgDirection':_0x1daefb[_0xd083('0xa')][_0xd083('0xb')](),'lastMsgBody':_0x1daefb['body']});}})[_0xd083('0x15')](function(_0x309834){console[_0xd083('0x16')](_0x309834);});}_0x7e7f2b();}},'charset':_0xd083('0x17'),'collate':_0xd083('0x18')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0a3=['moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./faxMessage.socket','register','info','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','request\x20sent','result','catch','CreateFaxMessage','FaxMessage','create','body','options','update','where','attributes','limit','UpdateFaxMessage','util'];(function(_0x3439bc,_0xc03879){var _0x484801=function(_0x39d69f){while(--_0x39d69f){_0x3439bc['push'](_0x3439bc['shift']());}};_0x484801(++_0xc03879);}(_0xa0a3,0x1e0));var _0x3a0a=function(_0x148938,_0x9c935a){_0x148938=_0x148938-0x0;var _0x17678d=_0xa0a3[_0x148938];return _0x17678d;};'use strict';var _=require('lodash');var util=require(_0x3a0a('0x0'));var moment=require(_0x3a0a('0x1'));var BPromise=require('bluebird');var rs=require(_0x3a0a('0x2'));var fs=require('fs');var db=require(_0x3a0a('0x3'))['db'];var utils=require(_0x3a0a('0x4'));var logger=require(_0x3a0a('0x5'))(_0x3a0a('0x6'));var config=require(_0x3a0a('0x7'));var jayson=require(_0x3a0a('0x8'));var client=jayson[_0x3a0a('0x9')][_0x3a0a('0xa')]({'port':0x232a});config[_0x3a0a('0xb')]=_[_0x3a0a('0xc')](config[_0x3a0a('0xb')],{'host':_0x3a0a('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(config['redis']);require(_0x3a0a('0xe'))[_0x3a0a('0xf')](socket);function respondWithRpcPromise(_0x29207e,_0x3460be,_0x43e9ec){return new BPromise(function(_0x272435,_0x42235e){return client['request'](_0x29207e,_0x43e9ec)['then'](function(_0x618906){logger[_0x3a0a('0x10')]('FaxMessage,\x20%s,\x20%s',_0x3460be,'request\x20sent');logger[_0x3a0a('0x11')](_0x3a0a('0x12'),_0x3460be,'request\x20sent',JSON[_0x3a0a('0x13')](_0x618906));if(_0x618906[_0x3a0a('0x14')]){if(_0x618906[_0x3a0a('0x14')][_0x3a0a('0x15')]===0x1f4){logger[_0x3a0a('0x14')](_0x3a0a('0x16'),_0x3460be,_0x618906[_0x3a0a('0x14')][_0x3a0a('0x17')]);return _0x42235e(_0x618906[_0x3a0a('0x14')][_0x3a0a('0x17')]);}logger[_0x3a0a('0x14')](_0x3a0a('0x16'),_0x3460be,_0x618906[_0x3a0a('0x14')][_0x3a0a('0x17')]);return _0x272435(_0x618906['error'][_0x3a0a('0x17')]);}else{logger['info'](_0x3a0a('0x16'),_0x3460be,_0x3a0a('0x18'));_0x272435(_0x618906[_0x3a0a('0x19')]['message']);}})[_0x3a0a('0x1a')](function(_0x1bf700){logger['error'](_0x3a0a('0x16'),_0x3460be,_0x1bf700);_0x42235e(_0x1bf700);});});}exports[_0x3a0a('0x1b')]=function(_0x1a7c99){var _0x36ca41=this;return new Promise(function(_0x91d764,_0x423990){return db[_0x3a0a('0x1c')][_0x3a0a('0x1d')](_0x1a7c99[_0x3a0a('0x1e')],{'raw':_0x1a7c99[_0x3a0a('0x1f')]?_0x1a7c99['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x33560b){logger[_0x3a0a('0x10')](_0x3a0a('0x1b'),_0x1a7c99);logger[_0x3a0a('0x11')](_0x3a0a('0x1b'),_0x1a7c99,JSON['stringify'](_0x33560b));_0x91d764(_0x33560b);})[_0x3a0a('0x1a')](function(_0x1d2eac){logger[_0x3a0a('0x14')]('CreateFaxMessage',_0x1d2eac[_0x3a0a('0x17')],_0x1a7c99);_0x423990(_0x36ca41[_0x3a0a('0x14')](0x1f4,_0x1d2eac['message']));});});};exports['UpdateFaxMessage']=function(_0x16e93d){var _0xb24772=this;return new Promise(function(_0x370f91,_0x57b1b2){return db[_0x3a0a('0x1c')][_0x3a0a('0x20')](_0x16e93d[_0x3a0a('0x1e')],{'raw':_0x16e93d[_0x3a0a('0x1f')]?_0x16e93d[_0x3a0a('0x1f')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x16e93d['options']?_0x16e93d[_0x3a0a('0x1f')][_0x3a0a('0x21')]||null:null,'attributes':_0x16e93d['options']?_0x16e93d['options'][_0x3a0a('0x22')]||null:null,'limit':_0x16e93d[_0x3a0a('0x1f')]?_0x16e93d[_0x3a0a('0x1f')][_0x3a0a('0x23')]||null:null})['then'](function(_0x5d7760){logger[_0x3a0a('0x10')](_0x3a0a('0x24'),_0x16e93d);logger[_0x3a0a('0x11')]('UpdateFaxMessage',_0x16e93d,JSON[_0x3a0a('0x13')](_0x5d7760));_0x370f91(_0x5d7760);})[_0x3a0a('0x1a')](function(_0x1bd176){logger[_0x3a0a('0x14')](_0x3a0a('0x24'),_0x1bd176[_0x3a0a('0x17')],_0x16e93d);_0x57b1b2(_0xb24772[_0x3a0a('0x14')](0x1f4,_0x1bd176[_0x3a0a('0x17')]));});});};
\ No newline at end of file
+var _0x33c5=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','register','request','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateFaxMessage','create','options','raw','debug','UpdateFaxMessage','update','where','attributes','limit','util','moment','randomstring','ioredis'];(function(_0x42f0ed,_0x10fc6c){var _0xbdd91f=function(_0xa27313){while(--_0xa27313){_0x42f0ed['push'](_0x42f0ed['shift']());}};_0xbdd91f(++_0x10fc6c);}(_0x33c5,0xe6));var _0x533c=function(_0x27e811,_0x20137c){_0x27e811=_0x27e811-0x0;var _0x1627fa=_0x33c5[_0x27e811];return _0x1627fa;};'use strict';var _=require('lodash');var util=require(_0x533c('0x0'));var moment=require(_0x533c('0x1'));var BPromise=require('bluebird');var rs=require(_0x533c('0x2'));var fs=require('fs');var Redis=require(_0x533c('0x3'));var db=require(_0x533c('0x4'))['db'];var utils=require(_0x533c('0x5'));var logger=require(_0x533c('0x6'))('rpc');var config=require(_0x533c('0x7'));var jayson=require(_0x533c('0x8'));var client=jayson[_0x533c('0x9')][_0x533c('0xa')]({'port':0x232a});config[_0x533c('0xb')]=_[_0x533c('0xc')](config[_0x533c('0xb')],{'host':_0x533c('0xd'),'port':0x18eb});var socket=require(_0x533c('0xe'))(new Redis(config[_0x533c('0xb')]));require(_0x533c('0xf'))[_0x533c('0x10')](socket);function respondWithRpcPromise(_0x2c0214,_0x249f1a,_0x430c51){return new BPromise(function(_0x1b312e,_0x5a150f){return client[_0x533c('0x11')](_0x2c0214,_0x430c51)[_0x533c('0x12')](function(_0x272a11){logger[_0x533c('0x13')](_0x533c('0x14'),_0x249f1a,_0x533c('0x15'));logger['debug'](_0x533c('0x16'),_0x249f1a,_0x533c('0x15'),JSON[_0x533c('0x17')](_0x272a11));if(_0x272a11[_0x533c('0x18')]){if(_0x272a11[_0x533c('0x18')][_0x533c('0x19')]===0x1f4){logger[_0x533c('0x18')](_0x533c('0x14'),_0x249f1a,_0x272a11['error'][_0x533c('0x1a')]);return _0x5a150f(_0x272a11[_0x533c('0x18')][_0x533c('0x1a')]);}logger[_0x533c('0x18')]('FaxMessage,\x20%s,\x20%s',_0x249f1a,_0x272a11[_0x533c('0x18')][_0x533c('0x1a')]);return _0x1b312e(_0x272a11[_0x533c('0x18')][_0x533c('0x1a')]);}else{logger[_0x533c('0x13')](_0x533c('0x14'),_0x249f1a,_0x533c('0x15'));_0x1b312e(_0x272a11[_0x533c('0x1b')][_0x533c('0x1a')]);}})[_0x533c('0x1c')](function(_0x287b9e){logger[_0x533c('0x18')](_0x533c('0x14'),_0x249f1a,_0x287b9e);_0x5a150f(_0x287b9e);});});}exports[_0x533c('0x1d')]=function(_0x2f21db){var _0x3de9fa=this;return new Promise(function(_0x1ded76,_0x2bc58f){return db['FaxMessage'][_0x533c('0x1e')](_0x2f21db['body'],{'raw':_0x2f21db['options']?_0x2f21db[_0x533c('0x1f')][_0x533c('0x20')]===undefined?!![]:![]:!![]})['then'](function(_0x21dfd3){logger[_0x533c('0x13')](_0x533c('0x1d'),_0x2f21db);logger[_0x533c('0x21')]('CreateFaxMessage',_0x2f21db,JSON[_0x533c('0x17')](_0x21dfd3));_0x1ded76(_0x21dfd3);})[_0x533c('0x1c')](function(_0x3ff86f){logger[_0x533c('0x18')](_0x533c('0x1d'),_0x3ff86f[_0x533c('0x1a')],_0x2f21db);_0x2bc58f(_0x3de9fa[_0x533c('0x18')](0x1f4,_0x3ff86f[_0x533c('0x1a')]));});});};exports[_0x533c('0x22')]=function(_0x3eef9f){var _0x4d47d0=this;return new Promise(function(_0x11d775,_0xfab4da){return db['FaxMessage'][_0x533c('0x23')](_0x3eef9f['body'],{'raw':_0x3eef9f[_0x533c('0x1f')]?_0x3eef9f[_0x533c('0x1f')][_0x533c('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3eef9f[_0x533c('0x1f')]?_0x3eef9f[_0x533c('0x1f')][_0x533c('0x24')]||null:null,'attributes':_0x3eef9f[_0x533c('0x1f')]?_0x3eef9f[_0x533c('0x1f')][_0x533c('0x25')]||null:null,'limit':_0x3eef9f[_0x533c('0x1f')]?_0x3eef9f[_0x533c('0x1f')][_0x533c('0x26')]||null:null})['then'](function(_0x370263){logger['info'](_0x533c('0x22'),_0x3eef9f);logger[_0x533c('0x21')](_0x533c('0x22'),_0x3eef9f,JSON[_0x533c('0x17')](_0x370263));_0x11d775(_0x370263);})[_0x533c('0x1c')](function(_0x397ad3){logger[_0x533c('0x18')](_0x533c('0x22'),_0x397ad3[_0x533c('0x1a')],_0x3eef9f);_0xfab4da(_0x4d47d0[_0x533c('0x18')](0x1f4,_0x397ad3[_0x533c('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cfc=['emit','removeListener','faxMessage:','./faxMessage.events','save','remove','update'];(function(_0xd0f868,_0x18e62d){var _0xe840b7=function(_0x30ef70){while(--_0x30ef70){_0xd0f868['push'](_0xd0f868['shift']());}};_0xe840b7(++_0x18e62d);}(_0x1cfc,0x122));var _0xc1cf=function(_0x567bda,_0x3e6be4){_0x567bda=_0x567bda-0x0;var _0x39e7f1=_0x1cfc[_0x567bda];return _0x39e7f1;};'use strict';var FaxMessageEvents=require(_0xc1cf('0x0'));var events=[_0xc1cf('0x1'),_0xc1cf('0x2'),_0xc1cf('0x3')];function createListener(_0x351b30,_0x3dc5a5){return function(_0x9d5af1){_0x3dc5a5[_0xc1cf('0x4')](_0x351b30,_0x9d5af1);};}function removeListener(_0x54cc25,_0x1425d0){return function(){FaxMessageEvents[_0xc1cf('0x5')](_0x54cc25,_0x1425d0);};}exports['register']=function(_0x3e066d){for(var _0x4b5552=0x0,_0x4c479b=events['length'];_0x4b5552<_0x4c479b;_0x4b5552++){var _0x14e14b=events[_0x4b5552];var _0x1becef=createListener(_0xc1cf('0x6')+_0x14e14b,_0x3e066d);FaxMessageEvents['on'](_0x14e14b,_0x1becef);}};
\ No newline at end of file
+var _0x3051=['faxMessage:','update','emit','removeListener','register','length'];(function(_0x4d86d2,_0x177e28){var _0x3fa5a4=function(_0x4771ae){while(--_0x4771ae){_0x4d86d2['push'](_0x4d86d2['shift']());}};_0x3fa5a4(++_0x177e28);}(_0x3051,0x85));var _0x1305=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x3051[_0x321bb2];return _0x9c12ed;};'use strict';var FaxMessageEvents=require('./faxMessage.events');var events=['save','remove',_0x1305('0x0')];function createListener(_0x3cf7b7,_0x129d3e){return function(_0x436d97){_0x129d3e[_0x1305('0x1')](_0x3cf7b7,_0x436d97);};}function removeListener(_0x535fb7,_0x1fcf8f){return function(){FaxMessageEvents[_0x1305('0x2')](_0x535fb7,_0x1fcf8f);};}exports[_0x1305('0x3')]=function(_0x88ee5b){for(var _0x42ba46=0x0,_0xdf301d=events[_0x1305('0x4')];_0x42ba46<_0xdf301d;_0x42ba46++){var _0x389525=events[_0x42ba46];var _0x30cbd8=createListener(_0x1305('0x5')+_0x389525,_0x88ee5b);FaxMessageEvents['on'](_0x389525,_0x30cbd8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ee1=['/:id/reject','reject','delete','multer','express','Router','../../components/auth/service','../../config/environment','./faxMessage.controller','get','isAuthenticated','/describe','describe','/:id','show','download','tracked','fax','faxmessage:create','put','update','/:id/accept','accept'];(function(_0x458ed3,_0x594e3e){var _0x4dd043=function(_0x58f533){while(--_0x58f533){_0x458ed3['push'](_0x458ed3['shift']());}};_0x4dd043(++_0x594e3e);}(_0x7ee1,0x8d));var _0x17ee=function(_0x1116e0,_0x1f5d50){_0x1116e0=_0x1116e0-0x0;var _0x37cfda=_0x7ee1[_0x1116e0];return _0x37cfda;};'use strict';var multer=require(_0x17ee('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x17ee('0x1'));var router=express[_0x17ee('0x2')]();var auth=require(_0x17ee('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x17ee('0x4'));var controller=require(_0x17ee('0x5'));router[_0x17ee('0x6')]('/',auth[_0x17ee('0x7')](),controller['index']);router[_0x17ee('0x6')](_0x17ee('0x8'),auth['isAuthenticated'](),controller[_0x17ee('0x9')]);router['get'](_0x17ee('0xa'),auth[_0x17ee('0x7')](),controller[_0x17ee('0xb')]);router['get']('/:id/download',auth['isAuthenticated'](),controller[_0x17ee('0xc')]);router['post']('/',auth[_0x17ee('0x7')](),interaction[_0x17ee('0xd')](_0x17ee('0xe'),_0x17ee('0xf')),controller['create']);router[_0x17ee('0x10')]('/:id',auth[_0x17ee('0x7')](),controller[_0x17ee('0x11')]);router[_0x17ee('0x10')](_0x17ee('0x12'),auth[_0x17ee('0x7')](),controller[_0x17ee('0x13')]);router[_0x17ee('0x10')](_0x17ee('0x14'),auth[_0x17ee('0x7')](),controller[_0x17ee('0x15')]);router[_0x17ee('0x16')]('/:id',auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xacf4=['/describe','describe','show','/:id/download','download','tracked','create','update','put','/:id/accept','accept','/:id/reject','reject','delete','exports','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x3e1415,_0x2ad5ee){var _0x2e1ec7=function(_0x4beb31){while(--_0x4beb31){_0x3e1415['push'](_0x3e1415['shift']());}};_0x2e1ec7(++_0x2ad5ee);}(_0xacf4,0xe7));var _0x4acf=function(_0x29d94e,_0xf386d6){_0x29d94e=_0x29d94e-0x0;var _0x106237=_0xacf4[_0x29d94e];return _0x106237;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x4acf('0x0'));var timeout=require(_0x4acf('0x1'));var express=require(_0x4acf('0x2'));var router=express[_0x4acf('0x3')]();var auth=require(_0x4acf('0x4'));var interaction=require(_0x4acf('0x5'));var config=require(_0x4acf('0x6'));var controller=require('./faxMessage.controller');router[_0x4acf('0x7')]('/',auth[_0x4acf('0x8')](),controller['index']);router[_0x4acf('0x7')](_0x4acf('0x9'),auth[_0x4acf('0x8')](),controller[_0x4acf('0xa')]);router[_0x4acf('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x4acf('0xb')]);router['get'](_0x4acf('0xc'),auth[_0x4acf('0x8')](),controller[_0x4acf('0xd')]);router['post']('/',auth[_0x4acf('0x8')](),interaction[_0x4acf('0xe')]('fax','faxmessage:create'),controller[_0x4acf('0xf')]);router['put']('/:id',auth[_0x4acf('0x8')](),controller[_0x4acf('0x10')]);router[_0x4acf('0x11')](_0x4acf('0x12'),auth[_0x4acf('0x8')](),controller[_0x4acf('0x13')]);router[_0x4acf('0x11')](_0x4acf('0x14'),auth[_0x4acf('0x8')](),controller[_0x4acf('0x15')]);router[_0x4acf('0x16')]('/:id',auth[_0x4acf('0x8')](),controller['destroy']);module[_0x4acf('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe60a=['INTEGER','rrmemory','beepall','sequelize','exports','STRING'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0xe60a,0x1a7));var _0xae60=function(_0x108f6d,_0x419bd0){_0x108f6d=_0x108f6d-0x0;var _0x9603c4=_0xe60a[_0x108f6d];return _0x9603c4;};'use strict';var Sequelize=require(_0xae60('0x0'));module[_0xae60('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xae60('0x2')]},'timeout':{'type':Sequelize[_0xae60('0x3')],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0xae60('0x4'),_0xae60('0x5'),'roundrobin'),'allowNull':![]},'lastAgent':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x0738=['sequelize','exports','name','STRING','INTEGER','rrmemory','beepall','roundrobin'];(function(_0xf16b1,_0x33c637){var _0x26f94d=function(_0x5643d7){while(--_0x5643d7){_0xf16b1['push'](_0xf16b1['shift']());}};_0x26f94d(++_0x33c637);}(_0x0738,0x128));var _0x8073=function(_0x39e84d,_0x11931d){_0x39e84d=_0x39e84d-0x0;var _0x1991bc=_0x0738[_0x39e84d];return _0x1991bc;};'use strict';var Sequelize=require(_0x8073('0x0'));module[_0x8073('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x8073('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x8073('0x3')]},'timeout':{'type':Sequelize[_0x8073('0x4')],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x8073('0x5'),_0x8073('0x6'),_0x8073('0x7')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x8073('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0471=['updatedAt','createdAt','%s/%s','SIP','getTeams','Team','addTeams','ids','Agents','union','addAgents','penalty','removeTeams','removeAgents','spread','emit','userFaxQueue:save','isArray','getAgents','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxQueue.socket','register','end','status','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','name','send','index','FaxQueue','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','map','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','update','describe','getMembers','findOne','UserFaxQueue','nolimit','User','UserId','faxPause'];(function(_0x2c23c2,_0x583866){var _0x34afad=function(_0x1a64fd){while(--_0x1a64fd){_0x2c23c2['push'](_0x2c23c2['shift']());}};_0x34afad(++_0x583866);}(_0x0471,0x14e));var _0x1047=function(_0x672826,_0x5ca5ed){_0x672826=_0x672826-0x0;var _0x2f0220=_0x0471[_0x672826];return _0x2f0220;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1047('0x0'));var rimraf=require(_0x1047('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1047('0x2'));var moment=require(_0x1047('0x3'));var BPromise=require(_0x1047('0x4'));var Mustache=require(_0x1047('0x5'));var util=require(_0x1047('0x6'));var path=require(_0x1047('0x7'));var sox=require(_0x1047('0x8'));var csv=require(_0x1047('0x9'));var ejs=require(_0x1047('0xa'));var fs=require('fs');var _=require(_0x1047('0xb'));var squel=require(_0x1047('0xc'));var crypto=require(_0x1047('0xd'));var jsforce=require(_0x1047('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x1047('0x9'));var querystring=require(_0x1047('0xf'));var Papa=require(_0x1047('0x10'));var qs=require(_0x1047('0x11'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x1047('0x12'));var db=require(_0x1047('0x13'))['db'];config[_0x1047('0x14')]=_[_0x1047('0x15')](config[_0x1047('0x14')],{'host':_0x1047('0x16'),'port':0x18eb});var socket=require(_0x1047('0x17'))(config['redis']);require(_0x1047('0x18'))[_0x1047('0x19')](socket);function respondWithStatusCode(_0x27676e,_0x1fe7fd){_0x1fe7fd=_0x1fe7fd||0xcc;return function(_0x35fce2){if(_0x35fce2){return _0x27676e['sendStatus'](_0x1fe7fd);}return _0x27676e['status'](_0x1fe7fd)[_0x1047('0x1a')]();};}function respondWithResult(_0x3714bd,_0x386b06){_0x386b06=_0x386b06||0xc8;return function(_0x3c918c){if(_0x3c918c){return _0x3714bd[_0x1047('0x1b')](_0x386b06)[_0x1047('0x1c')](_0x3c918c);}};}function respondWithFilteredResult(_0x4b74e1,_0x5a90da){return function(_0x23ca7b){if(_0x23ca7b){var _0x190bba=_0x23ca7b[_0x1047('0x1d')],_0x1854af=_0x5a90da[_0x1047('0x1e')],_0x295fb8=_0x5a90da['offset']+_0x5a90da[_0x1047('0x1f')],_0x2c4838;if(_0x295fb8>=_0x190bba){_0x295fb8=_0x190bba;_0x2c4838=0xc8;}else{_0x2c4838=0xce;}_0x4b74e1[_0x1047('0x1b')](_0x2c4838);return _0x4b74e1[_0x1047('0x20')](_0x1047('0x21'),_0x1854af+'-'+_0x295fb8+'/'+_0x190bba)[_0x1047('0x1c')](_0x23ca7b);}return null;};}function patchUpdates(_0x1c7017){return function(_0x5a5f66){try{jsonpatch[_0x1047('0x22')](_0x5a5f66,_0x1c7017,!![]);}catch(_0x35cf96){return BPromise[_0x1047('0x23')](_0x35cf96);}return _0x5a5f66[_0x1047('0x24')]();};}function saveUpdates(_0x1a8fbd,_0x398bee){return function(_0x1e5ae3){if(_0x1e5ae3){return _0x1e5ae3['update'](_0x1a8fbd)[_0x1047('0x25')](function(_0x5ef946){return _0x5ef946;});}return null;};}function removeEntity(_0x5b8d0f,_0x200cf4){return function(_0x2f7ccc){if(_0x2f7ccc){return _0x2f7ccc[_0x1047('0x26')]()[_0x1047('0x25')](function(){_0x5b8d0f[_0x1047('0x1b')](0xcc)[_0x1047('0x1a')]();});}};}function handleEntityNotFound(_0xa1536f,_0x31ae0e){return function(_0x48019c){if(!_0x48019c){_0xa1536f[_0x1047('0x27')](0x194);}return _0x48019c;};}function handleError(_0x5abe95,_0x3d2e73){_0x3d2e73=_0x3d2e73||0x1f4;return function(_0x19fcd6){logger[_0x1047('0x28')](_0x19fcd6['stack']);if(_0x19fcd6[_0x1047('0x29')]){delete _0x19fcd6[_0x1047('0x29')];}_0x5abe95[_0x1047('0x1b')](_0x3d2e73)[_0x1047('0x2a')](_0x19fcd6);};}exports[_0x1047('0x2b')]=function(_0x140736,_0x278075){var _0x1b209c={},_0x982246={},_0x3a2168={'count':0x0,'rows':[]};var _0x42be28=db[_0x1047('0x2c')][_0x1047('0x2d')];_0x982246['model']=_[_0x1047('0x2e')](_0x42be28);var _0x222fa2={'dateStart':_0x140736[_0x1047('0x2f')][_0x1047('0x30')],'dateEnd':_0x140736[_0x1047('0x2f')][_0x1047('0x31')]};delete _0x140736[_0x1047('0x2f')]['dateStart'];delete _0x140736[_0x1047('0x2f')][_0x1047('0x31')];_0x982246[_0x1047('0x2f')]=_[_0x1047('0x2e')](_0x140736[_0x1047('0x2f')]);_0x982246[_0x1047('0x32')]=_[_0x1047('0x33')](_0x982246[_0x1047('0x34')],_0x982246[_0x1047('0x2f')]);_0x1b209c[_0x1047('0x35')]=_[_0x1047('0x33')](_0x982246[_0x1047('0x34')],qs['fields'](_0x140736['query'][_0x1047('0x36')]));_0x1b209c[_0x1047('0x35')]=_0x1b209c['attributes'][_0x1047('0x37')]?_0x1b209c[_0x1047('0x35')]:_0x982246[_0x1047('0x34')];if(!_0x140736[_0x1047('0x2f')][_0x1047('0x38')]('nolimit')){_0x1b209c[_0x1047('0x1f')]=qs[_0x1047('0x1f')](_0x140736[_0x1047('0x2f')][_0x1047('0x1f')]);_0x1b209c['offset']=qs[_0x1047('0x1e')](_0x140736[_0x1047('0x2f')][_0x1047('0x1e')]);}_0x1b209c[_0x1047('0x39')]=qs[_0x1047('0x3a')](_0x140736[_0x1047('0x2f')][_0x1047('0x3a')]);_0x1b209c[_0x1047('0x3b')]=qs[_0x1047('0x32')](_[_0x1047('0x3c')](_0x140736[_0x1047('0x2f')],_0x982246[_0x1047('0x32')]));if(_0x222fa2[_0x1047('0x30')]){if(_0x222fa2[_0x1047('0x31')]){_0x222fa2[_0x1047('0x31')]=moment(_0x222fa2[_0x1047('0x31')])[_0x1047('0x3d')](0x1,_0x1047('0x3e'));}else{_0x222fa2[_0x1047('0x31')]=moment(_0x222fa2[_0x1047('0x30')])[_0x1047('0x3d')](0x1,_0x1047('0x3e'));}_[_0x1047('0x3f')](_0x1b209c[_0x1047('0x3b')],{'createdAt':{'$gte':_0x222fa2['dateStart'],'$lte':_0x222fa2['dateEnd']}});}if(_0x140736[_0x1047('0x2f')][_0x1047('0x40')]){_0x1b209c[_0x1047('0x3b')]=_[_0x1047('0x3f')](_0x1b209c[_0x1047('0x3b')],{'$or':_[_0x1047('0x41')](_0x1b209c[_0x1047('0x35')],function(_0x37457f){var _0xefee24={};_0xefee24[_0x37457f]={'$like':'%'+_0x140736[_0x1047('0x2f')][_0x1047('0x40')]+'%'};return _0xefee24;})});}_0x1b209c=_[_0x1047('0x3f')]({},_0x1b209c,_0x140736['options']);var _0x46fd05={'where':_0x1b209c[_0x1047('0x3b')]};return db[_0x1047('0x2c')][_0x1047('0x1d')](_0x46fd05)[_0x1047('0x25')](function(_0x530508){_0x3a2168[_0x1047('0x1d')]=_0x530508;if(_0x140736[_0x1047('0x2f')][_0x1047('0x42')]){_0x1b209c[_0x1047('0x43')]=[{'all':!![]}];}return db[_0x1047('0x2c')][_0x1047('0x44')](_0x1b209c);})[_0x1047('0x25')](function(_0x41cb19){_0x3a2168[_0x1047('0x45')]=_0x41cb19;return _0x3a2168;})[_0x1047('0x25')](respondWithFilteredResult(_0x278075,_0x1b209c))[_0x1047('0x46')](handleError(_0x278075,null));};exports[_0x1047('0x47')]=function(_0x243ab4,_0x312a8a){var _0xb6b1a6={'raw':!![],'where':{'id':_0x243ab4[_0x1047('0x48')]['id']}},_0x305be0={};_0x305be0[_0x1047('0x34')]=_[_0x1047('0x2e')](db[_0x1047('0x2c')][_0x1047('0x2d')]);_0x305be0[_0x1047('0x2f')]=_['keys'](_0x243ab4[_0x1047('0x2f')]);_0x305be0['filters']=_['intersection'](_0x305be0[_0x1047('0x34')],_0x305be0[_0x1047('0x2f')]);_0xb6b1a6[_0x1047('0x35')]=_[_0x1047('0x33')](_0x305be0[_0x1047('0x34')],qs[_0x1047('0x36')](_0x243ab4['query'][_0x1047('0x36')]));_0xb6b1a6[_0x1047('0x35')]=_0xb6b1a6[_0x1047('0x35')]['length']?_0xb6b1a6[_0x1047('0x35')]:_0x305be0[_0x1047('0x34')];if(_0x243ab4[_0x1047('0x2f')][_0x1047('0x42')]){_0xb6b1a6['include']=[{'all':!![]}];}_0xb6b1a6=_[_0x1047('0x3f')]({},_0xb6b1a6,_0x243ab4[_0x1047('0x49')]);return db[_0x1047('0x2c')][_0x1047('0x4a')](_0xb6b1a6)[_0x1047('0x25')](handleEntityNotFound(_0x312a8a,null))[_0x1047('0x25')](respondWithResult(_0x312a8a,null))[_0x1047('0x46')](handleError(_0x312a8a,null));};exports['create']=function(_0x27bd2d,_0x47791f){return db[_0x1047('0x2c')][_0x1047('0x4b')](_0x27bd2d[_0x1047('0x4c')],{})[_0x1047('0x25')](respondWithResult(_0x47791f,0xc9))[_0x1047('0x46')](handleError(_0x47791f,null));};exports[_0x1047('0x4d')]=function(_0x515c07,_0x1d3e45){if(_0x515c07[_0x1047('0x4c')]['id']){delete _0x515c07['body']['id'];}return db[_0x1047('0x2c')][_0x1047('0x4a')]({'where':{'id':_0x515c07[_0x1047('0x48')]['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x1d3e45,null))[_0x1047('0x25')](saveUpdates(_0x515c07[_0x1047('0x4c')],null))[_0x1047('0x25')](respondWithResult(_0x1d3e45,null))[_0x1047('0x46')](handleError(_0x1d3e45,null));};exports[_0x1047('0x26')]=function(_0xe56cc6,_0x4ff5f1){return db[_0x1047('0x2c')][_0x1047('0x4a')]({'where':{'id':_0xe56cc6[_0x1047('0x48')]['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x4ff5f1,null))[_0x1047('0x25')](removeEntity(_0x4ff5f1,null))['catch'](handleError(_0x4ff5f1,null));};exports['describe']=function(_0x2347a4,_0x127cdb){return db[_0x1047('0x2c')][_0x1047('0x4e')]()['then'](respondWithResult(_0x127cdb,null))[_0x1047('0x46')](handleError(_0x127cdb,null));};exports[_0x1047('0x4f')]=function(_0xc8ef1,_0x26fada,_0x3269c8){var _0x5ec6e8={'raw':!![],'where':{}},_0x5a1ebc={},_0x5c7aaa;return db['FaxQueue'][_0x1047('0x50')]({'where':{'id':_0xc8ef1['params']['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x26fada,null))['then'](function(_0x2869f5){if(_0x2869f5){_0x5c7aaa=_0x2869f5['get']({'plain':!![]});_0x5a1ebc[_0x1047('0x34')]=_[_0x1047('0x2e')](db[_0x1047('0x51')][_0x1047('0x2d')]);_0x5a1ebc[_0x1047('0x2f')]=_[_0x1047('0x2e')](_0xc8ef1[_0x1047('0x2f')]);_0x5a1ebc['filters']=_[_0x1047('0x33')](_0x5a1ebc[_0x1047('0x34')],_0x5a1ebc[_0x1047('0x2f')]);_0x5ec6e8[_0x1047('0x35')]=_[_0x1047('0x33')](_0x5a1ebc[_0x1047('0x34')],qs[_0x1047('0x36')](_0xc8ef1[_0x1047('0x2f')][_0x1047('0x36')]));_0x5ec6e8[_0x1047('0x35')]=_0x5ec6e8['attributes'][_0x1047('0x37')]?_0x5ec6e8[_0x1047('0x35')]:_0x5a1ebc[_0x1047('0x34')];if(!_0xc8ef1['query'][_0x1047('0x38')](_0x1047('0x52'))){_0x5ec6e8[_0x1047('0x1f')]=qs[_0x1047('0x1f')](_0xc8ef1[_0x1047('0x2f')]['limit']);_0x5ec6e8['offset']=qs[_0x1047('0x1e')](_0xc8ef1['query'][_0x1047('0x1e')]);}_0x5ec6e8[_0x1047('0x39')]=qs[_0x1047('0x3a')](_0xc8ef1[_0x1047('0x2f')]['sort']);_0x5ec6e8[_0x1047('0x3b')]=qs[_0x1047('0x32')](_[_0x1047('0x3c')](_0xc8ef1[_0x1047('0x2f')],_0x5a1ebc[_0x1047('0x32')]));_0x5ec6e8[_0x1047('0x3b')]['FaxQueueId']=_0x2869f5['id'];if(_0xc8ef1[_0x1047('0x2f')][_0x1047('0x40')]){_0x5ec6e8[_0x1047('0x3b')]=_['merge'](_0x5ec6e8[_0x1047('0x3b')],{'$or':_['map'](_0x5ec6e8[_0x1047('0x35')],function(_0x53202b){var _0xc54b7d={};_0xc54b7d[_0x53202b]={'$like':'%'+_0xc8ef1['query'][_0x1047('0x40')]+'%'};return _0xc54b7d;})});}_0x5ec6e8=_[_0x1047('0x3f')]({},_0x5ec6e8,_0xc8ef1['options']);return db[_0x1047('0x51')][_0x1047('0x44')](_0x5ec6e8);}})[_0x1047('0x25')](function(_0x128c23){if(_0x128c23){return db[_0x1047('0x53')]['findAndCountAll']({'where':{'id':_['map'](_0x128c23,_0x1047('0x54')),'role':'agent'},'attributes':['id',_0x1047('0x29'),_0x1047('0x55'),_0x1047('0x56'),_0x1047('0x57')]});}})[_0x1047('0x25')](function(_0x51974f){if(_0x51974f){return{'count':_0x51974f[_0x1047('0x1d')],'rows':_[_0x1047('0x41')](_0x51974f['rows'],function(_0x1b33fc){return{'membername':_0x1b33fc[_0x1047('0x29')],'UserId':_0x1b33fc['id'],'queue_name':_0x5c7aaa[_0x1047('0x29')],'FaxQueueId':_0x5c7aaa['id'],'interface':util['format'](_0x1047('0x58'),_0x1047('0x59'),_0x1b33fc[_0x1047('0x29')]),'penalty':0x0,'paused':_0x1b33fc['faxPause'],'createdAt':_0x1b33fc[_0x1047('0x57')],'updatedAt':_0x1b33fc[_0x1047('0x56')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x1047('0x25')](respondWithFilteredResult(_0x26fada,_0x5ec6e8))[_0x1047('0x46')](handleError(_0x26fada,null));};exports[_0x1047('0x5a')]=function(_0x5bf5d0,_0x100bfe,_0x3e7cc2){var _0x434b91={};var _0x4f5148={};var _0x4131b1;var _0x33ca3a;return db[_0x1047('0x2c')][_0x1047('0x50')]({'where':{'id':_0x5bf5d0['params']['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x100bfe,null))['then'](function(_0x4279c7){if(_0x4279c7){_0x4131b1=_0x4279c7;_0x4f5148[_0x1047('0x34')]=_[_0x1047('0x2e')](db[_0x1047('0x5b')]['rawAttributes']);_0x4f5148['query']=_[_0x1047('0x2e')](_0x5bf5d0[_0x1047('0x2f')]);_0x4f5148['filters']=_[_0x1047('0x33')](_0x4f5148[_0x1047('0x34')],_0x4f5148[_0x1047('0x2f')]);_0x434b91[_0x1047('0x35')]=_[_0x1047('0x33')](_0x4f5148[_0x1047('0x34')],qs[_0x1047('0x36')](_0x5bf5d0[_0x1047('0x2f')]['fields']));_0x434b91[_0x1047('0x35')]=_0x434b91[_0x1047('0x35')][_0x1047('0x37')]?_0x434b91['attributes']:_0x4f5148['model'];_0x434b91['order']=qs['sort'](_0x5bf5d0['query'][_0x1047('0x3a')]);_0x434b91[_0x1047('0x3b')]=qs[_0x1047('0x32')](_[_0x1047('0x3c')](_0x5bf5d0[_0x1047('0x2f')],_0x4f5148['filters']));if(_0x5bf5d0['query'][_0x1047('0x40')]){_0x434b91[_0x1047('0x3b')]=_[_0x1047('0x3f')](_0x434b91['where'],{'$or':_[_0x1047('0x41')](_0x434b91[_0x1047('0x35')],function(_0x498d38){var _0xd9a78a={};_0xd9a78a[_0x498d38]={'$like':'%'+_0x5bf5d0[_0x1047('0x2f')][_0x1047('0x40')]+'%'};return _0xd9a78a;})});}_0x434b91=_[_0x1047('0x3f')]({},_0x434b91,_0x5bf5d0['options']);return _0x4131b1['getTeams'](_0x434b91);}})[_0x1047('0x25')](function(_0x1bfde2){if(_0x1bfde2){_0x33ca3a=_0x1bfde2[_0x1047('0x37')];if(!_0x5bf5d0[_0x1047('0x2f')][_0x1047('0x38')](_0x1047('0x52'))){_0x434b91['limit']=qs[_0x1047('0x1f')](_0x5bf5d0[_0x1047('0x2f')][_0x1047('0x1f')]);_0x434b91[_0x1047('0x1e')]=qs[_0x1047('0x1e')](_0x5bf5d0[_0x1047('0x2f')][_0x1047('0x1e')]);}return _0x4131b1[_0x1047('0x5a')](_0x434b91);}})['then'](function(_0x1683ed){if(_0x1683ed){return _0x1683ed?{'count':_0x33ca3a,'rows':_0x1683ed}:null;}})['then'](respondWithResult(_0x100bfe,null))[_0x1047('0x46')](handleError(_0x100bfe,null));};exports[_0x1047('0x5c')]=function(_0x7e461,_0xa265d5,_0x20ce48){var _0x126108=[];var _0x434754;return db[_0x1047('0x5b')][_0x1047('0x44')]({'where':{'id':_0x7e461[_0x1047('0x4c')][_0x1047('0x5d')]},'attributes':['id'],'include':[{'model':db[_0x1047('0x53')],'as':_0x1047('0x5e'),'attributes':['id'],'raw':!![]}]})[_0x1047('0x25')](function(_0x574191){if(_0x574191){for(var _0x188815=0x0;_0x188815<_0x574191[_0x1047('0x37')];_0x188815+=0x1){for(var _0x52b587=0x0;_0x52b587<_0x574191[_0x188815][_0x1047('0x5e')]['length'];_0x52b587+=0x1){_0x126108=_[_0x1047('0x5f')](_0x126108,[_0x574191[_0x188815][_0x1047('0x5e')][_0x52b587]['id']]);}}return _0x126108;}})[_0x1047('0x25')](function(_0x25986d){if(_0x25986d){return db[_0x1047('0x2c')][_0x1047('0x4a')]({'where':{'id':_0x7e461['params']['id']}});}})[_0x1047('0x25')](function(_0x1e16be){if(_0x1e16be){_0x434754=_0x1e16be;return _0x434754[_0x1047('0x60')](_0x126108,{'penalty':_0x7e461['body'][_0x1047('0x61')]});}})[_0x1047('0x25')](function(_0x3954e8){if(_0x3954e8){return _0x434754[_0x1047('0x5c')](_0x7e461[_0x1047('0x4c')][_0x1047('0x5d')]);}})[_0x1047('0x25')](handleEntityNotFound(_0xa265d5,null))[_0x1047('0x25')](respondWithStatusCode(_0xa265d5,null))[_0x1047('0x46')](handleError(_0xa265d5,null));};exports[_0x1047('0x62')]=function(_0x3da124,_0x6ea551,_0x3aa0c4){var _0x5db3b7=[];var _0x47d806;return db['Team']['findAll']({'where':{'id':_0x3da124['query'][_0x1047('0x5d')]},'attributes':['id'],'include':[{'model':db[_0x1047('0x53')],'as':_0x1047('0x5e'),'attributes':['id'],'raw':!![]}]})[_0x1047('0x25')](function(_0x393580){if(_0x393580){for(var _0x5e8a4a=0x0;_0x5e8a4a<_0x393580[_0x1047('0x37')];_0x5e8a4a+=0x1){for(var _0x5e7882=0x0;_0x5e7882<_0x393580[_0x5e8a4a]['Agents'][_0x1047('0x37')];_0x5e7882+=0x1){_0x5db3b7=_[_0x1047('0x5f')](_0x5db3b7,[_0x393580[_0x5e8a4a][_0x1047('0x5e')][_0x5e7882]['id']]);}}return _0x5db3b7;}})['then'](function(_0x10faa3){if(_0x10faa3){return db[_0x1047('0x2c')][_0x1047('0x4a')]({'where':{'id':_0x3da124[_0x1047('0x48')]['id']}});}})['then'](function(_0x2f322a){if(_0x2f322a){_0x47d806=_0x2f322a;return _0x47d806[_0x1047('0x63')](_0x5db3b7);}})[_0x1047('0x25')](function(_0x468125){if(_0x47d806){return _0x47d806[_0x1047('0x62')](_0x3da124['query']['ids']);}})[_0x1047('0x25')](handleEntityNotFound(_0x6ea551,null))[_0x1047('0x25')](respondWithStatusCode(_0x6ea551,null))['catch'](handleError(_0x6ea551,null));};exports[_0x1047('0x60')]=function(_0x80ced4,_0x29673b,_0x38f11c){return db[_0x1047('0x2c')]['find']({'where':{'id':_0x80ced4[_0x1047('0x48')]['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x29673b,null))['then'](function(_0x1aff85){if(_0x1aff85){return _0x1aff85['addAgents'](_0x80ced4['body'][_0x1047('0x5d')],_['omit'](_0x80ced4[_0x1047('0x4c')],[_0x1047('0x5d'),'id'])||{})[_0x1047('0x64')](function(_0x4ba66e){for(var _0x177fcd=0x0;_0x177fcd<_0x80ced4[_0x1047('0x4c')]['ids'][_0x1047('0x37')];_0x177fcd+=0x1){socket[_0x1047('0x65')](_0x1047('0x66'),{'UserId':_0x80ced4[_0x1047('0x4c')][_0x1047('0x5d')][_0x177fcd],'FaxQueueId':_0x80ced4['params']['id']});}return _0x4ba66e;});}})[_0x1047('0x25')](respondWithResult(_0x29673b,null))[_0x1047('0x46')](handleError(_0x29673b,null));};exports[_0x1047('0x63')]=function(_0x1a1041,_0x13f079,_0x59d7b9){var _0x5dfd27;return db[_0x1047('0x2c')][_0x1047('0x4a')]({'where':{'id':_0x1a1041[_0x1047('0x48')]['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x13f079,null))['then'](function(_0x46f0eb){if(_0x46f0eb){return _0x46f0eb[_0x1047('0x63')](_0x1a1041['query'][_0x1047('0x5d')])[_0x1047('0x25')](function(_0xa14ed8){if(_[_0x1047('0x67')](_0x1a1041[_0x1047('0x2f')][_0x1047('0x5d')])){for(var _0x40460a=0x0;_0x40460a<_0x1a1041['query']['ids'][_0x1047('0x37')];_0x40460a+=0x1){socket[_0x1047('0x65')]('userFaxQueue:remove',{'UserId':_0x1a1041[_0x1047('0x2f')]['ids'][_0x40460a],'FaxQueueId':_0x1a1041['params']['id']});}}else{socket[_0x1047('0x65')]('userFaxQueue:remove',{'UserId':_0x1a1041[_0x1047('0x2f')]['ids'],'FaxQueueId':_0x1a1041[_0x1047('0x48')]['id']});}});}})[_0x1047('0x25')](respondWithStatusCode(_0x13f079,null))[_0x1047('0x46')](handleError(_0x13f079,null));};exports[_0x1047('0x68')]=function(_0x59a3d0,_0x299412,_0x1fc539){var _0x593360={};var _0x7e56f5={};var _0x4b6943;var _0x4dd0f4;return db[_0x1047('0x2c')][_0x1047('0x50')]({'where':{'id':_0x59a3d0[_0x1047('0x48')]['id']}})[_0x1047('0x25')](handleEntityNotFound(_0x299412,null))[_0x1047('0x25')](function(_0x564255){if(_0x564255){_0x4b6943=_0x564255;_0x7e56f5['model']=_['keys'](db['User']['rawAttributes']);_0x7e56f5[_0x1047('0x2f')]=_[_0x1047('0x2e')](_0x59a3d0[_0x1047('0x2f')]);_0x7e56f5['filters']=_[_0x1047('0x33')](_0x7e56f5[_0x1047('0x34')],_0x7e56f5[_0x1047('0x2f')]);_0x593360[_0x1047('0x35')]=_[_0x1047('0x33')](_0x7e56f5[_0x1047('0x34')],qs[_0x1047('0x36')](_0x59a3d0[_0x1047('0x2f')][_0x1047('0x36')]));_0x593360[_0x1047('0x35')]=_0x593360[_0x1047('0x35')][_0x1047('0x37')]?_0x593360[_0x1047('0x35')]:_0x7e56f5[_0x1047('0x34')];_0x593360['order']=qs['sort'](_0x59a3d0[_0x1047('0x2f')][_0x1047('0x3a')]);_0x593360[_0x1047('0x3b')]=qs[_0x1047('0x32')](_[_0x1047('0x3c')](_0x59a3d0[_0x1047('0x2f')],_0x7e56f5[_0x1047('0x32')]));if(_0x59a3d0[_0x1047('0x2f')][_0x1047('0x40')]){_0x593360[_0x1047('0x3b')]=_[_0x1047('0x3f')](_0x593360[_0x1047('0x3b')],{'$or':_[_0x1047('0x41')](_0x593360['attributes'],function(_0x5bc0d7){var _0x2f9de1={};_0x2f9de1[_0x5bc0d7]={'$like':'%'+_0x59a3d0[_0x1047('0x2f')][_0x1047('0x40')]+'%'};return _0x2f9de1;})});}_0x593360=_['merge']({},_0x593360,_0x59a3d0[_0x1047('0x49')]);return _0x4b6943[_0x1047('0x68')](_0x593360);}})[_0x1047('0x25')](function(_0xf04101){if(_0xf04101){_0x4dd0f4=_0xf04101[_0x1047('0x37')];if(!_0x59a3d0[_0x1047('0x2f')][_0x1047('0x38')](_0x1047('0x52'))){_0x593360['limit']=qs[_0x1047('0x1f')](_0x59a3d0[_0x1047('0x2f')][_0x1047('0x1f')]);_0x593360[_0x1047('0x1e')]=qs[_0x1047('0x1e')](_0x59a3d0[_0x1047('0x2f')]['offset']);}return _0x4b6943['getAgents'](_0x593360);}})[_0x1047('0x25')](function(_0x4097e0){if(_0x4097e0){return _0x4097e0?{'count':_0x4dd0f4,'rows':_0x4097e0}:null;}})[_0x1047('0x25')](respondWithResult(_0x299412,null))['catch'](handleError(_0x299412,null));};
\ No newline at end of file
+var _0xd06c=['sort','where','pick','add','merge','filter','map','options','count','includeAll','include','findAll','rows','catch','params','find','create','body','destroy','UserFaxQueue','FaxQueueId','findAndCountAll','agent','updatedAt','createdAt','format','%s/%s','SIP','faxPause','getTeams','Team','hasOwnProperty','addTeams','User','Agents','union','penalty','ids','removeTeams','removeAgents','addAgents','omit','spread','emit','userFaxQueue:save','isArray','userFaxQueue:remove','getAgents','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','./faxQueue.socket','register','end','status','offset','limit','set','Content-Range','json','apply','reject','save','update','then','sendStatus','error','stack','name','send','FaxQueue','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','model','attributes','fields','length','nolimit','order'];(function(_0x156a5f,_0x1a59f6){var _0x46a63f=function(_0x49bc3c){while(--_0x49bc3c){_0x156a5f['push'](_0x156a5f['shift']());}};_0x46a63f(++_0x1a59f6);}(_0xd06c,0x171));var _0xcd06=function(_0x6ef1fb,_0x1bafca){_0x6ef1fb=_0x6ef1fb-0x0;var _0x16645c=_0xd06c[_0x6ef1fb];return _0x16645c;};'use strict';var pdf=require(_0xcd06('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xcd06('0x1'));var jsonpatch=require(_0xcd06('0x2'));var rp=require(_0xcd06('0x3'));var moment=require(_0xcd06('0x4'));var BPromise=require(_0xcd06('0x5'));var Mustache=require('mustache');var util=require(_0xcd06('0x6'));var path=require(_0xcd06('0x7'));var sox=require(_0xcd06('0x8'));var csv=require(_0xcd06('0x9'));var ejs=require(_0xcd06('0xa'));var fs=require('fs');var _=require(_0xcd06('0xb'));var squel=require(_0xcd06('0xc'));var crypto=require(_0xcd06('0xd'));var jsforce=require(_0xcd06('0xe'));var deskjs=require(_0xcd06('0xf'));var toCsv=require(_0xcd06('0x9'));var querystring=require('querystring');var Papa=require(_0xcd06('0x10'));var Redis=require(_0xcd06('0x11'));var qs=require(_0xcd06('0x12'));var logger=require(_0xcd06('0x13'))(_0xcd06('0x14'));var utils=require(_0xcd06('0x15'));var config=require('../../config/environment');var db=require(_0xcd06('0x16'))['db'];config[_0xcd06('0x17')]=_[_0xcd06('0x18')](config[_0xcd06('0x17')],{'host':_0xcd06('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xcd06('0x1a'))[_0xcd06('0x1b')](socket);function respondWithStatusCode(_0x12feb0,_0x515358){_0x515358=_0x515358||0xcc;return function(_0x283ee6){if(_0x283ee6){return _0x12feb0['sendStatus'](_0x515358);}return _0x12feb0['status'](_0x515358)[_0xcd06('0x1c')]();};}function respondWithResult(_0x3eeacb,_0x5d85e8){_0x5d85e8=_0x5d85e8||0xc8;return function(_0x913f){if(_0x913f){return _0x3eeacb[_0xcd06('0x1d')](_0x5d85e8)['json'](_0x913f);}};}function respondWithFilteredResult(_0x3f6294,_0x210424){return function(_0x529415){if(_0x529415){var _0x40f610=_0x529415['count'],_0x566408=_0x210424[_0xcd06('0x1e')],_0xff96e=_0x210424[_0xcd06('0x1e')]+_0x210424[_0xcd06('0x1f')],_0x154cc0;if(_0xff96e>=_0x40f610){_0xff96e=_0x40f610;_0x154cc0=0xc8;}else{_0x154cc0=0xce;}_0x3f6294[_0xcd06('0x1d')](_0x154cc0);return _0x3f6294[_0xcd06('0x20')](_0xcd06('0x21'),_0x566408+'-'+_0xff96e+'/'+_0x40f610)[_0xcd06('0x22')](_0x529415);}return null;};}function patchUpdates(_0x37c01c){return function(_0x4d0f79){try{jsonpatch[_0xcd06('0x23')](_0x4d0f79,_0x37c01c,!![]);}catch(_0x27760f){return BPromise[_0xcd06('0x24')](_0x27760f);}return _0x4d0f79[_0xcd06('0x25')]();};}function saveUpdates(_0x513538,_0x5d9cb6){return function(_0x333887){if(_0x333887){return _0x333887[_0xcd06('0x26')](_0x513538)[_0xcd06('0x27')](function(_0x3b43a3){return _0x3b43a3;});}return null;};}function removeEntity(_0x5927e7,_0x48a4c2){return function(_0x12665b){if(_0x12665b){return _0x12665b['destroy']()[_0xcd06('0x27')](function(){_0x5927e7[_0xcd06('0x1d')](0xcc)[_0xcd06('0x1c')]();});}};}function handleEntityNotFound(_0xcce5eb,_0x3e4150){return function(_0x549674){if(!_0x549674){_0xcce5eb[_0xcd06('0x28')](0x194);}return _0x549674;};}function handleError(_0x1120f4,_0x5bc14a){_0x5bc14a=_0x5bc14a||0x1f4;return function(_0xf221a){logger[_0xcd06('0x29')](_0xf221a[_0xcd06('0x2a')]);if(_0xf221a[_0xcd06('0x2b')]){delete _0xf221a[_0xcd06('0x2b')];}_0x1120f4[_0xcd06('0x1d')](_0x5bc14a)[_0xcd06('0x2c')](_0xf221a);};}exports['index']=function(_0x56aa9f,_0x20a8ef){var _0x5a3de0={},_0x2768e8={},_0x238f8c={'count':0x0,'rows':[]};var _0x5154f6=db[_0xcd06('0x2d')][_0xcd06('0x2e')];_0x2768e8['model']=_[_0xcd06('0x2f')](_0x5154f6);var _0x41574d={'dateStart':_0x56aa9f[_0xcd06('0x30')][_0xcd06('0x31')],'dateEnd':_0x56aa9f['query'][_0xcd06('0x32')]};delete _0x56aa9f[_0xcd06('0x30')][_0xcd06('0x31')];delete _0x56aa9f[_0xcd06('0x30')][_0xcd06('0x32')];_0x2768e8[_0xcd06('0x30')]=_['keys'](_0x56aa9f[_0xcd06('0x30')]);_0x2768e8[_0xcd06('0x33')]=_[_0xcd06('0x34')](_0x2768e8[_0xcd06('0x35')],_0x2768e8[_0xcd06('0x30')]);_0x5a3de0[_0xcd06('0x36')]=_[_0xcd06('0x34')](_0x2768e8[_0xcd06('0x35')],qs['fields'](_0x56aa9f[_0xcd06('0x30')][_0xcd06('0x37')]));_0x5a3de0[_0xcd06('0x36')]=_0x5a3de0[_0xcd06('0x36')][_0xcd06('0x38')]?_0x5a3de0[_0xcd06('0x36')]:_0x2768e8[_0xcd06('0x35')];if(!_0x56aa9f['query']['hasOwnProperty'](_0xcd06('0x39'))){_0x5a3de0['limit']=qs['limit'](_0x56aa9f[_0xcd06('0x30')][_0xcd06('0x1f')]);_0x5a3de0[_0xcd06('0x1e')]=qs[_0xcd06('0x1e')](_0x56aa9f[_0xcd06('0x30')][_0xcd06('0x1e')]);}_0x5a3de0[_0xcd06('0x3a')]=qs['sort'](_0x56aa9f[_0xcd06('0x30')][_0xcd06('0x3b')]);_0x5a3de0[_0xcd06('0x3c')]=qs['filters'](_[_0xcd06('0x3d')](_0x56aa9f[_0xcd06('0x30')],_0x2768e8[_0xcd06('0x33')]));if(_0x41574d[_0xcd06('0x31')]){if(_0x41574d[_0xcd06('0x32')]){_0x41574d[_0xcd06('0x32')]=moment(_0x41574d['dateEnd'])[_0xcd06('0x3e')](0x1,'day');}else{_0x41574d['dateEnd']=moment(_0x41574d[_0xcd06('0x31')])[_0xcd06('0x3e')](0x1,'day');}_[_0xcd06('0x3f')](_0x5a3de0[_0xcd06('0x3c')],{'createdAt':{'$gte':_0x41574d['dateStart'],'$lte':_0x41574d['dateEnd']}});}if(_0x56aa9f[_0xcd06('0x30')][_0xcd06('0x40')]){_0x5a3de0[_0xcd06('0x3c')]=_['merge'](_0x5a3de0['where'],{'$or':_[_0xcd06('0x41')](_0x5a3de0[_0xcd06('0x36')],function(_0x505886){var _0x27c39c={};_0x27c39c[_0x505886]={'$like':'%'+_0x56aa9f[_0xcd06('0x30')]['filter']+'%'};return _0x27c39c;})});}_0x5a3de0=_[_0xcd06('0x3f')]({},_0x5a3de0,_0x56aa9f[_0xcd06('0x42')]);var _0x312f67={'where':_0x5a3de0[_0xcd06('0x3c')]};return db[_0xcd06('0x2d')][_0xcd06('0x43')](_0x312f67)[_0xcd06('0x27')](function(_0x4ba7ab){_0x238f8c[_0xcd06('0x43')]=_0x4ba7ab;if(_0x56aa9f['query'][_0xcd06('0x44')]){_0x5a3de0[_0xcd06('0x45')]=[{'all':!![]}];}return db[_0xcd06('0x2d')][_0xcd06('0x46')](_0x5a3de0);})[_0xcd06('0x27')](function(_0x752576){_0x238f8c[_0xcd06('0x47')]=_0x752576;return _0x238f8c;})['then'](respondWithFilteredResult(_0x20a8ef,_0x5a3de0))[_0xcd06('0x48')](handleError(_0x20a8ef,null));};exports['show']=function(_0x1c23da,_0x1a84d1){var _0x2b655b={'raw':!![],'where':{'id':_0x1c23da[_0xcd06('0x49')]['id']}},_0x57a5b9={};_0x57a5b9[_0xcd06('0x35')]=_['keys'](db[_0xcd06('0x2d')][_0xcd06('0x2e')]);_0x57a5b9[_0xcd06('0x30')]=_[_0xcd06('0x2f')](_0x1c23da[_0xcd06('0x30')]);_0x57a5b9[_0xcd06('0x33')]=_[_0xcd06('0x34')](_0x57a5b9['model'],_0x57a5b9['query']);_0x2b655b[_0xcd06('0x36')]=_[_0xcd06('0x34')](_0x57a5b9[_0xcd06('0x35')],qs[_0xcd06('0x37')](_0x1c23da['query'][_0xcd06('0x37')]));_0x2b655b[_0xcd06('0x36')]=_0x2b655b[_0xcd06('0x36')][_0xcd06('0x38')]?_0x2b655b[_0xcd06('0x36')]:_0x57a5b9['model'];if(_0x1c23da['query'][_0xcd06('0x44')]){_0x2b655b[_0xcd06('0x45')]=[{'all':!![]}];}_0x2b655b=_[_0xcd06('0x3f')]({},_0x2b655b,_0x1c23da[_0xcd06('0x42')]);return db[_0xcd06('0x2d')][_0xcd06('0x4a')](_0x2b655b)[_0xcd06('0x27')](handleEntityNotFound(_0x1a84d1,null))['then'](respondWithResult(_0x1a84d1,null))[_0xcd06('0x48')](handleError(_0x1a84d1,null));};exports[_0xcd06('0x4b')]=function(_0x4a2bb7,_0x5d426e){return db[_0xcd06('0x2d')]['create'](_0x4a2bb7[_0xcd06('0x4c')],{})[_0xcd06('0x27')](respondWithResult(_0x5d426e,0xc9))['catch'](handleError(_0x5d426e,null));};exports['update']=function(_0x5db076,_0x51ddfe){if(_0x5db076['body']['id']){delete _0x5db076[_0xcd06('0x4c')]['id'];}return db[_0xcd06('0x2d')][_0xcd06('0x4a')]({'where':{'id':_0x5db076['params']['id']}})[_0xcd06('0x27')](handleEntityNotFound(_0x51ddfe,null))[_0xcd06('0x27')](saveUpdates(_0x5db076[_0xcd06('0x4c')],null))['then'](respondWithResult(_0x51ddfe,null))[_0xcd06('0x48')](handleError(_0x51ddfe,null));};exports[_0xcd06('0x4d')]=function(_0x25826b,_0x4a9fcc){return db[_0xcd06('0x2d')][_0xcd06('0x4a')]({'where':{'id':_0x25826b['params']['id']}})[_0xcd06('0x27')](handleEntityNotFound(_0x4a9fcc,null))[_0xcd06('0x27')](removeEntity(_0x4a9fcc,null))[_0xcd06('0x48')](handleError(_0x4a9fcc,null));};exports['describe']=function(_0x14ec59,_0x39d287){return db[_0xcd06('0x2d')]['describe']()[_0xcd06('0x27')](respondWithResult(_0x39d287,null))[_0xcd06('0x48')](handleError(_0x39d287,null));};exports['getMembers']=function(_0x3f58cc,_0x1fdd0b,_0x281494){var _0x169b09={'raw':!![],'where':{}},_0x15c2eb={},_0x3ac1fe;return db['FaxQueue']['findOne']({'where':{'id':_0x3f58cc[_0xcd06('0x49')]['id']}})['then'](handleEntityNotFound(_0x1fdd0b,null))[_0xcd06('0x27')](function(_0x543a0e){if(_0x543a0e){_0x3ac1fe=_0x543a0e['get']({'plain':!![]});_0x15c2eb[_0xcd06('0x35')]=_[_0xcd06('0x2f')](db[_0xcd06('0x4e')][_0xcd06('0x2e')]);_0x15c2eb[_0xcd06('0x30')]=_['keys'](_0x3f58cc[_0xcd06('0x30')]);_0x15c2eb[_0xcd06('0x33')]=_[_0xcd06('0x34')](_0x15c2eb[_0xcd06('0x35')],_0x15c2eb[_0xcd06('0x30')]);_0x169b09[_0xcd06('0x36')]=_['intersection'](_0x15c2eb[_0xcd06('0x35')],qs[_0xcd06('0x37')](_0x3f58cc[_0xcd06('0x30')]['fields']));_0x169b09[_0xcd06('0x36')]=_0x169b09[_0xcd06('0x36')][_0xcd06('0x38')]?_0x169b09[_0xcd06('0x36')]:_0x15c2eb[_0xcd06('0x35')];if(!_0x3f58cc['query']['hasOwnProperty']('nolimit')){_0x169b09['limit']=qs[_0xcd06('0x1f')](_0x3f58cc[_0xcd06('0x30')][_0xcd06('0x1f')]);_0x169b09[_0xcd06('0x1e')]=qs[_0xcd06('0x1e')](_0x3f58cc['query'][_0xcd06('0x1e')]);}_0x169b09[_0xcd06('0x3a')]=qs[_0xcd06('0x3b')](_0x3f58cc[_0xcd06('0x30')]['sort']);_0x169b09['where']=qs[_0xcd06('0x33')](_['pick'](_0x3f58cc[_0xcd06('0x30')],_0x15c2eb[_0xcd06('0x33')]));_0x169b09[_0xcd06('0x3c')][_0xcd06('0x4f')]=_0x543a0e['id'];if(_0x3f58cc[_0xcd06('0x30')][_0xcd06('0x40')]){_0x169b09[_0xcd06('0x3c')]=_[_0xcd06('0x3f')](_0x169b09[_0xcd06('0x3c')],{'$or':_['map'](_0x169b09[_0xcd06('0x36')],function(_0x260322){var _0x3f220c={};_0x3f220c[_0x260322]={'$like':'%'+_0x3f58cc['query'][_0xcd06('0x40')]+'%'};return _0x3f220c;})});}_0x169b09=_['merge']({},_0x169b09,_0x3f58cc['options']);return db[_0xcd06('0x4e')][_0xcd06('0x46')](_0x169b09);}})[_0xcd06('0x27')](function(_0x1892cf){if(_0x1892cf){return db['User'][_0xcd06('0x50')]({'where':{'id':_['map'](_0x1892cf,'UserId'),'role':_0xcd06('0x51')},'attributes':['id',_0xcd06('0x2b'),'faxPause',_0xcd06('0x52'),_0xcd06('0x53')]});}})[_0xcd06('0x27')](function(_0x4c0a46){if(_0x4c0a46){return{'count':_0x4c0a46['count'],'rows':_[_0xcd06('0x41')](_0x4c0a46['rows'],function(_0x4e4349){return{'membername':_0x4e4349[_0xcd06('0x2b')],'UserId':_0x4e4349['id'],'queue_name':_0x3ac1fe['name'],'FaxQueueId':_0x3ac1fe['id'],'interface':util[_0xcd06('0x54')](_0xcd06('0x55'),_0xcd06('0x56'),_0x4e4349[_0xcd06('0x2b')]),'penalty':0x0,'paused':_0x4e4349[_0xcd06('0x57')],'createdAt':_0x4e4349[_0xcd06('0x53')],'updatedAt':_0x4e4349[_0xcd06('0x52')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x1fdd0b,_0x169b09))['catch'](handleError(_0x1fdd0b,null));};exports[_0xcd06('0x58')]=function(_0x4507c1,_0x4e86b0,_0x5306c6){var _0x5df745={};var _0x23c0df={};var _0x27fcfc;var _0x178735;return db[_0xcd06('0x2d')]['findOne']({'where':{'id':_0x4507c1[_0xcd06('0x49')]['id']}})[_0xcd06('0x27')](handleEntityNotFound(_0x4e86b0,null))['then'](function(_0x27e125){if(_0x27e125){_0x27fcfc=_0x27e125;_0x23c0df[_0xcd06('0x35')]=_[_0xcd06('0x2f')](db[_0xcd06('0x59')][_0xcd06('0x2e')]);_0x23c0df[_0xcd06('0x30')]=_['keys'](_0x4507c1['query']);_0x23c0df['filters']=_[_0xcd06('0x34')](_0x23c0df[_0xcd06('0x35')],_0x23c0df[_0xcd06('0x30')]);_0x5df745[_0xcd06('0x36')]=_[_0xcd06('0x34')](_0x23c0df[_0xcd06('0x35')],qs[_0xcd06('0x37')](_0x4507c1[_0xcd06('0x30')][_0xcd06('0x37')]));_0x5df745['attributes']=_0x5df745[_0xcd06('0x36')][_0xcd06('0x38')]?_0x5df745[_0xcd06('0x36')]:_0x23c0df[_0xcd06('0x35')];_0x5df745['order']=qs[_0xcd06('0x3b')](_0x4507c1[_0xcd06('0x30')][_0xcd06('0x3b')]);_0x5df745[_0xcd06('0x3c')]=qs[_0xcd06('0x33')](_[_0xcd06('0x3d')](_0x4507c1[_0xcd06('0x30')],_0x23c0df['filters']));if(_0x4507c1[_0xcd06('0x30')][_0xcd06('0x40')]){_0x5df745[_0xcd06('0x3c')]=_[_0xcd06('0x3f')](_0x5df745[_0xcd06('0x3c')],{'$or':_['map'](_0x5df745['attributes'],function(_0x1a1786){var _0x31341e={};_0x31341e[_0x1a1786]={'$like':'%'+_0x4507c1[_0xcd06('0x30')][_0xcd06('0x40')]+'%'};return _0x31341e;})});}_0x5df745=_[_0xcd06('0x3f')]({},_0x5df745,_0x4507c1[_0xcd06('0x42')]);return _0x27fcfc['getTeams'](_0x5df745);}})[_0xcd06('0x27')](function(_0x4695a6){if(_0x4695a6){_0x178735=_0x4695a6[_0xcd06('0x38')];if(!_0x4507c1[_0xcd06('0x30')][_0xcd06('0x5a')](_0xcd06('0x39'))){_0x5df745[_0xcd06('0x1f')]=qs['limit'](_0x4507c1[_0xcd06('0x30')][_0xcd06('0x1f')]);_0x5df745[_0xcd06('0x1e')]=qs['offset'](_0x4507c1[_0xcd06('0x30')][_0xcd06('0x1e')]);}return _0x27fcfc[_0xcd06('0x58')](_0x5df745);}})['then'](function(_0x1058ed){if(_0x1058ed){return _0x1058ed?{'count':_0x178735,'rows':_0x1058ed}:null;}})['then'](respondWithResult(_0x4e86b0,null))[_0xcd06('0x48')](handleError(_0x4e86b0,null));};exports[_0xcd06('0x5b')]=function(_0x46f399,_0x1d9c24,_0x38412d){var _0x27fbde=[];var _0x13f903;return db[_0xcd06('0x59')][_0xcd06('0x46')]({'where':{'id':_0x46f399[_0xcd06('0x4c')]['ids']},'attributes':['id'],'include':[{'model':db[_0xcd06('0x5c')],'as':_0xcd06('0x5d'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x33d1d4){if(_0x33d1d4){for(var _0xa21bfc=0x0;_0xa21bfc<_0x33d1d4[_0xcd06('0x38')];_0xa21bfc+=0x1){for(var _0x4a7285=0x0;_0x4a7285<_0x33d1d4[_0xa21bfc][_0xcd06('0x5d')][_0xcd06('0x38')];_0x4a7285+=0x1){_0x27fbde=_[_0xcd06('0x5e')](_0x27fbde,[_0x33d1d4[_0xa21bfc][_0xcd06('0x5d')][_0x4a7285]['id']]);}}return _0x27fbde;}})['then'](function(_0x38fd37){if(_0x38fd37){return db['FaxQueue'][_0xcd06('0x4a')]({'where':{'id':_0x46f399[_0xcd06('0x49')]['id']}});}})[_0xcd06('0x27')](function(_0x4645c0){if(_0x4645c0){_0x13f903=_0x4645c0;return _0x13f903['addAgents'](_0x27fbde,{'penalty':_0x46f399[_0xcd06('0x4c')][_0xcd06('0x5f')]});}})[_0xcd06('0x27')](function(_0x19ddf4){if(_0x19ddf4){return _0x13f903['addTeams'](_0x46f399[_0xcd06('0x4c')][_0xcd06('0x60')]);}})[_0xcd06('0x27')](handleEntityNotFound(_0x1d9c24,null))[_0xcd06('0x27')](respondWithStatusCode(_0x1d9c24,null))['catch'](handleError(_0x1d9c24,null));};exports[_0xcd06('0x61')]=function(_0xd1ae7c,_0x5d4bcc,_0x1612a2){var _0x59d612=[];var _0x2eeb67;return db[_0xcd06('0x59')]['findAll']({'where':{'id':_0xd1ae7c[_0xcd06('0x30')][_0xcd06('0x60')]},'attributes':['id'],'include':[{'model':db[_0xcd06('0x5c')],'as':_0xcd06('0x5d'),'attributes':['id'],'raw':!![]}]})[_0xcd06('0x27')](function(_0x481288){if(_0x481288){for(var _0x2ba59b=0x0;_0x2ba59b<_0x481288[_0xcd06('0x38')];_0x2ba59b+=0x1){for(var _0x578a43=0x0;_0x578a43<_0x481288[_0x2ba59b][_0xcd06('0x5d')][_0xcd06('0x38')];_0x578a43+=0x1){_0x59d612=_[_0xcd06('0x5e')](_0x59d612,[_0x481288[_0x2ba59b][_0xcd06('0x5d')][_0x578a43]['id']]);}}return _0x59d612;}})[_0xcd06('0x27')](function(_0x54b423){if(_0x54b423){return db[_0xcd06('0x2d')][_0xcd06('0x4a')]({'where':{'id':_0xd1ae7c['params']['id']}});}})[_0xcd06('0x27')](function(_0x53286f){if(_0x53286f){_0x2eeb67=_0x53286f;return _0x2eeb67[_0xcd06('0x62')](_0x59d612);}})[_0xcd06('0x27')](function(_0x4293a2){if(_0x2eeb67){return _0x2eeb67[_0xcd06('0x61')](_0xd1ae7c['query'][_0xcd06('0x60')]);}})[_0xcd06('0x27')](handleEntityNotFound(_0x5d4bcc,null))['then'](respondWithStatusCode(_0x5d4bcc,null))[_0xcd06('0x48')](handleError(_0x5d4bcc,null));};exports[_0xcd06('0x63')]=function(_0x110f12,_0xb3df07,_0x5a9b0d){return db[_0xcd06('0x2d')]['find']({'where':{'id':_0x110f12['params']['id']}})[_0xcd06('0x27')](handleEntityNotFound(_0xb3df07,null))[_0xcd06('0x27')](function(_0x25be4e){if(_0x25be4e){return _0x25be4e[_0xcd06('0x63')](_0x110f12[_0xcd06('0x4c')][_0xcd06('0x60')],_[_0xcd06('0x64')](_0x110f12[_0xcd06('0x4c')],[_0xcd06('0x60'),'id'])||{})[_0xcd06('0x65')](function(_0x526868){for(var _0x213dc4=0x0;_0x213dc4<_0x110f12[_0xcd06('0x4c')][_0xcd06('0x60')][_0xcd06('0x38')];_0x213dc4+=0x1){socket[_0xcd06('0x66')](_0xcd06('0x67'),{'UserId':_0x110f12[_0xcd06('0x4c')]['ids'][_0x213dc4],'FaxQueueId':_0x110f12['params']['id']});}return _0x526868;});}})[_0xcd06('0x27')](respondWithResult(_0xb3df07,null))[_0xcd06('0x48')](handleError(_0xb3df07,null));};exports[_0xcd06('0x62')]=function(_0x427c35,_0x240593,_0x9eb226){var _0x47cefa;return db[_0xcd06('0x2d')][_0xcd06('0x4a')]({'where':{'id':_0x427c35[_0xcd06('0x49')]['id']}})[_0xcd06('0x27')](handleEntityNotFound(_0x240593,null))[_0xcd06('0x27')](function(_0x3f5838){if(_0x3f5838){return _0x3f5838[_0xcd06('0x62')](_0x427c35['query'][_0xcd06('0x60')])[_0xcd06('0x27')](function(_0x2fd273){if(_[_0xcd06('0x68')](_0x427c35[_0xcd06('0x30')][_0xcd06('0x60')])){for(var _0x2ceee5=0x0;_0x2ceee5<_0x427c35[_0xcd06('0x30')]['ids'][_0xcd06('0x38')];_0x2ceee5+=0x1){socket['emit']('userFaxQueue:remove',{'UserId':_0x427c35['query'][_0xcd06('0x60')][_0x2ceee5],'FaxQueueId':_0x427c35[_0xcd06('0x49')]['id']});}}else{socket[_0xcd06('0x66')](_0xcd06('0x69'),{'UserId':_0x427c35[_0xcd06('0x30')]['ids'],'FaxQueueId':_0x427c35[_0xcd06('0x49')]['id']});}});}})[_0xcd06('0x27')](respondWithStatusCode(_0x240593,null))['catch'](handleError(_0x240593,null));};exports[_0xcd06('0x6a')]=function(_0x4c4d2e,_0x747dbd,_0x13ef1b){var _0x4c207f={};var _0x42d1ed={};var _0x14e8fa;var _0x53caf2;return db[_0xcd06('0x2d')]['findOne']({'where':{'id':_0x4c4d2e[_0xcd06('0x49')]['id']}})[_0xcd06('0x27')](handleEntityNotFound(_0x747dbd,null))[_0xcd06('0x27')](function(_0x2fb390){if(_0x2fb390){_0x14e8fa=_0x2fb390;_0x42d1ed[_0xcd06('0x35')]=_[_0xcd06('0x2f')](db[_0xcd06('0x5c')][_0xcd06('0x2e')]);_0x42d1ed['query']=_['keys'](_0x4c4d2e['query']);_0x42d1ed['filters']=_[_0xcd06('0x34')](_0x42d1ed[_0xcd06('0x35')],_0x42d1ed[_0xcd06('0x30')]);_0x4c207f[_0xcd06('0x36')]=_[_0xcd06('0x34')](_0x42d1ed[_0xcd06('0x35')],qs[_0xcd06('0x37')](_0x4c4d2e[_0xcd06('0x30')]['fields']));_0x4c207f[_0xcd06('0x36')]=_0x4c207f[_0xcd06('0x36')][_0xcd06('0x38')]?_0x4c207f[_0xcd06('0x36')]:_0x42d1ed[_0xcd06('0x35')];_0x4c207f[_0xcd06('0x3a')]=qs['sort'](_0x4c4d2e['query'][_0xcd06('0x3b')]);_0x4c207f['where']=qs['filters'](_[_0xcd06('0x3d')](_0x4c4d2e[_0xcd06('0x30')],_0x42d1ed[_0xcd06('0x33')]));if(_0x4c4d2e['query'][_0xcd06('0x40')]){_0x4c207f[_0xcd06('0x3c')]=_[_0xcd06('0x3f')](_0x4c207f[_0xcd06('0x3c')],{'$or':_['map'](_0x4c207f['attributes'],function(_0x5f589c){var _0x244cad={};_0x244cad[_0x5f589c]={'$like':'%'+_0x4c4d2e[_0xcd06('0x30')][_0xcd06('0x40')]+'%'};return _0x244cad;})});}_0x4c207f=_['merge']({},_0x4c207f,_0x4c4d2e[_0xcd06('0x42')]);return _0x14e8fa[_0xcd06('0x6a')](_0x4c207f);}})[_0xcd06('0x27')](function(_0xccc5ee){if(_0xccc5ee){_0x53caf2=_0xccc5ee[_0xcd06('0x38')];if(!_0x4c4d2e[_0xcd06('0x30')][_0xcd06('0x5a')](_0xcd06('0x39'))){_0x4c207f[_0xcd06('0x1f')]=qs['limit'](_0x4c4d2e[_0xcd06('0x30')]['limit']);_0x4c207f[_0xcd06('0x1e')]=qs[_0xcd06('0x1e')](_0x4c4d2e['query'][_0xcd06('0x1e')]);}return _0x14e8fa[_0xcd06('0x6a')](_0x4c207f);}})[_0xcd06('0x27')](function(_0x817325){if(_0x817325){return _0x817325?{'count':_0x53caf2,'rows':_0x817325}:null;}})[_0xcd06('0x27')](respondWithResult(_0x747dbd,null))['catch'](handleError(_0x747dbd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['remove','hook','exports','events','../../mysqldb','FaxQueue','save'];(function(_0x3855dc,_0x49c35b){var _0x1daddb=function(_0x15e507){while(--_0x15e507){_0x3855dc['push'](_0x3855dc['shift']());}};_0x1daddb(++_0x49c35b);}(_0x00bb,0x1d8));var _0xb00b=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x00bb[_0x1facfa];return _0x9ec701;};'use strict';var EventEmitter=require(_0xb00b('0x0'));var FaxQueue=require(_0xb00b('0x1'))['db'][_0xb00b('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb00b('0x3'),'afterUpdate':'update','afterDestroy':_0xb00b('0x4')};function emitEvent(_0x464fe7){return function(_0x582ef9,_0x14b5d0,_0x2dbd25){FaxQueueEvents['emit'](_0x464fe7+':'+_0x582ef9['id'],_0x582ef9);FaxQueueEvents['emit'](_0x464fe7,_0x582ef9);_0x2dbd25(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxQueue[_0xb00b('0x5')](e,emitEvent(event));}}module[_0xb00b('0x6')]=FaxQueueEvents;
\ No newline at end of file
+var _0xd6d6=['events','../../mysqldb','FaxQueue','setMaxListeners','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x505c27,_0x427541){var _0x22acb8=function(_0x1c5801){while(--_0x1c5801){_0x505c27['push'](_0x505c27['shift']());}};_0x22acb8(++_0x427541);}(_0xd6d6,0xbe));var _0x6d6d=function(_0x2e0be1,_0x86e478){_0x2e0be1=_0x2e0be1-0x0;var _0x4f869e=_0xd6d6[_0x2e0be1];return _0x4f869e;};'use strict';var EventEmitter=require(_0x6d6d('0x0'));var FaxQueue=require(_0x6d6d('0x1'))['db'][_0x6d6d('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0x6d6d('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x6d6d('0x4'),'afterDestroy':_0x6d6d('0x5')};function emitEvent(_0x1b8610){return function(_0x2a838a,_0x5207c9,_0x16e259){FaxQueueEvents[_0x6d6d('0x6')](_0x1b8610+':'+_0x2a838a['id'],_0x2a838a);FaxQueueEvents['emit'](_0x1b8610,_0x2a838a);_0x16e259(null);};}for(var e in events){if(events[_0x6d6d('0x7')](e)){var event=events[e];FaxQueue[_0x6d6d('0x8')](e,emitEvent(event));}}module[_0x6d6d('0x9')]=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d4d=['util','../../config/logger','moment','bluebird','request-promise','./faxQueue.attributes','exports','define','FaxQueue','lodash'];(function(_0x648163,_0x241576){var _0x199d4d=function(_0x23055d){while(--_0x23055d){_0x648163['push'](_0x648163['shift']());}};_0x199d4d(++_0x241576);}(_0x6d4d,0x167));var _0xd6d4=function(_0x32a189,_0x1eac29){_0x32a189=_0x32a189-0x0;var _0x5584e2=_0x6d4d[_0x32a189];return _0x5584e2;};'use strict';var _=require(_0xd6d4('0x0'));var util=require(_0xd6d4('0x1'));var logger=require(_0xd6d4('0x2'))('api');var moment=require(_0xd6d4('0x3'));var BPromise=require(_0xd6d4('0x4'));var rp=require(_0xd6d4('0x5'));var attributes=require(_0xd6d4('0x6'));module[_0xd6d4('0x7')]=function(_0x33e1f9,_0x194489){return _0x33e1f9[_0xd6d4('0x8')](_0xd6d4('0x9'),attributes,{'tableName':'fax_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x773d=['../../config/logger','api','./faxQueue.attributes','exports','define','lodash','util'];(function(_0x2fefaf,_0x13bc03){var _0x4452ae=function(_0x3fe95e){while(--_0x3fe95e){_0x2fefaf['push'](_0x2fefaf['shift']());}};_0x4452ae(++_0x13bc03);}(_0x773d,0xbb));var _0xd773=function(_0x34d17e,_0x4de63a){_0x34d17e=_0x34d17e-0x0;var _0x25dbf5=_0x773d[_0x34d17e];return _0x25dbf5;};'use strict';var _=require(_0xd773('0x0'));var util=require(_0xd773('0x1'));var logger=require(_0xd773('0x2'))(_0xd773('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0xd773('0x4'));module[_0xd773('0x5')]=function(_0x41c020,_0xc00168){return _0x41c020[_0xd773('0x6')]('FaxQueue',attributes,{'tableName':'fax_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6dd=['socket.io-emitter','request','then','info','FaxQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','GetFaxQueue','FaxQueue','options','raw','attributes','include','map','model','catch','ShowFaxQueue','find','where','lodash','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults'];(function(_0x2da690,_0x266d1f){var _0x97968e=function(_0x5a90ef){while(--_0x5a90ef){_0x2da690['push'](_0x2da690['shift']());}};_0x97968e(++_0x266d1f);}(_0xc6dd,0x175));var _0xdc6d=function(_0x1d1f93,_0x6f52ff){_0x1d1f93=_0x1d1f93-0x0;var _0x2f7897=_0xc6dd[_0x1d1f93];return _0x2f7897;};'use strict';var _=require(_0xdc6d('0x0'));var util=require('util');var moment=require(_0xdc6d('0x1'));var BPromise=require(_0xdc6d('0x2'));var rs=require(_0xdc6d('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xdc6d('0x4'));var logger=require(_0xdc6d('0x5'))(_0xdc6d('0x6'));var config=require(_0xdc6d('0x7'));var jayson=require(_0xdc6d('0x8'));var client=jayson['client'][_0xdc6d('0x9')]({'port':0x232a});config[_0xdc6d('0xa')]=_[_0xdc6d('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xdc6d('0xc'))(config[_0xdc6d('0xa')]);require('./faxQueue.socket')['register'](socket);function respondWithRpcPromise(_0x43e913,_0x5f2736,_0x5ba99b){return new BPromise(function(_0x39c70c,_0xbd88b7){return client[_0xdc6d('0xd')](_0x43e913,_0x5ba99b)[_0xdc6d('0xe')](function(_0x5bce88){logger[_0xdc6d('0xf')](_0xdc6d('0x10'),_0x5f2736,'request\x20sent');logger[_0xdc6d('0x11')]('FaxQueue,\x20%s,\x20%s,\x20%s',_0x5f2736,_0xdc6d('0x12'),JSON[_0xdc6d('0x13')](_0x5bce88));if(_0x5bce88[_0xdc6d('0x14')]){if(_0x5bce88[_0xdc6d('0x14')][_0xdc6d('0x15')]===0x1f4){logger[_0xdc6d('0x14')](_0xdc6d('0x10'),_0x5f2736,_0x5bce88[_0xdc6d('0x14')]['message']);return _0xbd88b7(_0x5bce88[_0xdc6d('0x14')]['message']);}logger['error']('FaxQueue,\x20%s,\x20%s',_0x5f2736,_0x5bce88[_0xdc6d('0x14')]['message']);return _0x39c70c(_0x5bce88[_0xdc6d('0x14')][_0xdc6d('0x16')]);}else{logger[_0xdc6d('0xf')](_0xdc6d('0x10'),_0x5f2736,_0xdc6d('0x12'));_0x39c70c(_0x5bce88['result'][_0xdc6d('0x16')]);}})['catch'](function(_0x4cd191){logger['error'](_0xdc6d('0x10'),_0x5f2736,_0x4cd191);_0xbd88b7(_0x4cd191);});});}exports[_0xdc6d('0x17')]=function(_0xd4943){var _0x238714=this;return new Promise(function(_0x30977c,_0x456184){return db[_0xdc6d('0x18')]['findAll']({'raw':_0xd4943[_0xdc6d('0x19')]?_0xd4943[_0xdc6d('0x19')][_0xdc6d('0x1a')]===undefined?!![]:![]:!![],'where':_0xd4943[_0xdc6d('0x19')]?_0xd4943[_0xdc6d('0x19')]['where']||null:null,'attributes':_0xd4943[_0xdc6d('0x19')]?_0xd4943[_0xdc6d('0x19')][_0xdc6d('0x1b')]||null:null,'limit':_0xd4943[_0xdc6d('0x19')]?_0xd4943['options']['limit']||null:null,'include':_0xd4943[_0xdc6d('0x19')]?_0xd4943['options'][_0xdc6d('0x1c')]?_[_0xdc6d('0x1d')](_0xd4943[_0xdc6d('0x19')][_0xdc6d('0x1c')],function(_0x20dade){return{'model':db[_0x20dade[_0xdc6d('0x1e')]],'as':_0x20dade['as'],'attributes':_0x20dade[_0xdc6d('0x1b')],'include':_0x20dade[_0xdc6d('0x1c')]?_[_0xdc6d('0x1d')](_0x20dade[_0xdc6d('0x1c')],function(_0xe91e51){return{'model':db[_0xe91e51[_0xdc6d('0x1e')]],'as':_0xe91e51['as'],'attributes':_0xe91e51[_0xdc6d('0x1b')],'include':_0xe91e51[_0xdc6d('0x1c')]?_['map'](_0xe91e51[_0xdc6d('0x1c')],function(_0x22221d){return{'model':db[_0x22221d['model']],'as':_0x22221d['as'],'attributes':_0x22221d[_0xdc6d('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xdc6d('0xe')](function(_0x49d6a2){logger['info'](_0xdc6d('0x17'),_0xd4943);logger['debug'](_0xdc6d('0x17'),_0xd4943,JSON[_0xdc6d('0x13')](_0x49d6a2));_0x30977c(_0x49d6a2);})[_0xdc6d('0x1f')](function(_0x2be20e){logger[_0xdc6d('0x14')](_0xdc6d('0x17'),_0x2be20e[_0xdc6d('0x16')],_0xd4943);_0x456184(_0x238714[_0xdc6d('0x14')](0x1f4,_0x2be20e[_0xdc6d('0x16')]));});});};exports[_0xdc6d('0x20')]=function(_0xa60dab){var _0x283273=this;return new Promise(function(_0x4a8d9c,_0x222d31){return db['FaxQueue'][_0xdc6d('0x21')]({'raw':_0xa60dab[_0xdc6d('0x19')]?_0xa60dab[_0xdc6d('0x19')][_0xdc6d('0x1a')]===undefined?!![]:![]:!![],'where':_0xa60dab['options']?_0xa60dab[_0xdc6d('0x19')][_0xdc6d('0x22')]||null:null,'attributes':_0xa60dab[_0xdc6d('0x19')]?_0xa60dab[_0xdc6d('0x19')][_0xdc6d('0x1b')]||null:null,'include':_0xa60dab[_0xdc6d('0x19')]?_0xa60dab[_0xdc6d('0x19')]['include']?_[_0xdc6d('0x1d')](_0xa60dab['options'][_0xdc6d('0x1c')],function(_0x1fbf05){return{'model':db[_0x1fbf05['model']],'as':_0x1fbf05['as'],'attributes':_0x1fbf05[_0xdc6d('0x1b')],'include':_0x1fbf05[_0xdc6d('0x1c')]?_[_0xdc6d('0x1d')](_0x1fbf05['include'],function(_0x57160d){return{'model':db[_0x57160d['model']],'as':_0x57160d['as'],'attributes':_0x57160d[_0xdc6d('0x1b')],'include':_0x57160d[_0xdc6d('0x1c')]?_[_0xdc6d('0x1d')](_0x57160d[_0xdc6d('0x1c')],function(_0x383792){return{'model':db[_0x383792['model']],'as':_0x383792['as'],'attributes':_0x383792[_0xdc6d('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xdc6d('0xe')](function(_0x1bd64c){logger['info'](_0xdc6d('0x20'),_0xa60dab);logger[_0xdc6d('0x11')]('ShowFaxQueue',_0xa60dab,JSON[_0xdc6d('0x13')](_0x1bd64c));_0x4a8d9c(_0x1bd64c);})['catch'](function(_0x32ccd0){logger[_0xdc6d('0x14')](_0xdc6d('0x20'),_0x32ccd0[_0xdc6d('0x16')],_0xa60dab);_0x222d31(_0x283273[_0xdc6d('0x14')](0x1f4,_0x32ccd0[_0xdc6d('0x16')]));});});};
\ No newline at end of file
+var _0xa96d=['ShowFaxQueue','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','then','info','FaxQueue,\x20%s,\x20%s','request\x20sent','debug','FaxQueue,\x20%s,\x20%s,\x20%s','error','message','catch','GetFaxQueue','FaxQueue','findAll','options','raw','limit','include','map','model','attributes','stringify','find','where'];(function(_0x502562,_0x4b78dd){var _0x356e10=function(_0x63ac4d){while(--_0x63ac4d){_0x502562['push'](_0x502562['shift']());}};_0x356e10(++_0x4b78dd);}(_0xa96d,0xc4));var _0xda96=function(_0x7e3bb8,_0x27c048){_0x7e3bb8=_0x7e3bb8-0x0;var _0x44c887=_0xa96d[_0x7e3bb8];return _0x44c887;};'use strict';var _=require(_0xda96('0x0'));var util=require(_0xda96('0x1'));var moment=require('moment');var BPromise=require(_0xda96('0x2'));var rs=require(_0xda96('0x3'));var fs=require('fs');var Redis=require(_0xda96('0x4'));var db=require(_0xda96('0x5'))['db'];var utils=require(_0xda96('0x6'));var logger=require('../../config/logger')(_0xda96('0x7'));var config=require('../../config/environment');var jayson=require(_0xda96('0x8'));var client=jayson[_0xda96('0x9')][_0xda96('0xa')]({'port':0x232a});config[_0xda96('0xb')]=_[_0xda96('0xc')](config[_0xda96('0xb')],{'host':_0xda96('0xd'),'port':0x18eb});var socket=require(_0xda96('0xe'))(new Redis(config[_0xda96('0xb')]));require('./faxQueue.socket')[_0xda96('0xf')](socket);function respondWithRpcPromise(_0xab01e,_0x1adb63,_0x1de72f){return new BPromise(function(_0x3b447a,_0x5789a6){return client['request'](_0xab01e,_0x1de72f)[_0xda96('0x10')](function(_0x2dc2a6){logger[_0xda96('0x11')](_0xda96('0x12'),_0x1adb63,_0xda96('0x13'));logger[_0xda96('0x14')](_0xda96('0x15'),_0x1adb63,_0xda96('0x13'),JSON['stringify'](_0x2dc2a6));if(_0x2dc2a6[_0xda96('0x16')]){if(_0x2dc2a6[_0xda96('0x16')]['code']===0x1f4){logger[_0xda96('0x16')]('FaxQueue,\x20%s,\x20%s',_0x1adb63,_0x2dc2a6['error']['message']);return _0x5789a6(_0x2dc2a6[_0xda96('0x16')][_0xda96('0x17')]);}logger[_0xda96('0x16')]('FaxQueue,\x20%s,\x20%s',_0x1adb63,_0x2dc2a6['error']['message']);return _0x3b447a(_0x2dc2a6[_0xda96('0x16')][_0xda96('0x17')]);}else{logger[_0xda96('0x11')](_0xda96('0x12'),_0x1adb63,'request\x20sent');_0x3b447a(_0x2dc2a6['result'][_0xda96('0x17')]);}})[_0xda96('0x18')](function(_0x1734a2){logger[_0xda96('0x16')](_0xda96('0x12'),_0x1adb63,_0x1734a2);_0x5789a6(_0x1734a2);});});}exports[_0xda96('0x19')]=function(_0x1fda07){var _0x9edd4c=this;return new Promise(function(_0x120df1,_0x2a6bbf){return db[_0xda96('0x1a')][_0xda96('0x1b')]({'raw':_0x1fda07[_0xda96('0x1c')]?_0x1fda07[_0xda96('0x1c')][_0xda96('0x1d')]===undefined?!![]:![]:!![],'where':_0x1fda07[_0xda96('0x1c')]?_0x1fda07[_0xda96('0x1c')]['where']||null:null,'attributes':_0x1fda07['options']?_0x1fda07['options']['attributes']||null:null,'limit':_0x1fda07[_0xda96('0x1c')]?_0x1fda07['options'][_0xda96('0x1e')]||null:null,'include':_0x1fda07['options']?_0x1fda07['options'][_0xda96('0x1f')]?_[_0xda96('0x20')](_0x1fda07['options'][_0xda96('0x1f')],function(_0x4c94a5){return{'model':db[_0x4c94a5[_0xda96('0x21')]],'as':_0x4c94a5['as'],'attributes':_0x4c94a5[_0xda96('0x22')],'include':_0x4c94a5['include']?_['map'](_0x4c94a5[_0xda96('0x1f')],function(_0x1ac822){return{'model':db[_0x1ac822[_0xda96('0x21')]],'as':_0x1ac822['as'],'attributes':_0x1ac822[_0xda96('0x22')],'include':_0x1ac822['include']?_[_0xda96('0x20')](_0x1ac822['include'],function(_0xe20caa){return{'model':db[_0xe20caa[_0xda96('0x21')]],'as':_0xe20caa['as'],'attributes':_0xe20caa[_0xda96('0x22')]};}):[]};}):[]};}):[]:[]})[_0xda96('0x10')](function(_0x2c76e0){logger['info'](_0xda96('0x19'),_0x1fda07);logger['debug']('GetFaxQueue',_0x1fda07,JSON[_0xda96('0x23')](_0x2c76e0));_0x120df1(_0x2c76e0);})['catch'](function(_0x12af1b){logger[_0xda96('0x16')](_0xda96('0x19'),_0x12af1b[_0xda96('0x17')],_0x1fda07);_0x2a6bbf(_0x9edd4c['error'](0x1f4,_0x12af1b[_0xda96('0x17')]));});});};exports['ShowFaxQueue']=function(_0x285cc0){var _0x3739a1=this;return new Promise(function(_0x2d6d69,_0x4b840b){return db[_0xda96('0x1a')][_0xda96('0x24')]({'raw':_0x285cc0[_0xda96('0x1c')]?_0x285cc0['options'][_0xda96('0x1d')]===undefined?!![]:![]:!![],'where':_0x285cc0['options']?_0x285cc0[_0xda96('0x1c')][_0xda96('0x25')]||null:null,'attributes':_0x285cc0[_0xda96('0x1c')]?_0x285cc0[_0xda96('0x1c')][_0xda96('0x22')]||null:null,'include':_0x285cc0[_0xda96('0x1c')]?_0x285cc0[_0xda96('0x1c')][_0xda96('0x1f')]?_[_0xda96('0x20')](_0x285cc0[_0xda96('0x1c')][_0xda96('0x1f')],function(_0xf94acf){return{'model':db[_0xf94acf['model']],'as':_0xf94acf['as'],'attributes':_0xf94acf[_0xda96('0x22')],'include':_0xf94acf['include']?_[_0xda96('0x20')](_0xf94acf[_0xda96('0x1f')],function(_0x555e8d){return{'model':db[_0x555e8d[_0xda96('0x21')]],'as':_0x555e8d['as'],'attributes':_0x555e8d[_0xda96('0x22')],'include':_0x555e8d['include']?_[_0xda96('0x20')](_0x555e8d['include'],function(_0x3a582f){return{'model':db[_0x3a582f[_0xda96('0x21')]],'as':_0x3a582f['as'],'attributes':_0x3a582f[_0xda96('0x22')]};}):[]};}):[]};}):[]:[]})[_0xda96('0x10')](function(_0xc5e4f8){logger['info'](_0xda96('0x26'),_0x285cc0);logger['debug'](_0xda96('0x26'),_0x285cc0,JSON[_0xda96('0x23')](_0xc5e4f8));_0x2d6d69(_0xc5e4f8);})[_0xda96('0x18')](function(_0x257b79){logger['error'](_0xda96('0x26'),_0x257b79[_0xda96('0x17')],_0x285cc0);_0x4b840b(_0x3739a1[_0xda96('0x16')](0x1f4,_0x257b79[_0xda96('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6dbd=['remove','emit','removeListener','register','length','faxQueue:','./faxQueue.events','save'];(function(_0x589fb1,_0x5d8fb5){var _0x12195c=function(_0x2f9a9c){while(--_0x2f9a9c){_0x589fb1['push'](_0x589fb1['shift']());}};_0x12195c(++_0x5d8fb5);}(_0x6dbd,0x8e));var _0xd6db=function(_0x10bcb7,_0x518c99){_0x10bcb7=_0x10bcb7-0x0;var _0x3c1b3b=_0x6dbd[_0x10bcb7];return _0x3c1b3b;};'use strict';var FaxQueueEvents=require(_0xd6db('0x0'));var events=[_0xd6db('0x1'),_0xd6db('0x2'),'update'];function createListener(_0x4cd2cb,_0x681492){return function(_0x12fbb4){_0x681492[_0xd6db('0x3')](_0x4cd2cb,_0x12fbb4);};}function removeListener(_0x12d987,_0x39a1d3){return function(){FaxQueueEvents[_0xd6db('0x4')](_0x12d987,_0x39a1d3);};}exports[_0xd6db('0x5')]=function(_0x127669){for(var _0x362154=0x0,_0x6c0c90=events[_0xd6db('0x6')];_0x362154<_0x6c0c90;_0x362154++){var _0x5b64ba=events[_0x362154];var _0x423bd6=createListener(_0xd6db('0x7')+_0x5b64ba,_0x127669);FaxQueueEvents['on'](_0x5b64ba,_0x423bd6);}};
\ No newline at end of file
+var _0x7823=['save','remove','update','emit','removeListener','faxQueue:','./faxQueue.events'];(function(_0x768427,_0x19485a){var _0x24d41c=function(_0x3b51e3){while(--_0x3b51e3){_0x768427['push'](_0x768427['shift']());}};_0x24d41c(++_0x19485a);}(_0x7823,0xd1));var _0x3782=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x7823[_0x6c993a];return _0x27f547;};'use strict';var FaxQueueEvents=require(_0x3782('0x0'));var events=[_0x3782('0x1'),_0x3782('0x2'),_0x3782('0x3')];function createListener(_0x3ae94e,_0x42663f){return function(_0x412a54){_0x42663f[_0x3782('0x4')](_0x3ae94e,_0x412a54);};}function removeListener(_0x410fd3,_0x4d7ae4){return function(){FaxQueueEvents[_0x3782('0x5')](_0x410fd3,_0x4d7ae4);};}exports['register']=function(_0x201e8e){for(var _0x29d962=0x0,_0x2180bf=events['length'];_0x29d962<_0x2180bf;_0x29d962++){var _0x203316=events[_0x29d962];var _0x159f73=createListener(_0x3782('0x6')+_0x203316,_0x201e8e);FaxQueueEvents['on'](_0x203316,_0x159f73);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8adb=['show','getMembers','/:id/teams','getTeams','/:id/users','getAgents','create','addTeams','post','update','delete','destroy','removeTeams','util','path','connect-timeout','express','Router','../../components/auth/service','./faxQueue.controller','get','isAuthenticated','/describe','describe','/:id'];(function(_0x208c2d,_0x2e40e1){var _0x38f676=function(_0x2838d7){while(--_0x2838d7){_0x208c2d['push'](_0x208c2d['shift']());}};_0x38f676(++_0x2e40e1);}(_0x8adb,0x71));var _0xb8ad=function(_0x45b1ab,_0x209a7e){_0x45b1ab=_0x45b1ab-0x0;var _0x27edd5=_0x8adb[_0x45b1ab];return _0x27edd5;};'use strict';var multer=require('multer');var util=require(_0xb8ad('0x0'));var path=require(_0xb8ad('0x1'));var timeout=require(_0xb8ad('0x2'));var express=require(_0xb8ad('0x3'));var router=express[_0xb8ad('0x4')]();var auth=require(_0xb8ad('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xb8ad('0x6'));router[_0xb8ad('0x7')]('/',auth[_0xb8ad('0x8')](),controller['index']);router[_0xb8ad('0x7')](_0xb8ad('0x9'),auth[_0xb8ad('0x8')](),controller[_0xb8ad('0xa')]);router[_0xb8ad('0x7')](_0xb8ad('0xb'),auth[_0xb8ad('0x8')](),controller[_0xb8ad('0xc')]);router[_0xb8ad('0x7')]('/:id/members',auth[_0xb8ad('0x8')](),controller[_0xb8ad('0xd')]);router['get'](_0xb8ad('0xe'),auth['isAuthenticated'](),controller[_0xb8ad('0xf')]);router[_0xb8ad('0x7')](_0xb8ad('0x10'),auth[_0xb8ad('0x8')](),controller[_0xb8ad('0x11')]);router['post']('/',auth[_0xb8ad('0x8')](),controller[_0xb8ad('0x12')]);router['post']('/:id/teams',auth['isAuthenticated'](),controller[_0xb8ad('0x13')]);router[_0xb8ad('0x14')](_0xb8ad('0x10'),auth[_0xb8ad('0x8')](),controller['addAgents']);router['put'](_0xb8ad('0xb'),auth[_0xb8ad('0x8')](),controller[_0xb8ad('0x15')]);router[_0xb8ad('0x16')]('/:id',auth['isAuthenticated'](),controller[_0xb8ad('0x17')]);router[_0xb8ad('0x16')](_0xb8ad('0xe'),auth['isAuthenticated'](),controller[_0xb8ad('0x18')]);router['delete'](_0xb8ad('0x10'),auth[_0xb8ad('0x8')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0xb275=['../../components/auth/service','../../components/interaction/service','./faxQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update','delete','multer','path','express','Router'];(function(_0x39ad31,_0x167dbe){var _0x45d144=function(_0x286f10){while(--_0x286f10){_0x39ad31['push'](_0x39ad31['shift']());}};_0x45d144(++_0x167dbe);}(_0xb275,0x140));var _0x5b27=function(_0x573b6b,_0x14b1e5){_0x573b6b=_0x573b6b-0x0;var _0x834a85=_0xb275[_0x573b6b];return _0x834a85;};'use strict';var multer=require(_0x5b27('0x0'));var util=require('util');var path=require(_0x5b27('0x1'));var timeout=require('connect-timeout');var express=require(_0x5b27('0x2'));var router=express[_0x5b27('0x3')]();var auth=require(_0x5b27('0x4'));var interaction=require(_0x5b27('0x5'));var config=require('../../config/environment');var controller=require(_0x5b27('0x6'));router[_0x5b27('0x7')]('/',auth[_0x5b27('0x8')](),controller[_0x5b27('0x9')]);router[_0x5b27('0x7')](_0x5b27('0xa'),auth[_0x5b27('0x8')](),controller[_0x5b27('0xb')]);router[_0x5b27('0x7')](_0x5b27('0xc'),auth[_0x5b27('0x8')](),controller[_0x5b27('0xd')]);router[_0x5b27('0x7')](_0x5b27('0xe'),auth[_0x5b27('0x8')](),controller[_0x5b27('0xf')]);router['get'](_0x5b27('0x10'),auth[_0x5b27('0x8')](),controller[_0x5b27('0x11')]);router['get'](_0x5b27('0x12'),auth['isAuthenticated'](),controller[_0x5b27('0x13')]);router[_0x5b27('0x14')]('/',auth['isAuthenticated'](),controller[_0x5b27('0x15')]);router[_0x5b27('0x14')](_0x5b27('0x10'),auth['isAuthenticated'](),controller[_0x5b27('0x16')]);router[_0x5b27('0x14')](_0x5b27('0x12'),auth[_0x5b27('0x8')](),controller[_0x5b27('0x17')]);router[_0x5b27('0x18')]('/:id',auth[_0x5b27('0x8')](),controller[_0x5b27('0x19')]);router[_0x5b27('0x1a')](_0x5b27('0xc'),auth[_0x5b27('0x8')](),controller['destroy']);router[_0x5b27('0x1a')](_0x5b27('0x10'),auth['isAuthenticated'](),controller['removeTeams']);router[_0x5b27('0x1a')](_0x5b27('0x12'),auth[_0x5b27('0x8')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65c9=['STRING','DATE','moment','sequelize','exports'];(function(_0x503564,_0x55867e){var _0x4be9fd=function(_0x41c543){while(--_0x41c543){_0x503564['push'](_0x503564['shift']());}};_0x4be9fd(++_0x55867e);}(_0x65c9,0x1f1));var _0x965c=function(_0x41fc6e,_0x218061){_0x41fc6e=_0x41fc6e-0x0;var _0x28b235=_0x65c9[_0x41fc6e];return _0x28b235;};'use strict';var moment=require(_0x965c('0x0'));var Sequelize=require(_0x965c('0x1'));module[_0x965c('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x965c('0x3')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x965c('0x4')]},'acceptAt':{'type':Sequelize[_0x965c('0x4')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x0a96=['sequelize','exports','STRING','DATE','moment'];(function(_0x19b4ce,_0x187040){var _0x180b52=function(_0x44c611){while(--_0x44c611){_0x19b4ce['push'](_0x19b4ce['shift']());}};_0x180b52(++_0x187040);}(_0x0a96,0x117));var _0x60a9=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x0a96[_0x122ef9];return _0x42fba0;};'use strict';var moment=require(_0x60a9('0x0'));var Sequelize=require(_0x60a9('0x1'));module[_0x60a9('0x2')]={'uniqueid':{'type':Sequelize[_0x60a9('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x60a9('0x3')]},'joinAt':{'type':Sequelize[_0x60a9('0x4')]},'leaveAt':{'type':Sequelize[_0x60a9('0x4')]},'acceptAt':{'type':Sequelize[_0x60a9('0x4')]},'exitAt':{'type':Sequelize[_0x60a9('0x4')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4b3=['../../config/environment','../../mysqldb','status','end','json','count','offset','limit','Content-Range','apply','reject','update','then','destroy','sendStatus','error','name','index','FaxQueueReport','rawAttributes','query','dateStart','dateEnd','keys','intersection','attributes','fields','length','model','hasOwnProperty','order','sort','where','filters','add','day','merge','filter','map','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','../../config/utils'];(function(_0x65d877,_0x16dcd2){var _0x2e129c=function(_0xbe1baf){while(--_0xbe1baf){_0x65d877['push'](_0x65d877['shift']());}};_0x2e129c(++_0x16dcd2);}(_0xb4b3,0x1e3));var _0x3b4b=function(_0x593c73,_0x5c1fa5){_0x593c73=_0x593c73-0x0;var _0x44794c=_0xb4b3[_0x593c73];return _0x44794c;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x3b4b('0x0'));var rimraf=require(_0x3b4b('0x1'));var zipdir=require(_0x3b4b('0x2'));var jsonpatch=require(_0x3b4b('0x3'));var rp=require(_0x3b4b('0x4'));var moment=require(_0x3b4b('0x5'));var BPromise=require(_0x3b4b('0x6'));var Mustache=require(_0x3b4b('0x7'));var util=require(_0x3b4b('0x8'));var path=require(_0x3b4b('0x9'));var sox=require(_0x3b4b('0xa'));var csv=require(_0x3b4b('0xb'));var ejs=require(_0x3b4b('0xc'));var fs=require('fs');var _=require(_0x3b4b('0xd'));var squel=require(_0x3b4b('0xe'));var crypto=require('crypto');var jsforce=require(_0x3b4b('0xf'));var deskjs=require(_0x3b4b('0x10'));var toCsv=require(_0x3b4b('0xb'));var querystring=require(_0x3b4b('0x11'));var Papa=require('papaparse');var qs=require(_0x3b4b('0x12'));var logger=require(_0x3b4b('0x13'))('api');var utils=require(_0x3b4b('0x14'));var config=require(_0x3b4b('0x15'));var db=require(_0x3b4b('0x16'))['db'];function respondWithStatusCode(_0x441497,_0x4fe5f6){_0x4fe5f6=_0x4fe5f6||0xcc;return function(_0x1f6c00){if(_0x1f6c00){return _0x441497['sendStatus'](_0x4fe5f6);}return _0x441497[_0x3b4b('0x17')](_0x4fe5f6)[_0x3b4b('0x18')]();};}function respondWithResult(_0x537621,_0x503024){_0x503024=_0x503024||0xc8;return function(_0x27a391){if(_0x27a391){return _0x537621[_0x3b4b('0x17')](_0x503024)[_0x3b4b('0x19')](_0x27a391);}};}function respondWithFilteredResult(_0x14977b,_0x336619){return function(_0x2de7c3){if(_0x2de7c3){var _0x260580=_0x2de7c3[_0x3b4b('0x1a')],_0x56d54d=_0x336619[_0x3b4b('0x1b')],_0x2d37b8=_0x336619[_0x3b4b('0x1b')]+_0x336619[_0x3b4b('0x1c')],_0x5ea84f;if(_0x2d37b8>=_0x260580){_0x2d37b8=_0x260580;_0x5ea84f=0xc8;}else{_0x5ea84f=0xce;}_0x14977b[_0x3b4b('0x17')](_0x5ea84f);return _0x14977b['set'](_0x3b4b('0x1d'),_0x56d54d+'-'+_0x2d37b8+'/'+_0x260580)[_0x3b4b('0x19')](_0x2de7c3);}return null;};}function patchUpdates(_0x2f53a8){return function(_0x513bd1){try{jsonpatch[_0x3b4b('0x1e')](_0x513bd1,_0x2f53a8,!![]);}catch(_0x232bea){return BPromise[_0x3b4b('0x1f')](_0x232bea);}return _0x513bd1['save']();};}function saveUpdates(_0x521129,_0x3802c3){return function(_0x4256a4){if(_0x4256a4){return _0x4256a4[_0x3b4b('0x20')](_0x521129)[_0x3b4b('0x21')](function(_0x40be31){return _0x40be31;});}return null;};}function removeEntity(_0x13f344,_0x408f04){return function(_0x5e2179){if(_0x5e2179){return _0x5e2179[_0x3b4b('0x22')]()['then'](function(){_0x13f344[_0x3b4b('0x17')](0xcc)[_0x3b4b('0x18')]();});}};}function handleEntityNotFound(_0x2021d4,_0x56fd00){return function(_0x44f8c4){if(!_0x44f8c4){_0x2021d4[_0x3b4b('0x23')](0x194);}return _0x44f8c4;};}function handleError(_0xf83a3b,_0x46fb6f){_0x46fb6f=_0x46fb6f||0x1f4;return function(_0x19f16e){logger[_0x3b4b('0x24')](_0x19f16e['stack']);if(_0x19f16e['name']){delete _0x19f16e[_0x3b4b('0x25')];}_0xf83a3b[_0x3b4b('0x17')](_0x46fb6f)['send'](_0x19f16e);};}exports[_0x3b4b('0x26')]=function(_0x1924b1,_0xaf8e72){var _0x436480={},_0x5d0a97={},_0x527df8={'count':0x0,'rows':[]};var _0x1fefda=db[_0x3b4b('0x27')][_0x3b4b('0x28')];_0x5d0a97['model']=_['keys'](_0x1fefda);var _0x39569a={'dateStart':_0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x2a')],'dateEnd':_0x1924b1['query']['dateEnd']};delete _0x1924b1['query']['dateStart'];delete _0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x2b')];_0x5d0a97[_0x3b4b('0x29')]=_[_0x3b4b('0x2c')](_0x1924b1['query']);_0x5d0a97['filters']=_[_0x3b4b('0x2d')](_0x5d0a97['model'],_0x5d0a97[_0x3b4b('0x29')]);_0x436480[_0x3b4b('0x2e')]=_[_0x3b4b('0x2d')](_0x5d0a97['model'],qs[_0x3b4b('0x2f')](_0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x2f')]));_0x436480[_0x3b4b('0x2e')]=_0x436480['attributes'][_0x3b4b('0x30')]?_0x436480[_0x3b4b('0x2e')]:_0x5d0a97[_0x3b4b('0x31')];if(!_0x1924b1['query'][_0x3b4b('0x32')]('nolimit')){_0x436480[_0x3b4b('0x1c')]=qs[_0x3b4b('0x1c')](_0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x1c')]);_0x436480['offset']=qs['offset'](_0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x1b')]);}_0x436480[_0x3b4b('0x33')]=qs[_0x3b4b('0x34')](_0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x34')]);_0x436480[_0x3b4b('0x35')]=qs[_0x3b4b('0x36')](_['pick'](_0x1924b1[_0x3b4b('0x29')],_0x5d0a97[_0x3b4b('0x36')]));if(_0x39569a[_0x3b4b('0x2a')]){if(_0x39569a[_0x3b4b('0x2b')]){_0x39569a[_0x3b4b('0x2b')]=moment(_0x39569a['dateEnd'])[_0x3b4b('0x37')](0x1,_0x3b4b('0x38'));}else{_0x39569a[_0x3b4b('0x2b')]=moment(_0x39569a[_0x3b4b('0x2a')])[_0x3b4b('0x37')](0x1,'day');}_[_0x3b4b('0x39')](_0x436480[_0x3b4b('0x35')],{'createdAt':{'$gte':_0x39569a[_0x3b4b('0x2a')],'$lte':_0x39569a[_0x3b4b('0x2b')]}});}if(_0x1924b1[_0x3b4b('0x29')][_0x3b4b('0x3a')]){_0x436480['where']=_[_0x3b4b('0x39')](_0x436480[_0x3b4b('0x35')],{'$or':_[_0x3b4b('0x3b')](_0x436480[_0x3b4b('0x2e')],function(_0x33fe66){var _0x216a00={};_0x216a00[_0x33fe66]={'$like':'%'+_0x1924b1['query']['filter']+'%'};return _0x216a00;})});}_0x436480=_[_0x3b4b('0x39')]({},_0x436480,_0x1924b1[_0x3b4b('0x3c')]);var _0x12ee44={'where':_0x436480[_0x3b4b('0x35')]};return db['FaxQueueReport'][_0x3b4b('0x1a')](_0x12ee44)['then'](function(_0x32a303){_0x527df8[_0x3b4b('0x1a')]=_0x32a303;if(_0x1924b1[_0x3b4b('0x29')]['includeAll']){_0x436480[_0x3b4b('0x3d')]=[{'all':!![]}];}return db[_0x3b4b('0x27')][_0x3b4b('0x3e')](_0x436480);})[_0x3b4b('0x21')](function(_0x1524df){_0x527df8[_0x3b4b('0x3f')]=_0x1524df;return _0x527df8;})[_0x3b4b('0x21')](respondWithFilteredResult(_0xaf8e72,_0x436480))[_0x3b4b('0x40')](handleError(_0xaf8e72,null));};exports[_0x3b4b('0x41')]=function(_0x58e6e5,_0x5caa62){var _0x2d182a={'raw':!![],'where':{'id':_0x58e6e5[_0x3b4b('0x42')]['id']}},_0x34d775={};_0x34d775[_0x3b4b('0x31')]=_['keys'](db[_0x3b4b('0x27')][_0x3b4b('0x28')]);_0x34d775['query']=_['keys'](_0x58e6e5['query']);_0x34d775[_0x3b4b('0x36')]=_['intersection'](_0x34d775['model'],_0x34d775['query']);_0x2d182a['attributes']=_['intersection'](_0x34d775[_0x3b4b('0x31')],qs[_0x3b4b('0x2f')](_0x58e6e5['query'][_0x3b4b('0x2f')]));_0x2d182a[_0x3b4b('0x2e')]=_0x2d182a[_0x3b4b('0x2e')][_0x3b4b('0x30')]?_0x2d182a[_0x3b4b('0x2e')]:_0x34d775[_0x3b4b('0x31')];if(_0x58e6e5['query'][_0x3b4b('0x43')]){_0x2d182a[_0x3b4b('0x3d')]=[{'all':!![]}];}_0x2d182a=_['merge']({},_0x2d182a,_0x58e6e5['options']);return db[_0x3b4b('0x27')][_0x3b4b('0x44')](_0x2d182a)['then'](handleEntityNotFound(_0x5caa62,null))['then'](respondWithResult(_0x5caa62,null))[_0x3b4b('0x40')](handleError(_0x5caa62,null));};exports[_0x3b4b('0x45')]=function(_0x3bbcb1,_0x5e840c){return db['FaxQueueReport'][_0x3b4b('0x45')](_0x3bbcb1['body'],{})[_0x3b4b('0x21')](respondWithResult(_0x5e840c,0xc9))[_0x3b4b('0x40')](handleError(_0x5e840c,null));};exports[_0x3b4b('0x20')]=function(_0xfb9a8,_0xf188cc){if(_0xfb9a8[_0x3b4b('0x46')]['id']){delete _0xfb9a8['body']['id'];}return db['FaxQueueReport'][_0x3b4b('0x44')]({'where':{'id':_0xfb9a8[_0x3b4b('0x42')]['id']}})['then'](handleEntityNotFound(_0xf188cc,null))['then'](saveUpdates(_0xfb9a8['body'],null))[_0x3b4b('0x21')](respondWithResult(_0xf188cc,null))[_0x3b4b('0x40')](handleError(_0xf188cc,null));};exports['destroy']=function(_0x512b9b,_0x4d2dc0){return db['FaxQueueReport'][_0x3b4b('0x44')]({'where':{'id':_0x512b9b[_0x3b4b('0x42')]['id']}})[_0x3b4b('0x21')](handleEntityNotFound(_0x4d2dc0,null))[_0x3b4b('0x21')](removeEntity(_0x4d2dc0,null))[_0x3b4b('0x40')](handleError(_0x4d2dc0,null));};exports[_0x3b4b('0x47')]=function(_0x16ede3,_0x3aafc5){return db['FaxQueueReport'][_0x3b4b('0x47')]()[_0x3b4b('0x21')](respondWithResult(_0x3aafc5,null))[_0x3b4b('0x40')](handleError(_0x3aafc5,null));};
\ No newline at end of file
+var _0x1d47=['index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','day','add','merge','filter','map','options','FaxQueueReport','includeAll','include','findAll','rows','catch','params','intersection','fields','find','body','describe','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','api','../../config/utils','../../config/environment','sendStatus','status','json','count','offset','set','apply','reject','save','update','then','destroy','end','error','stack','name','send'];(function(_0x51471e,_0xb2f3c9){var _0x32bd76=function(_0x4dd7ce){while(--_0x4dd7ce){_0x51471e['push'](_0x51471e['shift']());}};_0x32bd76(++_0xb2f3c9);}(_0x1d47,0xb1));var _0x71d4=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x1d47[_0x2c91e9];return _0x13f0ff;};'use strict';var pdf=require(_0x71d4('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x71d4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x71d4('0x2'));var rp=require(_0x71d4('0x3'));var moment=require(_0x71d4('0x4'));var BPromise=require(_0x71d4('0x5'));var Mustache=require(_0x71d4('0x6'));var util=require('util');var path=require('path');var sox=require(_0x71d4('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x71d4('0x8'));var squel=require(_0x71d4('0x9'));var crypto=require(_0x71d4('0xa'));var jsforce=require(_0x71d4('0xb'));var deskjs=require(_0x71d4('0xc'));var toCsv=require(_0x71d4('0xd'));var querystring=require(_0x71d4('0xe'));var Papa=require(_0x71d4('0xf'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x71d4('0x10'));var utils=require(_0x71d4('0x11'));var config=require(_0x71d4('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3b6faf,_0x4f2ea2){_0x4f2ea2=_0x4f2ea2||0xcc;return function(_0x358329){if(_0x358329){return _0x3b6faf[_0x71d4('0x13')](_0x4f2ea2);}return _0x3b6faf['status'](_0x4f2ea2)['end']();};}function respondWithResult(_0x1a7183,_0x38b90b){_0x38b90b=_0x38b90b||0xc8;return function(_0x5cc185){if(_0x5cc185){return _0x1a7183[_0x71d4('0x14')](_0x38b90b)[_0x71d4('0x15')](_0x5cc185);}};}function respondWithFilteredResult(_0x4b92b0,_0x5ee3fd){return function(_0x461b7c){if(_0x461b7c){var _0x4e19ed=_0x461b7c[_0x71d4('0x16')],_0x530667=_0x5ee3fd[_0x71d4('0x17')],_0x455673=_0x5ee3fd[_0x71d4('0x17')]+_0x5ee3fd['limit'],_0x41b6ee;if(_0x455673>=_0x4e19ed){_0x455673=_0x4e19ed;_0x41b6ee=0xc8;}else{_0x41b6ee=0xce;}_0x4b92b0['status'](_0x41b6ee);return _0x4b92b0[_0x71d4('0x18')]('Content-Range',_0x530667+'-'+_0x455673+'/'+_0x4e19ed)[_0x71d4('0x15')](_0x461b7c);}return null;};}function patchUpdates(_0x31ec9b){return function(_0x454ed1){try{jsonpatch[_0x71d4('0x19')](_0x454ed1,_0x31ec9b,!![]);}catch(_0x2e8285){return BPromise[_0x71d4('0x1a')](_0x2e8285);}return _0x454ed1[_0x71d4('0x1b')]();};}function saveUpdates(_0x5d9b42,_0x42a155){return function(_0x17202a){if(_0x17202a){return _0x17202a[_0x71d4('0x1c')](_0x5d9b42)[_0x71d4('0x1d')](function(_0x507a45){return _0x507a45;});}return null;};}function removeEntity(_0x25d9d5,_0x1d380e){return function(_0x93eaca){if(_0x93eaca){return _0x93eaca[_0x71d4('0x1e')]()[_0x71d4('0x1d')](function(){_0x25d9d5[_0x71d4('0x14')](0xcc)[_0x71d4('0x1f')]();});}};}function handleEntityNotFound(_0x8c2314,_0x5a689b){return function(_0x5492ba){if(!_0x5492ba){_0x8c2314[_0x71d4('0x13')](0x194);}return _0x5492ba;};}function handleError(_0x9dc87b,_0x5167ab){_0x5167ab=_0x5167ab||0x1f4;return function(_0x37f129){logger[_0x71d4('0x20')](_0x37f129[_0x71d4('0x21')]);if(_0x37f129[_0x71d4('0x22')]){delete _0x37f129[_0x71d4('0x22')];}_0x9dc87b[_0x71d4('0x14')](_0x5167ab)[_0x71d4('0x23')](_0x37f129);};}exports[_0x71d4('0x24')]=function(_0x5903af,_0x3f7741){var _0x31ec22={},_0x22003a={},_0x33f885={'count':0x0,'rows':[]};var _0x46fe95=db['FaxQueueReport'][_0x71d4('0x25')];_0x22003a[_0x71d4('0x26')]=_[_0x71d4('0x27')](_0x46fe95);var _0x4528e1={'dateStart':_0x5903af[_0x71d4('0x28')][_0x71d4('0x29')],'dateEnd':_0x5903af[_0x71d4('0x28')][_0x71d4('0x2a')]};delete _0x5903af[_0x71d4('0x28')][_0x71d4('0x29')];delete _0x5903af[_0x71d4('0x28')][_0x71d4('0x2a')];_0x22003a[_0x71d4('0x28')]=_[_0x71d4('0x27')](_0x5903af[_0x71d4('0x28')]);_0x22003a[_0x71d4('0x2b')]=_['intersection'](_0x22003a[_0x71d4('0x26')],_0x22003a[_0x71d4('0x28')]);_0x31ec22['attributes']=_['intersection'](_0x22003a[_0x71d4('0x26')],qs['fields'](_0x5903af[_0x71d4('0x28')]['fields']));_0x31ec22[_0x71d4('0x2c')]=_0x31ec22[_0x71d4('0x2c')][_0x71d4('0x2d')]?_0x31ec22['attributes']:_0x22003a[_0x71d4('0x26')];if(!_0x5903af[_0x71d4('0x28')][_0x71d4('0x2e')](_0x71d4('0x2f'))){_0x31ec22[_0x71d4('0x30')]=qs[_0x71d4('0x30')](_0x5903af['query'][_0x71d4('0x30')]);_0x31ec22['offset']=qs['offset'](_0x5903af[_0x71d4('0x28')][_0x71d4('0x17')]);}_0x31ec22[_0x71d4('0x31')]=qs[_0x71d4('0x32')](_0x5903af['query'][_0x71d4('0x32')]);_0x31ec22[_0x71d4('0x33')]=qs[_0x71d4('0x2b')](_[_0x71d4('0x34')](_0x5903af['query'],_0x22003a[_0x71d4('0x2b')]));if(_0x4528e1[_0x71d4('0x29')]){if(_0x4528e1[_0x71d4('0x2a')]){_0x4528e1['dateEnd']=moment(_0x4528e1[_0x71d4('0x2a')])['add'](0x1,_0x71d4('0x35'));}else{_0x4528e1[_0x71d4('0x2a')]=moment(_0x4528e1[_0x71d4('0x29')])[_0x71d4('0x36')](0x1,'day');}_[_0x71d4('0x37')](_0x31ec22[_0x71d4('0x33')],{'createdAt':{'$gte':_0x4528e1[_0x71d4('0x29')],'$lte':_0x4528e1[_0x71d4('0x2a')]}});}if(_0x5903af[_0x71d4('0x28')][_0x71d4('0x38')]){_0x31ec22[_0x71d4('0x33')]=_['merge'](_0x31ec22[_0x71d4('0x33')],{'$or':_[_0x71d4('0x39')](_0x31ec22[_0x71d4('0x2c')],function(_0x1bcba4){var _0x1dc5a4={};_0x1dc5a4[_0x1bcba4]={'$like':'%'+_0x5903af[_0x71d4('0x28')][_0x71d4('0x38')]+'%'};return _0x1dc5a4;})});}_0x31ec22=_['merge']({},_0x31ec22,_0x5903af[_0x71d4('0x3a')]);var _0x2e957f={'where':_0x31ec22[_0x71d4('0x33')]};return db[_0x71d4('0x3b')][_0x71d4('0x16')](_0x2e957f)[_0x71d4('0x1d')](function(_0x3301da){_0x33f885[_0x71d4('0x16')]=_0x3301da;if(_0x5903af['query'][_0x71d4('0x3c')]){_0x31ec22[_0x71d4('0x3d')]=[{'all':!![]}];}return db[_0x71d4('0x3b')][_0x71d4('0x3e')](_0x31ec22);})['then'](function(_0x2820c1){_0x33f885[_0x71d4('0x3f')]=_0x2820c1;return _0x33f885;})[_0x71d4('0x1d')](respondWithFilteredResult(_0x3f7741,_0x31ec22))[_0x71d4('0x40')](handleError(_0x3f7741,null));};exports['show']=function(_0x4d279c,_0x1d7b94){var _0xecc6c3={'raw':!![],'where':{'id':_0x4d279c[_0x71d4('0x41')]['id']}},_0x14be29={};_0x14be29[_0x71d4('0x26')]=_[_0x71d4('0x27')](db[_0x71d4('0x3b')][_0x71d4('0x25')]);_0x14be29[_0x71d4('0x28')]=_[_0x71d4('0x27')](_0x4d279c[_0x71d4('0x28')]);_0x14be29['filters']=_[_0x71d4('0x42')](_0x14be29[_0x71d4('0x26')],_0x14be29[_0x71d4('0x28')]);_0xecc6c3[_0x71d4('0x2c')]=_[_0x71d4('0x42')](_0x14be29[_0x71d4('0x26')],qs[_0x71d4('0x43')](_0x4d279c[_0x71d4('0x28')][_0x71d4('0x43')]));_0xecc6c3[_0x71d4('0x2c')]=_0xecc6c3['attributes'][_0x71d4('0x2d')]?_0xecc6c3[_0x71d4('0x2c')]:_0x14be29[_0x71d4('0x26')];if(_0x4d279c[_0x71d4('0x28')]['includeAll']){_0xecc6c3['include']=[{'all':!![]}];}_0xecc6c3=_['merge']({},_0xecc6c3,_0x4d279c[_0x71d4('0x3a')]);return db['FaxQueueReport'][_0x71d4('0x44')](_0xecc6c3)[_0x71d4('0x1d')](handleEntityNotFound(_0x1d7b94,null))['then'](respondWithResult(_0x1d7b94,null))['catch'](handleError(_0x1d7b94,null));};exports['create']=function(_0x3b70e2,_0x34ac35){return db[_0x71d4('0x3b')]['create'](_0x3b70e2['body'],{})[_0x71d4('0x1d')](respondWithResult(_0x34ac35,0xc9))[_0x71d4('0x40')](handleError(_0x34ac35,null));};exports[_0x71d4('0x1c')]=function(_0x28575c,_0x402f81){if(_0x28575c[_0x71d4('0x45')]['id']){delete _0x28575c[_0x71d4('0x45')]['id'];}return db[_0x71d4('0x3b')][_0x71d4('0x44')]({'where':{'id':_0x28575c[_0x71d4('0x41')]['id']}})[_0x71d4('0x1d')](handleEntityNotFound(_0x402f81,null))['then'](saveUpdates(_0x28575c[_0x71d4('0x45')],null))[_0x71d4('0x1d')](respondWithResult(_0x402f81,null))['catch'](handleError(_0x402f81,null));};exports['destroy']=function(_0x402094,_0x4d1325){return db['FaxQueueReport'][_0x71d4('0x44')]({'where':{'id':_0x402094[_0x71d4('0x41')]['id']}})[_0x71d4('0x1d')](handleEntityNotFound(_0x4d1325,null))[_0x71d4('0x1d')](removeEntity(_0x4d1325,null))[_0x71d4('0x40')](handleError(_0x4d1325,null));};exports[_0x71d4('0x46')]=function(_0x32979e,_0x4680bb){return db[_0x71d4('0x3b')][_0x71d4('0x46')]()[_0x71d4('0x1d')](respondWithResult(_0x4680bb,null))[_0x71d4('0x40')](handleError(_0x4680bb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7ff=['uniqueid','lodash','api','moment','bluebird','request-promise','./faxQueueReport.attributes','exports','FaxQueueReport','report_fax_queue'];(function(_0x23e715,_0x3ccd26){var _0x4532f2=function(_0x53b08f){while(--_0x53b08f){_0x23e715['push'](_0x23e715['shift']());}};_0x4532f2(++_0x3ccd26);}(_0xf7ff,0xab));var _0xff7f=function(_0x4e85d8,_0x252ede){_0x4e85d8=_0x4e85d8-0x0;var _0x559344=_0xf7ff[_0x4e85d8];return _0x559344;};'use strict';var _=require(_0xff7f('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xff7f('0x1'));var moment=require(_0xff7f('0x2'));var BPromise=require(_0xff7f('0x3'));var rp=require(_0xff7f('0x4'));var attributes=require(_0xff7f('0x5'));module[_0xff7f('0x6')]=function(_0x5273a1,_0x307264){return _0x5273a1['define'](_0xff7f('0x7'),attributes,{'tableName':_0xff7f('0x8'),'paranoid':![],'indexes':[{'name':_0xff7f('0x9'),'fields':[_0xff7f('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0863=['moment','bluebird','request-promise','./faxQueueReport.attributes','exports','define','FaxQueueReport','uniqueid','lodash','../../config/logger','api'];(function(_0x455afa,_0x235bfc){var _0x46ee43=function(_0x26de4a){while(--_0x26de4a){_0x455afa['push'](_0x455afa['shift']());}};_0x46ee43(++_0x235bfc);}(_0x0863,0x1b5));var _0x3086=function(_0x34a3ad,_0x3dbf6f){_0x34a3ad=_0x34a3ad-0x0;var _0xd24d90=_0x0863[_0x34a3ad];return _0xd24d90;};'use strict';var _=require(_0x3086('0x0'));var util=require('util');var logger=require(_0x3086('0x1'))(_0x3086('0x2'));var moment=require(_0x3086('0x3'));var BPromise=require(_0x3086('0x4'));var rp=require(_0x3086('0x5'));var attributes=require(_0x3086('0x6'));module[_0x3086('0x7')]=function(_0x70407d,_0x4a2de8){return _0x70407d[_0x3086('0x8')](_0x3086('0x9'),attributes,{'tableName':'report_fax_queue','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x3086('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe798=['../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','request','then','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','CreateFaxQueueReport','FaxQueueReport','create','body','options','raw','UpdateFaxQueueReport','update','attributes','limit','util','moment','randomstring'];(function(_0x164eca,_0x555e28){var _0x2ce562=function(_0x148ca6){while(--_0x148ca6){_0x164eca['push'](_0x164eca['shift']());}};_0x2ce562(++_0x555e28);}(_0xe798,0x1ea));var _0x8e79=function(_0xdfb270,_0x35a826){_0xdfb270=_0xdfb270-0x0;var _0x1edc89=_0xe798[_0xdfb270];return _0x1edc89;};'use strict';var _=require('lodash');var util=require(_0x8e79('0x0'));var moment=require(_0x8e79('0x1'));var BPromise=require('bluebird');var rs=require(_0x8e79('0x2'));var fs=require('fs');var db=require(_0x8e79('0x3'))['db'];var utils=require(_0x8e79('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x8e79('0x5'));var jayson=require(_0x8e79('0x6'));var client=jayson['client'][_0x8e79('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4e4094,_0x1d2765,_0x453045){return new BPromise(function(_0x167ddc,_0x21786a){return client[_0x8e79('0x8')](_0x4e4094,_0x453045)[_0x8e79('0x9')](function(_0x245832){logger[_0x8e79('0xa')](_0x8e79('0xb'),_0x1d2765,_0x8e79('0xc'));logger[_0x8e79('0xd')]('FaxQueueReport,\x20%s,\x20%s,\x20%s',_0x1d2765,_0x8e79('0xc'),JSON[_0x8e79('0xe')](_0x245832));if(_0x245832[_0x8e79('0xf')]){if(_0x245832[_0x8e79('0xf')][_0x8e79('0x10')]===0x1f4){logger['error'](_0x8e79('0xb'),_0x1d2765,_0x245832['error'][_0x8e79('0x11')]);return _0x21786a(_0x245832[_0x8e79('0xf')][_0x8e79('0x11')]);}logger[_0x8e79('0xf')]('FaxQueueReport,\x20%s,\x20%s',_0x1d2765,_0x245832[_0x8e79('0xf')][_0x8e79('0x11')]);return _0x167ddc(_0x245832['error'][_0x8e79('0x11')]);}else{logger[_0x8e79('0xa')](_0x8e79('0xb'),_0x1d2765,_0x8e79('0xc'));_0x167ddc(_0x245832['result'][_0x8e79('0x11')]);}})[_0x8e79('0x12')](function(_0x5f1d8c){logger[_0x8e79('0xf')](_0x8e79('0xb'),_0x1d2765,_0x5f1d8c);_0x21786a(_0x5f1d8c);});});}exports[_0x8e79('0x13')]=function(_0x5e421f){var _0x5d8b57=this;return new Promise(function(_0x394cf1,_0x175b7a){return db[_0x8e79('0x14')][_0x8e79('0x15')](_0x5e421f[_0x8e79('0x16')],{'raw':_0x5e421f[_0x8e79('0x17')]?_0x5e421f[_0x8e79('0x17')][_0x8e79('0x18')]===undefined?!![]:![]:!![]})[_0x8e79('0x9')](function(_0x43f6d7){logger[_0x8e79('0xa')](_0x8e79('0x13'),_0x5e421f);logger[_0x8e79('0xd')]('CreateFaxQueueReport',_0x5e421f,JSON[_0x8e79('0xe')](_0x43f6d7));_0x394cf1(_0x43f6d7);})[_0x8e79('0x12')](function(_0x3b2ba3){logger[_0x8e79('0xf')](_0x8e79('0x13'),_0x3b2ba3['message'],_0x5e421f);_0x175b7a(_0x5d8b57[_0x8e79('0xf')](0x1f4,_0x3b2ba3[_0x8e79('0x11')]));});});};exports[_0x8e79('0x19')]=function(_0x3d12fe){var _0x314bc1=this;return new Promise(function(_0xbe7f54,_0x5d6340){return db['FaxQueueReport'][_0x8e79('0x1a')](_0x3d12fe[_0x8e79('0x16')],{'raw':_0x3d12fe[_0x8e79('0x17')]?_0x3d12fe[_0x8e79('0x17')][_0x8e79('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3d12fe[_0x8e79('0x17')]?_0x3d12fe[_0x8e79('0x17')]['where']||null:null,'attributes':_0x3d12fe[_0x8e79('0x17')]?_0x3d12fe[_0x8e79('0x17')][_0x8e79('0x1b')]||null:null,'limit':_0x3d12fe['options']?_0x3d12fe[_0x8e79('0x17')][_0x8e79('0x1c')]||null:null})[_0x8e79('0x9')](function(_0x48fd4c){logger[_0x8e79('0xa')](_0x8e79('0x19'),_0x3d12fe);logger['debug']('UpdateFaxQueueReport',_0x3d12fe,JSON[_0x8e79('0xe')](_0x48fd4c));_0xbe7f54(_0x48fd4c);})[_0x8e79('0x12')](function(_0x5a1d58){logger['error'](_0x8e79('0x19'),_0x5a1d58[_0x8e79('0x11')],_0x3d12fe);_0x5d6340(_0x314bc1[_0x8e79('0xf')](0x1f4,_0x5a1d58[_0x8e79('0x11')]));});});};
\ No newline at end of file
+var _0xbb35=['debug','UpdateFaxQueueReport','FaxQueueReport','update','where','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','FaxQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','FaxQueueReport,\x20%s,\x20%s','message','result','catch','CreateFaxQueueReport','create','body','options','raw'];(function(_0x6ac3fb,_0x46f124){var _0x3d38b1=function(_0xb3e7f4){while(--_0xb3e7f4){_0x6ac3fb['push'](_0x6ac3fb['shift']());}};_0x3d38b1(++_0x46f124);}(_0xbb35,0x1d3));var _0x5bb3=function(_0x27a009,_0x1d435b){_0x27a009=_0x27a009-0x0;var _0x4f0730=_0xbb35[_0x27a009];return _0x4f0730;};'use strict';var _=require('lodash');var util=require(_0x5bb3('0x0'));var moment=require(_0x5bb3('0x1'));var BPromise=require(_0x5bb3('0x2'));var rs=require(_0x5bb3('0x3'));var fs=require('fs');var Redis=require(_0x5bb3('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x5bb3('0x5'));var logger=require(_0x5bb3('0x6'))(_0x5bb3('0x7'));var config=require(_0x5bb3('0x8'));var jayson=require(_0x5bb3('0x9'));var client=jayson[_0x5bb3('0xa')][_0x5bb3('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbd7a90,_0xe7fb91,_0x4f59cb){return new BPromise(function(_0x14986f,_0x11d7df){return client[_0x5bb3('0xc')](_0xbd7a90,_0x4f59cb)[_0x5bb3('0xd')](function(_0x534872){logger[_0x5bb3('0xe')]('FaxQueueReport,\x20%s,\x20%s',_0xe7fb91,_0x5bb3('0xf'));logger['debug'](_0x5bb3('0x10'),_0xe7fb91,_0x5bb3('0xf'),JSON[_0x5bb3('0x11')](_0x534872));if(_0x534872[_0x5bb3('0x12')]){if(_0x534872[_0x5bb3('0x12')]['code']===0x1f4){logger[_0x5bb3('0x12')](_0x5bb3('0x13'),_0xe7fb91,_0x534872[_0x5bb3('0x12')]['message']);return _0x11d7df(_0x534872[_0x5bb3('0x12')][_0x5bb3('0x14')]);}logger[_0x5bb3('0x12')](_0x5bb3('0x13'),_0xe7fb91,_0x534872[_0x5bb3('0x12')][_0x5bb3('0x14')]);return _0x14986f(_0x534872[_0x5bb3('0x12')][_0x5bb3('0x14')]);}else{logger['info']('FaxQueueReport,\x20%s,\x20%s',_0xe7fb91,'request\x20sent');_0x14986f(_0x534872[_0x5bb3('0x15')][_0x5bb3('0x14')]);}})[_0x5bb3('0x16')](function(_0x1092df){logger[_0x5bb3('0x12')](_0x5bb3('0x13'),_0xe7fb91,_0x1092df);_0x11d7df(_0x1092df);});});}exports[_0x5bb3('0x17')]=function(_0xbbaf0){var _0x107dbb=this;return new Promise(function(_0xab7e49,_0x563bce){return db['FaxQueueReport'][_0x5bb3('0x18')](_0xbbaf0[_0x5bb3('0x19')],{'raw':_0xbbaf0[_0x5bb3('0x1a')]?_0xbbaf0[_0x5bb3('0x1a')][_0x5bb3('0x1b')]===undefined?!![]:![]:!![]})[_0x5bb3('0xd')](function(_0x2630b4){logger['info'](_0x5bb3('0x17'),_0xbbaf0);logger[_0x5bb3('0x1c')](_0x5bb3('0x17'),_0xbbaf0,JSON['stringify'](_0x2630b4));_0xab7e49(_0x2630b4);})[_0x5bb3('0x16')](function(_0x4e2770){logger[_0x5bb3('0x12')]('CreateFaxQueueReport',_0x4e2770[_0x5bb3('0x14')],_0xbbaf0);_0x563bce(_0x107dbb[_0x5bb3('0x12')](0x1f4,_0x4e2770[_0x5bb3('0x14')]));});});};exports[_0x5bb3('0x1d')]=function(_0x2f9ca3){var _0x904ca3=this;return new Promise(function(_0x2fa05b,_0x4977df){return db[_0x5bb3('0x1e')][_0x5bb3('0x1f')](_0x2f9ca3['body'],{'raw':_0x2f9ca3[_0x5bb3('0x1a')]?_0x2f9ca3[_0x5bb3('0x1a')][_0x5bb3('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2f9ca3[_0x5bb3('0x1a')]?_0x2f9ca3[_0x5bb3('0x1a')][_0x5bb3('0x20')]||null:null,'attributes':_0x2f9ca3[_0x5bb3('0x1a')]?_0x2f9ca3[_0x5bb3('0x1a')]['attributes']||null:null,'limit':_0x2f9ca3['options']?_0x2f9ca3[_0x5bb3('0x1a')]['limit']||null:null})[_0x5bb3('0xd')](function(_0x4ce15a){logger[_0x5bb3('0xe')](_0x5bb3('0x1d'),_0x2f9ca3);logger[_0x5bb3('0x1c')]('UpdateFaxQueueReport',_0x2f9ca3,JSON[_0x5bb3('0x11')](_0x4ce15a));_0x2fa05b(_0x4ce15a);})[_0x5bb3('0x16')](function(_0x461109){logger[_0x5bb3('0x12')]('UpdateFaxQueueReport',_0x461109['message'],_0x2f9ca3);_0x4977df(_0x904ca3[_0x5bb3('0x12')](0x1f4,_0x461109['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x050e=['destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./faxQueueReport.controller','isAuthenticated','index','get','describe','/:id','create','put','delete'];(function(_0x1303b6,_0x58b094){var _0x8347fa=function(_0x138058){while(--_0x138058){_0x1303b6['push'](_0x1303b6['shift']());}};_0x8347fa(++_0x58b094);}(_0x050e,0x9a));var _0xe050=function(_0x3b0999,_0x3c9835){_0x3b0999=_0x3b0999-0x0;var _0x585226=_0x050e[_0x3b0999];return _0x585226;};'use strict';var multer=require(_0xe050('0x0'));var util=require(_0xe050('0x1'));var path=require(_0xe050('0x2'));var timeout=require(_0xe050('0x3'));var express=require(_0xe050('0x4'));var router=express[_0xe050('0x5')]();var auth=require(_0xe050('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xe050('0x7'));var controller=require(_0xe050('0x8'));router['get']('/',auth[_0xe050('0x9')](),controller[_0xe050('0xa')]);router[_0xe050('0xb')]('/describe',auth[_0xe050('0x9')](),controller[_0xe050('0xc')]);router['get'](_0xe050('0xd'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth[_0xe050('0x9')](),controller[_0xe050('0xe')]);router[_0xe050('0xf')](_0xe050('0xd'),auth[_0xe050('0x9')](),controller['update']);router[_0xe050('0x10')](_0xe050('0xd'),auth['isAuthenticated'](),controller[_0xe050('0x11')]);module[_0xe050('0x12')]=router;
\ No newline at end of file
+var _0x42b6=['update','delete','destroy','exports','multer','util','path','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','create','put'];(function(_0x85e77e,_0x49b86c){var _0x4d0599=function(_0x4a74a6){while(--_0x4a74a6){_0x85e77e['push'](_0x85e77e['shift']());}};_0x4d0599(++_0x49b86c);}(_0x42b6,0x1e4));var _0x642b=function(_0x3d1e9e,_0x3dcf2b){_0x3d1e9e=_0x3d1e9e-0x0;var _0x4ec227=_0x42b6[_0x3d1e9e];return _0x4ec227;};'use strict';var multer=require(_0x642b('0x0'));var util=require(_0x642b('0x1'));var path=require(_0x642b('0x2'));var timeout=require('connect-timeout');var express=require(_0x642b('0x3'));var router=express['Router']();var auth=require(_0x642b('0x4'));var interaction=require(_0x642b('0x5'));var config=require(_0x642b('0x6'));var controller=require('./faxQueueReport.controller');router[_0x642b('0x7')]('/',auth[_0x642b('0x8')](),controller[_0x642b('0x9')]);router[_0x642b('0x7')](_0x642b('0xa'),auth[_0x642b('0x8')](),controller[_0x642b('0xb')]);router[_0x642b('0x7')](_0x642b('0xc'),auth['isAuthenticated'](),controller[_0x642b('0xd')]);router['post']('/',auth[_0x642b('0x8')](),controller[_0x642b('0xe')]);router[_0x642b('0xf')](_0x642b('0xc'),auth[_0x642b('0x8')](),controller[_0x642b('0x10')]);router[_0x642b('0x11')](_0x642b('0xc'),auth[_0x642b('0x8')](),controller[_0x642b('0x12')]);module[_0x642b('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ce3=['queue','DATE','NOW','moment','sequelize','exports','STRING','ENUM','account','agent'];(function(_0xa66d8c,_0xe5aade){var _0x4caf28=function(_0x466662){while(--_0x466662){_0xa66d8c['push'](_0xa66d8c['shift']());}};_0x4caf28(++_0xe5aade);}(_0x2ce3,0x111));var _0x32ce=function(_0x517dbc,_0x1f2b17){_0x517dbc=_0x517dbc-0x0;var _0x391901=_0x2ce3[_0x517dbc];return _0x391901;};'use strict';var moment=require(_0x32ce('0x0'));var Sequelize=require(_0x32ce('0x1'));module[_0x32ce('0x2')]={'uniqueid':{'type':Sequelize[_0x32ce('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0x32ce('0x4')](_0x32ce('0x5'),_0x32ce('0x6'),_0x32ce('0x7')),'allowNull':![],'defaultValue':_0x32ce('0x7')},'transferredAt':{'type':Sequelize[_0x32ce('0x8')],'allowNull':![],'defaultValue':Sequelize[_0x32ce('0x9')]}};
\ No newline at end of file
+var _0x3f50=['NOW','moment','sequelize','exports','ENUM','account','queue'];(function(_0x25b454,_0xbf0be9){var _0x44d0b3=function(_0x2e9e64){while(--_0x2e9e64){_0x25b454['push'](_0x25b454['shift']());}};_0x44d0b3(++_0xbf0be9);}(_0x3f50,0x16d));var _0x03f5=function(_0x368d7e,_0x2bdcb1){_0x368d7e=_0x368d7e-0x0;var _0x3f5c98=_0x3f50[_0x368d7e];return _0x3f5c98;};'use strict';var moment=require(_0x03f5('0x0'));var Sequelize=require(_0x03f5('0x1'));module[_0x03f5('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x03f5('0x3')](_0x03f5('0x4'),'agent',_0x03f5('0x5')),'allowNull':![],'defaultValue':_0x03f5('0x5')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x03f5('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc91=['util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','error','name','send','index','FaxTransferReport','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filters','pick','add','day','merge','where','filter','map','options','count','includeAll','include','findAll','catch','show','params','length','find','create','body','describe','html-pdf','eml-format','moment','bluebird','mustache'];(function(_0x5e15cf,_0x5bb0e6){var _0x25303a=function(_0x3bbbfb){while(--_0x3bbbfb){_0x5e15cf['push'](_0x5e15cf['shift']());}};_0x25303a(++_0x5bb0e6);}(_0xdc91,0x8b));var _0x1dc9=function(_0xcf70a7,_0xa971ff){_0xcf70a7=_0xcf70a7-0x0;var _0x41b2e0=_0xdc91[_0xcf70a7];return _0x41b2e0;};'use strict';var pdf=require(_0x1dc9('0x0'));var emlformat=require(_0x1dc9('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1dc9('0x2'));var BPromise=require(_0x1dc9('0x3'));var Mustache=require(_0x1dc9('0x4'));var util=require(_0x1dc9('0x5'));var path=require(_0x1dc9('0x6'));var sox=require(_0x1dc9('0x7'));var csv=require(_0x1dc9('0x8'));var ejs=require(_0x1dc9('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x1dc9('0xa'));var crypto=require(_0x1dc9('0xb'));var jsforce=require(_0x1dc9('0xc'));var deskjs=require(_0x1dc9('0xd'));var toCsv=require(_0x1dc9('0x8'));var querystring=require(_0x1dc9('0xe'));var Papa=require(_0x1dc9('0xf'));var qs=require(_0x1dc9('0x10'));var logger=require(_0x1dc9('0x11'))(_0x1dc9('0x12'));var utils=require('../../config/utils');var config=require(_0x1dc9('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x29e76a,_0x5b29c5){_0x5b29c5=_0x5b29c5||0xcc;return function(_0x350381){if(_0x350381){return _0x29e76a[_0x1dc9('0x14')](_0x5b29c5);}return _0x29e76a[_0x1dc9('0x15')](_0x5b29c5)[_0x1dc9('0x16')]();};}function respondWithResult(_0x5ce07c,_0x220c79){_0x220c79=_0x220c79||0xc8;return function(_0x432cee){if(_0x432cee){return _0x5ce07c['status'](_0x220c79)[_0x1dc9('0x17')](_0x432cee);}};}function respondWithFilteredResult(_0x39919e,_0x4fb23f){return function(_0x5daaec){if(_0x5daaec){var _0x8257d3=_0x5daaec['count'],_0x197488=_0x4fb23f['offset'],_0x38ee59=_0x4fb23f[_0x1dc9('0x18')]+_0x4fb23f[_0x1dc9('0x19')],_0x2c94b1;if(_0x38ee59>=_0x8257d3){_0x38ee59=_0x8257d3;_0x2c94b1=0xc8;}else{_0x2c94b1=0xce;}_0x39919e['status'](_0x2c94b1);return _0x39919e[_0x1dc9('0x1a')](_0x1dc9('0x1b'),_0x197488+'-'+_0x38ee59+'/'+_0x8257d3)[_0x1dc9('0x17')](_0x5daaec);}return null;};}function patchUpdates(_0x197bcd){return function(_0x335590){try{jsonpatch[_0x1dc9('0x1c')](_0x335590,_0x197bcd,!![]);}catch(_0x2442d0){return BPromise[_0x1dc9('0x1d')](_0x2442d0);}return _0x335590[_0x1dc9('0x1e')]();};}function saveUpdates(_0x3bcb6f,_0xcd7328){return function(_0x2a1c9b){if(_0x2a1c9b){return _0x2a1c9b[_0x1dc9('0x1f')](_0x3bcb6f)['then'](function(_0x49bd5b){return _0x49bd5b;});}return null;};}function removeEntity(_0x37784e,_0x4d3818){return function(_0x4c25db){if(_0x4c25db){return _0x4c25db['destroy']()[_0x1dc9('0x20')](function(){_0x37784e[_0x1dc9('0x15')](0xcc)[_0x1dc9('0x16')]();});}};}function handleEntityNotFound(_0x1b6829,_0xe1f7c6){return function(_0x3eafa1){if(!_0x3eafa1){_0x1b6829[_0x1dc9('0x14')](0x194);}return _0x3eafa1;};}function handleError(_0x48dd9c,_0x240365){_0x240365=_0x240365||0x1f4;return function(_0x2a4740){logger[_0x1dc9('0x21')](_0x2a4740['stack']);if(_0x2a4740[_0x1dc9('0x22')]){delete _0x2a4740[_0x1dc9('0x22')];}_0x48dd9c[_0x1dc9('0x15')](_0x240365)[_0x1dc9('0x23')](_0x2a4740);};}exports[_0x1dc9('0x24')]=function(_0x476111,_0x179498){var _0x152b48={},_0x3e70c3={},_0x59f588={'count':0x0,'rows':[]};var _0x5635e5=db[_0x1dc9('0x25')][_0x1dc9('0x26')];_0x3e70c3[_0x1dc9('0x27')]=_[_0x1dc9('0x28')](_0x5635e5);var _0x17a2ec={'dateStart':_0x476111[_0x1dc9('0x29')][_0x1dc9('0x2a')],'dateEnd':_0x476111[_0x1dc9('0x29')][_0x1dc9('0x2b')]};delete _0x476111['query'][_0x1dc9('0x2a')];delete _0x476111[_0x1dc9('0x29')][_0x1dc9('0x2b')];_0x3e70c3[_0x1dc9('0x29')]=_[_0x1dc9('0x28')](_0x476111[_0x1dc9('0x29')]);_0x3e70c3['filters']=_['intersection'](_0x3e70c3[_0x1dc9('0x27')],_0x3e70c3[_0x1dc9('0x29')]);_0x152b48['attributes']=_[_0x1dc9('0x2c')](_0x3e70c3[_0x1dc9('0x27')],qs[_0x1dc9('0x2d')](_0x476111['query'][_0x1dc9('0x2d')]));_0x152b48['attributes']=_0x152b48[_0x1dc9('0x2e')]['length']?_0x152b48['attributes']:_0x3e70c3[_0x1dc9('0x27')];if(!_0x476111[_0x1dc9('0x29')][_0x1dc9('0x2f')](_0x1dc9('0x30'))){_0x152b48['limit']=qs[_0x1dc9('0x19')](_0x476111['query'][_0x1dc9('0x19')]);_0x152b48[_0x1dc9('0x18')]=qs[_0x1dc9('0x18')](_0x476111[_0x1dc9('0x29')][_0x1dc9('0x18')]);}_0x152b48[_0x1dc9('0x31')]=qs[_0x1dc9('0x32')](_0x476111[_0x1dc9('0x29')]['sort']);_0x152b48['where']=qs[_0x1dc9('0x33')](_[_0x1dc9('0x34')](_0x476111[_0x1dc9('0x29')],_0x3e70c3[_0x1dc9('0x33')]));if(_0x17a2ec['dateStart']){if(_0x17a2ec[_0x1dc9('0x2b')]){_0x17a2ec['dateEnd']=moment(_0x17a2ec[_0x1dc9('0x2b')])[_0x1dc9('0x35')](0x1,_0x1dc9('0x36'));}else{_0x17a2ec[_0x1dc9('0x2b')]=moment(_0x17a2ec[_0x1dc9('0x2a')])[_0x1dc9('0x35')](0x1,'day');}_[_0x1dc9('0x37')](_0x152b48[_0x1dc9('0x38')],{'createdAt':{'$gte':_0x17a2ec[_0x1dc9('0x2a')],'$lte':_0x17a2ec[_0x1dc9('0x2b')]}});}if(_0x476111[_0x1dc9('0x29')][_0x1dc9('0x39')]){_0x152b48['where']=_[_0x1dc9('0x37')](_0x152b48[_0x1dc9('0x38')],{'$or':_[_0x1dc9('0x3a')](_0x152b48[_0x1dc9('0x2e')],function(_0x5af473){var _0xce1e26={};_0xce1e26[_0x5af473]={'$like':'%'+_0x476111[_0x1dc9('0x29')][_0x1dc9('0x39')]+'%'};return _0xce1e26;})});}_0x152b48=_[_0x1dc9('0x37')]({},_0x152b48,_0x476111[_0x1dc9('0x3b')]);var _0x39389c={'where':_0x152b48[_0x1dc9('0x38')]};return db[_0x1dc9('0x25')][_0x1dc9('0x3c')](_0x39389c)[_0x1dc9('0x20')](function(_0x3a4b7e){_0x59f588[_0x1dc9('0x3c')]=_0x3a4b7e;if(_0x476111[_0x1dc9('0x29')][_0x1dc9('0x3d')]){_0x152b48[_0x1dc9('0x3e')]=[{'all':!![]}];}return db[_0x1dc9('0x25')][_0x1dc9('0x3f')](_0x152b48);})[_0x1dc9('0x20')](function(_0xd21d1a){_0x59f588['rows']=_0xd21d1a;return _0x59f588;})[_0x1dc9('0x20')](respondWithFilteredResult(_0x179498,_0x152b48))[_0x1dc9('0x40')](handleError(_0x179498,null));};exports[_0x1dc9('0x41')]=function(_0x1376fd,_0x5c6b57){var _0x44ac64={'raw':!![],'where':{'id':_0x1376fd[_0x1dc9('0x42')]['id']}},_0x123cf7={};_0x123cf7[_0x1dc9('0x27')]=_[_0x1dc9('0x28')](db[_0x1dc9('0x25')][_0x1dc9('0x26')]);_0x123cf7[_0x1dc9('0x29')]=_['keys'](_0x1376fd['query']);_0x123cf7[_0x1dc9('0x33')]=_['intersection'](_0x123cf7[_0x1dc9('0x27')],_0x123cf7[_0x1dc9('0x29')]);_0x44ac64['attributes']=_[_0x1dc9('0x2c')](_0x123cf7[_0x1dc9('0x27')],qs[_0x1dc9('0x2d')](_0x1376fd['query'][_0x1dc9('0x2d')]));_0x44ac64[_0x1dc9('0x2e')]=_0x44ac64[_0x1dc9('0x2e')][_0x1dc9('0x43')]?_0x44ac64[_0x1dc9('0x2e')]:_0x123cf7[_0x1dc9('0x27')];if(_0x1376fd[_0x1dc9('0x29')][_0x1dc9('0x3d')]){_0x44ac64[_0x1dc9('0x3e')]=[{'all':!![]}];}_0x44ac64=_[_0x1dc9('0x37')]({},_0x44ac64,_0x1376fd['options']);return db[_0x1dc9('0x25')][_0x1dc9('0x44')](_0x44ac64)[_0x1dc9('0x20')](handleEntityNotFound(_0x5c6b57,null))['then'](respondWithResult(_0x5c6b57,null))[_0x1dc9('0x40')](handleError(_0x5c6b57,null));};exports[_0x1dc9('0x45')]=function(_0x44bed8,_0x79312b){return db[_0x1dc9('0x25')][_0x1dc9('0x45')](_0x44bed8[_0x1dc9('0x46')],{})['then'](respondWithResult(_0x79312b,0xc9))[_0x1dc9('0x40')](handleError(_0x79312b,null));};exports[_0x1dc9('0x1f')]=function(_0x2ba827,_0x50d923){if(_0x2ba827[_0x1dc9('0x46')]['id']){delete _0x2ba827['body']['id'];}return db[_0x1dc9('0x25')]['find']({'where':{'id':_0x2ba827['params']['id']}})[_0x1dc9('0x20')](handleEntityNotFound(_0x50d923,null))[_0x1dc9('0x20')](saveUpdates(_0x2ba827[_0x1dc9('0x46')],null))[_0x1dc9('0x20')](respondWithResult(_0x50d923,null))[_0x1dc9('0x40')](handleError(_0x50d923,null));};exports['destroy']=function(_0x1b7205,_0x188cf9){return db[_0x1dc9('0x25')][_0x1dc9('0x44')]({'where':{'id':_0x1b7205[_0x1dc9('0x42')]['id']}})['then'](handleEntityNotFound(_0x188cf9,null))['then'](removeEntity(_0x188cf9,null))['catch'](handleError(_0x188cf9,null));};exports[_0x1dc9('0x47')]=function(_0x4bffce,_0x1a0efe){return db[_0x1dc9('0x25')][_0x1dc9('0x47')]()[_0x1dc9('0x20')](respondWithResult(_0x1a0efe,null))[_0x1dc9('0x40')](handleError(_0x1a0efe,null));};
\ No newline at end of file
+var _0x632b=['length','hasOwnProperty','nolimit','limit','sort','day','add','merge','where','filter','map','FaxTransferReport','count','include','findAll','catch','show','params','includeAll','options','create','body','find','destroy','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','set','apply','save','update','then','end','sendStatus','error','stack','name','index','rawAttributes','model','keys','dateStart','query','dateEnd','filters','intersection','attributes','fields'];(function(_0x429737,_0x31316d){var _0x22e8a4=function(_0x27551b){while(--_0x27551b){_0x429737['push'](_0x429737['shift']());}};_0x22e8a4(++_0x31316d);}(_0x632b,0x139));var _0xb632=function(_0x5922c1,_0x3a9c44){_0x5922c1=_0x5922c1-0x0;var _0x17bd99=_0x632b[_0x5922c1];return _0x17bd99;};'use strict';var pdf=require(_0xb632('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xb632('0x1'));var zipdir=require(_0xb632('0x2'));var jsonpatch=require(_0xb632('0x3'));var rp=require(_0xb632('0x4'));var moment=require(_0xb632('0x5'));var BPromise=require(_0xb632('0x6'));var Mustache=require(_0xb632('0x7'));var util=require(_0xb632('0x8'));var path=require(_0xb632('0x9'));var sox=require(_0xb632('0xa'));var csv=require(_0xb632('0xb'));var ejs=require(_0xb632('0xc'));var fs=require('fs');var _=require(_0xb632('0xd'));var squel=require('squel');var crypto=require(_0xb632('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb632('0xb'));var querystring=require(_0xb632('0xf'));var Papa=require(_0xb632('0x10'));var Redis=require(_0xb632('0x11'));var qs=require(_0xb632('0x12'));var logger=require('../../config/logger')(_0xb632('0x13'));var utils=require(_0xb632('0x14'));var config=require(_0xb632('0x15'));var db=require(_0xb632('0x16'))['db'];function respondWithStatusCode(_0x3f7b38,_0x1a04ec){_0x1a04ec=_0x1a04ec||0xcc;return function(_0x4ce72d){if(_0x4ce72d){return _0x3f7b38['sendStatus'](_0x1a04ec);}return _0x3f7b38[_0xb632('0x17')](_0x1a04ec)['end']();};}function respondWithResult(_0x55bba6,_0x3b0e27){_0x3b0e27=_0x3b0e27||0xc8;return function(_0x3a68b4){if(_0x3a68b4){return _0x55bba6[_0xb632('0x17')](_0x3b0e27)[_0xb632('0x18')](_0x3a68b4);}};}function respondWithFilteredResult(_0x436d8a,_0x422c90){return function(_0x44506a){if(_0x44506a){var _0x5479db=_0x44506a['count'],_0x554b98=_0x422c90[_0xb632('0x19')],_0x3a3e4a=_0x422c90[_0xb632('0x19')]+_0x422c90['limit'],_0x2d432c;if(_0x3a3e4a>=_0x5479db){_0x3a3e4a=_0x5479db;_0x2d432c=0xc8;}else{_0x2d432c=0xce;}_0x436d8a[_0xb632('0x17')](_0x2d432c);return _0x436d8a[_0xb632('0x1a')]('Content-Range',_0x554b98+'-'+_0x3a3e4a+'/'+_0x5479db)[_0xb632('0x18')](_0x44506a);}return null;};}function patchUpdates(_0x12c493){return function(_0x5a847f){try{jsonpatch[_0xb632('0x1b')](_0x5a847f,_0x12c493,!![]);}catch(_0x5e47ed){return BPromise['reject'](_0x5e47ed);}return _0x5a847f[_0xb632('0x1c')]();};}function saveUpdates(_0xd21ef8,_0x34df8d){return function(_0x16f252){if(_0x16f252){return _0x16f252[_0xb632('0x1d')](_0xd21ef8)[_0xb632('0x1e')](function(_0x44e542){return _0x44e542;});}return null;};}function removeEntity(_0x5264d7,_0x1c96f5){return function(_0x1833bd){if(_0x1833bd){return _0x1833bd['destroy']()[_0xb632('0x1e')](function(){_0x5264d7['status'](0xcc)[_0xb632('0x1f')]();});}};}function handleEntityNotFound(_0x2c2f09,_0x52f15a){return function(_0x2d9b1b){if(!_0x2d9b1b){_0x2c2f09[_0xb632('0x20')](0x194);}return _0x2d9b1b;};}function handleError(_0x4b0cd0,_0x205c18){_0x205c18=_0x205c18||0x1f4;return function(_0x3f358f){logger[_0xb632('0x21')](_0x3f358f[_0xb632('0x22')]);if(_0x3f358f[_0xb632('0x23')]){delete _0x3f358f[_0xb632('0x23')];}_0x4b0cd0[_0xb632('0x17')](_0x205c18)['send'](_0x3f358f);};}exports[_0xb632('0x24')]=function(_0x454039,_0x16174d){var _0x5466a3={},_0x467e1c={},_0x3d1c93={'count':0x0,'rows':[]};var _0x3fa9c2=db['FaxTransferReport'][_0xb632('0x25')];_0x467e1c[_0xb632('0x26')]=_[_0xb632('0x27')](_0x3fa9c2);var _0x286779={'dateStart':_0x454039['query'][_0xb632('0x28')],'dateEnd':_0x454039[_0xb632('0x29')][_0xb632('0x2a')]};delete _0x454039[_0xb632('0x29')][_0xb632('0x28')];delete _0x454039[_0xb632('0x29')][_0xb632('0x2a')];_0x467e1c[_0xb632('0x29')]=_[_0xb632('0x27')](_0x454039[_0xb632('0x29')]);_0x467e1c[_0xb632('0x2b')]=_[_0xb632('0x2c')](_0x467e1c[_0xb632('0x26')],_0x467e1c['query']);_0x5466a3[_0xb632('0x2d')]=_[_0xb632('0x2c')](_0x467e1c['model'],qs[_0xb632('0x2e')](_0x454039[_0xb632('0x29')][_0xb632('0x2e')]));_0x5466a3[_0xb632('0x2d')]=_0x5466a3['attributes'][_0xb632('0x2f')]?_0x5466a3[_0xb632('0x2d')]:_0x467e1c[_0xb632('0x26')];if(!_0x454039[_0xb632('0x29')][_0xb632('0x30')](_0xb632('0x31'))){_0x5466a3[_0xb632('0x32')]=qs[_0xb632('0x32')](_0x454039[_0xb632('0x29')][_0xb632('0x32')]);_0x5466a3[_0xb632('0x19')]=qs[_0xb632('0x19')](_0x454039[_0xb632('0x29')][_0xb632('0x19')]);}_0x5466a3['order']=qs[_0xb632('0x33')](_0x454039[_0xb632('0x29')]['sort']);_0x5466a3['where']=qs[_0xb632('0x2b')](_['pick'](_0x454039[_0xb632('0x29')],_0x467e1c[_0xb632('0x2b')]));if(_0x286779[_0xb632('0x28')]){if(_0x286779[_0xb632('0x2a')]){_0x286779[_0xb632('0x2a')]=moment(_0x286779[_0xb632('0x2a')])['add'](0x1,_0xb632('0x34'));}else{_0x286779[_0xb632('0x2a')]=moment(_0x286779['dateStart'])[_0xb632('0x35')](0x1,_0xb632('0x34'));}_[_0xb632('0x36')](_0x5466a3[_0xb632('0x37')],{'createdAt':{'$gte':_0x286779[_0xb632('0x28')],'$lte':_0x286779[_0xb632('0x2a')]}});}if(_0x454039['query'][_0xb632('0x38')]){_0x5466a3[_0xb632('0x37')]=_[_0xb632('0x36')](_0x5466a3[_0xb632('0x37')],{'$or':_[_0xb632('0x39')](_0x5466a3[_0xb632('0x2d')],function(_0x119c7a){var _0x5628ea={};_0x5628ea[_0x119c7a]={'$like':'%'+_0x454039[_0xb632('0x29')]['filter']+'%'};return _0x5628ea;})});}_0x5466a3=_[_0xb632('0x36')]({},_0x5466a3,_0x454039['options']);var _0x843fab={'where':_0x5466a3['where']};return db[_0xb632('0x3a')][_0xb632('0x3b')](_0x843fab)[_0xb632('0x1e')](function(_0x5da9fe){_0x3d1c93['count']=_0x5da9fe;if(_0x454039[_0xb632('0x29')]['includeAll']){_0x5466a3[_0xb632('0x3c')]=[{'all':!![]}];}return db[_0xb632('0x3a')][_0xb632('0x3d')](_0x5466a3);})[_0xb632('0x1e')](function(_0x38eb79){_0x3d1c93['rows']=_0x38eb79;return _0x3d1c93;})['then'](respondWithFilteredResult(_0x16174d,_0x5466a3))[_0xb632('0x3e')](handleError(_0x16174d,null));};exports[_0xb632('0x3f')]=function(_0x3bc9da,_0x1a346a){var _0x31f207={'raw':!![],'where':{'id':_0x3bc9da[_0xb632('0x40')]['id']}},_0x15cd1e={};_0x15cd1e[_0xb632('0x26')]=_[_0xb632('0x27')](db[_0xb632('0x3a')][_0xb632('0x25')]);_0x15cd1e[_0xb632('0x29')]=_[_0xb632('0x27')](_0x3bc9da[_0xb632('0x29')]);_0x15cd1e[_0xb632('0x2b')]=_[_0xb632('0x2c')](_0x15cd1e['model'],_0x15cd1e[_0xb632('0x29')]);_0x31f207[_0xb632('0x2d')]=_['intersection'](_0x15cd1e[_0xb632('0x26')],qs[_0xb632('0x2e')](_0x3bc9da['query'][_0xb632('0x2e')]));_0x31f207[_0xb632('0x2d')]=_0x31f207['attributes'][_0xb632('0x2f')]?_0x31f207[_0xb632('0x2d')]:_0x15cd1e[_0xb632('0x26')];if(_0x3bc9da[_0xb632('0x29')][_0xb632('0x41')]){_0x31f207[_0xb632('0x3c')]=[{'all':!![]}];}_0x31f207=_[_0xb632('0x36')]({},_0x31f207,_0x3bc9da[_0xb632('0x42')]);return db[_0xb632('0x3a')]['find'](_0x31f207)[_0xb632('0x1e')](handleEntityNotFound(_0x1a346a,null))[_0xb632('0x1e')](respondWithResult(_0x1a346a,null))[_0xb632('0x3e')](handleError(_0x1a346a,null));};exports[_0xb632('0x43')]=function(_0x18c5e5,_0xc21677){return db[_0xb632('0x3a')][_0xb632('0x43')](_0x18c5e5['body'],{})['then'](respondWithResult(_0xc21677,0xc9))[_0xb632('0x3e')](handleError(_0xc21677,null));};exports[_0xb632('0x1d')]=function(_0x563b2e,_0x899c2){if(_0x563b2e[_0xb632('0x44')]['id']){delete _0x563b2e[_0xb632('0x44')]['id'];}return db[_0xb632('0x3a')][_0xb632('0x45')]({'where':{'id':_0x563b2e[_0xb632('0x40')]['id']}})[_0xb632('0x1e')](handleEntityNotFound(_0x899c2,null))[_0xb632('0x1e')](saveUpdates(_0x563b2e[_0xb632('0x44')],null))[_0xb632('0x1e')](respondWithResult(_0x899c2,null))['catch'](handleError(_0x899c2,null));};exports[_0xb632('0x46')]=function(_0x1c9231,_0x32c94a){return db[_0xb632('0x3a')][_0xb632('0x45')]({'where':{'id':_0x1c9231['params']['id']}})[_0xb632('0x1e')](handleEntityNotFound(_0x32c94a,null))['then'](removeEntity(_0x32c94a,null))[_0xb632('0x3e')](handleError(_0x32c94a,null));};exports[_0xb632('0x47')]=function(_0x15c377,_0x792704){return db[_0xb632('0x3a')][_0xb632('0x47')]()['then'](respondWithResult(_0x792704,null))['catch'](handleError(_0x792704,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x612f=['bluebird','request-promise','./faxTransferReport.attributes','define','FaxTransferReport','report_fax_transfer','uniqueid','util','../../config/logger','api','moment'];(function(_0x2493a8,_0x5a240d){var _0x2b06c9=function(_0x198d3c){while(--_0x198d3c){_0x2493a8['push'](_0x2493a8['shift']());}};_0x2b06c9(++_0x5a240d);}(_0x612f,0x1eb));var _0xf612=function(_0x53946b,_0x42c3dd){_0x53946b=_0x53946b-0x0;var _0x41ef3b=_0x612f[_0x53946b];return _0x41ef3b;};'use strict';var _=require('lodash');var util=require(_0xf612('0x0'));var logger=require(_0xf612('0x1'))(_0xf612('0x2'));var moment=require(_0xf612('0x3'));var BPromise=require(_0xf612('0x4'));var rp=require(_0xf612('0x5'));var attributes=require(_0xf612('0x6'));module['exports']=function(_0x29313c,_0x69364d){return _0x29313c[_0xf612('0x7')](_0xf612('0x8'),attributes,{'tableName':_0xf612('0x9'),'paranoid':![],'indexes':[{'name':_0xf612('0xa'),'fields':[_0xf612('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xbca3=['FaxTransferReport','report_fax_transfer','uniqueid','lodash','util','moment','bluebird','request-promise','./faxTransferReport.attributes','exports'];(function(_0x3b19f9,_0x5e4b55){var _0x589293=function(_0xb83855){while(--_0xb83855){_0x3b19f9['push'](_0x3b19f9['shift']());}};_0x589293(++_0x5e4b55);}(_0xbca3,0xc1));var _0x3bca=function(_0x1cafc9,_0x245459){_0x1cafc9=_0x1cafc9-0x0;var _0xed69bc=_0xbca3[_0x1cafc9];return _0xed69bc;};'use strict';var _=require(_0x3bca('0x0'));var util=require(_0x3bca('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x3bca('0x2'));var BPromise=require(_0x3bca('0x3'));var rp=require(_0x3bca('0x4'));var attributes=require(_0x3bca('0x5'));module[_0x3bca('0x6')]=function(_0x2a5ab2,_0x34f847){return _0x2a5ab2['define'](_0x3bca('0x7'),attributes,{'tableName':_0x3bca('0x8'),'paranoid':![],'indexes':[{'name':_0x3bca('0x9'),'fields':[_0x3bca('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x073b=['error','message','request\x20sent','result','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','FaxTransferReport,\x20%s,\x20%s','debug','stringify'];(function(_0x1495d5,_0x581401){var _0x320de6=function(_0x3c4618){while(--_0x3c4618){_0x1495d5['push'](_0x1495d5['shift']());}};_0x320de6(++_0x581401);}(_0x073b,0xe0));var _0xb073=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x073b[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xb073('0x0'));var util=require('util');var moment=require(_0xb073('0x1'));var BPromise=require(_0xb073('0x2'));var rs=require(_0xb073('0x3'));var fs=require('fs');var db=require(_0xb073('0x4'))['db'];var utils=require(_0xb073('0x5'));var logger=require('../../config/logger')(_0xb073('0x6'));var config=require(_0xb073('0x7'));var jayson=require(_0xb073('0x8'));var client=jayson[_0xb073('0x9')][_0xb073('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5b6aa4,_0xd34178,_0x234160){return new BPromise(function(_0x359c59,_0x54e3e2){return client[_0xb073('0xb')](_0x5b6aa4,_0x234160)['then'](function(_0x477353){logger[_0xb073('0xc')](_0xb073('0xd'),_0xd34178,'request\x20sent');logger[_0xb073('0xe')]('FaxTransferReport,\x20%s,\x20%s,\x20%s',_0xd34178,'request\x20sent',JSON[_0xb073('0xf')](_0x477353));if(_0x477353[_0xb073('0x10')]){if(_0x477353[_0xb073('0x10')]['code']===0x1f4){logger[_0xb073('0x10')](_0xb073('0xd'),_0xd34178,_0x477353[_0xb073('0x10')]['message']);return _0x54e3e2(_0x477353[_0xb073('0x10')][_0xb073('0x11')]);}logger['error'](_0xb073('0xd'),_0xd34178,_0x477353[_0xb073('0x10')][_0xb073('0x11')]);return _0x359c59(_0x477353[_0xb073('0x10')][_0xb073('0x11')]);}else{logger['info'](_0xb073('0xd'),_0xd34178,_0xb073('0x12'));_0x359c59(_0x477353[_0xb073('0x13')][_0xb073('0x11')]);}})['catch'](function(_0x4fafe5){logger[_0xb073('0x10')](_0xb073('0xd'),_0xd34178,_0x4fafe5);_0x54e3e2(_0x4fafe5);});});}
\ No newline at end of file
+var _0xabaa=['request\x20sent','debug','error','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','FaxTransferReport,\x20%s,\x20%s'];(function(_0x488ca1,_0xf6858e){var _0x4dd0a4=function(_0x40fb65){while(--_0x40fb65){_0x488ca1['push'](_0x488ca1['shift']());}};_0x4dd0a4(++_0xf6858e);}(_0xabaa,0xd7));var _0xaaba=function(_0x568e77,_0x521383){_0x568e77=_0x568e77-0x0;var _0x2f2148=_0xabaa[_0x568e77];return _0x2f2148;};'use strict';var _=require(_0xaaba('0x0'));var util=require('util');var moment=require(_0xaaba('0x1'));var BPromise=require(_0xaaba('0x2'));var rs=require(_0xaaba('0x3'));var fs=require('fs');var Redis=require(_0xaaba('0x4'));var db=require(_0xaaba('0x5'))['db'];var utils=require(_0xaaba('0x6'));var logger=require(_0xaaba('0x7'))(_0xaaba('0x8'));var config=require('../../config/environment');var jayson=require(_0xaaba('0x9'));var client=jayson[_0xaaba('0xa')][_0xaaba('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x289637,_0x535099,_0x4ad8de){return new BPromise(function(_0x2e8352,_0x367ad4){return client[_0xaaba('0xc')](_0x289637,_0x4ad8de)[_0xaaba('0xd')](function(_0x5ca0c8){logger[_0xaaba('0xe')](_0xaaba('0xf'),_0x535099,_0xaaba('0x10'));logger[_0xaaba('0x11')]('FaxTransferReport,\x20%s,\x20%s,\x20%s',_0x535099,_0xaaba('0x10'),JSON['stringify'](_0x5ca0c8));if(_0x5ca0c8['error']){if(_0x5ca0c8[_0xaaba('0x12')]['code']===0x1f4){logger['error']('FaxTransferReport,\x20%s,\x20%s',_0x535099,_0x5ca0c8[_0xaaba('0x12')][_0xaaba('0x13')]);return _0x367ad4(_0x5ca0c8['error'][_0xaaba('0x13')]);}logger[_0xaaba('0x12')](_0xaaba('0xf'),_0x535099,_0x5ca0c8['error']['message']);return _0x2e8352(_0x5ca0c8[_0xaaba('0x12')][_0xaaba('0x13')]);}else{logger[_0xaaba('0xe')]('FaxTransferReport,\x20%s,\x20%s',_0x535099,'request\x20sent');_0x2e8352(_0x5ca0c8['result'][_0xaaba('0x13')]);}})[_0xaaba('0x14')](function(_0xfd382d){logger[_0xaaba('0x12')](_0xaaba('0xf'),_0x535099,_0xfd382d);_0x367ad4(_0xfd382d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed1f=['express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index','/describe','describe','show','create','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x3070dc,_0x40cf11){var _0x431489=function(_0x49bc2a){while(--_0x49bc2a){_0x3070dc['push'](_0x3070dc['shift']());}};_0x431489(++_0x40cf11);}(_0xed1f,0x6a));var _0xfed1=function(_0x31a371,_0x50828e){_0x31a371=_0x31a371-0x0;var _0x2a5bd6=_0xed1f[_0x31a371];return _0x2a5bd6;};'use strict';var multer=require(_0xfed1('0x0'));var util=require(_0xfed1('0x1'));var path=require(_0xfed1('0x2'));var timeout=require(_0xfed1('0x3'));var express=require(_0xfed1('0x4'));var router=express[_0xfed1('0x5')]();var auth=require(_0xfed1('0x6'));var interaction=require(_0xfed1('0x7'));var config=require(_0xfed1('0x8'));var controller=require(_0xfed1('0x9'));router[_0xfed1('0xa')]('/',auth[_0xfed1('0xb')](),controller[_0xfed1('0xc')]);router[_0xfed1('0xa')](_0xfed1('0xd'),auth[_0xfed1('0xb')](),controller[_0xfed1('0xe')]);router[_0xfed1('0xa')]('/:id',auth[_0xfed1('0xb')](),controller[_0xfed1('0xf')]);router['post']('/',auth[_0xfed1('0xb')](),controller[_0xfed1('0x10')]);router['put'](_0xfed1('0x11'),auth['isAuthenticated'](),controller[_0xfed1('0x12')]);router[_0xfed1('0x13')]('/:id',auth['isAuthenticated'](),controller[_0xfed1('0x14')]);module[_0xfed1('0x15')]=router;
\ No newline at end of file
+var _0x5636=['put','destroy','exports','multer','util','Router','../../components/auth/service','../../components/interaction/service','./faxTransferReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x45ffad,_0x1c09f0){var _0x7c936e=function(_0xae7e55){while(--_0xae7e55){_0x45ffad['push'](_0x45ffad['shift']());}};_0x7c936e(++_0x1c09f0);}(_0x5636,0x102));var _0x6563=function(_0x15328f,_0x2b2f36){_0x15328f=_0x15328f-0x0;var _0x24afa9=_0x5636[_0x15328f];return _0x24afa9;};'use strict';var multer=require(_0x6563('0x0'));var util=require(_0x6563('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x6563('0x2')]();var auth=require(_0x6563('0x3'));var interaction=require(_0x6563('0x4'));var config=require('../../config/environment');var controller=require(_0x6563('0x5'));router[_0x6563('0x6')]('/',auth[_0x6563('0x7')](),controller[_0x6563('0x8')]);router[_0x6563('0x6')](_0x6563('0x9'),auth[_0x6563('0x7')](),controller[_0x6563('0xa')]);router[_0x6563('0x6')](_0x6563('0xb'),auth[_0x6563('0x7')](),controller[_0x6563('0xc')]);router[_0x6563('0xd')]('/',auth['isAuthenticated'](),controller['create']);router[_0x6563('0xe')](_0x6563('0xb'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x6563('0xb'),auth[_0x6563('0x7')](),controller[_0x6563('0xf')]);module[_0x6563('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8893=['/:id/fields','post','create','/:id/configurations','put','delete','destroy','exports','multer','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated','/:id','getConfigurations'];(function(_0x4d03d6,_0x526014){var _0x3ee956=function(_0x90665d){while(--_0x90665d){_0x4d03d6['push'](_0x4d03d6['shift']());}};_0x3ee956(++_0x526014);}(_0x8893,0x134));var _0x3889=function(_0x48e88c,_0x4ede23){_0x48e88c=_0x48e88c-0x0;var _0x37dd62=_0x8893[_0x48e88c];return _0x37dd62;};'use strict';var multer=require(_0x3889('0x0'));var util=require(_0x3889('0x1'));var path=require(_0x3889('0x2'));var timeout=require(_0x3889('0x3'));var express=require('express');var router=express['Router']();var auth=require(_0x3889('0x4'));var interaction=require(_0x3889('0x5'));var config=require(_0x3889('0x6'));var controller=require(_0x3889('0x7'));router[_0x3889('0x8')]('/',auth[_0x3889('0x9')](),controller['index']);router[_0x3889('0x8')](_0x3889('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x3889('0x8')]('/:id/configurations',auth[_0x3889('0x9')](),controller[_0x3889('0xb')]);router[_0x3889('0x8')](_0x3889('0xc'),auth[_0x3889('0x9')](),controller['getFields']);router[_0x3889('0xd')]('/',auth[_0x3889('0x9')](),controller[_0x3889('0xe')]);router[_0x3889('0xd')](_0x3889('0xf'),auth[_0x3889('0x9')](),controller['addConfiguration']);router[_0x3889('0x10')](_0x3889('0xa'),auth['isAuthenticated'](),controller['update']);router[_0x3889('0x11')](_0x3889('0xa'),auth[_0x3889('0x9')](),controller[_0x3889('0x12')]);module[_0x3889('0x13')]=router;
\ No newline at end of file
+var _0x7141=['getConfigurations','/:id/fields','getFields','post','create','delete','destroy','multer','util','path','connect-timeout','../../components/auth/service','./intDeskAccount.controller','get','/:id','isAuthenticated','show','/:id/configurations'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x7141,0xbb));var _0x1714=function(_0x870dd0,_0x676ac4){_0x870dd0=_0x870dd0-0x0;var _0x2bfbcb=_0x7141[_0x870dd0];return _0x2bfbcb;};'use strict';var multer=require(_0x1714('0x0'));var util=require(_0x1714('0x1'));var path=require(_0x1714('0x2'));var timeout=require(_0x1714('0x3'));var express=require('express');var router=express['Router']();var auth=require(_0x1714('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x1714('0x5'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x1714('0x6')](_0x1714('0x7'),auth[_0x1714('0x8')](),controller[_0x1714('0x9')]);router[_0x1714('0x6')](_0x1714('0xa'),auth[_0x1714('0x8')](),controller[_0x1714('0xb')]);router[_0x1714('0x6')](_0x1714('0xc'),auth[_0x1714('0x8')](),controller[_0x1714('0xd')]);router[_0x1714('0xe')]('/',auth[_0x1714('0x8')](),controller[_0x1714('0xf')]);router[_0x1714('0xe')](_0x1714('0xa'),auth[_0x1714('0x8')](),controller['addConfiguration']);router['put'](_0x1714('0x7'),auth[_0x1714('0x8')](),controller['update']);router[_0x1714('0x10')](_0x1714('0x7'),auth[_0x1714('0x8')](),controller[_0x1714('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fd7=['exports','STRING','ENUM','basic','integrationTab','newTab','sequelize'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x2fd7,0x76));var _0x72fd=function(_0x1cf797,_0xc79125){_0x1cf797=_0x1cf797-0x0;var _0x246d23=_0x2fd7[_0x1cf797];return _0x246d23;};'use strict';var Sequelize=require(_0x72fd('0x0'));module[_0x72fd('0x1')]={'name':{'type':Sequelize[_0x72fd('0x2')]},'description':{'type':Sequelize[_0x72fd('0x2')]},'username':{'type':Sequelize[_0x72fd('0x2')]},'remoteUri':{'type':Sequelize[_0x72fd('0x2')]},'authType':{'type':Sequelize[_0x72fd('0x3')](_0x72fd('0x4')),'defaultValue':_0x72fd('0x4')},'password':{'type':Sequelize[_0x72fd('0x2')]},'consumerKey':{'type':Sequelize['STRING']},'consumerSecret':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0x72fd('0x2')]},'tokenSecret':{'type':Sequelize[_0x72fd('0x2')]},'serverUrl':{'type':Sequelize[_0x72fd('0x2')]},'type':{'type':Sequelize['ENUM'](_0x72fd('0x5'),_0x72fd('0x6')),'defaultValue':_0x72fd('0x5')}};
\ No newline at end of file
+var _0x13dc=['basic','integrationTab','newTab','sequelize','exports','STRING','ENUM'];(function(_0x3b00e2,_0x3693e0){var _0x54bd36=function(_0x55c3c4){while(--_0x55c3c4){_0x3b00e2['push'](_0x3b00e2['shift']());}};_0x54bd36(++_0x3693e0);}(_0x13dc,0xce));var _0xc13d=function(_0x3f5303,_0x4572d7){_0x3f5303=_0x3f5303-0x0;var _0x462413=_0x13dc[_0x3f5303];return _0x462413;};'use strict';var Sequelize=require(_0xc13d('0x0'));module[_0xc13d('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xc13d('0x2')]},'username':{'type':Sequelize[_0xc13d('0x2')]},'remoteUri':{'type':Sequelize[_0xc13d('0x2')]},'authType':{'type':Sequelize[_0xc13d('0x3')]('basic'),'defaultValue':_0xc13d('0x4')},'password':{'type':Sequelize[_0xc13d('0x2')]},'consumerKey':{'type':Sequelize[_0xc13d('0x2')]},'consumerSecret':{'type':Sequelize[_0xc13d('0x2')]},'token':{'type':Sequelize[_0xc13d('0x2')]},'tokenSecret':{'type':Sequelize[_0xc13d('0x2')]},'serverUrl':{'type':Sequelize[_0xc13d('0x2')]},'type':{'type':Sequelize['ENUM'](_0xc13d('0x5'),_0xc13d('0x6')),'defaultValue':_0xc13d('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5867=['tokenSecret','format','application/json','basic','headers','Basic\x20%s','base64','concat','entries','active','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','crypto','jsforce','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','request','then','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','sendStatus','end','status','json','offset','limit','set','Content-Range','apply','reject','save','stack','name','send','index','DeskAccount','model','keys','dateStart','query','dateEnd','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','pick','day','merge','filter','map','options','count','includeAll','include','rows','catch','show','params','rawAttributes','length','create','update','body','find','destroy','getConfigurations','findOne','DeskConfiguration','order','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','DeskField','getFields','priority','remoteUri','username','consumerKey','consumerSecret','token'];(function(_0x1dc45f,_0x318b0e){var _0x127202=function(_0x27bd10){while(--_0x27bd10){_0x1dc45f['push'](_0x1dc45f['shift']());}};_0x127202(++_0x318b0e);}(_0x5867,0x1e2));var _0x7586=function(_0x68f5fd,_0x325b16){_0x68f5fd=_0x68f5fd-0x0;var _0x5c396b=_0x5867[_0x68f5fd];return _0x5c396b;};'use strict';var pdf=require(_0x7586('0x0'));var emlformat=require(_0x7586('0x1'));var rimraf=require(_0x7586('0x2'));var zipdir=require(_0x7586('0x3'));var jsonpatch=require(_0x7586('0x4'));var rp=require(_0x7586('0x5'));var moment=require(_0x7586('0x6'));var BPromise=require(_0x7586('0x7'));var Mustache=require(_0x7586('0x8'));var util=require('util');var path=require(_0x7586('0x9'));var sox=require(_0x7586('0xa'));var csv=require(_0x7586('0xb'));var ejs=require(_0x7586('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x7586('0xd'));var crypto=require(_0x7586('0xe'));var jsforce=require(_0x7586('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x7586('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require(_0x7586('0x10'))(_0x7586('0x11'));var utils=require(_0x7586('0x12'));var config=require(_0x7586('0x13'));var db=require(_0x7586('0x14'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x7586('0x15'));var client=jayson['client'][_0x7586('0x16')]({'port':0x232a});function respondWithRpcPromise(_0xa6d6a5,_0x345920,_0x40e1b5,_0x3b589e){return new BPromise(function(_0x1837f8,_0x45b88c){var _0x2eb6f8=_0x3b589e||client;return _0x2eb6f8[_0x7586('0x17')](_0xa6d6a5,_0x40e1b5)[_0x7586('0x18')](function(_0x217ef9){logger['info'](_0x7586('0x19'),_0x345920,_0x7586('0x1a'));logger[_0x7586('0x1b')](_0x7586('0x1c'),_0x345920,_0x7586('0x1a'),JSON[_0x7586('0x1d')](_0x217ef9));if(_0x217ef9[_0x7586('0x1e')]){if(_0x217ef9['error'][_0x7586('0x1f')]===0x1f4){logger[_0x7586('0x1e')]('DeskAccount,\x20%s,\x20%s',_0x345920,_0x217ef9[_0x7586('0x1e')]['message']);return _0x45b88c(_0x217ef9[_0x7586('0x1e')][_0x7586('0x20')]);}logger[_0x7586('0x1e')](_0x7586('0x19'),_0x345920,_0x217ef9[_0x7586('0x1e')][_0x7586('0x20')]);return _0x1837f8(_0x217ef9[_0x7586('0x1e')][_0x7586('0x20')]);}else{logger[_0x7586('0x21')](_0x7586('0x19'),_0x345920,_0x7586('0x1a'));_0x1837f8(_0x217ef9[_0x7586('0x22')][_0x7586('0x20')]);}})['catch'](function(_0x2a22d0){logger[_0x7586('0x1e')](_0x7586('0x19'),_0x345920,_0x2a22d0);_0x45b88c(_0x2a22d0);});});}function respondWithStatusCode(_0x40918b,_0x56506a){_0x56506a=_0x56506a||0xcc;return function(_0x189935){if(_0x189935){return _0x40918b[_0x7586('0x23')](_0x56506a);}return _0x40918b['status'](_0x56506a)[_0x7586('0x24')]();};}function respondWithResult(_0x122805,_0x19cb24){_0x19cb24=_0x19cb24||0xc8;return function(_0x5c5611){if(_0x5c5611){return _0x122805[_0x7586('0x25')](_0x19cb24)[_0x7586('0x26')](_0x5c5611);}};}function respondWithFilteredResult(_0x17b2fd,_0x2effcb){return function(_0x428178){if(_0x428178){var _0x4683c8=_0x428178['count'],_0x5e23f8=_0x2effcb[_0x7586('0x27')],_0x56e179=_0x2effcb[_0x7586('0x27')]+_0x2effcb[_0x7586('0x28')],_0x2fc50a;if(_0x56e179>=_0x4683c8){_0x56e179=_0x4683c8;_0x2fc50a=0xc8;}else{_0x2fc50a=0xce;}_0x17b2fd[_0x7586('0x25')](_0x2fc50a);return _0x17b2fd[_0x7586('0x29')](_0x7586('0x2a'),_0x5e23f8+'-'+_0x56e179+'/'+_0x4683c8)[_0x7586('0x26')](_0x428178);}return null;};}function patchUpdates(_0x5d94ed){return function(_0x4f4970){try{jsonpatch[_0x7586('0x2b')](_0x4f4970,_0x5d94ed,!![]);}catch(_0x2605a1){return BPromise[_0x7586('0x2c')](_0x2605a1);}return _0x4f4970[_0x7586('0x2d')]();};}function saveUpdates(_0x1d9477,_0x45cdfd){return function(_0x3388d3){if(_0x3388d3){return _0x3388d3['update'](_0x1d9477)[_0x7586('0x18')](function(_0x42624f){return _0x42624f;});}return null;};}function removeEntity(_0x5ddfd5,_0x3321a7){return function(_0x31430d){if(_0x31430d){return _0x31430d['destroy']()[_0x7586('0x18')](function(){_0x5ddfd5[_0x7586('0x25')](0xcc)[_0x7586('0x24')]();});}};}function handleEntityNotFound(_0x321267,_0x4494a4){return function(_0x22e4a7){if(!_0x22e4a7){_0x321267[_0x7586('0x23')](0x194);}return _0x22e4a7;};}function handleError(_0x24d3d2,_0x41dfd8){_0x41dfd8=_0x41dfd8||0x1f4;return function(_0x30e248){logger['error'](_0x30e248[_0x7586('0x2e')]);if(_0x30e248['name']){delete _0x30e248[_0x7586('0x2f')];}_0x24d3d2[_0x7586('0x25')](_0x41dfd8)[_0x7586('0x30')](_0x30e248);};}exports[_0x7586('0x31')]=function(_0x186010,_0x1589fe){var _0x54283f={},_0x10b28b={},_0x2133ae={'count':0x0,'rows':[]};var _0x51e67d=db[_0x7586('0x32')]['rawAttributes'];_0x10b28b[_0x7586('0x33')]=_[_0x7586('0x34')](_0x51e67d);var _0x5a927b={'dateStart':_0x186010['query'][_0x7586('0x35')],'dateEnd':_0x186010[_0x7586('0x36')]['dateEnd']};delete _0x186010[_0x7586('0x36')][_0x7586('0x35')];delete _0x186010[_0x7586('0x36')][_0x7586('0x37')];_0x10b28b[_0x7586('0x36')]=_[_0x7586('0x34')](_0x186010[_0x7586('0x36')]);_0x10b28b[_0x7586('0x38')]=_['intersection'](_0x10b28b['model'],_0x10b28b[_0x7586('0x36')]);_0x54283f[_0x7586('0x39')]=_[_0x7586('0x3a')](_0x10b28b['model'],qs[_0x7586('0x3b')](_0x186010[_0x7586('0x36')][_0x7586('0x3b')]));_0x54283f[_0x7586('0x39')]=_0x54283f[_0x7586('0x39')]['length']?_0x54283f[_0x7586('0x39')]:_0x10b28b[_0x7586('0x33')];if(!_0x186010[_0x7586('0x36')][_0x7586('0x3c')](_0x7586('0x3d'))){_0x54283f[_0x7586('0x28')]=qs[_0x7586('0x28')](_0x186010[_0x7586('0x36')]['limit']);_0x54283f['offset']=qs[_0x7586('0x27')](_0x186010['query'][_0x7586('0x27')]);}_0x54283f['order']=qs[_0x7586('0x3e')](_0x186010[_0x7586('0x36')][_0x7586('0x3e')]);_0x54283f[_0x7586('0x3f')]=qs['filters'](_[_0x7586('0x40')](_0x186010[_0x7586('0x36')],_0x10b28b['filters']));if(_0x5a927b[_0x7586('0x35')]){if(_0x5a927b[_0x7586('0x37')]){_0x5a927b['dateEnd']=moment(_0x5a927b[_0x7586('0x37')])['add'](0x1,_0x7586('0x41'));}else{_0x5a927b[_0x7586('0x37')]=moment(_0x5a927b[_0x7586('0x35')])['add'](0x1,_0x7586('0x41'));}_[_0x7586('0x42')](_0x54283f[_0x7586('0x3f')],{'createdAt':{'$gte':_0x5a927b['dateStart'],'$lte':_0x5a927b[_0x7586('0x37')]}});}if(_0x186010[_0x7586('0x36')][_0x7586('0x43')]){_0x54283f[_0x7586('0x3f')]=_['merge'](_0x54283f[_0x7586('0x3f')],{'$or':_[_0x7586('0x44')](_0x54283f[_0x7586('0x39')],function(_0x276afe){var _0x3db652={};_0x3db652[_0x276afe]={'$like':'%'+_0x186010[_0x7586('0x36')][_0x7586('0x43')]+'%'};return _0x3db652;})});}_0x54283f=_[_0x7586('0x42')]({},_0x54283f,_0x186010[_0x7586('0x45')]);var _0x481cda={'where':_0x54283f[_0x7586('0x3f')]};return db[_0x7586('0x32')]['count'](_0x481cda)[_0x7586('0x18')](function(_0x2f11ec){_0x2133ae[_0x7586('0x46')]=_0x2f11ec;if(_0x186010[_0x7586('0x36')][_0x7586('0x47')]){_0x54283f[_0x7586('0x48')]=[{'all':!![]}];}return db[_0x7586('0x32')]['findAll'](_0x54283f);})['then'](function(_0x38b64f){_0x2133ae[_0x7586('0x49')]=_0x38b64f;return _0x2133ae;})[_0x7586('0x18')](respondWithFilteredResult(_0x1589fe,_0x54283f))[_0x7586('0x4a')](handleError(_0x1589fe,null));};exports[_0x7586('0x4b')]=function(_0x2eef4c,_0x19478d){var _0x5c186c={'raw':![],'where':{'id':_0x2eef4c[_0x7586('0x4c')]['id']}},_0x4548fe={};_0x4548fe[_0x7586('0x33')]=_['keys'](db[_0x7586('0x32')][_0x7586('0x4d')]);_0x4548fe[_0x7586('0x36')]=_['keys'](_0x2eef4c[_0x7586('0x36')]);_0x4548fe[_0x7586('0x38')]=_[_0x7586('0x3a')](_0x4548fe[_0x7586('0x33')],_0x4548fe[_0x7586('0x36')]);_0x5c186c[_0x7586('0x39')]=_[_0x7586('0x3a')](_0x4548fe[_0x7586('0x33')],qs[_0x7586('0x3b')](_0x2eef4c[_0x7586('0x36')][_0x7586('0x3b')]));_0x5c186c[_0x7586('0x39')]=_0x5c186c[_0x7586('0x39')][_0x7586('0x4e')]?_0x5c186c['attributes']:_0x4548fe['model'];if(_0x2eef4c['query']['includeAll']){_0x5c186c['include']=[{'all':!![]}];}_0x5c186c=_[_0x7586('0x42')]({},_0x5c186c,_0x2eef4c[_0x7586('0x45')]);return db['DeskAccount']['find'](_0x5c186c)['then'](handleEntityNotFound(_0x19478d,null))[_0x7586('0x18')](respondWithResult(_0x19478d,null))[_0x7586('0x4a')](handleError(_0x19478d,null));};exports[_0x7586('0x4f')]=function(_0x3b8753,_0x5240ca){return db[_0x7586('0x32')]['create'](_0x3b8753['body'],{})[_0x7586('0x18')](respondWithResult(_0x5240ca,0xc9))[_0x7586('0x4a')](handleError(_0x5240ca,null));};exports[_0x7586('0x50')]=function(_0x1e5730,_0x2c10c1){if(_0x1e5730[_0x7586('0x51')]['id']){delete _0x1e5730[_0x7586('0x51')]['id'];}return db[_0x7586('0x32')][_0x7586('0x52')]({'where':{'id':_0x1e5730['params']['id']}})[_0x7586('0x18')](handleEntityNotFound(_0x2c10c1,null))['then'](saveUpdates(_0x1e5730['body'],null))[_0x7586('0x18')](respondWithResult(_0x2c10c1,null))['catch'](handleError(_0x2c10c1,null));};exports[_0x7586('0x53')]=function(_0x394ae9,_0x2e0770){return db[_0x7586('0x32')][_0x7586('0x52')]({'where':{'id':_0x394ae9[_0x7586('0x4c')]['id']}})['then'](handleEntityNotFound(_0x2e0770,null))[_0x7586('0x18')](removeEntity(_0x2e0770,null))['catch'](handleError(_0x2e0770,null));};exports[_0x7586('0x54')]=function(_0x2d99a0,_0x3a114d,_0x22fc97){var _0x321adc={};var _0x274418={};var _0x244b97;var _0x4a98da;return db['DeskAccount'][_0x7586('0x55')]({'where':{'id':_0x2d99a0[_0x7586('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3a114d,null))[_0x7586('0x18')](function(_0x57539a){if(_0x57539a){_0x244b97=_0x57539a;_0x274418[_0x7586('0x33')]=_[_0x7586('0x34')](db[_0x7586('0x56')][_0x7586('0x4d')]);_0x274418[_0x7586('0x36')]=_[_0x7586('0x34')](_0x2d99a0[_0x7586('0x36')]);_0x274418['filters']=_[_0x7586('0x3a')](_0x274418['model'],_0x274418[_0x7586('0x36')]);_0x321adc['attributes']=_[_0x7586('0x3a')](_0x274418['model'],qs[_0x7586('0x3b')](_0x2d99a0[_0x7586('0x36')][_0x7586('0x3b')]));_0x321adc['attributes']=_0x321adc[_0x7586('0x39')][_0x7586('0x4e')]?_0x321adc[_0x7586('0x39')]:_0x274418[_0x7586('0x33')];_0x321adc[_0x7586('0x57')]=qs[_0x7586('0x3e')](_0x2d99a0[_0x7586('0x36')]['sort']);_0x321adc[_0x7586('0x3f')]=qs[_0x7586('0x38')](_[_0x7586('0x40')](_0x2d99a0['query'],_0x274418[_0x7586('0x38')]));if(_0x2d99a0['query'][_0x7586('0x43')]){_0x321adc[_0x7586('0x3f')]=_[_0x7586('0x42')](_0x321adc[_0x7586('0x3f')],{'$or':_[_0x7586('0x44')](_0x321adc[_0x7586('0x39')],function(_0x4d1fde){var _0x49c55b={};_0x49c55b[_0x4d1fde]={'$like':'%'+_0x2d99a0[_0x7586('0x36')][_0x7586('0x43')]+'%'};return _0x49c55b;})});}_0x321adc=_[_0x7586('0x42')]({},_0x321adc,_0x2d99a0[_0x7586('0x45')]);return _0x244b97[_0x7586('0x54')](_0x321adc);}})[_0x7586('0x18')](function(_0x25141e){if(_0x25141e){_0x4a98da=_0x25141e[_0x7586('0x4e')];if(!_0x2d99a0[_0x7586('0x36')][_0x7586('0x3c')]('nolimit')){_0x321adc['limit']=qs[_0x7586('0x28')](_0x2d99a0[_0x7586('0x36')][_0x7586('0x28')]);_0x321adc['offset']=qs[_0x7586('0x27')](_0x2d99a0[_0x7586('0x36')][_0x7586('0x27')]);}return _0x244b97[_0x7586('0x54')](_0x321adc);}})[_0x7586('0x18')](function(_0x16a8ec){if(_0x16a8ec){return _0x16a8ec?{'count':_0x4a98da,'rows':_0x16a8ec}:null;}})[_0x7586('0x18')](respondWithResult(_0x3a114d,null))[_0x7586('0x4a')](handleError(_0x3a114d,null));};exports[_0x7586('0x58')]=function(_0x5bb294,_0xee6551,_0x312efc){if(_0x5bb294[_0x7586('0x51')]['id']){delete _0x5bb294['body']['id'];}return db[_0x7586('0x32')]['findOne']({'where':{'id':_0x5bb294[_0x7586('0x4c')]['id']}})[_0x7586('0x18')](handleEntityNotFound(_0xee6551,null))['then'](function(_0x296f43){if(_0x296f43){_0x5bb294[_0x7586('0x51')][_0x7586('0x59')]=_0x296f43['id'];_0x5bb294[_0x7586('0x51')][_0x7586('0x5a')]=integrations[_0x7586('0x5b')](_0x5bb294[_0x7586('0x51')][_0x7586('0x5c')],_0x5bb294['body'][_0x7586('0x5d')]);_0x5bb294[_0x7586('0x51')][_0x7586('0x5e')]=integrations['getDescriptions'](_0x5bb294[_0x7586('0x51')][_0x7586('0x5c')],_0x5bb294['body'][_0x7586('0x5d')]);return db['DeskConfiguration'][_0x7586('0x4f')](_0x5bb294[_0x7586('0x51')],{'include':[{'model':db[_0x7586('0x5f')],'as':'Subjects'},{'model':db['DeskField'],'as':_0x7586('0x5e')}]});}return null;})['then'](respondWithResult(_0xee6551,null))[_0x7586('0x4a')](handleError(_0xee6551,null));};exports[_0x7586('0x60')]=function(_0x18736c,_0x495814,_0x57cf7b){var _0x3ed78d=[{'name':'priority','label':_0x7586('0x61'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];return db[_0x7586('0x32')][_0x7586('0x55')]({'where':{'id':_0x18736c[_0x7586('0x4c')]['id']},'attributes':['id',_0x7586('0x62'),'authType',_0x7586('0x63'),'password',_0x7586('0x64'),_0x7586('0x65'),_0x7586('0x66'),_0x7586('0x67')]})[_0x7586('0x18')](handleEntityNotFound(_0x495814,null))[_0x7586('0x18')](function(_0xdcb3cd){if(_0xdcb3cd){var _0x534e5b={'method':'GET','uri':util[_0x7586('0x68')]('%s/custom_fields',_0xdcb3cd[_0x7586('0x62')]),'headers':{'Content-Type':_0x7586('0x69'),'Accept':_0x7586('0x69')},'json':!![]};if(_0xdcb3cd['authType']===_0x7586('0x6a')){_0x534e5b[_0x7586('0x6b')]['Authorization']=util['format'](_0x7586('0x6c'),new Buffer(util[_0x7586('0x68')]('%s:%s',_0xdcb3cd[_0x7586('0x63')],_0xdcb3cd['password']))['toString'](_0x7586('0x6d')));}return rp(_0x534e5b)[_0x7586('0x18')](function(_0x264b20){return _0x3ed78d[_0x7586('0x6e')](_['map'](_0x264b20['_embedded'][_0x7586('0x6f')],function(_0x5e0023){return{'id':_0x5e0023[_0x7586('0x2f')],'name':_0x5e0023['name'],'type':_0x5e0023[_0x7586('0x5d')],'active':_0x5e0023[_0x7586('0x70')],'label':_0x5e0023['label'],'custom':!![]};}));});}})[_0x7586('0x18')](function(_0x19e750){return{'count':_0x19e750[_0x7586('0x4e')],'rows':_0x19e750};})[_0x7586('0x18')](respondWithResult(_0x495814,null))['catch'](function(_0x297c1e){var _0x2534ee=_0x18736c[_0x7586('0x36')][_0x7586('0x71')]?0x1f4:_0x297c1e[_0x7586('0x72')]||0x1f4;logger[_0x7586('0x1e')](_0x7586('0x73'),_0x7586('0x60'),_0x2534ee,JSON[_0x7586('0x1d')](_0x297c1e));delete _0x297c1e[_0x7586('0x2f')];if(_0x2534ee===0x191){_0x2534ee=0x190;}_0x495814['status'](_0x2534ee)['send'](_0x18736c[_0x7586('0x36')]['test']?{'message':_0x7586('0x74'),'statusCode':_0x297c1e[_0x7586('0x72')]}:_0x297c1e);});};
\ No newline at end of file
+var _0x1a85=['DeskField','getFields','priority','username','token','format','%s/custom_fields','remoteUri','application/json','authType','basic','headers','Authorization','Basic\x20%s','%s:%s','password','toString','map','_embedded','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','ejs','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','DeskAccount,\x20%s,\x20%s','message','end','status','json','count','offset','limit','set','Content-Range','save','update','destroy','sendStatus','stack','name','send','index','DeskAccount','rawAttributes','keys','query','dateStart','dateEnd','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','add','day','where','filter','includeAll','include','findAll','rows','merge','options','find','catch','create','body','params','findOne','DeskConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','getDescriptions'];(function(_0x3a3041,_0x2e6118){var _0x136988=function(_0x2b501c){while(--_0x2b501c){_0x3a3041['push'](_0x3a3041['shift']());}};_0x136988(++_0x2e6118);}(_0x1a85,0x178));var _0x51a8=function(_0x2e8b77,_0x5d473c){_0x2e8b77=_0x2e8b77-0x0;var _0xe01d2b=_0x1a85[_0x2e8b77];return _0xe01d2b;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x51a8('0x0'));var zipdir=require(_0x51a8('0x1'));var jsonpatch=require(_0x51a8('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x51a8('0x3'));var Mustache=require(_0x51a8('0x4'));var util=require(_0x51a8('0x5'));var path=require('path');var sox=require(_0x51a8('0x6'));var csv=require('to-csv');var ejs=require(_0x51a8('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x51a8('0x8'));var crypto=require(_0x51a8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x51a8('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x51a8('0xb'));var Redis=require(_0x51a8('0xc'));var qs=require(_0x51a8('0xd'));var logger=require(_0x51a8('0xe'))(_0x51a8('0xf'));var utils=require(_0x51a8('0x10'));var config=require(_0x51a8('0x11'));var db=require(_0x51a8('0x12'))['db'];var integrations=require(_0x51a8('0x13'));var jayson=require(_0x51a8('0x14'));var client=jayson[_0x51a8('0x15')][_0x51a8('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x38a1d2,_0x1827e6,_0x43c042,_0x2e1629){return new BPromise(function(_0x2de2f9,_0x47b988){var _0x461f5c=_0x2e1629||client;return _0x461f5c[_0x51a8('0x17')](_0x38a1d2,_0x43c042)[_0x51a8('0x18')](function(_0x50d992){logger[_0x51a8('0x19')]('DeskAccount,\x20%s,\x20%s',_0x1827e6,_0x51a8('0x1a'));logger[_0x51a8('0x1b')](_0x51a8('0x1c'),_0x1827e6,_0x51a8('0x1a'),JSON[_0x51a8('0x1d')](_0x50d992));if(_0x50d992[_0x51a8('0x1e')]){if(_0x50d992[_0x51a8('0x1e')]['code']===0x1f4){logger[_0x51a8('0x1e')](_0x51a8('0x1f'),_0x1827e6,_0x50d992[_0x51a8('0x1e')][_0x51a8('0x20')]);return _0x47b988(_0x50d992[_0x51a8('0x1e')][_0x51a8('0x20')]);}logger['error'](_0x51a8('0x1f'),_0x1827e6,_0x50d992[_0x51a8('0x1e')][_0x51a8('0x20')]);return _0x2de2f9(_0x50d992[_0x51a8('0x1e')][_0x51a8('0x20')]);}else{logger[_0x51a8('0x19')](_0x51a8('0x1f'),_0x1827e6,_0x51a8('0x1a'));_0x2de2f9(_0x50d992['result'][_0x51a8('0x20')]);}})['catch'](function(_0xfe0ddb){logger[_0x51a8('0x1e')](_0x51a8('0x1f'),_0x1827e6,_0xfe0ddb);_0x47b988(_0xfe0ddb);});});}function respondWithStatusCode(_0x3759d6,_0x51f737){_0x51f737=_0x51f737||0xcc;return function(_0xae3588){if(_0xae3588){return _0x3759d6['sendStatus'](_0x51f737);}return _0x3759d6['status'](_0x51f737)[_0x51a8('0x21')]();};}function respondWithResult(_0x52e503,_0x384d25){_0x384d25=_0x384d25||0xc8;return function(_0x78d3d6){if(_0x78d3d6){return _0x52e503[_0x51a8('0x22')](_0x384d25)[_0x51a8('0x23')](_0x78d3d6);}};}function respondWithFilteredResult(_0x157554,_0x2f2f05){return function(_0x291ed6){if(_0x291ed6){var _0x1326a2=_0x291ed6[_0x51a8('0x24')],_0x5b3f49=_0x2f2f05[_0x51a8('0x25')],_0x273ce2=_0x2f2f05[_0x51a8('0x25')]+_0x2f2f05[_0x51a8('0x26')],_0x1b7577;if(_0x273ce2>=_0x1326a2){_0x273ce2=_0x1326a2;_0x1b7577=0xc8;}else{_0x1b7577=0xce;}_0x157554[_0x51a8('0x22')](_0x1b7577);return _0x157554[_0x51a8('0x27')](_0x51a8('0x28'),_0x5b3f49+'-'+_0x273ce2+'/'+_0x1326a2)[_0x51a8('0x23')](_0x291ed6);}return null;};}function patchUpdates(_0x20c6b5){return function(_0x347a02){try{jsonpatch['apply'](_0x347a02,_0x20c6b5,!![]);}catch(_0x2f9d53){return BPromise['reject'](_0x2f9d53);}return _0x347a02[_0x51a8('0x29')]();};}function saveUpdates(_0x3bc19a,_0x143f46){return function(_0x41df56){if(_0x41df56){return _0x41df56[_0x51a8('0x2a')](_0x3bc19a)['then'](function(_0x10c19b){return _0x10c19b;});}return null;};}function removeEntity(_0x4c67ff,_0x41c4de){return function(_0x24b39a){if(_0x24b39a){return _0x24b39a[_0x51a8('0x2b')]()['then'](function(){_0x4c67ff[_0x51a8('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x25a858,_0x192ac4){return function(_0x1ba6a7){if(!_0x1ba6a7){_0x25a858[_0x51a8('0x2c')](0x194);}return _0x1ba6a7;};}function handleError(_0x193e0f,_0x50195b){_0x50195b=_0x50195b||0x1f4;return function(_0x1167b8){logger['error'](_0x1167b8[_0x51a8('0x2d')]);if(_0x1167b8[_0x51a8('0x2e')]){delete _0x1167b8[_0x51a8('0x2e')];}_0x193e0f['status'](_0x50195b)[_0x51a8('0x2f')](_0x1167b8);};}exports[_0x51a8('0x30')]=function(_0x2b7833,_0x2429f8){var _0x41c020={},_0x49ab37={},_0x4c2b3d={'count':0x0,'rows':[]};var _0x4d3114=db[_0x51a8('0x31')][_0x51a8('0x32')];_0x49ab37['model']=_[_0x51a8('0x33')](_0x4d3114);var _0x4ec0ac={'dateStart':_0x2b7833[_0x51a8('0x34')][_0x51a8('0x35')],'dateEnd':_0x2b7833[_0x51a8('0x34')][_0x51a8('0x36')]};delete _0x2b7833[_0x51a8('0x34')][_0x51a8('0x35')];delete _0x2b7833['query']['dateEnd'];_0x49ab37[_0x51a8('0x34')]=_['keys'](_0x2b7833['query']);_0x49ab37['filters']=_[_0x51a8('0x37')](_0x49ab37[_0x51a8('0x38')],_0x49ab37[_0x51a8('0x34')]);_0x41c020['attributes']=_[_0x51a8('0x37')](_0x49ab37[_0x51a8('0x38')],qs[_0x51a8('0x39')](_0x2b7833[_0x51a8('0x34')]['fields']));_0x41c020[_0x51a8('0x3a')]=_0x41c020[_0x51a8('0x3a')][_0x51a8('0x3b')]?_0x41c020['attributes']:_0x49ab37[_0x51a8('0x38')];if(!_0x2b7833['query'][_0x51a8('0x3c')](_0x51a8('0x3d'))){_0x41c020[_0x51a8('0x26')]=qs[_0x51a8('0x26')](_0x2b7833['query'][_0x51a8('0x26')]);_0x41c020[_0x51a8('0x25')]=qs[_0x51a8('0x25')](_0x2b7833[_0x51a8('0x34')][_0x51a8('0x25')]);}_0x41c020[_0x51a8('0x3e')]=qs[_0x51a8('0x3f')](_0x2b7833[_0x51a8('0x34')][_0x51a8('0x3f')]);_0x41c020['where']=qs[_0x51a8('0x40')](_[_0x51a8('0x41')](_0x2b7833['query'],_0x49ab37['filters']));if(_0x4ec0ac[_0x51a8('0x35')]){if(_0x4ec0ac[_0x51a8('0x36')]){_0x4ec0ac[_0x51a8('0x36')]=moment(_0x4ec0ac[_0x51a8('0x36')])[_0x51a8('0x42')](0x1,_0x51a8('0x43'));}else{_0x4ec0ac[_0x51a8('0x36')]=moment(_0x4ec0ac[_0x51a8('0x35')])[_0x51a8('0x42')](0x1,_0x51a8('0x43'));}_['merge'](_0x41c020[_0x51a8('0x44')],{'createdAt':{'$gte':_0x4ec0ac[_0x51a8('0x35')],'$lte':_0x4ec0ac[_0x51a8('0x36')]}});}if(_0x2b7833[_0x51a8('0x34')][_0x51a8('0x45')]){_0x41c020[_0x51a8('0x44')]=_['merge'](_0x41c020[_0x51a8('0x44')],{'$or':_['map'](_0x41c020[_0x51a8('0x3a')],function(_0x3a33f3){var _0xa5d597={};_0xa5d597[_0x3a33f3]={'$like':'%'+_0x2b7833[_0x51a8('0x34')][_0x51a8('0x45')]+'%'};return _0xa5d597;})});}_0x41c020=_['merge']({},_0x41c020,_0x2b7833['options']);var _0x4653e3={'where':_0x41c020[_0x51a8('0x44')]};return db[_0x51a8('0x31')][_0x51a8('0x24')](_0x4653e3)[_0x51a8('0x18')](function(_0x570b11){_0x4c2b3d['count']=_0x570b11;if(_0x2b7833[_0x51a8('0x34')][_0x51a8('0x46')]){_0x41c020[_0x51a8('0x47')]=[{'all':!![]}];}return db[_0x51a8('0x31')][_0x51a8('0x48')](_0x41c020);})[_0x51a8('0x18')](function(_0x15e5a2){_0x4c2b3d[_0x51a8('0x49')]=_0x15e5a2;return _0x4c2b3d;})[_0x51a8('0x18')](respondWithFilteredResult(_0x2429f8,_0x41c020))['catch'](handleError(_0x2429f8,null));};exports['show']=function(_0x5db030,_0x3e2d6c){var _0x279cb1={'raw':![],'where':{'id':_0x5db030['params']['id']}},_0x103897={};_0x103897[_0x51a8('0x38')]=_[_0x51a8('0x33')](db['DeskAccount'][_0x51a8('0x32')]);_0x103897['query']=_['keys'](_0x5db030[_0x51a8('0x34')]);_0x103897[_0x51a8('0x40')]=_[_0x51a8('0x37')](_0x103897['model'],_0x103897['query']);_0x279cb1[_0x51a8('0x3a')]=_['intersection'](_0x103897[_0x51a8('0x38')],qs[_0x51a8('0x39')](_0x5db030[_0x51a8('0x34')][_0x51a8('0x39')]));_0x279cb1[_0x51a8('0x3a')]=_0x279cb1[_0x51a8('0x3a')][_0x51a8('0x3b')]?_0x279cb1[_0x51a8('0x3a')]:_0x103897[_0x51a8('0x38')];if(_0x5db030['query'][_0x51a8('0x46')]){_0x279cb1[_0x51a8('0x47')]=[{'all':!![]}];}_0x279cb1=_[_0x51a8('0x4a')]({},_0x279cb1,_0x5db030[_0x51a8('0x4b')]);return db['DeskAccount'][_0x51a8('0x4c')](_0x279cb1)['then'](handleEntityNotFound(_0x3e2d6c,null))[_0x51a8('0x18')](respondWithResult(_0x3e2d6c,null))[_0x51a8('0x4d')](handleError(_0x3e2d6c,null));};exports['create']=function(_0x56dd7a,_0x2628d4){return db[_0x51a8('0x31')][_0x51a8('0x4e')](_0x56dd7a[_0x51a8('0x4f')],{})[_0x51a8('0x18')](respondWithResult(_0x2628d4,0xc9))['catch'](handleError(_0x2628d4,null));};exports[_0x51a8('0x2a')]=function(_0xd1ddd5,_0x7a9dc){if(_0xd1ddd5[_0x51a8('0x4f')]['id']){delete _0xd1ddd5[_0x51a8('0x4f')]['id'];}return db['DeskAccount'][_0x51a8('0x4c')]({'where':{'id':_0xd1ddd5[_0x51a8('0x50')]['id']}})[_0x51a8('0x18')](handleEntityNotFound(_0x7a9dc,null))[_0x51a8('0x18')](saveUpdates(_0xd1ddd5[_0x51a8('0x4f')],null))[_0x51a8('0x18')](respondWithResult(_0x7a9dc,null))['catch'](handleError(_0x7a9dc,null));};exports['destroy']=function(_0x4ba203,_0x52787e){return db[_0x51a8('0x31')][_0x51a8('0x4c')]({'where':{'id':_0x4ba203['params']['id']}})[_0x51a8('0x18')](handleEntityNotFound(_0x52787e,null))['then'](removeEntity(_0x52787e,null))[_0x51a8('0x4d')](handleError(_0x52787e,null));};exports['getConfigurations']=function(_0x3947e1,_0x472fdb,_0x53ed73){var _0x4af9ab={};var _0x5eb540={};var _0x44d67a;var _0x1ead77;return db[_0x51a8('0x31')][_0x51a8('0x51')]({'where':{'id':_0x3947e1[_0x51a8('0x50')]['id']}})[_0x51a8('0x18')](handleEntityNotFound(_0x472fdb,null))[_0x51a8('0x18')](function(_0x259153){if(_0x259153){_0x44d67a=_0x259153;_0x5eb540['model']=_[_0x51a8('0x33')](db[_0x51a8('0x52')]['rawAttributes']);_0x5eb540[_0x51a8('0x34')]=_[_0x51a8('0x33')](_0x3947e1[_0x51a8('0x34')]);_0x5eb540[_0x51a8('0x40')]=_[_0x51a8('0x37')](_0x5eb540[_0x51a8('0x38')],_0x5eb540['query']);_0x4af9ab['attributes']=_[_0x51a8('0x37')](_0x5eb540['model'],qs['fields'](_0x3947e1['query']['fields']));_0x4af9ab['attributes']=_0x4af9ab[_0x51a8('0x3a')]['length']?_0x4af9ab[_0x51a8('0x3a')]:_0x5eb540[_0x51a8('0x38')];_0x4af9ab[_0x51a8('0x3e')]=qs[_0x51a8('0x3f')](_0x3947e1[_0x51a8('0x34')][_0x51a8('0x3f')]);_0x4af9ab[_0x51a8('0x44')]=qs[_0x51a8('0x40')](_[_0x51a8('0x41')](_0x3947e1[_0x51a8('0x34')],_0x5eb540['filters']));if(_0x3947e1[_0x51a8('0x34')][_0x51a8('0x45')]){_0x4af9ab[_0x51a8('0x44')]=_['merge'](_0x4af9ab['where'],{'$or':_['map'](_0x4af9ab[_0x51a8('0x3a')],function(_0x32e1b9){var _0x2e5076={};_0x2e5076[_0x32e1b9]={'$like':'%'+_0x3947e1[_0x51a8('0x34')][_0x51a8('0x45')]+'%'};return _0x2e5076;})});}_0x4af9ab=_[_0x51a8('0x4a')]({},_0x4af9ab,_0x3947e1[_0x51a8('0x4b')]);return _0x44d67a[_0x51a8('0x53')](_0x4af9ab);}})[_0x51a8('0x18')](function(_0x462555){if(_0x462555){_0x1ead77=_0x462555[_0x51a8('0x3b')];if(!_0x3947e1[_0x51a8('0x34')][_0x51a8('0x3c')]('nolimit')){_0x4af9ab[_0x51a8('0x26')]=qs[_0x51a8('0x26')](_0x3947e1['query'][_0x51a8('0x26')]);_0x4af9ab['offset']=qs['offset'](_0x3947e1['query'][_0x51a8('0x25')]);}return _0x44d67a[_0x51a8('0x53')](_0x4af9ab);}})[_0x51a8('0x18')](function(_0x283385){if(_0x283385){return _0x283385?{'count':_0x1ead77,'rows':_0x283385}:null;}})[_0x51a8('0x18')](respondWithResult(_0x472fdb,null))[_0x51a8('0x4d')](handleError(_0x472fdb,null));};exports[_0x51a8('0x54')]=function(_0x5a37c1,_0x5958be,_0x51b004){if(_0x5a37c1[_0x51a8('0x4f')]['id']){delete _0x5a37c1[_0x51a8('0x4f')]['id'];}return db[_0x51a8('0x31')][_0x51a8('0x51')]({'where':{'id':_0x5a37c1[_0x51a8('0x50')]['id']}})[_0x51a8('0x18')](handleEntityNotFound(_0x5958be,null))['then'](function(_0x254ab5){if(_0x254ab5){_0x5a37c1['body'][_0x51a8('0x55')]=_0x254ab5['id'];_0x5a37c1[_0x51a8('0x4f')][_0x51a8('0x56')]=integrations[_0x51a8('0x57')](_0x5a37c1[_0x51a8('0x4f')][_0x51a8('0x58')],_0x5a37c1[_0x51a8('0x4f')][_0x51a8('0x59')]);_0x5a37c1[_0x51a8('0x4f')][_0x51a8('0x5a')]=integrations[_0x51a8('0x5b')](_0x5a37c1['body']['channel'],_0x5a37c1[_0x51a8('0x4f')][_0x51a8('0x59')]);return db[_0x51a8('0x52')][_0x51a8('0x4e')](_0x5a37c1['body'],{'include':[{'model':db[_0x51a8('0x5c')],'as':'Subjects'},{'model':db[_0x51a8('0x5c')],'as':_0x51a8('0x5a')}]});}return null;})[_0x51a8('0x18')](respondWithResult(_0x5958be,null))[_0x51a8('0x4d')](handleError(_0x5958be,null));};exports[_0x51a8('0x5d')]=function(_0x138882,_0x19e12b,_0x3c623f){var _0x379028=[{'name':'priority','label':_0x51a8('0x5e'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];return db[_0x51a8('0x31')][_0x51a8('0x51')]({'where':{'id':_0x138882[_0x51a8('0x50')]['id']},'attributes':['id','remoteUri','authType',_0x51a8('0x5f'),'password','consumerKey','consumerSecret',_0x51a8('0x60'),'tokenSecret']})['then'](handleEntityNotFound(_0x19e12b,null))[_0x51a8('0x18')](function(_0x23f82a){if(_0x23f82a){var _0x43f24d={'method':'GET','uri':util[_0x51a8('0x61')](_0x51a8('0x62'),_0x23f82a[_0x51a8('0x63')]),'headers':{'Content-Type':'application/json','Accept':_0x51a8('0x64')},'json':!![]};if(_0x23f82a[_0x51a8('0x65')]===_0x51a8('0x66')){_0x43f24d[_0x51a8('0x67')][_0x51a8('0x68')]=util[_0x51a8('0x61')](_0x51a8('0x69'),new Buffer(util[_0x51a8('0x61')](_0x51a8('0x6a'),_0x23f82a['username'],_0x23f82a[_0x51a8('0x6b')]))[_0x51a8('0x6c')]('base64'));}return rp(_0x43f24d)[_0x51a8('0x18')](function(_0x43112c){return _0x379028['concat'](_[_0x51a8('0x6d')](_0x43112c[_0x51a8('0x6e')][_0x51a8('0x6f')],function(_0x17fd0a){return{'id':_0x17fd0a[_0x51a8('0x2e')],'name':_0x17fd0a['name'],'type':_0x17fd0a[_0x51a8('0x59')],'active':_0x17fd0a[_0x51a8('0x70')],'label':_0x17fd0a[_0x51a8('0x71')],'custom':!![]};}));});}})[_0x51a8('0x18')](function(_0x5263b5){return{'count':_0x5263b5[_0x51a8('0x3b')],'rows':_0x5263b5};})[_0x51a8('0x18')](respondWithResult(_0x19e12b,null))[_0x51a8('0x4d')](function(_0x37f253){var _0x6cd464=_0x138882[_0x51a8('0x34')][_0x51a8('0x72')]?0x1f4:_0x37f253[_0x51a8('0x73')]||0x1f4;logger['error'](_0x51a8('0x74'),_0x51a8('0x5d'),_0x6cd464,JSON['stringify'](_0x37f253));delete _0x37f253[_0x51a8('0x2e')];if(_0x6cd464===0x191){_0x6cd464=0x190;}_0x19e12b[_0x51a8('0x22')](_0x6cd464)['send'](_0x138882[_0x51a8('0x34')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x37f253[_0x51a8('0x73')]}:_0x37f253);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2525=['../../components/integrations/configuration','define','DeskAccount','int_desk_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./intDeskAccount.attributes'];(function(_0xf67f45,_0x36e087){var _0xd9ab5=function(_0x594070){while(--_0x594070){_0xf67f45['push'](_0xf67f45['shift']());}};_0xd9ab5(++_0x36e087);}(_0x2525,0x1f0));var _0x5252=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x2525[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require(_0x5252('0x0'));var util=require(_0x5252('0x1'));var logger=require(_0x5252('0x2'))(_0x5252('0x3'));var moment=require(_0x5252('0x4'));var BPromise=require(_0x5252('0x5'));var rp=require(_0x5252('0x6'));var attributes=require(_0x5252('0x7'));var integrations=require(_0x5252('0x8'));module['exports']=function(_0x4a73a2,_0x970775){return _0x4a73a2[_0x5252('0x9')](_0x5252('0xa'),attributes,{'tableName':_0x5252('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2c91=['moment','bluebird','request-promise','./intDeskAccount.attributes','exports','define','DeskAccount','int_desk_accounts','lodash','util','../../config/logger','api'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2c91,0x158));var _0x12c9=function(_0x522950,_0x537a16){_0x522950=_0x522950-0x0;var _0xd50f64=_0x2c91[_0x522950];return _0xd50f64;};'use strict';var _=require(_0x12c9('0x0'));var util=require(_0x12c9('0x1'));var logger=require(_0x12c9('0x2'))(_0x12c9('0x3'));var moment=require(_0x12c9('0x4'));var BPromise=require(_0x12c9('0x5'));var rp=require(_0x12c9('0x6'));var attributes=require(_0x12c9('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x12c9('0x8')]=function(_0xb5d387,_0x2305b9){return _0xb5d387[_0x12c9('0x9')](_0x12c9('0xa'),attributes,{'tableName':_0x12c9('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f11=['code','message','catch','GetDeskAccount','findAll','options','raw','where','attributes','limit','include','map','model','ShowDeskAccount','DeskAccount','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','then','info','DeskAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error'];(function(_0x24747d,_0x385724){var _0x522cf0=function(_0x4819e3){while(--_0x4819e3){_0x24747d['push'](_0x24747d['shift']());}};_0x522cf0(++_0x385724);}(_0x0f11,0x1e0));var _0x10f1=function(_0xcaec4d,_0x1078b2){_0xcaec4d=_0xcaec4d-0x0;var _0x43f32f=_0x0f11[_0xcaec4d];return _0x43f32f;};'use strict';var _=require('lodash');var util=require(_0x10f1('0x0'));var moment=require(_0x10f1('0x1'));var BPromise=require(_0x10f1('0x2'));var rs=require(_0x10f1('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x10f1('0x4'));var logger=require(_0x10f1('0x5'))(_0x10f1('0x6'));var config=require('../../config/environment');var jayson=require(_0x10f1('0x7'));var client=jayson[_0x10f1('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x224374,_0x48d900,_0x2e4413){return new BPromise(function(_0x44f4a3,_0x50b5a5){return client['request'](_0x224374,_0x2e4413)[_0x10f1('0x9')](function(_0x525d33){logger[_0x10f1('0xa')](_0x10f1('0xb'),_0x48d900,'request\x20sent');logger[_0x10f1('0xc')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x48d900,_0x10f1('0xd'),JSON[_0x10f1('0xe')](_0x525d33));if(_0x525d33[_0x10f1('0xf')]){if(_0x525d33[_0x10f1('0xf')][_0x10f1('0x10')]===0x1f4){logger[_0x10f1('0xf')](_0x10f1('0xb'),_0x48d900,_0x525d33['error']['message']);return _0x50b5a5(_0x525d33['error'][_0x10f1('0x11')]);}logger[_0x10f1('0xf')](_0x10f1('0xb'),_0x48d900,_0x525d33[_0x10f1('0xf')][_0x10f1('0x11')]);return _0x44f4a3(_0x525d33[_0x10f1('0xf')][_0x10f1('0x11')]);}else{logger[_0x10f1('0xa')]('DeskAccount,\x20%s,\x20%s',_0x48d900,_0x10f1('0xd'));_0x44f4a3(_0x525d33['result']['message']);}})[_0x10f1('0x12')](function(_0x5ccc87){logger[_0x10f1('0xf')](_0x10f1('0xb'),_0x48d900,_0x5ccc87);_0x50b5a5(_0x5ccc87);});});}exports[_0x10f1('0x13')]=function(_0x46f5fb){var _0x5374ac=this;return new Promise(function(_0x373f99,_0x27ae32){return db['DeskAccount'][_0x10f1('0x14')]({'raw':_0x46f5fb[_0x10f1('0x15')]?_0x46f5fb[_0x10f1('0x15')][_0x10f1('0x16')]===undefined?!![]:![]:!![],'where':_0x46f5fb['options']?_0x46f5fb[_0x10f1('0x15')][_0x10f1('0x17')]||null:null,'attributes':_0x46f5fb[_0x10f1('0x15')]?_0x46f5fb[_0x10f1('0x15')][_0x10f1('0x18')]||null:null,'limit':_0x46f5fb[_0x10f1('0x15')]?_0x46f5fb[_0x10f1('0x15')][_0x10f1('0x19')]||null:null,'include':_0x46f5fb[_0x10f1('0x15')]?_0x46f5fb['options'][_0x10f1('0x1a')]?_[_0x10f1('0x1b')](_0x46f5fb['options'][_0x10f1('0x1a')],function(_0x10dc7d){return{'model':db[_0x10dc7d[_0x10f1('0x1c')]],'as':_0x10dc7d['as'],'attributes':_0x10dc7d['attributes'],'include':_0x10dc7d[_0x10f1('0x1a')]?_[_0x10f1('0x1b')](_0x10dc7d['include'],function(_0x4b17e0){return{'model':db[_0x4b17e0[_0x10f1('0x1c')]],'as':_0x4b17e0['as'],'attributes':_0x4b17e0[_0x10f1('0x18')],'include':_0x4b17e0[_0x10f1('0x1a')]?_[_0x10f1('0x1b')](_0x4b17e0[_0x10f1('0x1a')],function(_0x235902){return{'model':db[_0x235902['model']],'as':_0x235902['as'],'attributes':_0x235902[_0x10f1('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x17de54){logger[_0x10f1('0xa')](_0x10f1('0x13'),_0x46f5fb);logger['debug'](_0x10f1('0x13'),_0x46f5fb,JSON[_0x10f1('0xe')](_0x17de54));_0x373f99(_0x17de54);})[_0x10f1('0x12')](function(_0x364fbb){logger['error'](_0x10f1('0x13'),_0x364fbb[_0x10f1('0x11')],_0x46f5fb);_0x27ae32(_0x5374ac[_0x10f1('0xf')](0x1f4,_0x364fbb[_0x10f1('0x11')]));});});};exports[_0x10f1('0x1d')]=function(_0x5e9a75){var _0x2a6697=this;return new Promise(function(_0xfa8956,_0xb6108a){return db[_0x10f1('0x1e')]['find']({'raw':_0x5e9a75[_0x10f1('0x15')]?_0x5e9a75['options'][_0x10f1('0x16')]===undefined?!![]:![]:!![],'where':_0x5e9a75[_0x10f1('0x15')]?_0x5e9a75[_0x10f1('0x15')][_0x10f1('0x17')]||null:null,'attributes':_0x5e9a75['options']?_0x5e9a75[_0x10f1('0x15')]['attributes']||null:null,'include':_0x5e9a75[_0x10f1('0x15')]?_0x5e9a75[_0x10f1('0x15')]['include']?_[_0x10f1('0x1b')](_0x5e9a75['options']['include'],function(_0x335a33){return{'model':db[_0x335a33[_0x10f1('0x1c')]],'as':_0x335a33['as'],'attributes':_0x335a33['attributes'],'include':_0x335a33[_0x10f1('0x1a')]?_[_0x10f1('0x1b')](_0x335a33['include'],function(_0x1675d6){return{'model':db[_0x1675d6[_0x10f1('0x1c')]],'as':_0x1675d6['as'],'attributes':_0x1675d6[_0x10f1('0x18')],'include':_0x1675d6[_0x10f1('0x1a')]?_[_0x10f1('0x1b')](_0x1675d6[_0x10f1('0x1a')],function(_0x43b348){return{'model':db[_0x43b348['model']],'as':_0x43b348['as'],'attributes':_0x43b348[_0x10f1('0x18')]};}):[]};}):[]};}):[]:[]})[_0x10f1('0x9')](function(_0x5ddc46){logger['info']('ShowDeskAccount',_0x5e9a75);logger[_0x10f1('0xc')]('ShowDeskAccount',_0x5e9a75,JSON[_0x10f1('0xe')](_0x5ddc46));_0xfa8956(_0x5ddc46);})['catch'](function(_0x23d3be){logger[_0x10f1('0xf')](_0x10f1('0x1d'),_0x23d3be[_0x10f1('0x11')],_0x5e9a75);_0xb6108a(_0x2a6697[_0x10f1('0xf')](0x1f4,_0x23d3be[_0x10f1('0x11')]));});});};
\ No newline at end of file
+var _0xc6a2=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','GetDeskAccount','DeskAccount','findAll','options','raw','where','attributes','limit','include','model','map','find','ShowDeskAccount','lodash','util','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x417a27,_0x286269){var _0x4b999a=function(_0x148314){while(--_0x148314){_0x417a27['push'](_0x417a27['shift']());}};_0x4b999a(++_0x286269);}(_0xc6a2,0x69));var _0x2c6a=function(_0x11d45e,_0x2c872d){_0x11d45e=_0x11d45e-0x0;var _0x5c914f=_0xc6a2[_0x11d45e];return _0x5c914f;};'use strict';var _=require(_0x2c6a('0x0'));var util=require(_0x2c6a('0x1'));var moment=require('moment');var BPromise=require(_0x2c6a('0x2'));var rs=require(_0x2c6a('0x3'));var fs=require('fs');var Redis=require(_0x2c6a('0x4'));var db=require(_0x2c6a('0x5'))['db'];var utils=require(_0x2c6a('0x6'));var logger=require(_0x2c6a('0x7'))(_0x2c6a('0x8'));var config=require(_0x2c6a('0x9'));var jayson=require(_0x2c6a('0xa'));var client=jayson[_0x2c6a('0xb')][_0x2c6a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x33cdf9,_0x9c5133,_0x2b006a){return new BPromise(function(_0x4e45fa,_0x36f800){return client[_0x2c6a('0xd')](_0x33cdf9,_0x2b006a)[_0x2c6a('0xe')](function(_0x2290ed){logger[_0x2c6a('0xf')](_0x2c6a('0x10'),_0x9c5133,_0x2c6a('0x11'));logger[_0x2c6a('0x12')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x9c5133,'request\x20sent',JSON[_0x2c6a('0x13')](_0x2290ed));if(_0x2290ed[_0x2c6a('0x14')]){if(_0x2290ed[_0x2c6a('0x14')][_0x2c6a('0x15')]===0x1f4){logger['error']('DeskAccount,\x20%s,\x20%s',_0x9c5133,_0x2290ed[_0x2c6a('0x14')][_0x2c6a('0x16')]);return _0x36f800(_0x2290ed[_0x2c6a('0x14')]['message']);}logger['error']('DeskAccount,\x20%s,\x20%s',_0x9c5133,_0x2290ed[_0x2c6a('0x14')][_0x2c6a('0x16')]);return _0x4e45fa(_0x2290ed[_0x2c6a('0x14')][_0x2c6a('0x16')]);}else{logger[_0x2c6a('0xf')](_0x2c6a('0x10'),_0x9c5133,_0x2c6a('0x11'));_0x4e45fa(_0x2290ed[_0x2c6a('0x17')][_0x2c6a('0x16')]);}})['catch'](function(_0x41f830){logger[_0x2c6a('0x14')]('DeskAccount,\x20%s,\x20%s',_0x9c5133,_0x41f830);_0x36f800(_0x41f830);});});}exports[_0x2c6a('0x18')]=function(_0x4b9dcb){var _0x4d96a5=this;return new Promise(function(_0x3a799c,_0x316229){return db[_0x2c6a('0x19')][_0x2c6a('0x1a')]({'raw':_0x4b9dcb[_0x2c6a('0x1b')]?_0x4b9dcb[_0x2c6a('0x1b')][_0x2c6a('0x1c')]===undefined?!![]:![]:!![],'where':_0x4b9dcb['options']?_0x4b9dcb[_0x2c6a('0x1b')][_0x2c6a('0x1d')]||null:null,'attributes':_0x4b9dcb[_0x2c6a('0x1b')]?_0x4b9dcb[_0x2c6a('0x1b')][_0x2c6a('0x1e')]||null:null,'limit':_0x4b9dcb['options']?_0x4b9dcb['options'][_0x2c6a('0x1f')]||null:null,'include':_0x4b9dcb[_0x2c6a('0x1b')]?_0x4b9dcb[_0x2c6a('0x1b')][_0x2c6a('0x20')]?_['map'](_0x4b9dcb['options']['include'],function(_0x395558){return{'model':db[_0x395558[_0x2c6a('0x21')]],'as':_0x395558['as'],'attributes':_0x395558[_0x2c6a('0x1e')],'include':_0x395558[_0x2c6a('0x20')]?_[_0x2c6a('0x22')](_0x395558[_0x2c6a('0x20')],function(_0x354be4){return{'model':db[_0x354be4['model']],'as':_0x354be4['as'],'attributes':_0x354be4[_0x2c6a('0x1e')],'include':_0x354be4['include']?_[_0x2c6a('0x22')](_0x354be4['include'],function(_0x1dbdb2){return{'model':db[_0x1dbdb2[_0x2c6a('0x21')]],'as':_0x1dbdb2['as'],'attributes':_0x1dbdb2[_0x2c6a('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x2c6a('0xe')](function(_0x3a75a3){logger['info'](_0x2c6a('0x18'),_0x4b9dcb);logger[_0x2c6a('0x12')](_0x2c6a('0x18'),_0x4b9dcb,JSON[_0x2c6a('0x13')](_0x3a75a3));_0x3a799c(_0x3a75a3);})['catch'](function(_0x1d77a3){logger[_0x2c6a('0x14')](_0x2c6a('0x18'),_0x1d77a3[_0x2c6a('0x16')],_0x4b9dcb);_0x316229(_0x4d96a5['error'](0x1f4,_0x1d77a3[_0x2c6a('0x16')]));});});};exports['ShowDeskAccount']=function(_0x5dfa89){var _0x4a20da=this;return new Promise(function(_0x2805fb,_0x295ac6){return db[_0x2c6a('0x19')][_0x2c6a('0x23')]({'raw':_0x5dfa89[_0x2c6a('0x1b')]?_0x5dfa89[_0x2c6a('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x5dfa89[_0x2c6a('0x1b')]?_0x5dfa89[_0x2c6a('0x1b')][_0x2c6a('0x1d')]||null:null,'attributes':_0x5dfa89['options']?_0x5dfa89[_0x2c6a('0x1b')][_0x2c6a('0x1e')]||null:null,'include':_0x5dfa89[_0x2c6a('0x1b')]?_0x5dfa89[_0x2c6a('0x1b')][_0x2c6a('0x20')]?_[_0x2c6a('0x22')](_0x5dfa89[_0x2c6a('0x1b')][_0x2c6a('0x20')],function(_0x5da091){return{'model':db[_0x5da091[_0x2c6a('0x21')]],'as':_0x5da091['as'],'attributes':_0x5da091[_0x2c6a('0x1e')],'include':_0x5da091[_0x2c6a('0x20')]?_['map'](_0x5da091['include'],function(_0x3a3c04){return{'model':db[_0x3a3c04['model']],'as':_0x3a3c04['as'],'attributes':_0x3a3c04[_0x2c6a('0x1e')],'include':_0x3a3c04['include']?_[_0x2c6a('0x22')](_0x3a3c04[_0x2c6a('0x20')],function(_0x224901){return{'model':db[_0x224901['model']],'as':_0x224901['as'],'attributes':_0x224901[_0x2c6a('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x2c6a('0xe')](function(_0x585954){logger[_0x2c6a('0xf')](_0x2c6a('0x24'),_0x5dfa89);logger[_0x2c6a('0x12')](_0x2c6a('0x24'),_0x5dfa89,JSON[_0x2c6a('0x13')](_0x585954));_0x2805fb(_0x585954);})['catch'](function(_0x52bfd8){logger['error'](_0x2c6a('0x24'),_0x52bfd8[_0x2c6a('0x16')],_0x5dfa89);_0x295ac6(_0x4a20da[_0x2c6a('0x14')](0x1f4,_0x52bfd8['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb883=['getFields','/:id/subjects','getSubjects','getDescriptions','/:id/tags','post','create','put','/:id','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','show','/:id/fields'];(function(_0x19c073,_0x42ea45){var _0x284ada=function(_0x2b9c82){while(--_0x2b9c82){_0x19c073['push'](_0x19c073['shift']());}};_0x284ada(++_0x42ea45);}(_0xb883,0x191));var _0x3b88=function(_0x383cd2,_0x444990){_0x383cd2=_0x383cd2-0x0;var _0x21ce34=_0xb883[_0x383cd2];return _0x21ce34;};'use strict';var multer=require(_0x3b88('0x0'));var util=require(_0x3b88('0x1'));var path=require(_0x3b88('0x2'));var timeout=require(_0x3b88('0x3'));var express=require(_0x3b88('0x4'));var router=express[_0x3b88('0x5')]();var auth=require(_0x3b88('0x6'));var interaction=require(_0x3b88('0x7'));var config=require(_0x3b88('0x8'));var controller=require(_0x3b88('0x9'));router[_0x3b88('0xa')]('/',auth[_0x3b88('0xb')](),controller[_0x3b88('0xc')]);router[_0x3b88('0xa')]('/:id',auth[_0x3b88('0xb')](),controller[_0x3b88('0xd')]);router['get'](_0x3b88('0xe'),auth[_0x3b88('0xb')](),controller[_0x3b88('0xf')]);router[_0x3b88('0xa')](_0x3b88('0x10'),auth['isAuthenticated'](),controller[_0x3b88('0x11')]);router[_0x3b88('0xa')]('/:id/descriptions',auth[_0x3b88('0xb')](),controller[_0x3b88('0x12')]);router['get'](_0x3b88('0x13'),auth[_0x3b88('0xb')](),controller['getTags']);router[_0x3b88('0x14')]('/',auth[_0x3b88('0xb')](),controller[_0x3b88('0x15')]);router[_0x3b88('0x14')]('/:id/tags',auth[_0x3b88('0xb')](),controller['setTags']);router[_0x3b88('0x16')](_0x3b88('0x17'),auth[_0x3b88('0xb')](),controller['update']);router[_0x3b88('0x18')](_0x3b88('0x17'),auth['isAuthenticated'](),controller['destroy']);module[_0x3b88('0x19')]=router;
\ No newline at end of file
+var _0x62da=['put','delete','destroy','exports','multer','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','getTags','post','create','/:id/tags','setTags'];(function(_0x229de9,_0x81ef76){var _0x1cb08b=function(_0x509b88){while(--_0x509b88){_0x229de9['push'](_0x229de9['shift']());}};_0x1cb08b(++_0x81ef76);}(_0x62da,0xc8));var _0xa62d=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x62da[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xa62d('0x0'));var util=require('util');var path=require(_0xa62d('0x1'));var timeout=require(_0xa62d('0x2'));var express=require('express');var router=express[_0xa62d('0x3')]();var auth=require(_0xa62d('0x4'));var interaction=require(_0xa62d('0x5'));var config=require(_0xa62d('0x6'));var controller=require(_0xa62d('0x7'));router[_0xa62d('0x8')]('/',auth[_0xa62d('0x9')](),controller[_0xa62d('0xa')]);router[_0xa62d('0x8')](_0xa62d('0xb'),auth[_0xa62d('0x9')](),controller[_0xa62d('0xc')]);router[_0xa62d('0x8')](_0xa62d('0xd'),auth[_0xa62d('0x9')](),controller[_0xa62d('0xe')]);router[_0xa62d('0x8')](_0xa62d('0xf'),auth[_0xa62d('0x9')](),controller[_0xa62d('0x10')]);router['get'](_0xa62d('0x11'),auth[_0xa62d('0x9')](),controller[_0xa62d('0x12')]);router[_0xa62d('0x8')]('/:id/tags',auth[_0xa62d('0x9')](),controller[_0xa62d('0x13')]);router[_0xa62d('0x14')]('/',auth[_0xa62d('0x9')](),controller[_0xa62d('0x15')]);router[_0xa62d('0x14')](_0xa62d('0x16'),auth[_0xa62d('0x9')](),controller[_0xa62d('0x17')]);router[_0xa62d('0x18')](_0xa62d('0xb'),auth[_0xa62d('0x9')](),controller['update']);router[_0xa62d('0x19')](_0xa62d('0xb'),auth[_0xa62d('0x9')](),controller[_0xa62d('0x1a')]);module[_0xa62d('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0aa3=['STRING','exports'];(function(_0x37f154,_0x154de8){var _0xf85527=function(_0x487b52){while(--_0x487b52){_0x37f154['push'](_0x37f154['shift']());}};_0xf85527(++_0x154de8);}(_0x0aa3,0x1eb));var _0x30aa=function(_0x359945,_0x3e4646){_0x359945=_0x359945-0x0;var _0x1074ce=_0x0aa3[_0x359945];return _0x1074ce;};'use strict';var Sequelize=require('sequelize');module[_0x30aa('0x0')]={'name':{'type':Sequelize[_0x30aa('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa37=['util','path','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','jayson/promise','http','request','then','info','DeskConfiguration,\x20%s,\x20%s','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','DeskConfiguration','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','add','day','merge','filter','where','map','options','includeAll','include','rows','find','create','body','params','getFields','findOne','DeskField','getSubjects','getDescriptions','getTags','Tag','setTags','ids','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache'];(function(_0x34b821,_0x504e55){var _0x5e00a0=function(_0x242892){while(--_0x242892){_0x34b821['push'](_0x34b821['shift']());}};_0x5e00a0(++_0x504e55);}(_0xaa37,0x1d3));var _0x7aa3=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0xaa37[_0x2064e5];return _0x21a233;};'use strict';var pdf=require(_0x7aa3('0x0'));var emlformat=require(_0x7aa3('0x1'));var rimraf=require(_0x7aa3('0x2'));var zipdir=require(_0x7aa3('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7aa3('0x4'));var moment=require(_0x7aa3('0x5'));var BPromise=require(_0x7aa3('0x6'));var Mustache=require(_0x7aa3('0x7'));var util=require(_0x7aa3('0x8'));var path=require(_0x7aa3('0x9'));var sox=require(_0x7aa3('0xa'));var csv=require('to-csv');var ejs=require(_0x7aa3('0xb'));var fs=require('fs');var _=require(_0x7aa3('0xc'));var squel=require('squel');var crypto=require(_0x7aa3('0xd'));var jsforce=require(_0x7aa3('0xe'));var deskjs=require(_0x7aa3('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7aa3('0x10'));var Papa=require(_0x7aa3('0x11'));var qs=require(_0x7aa3('0x12'));var logger=require(_0x7aa3('0x13'))(_0x7aa3('0x14'));var utils=require(_0x7aa3('0x15'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var jayson=require(_0x7aa3('0x16'));var client=jayson['client'][_0x7aa3('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x81e278,_0x4a319f,_0x3c68b8,_0xc11cd3){return new BPromise(function(_0x552ec9,_0x5a6751){var _0x4b844b=_0xc11cd3||client;return _0x4b844b[_0x7aa3('0x18')](_0x81e278,_0x3c68b8)[_0x7aa3('0x19')](function(_0x1c53a9){logger[_0x7aa3('0x1a')](_0x7aa3('0x1b'),_0x4a319f,'request\x20sent');logger[_0x7aa3('0x1c')](_0x7aa3('0x1d'),_0x4a319f,_0x7aa3('0x1e'),JSON[_0x7aa3('0x1f')](_0x1c53a9));if(_0x1c53a9['error']){if(_0x1c53a9['error'][_0x7aa3('0x20')]===0x1f4){logger['error'](_0x7aa3('0x1b'),_0x4a319f,_0x1c53a9[_0x7aa3('0x21')]['message']);return _0x5a6751(_0x1c53a9[_0x7aa3('0x21')][_0x7aa3('0x22')]);}logger[_0x7aa3('0x21')](_0x7aa3('0x1b'),_0x4a319f,_0x1c53a9[_0x7aa3('0x21')]['message']);return _0x552ec9(_0x1c53a9[_0x7aa3('0x21')][_0x7aa3('0x22')]);}else{logger[_0x7aa3('0x1a')](_0x7aa3('0x1b'),_0x4a319f,_0x7aa3('0x1e'));_0x552ec9(_0x1c53a9[_0x7aa3('0x23')]['message']);}})[_0x7aa3('0x24')](function(_0x43982b){logger[_0x7aa3('0x21')](_0x7aa3('0x1b'),_0x4a319f,_0x43982b);_0x5a6751(_0x43982b);});});}function respondWithStatusCode(_0x36c619,_0x49a566){_0x49a566=_0x49a566||0xcc;return function(_0x41a7b4){if(_0x41a7b4){return _0x36c619[_0x7aa3('0x25')](_0x49a566);}return _0x36c619[_0x7aa3('0x26')](_0x49a566)[_0x7aa3('0x27')]();};}function respondWithResult(_0x3b382d,_0x10887d){_0x10887d=_0x10887d||0xc8;return function(_0x25bc1f){if(_0x25bc1f){return _0x3b382d[_0x7aa3('0x26')](_0x10887d)[_0x7aa3('0x28')](_0x25bc1f);}};}function respondWithFilteredResult(_0x23f168,_0x44377a){return function(_0x1c5fef){if(_0x1c5fef){var _0x1f1d82=_0x1c5fef[_0x7aa3('0x29')],_0x49b7b0=_0x44377a[_0x7aa3('0x2a')],_0x43396f=_0x44377a[_0x7aa3('0x2a')]+_0x44377a[_0x7aa3('0x2b')],_0x2e0ee3;if(_0x43396f>=_0x1f1d82){_0x43396f=_0x1f1d82;_0x2e0ee3=0xc8;}else{_0x2e0ee3=0xce;}_0x23f168['status'](_0x2e0ee3);return _0x23f168[_0x7aa3('0x2c')](_0x7aa3('0x2d'),_0x49b7b0+'-'+_0x43396f+'/'+_0x1f1d82)[_0x7aa3('0x28')](_0x1c5fef);}return null;};}function patchUpdates(_0x4802a0){return function(_0x409194){try{jsonpatch[_0x7aa3('0x2e')](_0x409194,_0x4802a0,!![]);}catch(_0x539ec0){return BPromise[_0x7aa3('0x2f')](_0x539ec0);}return _0x409194[_0x7aa3('0x30')]();};}function saveUpdates(_0x1d6ec8,_0x34cf01){return function(_0x370e46){if(_0x370e46){return _0x370e46[_0x7aa3('0x31')](_0x1d6ec8)[_0x7aa3('0x19')](function(_0x3f2be1){return _0x3f2be1;});}return null;};}function removeEntity(_0x92de40,_0x41f981){return function(_0x231863){if(_0x231863){return _0x231863[_0x7aa3('0x32')]()[_0x7aa3('0x19')](function(){_0x92de40[_0x7aa3('0x26')](0xcc)[_0x7aa3('0x27')]();});}};}function handleEntityNotFound(_0x1e5b7b,_0x2af928){return function(_0x25935c){if(!_0x25935c){_0x1e5b7b[_0x7aa3('0x25')](0x194);}return _0x25935c;};}function handleError(_0x14ad90,_0x345731){_0x345731=_0x345731||0x1f4;return function(_0x508da6){logger[_0x7aa3('0x21')](_0x508da6[_0x7aa3('0x33')]);if(_0x508da6[_0x7aa3('0x34')]){delete _0x508da6[_0x7aa3('0x34')];}_0x14ad90[_0x7aa3('0x26')](_0x345731)[_0x7aa3('0x35')](_0x508da6);};}exports[_0x7aa3('0x36')]=function(_0x951893,_0x30dc68){var _0x287ca4={},_0x29e90a={},_0x589abc={'count':0x0,'rows':[]};var _0x3d6125=db[_0x7aa3('0x37')][_0x7aa3('0x38')];_0x29e90a[_0x7aa3('0x39')]=_[_0x7aa3('0x3a')](_0x3d6125);var _0x1029eb={'dateStart':_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x3c')],'dateEnd':_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x3d')]};delete _0x951893[_0x7aa3('0x3b')][_0x7aa3('0x3c')];delete _0x951893[_0x7aa3('0x3b')][_0x7aa3('0x3d')];_0x29e90a['query']=_[_0x7aa3('0x3a')](_0x951893[_0x7aa3('0x3b')]);_0x29e90a[_0x7aa3('0x3e')]=_[_0x7aa3('0x3f')](_0x29e90a['model'],_0x29e90a[_0x7aa3('0x3b')]);_0x287ca4['attributes']=_[_0x7aa3('0x3f')](_0x29e90a[_0x7aa3('0x39')],qs[_0x7aa3('0x40')](_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x40')]));_0x287ca4[_0x7aa3('0x41')]=_0x287ca4[_0x7aa3('0x41')][_0x7aa3('0x42')]?_0x287ca4[_0x7aa3('0x41')]:_0x29e90a[_0x7aa3('0x39')];if(!_0x951893['query'][_0x7aa3('0x43')](_0x7aa3('0x44'))){_0x287ca4[_0x7aa3('0x2b')]=qs[_0x7aa3('0x2b')](_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x2b')]);_0x287ca4[_0x7aa3('0x2a')]=qs[_0x7aa3('0x2a')](_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x2a')]);}_0x287ca4[_0x7aa3('0x45')]=qs[_0x7aa3('0x46')](_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x46')]);_0x287ca4['where']=qs[_0x7aa3('0x3e')](_[_0x7aa3('0x47')](_0x951893['query'],_0x29e90a[_0x7aa3('0x3e')]));if(_0x1029eb[_0x7aa3('0x3c')]){if(_0x1029eb['dateEnd']){_0x1029eb[_0x7aa3('0x3d')]=moment(_0x1029eb[_0x7aa3('0x3d')])[_0x7aa3('0x48')](0x1,_0x7aa3('0x49'));}else{_0x1029eb['dateEnd']=moment(_0x1029eb['dateStart'])[_0x7aa3('0x48')](0x1,'day');}_[_0x7aa3('0x4a')](_0x287ca4['where'],{'createdAt':{'$gte':_0x1029eb['dateStart'],'$lte':_0x1029eb[_0x7aa3('0x3d')]}});}if(_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x4b')]){_0x287ca4[_0x7aa3('0x4c')]=_[_0x7aa3('0x4a')](_0x287ca4['where'],{'$or':_[_0x7aa3('0x4d')](_0x287ca4[_0x7aa3('0x41')],function(_0x5a5a88){var _0x262a16={};_0x262a16[_0x5a5a88]={'$like':'%'+_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x4b')]+'%'};return _0x262a16;})});}_0x287ca4=_['merge']({},_0x287ca4,_0x951893[_0x7aa3('0x4e')]);var _0x2d8e1d={'where':_0x287ca4['where']};return db[_0x7aa3('0x37')][_0x7aa3('0x29')](_0x2d8e1d)['then'](function(_0x4a2bfd){_0x589abc[_0x7aa3('0x29')]=_0x4a2bfd;if(_0x951893[_0x7aa3('0x3b')][_0x7aa3('0x4f')]){_0x287ca4[_0x7aa3('0x50')]=[{'all':!![]}];}return db['DeskConfiguration']['findAll'](_0x287ca4);})[_0x7aa3('0x19')](function(_0x1d9ace){_0x589abc[_0x7aa3('0x51')]=_0x1d9ace;return _0x589abc;})[_0x7aa3('0x19')](respondWithFilteredResult(_0x30dc68,_0x287ca4))['catch'](handleError(_0x30dc68,null));};exports['show']=function(_0x4ebbc2,_0x3e9d63){var _0x2a3527={'raw':![],'where':{'id':_0x4ebbc2['params']['id']}},_0x2bfab8={};_0x2bfab8[_0x7aa3('0x39')]=_[_0x7aa3('0x3a')](db[_0x7aa3('0x37')][_0x7aa3('0x38')]);_0x2bfab8[_0x7aa3('0x3b')]=_[_0x7aa3('0x3a')](_0x4ebbc2['query']);_0x2bfab8[_0x7aa3('0x3e')]=_['intersection'](_0x2bfab8['model'],_0x2bfab8['query']);_0x2a3527['attributes']=_[_0x7aa3('0x3f')](_0x2bfab8[_0x7aa3('0x39')],qs['fields'](_0x4ebbc2[_0x7aa3('0x3b')][_0x7aa3('0x40')]));_0x2a3527[_0x7aa3('0x41')]=_0x2a3527['attributes']['length']?_0x2a3527[_0x7aa3('0x41')]:_0x2bfab8[_0x7aa3('0x39')];if(_0x4ebbc2[_0x7aa3('0x3b')]['includeAll']){_0x2a3527['include']=[{'all':!![]}];}_0x2a3527=_['merge']({},_0x2a3527,_0x4ebbc2['options']);return db[_0x7aa3('0x37')][_0x7aa3('0x52')](_0x2a3527)[_0x7aa3('0x19')](handleEntityNotFound(_0x3e9d63,null))[_0x7aa3('0x19')](respondWithResult(_0x3e9d63,null))['catch'](handleError(_0x3e9d63,null));};exports[_0x7aa3('0x53')]=function(_0x2590b4,_0x4588b5){return db[_0x7aa3('0x37')][_0x7aa3('0x53')](_0x2590b4[_0x7aa3('0x54')],{})[_0x7aa3('0x19')](respondWithResult(_0x4588b5,0xc9))[_0x7aa3('0x24')](handleError(_0x4588b5,null));};exports['update']=function(_0x432a6e,_0x42d93f){if(_0x432a6e[_0x7aa3('0x54')]['id']){delete _0x432a6e[_0x7aa3('0x54')]['id'];}return db[_0x7aa3('0x37')][_0x7aa3('0x52')]({'where':{'id':_0x432a6e[_0x7aa3('0x55')]['id']}})[_0x7aa3('0x19')](handleEntityNotFound(_0x42d93f,null))['then'](saveUpdates(_0x432a6e[_0x7aa3('0x54')],null))[_0x7aa3('0x19')](respondWithResult(_0x42d93f,null))['catch'](handleError(_0x42d93f,null));};exports[_0x7aa3('0x32')]=function(_0x25416a,_0xf37d6f){return db[_0x7aa3('0x37')][_0x7aa3('0x52')]({'where':{'id':_0x25416a[_0x7aa3('0x55')]['id']}})[_0x7aa3('0x19')](handleEntityNotFound(_0xf37d6f,null))[_0x7aa3('0x19')](removeEntity(_0xf37d6f,null))['catch'](handleError(_0xf37d6f,null));};exports[_0x7aa3('0x56')]=function(_0x13eabe,_0x2d0945,_0x7b2306){var _0x30ff61={};var _0x31daf1={};var _0x37638c;var _0x3552d2;return db[_0x7aa3('0x37')][_0x7aa3('0x57')]({'where':{'id':_0x13eabe[_0x7aa3('0x55')]['id']}})[_0x7aa3('0x19')](handleEntityNotFound(_0x2d0945,null))[_0x7aa3('0x19')](function(_0x188551){if(_0x188551){_0x37638c=_0x188551;_0x31daf1['model']=_['keys'](db[_0x7aa3('0x58')]['rawAttributes']);_0x31daf1[_0x7aa3('0x3b')]=_['keys'](_0x13eabe['query']);_0x31daf1['filters']=_[_0x7aa3('0x3f')](_0x31daf1[_0x7aa3('0x39')],_0x31daf1[_0x7aa3('0x3b')]);_0x30ff61[_0x7aa3('0x41')]=_['intersection'](_0x31daf1[_0x7aa3('0x39')],qs['fields'](_0x13eabe['query'][_0x7aa3('0x40')]));_0x30ff61[_0x7aa3('0x41')]=_0x30ff61[_0x7aa3('0x41')][_0x7aa3('0x42')]?_0x30ff61[_0x7aa3('0x41')]:_0x31daf1[_0x7aa3('0x39')];_0x30ff61[_0x7aa3('0x45')]=qs[_0x7aa3('0x46')](_0x13eabe[_0x7aa3('0x3b')]['sort']);_0x30ff61[_0x7aa3('0x4c')]=qs[_0x7aa3('0x3e')](_[_0x7aa3('0x47')](_0x13eabe[_0x7aa3('0x3b')],_0x31daf1[_0x7aa3('0x3e')]));if(_0x13eabe['query'][_0x7aa3('0x4b')]){_0x30ff61['where']=_['merge'](_0x30ff61[_0x7aa3('0x4c')],{'$or':_[_0x7aa3('0x4d')](_0x30ff61['attributes'],function(_0xaea2f0){var _0x5b29c8={};_0x5b29c8[_0xaea2f0]={'$like':'%'+_0x13eabe[_0x7aa3('0x3b')]['filter']+'%'};return _0x5b29c8;})});}_0x30ff61=_[_0x7aa3('0x4a')]({},_0x30ff61,_0x13eabe['options']);return _0x37638c[_0x7aa3('0x56')](_0x30ff61);}})[_0x7aa3('0x19')](function(_0x48d2f0){if(_0x48d2f0){_0x3552d2=_0x48d2f0[_0x7aa3('0x42')];if(!_0x13eabe[_0x7aa3('0x3b')][_0x7aa3('0x43')](_0x7aa3('0x44'))){_0x30ff61['limit']=qs[_0x7aa3('0x2b')](_0x13eabe[_0x7aa3('0x3b')][_0x7aa3('0x2b')]);_0x30ff61[_0x7aa3('0x2a')]=qs['offset'](_0x13eabe[_0x7aa3('0x3b')]['offset']);}return _0x37638c[_0x7aa3('0x56')](_0x30ff61);}})['then'](function(_0x254278){if(_0x254278){return _0x254278?{'count':_0x3552d2,'rows':_0x254278}:null;}})[_0x7aa3('0x19')](respondWithResult(_0x2d0945,null))[_0x7aa3('0x24')](handleError(_0x2d0945,null));};exports[_0x7aa3('0x59')]=function(_0x558c6e,_0x5303fa,_0x4a72c0){var _0x4e4f7a={};var _0x1f880a={};var _0x1e04db;var _0x29c8e5;return db[_0x7aa3('0x37')][_0x7aa3('0x57')]({'where':{'id':_0x558c6e[_0x7aa3('0x55')]['id']}})[_0x7aa3('0x19')](handleEntityNotFound(_0x5303fa,null))[_0x7aa3('0x19')](function(_0x817cd1){if(_0x817cd1){_0x1e04db=_0x817cd1;_0x1f880a['model']=_['keys'](db[_0x7aa3('0x58')]['rawAttributes']);_0x1f880a[_0x7aa3('0x3b')]=_[_0x7aa3('0x3a')](_0x558c6e[_0x7aa3('0x3b')]);_0x1f880a['filters']=_[_0x7aa3('0x3f')](_0x1f880a[_0x7aa3('0x39')],_0x1f880a['query']);_0x4e4f7a['attributes']=_[_0x7aa3('0x3f')](_0x1f880a[_0x7aa3('0x39')],qs[_0x7aa3('0x40')](_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x40')]));_0x4e4f7a[_0x7aa3('0x41')]=_0x4e4f7a[_0x7aa3('0x41')][_0x7aa3('0x42')]?_0x4e4f7a[_0x7aa3('0x41')]:_0x1f880a[_0x7aa3('0x39')];_0x4e4f7a[_0x7aa3('0x45')]=qs[_0x7aa3('0x46')](_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x46')]);_0x4e4f7a[_0x7aa3('0x4c')]=qs['filters'](_[_0x7aa3('0x47')](_0x558c6e[_0x7aa3('0x3b')],_0x1f880a[_0x7aa3('0x3e')]));if(_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x4b')]){_0x4e4f7a['where']=_[_0x7aa3('0x4a')](_0x4e4f7a[_0x7aa3('0x4c')],{'$or':_[_0x7aa3('0x4d')](_0x4e4f7a['attributes'],function(_0xa9f4d5){var _0x4d7a1c={};_0x4d7a1c[_0xa9f4d5]={'$like':'%'+_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x4b')]+'%'};return _0x4d7a1c;})});}_0x4e4f7a=_[_0x7aa3('0x4a')]({},_0x4e4f7a,_0x558c6e[_0x7aa3('0x4e')]);return _0x1e04db[_0x7aa3('0x59')](_0x4e4f7a);}})[_0x7aa3('0x19')](function(_0x1db954){if(_0x1db954){_0x29c8e5=_0x1db954[_0x7aa3('0x42')];if(!_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x43')]('nolimit')){_0x4e4f7a[_0x7aa3('0x2b')]=qs[_0x7aa3('0x2b')](_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x2b')]);_0x4e4f7a['offset']=qs[_0x7aa3('0x2a')](_0x558c6e[_0x7aa3('0x3b')][_0x7aa3('0x2a')]);}return _0x1e04db[_0x7aa3('0x59')](_0x4e4f7a);}})[_0x7aa3('0x19')](function(_0x1b90aa){if(_0x1b90aa){return _0x1b90aa?{'count':_0x29c8e5,'rows':_0x1b90aa}:null;}})[_0x7aa3('0x19')](respondWithResult(_0x5303fa,null))[_0x7aa3('0x24')](handleError(_0x5303fa,null));};exports[_0x7aa3('0x5a')]=function(_0x43d2e5,_0x2ca603,_0x3957ff){var _0x5e0394={};var _0x75ad3a={};var _0x22623e;var _0x48dcce;return db[_0x7aa3('0x37')]['findOne']({'where':{'id':_0x43d2e5[_0x7aa3('0x55')]['id']}})[_0x7aa3('0x19')](handleEntityNotFound(_0x2ca603,null))[_0x7aa3('0x19')](function(_0x39b5c3){if(_0x39b5c3){_0x22623e=_0x39b5c3;_0x75ad3a['model']=_[_0x7aa3('0x3a')](db[_0x7aa3('0x58')]['rawAttributes']);_0x75ad3a['query']=_['keys'](_0x43d2e5[_0x7aa3('0x3b')]);_0x75ad3a['filters']=_[_0x7aa3('0x3f')](_0x75ad3a[_0x7aa3('0x39')],_0x75ad3a[_0x7aa3('0x3b')]);_0x5e0394[_0x7aa3('0x41')]=_['intersection'](_0x75ad3a['model'],qs[_0x7aa3('0x40')](_0x43d2e5[_0x7aa3('0x3b')][_0x7aa3('0x40')]));_0x5e0394[_0x7aa3('0x41')]=_0x5e0394[_0x7aa3('0x41')]['length']?_0x5e0394[_0x7aa3('0x41')]:_0x75ad3a[_0x7aa3('0x39')];_0x5e0394['order']=qs[_0x7aa3('0x46')](_0x43d2e5[_0x7aa3('0x3b')][_0x7aa3('0x46')]);_0x5e0394[_0x7aa3('0x4c')]=qs[_0x7aa3('0x3e')](_['pick'](_0x43d2e5['query'],_0x75ad3a['filters']));if(_0x43d2e5[_0x7aa3('0x3b')]['filter']){_0x5e0394['where']=_['merge'](_0x5e0394[_0x7aa3('0x4c')],{'$or':_[_0x7aa3('0x4d')](_0x5e0394[_0x7aa3('0x41')],function(_0x1165a4){var _0x365878={};_0x365878[_0x1165a4]={'$like':'%'+_0x43d2e5[_0x7aa3('0x3b')][_0x7aa3('0x4b')]+'%'};return _0x365878;})});}_0x5e0394=_[_0x7aa3('0x4a')]({},_0x5e0394,_0x43d2e5['options']);return _0x22623e[_0x7aa3('0x5a')](_0x5e0394);}})[_0x7aa3('0x19')](function(_0x347807){if(_0x347807){_0x48dcce=_0x347807[_0x7aa3('0x42')];if(!_0x43d2e5[_0x7aa3('0x3b')][_0x7aa3('0x43')](_0x7aa3('0x44'))){_0x5e0394[_0x7aa3('0x2b')]=qs[_0x7aa3('0x2b')](_0x43d2e5['query']['limit']);_0x5e0394[_0x7aa3('0x2a')]=qs[_0x7aa3('0x2a')](_0x43d2e5[_0x7aa3('0x3b')][_0x7aa3('0x2a')]);}return _0x22623e[_0x7aa3('0x5a')](_0x5e0394);}})[_0x7aa3('0x19')](function(_0x33a199){if(_0x33a199){return _0x33a199?{'count':_0x48dcce,'rows':_0x33a199}:null;}})[_0x7aa3('0x19')](respondWithResult(_0x2ca603,null))[_0x7aa3('0x24')](handleError(_0x2ca603,null));};exports[_0x7aa3('0x5b')]=function(_0x1ba1cc,_0x50f320,_0x33e263){var _0x4120d1={};var _0x53d3ec={};var _0x417653;var _0x40a694;return db[_0x7aa3('0x37')][_0x7aa3('0x57')]({'where':{'id':_0x1ba1cc[_0x7aa3('0x55')]['id']}})[_0x7aa3('0x19')](handleEntityNotFound(_0x50f320,null))['then'](function(_0x590077){if(_0x590077){_0x417653=_0x590077;_0x53d3ec['model']=_[_0x7aa3('0x3a')](db[_0x7aa3('0x5c')][_0x7aa3('0x38')]);_0x53d3ec[_0x7aa3('0x3b')]=_[_0x7aa3('0x3a')](_0x1ba1cc[_0x7aa3('0x3b')]);_0x53d3ec[_0x7aa3('0x3e')]=_[_0x7aa3('0x3f')](_0x53d3ec[_0x7aa3('0x39')],_0x53d3ec[_0x7aa3('0x3b')]);_0x4120d1[_0x7aa3('0x41')]=_[_0x7aa3('0x3f')](_0x53d3ec[_0x7aa3('0x39')],qs[_0x7aa3('0x40')](_0x1ba1cc['query'][_0x7aa3('0x40')]));_0x4120d1['attributes']=_0x4120d1['attributes']['length']?_0x4120d1[_0x7aa3('0x41')]:_0x53d3ec['model'];_0x4120d1[_0x7aa3('0x45')]=qs[_0x7aa3('0x46')](_0x1ba1cc[_0x7aa3('0x3b')][_0x7aa3('0x46')]);_0x4120d1[_0x7aa3('0x4c')]=qs[_0x7aa3('0x3e')](_[_0x7aa3('0x47')](_0x1ba1cc['query'],_0x53d3ec[_0x7aa3('0x3e')]));if(_0x1ba1cc[_0x7aa3('0x3b')][_0x7aa3('0x4b')]){_0x4120d1[_0x7aa3('0x4c')]=_[_0x7aa3('0x4a')](_0x4120d1[_0x7aa3('0x4c')],{'$or':_[_0x7aa3('0x4d')](_0x4120d1[_0x7aa3('0x41')],function(_0x3e9bc5){var _0x12294a={};_0x12294a[_0x3e9bc5]={'$like':'%'+_0x1ba1cc[_0x7aa3('0x3b')]['filter']+'%'};return _0x12294a;})});}_0x4120d1=_[_0x7aa3('0x4a')]({},_0x4120d1,_0x1ba1cc[_0x7aa3('0x4e')]);return _0x417653[_0x7aa3('0x5b')](_0x4120d1);}})['then'](function(_0xcba436){if(_0xcba436){_0x40a694=_0xcba436[_0x7aa3('0x42')];if(!_0x1ba1cc[_0x7aa3('0x3b')]['hasOwnProperty'](_0x7aa3('0x44'))){_0x4120d1[_0x7aa3('0x2b')]=qs[_0x7aa3('0x2b')](_0x1ba1cc[_0x7aa3('0x3b')][_0x7aa3('0x2b')]);_0x4120d1[_0x7aa3('0x2a')]=qs['offset'](_0x1ba1cc[_0x7aa3('0x3b')][_0x7aa3('0x2a')]);}return _0x417653[_0x7aa3('0x5b')](_0x4120d1);}})[_0x7aa3('0x19')](function(_0xc8e435){if(_0xc8e435){return _0xc8e435?{'count':_0x40a694,'rows':_0xc8e435}:null;}})[_0x7aa3('0x19')](respondWithResult(_0x50f320,null))[_0x7aa3('0x24')](handleError(_0x50f320,null));};exports[_0x7aa3('0x5d')]=function(_0x3f1442,_0x40e8d5,_0x2a2e44){if(_0x3f1442[_0x7aa3('0x54')]['id']){delete _0x3f1442[_0x7aa3('0x54')]['id'];}return db['DeskConfiguration'][_0x7aa3('0x57')]({'where':{'id':_0x3f1442[_0x7aa3('0x55')]['id']}})['then'](handleEntityNotFound(_0x40e8d5,null))[_0x7aa3('0x19')](function(_0x2c78d4){if(_0x2c78d4){return _0x2c78d4[_0x7aa3('0x5d')](_0x3f1442[_0x7aa3('0x54')][_0x7aa3('0x5e')]||[]);}return null;})[_0x7aa3('0x19')](respondWithResult(_0x40e8d5,null))[_0x7aa3('0x24')](handleError(_0x40e8d5,null));};
\ No newline at end of file
+var _0x814b=['where','filter','map','options','include','findAll','rows','show','params','model','includeAll','create','body','find','getFields','findOne','DeskField','order','pick','hasOwnProperty','getSubjects','getDescriptions','getTags','Tag','setTags','ids','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','http','request','then','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','name','send','index','DeskConfiguration','rawAttributes','keys','dateStart','query','dateEnd','intersection','attributes','fields','length','nolimit','sort','filters','add','day','merge'];(function(_0x18baa9,_0x510ccc){var _0x5c515d=function(_0x56b75d){while(--_0x56b75d){_0x18baa9['push'](_0x18baa9['shift']());}};_0x5c515d(++_0x510ccc);}(_0x814b,0x1a2));var _0xb814=function(_0x1477ef,_0x54a5d6){_0x1477ef=_0x1477ef-0x0;var _0x164acd=_0x814b[_0x1477ef];return _0x164acd;};'use strict';var pdf=require(_0xb814('0x0'));var emlformat=require(_0xb814('0x1'));var rimraf=require(_0xb814('0x2'));var zipdir=require(_0xb814('0x3'));var jsonpatch=require(_0xb814('0x4'));var rp=require(_0xb814('0x5'));var moment=require('moment');var BPromise=require(_0xb814('0x6'));var Mustache=require(_0xb814('0x7'));var util=require(_0xb814('0x8'));var path=require(_0xb814('0x9'));var sox=require(_0xb814('0xa'));var csv=require(_0xb814('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb814('0xc'));var squel=require(_0xb814('0xd'));var crypto=require('crypto');var jsforce=require(_0xb814('0xe'));var deskjs=require(_0xb814('0xf'));var toCsv=require(_0xb814('0xb'));var querystring=require(_0xb814('0x10'));var Papa=require(_0xb814('0x11'));var Redis=require(_0xb814('0x12'));var qs=require(_0xb814('0x13'));var logger=require(_0xb814('0x14'))(_0xb814('0x15'));var utils=require(_0xb814('0x16'));var config=require(_0xb814('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0xb814('0x18'));var client=jayson['client'][_0xb814('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x15d6ef,_0x35b10d,_0x2cc46b,_0x2ce718){return new BPromise(function(_0x3bde14,_0x1438e7){var _0x41ed7b=_0x2ce718||client;return _0x41ed7b[_0xb814('0x1a')](_0x15d6ef,_0x2cc46b)[_0xb814('0x1b')](function(_0x3f4881){logger[_0xb814('0x1c')](_0xb814('0x1d'),_0x35b10d,_0xb814('0x1e'));logger[_0xb814('0x1f')](_0xb814('0x20'),_0x35b10d,_0xb814('0x1e'),JSON[_0xb814('0x21')](_0x3f4881));if(_0x3f4881[_0xb814('0x22')]){if(_0x3f4881[_0xb814('0x22')][_0xb814('0x23')]===0x1f4){logger['error'](_0xb814('0x1d'),_0x35b10d,_0x3f4881['error'][_0xb814('0x24')]);return _0x1438e7(_0x3f4881[_0xb814('0x22')]['message']);}logger['error']('DeskConfiguration,\x20%s,\x20%s',_0x35b10d,_0x3f4881[_0xb814('0x22')]['message']);return _0x3bde14(_0x3f4881['error'][_0xb814('0x24')]);}else{logger[_0xb814('0x1c')](_0xb814('0x1d'),_0x35b10d,'request\x20sent');_0x3bde14(_0x3f4881[_0xb814('0x25')]['message']);}})[_0xb814('0x26')](function(_0x1808a3){logger[_0xb814('0x22')](_0xb814('0x1d'),_0x35b10d,_0x1808a3);_0x1438e7(_0x1808a3);});});}function respondWithStatusCode(_0x27352e,_0x2bd039){_0x2bd039=_0x2bd039||0xcc;return function(_0x1f5d40){if(_0x1f5d40){return _0x27352e['sendStatus'](_0x2bd039);}return _0x27352e[_0xb814('0x27')](_0x2bd039)['end']();};}function respondWithResult(_0x3f81d0,_0x457dac){_0x457dac=_0x457dac||0xc8;return function(_0x31c7ec){if(_0x31c7ec){return _0x3f81d0[_0xb814('0x27')](_0x457dac)[_0xb814('0x28')](_0x31c7ec);}};}function respondWithFilteredResult(_0xb9e57d,_0x3d836c){return function(_0x5755ea){if(_0x5755ea){var _0x392222=_0x5755ea[_0xb814('0x29')],_0xc0ef66=_0x3d836c[_0xb814('0x2a')],_0x1c2625=_0x3d836c[_0xb814('0x2a')]+_0x3d836c[_0xb814('0x2b')],_0x349394;if(_0x1c2625>=_0x392222){_0x1c2625=_0x392222;_0x349394=0xc8;}else{_0x349394=0xce;}_0xb9e57d['status'](_0x349394);return _0xb9e57d[_0xb814('0x2c')](_0xb814('0x2d'),_0xc0ef66+'-'+_0x1c2625+'/'+_0x392222)['json'](_0x5755ea);}return null;};}function patchUpdates(_0x9008b2){return function(_0x37d24d){try{jsonpatch[_0xb814('0x2e')](_0x37d24d,_0x9008b2,!![]);}catch(_0x499f22){return BPromise[_0xb814('0x2f')](_0x499f22);}return _0x37d24d[_0xb814('0x30')]();};}function saveUpdates(_0x58c3ca,_0x338a28){return function(_0x526610){if(_0x526610){return _0x526610[_0xb814('0x31')](_0x58c3ca)['then'](function(_0x4cfc58){return _0x4cfc58;});}return null;};}function removeEntity(_0x419cd9,_0x4a4f27){return function(_0x2431e2){if(_0x2431e2){return _0x2431e2[_0xb814('0x32')]()[_0xb814('0x1b')](function(){_0x419cd9['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x26d3a9,_0x336e2b){return function(_0x523566){if(!_0x523566){_0x26d3a9[_0xb814('0x33')](0x194);}return _0x523566;};}function handleError(_0xe558d5,_0x692c72){_0x692c72=_0x692c72||0x1f4;return function(_0x217b7e){logger[_0xb814('0x22')](_0x217b7e[_0xb814('0x34')]);if(_0x217b7e[_0xb814('0x35')]){delete _0x217b7e['name'];}_0xe558d5[_0xb814('0x27')](_0x692c72)[_0xb814('0x36')](_0x217b7e);};}exports[_0xb814('0x37')]=function(_0x424e2b,_0x14100d){var _0x4ff31a={},_0x16ef82={},_0x57e6e6={'count':0x0,'rows':[]};var _0x43db67=db[_0xb814('0x38')][_0xb814('0x39')];_0x16ef82['model']=_[_0xb814('0x3a')](_0x43db67);var _0xbdb3e9={'dateStart':_0x424e2b['query'][_0xb814('0x3b')],'dateEnd':_0x424e2b[_0xb814('0x3c')][_0xb814('0x3d')]};delete _0x424e2b[_0xb814('0x3c')][_0xb814('0x3b')];delete _0x424e2b[_0xb814('0x3c')]['dateEnd'];_0x16ef82[_0xb814('0x3c')]=_['keys'](_0x424e2b[_0xb814('0x3c')]);_0x16ef82['filters']=_[_0xb814('0x3e')](_0x16ef82['model'],_0x16ef82[_0xb814('0x3c')]);_0x4ff31a[_0xb814('0x3f')]=_['intersection'](_0x16ef82['model'],qs['fields'](_0x424e2b['query'][_0xb814('0x40')]));_0x4ff31a[_0xb814('0x3f')]=_0x4ff31a[_0xb814('0x3f')][_0xb814('0x41')]?_0x4ff31a['attributes']:_0x16ef82['model'];if(!_0x424e2b[_0xb814('0x3c')]['hasOwnProperty'](_0xb814('0x42'))){_0x4ff31a[_0xb814('0x2b')]=qs[_0xb814('0x2b')](_0x424e2b[_0xb814('0x3c')][_0xb814('0x2b')]);_0x4ff31a[_0xb814('0x2a')]=qs[_0xb814('0x2a')](_0x424e2b[_0xb814('0x3c')][_0xb814('0x2a')]);}_0x4ff31a['order']=qs['sort'](_0x424e2b['query'][_0xb814('0x43')]);_0x4ff31a['where']=qs[_0xb814('0x44')](_['pick'](_0x424e2b[_0xb814('0x3c')],_0x16ef82[_0xb814('0x44')]));if(_0xbdb3e9[_0xb814('0x3b')]){if(_0xbdb3e9[_0xb814('0x3d')]){_0xbdb3e9['dateEnd']=moment(_0xbdb3e9[_0xb814('0x3d')])[_0xb814('0x45')](0x1,_0xb814('0x46'));}else{_0xbdb3e9[_0xb814('0x3d')]=moment(_0xbdb3e9[_0xb814('0x3b')])[_0xb814('0x45')](0x1,'day');}_[_0xb814('0x47')](_0x4ff31a[_0xb814('0x48')],{'createdAt':{'$gte':_0xbdb3e9[_0xb814('0x3b')],'$lte':_0xbdb3e9[_0xb814('0x3d')]}});}if(_0x424e2b[_0xb814('0x3c')][_0xb814('0x49')]){_0x4ff31a[_0xb814('0x48')]=_['merge'](_0x4ff31a['where'],{'$or':_[_0xb814('0x4a')](_0x4ff31a[_0xb814('0x3f')],function(_0x4c08d6){var _0x2bf906={};_0x2bf906[_0x4c08d6]={'$like':'%'+_0x424e2b[_0xb814('0x3c')][_0xb814('0x49')]+'%'};return _0x2bf906;})});}_0x4ff31a=_[_0xb814('0x47')]({},_0x4ff31a,_0x424e2b[_0xb814('0x4b')]);var _0x2eb9b6={'where':_0x4ff31a[_0xb814('0x48')]};return db[_0xb814('0x38')]['count'](_0x2eb9b6)[_0xb814('0x1b')](function(_0x17510c){_0x57e6e6['count']=_0x17510c;if(_0x424e2b[_0xb814('0x3c')]['includeAll']){_0x4ff31a[_0xb814('0x4c')]=[{'all':!![]}];}return db[_0xb814('0x38')][_0xb814('0x4d')](_0x4ff31a);})[_0xb814('0x1b')](function(_0x1d3833){_0x57e6e6[_0xb814('0x4e')]=_0x1d3833;return _0x57e6e6;})[_0xb814('0x1b')](respondWithFilteredResult(_0x14100d,_0x4ff31a))[_0xb814('0x26')](handleError(_0x14100d,null));};exports[_0xb814('0x4f')]=function(_0x2a422a,_0x5e6df7){var _0x4d4a7e={'raw':![],'where':{'id':_0x2a422a[_0xb814('0x50')]['id']}},_0x32eca6={};_0x32eca6[_0xb814('0x51')]=_[_0xb814('0x3a')](db[_0xb814('0x38')][_0xb814('0x39')]);_0x32eca6[_0xb814('0x3c')]=_['keys'](_0x2a422a[_0xb814('0x3c')]);_0x32eca6[_0xb814('0x44')]=_[_0xb814('0x3e')](_0x32eca6['model'],_0x32eca6[_0xb814('0x3c')]);_0x4d4a7e['attributes']=_[_0xb814('0x3e')](_0x32eca6['model'],qs[_0xb814('0x40')](_0x2a422a[_0xb814('0x3c')]['fields']));_0x4d4a7e[_0xb814('0x3f')]=_0x4d4a7e[_0xb814('0x3f')][_0xb814('0x41')]?_0x4d4a7e['attributes']:_0x32eca6[_0xb814('0x51')];if(_0x2a422a['query'][_0xb814('0x52')]){_0x4d4a7e[_0xb814('0x4c')]=[{'all':!![]}];}_0x4d4a7e=_['merge']({},_0x4d4a7e,_0x2a422a[_0xb814('0x4b')]);return db['DeskConfiguration']['find'](_0x4d4a7e)[_0xb814('0x1b')](handleEntityNotFound(_0x5e6df7,null))[_0xb814('0x1b')](respondWithResult(_0x5e6df7,null))[_0xb814('0x26')](handleError(_0x5e6df7,null));};exports['create']=function(_0x28bbab,_0x538b0f){return db[_0xb814('0x38')][_0xb814('0x53')](_0x28bbab['body'],{})[_0xb814('0x1b')](respondWithResult(_0x538b0f,0xc9))['catch'](handleError(_0x538b0f,null));};exports[_0xb814('0x31')]=function(_0x1656ed,_0xb2bd82){if(_0x1656ed[_0xb814('0x54')]['id']){delete _0x1656ed[_0xb814('0x54')]['id'];}return db[_0xb814('0x38')][_0xb814('0x55')]({'where':{'id':_0x1656ed[_0xb814('0x50')]['id']}})['then'](handleEntityNotFound(_0xb2bd82,null))[_0xb814('0x1b')](saveUpdates(_0x1656ed[_0xb814('0x54')],null))['then'](respondWithResult(_0xb2bd82,null))[_0xb814('0x26')](handleError(_0xb2bd82,null));};exports[_0xb814('0x32')]=function(_0x4d13db,_0x371000){return db['DeskConfiguration']['find']({'where':{'id':_0x4d13db[_0xb814('0x50')]['id']}})['then'](handleEntityNotFound(_0x371000,null))[_0xb814('0x1b')](removeEntity(_0x371000,null))[_0xb814('0x26')](handleError(_0x371000,null));};exports[_0xb814('0x56')]=function(_0x586957,_0x1a0ef4,_0x4df65c){var _0x2ef77d={};var _0x1e9196={};var _0x1236d4;var _0x176585;return db[_0xb814('0x38')][_0xb814('0x57')]({'where':{'id':_0x586957[_0xb814('0x50')]['id']}})[_0xb814('0x1b')](handleEntityNotFound(_0x1a0ef4,null))[_0xb814('0x1b')](function(_0x4d611d){if(_0x4d611d){_0x1236d4=_0x4d611d;_0x1e9196[_0xb814('0x51')]=_[_0xb814('0x3a')](db[_0xb814('0x58')][_0xb814('0x39')]);_0x1e9196[_0xb814('0x3c')]=_[_0xb814('0x3a')](_0x586957['query']);_0x1e9196[_0xb814('0x44')]=_['intersection'](_0x1e9196[_0xb814('0x51')],_0x1e9196[_0xb814('0x3c')]);_0x2ef77d[_0xb814('0x3f')]=_['intersection'](_0x1e9196[_0xb814('0x51')],qs['fields'](_0x586957[_0xb814('0x3c')]['fields']));_0x2ef77d[_0xb814('0x3f')]=_0x2ef77d[_0xb814('0x3f')][_0xb814('0x41')]?_0x2ef77d[_0xb814('0x3f')]:_0x1e9196[_0xb814('0x51')];_0x2ef77d[_0xb814('0x59')]=qs[_0xb814('0x43')](_0x586957['query'][_0xb814('0x43')]);_0x2ef77d['where']=qs[_0xb814('0x44')](_[_0xb814('0x5a')](_0x586957[_0xb814('0x3c')],_0x1e9196[_0xb814('0x44')]));if(_0x586957[_0xb814('0x3c')][_0xb814('0x49')]){_0x2ef77d['where']=_[_0xb814('0x47')](_0x2ef77d[_0xb814('0x48')],{'$or':_['map'](_0x2ef77d[_0xb814('0x3f')],function(_0x32a37a){var _0x263699={};_0x263699[_0x32a37a]={'$like':'%'+_0x586957[_0xb814('0x3c')][_0xb814('0x49')]+'%'};return _0x263699;})});}_0x2ef77d=_['merge']({},_0x2ef77d,_0x586957[_0xb814('0x4b')]);return _0x1236d4['getFields'](_0x2ef77d);}})[_0xb814('0x1b')](function(_0x16f8f2){if(_0x16f8f2){_0x176585=_0x16f8f2[_0xb814('0x41')];if(!_0x586957[_0xb814('0x3c')][_0xb814('0x5b')](_0xb814('0x42'))){_0x2ef77d['limit']=qs['limit'](_0x586957['query'][_0xb814('0x2b')]);_0x2ef77d['offset']=qs[_0xb814('0x2a')](_0x586957[_0xb814('0x3c')][_0xb814('0x2a')]);}return _0x1236d4['getFields'](_0x2ef77d);}})[_0xb814('0x1b')](function(_0x3e5ce8){if(_0x3e5ce8){return _0x3e5ce8?{'count':_0x176585,'rows':_0x3e5ce8}:null;}})[_0xb814('0x1b')](respondWithResult(_0x1a0ef4,null))['catch'](handleError(_0x1a0ef4,null));};exports[_0xb814('0x5c')]=function(_0x1bf0b7,_0x1f39c0,_0x3564e0){var _0x555be0={};var _0x5dedd7={};var _0x28eaf8;var _0x295488;return db[_0xb814('0x38')][_0xb814('0x57')]({'where':{'id':_0x1bf0b7[_0xb814('0x50')]['id']}})[_0xb814('0x1b')](handleEntityNotFound(_0x1f39c0,null))[_0xb814('0x1b')](function(_0xe47442){if(_0xe47442){_0x28eaf8=_0xe47442;_0x5dedd7[_0xb814('0x51')]=_[_0xb814('0x3a')](db[_0xb814('0x58')][_0xb814('0x39')]);_0x5dedd7[_0xb814('0x3c')]=_[_0xb814('0x3a')](_0x1bf0b7[_0xb814('0x3c')]);_0x5dedd7['filters']=_[_0xb814('0x3e')](_0x5dedd7[_0xb814('0x51')],_0x5dedd7[_0xb814('0x3c')]);_0x555be0[_0xb814('0x3f')]=_[_0xb814('0x3e')](_0x5dedd7[_0xb814('0x51')],qs['fields'](_0x1bf0b7[_0xb814('0x3c')]['fields']));_0x555be0[_0xb814('0x3f')]=_0x555be0[_0xb814('0x3f')][_0xb814('0x41')]?_0x555be0[_0xb814('0x3f')]:_0x5dedd7[_0xb814('0x51')];_0x555be0['order']=qs['sort'](_0x1bf0b7[_0xb814('0x3c')][_0xb814('0x43')]);_0x555be0[_0xb814('0x48')]=qs[_0xb814('0x44')](_['pick'](_0x1bf0b7[_0xb814('0x3c')],_0x5dedd7['filters']));if(_0x1bf0b7[_0xb814('0x3c')][_0xb814('0x49')]){_0x555be0['where']=_['merge'](_0x555be0[_0xb814('0x48')],{'$or':_['map'](_0x555be0[_0xb814('0x3f')],function(_0x163c2b){var _0x3c770d={};_0x3c770d[_0x163c2b]={'$like':'%'+_0x1bf0b7[_0xb814('0x3c')][_0xb814('0x49')]+'%'};return _0x3c770d;})});}_0x555be0=_[_0xb814('0x47')]({},_0x555be0,_0x1bf0b7[_0xb814('0x4b')]);return _0x28eaf8['getSubjects'](_0x555be0);}})[_0xb814('0x1b')](function(_0x54413d){if(_0x54413d){_0x295488=_0x54413d[_0xb814('0x41')];if(!_0x1bf0b7['query'][_0xb814('0x5b')](_0xb814('0x42'))){_0x555be0['limit']=qs[_0xb814('0x2b')](_0x1bf0b7['query'][_0xb814('0x2b')]);_0x555be0[_0xb814('0x2a')]=qs['offset'](_0x1bf0b7['query'][_0xb814('0x2a')]);}return _0x28eaf8[_0xb814('0x5c')](_0x555be0);}})[_0xb814('0x1b')](function(_0x6f5e6a){if(_0x6f5e6a){return _0x6f5e6a?{'count':_0x295488,'rows':_0x6f5e6a}:null;}})[_0xb814('0x1b')](respondWithResult(_0x1f39c0,null))[_0xb814('0x26')](handleError(_0x1f39c0,null));};exports[_0xb814('0x5d')]=function(_0x314600,_0x8cb107,_0x34f49c){var _0x53e705={};var _0x5b0fcd={};var _0x5bee4d;var _0x5470e4;return db['DeskConfiguration'][_0xb814('0x57')]({'where':{'id':_0x314600[_0xb814('0x50')]['id']}})[_0xb814('0x1b')](handleEntityNotFound(_0x8cb107,null))['then'](function(_0x121330){if(_0x121330){_0x5bee4d=_0x121330;_0x5b0fcd[_0xb814('0x51')]=_[_0xb814('0x3a')](db[_0xb814('0x58')][_0xb814('0x39')]);_0x5b0fcd[_0xb814('0x3c')]=_[_0xb814('0x3a')](_0x314600[_0xb814('0x3c')]);_0x5b0fcd['filters']=_[_0xb814('0x3e')](_0x5b0fcd[_0xb814('0x51')],_0x5b0fcd[_0xb814('0x3c')]);_0x53e705[_0xb814('0x3f')]=_['intersection'](_0x5b0fcd[_0xb814('0x51')],qs[_0xb814('0x40')](_0x314600[_0xb814('0x3c')][_0xb814('0x40')]));_0x53e705[_0xb814('0x3f')]=_0x53e705['attributes']['length']?_0x53e705[_0xb814('0x3f')]:_0x5b0fcd['model'];_0x53e705[_0xb814('0x59')]=qs[_0xb814('0x43')](_0x314600['query'][_0xb814('0x43')]);_0x53e705['where']=qs[_0xb814('0x44')](_['pick'](_0x314600[_0xb814('0x3c')],_0x5b0fcd[_0xb814('0x44')]));if(_0x314600[_0xb814('0x3c')][_0xb814('0x49')]){_0x53e705[_0xb814('0x48')]=_[_0xb814('0x47')](_0x53e705[_0xb814('0x48')],{'$or':_['map'](_0x53e705['attributes'],function(_0x21aa36){var _0x50ed93={};_0x50ed93[_0x21aa36]={'$like':'%'+_0x314600['query'][_0xb814('0x49')]+'%'};return _0x50ed93;})});}_0x53e705=_[_0xb814('0x47')]({},_0x53e705,_0x314600[_0xb814('0x4b')]);return _0x5bee4d['getDescriptions'](_0x53e705);}})[_0xb814('0x1b')](function(_0x5a25f2){if(_0x5a25f2){_0x5470e4=_0x5a25f2[_0xb814('0x41')];if(!_0x314600[_0xb814('0x3c')][_0xb814('0x5b')](_0xb814('0x42'))){_0x53e705['limit']=qs[_0xb814('0x2b')](_0x314600[_0xb814('0x3c')][_0xb814('0x2b')]);_0x53e705['offset']=qs[_0xb814('0x2a')](_0x314600[_0xb814('0x3c')][_0xb814('0x2a')]);}return _0x5bee4d['getDescriptions'](_0x53e705);}})[_0xb814('0x1b')](function(_0x2d0651){if(_0x2d0651){return _0x2d0651?{'count':_0x5470e4,'rows':_0x2d0651}:null;}})[_0xb814('0x1b')](respondWithResult(_0x8cb107,null))[_0xb814('0x26')](handleError(_0x8cb107,null));};exports[_0xb814('0x5e')]=function(_0x1ae8e8,_0x37a7ab,_0x472c38){var _0x37a8b1={};var _0x31d300={};var _0x52a6e3;var _0x2569a5;return db[_0xb814('0x38')]['findOne']({'where':{'id':_0x1ae8e8['params']['id']}})[_0xb814('0x1b')](handleEntityNotFound(_0x37a7ab,null))['then'](function(_0x320296){if(_0x320296){_0x52a6e3=_0x320296;_0x31d300[_0xb814('0x51')]=_[_0xb814('0x3a')](db[_0xb814('0x5f')][_0xb814('0x39')]);_0x31d300[_0xb814('0x3c')]=_[_0xb814('0x3a')](_0x1ae8e8['query']);_0x31d300['filters']=_[_0xb814('0x3e')](_0x31d300['model'],_0x31d300[_0xb814('0x3c')]);_0x37a8b1[_0xb814('0x3f')]=_[_0xb814('0x3e')](_0x31d300['model'],qs[_0xb814('0x40')](_0x1ae8e8[_0xb814('0x3c')][_0xb814('0x40')]));_0x37a8b1[_0xb814('0x3f')]=_0x37a8b1[_0xb814('0x3f')]['length']?_0x37a8b1[_0xb814('0x3f')]:_0x31d300[_0xb814('0x51')];_0x37a8b1['order']=qs[_0xb814('0x43')](_0x1ae8e8[_0xb814('0x3c')][_0xb814('0x43')]);_0x37a8b1['where']=qs[_0xb814('0x44')](_[_0xb814('0x5a')](_0x1ae8e8['query'],_0x31d300[_0xb814('0x44')]));if(_0x1ae8e8[_0xb814('0x3c')]['filter']){_0x37a8b1[_0xb814('0x48')]=_[_0xb814('0x47')](_0x37a8b1[_0xb814('0x48')],{'$or':_[_0xb814('0x4a')](_0x37a8b1[_0xb814('0x3f')],function(_0x2ee22e){var _0x40ae0b={};_0x40ae0b[_0x2ee22e]={'$like':'%'+_0x1ae8e8[_0xb814('0x3c')][_0xb814('0x49')]+'%'};return _0x40ae0b;})});}_0x37a8b1=_[_0xb814('0x47')]({},_0x37a8b1,_0x1ae8e8[_0xb814('0x4b')]);return _0x52a6e3[_0xb814('0x5e')](_0x37a8b1);}})['then'](function(_0x579deb){if(_0x579deb){_0x2569a5=_0x579deb[_0xb814('0x41')];if(!_0x1ae8e8['query']['hasOwnProperty'](_0xb814('0x42'))){_0x37a8b1['limit']=qs['limit'](_0x1ae8e8['query'][_0xb814('0x2b')]);_0x37a8b1[_0xb814('0x2a')]=qs[_0xb814('0x2a')](_0x1ae8e8['query'][_0xb814('0x2a')]);}return _0x52a6e3['getTags'](_0x37a8b1);}})[_0xb814('0x1b')](function(_0x2e6660){if(_0x2e6660){return _0x2e6660?{'count':_0x2569a5,'rows':_0x2e6660}:null;}})['then'](respondWithResult(_0x37a7ab,null))[_0xb814('0x26')](handleError(_0x37a7ab,null));};exports['setTags']=function(_0x2ac753,_0x2cfedd,_0x21d6e5){if(_0x2ac753[_0xb814('0x54')]['id']){delete _0x2ac753[_0xb814('0x54')]['id'];}return db[_0xb814('0x38')][_0xb814('0x57')]({'where':{'id':_0x2ac753[_0xb814('0x50')]['id']}})[_0xb814('0x1b')](handleEntityNotFound(_0x2cfedd,null))[_0xb814('0x1b')](function(_0x3df3e9){if(_0x3df3e9){return _0x3df3e9[_0xb814('0x60')](_0x2ac753[_0xb814('0x54')][_0xb814('0x61')]||[]);}return null;})[_0xb814('0x1b')](respondWithResult(_0x2cfedd,null))['catch'](handleError(_0x2cfedd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd4f=['bluebird','./intDeskConfiguration.attributes','exports','define','DeskConfiguration','int_desk_configurations','lodash','moment'];(function(_0x40b66c,_0x5c1d58){var _0x159671=function(_0x17a129){while(--_0x17a129){_0x40b66c['push'](_0x40b66c['shift']());}};_0x159671(++_0x5c1d58);}(_0xdd4f,0x1ce));var _0xfdd4=function(_0x427d1e,_0x309f83){_0x427d1e=_0x427d1e-0x0;var _0xc4337e=_0xdd4f[_0x427d1e];return _0xc4337e;};'use strict';var _=require(_0xfdd4('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xfdd4('0x1'));var BPromise=require(_0xfdd4('0x2'));var rp=require('request-promise');var attributes=require(_0xfdd4('0x3'));module[_0xfdd4('0x4')]=function(_0x6b2b0d,_0x554e44){return _0x6b2b0d[_0xfdd4('0x5')](_0xfdd4('0x6'),attributes,{'tableName':_0xfdd4('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd4a2=['lodash','api','bluebird','./intDeskConfiguration.attributes','define','DeskConfiguration','int_desk_configurations'];(function(_0x5d7406,_0x431518){var _0x5a3cc0=function(_0x2813ac){while(--_0x2813ac){_0x5d7406['push'](_0x5d7406['shift']());}};_0x5a3cc0(++_0x431518);}(_0xd4a2,0x173));var _0x2d4a=function(_0x31e2ea,_0x1ebfca){_0x31e2ea=_0x31e2ea-0x0;var _0x31f45f=_0xd4a2[_0x31e2ea];return _0x31f45f;};'use strict';var _=require(_0x2d4a('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x2d4a('0x1'));var moment=require('moment');var BPromise=require(_0x2d4a('0x2'));var rp=require('request-promise');var attributes=require(_0x2d4a('0x3'));module['exports']=function(_0x32af9e,_0x40d744){return _0x32af9e[_0x2d4a('0x4')](_0x2d4a('0x5'),attributes,{'tableName':_0x2d4a('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4eb=['result','catch','lodash','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','then','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0x52f4b8,_0x5eaed9){var _0x52c0f9=function(_0x4a5e95){while(--_0x4a5e95){_0x52f4b8['push'](_0x52f4b8['shift']());}};_0x52c0f9(++_0x5eaed9);}(_0xf4eb,0xec));var _0xbf4e=function(_0x4725a9,_0x434394){_0x4725a9=_0x4725a9-0x0;var _0x19b15e=_0xf4eb[_0x4725a9];return _0x19b15e;};'use strict';var _=require(_0xbf4e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0xbf4e('0x1'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xbf4e('0x2'));var config=require(_0xbf4e('0x3'));var jayson=require(_0xbf4e('0x4'));var client=jayson[_0xbf4e('0x5')][_0xbf4e('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x2fcfed,_0x15b99f,_0x540736){return new BPromise(function(_0x449d55,_0x5013c2){return client['request'](_0x2fcfed,_0x540736)[_0xbf4e('0x7')](function(_0x3761c1){logger[_0xbf4e('0x8')](_0xbf4e('0x9'),_0x15b99f,_0xbf4e('0xa'));logger[_0xbf4e('0xb')](_0xbf4e('0xc'),_0x15b99f,'request\x20sent',JSON['stringify'](_0x3761c1));if(_0x3761c1[_0xbf4e('0xd')]){if(_0x3761c1['error'][_0xbf4e('0xe')]===0x1f4){logger[_0xbf4e('0xd')]('DeskConfiguration,\x20%s,\x20%s',_0x15b99f,_0x3761c1[_0xbf4e('0xd')]['message']);return _0x5013c2(_0x3761c1['error'][_0xbf4e('0xf')]);}logger[_0xbf4e('0xd')](_0xbf4e('0x9'),_0x15b99f,_0x3761c1[_0xbf4e('0xd')][_0xbf4e('0xf')]);return _0x449d55(_0x3761c1[_0xbf4e('0xd')]['message']);}else{logger['info'](_0xbf4e('0x9'),_0x15b99f,_0xbf4e('0xa'));_0x449d55(_0x3761c1[_0xbf4e('0x10')]['message']);}})[_0xbf4e('0x11')](function(_0x2c292c){logger[_0xbf4e('0xd')](_0xbf4e('0x9'),_0x15b99f,_0x2c292c);_0x5013c2(_0x2c292c);});});}
\ No newline at end of file
+var _0xda19=['error','message','info','result','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify'];(function(_0xbc8acc,_0x346849){var _0x5e45b0=function(_0x51d6f7){while(--_0x51d6f7){_0xbc8acc['push'](_0xbc8acc['shift']());}};_0x5e45b0(++_0x346849);}(_0xda19,0xd5));var _0x9da1=function(_0x1e8f35,_0x3db390){_0x1e8f35=_0x1e8f35-0x0;var _0x446c13=_0xda19[_0x1e8f35];return _0x446c13;};'use strict';var _=require('lodash');var util=require(_0x9da1('0x0'));var moment=require(_0x9da1('0x1'));var BPromise=require('bluebird');var rs=require(_0x9da1('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9da1('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x9da1('0x4'))(_0x9da1('0x5'));var config=require(_0x9da1('0x6'));var jayson=require(_0x9da1('0x7'));var client=jayson[_0x9da1('0x8')][_0x9da1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x23e4f7,_0x2c3cdd,_0x1c24e6){return new BPromise(function(_0x5e2d18,_0x47df89){return client['request'](_0x23e4f7,_0x1c24e6)['then'](function(_0x417312){logger['info'](_0x9da1('0xa'),_0x2c3cdd,_0x9da1('0xb'));logger[_0x9da1('0xc')](_0x9da1('0xd'),_0x2c3cdd,_0x9da1('0xb'),JSON[_0x9da1('0xe')](_0x417312));if(_0x417312[_0x9da1('0xf')]){if(_0x417312['error']['code']===0x1f4){logger[_0x9da1('0xf')]('DeskConfiguration,\x20%s,\x20%s',_0x2c3cdd,_0x417312[_0x9da1('0xf')][_0x9da1('0x10')]);return _0x47df89(_0x417312[_0x9da1('0xf')][_0x9da1('0x10')]);}logger['error'](_0x9da1('0xa'),_0x2c3cdd,_0x417312['error']['message']);return _0x5e2d18(_0x417312[_0x9da1('0xf')]['message']);}else{logger[_0x9da1('0x11')](_0x9da1('0xa'),_0x2c3cdd,_0x9da1('0xb'));_0x5e2d18(_0x417312[_0x9da1('0x12')][_0x9da1('0x10')]);}})['catch'](function(_0x16f75a){logger[_0x9da1('0xf')](_0x9da1('0xa'),_0x2c3cdd,_0x16f75a);_0x47df89(_0x16f75a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8dbf=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskField.controller','get','isAuthenticated','post','put','update','/:id','destroy','exports'];(function(_0x175258,_0x107b1a){var _0x5eb911=function(_0x2fa44b){while(--_0x2fa44b){_0x175258['push'](_0x175258['shift']());}};_0x5eb911(++_0x107b1a);}(_0x8dbf,0x10e));var _0xf8db=function(_0x5eba16,_0x5d0f51){_0x5eba16=_0x5eba16-0x0;var _0x2a72b0=_0x8dbf[_0x5eba16];return _0x2a72b0;};'use strict';var multer=require(_0xf8db('0x0'));var util=require(_0xf8db('0x1'));var path=require(_0xf8db('0x2'));var timeout=require(_0xf8db('0x3'));var express=require(_0xf8db('0x4'));var router=express[_0xf8db('0x5')]();var auth=require(_0xf8db('0x6'));var interaction=require(_0xf8db('0x7'));var config=require(_0xf8db('0x8'));var controller=require(_0xf8db('0x9'));router[_0xf8db('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0xf8db('0xa')]('/:id',auth[_0xf8db('0xb')](),controller['show']);router[_0xf8db('0xc')]('/',auth[_0xf8db('0xb')](),controller['create']);router[_0xf8db('0xd')]('/:id',auth[_0xf8db('0xb')](),controller[_0xf8db('0xe')]);router['delete'](_0xf8db('0xf'),auth['isAuthenticated'](),controller[_0xf8db('0x10')]);module[_0xf8db('0x11')]=router;
\ No newline at end of file
+var _0x04b1=['isAuthenticated','index','get','show','create','update','delete','/:id','destroy','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./intDeskField.controller'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0x04b1,0x1cb));var _0x104b=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0x04b1[_0x37c22c];return _0x119d79;};'use strict';var multer=require(_0x104b('0x0'));var util=require(_0x104b('0x1'));var path=require(_0x104b('0x2'));var timeout=require(_0x104b('0x3'));var express=require(_0x104b('0x4'));var router=express[_0x104b('0x5')]();var auth=require(_0x104b('0x6'));var interaction=require(_0x104b('0x7'));var config=require('../../config/environment');var controller=require(_0x104b('0x8'));router['get']('/',auth[_0x104b('0x9')](),controller[_0x104b('0xa')]);router[_0x104b('0xb')]('/:id',auth[_0x104b('0x9')](),controller[_0x104b('0xc')]);router['post']('/',auth[_0x104b('0x9')](),controller[_0x104b('0xd')]);router['put']('/:id',auth[_0x104b('0x9')](),controller[_0x104b('0xe')]);router[_0x104b('0xf')](_0x104b('0x10'),auth[_0x104b('0x9')](),controller[_0x104b('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1be1=['STRING','variable','BOOLEAN','ENUM','string','customVariable','keyValue'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x1be1,0x192));var _0x11be=function(_0x2f4c53,_0x536c20){_0x2f4c53=_0x2f4c53-0x0;var _0x2cb739=_0x1be1[_0x2f4c53];return _0x2cb739;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0x11be('0x0')](_0x11be('0x1'),'variable',_0x11be('0x2'),_0x11be('0x3')),'defaultValue':_0x11be('0x1')},'content':{'type':Sequelize[_0x11be('0x4')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x11be('0x0')](_0x11be('0x1'),_0x11be('0x5'),'customVariable')},'keyContent':{'type':Sequelize[_0x11be('0x4')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x11be('0x4')]},'customField':{'type':Sequelize[_0x11be('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x11be('0x4')]}};
\ No newline at end of file
+var _0x41bb=['exports','string','customVariable','keyValue','STRING','ENUM','variable','BOOLEAN','sequelize'];(function(_0x5321d2,_0xe329aa){var _0x19d856=function(_0x141ada){while(--_0x141ada){_0x5321d2['push'](_0x5321d2['shift']());}};_0x19d856(++_0xe329aa);}(_0x41bb,0xc5));var _0xb41b=function(_0x32413a,_0x2fbe54){_0x32413a=_0x32413a-0x0;var _0x1439e0=_0x41bb[_0x32413a];return _0x1439e0;};'use strict';var Sequelize=require(_0xb41b('0x0'));module[_0xb41b('0x1')]={'type':{'type':Sequelize['ENUM'](_0xb41b('0x2'),'variable',_0xb41b('0x3'),_0xb41b('0x4')),'defaultValue':_0xb41b('0x2')},'content':{'type':Sequelize[_0xb41b('0x5')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xb41b('0x6')](_0xb41b('0x2'),_0xb41b('0x7'),'customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xb41b('0x5')]},'customField':{'type':Sequelize[_0xb41b('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba42=['html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','squel','jsforce','to-csv','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','Content-Range','update','then','destroy','stack','name','send','DeskField','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','add','day','merge','where','map','include','findAll','catch','show','params','includeAll','options','find','create','body'];(function(_0x11a84d,_0x4dbd0e){var _0x1e6b48=function(_0x3d9e64){while(--_0x3d9e64){_0x11a84d['push'](_0x11a84d['shift']());}};_0x1e6b48(++_0x4dbd0e);}(_0xba42,0x100));var _0x2ba4=function(_0x3457b4,_0x4cd8f9){_0x3457b4=_0x3457b4-0x0;var _0xaa8fa9=_0xba42[_0x3457b4];return _0xaa8fa9;};'use strict';var pdf=require(_0x2ba4('0x0'));var emlformat=require(_0x2ba4('0x1'));var rimraf=require(_0x2ba4('0x2'));var zipdir=require(_0x2ba4('0x3'));var jsonpatch=require(_0x2ba4('0x4'));var rp=require(_0x2ba4('0x5'));var moment=require(_0x2ba4('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x2ba4('0x7'));var util=require(_0x2ba4('0x8'));var path=require(_0x2ba4('0x9'));var sox=require(_0x2ba4('0xa'));var csv=require('to-csv');var ejs=require(_0x2ba4('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x2ba4('0xc'));var crypto=require('crypto');var jsforce=require(_0x2ba4('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x2ba4('0xe'));var querystring=require('querystring');var Papa=require(_0x2ba4('0xf'));var qs=require(_0x2ba4('0x10'));var logger=require('../../config/logger')(_0x2ba4('0x11'));var utils=require(_0x2ba4('0x12'));var config=require(_0x2ba4('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2ebb67,_0x5c48ec){_0x5c48ec=_0x5c48ec||0xcc;return function(_0x4b862e){if(_0x4b862e){return _0x2ebb67[_0x2ba4('0x14')](_0x5c48ec);}return _0x2ebb67[_0x2ba4('0x15')](_0x5c48ec)[_0x2ba4('0x16')]();};}function respondWithResult(_0x4bcd95,_0x4fa204){_0x4fa204=_0x4fa204||0xc8;return function(_0x14ea5a){if(_0x14ea5a){return _0x4bcd95['status'](_0x4fa204)[_0x2ba4('0x17')](_0x14ea5a);}};}function respondWithFilteredResult(_0xaa4203,_0x2f2edf){return function(_0x5d4ddb){if(_0x5d4ddb){var _0x2ca839=_0x5d4ddb[_0x2ba4('0x18')],_0x2eb93f=_0x2f2edf['offset'],_0x484561=_0x2f2edf[_0x2ba4('0x19')]+_0x2f2edf[_0x2ba4('0x1a')],_0x12944d;if(_0x484561>=_0x2ca839){_0x484561=_0x2ca839;_0x12944d=0xc8;}else{_0x12944d=0xce;}_0xaa4203['status'](_0x12944d);return _0xaa4203['set'](_0x2ba4('0x1b'),_0x2eb93f+'-'+_0x484561+'/'+_0x2ca839)[_0x2ba4('0x17')](_0x5d4ddb);}return null;};}function patchUpdates(_0xba2e8c){return function(_0x2ac401){try{jsonpatch['apply'](_0x2ac401,_0xba2e8c,!![]);}catch(_0x5646e8){return BPromise['reject'](_0x5646e8);}return _0x2ac401['save']();};}function saveUpdates(_0x18ba15,_0x28e432){return function(_0x3bf59e){if(_0x3bf59e){return _0x3bf59e[_0x2ba4('0x1c')](_0x18ba15)[_0x2ba4('0x1d')](function(_0xd2d4c){return _0xd2d4c;});}return null;};}function removeEntity(_0x1f0f84,_0x31242f){return function(_0x4d066d){if(_0x4d066d){return _0x4d066d[_0x2ba4('0x1e')]()[_0x2ba4('0x1d')](function(){_0x1f0f84['status'](0xcc)[_0x2ba4('0x16')]();});}};}function handleEntityNotFound(_0x21f9cd,_0x2fa6c9){return function(_0x28c37a){if(!_0x28c37a){_0x21f9cd[_0x2ba4('0x14')](0x194);}return _0x28c37a;};}function handleError(_0x44d127,_0x5918fe){_0x5918fe=_0x5918fe||0x1f4;return function(_0x1e1ccc){logger['error'](_0x1e1ccc[_0x2ba4('0x1f')]);if(_0x1e1ccc[_0x2ba4('0x20')]){delete _0x1e1ccc['name'];}_0x44d127[_0x2ba4('0x15')](_0x5918fe)[_0x2ba4('0x21')](_0x1e1ccc);};}exports['index']=function(_0x532d69,_0x43d404){var _0x3cb543={},_0x2ad2bf={},_0x252cf9={'count':0x0,'rows':[]};var _0x5665d0=db[_0x2ba4('0x22')][_0x2ba4('0x23')];_0x2ad2bf[_0x2ba4('0x24')]=_[_0x2ba4('0x25')](_0x5665d0);var _0x1ead6d={'dateStart':_0x532d69[_0x2ba4('0x26')][_0x2ba4('0x27')],'dateEnd':_0x532d69[_0x2ba4('0x26')][_0x2ba4('0x28')]};delete _0x532d69[_0x2ba4('0x26')]['dateStart'];delete _0x532d69[_0x2ba4('0x26')][_0x2ba4('0x28')];_0x2ad2bf['query']=_[_0x2ba4('0x25')](_0x532d69[_0x2ba4('0x26')]);_0x2ad2bf[_0x2ba4('0x29')]=_[_0x2ba4('0x2a')](_0x2ad2bf[_0x2ba4('0x24')],_0x2ad2bf[_0x2ba4('0x26')]);_0x3cb543[_0x2ba4('0x2b')]=_[_0x2ba4('0x2a')](_0x2ad2bf[_0x2ba4('0x24')],qs[_0x2ba4('0x2c')](_0x532d69['query']['fields']));_0x3cb543['attributes']=_0x3cb543[_0x2ba4('0x2b')][_0x2ba4('0x2d')]?_0x3cb543[_0x2ba4('0x2b')]:_0x2ad2bf[_0x2ba4('0x24')];if(!_0x532d69[_0x2ba4('0x26')][_0x2ba4('0x2e')](_0x2ba4('0x2f'))){_0x3cb543[_0x2ba4('0x1a')]=qs[_0x2ba4('0x1a')](_0x532d69[_0x2ba4('0x26')]['limit']);_0x3cb543[_0x2ba4('0x19')]=qs[_0x2ba4('0x19')](_0x532d69[_0x2ba4('0x26')][_0x2ba4('0x19')]);}_0x3cb543['order']=qs['sort'](_0x532d69[_0x2ba4('0x26')][_0x2ba4('0x30')]);_0x3cb543['where']=qs['filters'](_['pick'](_0x532d69[_0x2ba4('0x26')],_0x2ad2bf[_0x2ba4('0x29')]));if(_0x1ead6d[_0x2ba4('0x27')]){if(_0x1ead6d[_0x2ba4('0x28')]){_0x1ead6d[_0x2ba4('0x28')]=moment(_0x1ead6d[_0x2ba4('0x28')])[_0x2ba4('0x31')](0x1,_0x2ba4('0x32'));}else{_0x1ead6d[_0x2ba4('0x28')]=moment(_0x1ead6d[_0x2ba4('0x27')])[_0x2ba4('0x31')](0x1,_0x2ba4('0x32'));}_[_0x2ba4('0x33')](_0x3cb543[_0x2ba4('0x34')],{'createdAt':{'$gte':_0x1ead6d[_0x2ba4('0x27')],'$lte':_0x1ead6d[_0x2ba4('0x28')]}});}if(_0x532d69[_0x2ba4('0x26')]['filter']){_0x3cb543[_0x2ba4('0x34')]=_[_0x2ba4('0x33')](_0x3cb543['where'],{'$or':_[_0x2ba4('0x35')](_0x3cb543[_0x2ba4('0x2b')],function(_0x21501f){var _0x25980b={};_0x25980b[_0x21501f]={'$like':'%'+_0x532d69[_0x2ba4('0x26')]['filter']+'%'};return _0x25980b;})});}_0x3cb543=_[_0x2ba4('0x33')]({},_0x3cb543,_0x532d69['options']);var _0x326094={'where':_0x3cb543[_0x2ba4('0x34')]};return db[_0x2ba4('0x22')][_0x2ba4('0x18')](_0x326094)['then'](function(_0x5a4780){_0x252cf9[_0x2ba4('0x18')]=_0x5a4780;if(_0x532d69[_0x2ba4('0x26')]['includeAll']){_0x3cb543[_0x2ba4('0x36')]=[{'all':!![]}];}return db[_0x2ba4('0x22')][_0x2ba4('0x37')](_0x3cb543);})[_0x2ba4('0x1d')](function(_0x570145){_0x252cf9['rows']=_0x570145;return _0x252cf9;})[_0x2ba4('0x1d')](respondWithFilteredResult(_0x43d404,_0x3cb543))[_0x2ba4('0x38')](handleError(_0x43d404,null));};exports[_0x2ba4('0x39')]=function(_0x14bffc,_0x52750f){var _0x2bb799={'raw':!![],'where':{'id':_0x14bffc[_0x2ba4('0x3a')]['id']}},_0x518c6b={};_0x518c6b[_0x2ba4('0x24')]=_['keys'](db[_0x2ba4('0x22')][_0x2ba4('0x23')]);_0x518c6b[_0x2ba4('0x26')]=_['keys'](_0x14bffc[_0x2ba4('0x26')]);_0x518c6b['filters']=_[_0x2ba4('0x2a')](_0x518c6b[_0x2ba4('0x24')],_0x518c6b[_0x2ba4('0x26')]);_0x2bb799['attributes']=_[_0x2ba4('0x2a')](_0x518c6b[_0x2ba4('0x24')],qs['fields'](_0x14bffc[_0x2ba4('0x26')]['fields']));_0x2bb799[_0x2ba4('0x2b')]=_0x2bb799[_0x2ba4('0x2b')][_0x2ba4('0x2d')]?_0x2bb799[_0x2ba4('0x2b')]:_0x518c6b[_0x2ba4('0x24')];if(_0x14bffc[_0x2ba4('0x26')][_0x2ba4('0x3b')]){_0x2bb799[_0x2ba4('0x36')]=[{'all':!![]}];}_0x2bb799=_['merge']({},_0x2bb799,_0x14bffc[_0x2ba4('0x3c')]);return db[_0x2ba4('0x22')][_0x2ba4('0x3d')](_0x2bb799)[_0x2ba4('0x1d')](handleEntityNotFound(_0x52750f,null))[_0x2ba4('0x1d')](respondWithResult(_0x52750f,null))[_0x2ba4('0x38')](handleError(_0x52750f,null));};exports[_0x2ba4('0x3e')]=function(_0x30ae58,_0x3cb4a5){return db[_0x2ba4('0x22')][_0x2ba4('0x3e')](_0x30ae58[_0x2ba4('0x3f')],{})['then'](respondWithResult(_0x3cb4a5,0xc9))['catch'](handleError(_0x3cb4a5,null));};exports['update']=function(_0x43e9b4,_0x174f6d){if(_0x43e9b4[_0x2ba4('0x3f')]['id']){delete _0x43e9b4[_0x2ba4('0x3f')]['id'];}return db[_0x2ba4('0x22')]['find']({'where':{'id':_0x43e9b4[_0x2ba4('0x3a')]['id']}})['then'](handleEntityNotFound(_0x174f6d,null))[_0x2ba4('0x1d')](saveUpdates(_0x43e9b4[_0x2ba4('0x3f')],null))['then'](respondWithResult(_0x174f6d,null))[_0x2ba4('0x38')](handleError(_0x174f6d,null));};exports[_0x2ba4('0x1e')]=function(_0x1835af,_0x3114db){return db['DeskField'][_0x2ba4('0x3d')]({'where':{'id':_0x1835af[_0x2ba4('0x3a')]['id']}})[_0x2ba4('0x1d')](handleEntityNotFound(_0x3114db,null))[_0x2ba4('0x1d')](removeEntity(_0x3114db,null))['catch'](handleError(_0x3114db,null));};
\ No newline at end of file
+var _0x887b=['create','body','update','find','params','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','lodash','squel','desk.js','to-csv','../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','end','status','count','offset','limit','json','apply','reject','save','then','stack','name','send','DeskField','model','keys','query','dateStart','dateEnd','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','day','add','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','rawAttributes'];(function(_0x39556c,_0x2270d9){var _0x41bcbe=function(_0x577a48){while(--_0x577a48){_0x39556c['push'](_0x39556c['shift']());}};_0x41bcbe(++_0x2270d9);}(_0x887b,0x185));var _0xb887=function(_0x1771d3,_0x556902){_0x1771d3=_0x1771d3-0x0;var _0x286e9e=_0x887b[_0x1771d3];return _0x286e9e;};'use strict';var pdf=require(_0xb887('0x0'));var emlformat=require(_0xb887('0x1'));var rimraf=require(_0xb887('0x2'));var zipdir=require(_0xb887('0x3'));var jsonpatch=require(_0xb887('0x4'));var rp=require(_0xb887('0x5'));var moment=require(_0xb887('0x6'));var BPromise=require(_0xb887('0x7'));var Mustache=require(_0xb887('0x8'));var util=require('util');var path=require(_0xb887('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xb887('0xa'));var squel=require(_0xb887('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb887('0xc'));var toCsv=require(_0xb887('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var qs=require(_0xb887('0xe'));var logger=require(_0xb887('0xf'))('api');var utils=require(_0xb887('0x10'));var config=require('../../config/environment');var db=require(_0xb887('0x11'))['db'];function respondWithStatusCode(_0x3e49ae,_0xa5737d){_0xa5737d=_0xa5737d||0xcc;return function(_0x48c292){if(_0x48c292){return _0x3e49ae['sendStatus'](_0xa5737d);}return _0x3e49ae['status'](_0xa5737d)[_0xb887('0x12')]();};}function respondWithResult(_0xa6d17b,_0x272541){_0x272541=_0x272541||0xc8;return function(_0x160c5e){if(_0x160c5e){return _0xa6d17b[_0xb887('0x13')](_0x272541)['json'](_0x160c5e);}};}function respondWithFilteredResult(_0x387367,_0xae7291){return function(_0x28bda6){if(_0x28bda6){var _0x34174a=_0x28bda6[_0xb887('0x14')],_0x7bac36=_0xae7291[_0xb887('0x15')],_0x1b193c=_0xae7291[_0xb887('0x15')]+_0xae7291[_0xb887('0x16')],_0x2008e4;if(_0x1b193c>=_0x34174a){_0x1b193c=_0x34174a;_0x2008e4=0xc8;}else{_0x2008e4=0xce;}_0x387367[_0xb887('0x13')](_0x2008e4);return _0x387367['set']('Content-Range',_0x7bac36+'-'+_0x1b193c+'/'+_0x34174a)[_0xb887('0x17')](_0x28bda6);}return null;};}function patchUpdates(_0x33b7e0){return function(_0x4aa052){try{jsonpatch[_0xb887('0x18')](_0x4aa052,_0x33b7e0,!![]);}catch(_0xde13de){return BPromise[_0xb887('0x19')](_0xde13de);}return _0x4aa052[_0xb887('0x1a')]();};}function saveUpdates(_0x25e5bc,_0x4a4c31){return function(_0x2b1943){if(_0x2b1943){return _0x2b1943['update'](_0x25e5bc)['then'](function(_0x68ef0a){return _0x68ef0a;});}return null;};}function removeEntity(_0x1ea1a0,_0x42b1e4){return function(_0x5f3791){if(_0x5f3791){return _0x5f3791['destroy']()[_0xb887('0x1b')](function(){_0x1ea1a0['status'](0xcc)[_0xb887('0x12')]();});}};}function handleEntityNotFound(_0x35b4b6,_0x35c3e1){return function(_0x246669){if(!_0x246669){_0x35b4b6['sendStatus'](0x194);}return _0x246669;};}function handleError(_0x17dd2f,_0x4653c7){_0x4653c7=_0x4653c7||0x1f4;return function(_0x3d815f){logger['error'](_0x3d815f[_0xb887('0x1c')]);if(_0x3d815f['name']){delete _0x3d815f[_0xb887('0x1d')];}_0x17dd2f[_0xb887('0x13')](_0x4653c7)[_0xb887('0x1e')](_0x3d815f);};}exports['index']=function(_0x568e6f,_0x2fb6b7){var _0x1496cd={},_0x468b3f={},_0x33113c={'count':0x0,'rows':[]};var _0x1300cf=db[_0xb887('0x1f')]['rawAttributes'];_0x468b3f[_0xb887('0x20')]=_[_0xb887('0x21')](_0x1300cf);var _0x113930={'dateStart':_0x568e6f[_0xb887('0x22')]['dateStart'],'dateEnd':_0x568e6f[_0xb887('0x22')]['dateEnd']};delete _0x568e6f[_0xb887('0x22')][_0xb887('0x23')];delete _0x568e6f[_0xb887('0x22')][_0xb887('0x24')];_0x468b3f['query']=_[_0xb887('0x21')](_0x568e6f[_0xb887('0x22')]);_0x468b3f['filters']=_[_0xb887('0x25')](_0x468b3f[_0xb887('0x20')],_0x468b3f[_0xb887('0x22')]);_0x1496cd['attributes']=_[_0xb887('0x25')](_0x468b3f['model'],qs[_0xb887('0x26')](_0x568e6f['query'][_0xb887('0x26')]));_0x1496cd[_0xb887('0x27')]=_0x1496cd[_0xb887('0x27')][_0xb887('0x28')]?_0x1496cd['attributes']:_0x468b3f[_0xb887('0x20')];if(!_0x568e6f[_0xb887('0x22')][_0xb887('0x29')](_0xb887('0x2a'))){_0x1496cd['limit']=qs[_0xb887('0x16')](_0x568e6f[_0xb887('0x22')][_0xb887('0x16')]);_0x1496cd[_0xb887('0x15')]=qs[_0xb887('0x15')](_0x568e6f[_0xb887('0x22')][_0xb887('0x15')]);}_0x1496cd['order']=qs[_0xb887('0x2b')](_0x568e6f[_0xb887('0x22')]['sort']);_0x1496cd[_0xb887('0x2c')]=qs[_0xb887('0x2d')](_['pick'](_0x568e6f[_0xb887('0x22')],_0x468b3f[_0xb887('0x2d')]));if(_0x113930[_0xb887('0x23')]){if(_0x113930['dateEnd']){_0x113930['dateEnd']=moment(_0x113930['dateEnd'])['add'](0x1,_0xb887('0x2e'));}else{_0x113930[_0xb887('0x24')]=moment(_0x113930['dateStart'])[_0xb887('0x2f')](0x1,_0xb887('0x2e'));}_[_0xb887('0x30')](_0x1496cd['where'],{'createdAt':{'$gte':_0x113930[_0xb887('0x23')],'$lte':_0x113930[_0xb887('0x24')]}});}if(_0x568e6f[_0xb887('0x22')][_0xb887('0x31')]){_0x1496cd[_0xb887('0x2c')]=_[_0xb887('0x30')](_0x1496cd[_0xb887('0x2c')],{'$or':_[_0xb887('0x32')](_0x1496cd[_0xb887('0x27')],function(_0x1e8f7b){var _0x473bf9={};_0x473bf9[_0x1e8f7b]={'$like':'%'+_0x568e6f[_0xb887('0x22')]['filter']+'%'};return _0x473bf9;})});}_0x1496cd=_['merge']({},_0x1496cd,_0x568e6f[_0xb887('0x33')]);var _0x252a19={'where':_0x1496cd[_0xb887('0x2c')]};return db[_0xb887('0x1f')][_0xb887('0x14')](_0x252a19)[_0xb887('0x1b')](function(_0x31cfcb){_0x33113c['count']=_0x31cfcb;if(_0x568e6f['query'][_0xb887('0x34')]){_0x1496cd[_0xb887('0x35')]=[{'all':!![]}];}return db[_0xb887('0x1f')][_0xb887('0x36')](_0x1496cd);})['then'](function(_0x481b11){_0x33113c[_0xb887('0x37')]=_0x481b11;return _0x33113c;})[_0xb887('0x1b')](respondWithFilteredResult(_0x2fb6b7,_0x1496cd))[_0xb887('0x38')](handleError(_0x2fb6b7,null));};exports[_0xb887('0x39')]=function(_0x39b6c2,_0x32dd31){var _0x3d22d6={'raw':!![],'where':{'id':_0x39b6c2['params']['id']}},_0x43c97c={};_0x43c97c[_0xb887('0x20')]=_['keys'](db[_0xb887('0x1f')][_0xb887('0x3a')]);_0x43c97c['query']=_['keys'](_0x39b6c2[_0xb887('0x22')]);_0x43c97c[_0xb887('0x2d')]=_[_0xb887('0x25')](_0x43c97c[_0xb887('0x20')],_0x43c97c[_0xb887('0x22')]);_0x3d22d6[_0xb887('0x27')]=_[_0xb887('0x25')](_0x43c97c[_0xb887('0x20')],qs[_0xb887('0x26')](_0x39b6c2[_0xb887('0x22')][_0xb887('0x26')]));_0x3d22d6['attributes']=_0x3d22d6[_0xb887('0x27')]['length']?_0x3d22d6['attributes']:_0x43c97c[_0xb887('0x20')];if(_0x39b6c2[_0xb887('0x22')][_0xb887('0x34')]){_0x3d22d6[_0xb887('0x35')]=[{'all':!![]}];}_0x3d22d6=_[_0xb887('0x30')]({},_0x3d22d6,_0x39b6c2[_0xb887('0x33')]);return db['DeskField']['find'](_0x3d22d6)['then'](handleEntityNotFound(_0x32dd31,null))[_0xb887('0x1b')](respondWithResult(_0x32dd31,null))[_0xb887('0x38')](handleError(_0x32dd31,null));};exports[_0xb887('0x3b')]=function(_0x712076,_0x5c5392){return db['DeskField'][_0xb887('0x3b')](_0x712076[_0xb887('0x3c')],{})[_0xb887('0x1b')](respondWithResult(_0x5c5392,0xc9))[_0xb887('0x38')](handleError(_0x5c5392,null));};exports[_0xb887('0x3d')]=function(_0x58b1c3,_0x4310f2){if(_0x58b1c3[_0xb887('0x3c')]['id']){delete _0x58b1c3[_0xb887('0x3c')]['id'];}return db[_0xb887('0x1f')][_0xb887('0x3e')]({'where':{'id':_0x58b1c3[_0xb887('0x3f')]['id']}})[_0xb887('0x1b')](handleEntityNotFound(_0x4310f2,null))['then'](saveUpdates(_0x58b1c3[_0xb887('0x3c')],null))['then'](respondWithResult(_0x4310f2,null))[_0xb887('0x38')](handleError(_0x4310f2,null));};exports['destroy']=function(_0x10239d,_0x139178){return db['DeskField']['find']({'where':{'id':_0x10239d[_0xb887('0x3f')]['id']}})[_0xb887('0x1b')](handleEntityNotFound(_0x139178,null))[_0xb887('0x1b')](removeEntity(_0x139178,null))['catch'](handleError(_0x139178,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['../../config/logger','moment','request-promise','./intDeskField.attributes','lodash','util'];(function(_0x191093,_0x183bc9){var _0x17bdd2=function(_0x5cf7ed){while(--_0x5cf7ed){_0x191093['push'](_0x191093['shift']());}};_0x17bdd2(++_0x183bc9);}(_0x00bb,0x1d8));var _0xb00b=function(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0x00bb[_0x5447fd];return _0x15b28a;};'use strict';var _=require(_0xb00b('0x0'));var util=require(_0xb00b('0x1'));var logger=require(_0xb00b('0x2'))('api');var moment=require(_0xb00b('0x3'));var BPromise=require('bluebird');var rp=require(_0xb00b('0x4'));var attributes=require(_0xb00b('0x5'));module['exports']=function(_0x14b5d0,_0x2dbd25){return _0x14b5d0['define']('DeskField',attributes,{'tableName':'int_desk_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4c4e=['request-promise','./intDeskField.attributes','exports','DeskField','int_desk_fields','lodash','../../config/logger','api','moment'];(function(_0xc98354,_0x3bf67b){var _0x424479=function(_0x2604c7){while(--_0x2604c7){_0xc98354['push'](_0xc98354['shift']());}};_0x424479(++_0x3bf67b);}(_0x4c4e,0x152));var _0xe4c4=function(_0x18c39b,_0x45ebc4){_0x18c39b=_0x18c39b-0x0;var _0x325457=_0x4c4e[_0x18c39b];return _0x325457;};'use strict';var _=require(_0xe4c4('0x0'));var util=require('util');var logger=require(_0xe4c4('0x1'))(_0xe4c4('0x2'));var moment=require(_0xe4c4('0x3'));var BPromise=require('bluebird');var rp=require(_0xe4c4('0x4'));var attributes=require(_0xe4c4('0x5'));module[_0xe4c4('0x6')]=function(_0x4cd652,_0x2d3bb7){return _0x4cd652['define'](_0xe4c4('0x7'),attributes,{'tableName':_0xe4c4('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa798=['request','info','DeskField,\x20%s,\x20%s','request\x20sent','DeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','http'];(function(_0x2ed8f3,_0x4aa12f){var _0x525a55=function(_0x4cfb58){while(--_0x4cfb58){_0x2ed8f3['push'](_0x2ed8f3['shift']());}};_0x525a55(++_0x4aa12f);}(_0xa798,0x1dd));var _0x8a79=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0xa798[_0x4c7fb5];return _0x2e10ac;};'use strict';var _=require('lodash');var util=require(_0x8a79('0x0'));var moment=require(_0x8a79('0x1'));var BPromise=require(_0x8a79('0x2'));var rs=require(_0x8a79('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x8a79('0x4'));var logger=require(_0x8a79('0x5'))(_0x8a79('0x6'));var config=require('../../config/environment');var jayson=require(_0x8a79('0x7'));var client=jayson['client'][_0x8a79('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x29f981,_0x94769a,_0x353006){return new BPromise(function(_0x3f842c,_0x2f4472){return client[_0x8a79('0x9')](_0x29f981,_0x353006)['then'](function(_0x5da7b0){logger[_0x8a79('0xa')](_0x8a79('0xb'),_0x94769a,_0x8a79('0xc'));logger['debug'](_0x8a79('0xd'),_0x94769a,'request\x20sent',JSON[_0x8a79('0xe')](_0x5da7b0));if(_0x5da7b0['error']){if(_0x5da7b0[_0x8a79('0xf')][_0x8a79('0x10')]===0x1f4){logger[_0x8a79('0xf')](_0x8a79('0xb'),_0x94769a,_0x5da7b0[_0x8a79('0xf')][_0x8a79('0x11')]);return _0x2f4472(_0x5da7b0[_0x8a79('0xf')][_0x8a79('0x11')]);}logger[_0x8a79('0xf')](_0x8a79('0xb'),_0x94769a,_0x5da7b0[_0x8a79('0xf')][_0x8a79('0x11')]);return _0x3f842c(_0x5da7b0[_0x8a79('0xf')][_0x8a79('0x11')]);}else{logger[_0x8a79('0xa')](_0x8a79('0xb'),_0x94769a,_0x8a79('0xc'));_0x3f842c(_0x5da7b0['result'][_0x8a79('0x11')]);}})['catch'](function(_0x3f3f0a){logger[_0x8a79('0xf')](_0x8a79('0xb'),_0x94769a,_0x3f3f0a);_0x2f4472(_0x3f3f0a);});});}
\ No newline at end of file
+var _0x17ba=['code','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','DeskField,\x20%s,\x20%s','request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x207dd4,_0x23b383){var _0xabcb7c=function(_0xeb4988){while(--_0xeb4988){_0x207dd4['push'](_0x207dd4['shift']());}};_0xabcb7c(++_0x23b383);}(_0x17ba,0xab));var _0xa17b=function(_0x1550f8,_0x26d772){_0x1550f8=_0x1550f8-0x0;var _0x4070d7=_0x17ba[_0x1550f8];return _0x4070d7;};'use strict';var _=require(_0xa17b('0x0'));var util=require(_0xa17b('0x1'));var moment=require('moment');var BPromise=require(_0xa17b('0x2'));var rs=require(_0xa17b('0x3'));var fs=require('fs');var Redis=require(_0xa17b('0x4'));var db=require(_0xa17b('0x5'))['db'];var utils=require(_0xa17b('0x6'));var logger=require(_0xa17b('0x7'))(_0xa17b('0x8'));var config=require(_0xa17b('0x9'));var jayson=require(_0xa17b('0xa'));var client=jayson[_0xa17b('0xb')][_0xa17b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2e3d43,_0x1957be,_0x57f9cd){return new BPromise(function(_0x2ca4d3,_0x17d1d2){return client[_0xa17b('0xd')](_0x2e3d43,_0x57f9cd)[_0xa17b('0xe')](function(_0x15bdfc){logger['info'](_0xa17b('0xf'),_0x1957be,_0xa17b('0x10'));logger[_0xa17b('0x11')](_0xa17b('0x12'),_0x1957be,_0xa17b('0x10'),JSON[_0xa17b('0x13')](_0x15bdfc));if(_0x15bdfc[_0xa17b('0x14')]){if(_0x15bdfc['error'][_0xa17b('0x15')]===0x1f4){logger[_0xa17b('0x14')](_0xa17b('0xf'),_0x1957be,_0x15bdfc['error'][_0xa17b('0x16')]);return _0x17d1d2(_0x15bdfc[_0xa17b('0x14')][_0xa17b('0x16')]);}logger[_0xa17b('0x14')]('DeskField,\x20%s,\x20%s',_0x1957be,_0x15bdfc[_0xa17b('0x14')]['message']);return _0x2ca4d3(_0x15bdfc[_0xa17b('0x14')][_0xa17b('0x16')]);}else{logger['info'](_0xa17b('0xf'),_0x1957be,_0xa17b('0x10'));_0x2ca4d3(_0x15bdfc[_0xa17b('0x17')][_0xa17b('0x16')]);}})['catch'](function(_0x98a295){logger['error']('DeskField,\x20%s,\x20%s',_0x1957be,_0x98a295);_0x17d1d2(_0x98a295);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a74=['/:id','update','delete','exports','multer','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','isAuthenticated','index','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration'];(function(_0x2b0d22,_0x5a095e){var _0xfd5a37=function(_0x2122f3){while(--_0x2122f3){_0x2b0d22['push'](_0x2b0d22['shift']());}};_0xfd5a37(++_0x5a095e);}(_0x2a74,0x1a6));var _0x42a7=function(_0x13594e,_0x6f0ed0){_0x13594e=_0x13594e-0x0;var _0x1a4f42=_0x2a74[_0x13594e];return _0x1a4f42;};'use strict';var multer=require(_0x42a7('0x0'));var util=require('util');var path=require(_0x42a7('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x42a7('0x2')]();var auth=require(_0x42a7('0x3'));var interaction=require(_0x42a7('0x4'));var config=require(_0x42a7('0x5'));var controller=require(_0x42a7('0x6'));router[_0x42a7('0x7')]('/',auth[_0x42a7('0x8')](),controller[_0x42a7('0x9')]);router[_0x42a7('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x42a7('0xa')]);router['get'](_0x42a7('0xb'),auth[_0x42a7('0x8')](),controller[_0x42a7('0xc')]);router[_0x42a7('0x7')](_0x42a7('0xd'),auth[_0x42a7('0x8')](),controller[_0x42a7('0xe')]);router[_0x42a7('0xf')]('/',auth[_0x42a7('0x8')](),controller[_0x42a7('0x10')]);router[_0x42a7('0xf')](_0x42a7('0xb'),auth[_0x42a7('0x8')](),controller[_0x42a7('0x11')]);router['put'](_0x42a7('0x12'),auth[_0x42a7('0x8')](),controller[_0x42a7('0x13')]);router[_0x42a7('0x14')](_0x42a7('0x12'),auth['isAuthenticated'](),controller['destroy']);module[_0x42a7('0x15')]=router;
\ No newline at end of file
+var _0x7d4d=['multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','index','get','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','put','/:id','update'];(function(_0x52f20f,_0x159520){var _0x2d1dda=function(_0x4488bc){while(--_0x4488bc){_0x52f20f['push'](_0x52f20f['shift']());}};_0x2d1dda(++_0x159520);}(_0x7d4d,0xd1));var _0xd7d4=function(_0x39c734,_0x2f3e06){_0x39c734=_0x39c734-0x0;var _0xb2a2f9=_0x7d4d[_0x39c734];return _0xb2a2f9;};'use strict';var multer=require(_0xd7d4('0x0'));var util=require('util');var path=require(_0xd7d4('0x1'));var timeout=require(_0xd7d4('0x2'));var express=require(_0xd7d4('0x3'));var router=express[_0xd7d4('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0xd7d4('0x5'));var config=require(_0xd7d4('0x6'));var controller=require('./intFreshdeskAccount.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xd7d4('0x7')]);router[_0xd7d4('0x8')]('/:id',auth[_0xd7d4('0x9')](),controller[_0xd7d4('0xa')]);router[_0xd7d4('0x8')](_0xd7d4('0xb'),auth['isAuthenticated'](),controller[_0xd7d4('0xc')]);router['get'](_0xd7d4('0xd'),auth[_0xd7d4('0x9')](),controller[_0xd7d4('0xe')]);router[_0xd7d4('0xf')]('/',auth[_0xd7d4('0x9')](),controller['create']);router[_0xd7d4('0xf')]('/:id/configurations',auth[_0xd7d4('0x9')](),controller['addConfiguration']);router[_0xd7d4('0x10')](_0xd7d4('0x11'),auth[_0xd7d4('0x9')](),controller[_0xd7d4('0x12')]);router['delete'](_0xd7d4('0x11'),auth[_0xd7d4('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed17=['remoteUri','exports','STRING','username'];(function(_0x13bcd4,_0x163a93){var _0x56098f=function(_0x457c5d){while(--_0x457c5d){_0x13bcd4['push'](_0x13bcd4['shift']());}};_0x56098f(++_0x163a93);}(_0xed17,0x11d));var _0x7ed1=function(_0x356307,_0xe0a012){_0x356307=_0x356307-0x0;var _0x59e722=_0xed17[_0x356307];return _0x59e722;};'use strict';var Sequelize=require('sequelize');module[_0x7ed1('0x0')]={'name':{'type':Sequelize[_0x7ed1('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x7ed1('0x1')],'unique':_0x7ed1('0x2')},'apiKey':{'type':Sequelize[_0x7ed1('0x1')]},'remoteUri':{'type':Sequelize[_0x7ed1('0x1')],'unique':_0x7ed1('0x3')},'serverUrl':{'type':Sequelize[_0x7ed1('0x1')]}};
\ No newline at end of file
+var _0xad59=['remoteUri','sequelize','STRING','username'];(function(_0x3431ff,_0x530e24){var _0x1f08a8=function(_0x29afa7){while(--_0x29afa7){_0x3431ff['push'](_0x3431ff['shift']());}};_0x1f08a8(++_0x530e24);}(_0xad59,0x1ad));var _0x9ad5=function(_0x33abf5,_0xf02f5d){_0x33abf5=_0x33abf5-0x0;var _0x12222f=_0xad59[_0x33abf5];return _0x12222f;};'use strict';var Sequelize=require(_0x9ad5('0x0'));module['exports']={'name':{'type':Sequelize[_0x9ad5('0x1')]},'description':{'type':Sequelize[_0x9ad5('0x1')]},'username':{'type':Sequelize['STRING'],'unique':_0x9ad5('0x2')},'apiKey':{'type':Sequelize[_0x9ad5('0x1')]},'remoteUri':{'type':Sequelize[_0x9ad5('0x1')],'unique':_0x9ad5('0x3')},'serverUrl':{'type':Sequelize[_0x9ad5('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x977d=['stringify','error','message','catch','sendStatus','end','status','json','offset','limit','apply','reject','save','update','destroy','stack','name','send','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','add','day','filter','merge','options','FreshdeskAccount','count','include','findAll','rows','find','body','params','getConfigurations','findOne','FreshdeskConfiguration','map','length','addConfiguration','AccountId','getSubjects','type','Descriptions','channel','create','FreshdeskField','Subjects','getFields','remoteUri','apiKey','format','%s%s','api/v2/ticket_fields','%s:X','base64','requester','subject','agent','description','priority','group','ticket_type','company','remove','includes','default','label','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','zip-dir','moment','bluebird','mustache','util','path','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','then','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x4489f2,_0x1f9128){var _0x5cc527=function(_0x44201f){while(--_0x44201f){_0x4489f2['push'](_0x4489f2['shift']());}};_0x5cc527(++_0x1f9128);}(_0x977d,0xc7));var _0xd977=function(_0x56a95e,_0x130377){_0x56a95e=_0x56a95e-0x0;var _0xedb67b=_0x977d[_0x56a95e];return _0xedb67b;};'use strict';var pdf=require(_0xd977('0x0'));var emlformat=require(_0xd977('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xd977('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd977('0x3'));var BPromise=require(_0xd977('0x4'));var Mustache=require(_0xd977('0x5'));var util=require(_0xd977('0x6'));var path=require(_0xd977('0x7'));var sox=require('sox');var csv=require(_0xd977('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xd977('0x9'));var squel=require(_0xd977('0xa'));var crypto=require('crypto');var jsforce=require(_0xd977('0xb'));var deskjs=require(_0xd977('0xc'));var toCsv=require(_0xd977('0x8'));var querystring=require(_0xd977('0xd'));var Papa=require(_0xd977('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0xd977('0xf'))(_0xd977('0x10'));var utils=require(_0xd977('0x11'));var config=require(_0xd977('0x12'));var db=require(_0xd977('0x13'))['db'];var integrations=require(_0xd977('0x14'));var jayson=require(_0xd977('0x15'));var client=jayson[_0xd977('0x16')]['http']({'port':0x232a});function respondWithRpcPromise(_0x434ea3,_0x1351d5,_0x1ad54c,_0x2b53a7){return new BPromise(function(_0x5d9e14,_0xa85470){var _0x2dd4bf=_0x2b53a7||client;return _0x2dd4bf[_0xd977('0x17')](_0x434ea3,_0x1ad54c)[_0xd977('0x18')](function(_0x11cb5f){logger[_0xd977('0x19')](_0xd977('0x1a'),_0x1351d5,_0xd977('0x1b'));logger[_0xd977('0x1c')]('FreshdeskAccount,\x20%s,\x20%s,\x20%s',_0x1351d5,_0xd977('0x1b'),JSON[_0xd977('0x1d')](_0x11cb5f));if(_0x11cb5f['error']){if(_0x11cb5f[_0xd977('0x1e')]['code']===0x1f4){logger[_0xd977('0x1e')](_0xd977('0x1a'),_0x1351d5,_0x11cb5f[_0xd977('0x1e')][_0xd977('0x1f')]);return _0xa85470(_0x11cb5f['error'][_0xd977('0x1f')]);}logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x1351d5,_0x11cb5f['error'][_0xd977('0x1f')]);return _0x5d9e14(_0x11cb5f[_0xd977('0x1e')][_0xd977('0x1f')]);}else{logger[_0xd977('0x19')]('FreshdeskAccount,\x20%s,\x20%s',_0x1351d5,_0xd977('0x1b'));_0x5d9e14(_0x11cb5f['result'][_0xd977('0x1f')]);}})[_0xd977('0x20')](function(_0x4875e5){logger[_0xd977('0x1e')](_0xd977('0x1a'),_0x1351d5,_0x4875e5);_0xa85470(_0x4875e5);});});}function respondWithStatusCode(_0x2d5dfc,_0x251823){_0x251823=_0x251823||0xcc;return function(_0x444fde){if(_0x444fde){return _0x2d5dfc[_0xd977('0x21')](_0x251823);}return _0x2d5dfc['status'](_0x251823)[_0xd977('0x22')]();};}function respondWithResult(_0x1b9e54,_0x3a8fb9){_0x3a8fb9=_0x3a8fb9||0xc8;return function(_0x43a3a0){if(_0x43a3a0){return _0x1b9e54[_0xd977('0x23')](_0x3a8fb9)[_0xd977('0x24')](_0x43a3a0);}};}function respondWithFilteredResult(_0x483f2d,_0x3039b3){return function(_0x3e08ab){if(_0x3e08ab){var _0x2a2020=_0x3e08ab['count'],_0x52c00a=_0x3039b3['offset'],_0x1b2de4=_0x3039b3[_0xd977('0x25')]+_0x3039b3[_0xd977('0x26')],_0x199830;if(_0x1b2de4>=_0x2a2020){_0x1b2de4=_0x2a2020;_0x199830=0xc8;}else{_0x199830=0xce;}_0x483f2d[_0xd977('0x23')](_0x199830);return _0x483f2d['set']('Content-Range',_0x52c00a+'-'+_0x1b2de4+'/'+_0x2a2020)[_0xd977('0x24')](_0x3e08ab);}return null;};}function patchUpdates(_0xdce7db){return function(_0x5e7175){try{jsonpatch[_0xd977('0x27')](_0x5e7175,_0xdce7db,!![]);}catch(_0x108767){return BPromise[_0xd977('0x28')](_0x108767);}return _0x5e7175[_0xd977('0x29')]();};}function saveUpdates(_0xf7471a,_0x3bce4f){return function(_0x1d68df){if(_0x1d68df){return _0x1d68df[_0xd977('0x2a')](_0xf7471a)[_0xd977('0x18')](function(_0x26beaa){return _0x26beaa;});}return null;};}function removeEntity(_0x1b86fd,_0xaa63f5){return function(_0x436ad8){if(_0x436ad8){return _0x436ad8[_0xd977('0x2b')]()[_0xd977('0x18')](function(){_0x1b86fd[_0xd977('0x23')](0xcc)[_0xd977('0x22')]();});}};}function handleEntityNotFound(_0x1f6e84,_0x2aa308){return function(_0x436f16){if(!_0x436f16){_0x1f6e84[_0xd977('0x21')](0x194);}return _0x436f16;};}function handleError(_0x1b7dbb,_0xe4110){_0xe4110=_0xe4110||0x1f4;return function(_0x3123ce){logger[_0xd977('0x1e')](_0x3123ce[_0xd977('0x2c')]);if(_0x3123ce['name']){delete _0x3123ce[_0xd977('0x2d')];}_0x1b7dbb['status'](_0xe4110)[_0xd977('0x2e')](_0x3123ce);};}exports[_0xd977('0x2f')]=function(_0x2649c6,_0x3468c4){var _0x503ecc={},_0x4a6dde={},_0x31e3a6={'count':0x0,'rows':[]};var _0x49f3e2=db['FreshdeskAccount'][_0xd977('0x30')];_0x4a6dde[_0xd977('0x31')]=_[_0xd977('0x32')](_0x49f3e2);var _0x431396={'dateStart':_0x2649c6[_0xd977('0x33')][_0xd977('0x34')],'dateEnd':_0x2649c6['query']['dateEnd']};delete _0x2649c6['query'][_0xd977('0x34')];delete _0x2649c6['query'][_0xd977('0x35')];_0x4a6dde[_0xd977('0x33')]=_[_0xd977('0x32')](_0x2649c6[_0xd977('0x33')]);_0x4a6dde[_0xd977('0x36')]=_[_0xd977('0x37')](_0x4a6dde['model'],_0x4a6dde[_0xd977('0x33')]);_0x503ecc[_0xd977('0x38')]=_[_0xd977('0x37')](_0x4a6dde[_0xd977('0x31')],qs[_0xd977('0x39')](_0x2649c6[_0xd977('0x33')][_0xd977('0x39')]));_0x503ecc['attributes']=_0x503ecc[_0xd977('0x38')]['length']?_0x503ecc[_0xd977('0x38')]:_0x4a6dde[_0xd977('0x31')];if(!_0x2649c6[_0xd977('0x33')][_0xd977('0x3a')](_0xd977('0x3b'))){_0x503ecc[_0xd977('0x26')]=qs['limit'](_0x2649c6[_0xd977('0x33')]['limit']);_0x503ecc[_0xd977('0x25')]=qs[_0xd977('0x25')](_0x2649c6[_0xd977('0x33')][_0xd977('0x25')]);}_0x503ecc[_0xd977('0x3c')]=qs['sort'](_0x2649c6['query'][_0xd977('0x3d')]);_0x503ecc[_0xd977('0x3e')]=qs['filters'](_[_0xd977('0x3f')](_0x2649c6[_0xd977('0x33')],_0x4a6dde[_0xd977('0x36')]));if(_0x431396[_0xd977('0x34')]){if(_0x431396[_0xd977('0x35')]){_0x431396[_0xd977('0x35')]=moment(_0x431396[_0xd977('0x35')])[_0xd977('0x40')](0x1,_0xd977('0x41'));}else{_0x431396['dateEnd']=moment(_0x431396['dateStart'])['add'](0x1,'day');}_['merge'](_0x503ecc['where'],{'createdAt':{'$gte':_0x431396['dateStart'],'$lte':_0x431396['dateEnd']}});}if(_0x2649c6[_0xd977('0x33')][_0xd977('0x42')]){_0x503ecc[_0xd977('0x3e')]=_[_0xd977('0x43')](_0x503ecc[_0xd977('0x3e')],{'$or':_['map'](_0x503ecc[_0xd977('0x38')],function(_0x2259cd){var _0x45314e={};_0x45314e[_0x2259cd]={'$like':'%'+_0x2649c6[_0xd977('0x33')]['filter']+'%'};return _0x45314e;})});}_0x503ecc=_['merge']({},_0x503ecc,_0x2649c6[_0xd977('0x44')]);var _0x572981={'where':_0x503ecc[_0xd977('0x3e')]};return db[_0xd977('0x45')][_0xd977('0x46')](_0x572981)[_0xd977('0x18')](function(_0x40fc61){_0x31e3a6[_0xd977('0x46')]=_0x40fc61;if(_0x2649c6[_0xd977('0x33')]['includeAll']){_0x503ecc[_0xd977('0x47')]=[{'all':!![]}];}return db[_0xd977('0x45')][_0xd977('0x48')](_0x503ecc);})[_0xd977('0x18')](function(_0x5c9ef3){_0x31e3a6[_0xd977('0x49')]=_0x5c9ef3;return _0x31e3a6;})['then'](respondWithFilteredResult(_0x3468c4,_0x503ecc))['catch'](handleError(_0x3468c4,null));};exports['show']=function(_0x3db283,_0x19ad87){var _0x44a81a={'raw':![],'where':{'id':_0x3db283['params']['id']}},_0x451559={};_0x451559['model']=_[_0xd977('0x32')](db[_0xd977('0x45')][_0xd977('0x30')]);_0x451559[_0xd977('0x33')]=_[_0xd977('0x32')](_0x3db283[_0xd977('0x33')]);_0x451559['filters']=_[_0xd977('0x37')](_0x451559[_0xd977('0x31')],_0x451559[_0xd977('0x33')]);_0x44a81a[_0xd977('0x38')]=_[_0xd977('0x37')](_0x451559[_0xd977('0x31')],qs['fields'](_0x3db283['query']['fields']));_0x44a81a[_0xd977('0x38')]=_0x44a81a['attributes']['length']?_0x44a81a[_0xd977('0x38')]:_0x451559[_0xd977('0x31')];if(_0x3db283[_0xd977('0x33')]['includeAll']){_0x44a81a['include']=[{'all':!![]}];}_0x44a81a=_[_0xd977('0x43')]({},_0x44a81a,_0x3db283[_0xd977('0x44')]);return db[_0xd977('0x45')][_0xd977('0x4a')](_0x44a81a)['then'](handleEntityNotFound(_0x19ad87,null))[_0xd977('0x18')](respondWithResult(_0x19ad87,null))['catch'](handleError(_0x19ad87,null));};exports['create']=function(_0x39351,_0x21d7cd){return db[_0xd977('0x45')]['create'](_0x39351[_0xd977('0x4b')],{})['then'](respondWithResult(_0x21d7cd,0xc9))[_0xd977('0x20')](handleError(_0x21d7cd,null));};exports[_0xd977('0x2a')]=function(_0x1576a6,_0x27f6ca){if(_0x1576a6[_0xd977('0x4b')]['id']){delete _0x1576a6[_0xd977('0x4b')]['id'];}return db[_0xd977('0x45')][_0xd977('0x4a')]({'where':{'id':_0x1576a6[_0xd977('0x4c')]['id']}})['then'](handleEntityNotFound(_0x27f6ca,null))[_0xd977('0x18')](saveUpdates(_0x1576a6[_0xd977('0x4b')],null))[_0xd977('0x18')](respondWithResult(_0x27f6ca,null))[_0xd977('0x20')](handleError(_0x27f6ca,null));};exports[_0xd977('0x2b')]=function(_0x15cc44,_0x3ce3c3){return db[_0xd977('0x45')]['find']({'where':{'id':_0x15cc44[_0xd977('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3ce3c3,null))['then'](removeEntity(_0x3ce3c3,null))[_0xd977('0x20')](handleError(_0x3ce3c3,null));};exports[_0xd977('0x4d')]=function(_0x1e70c7,_0x4840ee,_0x1b80d8){var _0x35f8ff={};var _0x382018={};var _0x1baed6;var _0x5196e8;return db[_0xd977('0x45')][_0xd977('0x4e')]({'where':{'id':_0x1e70c7['params']['id']}})[_0xd977('0x18')](handleEntityNotFound(_0x4840ee,null))['then'](function(_0x1f31c1){if(_0x1f31c1){_0x1baed6=_0x1f31c1;_0x382018[_0xd977('0x31')]=_[_0xd977('0x32')](db[_0xd977('0x4f')][_0xd977('0x30')]);_0x382018[_0xd977('0x33')]=_['keys'](_0x1e70c7[_0xd977('0x33')]);_0x382018[_0xd977('0x36')]=_[_0xd977('0x37')](_0x382018[_0xd977('0x31')],_0x382018[_0xd977('0x33')]);_0x35f8ff[_0xd977('0x38')]=_[_0xd977('0x37')](_0x382018[_0xd977('0x31')],qs[_0xd977('0x39')](_0x1e70c7[_0xd977('0x33')][_0xd977('0x39')]));_0x35f8ff['attributes']=_0x35f8ff[_0xd977('0x38')]['length']?_0x35f8ff['attributes']:_0x382018[_0xd977('0x31')];_0x35f8ff[_0xd977('0x3c')]=qs['sort'](_0x1e70c7[_0xd977('0x33')][_0xd977('0x3d')]);_0x35f8ff['where']=qs[_0xd977('0x36')](_[_0xd977('0x3f')](_0x1e70c7[_0xd977('0x33')],_0x382018['filters']));if(_0x1e70c7['query'][_0xd977('0x42')]){_0x35f8ff['where']=_[_0xd977('0x43')](_0x35f8ff['where'],{'$or':_[_0xd977('0x50')](_0x35f8ff['attributes'],function(_0x44d418){var _0x36e38a={};_0x36e38a[_0x44d418]={'$like':'%'+_0x1e70c7['query'][_0xd977('0x42')]+'%'};return _0x36e38a;})});}_0x35f8ff=_['merge']({},_0x35f8ff,_0x1e70c7['options']);return _0x1baed6[_0xd977('0x4d')](_0x35f8ff);}})[_0xd977('0x18')](function(_0x3cd9a2){if(_0x3cd9a2){_0x5196e8=_0x3cd9a2[_0xd977('0x51')];if(!_0x1e70c7[_0xd977('0x33')]['hasOwnProperty']('nolimit')){_0x35f8ff['limit']=qs[_0xd977('0x26')](_0x1e70c7[_0xd977('0x33')][_0xd977('0x26')]);_0x35f8ff[_0xd977('0x25')]=qs[_0xd977('0x25')](_0x1e70c7[_0xd977('0x33')][_0xd977('0x25')]);}return _0x1baed6[_0xd977('0x4d')](_0x35f8ff);}})[_0xd977('0x18')](function(_0x4a3110){if(_0x4a3110){return _0x4a3110?{'count':_0x5196e8,'rows':_0x4a3110}:null;}})['then'](respondWithResult(_0x4840ee,null))['catch'](handleError(_0x4840ee,null));};exports[_0xd977('0x52')]=function(_0x1b5095,_0xb511bc,_0x5a99dd){if(_0x1b5095[_0xd977('0x4b')]['id']){delete _0x1b5095[_0xd977('0x4b')]['id'];}return db['FreshdeskAccount'][_0xd977('0x4e')]({'where':{'id':_0x1b5095[_0xd977('0x4c')]['id']}})['then'](handleEntityNotFound(_0xb511bc,null))[_0xd977('0x18')](function(_0x4f79d2){if(_0x4f79d2){_0x1b5095[_0xd977('0x4b')][_0xd977('0x53')]=_0x4f79d2['id'];_0x1b5095[_0xd977('0x4b')]['Subjects']=integrations[_0xd977('0x54')](_0x1b5095[_0xd977('0x4b')]['channel'],_0x1b5095[_0xd977('0x4b')][_0xd977('0x55')]);_0x1b5095[_0xd977('0x4b')][_0xd977('0x56')]=integrations['getDescriptions'](_0x1b5095[_0xd977('0x4b')][_0xd977('0x57')],_0x1b5095[_0xd977('0x4b')][_0xd977('0x55')]);return db[_0xd977('0x4f')][_0xd977('0x58')](_0x1b5095[_0xd977('0x4b')],{'include':[{'model':db[_0xd977('0x59')],'as':_0xd977('0x5a')},{'model':db[_0xd977('0x59')],'as':_0xd977('0x56')}]});}return null;})['then'](respondWithResult(_0xb511bc,null))['catch'](handleError(_0xb511bc,null));};exports[_0xd977('0x5b')]=function(_0x589146,_0x45f77b,_0x201261){return db['FreshdeskAccount'][_0xd977('0x4e')]({'where':{'id':_0x589146[_0xd977('0x4c')]['id']},'attributes':['id',_0xd977('0x5c'),_0xd977('0x5d')]})[_0xd977('0x18')](handleEntityNotFound(_0x45f77b,null))[_0xd977('0x18')](function(_0x3c3811){if(_0x3c3811){return rp({'method':'GET','uri':util[_0xd977('0x5e')](_0xd977('0x5f'),_0x3c3811[_0xd977('0x5c')],_0xd977('0x60')),'headers':{'Authorization':util[_0xd977('0x5e')]('Basic\x20%s',new Buffer(util[_0xd977('0x5e')](_0xd977('0x61'),_0x3c3811[_0xd977('0x5d')]))['toString'](_0xd977('0x62')))},'json':!![]});}})['then'](function(_0x4d4b7b){if(_0x4d4b7b){var _0x11eeeb=[_0xd977('0x63'),_0xd977('0x64'),_0xd977('0x65'),_0xd977('0x66'),_0xd977('0x23'),_0xd977('0x67'),_0xd977('0x68'),'source',_0xd977('0x69'),_0xd977('0x68'),_0xd977('0x6a')];_[_0xd977('0x6b')](_0x4d4b7b,function(_0x41c7c7){return _0x11eeeb[_0xd977('0x6c')](_0x41c7c7[_0xd977('0x2d')])||!_0x41c7c7[_0xd977('0x6d')]&&_0x41c7c7[_0xd977('0x55')]!=='custom_text';});return{'count':_0x4d4b7b['length'],'rows':_[_0xd977('0x50')](_0x4d4b7b,function(_0x5cee6c){return{'id':_0x5cee6c[_0xd977('0x2d')],'name':_0x5cee6c[_0xd977('0x6e')],'custom':!_0x5cee6c[_0xd977('0x6d')],'options':_0x5cee6c['choices']?_['map'](_0x5cee6c['choices'],function(_0x222993){return{'name':_['capitalize'](_0x222993),'value':_0x222993};}):[]};})};}})[_0xd977('0x18')](respondWithResult(_0x45f77b,null))[_0xd977('0x20')](function(_0x3331ed){var _0x11a820=_0x589146['query'][_0xd977('0x6f')]?0x1f4:_0x3331ed[_0xd977('0x70')]||0x1f4;logger[_0xd977('0x1e')]('getFields,\x20%s,\x20%s,\x20%s',_0xd977('0x5b'),_0x11a820,JSON[_0xd977('0x1d')](_0x3331ed));delete _0x3331ed[_0xd977('0x2d')];if(_0x11a820===0x191){_0x11a820=0x190;}_0x45f77b[_0xd977('0x23')](_0x11a820)[_0xd977('0x2e')](_0x589146[_0xd977('0x33')][_0xd977('0x6f')]?{'message':_0xd977('0x71'),'statusCode':_0x3331ed[_0xd977('0x70')]}:_0x3331ed);});};
\ No newline at end of file
+var _0x5d6a=['ticket_type','company','remove','default','label','choices','capitalize','test','statusCode','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','http','request','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','sendStatus','status','json','offset','limit','Content-Range','apply','reject','save','update','name','send','FreshdeskAccount','model','keys','dateStart','query','dateEnd','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','day','merge','filter','options','count','includeAll','include','findAll','rows','show','rawAttributes','find','create','body','params','destroy','getConfigurations','findOne','FreshdeskConfiguration','map','addConfiguration','Subjects','getSubjects','type','Descriptions','getDescriptions','channel','FreshdeskField','getFields','remoteUri','GET','format','%s%s','api/v2/ticket_fields','Basic\x20%s','%s:X','apiKey','toString','base64','requester','subject','agent','description','priority','group','source'];(function(_0x24edb7,_0x2ee7e7){var _0x359bcc=function(_0x10b9ab){while(--_0x10b9ab){_0x24edb7['push'](_0x24edb7['shift']());}};_0x359bcc(++_0x2ee7e7);}(_0x5d6a,0x82));var _0xa5d6=function(_0x14ba4a,_0x53eecd){_0x14ba4a=_0x14ba4a-0x0;var _0x2b1c9d=_0x5d6a[_0x14ba4a];return _0x2b1c9d;};'use strict';var pdf=require(_0xa5d6('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa5d6('0x1'));var zipdir=require(_0xa5d6('0x2'));var jsonpatch=require(_0xa5d6('0x3'));var rp=require(_0xa5d6('0x4'));var moment=require(_0xa5d6('0x5'));var BPromise=require(_0xa5d6('0x6'));var Mustache=require(_0xa5d6('0x7'));var util=require('util');var path=require('path');var sox=require(_0xa5d6('0x8'));var csv=require('to-csv');var ejs=require(_0xa5d6('0x9'));var fs=require('fs');var _=require(_0xa5d6('0xa'));var squel=require('squel');var crypto=require(_0xa5d6('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xa5d6('0xc'));var toCsv=require('to-csv');var querystring=require(_0xa5d6('0xd'));var Papa=require(_0xa5d6('0xe'));var Redis=require(_0xa5d6('0xf'));var qs=require(_0xa5d6('0x10'));var logger=require(_0xa5d6('0x11'))(_0xa5d6('0x12'));var utils=require('../../config/utils');var config=require(_0xa5d6('0x13'));var db=require(_0xa5d6('0x14'))['db'];var integrations=require(_0xa5d6('0x15'));var jayson=require(_0xa5d6('0x16'));var client=jayson['client'][_0xa5d6('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x4ed0b0,_0x3e360e,_0x3aa4ae,_0x2fab9f){return new BPromise(function(_0x2f1d07,_0x572f9){var _0x13fdb2=_0x2fab9f||client;return _0x13fdb2[_0xa5d6('0x18')](_0x4ed0b0,_0x3aa4ae)[_0xa5d6('0x19')](function(_0x26ca7d){logger['info'](_0xa5d6('0x1a'),_0x3e360e,_0xa5d6('0x1b'));logger[_0xa5d6('0x1c')](_0xa5d6('0x1d'),_0x3e360e,'request\x20sent',JSON[_0xa5d6('0x1e')](_0x26ca7d));if(_0x26ca7d[_0xa5d6('0x1f')]){if(_0x26ca7d[_0xa5d6('0x1f')][_0xa5d6('0x20')]===0x1f4){logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x3e360e,_0x26ca7d[_0xa5d6('0x1f')]['message']);return _0x572f9(_0x26ca7d[_0xa5d6('0x1f')][_0xa5d6('0x21')]);}logger['error'](_0xa5d6('0x1a'),_0x3e360e,_0x26ca7d['error'][_0xa5d6('0x21')]);return _0x2f1d07(_0x26ca7d[_0xa5d6('0x1f')][_0xa5d6('0x21')]);}else{logger[_0xa5d6('0x22')](_0xa5d6('0x1a'),_0x3e360e,_0xa5d6('0x1b'));_0x2f1d07(_0x26ca7d[_0xa5d6('0x23')][_0xa5d6('0x21')]);}})[_0xa5d6('0x24')](function(_0x45cb03){logger[_0xa5d6('0x1f')]('FreshdeskAccount,\x20%s,\x20%s',_0x3e360e,_0x45cb03);_0x572f9(_0x45cb03);});});}function respondWithStatusCode(_0x5416a5,_0x3ec7e0){_0x3ec7e0=_0x3ec7e0||0xcc;return function(_0x36878d){if(_0x36878d){return _0x5416a5[_0xa5d6('0x25')](_0x3ec7e0);}return _0x5416a5[_0xa5d6('0x26')](_0x3ec7e0)['end']();};}function respondWithResult(_0x1a4e9d,_0xc24101){_0xc24101=_0xc24101||0xc8;return function(_0x124a1d){if(_0x124a1d){return _0x1a4e9d['status'](_0xc24101)[_0xa5d6('0x27')](_0x124a1d);}};}function respondWithFilteredResult(_0x1031db,_0x40518f){return function(_0x2da7b4){if(_0x2da7b4){var _0x40a00c=_0x2da7b4['count'],_0x547ef2=_0x40518f[_0xa5d6('0x28')],_0x3d8dab=_0x40518f[_0xa5d6('0x28')]+_0x40518f[_0xa5d6('0x29')],_0x4685b0;if(_0x3d8dab>=_0x40a00c){_0x3d8dab=_0x40a00c;_0x4685b0=0xc8;}else{_0x4685b0=0xce;}_0x1031db[_0xa5d6('0x26')](_0x4685b0);return _0x1031db['set'](_0xa5d6('0x2a'),_0x547ef2+'-'+_0x3d8dab+'/'+_0x40a00c)['json'](_0x2da7b4);}return null;};}function patchUpdates(_0x1edb43){return function(_0x1b93cd){try{jsonpatch[_0xa5d6('0x2b')](_0x1b93cd,_0x1edb43,!![]);}catch(_0x5a550f){return BPromise[_0xa5d6('0x2c')](_0x5a550f);}return _0x1b93cd[_0xa5d6('0x2d')]();};}function saveUpdates(_0x5eccbd,_0xb69a17){return function(_0x3eb62a){if(_0x3eb62a){return _0x3eb62a[_0xa5d6('0x2e')](_0x5eccbd)[_0xa5d6('0x19')](function(_0x55b1ac){return _0x55b1ac;});}return null;};}function removeEntity(_0x5da9e8,_0x2aabde){return function(_0x31f375){if(_0x31f375){return _0x31f375['destroy']()[_0xa5d6('0x19')](function(){_0x5da9e8[_0xa5d6('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24f00e,_0x92a3cb){return function(_0x439475){if(!_0x439475){_0x24f00e[_0xa5d6('0x25')](0x194);}return _0x439475;};}function handleError(_0x5818f3,_0x5a739e){_0x5a739e=_0x5a739e||0x1f4;return function(_0x14d8da){logger[_0xa5d6('0x1f')](_0x14d8da['stack']);if(_0x14d8da['name']){delete _0x14d8da[_0xa5d6('0x2f')];}_0x5818f3[_0xa5d6('0x26')](_0x5a739e)[_0xa5d6('0x30')](_0x14d8da);};}exports['index']=function(_0x8c33c3,_0x4d80af){var _0x12193c={},_0x3ae953={},_0xa1f74c={'count':0x0,'rows':[]};var _0x370e66=db[_0xa5d6('0x31')]['rawAttributes'];_0x3ae953[_0xa5d6('0x32')]=_[_0xa5d6('0x33')](_0x370e66);var _0xadd30c={'dateStart':_0x8c33c3['query'][_0xa5d6('0x34')],'dateEnd':_0x8c33c3['query']['dateEnd']};delete _0x8c33c3['query'][_0xa5d6('0x34')];delete _0x8c33c3[_0xa5d6('0x35')][_0xa5d6('0x36')];_0x3ae953[_0xa5d6('0x35')]=_[_0xa5d6('0x33')](_0x8c33c3[_0xa5d6('0x35')]);_0x3ae953['filters']=_[_0xa5d6('0x37')](_0x3ae953[_0xa5d6('0x32')],_0x3ae953[_0xa5d6('0x35')]);_0x12193c[_0xa5d6('0x38')]=_[_0xa5d6('0x37')](_0x3ae953[_0xa5d6('0x32')],qs[_0xa5d6('0x39')](_0x8c33c3['query']['fields']));_0x12193c['attributes']=_0x12193c[_0xa5d6('0x38')][_0xa5d6('0x3a')]?_0x12193c['attributes']:_0x3ae953[_0xa5d6('0x32')];if(!_0x8c33c3['query'][_0xa5d6('0x3b')](_0xa5d6('0x3c'))){_0x12193c[_0xa5d6('0x29')]=qs['limit'](_0x8c33c3[_0xa5d6('0x35')][_0xa5d6('0x29')]);_0x12193c[_0xa5d6('0x28')]=qs[_0xa5d6('0x28')](_0x8c33c3[_0xa5d6('0x35')][_0xa5d6('0x28')]);}_0x12193c[_0xa5d6('0x3d')]=qs['sort'](_0x8c33c3[_0xa5d6('0x35')][_0xa5d6('0x3e')]);_0x12193c[_0xa5d6('0x3f')]=qs[_0xa5d6('0x40')](_[_0xa5d6('0x41')](_0x8c33c3[_0xa5d6('0x35')],_0x3ae953['filters']));if(_0xadd30c['dateStart']){if(_0xadd30c[_0xa5d6('0x36')]){_0xadd30c[_0xa5d6('0x36')]=moment(_0xadd30c[_0xa5d6('0x36')])['add'](0x1,_0xa5d6('0x42'));}else{_0xadd30c[_0xa5d6('0x36')]=moment(_0xadd30c[_0xa5d6('0x34')])['add'](0x1,_0xa5d6('0x42'));}_[_0xa5d6('0x43')](_0x12193c[_0xa5d6('0x3f')],{'createdAt':{'$gte':_0xadd30c[_0xa5d6('0x34')],'$lte':_0xadd30c[_0xa5d6('0x36')]}});}if(_0x8c33c3[_0xa5d6('0x35')][_0xa5d6('0x44')]){_0x12193c[_0xa5d6('0x3f')]=_['merge'](_0x12193c[_0xa5d6('0x3f')],{'$or':_['map'](_0x12193c['attributes'],function(_0x6083ab){var _0x586b4b={};_0x586b4b[_0x6083ab]={'$like':'%'+_0x8c33c3[_0xa5d6('0x35')]['filter']+'%'};return _0x586b4b;})});}_0x12193c=_['merge']({},_0x12193c,_0x8c33c3[_0xa5d6('0x45')]);var _0x5e6656={'where':_0x12193c[_0xa5d6('0x3f')]};return db[_0xa5d6('0x31')][_0xa5d6('0x46')](_0x5e6656)[_0xa5d6('0x19')](function(_0x533d2c){_0xa1f74c[_0xa5d6('0x46')]=_0x533d2c;if(_0x8c33c3[_0xa5d6('0x35')][_0xa5d6('0x47')]){_0x12193c[_0xa5d6('0x48')]=[{'all':!![]}];}return db[_0xa5d6('0x31')][_0xa5d6('0x49')](_0x12193c);})['then'](function(_0x3dfa8a){_0xa1f74c[_0xa5d6('0x4a')]=_0x3dfa8a;return _0xa1f74c;})['then'](respondWithFilteredResult(_0x4d80af,_0x12193c))['catch'](handleError(_0x4d80af,null));};exports[_0xa5d6('0x4b')]=function(_0x2c8b84,_0x4eb84e){var _0x39d757={'raw':![],'where':{'id':_0x2c8b84['params']['id']}},_0x75a008={};_0x75a008['model']=_[_0xa5d6('0x33')](db['FreshdeskAccount'][_0xa5d6('0x4c')]);_0x75a008[_0xa5d6('0x35')]=_[_0xa5d6('0x33')](_0x2c8b84[_0xa5d6('0x35')]);_0x75a008[_0xa5d6('0x40')]=_[_0xa5d6('0x37')](_0x75a008[_0xa5d6('0x32')],_0x75a008['query']);_0x39d757[_0xa5d6('0x38')]=_['intersection'](_0x75a008['model'],qs[_0xa5d6('0x39')](_0x2c8b84['query'][_0xa5d6('0x39')]));_0x39d757[_0xa5d6('0x38')]=_0x39d757[_0xa5d6('0x38')][_0xa5d6('0x3a')]?_0x39d757['attributes']:_0x75a008['model'];if(_0x2c8b84[_0xa5d6('0x35')][_0xa5d6('0x47')]){_0x39d757[_0xa5d6('0x48')]=[{'all':!![]}];}_0x39d757=_[_0xa5d6('0x43')]({},_0x39d757,_0x2c8b84[_0xa5d6('0x45')]);return db[_0xa5d6('0x31')][_0xa5d6('0x4d')](_0x39d757)['then'](handleEntityNotFound(_0x4eb84e,null))[_0xa5d6('0x19')](respondWithResult(_0x4eb84e,null))['catch'](handleError(_0x4eb84e,null));};exports[_0xa5d6('0x4e')]=function(_0x340866,_0x3ace13){return db[_0xa5d6('0x31')][_0xa5d6('0x4e')](_0x340866[_0xa5d6('0x4f')],{})[_0xa5d6('0x19')](respondWithResult(_0x3ace13,0xc9))[_0xa5d6('0x24')](handleError(_0x3ace13,null));};exports[_0xa5d6('0x2e')]=function(_0x22a946,_0x1d6de8){if(_0x22a946[_0xa5d6('0x4f')]['id']){delete _0x22a946['body']['id'];}return db[_0xa5d6('0x31')][_0xa5d6('0x4d')]({'where':{'id':_0x22a946[_0xa5d6('0x50')]['id']}})[_0xa5d6('0x19')](handleEntityNotFound(_0x1d6de8,null))[_0xa5d6('0x19')](saveUpdates(_0x22a946['body'],null))[_0xa5d6('0x19')](respondWithResult(_0x1d6de8,null))[_0xa5d6('0x24')](handleError(_0x1d6de8,null));};exports[_0xa5d6('0x51')]=function(_0x40d4a2,_0x1e5b3c){return db[_0xa5d6('0x31')]['find']({'where':{'id':_0x40d4a2[_0xa5d6('0x50')]['id']}})['then'](handleEntityNotFound(_0x1e5b3c,null))[_0xa5d6('0x19')](removeEntity(_0x1e5b3c,null))[_0xa5d6('0x24')](handleError(_0x1e5b3c,null));};exports[_0xa5d6('0x52')]=function(_0x5e2391,_0x3d6964,_0x1aa9a3){var _0x3e4c91={};var _0x31d3c4={};var _0x67a452;var _0xa2c716;return db[_0xa5d6('0x31')][_0xa5d6('0x53')]({'where':{'id':_0x5e2391['params']['id']}})[_0xa5d6('0x19')](handleEntityNotFound(_0x3d6964,null))[_0xa5d6('0x19')](function(_0x53ceb1){if(_0x53ceb1){_0x67a452=_0x53ceb1;_0x31d3c4['model']=_[_0xa5d6('0x33')](db[_0xa5d6('0x54')][_0xa5d6('0x4c')]);_0x31d3c4[_0xa5d6('0x35')]=_[_0xa5d6('0x33')](_0x5e2391[_0xa5d6('0x35')]);_0x31d3c4[_0xa5d6('0x40')]=_[_0xa5d6('0x37')](_0x31d3c4[_0xa5d6('0x32')],_0x31d3c4[_0xa5d6('0x35')]);_0x3e4c91[_0xa5d6('0x38')]=_[_0xa5d6('0x37')](_0x31d3c4[_0xa5d6('0x32')],qs['fields'](_0x5e2391['query'][_0xa5d6('0x39')]));_0x3e4c91[_0xa5d6('0x38')]=_0x3e4c91['attributes'][_0xa5d6('0x3a')]?_0x3e4c91[_0xa5d6('0x38')]:_0x31d3c4[_0xa5d6('0x32')];_0x3e4c91['order']=qs[_0xa5d6('0x3e')](_0x5e2391[_0xa5d6('0x35')][_0xa5d6('0x3e')]);_0x3e4c91[_0xa5d6('0x3f')]=qs['filters'](_[_0xa5d6('0x41')](_0x5e2391[_0xa5d6('0x35')],_0x31d3c4[_0xa5d6('0x40')]));if(_0x5e2391['query'][_0xa5d6('0x44')]){_0x3e4c91['where']=_[_0xa5d6('0x43')](_0x3e4c91[_0xa5d6('0x3f')],{'$or':_[_0xa5d6('0x55')](_0x3e4c91[_0xa5d6('0x38')],function(_0x410604){var _0x5aeb38={};_0x5aeb38[_0x410604]={'$like':'%'+_0x5e2391['query']['filter']+'%'};return _0x5aeb38;})});}_0x3e4c91=_[_0xa5d6('0x43')]({},_0x3e4c91,_0x5e2391[_0xa5d6('0x45')]);return _0x67a452[_0xa5d6('0x52')](_0x3e4c91);}})[_0xa5d6('0x19')](function(_0x47b5b9){if(_0x47b5b9){_0xa2c716=_0x47b5b9[_0xa5d6('0x3a')];if(!_0x5e2391[_0xa5d6('0x35')][_0xa5d6('0x3b')](_0xa5d6('0x3c'))){_0x3e4c91[_0xa5d6('0x29')]=qs[_0xa5d6('0x29')](_0x5e2391[_0xa5d6('0x35')]['limit']);_0x3e4c91['offset']=qs['offset'](_0x5e2391[_0xa5d6('0x35')][_0xa5d6('0x28')]);}return _0x67a452[_0xa5d6('0x52')](_0x3e4c91);}})[_0xa5d6('0x19')](function(_0xa754c){if(_0xa754c){return _0xa754c?{'count':_0xa2c716,'rows':_0xa754c}:null;}})[_0xa5d6('0x19')](respondWithResult(_0x3d6964,null))[_0xa5d6('0x24')](handleError(_0x3d6964,null));};exports[_0xa5d6('0x56')]=function(_0x342376,_0x344ea7,_0xc53924){if(_0x342376[_0xa5d6('0x4f')]['id']){delete _0x342376['body']['id'];}return db[_0xa5d6('0x31')][_0xa5d6('0x53')]({'where':{'id':_0x342376[_0xa5d6('0x50')]['id']}})['then'](handleEntityNotFound(_0x344ea7,null))['then'](function(_0x2d5d92){if(_0x2d5d92){_0x342376[_0xa5d6('0x4f')]['AccountId']=_0x2d5d92['id'];_0x342376[_0xa5d6('0x4f')][_0xa5d6('0x57')]=integrations[_0xa5d6('0x58')](_0x342376[_0xa5d6('0x4f')]['channel'],_0x342376[_0xa5d6('0x4f')][_0xa5d6('0x59')]);_0x342376[_0xa5d6('0x4f')][_0xa5d6('0x5a')]=integrations[_0xa5d6('0x5b')](_0x342376['body'][_0xa5d6('0x5c')],_0x342376['body']['type']);return db[_0xa5d6('0x54')][_0xa5d6('0x4e')](_0x342376[_0xa5d6('0x4f')],{'include':[{'model':db[_0xa5d6('0x5d')],'as':_0xa5d6('0x57')},{'model':db[_0xa5d6('0x5d')],'as':'Descriptions'}]});}return null;})[_0xa5d6('0x19')](respondWithResult(_0x344ea7,null))[_0xa5d6('0x24')](handleError(_0x344ea7,null));};exports[_0xa5d6('0x5e')]=function(_0x20d4aa,_0x21874a,_0x1e6e60){return db['FreshdeskAccount'][_0xa5d6('0x53')]({'where':{'id':_0x20d4aa[_0xa5d6('0x50')]['id']},'attributes':['id',_0xa5d6('0x5f'),'apiKey']})[_0xa5d6('0x19')](handleEntityNotFound(_0x21874a,null))[_0xa5d6('0x19')](function(_0xcec358){if(_0xcec358){return rp({'method':_0xa5d6('0x60'),'uri':util[_0xa5d6('0x61')](_0xa5d6('0x62'),_0xcec358[_0xa5d6('0x5f')],_0xa5d6('0x63')),'headers':{'Authorization':util[_0xa5d6('0x61')](_0xa5d6('0x64'),new Buffer(util[_0xa5d6('0x61')](_0xa5d6('0x65'),_0xcec358[_0xa5d6('0x66')]))[_0xa5d6('0x67')](_0xa5d6('0x68')))},'json':!![]});}})['then'](function(_0x232582){if(_0x232582){var _0x38e151=[_0xa5d6('0x69'),_0xa5d6('0x6a'),_0xa5d6('0x6b'),_0xa5d6('0x6c'),_0xa5d6('0x26'),_0xa5d6('0x6d'),_0xa5d6('0x6e'),_0xa5d6('0x6f'),_0xa5d6('0x70'),'group',_0xa5d6('0x71')];_[_0xa5d6('0x72')](_0x232582,function(_0x5e8e71){return _0x38e151['includes'](_0x5e8e71[_0xa5d6('0x2f')])||!_0x5e8e71[_0xa5d6('0x73')]&&_0x5e8e71[_0xa5d6('0x59')]!=='custom_text';});return{'count':_0x232582[_0xa5d6('0x3a')],'rows':_[_0xa5d6('0x55')](_0x232582,function(_0x43b159){return{'id':_0x43b159[_0xa5d6('0x2f')],'name':_0x43b159[_0xa5d6('0x74')],'custom':!_0x43b159[_0xa5d6('0x73')],'options':_0x43b159[_0xa5d6('0x75')]?_[_0xa5d6('0x55')](_0x43b159['choices'],function(_0x4c654a){return{'name':_[_0xa5d6('0x76')](_0x4c654a),'value':_0x4c654a};}):[]};})};}})[_0xa5d6('0x19')](respondWithResult(_0x21874a,null))[_0xa5d6('0x24')](function(_0x2ce3af){var _0x538855=_0x20d4aa[_0xa5d6('0x35')][_0xa5d6('0x77')]?0x1f4:_0x2ce3af['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x538855,JSON[_0xa5d6('0x1e')](_0x2ce3af));delete _0x2ce3af[_0xa5d6('0x2f')];if(_0x538855===0x191){_0x538855=0x190;}_0x21874a[_0xa5d6('0x26')](_0x538855)[_0xa5d6('0x30')](_0x20d4aa[_0xa5d6('0x35')][_0xa5d6('0x77')]?{'message':'Wrong\x20credentials','statusCode':_0x2ce3af[_0xa5d6('0x78')]}:_0x2ce3af);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6594=['define','FreshdeskAccount','int_freshdesk_accounts','moment','bluebird','request-promise','./intFreshdeskAccount.attributes','../../components/integrations/configuration'];(function(_0x3ec1da,_0x1e36f5){var _0x472358=function(_0x1d41b1){while(--_0x1d41b1){_0x3ec1da['push'](_0x3ec1da['shift']());}};_0x472358(++_0x1e36f5);}(_0x6594,0xcb));var _0x4659=function(_0x1198a7,_0x58ca47){_0x1198a7=_0x1198a7-0x0;var _0x34e937=_0x6594[_0x1198a7];return _0x34e937;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x4659('0x0'));var BPromise=require(_0x4659('0x1'));var rp=require(_0x4659('0x2'));var attributes=require(_0x4659('0x3'));var integrations=require(_0x4659('0x4'));module['exports']=function(_0x4c1f68,_0x3ef3b1){return _0x4c1f68[_0x4659('0x5')](_0x4659('0x6'),attributes,{'tableName':_0x4659('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2b52=['api','moment','bluebird','request-promise','exports','define','FreshdeskAccount','int_freshdesk_accounts','lodash','util'];(function(_0x316549,_0x12f2cf){var _0x50f5eb=function(_0x2a53db){while(--_0x2a53db){_0x316549['push'](_0x316549['shift']());}};_0x50f5eb(++_0x12f2cf);}(_0x2b52,0x12a));var _0x22b5=function(_0x5c7a85,_0x41dd19){_0x5c7a85=_0x5c7a85-0x0;var _0x35290f=_0x2b52[_0x5c7a85];return _0x35290f;};'use strict';var _=require(_0x22b5('0x0'));var util=require(_0x22b5('0x1'));var logger=require('../../config/logger')(_0x22b5('0x2'));var moment=require(_0x22b5('0x3'));var BPromise=require(_0x22b5('0x4'));var rp=require(_0x22b5('0x5'));var attributes=require('./intFreshdeskAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0x22b5('0x6')]=function(_0x13a7d5,_0x18ddca){return _0x13a7d5[_0x22b5('0x7')](_0x22b5('0x8'),attributes,{'tableName':_0x22b5('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42f4=['message','info','result','catch','GetFreshdeskAccount','FreshdeskAccount','findAll','options','raw','where','attributes','limit','map','include','model','then','ShowFreshdeskAccount','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','jayson/promise','client','request','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FreshdeskAccount,\x20%s,\x20%s'];(function(_0x347772,_0xbba009){var _0xa974bb=function(_0x298a8a){while(--_0x298a8a){_0x347772['push'](_0x347772['shift']());}};_0xa974bb(++_0xbba009);}(_0x42f4,0x19d));var _0x442f=function(_0xa388a2,_0x40bde6){_0xa388a2=_0xa388a2-0x0;var _0x7ce7f6=_0x42f4[_0xa388a2];return _0x7ce7f6;};'use strict';var _=require(_0x442f('0x0'));var util=require('util');var moment=require(_0x442f('0x1'));var BPromise=require(_0x442f('0x2'));var rs=require(_0x442f('0x3'));var fs=require('fs');var db=require(_0x442f('0x4'))['db'];var utils=require(_0x442f('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x442f('0x6'));var client=jayson[_0x442f('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3ed622,_0x11b450,_0x23c5ba){return new BPromise(function(_0x37dfe7,_0x6c0b4b){return client[_0x442f('0x8')](_0x3ed622,_0x23c5ba)['then'](function(_0x144bcc){logger['info']('FreshdeskAccount,\x20%s,\x20%s',_0x11b450,'request\x20sent');logger[_0x442f('0x9')](_0x442f('0xa'),_0x11b450,_0x442f('0xb'),JSON[_0x442f('0xc')](_0x144bcc));if(_0x144bcc[_0x442f('0xd')]){if(_0x144bcc[_0x442f('0xd')][_0x442f('0xe')]===0x1f4){logger[_0x442f('0xd')](_0x442f('0xf'),_0x11b450,_0x144bcc[_0x442f('0xd')]['message']);return _0x6c0b4b(_0x144bcc[_0x442f('0xd')][_0x442f('0x10')]);}logger[_0x442f('0xd')](_0x442f('0xf'),_0x11b450,_0x144bcc[_0x442f('0xd')][_0x442f('0x10')]);return _0x37dfe7(_0x144bcc[_0x442f('0xd')][_0x442f('0x10')]);}else{logger[_0x442f('0x11')](_0x442f('0xf'),_0x11b450,_0x442f('0xb'));_0x37dfe7(_0x144bcc[_0x442f('0x12')][_0x442f('0x10')]);}})[_0x442f('0x13')](function(_0x23fe2e){logger[_0x442f('0xd')]('FreshdeskAccount,\x20%s,\x20%s',_0x11b450,_0x23fe2e);_0x6c0b4b(_0x23fe2e);});});}exports[_0x442f('0x14')]=function(_0x57bd3f){var _0x54c48a=this;return new Promise(function(_0x5668e0,_0x5e3dda){return db[_0x442f('0x15')][_0x442f('0x16')]({'raw':_0x57bd3f[_0x442f('0x17')]?_0x57bd3f[_0x442f('0x17')][_0x442f('0x18')]===undefined?!![]:![]:!![],'where':_0x57bd3f[_0x442f('0x17')]?_0x57bd3f['options'][_0x442f('0x19')]||null:null,'attributes':_0x57bd3f['options']?_0x57bd3f[_0x442f('0x17')][_0x442f('0x1a')]||null:null,'limit':_0x57bd3f[_0x442f('0x17')]?_0x57bd3f['options'][_0x442f('0x1b')]||null:null,'include':_0x57bd3f[_0x442f('0x17')]?_0x57bd3f['options']['include']?_[_0x442f('0x1c')](_0x57bd3f[_0x442f('0x17')][_0x442f('0x1d')],function(_0x4004e9){return{'model':db[_0x4004e9[_0x442f('0x1e')]],'as':_0x4004e9['as'],'attributes':_0x4004e9[_0x442f('0x1a')],'include':_0x4004e9[_0x442f('0x1d')]?_[_0x442f('0x1c')](_0x4004e9[_0x442f('0x1d')],function(_0x58bcc8){return{'model':db[_0x58bcc8[_0x442f('0x1e')]],'as':_0x58bcc8['as'],'attributes':_0x58bcc8[_0x442f('0x1a')],'include':_0x58bcc8[_0x442f('0x1d')]?_[_0x442f('0x1c')](_0x58bcc8['include'],function(_0x10b312){return{'model':db[_0x10b312[_0x442f('0x1e')]],'as':_0x10b312['as'],'attributes':_0x10b312[_0x442f('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x442f('0x1f')](function(_0x55c9dc){logger[_0x442f('0x11')](_0x442f('0x14'),_0x57bd3f);logger[_0x442f('0x9')]('GetFreshdeskAccount',_0x57bd3f,JSON[_0x442f('0xc')](_0x55c9dc));_0x5668e0(_0x55c9dc);})['catch'](function(_0x95dbe4){logger[_0x442f('0xd')](_0x442f('0x14'),_0x95dbe4['message'],_0x57bd3f);_0x5e3dda(_0x54c48a[_0x442f('0xd')](0x1f4,_0x95dbe4[_0x442f('0x10')]));});});};exports[_0x442f('0x20')]=function(_0x422019){var _0x3f8aa6=this;return new Promise(function(_0x59d0d8,_0x487491){return db[_0x442f('0x15')]['find']({'raw':_0x422019[_0x442f('0x17')]?_0x422019[_0x442f('0x17')][_0x442f('0x18')]===undefined?!![]:![]:!![],'where':_0x422019[_0x442f('0x17')]?_0x422019[_0x442f('0x17')][_0x442f('0x19')]||null:null,'attributes':_0x422019[_0x442f('0x17')]?_0x422019[_0x442f('0x17')][_0x442f('0x1a')]||null:null,'include':_0x422019['options']?_0x422019[_0x442f('0x17')]['include']?_[_0x442f('0x1c')](_0x422019[_0x442f('0x17')]['include'],function(_0x639611){return{'model':db[_0x639611[_0x442f('0x1e')]],'as':_0x639611['as'],'attributes':_0x639611[_0x442f('0x1a')],'include':_0x639611[_0x442f('0x1d')]?_[_0x442f('0x1c')](_0x639611['include'],function(_0x318f34){return{'model':db[_0x318f34[_0x442f('0x1e')]],'as':_0x318f34['as'],'attributes':_0x318f34[_0x442f('0x1a')],'include':_0x318f34[_0x442f('0x1d')]?_[_0x442f('0x1c')](_0x318f34['include'],function(_0x45d05b){return{'model':db[_0x45d05b[_0x442f('0x1e')]],'as':_0x45d05b['as'],'attributes':_0x45d05b['attributes']};}):[]};}):[]};}):[]:[]})[_0x442f('0x1f')](function(_0x3d36aa){logger['info'](_0x442f('0x20'),_0x422019);logger[_0x442f('0x9')](_0x442f('0x20'),_0x422019,JSON[_0x442f('0xc')](_0x3d36aa));_0x59d0d8(_0x3d36aa);})[_0x442f('0x13')](function(_0x3ad24f){logger[_0x442f('0xd')]('ShowFreshdeskAccount',_0x3ad24f[_0x442f('0x10')],_0x422019);_0x487491(_0x3f8aa6[_0x442f('0xd')](0x1f4,_0x3ad24f['message']));});});};
\ No newline at end of file
+var _0xcfda=['catch','GetFreshdeskAccount','FreshdeskAccount','options','where','attributes','limit','include','map','model','then','find','ShowFreshdeskAccount','debug','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','request\x20sent','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','FreshdeskAccount,\x20%s,\x20%s','message','result'];(function(_0x330141,_0x305168){var _0x1f3417=function(_0x5e1d32){while(--_0x5e1d32){_0x330141['push'](_0x330141['shift']());}};_0x1f3417(++_0x305168);}(_0xcfda,0x12e));var _0xacfd=function(_0x7f1444,_0x57ec32){_0x7f1444=_0x7f1444-0x0;var _0x230f24=_0xcfda[_0x7f1444];return _0x230f24;};'use strict';var _=require('lodash');var util=require(_0xacfd('0x0'));var moment=require(_0xacfd('0x1'));var BPromise=require(_0xacfd('0x2'));var rs=require(_0xacfd('0x3'));var fs=require('fs');var Redis=require(_0xacfd('0x4'));var db=require(_0xacfd('0x5'))['db'];var utils=require(_0xacfd('0x6'));var logger=require(_0xacfd('0x7'))(_0xacfd('0x8'));var config=require(_0xacfd('0x9'));var jayson=require(_0xacfd('0xa'));var client=jayson[_0xacfd('0xb')][_0xacfd('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x21470f,_0x248a49,_0x31b2ec){return new BPromise(function(_0x288499,_0x168aa4){return client['request'](_0x21470f,_0x31b2ec)['then'](function(_0x5d6ade){logger[_0xacfd('0xd')]('FreshdeskAccount,\x20%s,\x20%s',_0x248a49,_0xacfd('0xe'));logger['debug'](_0xacfd('0xf'),_0x248a49,'request\x20sent',JSON[_0xacfd('0x10')](_0x5d6ade));if(_0x5d6ade['error']){if(_0x5d6ade[_0xacfd('0x11')][_0xacfd('0x12')]===0x1f4){logger[_0xacfd('0x11')](_0xacfd('0x13'),_0x248a49,_0x5d6ade['error']['message']);return _0x168aa4(_0x5d6ade[_0xacfd('0x11')][_0xacfd('0x14')]);}logger[_0xacfd('0x11')](_0xacfd('0x13'),_0x248a49,_0x5d6ade[_0xacfd('0x11')][_0xacfd('0x14')]);return _0x288499(_0x5d6ade['error']['message']);}else{logger['info'](_0xacfd('0x13'),_0x248a49,_0xacfd('0xe'));_0x288499(_0x5d6ade[_0xacfd('0x15')][_0xacfd('0x14')]);}})[_0xacfd('0x16')](function(_0x5a79fc){logger[_0xacfd('0x11')](_0xacfd('0x13'),_0x248a49,_0x5a79fc);_0x168aa4(_0x5a79fc);});});}exports[_0xacfd('0x17')]=function(_0x32239d){var _0x5affbb=this;return new Promise(function(_0x19689a,_0x772b4d){return db[_0xacfd('0x18')]['findAll']({'raw':_0x32239d[_0xacfd('0x19')]?_0x32239d[_0xacfd('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x32239d[_0xacfd('0x19')]?_0x32239d[_0xacfd('0x19')][_0xacfd('0x1a')]||null:null,'attributes':_0x32239d[_0xacfd('0x19')]?_0x32239d[_0xacfd('0x19')][_0xacfd('0x1b')]||null:null,'limit':_0x32239d[_0xacfd('0x19')]?_0x32239d[_0xacfd('0x19')][_0xacfd('0x1c')]||null:null,'include':_0x32239d[_0xacfd('0x19')]?_0x32239d[_0xacfd('0x19')]['include']?_['map'](_0x32239d['options'][_0xacfd('0x1d')],function(_0x274525){return{'model':db[_0x274525['model']],'as':_0x274525['as'],'attributes':_0x274525[_0xacfd('0x1b')],'include':_0x274525[_0xacfd('0x1d')]?_[_0xacfd('0x1e')](_0x274525[_0xacfd('0x1d')],function(_0x4c8f16){return{'model':db[_0x4c8f16['model']],'as':_0x4c8f16['as'],'attributes':_0x4c8f16['attributes'],'include':_0x4c8f16['include']?_['map'](_0x4c8f16[_0xacfd('0x1d')],function(_0x22a127){return{'model':db[_0x22a127[_0xacfd('0x1f')]],'as':_0x22a127['as'],'attributes':_0x22a127[_0xacfd('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xacfd('0x20')](function(_0x263b08){logger[_0xacfd('0xd')]('GetFreshdeskAccount',_0x32239d);logger['debug'](_0xacfd('0x17'),_0x32239d,JSON[_0xacfd('0x10')](_0x263b08));_0x19689a(_0x263b08);})[_0xacfd('0x16')](function(_0x1f083d){logger[_0xacfd('0x11')](_0xacfd('0x17'),_0x1f083d[_0xacfd('0x14')],_0x32239d);_0x772b4d(_0x5affbb[_0xacfd('0x11')](0x1f4,_0x1f083d['message']));});});};exports['ShowFreshdeskAccount']=function(_0x4a7a24){var _0x4afe83=this;return new Promise(function(_0x85a337,_0x14d73d){return db[_0xacfd('0x18')][_0xacfd('0x21')]({'raw':_0x4a7a24['options']?_0x4a7a24['options']['raw']===undefined?!![]:![]:!![],'where':_0x4a7a24[_0xacfd('0x19')]?_0x4a7a24[_0xacfd('0x19')][_0xacfd('0x1a')]||null:null,'attributes':_0x4a7a24[_0xacfd('0x19')]?_0x4a7a24[_0xacfd('0x19')][_0xacfd('0x1b')]||null:null,'include':_0x4a7a24[_0xacfd('0x19')]?_0x4a7a24[_0xacfd('0x19')][_0xacfd('0x1d')]?_[_0xacfd('0x1e')](_0x4a7a24[_0xacfd('0x19')][_0xacfd('0x1d')],function(_0x2c9f82){return{'model':db[_0x2c9f82['model']],'as':_0x2c9f82['as'],'attributes':_0x2c9f82[_0xacfd('0x1b')],'include':_0x2c9f82[_0xacfd('0x1d')]?_[_0xacfd('0x1e')](_0x2c9f82[_0xacfd('0x1d')],function(_0x2ddfd4){return{'model':db[_0x2ddfd4[_0xacfd('0x1f')]],'as':_0x2ddfd4['as'],'attributes':_0x2ddfd4['attributes'],'include':_0x2ddfd4[_0xacfd('0x1d')]?_[_0xacfd('0x1e')](_0x2ddfd4['include'],function(_0x6fa1c2){return{'model':db[_0x6fa1c2[_0xacfd('0x1f')]],'as':_0x6fa1c2['as'],'attributes':_0x6fa1c2[_0xacfd('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xacfd('0x20')](function(_0x227000){logger[_0xacfd('0xd')](_0xacfd('0x22'),_0x4a7a24);logger[_0xacfd('0x23')](_0xacfd('0x22'),_0x4a7a24,JSON['stringify'](_0x227000));_0x85a337(_0x227000);})[_0xacfd('0x16')](function(_0x2ee290){logger[_0xacfd('0x11')](_0xacfd('0x22'),_0x2ee290[_0xacfd('0x14')],_0x4a7a24);_0x14d73d(_0x4afe83[_0xacfd('0x11')](0x1f4,_0x2ee290['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3baf=['/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','post','create','setTags','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskConfiguration.controller','get','isAuthenticated','index','/:id'];(function(_0x5c16ad,_0x24312a){var _0xf9d36e=function(_0x4517cc){while(--_0x4517cc){_0x5c16ad['push'](_0x5c16ad['shift']());}};_0xf9d36e(++_0x24312a);}(_0x3baf,0xf7));var _0xf3ba=function(_0x2eeed4,_0x28dc98){_0x2eeed4=_0x2eeed4-0x0;var _0x56099d=_0x3baf[_0x2eeed4];return _0x56099d;};'use strict';var multer=require(_0xf3ba('0x0'));var util=require(_0xf3ba('0x1'));var path=require(_0xf3ba('0x2'));var timeout=require(_0xf3ba('0x3'));var express=require(_0xf3ba('0x4'));var router=express[_0xf3ba('0x5')]();var auth=require(_0xf3ba('0x6'));var interaction=require(_0xf3ba('0x7'));var config=require(_0xf3ba('0x8'));var controller=require(_0xf3ba('0x9'));router[_0xf3ba('0xa')]('/',auth[_0xf3ba('0xb')](),controller[_0xf3ba('0xc')]);router[_0xf3ba('0xa')](_0xf3ba('0xd'),auth['isAuthenticated'](),controller['show']);router['get'](_0xf3ba('0xe'),auth['isAuthenticated'](),controller[_0xf3ba('0xf')]);router[_0xf3ba('0xa')](_0xf3ba('0x10'),auth[_0xf3ba('0xb')](),controller[_0xf3ba('0x11')]);router[_0xf3ba('0xa')](_0xf3ba('0x12'),auth[_0xf3ba('0xb')](),controller[_0xf3ba('0x13')]);router[_0xf3ba('0xa')](_0xf3ba('0x14'),auth[_0xf3ba('0xb')](),controller[_0xf3ba('0x15')]);router[_0xf3ba('0x16')]('/',auth[_0xf3ba('0xb')](),controller[_0xf3ba('0x17')]);router[_0xf3ba('0x16')](_0xf3ba('0x14'),auth['isAuthenticated'](),controller[_0xf3ba('0x18')]);router['put'](_0xf3ba('0xd'),auth[_0xf3ba('0xb')](),controller[_0xf3ba('0x19')]);router[_0xf3ba('0x1a')](_0xf3ba('0xd'),auth['isAuthenticated'](),controller[_0xf3ba('0x1b')]);module[_0xf3ba('0x1c')]=router;
\ No newline at end of file
+var _0xeec6=['get','index','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','/:id/tags','getTags','post','create','setTags','put','/:id','update','delete','destroy','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskConfiguration.controller'];(function(_0x46bc61,_0x3ee5cc){var _0x43e57e=function(_0x48b4b8){while(--_0x48b4b8){_0x46bc61['push'](_0x46bc61['shift']());}};_0x43e57e(++_0x3ee5cc);}(_0xeec6,0x1c2));var _0x6eec=function(_0x35dfe6,_0x4244fa){_0x35dfe6=_0x35dfe6-0x0;var _0x59651c=_0xeec6[_0x35dfe6];return _0x59651c;};'use strict';var multer=require(_0x6eec('0x0'));var util=require(_0x6eec('0x1'));var path=require(_0x6eec('0x2'));var timeout=require(_0x6eec('0x3'));var express=require('express');var router=express[_0x6eec('0x4')]();var auth=require(_0x6eec('0x5'));var interaction=require(_0x6eec('0x6'));var config=require(_0x6eec('0x7'));var controller=require(_0x6eec('0x8'));router[_0x6eec('0x9')]('/',auth['isAuthenticated'](),controller[_0x6eec('0xa')]);router[_0x6eec('0x9')]('/:id',auth[_0x6eec('0xb')](),controller[_0x6eec('0xc')]);router[_0x6eec('0x9')](_0x6eec('0xd'),auth['isAuthenticated'](),controller[_0x6eec('0xe')]);router[_0x6eec('0x9')](_0x6eec('0xf'),auth['isAuthenticated'](),controller['getSubjects']);router['get'](_0x6eec('0x10'),auth[_0x6eec('0xb')](),controller['getDescriptions']);router['get'](_0x6eec('0x11'),auth['isAuthenticated'](),controller[_0x6eec('0x12')]);router[_0x6eec('0x13')]('/',auth[_0x6eec('0xb')](),controller[_0x6eec('0x14')]);router[_0x6eec('0x13')]('/:id/tags',auth[_0x6eec('0xb')](),controller[_0x6eec('0x15')]);router[_0x6eec('0x16')](_0x6eec('0x17'),auth[_0x6eec('0xb')](),controller[_0x6eec('0x18')]);router[_0x6eec('0x19')](_0x6eec('0x17'),auth[_0x6eec('0xb')](),controller[_0x6eec('0x1a')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x168d=['STRING','sequelize','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x168d,0x1cc));var _0xd168=function(_0x4d613c,_0x55f220){_0x4d613c=_0x4d613c-0x0;var _0x301fe3=_0x168d[_0x4d613c];return _0x301fe3;};'use strict';var Sequelize=require(_0xd168('0x0'));module[_0xd168('0x1')]={'name':{'type':Sequelize[_0xd168('0x2')]},'description':{'type':Sequelize[_0xd168('0x2')]}};
\ No newline at end of file
+var _0x3e46=['STRING','sequelize'];(function(_0x36c5b0,_0x5001da){var _0xf19333=function(_0x1e880a){while(--_0x1e880a){_0x36c5b0['push'](_0x36c5b0['shift']());}};_0xf19333(++_0x5001da);}(_0x3e46,0xbf));var _0x63e4=function(_0x1b7f57,_0x2688bf){_0x1b7f57=_0x1b7f57-0x0;var _0x14b436=_0x3e46[_0x1b7f57];return _0x14b436;};'use strict';var Sequelize=require(_0x63e4('0x0'));module['exports']={'name':{'type':Sequelize[_0x63e4('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0832=['merge','filter','map','options','includeAll','rows','show','params','rawAttributes','include','create','body','find','getFields','findOne','FreshdeskField','pick','getSubjects','getDescriptions','getTags','Tag','setTags','ids','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../config/logger','../../config/utils','../../mysqldb','jayson/promise','http','request','then','info','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','FreshdeskConfiguration','query','dateStart','dateEnd','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','add','day'];(function(_0x1797cd,_0x12cd67){var _0x38cda5=function(_0x330fe1){while(--_0x330fe1){_0x1797cd['push'](_0x1797cd['shift']());}};_0x38cda5(++_0x12cd67);}(_0x0832,0x76));var _0x2083=function(_0x228208,_0xa9bdbb){_0x228208=_0x228208-0x0;var _0x2ff1d6=_0x0832[_0x228208];return _0x2ff1d6;};'use strict';var pdf=require(_0x2083('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x2083('0x1'));var zipdir=require(_0x2083('0x2'));var jsonpatch=require(_0x2083('0x3'));var rp=require(_0x2083('0x4'));var moment=require(_0x2083('0x5'));var BPromise=require(_0x2083('0x6'));var Mustache=require(_0x2083('0x7'));var util=require(_0x2083('0x8'));var path=require(_0x2083('0x9'));var sox=require(_0x2083('0xa'));var csv=require(_0x2083('0xb'));var ejs=require(_0x2083('0xc'));var fs=require('fs');var _=require(_0x2083('0xd'));var squel=require(_0x2083('0xe'));var crypto=require(_0x2083('0xf'));var jsforce=require(_0x2083('0x10'));var deskjs=require(_0x2083('0x11'));var toCsv=require('to-csv');var querystring=require(_0x2083('0x12'));var Papa=require(_0x2083('0x13'));var qs=require('../../components/parsers/qs');var logger=require(_0x2083('0x14'))('api');var utils=require(_0x2083('0x15'));var config=require('../../config/environment');var db=require(_0x2083('0x16'))['db'];var jayson=require(_0x2083('0x17'));var client=jayson['client'][_0x2083('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x1e4830,_0x2d536c,_0x3df8c4,_0x4ffd83){return new BPromise(function(_0x3947b6,_0x5298dc){var _0x1e3deb=_0x4ffd83||client;return _0x1e3deb[_0x2083('0x19')](_0x1e4830,_0x3df8c4)[_0x2083('0x1a')](function(_0x5874d8){logger[_0x2083('0x1b')](_0x2083('0x1c'),_0x2d536c,_0x2083('0x1d'));logger['debug'](_0x2083('0x1e'),_0x2d536c,'request\x20sent',JSON[_0x2083('0x1f')](_0x5874d8));if(_0x5874d8['error']){if(_0x5874d8[_0x2083('0x20')][_0x2083('0x21')]===0x1f4){logger[_0x2083('0x20')](_0x2083('0x1c'),_0x2d536c,_0x5874d8[_0x2083('0x20')][_0x2083('0x22')]);return _0x5298dc(_0x5874d8[_0x2083('0x20')]['message']);}logger[_0x2083('0x20')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x2d536c,_0x5874d8[_0x2083('0x20')][_0x2083('0x22')]);return _0x3947b6(_0x5874d8[_0x2083('0x20')][_0x2083('0x22')]);}else{logger[_0x2083('0x1b')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x2d536c,_0x2083('0x1d'));_0x3947b6(_0x5874d8[_0x2083('0x23')][_0x2083('0x22')]);}})[_0x2083('0x24')](function(_0x13468c){logger[_0x2083('0x20')](_0x2083('0x1c'),_0x2d536c,_0x13468c);_0x5298dc(_0x13468c);});});}function respondWithStatusCode(_0x23f074,_0x15e9f2){_0x15e9f2=_0x15e9f2||0xcc;return function(_0x7f6f66){if(_0x7f6f66){return _0x23f074[_0x2083('0x25')](_0x15e9f2);}return _0x23f074[_0x2083('0x26')](_0x15e9f2)[_0x2083('0x27')]();};}function respondWithResult(_0x2ae29c,_0x81f953){_0x81f953=_0x81f953||0xc8;return function(_0x3ad7a9){if(_0x3ad7a9){return _0x2ae29c[_0x2083('0x26')](_0x81f953)[_0x2083('0x28')](_0x3ad7a9);}};}function respondWithFilteredResult(_0x23dd10,_0x140029){return function(_0x4ec964){if(_0x4ec964){var _0x310d94=_0x4ec964[_0x2083('0x29')],_0x157fd1=_0x140029[_0x2083('0x2a')],_0x283485=_0x140029[_0x2083('0x2a')]+_0x140029[_0x2083('0x2b')],_0x478715;if(_0x283485>=_0x310d94){_0x283485=_0x310d94;_0x478715=0xc8;}else{_0x478715=0xce;}_0x23dd10[_0x2083('0x26')](_0x478715);return _0x23dd10['set'](_0x2083('0x2c'),_0x157fd1+'-'+_0x283485+'/'+_0x310d94)[_0x2083('0x28')](_0x4ec964);}return null;};}function patchUpdates(_0x3a303f){return function(_0x3b5e53){try{jsonpatch[_0x2083('0x2d')](_0x3b5e53,_0x3a303f,!![]);}catch(_0x25a6a8){return BPromise[_0x2083('0x2e')](_0x25a6a8);}return _0x3b5e53[_0x2083('0x2f')]();};}function saveUpdates(_0x52136a,_0x29a17e){return function(_0x4d454e){if(_0x4d454e){return _0x4d454e[_0x2083('0x30')](_0x52136a)['then'](function(_0x42ed49){return _0x42ed49;});}return null;};}function removeEntity(_0x211549,_0x2f3f8f){return function(_0x43b084){if(_0x43b084){return _0x43b084[_0x2083('0x31')]()[_0x2083('0x1a')](function(){_0x211549[_0x2083('0x26')](0xcc)[_0x2083('0x27')]();});}};}function handleEntityNotFound(_0x25e0ea,_0x57934e){return function(_0x45cffb){if(!_0x45cffb){_0x25e0ea[_0x2083('0x25')](0x194);}return _0x45cffb;};}function handleError(_0x228673,_0x4127a0){_0x4127a0=_0x4127a0||0x1f4;return function(_0x3b8586){logger[_0x2083('0x20')](_0x3b8586[_0x2083('0x32')]);if(_0x3b8586[_0x2083('0x33')]){delete _0x3b8586[_0x2083('0x33')];}_0x228673[_0x2083('0x26')](_0x4127a0)[_0x2083('0x34')](_0x3b8586);};}exports[_0x2083('0x35')]=function(_0x2f34bf,_0x1b39c6){var _0x5461db={},_0x5ec003={},_0x46cb4e={'count':0x0,'rows':[]};var _0x294794=db[_0x2083('0x36')]['rawAttributes'];_0x5ec003['model']=_['keys'](_0x294794);var _0x272fcc={'dateStart':_0x2f34bf[_0x2083('0x37')][_0x2083('0x38')],'dateEnd':_0x2f34bf[_0x2083('0x37')]['dateEnd']};delete _0x2f34bf[_0x2083('0x37')][_0x2083('0x38')];delete _0x2f34bf[_0x2083('0x37')][_0x2083('0x39')];_0x5ec003[_0x2083('0x37')]=_[_0x2083('0x3a')](_0x2f34bf['query']);_0x5ec003[_0x2083('0x3b')]=_['intersection'](_0x5ec003[_0x2083('0x3c')],_0x5ec003[_0x2083('0x37')]);_0x5461db[_0x2083('0x3d')]=_[_0x2083('0x3e')](_0x5ec003[_0x2083('0x3c')],qs[_0x2083('0x3f')](_0x2f34bf[_0x2083('0x37')][_0x2083('0x3f')]));_0x5461db[_0x2083('0x3d')]=_0x5461db[_0x2083('0x3d')][_0x2083('0x40')]?_0x5461db[_0x2083('0x3d')]:_0x5ec003[_0x2083('0x3c')];if(!_0x2f34bf[_0x2083('0x37')][_0x2083('0x41')](_0x2083('0x42'))){_0x5461db[_0x2083('0x2b')]=qs[_0x2083('0x2b')](_0x2f34bf[_0x2083('0x37')][_0x2083('0x2b')]);_0x5461db[_0x2083('0x2a')]=qs[_0x2083('0x2a')](_0x2f34bf['query']['offset']);}_0x5461db[_0x2083('0x43')]=qs['sort'](_0x2f34bf['query'][_0x2083('0x44')]);_0x5461db[_0x2083('0x45')]=qs[_0x2083('0x3b')](_['pick'](_0x2f34bf[_0x2083('0x37')],_0x5ec003['filters']));if(_0x272fcc[_0x2083('0x38')]){if(_0x272fcc[_0x2083('0x39')]){_0x272fcc[_0x2083('0x39')]=moment(_0x272fcc[_0x2083('0x39')])[_0x2083('0x46')](0x1,'day');}else{_0x272fcc['dateEnd']=moment(_0x272fcc[_0x2083('0x38')])[_0x2083('0x46')](0x1,_0x2083('0x47'));}_[_0x2083('0x48')](_0x5461db[_0x2083('0x45')],{'createdAt':{'$gte':_0x272fcc[_0x2083('0x38')],'$lte':_0x272fcc[_0x2083('0x39')]}});}if(_0x2f34bf[_0x2083('0x37')][_0x2083('0x49')]){_0x5461db[_0x2083('0x45')]=_['merge'](_0x5461db[_0x2083('0x45')],{'$or':_[_0x2083('0x4a')](_0x5461db[_0x2083('0x3d')],function(_0x450025){var _0x380ca1={};_0x380ca1[_0x450025]={'$like':'%'+_0x2f34bf[_0x2083('0x37')][_0x2083('0x49')]+'%'};return _0x380ca1;})});}_0x5461db=_['merge']({},_0x5461db,_0x2f34bf[_0x2083('0x4b')]);var _0x2bdac1={'where':_0x5461db[_0x2083('0x45')]};return db[_0x2083('0x36')][_0x2083('0x29')](_0x2bdac1)[_0x2083('0x1a')](function(_0x22c056){_0x46cb4e[_0x2083('0x29')]=_0x22c056;if(_0x2f34bf[_0x2083('0x37')][_0x2083('0x4c')]){_0x5461db['include']=[{'all':!![]}];}return db[_0x2083('0x36')]['findAll'](_0x5461db);})[_0x2083('0x1a')](function(_0x1fce28){_0x46cb4e[_0x2083('0x4d')]=_0x1fce28;return _0x46cb4e;})[_0x2083('0x1a')](respondWithFilteredResult(_0x1b39c6,_0x5461db))[_0x2083('0x24')](handleError(_0x1b39c6,null));};exports[_0x2083('0x4e')]=function(_0x3ff712,_0x2a97e4){var _0x47158d={'raw':![],'where':{'id':_0x3ff712[_0x2083('0x4f')]['id']}},_0x50a21f={};_0x50a21f['model']=_[_0x2083('0x3a')](db['FreshdeskConfiguration'][_0x2083('0x50')]);_0x50a21f[_0x2083('0x37')]=_['keys'](_0x3ff712[_0x2083('0x37')]);_0x50a21f['filters']=_[_0x2083('0x3e')](_0x50a21f['model'],_0x50a21f[_0x2083('0x37')]);_0x47158d[_0x2083('0x3d')]=_[_0x2083('0x3e')](_0x50a21f[_0x2083('0x3c')],qs['fields'](_0x3ff712['query'][_0x2083('0x3f')]));_0x47158d[_0x2083('0x3d')]=_0x47158d[_0x2083('0x3d')][_0x2083('0x40')]?_0x47158d['attributes']:_0x50a21f[_0x2083('0x3c')];if(_0x3ff712[_0x2083('0x37')]['includeAll']){_0x47158d[_0x2083('0x51')]=[{'all':!![]}];}_0x47158d=_[_0x2083('0x48')]({},_0x47158d,_0x3ff712[_0x2083('0x4b')]);return db['FreshdeskConfiguration']['find'](_0x47158d)['then'](handleEntityNotFound(_0x2a97e4,null))[_0x2083('0x1a')](respondWithResult(_0x2a97e4,null))['catch'](handleError(_0x2a97e4,null));};exports[_0x2083('0x52')]=function(_0x2e4994,_0x15c1f5){return db[_0x2083('0x36')]['create'](_0x2e4994[_0x2083('0x53')],{})[_0x2083('0x1a')](respondWithResult(_0x15c1f5,0xc9))[_0x2083('0x24')](handleError(_0x15c1f5,null));};exports['update']=function(_0xe562e6,_0x50e4e2){if(_0xe562e6[_0x2083('0x53')]['id']){delete _0xe562e6['body']['id'];}return db[_0x2083('0x36')][_0x2083('0x54')]({'where':{'id':_0xe562e6[_0x2083('0x4f')]['id']}})['then'](handleEntityNotFound(_0x50e4e2,null))[_0x2083('0x1a')](saveUpdates(_0xe562e6[_0x2083('0x53')],null))['then'](respondWithResult(_0x50e4e2,null))[_0x2083('0x24')](handleError(_0x50e4e2,null));};exports[_0x2083('0x31')]=function(_0x2b15c5,_0x42e37b){return db[_0x2083('0x36')][_0x2083('0x54')]({'where':{'id':_0x2b15c5['params']['id']}})[_0x2083('0x1a')](handleEntityNotFound(_0x42e37b,null))['then'](removeEntity(_0x42e37b,null))[_0x2083('0x24')](handleError(_0x42e37b,null));};exports[_0x2083('0x55')]=function(_0x3823ae,_0x14032b,_0x3a1664){var _0x53ee12={};var _0x1e4b76={};var _0x33c22d;var _0x557240;return db['FreshdeskConfiguration'][_0x2083('0x56')]({'where':{'id':_0x3823ae[_0x2083('0x4f')]['id']}})['then'](handleEntityNotFound(_0x14032b,null))[_0x2083('0x1a')](function(_0x4bd2f4){if(_0x4bd2f4){_0x33c22d=_0x4bd2f4;_0x1e4b76[_0x2083('0x3c')]=_[_0x2083('0x3a')](db[_0x2083('0x57')][_0x2083('0x50')]);_0x1e4b76['query']=_[_0x2083('0x3a')](_0x3823ae[_0x2083('0x37')]);_0x1e4b76[_0x2083('0x3b')]=_[_0x2083('0x3e')](_0x1e4b76['model'],_0x1e4b76[_0x2083('0x37')]);_0x53ee12['attributes']=_['intersection'](_0x1e4b76[_0x2083('0x3c')],qs[_0x2083('0x3f')](_0x3823ae[_0x2083('0x37')][_0x2083('0x3f')]));_0x53ee12[_0x2083('0x3d')]=_0x53ee12[_0x2083('0x3d')][_0x2083('0x40')]?_0x53ee12['attributes']:_0x1e4b76[_0x2083('0x3c')];_0x53ee12[_0x2083('0x43')]=qs[_0x2083('0x44')](_0x3823ae['query'][_0x2083('0x44')]);_0x53ee12[_0x2083('0x45')]=qs['filters'](_[_0x2083('0x58')](_0x3823ae[_0x2083('0x37')],_0x1e4b76[_0x2083('0x3b')]));if(_0x3823ae[_0x2083('0x37')][_0x2083('0x49')]){_0x53ee12[_0x2083('0x45')]=_[_0x2083('0x48')](_0x53ee12[_0x2083('0x45')],{'$or':_['map'](_0x53ee12[_0x2083('0x3d')],function(_0x2c8fb1){var _0x3e076c={};_0x3e076c[_0x2c8fb1]={'$like':'%'+_0x3823ae['query']['filter']+'%'};return _0x3e076c;})});}_0x53ee12=_['merge']({},_0x53ee12,_0x3823ae[_0x2083('0x4b')]);return _0x33c22d[_0x2083('0x55')](_0x53ee12);}})[_0x2083('0x1a')](function(_0x4a9aeb){if(_0x4a9aeb){_0x557240=_0x4a9aeb[_0x2083('0x40')];if(!_0x3823ae[_0x2083('0x37')][_0x2083('0x41')]('nolimit')){_0x53ee12[_0x2083('0x2b')]=qs['limit'](_0x3823ae[_0x2083('0x37')][_0x2083('0x2b')]);_0x53ee12['offset']=qs[_0x2083('0x2a')](_0x3823ae[_0x2083('0x37')][_0x2083('0x2a')]);}return _0x33c22d[_0x2083('0x55')](_0x53ee12);}})[_0x2083('0x1a')](function(_0x4d9268){if(_0x4d9268){return _0x4d9268?{'count':_0x557240,'rows':_0x4d9268}:null;}})[_0x2083('0x1a')](respondWithResult(_0x14032b,null))[_0x2083('0x24')](handleError(_0x14032b,null));};exports[_0x2083('0x59')]=function(_0x163225,_0x1bab40,_0x5ef73b){var _0x40456f={};var _0xc878f={};var _0x2af7fe;var _0x20404a;return db[_0x2083('0x36')][_0x2083('0x56')]({'where':{'id':_0x163225[_0x2083('0x4f')]['id']}})[_0x2083('0x1a')](handleEntityNotFound(_0x1bab40,null))[_0x2083('0x1a')](function(_0x28c5f0){if(_0x28c5f0){_0x2af7fe=_0x28c5f0;_0xc878f['model']=_[_0x2083('0x3a')](db['FreshdeskField'][_0x2083('0x50')]);_0xc878f['query']=_['keys'](_0x163225[_0x2083('0x37')]);_0xc878f['filters']=_[_0x2083('0x3e')](_0xc878f[_0x2083('0x3c')],_0xc878f[_0x2083('0x37')]);_0x40456f[_0x2083('0x3d')]=_[_0x2083('0x3e')](_0xc878f[_0x2083('0x3c')],qs['fields'](_0x163225[_0x2083('0x37')][_0x2083('0x3f')]));_0x40456f[_0x2083('0x3d')]=_0x40456f['attributes'][_0x2083('0x40')]?_0x40456f[_0x2083('0x3d')]:_0xc878f[_0x2083('0x3c')];_0x40456f['order']=qs[_0x2083('0x44')](_0x163225[_0x2083('0x37')][_0x2083('0x44')]);_0x40456f[_0x2083('0x45')]=qs[_0x2083('0x3b')](_['pick'](_0x163225['query'],_0xc878f[_0x2083('0x3b')]));if(_0x163225[_0x2083('0x37')][_0x2083('0x49')]){_0x40456f['where']=_[_0x2083('0x48')](_0x40456f[_0x2083('0x45')],{'$or':_['map'](_0x40456f[_0x2083('0x3d')],function(_0x468d69){var _0x49a6bf={};_0x49a6bf[_0x468d69]={'$like':'%'+_0x163225[_0x2083('0x37')][_0x2083('0x49')]+'%'};return _0x49a6bf;})});}_0x40456f=_[_0x2083('0x48')]({},_0x40456f,_0x163225[_0x2083('0x4b')]);return _0x2af7fe[_0x2083('0x59')](_0x40456f);}})[_0x2083('0x1a')](function(_0x17ebc7){if(_0x17ebc7){_0x20404a=_0x17ebc7[_0x2083('0x40')];if(!_0x163225['query'][_0x2083('0x41')](_0x2083('0x42'))){_0x40456f[_0x2083('0x2b')]=qs[_0x2083('0x2b')](_0x163225[_0x2083('0x37')]['limit']);_0x40456f[_0x2083('0x2a')]=qs[_0x2083('0x2a')](_0x163225[_0x2083('0x37')][_0x2083('0x2a')]);}return _0x2af7fe['getSubjects'](_0x40456f);}})[_0x2083('0x1a')](function(_0x623580){if(_0x623580){return _0x623580?{'count':_0x20404a,'rows':_0x623580}:null;}})[_0x2083('0x1a')](respondWithResult(_0x1bab40,null))[_0x2083('0x24')](handleError(_0x1bab40,null));};exports[_0x2083('0x5a')]=function(_0x25e031,_0x5c104e,_0xddc17a){var _0x5434b4={};var _0x4f6d6b={};var _0xc6d652;var _0x123110;return db['FreshdeskConfiguration'][_0x2083('0x56')]({'where':{'id':_0x25e031[_0x2083('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5c104e,null))[_0x2083('0x1a')](function(_0x4789ac){if(_0x4789ac){_0xc6d652=_0x4789ac;_0x4f6d6b['model']=_[_0x2083('0x3a')](db[_0x2083('0x57')][_0x2083('0x50')]);_0x4f6d6b[_0x2083('0x37')]=_[_0x2083('0x3a')](_0x25e031[_0x2083('0x37')]);_0x4f6d6b[_0x2083('0x3b')]=_[_0x2083('0x3e')](_0x4f6d6b[_0x2083('0x3c')],_0x4f6d6b[_0x2083('0x37')]);_0x5434b4[_0x2083('0x3d')]=_[_0x2083('0x3e')](_0x4f6d6b[_0x2083('0x3c')],qs[_0x2083('0x3f')](_0x25e031[_0x2083('0x37')][_0x2083('0x3f')]));_0x5434b4[_0x2083('0x3d')]=_0x5434b4[_0x2083('0x3d')][_0x2083('0x40')]?_0x5434b4[_0x2083('0x3d')]:_0x4f6d6b[_0x2083('0x3c')];_0x5434b4[_0x2083('0x43')]=qs[_0x2083('0x44')](_0x25e031['query'][_0x2083('0x44')]);_0x5434b4[_0x2083('0x45')]=qs[_0x2083('0x3b')](_['pick'](_0x25e031[_0x2083('0x37')],_0x4f6d6b[_0x2083('0x3b')]));if(_0x25e031['query']['filter']){_0x5434b4[_0x2083('0x45')]=_[_0x2083('0x48')](_0x5434b4[_0x2083('0x45')],{'$or':_[_0x2083('0x4a')](_0x5434b4['attributes'],function(_0x404b1e){var _0x159d7c={};_0x159d7c[_0x404b1e]={'$like':'%'+_0x25e031['query']['filter']+'%'};return _0x159d7c;})});}_0x5434b4=_['merge']({},_0x5434b4,_0x25e031['options']);return _0xc6d652[_0x2083('0x5a')](_0x5434b4);}})['then'](function(_0x2a2b91){if(_0x2a2b91){_0x123110=_0x2a2b91[_0x2083('0x40')];if(!_0x25e031[_0x2083('0x37')][_0x2083('0x41')](_0x2083('0x42'))){_0x5434b4[_0x2083('0x2b')]=qs[_0x2083('0x2b')](_0x25e031[_0x2083('0x37')][_0x2083('0x2b')]);_0x5434b4[_0x2083('0x2a')]=qs[_0x2083('0x2a')](_0x25e031[_0x2083('0x37')]['offset']);}return _0xc6d652['getDescriptions'](_0x5434b4);}})[_0x2083('0x1a')](function(_0x19a0b4){if(_0x19a0b4){return _0x19a0b4?{'count':_0x123110,'rows':_0x19a0b4}:null;}})[_0x2083('0x1a')](respondWithResult(_0x5c104e,null))[_0x2083('0x24')](handleError(_0x5c104e,null));};exports[_0x2083('0x5b')]=function(_0x34a45a,_0x55223a,_0x354093){var _0xdd4423={};var _0x187ca8={};var _0x21e326;var _0x5f262d;return db[_0x2083('0x36')][_0x2083('0x56')]({'where':{'id':_0x34a45a[_0x2083('0x4f')]['id']}})['then'](handleEntityNotFound(_0x55223a,null))[_0x2083('0x1a')](function(_0x32178b){if(_0x32178b){_0x21e326=_0x32178b;_0x187ca8[_0x2083('0x3c')]=_[_0x2083('0x3a')](db[_0x2083('0x5c')][_0x2083('0x50')]);_0x187ca8['query']=_[_0x2083('0x3a')](_0x34a45a[_0x2083('0x37')]);_0x187ca8[_0x2083('0x3b')]=_[_0x2083('0x3e')](_0x187ca8[_0x2083('0x3c')],_0x187ca8[_0x2083('0x37')]);_0xdd4423[_0x2083('0x3d')]=_[_0x2083('0x3e')](_0x187ca8[_0x2083('0x3c')],qs['fields'](_0x34a45a[_0x2083('0x37')][_0x2083('0x3f')]));_0xdd4423[_0x2083('0x3d')]=_0xdd4423[_0x2083('0x3d')][_0x2083('0x40')]?_0xdd4423[_0x2083('0x3d')]:_0x187ca8[_0x2083('0x3c')];_0xdd4423[_0x2083('0x43')]=qs['sort'](_0x34a45a[_0x2083('0x37')][_0x2083('0x44')]);_0xdd4423['where']=qs[_0x2083('0x3b')](_[_0x2083('0x58')](_0x34a45a[_0x2083('0x37')],_0x187ca8[_0x2083('0x3b')]));if(_0x34a45a[_0x2083('0x37')][_0x2083('0x49')]){_0xdd4423[_0x2083('0x45')]=_[_0x2083('0x48')](_0xdd4423[_0x2083('0x45')],{'$or':_[_0x2083('0x4a')](_0xdd4423[_0x2083('0x3d')],function(_0x1d2aa1){var _0x4d5108={};_0x4d5108[_0x1d2aa1]={'$like':'%'+_0x34a45a[_0x2083('0x37')][_0x2083('0x49')]+'%'};return _0x4d5108;})});}_0xdd4423=_['merge']({},_0xdd4423,_0x34a45a[_0x2083('0x4b')]);return _0x21e326[_0x2083('0x5b')](_0xdd4423);}})[_0x2083('0x1a')](function(_0x3c0f9d){if(_0x3c0f9d){_0x5f262d=_0x3c0f9d[_0x2083('0x40')];if(!_0x34a45a['query'][_0x2083('0x41')](_0x2083('0x42'))){_0xdd4423[_0x2083('0x2b')]=qs[_0x2083('0x2b')](_0x34a45a[_0x2083('0x37')]['limit']);_0xdd4423['offset']=qs[_0x2083('0x2a')](_0x34a45a['query'][_0x2083('0x2a')]);}return _0x21e326[_0x2083('0x5b')](_0xdd4423);}})[_0x2083('0x1a')](function(_0x8ae377){if(_0x8ae377){return _0x8ae377?{'count':_0x5f262d,'rows':_0x8ae377}:null;}})['then'](respondWithResult(_0x55223a,null))[_0x2083('0x24')](handleError(_0x55223a,null));};exports[_0x2083('0x5d')]=function(_0x3697e3,_0x28e3cb,_0x30f599){if(_0x3697e3[_0x2083('0x53')]['id']){delete _0x3697e3[_0x2083('0x53')]['id'];}return db[_0x2083('0x36')]['findOne']({'where':{'id':_0x3697e3[_0x2083('0x4f')]['id']}})[_0x2083('0x1a')](handleEntityNotFound(_0x28e3cb,null))[_0x2083('0x1a')](function(_0x47f811){if(_0x47f811){return _0x47f811[_0x2083('0x5d')](_0x3697e3[_0x2083('0x53')][_0x2083('0x5e')]||[]);}return null;})[_0x2083('0x1a')](respondWithResult(_0x28e3cb,null))['catch'](handleError(_0x28e3cb,null));};
\ No newline at end of file
+var _0x6f9a=['model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','add','filter','merge','map','options','FreshdeskConfiguration','includeAll','include','findAll','rows','catch','params','length','find','create','body','getFields','findOne','FreshdeskField','nolimit','getSubjects','getDescriptions','Tag','getTags','setTags','ids','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','end','count','offset','limit','status','set','Content-Range','json','apply','reject','save','update','destroy','stack','name','index','rawAttributes'];(function(_0x3862e6,_0x168099){var _0x50b550=function(_0x3a5c07){while(--_0x3a5c07){_0x3862e6['push'](_0x3862e6['shift']());}};_0x50b550(++_0x168099);}(_0x6f9a,0x19c));var _0xa6f9=function(_0x41c313,_0x2a308a){_0x41c313=_0x41c313-0x0;var _0x49643f=_0x6f9a[_0x41c313];return _0x49643f;};'use strict';var pdf=require(_0xa6f9('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa6f9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa6f9('0x2'));var rp=require(_0xa6f9('0x3'));var moment=require(_0xa6f9('0x4'));var BPromise=require(_0xa6f9('0x5'));var Mustache=require(_0xa6f9('0x6'));var util=require(_0xa6f9('0x7'));var path=require(_0xa6f9('0x8'));var sox=require(_0xa6f9('0x9'));var csv=require(_0xa6f9('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xa6f9('0xb'));var crypto=require(_0xa6f9('0xc'));var jsforce=require(_0xa6f9('0xd'));var deskjs=require(_0xa6f9('0xe'));var toCsv=require(_0xa6f9('0xa'));var querystring=require('querystring');var Papa=require(_0xa6f9('0xf'));var Redis=require(_0xa6f9('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0xa6f9('0x11'))(_0xa6f9('0x12'));var utils=require(_0xa6f9('0x13'));var config=require(_0xa6f9('0x14'));var db=require('../../mysqldb')['db'];var jayson=require(_0xa6f9('0x15'));var client=jayson[_0xa6f9('0x16')][_0xa6f9('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x987dc,_0x50c679,_0x112593,_0x38c5f8){return new BPromise(function(_0x4c53b0,_0x7dd598){var _0x54b8dc=_0x38c5f8||client;return _0x54b8dc[_0xa6f9('0x18')](_0x987dc,_0x112593)[_0xa6f9('0x19')](function(_0x46fb16){logger[_0xa6f9('0x1a')](_0xa6f9('0x1b'),_0x50c679,_0xa6f9('0x1c'));logger[_0xa6f9('0x1d')](_0xa6f9('0x1e'),_0x50c679,_0xa6f9('0x1c'),JSON['stringify'](_0x46fb16));if(_0x46fb16[_0xa6f9('0x1f')]){if(_0x46fb16[_0xa6f9('0x1f')][_0xa6f9('0x20')]===0x1f4){logger[_0xa6f9('0x1f')](_0xa6f9('0x1b'),_0x50c679,_0x46fb16[_0xa6f9('0x1f')][_0xa6f9('0x21')]);return _0x7dd598(_0x46fb16[_0xa6f9('0x1f')][_0xa6f9('0x21')]);}logger[_0xa6f9('0x1f')](_0xa6f9('0x1b'),_0x50c679,_0x46fb16[_0xa6f9('0x1f')][_0xa6f9('0x21')]);return _0x4c53b0(_0x46fb16['error'][_0xa6f9('0x21')]);}else{logger[_0xa6f9('0x1a')](_0xa6f9('0x1b'),_0x50c679,_0xa6f9('0x1c'));_0x4c53b0(_0x46fb16[_0xa6f9('0x22')][_0xa6f9('0x21')]);}})['catch'](function(_0x5b2636){logger[_0xa6f9('0x1f')](_0xa6f9('0x1b'),_0x50c679,_0x5b2636);_0x7dd598(_0x5b2636);});});}function respondWithStatusCode(_0x4b10c9,_0x2b0d80){_0x2b0d80=_0x2b0d80||0xcc;return function(_0x32b903){if(_0x32b903){return _0x4b10c9[_0xa6f9('0x23')](_0x2b0d80);}return _0x4b10c9['status'](_0x2b0d80)[_0xa6f9('0x24')]();};}function respondWithResult(_0x58c32c,_0x3c40c8){_0x3c40c8=_0x3c40c8||0xc8;return function(_0x1371e0){if(_0x1371e0){return _0x58c32c['status'](_0x3c40c8)['json'](_0x1371e0);}};}function respondWithFilteredResult(_0x7fb358,_0x3ab5e9){return function(_0x554de2){if(_0x554de2){var _0x43bc21=_0x554de2[_0xa6f9('0x25')],_0xe81ad4=_0x3ab5e9['offset'],_0x15acba=_0x3ab5e9[_0xa6f9('0x26')]+_0x3ab5e9[_0xa6f9('0x27')],_0x22b6d2;if(_0x15acba>=_0x43bc21){_0x15acba=_0x43bc21;_0x22b6d2=0xc8;}else{_0x22b6d2=0xce;}_0x7fb358[_0xa6f9('0x28')](_0x22b6d2);return _0x7fb358[_0xa6f9('0x29')](_0xa6f9('0x2a'),_0xe81ad4+'-'+_0x15acba+'/'+_0x43bc21)[_0xa6f9('0x2b')](_0x554de2);}return null;};}function patchUpdates(_0x19dbd9){return function(_0xde0754){try{jsonpatch[_0xa6f9('0x2c')](_0xde0754,_0x19dbd9,!![]);}catch(_0x5e0c01){return BPromise[_0xa6f9('0x2d')](_0x5e0c01);}return _0xde0754[_0xa6f9('0x2e')]();};}function saveUpdates(_0xf9463,_0x28b0dd){return function(_0x1cc07a){if(_0x1cc07a){return _0x1cc07a[_0xa6f9('0x2f')](_0xf9463)['then'](function(_0x27bf79){return _0x27bf79;});}return null;};}function removeEntity(_0x2b0260,_0x34f37b){return function(_0x15462c){if(_0x15462c){return _0x15462c[_0xa6f9('0x30')]()[_0xa6f9('0x19')](function(){_0x2b0260[_0xa6f9('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5965c8,_0x255bb8){return function(_0x1db212){if(!_0x1db212){_0x5965c8[_0xa6f9('0x23')](0x194);}return _0x1db212;};}function handleError(_0x10f562,_0x1ff19e){_0x1ff19e=_0x1ff19e||0x1f4;return function(_0x28981b){logger[_0xa6f9('0x1f')](_0x28981b[_0xa6f9('0x31')]);if(_0x28981b[_0xa6f9('0x32')]){delete _0x28981b[_0xa6f9('0x32')];}_0x10f562[_0xa6f9('0x28')](_0x1ff19e)['send'](_0x28981b);};}exports[_0xa6f9('0x33')]=function(_0x4695aa,_0x41275e){var _0x5318f3={},_0x3a4612={},_0x53ce4a={'count':0x0,'rows':[]};var _0x54e5b3=db['FreshdeskConfiguration'][_0xa6f9('0x34')];_0x3a4612[_0xa6f9('0x35')]=_[_0xa6f9('0x36')](_0x54e5b3);var _0x232302={'dateStart':_0x4695aa[_0xa6f9('0x37')]['dateStart'],'dateEnd':_0x4695aa[_0xa6f9('0x37')]['dateEnd']};delete _0x4695aa[_0xa6f9('0x37')][_0xa6f9('0x38')];delete _0x4695aa[_0xa6f9('0x37')][_0xa6f9('0x39')];_0x3a4612[_0xa6f9('0x37')]=_[_0xa6f9('0x36')](_0x4695aa[_0xa6f9('0x37')]);_0x3a4612[_0xa6f9('0x3a')]=_[_0xa6f9('0x3b')](_0x3a4612[_0xa6f9('0x35')],_0x3a4612['query']);_0x5318f3[_0xa6f9('0x3c')]=_[_0xa6f9('0x3b')](_0x3a4612[_0xa6f9('0x35')],qs['fields'](_0x4695aa['query'][_0xa6f9('0x3d')]));_0x5318f3[_0xa6f9('0x3c')]=_0x5318f3[_0xa6f9('0x3c')]['length']?_0x5318f3[_0xa6f9('0x3c')]:_0x3a4612[_0xa6f9('0x35')];if(!_0x4695aa[_0xa6f9('0x37')][_0xa6f9('0x3e')]('nolimit')){_0x5318f3[_0xa6f9('0x27')]=qs['limit'](_0x4695aa[_0xa6f9('0x37')][_0xa6f9('0x27')]);_0x5318f3[_0xa6f9('0x26')]=qs[_0xa6f9('0x26')](_0x4695aa[_0xa6f9('0x37')]['offset']);}_0x5318f3[_0xa6f9('0x3f')]=qs[_0xa6f9('0x40')](_0x4695aa[_0xa6f9('0x37')][_0xa6f9('0x40')]);_0x5318f3[_0xa6f9('0x41')]=qs[_0xa6f9('0x3a')](_[_0xa6f9('0x42')](_0x4695aa[_0xa6f9('0x37')],_0x3a4612['filters']));if(_0x232302[_0xa6f9('0x38')]){if(_0x232302[_0xa6f9('0x39')]){_0x232302[_0xa6f9('0x39')]=moment(_0x232302[_0xa6f9('0x39')])[_0xa6f9('0x43')](0x1,'day');}else{_0x232302['dateEnd']=moment(_0x232302[_0xa6f9('0x38')])[_0xa6f9('0x43')](0x1,'day');}_['merge'](_0x5318f3[_0xa6f9('0x41')],{'createdAt':{'$gte':_0x232302['dateStart'],'$lte':_0x232302[_0xa6f9('0x39')]}});}if(_0x4695aa['query'][_0xa6f9('0x44')]){_0x5318f3[_0xa6f9('0x41')]=_[_0xa6f9('0x45')](_0x5318f3[_0xa6f9('0x41')],{'$or':_[_0xa6f9('0x46')](_0x5318f3[_0xa6f9('0x3c')],function(_0x585244){var _0x420a82={};_0x420a82[_0x585244]={'$like':'%'+_0x4695aa[_0xa6f9('0x37')][_0xa6f9('0x44')]+'%'};return _0x420a82;})});}_0x5318f3=_['merge']({},_0x5318f3,_0x4695aa[_0xa6f9('0x47')]);var _0x5313b7={'where':_0x5318f3[_0xa6f9('0x41')]};return db[_0xa6f9('0x48')][_0xa6f9('0x25')](_0x5313b7)[_0xa6f9('0x19')](function(_0x3b80bb){_0x53ce4a[_0xa6f9('0x25')]=_0x3b80bb;if(_0x4695aa['query'][_0xa6f9('0x49')]){_0x5318f3[_0xa6f9('0x4a')]=[{'all':!![]}];}return db[_0xa6f9('0x48')][_0xa6f9('0x4b')](_0x5318f3);})[_0xa6f9('0x19')](function(_0x25faa9){_0x53ce4a[_0xa6f9('0x4c')]=_0x25faa9;return _0x53ce4a;})[_0xa6f9('0x19')](respondWithFilteredResult(_0x41275e,_0x5318f3))[_0xa6f9('0x4d')](handleError(_0x41275e,null));};exports['show']=function(_0x1cd208,_0x16c7e3){var _0x4582cf={'raw':![],'where':{'id':_0x1cd208[_0xa6f9('0x4e')]['id']}},_0x278bb0={};_0x278bb0[_0xa6f9('0x35')]=_[_0xa6f9('0x36')](db['FreshdeskConfiguration'][_0xa6f9('0x34')]);_0x278bb0['query']=_[_0xa6f9('0x36')](_0x1cd208[_0xa6f9('0x37')]);_0x278bb0['filters']=_['intersection'](_0x278bb0[_0xa6f9('0x35')],_0x278bb0[_0xa6f9('0x37')]);_0x4582cf[_0xa6f9('0x3c')]=_[_0xa6f9('0x3b')](_0x278bb0['model'],qs[_0xa6f9('0x3d')](_0x1cd208[_0xa6f9('0x37')][_0xa6f9('0x3d')]));_0x4582cf[_0xa6f9('0x3c')]=_0x4582cf['attributes'][_0xa6f9('0x4f')]?_0x4582cf[_0xa6f9('0x3c')]:_0x278bb0[_0xa6f9('0x35')];if(_0x1cd208[_0xa6f9('0x37')][_0xa6f9('0x49')]){_0x4582cf[_0xa6f9('0x4a')]=[{'all':!![]}];}_0x4582cf=_[_0xa6f9('0x45')]({},_0x4582cf,_0x1cd208[_0xa6f9('0x47')]);return db[_0xa6f9('0x48')][_0xa6f9('0x50')](_0x4582cf)[_0xa6f9('0x19')](handleEntityNotFound(_0x16c7e3,null))[_0xa6f9('0x19')](respondWithResult(_0x16c7e3,null))[_0xa6f9('0x4d')](handleError(_0x16c7e3,null));};exports[_0xa6f9('0x51')]=function(_0x3144d9,_0x37ed3e){return db[_0xa6f9('0x48')][_0xa6f9('0x51')](_0x3144d9[_0xa6f9('0x52')],{})[_0xa6f9('0x19')](respondWithResult(_0x37ed3e,0xc9))[_0xa6f9('0x4d')](handleError(_0x37ed3e,null));};exports[_0xa6f9('0x2f')]=function(_0x1c1734,_0x52fa9e){if(_0x1c1734[_0xa6f9('0x52')]['id']){delete _0x1c1734[_0xa6f9('0x52')]['id'];}return db[_0xa6f9('0x48')][_0xa6f9('0x50')]({'where':{'id':_0x1c1734[_0xa6f9('0x4e')]['id']}})[_0xa6f9('0x19')](handleEntityNotFound(_0x52fa9e,null))[_0xa6f9('0x19')](saveUpdates(_0x1c1734[_0xa6f9('0x52')],null))[_0xa6f9('0x19')](respondWithResult(_0x52fa9e,null))[_0xa6f9('0x4d')](handleError(_0x52fa9e,null));};exports[_0xa6f9('0x30')]=function(_0x3ddd17,_0x3d757d){return db[_0xa6f9('0x48')]['find']({'where':{'id':_0x3ddd17[_0xa6f9('0x4e')]['id']}})[_0xa6f9('0x19')](handleEntityNotFound(_0x3d757d,null))[_0xa6f9('0x19')](removeEntity(_0x3d757d,null))[_0xa6f9('0x4d')](handleError(_0x3d757d,null));};exports[_0xa6f9('0x53')]=function(_0x50a0a6,_0x13f28c,_0x2569e0){var _0x4c5b34={};var _0x5d335a={};var _0x369ff7;var _0x36ba06;return db[_0xa6f9('0x48')][_0xa6f9('0x54')]({'where':{'id':_0x50a0a6[_0xa6f9('0x4e')]['id']}})[_0xa6f9('0x19')](handleEntityNotFound(_0x13f28c,null))[_0xa6f9('0x19')](function(_0x54ae9f){if(_0x54ae9f){_0x369ff7=_0x54ae9f;_0x5d335a[_0xa6f9('0x35')]=_[_0xa6f9('0x36')](db[_0xa6f9('0x55')][_0xa6f9('0x34')]);_0x5d335a[_0xa6f9('0x37')]=_[_0xa6f9('0x36')](_0x50a0a6[_0xa6f9('0x37')]);_0x5d335a[_0xa6f9('0x3a')]=_['intersection'](_0x5d335a[_0xa6f9('0x35')],_0x5d335a[_0xa6f9('0x37')]);_0x4c5b34[_0xa6f9('0x3c')]=_['intersection'](_0x5d335a['model'],qs[_0xa6f9('0x3d')](_0x50a0a6['query'][_0xa6f9('0x3d')]));_0x4c5b34[_0xa6f9('0x3c')]=_0x4c5b34['attributes'][_0xa6f9('0x4f')]?_0x4c5b34['attributes']:_0x5d335a['model'];_0x4c5b34[_0xa6f9('0x3f')]=qs[_0xa6f9('0x40')](_0x50a0a6[_0xa6f9('0x37')][_0xa6f9('0x40')]);_0x4c5b34[_0xa6f9('0x41')]=qs['filters'](_[_0xa6f9('0x42')](_0x50a0a6[_0xa6f9('0x37')],_0x5d335a[_0xa6f9('0x3a')]));if(_0x50a0a6[_0xa6f9('0x37')][_0xa6f9('0x44')]){_0x4c5b34[_0xa6f9('0x41')]=_['merge'](_0x4c5b34['where'],{'$or':_['map'](_0x4c5b34[_0xa6f9('0x3c')],function(_0x4c98f6){var _0x394789={};_0x394789[_0x4c98f6]={'$like':'%'+_0x50a0a6[_0xa6f9('0x37')]['filter']+'%'};return _0x394789;})});}_0x4c5b34=_[_0xa6f9('0x45')]({},_0x4c5b34,_0x50a0a6[_0xa6f9('0x47')]);return _0x369ff7[_0xa6f9('0x53')](_0x4c5b34);}})[_0xa6f9('0x19')](function(_0x33b00c){if(_0x33b00c){_0x36ba06=_0x33b00c[_0xa6f9('0x4f')];if(!_0x50a0a6['query'][_0xa6f9('0x3e')](_0xa6f9('0x56'))){_0x4c5b34['limit']=qs[_0xa6f9('0x27')](_0x50a0a6['query'][_0xa6f9('0x27')]);_0x4c5b34[_0xa6f9('0x26')]=qs[_0xa6f9('0x26')](_0x50a0a6['query'][_0xa6f9('0x26')]);}return _0x369ff7[_0xa6f9('0x53')](_0x4c5b34);}})['then'](function(_0x3dc5bf){if(_0x3dc5bf){return _0x3dc5bf?{'count':_0x36ba06,'rows':_0x3dc5bf}:null;}})[_0xa6f9('0x19')](respondWithResult(_0x13f28c,null))[_0xa6f9('0x4d')](handleError(_0x13f28c,null));};exports['getSubjects']=function(_0x46e2a0,_0x48e0de,_0x4ba0d7){var _0x4b7602={};var _0x398c38={};var _0x386fed;var _0xc5d520;return db[_0xa6f9('0x48')]['findOne']({'where':{'id':_0x46e2a0[_0xa6f9('0x4e')]['id']}})['then'](handleEntityNotFound(_0x48e0de,null))[_0xa6f9('0x19')](function(_0x484906){if(_0x484906){_0x386fed=_0x484906;_0x398c38[_0xa6f9('0x35')]=_['keys'](db[_0xa6f9('0x55')][_0xa6f9('0x34')]);_0x398c38[_0xa6f9('0x37')]=_[_0xa6f9('0x36')](_0x46e2a0[_0xa6f9('0x37')]);_0x398c38['filters']=_[_0xa6f9('0x3b')](_0x398c38[_0xa6f9('0x35')],_0x398c38[_0xa6f9('0x37')]);_0x4b7602[_0xa6f9('0x3c')]=_[_0xa6f9('0x3b')](_0x398c38[_0xa6f9('0x35')],qs['fields'](_0x46e2a0[_0xa6f9('0x37')][_0xa6f9('0x3d')]));_0x4b7602[_0xa6f9('0x3c')]=_0x4b7602['attributes'][_0xa6f9('0x4f')]?_0x4b7602[_0xa6f9('0x3c')]:_0x398c38[_0xa6f9('0x35')];_0x4b7602[_0xa6f9('0x3f')]=qs[_0xa6f9('0x40')](_0x46e2a0[_0xa6f9('0x37')][_0xa6f9('0x40')]);_0x4b7602[_0xa6f9('0x41')]=qs[_0xa6f9('0x3a')](_['pick'](_0x46e2a0[_0xa6f9('0x37')],_0x398c38[_0xa6f9('0x3a')]));if(_0x46e2a0[_0xa6f9('0x37')]['filter']){_0x4b7602[_0xa6f9('0x41')]=_[_0xa6f9('0x45')](_0x4b7602[_0xa6f9('0x41')],{'$or':_['map'](_0x4b7602[_0xa6f9('0x3c')],function(_0x33ea1e){var _0x13a923={};_0x13a923[_0x33ea1e]={'$like':'%'+_0x46e2a0[_0xa6f9('0x37')][_0xa6f9('0x44')]+'%'};return _0x13a923;})});}_0x4b7602=_[_0xa6f9('0x45')]({},_0x4b7602,_0x46e2a0['options']);return _0x386fed[_0xa6f9('0x57')](_0x4b7602);}})[_0xa6f9('0x19')](function(_0x4bff62){if(_0x4bff62){_0xc5d520=_0x4bff62[_0xa6f9('0x4f')];if(!_0x46e2a0[_0xa6f9('0x37')]['hasOwnProperty']('nolimit')){_0x4b7602[_0xa6f9('0x27')]=qs[_0xa6f9('0x27')](_0x46e2a0['query'][_0xa6f9('0x27')]);_0x4b7602[_0xa6f9('0x26')]=qs[_0xa6f9('0x26')](_0x46e2a0['query'][_0xa6f9('0x26')]);}return _0x386fed[_0xa6f9('0x57')](_0x4b7602);}})[_0xa6f9('0x19')](function(_0x30f73a){if(_0x30f73a){return _0x30f73a?{'count':_0xc5d520,'rows':_0x30f73a}:null;}})['then'](respondWithResult(_0x48e0de,null))[_0xa6f9('0x4d')](handleError(_0x48e0de,null));};exports[_0xa6f9('0x58')]=function(_0x18eea3,_0x4daca1,_0x17668d){var _0x16a923={};var _0x38de6a={};var _0x9f53cc;var _0x456090;return db[_0xa6f9('0x48')][_0xa6f9('0x54')]({'where':{'id':_0x18eea3[_0xa6f9('0x4e')]['id']}})['then'](handleEntityNotFound(_0x4daca1,null))[_0xa6f9('0x19')](function(_0x413477){if(_0x413477){_0x9f53cc=_0x413477;_0x38de6a['model']=_['keys'](db[_0xa6f9('0x55')]['rawAttributes']);_0x38de6a[_0xa6f9('0x37')]=_[_0xa6f9('0x36')](_0x18eea3[_0xa6f9('0x37')]);_0x38de6a[_0xa6f9('0x3a')]=_['intersection'](_0x38de6a[_0xa6f9('0x35')],_0x38de6a[_0xa6f9('0x37')]);_0x16a923[_0xa6f9('0x3c')]=_[_0xa6f9('0x3b')](_0x38de6a[_0xa6f9('0x35')],qs['fields'](_0x18eea3['query'][_0xa6f9('0x3d')]));_0x16a923[_0xa6f9('0x3c')]=_0x16a923[_0xa6f9('0x3c')][_0xa6f9('0x4f')]?_0x16a923[_0xa6f9('0x3c')]:_0x38de6a['model'];_0x16a923[_0xa6f9('0x3f')]=qs[_0xa6f9('0x40')](_0x18eea3[_0xa6f9('0x37')][_0xa6f9('0x40')]);_0x16a923[_0xa6f9('0x41')]=qs['filters'](_[_0xa6f9('0x42')](_0x18eea3[_0xa6f9('0x37')],_0x38de6a[_0xa6f9('0x3a')]));if(_0x18eea3[_0xa6f9('0x37')][_0xa6f9('0x44')]){_0x16a923['where']=_['merge'](_0x16a923['where'],{'$or':_[_0xa6f9('0x46')](_0x16a923[_0xa6f9('0x3c')],function(_0x15add7){var _0x2f5643={};_0x2f5643[_0x15add7]={'$like':'%'+_0x18eea3['query'][_0xa6f9('0x44')]+'%'};return _0x2f5643;})});}_0x16a923=_['merge']({},_0x16a923,_0x18eea3[_0xa6f9('0x47')]);return _0x9f53cc[_0xa6f9('0x58')](_0x16a923);}})[_0xa6f9('0x19')](function(_0x29c6cc){if(_0x29c6cc){_0x456090=_0x29c6cc[_0xa6f9('0x4f')];if(!_0x18eea3[_0xa6f9('0x37')][_0xa6f9('0x3e')](_0xa6f9('0x56'))){_0x16a923[_0xa6f9('0x27')]=qs[_0xa6f9('0x27')](_0x18eea3[_0xa6f9('0x37')][_0xa6f9('0x27')]);_0x16a923['offset']=qs[_0xa6f9('0x26')](_0x18eea3['query']['offset']);}return _0x9f53cc['getDescriptions'](_0x16a923);}})[_0xa6f9('0x19')](function(_0x4ba264){if(_0x4ba264){return _0x4ba264?{'count':_0x456090,'rows':_0x4ba264}:null;}})[_0xa6f9('0x19')](respondWithResult(_0x4daca1,null))[_0xa6f9('0x4d')](handleError(_0x4daca1,null));};exports['getTags']=function(_0x307282,_0x1d010b,_0x5756a5){var _0x5594da={};var _0x1add4a={};var _0x2d2112;var _0x3e8019;return db[_0xa6f9('0x48')][_0xa6f9('0x54')]({'where':{'id':_0x307282[_0xa6f9('0x4e')]['id']}})[_0xa6f9('0x19')](handleEntityNotFound(_0x1d010b,null))[_0xa6f9('0x19')](function(_0x50fb62){if(_0x50fb62){_0x2d2112=_0x50fb62;_0x1add4a[_0xa6f9('0x35')]=_[_0xa6f9('0x36')](db[_0xa6f9('0x59')]['rawAttributes']);_0x1add4a[_0xa6f9('0x37')]=_['keys'](_0x307282[_0xa6f9('0x37')]);_0x1add4a[_0xa6f9('0x3a')]=_[_0xa6f9('0x3b')](_0x1add4a['model'],_0x1add4a[_0xa6f9('0x37')]);_0x5594da[_0xa6f9('0x3c')]=_[_0xa6f9('0x3b')](_0x1add4a[_0xa6f9('0x35')],qs[_0xa6f9('0x3d')](_0x307282[_0xa6f9('0x37')]['fields']));_0x5594da[_0xa6f9('0x3c')]=_0x5594da['attributes'][_0xa6f9('0x4f')]?_0x5594da[_0xa6f9('0x3c')]:_0x1add4a[_0xa6f9('0x35')];_0x5594da['order']=qs['sort'](_0x307282[_0xa6f9('0x37')][_0xa6f9('0x40')]);_0x5594da['where']=qs[_0xa6f9('0x3a')](_[_0xa6f9('0x42')](_0x307282[_0xa6f9('0x37')],_0x1add4a[_0xa6f9('0x3a')]));if(_0x307282[_0xa6f9('0x37')][_0xa6f9('0x44')]){_0x5594da[_0xa6f9('0x41')]=_[_0xa6f9('0x45')](_0x5594da['where'],{'$or':_[_0xa6f9('0x46')](_0x5594da[_0xa6f9('0x3c')],function(_0x12ba95){var _0x50974d={};_0x50974d[_0x12ba95]={'$like':'%'+_0x307282['query'][_0xa6f9('0x44')]+'%'};return _0x50974d;})});}_0x5594da=_['merge']({},_0x5594da,_0x307282[_0xa6f9('0x47')]);return _0x2d2112[_0xa6f9('0x5a')](_0x5594da);}})[_0xa6f9('0x19')](function(_0x4c830c){if(_0x4c830c){_0x3e8019=_0x4c830c['length'];if(!_0x307282[_0xa6f9('0x37')]['hasOwnProperty']('nolimit')){_0x5594da['limit']=qs[_0xa6f9('0x27')](_0x307282['query']['limit']);_0x5594da[_0xa6f9('0x26')]=qs[_0xa6f9('0x26')](_0x307282[_0xa6f9('0x37')][_0xa6f9('0x26')]);}return _0x2d2112[_0xa6f9('0x5a')](_0x5594da);}})[_0xa6f9('0x19')](function(_0x4d6ced){if(_0x4d6ced){return _0x4d6ced?{'count':_0x3e8019,'rows':_0x4d6ced}:null;}})[_0xa6f9('0x19')](respondWithResult(_0x1d010b,null))[_0xa6f9('0x4d')](handleError(_0x1d010b,null));};exports[_0xa6f9('0x5b')]=function(_0x3334ff,_0x3db445,_0x497249){if(_0x3334ff['body']['id']){delete _0x3334ff['body']['id'];}return db[_0xa6f9('0x48')][_0xa6f9('0x54')]({'where':{'id':_0x3334ff['params']['id']}})[_0xa6f9('0x19')](handleEntityNotFound(_0x3db445,null))['then'](function(_0x4b5adf){if(_0x4b5adf){return _0x4b5adf[_0xa6f9('0x5b')](_0x3334ff[_0xa6f9('0x52')][_0xa6f9('0x5c')]||[]);}return null;})['then'](respondWithResult(_0x3db445,null))[_0xa6f9('0x4d')](handleError(_0x3db445,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9bb=['exports','define','FreshdeskConfiguration','int_freshdesk_configurations','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x1ea473,_0x5a8ea7){var _0x50dbe8=function(_0x4af2e6){while(--_0x4af2e6){_0x1ea473['push'](_0x1ea473['shift']());}};_0x50dbe8(++_0x5a8ea7);}(_0xa9bb,0x1bc));var _0xba9b=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0xa9bb[_0x12fc8d];return _0x3f9d04;};'use strict';var _=require('lodash');var util=require(_0xba9b('0x0'));var logger=require(_0xba9b('0x1'))(_0xba9b('0x2'));var moment=require(_0xba9b('0x3'));var BPromise=require(_0xba9b('0x4'));var rp=require(_0xba9b('0x5'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0xba9b('0x6')]=function(_0x343105,_0x343830){return _0x343105[_0xba9b('0x7')](_0xba9b('0x8'),attributes,{'tableName':_0xba9b('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1247=['FreshdeskConfiguration','int_freshdesk_configurations','lodash','util','moment','bluebird','request-promise','exports','define'];(function(_0x1a9c75,_0xa83750){var _0xb2f37e=function(_0x2b90f6){while(--_0x2b90f6){_0x1a9c75['push'](_0x1a9c75['shift']());}};_0xb2f37e(++_0xa83750);}(_0x1247,0xb6));var _0x7124=function(_0x2d460c,_0x4f08c0){_0x2d460c=_0x2d460c-0x0;var _0xf6fc4c=_0x1247[_0x2d460c];return _0xf6fc4c;};'use strict';var _=require(_0x7124('0x0'));var util=require(_0x7124('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x7124('0x2'));var BPromise=require(_0x7124('0x3'));var rp=require(_0x7124('0x4'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0x7124('0x5')]=function(_0x3ab32e,_0x2dd15c){return _0x3ab32e[_0x7124('0x6')](_0x7124('0x7'),attributes,{'tableName':_0x7124('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf67d=['code','message','result','catch','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FreshdeskConfiguration,\x20%s,\x20%s','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','error'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf67d,0x122));var _0xdf67=function(_0x1b9652,_0x5cfbf3){_0x1b9652=_0x1b9652-0x0;var _0x43f2e9=_0xf67d[_0x1b9652];return _0x43f2e9;};'use strict';var _=require(_0xdf67('0x0'));var util=require('util');var moment=require(_0xdf67('0x1'));var BPromise=require('bluebird');var rs=require(_0xdf67('0x2'));var fs=require('fs');var db=require(_0xdf67('0x3'))['db'];var utils=require(_0xdf67('0x4'));var logger=require(_0xdf67('0x5'))(_0xdf67('0x6'));var config=require(_0xdf67('0x7'));var jayson=require(_0xdf67('0x8'));var client=jayson[_0xdf67('0x9')][_0xdf67('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5bf003,_0x3d7487,_0x311d1d){return new BPromise(function(_0x1019ae,_0x5b535a){return client[_0xdf67('0xb')](_0x5bf003,_0x311d1d)[_0xdf67('0xc')](function(_0x5028d8){logger[_0xdf67('0xd')](_0xdf67('0xe'),_0x3d7487,'request\x20sent');logger['debug'](_0xdf67('0xf'),_0x3d7487,_0xdf67('0x10'),JSON['stringify'](_0x5028d8));if(_0x5028d8[_0xdf67('0x11')]){if(_0x5028d8[_0xdf67('0x11')][_0xdf67('0x12')]===0x1f4){logger[_0xdf67('0x11')](_0xdf67('0xe'),_0x3d7487,_0x5028d8[_0xdf67('0x11')][_0xdf67('0x13')]);return _0x5b535a(_0x5028d8[_0xdf67('0x11')][_0xdf67('0x13')]);}logger[_0xdf67('0x11')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x3d7487,_0x5028d8['error'][_0xdf67('0x13')]);return _0x1019ae(_0x5028d8[_0xdf67('0x11')][_0xdf67('0x13')]);}else{logger[_0xdf67('0xd')](_0xdf67('0xe'),_0x3d7487,_0xdf67('0x10'));_0x1019ae(_0x5028d8[_0xdf67('0x14')][_0xdf67('0x13')]);}})[_0xdf67('0x15')](function(_0x467e11){logger[_0xdf67('0x11')](_0xdf67('0xe'),_0x3d7487,_0x467e11);_0x5b535a(_0x467e11);});});}
\ No newline at end of file
+var _0x0a83=['../../config/logger','jayson/promise','http','request','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','bluebird','ioredis'];(function(_0x14b0f4,_0x4b32e2){var _0x8e120e=function(_0xbf796a){while(--_0xbf796a){_0x14b0f4['push'](_0x14b0f4['shift']());}};_0x8e120e(++_0x4b32e2);}(_0x0a83,0x182));var _0x30a8=function(_0x1385dc,_0x2c7fd7){_0x1385dc=_0x1385dc-0x0;var _0x2f6469=_0x0a83[_0x1385dc];return _0x2f6469;};'use strict';var _=require(_0x30a8('0x0'));var util=require(_0x30a8('0x1'));var moment=require('moment');var BPromise=require(_0x30a8('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x30a8('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x30a8('0x4'))('rpc');var config=require('../../config/environment');var jayson=require(_0x30a8('0x5'));var client=jayson['client'][_0x30a8('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x4c34e0,_0x1d846d,_0x5c1c97){return new BPromise(function(_0x4e15c6,_0x481c3f){return client[_0x30a8('0x7')](_0x4c34e0,_0x5c1c97)['then'](function(_0x46ed70){logger['info'](_0x30a8('0x8'),_0x1d846d,_0x30a8('0x9'));logger['debug'](_0x30a8('0xa'),_0x1d846d,_0x30a8('0x9'),JSON['stringify'](_0x46ed70));if(_0x46ed70[_0x30a8('0xb')]){if(_0x46ed70['error']['code']===0x1f4){logger[_0x30a8('0xb')](_0x30a8('0x8'),_0x1d846d,_0x46ed70[_0x30a8('0xb')][_0x30a8('0xc')]);return _0x481c3f(_0x46ed70['error'][_0x30a8('0xc')]);}logger[_0x30a8('0xb')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x1d846d,_0x46ed70[_0x30a8('0xb')]['message']);return _0x4e15c6(_0x46ed70[_0x30a8('0xb')][_0x30a8('0xc')]);}else{logger['info']('FreshdeskConfiguration,\x20%s,\x20%s',_0x1d846d,_0x30a8('0x9'));_0x4e15c6(_0x46ed70[_0x30a8('0xd')][_0x30a8('0xc')]);}})[_0x30a8('0xe')](function(_0x413cc2){logger['error'](_0x30a8('0x8'),_0x1d846d,_0x413cc2);_0x481c3f(_0x413cc2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb29=['delete','exports','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','create'];(function(_0x2f25fa,_0x14dc03){var _0x5633df=function(_0x5c688f){while(--_0x5c688f){_0x2f25fa['push'](_0x2f25fa['shift']());}};_0x5633df(++_0x14dc03);}(_0xcb29,0x12d));var _0x9cb2=function(_0xb24a3e,_0x4a3594){_0xb24a3e=_0xb24a3e-0x0;var _0x4038d7=_0xcb29[_0xb24a3e];return _0x4038d7;};'use strict';var multer=require('multer');var util=require(_0x9cb2('0x0'));var path=require(_0x9cb2('0x1'));var timeout=require(_0x9cb2('0x2'));var express=require('express');var router=express['Router']();var auth=require(_0x9cb2('0x3'));var interaction=require(_0x9cb2('0x4'));var config=require(_0x9cb2('0x5'));var controller=require('./intFreshdeskField.controller');router[_0x9cb2('0x6')]('/',auth[_0x9cb2('0x7')](),controller['index']);router['get'](_0x9cb2('0x8'),auth[_0x9cb2('0x7')](),controller[_0x9cb2('0x9')]);router['post']('/',auth[_0x9cb2('0x7')](),controller[_0x9cb2('0xa')]);router['put'](_0x9cb2('0x8'),auth['isAuthenticated'](),controller['update']);router[_0x9cb2('0xb')]('/:id',auth[_0x9cb2('0x7')](),controller['destroy']);module[_0x9cb2('0xc')]=router;
\ No newline at end of file
+var _0xcf66=['./intFreshdeskField.controller','isAuthenticated','index','get','show','post','create','put','delete','destroy','exports','multer','util','path','express','Router','../../config/environment'];(function(_0x1e12b2,_0x1f0faa){var _0x456f9b=function(_0x5030a6){while(--_0x5030a6){_0x1e12b2['push'](_0x1e12b2['shift']());}};_0x456f9b(++_0x1f0faa);}(_0xcf66,0x71));var _0x6cf6=function(_0x115732,_0x2273af){_0x115732=_0x115732-0x0;var _0x3be7eb=_0xcf66[_0x115732];return _0x3be7eb;};'use strict';var multer=require(_0x6cf6('0x0'));var util=require(_0x6cf6('0x1'));var path=require(_0x6cf6('0x2'));var timeout=require('connect-timeout');var express=require(_0x6cf6('0x3'));var router=express[_0x6cf6('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x6cf6('0x5'));var controller=require(_0x6cf6('0x6'));router['get']('/',auth[_0x6cf6('0x7')](),controller[_0x6cf6('0x8')]);router[_0x6cf6('0x9')]('/:id',auth[_0x6cf6('0x7')](),controller[_0x6cf6('0xa')]);router[_0x6cf6('0xb')]('/',auth[_0x6cf6('0x7')](),controller[_0x6cf6('0xc')]);router[_0x6cf6('0xd')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x6cf6('0xe')]('/:id',auth[_0x6cf6('0x7')](),controller[_0x6cf6('0xf')]);module[_0x6cf6('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x702d=['STRING','customVariable','BOOLEAN','sequelize','exports','ENUM','string','variable','keyValue'];(function(_0x5a2805,_0x3ed371){var _0x4274c8=function(_0x50fd2a){while(--_0x50fd2a){_0x5a2805['push'](_0x5a2805['shift']());}};_0x4274c8(++_0x3ed371);}(_0x702d,0x147));var _0xd702=function(_0x3dd233,_0x2fca8f){_0x3dd233=_0x3dd233-0x0;var _0x1acdc7=_0x702d[_0x3dd233];return _0x1acdc7;};'use strict';var Sequelize=require(_0xd702('0x0'));module[_0xd702('0x1')]={'type':{'type':Sequelize[_0xd702('0x2')](_0xd702('0x3'),_0xd702('0x4'),'customVariable',_0xd702('0x5')),'defaultValue':_0xd702('0x3')},'content':{'type':Sequelize[_0xd702('0x6')]},'key':{'type':Sequelize[_0xd702('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0xd702('0x3'),'variable',_0xd702('0x7'))},'keyContent':{'type':Sequelize[_0xd702('0x6')]},'idField':{'type':Sequelize[_0xd702('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xd702('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x70e0=['BOOLEAN','sequelize','exports','ENUM','customVariable','keyValue','string','STRING','variable'];(function(_0x4b22e1,_0x465492){var _0x44b4c9=function(_0x16a121){while(--_0x16a121){_0x4b22e1['push'](_0x4b22e1['shift']());}};_0x44b4c9(++_0x465492);}(_0x70e0,0x17b));var _0x070e=function(_0x373562,_0x417363){_0x373562=_0x373562-0x0;var _0x33cd33=_0x70e0[_0x373562];return _0x33cd33;};'use strict';var Sequelize=require(_0x070e('0x0'));module[_0x070e('0x1')]={'type':{'type':Sequelize[_0x070e('0x2')]('string','variable',_0x070e('0x3'),_0x070e('0x4')),'defaultValue':_0x070e('0x5')},'content':{'type':Sequelize[_0x070e('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x070e('0x2')]('string',_0x070e('0x7'),'customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x070e('0x6')]},'customField':{'type':Sequelize[_0x070e('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x070e('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2dd=['index','FreshdeskField','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','add','day','merge','where','map','options','includeAll','include','findAll','catch','params','find','create','body','update','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send'];(function(_0x485b5a,_0x2b289b){var _0xd2b34d=function(_0x34dcbd){while(--_0x34dcbd){_0x485b5a['push'](_0x485b5a['shift']());}};_0xd2b34d(++_0x2b289b);}(_0xe2dd,0x64));var _0xde2d=function(_0x21f931,_0x598b2d){_0x21f931=_0x21f931-0x0;var _0x3f083c=_0xe2dd[_0x21f931];return _0x3f083c;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xde2d('0x0'));var zipdir=require(_0xde2d('0x1'));var jsonpatch=require(_0xde2d('0x2'));var rp=require('request-promise');var moment=require(_0xde2d('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xde2d('0x4'));var util=require(_0xde2d('0x5'));var path=require(_0xde2d('0x6'));var sox=require('sox');var csv=require(_0xde2d('0x7'));var ejs=require(_0xde2d('0x8'));var fs=require('fs');var _=require(_0xde2d('0x9'));var squel=require(_0xde2d('0xa'));var crypto=require('crypto');var jsforce=require(_0xde2d('0xb'));var deskjs=require(_0xde2d('0xc'));var toCsv=require(_0xde2d('0x7'));var querystring=require(_0xde2d('0xd'));var Papa=require(_0xde2d('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0xde2d('0xf'))(_0xde2d('0x10'));var utils=require('../../config/utils');var config=require(_0xde2d('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3d966c,_0x245820){_0x245820=_0x245820||0xcc;return function(_0xfa603b){if(_0xfa603b){return _0x3d966c[_0xde2d('0x12')](_0x245820);}return _0x3d966c[_0xde2d('0x13')](_0x245820)[_0xde2d('0x14')]();};}function respondWithResult(_0x324fb4,_0x502011){_0x502011=_0x502011||0xc8;return function(_0x37f249){if(_0x37f249){return _0x324fb4[_0xde2d('0x13')](_0x502011)[_0xde2d('0x15')](_0x37f249);}};}function respondWithFilteredResult(_0x5ce04d,_0x119fa4){return function(_0x362d94){if(_0x362d94){var _0x181775=_0x362d94[_0xde2d('0x16')],_0x1c0c10=_0x119fa4['offset'],_0x5ee711=_0x119fa4[_0xde2d('0x17')]+_0x119fa4[_0xde2d('0x18')],_0x591794;if(_0x5ee711>=_0x181775){_0x5ee711=_0x181775;_0x591794=0xc8;}else{_0x591794=0xce;}_0x5ce04d[_0xde2d('0x13')](_0x591794);return _0x5ce04d[_0xde2d('0x19')](_0xde2d('0x1a'),_0x1c0c10+'-'+_0x5ee711+'/'+_0x181775)[_0xde2d('0x15')](_0x362d94);}return null;};}function patchUpdates(_0xcda4b4){return function(_0x17bb10){try{jsonpatch[_0xde2d('0x1b')](_0x17bb10,_0xcda4b4,!![]);}catch(_0x1211fe){return BPromise[_0xde2d('0x1c')](_0x1211fe);}return _0x17bb10[_0xde2d('0x1d')]();};}function saveUpdates(_0x5e853f,_0x2bdfb8){return function(_0x4fc3c7){if(_0x4fc3c7){return _0x4fc3c7['update'](_0x5e853f)[_0xde2d('0x1e')](function(_0x196968){return _0x196968;});}return null;};}function removeEntity(_0x4ae897,_0x2c5e6f){return function(_0x155070){if(_0x155070){return _0x155070[_0xde2d('0x1f')]()[_0xde2d('0x1e')](function(){_0x4ae897[_0xde2d('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4049e2,_0x23a35b){return function(_0x4a6049){if(!_0x4a6049){_0x4049e2[_0xde2d('0x12')](0x194);}return _0x4a6049;};}function handleError(_0x9a5ee7,_0x6f3aad){_0x6f3aad=_0x6f3aad||0x1f4;return function(_0x1a3497){logger[_0xde2d('0x20')](_0x1a3497[_0xde2d('0x21')]);if(_0x1a3497['name']){delete _0x1a3497[_0xde2d('0x22')];}_0x9a5ee7[_0xde2d('0x13')](_0x6f3aad)[_0xde2d('0x23')](_0x1a3497);};}exports[_0xde2d('0x24')]=function(_0x53a00c,_0x4e7070){var _0x40529a={},_0x2a2372={},_0x3dc762={'count':0x0,'rows':[]};var _0x260784=db[_0xde2d('0x25')][_0xde2d('0x26')];_0x2a2372[_0xde2d('0x27')]=_[_0xde2d('0x28')](_0x260784);var _0x2980cd={'dateStart':_0x53a00c[_0xde2d('0x29')][_0xde2d('0x2a')],'dateEnd':_0x53a00c[_0xde2d('0x29')][_0xde2d('0x2b')]};delete _0x53a00c[_0xde2d('0x29')][_0xde2d('0x2a')];delete _0x53a00c[_0xde2d('0x29')][_0xde2d('0x2b')];_0x2a2372[_0xde2d('0x29')]=_[_0xde2d('0x28')](_0x53a00c[_0xde2d('0x29')]);_0x2a2372[_0xde2d('0x2c')]=_[_0xde2d('0x2d')](_0x2a2372['model'],_0x2a2372[_0xde2d('0x29')]);_0x40529a[_0xde2d('0x2e')]=_[_0xde2d('0x2d')](_0x2a2372[_0xde2d('0x27')],qs[_0xde2d('0x2f')](_0x53a00c[_0xde2d('0x29')][_0xde2d('0x2f')]));_0x40529a[_0xde2d('0x2e')]=_0x40529a[_0xde2d('0x2e')][_0xde2d('0x30')]?_0x40529a[_0xde2d('0x2e')]:_0x2a2372['model'];if(!_0x53a00c[_0xde2d('0x29')]['hasOwnProperty'](_0xde2d('0x31'))){_0x40529a['limit']=qs[_0xde2d('0x18')](_0x53a00c[_0xde2d('0x29')][_0xde2d('0x18')]);_0x40529a['offset']=qs[_0xde2d('0x17')](_0x53a00c[_0xde2d('0x29')][_0xde2d('0x17')]);}_0x40529a[_0xde2d('0x32')]=qs[_0xde2d('0x33')](_0x53a00c[_0xde2d('0x29')]['sort']);_0x40529a['where']=qs[_0xde2d('0x2c')](_[_0xde2d('0x34')](_0x53a00c['query'],_0x2a2372[_0xde2d('0x2c')]));if(_0x2980cd[_0xde2d('0x2a')]){if(_0x2980cd[_0xde2d('0x2b')]){_0x2980cd['dateEnd']=moment(_0x2980cd[_0xde2d('0x2b')])[_0xde2d('0x35')](0x1,_0xde2d('0x36'));}else{_0x2980cd[_0xde2d('0x2b')]=moment(_0x2980cd['dateStart'])[_0xde2d('0x35')](0x1,_0xde2d('0x36'));}_[_0xde2d('0x37')](_0x40529a[_0xde2d('0x38')],{'createdAt':{'$gte':_0x2980cd['dateStart'],'$lte':_0x2980cd[_0xde2d('0x2b')]}});}if(_0x53a00c[_0xde2d('0x29')]['filter']){_0x40529a['where']=_['merge'](_0x40529a[_0xde2d('0x38')],{'$or':_[_0xde2d('0x39')](_0x40529a[_0xde2d('0x2e')],function(_0x4195f6){var _0x373d8a={};_0x373d8a[_0x4195f6]={'$like':'%'+_0x53a00c[_0xde2d('0x29')]['filter']+'%'};return _0x373d8a;})});}_0x40529a=_[_0xde2d('0x37')]({},_0x40529a,_0x53a00c[_0xde2d('0x3a')]);var _0x463685={'where':_0x40529a['where']};return db[_0xde2d('0x25')][_0xde2d('0x16')](_0x463685)[_0xde2d('0x1e')](function(_0x284770){_0x3dc762[_0xde2d('0x16')]=_0x284770;if(_0x53a00c[_0xde2d('0x29')][_0xde2d('0x3b')]){_0x40529a[_0xde2d('0x3c')]=[{'all':!![]}];}return db['FreshdeskField'][_0xde2d('0x3d')](_0x40529a);})[_0xde2d('0x1e')](function(_0xc467a3){_0x3dc762['rows']=_0xc467a3;return _0x3dc762;})[_0xde2d('0x1e')](respondWithFilteredResult(_0x4e7070,_0x40529a))[_0xde2d('0x3e')](handleError(_0x4e7070,null));};exports['show']=function(_0x4dec40,_0x6e4f5c){var _0x428c80={'raw':!![],'where':{'id':_0x4dec40[_0xde2d('0x3f')]['id']}},_0x60de25={};_0x60de25[_0xde2d('0x27')]=_[_0xde2d('0x28')](db['FreshdeskField'][_0xde2d('0x26')]);_0x60de25[_0xde2d('0x29')]=_[_0xde2d('0x28')](_0x4dec40[_0xde2d('0x29')]);_0x60de25[_0xde2d('0x2c')]=_[_0xde2d('0x2d')](_0x60de25[_0xde2d('0x27')],_0x60de25[_0xde2d('0x29')]);_0x428c80[_0xde2d('0x2e')]=_[_0xde2d('0x2d')](_0x60de25[_0xde2d('0x27')],qs[_0xde2d('0x2f')](_0x4dec40[_0xde2d('0x29')][_0xde2d('0x2f')]));_0x428c80[_0xde2d('0x2e')]=_0x428c80[_0xde2d('0x2e')][_0xde2d('0x30')]?_0x428c80[_0xde2d('0x2e')]:_0x60de25['model'];if(_0x4dec40[_0xde2d('0x29')]['includeAll']){_0x428c80['include']=[{'all':!![]}];}_0x428c80=_[_0xde2d('0x37')]({},_0x428c80,_0x4dec40[_0xde2d('0x3a')]);return db['FreshdeskField'][_0xde2d('0x40')](_0x428c80)['then'](handleEntityNotFound(_0x6e4f5c,null))[_0xde2d('0x1e')](respondWithResult(_0x6e4f5c,null))[_0xde2d('0x3e')](handleError(_0x6e4f5c,null));};exports[_0xde2d('0x41')]=function(_0x1debf9,_0x2a97c7){return db['FreshdeskField'][_0xde2d('0x41')](_0x1debf9[_0xde2d('0x42')],{})[_0xde2d('0x1e')](respondWithResult(_0x2a97c7,0xc9))[_0xde2d('0x3e')](handleError(_0x2a97c7,null));};exports[_0xde2d('0x43')]=function(_0x14404f,_0x6fc13){if(_0x14404f[_0xde2d('0x42')]['id']){delete _0x14404f[_0xde2d('0x42')]['id'];}return db[_0xde2d('0x25')][_0xde2d('0x40')]({'where':{'id':_0x14404f[_0xde2d('0x3f')]['id']}})['then'](handleEntityNotFound(_0x6fc13,null))[_0xde2d('0x1e')](saveUpdates(_0x14404f[_0xde2d('0x42')],null))[_0xde2d('0x1e')](respondWithResult(_0x6fc13,null))[_0xde2d('0x3e')](handleError(_0x6fc13,null));};exports[_0xde2d('0x1f')]=function(_0xa60c1a,_0x55dfc4){return db['FreshdeskField'][_0xde2d('0x40')]({'where':{'id':_0xa60c1a[_0xde2d('0x3f')]['id']}})[_0xde2d('0x1e')](handleEntityNotFound(_0x55dfc4,null))[_0xde2d('0x1e')](removeEntity(_0x55dfc4,null))[_0xde2d('0x3e')](handleError(_0x55dfc4,null));};
\ No newline at end of file
+var _0xb07f=['bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','reject','update','then','destroy','error','stack','name','index','FreshdeskField','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','day','merge','filter','options','includeAll','include','rows','catch','show','params','intersection','find','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x3983e4,_0x2d1776){var _0x517874=function(_0x457c1c){while(--_0x457c1c){_0x3983e4['push'](_0x3983e4['shift']());}};_0x517874(++_0x2d1776);}(_0xb07f,0x109));var _0xfb07=function(_0x580cee,_0x189c97){_0x580cee=_0x580cee-0x0;var _0x47dfe9=_0xb07f[_0x580cee];return _0x47dfe9;};'use strict';var pdf=require(_0xfb07('0x0'));var emlformat=require(_0xfb07('0x1'));var rimraf=require(_0xfb07('0x2'));var zipdir=require(_0xfb07('0x3'));var jsonpatch=require(_0xfb07('0x4'));var rp=require(_0xfb07('0x5'));var moment=require(_0xfb07('0x6'));var BPromise=require(_0xfb07('0x7'));var Mustache=require(_0xfb07('0x8'));var util=require(_0xfb07('0x9'));var path=require(_0xfb07('0xa'));var sox=require('sox');var csv=require(_0xfb07('0xb'));var ejs=require(_0xfb07('0xc'));var fs=require('fs');var _=require(_0xfb07('0xd'));var squel=require(_0xfb07('0xe'));var crypto=require(_0xfb07('0xf'));var jsforce=require(_0xfb07('0x10'));var deskjs=require(_0xfb07('0x11'));var toCsv=require(_0xfb07('0xb'));var querystring=require(_0xfb07('0x12'));var Papa=require(_0xfb07('0x13'));var Redis=require(_0xfb07('0x14'));var qs=require(_0xfb07('0x15'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xfb07('0x16'));var db=require(_0xfb07('0x17'))['db'];function respondWithStatusCode(_0x483c8c,_0x19d370){_0x19d370=_0x19d370||0xcc;return function(_0x18f5f4){if(_0x18f5f4){return _0x483c8c[_0xfb07('0x18')](_0x19d370);}return _0x483c8c[_0xfb07('0x19')](_0x19d370)[_0xfb07('0x1a')]();};}function respondWithResult(_0x35fd11,_0x2975d7){_0x2975d7=_0x2975d7||0xc8;return function(_0x528550){if(_0x528550){return _0x35fd11[_0xfb07('0x19')](_0x2975d7)[_0xfb07('0x1b')](_0x528550);}};}function respondWithFilteredResult(_0x3c69db,_0x2c35e4){return function(_0x2423f2){if(_0x2423f2){var _0x3c283d=_0x2423f2[_0xfb07('0x1c')],_0x29cbae=_0x2c35e4[_0xfb07('0x1d')],_0x228e2a=_0x2c35e4[_0xfb07('0x1d')]+_0x2c35e4[_0xfb07('0x1e')],_0x2363d6;if(_0x228e2a>=_0x3c283d){_0x228e2a=_0x3c283d;_0x2363d6=0xc8;}else{_0x2363d6=0xce;}_0x3c69db[_0xfb07('0x19')](_0x2363d6);return _0x3c69db['set']('Content-Range',_0x29cbae+'-'+_0x228e2a+'/'+_0x3c283d)[_0xfb07('0x1b')](_0x2423f2);}return null;};}function patchUpdates(_0x44b9c4){return function(_0x197f12){try{jsonpatch['apply'](_0x197f12,_0x44b9c4,!![]);}catch(_0x3923c0){return BPromise[_0xfb07('0x1f')](_0x3923c0);}return _0x197f12['save']();};}function saveUpdates(_0x4fc244,_0x378c75){return function(_0x4b5708){if(_0x4b5708){return _0x4b5708[_0xfb07('0x20')](_0x4fc244)[_0xfb07('0x21')](function(_0x388995){return _0x388995;});}return null;};}function removeEntity(_0x323bec,_0x15e153){return function(_0x23c2be){if(_0x23c2be){return _0x23c2be[_0xfb07('0x22')]()['then'](function(){_0x323bec[_0xfb07('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x22ed97,_0x14c771){return function(_0x428c85){if(!_0x428c85){_0x22ed97[_0xfb07('0x18')](0x194);}return _0x428c85;};}function handleError(_0xb2063a,_0x508d3b){_0x508d3b=_0x508d3b||0x1f4;return function(_0x295989){logger[_0xfb07('0x23')](_0x295989[_0xfb07('0x24')]);if(_0x295989[_0xfb07('0x25')]){delete _0x295989[_0xfb07('0x25')];}_0xb2063a[_0xfb07('0x19')](_0x508d3b)['send'](_0x295989);};}exports[_0xfb07('0x26')]=function(_0x28f33a,_0x581508){var _0x1ba74d={},_0x89f385={},_0xe813a7={'count':0x0,'rows':[]};var _0x149ac0=db[_0xfb07('0x27')][_0xfb07('0x28')];_0x89f385[_0xfb07('0x29')]=_[_0xfb07('0x2a')](_0x149ac0);var _0x95f1d={'dateStart':_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x2c')],'dateEnd':_0x28f33a['query'][_0xfb07('0x2d')]};delete _0x28f33a[_0xfb07('0x2b')][_0xfb07('0x2c')];delete _0x28f33a[_0xfb07('0x2b')]['dateEnd'];_0x89f385[_0xfb07('0x2b')]=_[_0xfb07('0x2a')](_0x28f33a['query']);_0x89f385[_0xfb07('0x2e')]=_['intersection'](_0x89f385[_0xfb07('0x29')],_0x89f385['query']);_0x1ba74d[_0xfb07('0x2f')]=_['intersection'](_0x89f385[_0xfb07('0x29')],qs[_0xfb07('0x30')](_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x30')]));_0x1ba74d[_0xfb07('0x2f')]=_0x1ba74d[_0xfb07('0x2f')]['length']?_0x1ba74d['attributes']:_0x89f385[_0xfb07('0x29')];if(!_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x31')](_0xfb07('0x32'))){_0x1ba74d['limit']=qs['limit'](_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x1e')]);_0x1ba74d[_0xfb07('0x1d')]=qs[_0xfb07('0x1d')](_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x1d')]);}_0x1ba74d['order']=qs['sort'](_0x28f33a['query'][_0xfb07('0x33')]);_0x1ba74d[_0xfb07('0x34')]=qs[_0xfb07('0x2e')](_[_0xfb07('0x35')](_0x28f33a['query'],_0x89f385['filters']));if(_0x95f1d[_0xfb07('0x2c')]){if(_0x95f1d[_0xfb07('0x2d')]){_0x95f1d['dateEnd']=moment(_0x95f1d['dateEnd'])['add'](0x1,_0xfb07('0x36'));}else{_0x95f1d[_0xfb07('0x2d')]=moment(_0x95f1d['dateStart'])['add'](0x1,_0xfb07('0x36'));}_[_0xfb07('0x37')](_0x1ba74d[_0xfb07('0x34')],{'createdAt':{'$gte':_0x95f1d[_0xfb07('0x2c')],'$lte':_0x95f1d[_0xfb07('0x2d')]}});}if(_0x28f33a['query'][_0xfb07('0x38')]){_0x1ba74d[_0xfb07('0x34')]=_[_0xfb07('0x37')](_0x1ba74d[_0xfb07('0x34')],{'$or':_['map'](_0x1ba74d['attributes'],function(_0x2d40cb){var _0x7a274c={};_0x7a274c[_0x2d40cb]={'$like':'%'+_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x38')]+'%'};return _0x7a274c;})});}_0x1ba74d=_[_0xfb07('0x37')]({},_0x1ba74d,_0x28f33a[_0xfb07('0x39')]);var _0x244aed={'where':_0x1ba74d['where']};return db['FreshdeskField'][_0xfb07('0x1c')](_0x244aed)[_0xfb07('0x21')](function(_0x4e5127){_0xe813a7['count']=_0x4e5127;if(_0x28f33a[_0xfb07('0x2b')][_0xfb07('0x3a')]){_0x1ba74d[_0xfb07('0x3b')]=[{'all':!![]}];}return db['FreshdeskField']['findAll'](_0x1ba74d);})[_0xfb07('0x21')](function(_0x7f3877){_0xe813a7[_0xfb07('0x3c')]=_0x7f3877;return _0xe813a7;})[_0xfb07('0x21')](respondWithFilteredResult(_0x581508,_0x1ba74d))[_0xfb07('0x3d')](handleError(_0x581508,null));};exports[_0xfb07('0x3e')]=function(_0xad07ce,_0x41578a){var _0xb04d1={'raw':!![],'where':{'id':_0xad07ce[_0xfb07('0x3f')]['id']}},_0x492f1b={};_0x492f1b[_0xfb07('0x29')]=_[_0xfb07('0x2a')](db[_0xfb07('0x27')][_0xfb07('0x28')]);_0x492f1b[_0xfb07('0x2b')]=_[_0xfb07('0x2a')](_0xad07ce[_0xfb07('0x2b')]);_0x492f1b[_0xfb07('0x2e')]=_[_0xfb07('0x40')](_0x492f1b['model'],_0x492f1b['query']);_0xb04d1[_0xfb07('0x2f')]=_[_0xfb07('0x40')](_0x492f1b['model'],qs[_0xfb07('0x30')](_0xad07ce[_0xfb07('0x2b')][_0xfb07('0x30')]));_0xb04d1[_0xfb07('0x2f')]=_0xb04d1[_0xfb07('0x2f')]['length']?_0xb04d1['attributes']:_0x492f1b[_0xfb07('0x29')];if(_0xad07ce[_0xfb07('0x2b')][_0xfb07('0x3a')]){_0xb04d1[_0xfb07('0x3b')]=[{'all':!![]}];}_0xb04d1=_[_0xfb07('0x37')]({},_0xb04d1,_0xad07ce[_0xfb07('0x39')]);return db[_0xfb07('0x27')][_0xfb07('0x41')](_0xb04d1)[_0xfb07('0x21')](handleEntityNotFound(_0x41578a,null))[_0xfb07('0x21')](respondWithResult(_0x41578a,null))['catch'](handleError(_0x41578a,null));};exports['create']=function(_0x4fbf02,_0x30a8c8){return db['FreshdeskField'][_0xfb07('0x42')](_0x4fbf02[_0xfb07('0x43')],{})[_0xfb07('0x21')](respondWithResult(_0x30a8c8,0xc9))[_0xfb07('0x3d')](handleError(_0x30a8c8,null));};exports[_0xfb07('0x20')]=function(_0x18c7ab,_0x4d464e){if(_0x18c7ab[_0xfb07('0x43')]['id']){delete _0x18c7ab[_0xfb07('0x43')]['id'];}return db[_0xfb07('0x27')][_0xfb07('0x41')]({'where':{'id':_0x18c7ab[_0xfb07('0x3f')]['id']}})['then'](handleEntityNotFound(_0x4d464e,null))[_0xfb07('0x21')](saveUpdates(_0x18c7ab[_0xfb07('0x43')],null))[_0xfb07('0x21')](respondWithResult(_0x4d464e,null))[_0xfb07('0x3d')](handleError(_0x4d464e,null));};exports[_0xfb07('0x22')]=function(_0x5179c2,_0x25787c){return db[_0xfb07('0x27')][_0xfb07('0x41')]({'where':{'id':_0x5179c2[_0xfb07('0x3f')]['id']}})[_0xfb07('0x21')](handleEntityNotFound(_0x25787c,null))['then'](removeEntity(_0x25787c,null))[_0xfb07('0x3d')](handleError(_0x25787c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x51c5=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','exports','define','FreshdeskField','int_freshdesk_fields'];(function(_0x4c7818,_0x37332a){var _0x49780d=function(_0x3c6aa1){while(--_0x3c6aa1){_0x4c7818['push'](_0x4c7818['shift']());}};_0x49780d(++_0x37332a);}(_0x51c5,0x8f));var _0x551c=function(_0x31ced5,_0x5d5415){_0x31ced5=_0x31ced5-0x0;var _0x10d9e5=_0x51c5[_0x31ced5];return _0x10d9e5;};'use strict';var _=require(_0x551c('0x0'));var util=require(_0x551c('0x1'));var logger=require(_0x551c('0x2'))(_0x551c('0x3'));var moment=require(_0x551c('0x4'));var BPromise=require(_0x551c('0x5'));var rp=require(_0x551c('0x6'));var attributes=require('./intFreshdeskField.attributes');module[_0x551c('0x7')]=function(_0x1639d0,_0x28e608){return _0x1639d0[_0x551c('0x8')](_0x551c('0x9'),attributes,{'tableName':_0x551c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1893=['FreshdeskField','int_freshdesk_fields','../../config/logger','api','moment','bluebird','request-promise','./intFreshdeskField.attributes','exports','define'];(function(_0x336ca2,_0x1a813a){var _0xda59a6=function(_0x47caa6){while(--_0x47caa6){_0x336ca2['push'](_0x336ca2['shift']());}};_0xda59a6(++_0x1a813a);}(_0x1893,0xa2));var _0x3189=function(_0x2ab0fb,_0xf21f9e){_0x2ab0fb=_0x2ab0fb-0x0;var _0x578c50=_0x1893[_0x2ab0fb];return _0x578c50;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x3189('0x0'))(_0x3189('0x1'));var moment=require(_0x3189('0x2'));var BPromise=require(_0x3189('0x3'));var rp=require(_0x3189('0x4'));var attributes=require(_0x3189('0x5'));module[_0x3189('0x6')]=function(_0x5371db,_0x27445){return _0x5371db[_0x3189('0x7')](_0x3189('0x8'),attributes,{'tableName':_0x3189('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x917e=['../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','request\x20sent','debug','FreshdeskField,\x20%s,\x20%s,\x20%s','stringify','error','FreshdeskField,\x20%s,\x20%s','message','util','randomstring','../../mysqldb'];(function(_0x328b9b,_0x13082a){var _0x3a2d51=function(_0x63002b){while(--_0x63002b){_0x328b9b['push'](_0x328b9b['shift']());}};_0x3a2d51(++_0x13082a);}(_0x917e,0x151));var _0xe917=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x917e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xe917('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe917('0x1'));var fs=require('fs');var db=require(_0xe917('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xe917('0x3'))(_0xe917('0x4'));var config=require(_0xe917('0x5'));var jayson=require(_0xe917('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x51ad37,_0x38a4ff,_0xd0d51a){return new BPromise(function(_0x3e11ca,_0x75c9a7){return client[_0xe917('0x7')](_0x51ad37,_0xd0d51a)[_0xe917('0x8')](function(_0x13485d){logger[_0xe917('0x9')]('FreshdeskField,\x20%s,\x20%s',_0x38a4ff,_0xe917('0xa'));logger[_0xe917('0xb')](_0xe917('0xc'),_0x38a4ff,_0xe917('0xa'),JSON[_0xe917('0xd')](_0x13485d));if(_0x13485d[_0xe917('0xe')]){if(_0x13485d['error']['code']===0x1f4){logger['error'](_0xe917('0xf'),_0x38a4ff,_0x13485d['error'][_0xe917('0x10')]);return _0x75c9a7(_0x13485d[_0xe917('0xe')][_0xe917('0x10')]);}logger[_0xe917('0xe')](_0xe917('0xf'),_0x38a4ff,_0x13485d[_0xe917('0xe')][_0xe917('0x10')]);return _0x3e11ca(_0x13485d[_0xe917('0xe')][_0xe917('0x10')]);}else{logger['info'](_0xe917('0xf'),_0x38a4ff,'request\x20sent');_0x3e11ca(_0x13485d['result'][_0xe917('0x10')]);}})['catch'](function(_0x1ed54d){logger['error']('FreshdeskField,\x20%s,\x20%s',_0x38a4ff,_0x1ed54d);_0x75c9a7(_0x1ed54d);});});}
\ No newline at end of file
+var _0x4c4e=['result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','debug','FreshdeskField,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0x2fd3b5,_0x4d41bb){var _0x1df950=function(_0x366ebf){while(--_0x366ebf){_0x2fd3b5['push'](_0x2fd3b5['shift']());}};_0x1df950(++_0x4d41bb);}(_0x4c4e,0x152));var _0xe4c4=function(_0x8f8e0c,_0x47cb7c){_0x8f8e0c=_0x8f8e0c-0x0;var _0xda3565=_0x4c4e[_0x8f8e0c];return _0xda3565;};'use strict';var _=require(_0xe4c4('0x0'));var util=require('util');var moment=require(_0xe4c4('0x1'));var BPromise=require(_0xe4c4('0x2'));var rs=require(_0xe4c4('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe4c4('0x4'))['db'];var utils=require(_0xe4c4('0x5'));var logger=require(_0xe4c4('0x6'))('rpc');var config=require(_0xe4c4('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xe4c4('0x8')][_0xe4c4('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x262b64,_0xad105,_0x22085a){return new BPromise(function(_0x329d29,_0x28a42e){return client[_0xe4c4('0xa')](_0x262b64,_0x22085a)['then'](function(_0x589b2e){logger[_0xe4c4('0xb')](_0xe4c4('0xc'),_0xad105,_0xe4c4('0xd'));logger[_0xe4c4('0xe')](_0xe4c4('0xf'),_0xad105,_0xe4c4('0xd'),JSON['stringify'](_0x589b2e));if(_0x589b2e[_0xe4c4('0x10')]){if(_0x589b2e[_0xe4c4('0x10')][_0xe4c4('0x11')]===0x1f4){logger[_0xe4c4('0x10')]('FreshdeskField,\x20%s,\x20%s',_0xad105,_0x589b2e[_0xe4c4('0x10')][_0xe4c4('0x12')]);return _0x28a42e(_0x589b2e['error'][_0xe4c4('0x12')]);}logger[_0xe4c4('0x10')]('FreshdeskField,\x20%s,\x20%s',_0xad105,_0x589b2e[_0xe4c4('0x10')][_0xe4c4('0x12')]);return _0x329d29(_0x589b2e['error'][_0xe4c4('0x12')]);}else{logger[_0xe4c4('0xb')](_0xe4c4('0xc'),_0xad105,_0xe4c4('0xd'));_0x329d29(_0x589b2e[_0xe4c4('0x13')][_0xe4c4('0x12')]);}})[_0xe4c4('0x14')](function(_0x1038cb){logger[_0xe4c4('0x10')](_0xe4c4('0xc'),_0xad105,_0x1038cb);_0x28a42e(_0x1038cb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c6d=['post','addConfiguration','update','delete','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','getFields'];(function(_0x5c11b4,_0x4cdbbf){var _0x158049=function(_0x415f6b){while(--_0x415f6b){_0x5c11b4['push'](_0x5c11b4['shift']());}};_0x158049(++_0x4cdbbf);}(_0x5c6d,0x195));var _0xd5c6=function(_0x21971e,_0x5916d6){_0x21971e=_0x21971e-0x0;var _0x69561f=_0x5c6d[_0x21971e];return _0x69561f;};'use strict';var multer=require(_0xd5c6('0x0'));var util=require(_0xd5c6('0x1'));var path=require('path');var timeout=require(_0xd5c6('0x2'));var express=require(_0xd5c6('0x3'));var router=express[_0xd5c6('0x4')]();var auth=require(_0xd5c6('0x5'));var interaction=require(_0xd5c6('0x6'));var config=require(_0xd5c6('0x7'));var controller=require('./intSalesforceAccount.controller');router[_0xd5c6('0x8')]('/',auth[_0xd5c6('0x9')](),controller[_0xd5c6('0xa')]);router['get'](_0xd5c6('0xb'),auth['isAuthenticated'](),controller['show']);router['get'](_0xd5c6('0xc'),auth[_0xd5c6('0x9')](),controller[_0xd5c6('0xd')]);router[_0xd5c6('0x8')]('/:id/fields',auth['isAuthenticated'](),controller[_0xd5c6('0xe')]);router[_0xd5c6('0xf')]('/',auth[_0xd5c6('0x9')](),controller['create']);router['post']('/:id/configurations',auth[_0xd5c6('0x9')](),controller[_0xd5c6('0x10')]);router['put'](_0xd5c6('0xb'),auth[_0xd5c6('0x9')](),controller[_0xd5c6('0x11')]);router[_0xd5c6('0x12')](_0xd5c6('0xb'),auth[_0xd5c6('0x9')](),controller['destroy']);module[_0xd5c6('0x13')]=router;
\ No newline at end of file
+var _0x3996=['index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','put','update','delete','destroy','exports','multer','connect-timeout','Router','../../components/auth/service','../../config/environment','./intSalesforceAccount.controller','get','isAuthenticated'];(function(_0x41fc3b,_0x1e289a){var _0x5430e1=function(_0x1ad39b){while(--_0x1ad39b){_0x41fc3b['push'](_0x41fc3b['shift']());}};_0x5430e1(++_0x1e289a);}(_0x3996,0x92));var _0x6399=function(_0x4b3e6a,_0x4bb533){_0x4b3e6a=_0x4b3e6a-0x0;var _0x540a21=_0x3996[_0x4b3e6a];return _0x540a21;};'use strict';var multer=require(_0x6399('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x6399('0x1'));var express=require('express');var router=express[_0x6399('0x2')]();var auth=require(_0x6399('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x6399('0x4'));var controller=require(_0x6399('0x5'));router[_0x6399('0x6')]('/',auth[_0x6399('0x7')](),controller[_0x6399('0x8')]);router[_0x6399('0x6')](_0x6399('0x9'),auth['isAuthenticated'](),controller[_0x6399('0xa')]);router['get'](_0x6399('0xb'),auth[_0x6399('0x7')](),controller[_0x6399('0xc')]);router['get'](_0x6399('0xd'),auth[_0x6399('0x7')](),controller[_0x6399('0xe')]);router[_0x6399('0xf')]('/',auth[_0x6399('0x7')](),controller[_0x6399('0x10')]);router[_0x6399('0xf')]('/:id/configurations',auth[_0x6399('0x7')](),controller['addConfiguration']);router[_0x6399('0x11')](_0x6399('0x9'),auth[_0x6399('0x7')](),controller[_0x6399('0x12')]);router[_0x6399('0x13')](_0x6399('0x9'),auth[_0x6399('0x7')](),controller[_0x6399('0x14')]);module[_0x6399('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca73=['username','ENUM','newTab','integrationTab','sequelize','exports','STRING'];(function(_0x1b349a,_0x22222c){var _0x5d1f7c=function(_0x368d7c){while(--_0x368d7c){_0x1b349a['push'](_0x1b349a['shift']());}};_0x5d1f7c(++_0x22222c);}(_0xca73,0x1ee));var _0x3ca7=function(_0x1d830c,_0x13565f){_0x1d830c=_0x1d830c-0x0;var _0x4b638c=_0xca73[_0x1d830c];return _0x4b638c;};'use strict';var Sequelize=require(_0x3ca7('0x0'));module[_0x3ca7('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x3ca7('0x2')]},'username':{'type':Sequelize[_0x3ca7('0x2')],'unique':_0x3ca7('0x3')},'remoteUri':{'type':Sequelize[_0x3ca7('0x2')]},'password':{'type':Sequelize[_0x3ca7('0x2')]},'clientId':{'type':Sequelize[_0x3ca7('0x2')]},'clientSecret':{'type':Sequelize[_0x3ca7('0x2')]},'securityToken':{'type':Sequelize[_0x3ca7('0x2')]},'serverUrl':{'type':Sequelize[_0x3ca7('0x2')]},'type':{'type':Sequelize[_0x3ca7('0x4')]('integrationTab',_0x3ca7('0x5')),'defaultValue':_0x3ca7('0x6')}};
\ No newline at end of file
+var _0x6320=['username','ENUM','integrationTab','sequelize','exports','STRING'];(function(_0x27bdda,_0x426008){var _0x19d5c9=function(_0x2aad6b){while(--_0x2aad6b){_0x27bdda['push'](_0x27bdda['shift']());}};_0x19d5c9(++_0x426008);}(_0x6320,0x1d7));var _0x0632=function(_0x4459ed,_0x1f3903){_0x4459ed=_0x4459ed-0x0;var _0x33b5fe=_0x6320[_0x4459ed];return _0x33b5fe;};'use strict';var Sequelize=require(_0x0632('0x0'));module[_0x0632('0x1')]={'name':{'type':Sequelize[_0x0632('0x2')]},'description':{'type':Sequelize[_0x0632('0x2')]},'username':{'type':Sequelize[_0x0632('0x2')],'unique':_0x0632('0x3')},'remoteUri':{'type':Sequelize[_0x0632('0x2')]},'password':{'type':Sequelize[_0x0632('0x2')]},'clientId':{'type':Sequelize[_0x0632('0x2')]},'clientSecret':{'type':Sequelize[_0x0632('0x2')]},'securityToken':{'type':Sequelize[_0x0632('0x2')]},'serverUrl':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x0632('0x4')](_0x0632('0x5'),'newTab'),'defaultValue':_0x0632('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x619f=['SalesforceConfiguration','SalesforceField','Descriptions','clientId','clientSecret','username','password','securityToken','login','sobject','Task','describe','CallDisposition','CallDurationInSeconds','CallObject','CallType','Priority','Type','includes','label','picklistValues','value','test','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','statusCode','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','lodash','jsforce','to-csv','querystring','papaparse','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','client','request','then','request\x20sent','debug','stringify','error','code','SalesforceAccount,\x20%s,\x20%s','message','info','result','catch','sendStatus','json','count','offset','status','set','apply','save','update','destroy','end','stack','name','send','SalesforceAccount','model','keys','query','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','dateStart','add','day','merge','filter','map','options','includeAll','include','findAll','rawAttributes','find','create','body','params','getConfigurations','findOne','AccountId','Subjects','getSubjects','type','channel'];(function(_0x2070da,_0x45e586){var _0x4f9fe1=function(_0x5b6f2a){while(--_0x5b6f2a){_0x2070da['push'](_0x2070da['shift']());}};_0x4f9fe1(++_0x45e586);}(_0x619f,0xfb));var _0xf619=function(_0x11dc6a,_0x3a5d46){_0x11dc6a=_0x11dc6a-0x0;var _0x23259a=_0x619f[_0x11dc6a];return _0x23259a;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf619('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf619('0x1'));var jsonpatch=require(_0xf619('0x2'));var rp=require('request-promise');var moment=require(_0xf619('0x3'));var BPromise=require(_0xf619('0x4'));var Mustache=require(_0xf619('0x5'));var util=require(_0xf619('0x6'));var path=require(_0xf619('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf619('0x8'));var fs=require('fs');var _=require(_0xf619('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xf619('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xf619('0xb'));var querystring=require(_0xf619('0xc'));var Papa=require(_0xf619('0xd'));var qs=require('../../components/parsers/qs');var logger=require(_0xf619('0xe'))(_0xf619('0xf'));var utils=require('../../config/utils');var config=require(_0xf619('0x10'));var db=require(_0xf619('0x11'))['db'];var integrations=require(_0xf619('0x12'));var jayson=require('jayson/promise');var client=jayson[_0xf619('0x13')]['http']({'port':0x232a});function respondWithRpcPromise(_0x240b83,_0x1330bc,_0x104256,_0xa22677){return new BPromise(function(_0x1a4766,_0x29815e){var _0x8e5172=_0xa22677||client;return _0x8e5172[_0xf619('0x14')](_0x240b83,_0x104256)[_0xf619('0x15')](function(_0x21329d){logger['info']('SalesforceAccount,\x20%s,\x20%s',_0x1330bc,_0xf619('0x16'));logger[_0xf619('0x17')]('SalesforceAccount,\x20%s,\x20%s,\x20%s',_0x1330bc,_0xf619('0x16'),JSON[_0xf619('0x18')](_0x21329d));if(_0x21329d[_0xf619('0x19')]){if(_0x21329d[_0xf619('0x19')][_0xf619('0x1a')]===0x1f4){logger['error'](_0xf619('0x1b'),_0x1330bc,_0x21329d[_0xf619('0x19')]['message']);return _0x29815e(_0x21329d['error']['message']);}logger[_0xf619('0x19')](_0xf619('0x1b'),_0x1330bc,_0x21329d['error'][_0xf619('0x1c')]);return _0x1a4766(_0x21329d[_0xf619('0x19')][_0xf619('0x1c')]);}else{logger[_0xf619('0x1d')](_0xf619('0x1b'),_0x1330bc,_0xf619('0x16'));_0x1a4766(_0x21329d[_0xf619('0x1e')][_0xf619('0x1c')]);}})[_0xf619('0x1f')](function(_0x4d7e7b){logger['error'](_0xf619('0x1b'),_0x1330bc,_0x4d7e7b);_0x29815e(_0x4d7e7b);});});}function respondWithStatusCode(_0x1471cc,_0xec1475){_0xec1475=_0xec1475||0xcc;return function(_0x2149ac){if(_0x2149ac){return _0x1471cc[_0xf619('0x20')](_0xec1475);}return _0x1471cc['status'](_0xec1475)['end']();};}function respondWithResult(_0xc43fa9,_0xd449c0){_0xd449c0=_0xd449c0||0xc8;return function(_0x39a212){if(_0x39a212){return _0xc43fa9['status'](_0xd449c0)[_0xf619('0x21')](_0x39a212);}};}function respondWithFilteredResult(_0xf0c1cd,_0x5e15ec){return function(_0x32fc2d){if(_0x32fc2d){var _0x43e587=_0x32fc2d[_0xf619('0x22')],_0x4086a4=_0x5e15ec['offset'],_0x47edc1=_0x5e15ec[_0xf619('0x23')]+_0x5e15ec['limit'],_0x5bbf9c;if(_0x47edc1>=_0x43e587){_0x47edc1=_0x43e587;_0x5bbf9c=0xc8;}else{_0x5bbf9c=0xce;}_0xf0c1cd[_0xf619('0x24')](_0x5bbf9c);return _0xf0c1cd[_0xf619('0x25')]('Content-Range',_0x4086a4+'-'+_0x47edc1+'/'+_0x43e587)[_0xf619('0x21')](_0x32fc2d);}return null;};}function patchUpdates(_0x45e1fb){return function(_0x3fe0f8){try{jsonpatch[_0xf619('0x26')](_0x3fe0f8,_0x45e1fb,!![]);}catch(_0x40bbe8){return BPromise['reject'](_0x40bbe8);}return _0x3fe0f8[_0xf619('0x27')]();};}function saveUpdates(_0x277b38,_0x157796){return function(_0x2373ea){if(_0x2373ea){return _0x2373ea[_0xf619('0x28')](_0x277b38)['then'](function(_0x530bc9){return _0x530bc9;});}return null;};}function removeEntity(_0x2ea698,_0x211e82){return function(_0x2cc113){if(_0x2cc113){return _0x2cc113[_0xf619('0x29')]()[_0xf619('0x15')](function(){_0x2ea698['status'](0xcc)[_0xf619('0x2a')]();});}};}function handleEntityNotFound(_0x3efe2e,_0x3aff0b){return function(_0x57ed2c){if(!_0x57ed2c){_0x3efe2e['sendStatus'](0x194);}return _0x57ed2c;};}function handleError(_0x1643a9,_0x24f522){_0x24f522=_0x24f522||0x1f4;return function(_0x21f0b6){logger[_0xf619('0x19')](_0x21f0b6[_0xf619('0x2b')]);if(_0x21f0b6[_0xf619('0x2c')]){delete _0x21f0b6[_0xf619('0x2c')];}_0x1643a9[_0xf619('0x24')](_0x24f522)[_0xf619('0x2d')](_0x21f0b6);};}exports['index']=function(_0x2454d1,_0x95d7ab){var _0x335695={},_0x27921d={},_0x4350e8={'count':0x0,'rows':[]};var _0x22be0c=db[_0xf619('0x2e')]['rawAttributes'];_0x27921d[_0xf619('0x2f')]=_[_0xf619('0x30')](_0x22be0c);var _0x1f0021={'dateStart':_0x2454d1[_0xf619('0x31')]['dateStart'],'dateEnd':_0x2454d1[_0xf619('0x31')][_0xf619('0x32')]};delete _0x2454d1[_0xf619('0x31')]['dateStart'];delete _0x2454d1[_0xf619('0x31')][_0xf619('0x32')];_0x27921d[_0xf619('0x31')]=_[_0xf619('0x30')](_0x2454d1[_0xf619('0x31')]);_0x27921d[_0xf619('0x33')]=_[_0xf619('0x34')](_0x27921d[_0xf619('0x2f')],_0x27921d[_0xf619('0x31')]);_0x335695[_0xf619('0x35')]=_[_0xf619('0x34')](_0x27921d[_0xf619('0x2f')],qs[_0xf619('0x36')](_0x2454d1[_0xf619('0x31')][_0xf619('0x36')]));_0x335695[_0xf619('0x35')]=_0x335695['attributes'][_0xf619('0x37')]?_0x335695[_0xf619('0x35')]:_0x27921d['model'];if(!_0x2454d1['query'][_0xf619('0x38')](_0xf619('0x39'))){_0x335695[_0xf619('0x3a')]=qs['limit'](_0x2454d1[_0xf619('0x31')][_0xf619('0x3a')]);_0x335695[_0xf619('0x23')]=qs[_0xf619('0x23')](_0x2454d1['query'][_0xf619('0x23')]);}_0x335695[_0xf619('0x3b')]=qs[_0xf619('0x3c')](_0x2454d1[_0xf619('0x31')][_0xf619('0x3c')]);_0x335695[_0xf619('0x3d')]=qs[_0xf619('0x33')](_[_0xf619('0x3e')](_0x2454d1[_0xf619('0x31')],_0x27921d['filters']));if(_0x1f0021[_0xf619('0x3f')]){if(_0x1f0021['dateEnd']){_0x1f0021[_0xf619('0x32')]=moment(_0x1f0021[_0xf619('0x32')])[_0xf619('0x40')](0x1,_0xf619('0x41'));}else{_0x1f0021['dateEnd']=moment(_0x1f0021[_0xf619('0x3f')])['add'](0x1,_0xf619('0x41'));}_[_0xf619('0x42')](_0x335695[_0xf619('0x3d')],{'createdAt':{'$gte':_0x1f0021[_0xf619('0x3f')],'$lte':_0x1f0021['dateEnd']}});}if(_0x2454d1[_0xf619('0x31')][_0xf619('0x43')]){_0x335695[_0xf619('0x3d')]=_[_0xf619('0x42')](_0x335695[_0xf619('0x3d')],{'$or':_[_0xf619('0x44')](_0x335695['attributes'],function(_0x1899ed){var _0x2501b3={};_0x2501b3[_0x1899ed]={'$like':'%'+_0x2454d1['query']['filter']+'%'};return _0x2501b3;})});}_0x335695=_['merge']({},_0x335695,_0x2454d1[_0xf619('0x45')]);var _0x7adefe={'where':_0x335695[_0xf619('0x3d')]};return db[_0xf619('0x2e')]['count'](_0x7adefe)[_0xf619('0x15')](function(_0x3cd1ea){_0x4350e8[_0xf619('0x22')]=_0x3cd1ea;if(_0x2454d1[_0xf619('0x31')][_0xf619('0x46')]){_0x335695[_0xf619('0x47')]=[{'all':!![]}];}return db['SalesforceAccount'][_0xf619('0x48')](_0x335695);})[_0xf619('0x15')](function(_0x4908bc){_0x4350e8['rows']=_0x4908bc;return _0x4350e8;})[_0xf619('0x15')](respondWithFilteredResult(_0x95d7ab,_0x335695))[_0xf619('0x1f')](handleError(_0x95d7ab,null));};exports['show']=function(_0x90cfe8,_0x31f037){var _0x4b9c52={'raw':![],'where':{'id':_0x90cfe8['params']['id']}},_0x5e5464={};_0x5e5464[_0xf619('0x2f')]=_[_0xf619('0x30')](db[_0xf619('0x2e')][_0xf619('0x49')]);_0x5e5464[_0xf619('0x31')]=_[_0xf619('0x30')](_0x90cfe8['query']);_0x5e5464[_0xf619('0x33')]=_[_0xf619('0x34')](_0x5e5464[_0xf619('0x2f')],_0x5e5464[_0xf619('0x31')]);_0x4b9c52[_0xf619('0x35')]=_[_0xf619('0x34')](_0x5e5464['model'],qs[_0xf619('0x36')](_0x90cfe8[_0xf619('0x31')][_0xf619('0x36')]));_0x4b9c52[_0xf619('0x35')]=_0x4b9c52['attributes'][_0xf619('0x37')]?_0x4b9c52[_0xf619('0x35')]:_0x5e5464['model'];if(_0x90cfe8[_0xf619('0x31')]['includeAll']){_0x4b9c52[_0xf619('0x47')]=[{'all':!![]}];}_0x4b9c52=_['merge']({},_0x4b9c52,_0x90cfe8['options']);return db[_0xf619('0x2e')][_0xf619('0x4a')](_0x4b9c52)['then'](handleEntityNotFound(_0x31f037,null))['then'](respondWithResult(_0x31f037,null))[_0xf619('0x1f')](handleError(_0x31f037,null));};exports[_0xf619('0x4b')]=function(_0x393ee1,_0x2590b7){return db[_0xf619('0x2e')][_0xf619('0x4b')](_0x393ee1['body'],{})[_0xf619('0x15')](respondWithResult(_0x2590b7,0xc9))[_0xf619('0x1f')](handleError(_0x2590b7,null));};exports[_0xf619('0x28')]=function(_0x5f088a,_0x4de5e2){if(_0x5f088a[_0xf619('0x4c')]['id']){delete _0x5f088a[_0xf619('0x4c')]['id'];}return db[_0xf619('0x2e')]['find']({'where':{'id':_0x5f088a[_0xf619('0x4d')]['id']}})[_0xf619('0x15')](handleEntityNotFound(_0x4de5e2,null))[_0xf619('0x15')](saveUpdates(_0x5f088a['body'],null))[_0xf619('0x15')](respondWithResult(_0x4de5e2,null))[_0xf619('0x1f')](handleError(_0x4de5e2,null));};exports[_0xf619('0x29')]=function(_0x27e713,_0x1d26d7){return db['SalesforceAccount'][_0xf619('0x4a')]({'where':{'id':_0x27e713[_0xf619('0x4d')]['id']}})[_0xf619('0x15')](handleEntityNotFound(_0x1d26d7,null))[_0xf619('0x15')](removeEntity(_0x1d26d7,null))[_0xf619('0x1f')](handleError(_0x1d26d7,null));};exports[_0xf619('0x4e')]=function(_0x48adf5,_0x4d2bf2,_0x1e3e5e){var _0x19f4b0={};var _0x3edb5f={};var _0xde7689;var _0xcfb6ad;return db[_0xf619('0x2e')][_0xf619('0x4f')]({'where':{'id':_0x48adf5[_0xf619('0x4d')]['id']}})[_0xf619('0x15')](handleEntityNotFound(_0x4d2bf2,null))['then'](function(_0x18f9a6){if(_0x18f9a6){_0xde7689=_0x18f9a6;_0x3edb5f[_0xf619('0x2f')]=_[_0xf619('0x30')](db['SalesforceConfiguration'][_0xf619('0x49')]);_0x3edb5f[_0xf619('0x31')]=_[_0xf619('0x30')](_0x48adf5['query']);_0x3edb5f[_0xf619('0x33')]=_['intersection'](_0x3edb5f[_0xf619('0x2f')],_0x3edb5f[_0xf619('0x31')]);_0x19f4b0[_0xf619('0x35')]=_['intersection'](_0x3edb5f[_0xf619('0x2f')],qs[_0xf619('0x36')](_0x48adf5[_0xf619('0x31')][_0xf619('0x36')]));_0x19f4b0[_0xf619('0x35')]=_0x19f4b0[_0xf619('0x35')]['length']?_0x19f4b0[_0xf619('0x35')]:_0x3edb5f[_0xf619('0x2f')];_0x19f4b0[_0xf619('0x3b')]=qs[_0xf619('0x3c')](_0x48adf5[_0xf619('0x31')][_0xf619('0x3c')]);_0x19f4b0['where']=qs[_0xf619('0x33')](_['pick'](_0x48adf5[_0xf619('0x31')],_0x3edb5f[_0xf619('0x33')]));if(_0x48adf5['query']['filter']){_0x19f4b0[_0xf619('0x3d')]=_[_0xf619('0x42')](_0x19f4b0[_0xf619('0x3d')],{'$or':_[_0xf619('0x44')](_0x19f4b0[_0xf619('0x35')],function(_0xa97f46){var _0x3aa361={};_0x3aa361[_0xa97f46]={'$like':'%'+_0x48adf5[_0xf619('0x31')][_0xf619('0x43')]+'%'};return _0x3aa361;})});}_0x19f4b0=_[_0xf619('0x42')]({},_0x19f4b0,_0x48adf5[_0xf619('0x45')]);return _0xde7689[_0xf619('0x4e')](_0x19f4b0);}})[_0xf619('0x15')](function(_0x422d0d){if(_0x422d0d){_0xcfb6ad=_0x422d0d[_0xf619('0x37')];if(!_0x48adf5['query']['hasOwnProperty'](_0xf619('0x39'))){_0x19f4b0['limit']=qs[_0xf619('0x3a')](_0x48adf5[_0xf619('0x31')][_0xf619('0x3a')]);_0x19f4b0[_0xf619('0x23')]=qs[_0xf619('0x23')](_0x48adf5[_0xf619('0x31')][_0xf619('0x23')]);}return _0xde7689[_0xf619('0x4e')](_0x19f4b0);}})[_0xf619('0x15')](function(_0x41820c){if(_0x41820c){return _0x41820c?{'count':_0xcfb6ad,'rows':_0x41820c}:null;}})[_0xf619('0x15')](respondWithResult(_0x4d2bf2,null))[_0xf619('0x1f')](handleError(_0x4d2bf2,null));};exports['addConfiguration']=function(_0x24098f,_0x3651d8,_0xe29d97){if(_0x24098f['body']['id']){delete _0x24098f[_0xf619('0x4c')]['id'];}return db[_0xf619('0x2e')][_0xf619('0x4f')]({'where':{'id':_0x24098f[_0xf619('0x4d')]['id']}})[_0xf619('0x15')](handleEntityNotFound(_0x3651d8,null))[_0xf619('0x15')](function(_0x28d3a0){if(_0x28d3a0){_0x24098f[_0xf619('0x4c')][_0xf619('0x50')]=_0x28d3a0['id'];_0x24098f['body'][_0xf619('0x51')]=integrations[_0xf619('0x52')](_0x24098f['body']['channel'],_0x24098f['body'][_0xf619('0x53')]);_0x24098f[_0xf619('0x4c')]['Descriptions']=integrations['getDescriptions'](_0x24098f[_0xf619('0x4c')][_0xf619('0x54')],_0x24098f[_0xf619('0x4c')][_0xf619('0x53')]);return db[_0xf619('0x55')][_0xf619('0x4b')](_0x24098f[_0xf619('0x4c')],{'include':[{'model':db[_0xf619('0x56')],'as':_0xf619('0x51')},{'model':db[_0xf619('0x56')],'as':_0xf619('0x57')}]});}return null;})['then'](respondWithResult(_0x3651d8,null))['catch'](handleError(_0x3651d8,null));};exports['getFields']=function(_0x108040,_0x35e973,_0x299778){var _0x455cc4;return db[_0xf619('0x2e')][_0xf619('0x4f')]({'where':{'id':_0x108040[_0xf619('0x4d')]['id']},'attributes':['id','remoteUri',_0xf619('0x58'),_0xf619('0x59'),_0xf619('0x5a'),_0xf619('0x5b'),_0xf619('0x5c')]})['then'](handleEntityNotFound(_0x35e973,null))[_0xf619('0x15')](function(_0x3b3504){if(_0x3b3504){_0x455cc4=new jsforce['Connection']({'oauth2':{'loginUrl':_0x3b3504['remoteUri'],'clientId':_0x3b3504[_0xf619('0x58')],'clientSecret':_0x3b3504['clientSecret']}});return _0x455cc4[_0xf619('0x5d')](_0x3b3504[_0xf619('0x5a')],_0x3b3504[_0xf619('0x5b')]['concat'](_0x3b3504[_0xf619('0x5c')]));}})[_0xf619('0x15')](function(_0x138697){if(_0x138697){return _0x455cc4[_0xf619('0x5e')](_0xf619('0x5f'))[_0xf619('0x60')]();}})[_0xf619('0x15')](function(_0x8306c8){var _0x1ed0b7=[_0xf619('0x61'),_0xf619('0x62'),_0xf619('0x63'),_0xf619('0x64'),'IsArchived',_0xf619('0x65'),'Status',_0xf619('0x66')];if(_0x8306c8){_['remove'](_0x8306c8[_0xf619('0x36')],function(_0x13f3b8){return _0x13f3b8['custom']===![]&&!_0x1ed0b7[_0xf619('0x67')](_0x13f3b8[_0xf619('0x2c')]);});return{'count':_0x8306c8[_0xf619('0x36')][_0xf619('0x37')],'rows':_[_0xf619('0x44')](_0x8306c8[_0xf619('0x36')],function(_0x4cfccc){return{'id':_0x4cfccc[_0xf619('0x2c')],'name':_0x4cfccc[_0xf619('0x68')],'custom':_0x4cfccc['custom'],'options':_0x4cfccc[_0xf619('0x69')]?_[_0xf619('0x44')](_0x4cfccc[_0xf619('0x69')],function(_0x271c32){return{'name':_0x271c32[_0xf619('0x68')],'value':_0x271c32[_0xf619('0x6a')]};}):[]};})};}})[_0xf619('0x15')](respondWithResult(_0x35e973,null))['catch'](function(_0x355f1f){var _0x13a03c=_0x108040['query'][_0xf619('0x6b')]?0x1f4:_0x355f1f['statusCode']||0x1f4;logger[_0xf619('0x19')](_0xf619('0x6c'),_0xf619('0x6d'),_0x13a03c,JSON[_0xf619('0x18')](_0x355f1f));delete _0x355f1f['name'];if(_0x13a03c===0x191){_0x13a03c=0x190;}_0x35e973[_0xf619('0x24')](_0x13a03c)[_0xf619('0x2d')](_0x108040[_0xf619('0x31')][_0xf619('0x6b')]?{'message':_0xf619('0x6e'),'statusCode':_0x355f1f[_0xf619('0x6f')]}:_0x355f1f);});};
\ No newline at end of file
+var _0xce62=['Type','custom','includes','label','picklistValues','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../config/logger','../../config/environment','../../components/integrations/configuration','client','http','request','info','SalesforceAccount,\x20%s,\x20%s','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','sendStatus','end','status','json','offset','limit','save','update','then','destroy','stack','name','SalesforceAccount','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','add','day','where','filter','merge','map','options','count','includeAll','include','findAll','rows','show','params','find','create','body','getConfigurations','SalesforceConfiguration','addConfiguration','findOne','AccountId','getSubjects','channel','Descriptions','getDescriptions','Subjects','SalesforceField','getFields','clientSecret','username','password','securityToken','Connection','remoteUri','clientId','concat','describe','CallDisposition','CallDurationInSeconds','CallObject','CallType','IsArchived','Priority','Status'];(function(_0x52a073,_0x51060d){var _0x56b707=function(_0x544379){while(--_0x544379){_0x52a073['push'](_0x52a073['shift']());}};_0x56b707(++_0x51060d);}(_0xce62,0x83));var _0x2ce6=function(_0xf6a466,_0x32bd86){_0xf6a466=_0xf6a466-0x0;var _0x15b2dc=_0xce62[_0xf6a466];return _0x15b2dc;};'use strict';var pdf=require(_0x2ce6('0x0'));var emlformat=require(_0x2ce6('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x2ce6('0x2'));var jsonpatch=require(_0x2ce6('0x3'));var rp=require(_0x2ce6('0x4'));var moment=require(_0x2ce6('0x5'));var BPromise=require(_0x2ce6('0x6'));var Mustache=require(_0x2ce6('0x7'));var util=require('util');var path=require(_0x2ce6('0x8'));var sox=require(_0x2ce6('0x9'));var csv=require(_0x2ce6('0xa'));var ejs=require(_0x2ce6('0xb'));var fs=require('fs');var _=require(_0x2ce6('0xc'));var squel=require(_0x2ce6('0xd'));var crypto=require('crypto');var jsforce=require(_0x2ce6('0xe'));var deskjs=require(_0x2ce6('0xf'));var toCsv=require('to-csv');var querystring=require(_0x2ce6('0x10'));var Papa=require(_0x2ce6('0x11'));var Redis=require(_0x2ce6('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0x2ce6('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x2ce6('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0x2ce6('0x15'));var jayson=require('jayson/promise');var client=jayson[_0x2ce6('0x16')][_0x2ce6('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x225f16,_0x2479b2,_0xc50d0d,_0x3bc06a){return new BPromise(function(_0x16bc7f,_0x253eba){var _0x5d6d69=_0x3bc06a||client;return _0x5d6d69[_0x2ce6('0x18')](_0x225f16,_0xc50d0d)['then'](function(_0x3d5488){logger[_0x2ce6('0x19')](_0x2ce6('0x1a'),_0x2479b2,'request\x20sent');logger[_0x2ce6('0x1b')](_0x2ce6('0x1c'),_0x2479b2,_0x2ce6('0x1d'),JSON[_0x2ce6('0x1e')](_0x3d5488));if(_0x3d5488[_0x2ce6('0x1f')]){if(_0x3d5488[_0x2ce6('0x1f')][_0x2ce6('0x20')]===0x1f4){logger[_0x2ce6('0x1f')](_0x2ce6('0x1a'),_0x2479b2,_0x3d5488[_0x2ce6('0x1f')]['message']);return _0x253eba(_0x3d5488[_0x2ce6('0x1f')][_0x2ce6('0x21')]);}logger[_0x2ce6('0x1f')]('SalesforceAccount,\x20%s,\x20%s',_0x2479b2,_0x3d5488[_0x2ce6('0x1f')][_0x2ce6('0x21')]);return _0x16bc7f(_0x3d5488[_0x2ce6('0x1f')][_0x2ce6('0x21')]);}else{logger[_0x2ce6('0x19')]('SalesforceAccount,\x20%s,\x20%s',_0x2479b2,_0x2ce6('0x1d'));_0x16bc7f(_0x3d5488['result']['message']);}})[_0x2ce6('0x22')](function(_0x2b80bd){logger[_0x2ce6('0x1f')]('SalesforceAccount,\x20%s,\x20%s',_0x2479b2,_0x2b80bd);_0x253eba(_0x2b80bd);});});}function respondWithStatusCode(_0x1f932a,_0x425461){_0x425461=_0x425461||0xcc;return function(_0x1e11b1){if(_0x1e11b1){return _0x1f932a[_0x2ce6('0x23')](_0x425461);}return _0x1f932a['status'](_0x425461)[_0x2ce6('0x24')]();};}function respondWithResult(_0xf3fbc0,_0x3071c9){_0x3071c9=_0x3071c9||0xc8;return function(_0x1d6ecd){if(_0x1d6ecd){return _0xf3fbc0[_0x2ce6('0x25')](_0x3071c9)[_0x2ce6('0x26')](_0x1d6ecd);}};}function respondWithFilteredResult(_0x14c642,_0x52d520){return function(_0x4ba3c4){if(_0x4ba3c4){var _0x4eb918=_0x4ba3c4['count'],_0x22bf7b=_0x52d520[_0x2ce6('0x27')],_0x2df836=_0x52d520[_0x2ce6('0x27')]+_0x52d520[_0x2ce6('0x28')],_0x4a0d3a;if(_0x2df836>=_0x4eb918){_0x2df836=_0x4eb918;_0x4a0d3a=0xc8;}else{_0x4a0d3a=0xce;}_0x14c642[_0x2ce6('0x25')](_0x4a0d3a);return _0x14c642['set']('Content-Range',_0x22bf7b+'-'+_0x2df836+'/'+_0x4eb918)[_0x2ce6('0x26')](_0x4ba3c4);}return null;};}function patchUpdates(_0xa78201){return function(_0x2fd596){try{jsonpatch['apply'](_0x2fd596,_0xa78201,!![]);}catch(_0x541a2d){return BPromise['reject'](_0x541a2d);}return _0x2fd596[_0x2ce6('0x29')]();};}function saveUpdates(_0x5119c4,_0x17047f){return function(_0x287568){if(_0x287568){return _0x287568[_0x2ce6('0x2a')](_0x5119c4)[_0x2ce6('0x2b')](function(_0x3c9bad){return _0x3c9bad;});}return null;};}function removeEntity(_0x591aa7,_0x1c7ae3){return function(_0x3715de){if(_0x3715de){return _0x3715de[_0x2ce6('0x2c')]()[_0x2ce6('0x2b')](function(){_0x591aa7['status'](0xcc)[_0x2ce6('0x24')]();});}};}function handleEntityNotFound(_0x46ae49,_0xc9325a){return function(_0x483b12){if(!_0x483b12){_0x46ae49[_0x2ce6('0x23')](0x194);}return _0x483b12;};}function handleError(_0x293419,_0x27d020){_0x27d020=_0x27d020||0x1f4;return function(_0x4f1abb){logger[_0x2ce6('0x1f')](_0x4f1abb[_0x2ce6('0x2d')]);if(_0x4f1abb['name']){delete _0x4f1abb[_0x2ce6('0x2e')];}_0x293419['status'](_0x27d020)['send'](_0x4f1abb);};}exports['index']=function(_0x2a9374,_0x44a27e){var _0xc50a7b={},_0x234ba3={},_0x293f28={'count':0x0,'rows':[]};var _0x22e027=db[_0x2ce6('0x2f')][_0x2ce6('0x30')];_0x234ba3[_0x2ce6('0x31')]=_[_0x2ce6('0x32')](_0x22e027);var _0x2174fb={'dateStart':_0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x34')],'dateEnd':_0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x35')]};delete _0x2a9374[_0x2ce6('0x33')]['dateStart'];delete _0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x35')];_0x234ba3[_0x2ce6('0x33')]=_[_0x2ce6('0x32')](_0x2a9374['query']);_0x234ba3[_0x2ce6('0x36')]=_['intersection'](_0x234ba3[_0x2ce6('0x31')],_0x234ba3[_0x2ce6('0x33')]);_0xc50a7b[_0x2ce6('0x37')]=_[_0x2ce6('0x38')](_0x234ba3[_0x2ce6('0x31')],qs[_0x2ce6('0x39')](_0x2a9374[_0x2ce6('0x33')]['fields']));_0xc50a7b['attributes']=_0xc50a7b[_0x2ce6('0x37')][_0x2ce6('0x3a')]?_0xc50a7b['attributes']:_0x234ba3['model'];if(!_0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x3b')](_0x2ce6('0x3c'))){_0xc50a7b[_0x2ce6('0x28')]=qs['limit'](_0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x28')]);_0xc50a7b[_0x2ce6('0x27')]=qs[_0x2ce6('0x27')](_0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x27')]);}_0xc50a7b[_0x2ce6('0x3d')]=qs[_0x2ce6('0x3e')](_0x2a9374[_0x2ce6('0x33')]['sort']);_0xc50a7b['where']=qs[_0x2ce6('0x36')](_[_0x2ce6('0x3f')](_0x2a9374[_0x2ce6('0x33')],_0x234ba3['filters']));if(_0x2174fb[_0x2ce6('0x34')]){if(_0x2174fb['dateEnd']){_0x2174fb[_0x2ce6('0x35')]=moment(_0x2174fb['dateEnd'])[_0x2ce6('0x40')](0x1,_0x2ce6('0x41'));}else{_0x2174fb[_0x2ce6('0x35')]=moment(_0x2174fb[_0x2ce6('0x34')])[_0x2ce6('0x40')](0x1,'day');}_['merge'](_0xc50a7b[_0x2ce6('0x42')],{'createdAt':{'$gte':_0x2174fb[_0x2ce6('0x34')],'$lte':_0x2174fb[_0x2ce6('0x35')]}});}if(_0x2a9374[_0x2ce6('0x33')][_0x2ce6('0x43')]){_0xc50a7b[_0x2ce6('0x42')]=_[_0x2ce6('0x44')](_0xc50a7b['where'],{'$or':_[_0x2ce6('0x45')](_0xc50a7b[_0x2ce6('0x37')],function(_0x432afa){var _0x2d507a={};_0x2d507a[_0x432afa]={'$like':'%'+_0x2a9374['query'][_0x2ce6('0x43')]+'%'};return _0x2d507a;})});}_0xc50a7b=_[_0x2ce6('0x44')]({},_0xc50a7b,_0x2a9374[_0x2ce6('0x46')]);var _0xc4db8a={'where':_0xc50a7b[_0x2ce6('0x42')]};return db[_0x2ce6('0x2f')][_0x2ce6('0x47')](_0xc4db8a)['then'](function(_0x3d5250){_0x293f28[_0x2ce6('0x47')]=_0x3d5250;if(_0x2a9374['query'][_0x2ce6('0x48')]){_0xc50a7b[_0x2ce6('0x49')]=[{'all':!![]}];}return db[_0x2ce6('0x2f')][_0x2ce6('0x4a')](_0xc50a7b);})[_0x2ce6('0x2b')](function(_0x13d982){_0x293f28[_0x2ce6('0x4b')]=_0x13d982;return _0x293f28;})[_0x2ce6('0x2b')](respondWithFilteredResult(_0x44a27e,_0xc50a7b))['catch'](handleError(_0x44a27e,null));};exports[_0x2ce6('0x4c')]=function(_0x33075c,_0x25774){var _0x509aba={'raw':![],'where':{'id':_0x33075c[_0x2ce6('0x4d')]['id']}},_0x287334={};_0x287334[_0x2ce6('0x31')]=_[_0x2ce6('0x32')](db[_0x2ce6('0x2f')]['rawAttributes']);_0x287334['query']=_[_0x2ce6('0x32')](_0x33075c[_0x2ce6('0x33')]);_0x287334[_0x2ce6('0x36')]=_[_0x2ce6('0x38')](_0x287334[_0x2ce6('0x31')],_0x287334[_0x2ce6('0x33')]);_0x509aba['attributes']=_[_0x2ce6('0x38')](_0x287334[_0x2ce6('0x31')],qs['fields'](_0x33075c[_0x2ce6('0x33')][_0x2ce6('0x39')]));_0x509aba[_0x2ce6('0x37')]=_0x509aba[_0x2ce6('0x37')][_0x2ce6('0x3a')]?_0x509aba['attributes']:_0x287334[_0x2ce6('0x31')];if(_0x33075c[_0x2ce6('0x33')][_0x2ce6('0x48')]){_0x509aba[_0x2ce6('0x49')]=[{'all':!![]}];}_0x509aba=_[_0x2ce6('0x44')]({},_0x509aba,_0x33075c['options']);return db[_0x2ce6('0x2f')][_0x2ce6('0x4e')](_0x509aba)['then'](handleEntityNotFound(_0x25774,null))[_0x2ce6('0x2b')](respondWithResult(_0x25774,null))['catch'](handleError(_0x25774,null));};exports[_0x2ce6('0x4f')]=function(_0xa80af2,_0x4c99df){return db[_0x2ce6('0x2f')][_0x2ce6('0x4f')](_0xa80af2['body'],{})[_0x2ce6('0x2b')](respondWithResult(_0x4c99df,0xc9))[_0x2ce6('0x22')](handleError(_0x4c99df,null));};exports['update']=function(_0x28cd65,_0x45bbd4){if(_0x28cd65[_0x2ce6('0x50')]['id']){delete _0x28cd65['body']['id'];}return db['SalesforceAccount'][_0x2ce6('0x4e')]({'where':{'id':_0x28cd65['params']['id']}})['then'](handleEntityNotFound(_0x45bbd4,null))[_0x2ce6('0x2b')](saveUpdates(_0x28cd65['body'],null))[_0x2ce6('0x2b')](respondWithResult(_0x45bbd4,null))[_0x2ce6('0x22')](handleError(_0x45bbd4,null));};exports[_0x2ce6('0x2c')]=function(_0x1ae64f,_0x3768b8){return db[_0x2ce6('0x2f')][_0x2ce6('0x4e')]({'where':{'id':_0x1ae64f[_0x2ce6('0x4d')]['id']}})[_0x2ce6('0x2b')](handleEntityNotFound(_0x3768b8,null))[_0x2ce6('0x2b')](removeEntity(_0x3768b8,null))[_0x2ce6('0x22')](handleError(_0x3768b8,null));};exports[_0x2ce6('0x51')]=function(_0x9fb4ff,_0x4d4de2,_0x4dc334){var _0x8082e6={};var _0x12aa55={};var _0x425eda;var _0x21d913;return db[_0x2ce6('0x2f')]['findOne']({'where':{'id':_0x9fb4ff[_0x2ce6('0x4d')]['id']}})['then'](handleEntityNotFound(_0x4d4de2,null))['then'](function(_0x35f3e7){if(_0x35f3e7){_0x425eda=_0x35f3e7;_0x12aa55[_0x2ce6('0x31')]=_['keys'](db[_0x2ce6('0x52')][_0x2ce6('0x30')]);_0x12aa55['query']=_['keys'](_0x9fb4ff[_0x2ce6('0x33')]);_0x12aa55[_0x2ce6('0x36')]=_[_0x2ce6('0x38')](_0x12aa55[_0x2ce6('0x31')],_0x12aa55[_0x2ce6('0x33')]);_0x8082e6[_0x2ce6('0x37')]=_[_0x2ce6('0x38')](_0x12aa55['model'],qs[_0x2ce6('0x39')](_0x9fb4ff['query'][_0x2ce6('0x39')]));_0x8082e6[_0x2ce6('0x37')]=_0x8082e6[_0x2ce6('0x37')][_0x2ce6('0x3a')]?_0x8082e6[_0x2ce6('0x37')]:_0x12aa55[_0x2ce6('0x31')];_0x8082e6[_0x2ce6('0x3d')]=qs[_0x2ce6('0x3e')](_0x9fb4ff[_0x2ce6('0x33')][_0x2ce6('0x3e')]);_0x8082e6[_0x2ce6('0x42')]=qs[_0x2ce6('0x36')](_[_0x2ce6('0x3f')](_0x9fb4ff[_0x2ce6('0x33')],_0x12aa55[_0x2ce6('0x36')]));if(_0x9fb4ff[_0x2ce6('0x33')][_0x2ce6('0x43')]){_0x8082e6['where']=_[_0x2ce6('0x44')](_0x8082e6['where'],{'$or':_[_0x2ce6('0x45')](_0x8082e6[_0x2ce6('0x37')],function(_0x428379){var _0x92f5f9={};_0x92f5f9[_0x428379]={'$like':'%'+_0x9fb4ff[_0x2ce6('0x33')][_0x2ce6('0x43')]+'%'};return _0x92f5f9;})});}_0x8082e6=_['merge']({},_0x8082e6,_0x9fb4ff[_0x2ce6('0x46')]);return _0x425eda[_0x2ce6('0x51')](_0x8082e6);}})['then'](function(_0xf3037e){if(_0xf3037e){_0x21d913=_0xf3037e['length'];if(!_0x9fb4ff[_0x2ce6('0x33')][_0x2ce6('0x3b')](_0x2ce6('0x3c'))){_0x8082e6[_0x2ce6('0x28')]=qs['limit'](_0x9fb4ff[_0x2ce6('0x33')]['limit']);_0x8082e6[_0x2ce6('0x27')]=qs[_0x2ce6('0x27')](_0x9fb4ff[_0x2ce6('0x33')]['offset']);}return _0x425eda[_0x2ce6('0x51')](_0x8082e6);}})[_0x2ce6('0x2b')](function(_0x4ece3a){if(_0x4ece3a){return _0x4ece3a?{'count':_0x21d913,'rows':_0x4ece3a}:null;}})[_0x2ce6('0x2b')](respondWithResult(_0x4d4de2,null))['catch'](handleError(_0x4d4de2,null));};exports[_0x2ce6('0x53')]=function(_0x86a0a1,_0x436969,_0x12fca4){if(_0x86a0a1[_0x2ce6('0x50')]['id']){delete _0x86a0a1['body']['id'];}return db[_0x2ce6('0x2f')][_0x2ce6('0x54')]({'where':{'id':_0x86a0a1[_0x2ce6('0x4d')]['id']}})[_0x2ce6('0x2b')](handleEntityNotFound(_0x436969,null))[_0x2ce6('0x2b')](function(_0x52bcf7){if(_0x52bcf7){_0x86a0a1[_0x2ce6('0x50')][_0x2ce6('0x55')]=_0x52bcf7['id'];_0x86a0a1[_0x2ce6('0x50')]['Subjects']=integrations[_0x2ce6('0x56')](_0x86a0a1['body'][_0x2ce6('0x57')],_0x86a0a1[_0x2ce6('0x50')]['type']);_0x86a0a1[_0x2ce6('0x50')][_0x2ce6('0x58')]=integrations[_0x2ce6('0x59')](_0x86a0a1[_0x2ce6('0x50')]['channel'],_0x86a0a1[_0x2ce6('0x50')]['type']);return db['SalesforceConfiguration'][_0x2ce6('0x4f')](_0x86a0a1[_0x2ce6('0x50')],{'include':[{'model':db['SalesforceField'],'as':_0x2ce6('0x5a')},{'model':db[_0x2ce6('0x5b')],'as':'Descriptions'}]});}return null;})[_0x2ce6('0x2b')](respondWithResult(_0x436969,null))[_0x2ce6('0x22')](handleError(_0x436969,null));};exports[_0x2ce6('0x5c')]=function(_0x546229,_0x59b924,_0xc0bcce){var _0x167d87;return db[_0x2ce6('0x2f')][_0x2ce6('0x54')]({'where':{'id':_0x546229['params']['id']},'attributes':['id','remoteUri','clientId',_0x2ce6('0x5d'),_0x2ce6('0x5e'),_0x2ce6('0x5f'),_0x2ce6('0x60')]})[_0x2ce6('0x2b')](handleEntityNotFound(_0x59b924,null))[_0x2ce6('0x2b')](function(_0x40ef71){if(_0x40ef71){_0x167d87=new jsforce[(_0x2ce6('0x61'))]({'oauth2':{'loginUrl':_0x40ef71[_0x2ce6('0x62')],'clientId':_0x40ef71[_0x2ce6('0x63')],'clientSecret':_0x40ef71[_0x2ce6('0x5d')]}});return _0x167d87['login'](_0x40ef71['username'],_0x40ef71[_0x2ce6('0x5f')][_0x2ce6('0x64')](_0x40ef71['securityToken']));}})[_0x2ce6('0x2b')](function(_0x5c4dda){if(_0x5c4dda){return _0x167d87['sobject']('Task')[_0x2ce6('0x65')]();}})[_0x2ce6('0x2b')](function(_0x4c84d5){var _0x5b5700=[_0x2ce6('0x66'),_0x2ce6('0x67'),_0x2ce6('0x68'),_0x2ce6('0x69'),_0x2ce6('0x6a'),_0x2ce6('0x6b'),_0x2ce6('0x6c'),_0x2ce6('0x6d')];if(_0x4c84d5){_['remove'](_0x4c84d5['fields'],function(_0x258e92){return _0x258e92[_0x2ce6('0x6e')]===![]&&!_0x5b5700[_0x2ce6('0x6f')](_0x258e92[_0x2ce6('0x2e')]);});return{'count':_0x4c84d5[_0x2ce6('0x39')][_0x2ce6('0x3a')],'rows':_[_0x2ce6('0x45')](_0x4c84d5['fields'],function(_0x264c98){return{'id':_0x264c98[_0x2ce6('0x2e')],'name':_0x264c98[_0x2ce6('0x70')],'custom':_0x264c98['custom'],'options':_0x264c98[_0x2ce6('0x71')]?_[_0x2ce6('0x45')](_0x264c98[_0x2ce6('0x71')],function(_0x20551a){return{'name':_0x20551a[_0x2ce6('0x70')],'value':_0x20551a[_0x2ce6('0x72')]};}):[]};})};}})[_0x2ce6('0x2b')](respondWithResult(_0x59b924,null))[_0x2ce6('0x22')](function(_0x1c7203){var _0x326ce4=_0x546229[_0x2ce6('0x33')][_0x2ce6('0x73')]?0x1f4:_0x1c7203[_0x2ce6('0x74')]||0x1f4;logger[_0x2ce6('0x1f')](_0x2ce6('0x75'),_0x2ce6('0x5c'),_0x326ce4,JSON[_0x2ce6('0x1e')](_0x1c7203));delete _0x1c7203[_0x2ce6('0x2e')];if(_0x326ce4===0x191){_0x326ce4=0x190;}_0x59b924[_0x2ce6('0x25')](_0x326ce4)[_0x2ce6('0x76')](_0x546229[_0x2ce6('0x33')][_0x2ce6('0x73')]?{'message':_0x2ce6('0x77'),'statusCode':_0x1c7203[_0x2ce6('0x74')]}:_0x1c7203);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x45f1=['SalesforceAccount','int_salesforce_accounts','api','moment','request-promise','./intSalesforceAccount.attributes','../../components/integrations/configuration'];(function(_0x24d45e,_0x5a2d01){var _0x5a03d0=function(_0xc47365){while(--_0xc47365){_0x24d45e['push'](_0x24d45e['shift']());}};_0x5a03d0(++_0x5a2d01);}(_0x45f1,0x113));var _0x145f=function(_0xaca328,_0x54e796){_0xaca328=_0xaca328-0x0;var _0x3497e0=_0x45f1[_0xaca328];return _0x3497e0;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x145f('0x0'));var moment=require(_0x145f('0x1'));var BPromise=require('bluebird');var rp=require(_0x145f('0x2'));var attributes=require(_0x145f('0x3'));var integrations=require(_0x145f('0x4'));module['exports']=function(_0x114e7d,_0x419a2b){return _0x114e7d['define'](_0x145f('0x5'),attributes,{'tableName':_0x145f('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3eb1=['../../config/logger','api','moment','bluebird','request-promise','./intSalesforceAccount.attributes','../../components/integrations/configuration','define','lodash','util'];(function(_0x476f8e,_0xb03770){var _0xa4db17=function(_0x4cec9c){while(--_0x4cec9c){_0x476f8e['push'](_0x476f8e['shift']());}};_0xa4db17(++_0xb03770);}(_0x3eb1,0xb2));var _0x13eb=function(_0x1fc1f9,_0x454fb2){_0x1fc1f9=_0x1fc1f9-0x0;var _0x4987ca=_0x3eb1[_0x1fc1f9];return _0x4987ca;};'use strict';var _=require(_0x13eb('0x0'));var util=require(_0x13eb('0x1'));var logger=require(_0x13eb('0x2'))(_0x13eb('0x3'));var moment=require(_0x13eb('0x4'));var BPromise=require(_0x13eb('0x5'));var rp=require(_0x13eb('0x6'));var attributes=require(_0x13eb('0x7'));var integrations=require(_0x13eb('0x8'));module['exports']=function(_0x1dad7b,_0x341de0){return _0x1dad7b[_0x13eb('0x9')]('SalesforceAccount',attributes,{'tableName':'int_salesforce_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67e6=['error','code','message','findAll','options','raw','where','attributes','map','model','include','GetSalesforceAccount','catch','ShowSalesforceAccount','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/environment','client','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x3f4ea8,_0x50b5d9){var _0x18e653=function(_0x436bf8){while(--_0x436bf8){_0x3f4ea8['push'](_0x3f4ea8['shift']());}};_0x18e653(++_0x50b5d9);}(_0x67e6,0x163));var _0x667e=function(_0x28dc20,_0x5c2c77){_0x28dc20=_0x28dc20-0x0;var _0xc156b=_0x67e6[_0x28dc20];return _0xc156b;};'use strict';var _=require(_0x667e('0x0'));var util=require(_0x667e('0x1'));var moment=require(_0x667e('0x2'));var BPromise=require(_0x667e('0x3'));var rs=require(_0x667e('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x667e('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x667e('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x667e('0x7')][_0x667e('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x87a2db,_0x16ec1f,_0x4213ca){return new BPromise(function(_0x264a03,_0x3ddfb7){return client[_0x667e('0x9')](_0x87a2db,_0x4213ca)[_0x667e('0xa')](function(_0x5663eb){logger[_0x667e('0xb')](_0x667e('0xc'),_0x16ec1f,_0x667e('0xd'));logger[_0x667e('0xe')](_0x667e('0xf'),_0x16ec1f,'request\x20sent',JSON[_0x667e('0x10')](_0x5663eb));if(_0x5663eb[_0x667e('0x11')]){if(_0x5663eb[_0x667e('0x11')][_0x667e('0x12')]===0x1f4){logger[_0x667e('0x11')](_0x667e('0xc'),_0x16ec1f,_0x5663eb['error'][_0x667e('0x13')]);return _0x3ddfb7(_0x5663eb[_0x667e('0x11')][_0x667e('0x13')]);}logger[_0x667e('0x11')](_0x667e('0xc'),_0x16ec1f,_0x5663eb[_0x667e('0x11')][_0x667e('0x13')]);return _0x264a03(_0x5663eb[_0x667e('0x11')]['message']);}else{logger[_0x667e('0xb')]('SalesforceAccount,\x20%s,\x20%s',_0x16ec1f,_0x667e('0xd'));_0x264a03(_0x5663eb['result'][_0x667e('0x13')]);}})['catch'](function(_0x5285a9){logger[_0x667e('0x11')](_0x667e('0xc'),_0x16ec1f,_0x5285a9);_0x3ddfb7(_0x5285a9);});});}exports['GetSalesforceAccount']=function(_0x1dc2f8){var _0x373110=this;return new Promise(function(_0x460a1a,_0x1f6e5e){return db['SalesforceAccount'][_0x667e('0x14')]({'raw':_0x1dc2f8[_0x667e('0x15')]?_0x1dc2f8['options'][_0x667e('0x16')]===undefined?!![]:![]:!![],'where':_0x1dc2f8['options']?_0x1dc2f8[_0x667e('0x15')][_0x667e('0x17')]||null:null,'attributes':_0x1dc2f8[_0x667e('0x15')]?_0x1dc2f8[_0x667e('0x15')][_0x667e('0x18')]||null:null,'limit':_0x1dc2f8['options']?_0x1dc2f8[_0x667e('0x15')]['limit']||null:null,'include':_0x1dc2f8[_0x667e('0x15')]?_0x1dc2f8[_0x667e('0x15')]['include']?_[_0x667e('0x19')](_0x1dc2f8[_0x667e('0x15')]['include'],function(_0x2601d8){return{'model':db[_0x2601d8[_0x667e('0x1a')]],'as':_0x2601d8['as'],'attributes':_0x2601d8['attributes'],'include':_0x2601d8['include']?_['map'](_0x2601d8['include'],function(_0x4a498e){return{'model':db[_0x4a498e[_0x667e('0x1a')]],'as':_0x4a498e['as'],'attributes':_0x4a498e[_0x667e('0x18')],'include':_0x4a498e[_0x667e('0x1b')]?_[_0x667e('0x19')](_0x4a498e['include'],function(_0x318ce6){return{'model':db[_0x318ce6[_0x667e('0x1a')]],'as':_0x318ce6['as'],'attributes':_0x318ce6[_0x667e('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x46e3b5){logger['info']('GetSalesforceAccount',_0x1dc2f8);logger[_0x667e('0xe')](_0x667e('0x1c'),_0x1dc2f8,JSON[_0x667e('0x10')](_0x46e3b5));_0x460a1a(_0x46e3b5);})[_0x667e('0x1d')](function(_0x545d6a){logger[_0x667e('0x11')](_0x667e('0x1c'),_0x545d6a[_0x667e('0x13')],_0x1dc2f8);_0x1f6e5e(_0x373110[_0x667e('0x11')](0x1f4,_0x545d6a[_0x667e('0x13')]));});});};exports[_0x667e('0x1e')]=function(_0x2c651b){var _0x3d07ed=this;return new Promise(function(_0x363d1b,_0x4ed04b){return db['SalesforceAccount']['find']({'raw':_0x2c651b[_0x667e('0x15')]?_0x2c651b['options'][_0x667e('0x16')]===undefined?!![]:![]:!![],'where':_0x2c651b['options']?_0x2c651b[_0x667e('0x15')][_0x667e('0x17')]||null:null,'attributes':_0x2c651b[_0x667e('0x15')]?_0x2c651b[_0x667e('0x15')][_0x667e('0x18')]||null:null,'include':_0x2c651b[_0x667e('0x15')]?_0x2c651b[_0x667e('0x15')][_0x667e('0x1b')]?_[_0x667e('0x19')](_0x2c651b[_0x667e('0x15')][_0x667e('0x1b')],function(_0x5cc10d){return{'model':db[_0x5cc10d[_0x667e('0x1a')]],'as':_0x5cc10d['as'],'attributes':_0x5cc10d[_0x667e('0x18')],'include':_0x5cc10d['include']?_[_0x667e('0x19')](_0x5cc10d[_0x667e('0x1b')],function(_0x486079){return{'model':db[_0x486079[_0x667e('0x1a')]],'as':_0x486079['as'],'attributes':_0x486079[_0x667e('0x18')],'include':_0x486079[_0x667e('0x1b')]?_[_0x667e('0x19')](_0x486079[_0x667e('0x1b')],function(_0x1c2cc2){return{'model':db[_0x1c2cc2[_0x667e('0x1a')]],'as':_0x1c2cc2['as'],'attributes':_0x1c2cc2[_0x667e('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3dce45){logger['info']('ShowSalesforceAccount',_0x2c651b);logger['debug']('ShowSalesforceAccount',_0x2c651b,JSON[_0x667e('0x10')](_0x3dce45));_0x363d1b(_0x3dce45);})['catch'](function(_0x1822af){logger[_0x667e('0x11')](_0x667e('0x1e'),_0x1822af[_0x667e('0x13')],_0x2c651b);_0x4ed04b(_0x3d07ed[_0x667e('0x11')](0x1f4,_0x1822af[_0x667e('0x13')]));});});};
\ No newline at end of file
+var _0x0d63=['map','model','include','then','ShowSalesforceAccount','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetSalesforceAccount','SalesforceAccount','options','raw','where','attributes','limit'];(function(_0x4c184d,_0x4278ab){var _0x23d997=function(_0x22d068){while(--_0x22d068){_0x4c184d['push'](_0x4c184d['shift']());}};_0x23d997(++_0x4278ab);}(_0x0d63,0x99));var _0x30d6=function(_0x1f5e4a,_0x16111e){_0x1f5e4a=_0x1f5e4a-0x0;var _0x380da7=_0x0d63[_0x1f5e4a];return _0x380da7;};'use strict';var _=require(_0x30d6('0x0'));var util=require(_0x30d6('0x1'));var moment=require(_0x30d6('0x2'));var BPromise=require('bluebird');var rs=require(_0x30d6('0x3'));var fs=require('fs');var Redis=require(_0x30d6('0x4'));var db=require(_0x30d6('0x5'))['db'];var utils=require(_0x30d6('0x6'));var logger=require(_0x30d6('0x7'))(_0x30d6('0x8'));var config=require(_0x30d6('0x9'));var jayson=require(_0x30d6('0xa'));var client=jayson[_0x30d6('0xb')][_0x30d6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x50dd96,_0x415b7a,_0x58aa13){return new BPromise(function(_0x47aff4,_0x15bfd9){return client[_0x30d6('0xd')](_0x50dd96,_0x58aa13)['then'](function(_0x2ad9ba){logger[_0x30d6('0xe')](_0x30d6('0xf'),_0x415b7a,_0x30d6('0x10'));logger[_0x30d6('0x11')](_0x30d6('0x12'),_0x415b7a,_0x30d6('0x10'),JSON[_0x30d6('0x13')](_0x2ad9ba));if(_0x2ad9ba[_0x30d6('0x14')]){if(_0x2ad9ba[_0x30d6('0x14')][_0x30d6('0x15')]===0x1f4){logger[_0x30d6('0x14')](_0x30d6('0xf'),_0x415b7a,_0x2ad9ba[_0x30d6('0x14')][_0x30d6('0x16')]);return _0x15bfd9(_0x2ad9ba[_0x30d6('0x14')][_0x30d6('0x16')]);}logger[_0x30d6('0x14')](_0x30d6('0xf'),_0x415b7a,_0x2ad9ba['error'][_0x30d6('0x16')]);return _0x47aff4(_0x2ad9ba[_0x30d6('0x14')][_0x30d6('0x16')]);}else{logger[_0x30d6('0xe')]('SalesforceAccount,\x20%s,\x20%s',_0x415b7a,'request\x20sent');_0x47aff4(_0x2ad9ba[_0x30d6('0x17')]['message']);}})[_0x30d6('0x18')](function(_0x11355c){logger[_0x30d6('0x14')](_0x30d6('0xf'),_0x415b7a,_0x11355c);_0x15bfd9(_0x11355c);});});}exports[_0x30d6('0x19')]=function(_0x19e32e){var _0x10a25d=this;return new Promise(function(_0x330033,_0x77dc27){return db[_0x30d6('0x1a')]['findAll']({'raw':_0x19e32e[_0x30d6('0x1b')]?_0x19e32e['options'][_0x30d6('0x1c')]===undefined?!![]:![]:!![],'where':_0x19e32e[_0x30d6('0x1b')]?_0x19e32e[_0x30d6('0x1b')][_0x30d6('0x1d')]||null:null,'attributes':_0x19e32e[_0x30d6('0x1b')]?_0x19e32e['options'][_0x30d6('0x1e')]||null:null,'limit':_0x19e32e['options']?_0x19e32e[_0x30d6('0x1b')][_0x30d6('0x1f')]||null:null,'include':_0x19e32e['options']?_0x19e32e['options']['include']?_[_0x30d6('0x20')](_0x19e32e['options']['include'],function(_0x2c8c05){return{'model':db[_0x2c8c05[_0x30d6('0x21')]],'as':_0x2c8c05['as'],'attributes':_0x2c8c05[_0x30d6('0x1e')],'include':_0x2c8c05[_0x30d6('0x22')]?_['map'](_0x2c8c05[_0x30d6('0x22')],function(_0x37140d){return{'model':db[_0x37140d['model']],'as':_0x37140d['as'],'attributes':_0x37140d[_0x30d6('0x1e')],'include':_0x37140d[_0x30d6('0x22')]?_[_0x30d6('0x20')](_0x37140d[_0x30d6('0x22')],function(_0x3ab9f7){return{'model':db[_0x3ab9f7[_0x30d6('0x21')]],'as':_0x3ab9f7['as'],'attributes':_0x3ab9f7[_0x30d6('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x30d6('0x23')](function(_0xdc4f34){logger['info'](_0x30d6('0x19'),_0x19e32e);logger[_0x30d6('0x11')]('GetSalesforceAccount',_0x19e32e,JSON[_0x30d6('0x13')](_0xdc4f34));_0x330033(_0xdc4f34);})['catch'](function(_0x5927c5){logger[_0x30d6('0x14')](_0x30d6('0x19'),_0x5927c5[_0x30d6('0x16')],_0x19e32e);_0x77dc27(_0x10a25d[_0x30d6('0x14')](0x1f4,_0x5927c5[_0x30d6('0x16')]));});});};exports[_0x30d6('0x24')]=function(_0x178328){var _0x1e4c6d=this;return new Promise(function(_0x3dee07,_0xe56d58){return db[_0x30d6('0x1a')]['find']({'raw':_0x178328[_0x30d6('0x1b')]?_0x178328[_0x30d6('0x1b')][_0x30d6('0x1c')]===undefined?!![]:![]:!![],'where':_0x178328[_0x30d6('0x1b')]?_0x178328[_0x30d6('0x1b')][_0x30d6('0x1d')]||null:null,'attributes':_0x178328[_0x30d6('0x1b')]?_0x178328[_0x30d6('0x1b')][_0x30d6('0x1e')]||null:null,'include':_0x178328[_0x30d6('0x1b')]?_0x178328['options'][_0x30d6('0x22')]?_[_0x30d6('0x20')](_0x178328[_0x30d6('0x1b')]['include'],function(_0x356f8a){return{'model':db[_0x356f8a['model']],'as':_0x356f8a['as'],'attributes':_0x356f8a[_0x30d6('0x1e')],'include':_0x356f8a[_0x30d6('0x22')]?_[_0x30d6('0x20')](_0x356f8a['include'],function(_0x2751de){return{'model':db[_0x2751de['model']],'as':_0x2751de['as'],'attributes':_0x2751de['attributes'],'include':_0x2751de[_0x30d6('0x22')]?_[_0x30d6('0x20')](_0x2751de['include'],function(_0x392315){return{'model':db[_0x392315[_0x30d6('0x21')]],'as':_0x392315['as'],'attributes':_0x392315[_0x30d6('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x30d6('0x23')](function(_0x4e00dd){logger[_0x30d6('0xe')]('ShowSalesforceAccount',_0x178328);logger[_0x30d6('0x11')]('ShowSalesforceAccount',_0x178328,JSON['stringify'](_0x4e00dd));_0x3dee07(_0x4e00dd);})[_0x30d6('0x18')](function(_0x33ec76){logger[_0x30d6('0x14')](_0x30d6('0x24'),_0x33ec76[_0x30d6('0x16')],_0x178328);_0xe56d58(_0x1e4c6d[_0x30d6('0x14')](0x1f4,_0x33ec76['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44e6=['./intSalesforceConfiguration.controller','isAuthenticated','/:id','show','get','/:id/fields','getFields','/:id/subjects','getSubjects','post','create','put','update','destroy','exports','multer','util','connect-timeout','../../components/interaction/service','../../config/environment'];(function(_0x1c2064,_0x397101){var _0x45af73=function(_0x23879c){while(--_0x23879c){_0x1c2064['push'](_0x1c2064['shift']());}};_0x45af73(++_0x397101);}(_0x44e6,0x9b));var _0x644e=function(_0x273e16,_0x30b235){_0x273e16=_0x273e16-0x0;var _0x127cf6=_0x44e6[_0x273e16];return _0x127cf6;};'use strict';var multer=require(_0x644e('0x0'));var util=require(_0x644e('0x1'));var path=require('path');var timeout=require(_0x644e('0x2'));var express=require('express');var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x644e('0x3'));var config=require(_0x644e('0x4'));var controller=require(_0x644e('0x5'));router['get']('/',auth[_0x644e('0x6')](),controller['index']);router['get'](_0x644e('0x7'),auth[_0x644e('0x6')](),controller[_0x644e('0x8')]);router[_0x644e('0x9')](_0x644e('0xa'),auth[_0x644e('0x6')](),controller[_0x644e('0xb')]);router['get'](_0x644e('0xc'),auth[_0x644e('0x6')](),controller[_0x644e('0xd')]);router[_0x644e('0x9')]('/:id/descriptions',auth[_0x644e('0x6')](),controller['getDescriptions']);router[_0x644e('0xe')]('/',auth[_0x644e('0x6')](),controller[_0x644e('0xf')]);router[_0x644e('0x10')](_0x644e('0x7'),auth[_0x644e('0x6')](),controller[_0x644e('0x11')]);router['delete'](_0x644e('0x7'),auth[_0x644e('0x6')](),controller[_0x644e('0x12')]);module[_0x644e('0x13')]=router;
\ No newline at end of file
+var _0x1fff=['show','/:id/fields','getFields','/:id/subjects','getSubjects','getDescriptions','put','update','delete','/:id','util','connect-timeout','express','Router','../../config/environment','index','get','isAuthenticated'];(function(_0x576019,_0x2cf246){var _0x1993bb=function(_0x3430d9){while(--_0x3430d9){_0x576019['push'](_0x576019['shift']());}};_0x1993bb(++_0x2cf246);}(_0x1fff,0x14e));var _0xf1ff=function(_0x17a8ef,_0x4a4f28){_0x17a8ef=_0x17a8ef-0x0;var _0x19f48d=_0x1fff[_0x17a8ef];return _0x19f48d;};'use strict';var multer=require('multer');var util=require(_0xf1ff('0x0'));var path=require('path');var timeout=require(_0xf1ff('0x1'));var express=require(_0xf1ff('0x2'));var router=express[_0xf1ff('0x3')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xf1ff('0x4'));var controller=require('./intSalesforceConfiguration.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xf1ff('0x5')]);router[_0xf1ff('0x6')]('/:id',auth[_0xf1ff('0x7')](),controller[_0xf1ff('0x8')]);router[_0xf1ff('0x6')](_0xf1ff('0x9'),auth[_0xf1ff('0x7')](),controller[_0xf1ff('0xa')]);router[_0xf1ff('0x6')](_0xf1ff('0xb'),auth[_0xf1ff('0x7')](),controller[_0xf1ff('0xc')]);router[_0xf1ff('0x6')]('/:id/descriptions',auth[_0xf1ff('0x7')](),controller[_0xf1ff('0xd')]);router['post']('/',auth[_0xf1ff('0x7')](),controller['create']);router[_0xf1ff('0xe')]('/:id',auth[_0xf1ff('0x7')](),controller[_0xf1ff('0xf')]);router[_0xf1ff('0x10')](_0xf1ff('0x11'),auth[_0xf1ff('0x7')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fea=['STRING','ENUM','contact_lead','contact','nothing','lead','sequelize','exports'];(function(_0x3df93b,_0x567cbc){var _0x42e2ae=function(_0x168ab){while(--_0x168ab){_0x3df93b['push'](_0x3df93b['shift']());}};_0x42e2ae(++_0x567cbc);}(_0x1fea,0x19e));var _0xa1fe=function(_0x8e0c30,_0x223a8f){_0x8e0c30=_0x8e0c30-0x0;var _0x5b975d=_0x1fea[_0x8e0c30];return _0x5b975d;};'use strict';var Sequelize=require(_0xa1fe('0x0'));module[_0xa1fe('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa1fe('0x2')]},'moduleSearch':{'type':Sequelize[_0xa1fe('0x3')](_0xa1fe('0x4'),_0xa1fe('0x5'),'lead'),'defaultValue':_0xa1fe('0x4')},'moduleCreate':{'type':Sequelize[_0xa1fe('0x3')](_0xa1fe('0x6'),_0xa1fe('0x5'),_0xa1fe('0x7')),'defaultValue':_0xa1fe('0x7')}};
\ No newline at end of file
+var _0x9d40=['lead','nothing','sequelize','exports','STRING','ENUM','contact_lead','contact'];(function(_0x42afde,_0x2b8d0b){var _0x4aaeea=function(_0x4ec2fd){while(--_0x4ec2fd){_0x42afde['push'](_0x42afde['shift']());}};_0x4aaeea(++_0x2b8d0b);}(_0x9d40,0x18a));var _0x09d4=function(_0xe72a70,_0x2cac1e){_0xe72a70=_0xe72a70-0x0;var _0x4e0dde=_0x9d40[_0xe72a70];return _0x4e0dde;};'use strict';var Sequelize=require(_0x09d4('0x0'));module[_0x09d4('0x1')]={'name':{'type':Sequelize[_0x09d4('0x2')]},'description':{'type':Sequelize[_0x09d4('0x2')]},'moduleSearch':{'type':Sequelize[_0x09d4('0x3')](_0x09d4('0x4'),_0x09d4('0x5'),_0x09d4('0x6')),'defaultValue':_0x09d4('0x4')},'moduleCreate':{'type':Sequelize[_0x09d4('0x3')](_0x09d4('0x7'),_0x09d4('0x5'),_0x09d4('0x6')),'defaultValue':_0x09d4('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdda=['set','Content-Range','apply','reject','save','update','then','destroy','stack','name','SalesforceConfiguration','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','filter','merge','options','includeAll','include','findAll','params','find','create','body','getFields','findOne','SalesforceField','map','getSubjects','getDescriptions','html-pdf','eml-format','zip-dir','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','request','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','count','offset','limit'];(function(_0x496e82,_0x454607){var _0x21ba7f=function(_0x5ad395){while(--_0x5ad395){_0x496e82['push'](_0x496e82['shift']());}};_0x21ba7f(++_0x454607);}(_0xfdda,0x186));var _0xafdd=function(_0x56a936,_0x457a1b){_0x56a936=_0x56a936-0x0;var _0x5ec02b=_0xfdda[_0x56a936];return _0x5ec02b;};'use strict';var pdf=require(_0xafdd('0x0'));var emlformat=require(_0xafdd('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xafdd('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xafdd('0x3'));var Mustache=require(_0xafdd('0x4'));var util=require(_0xafdd('0x5'));var path=require('path');var sox=require(_0xafdd('0x6'));var csv=require(_0xafdd('0x7'));var ejs=require(_0xafdd('0x8'));var fs=require('fs');var _=require(_0xafdd('0x9'));var squel=require(_0xafdd('0xa'));var crypto=require('crypto');var jsforce=require(_0xafdd('0xb'));var deskjs=require(_0xafdd('0xc'));var toCsv=require(_0xafdd('0x7'));var querystring=require(_0xafdd('0xd'));var Papa=require(_0xafdd('0xe'));var qs=require(_0xafdd('0xf'));var logger=require(_0xafdd('0x10'))(_0xafdd('0x11'));var utils=require(_0xafdd('0x12'));var config=require(_0xafdd('0x13'));var db=require(_0xafdd('0x14'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xafdd('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4bcb3d,_0x485193,_0x5113b4,_0x550850){return new BPromise(function(_0x92e5f5,_0x4ffcb7){var _0x35b43f=_0x550850||client;return _0x35b43f[_0xafdd('0x16')](_0x4bcb3d,_0x5113b4)['then'](function(_0x2e4400){logger[_0xafdd('0x17')](_0xafdd('0x18'),_0x485193,_0xafdd('0x19'));logger[_0xafdd('0x1a')](_0xafdd('0x1b'),_0x485193,_0xafdd('0x19'),JSON[_0xafdd('0x1c')](_0x2e4400));if(_0x2e4400[_0xafdd('0x1d')]){if(_0x2e4400[_0xafdd('0x1d')][_0xafdd('0x1e')]===0x1f4){logger[_0xafdd('0x1d')]('SalesforceConfiguration,\x20%s,\x20%s',_0x485193,_0x2e4400[_0xafdd('0x1d')][_0xafdd('0x1f')]);return _0x4ffcb7(_0x2e4400[_0xafdd('0x1d')][_0xafdd('0x1f')]);}logger[_0xafdd('0x1d')](_0xafdd('0x18'),_0x485193,_0x2e4400[_0xafdd('0x1d')]['message']);return _0x92e5f5(_0x2e4400[_0xafdd('0x1d')]['message']);}else{logger['info'](_0xafdd('0x18'),_0x485193,'request\x20sent');_0x92e5f5(_0x2e4400[_0xafdd('0x20')][_0xafdd('0x1f')]);}})[_0xafdd('0x21')](function(_0x34f43d){logger[_0xafdd('0x1d')](_0xafdd('0x18'),_0x485193,_0x34f43d);_0x4ffcb7(_0x34f43d);});});}function respondWithStatusCode(_0x33491b,_0x5beacc){_0x5beacc=_0x5beacc||0xcc;return function(_0x3e5f99){if(_0x3e5f99){return _0x33491b[_0xafdd('0x22')](_0x5beacc);}return _0x33491b[_0xafdd('0x23')](_0x5beacc)['end']();};}function respondWithResult(_0x28267a,_0x4562ae){_0x4562ae=_0x4562ae||0xc8;return function(_0x26d7d6){if(_0x26d7d6){return _0x28267a[_0xafdd('0x23')](_0x4562ae)[_0xafdd('0x24')](_0x26d7d6);}};}function respondWithFilteredResult(_0x5c91c2,_0x449cb1){return function(_0x3e4b69){if(_0x3e4b69){var _0x5dc29b=_0x3e4b69[_0xafdd('0x25')],_0x5ce9d0=_0x449cb1[_0xafdd('0x26')],_0x25b0cd=_0x449cb1['offset']+_0x449cb1[_0xafdd('0x27')],_0x31bee9;if(_0x25b0cd>=_0x5dc29b){_0x25b0cd=_0x5dc29b;_0x31bee9=0xc8;}else{_0x31bee9=0xce;}_0x5c91c2[_0xafdd('0x23')](_0x31bee9);return _0x5c91c2[_0xafdd('0x28')](_0xafdd('0x29'),_0x5ce9d0+'-'+_0x25b0cd+'/'+_0x5dc29b)[_0xafdd('0x24')](_0x3e4b69);}return null;};}function patchUpdates(_0x483dd8){return function(_0x9a32c1){try{jsonpatch[_0xafdd('0x2a')](_0x9a32c1,_0x483dd8,!![]);}catch(_0x1946d6){return BPromise[_0xafdd('0x2b')](_0x1946d6);}return _0x9a32c1[_0xafdd('0x2c')]();};}function saveUpdates(_0x2d2b56,_0x486fcb){return function(_0x402102){if(_0x402102){return _0x402102[_0xafdd('0x2d')](_0x2d2b56)[_0xafdd('0x2e')](function(_0x56acf5){return _0x56acf5;});}return null;};}function removeEntity(_0x6d3eac,_0x5cdfca){return function(_0x2c7d24){if(_0x2c7d24){return _0x2c7d24[_0xafdd('0x2f')]()[_0xafdd('0x2e')](function(){_0x6d3eac['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x34993e,_0x4fc7de){return function(_0x14294d){if(!_0x14294d){_0x34993e[_0xafdd('0x22')](0x194);}return _0x14294d;};}function handleError(_0x4bac96,_0x1197c0){_0x1197c0=_0x1197c0||0x1f4;return function(_0x3c9df4){logger['error'](_0x3c9df4[_0xafdd('0x30')]);if(_0x3c9df4[_0xafdd('0x31')]){delete _0x3c9df4['name'];}_0x4bac96[_0xafdd('0x23')](_0x1197c0)['send'](_0x3c9df4);};}exports['index']=function(_0x45df39,_0x2599f9){var _0x3e946a={},_0x30a286={},_0x56e1fd={'count':0x0,'rows':[]};var _0x57d535=db[_0xafdd('0x32')][_0xafdd('0x33')];_0x30a286[_0xafdd('0x34')]=_['keys'](_0x57d535);var _0x28aaef={'dateStart':_0x45df39[_0xafdd('0x35')][_0xafdd('0x36')],'dateEnd':_0x45df39[_0xafdd('0x35')][_0xafdd('0x37')]};delete _0x45df39[_0xafdd('0x35')][_0xafdd('0x36')];delete _0x45df39['query']['dateEnd'];_0x30a286[_0xafdd('0x35')]=_[_0xafdd('0x38')](_0x45df39[_0xafdd('0x35')]);_0x30a286[_0xafdd('0x39')]=_[_0xafdd('0x3a')](_0x30a286['model'],_0x30a286['query']);_0x3e946a[_0xafdd('0x3b')]=_['intersection'](_0x30a286[_0xafdd('0x34')],qs['fields'](_0x45df39[_0xafdd('0x35')][_0xafdd('0x3c')]));_0x3e946a['attributes']=_0x3e946a[_0xafdd('0x3b')][_0xafdd('0x3d')]?_0x3e946a[_0xafdd('0x3b')]:_0x30a286['model'];if(!_0x45df39['query'][_0xafdd('0x3e')](_0xafdd('0x3f'))){_0x3e946a[_0xafdd('0x27')]=qs[_0xafdd('0x27')](_0x45df39[_0xafdd('0x35')][_0xafdd('0x27')]);_0x3e946a[_0xafdd('0x26')]=qs[_0xafdd('0x26')](_0x45df39[_0xafdd('0x35')][_0xafdd('0x26')]);}_0x3e946a[_0xafdd('0x40')]=qs[_0xafdd('0x41')](_0x45df39[_0xafdd('0x35')][_0xafdd('0x41')]);_0x3e946a[_0xafdd('0x42')]=qs[_0xafdd('0x39')](_[_0xafdd('0x43')](_0x45df39['query'],_0x30a286[_0xafdd('0x39')]));if(_0x28aaef[_0xafdd('0x36')]){if(_0x28aaef[_0xafdd('0x37')]){_0x28aaef[_0xafdd('0x37')]=moment(_0x28aaef[_0xafdd('0x37')])[_0xafdd('0x44')](0x1,_0xafdd('0x45'));}else{_0x28aaef[_0xafdd('0x37')]=moment(_0x28aaef[_0xafdd('0x36')])[_0xafdd('0x44')](0x1,_0xafdd('0x45'));}_['merge'](_0x3e946a[_0xafdd('0x42')],{'createdAt':{'$gte':_0x28aaef[_0xafdd('0x36')],'$lte':_0x28aaef['dateEnd']}});}if(_0x45df39[_0xafdd('0x35')][_0xafdd('0x46')]){_0x3e946a['where']=_[_0xafdd('0x47')](_0x3e946a[_0xafdd('0x42')],{'$or':_['map'](_0x3e946a[_0xafdd('0x3b')],function(_0x4bcfa0){var _0x224fb4={};_0x224fb4[_0x4bcfa0]={'$like':'%'+_0x45df39[_0xafdd('0x35')][_0xafdd('0x46')]+'%'};return _0x224fb4;})});}_0x3e946a=_[_0xafdd('0x47')]({},_0x3e946a,_0x45df39[_0xafdd('0x48')]);var _0x3dec1f={'where':_0x3e946a[_0xafdd('0x42')]};return db['SalesforceConfiguration'][_0xafdd('0x25')](_0x3dec1f)[_0xafdd('0x2e')](function(_0x24fa1f){_0x56e1fd[_0xafdd('0x25')]=_0x24fa1f;if(_0x45df39['query'][_0xafdd('0x49')]){_0x3e946a[_0xafdd('0x4a')]=[{'all':!![]}];}return db[_0xafdd('0x32')][_0xafdd('0x4b')](_0x3e946a);})[_0xafdd('0x2e')](function(_0x49e9af){_0x56e1fd['rows']=_0x49e9af;return _0x56e1fd;})[_0xafdd('0x2e')](respondWithFilteredResult(_0x2599f9,_0x3e946a))[_0xafdd('0x21')](handleError(_0x2599f9,null));};exports['show']=function(_0x36d08b,_0xd59a07){var _0x45fbd8={'raw':![],'where':{'id':_0x36d08b[_0xafdd('0x4c')]['id']}},_0x4bf4b8={};_0x4bf4b8[_0xafdd('0x34')]=_[_0xafdd('0x38')](db['SalesforceConfiguration']['rawAttributes']);_0x4bf4b8['query']=_[_0xafdd('0x38')](_0x36d08b['query']);_0x4bf4b8['filters']=_['intersection'](_0x4bf4b8[_0xafdd('0x34')],_0x4bf4b8[_0xafdd('0x35')]);_0x45fbd8[_0xafdd('0x3b')]=_[_0xafdd('0x3a')](_0x4bf4b8['model'],qs['fields'](_0x36d08b[_0xafdd('0x35')][_0xafdd('0x3c')]));_0x45fbd8['attributes']=_0x45fbd8[_0xafdd('0x3b')][_0xafdd('0x3d')]?_0x45fbd8[_0xafdd('0x3b')]:_0x4bf4b8[_0xafdd('0x34')];if(_0x36d08b[_0xafdd('0x35')]['includeAll']){_0x45fbd8[_0xafdd('0x4a')]=[{'all':!![]}];}_0x45fbd8=_[_0xafdd('0x47')]({},_0x45fbd8,_0x36d08b[_0xafdd('0x48')]);return db['SalesforceConfiguration'][_0xafdd('0x4d')](_0x45fbd8)[_0xafdd('0x2e')](handleEntityNotFound(_0xd59a07,null))[_0xafdd('0x2e')](respondWithResult(_0xd59a07,null))[_0xafdd('0x21')](handleError(_0xd59a07,null));};exports['create']=function(_0x59d075,_0x58c3e4){return db[_0xafdd('0x32')][_0xafdd('0x4e')](_0x59d075[_0xafdd('0x4f')],{})[_0xafdd('0x2e')](respondWithResult(_0x58c3e4,0xc9))['catch'](handleError(_0x58c3e4,null));};exports[_0xafdd('0x2d')]=function(_0xaba9e2,_0x1db027){if(_0xaba9e2[_0xafdd('0x4f')]['id']){delete _0xaba9e2[_0xafdd('0x4f')]['id'];}return db[_0xafdd('0x32')][_0xafdd('0x4d')]({'where':{'id':_0xaba9e2[_0xafdd('0x4c')]['id']}})[_0xafdd('0x2e')](handleEntityNotFound(_0x1db027,null))['then'](saveUpdates(_0xaba9e2[_0xafdd('0x4f')],null))[_0xafdd('0x2e')](respondWithResult(_0x1db027,null))[_0xafdd('0x21')](handleError(_0x1db027,null));};exports[_0xafdd('0x2f')]=function(_0x85743b,_0x316d35){return db[_0xafdd('0x32')]['find']({'where':{'id':_0x85743b['params']['id']}})['then'](handleEntityNotFound(_0x316d35,null))[_0xafdd('0x2e')](removeEntity(_0x316d35,null))[_0xafdd('0x21')](handleError(_0x316d35,null));};exports[_0xafdd('0x50')]=function(_0x3ed6e8,_0x21d831,_0x59503){var _0x122bae={};var _0x2285f6={};var _0xd9437e;var _0x6c9096;return db[_0xafdd('0x32')][_0xafdd('0x51')]({'where':{'id':_0x3ed6e8[_0xafdd('0x4c')]['id']}})[_0xafdd('0x2e')](handleEntityNotFound(_0x21d831,null))['then'](function(_0x55bb2b){if(_0x55bb2b){_0xd9437e=_0x55bb2b;_0x2285f6['model']=_[_0xafdd('0x38')](db[_0xafdd('0x52')][_0xafdd('0x33')]);_0x2285f6[_0xafdd('0x35')]=_[_0xafdd('0x38')](_0x3ed6e8[_0xafdd('0x35')]);_0x2285f6['filters']=_[_0xafdd('0x3a')](_0x2285f6[_0xafdd('0x34')],_0x2285f6[_0xafdd('0x35')]);_0x122bae['attributes']=_[_0xafdd('0x3a')](_0x2285f6[_0xafdd('0x34')],qs[_0xafdd('0x3c')](_0x3ed6e8[_0xafdd('0x35')][_0xafdd('0x3c')]));_0x122bae[_0xafdd('0x3b')]=_0x122bae['attributes'][_0xafdd('0x3d')]?_0x122bae[_0xafdd('0x3b')]:_0x2285f6[_0xafdd('0x34')];_0x122bae[_0xafdd('0x40')]=qs[_0xafdd('0x41')](_0x3ed6e8['query'][_0xafdd('0x41')]);_0x122bae[_0xafdd('0x42')]=qs[_0xafdd('0x39')](_[_0xafdd('0x43')](_0x3ed6e8[_0xafdd('0x35')],_0x2285f6['filters']));if(_0x3ed6e8['query'][_0xafdd('0x46')]){_0x122bae['where']=_['merge'](_0x122bae[_0xafdd('0x42')],{'$or':_[_0xafdd('0x53')](_0x122bae['attributes'],function(_0x5905cd){var _0x367f67={};_0x367f67[_0x5905cd]={'$like':'%'+_0x3ed6e8['query'][_0xafdd('0x46')]+'%'};return _0x367f67;})});}_0x122bae=_['merge']({},_0x122bae,_0x3ed6e8[_0xafdd('0x48')]);return _0xd9437e[_0xafdd('0x50')](_0x122bae);}})[_0xafdd('0x2e')](function(_0x11a46f){if(_0x11a46f){_0x6c9096=_0x11a46f[_0xafdd('0x3d')];if(!_0x3ed6e8['query'][_0xafdd('0x3e')]('nolimit')){_0x122bae[_0xafdd('0x27')]=qs[_0xafdd('0x27')](_0x3ed6e8[_0xafdd('0x35')][_0xafdd('0x27')]);_0x122bae[_0xafdd('0x26')]=qs[_0xafdd('0x26')](_0x3ed6e8[_0xafdd('0x35')][_0xafdd('0x26')]);}return _0xd9437e[_0xafdd('0x50')](_0x122bae);}})[_0xafdd('0x2e')](function(_0x4c8dc8){if(_0x4c8dc8){return _0x4c8dc8?{'count':_0x6c9096,'rows':_0x4c8dc8}:null;}})[_0xafdd('0x2e')](respondWithResult(_0x21d831,null))['catch'](handleError(_0x21d831,null));};exports[_0xafdd('0x54')]=function(_0x46a900,_0x5c79a1,_0x2243ca){var _0xe36e94={};var _0x312552={};var _0x5a231c;var _0x513a79;return db[_0xafdd('0x32')][_0xafdd('0x51')]({'where':{'id':_0x46a900['params']['id']}})['then'](handleEntityNotFound(_0x5c79a1,null))['then'](function(_0x2233ac){if(_0x2233ac){_0x5a231c=_0x2233ac;_0x312552['model']=_[_0xafdd('0x38')](db[_0xafdd('0x52')][_0xafdd('0x33')]);_0x312552[_0xafdd('0x35')]=_[_0xafdd('0x38')](_0x46a900[_0xafdd('0x35')]);_0x312552[_0xafdd('0x39')]=_['intersection'](_0x312552['model'],_0x312552[_0xafdd('0x35')]);_0xe36e94[_0xafdd('0x3b')]=_[_0xafdd('0x3a')](_0x312552[_0xafdd('0x34')],qs['fields'](_0x46a900[_0xafdd('0x35')][_0xafdd('0x3c')]));_0xe36e94[_0xafdd('0x3b')]=_0xe36e94['attributes']['length']?_0xe36e94[_0xafdd('0x3b')]:_0x312552['model'];_0xe36e94[_0xafdd('0x40')]=qs[_0xafdd('0x41')](_0x46a900[_0xafdd('0x35')][_0xafdd('0x41')]);_0xe36e94[_0xafdd('0x42')]=qs['filters'](_[_0xafdd('0x43')](_0x46a900[_0xafdd('0x35')],_0x312552[_0xafdd('0x39')]));if(_0x46a900[_0xafdd('0x35')][_0xafdd('0x46')]){_0xe36e94['where']=_['merge'](_0xe36e94[_0xafdd('0x42')],{'$or':_[_0xafdd('0x53')](_0xe36e94['attributes'],function(_0x27d6bd){var _0x12ec41={};_0x12ec41[_0x27d6bd]={'$like':'%'+_0x46a900['query']['filter']+'%'};return _0x12ec41;})});}_0xe36e94=_['merge']({},_0xe36e94,_0x46a900[_0xafdd('0x48')]);return _0x5a231c[_0xafdd('0x54')](_0xe36e94);}})['then'](function(_0x1962ba){if(_0x1962ba){_0x513a79=_0x1962ba['length'];if(!_0x46a900[_0xafdd('0x35')]['hasOwnProperty'](_0xafdd('0x3f'))){_0xe36e94['limit']=qs[_0xafdd('0x27')](_0x46a900[_0xafdd('0x35')][_0xafdd('0x27')]);_0xe36e94[_0xafdd('0x26')]=qs[_0xafdd('0x26')](_0x46a900['query'][_0xafdd('0x26')]);}return _0x5a231c[_0xafdd('0x54')](_0xe36e94);}})['then'](function(_0x36ebc5){if(_0x36ebc5){return _0x36ebc5?{'count':_0x513a79,'rows':_0x36ebc5}:null;}})['then'](respondWithResult(_0x5c79a1,null))[_0xafdd('0x21')](handleError(_0x5c79a1,null));};exports[_0xafdd('0x55')]=function(_0x1e315a,_0x2c705e,_0x1757dd){var _0x33e0ab={};var _0x4dc957={};var _0x1e2fdb;var _0x315793;return db[_0xafdd('0x32')][_0xafdd('0x51')]({'where':{'id':_0x1e315a['params']['id']}})[_0xafdd('0x2e')](handleEntityNotFound(_0x2c705e,null))[_0xafdd('0x2e')](function(_0x445cd6){if(_0x445cd6){_0x1e2fdb=_0x445cd6;_0x4dc957[_0xafdd('0x34')]=_[_0xafdd('0x38')](db['SalesforceField'][_0xafdd('0x33')]);_0x4dc957[_0xafdd('0x35')]=_['keys'](_0x1e315a[_0xafdd('0x35')]);_0x4dc957[_0xafdd('0x39')]=_['intersection'](_0x4dc957[_0xafdd('0x34')],_0x4dc957[_0xafdd('0x35')]);_0x33e0ab[_0xafdd('0x3b')]=_[_0xafdd('0x3a')](_0x4dc957[_0xafdd('0x34')],qs['fields'](_0x1e315a[_0xafdd('0x35')][_0xafdd('0x3c')]));_0x33e0ab[_0xafdd('0x3b')]=_0x33e0ab[_0xafdd('0x3b')][_0xafdd('0x3d')]?_0x33e0ab[_0xafdd('0x3b')]:_0x4dc957[_0xafdd('0x34')];_0x33e0ab['order']=qs[_0xafdd('0x41')](_0x1e315a[_0xafdd('0x35')]['sort']);_0x33e0ab[_0xafdd('0x42')]=qs[_0xafdd('0x39')](_['pick'](_0x1e315a[_0xafdd('0x35')],_0x4dc957[_0xafdd('0x39')]));if(_0x1e315a['query'][_0xafdd('0x46')]){_0x33e0ab[_0xafdd('0x42')]=_['merge'](_0x33e0ab[_0xafdd('0x42')],{'$or':_['map'](_0x33e0ab['attributes'],function(_0x6ab43f){var _0x1beab6={};_0x1beab6[_0x6ab43f]={'$like':'%'+_0x1e315a[_0xafdd('0x35')]['filter']+'%'};return _0x1beab6;})});}_0x33e0ab=_[_0xafdd('0x47')]({},_0x33e0ab,_0x1e315a[_0xafdd('0x48')]);return _0x1e2fdb[_0xafdd('0x55')](_0x33e0ab);}})['then'](function(_0x3db7e9){if(_0x3db7e9){_0x315793=_0x3db7e9[_0xafdd('0x3d')];if(!_0x1e315a['query'][_0xafdd('0x3e')]('nolimit')){_0x33e0ab['limit']=qs[_0xafdd('0x27')](_0x1e315a[_0xafdd('0x35')][_0xafdd('0x27')]);_0x33e0ab[_0xafdd('0x26')]=qs[_0xafdd('0x26')](_0x1e315a['query'][_0xafdd('0x26')]);}return _0x1e2fdb['getDescriptions'](_0x33e0ab);}})[_0xafdd('0x2e')](function(_0xa2864d){if(_0xa2864d){return _0xa2864d?{'count':_0x315793,'rows':_0xa2864d}:null;}})[_0xafdd('0x2e')](respondWithResult(_0x2c705e,null))[_0xafdd('0x21')](handleError(_0x2c705e,null));};
\ No newline at end of file
+var _0xca9e=['send','index','SalesforceConfiguration','rawAttributes','model','query','dateStart','dateEnd','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','filter','merge','map','include','findAll','rows','show','params','keys','intersection','includeAll','find','create','body','getFields','findOne','SalesforceField','options','getSubjects','getDescriptions','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','http','request','then','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','status','end','json','count','offset','limit','set','Content-Range','apply','update','destroy','sendStatus','name'];(function(_0x4fe993,_0x3c4b7b){var _0x3d5be6=function(_0x14689b){while(--_0x14689b){_0x4fe993['push'](_0x4fe993['shift']());}};_0x3d5be6(++_0x3c4b7b);}(_0xca9e,0x136));var _0xeca9=function(_0x21eabb,_0x2b83fb){_0x21eabb=_0x21eabb-0x0;var _0x5df31f=_0xca9e[_0x21eabb];return _0x5df31f;};'use strict';var pdf=require(_0xeca9('0x0'));var emlformat=require(_0xeca9('0x1'));var rimraf=require(_0xeca9('0x2'));var zipdir=require(_0xeca9('0x3'));var jsonpatch=require(_0xeca9('0x4'));var rp=require(_0xeca9('0x5'));var moment=require(_0xeca9('0x6'));var BPromise=require(_0xeca9('0x7'));var Mustache=require(_0xeca9('0x8'));var util=require(_0xeca9('0x9'));var path=require(_0xeca9('0xa'));var sox=require(_0xeca9('0xb'));var csv=require(_0xeca9('0xc'));var ejs=require(_0xeca9('0xd'));var fs=require('fs');var _=require('lodash');var squel=require(_0xeca9('0xe'));var crypto=require(_0xeca9('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xeca9('0xc'));var querystring=require(_0xeca9('0x10'));var Papa=require(_0xeca9('0x11'));var Redis=require('ioredis');var qs=require(_0xeca9('0x12'));var logger=require(_0xeca9('0x13'))(_0xeca9('0x14'));var utils=require(_0xeca9('0x15'));var config=require(_0xeca9('0x16'));var db=require(_0xeca9('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xeca9('0x18')][_0xeca9('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x4f8839,_0x27ca6f,_0x4b2ae1,_0x3c6cc7){return new BPromise(function(_0x5e7e73,_0x543958){var _0x3e9377=_0x3c6cc7||client;return _0x3e9377[_0xeca9('0x1a')](_0x4f8839,_0x4b2ae1)[_0xeca9('0x1b')](function(_0x4d65ee){logger[_0xeca9('0x1c')](_0xeca9('0x1d'),_0x27ca6f,_0xeca9('0x1e'));logger[_0xeca9('0x1f')]('SalesforceConfiguration,\x20%s,\x20%s,\x20%s',_0x27ca6f,'request\x20sent',JSON[_0xeca9('0x20')](_0x4d65ee));if(_0x4d65ee[_0xeca9('0x21')]){if(_0x4d65ee['error'][_0xeca9('0x22')]===0x1f4){logger[_0xeca9('0x21')]('SalesforceConfiguration,\x20%s,\x20%s',_0x27ca6f,_0x4d65ee['error']['message']);return _0x543958(_0x4d65ee[_0xeca9('0x21')][_0xeca9('0x23')]);}logger[_0xeca9('0x21')]('SalesforceConfiguration,\x20%s,\x20%s',_0x27ca6f,_0x4d65ee[_0xeca9('0x21')]['message']);return _0x5e7e73(_0x4d65ee['error'][_0xeca9('0x23')]);}else{logger['info'](_0xeca9('0x1d'),_0x27ca6f,_0xeca9('0x1e'));_0x5e7e73(_0x4d65ee['result'][_0xeca9('0x23')]);}})[_0xeca9('0x24')](function(_0x55cd76){logger[_0xeca9('0x21')]('SalesforceConfiguration,\x20%s,\x20%s',_0x27ca6f,_0x55cd76);_0x543958(_0x55cd76);});});}function respondWithStatusCode(_0x3a3608,_0x111f61){_0x111f61=_0x111f61||0xcc;return function(_0x1da959){if(_0x1da959){return _0x3a3608['sendStatus'](_0x111f61);}return _0x3a3608[_0xeca9('0x25')](_0x111f61)[_0xeca9('0x26')]();};}function respondWithResult(_0x515e63,_0x4593b5){_0x4593b5=_0x4593b5||0xc8;return function(_0x8b7409){if(_0x8b7409){return _0x515e63[_0xeca9('0x25')](_0x4593b5)[_0xeca9('0x27')](_0x8b7409);}};}function respondWithFilteredResult(_0x498f4a,_0x32699b){return function(_0x57e190){if(_0x57e190){var _0x278591=_0x57e190[_0xeca9('0x28')],_0x251ce4=_0x32699b[_0xeca9('0x29')],_0x1702fb=_0x32699b[_0xeca9('0x29')]+_0x32699b[_0xeca9('0x2a')],_0x3e41df;if(_0x1702fb>=_0x278591){_0x1702fb=_0x278591;_0x3e41df=0xc8;}else{_0x3e41df=0xce;}_0x498f4a[_0xeca9('0x25')](_0x3e41df);return _0x498f4a[_0xeca9('0x2b')](_0xeca9('0x2c'),_0x251ce4+'-'+_0x1702fb+'/'+_0x278591)[_0xeca9('0x27')](_0x57e190);}return null;};}function patchUpdates(_0x424f7b){return function(_0x1436d0){try{jsonpatch[_0xeca9('0x2d')](_0x1436d0,_0x424f7b,!![]);}catch(_0x4910a3){return BPromise['reject'](_0x4910a3);}return _0x1436d0['save']();};}function saveUpdates(_0x6607bd,_0x4ffb8a){return function(_0x2ca943){if(_0x2ca943){return _0x2ca943[_0xeca9('0x2e')](_0x6607bd)[_0xeca9('0x1b')](function(_0x36e75e){return _0x36e75e;});}return null;};}function removeEntity(_0x24e96e,_0x2d263a){return function(_0x50dfab){if(_0x50dfab){return _0x50dfab[_0xeca9('0x2f')]()['then'](function(){_0x24e96e[_0xeca9('0x25')](0xcc)[_0xeca9('0x26')]();});}};}function handleEntityNotFound(_0x219dd6,_0x5ee4a6){return function(_0x21357d){if(!_0x21357d){_0x219dd6[_0xeca9('0x30')](0x194);}return _0x21357d;};}function handleError(_0x20cd78,_0x3a65a6){_0x3a65a6=_0x3a65a6||0x1f4;return function(_0x4ba71c){logger[_0xeca9('0x21')](_0x4ba71c['stack']);if(_0x4ba71c[_0xeca9('0x31')]){delete _0x4ba71c[_0xeca9('0x31')];}_0x20cd78[_0xeca9('0x25')](_0x3a65a6)[_0xeca9('0x32')](_0x4ba71c);};}exports[_0xeca9('0x33')]=function(_0x3afdbd,_0x565912){var _0x41ef3c={},_0x2424df={},_0x27c88a={'count':0x0,'rows':[]};var _0xc01337=db[_0xeca9('0x34')][_0xeca9('0x35')];_0x2424df[_0xeca9('0x36')]=_['keys'](_0xc01337);var _0x3946e5={'dateStart':_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x38')],'dateEnd':_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x39')]};delete _0x3afdbd[_0xeca9('0x37')]['dateStart'];delete _0x3afdbd[_0xeca9('0x37')]['dateEnd'];_0x2424df[_0xeca9('0x37')]=_['keys'](_0x3afdbd[_0xeca9('0x37')]);_0x2424df[_0xeca9('0x3a')]=_['intersection'](_0x2424df[_0xeca9('0x36')],_0x2424df['query']);_0x41ef3c[_0xeca9('0x3b')]=_['intersection'](_0x2424df[_0xeca9('0x36')],qs['fields'](_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x3c')]));_0x41ef3c['attributes']=_0x41ef3c[_0xeca9('0x3b')][_0xeca9('0x3d')]?_0x41ef3c['attributes']:_0x2424df[_0xeca9('0x36')];if(!_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x3e')](_0xeca9('0x3f'))){_0x41ef3c[_0xeca9('0x2a')]=qs[_0xeca9('0x2a')](_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x2a')]);_0x41ef3c[_0xeca9('0x29')]=qs['offset'](_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x29')]);}_0x41ef3c[_0xeca9('0x40')]=qs[_0xeca9('0x41')](_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x41')]);_0x41ef3c[_0xeca9('0x42')]=qs['filters'](_[_0xeca9('0x43')](_0x3afdbd[_0xeca9('0x37')],_0x2424df[_0xeca9('0x3a')]));if(_0x3946e5[_0xeca9('0x38')]){if(_0x3946e5[_0xeca9('0x39')]){_0x3946e5['dateEnd']=moment(_0x3946e5[_0xeca9('0x39')])[_0xeca9('0x44')](0x1,_0xeca9('0x45'));}else{_0x3946e5[_0xeca9('0x39')]=moment(_0x3946e5['dateStart'])[_0xeca9('0x44')](0x1,_0xeca9('0x45'));}_['merge'](_0x41ef3c[_0xeca9('0x42')],{'createdAt':{'$gte':_0x3946e5[_0xeca9('0x38')],'$lte':_0x3946e5[_0xeca9('0x39')]}});}if(_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x46')]){_0x41ef3c[_0xeca9('0x42')]=_[_0xeca9('0x47')](_0x41ef3c[_0xeca9('0x42')],{'$or':_[_0xeca9('0x48')](_0x41ef3c[_0xeca9('0x3b')],function(_0x3c63f7){var _0x22599e={};_0x22599e[_0x3c63f7]={'$like':'%'+_0x3afdbd[_0xeca9('0x37')][_0xeca9('0x46')]+'%'};return _0x22599e;})});}_0x41ef3c=_[_0xeca9('0x47')]({},_0x41ef3c,_0x3afdbd['options']);var _0x2a4051={'where':_0x41ef3c[_0xeca9('0x42')]};return db[_0xeca9('0x34')][_0xeca9('0x28')](_0x2a4051)['then'](function(_0x1bbf8c){_0x27c88a[_0xeca9('0x28')]=_0x1bbf8c;if(_0x3afdbd['query']['includeAll']){_0x41ef3c[_0xeca9('0x49')]=[{'all':!![]}];}return db[_0xeca9('0x34')][_0xeca9('0x4a')](_0x41ef3c);})[_0xeca9('0x1b')](function(_0x571e48){_0x27c88a[_0xeca9('0x4b')]=_0x571e48;return _0x27c88a;})[_0xeca9('0x1b')](respondWithFilteredResult(_0x565912,_0x41ef3c))[_0xeca9('0x24')](handleError(_0x565912,null));};exports[_0xeca9('0x4c')]=function(_0x2b024b,_0x331a18){var _0x384be1={'raw':![],'where':{'id':_0x2b024b[_0xeca9('0x4d')]['id']}},_0x44d4b7={};_0x44d4b7['model']=_['keys'](db[_0xeca9('0x34')][_0xeca9('0x35')]);_0x44d4b7['query']=_[_0xeca9('0x4e')](_0x2b024b[_0xeca9('0x37')]);_0x44d4b7[_0xeca9('0x3a')]=_[_0xeca9('0x4f')](_0x44d4b7[_0xeca9('0x36')],_0x44d4b7[_0xeca9('0x37')]);_0x384be1[_0xeca9('0x3b')]=_[_0xeca9('0x4f')](_0x44d4b7[_0xeca9('0x36')],qs['fields'](_0x2b024b['query']['fields']));_0x384be1['attributes']=_0x384be1[_0xeca9('0x3b')]['length']?_0x384be1[_0xeca9('0x3b')]:_0x44d4b7[_0xeca9('0x36')];if(_0x2b024b['query'][_0xeca9('0x50')]){_0x384be1[_0xeca9('0x49')]=[{'all':!![]}];}_0x384be1=_[_0xeca9('0x47')]({},_0x384be1,_0x2b024b['options']);return db['SalesforceConfiguration'][_0xeca9('0x51')](_0x384be1)[_0xeca9('0x1b')](handleEntityNotFound(_0x331a18,null))[_0xeca9('0x1b')](respondWithResult(_0x331a18,null))[_0xeca9('0x24')](handleError(_0x331a18,null));};exports['create']=function(_0x282925,_0x2c5cb4){return db[_0xeca9('0x34')][_0xeca9('0x52')](_0x282925[_0xeca9('0x53')],{})[_0xeca9('0x1b')](respondWithResult(_0x2c5cb4,0xc9))[_0xeca9('0x24')](handleError(_0x2c5cb4,null));};exports[_0xeca9('0x2e')]=function(_0x2000d0,_0x10a5a0){if(_0x2000d0[_0xeca9('0x53')]['id']){delete _0x2000d0[_0xeca9('0x53')]['id'];}return db[_0xeca9('0x34')][_0xeca9('0x51')]({'where':{'id':_0x2000d0[_0xeca9('0x4d')]['id']}})[_0xeca9('0x1b')](handleEntityNotFound(_0x10a5a0,null))['then'](saveUpdates(_0x2000d0[_0xeca9('0x53')],null))[_0xeca9('0x1b')](respondWithResult(_0x10a5a0,null))[_0xeca9('0x24')](handleError(_0x10a5a0,null));};exports[_0xeca9('0x2f')]=function(_0x5bece2,_0x27cd12){return db[_0xeca9('0x34')]['find']({'where':{'id':_0x5bece2[_0xeca9('0x4d')]['id']}})[_0xeca9('0x1b')](handleEntityNotFound(_0x27cd12,null))[_0xeca9('0x1b')](removeEntity(_0x27cd12,null))[_0xeca9('0x24')](handleError(_0x27cd12,null));};exports[_0xeca9('0x54')]=function(_0x520aa0,_0x20161f,_0x132e47){var _0x5b8222={};var _0x253862={};var _0x23353c;var _0x11d162;return db[_0xeca9('0x34')][_0xeca9('0x55')]({'where':{'id':_0x520aa0[_0xeca9('0x4d')]['id']}})[_0xeca9('0x1b')](handleEntityNotFound(_0x20161f,null))[_0xeca9('0x1b')](function(_0x51bdab){if(_0x51bdab){_0x23353c=_0x51bdab;_0x253862['model']=_['keys'](db[_0xeca9('0x56')][_0xeca9('0x35')]);_0x253862[_0xeca9('0x37')]=_['keys'](_0x520aa0[_0xeca9('0x37')]);_0x253862[_0xeca9('0x3a')]=_[_0xeca9('0x4f')](_0x253862[_0xeca9('0x36')],_0x253862[_0xeca9('0x37')]);_0x5b8222[_0xeca9('0x3b')]=_[_0xeca9('0x4f')](_0x253862['model'],qs['fields'](_0x520aa0['query'][_0xeca9('0x3c')]));_0x5b8222[_0xeca9('0x3b')]=_0x5b8222['attributes'][_0xeca9('0x3d')]?_0x5b8222['attributes']:_0x253862[_0xeca9('0x36')];_0x5b8222[_0xeca9('0x40')]=qs[_0xeca9('0x41')](_0x520aa0[_0xeca9('0x37')][_0xeca9('0x41')]);_0x5b8222['where']=qs[_0xeca9('0x3a')](_[_0xeca9('0x43')](_0x520aa0[_0xeca9('0x37')],_0x253862[_0xeca9('0x3a')]));if(_0x520aa0[_0xeca9('0x37')][_0xeca9('0x46')]){_0x5b8222[_0xeca9('0x42')]=_[_0xeca9('0x47')](_0x5b8222['where'],{'$or':_[_0xeca9('0x48')](_0x5b8222['attributes'],function(_0x232e34){var _0x252dbf={};_0x252dbf[_0x232e34]={'$like':'%'+_0x520aa0[_0xeca9('0x37')][_0xeca9('0x46')]+'%'};return _0x252dbf;})});}_0x5b8222=_[_0xeca9('0x47')]({},_0x5b8222,_0x520aa0[_0xeca9('0x57')]);return _0x23353c['getFields'](_0x5b8222);}})[_0xeca9('0x1b')](function(_0x12121c){if(_0x12121c){_0x11d162=_0x12121c[_0xeca9('0x3d')];if(!_0x520aa0['query'][_0xeca9('0x3e')](_0xeca9('0x3f'))){_0x5b8222[_0xeca9('0x2a')]=qs[_0xeca9('0x2a')](_0x520aa0[_0xeca9('0x37')][_0xeca9('0x2a')]);_0x5b8222[_0xeca9('0x29')]=qs[_0xeca9('0x29')](_0x520aa0['query'][_0xeca9('0x29')]);}return _0x23353c[_0xeca9('0x54')](_0x5b8222);}})[_0xeca9('0x1b')](function(_0x2cf5bc){if(_0x2cf5bc){return _0x2cf5bc?{'count':_0x11d162,'rows':_0x2cf5bc}:null;}})[_0xeca9('0x1b')](respondWithResult(_0x20161f,null))['catch'](handleError(_0x20161f,null));};exports['getSubjects']=function(_0x19a04b,_0x9f078b,_0xf47e4a){var _0x46d0f1={};var _0x5b0b1a={};var _0x24e4c3;var _0x1c7cca;return db[_0xeca9('0x34')][_0xeca9('0x55')]({'where':{'id':_0x19a04b[_0xeca9('0x4d')]['id']}})[_0xeca9('0x1b')](handleEntityNotFound(_0x9f078b,null))[_0xeca9('0x1b')](function(_0x3135a7){if(_0x3135a7){_0x24e4c3=_0x3135a7;_0x5b0b1a[_0xeca9('0x36')]=_[_0xeca9('0x4e')](db['SalesforceField'][_0xeca9('0x35')]);_0x5b0b1a[_0xeca9('0x37')]=_[_0xeca9('0x4e')](_0x19a04b['query']);_0x5b0b1a['filters']=_['intersection'](_0x5b0b1a[_0xeca9('0x36')],_0x5b0b1a[_0xeca9('0x37')]);_0x46d0f1['attributes']=_[_0xeca9('0x4f')](_0x5b0b1a[_0xeca9('0x36')],qs[_0xeca9('0x3c')](_0x19a04b[_0xeca9('0x37')]['fields']));_0x46d0f1[_0xeca9('0x3b')]=_0x46d0f1[_0xeca9('0x3b')]['length']?_0x46d0f1['attributes']:_0x5b0b1a['model'];_0x46d0f1[_0xeca9('0x40')]=qs[_0xeca9('0x41')](_0x19a04b[_0xeca9('0x37')]['sort']);_0x46d0f1[_0xeca9('0x42')]=qs['filters'](_[_0xeca9('0x43')](_0x19a04b[_0xeca9('0x37')],_0x5b0b1a[_0xeca9('0x3a')]));if(_0x19a04b[_0xeca9('0x37')][_0xeca9('0x46')]){_0x46d0f1['where']=_[_0xeca9('0x47')](_0x46d0f1['where'],{'$or':_[_0xeca9('0x48')](_0x46d0f1['attributes'],function(_0x5605b3){var _0x5bb011={};_0x5bb011[_0x5605b3]={'$like':'%'+_0x19a04b[_0xeca9('0x37')]['filter']+'%'};return _0x5bb011;})});}_0x46d0f1=_[_0xeca9('0x47')]({},_0x46d0f1,_0x19a04b[_0xeca9('0x57')]);return _0x24e4c3[_0xeca9('0x58')](_0x46d0f1);}})[_0xeca9('0x1b')](function(_0x31de1f){if(_0x31de1f){_0x1c7cca=_0x31de1f[_0xeca9('0x3d')];if(!_0x19a04b['query'][_0xeca9('0x3e')](_0xeca9('0x3f'))){_0x46d0f1[_0xeca9('0x2a')]=qs[_0xeca9('0x2a')](_0x19a04b[_0xeca9('0x37')][_0xeca9('0x2a')]);_0x46d0f1[_0xeca9('0x29')]=qs[_0xeca9('0x29')](_0x19a04b['query'][_0xeca9('0x29')]);}return _0x24e4c3[_0xeca9('0x58')](_0x46d0f1);}})[_0xeca9('0x1b')](function(_0x18727a){if(_0x18727a){return _0x18727a?{'count':_0x1c7cca,'rows':_0x18727a}:null;}})[_0xeca9('0x1b')](respondWithResult(_0x9f078b,null))['catch'](handleError(_0x9f078b,null));};exports[_0xeca9('0x59')]=function(_0x3ecd61,_0x1ad010,_0x11b049){var _0x2406ec={};var _0x5573b7={};var _0x4ad1ef;var _0xed2eb9;return db[_0xeca9('0x34')][_0xeca9('0x55')]({'where':{'id':_0x3ecd61[_0xeca9('0x4d')]['id']}})[_0xeca9('0x1b')](handleEntityNotFound(_0x1ad010,null))[_0xeca9('0x1b')](function(_0x58a7d4){if(_0x58a7d4){_0x4ad1ef=_0x58a7d4;_0x5573b7[_0xeca9('0x36')]=_[_0xeca9('0x4e')](db[_0xeca9('0x56')][_0xeca9('0x35')]);_0x5573b7[_0xeca9('0x37')]=_[_0xeca9('0x4e')](_0x3ecd61[_0xeca9('0x37')]);_0x5573b7[_0xeca9('0x3a')]=_[_0xeca9('0x4f')](_0x5573b7[_0xeca9('0x36')],_0x5573b7['query']);_0x2406ec[_0xeca9('0x3b')]=_[_0xeca9('0x4f')](_0x5573b7[_0xeca9('0x36')],qs[_0xeca9('0x3c')](_0x3ecd61['query']['fields']));_0x2406ec['attributes']=_0x2406ec[_0xeca9('0x3b')][_0xeca9('0x3d')]?_0x2406ec[_0xeca9('0x3b')]:_0x5573b7[_0xeca9('0x36')];_0x2406ec[_0xeca9('0x40')]=qs[_0xeca9('0x41')](_0x3ecd61[_0xeca9('0x37')]['sort']);_0x2406ec[_0xeca9('0x42')]=qs[_0xeca9('0x3a')](_['pick'](_0x3ecd61[_0xeca9('0x37')],_0x5573b7[_0xeca9('0x3a')]));if(_0x3ecd61[_0xeca9('0x37')][_0xeca9('0x46')]){_0x2406ec['where']=_[_0xeca9('0x47')](_0x2406ec[_0xeca9('0x42')],{'$or':_[_0xeca9('0x48')](_0x2406ec[_0xeca9('0x3b')],function(_0x4832da){var _0x120ccc={};_0x120ccc[_0x4832da]={'$like':'%'+_0x3ecd61[_0xeca9('0x37')][_0xeca9('0x46')]+'%'};return _0x120ccc;})});}_0x2406ec=_[_0xeca9('0x47')]({},_0x2406ec,_0x3ecd61[_0xeca9('0x57')]);return _0x4ad1ef['getDescriptions'](_0x2406ec);}})[_0xeca9('0x1b')](function(_0x3b7958){if(_0x3b7958){_0xed2eb9=_0x3b7958['length'];if(!_0x3ecd61['query'][_0xeca9('0x3e')]('nolimit')){_0x2406ec[_0xeca9('0x2a')]=qs[_0xeca9('0x2a')](_0x3ecd61[_0xeca9('0x37')][_0xeca9('0x2a')]);_0x2406ec[_0xeca9('0x29')]=qs['offset'](_0x3ecd61[_0xeca9('0x37')][_0xeca9('0x29')]);}return _0x4ad1ef[_0xeca9('0x59')](_0x2406ec);}})['then'](function(_0x35970b){if(_0x35970b){return _0x35970b?{'count':_0xed2eb9,'rows':_0x35970b}:null;}})[_0xeca9('0x1b')](respondWithResult(_0x1ad010,null))[_0xeca9('0x24')](handleError(_0x1ad010,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6826=['lodash','../../config/logger','api','moment','bluebird','request-promise','./intSalesforceConfiguration.attributes','define','SalesforceConfiguration'];(function(_0x4ed2c1,_0x8c9475){var _0x397295=function(_0x120012){while(--_0x120012){_0x4ed2c1['push'](_0x4ed2c1['shift']());}};_0x397295(++_0x8c9475);}(_0x6826,0x75));var _0x6682=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x6826[_0x3ab51d];return _0x29a04e;};'use strict';var _=require(_0x6682('0x0'));var util=require('util');var logger=require(_0x6682('0x1'))(_0x6682('0x2'));var moment=require(_0x6682('0x3'));var BPromise=require(_0x6682('0x4'));var rp=require(_0x6682('0x5'));var attributes=require(_0x6682('0x6'));module['exports']=function(_0x5adb0b,_0x2e31da){return _0x5adb0b[_0x6682('0x7')](_0x6682('0x8'),attributes,{'tableName':'int_salesforce_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3c8e=['int_salesforce_configurations','lodash','util','moment','bluebird','request-promise','exports','define'];(function(_0x58a4ac,_0x43fd42){var _0x545810=function(_0x308e65){while(--_0x308e65){_0x58a4ac['push'](_0x58a4ac['shift']());}};_0x545810(++_0x43fd42);}(_0x3c8e,0x89));var _0xe3c8=function(_0x2c9409,_0x3160a3){_0x2c9409=_0x2c9409-0x0;var _0x522a33=_0x3c8e[_0x2c9409];return _0x522a33;};'use strict';var _=require(_0xe3c8('0x0'));var util=require(_0xe3c8('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xe3c8('0x2'));var BPromise=require(_0xe3c8('0x3'));var rp=require(_0xe3c8('0x4'));var attributes=require('./intSalesforceConfiguration.attributes');module[_0xe3c8('0x5')]=function(_0x21efc9,_0xbd43ef){return _0x21efc9[_0xe3c8('0x6')]('SalesforceConfiguration',attributes,{'tableName':_0xe3c8('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c22=['../../config/logger','../../config/environment','client','request','info','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','SalesforceConfiguration,\x20%s,\x20%s','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils'];(function(_0x14d3c5,_0x410efb){var _0x585334=function(_0x48c30f){while(--_0x48c30f){_0x14d3c5['push'](_0x14d3c5['shift']());}};_0x585334(++_0x410efb);}(_0x6c22,0x19e));var _0x26c2=function(_0x33c8cb,_0x56cff2){_0x33c8cb=_0x33c8cb-0x0;var _0x2d28bb=_0x6c22[_0x33c8cb];return _0x2d28bb;};'use strict';var _=require(_0x26c2('0x0'));var util=require(_0x26c2('0x1'));var moment=require(_0x26c2('0x2'));var BPromise=require('bluebird');var rs=require(_0x26c2('0x3'));var fs=require('fs');var db=require(_0x26c2('0x4'))['db'];var utils=require(_0x26c2('0x5'));var logger=require(_0x26c2('0x6'))('rpc');var config=require(_0x26c2('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x26c2('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x11e641,_0x1ca78a,_0x10c95b){return new BPromise(function(_0x40ac34,_0x35cda1){return client[_0x26c2('0x9')](_0x11e641,_0x10c95b)['then'](function(_0x4ef212){logger[_0x26c2('0xa')]('SalesforceConfiguration,\x20%s,\x20%s',_0x1ca78a,_0x26c2('0xb'));logger[_0x26c2('0xc')](_0x26c2('0xd'),_0x1ca78a,_0x26c2('0xb'),JSON[_0x26c2('0xe')](_0x4ef212));if(_0x4ef212[_0x26c2('0xf')]){if(_0x4ef212[_0x26c2('0xf')]['code']===0x1f4){logger['error']('SalesforceConfiguration,\x20%s,\x20%s',_0x1ca78a,_0x4ef212[_0x26c2('0xf')][_0x26c2('0x10')]);return _0x35cda1(_0x4ef212[_0x26c2('0xf')]['message']);}logger[_0x26c2('0xf')](_0x26c2('0x11'),_0x1ca78a,_0x4ef212[_0x26c2('0xf')]['message']);return _0x40ac34(_0x4ef212[_0x26c2('0xf')][_0x26c2('0x10')]);}else{logger[_0x26c2('0xa')](_0x26c2('0x11'),_0x1ca78a,_0x26c2('0xb'));_0x40ac34(_0x4ef212[_0x26c2('0x12')]['message']);}})[_0x26c2('0x13')](function(_0xe61552){logger[_0x26c2('0xf')](_0x26c2('0x11'),_0x1ca78a,_0xe61552);_0x35cda1(_0xe61552);});});}
\ No newline at end of file
+var _0x814b=['info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then'];(function(_0x45e98e,_0x169b60){var _0x374dba=function(_0x597612){while(--_0x597612){_0x45e98e['push'](_0x45e98e['shift']());}};_0x374dba(++_0x169b60);}(_0x814b,0x1a2));var _0xb814=function(_0x2353fe,_0x4b0bca){_0x2353fe=_0x2353fe-0x0;var _0x4d43f6=_0x814b[_0x2353fe];return _0x4d43f6;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var moment=require(_0xb814('0x2'));var BPromise=require(_0xb814('0x3'));var rs=require(_0xb814('0x4'));var fs=require('fs');var Redis=require(_0xb814('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xb814('0x6'));var logger=require(_0xb814('0x7'))(_0xb814('0x8'));var config=require(_0xb814('0x9'));var jayson=require(_0xb814('0xa'));var client=jayson[_0xb814('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b0829,_0x2e6272,_0x5c8539){return new BPromise(function(_0x271af9,_0x2913a6){return client[_0xb814('0xc')](_0x3b0829,_0x5c8539)[_0xb814('0xd')](function(_0x1fea33){logger[_0xb814('0xe')](_0xb814('0xf'),_0x2e6272,_0xb814('0x10'));logger[_0xb814('0x11')](_0xb814('0x12'),_0x2e6272,_0xb814('0x10'),JSON['stringify'](_0x1fea33));if(_0x1fea33[_0xb814('0x13')]){if(_0x1fea33['error'][_0xb814('0x14')]===0x1f4){logger[_0xb814('0x13')](_0xb814('0xf'),_0x2e6272,_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);return _0x2913a6(_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);}logger[_0xb814('0x13')](_0xb814('0xf'),_0x2e6272,_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);return _0x271af9(_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);}else{logger[_0xb814('0xe')](_0xb814('0xf'),_0x2e6272,_0xb814('0x10'));_0x271af9(_0x1fea33[_0xb814('0x16')][_0xb814('0x15')]);}})[_0xb814('0x17')](function(_0x21b73f){logger[_0xb814('0x13')]('SalesforceConfiguration,\x20%s,\x20%s',_0x2e6272,_0x21b73f);_0x2913a6(_0x21b73f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9403=['update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','get','isAuthenticated','index','create','/:id'];(function(_0x5db2f8,_0x3345a9){var _0x9b2a77=function(_0x4e8b34){while(--_0x4e8b34){_0x5db2f8['push'](_0x5db2f8['shift']());}};_0x9b2a77(++_0x3345a9);}(_0x9403,0x112));var _0x3940=function(_0x24753d,_0x2b3244){_0x24753d=_0x24753d-0x0;var _0x724a62=_0x9403[_0x24753d];return _0x724a62;};'use strict';var multer=require(_0x3940('0x0'));var util=require(_0x3940('0x1'));var path=require(_0x3940('0x2'));var timeout=require(_0x3940('0x3'));var express=require('express');var router=express[_0x3940('0x4')]();var auth=require(_0x3940('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./intSalesforceField.controller');router[_0x3940('0x6')]('/',auth[_0x3940('0x7')](),controller[_0x3940('0x8')]);router[_0x3940('0x6')]('/:id',auth['isAuthenticated'](),controller['show']);router['post']('/',auth[_0x3940('0x7')](),controller[_0x3940('0x9')]);router['put'](_0x3940('0xa'),auth[_0x3940('0x7')](),controller[_0x3940('0xb')]);router[_0x3940('0xc')](_0x3940('0xa'),auth['isAuthenticated'](),controller[_0x3940('0xd')]);module[_0x3940('0xe')]=router;
\ No newline at end of file
+var _0x5fa4=['show','post','create','put','delete','destroy','exports','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id'];(function(_0x1dff5d,_0x3552ed){var _0xbb6a0c=function(_0x3f4108){while(--_0x3f4108){_0x1dff5d['push'](_0x1dff5d['shift']());}};_0xbb6a0c(++_0x3552ed);}(_0x5fa4,0x1c1));var _0x45fa=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x5fa4[_0x2f5ac5];return _0x37c9a8;};'use strict';var multer=require('multer');var util=require(_0x45fa('0x0'));var path=require(_0x45fa('0x1'));var timeout=require('connect-timeout');var express=require(_0x45fa('0x2'));var router=express[_0x45fa('0x3')]();var auth=require(_0x45fa('0x4'));var interaction=require(_0x45fa('0x5'));var config=require(_0x45fa('0x6'));var controller=require('./intSalesforceField.controller');router[_0x45fa('0x7')]('/',auth[_0x45fa('0x8')](),controller['index']);router[_0x45fa('0x7')](_0x45fa('0x9'),auth[_0x45fa('0x8')](),controller[_0x45fa('0xa')]);router[_0x45fa('0xb')]('/',auth['isAuthenticated'](),controller[_0x45fa('0xc')]);router[_0x45fa('0xd')](_0x45fa('0x9'),auth[_0x45fa('0x8')](),controller['update']);router[_0x45fa('0xe')](_0x45fa('0x9'),auth['isAuthenticated'](),controller[_0x45fa('0xf')]);module[_0x45fa('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ef5=['string','variable','customVariable','keyValue','STRING','sequelize','exports','ENUM'];(function(_0x3edff0,_0x57cd53){var _0x3c35dd=function(_0x4c0c4a){while(--_0x4c0c4a){_0x3edff0['push'](_0x3edff0['shift']());}};_0x3c35dd(++_0x57cd53);}(_0x7ef5,0x1ed));var _0x57ef=function(_0x3260f0,_0x4e71cf){_0x3260f0=_0x3260f0-0x0;var _0x282108=_0x7ef5[_0x3260f0];return _0x282108;};'use strict';var Sequelize=require(_0x57ef('0x0'));module[_0x57ef('0x1')]={'type':{'type':Sequelize[_0x57ef('0x2')](_0x57ef('0x3'),_0x57ef('0x4'),_0x57ef('0x5'),_0x57ef('0x6')),'defaultValue':_0x57ef('0x3')},'content':{'type':Sequelize[_0x57ef('0x7')]},'key':{'type':Sequelize[_0x57ef('0x7')]},'keyType':{'type':Sequelize[_0x57ef('0x2')]('string',_0x57ef('0x4'),_0x57ef('0x5'))},'keyContent':{'type':Sequelize[_0x57ef('0x7')]},'idField':{'type':Sequelize[_0x57ef('0x7')]},'variableName':{'type':Sequelize[_0x57ef('0x7')]}};
\ No newline at end of file
+var _0x79bb=['customVariable','keyValue','STRING','ENUM','exports','string','variable'];(function(_0x33554b,_0x48162b){var _0x256954=function(_0x185f66){while(--_0x185f66){_0x33554b['push'](_0x33554b['shift']());}};_0x256954(++_0x48162b);}(_0x79bb,0x1bd));var _0xb79b=function(_0x1bfe55,_0x5890d0){_0x1bfe55=_0x1bfe55-0x0;var _0x203a4d=_0x79bb[_0x1bfe55];return _0x203a4d;};'use strict';var Sequelize=require('sequelize');module[_0xb79b('0x0')]={'type':{'type':Sequelize['ENUM'](_0xb79b('0x1'),_0xb79b('0x2'),_0xb79b('0x3'),_0xb79b('0x4')),'defaultValue':_0xb79b('0x1')},'content':{'type':Sequelize[_0xb79b('0x5')]},'key':{'type':Sequelize[_0xb79b('0x5')]},'keyType':{'type':Sequelize[_0xb79b('0x6')]('string',_0xb79b('0x2'),_0xb79b('0x3'))},'keyContent':{'type':Sequelize[_0xb79b('0x5')]},'idField':{'type':Sequelize[_0xb79b('0x5')]},'variableName':{'type':Sequelize[_0xb79b('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8705=['crypto','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','Content-Range','save','update','then','end','stack','name','index','SalesforceField','rawAttributes','keys','dateStart','query','dateEnd','filters','intersection','model','attributes','fields','nolimit','order','sort','pick','day','add','filter','where','merge','map','options','include','findAll','rows','catch','show','params','length','create','body','destroy','find','eml-format','rimraf','zip-dir','request-promise','moment','mustache','sox','ejs','lodash','squel'];(function(_0x1da04e,_0x31024b){var _0xdd8c41=function(_0x2036f9){while(--_0x2036f9){_0x1da04e['push'](_0x1da04e['shift']());}};_0xdd8c41(++_0x31024b);}(_0x8705,0x7c));var _0x5870=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x8705[_0xfae23b];return _0x200640;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5870('0x0'));var rimraf=require(_0x5870('0x1'));var zipdir=require(_0x5870('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5870('0x3'));var moment=require(_0x5870('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5870('0x5'));var util=require('util');var path=require('path');var sox=require(_0x5870('0x6'));var csv=require('to-csv');var ejs=require(_0x5870('0x7'));var fs=require('fs');var _=require(_0x5870('0x8'));var squel=require(_0x5870('0x9'));var crypto=require(_0x5870('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x5870('0xb'));var querystring=require(_0x5870('0xc'));var Papa=require(_0x5870('0xd'));var qs=require(_0x5870('0xe'));var logger=require(_0x5870('0xf'))(_0x5870('0x10'));var utils=require(_0x5870('0x11'));var config=require(_0x5870('0x12'));var db=require(_0x5870('0x13'))['db'];function respondWithStatusCode(_0x2b8f1c,_0x464b60){_0x464b60=_0x464b60||0xcc;return function(_0x33ee92){if(_0x33ee92){return _0x2b8f1c[_0x5870('0x14')](_0x464b60);}return _0x2b8f1c[_0x5870('0x15')](_0x464b60)['end']();};}function respondWithResult(_0x277a3f,_0x532710){_0x532710=_0x532710||0xc8;return function(_0x211d8f){if(_0x211d8f){return _0x277a3f[_0x5870('0x15')](_0x532710)[_0x5870('0x16')](_0x211d8f);}};}function respondWithFilteredResult(_0xc1d998,_0x22236a){return function(_0x1ea798){if(_0x1ea798){var _0x479e6a=_0x1ea798[_0x5870('0x17')],_0x1cf18d=_0x22236a[_0x5870('0x18')],_0x46e0d1=_0x22236a[_0x5870('0x18')]+_0x22236a[_0x5870('0x19')],_0x499e31;if(_0x46e0d1>=_0x479e6a){_0x46e0d1=_0x479e6a;_0x499e31=0xc8;}else{_0x499e31=0xce;}_0xc1d998['status'](_0x499e31);return _0xc1d998['set'](_0x5870('0x1a'),_0x1cf18d+'-'+_0x46e0d1+'/'+_0x479e6a)[_0x5870('0x16')](_0x1ea798);}return null;};}function patchUpdates(_0x5a28ea){return function(_0x4ba6ad){try{jsonpatch['apply'](_0x4ba6ad,_0x5a28ea,!![]);}catch(_0x31cdc7){return BPromise['reject'](_0x31cdc7);}return _0x4ba6ad[_0x5870('0x1b')]();};}function saveUpdates(_0x59dd15,_0x31e858){return function(_0x2adf95){if(_0x2adf95){return _0x2adf95[_0x5870('0x1c')](_0x59dd15)[_0x5870('0x1d')](function(_0x5c6100){return _0x5c6100;});}return null;};}function removeEntity(_0xd27163,_0x23de3e){return function(_0x40c288){if(_0x40c288){return _0x40c288['destroy']()[_0x5870('0x1d')](function(){_0xd27163['status'](0xcc)[_0x5870('0x1e')]();});}};}function handleEntityNotFound(_0x4904fb,_0x1ddec2){return function(_0x140acb){if(!_0x140acb){_0x4904fb[_0x5870('0x14')](0x194);}return _0x140acb;};}function handleError(_0x562160,_0x54b5f0){_0x54b5f0=_0x54b5f0||0x1f4;return function(_0x1b937b){logger['error'](_0x1b937b[_0x5870('0x1f')]);if(_0x1b937b[_0x5870('0x20')]){delete _0x1b937b['name'];}_0x562160[_0x5870('0x15')](_0x54b5f0)['send'](_0x1b937b);};}exports[_0x5870('0x21')]=function(_0x399df0,_0x41d5c7){var _0x54e84c={},_0x3df102={},_0x7f6e0a={'count':0x0,'rows':[]};var _0x4653=db[_0x5870('0x22')][_0x5870('0x23')];_0x3df102['model']=_[_0x5870('0x24')](_0x4653);var _0xef8590={'dateStart':_0x399df0['query'][_0x5870('0x25')],'dateEnd':_0x399df0[_0x5870('0x26')][_0x5870('0x27')]};delete _0x399df0[_0x5870('0x26')][_0x5870('0x25')];delete _0x399df0[_0x5870('0x26')][_0x5870('0x27')];_0x3df102[_0x5870('0x26')]=_[_0x5870('0x24')](_0x399df0[_0x5870('0x26')]);_0x3df102[_0x5870('0x28')]=_[_0x5870('0x29')](_0x3df102[_0x5870('0x2a')],_0x3df102['query']);_0x54e84c[_0x5870('0x2b')]=_[_0x5870('0x29')](_0x3df102['model'],qs[_0x5870('0x2c')](_0x399df0[_0x5870('0x26')]['fields']));_0x54e84c[_0x5870('0x2b')]=_0x54e84c['attributes']['length']?_0x54e84c['attributes']:_0x3df102[_0x5870('0x2a')];if(!_0x399df0['query']['hasOwnProperty'](_0x5870('0x2d'))){_0x54e84c['limit']=qs[_0x5870('0x19')](_0x399df0[_0x5870('0x26')][_0x5870('0x19')]);_0x54e84c[_0x5870('0x18')]=qs[_0x5870('0x18')](_0x399df0[_0x5870('0x26')]['offset']);}_0x54e84c[_0x5870('0x2e')]=qs['sort'](_0x399df0[_0x5870('0x26')][_0x5870('0x2f')]);_0x54e84c['where']=qs[_0x5870('0x28')](_[_0x5870('0x30')](_0x399df0[_0x5870('0x26')],_0x3df102[_0x5870('0x28')]));if(_0xef8590[_0x5870('0x25')]){if(_0xef8590[_0x5870('0x27')]){_0xef8590[_0x5870('0x27')]=moment(_0xef8590[_0x5870('0x27')])['add'](0x1,_0x5870('0x31'));}else{_0xef8590[_0x5870('0x27')]=moment(_0xef8590['dateStart'])[_0x5870('0x32')](0x1,_0x5870('0x31'));}_['merge'](_0x54e84c['where'],{'createdAt':{'$gte':_0xef8590[_0x5870('0x25')],'$lte':_0xef8590[_0x5870('0x27')]}});}if(_0x399df0[_0x5870('0x26')][_0x5870('0x33')]){_0x54e84c[_0x5870('0x34')]=_[_0x5870('0x35')](_0x54e84c[_0x5870('0x34')],{'$or':_[_0x5870('0x36')](_0x54e84c['attributes'],function(_0x3803b6){var _0x309cd0={};_0x309cd0[_0x3803b6]={'$like':'%'+_0x399df0[_0x5870('0x26')]['filter']+'%'};return _0x309cd0;})});}_0x54e84c=_[_0x5870('0x35')]({},_0x54e84c,_0x399df0[_0x5870('0x37')]);var _0xeef74f={'where':_0x54e84c['where']};return db[_0x5870('0x22')]['count'](_0xeef74f)[_0x5870('0x1d')](function(_0x102655){_0x7f6e0a[_0x5870('0x17')]=_0x102655;if(_0x399df0[_0x5870('0x26')]['includeAll']){_0x54e84c[_0x5870('0x38')]=[{'all':!![]}];}return db[_0x5870('0x22')][_0x5870('0x39')](_0x54e84c);})[_0x5870('0x1d')](function(_0x352638){_0x7f6e0a[_0x5870('0x3a')]=_0x352638;return _0x7f6e0a;})[_0x5870('0x1d')](respondWithFilteredResult(_0x41d5c7,_0x54e84c))[_0x5870('0x3b')](handleError(_0x41d5c7,null));};exports[_0x5870('0x3c')]=function(_0x406603,_0x235638){var _0x3c8191={'raw':!![],'where':{'id':_0x406603[_0x5870('0x3d')]['id']}},_0x5a40d4={};_0x5a40d4[_0x5870('0x2a')]=_['keys'](db['SalesforceField'][_0x5870('0x23')]);_0x5a40d4[_0x5870('0x26')]=_['keys'](_0x406603['query']);_0x5a40d4[_0x5870('0x28')]=_[_0x5870('0x29')](_0x5a40d4['model'],_0x5a40d4[_0x5870('0x26')]);_0x3c8191['attributes']=_['intersection'](_0x5a40d4[_0x5870('0x2a')],qs[_0x5870('0x2c')](_0x406603[_0x5870('0x26')][_0x5870('0x2c')]));_0x3c8191[_0x5870('0x2b')]=_0x3c8191[_0x5870('0x2b')][_0x5870('0x3e')]?_0x3c8191[_0x5870('0x2b')]:_0x5a40d4[_0x5870('0x2a')];if(_0x406603['query']['includeAll']){_0x3c8191[_0x5870('0x38')]=[{'all':!![]}];}_0x3c8191=_[_0x5870('0x35')]({},_0x3c8191,_0x406603['options']);return db['SalesforceField']['find'](_0x3c8191)[_0x5870('0x1d')](handleEntityNotFound(_0x235638,null))[_0x5870('0x1d')](respondWithResult(_0x235638,null))[_0x5870('0x3b')](handleError(_0x235638,null));};exports[_0x5870('0x3f')]=function(_0x2125ca,_0x1af6af){return db[_0x5870('0x22')][_0x5870('0x3f')](_0x2125ca[_0x5870('0x40')],{})[_0x5870('0x1d')](respondWithResult(_0x1af6af,0xc9))[_0x5870('0x3b')](handleError(_0x1af6af,null));};exports[_0x5870('0x1c')]=function(_0x41b1e0,_0x5371ee){if(_0x41b1e0[_0x5870('0x40')]['id']){delete _0x41b1e0[_0x5870('0x40')]['id'];}return db[_0x5870('0x22')]['find']({'where':{'id':_0x41b1e0[_0x5870('0x3d')]['id']}})[_0x5870('0x1d')](handleEntityNotFound(_0x5371ee,null))[_0x5870('0x1d')](saveUpdates(_0x41b1e0[_0x5870('0x40')],null))[_0x5870('0x1d')](respondWithResult(_0x5371ee,null))['catch'](handleError(_0x5371ee,null));};exports[_0x5870('0x41')]=function(_0xdbabe9,_0x4ab596){return db['SalesforceField'][_0x5870('0x42')]({'where':{'id':_0xdbabe9[_0x5870('0x3d')]['id']}})['then'](handleEntityNotFound(_0x4ab596,null))[_0x5870('0x1d')](removeEntity(_0x4ab596,null))[_0x5870('0x3b')](handleError(_0x4ab596,null));};
\ No newline at end of file
+var _0x7fd9=['body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','desk.js','ioredis','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','index','SalesforceField','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','sort','pick','add','day','merge','where','filter','map','count','includeAll','include','findAll','catch','show','params','length','options','find','create'];(function(_0x2b94e9,_0x36e1d2){var _0xb4473d=function(_0x365db2){while(--_0x365db2){_0x2b94e9['push'](_0x2b94e9['shift']());}};_0xb4473d(++_0x36e1d2);}(_0x7fd9,0x1eb));var _0x97fd=function(_0x33d7e9,_0x500ef5){_0x33d7e9=_0x33d7e9-0x0;var _0x269ff1=_0x7fd9[_0x33d7e9];return _0x269ff1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x97fd('0x0'));var rimraf=require(_0x97fd('0x1'));var zipdir=require(_0x97fd('0x2'));var jsonpatch=require(_0x97fd('0x3'));var rp=require(_0x97fd('0x4'));var moment=require(_0x97fd('0x5'));var BPromise=require(_0x97fd('0x6'));var Mustache=require(_0x97fd('0x7'));var util=require(_0x97fd('0x8'));var path=require(_0x97fd('0x9'));var sox=require('sox');var csv=require(_0x97fd('0xa'));var ejs=require(_0x97fd('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x97fd('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x97fd('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x97fd('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x97fd('0xf'))(_0x97fd('0x10'));var utils=require('../../config/utils');var config=require(_0x97fd('0x11'));var db=require(_0x97fd('0x12'))['db'];function respondWithStatusCode(_0x12d407,_0x5e744f){_0x5e744f=_0x5e744f||0xcc;return function(_0x2ea7d6){if(_0x2ea7d6){return _0x12d407[_0x97fd('0x13')](_0x5e744f);}return _0x12d407['status'](_0x5e744f)[_0x97fd('0x14')]();};}function respondWithResult(_0x4983eb,_0x2ecee6){_0x2ecee6=_0x2ecee6||0xc8;return function(_0x2fff1a){if(_0x2fff1a){return _0x4983eb[_0x97fd('0x15')](_0x2ecee6)[_0x97fd('0x16')](_0x2fff1a);}};}function respondWithFilteredResult(_0x4597f1,_0x136459){return function(_0x429c85){if(_0x429c85){var _0x3ebd88=_0x429c85['count'],_0x163f09=_0x136459[_0x97fd('0x17')],_0x3388bf=_0x136459[_0x97fd('0x17')]+_0x136459['limit'],_0x36a0d9;if(_0x3388bf>=_0x3ebd88){_0x3388bf=_0x3ebd88;_0x36a0d9=0xc8;}else{_0x36a0d9=0xce;}_0x4597f1[_0x97fd('0x15')](_0x36a0d9);return _0x4597f1[_0x97fd('0x18')](_0x97fd('0x19'),_0x163f09+'-'+_0x3388bf+'/'+_0x3ebd88)[_0x97fd('0x16')](_0x429c85);}return null;};}function patchUpdates(_0xbe37b4){return function(_0x2d204a){try{jsonpatch[_0x97fd('0x1a')](_0x2d204a,_0xbe37b4,!![]);}catch(_0xe92839){return BPromise['reject'](_0xe92839);}return _0x2d204a[_0x97fd('0x1b')]();};}function saveUpdates(_0x2cbef9,_0x4fadf5){return function(_0x5c0e30){if(_0x5c0e30){return _0x5c0e30[_0x97fd('0x1c')](_0x2cbef9)['then'](function(_0x4c5575){return _0x4c5575;});}return null;};}function removeEntity(_0x34fa2a,_0xafcbbf){return function(_0xbccb3){if(_0xbccb3){return _0xbccb3[_0x97fd('0x1d')]()[_0x97fd('0x1e')](function(){_0x34fa2a[_0x97fd('0x15')](0xcc)[_0x97fd('0x14')]();});}};}function handleEntityNotFound(_0x1733fa,_0xa467cd){return function(_0x5df424){if(!_0x5df424){_0x1733fa['sendStatus'](0x194);}return _0x5df424;};}function handleError(_0x3e9b48,_0x5e24d3){_0x5e24d3=_0x5e24d3||0x1f4;return function(_0x26b4fb){logger[_0x97fd('0x1f')](_0x26b4fb[_0x97fd('0x20')]);if(_0x26b4fb['name']){delete _0x26b4fb[_0x97fd('0x21')];}_0x3e9b48['status'](_0x5e24d3)[_0x97fd('0x22')](_0x26b4fb);};}exports[_0x97fd('0x23')]=function(_0x3321ef,_0x3d0737){var _0x8e4a72={},_0x5067a4={},_0x463ab8={'count':0x0,'rows':[]};var _0x2eb709=db[_0x97fd('0x24')][_0x97fd('0x25')];_0x5067a4[_0x97fd('0x26')]=_[_0x97fd('0x27')](_0x2eb709);var _0x4722c1={'dateStart':_0x3321ef[_0x97fd('0x28')][_0x97fd('0x29')],'dateEnd':_0x3321ef[_0x97fd('0x28')][_0x97fd('0x2a')]};delete _0x3321ef[_0x97fd('0x28')][_0x97fd('0x29')];delete _0x3321ef[_0x97fd('0x28')]['dateEnd'];_0x5067a4['query']=_[_0x97fd('0x27')](_0x3321ef[_0x97fd('0x28')]);_0x5067a4[_0x97fd('0x2b')]=_[_0x97fd('0x2c')](_0x5067a4[_0x97fd('0x26')],_0x5067a4[_0x97fd('0x28')]);_0x8e4a72['attributes']=_[_0x97fd('0x2c')](_0x5067a4[_0x97fd('0x26')],qs[_0x97fd('0x2d')](_0x3321ef[_0x97fd('0x28')][_0x97fd('0x2d')]));_0x8e4a72[_0x97fd('0x2e')]=_0x8e4a72[_0x97fd('0x2e')]['length']?_0x8e4a72[_0x97fd('0x2e')]:_0x5067a4[_0x97fd('0x26')];if(!_0x3321ef[_0x97fd('0x28')][_0x97fd('0x2f')](_0x97fd('0x30'))){_0x8e4a72[_0x97fd('0x31')]=qs['limit'](_0x3321ef[_0x97fd('0x28')][_0x97fd('0x31')]);_0x8e4a72[_0x97fd('0x17')]=qs[_0x97fd('0x17')](_0x3321ef['query'][_0x97fd('0x17')]);}_0x8e4a72['order']=qs[_0x97fd('0x32')](_0x3321ef[_0x97fd('0x28')][_0x97fd('0x32')]);_0x8e4a72['where']=qs[_0x97fd('0x2b')](_[_0x97fd('0x33')](_0x3321ef[_0x97fd('0x28')],_0x5067a4[_0x97fd('0x2b')]));if(_0x4722c1['dateStart']){if(_0x4722c1[_0x97fd('0x2a')]){_0x4722c1['dateEnd']=moment(_0x4722c1[_0x97fd('0x2a')])[_0x97fd('0x34')](0x1,_0x97fd('0x35'));}else{_0x4722c1[_0x97fd('0x2a')]=moment(_0x4722c1['dateStart'])[_0x97fd('0x34')](0x1,'day');}_[_0x97fd('0x36')](_0x8e4a72[_0x97fd('0x37')],{'createdAt':{'$gte':_0x4722c1[_0x97fd('0x29')],'$lte':_0x4722c1[_0x97fd('0x2a')]}});}if(_0x3321ef[_0x97fd('0x28')][_0x97fd('0x38')]){_0x8e4a72[_0x97fd('0x37')]=_[_0x97fd('0x36')](_0x8e4a72[_0x97fd('0x37')],{'$or':_[_0x97fd('0x39')](_0x8e4a72['attributes'],function(_0x5560c4){var _0x234c68={};_0x234c68[_0x5560c4]={'$like':'%'+_0x3321ef[_0x97fd('0x28')][_0x97fd('0x38')]+'%'};return _0x234c68;})});}_0x8e4a72=_[_0x97fd('0x36')]({},_0x8e4a72,_0x3321ef['options']);var _0x4d6f90={'where':_0x8e4a72[_0x97fd('0x37')]};return db[_0x97fd('0x24')][_0x97fd('0x3a')](_0x4d6f90)[_0x97fd('0x1e')](function(_0x4298bc){_0x463ab8[_0x97fd('0x3a')]=_0x4298bc;if(_0x3321ef[_0x97fd('0x28')][_0x97fd('0x3b')]){_0x8e4a72[_0x97fd('0x3c')]=[{'all':!![]}];}return db[_0x97fd('0x24')][_0x97fd('0x3d')](_0x8e4a72);})['then'](function(_0x2542a1){_0x463ab8['rows']=_0x2542a1;return _0x463ab8;})[_0x97fd('0x1e')](respondWithFilteredResult(_0x3d0737,_0x8e4a72))[_0x97fd('0x3e')](handleError(_0x3d0737,null));};exports[_0x97fd('0x3f')]=function(_0x32c4be,_0x377707){var _0x2ca9d8={'raw':!![],'where':{'id':_0x32c4be[_0x97fd('0x40')]['id']}},_0x149a36={};_0x149a36[_0x97fd('0x26')]=_[_0x97fd('0x27')](db['SalesforceField']['rawAttributes']);_0x149a36[_0x97fd('0x28')]=_[_0x97fd('0x27')](_0x32c4be[_0x97fd('0x28')]);_0x149a36['filters']=_[_0x97fd('0x2c')](_0x149a36['model'],_0x149a36['query']);_0x2ca9d8[_0x97fd('0x2e')]=_[_0x97fd('0x2c')](_0x149a36['model'],qs[_0x97fd('0x2d')](_0x32c4be[_0x97fd('0x28')][_0x97fd('0x2d')]));_0x2ca9d8['attributes']=_0x2ca9d8[_0x97fd('0x2e')][_0x97fd('0x41')]?_0x2ca9d8['attributes']:_0x149a36['model'];if(_0x32c4be['query'][_0x97fd('0x3b')]){_0x2ca9d8[_0x97fd('0x3c')]=[{'all':!![]}];}_0x2ca9d8=_[_0x97fd('0x36')]({},_0x2ca9d8,_0x32c4be[_0x97fd('0x42')]);return db[_0x97fd('0x24')][_0x97fd('0x43')](_0x2ca9d8)[_0x97fd('0x1e')](handleEntityNotFound(_0x377707,null))[_0x97fd('0x1e')](respondWithResult(_0x377707,null))['catch'](handleError(_0x377707,null));};exports[_0x97fd('0x44')]=function(_0xc690f,_0x4445d3){return db[_0x97fd('0x24')][_0x97fd('0x44')](_0xc690f[_0x97fd('0x45')],{})[_0x97fd('0x1e')](respondWithResult(_0x4445d3,0xc9))[_0x97fd('0x3e')](handleError(_0x4445d3,null));};exports[_0x97fd('0x1c')]=function(_0x11c0cf,_0x632e9e){if(_0x11c0cf['body']['id']){delete _0x11c0cf[_0x97fd('0x45')]['id'];}return db['SalesforceField']['find']({'where':{'id':_0x11c0cf[_0x97fd('0x40')]['id']}})[_0x97fd('0x1e')](handleEntityNotFound(_0x632e9e,null))[_0x97fd('0x1e')](saveUpdates(_0x11c0cf[_0x97fd('0x45')],null))['then'](respondWithResult(_0x632e9e,null))[_0x97fd('0x3e')](handleError(_0x632e9e,null));};exports[_0x97fd('0x1d')]=function(_0x2ee3ba,_0x33f9ed){return db[_0x97fd('0x24')]['find']({'where':{'id':_0x2ee3ba['params']['id']}})[_0x97fd('0x1e')](handleEntityNotFound(_0x33f9ed,null))[_0x97fd('0x1e')](removeEntity(_0x33f9ed,null))[_0x97fd('0x3e')](handleError(_0x33f9ed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d75=['moment','bluebird','request-promise','./intSalesforceField.attributes','int_salesforce_fields','lodash','api'];(function(_0x1a0c59,_0x3b4dcc){var _0xed67c9=function(_0x247698){while(--_0x247698){_0x1a0c59['push'](_0x1a0c59['shift']());}};_0xed67c9(++_0x3b4dcc);}(_0x4d75,0x178));var _0x54d7=function(_0x4ac2e3,_0x12aa01){_0x4ac2e3=_0x4ac2e3-0x0;var _0x4b0db6=_0x4d75[_0x4ac2e3];return _0x4b0db6;};'use strict';var _=require(_0x54d7('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x54d7('0x1'));var moment=require(_0x54d7('0x2'));var BPromise=require(_0x54d7('0x3'));var rp=require(_0x54d7('0x4'));var attributes=require(_0x54d7('0x5'));module['exports']=function(_0x47ed58,_0x3fdc84){return _0x47ed58['define']('SalesforceField',attributes,{'tableName':_0x54d7('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x60a1=['define','SalesforceField','lodash','../../config/logger','api','bluebird','request-promise','exports'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x60a1,0x8a));var _0x160a=function(_0x287bb7,_0x1550f9){_0x287bb7=_0x287bb7-0x0;var _0x44d505=_0x60a1[_0x287bb7];return _0x44d505;};'use strict';var _=require(_0x160a('0x0'));var util=require('util');var logger=require(_0x160a('0x1'))(_0x160a('0x2'));var moment=require('moment');var BPromise=require(_0x160a('0x3'));var rp=require(_0x160a('0x4'));var attributes=require('./intSalesforceField.attributes');module[_0x160a('0x5')]=function(_0x57760e,_0x4a0610){return _0x57760e[_0x160a('0x6')](_0x160a('0x7'),attributes,{'tableName':'int_salesforce_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a50=['catch','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','http','then','request\x20sent','SalesforceField,\x20%s,\x20%s,\x20%s','stringify','error','SalesforceField,\x20%s,\x20%s','message'];(function(_0x55c706,_0xe54a65){var _0x5a9579=function(_0x4df2c9){while(--_0x4df2c9){_0x55c706['push'](_0x55c706['shift']());}};_0x5a9579(++_0xe54a65);}(_0x1a50,0x11e));var _0x01a5=function(_0x39fbbc,_0x9d36ab){_0x39fbbc=_0x39fbbc-0x0;var _0x1c171d=_0x1a50[_0x39fbbc];return _0x1c171d;};'use strict';var _=require('lodash');var util=require(_0x01a5('0x0'));var moment=require('moment');var BPromise=require(_0x01a5('0x1'));var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x01a5('0x2'));var logger=require(_0x01a5('0x3'))(_0x01a5('0x4'));var config=require(_0x01a5('0x5'));var jayson=require('jayson/promise');var client=jayson['client'][_0x01a5('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1ec3ce,_0x320e49,_0x6af24b){return new BPromise(function(_0x2085e2,_0x5e6336){return client['request'](_0x1ec3ce,_0x6af24b)[_0x01a5('0x7')](function(_0x161f2f){logger['info']('SalesforceField,\x20%s,\x20%s',_0x320e49,_0x01a5('0x8'));logger['debug'](_0x01a5('0x9'),_0x320e49,_0x01a5('0x8'),JSON[_0x01a5('0xa')](_0x161f2f));if(_0x161f2f[_0x01a5('0xb')]){if(_0x161f2f[_0x01a5('0xb')]['code']===0x1f4){logger['error'](_0x01a5('0xc'),_0x320e49,_0x161f2f['error']['message']);return _0x5e6336(_0x161f2f[_0x01a5('0xb')]['message']);}logger['error'](_0x01a5('0xc'),_0x320e49,_0x161f2f[_0x01a5('0xb')]['message']);return _0x2085e2(_0x161f2f[_0x01a5('0xb')][_0x01a5('0xd')]);}else{logger['info'](_0x01a5('0xc'),_0x320e49,'request\x20sent');_0x2085e2(_0x161f2f['result'][_0x01a5('0xd')]);}})[_0x01a5('0xe')](function(_0x134935){logger[_0x01a5('0xb')](_0x01a5('0xc'),_0x320e49,_0x134935);_0x5e6336(_0x134935);});});}
\ No newline at end of file
+var _0x5b93=['code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','then','info','SalesforceField,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x1a66ec,_0x4e47e1){var _0x2e18b4=function(_0x30ddc2){while(--_0x30ddc2){_0x1a66ec['push'](_0x1a66ec['shift']());}};_0x2e18b4(++_0x4e47e1);}(_0x5b93,0x100));var _0x35b9=function(_0x171206,_0x351a10){_0x171206=_0x171206-0x0;var _0x468afa=_0x5b93[_0x171206];return _0x468afa;};'use strict';var _=require('lodash');var util=require(_0x35b9('0x0'));var moment=require(_0x35b9('0x1'));var BPromise=require(_0x35b9('0x2'));var rs=require(_0x35b9('0x3'));var fs=require('fs');var Redis=require(_0x35b9('0x4'));var db=require(_0x35b9('0x5'))['db'];var utils=require(_0x35b9('0x6'));var logger=require('../../config/logger')(_0x35b9('0x7'));var config=require('../../config/environment');var jayson=require(_0x35b9('0x8'));var client=jayson['client'][_0x35b9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x7bf0a4,_0x1637bf,_0x537082){return new BPromise(function(_0x4a0ea8,_0x2ed0d4){return client['request'](_0x7bf0a4,_0x537082)[_0x35b9('0xa')](function(_0xbedb1a){logger[_0x35b9('0xb')](_0x35b9('0xc'),_0x1637bf,_0x35b9('0xd'));logger[_0x35b9('0xe')]('SalesforceField,\x20%s,\x20%s,\x20%s',_0x1637bf,'request\x20sent',JSON[_0x35b9('0xf')](_0xbedb1a));if(_0xbedb1a[_0x35b9('0x10')]){if(_0xbedb1a[_0x35b9('0x10')][_0x35b9('0x11')]===0x1f4){logger[_0x35b9('0x10')](_0x35b9('0xc'),_0x1637bf,_0xbedb1a[_0x35b9('0x10')]['message']);return _0x2ed0d4(_0xbedb1a[_0x35b9('0x10')]['message']);}logger[_0x35b9('0x10')](_0x35b9('0xc'),_0x1637bf,_0xbedb1a[_0x35b9('0x10')]['message']);return _0x4a0ea8(_0xbedb1a[_0x35b9('0x10')][_0x35b9('0x12')]);}else{logger[_0x35b9('0xb')](_0x35b9('0xc'),_0x1637bf,'request\x20sent');_0x4a0ea8(_0xbedb1a[_0x35b9('0x13')][_0x35b9('0x12')]);}})[_0x35b9('0x14')](function(_0x115a79){logger[_0x35b9('0x10')]('SalesforceField,\x20%s,\x20%s',_0x1637bf,_0x115a79);_0x2ed0d4(_0x115a79);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xecfc=['put','/:id','update','delete','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','isAuthenticated','index','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration'];(function(_0x557f2c,_0x5f07ba){var _0x254eaa=function(_0x381dfe){while(--_0x381dfe){_0x557f2c['push'](_0x557f2c['shift']());}};_0x254eaa(++_0x5f07ba);}(_0xecfc,0x14a));var _0xcecf=function(_0x585bdf,_0x55b68b){_0x585bdf=_0x585bdf-0x0;var _0x21f251=_0xecfc[_0x585bdf];return _0x21f251;};'use strict';var multer=require('multer');var util=require(_0xcecf('0x0'));var path=require(_0xcecf('0x1'));var timeout=require(_0xcecf('0x2'));var express=require(_0xcecf('0x3'));var router=express[_0xcecf('0x4')]();var auth=require(_0xcecf('0x5'));var interaction=require(_0xcecf('0x6'));var config=require(_0xcecf('0x7'));var controller=require(_0xcecf('0x8'));router[_0xcecf('0x9')]('/',auth[_0xcecf('0xa')](),controller[_0xcecf('0xb')]);router[_0xcecf('0x9')]('/:id',auth[_0xcecf('0xa')](),controller[_0xcecf('0xc')]);router[_0xcecf('0x9')](_0xcecf('0xd'),auth['isAuthenticated'](),controller[_0xcecf('0xe')]);router[_0xcecf('0x9')](_0xcecf('0xf'),auth[_0xcecf('0xa')](),controller[_0xcecf('0x10')]);router[_0xcecf('0x11')]('/',auth['isAuthenticated'](),controller[_0xcecf('0x12')]);router[_0xcecf('0x11')]('/:id/configurations',auth[_0xcecf('0xa')](),controller[_0xcecf('0x13')]);router[_0xcecf('0x14')](_0xcecf('0x15'),auth[_0xcecf('0xa')](),controller[_0xcecf('0x16')]);router[_0xcecf('0x17')](_0xcecf('0x15'),auth[_0xcecf('0xa')](),controller['destroy']);module[_0xcecf('0x18')]=router;
\ No newline at end of file
+var _0x3d97=['/:id/configurations','getConfigurations','/:id/fields','getFields','create','post','addConfiguration','put','/:id','update','delete','destroy','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','isAuthenticated','index','show'];(function(_0x2358c2,_0x112db7){var _0x3ea7a5=function(_0xf03898){while(--_0xf03898){_0x2358c2['push'](_0x2358c2['shift']());}};_0x3ea7a5(++_0x112db7);}(_0x3d97,0x120));var _0x73d9=function(_0x20d6a8,_0x442069){_0x20d6a8=_0x20d6a8-0x0;var _0x27daf3=_0x3d97[_0x20d6a8];return _0x27daf3;};'use strict';var multer=require('multer');var util=require(_0x73d9('0x0'));var path=require(_0x73d9('0x1'));var timeout=require(_0x73d9('0x2'));var express=require(_0x73d9('0x3'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x73d9('0x4'));var config=require(_0x73d9('0x5'));var controller=require(_0x73d9('0x6'));router[_0x73d9('0x7')]('/',auth[_0x73d9('0x8')](),controller[_0x73d9('0x9')]);router[_0x73d9('0x7')]('/:id',auth[_0x73d9('0x8')](),controller[_0x73d9('0xa')]);router[_0x73d9('0x7')](_0x73d9('0xb'),auth[_0x73d9('0x8')](),controller[_0x73d9('0xc')]);router[_0x73d9('0x7')](_0x73d9('0xd'),auth[_0x73d9('0x8')](),controller[_0x73d9('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x73d9('0xf')]);router[_0x73d9('0x10')](_0x73d9('0xb'),auth['isAuthenticated'](),controller[_0x73d9('0x11')]);router[_0x73d9('0x12')](_0x73d9('0x13'),auth[_0x73d9('0x8')](),controller[_0x73d9('0x14')]);router[_0x73d9('0x15')](_0x73d9('0x13'),auth[_0x73d9('0x8')](),controller[_0x73d9('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12f8=['STRING','username','remoteUri','exports'];(function(_0x456fb1,_0x859a1d){var _0x4083d6=function(_0xe1d0f2){while(--_0xe1d0f2){_0x456fb1['push'](_0x456fb1['shift']());}};_0x4083d6(++_0x859a1d);}(_0x12f8,0x6f));var _0x812f=function(_0x19c38a,_0x315b7a){_0x19c38a=_0x19c38a-0x0;var _0x7da948=_0x12f8[_0x19c38a];return _0x7da948;};'use strict';var Sequelize=require('sequelize');module[_0x812f('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x812f('0x1')]},'username':{'type':Sequelize['STRING'],'unique':_0x812f('0x2')},'password':{'type':Sequelize[_0x812f('0x1')]},'remoteUri':{'type':Sequelize['STRING'],'unique':_0x812f('0x3')},'serverUrl':{'type':Sequelize[_0x812f('0x1')]}};
\ No newline at end of file
+var _0x7643=['STRING','username','remoteUri','sequelize','exports'];(function(_0x3e0171,_0x2f9ffb){var _0x398fac=function(_0x472706){while(--_0x472706){_0x3e0171['push'](_0x3e0171['shift']());}};_0x398fac(++_0x2f9ffb);}(_0x7643,0xd5));var _0x3764=function(_0x304fe0,_0x430c48){_0x304fe0=_0x304fe0-0x0;var _0x1649f8=_0x7643[_0x304fe0];return _0x1649f8;};'use strict';var Sequelize=require(_0x3764('0x0'));module[_0x3764('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x3764('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x3764('0x3')},'password':{'type':Sequelize[_0x3764('0x2')]},'remoteUri':{'type':Sequelize['STRING'],'unique':_0x3764('0x4')},'serverUrl':{'type':Sequelize[_0x3764('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89c3=['include','find','create','getConfigurations','findOne','options','addConfiguration','body','channel','Descriptions','getDescriptions','SugarcrmConfiguration','SugarcrmField','getFields','username','remoteUri','POST','format','%s%s','login','JSON','password','PLAIN','xCALLY\x20Motion\x20Integration','/service/v4_1/rest.php','get_module_fields','values','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','test','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','lodash','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','then','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','destroy','stack','name','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','SugarcrmAccount','includeAll','findAll','rows','show','params'];(function(_0xa663dc,_0x4f0f27){var _0x31a1c9=function(_0x5a6a8e){while(--_0x5a6a8e){_0xa663dc['push'](_0xa663dc['shift']());}};_0x31a1c9(++_0x4f0f27);}(_0x89c3,0xff));var _0x389c=function(_0x3a5676,_0x18b683){_0x3a5676=_0x3a5676-0x0;var _0x1eca72=_0x89c3[_0x3a5676];return _0x1eca72;};'use strict';var pdf=require(_0x389c('0x0'));var emlformat=require(_0x389c('0x1'));var rimraf=require(_0x389c('0x2'));var zipdir=require(_0x389c('0x3'));var jsonpatch=require(_0x389c('0x4'));var rp=require(_0x389c('0x5'));var moment=require(_0x389c('0x6'));var BPromise=require(_0x389c('0x7'));var Mustache=require('mustache');var util=require(_0x389c('0x8'));var path=require('path');var sox=require(_0x389c('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x389c('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x389c('0xb'));var deskjs=require(_0x389c('0xc'));var toCsv=require(_0x389c('0xd'));var querystring=require(_0x389c('0xe'));var Papa=require(_0x389c('0xf'));var qs=require(_0x389c('0x10'));var logger=require(_0x389c('0x11'))(_0x389c('0x12'));var utils=require(_0x389c('0x13'));var config=require('../../config/environment');var db=require(_0x389c('0x14'))['db'];var integrations=require(_0x389c('0x15'));var jayson=require(_0x389c('0x16'));var client=jayson[_0x389c('0x17')][_0x389c('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x4e0344,_0x5d7aa7,_0x2a2d7d,_0x1de33a){return new BPromise(function(_0x29c54c,_0x501dc8){var _0x3f2391=_0x1de33a||client;return _0x3f2391['request'](_0x4e0344,_0x2a2d7d)[_0x389c('0x19')](function(_0x1b1618){logger['info'](_0x389c('0x1a'),_0x5d7aa7,_0x389c('0x1b'));logger[_0x389c('0x1c')]('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x5d7aa7,_0x389c('0x1b'),JSON[_0x389c('0x1d')](_0x1b1618));if(_0x1b1618[_0x389c('0x1e')]){if(_0x1b1618[_0x389c('0x1e')][_0x389c('0x1f')]===0x1f4){logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x5d7aa7,_0x1b1618['error'][_0x389c('0x20')]);return _0x501dc8(_0x1b1618[_0x389c('0x1e')]['message']);}logger[_0x389c('0x1e')](_0x389c('0x1a'),_0x5d7aa7,_0x1b1618[_0x389c('0x1e')][_0x389c('0x20')]);return _0x29c54c(_0x1b1618[_0x389c('0x1e')][_0x389c('0x20')]);}else{logger[_0x389c('0x21')](_0x389c('0x1a'),_0x5d7aa7,_0x389c('0x1b'));_0x29c54c(_0x1b1618['result'][_0x389c('0x20')]);}})[_0x389c('0x22')](function(_0x33fffa){logger[_0x389c('0x1e')](_0x389c('0x1a'),_0x5d7aa7,_0x33fffa);_0x501dc8(_0x33fffa);});});}function respondWithStatusCode(_0x2e1012,_0x5284e9){_0x5284e9=_0x5284e9||0xcc;return function(_0x18e06b){if(_0x18e06b){return _0x2e1012[_0x389c('0x23')](_0x5284e9);}return _0x2e1012[_0x389c('0x24')](_0x5284e9)[_0x389c('0x25')]();};}function respondWithResult(_0x54869a,_0x2c9456){_0x2c9456=_0x2c9456||0xc8;return function(_0x2729bd){if(_0x2729bd){return _0x54869a['status'](_0x2c9456)[_0x389c('0x26')](_0x2729bd);}};}function respondWithFilteredResult(_0x5d1c4b,_0x929ea9){return function(_0x307113){if(_0x307113){var _0x423d65=_0x307113[_0x389c('0x27')],_0x18aa3e=_0x929ea9[_0x389c('0x28')],_0x21ab93=_0x929ea9[_0x389c('0x28')]+_0x929ea9[_0x389c('0x29')],_0x5d34aa;if(_0x21ab93>=_0x423d65){_0x21ab93=_0x423d65;_0x5d34aa=0xc8;}else{_0x5d34aa=0xce;}_0x5d1c4b[_0x389c('0x24')](_0x5d34aa);return _0x5d1c4b['set'](_0x389c('0x2a'),_0x18aa3e+'-'+_0x21ab93+'/'+_0x423d65)['json'](_0x307113);}return null;};}function patchUpdates(_0x6d2ff7){return function(_0x45cd48){try{jsonpatch[_0x389c('0x2b')](_0x45cd48,_0x6d2ff7,!![]);}catch(_0xeac171){return BPromise['reject'](_0xeac171);}return _0x45cd48[_0x389c('0x2c')]();};}function saveUpdates(_0x80a2e1,_0x594f6a){return function(_0x6f0166){if(_0x6f0166){return _0x6f0166[_0x389c('0x2d')](_0x80a2e1)[_0x389c('0x19')](function(_0xa1cf2b){return _0xa1cf2b;});}return null;};}function removeEntity(_0x174c89,_0x2219f3){return function(_0x21a5c4){if(_0x21a5c4){return _0x21a5c4[_0x389c('0x2e')]()[_0x389c('0x19')](function(){_0x174c89[_0x389c('0x24')](0xcc)[_0x389c('0x25')]();});}};}function handleEntityNotFound(_0x22a013,_0x5000ec){return function(_0x4e9354){if(!_0x4e9354){_0x22a013['sendStatus'](0x194);}return _0x4e9354;};}function handleError(_0x19a63f,_0x4fac91){_0x4fac91=_0x4fac91||0x1f4;return function(_0x28be32){logger['error'](_0x28be32[_0x389c('0x2f')]);if(_0x28be32[_0x389c('0x30')]){delete _0x28be32[_0x389c('0x30')];}_0x19a63f[_0x389c('0x24')](_0x4fac91)['send'](_0x28be32);};}exports[_0x389c('0x31')]=function(_0x38f321,_0x33c326){var _0x207a5a={},_0x242ec7={},_0x2d70ff={'count':0x0,'rows':[]};var _0x4d0217=db['SugarcrmAccount'][_0x389c('0x32')];_0x242ec7[_0x389c('0x33')]=_[_0x389c('0x34')](_0x4d0217);var _0x100212={'dateStart':_0x38f321[_0x389c('0x35')][_0x389c('0x36')],'dateEnd':_0x38f321[_0x389c('0x35')][_0x389c('0x37')]};delete _0x38f321[_0x389c('0x35')][_0x389c('0x36')];delete _0x38f321[_0x389c('0x35')][_0x389c('0x37')];_0x242ec7[_0x389c('0x35')]=_['keys'](_0x38f321['query']);_0x242ec7[_0x389c('0x38')]=_[_0x389c('0x39')](_0x242ec7[_0x389c('0x33')],_0x242ec7[_0x389c('0x35')]);_0x207a5a[_0x389c('0x3a')]=_[_0x389c('0x39')](_0x242ec7['model'],qs['fields'](_0x38f321[_0x389c('0x35')][_0x389c('0x3b')]));_0x207a5a[_0x389c('0x3a')]=_0x207a5a['attributes'][_0x389c('0x3c')]?_0x207a5a[_0x389c('0x3a')]:_0x242ec7[_0x389c('0x33')];if(!_0x38f321[_0x389c('0x35')][_0x389c('0x3d')](_0x389c('0x3e'))){_0x207a5a['limit']=qs[_0x389c('0x29')](_0x38f321[_0x389c('0x35')][_0x389c('0x29')]);_0x207a5a[_0x389c('0x28')]=qs['offset'](_0x38f321[_0x389c('0x35')]['offset']);}_0x207a5a[_0x389c('0x3f')]=qs[_0x389c('0x40')](_0x38f321[_0x389c('0x35')][_0x389c('0x40')]);_0x207a5a[_0x389c('0x41')]=qs[_0x389c('0x38')](_[_0x389c('0x42')](_0x38f321[_0x389c('0x35')],_0x242ec7[_0x389c('0x38')]));if(_0x100212[_0x389c('0x36')]){if(_0x100212[_0x389c('0x37')]){_0x100212['dateEnd']=moment(_0x100212[_0x389c('0x37')])[_0x389c('0x43')](0x1,'day');}else{_0x100212[_0x389c('0x37')]=moment(_0x100212['dateStart'])[_0x389c('0x43')](0x1,_0x389c('0x44'));}_[_0x389c('0x45')](_0x207a5a[_0x389c('0x41')],{'createdAt':{'$gte':_0x100212[_0x389c('0x36')],'$lte':_0x100212[_0x389c('0x37')]}});}if(_0x38f321[_0x389c('0x35')][_0x389c('0x46')]){_0x207a5a[_0x389c('0x41')]=_[_0x389c('0x45')](_0x207a5a[_0x389c('0x41')],{'$or':_[_0x389c('0x47')](_0x207a5a[_0x389c('0x3a')],function(_0x5069ce){var _0x575a44={};_0x575a44[_0x5069ce]={'$like':'%'+_0x38f321[_0x389c('0x35')][_0x389c('0x46')]+'%'};return _0x575a44;})});}_0x207a5a=_[_0x389c('0x45')]({},_0x207a5a,_0x38f321['options']);var _0x3404b1={'where':_0x207a5a[_0x389c('0x41')]};return db[_0x389c('0x48')][_0x389c('0x27')](_0x3404b1)['then'](function(_0x49d0e1){_0x2d70ff['count']=_0x49d0e1;if(_0x38f321['query'][_0x389c('0x49')]){_0x207a5a['include']=[{'all':!![]}];}return db['SugarcrmAccount'][_0x389c('0x4a')](_0x207a5a);})[_0x389c('0x19')](function(_0xda6d22){_0x2d70ff[_0x389c('0x4b')]=_0xda6d22;return _0x2d70ff;})[_0x389c('0x19')](respondWithFilteredResult(_0x33c326,_0x207a5a))[_0x389c('0x22')](handleError(_0x33c326,null));};exports[_0x389c('0x4c')]=function(_0x556928,_0x287687){var _0x1d509a={'raw':![],'where':{'id':_0x556928[_0x389c('0x4d')]['id']}},_0x28e449={};_0x28e449[_0x389c('0x33')]=_[_0x389c('0x34')](db['SugarcrmAccount'][_0x389c('0x32')]);_0x28e449['query']=_[_0x389c('0x34')](_0x556928['query']);_0x28e449[_0x389c('0x38')]=_[_0x389c('0x39')](_0x28e449[_0x389c('0x33')],_0x28e449[_0x389c('0x35')]);_0x1d509a[_0x389c('0x3a')]=_[_0x389c('0x39')](_0x28e449['model'],qs[_0x389c('0x3b')](_0x556928[_0x389c('0x35')]['fields']));_0x1d509a[_0x389c('0x3a')]=_0x1d509a[_0x389c('0x3a')][_0x389c('0x3c')]?_0x1d509a['attributes']:_0x28e449[_0x389c('0x33')];if(_0x556928[_0x389c('0x35')]['includeAll']){_0x1d509a[_0x389c('0x4e')]=[{'all':!![]}];}_0x1d509a=_[_0x389c('0x45')]({},_0x1d509a,_0x556928['options']);return db[_0x389c('0x48')][_0x389c('0x4f')](_0x1d509a)[_0x389c('0x19')](handleEntityNotFound(_0x287687,null))[_0x389c('0x19')](respondWithResult(_0x287687,null))[_0x389c('0x22')](handleError(_0x287687,null));};exports[_0x389c('0x50')]=function(_0x1ba55f,_0x424165){return db[_0x389c('0x48')][_0x389c('0x50')](_0x1ba55f['body'],{})[_0x389c('0x19')](respondWithResult(_0x424165,0xc9))[_0x389c('0x22')](handleError(_0x424165,null));};exports[_0x389c('0x2d')]=function(_0x5edc1c,_0x407816){if(_0x5edc1c['body']['id']){delete _0x5edc1c['body']['id'];}return db[_0x389c('0x48')][_0x389c('0x4f')]({'where':{'id':_0x5edc1c[_0x389c('0x4d')]['id']}})[_0x389c('0x19')](handleEntityNotFound(_0x407816,null))[_0x389c('0x19')](saveUpdates(_0x5edc1c['body'],null))[_0x389c('0x19')](respondWithResult(_0x407816,null))[_0x389c('0x22')](handleError(_0x407816,null));};exports[_0x389c('0x2e')]=function(_0x5c62e3,_0x13fde1){return db[_0x389c('0x48')][_0x389c('0x4f')]({'where':{'id':_0x5c62e3[_0x389c('0x4d')]['id']}})['then'](handleEntityNotFound(_0x13fde1,null))[_0x389c('0x19')](removeEntity(_0x13fde1,null))[_0x389c('0x22')](handleError(_0x13fde1,null));};exports[_0x389c('0x51')]=function(_0x2a0130,_0x104983,_0x52e988){var _0x5359f5={};var _0x2d3b5f={};var _0x4bf9ec;var _0x4c7b77;return db[_0x389c('0x48')][_0x389c('0x52')]({'where':{'id':_0x2a0130['params']['id']}})[_0x389c('0x19')](handleEntityNotFound(_0x104983,null))['then'](function(_0x18d3d7){if(_0x18d3d7){_0x4bf9ec=_0x18d3d7;_0x2d3b5f['model']=_[_0x389c('0x34')](db['SugarcrmConfiguration'][_0x389c('0x32')]);_0x2d3b5f[_0x389c('0x35')]=_[_0x389c('0x34')](_0x2a0130[_0x389c('0x35')]);_0x2d3b5f['filters']=_[_0x389c('0x39')](_0x2d3b5f[_0x389c('0x33')],_0x2d3b5f['query']);_0x5359f5[_0x389c('0x3a')]=_['intersection'](_0x2d3b5f['model'],qs[_0x389c('0x3b')](_0x2a0130[_0x389c('0x35')][_0x389c('0x3b')]));_0x5359f5['attributes']=_0x5359f5[_0x389c('0x3a')][_0x389c('0x3c')]?_0x5359f5[_0x389c('0x3a')]:_0x2d3b5f[_0x389c('0x33')];_0x5359f5['order']=qs[_0x389c('0x40')](_0x2a0130['query']['sort']);_0x5359f5[_0x389c('0x41')]=qs[_0x389c('0x38')](_['pick'](_0x2a0130[_0x389c('0x35')],_0x2d3b5f[_0x389c('0x38')]));if(_0x2a0130['query']['filter']){_0x5359f5[_0x389c('0x41')]=_[_0x389c('0x45')](_0x5359f5[_0x389c('0x41')],{'$or':_[_0x389c('0x47')](_0x5359f5[_0x389c('0x3a')],function(_0x261dfb){var _0x15990e={};_0x15990e[_0x261dfb]={'$like':'%'+_0x2a0130[_0x389c('0x35')][_0x389c('0x46')]+'%'};return _0x15990e;})});}_0x5359f5=_[_0x389c('0x45')]({},_0x5359f5,_0x2a0130[_0x389c('0x53')]);return _0x4bf9ec['getConfigurations'](_0x5359f5);}})[_0x389c('0x19')](function(_0x404e8e){if(_0x404e8e){_0x4c7b77=_0x404e8e[_0x389c('0x3c')];if(!_0x2a0130['query'][_0x389c('0x3d')](_0x389c('0x3e'))){_0x5359f5[_0x389c('0x29')]=qs[_0x389c('0x29')](_0x2a0130['query'][_0x389c('0x29')]);_0x5359f5[_0x389c('0x28')]=qs['offset'](_0x2a0130[_0x389c('0x35')][_0x389c('0x28')]);}return _0x4bf9ec[_0x389c('0x51')](_0x5359f5);}})[_0x389c('0x19')](function(_0x199ed9){if(_0x199ed9){return _0x199ed9?{'count':_0x4c7b77,'rows':_0x199ed9}:null;}})[_0x389c('0x19')](respondWithResult(_0x104983,null))[_0x389c('0x22')](handleError(_0x104983,null));};exports[_0x389c('0x54')]=function(_0x33ef0c,_0x164787,_0x40980d){if(_0x33ef0c['body']['id']){delete _0x33ef0c[_0x389c('0x55')]['id'];}return db['SugarcrmAccount'][_0x389c('0x52')]({'where':{'id':_0x33ef0c[_0x389c('0x4d')]['id']}})[_0x389c('0x19')](handleEntityNotFound(_0x164787,null))['then'](function(_0x6d6ac8){if(_0x6d6ac8){_0x33ef0c[_0x389c('0x55')]['AccountId']=_0x6d6ac8['id'];_0x33ef0c[_0x389c('0x55')]['Subjects']=integrations['getSubjects'](_0x33ef0c[_0x389c('0x55')][_0x389c('0x56')],_0x33ef0c['body']['type']);_0x33ef0c[_0x389c('0x55')][_0x389c('0x57')]=integrations[_0x389c('0x58')](_0x33ef0c[_0x389c('0x55')][_0x389c('0x56')],_0x33ef0c[_0x389c('0x55')]['type']);return db[_0x389c('0x59')][_0x389c('0x50')](_0x33ef0c[_0x389c('0x55')],{'include':[{'model':db[_0x389c('0x5a')],'as':'Subjects'},{'model':db[_0x389c('0x5a')],'as':'Descriptions'}]});}return null;})[_0x389c('0x19')](respondWithResult(_0x164787,null))[_0x389c('0x22')](handleError(_0x164787,null));};exports[_0x389c('0x5b')]=function(_0x19d4e2,_0xa82c9,_0xd022fc){var _0x4a5949;return db['SugarcrmAccount'][_0x389c('0x52')]({'where':{'id':_0x19d4e2[_0x389c('0x4d')]['id']},'attributes':['id',_0x389c('0x5c'),'password',_0x389c('0x5d')]})[_0x389c('0x19')](handleEntityNotFound(_0xa82c9,null))['then'](function(_0x25d4df){if(_0x25d4df){_0x4a5949=_0x25d4df[_0x389c('0x5d')];return rp({'method':_0x389c('0x5e'),'uri':util[_0x389c('0x5f')](_0x389c('0x60'),_0x4a5949,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x389c('0x61'),'input_type':_0x389c('0x62'),'response_type':'JSON','rest_data':JSON[_0x389c('0x1d')]({'user_auth':{'user_name':_0x25d4df[_0x389c('0x5c')],'password':_0x25d4df[_0x389c('0x63')],'encryption':_0x389c('0x64')},'application':_0x389c('0x65')})}});}})[_0x389c('0x19')](function(_0x51decc){if(_0x51decc){return rp({'method':_0x389c('0x5e'),'uri':util['format'](_0x389c('0x60'),_0x4a5949,_0x389c('0x66')),'json':!![],'form':{'method':_0x389c('0x67'),'input_type':_0x389c('0x62'),'response_type':_0x389c('0x62'),'rest_data':JSON['stringify']({'session':_0x51decc['id'],'module_name':'Calls'})}});}})[_0x389c('0x19')](function(_0x380bac){if(_0x380bac){var _0x63cb59=_[_0x389c('0x68')](_0x380bac['module_fields']);return{'count':_0x63cb59[_0x389c('0x3c')],'rows':_[_0x389c('0x47')](_0x63cb59,function(_0x300389){return{'id':_0x300389[_0x389c('0x30')],'name':_0x300389[_0x389c('0x69')],'custom':_['endsWith'](_0x300389['name'],'_c')?!![]:![],'options':_0x300389[_0x389c('0x53')]?_[_0x389c('0x47')](_[_0x389c('0x68')](_0x300389[_0x389c('0x53')]),function(_0x5ac106){return{'name':_0x5ac106['value'],'value':_0x5ac106[_0x389c('0x30')]};}):[]};})};}})[_0x389c('0x19')](respondWithResult(_0xa82c9,null))[_0x389c('0x22')](function(_0x2c676c){var _0xd7a347=_0x19d4e2[_0x389c('0x35')]['test']?0x1f4:_0x2c676c[_0x389c('0x6a')]||0x1f4;logger[_0x389c('0x1e')](_0x389c('0x6b'),_0x389c('0x5b'),_0xd7a347,JSON[_0x389c('0x1d')](_0x2c676c));delete _0x2c676c[_0x389c('0x30')];if(_0xd7a347===0x191){_0xd7a347=0x190;}_0xa82c9['status'](_0xd7a347)[_0x389c('0x6c')](_0x19d4e2[_0x389c('0x35')][_0x389c('0x6d')]?{'message':_0x389c('0x6e'),'statusCode':_0x2c676c[_0x389c('0x6a')]}:_0x2c676c);});};
\ No newline at end of file
+var _0x767b=['SugarcrmConfiguration','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','type','SugarcrmField','getFields','username','password','remoteUri','POST','format','%s%s','login','JSON','/service/v4_1/rest.php','get_module_fields','stringify','values','module_fields','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','SugarcrmAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','end','status','offset','limit','set','Content-Range','reject','update','destroy','stack','name','send','index','SugarcrmAccount','rawAttributes','keys','query','dateEnd','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','dateStart','add','day','merge','filter','map','options','count','includeAll','include','rows','params','find','create','body','getConfigurations','findOne'];(function(_0x4b2c74,_0x50760a){var _0x20f267=function(_0x100bf7){while(--_0x100bf7){_0x4b2c74['push'](_0x4b2c74['shift']());}};_0x20f267(++_0x50760a);}(_0x767b,0x1e4));var _0xb767=function(_0x556918,_0x4882eb){_0x556918=_0x556918-0x0;var _0x1950fc=_0x767b[_0x556918];return _0x1950fc;};'use strict';var pdf=require(_0xb767('0x0'));var emlformat=require(_0xb767('0x1'));var rimraf=require(_0xb767('0x2'));var zipdir=require(_0xb767('0x3'));var jsonpatch=require(_0xb767('0x4'));var rp=require(_0xb767('0x5'));var moment=require(_0xb767('0x6'));var BPromise=require(_0xb767('0x7'));var Mustache=require(_0xb767('0x8'));var util=require('util');var path=require('path');var sox=require(_0xb767('0x9'));var csv=require('to-csv');var ejs=require(_0xb767('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xb767('0xb'));var jsforce=require(_0xb767('0xc'));var deskjs=require(_0xb767('0xd'));var toCsv=require(_0xb767('0xe'));var querystring=require(_0xb767('0xf'));var Papa=require(_0xb767('0x10'));var Redis=require(_0xb767('0x11'));var qs=require(_0xb767('0x12'));var logger=require(_0xb767('0x13'))(_0xb767('0x14'));var utils=require(_0xb767('0x15'));var config=require(_0xb767('0x16'));var db=require(_0xb767('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xb767('0x18'));var client=jayson[_0xb767('0x19')][_0xb767('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x5cef39,_0x14f18c,_0x4f213e,_0xa3db55){return new BPromise(function(_0x1bc9bb,_0x2b50b2){var _0x4197f1=_0xa3db55||client;return _0x4197f1[_0xb767('0x1b')](_0x5cef39,_0x4f213e)[_0xb767('0x1c')](function(_0x2a14a4){logger[_0xb767('0x1d')](_0xb767('0x1e'),_0x14f18c,_0xb767('0x1f'));logger['debug'](_0xb767('0x20'),_0x14f18c,_0xb767('0x1f'),JSON['stringify'](_0x2a14a4));if(_0x2a14a4[_0xb767('0x21')]){if(_0x2a14a4[_0xb767('0x21')][_0xb767('0x22')]===0x1f4){logger[_0xb767('0x21')](_0xb767('0x1e'),_0x14f18c,_0x2a14a4[_0xb767('0x21')][_0xb767('0x23')]);return _0x2b50b2(_0x2a14a4[_0xb767('0x21')][_0xb767('0x23')]);}logger[_0xb767('0x21')](_0xb767('0x1e'),_0x14f18c,_0x2a14a4[_0xb767('0x21')][_0xb767('0x23')]);return _0x1bc9bb(_0x2a14a4[_0xb767('0x21')][_0xb767('0x23')]);}else{logger[_0xb767('0x1d')]('SugarcrmAccount,\x20%s,\x20%s',_0x14f18c,_0xb767('0x1f'));_0x1bc9bb(_0x2a14a4[_0xb767('0x24')][_0xb767('0x23')]);}})[_0xb767('0x25')](function(_0x5f53bf){logger[_0xb767('0x21')](_0xb767('0x1e'),_0x14f18c,_0x5f53bf);_0x2b50b2(_0x5f53bf);});});}function respondWithStatusCode(_0x900dfd,_0x35dbba){_0x35dbba=_0x35dbba||0xcc;return function(_0x322328){if(_0x322328){return _0x900dfd[_0xb767('0x26')](_0x35dbba);}return _0x900dfd['status'](_0x35dbba)[_0xb767('0x27')]();};}function respondWithResult(_0x2962f7,_0x30cc34){_0x30cc34=_0x30cc34||0xc8;return function(_0x2a8525){if(_0x2a8525){return _0x2962f7[_0xb767('0x28')](_0x30cc34)['json'](_0x2a8525);}};}function respondWithFilteredResult(_0x460f02,_0x29777b){return function(_0x333855){if(_0x333855){var _0x33eac4=_0x333855['count'],_0x17ae23=_0x29777b[_0xb767('0x29')],_0x284f43=_0x29777b[_0xb767('0x29')]+_0x29777b[_0xb767('0x2a')],_0x39d6ec;if(_0x284f43>=_0x33eac4){_0x284f43=_0x33eac4;_0x39d6ec=0xc8;}else{_0x39d6ec=0xce;}_0x460f02[_0xb767('0x28')](_0x39d6ec);return _0x460f02[_0xb767('0x2b')](_0xb767('0x2c'),_0x17ae23+'-'+_0x284f43+'/'+_0x33eac4)['json'](_0x333855);}return null;};}function patchUpdates(_0x2f0699){return function(_0x5c3a18){try{jsonpatch['apply'](_0x5c3a18,_0x2f0699,!![]);}catch(_0x1736b4){return BPromise[_0xb767('0x2d')](_0x1736b4);}return _0x5c3a18['save']();};}function saveUpdates(_0xc14dcf,_0x626e87){return function(_0x2cad47){if(_0x2cad47){return _0x2cad47[_0xb767('0x2e')](_0xc14dcf)[_0xb767('0x1c')](function(_0x222753){return _0x222753;});}return null;};}function removeEntity(_0x29644d,_0x407901){return function(_0x493e1d){if(_0x493e1d){return _0x493e1d[_0xb767('0x2f')]()[_0xb767('0x1c')](function(){_0x29644d[_0xb767('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d2db8,_0x202ee9){return function(_0x19cb82){if(!_0x19cb82){_0x1d2db8[_0xb767('0x26')](0x194);}return _0x19cb82;};}function handleError(_0x99b7da,_0xe2041d){_0xe2041d=_0xe2041d||0x1f4;return function(_0x1c8fd9){logger[_0xb767('0x21')](_0x1c8fd9[_0xb767('0x30')]);if(_0x1c8fd9[_0xb767('0x31')]){delete _0x1c8fd9[_0xb767('0x31')];}_0x99b7da['status'](_0xe2041d)[_0xb767('0x32')](_0x1c8fd9);};}exports[_0xb767('0x33')]=function(_0x10de7f,_0x2c81d){var _0x49e9fd={},_0x4798c1={},_0x330032={'count':0x0,'rows':[]};var _0x29f7ac=db[_0xb767('0x34')][_0xb767('0x35')];_0x4798c1['model']=_[_0xb767('0x36')](_0x29f7ac);var _0x5e067b={'dateStart':_0x10de7f[_0xb767('0x37')]['dateStart'],'dateEnd':_0x10de7f['query']['dateEnd']};delete _0x10de7f['query']['dateStart'];delete _0x10de7f[_0xb767('0x37')][_0xb767('0x38')];_0x4798c1[_0xb767('0x37')]=_['keys'](_0x10de7f[_0xb767('0x37')]);_0x4798c1[_0xb767('0x39')]=_[_0xb767('0x3a')](_0x4798c1[_0xb767('0x3b')],_0x4798c1['query']);_0x49e9fd[_0xb767('0x3c')]=_[_0xb767('0x3a')](_0x4798c1['model'],qs[_0xb767('0x3d')](_0x10de7f[_0xb767('0x37')]['fields']));_0x49e9fd[_0xb767('0x3c')]=_0x49e9fd['attributes'][_0xb767('0x3e')]?_0x49e9fd[_0xb767('0x3c')]:_0x4798c1['model'];if(!_0x10de7f[_0xb767('0x37')][_0xb767('0x3f')](_0xb767('0x40'))){_0x49e9fd[_0xb767('0x2a')]=qs[_0xb767('0x2a')](_0x10de7f[_0xb767('0x37')]['limit']);_0x49e9fd[_0xb767('0x29')]=qs['offset'](_0x10de7f[_0xb767('0x37')][_0xb767('0x29')]);}_0x49e9fd[_0xb767('0x41')]=qs[_0xb767('0x42')](_0x10de7f[_0xb767('0x37')][_0xb767('0x42')]);_0x49e9fd[_0xb767('0x43')]=qs[_0xb767('0x39')](_[_0xb767('0x44')](_0x10de7f[_0xb767('0x37')],_0x4798c1['filters']));if(_0x5e067b[_0xb767('0x45')]){if(_0x5e067b[_0xb767('0x38')]){_0x5e067b['dateEnd']=moment(_0x5e067b[_0xb767('0x38')])[_0xb767('0x46')](0x1,_0xb767('0x47'));}else{_0x5e067b[_0xb767('0x38')]=moment(_0x5e067b[_0xb767('0x45')])[_0xb767('0x46')](0x1,_0xb767('0x47'));}_[_0xb767('0x48')](_0x49e9fd['where'],{'createdAt':{'$gte':_0x5e067b[_0xb767('0x45')],'$lte':_0x5e067b[_0xb767('0x38')]}});}if(_0x10de7f[_0xb767('0x37')][_0xb767('0x49')]){_0x49e9fd[_0xb767('0x43')]=_['merge'](_0x49e9fd[_0xb767('0x43')],{'$or':_[_0xb767('0x4a')](_0x49e9fd[_0xb767('0x3c')],function(_0x2313f6){var _0x7799fb={};_0x7799fb[_0x2313f6]={'$like':'%'+_0x10de7f[_0xb767('0x37')][_0xb767('0x49')]+'%'};return _0x7799fb;})});}_0x49e9fd=_['merge']({},_0x49e9fd,_0x10de7f[_0xb767('0x4b')]);var _0x515cbd={'where':_0x49e9fd[_0xb767('0x43')]};return db[_0xb767('0x34')][_0xb767('0x4c')](_0x515cbd)[_0xb767('0x1c')](function(_0x58cb3b){_0x330032[_0xb767('0x4c')]=_0x58cb3b;if(_0x10de7f[_0xb767('0x37')][_0xb767('0x4d')]){_0x49e9fd[_0xb767('0x4e')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x49e9fd);})['then'](function(_0x3ddde7){_0x330032[_0xb767('0x4f')]=_0x3ddde7;return _0x330032;})[_0xb767('0x1c')](respondWithFilteredResult(_0x2c81d,_0x49e9fd))[_0xb767('0x25')](handleError(_0x2c81d,null));};exports['show']=function(_0x475fce,_0x54e146){var _0x42bf28={'raw':![],'where':{'id':_0x475fce[_0xb767('0x50')]['id']}},_0xf49d51={};_0xf49d51['model']=_[_0xb767('0x36')](db[_0xb767('0x34')][_0xb767('0x35')]);_0xf49d51['query']=_['keys'](_0x475fce[_0xb767('0x37')]);_0xf49d51[_0xb767('0x39')]=_[_0xb767('0x3a')](_0xf49d51['model'],_0xf49d51[_0xb767('0x37')]);_0x42bf28[_0xb767('0x3c')]=_[_0xb767('0x3a')](_0xf49d51[_0xb767('0x3b')],qs['fields'](_0x475fce[_0xb767('0x37')]['fields']));_0x42bf28[_0xb767('0x3c')]=_0x42bf28[_0xb767('0x3c')]['length']?_0x42bf28[_0xb767('0x3c')]:_0xf49d51[_0xb767('0x3b')];if(_0x475fce['query']['includeAll']){_0x42bf28[_0xb767('0x4e')]=[{'all':!![]}];}_0x42bf28=_['merge']({},_0x42bf28,_0x475fce[_0xb767('0x4b')]);return db[_0xb767('0x34')][_0xb767('0x51')](_0x42bf28)[_0xb767('0x1c')](handleEntityNotFound(_0x54e146,null))[_0xb767('0x1c')](respondWithResult(_0x54e146,null))[_0xb767('0x25')](handleError(_0x54e146,null));};exports[_0xb767('0x52')]=function(_0x30d417,_0x23b949){return db[_0xb767('0x34')][_0xb767('0x52')](_0x30d417[_0xb767('0x53')],{})['then'](respondWithResult(_0x23b949,0xc9))['catch'](handleError(_0x23b949,null));};exports[_0xb767('0x2e')]=function(_0x356e3c,_0x4aece1){if(_0x356e3c[_0xb767('0x53')]['id']){delete _0x356e3c[_0xb767('0x53')]['id'];}return db[_0xb767('0x34')][_0xb767('0x51')]({'where':{'id':_0x356e3c[_0xb767('0x50')]['id']}})[_0xb767('0x1c')](handleEntityNotFound(_0x4aece1,null))[_0xb767('0x1c')](saveUpdates(_0x356e3c['body'],null))[_0xb767('0x1c')](respondWithResult(_0x4aece1,null))[_0xb767('0x25')](handleError(_0x4aece1,null));};exports[_0xb767('0x2f')]=function(_0xdf8209,_0x152f78){return db[_0xb767('0x34')]['find']({'where':{'id':_0xdf8209[_0xb767('0x50')]['id']}})['then'](handleEntityNotFound(_0x152f78,null))['then'](removeEntity(_0x152f78,null))[_0xb767('0x25')](handleError(_0x152f78,null));};exports[_0xb767('0x54')]=function(_0x2728ad,_0x3ad07d,_0x21a0f7){var _0x3dfa24={};var _0x1f2c1a={};var _0x1e707c;var _0x415272;return db['SugarcrmAccount'][_0xb767('0x55')]({'where':{'id':_0x2728ad['params']['id']}})[_0xb767('0x1c')](handleEntityNotFound(_0x3ad07d,null))['then'](function(_0x3c9862){if(_0x3c9862){_0x1e707c=_0x3c9862;_0x1f2c1a[_0xb767('0x3b')]=_['keys'](db[_0xb767('0x56')][_0xb767('0x35')]);_0x1f2c1a[_0xb767('0x37')]=_[_0xb767('0x36')](_0x2728ad[_0xb767('0x37')]);_0x1f2c1a[_0xb767('0x39')]=_[_0xb767('0x3a')](_0x1f2c1a[_0xb767('0x3b')],_0x1f2c1a[_0xb767('0x37')]);_0x3dfa24[_0xb767('0x3c')]=_[_0xb767('0x3a')](_0x1f2c1a[_0xb767('0x3b')],qs[_0xb767('0x3d')](_0x2728ad[_0xb767('0x37')][_0xb767('0x3d')]));_0x3dfa24[_0xb767('0x3c')]=_0x3dfa24[_0xb767('0x3c')]['length']?_0x3dfa24[_0xb767('0x3c')]:_0x1f2c1a[_0xb767('0x3b')];_0x3dfa24[_0xb767('0x41')]=qs['sort'](_0x2728ad[_0xb767('0x37')]['sort']);_0x3dfa24['where']=qs['filters'](_[_0xb767('0x44')](_0x2728ad['query'],_0x1f2c1a[_0xb767('0x39')]));if(_0x2728ad[_0xb767('0x37')][_0xb767('0x49')]){_0x3dfa24['where']=_[_0xb767('0x48')](_0x3dfa24[_0xb767('0x43')],{'$or':_['map'](_0x3dfa24['attributes'],function(_0x14009a){var _0x6b58ae={};_0x6b58ae[_0x14009a]={'$like':'%'+_0x2728ad[_0xb767('0x37')][_0xb767('0x49')]+'%'};return _0x6b58ae;})});}_0x3dfa24=_[_0xb767('0x48')]({},_0x3dfa24,_0x2728ad[_0xb767('0x4b')]);return _0x1e707c[_0xb767('0x54')](_0x3dfa24);}})['then'](function(_0x3ba2c1){if(_0x3ba2c1){_0x415272=_0x3ba2c1['length'];if(!_0x2728ad[_0xb767('0x37')]['hasOwnProperty'](_0xb767('0x40'))){_0x3dfa24[_0xb767('0x2a')]=qs['limit'](_0x2728ad[_0xb767('0x37')][_0xb767('0x2a')]);_0x3dfa24['offset']=qs[_0xb767('0x29')](_0x2728ad[_0xb767('0x37')]['offset']);}return _0x1e707c[_0xb767('0x54')](_0x3dfa24);}})[_0xb767('0x1c')](function(_0x2188e2){if(_0x2188e2){return _0x2188e2?{'count':_0x415272,'rows':_0x2188e2}:null;}})[_0xb767('0x1c')](respondWithResult(_0x3ad07d,null))[_0xb767('0x25')](handleError(_0x3ad07d,null));};exports[_0xb767('0x57')]=function(_0x2ce4ba,_0x41025a,_0x787eb9){if(_0x2ce4ba[_0xb767('0x53')]['id']){delete _0x2ce4ba[_0xb767('0x53')]['id'];}return db[_0xb767('0x34')]['findOne']({'where':{'id':_0x2ce4ba[_0xb767('0x50')]['id']}})[_0xb767('0x1c')](handleEntityNotFound(_0x41025a,null))[_0xb767('0x1c')](function(_0x236dd2){if(_0x236dd2){_0x2ce4ba[_0xb767('0x53')][_0xb767('0x58')]=_0x236dd2['id'];_0x2ce4ba[_0xb767('0x53')][_0xb767('0x59')]=integrations['getSubjects'](_0x2ce4ba[_0xb767('0x53')][_0xb767('0x5a')],_0x2ce4ba[_0xb767('0x53')]['type']);_0x2ce4ba[_0xb767('0x53')][_0xb767('0x5b')]=integrations[_0xb767('0x5c')](_0x2ce4ba['body'][_0xb767('0x5a')],_0x2ce4ba[_0xb767('0x53')][_0xb767('0x5d')]);return db[_0xb767('0x56')][_0xb767('0x52')](_0x2ce4ba[_0xb767('0x53')],{'include':[{'model':db[_0xb767('0x5e')],'as':_0xb767('0x59')},{'model':db[_0xb767('0x5e')],'as':'Descriptions'}]});}return null;})[_0xb767('0x1c')](respondWithResult(_0x41025a,null))[_0xb767('0x25')](handleError(_0x41025a,null));};exports[_0xb767('0x5f')]=function(_0x435680,_0x55d001,_0x1c7d9d){var _0x1c83d8;return db[_0xb767('0x34')][_0xb767('0x55')]({'where':{'id':_0x435680['params']['id']},'attributes':['id',_0xb767('0x60'),_0xb767('0x61'),_0xb767('0x62')]})[_0xb767('0x1c')](handleEntityNotFound(_0x55d001,null))[_0xb767('0x1c')](function(_0x18497a){if(_0x18497a){_0x1c83d8=_0x18497a[_0xb767('0x62')];return rp({'method':_0xb767('0x63'),'uri':util[_0xb767('0x64')](_0xb767('0x65'),_0x1c83d8,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xb767('0x66'),'input_type':_0xb767('0x67'),'response_type':_0xb767('0x67'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x18497a[_0xb767('0x60')],'password':_0x18497a[_0xb767('0x61')],'encryption':'PLAIN'},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xb767('0x1c')](function(_0x1bc9f6){if(_0x1bc9f6){return rp({'method':'POST','uri':util['format'](_0xb767('0x65'),_0x1c83d8,_0xb767('0x68')),'json':!![],'form':{'method':_0xb767('0x69'),'input_type':_0xb767('0x67'),'response_type':'JSON','rest_data':JSON[_0xb767('0x6a')]({'session':_0x1bc9f6['id'],'module_name':'Calls'})}});}})['then'](function(_0x305f03){if(_0x305f03){var _0x3a1a4d=_[_0xb767('0x6b')](_0x305f03[_0xb767('0x6c')]);return{'count':_0x3a1a4d[_0xb767('0x3e')],'rows':_[_0xb767('0x4a')](_0x3a1a4d,function(_0x2eab6b){return{'id':_0x2eab6b[_0xb767('0x31')],'name':_0x2eab6b['label'],'custom':_['endsWith'](_0x2eab6b['name'],'_c')?!![]:![],'options':_0x2eab6b['options']?_[_0xb767('0x4a')](_[_0xb767('0x6b')](_0x2eab6b['options']),function(_0x1121d0){return{'name':_0x1121d0[_0xb767('0x6d')],'value':_0x1121d0[_0xb767('0x31')]};}):[]};})};}})['then'](respondWithResult(_0x55d001,null))['catch'](function(_0x46c874){var _0x409813=_0x435680[_0xb767('0x37')][_0xb767('0x6e')]?0x1f4:_0x46c874[_0xb767('0x6f')]||0x1f4;logger[_0xb767('0x21')](_0xb767('0x70'),_0xb767('0x5f'),_0x409813,JSON[_0xb767('0x6a')](_0x46c874));delete _0x46c874[_0xb767('0x31')];if(_0x409813===0x191){_0x409813=0x190;}_0x55d001[_0xb767('0x28')](_0x409813)[_0xb767('0x32')](_0x435680[_0xb767('0x37')][_0xb767('0x6e')]?{'message':_0xb767('0x71'),'statusCode':_0x46c874[_0xb767('0x6f')]}:_0x46c874);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee6f=['SugarcrmAccount','int_sugarcrm_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./intSugarcrmAccount.attributes','define'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0xee6f,0x14c));var _0xfee6=function(_0x16270b,_0x4ff120){_0x16270b=_0x16270b-0x0;var _0x2cd122=_0xee6f[_0x16270b];return _0x2cd122;};'use strict';var _=require(_0xfee6('0x0'));var util=require(_0xfee6('0x1'));var logger=require(_0xfee6('0x2'))(_0xfee6('0x3'));var moment=require(_0xfee6('0x4'));var BPromise=require(_0xfee6('0x5'));var rp=require(_0xfee6('0x6'));var attributes=require(_0xfee6('0x7'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x471c04,_0x95d0eb){return _0x471c04[_0xfee6('0x8')](_0xfee6('0x9'),attributes,{'tableName':_0xfee6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf2a1=['int_sugarcrm_accounts','lodash','util','../../config/logger','api','moment','bluebird','../../components/integrations/configuration','exports','SugarcrmAccount'];(function(_0x2bcc3b,_0x2f6cb5){var _0x38f336=function(_0x1e8d3d){while(--_0x1e8d3d){_0x2bcc3b['push'](_0x2bcc3b['shift']());}};_0x38f336(++_0x2f6cb5);}(_0xf2a1,0x137));var _0x1f2a=function(_0x790196,_0x15b94f){_0x790196=_0x790196-0x0;var _0x593eca=_0xf2a1[_0x790196];return _0x593eca;};'use strict';var _=require(_0x1f2a('0x0'));var util=require(_0x1f2a('0x1'));var logger=require(_0x1f2a('0x2'))(_0x1f2a('0x3'));var moment=require(_0x1f2a('0x4'));var BPromise=require(_0x1f2a('0x5'));var rp=require('request-promise');var attributes=require('./intSugarcrmAccount.attributes');var integrations=require(_0x1f2a('0x6'));module[_0x1f2a('0x7')]=function(_0x36c590,_0x4ae378){return _0x36c590['define'](_0x1f2a('0x8'),attributes,{'tableName':_0x1f2a('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe53d=['util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetSugarcrmAccount','SugarcrmAccount','options','raw','attributes','limit','map','include','model','where','ShowSugarcrmAccount','catch','lodash'];(function(_0x4fa438,_0x1f15a7){var _0x4e3958=function(_0x28f510){while(--_0x28f510){_0x4fa438['push'](_0x4fa438['shift']());}};_0x4e3958(++_0x1f15a7);}(_0xe53d,0x1cd));var _0xde53=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0xe53d[_0x40220a];return _0x3903cc;};'use strict';var _=require(_0xde53('0x0'));var util=require(_0xde53('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xde53('0x2'));var fs=require('fs');var db=require(_0xde53('0x3'))['db'];var utils=require(_0xde53('0x4'));var logger=require(_0xde53('0x5'))(_0xde53('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xde53('0x7')][_0xde53('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3aae84,_0xbc7c69,_0x127355){return new BPromise(function(_0x1e6d34,_0x131ce7){return client[_0xde53('0x9')](_0x3aae84,_0x127355)[_0xde53('0xa')](function(_0x1e6639){logger[_0xde53('0xb')](_0xde53('0xc'),_0xbc7c69,_0xde53('0xd'));logger[_0xde53('0xe')](_0xde53('0xf'),_0xbc7c69,_0xde53('0xd'),JSON[_0xde53('0x10')](_0x1e6639));if(_0x1e6639[_0xde53('0x11')]){if(_0x1e6639[_0xde53('0x11')][_0xde53('0x12')]===0x1f4){logger['error'](_0xde53('0xc'),_0xbc7c69,_0x1e6639[_0xde53('0x11')]['message']);return _0x131ce7(_0x1e6639[_0xde53('0x11')][_0xde53('0x13')]);}logger[_0xde53('0x11')](_0xde53('0xc'),_0xbc7c69,_0x1e6639[_0xde53('0x11')][_0xde53('0x13')]);return _0x1e6d34(_0x1e6639[_0xde53('0x11')][_0xde53('0x13')]);}else{logger[_0xde53('0xb')](_0xde53('0xc'),_0xbc7c69,_0xde53('0xd'));_0x1e6d34(_0x1e6639[_0xde53('0x14')]['message']);}})['catch'](function(_0x21fc57){logger[_0xde53('0x11')](_0xde53('0xc'),_0xbc7c69,_0x21fc57);_0x131ce7(_0x21fc57);});});}exports[_0xde53('0x15')]=function(_0x260618){var _0x4d03ad=this;return new Promise(function(_0x3e5b7e,_0x169abb){return db[_0xde53('0x16')]['findAll']({'raw':_0x260618[_0xde53('0x17')]?_0x260618[_0xde53('0x17')][_0xde53('0x18')]===undefined?!![]:![]:!![],'where':_0x260618[_0xde53('0x17')]?_0x260618['options']['where']||null:null,'attributes':_0x260618[_0xde53('0x17')]?_0x260618[_0xde53('0x17')][_0xde53('0x19')]||null:null,'limit':_0x260618[_0xde53('0x17')]?_0x260618[_0xde53('0x17')][_0xde53('0x1a')]||null:null,'include':_0x260618[_0xde53('0x17')]?_0x260618[_0xde53('0x17')]['include']?_[_0xde53('0x1b')](_0x260618[_0xde53('0x17')][_0xde53('0x1c')],function(_0x3d4a1a){return{'model':db[_0x3d4a1a[_0xde53('0x1d')]],'as':_0x3d4a1a['as'],'attributes':_0x3d4a1a[_0xde53('0x19')],'include':_0x3d4a1a['include']?_['map'](_0x3d4a1a[_0xde53('0x1c')],function(_0x331486){return{'model':db[_0x331486[_0xde53('0x1d')]],'as':_0x331486['as'],'attributes':_0x331486[_0xde53('0x19')],'include':_0x331486[_0xde53('0x1c')]?_[_0xde53('0x1b')](_0x331486[_0xde53('0x1c')],function(_0x25a40c){return{'model':db[_0x25a40c['model']],'as':_0x25a40c['as'],'attributes':_0x25a40c[_0xde53('0x19')]};}):[]};}):[]};}):[]:[]})[_0xde53('0xa')](function(_0x54cbae){logger[_0xde53('0xb')](_0xde53('0x15'),_0x260618);logger[_0xde53('0xe')](_0xde53('0x15'),_0x260618,JSON[_0xde53('0x10')](_0x54cbae));_0x3e5b7e(_0x54cbae);})['catch'](function(_0x4c18ad){logger[_0xde53('0x11')]('GetSugarcrmAccount',_0x4c18ad['message'],_0x260618);_0x169abb(_0x4d03ad[_0xde53('0x11')](0x1f4,_0x4c18ad['message']));});});};exports['ShowSugarcrmAccount']=function(_0xbe13e8){var _0x234fa5=this;return new Promise(function(_0x108676,_0x180b69){return db[_0xde53('0x16')]['find']({'raw':_0xbe13e8['options']?_0xbe13e8[_0xde53('0x17')][_0xde53('0x18')]===undefined?!![]:![]:!![],'where':_0xbe13e8['options']?_0xbe13e8[_0xde53('0x17')][_0xde53('0x1e')]||null:null,'attributes':_0xbe13e8[_0xde53('0x17')]?_0xbe13e8[_0xde53('0x17')]['attributes']||null:null,'include':_0xbe13e8[_0xde53('0x17')]?_0xbe13e8[_0xde53('0x17')]['include']?_[_0xde53('0x1b')](_0xbe13e8[_0xde53('0x17')][_0xde53('0x1c')],function(_0x5c00e2){return{'model':db[_0x5c00e2[_0xde53('0x1d')]],'as':_0x5c00e2['as'],'attributes':_0x5c00e2[_0xde53('0x19')],'include':_0x5c00e2[_0xde53('0x1c')]?_[_0xde53('0x1b')](_0x5c00e2[_0xde53('0x1c')],function(_0x1a48cc){return{'model':db[_0x1a48cc['model']],'as':_0x1a48cc['as'],'attributes':_0x1a48cc[_0xde53('0x19')],'include':_0x1a48cc[_0xde53('0x1c')]?_[_0xde53('0x1b')](_0x1a48cc[_0xde53('0x1c')],function(_0x5cbdb3){return{'model':db[_0x5cbdb3[_0xde53('0x1d')]],'as':_0x5cbdb3['as'],'attributes':_0x5cbdb3[_0xde53('0x19')]};}):[]};}):[]};}):[]:[]})[_0xde53('0xa')](function(_0x58fc8a){logger[_0xde53('0xb')](_0xde53('0x1f'),_0xbe13e8);logger['debug'](_0xde53('0x1f'),_0xbe13e8,JSON['stringify'](_0x58fc8a));_0x108676(_0x58fc8a);})[_0xde53('0x20')](function(_0x5e3eb5){logger[_0xde53('0x11')]('ShowSugarcrmAccount',_0x5e3eb5[_0xde53('0x13')],_0xbe13e8);_0x180b69(_0x234fa5[_0xde53('0x11')](0x1f4,_0x5e3eb5[_0xde53('0x13')]));});});};
\ No newline at end of file
+var _0x4444=['raw','limit','include','map','model','attributes','then','ShowSugarcrmAccount','find','where','lodash','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','GetSugarcrmAccount','SugarcrmAccount','options'];(function(_0x5ab5bd,_0x12c446){var _0x3dddd8=function(_0x5ea7d0){while(--_0x5ea7d0){_0x5ab5bd['push'](_0x5ab5bd['shift']());}};_0x3dddd8(++_0x12c446);}(_0x4444,0x17e));var _0x4444=function(_0x23c2c3,_0x27ecc8){_0x23c2c3=_0x23c2c3-0x0;var _0x41e09f=_0x4444[_0x23c2c3];return _0x41e09f;};'use strict';var _=require(_0x4444('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x4444('0x1'));var fs=require('fs');var Redis=require(_0x4444('0x2'));var db=require(_0x4444('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x4444('0x4'))(_0x4444('0x5'));var config=require(_0x4444('0x6'));var jayson=require(_0x4444('0x7'));var client=jayson[_0x4444('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x337cc7,_0x49948c,_0x442f55){return new BPromise(function(_0x4ff5a7,_0x1426fc){return client['request'](_0x337cc7,_0x442f55)['then'](function(_0x31e179){logger['info'](_0x4444('0x9'),_0x49948c,_0x4444('0xa'));logger[_0x4444('0xb')]('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x49948c,_0x4444('0xa'),JSON[_0x4444('0xc')](_0x31e179));if(_0x31e179[_0x4444('0xd')]){if(_0x31e179[_0x4444('0xd')]['code']===0x1f4){logger[_0x4444('0xd')]('SugarcrmAccount,\x20%s,\x20%s',_0x49948c,_0x31e179[_0x4444('0xd')][_0x4444('0xe')]);return _0x1426fc(_0x31e179[_0x4444('0xd')][_0x4444('0xe')]);}logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x49948c,_0x31e179[_0x4444('0xd')][_0x4444('0xe')]);return _0x4ff5a7(_0x31e179['error']['message']);}else{logger[_0x4444('0xf')](_0x4444('0x9'),_0x49948c,_0x4444('0xa'));_0x4ff5a7(_0x31e179[_0x4444('0x10')]['message']);}})[_0x4444('0x11')](function(_0x38c3bf){logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x49948c,_0x38c3bf);_0x1426fc(_0x38c3bf);});});}exports[_0x4444('0x12')]=function(_0x107909){var _0x59e2d8=this;return new Promise(function(_0x597a44,_0x3a8ecd){return db[_0x4444('0x13')]['findAll']({'raw':_0x107909[_0x4444('0x14')]?_0x107909['options'][_0x4444('0x15')]===undefined?!![]:![]:!![],'where':_0x107909[_0x4444('0x14')]?_0x107909['options']['where']||null:null,'attributes':_0x107909[_0x4444('0x14')]?_0x107909['options']['attributes']||null:null,'limit':_0x107909['options']?_0x107909[_0x4444('0x14')][_0x4444('0x16')]||null:null,'include':_0x107909[_0x4444('0x14')]?_0x107909['options'][_0x4444('0x17')]?_[_0x4444('0x18')](_0x107909[_0x4444('0x14')][_0x4444('0x17')],function(_0x1034cc){return{'model':db[_0x1034cc['model']],'as':_0x1034cc['as'],'attributes':_0x1034cc['attributes'],'include':_0x1034cc[_0x4444('0x17')]?_[_0x4444('0x18')](_0x1034cc[_0x4444('0x17')],function(_0x32a1d1){return{'model':db[_0x32a1d1[_0x4444('0x19')]],'as':_0x32a1d1['as'],'attributes':_0x32a1d1[_0x4444('0x1a')],'include':_0x32a1d1[_0x4444('0x17')]?_[_0x4444('0x18')](_0x32a1d1[_0x4444('0x17')],function(_0x509840){return{'model':db[_0x509840['model']],'as':_0x509840['as'],'attributes':_0x509840[_0x4444('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4444('0x1b')](function(_0x5b0db9){logger['info'](_0x4444('0x12'),_0x107909);logger[_0x4444('0xb')](_0x4444('0x12'),_0x107909,JSON[_0x4444('0xc')](_0x5b0db9));_0x597a44(_0x5b0db9);})[_0x4444('0x11')](function(_0x2bb1f6){logger[_0x4444('0xd')](_0x4444('0x12'),_0x2bb1f6[_0x4444('0xe')],_0x107909);_0x3a8ecd(_0x59e2d8[_0x4444('0xd')](0x1f4,_0x2bb1f6[_0x4444('0xe')]));});});};exports[_0x4444('0x1c')]=function(_0x94f69c){var _0xcffa52=this;return new Promise(function(_0x1c0fc1,_0x19ac5c){return db[_0x4444('0x13')][_0x4444('0x1d')]({'raw':_0x94f69c[_0x4444('0x14')]?_0x94f69c[_0x4444('0x14')][_0x4444('0x15')]===undefined?!![]:![]:!![],'where':_0x94f69c[_0x4444('0x14')]?_0x94f69c[_0x4444('0x14')][_0x4444('0x1e')]||null:null,'attributes':_0x94f69c[_0x4444('0x14')]?_0x94f69c[_0x4444('0x14')][_0x4444('0x1a')]||null:null,'include':_0x94f69c[_0x4444('0x14')]?_0x94f69c[_0x4444('0x14')]['include']?_['map'](_0x94f69c[_0x4444('0x14')][_0x4444('0x17')],function(_0x21a889){return{'model':db[_0x21a889[_0x4444('0x19')]],'as':_0x21a889['as'],'attributes':_0x21a889[_0x4444('0x1a')],'include':_0x21a889['include']?_[_0x4444('0x18')](_0x21a889[_0x4444('0x17')],function(_0x52da80){return{'model':db[_0x52da80['model']],'as':_0x52da80['as'],'attributes':_0x52da80[_0x4444('0x1a')],'include':_0x52da80[_0x4444('0x17')]?_[_0x4444('0x18')](_0x52da80[_0x4444('0x17')],function(_0x2230a4){return{'model':db[_0x2230a4[_0x4444('0x19')]],'as':_0x2230a4['as'],'attributes':_0x2230a4[_0x4444('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4444('0x1b')](function(_0x5d562b){logger[_0x4444('0xf')]('ShowSugarcrmAccount',_0x94f69c);logger[_0x4444('0xb')](_0x4444('0x1c'),_0x94f69c,JSON['stringify'](_0x5d562b));_0x1c0fc1(_0x5d562b);})['catch'](function(_0x23ed2d){logger['error'](_0x4444('0x1c'),_0x23ed2d[_0x4444('0xe')],_0x94f69c);_0x19ac5c(_0xcffa52[_0x4444('0xd')](0x1f4,_0x23ed2d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16bf=['express','Router','../../components/auth/service','../../config/environment','./intSugarcrmConfiguration.controller','get','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','/:id','update','delete','destroy','multer','util','path','connect-timeout'];(function(_0x4a9bdd,_0x5098f5){var _0x1ba3a4=function(_0x3b157f){while(--_0x3b157f){_0x4a9bdd['push'](_0x4a9bdd['shift']());}};_0x1ba3a4(++_0x5098f5);}(_0x16bf,0x1be));var _0xf16b=function(_0x3aece8,_0x3e906c){_0x3aece8=_0x3aece8-0x0;var _0x1617ec=_0x16bf[_0x3aece8];return _0x1617ec;};'use strict';var multer=require(_0xf16b('0x0'));var util=require(_0xf16b('0x1'));var path=require(_0xf16b('0x2'));var timeout=require(_0xf16b('0x3'));var express=require(_0xf16b('0x4'));var router=express[_0xf16b('0x5')]();var auth=require(_0xf16b('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xf16b('0x7'));var controller=require(_0xf16b('0x8'));router[_0xf16b('0x9')]('/',auth[_0xf16b('0xa')](),controller['index']);router[_0xf16b('0x9')]('/:id',auth[_0xf16b('0xa')](),controller[_0xf16b('0xb')]);router[_0xf16b('0x9')](_0xf16b('0xc'),auth[_0xf16b('0xa')](),controller[_0xf16b('0xd')]);router['get'](_0xf16b('0xe'),auth[_0xf16b('0xa')](),controller[_0xf16b('0xf')]);router[_0xf16b('0x9')](_0xf16b('0x10'),auth[_0xf16b('0xa')](),controller[_0xf16b('0x11')]);router[_0xf16b('0x12')]('/',auth[_0xf16b('0xa')](),controller[_0xf16b('0x13')]);router[_0xf16b('0x14')](_0xf16b('0x15'),auth[_0xf16b('0xa')](),controller[_0xf16b('0x16')]);router[_0xf16b('0x17')](_0xf16b('0x15'),auth[_0xf16b('0xa')](),controller[_0xf16b('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0x4556=['delete','exports','multer','util','path','./intSugarcrmConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put'];(function(_0x5cd82a,_0x4272ee){var _0x343f07=function(_0x345002){while(--_0x345002){_0x5cd82a['push'](_0x5cd82a['shift']());}};_0x343f07(++_0x4272ee);}(_0x4556,0x156));var _0x6455=function(_0x298030,_0x550a7d){_0x298030=_0x298030-0x0;var _0x2b7f5b=_0x4556[_0x298030];return _0x2b7f5b;};'use strict';var multer=require(_0x6455('0x0'));var util=require(_0x6455('0x1'));var path=require(_0x6455('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x6455('0x3'));router[_0x6455('0x4')]('/',auth[_0x6455('0x5')](),controller[_0x6455('0x6')]);router[_0x6455('0x4')](_0x6455('0x7'),auth[_0x6455('0x5')](),controller[_0x6455('0x8')]);router[_0x6455('0x4')](_0x6455('0x9'),auth[_0x6455('0x5')](),controller[_0x6455('0xa')]);router[_0x6455('0x4')](_0x6455('0xb'),auth[_0x6455('0x5')](),controller[_0x6455('0xc')]);router[_0x6455('0x4')](_0x6455('0xd'),auth[_0x6455('0x5')](),controller[_0x6455('0xe')]);router[_0x6455('0xf')]('/',auth[_0x6455('0x5')](),controller[_0x6455('0x10')]);router[_0x6455('0x11')](_0x6455('0x7'),auth[_0x6455('0x5')](),controller['update']);router[_0x6455('0x12')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x6455('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ebc=['STRING','sequelize'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x1ebc,0x1bd));var _0xc1eb=function(_0x19f2cc,_0x447ccc){_0x19f2cc=_0x19f2cc-0x0;var _0x310c0f=_0x1ebc[_0x19f2cc];return _0x310c0f;};'use strict';var Sequelize=require(_0xc1eb('0x0'));module['exports']={'name':{'type':Sequelize[_0xc1eb('0x1')]},'description':{'type':Sequelize[_0xc1eb('0x1')]}};
\ No newline at end of file
+var _0x8162=['sequelize','STRING'];(function(_0x28c939,_0x110e29){var _0x527fe9=function(_0x1df2a6){while(--_0x1df2a6){_0x28c939['push'](_0x28c939['shift']());}};_0x527fe9(++_0x110e29);}(_0x8162,0xd2));var _0x2816=function(_0x2727aa,_0x5c0361){_0x2727aa=_0x2727aa-0x0;var _0x340b19=_0x8162[_0x2727aa];return _0x340b19;};'use strict';var Sequelize=require(_0x2816('0x0'));module['exports']={'name':{'type':Sequelize[_0x2816('0x1')]},'description':{'type':Sequelize[_0x2816('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0269=['then','destroy','sendStatus','stack','name','index','SugarcrmConfiguration','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','findAll','rows','show','params','includeAll','include','options','find','create','body','update','getFields','findOne','SugarcrmField','hasOwnProperty','getSubjects','getDescriptions','html-pdf','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','jayson/promise','http','request','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','count','offset','limit','Content-Range','apply','reject','save'];(function(_0x144b69,_0x5b10c1){var _0x4babb9=function(_0x5d9401){while(--_0x5d9401){_0x144b69['push'](_0x144b69['shift']());}};_0x4babb9(++_0x5b10c1);}(_0x0269,0x135));var _0x9026=function(_0x2933ab,_0x137cf8){_0x2933ab=_0x2933ab-0x0;var _0x46410f=_0x0269[_0x2933ab];return _0x46410f;};'use strict';var pdf=require(_0x9026('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x9026('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9026('0x2'));var rp=require('request-promise');var moment=require(_0x9026('0x3'));var BPromise=require(_0x9026('0x4'));var Mustache=require(_0x9026('0x5'));var util=require(_0x9026('0x6'));var path=require('path');var sox=require(_0x9026('0x7'));var csv=require(_0x9026('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x9026('0x9'));var crypto=require(_0x9026('0xa'));var jsforce=require(_0x9026('0xb'));var deskjs=require(_0x9026('0xc'));var toCsv=require('to-csv');var querystring=require(_0x9026('0xd'));var Papa=require(_0x9026('0xe'));var qs=require(_0x9026('0xf'));var logger=require('../../config/logger')(_0x9026('0x10'));var utils=require(_0x9026('0x11'));var config=require(_0x9026('0x12'));var db=require('../../mysqldb')['db'];var jayson=require(_0x9026('0x13'));var client=jayson['client'][_0x9026('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x389f69,_0x4f4ddd,_0x2148f0,_0x40f526){return new BPromise(function(_0x40b5dd,_0x363892){var _0x51aba6=_0x40f526||client;return _0x51aba6[_0x9026('0x15')](_0x389f69,_0x2148f0)['then'](function(_0x385afc){logger[_0x9026('0x16')](_0x9026('0x17'),_0x4f4ddd,_0x9026('0x18'));logger[_0x9026('0x19')](_0x9026('0x1a'),_0x4f4ddd,_0x9026('0x18'),JSON[_0x9026('0x1b')](_0x385afc));if(_0x385afc['error']){if(_0x385afc[_0x9026('0x1c')][_0x9026('0x1d')]===0x1f4){logger['error'](_0x9026('0x17'),_0x4f4ddd,_0x385afc[_0x9026('0x1c')][_0x9026('0x1e')]);return _0x363892(_0x385afc[_0x9026('0x1c')][_0x9026('0x1e')]);}logger[_0x9026('0x1c')](_0x9026('0x17'),_0x4f4ddd,_0x385afc[_0x9026('0x1c')]['message']);return _0x40b5dd(_0x385afc[_0x9026('0x1c')]['message']);}else{logger[_0x9026('0x16')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x4f4ddd,_0x9026('0x18'));_0x40b5dd(_0x385afc[_0x9026('0x1f')][_0x9026('0x1e')]);}})[_0x9026('0x20')](function(_0xdce1d6){logger[_0x9026('0x1c')](_0x9026('0x17'),_0x4f4ddd,_0xdce1d6);_0x363892(_0xdce1d6);});});}function respondWithStatusCode(_0x39f515,_0x12e0b3){_0x12e0b3=_0x12e0b3||0xcc;return function(_0x4d01d4){if(_0x4d01d4){return _0x39f515['sendStatus'](_0x12e0b3);}return _0x39f515[_0x9026('0x21')](_0x12e0b3)[_0x9026('0x22')]();};}function respondWithResult(_0x2968fb,_0x82a8e0){_0x82a8e0=_0x82a8e0||0xc8;return function(_0x18279b){if(_0x18279b){return _0x2968fb[_0x9026('0x21')](_0x82a8e0)[_0x9026('0x23')](_0x18279b);}};}function respondWithFilteredResult(_0x3a1dbb,_0x775596){return function(_0x4293df){if(_0x4293df){var _0xde5c83=_0x4293df[_0x9026('0x24')],_0x106de3=_0x775596[_0x9026('0x25')],_0x38fd9c=_0x775596[_0x9026('0x25')]+_0x775596[_0x9026('0x26')],_0x2ace13;if(_0x38fd9c>=_0xde5c83){_0x38fd9c=_0xde5c83;_0x2ace13=0xc8;}else{_0x2ace13=0xce;}_0x3a1dbb[_0x9026('0x21')](_0x2ace13);return _0x3a1dbb['set'](_0x9026('0x27'),_0x106de3+'-'+_0x38fd9c+'/'+_0xde5c83)[_0x9026('0x23')](_0x4293df);}return null;};}function patchUpdates(_0x30c988){return function(_0x103ce7){try{jsonpatch[_0x9026('0x28')](_0x103ce7,_0x30c988,!![]);}catch(_0x3cead8){return BPromise[_0x9026('0x29')](_0x3cead8);}return _0x103ce7[_0x9026('0x2a')]();};}function saveUpdates(_0x2b2f4c,_0x1a9908){return function(_0x24fa55){if(_0x24fa55){return _0x24fa55['update'](_0x2b2f4c)[_0x9026('0x2b')](function(_0x36d6b1){return _0x36d6b1;});}return null;};}function removeEntity(_0x3b5bfd,_0x38c383){return function(_0x45a4ea){if(_0x45a4ea){return _0x45a4ea[_0x9026('0x2c')]()[_0x9026('0x2b')](function(){_0x3b5bfd['status'](0xcc)[_0x9026('0x22')]();});}};}function handleEntityNotFound(_0x5d3839,_0x102883){return function(_0x473d93){if(!_0x473d93){_0x5d3839[_0x9026('0x2d')](0x194);}return _0x473d93;};}function handleError(_0x1c6366,_0x1f48bb){_0x1f48bb=_0x1f48bb||0x1f4;return function(_0x316d7b){logger['error'](_0x316d7b[_0x9026('0x2e')]);if(_0x316d7b[_0x9026('0x2f')]){delete _0x316d7b[_0x9026('0x2f')];}_0x1c6366[_0x9026('0x21')](_0x1f48bb)['send'](_0x316d7b);};}exports[_0x9026('0x30')]=function(_0x1bc7fc,_0x49680d){var _0x45e924={},_0x258301={},_0x102bfd={'count':0x0,'rows':[]};var _0xe63aad=db[_0x9026('0x31')][_0x9026('0x32')];_0x258301[_0x9026('0x33')]=_[_0x9026('0x34')](_0xe63aad);var _0x4e3e68={'dateStart':_0x1bc7fc[_0x9026('0x35')][_0x9026('0x36')],'dateEnd':_0x1bc7fc['query'][_0x9026('0x37')]};delete _0x1bc7fc[_0x9026('0x35')][_0x9026('0x36')];delete _0x1bc7fc[_0x9026('0x35')][_0x9026('0x37')];_0x258301[_0x9026('0x35')]=_[_0x9026('0x34')](_0x1bc7fc[_0x9026('0x35')]);_0x258301['filters']=_[_0x9026('0x38')](_0x258301[_0x9026('0x33')],_0x258301[_0x9026('0x35')]);_0x45e924[_0x9026('0x39')]=_[_0x9026('0x38')](_0x258301[_0x9026('0x33')],qs[_0x9026('0x3a')](_0x1bc7fc['query'][_0x9026('0x3a')]));_0x45e924['attributes']=_0x45e924[_0x9026('0x39')][_0x9026('0x3b')]?_0x45e924[_0x9026('0x39')]:_0x258301[_0x9026('0x33')];if(!_0x1bc7fc['query']['hasOwnProperty'](_0x9026('0x3c'))){_0x45e924[_0x9026('0x26')]=qs['limit'](_0x1bc7fc['query']['limit']);_0x45e924[_0x9026('0x25')]=qs[_0x9026('0x25')](_0x1bc7fc['query'][_0x9026('0x25')]);}_0x45e924[_0x9026('0x3d')]=qs[_0x9026('0x3e')](_0x1bc7fc[_0x9026('0x35')][_0x9026('0x3e')]);_0x45e924[_0x9026('0x3f')]=qs[_0x9026('0x40')](_[_0x9026('0x41')](_0x1bc7fc['query'],_0x258301[_0x9026('0x40')]));if(_0x4e3e68[_0x9026('0x36')]){if(_0x4e3e68['dateEnd']){_0x4e3e68['dateEnd']=moment(_0x4e3e68['dateEnd'])[_0x9026('0x42')](0x1,_0x9026('0x43'));}else{_0x4e3e68[_0x9026('0x37')]=moment(_0x4e3e68[_0x9026('0x36')])[_0x9026('0x42')](0x1,'day');}_[_0x9026('0x44')](_0x45e924['where'],{'createdAt':{'$gte':_0x4e3e68[_0x9026('0x36')],'$lte':_0x4e3e68[_0x9026('0x37')]}});}if(_0x1bc7fc[_0x9026('0x35')][_0x9026('0x45')]){_0x45e924['where']=_['merge'](_0x45e924[_0x9026('0x3f')],{'$or':_[_0x9026('0x46')](_0x45e924[_0x9026('0x39')],function(_0x3f10a6){var _0xfba7f4={};_0xfba7f4[_0x3f10a6]={'$like':'%'+_0x1bc7fc[_0x9026('0x35')]['filter']+'%'};return _0xfba7f4;})});}_0x45e924=_[_0x9026('0x44')]({},_0x45e924,_0x1bc7fc['options']);var _0x324fd9={'where':_0x45e924[_0x9026('0x3f')]};return db['SugarcrmConfiguration'][_0x9026('0x24')](_0x324fd9)['then'](function(_0x45b41d){_0x102bfd['count']=_0x45b41d;if(_0x1bc7fc[_0x9026('0x35')]['includeAll']){_0x45e924['include']=[{'all':!![]}];}return db[_0x9026('0x31')][_0x9026('0x47')](_0x45e924);})[_0x9026('0x2b')](function(_0x4d9051){_0x102bfd[_0x9026('0x48')]=_0x4d9051;return _0x102bfd;})[_0x9026('0x2b')](respondWithFilteredResult(_0x49680d,_0x45e924))[_0x9026('0x20')](handleError(_0x49680d,null));};exports[_0x9026('0x49')]=function(_0x3636c7,_0x54774c){var _0x22591b={'raw':![],'where':{'id':_0x3636c7[_0x9026('0x4a')]['id']}},_0x23d0e9={};_0x23d0e9[_0x9026('0x33')]=_[_0x9026('0x34')](db[_0x9026('0x31')]['rawAttributes']);_0x23d0e9[_0x9026('0x35')]=_['keys'](_0x3636c7[_0x9026('0x35')]);_0x23d0e9[_0x9026('0x40')]=_['intersection'](_0x23d0e9[_0x9026('0x33')],_0x23d0e9[_0x9026('0x35')]);_0x22591b[_0x9026('0x39')]=_[_0x9026('0x38')](_0x23d0e9[_0x9026('0x33')],qs[_0x9026('0x3a')](_0x3636c7[_0x9026('0x35')][_0x9026('0x3a')]));_0x22591b[_0x9026('0x39')]=_0x22591b[_0x9026('0x39')]['length']?_0x22591b[_0x9026('0x39')]:_0x23d0e9[_0x9026('0x33')];if(_0x3636c7['query'][_0x9026('0x4b')]){_0x22591b[_0x9026('0x4c')]=[{'all':!![]}];}_0x22591b=_[_0x9026('0x44')]({},_0x22591b,_0x3636c7[_0x9026('0x4d')]);return db[_0x9026('0x31')][_0x9026('0x4e')](_0x22591b)['then'](handleEntityNotFound(_0x54774c,null))[_0x9026('0x2b')](respondWithResult(_0x54774c,null))['catch'](handleError(_0x54774c,null));};exports[_0x9026('0x4f')]=function(_0x4212df,_0x40e351){return db['SugarcrmConfiguration']['create'](_0x4212df[_0x9026('0x50')],{})[_0x9026('0x2b')](respondWithResult(_0x40e351,0xc9))[_0x9026('0x20')](handleError(_0x40e351,null));};exports[_0x9026('0x51')]=function(_0x3a4a30,_0x401c11){if(_0x3a4a30[_0x9026('0x50')]['id']){delete _0x3a4a30[_0x9026('0x50')]['id'];}return db[_0x9026('0x31')][_0x9026('0x4e')]({'where':{'id':_0x3a4a30['params']['id']}})['then'](handleEntityNotFound(_0x401c11,null))[_0x9026('0x2b')](saveUpdates(_0x3a4a30[_0x9026('0x50')],null))[_0x9026('0x2b')](respondWithResult(_0x401c11,null))[_0x9026('0x20')](handleError(_0x401c11,null));};exports[_0x9026('0x2c')]=function(_0x26c629,_0x2b0d97){return db['SugarcrmConfiguration'][_0x9026('0x4e')]({'where':{'id':_0x26c629['params']['id']}})[_0x9026('0x2b')](handleEntityNotFound(_0x2b0d97,null))[_0x9026('0x2b')](removeEntity(_0x2b0d97,null))['catch'](handleError(_0x2b0d97,null));};exports[_0x9026('0x52')]=function(_0x2ca2b8,_0x5168dc,_0x1c4522){var _0x4c3236={};var _0x3a1b5e={};var _0x1cffb4;var _0x538fe6;return db['SugarcrmConfiguration'][_0x9026('0x53')]({'where':{'id':_0x2ca2b8['params']['id']}})[_0x9026('0x2b')](handleEntityNotFound(_0x5168dc,null))[_0x9026('0x2b')](function(_0x496301){if(_0x496301){_0x1cffb4=_0x496301;_0x3a1b5e[_0x9026('0x33')]=_[_0x9026('0x34')](db[_0x9026('0x54')][_0x9026('0x32')]);_0x3a1b5e[_0x9026('0x35')]=_[_0x9026('0x34')](_0x2ca2b8[_0x9026('0x35')]);_0x3a1b5e[_0x9026('0x40')]=_['intersection'](_0x3a1b5e[_0x9026('0x33')],_0x3a1b5e[_0x9026('0x35')]);_0x4c3236[_0x9026('0x39')]=_[_0x9026('0x38')](_0x3a1b5e[_0x9026('0x33')],qs[_0x9026('0x3a')](_0x2ca2b8[_0x9026('0x35')][_0x9026('0x3a')]));_0x4c3236[_0x9026('0x39')]=_0x4c3236[_0x9026('0x39')]['length']?_0x4c3236[_0x9026('0x39')]:_0x3a1b5e['model'];_0x4c3236['order']=qs[_0x9026('0x3e')](_0x2ca2b8[_0x9026('0x35')][_0x9026('0x3e')]);_0x4c3236['where']=qs[_0x9026('0x40')](_['pick'](_0x2ca2b8[_0x9026('0x35')],_0x3a1b5e[_0x9026('0x40')]));if(_0x2ca2b8['query'][_0x9026('0x45')]){_0x4c3236['where']=_[_0x9026('0x44')](_0x4c3236[_0x9026('0x3f')],{'$or':_[_0x9026('0x46')](_0x4c3236[_0x9026('0x39')],function(_0x114d59){var _0x36a3e9={};_0x36a3e9[_0x114d59]={'$like':'%'+_0x2ca2b8['query']['filter']+'%'};return _0x36a3e9;})});}_0x4c3236=_[_0x9026('0x44')]({},_0x4c3236,_0x2ca2b8[_0x9026('0x4d')]);return _0x1cffb4[_0x9026('0x52')](_0x4c3236);}})[_0x9026('0x2b')](function(_0x1c19e3){if(_0x1c19e3){_0x538fe6=_0x1c19e3[_0x9026('0x3b')];if(!_0x2ca2b8['query'][_0x9026('0x55')](_0x9026('0x3c'))){_0x4c3236[_0x9026('0x26')]=qs['limit'](_0x2ca2b8[_0x9026('0x35')][_0x9026('0x26')]);_0x4c3236[_0x9026('0x25')]=qs[_0x9026('0x25')](_0x2ca2b8[_0x9026('0x35')][_0x9026('0x25')]);}return _0x1cffb4['getFields'](_0x4c3236);}})['then'](function(_0x2dc324){if(_0x2dc324){return _0x2dc324?{'count':_0x538fe6,'rows':_0x2dc324}:null;}})[_0x9026('0x2b')](respondWithResult(_0x5168dc,null))[_0x9026('0x20')](handleError(_0x5168dc,null));};exports['getSubjects']=function(_0x212f37,_0x4d4e41,_0x25d1c3){var _0x12fac5={};var _0x338adb={};var _0xa97879;var _0x3cbcdc;return db['SugarcrmConfiguration'][_0x9026('0x53')]({'where':{'id':_0x212f37[_0x9026('0x4a')]['id']}})[_0x9026('0x2b')](handleEntityNotFound(_0x4d4e41,null))[_0x9026('0x2b')](function(_0x24dc00){if(_0x24dc00){_0xa97879=_0x24dc00;_0x338adb['model']=_[_0x9026('0x34')](db['SugarcrmField'][_0x9026('0x32')]);_0x338adb['query']=_['keys'](_0x212f37[_0x9026('0x35')]);_0x338adb['filters']=_[_0x9026('0x38')](_0x338adb[_0x9026('0x33')],_0x338adb[_0x9026('0x35')]);_0x12fac5[_0x9026('0x39')]=_[_0x9026('0x38')](_0x338adb[_0x9026('0x33')],qs[_0x9026('0x3a')](_0x212f37['query']['fields']));_0x12fac5[_0x9026('0x39')]=_0x12fac5[_0x9026('0x39')][_0x9026('0x3b')]?_0x12fac5['attributes']:_0x338adb[_0x9026('0x33')];_0x12fac5[_0x9026('0x3d')]=qs[_0x9026('0x3e')](_0x212f37['query'][_0x9026('0x3e')]);_0x12fac5[_0x9026('0x3f')]=qs[_0x9026('0x40')](_[_0x9026('0x41')](_0x212f37[_0x9026('0x35')],_0x338adb[_0x9026('0x40')]));if(_0x212f37['query'][_0x9026('0x45')]){_0x12fac5['where']=_[_0x9026('0x44')](_0x12fac5['where'],{'$or':_[_0x9026('0x46')](_0x12fac5[_0x9026('0x39')],function(_0x2ed333){var _0x320aa6={};_0x320aa6[_0x2ed333]={'$like':'%'+_0x212f37[_0x9026('0x35')][_0x9026('0x45')]+'%'};return _0x320aa6;})});}_0x12fac5=_[_0x9026('0x44')]({},_0x12fac5,_0x212f37[_0x9026('0x4d')]);return _0xa97879[_0x9026('0x56')](_0x12fac5);}})[_0x9026('0x2b')](function(_0x59c046){if(_0x59c046){_0x3cbcdc=_0x59c046['length'];if(!_0x212f37['query']['hasOwnProperty']('nolimit')){_0x12fac5[_0x9026('0x26')]=qs[_0x9026('0x26')](_0x212f37[_0x9026('0x35')][_0x9026('0x26')]);_0x12fac5[_0x9026('0x25')]=qs['offset'](_0x212f37[_0x9026('0x35')][_0x9026('0x25')]);}return _0xa97879[_0x9026('0x56')](_0x12fac5);}})[_0x9026('0x2b')](function(_0x8c8b12){if(_0x8c8b12){return _0x8c8b12?{'count':_0x3cbcdc,'rows':_0x8c8b12}:null;}})[_0x9026('0x2b')](respondWithResult(_0x4d4e41,null))[_0x9026('0x20')](handleError(_0x4d4e41,null));};exports[_0x9026('0x57')]=function(_0x272e78,_0x1634cb,_0x7717a6){var _0x30dd62={};var _0x47f264={};var _0x3ba9cd;var _0x1158b4;return db[_0x9026('0x31')][_0x9026('0x53')]({'where':{'id':_0x272e78[_0x9026('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1634cb,null))[_0x9026('0x2b')](function(_0x51060b){if(_0x51060b){_0x3ba9cd=_0x51060b;_0x47f264[_0x9026('0x33')]=_[_0x9026('0x34')](db[_0x9026('0x54')][_0x9026('0x32')]);_0x47f264[_0x9026('0x35')]=_['keys'](_0x272e78[_0x9026('0x35')]);_0x47f264[_0x9026('0x40')]=_[_0x9026('0x38')](_0x47f264[_0x9026('0x33')],_0x47f264['query']);_0x30dd62['attributes']=_[_0x9026('0x38')](_0x47f264[_0x9026('0x33')],qs['fields'](_0x272e78['query'][_0x9026('0x3a')]));_0x30dd62['attributes']=_0x30dd62[_0x9026('0x39')][_0x9026('0x3b')]?_0x30dd62[_0x9026('0x39')]:_0x47f264['model'];_0x30dd62[_0x9026('0x3d')]=qs[_0x9026('0x3e')](_0x272e78[_0x9026('0x35')][_0x9026('0x3e')]);_0x30dd62[_0x9026('0x3f')]=qs[_0x9026('0x40')](_[_0x9026('0x41')](_0x272e78['query'],_0x47f264[_0x9026('0x40')]));if(_0x272e78[_0x9026('0x35')]['filter']){_0x30dd62[_0x9026('0x3f')]=_[_0x9026('0x44')](_0x30dd62[_0x9026('0x3f')],{'$or':_[_0x9026('0x46')](_0x30dd62[_0x9026('0x39')],function(_0x4540e8){var _0x514638={};_0x514638[_0x4540e8]={'$like':'%'+_0x272e78[_0x9026('0x35')][_0x9026('0x45')]+'%'};return _0x514638;})});}_0x30dd62=_['merge']({},_0x30dd62,_0x272e78[_0x9026('0x4d')]);return _0x3ba9cd[_0x9026('0x57')](_0x30dd62);}})['then'](function(_0x372c10){if(_0x372c10){_0x1158b4=_0x372c10['length'];if(!_0x272e78['query']['hasOwnProperty'](_0x9026('0x3c'))){_0x30dd62[_0x9026('0x26')]=qs['limit'](_0x272e78[_0x9026('0x35')][_0x9026('0x26')]);_0x30dd62[_0x9026('0x25')]=qs['offset'](_0x272e78[_0x9026('0x35')][_0x9026('0x25')]);}return _0x3ba9cd[_0x9026('0x57')](_0x30dd62);}})['then'](function(_0x51c889){if(_0x51c889){return _0x51c889?{'count':_0x1158b4,'rows':_0x51c889}:null;}})[_0x9026('0x2b')](respondWithResult(_0x1634cb,null))[_0x9026('0x20')](handleError(_0x1634cb,null));};
\ No newline at end of file
+var _0x391f=['map','hasOwnProperty','nolimit','rawAttributes','options','getSubjects','getDescriptions','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','api','../../config/utils','jayson/promise','http','request','then','info','SugarcrmConfiguration,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','status','json','count','offset','limit','set','apply','save','update','destroy','end','sendStatus','name','index','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','order','sort','pick','add','day','where','filter','merge','include','SugarcrmConfiguration','findAll','show','length','includeAll','find','create','body','params','getFields','findOne','SugarcrmField'];(function(_0x231e0c,_0x2f5fb5){var _0x5b3ebc=function(_0x347d33){while(--_0x347d33){_0x231e0c['push'](_0x231e0c['shift']());}};_0x5b3ebc(++_0x2f5fb5);}(_0x391f,0x10c));var _0xf391=function(_0x53fa8a,_0x4fe9ec){_0x53fa8a=_0x53fa8a-0x0;var _0x40b36c=_0x391f[_0x53fa8a];return _0x40b36c;};'use strict';var pdf=require(_0xf391('0x0'));var emlformat=require(_0xf391('0x1'));var rimraf=require(_0xf391('0x2'));var zipdir=require(_0xf391('0x3'));var jsonpatch=require(_0xf391('0x4'));var rp=require(_0xf391('0x5'));var moment=require(_0xf391('0x6'));var BPromise=require('bluebird');var Mustache=require(_0xf391('0x7'));var util=require(_0xf391('0x8'));var path=require(_0xf391('0x9'));var sox=require(_0xf391('0xa'));var csv=require(_0xf391('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf391('0xc'));var squel=require(_0xf391('0xd'));var crypto=require(_0xf391('0xe'));var jsforce=require(_0xf391('0xf'));var deskjs=require(_0xf391('0x10'));var toCsv=require('to-csv');var querystring=require(_0xf391('0x11'));var Papa=require(_0xf391('0x12'));var Redis=require(_0xf391('0x13'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xf391('0x14'));var utils=require(_0xf391('0x15'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var jayson=require(_0xf391('0x16'));var client=jayson['client'][_0xf391('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x2943cd,_0x3fde73,_0x4fcb52,_0x3c014c){return new BPromise(function(_0x39bffd,_0x4016e4){var _0x3bc9bb=_0x3c014c||client;return _0x3bc9bb[_0xf391('0x18')](_0x2943cd,_0x4fcb52)[_0xf391('0x19')](function(_0x4f69f2){logger[_0xf391('0x1a')](_0xf391('0x1b'),_0x3fde73,'request\x20sent');logger[_0xf391('0x1c')]('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x3fde73,_0xf391('0x1d'),JSON[_0xf391('0x1e')](_0x4f69f2));if(_0x4f69f2[_0xf391('0x1f')]){if(_0x4f69f2[_0xf391('0x1f')][_0xf391('0x20')]===0x1f4){logger['error']('SugarcrmConfiguration,\x20%s,\x20%s',_0x3fde73,_0x4f69f2[_0xf391('0x1f')][_0xf391('0x21')]);return _0x4016e4(_0x4f69f2['error'][_0xf391('0x21')]);}logger[_0xf391('0x1f')](_0xf391('0x1b'),_0x3fde73,_0x4f69f2[_0xf391('0x1f')]['message']);return _0x39bffd(_0x4f69f2['error']['message']);}else{logger['info']('SugarcrmConfiguration,\x20%s,\x20%s',_0x3fde73,_0xf391('0x1d'));_0x39bffd(_0x4f69f2[_0xf391('0x22')][_0xf391('0x21')]);}})[_0xf391('0x23')](function(_0x5f481c){logger[_0xf391('0x1f')](_0xf391('0x1b'),_0x3fde73,_0x5f481c);_0x4016e4(_0x5f481c);});});}function respondWithStatusCode(_0x41036e,_0x1d10cb){_0x1d10cb=_0x1d10cb||0xcc;return function(_0x160bb0){if(_0x160bb0){return _0x41036e['sendStatus'](_0x1d10cb);}return _0x41036e[_0xf391('0x24')](_0x1d10cb)['end']();};}function respondWithResult(_0x46f41f,_0x56dbb0){_0x56dbb0=_0x56dbb0||0xc8;return function(_0x2f0d7e){if(_0x2f0d7e){return _0x46f41f[_0xf391('0x24')](_0x56dbb0)[_0xf391('0x25')](_0x2f0d7e);}};}function respondWithFilteredResult(_0x1a6f70,_0x122668){return function(_0x109880){if(_0x109880){var _0x29e9a0=_0x109880[_0xf391('0x26')],_0x35a7af=_0x122668[_0xf391('0x27')],_0x10b25f=_0x122668[_0xf391('0x27')]+_0x122668[_0xf391('0x28')],_0x3f18ca;if(_0x10b25f>=_0x29e9a0){_0x10b25f=_0x29e9a0;_0x3f18ca=0xc8;}else{_0x3f18ca=0xce;}_0x1a6f70['status'](_0x3f18ca);return _0x1a6f70[_0xf391('0x29')]('Content-Range',_0x35a7af+'-'+_0x10b25f+'/'+_0x29e9a0)[_0xf391('0x25')](_0x109880);}return null;};}function patchUpdates(_0x322db8){return function(_0x42858c){try{jsonpatch[_0xf391('0x2a')](_0x42858c,_0x322db8,!![]);}catch(_0x3fbedd){return BPromise['reject'](_0x3fbedd);}return _0x42858c[_0xf391('0x2b')]();};}function saveUpdates(_0x615ada,_0x3c9b87){return function(_0x355d33){if(_0x355d33){return _0x355d33[_0xf391('0x2c')](_0x615ada)[_0xf391('0x19')](function(_0x3a0895){return _0x3a0895;});}return null;};}function removeEntity(_0x5be4b0,_0x4c998f){return function(_0xb9feb7){if(_0xb9feb7){return _0xb9feb7[_0xf391('0x2d')]()[_0xf391('0x19')](function(){_0x5be4b0['status'](0xcc)[_0xf391('0x2e')]();});}};}function handleEntityNotFound(_0x16e946,_0x57cb22){return function(_0x3df59e){if(!_0x3df59e){_0x16e946[_0xf391('0x2f')](0x194);}return _0x3df59e;};}function handleError(_0x482dc8,_0x59e9a2){_0x59e9a2=_0x59e9a2||0x1f4;return function(_0x588f95){logger[_0xf391('0x1f')](_0x588f95['stack']);if(_0x588f95[_0xf391('0x30')]){delete _0x588f95['name'];}_0x482dc8[_0xf391('0x24')](_0x59e9a2)['send'](_0x588f95);};}exports[_0xf391('0x31')]=function(_0x5eefa7,_0x17fbe3){var _0xcb2f53={},_0x38c026={},_0x3c8177={'count':0x0,'rows':[]};var _0x58959c=db['SugarcrmConfiguration']['rawAttributes'];_0x38c026[_0xf391('0x32')]=_[_0xf391('0x33')](_0x58959c);var _0x399793={'dateStart':_0x5eefa7[_0xf391('0x34')][_0xf391('0x35')],'dateEnd':_0x5eefa7[_0xf391('0x34')][_0xf391('0x36')]};delete _0x5eefa7[_0xf391('0x34')][_0xf391('0x35')];delete _0x5eefa7[_0xf391('0x34')]['dateEnd'];_0x38c026['query']=_[_0xf391('0x33')](_0x5eefa7[_0xf391('0x34')]);_0x38c026[_0xf391('0x37')]=_['intersection'](_0x38c026[_0xf391('0x32')],_0x38c026[_0xf391('0x34')]);_0xcb2f53['attributes']=_[_0xf391('0x38')](_0x38c026[_0xf391('0x32')],qs['fields'](_0x5eefa7[_0xf391('0x34')][_0xf391('0x39')]));_0xcb2f53[_0xf391('0x3a')]=_0xcb2f53[_0xf391('0x3a')]['length']?_0xcb2f53[_0xf391('0x3a')]:_0x38c026[_0xf391('0x32')];if(!_0x5eefa7[_0xf391('0x34')]['hasOwnProperty']('nolimit')){_0xcb2f53[_0xf391('0x28')]=qs[_0xf391('0x28')](_0x5eefa7[_0xf391('0x34')][_0xf391('0x28')]);_0xcb2f53[_0xf391('0x27')]=qs[_0xf391('0x27')](_0x5eefa7[_0xf391('0x34')][_0xf391('0x27')]);}_0xcb2f53[_0xf391('0x3b')]=qs[_0xf391('0x3c')](_0x5eefa7[_0xf391('0x34')][_0xf391('0x3c')]);_0xcb2f53['where']=qs[_0xf391('0x37')](_[_0xf391('0x3d')](_0x5eefa7[_0xf391('0x34')],_0x38c026[_0xf391('0x37')]));if(_0x399793[_0xf391('0x35')]){if(_0x399793[_0xf391('0x36')]){_0x399793[_0xf391('0x36')]=moment(_0x399793[_0xf391('0x36')])[_0xf391('0x3e')](0x1,_0xf391('0x3f'));}else{_0x399793[_0xf391('0x36')]=moment(_0x399793[_0xf391('0x35')])[_0xf391('0x3e')](0x1,'day');}_['merge'](_0xcb2f53[_0xf391('0x40')],{'createdAt':{'$gte':_0x399793[_0xf391('0x35')],'$lte':_0x399793[_0xf391('0x36')]}});}if(_0x5eefa7[_0xf391('0x34')][_0xf391('0x41')]){_0xcb2f53[_0xf391('0x40')]=_[_0xf391('0x42')](_0xcb2f53[_0xf391('0x40')],{'$or':_['map'](_0xcb2f53['attributes'],function(_0x8ce9ce){var _0x5cc725={};_0x5cc725[_0x8ce9ce]={'$like':'%'+_0x5eefa7['query']['filter']+'%'};return _0x5cc725;})});}_0xcb2f53=_[_0xf391('0x42')]({},_0xcb2f53,_0x5eefa7['options']);var _0x3cda85={'where':_0xcb2f53[_0xf391('0x40')]};return db['SugarcrmConfiguration'][_0xf391('0x26')](_0x3cda85)[_0xf391('0x19')](function(_0x2036c0){_0x3c8177[_0xf391('0x26')]=_0x2036c0;if(_0x5eefa7['query']['includeAll']){_0xcb2f53[_0xf391('0x43')]=[{'all':!![]}];}return db[_0xf391('0x44')][_0xf391('0x45')](_0xcb2f53);})[_0xf391('0x19')](function(_0x35bf19){_0x3c8177['rows']=_0x35bf19;return _0x3c8177;})[_0xf391('0x19')](respondWithFilteredResult(_0x17fbe3,_0xcb2f53))[_0xf391('0x23')](handleError(_0x17fbe3,null));};exports[_0xf391('0x46')]=function(_0xf4e2d0,_0x28f185){var _0x59d499={'raw':![],'where':{'id':_0xf4e2d0['params']['id']}},_0x457106={};_0x457106[_0xf391('0x32')]=_[_0xf391('0x33')](db[_0xf391('0x44')]['rawAttributes']);_0x457106[_0xf391('0x34')]=_['keys'](_0xf4e2d0[_0xf391('0x34')]);_0x457106[_0xf391('0x37')]=_[_0xf391('0x38')](_0x457106['model'],_0x457106[_0xf391('0x34')]);_0x59d499[_0xf391('0x3a')]=_['intersection'](_0x457106[_0xf391('0x32')],qs['fields'](_0xf4e2d0['query'][_0xf391('0x39')]));_0x59d499[_0xf391('0x3a')]=_0x59d499[_0xf391('0x3a')][_0xf391('0x47')]?_0x59d499['attributes']:_0x457106['model'];if(_0xf4e2d0[_0xf391('0x34')][_0xf391('0x48')]){_0x59d499[_0xf391('0x43')]=[{'all':!![]}];}_0x59d499=_[_0xf391('0x42')]({},_0x59d499,_0xf4e2d0['options']);return db[_0xf391('0x44')][_0xf391('0x49')](_0x59d499)[_0xf391('0x19')](handleEntityNotFound(_0x28f185,null))['then'](respondWithResult(_0x28f185,null))[_0xf391('0x23')](handleError(_0x28f185,null));};exports[_0xf391('0x4a')]=function(_0x2dc0a9,_0x310364){return db[_0xf391('0x44')][_0xf391('0x4a')](_0x2dc0a9['body'],{})[_0xf391('0x19')](respondWithResult(_0x310364,0xc9))[_0xf391('0x23')](handleError(_0x310364,null));};exports[_0xf391('0x2c')]=function(_0x81c67f,_0x46375a){if(_0x81c67f[_0xf391('0x4b')]['id']){delete _0x81c67f['body']['id'];}return db[_0xf391('0x44')]['find']({'where':{'id':_0x81c67f[_0xf391('0x4c')]['id']}})[_0xf391('0x19')](handleEntityNotFound(_0x46375a,null))[_0xf391('0x19')](saveUpdates(_0x81c67f[_0xf391('0x4b')],null))[_0xf391('0x19')](respondWithResult(_0x46375a,null))[_0xf391('0x23')](handleError(_0x46375a,null));};exports['destroy']=function(_0x260086,_0x52da35){return db[_0xf391('0x44')][_0xf391('0x49')]({'where':{'id':_0x260086[_0xf391('0x4c')]['id']}})['then'](handleEntityNotFound(_0x52da35,null))[_0xf391('0x19')](removeEntity(_0x52da35,null))[_0xf391('0x23')](handleError(_0x52da35,null));};exports[_0xf391('0x4d')]=function(_0x11024d,_0x4f4a86,_0xf3927f){var _0x4c375a={};var _0x5ae7a0={};var _0x52f89c;var _0x2efcbb;return db[_0xf391('0x44')][_0xf391('0x4e')]({'where':{'id':_0x11024d[_0xf391('0x4c')]['id']}})[_0xf391('0x19')](handleEntityNotFound(_0x4f4a86,null))['then'](function(_0x10ab85){if(_0x10ab85){_0x52f89c=_0x10ab85;_0x5ae7a0[_0xf391('0x32')]=_[_0xf391('0x33')](db[_0xf391('0x4f')]['rawAttributes']);_0x5ae7a0['query']=_[_0xf391('0x33')](_0x11024d['query']);_0x5ae7a0['filters']=_[_0xf391('0x38')](_0x5ae7a0[_0xf391('0x32')],_0x5ae7a0[_0xf391('0x34')]);_0x4c375a[_0xf391('0x3a')]=_[_0xf391('0x38')](_0x5ae7a0[_0xf391('0x32')],qs['fields'](_0x11024d[_0xf391('0x34')][_0xf391('0x39')]));_0x4c375a[_0xf391('0x3a')]=_0x4c375a['attributes'][_0xf391('0x47')]?_0x4c375a[_0xf391('0x3a')]:_0x5ae7a0[_0xf391('0x32')];_0x4c375a['order']=qs['sort'](_0x11024d[_0xf391('0x34')][_0xf391('0x3c')]);_0x4c375a[_0xf391('0x40')]=qs[_0xf391('0x37')](_['pick'](_0x11024d[_0xf391('0x34')],_0x5ae7a0['filters']));if(_0x11024d['query'][_0xf391('0x41')]){_0x4c375a[_0xf391('0x40')]=_[_0xf391('0x42')](_0x4c375a[_0xf391('0x40')],{'$or':_[_0xf391('0x50')](_0x4c375a['attributes'],function(_0x89cf25){var _0x10571a={};_0x10571a[_0x89cf25]={'$like':'%'+_0x11024d[_0xf391('0x34')][_0xf391('0x41')]+'%'};return _0x10571a;})});}_0x4c375a=_[_0xf391('0x42')]({},_0x4c375a,_0x11024d['options']);return _0x52f89c['getFields'](_0x4c375a);}})['then'](function(_0x5346e5){if(_0x5346e5){_0x2efcbb=_0x5346e5[_0xf391('0x47')];if(!_0x11024d[_0xf391('0x34')][_0xf391('0x51')](_0xf391('0x52'))){_0x4c375a['limit']=qs[_0xf391('0x28')](_0x11024d[_0xf391('0x34')][_0xf391('0x28')]);_0x4c375a[_0xf391('0x27')]=qs[_0xf391('0x27')](_0x11024d[_0xf391('0x34')][_0xf391('0x27')]);}return _0x52f89c[_0xf391('0x4d')](_0x4c375a);}})[_0xf391('0x19')](function(_0x4f6513){if(_0x4f6513){return _0x4f6513?{'count':_0x2efcbb,'rows':_0x4f6513}:null;}})['then'](respondWithResult(_0x4f4a86,null))[_0xf391('0x23')](handleError(_0x4f4a86,null));};exports['getSubjects']=function(_0x242841,_0x12d4e3,_0x47688e){var _0x51b7fa={};var _0x3ae0aa={};var _0x262d39;var _0x3248f0;return db[_0xf391('0x44')][_0xf391('0x4e')]({'where':{'id':_0x242841[_0xf391('0x4c')]['id']}})[_0xf391('0x19')](handleEntityNotFound(_0x12d4e3,null))[_0xf391('0x19')](function(_0xdeaea1){if(_0xdeaea1){_0x262d39=_0xdeaea1;_0x3ae0aa[_0xf391('0x32')]=_[_0xf391('0x33')](db[_0xf391('0x4f')][_0xf391('0x53')]);_0x3ae0aa[_0xf391('0x34')]=_[_0xf391('0x33')](_0x242841[_0xf391('0x34')]);_0x3ae0aa[_0xf391('0x37')]=_[_0xf391('0x38')](_0x3ae0aa[_0xf391('0x32')],_0x3ae0aa[_0xf391('0x34')]);_0x51b7fa['attributes']=_[_0xf391('0x38')](_0x3ae0aa[_0xf391('0x32')],qs[_0xf391('0x39')](_0x242841[_0xf391('0x34')]['fields']));_0x51b7fa['attributes']=_0x51b7fa[_0xf391('0x3a')]['length']?_0x51b7fa[_0xf391('0x3a')]:_0x3ae0aa[_0xf391('0x32')];_0x51b7fa['order']=qs[_0xf391('0x3c')](_0x242841[_0xf391('0x34')][_0xf391('0x3c')]);_0x51b7fa[_0xf391('0x40')]=qs[_0xf391('0x37')](_[_0xf391('0x3d')](_0x242841[_0xf391('0x34')],_0x3ae0aa[_0xf391('0x37')]));if(_0x242841[_0xf391('0x34')][_0xf391('0x41')]){_0x51b7fa[_0xf391('0x40')]=_[_0xf391('0x42')](_0x51b7fa[_0xf391('0x40')],{'$or':_[_0xf391('0x50')](_0x51b7fa[_0xf391('0x3a')],function(_0x30d27a){var _0x5bc54c={};_0x5bc54c[_0x30d27a]={'$like':'%'+_0x242841[_0xf391('0x34')][_0xf391('0x41')]+'%'};return _0x5bc54c;})});}_0x51b7fa=_[_0xf391('0x42')]({},_0x51b7fa,_0x242841[_0xf391('0x54')]);return _0x262d39[_0xf391('0x55')](_0x51b7fa);}})[_0xf391('0x19')](function(_0x96b057){if(_0x96b057){_0x3248f0=_0x96b057['length'];if(!_0x242841['query'][_0xf391('0x51')]('nolimit')){_0x51b7fa[_0xf391('0x28')]=qs[_0xf391('0x28')](_0x242841[_0xf391('0x34')][_0xf391('0x28')]);_0x51b7fa[_0xf391('0x27')]=qs[_0xf391('0x27')](_0x242841[_0xf391('0x34')]['offset']);}return _0x262d39[_0xf391('0x55')](_0x51b7fa);}})[_0xf391('0x19')](function(_0x2d9f8a){if(_0x2d9f8a){return _0x2d9f8a?{'count':_0x3248f0,'rows':_0x2d9f8a}:null;}})[_0xf391('0x19')](respondWithResult(_0x12d4e3,null))[_0xf391('0x23')](handleError(_0x12d4e3,null));};exports[_0xf391('0x56')]=function(_0x1361a6,_0x5f25f6,_0x2af33c){var _0x3d7d13={};var _0x444fc8={};var _0x4a3feb;var _0x4e70cc;return db[_0xf391('0x44')][_0xf391('0x4e')]({'where':{'id':_0x1361a6['params']['id']}})[_0xf391('0x19')](handleEntityNotFound(_0x5f25f6,null))[_0xf391('0x19')](function(_0x178d99){if(_0x178d99){_0x4a3feb=_0x178d99;_0x444fc8[_0xf391('0x32')]=_[_0xf391('0x33')](db[_0xf391('0x4f')][_0xf391('0x53')]);_0x444fc8[_0xf391('0x34')]=_[_0xf391('0x33')](_0x1361a6[_0xf391('0x34')]);_0x444fc8[_0xf391('0x37')]=_[_0xf391('0x38')](_0x444fc8[_0xf391('0x32')],_0x444fc8[_0xf391('0x34')]);_0x3d7d13[_0xf391('0x3a')]=_[_0xf391('0x38')](_0x444fc8[_0xf391('0x32')],qs[_0xf391('0x39')](_0x1361a6[_0xf391('0x34')][_0xf391('0x39')]));_0x3d7d13[_0xf391('0x3a')]=_0x3d7d13[_0xf391('0x3a')][_0xf391('0x47')]?_0x3d7d13[_0xf391('0x3a')]:_0x444fc8['model'];_0x3d7d13[_0xf391('0x3b')]=qs[_0xf391('0x3c')](_0x1361a6[_0xf391('0x34')]['sort']);_0x3d7d13[_0xf391('0x40')]=qs[_0xf391('0x37')](_[_0xf391('0x3d')](_0x1361a6[_0xf391('0x34')],_0x444fc8['filters']));if(_0x1361a6[_0xf391('0x34')][_0xf391('0x41')]){_0x3d7d13['where']=_[_0xf391('0x42')](_0x3d7d13[_0xf391('0x40')],{'$or':_[_0xf391('0x50')](_0x3d7d13[_0xf391('0x3a')],function(_0x3036c0){var _0x2ea596={};_0x2ea596[_0x3036c0]={'$like':'%'+_0x1361a6[_0xf391('0x34')][_0xf391('0x41')]+'%'};return _0x2ea596;})});}_0x3d7d13=_['merge']({},_0x3d7d13,_0x1361a6[_0xf391('0x54')]);return _0x4a3feb[_0xf391('0x56')](_0x3d7d13);}})[_0xf391('0x19')](function(_0x5717f7){if(_0x5717f7){_0x4e70cc=_0x5717f7[_0xf391('0x47')];if(!_0x1361a6[_0xf391('0x34')]['hasOwnProperty']('nolimit')){_0x3d7d13[_0xf391('0x28')]=qs[_0xf391('0x28')](_0x1361a6[_0xf391('0x34')][_0xf391('0x28')]);_0x3d7d13['offset']=qs[_0xf391('0x27')](_0x1361a6[_0xf391('0x34')][_0xf391('0x27')]);}return _0x4a3feb[_0xf391('0x56')](_0x3d7d13);}})[_0xf391('0x19')](function(_0x33729a){if(_0x33729a){return _0x33729a?{'count':_0x4e70cc,'rows':_0x33729a}:null;}})[_0xf391('0x19')](respondWithResult(_0x5f25f6,null))[_0xf391('0x23')](handleError(_0x5f25f6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2447=['util','api','bluebird','request-promise','./intSugarcrmConfiguration.attributes','exports','define','SugarcrmConfiguration','int_sugarcrm_configurations'];(function(_0x534c9f,_0x5344da){var _0x48561a=function(_0x2e01a1){while(--_0x2e01a1){_0x534c9f['push'](_0x534c9f['shift']());}};_0x48561a(++_0x5344da);}(_0x2447,0x1dd));var _0x7244=function(_0x19c03c,_0x5015d0){_0x19c03c=_0x19c03c-0x0;var _0x1f8019=_0x2447[_0x19c03c];return _0x1f8019;};'use strict';var _=require('lodash');var util=require(_0x7244('0x0'));var logger=require('../../config/logger')(_0x7244('0x1'));var moment=require('moment');var BPromise=require(_0x7244('0x2'));var rp=require(_0x7244('0x3'));var attributes=require(_0x7244('0x4'));module[_0x7244('0x5')]=function(_0x1c10bf,_0x4eb872){return _0x1c10bf[_0x7244('0x6')](_0x7244('0x7'),attributes,{'tableName':_0x7244('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc429=['SugarcrmConfiguration','int_sugarcrm_configurations','lodash','../../config/logger','bluebird','request-promise','./intSugarcrmConfiguration.attributes','exports'];(function(_0xaa37af,_0x9c97e7){var _0x56d335=function(_0x32ce3d){while(--_0x32ce3d){_0xaa37af['push'](_0xaa37af['shift']());}};_0x56d335(++_0x9c97e7);}(_0xc429,0x1ba));var _0x9c42=function(_0x1a72f3,_0x217011){_0x1a72f3=_0x1a72f3-0x0;var _0x57ef47=_0xc429[_0x1a72f3];return _0x57ef47;};'use strict';var _=require(_0x9c42('0x0'));var util=require('util');var logger=require(_0x9c42('0x1'))('api');var moment=require('moment');var BPromise=require(_0x9c42('0x2'));var rp=require(_0x9c42('0x3'));var attributes=require(_0x9c42('0x4'));module[_0x9c42('0x5')]=function(_0x71ac80,_0x59d1c9){return _0x71ac80['define'](_0x9c42('0x6'),attributes,{'tableName':_0x9c42('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ac1=['info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x43a846,_0x4db774){var _0x52e260=function(_0x4f2130){while(--_0x4f2130){_0x43a846['push'](_0x43a846['shift']());}};_0x52e260(++_0x4db774);}(_0x6ac1,0xb2));var _0x16ac=function(_0x415f7e,_0x4630b6){_0x415f7e=_0x415f7e-0x0;var _0x311ff4=_0x6ac1[_0x415f7e];return _0x311ff4;};'use strict';var _=require(_0x16ac('0x0'));var util=require(_0x16ac('0x1'));var moment=require('moment');var BPromise=require(_0x16ac('0x2'));var rs=require(_0x16ac('0x3'));var fs=require('fs');var db=require(_0x16ac('0x4'))['db'];var utils=require(_0x16ac('0x5'));var logger=require(_0x16ac('0x6'))(_0x16ac('0x7'));var config=require(_0x16ac('0x8'));var jayson=require(_0x16ac('0x9'));var client=jayson[_0x16ac('0xa')][_0x16ac('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xba2f33,_0x41da71,_0x221ad7){return new BPromise(function(_0x4c62b4,_0x260ebb){return client[_0x16ac('0xc')](_0xba2f33,_0x221ad7)[_0x16ac('0xd')](function(_0x22bef6){logger[_0x16ac('0xe')](_0x16ac('0xf'),_0x41da71,_0x16ac('0x10'));logger[_0x16ac('0x11')]('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x41da71,_0x16ac('0x10'),JSON[_0x16ac('0x12')](_0x22bef6));if(_0x22bef6[_0x16ac('0x13')]){if(_0x22bef6[_0x16ac('0x13')][_0x16ac('0x14')]===0x1f4){logger[_0x16ac('0x13')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x41da71,_0x22bef6[_0x16ac('0x13')][_0x16ac('0x15')]);return _0x260ebb(_0x22bef6[_0x16ac('0x13')][_0x16ac('0x15')]);}logger[_0x16ac('0x13')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x41da71,_0x22bef6[_0x16ac('0x13')][_0x16ac('0x15')]);return _0x4c62b4(_0x22bef6['error'][_0x16ac('0x15')]);}else{logger[_0x16ac('0xe')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x41da71,_0x16ac('0x10'));_0x4c62b4(_0x22bef6[_0x16ac('0x16')][_0x16ac('0x15')]);}})[_0x16ac('0x17')](function(_0x5cb6a2){logger[_0x16ac('0x13')](_0x16ac('0xf'),_0x41da71,_0x5cb6a2);_0x260ebb(_0x5cb6a2);});});}
\ No newline at end of file
+var _0x1d70=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','SugarcrmConfiguration,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1d70,0xea));var _0x01d7=function(_0x43db86,_0x2831db){_0x43db86=_0x43db86-0x0;var _0xfab4d7=_0x1d70[_0x43db86];return _0xfab4d7;};'use strict';var _=require(_0x01d7('0x0'));var util=require(_0x01d7('0x1'));var moment=require(_0x01d7('0x2'));var BPromise=require(_0x01d7('0x3'));var rs=require(_0x01d7('0x4'));var fs=require('fs');var Redis=require(_0x01d7('0x5'));var db=require(_0x01d7('0x6'))['db'];var utils=require(_0x01d7('0x7'));var logger=require(_0x01d7('0x8'))(_0x01d7('0x9'));var config=require(_0x01d7('0xa'));var jayson=require(_0x01d7('0xb'));var client=jayson[_0x01d7('0xc')][_0x01d7('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x3b8eef,_0x100b55,_0x3bf8f7){return new BPromise(function(_0xc64522,_0x32fcf1){return client['request'](_0x3b8eef,_0x3bf8f7)[_0x01d7('0xe')](function(_0x2af871){logger[_0x01d7('0xf')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x100b55,_0x01d7('0x10'));logger[_0x01d7('0x11')](_0x01d7('0x12'),_0x100b55,_0x01d7('0x10'),JSON[_0x01d7('0x13')](_0x2af871));if(_0x2af871['error']){if(_0x2af871[_0x01d7('0x14')]['code']===0x1f4){logger[_0x01d7('0x14')](_0x01d7('0x15'),_0x100b55,_0x2af871[_0x01d7('0x14')]['message']);return _0x32fcf1(_0x2af871[_0x01d7('0x14')][_0x01d7('0x16')]);}logger[_0x01d7('0x14')](_0x01d7('0x15'),_0x100b55,_0x2af871['error'][_0x01d7('0x16')]);return _0xc64522(_0x2af871[_0x01d7('0x14')][_0x01d7('0x16')]);}else{logger[_0x01d7('0xf')](_0x01d7('0x15'),_0x100b55,'request\x20sent');_0xc64522(_0x2af871['result']['message']);}})[_0x01d7('0x17')](function(_0x1bf844){logger[_0x01d7('0x14')](_0x01d7('0x15'),_0x100b55,_0x1bf844);_0x32fcf1(_0x1bf844);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe45=['isAuthenticated','index','/:id','show','put','delete','destroy','util','path','connect-timeout','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller'];(function(_0x469920,_0x59ad07){var _0x370971=function(_0x566e85){while(--_0x566e85){_0x469920['push'](_0x469920['shift']());}};_0x370971(++_0x59ad07);}(_0xfe45,0x1db));var _0x5fe4=function(_0xa6ad79,_0xaec3d){_0xa6ad79=_0xa6ad79-0x0;var _0x24f871=_0xfe45[_0xa6ad79];return _0x24f871;};'use strict';var multer=require('multer');var util=require(_0x5fe4('0x0'));var path=require(_0x5fe4('0x1'));var timeout=require(_0x5fe4('0x2'));var express=require('express');var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x5fe4('0x3'));var config=require(_0x5fe4('0x4'));var controller=require(_0x5fe4('0x5'));router['get']('/',auth[_0x5fe4('0x6')](),controller[_0x5fe4('0x7')]);router['get'](_0x5fe4('0x8'),auth[_0x5fe4('0x6')](),controller[_0x5fe4('0x9')]);router['post']('/',auth[_0x5fe4('0x6')](),controller['create']);router[_0x5fe4('0xa')](_0x5fe4('0x8'),auth[_0x5fe4('0x6')](),controller['update']);router[_0x5fe4('0xb')](_0x5fe4('0x8'),auth[_0x5fe4('0x6')](),controller[_0x5fe4('0xc')]);module['exports']=router;
\ No newline at end of file
+var _0x969a=['show','post','create','put','update','delete','destroy','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id'];(function(_0x18ab2a,_0x4debcd){var _0x16dcee=function(_0x10107a){while(--_0x10107a){_0x18ab2a['push'](_0x18ab2a['shift']());}};_0x16dcee(++_0x4debcd);}(_0x969a,0x111));var _0xa969=function(_0x3e6319,_0x1b1f50){_0x3e6319=_0x3e6319-0x0;var _0x175d71=_0x969a[_0x3e6319];return _0x175d71;};'use strict';var multer=require('multer');var util=require(_0xa969('0x0'));var path=require(_0xa969('0x1'));var timeout=require(_0xa969('0x2'));var express=require(_0xa969('0x3'));var router=express[_0xa969('0x4')]();var auth=require(_0xa969('0x5'));var interaction=require(_0xa969('0x6'));var config=require(_0xa969('0x7'));var controller=require('./intSugarcrmField.controller');router[_0xa969('0x8')]('/',auth[_0xa969('0x9')](),controller[_0xa969('0xa')]);router[_0xa969('0x8')](_0xa969('0xb'),auth[_0xa969('0x9')](),controller[_0xa969('0xc')]);router[_0xa969('0xd')]('/',auth['isAuthenticated'](),controller[_0xa969('0xe')]);router[_0xa969('0xf')](_0xa969('0xb'),auth['isAuthenticated'](),controller[_0xa969('0x10')]);router[_0xa969('0x11')](_0xa969('0xb'),auth[_0xa969('0x9')](),controller[_0xa969('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf109=['ENUM','keyValue','string','STRING','variable','customVariable','sequelize','exports'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xf109,0xce));var _0x9f10=function(_0x2e4e19,_0x493b50){_0x2e4e19=_0x2e4e19-0x0;var _0x9ba20b=_0xf109[_0x2e4e19];return _0x9ba20b;};'use strict';var Sequelize=require(_0x9f10('0x0'));module[_0x9f10('0x1')]={'type':{'type':Sequelize[_0x9f10('0x2')]('string','variable','customVariable',_0x9f10('0x3')),'defaultValue':_0x9f10('0x4')},'content':{'type':Sequelize[_0x9f10('0x5')]},'key':{'type':Sequelize[_0x9f10('0x5')]},'keyType':{'type':Sequelize[_0x9f10('0x2')](_0x9f10('0x4'),_0x9f10('0x6'),_0x9f10('0x7'))},'keyContent':{'type':Sequelize[_0x9f10('0x5')]},'idField':{'type':Sequelize[_0x9f10('0x5')]},'nameField':{'type':Sequelize[_0x9f10('0x5')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9f10('0x5')]}};
\ No newline at end of file
+var _0xb43b=['ENUM','BOOLEAN','sequelize','exports','string','variable','customVariable','STRING'];(function(_0x1e6c85,_0x59c747){var _0x16ec9b=function(_0xcdeb9e){while(--_0xcdeb9e){_0x1e6c85['push'](_0x1e6c85['shift']());}};_0x16ec9b(++_0x59c747);}(_0xb43b,0x1b2));var _0xbb43=function(_0x3f0b9b,_0x1e969a){_0x3f0b9b=_0x3f0b9b-0x0;var _0x2c38e9=_0xb43b[_0x3f0b9b];return _0x2c38e9;};'use strict';var Sequelize=require(_0xbb43('0x0'));module[_0xbb43('0x1')]={'type':{'type':Sequelize['ENUM'](_0xbb43('0x2'),_0xbb43('0x3'),_0xbb43('0x4'),'keyValue'),'defaultValue':_0xbb43('0x2')},'content':{'type':Sequelize[_0xbb43('0x5')]},'key':{'type':Sequelize[_0xbb43('0x5')]},'keyType':{'type':Sequelize[_0xbb43('0x6')]('string','variable',_0xbb43('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0xbb43('0x5')]},'nameField':{'type':Sequelize[_0xbb43('0x5')]},'customField':{'type':Sequelize[_0xbb43('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xbb43('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed4d=['sendStatus','end','status','count','offset','set','Content-Range','json','apply','reject','save','update','then','stack','name','send','index','SugarcrmField','model','keys','dateStart','dateEnd','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','sort','where','filters','add','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','find','destroy','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','../../config/logger','api','../../config/utils','../../mysqldb'];(function(_0x389af3,_0x30a76a){var _0x199d87=function(_0x126178){while(--_0x126178){_0x389af3['push'](_0x389af3['shift']());}};_0x199d87(++_0x30a76a);}(_0xed4d,0x1d7));var _0xded4=function(_0x3c92fc,_0xd4d345){_0x3c92fc=_0x3c92fc-0x0;var _0x3f966d=_0xed4d[_0x3c92fc];return _0x3f966d;};'use strict';var pdf=require(_0xded4('0x0'));var emlformat=require(_0xded4('0x1'));var rimraf=require(_0xded4('0x2'));var zipdir=require(_0xded4('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xded4('0x4'));var moment=require(_0xded4('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xded4('0x6'));var path=require('path');var sox=require(_0xded4('0x7'));var csv=require(_0xded4('0x8'));var ejs=require(_0xded4('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xded4('0xa'));var crypto=require(_0xded4('0xb'));var jsforce=require(_0xded4('0xc'));var deskjs=require(_0xded4('0xd'));var toCsv=require(_0xded4('0x8'));var querystring=require('querystring');var Papa=require(_0xded4('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0xded4('0xf'))(_0xded4('0x10'));var utils=require(_0xded4('0x11'));var config=require('../../config/environment');var db=require(_0xded4('0x12'))['db'];function respondWithStatusCode(_0x598d2a,_0xfe227e){_0xfe227e=_0xfe227e||0xcc;return function(_0x559b39){if(_0x559b39){return _0x598d2a[_0xded4('0x13')](_0xfe227e);}return _0x598d2a['status'](_0xfe227e)[_0xded4('0x14')]();};}function respondWithResult(_0x14e64a,_0x3a3c70){_0x3a3c70=_0x3a3c70||0xc8;return function(_0x3b97a7){if(_0x3b97a7){return _0x14e64a[_0xded4('0x15')](_0x3a3c70)['json'](_0x3b97a7);}};}function respondWithFilteredResult(_0x1a4f9c,_0x18ab73){return function(_0x1d1b9c){if(_0x1d1b9c){var _0xe46148=_0x1d1b9c[_0xded4('0x16')],_0x5ed529=_0x18ab73[_0xded4('0x17')],_0x5d6393=_0x18ab73[_0xded4('0x17')]+_0x18ab73['limit'],_0x1f35c3;if(_0x5d6393>=_0xe46148){_0x5d6393=_0xe46148;_0x1f35c3=0xc8;}else{_0x1f35c3=0xce;}_0x1a4f9c['status'](_0x1f35c3);return _0x1a4f9c[_0xded4('0x18')](_0xded4('0x19'),_0x5ed529+'-'+_0x5d6393+'/'+_0xe46148)[_0xded4('0x1a')](_0x1d1b9c);}return null;};}function patchUpdates(_0x19d3a0){return function(_0x5595b6){try{jsonpatch[_0xded4('0x1b')](_0x5595b6,_0x19d3a0,!![]);}catch(_0x34b097){return BPromise[_0xded4('0x1c')](_0x34b097);}return _0x5595b6[_0xded4('0x1d')]();};}function saveUpdates(_0x3c0b97,_0x3086bd){return function(_0x4126c7){if(_0x4126c7){return _0x4126c7[_0xded4('0x1e')](_0x3c0b97)[_0xded4('0x1f')](function(_0x1c3bd7){return _0x1c3bd7;});}return null;};}function removeEntity(_0x4ba8f5,_0x40b870){return function(_0x80c1d0){if(_0x80c1d0){return _0x80c1d0['destroy']()[_0xded4('0x1f')](function(){_0x4ba8f5['status'](0xcc)[_0xded4('0x14')]();});}};}function handleEntityNotFound(_0x45d07f,_0x5add2a){return function(_0x36a50a){if(!_0x36a50a){_0x45d07f[_0xded4('0x13')](0x194);}return _0x36a50a;};}function handleError(_0x7ab0df,_0x15961a){_0x15961a=_0x15961a||0x1f4;return function(_0x5a16d1){logger['error'](_0x5a16d1[_0xded4('0x20')]);if(_0x5a16d1[_0xded4('0x21')]){delete _0x5a16d1['name'];}_0x7ab0df[_0xded4('0x15')](_0x15961a)[_0xded4('0x22')](_0x5a16d1);};}exports[_0xded4('0x23')]=function(_0x215a92,_0x4fce55){var _0x1cd21c={},_0xe6118b={},_0x4913c0={'count':0x0,'rows':[]};var _0xfc64f5=db[_0xded4('0x24')]['rawAttributes'];_0xe6118b[_0xded4('0x25')]=_[_0xded4('0x26')](_0xfc64f5);var _0x2587d8={'dateStart':_0x215a92['query'][_0xded4('0x27')],'dateEnd':_0x215a92['query'][_0xded4('0x28')]};delete _0x215a92[_0xded4('0x29')][_0xded4('0x27')];delete _0x215a92['query'][_0xded4('0x28')];_0xe6118b['query']=_[_0xded4('0x26')](_0x215a92['query']);_0xe6118b['filters']=_['intersection'](_0xe6118b[_0xded4('0x25')],_0xe6118b[_0xded4('0x29')]);_0x1cd21c['attributes']=_[_0xded4('0x2a')](_0xe6118b[_0xded4('0x25')],qs['fields'](_0x215a92[_0xded4('0x29')][_0xded4('0x2b')]));_0x1cd21c['attributes']=_0x1cd21c[_0xded4('0x2c')][_0xded4('0x2d')]?_0x1cd21c[_0xded4('0x2c')]:_0xe6118b['model'];if(!_0x215a92[_0xded4('0x29')][_0xded4('0x2e')](_0xded4('0x2f'))){_0x1cd21c[_0xded4('0x30')]=qs[_0xded4('0x30')](_0x215a92['query'][_0xded4('0x30')]);_0x1cd21c[_0xded4('0x17')]=qs[_0xded4('0x17')](_0x215a92[_0xded4('0x29')][_0xded4('0x17')]);}_0x1cd21c['order']=qs[_0xded4('0x31')](_0x215a92['query']['sort']);_0x1cd21c[_0xded4('0x32')]=qs[_0xded4('0x33')](_['pick'](_0x215a92[_0xded4('0x29')],_0xe6118b[_0xded4('0x33')]));if(_0x2587d8[_0xded4('0x27')]){if(_0x2587d8[_0xded4('0x28')]){_0x2587d8[_0xded4('0x28')]=moment(_0x2587d8[_0xded4('0x28')])[_0xded4('0x34')](0x1,_0xded4('0x35'));}else{_0x2587d8[_0xded4('0x28')]=moment(_0x2587d8['dateStart'])[_0xded4('0x34')](0x1,_0xded4('0x35'));}_[_0xded4('0x36')](_0x1cd21c[_0xded4('0x32')],{'createdAt':{'$gte':_0x2587d8[_0xded4('0x27')],'$lte':_0x2587d8[_0xded4('0x28')]}});}if(_0x215a92[_0xded4('0x29')][_0xded4('0x37')]){_0x1cd21c[_0xded4('0x32')]=_[_0xded4('0x36')](_0x1cd21c[_0xded4('0x32')],{'$or':_[_0xded4('0x38')](_0x1cd21c['attributes'],function(_0x55caac){var _0x2d6fb9={};_0x2d6fb9[_0x55caac]={'$like':'%'+_0x215a92['query'][_0xded4('0x37')]+'%'};return _0x2d6fb9;})});}_0x1cd21c=_[_0xded4('0x36')]({},_0x1cd21c,_0x215a92[_0xded4('0x39')]);var _0x1ea2cc={'where':_0x1cd21c['where']};return db[_0xded4('0x24')][_0xded4('0x16')](_0x1ea2cc)['then'](function(_0x19ace3){_0x4913c0['count']=_0x19ace3;if(_0x215a92[_0xded4('0x29')][_0xded4('0x3a')]){_0x1cd21c[_0xded4('0x3b')]=[{'all':!![]}];}return db['SugarcrmField'][_0xded4('0x3c')](_0x1cd21c);})[_0xded4('0x1f')](function(_0x505af2){_0x4913c0[_0xded4('0x3d')]=_0x505af2;return _0x4913c0;})['then'](respondWithFilteredResult(_0x4fce55,_0x1cd21c))[_0xded4('0x3e')](handleError(_0x4fce55,null));};exports[_0xded4('0x3f')]=function(_0x19b463,_0x19f97b){var _0xcdc306={'raw':!![],'where':{'id':_0x19b463[_0xded4('0x40')]['id']}},_0x3b8889={};_0x3b8889[_0xded4('0x25')]=_['keys'](db['SugarcrmField'][_0xded4('0x41')]);_0x3b8889[_0xded4('0x29')]=_['keys'](_0x19b463['query']);_0x3b8889[_0xded4('0x33')]=_[_0xded4('0x2a')](_0x3b8889[_0xded4('0x25')],_0x3b8889['query']);_0xcdc306[_0xded4('0x2c')]=_[_0xded4('0x2a')](_0x3b8889[_0xded4('0x25')],qs[_0xded4('0x2b')](_0x19b463[_0xded4('0x29')][_0xded4('0x2b')]));_0xcdc306[_0xded4('0x2c')]=_0xcdc306[_0xded4('0x2c')][_0xded4('0x2d')]?_0xcdc306[_0xded4('0x2c')]:_0x3b8889['model'];if(_0x19b463[_0xded4('0x29')][_0xded4('0x3a')]){_0xcdc306[_0xded4('0x3b')]=[{'all':!![]}];}_0xcdc306=_[_0xded4('0x36')]({},_0xcdc306,_0x19b463[_0xded4('0x39')]);return db[_0xded4('0x24')]['find'](_0xcdc306)[_0xded4('0x1f')](handleEntityNotFound(_0x19f97b,null))[_0xded4('0x1f')](respondWithResult(_0x19f97b,null))[_0xded4('0x3e')](handleError(_0x19f97b,null));};exports[_0xded4('0x42')]=function(_0x3b8114,_0x580d59){return db[_0xded4('0x24')][_0xded4('0x42')](_0x3b8114[_0xded4('0x43')],{})['then'](respondWithResult(_0x580d59,0xc9))[_0xded4('0x3e')](handleError(_0x580d59,null));};exports['update']=function(_0xb69f11,_0x1a672){if(_0xb69f11[_0xded4('0x43')]['id']){delete _0xb69f11[_0xded4('0x43')]['id'];}return db[_0xded4('0x24')][_0xded4('0x44')]({'where':{'id':_0xb69f11[_0xded4('0x40')]['id']}})[_0xded4('0x1f')](handleEntityNotFound(_0x1a672,null))[_0xded4('0x1f')](saveUpdates(_0xb69f11[_0xded4('0x43')],null))[_0xded4('0x1f')](respondWithResult(_0x1a672,null))[_0xded4('0x3e')](handleError(_0x1a672,null));};exports[_0xded4('0x45')]=function(_0x56f320,_0x2f5422){return db[_0xded4('0x24')][_0xded4('0x44')]({'where':{'id':_0x56f320['params']['id']}})[_0xded4('0x1f')](handleEntityNotFound(_0x2f5422,null))['then'](removeEntity(_0x2f5422,null))[_0xded4('0x3e')](handleError(_0x2f5422,null));};
\ No newline at end of file
+var _0x209d=['mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','count','offset','limit','reject','save','update','then','destroy','end','error','stack','name','send','index','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','day','add','filter','map','merge','options','SugarcrmField','includeAll','include','rows','params','rawAttributes','find','catch','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x50a382,_0x242e49){var _0x34d186=function(_0x3e2b1a){while(--_0x3e2b1a){_0x50a382['push'](_0x50a382['shift']());}};_0x34d186(++_0x242e49);}(_0x209d,0x160));var _0xd209=function(_0x65f69a,_0x24eb77){_0x65f69a=_0x65f69a-0x0;var _0xf3c8a6=_0x209d[_0x65f69a];return _0xf3c8a6;};'use strict';var pdf=require(_0xd209('0x0'));var emlformat=require(_0xd209('0x1'));var rimraf=require(_0xd209('0x2'));var zipdir=require(_0xd209('0x3'));var jsonpatch=require(_0xd209('0x4'));var rp=require(_0xd209('0x5'));var moment=require(_0xd209('0x6'));var BPromise=require(_0xd209('0x7'));var Mustache=require(_0xd209('0x8'));var util=require(_0xd209('0x9'));var path=require(_0xd209('0xa'));var sox=require(_0xd209('0xb'));var csv=require(_0xd209('0xc'));var ejs=require(_0xd209('0xd'));var fs=require('fs');var _=require(_0xd209('0xe'));var squel=require(_0xd209('0xf'));var crypto=require(_0xd209('0x10'));var jsforce=require('jsforce');var deskjs=require(_0xd209('0x11'));var toCsv=require(_0xd209('0xc'));var querystring=require('querystring');var Papa=require(_0xd209('0x12'));var Redis=require(_0xd209('0x13'));var qs=require('../../components/parsers/qs');var logger=require(_0xd209('0x14'))(_0xd209('0x15'));var utils=require(_0xd209('0x16'));var config=require(_0xd209('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x294222,_0x11ba24){_0x11ba24=_0x11ba24||0xcc;return function(_0x29ba2a){if(_0x29ba2a){return _0x294222[_0xd209('0x18')](_0x11ba24);}return _0x294222[_0xd209('0x19')](_0x11ba24)['end']();};}function respondWithResult(_0x33fe89,_0x5a7a9b){_0x5a7a9b=_0x5a7a9b||0xc8;return function(_0x327b17){if(_0x327b17){return _0x33fe89[_0xd209('0x19')](_0x5a7a9b)['json'](_0x327b17);}};}function respondWithFilteredResult(_0x1d2d58,_0x3430d6){return function(_0x56097c){if(_0x56097c){var _0x11db4d=_0x56097c[_0xd209('0x1a')],_0x111826=_0x3430d6[_0xd209('0x1b')],_0x397607=_0x3430d6['offset']+_0x3430d6[_0xd209('0x1c')],_0xfb05c8;if(_0x397607>=_0x11db4d){_0x397607=_0x11db4d;_0xfb05c8=0xc8;}else{_0xfb05c8=0xce;}_0x1d2d58['status'](_0xfb05c8);return _0x1d2d58['set']('Content-Range',_0x111826+'-'+_0x397607+'/'+_0x11db4d)['json'](_0x56097c);}return null;};}function patchUpdates(_0x40de56){return function(_0x3f4d83){try{jsonpatch['apply'](_0x3f4d83,_0x40de56,!![]);}catch(_0x87877b){return BPromise[_0xd209('0x1d')](_0x87877b);}return _0x3f4d83[_0xd209('0x1e')]();};}function saveUpdates(_0x5e273c,_0x714535){return function(_0x1b5992){if(_0x1b5992){return _0x1b5992[_0xd209('0x1f')](_0x5e273c)[_0xd209('0x20')](function(_0x21c876){return _0x21c876;});}return null;};}function removeEntity(_0x56b520,_0x10266d){return function(_0x7bbea0){if(_0x7bbea0){return _0x7bbea0[_0xd209('0x21')]()['then'](function(){_0x56b520[_0xd209('0x19')](0xcc)[_0xd209('0x22')]();});}};}function handleEntityNotFound(_0x4048b4,_0x3ebd91){return function(_0x3c855b){if(!_0x3c855b){_0x4048b4[_0xd209('0x18')](0x194);}return _0x3c855b;};}function handleError(_0x4dfd66,_0x3c1a9e){_0x3c1a9e=_0x3c1a9e||0x1f4;return function(_0x501328){logger[_0xd209('0x23')](_0x501328[_0xd209('0x24')]);if(_0x501328[_0xd209('0x25')]){delete _0x501328[_0xd209('0x25')];}_0x4dfd66[_0xd209('0x19')](_0x3c1a9e)[_0xd209('0x26')](_0x501328);};}exports[_0xd209('0x27')]=function(_0x3985b0,_0x56300f){var _0x215426={},_0x55020e={},_0x3e842b={'count':0x0,'rows':[]};var _0x637460=db['SugarcrmField']['rawAttributes'];_0x55020e[_0xd209('0x28')]=_[_0xd209('0x29')](_0x637460);var _0x4a6e54={'dateStart':_0x3985b0['query']['dateStart'],'dateEnd':_0x3985b0[_0xd209('0x2a')]['dateEnd']};delete _0x3985b0['query'][_0xd209('0x2b')];delete _0x3985b0[_0xd209('0x2a')][_0xd209('0x2c')];_0x55020e[_0xd209('0x2a')]=_[_0xd209('0x29')](_0x3985b0[_0xd209('0x2a')]);_0x55020e[_0xd209('0x2d')]=_[_0xd209('0x2e')](_0x55020e[_0xd209('0x28')],_0x55020e[_0xd209('0x2a')]);_0x215426[_0xd209('0x2f')]=_[_0xd209('0x2e')](_0x55020e[_0xd209('0x28')],qs[_0xd209('0x30')](_0x3985b0[_0xd209('0x2a')][_0xd209('0x30')]));_0x215426[_0xd209('0x2f')]=_0x215426['attributes'][_0xd209('0x31')]?_0x215426[_0xd209('0x2f')]:_0x55020e['model'];if(!_0x3985b0[_0xd209('0x2a')][_0xd209('0x32')](_0xd209('0x33'))){_0x215426['limit']=qs[_0xd209('0x1c')](_0x3985b0[_0xd209('0x2a')]['limit']);_0x215426[_0xd209('0x1b')]=qs[_0xd209('0x1b')](_0x3985b0[_0xd209('0x2a')][_0xd209('0x1b')]);}_0x215426[_0xd209('0x34')]=qs[_0xd209('0x35')](_0x3985b0[_0xd209('0x2a')][_0xd209('0x35')]);_0x215426[_0xd209('0x36')]=qs[_0xd209('0x2d')](_[_0xd209('0x37')](_0x3985b0[_0xd209('0x2a')],_0x55020e['filters']));if(_0x4a6e54[_0xd209('0x2b')]){if(_0x4a6e54[_0xd209('0x2c')]){_0x4a6e54[_0xd209('0x2c')]=moment(_0x4a6e54['dateEnd'])['add'](0x1,_0xd209('0x38'));}else{_0x4a6e54[_0xd209('0x2c')]=moment(_0x4a6e54[_0xd209('0x2b')])[_0xd209('0x39')](0x1,_0xd209('0x38'));}_['merge'](_0x215426['where'],{'createdAt':{'$gte':_0x4a6e54[_0xd209('0x2b')],'$lte':_0x4a6e54[_0xd209('0x2c')]}});}if(_0x3985b0['query'][_0xd209('0x3a')]){_0x215426[_0xd209('0x36')]=_['merge'](_0x215426[_0xd209('0x36')],{'$or':_[_0xd209('0x3b')](_0x215426[_0xd209('0x2f')],function(_0xf5804a){var _0x262288={};_0x262288[_0xf5804a]={'$like':'%'+_0x3985b0[_0xd209('0x2a')][_0xd209('0x3a')]+'%'};return _0x262288;})});}_0x215426=_[_0xd209('0x3c')]({},_0x215426,_0x3985b0[_0xd209('0x3d')]);var _0x458f23={'where':_0x215426[_0xd209('0x36')]};return db[_0xd209('0x3e')][_0xd209('0x1a')](_0x458f23)['then'](function(_0xd69e16){_0x3e842b[_0xd209('0x1a')]=_0xd69e16;if(_0x3985b0[_0xd209('0x2a')][_0xd209('0x3f')]){_0x215426[_0xd209('0x40')]=[{'all':!![]}];}return db[_0xd209('0x3e')]['findAll'](_0x215426);})['then'](function(_0x266af2){_0x3e842b[_0xd209('0x41')]=_0x266af2;return _0x3e842b;})[_0xd209('0x20')](respondWithFilteredResult(_0x56300f,_0x215426))['catch'](handleError(_0x56300f,null));};exports['show']=function(_0x1cd4f8,_0x48ec84){var _0x4fcd4c={'raw':!![],'where':{'id':_0x1cd4f8[_0xd209('0x42')]['id']}},_0x117d09={};_0x117d09[_0xd209('0x28')]=_[_0xd209('0x29')](db[_0xd209('0x3e')][_0xd209('0x43')]);_0x117d09[_0xd209('0x2a')]=_[_0xd209('0x29')](_0x1cd4f8['query']);_0x117d09['filters']=_[_0xd209('0x2e')](_0x117d09[_0xd209('0x28')],_0x117d09['query']);_0x4fcd4c[_0xd209('0x2f')]=_[_0xd209('0x2e')](_0x117d09['model'],qs['fields'](_0x1cd4f8[_0xd209('0x2a')][_0xd209('0x30')]));_0x4fcd4c[_0xd209('0x2f')]=_0x4fcd4c[_0xd209('0x2f')][_0xd209('0x31')]?_0x4fcd4c[_0xd209('0x2f')]:_0x117d09[_0xd209('0x28')];if(_0x1cd4f8[_0xd209('0x2a')][_0xd209('0x3f')]){_0x4fcd4c[_0xd209('0x40')]=[{'all':!![]}];}_0x4fcd4c=_['merge']({},_0x4fcd4c,_0x1cd4f8['options']);return db[_0xd209('0x3e')][_0xd209('0x44')](_0x4fcd4c)[_0xd209('0x20')](handleEntityNotFound(_0x48ec84,null))[_0xd209('0x20')](respondWithResult(_0x48ec84,null))[_0xd209('0x45')](handleError(_0x48ec84,null));};exports['create']=function(_0x15952f,_0x176aa9){return db['SugarcrmField'][_0xd209('0x46')](_0x15952f[_0xd209('0x47')],{})['then'](respondWithResult(_0x176aa9,0xc9))['catch'](handleError(_0x176aa9,null));};exports[_0xd209('0x1f')]=function(_0x5b9f97,_0x3d8cee){if(_0x5b9f97[_0xd209('0x47')]['id']){delete _0x5b9f97[_0xd209('0x47')]['id'];}return db[_0xd209('0x3e')]['find']({'where':{'id':_0x5b9f97[_0xd209('0x42')]['id']}})[_0xd209('0x20')](handleEntityNotFound(_0x3d8cee,null))['then'](saveUpdates(_0x5b9f97[_0xd209('0x47')],null))[_0xd209('0x20')](respondWithResult(_0x3d8cee,null))[_0xd209('0x45')](handleError(_0x3d8cee,null));};exports[_0xd209('0x21')]=function(_0x246214,_0x615c9a){return db[_0xd209('0x3e')]['find']({'where':{'id':_0x246214[_0xd209('0x42')]['id']}})[_0xd209('0x20')](handleEntityNotFound(_0x615c9a,null))['then'](removeEntity(_0x615c9a,null))[_0xd209('0x45')](handleError(_0x615c9a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x586e=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','exports','define','SugarcrmField'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x586e,0x104));var _0xe586=function(_0x34aec4,_0x3801da){_0x34aec4=_0x34aec4-0x0;var _0x51e1a7=_0x586e[_0x34aec4];return _0x51e1a7;};'use strict';var _=require(_0xe586('0x0'));var util=require(_0xe586('0x1'));var logger=require(_0xe586('0x2'))(_0xe586('0x3'));var moment=require(_0xe586('0x4'));var BPromise=require(_0xe586('0x5'));var rp=require(_0xe586('0x6'));var attributes=require('./intSugarcrmField.attributes');module[_0xe586('0x7')]=function(_0x1be849,_0x52447a){return _0x1be849[_0xe586('0x8')](_0xe586('0x9'),attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3e2c=['bluebird','request-promise','./intSugarcrmField.attributes','define','util','../../config/logger','api','moment'];(function(_0x3a7497,_0x5611fa){var _0x5dd96c=function(_0x40b423){while(--_0x40b423){_0x3a7497['push'](_0x3a7497['shift']());}};_0x5dd96c(++_0x5611fa);}(_0x3e2c,0x1f4));var _0xc3e2=function(_0x6bbb11,_0x44e6b5){_0x6bbb11=_0x6bbb11-0x0;var _0x4c4dc3=_0x3e2c[_0x6bbb11];return _0x4c4dc3;};'use strict';var _=require('lodash');var util=require(_0xc3e2('0x0'));var logger=require(_0xc3e2('0x1'))(_0xc3e2('0x2'));var moment=require(_0xc3e2('0x3'));var BPromise=require(_0xc3e2('0x4'));var rp=require(_0xc3e2('0x5'));var attributes=require(_0xc3e2('0x6'));module['exports']=function(_0x541630,_0x4f396d){return _0x541630[_0xc3e2('0x7')]('SugarcrmField',attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc0f=['randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','SugarcrmField,\x20%s,\x20%s','request\x20sent','SugarcrmField,\x20%s,\x20%s,\x20%s','error','code','message','info','catch','util','bluebird'];(function(_0x537430,_0x463d20){var _0x5c5f0c=function(_0x4a7e18){while(--_0x4a7e18){_0x537430['push'](_0x537430['shift']());}};_0x5c5f0c(++_0x463d20);}(_0xbc0f,0x108));var _0xfbc0=function(_0x1573ea,_0x434f02){_0x1573ea=_0x1573ea-0x0;var _0x51c0e2=_0xbc0f[_0x1573ea];return _0x51c0e2;};'use strict';var _=require('lodash');var util=require(_0xfbc0('0x0'));var moment=require('moment');var BPromise=require(_0xfbc0('0x1'));var rs=require(_0xfbc0('0x2'));var fs=require('fs');var db=require(_0xfbc0('0x3'))['db'];var utils=require(_0xfbc0('0x4'));var logger=require(_0xfbc0('0x5'))(_0xfbc0('0x6'));var config=require('../../config/environment');var jayson=require(_0xfbc0('0x7'));var client=jayson[_0xfbc0('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3215be,_0x340d3c,_0x141a23){return new BPromise(function(_0x29c9bc,_0x33d37e){return client[_0xfbc0('0x9')](_0x3215be,_0x141a23)[_0xfbc0('0xa')](function(_0x5095c0){logger['info'](_0xfbc0('0xb'),_0x340d3c,_0xfbc0('0xc'));logger['debug'](_0xfbc0('0xd'),_0x340d3c,_0xfbc0('0xc'),JSON['stringify'](_0x5095c0));if(_0x5095c0[_0xfbc0('0xe')]){if(_0x5095c0[_0xfbc0('0xe')][_0xfbc0('0xf')]===0x1f4){logger[_0xfbc0('0xe')](_0xfbc0('0xb'),_0x340d3c,_0x5095c0[_0xfbc0('0xe')][_0xfbc0('0x10')]);return _0x33d37e(_0x5095c0['error'][_0xfbc0('0x10')]);}logger[_0xfbc0('0xe')](_0xfbc0('0xb'),_0x340d3c,_0x5095c0[_0xfbc0('0xe')]['message']);return _0x29c9bc(_0x5095c0[_0xfbc0('0xe')]['message']);}else{logger[_0xfbc0('0x11')](_0xfbc0('0xb'),_0x340d3c,_0xfbc0('0xc'));_0x29c9bc(_0x5095c0['result'][_0xfbc0('0x10')]);}})[_0xfbc0('0x12')](function(_0x428909){logger[_0xfbc0('0xe')]('SugarcrmField,\x20%s,\x20%s',_0x340d3c,_0x428909);_0x33d37e(_0x428909);});});}
\ No newline at end of file
+var _0xd54a=['moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','stringify','error','SugarcrmField,\x20%s,\x20%s','message','request\x20sent','catch','lodash'];(function(_0x12580a,_0xa206aa){var _0x32403f=function(_0x5b755c){while(--_0x5b755c){_0x12580a['push'](_0x12580a['shift']());}};_0x32403f(++_0xa206aa);}(_0xd54a,0xce));var _0xad54=function(_0xa148b7,_0x2f3eb2){_0xa148b7=_0xa148b7-0x0;var _0x51efd3=_0xd54a[_0xa148b7];return _0x51efd3;};'use strict';var _=require(_0xad54('0x0'));var util=require('util');var moment=require(_0xad54('0x1'));var BPromise=require('bluebird');var rs=require(_0xad54('0x2'));var fs=require('fs');var Redis=require(_0xad54('0x3'));var db=require(_0xad54('0x4'))['db'];var utils=require(_0xad54('0x5'));var logger=require(_0xad54('0x6'))(_0xad54('0x7'));var config=require(_0xad54('0x8'));var jayson=require(_0xad54('0x9'));var client=jayson[_0xad54('0xa')][_0xad54('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x278ab3,_0xfc9c63,_0x1a272b){return new BPromise(function(_0x2b43b4,_0x47fabf){return client[_0xad54('0xc')](_0x278ab3,_0x1a272b)[_0xad54('0xd')](function(_0x8affe8){logger[_0xad54('0xe')]('SugarcrmField,\x20%s,\x20%s',_0xfc9c63,'request\x20sent');logger[_0xad54('0xf')](_0xad54('0x10'),_0xfc9c63,'request\x20sent',JSON[_0xad54('0x11')](_0x8affe8));if(_0x8affe8[_0xad54('0x12')]){if(_0x8affe8[_0xad54('0x12')]['code']===0x1f4){logger['error'](_0xad54('0x13'),_0xfc9c63,_0x8affe8[_0xad54('0x12')]['message']);return _0x47fabf(_0x8affe8[_0xad54('0x12')][_0xad54('0x14')]);}logger[_0xad54('0x12')](_0xad54('0x13'),_0xfc9c63,_0x8affe8[_0xad54('0x12')]['message']);return _0x2b43b4(_0x8affe8['error'][_0xad54('0x14')]);}else{logger[_0xad54('0xe')](_0xad54('0x13'),_0xfc9c63,_0xad54('0x15'));_0x2b43b4(_0x8affe8['result'][_0xad54('0x14')]);}})[_0xad54('0x16')](function(_0x13444f){logger[_0xad54('0x12')](_0xad54('0x13'),_0xfc9c63,_0x13444f);_0x47fabf(_0x13444f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad7f=['path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerAccount.controller','isAuthenticated','index','get','show','getConfigurations','/:id/fields','post','create','/:id/configurations','addConfiguration','put','/:id','update','delete','destroy','exports','util'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xad7f,0x17f));var _0xfad7=function(_0x1d8005,_0x272160){_0x1d8005=_0x1d8005-0x0;var _0x237dc6=_0xad7f[_0x1d8005];return _0x237dc6;};'use strict';var multer=require('multer');var util=require(_0xfad7('0x0'));var path=require(_0xfad7('0x1'));var timeout=require(_0xfad7('0x2'));var express=require(_0xfad7('0x3'));var router=express['Router']();var auth=require(_0xfad7('0x4'));var interaction=require(_0xfad7('0x5'));var config=require(_0xfad7('0x6'));var controller=require(_0xfad7('0x7'));router['get']('/',auth[_0xfad7('0x8')](),controller[_0xfad7('0x9')]);router[_0xfad7('0xa')]('/:id',auth[_0xfad7('0x8')](),controller[_0xfad7('0xb')]);router[_0xfad7('0xa')]('/:id/configurations',auth[_0xfad7('0x8')](),controller[_0xfad7('0xc')]);router[_0xfad7('0xa')](_0xfad7('0xd'),auth[_0xfad7('0x8')](),controller['getFields']);router[_0xfad7('0xe')]('/',auth[_0xfad7('0x8')](),controller[_0xfad7('0xf')]);router[_0xfad7('0xe')](_0xfad7('0x10'),auth['isAuthenticated'](),controller[_0xfad7('0x11')]);router[_0xfad7('0x12')](_0xfad7('0x13'),auth[_0xfad7('0x8')](),controller[_0xfad7('0x14')]);router[_0xfad7('0x15')](_0xfad7('0x13'),auth[_0xfad7('0x8')](),controller[_0xfad7('0x16')]);module[_0xfad7('0x17')]=router;
\ No newline at end of file
+var _0x8f65=['post','addConfiguration','put','update','delete','destroy','exports','multer','util','path','express','../../config/environment','./intVtigerAccount.controller','get','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','create'];(function(_0x3b0175,_0x132039){var _0x18d7e7=function(_0x1c2690){while(--_0x1c2690){_0x3b0175['push'](_0x3b0175['shift']());}};_0x18d7e7(++_0x132039);}(_0x8f65,0x149));var _0x58f6=function(_0x3fb198,_0x2016e7){_0x3fb198=_0x3fb198-0x0;var _0x56fda9=_0x8f65[_0x3fb198];return _0x56fda9;};'use strict';var multer=require(_0x58f6('0x0'));var util=require(_0x58f6('0x1'));var path=require(_0x58f6('0x2'));var timeout=require('connect-timeout');var express=require(_0x58f6('0x3'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x58f6('0x4'));var controller=require(_0x58f6('0x5'));router[_0x58f6('0x6')]('/',auth[_0x58f6('0x7')](),controller[_0x58f6('0x8')]);router[_0x58f6('0x6')](_0x58f6('0x9'),auth[_0x58f6('0x7')](),controller[_0x58f6('0xa')]);router[_0x58f6('0x6')](_0x58f6('0xb'),auth[_0x58f6('0x7')](),controller[_0x58f6('0xc')]);router[_0x58f6('0x6')](_0x58f6('0xd'),auth[_0x58f6('0x7')](),controller[_0x58f6('0xe')]);router['post']('/',auth[_0x58f6('0x7')](),controller[_0x58f6('0xf')]);router[_0x58f6('0x10')](_0x58f6('0xb'),auth['isAuthenticated'](),controller[_0x58f6('0x11')]);router[_0x58f6('0x12')](_0x58f6('0x9'),auth[_0x58f6('0x7')](),controller[_0x58f6('0x13')]);router[_0x58f6('0x14')](_0x58f6('0x9'),auth[_0x58f6('0x7')](),controller[_0x58f6('0x15')]);module[_0x58f6('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf020=['STRING','HelpDesk','sequelize','exports'];(function(_0x3b247d,_0xbe4218){var _0x131bcf=function(_0x4882f4){while(--_0x4882f4){_0x3b247d['push'](_0x3b247d['shift']());}};_0x131bcf(++_0xbe4218);}(_0xf020,0xda));var _0x0f02=function(_0x1971eb,_0x18e80a){_0x1971eb=_0x1971eb-0x0;var _0x3a55ce=_0xf020[_0x1971eb];return _0x3a55ce;};'use strict';var Sequelize=require(_0x0f02('0x0'));module[_0x0f02('0x1')]={'name':{'type':Sequelize[_0x0f02('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x0f02('0x2')]},'username':{'type':Sequelize[_0x0f02('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize[_0x0f02('0x2')],'allowNull':![],'defaultValue':_0x0f02('0x3')},'remoteUri':{'type':Sequelize[_0x0f02('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x0f02('0x2')]},'accessKey':{'type':Sequelize[_0x0f02('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x5d22=['sequelize','STRING','HelpDesk'];(function(_0x3c38c7,_0x14dd97){var _0x4aa4b1=function(_0x3f1106){while(--_0x3f1106){_0x3c38c7['push'](_0x3c38c7['shift']());}};_0x4aa4b1(++_0x14dd97);}(_0x5d22,0x18c));var _0x25d2=function(_0x5351a1,_0x55ab9f){_0x5351a1=_0x5351a1-0x0;var _0x44cf58=_0x5d22[_0x5351a1];return _0x44cf58;};'use strict';var Sequelize=require(_0x25d2('0x0'));module['exports']={'name':{'type':Sequelize[_0x25d2('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x25d2('0x1')],'allowNull':![]},'moduleName':{'type':Sequelize[_0x25d2('0x1')],'allowNull':![],'defaultValue':_0x25d2('0x2')},'remoteUri':{'type':Sequelize[_0x25d2('0x1')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x25d2('0x1')]},'accessKey':{'type':Sequelize[_0x25d2('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x430c=['sort','where','add','day','merge','map','include','VtigerAccount','findAll','rows','show','params','rawAttributes','includeAll','options','find','catch','create','body','destroy','getConfigurations','findOne','pick','filter','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','VtigerConfiguration','VtigerField','username','description','moduleName','serverUrl','accessKey','%s/webservice.php','GET','success','login','result','describe','sessionName','autogenerated','reference','owner','includes','false','label','startsWith','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','html-pdf','zip-dir','fast-json-patch','request-promise','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../components/integrations/configuration','client','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','sendStatus','stack','name','send','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','nolimit','order'];(function(_0xdb3d60,_0x286503){var _0x38a1ae=function(_0x2bc56e){while(--_0x2bc56e){_0xdb3d60['push'](_0xdb3d60['shift']());}};_0x38a1ae(++_0x286503);}(_0x430c,0x1a1));var _0xc430=function(_0x545bed,_0x221e96){_0x545bed=_0x545bed-0x0;var _0x16c79c=_0x430c[_0x545bed];return _0x16c79c;};'use strict';var pdf=require(_0xc430('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc430('0x1'));var jsonpatch=require(_0xc430('0x2'));var rp=require(_0xc430('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xc430('0x4'));var sox=require(_0xc430('0x5'));var csv=require('to-csv');var ejs=require(_0xc430('0x6'));var fs=require('fs');var _=require('lodash');var squel=require(_0xc430('0x7'));var crypto=require(_0xc430('0x8'));var jsforce=require(_0xc430('0x9'));var deskjs=require(_0xc430('0xa'));var toCsv=require(_0xc430('0xb'));var querystring=require(_0xc430('0xc'));var Papa=require(_0xc430('0xd'));var qs=require(_0xc430('0xe'));var logger=require(_0xc430('0xf'))('api');var utils=require(_0xc430('0x10'));var config=require(_0xc430('0x11'));var db=require('../../mysqldb')['db'];var integrations=require(_0xc430('0x12'));var jayson=require('jayson/promise');var client=jayson[_0xc430('0x13')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2ce28a,_0x8aa2e6,_0xc5f92,_0x1fb8ce){return new BPromise(function(_0x2cdef9,_0x2777af){var _0x2a3777=_0x1fb8ce||client;return _0x2a3777['request'](_0x2ce28a,_0xc5f92)['then'](function(_0x3f359c){logger[_0xc430('0x14')](_0xc430('0x15'),_0x8aa2e6,_0xc430('0x16'));logger[_0xc430('0x17')]('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x8aa2e6,_0xc430('0x16'),JSON['stringify'](_0x3f359c));if(_0x3f359c['error']){if(_0x3f359c[_0xc430('0x18')][_0xc430('0x19')]===0x1f4){logger[_0xc430('0x18')]('VtigerAccount,\x20%s,\x20%s',_0x8aa2e6,_0x3f359c['error'][_0xc430('0x1a')]);return _0x2777af(_0x3f359c['error'][_0xc430('0x1a')]);}logger['error']('VtigerAccount,\x20%s,\x20%s',_0x8aa2e6,_0x3f359c[_0xc430('0x18')]['message']);return _0x2cdef9(_0x3f359c[_0xc430('0x18')][_0xc430('0x1a')]);}else{logger[_0xc430('0x14')](_0xc430('0x15'),_0x8aa2e6,_0xc430('0x16'));_0x2cdef9(_0x3f359c['result'][_0xc430('0x1a')]);}})['catch'](function(_0x4d2d43){logger[_0xc430('0x18')](_0xc430('0x15'),_0x8aa2e6,_0x4d2d43);_0x2777af(_0x4d2d43);});});}function respondWithStatusCode(_0x3c7afa,_0x56dd16){_0x56dd16=_0x56dd16||0xcc;return function(_0x3fd56b){if(_0x3fd56b){return _0x3c7afa['sendStatus'](_0x56dd16);}return _0x3c7afa[_0xc430('0x1b')](_0x56dd16)[_0xc430('0x1c')]();};}function respondWithResult(_0x4efecd,_0x31b4f1){_0x31b4f1=_0x31b4f1||0xc8;return function(_0x3cdbd3){if(_0x3cdbd3){return _0x4efecd['status'](_0x31b4f1)[_0xc430('0x1d')](_0x3cdbd3);}};}function respondWithFilteredResult(_0x59c498,_0x3aa85e){return function(_0x4b5280){if(_0x4b5280){var _0x3db397=_0x4b5280[_0xc430('0x1e')],_0x21e28a=_0x3aa85e[_0xc430('0x1f')],_0x50110b=_0x3aa85e[_0xc430('0x1f')]+_0x3aa85e[_0xc430('0x20')],_0x33433f;if(_0x50110b>=_0x3db397){_0x50110b=_0x3db397;_0x33433f=0xc8;}else{_0x33433f=0xce;}_0x59c498['status'](_0x33433f);return _0x59c498[_0xc430('0x21')](_0xc430('0x22'),_0x21e28a+'-'+_0x50110b+'/'+_0x3db397)[_0xc430('0x1d')](_0x4b5280);}return null;};}function patchUpdates(_0x1591e3){return function(_0x542cba){try{jsonpatch[_0xc430('0x23')](_0x542cba,_0x1591e3,!![]);}catch(_0x4cf56c){return BPromise[_0xc430('0x24')](_0x4cf56c);}return _0x542cba['save']();};}function saveUpdates(_0x6b263b,_0x1045c0){return function(_0xfc8767){if(_0xfc8767){return _0xfc8767[_0xc430('0x25')](_0x6b263b)['then'](function(_0x17c975){return _0x17c975;});}return null;};}function removeEntity(_0x2a85aa,_0x2bdfc4){return function(_0xaec1ed){if(_0xaec1ed){return _0xaec1ed['destroy']()[_0xc430('0x26')](function(){_0x2a85aa[_0xc430('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8b71f,_0x4ded17){return function(_0x5453a7){if(!_0x5453a7){_0x8b71f[_0xc430('0x27')](0x194);}return _0x5453a7;};}function handleError(_0x973a39,_0x7f7ad9){_0x7f7ad9=_0x7f7ad9||0x1f4;return function(_0x476c12){logger[_0xc430('0x18')](_0x476c12[_0xc430('0x28')]);if(_0x476c12[_0xc430('0x29')]){delete _0x476c12[_0xc430('0x29')];}_0x973a39['status'](_0x7f7ad9)[_0xc430('0x2a')](_0x476c12);};}exports['index']=function(_0x119bee,_0x43029d){var _0x3fec7c={},_0x44ca3e={},_0x5cb617={'count':0x0,'rows':[]};var _0x2848ae=db['VtigerAccount']['rawAttributes'];_0x44ca3e[_0xc430('0x2b')]=_[_0xc430('0x2c')](_0x2848ae);var _0x521793={'dateStart':_0x119bee[_0xc430('0x2d')][_0xc430('0x2e')],'dateEnd':_0x119bee[_0xc430('0x2d')][_0xc430('0x2f')]};delete _0x119bee[_0xc430('0x2d')][_0xc430('0x2e')];delete _0x119bee[_0xc430('0x2d')][_0xc430('0x2f')];_0x44ca3e[_0xc430('0x2d')]=_[_0xc430('0x2c')](_0x119bee[_0xc430('0x2d')]);_0x44ca3e[_0xc430('0x30')]=_[_0xc430('0x31')](_0x44ca3e[_0xc430('0x2b')],_0x44ca3e[_0xc430('0x2d')]);_0x3fec7c['attributes']=_[_0xc430('0x31')](_0x44ca3e[_0xc430('0x2b')],qs[_0xc430('0x32')](_0x119bee[_0xc430('0x2d')]['fields']));_0x3fec7c[_0xc430('0x33')]=_0x3fec7c[_0xc430('0x33')][_0xc430('0x34')]?_0x3fec7c[_0xc430('0x33')]:_0x44ca3e[_0xc430('0x2b')];if(!_0x119bee[_0xc430('0x2d')]['hasOwnProperty'](_0xc430('0x35'))){_0x3fec7c[_0xc430('0x20')]=qs[_0xc430('0x20')](_0x119bee[_0xc430('0x2d')][_0xc430('0x20')]);_0x3fec7c[_0xc430('0x1f')]=qs[_0xc430('0x1f')](_0x119bee[_0xc430('0x2d')][_0xc430('0x1f')]);}_0x3fec7c[_0xc430('0x36')]=qs[_0xc430('0x37')](_0x119bee[_0xc430('0x2d')][_0xc430('0x37')]);_0x3fec7c[_0xc430('0x38')]=qs['filters'](_['pick'](_0x119bee['query'],_0x44ca3e[_0xc430('0x30')]));if(_0x521793[_0xc430('0x2e')]){if(_0x521793[_0xc430('0x2f')]){_0x521793[_0xc430('0x2f')]=moment(_0x521793[_0xc430('0x2f')])[_0xc430('0x39')](0x1,_0xc430('0x3a'));}else{_0x521793[_0xc430('0x2f')]=moment(_0x521793[_0xc430('0x2e')])[_0xc430('0x39')](0x1,_0xc430('0x3a'));}_[_0xc430('0x3b')](_0x3fec7c[_0xc430('0x38')],{'createdAt':{'$gte':_0x521793[_0xc430('0x2e')],'$lte':_0x521793[_0xc430('0x2f')]}});}if(_0x119bee[_0xc430('0x2d')]['filter']){_0x3fec7c[_0xc430('0x38')]=_[_0xc430('0x3b')](_0x3fec7c[_0xc430('0x38')],{'$or':_[_0xc430('0x3c')](_0x3fec7c[_0xc430('0x33')],function(_0x285c8f){var _0x605066={};_0x605066[_0x285c8f]={'$like':'%'+_0x119bee[_0xc430('0x2d')]['filter']+'%'};return _0x605066;})});}_0x3fec7c=_[_0xc430('0x3b')]({},_0x3fec7c,_0x119bee['options']);var _0x2c1560={'where':_0x3fec7c[_0xc430('0x38')]};return db['VtigerAccount']['count'](_0x2c1560)[_0xc430('0x26')](function(_0x4986d4){_0x5cb617['count']=_0x4986d4;if(_0x119bee[_0xc430('0x2d')]['includeAll']){_0x3fec7c[_0xc430('0x3d')]=[{'all':!![]}];}return db[_0xc430('0x3e')][_0xc430('0x3f')](_0x3fec7c);})['then'](function(_0x2ac26c){_0x5cb617[_0xc430('0x40')]=_0x2ac26c;return _0x5cb617;})[_0xc430('0x26')](respondWithFilteredResult(_0x43029d,_0x3fec7c))['catch'](handleError(_0x43029d,null));};exports[_0xc430('0x41')]=function(_0x3ad75c,_0x31ae00){var _0x47fd7f={'raw':![],'where':{'id':_0x3ad75c[_0xc430('0x42')]['id']}},_0x636374={};_0x636374[_0xc430('0x2b')]=_['keys'](db[_0xc430('0x3e')][_0xc430('0x43')]);_0x636374[_0xc430('0x2d')]=_['keys'](_0x3ad75c[_0xc430('0x2d')]);_0x636374[_0xc430('0x30')]=_[_0xc430('0x31')](_0x636374[_0xc430('0x2b')],_0x636374['query']);_0x47fd7f[_0xc430('0x33')]=_['intersection'](_0x636374[_0xc430('0x2b')],qs[_0xc430('0x32')](_0x3ad75c[_0xc430('0x2d')][_0xc430('0x32')]));_0x47fd7f[_0xc430('0x33')]=_0x47fd7f[_0xc430('0x33')]['length']?_0x47fd7f[_0xc430('0x33')]:_0x636374[_0xc430('0x2b')];if(_0x3ad75c['query'][_0xc430('0x44')]){_0x47fd7f[_0xc430('0x3d')]=[{'all':!![]}];}_0x47fd7f=_[_0xc430('0x3b')]({},_0x47fd7f,_0x3ad75c[_0xc430('0x45')]);return db['VtigerAccount'][_0xc430('0x46')](_0x47fd7f)['then'](handleEntityNotFound(_0x31ae00,null))[_0xc430('0x26')](respondWithResult(_0x31ae00,null))[_0xc430('0x47')](handleError(_0x31ae00,null));};exports[_0xc430('0x48')]=function(_0x1d3dd6,_0x532d98){return db[_0xc430('0x3e')][_0xc430('0x48')](_0x1d3dd6['body'],{})['then'](respondWithResult(_0x532d98,0xc9))[_0xc430('0x47')](handleError(_0x532d98,null));};exports[_0xc430('0x25')]=function(_0x2d3e0b,_0x14c427){if(_0x2d3e0b[_0xc430('0x49')]['id']){delete _0x2d3e0b[_0xc430('0x49')]['id'];}return db[_0xc430('0x3e')]['find']({'where':{'id':_0x2d3e0b[_0xc430('0x42')]['id']}})['then'](handleEntityNotFound(_0x14c427,null))[_0xc430('0x26')](saveUpdates(_0x2d3e0b[_0xc430('0x49')],null))[_0xc430('0x26')](respondWithResult(_0x14c427,null))[_0xc430('0x47')](handleError(_0x14c427,null));};exports[_0xc430('0x4a')]=function(_0x12b6f2,_0x540653){return db[_0xc430('0x3e')][_0xc430('0x46')]({'where':{'id':_0x12b6f2[_0xc430('0x42')]['id']}})[_0xc430('0x26')](handleEntityNotFound(_0x540653,null))[_0xc430('0x26')](removeEntity(_0x540653,null))[_0xc430('0x47')](handleError(_0x540653,null));};exports[_0xc430('0x4b')]=function(_0x56e25a,_0x13e9a5,_0x52b5b4){var _0x2a4ad3={};var _0x4cc37b={};var _0x34b9d6;var _0x582fa0;return db[_0xc430('0x3e')][_0xc430('0x4c')]({'where':{'id':_0x56e25a[_0xc430('0x42')]['id']}})[_0xc430('0x26')](handleEntityNotFound(_0x13e9a5,null))['then'](function(_0x3ad99c){if(_0x3ad99c){_0x34b9d6=_0x3ad99c;_0x4cc37b[_0xc430('0x2b')]=_['keys'](db['VtigerConfiguration'][_0xc430('0x43')]);_0x4cc37b[_0xc430('0x2d')]=_[_0xc430('0x2c')](_0x56e25a[_0xc430('0x2d')]);_0x4cc37b[_0xc430('0x30')]=_[_0xc430('0x31')](_0x4cc37b[_0xc430('0x2b')],_0x4cc37b[_0xc430('0x2d')]);_0x2a4ad3[_0xc430('0x33')]=_[_0xc430('0x31')](_0x4cc37b[_0xc430('0x2b')],qs[_0xc430('0x32')](_0x56e25a['query']['fields']));_0x2a4ad3[_0xc430('0x33')]=_0x2a4ad3['attributes'][_0xc430('0x34')]?_0x2a4ad3[_0xc430('0x33')]:_0x4cc37b['model'];_0x2a4ad3[_0xc430('0x36')]=qs['sort'](_0x56e25a['query'][_0xc430('0x37')]);_0x2a4ad3[_0xc430('0x38')]=qs['filters'](_[_0xc430('0x4d')](_0x56e25a['query'],_0x4cc37b['filters']));if(_0x56e25a[_0xc430('0x2d')][_0xc430('0x4e')]){_0x2a4ad3[_0xc430('0x38')]=_[_0xc430('0x3b')](_0x2a4ad3['where'],{'$or':_[_0xc430('0x3c')](_0x2a4ad3[_0xc430('0x33')],function(_0x35c752){var _0x24eca2={};_0x24eca2[_0x35c752]={'$like':'%'+_0x56e25a['query'][_0xc430('0x4e')]+'%'};return _0x24eca2;})});}_0x2a4ad3=_[_0xc430('0x3b')]({},_0x2a4ad3,_0x56e25a[_0xc430('0x45')]);return _0x34b9d6[_0xc430('0x4b')](_0x2a4ad3);}})[_0xc430('0x26')](function(_0x2c53c9){if(_0x2c53c9){_0x582fa0=_0x2c53c9[_0xc430('0x34')];if(!_0x56e25a[_0xc430('0x2d')][_0xc430('0x4f')](_0xc430('0x35'))){_0x2a4ad3[_0xc430('0x20')]=qs['limit'](_0x56e25a['query']['limit']);_0x2a4ad3[_0xc430('0x1f')]=qs[_0xc430('0x1f')](_0x56e25a[_0xc430('0x2d')]['offset']);}return _0x34b9d6['getConfigurations'](_0x2a4ad3);}})[_0xc430('0x26')](function(_0x1c10b5){if(_0x1c10b5){return _0x1c10b5?{'count':_0x582fa0,'rows':_0x1c10b5}:null;}})[_0xc430('0x26')](respondWithResult(_0x13e9a5,null))[_0xc430('0x47')](handleError(_0x13e9a5,null));};exports[_0xc430('0x50')]=function(_0x407e3f,_0x37303b,_0x1cc357){if(_0x407e3f[_0xc430('0x49')]['id']){delete _0x407e3f[_0xc430('0x49')]['id'];}return db['VtigerAccount'][_0xc430('0x4c')]({'where':{'id':_0x407e3f[_0xc430('0x42')]['id']}})[_0xc430('0x26')](handleEntityNotFound(_0x37303b,null))['then'](function(_0x503c80){if(_0x503c80){_0x407e3f['body'][_0xc430('0x51')]=_0x503c80['id'];_0x407e3f[_0xc430('0x49')][_0xc430('0x52')]=integrations[_0xc430('0x53')](_0x407e3f['body'][_0xc430('0x54')],_0x407e3f[_0xc430('0x49')][_0xc430('0x55')]);_0x407e3f['body'][_0xc430('0x56')]=integrations['getDescriptions'](_0x407e3f[_0xc430('0x49')][_0xc430('0x54')],_0x407e3f[_0xc430('0x49')][_0xc430('0x55')]);return db[_0xc430('0x57')]['create'](_0x407e3f[_0xc430('0x49')],{'include':[{'model':db[_0xc430('0x58')],'as':_0xc430('0x52')},{'model':db[_0xc430('0x58')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x37303b,null))[_0xc430('0x47')](handleError(_0x37303b,null));};var md5=require('md5');exports['getFields']=function(_0xb73732,_0x3e0a33,_0x4d0a34){var _0xf5bca=null;var _0xb4559d=null;var _0x26cd60=null;var _0x403c0f=null;return db[_0xc430('0x3e')][_0xc430('0x4c')]({'where':{'id':_0xb73732['params']['id']},'attributes':['id',_0xc430('0x29'),_0xc430('0x59'),_0xc430('0x5a'),_0xc430('0x5b'),'remoteUri',_0xc430('0x5c'),_0xc430('0x5d')]})[_0xc430('0x26')](handleEntityNotFound(_0x3e0a33,null))['then'](function(_0x156a89){if(_0x156a89){_0xf5bca=_0x156a89['username'];_0xb4559d=_0x156a89['accessKey'];_0x26cd60=_0x156a89[_0xc430('0x5b')];_0x403c0f=util['format'](_0xc430('0x5e'),_0x156a89['remoteUri']);var _0x22aac8={'method':_0xc430('0x5f'),'uri':_0x403c0f,'qs':{'operation':'getchallenge','username':_0x156a89[_0xc430('0x59')]},'json':!![]};return rp(_0x22aac8);}})[_0xc430('0x26')](function(_0x5c90a1){if(_0x5c90a1[_0xc430('0x60')]){var _0x3e053e={'method':'POST','uri':_0x403c0f,'form':{'operation':_0xc430('0x61'),'username':_0xf5bca,'accessKey':md5(_0x5c90a1[_0xc430('0x62')]['token']+_0xb4559d)},'json':!![]};return rp(_0x3e053e);}})[_0xc430('0x26')](function(_0x4203e8){if(_0x4203e8[_0xc430('0x60')]){var _0x227dca={'method':_0xc430('0x5f'),'uri':_0x403c0f,'qs':{'operation':_0xc430('0x63'),'username':_0xf5bca,'sessionName':_0x4203e8[_0xc430('0x62')][_0xc430('0x64')],'elementType':_0x26cd60},'json':!![]};return rp(_0x227dca);}})[_0xc430('0x26')](function(_0x19789f){if(_0x19789f[_0xc430('0x60')]){var _0x4fe467=[_0xc430('0x65'),_0xc430('0x66'),_0xc430('0x67')];_['remove'](_0x19789f['result'][_0xc430('0x32')],function(_0x4edead){return _0x4fe467[_0xc430('0x68')](_0x4edead[_0xc430('0x55')]['name']);});_['remove'](_0x19789f[_0xc430('0x62')][_0xc430('0x32')],function(_0x3ff557){return _0x3ff557['editable']===_0xc430('0x69');});return{'count':_0x19789f['result']['fields'][_0xc430('0x34')],'rows':_[_0xc430('0x3c')](_0x19789f[_0xc430('0x62')]['fields'],function(_0x1f0015){return{'id':_0x1f0015[_0xc430('0x29')],'name':_0x1f0015[_0xc430('0x6a')],'custom':_[_0xc430('0x6b')](_0x1f0015[_0xc430('0x29')],'cf_')?!![]:![],'options':_0x1f0015['type'][_0xc430('0x29')]===_0xc430('0x6c')&&_0x1f0015[_0xc430('0x55')][_0xc430('0x6d')][_0xc430('0x34')]>0x0?_[_0xc430('0x3c')](_0x1f0015[_0xc430('0x55')][_0xc430('0x6d')],function(_0x343cc8){return{'name':_0x343cc8[_0xc430('0x6a')],'value':_0x343cc8[_0xc430('0x6e')]};}):[]};})};}})['then'](respondWithResult(_0x3e0a33,null))[_0xc430('0x47')](function(_0x96deb0){console[_0xc430('0x6f')](_0xc430('0x70')+_0x96deb0);var _0x5325e0=_0xb73732['query'][_0xc430('0x71')]?0x1f4:_0x96deb0['statusCode']||0x1f4;logger[_0xc430('0x18')](_0xc430('0x72'),_0xc430('0x73'),_0x5325e0,JSON[_0xc430('0x74')](_0x96deb0));delete _0x96deb0[_0xc430('0x29')];if(_0x5325e0===0x191){_0x5325e0=0x190;}_0x3e0a33['status'](_0x5325e0)['send'](_0xb73732['query']['test']?{'message':_0xc430('0x75'),'statusCode':_0x96deb0['statusCode']}:_0x96deb0);});};
\ No newline at end of file
+var _0x6252=['sort','where','pick','add','day','merge','filter','options','includeAll','include','VtigerAccount','findAll','rows','params','find','create','body','getConfigurations','map','addConfiguration','findOne','AccountId','Subjects','getSubjects','type','Descriptions','getDescriptions','channel','VtigerConfiguration','VtigerField','md5','getFields','username','description','remoteUri','serverUrl','accessKey','moduleName','format','getchallenge','success','POST','token','GET','sessionName','autogenerated','reference','owner','remove','editable','label','startsWith','cf_','picklist','picklistValues','vTiger\x20error:\x20','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','http','request','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','Content-Range','reject','save','update','stack','name','send','rawAttributes','model','keys','query','dateEnd','dateStart','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order'];(function(_0x1aa4ba,_0x3ca443){var _0xd4f238=function(_0x674898){while(--_0x674898){_0x1aa4ba['push'](_0x1aa4ba['shift']());}};_0xd4f238(++_0x3ca443);}(_0x6252,0xb9));var _0x2625=function(_0x40a825,_0x3bac79){_0x40a825=_0x40a825-0x0;var _0x273a54=_0x6252[_0x40a825];return _0x273a54;};'use strict';var pdf=require(_0x2625('0x0'));var emlformat=require(_0x2625('0x1'));var rimraf=require(_0x2625('0x2'));var zipdir=require(_0x2625('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2625('0x4'));var moment=require(_0x2625('0x5'));var BPromise=require(_0x2625('0x6'));var Mustache=require(_0x2625('0x7'));var util=require('util');var path=require('path');var sox=require(_0x2625('0x8'));var csv=require(_0x2625('0x9'));var ejs=require(_0x2625('0xa'));var fs=require('fs');var _=require(_0x2625('0xb'));var squel=require(_0x2625('0xc'));var crypto=require('crypto');var jsforce=require(_0x2625('0xd'));var deskjs=require(_0x2625('0xe'));var toCsv=require(_0x2625('0x9'));var querystring=require(_0x2625('0xf'));var Papa=require(_0x2625('0x10'));var Redis=require(_0x2625('0x11'));var qs=require(_0x2625('0x12'));var logger=require(_0x2625('0x13'))(_0x2625('0x14'));var utils=require(_0x2625('0x15'));var config=require(_0x2625('0x16'));var db=require(_0x2625('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require('jayson/promise');var client=jayson[_0x2625('0x18')][_0x2625('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x44441d,_0x50d91a,_0x614755,_0x43d4cf){return new BPromise(function(_0x2baf30,_0x51ea93){var _0x581998=_0x43d4cf||client;return _0x581998[_0x2625('0x1a')](_0x44441d,_0x614755)[_0x2625('0x1b')](function(_0x5bad1d){logger[_0x2625('0x1c')](_0x2625('0x1d'),_0x50d91a,_0x2625('0x1e'));logger[_0x2625('0x1f')](_0x2625('0x20'),_0x50d91a,'request\x20sent',JSON[_0x2625('0x21')](_0x5bad1d));if(_0x5bad1d[_0x2625('0x22')]){if(_0x5bad1d[_0x2625('0x22')][_0x2625('0x23')]===0x1f4){logger[_0x2625('0x22')](_0x2625('0x1d'),_0x50d91a,_0x5bad1d[_0x2625('0x22')]['message']);return _0x51ea93(_0x5bad1d[_0x2625('0x22')][_0x2625('0x24')]);}logger['error']('VtigerAccount,\x20%s,\x20%s',_0x50d91a,_0x5bad1d['error']['message']);return _0x2baf30(_0x5bad1d[_0x2625('0x22')][_0x2625('0x24')]);}else{logger[_0x2625('0x1c')]('VtigerAccount,\x20%s,\x20%s',_0x50d91a,_0x2625('0x1e'));_0x2baf30(_0x5bad1d[_0x2625('0x25')][_0x2625('0x24')]);}})[_0x2625('0x26')](function(_0x3a02ec){logger[_0x2625('0x22')]('VtigerAccount,\x20%s,\x20%s',_0x50d91a,_0x3a02ec);_0x51ea93(_0x3a02ec);});});}function respondWithStatusCode(_0x1a7eaa,_0x24a555){_0x24a555=_0x24a555||0xcc;return function(_0x2347f8){if(_0x2347f8){return _0x1a7eaa[_0x2625('0x27')](_0x24a555);}return _0x1a7eaa[_0x2625('0x28')](_0x24a555)[_0x2625('0x29')]();};}function respondWithResult(_0xf528d0,_0x14493c){_0x14493c=_0x14493c||0xc8;return function(_0x4cd686){if(_0x4cd686){return _0xf528d0['status'](_0x14493c)[_0x2625('0x2a')](_0x4cd686);}};}function respondWithFilteredResult(_0x5a58db,_0x1d0267){return function(_0x3f953a){if(_0x3f953a){var _0x3c963e=_0x3f953a[_0x2625('0x2b')],_0x1ed005=_0x1d0267[_0x2625('0x2c')],_0x20299d=_0x1d0267[_0x2625('0x2c')]+_0x1d0267['limit'],_0x97906f;if(_0x20299d>=_0x3c963e){_0x20299d=_0x3c963e;_0x97906f=0xc8;}else{_0x97906f=0xce;}_0x5a58db[_0x2625('0x28')](_0x97906f);return _0x5a58db['set'](_0x2625('0x2d'),_0x1ed005+'-'+_0x20299d+'/'+_0x3c963e)[_0x2625('0x2a')](_0x3f953a);}return null;};}function patchUpdates(_0x405cf6){return function(_0x436f95){try{jsonpatch['apply'](_0x436f95,_0x405cf6,!![]);}catch(_0xc69e2f){return BPromise[_0x2625('0x2e')](_0xc69e2f);}return _0x436f95[_0x2625('0x2f')]();};}function saveUpdates(_0x5f4833,_0x24f6bd){return function(_0x1ab923){if(_0x1ab923){return _0x1ab923[_0x2625('0x30')](_0x5f4833)[_0x2625('0x1b')](function(_0x3f7be6){return _0x3f7be6;});}return null;};}function removeEntity(_0xbf056c,_0x1c93d2){return function(_0x189111){if(_0x189111){return _0x189111['destroy']()[_0x2625('0x1b')](function(){_0xbf056c['status'](0xcc)[_0x2625('0x29')]();});}};}function handleEntityNotFound(_0xae87f2,_0x493d0f){return function(_0x30742b){if(!_0x30742b){_0xae87f2['sendStatus'](0x194);}return _0x30742b;};}function handleError(_0x26aead,_0xf27dba){_0xf27dba=_0xf27dba||0x1f4;return function(_0x545672){logger[_0x2625('0x22')](_0x545672[_0x2625('0x31')]);if(_0x545672[_0x2625('0x32')]){delete _0x545672[_0x2625('0x32')];}_0x26aead[_0x2625('0x28')](_0xf27dba)[_0x2625('0x33')](_0x545672);};}exports['index']=function(_0x49c116,_0x12e6dd){var _0x1ed4b3={},_0x233999={},_0x2d783a={'count':0x0,'rows':[]};var _0x392007=db['VtigerAccount'][_0x2625('0x34')];_0x233999[_0x2625('0x35')]=_[_0x2625('0x36')](_0x392007);var _0x218f73={'dateStart':_0x49c116[_0x2625('0x37')]['dateStart'],'dateEnd':_0x49c116['query'][_0x2625('0x38')]};delete _0x49c116['query'][_0x2625('0x39')];delete _0x49c116[_0x2625('0x37')]['dateEnd'];_0x233999[_0x2625('0x37')]=_[_0x2625('0x36')](_0x49c116[_0x2625('0x37')]);_0x233999[_0x2625('0x3a')]=_['intersection'](_0x233999[_0x2625('0x35')],_0x233999['query']);_0x1ed4b3[_0x2625('0x3b')]=_[_0x2625('0x3c')](_0x233999[_0x2625('0x35')],qs[_0x2625('0x3d')](_0x49c116[_0x2625('0x37')][_0x2625('0x3d')]));_0x1ed4b3[_0x2625('0x3b')]=_0x1ed4b3[_0x2625('0x3b')][_0x2625('0x3e')]?_0x1ed4b3[_0x2625('0x3b')]:_0x233999[_0x2625('0x35')];if(!_0x49c116['query'][_0x2625('0x3f')](_0x2625('0x40'))){_0x1ed4b3[_0x2625('0x41')]=qs[_0x2625('0x41')](_0x49c116['query'][_0x2625('0x41')]);_0x1ed4b3['offset']=qs['offset'](_0x49c116[_0x2625('0x37')]['offset']);}_0x1ed4b3[_0x2625('0x42')]=qs[_0x2625('0x43')](_0x49c116[_0x2625('0x37')]['sort']);_0x1ed4b3[_0x2625('0x44')]=qs[_0x2625('0x3a')](_[_0x2625('0x45')](_0x49c116['query'],_0x233999['filters']));if(_0x218f73[_0x2625('0x39')]){if(_0x218f73[_0x2625('0x38')]){_0x218f73[_0x2625('0x38')]=moment(_0x218f73[_0x2625('0x38')])[_0x2625('0x46')](0x1,_0x2625('0x47'));}else{_0x218f73[_0x2625('0x38')]=moment(_0x218f73[_0x2625('0x39')])[_0x2625('0x46')](0x1,_0x2625('0x47'));}_[_0x2625('0x48')](_0x1ed4b3['where'],{'createdAt':{'$gte':_0x218f73[_0x2625('0x39')],'$lte':_0x218f73[_0x2625('0x38')]}});}if(_0x49c116[_0x2625('0x37')][_0x2625('0x49')]){_0x1ed4b3[_0x2625('0x44')]=_['merge'](_0x1ed4b3['where'],{'$or':_['map'](_0x1ed4b3[_0x2625('0x3b')],function(_0x5eb06b){var _0x1c414a={};_0x1c414a[_0x5eb06b]={'$like':'%'+_0x49c116[_0x2625('0x37')][_0x2625('0x49')]+'%'};return _0x1c414a;})});}_0x1ed4b3=_['merge']({},_0x1ed4b3,_0x49c116[_0x2625('0x4a')]);var _0x5156f6={'where':_0x1ed4b3[_0x2625('0x44')]};return db['VtigerAccount'][_0x2625('0x2b')](_0x5156f6)[_0x2625('0x1b')](function(_0x5db703){_0x2d783a[_0x2625('0x2b')]=_0x5db703;if(_0x49c116[_0x2625('0x37')][_0x2625('0x4b')]){_0x1ed4b3[_0x2625('0x4c')]=[{'all':!![]}];}return db[_0x2625('0x4d')][_0x2625('0x4e')](_0x1ed4b3);})['then'](function(_0x273081){_0x2d783a[_0x2625('0x4f')]=_0x273081;return _0x2d783a;})[_0x2625('0x1b')](respondWithFilteredResult(_0x12e6dd,_0x1ed4b3))['catch'](handleError(_0x12e6dd,null));};exports['show']=function(_0x3c209b,_0x10cc1d){var _0x7c27df={'raw':![],'where':{'id':_0x3c209b[_0x2625('0x50')]['id']}},_0x277890={};_0x277890[_0x2625('0x35')]=_[_0x2625('0x36')](db[_0x2625('0x4d')][_0x2625('0x34')]);_0x277890[_0x2625('0x37')]=_[_0x2625('0x36')](_0x3c209b[_0x2625('0x37')]);_0x277890[_0x2625('0x3a')]=_['intersection'](_0x277890[_0x2625('0x35')],_0x277890[_0x2625('0x37')]);_0x7c27df[_0x2625('0x3b')]=_[_0x2625('0x3c')](_0x277890[_0x2625('0x35')],qs[_0x2625('0x3d')](_0x3c209b[_0x2625('0x37')][_0x2625('0x3d')]));_0x7c27df[_0x2625('0x3b')]=_0x7c27df[_0x2625('0x3b')][_0x2625('0x3e')]?_0x7c27df[_0x2625('0x3b')]:_0x277890['model'];if(_0x3c209b[_0x2625('0x37')]['includeAll']){_0x7c27df[_0x2625('0x4c')]=[{'all':!![]}];}_0x7c27df=_[_0x2625('0x48')]({},_0x7c27df,_0x3c209b[_0x2625('0x4a')]);return db[_0x2625('0x4d')][_0x2625('0x51')](_0x7c27df)[_0x2625('0x1b')](handleEntityNotFound(_0x10cc1d,null))[_0x2625('0x1b')](respondWithResult(_0x10cc1d,null))[_0x2625('0x26')](handleError(_0x10cc1d,null));};exports[_0x2625('0x52')]=function(_0x16ccf0,_0x1a64d9){return db['VtigerAccount'][_0x2625('0x52')](_0x16ccf0[_0x2625('0x53')],{})[_0x2625('0x1b')](respondWithResult(_0x1a64d9,0xc9))[_0x2625('0x26')](handleError(_0x1a64d9,null));};exports[_0x2625('0x30')]=function(_0x21d99b,_0x1018af){if(_0x21d99b[_0x2625('0x53')]['id']){delete _0x21d99b[_0x2625('0x53')]['id'];}return db[_0x2625('0x4d')][_0x2625('0x51')]({'where':{'id':_0x21d99b[_0x2625('0x50')]['id']}})[_0x2625('0x1b')](handleEntityNotFound(_0x1018af,null))[_0x2625('0x1b')](saveUpdates(_0x21d99b[_0x2625('0x53')],null))[_0x2625('0x1b')](respondWithResult(_0x1018af,null))[_0x2625('0x26')](handleError(_0x1018af,null));};exports['destroy']=function(_0x12012c,_0x34e953){return db[_0x2625('0x4d')][_0x2625('0x51')]({'where':{'id':_0x12012c[_0x2625('0x50')]['id']}})[_0x2625('0x1b')](handleEntityNotFound(_0x34e953,null))[_0x2625('0x1b')](removeEntity(_0x34e953,null))[_0x2625('0x26')](handleError(_0x34e953,null));};exports[_0x2625('0x54')]=function(_0x1b4b8c,_0x2ac6ee,_0x25a697){var _0x555662={};var _0x370a79={};var _0x124d94;var _0x14ec1c;return db[_0x2625('0x4d')]['findOne']({'where':{'id':_0x1b4b8c[_0x2625('0x50')]['id']}})[_0x2625('0x1b')](handleEntityNotFound(_0x2ac6ee,null))[_0x2625('0x1b')](function(_0x1da6d0){if(_0x1da6d0){_0x124d94=_0x1da6d0;_0x370a79['model']=_[_0x2625('0x36')](db['VtigerConfiguration'][_0x2625('0x34')]);_0x370a79['query']=_[_0x2625('0x36')](_0x1b4b8c[_0x2625('0x37')]);_0x370a79[_0x2625('0x3a')]=_[_0x2625('0x3c')](_0x370a79[_0x2625('0x35')],_0x370a79[_0x2625('0x37')]);_0x555662[_0x2625('0x3b')]=_[_0x2625('0x3c')](_0x370a79[_0x2625('0x35')],qs[_0x2625('0x3d')](_0x1b4b8c['query'][_0x2625('0x3d')]));_0x555662['attributes']=_0x555662[_0x2625('0x3b')][_0x2625('0x3e')]?_0x555662[_0x2625('0x3b')]:_0x370a79[_0x2625('0x35')];_0x555662['order']=qs[_0x2625('0x43')](_0x1b4b8c[_0x2625('0x37')][_0x2625('0x43')]);_0x555662[_0x2625('0x44')]=qs['filters'](_['pick'](_0x1b4b8c['query'],_0x370a79[_0x2625('0x3a')]));if(_0x1b4b8c[_0x2625('0x37')][_0x2625('0x49')]){_0x555662['where']=_[_0x2625('0x48')](_0x555662[_0x2625('0x44')],{'$or':_[_0x2625('0x55')](_0x555662[_0x2625('0x3b')],function(_0x4b1d4e){var _0xbab7fc={};_0xbab7fc[_0x4b1d4e]={'$like':'%'+_0x1b4b8c[_0x2625('0x37')][_0x2625('0x49')]+'%'};return _0xbab7fc;})});}_0x555662=_[_0x2625('0x48')]({},_0x555662,_0x1b4b8c[_0x2625('0x4a')]);return _0x124d94[_0x2625('0x54')](_0x555662);}})[_0x2625('0x1b')](function(_0x489a8b){if(_0x489a8b){_0x14ec1c=_0x489a8b[_0x2625('0x3e')];if(!_0x1b4b8c[_0x2625('0x37')][_0x2625('0x3f')]('nolimit')){_0x555662[_0x2625('0x41')]=qs[_0x2625('0x41')](_0x1b4b8c['query'][_0x2625('0x41')]);_0x555662['offset']=qs['offset'](_0x1b4b8c[_0x2625('0x37')][_0x2625('0x2c')]);}return _0x124d94[_0x2625('0x54')](_0x555662);}})[_0x2625('0x1b')](function(_0xc2b75d){if(_0xc2b75d){return _0xc2b75d?{'count':_0x14ec1c,'rows':_0xc2b75d}:null;}})[_0x2625('0x1b')](respondWithResult(_0x2ac6ee,null))[_0x2625('0x26')](handleError(_0x2ac6ee,null));};exports[_0x2625('0x56')]=function(_0x130a2a,_0xf3f7f1,_0x51456d){if(_0x130a2a[_0x2625('0x53')]['id']){delete _0x130a2a[_0x2625('0x53')]['id'];}return db['VtigerAccount'][_0x2625('0x57')]({'where':{'id':_0x130a2a[_0x2625('0x50')]['id']}})[_0x2625('0x1b')](handleEntityNotFound(_0xf3f7f1,null))[_0x2625('0x1b')](function(_0xe25356){if(_0xe25356){_0x130a2a[_0x2625('0x53')][_0x2625('0x58')]=_0xe25356['id'];_0x130a2a[_0x2625('0x53')][_0x2625('0x59')]=integrations[_0x2625('0x5a')](_0x130a2a['body']['channel'],_0x130a2a[_0x2625('0x53')][_0x2625('0x5b')]);_0x130a2a['body'][_0x2625('0x5c')]=integrations[_0x2625('0x5d')](_0x130a2a['body'][_0x2625('0x5e')],_0x130a2a[_0x2625('0x53')][_0x2625('0x5b')]);return db[_0x2625('0x5f')]['create'](_0x130a2a[_0x2625('0x53')],{'include':[{'model':db[_0x2625('0x60')],'as':_0x2625('0x59')},{'model':db[_0x2625('0x60')],'as':_0x2625('0x5c')}]});}return null;})[_0x2625('0x1b')](respondWithResult(_0xf3f7f1,null))['catch'](handleError(_0xf3f7f1,null));};var md5=require(_0x2625('0x61'));exports[_0x2625('0x62')]=function(_0x4fc9cd,_0x2e93e9,_0x5c167e){var _0x53f568=null;var _0x135a1c=null;var _0x52957b=null;var _0xe0bb74=null;return db[_0x2625('0x4d')]['findOne']({'where':{'id':_0x4fc9cd[_0x2625('0x50')]['id']},'attributes':['id',_0x2625('0x32'),_0x2625('0x63'),_0x2625('0x64'),'moduleName',_0x2625('0x65'),_0x2625('0x66'),_0x2625('0x67')]})['then'](handleEntityNotFound(_0x2e93e9,null))['then'](function(_0x46ded0){if(_0x46ded0){_0x53f568=_0x46ded0['username'];_0x135a1c=_0x46ded0['accessKey'];_0x52957b=_0x46ded0[_0x2625('0x68')];_0xe0bb74=util[_0x2625('0x69')]('%s/webservice.php',_0x46ded0['remoteUri']);var _0x460b6b={'method':'GET','uri':_0xe0bb74,'qs':{'operation':_0x2625('0x6a'),'username':_0x46ded0[_0x2625('0x63')]},'json':!![]};return rp(_0x460b6b);}})[_0x2625('0x1b')](function(_0x3a1c7b){if(_0x3a1c7b[_0x2625('0x6b')]){var _0x1cba66={'method':_0x2625('0x6c'),'uri':_0xe0bb74,'form':{'operation':'login','username':_0x53f568,'accessKey':md5(_0x3a1c7b[_0x2625('0x25')][_0x2625('0x6d')]+_0x135a1c)},'json':!![]};return rp(_0x1cba66);}})['then'](function(_0x5a213c){if(_0x5a213c[_0x2625('0x6b')]){var _0x43db01={'method':_0x2625('0x6e'),'uri':_0xe0bb74,'qs':{'operation':'describe','username':_0x53f568,'sessionName':_0x5a213c[_0x2625('0x25')][_0x2625('0x6f')],'elementType':_0x52957b},'json':!![]};return rp(_0x43db01);}})[_0x2625('0x1b')](function(_0x2b2f3f){if(_0x2b2f3f[_0x2625('0x6b')]){var _0x178338=[_0x2625('0x70'),_0x2625('0x71'),_0x2625('0x72')];_[_0x2625('0x73')](_0x2b2f3f['result'][_0x2625('0x3d')],function(_0x384bc4){return _0x178338['includes'](_0x384bc4[_0x2625('0x5b')][_0x2625('0x32')]);});_['remove'](_0x2b2f3f['result'][_0x2625('0x3d')],function(_0xa6ce3e){return _0xa6ce3e[_0x2625('0x74')]==='false';});return{'count':_0x2b2f3f[_0x2625('0x25')][_0x2625('0x3d')]['length'],'rows':_['map'](_0x2b2f3f[_0x2625('0x25')][_0x2625('0x3d')],function(_0x38dc2d){return{'id':_0x38dc2d['name'],'name':_0x38dc2d[_0x2625('0x75')],'custom':_[_0x2625('0x76')](_0x38dc2d['name'],_0x2625('0x77'))?!![]:![],'options':_0x38dc2d['type']['name']===_0x2625('0x78')&&_0x38dc2d[_0x2625('0x5b')][_0x2625('0x79')][_0x2625('0x3e')]>0x0?_['map'](_0x38dc2d['type'][_0x2625('0x79')],function(_0xcd7100){return{'name':_0xcd7100[_0x2625('0x75')],'value':_0xcd7100['value']};}):[]};})};}})['then'](respondWithResult(_0x2e93e9,null))[_0x2625('0x26')](function(_0x313612){console['log'](_0x2625('0x7a')+_0x313612);var _0x30d2fe=_0x4fc9cd[_0x2625('0x37')][_0x2625('0x7b')]?0x1f4:_0x313612[_0x2625('0x7c')]||0x1f4;logger[_0x2625('0x22')]('getFields,\x20%s,\x20%s,\x20%s',_0x2625('0x62'),_0x30d2fe,JSON[_0x2625('0x21')](_0x313612));delete _0x313612[_0x2625('0x32')];if(_0x30d2fe===0x191){_0x30d2fe=0x190;}_0x2e93e9['status'](_0x30d2fe)['send'](_0x4fc9cd[_0x2625('0x37')][_0x2625('0x7b')]?{'message':_0x2625('0x7d'),'statusCode':_0x313612[_0x2625('0x7c')]}:_0x313612);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e3d=['api','moment','bluebird','../../components/integrations/configuration','exports','define','VtigerAccount','int_vtiger_accounts','lodash','util','../../config/logger'];(function(_0x5de1bc,_0x434be1){var _0x19f4b8=function(_0x35f764){while(--_0x35f764){_0x5de1bc['push'](_0x5de1bc['shift']());}};_0x19f4b8(++_0x434be1);}(_0x3e3d,0xef));var _0xd3e3=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x3e3d[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0xd3e3('0x0'));var util=require(_0xd3e3('0x1'));var logger=require(_0xd3e3('0x2'))(_0xd3e3('0x3'));var moment=require(_0xd3e3('0x4'));var BPromise=require(_0xd3e3('0x5'));var rp=require('request-promise');var attributes=require('./intVtigerAccount.attributes');var integrations=require(_0xd3e3('0x6'));module[_0xd3e3('0x7')]=function(_0x50e7ee,_0x281b92){return _0x50e7ee[_0xd3e3('0x8')](_0xd3e3('0x9'),attributes,{'tableName':_0xd3e3('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x649d=['util','api','moment','request-promise','./intVtigerAccount.attributes','../../components/integrations/configuration','exports','define','VtigerAccount','int_vtiger_accounts','lodash'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x649d,0x175));var _0xd649=function(_0x5e0cd7,_0xb46e92){_0x5e0cd7=_0x5e0cd7-0x0;var _0x39c0c7=_0x649d[_0x5e0cd7];return _0x39c0c7;};'use strict';var _=require(_0xd649('0x0'));var util=require(_0xd649('0x1'));var logger=require('../../config/logger')(_0xd649('0x2'));var moment=require(_0xd649('0x3'));var BPromise=require('bluebird');var rp=require(_0xd649('0x4'));var attributes=require(_0xd649('0x5'));var integrations=require(_0xd649('0x6'));module[_0xd649('0x7')]=function(_0x25fbc6,_0x102e23){return _0x25fbc6[_0xd649('0x8')](_0xd649('0x9'),attributes,{'tableName':_0xd649('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73c0=['result','catch','VtigerAccount','options','where','limit','include','map','model','attributes','GetVtigerAccount','find','raw','ShowVtigerAccount','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x1656fe,_0x5d15a3){var _0x213f12=function(_0x49b83d){while(--_0x49b83d){_0x1656fe['push'](_0x1656fe['shift']());}};_0x213f12(++_0x5d15a3);}(_0x73c0,0xb3));var _0x073c=function(_0x7e3063,_0x4cfc9f){_0x7e3063=_0x7e3063-0x0;var _0x2df251=_0x73c0[_0x7e3063];return _0x2df251;};'use strict';var _=require(_0x073c('0x0'));var util=require(_0x073c('0x1'));var moment=require(_0x073c('0x2'));var BPromise=require(_0x073c('0x3'));var rs=require(_0x073c('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x073c('0x5'))(_0x073c('0x6'));var config=require(_0x073c('0x7'));var jayson=require(_0x073c('0x8'));var client=jayson[_0x073c('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x534cdd,_0x35f81c,_0x1ad26e){return new BPromise(function(_0x343897,_0x3730a7){return client['request'](_0x534cdd,_0x1ad26e)[_0x073c('0xa')](function(_0xe1473e){logger[_0x073c('0xb')](_0x073c('0xc'),_0x35f81c,_0x073c('0xd'));logger[_0x073c('0xe')](_0x073c('0xf'),_0x35f81c,_0x073c('0xd'),JSON[_0x073c('0x10')](_0xe1473e));if(_0xe1473e['error']){if(_0xe1473e[_0x073c('0x11')]['code']===0x1f4){logger[_0x073c('0x11')](_0x073c('0xc'),_0x35f81c,_0xe1473e[_0x073c('0x11')]['message']);return _0x3730a7(_0xe1473e[_0x073c('0x11')][_0x073c('0x12')]);}logger[_0x073c('0x11')]('VtigerAccount,\x20%s,\x20%s',_0x35f81c,_0xe1473e[_0x073c('0x11')]['message']);return _0x343897(_0xe1473e[_0x073c('0x11')][_0x073c('0x12')]);}else{logger[_0x073c('0xb')](_0x073c('0xc'),_0x35f81c,_0x073c('0xd'));_0x343897(_0xe1473e[_0x073c('0x13')][_0x073c('0x12')]);}})[_0x073c('0x14')](function(_0x432a8b){logger[_0x073c('0x11')](_0x073c('0xc'),_0x35f81c,_0x432a8b);_0x3730a7(_0x432a8b);});});}exports['GetVtigerAccount']=function(_0x400d13){var _0x2d9793=this;return new Promise(function(_0xaf169d,_0x3f1a0b){return db[_0x073c('0x15')]['findAll']({'raw':_0x400d13['options']?_0x400d13['options']['raw']===undefined?!![]:![]:!![],'where':_0x400d13[_0x073c('0x16')]?_0x400d13['options'][_0x073c('0x17')]||null:null,'attributes':_0x400d13[_0x073c('0x16')]?_0x400d13['options']['attributes']||null:null,'limit':_0x400d13[_0x073c('0x16')]?_0x400d13[_0x073c('0x16')][_0x073c('0x18')]||null:null,'include':_0x400d13[_0x073c('0x16')]?_0x400d13['options'][_0x073c('0x19')]?_[_0x073c('0x1a')](_0x400d13[_0x073c('0x16')][_0x073c('0x19')],function(_0x162c90){return{'model':db[_0x162c90[_0x073c('0x1b')]],'as':_0x162c90['as'],'attributes':_0x162c90[_0x073c('0x1c')],'include':_0x162c90[_0x073c('0x19')]?_[_0x073c('0x1a')](_0x162c90[_0x073c('0x19')],function(_0x354442){return{'model':db[_0x354442[_0x073c('0x1b')]],'as':_0x354442['as'],'attributes':_0x354442[_0x073c('0x1c')],'include':_0x354442['include']?_[_0x073c('0x1a')](_0x354442[_0x073c('0x19')],function(_0x37606b){return{'model':db[_0x37606b[_0x073c('0x1b')]],'as':_0x37606b['as'],'attributes':_0x37606b[_0x073c('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x9a4cce){logger[_0x073c('0xb')]('GetVtigerAccount',_0x400d13);logger['debug'](_0x073c('0x1d'),_0x400d13,JSON[_0x073c('0x10')](_0x9a4cce));_0xaf169d(_0x9a4cce);})['catch'](function(_0x12bb34){logger['error'](_0x073c('0x1d'),_0x12bb34[_0x073c('0x12')],_0x400d13);_0x3f1a0b(_0x2d9793['error'](0x1f4,_0x12bb34['message']));});});};exports['ShowVtigerAccount']=function(_0x22ab96){var _0x4e8666=this;return new Promise(function(_0x1ba9ec,_0x323640){return db[_0x073c('0x15')][_0x073c('0x1e')]({'raw':_0x22ab96[_0x073c('0x16')]?_0x22ab96[_0x073c('0x16')][_0x073c('0x1f')]===undefined?!![]:![]:!![],'where':_0x22ab96['options']?_0x22ab96[_0x073c('0x16')][_0x073c('0x17')]||null:null,'attributes':_0x22ab96[_0x073c('0x16')]?_0x22ab96[_0x073c('0x16')][_0x073c('0x1c')]||null:null,'include':_0x22ab96[_0x073c('0x16')]?_0x22ab96[_0x073c('0x16')][_0x073c('0x19')]?_[_0x073c('0x1a')](_0x22ab96[_0x073c('0x16')][_0x073c('0x19')],function(_0x51e7d1){return{'model':db[_0x51e7d1[_0x073c('0x1b')]],'as':_0x51e7d1['as'],'attributes':_0x51e7d1[_0x073c('0x1c')],'include':_0x51e7d1[_0x073c('0x19')]?_['map'](_0x51e7d1[_0x073c('0x19')],function(_0x5ad961){return{'model':db[_0x5ad961['model']],'as':_0x5ad961['as'],'attributes':_0x5ad961[_0x073c('0x1c')],'include':_0x5ad961[_0x073c('0x19')]?_['map'](_0x5ad961['include'],function(_0x58a49b){return{'model':db[_0x58a49b['model']],'as':_0x58a49b['as'],'attributes':_0x58a49b[_0x073c('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x430b6d){logger['info'](_0x073c('0x20'),_0x22ab96);logger[_0x073c('0xe')]('ShowVtigerAccount',_0x22ab96,JSON[_0x073c('0x10')](_0x430b6d));_0x1ba9ec(_0x430b6d);})[_0x073c('0x14')](function(_0x33386a){logger[_0x073c('0x11')](_0x073c('0x20'),_0x33386a[_0x073c('0x12')],_0x22ab96);_0x323640(_0x4e8666[_0x073c('0x11')](0x1f4,_0x33386a[_0x073c('0x12')]));});});};
\ No newline at end of file
+var _0x0d7f=['bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','GetVtigerAccount','VtigerAccount','options','raw','attributes','limit','include','map','model','ShowVtigerAccount','find','where','lodash','moment'];(function(_0x3a5e30,_0x4264ce){var _0x591bb7=function(_0x67c561){while(--_0x67c561){_0x3a5e30['push'](_0x3a5e30['shift']());}};_0x591bb7(++_0x4264ce);}(_0x0d7f,0x152));var _0xf0d7=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0x0d7f[_0x5d2803];return _0xdcad2c;};'use strict';var _=require(_0xf0d7('0x0'));var util=require('util');var moment=require(_0xf0d7('0x1'));var BPromise=require(_0xf0d7('0x2'));var rs=require(_0xf0d7('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf0d7('0x4'))['db'];var utils=require(_0xf0d7('0x5'));var logger=require(_0xf0d7('0x6'))(_0xf0d7('0x7'));var config=require(_0xf0d7('0x8'));var jayson=require(_0xf0d7('0x9'));var client=jayson['client'][_0xf0d7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59ebf5,_0x397784,_0x5b70ad){return new BPromise(function(_0x39e74b,_0x484b05){return client[_0xf0d7('0xb')](_0x59ebf5,_0x5b70ad)[_0xf0d7('0xc')](function(_0x3e8142){logger[_0xf0d7('0xd')](_0xf0d7('0xe'),_0x397784,_0xf0d7('0xf'));logger[_0xf0d7('0x10')]('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x397784,_0xf0d7('0xf'),JSON[_0xf0d7('0x11')](_0x3e8142));if(_0x3e8142['error']){if(_0x3e8142[_0xf0d7('0x12')]['code']===0x1f4){logger[_0xf0d7('0x12')](_0xf0d7('0xe'),_0x397784,_0x3e8142[_0xf0d7('0x12')]['message']);return _0x484b05(_0x3e8142['error'][_0xf0d7('0x13')]);}logger['error'](_0xf0d7('0xe'),_0x397784,_0x3e8142[_0xf0d7('0x12')][_0xf0d7('0x13')]);return _0x39e74b(_0x3e8142[_0xf0d7('0x12')][_0xf0d7('0x13')]);}else{logger[_0xf0d7('0xd')](_0xf0d7('0xe'),_0x397784,'request\x20sent');_0x39e74b(_0x3e8142[_0xf0d7('0x14')][_0xf0d7('0x13')]);}})[_0xf0d7('0x15')](function(_0x46089e){logger[_0xf0d7('0x12')](_0xf0d7('0xe'),_0x397784,_0x46089e);_0x484b05(_0x46089e);});});}exports[_0xf0d7('0x16')]=function(_0x148628){var _0x3bc8c3=this;return new Promise(function(_0x50d548,_0x48337e){return db[_0xf0d7('0x17')]['findAll']({'raw':_0x148628['options']?_0x148628[_0xf0d7('0x18')][_0xf0d7('0x19')]===undefined?!![]:![]:!![],'where':_0x148628['options']?_0x148628['options']['where']||null:null,'attributes':_0x148628[_0xf0d7('0x18')]?_0x148628[_0xf0d7('0x18')][_0xf0d7('0x1a')]||null:null,'limit':_0x148628['options']?_0x148628[_0xf0d7('0x18')][_0xf0d7('0x1b')]||null:null,'include':_0x148628[_0xf0d7('0x18')]?_0x148628[_0xf0d7('0x18')][_0xf0d7('0x1c')]?_[_0xf0d7('0x1d')](_0x148628[_0xf0d7('0x18')][_0xf0d7('0x1c')],function(_0xcc2e16){return{'model':db[_0xcc2e16[_0xf0d7('0x1e')]],'as':_0xcc2e16['as'],'attributes':_0xcc2e16[_0xf0d7('0x1a')],'include':_0xcc2e16['include']?_[_0xf0d7('0x1d')](_0xcc2e16[_0xf0d7('0x1c')],function(_0x5ab057){return{'model':db[_0x5ab057[_0xf0d7('0x1e')]],'as':_0x5ab057['as'],'attributes':_0x5ab057['attributes'],'include':_0x5ab057['include']?_[_0xf0d7('0x1d')](_0x5ab057[_0xf0d7('0x1c')],function(_0x171a00){return{'model':db[_0x171a00[_0xf0d7('0x1e')]],'as':_0x171a00['as'],'attributes':_0x171a00[_0xf0d7('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x355d4d){logger[_0xf0d7('0xd')](_0xf0d7('0x16'),_0x148628);logger[_0xf0d7('0x10')]('GetVtigerAccount',_0x148628,JSON[_0xf0d7('0x11')](_0x355d4d));_0x50d548(_0x355d4d);})[_0xf0d7('0x15')](function(_0xac4334){logger['error'](_0xf0d7('0x16'),_0xac4334[_0xf0d7('0x13')],_0x148628);_0x48337e(_0x3bc8c3['error'](0x1f4,_0xac4334['message']));});});};exports[_0xf0d7('0x1f')]=function(_0x4d6874){var _0x59816b=this;return new Promise(function(_0x238cd6,_0x58219d){return db[_0xf0d7('0x17')][_0xf0d7('0x20')]({'raw':_0x4d6874['options']?_0x4d6874[_0xf0d7('0x18')][_0xf0d7('0x19')]===undefined?!![]:![]:!![],'where':_0x4d6874[_0xf0d7('0x18')]?_0x4d6874[_0xf0d7('0x18')][_0xf0d7('0x21')]||null:null,'attributes':_0x4d6874[_0xf0d7('0x18')]?_0x4d6874[_0xf0d7('0x18')][_0xf0d7('0x1a')]||null:null,'include':_0x4d6874[_0xf0d7('0x18')]?_0x4d6874[_0xf0d7('0x18')]['include']?_['map'](_0x4d6874[_0xf0d7('0x18')][_0xf0d7('0x1c')],function(_0x2769d2){return{'model':db[_0x2769d2[_0xf0d7('0x1e')]],'as':_0x2769d2['as'],'attributes':_0x2769d2[_0xf0d7('0x1a')],'include':_0x2769d2['include']?_[_0xf0d7('0x1d')](_0x2769d2['include'],function(_0x4f120f){return{'model':db[_0x4f120f['model']],'as':_0x4f120f['as'],'attributes':_0x4f120f['attributes'],'include':_0x4f120f['include']?_[_0xf0d7('0x1d')](_0x4f120f[_0xf0d7('0x1c')],function(_0x15b964){return{'model':db[_0x15b964[_0xf0d7('0x1e')]],'as':_0x15b964['as'],'attributes':_0x15b964[_0xf0d7('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xf0d7('0xc')](function(_0x4f543c){logger[_0xf0d7('0xd')]('ShowVtigerAccount',_0x4d6874);logger[_0xf0d7('0x10')](_0xf0d7('0x1f'),_0x4d6874,JSON['stringify'](_0x4f543c));_0x238cd6(_0x4f543c);})[_0xf0d7('0x15')](function(_0x4eed55){logger[_0xf0d7('0x12')](_0xf0d7('0x1f'),_0x4eed55[_0xf0d7('0x13')],_0x4d6874);_0x58219d(_0x59816b[_0xf0d7('0x12')](0x1f4,_0x4eed55[_0xf0d7('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['post','create','put','update','exports','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./intVtigerConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions'];(function(_0x4fa733,_0x4b147d){var _0x13286e=function(_0x3dac9f){while(--_0x3dac9f){_0x4fa733['push'](_0x4fa733['shift']());}};_0x13286e(++_0x4b147d);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var auth=require(_0x3071('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x3071('0x5'));var controller=require(_0x3071('0x6'));router[_0x3071('0x7')]('/',auth[_0x3071('0x8')](),controller[_0x3071('0x9')]);router[_0x3071('0x7')](_0x3071('0xa'),auth[_0x3071('0x8')](),controller[_0x3071('0xb')]);router[_0x3071('0x7')](_0x3071('0xc'),auth[_0x3071('0x8')](),controller[_0x3071('0xd')]);router['get'](_0x3071('0xe'),auth[_0x3071('0x8')](),controller[_0x3071('0xf')]);router[_0x3071('0x7')](_0x3071('0x10'),auth['isAuthenticated'](),controller[_0x3071('0x11')]);router[_0x3071('0x12')]('/',auth[_0x3071('0x8')](),controller[_0x3071('0x13')]);router[_0x3071('0x14')]('/:id',auth['isAuthenticated'](),controller[_0x3071('0x15')]);router['delete'](_0x3071('0xa'),auth[_0x3071('0x8')](),controller['destroy']);module[_0x3071('0x16')]=router;
\ No newline at end of file
+var _0xd8b0=['isAuthenticated','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','create','put','update','delete','destroy','exports','multer','util','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerConfiguration.controller','index','get','/:id','show'];(function(_0x2f2cb8,_0x417d38){var _0x5a7add=function(_0xc1da1d){while(--_0xc1da1d){_0x2f2cb8['push'](_0x2f2cb8['shift']());}};_0x5a7add(++_0x417d38);}(_0xd8b0,0xad));var _0x0d8b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd8b0[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var auth=require(_0x0d8b('0x3'));var interaction=require(_0x0d8b('0x4'));var config=require(_0x0d8b('0x5'));var controller=require(_0x0d8b('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x0d8b('0x7')]);router[_0x0d8b('0x8')](_0x0d8b('0x9'),auth['isAuthenticated'](),controller[_0x0d8b('0xa')]);router[_0x0d8b('0x8')]('/:id/fields',auth[_0x0d8b('0xb')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0x8')](_0x0d8b('0xd'),auth[_0x0d8b('0xb')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0x8')](_0x0d8b('0xf'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['post']('/',auth[_0x0d8b('0xb')](),controller[_0x0d8b('0x11')]);router[_0x0d8b('0x12')](_0x0d8b('0x9'),auth[_0x0d8b('0xb')](),controller[_0x0d8b('0x13')]);router[_0x0d8b('0x14')](_0x0d8b('0x9'),auth[_0x0d8b('0xb')](),controller[_0x0d8b('0x15')]);module[_0x0d8b('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c86=['sequelize','STRING'];(function(_0x88cec1,_0x4c10d9){var _0x3e72e5=function(_0x17677d){while(--_0x17677d){_0x88cec1['push'](_0x88cec1['shift']());}};_0x3e72e5(++_0x4c10d9);}(_0x6c86,0xf8));var _0x66c8=function(_0x279bf7,_0x16d215){_0x279bf7=_0x279bf7-0x0;var _0x1ade2b=_0x6c86[_0x279bf7];return _0x1ade2b;};'use strict';var Sequelize=require(_0x66c8('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x66c8('0x1')]}};
\ No newline at end of file
+var _0x3443=['STRING','sequelize','exports'];(function(_0x4149c4,_0x293567){var _0x32079e=function(_0x5df9e3){while(--_0x5df9e3){_0x4149c4['push'](_0x4149c4['shift']());}};_0x32079e(++_0x293567);}(_0x3443,0x118));var _0x3344=function(_0x18d957,_0x50a139){_0x18d957=_0x18d957-0x0;var _0x144993=_0x3443[_0x18d957];return _0x144993;};'use strict';var Sequelize=require(_0x3344('0x0'));module[_0x3344('0x1')]={'name':{'type':Sequelize[_0x3344('0x2')]},'description':{'type':Sequelize[_0x3344('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bc6=['mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','info','VtigerConfiguration,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result','catch','status','offset','limit','set','Content-Range','apply','reject','save','update','then','end','stack','name','send','index','VtigerConfiguration','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','attributes','fields','hasOwnProperty','sort','filters','pick','add','day','merge','where','filter','map','options','count','includeAll','findAll','show','params','length','find','create','body','destroy','getFields','findOne','order','nolimit','VtigerField','getDescriptions','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment'];(function(_0x32ce61,_0x2ba733){var _0x28eded=function(_0x34db11){while(--_0x34db11){_0x32ce61['push'](_0x32ce61['shift']());}};_0x28eded(++_0x2ba733);}(_0x2bc6,0xac));var _0x62bc=function(_0x49431e,_0x17699a){_0x49431e=_0x49431e-0x0;var _0x759cc0=_0x2bc6[_0x49431e];return _0x759cc0;};'use strict';var pdf=require(_0x62bc('0x0'));var emlformat=require(_0x62bc('0x1'));var rimraf=require(_0x62bc('0x2'));var zipdir=require(_0x62bc('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x62bc('0x4'));var moment=require(_0x62bc('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x62bc('0x6'));var util=require(_0x62bc('0x7'));var path=require(_0x62bc('0x8'));var sox=require(_0x62bc('0x9'));var csv=require(_0x62bc('0xa'));var ejs=require(_0x62bc('0xb'));var fs=require('fs');var _=require(_0x62bc('0xc'));var squel=require(_0x62bc('0xd'));var crypto=require(_0x62bc('0xe'));var jsforce=require(_0x62bc('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x62bc('0xa'));var querystring=require(_0x62bc('0x10'));var Papa=require(_0x62bc('0x11'));var qs=require(_0x62bc('0x12'));var logger=require(_0x62bc('0x13'))(_0x62bc('0x14'));var utils=require(_0x62bc('0x15'));var config=require(_0x62bc('0x16'));var db=require(_0x62bc('0x17'))['db'];var jayson=require(_0x62bc('0x18'));var client=jayson[_0x62bc('0x19')][_0x62bc('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x5aa745,_0x3ae804,_0x308390,_0x4f0039){return new BPromise(function(_0x57e490,_0x3e5d12){var _0x46b7b9=_0x4f0039||client;return _0x46b7b9[_0x62bc('0x1b')](_0x5aa745,_0x308390)['then'](function(_0x293288){logger[_0x62bc('0x1c')](_0x62bc('0x1d'),_0x3ae804,'request\x20sent');logger[_0x62bc('0x1e')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x3ae804,_0x62bc('0x1f'),JSON[_0x62bc('0x20')](_0x293288));if(_0x293288[_0x62bc('0x21')]){if(_0x293288[_0x62bc('0x21')]['code']===0x1f4){logger['error'](_0x62bc('0x1d'),_0x3ae804,_0x293288[_0x62bc('0x21')][_0x62bc('0x22')]);return _0x3e5d12(_0x293288[_0x62bc('0x21')][_0x62bc('0x22')]);}logger[_0x62bc('0x21')](_0x62bc('0x1d'),_0x3ae804,_0x293288[_0x62bc('0x21')]['message']);return _0x57e490(_0x293288[_0x62bc('0x21')][_0x62bc('0x22')]);}else{logger['info'](_0x62bc('0x1d'),_0x3ae804,_0x62bc('0x1f'));_0x57e490(_0x293288[_0x62bc('0x23')][_0x62bc('0x22')]);}})[_0x62bc('0x24')](function(_0x3e44e9){logger['error'](_0x62bc('0x1d'),_0x3ae804,_0x3e44e9);_0x3e5d12(_0x3e44e9);});});}function respondWithStatusCode(_0x1ed7d3,_0x467e6d){_0x467e6d=_0x467e6d||0xcc;return function(_0x4b80be){if(_0x4b80be){return _0x1ed7d3['sendStatus'](_0x467e6d);}return _0x1ed7d3[_0x62bc('0x25')](_0x467e6d)['end']();};}function respondWithResult(_0x147267,_0x3f8917){_0x3f8917=_0x3f8917||0xc8;return function(_0x3a0b95){if(_0x3a0b95){return _0x147267[_0x62bc('0x25')](_0x3f8917)['json'](_0x3a0b95);}};}function respondWithFilteredResult(_0x130087,_0x233877){return function(_0x58b9cf){if(_0x58b9cf){var _0x2f3534=_0x58b9cf['count'],_0x53d8d9=_0x233877['offset'],_0x4dfb2b=_0x233877[_0x62bc('0x26')]+_0x233877[_0x62bc('0x27')],_0x44ca3d;if(_0x4dfb2b>=_0x2f3534){_0x4dfb2b=_0x2f3534;_0x44ca3d=0xc8;}else{_0x44ca3d=0xce;}_0x130087[_0x62bc('0x25')](_0x44ca3d);return _0x130087[_0x62bc('0x28')](_0x62bc('0x29'),_0x53d8d9+'-'+_0x4dfb2b+'/'+_0x2f3534)['json'](_0x58b9cf);}return null;};}function patchUpdates(_0x1c4537){return function(_0x2c7189){try{jsonpatch[_0x62bc('0x2a')](_0x2c7189,_0x1c4537,!![]);}catch(_0x27aa40){return BPromise[_0x62bc('0x2b')](_0x27aa40);}return _0x2c7189[_0x62bc('0x2c')]();};}function saveUpdates(_0x3856d3,_0xb01d97){return function(_0x50bd8f){if(_0x50bd8f){return _0x50bd8f[_0x62bc('0x2d')](_0x3856d3)['then'](function(_0x5cb650){return _0x5cb650;});}return null;};}function removeEntity(_0x578768,_0x3e053f){return function(_0x401070){if(_0x401070){return _0x401070['destroy']()[_0x62bc('0x2e')](function(){_0x578768['status'](0xcc)[_0x62bc('0x2f')]();});}};}function handleEntityNotFound(_0x295ba9,_0x4c5dcc){return function(_0x203218){if(!_0x203218){_0x295ba9['sendStatus'](0x194);}return _0x203218;};}function handleError(_0x463b56,_0x3b036c){_0x3b036c=_0x3b036c||0x1f4;return function(_0x82e147){logger['error'](_0x82e147[_0x62bc('0x30')]);if(_0x82e147[_0x62bc('0x31')]){delete _0x82e147[_0x62bc('0x31')];}_0x463b56[_0x62bc('0x25')](_0x3b036c)[_0x62bc('0x32')](_0x82e147);};}exports[_0x62bc('0x33')]=function(_0x1bfe02,_0x14bd47){var _0x3a94e8={},_0x19545b={},_0xe7d484={'count':0x0,'rows':[]};var _0x44a83d=db[_0x62bc('0x34')][_0x62bc('0x35')];_0x19545b[_0x62bc('0x36')]=_[_0x62bc('0x37')](_0x44a83d);var _0x2ec3d6={'dateStart':_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x39')],'dateEnd':_0x1bfe02[_0x62bc('0x38')]['dateEnd']};delete _0x1bfe02[_0x62bc('0x38')][_0x62bc('0x39')];delete _0x1bfe02[_0x62bc('0x38')][_0x62bc('0x3a')];_0x19545b[_0x62bc('0x38')]=_[_0x62bc('0x37')](_0x1bfe02[_0x62bc('0x38')]);_0x19545b['filters']=_[_0x62bc('0x3b')](_0x19545b[_0x62bc('0x36')],_0x19545b[_0x62bc('0x38')]);_0x3a94e8[_0x62bc('0x3c')]=_[_0x62bc('0x3b')](_0x19545b[_0x62bc('0x36')],qs['fields'](_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x3d')]));_0x3a94e8['attributes']=_0x3a94e8[_0x62bc('0x3c')]['length']?_0x3a94e8[_0x62bc('0x3c')]:_0x19545b[_0x62bc('0x36')];if(!_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x3e')]('nolimit')){_0x3a94e8[_0x62bc('0x27')]=qs['limit'](_0x1bfe02['query'][_0x62bc('0x27')]);_0x3a94e8[_0x62bc('0x26')]=qs[_0x62bc('0x26')](_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x26')]);}_0x3a94e8['order']=qs[_0x62bc('0x3f')](_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x3f')]);_0x3a94e8['where']=qs[_0x62bc('0x40')](_[_0x62bc('0x41')](_0x1bfe02['query'],_0x19545b[_0x62bc('0x40')]));if(_0x2ec3d6[_0x62bc('0x39')]){if(_0x2ec3d6[_0x62bc('0x3a')]){_0x2ec3d6[_0x62bc('0x3a')]=moment(_0x2ec3d6[_0x62bc('0x3a')])[_0x62bc('0x42')](0x1,_0x62bc('0x43'));}else{_0x2ec3d6[_0x62bc('0x3a')]=moment(_0x2ec3d6[_0x62bc('0x39')])[_0x62bc('0x42')](0x1,_0x62bc('0x43'));}_[_0x62bc('0x44')](_0x3a94e8[_0x62bc('0x45')],{'createdAt':{'$gte':_0x2ec3d6[_0x62bc('0x39')],'$lte':_0x2ec3d6[_0x62bc('0x3a')]}});}if(_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x46')]){_0x3a94e8[_0x62bc('0x45')]=_[_0x62bc('0x44')](_0x3a94e8['where'],{'$or':_[_0x62bc('0x47')](_0x3a94e8['attributes'],function(_0x104be7){var _0x2db719={};_0x2db719[_0x104be7]={'$like':'%'+_0x1bfe02['query'][_0x62bc('0x46')]+'%'};return _0x2db719;})});}_0x3a94e8=_['merge']({},_0x3a94e8,_0x1bfe02[_0x62bc('0x48')]);var _0x214ea4={'where':_0x3a94e8['where']};return db['VtigerConfiguration']['count'](_0x214ea4)[_0x62bc('0x2e')](function(_0x1bf22e){_0xe7d484[_0x62bc('0x49')]=_0x1bf22e;if(_0x1bfe02[_0x62bc('0x38')][_0x62bc('0x4a')]){_0x3a94e8['include']=[{'all':!![]}];}return db['VtigerConfiguration'][_0x62bc('0x4b')](_0x3a94e8);})['then'](function(_0x2077a5){_0xe7d484['rows']=_0x2077a5;return _0xe7d484;})[_0x62bc('0x2e')](respondWithFilteredResult(_0x14bd47,_0x3a94e8))[_0x62bc('0x24')](handleError(_0x14bd47,null));};exports[_0x62bc('0x4c')]=function(_0x5b028f,_0x3d6d19){var _0x3c9aa0={'raw':![],'where':{'id':_0x5b028f[_0x62bc('0x4d')]['id']}},_0x38e686={};_0x38e686[_0x62bc('0x36')]=_[_0x62bc('0x37')](db[_0x62bc('0x34')]['rawAttributes']);_0x38e686['query']=_[_0x62bc('0x37')](_0x5b028f['query']);_0x38e686['filters']=_[_0x62bc('0x3b')](_0x38e686[_0x62bc('0x36')],_0x38e686[_0x62bc('0x38')]);_0x3c9aa0[_0x62bc('0x3c')]=_[_0x62bc('0x3b')](_0x38e686[_0x62bc('0x36')],qs[_0x62bc('0x3d')](_0x5b028f[_0x62bc('0x38')]['fields']));_0x3c9aa0[_0x62bc('0x3c')]=_0x3c9aa0[_0x62bc('0x3c')][_0x62bc('0x4e')]?_0x3c9aa0[_0x62bc('0x3c')]:_0x38e686[_0x62bc('0x36')];if(_0x5b028f[_0x62bc('0x38')]['includeAll']){_0x3c9aa0['include']=[{'all':!![]}];}_0x3c9aa0=_['merge']({},_0x3c9aa0,_0x5b028f['options']);return db[_0x62bc('0x34')][_0x62bc('0x4f')](_0x3c9aa0)[_0x62bc('0x2e')](handleEntityNotFound(_0x3d6d19,null))[_0x62bc('0x2e')](respondWithResult(_0x3d6d19,null))[_0x62bc('0x24')](handleError(_0x3d6d19,null));};exports['create']=function(_0x36f616,_0x56a2b8){return db['VtigerConfiguration'][_0x62bc('0x50')](_0x36f616[_0x62bc('0x51')],{})[_0x62bc('0x2e')](respondWithResult(_0x56a2b8,0xc9))['catch'](handleError(_0x56a2b8,null));};exports[_0x62bc('0x2d')]=function(_0x43ba11,_0x2ec720){if(_0x43ba11[_0x62bc('0x51')]['id']){delete _0x43ba11[_0x62bc('0x51')]['id'];}return db[_0x62bc('0x34')][_0x62bc('0x4f')]({'where':{'id':_0x43ba11[_0x62bc('0x4d')]['id']}})[_0x62bc('0x2e')](handleEntityNotFound(_0x2ec720,null))['then'](saveUpdates(_0x43ba11[_0x62bc('0x51')],null))[_0x62bc('0x2e')](respondWithResult(_0x2ec720,null))[_0x62bc('0x24')](handleError(_0x2ec720,null));};exports[_0x62bc('0x52')]=function(_0x328a56,_0x4c2cec){return db[_0x62bc('0x34')]['find']({'where':{'id':_0x328a56['params']['id']}})[_0x62bc('0x2e')](handleEntityNotFound(_0x4c2cec,null))[_0x62bc('0x2e')](removeEntity(_0x4c2cec,null))[_0x62bc('0x24')](handleError(_0x4c2cec,null));};exports[_0x62bc('0x53')]=function(_0x556013,_0xd72c99,_0x58695d){var _0x107deb={};var _0x2fe69f={};var _0x8c47b7;var _0x46c360;return db[_0x62bc('0x34')][_0x62bc('0x54')]({'where':{'id':_0x556013[_0x62bc('0x4d')]['id']}})['then'](handleEntityNotFound(_0xd72c99,null))['then'](function(_0x27de0a){if(_0x27de0a){_0x8c47b7=_0x27de0a;_0x2fe69f[_0x62bc('0x36')]=_[_0x62bc('0x37')](db['VtigerField'][_0x62bc('0x35')]);_0x2fe69f[_0x62bc('0x38')]=_[_0x62bc('0x37')](_0x556013[_0x62bc('0x38')]);_0x2fe69f['filters']=_[_0x62bc('0x3b')](_0x2fe69f[_0x62bc('0x36')],_0x2fe69f['query']);_0x107deb[_0x62bc('0x3c')]=_[_0x62bc('0x3b')](_0x2fe69f['model'],qs['fields'](_0x556013['query']['fields']));_0x107deb[_0x62bc('0x3c')]=_0x107deb[_0x62bc('0x3c')][_0x62bc('0x4e')]?_0x107deb[_0x62bc('0x3c')]:_0x2fe69f[_0x62bc('0x36')];_0x107deb[_0x62bc('0x55')]=qs['sort'](_0x556013[_0x62bc('0x38')][_0x62bc('0x3f')]);_0x107deb['where']=qs['filters'](_['pick'](_0x556013[_0x62bc('0x38')],_0x2fe69f['filters']));if(_0x556013[_0x62bc('0x38')]['filter']){_0x107deb[_0x62bc('0x45')]=_[_0x62bc('0x44')](_0x107deb[_0x62bc('0x45')],{'$or':_[_0x62bc('0x47')](_0x107deb[_0x62bc('0x3c')],function(_0x1aaca3){var _0x2c9b00={};_0x2c9b00[_0x1aaca3]={'$like':'%'+_0x556013[_0x62bc('0x38')][_0x62bc('0x46')]+'%'};return _0x2c9b00;})});}_0x107deb=_['merge']({},_0x107deb,_0x556013[_0x62bc('0x48')]);return _0x8c47b7['getFields'](_0x107deb);}})[_0x62bc('0x2e')](function(_0x969c9c){if(_0x969c9c){_0x46c360=_0x969c9c[_0x62bc('0x4e')];if(!_0x556013['query'][_0x62bc('0x3e')](_0x62bc('0x56'))){_0x107deb['limit']=qs[_0x62bc('0x27')](_0x556013['query'][_0x62bc('0x27')]);_0x107deb[_0x62bc('0x26')]=qs[_0x62bc('0x26')](_0x556013[_0x62bc('0x38')][_0x62bc('0x26')]);}return _0x8c47b7[_0x62bc('0x53')](_0x107deb);}})[_0x62bc('0x2e')](function(_0x150e18){if(_0x150e18){return _0x150e18?{'count':_0x46c360,'rows':_0x150e18}:null;}})[_0x62bc('0x2e')](respondWithResult(_0xd72c99,null))['catch'](handleError(_0xd72c99,null));};exports['getSubjects']=function(_0x30d0fe,_0xe1b77c,_0x9aa01f){var _0x13201c={};var _0x556489={};var _0x44a6ed;var _0x74a2eb;return db[_0x62bc('0x34')][_0x62bc('0x54')]({'where':{'id':_0x30d0fe[_0x62bc('0x4d')]['id']}})[_0x62bc('0x2e')](handleEntityNotFound(_0xe1b77c,null))[_0x62bc('0x2e')](function(_0x1f1305){if(_0x1f1305){_0x44a6ed=_0x1f1305;_0x556489[_0x62bc('0x36')]=_[_0x62bc('0x37')](db[_0x62bc('0x57')][_0x62bc('0x35')]);_0x556489[_0x62bc('0x38')]=_[_0x62bc('0x37')](_0x30d0fe[_0x62bc('0x38')]);_0x556489[_0x62bc('0x40')]=_['intersection'](_0x556489['model'],_0x556489[_0x62bc('0x38')]);_0x13201c[_0x62bc('0x3c')]=_[_0x62bc('0x3b')](_0x556489[_0x62bc('0x36')],qs['fields'](_0x30d0fe['query']['fields']));_0x13201c[_0x62bc('0x3c')]=_0x13201c[_0x62bc('0x3c')][_0x62bc('0x4e')]?_0x13201c[_0x62bc('0x3c')]:_0x556489['model'];_0x13201c[_0x62bc('0x55')]=qs['sort'](_0x30d0fe[_0x62bc('0x38')][_0x62bc('0x3f')]);_0x13201c[_0x62bc('0x45')]=qs[_0x62bc('0x40')](_[_0x62bc('0x41')](_0x30d0fe['query'],_0x556489[_0x62bc('0x40')]));if(_0x30d0fe[_0x62bc('0x38')]['filter']){_0x13201c[_0x62bc('0x45')]=_[_0x62bc('0x44')](_0x13201c[_0x62bc('0x45')],{'$or':_[_0x62bc('0x47')](_0x13201c[_0x62bc('0x3c')],function(_0xa8ff96){var _0x4e0bc7={};_0x4e0bc7[_0xa8ff96]={'$like':'%'+_0x30d0fe[_0x62bc('0x38')]['filter']+'%'};return _0x4e0bc7;})});}_0x13201c=_[_0x62bc('0x44')]({},_0x13201c,_0x30d0fe[_0x62bc('0x48')]);return _0x44a6ed['getSubjects'](_0x13201c);}})[_0x62bc('0x2e')](function(_0x4b82b0){if(_0x4b82b0){_0x74a2eb=_0x4b82b0['length'];if(!_0x30d0fe[_0x62bc('0x38')][_0x62bc('0x3e')](_0x62bc('0x56'))){_0x13201c['limit']=qs[_0x62bc('0x27')](_0x30d0fe[_0x62bc('0x38')][_0x62bc('0x27')]);_0x13201c['offset']=qs[_0x62bc('0x26')](_0x30d0fe[_0x62bc('0x38')][_0x62bc('0x26')]);}return _0x44a6ed['getSubjects'](_0x13201c);}})[_0x62bc('0x2e')](function(_0x55bed3){if(_0x55bed3){return _0x55bed3?{'count':_0x74a2eb,'rows':_0x55bed3}:null;}})['then'](respondWithResult(_0xe1b77c,null))[_0x62bc('0x24')](handleError(_0xe1b77c,null));};exports['getDescriptions']=function(_0x25bf61,_0x4c003a,_0x14dee2){var _0x5dc964={};var _0x43dc36={};var _0x37a9f2;var _0x135bb7;return db[_0x62bc('0x34')]['findOne']({'where':{'id':_0x25bf61['params']['id']}})['then'](handleEntityNotFound(_0x4c003a,null))[_0x62bc('0x2e')](function(_0x876ab1){if(_0x876ab1){_0x37a9f2=_0x876ab1;_0x43dc36['model']=_[_0x62bc('0x37')](db['VtigerField'][_0x62bc('0x35')]);_0x43dc36[_0x62bc('0x38')]=_[_0x62bc('0x37')](_0x25bf61['query']);_0x43dc36[_0x62bc('0x40')]=_[_0x62bc('0x3b')](_0x43dc36[_0x62bc('0x36')],_0x43dc36[_0x62bc('0x38')]);_0x5dc964[_0x62bc('0x3c')]=_[_0x62bc('0x3b')](_0x43dc36['model'],qs[_0x62bc('0x3d')](_0x25bf61['query'][_0x62bc('0x3d')]));_0x5dc964[_0x62bc('0x3c')]=_0x5dc964['attributes'][_0x62bc('0x4e')]?_0x5dc964[_0x62bc('0x3c')]:_0x43dc36[_0x62bc('0x36')];_0x5dc964[_0x62bc('0x55')]=qs['sort'](_0x25bf61[_0x62bc('0x38')][_0x62bc('0x3f')]);_0x5dc964[_0x62bc('0x45')]=qs[_0x62bc('0x40')](_[_0x62bc('0x41')](_0x25bf61['query'],_0x43dc36['filters']));if(_0x25bf61[_0x62bc('0x38')][_0x62bc('0x46')]){_0x5dc964['where']=_['merge'](_0x5dc964[_0x62bc('0x45')],{'$or':_[_0x62bc('0x47')](_0x5dc964[_0x62bc('0x3c')],function(_0xee7af5){var _0x58e0fc={};_0x58e0fc[_0xee7af5]={'$like':'%'+_0x25bf61['query'][_0x62bc('0x46')]+'%'};return _0x58e0fc;})});}_0x5dc964=_[_0x62bc('0x44')]({},_0x5dc964,_0x25bf61[_0x62bc('0x48')]);return _0x37a9f2[_0x62bc('0x58')](_0x5dc964);}})[_0x62bc('0x2e')](function(_0x4c7684){if(_0x4c7684){_0x135bb7=_0x4c7684[_0x62bc('0x4e')];if(!_0x25bf61[_0x62bc('0x38')][_0x62bc('0x3e')]('nolimit')){_0x5dc964[_0x62bc('0x27')]=qs[_0x62bc('0x27')](_0x25bf61[_0x62bc('0x38')][_0x62bc('0x27')]);_0x5dc964[_0x62bc('0x26')]=qs['offset'](_0x25bf61[_0x62bc('0x38')][_0x62bc('0x26')]);}return _0x37a9f2[_0x62bc('0x58')](_0x5dc964);}})[_0x62bc('0x2e')](function(_0x5c9fb6){if(_0x5c9fb6){return _0x5c9fb6?{'count':_0x135bb7,'rows':_0x5c9fb6}:null;}})[_0x62bc('0x2e')](respondWithResult(_0x4c003a,null))[_0x62bc('0x24')](handleError(_0x4c003a,null));};
\ No newline at end of file
+var _0x30cc=['create','body','getFields','findOne','VtigerField','hasOwnProperty','getSubjects','nolimit','getDescriptions','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','VtigerConfiguration,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','update','destroy','stack','send','index','rawAttributes','model','keys','query','dateEnd','dateStart','filters','attributes','intersection','fields','length','order','sort','where','pick','add','day','merge','filter','map','VtigerConfiguration','count','includeAll','include','rows','show','params','options','find'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x30cc,0x111));var _0xc30c=function(_0x2fe689,_0x5794e5){_0x2fe689=_0x2fe689-0x0;var _0x35ea44=_0x30cc[_0x2fe689];return _0x35ea44;};'use strict';var pdf=require(_0xc30c('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc30c('0x1'));var zipdir=require(_0xc30c('0x2'));var jsonpatch=require(_0xc30c('0x3'));var rp=require(_0xc30c('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xc30c('0x5'));var util=require(_0xc30c('0x6'));var path=require(_0xc30c('0x7'));var sox=require(_0xc30c('0x8'));var csv=require(_0xc30c('0x9'));var ejs=require(_0xc30c('0xa'));var fs=require('fs');var _=require(_0xc30c('0xb'));var squel=require(_0xc30c('0xc'));var crypto=require(_0xc30c('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xc30c('0xe'));var toCsv=require(_0xc30c('0x9'));var querystring=require(_0xc30c('0xf'));var Papa=require(_0xc30c('0x10'));var Redis=require(_0xc30c('0x11'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xc30c('0x12'));var utils=require(_0xc30c('0x13'));var config=require(_0xc30c('0x14'));var db=require(_0xc30c('0x15'))['db'];var jayson=require(_0xc30c('0x16'));var client=jayson[_0xc30c('0x17')][_0xc30c('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x3287c4,_0x45c23a,_0x39a327,_0x4d5e19){return new BPromise(function(_0x394d4e,_0x394105){var _0x811b9e=_0x4d5e19||client;return _0x811b9e[_0xc30c('0x19')](_0x3287c4,_0x39a327)[_0xc30c('0x1a')](function(_0xa22faa){logger[_0xc30c('0x1b')]('VtigerConfiguration,\x20%s,\x20%s',_0x45c23a,_0xc30c('0x1c'));logger[_0xc30c('0x1d')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x45c23a,'request\x20sent',JSON[_0xc30c('0x1e')](_0xa22faa));if(_0xa22faa['error']){if(_0xa22faa[_0xc30c('0x1f')]['code']===0x1f4){logger[_0xc30c('0x1f')](_0xc30c('0x20'),_0x45c23a,_0xa22faa[_0xc30c('0x1f')]['message']);return _0x394105(_0xa22faa['error'][_0xc30c('0x21')]);}logger[_0xc30c('0x1f')](_0xc30c('0x20'),_0x45c23a,_0xa22faa[_0xc30c('0x1f')][_0xc30c('0x21')]);return _0x394d4e(_0xa22faa[_0xc30c('0x1f')][_0xc30c('0x21')]);}else{logger[_0xc30c('0x1b')](_0xc30c('0x20'),_0x45c23a,_0xc30c('0x1c'));_0x394d4e(_0xa22faa[_0xc30c('0x22')][_0xc30c('0x21')]);}})[_0xc30c('0x23')](function(_0x3b99a9){logger[_0xc30c('0x1f')]('VtigerConfiguration,\x20%s,\x20%s',_0x45c23a,_0x3b99a9);_0x394105(_0x3b99a9);});});}function respondWithStatusCode(_0x777803,_0x158202){_0x158202=_0x158202||0xcc;return function(_0x110988){if(_0x110988){return _0x777803[_0xc30c('0x24')](_0x158202);}return _0x777803[_0xc30c('0x25')](_0x158202)[_0xc30c('0x26')]();};}function respondWithResult(_0x2a3bc6,_0x4b1eb9){_0x4b1eb9=_0x4b1eb9||0xc8;return function(_0x3c4f8a){if(_0x3c4f8a){return _0x2a3bc6['status'](_0x4b1eb9)[_0xc30c('0x27')](_0x3c4f8a);}};}function respondWithFilteredResult(_0x3dbfc4,_0x54ef1d){return function(_0x1d1991){if(_0x1d1991){var _0x3e9724=_0x1d1991['count'],_0x225ff8=_0x54ef1d['offset'],_0x3ae496=_0x54ef1d[_0xc30c('0x28')]+_0x54ef1d[_0xc30c('0x29')],_0x1f2ef1;if(_0x3ae496>=_0x3e9724){_0x3ae496=_0x3e9724;_0x1f2ef1=0xc8;}else{_0x1f2ef1=0xce;}_0x3dbfc4[_0xc30c('0x25')](_0x1f2ef1);return _0x3dbfc4[_0xc30c('0x2a')](_0xc30c('0x2b'),_0x225ff8+'-'+_0x3ae496+'/'+_0x3e9724)[_0xc30c('0x27')](_0x1d1991);}return null;};}function patchUpdates(_0x2d98d8){return function(_0x43ec83){try{jsonpatch[_0xc30c('0x2c')](_0x43ec83,_0x2d98d8,!![]);}catch(_0x4ad527){return BPromise['reject'](_0x4ad527);}return _0x43ec83['save']();};}function saveUpdates(_0x57741a,_0x57bc39){return function(_0x59b90f){if(_0x59b90f){return _0x59b90f[_0xc30c('0x2d')](_0x57741a)[_0xc30c('0x1a')](function(_0x393960){return _0x393960;});}return null;};}function removeEntity(_0x1956d8,_0x12a1bc){return function(_0x27bac4){if(_0x27bac4){return _0x27bac4[_0xc30c('0x2e')]()[_0xc30c('0x1a')](function(){_0x1956d8['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x178e38,_0x4e4cc6){return function(_0x4e2167){if(!_0x4e2167){_0x178e38[_0xc30c('0x24')](0x194);}return _0x4e2167;};}function handleError(_0x59a205,_0x362f3e){_0x362f3e=_0x362f3e||0x1f4;return function(_0x504fa8){logger['error'](_0x504fa8[_0xc30c('0x2f')]);if(_0x504fa8['name']){delete _0x504fa8['name'];}_0x59a205[_0xc30c('0x25')](_0x362f3e)[_0xc30c('0x30')](_0x504fa8);};}exports[_0xc30c('0x31')]=function(_0x159185,_0x11ffc8){var _0x29e992={},_0x49821d={},_0x56fd52={'count':0x0,'rows':[]};var _0x3148cf=db['VtigerConfiguration'][_0xc30c('0x32')];_0x49821d[_0xc30c('0x33')]=_[_0xc30c('0x34')](_0x3148cf);var _0x1db514={'dateStart':_0x159185[_0xc30c('0x35')]['dateStart'],'dateEnd':_0x159185['query'][_0xc30c('0x36')]};delete _0x159185['query'][_0xc30c('0x37')];delete _0x159185[_0xc30c('0x35')][_0xc30c('0x36')];_0x49821d['query']=_[_0xc30c('0x34')](_0x159185[_0xc30c('0x35')]);_0x49821d[_0xc30c('0x38')]=_['intersection'](_0x49821d[_0xc30c('0x33')],_0x49821d['query']);_0x29e992[_0xc30c('0x39')]=_[_0xc30c('0x3a')](_0x49821d['model'],qs[_0xc30c('0x3b')](_0x159185['query'][_0xc30c('0x3b')]));_0x29e992[_0xc30c('0x39')]=_0x29e992[_0xc30c('0x39')][_0xc30c('0x3c')]?_0x29e992[_0xc30c('0x39')]:_0x49821d[_0xc30c('0x33')];if(!_0x159185[_0xc30c('0x35')]['hasOwnProperty']('nolimit')){_0x29e992[_0xc30c('0x29')]=qs[_0xc30c('0x29')](_0x159185[_0xc30c('0x35')][_0xc30c('0x29')]);_0x29e992[_0xc30c('0x28')]=qs[_0xc30c('0x28')](_0x159185[_0xc30c('0x35')][_0xc30c('0x28')]);}_0x29e992[_0xc30c('0x3d')]=qs[_0xc30c('0x3e')](_0x159185['query'][_0xc30c('0x3e')]);_0x29e992[_0xc30c('0x3f')]=qs[_0xc30c('0x38')](_[_0xc30c('0x40')](_0x159185['query'],_0x49821d[_0xc30c('0x38')]));if(_0x1db514[_0xc30c('0x37')]){if(_0x1db514['dateEnd']){_0x1db514[_0xc30c('0x36')]=moment(_0x1db514[_0xc30c('0x36')])[_0xc30c('0x41')](0x1,_0xc30c('0x42'));}else{_0x1db514[_0xc30c('0x36')]=moment(_0x1db514[_0xc30c('0x37')])[_0xc30c('0x41')](0x1,'day');}_[_0xc30c('0x43')](_0x29e992[_0xc30c('0x3f')],{'createdAt':{'$gte':_0x1db514['dateStart'],'$lte':_0x1db514[_0xc30c('0x36')]}});}if(_0x159185[_0xc30c('0x35')][_0xc30c('0x44')]){_0x29e992[_0xc30c('0x3f')]=_[_0xc30c('0x43')](_0x29e992['where'],{'$or':_[_0xc30c('0x45')](_0x29e992[_0xc30c('0x39')],function(_0x5abd59){var _0x26a0ec={};_0x26a0ec[_0x5abd59]={'$like':'%'+_0x159185[_0xc30c('0x35')][_0xc30c('0x44')]+'%'};return _0x26a0ec;})});}_0x29e992=_['merge']({},_0x29e992,_0x159185['options']);var _0x44cff5={'where':_0x29e992[_0xc30c('0x3f')]};return db[_0xc30c('0x46')][_0xc30c('0x47')](_0x44cff5)['then'](function(_0x2f701c){_0x56fd52[_0xc30c('0x47')]=_0x2f701c;if(_0x159185[_0xc30c('0x35')][_0xc30c('0x48')]){_0x29e992[_0xc30c('0x49')]=[{'all':!![]}];}return db[_0xc30c('0x46')]['findAll'](_0x29e992);})[_0xc30c('0x1a')](function(_0x34db7f){_0x56fd52[_0xc30c('0x4a')]=_0x34db7f;return _0x56fd52;})[_0xc30c('0x1a')](respondWithFilteredResult(_0x11ffc8,_0x29e992))[_0xc30c('0x23')](handleError(_0x11ffc8,null));};exports[_0xc30c('0x4b')]=function(_0x27ee4b,_0x5f32e9){var _0x11a530={'raw':![],'where':{'id':_0x27ee4b[_0xc30c('0x4c')]['id']}},_0x405a38={};_0x405a38[_0xc30c('0x33')]=_[_0xc30c('0x34')](db[_0xc30c('0x46')][_0xc30c('0x32')]);_0x405a38[_0xc30c('0x35')]=_[_0xc30c('0x34')](_0x27ee4b[_0xc30c('0x35')]);_0x405a38['filters']=_['intersection'](_0x405a38[_0xc30c('0x33')],_0x405a38[_0xc30c('0x35')]);_0x11a530['attributes']=_['intersection'](_0x405a38['model'],qs[_0xc30c('0x3b')](_0x27ee4b[_0xc30c('0x35')][_0xc30c('0x3b')]));_0x11a530[_0xc30c('0x39')]=_0x11a530[_0xc30c('0x39')][_0xc30c('0x3c')]?_0x11a530[_0xc30c('0x39')]:_0x405a38[_0xc30c('0x33')];if(_0x27ee4b['query'][_0xc30c('0x48')]){_0x11a530[_0xc30c('0x49')]=[{'all':!![]}];}_0x11a530=_[_0xc30c('0x43')]({},_0x11a530,_0x27ee4b[_0xc30c('0x4d')]);return db['VtigerConfiguration'][_0xc30c('0x4e')](_0x11a530)['then'](handleEntityNotFound(_0x5f32e9,null))[_0xc30c('0x1a')](respondWithResult(_0x5f32e9,null))[_0xc30c('0x23')](handleError(_0x5f32e9,null));};exports[_0xc30c('0x4f')]=function(_0x54ef98,_0x1f4c04){return db[_0xc30c('0x46')][_0xc30c('0x4f')](_0x54ef98[_0xc30c('0x50')],{})[_0xc30c('0x1a')](respondWithResult(_0x1f4c04,0xc9))[_0xc30c('0x23')](handleError(_0x1f4c04,null));};exports[_0xc30c('0x2d')]=function(_0x2c0677,_0x411bf6){if(_0x2c0677[_0xc30c('0x50')]['id']){delete _0x2c0677['body']['id'];}return db[_0xc30c('0x46')][_0xc30c('0x4e')]({'where':{'id':_0x2c0677[_0xc30c('0x4c')]['id']}})['then'](handleEntityNotFound(_0x411bf6,null))[_0xc30c('0x1a')](saveUpdates(_0x2c0677[_0xc30c('0x50')],null))[_0xc30c('0x1a')](respondWithResult(_0x411bf6,null))[_0xc30c('0x23')](handleError(_0x411bf6,null));};exports[_0xc30c('0x2e')]=function(_0x3a7843,_0xfb70dd){return db['VtigerConfiguration'][_0xc30c('0x4e')]({'where':{'id':_0x3a7843[_0xc30c('0x4c')]['id']}})['then'](handleEntityNotFound(_0xfb70dd,null))['then'](removeEntity(_0xfb70dd,null))[_0xc30c('0x23')](handleError(_0xfb70dd,null));};exports[_0xc30c('0x51')]=function(_0x541d9e,_0x60adec,_0x26ca22){var _0x152bb9={};var _0x3a67fb={};var _0x30f875;var _0x428efe;return db[_0xc30c('0x46')][_0xc30c('0x52')]({'where':{'id':_0x541d9e['params']['id']}})[_0xc30c('0x1a')](handleEntityNotFound(_0x60adec,null))[_0xc30c('0x1a')](function(_0x330b3e){if(_0x330b3e){_0x30f875=_0x330b3e;_0x3a67fb['model']=_[_0xc30c('0x34')](db[_0xc30c('0x53')]['rawAttributes']);_0x3a67fb[_0xc30c('0x35')]=_[_0xc30c('0x34')](_0x541d9e[_0xc30c('0x35')]);_0x3a67fb[_0xc30c('0x38')]=_[_0xc30c('0x3a')](_0x3a67fb[_0xc30c('0x33')],_0x3a67fb['query']);_0x152bb9[_0xc30c('0x39')]=_['intersection'](_0x3a67fb['model'],qs['fields'](_0x541d9e['query'][_0xc30c('0x3b')]));_0x152bb9['attributes']=_0x152bb9[_0xc30c('0x39')][_0xc30c('0x3c')]?_0x152bb9[_0xc30c('0x39')]:_0x3a67fb[_0xc30c('0x33')];_0x152bb9['order']=qs[_0xc30c('0x3e')](_0x541d9e[_0xc30c('0x35')][_0xc30c('0x3e')]);_0x152bb9[_0xc30c('0x3f')]=qs[_0xc30c('0x38')](_['pick'](_0x541d9e['query'],_0x3a67fb['filters']));if(_0x541d9e[_0xc30c('0x35')][_0xc30c('0x44')]){_0x152bb9[_0xc30c('0x3f')]=_[_0xc30c('0x43')](_0x152bb9[_0xc30c('0x3f')],{'$or':_[_0xc30c('0x45')](_0x152bb9[_0xc30c('0x39')],function(_0x4e121a){var _0x5aa352={};_0x5aa352[_0x4e121a]={'$like':'%'+_0x541d9e['query'][_0xc30c('0x44')]+'%'};return _0x5aa352;})});}_0x152bb9=_['merge']({},_0x152bb9,_0x541d9e[_0xc30c('0x4d')]);return _0x30f875['getFields'](_0x152bb9);}})['then'](function(_0x96b192){if(_0x96b192){_0x428efe=_0x96b192[_0xc30c('0x3c')];if(!_0x541d9e[_0xc30c('0x35')][_0xc30c('0x54')]('nolimit')){_0x152bb9['limit']=qs[_0xc30c('0x29')](_0x541d9e[_0xc30c('0x35')][_0xc30c('0x29')]);_0x152bb9[_0xc30c('0x28')]=qs[_0xc30c('0x28')](_0x541d9e['query']['offset']);}return _0x30f875['getFields'](_0x152bb9);}})[_0xc30c('0x1a')](function(_0x933f2e){if(_0x933f2e){return _0x933f2e?{'count':_0x428efe,'rows':_0x933f2e}:null;}})[_0xc30c('0x1a')](respondWithResult(_0x60adec,null))[_0xc30c('0x23')](handleError(_0x60adec,null));};exports[_0xc30c('0x55')]=function(_0x345512,_0x47b84e,_0x50c4d9){var _0x159dd0={};var _0xe968ff={};var _0x512bfc;var _0x117ad4;return db[_0xc30c('0x46')][_0xc30c('0x52')]({'where':{'id':_0x345512[_0xc30c('0x4c')]['id']}})[_0xc30c('0x1a')](handleEntityNotFound(_0x47b84e,null))['then'](function(_0x5f4afb){if(_0x5f4afb){_0x512bfc=_0x5f4afb;_0xe968ff[_0xc30c('0x33')]=_[_0xc30c('0x34')](db['VtigerField'][_0xc30c('0x32')]);_0xe968ff[_0xc30c('0x35')]=_['keys'](_0x345512[_0xc30c('0x35')]);_0xe968ff[_0xc30c('0x38')]=_[_0xc30c('0x3a')](_0xe968ff['model'],_0xe968ff[_0xc30c('0x35')]);_0x159dd0[_0xc30c('0x39')]=_['intersection'](_0xe968ff['model'],qs[_0xc30c('0x3b')](_0x345512[_0xc30c('0x35')][_0xc30c('0x3b')]));_0x159dd0[_0xc30c('0x39')]=_0x159dd0['attributes'][_0xc30c('0x3c')]?_0x159dd0[_0xc30c('0x39')]:_0xe968ff['model'];_0x159dd0[_0xc30c('0x3d')]=qs[_0xc30c('0x3e')](_0x345512['query'][_0xc30c('0x3e')]);_0x159dd0[_0xc30c('0x3f')]=qs['filters'](_['pick'](_0x345512[_0xc30c('0x35')],_0xe968ff[_0xc30c('0x38')]));if(_0x345512[_0xc30c('0x35')]['filter']){_0x159dd0[_0xc30c('0x3f')]=_['merge'](_0x159dd0[_0xc30c('0x3f')],{'$or':_[_0xc30c('0x45')](_0x159dd0['attributes'],function(_0x64cb6f){var _0x2961d8={};_0x2961d8[_0x64cb6f]={'$like':'%'+_0x345512[_0xc30c('0x35')]['filter']+'%'};return _0x2961d8;})});}_0x159dd0=_[_0xc30c('0x43')]({},_0x159dd0,_0x345512['options']);return _0x512bfc[_0xc30c('0x55')](_0x159dd0);}})[_0xc30c('0x1a')](function(_0x3095f5){if(_0x3095f5){_0x117ad4=_0x3095f5[_0xc30c('0x3c')];if(!_0x345512[_0xc30c('0x35')][_0xc30c('0x54')](_0xc30c('0x56'))){_0x159dd0[_0xc30c('0x29')]=qs['limit'](_0x345512[_0xc30c('0x35')][_0xc30c('0x29')]);_0x159dd0[_0xc30c('0x28')]=qs[_0xc30c('0x28')](_0x345512[_0xc30c('0x35')]['offset']);}return _0x512bfc[_0xc30c('0x55')](_0x159dd0);}})[_0xc30c('0x1a')](function(_0x141bd9){if(_0x141bd9){return _0x141bd9?{'count':_0x117ad4,'rows':_0x141bd9}:null;}})[_0xc30c('0x1a')](respondWithResult(_0x47b84e,null))[_0xc30c('0x23')](handleError(_0x47b84e,null));};exports[_0xc30c('0x57')]=function(_0x50ab5f,_0x244262,_0x51fc8c){var _0x4be1fb={};var _0x51124c={};var _0x10c6eb;var _0x25ace7;return db[_0xc30c('0x46')][_0xc30c('0x52')]({'where':{'id':_0x50ab5f['params']['id']}})[_0xc30c('0x1a')](handleEntityNotFound(_0x244262,null))[_0xc30c('0x1a')](function(_0xee9789){if(_0xee9789){_0x10c6eb=_0xee9789;_0x51124c[_0xc30c('0x33')]=_['keys'](db[_0xc30c('0x53')]['rawAttributes']);_0x51124c[_0xc30c('0x35')]=_[_0xc30c('0x34')](_0x50ab5f['query']);_0x51124c['filters']=_[_0xc30c('0x3a')](_0x51124c[_0xc30c('0x33')],_0x51124c[_0xc30c('0x35')]);_0x4be1fb[_0xc30c('0x39')]=_[_0xc30c('0x3a')](_0x51124c[_0xc30c('0x33')],qs[_0xc30c('0x3b')](_0x50ab5f['query'][_0xc30c('0x3b')]));_0x4be1fb[_0xc30c('0x39')]=_0x4be1fb[_0xc30c('0x39')][_0xc30c('0x3c')]?_0x4be1fb['attributes']:_0x51124c[_0xc30c('0x33')];_0x4be1fb[_0xc30c('0x3d')]=qs['sort'](_0x50ab5f[_0xc30c('0x35')][_0xc30c('0x3e')]);_0x4be1fb[_0xc30c('0x3f')]=qs[_0xc30c('0x38')](_[_0xc30c('0x40')](_0x50ab5f[_0xc30c('0x35')],_0x51124c[_0xc30c('0x38')]));if(_0x50ab5f['query'][_0xc30c('0x44')]){_0x4be1fb['where']=_[_0xc30c('0x43')](_0x4be1fb[_0xc30c('0x3f')],{'$or':_['map'](_0x4be1fb['attributes'],function(_0x5cf40e){var _0x568d31={};_0x568d31[_0x5cf40e]={'$like':'%'+_0x50ab5f[_0xc30c('0x35')]['filter']+'%'};return _0x568d31;})});}_0x4be1fb=_[_0xc30c('0x43')]({},_0x4be1fb,_0x50ab5f[_0xc30c('0x4d')]);return _0x10c6eb[_0xc30c('0x57')](_0x4be1fb);}})[_0xc30c('0x1a')](function(_0x345a70){if(_0x345a70){_0x25ace7=_0x345a70[_0xc30c('0x3c')];if(!_0x50ab5f['query'][_0xc30c('0x54')](_0xc30c('0x56'))){_0x4be1fb[_0xc30c('0x29')]=qs[_0xc30c('0x29')](_0x50ab5f[_0xc30c('0x35')][_0xc30c('0x29')]);_0x4be1fb[_0xc30c('0x28')]=qs[_0xc30c('0x28')](_0x50ab5f[_0xc30c('0x35')][_0xc30c('0x28')]);}return _0x10c6eb[_0xc30c('0x57')](_0x4be1fb);}})[_0xc30c('0x1a')](function(_0x3e0678){if(_0x3e0678){return _0x3e0678?{'count':_0x25ace7,'rows':_0x3e0678}:null;}})[_0xc30c('0x1a')](respondWithResult(_0x244262,null))[_0xc30c('0x23')](handleError(_0x244262,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa945=['../../config/logger','api','request-promise','./intVtigerConfiguration.attributes','exports','VtigerConfiguration'];(function(_0x36bc41,_0x3e6902){var _0xd32a46=function(_0x59748d){while(--_0x59748d){_0x36bc41['push'](_0x36bc41['shift']());}};_0xd32a46(++_0x3e6902);}(_0xa945,0x192));var _0x5a94=function(_0x26043e,_0x2b1a1a){_0x26043e=_0x26043e-0x0;var _0x312783=_0xa945[_0x26043e];return _0x312783;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5a94('0x0'))(_0x5a94('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x5a94('0x2'));var attributes=require(_0x5a94('0x3'));module[_0x5a94('0x4')]=function(_0x238802,_0x26a6fb){return _0x238802['define'](_0x5a94('0x5'),attributes,{'tableName':'int_vtiger_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe436=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','./intVtigerConfiguration.attributes','exports','define','VtigerConfiguration'];(function(_0x1b9bae,_0xb23f84){var _0x1c95d8=function(_0x283c7b){while(--_0x283c7b){_0x1b9bae['push'](_0x1b9bae['shift']());}};_0x1c95d8(++_0xb23f84);}(_0xe436,0xb0));var _0x6e43=function(_0x3ffee8,_0x1e1f9f){_0x3ffee8=_0x3ffee8-0x0;var _0x2f432e=_0xe436[_0x3ffee8];return _0x2f432e;};'use strict';var _=require(_0x6e43('0x0'));var util=require(_0x6e43('0x1'));var logger=require(_0x6e43('0x2'))(_0x6e43('0x3'));var moment=require(_0x6e43('0x4'));var BPromise=require(_0x6e43('0x5'));var rp=require(_0x6e43('0x6'));var attributes=require(_0x6e43('0x7'));module[_0x6e43('0x8')]=function(_0x46452b,_0x14e4e3){return _0x46452b[_0x6e43('0x9')](_0x6e43('0xa'),attributes,{'tableName':'int_vtiger_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd570=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','info','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','moment','randomstring','../../mysqldb'];(function(_0x1110ea,_0x32e992){var _0x253a15=function(_0x4cc253){while(--_0x4cc253){_0x1110ea['push'](_0x1110ea['shift']());}};_0x253a15(++_0x32e992);}(_0xd570,0xa6));var _0x0d57=function(_0x13256a,_0x52112f){_0x13256a=_0x13256a-0x0;var _0x596f35=_0xd570[_0x13256a];return _0x596f35;};'use strict';var _=require(_0x0d57('0x0'));var util=require(_0x0d57('0x1'));var moment=require(_0x0d57('0x2'));var BPromise=require('bluebird');var rs=require(_0x0d57('0x3'));var fs=require('fs');var db=require(_0x0d57('0x4'))['db'];var utils=require(_0x0d57('0x5'));var logger=require(_0x0d57('0x6'))('rpc');var config=require(_0x0d57('0x7'));var jayson=require(_0x0d57('0x8'));var client=jayson[_0x0d57('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5dcedf,_0xdaeaa1,_0x2c2139){return new BPromise(function(_0x23dbfe,_0x5d3300){return client['request'](_0x5dcedf,_0x2c2139)['then'](function(_0x4f4e34){logger[_0x0d57('0xa')](_0x0d57('0xb'),_0xdaeaa1,_0x0d57('0xc'));logger[_0x0d57('0xd')](_0x0d57('0xe'),_0xdaeaa1,_0x0d57('0xc'),JSON['stringify'](_0x4f4e34));if(_0x4f4e34[_0x0d57('0xf')]){if(_0x4f4e34[_0x0d57('0xf')]['code']===0x1f4){logger['error'](_0x0d57('0xb'),_0xdaeaa1,_0x4f4e34[_0x0d57('0xf')][_0x0d57('0x10')]);return _0x5d3300(_0x4f4e34[_0x0d57('0xf')]['message']);}logger[_0x0d57('0xf')]('VtigerConfiguration,\x20%s,\x20%s',_0xdaeaa1,_0x4f4e34[_0x0d57('0xf')][_0x0d57('0x10')]);return _0x23dbfe(_0x4f4e34[_0x0d57('0xf')][_0x0d57('0x10')]);}else{logger[_0x0d57('0xa')](_0x0d57('0xb'),_0xdaeaa1,_0x0d57('0xc'));_0x23dbfe(_0x4f4e34[_0x0d57('0x11')][_0x0d57('0x10')]);}})[_0x0d57('0x12')](function(_0x2c8d0f){logger[_0x0d57('0xf')](_0x0d57('0xb'),_0xdaeaa1,_0x2c8d0f);_0x5d3300(_0x2c8d0f);});});}
\ No newline at end of file
+var _0x53a2=['debug','stringify','error','code','message','request\x20sent','catch','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','VtigerConfiguration,\x20%s,\x20%s'];(function(_0x5f26d1,_0x37aab4){var _0x2b317e=function(_0x55f520){while(--_0x55f520){_0x5f26d1['push'](_0x5f26d1['shift']());}};_0x2b317e(++_0x37aab4);}(_0x53a2,0x1ab));var _0x253a=function(_0x5e3b04,_0xbb6795){_0x5e3b04=_0x5e3b04-0x0;var _0x1fc44d=_0x53a2[_0x5e3b04];return _0x1fc44d;};'use strict';var _=require('lodash');var util=require(_0x253a('0x0'));var moment=require('moment');var BPromise=require(_0x253a('0x1'));var rs=require(_0x253a('0x2'));var fs=require('fs');var Redis=require(_0x253a('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x253a('0x4'));var logger=require(_0x253a('0x5'))(_0x253a('0x6'));var config=require(_0x253a('0x7'));var jayson=require(_0x253a('0x8'));var client=jayson[_0x253a('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3bddd4,_0x53752d,_0x398a77){return new BPromise(function(_0x1886d5,_0x12deac){return client[_0x253a('0xa')](_0x3bddd4,_0x398a77)[_0x253a('0xb')](function(_0x5de653){logger[_0x253a('0xc')](_0x253a('0xd'),_0x53752d,'request\x20sent');logger[_0x253a('0xe')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x53752d,'request\x20sent',JSON[_0x253a('0xf')](_0x5de653));if(_0x5de653[_0x253a('0x10')]){if(_0x5de653[_0x253a('0x10')][_0x253a('0x11')]===0x1f4){logger['error'](_0x253a('0xd'),_0x53752d,_0x5de653['error'][_0x253a('0x12')]);return _0x12deac(_0x5de653['error'][_0x253a('0x12')]);}logger['error'](_0x253a('0xd'),_0x53752d,_0x5de653['error'][_0x253a('0x12')]);return _0x1886d5(_0x5de653[_0x253a('0x10')][_0x253a('0x12')]);}else{logger['info'](_0x253a('0xd'),_0x53752d,_0x253a('0x13'));_0x1886d5(_0x5de653['result'][_0x253a('0x12')]);}})[_0x253a('0x14')](function(_0x4865f5){logger['error'](_0x253a('0xd'),_0x53752d,_0x4865f5);_0x12deac(_0x4865f5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x686c=['util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./intVtigerField.controller','get','index','/:id','isAuthenticated','post','create','put','delete','exports'];(function(_0x20aad8,_0x2810f5){var _0x2e7972=function(_0x11d5e1){while(--_0x11d5e1){_0x20aad8['push'](_0x20aad8['shift']());}};_0x2e7972(++_0x2810f5);}(_0x686c,0x143));var _0xc686=function(_0x5909f1,_0x9c8da1){_0x5909f1=_0x5909f1-0x0;var _0xaee531=_0x686c[_0x5909f1];return _0xaee531;};'use strict';var multer=require('multer');var util=require(_0xc686('0x0'));var path=require(_0xc686('0x1'));var timeout=require(_0xc686('0x2'));var express=require(_0xc686('0x3'));var router=express[_0xc686('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0xc686('0x5'));var config=require(_0xc686('0x6'));var controller=require(_0xc686('0x7'));router[_0xc686('0x8')]('/',auth['isAuthenticated'](),controller[_0xc686('0x9')]);router[_0xc686('0x8')](_0xc686('0xa'),auth[_0xc686('0xb')](),controller['show']);router[_0xc686('0xc')]('/',auth[_0xc686('0xb')](),controller[_0xc686('0xd')]);router[_0xc686('0xe')](_0xc686('0xa'),auth[_0xc686('0xb')](),controller['update']);router[_0xc686('0xf')](_0xc686('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0xc686('0x10')]=router;
\ No newline at end of file
+var _0x590f=['put','update','delete','destroy','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerField.controller','get','index','/:id','isAuthenticated','show','create'];(function(_0x25bea7,_0x49ab45){var _0x175952=function(_0x56a0b5){while(--_0x56a0b5){_0x25bea7['push'](_0x25bea7['shift']());}};_0x175952(++_0x49ab45);}(_0x590f,0x136));var _0xf590=function(_0x5cfcaa,_0x46446f){_0x5cfcaa=_0x5cfcaa-0x0;var _0x5a1462=_0x590f[_0x5cfcaa];return _0x5a1462;};'use strict';var multer=require('multer');var util=require(_0xf590('0x0'));var path=require(_0xf590('0x1'));var timeout=require('connect-timeout');var express=require(_0xf590('0x2'));var router=express[_0xf590('0x3')]();var auth=require(_0xf590('0x4'));var interaction=require(_0xf590('0x5'));var config=require(_0xf590('0x6'));var controller=require(_0xf590('0x7'));router[_0xf590('0x8')]('/',auth['isAuthenticated'](),controller[_0xf590('0x9')]);router[_0xf590('0x8')](_0xf590('0xa'),auth[_0xf590('0xb')](),controller[_0xf590('0xc')]);router['post']('/',auth[_0xf590('0xb')](),controller[_0xf590('0xd')]);router[_0xf590('0xe')](_0xf590('0xa'),auth[_0xf590('0xb')](),controller[_0xf590('0xf')]);router[_0xf590('0x10')](_0xf590('0xa'),auth[_0xf590('0xb')](),controller[_0xf590('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4522=['STRING','customVariable','BOOLEAN','ENUM','string','variable','keyValue'];(function(_0x46afa4,_0x55f3e6){var _0x4430de=function(_0x355449){while(--_0x355449){_0x46afa4['push'](_0x46afa4['shift']());}};_0x4430de(++_0x55f3e6);}(_0x4522,0x1a0));var _0x2452=function(_0x50e301,_0x38bfdd){_0x50e301=_0x50e301-0x0;var _0x16ea44=_0x4522[_0x50e301];return _0x16ea44;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0x2452('0x0')](_0x2452('0x1'),_0x2452('0x2'),'customVariable',_0x2452('0x3')),'defaultValue':_0x2452('0x1')},'content':{'type':Sequelize[_0x2452('0x4')]},'key':{'type':Sequelize[_0x2452('0x4')]},'keyType':{'type':Sequelize[_0x2452('0x0')](_0x2452('0x1'),_0x2452('0x2'),_0x2452('0x5'))},'keyContent':{'type':Sequelize[_0x2452('0x4')]},'idField':{'type':Sequelize[_0x2452('0x4')]},'nameField':{'type':Sequelize[_0x2452('0x4')]},'customField':{'type':Sequelize[_0x2452('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x2452('0x4')]}};
\ No newline at end of file
+var _0xb688=['ENUM','string','variable','customVariable','keyValue','STRING','BOOLEAN','exports'];(function(_0xe0d676,_0x4cd630){var _0x23cfe7=function(_0x1a91db){while(--_0x1a91db){_0xe0d676['push'](_0xe0d676['shift']());}};_0x23cfe7(++_0x4cd630);}(_0xb688,0xcf));var _0x8b68=function(_0x13d196,_0x3e0463){_0x13d196=_0x13d196-0x0;var _0x3e25c3=_0xb688[_0x13d196];return _0x3e25c3;};'use strict';var Sequelize=require('sequelize');module[_0x8b68('0x0')]={'type':{'type':Sequelize[_0x8b68('0x1')](_0x8b68('0x2'),_0x8b68('0x3'),_0x8b68('0x4'),_0x8b68('0x5')),'defaultValue':'string'},'content':{'type':Sequelize[_0x8b68('0x6')]},'key':{'type':Sequelize[_0x8b68('0x6')]},'keyType':{'type':Sequelize[_0x8b68('0x1')](_0x8b68('0x2'),'variable',_0x8b68('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x8b68('0x6')]},'nameField':{'type':Sequelize[_0x8b68('0x6')]},'customField':{'type':Sequelize[_0x8b68('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x8b68('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1e4=['model','keys','query','dateEnd','dateStart','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','map','filter','includeAll','include','findAll','rows','catch','show','params','find','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','sox','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','VtigerField','rawAttributes'];(function(_0xd95a4f,_0x5b2faf){var _0x913026=function(_0x4e9711){while(--_0x4e9711){_0xd95a4f['push'](_0xd95a4f['shift']());}};_0x913026(++_0x5b2faf);}(_0xb1e4,0x137));var _0x4b1e=function(_0x1e00ca,_0x660b96){_0x1e00ca=_0x1e00ca-0x0;var _0x4f89f4=_0xb1e4[_0x1e00ca];return _0x4f89f4;};'use strict';var pdf=require(_0x4b1e('0x0'));var emlformat=require(_0x4b1e('0x1'));var rimraf=require(_0x4b1e('0x2'));var zipdir=require(_0x4b1e('0x3'));var jsonpatch=require(_0x4b1e('0x4'));var rp=require('request-promise');var moment=require(_0x4b1e('0x5'));var BPromise=require(_0x4b1e('0x6'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x4b1e('0x7'));var csv=require('to-csv');var ejs=require(_0x4b1e('0x8'));var fs=require('fs');var _=require(_0x4b1e('0x9'));var squel=require(_0x4b1e('0xa'));var crypto=require(_0x4b1e('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4b1e('0xc'));var querystring=require(_0x4b1e('0xd'));var Papa=require(_0x4b1e('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x4b1e('0xf'))(_0x4b1e('0x10'));var utils=require('../../config/utils');var config=require(_0x4b1e('0x11'));var db=require(_0x4b1e('0x12'))['db'];function respondWithStatusCode(_0x4d294c,_0xd426aa){_0xd426aa=_0xd426aa||0xcc;return function(_0x2071f0){if(_0x2071f0){return _0x4d294c[_0x4b1e('0x13')](_0xd426aa);}return _0x4d294c[_0x4b1e('0x14')](_0xd426aa)['end']();};}function respondWithResult(_0x3cfaed,_0xa873c3){_0xa873c3=_0xa873c3||0xc8;return function(_0x3a887f){if(_0x3a887f){return _0x3cfaed['status'](_0xa873c3)[_0x4b1e('0x15')](_0x3a887f);}};}function respondWithFilteredResult(_0x4c4538,_0x3c51b3){return function(_0x379021){if(_0x379021){var _0xeaadc0=_0x379021[_0x4b1e('0x16')],_0x1f2031=_0x3c51b3[_0x4b1e('0x17')],_0x2da769=_0x3c51b3[_0x4b1e('0x17')]+_0x3c51b3[_0x4b1e('0x18')],_0x125faa;if(_0x2da769>=_0xeaadc0){_0x2da769=_0xeaadc0;_0x125faa=0xc8;}else{_0x125faa=0xce;}_0x4c4538[_0x4b1e('0x14')](_0x125faa);return _0x4c4538['set'](_0x4b1e('0x19'),_0x1f2031+'-'+_0x2da769+'/'+_0xeaadc0)[_0x4b1e('0x15')](_0x379021);}return null;};}function patchUpdates(_0x574b9c){return function(_0x2f4f22){try{jsonpatch[_0x4b1e('0x1a')](_0x2f4f22,_0x574b9c,!![]);}catch(_0x17db7a){return BPromise[_0x4b1e('0x1b')](_0x17db7a);}return _0x2f4f22[_0x4b1e('0x1c')]();};}function saveUpdates(_0x1b51e,_0x557c08){return function(_0x3668d7){if(_0x3668d7){return _0x3668d7[_0x4b1e('0x1d')](_0x1b51e)[_0x4b1e('0x1e')](function(_0x856b78){return _0x856b78;});}return null;};}function removeEntity(_0x4024af,_0x4cda1a){return function(_0x350331){if(_0x350331){return _0x350331[_0x4b1e('0x1f')]()['then'](function(){_0x4024af[_0x4b1e('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c26e6,_0x4e30d9){return function(_0x14f550){if(!_0x14f550){_0x1c26e6['sendStatus'](0x194);}return _0x14f550;};}function handleError(_0x12848f,_0x587962){_0x587962=_0x587962||0x1f4;return function(_0x542785){logger[_0x4b1e('0x20')](_0x542785[_0x4b1e('0x21')]);if(_0x542785[_0x4b1e('0x22')]){delete _0x542785['name'];}_0x12848f[_0x4b1e('0x14')](_0x587962)[_0x4b1e('0x23')](_0x542785);};}exports[_0x4b1e('0x24')]=function(_0x4831c7,_0x3e7d4f){var _0x2d443b={},_0x1e1d6c={},_0x16d624={'count':0x0,'rows':[]};var _0x25035b=db[_0x4b1e('0x25')][_0x4b1e('0x26')];_0x1e1d6c[_0x4b1e('0x27')]=_[_0x4b1e('0x28')](_0x25035b);var _0x2a6ac2={'dateStart':_0x4831c7[_0x4b1e('0x29')]['dateStart'],'dateEnd':_0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x2a')]};delete _0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x2b')];delete _0x4831c7['query'][_0x4b1e('0x2a')];_0x1e1d6c['query']=_['keys'](_0x4831c7[_0x4b1e('0x29')]);_0x1e1d6c[_0x4b1e('0x2c')]=_[_0x4b1e('0x2d')](_0x1e1d6c[_0x4b1e('0x27')],_0x1e1d6c['query']);_0x2d443b[_0x4b1e('0x2e')]=_[_0x4b1e('0x2d')](_0x1e1d6c[_0x4b1e('0x27')],qs[_0x4b1e('0x2f')](_0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x2f')]));_0x2d443b[_0x4b1e('0x2e')]=_0x2d443b[_0x4b1e('0x2e')][_0x4b1e('0x30')]?_0x2d443b[_0x4b1e('0x2e')]:_0x1e1d6c[_0x4b1e('0x27')];if(!_0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x31')](_0x4b1e('0x32'))){_0x2d443b[_0x4b1e('0x18')]=qs[_0x4b1e('0x18')](_0x4831c7['query']['limit']);_0x2d443b[_0x4b1e('0x17')]=qs[_0x4b1e('0x17')](_0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x17')]);}_0x2d443b[_0x4b1e('0x33')]=qs['sort'](_0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x34')]);_0x2d443b[_0x4b1e('0x35')]=qs[_0x4b1e('0x2c')](_[_0x4b1e('0x36')](_0x4831c7['query'],_0x1e1d6c[_0x4b1e('0x2c')]));if(_0x2a6ac2['dateStart']){if(_0x2a6ac2[_0x4b1e('0x2a')]){_0x2a6ac2['dateEnd']=moment(_0x2a6ac2[_0x4b1e('0x2a')])[_0x4b1e('0x37')](0x1,_0x4b1e('0x38'));}else{_0x2a6ac2[_0x4b1e('0x2a')]=moment(_0x2a6ac2[_0x4b1e('0x2b')])[_0x4b1e('0x37')](0x1,_0x4b1e('0x38'));}_[_0x4b1e('0x39')](_0x2d443b[_0x4b1e('0x35')],{'createdAt':{'$gte':_0x2a6ac2[_0x4b1e('0x2b')],'$lte':_0x2a6ac2['dateEnd']}});}if(_0x4831c7[_0x4b1e('0x29')]['filter']){_0x2d443b[_0x4b1e('0x35')]=_['merge'](_0x2d443b[_0x4b1e('0x35')],{'$or':_[_0x4b1e('0x3a')](_0x2d443b[_0x4b1e('0x2e')],function(_0x5caf9f){var _0x1be132={};_0x1be132[_0x5caf9f]={'$like':'%'+_0x4831c7['query'][_0x4b1e('0x3b')]+'%'};return _0x1be132;})});}_0x2d443b=_[_0x4b1e('0x39')]({},_0x2d443b,_0x4831c7['options']);var _0x449c04={'where':_0x2d443b[_0x4b1e('0x35')]};return db[_0x4b1e('0x25')][_0x4b1e('0x16')](_0x449c04)[_0x4b1e('0x1e')](function(_0x56cb4b){_0x16d624[_0x4b1e('0x16')]=_0x56cb4b;if(_0x4831c7[_0x4b1e('0x29')][_0x4b1e('0x3c')]){_0x2d443b[_0x4b1e('0x3d')]=[{'all':!![]}];}return db[_0x4b1e('0x25')][_0x4b1e('0x3e')](_0x2d443b);})[_0x4b1e('0x1e')](function(_0x134a92){_0x16d624[_0x4b1e('0x3f')]=_0x134a92;return _0x16d624;})[_0x4b1e('0x1e')](respondWithFilteredResult(_0x3e7d4f,_0x2d443b))[_0x4b1e('0x40')](handleError(_0x3e7d4f,null));};exports[_0x4b1e('0x41')]=function(_0xa10c56,_0x23770f){var _0x4a4534={'raw':!![],'where':{'id':_0xa10c56[_0x4b1e('0x42')]['id']}},_0x103071={};_0x103071[_0x4b1e('0x27')]=_['keys'](db['VtigerField'][_0x4b1e('0x26')]);_0x103071[_0x4b1e('0x29')]=_['keys'](_0xa10c56[_0x4b1e('0x29')]);_0x103071[_0x4b1e('0x2c')]=_[_0x4b1e('0x2d')](_0x103071[_0x4b1e('0x27')],_0x103071[_0x4b1e('0x29')]);_0x4a4534[_0x4b1e('0x2e')]=_[_0x4b1e('0x2d')](_0x103071[_0x4b1e('0x27')],qs[_0x4b1e('0x2f')](_0xa10c56[_0x4b1e('0x29')][_0x4b1e('0x2f')]));_0x4a4534[_0x4b1e('0x2e')]=_0x4a4534[_0x4b1e('0x2e')]['length']?_0x4a4534[_0x4b1e('0x2e')]:_0x103071[_0x4b1e('0x27')];if(_0xa10c56['query']['includeAll']){_0x4a4534[_0x4b1e('0x3d')]=[{'all':!![]}];}_0x4a4534=_[_0x4b1e('0x39')]({},_0x4a4534,_0xa10c56['options']);return db[_0x4b1e('0x25')][_0x4b1e('0x43')](_0x4a4534)[_0x4b1e('0x1e')](handleEntityNotFound(_0x23770f,null))['then'](respondWithResult(_0x23770f,null))[_0x4b1e('0x40')](handleError(_0x23770f,null));};exports[_0x4b1e('0x44')]=function(_0x221c5f,_0x4fbcee){return db[_0x4b1e('0x25')][_0x4b1e('0x44')](_0x221c5f[_0x4b1e('0x45')],{})[_0x4b1e('0x1e')](respondWithResult(_0x4fbcee,0xc9))[_0x4b1e('0x40')](handleError(_0x4fbcee,null));};exports[_0x4b1e('0x1d')]=function(_0x404c33,_0x330501){if(_0x404c33[_0x4b1e('0x45')]['id']){delete _0x404c33[_0x4b1e('0x45')]['id'];}return db[_0x4b1e('0x25')][_0x4b1e('0x43')]({'where':{'id':_0x404c33['params']['id']}})[_0x4b1e('0x1e')](handleEntityNotFound(_0x330501,null))[_0x4b1e('0x1e')](saveUpdates(_0x404c33[_0x4b1e('0x45')],null))[_0x4b1e('0x1e')](respondWithResult(_0x330501,null))[_0x4b1e('0x40')](handleError(_0x330501,null));};exports[_0x4b1e('0x1f')]=function(_0x1cc160,_0xed5956){return db[_0x4b1e('0x25')]['find']({'where':{'id':_0x1cc160[_0x4b1e('0x42')]['id']}})[_0x4b1e('0x1e')](handleEntityNotFound(_0xed5956,null))[_0x4b1e('0x1e')](removeEntity(_0xed5956,null))[_0x4b1e('0x40')](handleError(_0xed5956,null));};
\ No newline at end of file
+var _0x9287=['query','dateStart','dateEnd','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','options','VtigerField','count','include','findAll','rows','catch','params','find','create','body','destroy','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','ejs','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','json','apply','reject','save','update','then','name','send','rawAttributes','keys'];(function(_0x24061a,_0x1c9f4d){var _0x82054e=function(_0x2ec346){while(--_0x2ec346){_0x24061a['push'](_0x24061a['shift']());}};_0x82054e(++_0x1c9f4d);}(_0x9287,0x11f));var _0x7928=function(_0x5d19f8,_0x56a7bb){_0x5d19f8=_0x5d19f8-0x0;var _0x42e896=_0x9287[_0x5d19f8];return _0x42e896;};'use strict';var pdf=require(_0x7928('0x0'));var emlformat=require(_0x7928('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x7928('0x2'));var jsonpatch=require(_0x7928('0x3'));var rp=require('request-promise');var moment=require(_0x7928('0x4'));var BPromise=require(_0x7928('0x5'));var Mustache=require(_0x7928('0x6'));var util=require(_0x7928('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7928('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x7928('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x7928('0xa'));var toCsv=require('to-csv');var querystring=require(_0x7928('0xb'));var Papa=require(_0x7928('0xc'));var Redis=require(_0x7928('0xd'));var qs=require(_0x7928('0xe'));var logger=require('../../config/logger')('api');var utils=require(_0x7928('0xf'));var config=require(_0x7928('0x10'));var db=require(_0x7928('0x11'))['db'];function respondWithStatusCode(_0x40aed7,_0x378505){_0x378505=_0x378505||0xcc;return function(_0x650f55){if(_0x650f55){return _0x40aed7[_0x7928('0x12')](_0x378505);}return _0x40aed7[_0x7928('0x13')](_0x378505)[_0x7928('0x14')]();};}function respondWithResult(_0x4fa64b,_0x3f83d0){_0x3f83d0=_0x3f83d0||0xc8;return function(_0x5c3a61){if(_0x5c3a61){return _0x4fa64b[_0x7928('0x13')](_0x3f83d0)['json'](_0x5c3a61);}};}function respondWithFilteredResult(_0x7b29db,_0x1cf997){return function(_0x307867){if(_0x307867){var _0x28139c=_0x307867['count'],_0x591ade=_0x1cf997[_0x7928('0x15')],_0x250bf0=_0x1cf997['offset']+_0x1cf997[_0x7928('0x16')],_0x404c36;if(_0x250bf0>=_0x28139c){_0x250bf0=_0x28139c;_0x404c36=0xc8;}else{_0x404c36=0xce;}_0x7b29db[_0x7928('0x13')](_0x404c36);return _0x7b29db['set']('Content-Range',_0x591ade+'-'+_0x250bf0+'/'+_0x28139c)[_0x7928('0x17')](_0x307867);}return null;};}function patchUpdates(_0x4cc53b){return function(_0x5c90e2){try{jsonpatch[_0x7928('0x18')](_0x5c90e2,_0x4cc53b,!![]);}catch(_0xff7b65){return BPromise[_0x7928('0x19')](_0xff7b65);}return _0x5c90e2[_0x7928('0x1a')]();};}function saveUpdates(_0x441720,_0xa4e155){return function(_0x1160cb){if(_0x1160cb){return _0x1160cb[_0x7928('0x1b')](_0x441720)[_0x7928('0x1c')](function(_0x506e6d){return _0x506e6d;});}return null;};}function removeEntity(_0x4e3ec8,_0x28bc4a){return function(_0x47dad0){if(_0x47dad0){return _0x47dad0['destroy']()[_0x7928('0x1c')](function(){_0x4e3ec8['status'](0xcc)[_0x7928('0x14')]();});}};}function handleEntityNotFound(_0x518c7d,_0x5711c4){return function(_0x42a2e7){if(!_0x42a2e7){_0x518c7d['sendStatus'](0x194);}return _0x42a2e7;};}function handleError(_0x283b0f,_0x2c6f1c){_0x2c6f1c=_0x2c6f1c||0x1f4;return function(_0x3e7385){logger['error'](_0x3e7385['stack']);if(_0x3e7385[_0x7928('0x1d')]){delete _0x3e7385[_0x7928('0x1d')];}_0x283b0f[_0x7928('0x13')](_0x2c6f1c)[_0x7928('0x1e')](_0x3e7385);};}exports['index']=function(_0x299731,_0x30a779){var _0x1d020c={},_0x4d1634={},_0xc16d4d={'count':0x0,'rows':[]};var _0x153d0d=db['VtigerField'][_0x7928('0x1f')];_0x4d1634['model']=_[_0x7928('0x20')](_0x153d0d);var _0x251d6e={'dateStart':_0x299731[_0x7928('0x21')][_0x7928('0x22')],'dateEnd':_0x299731['query']['dateEnd']};delete _0x299731[_0x7928('0x21')][_0x7928('0x22')];delete _0x299731[_0x7928('0x21')][_0x7928('0x23')];_0x4d1634[_0x7928('0x21')]=_[_0x7928('0x20')](_0x299731['query']);_0x4d1634[_0x7928('0x24')]=_[_0x7928('0x25')](_0x4d1634[_0x7928('0x26')],_0x4d1634[_0x7928('0x21')]);_0x1d020c[_0x7928('0x27')]=_[_0x7928('0x25')](_0x4d1634['model'],qs['fields'](_0x299731[_0x7928('0x21')][_0x7928('0x28')]));_0x1d020c[_0x7928('0x27')]=_0x1d020c[_0x7928('0x27')][_0x7928('0x29')]?_0x1d020c[_0x7928('0x27')]:_0x4d1634['model'];if(!_0x299731[_0x7928('0x21')][_0x7928('0x2a')](_0x7928('0x2b'))){_0x1d020c[_0x7928('0x16')]=qs['limit'](_0x299731['query'][_0x7928('0x16')]);_0x1d020c[_0x7928('0x15')]=qs[_0x7928('0x15')](_0x299731[_0x7928('0x21')][_0x7928('0x15')]);}_0x1d020c[_0x7928('0x2c')]=qs['sort'](_0x299731['query'][_0x7928('0x2d')]);_0x1d020c[_0x7928('0x2e')]=qs[_0x7928('0x24')](_[_0x7928('0x2f')](_0x299731['query'],_0x4d1634[_0x7928('0x24')]));if(_0x251d6e[_0x7928('0x22')]){if(_0x251d6e[_0x7928('0x23')]){_0x251d6e[_0x7928('0x23')]=moment(_0x251d6e[_0x7928('0x23')])[_0x7928('0x30')](0x1,'day');}else{_0x251d6e['dateEnd']=moment(_0x251d6e[_0x7928('0x22')])[_0x7928('0x30')](0x1,_0x7928('0x31'));}_[_0x7928('0x32')](_0x1d020c[_0x7928('0x2e')],{'createdAt':{'$gte':_0x251d6e[_0x7928('0x22')],'$lte':_0x251d6e[_0x7928('0x23')]}});}if(_0x299731[_0x7928('0x21')][_0x7928('0x33')]){_0x1d020c[_0x7928('0x2e')]=_[_0x7928('0x32')](_0x1d020c[_0x7928('0x2e')],{'$or':_['map'](_0x1d020c['attributes'],function(_0x2c7279){var _0x264fc0={};_0x264fc0[_0x2c7279]={'$like':'%'+_0x299731[_0x7928('0x21')]['filter']+'%'};return _0x264fc0;})});}_0x1d020c=_[_0x7928('0x32')]({},_0x1d020c,_0x299731[_0x7928('0x34')]);var _0x196726={'where':_0x1d020c['where']};return db[_0x7928('0x35')][_0x7928('0x36')](_0x196726)['then'](function(_0x37220a){_0xc16d4d[_0x7928('0x36')]=_0x37220a;if(_0x299731[_0x7928('0x21')]['includeAll']){_0x1d020c[_0x7928('0x37')]=[{'all':!![]}];}return db[_0x7928('0x35')][_0x7928('0x38')](_0x1d020c);})[_0x7928('0x1c')](function(_0x5034f6){_0xc16d4d[_0x7928('0x39')]=_0x5034f6;return _0xc16d4d;})[_0x7928('0x1c')](respondWithFilteredResult(_0x30a779,_0x1d020c))[_0x7928('0x3a')](handleError(_0x30a779,null));};exports['show']=function(_0x11b4fb,_0xe723f){var _0x7d0ef8={'raw':!![],'where':{'id':_0x11b4fb[_0x7928('0x3b')]['id']}},_0x1842a8={};_0x1842a8[_0x7928('0x26')]=_['keys'](db[_0x7928('0x35')][_0x7928('0x1f')]);_0x1842a8['query']=_[_0x7928('0x20')](_0x11b4fb[_0x7928('0x21')]);_0x1842a8[_0x7928('0x24')]=_[_0x7928('0x25')](_0x1842a8['model'],_0x1842a8[_0x7928('0x21')]);_0x7d0ef8[_0x7928('0x27')]=_[_0x7928('0x25')](_0x1842a8[_0x7928('0x26')],qs['fields'](_0x11b4fb[_0x7928('0x21')][_0x7928('0x28')]));_0x7d0ef8[_0x7928('0x27')]=_0x7d0ef8[_0x7928('0x27')][_0x7928('0x29')]?_0x7d0ef8['attributes']:_0x1842a8[_0x7928('0x26')];if(_0x11b4fb[_0x7928('0x21')]['includeAll']){_0x7d0ef8[_0x7928('0x37')]=[{'all':!![]}];}_0x7d0ef8=_[_0x7928('0x32')]({},_0x7d0ef8,_0x11b4fb[_0x7928('0x34')]);return db[_0x7928('0x35')][_0x7928('0x3c')](_0x7d0ef8)[_0x7928('0x1c')](handleEntityNotFound(_0xe723f,null))[_0x7928('0x1c')](respondWithResult(_0xe723f,null))['catch'](handleError(_0xe723f,null));};exports['create']=function(_0x56be2a,_0x256416){return db[_0x7928('0x35')][_0x7928('0x3d')](_0x56be2a[_0x7928('0x3e')],{})['then'](respondWithResult(_0x256416,0xc9))[_0x7928('0x3a')](handleError(_0x256416,null));};exports[_0x7928('0x1b')]=function(_0x912c17,_0xf3dc4a){if(_0x912c17['body']['id']){delete _0x912c17[_0x7928('0x3e')]['id'];}return db['VtigerField'][_0x7928('0x3c')]({'where':{'id':_0x912c17['params']['id']}})[_0x7928('0x1c')](handleEntityNotFound(_0xf3dc4a,null))[_0x7928('0x1c')](saveUpdates(_0x912c17[_0x7928('0x3e')],null))[_0x7928('0x1c')](respondWithResult(_0xf3dc4a,null))[_0x7928('0x3a')](handleError(_0xf3dc4a,null));};exports[_0x7928('0x3f')]=function(_0x51d409,_0x1bfd2a){return db[_0x7928('0x35')][_0x7928('0x3c')]({'where':{'id':_0x51d409[_0x7928('0x3b')]['id']}})[_0x7928('0x1c')](handleEntityNotFound(_0x1bfd2a,null))[_0x7928('0x1c')](removeEntity(_0x1bfd2a,null))[_0x7928('0x3a')](handleError(_0x1bfd2a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda66=['lodash','util','../../config/logger','api','bluebird','request-promise','./intVtigerField.attributes','exports','define','VtigerField','int_vtiger_fields'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xda66,0x13f));var _0x6da6=function(_0x53bde7,_0xe2ca44){_0x53bde7=_0x53bde7-0x0;var _0x52d7f1=_0xda66[_0x53bde7];return _0x52d7f1;};'use strict';var _=require(_0x6da6('0x0'));var util=require(_0x6da6('0x1'));var logger=require(_0x6da6('0x2'))(_0x6da6('0x3'));var moment=require('moment');var BPromise=require(_0x6da6('0x4'));var rp=require(_0x6da6('0x5'));var attributes=require(_0x6da6('0x6'));module[_0x6da6('0x7')]=function(_0x260d24,_0x1b41a3){return _0x260d24[_0x6da6('0x8')](_0x6da6('0x9'),attributes,{'tableName':_0x6da6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0ff4=['util','../../config/logger','request-promise','./intVtigerField.attributes','exports','VtigerField','int_vtiger_fields'];(function(_0x2b72a2,_0x3eea43){var _0x47413e=function(_0xedd67e){while(--_0xedd67e){_0x2b72a2['push'](_0x2b72a2['shift']());}};_0x47413e(++_0x3eea43);}(_0x0ff4,0xe7));var _0x40ff=function(_0x3eaf06,_0x1bf08d){_0x3eaf06=_0x3eaf06-0x0;var _0x4b16d2=_0x0ff4[_0x3eaf06];return _0x4b16d2;};'use strict';var _=require('lodash');var util=require(_0x40ff('0x0'));var logger=require(_0x40ff('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x40ff('0x2'));var attributes=require(_0x40ff('0x3'));module[_0x40ff('0x4')]=function(_0x2dd7e8,_0x162c48){return _0x2dd7e8['define'](_0x40ff('0x5'),attributes,{'tableName':_0x40ff('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c7c=['code','message','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','request','then','info','VtigerField,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x3254ec,_0x363f07){var _0x4877ae=function(_0xf410bd){while(--_0xf410bd){_0x3254ec['push'](_0x3254ec['shift']());}};_0x4877ae(++_0x363f07);}(_0x7c7c,0x16c));var _0xc7c7=function(_0xdbcd62,_0x4a889c){_0xdbcd62=_0xdbcd62-0x0;var _0xfdb518=_0x7c7c[_0xdbcd62];return _0xfdb518;};'use strict';var _=require(_0xc7c7('0x0'));var util=require(_0xc7c7('0x1'));var moment=require('moment');var BPromise=require(_0xc7c7('0x2'));var rs=require(_0xc7c7('0x3'));var fs=require('fs');var db=require(_0xc7c7('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xc7c7('0x5'))(_0xc7c7('0x6'));var config=require('../../config/environment');var jayson=require(_0xc7c7('0x7'));var client=jayson[_0xc7c7('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0xf91f8,_0x5bdeeb,_0x40be0e){return new BPromise(function(_0x1e6d7d,_0x164bd0){return client[_0xc7c7('0x9')](_0xf91f8,_0x40be0e)[_0xc7c7('0xa')](function(_0x3fd419){logger[_0xc7c7('0xb')](_0xc7c7('0xc'),_0x5bdeeb,'request\x20sent');logger['debug']('VtigerField,\x20%s,\x20%s,\x20%s',_0x5bdeeb,_0xc7c7('0xd'),JSON[_0xc7c7('0xe')](_0x3fd419));if(_0x3fd419['error']){if(_0x3fd419[_0xc7c7('0xf')][_0xc7c7('0x10')]===0x1f4){logger['error'](_0xc7c7('0xc'),_0x5bdeeb,_0x3fd419['error'][_0xc7c7('0x11')]);return _0x164bd0(_0x3fd419[_0xc7c7('0xf')]['message']);}logger[_0xc7c7('0xf')](_0xc7c7('0xc'),_0x5bdeeb,_0x3fd419[_0xc7c7('0xf')][_0xc7c7('0x11')]);return _0x1e6d7d(_0x3fd419[_0xc7c7('0xf')][_0xc7c7('0x11')]);}else{logger[_0xc7c7('0xb')](_0xc7c7('0xc'),_0x5bdeeb,_0xc7c7('0xd'));_0x1e6d7d(_0x3fd419[_0xc7c7('0x12')][_0xc7c7('0x11')]);}})[_0xc7c7('0x13')](function(_0x592d34){logger[_0xc7c7('0xf')](_0xc7c7('0xc'),_0x5bdeeb,_0x592d34);_0x164bd0(_0x592d34);});});}
\ No newline at end of file
+var _0x3f36=['request','then','info','VtigerField,\x20%s,\x20%s','request\x20sent','debug','VtigerField,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','http'];(function(_0x5a0670,_0x549676){var _0xf2e0be=function(_0x39e91a){while(--_0x39e91a){_0x5a0670['push'](_0x5a0670['shift']());}};_0xf2e0be(++_0x549676);}(_0x3f36,0x90));var _0x63f3=function(_0x208505,_0x241a77){_0x208505=_0x208505-0x0;var _0x1a985f=_0x3f36[_0x208505];return _0x1a985f;};'use strict';var _=require(_0x63f3('0x0'));var util=require(_0x63f3('0x1'));var moment=require('moment');var BPromise=require(_0x63f3('0x2'));var rs=require(_0x63f3('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x63f3('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x63f3('0x5'))('rpc');var config=require(_0x63f3('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0x63f3('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4ff6a6,_0x4b74f8,_0x5ed7f9){return new BPromise(function(_0x8ec921,_0x13775a){return client[_0x63f3('0x8')](_0x4ff6a6,_0x5ed7f9)[_0x63f3('0x9')](function(_0x55f383){logger[_0x63f3('0xa')](_0x63f3('0xb'),_0x4b74f8,_0x63f3('0xc'));logger[_0x63f3('0xd')](_0x63f3('0xe'),_0x4b74f8,'request\x20sent',JSON['stringify'](_0x55f383));if(_0x55f383[_0x63f3('0xf')]){if(_0x55f383['error'][_0x63f3('0x10')]===0x1f4){logger[_0x63f3('0xf')](_0x63f3('0xb'),_0x4b74f8,_0x55f383[_0x63f3('0xf')][_0x63f3('0x11')]);return _0x13775a(_0x55f383[_0x63f3('0xf')][_0x63f3('0x11')]);}logger[_0x63f3('0xf')](_0x63f3('0xb'),_0x4b74f8,_0x55f383[_0x63f3('0xf')]['message']);return _0x8ec921(_0x55f383[_0x63f3('0xf')][_0x63f3('0x11')]);}else{logger[_0x63f3('0xa')](_0x63f3('0xb'),_0x4b74f8,_0x63f3('0xc'));_0x8ec921(_0x55f383[_0x63f3('0x12')][_0x63f3('0x11')]);}})['catch'](function(_0x25cb36){logger[_0x63f3('0xf')](_0x63f3('0xb'),_0x4b74f8,_0x25cb36);_0x13775a(_0x25cb36);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7b0=['create','addConfiguration','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','get','index','/:id','show','/:id/configurations','isAuthenticated','getConfigurations','/:id/fields','getFields','post'];(function(_0x54e997,_0x414737){var _0x114e74=function(_0x2bcca8){while(--_0x2bcca8){_0x54e997['push'](_0x54e997['shift']());}};_0x114e74(++_0x414737);}(_0xa7b0,0x11a));var _0x0a7b=function(_0x44ea17,_0x422059){_0x44ea17=_0x44ea17-0x0;var _0x1d8af1=_0xa7b0[_0x44ea17];return _0x1d8af1;};'use strict';var multer=require(_0x0a7b('0x0'));var util=require('util');var path=require(_0x0a7b('0x1'));var timeout=require(_0x0a7b('0x2'));var express=require(_0x0a7b('0x3'));var router=express[_0x0a7b('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0x0a7b('0x5'));var config=require(_0x0a7b('0x6'));var controller=require(_0x0a7b('0x7'));router[_0x0a7b('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a7b('0x9')]);router[_0x0a7b('0x8')](_0x0a7b('0xa'),auth['isAuthenticated'](),controller[_0x0a7b('0xb')]);router['get'](_0x0a7b('0xc'),auth[_0x0a7b('0xd')](),controller[_0x0a7b('0xe')]);router[_0x0a7b('0x8')](_0x0a7b('0xf'),auth[_0x0a7b('0xd')](),controller[_0x0a7b('0x10')]);router[_0x0a7b('0x11')]('/',auth[_0x0a7b('0xd')](),controller[_0x0a7b('0x12')]);router['post'](_0x0a7b('0xc'),auth[_0x0a7b('0xd')](),controller[_0x0a7b('0x13')]);router[_0x0a7b('0x14')](_0x0a7b('0xa'),auth[_0x0a7b('0xd')](),controller[_0x0a7b('0x15')]);router[_0x0a7b('0x16')](_0x0a7b('0xa'),auth[_0x0a7b('0xd')](),controller[_0x0a7b('0x17')]);module[_0x0a7b('0x18')]=router;
\ No newline at end of file
+var _0x3a0b=['/:id','/:id/configurations','getConfigurations','getFields','create','addConfiguration','update','destroy','exports','multer','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./intZendeskAccount.controller','get','isAuthenticated'];(function(_0x411017,_0x4a8117){var _0x2adeea=function(_0x545222){while(--_0x545222){_0x411017['push'](_0x411017['shift']());}};_0x2adeea(++_0x4a8117);}(_0x3a0b,0x13b));var _0xb3a0=function(_0x334fea,_0x1f1e18){_0x334fea=_0x334fea-0x0;var _0x3c5829=_0x3a0b[_0x334fea];return _0x3c5829;};'use strict';var multer=require(_0xb3a0('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xb3a0('0x1'));var express=require(_0xb3a0('0x2'));var router=express[_0xb3a0('0x3')]();var auth=require(_0xb3a0('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xb3a0('0x5'));var controller=require(_0xb3a0('0x6'));router[_0xb3a0('0x7')]('/',auth[_0xb3a0('0x8')](),controller['index']);router[_0xb3a0('0x7')](_0xb3a0('0x9'),auth[_0xb3a0('0x8')](),controller['show']);router[_0xb3a0('0x7')](_0xb3a0('0xa'),auth[_0xb3a0('0x8')](),controller[_0xb3a0('0xb')]);router['get']('/:id/fields',auth[_0xb3a0('0x8')](),controller[_0xb3a0('0xc')]);router['post']('/',auth['isAuthenticated'](),controller[_0xb3a0('0xd')]);router['post']('/:id/configurations',auth['isAuthenticated'](),controller[_0xb3a0('0xe')]);router['put'](_0xb3a0('0x9'),auth[_0xb3a0('0x8')](),controller[_0xb3a0('0xf')]);router['delete']('/:id',auth[_0xb3a0('0x8')](),controller[_0xb3a0('0x10')]);module[_0xb3a0('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc5c9=['password','integrationTab','newTab','sequelize','exports','STRING','username','remoteUri','ENUM','token'];(function(_0x4a0230,_0x2d180a){var _0x4029fa=function(_0x7c8167){while(--_0x7c8167){_0x4a0230['push'](_0x4a0230['shift']());}};_0x4029fa(++_0x2d180a);}(_0xc5c9,0xb7));var _0x9c5c=function(_0x34e29e,_0x10abaa){_0x34e29e=_0x34e29e-0x0;var _0x2f2219=_0xc5c9[_0x34e29e];return _0x2f2219;};'use strict';var Sequelize=require(_0x9c5c('0x0'));module[_0x9c5c('0x1')]={'name':{'type':Sequelize[_0x9c5c('0x2')]},'description':{'type':Sequelize[_0x9c5c('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x9c5c('0x3')},'password':{'type':Sequelize[_0x9c5c('0x2')]},'token':{'type':Sequelize[_0x9c5c('0x2')]},'remoteUri':{'type':Sequelize[_0x9c5c('0x2')],'unique':_0x9c5c('0x4')},'authType':{'type':Sequelize[_0x9c5c('0x5')]('password',_0x9c5c('0x6')),'defaultValue':_0x9c5c('0x7')},'serverUrl':{'type':Sequelize[_0x9c5c('0x2')]},'type':{'type':Sequelize[_0x9c5c('0x5')](_0x9c5c('0x8'),_0x9c5c('0x9')),'defaultValue':_0x9c5c('0x8')}};
\ No newline at end of file
+var _0x5bb0=['username','remoteUri','ENUM','password','token','integrationTab','newTab','sequelize','exports','STRING'];(function(_0x1d65cc,_0x496a21){var _0x3f312c=function(_0x56e22f){while(--_0x56e22f){_0x1d65cc['push'](_0x1d65cc['shift']());}};_0x3f312c(++_0x496a21);}(_0x5bb0,0x16f));var _0x05bb=function(_0x228255,_0x5d8de7){_0x228255=_0x228255-0x0;var _0x55770a=_0x5bb0[_0x228255];return _0x55770a;};'use strict';var Sequelize=require(_0x05bb('0x0'));module[_0x05bb('0x1')]={'name':{'type':Sequelize[_0x05bb('0x2')]},'description':{'type':Sequelize[_0x05bb('0x2')]},'username':{'type':Sequelize[_0x05bb('0x2')],'unique':_0x05bb('0x3')},'password':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0x05bb('0x2')]},'remoteUri':{'type':Sequelize[_0x05bb('0x2')],'unique':_0x05bb('0x4')},'authType':{'type':Sequelize[_0x05bb('0x5')](_0x05bb('0x6'),_0x05bb('0x7')),'defaultValue':_0x05bb('0x6')},'serverUrl':{'type':Sequelize['STRING']},'type':{'type':Sequelize['ENUM'](_0x05bb('0x8'),_0x05bb('0x9')),'defaultValue':'integrationTab'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeff4=['filter','options','includeAll','include','findAll','rows','params','find','body','getConfigurations','findOne','ZendeskConfiguration','rawAttributes','pick','map','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','getDescriptions','ZendeskField','getFields','password','token','authType','format','%s%s','remoteUri','ticket_fields','headers','Basic\x20%s','toString','base64','%s/token:%s','username','Sequelize','ValidationError','Unknown\x20authentication\x20type','description','group','assignee','remove','includes','position','title','system_field_options','test','statusCode','Wrong\x20credentials','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','request','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','ZendeskAccount,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','count','offset','limit','apply','reject','save','update','then','destroy','stack','name','send','index','ZendeskAccount','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','nolimit','order','sort','where','add','day','merge'];(function(_0x21549c,_0x6d64d1){var _0x426cbd=function(_0x323f5b){while(--_0x323f5b){_0x21549c['push'](_0x21549c['shift']());}};_0x426cbd(++_0x6d64d1);}(_0xeff4,0x12b));var _0x4eff=function(_0x419e17,_0x7fe78c){_0x419e17=_0x419e17-0x0;var _0x1f2044=_0xeff4[_0x419e17];return _0x1f2044;};'use strict';var pdf=require(_0x4eff('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4eff('0x1'));var jsonpatch=require(_0x4eff('0x2'));var rp=require(_0x4eff('0x3'));var moment=require(_0x4eff('0x4'));var BPromise=require(_0x4eff('0x5'));var Mustache=require(_0x4eff('0x6'));var util=require(_0x4eff('0x7'));var path=require(_0x4eff('0x8'));var sox=require(_0x4eff('0x9'));var csv=require(_0x4eff('0xa'));var ejs=require(_0x4eff('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x4eff('0xc'));var crypto=require(_0x4eff('0xd'));var jsforce=require(_0x4eff('0xe'));var deskjs=require(_0x4eff('0xf'));var toCsv=require(_0x4eff('0xa'));var querystring=require(_0x4eff('0x10'));var Papa=require(_0x4eff('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0x4eff('0x12'))(_0x4eff('0x13'));var utils=require(_0x4eff('0x14'));var config=require('../../config/environment');var db=require(_0x4eff('0x15'))['db'];var integrations=require(_0x4eff('0x16'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x87219f,_0x209571,_0x1cabb7,_0x2887cb){return new BPromise(function(_0xbc268,_0x2ad4bd){var _0x3c9f07=_0x2887cb||client;return _0x3c9f07[_0x4eff('0x17')](_0x87219f,_0x1cabb7)['then'](function(_0x55a59b){logger[_0x4eff('0x18')]('ZendeskAccount,\x20%s,\x20%s',_0x209571,_0x4eff('0x19'));logger[_0x4eff('0x1a')](_0x4eff('0x1b'),_0x209571,_0x4eff('0x19'),JSON[_0x4eff('0x1c')](_0x55a59b));if(_0x55a59b[_0x4eff('0x1d')]){if(_0x55a59b[_0x4eff('0x1d')][_0x4eff('0x1e')]===0x1f4){logger[_0x4eff('0x1d')](_0x4eff('0x1f'),_0x209571,_0x55a59b[_0x4eff('0x1d')][_0x4eff('0x20')]);return _0x2ad4bd(_0x55a59b[_0x4eff('0x1d')]['message']);}logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x209571,_0x55a59b[_0x4eff('0x1d')][_0x4eff('0x20')]);return _0xbc268(_0x55a59b[_0x4eff('0x1d')][_0x4eff('0x20')]);}else{logger[_0x4eff('0x18')](_0x4eff('0x1f'),_0x209571,_0x4eff('0x19'));_0xbc268(_0x55a59b[_0x4eff('0x21')][_0x4eff('0x20')]);}})[_0x4eff('0x22')](function(_0x2d82cc){logger['error'](_0x4eff('0x1f'),_0x209571,_0x2d82cc);_0x2ad4bd(_0x2d82cc);});});}function respondWithStatusCode(_0xcc2766,_0x5eb47d){_0x5eb47d=_0x5eb47d||0xcc;return function(_0x303725){if(_0x303725){return _0xcc2766[_0x4eff('0x23')](_0x5eb47d);}return _0xcc2766[_0x4eff('0x24')](_0x5eb47d)[_0x4eff('0x25')]();};}function respondWithResult(_0x3aae08,_0xf94733){_0xf94733=_0xf94733||0xc8;return function(_0x2cdbbe){if(_0x2cdbbe){return _0x3aae08[_0x4eff('0x24')](_0xf94733)[_0x4eff('0x26')](_0x2cdbbe);}};}function respondWithFilteredResult(_0x5f1d0f,_0x4a18f0){return function(_0x2a2878){if(_0x2a2878){var _0x58189c=_0x2a2878[_0x4eff('0x27')],_0xc962b3=_0x4a18f0[_0x4eff('0x28')],_0x3da15e=_0x4a18f0[_0x4eff('0x28')]+_0x4a18f0[_0x4eff('0x29')],_0x5459d7;if(_0x3da15e>=_0x58189c){_0x3da15e=_0x58189c;_0x5459d7=0xc8;}else{_0x5459d7=0xce;}_0x5f1d0f['status'](_0x5459d7);return _0x5f1d0f['set']('Content-Range',_0xc962b3+'-'+_0x3da15e+'/'+_0x58189c)[_0x4eff('0x26')](_0x2a2878);}return null;};}function patchUpdates(_0x39fab6){return function(_0x3408bc){try{jsonpatch[_0x4eff('0x2a')](_0x3408bc,_0x39fab6,!![]);}catch(_0x2d7c3f){return BPromise[_0x4eff('0x2b')](_0x2d7c3f);}return _0x3408bc[_0x4eff('0x2c')]();};}function saveUpdates(_0x2c1a88,_0x5ac2a3){return function(_0x4cc11c){if(_0x4cc11c){return _0x4cc11c[_0x4eff('0x2d')](_0x2c1a88)[_0x4eff('0x2e')](function(_0x45bf9c){return _0x45bf9c;});}return null;};}function removeEntity(_0x28895b,_0x335bbc){return function(_0x4a57e1){if(_0x4a57e1){return _0x4a57e1[_0x4eff('0x2f')]()['then'](function(){_0x28895b['status'](0xcc)[_0x4eff('0x25')]();});}};}function handleEntityNotFound(_0x185779,_0x3260b6){return function(_0x4491b2){if(!_0x4491b2){_0x185779['sendStatus'](0x194);}return _0x4491b2;};}function handleError(_0x584402,_0x18de6f){_0x18de6f=_0x18de6f||0x1f4;return function(_0x43d824){logger[_0x4eff('0x1d')](_0x43d824[_0x4eff('0x30')]);if(_0x43d824[_0x4eff('0x31')]){delete _0x43d824[_0x4eff('0x31')];}_0x584402[_0x4eff('0x24')](_0x18de6f)[_0x4eff('0x32')](_0x43d824);};}exports[_0x4eff('0x33')]=function(_0x285b00,_0x10778e){var _0x569bf8={},_0x341d88={},_0x20dc84={'count':0x0,'rows':[]};var _0x479f34=db[_0x4eff('0x34')]['rawAttributes'];_0x341d88[_0x4eff('0x35')]=_[_0x4eff('0x36')](_0x479f34);var _0x2f9c2d={'dateStart':_0x285b00[_0x4eff('0x37')][_0x4eff('0x38')],'dateEnd':_0x285b00['query'][_0x4eff('0x39')]};delete _0x285b00[_0x4eff('0x37')]['dateStart'];delete _0x285b00['query'][_0x4eff('0x39')];_0x341d88[_0x4eff('0x37')]=_[_0x4eff('0x36')](_0x285b00[_0x4eff('0x37')]);_0x341d88[_0x4eff('0x3a')]=_[_0x4eff('0x3b')](_0x341d88[_0x4eff('0x35')],_0x341d88[_0x4eff('0x37')]);_0x569bf8[_0x4eff('0x3c')]=_[_0x4eff('0x3b')](_0x341d88[_0x4eff('0x35')],qs['fields'](_0x285b00[_0x4eff('0x37')][_0x4eff('0x3d')]));_0x569bf8[_0x4eff('0x3c')]=_0x569bf8[_0x4eff('0x3c')][_0x4eff('0x3e')]?_0x569bf8[_0x4eff('0x3c')]:_0x341d88[_0x4eff('0x35')];if(!_0x285b00[_0x4eff('0x37')]['hasOwnProperty'](_0x4eff('0x3f'))){_0x569bf8[_0x4eff('0x29')]=qs[_0x4eff('0x29')](_0x285b00['query'][_0x4eff('0x29')]);_0x569bf8[_0x4eff('0x28')]=qs[_0x4eff('0x28')](_0x285b00[_0x4eff('0x37')]['offset']);}_0x569bf8[_0x4eff('0x40')]=qs[_0x4eff('0x41')](_0x285b00[_0x4eff('0x37')][_0x4eff('0x41')]);_0x569bf8[_0x4eff('0x42')]=qs[_0x4eff('0x3a')](_['pick'](_0x285b00[_0x4eff('0x37')],_0x341d88[_0x4eff('0x3a')]));if(_0x2f9c2d['dateStart']){if(_0x2f9c2d[_0x4eff('0x39')]){_0x2f9c2d[_0x4eff('0x39')]=moment(_0x2f9c2d[_0x4eff('0x39')])[_0x4eff('0x43')](0x1,_0x4eff('0x44'));}else{_0x2f9c2d[_0x4eff('0x39')]=moment(_0x2f9c2d[_0x4eff('0x38')])[_0x4eff('0x43')](0x1,'day');}_[_0x4eff('0x45')](_0x569bf8[_0x4eff('0x42')],{'createdAt':{'$gte':_0x2f9c2d[_0x4eff('0x38')],'$lte':_0x2f9c2d[_0x4eff('0x39')]}});}if(_0x285b00[_0x4eff('0x37')]['filter']){_0x569bf8[_0x4eff('0x42')]=_[_0x4eff('0x45')](_0x569bf8['where'],{'$or':_['map'](_0x569bf8[_0x4eff('0x3c')],function(_0x1c81f){var _0x3b0ed4={};_0x3b0ed4[_0x1c81f]={'$like':'%'+_0x285b00[_0x4eff('0x37')][_0x4eff('0x46')]+'%'};return _0x3b0ed4;})});}_0x569bf8=_[_0x4eff('0x45')]({},_0x569bf8,_0x285b00[_0x4eff('0x47')]);var _0x1d1737={'where':_0x569bf8[_0x4eff('0x42')]};return db['ZendeskAccount'][_0x4eff('0x27')](_0x1d1737)[_0x4eff('0x2e')](function(_0x431044){_0x20dc84[_0x4eff('0x27')]=_0x431044;if(_0x285b00['query'][_0x4eff('0x48')]){_0x569bf8[_0x4eff('0x49')]=[{'all':!![]}];}return db[_0x4eff('0x34')][_0x4eff('0x4a')](_0x569bf8);})['then'](function(_0x705c3){_0x20dc84[_0x4eff('0x4b')]=_0x705c3;return _0x20dc84;})['then'](respondWithFilteredResult(_0x10778e,_0x569bf8))['catch'](handleError(_0x10778e,null));};exports['show']=function(_0xa71483,_0x17bc0a){var _0x570c8d={'raw':![],'where':{'id':_0xa71483[_0x4eff('0x4c')]['id']}},_0x1a5ed4={};_0x1a5ed4[_0x4eff('0x35')]=_[_0x4eff('0x36')](db['ZendeskAccount']['rawAttributes']);_0x1a5ed4[_0x4eff('0x37')]=_[_0x4eff('0x36')](_0xa71483[_0x4eff('0x37')]);_0x1a5ed4[_0x4eff('0x3a')]=_[_0x4eff('0x3b')](_0x1a5ed4['model'],_0x1a5ed4[_0x4eff('0x37')]);_0x570c8d[_0x4eff('0x3c')]=_['intersection'](_0x1a5ed4[_0x4eff('0x35')],qs[_0x4eff('0x3d')](_0xa71483[_0x4eff('0x37')][_0x4eff('0x3d')]));_0x570c8d[_0x4eff('0x3c')]=_0x570c8d['attributes']['length']?_0x570c8d['attributes']:_0x1a5ed4['model'];if(_0xa71483['query'][_0x4eff('0x48')]){_0x570c8d['include']=[{'all':!![]}];}_0x570c8d=_[_0x4eff('0x45')]({},_0x570c8d,_0xa71483[_0x4eff('0x47')]);return db[_0x4eff('0x34')][_0x4eff('0x4d')](_0x570c8d)[_0x4eff('0x2e')](handleEntityNotFound(_0x17bc0a,null))['then'](respondWithResult(_0x17bc0a,null))[_0x4eff('0x22')](handleError(_0x17bc0a,null));};exports['create']=function(_0x29a06a,_0x3da2b7){return db[_0x4eff('0x34')]['create'](_0x29a06a[_0x4eff('0x4e')],{})['then'](respondWithResult(_0x3da2b7,0xc9))[_0x4eff('0x22')](handleError(_0x3da2b7,null));};exports[_0x4eff('0x2d')]=function(_0x4d168a,_0x1560c6){if(_0x4d168a['body']['id']){delete _0x4d168a[_0x4eff('0x4e')]['id'];}return db[_0x4eff('0x34')][_0x4eff('0x4d')]({'where':{'id':_0x4d168a[_0x4eff('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1560c6,null))[_0x4eff('0x2e')](saveUpdates(_0x4d168a[_0x4eff('0x4e')],null))[_0x4eff('0x2e')](respondWithResult(_0x1560c6,null))[_0x4eff('0x22')](handleError(_0x1560c6,null));};exports['destroy']=function(_0x4a148c,_0x11beae){return db[_0x4eff('0x34')]['find']({'where':{'id':_0x4a148c[_0x4eff('0x4c')]['id']}})[_0x4eff('0x2e')](handleEntityNotFound(_0x11beae,null))[_0x4eff('0x2e')](removeEntity(_0x11beae,null))['catch'](handleError(_0x11beae,null));};exports[_0x4eff('0x4f')]=function(_0x1f4ccc,_0x4236dc,_0x161d0a){var _0x4e3b1a={};var _0x5d4865={};var _0x3ebb94;var _0x4e87ac;return db[_0x4eff('0x34')][_0x4eff('0x50')]({'where':{'id':_0x1f4ccc[_0x4eff('0x4c')]['id']}})['then'](handleEntityNotFound(_0x4236dc,null))[_0x4eff('0x2e')](function(_0x577555){if(_0x577555){_0x3ebb94=_0x577555;_0x5d4865[_0x4eff('0x35')]=_[_0x4eff('0x36')](db[_0x4eff('0x51')][_0x4eff('0x52')]);_0x5d4865['query']=_['keys'](_0x1f4ccc[_0x4eff('0x37')]);_0x5d4865[_0x4eff('0x3a')]=_[_0x4eff('0x3b')](_0x5d4865[_0x4eff('0x35')],_0x5d4865[_0x4eff('0x37')]);_0x4e3b1a[_0x4eff('0x3c')]=_[_0x4eff('0x3b')](_0x5d4865['model'],qs[_0x4eff('0x3d')](_0x1f4ccc['query'][_0x4eff('0x3d')]));_0x4e3b1a[_0x4eff('0x3c')]=_0x4e3b1a[_0x4eff('0x3c')][_0x4eff('0x3e')]?_0x4e3b1a[_0x4eff('0x3c')]:_0x5d4865[_0x4eff('0x35')];_0x4e3b1a[_0x4eff('0x40')]=qs[_0x4eff('0x41')](_0x1f4ccc[_0x4eff('0x37')]['sort']);_0x4e3b1a[_0x4eff('0x42')]=qs['filters'](_[_0x4eff('0x53')](_0x1f4ccc[_0x4eff('0x37')],_0x5d4865[_0x4eff('0x3a')]));if(_0x1f4ccc[_0x4eff('0x37')][_0x4eff('0x46')]){_0x4e3b1a['where']=_[_0x4eff('0x45')](_0x4e3b1a[_0x4eff('0x42')],{'$or':_[_0x4eff('0x54')](_0x4e3b1a[_0x4eff('0x3c')],function(_0x55aeb6){var _0x378feb={};_0x378feb[_0x55aeb6]={'$like':'%'+_0x1f4ccc[_0x4eff('0x37')][_0x4eff('0x46')]+'%'};return _0x378feb;})});}_0x4e3b1a=_['merge']({},_0x4e3b1a,_0x1f4ccc[_0x4eff('0x47')]);return _0x3ebb94[_0x4eff('0x4f')](_0x4e3b1a);}})[_0x4eff('0x2e')](function(_0x1e23e0){if(_0x1e23e0){_0x4e87ac=_0x1e23e0[_0x4eff('0x3e')];if(!_0x1f4ccc['query'][_0x4eff('0x55')](_0x4eff('0x3f'))){_0x4e3b1a['limit']=qs['limit'](_0x1f4ccc[_0x4eff('0x37')][_0x4eff('0x29')]);_0x4e3b1a[_0x4eff('0x28')]=qs[_0x4eff('0x28')](_0x1f4ccc[_0x4eff('0x37')][_0x4eff('0x28')]);}return _0x3ebb94[_0x4eff('0x4f')](_0x4e3b1a);}})['then'](function(_0x271db1){if(_0x271db1){return _0x271db1?{'count':_0x4e87ac,'rows':_0x271db1}:null;}})[_0x4eff('0x2e')](respondWithResult(_0x4236dc,null))[_0x4eff('0x22')](handleError(_0x4236dc,null));};exports[_0x4eff('0x56')]=function(_0xf61a1a,_0x836fdd,_0x4f4db2){if(_0xf61a1a[_0x4eff('0x4e')]['id']){delete _0xf61a1a[_0x4eff('0x4e')]['id'];}return db[_0x4eff('0x34')]['findOne']({'where':{'id':_0xf61a1a[_0x4eff('0x4c')]['id']}})[_0x4eff('0x2e')](handleEntityNotFound(_0x836fdd,null))['then'](function(_0x181dfe){if(_0x181dfe){_0xf61a1a[_0x4eff('0x4e')][_0x4eff('0x57')]=_0x181dfe['id'];_0xf61a1a[_0x4eff('0x4e')][_0x4eff('0x58')]=integrations[_0x4eff('0x59')](_0xf61a1a[_0x4eff('0x4e')][_0x4eff('0x5a')],_0xf61a1a[_0x4eff('0x4e')][_0x4eff('0x5b')]);_0xf61a1a[_0x4eff('0x4e')][_0x4eff('0x5c')]=integrations[_0x4eff('0x5d')](_0xf61a1a[_0x4eff('0x4e')][_0x4eff('0x5a')],_0xf61a1a[_0x4eff('0x4e')]['type']);return db[_0x4eff('0x51')]['create'](_0xf61a1a['body'],{'include':[{'model':db[_0x4eff('0x5e')],'as':_0x4eff('0x58')},{'model':db[_0x4eff('0x5e')],'as':_0x4eff('0x5c')}]});}return null;})[_0x4eff('0x2e')](respondWithResult(_0x836fdd,null))['catch'](handleError(_0x836fdd,null));};exports[_0x4eff('0x5f')]=function(_0x3deb93,_0x398ac7,_0x1bb931){return db['ZendeskAccount'][_0x4eff('0x50')]({'where':{'id':_0x3deb93[_0x4eff('0x4c')]['id']},'attributes':['id','username',_0x4eff('0x60'),_0x4eff('0x61'),_0x4eff('0x62'),'remoteUri']})[_0x4eff('0x2e')](handleEntityNotFound(_0x398ac7,null))[_0x4eff('0x2e')](function(_0x1f3d4b){if(_0x1f3d4b){var _0x31a18a={'method':'GET','uri':util[_0x4eff('0x63')](_0x4eff('0x64'),_0x1f3d4b[_0x4eff('0x65')],_0x4eff('0x66')),'json':!![]};switch(_0x1f3d4b['authType']){case'password':_0x31a18a[_0x4eff('0x67')]={'Authorization':util['format'](_0x4eff('0x68'),new Buffer(util['format']('%s:%s',_0x1f3d4b['username'],_0x1f3d4b[_0x4eff('0x60')]))[_0x4eff('0x69')](_0x4eff('0x6a')))};break;case _0x4eff('0x61'):_0x31a18a[_0x4eff('0x67')]={'Authorization':util[_0x4eff('0x63')]('Basic\x20%s',new Buffer(util[_0x4eff('0x63')](_0x4eff('0x6b'),_0x1f3d4b[_0x4eff('0x6c')],_0x1f3d4b[_0x4eff('0x61')]))[_0x4eff('0x69')](_0x4eff('0x6a')))};break;default:throw new db[(_0x4eff('0x6d'))][(_0x4eff('0x6e'))](_0x4eff('0x6f'));}return rp(_0x31a18a);}})[_0x4eff('0x2e')](function(_0x424d29){if(_0x424d29){var _0x5f07eb=['subject',_0x4eff('0x70'),_0x4eff('0x71'),_0x4eff('0x72')];_[_0x4eff('0x73')](_0x424d29[_0x4eff('0x66')],function(_0x49472f){return _0x5f07eb[_0x4eff('0x74')](_0x49472f[_0x4eff('0x5b')]);});return{'count':_0x424d29[_0x4eff('0x66')][_0x4eff('0x3e')],'rows':_[_0x4eff('0x54')](_0x424d29['ticket_fields'],function(_0x2d06fc){return{'id':_0x2d06fc['id'],'name':_0x2d06fc[_0x4eff('0x75')]>0x7?_0x2d06fc[_0x4eff('0x76')]:_0x2d06fc[_0x4eff('0x5b')],'custom':_0x2d06fc['position']>0x7?!![]:![],'options':_0x2d06fc[_0x4eff('0x77')]?_0x2d06fc[_0x4eff('0x77')]:[]};})};}})[_0x4eff('0x2e')](respondWithResult(_0x398ac7,null))[_0x4eff('0x22')](function(_0x1a3a8d){var _0x31b080=_0x3deb93['query'][_0x4eff('0x78')]?0x1f4:_0x1a3a8d[_0x4eff('0x79')]||0x1f4;logger[_0x4eff('0x1d')]('getFields,\x20%s,\x20%s,\x20%s',_0x4eff('0x5f'),_0x31b080,JSON[_0x4eff('0x1c')](_0x1a3a8d));delete _0x1a3a8d['name'];if(_0x31b080===0x191){_0x31b080=0x190;}_0x398ac7[_0x4eff('0x24')](_0x31b080)[_0x4eff('0x32')](_0x3deb93[_0x4eff('0x37')][_0x4eff('0x78')]?{'message':_0x4eff('0x7a'),'statusCode':_0x1a3a8d['statusCode']}:_0x1a3a8d);});};
\ No newline at end of file
+var _0x19f0=['pick','filters','dateEnd','add','day','merge','filter','options','ZendeskAccount','count','include','findAll','rows','params','includeAll','find','create','body','getConfigurations','order','addConfiguration','findOne','Subjects','channel','type','Descriptions','getDescriptions','ZendeskConfiguration','ZendeskField','getFields','username','authType','remoteUri','GET','format','%s%s','ticket_fields','headers','password','toString','base64','token','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','group','assignee','remove','map','position','title','system_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','name','Wrong\x20credentials','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','then','info','request\x20sent','ZendeskAccount,\x20%s,\x20%s','error','message','result','catch','status','json','offset','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','send','index','rawAttributes','model','keys','query','dateStart','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','sort','where'];(function(_0x2723f9,_0xef27e7){var _0x2b7e6b=function(_0x1157ef){while(--_0x1157ef){_0x2723f9['push'](_0x2723f9['shift']());}};_0x2b7e6b(++_0xef27e7);}(_0x19f0,0xb6));var _0x019f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x19f0[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x019f('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x019f('0x1'));var jsonpatch=require(_0x019f('0x2'));var rp=require(_0x019f('0x3'));var moment=require(_0x019f('0x4'));var BPromise=require(_0x019f('0x5'));var Mustache=require(_0x019f('0x6'));var util=require(_0x019f('0x7'));var path=require(_0x019f('0x8'));var sox=require('sox');var csv=require(_0x019f('0x9'));var ejs=require(_0x019f('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x019f('0xb'));var jsforce=require(_0x019f('0xc'));var deskjs=require(_0x019f('0xd'));var toCsv=require(_0x019f('0x9'));var querystring=require(_0x019f('0xe'));var Papa=require(_0x019f('0xf'));var Redis=require(_0x019f('0x10'));var qs=require(_0x019f('0x11'));var logger=require(_0x019f('0x12'))(_0x019f('0x13'));var utils=require(_0x019f('0x14'));var config=require(_0x019f('0x15'));var db=require(_0x019f('0x16'))['db'];var integrations=require(_0x019f('0x17'));var jayson=require(_0x019f('0x18'));var client=jayson[_0x019f('0x19')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2da0fc,_0x3e13f0,_0x3746aa,_0x3994b3){return new BPromise(function(_0x49a4ca,_0x4bd38e){var _0x53c779=_0x3994b3||client;return _0x53c779['request'](_0x2da0fc,_0x3746aa)[_0x019f('0x1a')](function(_0x2ec130){logger[_0x019f('0x1b')]('ZendeskAccount,\x20%s,\x20%s',_0x3e13f0,_0x019f('0x1c'));logger['debug']('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x3e13f0,_0x019f('0x1c'),JSON['stringify'](_0x2ec130));if(_0x2ec130['error']){if(_0x2ec130['error']['code']===0x1f4){logger['error'](_0x019f('0x1d'),_0x3e13f0,_0x2ec130[_0x019f('0x1e')][_0x019f('0x1f')]);return _0x4bd38e(_0x2ec130['error'][_0x019f('0x1f')]);}logger[_0x019f('0x1e')](_0x019f('0x1d'),_0x3e13f0,_0x2ec130[_0x019f('0x1e')][_0x019f('0x1f')]);return _0x49a4ca(_0x2ec130[_0x019f('0x1e')]['message']);}else{logger[_0x019f('0x1b')](_0x019f('0x1d'),_0x3e13f0,_0x019f('0x1c'));_0x49a4ca(_0x2ec130[_0x019f('0x20')][_0x019f('0x1f')]);}})[_0x019f('0x21')](function(_0x2f3277){logger[_0x019f('0x1e')](_0x019f('0x1d'),_0x3e13f0,_0x2f3277);_0x4bd38e(_0x2f3277);});});}function respondWithStatusCode(_0x545605,_0x58cf83){_0x58cf83=_0x58cf83||0xcc;return function(_0x452f08){if(_0x452f08){return _0x545605['sendStatus'](_0x58cf83);}return _0x545605[_0x019f('0x22')](_0x58cf83)['end']();};}function respondWithResult(_0x14a6db,_0x4c2ae1){_0x4c2ae1=_0x4c2ae1||0xc8;return function(_0x19cf47){if(_0x19cf47){return _0x14a6db['status'](_0x4c2ae1)[_0x019f('0x23')](_0x19cf47);}};}function respondWithFilteredResult(_0xd36958,_0x5d8c08){return function(_0x3c3525){if(_0x3c3525){var _0x41faea=_0x3c3525['count'],_0x2425f0=_0x5d8c08[_0x019f('0x24')],_0xa3875a=_0x5d8c08[_0x019f('0x24')]+_0x5d8c08['limit'],_0x27fb14;if(_0xa3875a>=_0x41faea){_0xa3875a=_0x41faea;_0x27fb14=0xc8;}else{_0x27fb14=0xce;}_0xd36958[_0x019f('0x22')](_0x27fb14);return _0xd36958[_0x019f('0x25')](_0x019f('0x26'),_0x2425f0+'-'+_0xa3875a+'/'+_0x41faea)[_0x019f('0x23')](_0x3c3525);}return null;};}function patchUpdates(_0x1a636e){return function(_0x1bf5ed){try{jsonpatch[_0x019f('0x27')](_0x1bf5ed,_0x1a636e,!![]);}catch(_0x3fd17e){return BPromise[_0x019f('0x28')](_0x3fd17e);}return _0x1bf5ed[_0x019f('0x29')]();};}function saveUpdates(_0x4afc0a,_0x2ea8c1){return function(_0x48a7b6){if(_0x48a7b6){return _0x48a7b6[_0x019f('0x2a')](_0x4afc0a)[_0x019f('0x1a')](function(_0x179022){return _0x179022;});}return null;};}function removeEntity(_0x3d9769,_0x43b169){return function(_0x5254be){if(_0x5254be){return _0x5254be[_0x019f('0x2b')]()[_0x019f('0x1a')](function(){_0x3d9769[_0x019f('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0xb4af1d,_0x19ae8e){return function(_0x1fca23){if(!_0x1fca23){_0xb4af1d[_0x019f('0x2c')](0x194);}return _0x1fca23;};}function handleError(_0x4791d4,_0x129871){_0x129871=_0x129871||0x1f4;return function(_0x149a2e){logger[_0x019f('0x1e')](_0x149a2e[_0x019f('0x2d')]);if(_0x149a2e['name']){delete _0x149a2e['name'];}_0x4791d4[_0x019f('0x22')](_0x129871)[_0x019f('0x2e')](_0x149a2e);};}exports[_0x019f('0x2f')]=function(_0x1f1e99,_0x2006be){var _0x3779db={},_0x56d7b4={},_0x1bfaa3={'count':0x0,'rows':[]};var _0x4116eb=db['ZendeskAccount'][_0x019f('0x30')];_0x56d7b4[_0x019f('0x31')]=_[_0x019f('0x32')](_0x4116eb);var _0x2019c8={'dateStart':_0x1f1e99['query']['dateStart'],'dateEnd':_0x1f1e99[_0x019f('0x33')]['dateEnd']};delete _0x1f1e99[_0x019f('0x33')][_0x019f('0x34')];delete _0x1f1e99[_0x019f('0x33')]['dateEnd'];_0x56d7b4[_0x019f('0x33')]=_[_0x019f('0x32')](_0x1f1e99[_0x019f('0x33')]);_0x56d7b4['filters']=_[_0x019f('0x35')](_0x56d7b4[_0x019f('0x31')],_0x56d7b4[_0x019f('0x33')]);_0x3779db['attributes']=_[_0x019f('0x35')](_0x56d7b4[_0x019f('0x31')],qs[_0x019f('0x36')](_0x1f1e99[_0x019f('0x33')]['fields']));_0x3779db[_0x019f('0x37')]=_0x3779db[_0x019f('0x37')][_0x019f('0x38')]?_0x3779db[_0x019f('0x37')]:_0x56d7b4[_0x019f('0x31')];if(!_0x1f1e99['query'][_0x019f('0x39')](_0x019f('0x3a'))){_0x3779db['limit']=qs[_0x019f('0x3b')](_0x1f1e99['query']['limit']);_0x3779db[_0x019f('0x24')]=qs[_0x019f('0x24')](_0x1f1e99[_0x019f('0x33')]['offset']);}_0x3779db['order']=qs[_0x019f('0x3c')](_0x1f1e99[_0x019f('0x33')][_0x019f('0x3c')]);_0x3779db[_0x019f('0x3d')]=qs['filters'](_[_0x019f('0x3e')](_0x1f1e99[_0x019f('0x33')],_0x56d7b4[_0x019f('0x3f')]));if(_0x2019c8['dateStart']){if(_0x2019c8[_0x019f('0x40')]){_0x2019c8['dateEnd']=moment(_0x2019c8[_0x019f('0x40')])[_0x019f('0x41')](0x1,_0x019f('0x42'));}else{_0x2019c8['dateEnd']=moment(_0x2019c8[_0x019f('0x34')])[_0x019f('0x41')](0x1,_0x019f('0x42'));}_[_0x019f('0x43')](_0x3779db[_0x019f('0x3d')],{'createdAt':{'$gte':_0x2019c8['dateStart'],'$lte':_0x2019c8[_0x019f('0x40')]}});}if(_0x1f1e99[_0x019f('0x33')][_0x019f('0x44')]){_0x3779db[_0x019f('0x3d')]=_[_0x019f('0x43')](_0x3779db[_0x019f('0x3d')],{'$or':_['map'](_0x3779db[_0x019f('0x37')],function(_0x58ecb4){var _0xa63d95={};_0xa63d95[_0x58ecb4]={'$like':'%'+_0x1f1e99[_0x019f('0x33')][_0x019f('0x44')]+'%'};return _0xa63d95;})});}_0x3779db=_[_0x019f('0x43')]({},_0x3779db,_0x1f1e99[_0x019f('0x45')]);var _0x153f6d={'where':_0x3779db[_0x019f('0x3d')]};return db[_0x019f('0x46')]['count'](_0x153f6d)[_0x019f('0x1a')](function(_0x439a53){_0x1bfaa3[_0x019f('0x47')]=_0x439a53;if(_0x1f1e99[_0x019f('0x33')]['includeAll']){_0x3779db[_0x019f('0x48')]=[{'all':!![]}];}return db[_0x019f('0x46')][_0x019f('0x49')](_0x3779db);})['then'](function(_0x459d66){_0x1bfaa3[_0x019f('0x4a')]=_0x459d66;return _0x1bfaa3;})[_0x019f('0x1a')](respondWithFilteredResult(_0x2006be,_0x3779db))[_0x019f('0x21')](handleError(_0x2006be,null));};exports['show']=function(_0x114d2f,_0x3006a5){var _0x3bfdb6={'raw':![],'where':{'id':_0x114d2f[_0x019f('0x4b')]['id']}},_0x30e261={};_0x30e261[_0x019f('0x31')]=_[_0x019f('0x32')](db[_0x019f('0x46')]['rawAttributes']);_0x30e261[_0x019f('0x33')]=_[_0x019f('0x32')](_0x114d2f[_0x019f('0x33')]);_0x30e261[_0x019f('0x3f')]=_[_0x019f('0x35')](_0x30e261['model'],_0x30e261['query']);_0x3bfdb6['attributes']=_[_0x019f('0x35')](_0x30e261[_0x019f('0x31')],qs['fields'](_0x114d2f[_0x019f('0x33')]['fields']));_0x3bfdb6[_0x019f('0x37')]=_0x3bfdb6['attributes']['length']?_0x3bfdb6[_0x019f('0x37')]:_0x30e261[_0x019f('0x31')];if(_0x114d2f[_0x019f('0x33')][_0x019f('0x4c')]){_0x3bfdb6[_0x019f('0x48')]=[{'all':!![]}];}_0x3bfdb6=_[_0x019f('0x43')]({},_0x3bfdb6,_0x114d2f[_0x019f('0x45')]);return db[_0x019f('0x46')][_0x019f('0x4d')](_0x3bfdb6)[_0x019f('0x1a')](handleEntityNotFound(_0x3006a5,null))['then'](respondWithResult(_0x3006a5,null))[_0x019f('0x21')](handleError(_0x3006a5,null));};exports[_0x019f('0x4e')]=function(_0x53bea2,_0x4cc87e){return db[_0x019f('0x46')][_0x019f('0x4e')](_0x53bea2[_0x019f('0x4f')],{})[_0x019f('0x1a')](respondWithResult(_0x4cc87e,0xc9))[_0x019f('0x21')](handleError(_0x4cc87e,null));};exports['update']=function(_0x549bf5,_0x4c911d){if(_0x549bf5[_0x019f('0x4f')]['id']){delete _0x549bf5[_0x019f('0x4f')]['id'];}return db[_0x019f('0x46')]['find']({'where':{'id':_0x549bf5[_0x019f('0x4b')]['id']}})[_0x019f('0x1a')](handleEntityNotFound(_0x4c911d,null))['then'](saveUpdates(_0x549bf5['body'],null))[_0x019f('0x1a')](respondWithResult(_0x4c911d,null))[_0x019f('0x21')](handleError(_0x4c911d,null));};exports[_0x019f('0x2b')]=function(_0x34ad2d,_0x2c2235){return db['ZendeskAccount'][_0x019f('0x4d')]({'where':{'id':_0x34ad2d[_0x019f('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2c2235,null))['then'](removeEntity(_0x2c2235,null))[_0x019f('0x21')](handleError(_0x2c2235,null));};exports[_0x019f('0x50')]=function(_0x20d831,_0x552355,_0x74f2f0){var _0x3eaed7={};var _0x55ee65={};var _0x1246d6;var _0x417c6d;return db[_0x019f('0x46')]['findOne']({'where':{'id':_0x20d831['params']['id']}})['then'](handleEntityNotFound(_0x552355,null))['then'](function(_0x3cff3e){if(_0x3cff3e){_0x1246d6=_0x3cff3e;_0x55ee65[_0x019f('0x31')]=_[_0x019f('0x32')](db['ZendeskConfiguration'][_0x019f('0x30')]);_0x55ee65['query']=_[_0x019f('0x32')](_0x20d831[_0x019f('0x33')]);_0x55ee65[_0x019f('0x3f')]=_[_0x019f('0x35')](_0x55ee65[_0x019f('0x31')],_0x55ee65[_0x019f('0x33')]);_0x3eaed7['attributes']=_[_0x019f('0x35')](_0x55ee65[_0x019f('0x31')],qs[_0x019f('0x36')](_0x20d831[_0x019f('0x33')]['fields']));_0x3eaed7[_0x019f('0x37')]=_0x3eaed7[_0x019f('0x37')][_0x019f('0x38')]?_0x3eaed7['attributes']:_0x55ee65[_0x019f('0x31')];_0x3eaed7[_0x019f('0x51')]=qs[_0x019f('0x3c')](_0x20d831[_0x019f('0x33')]['sort']);_0x3eaed7[_0x019f('0x3d')]=qs[_0x019f('0x3f')](_[_0x019f('0x3e')](_0x20d831[_0x019f('0x33')],_0x55ee65[_0x019f('0x3f')]));if(_0x20d831[_0x019f('0x33')][_0x019f('0x44')]){_0x3eaed7[_0x019f('0x3d')]=_[_0x019f('0x43')](_0x3eaed7[_0x019f('0x3d')],{'$or':_['map'](_0x3eaed7[_0x019f('0x37')],function(_0x43f11f){var _0x37ec03={};_0x37ec03[_0x43f11f]={'$like':'%'+_0x20d831[_0x019f('0x33')]['filter']+'%'};return _0x37ec03;})});}_0x3eaed7=_[_0x019f('0x43')]({},_0x3eaed7,_0x20d831[_0x019f('0x45')]);return _0x1246d6['getConfigurations'](_0x3eaed7);}})[_0x019f('0x1a')](function(_0x432c6f){if(_0x432c6f){_0x417c6d=_0x432c6f[_0x019f('0x38')];if(!_0x20d831['query'][_0x019f('0x39')](_0x019f('0x3a'))){_0x3eaed7['limit']=qs[_0x019f('0x3b')](_0x20d831[_0x019f('0x33')][_0x019f('0x3b')]);_0x3eaed7[_0x019f('0x24')]=qs['offset'](_0x20d831['query'][_0x019f('0x24')]);}return _0x1246d6[_0x019f('0x50')](_0x3eaed7);}})[_0x019f('0x1a')](function(_0x260c4d){if(_0x260c4d){return _0x260c4d?{'count':_0x417c6d,'rows':_0x260c4d}:null;}})['then'](respondWithResult(_0x552355,null))[_0x019f('0x21')](handleError(_0x552355,null));};exports[_0x019f('0x52')]=function(_0x5df841,_0x274de2,_0x17f5e9){if(_0x5df841[_0x019f('0x4f')]['id']){delete _0x5df841[_0x019f('0x4f')]['id'];}return db['ZendeskAccount'][_0x019f('0x53')]({'where':{'id':_0x5df841[_0x019f('0x4b')]['id']}})[_0x019f('0x1a')](handleEntityNotFound(_0x274de2,null))[_0x019f('0x1a')](function(_0x1cc91c){if(_0x1cc91c){_0x5df841[_0x019f('0x4f')]['AccountId']=_0x1cc91c['id'];_0x5df841[_0x019f('0x4f')][_0x019f('0x54')]=integrations['getSubjects'](_0x5df841[_0x019f('0x4f')][_0x019f('0x55')],_0x5df841[_0x019f('0x4f')][_0x019f('0x56')]);_0x5df841['body'][_0x019f('0x57')]=integrations[_0x019f('0x58')](_0x5df841[_0x019f('0x4f')][_0x019f('0x55')],_0x5df841['body']['type']);return db[_0x019f('0x59')][_0x019f('0x4e')](_0x5df841[_0x019f('0x4f')],{'include':[{'model':db[_0x019f('0x5a')],'as':'Subjects'},{'model':db[_0x019f('0x5a')],'as':_0x019f('0x57')}]});}return null;})[_0x019f('0x1a')](respondWithResult(_0x274de2,null))[_0x019f('0x21')](handleError(_0x274de2,null));};exports[_0x019f('0x5b')]=function(_0x27dfe3,_0x43285b,_0x2fec1f){return db[_0x019f('0x46')]['findOne']({'where':{'id':_0x27dfe3[_0x019f('0x4b')]['id']},'attributes':['id',_0x019f('0x5c'),'password','token',_0x019f('0x5d'),_0x019f('0x5e')]})['then'](handleEntityNotFound(_0x43285b,null))[_0x019f('0x1a')](function(_0xc9900d){if(_0xc9900d){var _0x342943={'method':_0x019f('0x5f'),'uri':util[_0x019f('0x60')](_0x019f('0x61'),_0xc9900d[_0x019f('0x5e')],_0x019f('0x62')),'json':!![]};switch(_0xc9900d[_0x019f('0x5d')]){case'password':_0x342943[_0x019f('0x63')]={'Authorization':util[_0x019f('0x60')]('Basic\x20%s',new Buffer(util[_0x019f('0x60')]('%s:%s',_0xc9900d['username'],_0xc9900d[_0x019f('0x64')]))[_0x019f('0x65')](_0x019f('0x66')))};break;case _0x019f('0x67'):_0x342943['headers']={'Authorization':util[_0x019f('0x60')]('Basic\x20%s',new Buffer(util[_0x019f('0x60')](_0x019f('0x68'),_0xc9900d[_0x019f('0x5c')],_0xc9900d[_0x019f('0x67')]))[_0x019f('0x65')](_0x019f('0x66')))};break;default:throw new db[(_0x019f('0x69'))][(_0x019f('0x6a'))](_0x019f('0x6b'));}return rp(_0x342943);}})[_0x019f('0x1a')](function(_0x16d36d){if(_0x16d36d){var _0x428688=[_0x019f('0x6c'),'description',_0x019f('0x6d'),_0x019f('0x6e')];_[_0x019f('0x6f')](_0x16d36d[_0x019f('0x62')],function(_0x402545){return _0x428688['includes'](_0x402545[_0x019f('0x56')]);});return{'count':_0x16d36d[_0x019f('0x62')][_0x019f('0x38')],'rows':_[_0x019f('0x70')](_0x16d36d['ticket_fields'],function(_0x5d5747){return{'id':_0x5d5747['id'],'name':_0x5d5747[_0x019f('0x71')]>0x7?_0x5d5747[_0x019f('0x72')]:_0x5d5747['type'],'custom':_0x5d5747[_0x019f('0x71')]>0x7?!![]:![],'options':_0x5d5747[_0x019f('0x73')]?_0x5d5747[_0x019f('0x73')]:[]};})};}})[_0x019f('0x1a')](respondWithResult(_0x43285b,null))['catch'](function(_0x53ff69){var _0x273431=_0x27dfe3[_0x019f('0x33')][_0x019f('0x74')]?0x1f4:_0x53ff69[_0x019f('0x75')]||0x1f4;logger[_0x019f('0x1e')](_0x019f('0x76'),_0x019f('0x5b'),_0x273431,JSON[_0x019f('0x77')](_0x53ff69));delete _0x53ff69[_0x019f('0x78')];if(_0x273431===0x191){_0x273431=0x190;}_0x43285b[_0x019f('0x22')](_0x273431)['send'](_0x27dfe3[_0x019f('0x33')]['test']?{'message':_0x019f('0x79'),'statusCode':_0x53ff69[_0x019f('0x75')]}:_0x53ff69);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb92a=['moment','bluebird','./intZendeskAccount.attributes','../../components/integrations/configuration','exports','define','ZendeskAccount','lodash','util','../../config/logger'];(function(_0x567ea1,_0x302721){var _0x38d88c=function(_0x47bfdc){while(--_0x47bfdc){_0x567ea1['push'](_0x567ea1['shift']());}};_0x38d88c(++_0x302721);}(_0xb92a,0x9d));var _0xab92=function(_0x3114d4,_0x34f8a3){_0x3114d4=_0x3114d4-0x0;var _0x9ef527=_0xb92a[_0x3114d4];return _0x9ef527;};'use strict';var _=require(_0xab92('0x0'));var util=require(_0xab92('0x1'));var logger=require(_0xab92('0x2'))('api');var moment=require(_0xab92('0x3'));var BPromise=require(_0xab92('0x4'));var rp=require('request-promise');var attributes=require(_0xab92('0x5'));var integrations=require(_0xab92('0x6'));module[_0xab92('0x7')]=function(_0x37f12a,_0x4ea417){return _0x37f12a[_0xab92('0x8')](_0xab92('0x9'),attributes,{'tableName':'int_zendesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xddd7=['exports','lodash','util','api','moment','bluebird'];(function(_0x1a9204,_0x1c9e00){var _0x17ca68=function(_0x1f4399){while(--_0x1f4399){_0x1a9204['push'](_0x1a9204['shift']());}};_0x17ca68(++_0x1c9e00);}(_0xddd7,0x1c9));var _0x7ddd=function(_0x3e7205,_0x523af4){_0x3e7205=_0x3e7205-0x0;var _0xe0d465=_0xddd7[_0x3e7205];return _0xe0d465;};'use strict';var _=require(_0x7ddd('0x0'));var util=require(_0x7ddd('0x1'));var logger=require('../../config/logger')(_0x7ddd('0x2'));var moment=require(_0x7ddd('0x3'));var BPromise=require(_0x7ddd('0x4'));var rp=require('request-promise');var attributes=require('./intZendeskAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0x7ddd('0x5')]=function(_0x41cd54,_0x2ccdb9){return _0x41cd54['define']('ZendeskAccount',attributes,{'tableName':'int_zendesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x947b=['where','include','model','attributes','map','ShowZendeskAccount','debug','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','then','info','request\x20sent','stringify','error','code','ZendeskAccount,\x20%s,\x20%s','message','result','catch','GetZendeskAccount','ZendeskAccount','findAll','options','raw'];(function(_0x293caa,_0x10c8a3){var _0x5ec971=function(_0x3b3bc7){while(--_0x3b3bc7){_0x293caa['push'](_0x293caa['shift']());}};_0x5ec971(++_0x10c8a3);}(_0x947b,0x10f));var _0xb947=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x947b[_0x167cc1];return _0x10bc4b;};'use strict';var _=require(_0xb947('0x0'));var util=require(_0xb947('0x1'));var moment=require(_0xb947('0x2'));var BPromise=require(_0xb947('0x3'));var rs=require(_0xb947('0x4'));var fs=require('fs');var db=require(_0xb947('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xb947('0x6'))(_0xb947('0x7'));var config=require(_0xb947('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb947('0x9')][_0xb947('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xf7e2f5,_0x51450f,_0x4b561e){return new BPromise(function(_0x1a9480,_0x3a7ef1){return client['request'](_0xf7e2f5,_0x4b561e)[_0xb947('0xb')](function(_0x590da3){logger[_0xb947('0xc')]('ZendeskAccount,\x20%s,\x20%s',_0x51450f,_0xb947('0xd'));logger['debug']('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x51450f,_0xb947('0xd'),JSON[_0xb947('0xe')](_0x590da3));if(_0x590da3[_0xb947('0xf')]){if(_0x590da3['error'][_0xb947('0x10')]===0x1f4){logger['error'](_0xb947('0x11'),_0x51450f,_0x590da3[_0xb947('0xf')]['message']);return _0x3a7ef1(_0x590da3[_0xb947('0xf')]['message']);}logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x51450f,_0x590da3['error'][_0xb947('0x12')]);return _0x1a9480(_0x590da3['error'][_0xb947('0x12')]);}else{logger['info']('ZendeskAccount,\x20%s,\x20%s',_0x51450f,_0xb947('0xd'));_0x1a9480(_0x590da3[_0xb947('0x13')][_0xb947('0x12')]);}})[_0xb947('0x14')](function(_0x509b65){logger[_0xb947('0xf')]('ZendeskAccount,\x20%s,\x20%s',_0x51450f,_0x509b65);_0x3a7ef1(_0x509b65);});});}exports[_0xb947('0x15')]=function(_0x744838){var _0xc39c76=this;return new Promise(function(_0xd5d095,_0x41bd84){return db[_0xb947('0x16')][_0xb947('0x17')]({'raw':_0x744838[_0xb947('0x18')]?_0x744838['options'][_0xb947('0x19')]===undefined?!![]:![]:!![],'where':_0x744838[_0xb947('0x18')]?_0x744838[_0xb947('0x18')][_0xb947('0x1a')]||null:null,'attributes':_0x744838[_0xb947('0x18')]?_0x744838[_0xb947('0x18')]['attributes']||null:null,'limit':_0x744838[_0xb947('0x18')]?_0x744838[_0xb947('0x18')]['limit']||null:null,'include':_0x744838['options']?_0x744838[_0xb947('0x18')]['include']?_['map'](_0x744838[_0xb947('0x18')][_0xb947('0x1b')],function(_0x5d6cac){return{'model':db[_0x5d6cac[_0xb947('0x1c')]],'as':_0x5d6cac['as'],'attributes':_0x5d6cac[_0xb947('0x1d')],'include':_0x5d6cac[_0xb947('0x1b')]?_[_0xb947('0x1e')](_0x5d6cac[_0xb947('0x1b')],function(_0x22e182){return{'model':db[_0x22e182[_0xb947('0x1c')]],'as':_0x22e182['as'],'attributes':_0x22e182['attributes'],'include':_0x22e182[_0xb947('0x1b')]?_['map'](_0x22e182[_0xb947('0x1b')],function(_0x21b752){return{'model':db[_0x21b752[_0xb947('0x1c')]],'as':_0x21b752['as'],'attributes':_0x21b752[_0xb947('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xb947('0xb')](function(_0x4d0026){logger['info'](_0xb947('0x15'),_0x744838);logger['debug'](_0xb947('0x15'),_0x744838,JSON[_0xb947('0xe')](_0x4d0026));_0xd5d095(_0x4d0026);})[_0xb947('0x14')](function(_0x2ecb24){logger['error'](_0xb947('0x15'),_0x2ecb24[_0xb947('0x12')],_0x744838);_0x41bd84(_0xc39c76[_0xb947('0xf')](0x1f4,_0x2ecb24[_0xb947('0x12')]));});});};exports[_0xb947('0x1f')]=function(_0x20f0be){var _0x55931e=this;return new Promise(function(_0x2e1c33,_0x4b1896){return db[_0xb947('0x16')]['find']({'raw':_0x20f0be[_0xb947('0x18')]?_0x20f0be[_0xb947('0x18')][_0xb947('0x19')]===undefined?!![]:![]:!![],'where':_0x20f0be[_0xb947('0x18')]?_0x20f0be['options'][_0xb947('0x1a')]||null:null,'attributes':_0x20f0be['options']?_0x20f0be[_0xb947('0x18')][_0xb947('0x1d')]||null:null,'include':_0x20f0be['options']?_0x20f0be[_0xb947('0x18')][_0xb947('0x1b')]?_[_0xb947('0x1e')](_0x20f0be[_0xb947('0x18')]['include'],function(_0x1a4830){return{'model':db[_0x1a4830[_0xb947('0x1c')]],'as':_0x1a4830['as'],'attributes':_0x1a4830[_0xb947('0x1d')],'include':_0x1a4830['include']?_[_0xb947('0x1e')](_0x1a4830['include'],function(_0x12b81b){return{'model':db[_0x12b81b[_0xb947('0x1c')]],'as':_0x12b81b['as'],'attributes':_0x12b81b[_0xb947('0x1d')],'include':_0x12b81b['include']?_[_0xb947('0x1e')](_0x12b81b[_0xb947('0x1b')],function(_0x27a0f9){return{'model':db[_0x27a0f9[_0xb947('0x1c')]],'as':_0x27a0f9['as'],'attributes':_0x27a0f9[_0xb947('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xb947('0xb')](function(_0x124ce6){logger[_0xb947('0xc')](_0xb947('0x1f'),_0x20f0be);logger[_0xb947('0x20')]('ShowZendeskAccount',_0x20f0be,JSON[_0xb947('0xe')](_0x124ce6));_0x2e1c33(_0x124ce6);})['catch'](function(_0x4bf242){logger[_0xb947('0xf')](_0xb947('0x1f'),_0x4bf242[_0xb947('0x12')],_0x20f0be);_0x4b1896(_0x55931e[_0xb947('0xf')](0x1f4,_0x4bf242[_0xb947('0x12')]));});});};
\ No newline at end of file
+var _0x9108=['ShowZendeskAccount','ZendeskAccount','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','request','info','ZendeskAccount,\x20%s,\x20%s','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetZendeskAccount','findAll','options','raw','where','map','include','model','attributes','then','stringify'];(function(_0x48c938,_0x14ac2c){var _0x5625b2=function(_0x3edffd){while(--_0x3edffd){_0x48c938['push'](_0x48c938['shift']());}};_0x5625b2(++_0x14ac2c);}(_0x9108,0x1d6));var _0x8910=function(_0x10518d,_0x4586f8){_0x10518d=_0x10518d-0x0;var _0x1ff0f7=_0x9108[_0x10518d];return _0x1ff0f7;};'use strict';var _=require(_0x8910('0x0'));var util=require(_0x8910('0x1'));var moment=require(_0x8910('0x2'));var BPromise=require(_0x8910('0x3'));var rs=require(_0x8910('0x4'));var fs=require('fs');var Redis=require(_0x8910('0x5'));var db=require(_0x8910('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x8910('0x7'))(_0x8910('0x8'));var config=require(_0x8910('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x8910('0xa')][_0x8910('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1a39d2,_0x3c0c67,_0x5d1c6d){return new BPromise(function(_0x12ac38,_0x7322a7){return client[_0x8910('0xc')](_0x1a39d2,_0x5d1c6d)['then'](function(_0x135365){logger[_0x8910('0xd')](_0x8910('0xe'),_0x3c0c67,'request\x20sent');logger[_0x8910('0xf')](_0x8910('0x10'),_0x3c0c67,_0x8910('0x11'),JSON['stringify'](_0x135365));if(_0x135365[_0x8910('0x12')]){if(_0x135365[_0x8910('0x12')][_0x8910('0x13')]===0x1f4){logger['error'](_0x8910('0xe'),_0x3c0c67,_0x135365[_0x8910('0x12')]['message']);return _0x7322a7(_0x135365[_0x8910('0x12')]['message']);}logger[_0x8910('0x12')](_0x8910('0xe'),_0x3c0c67,_0x135365[_0x8910('0x12')][_0x8910('0x14')]);return _0x12ac38(_0x135365[_0x8910('0x12')][_0x8910('0x14')]);}else{logger[_0x8910('0xd')](_0x8910('0xe'),_0x3c0c67,_0x8910('0x11'));_0x12ac38(_0x135365[_0x8910('0x15')][_0x8910('0x14')]);}})[_0x8910('0x16')](function(_0x44ff53){logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x3c0c67,_0x44ff53);_0x7322a7(_0x44ff53);});});}exports[_0x8910('0x17')]=function(_0x5f2fce){var _0x2530a8=this;return new Promise(function(_0x14a158,_0x573fe6){return db['ZendeskAccount'][_0x8910('0x18')]({'raw':_0x5f2fce[_0x8910('0x19')]?_0x5f2fce[_0x8910('0x19')][_0x8910('0x1a')]===undefined?!![]:![]:!![],'where':_0x5f2fce[_0x8910('0x19')]?_0x5f2fce[_0x8910('0x19')][_0x8910('0x1b')]||null:null,'attributes':_0x5f2fce[_0x8910('0x19')]?_0x5f2fce[_0x8910('0x19')]['attributes']||null:null,'limit':_0x5f2fce[_0x8910('0x19')]?_0x5f2fce['options']['limit']||null:null,'include':_0x5f2fce[_0x8910('0x19')]?_0x5f2fce[_0x8910('0x19')]['include']?_[_0x8910('0x1c')](_0x5f2fce['options'][_0x8910('0x1d')],function(_0x44865b){return{'model':db[_0x44865b[_0x8910('0x1e')]],'as':_0x44865b['as'],'attributes':_0x44865b[_0x8910('0x1f')],'include':_0x44865b[_0x8910('0x1d')]?_['map'](_0x44865b[_0x8910('0x1d')],function(_0x186cd5){return{'model':db[_0x186cd5[_0x8910('0x1e')]],'as':_0x186cd5['as'],'attributes':_0x186cd5[_0x8910('0x1f')],'include':_0x186cd5[_0x8910('0x1d')]?_[_0x8910('0x1c')](_0x186cd5[_0x8910('0x1d')],function(_0x53fb96){return{'model':db[_0x53fb96[_0x8910('0x1e')]],'as':_0x53fb96['as'],'attributes':_0x53fb96[_0x8910('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x8910('0x20')](function(_0x2a6f8f){logger[_0x8910('0xd')]('GetZendeskAccount',_0x5f2fce);logger[_0x8910('0xf')]('GetZendeskAccount',_0x5f2fce,JSON[_0x8910('0x21')](_0x2a6f8f));_0x14a158(_0x2a6f8f);})[_0x8910('0x16')](function(_0x18d45d){logger[_0x8910('0x12')](_0x8910('0x17'),_0x18d45d[_0x8910('0x14')],_0x5f2fce);_0x573fe6(_0x2530a8[_0x8910('0x12')](0x1f4,_0x18d45d['message']));});});};exports[_0x8910('0x22')]=function(_0x4a13a5){var _0x38982f=this;return new Promise(function(_0xfbaf9f,_0x5da639){return db[_0x8910('0x23')]['find']({'raw':_0x4a13a5[_0x8910('0x19')]?_0x4a13a5['options'][_0x8910('0x1a')]===undefined?!![]:![]:!![],'where':_0x4a13a5[_0x8910('0x19')]?_0x4a13a5[_0x8910('0x19')][_0x8910('0x1b')]||null:null,'attributes':_0x4a13a5[_0x8910('0x19')]?_0x4a13a5[_0x8910('0x19')][_0x8910('0x1f')]||null:null,'include':_0x4a13a5[_0x8910('0x19')]?_0x4a13a5[_0x8910('0x19')][_0x8910('0x1d')]?_[_0x8910('0x1c')](_0x4a13a5[_0x8910('0x19')][_0x8910('0x1d')],function(_0x4451e7){return{'model':db[_0x4451e7[_0x8910('0x1e')]],'as':_0x4451e7['as'],'attributes':_0x4451e7[_0x8910('0x1f')],'include':_0x4451e7[_0x8910('0x1d')]?_[_0x8910('0x1c')](_0x4451e7[_0x8910('0x1d')],function(_0x237aa7){return{'model':db[_0x237aa7[_0x8910('0x1e')]],'as':_0x237aa7['as'],'attributes':_0x237aa7[_0x8910('0x1f')],'include':_0x237aa7[_0x8910('0x1d')]?_[_0x8910('0x1c')](_0x237aa7[_0x8910('0x1d')],function(_0x2aa93c){return{'model':db[_0x2aa93c[_0x8910('0x1e')]],'as':_0x2aa93c['as'],'attributes':_0x2aa93c[_0x8910('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x8910('0x20')](function(_0x3732f2){logger[_0x8910('0xd')](_0x8910('0x22'),_0x4a13a5);logger[_0x8910('0xf')](_0x8910('0x22'),_0x4a13a5,JSON['stringify'](_0x3732f2));_0xfbaf9f(_0x3732f2);})[_0x8910('0x16')](function(_0x33c81f){logger['error'](_0x8910('0x22'),_0x33c81f[_0x8910('0x14')],_0x4a13a5);_0x5da639(_0x38982f[_0x8910('0x12')](0x1f4,_0x33c81f[_0x8910('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94a8=['getDescriptions','/:id/tags','post','create','update','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','/:id','show','getFields','/:id/subjects','getSubjects'];(function(_0x2f71f6,_0x3a1f4d){var _0x2b23ea=function(_0x285980){while(--_0x285980){_0x2f71f6['push'](_0x2f71f6['shift']());}};_0x2b23ea(++_0x3a1f4d);}(_0x94a8,0xb0));var _0x894a=function(_0x8de54f,_0x271987){_0x8de54f=_0x8de54f-0x0;var _0x14cba4=_0x94a8[_0x8de54f];return _0x14cba4;};'use strict';var multer=require(_0x894a('0x0'));var util=require(_0x894a('0x1'));var path=require(_0x894a('0x2'));var timeout=require('connect-timeout');var express=require(_0x894a('0x3'));var router=express[_0x894a('0x4')]();var auth=require(_0x894a('0x5'));var interaction=require(_0x894a('0x6'));var config=require(_0x894a('0x7'));var controller=require(_0x894a('0x8'));router[_0x894a('0x9')]('/',auth[_0x894a('0xa')](),controller['index']);router[_0x894a('0x9')](_0x894a('0xb'),auth[_0x894a('0xa')](),controller[_0x894a('0xc')]);router[_0x894a('0x9')]('/:id/fields',auth[_0x894a('0xa')](),controller[_0x894a('0xd')]);router[_0x894a('0x9')](_0x894a('0xe'),auth[_0x894a('0xa')](),controller[_0x894a('0xf')]);router[_0x894a('0x9')]('/:id/descriptions',auth[_0x894a('0xa')](),controller[_0x894a('0x10')]);router['get'](_0x894a('0x11'),auth[_0x894a('0xa')](),controller['getTags']);router[_0x894a('0x12')]('/',auth[_0x894a('0xa')](),controller[_0x894a('0x13')]);router['post'](_0x894a('0x11'),auth[_0x894a('0xa')](),controller['setTags']);router['put'](_0x894a('0xb'),auth[_0x894a('0xa')](),controller[_0x894a('0x14')]);router[_0x894a('0x15')]('/:id',auth[_0x894a('0xa')](),controller[_0x894a('0x16')]);module[_0x894a('0x17')]=router;
\ No newline at end of file
+var _0x936b=['../../components/auth/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','getFields','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','post','update','delete','destroy','multer','util','path','connect-timeout'];(function(_0x5c52cb,_0x4223e7){var _0x26d628=function(_0x142735){while(--_0x142735){_0x5c52cb['push'](_0x5c52cb['shift']());}};_0x26d628(++_0x4223e7);}(_0x936b,0x178));var _0xb936=function(_0x4b7f87,_0x3995a9){_0x4b7f87=_0x4b7f87-0x0;var _0x3ed2bb=_0x936b[_0x4b7f87];return _0x3ed2bb;};'use strict';var multer=require(_0xb936('0x0'));var util=require(_0xb936('0x1'));var path=require(_0xb936('0x2'));var timeout=require(_0xb936('0x3'));var express=require('express');var router=express['Router']();var auth=require(_0xb936('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xb936('0x5'));var controller=require(_0xb936('0x6'));router[_0xb936('0x7')]('/',auth[_0xb936('0x8')](),controller[_0xb936('0x9')]);router[_0xb936('0x7')](_0xb936('0xa'),auth[_0xb936('0x8')](),controller['show']);router['get']('/:id/fields',auth[_0xb936('0x8')](),controller[_0xb936('0xb')]);router[_0xb936('0x7')]('/:id/subjects',auth[_0xb936('0x8')](),controller[_0xb936('0xc')]);router[_0xb936('0x7')](_0xb936('0xd'),auth['isAuthenticated'](),controller[_0xb936('0xe')]);router[_0xb936('0x7')](_0xb936('0xf'),auth[_0xb936('0x8')](),controller['getTags']);router[_0xb936('0x10')]('/',auth[_0xb936('0x8')](),controller['create']);router[_0xb936('0x10')]('/:id/tags',auth[_0xb936('0x8')](),controller['setTags']);router['put'](_0xb936('0xa'),auth[_0xb936('0x8')](),controller[_0xb936('0x11')]);router[_0xb936('0x12')](_0xb936('0xa'),auth['isAuthenticated'](),controller[_0xb936('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8861=['STRING','sequelize','exports'];(function(_0x53d51e,_0xacf819){var _0x36f57e=function(_0x135d62){while(--_0x135d62){_0x53d51e['push'](_0x53d51e['shift']());}};_0x36f57e(++_0xacf819);}(_0x8861,0x18a));var _0x1886=function(_0x9b2b9f,_0x32978b){_0x9b2b9f=_0x9b2b9f-0x0;var _0x55238a=_0x8861[_0x9b2b9f];return _0x55238a;};'use strict';var Sequelize=require(_0x1886('0x0'));module[_0x1886('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x1886('0x2')]}};
\ No newline at end of file
+var _0x9bf2=['exports','STRING'];(function(_0xe2974d,_0x1210fb){var _0x405db5=function(_0x4c4cd5){while(--_0x4c4cd5){_0xe2974d['push'](_0xe2974d['shift']());}};_0x405db5(++_0x1210fb);}(_0x9bf2,0x112));var _0x29bf=function(_0x5911b5,_0x2c008c){_0x5911b5=_0x5911b5-0x0;var _0x120643=_0x9bf2[_0x5911b5];return _0x120643;};'use strict';var Sequelize=require('sequelize');module[_0x29bf('0x0')]={'name':{'type':Sequelize[_0x29bf('0x1')]},'description':{'type':Sequelize[_0x29bf('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79a4=['save','update','destroy','stack','name','index','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','attributes','fields','length','nolimit','order','where','filters','pick','add','day','merge','filter','map','ZendeskConfiguration','count','includeAll','findAll','rows','show','params','create','body','find','getFields','findOne','sort','options','hasOwnProperty','getSubjects','ZendeskField','getDescriptions','getTags','Tag','setTags','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','client','http','request','then','info','ZendeskConfiguration,\x20%s,\x20%s','request\x20sent','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject'];(function(_0x4beed1,_0x2353f6){var _0x95b413=function(_0x47a28f){while(--_0x47a28f){_0x4beed1['push'](_0x4beed1['shift']());}};_0x95b413(++_0x2353f6);}(_0x79a4,0xeb));var _0x479a=function(_0x171067,_0x149acd){_0x171067=_0x171067-0x0;var _0x59467c=_0x79a4[_0x171067];return _0x59467c;};'use strict';var pdf=require(_0x479a('0x0'));var emlformat=require(_0x479a('0x1'));var rimraf=require(_0x479a('0x2'));var zipdir=require(_0x479a('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x479a('0x4'));var moment=require(_0x479a('0x5'));var BPromise=require(_0x479a('0x6'));var Mustache=require(_0x479a('0x7'));var util=require(_0x479a('0x8'));var path=require(_0x479a('0x9'));var sox=require(_0x479a('0xa'));var csv=require('to-csv');var ejs=require(_0x479a('0xb'));var fs=require('fs');var _=require(_0x479a('0xc'));var squel=require(_0x479a('0xd'));var crypto=require(_0x479a('0xe'));var jsforce=require(_0x479a('0xf'));var deskjs=require(_0x479a('0x10'));var toCsv=require(_0x479a('0x11'));var querystring=require('querystring');var Papa=require(_0x479a('0x12'));var qs=require(_0x479a('0x13'));var logger=require(_0x479a('0x14'))('api');var utils=require(_0x479a('0x15'));var config=require(_0x479a('0x16'));var db=require(_0x479a('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x479a('0x18')][_0x479a('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x455c80,_0x27ea86,_0x2307e8,_0x24733a){return new BPromise(function(_0x5693c3,_0x5ed05d){var _0x1440ad=_0x24733a||client;return _0x1440ad[_0x479a('0x1a')](_0x455c80,_0x2307e8)[_0x479a('0x1b')](function(_0x5062d7){logger[_0x479a('0x1c')](_0x479a('0x1d'),_0x27ea86,_0x479a('0x1e'));logger['debug'](_0x479a('0x1f'),_0x27ea86,'request\x20sent',JSON['stringify'](_0x5062d7));if(_0x5062d7[_0x479a('0x20')]){if(_0x5062d7[_0x479a('0x20')][_0x479a('0x21')]===0x1f4){logger[_0x479a('0x20')](_0x479a('0x1d'),_0x27ea86,_0x5062d7[_0x479a('0x20')]['message']);return _0x5ed05d(_0x5062d7[_0x479a('0x20')][_0x479a('0x22')]);}logger['error'](_0x479a('0x1d'),_0x27ea86,_0x5062d7[_0x479a('0x20')][_0x479a('0x22')]);return _0x5693c3(_0x5062d7[_0x479a('0x20')]['message']);}else{logger[_0x479a('0x1c')](_0x479a('0x1d'),_0x27ea86,'request\x20sent');_0x5693c3(_0x5062d7[_0x479a('0x23')][_0x479a('0x22')]);}})[_0x479a('0x24')](function(_0x2e0235){logger[_0x479a('0x20')]('ZendeskConfiguration,\x20%s,\x20%s',_0x27ea86,_0x2e0235);_0x5ed05d(_0x2e0235);});});}function respondWithStatusCode(_0x538fea,_0x21adeb){_0x21adeb=_0x21adeb||0xcc;return function(_0x5cf3d8){if(_0x5cf3d8){return _0x538fea[_0x479a('0x25')](_0x21adeb);}return _0x538fea[_0x479a('0x26')](_0x21adeb)[_0x479a('0x27')]();};}function respondWithResult(_0x5cdd98,_0x5e6083){_0x5e6083=_0x5e6083||0xc8;return function(_0x335625){if(_0x335625){return _0x5cdd98[_0x479a('0x26')](_0x5e6083)[_0x479a('0x28')](_0x335625);}};}function respondWithFilteredResult(_0x126100,_0x128118){return function(_0x11a65f){if(_0x11a65f){var _0x271cbd=_0x11a65f['count'],_0x2d8c80=_0x128118[_0x479a('0x29')],_0x38b4dc=_0x128118[_0x479a('0x29')]+_0x128118[_0x479a('0x2a')],_0x54390f;if(_0x38b4dc>=_0x271cbd){_0x38b4dc=_0x271cbd;_0x54390f=0xc8;}else{_0x54390f=0xce;}_0x126100[_0x479a('0x26')](_0x54390f);return _0x126100[_0x479a('0x2b')](_0x479a('0x2c'),_0x2d8c80+'-'+_0x38b4dc+'/'+_0x271cbd)['json'](_0x11a65f);}return null;};}function patchUpdates(_0x192567){return function(_0x76235d){try{jsonpatch[_0x479a('0x2d')](_0x76235d,_0x192567,!![]);}catch(_0x17d623){return BPromise[_0x479a('0x2e')](_0x17d623);}return _0x76235d[_0x479a('0x2f')]();};}function saveUpdates(_0x4e00d1,_0x4051cc){return function(_0xde1d96){if(_0xde1d96){return _0xde1d96[_0x479a('0x30')](_0x4e00d1)[_0x479a('0x1b')](function(_0x14954a){return _0x14954a;});}return null;};}function removeEntity(_0x26f4d7,_0x3b9796){return function(_0x561d1b){if(_0x561d1b){return _0x561d1b[_0x479a('0x31')]()[_0x479a('0x1b')](function(){_0x26f4d7[_0x479a('0x26')](0xcc)[_0x479a('0x27')]();});}};}function handleEntityNotFound(_0x4354d9,_0x525c30){return function(_0x1e64b6){if(!_0x1e64b6){_0x4354d9[_0x479a('0x25')](0x194);}return _0x1e64b6;};}function handleError(_0x11e61b,_0x508335){_0x508335=_0x508335||0x1f4;return function(_0x149265){logger[_0x479a('0x20')](_0x149265[_0x479a('0x32')]);if(_0x149265[_0x479a('0x33')]){delete _0x149265[_0x479a('0x33')];}_0x11e61b[_0x479a('0x26')](_0x508335)['send'](_0x149265);};}exports[_0x479a('0x34')]=function(_0x4c7799,_0x3c1dce){var _0x2b5374={},_0xdde113={},_0x1b01fa={'count':0x0,'rows':[]};var _0x523882=db['ZendeskConfiguration'][_0x479a('0x35')];_0xdde113[_0x479a('0x36')]=_[_0x479a('0x37')](_0x523882);var _0x117045={'dateStart':_0x4c7799[_0x479a('0x38')][_0x479a('0x39')],'dateEnd':_0x4c7799[_0x479a('0x38')][_0x479a('0x3a')]};delete _0x4c7799['query'][_0x479a('0x39')];delete _0x4c7799[_0x479a('0x38')][_0x479a('0x3a')];_0xdde113[_0x479a('0x38')]=_[_0x479a('0x37')](_0x4c7799[_0x479a('0x38')]);_0xdde113['filters']=_[_0x479a('0x3b')](_0xdde113['model'],_0xdde113[_0x479a('0x38')]);_0x2b5374[_0x479a('0x3c')]=_['intersection'](_0xdde113[_0x479a('0x36')],qs[_0x479a('0x3d')](_0x4c7799[_0x479a('0x38')][_0x479a('0x3d')]));_0x2b5374[_0x479a('0x3c')]=_0x2b5374[_0x479a('0x3c')][_0x479a('0x3e')]?_0x2b5374['attributes']:_0xdde113[_0x479a('0x36')];if(!_0x4c7799['query']['hasOwnProperty'](_0x479a('0x3f'))){_0x2b5374[_0x479a('0x2a')]=qs[_0x479a('0x2a')](_0x4c7799[_0x479a('0x38')][_0x479a('0x2a')]);_0x2b5374[_0x479a('0x29')]=qs['offset'](_0x4c7799[_0x479a('0x38')][_0x479a('0x29')]);}_0x2b5374[_0x479a('0x40')]=qs['sort'](_0x4c7799[_0x479a('0x38')]['sort']);_0x2b5374[_0x479a('0x41')]=qs[_0x479a('0x42')](_[_0x479a('0x43')](_0x4c7799[_0x479a('0x38')],_0xdde113[_0x479a('0x42')]));if(_0x117045[_0x479a('0x39')]){if(_0x117045[_0x479a('0x3a')]){_0x117045[_0x479a('0x3a')]=moment(_0x117045['dateEnd'])[_0x479a('0x44')](0x1,_0x479a('0x45'));}else{_0x117045[_0x479a('0x3a')]=moment(_0x117045[_0x479a('0x39')])[_0x479a('0x44')](0x1,_0x479a('0x45'));}_[_0x479a('0x46')](_0x2b5374[_0x479a('0x41')],{'createdAt':{'$gte':_0x117045[_0x479a('0x39')],'$lte':_0x117045[_0x479a('0x3a')]}});}if(_0x4c7799[_0x479a('0x38')][_0x479a('0x47')]){_0x2b5374[_0x479a('0x41')]=_[_0x479a('0x46')](_0x2b5374[_0x479a('0x41')],{'$or':_[_0x479a('0x48')](_0x2b5374[_0x479a('0x3c')],function(_0x4cd656){var _0x1c0821={};_0x1c0821[_0x4cd656]={'$like':'%'+_0x4c7799[_0x479a('0x38')][_0x479a('0x47')]+'%'};return _0x1c0821;})});}_0x2b5374=_['merge']({},_0x2b5374,_0x4c7799['options']);var _0x33fc92={'where':_0x2b5374[_0x479a('0x41')]};return db[_0x479a('0x49')][_0x479a('0x4a')](_0x33fc92)['then'](function(_0x3b76cc){_0x1b01fa['count']=_0x3b76cc;if(_0x4c7799[_0x479a('0x38')][_0x479a('0x4b')]){_0x2b5374['include']=[{'all':!![]}];}return db[_0x479a('0x49')][_0x479a('0x4c')](_0x2b5374);})['then'](function(_0x1eec93){_0x1b01fa[_0x479a('0x4d')]=_0x1eec93;return _0x1b01fa;})[_0x479a('0x1b')](respondWithFilteredResult(_0x3c1dce,_0x2b5374))[_0x479a('0x24')](handleError(_0x3c1dce,null));};exports[_0x479a('0x4e')]=function(_0x2f30b4,_0x574f9a){var _0x2d75ec={'raw':![],'where':{'id':_0x2f30b4[_0x479a('0x4f')]['id']}},_0x28d0c5={};_0x28d0c5['model']=_[_0x479a('0x37')](db[_0x479a('0x49')]['rawAttributes']);_0x28d0c5[_0x479a('0x38')]=_['keys'](_0x2f30b4[_0x479a('0x38')]);_0x28d0c5[_0x479a('0x42')]=_['intersection'](_0x28d0c5['model'],_0x28d0c5[_0x479a('0x38')]);_0x2d75ec[_0x479a('0x3c')]=_[_0x479a('0x3b')](_0x28d0c5[_0x479a('0x36')],qs[_0x479a('0x3d')](_0x2f30b4[_0x479a('0x38')][_0x479a('0x3d')]));_0x2d75ec['attributes']=_0x2d75ec['attributes'][_0x479a('0x3e')]?_0x2d75ec[_0x479a('0x3c')]:_0x28d0c5[_0x479a('0x36')];if(_0x2f30b4[_0x479a('0x38')][_0x479a('0x4b')]){_0x2d75ec['include']=[{'all':!![]}];}_0x2d75ec=_[_0x479a('0x46')]({},_0x2d75ec,_0x2f30b4['options']);return db[_0x479a('0x49')]['find'](_0x2d75ec)[_0x479a('0x1b')](handleEntityNotFound(_0x574f9a,null))[_0x479a('0x1b')](respondWithResult(_0x574f9a,null))[_0x479a('0x24')](handleError(_0x574f9a,null));};exports[_0x479a('0x50')]=function(_0xcf0cd4,_0x45c22a){return db[_0x479a('0x49')]['create'](_0xcf0cd4[_0x479a('0x51')],{})[_0x479a('0x1b')](respondWithResult(_0x45c22a,0xc9))[_0x479a('0x24')](handleError(_0x45c22a,null));};exports[_0x479a('0x30')]=function(_0x49f3c9,_0x1fbad7){if(_0x49f3c9[_0x479a('0x51')]['id']){delete _0x49f3c9[_0x479a('0x51')]['id'];}return db[_0x479a('0x49')][_0x479a('0x52')]({'where':{'id':_0x49f3c9[_0x479a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1fbad7,null))['then'](saveUpdates(_0x49f3c9['body'],null))[_0x479a('0x1b')](respondWithResult(_0x1fbad7,null))[_0x479a('0x24')](handleError(_0x1fbad7,null));};exports['destroy']=function(_0x5d08f5,_0x166c62){return db[_0x479a('0x49')][_0x479a('0x52')]({'where':{'id':_0x5d08f5[_0x479a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x166c62,null))[_0x479a('0x1b')](removeEntity(_0x166c62,null))[_0x479a('0x24')](handleError(_0x166c62,null));};exports[_0x479a('0x53')]=function(_0x5d061b,_0x4ff50a,_0x1cfed2){var _0x76a3b7={};var _0x1c8441={};var _0x56b886;var _0x3f192e;return db[_0x479a('0x49')][_0x479a('0x54')]({'where':{'id':_0x5d061b[_0x479a('0x4f')]['id']}})[_0x479a('0x1b')](handleEntityNotFound(_0x4ff50a,null))[_0x479a('0x1b')](function(_0x366e0a){if(_0x366e0a){_0x56b886=_0x366e0a;_0x1c8441['model']=_[_0x479a('0x37')](db['ZendeskField'][_0x479a('0x35')]);_0x1c8441[_0x479a('0x38')]=_[_0x479a('0x37')](_0x5d061b['query']);_0x1c8441[_0x479a('0x42')]=_['intersection'](_0x1c8441[_0x479a('0x36')],_0x1c8441[_0x479a('0x38')]);_0x76a3b7['attributes']=_[_0x479a('0x3b')](_0x1c8441[_0x479a('0x36')],qs[_0x479a('0x3d')](_0x5d061b[_0x479a('0x38')]['fields']));_0x76a3b7[_0x479a('0x3c')]=_0x76a3b7[_0x479a('0x3c')][_0x479a('0x3e')]?_0x76a3b7[_0x479a('0x3c')]:_0x1c8441['model'];_0x76a3b7[_0x479a('0x40')]=qs[_0x479a('0x55')](_0x5d061b[_0x479a('0x38')][_0x479a('0x55')]);_0x76a3b7['where']=qs[_0x479a('0x42')](_[_0x479a('0x43')](_0x5d061b['query'],_0x1c8441['filters']));if(_0x5d061b['query'][_0x479a('0x47')]){_0x76a3b7['where']=_[_0x479a('0x46')](_0x76a3b7['where'],{'$or':_[_0x479a('0x48')](_0x76a3b7[_0x479a('0x3c')],function(_0x38559d){var _0x129639={};_0x129639[_0x38559d]={'$like':'%'+_0x5d061b[_0x479a('0x38')][_0x479a('0x47')]+'%'};return _0x129639;})});}_0x76a3b7=_['merge']({},_0x76a3b7,_0x5d061b[_0x479a('0x56')]);return _0x56b886[_0x479a('0x53')](_0x76a3b7);}})[_0x479a('0x1b')](function(_0x2385f8){if(_0x2385f8){_0x3f192e=_0x2385f8[_0x479a('0x3e')];if(!_0x5d061b[_0x479a('0x38')][_0x479a('0x57')](_0x479a('0x3f'))){_0x76a3b7[_0x479a('0x2a')]=qs['limit'](_0x5d061b[_0x479a('0x38')][_0x479a('0x2a')]);_0x76a3b7[_0x479a('0x29')]=qs[_0x479a('0x29')](_0x5d061b[_0x479a('0x38')]['offset']);}return _0x56b886[_0x479a('0x53')](_0x76a3b7);}})['then'](function(_0x254d39){if(_0x254d39){return _0x254d39?{'count':_0x3f192e,'rows':_0x254d39}:null;}})['then'](respondWithResult(_0x4ff50a,null))['catch'](handleError(_0x4ff50a,null));};exports[_0x479a('0x58')]=function(_0x3d8cb6,_0x4b923c,_0x54a330){var _0xb32afa={};var _0x5598cb={};var _0x2ab8cd;var _0x267111;return db['ZendeskConfiguration'][_0x479a('0x54')]({'where':{'id':_0x3d8cb6[_0x479a('0x4f')]['id']}})[_0x479a('0x1b')](handleEntityNotFound(_0x4b923c,null))[_0x479a('0x1b')](function(_0x2b764a){if(_0x2b764a){_0x2ab8cd=_0x2b764a;_0x5598cb[_0x479a('0x36')]=_[_0x479a('0x37')](db[_0x479a('0x59')][_0x479a('0x35')]);_0x5598cb[_0x479a('0x38')]=_['keys'](_0x3d8cb6[_0x479a('0x38')]);_0x5598cb[_0x479a('0x42')]=_[_0x479a('0x3b')](_0x5598cb[_0x479a('0x36')],_0x5598cb[_0x479a('0x38')]);_0xb32afa[_0x479a('0x3c')]=_[_0x479a('0x3b')](_0x5598cb[_0x479a('0x36')],qs[_0x479a('0x3d')](_0x3d8cb6['query']['fields']));_0xb32afa['attributes']=_0xb32afa[_0x479a('0x3c')][_0x479a('0x3e')]?_0xb32afa[_0x479a('0x3c')]:_0x5598cb[_0x479a('0x36')];_0xb32afa['order']=qs['sort'](_0x3d8cb6[_0x479a('0x38')][_0x479a('0x55')]);_0xb32afa[_0x479a('0x41')]=qs['filters'](_[_0x479a('0x43')](_0x3d8cb6[_0x479a('0x38')],_0x5598cb[_0x479a('0x42')]));if(_0x3d8cb6[_0x479a('0x38')][_0x479a('0x47')]){_0xb32afa['where']=_[_0x479a('0x46')](_0xb32afa[_0x479a('0x41')],{'$or':_[_0x479a('0x48')](_0xb32afa[_0x479a('0x3c')],function(_0x579798){var _0x57e302={};_0x57e302[_0x579798]={'$like':'%'+_0x3d8cb6[_0x479a('0x38')][_0x479a('0x47')]+'%'};return _0x57e302;})});}_0xb32afa=_['merge']({},_0xb32afa,_0x3d8cb6[_0x479a('0x56')]);return _0x2ab8cd['getSubjects'](_0xb32afa);}})[_0x479a('0x1b')](function(_0x2b55b8){if(_0x2b55b8){_0x267111=_0x2b55b8[_0x479a('0x3e')];if(!_0x3d8cb6[_0x479a('0x38')][_0x479a('0x57')](_0x479a('0x3f'))){_0xb32afa[_0x479a('0x2a')]=qs[_0x479a('0x2a')](_0x3d8cb6['query'][_0x479a('0x2a')]);_0xb32afa[_0x479a('0x29')]=qs['offset'](_0x3d8cb6[_0x479a('0x38')][_0x479a('0x29')]);}return _0x2ab8cd['getSubjects'](_0xb32afa);}})['then'](function(_0x43ba48){if(_0x43ba48){return _0x43ba48?{'count':_0x267111,'rows':_0x43ba48}:null;}})['then'](respondWithResult(_0x4b923c,null))[_0x479a('0x24')](handleError(_0x4b923c,null));};exports[_0x479a('0x5a')]=function(_0x5ca56f,_0x2c1d36,_0x5757f8){var _0x2aa342={};var _0x4a57c8={};var _0x772cc3;var _0x135313;return db['ZendeskConfiguration'][_0x479a('0x54')]({'where':{'id':_0x5ca56f[_0x479a('0x4f')]['id']}})[_0x479a('0x1b')](handleEntityNotFound(_0x2c1d36,null))[_0x479a('0x1b')](function(_0x55b7f8){if(_0x55b7f8){_0x772cc3=_0x55b7f8;_0x4a57c8[_0x479a('0x36')]=_[_0x479a('0x37')](db[_0x479a('0x59')]['rawAttributes']);_0x4a57c8[_0x479a('0x38')]=_[_0x479a('0x37')](_0x5ca56f['query']);_0x4a57c8['filters']=_[_0x479a('0x3b')](_0x4a57c8[_0x479a('0x36')],_0x4a57c8['query']);_0x2aa342[_0x479a('0x3c')]=_[_0x479a('0x3b')](_0x4a57c8[_0x479a('0x36')],qs[_0x479a('0x3d')](_0x5ca56f[_0x479a('0x38')][_0x479a('0x3d')]));_0x2aa342['attributes']=_0x2aa342[_0x479a('0x3c')][_0x479a('0x3e')]?_0x2aa342[_0x479a('0x3c')]:_0x4a57c8[_0x479a('0x36')];_0x2aa342[_0x479a('0x40')]=qs[_0x479a('0x55')](_0x5ca56f[_0x479a('0x38')][_0x479a('0x55')]);_0x2aa342[_0x479a('0x41')]=qs['filters'](_[_0x479a('0x43')](_0x5ca56f[_0x479a('0x38')],_0x4a57c8[_0x479a('0x42')]));if(_0x5ca56f[_0x479a('0x38')][_0x479a('0x47')]){_0x2aa342[_0x479a('0x41')]=_[_0x479a('0x46')](_0x2aa342[_0x479a('0x41')],{'$or':_[_0x479a('0x48')](_0x2aa342['attributes'],function(_0x14aafc){var _0x4dd162={};_0x4dd162[_0x14aafc]={'$like':'%'+_0x5ca56f[_0x479a('0x38')][_0x479a('0x47')]+'%'};return _0x4dd162;})});}_0x2aa342=_['merge']({},_0x2aa342,_0x5ca56f[_0x479a('0x56')]);return _0x772cc3[_0x479a('0x5a')](_0x2aa342);}})['then'](function(_0x3b93a1){if(_0x3b93a1){_0x135313=_0x3b93a1[_0x479a('0x3e')];if(!_0x5ca56f[_0x479a('0x38')][_0x479a('0x57')]('nolimit')){_0x2aa342[_0x479a('0x2a')]=qs[_0x479a('0x2a')](_0x5ca56f[_0x479a('0x38')][_0x479a('0x2a')]);_0x2aa342[_0x479a('0x29')]=qs[_0x479a('0x29')](_0x5ca56f[_0x479a('0x38')][_0x479a('0x29')]);}return _0x772cc3[_0x479a('0x5a')](_0x2aa342);}})[_0x479a('0x1b')](function(_0x15fe94){if(_0x15fe94){return _0x15fe94?{'count':_0x135313,'rows':_0x15fe94}:null;}})['then'](respondWithResult(_0x2c1d36,null))[_0x479a('0x24')](handleError(_0x2c1d36,null));};exports[_0x479a('0x5b')]=function(_0x1e884d,_0x2cefe0,_0x40eec0){var _0x35eeaf={};var _0x2c2644={};var _0x4ee9a6;var _0x1a9c88;return db[_0x479a('0x49')]['findOne']({'where':{'id':_0x1e884d[_0x479a('0x4f')]['id']}})[_0x479a('0x1b')](handleEntityNotFound(_0x2cefe0,null))[_0x479a('0x1b')](function(_0x2dab41){if(_0x2dab41){_0x4ee9a6=_0x2dab41;_0x2c2644[_0x479a('0x36')]=_['keys'](db[_0x479a('0x5c')][_0x479a('0x35')]);_0x2c2644[_0x479a('0x38')]=_['keys'](_0x1e884d[_0x479a('0x38')]);_0x2c2644[_0x479a('0x42')]=_['intersection'](_0x2c2644[_0x479a('0x36')],_0x2c2644['query']);_0x35eeaf['attributes']=_['intersection'](_0x2c2644[_0x479a('0x36')],qs[_0x479a('0x3d')](_0x1e884d['query']['fields']));_0x35eeaf[_0x479a('0x3c')]=_0x35eeaf[_0x479a('0x3c')][_0x479a('0x3e')]?_0x35eeaf['attributes']:_0x2c2644[_0x479a('0x36')];_0x35eeaf['order']=qs[_0x479a('0x55')](_0x1e884d['query'][_0x479a('0x55')]);_0x35eeaf[_0x479a('0x41')]=qs['filters'](_[_0x479a('0x43')](_0x1e884d[_0x479a('0x38')],_0x2c2644['filters']));if(_0x1e884d['query'][_0x479a('0x47')]){_0x35eeaf[_0x479a('0x41')]=_[_0x479a('0x46')](_0x35eeaf[_0x479a('0x41')],{'$or':_[_0x479a('0x48')](_0x35eeaf[_0x479a('0x3c')],function(_0x42a5b6){var _0x583bf0={};_0x583bf0[_0x42a5b6]={'$like':'%'+_0x1e884d['query'][_0x479a('0x47')]+'%'};return _0x583bf0;})});}_0x35eeaf=_['merge']({},_0x35eeaf,_0x1e884d['options']);return _0x4ee9a6[_0x479a('0x5b')](_0x35eeaf);}})[_0x479a('0x1b')](function(_0x5b556b){if(_0x5b556b){_0x1a9c88=_0x5b556b['length'];if(!_0x1e884d[_0x479a('0x38')][_0x479a('0x57')](_0x479a('0x3f'))){_0x35eeaf['limit']=qs[_0x479a('0x2a')](_0x1e884d[_0x479a('0x38')]['limit']);_0x35eeaf[_0x479a('0x29')]=qs['offset'](_0x1e884d[_0x479a('0x38')][_0x479a('0x29')]);}return _0x4ee9a6[_0x479a('0x5b')](_0x35eeaf);}})[_0x479a('0x1b')](function(_0xdf8676){if(_0xdf8676){return _0xdf8676?{'count':_0x1a9c88,'rows':_0xdf8676}:null;}})[_0x479a('0x1b')](respondWithResult(_0x2cefe0,null))['catch'](handleError(_0x2cefe0,null));};exports['setTags']=function(_0x2d0678,_0x4fa5ec,_0x5d97f2){if(_0x2d0678[_0x479a('0x51')]['id']){delete _0x2d0678[_0x479a('0x51')]['id'];}return db[_0x479a('0x49')]['findOne']({'where':{'id':_0x2d0678[_0x479a('0x4f')]['id']}})[_0x479a('0x1b')](handleEntityNotFound(_0x4fa5ec,null))['then'](function(_0x3a1f47){if(_0x3a1f47){return _0x3a1f47[_0x479a('0x5d')](_0x2d0678[_0x479a('0x51')]['ids']||[]);}return null;})[_0x479a('0x1b')](respondWithResult(_0x4fa5ec,null))[_0x479a('0x24')](handleError(_0x4fa5ec,null));};
\ No newline at end of file
+var _0x7a54=['bluebird','mustache','util','path','sox','ejs','squel','crypto','desk.js','ioredis','../../components/parsers/qs','api','../../mysqldb','jayson/promise','client','http','request','then','info','ZendeskConfiguration,\x20%s,\x20%s','debug','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','sendStatus','stack','name','send','rawAttributes','keys','query','dateStart','dateEnd','filters','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','day','add','filter','merge','map','options','ZendeskConfiguration','includeAll','findAll','rows','show','params','intersection','length','include','find','create','body','findOne','ZendeskField','getFields','getSubjects','getDescriptions','Tag','getTags','ids','html-pdf','eml-format','rimraf','fast-json-patch','request-promise'];(function(_0x134ffd,_0x88958){var _0x5ed20f=function(_0x28d43f){while(--_0x28d43f){_0x134ffd['push'](_0x134ffd['shift']());}};_0x5ed20f(++_0x88958);}(_0x7a54,0x106));var _0x47a5=function(_0x6f6ad2,_0x1e697a){_0x6f6ad2=_0x6f6ad2-0x0;var _0x300020=_0x7a54[_0x6f6ad2];return _0x300020;};'use strict';var pdf=require(_0x47a5('0x0'));var emlformat=require(_0x47a5('0x1'));var rimraf=require(_0x47a5('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x47a5('0x3'));var rp=require(_0x47a5('0x4'));var moment=require('moment');var BPromise=require(_0x47a5('0x5'));var Mustache=require(_0x47a5('0x6'));var util=require(_0x47a5('0x7'));var path=require(_0x47a5('0x8'));var sox=require(_0x47a5('0x9'));var csv=require('to-csv');var ejs=require(_0x47a5('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var qs=require(_0x47a5('0xf'));var logger=require('../../config/logger')(_0x47a5('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x47a5('0x11'))['db'];var jayson=require(_0x47a5('0x12'));var client=jayson[_0x47a5('0x13')][_0x47a5('0x14')]({'port':0x232a});function respondWithRpcPromise(_0xd612dd,_0xd308b8,_0x1eae59,_0x5beb89){return new BPromise(function(_0x44bd3e,_0x221b54){var _0x1cf309=_0x5beb89||client;return _0x1cf309[_0x47a5('0x15')](_0xd612dd,_0x1eae59)[_0x47a5('0x16')](function(_0x620ee9){logger[_0x47a5('0x17')](_0x47a5('0x18'),_0xd308b8,'request\x20sent');logger[_0x47a5('0x19')](_0x47a5('0x1a'),_0xd308b8,_0x47a5('0x1b'),JSON[_0x47a5('0x1c')](_0x620ee9));if(_0x620ee9[_0x47a5('0x1d')]){if(_0x620ee9['error']['code']===0x1f4){logger[_0x47a5('0x1d')]('ZendeskConfiguration,\x20%s,\x20%s',_0xd308b8,_0x620ee9['error'][_0x47a5('0x1e')]);return _0x221b54(_0x620ee9[_0x47a5('0x1d')][_0x47a5('0x1e')]);}logger[_0x47a5('0x1d')](_0x47a5('0x18'),_0xd308b8,_0x620ee9[_0x47a5('0x1d')][_0x47a5('0x1e')]);return _0x44bd3e(_0x620ee9[_0x47a5('0x1d')][_0x47a5('0x1e')]);}else{logger['info'](_0x47a5('0x18'),_0xd308b8,_0x47a5('0x1b'));_0x44bd3e(_0x620ee9['result'][_0x47a5('0x1e')]);}})[_0x47a5('0x1f')](function(_0x36874d){logger['error'](_0x47a5('0x18'),_0xd308b8,_0x36874d);_0x221b54(_0x36874d);});});}function respondWithStatusCode(_0x2f142b,_0x23db32){_0x23db32=_0x23db32||0xcc;return function(_0x7a9f9e){if(_0x7a9f9e){return _0x2f142b['sendStatus'](_0x23db32);}return _0x2f142b[_0x47a5('0x20')](_0x23db32)[_0x47a5('0x21')]();};}function respondWithResult(_0x513981,_0x28747d){_0x28747d=_0x28747d||0xc8;return function(_0xc4cd63){if(_0xc4cd63){return _0x513981[_0x47a5('0x20')](_0x28747d)[_0x47a5('0x22')](_0xc4cd63);}};}function respondWithFilteredResult(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(_0x53078a){var _0x136745=_0x53078a[_0x47a5('0x23')],_0x5686db=_0x50bf17[_0x47a5('0x24')],_0x1ea9c8=_0x50bf17[_0x47a5('0x24')]+_0x50bf17[_0x47a5('0x25')],_0x5b6c4e;if(_0x1ea9c8>=_0x136745){_0x1ea9c8=_0x136745;_0x5b6c4e=0xc8;}else{_0x5b6c4e=0xce;}_0x3abd6a[_0x47a5('0x20')](_0x5b6c4e);return _0x3abd6a[_0x47a5('0x26')](_0x47a5('0x27'),_0x5686db+'-'+_0x1ea9c8+'/'+_0x136745)[_0x47a5('0x22')](_0x53078a);}return null;};}function patchUpdates(_0x16631f){return function(_0x361bfa){try{jsonpatch[_0x47a5('0x28')](_0x361bfa,_0x16631f,!![]);}catch(_0x11a4fa){return BPromise[_0x47a5('0x29')](_0x11a4fa);}return _0x361bfa['save']();};}function saveUpdates(_0x243210,_0x51833b){return function(_0x2ef875){if(_0x2ef875){return _0x2ef875[_0x47a5('0x2a')](_0x243210)[_0x47a5('0x16')](function(_0x4d6b57){return _0x4d6b57;});}return null;};}function removeEntity(_0x256650,_0x625952){return function(_0x39b50b){if(_0x39b50b){return _0x39b50b[_0x47a5('0x2b')]()['then'](function(){_0x256650['status'](0xcc)[_0x47a5('0x21')]();});}};}function handleEntityNotFound(_0xfb5ddb,_0x5bd7eb){return function(_0x4e1006){if(!_0x4e1006){_0xfb5ddb[_0x47a5('0x2c')](0x194);}return _0x4e1006;};}function handleError(_0x51544e,_0x57bff6){_0x57bff6=_0x57bff6||0x1f4;return function(_0x42f70c){logger['error'](_0x42f70c[_0x47a5('0x2d')]);if(_0x42f70c[_0x47a5('0x2e')]){delete _0x42f70c['name'];}_0x51544e['status'](_0x57bff6)[_0x47a5('0x2f')](_0x42f70c);};}exports['index']=function(_0x403028,_0x87e4c9){var _0xf269a8={},_0x52749b={},_0x18f7e9={'count':0x0,'rows':[]};var _0x50c086=db['ZendeskConfiguration'][_0x47a5('0x30')];_0x52749b['model']=_[_0x47a5('0x31')](_0x50c086);var _0x5ef577={'dateStart':_0x403028[_0x47a5('0x32')][_0x47a5('0x33')],'dateEnd':_0x403028[_0x47a5('0x32')][_0x47a5('0x34')]};delete _0x403028[_0x47a5('0x32')][_0x47a5('0x33')];delete _0x403028[_0x47a5('0x32')][_0x47a5('0x34')];_0x52749b[_0x47a5('0x32')]=_['keys'](_0x403028[_0x47a5('0x32')]);_0x52749b[_0x47a5('0x35')]=_['intersection'](_0x52749b[_0x47a5('0x36')],_0x52749b[_0x47a5('0x32')]);_0xf269a8[_0x47a5('0x37')]=_['intersection'](_0x52749b[_0x47a5('0x36')],qs[_0x47a5('0x38')](_0x403028['query'][_0x47a5('0x38')]));_0xf269a8[_0x47a5('0x37')]=_0xf269a8['attributes']['length']?_0xf269a8['attributes']:_0x52749b[_0x47a5('0x36')];if(!_0x403028['query'][_0x47a5('0x39')](_0x47a5('0x3a'))){_0xf269a8[_0x47a5('0x25')]=qs[_0x47a5('0x25')](_0x403028[_0x47a5('0x32')][_0x47a5('0x25')]);_0xf269a8[_0x47a5('0x24')]=qs[_0x47a5('0x24')](_0x403028[_0x47a5('0x32')][_0x47a5('0x24')]);}_0xf269a8[_0x47a5('0x3b')]=qs[_0x47a5('0x3c')](_0x403028[_0x47a5('0x32')]['sort']);_0xf269a8[_0x47a5('0x3d')]=qs[_0x47a5('0x35')](_[_0x47a5('0x3e')](_0x403028[_0x47a5('0x32')],_0x52749b['filters']));if(_0x5ef577[_0x47a5('0x33')]){if(_0x5ef577['dateEnd']){_0x5ef577['dateEnd']=moment(_0x5ef577['dateEnd'])['add'](0x1,_0x47a5('0x3f'));}else{_0x5ef577['dateEnd']=moment(_0x5ef577[_0x47a5('0x33')])[_0x47a5('0x40')](0x1,_0x47a5('0x3f'));}_['merge'](_0xf269a8[_0x47a5('0x3d')],{'createdAt':{'$gte':_0x5ef577[_0x47a5('0x33')],'$lte':_0x5ef577['dateEnd']}});}if(_0x403028['query'][_0x47a5('0x41')]){_0xf269a8['where']=_[_0x47a5('0x42')](_0xf269a8[_0x47a5('0x3d')],{'$or':_[_0x47a5('0x43')](_0xf269a8[_0x47a5('0x37')],function(_0x34a9ae){var _0xf0edbb={};_0xf0edbb[_0x34a9ae]={'$like':'%'+_0x403028[_0x47a5('0x32')][_0x47a5('0x41')]+'%'};return _0xf0edbb;})});}_0xf269a8=_[_0x47a5('0x42')]({},_0xf269a8,_0x403028[_0x47a5('0x44')]);var _0x24ecb1={'where':_0xf269a8[_0x47a5('0x3d')]};return db[_0x47a5('0x45')][_0x47a5('0x23')](_0x24ecb1)[_0x47a5('0x16')](function(_0x3a2b38){_0x18f7e9['count']=_0x3a2b38;if(_0x403028[_0x47a5('0x32')][_0x47a5('0x46')]){_0xf269a8['include']=[{'all':!![]}];}return db['ZendeskConfiguration'][_0x47a5('0x47')](_0xf269a8);})['then'](function(_0x13750d){_0x18f7e9[_0x47a5('0x48')]=_0x13750d;return _0x18f7e9;})['then'](respondWithFilteredResult(_0x87e4c9,_0xf269a8))['catch'](handleError(_0x87e4c9,null));};exports[_0x47a5('0x49')]=function(_0x52d409,_0x2d147c){var _0x1d1039={'raw':![],'where':{'id':_0x52d409[_0x47a5('0x4a')]['id']}},_0x3548bc={};_0x3548bc[_0x47a5('0x36')]=_[_0x47a5('0x31')](db[_0x47a5('0x45')]['rawAttributes']);_0x3548bc['query']=_[_0x47a5('0x31')](_0x52d409[_0x47a5('0x32')]);_0x3548bc[_0x47a5('0x35')]=_[_0x47a5('0x4b')](_0x3548bc[_0x47a5('0x36')],_0x3548bc[_0x47a5('0x32')]);_0x1d1039[_0x47a5('0x37')]=_['intersection'](_0x3548bc[_0x47a5('0x36')],qs[_0x47a5('0x38')](_0x52d409[_0x47a5('0x32')]['fields']));_0x1d1039[_0x47a5('0x37')]=_0x1d1039['attributes'][_0x47a5('0x4c')]?_0x1d1039[_0x47a5('0x37')]:_0x3548bc[_0x47a5('0x36')];if(_0x52d409[_0x47a5('0x32')]['includeAll']){_0x1d1039[_0x47a5('0x4d')]=[{'all':!![]}];}_0x1d1039=_[_0x47a5('0x42')]({},_0x1d1039,_0x52d409[_0x47a5('0x44')]);return db[_0x47a5('0x45')][_0x47a5('0x4e')](_0x1d1039)[_0x47a5('0x16')](handleEntityNotFound(_0x2d147c,null))[_0x47a5('0x16')](respondWithResult(_0x2d147c,null))['catch'](handleError(_0x2d147c,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e){return db[_0x47a5('0x45')][_0x47a5('0x4f')](_0x43721b[_0x47a5('0x50')],{})['then'](respondWithResult(_0x187d7e,0xc9))[_0x47a5('0x1f')](handleError(_0x187d7e,null));};exports[_0x47a5('0x2a')]=function(_0x1aa581,_0x53871e){if(_0x1aa581[_0x47a5('0x50')]['id']){delete _0x1aa581[_0x47a5('0x50')]['id'];}return db[_0x47a5('0x45')]['find']({'where':{'id':_0x1aa581['params']['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x53871e,null))[_0x47a5('0x16')](saveUpdates(_0x1aa581['body'],null))['then'](respondWithResult(_0x53871e,null))[_0x47a5('0x1f')](handleError(_0x53871e,null));};exports['destroy']=function(_0x16bb8a,_0x5d383d){return db['ZendeskConfiguration'][_0x47a5('0x4e')]({'where':{'id':_0x16bb8a[_0x47a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5d383d,null))[_0x47a5('0x16')](removeEntity(_0x5d383d,null))[_0x47a5('0x1f')](handleError(_0x5d383d,null));};exports['getFields']=function(_0x5b6127,_0x16b4fd,_0x30d482){var _0x867da0={};var _0x2931e4={};var _0x5996c4;var _0x199621;return db[_0x47a5('0x45')][_0x47a5('0x51')]({'where':{'id':_0x5b6127['params']['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x16b4fd,null))['then'](function(_0x485e3c){if(_0x485e3c){_0x5996c4=_0x485e3c;_0x2931e4[_0x47a5('0x36')]=_[_0x47a5('0x31')](db[_0x47a5('0x52')][_0x47a5('0x30')]);_0x2931e4['query']=_[_0x47a5('0x31')](_0x5b6127['query']);_0x2931e4['filters']=_['intersection'](_0x2931e4['model'],_0x2931e4[_0x47a5('0x32')]);_0x867da0[_0x47a5('0x37')]=_[_0x47a5('0x4b')](_0x2931e4['model'],qs['fields'](_0x5b6127[_0x47a5('0x32')][_0x47a5('0x38')]));_0x867da0[_0x47a5('0x37')]=_0x867da0[_0x47a5('0x37')][_0x47a5('0x4c')]?_0x867da0['attributes']:_0x2931e4[_0x47a5('0x36')];_0x867da0['order']=qs[_0x47a5('0x3c')](_0x5b6127[_0x47a5('0x32')]['sort']);_0x867da0[_0x47a5('0x3d')]=qs[_0x47a5('0x35')](_[_0x47a5('0x3e')](_0x5b6127[_0x47a5('0x32')],_0x2931e4[_0x47a5('0x35')]));if(_0x5b6127[_0x47a5('0x32')][_0x47a5('0x41')]){_0x867da0[_0x47a5('0x3d')]=_['merge'](_0x867da0[_0x47a5('0x3d')],{'$or':_[_0x47a5('0x43')](_0x867da0[_0x47a5('0x37')],function(_0x26e7fc){var _0x396cb0={};_0x396cb0[_0x26e7fc]={'$like':'%'+_0x5b6127['query'][_0x47a5('0x41')]+'%'};return _0x396cb0;})});}_0x867da0=_[_0x47a5('0x42')]({},_0x867da0,_0x5b6127[_0x47a5('0x44')]);return _0x5996c4[_0x47a5('0x53')](_0x867da0);}})[_0x47a5('0x16')](function(_0x168329){if(_0x168329){_0x199621=_0x168329[_0x47a5('0x4c')];if(!_0x5b6127[_0x47a5('0x32')][_0x47a5('0x39')](_0x47a5('0x3a'))){_0x867da0[_0x47a5('0x25')]=qs[_0x47a5('0x25')](_0x5b6127[_0x47a5('0x32')][_0x47a5('0x25')]);_0x867da0[_0x47a5('0x24')]=qs['offset'](_0x5b6127[_0x47a5('0x32')][_0x47a5('0x24')]);}return _0x5996c4[_0x47a5('0x53')](_0x867da0);}})['then'](function(_0x37ac59){if(_0x37ac59){return _0x37ac59?{'count':_0x199621,'rows':_0x37ac59}:null;}})[_0x47a5('0x16')](respondWithResult(_0x16b4fd,null))[_0x47a5('0x1f')](handleError(_0x16b4fd,null));};exports[_0x47a5('0x54')]=function(_0x5d9822,_0x3ac402,_0x522ccf){var _0x2d5ee6={};var _0x487e21={};var _0x43f649;var _0x4cf7c5;return db[_0x47a5('0x45')][_0x47a5('0x51')]({'where':{'id':_0x5d9822[_0x47a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3ac402,null))['then'](function(_0x4b8084){if(_0x4b8084){_0x43f649=_0x4b8084;_0x487e21[_0x47a5('0x36')]=_[_0x47a5('0x31')](db[_0x47a5('0x52')][_0x47a5('0x30')]);_0x487e21['query']=_[_0x47a5('0x31')](_0x5d9822[_0x47a5('0x32')]);_0x487e21[_0x47a5('0x35')]=_[_0x47a5('0x4b')](_0x487e21[_0x47a5('0x36')],_0x487e21[_0x47a5('0x32')]);_0x2d5ee6[_0x47a5('0x37')]=_[_0x47a5('0x4b')](_0x487e21[_0x47a5('0x36')],qs[_0x47a5('0x38')](_0x5d9822[_0x47a5('0x32')][_0x47a5('0x38')]));_0x2d5ee6['attributes']=_0x2d5ee6[_0x47a5('0x37')]['length']?_0x2d5ee6[_0x47a5('0x37')]:_0x487e21[_0x47a5('0x36')];_0x2d5ee6[_0x47a5('0x3b')]=qs[_0x47a5('0x3c')](_0x5d9822[_0x47a5('0x32')][_0x47a5('0x3c')]);_0x2d5ee6[_0x47a5('0x3d')]=qs[_0x47a5('0x35')](_[_0x47a5('0x3e')](_0x5d9822[_0x47a5('0x32')],_0x487e21[_0x47a5('0x35')]));if(_0x5d9822[_0x47a5('0x32')][_0x47a5('0x41')]){_0x2d5ee6[_0x47a5('0x3d')]=_[_0x47a5('0x42')](_0x2d5ee6['where'],{'$or':_['map'](_0x2d5ee6['attributes'],function(_0x4d09a4){var _0x490e28={};_0x490e28[_0x4d09a4]={'$like':'%'+_0x5d9822[_0x47a5('0x32')]['filter']+'%'};return _0x490e28;})});}_0x2d5ee6=_[_0x47a5('0x42')]({},_0x2d5ee6,_0x5d9822[_0x47a5('0x44')]);return _0x43f649[_0x47a5('0x54')](_0x2d5ee6);}})[_0x47a5('0x16')](function(_0x3cd335){if(_0x3cd335){_0x4cf7c5=_0x3cd335[_0x47a5('0x4c')];if(!_0x5d9822[_0x47a5('0x32')][_0x47a5('0x39')](_0x47a5('0x3a'))){_0x2d5ee6[_0x47a5('0x25')]=qs[_0x47a5('0x25')](_0x5d9822['query'][_0x47a5('0x25')]);_0x2d5ee6[_0x47a5('0x24')]=qs[_0x47a5('0x24')](_0x5d9822['query'][_0x47a5('0x24')]);}return _0x43f649[_0x47a5('0x54')](_0x2d5ee6);}})[_0x47a5('0x16')](function(_0x5d41d8){if(_0x5d41d8){return _0x5d41d8?{'count':_0x4cf7c5,'rows':_0x5d41d8}:null;}})[_0x47a5('0x16')](respondWithResult(_0x3ac402,null))['catch'](handleError(_0x3ac402,null));};exports['getDescriptions']=function(_0x356e16,_0x292d9c,_0x277486){var _0x27333e={};var _0x164d42={};var _0xea50f3;var _0x479a82;return db['ZendeskConfiguration'][_0x47a5('0x51')]({'where':{'id':_0x356e16['params']['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x292d9c,null))[_0x47a5('0x16')](function(_0x175dab){if(_0x175dab){_0xea50f3=_0x175dab;_0x164d42[_0x47a5('0x36')]=_['keys'](db[_0x47a5('0x52')]['rawAttributes']);_0x164d42['query']=_[_0x47a5('0x31')](_0x356e16[_0x47a5('0x32')]);_0x164d42['filters']=_[_0x47a5('0x4b')](_0x164d42[_0x47a5('0x36')],_0x164d42[_0x47a5('0x32')]);_0x27333e['attributes']=_[_0x47a5('0x4b')](_0x164d42['model'],qs[_0x47a5('0x38')](_0x356e16[_0x47a5('0x32')][_0x47a5('0x38')]));_0x27333e['attributes']=_0x27333e[_0x47a5('0x37')][_0x47a5('0x4c')]?_0x27333e[_0x47a5('0x37')]:_0x164d42['model'];_0x27333e[_0x47a5('0x3b')]=qs['sort'](_0x356e16[_0x47a5('0x32')]['sort']);_0x27333e[_0x47a5('0x3d')]=qs[_0x47a5('0x35')](_[_0x47a5('0x3e')](_0x356e16[_0x47a5('0x32')],_0x164d42['filters']));if(_0x356e16[_0x47a5('0x32')][_0x47a5('0x41')]){_0x27333e[_0x47a5('0x3d')]=_[_0x47a5('0x42')](_0x27333e[_0x47a5('0x3d')],{'$or':_['map'](_0x27333e['attributes'],function(_0x569550){var _0x4ab01f={};_0x4ab01f[_0x569550]={'$like':'%'+_0x356e16[_0x47a5('0x32')][_0x47a5('0x41')]+'%'};return _0x4ab01f;})});}_0x27333e=_[_0x47a5('0x42')]({},_0x27333e,_0x356e16['options']);return _0xea50f3[_0x47a5('0x55')](_0x27333e);}})[_0x47a5('0x16')](function(_0x565fbe){if(_0x565fbe){_0x479a82=_0x565fbe[_0x47a5('0x4c')];if(!_0x356e16[_0x47a5('0x32')][_0x47a5('0x39')](_0x47a5('0x3a'))){_0x27333e['limit']=qs['limit'](_0x356e16[_0x47a5('0x32')][_0x47a5('0x25')]);_0x27333e['offset']=qs[_0x47a5('0x24')](_0x356e16[_0x47a5('0x32')]['offset']);}return _0xea50f3[_0x47a5('0x55')](_0x27333e);}})[_0x47a5('0x16')](function(_0x2930d9){if(_0x2930d9){return _0x2930d9?{'count':_0x479a82,'rows':_0x2930d9}:null;}})['then'](respondWithResult(_0x292d9c,null))[_0x47a5('0x1f')](handleError(_0x292d9c,null));};exports['getTags']=function(_0x663778,_0x5e2946,_0x243c8b){var _0x3c620e={};var _0x4995be={};var _0x35d9f0;var _0x597cb2;return db[_0x47a5('0x45')][_0x47a5('0x51')]({'where':{'id':_0x663778[_0x47a5('0x4a')]['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x5e2946,null))['then'](function(_0x3eb5c1){if(_0x3eb5c1){_0x35d9f0=_0x3eb5c1;_0x4995be['model']=_['keys'](db[_0x47a5('0x56')][_0x47a5('0x30')]);_0x4995be[_0x47a5('0x32')]=_[_0x47a5('0x31')](_0x663778[_0x47a5('0x32')]);_0x4995be['filters']=_[_0x47a5('0x4b')](_0x4995be[_0x47a5('0x36')],_0x4995be[_0x47a5('0x32')]);_0x3c620e[_0x47a5('0x37')]=_['intersection'](_0x4995be[_0x47a5('0x36')],qs['fields'](_0x663778[_0x47a5('0x32')][_0x47a5('0x38')]));_0x3c620e[_0x47a5('0x37')]=_0x3c620e[_0x47a5('0x37')][_0x47a5('0x4c')]?_0x3c620e[_0x47a5('0x37')]:_0x4995be[_0x47a5('0x36')];_0x3c620e[_0x47a5('0x3b')]=qs[_0x47a5('0x3c')](_0x663778['query'][_0x47a5('0x3c')]);_0x3c620e[_0x47a5('0x3d')]=qs['filters'](_[_0x47a5('0x3e')](_0x663778[_0x47a5('0x32')],_0x4995be[_0x47a5('0x35')]));if(_0x663778['query']['filter']){_0x3c620e[_0x47a5('0x3d')]=_[_0x47a5('0x42')](_0x3c620e['where'],{'$or':_['map'](_0x3c620e[_0x47a5('0x37')],function(_0x17f82d){var _0x54eab1={};_0x54eab1[_0x17f82d]={'$like':'%'+_0x663778[_0x47a5('0x32')][_0x47a5('0x41')]+'%'};return _0x54eab1;})});}_0x3c620e=_['merge']({},_0x3c620e,_0x663778[_0x47a5('0x44')]);return _0x35d9f0[_0x47a5('0x57')](_0x3c620e);}})[_0x47a5('0x16')](function(_0x70c8a6){if(_0x70c8a6){_0x597cb2=_0x70c8a6[_0x47a5('0x4c')];if(!_0x663778[_0x47a5('0x32')]['hasOwnProperty']('nolimit')){_0x3c620e['limit']=qs[_0x47a5('0x25')](_0x663778[_0x47a5('0x32')]['limit']);_0x3c620e[_0x47a5('0x24')]=qs[_0x47a5('0x24')](_0x663778[_0x47a5('0x32')][_0x47a5('0x24')]);}return _0x35d9f0[_0x47a5('0x57')](_0x3c620e);}})['then'](function(_0x3e7750){if(_0x3e7750){return _0x3e7750?{'count':_0x597cb2,'rows':_0x3e7750}:null;}})['then'](respondWithResult(_0x5e2946,null))['catch'](handleError(_0x5e2946,null));};exports['setTags']=function(_0x21cb5f,_0x4d23c8,_0xe5fbf8){if(_0x21cb5f[_0x47a5('0x50')]['id']){delete _0x21cb5f[_0x47a5('0x50')]['id'];}return db['ZendeskConfiguration'][_0x47a5('0x51')]({'where':{'id':_0x21cb5f[_0x47a5('0x4a')]['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x4d23c8,null))[_0x47a5('0x16')](function(_0x392ad7){if(_0x392ad7){return _0x392ad7['setTags'](_0x21cb5f[_0x47a5('0x50')][_0x47a5('0x58')]||[]);}return null;})['then'](respondWithResult(_0x4d23c8,null))[_0x47a5('0x1f')](handleError(_0x4d23c8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x879a=['define','ZendeskConfiguration','int_zendesk_configurations','lodash','util','moment','bluebird','request-promise','./intZendeskConfiguration.attributes','exports'];(function(_0x4ed17e,_0x47eec6){var _0x21936e=function(_0x57443d){while(--_0x57443d){_0x4ed17e['push'](_0x4ed17e['shift']());}};_0x21936e(++_0x47eec6);}(_0x879a,0xb7));var _0xa879=function(_0x38b132,_0x2929b1){_0x38b132=_0x38b132-0x0;var _0x151445=_0x879a[_0x38b132];return _0x151445;};'use strict';var _=require(_0xa879('0x0'));var util=require(_0xa879('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xa879('0x2'));var BPromise=require(_0xa879('0x3'));var rp=require(_0xa879('0x4'));var attributes=require(_0xa879('0x5'));module[_0xa879('0x6')]=function(_0x5b45d7,_0x18de7e){return _0x5b45d7[_0xa879('0x7')](_0xa879('0x8'),attributes,{'tableName':_0xa879('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3174=['int_zendesk_configurations','lodash','util','api','moment','bluebird','request-promise','./intZendeskConfiguration.attributes','exports','define'];(function(_0x2a9687,_0x3ac0e5){var _0xec5f71=function(_0x12301b){while(--_0x12301b){_0x2a9687['push'](_0x2a9687['shift']());}};_0xec5f71(++_0x3ac0e5);}(_0x3174,0x187));var _0x4317=function(_0x1e514b,_0x349691){_0x1e514b=_0x1e514b-0x0;var _0x129273=_0x3174[_0x1e514b];return _0x129273;};'use strict';var _=require(_0x4317('0x0'));var util=require(_0x4317('0x1'));var logger=require('../../config/logger')(_0x4317('0x2'));var moment=require(_0x4317('0x3'));var BPromise=require(_0x4317('0x4'));var rp=require(_0x4317('0x5'));var attributes=require(_0x4317('0x6'));module[_0x4317('0x7')]=function(_0x1306a1,_0x131a57){return _0x1306a1[_0x4317('0x8')]('ZendeskConfiguration',attributes,{'tableName':_0x4317('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd643=['../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ZendeskConfiguration,\x20%s,\x20%s','result','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x14f656,_0x54d547){var _0x309951=function(_0x153462){while(--_0x153462){_0x14f656['push'](_0x14f656['shift']());}};_0x309951(++_0x54d547);}(_0xd643,0x93));var _0x3d64=function(_0x3ca55b,_0x2426aa){_0x3ca55b=_0x3ca55b-0x0;var _0x8adeb6=_0xd643[_0x3ca55b];return _0x8adeb6;};'use strict';var _=require('lodash');var util=require(_0x3d64('0x0'));var moment=require(_0x3d64('0x1'));var BPromise=require('bluebird');var rs=require(_0x3d64('0x2'));var fs=require('fs');var db=require(_0x3d64('0x3'))['db'];var utils=require(_0x3d64('0x4'));var logger=require(_0x3d64('0x5'))(_0x3d64('0x6'));var config=require(_0x3d64('0x7'));var jayson=require(_0x3d64('0x8'));var client=jayson[_0x3d64('0x9')][_0x3d64('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x298ea5,_0x212ccf,_0xb4ac4d){return new BPromise(function(_0xbdc586,_0x3d54ed){return client[_0x3d64('0xb')](_0x298ea5,_0xb4ac4d)[_0x3d64('0xc')](function(_0x47a1d3){logger[_0x3d64('0xd')]('ZendeskConfiguration,\x20%s,\x20%s',_0x212ccf,_0x3d64('0xe'));logger['debug'](_0x3d64('0xf'),_0x212ccf,_0x3d64('0xe'),JSON[_0x3d64('0x10')](_0x47a1d3));if(_0x47a1d3[_0x3d64('0x11')]){if(_0x47a1d3[_0x3d64('0x11')][_0x3d64('0x12')]===0x1f4){logger[_0x3d64('0x11')]('ZendeskConfiguration,\x20%s,\x20%s',_0x212ccf,_0x47a1d3[_0x3d64('0x11')][_0x3d64('0x13')]);return _0x3d54ed(_0x47a1d3['error'][_0x3d64('0x13')]);}logger[_0x3d64('0x11')](_0x3d64('0x14'),_0x212ccf,_0x47a1d3[_0x3d64('0x11')][_0x3d64('0x13')]);return _0xbdc586(_0x47a1d3[_0x3d64('0x11')][_0x3d64('0x13')]);}else{logger[_0x3d64('0xd')]('ZendeskConfiguration,\x20%s,\x20%s',_0x212ccf,'request\x20sent');_0xbdc586(_0x47a1d3[_0x3d64('0x15')]['message']);}})['catch'](function(_0x3211a5){logger['error'](_0x3d64('0x14'),_0x212ccf,_0x3211a5);_0x3d54ed(_0x3211a5);});});}
\ No newline at end of file
+var _0x0411=['randomstring','../../mysqldb','../../config/utils','rpc','http','request','ZendeskConfiguration,\x20%s,\x20%s','request\x20sent','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment'];(function(_0x421e36,_0x18776e){var _0x20b3e3=function(_0x767de4){while(--_0x767de4){_0x421e36['push'](_0x421e36['shift']());}};_0x20b3e3(++_0x18776e);}(_0x0411,0xc3));var _0x1041=function(_0x4a095e,_0x381cd5){_0x4a095e=_0x4a095e-0x0;var _0x10ef73=_0x0411[_0x4a095e];return _0x10ef73;};'use strict';var _=require(_0x1041('0x0'));var util=require(_0x1041('0x1'));var moment=require(_0x1041('0x2'));var BPromise=require('bluebird');var rs=require(_0x1041('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1041('0x4'))['db'];var utils=require(_0x1041('0x5'));var logger=require('../../config/logger')(_0x1041('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x1041('0x7')]({'port':0x232a});function respondWithRpcPromise(_0xdeb14c,_0x168ab6,_0x50b863){return new BPromise(function(_0x380ced,_0x2ceffa){return client[_0x1041('0x8')](_0xdeb14c,_0x50b863)['then'](function(_0x1d29f2){logger['info'](_0x1041('0x9'),_0x168ab6,_0x1041('0xa'));logger['debug'](_0x1041('0xb'),_0x168ab6,_0x1041('0xa'),JSON[_0x1041('0xc')](_0x1d29f2));if(_0x1d29f2[_0x1041('0xd')]){if(_0x1d29f2[_0x1041('0xd')][_0x1041('0xe')]===0x1f4){logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x168ab6,_0x1d29f2[_0x1041('0xd')][_0x1041('0xf')]);return _0x2ceffa(_0x1d29f2[_0x1041('0xd')][_0x1041('0xf')]);}logger[_0x1041('0xd')](_0x1041('0x9'),_0x168ab6,_0x1d29f2[_0x1041('0xd')]['message']);return _0x380ced(_0x1d29f2[_0x1041('0xd')][_0x1041('0xf')]);}else{logger['info']('ZendeskConfiguration,\x20%s,\x20%s',_0x168ab6,_0x1041('0xa'));_0x380ced(_0x1d29f2[_0x1041('0x10')][_0x1041('0xf')]);}})[_0x1041('0x11')](function(_0x108cc6){logger[_0x1041('0xd')](_0x1041('0x9'),_0x168ab6,_0x108cc6);_0x2ceffa(_0x108cc6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['/:id','update','delete','multer','util','path','Router','../../components/interaction/service','../../config/environment','./intZendeskField.controller','get','isAuthenticated'];(function(_0x21e19d,_0x3d1576){var _0x3772d8=function(_0x49240c){while(--_0x49240c){_0x21e19d['push'](_0x21e19d['shift']());}};_0x3772d8(++_0x3d1576);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9df060,_0x253d33){_0x9df060=_0x9df060-0x0;var _0x338dfe=_0xa9e0[_0x9df060];return _0x338dfe;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x0a9e('0x4'));var config=require(_0x0a9e('0x5'));var controller=require(_0x0a9e('0x6'));router[_0x0a9e('0x7')]('/',auth[_0x0a9e('0x8')](),controller['index']);router[_0x0a9e('0x7')](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller['show']);router['post']('/',auth[_0x0a9e('0x8')](),controller['create']);router['put'](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0xa')]);router[_0x0a9e('0xb')](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x9957=['../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','post','put','update','delete','exports','multer','util','path','connect-timeout','Router','../../components/auth/service'];(function(_0x3f1352,_0x306e22){var _0x208a15=function(_0x16f4fa){while(--_0x16f4fa){_0x3f1352['push'](_0x3f1352['shift']());}};_0x208a15(++_0x306e22);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var auth=require(_0x7995('0x5'));var interaction=require(_0x7995('0x6'));var config=require(_0x7995('0x7'));var controller=require('./intZendeskField.controller');router[_0x7995('0x8')]('/',auth[_0x7995('0x9')](),controller[_0x7995('0xa')]);router[_0x7995('0x8')](_0x7995('0xb'),auth[_0x7995('0x9')](),controller['show']);router[_0x7995('0xc')]('/',auth[_0x7995('0x9')](),controller['create']);router[_0x7995('0xd')](_0x7995('0xb'),auth[_0x7995('0x9')](),controller[_0x7995('0xe')]);router[_0x7995('0xf')](_0x7995('0xb'),auth[_0x7995('0x9')](),controller['destroy']);module[_0x7995('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x750a=['customVariable','keyValue','string','STRING','ENUM','exports','variable'];(function(_0x576b85,_0x12954a){var _0x27717c=function(_0x2a8a07){while(--_0x2a8a07){_0x576b85['push'](_0x576b85['shift']());}};_0x27717c(++_0x12954a);}(_0x750a,0x140));var _0xa750=function(_0x100560,_0x10ec86){_0x100560=_0x100560-0x0;var _0x232e71=_0x750a[_0x100560];return _0x232e71;};'use strict';var Sequelize=require('sequelize');module[_0xa750('0x0')]={'type':{'type':Sequelize['ENUM']('string',_0xa750('0x1'),_0xa750('0x2'),_0xa750('0x3')),'defaultValue':_0xa750('0x4')},'content':{'type':Sequelize[_0xa750('0x5')]},'key':{'type':Sequelize[_0xa750('0x5')]},'keyType':{'type':Sequelize[_0xa750('0x6')](_0xa750('0x4'),_0xa750('0x1'),_0xa750('0x2'))},'keyContent':{'type':Sequelize[_0xa750('0x5')]},'idField':{'type':Sequelize[_0xa750('0x5')]},'nameField':{'type':Sequelize[_0xa750('0x5')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xaa88=['exports','ENUM','string','customVariable','keyValue','STRING','BOOLEAN','sequelize'];(function(_0x28e55c,_0x4dad62){var _0x5ab3f0=function(_0x113530){while(--_0x113530){_0x28e55c['push'](_0x28e55c['shift']());}};_0x5ab3f0(++_0x4dad62);}(_0xaa88,0x137));var _0x8aa8=function(_0x4629ed,_0x59ef85){_0x4629ed=_0x4629ed-0x0;var _0x52ca04=_0xaa88[_0x4629ed];return _0x52ca04;};'use strict';var Sequelize=require(_0x8aa8('0x0'));module[_0x8aa8('0x1')]={'type':{'type':Sequelize[_0x8aa8('0x2')](_0x8aa8('0x3'),'variable',_0x8aa8('0x4'),_0x8aa8('0x5')),'defaultValue':_0x8aa8('0x3')},'content':{'type':Sequelize[_0x8aa8('0x6')]},'key':{'type':Sequelize[_0x8aa8('0x6')]},'keyType':{'type':Sequelize[_0x8aa8('0x2')]('string','variable',_0x8aa8('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x8aa8('0x6')]},'nameField':{'type':Sequelize[_0x8aa8('0x6')]},'customField':{'type':Sequelize[_0x8aa8('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x8aa8('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed9a=['count','offset','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','model','query','dateEnd','dateStart','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','add','merge','filter','map','ZendeskField','includeAll','findAll','rows','catch','rawAttributes','include','find','create','body','params','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/environment','../../mysqldb','sendStatus','status','json'];(function(_0x4b71ac,_0xe6bc04){var _0x2ab8c1=function(_0x37f67d){while(--_0x37f67d){_0x4b71ac['push'](_0x4b71ac['shift']());}};_0x2ab8c1(++_0xe6bc04);}(_0xed9a,0x1cb));var _0xaed9=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xed9a[_0x502c7d];return _0x30b7ed;};'use strict';var pdf=require(_0xaed9('0x0'));var emlformat=require(_0xaed9('0x1'));var rimraf=require(_0xaed9('0x2'));var zipdir=require(_0xaed9('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xaed9('0x4'));var moment=require('moment');var BPromise=require(_0xaed9('0x5'));var Mustache=require(_0xaed9('0x6'));var util=require(_0xaed9('0x7'));var path=require('path');var sox=require(_0xaed9('0x8'));var csv=require(_0xaed9('0x9'));var ejs=require(_0xaed9('0xa'));var fs=require('fs');var _=require(_0xaed9('0xb'));var squel=require(_0xaed9('0xc'));var crypto=require(_0xaed9('0xd'));var jsforce=require(_0xaed9('0xe'));var deskjs=require(_0xaed9('0xf'));var toCsv=require(_0xaed9('0x9'));var querystring=require(_0xaed9('0x10'));var Papa=require(_0xaed9('0x11'));var qs=require(_0xaed9('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xaed9('0x13'));var db=require(_0xaed9('0x14'))['db'];function respondWithStatusCode(_0x3b8dab,_0x1f5e21){_0x1f5e21=_0x1f5e21||0xcc;return function(_0x2c30b6){if(_0x2c30b6){return _0x3b8dab[_0xaed9('0x15')](_0x1f5e21);}return _0x3b8dab[_0xaed9('0x16')](_0x1f5e21)['end']();};}function respondWithResult(_0x203bd7,_0x38984e){_0x38984e=_0x38984e||0xc8;return function(_0x820a98){if(_0x820a98){return _0x203bd7[_0xaed9('0x16')](_0x38984e)[_0xaed9('0x17')](_0x820a98);}};}function respondWithFilteredResult(_0x30bc8d,_0xf1621c){return function(_0xc51898){if(_0xc51898){var _0x4da2c9=_0xc51898[_0xaed9('0x18')],_0x2938c5=_0xf1621c[_0xaed9('0x19')],_0x50f580=_0xf1621c[_0xaed9('0x19')]+_0xf1621c['limit'],_0x11063c;if(_0x50f580>=_0x4da2c9){_0x50f580=_0x4da2c9;_0x11063c=0xc8;}else{_0x11063c=0xce;}_0x30bc8d[_0xaed9('0x16')](_0x11063c);return _0x30bc8d[_0xaed9('0x1a')](_0xaed9('0x1b'),_0x2938c5+'-'+_0x50f580+'/'+_0x4da2c9)[_0xaed9('0x17')](_0xc51898);}return null;};}function patchUpdates(_0x2561e3){return function(_0x17feb4){try{jsonpatch[_0xaed9('0x1c')](_0x17feb4,_0x2561e3,!![]);}catch(_0x439f7d){return BPromise[_0xaed9('0x1d')](_0x439f7d);}return _0x17feb4[_0xaed9('0x1e')]();};}function saveUpdates(_0x36ea6b,_0x4670dc){return function(_0x41388c){if(_0x41388c){return _0x41388c[_0xaed9('0x1f')](_0x36ea6b)[_0xaed9('0x20')](function(_0x356203){return _0x356203;});}return null;};}function removeEntity(_0x291a5c,_0x40845a){return function(_0x103461){if(_0x103461){return _0x103461[_0xaed9('0x21')]()['then'](function(){_0x291a5c[_0xaed9('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x76a66,_0x30ff40){return function(_0x4e2d9d){if(!_0x4e2d9d){_0x76a66['sendStatus'](0x194);}return _0x4e2d9d;};}function handleError(_0x398abf,_0x382721){_0x382721=_0x382721||0x1f4;return function(_0x5670c8){logger['error'](_0x5670c8[_0xaed9('0x22')]);if(_0x5670c8['name']){delete _0x5670c8[_0xaed9('0x23')];}_0x398abf['status'](_0x382721)[_0xaed9('0x24')](_0x5670c8);};}exports[_0xaed9('0x25')]=function(_0x4e9c92,_0x3f91d7){var _0x309633={},_0x570e1c={},_0x28c4f4={'count':0x0,'rows':[]};var _0x1caff8=db['ZendeskField']['rawAttributes'];_0x570e1c[_0xaed9('0x26')]=_['keys'](_0x1caff8);var _0x52786c={'dateStart':_0x4e9c92[_0xaed9('0x27')]['dateStart'],'dateEnd':_0x4e9c92[_0xaed9('0x27')][_0xaed9('0x28')]};delete _0x4e9c92[_0xaed9('0x27')][_0xaed9('0x29')];delete _0x4e9c92['query'][_0xaed9('0x28')];_0x570e1c['query']=_[_0xaed9('0x2a')](_0x4e9c92[_0xaed9('0x27')]);_0x570e1c[_0xaed9('0x2b')]=_[_0xaed9('0x2c')](_0x570e1c[_0xaed9('0x26')],_0x570e1c[_0xaed9('0x27')]);_0x309633[_0xaed9('0x2d')]=_['intersection'](_0x570e1c[_0xaed9('0x26')],qs[_0xaed9('0x2e')](_0x4e9c92['query'][_0xaed9('0x2e')]));_0x309633[_0xaed9('0x2d')]=_0x309633[_0xaed9('0x2d')][_0xaed9('0x2f')]?_0x309633[_0xaed9('0x2d')]:_0x570e1c[_0xaed9('0x26')];if(!_0x4e9c92['query'][_0xaed9('0x30')](_0xaed9('0x31'))){_0x309633[_0xaed9('0x32')]=qs[_0xaed9('0x32')](_0x4e9c92['query'][_0xaed9('0x32')]);_0x309633[_0xaed9('0x19')]=qs['offset'](_0x4e9c92[_0xaed9('0x27')][_0xaed9('0x19')]);}_0x309633['order']=qs[_0xaed9('0x33')](_0x4e9c92['query'][_0xaed9('0x33')]);_0x309633[_0xaed9('0x34')]=qs[_0xaed9('0x2b')](_[_0xaed9('0x35')](_0x4e9c92[_0xaed9('0x27')],_0x570e1c[_0xaed9('0x2b')]));if(_0x52786c[_0xaed9('0x29')]){if(_0x52786c['dateEnd']){_0x52786c[_0xaed9('0x28')]=moment(_0x52786c[_0xaed9('0x28')])[_0xaed9('0x36')](0x1,'day');}else{_0x52786c['dateEnd']=moment(_0x52786c[_0xaed9('0x29')])[_0xaed9('0x36')](0x1,'day');}_[_0xaed9('0x37')](_0x309633[_0xaed9('0x34')],{'createdAt':{'$gte':_0x52786c[_0xaed9('0x29')],'$lte':_0x52786c[_0xaed9('0x28')]}});}if(_0x4e9c92[_0xaed9('0x27')][_0xaed9('0x38')]){_0x309633[_0xaed9('0x34')]=_['merge'](_0x309633['where'],{'$or':_[_0xaed9('0x39')](_0x309633[_0xaed9('0x2d')],function(_0x3b3e9c){var _0x16f0ec={};_0x16f0ec[_0x3b3e9c]={'$like':'%'+_0x4e9c92[_0xaed9('0x27')][_0xaed9('0x38')]+'%'};return _0x16f0ec;})});}_0x309633=_[_0xaed9('0x37')]({},_0x309633,_0x4e9c92['options']);var _0x2e7bf3={'where':_0x309633[_0xaed9('0x34')]};return db[_0xaed9('0x3a')][_0xaed9('0x18')](_0x2e7bf3)['then'](function(_0x494b7d){_0x28c4f4['count']=_0x494b7d;if(_0x4e9c92['query'][_0xaed9('0x3b')]){_0x309633['include']=[{'all':!![]}];}return db[_0xaed9('0x3a')][_0xaed9('0x3c')](_0x309633);})[_0xaed9('0x20')](function(_0x586327){_0x28c4f4[_0xaed9('0x3d')]=_0x586327;return _0x28c4f4;})[_0xaed9('0x20')](respondWithFilteredResult(_0x3f91d7,_0x309633))[_0xaed9('0x3e')](handleError(_0x3f91d7,null));};exports['show']=function(_0x481318,_0x5db387){var _0x11dca6={'raw':!![],'where':{'id':_0x481318['params']['id']}},_0x279841={};_0x279841[_0xaed9('0x26')]=_[_0xaed9('0x2a')](db[_0xaed9('0x3a')][_0xaed9('0x3f')]);_0x279841['query']=_[_0xaed9('0x2a')](_0x481318[_0xaed9('0x27')]);_0x279841['filters']=_[_0xaed9('0x2c')](_0x279841['model'],_0x279841['query']);_0x11dca6['attributes']=_[_0xaed9('0x2c')](_0x279841['model'],qs[_0xaed9('0x2e')](_0x481318[_0xaed9('0x27')]['fields']));_0x11dca6[_0xaed9('0x2d')]=_0x11dca6['attributes'][_0xaed9('0x2f')]?_0x11dca6['attributes']:_0x279841[_0xaed9('0x26')];if(_0x481318['query'][_0xaed9('0x3b')]){_0x11dca6[_0xaed9('0x40')]=[{'all':!![]}];}_0x11dca6=_[_0xaed9('0x37')]({},_0x11dca6,_0x481318['options']);return db[_0xaed9('0x3a')][_0xaed9('0x41')](_0x11dca6)[_0xaed9('0x20')](handleEntityNotFound(_0x5db387,null))['then'](respondWithResult(_0x5db387,null))[_0xaed9('0x3e')](handleError(_0x5db387,null));};exports[_0xaed9('0x42')]=function(_0x310a65,_0x6ce2fb){return db[_0xaed9('0x3a')][_0xaed9('0x42')](_0x310a65['body'],{})[_0xaed9('0x20')](respondWithResult(_0x6ce2fb,0xc9))['catch'](handleError(_0x6ce2fb,null));};exports[_0xaed9('0x1f')]=function(_0x1c2dc7,_0x45e25d){if(_0x1c2dc7['body']['id']){delete _0x1c2dc7[_0xaed9('0x43')]['id'];}return db[_0xaed9('0x3a')][_0xaed9('0x41')]({'where':{'id':_0x1c2dc7[_0xaed9('0x44')]['id']}})['then'](handleEntityNotFound(_0x45e25d,null))[_0xaed9('0x20')](saveUpdates(_0x1c2dc7['body'],null))[_0xaed9('0x20')](respondWithResult(_0x45e25d,null))[_0xaed9('0x3e')](handleError(_0x45e25d,null));};exports[_0xaed9('0x21')]=function(_0x2e09d2,_0x4eb77c){return db[_0xaed9('0x3a')][_0xaed9('0x41')]({'where':{'id':_0x2e09d2['params']['id']}})[_0xaed9('0x20')](handleEntityNotFound(_0x4eb77c,null))['then'](removeEntity(_0x4eb77c,null))[_0xaed9('0x3e')](handleError(_0x4eb77c,null));};
\ No newline at end of file
+var _0xe5e5=['api','../../config/utils','../../mysqldb','sendStatus','end','status','json','count','limit','set','Content-Range','apply','reject','save','then','error','name','send','index','ZendeskField','rawAttributes','model','keys','dateStart','query','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','offset','order','sort','where','pick','add','day','merge','map','options','include','rows','show','includeAll','find','catch','body','update','destroy','params','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/logger'];(function(_0x5a2d95,_0xb362e5){var _0x2c3986=function(_0x5cce7c){while(--_0x5cce7c){_0x5a2d95['push'](_0x5a2d95['shift']());}};_0x2c3986(++_0xb362e5);}(_0xe5e5,0x7c));var _0x5e5e=function(_0x397f28,_0xab22ff){_0x397f28=_0x397f28-0x0;var _0xcbb989=_0xe5e5[_0x397f28];return _0xcbb989;};'use strict';var pdf=require(_0x5e5e('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x5e5e('0x1'));var jsonpatch=require(_0x5e5e('0x2'));var rp=require(_0x5e5e('0x3'));var moment=require(_0x5e5e('0x4'));var BPromise=require(_0x5e5e('0x5'));var Mustache=require(_0x5e5e('0x6'));var util=require(_0x5e5e('0x7'));var path=require(_0x5e5e('0x8'));var sox=require(_0x5e5e('0x9'));var csv=require(_0x5e5e('0xa'));var ejs=require(_0x5e5e('0xb'));var fs=require('fs');var _=require(_0x5e5e('0xc'));var squel=require(_0x5e5e('0xd'));var crypto=require('crypto');var jsforce=require(_0x5e5e('0xe'));var deskjs=require(_0x5e5e('0xf'));var toCsv=require(_0x5e5e('0xa'));var querystring=require(_0x5e5e('0x10'));var Papa=require('papaparse');var Redis=require(_0x5e5e('0x11'));var qs=require(_0x5e5e('0x12'));var logger=require(_0x5e5e('0x13'))(_0x5e5e('0x14'));var utils=require(_0x5e5e('0x15'));var config=require('../../config/environment');var db=require(_0x5e5e('0x16'))['db'];function respondWithStatusCode(_0x314843,_0x19b153){_0x19b153=_0x19b153||0xcc;return function(_0x983344){if(_0x983344){return _0x314843[_0x5e5e('0x17')](_0x19b153);}return _0x314843['status'](_0x19b153)[_0x5e5e('0x18')]();};}function respondWithResult(_0x120de1,_0x28b553){_0x28b553=_0x28b553||0xc8;return function(_0x1065f6){if(_0x1065f6){return _0x120de1[_0x5e5e('0x19')](_0x28b553)[_0x5e5e('0x1a')](_0x1065f6);}};}function respondWithFilteredResult(_0x332f8e,_0x247ce2){return function(_0x50c8f9){if(_0x50c8f9){var _0x15933e=_0x50c8f9[_0x5e5e('0x1b')],_0x1a67ed=_0x247ce2['offset'],_0x224cdf=_0x247ce2['offset']+_0x247ce2[_0x5e5e('0x1c')],_0x388e96;if(_0x224cdf>=_0x15933e){_0x224cdf=_0x15933e;_0x388e96=0xc8;}else{_0x388e96=0xce;}_0x332f8e[_0x5e5e('0x19')](_0x388e96);return _0x332f8e[_0x5e5e('0x1d')](_0x5e5e('0x1e'),_0x1a67ed+'-'+_0x224cdf+'/'+_0x15933e)[_0x5e5e('0x1a')](_0x50c8f9);}return null;};}function patchUpdates(_0x21aec1){return function(_0x5f4a3f){try{jsonpatch[_0x5e5e('0x1f')](_0x5f4a3f,_0x21aec1,!![]);}catch(_0x408187){return BPromise[_0x5e5e('0x20')](_0x408187);}return _0x5f4a3f[_0x5e5e('0x21')]();};}function saveUpdates(_0x1d3591,_0x47a89b){return function(_0x3798fe){if(_0x3798fe){return _0x3798fe['update'](_0x1d3591)[_0x5e5e('0x22')](function(_0x2f9aee){return _0x2f9aee;});}return null;};}function removeEntity(_0x3b1fc8,_0x51420b){return function(_0x5d8404){if(_0x5d8404){return _0x5d8404['destroy']()[_0x5e5e('0x22')](function(){_0x3b1fc8[_0x5e5e('0x19')](0xcc)[_0x5e5e('0x18')]();});}};}function handleEntityNotFound(_0x43be18,_0x1b8e6f){return function(_0x1305d5){if(!_0x1305d5){_0x43be18[_0x5e5e('0x17')](0x194);}return _0x1305d5;};}function handleError(_0x302c9f,_0x2b875c){_0x2b875c=_0x2b875c||0x1f4;return function(_0x5512ad){logger[_0x5e5e('0x23')](_0x5512ad['stack']);if(_0x5512ad['name']){delete _0x5512ad[_0x5e5e('0x24')];}_0x302c9f[_0x5e5e('0x19')](_0x2b875c)[_0x5e5e('0x25')](_0x5512ad);};}exports[_0x5e5e('0x26')]=function(_0x5a5f1e,_0xaf329){var _0x48e6d9={},_0x4b16fd={},_0x275e15={'count':0x0,'rows':[]};var _0x3b1d01=db[_0x5e5e('0x27')][_0x5e5e('0x28')];_0x4b16fd[_0x5e5e('0x29')]=_[_0x5e5e('0x2a')](_0x3b1d01);var _0xd1d09c={'dateStart':_0x5a5f1e['query'][_0x5e5e('0x2b')],'dateEnd':_0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x2d')]};delete _0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x2b')];delete _0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x2d')];_0x4b16fd[_0x5e5e('0x2c')]=_[_0x5e5e('0x2a')](_0x5a5f1e[_0x5e5e('0x2c')]);_0x4b16fd[_0x5e5e('0x2e')]=_[_0x5e5e('0x2f')](_0x4b16fd[_0x5e5e('0x29')],_0x4b16fd[_0x5e5e('0x2c')]);_0x48e6d9[_0x5e5e('0x30')]=_[_0x5e5e('0x2f')](_0x4b16fd[_0x5e5e('0x29')],qs[_0x5e5e('0x31')](_0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x31')]));_0x48e6d9[_0x5e5e('0x30')]=_0x48e6d9[_0x5e5e('0x30')][_0x5e5e('0x32')]?_0x48e6d9[_0x5e5e('0x30')]:_0x4b16fd[_0x5e5e('0x29')];if(!_0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x33')]('nolimit')){_0x48e6d9[_0x5e5e('0x1c')]=qs['limit'](_0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x1c')]);_0x48e6d9[_0x5e5e('0x34')]=qs['offset'](_0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x34')]);}_0x48e6d9[_0x5e5e('0x35')]=qs[_0x5e5e('0x36')](_0x5a5f1e[_0x5e5e('0x2c')][_0x5e5e('0x36')]);_0x48e6d9[_0x5e5e('0x37')]=qs['filters'](_[_0x5e5e('0x38')](_0x5a5f1e['query'],_0x4b16fd[_0x5e5e('0x2e')]));if(_0xd1d09c[_0x5e5e('0x2b')]){if(_0xd1d09c[_0x5e5e('0x2d')]){_0xd1d09c[_0x5e5e('0x2d')]=moment(_0xd1d09c[_0x5e5e('0x2d')])[_0x5e5e('0x39')](0x1,_0x5e5e('0x3a'));}else{_0xd1d09c[_0x5e5e('0x2d')]=moment(_0xd1d09c['dateStart'])[_0x5e5e('0x39')](0x1,_0x5e5e('0x3a'));}_[_0x5e5e('0x3b')](_0x48e6d9[_0x5e5e('0x37')],{'createdAt':{'$gte':_0xd1d09c[_0x5e5e('0x2b')],'$lte':_0xd1d09c[_0x5e5e('0x2d')]}});}if(_0x5a5f1e[_0x5e5e('0x2c')]['filter']){_0x48e6d9[_0x5e5e('0x37')]=_['merge'](_0x48e6d9['where'],{'$or':_[_0x5e5e('0x3c')](_0x48e6d9[_0x5e5e('0x30')],function(_0x323a37){var _0x2859ba={};_0x2859ba[_0x323a37]={'$like':'%'+_0x5a5f1e['query']['filter']+'%'};return _0x2859ba;})});}_0x48e6d9=_['merge']({},_0x48e6d9,_0x5a5f1e[_0x5e5e('0x3d')]);var _0x255993={'where':_0x48e6d9[_0x5e5e('0x37')]};return db[_0x5e5e('0x27')][_0x5e5e('0x1b')](_0x255993)[_0x5e5e('0x22')](function(_0x50fc79){_0x275e15[_0x5e5e('0x1b')]=_0x50fc79;if(_0x5a5f1e[_0x5e5e('0x2c')]['includeAll']){_0x48e6d9[_0x5e5e('0x3e')]=[{'all':!![]}];}return db[_0x5e5e('0x27')]['findAll'](_0x48e6d9);})[_0x5e5e('0x22')](function(_0x140553){_0x275e15[_0x5e5e('0x3f')]=_0x140553;return _0x275e15;})[_0x5e5e('0x22')](respondWithFilteredResult(_0xaf329,_0x48e6d9))['catch'](handleError(_0xaf329,null));};exports[_0x5e5e('0x40')]=function(_0x3f41e2,_0x386c9a){var _0x3e7654={'raw':!![],'where':{'id':_0x3f41e2['params']['id']}},_0x545905={};_0x545905[_0x5e5e('0x29')]=_[_0x5e5e('0x2a')](db[_0x5e5e('0x27')][_0x5e5e('0x28')]);_0x545905[_0x5e5e('0x2c')]=_['keys'](_0x3f41e2['query']);_0x545905['filters']=_[_0x5e5e('0x2f')](_0x545905[_0x5e5e('0x29')],_0x545905['query']);_0x3e7654[_0x5e5e('0x30')]=_[_0x5e5e('0x2f')](_0x545905[_0x5e5e('0x29')],qs[_0x5e5e('0x31')](_0x3f41e2[_0x5e5e('0x2c')][_0x5e5e('0x31')]));_0x3e7654[_0x5e5e('0x30')]=_0x3e7654[_0x5e5e('0x30')][_0x5e5e('0x32')]?_0x3e7654[_0x5e5e('0x30')]:_0x545905[_0x5e5e('0x29')];if(_0x3f41e2['query'][_0x5e5e('0x41')]){_0x3e7654[_0x5e5e('0x3e')]=[{'all':!![]}];}_0x3e7654=_[_0x5e5e('0x3b')]({},_0x3e7654,_0x3f41e2['options']);return db['ZendeskField'][_0x5e5e('0x42')](_0x3e7654)['then'](handleEntityNotFound(_0x386c9a,null))[_0x5e5e('0x22')](respondWithResult(_0x386c9a,null))[_0x5e5e('0x43')](handleError(_0x386c9a,null));};exports['create']=function(_0x54350d,_0x5ed41d){return db[_0x5e5e('0x27')]['create'](_0x54350d[_0x5e5e('0x44')],{})[_0x5e5e('0x22')](respondWithResult(_0x5ed41d,0xc9))[_0x5e5e('0x43')](handleError(_0x5ed41d,null));};exports[_0x5e5e('0x45')]=function(_0x498ee8,_0x2981b5){if(_0x498ee8[_0x5e5e('0x44')]['id']){delete _0x498ee8[_0x5e5e('0x44')]['id'];}return db[_0x5e5e('0x27')][_0x5e5e('0x42')]({'where':{'id':_0x498ee8['params']['id']}})['then'](handleEntityNotFound(_0x2981b5,null))['then'](saveUpdates(_0x498ee8[_0x5e5e('0x44')],null))[_0x5e5e('0x22')](respondWithResult(_0x2981b5,null))['catch'](handleError(_0x2981b5,null));};exports[_0x5e5e('0x46')]=function(_0x5aa90b,_0x2f6039){return db[_0x5e5e('0x27')][_0x5e5e('0x42')]({'where':{'id':_0x5aa90b[_0x5e5e('0x47')]['id']}})[_0x5e5e('0x22')](handleEntityNotFound(_0x2f6039,null))['then'](removeEntity(_0x2f6039,null))[_0x5e5e('0x43')](handleError(_0x2f6039,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69c4=['ZendeskField','int_zendesk_fields','lodash','util','../../config/logger','api','bluebird','request-promise','./intZendeskField.attributes','exports','define'];(function(_0x56fdf8,_0x476fa6){var _0x2e2011=function(_0xa93b5c){while(--_0xa93b5c){_0x56fdf8['push'](_0x56fdf8['shift']());}};_0x2e2011(++_0x476fa6);}(_0x69c4,0x1a4));var _0x469c=function(_0x2ad9f9,_0x45c586){_0x2ad9f9=_0x2ad9f9-0x0;var _0x49cd1e=_0x69c4[_0x2ad9f9];return _0x49cd1e;};'use strict';var _=require(_0x469c('0x0'));var util=require(_0x469c('0x1'));var logger=require(_0x469c('0x2'))(_0x469c('0x3'));var moment=require('moment');var BPromise=require(_0x469c('0x4'));var rp=require(_0x469c('0x5'));var attributes=require(_0x469c('0x6'));module[_0x469c('0x7')]=function(_0x30dc5b,_0x194360){return _0x30dc5b[_0x469c('0x8')](_0x469c('0x9'),attributes,{'tableName':_0x469c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x05fe=['request-promise','./intZendeskField.attributes','define','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0x05fe,0x1ce));var _0xe05f=function(_0x2db297,_0x436d93){_0x2db297=_0x2db297-0x0;var _0x51aa24=_0x05fe[_0x2db297];return _0x51aa24;};'use strict';var _=require(_0xe05f('0x0'));var util=require(_0xe05f('0x1'));var logger=require(_0xe05f('0x2'))(_0xe05f('0x3'));var moment=require(_0xe05f('0x4'));var BPromise=require(_0xe05f('0x5'));var rp=require(_0xe05f('0x6'));var attributes=require(_0xe05f('0x7'));module['exports']=function(_0x4f5cf4,_0x49b8f9){return _0x4f5cf4[_0xe05f('0x8')]('ZendeskField',attributes,{'tableName':'int_zendesk_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab98=['code','message','info','result','lodash','moment','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','ZendeskField,\x20%s,\x20%s','request\x20sent','ZendeskField,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0xdd0366,_0xb2ea52){var _0x1ab1cf=function(_0x5e4791){while(--_0x5e4791){_0xdd0366['push'](_0xdd0366['shift']());}};_0x1ab1cf(++_0xb2ea52);}(_0xab98,0xfb));var _0x8ab9=function(_0x25370d,_0x5ca9d3){_0x25370d=_0x25370d-0x0;var _0x4a7cf2=_0xab98[_0x25370d];return _0x4a7cf2;};'use strict';var _=require(_0x8ab9('0x0'));var util=require('util');var moment=require(_0x8ab9('0x1'));var BPromise=require('bluebird');var rs=require(_0x8ab9('0x2'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x8ab9('0x3'));var logger=require(_0x8ab9('0x4'))(_0x8ab9('0x5'));var config=require(_0x8ab9('0x6'));var jayson=require(_0x8ab9('0x7'));var client=jayson[_0x8ab9('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2749bd,_0x379806,_0x57f709){return new BPromise(function(_0xdfc036,_0x230222){return client['request'](_0x2749bd,_0x57f709)[_0x8ab9('0x9')](function(_0xec9b46){logger['info'](_0x8ab9('0xa'),_0x379806,_0x8ab9('0xb'));logger['debug'](_0x8ab9('0xc'),_0x379806,_0x8ab9('0xb'),JSON[_0x8ab9('0xd')](_0xec9b46));if(_0xec9b46[_0x8ab9('0xe')]){if(_0xec9b46[_0x8ab9('0xe')][_0x8ab9('0xf')]===0x1f4){logger['error'](_0x8ab9('0xa'),_0x379806,_0xec9b46['error'][_0x8ab9('0x10')]);return _0x230222(_0xec9b46[_0x8ab9('0xe')][_0x8ab9('0x10')]);}logger['error'](_0x8ab9('0xa'),_0x379806,_0xec9b46[_0x8ab9('0xe')][_0x8ab9('0x10')]);return _0xdfc036(_0xec9b46[_0x8ab9('0xe')][_0x8ab9('0x10')]);}else{logger[_0x8ab9('0x11')]('ZendeskField,\x20%s,\x20%s',_0x379806,'request\x20sent');_0xdfc036(_0xec9b46[_0x8ab9('0x12')]['message']);}})['catch'](function(_0x116551){logger[_0x8ab9('0xe')](_0x8ab9('0xa'),_0x379806,_0x116551);_0x230222(_0x116551);});});}
\ No newline at end of file
+var _0x657b=['bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','ZendeskField,\x20%s,\x20%s','debug','ZendeskField,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','lodash','util','moment'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0x657b,0x131));var _0xb657=function(_0xc2a424,_0x378bde){_0xc2a424=_0xc2a424-0x0;var _0x50bc0a=_0x657b[_0xc2a424];return _0x50bc0a;};'use strict';var _=require(_0xb657('0x0'));var util=require(_0xb657('0x1'));var moment=require(_0xb657('0x2'));var BPromise=require(_0xb657('0x3'));var rs=require(_0xb657('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb657('0x5'))['db'];var utils=require(_0xb657('0x6'));var logger=require('../../config/logger')(_0xb657('0x7'));var config=require(_0xb657('0x8'));var jayson=require(_0xb657('0x9'));var client=jayson[_0xb657('0xa')][_0xb657('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5d54f6,_0x471e78,_0x55acdf){return new BPromise(function(_0x326dd7,_0x42a844){return client[_0xb657('0xc')](_0x5d54f6,_0x55acdf)['then'](function(_0x36b334){logger['info'](_0xb657('0xd'),_0x471e78,'request\x20sent');logger[_0xb657('0xe')](_0xb657('0xf'),_0x471e78,_0xb657('0x10'),JSON['stringify'](_0x36b334));if(_0x36b334[_0xb657('0x11')]){if(_0x36b334[_0xb657('0x11')][_0xb657('0x12')]===0x1f4){logger[_0xb657('0x11')]('ZendeskField,\x20%s,\x20%s',_0x471e78,_0x36b334[_0xb657('0x11')][_0xb657('0x13')]);return _0x42a844(_0x36b334['error'][_0xb657('0x13')]);}logger[_0xb657('0x11')](_0xb657('0xd'),_0x471e78,_0x36b334[_0xb657('0x11')]['message']);return _0x326dd7(_0x36b334[_0xb657('0x11')][_0xb657('0x13')]);}else{logger['info']('ZendeskField,\x20%s,\x20%s',_0x471e78,_0xb657('0x10'));_0x326dd7(_0x36b334[_0xb657('0x14')][_0xb657('0x13')]);}})[_0xb657('0x15')](function(_0x17c045){logger[_0xb657('0x11')](_0xb657('0xd'),_0x471e78,_0x17c045);_0x42a844(_0x17c045);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['delete','/:id','util','path','../../components/auth/service','../../config/environment','./intZohoAccount.controller','isAuthenticated','index','show','get','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','put'];(function(_0x2906e6,_0x5ccd59){var _0x12517a=function(_0x36d576){while(--_0x36d576){_0x2906e6['push'](_0x2906e6['shift']());}};_0x12517a(++_0x5ccd59);}(_0xda3f,0xec));var _0xfda3=function(_0x14f8da,_0x97d771){_0x14f8da=_0x14f8da-0x0;var _0x5a9da2=_0xda3f[_0x14f8da];return _0x5a9da2;};'use strict';var multer=require('multer');var util=require(_0xfda3('0x0'));var path=require(_0xfda3('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require(_0xfda3('0x2'));var interaction=require('../../components/interaction/service');var config=require(_0xfda3('0x3'));var controller=require(_0xfda3('0x4'));router['get']('/',auth[_0xfda3('0x5')](),controller[_0xfda3('0x6')]);router['get']('/:id',auth[_0xfda3('0x5')](),controller[_0xfda3('0x7')]);router[_0xfda3('0x8')](_0xfda3('0x9'),auth[_0xfda3('0x5')](),controller[_0xfda3('0xa')]);router[_0xfda3('0x8')](_0xfda3('0xb'),auth[_0xfda3('0x5')](),controller[_0xfda3('0xc')]);router[_0xfda3('0xd')]('/',auth[_0xfda3('0x5')](),controller['create']);router[_0xfda3('0xd')](_0xfda3('0x9'),auth[_0xfda3('0x5')](),controller[_0xfda3('0xe')]);router[_0xfda3('0xf')]('/:id',auth[_0xfda3('0x5')](),controller['update']);router[_0xfda3('0x10')](_0xfda3('0x11'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xbaf0=['index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','update','delete','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./intZohoAccount.controller','get','isAuthenticated'];(function(_0x35b7d4,_0x5a5c43){var _0x4e8cee=function(_0x66859c){while(--_0x66859c){_0x35b7d4['push'](_0x35b7d4['shift']());}};_0x4e8cee(++_0x5a5c43);}(_0xbaf0,0x12a));var _0x0baf=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xbaf0[_0x501510];return _0x1e6ee5;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var auth=require(_0x0baf('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x0baf('0x6'));var controller=require(_0x0baf('0x7'));router[_0x0baf('0x8')]('/',auth[_0x0baf('0x9')](),controller[_0x0baf('0xa')]);router[_0x0baf('0x8')](_0x0baf('0xb'),auth[_0x0baf('0x9')](),controller[_0x0baf('0xc')]);router['get'](_0x0baf('0xd'),auth['isAuthenticated'](),controller[_0x0baf('0xe')]);router[_0x0baf('0x8')](_0x0baf('0xf'),auth[_0x0baf('0x9')](),controller[_0x0baf('0x10')]);router[_0x0baf('0x11')]('/',auth[_0x0baf('0x9')](),controller[_0x0baf('0x12')]);router[_0x0baf('0x11')](_0x0baf('0xd'),auth[_0x0baf('0x9')](),controller['addConfiguration']);router['put'](_0x0baf('0xb'),auth[_0x0baf('0x9')](),controller[_0x0baf('0x13')]);router[_0x0baf('0x14')]('/:id',auth[_0x0baf('0x9')](),controller['destroy']);module[_0x0baf('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b8e=['sequelize','exports','STRING'];(function(_0x4c7907,_0x24322a){var _0xa4c9a2=function(_0x55970d){while(--_0x55970d){_0x4c7907['push'](_0x4c7907['shift']());}};_0xa4c9a2(++_0x24322a);}(_0x7b8e,0x90));var _0xe7b8=function(_0x467cab,_0x1a8b4e){_0x467cab=_0x467cab-0x0;var _0xc45c1f=_0x7b8e[_0x467cab];return _0xc45c1f;};'use strict';var Sequelize=require(_0xe7b8('0x0'));module[_0xe7b8('0x1')]={'name':{'type':Sequelize[_0xe7b8('0x2')]},'description':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize[_0xe7b8('0x2')]},'host':{'type':Sequelize[_0xe7b8('0x2')]},'serverUrl':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xf2bf=['STRING'];(function(_0x3d6ca2,_0x3e3f40){var _0x2ac124=function(_0xcc58d4){while(--_0xcc58d4){_0x3d6ca2['push'](_0x3d6ca2['shift']());}};_0x2ac124(++_0x3e3f40);}(_0xf2bf,0xf9));var _0xff2b=function(_0x5a2d3f,_0x27b04e){_0x5a2d3f=_0x5a2d3f-0x0;var _0x5c65d8=_0xf2bf[_0x5a2d3f];return _0x5c65d8;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xff2b('0x0')]},'description':{'type':Sequelize[_0xff2b('0x0')]},'authToken':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0xff2b('0x0')]},'serverUrl':{'type':Sequelize[_0xff2b('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89c3=['include','find','create','getConfigurations','findOne','options','addConfiguration','body','channel','Descriptions','getDescriptions','ZohoConfiguration','ZohoField','getFields','host','authToken','format','https://crm.%s/crm/private/json/Calls/getFields','crmapi','response','Calls','section','Call\x20Purpose','includes','label','customfield','true','val','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','lodash','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','then','ZohoAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','destroy','stack','name','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','ZohoAccount','includeAll','findAll','rows','show','params'];(function(_0x351b46,_0x110051){var _0xef1235=function(_0x4a718c){while(--_0x4a718c){_0x351b46['push'](_0x351b46['shift']());}};_0xef1235(++_0x110051);}(_0x89c3,0xff));var _0x389c=function(_0x522a70,_0x34fe4c){_0x522a70=_0x522a70-0x0;var _0xaa901a=_0x89c3[_0x522a70];return _0xaa901a;};'use strict';var pdf=require(_0x389c('0x0'));var emlformat=require(_0x389c('0x1'));var rimraf=require(_0x389c('0x2'));var zipdir=require(_0x389c('0x3'));var jsonpatch=require(_0x389c('0x4'));var rp=require(_0x389c('0x5'));var moment=require(_0x389c('0x6'));var BPromise=require(_0x389c('0x7'));var Mustache=require('mustache');var util=require(_0x389c('0x8'));var path=require('path');var sox=require(_0x389c('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x389c('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x389c('0xb'));var deskjs=require(_0x389c('0xc'));var toCsv=require(_0x389c('0xd'));var querystring=require(_0x389c('0xe'));var Papa=require(_0x389c('0xf'));var qs=require(_0x389c('0x10'));var logger=require(_0x389c('0x11'))(_0x389c('0x12'));var utils=require(_0x389c('0x13'));var config=require('../../config/environment');var db=require(_0x389c('0x14'))['db'];var integrations=require(_0x389c('0x15'));var jayson=require(_0x389c('0x16'));var client=jayson[_0x389c('0x17')][_0x389c('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x4e0344,_0x5d7aa7,_0x2a2d7d,_0x1de33a){return new BPromise(function(_0x29c54c,_0x501dc8){var _0x3f2391=_0x1de33a||client;return _0x3f2391['request'](_0x4e0344,_0x2a2d7d)[_0x389c('0x19')](function(_0x1b1618){logger['info'](_0x389c('0x1a'),_0x5d7aa7,_0x389c('0x1b'));logger[_0x389c('0x1c')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x5d7aa7,_0x389c('0x1b'),JSON[_0x389c('0x1d')](_0x1b1618));if(_0x1b1618[_0x389c('0x1e')]){if(_0x1b1618[_0x389c('0x1e')][_0x389c('0x1f')]===0x1f4){logger['error']('ZohoAccount,\x20%s,\x20%s',_0x5d7aa7,_0x1b1618['error'][_0x389c('0x20')]);return _0x501dc8(_0x1b1618[_0x389c('0x1e')]['message']);}logger[_0x389c('0x1e')](_0x389c('0x1a'),_0x5d7aa7,_0x1b1618[_0x389c('0x1e')][_0x389c('0x20')]);return _0x29c54c(_0x1b1618[_0x389c('0x1e')][_0x389c('0x20')]);}else{logger[_0x389c('0x21')](_0x389c('0x1a'),_0x5d7aa7,_0x389c('0x1b'));_0x29c54c(_0x1b1618['result'][_0x389c('0x20')]);}})[_0x389c('0x22')](function(_0x33fffa){logger[_0x389c('0x1e')](_0x389c('0x1a'),_0x5d7aa7,_0x33fffa);_0x501dc8(_0x33fffa);});});}function respondWithStatusCode(_0x2e1012,_0x5284e9){_0x5284e9=_0x5284e9||0xcc;return function(_0x18e06b){if(_0x18e06b){return _0x2e1012[_0x389c('0x23')](_0x5284e9);}return _0x2e1012[_0x389c('0x24')](_0x5284e9)[_0x389c('0x25')]();};}function respondWithResult(_0x54869a,_0x2c9456){_0x2c9456=_0x2c9456||0xc8;return function(_0x2729bd){if(_0x2729bd){return _0x54869a['status'](_0x2c9456)[_0x389c('0x26')](_0x2729bd);}};}function respondWithFilteredResult(_0x5d1c4b,_0x929ea9){return function(_0x307113){if(_0x307113){var _0x423d65=_0x307113[_0x389c('0x27')],_0x18aa3e=_0x929ea9[_0x389c('0x28')],_0x21ab93=_0x929ea9[_0x389c('0x28')]+_0x929ea9[_0x389c('0x29')],_0x5d34aa;if(_0x21ab93>=_0x423d65){_0x21ab93=_0x423d65;_0x5d34aa=0xc8;}else{_0x5d34aa=0xce;}_0x5d1c4b[_0x389c('0x24')](_0x5d34aa);return _0x5d1c4b['set'](_0x389c('0x2a'),_0x18aa3e+'-'+_0x21ab93+'/'+_0x423d65)['json'](_0x307113);}return null;};}function patchUpdates(_0x6d2ff7){return function(_0x45cd48){try{jsonpatch[_0x389c('0x2b')](_0x45cd48,_0x6d2ff7,!![]);}catch(_0xeac171){return BPromise['reject'](_0xeac171);}return _0x45cd48[_0x389c('0x2c')]();};}function saveUpdates(_0x80a2e1,_0x594f6a){return function(_0x6f0166){if(_0x6f0166){return _0x6f0166[_0x389c('0x2d')](_0x80a2e1)[_0x389c('0x19')](function(_0xa1cf2b){return _0xa1cf2b;});}return null;};}function removeEntity(_0x174c89,_0x2219f3){return function(_0x21a5c4){if(_0x21a5c4){return _0x21a5c4[_0x389c('0x2e')]()[_0x389c('0x19')](function(){_0x174c89[_0x389c('0x24')](0xcc)[_0x389c('0x25')]();});}};}function handleEntityNotFound(_0x22a013,_0x5000ec){return function(_0x4e9354){if(!_0x4e9354){_0x22a013['sendStatus'](0x194);}return _0x4e9354;};}function handleError(_0x19a63f,_0x4fac91){_0x4fac91=_0x4fac91||0x1f4;return function(_0x28be32){logger['error'](_0x28be32[_0x389c('0x2f')]);if(_0x28be32[_0x389c('0x30')]){delete _0x28be32[_0x389c('0x30')];}_0x19a63f[_0x389c('0x24')](_0x4fac91)['send'](_0x28be32);};}exports[_0x389c('0x31')]=function(_0x38f321,_0x33c326){var _0x207a5a={},_0x242ec7={},_0x2d70ff={'count':0x0,'rows':[]};var _0x4d0217=db['ZohoAccount'][_0x389c('0x32')];_0x242ec7[_0x389c('0x33')]=_[_0x389c('0x34')](_0x4d0217);var _0x100212={'dateStart':_0x38f321[_0x389c('0x35')][_0x389c('0x36')],'dateEnd':_0x38f321[_0x389c('0x35')][_0x389c('0x37')]};delete _0x38f321[_0x389c('0x35')][_0x389c('0x36')];delete _0x38f321[_0x389c('0x35')][_0x389c('0x37')];_0x242ec7[_0x389c('0x35')]=_['keys'](_0x38f321['query']);_0x242ec7[_0x389c('0x38')]=_[_0x389c('0x39')](_0x242ec7[_0x389c('0x33')],_0x242ec7[_0x389c('0x35')]);_0x207a5a[_0x389c('0x3a')]=_[_0x389c('0x39')](_0x242ec7['model'],qs['fields'](_0x38f321[_0x389c('0x35')][_0x389c('0x3b')]));_0x207a5a[_0x389c('0x3a')]=_0x207a5a['attributes'][_0x389c('0x3c')]?_0x207a5a[_0x389c('0x3a')]:_0x242ec7[_0x389c('0x33')];if(!_0x38f321[_0x389c('0x35')][_0x389c('0x3d')](_0x389c('0x3e'))){_0x207a5a['limit']=qs[_0x389c('0x29')](_0x38f321[_0x389c('0x35')][_0x389c('0x29')]);_0x207a5a[_0x389c('0x28')]=qs['offset'](_0x38f321[_0x389c('0x35')]['offset']);}_0x207a5a[_0x389c('0x3f')]=qs[_0x389c('0x40')](_0x38f321[_0x389c('0x35')][_0x389c('0x40')]);_0x207a5a[_0x389c('0x41')]=qs[_0x389c('0x38')](_[_0x389c('0x42')](_0x38f321[_0x389c('0x35')],_0x242ec7[_0x389c('0x38')]));if(_0x100212[_0x389c('0x36')]){if(_0x100212[_0x389c('0x37')]){_0x100212['dateEnd']=moment(_0x100212[_0x389c('0x37')])[_0x389c('0x43')](0x1,'day');}else{_0x100212[_0x389c('0x37')]=moment(_0x100212['dateStart'])[_0x389c('0x43')](0x1,_0x389c('0x44'));}_[_0x389c('0x45')](_0x207a5a[_0x389c('0x41')],{'createdAt':{'$gte':_0x100212[_0x389c('0x36')],'$lte':_0x100212[_0x389c('0x37')]}});}if(_0x38f321[_0x389c('0x35')][_0x389c('0x46')]){_0x207a5a[_0x389c('0x41')]=_[_0x389c('0x45')](_0x207a5a[_0x389c('0x41')],{'$or':_[_0x389c('0x47')](_0x207a5a[_0x389c('0x3a')],function(_0x5069ce){var _0x575a44={};_0x575a44[_0x5069ce]={'$like':'%'+_0x38f321[_0x389c('0x35')][_0x389c('0x46')]+'%'};return _0x575a44;})});}_0x207a5a=_[_0x389c('0x45')]({},_0x207a5a,_0x38f321['options']);var _0x3404b1={'where':_0x207a5a[_0x389c('0x41')]};return db[_0x389c('0x48')][_0x389c('0x27')](_0x3404b1)['then'](function(_0x49d0e1){_0x2d70ff['count']=_0x49d0e1;if(_0x38f321['query'][_0x389c('0x49')]){_0x207a5a['include']=[{'all':!![]}];}return db['ZohoAccount'][_0x389c('0x4a')](_0x207a5a);})[_0x389c('0x19')](function(_0xda6d22){_0x2d70ff[_0x389c('0x4b')]=_0xda6d22;return _0x2d70ff;})[_0x389c('0x19')](respondWithFilteredResult(_0x33c326,_0x207a5a))[_0x389c('0x22')](handleError(_0x33c326,null));};exports[_0x389c('0x4c')]=function(_0x556928,_0x287687){var _0x1d509a={'raw':![],'where':{'id':_0x556928[_0x389c('0x4d')]['id']}},_0x28e449={};_0x28e449[_0x389c('0x33')]=_[_0x389c('0x34')](db['ZohoAccount'][_0x389c('0x32')]);_0x28e449['query']=_[_0x389c('0x34')](_0x556928['query']);_0x28e449[_0x389c('0x38')]=_[_0x389c('0x39')](_0x28e449[_0x389c('0x33')],_0x28e449[_0x389c('0x35')]);_0x1d509a[_0x389c('0x3a')]=_[_0x389c('0x39')](_0x28e449['model'],qs[_0x389c('0x3b')](_0x556928[_0x389c('0x35')]['fields']));_0x1d509a[_0x389c('0x3a')]=_0x1d509a[_0x389c('0x3a')][_0x389c('0x3c')]?_0x1d509a['attributes']:_0x28e449[_0x389c('0x33')];if(_0x556928[_0x389c('0x35')]['includeAll']){_0x1d509a[_0x389c('0x4e')]=[{'all':!![]}];}_0x1d509a=_[_0x389c('0x45')]({},_0x1d509a,_0x556928['options']);return db[_0x389c('0x48')][_0x389c('0x4f')](_0x1d509a)[_0x389c('0x19')](handleEntityNotFound(_0x287687,null))[_0x389c('0x19')](respondWithResult(_0x287687,null))[_0x389c('0x22')](handleError(_0x287687,null));};exports[_0x389c('0x50')]=function(_0x1ba55f,_0x424165){return db[_0x389c('0x48')][_0x389c('0x50')](_0x1ba55f['body'],{})[_0x389c('0x19')](respondWithResult(_0x424165,0xc9))[_0x389c('0x22')](handleError(_0x424165,null));};exports[_0x389c('0x2d')]=function(_0x5edc1c,_0x407816){if(_0x5edc1c['body']['id']){delete _0x5edc1c['body']['id'];}return db[_0x389c('0x48')][_0x389c('0x4f')]({'where':{'id':_0x5edc1c[_0x389c('0x4d')]['id']}})[_0x389c('0x19')](handleEntityNotFound(_0x407816,null))[_0x389c('0x19')](saveUpdates(_0x5edc1c['body'],null))[_0x389c('0x19')](respondWithResult(_0x407816,null))[_0x389c('0x22')](handleError(_0x407816,null));};exports[_0x389c('0x2e')]=function(_0x5c62e3,_0x13fde1){return db[_0x389c('0x48')][_0x389c('0x4f')]({'where':{'id':_0x5c62e3[_0x389c('0x4d')]['id']}})['then'](handleEntityNotFound(_0x13fde1,null))[_0x389c('0x19')](removeEntity(_0x13fde1,null))[_0x389c('0x22')](handleError(_0x13fde1,null));};exports[_0x389c('0x51')]=function(_0x2a0130,_0x104983,_0x52e988){var _0x5359f5={};var _0x2d3b5f={};var _0x4bf9ec;var _0x4c7b77;return db[_0x389c('0x48')][_0x389c('0x52')]({'where':{'id':_0x2a0130['params']['id']}})[_0x389c('0x19')](handleEntityNotFound(_0x104983,null))['then'](function(_0x18d3d7){if(_0x18d3d7){_0x4bf9ec=_0x18d3d7;_0x2d3b5f['model']=_[_0x389c('0x34')](db['ZohoConfiguration'][_0x389c('0x32')]);_0x2d3b5f[_0x389c('0x35')]=_[_0x389c('0x34')](_0x2a0130[_0x389c('0x35')]);_0x2d3b5f['filters']=_[_0x389c('0x39')](_0x2d3b5f[_0x389c('0x33')],_0x2d3b5f['query']);_0x5359f5[_0x389c('0x3a')]=_['intersection'](_0x2d3b5f['model'],qs[_0x389c('0x3b')](_0x2a0130[_0x389c('0x35')][_0x389c('0x3b')]));_0x5359f5['attributes']=_0x5359f5[_0x389c('0x3a')][_0x389c('0x3c')]?_0x5359f5[_0x389c('0x3a')]:_0x2d3b5f[_0x389c('0x33')];_0x5359f5['order']=qs[_0x389c('0x40')](_0x2a0130['query']['sort']);_0x5359f5[_0x389c('0x41')]=qs[_0x389c('0x38')](_['pick'](_0x2a0130[_0x389c('0x35')],_0x2d3b5f[_0x389c('0x38')]));if(_0x2a0130['query']['filter']){_0x5359f5[_0x389c('0x41')]=_[_0x389c('0x45')](_0x5359f5[_0x389c('0x41')],{'$or':_[_0x389c('0x47')](_0x5359f5[_0x389c('0x3a')],function(_0x261dfb){var _0x15990e={};_0x15990e[_0x261dfb]={'$like':'%'+_0x2a0130[_0x389c('0x35')][_0x389c('0x46')]+'%'};return _0x15990e;})});}_0x5359f5=_[_0x389c('0x45')]({},_0x5359f5,_0x2a0130[_0x389c('0x53')]);return _0x4bf9ec['getConfigurations'](_0x5359f5);}})[_0x389c('0x19')](function(_0x404e8e){if(_0x404e8e){_0x4c7b77=_0x404e8e[_0x389c('0x3c')];if(!_0x2a0130['query'][_0x389c('0x3d')](_0x389c('0x3e'))){_0x5359f5[_0x389c('0x29')]=qs[_0x389c('0x29')](_0x2a0130['query'][_0x389c('0x29')]);_0x5359f5[_0x389c('0x28')]=qs['offset'](_0x2a0130[_0x389c('0x35')][_0x389c('0x28')]);}return _0x4bf9ec[_0x389c('0x51')](_0x5359f5);}})[_0x389c('0x19')](function(_0x199ed9){if(_0x199ed9){return _0x199ed9?{'count':_0x4c7b77,'rows':_0x199ed9}:null;}})[_0x389c('0x19')](respondWithResult(_0x104983,null))[_0x389c('0x22')](handleError(_0x104983,null));};exports[_0x389c('0x54')]=function(_0x33ef0c,_0x164787,_0x40980d){if(_0x33ef0c['body']['id']){delete _0x33ef0c[_0x389c('0x55')]['id'];}return db['ZohoAccount'][_0x389c('0x52')]({'where':{'id':_0x33ef0c[_0x389c('0x4d')]['id']}})[_0x389c('0x19')](handleEntityNotFound(_0x164787,null))['then'](function(_0x6d6ac8){if(_0x6d6ac8){_0x33ef0c[_0x389c('0x55')]['AccountId']=_0x6d6ac8['id'];_0x33ef0c[_0x389c('0x55')]['Subjects']=integrations['getSubjects'](_0x33ef0c[_0x389c('0x55')][_0x389c('0x56')],_0x33ef0c['body']['type']);_0x33ef0c[_0x389c('0x55')][_0x389c('0x57')]=integrations[_0x389c('0x58')](_0x33ef0c[_0x389c('0x55')][_0x389c('0x56')],_0x33ef0c[_0x389c('0x55')]['type']);return db[_0x389c('0x59')][_0x389c('0x50')](_0x33ef0c[_0x389c('0x55')],{'include':[{'model':db[_0x389c('0x5a')],'as':'Subjects'},{'model':db[_0x389c('0x5a')],'as':'Descriptions'}]});}return null;})[_0x389c('0x19')](respondWithResult(_0x164787,null))[_0x389c('0x22')](handleError(_0x164787,null));};exports[_0x389c('0x5b')]=function(_0x19d4e2,_0xa82c9,_0xd022fc){return db['ZohoAccount']['findOne']({'where':{'id':_0x19d4e2[_0x389c('0x4d')]['id']},'attributes':['id',_0x389c('0x5c'),_0x389c('0x5d')]})['then'](handleEntityNotFound(_0xa82c9,null))[_0x389c('0x19')](function(_0x232794){if(_0x232794){return rp({'method':'GET','uri':util[_0x389c('0x5e')](_0x389c('0x5f'),_0x232794[_0x389c('0x5c')]),'qs':{'authtoken':_0x232794[_0x389c('0x5d')],'scope':_0x389c('0x60')},'json':!![]});}})['then'](function(_0x2ec698){if(_0x2ec698){if(_0x2ec698[_0x389c('0x61')]&&_0x2ec698['response'][_0x389c('0x1e')]){throw new Error(_0x2ec698[_0x389c('0x61')][_0x389c('0x1e')][_0x389c('0x20')]);}var _0x28e794=[];if(_0x2ec698[_0x389c('0x62')]&&_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]){if(_0x2ec698['Calls'][_0x389c('0x63')]['FL']){var _0x1d3a90=[_0x389c('0x64')];for(var _0x2c21ce=0x0,_0x400937=_0x2ec698['Calls']['section']['FL'][_0x389c('0x3c')];_0x2c21ce<_0x400937;_0x2c21ce++){if(_[_0x389c('0x65')](_0x1d3a90,_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]['FL'][_0x2c21ce]['dv'])){_0x28e794['push']({'id':_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]['FL'][_0x2c21ce]['dv'],'name':_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]['FL'][_0x2c21ce][_0x389c('0x66')],'custom':_0x2ec698['Calls']['section']['FL'][_0x2c21ce][_0x389c('0x67')]===_0x389c('0x68')?!![]:![],'options':_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]['FL'][_0x2c21ce]['type']==='Pick\x20List'&&_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]['FL'][_0x2c21ce][_0x389c('0x69')]?_[_0x389c('0x47')](_0x2ec698[_0x389c('0x62')][_0x389c('0x63')]['FL'][_0x2c21ce]['val'],function(_0x1f8960){return{'name':_0x1f8960,'value':_0x1f8960};}):[]});}}}}return{'count':_0x28e794[_0x389c('0x3c')],'rows':_0x28e794};}})[_0x389c('0x19')](respondWithResult(_0xa82c9,null))[_0x389c('0x22')](function(_0x458c31){var _0x3b613e=_0x19d4e2['query'][_0x389c('0x6a')]?0x1f4:_0x458c31[_0x389c('0x6b')]||0x1f4;logger[_0x389c('0x1e')](_0x389c('0x6c'),_0x389c('0x5b'),_0x3b613e,JSON[_0x389c('0x1d')](_0x458c31));delete _0x458c31[_0x389c('0x30')];if(_0x3b613e===0x191){_0x3b613e=0x190;}_0xa82c9[_0x389c('0x24')](_0x3b613e)[_0x389c('0x6d')](_0x19d4e2['query'][_0x389c('0x6a')]?{'message':_0x389c('0x6e'),'statusCode':_0x458c31[_0x389c('0x6b')]}:_0x458c31);});};
\ No newline at end of file
+var _0x9996=['fields','hasOwnProperty','nolimit','sort','where','pick','dateStart','add','day','merge','filter','options','includeAll','include','findAll','rows','show','params','length','find','create','body','destroy','getConfigurations','findOne','ZohoConfiguration','order','map','addConfiguration','AccountId','channel','type','Descriptions','ZohoField','host','authToken','GET','format','https://crm.%s/crm/private/json/Calls/getFields','crmapi','response','Calls','section','Call\x20Purpose','includes','push','label','customfield','true','val','test','statusCode','getFields','stringify','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','then','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','ZohoAccount,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','end','json','count','offset','limit','save','update','name','send','index','ZohoAccount','rawAttributes','model','keys','query','dateEnd','filters','intersection','attributes'];(function(_0x216428,_0x5d20ea){var _0x313dd4=function(_0x447e0d){while(--_0x447e0d){_0x216428['push'](_0x216428['shift']());}};_0x313dd4(++_0x5d20ea);}(_0x9996,0xa9));var _0x6999=function(_0x51fbcb,_0x16d9e7){_0x51fbcb=_0x51fbcb-0x0;var _0x493f08=_0x9996[_0x51fbcb];return _0x493f08;};'use strict';var pdf=require(_0x6999('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6999('0x1'));var zipdir=require(_0x6999('0x2'));var jsonpatch=require(_0x6999('0x3'));var rp=require(_0x6999('0x4'));var moment=require(_0x6999('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6999('0x6'));var util=require(_0x6999('0x7'));var path=require(_0x6999('0x8'));var sox=require(_0x6999('0x9'));var csv=require('to-csv');var ejs=require(_0x6999('0xa'));var fs=require('fs');var _=require(_0x6999('0xb'));var squel=require(_0x6999('0xc'));var crypto=require(_0x6999('0xd'));var jsforce=require(_0x6999('0xe'));var deskjs=require(_0x6999('0xf'));var toCsv=require(_0x6999('0x10'));var querystring=require(_0x6999('0x11'));var Papa=require(_0x6999('0x12'));var Redis=require(_0x6999('0x13'));var qs=require('../../components/parsers/qs');var logger=require(_0x6999('0x14'))(_0x6999('0x15'));var utils=require(_0x6999('0x16'));var config=require(_0x6999('0x17'));var db=require(_0x6999('0x18'))['db'];var integrations=require(_0x6999('0x19'));var jayson=require(_0x6999('0x1a'));var client=jayson[_0x6999('0x1b')]['http']({'port':0x232a});function respondWithRpcPromise(_0x650f9d,_0xbd60ae,_0x297466,_0x1275e7){return new BPromise(function(_0x4dc082,_0x390e08){var _0x577b17=_0x1275e7||client;return _0x577b17[_0x6999('0x1c')](_0x650f9d,_0x297466)[_0x6999('0x1d')](function(_0x32589a){logger['info']('ZohoAccount,\x20%s,\x20%s',_0xbd60ae,'request\x20sent');logger[_0x6999('0x1e')](_0x6999('0x1f'),_0xbd60ae,_0x6999('0x20'),JSON['stringify'](_0x32589a));if(_0x32589a[_0x6999('0x21')]){if(_0x32589a[_0x6999('0x21')][_0x6999('0x22')]===0x1f4){logger[_0x6999('0x21')](_0x6999('0x23'),_0xbd60ae,_0x32589a['error'][_0x6999('0x24')]);return _0x390e08(_0x32589a[_0x6999('0x21')][_0x6999('0x24')]);}logger['error']('ZohoAccount,\x20%s,\x20%s',_0xbd60ae,_0x32589a[_0x6999('0x21')][_0x6999('0x24')]);return _0x4dc082(_0x32589a[_0x6999('0x21')][_0x6999('0x24')]);}else{logger[_0x6999('0x25')](_0x6999('0x23'),_0xbd60ae,_0x6999('0x20'));_0x4dc082(_0x32589a[_0x6999('0x26')][_0x6999('0x24')]);}})[_0x6999('0x27')](function(_0x4f0512){logger[_0x6999('0x21')](_0x6999('0x23'),_0xbd60ae,_0x4f0512);_0x390e08(_0x4f0512);});});}function respondWithStatusCode(_0x9f2389,_0x161be0){_0x161be0=_0x161be0||0xcc;return function(_0x26fb5b){if(_0x26fb5b){return _0x9f2389[_0x6999('0x28')](_0x161be0);}return _0x9f2389[_0x6999('0x29')](_0x161be0)[_0x6999('0x2a')]();};}function respondWithResult(_0x313beb,_0x33c29f){_0x33c29f=_0x33c29f||0xc8;return function(_0x1bd4f1){if(_0x1bd4f1){return _0x313beb['status'](_0x33c29f)[_0x6999('0x2b')](_0x1bd4f1);}};}function respondWithFilteredResult(_0x536593,_0x43dccc){return function(_0x48bc2b){if(_0x48bc2b){var _0x19a148=_0x48bc2b[_0x6999('0x2c')],_0x3155c4=_0x43dccc[_0x6999('0x2d')],_0x5b780b=_0x43dccc['offset']+_0x43dccc[_0x6999('0x2e')],_0x5a68bc;if(_0x5b780b>=_0x19a148){_0x5b780b=_0x19a148;_0x5a68bc=0xc8;}else{_0x5a68bc=0xce;}_0x536593[_0x6999('0x29')](_0x5a68bc);return _0x536593['set']('Content-Range',_0x3155c4+'-'+_0x5b780b+'/'+_0x19a148)[_0x6999('0x2b')](_0x48bc2b);}return null;};}function patchUpdates(_0x3588a2){return function(_0x1f4dc7){try{jsonpatch['apply'](_0x1f4dc7,_0x3588a2,!![]);}catch(_0x1540f3){return BPromise['reject'](_0x1540f3);}return _0x1f4dc7[_0x6999('0x2f')]();};}function saveUpdates(_0x3645f5,_0x518cee){return function(_0x363440){if(_0x363440){return _0x363440[_0x6999('0x30')](_0x3645f5)['then'](function(_0x21a189){return _0x21a189;});}return null;};}function removeEntity(_0x2a4d21,_0x151157){return function(_0x1bd190){if(_0x1bd190){return _0x1bd190['destroy']()['then'](function(){_0x2a4d21[_0x6999('0x29')](0xcc)[_0x6999('0x2a')]();});}};}function handleEntityNotFound(_0x23dd22,_0x4faf2b){return function(_0x1f016b){if(!_0x1f016b){_0x23dd22[_0x6999('0x28')](0x194);}return _0x1f016b;};}function handleError(_0x15c103,_0x483807){_0x483807=_0x483807||0x1f4;return function(_0x5cf67a){logger['error'](_0x5cf67a['stack']);if(_0x5cf67a['name']){delete _0x5cf67a[_0x6999('0x31')];}_0x15c103[_0x6999('0x29')](_0x483807)[_0x6999('0x32')](_0x5cf67a);};}exports[_0x6999('0x33')]=function(_0x15e42d,_0x4e4102){var _0x599e5b={},_0x974e4a={},_0x28f982={'count':0x0,'rows':[]};var _0x5aa838=db[_0x6999('0x34')][_0x6999('0x35')];_0x974e4a[_0x6999('0x36')]=_[_0x6999('0x37')](_0x5aa838);var _0x13b0a1={'dateStart':_0x15e42d[_0x6999('0x38')]['dateStart'],'dateEnd':_0x15e42d[_0x6999('0x38')]['dateEnd']};delete _0x15e42d['query']['dateStart'];delete _0x15e42d[_0x6999('0x38')][_0x6999('0x39')];_0x974e4a[_0x6999('0x38')]=_['keys'](_0x15e42d['query']);_0x974e4a[_0x6999('0x3a')]=_[_0x6999('0x3b')](_0x974e4a[_0x6999('0x36')],_0x974e4a['query']);_0x599e5b[_0x6999('0x3c')]=_[_0x6999('0x3b')](_0x974e4a[_0x6999('0x36')],qs[_0x6999('0x3d')](_0x15e42d[_0x6999('0x38')][_0x6999('0x3d')]));_0x599e5b[_0x6999('0x3c')]=_0x599e5b['attributes']['length']?_0x599e5b[_0x6999('0x3c')]:_0x974e4a[_0x6999('0x36')];if(!_0x15e42d['query'][_0x6999('0x3e')](_0x6999('0x3f'))){_0x599e5b[_0x6999('0x2e')]=qs['limit'](_0x15e42d['query'][_0x6999('0x2e')]);_0x599e5b[_0x6999('0x2d')]=qs[_0x6999('0x2d')](_0x15e42d['query'][_0x6999('0x2d')]);}_0x599e5b['order']=qs[_0x6999('0x40')](_0x15e42d[_0x6999('0x38')][_0x6999('0x40')]);_0x599e5b[_0x6999('0x41')]=qs[_0x6999('0x3a')](_[_0x6999('0x42')](_0x15e42d['query'],_0x974e4a[_0x6999('0x3a')]));if(_0x13b0a1[_0x6999('0x43')]){if(_0x13b0a1['dateEnd']){_0x13b0a1['dateEnd']=moment(_0x13b0a1['dateEnd'])[_0x6999('0x44')](0x1,'day');}else{_0x13b0a1[_0x6999('0x39')]=moment(_0x13b0a1['dateStart'])[_0x6999('0x44')](0x1,_0x6999('0x45'));}_[_0x6999('0x46')](_0x599e5b['where'],{'createdAt':{'$gte':_0x13b0a1['dateStart'],'$lte':_0x13b0a1[_0x6999('0x39')]}});}if(_0x15e42d[_0x6999('0x38')][_0x6999('0x47')]){_0x599e5b[_0x6999('0x41')]=_[_0x6999('0x46')](_0x599e5b[_0x6999('0x41')],{'$or':_['map'](_0x599e5b[_0x6999('0x3c')],function(_0x5ca202){var _0x4a128e={};_0x4a128e[_0x5ca202]={'$like':'%'+_0x15e42d[_0x6999('0x38')][_0x6999('0x47')]+'%'};return _0x4a128e;})});}_0x599e5b=_[_0x6999('0x46')]({},_0x599e5b,_0x15e42d[_0x6999('0x48')]);var _0x1ac903={'where':_0x599e5b[_0x6999('0x41')]};return db[_0x6999('0x34')][_0x6999('0x2c')](_0x1ac903)[_0x6999('0x1d')](function(_0x334569){_0x28f982[_0x6999('0x2c')]=_0x334569;if(_0x15e42d[_0x6999('0x38')][_0x6999('0x49')]){_0x599e5b[_0x6999('0x4a')]=[{'all':!![]}];}return db[_0x6999('0x34')][_0x6999('0x4b')](_0x599e5b);})[_0x6999('0x1d')](function(_0x1b8a2a){_0x28f982[_0x6999('0x4c')]=_0x1b8a2a;return _0x28f982;})[_0x6999('0x1d')](respondWithFilteredResult(_0x4e4102,_0x599e5b))[_0x6999('0x27')](handleError(_0x4e4102,null));};exports[_0x6999('0x4d')]=function(_0x59f581,_0x17cdd3){var _0x16c5a1={'raw':![],'where':{'id':_0x59f581[_0x6999('0x4e')]['id']}},_0x9f8ff0={};_0x9f8ff0[_0x6999('0x36')]=_['keys'](db[_0x6999('0x34')][_0x6999('0x35')]);_0x9f8ff0[_0x6999('0x38')]=_['keys'](_0x59f581[_0x6999('0x38')]);_0x9f8ff0['filters']=_['intersection'](_0x9f8ff0['model'],_0x9f8ff0['query']);_0x16c5a1['attributes']=_['intersection'](_0x9f8ff0['model'],qs[_0x6999('0x3d')](_0x59f581[_0x6999('0x38')][_0x6999('0x3d')]));_0x16c5a1[_0x6999('0x3c')]=_0x16c5a1[_0x6999('0x3c')][_0x6999('0x4f')]?_0x16c5a1[_0x6999('0x3c')]:_0x9f8ff0[_0x6999('0x36')];if(_0x59f581[_0x6999('0x38')]['includeAll']){_0x16c5a1[_0x6999('0x4a')]=[{'all':!![]}];}_0x16c5a1=_[_0x6999('0x46')]({},_0x16c5a1,_0x59f581[_0x6999('0x48')]);return db['ZohoAccount'][_0x6999('0x50')](_0x16c5a1)[_0x6999('0x1d')](handleEntityNotFound(_0x17cdd3,null))['then'](respondWithResult(_0x17cdd3,null))[_0x6999('0x27')](handleError(_0x17cdd3,null));};exports['create']=function(_0x4426c0,_0x4bc5f6){return db[_0x6999('0x34')][_0x6999('0x51')](_0x4426c0[_0x6999('0x52')],{})[_0x6999('0x1d')](respondWithResult(_0x4bc5f6,0xc9))['catch'](handleError(_0x4bc5f6,null));};exports[_0x6999('0x30')]=function(_0x1c2aee,_0x1da7e7){if(_0x1c2aee[_0x6999('0x52')]['id']){delete _0x1c2aee[_0x6999('0x52')]['id'];}return db[_0x6999('0x34')][_0x6999('0x50')]({'where':{'id':_0x1c2aee[_0x6999('0x4e')]['id']}})[_0x6999('0x1d')](handleEntityNotFound(_0x1da7e7,null))[_0x6999('0x1d')](saveUpdates(_0x1c2aee[_0x6999('0x52')],null))[_0x6999('0x1d')](respondWithResult(_0x1da7e7,null))['catch'](handleError(_0x1da7e7,null));};exports[_0x6999('0x53')]=function(_0x226a9b,_0x2cfe89){return db[_0x6999('0x34')][_0x6999('0x50')]({'where':{'id':_0x226a9b[_0x6999('0x4e')]['id']}})[_0x6999('0x1d')](handleEntityNotFound(_0x2cfe89,null))[_0x6999('0x1d')](removeEntity(_0x2cfe89,null))[_0x6999('0x27')](handleError(_0x2cfe89,null));};exports[_0x6999('0x54')]=function(_0x524f7a,_0x4125c4,_0x3eaa90){var _0x49ecbc={};var _0x9f5597={};var _0xd06c0d;var _0x730cf1;return db[_0x6999('0x34')][_0x6999('0x55')]({'where':{'id':_0x524f7a['params']['id']}})[_0x6999('0x1d')](handleEntityNotFound(_0x4125c4,null))[_0x6999('0x1d')](function(_0x585bbe){if(_0x585bbe){_0xd06c0d=_0x585bbe;_0x9f5597[_0x6999('0x36')]=_[_0x6999('0x37')](db[_0x6999('0x56')][_0x6999('0x35')]);_0x9f5597['query']=_[_0x6999('0x37')](_0x524f7a['query']);_0x9f5597['filters']=_[_0x6999('0x3b')](_0x9f5597[_0x6999('0x36')],_0x9f5597[_0x6999('0x38')]);_0x49ecbc[_0x6999('0x3c')]=_[_0x6999('0x3b')](_0x9f5597['model'],qs[_0x6999('0x3d')](_0x524f7a[_0x6999('0x38')][_0x6999('0x3d')]));_0x49ecbc[_0x6999('0x3c')]=_0x49ecbc[_0x6999('0x3c')]['length']?_0x49ecbc[_0x6999('0x3c')]:_0x9f5597['model'];_0x49ecbc[_0x6999('0x57')]=qs[_0x6999('0x40')](_0x524f7a[_0x6999('0x38')][_0x6999('0x40')]);_0x49ecbc[_0x6999('0x41')]=qs[_0x6999('0x3a')](_['pick'](_0x524f7a[_0x6999('0x38')],_0x9f5597[_0x6999('0x3a')]));if(_0x524f7a[_0x6999('0x38')][_0x6999('0x47')]){_0x49ecbc['where']=_[_0x6999('0x46')](_0x49ecbc[_0x6999('0x41')],{'$or':_[_0x6999('0x58')](_0x49ecbc[_0x6999('0x3c')],function(_0x4d8a37){var _0x17f4eb={};_0x17f4eb[_0x4d8a37]={'$like':'%'+_0x524f7a[_0x6999('0x38')][_0x6999('0x47')]+'%'};return _0x17f4eb;})});}_0x49ecbc=_['merge']({},_0x49ecbc,_0x524f7a[_0x6999('0x48')]);return _0xd06c0d[_0x6999('0x54')](_0x49ecbc);}})['then'](function(_0x417333){if(_0x417333){_0x730cf1=_0x417333[_0x6999('0x4f')];if(!_0x524f7a[_0x6999('0x38')][_0x6999('0x3e')]('nolimit')){_0x49ecbc[_0x6999('0x2e')]=qs['limit'](_0x524f7a['query']['limit']);_0x49ecbc[_0x6999('0x2d')]=qs[_0x6999('0x2d')](_0x524f7a['query']['offset']);}return _0xd06c0d[_0x6999('0x54')](_0x49ecbc);}})['then'](function(_0x499c54){if(_0x499c54){return _0x499c54?{'count':_0x730cf1,'rows':_0x499c54}:null;}})[_0x6999('0x1d')](respondWithResult(_0x4125c4,null))[_0x6999('0x27')](handleError(_0x4125c4,null));};exports[_0x6999('0x59')]=function(_0x3348df,_0x512db4,_0x148935){if(_0x3348df[_0x6999('0x52')]['id']){delete _0x3348df[_0x6999('0x52')]['id'];}return db[_0x6999('0x34')][_0x6999('0x55')]({'where':{'id':_0x3348df[_0x6999('0x4e')]['id']}})[_0x6999('0x1d')](handleEntityNotFound(_0x512db4,null))['then'](function(_0x33a46f){if(_0x33a46f){_0x3348df[_0x6999('0x52')][_0x6999('0x5a')]=_0x33a46f['id'];_0x3348df[_0x6999('0x52')]['Subjects']=integrations['getSubjects'](_0x3348df['body'][_0x6999('0x5b')],_0x3348df[_0x6999('0x52')][_0x6999('0x5c')]);_0x3348df[_0x6999('0x52')][_0x6999('0x5d')]=integrations['getDescriptions'](_0x3348df[_0x6999('0x52')][_0x6999('0x5b')],_0x3348df['body'][_0x6999('0x5c')]);return db[_0x6999('0x56')][_0x6999('0x51')](_0x3348df['body'],{'include':[{'model':db[_0x6999('0x5e')],'as':'Subjects'},{'model':db['ZohoField'],'as':_0x6999('0x5d')}]});}return null;})[_0x6999('0x1d')](respondWithResult(_0x512db4,null))[_0x6999('0x27')](handleError(_0x512db4,null));};exports['getFields']=function(_0x5b7f48,_0x55511f,_0x3f17f0){return db[_0x6999('0x34')][_0x6999('0x55')]({'where':{'id':_0x5b7f48['params']['id']},'attributes':['id',_0x6999('0x5f'),_0x6999('0x60')]})['then'](handleEntityNotFound(_0x55511f,null))['then'](function(_0x157514){if(_0x157514){return rp({'method':_0x6999('0x61'),'uri':util[_0x6999('0x62')](_0x6999('0x63'),_0x157514[_0x6999('0x5f')]),'qs':{'authtoken':_0x157514[_0x6999('0x60')],'scope':_0x6999('0x64')},'json':!![]});}})[_0x6999('0x1d')](function(_0x4c91aa){if(_0x4c91aa){if(_0x4c91aa[_0x6999('0x65')]&&_0x4c91aa[_0x6999('0x65')]['error']){throw new Error(_0x4c91aa[_0x6999('0x65')][_0x6999('0x21')][_0x6999('0x24')]);}var _0x5e080e=[];if(_0x4c91aa['Calls']&&_0x4c91aa[_0x6999('0x66')]['section']){if(_0x4c91aa[_0x6999('0x66')][_0x6999('0x67')]['FL']){var _0x194da7=[_0x6999('0x68')];for(var _0x1b11fd=0x0,_0x132112=_0x4c91aa[_0x6999('0x66')][_0x6999('0x67')]['FL'][_0x6999('0x4f')];_0x1b11fd<_0x132112;_0x1b11fd++){if(_[_0x6999('0x69')](_0x194da7,_0x4c91aa['Calls'][_0x6999('0x67')]['FL'][_0x1b11fd]['dv'])){_0x5e080e[_0x6999('0x6a')]({'id':_0x4c91aa[_0x6999('0x66')][_0x6999('0x67')]['FL'][_0x1b11fd]['dv'],'name':_0x4c91aa['Calls'][_0x6999('0x67')]['FL'][_0x1b11fd][_0x6999('0x6b')],'custom':_0x4c91aa['Calls'][_0x6999('0x67')]['FL'][_0x1b11fd][_0x6999('0x6c')]===_0x6999('0x6d')?!![]:![],'options':_0x4c91aa[_0x6999('0x66')]['section']['FL'][_0x1b11fd][_0x6999('0x5c')]==='Pick\x20List'&&_0x4c91aa[_0x6999('0x66')][_0x6999('0x67')]['FL'][_0x1b11fd][_0x6999('0x6e')]?_['map'](_0x4c91aa['Calls']['section']['FL'][_0x1b11fd]['val'],function(_0x11a773){return{'name':_0x11a773,'value':_0x11a773};}):[]});}}}}return{'count':_0x5e080e['length'],'rows':_0x5e080e};}})[_0x6999('0x1d')](respondWithResult(_0x55511f,null))[_0x6999('0x27')](function(_0x4e0adf){var _0x2177fb=_0x5b7f48[_0x6999('0x38')][_0x6999('0x6f')]?0x1f4:_0x4e0adf[_0x6999('0x70')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x6999('0x71'),_0x2177fb,JSON[_0x6999('0x72')](_0x4e0adf));delete _0x4e0adf[_0x6999('0x31')];if(_0x2177fb===0x191){_0x2177fb=0x190;}_0x55511f[_0x6999('0x29')](_0x2177fb)[_0x6999('0x32')](_0x5b7f48['query']['test']?{'message':'Wrong\x20credentials','statusCode':_0x4e0adf['statusCode']}:_0x4e0adf);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33a6=['util','../../config/logger','api','moment','bluebird','./intZohoAccount.attributes','../../components/integrations/configuration','exports','ZohoAccount','int_zoho_accounts','lodash'];(function(_0x211336,_0x5af509){var _0x498412=function(_0x142bce){while(--_0x142bce){_0x211336['push'](_0x211336['shift']());}};_0x498412(++_0x5af509);}(_0x33a6,0x1cd));var _0x633a=function(_0x12ff1a,_0x1ddc0b){_0x12ff1a=_0x12ff1a-0x0;var _0x33afaf=_0x33a6[_0x12ff1a];return _0x33afaf;};'use strict';var _=require(_0x633a('0x0'));var util=require(_0x633a('0x1'));var logger=require(_0x633a('0x2'))(_0x633a('0x3'));var moment=require(_0x633a('0x4'));var BPromise=require(_0x633a('0x5'));var rp=require('request-promise');var attributes=require(_0x633a('0x6'));var integrations=require(_0x633a('0x7'));module[_0x633a('0x8')]=function(_0x12427e,_0x10d103){return _0x12427e['define'](_0x633a('0x9'),attributes,{'tableName':_0x633a('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x525f=['./intZohoAccount.attributes','../../components/integrations/configuration','exports','ZohoAccount','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x27aec0,_0x41c28e){var _0x124990=function(_0x559a1e){while(--_0x559a1e){_0x27aec0['push'](_0x27aec0['shift']());}};_0x124990(++_0x41c28e);}(_0x525f,0xa4));var _0xf525=function(_0x5e2ade,_0x11e6ee){_0x5e2ade=_0x5e2ade-0x0;var _0x546e2a=_0x525f[_0x5e2ade];return _0x546e2a;};'use strict';var _=require('lodash');var util=require(_0xf525('0x0'));var logger=require(_0xf525('0x1'))(_0xf525('0x2'));var moment=require(_0xf525('0x3'));var BPromise=require(_0xf525('0x4'));var rp=require(_0xf525('0x5'));var attributes=require(_0xf525('0x6'));var integrations=require(_0xf525('0x7'));module[_0xf525('0x8')]=function(_0x2bd232,_0x34235f){return _0x2bd232['define'](_0xf525('0x9'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x247a=['model','attributes','then','GetZohoAccount','debug','stringify','ShowZohoAccount','find','lodash','../../config/utils','rpc','jayson/promise','client','http','request','ZohoAccount,\x20%s,\x20%s','request\x20sent','error','message','info','result','catch','ZohoAccount','findAll','options','raw','include','map'];(function(_0x21d36e,_0x5dc096){var _0x4cc307=function(_0x4ae995){while(--_0x4ae995){_0x21d36e['push'](_0x21d36e['shift']());}};_0x4cc307(++_0x5dc096);}(_0x247a,0xcc));var _0xa247=function(_0x246a98,_0xdf59a8){_0x246a98=_0x246a98-0x0;var _0x3b8b79=_0x247a[_0x246a98];return _0x3b8b79;};'use strict';var _=require(_0xa247('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xa247('0x1'));var logger=require('../../config/logger')(_0xa247('0x2'));var config=require('../../config/environment');var jayson=require(_0xa247('0x3'));var client=jayson[_0xa247('0x4')][_0xa247('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x530e67,_0x1bcf2e,_0x1933dc){return new BPromise(function(_0x5e2ce7,_0xbe0535){return client[_0xa247('0x6')](_0x530e67,_0x1933dc)['then'](function(_0x4b5903){logger['info'](_0xa247('0x7'),_0x1bcf2e,'request\x20sent');logger['debug']('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x1bcf2e,_0xa247('0x8'),JSON['stringify'](_0x4b5903));if(_0x4b5903[_0xa247('0x9')]){if(_0x4b5903[_0xa247('0x9')]['code']===0x1f4){logger['error'](_0xa247('0x7'),_0x1bcf2e,_0x4b5903[_0xa247('0x9')][_0xa247('0xa')]);return _0xbe0535(_0x4b5903['error']['message']);}logger[_0xa247('0x9')](_0xa247('0x7'),_0x1bcf2e,_0x4b5903[_0xa247('0x9')]['message']);return _0x5e2ce7(_0x4b5903['error']['message']);}else{logger[_0xa247('0xb')](_0xa247('0x7'),_0x1bcf2e,_0xa247('0x8'));_0x5e2ce7(_0x4b5903[_0xa247('0xc')]['message']);}})[_0xa247('0xd')](function(_0x5eea87){logger[_0xa247('0x9')](_0xa247('0x7'),_0x1bcf2e,_0x5eea87);_0xbe0535(_0x5eea87);});});}exports['GetZohoAccount']=function(_0x41aa44){var _0x193ac3=this;return new Promise(function(_0x588311,_0x1e6ebc){return db[_0xa247('0xe')][_0xa247('0xf')]({'raw':_0x41aa44[_0xa247('0x10')]?_0x41aa44[_0xa247('0x10')][_0xa247('0x11')]===undefined?!![]:![]:!![],'where':_0x41aa44[_0xa247('0x10')]?_0x41aa44[_0xa247('0x10')]['where']||null:null,'attributes':_0x41aa44[_0xa247('0x10')]?_0x41aa44[_0xa247('0x10')]['attributes']||null:null,'limit':_0x41aa44['options']?_0x41aa44[_0xa247('0x10')]['limit']||null:null,'include':_0x41aa44[_0xa247('0x10')]?_0x41aa44[_0xa247('0x10')][_0xa247('0x12')]?_[_0xa247('0x13')](_0x41aa44[_0xa247('0x10')][_0xa247('0x12')],function(_0x637aab){return{'model':db[_0x637aab[_0xa247('0x14')]],'as':_0x637aab['as'],'attributes':_0x637aab[_0xa247('0x15')],'include':_0x637aab[_0xa247('0x12')]?_[_0xa247('0x13')](_0x637aab[_0xa247('0x12')],function(_0x218527){return{'model':db[_0x218527['model']],'as':_0x218527['as'],'attributes':_0x218527['attributes'],'include':_0x218527['include']?_[_0xa247('0x13')](_0x218527[_0xa247('0x12')],function(_0x51bde7){return{'model':db[_0x51bde7[_0xa247('0x14')]],'as':_0x51bde7['as'],'attributes':_0x51bde7[_0xa247('0x15')]};}):[]};}):[]};}):[]:[]})[_0xa247('0x16')](function(_0x5b9c3d){logger[_0xa247('0xb')](_0xa247('0x17'),_0x41aa44);logger[_0xa247('0x18')](_0xa247('0x17'),_0x41aa44,JSON[_0xa247('0x19')](_0x5b9c3d));_0x588311(_0x5b9c3d);})[_0xa247('0xd')](function(_0x4c4200){logger[_0xa247('0x9')](_0xa247('0x17'),_0x4c4200[_0xa247('0xa')],_0x41aa44);_0x1e6ebc(_0x193ac3[_0xa247('0x9')](0x1f4,_0x4c4200[_0xa247('0xa')]));});});};exports[_0xa247('0x1a')]=function(_0x977e9d){var _0x5f2d84=this;return new Promise(function(_0x285762,_0x2eb606){return db['ZohoAccount'][_0xa247('0x1b')]({'raw':_0x977e9d['options']?_0x977e9d[_0xa247('0x10')][_0xa247('0x11')]===undefined?!![]:![]:!![],'where':_0x977e9d[_0xa247('0x10')]?_0x977e9d[_0xa247('0x10')]['where']||null:null,'attributes':_0x977e9d['options']?_0x977e9d[_0xa247('0x10')][_0xa247('0x15')]||null:null,'include':_0x977e9d['options']?_0x977e9d[_0xa247('0x10')][_0xa247('0x12')]?_[_0xa247('0x13')](_0x977e9d[_0xa247('0x10')][_0xa247('0x12')],function(_0x3ebe50){return{'model':db[_0x3ebe50['model']],'as':_0x3ebe50['as'],'attributes':_0x3ebe50[_0xa247('0x15')],'include':_0x3ebe50['include']?_[_0xa247('0x13')](_0x3ebe50[_0xa247('0x12')],function(_0x38769f){return{'model':db[_0x38769f[_0xa247('0x14')]],'as':_0x38769f['as'],'attributes':_0x38769f[_0xa247('0x15')],'include':_0x38769f[_0xa247('0x12')]?_[_0xa247('0x13')](_0x38769f[_0xa247('0x12')],function(_0x5bedbb){return{'model':db[_0x5bedbb[_0xa247('0x14')]],'as':_0x5bedbb['as'],'attributes':_0x5bedbb[_0xa247('0x15')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2b02fe){logger[_0xa247('0xb')](_0xa247('0x1a'),_0x977e9d);logger[_0xa247('0x18')](_0xa247('0x1a'),_0x977e9d,JSON[_0xa247('0x19')](_0x2b02fe));_0x285762(_0x2b02fe);})['catch'](function(_0x527fb3){logger[_0xa247('0x9')](_0xa247('0x1a'),_0x527fb3[_0xa247('0xa')],_0x977e9d);_0x2eb606(_0x5f2d84[_0xa247('0x9')](0x1f4,_0x527fb3[_0xa247('0xa')]));});});};
\ No newline at end of file
+var _0x21ea=['info','request\x20sent','debug','stringify','error','code','ZohoAccount,\x20%s,\x20%s','message','catch','ZohoAccount','findAll','options','where','attributes','limit','include','model','map','GetZohoAccount','ShowZohoAccount','raw','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then'];(function(_0x2ddb6d,_0x25d45b){var _0x56c103=function(_0x4f73c4){while(--_0x4f73c4){_0x2ddb6d['push'](_0x2ddb6d['shift']());}};_0x56c103(++_0x25d45b);}(_0x21ea,0xbf));var _0xa21e=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0x21ea[_0x220dbb];return _0x2b77de;};'use strict';var _=require(_0xa21e('0x0'));var util=require(_0xa21e('0x1'));var moment=require(_0xa21e('0x2'));var BPromise=require(_0xa21e('0x3'));var rs=require(_0xa21e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa21e('0x5'))['db'];var utils=require(_0xa21e('0x6'));var logger=require('../../config/logger')(_0xa21e('0x7'));var config=require(_0xa21e('0x8'));var jayson=require(_0xa21e('0x9'));var client=jayson['client'][_0xa21e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x44520d,_0x44bad8,_0x322fda){return new BPromise(function(_0x207526,_0xdfea13){return client[_0xa21e('0xb')](_0x44520d,_0x322fda)[_0xa21e('0xc')](function(_0x220727){logger[_0xa21e('0xd')]('ZohoAccount,\x20%s,\x20%s',_0x44bad8,_0xa21e('0xe'));logger[_0xa21e('0xf')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x44bad8,_0xa21e('0xe'),JSON[_0xa21e('0x10')](_0x220727));if(_0x220727[_0xa21e('0x11')]){if(_0x220727[_0xa21e('0x11')][_0xa21e('0x12')]===0x1f4){logger[_0xa21e('0x11')](_0xa21e('0x13'),_0x44bad8,_0x220727[_0xa21e('0x11')][_0xa21e('0x14')]);return _0xdfea13(_0x220727[_0xa21e('0x11')][_0xa21e('0x14')]);}logger[_0xa21e('0x11')]('ZohoAccount,\x20%s,\x20%s',_0x44bad8,_0x220727[_0xa21e('0x11')][_0xa21e('0x14')]);return _0x207526(_0x220727[_0xa21e('0x11')]['message']);}else{logger[_0xa21e('0xd')]('ZohoAccount,\x20%s,\x20%s',_0x44bad8,_0xa21e('0xe'));_0x207526(_0x220727['result'][_0xa21e('0x14')]);}})[_0xa21e('0x15')](function(_0x385275){logger[_0xa21e('0x11')](_0xa21e('0x13'),_0x44bad8,_0x385275);_0xdfea13(_0x385275);});});}exports['GetZohoAccount']=function(_0x36bab4){var _0x255ce4=this;return new Promise(function(_0x2656a0,_0x20cbe7){return db[_0xa21e('0x16')][_0xa21e('0x17')]({'raw':_0x36bab4[_0xa21e('0x18')]?_0x36bab4[_0xa21e('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x36bab4[_0xa21e('0x18')]?_0x36bab4[_0xa21e('0x18')][_0xa21e('0x19')]||null:null,'attributes':_0x36bab4[_0xa21e('0x18')]?_0x36bab4[_0xa21e('0x18')][_0xa21e('0x1a')]||null:null,'limit':_0x36bab4[_0xa21e('0x18')]?_0x36bab4[_0xa21e('0x18')][_0xa21e('0x1b')]||null:null,'include':_0x36bab4[_0xa21e('0x18')]?_0x36bab4[_0xa21e('0x18')][_0xa21e('0x1c')]?_['map'](_0x36bab4['options'][_0xa21e('0x1c')],function(_0x5506d9){return{'model':db[_0x5506d9[_0xa21e('0x1d')]],'as':_0x5506d9['as'],'attributes':_0x5506d9[_0xa21e('0x1a')],'include':_0x5506d9[_0xa21e('0x1c')]?_[_0xa21e('0x1e')](_0x5506d9['include'],function(_0x1adb28){return{'model':db[_0x1adb28[_0xa21e('0x1d')]],'as':_0x1adb28['as'],'attributes':_0x1adb28[_0xa21e('0x1a')],'include':_0x1adb28[_0xa21e('0x1c')]?_['map'](_0x1adb28['include'],function(_0x2b984b){return{'model':db[_0x2b984b[_0xa21e('0x1d')]],'as':_0x2b984b['as'],'attributes':_0x2b984b[_0xa21e('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xa21e('0xc')](function(_0x554323){logger[_0xa21e('0xd')](_0xa21e('0x1f'),_0x36bab4);logger[_0xa21e('0xf')]('GetZohoAccount',_0x36bab4,JSON['stringify'](_0x554323));_0x2656a0(_0x554323);})[_0xa21e('0x15')](function(_0x541722){logger['error']('GetZohoAccount',_0x541722[_0xa21e('0x14')],_0x36bab4);_0x20cbe7(_0x255ce4['error'](0x1f4,_0x541722['message']));});});};exports[_0xa21e('0x20')]=function(_0x2bb225){var _0x44b174=this;return new Promise(function(_0x558912,_0x1b451f){return db[_0xa21e('0x16')]['find']({'raw':_0x2bb225['options']?_0x2bb225['options'][_0xa21e('0x21')]===undefined?!![]:![]:!![],'where':_0x2bb225[_0xa21e('0x18')]?_0x2bb225['options']['where']||null:null,'attributes':_0x2bb225[_0xa21e('0x18')]?_0x2bb225[_0xa21e('0x18')][_0xa21e('0x1a')]||null:null,'include':_0x2bb225[_0xa21e('0x18')]?_0x2bb225['options'][_0xa21e('0x1c')]?_['map'](_0x2bb225[_0xa21e('0x18')][_0xa21e('0x1c')],function(_0x455ddd){return{'model':db[_0x455ddd[_0xa21e('0x1d')]],'as':_0x455ddd['as'],'attributes':_0x455ddd['attributes'],'include':_0x455ddd['include']?_[_0xa21e('0x1e')](_0x455ddd[_0xa21e('0x1c')],function(_0x2b10f7){return{'model':db[_0x2b10f7[_0xa21e('0x1d')]],'as':_0x2b10f7['as'],'attributes':_0x2b10f7[_0xa21e('0x1a')],'include':_0x2b10f7[_0xa21e('0x1c')]?_[_0xa21e('0x1e')](_0x2b10f7[_0xa21e('0x1c')],function(_0x309314){return{'model':db[_0x309314[_0xa21e('0x1d')]],'as':_0x309314['as'],'attributes':_0x309314[_0xa21e('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xa21e('0xc')](function(_0x15d5f4){logger['info'](_0xa21e('0x20'),_0x2bb225);logger[_0xa21e('0xf')](_0xa21e('0x20'),_0x2bb225,JSON[_0xa21e('0x10')](_0x15d5f4));_0x558912(_0x15d5f4);})[_0xa21e('0x15')](function(_0x370804){logger[_0xa21e('0x11')](_0xa21e('0x20'),_0x370804[_0xa21e('0x14')],_0x2bb225);_0x1b451f(_0x44b174['error'](0x1f4,_0x370804['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89e3=['index','/:id','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','put','update','delete','destroy','exports','util','path','connect-timeout','express','../../components/auth/service','./intZohoConfiguration.controller','get','isAuthenticated'];(function(_0x117e80,_0x56e8fe){var _0x3636a8=function(_0x2063b2){while(--_0x2063b2){_0x117e80['push'](_0x117e80['shift']());}};_0x3636a8(++_0x56e8fe);}(_0x89e3,0x66));var _0x389e=function(_0x548dcc,_0x1c3309){_0x548dcc=_0x548dcc-0x0;var _0x233cc2=_0x89e3[_0x548dcc];return _0x233cc2;};'use strict';var multer=require('multer');var util=require(_0x389e('0x0'));var path=require(_0x389e('0x1'));var timeout=require(_0x389e('0x2'));var express=require(_0x389e('0x3'));var router=express['Router']();var auth=require(_0x389e('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x389e('0x5'));router[_0x389e('0x6')]('/',auth[_0x389e('0x7')](),controller[_0x389e('0x8')]);router[_0x389e('0x6')](_0x389e('0x9'),auth['isAuthenticated'](),controller['show']);router[_0x389e('0x6')](_0x389e('0xa'),auth['isAuthenticated'](),controller[_0x389e('0xb')]);router[_0x389e('0x6')](_0x389e('0xc'),auth[_0x389e('0x7')](),controller[_0x389e('0xd')]);router[_0x389e('0x6')](_0x389e('0xe'),auth[_0x389e('0x7')](),controller[_0x389e('0xf')]);router[_0x389e('0x10')]('/',auth[_0x389e('0x7')](),controller['create']);router[_0x389e('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x389e('0x12')]);router[_0x389e('0x13')](_0x389e('0x9'),auth[_0x389e('0x7')](),controller[_0x389e('0x14')]);module[_0x389e('0x15')]=router;
\ No newline at end of file
+var _0xdecb=['../../components/interaction/service','../../config/environment','./intZohoConfiguration.controller','get','isAuthenticated','index','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','post','create','/:id','update','delete','destroy','exports','util','path','connect-timeout','Router'];(function(_0x24579a,_0x59612d){var _0x59dff7=function(_0x47c50f){while(--_0x47c50f){_0x24579a['push'](_0x24579a['shift']());}};_0x59dff7(++_0x59612d);}(_0xdecb,0xe2));var _0xbdec=function(_0x4abbb9,_0x2bab5a){_0x4abbb9=_0x4abbb9-0x0;var _0x2b1060=_0xdecb[_0x4abbb9];return _0x2b1060;};'use strict';var multer=require('multer');var util=require(_0xbdec('0x0'));var path=require(_0xbdec('0x1'));var timeout=require(_0xbdec('0x2'));var express=require('express');var router=express[_0xbdec('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0xbdec('0x4'));var config=require(_0xbdec('0x5'));var controller=require(_0xbdec('0x6'));router[_0xbdec('0x7')]('/',auth[_0xbdec('0x8')](),controller[_0xbdec('0x9')]);router[_0xbdec('0x7')]('/:id',auth[_0xbdec('0x8')](),controller[_0xbdec('0xa')]);router[_0xbdec('0x7')](_0xbdec('0xb'),auth[_0xbdec('0x8')](),controller[_0xbdec('0xc')]);router[_0xbdec('0x7')](_0xbdec('0xd'),auth['isAuthenticated'](),controller[_0xbdec('0xe')]);router[_0xbdec('0x7')](_0xbdec('0xf'),auth[_0xbdec('0x8')](),controller['getDescriptions']);router[_0xbdec('0x10')]('/',auth[_0xbdec('0x8')](),controller[_0xbdec('0x11')]);router['put'](_0xbdec('0x12'),auth[_0xbdec('0x8')](),controller[_0xbdec('0x13')]);router[_0xbdec('0x14')](_0xbdec('0x12'),auth[_0xbdec('0x8')](),controller[_0xbdec('0x15')]);module[_0xbdec('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7517=['exports','STRING','sequelize'];(function(_0x33cb97,_0x2be8e8){var _0xe85595=function(_0x664fa2){while(--_0x664fa2){_0x33cb97['push'](_0x33cb97['shift']());}};_0xe85595(++_0x2be8e8);}(_0x7517,0x1d6));var _0x7751=function(_0x433a86,_0x175b5c){_0x433a86=_0x433a86-0x0;var _0x23000c=_0x7517[_0x433a86];return _0x23000c;};'use strict';var Sequelize=require(_0x7751('0x0'));module[_0x7751('0x1')]={'name':{'type':Sequelize[_0x7751('0x2')]},'description':{'type':Sequelize[_0x7751('0x2')]}};
\ No newline at end of file
+var _0xf3b6=['sequelize','exports','STRING'];(function(_0x59275f,_0x3182e5){var _0x17c005=function(_0x252fc2){while(--_0x252fc2){_0x59275f['push'](_0x59275f['shift']());}};_0x17c005(++_0x3182e5);}(_0xf3b6,0x8d));var _0x6f3b=function(_0x225ea9,_0x103a57){_0x225ea9=_0x225ea9-0x0;var _0x1048d7=_0xf3b6[_0x225ea9];return _0x1048d7;};'use strict';var Sequelize=require(_0x6f3b('0x0'));module[_0x6f3b('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x6f3b('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5b9=['status','end','json','count','set','apply','reject','save','update','destroy','stack','name','send','index','ZohoConfiguration','rawAttributes','model','keys','query','dateEnd','dateStart','filters','intersection','attributes','fields','hasOwnProperty','limit','offset','order','sort','pick','day','add','merge','filter','where','options','includeAll','include','rows','show','params','length','find','create','body','getFields','findOne','ZohoField','nolimit','getSubjects','getDescriptions','map','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','to-csv','ejs','lodash','squel','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','request','then','info','ZohoConfiguration,\x20%s,\x20%s','request\x20sent','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus'];(function(_0x3ddebd,_0x1f268d){var _0x356979=function(_0x2984cf){while(--_0x2984cf){_0x3ddebd['push'](_0x3ddebd['shift']());}};_0x356979(++_0x1f268d);}(_0xb5b9,0x191));var _0x9b5b=function(_0x1dc20f,_0x793797){_0x1dc20f=_0x1dc20f-0x0;var _0x28e24a=_0xb5b9[_0x1dc20f];return _0x28e24a;};'use strict';var pdf=require(_0x9b5b('0x0'));var emlformat=require(_0x9b5b('0x1'));var rimraf=require(_0x9b5b('0x2'));var zipdir=require(_0x9b5b('0x3'));var jsonpatch=require(_0x9b5b('0x4'));var rp=require(_0x9b5b('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9b5b('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x9b5b('0x7'));var ejs=require(_0x9b5b('0x8'));var fs=require('fs');var _=require(_0x9b5b('0x9'));var squel=require(_0x9b5b('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x9b5b('0xb'));var toCsv=require(_0x9b5b('0x7'));var querystring=require(_0x9b5b('0xc'));var Papa=require('papaparse');var qs=require(_0x9b5b('0xd'));var logger=require(_0x9b5b('0xe'))(_0x9b5b('0xf'));var utils=require(_0x9b5b('0x10'));var config=require(_0x9b5b('0x11'));var db=require(_0x9b5b('0x12'))['db'];var jayson=require(_0x9b5b('0x13'));var client=jayson['client'][_0x9b5b('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x52e999,_0x23b552,_0x17eb56,_0x4bc2a4){return new BPromise(function(_0x1f8071,_0x48cab8){var _0x4cc2af=_0x4bc2a4||client;return _0x4cc2af[_0x9b5b('0x15')](_0x52e999,_0x17eb56)[_0x9b5b('0x16')](function(_0x29f5fc){logger[_0x9b5b('0x17')](_0x9b5b('0x18'),_0x23b552,_0x9b5b('0x19'));logger[_0x9b5b('0x1a')](_0x9b5b('0x1b'),_0x23b552,'request\x20sent',JSON['stringify'](_0x29f5fc));if(_0x29f5fc[_0x9b5b('0x1c')]){if(_0x29f5fc[_0x9b5b('0x1c')][_0x9b5b('0x1d')]===0x1f4){logger[_0x9b5b('0x1c')]('ZohoConfiguration,\x20%s,\x20%s',_0x23b552,_0x29f5fc[_0x9b5b('0x1c')]['message']);return _0x48cab8(_0x29f5fc['error'][_0x9b5b('0x1e')]);}logger[_0x9b5b('0x1c')]('ZohoConfiguration,\x20%s,\x20%s',_0x23b552,_0x29f5fc[_0x9b5b('0x1c')][_0x9b5b('0x1e')]);return _0x1f8071(_0x29f5fc[_0x9b5b('0x1c')]['message']);}else{logger[_0x9b5b('0x17')](_0x9b5b('0x18'),_0x23b552,_0x9b5b('0x19'));_0x1f8071(_0x29f5fc[_0x9b5b('0x1f')]['message']);}})[_0x9b5b('0x20')](function(_0x2c2d91){logger[_0x9b5b('0x1c')](_0x9b5b('0x18'),_0x23b552,_0x2c2d91);_0x48cab8(_0x2c2d91);});});}function respondWithStatusCode(_0x2429c5,_0x58fb85){_0x58fb85=_0x58fb85||0xcc;return function(_0x4c58db){if(_0x4c58db){return _0x2429c5[_0x9b5b('0x21')](_0x58fb85);}return _0x2429c5[_0x9b5b('0x22')](_0x58fb85)[_0x9b5b('0x23')]();};}function respondWithResult(_0x202ea5,_0xf14886){_0xf14886=_0xf14886||0xc8;return function(_0x29cd4c){if(_0x29cd4c){return _0x202ea5[_0x9b5b('0x22')](_0xf14886)[_0x9b5b('0x24')](_0x29cd4c);}};}function respondWithFilteredResult(_0x1ce5c1,_0x508809){return function(_0x4ee2f6){if(_0x4ee2f6){var _0x46ba4a=_0x4ee2f6[_0x9b5b('0x25')],_0x4bd158=_0x508809['offset'],_0x275dd0=_0x508809['offset']+_0x508809['limit'],_0x46b3a6;if(_0x275dd0>=_0x46ba4a){_0x275dd0=_0x46ba4a;_0x46b3a6=0xc8;}else{_0x46b3a6=0xce;}_0x1ce5c1[_0x9b5b('0x22')](_0x46b3a6);return _0x1ce5c1[_0x9b5b('0x26')]('Content-Range',_0x4bd158+'-'+_0x275dd0+'/'+_0x46ba4a)[_0x9b5b('0x24')](_0x4ee2f6);}return null;};}function patchUpdates(_0x3777d5){return function(_0x9beefa){try{jsonpatch[_0x9b5b('0x27')](_0x9beefa,_0x3777d5,!![]);}catch(_0x281ef3){return BPromise[_0x9b5b('0x28')](_0x281ef3);}return _0x9beefa[_0x9b5b('0x29')]();};}function saveUpdates(_0x2b197c,_0x1b42cf){return function(_0x38f7e6){if(_0x38f7e6){return _0x38f7e6[_0x9b5b('0x2a')](_0x2b197c)[_0x9b5b('0x16')](function(_0x21cbff){return _0x21cbff;});}return null;};}function removeEntity(_0x23eb54,_0xa7cd98){return function(_0x3caaf4){if(_0x3caaf4){return _0x3caaf4[_0x9b5b('0x2b')]()[_0x9b5b('0x16')](function(){_0x23eb54[_0x9b5b('0x22')](0xcc)[_0x9b5b('0x23')]();});}};}function handleEntityNotFound(_0x57147a,_0x51a151){return function(_0x3dbcba){if(!_0x3dbcba){_0x57147a['sendStatus'](0x194);}return _0x3dbcba;};}function handleError(_0x93d906,_0xc4e604){_0xc4e604=_0xc4e604||0x1f4;return function(_0x550717){logger[_0x9b5b('0x1c')](_0x550717[_0x9b5b('0x2c')]);if(_0x550717[_0x9b5b('0x2d')]){delete _0x550717['name'];}_0x93d906[_0x9b5b('0x22')](_0xc4e604)[_0x9b5b('0x2e')](_0x550717);};}exports[_0x9b5b('0x2f')]=function(_0x149cf0,_0x497858){var _0x3d51da={},_0x46fbc2={},_0x21d3be={'count':0x0,'rows':[]};var _0x53d856=db[_0x9b5b('0x30')][_0x9b5b('0x31')];_0x46fbc2[_0x9b5b('0x32')]=_[_0x9b5b('0x33')](_0x53d856);var _0x1c73df={'dateStart':_0x149cf0[_0x9b5b('0x34')]['dateStart'],'dateEnd':_0x149cf0['query'][_0x9b5b('0x35')]};delete _0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x36')];delete _0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x35')];_0x46fbc2[_0x9b5b('0x34')]=_['keys'](_0x149cf0[_0x9b5b('0x34')]);_0x46fbc2[_0x9b5b('0x37')]=_[_0x9b5b('0x38')](_0x46fbc2[_0x9b5b('0x32')],_0x46fbc2['query']);_0x3d51da[_0x9b5b('0x39')]=_[_0x9b5b('0x38')](_0x46fbc2[_0x9b5b('0x32')],qs[_0x9b5b('0x3a')](_0x149cf0['query'][_0x9b5b('0x3a')]));_0x3d51da[_0x9b5b('0x39')]=_0x3d51da[_0x9b5b('0x39')]['length']?_0x3d51da[_0x9b5b('0x39')]:_0x46fbc2['model'];if(!_0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x3b')]('nolimit')){_0x3d51da[_0x9b5b('0x3c')]=qs[_0x9b5b('0x3c')](_0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x3c')]);_0x3d51da[_0x9b5b('0x3d')]=qs[_0x9b5b('0x3d')](_0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x3d')]);}_0x3d51da[_0x9b5b('0x3e')]=qs[_0x9b5b('0x3f')](_0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x3f')]);_0x3d51da['where']=qs['filters'](_[_0x9b5b('0x40')](_0x149cf0['query'],_0x46fbc2[_0x9b5b('0x37')]));if(_0x1c73df[_0x9b5b('0x36')]){if(_0x1c73df[_0x9b5b('0x35')]){_0x1c73df[_0x9b5b('0x35')]=moment(_0x1c73df['dateEnd'])['add'](0x1,_0x9b5b('0x41'));}else{_0x1c73df[_0x9b5b('0x35')]=moment(_0x1c73df[_0x9b5b('0x36')])[_0x9b5b('0x42')](0x1,'day');}_[_0x9b5b('0x43')](_0x3d51da['where'],{'createdAt':{'$gte':_0x1c73df[_0x9b5b('0x36')],'$lte':_0x1c73df[_0x9b5b('0x35')]}});}if(_0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x44')]){_0x3d51da[_0x9b5b('0x45')]=_['merge'](_0x3d51da['where'],{'$or':_['map'](_0x3d51da[_0x9b5b('0x39')],function(_0xdc4af3){var _0x5ab9f2={};_0x5ab9f2[_0xdc4af3]={'$like':'%'+_0x149cf0['query']['filter']+'%'};return _0x5ab9f2;})});}_0x3d51da=_[_0x9b5b('0x43')]({},_0x3d51da,_0x149cf0[_0x9b5b('0x46')]);var _0x22211b={'where':_0x3d51da['where']};return db['ZohoConfiguration'][_0x9b5b('0x25')](_0x22211b)[_0x9b5b('0x16')](function(_0x5764d5){_0x21d3be[_0x9b5b('0x25')]=_0x5764d5;if(_0x149cf0[_0x9b5b('0x34')][_0x9b5b('0x47')]){_0x3d51da[_0x9b5b('0x48')]=[{'all':!![]}];}return db[_0x9b5b('0x30')]['findAll'](_0x3d51da);})[_0x9b5b('0x16')](function(_0x4fa725){_0x21d3be[_0x9b5b('0x49')]=_0x4fa725;return _0x21d3be;})['then'](respondWithFilteredResult(_0x497858,_0x3d51da))[_0x9b5b('0x20')](handleError(_0x497858,null));};exports[_0x9b5b('0x4a')]=function(_0x32af10,_0x5df6a2){var _0x331761={'raw':![],'where':{'id':_0x32af10[_0x9b5b('0x4b')]['id']}},_0x3eaeda={};_0x3eaeda[_0x9b5b('0x32')]=_[_0x9b5b('0x33')](db[_0x9b5b('0x30')][_0x9b5b('0x31')]);_0x3eaeda[_0x9b5b('0x34')]=_[_0x9b5b('0x33')](_0x32af10['query']);_0x3eaeda[_0x9b5b('0x37')]=_[_0x9b5b('0x38')](_0x3eaeda[_0x9b5b('0x32')],_0x3eaeda['query']);_0x331761[_0x9b5b('0x39')]=_[_0x9b5b('0x38')](_0x3eaeda['model'],qs[_0x9b5b('0x3a')](_0x32af10[_0x9b5b('0x34')]['fields']));_0x331761[_0x9b5b('0x39')]=_0x331761[_0x9b5b('0x39')][_0x9b5b('0x4c')]?_0x331761[_0x9b5b('0x39')]:_0x3eaeda[_0x9b5b('0x32')];if(_0x32af10[_0x9b5b('0x34')][_0x9b5b('0x47')]){_0x331761[_0x9b5b('0x48')]=[{'all':!![]}];}_0x331761=_[_0x9b5b('0x43')]({},_0x331761,_0x32af10[_0x9b5b('0x46')]);return db['ZohoConfiguration'][_0x9b5b('0x4d')](_0x331761)[_0x9b5b('0x16')](handleEntityNotFound(_0x5df6a2,null))[_0x9b5b('0x16')](respondWithResult(_0x5df6a2,null))[_0x9b5b('0x20')](handleError(_0x5df6a2,null));};exports[_0x9b5b('0x4e')]=function(_0x4b85a6,_0xd2729d){return db[_0x9b5b('0x30')]['create'](_0x4b85a6['body'],{})[_0x9b5b('0x16')](respondWithResult(_0xd2729d,0xc9))[_0x9b5b('0x20')](handleError(_0xd2729d,null));};exports[_0x9b5b('0x2a')]=function(_0x261b6f,_0x38deae){if(_0x261b6f[_0x9b5b('0x4f')]['id']){delete _0x261b6f[_0x9b5b('0x4f')]['id'];}return db[_0x9b5b('0x30')][_0x9b5b('0x4d')]({'where':{'id':_0x261b6f[_0x9b5b('0x4b')]['id']}})[_0x9b5b('0x16')](handleEntityNotFound(_0x38deae,null))['then'](saveUpdates(_0x261b6f['body'],null))[_0x9b5b('0x16')](respondWithResult(_0x38deae,null))[_0x9b5b('0x20')](handleError(_0x38deae,null));};exports[_0x9b5b('0x2b')]=function(_0xf682d6,_0x3d3c29){return db[_0x9b5b('0x30')][_0x9b5b('0x4d')]({'where':{'id':_0xf682d6[_0x9b5b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3d3c29,null))[_0x9b5b('0x16')](removeEntity(_0x3d3c29,null))[_0x9b5b('0x20')](handleError(_0x3d3c29,null));};exports[_0x9b5b('0x50')]=function(_0x58b5aa,_0x4a9a31,_0x38429e){var _0x2468dc={};var _0x227a51={};var _0x10ce30;var _0x35b47b;return db['ZohoConfiguration'][_0x9b5b('0x51')]({'where':{'id':_0x58b5aa['params']['id']}})[_0x9b5b('0x16')](handleEntityNotFound(_0x4a9a31,null))['then'](function(_0x524b50){if(_0x524b50){_0x10ce30=_0x524b50;_0x227a51[_0x9b5b('0x32')]=_[_0x9b5b('0x33')](db[_0x9b5b('0x52')][_0x9b5b('0x31')]);_0x227a51[_0x9b5b('0x34')]=_[_0x9b5b('0x33')](_0x58b5aa[_0x9b5b('0x34')]);_0x227a51['filters']=_[_0x9b5b('0x38')](_0x227a51[_0x9b5b('0x32')],_0x227a51[_0x9b5b('0x34')]);_0x2468dc[_0x9b5b('0x39')]=_[_0x9b5b('0x38')](_0x227a51[_0x9b5b('0x32')],qs[_0x9b5b('0x3a')](_0x58b5aa[_0x9b5b('0x34')][_0x9b5b('0x3a')]));_0x2468dc[_0x9b5b('0x39')]=_0x2468dc[_0x9b5b('0x39')]['length']?_0x2468dc[_0x9b5b('0x39')]:_0x227a51[_0x9b5b('0x32')];_0x2468dc['order']=qs[_0x9b5b('0x3f')](_0x58b5aa[_0x9b5b('0x34')][_0x9b5b('0x3f')]);_0x2468dc[_0x9b5b('0x45')]=qs[_0x9b5b('0x37')](_[_0x9b5b('0x40')](_0x58b5aa[_0x9b5b('0x34')],_0x227a51[_0x9b5b('0x37')]));if(_0x58b5aa[_0x9b5b('0x34')]['filter']){_0x2468dc[_0x9b5b('0x45')]=_[_0x9b5b('0x43')](_0x2468dc[_0x9b5b('0x45')],{'$or':_['map'](_0x2468dc[_0x9b5b('0x39')],function(_0x51d6af){var _0x483a63={};_0x483a63[_0x51d6af]={'$like':'%'+_0x58b5aa[_0x9b5b('0x34')][_0x9b5b('0x44')]+'%'};return _0x483a63;})});}_0x2468dc=_[_0x9b5b('0x43')]({},_0x2468dc,_0x58b5aa[_0x9b5b('0x46')]);return _0x10ce30[_0x9b5b('0x50')](_0x2468dc);}})['then'](function(_0xf4cf51){if(_0xf4cf51){_0x35b47b=_0xf4cf51[_0x9b5b('0x4c')];if(!_0x58b5aa[_0x9b5b('0x34')][_0x9b5b('0x3b')](_0x9b5b('0x53'))){_0x2468dc[_0x9b5b('0x3c')]=qs[_0x9b5b('0x3c')](_0x58b5aa[_0x9b5b('0x34')][_0x9b5b('0x3c')]);_0x2468dc['offset']=qs[_0x9b5b('0x3d')](_0x58b5aa[_0x9b5b('0x34')][_0x9b5b('0x3d')]);}return _0x10ce30[_0x9b5b('0x50')](_0x2468dc);}})[_0x9b5b('0x16')](function(_0x36f794){if(_0x36f794){return _0x36f794?{'count':_0x35b47b,'rows':_0x36f794}:null;}})[_0x9b5b('0x16')](respondWithResult(_0x4a9a31,null))[_0x9b5b('0x20')](handleError(_0x4a9a31,null));};exports[_0x9b5b('0x54')]=function(_0x31c2fa,_0x2dede5,_0x179c6a){var _0x19877a={};var _0x86f1a4={};var _0x58c006;var _0xb52994;return db['ZohoConfiguration']['findOne']({'where':{'id':_0x31c2fa['params']['id']}})[_0x9b5b('0x16')](handleEntityNotFound(_0x2dede5,null))['then'](function(_0x3a6054){if(_0x3a6054){_0x58c006=_0x3a6054;_0x86f1a4['model']=_['keys'](db[_0x9b5b('0x52')][_0x9b5b('0x31')]);_0x86f1a4[_0x9b5b('0x34')]=_[_0x9b5b('0x33')](_0x31c2fa[_0x9b5b('0x34')]);_0x86f1a4[_0x9b5b('0x37')]=_[_0x9b5b('0x38')](_0x86f1a4[_0x9b5b('0x32')],_0x86f1a4[_0x9b5b('0x34')]);_0x19877a[_0x9b5b('0x39')]=_['intersection'](_0x86f1a4[_0x9b5b('0x32')],qs[_0x9b5b('0x3a')](_0x31c2fa[_0x9b5b('0x34')][_0x9b5b('0x3a')]));_0x19877a[_0x9b5b('0x39')]=_0x19877a[_0x9b5b('0x39')]['length']?_0x19877a[_0x9b5b('0x39')]:_0x86f1a4[_0x9b5b('0x32')];_0x19877a[_0x9b5b('0x3e')]=qs[_0x9b5b('0x3f')](_0x31c2fa[_0x9b5b('0x34')][_0x9b5b('0x3f')]);_0x19877a['where']=qs['filters'](_['pick'](_0x31c2fa[_0x9b5b('0x34')],_0x86f1a4['filters']));if(_0x31c2fa[_0x9b5b('0x34')][_0x9b5b('0x44')]){_0x19877a[_0x9b5b('0x45')]=_[_0x9b5b('0x43')](_0x19877a[_0x9b5b('0x45')],{'$or':_['map'](_0x19877a[_0x9b5b('0x39')],function(_0x35d779){var _0x70b2b0={};_0x70b2b0[_0x35d779]={'$like':'%'+_0x31c2fa[_0x9b5b('0x34')]['filter']+'%'};return _0x70b2b0;})});}_0x19877a=_[_0x9b5b('0x43')]({},_0x19877a,_0x31c2fa[_0x9b5b('0x46')]);return _0x58c006[_0x9b5b('0x54')](_0x19877a);}})[_0x9b5b('0x16')](function(_0x343800){if(_0x343800){_0xb52994=_0x343800[_0x9b5b('0x4c')];if(!_0x31c2fa[_0x9b5b('0x34')]['hasOwnProperty'](_0x9b5b('0x53'))){_0x19877a[_0x9b5b('0x3c')]=qs[_0x9b5b('0x3c')](_0x31c2fa[_0x9b5b('0x34')][_0x9b5b('0x3c')]);_0x19877a[_0x9b5b('0x3d')]=qs[_0x9b5b('0x3d')](_0x31c2fa[_0x9b5b('0x34')]['offset']);}return _0x58c006['getSubjects'](_0x19877a);}})['then'](function(_0x1783e6){if(_0x1783e6){return _0x1783e6?{'count':_0xb52994,'rows':_0x1783e6}:null;}})[_0x9b5b('0x16')](respondWithResult(_0x2dede5,null))[_0x9b5b('0x20')](handleError(_0x2dede5,null));};exports[_0x9b5b('0x55')]=function(_0x5696a6,_0x4de1ee,_0x25d821){var _0x451425={};var _0x93817c={};var _0xd9017a;var _0x4f6c65;return db[_0x9b5b('0x30')][_0x9b5b('0x51')]({'where':{'id':_0x5696a6[_0x9b5b('0x4b')]['id']}})[_0x9b5b('0x16')](handleEntityNotFound(_0x4de1ee,null))['then'](function(_0x2b3c40){if(_0x2b3c40){_0xd9017a=_0x2b3c40;_0x93817c['model']=_[_0x9b5b('0x33')](db[_0x9b5b('0x52')][_0x9b5b('0x31')]);_0x93817c[_0x9b5b('0x34')]=_['keys'](_0x5696a6['query']);_0x93817c[_0x9b5b('0x37')]=_['intersection'](_0x93817c['model'],_0x93817c[_0x9b5b('0x34')]);_0x451425[_0x9b5b('0x39')]=_[_0x9b5b('0x38')](_0x93817c['model'],qs[_0x9b5b('0x3a')](_0x5696a6[_0x9b5b('0x34')][_0x9b5b('0x3a')]));_0x451425[_0x9b5b('0x39')]=_0x451425[_0x9b5b('0x39')][_0x9b5b('0x4c')]?_0x451425[_0x9b5b('0x39')]:_0x93817c[_0x9b5b('0x32')];_0x451425['order']=qs[_0x9b5b('0x3f')](_0x5696a6[_0x9b5b('0x34')][_0x9b5b('0x3f')]);_0x451425[_0x9b5b('0x45')]=qs[_0x9b5b('0x37')](_[_0x9b5b('0x40')](_0x5696a6['query'],_0x93817c[_0x9b5b('0x37')]));if(_0x5696a6[_0x9b5b('0x34')][_0x9b5b('0x44')]){_0x451425[_0x9b5b('0x45')]=_[_0x9b5b('0x43')](_0x451425['where'],{'$or':_[_0x9b5b('0x56')](_0x451425['attributes'],function(_0x2ebf18){var _0x505ffb={};_0x505ffb[_0x2ebf18]={'$like':'%'+_0x5696a6[_0x9b5b('0x34')][_0x9b5b('0x44')]+'%'};return _0x505ffb;})});}_0x451425=_[_0x9b5b('0x43')]({},_0x451425,_0x5696a6['options']);return _0xd9017a['getDescriptions'](_0x451425);}})['then'](function(_0xd2b30){if(_0xd2b30){_0x4f6c65=_0xd2b30[_0x9b5b('0x4c')];if(!_0x5696a6['query']['hasOwnProperty']('nolimit')){_0x451425['limit']=qs['limit'](_0x5696a6[_0x9b5b('0x34')][_0x9b5b('0x3c')]);_0x451425[_0x9b5b('0x3d')]=qs[_0x9b5b('0x3d')](_0x5696a6['query'][_0x9b5b('0x3d')]);}return _0xd9017a[_0x9b5b('0x55')](_0x451425);}})[_0x9b5b('0x16')](function(_0x36d225){if(_0x36d225){return _0x36d225?{'count':_0x4f6c65,'rows':_0x36d225}:null;}})[_0x9b5b('0x16')](respondWithResult(_0x4de1ee,null))[_0x9b5b('0x20')](handleError(_0x4de1ee,null));};
\ No newline at end of file
+var _0xac4f=['add','day','filter','merge','options','includeAll','findAll','rows','show','include','create','body','update','find','params','getFields','findOne','ZohoField','pick','hasOwnProperty','getSubjects','map','getDescriptions','html-pdf','rimraf','fast-json-patch','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','ZohoConfiguration,\x20%s,\x20%s','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','count','offset','set','json','reject','destroy','sendStatus','stack','name','index','ZohoConfiguration','rawAttributes','model','keys','dateStart','query','dateEnd','filters','attributes','intersection','fields','length','nolimit','limit','order','sort','where'];(function(_0x5f4cd7,_0x459c44){var _0x47c93f=function(_0x11f384){while(--_0x11f384){_0x5f4cd7['push'](_0x5f4cd7['shift']());}};_0x47c93f(++_0x459c44);}(_0xac4f,0x122));var _0xfac4=function(_0x24b5d8,_0x203128){_0x24b5d8=_0x24b5d8-0x0;var _0x54908d=_0xac4f[_0x24b5d8];return _0x54908d;};'use strict';var pdf=require(_0xfac4('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xfac4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfac4('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xfac4('0x3'));var Mustache=require(_0xfac4('0x4'));var util=require('util');var path=require(_0xfac4('0x5'));var sox=require(_0xfac4('0x6'));var csv=require(_0xfac4('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xfac4('0x8'));var squel=require(_0xfac4('0x9'));var crypto=require(_0xfac4('0xa'));var jsforce=require(_0xfac4('0xb'));var deskjs=require(_0xfac4('0xc'));var toCsv=require(_0xfac4('0x7'));var querystring=require('querystring');var Papa=require(_0xfac4('0xd'));var Redis=require(_0xfac4('0xe'));var qs=require(_0xfac4('0xf'));var logger=require(_0xfac4('0x10'))(_0xfac4('0x11'));var utils=require(_0xfac4('0x12'));var config=require(_0xfac4('0x13'));var db=require(_0xfac4('0x14'))['db'];var jayson=require(_0xfac4('0x15'));var client=jayson[_0xfac4('0x16')][_0xfac4('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x344f77,_0x5e374a,_0x2f9c87,_0x5bcc16){return new BPromise(function(_0x3fc3f8,_0x351dc8){var _0x2ba0d1=_0x5bcc16||client;return _0x2ba0d1[_0xfac4('0x18')](_0x344f77,_0x2f9c87)[_0xfac4('0x19')](function(_0xcde790){logger[_0xfac4('0x1a')](_0xfac4('0x1b'),_0x5e374a,'request\x20sent');logger[_0xfac4('0x1c')](_0xfac4('0x1d'),_0x5e374a,_0xfac4('0x1e'),JSON[_0xfac4('0x1f')](_0xcde790));if(_0xcde790[_0xfac4('0x20')]){if(_0xcde790[_0xfac4('0x20')][_0xfac4('0x21')]===0x1f4){logger[_0xfac4('0x20')](_0xfac4('0x1b'),_0x5e374a,_0xcde790['error']['message']);return _0x351dc8(_0xcde790['error'][_0xfac4('0x22')]);}logger[_0xfac4('0x20')]('ZohoConfiguration,\x20%s,\x20%s',_0x5e374a,_0xcde790['error']['message']);return _0x3fc3f8(_0xcde790[_0xfac4('0x20')][_0xfac4('0x22')]);}else{logger['info'](_0xfac4('0x1b'),_0x5e374a,_0xfac4('0x1e'));_0x3fc3f8(_0xcde790[_0xfac4('0x23')][_0xfac4('0x22')]);}})[_0xfac4('0x24')](function(_0x3392d7){logger[_0xfac4('0x20')](_0xfac4('0x1b'),_0x5e374a,_0x3392d7);_0x351dc8(_0x3392d7);});});}function respondWithStatusCode(_0x238895,_0x40f6f4){_0x40f6f4=_0x40f6f4||0xcc;return function(_0x3d2834){if(_0x3d2834){return _0x238895['sendStatus'](_0x40f6f4);}return _0x238895[_0xfac4('0x25')](_0x40f6f4)[_0xfac4('0x26')]();};}function respondWithResult(_0x56aab9,_0x410602){_0x410602=_0x410602||0xc8;return function(_0x705fe8){if(_0x705fe8){return _0x56aab9[_0xfac4('0x25')](_0x410602)['json'](_0x705fe8);}};}function respondWithFilteredResult(_0x44d637,_0x8e5686){return function(_0x58bb4b){if(_0x58bb4b){var _0xc5a38f=_0x58bb4b[_0xfac4('0x27')],_0x41c8c6=_0x8e5686['offset'],_0x395754=_0x8e5686[_0xfac4('0x28')]+_0x8e5686['limit'],_0x3b54e4;if(_0x395754>=_0xc5a38f){_0x395754=_0xc5a38f;_0x3b54e4=0xc8;}else{_0x3b54e4=0xce;}_0x44d637[_0xfac4('0x25')](_0x3b54e4);return _0x44d637[_0xfac4('0x29')]('Content-Range',_0x41c8c6+'-'+_0x395754+'/'+_0xc5a38f)[_0xfac4('0x2a')](_0x58bb4b);}return null;};}function patchUpdates(_0x4bf01e){return function(_0xe6e21c){try{jsonpatch['apply'](_0xe6e21c,_0x4bf01e,!![]);}catch(_0x598504){return BPromise[_0xfac4('0x2b')](_0x598504);}return _0xe6e21c['save']();};}function saveUpdates(_0x1703cd,_0x42fb1b){return function(_0x55565f){if(_0x55565f){return _0x55565f['update'](_0x1703cd)[_0xfac4('0x19')](function(_0x5e2216){return _0x5e2216;});}return null;};}function removeEntity(_0xa39de0,_0x347bfa){return function(_0x240bf5){if(_0x240bf5){return _0x240bf5[_0xfac4('0x2c')]()[_0xfac4('0x19')](function(){_0xa39de0[_0xfac4('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0x58c574,_0x2cbd4e){return function(_0x4776db){if(!_0x4776db){_0x58c574[_0xfac4('0x2d')](0x194);}return _0x4776db;};}function handleError(_0x3de475,_0xc7e93b){_0xc7e93b=_0xc7e93b||0x1f4;return function(_0x34b10e){logger[_0xfac4('0x20')](_0x34b10e[_0xfac4('0x2e')]);if(_0x34b10e[_0xfac4('0x2f')]){delete _0x34b10e[_0xfac4('0x2f')];}_0x3de475['status'](_0xc7e93b)['send'](_0x34b10e);};}exports[_0xfac4('0x30')]=function(_0x80d4c4,_0x36b74e){var _0x41b0a9={},_0x3a5f5b={},_0x1a27dd={'count':0x0,'rows':[]};var _0x1a8d65=db[_0xfac4('0x31')][_0xfac4('0x32')];_0x3a5f5b[_0xfac4('0x33')]=_[_0xfac4('0x34')](_0x1a8d65);var _0x4730df={'dateStart':_0x80d4c4['query'][_0xfac4('0x35')],'dateEnd':_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x37')]};delete _0x80d4c4[_0xfac4('0x36')][_0xfac4('0x35')];delete _0x80d4c4[_0xfac4('0x36')]['dateEnd'];_0x3a5f5b['query']=_[_0xfac4('0x34')](_0x80d4c4[_0xfac4('0x36')]);_0x3a5f5b[_0xfac4('0x38')]=_['intersection'](_0x3a5f5b[_0xfac4('0x33')],_0x3a5f5b[_0xfac4('0x36')]);_0x41b0a9[_0xfac4('0x39')]=_[_0xfac4('0x3a')](_0x3a5f5b[_0xfac4('0x33')],qs['fields'](_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x3b')]));_0x41b0a9[_0xfac4('0x39')]=_0x41b0a9[_0xfac4('0x39')][_0xfac4('0x3c')]?_0x41b0a9[_0xfac4('0x39')]:_0x3a5f5b[_0xfac4('0x33')];if(!_0x80d4c4[_0xfac4('0x36')]['hasOwnProperty'](_0xfac4('0x3d'))){_0x41b0a9[_0xfac4('0x3e')]=qs[_0xfac4('0x3e')](_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x3e')]);_0x41b0a9[_0xfac4('0x28')]=qs[_0xfac4('0x28')](_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x28')]);}_0x41b0a9[_0xfac4('0x3f')]=qs[_0xfac4('0x40')](_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x40')]);_0x41b0a9[_0xfac4('0x41')]=qs[_0xfac4('0x38')](_['pick'](_0x80d4c4['query'],_0x3a5f5b['filters']));if(_0x4730df[_0xfac4('0x35')]){if(_0x4730df[_0xfac4('0x37')]){_0x4730df[_0xfac4('0x37')]=moment(_0x4730df[_0xfac4('0x37')])[_0xfac4('0x42')](0x1,_0xfac4('0x43'));}else{_0x4730df['dateEnd']=moment(_0x4730df['dateStart'])['add'](0x1,_0xfac4('0x43'));}_['merge'](_0x41b0a9[_0xfac4('0x41')],{'createdAt':{'$gte':_0x4730df[_0xfac4('0x35')],'$lte':_0x4730df[_0xfac4('0x37')]}});}if(_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x44')]){_0x41b0a9[_0xfac4('0x41')]=_[_0xfac4('0x45')](_0x41b0a9[_0xfac4('0x41')],{'$or':_['map'](_0x41b0a9[_0xfac4('0x39')],function(_0x2dd81d){var _0x4cb5bc={};_0x4cb5bc[_0x2dd81d]={'$like':'%'+_0x80d4c4[_0xfac4('0x36')]['filter']+'%'};return _0x4cb5bc;})});}_0x41b0a9=_[_0xfac4('0x45')]({},_0x41b0a9,_0x80d4c4[_0xfac4('0x46')]);var _0x338f7f={'where':_0x41b0a9[_0xfac4('0x41')]};return db[_0xfac4('0x31')][_0xfac4('0x27')](_0x338f7f)['then'](function(_0x113fad){_0x1a27dd[_0xfac4('0x27')]=_0x113fad;if(_0x80d4c4[_0xfac4('0x36')][_0xfac4('0x47')]){_0x41b0a9['include']=[{'all':!![]}];}return db[_0xfac4('0x31')][_0xfac4('0x48')](_0x41b0a9);})[_0xfac4('0x19')](function(_0x5e9955){_0x1a27dd[_0xfac4('0x49')]=_0x5e9955;return _0x1a27dd;})[_0xfac4('0x19')](respondWithFilteredResult(_0x36b74e,_0x41b0a9))[_0xfac4('0x24')](handleError(_0x36b74e,null));};exports[_0xfac4('0x4a')]=function(_0x594b99,_0x12afb6){var _0x518f2e={'raw':![],'where':{'id':_0x594b99['params']['id']}},_0x2c2a4c={};_0x2c2a4c[_0xfac4('0x33')]=_[_0xfac4('0x34')](db[_0xfac4('0x31')][_0xfac4('0x32')]);_0x2c2a4c['query']=_[_0xfac4('0x34')](_0x594b99['query']);_0x2c2a4c['filters']=_['intersection'](_0x2c2a4c[_0xfac4('0x33')],_0x2c2a4c[_0xfac4('0x36')]);_0x518f2e[_0xfac4('0x39')]=_[_0xfac4('0x3a')](_0x2c2a4c[_0xfac4('0x33')],qs[_0xfac4('0x3b')](_0x594b99[_0xfac4('0x36')][_0xfac4('0x3b')]));_0x518f2e[_0xfac4('0x39')]=_0x518f2e['attributes'][_0xfac4('0x3c')]?_0x518f2e[_0xfac4('0x39')]:_0x2c2a4c[_0xfac4('0x33')];if(_0x594b99[_0xfac4('0x36')]['includeAll']){_0x518f2e[_0xfac4('0x4b')]=[{'all':!![]}];}_0x518f2e=_[_0xfac4('0x45')]({},_0x518f2e,_0x594b99[_0xfac4('0x46')]);return db[_0xfac4('0x31')]['find'](_0x518f2e)[_0xfac4('0x19')](handleEntityNotFound(_0x12afb6,null))['then'](respondWithResult(_0x12afb6,null))[_0xfac4('0x24')](handleError(_0x12afb6,null));};exports[_0xfac4('0x4c')]=function(_0x3403db,_0x4f90cd){return db[_0xfac4('0x31')][_0xfac4('0x4c')](_0x3403db[_0xfac4('0x4d')],{})[_0xfac4('0x19')](respondWithResult(_0x4f90cd,0xc9))[_0xfac4('0x24')](handleError(_0x4f90cd,null));};exports[_0xfac4('0x4e')]=function(_0x4fbcce,_0x28f025){if(_0x4fbcce[_0xfac4('0x4d')]['id']){delete _0x4fbcce[_0xfac4('0x4d')]['id'];}return db[_0xfac4('0x31')][_0xfac4('0x4f')]({'where':{'id':_0x4fbcce[_0xfac4('0x50')]['id']}})[_0xfac4('0x19')](handleEntityNotFound(_0x28f025,null))['then'](saveUpdates(_0x4fbcce['body'],null))[_0xfac4('0x19')](respondWithResult(_0x28f025,null))[_0xfac4('0x24')](handleError(_0x28f025,null));};exports[_0xfac4('0x2c')]=function(_0x4e34e1,_0x4b2e55){return db[_0xfac4('0x31')][_0xfac4('0x4f')]({'where':{'id':_0x4e34e1['params']['id']}})['then'](handleEntityNotFound(_0x4b2e55,null))[_0xfac4('0x19')](removeEntity(_0x4b2e55,null))[_0xfac4('0x24')](handleError(_0x4b2e55,null));};exports[_0xfac4('0x51')]=function(_0x20dde9,_0x5ea747,_0x2ac6cc){var _0x2570ae={};var _0x2f2b87={};var _0x3e5f80;var _0x504944;return db[_0xfac4('0x31')][_0xfac4('0x52')]({'where':{'id':_0x20dde9[_0xfac4('0x50')]['id']}})[_0xfac4('0x19')](handleEntityNotFound(_0x5ea747,null))[_0xfac4('0x19')](function(_0x57abb1){if(_0x57abb1){_0x3e5f80=_0x57abb1;_0x2f2b87['model']=_['keys'](db[_0xfac4('0x53')][_0xfac4('0x32')]);_0x2f2b87[_0xfac4('0x36')]=_[_0xfac4('0x34')](_0x20dde9[_0xfac4('0x36')]);_0x2f2b87['filters']=_['intersection'](_0x2f2b87[_0xfac4('0x33')],_0x2f2b87[_0xfac4('0x36')]);_0x2570ae['attributes']=_[_0xfac4('0x3a')](_0x2f2b87[_0xfac4('0x33')],qs[_0xfac4('0x3b')](_0x20dde9[_0xfac4('0x36')][_0xfac4('0x3b')]));_0x2570ae[_0xfac4('0x39')]=_0x2570ae[_0xfac4('0x39')][_0xfac4('0x3c')]?_0x2570ae[_0xfac4('0x39')]:_0x2f2b87[_0xfac4('0x33')];_0x2570ae['order']=qs[_0xfac4('0x40')](_0x20dde9['query']['sort']);_0x2570ae['where']=qs[_0xfac4('0x38')](_[_0xfac4('0x54')](_0x20dde9[_0xfac4('0x36')],_0x2f2b87[_0xfac4('0x38')]));if(_0x20dde9[_0xfac4('0x36')][_0xfac4('0x44')]){_0x2570ae[_0xfac4('0x41')]=_[_0xfac4('0x45')](_0x2570ae[_0xfac4('0x41')],{'$or':_['map'](_0x2570ae[_0xfac4('0x39')],function(_0x1b909b){var _0x52f6dc={};_0x52f6dc[_0x1b909b]={'$like':'%'+_0x20dde9[_0xfac4('0x36')][_0xfac4('0x44')]+'%'};return _0x52f6dc;})});}_0x2570ae=_['merge']({},_0x2570ae,_0x20dde9['options']);return _0x3e5f80[_0xfac4('0x51')](_0x2570ae);}})[_0xfac4('0x19')](function(_0x1b50b5){if(_0x1b50b5){_0x504944=_0x1b50b5['length'];if(!_0x20dde9['query'][_0xfac4('0x55')](_0xfac4('0x3d'))){_0x2570ae['limit']=qs[_0xfac4('0x3e')](_0x20dde9[_0xfac4('0x36')]['limit']);_0x2570ae[_0xfac4('0x28')]=qs[_0xfac4('0x28')](_0x20dde9['query'][_0xfac4('0x28')]);}return _0x3e5f80[_0xfac4('0x51')](_0x2570ae);}})['then'](function(_0x212553){if(_0x212553){return _0x212553?{'count':_0x504944,'rows':_0x212553}:null;}})[_0xfac4('0x19')](respondWithResult(_0x5ea747,null))[_0xfac4('0x24')](handleError(_0x5ea747,null));};exports[_0xfac4('0x56')]=function(_0x2eb826,_0x3d15e2,_0x506ad0){var _0x8ac675={};var _0x5e545c={};var _0x225048;var _0x5c7354;return db[_0xfac4('0x31')][_0xfac4('0x52')]({'where':{'id':_0x2eb826[_0xfac4('0x50')]['id']}})[_0xfac4('0x19')](handleEntityNotFound(_0x3d15e2,null))[_0xfac4('0x19')](function(_0x4a5a25){if(_0x4a5a25){_0x225048=_0x4a5a25;_0x5e545c[_0xfac4('0x33')]=_[_0xfac4('0x34')](db[_0xfac4('0x53')][_0xfac4('0x32')]);_0x5e545c[_0xfac4('0x36')]=_[_0xfac4('0x34')](_0x2eb826[_0xfac4('0x36')]);_0x5e545c[_0xfac4('0x38')]=_['intersection'](_0x5e545c[_0xfac4('0x33')],_0x5e545c[_0xfac4('0x36')]);_0x8ac675[_0xfac4('0x39')]=_[_0xfac4('0x3a')](_0x5e545c['model'],qs[_0xfac4('0x3b')](_0x2eb826[_0xfac4('0x36')][_0xfac4('0x3b')]));_0x8ac675['attributes']=_0x8ac675[_0xfac4('0x39')]['length']?_0x8ac675[_0xfac4('0x39')]:_0x5e545c[_0xfac4('0x33')];_0x8ac675['order']=qs[_0xfac4('0x40')](_0x2eb826[_0xfac4('0x36')][_0xfac4('0x40')]);_0x8ac675[_0xfac4('0x41')]=qs['filters'](_['pick'](_0x2eb826[_0xfac4('0x36')],_0x5e545c[_0xfac4('0x38')]));if(_0x2eb826[_0xfac4('0x36')][_0xfac4('0x44')]){_0x8ac675[_0xfac4('0x41')]=_[_0xfac4('0x45')](_0x8ac675[_0xfac4('0x41')],{'$or':_[_0xfac4('0x57')](_0x8ac675[_0xfac4('0x39')],function(_0x228c27){var _0x1e7ded={};_0x1e7ded[_0x228c27]={'$like':'%'+_0x2eb826[_0xfac4('0x36')][_0xfac4('0x44')]+'%'};return _0x1e7ded;})});}_0x8ac675=_[_0xfac4('0x45')]({},_0x8ac675,_0x2eb826[_0xfac4('0x46')]);return _0x225048[_0xfac4('0x56')](_0x8ac675);}})['then'](function(_0x24d769){if(_0x24d769){_0x5c7354=_0x24d769[_0xfac4('0x3c')];if(!_0x2eb826[_0xfac4('0x36')][_0xfac4('0x55')](_0xfac4('0x3d'))){_0x8ac675['limit']=qs[_0xfac4('0x3e')](_0x2eb826[_0xfac4('0x36')][_0xfac4('0x3e')]);_0x8ac675[_0xfac4('0x28')]=qs[_0xfac4('0x28')](_0x2eb826[_0xfac4('0x36')][_0xfac4('0x28')]);}return _0x225048[_0xfac4('0x56')](_0x8ac675);}})[_0xfac4('0x19')](function(_0x2007e1){if(_0x2007e1){return _0x2007e1?{'count':_0x5c7354,'rows':_0x2007e1}:null;}})[_0xfac4('0x19')](respondWithResult(_0x3d15e2,null))[_0xfac4('0x24')](handleError(_0x3d15e2,null));};exports[_0xfac4('0x58')]=function(_0x5ef702,_0x2b6428,_0x44f63c){var _0x58eebb={};var _0x5f28e2={};var _0x5bb3ab;var _0x312a6e;return db[_0xfac4('0x31')][_0xfac4('0x52')]({'where':{'id':_0x5ef702[_0xfac4('0x50')]['id']}})['then'](handleEntityNotFound(_0x2b6428,null))['then'](function(_0x16452e){if(_0x16452e){_0x5bb3ab=_0x16452e;_0x5f28e2[_0xfac4('0x33')]=_['keys'](db[_0xfac4('0x53')]['rawAttributes']);_0x5f28e2['query']=_[_0xfac4('0x34')](_0x5ef702[_0xfac4('0x36')]);_0x5f28e2[_0xfac4('0x38')]=_[_0xfac4('0x3a')](_0x5f28e2[_0xfac4('0x33')],_0x5f28e2[_0xfac4('0x36')]);_0x58eebb[_0xfac4('0x39')]=_['intersection'](_0x5f28e2['model'],qs[_0xfac4('0x3b')](_0x5ef702[_0xfac4('0x36')]['fields']));_0x58eebb[_0xfac4('0x39')]=_0x58eebb['attributes'][_0xfac4('0x3c')]?_0x58eebb[_0xfac4('0x39')]:_0x5f28e2[_0xfac4('0x33')];_0x58eebb['order']=qs['sort'](_0x5ef702[_0xfac4('0x36')]['sort']);_0x58eebb[_0xfac4('0x41')]=qs[_0xfac4('0x38')](_[_0xfac4('0x54')](_0x5ef702[_0xfac4('0x36')],_0x5f28e2[_0xfac4('0x38')]));if(_0x5ef702[_0xfac4('0x36')][_0xfac4('0x44')]){_0x58eebb[_0xfac4('0x41')]=_[_0xfac4('0x45')](_0x58eebb[_0xfac4('0x41')],{'$or':_[_0xfac4('0x57')](_0x58eebb[_0xfac4('0x39')],function(_0x2780fe){var _0x2a609b={};_0x2a609b[_0x2780fe]={'$like':'%'+_0x5ef702[_0xfac4('0x36')]['filter']+'%'};return _0x2a609b;})});}_0x58eebb=_[_0xfac4('0x45')]({},_0x58eebb,_0x5ef702[_0xfac4('0x46')]);return _0x5bb3ab[_0xfac4('0x58')](_0x58eebb);}})['then'](function(_0x1bde11){if(_0x1bde11){_0x312a6e=_0x1bde11[_0xfac4('0x3c')];if(!_0x5ef702['query'][_0xfac4('0x55')]('nolimit')){_0x58eebb[_0xfac4('0x3e')]=qs['limit'](_0x5ef702['query'][_0xfac4('0x3e')]);_0x58eebb['offset']=qs[_0xfac4('0x28')](_0x5ef702[_0xfac4('0x36')][_0xfac4('0x28')]);}return _0x5bb3ab[_0xfac4('0x58')](_0x58eebb);}})[_0xfac4('0x19')](function(_0x30382f){if(_0x30382f){return _0x30382f?{'count':_0x312a6e,'rows':_0x30382f}:null;}})[_0xfac4('0x19')](respondWithResult(_0x2b6428,null))[_0xfac4('0x24')](handleError(_0x2b6428,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03bc=['lodash','../../config/logger','api','bluebird','./intZohoConfiguration.attributes','exports','define','int_zoho_configurations'];(function(_0x3ed7c1,_0x38bad0){var _0x24eb1d=function(_0x359198){while(--_0x359198){_0x3ed7c1['push'](_0x3ed7c1['shift']());}};_0x24eb1d(++_0x38bad0);}(_0x03bc,0xb8));var _0xc03b=function(_0x510089,_0x22f590){_0x510089=_0x510089-0x0;var _0x4b8d7d=_0x03bc[_0x510089];return _0x4b8d7d;};'use strict';var _=require(_0xc03b('0x0'));var util=require('util');var logger=require(_0xc03b('0x1'))(_0xc03b('0x2'));var moment=require('moment');var BPromise=require(_0xc03b('0x3'));var rp=require('request-promise');var attributes=require(_0xc03b('0x4'));module[_0xc03b('0x5')]=function(_0x3b1720,_0x163bf3){return _0x3b1720[_0xc03b('0x6')]('ZohoConfiguration',attributes,{'tableName':_0xc03b('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3685=['api','moment','bluebird','request-promise','./intZohoConfiguration.attributes','exports','define','int_zoho_configurations','lodash','../../config/logger'];(function(_0x5466ab,_0x227b13){var _0x40751a=function(_0x477f9e){while(--_0x477f9e){_0x5466ab['push'](_0x5466ab['shift']());}};_0x40751a(++_0x227b13);}(_0x3685,0xf8));var _0x5368=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x3685[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x5368('0x0'));var util=require('util');var logger=require(_0x5368('0x1'))(_0x5368('0x2'));var moment=require(_0x5368('0x3'));var BPromise=require(_0x5368('0x4'));var rp=require(_0x5368('0x5'));var attributes=require(_0x5368('0x6'));module[_0x5368('0x7')]=function(_0x2c9c35,_0x3bf968){return _0x2c9c35[_0x5368('0x8')]('ZohoConfiguration',attributes,{'tableName':_0x5368('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['client','http','request','then','ZohoConfiguration,\x20%s,\x20%s','request\x20sent','ZohoConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x943617,_0x542b95){var _0x2cb163=function(_0xcbd7c1){while(--_0xcbd7c1){_0x943617['push'](_0x943617['shift']());}};_0x2cb163(++_0x542b95);}(_0x0b0e,0x187));var _0xe0b0=function(_0x33554b,_0x48162b){_0x33554b=_0x33554b-0x0;var _0x256954=_0x0b0e[_0x33554b];return _0x256954;};'use strict';var _=require(_0xe0b0('0x0'));var util=require('util');var moment=require(_0xe0b0('0x1'));var BPromise=require('bluebird');var rs=require(_0xe0b0('0x2'));var fs=require('fs');var db=require(_0xe0b0('0x3'))['db'];var utils=require(_0xe0b0('0x4'));var logger=require(_0xe0b0('0x5'))(_0xe0b0('0x6'));var config=require(_0xe0b0('0x7'));var jayson=require(_0xe0b0('0x8'));var client=jayson[_0xe0b0('0x9')][_0xe0b0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x28e40f,_0x219b1c,_0x5cf9cc){return new BPromise(function(_0x50be7f,_0x11effc){return client[_0xe0b0('0xb')](_0x28e40f,_0x5cf9cc)[_0xe0b0('0xc')](function(_0x2ac27e){logger['info'](_0xe0b0('0xd'),_0x219b1c,_0xe0b0('0xe'));logger['debug'](_0xe0b0('0xf'),_0x219b1c,_0xe0b0('0xe'),JSON['stringify'](_0x2ac27e));if(_0x2ac27e[_0xe0b0('0x10')]){if(_0x2ac27e[_0xe0b0('0x10')][_0xe0b0('0x11')]===0x1f4){logger['error'](_0xe0b0('0xd'),_0x219b1c,_0x2ac27e[_0xe0b0('0x10')][_0xe0b0('0x12')]);return _0x11effc(_0x2ac27e[_0xe0b0('0x10')][_0xe0b0('0x12')]);}logger['error'](_0xe0b0('0xd'),_0x219b1c,_0x2ac27e[_0xe0b0('0x10')][_0xe0b0('0x12')]);return _0x50be7f(_0x2ac27e[_0xe0b0('0x10')][_0xe0b0('0x12')]);}else{logger['info'](_0xe0b0('0xd'),_0x219b1c,'request\x20sent');_0x50be7f(_0x2ac27e[_0xe0b0('0x13')][_0xe0b0('0x12')]);}})['catch'](function(_0x11fdca){logger['error'](_0xe0b0('0xd'),_0x219b1c,_0x11fdca);_0x11effc(_0x11fdca);});});}
\ No newline at end of file
+var _0x9778=['moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','request','info','ZohoConfiguration,\x20%s,\x20%s','request\x20sent','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x9778,0x11d));var _0x8977=function(_0x386c3e,_0x44a375){_0x386c3e=_0x386c3e-0x0;var _0x4b8e13=_0x9778[_0x386c3e];return _0x4b8e13;};'use strict';var _=require('lodash');var util=require(_0x8977('0x0'));var moment=require(_0x8977('0x1'));var BPromise=require(_0x8977('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8977('0x3'));var db=require(_0x8977('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8977('0x5'))(_0x8977('0x6'));var config=require(_0x8977('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x8977('0x8')][_0x8977('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3579ec,_0x1864f5,_0x28f859){return new BPromise(function(_0x5bc880,_0x196eca){return client[_0x8977('0xa')](_0x3579ec,_0x28f859)['then'](function(_0xe5af9c){logger[_0x8977('0xb')](_0x8977('0xc'),_0x1864f5,_0x8977('0xd'));logger[_0x8977('0xe')](_0x8977('0xf'),_0x1864f5,_0x8977('0xd'),JSON[_0x8977('0x10')](_0xe5af9c));if(_0xe5af9c[_0x8977('0x11')]){if(_0xe5af9c[_0x8977('0x11')][_0x8977('0x12')]===0x1f4){logger['error']('ZohoConfiguration,\x20%s,\x20%s',_0x1864f5,_0xe5af9c[_0x8977('0x11')][_0x8977('0x13')]);return _0x196eca(_0xe5af9c['error'][_0x8977('0x13')]);}logger[_0x8977('0x11')](_0x8977('0xc'),_0x1864f5,_0xe5af9c[_0x8977('0x11')]['message']);return _0x5bc880(_0xe5af9c[_0x8977('0x11')]['message']);}else{logger[_0x8977('0xb')]('ZohoConfiguration,\x20%s,\x20%s',_0x1864f5,_0x8977('0xd'));_0x5bc880(_0xe5af9c[_0x8977('0x14')][_0x8977('0x13')]);}})[_0x8977('0x15')](function(_0x3dcb65){logger['error']('ZohoConfiguration,\x20%s,\x20%s',_0x1864f5,_0x3dcb65);_0x196eca(_0x3dcb65);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dc0=['../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoField.controller','get','isAuthenticated','index','/:id','show','create','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router'];(function(_0x1deb03,_0xd05ad8){var _0x189fe7=function(_0x321225){while(--_0x321225){_0x1deb03['push'](_0x1deb03['shift']());}};_0x189fe7(++_0xd05ad8);}(_0x4dc0,0xd6));var _0x04dc=function(_0x47a7d0,_0x4e182d){_0x47a7d0=_0x47a7d0-0x0;var _0xb9bd08=_0x4dc0[_0x47a7d0];return _0xb9bd08;};'use strict';var multer=require(_0x04dc('0x0'));var util=require(_0x04dc('0x1'));var path=require(_0x04dc('0x2'));var timeout=require(_0x04dc('0x3'));var express=require(_0x04dc('0x4'));var router=express[_0x04dc('0x5')]();var auth=require(_0x04dc('0x6'));var interaction=require(_0x04dc('0x7'));var config=require(_0x04dc('0x8'));var controller=require(_0x04dc('0x9'));router[_0x04dc('0xa')]('/',auth[_0x04dc('0xb')](),controller[_0x04dc('0xc')]);router[_0x04dc('0xa')](_0x04dc('0xd'),auth['isAuthenticated'](),controller[_0x04dc('0xe')]);router['post']('/',auth[_0x04dc('0xb')](),controller[_0x04dc('0xf')]);router[_0x04dc('0x10')]('/:id',auth[_0x04dc('0xb')](),controller[_0x04dc('0x11')]);router[_0x04dc('0x12')](_0x04dc('0xd'),auth[_0x04dc('0xb')](),controller[_0x04dc('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x8175=['/:id','show','post','create','put','update','delete','destroy','exports','multer','util','Router','../../components/interaction/service','../../config/environment','./intZohoField.controller','get','isAuthenticated'];(function(_0x4edf5b,_0x456f7c){var _0x4e805b=function(_0x5f4df9){while(--_0x5f4df9){_0x4edf5b['push'](_0x4edf5b['shift']());}};_0x4e805b(++_0x456f7c);}(_0x8175,0xb3));var _0x5817=function(_0x17141f,_0x4d7c4b){_0x17141f=_0x17141f-0x0;var _0x3ee900=_0x8175[_0x17141f];return _0x3ee900;};'use strict';var multer=require(_0x5817('0x0'));var util=require(_0x5817('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x5817('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x5817('0x3'));var config=require(_0x5817('0x4'));var controller=require(_0x5817('0x5'));router[_0x5817('0x6')]('/',auth[_0x5817('0x7')](),controller['index']);router[_0x5817('0x6')](_0x5817('0x8'),auth[_0x5817('0x7')](),controller[_0x5817('0x9')]);router[_0x5817('0xa')]('/',auth[_0x5817('0x7')](),controller[_0x5817('0xb')]);router[_0x5817('0xc')]('/:id',auth[_0x5817('0x7')](),controller[_0x5817('0xd')]);router[_0x5817('0xe')](_0x5817('0x8'),auth[_0x5817('0x7')](),controller[_0x5817('0xf')]);module[_0x5817('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa571=['exports','ENUM','string','customVariable','keyValue','STRING','variable','sequelize'];(function(_0x4ab419,_0x288d3f){var _0x5781c8=function(_0x2c15a6){while(--_0x2c15a6){_0x4ab419['push'](_0x4ab419['shift']());}};_0x5781c8(++_0x288d3f);}(_0xa571,0x107));var _0x1a57=function(_0x27625a,_0x10c778){_0x27625a=_0x27625a-0x0;var _0x481f91=_0xa571[_0x27625a];return _0x481f91;};'use strict';var Sequelize=require(_0x1a57('0x0'));module[_0x1a57('0x1')]={'type':{'type':Sequelize[_0x1a57('0x2')](_0x1a57('0x3'),'variable',_0x1a57('0x4'),_0x1a57('0x5')),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x1a57('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0x1a57('0x3'),_0x1a57('0x7'),_0x1a57('0x4'))},'keyContent':{'type':Sequelize[_0x1a57('0x6')]},'idField':{'type':Sequelize[_0x1a57('0x6')]},'nameField':{'type':Sequelize[_0x1a57('0x6')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x1a57('0x6')]}};
\ No newline at end of file
+var _0x6f0d=['exports','ENUM','string','variable','keyValue','STRING','BOOLEAN'];(function(_0x1738ee,_0x32e204){var _0x4b1b60=function(_0x4b5a48){while(--_0x4b5a48){_0x1738ee['push'](_0x1738ee['shift']());}};_0x4b1b60(++_0x32e204);}(_0x6f0d,0x16c));var _0xd6f0=function(_0x5a5f6d,_0x54e218){_0x5a5f6d=_0x5a5f6d-0x0;var _0x1bdf63=_0x6f0d[_0x5a5f6d];return _0x1bdf63;};'use strict';var Sequelize=require('sequelize');module[_0xd6f0('0x0')]={'type':{'type':Sequelize[_0xd6f0('0x1')](_0xd6f0('0x2'),_0xd6f0('0x3'),'customVariable',_0xd6f0('0x4')),'defaultValue':_0xd6f0('0x2')},'content':{'type':Sequelize[_0xd6f0('0x5')]},'key':{'type':Sequelize[_0xd6f0('0x5')]},'keyType':{'type':Sequelize[_0xd6f0('0x1')]('string',_0xd6f0('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0xd6f0('0x5')]},'idField':{'type':Sequelize[_0xd6f0('0x5')]},'nameField':{'type':Sequelize[_0xd6f0('0x5')]},'customField':{'type':Sequelize[_0xd6f0('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b78=['add','day','merge','filter','includeAll','include','findAll','rows','catch','params','ZohoField','options','find','create','body','html-pdf','eml-format','zip-dir','fast-json-patch','moment','mustache','util','path','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x402030,_0x3501b9){var _0x453311=function(_0x2012a1){while(--_0x2012a1){_0x402030['push'](_0x402030['shift']());}};_0x453311(++_0x3501b9);}(_0x0b78,0x1ad));var _0x80b7=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x0b78[_0x321bb2];return _0x9c12ed;};'use strict';var pdf=require(_0x80b7('0x0'));var emlformat=require(_0x80b7('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x80b7('0x2'));var jsonpatch=require(_0x80b7('0x3'));var rp=require('request-promise');var moment=require(_0x80b7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x80b7('0x5'));var util=require(_0x80b7('0x6'));var path=require(_0x80b7('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x80b7('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x80b7('0x9'));var crypto=require(_0x80b7('0xa'));var jsforce=require(_0x80b7('0xb'));var deskjs=require(_0x80b7('0xc'));var toCsv=require('to-csv');var querystring=require(_0x80b7('0xd'));var Papa=require(_0x80b7('0xe'));var qs=require(_0x80b7('0xf'));var logger=require('../../config/logger')(_0x80b7('0x10'));var utils=require('../../config/utils');var config=require(_0x80b7('0x11'));var db=require(_0x80b7('0x12'))['db'];function respondWithStatusCode(_0x3b19da,_0x7b971b){_0x7b971b=_0x7b971b||0xcc;return function(_0xdce488){if(_0xdce488){return _0x3b19da[_0x80b7('0x13')](_0x7b971b);}return _0x3b19da[_0x80b7('0x14')](_0x7b971b)[_0x80b7('0x15')]();};}function respondWithResult(_0x323d06,_0x366e34){_0x366e34=_0x366e34||0xc8;return function(_0x2b5f78){if(_0x2b5f78){return _0x323d06['status'](_0x366e34)[_0x80b7('0x16')](_0x2b5f78);}};}function respondWithFilteredResult(_0x401ad3,_0x527c5b){return function(_0x2ee168){if(_0x2ee168){var _0x1a6317=_0x2ee168[_0x80b7('0x17')],_0x4aaa02=_0x527c5b[_0x80b7('0x18')],_0x46822c=_0x527c5b[_0x80b7('0x18')]+_0x527c5b[_0x80b7('0x19')],_0x3b6b13;if(_0x46822c>=_0x1a6317){_0x46822c=_0x1a6317;_0x3b6b13=0xc8;}else{_0x3b6b13=0xce;}_0x401ad3[_0x80b7('0x14')](_0x3b6b13);return _0x401ad3[_0x80b7('0x1a')](_0x80b7('0x1b'),_0x4aaa02+'-'+_0x46822c+'/'+_0x1a6317)[_0x80b7('0x16')](_0x2ee168);}return null;};}function patchUpdates(_0x4c12b1){return function(_0x3bb691){try{jsonpatch[_0x80b7('0x1c')](_0x3bb691,_0x4c12b1,!![]);}catch(_0x205457){return BPromise[_0x80b7('0x1d')](_0x205457);}return _0x3bb691['save']();};}function saveUpdates(_0x48c356,_0x45be23){return function(_0x1e27aa){if(_0x1e27aa){return _0x1e27aa[_0x80b7('0x1e')](_0x48c356)[_0x80b7('0x1f')](function(_0x574e5c){return _0x574e5c;});}return null;};}function removeEntity(_0x4f6eec,_0x2aebe3){return function(_0x3aed77){if(_0x3aed77){return _0x3aed77[_0x80b7('0x20')]()[_0x80b7('0x1f')](function(){_0x4f6eec['status'](0xcc)[_0x80b7('0x15')]();});}};}function handleEntityNotFound(_0x4c3bed,_0x4d2139){return function(_0x37dd00){if(!_0x37dd00){_0x4c3bed[_0x80b7('0x13')](0x194);}return _0x37dd00;};}function handleError(_0x65d31d,_0x155c00){_0x155c00=_0x155c00||0x1f4;return function(_0x3f3aa5){logger[_0x80b7('0x21')](_0x3f3aa5[_0x80b7('0x22')]);if(_0x3f3aa5[_0x80b7('0x23')]){delete _0x3f3aa5[_0x80b7('0x23')];}_0x65d31d[_0x80b7('0x14')](_0x155c00)[_0x80b7('0x24')](_0x3f3aa5);};}exports[_0x80b7('0x25')]=function(_0x9da9e9,_0x40d694){var _0x3995b5={},_0x481cd2={},_0x40cfd3={'count':0x0,'rows':[]};var _0x1661be=db['ZohoField'][_0x80b7('0x26')];_0x481cd2[_0x80b7('0x27')]=_[_0x80b7('0x28')](_0x1661be);var _0x5497e2={'dateStart':_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x2a')],'dateEnd':_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x2b')]};delete _0x9da9e9[_0x80b7('0x29')][_0x80b7('0x2a')];delete _0x9da9e9[_0x80b7('0x29')][_0x80b7('0x2b')];_0x481cd2[_0x80b7('0x29')]=_[_0x80b7('0x28')](_0x9da9e9[_0x80b7('0x29')]);_0x481cd2[_0x80b7('0x2c')]=_[_0x80b7('0x2d')](_0x481cd2['model'],_0x481cd2['query']);_0x3995b5[_0x80b7('0x2e')]=_[_0x80b7('0x2d')](_0x481cd2['model'],qs['fields'](_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x2f')]));_0x3995b5[_0x80b7('0x2e')]=_0x3995b5[_0x80b7('0x2e')][_0x80b7('0x30')]?_0x3995b5[_0x80b7('0x2e')]:_0x481cd2['model'];if(!_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x31')](_0x80b7('0x32'))){_0x3995b5[_0x80b7('0x19')]=qs['limit'](_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x19')]);_0x3995b5['offset']=qs[_0x80b7('0x18')](_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x18')]);}_0x3995b5[_0x80b7('0x33')]=qs[_0x80b7('0x34')](_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x34')]);_0x3995b5[_0x80b7('0x35')]=qs['filters'](_['pick'](_0x9da9e9['query'],_0x481cd2[_0x80b7('0x2c')]));if(_0x5497e2[_0x80b7('0x2a')]){if(_0x5497e2[_0x80b7('0x2b')]){_0x5497e2[_0x80b7('0x2b')]=moment(_0x5497e2[_0x80b7('0x2b')])[_0x80b7('0x36')](0x1,_0x80b7('0x37'));}else{_0x5497e2[_0x80b7('0x2b')]=moment(_0x5497e2['dateStart'])[_0x80b7('0x36')](0x1,_0x80b7('0x37'));}_[_0x80b7('0x38')](_0x3995b5[_0x80b7('0x35')],{'createdAt':{'$gte':_0x5497e2[_0x80b7('0x2a')],'$lte':_0x5497e2[_0x80b7('0x2b')]}});}if(_0x9da9e9['query'][_0x80b7('0x39')]){_0x3995b5['where']=_[_0x80b7('0x38')](_0x3995b5[_0x80b7('0x35')],{'$or':_['map'](_0x3995b5['attributes'],function(_0x823c32){var _0x5e21eb={};_0x5e21eb[_0x823c32]={'$like':'%'+_0x9da9e9['query'][_0x80b7('0x39')]+'%'};return _0x5e21eb;})});}_0x3995b5=_[_0x80b7('0x38')]({},_0x3995b5,_0x9da9e9['options']);var _0xfc8504={'where':_0x3995b5[_0x80b7('0x35')]};return db['ZohoField']['count'](_0xfc8504)[_0x80b7('0x1f')](function(_0x3a3b62){_0x40cfd3[_0x80b7('0x17')]=_0x3a3b62;if(_0x9da9e9[_0x80b7('0x29')][_0x80b7('0x3a')]){_0x3995b5[_0x80b7('0x3b')]=[{'all':!![]}];}return db['ZohoField'][_0x80b7('0x3c')](_0x3995b5);})[_0x80b7('0x1f')](function(_0x2cb860){_0x40cfd3[_0x80b7('0x3d')]=_0x2cb860;return _0x40cfd3;})['then'](respondWithFilteredResult(_0x40d694,_0x3995b5))[_0x80b7('0x3e')](handleError(_0x40d694,null));};exports['show']=function(_0x382fd7,_0x199c29){var _0x16250b={'raw':!![],'where':{'id':_0x382fd7[_0x80b7('0x3f')]['id']}},_0x395501={};_0x395501[_0x80b7('0x27')]=_[_0x80b7('0x28')](db[_0x80b7('0x40')][_0x80b7('0x26')]);_0x395501[_0x80b7('0x29')]=_[_0x80b7('0x28')](_0x382fd7[_0x80b7('0x29')]);_0x395501[_0x80b7('0x2c')]=_['intersection'](_0x395501[_0x80b7('0x27')],_0x395501[_0x80b7('0x29')]);_0x16250b['attributes']=_[_0x80b7('0x2d')](_0x395501['model'],qs['fields'](_0x382fd7[_0x80b7('0x29')]['fields']));_0x16250b['attributes']=_0x16250b[_0x80b7('0x2e')][_0x80b7('0x30')]?_0x16250b['attributes']:_0x395501[_0x80b7('0x27')];if(_0x382fd7[_0x80b7('0x29')][_0x80b7('0x3a')]){_0x16250b['include']=[{'all':!![]}];}_0x16250b=_[_0x80b7('0x38')]({},_0x16250b,_0x382fd7[_0x80b7('0x41')]);return db[_0x80b7('0x40')][_0x80b7('0x42')](_0x16250b)['then'](handleEntityNotFound(_0x199c29,null))['then'](respondWithResult(_0x199c29,null))['catch'](handleError(_0x199c29,null));};exports[_0x80b7('0x43')]=function(_0x5c33b5,_0x2b2abc){return db[_0x80b7('0x40')][_0x80b7('0x43')](_0x5c33b5[_0x80b7('0x44')],{})[_0x80b7('0x1f')](respondWithResult(_0x2b2abc,0xc9))[_0x80b7('0x3e')](handleError(_0x2b2abc,null));};exports['update']=function(_0x588bab,_0x25afd7){if(_0x588bab[_0x80b7('0x44')]['id']){delete _0x588bab[_0x80b7('0x44')]['id'];}return db[_0x80b7('0x40')][_0x80b7('0x42')]({'where':{'id':_0x588bab[_0x80b7('0x3f')]['id']}})['then'](handleEntityNotFound(_0x25afd7,null))[_0x80b7('0x1f')](saveUpdates(_0x588bab[_0x80b7('0x44')],null))['then'](respondWithResult(_0x25afd7,null))[_0x80b7('0x3e')](handleError(_0x25afd7,null));};exports[_0x80b7('0x20')]=function(_0xc5e5a4,_0x49ada9){return db['ZohoField'][_0x80b7('0x42')]({'where':{'id':_0xc5e5a4[_0x80b7('0x3f')]['id']}})[_0x80b7('0x1f')](handleEntityNotFound(_0x49ada9,null))[_0x80b7('0x1f')](removeEntity(_0x49ada9,null))[_0x80b7('0x3e')](handleError(_0x49ada9,null));};
\ No newline at end of file
+var _0x0bfe=['save','then','destroy','end','error','stack','name','send','ZohoField','rawAttributes','model','dateStart','query','dateEnd','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','map','filter','options','count','includeAll','include','rows','catch','show','create','body','update','find','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','limit','set','Content-Range','apply'];(function(_0x56cc28,_0x4a921e){var _0x1f5798=function(_0x45f7a5){while(--_0x45f7a5){_0x56cc28['push'](_0x56cc28['shift']());}};_0x1f5798(++_0x4a921e);}(_0x0bfe,0x1e1));var _0xe0bf=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x0bfe[_0xa464c9];return _0x3d73c4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xe0bf('0x0'));var rimraf=require(_0xe0bf('0x1'));var zipdir=require(_0xe0bf('0x2'));var jsonpatch=require(_0xe0bf('0x3'));var rp=require(_0xe0bf('0x4'));var moment=require(_0xe0bf('0x5'));var BPromise=require(_0xe0bf('0x6'));var Mustache=require('mustache');var util=require(_0xe0bf('0x7'));var path=require(_0xe0bf('0x8'));var sox=require('sox');var csv=require(_0xe0bf('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xe0bf('0xa'));var squel=require(_0xe0bf('0xb'));var crypto=require(_0xe0bf('0xc'));var jsforce=require(_0xe0bf('0xd'));var deskjs=require(_0xe0bf('0xe'));var toCsv=require(_0xe0bf('0x9'));var querystring=require(_0xe0bf('0xf'));var Papa=require('papaparse');var Redis=require(_0xe0bf('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0xe0bf('0x11'))(_0xe0bf('0x12'));var utils=require(_0xe0bf('0x13'));var config=require(_0xe0bf('0x14'));var db=require(_0xe0bf('0x15'))['db'];function respondWithStatusCode(_0x213d4f,_0x541498){_0x541498=_0x541498||0xcc;return function(_0x1a7752){if(_0x1a7752){return _0x213d4f[_0xe0bf('0x16')](_0x541498);}return _0x213d4f[_0xe0bf('0x17')](_0x541498)['end']();};}function respondWithResult(_0x535156,_0x2b541d){_0x2b541d=_0x2b541d||0xc8;return function(_0x56a174){if(_0x56a174){return _0x535156[_0xe0bf('0x17')](_0x2b541d)[_0xe0bf('0x18')](_0x56a174);}};}function respondWithFilteredResult(_0x366359,_0x23c758){return function(_0x51a0fc){if(_0x51a0fc){var _0x5c7312=_0x51a0fc['count'],_0x24dcac=_0x23c758[_0xe0bf('0x19')],_0x3f32a7=_0x23c758[_0xe0bf('0x19')]+_0x23c758[_0xe0bf('0x1a')],_0x4e6a94;if(_0x3f32a7>=_0x5c7312){_0x3f32a7=_0x5c7312;_0x4e6a94=0xc8;}else{_0x4e6a94=0xce;}_0x366359['status'](_0x4e6a94);return _0x366359[_0xe0bf('0x1b')](_0xe0bf('0x1c'),_0x24dcac+'-'+_0x3f32a7+'/'+_0x5c7312)[_0xe0bf('0x18')](_0x51a0fc);}return null;};}function patchUpdates(_0x18434){return function(_0x12376a){try{jsonpatch[_0xe0bf('0x1d')](_0x12376a,_0x18434,!![]);}catch(_0x1fd799){return BPromise['reject'](_0x1fd799);}return _0x12376a[_0xe0bf('0x1e')]();};}function saveUpdates(_0x3331cf,_0x1d1a1e){return function(_0x2aa802){if(_0x2aa802){return _0x2aa802['update'](_0x3331cf)[_0xe0bf('0x1f')](function(_0x95566c){return _0x95566c;});}return null;};}function removeEntity(_0x125614,_0x37715c){return function(_0x35389e){if(_0x35389e){return _0x35389e[_0xe0bf('0x20')]()[_0xe0bf('0x1f')](function(){_0x125614[_0xe0bf('0x17')](0xcc)[_0xe0bf('0x21')]();});}};}function handleEntityNotFound(_0x5b3975,_0x5cba53){return function(_0x4aa6d5){if(!_0x4aa6d5){_0x5b3975['sendStatus'](0x194);}return _0x4aa6d5;};}function handleError(_0x5798dc,_0x5bd6b8){_0x5bd6b8=_0x5bd6b8||0x1f4;return function(_0x365cad){logger[_0xe0bf('0x22')](_0x365cad[_0xe0bf('0x23')]);if(_0x365cad['name']){delete _0x365cad[_0xe0bf('0x24')];}_0x5798dc[_0xe0bf('0x17')](_0x5bd6b8)[_0xe0bf('0x25')](_0x365cad);};}exports['index']=function(_0x3f9ce9,_0x2a6cad){var _0x145b6e={},_0x1548d4={},_0x3e53bd={'count':0x0,'rows':[]};var _0x21389d=db[_0xe0bf('0x26')][_0xe0bf('0x27')];_0x1548d4[_0xe0bf('0x28')]=_['keys'](_0x21389d);var _0x5a4f86={'dateStart':_0x3f9ce9['query'][_0xe0bf('0x29')],'dateEnd':_0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x2b')]};delete _0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x29')];delete _0x3f9ce9[_0xe0bf('0x2a')]['dateEnd'];_0x1548d4[_0xe0bf('0x2a')]=_[_0xe0bf('0x2c')](_0x3f9ce9[_0xe0bf('0x2a')]);_0x1548d4[_0xe0bf('0x2d')]=_[_0xe0bf('0x2e')](_0x1548d4['model'],_0x1548d4[_0xe0bf('0x2a')]);_0x145b6e['attributes']=_[_0xe0bf('0x2e')](_0x1548d4['model'],qs[_0xe0bf('0x2f')](_0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x2f')]));_0x145b6e[_0xe0bf('0x30')]=_0x145b6e[_0xe0bf('0x30')][_0xe0bf('0x31')]?_0x145b6e[_0xe0bf('0x30')]:_0x1548d4[_0xe0bf('0x28')];if(!_0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x32')](_0xe0bf('0x33'))){_0x145b6e[_0xe0bf('0x1a')]=qs[_0xe0bf('0x1a')](_0x3f9ce9[_0xe0bf('0x2a')]['limit']);_0x145b6e[_0xe0bf('0x19')]=qs[_0xe0bf('0x19')](_0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x19')]);}_0x145b6e[_0xe0bf('0x34')]=qs[_0xe0bf('0x35')](_0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x35')]);_0x145b6e[_0xe0bf('0x36')]=qs['filters'](_[_0xe0bf('0x37')](_0x3f9ce9[_0xe0bf('0x2a')],_0x1548d4[_0xe0bf('0x2d')]));if(_0x5a4f86[_0xe0bf('0x29')]){if(_0x5a4f86[_0xe0bf('0x2b')]){_0x5a4f86[_0xe0bf('0x2b')]=moment(_0x5a4f86[_0xe0bf('0x2b')])[_0xe0bf('0x38')](0x1,_0xe0bf('0x39'));}else{_0x5a4f86[_0xe0bf('0x2b')]=moment(_0x5a4f86['dateStart'])[_0xe0bf('0x38')](0x1,_0xe0bf('0x39'));}_['merge'](_0x145b6e['where'],{'createdAt':{'$gte':_0x5a4f86['dateStart'],'$lte':_0x5a4f86[_0xe0bf('0x2b')]}});}if(_0x3f9ce9[_0xe0bf('0x2a')]['filter']){_0x145b6e[_0xe0bf('0x36')]=_[_0xe0bf('0x3a')](_0x145b6e[_0xe0bf('0x36')],{'$or':_[_0xe0bf('0x3b')](_0x145b6e[_0xe0bf('0x30')],function(_0x298f62){var _0x3a266b={};_0x3a266b[_0x298f62]={'$like':'%'+_0x3f9ce9[_0xe0bf('0x2a')][_0xe0bf('0x3c')]+'%'};return _0x3a266b;})});}_0x145b6e=_[_0xe0bf('0x3a')]({},_0x145b6e,_0x3f9ce9[_0xe0bf('0x3d')]);var _0x39014e={'where':_0x145b6e[_0xe0bf('0x36')]};return db[_0xe0bf('0x26')][_0xe0bf('0x3e')](_0x39014e)['then'](function(_0x449310){_0x3e53bd[_0xe0bf('0x3e')]=_0x449310;if(_0x3f9ce9['query'][_0xe0bf('0x3f')]){_0x145b6e[_0xe0bf('0x40')]=[{'all':!![]}];}return db[_0xe0bf('0x26')]['findAll'](_0x145b6e);})[_0xe0bf('0x1f')](function(_0x29d3e4){_0x3e53bd[_0xe0bf('0x41')]=_0x29d3e4;return _0x3e53bd;})[_0xe0bf('0x1f')](respondWithFilteredResult(_0x2a6cad,_0x145b6e))[_0xe0bf('0x42')](handleError(_0x2a6cad,null));};exports[_0xe0bf('0x43')]=function(_0x1696b8,_0x3dff91){var _0x3287a7={'raw':!![],'where':{'id':_0x1696b8['params']['id']}},_0x57b5d9={};_0x57b5d9['model']=_['keys'](db['ZohoField'][_0xe0bf('0x27')]);_0x57b5d9[_0xe0bf('0x2a')]=_['keys'](_0x1696b8['query']);_0x57b5d9[_0xe0bf('0x2d')]=_[_0xe0bf('0x2e')](_0x57b5d9[_0xe0bf('0x28')],_0x57b5d9[_0xe0bf('0x2a')]);_0x3287a7[_0xe0bf('0x30')]=_[_0xe0bf('0x2e')](_0x57b5d9['model'],qs[_0xe0bf('0x2f')](_0x1696b8['query'][_0xe0bf('0x2f')]));_0x3287a7['attributes']=_0x3287a7[_0xe0bf('0x30')][_0xe0bf('0x31')]?_0x3287a7[_0xe0bf('0x30')]:_0x57b5d9['model'];if(_0x1696b8[_0xe0bf('0x2a')][_0xe0bf('0x3f')]){_0x3287a7['include']=[{'all':!![]}];}_0x3287a7=_[_0xe0bf('0x3a')]({},_0x3287a7,_0x1696b8['options']);return db[_0xe0bf('0x26')]['find'](_0x3287a7)['then'](handleEntityNotFound(_0x3dff91,null))[_0xe0bf('0x1f')](respondWithResult(_0x3dff91,null))[_0xe0bf('0x42')](handleError(_0x3dff91,null));};exports[_0xe0bf('0x44')]=function(_0x534569,_0x4c1677){return db[_0xe0bf('0x26')][_0xe0bf('0x44')](_0x534569[_0xe0bf('0x45')],{})[_0xe0bf('0x1f')](respondWithResult(_0x4c1677,0xc9))[_0xe0bf('0x42')](handleError(_0x4c1677,null));};exports[_0xe0bf('0x46')]=function(_0x17e4c5,_0x198e88){if(_0x17e4c5[_0xe0bf('0x45')]['id']){delete _0x17e4c5[_0xe0bf('0x45')]['id'];}return db[_0xe0bf('0x26')][_0xe0bf('0x47')]({'where':{'id':_0x17e4c5['params']['id']}})[_0xe0bf('0x1f')](handleEntityNotFound(_0x198e88,null))[_0xe0bf('0x1f')](saveUpdates(_0x17e4c5['body'],null))[_0xe0bf('0x1f')](respondWithResult(_0x198e88,null))['catch'](handleError(_0x198e88,null));};exports[_0xe0bf('0x20')]=function(_0x90f275,_0x55faf4){return db[_0xe0bf('0x26')][_0xe0bf('0x47')]({'where':{'id':_0x90f275[_0xe0bf('0x48')]['id']}})[_0xe0bf('0x1f')](handleEntityNotFound(_0x55faf4,null))[_0xe0bf('0x1f')](removeEntity(_0x55faf4,null))[_0xe0bf('0x42')](handleError(_0x55faf4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fff=['define','ZohoField','int_zoho_fields','util','../../config/logger','api','moment','request-promise','./intZohoField.attributes','exports'];(function(_0x5ca0fc,_0x383373){var _0x25f4c2=function(_0x34214d){while(--_0x34214d){_0x5ca0fc['push'](_0x5ca0fc['shift']());}};_0x25f4c2(++_0x383373);}(_0x9fff,0x107));var _0xf9ff=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9fff[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xf9ff('0x0'));var logger=require(_0xf9ff('0x1'))(_0xf9ff('0x2'));var moment=require(_0xf9ff('0x3'));var BPromise=require('bluebird');var rp=require(_0xf9ff('0x4'));var attributes=require(_0xf9ff('0x5'));module[_0xf9ff('0x6')]=function(_0x27b219,_0x5e7c9a){return _0x27b219[_0xf9ff('0x7')](_0xf9ff('0x8'),attributes,{'tableName':_0xf9ff('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc81e=['ZohoField','int_zoho_fields','lodash','../../config/logger','api','moment','exports'];(function(_0x42acaa,_0x27b3b7){var _0xfde6fd=function(_0x226a3f){while(--_0x226a3f){_0x42acaa['push'](_0x42acaa['shift']());}};_0xfde6fd(++_0x27b3b7);}(_0xc81e,0x105));var _0xec81=function(_0x15f3c0,_0x165a64){_0x15f3c0=_0x15f3c0-0x0;var _0x1adfe0=_0xc81e[_0x15f3c0];return _0x1adfe0;};'use strict';var _=require(_0xec81('0x0'));var util=require('util');var logger=require(_0xec81('0x1'))(_0xec81('0x2'));var moment=require(_0xec81('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require('./intZohoField.attributes');module[_0xec81('0x4')]=function(_0x198d0c,_0x1e1858){return _0x198d0c['define'](_0xec81('0x5'),attributes,{'tableName':_0xec81('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc677=['code','message','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','http','then','info','ZohoField,\x20%s,\x20%s','request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3f80c7,_0x3e9355){var _0x10c568=function(_0x5c0ed5){while(--_0x5c0ed5){_0x3f80c7['push'](_0x3f80c7['shift']());}};_0x10c568(++_0x3e9355);}(_0xc677,0x16c));var _0x7c67=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xc677[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x7c67('0x0'));var moment=require(_0x7c67('0x1'));var BPromise=require(_0x7c67('0x2'));var rs=require(_0x7c67('0x3'));var fs=require('fs');var db=require(_0x7c67('0x4'))['db'];var utils=require(_0x7c67('0x5'));var logger=require(_0x7c67('0x6'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x7c67('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x2e311e,_0x57e852,_0x1e916c){return new BPromise(function(_0x5475af,_0x187378){return client['request'](_0x2e311e,_0x1e916c)[_0x7c67('0x8')](function(_0x2a2e4b){logger[_0x7c67('0x9')](_0x7c67('0xa'),_0x57e852,_0x7c67('0xb'));logger[_0x7c67('0xc')](_0x7c67('0xd'),_0x57e852,_0x7c67('0xb'),JSON[_0x7c67('0xe')](_0x2a2e4b));if(_0x2a2e4b[_0x7c67('0xf')]){if(_0x2a2e4b[_0x7c67('0xf')][_0x7c67('0x10')]===0x1f4){logger['error'](_0x7c67('0xa'),_0x57e852,_0x2a2e4b[_0x7c67('0xf')][_0x7c67('0x11')]);return _0x187378(_0x2a2e4b['error'][_0x7c67('0x11')]);}logger['error']('ZohoField,\x20%s,\x20%s',_0x57e852,_0x2a2e4b[_0x7c67('0xf')][_0x7c67('0x11')]);return _0x5475af(_0x2a2e4b[_0x7c67('0xf')][_0x7c67('0x11')]);}else{logger[_0x7c67('0x9')](_0x7c67('0xa'),_0x57e852,_0x7c67('0xb'));_0x5475af(_0x2a2e4b[_0x7c67('0x12')][_0x7c67('0x11')]);}})[_0x7c67('0x13')](function(_0x551ce1){logger[_0x7c67('0xf')](_0x7c67('0xa'),_0x57e852,_0x551ce1);_0x187378(_0x551ce1);});});}
\ No newline at end of file
+var _0xaad9=['lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','info','ZohoField,\x20%s,\x20%s','debug','ZohoField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch'];(function(_0x13647c,_0x4822a7){var _0x341ecb=function(_0x79eb2){while(--_0x79eb2){_0x13647c['push'](_0x13647c['shift']());}};_0x341ecb(++_0x4822a7);}(_0xaad9,0x9a));var _0x9aad=function(_0x599f41,_0x4db732){_0x599f41=_0x599f41-0x0;var _0x2e4d58=_0xaad9[_0x599f41];return _0x2e4d58;};'use strict';var _=require(_0x9aad('0x0'));var util=require(_0x9aad('0x1'));var moment=require('moment');var BPromise=require(_0x9aad('0x2'));var rs=require(_0x9aad('0x3'));var fs=require('fs');var Redis=require(_0x9aad('0x4'));var db=require(_0x9aad('0x5'))['db'];var utils=require(_0x9aad('0x6'));var logger=require(_0x9aad('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x9aad('0x8'));var client=jayson[_0x9aad('0x9')][_0x9aad('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5b1464,_0x2f45d6,_0x2b603c){return new BPromise(function(_0x2a811e,_0x33af3b){return client[_0x9aad('0xb')](_0x5b1464,_0x2b603c)['then'](function(_0x9d78e3){logger[_0x9aad('0xc')](_0x9aad('0xd'),_0x2f45d6,'request\x20sent');logger[_0x9aad('0xe')](_0x9aad('0xf'),_0x2f45d6,_0x9aad('0x10'),JSON[_0x9aad('0x11')](_0x9d78e3));if(_0x9d78e3[_0x9aad('0x12')]){if(_0x9d78e3['error']['code']===0x1f4){logger[_0x9aad('0x12')](_0x9aad('0xd'),_0x2f45d6,_0x9d78e3[_0x9aad('0x12')][_0x9aad('0x13')]);return _0x33af3b(_0x9d78e3[_0x9aad('0x12')][_0x9aad('0x13')]);}logger[_0x9aad('0x12')]('ZohoField,\x20%s,\x20%s',_0x2f45d6,_0x9d78e3[_0x9aad('0x12')][_0x9aad('0x13')]);return _0x2a811e(_0x9d78e3['error'][_0x9aad('0x13')]);}else{logger['info'](_0x9aad('0xd'),_0x2f45d6,_0x9aad('0x10'));_0x2a811e(_0x9d78e3[_0x9aad('0x14')][_0x9aad('0x13')]);}})[_0x9aad('0x15')](function(_0xaff42c){logger[_0x9aad('0x12')](_0x9aad('0xd'),_0x2f45d6,_0xaff42c);_0x33af3b(_0xaff42c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc359=['connect-timeout','express','Router','../../components/interaction/service','exports','util'];(function(_0x272f6d,_0x5cffd7){var _0x6a39f1=function(_0xf1f5e1){while(--_0xf1f5e1){_0x272f6d['push'](_0x272f6d['shift']());}};_0x6a39f1(++_0x5cffd7);}(_0xc359,0x1d9));var _0x9c35=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0xc359[_0x1694f5];return _0x5b4321;};'use strict';var multer=require('multer');var util=require(_0x9c35('0x0'));var path=require('path');var timeout=require(_0x9c35('0x1'));var express=require(_0x9c35('0x2'));var router=express[_0x9c35('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x9c35('0x4'));var config=require('../../config/environment');module[_0x9c35('0x5')]=router;
\ No newline at end of file
+var _0x1967=['../../config/environment','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x3e5cd3,_0x17c4b2){var _0x1e8bd0=function(_0x3e2290){while(--_0x3e2290){_0x3e5cd3['push'](_0x3e5cd3['shift']());}};_0x1e8bd0(++_0x17c4b2);}(_0x1967,0x173));var _0x7196=function(_0x1c57e1,_0x27e77e){_0x1c57e1=_0x1c57e1-0x0;var _0x1e9cd8=_0x1967[_0x1c57e1];return _0x1e9cd8;};'use strict';var multer=require('multer');var util=require(_0x7196('0x0'));var path=require(_0x7196('0x1'));var timeout=require(_0x7196('0x2'));var express=require(_0x7196('0x3'));var router=express[_0x7196('0x4')]();var auth=require(_0x7196('0x5'));var interaction=require(_0x7196('0x6'));var config=require(_0x7196('0x7'));module[_0x7196('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb40b=['unique_name_and_version','STRING','app.js','INTEGER','BOOLEAN','state','exports'];(function(_0x30033a,_0x5ce4a6){var _0x5e3518=function(_0x11494a){while(--_0x11494a){_0x30033a['push'](_0x30033a['shift']());}};_0x5e3518(++_0x5ce4a6);}(_0xb40b,0x12c));var _0xbb40=function(_0x2b7764,_0x2606f1){_0x2b7764=_0x2b7764-0x0;var _0x848dcb=_0xb40b[_0x2b7764];return _0x848dcb;};'use strict';var Sequelize=require('sequelize');module[_0xbb40('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xbb40('0x1')},'version':{'type':Sequelize[_0xbb40('0x2')],'allowNull':![],'unique':_0xbb40('0x1')},'main':{'type':Sequelize[_0xbb40('0x2')],'defaultValue':_0xbb40('0x3')},'filename':{'type':Sequelize['STRING']},'path':{'type':Sequelize[_0xbb40('0x2')]},'type':{'type':Sequelize[_0xbb40('0x2')]},'size':{'type':Sequelize[_0xbb40('0x4')]},'active':{'type':Sequelize[_0xbb40('0x5')],'defaultValue':![]},'author':{'type':Sequelize[_0xbb40('0x2')]},'logo':{'type':Sequelize[_0xbb40('0x2')]},'state':{'type':Sequelize[_0xbb40('0x2')],'unique':_0xbb40('0x6')},'description':{'type':Sequelize[_0xbb40('0x2')]},'title':{'type':Sequelize[_0xbb40('0x2')]},'remoteUri':{'type':Sequelize[_0xbb40('0x2')]},'link':{'type':Sequelize[_0xbb40('0x2')],'defaultValue':'#'}};
\ No newline at end of file
+var _0x0179=['BOOLEAN','sequelize','STRING','unique_name_and_version','app.js','INTEGER'];(function(_0xbe6f4,_0x303d8d){var _0x35f8ce=function(_0x25ea1a){while(--_0x25ea1a){_0xbe6f4['push'](_0xbe6f4['shift']());}};_0x35f8ce(++_0x303d8d);}(_0x0179,0x139));var _0x9017=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0x0179[_0x1ccdf7];return _0x52a0ae;};'use strict';var Sequelize=require(_0x9017('0x0'));module['exports']={'name':{'type':Sequelize[_0x9017('0x1')],'allowNull':![],'unique':_0x9017('0x2')},'version':{'type':Sequelize[_0x9017('0x1')],'allowNull':![],'unique':_0x9017('0x2')},'main':{'type':Sequelize[_0x9017('0x1')],'defaultValue':_0x9017('0x3')},'filename':{'type':Sequelize[_0x9017('0x1')]},'path':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x9017('0x1')]},'size':{'type':Sequelize[_0x9017('0x4')]},'active':{'type':Sequelize[_0x9017('0x5')],'defaultValue':![]},'author':{'type':Sequelize[_0x9017('0x1')]},'logo':{'type':Sequelize[_0x9017('0x1')]},'state':{'type':Sequelize[_0x9017('0x1')],'unique':'state'},'description':{'type':Sequelize[_0x9017('0x1')]},'title':{'type':Sequelize[_0x9017('0x1')]},'remoteUri':{'type':Sequelize[_0x9017('0x1')]},'link':{'type':Sequelize[_0x9017('0x1')],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33af=['intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','pick','add','merge','where','filter','options','Integration','count','include','findAll','catch','show','params','includeAll','find','create','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','sendStatus','status','json','offset','limit','Content-Range','apply','reject','update','then','destroy','end','error','stack','name','send','index','rawAttributes','keys','query','dateStart','dateEnd','filters'];(function(_0x1ed238,_0x3f4bbd){var _0x3edd5c=function(_0x20d553){while(--_0x20d553){_0x1ed238['push'](_0x1ed238['shift']());}};_0x3edd5c(++_0x3f4bbd);}(_0x33af,0xec));var _0xf33a=function(_0x51786e,_0x5ee24e){_0x51786e=_0x51786e-0x0;var _0x25b5e2=_0x33af[_0x51786e];return _0x25b5e2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf33a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf33a('0x1'));var jsonpatch=require(_0xf33a('0x2'));var rp=require(_0xf33a('0x3'));var moment=require(_0xf33a('0x4'));var BPromise=require(_0xf33a('0x5'));var Mustache=require(_0xf33a('0x6'));var util=require('util');var path=require(_0xf33a('0x7'));var sox=require(_0xf33a('0x8'));var csv=require('to-csv');var ejs=require(_0xf33a('0x9'));var fs=require('fs');var _=require(_0xf33a('0xa'));var squel=require(_0xf33a('0xb'));var crypto=require(_0xf33a('0xc'));var jsforce=require(_0xf33a('0xd'));var deskjs=require(_0xf33a('0xe'));var toCsv=require('to-csv');var querystring=require(_0xf33a('0xf'));var Papa=require(_0xf33a('0x10'));var qs=require(_0xf33a('0x11'));var logger=require(_0xf33a('0x12'))(_0xf33a('0x13'));var utils=require(_0xf33a('0x14'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x31ccd8,_0xb47cde){_0xb47cde=_0xb47cde||0xcc;return function(_0x170468){if(_0x170468){return _0x31ccd8[_0xf33a('0x15')](_0xb47cde);}return _0x31ccd8[_0xf33a('0x16')](_0xb47cde)['end']();};}function respondWithResult(_0x9f87bc,_0x21b80e){_0x21b80e=_0x21b80e||0xc8;return function(_0x549978){if(_0x549978){return _0x9f87bc['status'](_0x21b80e)[_0xf33a('0x17')](_0x549978);}};}function respondWithFilteredResult(_0x1b3bf0,_0x17043){return function(_0x153bda){if(_0x153bda){var _0x1e9be2=_0x153bda['count'],_0xc01217=_0x17043[_0xf33a('0x18')],_0x45e311=_0x17043['offset']+_0x17043[_0xf33a('0x19')],_0x1f2b1b;if(_0x45e311>=_0x1e9be2){_0x45e311=_0x1e9be2;_0x1f2b1b=0xc8;}else{_0x1f2b1b=0xce;}_0x1b3bf0[_0xf33a('0x16')](_0x1f2b1b);return _0x1b3bf0['set'](_0xf33a('0x1a'),_0xc01217+'-'+_0x45e311+'/'+_0x1e9be2)[_0xf33a('0x17')](_0x153bda);}return null;};}function patchUpdates(_0x524109){return function(_0x2946ef){try{jsonpatch[_0xf33a('0x1b')](_0x2946ef,_0x524109,!![]);}catch(_0x38d69a){return BPromise[_0xf33a('0x1c')](_0x38d69a);}return _0x2946ef['save']();};}function saveUpdates(_0x11efa0,_0x366bda){return function(_0x2c295e){if(_0x2c295e){return _0x2c295e[_0xf33a('0x1d')](_0x11efa0)[_0xf33a('0x1e')](function(_0x6cdf7b){return _0x6cdf7b;});}return null;};}function removeEntity(_0x19986f,_0x288275){return function(_0x19055e){if(_0x19055e){return _0x19055e[_0xf33a('0x1f')]()['then'](function(){_0x19986f[_0xf33a('0x16')](0xcc)[_0xf33a('0x20')]();});}};}function handleEntityNotFound(_0x1bf9bc,_0x27faa1){return function(_0x2ab756){if(!_0x2ab756){_0x1bf9bc['sendStatus'](0x194);}return _0x2ab756;};}function handleError(_0x44654c,_0x5882ba){_0x5882ba=_0x5882ba||0x1f4;return function(_0x492986){logger[_0xf33a('0x21')](_0x492986[_0xf33a('0x22')]);if(_0x492986[_0xf33a('0x23')]){delete _0x492986[_0xf33a('0x23')];}_0x44654c['status'](_0x5882ba)[_0xf33a('0x24')](_0x492986);};}exports[_0xf33a('0x25')]=function(_0x5edf1a,_0x4af24a){var _0x16ef31={},_0x5f0a53={},_0x5cf981={'count':0x0,'rows':[]};var _0x38eba2=db['Integration'][_0xf33a('0x26')];_0x5f0a53['model']=_[_0xf33a('0x27')](_0x38eba2);var _0xdc2b34={'dateStart':_0x5edf1a[_0xf33a('0x28')][_0xf33a('0x29')],'dateEnd':_0x5edf1a[_0xf33a('0x28')][_0xf33a('0x2a')]};delete _0x5edf1a[_0xf33a('0x28')][_0xf33a('0x29')];delete _0x5edf1a[_0xf33a('0x28')][_0xf33a('0x2a')];_0x5f0a53[_0xf33a('0x28')]=_[_0xf33a('0x27')](_0x5edf1a[_0xf33a('0x28')]);_0x5f0a53[_0xf33a('0x2b')]=_[_0xf33a('0x2c')](_0x5f0a53['model'],_0x5f0a53[_0xf33a('0x28')]);_0x16ef31[_0xf33a('0x2d')]=_[_0xf33a('0x2c')](_0x5f0a53[_0xf33a('0x2e')],qs['fields'](_0x5edf1a[_0xf33a('0x28')][_0xf33a('0x2f')]));_0x16ef31[_0xf33a('0x2d')]=_0x16ef31[_0xf33a('0x2d')][_0xf33a('0x30')]?_0x16ef31[_0xf33a('0x2d')]:_0x5f0a53['model'];if(!_0x5edf1a[_0xf33a('0x28')][_0xf33a('0x31')](_0xf33a('0x32'))){_0x16ef31[_0xf33a('0x19')]=qs[_0xf33a('0x19')](_0x5edf1a['query']['limit']);_0x16ef31[_0xf33a('0x18')]=qs['offset'](_0x5edf1a['query']['offset']);}_0x16ef31[_0xf33a('0x33')]=qs[_0xf33a('0x34')](_0x5edf1a['query'][_0xf33a('0x34')]);_0x16ef31['where']=qs[_0xf33a('0x2b')](_[_0xf33a('0x35')](_0x5edf1a[_0xf33a('0x28')],_0x5f0a53[_0xf33a('0x2b')]));if(_0xdc2b34[_0xf33a('0x29')]){if(_0xdc2b34[_0xf33a('0x2a')]){_0xdc2b34['dateEnd']=moment(_0xdc2b34[_0xf33a('0x2a')])[_0xf33a('0x36')](0x1,'day');}else{_0xdc2b34[_0xf33a('0x2a')]=moment(_0xdc2b34[_0xf33a('0x29')])[_0xf33a('0x36')](0x1,'day');}_[_0xf33a('0x37')](_0x16ef31[_0xf33a('0x38')],{'createdAt':{'$gte':_0xdc2b34[_0xf33a('0x29')],'$lte':_0xdc2b34[_0xf33a('0x2a')]}});}if(_0x5edf1a[_0xf33a('0x28')][_0xf33a('0x39')]){_0x16ef31[_0xf33a('0x38')]=_[_0xf33a('0x37')](_0x16ef31[_0xf33a('0x38')],{'$or':_['map'](_0x16ef31[_0xf33a('0x2d')],function(_0x3e80b6){var _0x5c2e10={};_0x5c2e10[_0x3e80b6]={'$like':'%'+_0x5edf1a[_0xf33a('0x28')]['filter']+'%'};return _0x5c2e10;})});}_0x16ef31=_['merge']({},_0x16ef31,_0x5edf1a[_0xf33a('0x3a')]);var _0x893cef={'where':_0x16ef31['where']};return db[_0xf33a('0x3b')][_0xf33a('0x3c')](_0x893cef)[_0xf33a('0x1e')](function(_0x5776b1){_0x5cf981[_0xf33a('0x3c')]=_0x5776b1;if(_0x5edf1a[_0xf33a('0x28')]['includeAll']){_0x16ef31[_0xf33a('0x3d')]=[{'all':!![]}];}return db[_0xf33a('0x3b')][_0xf33a('0x3e')](_0x16ef31);})[_0xf33a('0x1e')](function(_0x40954c){_0x5cf981['rows']=_0x40954c;return _0x5cf981;})[_0xf33a('0x1e')](respondWithFilteredResult(_0x4af24a,_0x16ef31))[_0xf33a('0x3f')](handleError(_0x4af24a,null));};exports[_0xf33a('0x40')]=function(_0x259749,_0x253f21){var _0x5ef2b8={'raw':![],'where':{'id':_0x259749[_0xf33a('0x41')]['id']}},_0x175825={};_0x175825[_0xf33a('0x2e')]=_['keys'](db[_0xf33a('0x3b')][_0xf33a('0x26')]);_0x175825[_0xf33a('0x28')]=_[_0xf33a('0x27')](_0x259749[_0xf33a('0x28')]);_0x175825[_0xf33a('0x2b')]=_['intersection'](_0x175825[_0xf33a('0x2e')],_0x175825[_0xf33a('0x28')]);_0x5ef2b8[_0xf33a('0x2d')]=_[_0xf33a('0x2c')](_0x175825[_0xf33a('0x2e')],qs['fields'](_0x259749[_0xf33a('0x28')][_0xf33a('0x2f')]));_0x5ef2b8[_0xf33a('0x2d')]=_0x5ef2b8['attributes'][_0xf33a('0x30')]?_0x5ef2b8[_0xf33a('0x2d')]:_0x175825['model'];if(_0x259749['query'][_0xf33a('0x42')]){_0x5ef2b8['include']=[{'all':!![]}];}_0x5ef2b8=_[_0xf33a('0x37')]({},_0x5ef2b8,_0x259749[_0xf33a('0x3a')]);return db[_0xf33a('0x3b')][_0xf33a('0x43')](_0x5ef2b8)[_0xf33a('0x1e')](handleEntityNotFound(_0x253f21,null))[_0xf33a('0x1e')](respondWithResult(_0x253f21,null))[_0xf33a('0x3f')](handleError(_0x253f21,null));};exports[_0xf33a('0x44')]=function(_0x205409,_0xbe98a9){return db[_0xf33a('0x3b')][_0xf33a('0x44')](_0x205409[_0xf33a('0x45')],{})[_0xf33a('0x1e')](respondWithResult(_0xbe98a9,0xc9))[_0xf33a('0x3f')](handleError(_0xbe98a9,null));};exports[_0xf33a('0x1d')]=function(_0x3270e1,_0x103ec7){if(_0x3270e1[_0xf33a('0x45')]['id']){delete _0x3270e1[_0xf33a('0x45')]['id'];}return db[_0xf33a('0x3b')][_0xf33a('0x43')]({'where':{'id':_0x3270e1[_0xf33a('0x41')]['id']}})[_0xf33a('0x1e')](handleEntityNotFound(_0x103ec7,null))[_0xf33a('0x1e')](saveUpdates(_0x3270e1[_0xf33a('0x45')],null))[_0xf33a('0x1e')](respondWithResult(_0x103ec7,null))[_0xf33a('0x3f')](handleError(_0x103ec7,null));};exports[_0xf33a('0x1f')]=function(_0x59dc17,_0x349d3f){return db[_0xf33a('0x3b')]['find']({'where':{'id':_0x59dc17[_0xf33a('0x41')]['id']}})[_0xf33a('0x1e')](handleEntityNotFound(_0x349d3f,null))[_0xf33a('0x1e')](removeEntity(_0x349d3f,null))['catch'](handleError(_0x349d3f,null));};
\ No newline at end of file
+var _0x1cb9=['../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','save','update','destroy','then','end','error','stack','name','Integration','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','day','merge','filter','map','includeAll','include','findAll','rows','catch','params','rawAttributes','options','find','create','body','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x239b31,_0x44a64d){var _0x41c8be=function(_0x27f031){while(--_0x27f031){_0x239b31['push'](_0x239b31['shift']());}};_0x41c8be(++_0x44a64d);}(_0x1cb9,0x14e));var _0x91cb=function(_0x1810d7,_0x42d7ac){_0x1810d7=_0x1810d7-0x0;var _0x33ca66=_0x1cb9[_0x1810d7];return _0x33ca66;};'use strict';var pdf=require(_0x91cb('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x91cb('0x1'));var zipdir=require(_0x91cb('0x2'));var jsonpatch=require(_0x91cb('0x3'));var rp=require(_0x91cb('0x4'));var moment=require('moment');var BPromise=require(_0x91cb('0x5'));var Mustache=require(_0x91cb('0x6'));var util=require('util');var path=require(_0x91cb('0x7'));var sox=require(_0x91cb('0x8'));var csv=require(_0x91cb('0x9'));var ejs=require(_0x91cb('0xa'));var fs=require('fs');var _=require(_0x91cb('0xb'));var squel=require(_0x91cb('0xc'));var crypto=require('crypto');var jsforce=require(_0x91cb('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x91cb('0x9'));var querystring=require('querystring');var Papa=require(_0x91cb('0xe'));var Redis=require(_0x91cb('0xf'));var qs=require(_0x91cb('0x10'));var logger=require(_0x91cb('0x11'))(_0x91cb('0x12'));var utils=require(_0x91cb('0x13'));var config=require(_0x91cb('0x14'));var db=require(_0x91cb('0x15'))['db'];function respondWithStatusCode(_0x2465be,_0x8c0097){_0x8c0097=_0x8c0097||0xcc;return function(_0x530d92){if(_0x530d92){return _0x2465be[_0x91cb('0x16')](_0x8c0097);}return _0x2465be[_0x91cb('0x17')](_0x8c0097)['end']();};}function respondWithResult(_0x20e6e0,_0x3ea707){_0x3ea707=_0x3ea707||0xc8;return function(_0x44f2e9){if(_0x44f2e9){return _0x20e6e0[_0x91cb('0x17')](_0x3ea707)['json'](_0x44f2e9);}};}function respondWithFilteredResult(_0x4cc6ef,_0x4aae25){return function(_0x3d22b7){if(_0x3d22b7){var _0x585470=_0x3d22b7[_0x91cb('0x18')],_0x528f73=_0x4aae25['offset'],_0x576369=_0x4aae25[_0x91cb('0x19')]+_0x4aae25[_0x91cb('0x1a')],_0xc3629e;if(_0x576369>=_0x585470){_0x576369=_0x585470;_0xc3629e=0xc8;}else{_0xc3629e=0xce;}_0x4cc6ef['status'](_0xc3629e);return _0x4cc6ef[_0x91cb('0x1b')](_0x91cb('0x1c'),_0x528f73+'-'+_0x576369+'/'+_0x585470)[_0x91cb('0x1d')](_0x3d22b7);}return null;};}function patchUpdates(_0xcd1a78){return function(_0x5cc1c3){try{jsonpatch[_0x91cb('0x1e')](_0x5cc1c3,_0xcd1a78,!![]);}catch(_0x7dcf60){return BPromise['reject'](_0x7dcf60);}return _0x5cc1c3[_0x91cb('0x1f')]();};}function saveUpdates(_0x4c9fb2,_0x55042a){return function(_0x281ff3){if(_0x281ff3){return _0x281ff3[_0x91cb('0x20')](_0x4c9fb2)['then'](function(_0x51a1d5){return _0x51a1d5;});}return null;};}function removeEntity(_0x5b385a,_0x438162){return function(_0x18827b){if(_0x18827b){return _0x18827b[_0x91cb('0x21')]()[_0x91cb('0x22')](function(){_0x5b385a['status'](0xcc)[_0x91cb('0x23')]();});}};}function handleEntityNotFound(_0x43881c,_0x1fa837){return function(_0x55fa78){if(!_0x55fa78){_0x43881c[_0x91cb('0x16')](0x194);}return _0x55fa78;};}function handleError(_0x1a7a54,_0x2447e7){_0x2447e7=_0x2447e7||0x1f4;return function(_0x422d14){logger[_0x91cb('0x24')](_0x422d14[_0x91cb('0x25')]);if(_0x422d14[_0x91cb('0x26')]){delete _0x422d14[_0x91cb('0x26')];}_0x1a7a54[_0x91cb('0x17')](_0x2447e7)['send'](_0x422d14);};}exports['index']=function(_0x234eb1,_0x554350){var _0x1c67d2={},_0x34d372={},_0x318031={'count':0x0,'rows':[]};var _0x5595c5=db[_0x91cb('0x27')]['rawAttributes'];_0x34d372[_0x91cb('0x28')]=_[_0x91cb('0x29')](_0x5595c5);var _0x3b3ee6={'dateStart':_0x234eb1[_0x91cb('0x2a')][_0x91cb('0x2b')],'dateEnd':_0x234eb1['query'][_0x91cb('0x2c')]};delete _0x234eb1['query'][_0x91cb('0x2b')];delete _0x234eb1[_0x91cb('0x2a')][_0x91cb('0x2c')];_0x34d372['query']=_[_0x91cb('0x29')](_0x234eb1[_0x91cb('0x2a')]);_0x34d372[_0x91cb('0x2d')]=_[_0x91cb('0x2e')](_0x34d372[_0x91cb('0x28')],_0x34d372[_0x91cb('0x2a')]);_0x1c67d2[_0x91cb('0x2f')]=_[_0x91cb('0x2e')](_0x34d372[_0x91cb('0x28')],qs['fields'](_0x234eb1[_0x91cb('0x2a')][_0x91cb('0x30')]));_0x1c67d2[_0x91cb('0x2f')]=_0x1c67d2[_0x91cb('0x2f')][_0x91cb('0x31')]?_0x1c67d2['attributes']:_0x34d372[_0x91cb('0x28')];if(!_0x234eb1[_0x91cb('0x2a')][_0x91cb('0x32')](_0x91cb('0x33'))){_0x1c67d2[_0x91cb('0x1a')]=qs['limit'](_0x234eb1[_0x91cb('0x2a')]['limit']);_0x1c67d2['offset']=qs['offset'](_0x234eb1[_0x91cb('0x2a')]['offset']);}_0x1c67d2[_0x91cb('0x34')]=qs['sort'](_0x234eb1['query'][_0x91cb('0x35')]);_0x1c67d2[_0x91cb('0x36')]=qs[_0x91cb('0x2d')](_[_0x91cb('0x37')](_0x234eb1[_0x91cb('0x2a')],_0x34d372['filters']));if(_0x3b3ee6[_0x91cb('0x2b')]){if(_0x3b3ee6[_0x91cb('0x2c')]){_0x3b3ee6[_0x91cb('0x2c')]=moment(_0x3b3ee6[_0x91cb('0x2c')])['add'](0x1,'day');}else{_0x3b3ee6[_0x91cb('0x2c')]=moment(_0x3b3ee6[_0x91cb('0x2b')])['add'](0x1,_0x91cb('0x38'));}_[_0x91cb('0x39')](_0x1c67d2['where'],{'createdAt':{'$gte':_0x3b3ee6[_0x91cb('0x2b')],'$lte':_0x3b3ee6[_0x91cb('0x2c')]}});}if(_0x234eb1['query'][_0x91cb('0x3a')]){_0x1c67d2['where']=_[_0x91cb('0x39')](_0x1c67d2[_0x91cb('0x36')],{'$or':_[_0x91cb('0x3b')](_0x1c67d2[_0x91cb('0x2f')],function(_0x51d0ea){var _0x20bf50={};_0x20bf50[_0x51d0ea]={'$like':'%'+_0x234eb1['query'][_0x91cb('0x3a')]+'%'};return _0x20bf50;})});}_0x1c67d2=_[_0x91cb('0x39')]({},_0x1c67d2,_0x234eb1['options']);var _0x312581={'where':_0x1c67d2['where']};return db[_0x91cb('0x27')][_0x91cb('0x18')](_0x312581)[_0x91cb('0x22')](function(_0x174794){_0x318031['count']=_0x174794;if(_0x234eb1[_0x91cb('0x2a')][_0x91cb('0x3c')]){_0x1c67d2[_0x91cb('0x3d')]=[{'all':!![]}];}return db[_0x91cb('0x27')][_0x91cb('0x3e')](_0x1c67d2);})[_0x91cb('0x22')](function(_0x451463){_0x318031[_0x91cb('0x3f')]=_0x451463;return _0x318031;})[_0x91cb('0x22')](respondWithFilteredResult(_0x554350,_0x1c67d2))[_0x91cb('0x40')](handleError(_0x554350,null));};exports['show']=function(_0x16993f,_0x49219d){var _0x31571b={'raw':![],'where':{'id':_0x16993f[_0x91cb('0x41')]['id']}},_0x5537a0={};_0x5537a0['model']=_[_0x91cb('0x29')](db[_0x91cb('0x27')][_0x91cb('0x42')]);_0x5537a0[_0x91cb('0x2a')]=_['keys'](_0x16993f[_0x91cb('0x2a')]);_0x5537a0[_0x91cb('0x2d')]=_['intersection'](_0x5537a0[_0x91cb('0x28')],_0x5537a0[_0x91cb('0x2a')]);_0x31571b[_0x91cb('0x2f')]=_[_0x91cb('0x2e')](_0x5537a0[_0x91cb('0x28')],qs[_0x91cb('0x30')](_0x16993f[_0x91cb('0x2a')][_0x91cb('0x30')]));_0x31571b[_0x91cb('0x2f')]=_0x31571b['attributes'][_0x91cb('0x31')]?_0x31571b[_0x91cb('0x2f')]:_0x5537a0[_0x91cb('0x28')];if(_0x16993f[_0x91cb('0x2a')][_0x91cb('0x3c')]){_0x31571b[_0x91cb('0x3d')]=[{'all':!![]}];}_0x31571b=_[_0x91cb('0x39')]({},_0x31571b,_0x16993f[_0x91cb('0x43')]);return db['Integration'][_0x91cb('0x44')](_0x31571b)[_0x91cb('0x22')](handleEntityNotFound(_0x49219d,null))[_0x91cb('0x22')](respondWithResult(_0x49219d,null))[_0x91cb('0x40')](handleError(_0x49219d,null));};exports['create']=function(_0x9dae06,_0x1aa461){return db['Integration'][_0x91cb('0x45')](_0x9dae06['body'],{})[_0x91cb('0x22')](respondWithResult(_0x1aa461,0xc9))['catch'](handleError(_0x1aa461,null));};exports['update']=function(_0x52db35,_0x98245b){if(_0x52db35[_0x91cb('0x46')]['id']){delete _0x52db35[_0x91cb('0x46')]['id'];}return db[_0x91cb('0x27')][_0x91cb('0x44')]({'where':{'id':_0x52db35['params']['id']}})['then'](handleEntityNotFound(_0x98245b,null))[_0x91cb('0x22')](saveUpdates(_0x52db35[_0x91cb('0x46')],null))[_0x91cb('0x22')](respondWithResult(_0x98245b,null))[_0x91cb('0x40')](handleError(_0x98245b,null));};exports['destroy']=function(_0x47c76a,_0x53f979){return db[_0x91cb('0x27')]['find']({'where':{'id':_0x47c76a[_0x91cb('0x41')]['id']}})['then'](handleEntityNotFound(_0x53f979,null))[_0x91cb('0x22')](removeEntity(_0x53f979,null))[_0x91cb('0x40')](handleError(_0x53f979,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd943=['../../config/logger','api','bluebird','request-promise','./integration.attributes','exports','Integration','lodash','util'];(function(_0x452647,_0x51d743){var _0x10f28c=function(_0x88d11f){while(--_0x88d11f){_0x452647['push'](_0x452647['shift']());}};_0x10f28c(++_0x51d743);}(_0xd943,0x15d));var _0x3d94=function(_0x441283,_0x254470){_0x441283=_0x441283-0x0;var _0xeaef5d=_0xd943[_0x441283];return _0xeaef5d;};'use strict';var _=require(_0x3d94('0x0'));var util=require(_0x3d94('0x1'));var logger=require(_0x3d94('0x2'))(_0x3d94('0x3'));var moment=require('moment');var BPromise=require(_0x3d94('0x4'));var rp=require(_0x3d94('0x5'));var attributes=require(_0x3d94('0x6'));module[_0x3d94('0x7')]=function(_0xaf8962,_0x5751f6){return _0xaf8962['define'](_0x3d94('0x8'),attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x687b=['lodash','util','../../config/logger','api','request-promise','./integration.attributes','exports','define','Integration','integrations'];(function(_0x3a4f18,_0x1af741){var _0x4c20fc=function(_0x27115f){while(--_0x27115f){_0x3a4f18['push'](_0x3a4f18['shift']());}};_0x4c20fc(++_0x1af741);}(_0x687b,0x14a));var _0xb687=function(_0x32f05c,_0x273aef){_0x32f05c=_0x32f05c-0x0;var _0x4307ed=_0x687b[_0x32f05c];return _0x4307ed;};'use strict';var _=require(_0xb687('0x0'));var util=require(_0xb687('0x1'));var logger=require(_0xb687('0x2'))(_0xb687('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xb687('0x4'));var attributes=require(_0xb687('0x5'));module[_0xb687('0x6')]=function(_0x31bd0d,_0x46e5b3){return _0x31bd0d[_0xb687('0x7')](_0xb687('0x8'),attributes,{'tableName':_0xb687('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a37=['lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','info','Integration,\x20%s,\x20%s','request\x20sent','debug','Integration,\x20%s,\x20%s,\x20%s','stringify','error','message','catch'];(function(_0x4a081d,_0x97700a){var _0x5beb69=function(_0xb5f967){while(--_0xb5f967){_0x4a081d['push'](_0x4a081d['shift']());}};_0x5beb69(++_0x97700a);}(_0x1a37,0xb4));var _0x71a3=function(_0xd09668,_0x1435b2){_0xd09668=_0xd09668-0x0;var _0x68726=_0x1a37[_0xd09668];return _0x68726;};'use strict';var _=require(_0x71a3('0x0'));var util=require(_0x71a3('0x1'));var moment=require(_0x71a3('0x2'));var BPromise=require(_0x71a3('0x3'));var rs=require(_0x71a3('0x4'));var fs=require('fs');var db=require(_0x71a3('0x5'))['db'];var utils=require(_0x71a3('0x6'));var logger=require(_0x71a3('0x7'))(_0x71a3('0x8'));var config=require(_0x71a3('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x71a3('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xd09f7,_0x45050a,_0x231ea7){return new BPromise(function(_0x2bb6a2,_0x4a9ab2){return client['request'](_0xd09f7,_0x231ea7)['then'](function(_0x58ff35){logger[_0x71a3('0xb')](_0x71a3('0xc'),_0x45050a,_0x71a3('0xd'));logger[_0x71a3('0xe')](_0x71a3('0xf'),_0x45050a,_0x71a3('0xd'),JSON[_0x71a3('0x10')](_0x58ff35));if(_0x58ff35[_0x71a3('0x11')]){if(_0x58ff35['error']['code']===0x1f4){logger['error'](_0x71a3('0xc'),_0x45050a,_0x58ff35[_0x71a3('0x11')][_0x71a3('0x12')]);return _0x4a9ab2(_0x58ff35[_0x71a3('0x11')][_0x71a3('0x12')]);}logger[_0x71a3('0x11')](_0x71a3('0xc'),_0x45050a,_0x58ff35[_0x71a3('0x11')][_0x71a3('0x12')]);return _0x2bb6a2(_0x58ff35[_0x71a3('0x11')][_0x71a3('0x12')]);}else{logger['info'](_0x71a3('0xc'),_0x45050a,_0x71a3('0xd'));_0x2bb6a2(_0x58ff35['result']['message']);}})[_0x71a3('0x13')](function(_0x3a1c81){logger[_0x71a3('0x11')](_0x71a3('0xc'),_0x45050a,_0x3a1c81);_0x4a9ab2(_0x3a1c81);});});}
\ No newline at end of file
+var _0xfe35=['then','info','Integration,\x20%s,\x20%s','request\x20sent','error','code','message','result','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request'];(function(_0x40a94d,_0x19ac1c){var _0x55459f=function(_0x160eb2){while(--_0x160eb2){_0x40a94d['push'](_0x40a94d['shift']());}};_0x55459f(++_0x19ac1c);}(_0xfe35,0x1d6));var _0x5fe3=function(_0x3cced9,_0x4ce533){_0x3cced9=_0x3cced9-0x0;var _0x5e180d=_0xfe35[_0x3cced9];return _0x5e180d;};'use strict';var _=require(_0x5fe3('0x0'));var util=require(_0x5fe3('0x1'));var moment=require(_0x5fe3('0x2'));var BPromise=require('bluebird');var rs=require(_0x5fe3('0x3'));var fs=require('fs');var Redis=require(_0x5fe3('0x4'));var db=require(_0x5fe3('0x5'))['db'];var utils=require(_0x5fe3('0x6'));var logger=require(_0x5fe3('0x7'))('rpc');var config=require(_0x5fe3('0x8'));var jayson=require(_0x5fe3('0x9'));var client=jayson[_0x5fe3('0xa')][_0x5fe3('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5e13a6,_0x1bdca6,_0x10add8){return new BPromise(function(_0x585a33,_0x187868){return client[_0x5fe3('0xc')](_0x5e13a6,_0x10add8)[_0x5fe3('0xd')](function(_0x571361){logger[_0x5fe3('0xe')](_0x5fe3('0xf'),_0x1bdca6,'request\x20sent');logger['debug']('Integration,\x20%s,\x20%s,\x20%s',_0x1bdca6,_0x5fe3('0x10'),JSON['stringify'](_0x571361));if(_0x571361[_0x5fe3('0x11')]){if(_0x571361['error'][_0x5fe3('0x12')]===0x1f4){logger[_0x5fe3('0x11')](_0x5fe3('0xf'),_0x1bdca6,_0x571361[_0x5fe3('0x11')][_0x5fe3('0x13')]);return _0x187868(_0x571361['error'][_0x5fe3('0x13')]);}logger[_0x5fe3('0x11')](_0x5fe3('0xf'),_0x1bdca6,_0x571361[_0x5fe3('0x11')][_0x5fe3('0x13')]);return _0x585a33(_0x571361[_0x5fe3('0x11')][_0x5fe3('0x13')]);}else{logger[_0x5fe3('0xe')](_0x5fe3('0xf'),_0x1bdca6,_0x5fe3('0x10'));_0x585a33(_0x571361[_0x5fe3('0x14')][_0x5fe3('0x13')]);}})['catch'](function(_0xe20332){logger[_0x5fe3('0x11')]('Integration,\x20%s,\x20%s',_0x1bdca6,_0xe20332);_0x187868(_0xe20332);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1c5=['./integrationReport.controller','index','/describe','describe','get','/:id','isAuthenticated','show','post','create','update','delete','destroy','exports','connect-timeout','express','Router','../../components/auth/service','../../config/environment'];(function(_0x2978e4,_0x497d42){var _0x848c1d=function(_0x546b18){while(--_0x546b18){_0x2978e4['push'](_0x2978e4['shift']());}};_0x848c1d(++_0x497d42);}(_0xf1c5,0x151));var _0x5f1c=function(_0x33e151,_0x3e651f){_0x33e151=_0x33e151-0x0;var _0xe5f34e=_0xf1c5[_0x33e151];return _0xe5f34e;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x5f1c('0x0'));var express=require(_0x5f1c('0x1'));var router=express[_0x5f1c('0x2')]();var auth=require(_0x5f1c('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x5f1c('0x4'));var controller=require(_0x5f1c('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x5f1c('0x6')]);router['get'](_0x5f1c('0x7'),auth['isAuthenticated'](),controller[_0x5f1c('0x8')]);router[_0x5f1c('0x9')](_0x5f1c('0xa'),auth[_0x5f1c('0xb')](),controller[_0x5f1c('0xc')]);router[_0x5f1c('0xd')]('/',auth[_0x5f1c('0xb')](),controller[_0x5f1c('0xe')]);router['put'](_0x5f1c('0xa'),auth[_0x5f1c('0xb')](),controller[_0x5f1c('0xf')]);router[_0x5f1c('0x10')](_0x5f1c('0xa'),auth[_0x5f1c('0xb')](),controller[_0x5f1c('0x11')]);module[_0x5f1c('0x12')]=router;
\ No newline at end of file
+var _0x98ac=['exports','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./integrationReport.controller','isAuthenticated','index','/describe','describe','get','/:id','show','put','destroy'];(function(_0x64df2d,_0x319035){var _0x492b8f=function(_0x1c7755){while(--_0x1c7755){_0x64df2d['push'](_0x64df2d['shift']());}};_0x492b8f(++_0x319035);}(_0x98ac,0x1d1));var _0xc98a=function(_0x57b801,_0x297245){_0x57b801=_0x57b801-0x0;var _0x3f31fa=_0x98ac[_0x57b801];return _0x3f31fa;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xc98a('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xc98a('0x1')]();var auth=require(_0xc98a('0x2'));var interaction=require(_0xc98a('0x3'));var config=require(_0xc98a('0x4'));var controller=require(_0xc98a('0x5'));router['get']('/',auth[_0xc98a('0x6')](),controller[_0xc98a('0x7')]);router['get'](_0xc98a('0x8'),auth[_0xc98a('0x6')](),controller[_0xc98a('0x9')]);router[_0xc98a('0xa')](_0xc98a('0xb'),auth[_0xc98a('0x6')](),controller[_0xc98a('0xc')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xc98a('0xd')](_0xc98a('0xb'),auth[_0xc98a('0x6')](),controller['update']);router['delete'](_0xc98a('0xb'),auth[_0xc98a('0x6')](),controller[_0xc98a('0xe')]);module[_0xc98a('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5669=['FAILED','sequelize','exports','STRING','INTEGER','BOOLEAN','DATE','TEXT','ENUM','SENT','SENDING'];(function(_0x5c88b5,_0x3895af){var _0x3ae2d7=function(_0x1ecb22){while(--_0x1ecb22){_0x5c88b5['push'](_0x5c88b5['shift']());}};_0x3ae2d7(++_0x3895af);}(_0x5669,0x11f));var _0x9566=function(_0x513e6e,_0x34e08a){_0x513e6e=_0x513e6e-0x0;var _0x53229a=_0x5669[_0x513e6e];return _0x53229a;};'use strict';var Sequelize=require(_0x9566('0x0'));module[_0x9566('0x1')]={'integration':{'type':Sequelize[_0x9566('0x2')]},'eventChannel':{'type':Sequelize['STRING']},'exitStatus':{'type':Sequelize[_0x9566('0x2')]},'ticketId':{'type':Sequelize['STRING']},'integrationId':{'type':Sequelize[_0x9566('0x3')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x9566('0x2')]},'calleridnum':{'type':Sequelize[_0x9566('0x2')]},'calleridname':{'type':Sequelize[_0x9566('0x2')]},'queue':{'type':Sequelize[_0x9566('0x2')]},'interface':{'type':Sequelize[_0x9566('0x2')]},'membername':{'type':Sequelize[_0x9566('0x2')]},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0x9566('0x3')]},'agentcomplete':{'type':Sequelize[_0x9566('0x4')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x9566('0x5')]},'talktime':{'type':Sequelize[_0x9566('0x3')]},'agentacw':{'type':Sequelize[_0x9566('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize['STRING']},'agentringnoanswer':{'type':Sequelize[_0x9566('0x4')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize['DATE']},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x9566('0x5')]},'lastevent':{'type':Sequelize[_0x9566('0x2')]},'channel':{'type':Sequelize[_0x9566('0x2')]},'channelstate':{'type':Sequelize[_0x9566('0x3')]},'channelstatedesc':{'type':Sequelize[_0x9566('0x2')]},'connectedlinenum':{'type':Sequelize[_0x9566('0x2')]},'connectedlinename':{'type':Sequelize[_0x9566('0x2')]},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x9566('0x2')]},'exten':{'type':Sequelize[_0x9566('0x2')]},'priority':{'type':Sequelize[_0x9566('0x2')]},'destchannel':{'type':Sequelize[_0x9566('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0x9566('0x2')]},'destcalleridnum':{'type':Sequelize[_0x9566('0x2')]},'destcalleridname':{'type':Sequelize[_0x9566('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0x9566('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x9566('0x2')]},'destlanguage':{'type':Sequelize[_0x9566('0x2')]},'destaccountcode':{'type':Sequelize[_0x9566('0x2')]},'destcontext':{'type':Sequelize[_0x9566('0x2')]},'destexten':{'type':Sequelize[_0x9566('0x2')]},'destpriority':{'type':Sequelize[_0x9566('0x2')]},'destuniqueid':{'type':Sequelize[_0x9566('0x2')]},'messageId':{'type':Sequelize['STRING']},'inReplyTo':{'type':Sequelize[_0x9566('0x2')]},'subject':{'type':Sequelize[_0x9566('0x2')]},'from':{'type':Sequelize[_0x9566('0x2')]},'to':{'type':Sequelize[_0x9566('0x2')]},'cc':{'type':Sequelize[_0x9566('0x2')]},'attachment':{'type':Sequelize[_0x9566('0x6')]},'html':{'type':Sequelize[_0x9566('0x6')]},'text':{'type':Sequelize[_0x9566('0x6')]},'status':{'type':Sequelize[_0x9566('0x7')](_0x9566('0x8'),_0x9566('0x9'),'RECEIVED',_0x9566('0xa'))},'url':{'type':Sequelize[_0x9566('0x2')]},'app':{'type':Sequelize['STRING']},'appdata':{'type':Sequelize['STRING']},'projectId':{'type':Sequelize[_0x9566('0x3')]}};
\ No newline at end of file
+var _0x7944=['STRING','INTEGER','DATE','BOOLEAN','TEXT','SENT','SENDING','RECEIVED','FAILED'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7944,0x6c));var _0x4794=function(_0x3e5ec3,_0x76e378){_0x3e5ec3=_0x3e5ec3-0x0;var _0x425633=_0x7944[_0x3e5ec3];return _0x425633;};'use strict';var Sequelize=require('sequelize');module['exports']={'integration':{'type':Sequelize[_0x4794('0x0')]},'eventChannel':{'type':Sequelize[_0x4794('0x0')]},'exitStatus':{'type':Sequelize[_0x4794('0x0')]},'ticketId':{'type':Sequelize['STRING']},'integrationId':{'type':Sequelize[_0x4794('0x1')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x4794('0x0')]},'calleridnum':{'type':Sequelize[_0x4794('0x0')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x4794('0x0')]},'interface':{'type':Sequelize[_0x4794('0x0')]},'membername':{'type':Sequelize[_0x4794('0x0')]},'agentcalledAt':{'type':Sequelize[_0x4794('0x2')]},'agentconnectAt':{'type':Sequelize[_0x4794('0x2')]},'holdtime':{'type':Sequelize[_0x4794('0x1')]},'agentcomplete':{'type':Sequelize[_0x4794('0x3')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x4794('0x2')]},'talktime':{'type':Sequelize[_0x4794('0x1')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x4794('0x1')]},'reason':{'type':Sequelize[_0x4794('0x0')]},'agentringnoanswer':{'type':Sequelize[_0x4794('0x3')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x4794('0x2')]},'agentdump':{'type':Sequelize[_0x4794('0x3')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x4794('0x2')]},'lastevent':{'type':Sequelize[_0x4794('0x0')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize[_0x4794('0x1')]},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x4794('0x0')]},'language':{'type':Sequelize[_0x4794('0x0')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x4794('0x0')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x4794('0x0')]},'destchannel':{'type':Sequelize[_0x4794('0x0')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0x4794('0x0')]},'destcalleridnum':{'type':Sequelize[_0x4794('0x0')]},'destcalleridname':{'type':Sequelize[_0x4794('0x0')]},'destconnectedlinenum':{'type':Sequelize[_0x4794('0x0')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0x4794('0x0')]},'destpriority':{'type':Sequelize[_0x4794('0x0')]},'destuniqueid':{'type':Sequelize[_0x4794('0x0')]},'messageId':{'type':Sequelize[_0x4794('0x0')]},'inReplyTo':{'type':Sequelize[_0x4794('0x0')]},'subject':{'type':Sequelize[_0x4794('0x0')]},'from':{'type':Sequelize[_0x4794('0x0')]},'to':{'type':Sequelize[_0x4794('0x0')]},'cc':{'type':Sequelize['STRING']},'attachment':{'type':Sequelize[_0x4794('0x4')]},'html':{'type':Sequelize[_0x4794('0x4')]},'text':{'type':Sequelize[_0x4794('0x4')]},'status':{'type':Sequelize['ENUM'](_0x4794('0x5'),_0x4794('0x6'),_0x4794('0x7'),_0x4794('0x8'))},'url':{'type':Sequelize['STRING']},'app':{'type':Sequelize['STRING']},'appdata':{'type':Sequelize['STRING']},'projectId':{'type':Sequelize[_0x4794('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7da7=['catch','show','params','options','find','create','update','body','describe','html-pdf','eml-format','rimraf','request-promise','moment','mustache','util','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','apply','reject','save','then','destroy','error','name','send','index','rawAttributes','model','keys','dateEnd','query','dateStart','filters','intersection','fields','attributes','length','hasOwnProperty','order','where','pick','day','add','merge','IntegrationReport','includeAll','include','findAll'];(function(_0x40709e,_0x3d0798){var _0x392c02=function(_0x1bc069){while(--_0x1bc069){_0x40709e['push'](_0x40709e['shift']());}};_0x392c02(++_0x3d0798);}(_0x7da7,0x10d));var _0x77da=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x7da7[_0x4565bf];return _0x5610ba;};'use strict';var pdf=require(_0x77da('0x0'));var emlformat=require(_0x77da('0x1'));var rimraf=require(_0x77da('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x77da('0x3'));var moment=require(_0x77da('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x77da('0x5'));var util=require(_0x77da('0x6'));var path=require('path');var sox=require(_0x77da('0x7'));var csv=require(_0x77da('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x77da('0x9'));var squel=require('squel');var crypto=require(_0x77da('0xa'));var jsforce=require(_0x77da('0xb'));var deskjs=require(_0x77da('0xc'));var toCsv=require(_0x77da('0x8'));var querystring=require(_0x77da('0xd'));var Papa=require('papaparse');var qs=require(_0x77da('0xe'));var logger=require(_0x77da('0xf'))(_0x77da('0x10'));var utils=require('../../config/utils');var config=require(_0x77da('0x11'));var db=require(_0x77da('0x12'))['db'];function respondWithStatusCode(_0x163350,_0x2a675a){_0x2a675a=_0x2a675a||0xcc;return function(_0x5f3a91){if(_0x5f3a91){return _0x163350[_0x77da('0x13')](_0x2a675a);}return _0x163350[_0x77da('0x14')](_0x2a675a)[_0x77da('0x15')]();};}function respondWithResult(_0x5d6e2f,_0x4a7748){_0x4a7748=_0x4a7748||0xc8;return function(_0x26e3ff){if(_0x26e3ff){return _0x5d6e2f[_0x77da('0x14')](_0x4a7748)['json'](_0x26e3ff);}};}function respondWithFilteredResult(_0x3b0ff2,_0x369df0){return function(_0x355719){if(_0x355719){var _0x3c87c2=_0x355719[_0x77da('0x16')],_0x519253=_0x369df0[_0x77da('0x17')],_0x2172d0=_0x369df0[_0x77da('0x17')]+_0x369df0[_0x77da('0x18')],_0x4e130c;if(_0x2172d0>=_0x3c87c2){_0x2172d0=_0x3c87c2;_0x4e130c=0xc8;}else{_0x4e130c=0xce;}_0x3b0ff2['status'](_0x4e130c);return _0x3b0ff2['set']('Content-Range',_0x519253+'-'+_0x2172d0+'/'+_0x3c87c2)['json'](_0x355719);}return null;};}function patchUpdates(_0x103e46){return function(_0x295bef){try{jsonpatch[_0x77da('0x19')](_0x295bef,_0x103e46,!![]);}catch(_0x335dcb){return BPromise[_0x77da('0x1a')](_0x335dcb);}return _0x295bef[_0x77da('0x1b')]();};}function saveUpdates(_0x1d325c,_0x3b6dde){return function(_0x544104){if(_0x544104){return _0x544104['update'](_0x1d325c)[_0x77da('0x1c')](function(_0x4d1512){return _0x4d1512;});}return null;};}function removeEntity(_0x507979,_0x45a122){return function(_0x304a2b){if(_0x304a2b){return _0x304a2b[_0x77da('0x1d')]()['then'](function(){_0x507979['status'](0xcc)[_0x77da('0x15')]();});}};}function handleEntityNotFound(_0x58f6c1,_0x175ac4){return function(_0x1c27aa){if(!_0x1c27aa){_0x58f6c1[_0x77da('0x13')](0x194);}return _0x1c27aa;};}function handleError(_0x27b6c7,_0x10399a){_0x10399a=_0x10399a||0x1f4;return function(_0x270318){logger[_0x77da('0x1e')](_0x270318['stack']);if(_0x270318['name']){delete _0x270318[_0x77da('0x1f')];}_0x27b6c7[_0x77da('0x14')](_0x10399a)[_0x77da('0x20')](_0x270318);};}exports[_0x77da('0x21')]=function(_0x545654,_0x42240b){var _0x167240={},_0x470c9f={},_0x36115b={'count':0x0,'rows':[]};var _0x446ae7=db['IntegrationReport'][_0x77da('0x22')];_0x470c9f[_0x77da('0x23')]=_[_0x77da('0x24')](_0x446ae7);var _0x2913f7={'dateStart':_0x545654['query']['dateStart'],'dateEnd':_0x545654['query'][_0x77da('0x25')]};delete _0x545654[_0x77da('0x26')][_0x77da('0x27')];delete _0x545654[_0x77da('0x26')][_0x77da('0x25')];_0x470c9f['query']=_[_0x77da('0x24')](_0x545654[_0x77da('0x26')]);_0x470c9f[_0x77da('0x28')]=_[_0x77da('0x29')](_0x470c9f[_0x77da('0x23')],_0x470c9f[_0x77da('0x26')]);_0x167240['attributes']=_[_0x77da('0x29')](_0x470c9f[_0x77da('0x23')],qs[_0x77da('0x2a')](_0x545654[_0x77da('0x26')][_0x77da('0x2a')]));_0x167240[_0x77da('0x2b')]=_0x167240[_0x77da('0x2b')][_0x77da('0x2c')]?_0x167240['attributes']:_0x470c9f['model'];if(!_0x545654[_0x77da('0x26')][_0x77da('0x2d')]('nolimit')){_0x167240[_0x77da('0x18')]=qs[_0x77da('0x18')](_0x545654[_0x77da('0x26')][_0x77da('0x18')]);_0x167240[_0x77da('0x17')]=qs[_0x77da('0x17')](_0x545654[_0x77da('0x26')]['offset']);}_0x167240[_0x77da('0x2e')]=qs['sort'](_0x545654['query']['sort']);_0x167240[_0x77da('0x2f')]=qs['filters'](_[_0x77da('0x30')](_0x545654[_0x77da('0x26')],_0x470c9f[_0x77da('0x28')]));if(_0x2913f7[_0x77da('0x27')]){if(_0x2913f7[_0x77da('0x25')]){_0x2913f7[_0x77da('0x25')]=moment(_0x2913f7[_0x77da('0x25')])['add'](0x1,_0x77da('0x31'));}else{_0x2913f7[_0x77da('0x25')]=moment(_0x2913f7[_0x77da('0x27')])[_0x77da('0x32')](0x1,_0x77da('0x31'));}_[_0x77da('0x33')](_0x167240['where'],{'createdAt':{'$gte':_0x2913f7[_0x77da('0x27')],'$lte':_0x2913f7[_0x77da('0x25')]}});}if(_0x545654[_0x77da('0x26')]['filter']){_0x167240[_0x77da('0x2f')]=_['merge'](_0x167240['where'],{'$or':_['map'](_0x167240['attributes'],function(_0x19f9f7){var _0x1adba5={};_0x1adba5[_0x19f9f7]={'$like':'%'+_0x545654[_0x77da('0x26')]['filter']+'%'};return _0x1adba5;})});}_0x167240=_[_0x77da('0x33')]({},_0x167240,_0x545654['options']);var _0xf79c20={'where':_0x167240['where']};return db[_0x77da('0x34')][_0x77da('0x16')](_0xf79c20)[_0x77da('0x1c')](function(_0x1612b7){_0x36115b[_0x77da('0x16')]=_0x1612b7;if(_0x545654['query'][_0x77da('0x35')]){_0x167240[_0x77da('0x36')]=[{'all':!![]}];}return db[_0x77da('0x34')][_0x77da('0x37')](_0x167240);})[_0x77da('0x1c')](function(_0x390064){_0x36115b['rows']=_0x390064;return _0x36115b;})[_0x77da('0x1c')](respondWithFilteredResult(_0x42240b,_0x167240))[_0x77da('0x38')](handleError(_0x42240b,null));};exports[_0x77da('0x39')]=function(_0x2dfeca,_0x7d11f9){var _0x25f65f={'raw':![],'where':{'id':_0x2dfeca[_0x77da('0x3a')]['id']}},_0x52488d={};_0x52488d['model']=_[_0x77da('0x24')](db[_0x77da('0x34')][_0x77da('0x22')]);_0x52488d['query']=_[_0x77da('0x24')](_0x2dfeca[_0x77da('0x26')]);_0x52488d[_0x77da('0x28')]=_[_0x77da('0x29')](_0x52488d[_0x77da('0x23')],_0x52488d[_0x77da('0x26')]);_0x25f65f[_0x77da('0x2b')]=_[_0x77da('0x29')](_0x52488d[_0x77da('0x23')],qs['fields'](_0x2dfeca[_0x77da('0x26')][_0x77da('0x2a')]));_0x25f65f[_0x77da('0x2b')]=_0x25f65f[_0x77da('0x2b')][_0x77da('0x2c')]?_0x25f65f[_0x77da('0x2b')]:_0x52488d['model'];if(_0x2dfeca['query'][_0x77da('0x35')]){_0x25f65f[_0x77da('0x36')]=[{'all':!![]}];}_0x25f65f=_[_0x77da('0x33')]({},_0x25f65f,_0x2dfeca[_0x77da('0x3b')]);return db[_0x77da('0x34')][_0x77da('0x3c')](_0x25f65f)['then'](handleEntityNotFound(_0x7d11f9,null))[_0x77da('0x1c')](respondWithResult(_0x7d11f9,null))[_0x77da('0x38')](handleError(_0x7d11f9,null));};exports[_0x77da('0x3d')]=function(_0x73eaf8,_0x5487e0){return db[_0x77da('0x34')]['create'](_0x73eaf8['body'],{})[_0x77da('0x1c')](respondWithResult(_0x5487e0,0xc9))[_0x77da('0x38')](handleError(_0x5487e0,null));};exports[_0x77da('0x3e')]=function(_0x193760,_0x57d866){if(_0x193760[_0x77da('0x3f')]['id']){delete _0x193760[_0x77da('0x3f')]['id'];}return db['IntegrationReport'][_0x77da('0x3c')]({'where':{'id':_0x193760[_0x77da('0x3a')]['id']}})['then'](handleEntityNotFound(_0x57d866,null))[_0x77da('0x1c')](saveUpdates(_0x193760[_0x77da('0x3f')],null))[_0x77da('0x1c')](respondWithResult(_0x57d866,null))[_0x77da('0x38')](handleError(_0x57d866,null));};exports[_0x77da('0x1d')]=function(_0x1043c7,_0x2b96c1){return db[_0x77da('0x34')][_0x77da('0x3c')]({'where':{'id':_0x1043c7[_0x77da('0x3a')]['id']}})['then'](handleEntityNotFound(_0x2b96c1,null))[_0x77da('0x1c')](removeEntity(_0x2b96c1,null))['catch'](handleError(_0x2b96c1,null));};exports[_0x77da('0x40')]=function(_0x14cd3c,_0x4682a0){return db[_0x77da('0x34')][_0x77da('0x40')]()[_0x77da('0x1c')](respondWithResult(_0x4682a0,null))[_0x77da('0x38')](handleError(_0x4682a0,null));};
\ No newline at end of file
+var _0x5d35=['include','find','create','body','describe','html-pdf','eml-format','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','name','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','pick','day','add','merge','where','filter','map','options','includeAll','IntegrationReport','findAll','rows','catch','show','params'];(function(_0x3e25a9,_0x610a94){var _0x439b8c=function(_0x128ad1){while(--_0x128ad1){_0x3e25a9['push'](_0x3e25a9['shift']());}};_0x439b8c(++_0x610a94);}(_0x5d35,0x95));var _0x55d3=function(_0x22b5c3,_0x451071){_0x22b5c3=_0x22b5c3-0x0;var _0x3a2906=_0x5d35[_0x22b5c3];return _0x3a2906;};'use strict';var pdf=require(_0x55d3('0x0'));var emlformat=require(_0x55d3('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x55d3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x55d3('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x55d3('0x4'));var util=require(_0x55d3('0x5'));var path=require(_0x55d3('0x6'));var sox=require(_0x55d3('0x7'));var csv=require(_0x55d3('0x8'));var ejs=require(_0x55d3('0x9'));var fs=require('fs');var _=require(_0x55d3('0xa'));var squel=require(_0x55d3('0xb'));var crypto=require(_0x55d3('0xc'));var jsforce=require(_0x55d3('0xd'));var deskjs=require(_0x55d3('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x55d3('0xf'));var Redis=require(_0x55d3('0x10'));var qs=require(_0x55d3('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0x55d3('0x12'));var config=require(_0x55d3('0x13'));var db=require(_0x55d3('0x14'))['db'];function respondWithStatusCode(_0x87b1eb,_0xafface){_0xafface=_0xafface||0xcc;return function(_0x2304f5){if(_0x2304f5){return _0x87b1eb[_0x55d3('0x15')](_0xafface);}return _0x87b1eb[_0x55d3('0x16')](_0xafface)[_0x55d3('0x17')]();};}function respondWithResult(_0x6523c5,_0x7bc4dc){_0x7bc4dc=_0x7bc4dc||0xc8;return function(_0x3bae41){if(_0x3bae41){return _0x6523c5[_0x55d3('0x16')](_0x7bc4dc)[_0x55d3('0x18')](_0x3bae41);}};}function respondWithFilteredResult(_0x56eda4,_0x409ab3){return function(_0x55f482){if(_0x55f482){var _0x2cede8=_0x55f482[_0x55d3('0x19')],_0x1972cd=_0x409ab3['offset'],_0x5b6652=_0x409ab3[_0x55d3('0x1a')]+_0x409ab3[_0x55d3('0x1b')],_0x499153;if(_0x5b6652>=_0x2cede8){_0x5b6652=_0x2cede8;_0x499153=0xc8;}else{_0x499153=0xce;}_0x56eda4['status'](_0x499153);return _0x56eda4[_0x55d3('0x1c')](_0x55d3('0x1d'),_0x1972cd+'-'+_0x5b6652+'/'+_0x2cede8)[_0x55d3('0x18')](_0x55f482);}return null;};}function patchUpdates(_0xb3672){return function(_0x11dd73){try{jsonpatch[_0x55d3('0x1e')](_0x11dd73,_0xb3672,!![]);}catch(_0x17c778){return BPromise[_0x55d3('0x1f')](_0x17c778);}return _0x11dd73[_0x55d3('0x20')]();};}function saveUpdates(_0xae81fd,_0x107e63){return function(_0x34876b){if(_0x34876b){return _0x34876b[_0x55d3('0x21')](_0xae81fd)[_0x55d3('0x22')](function(_0x1b5a6c){return _0x1b5a6c;});}return null;};}function removeEntity(_0x110b25,_0x490787){return function(_0x23a51b){if(_0x23a51b){return _0x23a51b[_0x55d3('0x23')]()[_0x55d3('0x22')](function(){_0x110b25[_0x55d3('0x16')](0xcc)[_0x55d3('0x17')]();});}};}function handleEntityNotFound(_0x24e3d6,_0x5cfbb0){return function(_0x30b282){if(!_0x30b282){_0x24e3d6['sendStatus'](0x194);}return _0x30b282;};}function handleError(_0x261a07,_0xbd2ec){_0xbd2ec=_0xbd2ec||0x1f4;return function(_0x1dbe7e){logger['error'](_0x1dbe7e['stack']);if(_0x1dbe7e[_0x55d3('0x24')]){delete _0x1dbe7e[_0x55d3('0x24')];}_0x261a07[_0x55d3('0x16')](_0xbd2ec)['send'](_0x1dbe7e);};}exports[_0x55d3('0x25')]=function(_0x4991c6,_0x313891){var _0x298f20={},_0x1aa190={},_0x34cd67={'count':0x0,'rows':[]};var _0x2f4015=db['IntegrationReport'][_0x55d3('0x26')];_0x1aa190[_0x55d3('0x27')]=_[_0x55d3('0x28')](_0x2f4015);var _0xca30f7={'dateStart':_0x4991c6[_0x55d3('0x29')][_0x55d3('0x2a')],'dateEnd':_0x4991c6[_0x55d3('0x29')][_0x55d3('0x2b')]};delete _0x4991c6['query']['dateStart'];delete _0x4991c6[_0x55d3('0x29')][_0x55d3('0x2b')];_0x1aa190[_0x55d3('0x29')]=_[_0x55d3('0x28')](_0x4991c6[_0x55d3('0x29')]);_0x1aa190[_0x55d3('0x2c')]=_[_0x55d3('0x2d')](_0x1aa190[_0x55d3('0x27')],_0x1aa190[_0x55d3('0x29')]);_0x298f20['attributes']=_['intersection'](_0x1aa190[_0x55d3('0x27')],qs[_0x55d3('0x2e')](_0x4991c6[_0x55d3('0x29')]['fields']));_0x298f20[_0x55d3('0x2f')]=_0x298f20[_0x55d3('0x2f')][_0x55d3('0x30')]?_0x298f20[_0x55d3('0x2f')]:_0x1aa190[_0x55d3('0x27')];if(!_0x4991c6[_0x55d3('0x29')][_0x55d3('0x31')](_0x55d3('0x32'))){_0x298f20[_0x55d3('0x1b')]=qs[_0x55d3('0x1b')](_0x4991c6[_0x55d3('0x29')][_0x55d3('0x1b')]);_0x298f20['offset']=qs[_0x55d3('0x1a')](_0x4991c6[_0x55d3('0x29')]['offset']);}_0x298f20[_0x55d3('0x33')]=qs['sort'](_0x4991c6[_0x55d3('0x29')]['sort']);_0x298f20['where']=qs['filters'](_[_0x55d3('0x34')](_0x4991c6[_0x55d3('0x29')],_0x1aa190[_0x55d3('0x2c')]));if(_0xca30f7[_0x55d3('0x2a')]){if(_0xca30f7[_0x55d3('0x2b')]){_0xca30f7[_0x55d3('0x2b')]=moment(_0xca30f7['dateEnd'])['add'](0x1,_0x55d3('0x35'));}else{_0xca30f7[_0x55d3('0x2b')]=moment(_0xca30f7['dateStart'])[_0x55d3('0x36')](0x1,_0x55d3('0x35'));}_[_0x55d3('0x37')](_0x298f20[_0x55d3('0x38')],{'createdAt':{'$gte':_0xca30f7[_0x55d3('0x2a')],'$lte':_0xca30f7[_0x55d3('0x2b')]}});}if(_0x4991c6[_0x55d3('0x29')][_0x55d3('0x39')]){_0x298f20[_0x55d3('0x38')]=_[_0x55d3('0x37')](_0x298f20[_0x55d3('0x38')],{'$or':_[_0x55d3('0x3a')](_0x298f20[_0x55d3('0x2f')],function(_0x5a030b){var _0x25c661={};_0x25c661[_0x5a030b]={'$like':'%'+_0x4991c6[_0x55d3('0x29')][_0x55d3('0x39')]+'%'};return _0x25c661;})});}_0x298f20=_['merge']({},_0x298f20,_0x4991c6[_0x55d3('0x3b')]);var _0x7739f9={'where':_0x298f20[_0x55d3('0x38')]};return db['IntegrationReport'][_0x55d3('0x19')](_0x7739f9)['then'](function(_0x19cd62){_0x34cd67['count']=_0x19cd62;if(_0x4991c6[_0x55d3('0x29')][_0x55d3('0x3c')]){_0x298f20['include']=[{'all':!![]}];}return db[_0x55d3('0x3d')][_0x55d3('0x3e')](_0x298f20);})['then'](function(_0x2ca966){_0x34cd67[_0x55d3('0x3f')]=_0x2ca966;return _0x34cd67;})[_0x55d3('0x22')](respondWithFilteredResult(_0x313891,_0x298f20))[_0x55d3('0x40')](handleError(_0x313891,null));};exports[_0x55d3('0x41')]=function(_0x373c08,_0x1a358d){var _0x5648b8={'raw':![],'where':{'id':_0x373c08[_0x55d3('0x42')]['id']}},_0xc963b={};_0xc963b['model']=_[_0x55d3('0x28')](db[_0x55d3('0x3d')][_0x55d3('0x26')]);_0xc963b['query']=_[_0x55d3('0x28')](_0x373c08[_0x55d3('0x29')]);_0xc963b[_0x55d3('0x2c')]=_[_0x55d3('0x2d')](_0xc963b['model'],_0xc963b[_0x55d3('0x29')]);_0x5648b8[_0x55d3('0x2f')]=_[_0x55d3('0x2d')](_0xc963b['model'],qs[_0x55d3('0x2e')](_0x373c08[_0x55d3('0x29')][_0x55d3('0x2e')]));_0x5648b8[_0x55d3('0x2f')]=_0x5648b8[_0x55d3('0x2f')]['length']?_0x5648b8[_0x55d3('0x2f')]:_0xc963b[_0x55d3('0x27')];if(_0x373c08[_0x55d3('0x29')][_0x55d3('0x3c')]){_0x5648b8[_0x55d3('0x43')]=[{'all':!![]}];}_0x5648b8=_['merge']({},_0x5648b8,_0x373c08['options']);return db[_0x55d3('0x3d')][_0x55d3('0x44')](_0x5648b8)[_0x55d3('0x22')](handleEntityNotFound(_0x1a358d,null))['then'](respondWithResult(_0x1a358d,null))['catch'](handleError(_0x1a358d,null));};exports[_0x55d3('0x45')]=function(_0x5e3c94,_0x530f6b){return db['IntegrationReport']['create'](_0x5e3c94[_0x55d3('0x46')],{})[_0x55d3('0x22')](respondWithResult(_0x530f6b,0xc9))[_0x55d3('0x40')](handleError(_0x530f6b,null));};exports['update']=function(_0x1b956f,_0x115203){if(_0x1b956f[_0x55d3('0x46')]['id']){delete _0x1b956f[_0x55d3('0x46')]['id'];}return db[_0x55d3('0x3d')]['find']({'where':{'id':_0x1b956f[_0x55d3('0x42')]['id']}})[_0x55d3('0x22')](handleEntityNotFound(_0x115203,null))[_0x55d3('0x22')](saveUpdates(_0x1b956f[_0x55d3('0x46')],null))[_0x55d3('0x22')](respondWithResult(_0x115203,null))['catch'](handleError(_0x115203,null));};exports[_0x55d3('0x23')]=function(_0x52e6f7,_0x2cb2dd){return db[_0x55d3('0x3d')][_0x55d3('0x44')]({'where':{'id':_0x52e6f7[_0x55d3('0x42')]['id']}})['then'](handleEntityNotFound(_0x2cb2dd,null))[_0x55d3('0x22')](removeEntity(_0x2cb2dd,null))[_0x55d3('0x40')](handleError(_0x2cb2dd,null));};exports['describe']=function(_0x456065,_0x2eac3d){return db[_0x55d3('0x3d')][_0x55d3('0x47')]()[_0x55d3('0x22')](respondWithResult(_0x2eac3d,null))[_0x55d3('0x40')](handleError(_0x2eac3d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3435=['lodash','util','../../config/logger','api','moment','bluebird','./integrationReport.attributes','exports','define','IntegrationReport'];(function(_0x5f0089,_0x227e2c){var _0x193892=function(_0x24051f){while(--_0x24051f){_0x5f0089['push'](_0x5f0089['shift']());}};_0x193892(++_0x227e2c);}(_0x3435,0xfa));var _0x5343=function(_0x41c381,_0x1176bd){_0x41c381=_0x41c381-0x0;var _0x427981=_0x3435[_0x41c381];return _0x427981;};'use strict';var _=require(_0x5343('0x0'));var util=require(_0x5343('0x1'));var logger=require(_0x5343('0x2'))(_0x5343('0x3'));var moment=require(_0x5343('0x4'));var BPromise=require(_0x5343('0x5'));var rp=require('request-promise');var attributes=require(_0x5343('0x6'));module[_0x5343('0x7')]=function(_0x578a24,_0x4ca9ba){return _0x578a24[_0x5343('0x8')](_0x5343('0x9'),attributes,{'tableName':'report_integration','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2bd8=['./integrationReport.attributes','exports','define','IntegrationReport','lodash','../../config/logger','api','moment','bluebird','request-promise'];(function(_0xa34416,_0x41ea94){var _0x399a2e=function(_0x3706af){while(--_0x3706af){_0xa34416['push'](_0xa34416['shift']());}};_0x399a2e(++_0x41ea94);}(_0x2bd8,0x130));var _0x82bd=function(_0xa4c3f7,_0x4bfa5c){_0xa4c3f7=_0xa4c3f7-0x0;var _0x4b26da=_0x2bd8[_0xa4c3f7];return _0x4b26da;};'use strict';var _=require(_0x82bd('0x0'));var util=require('util');var logger=require(_0x82bd('0x1'))(_0x82bd('0x2'));var moment=require(_0x82bd('0x3'));var BPromise=require(_0x82bd('0x4'));var rp=require(_0x82bd('0x5'));var attributes=require(_0x82bd('0x6'));module[_0x82bd('0x7')]=function(_0x572a80,_0x41584e){return _0x572a80[_0x82bd('0x8')](_0x82bd('0x9'),attributes,{'tableName':'report_integration','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0388=['request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','client','http','then','info','IntegrationReport,\x20%s,\x20%s'];(function(_0x36ba03,_0x316399){var _0x41b287=function(_0xae9a6c){while(--_0xae9a6c){_0x36ba03['push'](_0x36ba03['shift']());}};_0x41b287(++_0x316399);}(_0x0388,0x1c2));var _0x8038=function(_0x4a8e5d,_0x460f12){_0x4a8e5d=_0x4a8e5d-0x0;var _0x21b283=_0x0388[_0x4a8e5d];return _0x21b283;};'use strict';var _=require(_0x8038('0x0'));var util=require(_0x8038('0x1'));var moment=require(_0x8038('0x2'));var BPromise=require('bluebird');var rs=require(_0x8038('0x3'));var fs=require('fs');var db=require(_0x8038('0x4'))['db'];var utils=require(_0x8038('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x8038('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x8038('0x7')][_0x8038('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x38015c,_0x16ee2d,_0x2102e7){return new BPromise(function(_0x1b816b,_0x58ab0b){return client['request'](_0x38015c,_0x2102e7)[_0x8038('0x9')](function(_0x2e99be){logger[_0x8038('0xa')](_0x8038('0xb'),_0x16ee2d,_0x8038('0xc'));logger[_0x8038('0xd')](_0x8038('0xe'),_0x16ee2d,'request\x20sent',JSON[_0x8038('0xf')](_0x2e99be));if(_0x2e99be[_0x8038('0x10')]){if(_0x2e99be['error'][_0x8038('0x11')]===0x1f4){logger[_0x8038('0x10')]('IntegrationReport,\x20%s,\x20%s',_0x16ee2d,_0x2e99be['error']['message']);return _0x58ab0b(_0x2e99be[_0x8038('0x10')][_0x8038('0x12')]);}logger[_0x8038('0x10')]('IntegrationReport,\x20%s,\x20%s',_0x16ee2d,_0x2e99be[_0x8038('0x10')][_0x8038('0x12')]);return _0x1b816b(_0x2e99be['error'][_0x8038('0x12')]);}else{logger['info'](_0x8038('0xb'),_0x16ee2d,_0x8038('0xc'));_0x1b816b(_0x2e99be[_0x8038('0x13')][_0x8038('0x12')]);}})[_0x8038('0x14')](function(_0x572cc8){logger[_0x8038('0x10')](_0x8038('0xb'),_0x16ee2d,_0x572cc8);_0x58ab0b(_0x572cc8);});});}
\ No newline at end of file
+var _0x0e6a=['IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','then'];(function(_0xf78b28,_0x1bb637){var _0x5c8e0b=function(_0xdf4c86){while(--_0xdf4c86){_0xf78b28['push'](_0xf78b28['shift']());}};_0x5c8e0b(++_0x1bb637);}(_0x0e6a,0xc3));var _0xa0e6=function(_0x1c135a,_0x447772){_0x1c135a=_0x1c135a-0x0;var _0x4e594b=_0x0e6a[_0x1c135a];return _0x4e594b;};'use strict';var _=require(_0xa0e6('0x0'));var util=require(_0xa0e6('0x1'));var moment=require(_0xa0e6('0x2'));var BPromise=require(_0xa0e6('0x3'));var rs=require(_0xa0e6('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa0e6('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa0e6('0x6'))(_0xa0e6('0x7'));var config=require('../../config/environment');var jayson=require(_0xa0e6('0x8'));var client=jayson[_0xa0e6('0x9')][_0xa0e6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4c1f0b,_0x4d9911,_0x5b85a8){return new BPromise(function(_0x3d0fef,_0x49fd7f){return client['request'](_0x4c1f0b,_0x5b85a8)[_0xa0e6('0xb')](function(_0x26de57){logger['info'](_0xa0e6('0xc'),_0x4d9911,_0xa0e6('0xd'));logger[_0xa0e6('0xe')](_0xa0e6('0xf'),_0x4d9911,_0xa0e6('0xd'),JSON[_0xa0e6('0x10')](_0x26de57));if(_0x26de57['error']){if(_0x26de57[_0xa0e6('0x11')][_0xa0e6('0x12')]===0x1f4){logger['error'](_0xa0e6('0xc'),_0x4d9911,_0x26de57[_0xa0e6('0x11')][_0xa0e6('0x13')]);return _0x49fd7f(_0x26de57[_0xa0e6('0x11')][_0xa0e6('0x13')]);}logger[_0xa0e6('0x11')]('IntegrationReport,\x20%s,\x20%s',_0x4d9911,_0x26de57[_0xa0e6('0x11')][_0xa0e6('0x13')]);return _0x3d0fef(_0x26de57[_0xa0e6('0x11')][_0xa0e6('0x13')]);}else{logger[_0xa0e6('0x14')](_0xa0e6('0xc'),_0x4d9911,_0xa0e6('0xd'));_0x3d0fef(_0x26de57[_0xa0e6('0x15')]['message']);}})[_0xa0e6('0x16')](function(_0x1a205d){logger[_0xa0e6('0x11')]('IntegrationReport,\x20%s,\x20%s',_0x4d9911,_0x1a205d);_0x49fd7f(_0x1a205d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4e5=['addInterval','/:id/sub_intervals/create_many','addIntervals','put','update','delete','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','isAuthenticated','/:id','get','/:id/sub_intervals','getIntervals','post','create'];(function(_0x534781,_0x39e8e2){var _0x405acb=function(_0x4e4674){while(--_0x4e4674){_0x534781['push'](_0x534781['shift']());}};_0x405acb(++_0x39e8e2);}(_0xb4e5,0x104));var _0x5b4e=function(_0x3d2b80,_0xf4e4c7){_0x3d2b80=_0x3d2b80-0x0;var _0x42d396=_0xb4e5[_0x3d2b80];return _0x42d396;};'use strict';var multer=require(_0x5b4e('0x0'));var util=require('util');var path=require(_0x5b4e('0x1'));var timeout=require(_0x5b4e('0x2'));var express=require(_0x5b4e('0x3'));var router=express[_0x5b4e('0x4')]();var auth=require(_0x5b4e('0x5'));var interaction=require(_0x5b4e('0x6'));var config=require(_0x5b4e('0x7'));var controller=require(_0x5b4e('0x8'));router['get']('/',auth[_0x5b4e('0x9')](),controller['index']);router['get'](_0x5b4e('0xa'),auth[_0x5b4e('0x9')](),controller['show']);router[_0x5b4e('0xb')](_0x5b4e('0xc'),auth[_0x5b4e('0x9')](),controller[_0x5b4e('0xd')]);router[_0x5b4e('0xe')]('/',auth[_0x5b4e('0x9')](),controller[_0x5b4e('0xf')]);router[_0x5b4e('0xe')](_0x5b4e('0xc'),auth[_0x5b4e('0x9')](),controller[_0x5b4e('0x10')]);router['post'](_0x5b4e('0x11'),auth[_0x5b4e('0x9')](),controller[_0x5b4e('0x12')]);router[_0x5b4e('0x13')](_0x5b4e('0xa'),auth[_0x5b4e('0x9')](),controller[_0x5b4e('0x14')]);router[_0x5b4e('0x15')]('/:id',auth[_0x5b4e('0x9')](),controller['destroy']);module[_0x5b4e('0x16')]=router;
\ No newline at end of file
+var _0xbbcd=['/:id','isAuthenticated','/:id/sub_intervals','post','addInterval','/:id/sub_intervals/create_many','addIntervals','put','delete','exports','util','path','connect-timeout','express','../../components/auth/service','./interval.controller','get'];(function(_0x41c918,_0x2cab6a){var _0x180bb8=function(_0x34e35b){while(--_0x34e35b){_0x41c918['push'](_0x41c918['shift']());}};_0x180bb8(++_0x2cab6a);}(_0xbbcd,0x13c));var _0xdbbc=function(_0x419842,_0x55e1b6){_0x419842=_0x419842-0x0;var _0x365ab0=_0xbbcd[_0x419842];return _0x365ab0;};'use strict';var multer=require('multer');var util=require(_0xdbbc('0x0'));var path=require(_0xdbbc('0x1'));var timeout=require(_0xdbbc('0x2'));var express=require(_0xdbbc('0x3'));var router=express['Router']();var auth=require(_0xdbbc('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xdbbc('0x5'));router[_0xdbbc('0x6')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xdbbc('0x7'),auth[_0xdbbc('0x8')](),controller['show']);router[_0xdbbc('0x6')](_0xdbbc('0x9'),auth['isAuthenticated'](),controller['getIntervals']);router[_0xdbbc('0xa')]('/',auth['isAuthenticated'](),controller['create']);router[_0xdbbc('0xa')](_0xdbbc('0x9'),auth[_0xdbbc('0x8')](),controller[_0xdbbc('0xb')]);router['post'](_0xdbbc('0xc'),auth[_0xdbbc('0x8')](),controller[_0xdbbc('0xd')]);router[_0xdbbc('0xe')](_0xdbbc('0x7'),auth['isAuthenticated'](),controller['update']);router[_0xdbbc('0xf')](_0xdbbc('0x7'),auth[_0xdbbc('0x8')](),controller['destroy']);module[_0xdbbc('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbeb=['sequelize','STRING'];(function(_0x526c89,_0x2653ca){var _0x20bd74=function(_0x5f0d54){while(--_0x5f0d54){_0x526c89['push'](_0x526c89['shift']());}};_0x20bd74(++_0x2653ca);}(_0xdbeb,0x134));var _0xbdbe=function(_0x49f995,_0x1e14bd){_0x49f995=_0x49f995-0x0;var _0x254861=_0xdbeb[_0x49f995];return _0x254861;};'use strict';var Sequelize=require(_0xbdbe('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xbdbe('0x1')]},'interval':{'type':Sequelize[_0xbdbe('0x1')],'allowNull':!![]}};
\ No newline at end of file
+var _0x2cd9=['sequelize','exports','STRING'];(function(_0x2782db,_0x2a516f){var _0x4af4e4=function(_0x17316a){while(--_0x17316a){_0x2782db['push'](_0x2782db['shift']());}};_0x4af4e4(++_0x2a516f);}(_0x2cd9,0x108));var _0x92cd=function(_0xaeaea,_0x52a3b1){_0xaeaea=_0xaeaea-0x0;var _0x41c9e0=_0x2cd9[_0xaeaea];return _0x41c9e0;};'use strict';var Sequelize=require(_0x92cd('0x0'));module[_0x92cd('0x1')]={'name':{'type':Sequelize[_0x92cd('0x2')]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x92cd('0x2')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2817=['find','create','body','update','addInterval','IntervalId','getIntervals','findOne','nolimit','transaction','bulkCreate','findAll','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','then','destroy','error','stack','name','send','index','rawAttributes','model','query','dateEnd','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','dateStart','add','day','merge','where','filter','map','options','Interval','includeAll','include','rows','catch','params'];(function(_0x170399,_0x5158f1){var _0x29827e=function(_0x1670dc){while(--_0x1670dc){_0x170399['push'](_0x170399['shift']());}};_0x29827e(++_0x5158f1);}(_0x2817,0x14c));var _0x7281=function(_0xdd66e5,_0x579918){_0xdd66e5=_0xdd66e5-0x0;var _0x2146bc=_0x2817[_0xdd66e5];return _0x2146bc;};'use strict';var pdf=require(_0x7281('0x0'));var emlformat=require(_0x7281('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x7281('0x2'));var jsonpatch=require(_0x7281('0x3'));var rp=require(_0x7281('0x4'));var moment=require('moment');var BPromise=require(_0x7281('0x5'));var Mustache=require(_0x7281('0x6'));var util=require(_0x7281('0x7'));var path=require('path');var sox=require(_0x7281('0x8'));var csv=require(_0x7281('0x9'));var ejs=require(_0x7281('0xa'));var fs=require('fs');var _=require(_0x7281('0xb'));var squel=require(_0x7281('0xc'));var crypto=require(_0x7281('0xd'));var jsforce=require(_0x7281('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7281('0xf'));var qs=require('../../components/parsers/qs');var logger=require(_0x7281('0x10'))(_0x7281('0x11'));var utils=require(_0x7281('0x12'));var config=require(_0x7281('0x13'));var db=require(_0x7281('0x14'))['db'];var extensions=require(_0x7281('0x15'));function respondWithStatusCode(_0x304a57,_0x34c19e){_0x34c19e=_0x34c19e||0xcc;return function(_0x40d01c){if(_0x40d01c){return _0x304a57[_0x7281('0x16')](_0x34c19e);}return _0x304a57[_0x7281('0x17')](_0x34c19e)[_0x7281('0x18')]();};}function respondWithResult(_0x3e82ac,_0x1c61f0){_0x1c61f0=_0x1c61f0||0xc8;return function(_0x3a3815){if(_0x3a3815){return _0x3e82ac[_0x7281('0x17')](_0x1c61f0)[_0x7281('0x19')](_0x3a3815);}};}function respondWithFilteredResult(_0x3d77b6,_0x10e220){return function(_0x62c514){if(_0x62c514){var _0x392ec2=_0x62c514[_0x7281('0x1a')],_0xcf309a=_0x10e220[_0x7281('0x1b')],_0x511a81=_0x10e220['offset']+_0x10e220[_0x7281('0x1c')],_0x199e70;if(_0x511a81>=_0x392ec2){_0x511a81=_0x392ec2;_0x199e70=0xc8;}else{_0x199e70=0xce;}_0x3d77b6[_0x7281('0x17')](_0x199e70);return _0x3d77b6[_0x7281('0x1d')](_0x7281('0x1e'),_0xcf309a+'-'+_0x511a81+'/'+_0x392ec2)[_0x7281('0x19')](_0x62c514);}return null;};}function patchUpdates(_0x8aeac4){return function(_0x359549){try{jsonpatch[_0x7281('0x1f')](_0x359549,_0x8aeac4,!![]);}catch(_0x326866){return BPromise['reject'](_0x326866);}return _0x359549[_0x7281('0x20')]();};}function saveUpdates(_0x231c88,_0x1273dc){return function(_0x2202fc){if(_0x2202fc){return _0x2202fc['update'](_0x231c88)[_0x7281('0x21')](function(_0x3270f9){return _0x3270f9;});}return null;};}function removeEntity(_0x390726,_0x44ce5b){return function(_0x8ad877){if(_0x8ad877){return _0x8ad877[_0x7281('0x22')]()[_0x7281('0x21')](function(){_0x390726[_0x7281('0x17')](0xcc)[_0x7281('0x18')]();});}};}function handleEntityNotFound(_0x1b9b76,_0x35fc84){return function(_0x492d59){if(!_0x492d59){_0x1b9b76['sendStatus'](0x194);}return _0x492d59;};}function handleError(_0x2f54eb,_0x4e0e9d){_0x4e0e9d=_0x4e0e9d||0x1f4;return function(_0x38fb92){logger[_0x7281('0x23')](_0x38fb92[_0x7281('0x24')]);if(_0x38fb92[_0x7281('0x25')]){delete _0x38fb92[_0x7281('0x25')];}_0x2f54eb['status'](_0x4e0e9d)[_0x7281('0x26')](_0x38fb92);};}exports[_0x7281('0x27')]=function(_0x40e852,_0x8f2087){var _0x289bdc={},_0x44b17e={},_0x2d21ed={'count':0x0,'rows':[]};var _0x4981f8=db['Interval'][_0x7281('0x28')];_0x44b17e[_0x7281('0x29')]=_['keys'](_0x4981f8);var _0x5cccd4={'dateStart':_0x40e852[_0x7281('0x2a')]['dateStart'],'dateEnd':_0x40e852[_0x7281('0x2a')][_0x7281('0x2b')]};delete _0x40e852[_0x7281('0x2a')]['dateStart'];delete _0x40e852[_0x7281('0x2a')][_0x7281('0x2b')];_0x44b17e[_0x7281('0x2a')]=_[_0x7281('0x2c')](_0x40e852[_0x7281('0x2a')]);_0x44b17e['filters']=_[_0x7281('0x2d')](_0x44b17e[_0x7281('0x29')],_0x44b17e[_0x7281('0x2a')]);_0x289bdc[_0x7281('0x2e')]=_['intersection'](_0x44b17e[_0x7281('0x29')],qs['fields'](_0x40e852[_0x7281('0x2a')][_0x7281('0x2f')]));_0x289bdc['attributes']=_0x289bdc[_0x7281('0x2e')][_0x7281('0x30')]?_0x289bdc['attributes']:_0x44b17e[_0x7281('0x29')];if(!_0x40e852[_0x7281('0x2a')][_0x7281('0x31')]('nolimit')){_0x289bdc['limit']=qs[_0x7281('0x1c')](_0x40e852[_0x7281('0x2a')][_0x7281('0x1c')]);_0x289bdc[_0x7281('0x1b')]=qs[_0x7281('0x1b')](_0x40e852[_0x7281('0x2a')][_0x7281('0x1b')]);}_0x289bdc[_0x7281('0x32')]=qs[_0x7281('0x33')](_0x40e852[_0x7281('0x2a')]['sort']);_0x289bdc['where']=qs[_0x7281('0x34')](_[_0x7281('0x35')](_0x40e852[_0x7281('0x2a')],_0x44b17e[_0x7281('0x34')]));if(_0x5cccd4[_0x7281('0x36')]){if(_0x5cccd4['dateEnd']){_0x5cccd4[_0x7281('0x2b')]=moment(_0x5cccd4[_0x7281('0x2b')])['add'](0x1,'day');}else{_0x5cccd4[_0x7281('0x2b')]=moment(_0x5cccd4[_0x7281('0x36')])[_0x7281('0x37')](0x1,_0x7281('0x38'));}_[_0x7281('0x39')](_0x289bdc[_0x7281('0x3a')],{'createdAt':{'$gte':_0x5cccd4[_0x7281('0x36')],'$lte':_0x5cccd4[_0x7281('0x2b')]}});}if(_0x40e852[_0x7281('0x2a')][_0x7281('0x3b')]){_0x289bdc[_0x7281('0x3a')]=_[_0x7281('0x39')](_0x289bdc['where'],{'$or':_[_0x7281('0x3c')](_0x289bdc['attributes'],function(_0xd00dee){var _0x1df84c={};_0x1df84c[_0xd00dee]={'$like':'%'+_0x40e852[_0x7281('0x2a')]['filter']+'%'};return _0x1df84c;})});}_0x289bdc=_['merge']({},_0x289bdc,_0x40e852[_0x7281('0x3d')]);var _0x2b0c1b={'where':_0x289bdc['where']};return db[_0x7281('0x3e')]['count'](_0x2b0c1b)[_0x7281('0x21')](function(_0x1cfc18){_0x2d21ed[_0x7281('0x1a')]=_0x1cfc18;if(_0x40e852[_0x7281('0x2a')][_0x7281('0x3f')]){_0x289bdc[_0x7281('0x40')]=[{'all':!![]}];}return db['Interval']['findAll'](_0x289bdc);})['then'](function(_0x4298c5){_0x2d21ed[_0x7281('0x41')]=_0x4298c5;return _0x2d21ed;})[_0x7281('0x21')](respondWithFilteredResult(_0x8f2087,_0x289bdc))[_0x7281('0x42')](handleError(_0x8f2087,null));};exports['show']=function(_0x10b6d9,_0xbd0ecc){var _0x14a1db={'raw':!![],'where':{'id':_0x10b6d9[_0x7281('0x43')]['id']}},_0x2726b8={};_0x2726b8[_0x7281('0x29')]=_[_0x7281('0x2c')](db[_0x7281('0x3e')][_0x7281('0x28')]);_0x2726b8['query']=_['keys'](_0x10b6d9[_0x7281('0x2a')]);_0x2726b8[_0x7281('0x34')]=_[_0x7281('0x2d')](_0x2726b8[_0x7281('0x29')],_0x2726b8[_0x7281('0x2a')]);_0x14a1db['attributes']=_[_0x7281('0x2d')](_0x2726b8[_0x7281('0x29')],qs[_0x7281('0x2f')](_0x10b6d9[_0x7281('0x2a')][_0x7281('0x2f')]));_0x14a1db[_0x7281('0x2e')]=_0x14a1db['attributes'][_0x7281('0x30')]?_0x14a1db['attributes']:_0x2726b8['model'];if(_0x10b6d9[_0x7281('0x2a')][_0x7281('0x3f')]){_0x14a1db['include']=[{'all':!![]}];}_0x14a1db=_[_0x7281('0x39')]({},_0x14a1db,_0x10b6d9[_0x7281('0x3d')]);return db[_0x7281('0x3e')][_0x7281('0x44')](_0x14a1db)[_0x7281('0x21')](handleEntityNotFound(_0xbd0ecc,null))['then'](respondWithResult(_0xbd0ecc,null))[_0x7281('0x42')](handleError(_0xbd0ecc,null));};exports[_0x7281('0x45')]=function(_0x191312,_0x27c52d){return db['Interval'][_0x7281('0x45')](_0x191312[_0x7281('0x46')],{})['then'](respondWithResult(_0x27c52d,0xc9))[_0x7281('0x42')](handleError(_0x27c52d,null));};exports[_0x7281('0x47')]=function(_0x2d3dde,_0x840d13){if(_0x2d3dde[_0x7281('0x46')]['id']){delete _0x2d3dde['body']['id'];}return db[_0x7281('0x3e')][_0x7281('0x44')]({'where':{'id':_0x2d3dde[_0x7281('0x43')]['id']}})[_0x7281('0x21')](handleEntityNotFound(_0x840d13,null))[_0x7281('0x21')](saveUpdates(_0x2d3dde[_0x7281('0x46')],null))[_0x7281('0x21')](respondWithResult(_0x840d13,null))[_0x7281('0x42')](handleError(_0x840d13,null));};exports['destroy']=function(_0x1e7796,_0x2ef22b){return db[_0x7281('0x3e')][_0x7281('0x44')]({'where':{'id':_0x1e7796[_0x7281('0x43')]['id']}})[_0x7281('0x21')](handleEntityNotFound(_0x2ef22b,null))[_0x7281('0x21')](removeEntity(_0x2ef22b,null))['catch'](handleError(_0x2ef22b,null));};exports[_0x7281('0x48')]=function(_0x8f3514,_0x2274c5,_0x4ffedd){if(_0x8f3514[_0x7281('0x46')]['id']){delete _0x8f3514[_0x7281('0x46')]['id'];}return db[_0x7281('0x3e')][_0x7281('0x44')]({'where':{'id':_0x8f3514[_0x7281('0x43')]['id']}})[_0x7281('0x21')](handleEntityNotFound(_0x2274c5,null))[_0x7281('0x21')](function(_0x5ceda1){if(_0x5ceda1){_0x8f3514[_0x7281('0x46')][_0x7281('0x49')]=_0x5ceda1['id'];return db[_0x7281('0x3e')]['create'](_0x8f3514[_0x7281('0x46')]);}})[_0x7281('0x21')](respondWithResult(_0x2274c5,null))[_0x7281('0x42')](handleError(_0x2274c5,null));};exports[_0x7281('0x4a')]=function(_0x18b8d6,_0x589ff2,_0x3cf073){var _0x345bb6={};var _0xccde85={};var _0x172564;var _0x209c86;return db[_0x7281('0x3e')][_0x7281('0x4b')]({'where':{'id':_0x18b8d6['params']['id']}})[_0x7281('0x21')](handleEntityNotFound(_0x589ff2,null))['then'](function(_0x491e79){if(_0x491e79){_0x172564=_0x491e79;_0xccde85[_0x7281('0x29')]=_[_0x7281('0x2c')](db[_0x7281('0x3e')][_0x7281('0x28')]);_0xccde85['query']=_[_0x7281('0x2c')](_0x18b8d6[_0x7281('0x2a')]);_0xccde85[_0x7281('0x34')]=_[_0x7281('0x2d')](_0xccde85[_0x7281('0x29')],_0xccde85[_0x7281('0x2a')]);_0x345bb6[_0x7281('0x2e')]=_[_0x7281('0x2d')](_0xccde85['model'],qs[_0x7281('0x2f')](_0x18b8d6[_0x7281('0x2a')][_0x7281('0x2f')]));_0x345bb6[_0x7281('0x2e')]=_0x345bb6[_0x7281('0x2e')][_0x7281('0x30')]?_0x345bb6[_0x7281('0x2e')]:_0xccde85[_0x7281('0x29')];_0x345bb6[_0x7281('0x32')]=qs['sort'](_0x18b8d6[_0x7281('0x2a')][_0x7281('0x33')]);_0x345bb6[_0x7281('0x3a')]=qs['filters'](_[_0x7281('0x35')](_0x18b8d6['query'],_0xccde85[_0x7281('0x34')]));if(_0x18b8d6[_0x7281('0x2a')]['filter']){_0x345bb6[_0x7281('0x3a')]=_[_0x7281('0x39')](_0x345bb6[_0x7281('0x3a')],{'$or':_[_0x7281('0x3c')](_0x345bb6[_0x7281('0x2e')],function(_0x25e83e){var _0x5202d6={};_0x5202d6[_0x25e83e]={'$like':'%'+_0x18b8d6[_0x7281('0x2a')]['filter']+'%'};return _0x5202d6;})});}_0x345bb6=_[_0x7281('0x39')]({},_0x345bb6,_0x18b8d6[_0x7281('0x3d')]);return _0x172564[_0x7281('0x4a')](_0x345bb6);}})['then'](function(_0xb7a717){if(_0xb7a717){_0x209c86=_0xb7a717[_0x7281('0x30')];if(!_0x18b8d6[_0x7281('0x2a')][_0x7281('0x31')](_0x7281('0x4c'))){_0x345bb6['limit']=qs[_0x7281('0x1c')](_0x18b8d6[_0x7281('0x2a')][_0x7281('0x1c')]);_0x345bb6[_0x7281('0x1b')]=qs['offset'](_0x18b8d6[_0x7281('0x2a')][_0x7281('0x1b')]);}return _0x172564[_0x7281('0x4a')](_0x345bb6);}})[_0x7281('0x21')](function(_0x5431da){if(_0x5431da){return _0x5431da?{'count':_0x209c86,'rows':_0x5431da}:null;}})[_0x7281('0x21')](respondWithResult(_0x589ff2,null))[_0x7281('0x42')](handleError(_0x589ff2,null));};exports['addIntervals']=function(_0x1a43ba,_0x2beb89,_0x2fa7dd){return db['Interval'][_0x7281('0x4b')]({'where':{'id':_0x1a43ba[_0x7281('0x43')]['id']}})[_0x7281('0x21')](handleEntityNotFound(_0x2beb89,null))[_0x7281('0x21')](function(_0x462a24){if(_0x462a24){return db['sequelize'][_0x7281('0x4d')](function(_0x121d66){return db[_0x7281('0x3e')]['destroy']({'where':{'IntervalId':_0x1a43ba['params']['id']},'transaction':_0x121d66})[_0x7281('0x21')](function(_0x14643d){var _0xf2a2b=_[_0x7281('0x3c')](_0x1a43ba[_0x7281('0x46')],function(_0x13af23){delete _0x13af23['id'];_0x13af23[_0x7281('0x49')]=_0x1a43ba[_0x7281('0x43')]['id'];return _0x13af23;});return db[_0x7281('0x3e')][_0x7281('0x4e')](_0xf2a2b,{'transaction':_0x121d66});});})[_0x7281('0x21')](function(){return db[_0x7281('0x3e')][_0x7281('0x4f')]({'where':{'IntervalId':_0x1a43ba['params']['id']}});});}})['then'](respondWithResult(_0x2beb89,null))['catch'](handleError(_0x2beb89,null));};
\ No newline at end of file
+var _0xa217=['options','includeAll','include','findAll','rows','catch','show','params','intersection','find','create','body','addInterval','IntervalId','getIntervals','addIntervals','sequelize','transaction','bulkCreate','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','index','Interval','rawAttributes','model','keys','dateStart','dateEnd','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','filter','merge','map'];(function(_0x495eaa,_0x53d5ee){var _0x4e2648=function(_0x2f2c0a){while(--_0x2f2c0a){_0x495eaa['push'](_0x495eaa['shift']());}};_0x4e2648(++_0x53d5ee);}(_0xa217,0x1b2));var _0x7a21=function(_0xc4e4b2,_0x522c41){_0xc4e4b2=_0xc4e4b2-0x0;var _0x11bdd4=_0xa217[_0xc4e4b2];return _0x11bdd4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x7a21('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7a21('0x1'));var jsonpatch=require(_0x7a21('0x2'));var rp=require(_0x7a21('0x3'));var moment=require(_0x7a21('0x4'));var BPromise=require(_0x7a21('0x5'));var Mustache=require(_0x7a21('0x6'));var util=require(_0x7a21('0x7'));var path=require(_0x7a21('0x8'));var sox=require(_0x7a21('0x9'));var csv=require(_0x7a21('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7a21('0xb'));var squel=require(_0x7a21('0xc'));var crypto=require(_0x7a21('0xd'));var jsforce=require(_0x7a21('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x7a21('0xa'));var querystring=require('querystring');var Papa=require(_0x7a21('0xf'));var Redis=require(_0x7a21('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0x7a21('0x11'))(_0x7a21('0x12'));var utils=require(_0x7a21('0x13'));var config=require(_0x7a21('0x14'));var db=require(_0x7a21('0x15'))['db'];var extensions=require(_0x7a21('0x16'));function respondWithStatusCode(_0x1b0f6e,_0x390c76){_0x390c76=_0x390c76||0xcc;return function(_0x32006e){if(_0x32006e){return _0x1b0f6e['sendStatus'](_0x390c76);}return _0x1b0f6e[_0x7a21('0x17')](_0x390c76)[_0x7a21('0x18')]();};}function respondWithResult(_0x1dfc22,_0x6dff29){_0x6dff29=_0x6dff29||0xc8;return function(_0x4fe5c7){if(_0x4fe5c7){return _0x1dfc22[_0x7a21('0x17')](_0x6dff29)[_0x7a21('0x19')](_0x4fe5c7);}};}function respondWithFilteredResult(_0x43d1fc,_0x475c9c){return function(_0x1ad7e4){if(_0x1ad7e4){var _0x3a7d1f=_0x1ad7e4[_0x7a21('0x1a')],_0x5750c9=_0x475c9c[_0x7a21('0x1b')],_0x40ef31=_0x475c9c[_0x7a21('0x1b')]+_0x475c9c[_0x7a21('0x1c')],_0x324eb9;if(_0x40ef31>=_0x3a7d1f){_0x40ef31=_0x3a7d1f;_0x324eb9=0xc8;}else{_0x324eb9=0xce;}_0x43d1fc['status'](_0x324eb9);return _0x43d1fc[_0x7a21('0x1d')](_0x7a21('0x1e'),_0x5750c9+'-'+_0x40ef31+'/'+_0x3a7d1f)[_0x7a21('0x19')](_0x1ad7e4);}return null;};}function patchUpdates(_0x1b724d){return function(_0x5d1210){try{jsonpatch[_0x7a21('0x1f')](_0x5d1210,_0x1b724d,!![]);}catch(_0x390135){return BPromise[_0x7a21('0x20')](_0x390135);}return _0x5d1210['save']();};}function saveUpdates(_0x690cb6,_0x6186e8){return function(_0x2601f6){if(_0x2601f6){return _0x2601f6[_0x7a21('0x21')](_0x690cb6)[_0x7a21('0x22')](function(_0x3865fe){return _0x3865fe;});}return null;};}function removeEntity(_0x42f69b,_0x2fafb7){return function(_0x52a280){if(_0x52a280){return _0x52a280[_0x7a21('0x23')]()[_0x7a21('0x22')](function(){_0x42f69b['status'](0xcc)[_0x7a21('0x18')]();});}};}function handleEntityNotFound(_0x3decb2,_0xce8b52){return function(_0x262615){if(!_0x262615){_0x3decb2[_0x7a21('0x24')](0x194);}return _0x262615;};}function handleError(_0x5e81de,_0xb1907e){_0xb1907e=_0xb1907e||0x1f4;return function(_0x4adcf9){logger[_0x7a21('0x25')](_0x4adcf9[_0x7a21('0x26')]);if(_0x4adcf9[_0x7a21('0x27')]){delete _0x4adcf9[_0x7a21('0x27')];}_0x5e81de[_0x7a21('0x17')](_0xb1907e)[_0x7a21('0x28')](_0x4adcf9);};}exports[_0x7a21('0x29')]=function(_0x4a789c,_0x22b6e7){var _0x5897fb={},_0x5e3b72={},_0xb6faf7={'count':0x0,'rows':[]};var _0x1b1774=db[_0x7a21('0x2a')][_0x7a21('0x2b')];_0x5e3b72[_0x7a21('0x2c')]=_[_0x7a21('0x2d')](_0x1b1774);var _0x3e7bfd={'dateStart':_0x4a789c['query'][_0x7a21('0x2e')],'dateEnd':_0x4a789c['query'][_0x7a21('0x2f')]};delete _0x4a789c[_0x7a21('0x30')][_0x7a21('0x2e')];delete _0x4a789c['query'][_0x7a21('0x2f')];_0x5e3b72[_0x7a21('0x30')]=_['keys'](_0x4a789c[_0x7a21('0x30')]);_0x5e3b72[_0x7a21('0x31')]=_['intersection'](_0x5e3b72['model'],_0x5e3b72[_0x7a21('0x30')]);_0x5897fb[_0x7a21('0x32')]=_['intersection'](_0x5e3b72[_0x7a21('0x2c')],qs[_0x7a21('0x33')](_0x4a789c['query']['fields']));_0x5897fb[_0x7a21('0x32')]=_0x5897fb['attributes'][_0x7a21('0x34')]?_0x5897fb[_0x7a21('0x32')]:_0x5e3b72[_0x7a21('0x2c')];if(!_0x4a789c['query'][_0x7a21('0x35')](_0x7a21('0x36'))){_0x5897fb[_0x7a21('0x1c')]=qs[_0x7a21('0x1c')](_0x4a789c['query'][_0x7a21('0x1c')]);_0x5897fb[_0x7a21('0x1b')]=qs[_0x7a21('0x1b')](_0x4a789c[_0x7a21('0x30')][_0x7a21('0x1b')]);}_0x5897fb[_0x7a21('0x37')]=qs[_0x7a21('0x38')](_0x4a789c[_0x7a21('0x30')][_0x7a21('0x38')]);_0x5897fb[_0x7a21('0x39')]=qs[_0x7a21('0x31')](_[_0x7a21('0x3a')](_0x4a789c[_0x7a21('0x30')],_0x5e3b72[_0x7a21('0x31')]));if(_0x3e7bfd[_0x7a21('0x2e')]){if(_0x3e7bfd[_0x7a21('0x2f')]){_0x3e7bfd['dateEnd']=moment(_0x3e7bfd[_0x7a21('0x2f')])[_0x7a21('0x3b')](0x1,_0x7a21('0x3c'));}else{_0x3e7bfd[_0x7a21('0x2f')]=moment(_0x3e7bfd[_0x7a21('0x2e')])['add'](0x1,_0x7a21('0x3c'));}_['merge'](_0x5897fb[_0x7a21('0x39')],{'createdAt':{'$gte':_0x3e7bfd[_0x7a21('0x2e')],'$lte':_0x3e7bfd[_0x7a21('0x2f')]}});}if(_0x4a789c[_0x7a21('0x30')][_0x7a21('0x3d')]){_0x5897fb['where']=_[_0x7a21('0x3e')](_0x5897fb[_0x7a21('0x39')],{'$or':_[_0x7a21('0x3f')](_0x5897fb['attributes'],function(_0x4a3ce7){var _0x3ba0d1={};_0x3ba0d1[_0x4a3ce7]={'$like':'%'+_0x4a789c['query'][_0x7a21('0x3d')]+'%'};return _0x3ba0d1;})});}_0x5897fb=_[_0x7a21('0x3e')]({},_0x5897fb,_0x4a789c[_0x7a21('0x40')]);var _0x5b4970={'where':_0x5897fb[_0x7a21('0x39')]};return db[_0x7a21('0x2a')][_0x7a21('0x1a')](_0x5b4970)[_0x7a21('0x22')](function(_0x9243){_0xb6faf7[_0x7a21('0x1a')]=_0x9243;if(_0x4a789c[_0x7a21('0x30')][_0x7a21('0x41')]){_0x5897fb[_0x7a21('0x42')]=[{'all':!![]}];}return db[_0x7a21('0x2a')][_0x7a21('0x43')](_0x5897fb);})[_0x7a21('0x22')](function(_0x32232a){_0xb6faf7[_0x7a21('0x44')]=_0x32232a;return _0xb6faf7;})[_0x7a21('0x22')](respondWithFilteredResult(_0x22b6e7,_0x5897fb))[_0x7a21('0x45')](handleError(_0x22b6e7,null));};exports[_0x7a21('0x46')]=function(_0x347606,_0x2dfa8a){var _0x4681b0={'raw':!![],'where':{'id':_0x347606[_0x7a21('0x47')]['id']}},_0xaecd96={};_0xaecd96['model']=_[_0x7a21('0x2d')](db['Interval'][_0x7a21('0x2b')]);_0xaecd96[_0x7a21('0x30')]=_['keys'](_0x347606['query']);_0xaecd96[_0x7a21('0x31')]=_['intersection'](_0xaecd96[_0x7a21('0x2c')],_0xaecd96['query']);_0x4681b0['attributes']=_[_0x7a21('0x48')](_0xaecd96[_0x7a21('0x2c')],qs[_0x7a21('0x33')](_0x347606[_0x7a21('0x30')][_0x7a21('0x33')]));_0x4681b0[_0x7a21('0x32')]=_0x4681b0[_0x7a21('0x32')][_0x7a21('0x34')]?_0x4681b0[_0x7a21('0x32')]:_0xaecd96[_0x7a21('0x2c')];if(_0x347606[_0x7a21('0x30')][_0x7a21('0x41')]){_0x4681b0[_0x7a21('0x42')]=[{'all':!![]}];}_0x4681b0=_[_0x7a21('0x3e')]({},_0x4681b0,_0x347606[_0x7a21('0x40')]);return db[_0x7a21('0x2a')][_0x7a21('0x49')](_0x4681b0)[_0x7a21('0x22')](handleEntityNotFound(_0x2dfa8a,null))['then'](respondWithResult(_0x2dfa8a,null))[_0x7a21('0x45')](handleError(_0x2dfa8a,null));};exports[_0x7a21('0x4a')]=function(_0x36af15,_0x3f9102){return db[_0x7a21('0x2a')][_0x7a21('0x4a')](_0x36af15['body'],{})[_0x7a21('0x22')](respondWithResult(_0x3f9102,0xc9))[_0x7a21('0x45')](handleError(_0x3f9102,null));};exports[_0x7a21('0x21')]=function(_0x3f633b,_0x997456){if(_0x3f633b[_0x7a21('0x4b')]['id']){delete _0x3f633b[_0x7a21('0x4b')]['id'];}return db['Interval'][_0x7a21('0x49')]({'where':{'id':_0x3f633b[_0x7a21('0x47')]['id']}})[_0x7a21('0x22')](handleEntityNotFound(_0x997456,null))['then'](saveUpdates(_0x3f633b[_0x7a21('0x4b')],null))[_0x7a21('0x22')](respondWithResult(_0x997456,null))[_0x7a21('0x45')](handleError(_0x997456,null));};exports[_0x7a21('0x23')]=function(_0x597f00,_0x4b46da){return db['Interval'][_0x7a21('0x49')]({'where':{'id':_0x597f00[_0x7a21('0x47')]['id']}})[_0x7a21('0x22')](handleEntityNotFound(_0x4b46da,null))[_0x7a21('0x22')](removeEntity(_0x4b46da,null))[_0x7a21('0x45')](handleError(_0x4b46da,null));};exports[_0x7a21('0x4c')]=function(_0xfaf52f,_0x1558a1,_0x159c7d){if(_0xfaf52f[_0x7a21('0x4b')]['id']){delete _0xfaf52f[_0x7a21('0x4b')]['id'];}return db['Interval']['find']({'where':{'id':_0xfaf52f[_0x7a21('0x47')]['id']}})[_0x7a21('0x22')](handleEntityNotFound(_0x1558a1,null))[_0x7a21('0x22')](function(_0x3a8ec8){if(_0x3a8ec8){_0xfaf52f[_0x7a21('0x4b')][_0x7a21('0x4d')]=_0x3a8ec8['id'];return db[_0x7a21('0x2a')][_0x7a21('0x4a')](_0xfaf52f[_0x7a21('0x4b')]);}})[_0x7a21('0x22')](respondWithResult(_0x1558a1,null))[_0x7a21('0x45')](handleError(_0x1558a1,null));};exports[_0x7a21('0x4e')]=function(_0x57945f,_0xd48811,_0x42e40a){var _0x19a0c3={};var _0x4f6483={};var _0x59c533;var _0x50b46f;return db[_0x7a21('0x2a')]['findOne']({'where':{'id':_0x57945f['params']['id']}})[_0x7a21('0x22')](handleEntityNotFound(_0xd48811,null))['then'](function(_0x43cf64){if(_0x43cf64){_0x59c533=_0x43cf64;_0x4f6483['model']=_[_0x7a21('0x2d')](db['Interval'][_0x7a21('0x2b')]);_0x4f6483[_0x7a21('0x30')]=_['keys'](_0x57945f[_0x7a21('0x30')]);_0x4f6483[_0x7a21('0x31')]=_[_0x7a21('0x48')](_0x4f6483[_0x7a21('0x2c')],_0x4f6483[_0x7a21('0x30')]);_0x19a0c3[_0x7a21('0x32')]=_[_0x7a21('0x48')](_0x4f6483[_0x7a21('0x2c')],qs['fields'](_0x57945f['query'][_0x7a21('0x33')]));_0x19a0c3[_0x7a21('0x32')]=_0x19a0c3[_0x7a21('0x32')][_0x7a21('0x34')]?_0x19a0c3[_0x7a21('0x32')]:_0x4f6483[_0x7a21('0x2c')];_0x19a0c3[_0x7a21('0x37')]=qs['sort'](_0x57945f[_0x7a21('0x30')][_0x7a21('0x38')]);_0x19a0c3[_0x7a21('0x39')]=qs[_0x7a21('0x31')](_['pick'](_0x57945f[_0x7a21('0x30')],_0x4f6483[_0x7a21('0x31')]));if(_0x57945f['query'][_0x7a21('0x3d')]){_0x19a0c3['where']=_[_0x7a21('0x3e')](_0x19a0c3[_0x7a21('0x39')],{'$or':_[_0x7a21('0x3f')](_0x19a0c3[_0x7a21('0x32')],function(_0x4e3328){var _0x30e629={};_0x30e629[_0x4e3328]={'$like':'%'+_0x57945f[_0x7a21('0x30')][_0x7a21('0x3d')]+'%'};return _0x30e629;})});}_0x19a0c3=_['merge']({},_0x19a0c3,_0x57945f[_0x7a21('0x40')]);return _0x59c533[_0x7a21('0x4e')](_0x19a0c3);}})[_0x7a21('0x22')](function(_0x491680){if(_0x491680){_0x50b46f=_0x491680[_0x7a21('0x34')];if(!_0x57945f['query']['hasOwnProperty'](_0x7a21('0x36'))){_0x19a0c3[_0x7a21('0x1c')]=qs[_0x7a21('0x1c')](_0x57945f[_0x7a21('0x30')][_0x7a21('0x1c')]);_0x19a0c3['offset']=qs['offset'](_0x57945f[_0x7a21('0x30')][_0x7a21('0x1b')]);}return _0x59c533[_0x7a21('0x4e')](_0x19a0c3);}})[_0x7a21('0x22')](function(_0x467572){if(_0x467572){return _0x467572?{'count':_0x50b46f,'rows':_0x467572}:null;}})['then'](respondWithResult(_0xd48811,null))[_0x7a21('0x45')](handleError(_0xd48811,null));};exports[_0x7a21('0x4f')]=function(_0x557fcd,_0xf7236f,_0x5b5eee){return db['Interval']['findOne']({'where':{'id':_0x557fcd[_0x7a21('0x47')]['id']}})[_0x7a21('0x22')](handleEntityNotFound(_0xf7236f,null))[_0x7a21('0x22')](function(_0x265d2c){if(_0x265d2c){return db[_0x7a21('0x50')][_0x7a21('0x51')](function(_0x44f4c0){return db['Interval'][_0x7a21('0x23')]({'where':{'IntervalId':_0x557fcd[_0x7a21('0x47')]['id']},'transaction':_0x44f4c0})[_0x7a21('0x22')](function(_0x2e267e){var _0x254c72=_[_0x7a21('0x3f')](_0x557fcd['body'],function(_0x1ba9c9){delete _0x1ba9c9['id'];_0x1ba9c9[_0x7a21('0x4d')]=_0x557fcd[_0x7a21('0x47')]['id'];return _0x1ba9c9;});return db[_0x7a21('0x2a')][_0x7a21('0x52')](_0x254c72,{'transaction':_0x44f4c0});});})[_0x7a21('0x22')](function(){return db[_0x7a21('0x2a')][_0x7a21('0x43')]({'where':{'IntervalId':_0x557fcd[_0x7a21('0x47')]['id']}});});}})[_0x7a21('0x22')](respondWithResult(_0xf7236f,null))['catch'](handleError(_0xf7236f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30c1=['util','api','moment','bluebird','request-promise','../../components/extensions/rewrite','exports','define','tools_intervals','rewrite','lodash'];(function(_0x13b8f3,_0x442821){var _0x1a6d06=function(_0x5126f2){while(--_0x5126f2){_0x13b8f3['push'](_0x13b8f3['shift']());}};_0x1a6d06(++_0x442821);}(_0x30c1,0x154));var _0x130c=function(_0x1f61b1,_0x354916){_0x1f61b1=_0x1f61b1-0x0;var _0x10e5a8=_0x30c1[_0x1f61b1];return _0x10e5a8;};'use strict';var _=require(_0x130c('0x0'));var util=require(_0x130c('0x1'));var logger=require('../../config/logger')(_0x130c('0x2'));var moment=require(_0x130c('0x3'));var BPromise=require(_0x130c('0x4'));var rp=require(_0x130c('0x5'));var attributes=require('./interval.attributes');var extensions=require(_0x130c('0x6'));module[_0x130c('0x7')]=function(_0x1899ee,_0x40ff83){return _0x1899ee[_0x130c('0x8')]('Interval',attributes,{'tableName':_0x130c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x421f69,_0x121d12){extensions[_0x130c('0xa')](_0x1899ee,_0x421f69);},'afterBulkCreate':function(_0x1bcd9f,_0x25fcb0,_0xca92fa){_0xca92fa();extensions['rewrite'](_0x1899ee,_0x1bcd9f[0x0]);},'afterUpdate':function(_0x494ee3,_0x27631c){extensions[_0x130c('0xa')](_0x1899ee,_0x494ee3);},'afterDestroy':function(_0x3d9443,_0x41b201){extensions[_0x130c('0xa')](_0x1899ee,_0x3d9443);}}});};
\ No newline at end of file
+var _0x3a25=['../../components/extensions/rewrite','exports','define','tools_intervals','rewrite','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3a25,0x19d));var _0x53a2=function(_0xf4b556,_0x385bda){_0xf4b556=_0xf4b556-0x0;var _0x261c3d=_0x3a25[_0xf4b556];return _0x261c3d;};'use strict';var _=require(_0x53a2('0x0'));var util=require(_0x53a2('0x1'));var logger=require(_0x53a2('0x2'))(_0x53a2('0x3'));var moment=require(_0x53a2('0x4'));var BPromise=require(_0x53a2('0x5'));var rp=require(_0x53a2('0x6'));var attributes=require('./interval.attributes');var extensions=require(_0x53a2('0x7'));module[_0x53a2('0x8')]=function(_0x12c787,_0x76c202){return _0x12c787[_0x53a2('0x9')]('Interval',attributes,{'tableName':_0x53a2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2c19f1,_0x5b09c4){extensions[_0x53a2('0xb')](_0x12c787,_0x2c19f1);},'afterBulkCreate':function(_0x5b1c8e,_0x414aaf,_0x253025){_0x253025();extensions[_0x53a2('0xb')](_0x12c787,_0x5b1c8e[0x0]);},'afterUpdate':function(_0x921118,_0x408e40){extensions[_0x53a2('0xb')](_0x12c787,_0x921118);},'afterDestroy':function(_0x1f5961,_0x10a226){extensions['rewrite'](_0x12c787,_0x1f5961);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x17f9=['then','ShowInterval','find','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','info','Interval,\x20%s,\x20%s','request\x20sent','Interval,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetInterval','Interval','options','raw','where','attributes','limit','model','map','include'];(function(_0xa01e26,_0x53b0bb){var _0x3f00fd=function(_0x451faa){while(--_0x451faa){_0xa01e26['push'](_0xa01e26['shift']());}};_0x3f00fd(++_0x53b0bb);}(_0x17f9,0xa8));var _0x917f=function(_0x46d4a2,_0x3a21c3){_0x46d4a2=_0x46d4a2-0x0;var _0x5e032c=_0x17f9[_0x46d4a2];return _0x5e032c;};'use strict';var _=require(_0x917f('0x0'));var util=require(_0x917f('0x1'));var moment=require('moment');var BPromise=require(_0x917f('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x917f('0x3'))['db'];var utils=require(_0x917f('0x4'));var logger=require(_0x917f('0x5'))('rpc');var config=require(_0x917f('0x6'));var jayson=require(_0x917f('0x7'));var client=jayson[_0x917f('0x8')][_0x917f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x228109,_0x4d0396,_0x18e880){return new BPromise(function(_0x3fa193,_0x542c04){return client['request'](_0x228109,_0x18e880)['then'](function(_0x3c0517){logger[_0x917f('0xa')](_0x917f('0xb'),_0x4d0396,_0x917f('0xc'));logger['debug'](_0x917f('0xd'),_0x4d0396,_0x917f('0xc'),JSON[_0x917f('0xe')](_0x3c0517));if(_0x3c0517['error']){if(_0x3c0517[_0x917f('0xf')][_0x917f('0x10')]===0x1f4){logger[_0x917f('0xf')](_0x917f('0xb'),_0x4d0396,_0x3c0517[_0x917f('0xf')]['message']);return _0x542c04(_0x3c0517[_0x917f('0xf')][_0x917f('0x11')]);}logger[_0x917f('0xf')](_0x917f('0xb'),_0x4d0396,_0x3c0517['error']['message']);return _0x3fa193(_0x3c0517[_0x917f('0xf')][_0x917f('0x11')]);}else{logger[_0x917f('0xa')](_0x917f('0xb'),_0x4d0396,_0x917f('0xc'));_0x3fa193(_0x3c0517[_0x917f('0x12')][_0x917f('0x11')]);}})[_0x917f('0x13')](function(_0xda25ae){logger[_0x917f('0xf')](_0x917f('0xb'),_0x4d0396,_0xda25ae);_0x542c04(_0xda25ae);});});}exports[_0x917f('0x14')]=function(_0x1a6fb4){var _0x4a608e=this;return new Promise(function(_0x4d51ce,_0xc0c84b){return db[_0x917f('0x15')]['findAll']({'raw':_0x1a6fb4[_0x917f('0x16')]?_0x1a6fb4[_0x917f('0x16')][_0x917f('0x17')]===undefined?!![]:![]:!![],'where':_0x1a6fb4['options']?_0x1a6fb4['options'][_0x917f('0x18')]||null:null,'attributes':_0x1a6fb4[_0x917f('0x16')]?_0x1a6fb4['options'][_0x917f('0x19')]||null:null,'limit':_0x1a6fb4[_0x917f('0x16')]?_0x1a6fb4[_0x917f('0x16')][_0x917f('0x1a')]||null:null,'include':_0x1a6fb4['options']?_0x1a6fb4[_0x917f('0x16')]['include']?_['map'](_0x1a6fb4[_0x917f('0x16')]['include'],function(_0x41a875){return{'model':db[_0x41a875[_0x917f('0x1b')]],'as':_0x41a875['as'],'attributes':_0x41a875['attributes'],'include':_0x41a875['include']?_[_0x917f('0x1c')](_0x41a875[_0x917f('0x1d')],function(_0x218176){return{'model':db[_0x218176['model']],'as':_0x218176['as'],'attributes':_0x218176[_0x917f('0x19')],'include':_0x218176[_0x917f('0x1d')]?_['map'](_0x218176[_0x917f('0x1d')],function(_0x3d011b){return{'model':db[_0x3d011b[_0x917f('0x1b')]],'as':_0x3d011b['as'],'attributes':_0x3d011b[_0x917f('0x19')]};}):[]};}):[]};}):[]:[]})[_0x917f('0x1e')](function(_0x56ab9c){logger[_0x917f('0xa')](_0x917f('0x14'),_0x1a6fb4);logger['debug'](_0x917f('0x14'),_0x1a6fb4,JSON[_0x917f('0xe')](_0x56ab9c));_0x4d51ce(_0x56ab9c);})[_0x917f('0x13')](function(_0x150497){logger['error']('GetInterval',_0x150497[_0x917f('0x11')],_0x1a6fb4);_0xc0c84b(_0x4a608e[_0x917f('0xf')](0x1f4,_0x150497[_0x917f('0x11')]));});});};exports[_0x917f('0x1f')]=function(_0x1a56ad){var _0x52d97f=this;return new Promise(function(_0x1676db,_0x877060){return db['Interval'][_0x917f('0x20')]({'raw':_0x1a56ad[_0x917f('0x16')]?_0x1a56ad[_0x917f('0x16')][_0x917f('0x17')]===undefined?!![]:![]:!![],'where':_0x1a56ad[_0x917f('0x16')]?_0x1a56ad['options'][_0x917f('0x18')]||null:null,'attributes':_0x1a56ad[_0x917f('0x16')]?_0x1a56ad[_0x917f('0x16')][_0x917f('0x19')]||null:null,'include':_0x1a56ad[_0x917f('0x16')]?_0x1a56ad[_0x917f('0x16')][_0x917f('0x1d')]?_[_0x917f('0x1c')](_0x1a56ad[_0x917f('0x16')][_0x917f('0x1d')],function(_0x9f22e4){return{'model':db[_0x9f22e4[_0x917f('0x1b')]],'as':_0x9f22e4['as'],'attributes':_0x9f22e4[_0x917f('0x19')],'include':_0x9f22e4[_0x917f('0x1d')]?_['map'](_0x9f22e4[_0x917f('0x1d')],function(_0x378c3c){return{'model':db[_0x378c3c[_0x917f('0x1b')]],'as':_0x378c3c['as'],'attributes':_0x378c3c['attributes'],'include':_0x378c3c[_0x917f('0x1d')]?_['map'](_0x378c3c['include'],function(_0x2b15bc){return{'model':db[_0x2b15bc[_0x917f('0x1b')]],'as':_0x2b15bc['as'],'attributes':_0x2b15bc[_0x917f('0x19')]};}):[]};}):[]};}):[]:[]})[_0x917f('0x1e')](function(_0x38a224){logger['info']('ShowInterval',_0x1a56ad);logger['debug'](_0x917f('0x1f'),_0x1a56ad,JSON[_0x917f('0xe')](_0x38a224));_0x1676db(_0x38a224);})[_0x917f('0x13')](function(_0x55621e){logger['error'](_0x917f('0x1f'),_0x55621e[_0x917f('0x11')],_0x1a56ad);_0x877060(_0x52d97f[_0x917f('0xf')](0x1f4,_0x55621e[_0x917f('0x11')]));});});};
\ No newline at end of file
+var _0xb4c7=['randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','GetInterval','Interval','findAll','options','raw','attributes','limit','include','map','model','ShowInterval','find','where','lodash','util','moment','bluebird'];(function(_0x52b21d,_0x41c266){var _0x2990f0=function(_0xeab33){while(--_0xeab33){_0x52b21d['push'](_0x52b21d['shift']());}};_0x2990f0(++_0x41c266);}(_0xb4c7,0x1ea));var _0x7b4c=function(_0x13794d,_0x5b6ffd){_0x13794d=_0x13794d-0x0;var _0x3ed2d3=_0xb4c7[_0x13794d];return _0x3ed2d3;};'use strict';var _=require(_0x7b4c('0x0'));var util=require(_0x7b4c('0x1'));var moment=require(_0x7b4c('0x2'));var BPromise=require(_0x7b4c('0x3'));var rs=require(_0x7b4c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7b4c('0x5'))['db'];var utils=require(_0x7b4c('0x6'));var logger=require(_0x7b4c('0x7'))(_0x7b4c('0x8'));var config=require(_0x7b4c('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x7b4c('0xa')][_0x7b4c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2dd5c7,_0x4bf85d,_0x2d7b7e){return new BPromise(function(_0x21687f,_0x570daa){return client[_0x7b4c('0xc')](_0x2dd5c7,_0x2d7b7e)[_0x7b4c('0xd')](function(_0x28e902){logger[_0x7b4c('0xe')](_0x7b4c('0xf'),_0x4bf85d,_0x7b4c('0x10'));logger[_0x7b4c('0x11')](_0x7b4c('0x12'),_0x4bf85d,_0x7b4c('0x10'),JSON[_0x7b4c('0x13')](_0x28e902));if(_0x28e902['error']){if(_0x28e902['error'][_0x7b4c('0x14')]===0x1f4){logger[_0x7b4c('0x15')](_0x7b4c('0xf'),_0x4bf85d,_0x28e902[_0x7b4c('0x15')][_0x7b4c('0x16')]);return _0x570daa(_0x28e902[_0x7b4c('0x15')][_0x7b4c('0x16')]);}logger[_0x7b4c('0x15')](_0x7b4c('0xf'),_0x4bf85d,_0x28e902[_0x7b4c('0x15')]['message']);return _0x21687f(_0x28e902[_0x7b4c('0x15')][_0x7b4c('0x16')]);}else{logger[_0x7b4c('0xe')](_0x7b4c('0xf'),_0x4bf85d,_0x7b4c('0x10'));_0x21687f(_0x28e902[_0x7b4c('0x17')][_0x7b4c('0x16')]);}})[_0x7b4c('0x18')](function(_0x4d3f5e){logger[_0x7b4c('0x15')](_0x7b4c('0xf'),_0x4bf85d,_0x4d3f5e);_0x570daa(_0x4d3f5e);});});}exports[_0x7b4c('0x19')]=function(_0x36c02a){var _0x59ae96=this;return new Promise(function(_0x3ce10c,_0x3d314d){return db[_0x7b4c('0x1a')][_0x7b4c('0x1b')]({'raw':_0x36c02a[_0x7b4c('0x1c')]?_0x36c02a[_0x7b4c('0x1c')][_0x7b4c('0x1d')]===undefined?!![]:![]:!![],'where':_0x36c02a[_0x7b4c('0x1c')]?_0x36c02a[_0x7b4c('0x1c')]['where']||null:null,'attributes':_0x36c02a[_0x7b4c('0x1c')]?_0x36c02a[_0x7b4c('0x1c')][_0x7b4c('0x1e')]||null:null,'limit':_0x36c02a[_0x7b4c('0x1c')]?_0x36c02a[_0x7b4c('0x1c')][_0x7b4c('0x1f')]||null:null,'include':_0x36c02a[_0x7b4c('0x1c')]?_0x36c02a[_0x7b4c('0x1c')][_0x7b4c('0x20')]?_[_0x7b4c('0x21')](_0x36c02a['options'][_0x7b4c('0x20')],function(_0x4350c9){return{'model':db[_0x4350c9[_0x7b4c('0x22')]],'as':_0x4350c9['as'],'attributes':_0x4350c9[_0x7b4c('0x1e')],'include':_0x4350c9[_0x7b4c('0x20')]?_[_0x7b4c('0x21')](_0x4350c9[_0x7b4c('0x20')],function(_0x459eb4){return{'model':db[_0x459eb4[_0x7b4c('0x22')]],'as':_0x459eb4['as'],'attributes':_0x459eb4[_0x7b4c('0x1e')],'include':_0x459eb4[_0x7b4c('0x20')]?_[_0x7b4c('0x21')](_0x459eb4[_0x7b4c('0x20')],function(_0x501f75){return{'model':db[_0x501f75[_0x7b4c('0x22')]],'as':_0x501f75['as'],'attributes':_0x501f75[_0x7b4c('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7b4c('0xd')](function(_0x3671c4){logger[_0x7b4c('0xe')](_0x7b4c('0x19'),_0x36c02a);logger[_0x7b4c('0x11')](_0x7b4c('0x19'),_0x36c02a,JSON[_0x7b4c('0x13')](_0x3671c4));_0x3ce10c(_0x3671c4);})[_0x7b4c('0x18')](function(_0x3585cd){logger[_0x7b4c('0x15')](_0x7b4c('0x19'),_0x3585cd[_0x7b4c('0x16')],_0x36c02a);_0x3d314d(_0x59ae96[_0x7b4c('0x15')](0x1f4,_0x3585cd[_0x7b4c('0x16')]));});});};exports[_0x7b4c('0x23')]=function(_0xce5781){var _0x9d3d31=this;return new Promise(function(_0x4f0d33,_0x59874f){return db['Interval'][_0x7b4c('0x24')]({'raw':_0xce5781[_0x7b4c('0x1c')]?_0xce5781[_0x7b4c('0x1c')][_0x7b4c('0x1d')]===undefined?!![]:![]:!![],'where':_0xce5781['options']?_0xce5781[_0x7b4c('0x1c')][_0x7b4c('0x25')]||null:null,'attributes':_0xce5781['options']?_0xce5781[_0x7b4c('0x1c')]['attributes']||null:null,'include':_0xce5781[_0x7b4c('0x1c')]?_0xce5781[_0x7b4c('0x1c')][_0x7b4c('0x20')]?_['map'](_0xce5781[_0x7b4c('0x1c')][_0x7b4c('0x20')],function(_0x4e8907){return{'model':db[_0x4e8907[_0x7b4c('0x22')]],'as':_0x4e8907['as'],'attributes':_0x4e8907[_0x7b4c('0x1e')],'include':_0x4e8907[_0x7b4c('0x20')]?_[_0x7b4c('0x21')](_0x4e8907['include'],function(_0x4d0355){return{'model':db[_0x4d0355[_0x7b4c('0x22')]],'as':_0x4d0355['as'],'attributes':_0x4d0355[_0x7b4c('0x1e')],'include':_0x4d0355['include']?_[_0x7b4c('0x21')](_0x4d0355['include'],function(_0x543309){return{'model':db[_0x543309[_0x7b4c('0x22')]],'as':_0x543309['as'],'attributes':_0x543309[_0x7b4c('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7b4c('0xd')](function(_0x250901){logger['info'](_0x7b4c('0x23'),_0xce5781);logger[_0x7b4c('0x11')](_0x7b4c('0x23'),_0xce5781,JSON[_0x7b4c('0x13')](_0x250901));_0x4f0d33(_0x250901);})[_0x7b4c('0x18')](function(_0xddd16){logger[_0x7b4c('0x15')]('ShowInterval',_0xddd16['message'],_0xce5781);_0x59874f(_0x9d3d31[_0x7b4c('0x15')](0x1f4,_0xddd16[_0x7b4c('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['send','exports','Router','./jira.controller','post','isAuthenticated'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0x5f66,0x1a0));var _0x65f6=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x5f66[_0x13d07a];return _0x5ee0ee;};'use strict';var express=require('express');var router=express[_0x65f6('0x0')]();var auth=require('../../components/auth/service');var controller=require(_0x65f6('0x1'));router[_0x65f6('0x2')]('/',auth[_0x65f6('0x3')](),controller[_0x65f6('0x4')]);module[_0x65f6('0x5')]=router;
\ No newline at end of file
+var _0xdb28=['isAuthenticated','send','exports','express','Router','../../components/auth/service','./jira.controller'];(function(_0x23a8ff,_0x473030){var _0x3a113d=function(_0x48b255){while(--_0x48b255){_0x23a8ff['push'](_0x23a8ff['shift']());}};_0x3a113d(++_0x473030);}(_0xdb28,0x106));var _0x8db2=function(_0x3ae7c7,_0x3e234b){_0x3ae7c7=_0x3ae7c7-0x0;var _0x5750ab=_0xdb28[_0x3ae7c7];return _0x5750ab;};'use strict';var express=require(_0x8db2('0x0'));var router=express[_0x8db2('0x1')]();var auth=require(_0x8db2('0x2'));var controller=require(_0x8db2('0x3'));router['post']('/',auth[_0x8db2('0x4')](),controller[_0x8db2('0x5')]);module[_0x8db2('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['description','stringify','issuetype','fields','email','customfield_11501','oldToken','customfield_11502','newToken','customfield_11503','name','customfield_10102','track.xcallymotion.com','POST','Basic\x20','toString','base64','setEncoding','utf8','data','end','statusCode','json','parse','error','status','api.jira','write','openIssue','send','body','headers','x-forwarded-for','remoteAddress','https','../../config/logger','api','support','3eAmWpBVP0','key','MOTGUI','summary','Report','\x20from\x20'];(function(_0x2ed859,_0x2770f1){var _0x13b436=function(_0x3b28e2){while(--_0x3b28e2){_0x2ed859['push'](_0x2ed859['shift']());}};_0x13b436(++_0x2770f1);}(_0xbaf0,0x12a));var _0x0baf=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xbaf0[_0xa464c9];return _0x3d73c4;};'use strict';var BPromise=require('bluebird');var https=require(_0x0baf('0x0'));var logger=require(_0x0baf('0x1'))(_0x0baf('0x2'));var USERNAME=_0x0baf('0x3');var PASSWORD=_0x0baf('0x4');function openIssue(_0x4d2e72,_0x5a3e42){var _0x232cc7={'fields':{'project':{'key':_0x4d2e72[_0x0baf('0x5')]||_0x0baf('0x6')},'summary':(_0x4d2e72[_0x0baf('0x7')]||_0x0baf('0x8'))+_0x0baf('0x9')+_0x4d2e72['ip'],'description':_0x4d2e72[_0x0baf('0xa')]||JSON[_0x0baf('0xb')](_0x4d2e72),'issuetype':{'name':_0x4d2e72[_0x0baf('0xc')]||'Bug'}}};_0x232cc7[_0x0baf('0xd')]['customfield_11500']=_0x4d2e72[_0x0baf('0xe')];_0x232cc7[_0x0baf('0xd')][_0x0baf('0xf')]=_0x4d2e72[_0x0baf('0x10')];_0x232cc7[_0x0baf('0xd')][_0x0baf('0x11')]=_0x4d2e72[_0x0baf('0x12')];_0x232cc7[_0x0baf('0xd')][_0x0baf('0x13')]=_0x4d2e72[_0x0baf('0x14')];_0x232cc7[_0x0baf('0xd')]['customfield_11504']=_0x4d2e72['reason'];_0x232cc7[_0x0baf('0xd')][_0x0baf('0x15')]=_0x4d2e72['ip'];var _0x5db689={'host':_0x0baf('0x16'),'port':0x1bb,'path':'/rest/api/2/issue','method':_0x0baf('0x17'),'timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':_0x0baf('0x18')+new Buffer(USERNAME+':'+PASSWORD)[_0x0baf('0x19')](_0x0baf('0x1a'))}};var _0x2bc381=JSON[_0x0baf('0xb')](_0x232cc7);var _0x469599=https['request'](_0x5db689,function(_0x4cd79d){_0x4cd79d[_0x0baf('0x1b')](_0x0baf('0x1c'));var _0x283408='';_0x4cd79d['on'](_0x0baf('0x1d'),function(_0x2cf7da){_0x283408+=_0x2cf7da;});_0x4cd79d['on'](_0x0baf('0x1e'),function(){if(_0x5a3e42){return _0x5a3e42['status'](_0x4cd79d[_0x0baf('0x1f')])[_0x0baf('0x20')](JSON[_0x0baf('0x21')](_0x283408));}});});_0x469599['on'](_0x0baf('0x22'),function(_0x47070d){if(_0x5a3e42){return _0x5a3e42[_0x0baf('0x23')](0x1f4)['json']({'errors':[{'message':'Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','type':_0x0baf('0x24')}]});}});_0x469599[_0x0baf('0x25')](_0x2bc381);_0x469599[_0x0baf('0x1e')]();}exports[_0x0baf('0x26')]=openIssue;exports[_0x0baf('0x27')]=function(_0x3e3e20,_0x210cd8){_0x3e3e20[_0x0baf('0x28')]['ip']=_0x3e3e20[_0x0baf('0x29')][_0x0baf('0x2a')]||_0x3e3e20['connection'][_0x0baf('0x2b')]||_0x3e3e20['socket'][_0x0baf('0x2b')]||_0x3e3e20['connection']['socket'][_0x0baf('0x2b')];return openIssue(_0x3e3e20['body'],_0x210cd8);};
\ No newline at end of file
+var _0xb7e7=['reason','track.xcallymotion.com','POST','toString','base64','setEncoding','utf8','data','end','status','statusCode','json','parse','error','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','api.jira','write','openIssue','send','body','headers','x-forwarded-for','connection','remoteAddress','socket','bluebird','../../config/logger','support','key','MOTGUI','\x20from\x20','description','stringify','Bug','fields','customfield_11500','email','customfield_11501','oldToken','customfield_11502','newToken','customfield_11503','name','customfield_11504'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xb7e7,0x121));var _0x7b7e=function(_0x2ec461,_0x5f588a){_0x2ec461=_0x2ec461-0x0;var _0x28603d=_0xb7e7[_0x2ec461];return _0x28603d;};'use strict';var BPromise=require(_0x7b7e('0x0'));var https=require('https');var logger=require(_0x7b7e('0x1'))('api');var USERNAME=_0x7b7e('0x2');var PASSWORD='3eAmWpBVP0';function openIssue(_0x3f5804,_0x556d68){var _0x31d0ed={'fields':{'project':{'key':_0x3f5804[_0x7b7e('0x3')]||_0x7b7e('0x4')},'summary':(_0x3f5804['summary']||'Report')+_0x7b7e('0x5')+_0x3f5804['ip'],'description':_0x3f5804[_0x7b7e('0x6')]||JSON[_0x7b7e('0x7')](_0x3f5804),'issuetype':{'name':_0x3f5804['issuetype']||_0x7b7e('0x8')}}};_0x31d0ed[_0x7b7e('0x9')][_0x7b7e('0xa')]=_0x3f5804[_0x7b7e('0xb')];_0x31d0ed[_0x7b7e('0x9')][_0x7b7e('0xc')]=_0x3f5804[_0x7b7e('0xd')];_0x31d0ed['fields'][_0x7b7e('0xe')]=_0x3f5804[_0x7b7e('0xf')];_0x31d0ed[_0x7b7e('0x9')][_0x7b7e('0x10')]=_0x3f5804[_0x7b7e('0x11')];_0x31d0ed[_0x7b7e('0x9')][_0x7b7e('0x12')]=_0x3f5804[_0x7b7e('0x13')];_0x31d0ed[_0x7b7e('0x9')]['customfield_10102']=_0x3f5804['ip'];var _0x267446={'host':_0x7b7e('0x14'),'port':0x1bb,'path':'/rest/api/2/issue','method':_0x7b7e('0x15'),'timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':'Basic\x20'+new Buffer(USERNAME+':'+PASSWORD)[_0x7b7e('0x16')](_0x7b7e('0x17'))}};var _0xf067da=JSON[_0x7b7e('0x7')](_0x31d0ed);var _0x3d2fb2=https['request'](_0x267446,function(_0x51baf6){_0x51baf6[_0x7b7e('0x18')](_0x7b7e('0x19'));var _0x27f999='';_0x51baf6['on'](_0x7b7e('0x1a'),function(_0x2cc400){_0x27f999+=_0x2cc400;});_0x51baf6['on'](_0x7b7e('0x1b'),function(){if(_0x556d68){return _0x556d68[_0x7b7e('0x1c')](_0x51baf6[_0x7b7e('0x1d')])[_0x7b7e('0x1e')](JSON[_0x7b7e('0x1f')](_0x27f999));}});});_0x3d2fb2['on'](_0x7b7e('0x20'),function(_0x14f4fe){if(_0x556d68){return _0x556d68[_0x7b7e('0x1c')](0x1f4)[_0x7b7e('0x1e')]({'errors':[{'message':_0x7b7e('0x21'),'type':_0x7b7e('0x22')}]});}});_0x3d2fb2[_0x7b7e('0x23')](_0xf067da);_0x3d2fb2['end']();}exports[_0x7b7e('0x24')]=openIssue;exports[_0x7b7e('0x25')]=function(_0x24718c,_0x4c0647){_0x24718c[_0x7b7e('0x26')]['ip']=_0x24718c[_0x7b7e('0x27')][_0x7b7e('0x28')]||_0x24718c[_0x7b7e('0x29')][_0x7b7e('0x2a')]||_0x24718c[_0x7b7e('0x2b')][_0x7b7e('0x2a')]||_0x24718c[_0x7b7e('0x29')]['socket']['remoteAddress'];return openIssue(_0x24718c['body'],_0x4c0647);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8e4=['/describe','describe','/:id','show','put','update','delete','destroy','exports','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','isAuthenticated','index'];(function(_0x297fd3,_0x115406){var _0x2af381=function(_0x1dd31b){while(--_0x1dd31b){_0x297fd3['push'](_0x297fd3['shift']());}};_0x2af381(++_0x115406);}(_0xc8e4,0x1d5));var _0x4c8e=function(_0x24f31b,_0x44b8f3){_0x24f31b=_0x24f31b-0x0;var _0x488401=_0xc8e4[_0x24f31b];return _0x488401;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x4c8e('0x0'));var timeout=require(_0x4c8e('0x1'));var express=require(_0x4c8e('0x2'));var router=express[_0x4c8e('0x3')]();var auth=require(_0x4c8e('0x4'));var interaction=require(_0x4c8e('0x5'));var config=require(_0x4c8e('0x6'));var controller=require(_0x4c8e('0x7'));router[_0x4c8e('0x8')]('/',auth[_0x4c8e('0x9')](),controller[_0x4c8e('0xa')]);router[_0x4c8e('0x8')](_0x4c8e('0xb'),auth[_0x4c8e('0x9')](),controller[_0x4c8e('0xc')]);router['get'](_0x4c8e('0xd'),auth[_0x4c8e('0x9')](),controller[_0x4c8e('0xe')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x4c8e('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x4c8e('0x10')]);router[_0x4c8e('0x11')](_0x4c8e('0xd'),auth[_0x4c8e('0x9')](),controller[_0x4c8e('0x12')]);module[_0x4c8e('0x13')]=router;
\ No newline at end of file
+var _0x53aa=['destroy','exports','util','path','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','/describe','isAuthenticated','/:id','create','put','update'];(function(_0x3449e6,_0x4b4d12){var _0x272954=function(_0x4b6624){while(--_0x4b6624){_0x3449e6['push'](_0x3449e6['shift']());}};_0x272954(++_0x4b4d12);}(_0x53aa,0x1b5));var _0xa53a=function(_0x819464,_0x46fc91){_0x819464=_0x819464-0x0;var _0x49dcc0=_0x53aa[_0x819464];return _0x49dcc0;};'use strict';var multer=require('multer');var util=require(_0xa53a('0x0'));var path=require(_0xa53a('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require(_0xa53a('0x2'));var interaction=require(_0xa53a('0x3'));var config=require(_0xa53a('0x4'));var controller=require(_0xa53a('0x5'));router[_0xa53a('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa53a('0x6')](_0xa53a('0x7'),auth[_0xa53a('0x8')](),controller['describe']);router[_0xa53a('0x6')](_0xa53a('0x9'),auth[_0xa53a('0x8')](),controller['show']);router['post']('/',auth[_0xa53a('0x8')](),controller[_0xa53a('0xa')]);router[_0xa53a('0xb')](_0xa53a('0x9'),auth[_0xa53a('0x8')](),controller[_0xa53a('0xc')]);router['delete']('/:id',auth[_0xa53a('0x8')](),controller[_0xa53a('0xd')]);module[_0xa53a('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6931=['STRING','sequelize','exports','long'];(function(_0x436752,_0x4ca567){var _0x29f542=function(_0x4406ee){while(--_0x4406ee){_0x436752['push'](_0x436752['shift']());}};_0x29f542(++_0x4ca567);}(_0x6931,0xa5));var _0x1693=function(_0x17c53c,_0x5a4b76){_0x17c53c=_0x17c53c-0x0;var _0x1761f5=_0x6931[_0x17c53c];return _0x1761f5;};'use strict';var Sequelize=require(_0x1693('0x0'));module[_0x1693('0x1')]={'question':{'type':Sequelize['STRING']},'answer':{'type':Sequelize['TEXT'](_0x1693('0x2'))},'membername':{'type':Sequelize[_0x1693('0x3')]},'projectname':{'type':Sequelize[_0x1693('0x3')]},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x1693('0x3')]},'calleridname':{'type':Sequelize[_0x1693('0x3')]},'calleridnum':{'type':Sequelize[_0x1693('0x3')]},'questionId':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x8efc=['STRING','TEXT','long','exports'];(function(_0x17bb81,_0x269472){var _0x2de648=function(_0x4e4758){while(--_0x4e4758){_0x17bb81['push'](_0x17bb81['shift']());}};_0x2de648(++_0x269472);}(_0x8efc,0xb3));var _0xc8ef=function(_0x267c52,_0x3c0df3){_0x267c52=_0x267c52-0x0;var _0x46c47b=_0x8efc[_0x267c52];return _0x46c47b;};'use strict';var Sequelize=require('sequelize');module[_0xc8ef('0x0')]={'question':{'type':Sequelize[_0xc8ef('0x1')]},'answer':{'type':Sequelize[_0xc8ef('0x2')](_0xc8ef('0x3'))},'membername':{'type':Sequelize['STRING']},'projectname':{'type':Sequelize[_0xc8ef('0x1')]},'queue':{'type':Sequelize[_0xc8ef('0x1')]},'uniqueid':{'type':Sequelize[_0xc8ef('0x1')]},'calleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xc8ef('0x1')]},'questionId':{'type':Sequelize[_0xc8ef('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5904=['ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','status','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','end','sendStatus','error','stack','name','send','JscriptyAnswerReport','rawAttributes','model','keys','dateStart','query','dateEnd','filters','attributes','intersection','fields','length','nolimit','order','sort','add','day','merge','where','map','include','findAll','params','options','find','create','body','catch','describe','html-pdf','eml-format','zip-dir','request-promise','moment','mustache','util','path','to-csv'];(function(_0x35816e,_0x29e26f){var _0x348f63=function(_0x2d7b61){while(--_0x2d7b61){_0x35816e['push'](_0x35816e['shift']());}};_0x348f63(++_0x29e26f);}(_0x5904,0x7f));var _0x4590=function(_0x522646,_0x8a963d){_0x522646=_0x522646-0x0;var _0x360da6=_0x5904[_0x522646];return _0x360da6;};'use strict';var pdf=require(_0x4590('0x0'));var emlformat=require(_0x4590('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x4590('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4590('0x3'));var moment=require(_0x4590('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4590('0x5'));var util=require(_0x4590('0x6'));var path=require(_0x4590('0x7'));var sox=require('sox');var csv=require(_0x4590('0x8'));var ejs=require(_0x4590('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x4590('0xa'));var crypto=require(_0x4590('0xb'));var jsforce=require(_0x4590('0xc'));var deskjs=require(_0x4590('0xd'));var toCsv=require(_0x4590('0x8'));var querystring=require(_0x4590('0xe'));var Papa=require(_0x4590('0xf'));var qs=require(_0x4590('0x10'));var logger=require('../../config/logger')(_0x4590('0x11'));var utils=require(_0x4590('0x12'));var config=require('../../config/environment');var db=require(_0x4590('0x13'))['db'];function respondWithStatusCode(_0x4d3a5a,_0x5868a2){_0x5868a2=_0x5868a2||0xcc;return function(_0x92b1ff){if(_0x92b1ff){return _0x4d3a5a['sendStatus'](_0x5868a2);}return _0x4d3a5a[_0x4590('0x14')](_0x5868a2)['end']();};}function respondWithResult(_0x38c8ee,_0x53d1d4){_0x53d1d4=_0x53d1d4||0xc8;return function(_0x4610af){if(_0x4610af){return _0x38c8ee['status'](_0x53d1d4)['json'](_0x4610af);}};}function respondWithFilteredResult(_0xee8657,_0x243791){return function(_0x346b88){if(_0x346b88){var _0x3a975f=_0x346b88[_0x4590('0x15')],_0x5de0aa=_0x243791[_0x4590('0x16')],_0x282a08=_0x243791[_0x4590('0x16')]+_0x243791[_0x4590('0x17')],_0x1e35f4;if(_0x282a08>=_0x3a975f){_0x282a08=_0x3a975f;_0x1e35f4=0xc8;}else{_0x1e35f4=0xce;}_0xee8657['status'](_0x1e35f4);return _0xee8657[_0x4590('0x18')](_0x4590('0x19'),_0x5de0aa+'-'+_0x282a08+'/'+_0x3a975f)[_0x4590('0x1a')](_0x346b88);}return null;};}function patchUpdates(_0x38aa9a){return function(_0x59b6f8){try{jsonpatch[_0x4590('0x1b')](_0x59b6f8,_0x38aa9a,!![]);}catch(_0x3bd8aa){return BPromise[_0x4590('0x1c')](_0x3bd8aa);}return _0x59b6f8[_0x4590('0x1d')]();};}function saveUpdates(_0x74cb11,_0x5dea6e){return function(_0xd0eed2){if(_0xd0eed2){return _0xd0eed2[_0x4590('0x1e')](_0x74cb11)[_0x4590('0x1f')](function(_0x13b02a){return _0x13b02a;});}return null;};}function removeEntity(_0x364e41,_0x3d195c){return function(_0x571f46){if(_0x571f46){return _0x571f46[_0x4590('0x20')]()[_0x4590('0x1f')](function(){_0x364e41[_0x4590('0x14')](0xcc)[_0x4590('0x21')]();});}};}function handleEntityNotFound(_0x153131,_0xad8f5c){return function(_0x170895){if(!_0x170895){_0x153131[_0x4590('0x22')](0x194);}return _0x170895;};}function handleError(_0x2b58f0,_0x3e6414){_0x3e6414=_0x3e6414||0x1f4;return function(_0xe51d09){logger[_0x4590('0x23')](_0xe51d09[_0x4590('0x24')]);if(_0xe51d09['name']){delete _0xe51d09[_0x4590('0x25')];}_0x2b58f0[_0x4590('0x14')](_0x3e6414)[_0x4590('0x26')](_0xe51d09);};}exports['index']=function(_0x4d797a,_0x2d4757){var _0x3f703b={},_0x59ebc3={},_0x66d0ab={'count':0x0,'rows':[]};var _0x27fea5=db[_0x4590('0x27')][_0x4590('0x28')];_0x59ebc3[_0x4590('0x29')]=_[_0x4590('0x2a')](_0x27fea5);var _0x5592e7={'dateStart':_0x4d797a['query'][_0x4590('0x2b')],'dateEnd':_0x4d797a[_0x4590('0x2c')][_0x4590('0x2d')]};delete _0x4d797a['query'][_0x4590('0x2b')];delete _0x4d797a['query'][_0x4590('0x2d')];_0x59ebc3[_0x4590('0x2c')]=_[_0x4590('0x2a')](_0x4d797a[_0x4590('0x2c')]);_0x59ebc3[_0x4590('0x2e')]=_['intersection'](_0x59ebc3['model'],_0x59ebc3[_0x4590('0x2c')]);_0x3f703b[_0x4590('0x2f')]=_[_0x4590('0x30')](_0x59ebc3[_0x4590('0x29')],qs[_0x4590('0x31')](_0x4d797a['query'][_0x4590('0x31')]));_0x3f703b[_0x4590('0x2f')]=_0x3f703b[_0x4590('0x2f')][_0x4590('0x32')]?_0x3f703b['attributes']:_0x59ebc3[_0x4590('0x29')];if(!_0x4d797a[_0x4590('0x2c')]['hasOwnProperty'](_0x4590('0x33'))){_0x3f703b[_0x4590('0x17')]=qs['limit'](_0x4d797a['query']['limit']);_0x3f703b['offset']=qs['offset'](_0x4d797a['query'][_0x4590('0x16')]);}_0x3f703b[_0x4590('0x34')]=qs[_0x4590('0x35')](_0x4d797a['query'][_0x4590('0x35')]);_0x3f703b['where']=qs[_0x4590('0x2e')](_['pick'](_0x4d797a[_0x4590('0x2c')],_0x59ebc3['filters']));if(_0x5592e7[_0x4590('0x2b')]){if(_0x5592e7['dateEnd']){_0x5592e7['dateEnd']=moment(_0x5592e7['dateEnd'])[_0x4590('0x36')](0x1,_0x4590('0x37'));}else{_0x5592e7[_0x4590('0x2d')]=moment(_0x5592e7[_0x4590('0x2b')])[_0x4590('0x36')](0x1,'day');}_[_0x4590('0x38')](_0x3f703b[_0x4590('0x39')],{'createdAt':{'$gte':_0x5592e7[_0x4590('0x2b')],'$lte':_0x5592e7[_0x4590('0x2d')]}});}if(_0x4d797a[_0x4590('0x2c')]['filter']){_0x3f703b[_0x4590('0x39')]=_['merge'](_0x3f703b[_0x4590('0x39')],{'$or':_[_0x4590('0x3a')](_0x3f703b[_0x4590('0x2f')],function(_0x482c45){var _0x2b97a3={};_0x2b97a3[_0x482c45]={'$like':'%'+_0x4d797a[_0x4590('0x2c')]['filter']+'%'};return _0x2b97a3;})});}_0x3f703b=_[_0x4590('0x38')]({},_0x3f703b,_0x4d797a['options']);var _0x2b2a39={'where':_0x3f703b[_0x4590('0x39')]};return db['JscriptyAnswerReport']['count'](_0x2b2a39)[_0x4590('0x1f')](function(_0x3f3bc7){_0x66d0ab['count']=_0x3f3bc7;if(_0x4d797a[_0x4590('0x2c')]['includeAll']){_0x3f703b[_0x4590('0x3b')]=[{'all':!![]}];}return db[_0x4590('0x27')][_0x4590('0x3c')](_0x3f703b);})['then'](function(_0x342aba){_0x66d0ab['rows']=_0x342aba;return _0x66d0ab;})[_0x4590('0x1f')](respondWithFilteredResult(_0x2d4757,_0x3f703b))['catch'](handleError(_0x2d4757,null));};exports['show']=function(_0x554903,_0x407eb5){var _0x36df4b={'raw':!![],'where':{'id':_0x554903[_0x4590('0x3d')]['id']}},_0x272667={};_0x272667[_0x4590('0x29')]=_['keys'](db[_0x4590('0x27')][_0x4590('0x28')]);_0x272667[_0x4590('0x2c')]=_[_0x4590('0x2a')](_0x554903[_0x4590('0x2c')]);_0x272667['filters']=_[_0x4590('0x30')](_0x272667[_0x4590('0x29')],_0x272667[_0x4590('0x2c')]);_0x36df4b[_0x4590('0x2f')]=_[_0x4590('0x30')](_0x272667[_0x4590('0x29')],qs['fields'](_0x554903[_0x4590('0x2c')][_0x4590('0x31')]));_0x36df4b[_0x4590('0x2f')]=_0x36df4b['attributes'][_0x4590('0x32')]?_0x36df4b['attributes']:_0x272667['model'];if(_0x554903[_0x4590('0x2c')]['includeAll']){_0x36df4b[_0x4590('0x3b')]=[{'all':!![]}];}_0x36df4b=_[_0x4590('0x38')]({},_0x36df4b,_0x554903[_0x4590('0x3e')]);return db[_0x4590('0x27')][_0x4590('0x3f')](_0x36df4b)[_0x4590('0x1f')](handleEntityNotFound(_0x407eb5,null))['then'](respondWithResult(_0x407eb5,null))['catch'](handleError(_0x407eb5,null));};exports[_0x4590('0x40')]=function(_0x41add9,_0x55be7d){return db[_0x4590('0x27')][_0x4590('0x40')](_0x41add9[_0x4590('0x41')],{})[_0x4590('0x1f')](respondWithResult(_0x55be7d,0xc9))[_0x4590('0x42')](handleError(_0x55be7d,null));};exports[_0x4590('0x1e')]=function(_0x1c8a24,_0x605f87){if(_0x1c8a24[_0x4590('0x41')]['id']){delete _0x1c8a24[_0x4590('0x41')]['id'];}return db['JscriptyAnswerReport']['find']({'where':{'id':_0x1c8a24['params']['id']}})[_0x4590('0x1f')](handleEntityNotFound(_0x605f87,null))[_0x4590('0x1f')](saveUpdates(_0x1c8a24[_0x4590('0x41')],null))[_0x4590('0x1f')](respondWithResult(_0x605f87,null))[_0x4590('0x42')](handleError(_0x605f87,null));};exports[_0x4590('0x20')]=function(_0x33be7c,_0x5d88e9){return db['JscriptyAnswerReport'][_0x4590('0x3f')]({'where':{'id':_0x33be7c['params']['id']}})['then'](handleEntityNotFound(_0x5d88e9,null))[_0x4590('0x1f')](removeEntity(_0x5d88e9,null))['catch'](handleError(_0x5d88e9,null));};exports[_0x4590('0x43')]=function(_0x5b5a27,_0x46f076){return db[_0x4590('0x27')][_0x4590('0x43')]()['then'](respondWithResult(_0x46f076,null))[_0x4590('0x42')](handleError(_0x46f076,null));};
\ No newline at end of file
+var _0xe596=['moment','bluebird','mustache','util','path','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','Content-Range','apply','save','update','destroy','then','error','stack','name','index','model','keys','dateStart','dateEnd','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','day','add','merge','where','map','filter','count','includeAll','include','JscriptyAnswerReport','findAll','catch','rawAttributes','options','find','create','body','params','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x1c4409,_0x3b2e8f){var _0x356d8f=function(_0xae43bf){while(--_0xae43bf){_0x1c4409['push'](_0x1c4409['shift']());}};_0x356d8f(++_0x3b2e8f);}(_0xe596,0x1b1));var _0x6e59=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0xe596[_0x57b54c];return _0x59cc19;};'use strict';var pdf=require(_0x6e59('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6e59('0x1'));var zipdir=require(_0x6e59('0x2'));var jsonpatch=require(_0x6e59('0x3'));var rp=require(_0x6e59('0x4'));var moment=require(_0x6e59('0x5'));var BPromise=require(_0x6e59('0x6'));var Mustache=require(_0x6e59('0x7'));var util=require(_0x6e59('0x8'));var path=require(_0x6e59('0x9'));var sox=require('sox');var csv=require(_0x6e59('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6e59('0xb'));var squel=require(_0x6e59('0xc'));var crypto=require('crypto');var jsforce=require(_0x6e59('0xd'));var deskjs=require(_0x6e59('0xe'));var toCsv=require(_0x6e59('0xa'));var querystring=require(_0x6e59('0xf'));var Papa=require(_0x6e59('0x10'));var Redis=require(_0x6e59('0x11'));var qs=require(_0x6e59('0x12'));var logger=require(_0x6e59('0x13'))(_0x6e59('0x14'));var utils=require('../../config/utils');var config=require(_0x6e59('0x15'));var db=require(_0x6e59('0x16'))['db'];function respondWithStatusCode(_0x473faf,_0x1b266d){_0x1b266d=_0x1b266d||0xcc;return function(_0x3b5664){if(_0x3b5664){return _0x473faf[_0x6e59('0x17')](_0x1b266d);}return _0x473faf[_0x6e59('0x18')](_0x1b266d)[_0x6e59('0x19')]();};}function respondWithResult(_0x447be8,_0x346664){_0x346664=_0x346664||0xc8;return function(_0x7fe298){if(_0x7fe298){return _0x447be8[_0x6e59('0x18')](_0x346664)[_0x6e59('0x1a')](_0x7fe298);}};}function respondWithFilteredResult(_0x1854d,_0x1aab95){return function(_0x2b8d84){if(_0x2b8d84){var _0x4444e2=_0x2b8d84['count'],_0x136b10=_0x1aab95['offset'],_0x38493e=_0x1aab95[_0x6e59('0x1b')]+_0x1aab95['limit'],_0x28980b;if(_0x38493e>=_0x4444e2){_0x38493e=_0x4444e2;_0x28980b=0xc8;}else{_0x28980b=0xce;}_0x1854d['status'](_0x28980b);return _0x1854d[_0x6e59('0x1c')](_0x6e59('0x1d'),_0x136b10+'-'+_0x38493e+'/'+_0x4444e2)[_0x6e59('0x1a')](_0x2b8d84);}return null;};}function patchUpdates(_0x209880){return function(_0x5a7fcb){try{jsonpatch[_0x6e59('0x1e')](_0x5a7fcb,_0x209880,!![]);}catch(_0x5e01b3){return BPromise['reject'](_0x5e01b3);}return _0x5a7fcb[_0x6e59('0x1f')]();};}function saveUpdates(_0x10d6e2,_0xdbc792){return function(_0x4dae4d){if(_0x4dae4d){return _0x4dae4d[_0x6e59('0x20')](_0x10d6e2)['then'](function(_0x3b05fb){return _0x3b05fb;});}return null;};}function removeEntity(_0x56e6ae,_0x3ab5c4){return function(_0x23b0a2){if(_0x23b0a2){return _0x23b0a2[_0x6e59('0x21')]()[_0x6e59('0x22')](function(){_0x56e6ae[_0x6e59('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x50c1c1,_0x1a208d){return function(_0x548cc8){if(!_0x548cc8){_0x50c1c1[_0x6e59('0x17')](0x194);}return _0x548cc8;};}function handleError(_0x173a83,_0x39efbe){_0x39efbe=_0x39efbe||0x1f4;return function(_0x42ca07){logger[_0x6e59('0x23')](_0x42ca07[_0x6e59('0x24')]);if(_0x42ca07[_0x6e59('0x25')]){delete _0x42ca07[_0x6e59('0x25')];}_0x173a83[_0x6e59('0x18')](_0x39efbe)['send'](_0x42ca07);};}exports[_0x6e59('0x26')]=function(_0x1f3e6c,_0x4204b2){var _0x428a51={},_0x32348d={},_0x300f5a={'count':0x0,'rows':[]};var _0x422548=db['JscriptyAnswerReport']['rawAttributes'];_0x32348d[_0x6e59('0x27')]=_[_0x6e59('0x28')](_0x422548);var _0x1feb0f={'dateStart':_0x1f3e6c['query'][_0x6e59('0x29')],'dateEnd':_0x1f3e6c['query'][_0x6e59('0x2a')]};delete _0x1f3e6c[_0x6e59('0x2b')]['dateStart'];delete _0x1f3e6c[_0x6e59('0x2b')][_0x6e59('0x2a')];_0x32348d[_0x6e59('0x2b')]=_[_0x6e59('0x28')](_0x1f3e6c[_0x6e59('0x2b')]);_0x32348d[_0x6e59('0x2c')]=_[_0x6e59('0x2d')](_0x32348d[_0x6e59('0x27')],_0x32348d[_0x6e59('0x2b')]);_0x428a51[_0x6e59('0x2e')]=_[_0x6e59('0x2d')](_0x32348d[_0x6e59('0x27')],qs[_0x6e59('0x2f')](_0x1f3e6c[_0x6e59('0x2b')][_0x6e59('0x2f')]));_0x428a51[_0x6e59('0x2e')]=_0x428a51[_0x6e59('0x2e')][_0x6e59('0x30')]?_0x428a51[_0x6e59('0x2e')]:_0x32348d['model'];if(!_0x1f3e6c[_0x6e59('0x2b')][_0x6e59('0x31')](_0x6e59('0x32'))){_0x428a51[_0x6e59('0x33')]=qs[_0x6e59('0x33')](_0x1f3e6c[_0x6e59('0x2b')][_0x6e59('0x33')]);_0x428a51[_0x6e59('0x1b')]=qs['offset'](_0x1f3e6c['query'][_0x6e59('0x1b')]);}_0x428a51[_0x6e59('0x34')]=qs[_0x6e59('0x35')](_0x1f3e6c[_0x6e59('0x2b')][_0x6e59('0x35')]);_0x428a51['where']=qs[_0x6e59('0x2c')](_['pick'](_0x1f3e6c[_0x6e59('0x2b')],_0x32348d[_0x6e59('0x2c')]));if(_0x1feb0f[_0x6e59('0x29')]){if(_0x1feb0f['dateEnd']){_0x1feb0f[_0x6e59('0x2a')]=moment(_0x1feb0f['dateEnd'])['add'](0x1,_0x6e59('0x36'));}else{_0x1feb0f['dateEnd']=moment(_0x1feb0f['dateStart'])[_0x6e59('0x37')](0x1,_0x6e59('0x36'));}_[_0x6e59('0x38')](_0x428a51['where'],{'createdAt':{'$gte':_0x1feb0f[_0x6e59('0x29')],'$lte':_0x1feb0f[_0x6e59('0x2a')]}});}if(_0x1f3e6c[_0x6e59('0x2b')]['filter']){_0x428a51[_0x6e59('0x39')]=_['merge'](_0x428a51['where'],{'$or':_[_0x6e59('0x3a')](_0x428a51['attributes'],function(_0x5b86e1){var _0xbce8={};_0xbce8[_0x5b86e1]={'$like':'%'+_0x1f3e6c[_0x6e59('0x2b')][_0x6e59('0x3b')]+'%'};return _0xbce8;})});}_0x428a51=_['merge']({},_0x428a51,_0x1f3e6c['options']);var _0x1fe0c5={'where':_0x428a51[_0x6e59('0x39')]};return db['JscriptyAnswerReport'][_0x6e59('0x3c')](_0x1fe0c5)['then'](function(_0xa5783c){_0x300f5a[_0x6e59('0x3c')]=_0xa5783c;if(_0x1f3e6c['query'][_0x6e59('0x3d')]){_0x428a51[_0x6e59('0x3e')]=[{'all':!![]}];}return db[_0x6e59('0x3f')][_0x6e59('0x40')](_0x428a51);})[_0x6e59('0x22')](function(_0x9599fd){_0x300f5a['rows']=_0x9599fd;return _0x300f5a;})[_0x6e59('0x22')](respondWithFilteredResult(_0x4204b2,_0x428a51))[_0x6e59('0x41')](handleError(_0x4204b2,null));};exports['show']=function(_0x5394ec,_0x263dcd){var _0x48b5e0={'raw':!![],'where':{'id':_0x5394ec['params']['id']}},_0x1ad99f={};_0x1ad99f[_0x6e59('0x27')]=_[_0x6e59('0x28')](db[_0x6e59('0x3f')][_0x6e59('0x42')]);_0x1ad99f[_0x6e59('0x2b')]=_['keys'](_0x5394ec[_0x6e59('0x2b')]);_0x1ad99f[_0x6e59('0x2c')]=_[_0x6e59('0x2d')](_0x1ad99f['model'],_0x1ad99f[_0x6e59('0x2b')]);_0x48b5e0[_0x6e59('0x2e')]=_[_0x6e59('0x2d')](_0x1ad99f[_0x6e59('0x27')],qs[_0x6e59('0x2f')](_0x5394ec['query']['fields']));_0x48b5e0[_0x6e59('0x2e')]=_0x48b5e0[_0x6e59('0x2e')]['length']?_0x48b5e0[_0x6e59('0x2e')]:_0x1ad99f[_0x6e59('0x27')];if(_0x5394ec[_0x6e59('0x2b')][_0x6e59('0x3d')]){_0x48b5e0[_0x6e59('0x3e')]=[{'all':!![]}];}_0x48b5e0=_[_0x6e59('0x38')]({},_0x48b5e0,_0x5394ec[_0x6e59('0x43')]);return db['JscriptyAnswerReport'][_0x6e59('0x44')](_0x48b5e0)[_0x6e59('0x22')](handleEntityNotFound(_0x263dcd,null))[_0x6e59('0x22')](respondWithResult(_0x263dcd,null))['catch'](handleError(_0x263dcd,null));};exports[_0x6e59('0x45')]=function(_0x150dbd,_0x264867){return db['JscriptyAnswerReport'][_0x6e59('0x45')](_0x150dbd[_0x6e59('0x46')],{})[_0x6e59('0x22')](respondWithResult(_0x264867,0xc9))[_0x6e59('0x41')](handleError(_0x264867,null));};exports[_0x6e59('0x20')]=function(_0x1afc64,_0x4a1cab){if(_0x1afc64['body']['id']){delete _0x1afc64[_0x6e59('0x46')]['id'];}return db[_0x6e59('0x3f')]['find']({'where':{'id':_0x1afc64[_0x6e59('0x47')]['id']}})[_0x6e59('0x22')](handleEntityNotFound(_0x4a1cab,null))[_0x6e59('0x22')](saveUpdates(_0x1afc64[_0x6e59('0x46')],null))[_0x6e59('0x22')](respondWithResult(_0x4a1cab,null))[_0x6e59('0x41')](handleError(_0x4a1cab,null));};exports[_0x6e59('0x21')]=function(_0xbe280c,_0x5a8915){return db[_0x6e59('0x3f')][_0x6e59('0x44')]({'where':{'id':_0xbe280c['params']['id']}})[_0x6e59('0x22')](handleEntityNotFound(_0x5a8915,null))[_0x6e59('0x22')](removeEntity(_0x5a8915,null))[_0x6e59('0x41')](handleError(_0x5a8915,null));};exports[_0x6e59('0x48')]=function(_0x233dff,_0x2e12b7){return db[_0x6e59('0x3f')][_0x6e59('0x48')]()[_0x6e59('0x22')](respondWithResult(_0x2e12b7,null))['catch'](handleError(_0x2e12b7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe157=['exports','define','report_jscripty_answers','util','../../config/logger','api','moment','bluebird','request-promise','./jscriptyAnswerReport.attributes'];(function(_0x57966a,_0x477964){var _0x191765=function(_0x106a01){while(--_0x106a01){_0x57966a['push'](_0x57966a['shift']());}};_0x191765(++_0x477964);}(_0xe157,0x1cf));var _0x7e15=function(_0x4d58b6,_0x634ae3){_0x4d58b6=_0x4d58b6-0x0;var _0x4bd55f=_0xe157[_0x4d58b6];return _0x4bd55f;};'use strict';var _=require('lodash');var util=require(_0x7e15('0x0'));var logger=require(_0x7e15('0x1'))(_0x7e15('0x2'));var moment=require(_0x7e15('0x3'));var BPromise=require(_0x7e15('0x4'));var rp=require(_0x7e15('0x5'));var attributes=require(_0x7e15('0x6'));module[_0x7e15('0x7')]=function(_0x580123,_0x196a1e){return _0x580123[_0x7e15('0x8')]('JscriptyAnswerReport',attributes,{'tableName':_0x7e15('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf24a=['request-promise','./jscriptyAnswerReport.attributes','exports','define','JscriptyAnswerReport','report_jscripty_answers','lodash','../../config/logger','api','moment','bluebird'];(function(_0x57a2a6,_0x3d21b2){var _0x74724a=function(_0x5918cc){while(--_0x5918cc){_0x57a2a6['push'](_0x57a2a6['shift']());}};_0x74724a(++_0x3d21b2);}(_0xf24a,0x12f));var _0xaf24=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf24a[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xaf24('0x0'));var util=require('util');var logger=require(_0xaf24('0x1'))(_0xaf24('0x2'));var moment=require(_0xaf24('0x3'));var BPromise=require(_0xaf24('0x4'));var rp=require(_0xaf24('0x5'));var attributes=require(_0xaf24('0x6'));module[_0xaf24('0x7')]=function(_0x450b09,_0x15cd99){return _0x450b09[_0xaf24('0x8')](_0xaf24('0x9'),attributes,{'tableName':_0xaf24('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60bc=['message','result','catch','lodash','util','bluebird','../../mysqldb','../../config/logger','../../config/environment','client','http','request','then','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x247d01,_0x1851fb){var _0xf18e8=function(_0x35d923){while(--_0x35d923){_0x247d01['push'](_0x247d01['shift']());}};_0xf18e8(++_0x1851fb);}(_0x60bc,0x157));var _0xc60b=function(_0x4fc9c1,_0x570e05){_0x4fc9c1=_0x4fc9c1-0x0;var _0x15d7a1=_0x60bc[_0x4fc9c1];return _0x15d7a1;};'use strict';var _=require(_0xc60b('0x0'));var util=require(_0xc60b('0x1'));var moment=require('moment');var BPromise=require(_0xc60b('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0xc60b('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xc60b('0x4'))('rpc');var config=require(_0xc60b('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xc60b('0x6')][_0xc60b('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x87e2ca,_0x41cd0f,_0x3c2b){return new BPromise(function(_0x2922e4,_0x2fb69e){return client[_0xc60b('0x8')](_0x87e2ca,_0x3c2b)[_0xc60b('0x9')](function(_0x159f00){logger[_0xc60b('0xa')](_0xc60b('0xb'),_0x41cd0f,_0xc60b('0xc'));logger[_0xc60b('0xd')](_0xc60b('0xe'),_0x41cd0f,'request\x20sent',JSON[_0xc60b('0xf')](_0x159f00));if(_0x159f00[_0xc60b('0x10')]){if(_0x159f00[_0xc60b('0x10')]['code']===0x1f4){logger[_0xc60b('0x10')](_0xc60b('0xb'),_0x41cd0f,_0x159f00[_0xc60b('0x10')][_0xc60b('0x11')]);return _0x2fb69e(_0x159f00[_0xc60b('0x10')]['message']);}logger['error'](_0xc60b('0xb'),_0x41cd0f,_0x159f00[_0xc60b('0x10')]['message']);return _0x2922e4(_0x159f00[_0xc60b('0x10')][_0xc60b('0x11')]);}else{logger[_0xc60b('0xa')](_0xc60b('0xb'),_0x41cd0f,'request\x20sent');_0x2922e4(_0x159f00[_0xc60b('0x12')]['message']);}})[_0xc60b('0x13')](function(_0x26575f){logger[_0xc60b('0x10')](_0xc60b('0xb'),_0x41cd0f,_0x26575f);_0x2fb69e(_0x26575f);});});}
\ No newline at end of file
+var _0x1175=['debug','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent'];(function(_0x51d106,_0x2ac8f5){var _0x5db014=function(_0x447769){while(--_0x447769){_0x51d106['push'](_0x51d106['shift']());}};_0x5db014(++_0x2ac8f5);}(_0x1175,0x134));var _0x5117=function(_0x2c8ff0,_0x28cc97){_0x2c8ff0=_0x2c8ff0-0x0;var _0x35cb0a=_0x1175[_0x2c8ff0];return _0x35cb0a;};'use strict';var _=require(_0x5117('0x0'));var util=require(_0x5117('0x1'));var moment=require(_0x5117('0x2'));var BPromise=require(_0x5117('0x3'));var rs=require(_0x5117('0x4'));var fs=require('fs');var Redis=require(_0x5117('0x5'));var db=require(_0x5117('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x5117('0x7'))('rpc');var config=require(_0x5117('0x8'));var jayson=require(_0x5117('0x9'));var client=jayson[_0x5117('0xa')][_0x5117('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2f8291,_0x38d16a,_0x549579){return new BPromise(function(_0x47c09b,_0x21a41c){return client[_0x5117('0xc')](_0x2f8291,_0x549579)[_0x5117('0xd')](function(_0x5e7db9){logger[_0x5117('0xe')](_0x5117('0xf'),_0x38d16a,_0x5117('0x10'));logger[_0x5117('0x11')](_0x5117('0x12'),_0x38d16a,_0x5117('0x10'),JSON[_0x5117('0x13')](_0x5e7db9));if(_0x5e7db9['error']){if(_0x5e7db9[_0x5117('0x14')][_0x5117('0x15')]===0x1f4){logger[_0x5117('0x14')](_0x5117('0xf'),_0x38d16a,_0x5e7db9[_0x5117('0x14')][_0x5117('0x16')]);return _0x21a41c(_0x5e7db9['error'][_0x5117('0x16')]);}logger[_0x5117('0x14')](_0x5117('0xf'),_0x38d16a,_0x5e7db9[_0x5117('0x14')]['message']);return _0x47c09b(_0x5e7db9['error'][_0x5117('0x16')]);}else{logger[_0x5117('0xe')](_0x5117('0xf'),_0x38d16a,_0x5117('0x10'));_0x47c09b(_0x5e7db9[_0x5117('0x17')][_0x5117('0x16')]);}})[_0x5117('0x18')](function(_0x1dcbb5){logger[_0x5117('0x14')](_0x5117('0xf'),_0x38d16a,_0x1dcbb5);_0x21a41c(_0x1dcbb5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7f6=['update','delete','destroy','exports','multer','util','Router','../../components/interaction/service','../../config/environment','isAuthenticated','get','/:id','show','getSessions','/:id/answers','/:id/summary','30s','getSummary','post','create','clone'];(function(_0x3b9096,_0x565455){var _0x215ab8=function(_0xbea245){while(--_0xbea245){_0x3b9096['push'](_0x3b9096['shift']());}};_0x215ab8(++_0x565455);}(_0xd7f6,0x154));var _0x6d7f=function(_0x164688,_0x144ae8){_0x164688=_0x164688-0x0;var _0x59032d=_0xd7f6[_0x164688];return _0x59032d;};'use strict';var multer=require(_0x6d7f('0x0'));var util=require(_0x6d7f('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x6d7f('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x6d7f('0x3'));var config=require(_0x6d7f('0x4'));var controller=require('./jscriptyProject.controller');router['get']('/',auth[_0x6d7f('0x5')](),controller['index']);router[_0x6d7f('0x6')](_0x6d7f('0x7'),auth[_0x6d7f('0x5')](),controller[_0x6d7f('0x8')]);router[_0x6d7f('0x6')]('/:id/sessions',auth[_0x6d7f('0x5')](),controller[_0x6d7f('0x9')]);router[_0x6d7f('0x6')](_0x6d7f('0xa'),auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x6d7f('0xb'),auth[_0x6d7f('0x5')](),timeout(_0x6d7f('0xc')),controller[_0x6d7f('0xd')]);router[_0x6d7f('0xe')]('/',auth['isAuthenticated'](),controller[_0x6d7f('0xf')]);router[_0x6d7f('0xe')]('/:id/clone',auth[_0x6d7f('0x5')](),controller[_0x6d7f('0x10')]);router['put'](_0x6d7f('0x7'),auth[_0x6d7f('0x5')](),controller[_0x6d7f('0x11')]);router[_0x6d7f('0x12')](_0x6d7f('0x7'),auth[_0x6d7f('0x5')](),controller[_0x6d7f('0x13')]);module[_0x6d7f('0x14')]=router;
\ No newline at end of file
+var _0xb68a=['multer','path','express','Router','../../components/auth/service','../../config/environment','get','index','/:id','show','/:id/sessions','isAuthenticated','getSessions','getAnswers','30s','getSummary','post','create','/:id/clone','clone','put'];(function(_0x24fcea,_0x5b3a25){var _0x5d5b6e=function(_0x2a8162){while(--_0x2a8162){_0x24fcea['push'](_0x24fcea['shift']());}};_0x5d5b6e(++_0x5b3a25);}(_0xb68a,0x93));var _0xab68=function(_0x4a4bc9,_0xd8cbdb){_0x4a4bc9=_0x4a4bc9-0x0;var _0x3589ca=_0xb68a[_0x4a4bc9];return _0x3589ca;};'use strict';var multer=require(_0xab68('0x0'));var util=require('util');var path=require(_0xab68('0x1'));var timeout=require('connect-timeout');var express=require(_0xab68('0x2'));var router=express[_0xab68('0x3')]();var auth=require(_0xab68('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xab68('0x5'));var controller=require('./jscriptyProject.controller');router[_0xab68('0x6')]('/',auth['isAuthenticated'](),controller[_0xab68('0x7')]);router[_0xab68('0x6')](_0xab68('0x8'),auth['isAuthenticated'](),controller[_0xab68('0x9')]);router['get'](_0xab68('0xa'),auth[_0xab68('0xb')](),controller[_0xab68('0xc')]);router[_0xab68('0x6')]('/:id/answers',auth['isAuthenticated'](),controller[_0xab68('0xd')]);router[_0xab68('0x6')]('/:id/summary',auth['isAuthenticated'](),timeout(_0xab68('0xe')),controller[_0xab68('0xf')]);router[_0xab68('0x10')]('/',auth[_0xab68('0xb')](),controller[_0xab68('0x11')]);router[_0xab68('0x10')](_0xab68('0x12'),auth[_0xab68('0xb')](),controller[_0xab68('0x13')]);router[_0xab68('0x14')](_0xab68('0x8'),auth[_0xab68('0xb')](),controller['update']);router['delete'](_0xab68('0x8'),auth[_0xab68('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0cd6=['TEXT','isObjectLike','setDataValue','formData','isString','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','description','sequelize','lodash','util','exports','STRING','name'];(function(_0x13be3d,_0x591258){var _0x3a642d=function(_0x3834a3){while(--_0x3834a3){_0x13be3d['push'](_0x13be3d['shift']());}};_0x3a642d(++_0x591258);}(_0x0cd6,0x117));var _0x60cd=function(_0x2118ad,_0xe8e3fd){_0x2118ad=_0x2118ad-0x0;var _0x4b5715=_0x0cd6[_0x2118ad];return _0x4b5715;};'use strict';var Sequelize=require(_0x60cd('0x0'));var _=require(_0x60cd('0x1'));var util=require(_0x60cd('0x2'));module[_0x60cd('0x3')]={'name':{'type':Sequelize[_0x60cd('0x4')],'unique':_0x60cd('0x5')},'description':{'type':Sequelize[_0x60cd('0x4')]},'formData':{'type':Sequelize[_0x60cd('0x6')]('long'),'set':function(_0x3a2656){if(_[_0x60cd('0x7')](_0x3a2656)){this[_0x60cd('0x8')](_0x60cd('0x9'),JSON['stringify'](_0x3a2656));}else if(_[_0x60cd('0xa')](_0x3a2656)){this[_0x60cd('0x8')](_0x60cd('0x9'),_0x3a2656);}else{this[_0x60cd('0x8')](_0x60cd('0x9'),util[_0x60cd('0xb')](_0x60cd('0xc'),this[_0x60cd('0xd')](_0x60cd('0x5'))||'',this[_0x60cd('0xd')](_0x60cd('0xe'))||''));}}},'enableUncompleteSave':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xb814=['util','exports','STRING','name','TEXT','isObjectLike','setDataValue','formData','stringify','isString','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','sequelize','lodash'];(function(_0x2e0854,_0x52544a){var _0x4d0ff9=function(_0x3647fb){while(--_0x3647fb){_0x2e0854['push'](_0x2e0854['shift']());}};_0x4d0ff9(++_0x52544a);}(_0xb814,0x148));var _0x4b81=function(_0x587437,_0x450dd3){_0x587437=_0x587437-0x0;var _0x185347=_0xb814[_0x587437];return _0x185347;};'use strict';var Sequelize=require(_0x4b81('0x0'));var _=require(_0x4b81('0x1'));var util=require(_0x4b81('0x2'));module[_0x4b81('0x3')]={'name':{'type':Sequelize[_0x4b81('0x4')],'unique':_0x4b81('0x5')},'description':{'type':Sequelize[_0x4b81('0x4')]},'formData':{'type':Sequelize[_0x4b81('0x6')]('long'),'set':function(_0x4fcf61){if(_[_0x4b81('0x7')](_0x4fcf61)){this[_0x4b81('0x8')](_0x4b81('0x9'),JSON[_0x4b81('0xa')](_0x4fcf61));}else if(_[_0x4b81('0xb')](_0x4fcf61)){this[_0x4b81('0x8')](_0x4b81('0x9'),_0x4fcf61);}else{this[_0x4b81('0x8')]('formData',util[_0x4b81('0xc')](_0x4b81('0xd'),this[_0x4b81('0xe')](_0x4b81('0x5'))||'',this[_0x4b81('0xe')]('description')||''));}}},'enableUncompleteSave':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf012=['intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','add','day','merge','filter','map','options','rows','catch','show','params','include','find','create','body','clone','includeAll','get','omit','createdAt','findOne','JscriptySessionReport','ProjectId','findAll','getAnswers','JscriptyAnswerReport','number','fromCharCode','toString','indexOf','replace','getSummary','JscriptyQuestionReport','-createdAt','questionId','question','starttime','format','SessionId','push','isEmpty','now','writeFileSync','/tmp/Jscripty_Project_%d_Summary_%s.csv','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-type','text/csv','download','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','json','count','offset','set','Content-Range','apply','reject','save','then','destroy','status','stack','name','index','JscriptyProject','rawAttributes','model','keys','query','dateStart','dateEnd','filters'];(function(_0x5ca28a,_0x13c20b){var _0x23aae1=function(_0x1ee165){while(--_0x1ee165){_0x5ca28a['push'](_0x5ca28a['shift']());}};_0x23aae1(++_0x13c20b);}(_0xf012,0x17b));var _0x2f01=function(_0x2a43b9,_0x2aa7ea){_0x2a43b9=_0x2a43b9-0x0;var _0x3b6c90=_0xf012[_0x2a43b9];return _0x3b6c90;};'use strict';var pdf=require(_0x2f01('0x0'));var emlformat=require(_0x2f01('0x1'));var rimraf=require(_0x2f01('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2f01('0x3'));var rp=require(_0x2f01('0x4'));var moment=require(_0x2f01('0x5'));var BPromise=require(_0x2f01('0x6'));var Mustache=require(_0x2f01('0x7'));var util=require('util');var path=require(_0x2f01('0x8'));var sox=require(_0x2f01('0x9'));var csv=require(_0x2f01('0xa'));var ejs=require(_0x2f01('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x2f01('0xc'));var jsforce=require(_0x2f01('0xd'));var deskjs=require(_0x2f01('0xe'));var toCsv=require(_0x2f01('0xa'));var querystring=require(_0x2f01('0xf'));var Papa=require(_0x2f01('0x10'));var qs=require(_0x2f01('0x11'));var logger=require(_0x2f01('0x12'))('api');var utils=require(_0x2f01('0x13'));var config=require(_0x2f01('0x14'));var db=require(_0x2f01('0x15'))['db'];function respondWithStatusCode(_0x5612c5,_0x429aad){_0x429aad=_0x429aad||0xcc;return function(_0x3d5439){if(_0x3d5439){return _0x5612c5['sendStatus'](_0x429aad);}return _0x5612c5['status'](_0x429aad)[_0x2f01('0x16')]();};}function respondWithResult(_0x1c52f6,_0x29fa3a){_0x29fa3a=_0x29fa3a||0xc8;return function(_0x588cf5){if(_0x588cf5){return _0x1c52f6['status'](_0x29fa3a)[_0x2f01('0x17')](_0x588cf5);}};}function respondWithFilteredResult(_0x2bfeae,_0x3e5d17){return function(_0x5bc62d){if(_0x5bc62d){var _0x198a34=_0x5bc62d[_0x2f01('0x18')],_0x1df12c=_0x3e5d17[_0x2f01('0x19')],_0x13af8c=_0x3e5d17[_0x2f01('0x19')]+_0x3e5d17['limit'],_0x14d7fa;if(_0x13af8c>=_0x198a34){_0x13af8c=_0x198a34;_0x14d7fa=0xc8;}else{_0x14d7fa=0xce;}_0x2bfeae['status'](_0x14d7fa);return _0x2bfeae[_0x2f01('0x1a')](_0x2f01('0x1b'),_0x1df12c+'-'+_0x13af8c+'/'+_0x198a34)['json'](_0x5bc62d);}return null;};}function patchUpdates(_0x160726){return function(_0x5d8e1e){try{jsonpatch[_0x2f01('0x1c')](_0x5d8e1e,_0x160726,!![]);}catch(_0x5a06f3){return BPromise[_0x2f01('0x1d')](_0x5a06f3);}return _0x5d8e1e[_0x2f01('0x1e')]();};}function saveUpdates(_0x14fc7b,_0x44c81f){return function(_0x161b15){if(_0x161b15){return _0x161b15['update'](_0x14fc7b)[_0x2f01('0x1f')](function(_0xf7f9da){return _0xf7f9da;});}return null;};}function removeEntity(_0x2cf64e,_0x4f8d6d){return function(_0x8625bf){if(_0x8625bf){return _0x8625bf[_0x2f01('0x20')]()[_0x2f01('0x1f')](function(){_0x2cf64e[_0x2f01('0x21')](0xcc)[_0x2f01('0x16')]();});}};}function handleEntityNotFound(_0x120b62,_0x231008){return function(_0x51001c){if(!_0x51001c){_0x120b62['sendStatus'](0x194);}return _0x51001c;};}function handleError(_0xcebf24,_0x507451){_0x507451=_0x507451||0x1f4;return function(_0xcd7bde){logger['error'](_0xcd7bde[_0x2f01('0x22')]);if(_0xcd7bde[_0x2f01('0x23')]){delete _0xcd7bde[_0x2f01('0x23')];}_0xcebf24['status'](_0x507451)['send'](_0xcd7bde);};}exports[_0x2f01('0x24')]=function(_0x47132c,_0x284f20){var _0x4dadcc={},_0x366735={},_0x56e877={'count':0x0,'rows':[]};var _0x222cf9=db[_0x2f01('0x25')][_0x2f01('0x26')];_0x366735[_0x2f01('0x27')]=_[_0x2f01('0x28')](_0x222cf9);var _0x551b64={'dateStart':_0x47132c[_0x2f01('0x29')][_0x2f01('0x2a')],'dateEnd':_0x47132c[_0x2f01('0x29')][_0x2f01('0x2b')]};delete _0x47132c[_0x2f01('0x29')][_0x2f01('0x2a')];delete _0x47132c[_0x2f01('0x29')][_0x2f01('0x2b')];_0x366735[_0x2f01('0x29')]=_[_0x2f01('0x28')](_0x47132c['query']);_0x366735[_0x2f01('0x2c')]=_['intersection'](_0x366735[_0x2f01('0x27')],_0x366735[_0x2f01('0x29')]);_0x4dadcc['attributes']=_[_0x2f01('0x2d')](_0x366735[_0x2f01('0x27')],qs[_0x2f01('0x2e')](_0x47132c[_0x2f01('0x29')][_0x2f01('0x2e')]));_0x4dadcc[_0x2f01('0x2f')]=_0x4dadcc[_0x2f01('0x2f')][_0x2f01('0x30')]?_0x4dadcc[_0x2f01('0x2f')]:_0x366735[_0x2f01('0x27')];if(!_0x47132c[_0x2f01('0x29')][_0x2f01('0x31')](_0x2f01('0x32'))){_0x4dadcc[_0x2f01('0x33')]=qs[_0x2f01('0x33')](_0x47132c[_0x2f01('0x29')][_0x2f01('0x33')]);_0x4dadcc['offset']=qs[_0x2f01('0x19')](_0x47132c['query'][_0x2f01('0x19')]);}_0x4dadcc[_0x2f01('0x34')]=qs[_0x2f01('0x35')](_0x47132c['query'][_0x2f01('0x35')]);_0x4dadcc[_0x2f01('0x36')]=qs[_0x2f01('0x2c')](_[_0x2f01('0x37')](_0x47132c['query'],_0x366735[_0x2f01('0x2c')]));if(_0x551b64[_0x2f01('0x2a')]){if(_0x551b64[_0x2f01('0x2b')]){_0x551b64[_0x2f01('0x2b')]=moment(_0x551b64[_0x2f01('0x2b')])[_0x2f01('0x38')](0x1,_0x2f01('0x39'));}else{_0x551b64['dateEnd']=moment(_0x551b64[_0x2f01('0x2a')])[_0x2f01('0x38')](0x1,_0x2f01('0x39'));}_[_0x2f01('0x3a')](_0x4dadcc[_0x2f01('0x36')],{'createdAt':{'$gte':_0x551b64['dateStart'],'$lte':_0x551b64['dateEnd']}});}if(_0x47132c[_0x2f01('0x29')][_0x2f01('0x3b')]){_0x4dadcc['where']=_['merge'](_0x4dadcc['where'],{'$or':_[_0x2f01('0x3c')](_0x4dadcc[_0x2f01('0x2f')],function(_0x2b197b){var _0x5cee23={};_0x5cee23[_0x2b197b]={'$like':'%'+_0x47132c['query']['filter']+'%'};return _0x5cee23;})});}_0x4dadcc=_[_0x2f01('0x3a')]({},_0x4dadcc,_0x47132c[_0x2f01('0x3d')]);var _0x381e48={'where':_0x4dadcc[_0x2f01('0x36')]};return db['JscriptyProject']['count'](_0x381e48)[_0x2f01('0x1f')](function(_0x2a9e3a){_0x56e877[_0x2f01('0x18')]=_0x2a9e3a;if(_0x47132c[_0x2f01('0x29')]['includeAll']){_0x4dadcc['include']=[{'all':!![]}];}return db[_0x2f01('0x25')]['findAll'](_0x4dadcc);})[_0x2f01('0x1f')](function(_0x589c9a){_0x56e877[_0x2f01('0x3e')]=_0x589c9a;return _0x56e877;})['then'](respondWithFilteredResult(_0x284f20,_0x4dadcc))[_0x2f01('0x3f')](handleError(_0x284f20,null));};exports[_0x2f01('0x40')]=function(_0x3a3cf2,_0x1b8cd8){var _0x10ef89={'raw':![],'where':{'id':_0x3a3cf2[_0x2f01('0x41')]['id']}},_0x2131c4={};_0x2131c4['model']=_[_0x2f01('0x28')](db[_0x2f01('0x25')][_0x2f01('0x26')]);_0x2131c4['query']=_[_0x2f01('0x28')](_0x3a3cf2[_0x2f01('0x29')]);_0x2131c4[_0x2f01('0x2c')]=_[_0x2f01('0x2d')](_0x2131c4[_0x2f01('0x27')],_0x2131c4[_0x2f01('0x29')]);_0x10ef89[_0x2f01('0x2f')]=_[_0x2f01('0x2d')](_0x2131c4[_0x2f01('0x27')],qs[_0x2f01('0x2e')](_0x3a3cf2['query'][_0x2f01('0x2e')]));_0x10ef89['attributes']=_0x10ef89[_0x2f01('0x2f')][_0x2f01('0x30')]?_0x10ef89[_0x2f01('0x2f')]:_0x2131c4[_0x2f01('0x27')];if(_0x3a3cf2[_0x2f01('0x29')]['includeAll']){_0x10ef89[_0x2f01('0x42')]=[{'all':!![]}];}_0x10ef89=_[_0x2f01('0x3a')]({},_0x10ef89,_0x3a3cf2[_0x2f01('0x3d')]);return db[_0x2f01('0x25')][_0x2f01('0x43')](_0x10ef89)[_0x2f01('0x1f')](handleEntityNotFound(_0x1b8cd8,null))['then'](respondWithResult(_0x1b8cd8,null))[_0x2f01('0x3f')](handleError(_0x1b8cd8,null));};exports['create']=function(_0x376498,_0x1b1783){return db['JscriptyProject'][_0x2f01('0x44')](_0x376498[_0x2f01('0x45')],{})['then'](respondWithResult(_0x1b1783,0xc9))[_0x2f01('0x3f')](handleError(_0x1b1783,null));};exports[_0x2f01('0x46')]=function(_0x4a39b5,_0x48e52f){var _0x3b06ef={'raw':![],'where':{'id':_0x4a39b5[_0x2f01('0x41')]['id']}},_0x37eb5b={};_0x37eb5b[_0x2f01('0x27')]=_['keys'](db['JscriptyProject'][_0x2f01('0x26')]);_0x3b06ef['attributes']=_[_0x2f01('0x2d')](_0x37eb5b[_0x2f01('0x27')],qs[_0x2f01('0x2e')](_0x4a39b5[_0x2f01('0x29')][_0x2f01('0x2e')]));_0x3b06ef[_0x2f01('0x2f')]=_0x3b06ef[_0x2f01('0x2f')][_0x2f01('0x30')]?_0x3b06ef[_0x2f01('0x2f')]:_0x37eb5b[_0x2f01('0x27')];if(_0x4a39b5[_0x2f01('0x29')][_0x2f01('0x47')]){_0x3b06ef[_0x2f01('0x42')]=[{'all':!![]}];}_0x3b06ef=_[_0x2f01('0x3a')]({},_0x3b06ef,_0x4a39b5[_0x2f01('0x3d')]);return db[_0x2f01('0x25')][_0x2f01('0x43')](_0x3b06ef)[_0x2f01('0x1f')](handleEntityNotFound(_0x48e52f,null))[_0x2f01('0x1f')](function(_0x4d8efa){if(_0x4d8efa){var _0x54c58b=_0x4d8efa[_0x2f01('0x48')]({'plain':!![]});_0x54c58b=qs[_0x2f01('0x49')](_0x54c58b,['id',_0x2f01('0x4a'),'updatedAt']);_0x4a39b5[_0x2f01('0x45')]=_[_0x2f01('0x49')](_0x4a39b5[_0x2f01('0x45')],['id',_0x2f01('0x4a'),'updatedAt']);return db['JscriptyProject'][_0x2f01('0x44')](_[_0x2f01('0x3a')](_0x54c58b,_0x4a39b5[_0x2f01('0x45')]),{'include':_0x4a39b5[_0x2f01('0x29')][_0x2f01('0x47')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x48e52f,0xc9))[_0x2f01('0x3f')](handleError(_0x48e52f,null));};exports['update']=function(_0x39f945,_0x1e0fd2){if(_0x39f945[_0x2f01('0x45')]['id']){delete _0x39f945[_0x2f01('0x45')]['id'];}return db[_0x2f01('0x25')]['find']({'where':{'id':_0x39f945[_0x2f01('0x41')]['id']}})[_0x2f01('0x1f')](handleEntityNotFound(_0x1e0fd2,null))[_0x2f01('0x1f')](saveUpdates(_0x39f945[_0x2f01('0x45')],null))[_0x2f01('0x1f')](respondWithResult(_0x1e0fd2,null))['catch'](handleError(_0x1e0fd2,null));};exports[_0x2f01('0x20')]=function(_0x162799,_0xa531f4){return db[_0x2f01('0x25')][_0x2f01('0x43')]({'where':{'id':_0x162799['params']['id']}})[_0x2f01('0x1f')](handleEntityNotFound(_0xa531f4,null))[_0x2f01('0x1f')](removeEntity(_0xa531f4,null))[_0x2f01('0x3f')](handleError(_0xa531f4,null));};exports['getSessions']=function(_0x31b9e,_0x99bc64,_0x49199f){var _0x28bfd3={'raw':!![],'where':{}};var _0x151d5b={};var _0x4a28ba={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x2f01('0x4b')]({'where':{'id':_0x31b9e[_0x2f01('0x41')]['id']}})['then'](handleEntityNotFound(_0x99bc64,null))['then'](function(_0x1d3f75){if(_0x1d3f75){_0x151d5b['model']=_['keys'](db[_0x2f01('0x4c')][_0x2f01('0x26')]);_0x151d5b[_0x2f01('0x29')]=_[_0x2f01('0x28')](_0x31b9e[_0x2f01('0x29')]);_0x151d5b[_0x2f01('0x2c')]=_[_0x2f01('0x2d')](_0x151d5b[_0x2f01('0x27')],_0x151d5b[_0x2f01('0x29')]);_0x28bfd3[_0x2f01('0x2f')]=_[_0x2f01('0x2d')](_0x151d5b[_0x2f01('0x27')],qs[_0x2f01('0x2e')](_0x31b9e[_0x2f01('0x29')]['fields']));_0x28bfd3['attributes']=_0x28bfd3['attributes'][_0x2f01('0x30')]?_0x28bfd3[_0x2f01('0x2f')]:_0x151d5b['model'];if(!_0x31b9e['query'][_0x2f01('0x31')](_0x2f01('0x32'))){_0x28bfd3[_0x2f01('0x33')]=qs['limit'](_0x31b9e[_0x2f01('0x29')][_0x2f01('0x33')]);_0x28bfd3[_0x2f01('0x19')]=qs[_0x2f01('0x19')](_0x31b9e[_0x2f01('0x29')]['offset']);}_0x28bfd3[_0x2f01('0x34')]=qs[_0x2f01('0x35')](_0x31b9e[_0x2f01('0x29')]['sort']);_0x28bfd3['where']=qs[_0x2f01('0x2c')](_[_0x2f01('0x37')](_0x31b9e[_0x2f01('0x29')],_0x151d5b[_0x2f01('0x2c')]));_0x28bfd3['where'][_0x2f01('0x4d')]=_0x1d3f75['id'];if(_0x31b9e[_0x2f01('0x29')]['filter']){_0x28bfd3['where']=_[_0x2f01('0x3a')](_0x28bfd3[_0x2f01('0x36')],{'$or':_['map'](_0x28bfd3[_0x2f01('0x2f')],function(_0x3ad148){var _0x2e3fcd={};_0x2e3fcd[_0x3ad148]={'$like':'%'+_0x31b9e['query'][_0x2f01('0x3b')]+'%'};return _0x2e3fcd;})});}_0x28bfd3=_['merge']({},_0x28bfd3,_0x31b9e[_0x2f01('0x3d')]);return db[_0x2f01('0x4c')]['count']({'where':_0x28bfd3[_0x2f01('0x36')]})[_0x2f01('0x1f')](function(_0x4e5728){_0x4a28ba[_0x2f01('0x18')]=_0x4e5728;if(_0x31b9e[_0x2f01('0x29')]['includeAll']){_0x28bfd3[_0x2f01('0x42')]=[{'all':!![]}];}return db[_0x2f01('0x4c')][_0x2f01('0x4e')](_0x28bfd3);})[_0x2f01('0x1f')](function(_0x4715de){_0x4a28ba[_0x2f01('0x3e')]=_0x4715de;return _0x4a28ba;});}})[_0x2f01('0x1f')](respondWithFilteredResult(_0x99bc64,_0x28bfd3))[_0x2f01('0x3f')](handleError(_0x99bc64,null));};exports[_0x2f01('0x4f')]=function(_0x4e91b8,_0x1c9ac8,_0x3d83d7){var _0x3acea5={'raw':!![],'where':{}};var _0x5e27fe={};var _0x24e202={'count':0x0,'rows':[]};var _0x187ef5={'dateStart':_0x4e91b8[_0x2f01('0x29')]['dateStart'],'dateEnd':_0x4e91b8[_0x2f01('0x29')][_0x2f01('0x2b')]};delete _0x4e91b8[_0x2f01('0x29')][_0x2f01('0x2a')];delete _0x4e91b8[_0x2f01('0x29')]['dateEnd'];return db[_0x2f01('0x25')][_0x2f01('0x4b')]({'where':{'id':_0x4e91b8['params']['id']}})[_0x2f01('0x1f')](handleEntityNotFound(_0x1c9ac8,null))[_0x2f01('0x1f')](function(_0x2e6c79){if(_0x2e6c79){_0x5e27fe[_0x2f01('0x27')]=_[_0x2f01('0x28')](db[_0x2f01('0x50')][_0x2f01('0x26')]);_0x5e27fe[_0x2f01('0x29')]=_[_0x2f01('0x28')](_0x4e91b8[_0x2f01('0x29')]);_0x5e27fe[_0x2f01('0x2c')]=_[_0x2f01('0x2d')](_0x5e27fe[_0x2f01('0x27')],_0x5e27fe[_0x2f01('0x29')]);_0x3acea5['attributes']=_[_0x2f01('0x2d')](_0x5e27fe[_0x2f01('0x27')],qs[_0x2f01('0x2e')](_0x4e91b8['query'][_0x2f01('0x2e')]));_0x3acea5[_0x2f01('0x2f')]=_0x3acea5['attributes'][_0x2f01('0x30')]?_0x3acea5['attributes']:_0x5e27fe['model'];if(!_0x4e91b8[_0x2f01('0x29')]['hasOwnProperty']('nolimit')){_0x3acea5[_0x2f01('0x33')]=qs[_0x2f01('0x33')](_0x4e91b8['query'][_0x2f01('0x33')]);_0x3acea5[_0x2f01('0x19')]=qs['offset'](_0x4e91b8[_0x2f01('0x29')][_0x2f01('0x19')]);}_0x3acea5[_0x2f01('0x34')]=qs[_0x2f01('0x35')](_0x4e91b8[_0x2f01('0x29')][_0x2f01('0x35')]);_0x3acea5[_0x2f01('0x36')]=qs[_0x2f01('0x2c')](_[_0x2f01('0x37')](_0x4e91b8['query'],_0x5e27fe[_0x2f01('0x2c')]));_0x3acea5['where'][_0x2f01('0x4d')]=_0x2e6c79['id'];if(_0x187ef5[_0x2f01('0x2a')]){if(_0x187ef5[_0x2f01('0x2b')]){_0x187ef5[_0x2f01('0x2b')]=moment(_0x187ef5[_0x2f01('0x2b')])[_0x2f01('0x38')](0x1,'day');}else{_0x187ef5[_0x2f01('0x2b')]=moment(_0x187ef5[_0x2f01('0x2a')])[_0x2f01('0x38')](0x1,_0x2f01('0x39'));}_[_0x2f01('0x3a')](_0x3acea5[_0x2f01('0x36')],{'createdAt':{'$gte':_0x187ef5[_0x2f01('0x2a')],'$lte':_0x187ef5['dateEnd']}});}if(_0x4e91b8[_0x2f01('0x29')][_0x2f01('0x3b')]){_0x3acea5[_0x2f01('0x36')]=_[_0x2f01('0x3a')](_0x3acea5['where'],{'$or':_[_0x2f01('0x3c')](_0x3acea5[_0x2f01('0x2f')],function(_0x2c8350){var _0x9864ae={};_0x9864ae[_0x2c8350]={'$like':'%'+_0x4e91b8['query'][_0x2f01('0x3b')]+'%'};return _0x9864ae;})});}_0x3acea5=_['merge']({},_0x3acea5,_0x4e91b8['options']);return db['JscriptyAnswerReport']['count']({'where':_0x3acea5[_0x2f01('0x36')]})[_0x2f01('0x1f')](function(_0x3c3e41){_0x24e202[_0x2f01('0x18')]=_0x3c3e41;if(_0x4e91b8['query']['includeAll']){_0x3acea5[_0x2f01('0x42')]=[{'all':!![]}];}return db[_0x2f01('0x50')]['findAll'](_0x3acea5);})[_0x2f01('0x1f')](function(_0x257a07){_0x24e202[_0x2f01('0x3e')]=_0x257a07;return _0x24e202;});}})[_0x2f01('0x1f')](respondWithFilteredResult(_0x1c9ac8,_0x3acea5))[_0x2f01('0x3f')](handleError(_0x1c9ac8,null));};function char(_0x39f9a0){return _0x2f01('0x51')===typeof _0x39f9a0?String[_0x2f01('0x52')]['apply'](null,arguments):_0x39f9a0;}function needsEncapsulation(_0x3eb763){return!!_0x3eb763&&(_0x3eb763['toString']()['indexOf'](char(0xd))>=0x0||_0x3eb763[_0x2f01('0x53')]()[_0x2f01('0x54')](char(0xa))>=0x0||_0x3eb763[_0x2f01('0x53')]()[_0x2f01('0x54')](char(0x2c))>=0x0||_0x3eb763[_0x2f01('0x53')]()['indexOf'](char(0x22))>=0x0);}function encapsulate(_0x395b72){var _0x4471b7=char(0x22),_0x2f0364='\x5c'+char(0x22),_0x317a0c=_0x395b72['toString']()[_0x2f01('0x55')](new RegExp(_0x4471b7,'g'),_0x2f0364);return _0x4471b7+_0x317a0c+_0x4471b7;}exports[_0x2f01('0x56')]=function(_0x107542,_0x277215,_0x54f784){var _0x1e80e6,_0x721f82;var _0x553361={'dateStart':_0x107542[_0x2f01('0x29')][_0x2f01('0x2a')],'dateEnd':_0x107542['query'][_0x2f01('0x2b')]};delete _0x107542[_0x2f01('0x29')][_0x2f01('0x2a')];delete _0x107542[_0x2f01('0x29')][_0x2f01('0x2b')];if(_0x553361[_0x2f01('0x2a')]){if(_0x553361['dateEnd']){_0x553361[_0x2f01('0x2b')]=moment(_0x553361[_0x2f01('0x2b')])[_0x2f01('0x38')](0x1,_0x2f01('0x39'));}else{_0x553361[_0x2f01('0x2b')]=moment(_0x553361[_0x2f01('0x2a')])[_0x2f01('0x38')](0x1,'day');}}return db[_0x2f01('0x4c')][_0x2f01('0x4e')]({'where':{'ProjectId':_0x107542[_0x2f01('0x41')]['id'],'starttime':{'$gte':_0x553361[_0x2f01('0x2a')],'$lte':_0x553361['dateEnd']}}})['then'](handleEntityNotFound(_0x277215,null))[_0x2f01('0x1f')](function(_0x1b3e11){if(_0x1b3e11){_0x1e80e6=_0x1b3e11;return db[_0x2f01('0x57')]['findAll']({'where':{'SessionId':{'$in':_[_0x2f01('0x3c')](_0x1e80e6,'id')},'ProjectId':_0x107542[_0x2f01('0x41')]['id']},'order':_0x2f01('0x58')});}})['then'](handleEntityNotFound(_0x277215,null))['then'](function(_0x452c6e){if(_0x452c6e){_0x721f82=_0x452c6e;var _0x572061={};for(var _0x47aa31=0x0,_0x91b619=_0x721f82[_0x2f01('0x30')];_0x47aa31<_0x91b619;_0x47aa31++){if(!_0x572061['hasOwnProperty'](_0x721f82[_0x47aa31][_0x2f01('0x59')])){_0x572061[_0x721f82[_0x47aa31]['questionId']]=needsEncapsulation(_0x721f82[_0x47aa31]['question'])?encapsulate(_0x721f82[_0x47aa31]['question']):_0x721f82[_0x47aa31][_0x2f01('0x5a')];}}var _0x246ea0=[],_0x52926d={};for(var _0x4a2c70=0x0,_0x25682f=_0x1e80e6['length'];_0x4a2c70<_0x25682f;_0x4a2c70++){_0x52926d={'ProjectId':_0x107542[_0x2f01('0x41')]['id'],'SessionId':_0x1e80e6[_0x4a2c70]['id'],'StartTime':moment(_0x1e80e6[_0x4a2c70][_0x2f01('0x5b')])[_0x2f01('0x5c')]('YYYY-MM-DD\x20HH:mm:ss')};for(var _0x2b09de=0x0,_0x37366d=_0x721f82[_0x2f01('0x30')];_0x2b09de<_0x37366d;_0x2b09de++){if(_0x721f82[_0x2b09de][_0x2f01('0x5d')]==_0x1e80e6[_0x4a2c70]['id']&&_0x572061['hasOwnProperty'](_0x721f82[_0x2b09de][_0x2f01('0x59')])){_0x52926d[_0x572061[_0x721f82[_0x2b09de][_0x2f01('0x59')]]]=_0x721f82[_0x2b09de]['answer'];}}for(var _0x479461 in _0x572061){if(!_0x52926d[_0x2f01('0x31')](_0x572061[_0x479461])){_0x52926d[_0x572061[_0x479461]]=null;}}_0x246ea0[_0x2f01('0x5e')](_0x52926d);}return _0x246ea0;}})[_0x2f01('0x1f')](function(_0x180c54){if(!_[_0x2f01('0x5f')](_0x180c54)){var _0x2214ef=toCsv(_0x180c54);var _0x4699d7=Date[_0x2f01('0x60')]();fs[_0x2f01('0x61')](util[_0x2f01('0x5c')](_0x2f01('0x62'),_0x107542[_0x2f01('0x41')]['id'],_0x4699d7),_0x2214ef);_0x277215['setHeader'](_0x2f01('0x63'),_0x2f01('0x64')+util[_0x2f01('0x5c')](_0x2f01('0x65'),_0x107542['params']['id'],_0x4699d7));_0x277215[_0x2f01('0x66')](_0x2f01('0x67'),_0x2f01('0x68'));return _0x277215[_0x2f01('0x69')](util[_0x2f01('0x5c')](_0x2f01('0x62'),_0x107542[_0x2f01('0x41')]['id'],_0x4699d7));}else{return _0x277215['sendStatus'](0xcc);}})[_0x2f01('0x3f')](handleError(_0x277215,null));};
\ No newline at end of file
+var _0x72b0=['crypto','jsforce','desk.js','querystring','papaparse','api','../../config/utils','../../mysqldb','end','status','json','count','limit','set','Content-Range','apply','save','destroy','then','sendStatus','error','stack','name','send','index','rawAttributes','model','keys','query','dateEnd','dateStart','filters','attributes','intersection','length','hasOwnProperty','nolimit','offset','order','sort','where','add','day','filter','merge','options','JscriptyProject','include','rows','params','fields','find','catch','create','body','clone','includeAll','omit','createdAt','updatedAt','update','getSessions','findOne','pick','ProjectId','JscriptySessionReport','findAll','getAnswers','JscriptyAnswerReport','map','fromCharCode','toString','indexOf','getSummary','JscriptyQuestionReport','questionId','question','starttime','format','SessionId','answer','isEmpty','now','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','download','/tmp/Jscripty_Project_%d_Summary_%s.csv','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel'];(function(_0x1ba57f,_0xb81938){var _0x5a7f02=function(_0x32b234){while(--_0x32b234){_0x1ba57f['push'](_0x1ba57f['shift']());}};_0x5a7f02(++_0xb81938);}(_0x72b0,0x129));var _0x072b=function(_0x8022cb,_0x442c38){_0x8022cb=_0x8022cb-0x0;var _0x3e7a46=_0x72b0[_0x8022cb];return _0x3e7a46;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x072b('0x0'));var rimraf=require(_0x072b('0x1'));var zipdir=require(_0x072b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x072b('0x3'));var BPromise=require(_0x072b('0x4'));var Mustache=require(_0x072b('0x5'));var util=require(_0x072b('0x6'));var path=require(_0x072b('0x7'));var sox=require(_0x072b('0x8'));var csv=require(_0x072b('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x072b('0xa'));var squel=require(_0x072b('0xb'));var crypto=require(_0x072b('0xc'));var jsforce=require(_0x072b('0xd'));var deskjs=require(_0x072b('0xe'));var toCsv=require('to-csv');var querystring=require(_0x072b('0xf'));var Papa=require(_0x072b('0x10'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x072b('0x11'));var utils=require(_0x072b('0x12'));var config=require('../../config/environment');var db=require(_0x072b('0x13'))['db'];function respondWithStatusCode(_0x1836a2,_0x106087){_0x106087=_0x106087||0xcc;return function(_0x278788){if(_0x278788){return _0x1836a2['sendStatus'](_0x106087);}return _0x1836a2['status'](_0x106087)[_0x072b('0x14')]();};}function respondWithResult(_0x49bd22,_0x200d96){_0x200d96=_0x200d96||0xc8;return function(_0x1f78da){if(_0x1f78da){return _0x49bd22[_0x072b('0x15')](_0x200d96)[_0x072b('0x16')](_0x1f78da);}};}function respondWithFilteredResult(_0x134493,_0x21dc4a){return function(_0x13705b){if(_0x13705b){var _0x484282=_0x13705b[_0x072b('0x17')],_0xb28997=_0x21dc4a['offset'],_0x5a2945=_0x21dc4a['offset']+_0x21dc4a[_0x072b('0x18')],_0x3b87eb;if(_0x5a2945>=_0x484282){_0x5a2945=_0x484282;_0x3b87eb=0xc8;}else{_0x3b87eb=0xce;}_0x134493[_0x072b('0x15')](_0x3b87eb);return _0x134493[_0x072b('0x19')](_0x072b('0x1a'),_0xb28997+'-'+_0x5a2945+'/'+_0x484282)[_0x072b('0x16')](_0x13705b);}return null;};}function patchUpdates(_0x105dd0){return function(_0x2b8897){try{jsonpatch[_0x072b('0x1b')](_0x2b8897,_0x105dd0,!![]);}catch(_0xa4d396){return BPromise['reject'](_0xa4d396);}return _0x2b8897[_0x072b('0x1c')]();};}function saveUpdates(_0xd7bf35,_0x3a4c33){return function(_0x90a90d){if(_0x90a90d){return _0x90a90d['update'](_0xd7bf35)['then'](function(_0x1d503c){return _0x1d503c;});}return null;};}function removeEntity(_0x9b3a33,_0x49ac03){return function(_0x2ed71c){if(_0x2ed71c){return _0x2ed71c[_0x072b('0x1d')]()[_0x072b('0x1e')](function(){_0x9b3a33[_0x072b('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x20c52b,_0x283a95){return function(_0x5264f9){if(!_0x5264f9){_0x20c52b[_0x072b('0x1f')](0x194);}return _0x5264f9;};}function handleError(_0x168e73,_0x36cfca){_0x36cfca=_0x36cfca||0x1f4;return function(_0x1175b1){logger[_0x072b('0x20')](_0x1175b1[_0x072b('0x21')]);if(_0x1175b1[_0x072b('0x22')]){delete _0x1175b1['name'];}_0x168e73[_0x072b('0x15')](_0x36cfca)[_0x072b('0x23')](_0x1175b1);};}exports[_0x072b('0x24')]=function(_0xd62d46,_0x47ca3c){var _0x1a1fd3={},_0x290294={},_0x13d839={'count':0x0,'rows':[]};var _0x169853=db['JscriptyProject'][_0x072b('0x25')];_0x290294[_0x072b('0x26')]=_[_0x072b('0x27')](_0x169853);var _0x4b9804={'dateStart':_0xd62d46[_0x072b('0x28')]['dateStart'],'dateEnd':_0xd62d46[_0x072b('0x28')][_0x072b('0x29')]};delete _0xd62d46[_0x072b('0x28')][_0x072b('0x2a')];delete _0xd62d46[_0x072b('0x28')]['dateEnd'];_0x290294['query']=_[_0x072b('0x27')](_0xd62d46[_0x072b('0x28')]);_0x290294[_0x072b('0x2b')]=_['intersection'](_0x290294['model'],_0x290294[_0x072b('0x28')]);_0x1a1fd3[_0x072b('0x2c')]=_[_0x072b('0x2d')](_0x290294[_0x072b('0x26')],qs['fields'](_0xd62d46['query']['fields']));_0x1a1fd3[_0x072b('0x2c')]=_0x1a1fd3[_0x072b('0x2c')][_0x072b('0x2e')]?_0x1a1fd3[_0x072b('0x2c')]:_0x290294['model'];if(!_0xd62d46[_0x072b('0x28')][_0x072b('0x2f')](_0x072b('0x30'))){_0x1a1fd3[_0x072b('0x18')]=qs[_0x072b('0x18')](_0xd62d46[_0x072b('0x28')][_0x072b('0x18')]);_0x1a1fd3['offset']=qs[_0x072b('0x31')](_0xd62d46[_0x072b('0x28')][_0x072b('0x31')]);}_0x1a1fd3[_0x072b('0x32')]=qs[_0x072b('0x33')](_0xd62d46['query'][_0x072b('0x33')]);_0x1a1fd3[_0x072b('0x34')]=qs['filters'](_['pick'](_0xd62d46['query'],_0x290294['filters']));if(_0x4b9804[_0x072b('0x2a')]){if(_0x4b9804[_0x072b('0x29')]){_0x4b9804['dateEnd']=moment(_0x4b9804[_0x072b('0x29')])[_0x072b('0x35')](0x1,_0x072b('0x36'));}else{_0x4b9804['dateEnd']=moment(_0x4b9804[_0x072b('0x2a')])['add'](0x1,_0x072b('0x36'));}_['merge'](_0x1a1fd3[_0x072b('0x34')],{'createdAt':{'$gte':_0x4b9804['dateStart'],'$lte':_0x4b9804[_0x072b('0x29')]}});}if(_0xd62d46['query'][_0x072b('0x37')]){_0x1a1fd3[_0x072b('0x34')]=_[_0x072b('0x38')](_0x1a1fd3[_0x072b('0x34')],{'$or':_['map'](_0x1a1fd3[_0x072b('0x2c')],function(_0x463dce){var _0x49b1bd={};_0x49b1bd[_0x463dce]={'$like':'%'+_0xd62d46['query'][_0x072b('0x37')]+'%'};return _0x49b1bd;})});}_0x1a1fd3=_[_0x072b('0x38')]({},_0x1a1fd3,_0xd62d46[_0x072b('0x39')]);var _0x513c6a={'where':_0x1a1fd3[_0x072b('0x34')]};return db[_0x072b('0x3a')]['count'](_0x513c6a)[_0x072b('0x1e')](function(_0x53c92b){_0x13d839[_0x072b('0x17')]=_0x53c92b;if(_0xd62d46[_0x072b('0x28')]['includeAll']){_0x1a1fd3[_0x072b('0x3b')]=[{'all':!![]}];}return db[_0x072b('0x3a')]['findAll'](_0x1a1fd3);})[_0x072b('0x1e')](function(_0x2da172){_0x13d839[_0x072b('0x3c')]=_0x2da172;return _0x13d839;})['then'](respondWithFilteredResult(_0x47ca3c,_0x1a1fd3))['catch'](handleError(_0x47ca3c,null));};exports['show']=function(_0x4ff319,_0x50e397){var _0x52cf09={'raw':![],'where':{'id':_0x4ff319[_0x072b('0x3d')]['id']}},_0x4912c1={};_0x4912c1['model']=_[_0x072b('0x27')](db[_0x072b('0x3a')]['rawAttributes']);_0x4912c1['query']=_['keys'](_0x4ff319[_0x072b('0x28')]);_0x4912c1['filters']=_[_0x072b('0x2d')](_0x4912c1[_0x072b('0x26')],_0x4912c1['query']);_0x52cf09['attributes']=_[_0x072b('0x2d')](_0x4912c1[_0x072b('0x26')],qs[_0x072b('0x3e')](_0x4ff319['query']['fields']));_0x52cf09['attributes']=_0x52cf09[_0x072b('0x2c')]['length']?_0x52cf09['attributes']:_0x4912c1[_0x072b('0x26')];if(_0x4ff319[_0x072b('0x28')]['includeAll']){_0x52cf09[_0x072b('0x3b')]=[{'all':!![]}];}_0x52cf09=_[_0x072b('0x38')]({},_0x52cf09,_0x4ff319[_0x072b('0x39')]);return db['JscriptyProject'][_0x072b('0x3f')](_0x52cf09)['then'](handleEntityNotFound(_0x50e397,null))[_0x072b('0x1e')](respondWithResult(_0x50e397,null))[_0x072b('0x40')](handleError(_0x50e397,null));};exports[_0x072b('0x41')]=function(_0x32db4f,_0xf77ae6){return db[_0x072b('0x3a')][_0x072b('0x41')](_0x32db4f[_0x072b('0x42')],{})[_0x072b('0x1e')](respondWithResult(_0xf77ae6,0xc9))[_0x072b('0x40')](handleError(_0xf77ae6,null));};exports[_0x072b('0x43')]=function(_0x47ab72,_0x10c6c3){var _0x4b5f5d={'raw':![],'where':{'id':_0x47ab72[_0x072b('0x3d')]['id']}},_0x4ff960={};_0x4ff960[_0x072b('0x26')]=_[_0x072b('0x27')](db[_0x072b('0x3a')]['rawAttributes']);_0x4b5f5d[_0x072b('0x2c')]=_[_0x072b('0x2d')](_0x4ff960[_0x072b('0x26')],qs['fields'](_0x47ab72[_0x072b('0x28')][_0x072b('0x3e')]));_0x4b5f5d[_0x072b('0x2c')]=_0x4b5f5d[_0x072b('0x2c')][_0x072b('0x2e')]?_0x4b5f5d[_0x072b('0x2c')]:_0x4ff960[_0x072b('0x26')];if(_0x47ab72[_0x072b('0x28')][_0x072b('0x44')]){_0x4b5f5d['include']=[{'all':!![]}];}_0x4b5f5d=_[_0x072b('0x38')]({},_0x4b5f5d,_0x47ab72[_0x072b('0x39')]);return db[_0x072b('0x3a')]['find'](_0x4b5f5d)[_0x072b('0x1e')](handleEntityNotFound(_0x10c6c3,null))[_0x072b('0x1e')](function(_0x24de4c){if(_0x24de4c){var _0x51ffa8=_0x24de4c['get']({'plain':!![]});_0x51ffa8=qs[_0x072b('0x45')](_0x51ffa8,['id',_0x072b('0x46'),_0x072b('0x47')]);_0x47ab72[_0x072b('0x42')]=_[_0x072b('0x45')](_0x47ab72[_0x072b('0x42')],['id',_0x072b('0x46'),_0x072b('0x47')]);return db[_0x072b('0x3a')]['create'](_['merge'](_0x51ffa8,_0x47ab72[_0x072b('0x42')]),{'include':_0x47ab72[_0x072b('0x28')][_0x072b('0x44')]?[{'all':!![]}]:undefined});}})[_0x072b('0x1e')](respondWithResult(_0x10c6c3,0xc9))['catch'](handleError(_0x10c6c3,null));};exports[_0x072b('0x48')]=function(_0xb4584f,_0x5e4c84){if(_0xb4584f[_0x072b('0x42')]['id']){delete _0xb4584f[_0x072b('0x42')]['id'];}return db[_0x072b('0x3a')][_0x072b('0x3f')]({'where':{'id':_0xb4584f['params']['id']}})[_0x072b('0x1e')](handleEntityNotFound(_0x5e4c84,null))['then'](saveUpdates(_0xb4584f['body'],null))['then'](respondWithResult(_0x5e4c84,null))[_0x072b('0x40')](handleError(_0x5e4c84,null));};exports['destroy']=function(_0x22dbff,_0x5a6bed){return db['JscriptyProject'][_0x072b('0x3f')]({'where':{'id':_0x22dbff[_0x072b('0x3d')]['id']}})[_0x072b('0x1e')](handleEntityNotFound(_0x5a6bed,null))['then'](removeEntity(_0x5a6bed,null))[_0x072b('0x40')](handleError(_0x5a6bed,null));};exports[_0x072b('0x49')]=function(_0x1d8709,_0x2eb810,_0x5d6ffc){var _0xdff770={'raw':!![],'where':{}};var _0x5d5cf3={};var _0x261b8c={'count':0x0,'rows':[]};return db[_0x072b('0x3a')][_0x072b('0x4a')]({'where':{'id':_0x1d8709[_0x072b('0x3d')]['id']}})[_0x072b('0x1e')](handleEntityNotFound(_0x2eb810,null))[_0x072b('0x1e')](function(_0xb8a6fe){if(_0xb8a6fe){_0x5d5cf3[_0x072b('0x26')]=_[_0x072b('0x27')](db['JscriptySessionReport'][_0x072b('0x25')]);_0x5d5cf3['query']=_[_0x072b('0x27')](_0x1d8709[_0x072b('0x28')]);_0x5d5cf3[_0x072b('0x2b')]=_['intersection'](_0x5d5cf3[_0x072b('0x26')],_0x5d5cf3[_0x072b('0x28')]);_0xdff770[_0x072b('0x2c')]=_['intersection'](_0x5d5cf3[_0x072b('0x26')],qs[_0x072b('0x3e')](_0x1d8709[_0x072b('0x28')][_0x072b('0x3e')]));_0xdff770[_0x072b('0x2c')]=_0xdff770[_0x072b('0x2c')][_0x072b('0x2e')]?_0xdff770['attributes']:_0x5d5cf3[_0x072b('0x26')];if(!_0x1d8709[_0x072b('0x28')][_0x072b('0x2f')](_0x072b('0x30'))){_0xdff770[_0x072b('0x18')]=qs[_0x072b('0x18')](_0x1d8709[_0x072b('0x28')][_0x072b('0x18')]);_0xdff770['offset']=qs['offset'](_0x1d8709[_0x072b('0x28')][_0x072b('0x31')]);}_0xdff770[_0x072b('0x32')]=qs['sort'](_0x1d8709[_0x072b('0x28')][_0x072b('0x33')]);_0xdff770['where']=qs[_0x072b('0x2b')](_[_0x072b('0x4b')](_0x1d8709[_0x072b('0x28')],_0x5d5cf3[_0x072b('0x2b')]));_0xdff770[_0x072b('0x34')][_0x072b('0x4c')]=_0xb8a6fe['id'];if(_0x1d8709[_0x072b('0x28')][_0x072b('0x37')]){_0xdff770[_0x072b('0x34')]=_['merge'](_0xdff770[_0x072b('0x34')],{'$or':_['map'](_0xdff770[_0x072b('0x2c')],function(_0x4a3cef){var _0x43982f={};_0x43982f[_0x4a3cef]={'$like':'%'+_0x1d8709[_0x072b('0x28')][_0x072b('0x37')]+'%'};return _0x43982f;})});}_0xdff770=_[_0x072b('0x38')]({},_0xdff770,_0x1d8709[_0x072b('0x39')]);return db['JscriptySessionReport'][_0x072b('0x17')]({'where':_0xdff770[_0x072b('0x34')]})[_0x072b('0x1e')](function(_0x2818cc){_0x261b8c[_0x072b('0x17')]=_0x2818cc;if(_0x1d8709['query']['includeAll']){_0xdff770[_0x072b('0x3b')]=[{'all':!![]}];}return db[_0x072b('0x4d')][_0x072b('0x4e')](_0xdff770);})[_0x072b('0x1e')](function(_0x121852){_0x261b8c[_0x072b('0x3c')]=_0x121852;return _0x261b8c;});}})[_0x072b('0x1e')](respondWithFilteredResult(_0x2eb810,_0xdff770))[_0x072b('0x40')](handleError(_0x2eb810,null));};exports[_0x072b('0x4f')]=function(_0x38b693,_0x64834d,_0x5ce7d2){var _0x3b2d4a={'raw':!![],'where':{}};var _0x4560d3={};var _0x1ab17b={'count':0x0,'rows':[]};var _0x52877b={'dateStart':_0x38b693[_0x072b('0x28')][_0x072b('0x2a')],'dateEnd':_0x38b693['query']['dateEnd']};delete _0x38b693[_0x072b('0x28')][_0x072b('0x2a')];delete _0x38b693[_0x072b('0x28')][_0x072b('0x29')];return db[_0x072b('0x3a')][_0x072b('0x4a')]({'where':{'id':_0x38b693[_0x072b('0x3d')]['id']}})[_0x072b('0x1e')](handleEntityNotFound(_0x64834d,null))[_0x072b('0x1e')](function(_0x534c4f){if(_0x534c4f){_0x4560d3[_0x072b('0x26')]=_[_0x072b('0x27')](db[_0x072b('0x50')][_0x072b('0x25')]);_0x4560d3[_0x072b('0x28')]=_[_0x072b('0x27')](_0x38b693['query']);_0x4560d3[_0x072b('0x2b')]=_[_0x072b('0x2d')](_0x4560d3[_0x072b('0x26')],_0x4560d3[_0x072b('0x28')]);_0x3b2d4a[_0x072b('0x2c')]=_['intersection'](_0x4560d3[_0x072b('0x26')],qs[_0x072b('0x3e')](_0x38b693[_0x072b('0x28')]['fields']));_0x3b2d4a['attributes']=_0x3b2d4a[_0x072b('0x2c')][_0x072b('0x2e')]?_0x3b2d4a['attributes']:_0x4560d3['model'];if(!_0x38b693['query']['hasOwnProperty'](_0x072b('0x30'))){_0x3b2d4a[_0x072b('0x18')]=qs[_0x072b('0x18')](_0x38b693[_0x072b('0x28')]['limit']);_0x3b2d4a['offset']=qs['offset'](_0x38b693['query']['offset']);}_0x3b2d4a[_0x072b('0x32')]=qs[_0x072b('0x33')](_0x38b693[_0x072b('0x28')][_0x072b('0x33')]);_0x3b2d4a['where']=qs[_0x072b('0x2b')](_[_0x072b('0x4b')](_0x38b693[_0x072b('0x28')],_0x4560d3[_0x072b('0x2b')]));_0x3b2d4a[_0x072b('0x34')][_0x072b('0x4c')]=_0x534c4f['id'];if(_0x52877b[_0x072b('0x2a')]){if(_0x52877b[_0x072b('0x29')]){_0x52877b[_0x072b('0x29')]=moment(_0x52877b[_0x072b('0x29')])[_0x072b('0x35')](0x1,_0x072b('0x36'));}else{_0x52877b['dateEnd']=moment(_0x52877b[_0x072b('0x2a')])['add'](0x1,_0x072b('0x36'));}_[_0x072b('0x38')](_0x3b2d4a[_0x072b('0x34')],{'createdAt':{'$gte':_0x52877b['dateStart'],'$lte':_0x52877b[_0x072b('0x29')]}});}if(_0x38b693['query'][_0x072b('0x37')]){_0x3b2d4a[_0x072b('0x34')]=_['merge'](_0x3b2d4a[_0x072b('0x34')],{'$or':_[_0x072b('0x51')](_0x3b2d4a['attributes'],function(_0x3a9943){var _0x138609={};_0x138609[_0x3a9943]={'$like':'%'+_0x38b693[_0x072b('0x28')][_0x072b('0x37')]+'%'};return _0x138609;})});}_0x3b2d4a=_[_0x072b('0x38')]({},_0x3b2d4a,_0x38b693[_0x072b('0x39')]);return db['JscriptyAnswerReport'][_0x072b('0x17')]({'where':_0x3b2d4a[_0x072b('0x34')]})[_0x072b('0x1e')](function(_0x5c65f4){_0x1ab17b[_0x072b('0x17')]=_0x5c65f4;if(_0x38b693[_0x072b('0x28')]['includeAll']){_0x3b2d4a[_0x072b('0x3b')]=[{'all':!![]}];}return db[_0x072b('0x50')][_0x072b('0x4e')](_0x3b2d4a);})[_0x072b('0x1e')](function(_0x181981){_0x1ab17b['rows']=_0x181981;return _0x1ab17b;});}})['then'](respondWithFilteredResult(_0x64834d,_0x3b2d4a))[_0x072b('0x40')](handleError(_0x64834d,null));};function char(_0x177119){return'number'===typeof _0x177119?String[_0x072b('0x52')][_0x072b('0x1b')](null,arguments):_0x177119;}function needsEncapsulation(_0xd390d7){return!!_0xd390d7&&(_0xd390d7[_0x072b('0x53')]()[_0x072b('0x54')](char(0xd))>=0x0||_0xd390d7[_0x072b('0x53')]()['indexOf'](char(0xa))>=0x0||_0xd390d7[_0x072b('0x53')]()[_0x072b('0x54')](char(0x2c))>=0x0||_0xd390d7[_0x072b('0x53')]()[_0x072b('0x54')](char(0x22))>=0x0);}function encapsulate(_0x114248){var _0xb82db6=char(0x22),_0x1ac0bb='\x5c'+char(0x22),_0xd29775=_0x114248['toString']()['replace'](new RegExp(_0xb82db6,'g'),_0x1ac0bb);return _0xb82db6+_0xd29775+_0xb82db6;}exports[_0x072b('0x55')]=function(_0x1cc34b,_0x46c5df,_0x579fab){var _0x35af95,_0x49eb42;var _0x254ff5={'dateStart':_0x1cc34b[_0x072b('0x28')]['dateStart'],'dateEnd':_0x1cc34b[_0x072b('0x28')][_0x072b('0x29')]};delete _0x1cc34b[_0x072b('0x28')][_0x072b('0x2a')];delete _0x1cc34b[_0x072b('0x28')][_0x072b('0x29')];if(_0x254ff5[_0x072b('0x2a')]){if(_0x254ff5[_0x072b('0x29')]){_0x254ff5['dateEnd']=moment(_0x254ff5[_0x072b('0x29')])[_0x072b('0x35')](0x1,_0x072b('0x36'));}else{_0x254ff5[_0x072b('0x29')]=moment(_0x254ff5[_0x072b('0x2a')])[_0x072b('0x35')](0x1,_0x072b('0x36'));}}return db[_0x072b('0x4d')][_0x072b('0x4e')]({'where':{'ProjectId':_0x1cc34b[_0x072b('0x3d')]['id'],'starttime':{'$gte':_0x254ff5[_0x072b('0x2a')],'$lte':_0x254ff5[_0x072b('0x29')]}}})[_0x072b('0x1e')](handleEntityNotFound(_0x46c5df,null))[_0x072b('0x1e')](function(_0x1178fb){if(_0x1178fb){_0x35af95=_0x1178fb;return db[_0x072b('0x56')]['findAll']({'where':{'SessionId':{'$in':_[_0x072b('0x51')](_0x35af95,'id')},'ProjectId':_0x1cc34b[_0x072b('0x3d')]['id']},'order':'-createdAt'});}})[_0x072b('0x1e')](handleEntityNotFound(_0x46c5df,null))[_0x072b('0x1e')](function(_0x1847e7){if(_0x1847e7){_0x49eb42=_0x1847e7;var _0x5c6761={};for(var _0x1ed369=0x0,_0x1f5d78=_0x49eb42[_0x072b('0x2e')];_0x1ed369<_0x1f5d78;_0x1ed369++){if(!_0x5c6761['hasOwnProperty'](_0x49eb42[_0x1ed369][_0x072b('0x57')])){_0x5c6761[_0x49eb42[_0x1ed369][_0x072b('0x57')]]=needsEncapsulation(_0x49eb42[_0x1ed369][_0x072b('0x58')])?encapsulate(_0x49eb42[_0x1ed369][_0x072b('0x58')]):_0x49eb42[_0x1ed369][_0x072b('0x58')];}}var _0x475ba4=[],_0x55a461={};for(var _0x20408d=0x0,_0x24762d=_0x35af95[_0x072b('0x2e')];_0x20408d<_0x24762d;_0x20408d++){_0x55a461={'ProjectId':_0x1cc34b[_0x072b('0x3d')]['id'],'SessionId':_0x35af95[_0x20408d]['id'],'StartTime':moment(_0x35af95[_0x20408d][_0x072b('0x59')])[_0x072b('0x5a')]('YYYY-MM-DD\x20HH:mm:ss')};for(var _0x4cde83=0x0,_0x537263=_0x49eb42[_0x072b('0x2e')];_0x4cde83<_0x537263;_0x4cde83++){if(_0x49eb42[_0x4cde83][_0x072b('0x5b')]==_0x35af95[_0x20408d]['id']&&_0x5c6761[_0x072b('0x2f')](_0x49eb42[_0x4cde83]['questionId'])){_0x55a461[_0x5c6761[_0x49eb42[_0x4cde83][_0x072b('0x57')]]]=_0x49eb42[_0x4cde83][_0x072b('0x5c')];}}for(var _0x2e97b8 in _0x5c6761){if(!_0x55a461['hasOwnProperty'](_0x5c6761[_0x2e97b8])){_0x55a461[_0x5c6761[_0x2e97b8]]=null;}}_0x475ba4['push'](_0x55a461);}return _0x475ba4;}})[_0x072b('0x1e')](function(_0x32c5b9){if(!_[_0x072b('0x5d')](_0x32c5b9)){var _0x4fa1fe=toCsv(_0x32c5b9);var _0x141abd=Date[_0x072b('0x5e')]();fs['writeFileSync'](util[_0x072b('0x5a')]('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x1cc34b[_0x072b('0x3d')]['id'],_0x141abd),_0x4fa1fe);_0x46c5df[_0x072b('0x5f')](_0x072b('0x60'),_0x072b('0x61')+util[_0x072b('0x5a')](_0x072b('0x62'),_0x1cc34b[_0x072b('0x3d')]['id'],_0x141abd));_0x46c5df[_0x072b('0x5f')](_0x072b('0x63'),_0x072b('0x64'));return _0x46c5df[_0x072b('0x65')](util[_0x072b('0x5a')](_0x072b('0x66'),_0x1cc34b[_0x072b('0x3d')]['id'],_0x141abd));}else{return _0x46c5df['sendStatus'](0xcc);}})[_0x072b('0x40')](handleError(_0x46c5df,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c42=['../../config/logger','api','bluebird','request-promise','./jscriptyProject.attributes','exports','define','JscriptyProject','lodash','util'];(function(_0x47efac,_0x176419){var _0x10a63f=function(_0x48ea18){while(--_0x48ea18){_0x47efac['push'](_0x47efac['shift']());}};_0x10a63f(++_0x176419);}(_0x0c42,0x184));var _0x20c4=function(_0xa8a9e5,_0x543b54){_0xa8a9e5=_0xa8a9e5-0x0;var _0xddabcd=_0x0c42[_0xa8a9e5];return _0xddabcd;};'use strict';var _=require(_0x20c4('0x0'));var util=require(_0x20c4('0x1'));var logger=require(_0x20c4('0x2'))(_0x20c4('0x3'));var moment=require('moment');var BPromise=require(_0x20c4('0x4'));var rp=require(_0x20c4('0x5'));var attributes=require(_0x20c4('0x6'));module[_0x20c4('0x7')]=function(_0x3c77b2,_0xb2c49a){return _0x3c77b2[_0x20c4('0x8')](_0x20c4('0x9'),attributes,{'tableName':'jscripty_projects','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe5aa=['lodash','util','../../config/logger','moment','bluebird','request-promise','./jscriptyProject.attributes','exports','jscripty_projects'];(function(_0x177c0d,_0x1a8854){var _0x19bf91=function(_0x25ee5e){while(--_0x25ee5e){_0x177c0d['push'](_0x177c0d['shift']());}};_0x19bf91(++_0x1a8854);}(_0xe5aa,0x1b9));var _0xae5a=function(_0x55a605,_0x57e3e2){_0x55a605=_0x55a605-0x0;var _0xd9224a=_0xe5aa[_0x55a605];return _0xd9224a;};'use strict';var _=require(_0xae5a('0x0'));var util=require(_0xae5a('0x1'));var logger=require(_0xae5a('0x2'))('api');var moment=require(_0xae5a('0x3'));var BPromise=require(_0xae5a('0x4'));var rp=require(_0xae5a('0x5'));var attributes=require(_0xae5a('0x6'));module[_0xae5a('0x7')]=function(_0x2ab770,_0x357f5d){return _0x2ab770['define']('JscriptyProject',attributes,{'tableName':_0xae5a('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34f2=['moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','util'];(function(_0x566e13,_0x5156cc){var _0x514bbf=function(_0x499f1d){while(--_0x499f1d){_0x566e13['push'](_0x566e13['shift']());}};_0x514bbf(++_0x5156cc);}(_0x34f2,0xd7));var _0x234f=function(_0x119d17,_0x124871){_0x119d17=_0x119d17-0x0;var _0x3b9c04=_0x34f2[_0x119d17];return _0x3b9c04;};'use strict';var _=require('lodash');var util=require(_0x234f('0x0'));var moment=require(_0x234f('0x1'));var BPromise=require(_0x234f('0x2'));var rs=require(_0x234f('0x3'));var fs=require('fs');var db=require(_0x234f('0x4'))['db'];var utils=require(_0x234f('0x5'));var logger=require(_0x234f('0x6'))(_0x234f('0x7'));var config=require(_0x234f('0x8'));var jayson=require(_0x234f('0x9'));var client=jayson[_0x234f('0xa')][_0x234f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xb985ab,_0x2b75f8,_0x358fe7){return new BPromise(function(_0x5a37ed,_0x4aea0e){return client[_0x234f('0xc')](_0xb985ab,_0x358fe7)[_0x234f('0xd')](function(_0xde5d72){logger[_0x234f('0xe')](_0x234f('0xf'),_0x2b75f8,_0x234f('0x10'));logger[_0x234f('0x11')](_0x234f('0x12'),_0x2b75f8,_0x234f('0x10'),JSON['stringify'](_0xde5d72));if(_0xde5d72[_0x234f('0x13')]){if(_0xde5d72['error'][_0x234f('0x14')]===0x1f4){logger['error'](_0x234f('0xf'),_0x2b75f8,_0xde5d72[_0x234f('0x13')]['message']);return _0x4aea0e(_0xde5d72[_0x234f('0x13')][_0x234f('0x15')]);}logger[_0x234f('0x13')](_0x234f('0xf'),_0x2b75f8,_0xde5d72[_0x234f('0x13')]['message']);return _0x5a37ed(_0xde5d72[_0x234f('0x13')][_0x234f('0x15')]);}else{logger[_0x234f('0xe')](_0x234f('0xf'),_0x2b75f8,_0x234f('0x10'));_0x5a37ed(_0xde5d72[_0x234f('0x16')]['message']);}})[_0x234f('0x17')](function(_0x49f2b6){logger[_0x234f('0x13')]('JscriptyProject,\x20%s,\x20%s',_0x2b75f8,_0x49f2b6);_0x4aea0e(_0x49f2b6);});});}
\ No newline at end of file
+var _0x6d5d=['../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x44effa,_0x1ed4cd){var _0x53e5a8=function(_0x4480a7){while(--_0x4480a7){_0x44effa['push'](_0x44effa['shift']());}};_0x53e5a8(++_0x1ed4cd);}(_0x6d5d,0x10e));var _0xd6d5=function(_0x4d65ad,_0xbd53b4){_0x4d65ad=_0x4d65ad-0x0;var _0x38c37b=_0x6d5d[_0x4d65ad];return _0x38c37b;};'use strict';var _=require(_0xd6d5('0x0'));var util=require('util');var moment=require(_0xd6d5('0x1'));var BPromise=require(_0xd6d5('0x2'));var rs=require(_0xd6d5('0x3'));var fs=require('fs');var Redis=require(_0xd6d5('0x4'));var db=require(_0xd6d5('0x5'))['db'];var utils=require(_0xd6d5('0x6'));var logger=require(_0xd6d5('0x7'))(_0xd6d5('0x8'));var config=require(_0xd6d5('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xd6d5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x20b255,_0x591d98,_0x4a22b7){return new BPromise(function(_0x4edde7,_0x1e065b){return client[_0xd6d5('0xb')](_0x20b255,_0x4a22b7)[_0xd6d5('0xc')](function(_0x434cb3){logger[_0xd6d5('0xd')](_0xd6d5('0xe'),_0x591d98,_0xd6d5('0xf'));logger[_0xd6d5('0x10')](_0xd6d5('0x11'),_0x591d98,'request\x20sent',JSON[_0xd6d5('0x12')](_0x434cb3));if(_0x434cb3[_0xd6d5('0x13')]){if(_0x434cb3[_0xd6d5('0x13')]['code']===0x1f4){logger[_0xd6d5('0x13')](_0xd6d5('0xe'),_0x591d98,_0x434cb3[_0xd6d5('0x13')][_0xd6d5('0x14')]);return _0x1e065b(_0x434cb3['error'][_0xd6d5('0x14')]);}logger[_0xd6d5('0x13')](_0xd6d5('0xe'),_0x591d98,_0x434cb3['error']['message']);return _0x4edde7(_0x434cb3['error'][_0xd6d5('0x14')]);}else{logger[_0xd6d5('0xd')](_0xd6d5('0xe'),_0x591d98,_0xd6d5('0xf'));_0x4edde7(_0x434cb3[_0xd6d5('0x15')][_0xd6d5('0x14')]);}})[_0xd6d5('0x16')](function(_0x40a71a){logger[_0xd6d5('0x13')]('JscriptyProject,\x20%s,\x20%s',_0x591d98,_0x40a71a);_0x1e065b(_0x40a71a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x649c=['show','post','create','put','update','/:id','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','get','isAuthenticated','/describe'];(function(_0x71174e,_0x19e6a8){var _0x4d04c2=function(_0x1161f6){while(--_0x1161f6){_0x71174e['push'](_0x71174e['shift']());}};_0x4d04c2(++_0x19e6a8);}(_0x649c,0x1c0));var _0xc649=function(_0x43a0fe,_0x5c8533){_0x43a0fe=_0x43a0fe-0x0;var _0x5e5d12=_0x649c[_0x43a0fe];return _0x5e5d12;};'use strict';var multer=require(_0xc649('0x0'));var util=require(_0xc649('0x1'));var path=require('path');var timeout=require(_0xc649('0x2'));var express=require(_0xc649('0x3'));var router=express[_0xc649('0x4')]();var auth=require(_0xc649('0x5'));var interaction=require(_0xc649('0x6'));var config=require(_0xc649('0x7'));var controller=require(_0xc649('0x8'));router[_0xc649('0x9')]('/',auth[_0xc649('0xa')](),controller['index']);router['get'](_0xc649('0xb'),auth[_0xc649('0xa')](),controller['describe']);router[_0xc649('0x9')]('/:id',auth[_0xc649('0xa')](),controller[_0xc649('0xc')]);router[_0xc649('0xd')]('/',auth[_0xc649('0xa')](),controller[_0xc649('0xe')]);router[_0xc649('0xf')]('/:id',auth[_0xc649('0xa')](),controller[_0xc649('0x10')]);router['delete'](_0xc649('0x11'),auth[_0xc649('0xa')](),controller[_0xc649('0x12')]);module[_0xc649('0x13')]=router;
\ No newline at end of file
+var _0x91c1=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','isAuthenticated','get','/describe','describe','/:id','show','post','create','put','update','delete','destroy','exports','path'];(function(_0x40f700,_0x3a89ba){var _0x498949=function(_0x30261c){while(--_0x30261c){_0x40f700['push'](_0x40f700['shift']());}};_0x498949(++_0x3a89ba);}(_0x91c1,0xbc));var _0x191c=function(_0x4b26b5,_0x4f71fd){_0x4b26b5=_0x4b26b5-0x0;var _0x4dec71=_0x91c1[_0x4b26b5];return _0x4dec71;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x191c('0x0'));var timeout=require(_0x191c('0x1'));var express=require(_0x191c('0x2'));var router=express[_0x191c('0x3')]();var auth=require(_0x191c('0x4'));var interaction=require(_0x191c('0x5'));var config=require(_0x191c('0x6'));var controller=require(_0x191c('0x7'));router['get']('/',auth[_0x191c('0x8')](),controller['index']);router[_0x191c('0x9')](_0x191c('0xa'),auth[_0x191c('0x8')](),controller[_0x191c('0xb')]);router[_0x191c('0x9')](_0x191c('0xc'),auth[_0x191c('0x8')](),controller[_0x191c('0xd')]);router[_0x191c('0xe')]('/',auth[_0x191c('0x8')](),controller[_0x191c('0xf')]);router[_0x191c('0x10')](_0x191c('0xc'),auth['isAuthenticated'](),controller[_0x191c('0x11')]);router[_0x191c('0x12')](_0x191c('0xc'),auth[_0x191c('0x8')](),controller[_0x191c('0x13')]);module[_0x191c('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc4c=['STRING','long','sequelize','exports'];(function(_0x17ef82,_0x4864b5){var _0x55001b=function(_0x4fe7c9){while(--_0x4fe7c9){_0x17ef82['push'](_0x17ef82['shift']());}};_0x55001b(++_0x4864b5);}(_0xfc4c,0xca));var _0xcfc4=function(_0x37a12f,_0x343422){_0x37a12f=_0x37a12f-0x0;var _0x11155e=_0xfc4c[_0x37a12f];return _0x11155e;};'use strict';var Sequelize=require(_0xcfc4('0x0'));module[_0xcfc4('0x1')]={'question':{'type':Sequelize[_0xcfc4('0x2')]},'answer':{'type':Sequelize['TEXT'](_0xcfc4('0x3'))},'membername':{'type':Sequelize[_0xcfc4('0x2')]},'projectname':{'type':Sequelize[_0xcfc4('0x2')]},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xcfc4('0x2')]},'calleridnum':{'type':Sequelize[_0xcfc4('0x2')]},'questionId':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x9d9b=['long','exports','STRING'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x9d9b,0x1e1));var _0xb9d9=function(_0xb3f66a,_0x211103){_0xb3f66a=_0xb3f66a-0x0;var _0x1db82a=_0x9d9b[_0xb3f66a];return _0x1db82a;};'use strict';var Sequelize=require('sequelize');module[_0xb9d9('0x0')]={'question':{'type':Sequelize[_0xb9d9('0x1')]},'answer':{'type':Sequelize['TEXT'](_0xb9d9('0x2'))},'membername':{'type':Sequelize['STRING']},'projectname':{'type':Sequelize[_0xb9d9('0x1')]},'queue':{'type':Sequelize[_0xb9d9('0x1')]},'uniqueid':{'type':Sequelize[_0xb9d9('0x1')]},'calleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xb9d9('0x1')]},'questionId':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68ae=['hasOwnProperty','nolimit','order','sort','where','filters','day','add','merge','filter','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','describe','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','end','error','stack','name','index','JscriptyQuestionReport','rawAttributes','model','keys','query','dateStart','dateEnd','intersection','attributes','fields','length'];(function(_0xcb5ece,_0x2d699f){var _0x221fcc=function(_0x4c5056){while(--_0x4c5056){_0xcb5ece['push'](_0xcb5ece['shift']());}};_0x221fcc(++_0x2d699f);}(_0x68ae,0xa8));var _0xe68a=function(_0x8d4bff,_0x46fb43){_0x8d4bff=_0x8d4bff-0x0;var _0x550b57=_0x68ae[_0x8d4bff];return _0x550b57;};'use strict';var pdf=require(_0xe68a('0x0'));var emlformat=require(_0xe68a('0x1'));var rimraf=require(_0xe68a('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe68a('0x3'));var rp=require(_0xe68a('0x4'));var moment=require(_0xe68a('0x5'));var BPromise=require(_0xe68a('0x6'));var Mustache=require(_0xe68a('0x7'));var util=require('util');var path=require(_0xe68a('0x8'));var sox=require(_0xe68a('0x9'));var csv=require('to-csv');var ejs=require(_0xe68a('0xa'));var fs=require('fs');var _=require(_0xe68a('0xb'));var squel=require(_0xe68a('0xc'));var crypto=require(_0xe68a('0xd'));var jsforce=require(_0xe68a('0xe'));var deskjs=require(_0xe68a('0xf'));var toCsv=require(_0xe68a('0x10'));var querystring=require(_0xe68a('0x11'));var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require(_0xe68a('0x12'))('api');var utils=require(_0xe68a('0x13'));var config=require(_0xe68a('0x14'));var db=require(_0xe68a('0x15'))['db'];function respondWithStatusCode(_0x266421,_0x48bca4){_0x48bca4=_0x48bca4||0xcc;return function(_0x3647e0){if(_0x3647e0){return _0x266421[_0xe68a('0x16')](_0x48bca4);}return _0x266421[_0xe68a('0x17')](_0x48bca4)['end']();};}function respondWithResult(_0x2616e0,_0x32bd87){_0x32bd87=_0x32bd87||0xc8;return function(_0x1433da){if(_0x1433da){return _0x2616e0[_0xe68a('0x17')](_0x32bd87)[_0xe68a('0x18')](_0x1433da);}};}function respondWithFilteredResult(_0x4a64eb,_0x266e9a){return function(_0x5460a4){if(_0x5460a4){var _0x32d748=_0x5460a4[_0xe68a('0x19')],_0x3103c2=_0x266e9a[_0xe68a('0x1a')],_0x4a5f85=_0x266e9a[_0xe68a('0x1a')]+_0x266e9a[_0xe68a('0x1b')],_0x1107b2;if(_0x4a5f85>=_0x32d748){_0x4a5f85=_0x32d748;_0x1107b2=0xc8;}else{_0x1107b2=0xce;}_0x4a64eb[_0xe68a('0x17')](_0x1107b2);return _0x4a64eb[_0xe68a('0x1c')](_0xe68a('0x1d'),_0x3103c2+'-'+_0x4a5f85+'/'+_0x32d748)['json'](_0x5460a4);}return null;};}function patchUpdates(_0x4a4541){return function(_0x3c0dec){try{jsonpatch['apply'](_0x3c0dec,_0x4a4541,!![]);}catch(_0x40c080){return BPromise[_0xe68a('0x1e')](_0x40c080);}return _0x3c0dec[_0xe68a('0x1f')]();};}function saveUpdates(_0x47b71c,_0x10f6cf){return function(_0x1533cf){if(_0x1533cf){return _0x1533cf[_0xe68a('0x20')](_0x47b71c)[_0xe68a('0x21')](function(_0x1324d4){return _0x1324d4;});}return null;};}function removeEntity(_0x240739,_0x252e58){return function(_0x209718){if(_0x209718){return _0x209718[_0xe68a('0x22')]()['then'](function(){_0x240739['status'](0xcc)[_0xe68a('0x23')]();});}};}function handleEntityNotFound(_0x58d3b2,_0x1f8bfb){return function(_0x3f88f1){if(!_0x3f88f1){_0x58d3b2[_0xe68a('0x16')](0x194);}return _0x3f88f1;};}function handleError(_0x7f7b39,_0x6c6608){_0x6c6608=_0x6c6608||0x1f4;return function(_0x37b243){logger[_0xe68a('0x24')](_0x37b243[_0xe68a('0x25')]);if(_0x37b243[_0xe68a('0x26')]){delete _0x37b243[_0xe68a('0x26')];}_0x7f7b39[_0xe68a('0x17')](_0x6c6608)['send'](_0x37b243);};}exports[_0xe68a('0x27')]=function(_0x317ffe,_0x354e32){var _0x33430c={},_0x69214c={},_0x214504={'count':0x0,'rows':[]};var _0xb1f1f9=db[_0xe68a('0x28')][_0xe68a('0x29')];_0x69214c[_0xe68a('0x2a')]=_[_0xe68a('0x2b')](_0xb1f1f9);var _0x3b25bb={'dateStart':_0x317ffe[_0xe68a('0x2c')][_0xe68a('0x2d')],'dateEnd':_0x317ffe[_0xe68a('0x2c')][_0xe68a('0x2e')]};delete _0x317ffe[_0xe68a('0x2c')][_0xe68a('0x2d')];delete _0x317ffe[_0xe68a('0x2c')][_0xe68a('0x2e')];_0x69214c[_0xe68a('0x2c')]=_['keys'](_0x317ffe[_0xe68a('0x2c')]);_0x69214c['filters']=_[_0xe68a('0x2f')](_0x69214c['model'],_0x69214c[_0xe68a('0x2c')]);_0x33430c[_0xe68a('0x30')]=_[_0xe68a('0x2f')](_0x69214c['model'],qs[_0xe68a('0x31')](_0x317ffe[_0xe68a('0x2c')]['fields']));_0x33430c['attributes']=_0x33430c[_0xe68a('0x30')][_0xe68a('0x32')]?_0x33430c[_0xe68a('0x30')]:_0x69214c[_0xe68a('0x2a')];if(!_0x317ffe['query'][_0xe68a('0x33')](_0xe68a('0x34'))){_0x33430c[_0xe68a('0x1b')]=qs[_0xe68a('0x1b')](_0x317ffe[_0xe68a('0x2c')][_0xe68a('0x1b')]);_0x33430c[_0xe68a('0x1a')]=qs[_0xe68a('0x1a')](_0x317ffe['query'][_0xe68a('0x1a')]);}_0x33430c[_0xe68a('0x35')]=qs['sort'](_0x317ffe['query'][_0xe68a('0x36')]);_0x33430c[_0xe68a('0x37')]=qs[_0xe68a('0x38')](_['pick'](_0x317ffe[_0xe68a('0x2c')],_0x69214c[_0xe68a('0x38')]));if(_0x3b25bb[_0xe68a('0x2d')]){if(_0x3b25bb[_0xe68a('0x2e')]){_0x3b25bb['dateEnd']=moment(_0x3b25bb[_0xe68a('0x2e')])['add'](0x1,_0xe68a('0x39'));}else{_0x3b25bb['dateEnd']=moment(_0x3b25bb['dateStart'])[_0xe68a('0x3a')](0x1,_0xe68a('0x39'));}_[_0xe68a('0x3b')](_0x33430c['where'],{'createdAt':{'$gte':_0x3b25bb[_0xe68a('0x2d')],'$lte':_0x3b25bb[_0xe68a('0x2e')]}});}if(_0x317ffe[_0xe68a('0x2c')][_0xe68a('0x3c')]){_0x33430c[_0xe68a('0x37')]=_['merge'](_0x33430c[_0xe68a('0x37')],{'$or':_['map'](_0x33430c[_0xe68a('0x30')],function(_0x6ceaad){var _0x3877ff={};_0x3877ff[_0x6ceaad]={'$like':'%'+_0x317ffe['query'][_0xe68a('0x3c')]+'%'};return _0x3877ff;})});}_0x33430c=_[_0xe68a('0x3b')]({},_0x33430c,_0x317ffe[_0xe68a('0x3d')]);var _0x28aef0={'where':_0x33430c['where']};return db['JscriptyQuestionReport']['count'](_0x28aef0)['then'](function(_0x5856b9){_0x214504['count']=_0x5856b9;if(_0x317ffe[_0xe68a('0x2c')]['includeAll']){_0x33430c[_0xe68a('0x3e')]=[{'all':!![]}];}return db[_0xe68a('0x28')][_0xe68a('0x3f')](_0x33430c);})[_0xe68a('0x21')](function(_0x3c6771){_0x214504[_0xe68a('0x40')]=_0x3c6771;return _0x214504;})[_0xe68a('0x21')](respondWithFilteredResult(_0x354e32,_0x33430c))[_0xe68a('0x41')](handleError(_0x354e32,null));};exports[_0xe68a('0x42')]=function(_0x5f3d48,_0xd8849a){var _0x5987c7={'raw':!![],'where':{'id':_0x5f3d48[_0xe68a('0x43')]['id']}},_0x2f2bac={};_0x2f2bac[_0xe68a('0x2a')]=_['keys'](db['JscriptyQuestionReport']['rawAttributes']);_0x2f2bac[_0xe68a('0x2c')]=_['keys'](_0x5f3d48[_0xe68a('0x2c')]);_0x2f2bac[_0xe68a('0x38')]=_[_0xe68a('0x2f')](_0x2f2bac['model'],_0x2f2bac[_0xe68a('0x2c')]);_0x5987c7[_0xe68a('0x30')]=_[_0xe68a('0x2f')](_0x2f2bac[_0xe68a('0x2a')],qs[_0xe68a('0x31')](_0x5f3d48['query'][_0xe68a('0x31')]));_0x5987c7[_0xe68a('0x30')]=_0x5987c7[_0xe68a('0x30')][_0xe68a('0x32')]?_0x5987c7[_0xe68a('0x30')]:_0x2f2bac[_0xe68a('0x2a')];if(_0x5f3d48[_0xe68a('0x2c')][_0xe68a('0x44')]){_0x5987c7[_0xe68a('0x3e')]=[{'all':!![]}];}_0x5987c7=_[_0xe68a('0x3b')]({},_0x5987c7,_0x5f3d48['options']);return db[_0xe68a('0x28')][_0xe68a('0x45')](_0x5987c7)[_0xe68a('0x21')](handleEntityNotFound(_0xd8849a,null))[_0xe68a('0x21')](respondWithResult(_0xd8849a,null))[_0xe68a('0x41')](handleError(_0xd8849a,null));};exports[_0xe68a('0x46')]=function(_0x47360c,_0x10f520){return db[_0xe68a('0x28')]['create'](_0x47360c[_0xe68a('0x47')],{})[_0xe68a('0x21')](respondWithResult(_0x10f520,0xc9))[_0xe68a('0x41')](handleError(_0x10f520,null));};exports[_0xe68a('0x20')]=function(_0x296041,_0x1b62d4){if(_0x296041[_0xe68a('0x47')]['id']){delete _0x296041[_0xe68a('0x47')]['id'];}return db[_0xe68a('0x28')][_0xe68a('0x45')]({'where':{'id':_0x296041[_0xe68a('0x43')]['id']}})[_0xe68a('0x21')](handleEntityNotFound(_0x1b62d4,null))['then'](saveUpdates(_0x296041[_0xe68a('0x47')],null))[_0xe68a('0x21')](respondWithResult(_0x1b62d4,null))['catch'](handleError(_0x1b62d4,null));};exports['destroy']=function(_0x1ca7f7,_0x4742b9){return db['JscriptyQuestionReport'][_0xe68a('0x45')]({'where':{'id':_0x1ca7f7[_0xe68a('0x43')]['id']}})[_0xe68a('0x21')](handleEntityNotFound(_0x4742b9,null))[_0xe68a('0x21')](removeEntity(_0x4742b9,null))[_0xe68a('0x41')](handleError(_0x4742b9,null));};exports['describe']=function(_0x4f318f,_0x57de5f){return db['JscriptyQuestionReport'][_0xe68a('0x48')]()[_0xe68a('0x21')](respondWithResult(_0x57de5f,null))[_0xe68a('0x41')](handleError(_0x57de5f,null));};
\ No newline at end of file
+var _0x9c00=['limit','set','apply','reject','save','update','then','stack','name','send','index','JscriptyQuestionReport','rawAttributes','keys','dateStart','dateEnd','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','filter','map','merge','options','count','includeAll','include','findAll','catch','show','find','create','body','params','destroy','describe','html-pdf','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset'];(function(_0x58ff48,_0x34b676){var _0x457cef=function(_0x8e24e8){while(--_0x8e24e8){_0x58ff48['push'](_0x58ff48['shift']());}};_0x457cef(++_0x34b676);}(_0x9c00,0x1a0));var _0x09c0=function(_0x12f036,_0x27e401){_0x12f036=_0x12f036-0x0;var _0xf0be1b=_0x9c00[_0x12f036];return _0xf0be1b;};'use strict';var pdf=require(_0x09c0('0x0'));var emlformat=require(_0x09c0('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x09c0('0x2'));var rp=require(_0x09c0('0x3'));var moment=require('moment');var BPromise=require(_0x09c0('0x4'));var Mustache=require(_0x09c0('0x5'));var util=require(_0x09c0('0x6'));var path=require(_0x09c0('0x7'));var sox=require(_0x09c0('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x09c0('0x9'));var squel=require(_0x09c0('0xa'));var crypto=require(_0x09c0('0xb'));var jsforce=require(_0x09c0('0xc'));var deskjs=require(_0x09c0('0xd'));var toCsv=require('to-csv');var querystring=require(_0x09c0('0xe'));var Papa=require(_0x09c0('0xf'));var Redis=require(_0x09c0('0x10'));var qs=require(_0x09c0('0x11'));var logger=require(_0x09c0('0x12'))(_0x09c0('0x13'));var utils=require(_0x09c0('0x14'));var config=require(_0x09c0('0x15'));var db=require(_0x09c0('0x16'))['db'];function respondWithStatusCode(_0x4523ea,_0x179b1b){_0x179b1b=_0x179b1b||0xcc;return function(_0x2a8262){if(_0x2a8262){return _0x4523ea[_0x09c0('0x17')](_0x179b1b);}return _0x4523ea[_0x09c0('0x18')](_0x179b1b)[_0x09c0('0x19')]();};}function respondWithResult(_0x331905,_0x6149a8){_0x6149a8=_0x6149a8||0xc8;return function(_0x2a86da){if(_0x2a86da){return _0x331905[_0x09c0('0x18')](_0x6149a8)[_0x09c0('0x1a')](_0x2a86da);}};}function respondWithFilteredResult(_0x16e490,_0x254598){return function(_0x152140){if(_0x152140){var _0x45a265=_0x152140['count'],_0x33c3d6=_0x254598['offset'],_0x2fdf11=_0x254598[_0x09c0('0x1b')]+_0x254598[_0x09c0('0x1c')],_0x4ff6b7;if(_0x2fdf11>=_0x45a265){_0x2fdf11=_0x45a265;_0x4ff6b7=0xc8;}else{_0x4ff6b7=0xce;}_0x16e490[_0x09c0('0x18')](_0x4ff6b7);return _0x16e490[_0x09c0('0x1d')]('Content-Range',_0x33c3d6+'-'+_0x2fdf11+'/'+_0x45a265)[_0x09c0('0x1a')](_0x152140);}return null;};}function patchUpdates(_0x4aa8a5){return function(_0x4c29a7){try{jsonpatch[_0x09c0('0x1e')](_0x4c29a7,_0x4aa8a5,!![]);}catch(_0x50fccc){return BPromise[_0x09c0('0x1f')](_0x50fccc);}return _0x4c29a7[_0x09c0('0x20')]();};}function saveUpdates(_0x2da257,_0x49064c){return function(_0x23bc34){if(_0x23bc34){return _0x23bc34[_0x09c0('0x21')](_0x2da257)[_0x09c0('0x22')](function(_0x3447c5){return _0x3447c5;});}return null;};}function removeEntity(_0x12bba7,_0xa5d16f){return function(_0x8c6b9a){if(_0x8c6b9a){return _0x8c6b9a['destroy']()[_0x09c0('0x22')](function(){_0x12bba7[_0x09c0('0x18')](0xcc)[_0x09c0('0x19')]();});}};}function handleEntityNotFound(_0x1d18e9,_0x59a76a){return function(_0x4f6824){if(!_0x4f6824){_0x1d18e9[_0x09c0('0x17')](0x194);}return _0x4f6824;};}function handleError(_0x25fdb5,_0x1e8a1c){_0x1e8a1c=_0x1e8a1c||0x1f4;return function(_0x3a5370){logger['error'](_0x3a5370[_0x09c0('0x23')]);if(_0x3a5370[_0x09c0('0x24')]){delete _0x3a5370['name'];}_0x25fdb5[_0x09c0('0x18')](_0x1e8a1c)[_0x09c0('0x25')](_0x3a5370);};}exports[_0x09c0('0x26')]=function(_0x30c2a1,_0x1f8131){var _0x1d2d9d={},_0x45cc64={},_0x35b61c={'count':0x0,'rows':[]};var _0x1ea951=db[_0x09c0('0x27')][_0x09c0('0x28')];_0x45cc64['model']=_[_0x09c0('0x29')](_0x1ea951);var _0x1bdde9={'dateStart':_0x30c2a1['query'][_0x09c0('0x2a')],'dateEnd':_0x30c2a1['query'][_0x09c0('0x2b')]};delete _0x30c2a1['query'][_0x09c0('0x2a')];delete _0x30c2a1[_0x09c0('0x2c')][_0x09c0('0x2b')];_0x45cc64[_0x09c0('0x2c')]=_['keys'](_0x30c2a1['query']);_0x45cc64[_0x09c0('0x2d')]=_[_0x09c0('0x2e')](_0x45cc64[_0x09c0('0x2f')],_0x45cc64['query']);_0x1d2d9d[_0x09c0('0x30')]=_['intersection'](_0x45cc64[_0x09c0('0x2f')],qs[_0x09c0('0x31')](_0x30c2a1[_0x09c0('0x2c')]['fields']));_0x1d2d9d[_0x09c0('0x30')]=_0x1d2d9d[_0x09c0('0x30')][_0x09c0('0x32')]?_0x1d2d9d[_0x09c0('0x30')]:_0x45cc64[_0x09c0('0x2f')];if(!_0x30c2a1[_0x09c0('0x2c')][_0x09c0('0x33')]('nolimit')){_0x1d2d9d[_0x09c0('0x1c')]=qs[_0x09c0('0x1c')](_0x30c2a1[_0x09c0('0x2c')][_0x09c0('0x1c')]);_0x1d2d9d[_0x09c0('0x1b')]=qs['offset'](_0x30c2a1[_0x09c0('0x2c')][_0x09c0('0x1b')]);}_0x1d2d9d[_0x09c0('0x34')]=qs[_0x09c0('0x35')](_0x30c2a1[_0x09c0('0x2c')]['sort']);_0x1d2d9d[_0x09c0('0x36')]=qs[_0x09c0('0x2d')](_[_0x09c0('0x37')](_0x30c2a1[_0x09c0('0x2c')],_0x45cc64[_0x09c0('0x2d')]));if(_0x1bdde9[_0x09c0('0x2a')]){if(_0x1bdde9[_0x09c0('0x2b')]){_0x1bdde9['dateEnd']=moment(_0x1bdde9[_0x09c0('0x2b')])[_0x09c0('0x38')](0x1,_0x09c0('0x39'));}else{_0x1bdde9[_0x09c0('0x2b')]=moment(_0x1bdde9[_0x09c0('0x2a')])['add'](0x1,'day');}_['merge'](_0x1d2d9d['where'],{'createdAt':{'$gte':_0x1bdde9[_0x09c0('0x2a')],'$lte':_0x1bdde9[_0x09c0('0x2b')]}});}if(_0x30c2a1[_0x09c0('0x2c')][_0x09c0('0x3a')]){_0x1d2d9d[_0x09c0('0x36')]=_['merge'](_0x1d2d9d[_0x09c0('0x36')],{'$or':_[_0x09c0('0x3b')](_0x1d2d9d['attributes'],function(_0x1067cf){var _0x5d50b9={};_0x5d50b9[_0x1067cf]={'$like':'%'+_0x30c2a1[_0x09c0('0x2c')]['filter']+'%'};return _0x5d50b9;})});}_0x1d2d9d=_[_0x09c0('0x3c')]({},_0x1d2d9d,_0x30c2a1[_0x09c0('0x3d')]);var _0x56a511={'where':_0x1d2d9d[_0x09c0('0x36')]};return db[_0x09c0('0x27')]['count'](_0x56a511)[_0x09c0('0x22')](function(_0x30f8a7){_0x35b61c[_0x09c0('0x3e')]=_0x30f8a7;if(_0x30c2a1[_0x09c0('0x2c')][_0x09c0('0x3f')]){_0x1d2d9d[_0x09c0('0x40')]=[{'all':!![]}];}return db['JscriptyQuestionReport'][_0x09c0('0x41')](_0x1d2d9d);})[_0x09c0('0x22')](function(_0x2d6344){_0x35b61c['rows']=_0x2d6344;return _0x35b61c;})[_0x09c0('0x22')](respondWithFilteredResult(_0x1f8131,_0x1d2d9d))[_0x09c0('0x42')](handleError(_0x1f8131,null));};exports[_0x09c0('0x43')]=function(_0x4a8199,_0x184340){var _0x59d188={'raw':!![],'where':{'id':_0x4a8199['params']['id']}},_0x52cd5c={};_0x52cd5c[_0x09c0('0x2f')]=_[_0x09c0('0x29')](db['JscriptyQuestionReport'][_0x09c0('0x28')]);_0x52cd5c[_0x09c0('0x2c')]=_['keys'](_0x4a8199[_0x09c0('0x2c')]);_0x52cd5c[_0x09c0('0x2d')]=_[_0x09c0('0x2e')](_0x52cd5c[_0x09c0('0x2f')],_0x52cd5c[_0x09c0('0x2c')]);_0x59d188['attributes']=_[_0x09c0('0x2e')](_0x52cd5c['model'],qs['fields'](_0x4a8199[_0x09c0('0x2c')][_0x09c0('0x31')]));_0x59d188[_0x09c0('0x30')]=_0x59d188[_0x09c0('0x30')][_0x09c0('0x32')]?_0x59d188[_0x09c0('0x30')]:_0x52cd5c['model'];if(_0x4a8199['query']['includeAll']){_0x59d188[_0x09c0('0x40')]=[{'all':!![]}];}_0x59d188=_[_0x09c0('0x3c')]({},_0x59d188,_0x4a8199[_0x09c0('0x3d')]);return db['JscriptyQuestionReport'][_0x09c0('0x44')](_0x59d188)[_0x09c0('0x22')](handleEntityNotFound(_0x184340,null))[_0x09c0('0x22')](respondWithResult(_0x184340,null))[_0x09c0('0x42')](handleError(_0x184340,null));};exports[_0x09c0('0x45')]=function(_0x7ba10f,_0x298ab4){return db[_0x09c0('0x27')][_0x09c0('0x45')](_0x7ba10f[_0x09c0('0x46')],{})[_0x09c0('0x22')](respondWithResult(_0x298ab4,0xc9))[_0x09c0('0x42')](handleError(_0x298ab4,null));};exports[_0x09c0('0x21')]=function(_0xa5eb6e,_0x332b69){if(_0xa5eb6e[_0x09c0('0x46')]['id']){delete _0xa5eb6e[_0x09c0('0x46')]['id'];}return db[_0x09c0('0x27')][_0x09c0('0x44')]({'where':{'id':_0xa5eb6e[_0x09c0('0x47')]['id']}})['then'](handleEntityNotFound(_0x332b69,null))[_0x09c0('0x22')](saveUpdates(_0xa5eb6e[_0x09c0('0x46')],null))[_0x09c0('0x22')](respondWithResult(_0x332b69,null))[_0x09c0('0x42')](handleError(_0x332b69,null));};exports[_0x09c0('0x48')]=function(_0x4ce63c,_0x3f72b6){return db[_0x09c0('0x27')][_0x09c0('0x44')]({'where':{'id':_0x4ce63c['params']['id']}})[_0x09c0('0x22')](handleEntityNotFound(_0x3f72b6,null))[_0x09c0('0x22')](removeEntity(_0x3f72b6,null))[_0x09c0('0x42')](handleError(_0x3f72b6,null));};exports[_0x09c0('0x49')]=function(_0x55b0f0,_0xebfd6d){return db[_0x09c0('0x27')]['describe']()[_0x09c0('0x22')](respondWithResult(_0xebfd6d,null))[_0x09c0('0x42')](handleError(_0xebfd6d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae1b=['bluebird','request-promise','./jscriptyQuestionReport.attributes','exports','define','report_jscripty_questions','util','api','moment'];(function(_0x335f85,_0x6ce4f4){var _0xc45644=function(_0x1e8795){while(--_0x1e8795){_0x335f85['push'](_0x335f85['shift']());}};_0xc45644(++_0x6ce4f4);}(_0xae1b,0x96));var _0xbae1=function(_0x367b0b,_0x18a2f8){_0x367b0b=_0x367b0b-0x0;var _0x3c5cce=_0xae1b[_0x367b0b];return _0x3c5cce;};'use strict';var _=require('lodash');var util=require(_0xbae1('0x0'));var logger=require('../../config/logger')(_0xbae1('0x1'));var moment=require(_0xbae1('0x2'));var BPromise=require(_0xbae1('0x3'));var rp=require(_0xbae1('0x4'));var attributes=require(_0xbae1('0x5'));module[_0xbae1('0x6')]=function(_0x58b46c,_0x3a09f0){return _0x58b46c[_0xbae1('0x7')]('JscriptyQuestionReport',attributes,{'tableName':_0xbae1('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2fc9=['bluebird','request-promise','./jscriptyQuestionReport.attributes','exports','define','util','../../config/logger','api','moment'];(function(_0x1e9284,_0x41ed9b){var _0x47be48=function(_0x403a28){while(--_0x403a28){_0x1e9284['push'](_0x1e9284['shift']());}};_0x47be48(++_0x41ed9b);}(_0x2fc9,0xc2));var _0x92fc=function(_0x36b400,_0x277ec5){_0x36b400=_0x36b400-0x0;var _0x4d47bf=_0x2fc9[_0x36b400];return _0x4d47bf;};'use strict';var _=require('lodash');var util=require(_0x92fc('0x0'));var logger=require(_0x92fc('0x1'))(_0x92fc('0x2'));var moment=require(_0x92fc('0x3'));var BPromise=require(_0x92fc('0x4'));var rp=require(_0x92fc('0x5'));var attributes=require(_0x92fc('0x6'));module[_0x92fc('0x7')]=function(_0x2307a2,_0x2872f5){return _0x2307a2[_0x92fc('0x8')]('JscriptyQuestionReport',attributes,{'tableName':'report_jscripty_questions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42c3=['error','code','message','info','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','then','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x3be414,_0x35e652){var _0xa47a04=function(_0x15fcd8){while(--_0x15fcd8){_0x3be414['push'](_0x3be414['shift']());}};_0xa47a04(++_0x35e652);}(_0x42c3,0x10d));var _0x342c=function(_0x120841,_0x4c20f8){_0x120841=_0x120841-0x0;var _0x12e083=_0x42c3[_0x120841];return _0x12e083;};'use strict';var _=require('lodash');var util=require(_0x342c('0x0'));var moment=require(_0x342c('0x1'));var BPromise=require(_0x342c('0x2'));var rs=require(_0x342c('0x3'));var fs=require('fs');var db=require(_0x342c('0x4'))['db'];var utils=require(_0x342c('0x5'));var logger=require(_0x342c('0x6'))('rpc');var config=require(_0x342c('0x7'));var jayson=require(_0x342c('0x8'));var client=jayson['client'][_0x342c('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3dd1c0,_0x2422ec,_0x5a4f72){return new BPromise(function(_0x381b25,_0x50d3d9){return client[_0x342c('0xa')](_0x3dd1c0,_0x5a4f72)[_0x342c('0xb')](function(_0x381d95){logger['info'](_0x342c('0xc'),_0x2422ec,_0x342c('0xd'));logger[_0x342c('0xe')](_0x342c('0xf'),_0x2422ec,_0x342c('0xd'),JSON[_0x342c('0x10')](_0x381d95));if(_0x381d95[_0x342c('0x11')]){if(_0x381d95[_0x342c('0x11')][_0x342c('0x12')]===0x1f4){logger['error'](_0x342c('0xc'),_0x2422ec,_0x381d95[_0x342c('0x11')][_0x342c('0x13')]);return _0x50d3d9(_0x381d95[_0x342c('0x11')][_0x342c('0x13')]);}logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x2422ec,_0x381d95[_0x342c('0x11')][_0x342c('0x13')]);return _0x381b25(_0x381d95[_0x342c('0x11')][_0x342c('0x13')]);}else{logger[_0x342c('0x14')](_0x342c('0xc'),_0x2422ec,_0x342c('0xd'));_0x381b25(_0x381d95['result'][_0x342c('0x13')]);}})[_0x342c('0x15')](function(_0x57f00){logger[_0x342c('0x11')](_0x342c('0xc'),_0x2422ec,_0x57f00);_0x50d3d9(_0x57f00);});});}
\ No newline at end of file
+var _0x251f=['http','request','then','info','request\x20sent','debug','stringify','error','code','message','JscriptyQuestionReport,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x10d670,_0x178996){var _0x20d6f8=function(_0x4a4b87){while(--_0x4a4b87){_0x10d670['push'](_0x10d670['shift']());}};_0x20d6f8(++_0x178996);}(_0x251f,0x12b));var _0xf251=function(_0x42e8f3,_0x5c8dba){_0x42e8f3=_0x42e8f3-0x0;var _0x47feab=_0x251f[_0x42e8f3];return _0x47feab;};'use strict';var _=require(_0xf251('0x0'));var util=require(_0xf251('0x1'));var moment=require(_0xf251('0x2'));var BPromise=require(_0xf251('0x3'));var rs=require(_0xf251('0x4'));var fs=require('fs');var Redis=require(_0xf251('0x5'));var db=require(_0xf251('0x6'))['db'];var utils=require(_0xf251('0x7'));var logger=require(_0xf251('0x8'))(_0xf251('0x9'));var config=require(_0xf251('0xa'));var jayson=require(_0xf251('0xb'));var client=jayson[_0xf251('0xc')][_0xf251('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x4e87db,_0x5492d6,_0x4d0e97){return new BPromise(function(_0x5ada0d,_0x2b7c11){return client[_0xf251('0xe')](_0x4e87db,_0x4d0e97)[_0xf251('0xf')](function(_0x5d178e){logger[_0xf251('0x10')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x5492d6,_0xf251('0x11'));logger[_0xf251('0x12')]('JscriptyQuestionReport,\x20%s,\x20%s,\x20%s',_0x5492d6,'request\x20sent',JSON[_0xf251('0x13')](_0x5d178e));if(_0x5d178e[_0xf251('0x14')]){if(_0x5d178e[_0xf251('0x14')][_0xf251('0x15')]===0x1f4){logger[_0xf251('0x14')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x5492d6,_0x5d178e[_0xf251('0x14')]['message']);return _0x2b7c11(_0x5d178e['error'][_0xf251('0x16')]);}logger[_0xf251('0x14')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x5492d6,_0x5d178e[_0xf251('0x14')][_0xf251('0x16')]);return _0x5ada0d(_0x5d178e[_0xf251('0x14')]['message']);}else{logger['info'](_0xf251('0x17'),_0x5492d6,'request\x20sent');_0x5ada0d(_0x5d178e[_0xf251('0x18')]['message']);}})[_0xf251('0x19')](function(_0x1391aa){logger[_0xf251('0x14')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x5492d6,_0x1391aa);_0x2b7c11(_0x1391aa);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4b0=['../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','isAuthenticated','get','/describe','describe','/:id','show','getQuestions','post','create','put','update','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x5cbace,_0x33943c){var _0x6de5b8=function(_0x5aae38){while(--_0x5aae38){_0x5cbace['push'](_0x5cbace['shift']());}};_0x6de5b8(++_0x33943c);}(_0xb4b0,0x19c));var _0x0b4b=function(_0x444bd7,_0xbaa07){_0x444bd7=_0x444bd7-0x0;var _0x32827a=_0xb4b0[_0x444bd7];return _0x32827a;};'use strict';var multer=require(_0x0b4b('0x0'));var util=require(_0x0b4b('0x1'));var path=require(_0x0b4b('0x2'));var timeout=require(_0x0b4b('0x3'));var express=require(_0x0b4b('0x4'));var router=express[_0x0b4b('0x5')]();var auth=require(_0x0b4b('0x6'));var interaction=require(_0x0b4b('0x7'));var config=require(_0x0b4b('0x8'));var controller=require(_0x0b4b('0x9'));router['get']('/',auth[_0x0b4b('0xa')](),controller['index']);router[_0x0b4b('0xb')](_0x0b4b('0xc'),auth[_0x0b4b('0xa')](),controller[_0x0b4b('0xd')]);router[_0x0b4b('0xb')](_0x0b4b('0xe'),auth[_0x0b4b('0xa')](),controller[_0x0b4b('0xf')]);router['get']('/:id/questions',auth[_0x0b4b('0xa')](),controller[_0x0b4b('0x10')]);router[_0x0b4b('0x11')]('/',auth[_0x0b4b('0xa')](),controller[_0x0b4b('0x12')]);router[_0x0b4b('0x13')]('/:id',auth[_0x0b4b('0xa')](),controller[_0x0b4b('0x14')]);router['delete'](_0x0b4b('0xe'),auth[_0x0b4b('0xa')](),controller['destroy']);module[_0x0b4b('0x15')]=router;
\ No newline at end of file
+var _0x5f47=['/describe','describe','/:id','isAuthenticated','show','/:id/questions','getQuestions','create','put','delete','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./jscriptySessionReport.controller','index','get'];(function(_0x215331,_0x5d7565){var _0x1e94f2=function(_0x35a78d){while(--_0x35a78d){_0x215331['push'](_0x215331['shift']());}};_0x1e94f2(++_0x5d7565);}(_0x5f47,0x1ea));var _0x75f4=function(_0x22f71a,_0x56337b){_0x22f71a=_0x22f71a-0x0;var _0x5cfcfe=_0x5f47[_0x22f71a];return _0x5cfcfe;};'use strict';var multer=require(_0x75f4('0x0'));var util=require(_0x75f4('0x1'));var path=require('path');var timeout=require(_0x75f4('0x2'));var express=require(_0x75f4('0x3'));var router=express[_0x75f4('0x4')]();var auth=require(_0x75f4('0x5'));var interaction=require(_0x75f4('0x6'));var config=require('../../config/environment');var controller=require(_0x75f4('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x75f4('0x8')]);router[_0x75f4('0x9')](_0x75f4('0xa'),auth['isAuthenticated'](),controller[_0x75f4('0xb')]);router[_0x75f4('0x9')](_0x75f4('0xc'),auth[_0x75f4('0xd')](),controller[_0x75f4('0xe')]);router[_0x75f4('0x9')](_0x75f4('0xf'),auth[_0x75f4('0xd')](),controller[_0x75f4('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0x75f4('0x11')]);router[_0x75f4('0x12')](_0x75f4('0xc'),auth[_0x75f4('0xd')](),controller['update']);router[_0x75f4('0x13')]('/:id',auth[_0x75f4('0xd')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8877=['DATE','STRING','moment','exports','setDataValue','starttime','endtime','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x33c530,_0x52ab7d){var _0x2f8318=function(_0x2f4c95){while(--_0x2f4c95){_0x33c530['push'](_0x33c530['shift']());}};_0x2f8318(++_0x52ab7d);}(_0x8877,0x6a));var _0x7887=function(_0x1fa380,_0xd0917f){_0x1fa380=_0x1fa380-0x0;var _0x219838=_0x8877[_0x1fa380];return _0x219838;};'use strict';var moment=require(_0x7887('0x0'));var Sequelize=require('sequelize');module[_0x7887('0x1')]={'starttime':{'type':Sequelize['DATE'],'set':function(_0x572ecb){this[_0x7887('0x2')](_0x7887('0x3'),_0x572ecb);this[_0x7887('0x2')](_0x7887('0x4'),moment()['format'](_0x7887('0x5')));}},'endtime':{'type':Sequelize[_0x7887('0x6')]},'membername':{'type':Sequelize['STRING']},'projectname':{'type':Sequelize[_0x7887('0x7')]},'queue':{'type':Sequelize[_0x7887('0x7')]},'uniqueid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x7887('0x7')]},'calleridnum':{'type':Sequelize[_0x7887('0x7')]},'completed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x8ca2=['BOOLEAN','moment','DATE','setDataValue','endtime','format','YYYY-MM-DD\x20HH:mm:ss','STRING'];(function(_0x593f3c,_0x1e4ba1){var _0x16d9dc=function(_0x29f23e){while(--_0x29f23e){_0x593f3c['push'](_0x593f3c['shift']());}};_0x16d9dc(++_0x1e4ba1);}(_0x8ca2,0x109));var _0x28ca=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0x8ca2[_0x580576];return _0x3f55a0;};'use strict';var moment=require(_0x28ca('0x0'));var Sequelize=require('sequelize');module['exports']={'starttime':{'type':Sequelize[_0x28ca('0x1')],'set':function(_0xe7aa4d){this['setDataValue']('starttime',_0xe7aa4d);this[_0x28ca('0x2')](_0x28ca('0x3'),moment()[_0x28ca('0x4')](_0x28ca('0x5')));}},'endtime':{'type':Sequelize[_0x28ca('0x1')]},'membername':{'type':Sequelize[_0x28ca('0x6')]},'projectname':{'type':Sequelize[_0x28ca('0x6')]},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x28ca('0x6')]},'calleridname':{'type':Sequelize[_0x28ca('0x6')]},'calleridnum':{'type':Sequelize[_0x28ca('0x6')]},'completed':{'type':Sequelize[_0x28ca('0x7')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c26=['ejs','lodash','crypto','desk.js','querystring','papaparse','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','json','limit','status','set','Content-Range','apply','save','update','destroy','error','stack','name','send','index','JscriptySessionReport','rawAttributes','model','keys','query','dateEnd','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','sort','filters','dateStart','day','merge','where','filter','map','options','count','then','includeAll','include','rows','catch','show','params','create','body','find','describe','getQuestions','JscriptyQuestionReport','pick','findAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','sox','to-csv'];(function(_0x55f748,_0x4955fd){var _0x5ec857=function(_0x4e02bb){while(--_0x4e02bb){_0x55f748['push'](_0x55f748['shift']());}};_0x5ec857(++_0x4955fd);}(_0x0c26,0xcf));var _0x60c2=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0x0c26[_0x2763f2];return _0x3ef471;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x60c2('0x0'));var rimraf=require(_0x60c2('0x1'));var zipdir=require(_0x60c2('0x2'));var jsonpatch=require(_0x60c2('0x3'));var rp=require(_0x60c2('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x60c2('0x5'));var util=require(_0x60c2('0x6'));var path=require('path');var sox=require(_0x60c2('0x7'));var csv=require(_0x60c2('0x8'));var ejs=require(_0x60c2('0x9'));var fs=require('fs');var _=require(_0x60c2('0xa'));var squel=require('squel');var crypto=require(_0x60c2('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x60c2('0xc'));var toCsv=require(_0x60c2('0x8'));var querystring=require(_0x60c2('0xd'));var Papa=require(_0x60c2('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x60c2('0xf'))('api');var utils=require(_0x60c2('0x10'));var config=require('../../config/environment');var db=require(_0x60c2('0x11'))['db'];function respondWithStatusCode(_0xe0cc09,_0x3233dd){_0x3233dd=_0x3233dd||0xcc;return function(_0x26482d){if(_0x26482d){return _0xe0cc09[_0x60c2('0x12')](_0x3233dd);}return _0xe0cc09['status'](_0x3233dd)[_0x60c2('0x13')]();};}function respondWithResult(_0xa6eb1a,_0x5c80b5){_0x5c80b5=_0x5c80b5||0xc8;return function(_0x2383d4){if(_0x2383d4){return _0xa6eb1a['status'](_0x5c80b5)[_0x60c2('0x14')](_0x2383d4);}};}function respondWithFilteredResult(_0x3da587,_0x447e98){return function(_0x2c0817){if(_0x2c0817){var _0x963962=_0x2c0817['count'],_0x21bb88=_0x447e98['offset'],_0x4367be=_0x447e98['offset']+_0x447e98[_0x60c2('0x15')],_0x3b4f93;if(_0x4367be>=_0x963962){_0x4367be=_0x963962;_0x3b4f93=0xc8;}else{_0x3b4f93=0xce;}_0x3da587[_0x60c2('0x16')](_0x3b4f93);return _0x3da587[_0x60c2('0x17')](_0x60c2('0x18'),_0x21bb88+'-'+_0x4367be+'/'+_0x963962)[_0x60c2('0x14')](_0x2c0817);}return null;};}function patchUpdates(_0x2c913a){return function(_0x4d9fa6){try{jsonpatch[_0x60c2('0x19')](_0x4d9fa6,_0x2c913a,!![]);}catch(_0x32d5bb){return BPromise['reject'](_0x32d5bb);}return _0x4d9fa6[_0x60c2('0x1a')]();};}function saveUpdates(_0x1a94c9,_0x17df32){return function(_0x4fab15){if(_0x4fab15){return _0x4fab15[_0x60c2('0x1b')](_0x1a94c9)['then'](function(_0x2239e1){return _0x2239e1;});}return null;};}function removeEntity(_0xc90e2e,_0x2c7eeb){return function(_0xd9a04a){if(_0xd9a04a){return _0xd9a04a[_0x60c2('0x1c')]()['then'](function(){_0xc90e2e[_0x60c2('0x16')](0xcc)[_0x60c2('0x13')]();});}};}function handleEntityNotFound(_0x2ffd1d,_0x269502){return function(_0x3b7be3){if(!_0x3b7be3){_0x2ffd1d[_0x60c2('0x12')](0x194);}return _0x3b7be3;};}function handleError(_0xf2e17,_0x374856){_0x374856=_0x374856||0x1f4;return function(_0x2b47b1){logger[_0x60c2('0x1d')](_0x2b47b1[_0x60c2('0x1e')]);if(_0x2b47b1[_0x60c2('0x1f')]){delete _0x2b47b1[_0x60c2('0x1f')];}_0xf2e17[_0x60c2('0x16')](_0x374856)[_0x60c2('0x20')](_0x2b47b1);};}exports[_0x60c2('0x21')]=function(_0x44ba9b,_0x14b059){var _0x2aaca8={},_0x457818={},_0x2b053d={'count':0x0,'rows':[]};var _0x53ca83=db[_0x60c2('0x22')][_0x60c2('0x23')];_0x457818[_0x60c2('0x24')]=_[_0x60c2('0x25')](_0x53ca83);var _0x401f1a={'dateStart':_0x44ba9b[_0x60c2('0x26')]['dateStart'],'dateEnd':_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x27')]};delete _0x44ba9b[_0x60c2('0x26')]['dateStart'];delete _0x44ba9b[_0x60c2('0x26')][_0x60c2('0x27')];_0x457818[_0x60c2('0x26')]=_[_0x60c2('0x25')](_0x44ba9b[_0x60c2('0x26')]);_0x457818['filters']=_[_0x60c2('0x28')](_0x457818[_0x60c2('0x24')],_0x457818['query']);_0x2aaca8[_0x60c2('0x29')]=_[_0x60c2('0x28')](_0x457818[_0x60c2('0x24')],qs[_0x60c2('0x2a')](_0x44ba9b['query'][_0x60c2('0x2a')]));_0x2aaca8[_0x60c2('0x29')]=_0x2aaca8['attributes'][_0x60c2('0x2b')]?_0x2aaca8[_0x60c2('0x29')]:_0x457818[_0x60c2('0x24')];if(!_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x2c')](_0x60c2('0x2d'))){_0x2aaca8[_0x60c2('0x15')]=qs[_0x60c2('0x15')](_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x15')]);_0x2aaca8[_0x60c2('0x2e')]=qs[_0x60c2('0x2e')](_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x2e')]);}_0x2aaca8['order']=qs[_0x60c2('0x2f')](_0x44ba9b[_0x60c2('0x26')]['sort']);_0x2aaca8['where']=qs[_0x60c2('0x30')](_['pick'](_0x44ba9b[_0x60c2('0x26')],_0x457818[_0x60c2('0x30')]));if(_0x401f1a[_0x60c2('0x31')]){if(_0x401f1a[_0x60c2('0x27')]){_0x401f1a[_0x60c2('0x27')]=moment(_0x401f1a[_0x60c2('0x27')])['add'](0x1,_0x60c2('0x32'));}else{_0x401f1a[_0x60c2('0x27')]=moment(_0x401f1a[_0x60c2('0x31')])['add'](0x1,'day');}_[_0x60c2('0x33')](_0x2aaca8[_0x60c2('0x34')],{'createdAt':{'$gte':_0x401f1a[_0x60c2('0x31')],'$lte':_0x401f1a[_0x60c2('0x27')]}});}if(_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x35')]){_0x2aaca8['where']=_[_0x60c2('0x33')](_0x2aaca8[_0x60c2('0x34')],{'$or':_[_0x60c2('0x36')](_0x2aaca8[_0x60c2('0x29')],function(_0x34c80c){var _0x282275={};_0x282275[_0x34c80c]={'$like':'%'+_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x35')]+'%'};return _0x282275;})});}_0x2aaca8=_['merge']({},_0x2aaca8,_0x44ba9b[_0x60c2('0x37')]);var _0x511b67={'where':_0x2aaca8[_0x60c2('0x34')]};return db['JscriptySessionReport'][_0x60c2('0x38')](_0x511b67)[_0x60c2('0x39')](function(_0xdd2365){_0x2b053d[_0x60c2('0x38')]=_0xdd2365;if(_0x44ba9b[_0x60c2('0x26')][_0x60c2('0x3a')]){_0x2aaca8[_0x60c2('0x3b')]=[{'all':!![]}];}return db[_0x60c2('0x22')]['findAll'](_0x2aaca8);})[_0x60c2('0x39')](function(_0x2a911b){_0x2b053d[_0x60c2('0x3c')]=_0x2a911b;return _0x2b053d;})[_0x60c2('0x39')](respondWithFilteredResult(_0x14b059,_0x2aaca8))[_0x60c2('0x3d')](handleError(_0x14b059,null));};exports[_0x60c2('0x3e')]=function(_0x8929ae,_0xf4cda8){var _0x2d0cf2={'raw':!![],'where':{'id':_0x8929ae[_0x60c2('0x3f')]['id']}},_0x54ecaa={};_0x54ecaa[_0x60c2('0x24')]=_[_0x60c2('0x25')](db[_0x60c2('0x22')][_0x60c2('0x23')]);_0x54ecaa[_0x60c2('0x26')]=_[_0x60c2('0x25')](_0x8929ae[_0x60c2('0x26')]);_0x54ecaa[_0x60c2('0x30')]=_[_0x60c2('0x28')](_0x54ecaa[_0x60c2('0x24')],_0x54ecaa[_0x60c2('0x26')]);_0x2d0cf2[_0x60c2('0x29')]=_[_0x60c2('0x28')](_0x54ecaa[_0x60c2('0x24')],qs[_0x60c2('0x2a')](_0x8929ae[_0x60c2('0x26')][_0x60c2('0x2a')]));_0x2d0cf2[_0x60c2('0x29')]=_0x2d0cf2[_0x60c2('0x29')][_0x60c2('0x2b')]?_0x2d0cf2['attributes']:_0x54ecaa[_0x60c2('0x24')];if(_0x8929ae[_0x60c2('0x26')][_0x60c2('0x3a')]){_0x2d0cf2[_0x60c2('0x3b')]=[{'all':!![]}];}_0x2d0cf2=_['merge']({},_0x2d0cf2,_0x8929ae[_0x60c2('0x37')]);return db[_0x60c2('0x22')]['find'](_0x2d0cf2)['then'](handleEntityNotFound(_0xf4cda8,null))[_0x60c2('0x39')](respondWithResult(_0xf4cda8,null))[_0x60c2('0x3d')](handleError(_0xf4cda8,null));};exports[_0x60c2('0x40')]=function(_0x259634,_0x546ff5){return db['JscriptySessionReport'][_0x60c2('0x40')](_0x259634[_0x60c2('0x41')],{})['then'](respondWithResult(_0x546ff5,0xc9))[_0x60c2('0x3d')](handleError(_0x546ff5,null));};exports[_0x60c2('0x1b')]=function(_0x33cdbe,_0x54bf12){if(_0x33cdbe[_0x60c2('0x41')]['id']){delete _0x33cdbe['body']['id'];}return db[_0x60c2('0x22')][_0x60c2('0x42')]({'where':{'id':_0x33cdbe[_0x60c2('0x3f')]['id']}})[_0x60c2('0x39')](handleEntityNotFound(_0x54bf12,null))[_0x60c2('0x39')](saveUpdates(_0x33cdbe['body'],null))[_0x60c2('0x39')](respondWithResult(_0x54bf12,null))[_0x60c2('0x3d')](handleError(_0x54bf12,null));};exports[_0x60c2('0x1c')]=function(_0x384ebe,_0x1c418c){return db[_0x60c2('0x22')][_0x60c2('0x42')]({'where':{'id':_0x384ebe[_0x60c2('0x3f')]['id']}})[_0x60c2('0x39')](handleEntityNotFound(_0x1c418c,null))['then'](removeEntity(_0x1c418c,null))[_0x60c2('0x3d')](handleError(_0x1c418c,null));};exports[_0x60c2('0x43')]=function(_0x4cd0a5,_0x3359f9){return db[_0x60c2('0x22')][_0x60c2('0x43')]()[_0x60c2('0x39')](respondWithResult(_0x3359f9,null))[_0x60c2('0x3d')](handleError(_0x3359f9,null));};exports[_0x60c2('0x44')]=function(_0x3c58ff,_0x9bd2c5,_0x33ebc1){var _0x51f954={'raw':!![],'where':{}};var _0x460340={};var _0x20c623={'count':0x0,'rows':[]};return db['JscriptySessionReport']['findOne']({'where':{'id':_0x3c58ff[_0x60c2('0x3f')]['id']}})[_0x60c2('0x39')](handleEntityNotFound(_0x9bd2c5,null))[_0x60c2('0x39')](function(_0x26e8a2){if(_0x26e8a2){_0x460340[_0x60c2('0x24')]=_[_0x60c2('0x25')](db[_0x60c2('0x45')][_0x60c2('0x23')]);_0x460340[_0x60c2('0x26')]=_['keys'](_0x3c58ff['query']);_0x460340[_0x60c2('0x30')]=_[_0x60c2('0x28')](_0x460340[_0x60c2('0x24')],_0x460340[_0x60c2('0x26')]);_0x51f954[_0x60c2('0x29')]=_[_0x60c2('0x28')](_0x460340['model'],qs[_0x60c2('0x2a')](_0x3c58ff[_0x60c2('0x26')][_0x60c2('0x2a')]));_0x51f954['attributes']=_0x51f954['attributes']['length']?_0x51f954[_0x60c2('0x29')]:_0x460340[_0x60c2('0x24')];if(!_0x3c58ff[_0x60c2('0x26')][_0x60c2('0x2c')](_0x60c2('0x2d'))){_0x51f954[_0x60c2('0x15')]=qs['limit'](_0x3c58ff[_0x60c2('0x26')][_0x60c2('0x15')]);_0x51f954[_0x60c2('0x2e')]=qs[_0x60c2('0x2e')](_0x3c58ff[_0x60c2('0x26')][_0x60c2('0x2e')]);}_0x51f954['order']=qs[_0x60c2('0x2f')](_0x3c58ff['query']['sort']);_0x51f954[_0x60c2('0x34')]=qs[_0x60c2('0x30')](_[_0x60c2('0x46')](_0x3c58ff[_0x60c2('0x26')],_0x460340[_0x60c2('0x30')]));_0x51f954[_0x60c2('0x34')]['SessionId']=_0x26e8a2['id'];if(_0x3c58ff[_0x60c2('0x26')][_0x60c2('0x35')]){_0x51f954[_0x60c2('0x34')]=_[_0x60c2('0x33')](_0x51f954[_0x60c2('0x34')],{'$or':_[_0x60c2('0x36')](_0x51f954['attributes'],function(_0x41862e){var _0x3c10f7={};_0x3c10f7[_0x41862e]={'$like':'%'+_0x3c58ff[_0x60c2('0x26')]['filter']+'%'};return _0x3c10f7;})});}_0x51f954=_[_0x60c2('0x33')]({},_0x51f954,_0x3c58ff[_0x60c2('0x37')]);return db['JscriptyQuestionReport']['count']({'where':_0x51f954['where']})[_0x60c2('0x39')](function(_0x35c823){_0x20c623['count']=_0x35c823;if(_0x3c58ff['query'][_0x60c2('0x3a')]){_0x51f954[_0x60c2('0x3b')]=[{'all':!![]}];}return db[_0x60c2('0x45')][_0x60c2('0x47')](_0x51f954);})['then'](function(_0xd541f0){_0x20c623[_0x60c2('0x3c')]=_0xd541f0;return _0x20c623;});}})[_0x60c2('0x39')](respondWithFilteredResult(_0x9bd2c5,_0x51f954))[_0x60c2('0x3d')](handleError(_0x9bd2c5,null));};
\ No newline at end of file
+var _0xb18c=['offset','order','where','pick','add','day','merge','map','options','include','findAll','rows','intersection','includeAll','find','catch','create','update','body','describe','getQuestions','findOne','params','JscriptyQuestionReport','sort','filter','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','ejs','lodash','squel','crypto','to-csv','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','count','limit','status','set','Content-Range','json','reject','save','then','destroy','error','stack','name','send','index','JscriptySessionReport','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x12aedd,_0x29c5f8){var _0x5842b4=function(_0x509dd3){while(--_0x509dd3){_0x12aedd['push'](_0x12aedd['shift']());}};_0x5842b4(++_0x29c5f8);}(_0xb18c,0xfb));var _0xcb18=function(_0x4650e8,_0x320668){_0x4650e8=_0x4650e8-0x0;var _0x105805=_0xb18c[_0x4650e8];return _0x105805;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xcb18('0x0'));var rimraf=require(_0xcb18('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcb18('0x2'));var rp=require(_0xcb18('0x3'));var moment=require(_0xcb18('0x4'));var BPromise=require(_0xcb18('0x5'));var Mustache=require('mustache');var util=require(_0xcb18('0x6'));var path=require(_0xcb18('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xcb18('0x8'));var fs=require('fs');var _=require(_0xcb18('0x9'));var squel=require(_0xcb18('0xa'));var crypto=require(_0xcb18('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xcb18('0xc'));var querystring=require('querystring');var Papa=require(_0xcb18('0xd'));var Redis=require('ioredis');var qs=require(_0xcb18('0xe'));var logger=require('../../config/logger')(_0xcb18('0xf'));var utils=require(_0xcb18('0x10'));var config=require(_0xcb18('0x11'));var db=require(_0xcb18('0x12'))['db'];function respondWithStatusCode(_0x4ac007,_0x417831){_0x417831=_0x417831||0xcc;return function(_0x2eac8d){if(_0x2eac8d){return _0x4ac007[_0xcb18('0x13')](_0x417831);}return _0x4ac007['status'](_0x417831)[_0xcb18('0x14')]();};}function respondWithResult(_0x236bcc,_0x16a4f0){_0x16a4f0=_0x16a4f0||0xc8;return function(_0x2a2f8f){if(_0x2a2f8f){return _0x236bcc['status'](_0x16a4f0)['json'](_0x2a2f8f);}};}function respondWithFilteredResult(_0x41f2f0,_0x1ccaa5){return function(_0x52a6b3){if(_0x52a6b3){var _0x24a1bd=_0x52a6b3[_0xcb18('0x15')],_0x1da195=_0x1ccaa5['offset'],_0x3f273c=_0x1ccaa5['offset']+_0x1ccaa5[_0xcb18('0x16')],_0xad8bd;if(_0x3f273c>=_0x24a1bd){_0x3f273c=_0x24a1bd;_0xad8bd=0xc8;}else{_0xad8bd=0xce;}_0x41f2f0[_0xcb18('0x17')](_0xad8bd);return _0x41f2f0[_0xcb18('0x18')](_0xcb18('0x19'),_0x1da195+'-'+_0x3f273c+'/'+_0x24a1bd)[_0xcb18('0x1a')](_0x52a6b3);}return null;};}function patchUpdates(_0x3d3c53){return function(_0x1b2b70){try{jsonpatch['apply'](_0x1b2b70,_0x3d3c53,!![]);}catch(_0x173223){return BPromise[_0xcb18('0x1b')](_0x173223);}return _0x1b2b70[_0xcb18('0x1c')]();};}function saveUpdates(_0x49d973,_0x1fdc0b){return function(_0x21ba9d){if(_0x21ba9d){return _0x21ba9d['update'](_0x49d973)[_0xcb18('0x1d')](function(_0x16ab6a){return _0x16ab6a;});}return null;};}function removeEntity(_0x316d1d,_0x9eb328){return function(_0x6e4476){if(_0x6e4476){return _0x6e4476[_0xcb18('0x1e')]()[_0xcb18('0x1d')](function(){_0x316d1d['status'](0xcc)[_0xcb18('0x14')]();});}};}function handleEntityNotFound(_0x3eed88,_0x3c5fa8){return function(_0xd7ae71){if(!_0xd7ae71){_0x3eed88['sendStatus'](0x194);}return _0xd7ae71;};}function handleError(_0x1b7bda,_0x3e5159){_0x3e5159=_0x3e5159||0x1f4;return function(_0x41b352){logger[_0xcb18('0x1f')](_0x41b352[_0xcb18('0x20')]);if(_0x41b352[_0xcb18('0x21')]){delete _0x41b352[_0xcb18('0x21')];}_0x1b7bda['status'](_0x3e5159)[_0xcb18('0x22')](_0x41b352);};}exports[_0xcb18('0x23')]=function(_0x10214f,_0x4dfb95){var _0x3fbc5d={},_0x5a6c6b={},_0x81f5d9={'count':0x0,'rows':[]};var _0x309a8a=db[_0xcb18('0x24')][_0xcb18('0x25')];_0x5a6c6b[_0xcb18('0x26')]=_[_0xcb18('0x27')](_0x309a8a);var _0x812cb4={'dateStart':_0x10214f[_0xcb18('0x28')][_0xcb18('0x29')],'dateEnd':_0x10214f['query'][_0xcb18('0x2a')]};delete _0x10214f[_0xcb18('0x28')]['dateStart'];delete _0x10214f[_0xcb18('0x28')][_0xcb18('0x2a')];_0x5a6c6b[_0xcb18('0x28')]=_[_0xcb18('0x27')](_0x10214f['query']);_0x5a6c6b[_0xcb18('0x2b')]=_['intersection'](_0x5a6c6b[_0xcb18('0x26')],_0x5a6c6b[_0xcb18('0x28')]);_0x3fbc5d[_0xcb18('0x2c')]=_['intersection'](_0x5a6c6b[_0xcb18('0x26')],qs[_0xcb18('0x2d')](_0x10214f[_0xcb18('0x28')]['fields']));_0x3fbc5d[_0xcb18('0x2c')]=_0x3fbc5d[_0xcb18('0x2c')][_0xcb18('0x2e')]?_0x3fbc5d['attributes']:_0x5a6c6b[_0xcb18('0x26')];if(!_0x10214f[_0xcb18('0x28')][_0xcb18('0x2f')](_0xcb18('0x30'))){_0x3fbc5d[_0xcb18('0x16')]=qs[_0xcb18('0x16')](_0x10214f[_0xcb18('0x28')]['limit']);_0x3fbc5d[_0xcb18('0x31')]=qs[_0xcb18('0x31')](_0x10214f[_0xcb18('0x28')][_0xcb18('0x31')]);}_0x3fbc5d[_0xcb18('0x32')]=qs['sort'](_0x10214f['query']['sort']);_0x3fbc5d[_0xcb18('0x33')]=qs[_0xcb18('0x2b')](_[_0xcb18('0x34')](_0x10214f[_0xcb18('0x28')],_0x5a6c6b[_0xcb18('0x2b')]));if(_0x812cb4[_0xcb18('0x29')]){if(_0x812cb4['dateEnd']){_0x812cb4[_0xcb18('0x2a')]=moment(_0x812cb4[_0xcb18('0x2a')])[_0xcb18('0x35')](0x1,_0xcb18('0x36'));}else{_0x812cb4['dateEnd']=moment(_0x812cb4['dateStart'])[_0xcb18('0x35')](0x1,'day');}_[_0xcb18('0x37')](_0x3fbc5d[_0xcb18('0x33')],{'createdAt':{'$gte':_0x812cb4['dateStart'],'$lte':_0x812cb4['dateEnd']}});}if(_0x10214f[_0xcb18('0x28')]['filter']){_0x3fbc5d[_0xcb18('0x33')]=_[_0xcb18('0x37')](_0x3fbc5d['where'],{'$or':_[_0xcb18('0x38')](_0x3fbc5d[_0xcb18('0x2c')],function(_0x1bd076){var _0x14d990={};_0x14d990[_0x1bd076]={'$like':'%'+_0x10214f[_0xcb18('0x28')]['filter']+'%'};return _0x14d990;})});}_0x3fbc5d=_[_0xcb18('0x37')]({},_0x3fbc5d,_0x10214f[_0xcb18('0x39')]);var _0x536dc9={'where':_0x3fbc5d[_0xcb18('0x33')]};return db['JscriptySessionReport'][_0xcb18('0x15')](_0x536dc9)['then'](function(_0x549d30){_0x81f5d9['count']=_0x549d30;if(_0x10214f[_0xcb18('0x28')]['includeAll']){_0x3fbc5d[_0xcb18('0x3a')]=[{'all':!![]}];}return db[_0xcb18('0x24')][_0xcb18('0x3b')](_0x3fbc5d);})[_0xcb18('0x1d')](function(_0x3e6396){_0x81f5d9[_0xcb18('0x3c')]=_0x3e6396;return _0x81f5d9;})[_0xcb18('0x1d')](respondWithFilteredResult(_0x4dfb95,_0x3fbc5d))['catch'](handleError(_0x4dfb95,null));};exports['show']=function(_0x52e9ba,_0x500366){var _0xa5610b={'raw':!![],'where':{'id':_0x52e9ba['params']['id']}},_0x4c1e1d={};_0x4c1e1d['model']=_[_0xcb18('0x27')](db[_0xcb18('0x24')][_0xcb18('0x25')]);_0x4c1e1d[_0xcb18('0x28')]=_[_0xcb18('0x27')](_0x52e9ba['query']);_0x4c1e1d[_0xcb18('0x2b')]=_['intersection'](_0x4c1e1d[_0xcb18('0x26')],_0x4c1e1d['query']);_0xa5610b[_0xcb18('0x2c')]=_[_0xcb18('0x3d')](_0x4c1e1d['model'],qs[_0xcb18('0x2d')](_0x52e9ba[_0xcb18('0x28')]['fields']));_0xa5610b['attributes']=_0xa5610b['attributes'][_0xcb18('0x2e')]?_0xa5610b[_0xcb18('0x2c')]:_0x4c1e1d[_0xcb18('0x26')];if(_0x52e9ba[_0xcb18('0x28')][_0xcb18('0x3e')]){_0xa5610b[_0xcb18('0x3a')]=[{'all':!![]}];}_0xa5610b=_[_0xcb18('0x37')]({},_0xa5610b,_0x52e9ba[_0xcb18('0x39')]);return db[_0xcb18('0x24')][_0xcb18('0x3f')](_0xa5610b)[_0xcb18('0x1d')](handleEntityNotFound(_0x500366,null))[_0xcb18('0x1d')](respondWithResult(_0x500366,null))[_0xcb18('0x40')](handleError(_0x500366,null));};exports[_0xcb18('0x41')]=function(_0xe581fc,_0xc1259e){return db[_0xcb18('0x24')][_0xcb18('0x41')](_0xe581fc['body'],{})[_0xcb18('0x1d')](respondWithResult(_0xc1259e,0xc9))[_0xcb18('0x40')](handleError(_0xc1259e,null));};exports[_0xcb18('0x42')]=function(_0xcd5d2b,_0x50b965){if(_0xcd5d2b['body']['id']){delete _0xcd5d2b[_0xcb18('0x43')]['id'];}return db[_0xcb18('0x24')][_0xcb18('0x3f')]({'where':{'id':_0xcd5d2b['params']['id']}})[_0xcb18('0x1d')](handleEntityNotFound(_0x50b965,null))['then'](saveUpdates(_0xcd5d2b['body'],null))['then'](respondWithResult(_0x50b965,null))['catch'](handleError(_0x50b965,null));};exports['destroy']=function(_0x21db99,_0x3d15ec){return db[_0xcb18('0x24')][_0xcb18('0x3f')]({'where':{'id':_0x21db99['params']['id']}})[_0xcb18('0x1d')](handleEntityNotFound(_0x3d15ec,null))['then'](removeEntity(_0x3d15ec,null))[_0xcb18('0x40')](handleError(_0x3d15ec,null));};exports['describe']=function(_0x618fde,_0xa8781){return db[_0xcb18('0x24')][_0xcb18('0x44')]()[_0xcb18('0x1d')](respondWithResult(_0xa8781,null))[_0xcb18('0x40')](handleError(_0xa8781,null));};exports[_0xcb18('0x45')]=function(_0x4c5613,_0x5c37b6,_0x1e74ec){var _0x381902={'raw':!![],'where':{}};var _0x64fcaa={};var _0x56b1d3={'count':0x0,'rows':[]};return db[_0xcb18('0x24')][_0xcb18('0x46')]({'where':{'id':_0x4c5613[_0xcb18('0x47')]['id']}})[_0xcb18('0x1d')](handleEntityNotFound(_0x5c37b6,null))[_0xcb18('0x1d')](function(_0x57931f){if(_0x57931f){_0x64fcaa[_0xcb18('0x26')]=_['keys'](db[_0xcb18('0x48')]['rawAttributes']);_0x64fcaa['query']=_[_0xcb18('0x27')](_0x4c5613[_0xcb18('0x28')]);_0x64fcaa[_0xcb18('0x2b')]=_[_0xcb18('0x3d')](_0x64fcaa[_0xcb18('0x26')],_0x64fcaa[_0xcb18('0x28')]);_0x381902[_0xcb18('0x2c')]=_[_0xcb18('0x3d')](_0x64fcaa[_0xcb18('0x26')],qs['fields'](_0x4c5613[_0xcb18('0x28')]['fields']));_0x381902['attributes']=_0x381902[_0xcb18('0x2c')][_0xcb18('0x2e')]?_0x381902[_0xcb18('0x2c')]:_0x64fcaa[_0xcb18('0x26')];if(!_0x4c5613[_0xcb18('0x28')]['hasOwnProperty'](_0xcb18('0x30'))){_0x381902[_0xcb18('0x16')]=qs[_0xcb18('0x16')](_0x4c5613['query'][_0xcb18('0x16')]);_0x381902[_0xcb18('0x31')]=qs['offset'](_0x4c5613[_0xcb18('0x28')]['offset']);}_0x381902[_0xcb18('0x32')]=qs[_0xcb18('0x49')](_0x4c5613[_0xcb18('0x28')][_0xcb18('0x49')]);_0x381902[_0xcb18('0x33')]=qs[_0xcb18('0x2b')](_[_0xcb18('0x34')](_0x4c5613['query'],_0x64fcaa[_0xcb18('0x2b')]));_0x381902['where']['SessionId']=_0x57931f['id'];if(_0x4c5613[_0xcb18('0x28')]['filter']){_0x381902[_0xcb18('0x33')]=_['merge'](_0x381902[_0xcb18('0x33')],{'$or':_[_0xcb18('0x38')](_0x381902['attributes'],function(_0x1be8ab){var _0x4db17a={};_0x4db17a[_0x1be8ab]={'$like':'%'+_0x4c5613[_0xcb18('0x28')][_0xcb18('0x4a')]+'%'};return _0x4db17a;})});}_0x381902=_[_0xcb18('0x37')]({},_0x381902,_0x4c5613[_0xcb18('0x39')]);return db[_0xcb18('0x48')][_0xcb18('0x15')]({'where':_0x381902[_0xcb18('0x33')]})['then'](function(_0x14ebb3){_0x56b1d3[_0xcb18('0x15')]=_0x14ebb3;if(_0x4c5613[_0xcb18('0x28')]['includeAll']){_0x381902[_0xcb18('0x3a')]=[{'all':!![]}];}return db['JscriptyQuestionReport'][_0xcb18('0x3b')](_0x381902);})[_0xcb18('0x1d')](function(_0x2dab71){_0x56b1d3[_0xcb18('0x3c')]=_0x2dab71;return _0x56b1d3;});}})[_0xcb18('0x1d')](respondWithFilteredResult(_0x5c37b6,_0x381902))[_0xcb18('0x40')](handleError(_0x5c37b6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x514a=['lodash','util','api','moment','bluebird','./jscriptySessionReport.attributes','exports','define'];(function(_0x53f897,_0x539857){var _0x6879f8=function(_0xa3c36){while(--_0xa3c36){_0x53f897['push'](_0x53f897['shift']());}};_0x6879f8(++_0x539857);}(_0x514a,0x150));var _0xa514=function(_0x214f3d,_0x2c5428){_0x214f3d=_0x214f3d-0x0;var _0x249106=_0x514a[_0x214f3d];return _0x249106;};'use strict';var _=require(_0xa514('0x0'));var util=require(_0xa514('0x1'));var logger=require('../../config/logger')(_0xa514('0x2'));var moment=require(_0xa514('0x3'));var BPromise=require(_0xa514('0x4'));var rp=require('request-promise');var attributes=require(_0xa514('0x5'));module[_0xa514('0x6')]=function(_0x2bdcfb,_0x3ae37c){return _0x2bdcfb[_0xa514('0x7')]('JscriptySessionReport',attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7646=['./jscriptySessionReport.attributes','define','report_jscripty_sessions','util','../../config/logger','api','moment','request-promise'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x7646,0x1eb));var _0x6764=function(_0x5d961c,_0x2ac2d3){_0x5d961c=_0x5d961c-0x0;var _0x3f208f=_0x7646[_0x5d961c];return _0x3f208f;};'use strict';var _=require('lodash');var util=require(_0x6764('0x0'));var logger=require(_0x6764('0x1'))(_0x6764('0x2'));var moment=require(_0x6764('0x3'));var BPromise=require('bluebird');var rp=require(_0x6764('0x4'));var attributes=require(_0x6764('0x5'));module['exports']=function(_0x205b17,_0x5aa92b){return _0x205b17[_0x6764('0x6')]('JscriptySessionReport',attributes,{'tableName':_0x6764('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01f6=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','JscriptySessionReport,\x20%s,\x20%s','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','bluebird','randomstring','../../mysqldb'];(function(_0x2df507,_0x553862){var _0x1f7167=function(_0x11319e){while(--_0x11319e){_0x2df507['push'](_0x2df507['shift']());}};_0x1f7167(++_0x553862);}(_0x01f6,0x10e));var _0x601f=function(_0x55e2f4,_0x715c55){_0x55e2f4=_0x55e2f4-0x0;var _0x53e0f3=_0x01f6[_0x55e2f4];return _0x53e0f3;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x601f('0x0'));var rs=require(_0x601f('0x1'));var fs=require('fs');var db=require(_0x601f('0x2'))['db'];var utils=require(_0x601f('0x3'));var logger=require(_0x601f('0x4'))(_0x601f('0x5'));var config=require(_0x601f('0x6'));var jayson=require(_0x601f('0x7'));var client=jayson[_0x601f('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4305f2,_0x538b24,_0x4d5e75){return new BPromise(function(_0x3c1580,_0x1cad08){return client[_0x601f('0x9')](_0x4305f2,_0x4d5e75)[_0x601f('0xa')](function(_0x5ed4a7){logger[_0x601f('0xb')](_0x601f('0xc'),_0x538b24,'request\x20sent');logger[_0x601f('0xd')](_0x601f('0xe'),_0x538b24,_0x601f('0xf'),JSON[_0x601f('0x10')](_0x5ed4a7));if(_0x5ed4a7[_0x601f('0x11')]){if(_0x5ed4a7['error'][_0x601f('0x12')]===0x1f4){logger['error']('JscriptySessionReport,\x20%s,\x20%s',_0x538b24,_0x5ed4a7[_0x601f('0x11')][_0x601f('0x13')]);return _0x1cad08(_0x5ed4a7['error'][_0x601f('0x13')]);}logger[_0x601f('0x11')]('JscriptySessionReport,\x20%s,\x20%s',_0x538b24,_0x5ed4a7[_0x601f('0x11')][_0x601f('0x13')]);return _0x3c1580(_0x5ed4a7['error'][_0x601f('0x13')]);}else{logger[_0x601f('0xb')](_0x601f('0xc'),_0x538b24,_0x601f('0xf'));_0x3c1580(_0x5ed4a7['result']['message']);}})[_0x601f('0x14')](function(_0x5cc71d){logger[_0x601f('0x11')](_0x601f('0xc'),_0x538b24,_0x5cc71d);_0x1cad08(_0x5cc71d);});});}
\ No newline at end of file
+var _0x2678=['client','http','then','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','error','code','message','info','util','moment','bluebird','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2678,0x1bb));var _0x8267=function(_0x2698c7,_0x32cf6c){_0x2698c7=_0x2698c7-0x0;var _0x1abf4a=_0x2678[_0x2698c7];return _0x1abf4a;};'use strict';var _=require('lodash');var util=require(_0x8267('0x0'));var moment=require(_0x8267('0x1'));var BPromise=require(_0x8267('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x8267('0x3'));var logger=require(_0x8267('0x4'))(_0x8267('0x5'));var config=require('../../config/environment');var jayson=require(_0x8267('0x6'));var client=jayson[_0x8267('0x7')][_0x8267('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3e6635,_0x264d94,_0x3f30c2){return new BPromise(function(_0x2ac4ad,_0x2bbb0d){return client['request'](_0x3e6635,_0x3f30c2)[_0x8267('0x9')](function(_0x2f7832){logger['info'](_0x8267('0xa'),_0x264d94,_0x8267('0xb'));logger[_0x8267('0xc')](_0x8267('0xd'),_0x264d94,_0x8267('0xb'),JSON['stringify'](_0x2f7832));if(_0x2f7832[_0x8267('0xe')]){if(_0x2f7832[_0x8267('0xe')][_0x8267('0xf')]===0x1f4){logger[_0x8267('0xe')](_0x8267('0xa'),_0x264d94,_0x2f7832[_0x8267('0xe')][_0x8267('0x10')]);return _0x2bbb0d(_0x2f7832[_0x8267('0xe')][_0x8267('0x10')]);}logger[_0x8267('0xe')](_0x8267('0xa'),_0x264d94,_0x2f7832['error'][_0x8267('0x10')]);return _0x2ac4ad(_0x2f7832['error'][_0x8267('0x10')]);}else{logger[_0x8267('0x11')](_0x8267('0xa'),_0x264d94,_0x8267('0xb'));_0x2ac4ad(_0x2f7832['result'][_0x8267('0x10')]);}})['catch'](function(_0x3d2c1e){logger[_0x8267('0xe')]('JscriptySessionReport,\x20%s,\x20%s',_0x264d94,_0x3d2c1e);_0x2bbb0d(_0x3d2c1e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc60e=['./license.controller','get','index','put','/:id','exports','connect-timeout','express','Router','../../components/auth/service','../../config/environment'];(function(_0x291b6a,_0x2a609d){var _0x52af4d=function(_0xc124aa){while(--_0xc124aa){_0x291b6a['push'](_0x291b6a['shift']());}};_0x52af4d(++_0x2a609d);}(_0xc60e,0x95));var _0xec60=function(_0x56f0cf,_0x5a4db4){_0x56f0cf=_0x56f0cf-0x0;var _0x11af09=_0xc60e[_0x56f0cf];return _0x11af09;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xec60('0x0'));var express=require(_0xec60('0x1'));var router=express[_0xec60('0x2')]();var auth=require(_0xec60('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xec60('0x4'));var controller=require(_0xec60('0x5'));router[_0xec60('0x6')]('/',controller[_0xec60('0x7')]);router[_0xec60('0x8')](_0xec60('0x9'),auth['isAuthenticated'](),controller['update']);module[_0xec60('0xa')]=router;
\ No newline at end of file
+var _0xc782=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./license.controller','get','index','put','exports','path'];(function(_0x163bf0,_0x3c12ed){var _0x933c4=function(_0x4ceaf2){while(--_0x4ceaf2){_0x163bf0['push'](_0x163bf0['shift']());}};_0x933c4(++_0x3c12ed);}(_0xc782,0x1ee));var _0x2c78=function(_0x27fa56,_0x4def9b){_0x27fa56=_0x27fa56-0x0;var _0x25b2bc=_0xc782[_0x27fa56];return _0x25b2bc;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x2c78('0x0'));var timeout=require(_0x2c78('0x1'));var express=require(_0x2c78('0x2'));var router=express[_0x2c78('0x3')]();var auth=require(_0x2c78('0x4'));var interaction=require(_0x2c78('0x5'));var config=require('../../config/environment');var controller=require(_0x2c78('0x6'));router[_0x2c78('0x7')]('/',controller[_0x2c78('0x8')]);router[_0x2c78('0x9')]('/:id',auth['isAuthenticated'](),controller['update']);module[_0x2c78('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8ac=['STRING','INTEGER','sequelize','exports'];(function(_0xcd3b0f,_0x928a2){var _0x4b95dc=function(_0x7edc5f){while(--_0x7edc5f){_0xcd3b0f['push'](_0xcd3b0f['shift']());}};_0x4b95dc(++_0x928a2);}(_0xc8ac,0xbe));var _0xcc8a=function(_0x3c2b2e,_0x3e6e53){_0x3c2b2e=_0x3c2b2e-0x0;var _0x27a338=_0xc8ac[_0x3c2b2e];return _0x27a338;};'use strict';var Sequelize=require(_0xcc8a('0x0'));module[_0xcc8a('0x1')]={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xcc8a('0x2')]},'data2':{'type':Sequelize[_0xcc8a('0x2')]},'chatLicenseExceeded':{'type':Sequelize[_0xcc8a('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xf1b8=['exports','TEXT','sequelize'];(function(_0x156423,_0xc35cfc){var _0x5918f4=function(_0x4ecbfa){while(--_0x4ecbfa){_0x156423['push'](_0x156423['shift']());}};_0x5918f4(++_0xc35cfc);}(_0xf1b8,0x1b5));var _0x8f1b=function(_0x548b58,_0x2c5d4e){_0x548b58=_0x548b58-0x0;var _0x2f3fe2=_0xf1b8[_0x548b58];return _0x2f3fe2;};'use strict';var Sequelize=require(_0x8f1b('0x0'));module[_0x8f1b('0x1')]={'license':{'type':Sequelize[_0x8f1b('0x2')]},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6b1=['catch','body','params','get','checkLicense','demo','html-pdf','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','limit','Content-Range','json','apply','reject','save','update','then','end','error','stack','name','send','index','model','keys','License','rawAttributes','query','filters','intersection','attributes','fields','merge','options','getLicense'];(function(_0xb598fd,_0x473981){var _0x331159=function(_0x1526eb){while(--_0x1526eb){_0xb598fd['push'](_0xb598fd['shift']());}};_0x331159(++_0x473981);}(_0xd6b1,0x172));var _0x1d6b=function(_0x360a9c,_0x48f057){_0x360a9c=_0x360a9c-0x0;var _0x534490=_0xd6b1[_0x360a9c];return _0x534490;};'use strict';var pdf=require(_0x1d6b('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x1d6b('0x1'));var rp=require(_0x1d6b('0x2'));var moment=require(_0x1d6b('0x3'));var BPromise=require(_0x1d6b('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1d6b('0x5'));var sox=require(_0x1d6b('0x6'));var csv=require(_0x1d6b('0x7'));var ejs=require(_0x1d6b('0x8'));var fs=require('fs');var _=require(_0x1d6b('0x9'));var squel=require(_0x1d6b('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1d6b('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var qs=require(_0x1d6b('0xb'));var logger=require(_0x1d6b('0xc'))(_0x1d6b('0xd'));var utils=require(_0x1d6b('0xe'));var config=require(_0x1d6b('0xf'));var db=require(_0x1d6b('0x10'))['db'];function respondWithStatusCode(_0x33dbe0,_0x237d9b){_0x237d9b=_0x237d9b||0xcc;return function(_0x19d824){if(_0x19d824){return _0x33dbe0[_0x1d6b('0x11')](_0x237d9b);}return _0x33dbe0[_0x1d6b('0x12')](_0x237d9b)['end']();};}function respondWithResult(_0x3b074b,_0xc831c8){_0xc831c8=_0xc831c8||0xc8;return function(_0x1c2886){if(_0x1c2886){return _0x3b074b[_0x1d6b('0x12')](_0xc831c8)['json'](_0x1c2886);}};}function respondWithFilteredResult(_0x1667f6,_0x4b58fb){return function(_0x1a17b3){if(_0x1a17b3){var _0x498ecc=_0x1a17b3['count'],_0x2cb3ff=_0x4b58fb[_0x1d6b('0x13')],_0x2ca831=_0x4b58fb['offset']+_0x4b58fb[_0x1d6b('0x14')],_0x20dfc3;if(_0x2ca831>=_0x498ecc){_0x2ca831=_0x498ecc;_0x20dfc3=0xc8;}else{_0x20dfc3=0xce;}_0x1667f6['status'](_0x20dfc3);return _0x1667f6['set'](_0x1d6b('0x15'),_0x2cb3ff+'-'+_0x2ca831+'/'+_0x498ecc)[_0x1d6b('0x16')](_0x1a17b3);}return null;};}function patchUpdates(_0x326d7f){return function(_0x872e1f){try{jsonpatch[_0x1d6b('0x17')](_0x872e1f,_0x326d7f,!![]);}catch(_0x1f5072){return BPromise[_0x1d6b('0x18')](_0x1f5072);}return _0x872e1f[_0x1d6b('0x19')]();};}function saveUpdates(_0x3d25a9,_0x1450dd){return function(_0x409b14){if(_0x409b14){return _0x409b14[_0x1d6b('0x1a')](_0x3d25a9)[_0x1d6b('0x1b')](function(_0x287099){return _0x287099;});}return null;};}function removeEntity(_0x281cd4,_0x346343){return function(_0x10f1e3){if(_0x10f1e3){return _0x10f1e3['destroy']()[_0x1d6b('0x1b')](function(){_0x281cd4[_0x1d6b('0x12')](0xcc)[_0x1d6b('0x1c')]();});}};}function handleEntityNotFound(_0x44ddbb,_0x30fad3){return function(_0x5706c4){if(!_0x5706c4){_0x44ddbb[_0x1d6b('0x11')](0x194);}return _0x5706c4;};}function handleError(_0x271cda,_0x5d6b1b){_0x5d6b1b=_0x5d6b1b||0x1f4;return function(_0x27546b){logger[_0x1d6b('0x1d')](_0x27546b[_0x1d6b('0x1e')]);if(_0x27546b['name']){delete _0x27546b[_0x1d6b('0x1f')];}_0x271cda['status'](_0x5d6b1b)[_0x1d6b('0x20')](_0x27546b);};}var utilLicense=require('../../config/license/util');exports[_0x1d6b('0x21')]=function(_0x47cfe3,_0x499d7c){var _0x467d1f={'raw':!![],'where':{'id':0x1}},_0x2c4e4d={};_0x2c4e4d[_0x1d6b('0x22')]=_[_0x1d6b('0x23')](db[_0x1d6b('0x24')][_0x1d6b('0x25')]);_0x2c4e4d['query']=_[_0x1d6b('0x23')](_0x47cfe3[_0x1d6b('0x26')]);_0x2c4e4d[_0x1d6b('0x27')]=_[_0x1d6b('0x28')](_0x2c4e4d['model'],_0x2c4e4d['query']);_0x467d1f[_0x1d6b('0x29')]=_[_0x1d6b('0x28')](_0x2c4e4d[_0x1d6b('0x22')],qs[_0x1d6b('0x2a')](_0x47cfe3[_0x1d6b('0x26')][_0x1d6b('0x2a')]));_0x467d1f[_0x1d6b('0x29')]=_0x467d1f['attributes']['length']?_0x467d1f[_0x1d6b('0x29')]:_0x2c4e4d['model'];_0x467d1f=_[_0x1d6b('0x2b')]({},_0x467d1f,_0x47cfe3[_0x1d6b('0x2c')]);return utilLicense[_0x1d6b('0x2d')](_0x467d1f)['then'](respondWithResult(_0x499d7c,null))[_0x1d6b('0x2e')](handleError(_0x499d7c,null));};exports[_0x1d6b('0x1a')]=function(_0xe49832,_0x421ebf){if(_0xe49832[_0x1d6b('0x2f')]['id']){delete _0xe49832['body']['id'];}return db[_0x1d6b('0x24')]['find']({'where':{'id':_0xe49832[_0x1d6b('0x30')]['id']}})[_0x1d6b('0x1b')](handleEntityNotFound(_0x421ebf,null))[_0x1d6b('0x1b')](function(_0x58bf2f){var _0x29eccb=_0x58bf2f[_0x1d6b('0x31')]({'plain':!![]});return utilLicense[_0x1d6b('0x32')](_0x29eccb,_0xe49832['body']['key']);})[_0x1d6b('0x1b')](function(_0x3fa2a0){if(!_0x3fa2a0[_0x1d6b('0x33')]){return saveUpdates(_0xe49832[_0x1d6b('0x2f')],null);}return _0x3fa2a0;})[_0x1d6b('0x1b')](respondWithResult(_0x421ebf,null))[_0x1d6b('0x2e')](handleError(_0x421ebf,null));};
\ No newline at end of file
+var _0xe5af=['eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','error','name','send','index','model','keys','License','filters','intersection','attributes','length','merge','options','getLicense','catch','body','find','params','get','key'];(function(_0x376675,_0x18feda){var _0x57f575=function(_0x250206){while(--_0x250206){_0x376675['push'](_0x376675['shift']());}};_0x57f575(++_0x18feda);}(_0xe5af,0x9c));var _0xfe5a=function(_0x399baf,_0x57593d){_0x399baf=_0x399baf-0x0;var _0x4c287e=_0xe5af[_0x399baf];return _0x4c287e;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xfe5a('0x0'));var rimraf=require(_0xfe5a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfe5a('0x2'));var rp=require(_0xfe5a('0x3'));var moment=require(_0xfe5a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfe5a('0x5'));var util=require('util');var path=require('path');var sox=require(_0xfe5a('0x6'));var csv=require(_0xfe5a('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xfe5a('0x8'));var crypto=require(_0xfe5a('0x9'));var jsforce=require(_0xfe5a('0xa'));var deskjs=require(_0xfe5a('0xb'));var toCsv=require('to-csv');var querystring=require(_0xfe5a('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require(_0xfe5a('0xd'));var logger=require(_0xfe5a('0xe'))('api');var utils=require(_0xfe5a('0xf'));var config=require(_0xfe5a('0x10'));var db=require(_0xfe5a('0x11'))['db'];function respondWithStatusCode(_0x50024c,_0x3a3e97){_0x3a3e97=_0x3a3e97||0xcc;return function(_0x5bf3b4){if(_0x5bf3b4){return _0x50024c[_0xfe5a('0x12')](_0x3a3e97);}return _0x50024c[_0xfe5a('0x13')](_0x3a3e97)[_0xfe5a('0x14')]();};}function respondWithResult(_0x374ded,_0x3d9683){_0x3d9683=_0x3d9683||0xc8;return function(_0x58b72c){if(_0x58b72c){return _0x374ded[_0xfe5a('0x13')](_0x3d9683)[_0xfe5a('0x15')](_0x58b72c);}};}function respondWithFilteredResult(_0x42969b,_0x362115){return function(_0x319482){if(_0x319482){var _0x217976=_0x319482[_0xfe5a('0x16')],_0x375380=_0x362115[_0xfe5a('0x17')],_0xeb454=_0x362115[_0xfe5a('0x17')]+_0x362115[_0xfe5a('0x18')],_0x111d4d;if(_0xeb454>=_0x217976){_0xeb454=_0x217976;_0x111d4d=0xc8;}else{_0x111d4d=0xce;}_0x42969b[_0xfe5a('0x13')](_0x111d4d);return _0x42969b[_0xfe5a('0x19')](_0xfe5a('0x1a'),_0x375380+'-'+_0xeb454+'/'+_0x217976)['json'](_0x319482);}return null;};}function patchUpdates(_0x20620b){return function(_0x456707){try{jsonpatch['apply'](_0x456707,_0x20620b,!![]);}catch(_0x3b0101){return BPromise[_0xfe5a('0x1b')](_0x3b0101);}return _0x456707[_0xfe5a('0x1c')]();};}function saveUpdates(_0x4bd05a,_0x485c15){return function(_0x3e11ad){if(_0x3e11ad){return _0x3e11ad[_0xfe5a('0x1d')](_0x4bd05a)[_0xfe5a('0x1e')](function(_0x3b3022){return _0x3b3022;});}return null;};}function removeEntity(_0x1467a0,_0x355869){return function(_0x564c1d){if(_0x564c1d){return _0x564c1d[_0xfe5a('0x1f')]()['then'](function(){_0x1467a0[_0xfe5a('0x13')](0xcc)[_0xfe5a('0x14')]();});}};}function handleEntityNotFound(_0x1fbde5,_0x4b0112){return function(_0x4bbef1){if(!_0x4bbef1){_0x1fbde5[_0xfe5a('0x12')](0x194);}return _0x4bbef1;};}function handleError(_0x3e55fd,_0x494df3){_0x494df3=_0x494df3||0x1f4;return function(_0x44a0bd){logger[_0xfe5a('0x20')](_0x44a0bd['stack']);if(_0x44a0bd[_0xfe5a('0x21')]){delete _0x44a0bd[_0xfe5a('0x21')];}_0x3e55fd[_0xfe5a('0x13')](_0x494df3)[_0xfe5a('0x22')](_0x44a0bd);};}var utilLicense=require('../../config/license/util');exports[_0xfe5a('0x23')]=function(_0x2f5d04,_0x24481f){var _0x1cd531={'raw':!![],'where':{'id':0x1}},_0x36bf20={};_0x36bf20[_0xfe5a('0x24')]=_[_0xfe5a('0x25')](db[_0xfe5a('0x26')]['rawAttributes']);_0x36bf20['query']=_[_0xfe5a('0x25')](_0x2f5d04['query']);_0x36bf20[_0xfe5a('0x27')]=_[_0xfe5a('0x28')](_0x36bf20[_0xfe5a('0x24')],_0x36bf20['query']);_0x1cd531['attributes']=_['intersection'](_0x36bf20[_0xfe5a('0x24')],qs['fields'](_0x2f5d04['query']['fields']));_0x1cd531[_0xfe5a('0x29')]=_0x1cd531[_0xfe5a('0x29')][_0xfe5a('0x2a')]?_0x1cd531[_0xfe5a('0x29')]:_0x36bf20[_0xfe5a('0x24')];_0x1cd531=_[_0xfe5a('0x2b')]({},_0x1cd531,_0x2f5d04[_0xfe5a('0x2c')]);return utilLicense[_0xfe5a('0x2d')](_0x1cd531)[_0xfe5a('0x1e')](respondWithResult(_0x24481f,null))[_0xfe5a('0x2e')](handleError(_0x24481f,null));};exports[_0xfe5a('0x1d')]=function(_0x517969,_0x1f0c86){if(_0x517969[_0xfe5a('0x2f')]['id']){delete _0x517969['body']['id'];}return db[_0xfe5a('0x26')][_0xfe5a('0x30')]({'where':{'id':_0x517969[_0xfe5a('0x31')]['id']}})[_0xfe5a('0x1e')](handleEntityNotFound(_0x1f0c86,null))[_0xfe5a('0x1e')](function(_0x5ed29a){var _0x4fefad=_0x5ed29a[_0xfe5a('0x32')]({'plain':!![]});return utilLicense['checkLicense'](_0x4fefad,_0x517969[_0xfe5a('0x2f')][_0xfe5a('0x33')]);})[_0xfe5a('0x1e')](function(_0x42c29e){if(!_0x42c29e['demo']){return saveUpdates(_0x517969[_0xfe5a('0x2f')],null);}return _0x42c29e;})[_0xfe5a('0x1e')](respondWithResult(_0x1f0c86,null))[_0xfe5a('0x2e')](handleError(_0x1f0c86,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ccb=['bluebird','request-promise','define','license','lodash','util','api','moment'];(function(_0xad8017,_0x2ab077){var _0x54bc2f=function(_0xbb8236){while(--_0xbb8236){_0xad8017['push'](_0xad8017['shift']());}};_0x54bc2f(++_0x2ab077);}(_0x8ccb,0x1c4));var _0xb8cc=function(_0x18cac4,_0x57a4d5){_0x18cac4=_0x18cac4-0x0;var _0x2227c6=_0x8ccb[_0x18cac4];return _0x2227c6;};'use strict';var _=require(_0xb8cc('0x0'));var util=require(_0xb8cc('0x1'));var logger=require('../../config/logger')(_0xb8cc('0x2'));var moment=require(_0xb8cc('0x3'));var BPromise=require(_0xb8cc('0x4'));var rp=require(_0xb8cc('0x5'));var attributes=require('./license.attributes');module['exports']=function(_0x115fdc,_0x3672bc){return _0x115fdc[_0xb8cc('0x6')]('License',attributes,{'tableName':_0xb8cc('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe1f0=['exports','License','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x1f404f,_0xbf2cb7){var _0x4d04a3=function(_0x4b8a7d){while(--_0x4b8a7d){_0x1f404f['push'](_0x1f404f['shift']());}};_0x4d04a3(++_0xbf2cb7);}(_0xe1f0,0x1c2));var _0x0e1f=function(_0x3bcfbd,_0x5052ff){_0x3bcfbd=_0x3bcfbd-0x0;var _0x23ab4d=_0xe1f0[_0x3bcfbd];return _0x23ab4d;};'use strict';var _=require('lodash');var util=require(_0x0e1f('0x0'));var logger=require(_0x0e1f('0x1'))('api');var moment=require(_0x0e1f('0x2'));var BPromise=require(_0x0e1f('0x3'));var rp=require(_0x0e1f('0x4'));var attributes=require('./license.attributes');module[_0x0e1f('0x5')]=function(_0x3c7961,_0x432348){return _0x3c7961['define'](_0x0e1f('0x6'),attributes,{'tableName':'license','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe74d=['request\x20sent','debug','License,\x20%s,\x20%s,\x20%s','stringify','error','code','License,\x20%s,\x20%s','message','result','lodash','bluebird','randomstring','../../mysqldb','rpc','jayson/promise','http','then','info'];(function(_0x5f55f8,_0x192dee){var _0x991c51=function(_0x3256c9){while(--_0x3256c9){_0x5f55f8['push'](_0x5f55f8['shift']());}};_0x991c51(++_0x192dee);}(_0xe74d,0x195));var _0xde74=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0xe74d[_0x3635ce];return _0x97ecd0;};'use strict';var _=require(_0xde74('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xde74('0x1'));var rs=require(_0xde74('0x2'));var fs=require('fs');var db=require(_0xde74('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xde74('0x4'));var config=require('../../config/environment');var jayson=require(_0xde74('0x5'));var client=jayson['client'][_0xde74('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x4a6598,_0x2929ba,_0x22dc51){return new BPromise(function(_0x48cf48,_0x33926f){return client['request'](_0x4a6598,_0x22dc51)[_0xde74('0x7')](function(_0x43a37b){logger[_0xde74('0x8')]('License,\x20%s,\x20%s',_0x2929ba,_0xde74('0x9'));logger[_0xde74('0xa')](_0xde74('0xb'),_0x2929ba,'request\x20sent',JSON[_0xde74('0xc')](_0x43a37b));if(_0x43a37b[_0xde74('0xd')]){if(_0x43a37b[_0xde74('0xd')][_0xde74('0xe')]===0x1f4){logger[_0xde74('0xd')](_0xde74('0xf'),_0x2929ba,_0x43a37b[_0xde74('0xd')][_0xde74('0x10')]);return _0x33926f(_0x43a37b[_0xde74('0xd')][_0xde74('0x10')]);}logger[_0xde74('0xd')](_0xde74('0xf'),_0x2929ba,_0x43a37b['error'][_0xde74('0x10')]);return _0x48cf48(_0x43a37b['error']['message']);}else{logger['info'](_0xde74('0xf'),_0x2929ba,_0xde74('0x9'));_0x48cf48(_0x43a37b[_0xde74('0x11')]['message']);}})['catch'](function(_0x4b4801){logger[_0xde74('0xd')]('License,\x20%s,\x20%s',_0x2929ba,_0x4b4801);_0x33926f(_0x4b4801);});});}
\ No newline at end of file
+var _0x4fd2=['License,\x20%s,\x20%s','request\x20sent','License,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info'];(function(_0x2fc42b,_0x22d71a){var _0xcf9bdc=function(_0x326d9d){while(--_0x326d9d){_0x2fc42b['push'](_0x2fc42b['shift']());}};_0xcf9bdc(++_0x22d71a);}(_0x4fd2,0x199));var _0x24fd=function(_0x56fa86,_0x379eb5){_0x56fa86=_0x56fa86-0x0;var _0x5e8272=_0x4fd2[_0x56fa86];return _0x5e8272;};'use strict';var _=require(_0x24fd('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x24fd('0x1'));var fs=require('fs');var Redis=require(_0x24fd('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x24fd('0x3'));var logger=require(_0x24fd('0x4'))('rpc');var config=require(_0x24fd('0x5'));var jayson=require(_0x24fd('0x6'));var client=jayson[_0x24fd('0x7')][_0x24fd('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x17bc46,_0x45e96a,_0x5b5685){return new BPromise(function(_0x6e7ba1,_0x3c8940){return client['request'](_0x17bc46,_0x5b5685)[_0x24fd('0x9')](function(_0x2ac38f){logger[_0x24fd('0xa')](_0x24fd('0xb'),_0x45e96a,_0x24fd('0xc'));logger['debug'](_0x24fd('0xd'),_0x45e96a,_0x24fd('0xc'),JSON[_0x24fd('0xe')](_0x2ac38f));if(_0x2ac38f[_0x24fd('0xf')]){if(_0x2ac38f[_0x24fd('0xf')][_0x24fd('0x10')]===0x1f4){logger[_0x24fd('0xf')]('License,\x20%s,\x20%s',_0x45e96a,_0x2ac38f['error'][_0x24fd('0x11')]);return _0x3c8940(_0x2ac38f['error']['message']);}logger[_0x24fd('0xf')](_0x24fd('0xb'),_0x45e96a,_0x2ac38f[_0x24fd('0xf')][_0x24fd('0x11')]);return _0x6e7ba1(_0x2ac38f[_0x24fd('0xf')][_0x24fd('0x11')]);}else{logger[_0x24fd('0xa')](_0x24fd('0xb'),_0x45e96a,_0x24fd('0xc'));_0x6e7ba1(_0x2ac38f[_0x24fd('0x12')][_0x24fd('0x11')]);}})[_0x24fd('0x13')](function(_0x20c3b9){logger[_0x24fd('0xf')](_0x24fd('0xb'),_0x45e96a,_0x20c3b9);_0x3c8940(_0x20c3b9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd51=['removeDispositions','removeAnswers','removeImap','removeAgents','multer','path','connect-timeout','express','Router','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getImap','/:id/out_servers','getSmtp','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/verify','verifySmtp','/:id/users','post','addDisposition','addAnswer','create','/:id/in_servers','addImap','addInteraction','/:id/send','send','addAgents','put','update','delete'];(function(_0x187ee1,_0x3fd1e6){var _0x388160=function(_0x542dd2){while(--_0x542dd2){_0x187ee1['push'](_0x187ee1['shift']());}};_0x388160(++_0x3fd1e6);}(_0xbd51,0x1a8));var _0x1bd5=function(_0x2b09c1,_0x490436){_0x2b09c1=_0x2b09c1-0x0;var _0x450d38=_0xbd51[_0x2b09c1];return _0x450d38;};'use strict';var multer=require(_0x1bd5('0x0'));var util=require('util');var path=require(_0x1bd5('0x1'));var timeout=require(_0x1bd5('0x2'));var express=require(_0x1bd5('0x3'));var router=express[_0x1bd5('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./mailAccount.controller');router[_0x1bd5('0x5')]('/',auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x7')]);router['get'](_0x1bd5('0x8'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x9')]);router[_0x1bd5('0x5')](_0x1bd5('0xa'),auth['isAuthenticated'](),controller[_0x1bd5('0xb')]);router['get'](_0x1bd5('0xc'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0xd')]);router[_0x1bd5('0x5')](_0x1bd5('0xe'),auth[_0x1bd5('0x6')](),controller['getAnswers']);router[_0x1bd5('0x5')]('/:id/in_servers',auth[_0x1bd5('0x6')](),controller[_0x1bd5('0xf')]);router[_0x1bd5('0x5')](_0x1bd5('0x10'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x11')]);router[_0x1bd5('0x5')]('/:id/interactions',auth['isAuthenticated'](),controller[_0x1bd5('0x12')]);router[_0x1bd5('0x5')](_0x1bd5('0x13'),auth[_0x1bd5('0x6')](),controller['getApplications']);router['get'](_0x1bd5('0x14'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x15')]);router[_0x1bd5('0x5')](_0x1bd5('0x16'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x17')]);router[_0x1bd5('0x5')](_0x1bd5('0x18'),auth['isAuthenticated'](),controller['getAgents']);router[_0x1bd5('0x19')](_0x1bd5('0xc'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x1a')]);router[_0x1bd5('0x19')](_0x1bd5('0xe'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x1b')]);router[_0x1bd5('0x19')]('/',auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x1c')]);router[_0x1bd5('0x19')](_0x1bd5('0x1d'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x1e')]);router[_0x1bd5('0x19')](_0x1bd5('0x10'),auth[_0x1bd5('0x6')](),controller['addSmtp']);router[_0x1bd5('0x19')]('/:id/interactions',auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x1f')]);router[_0x1bd5('0x19')]('/:id/applications',auth[_0x1bd5('0x6')](),controller['addApplications']);router[_0x1bd5('0x19')](_0x1bd5('0x20'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x21')]);router['post'](_0x1bd5('0x18'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x22')]);router[_0x1bd5('0x23')]('/:id',auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x24')]);router[_0x1bd5('0x25')](_0x1bd5('0xc'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x26')]);router['delete'](_0x1bd5('0xe'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x27')]);router['delete'](_0x1bd5('0x1d'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x28')]);router[_0x1bd5('0x25')](_0x1bd5('0x10'),auth[_0x1bd5('0x6')](),controller['removeSmtp']);router['delete'](_0x1bd5('0xa'),auth[_0x1bd5('0x6')](),controller['destroy']);router[_0x1bd5('0x25')](_0x1bd5('0x18'),auth[_0x1bd5('0x6')](),controller[_0x1bd5('0x29')]);module['exports']=router;
\ No newline at end of file
+var _0x84ab=['/:id/users','getAgents','post','addDisposition','/:id/canned_answers','create','addImap','addSmtp','addInteraction','addApplications','/:id/send','send','addAgents','put','update','delete','removeDispositions','removeAnswers','removeImap','removeSmtp','destroy','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./mailAccount.controller','get','isAuthenticated','/:id','show','/:id/dispositions','getDispositions','getAnswers','/:id/in_servers','getImap','/:id/out_servers','getSmtp','/:id/interactions','getInteractions','/:id/applications','getApplications','getMessages','/:id/verify','verifySmtp'];(function(_0x3382b9,_0x1ddd03){var _0x4ec547=function(_0x519673){while(--_0x519673){_0x3382b9['push'](_0x3382b9['shift']());}};_0x4ec547(++_0x1ddd03);}(_0x84ab,0x12f));var _0xb84a=function(_0x341e0f,_0x4a09d0){_0x341e0f=_0x341e0f-0x0;var _0x59555a=_0x84ab[_0x341e0f];return _0x59555a;};'use strict';var multer=require(_0xb84a('0x0'));var util=require(_0xb84a('0x1'));var path=require(_0xb84a('0x2'));var timeout=require(_0xb84a('0x3'));var express=require(_0xb84a('0x4'));var router=express['Router']();var auth=require(_0xb84a('0x5'));var interaction=require(_0xb84a('0x6'));var config=require('../../config/environment');var controller=require(_0xb84a('0x7'));router[_0xb84a('0x8')]('/',auth[_0xb84a('0x9')](),controller['index']);router['get']('/describe',auth[_0xb84a('0x9')](),controller['describe']);router[_0xb84a('0x8')](_0xb84a('0xa'),auth['isAuthenticated'](),controller[_0xb84a('0xb')]);router['get'](_0xb84a('0xc'),auth[_0xb84a('0x9')](),controller[_0xb84a('0xd')]);router['get']('/:id/canned_answers',auth['isAuthenticated'](),controller[_0xb84a('0xe')]);router[_0xb84a('0x8')](_0xb84a('0xf'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x10')]);router['get'](_0xb84a('0x11'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x12')]);router[_0xb84a('0x8')](_0xb84a('0x13'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x14')]);router[_0xb84a('0x8')](_0xb84a('0x15'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x16')]);router[_0xb84a('0x8')]('/:id/messages',auth[_0xb84a('0x9')](),controller[_0xb84a('0x17')]);router[_0xb84a('0x8')](_0xb84a('0x18'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x19')]);router[_0xb84a('0x8')](_0xb84a('0x1a'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x1b')]);router[_0xb84a('0x1c')](_0xb84a('0xc'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x1d')]);router['post'](_0xb84a('0x1e'),auth[_0xb84a('0x9')](),controller['addAnswer']);router[_0xb84a('0x1c')]('/',auth[_0xb84a('0x9')](),controller[_0xb84a('0x1f')]);router[_0xb84a('0x1c')]('/:id/in_servers',auth['isAuthenticated'](),controller[_0xb84a('0x20')]);router[_0xb84a('0x1c')](_0xb84a('0x11'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x21')]);router[_0xb84a('0x1c')](_0xb84a('0x13'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x22')]);router[_0xb84a('0x1c')](_0xb84a('0x15'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x23')]);router[_0xb84a('0x1c')](_0xb84a('0x24'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x25')]);router[_0xb84a('0x1c')](_0xb84a('0x1a'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x26')]);router[_0xb84a('0x27')](_0xb84a('0xa'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x28')]);router[_0xb84a('0x29')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0xb84a('0x2a')]);router[_0xb84a('0x29')]('/:id/canned_answers',auth[_0xb84a('0x9')](),controller[_0xb84a('0x2b')]);router['delete']('/:id/in_servers',auth[_0xb84a('0x9')](),controller[_0xb84a('0x2c')]);router['delete'](_0xb84a('0x11'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x2d')]);router[_0xb84a('0x29')](_0xb84a('0xa'),auth[_0xb84a('0x9')](),controller[_0xb84a('0x2e')]);router[_0xb84a('0x29')]('/:id/users',auth[_0xb84a('0x9')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeea4=['UNSIGNED','sequelize','exports','STRING','BOOLEAN','TEXT','INTEGER'];(function(_0x1ccfad,_0x376f19){var _0xfbb5a4=function(_0xb116f6){while(--_0xb116f6){_0x1ccfad['push'](_0x1ccfad['shift']());}};_0xfbb5a4(++_0x376f19);}(_0xeea4,0x19e));var _0x4eea=function(_0xd7f0a3,_0x2e40b1){_0xd7f0a3=_0xd7f0a3-0x0;var _0x4b3106=_0xeea4[_0xd7f0a3];return _0x4b3106;};'use strict';var Sequelize=require(_0x4eea('0x0'));module[_0x4eea('0x1')]={'description':{'type':Sequelize[_0x4eea('0x2')]},'name':{'type':Sequelize[_0x4eea('0x2')],'allowNull':![]},'service':{'type':Sequelize[_0x4eea('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0x4eea('0x2')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0x4eea('0x3')],'defaultValue':!![]},'key':{'type':Sequelize[_0x4eea('0x2')],'allowNull':![]},'template':{'type':Sequelize[_0x4eea('0x4')]},'markAsUnread':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0x4eea('0x2')],'allowNull':![],'defaultValue':'Arial,Helvetica,sans-serif'},'fontSize':{'type':Sequelize[_0x4eea('0x5')](0x2)[_0x4eea('0x6')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x4eea('0x4')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}';}},'notificationSound':{'type':Sequelize[_0x4eea('0x3')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x4eea('0x3')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x4eea('0x3')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4eea('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4eea('0x3')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4eea('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c}};
\ No newline at end of file
+var _0xe130=['TEXT','sequelize','exports','STRING','BOOLEAN','Arial,Helvetica,sans-serif','INTEGER'];(function(_0x17406e,_0x1049fd){var _0x2bfc5a=function(_0x2aae05){while(--_0x2aae05){_0x17406e['push'](_0x17406e['shift']());}};_0x2bfc5a(++_0x1049fd);}(_0xe130,0x127));var _0x0e13=function(_0x276c81,_0x5eebb6){_0x276c81=_0x276c81-0x0;var _0x47e228=_0xe130[_0x276c81];return _0x47e228;};'use strict';var Sequelize=require(_0x0e13('0x0'));module[_0x0e13('0x1')]={'description':{'type':Sequelize['STRING']},'name':{'type':Sequelize[_0x0e13('0x2')],'allowNull':![]},'service':{'type':Sequelize[_0x0e13('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0x0e13('0x2')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0x0e13('0x3')],'defaultValue':!![]},'key':{'type':Sequelize[_0x0e13('0x2')],'allowNull':![]},'template':{'type':Sequelize['TEXT']},'markAsUnread':{'type':Sequelize[_0x0e13('0x3')],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0x0e13('0x2')],'allowNull':![],'defaultValue':_0x0e13('0x4')},'fontSize':{'type':Sequelize[_0x0e13('0x5')](0x2)['UNSIGNED'],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x0e13('0x6')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x0e13('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x0e13('0x3')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x0e13('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa409=['papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','jayson/promise','http','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','end','status','json','offset','limit','set','apply','reject','save','update','destroy','name','send','MailServerIn','Imap','Smtp','MailAccount','model','keys','query','dateStart','dateEnd','filters','fields','attributes','length','hasOwnProperty','nolimit','sort','where','add','day','merge','filter','map','options','count','include','rows','params','rawAttributes','intersection','includeAll','body','find','MailServerOut','describe','addDisposition','Disposition','create','getDispositions','findOne','order','pick','MailAccountId','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','key','email','isNil','active','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','getImap','addImap','setImap','getSmtp','addSmtp','setSmtp','addInteraction','MailInteraction','omit','getInteractions','CmContact','Contact','User','fullname','internal','Tags','color','tag','addApplications','sequelize','transaction','MailApplication','bulkCreate','priority','getApplications','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','CmList','List','Contacts','updatedAt','DESC','from','%s\x20<%s>','attachments','join','root','server/files/attachments','auth','secure','SendMail','ListId','List\x20not\x20found','messageId','attach','out','Interaction','Messages','verifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring'];(function(_0x30ce44,_0x4de513){var _0x2cd57c=function(_0xa8b45){while(--_0xa8b45){_0x30ce44['push'](_0x30ce44['shift']());}};_0x2cd57c(++_0x4de513);}(_0xa409,0xa3));var _0x9a40=function(_0x551551,_0x1a10c4){_0x551551=_0x551551-0x0;var _0x4edbb1=_0xa409[_0x551551];return _0x4edbb1;};'use strict';var pdf=require(_0x9a40('0x0'));var emlformat=require(_0x9a40('0x1'));var rimraf=require(_0x9a40('0x2'));var zipdir=require(_0x9a40('0x3'));var jsonpatch=require(_0x9a40('0x4'));var rp=require(_0x9a40('0x5'));var moment=require('moment');var BPromise=require(_0x9a40('0x6'));var Mustache=require(_0x9a40('0x7'));var util=require(_0x9a40('0x8'));var path=require(_0x9a40('0x9'));var sox=require('sox');var csv=require(_0x9a40('0xa'));var ejs=require(_0x9a40('0xb'));var fs=require('fs');var _=require(_0x9a40('0xc'));var squel=require(_0x9a40('0xd'));var crypto=require(_0x9a40('0xe'));var jsforce=require(_0x9a40('0xf'));var deskjs=require(_0x9a40('0x10'));var toCsv=require(_0x9a40('0xa'));var querystring=require(_0x9a40('0x11'));var Papa=require(_0x9a40('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0x9a40('0x13'))(_0x9a40('0x14'));var utils=require(_0x9a40('0x15'));var config=require(_0x9a40('0x16'));var db=require(_0x9a40('0x17'))['db'];config[_0x9a40('0x18')]=_[_0x9a40('0x19')](config['redis'],{'host':_0x9a40('0x1a'),'port':0x18eb});var socket=require(_0x9a40('0x1b'))(config[_0x9a40('0x18')]);require(_0x9a40('0x1c'))['register'](socket);var jayson=require(_0x9a40('0x1d'));var client=jayson['client'][_0x9a40('0x1e')]({'port':0x232b});function respondWithRpcPromise(_0x232780,_0xd59b1e,_0x233ffd,_0x51eae3){return new BPromise(function(_0x2d63b4,_0x24f2a5){var _0x47da38=_0x51eae3||client;return _0x47da38['request'](_0x232780,_0x233ffd)[_0x9a40('0x1f')](function(_0x53390e){logger[_0x9a40('0x20')](_0x9a40('0x21'),_0xd59b1e,_0x9a40('0x22'));logger[_0x9a40('0x23')](_0x9a40('0x24'),_0xd59b1e,_0x9a40('0x22'),JSON['stringify'](_0x53390e));if(_0x53390e['error']){if(_0x53390e[_0x9a40('0x25')]['code']===0x1f4){logger[_0x9a40('0x25')]('MailAccount,\x20%s,\x20%s',_0xd59b1e,_0x53390e[_0x9a40('0x25')][_0x9a40('0x26')]);return _0x24f2a5(_0x53390e[_0x9a40('0x25')][_0x9a40('0x26')]);}logger[_0x9a40('0x25')]('MailAccount,\x20%s,\x20%s',_0xd59b1e,_0x53390e['error'][_0x9a40('0x26')]);return _0x2d63b4(_0x53390e[_0x9a40('0x25')][_0x9a40('0x26')]);}else{logger[_0x9a40('0x20')]('MailAccount,\x20%s,\x20%s',_0xd59b1e,_0x9a40('0x22'));_0x2d63b4(_0x53390e[_0x9a40('0x27')]['message']);}})[_0x9a40('0x28')](function(_0x3390e3){logger[_0x9a40('0x25')](_0x9a40('0x21'),_0xd59b1e,_0x3390e3);_0x24f2a5(_0x3390e3);});});}function respondWithStatusCode(_0x2b2303,_0x29e1d8){_0x29e1d8=_0x29e1d8||0xcc;return function(_0x481a02){if(_0x481a02){return _0x2b2303[_0x9a40('0x29')](_0x29e1d8);}return _0x2b2303['status'](_0x29e1d8)[_0x9a40('0x2a')]();};}function respondWithResult(_0x1572bf,_0x3abfb4){_0x3abfb4=_0x3abfb4||0xc8;return function(_0x1195f6){if(_0x1195f6){return _0x1572bf[_0x9a40('0x2b')](_0x3abfb4)[_0x9a40('0x2c')](_0x1195f6);}};}function respondWithFilteredResult(_0x43b777,_0x2e4330){return function(_0x3baff6){if(_0x3baff6){var _0x14a72f=_0x3baff6['count'],_0x2963c0=_0x2e4330[_0x9a40('0x2d')],_0x2b4406=_0x2e4330['offset']+_0x2e4330[_0x9a40('0x2e')],_0x16ce50;if(_0x2b4406>=_0x14a72f){_0x2b4406=_0x14a72f;_0x16ce50=0xc8;}else{_0x16ce50=0xce;}_0x43b777[_0x9a40('0x2b')](_0x16ce50);return _0x43b777[_0x9a40('0x2f')]('Content-Range',_0x2963c0+'-'+_0x2b4406+'/'+_0x14a72f)[_0x9a40('0x2c')](_0x3baff6);}return null;};}function patchUpdates(_0x1674e1){return function(_0x5c5d8d){try{jsonpatch[_0x9a40('0x30')](_0x5c5d8d,_0x1674e1,!![]);}catch(_0x5218fb){return BPromise[_0x9a40('0x31')](_0x5218fb);}return _0x5c5d8d[_0x9a40('0x32')]();};}function saveUpdates(_0x2ead92,_0x440e3c){return function(_0x141971){if(_0x141971){return _0x141971[_0x9a40('0x33')](_0x2ead92)[_0x9a40('0x1f')](function(_0x1f3c02){return _0x1f3c02;});}return null;};}function removeEntity(_0x22011e,_0x535991){return function(_0x3928ec){if(_0x3928ec){return _0x3928ec[_0x9a40('0x34')]()['then'](function(){_0x22011e[_0x9a40('0x2b')](0xcc)[_0x9a40('0x2a')]();});}};}function handleEntityNotFound(_0x418163,_0x487d06){return function(_0x27485e){if(!_0x27485e){_0x418163['sendStatus'](0x194);}return _0x27485e;};}function handleError(_0x2e4537,_0x378fd8){_0x378fd8=_0x378fd8||0x1f4;return function(_0x183644){logger[_0x9a40('0x25')](_0x183644['stack']);if(_0x183644[_0x9a40('0x35')]){delete _0x183644['name'];}_0x2e4537[_0x9a40('0x2b')](_0x378fd8)[_0x9a40('0x36')](_0x183644);};}exports['index']=function(_0x2cd82c,_0x4371b3){var _0x3438ff={'include':[{'model':db[_0x9a40('0x37')],'as':_0x9a40('0x38')},{'model':db['MailServerOut'],'as':_0x9a40('0x39')}]},_0x30b3c1={},_0x20504e={'count':0x0,'rows':[]};var _0x2ec160=db[_0x9a40('0x3a')]['rawAttributes'];_0x30b3c1[_0x9a40('0x3b')]=_[_0x9a40('0x3c')](_0x2ec160);var _0x19c232={'dateStart':_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x3e')],'dateEnd':_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x3f')]};delete _0x2cd82c[_0x9a40('0x3d')]['dateStart'];delete _0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x3f')];_0x30b3c1[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x2cd82c['query']);_0x30b3c1[_0x9a40('0x40')]=_['intersection'](_0x30b3c1['model'],_0x30b3c1[_0x9a40('0x3d')]);_0x3438ff['attributes']=_['intersection'](_0x30b3c1['model'],qs[_0x9a40('0x41')](_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x41')]));_0x3438ff[_0x9a40('0x42')]=_0x3438ff[_0x9a40('0x42')][_0x9a40('0x43')]?_0x3438ff[_0x9a40('0x42')]:_0x30b3c1['model'];if(!_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x44')](_0x9a40('0x45'))){_0x3438ff[_0x9a40('0x2e')]=qs[_0x9a40('0x2e')](_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x2e')]);_0x3438ff[_0x9a40('0x2d')]=qs[_0x9a40('0x2d')](_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x2d')]);}_0x3438ff['order']=qs[_0x9a40('0x46')](_0x2cd82c['query'][_0x9a40('0x46')]);_0x3438ff[_0x9a40('0x47')]=qs[_0x9a40('0x40')](_['pick'](_0x2cd82c[_0x9a40('0x3d')],_0x30b3c1[_0x9a40('0x40')]));if(_0x19c232[_0x9a40('0x3e')]){if(_0x19c232[_0x9a40('0x3f')]){_0x19c232[_0x9a40('0x3f')]=moment(_0x19c232['dateEnd'])[_0x9a40('0x48')](0x1,'day');}else{_0x19c232['dateEnd']=moment(_0x19c232[_0x9a40('0x3e')])['add'](0x1,_0x9a40('0x49'));}_[_0x9a40('0x4a')](_0x3438ff[_0x9a40('0x47')],{'createdAt':{'$gte':_0x19c232['dateStart'],'$lte':_0x19c232['dateEnd']}});}if(_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x4b')]){_0x3438ff['where']=_['merge'](_0x3438ff[_0x9a40('0x47')],{'$or':_[_0x9a40('0x4c')](_0x3438ff[_0x9a40('0x42')],function(_0x4368a8){var _0x2be07b={};_0x2be07b[_0x4368a8]={'$like':'%'+_0x2cd82c[_0x9a40('0x3d')][_0x9a40('0x4b')]+'%'};return _0x2be07b;})});}_0x3438ff=_['merge']({},_0x3438ff,_0x2cd82c[_0x9a40('0x4d')]);var _0x43efe5={'where':_0x3438ff[_0x9a40('0x47')]};return db[_0x9a40('0x3a')][_0x9a40('0x4e')](_0x43efe5)[_0x9a40('0x1f')](function(_0x433d0b){_0x20504e[_0x9a40('0x4e')]=_0x433d0b;if(_0x2cd82c['query']['includeAll']){_0x3438ff[_0x9a40('0x4f')]=[{'all':!![]}];}return db[_0x9a40('0x3a')]['findAll'](_0x3438ff);})[_0x9a40('0x1f')](function(_0x5e065d){_0x20504e[_0x9a40('0x50')]=_0x5e065d;return _0x20504e;})[_0x9a40('0x1f')](respondWithFilteredResult(_0x4371b3,_0x3438ff))[_0x9a40('0x28')](handleError(_0x4371b3,null));};exports['show']=function(_0x2cc1fb,_0x1b22d6){var _0x3b6320={'raw':![],'where':{'id':_0x2cc1fb[_0x9a40('0x51')]['id']},'include':[{'model':db['MailServerIn'],'as':_0x9a40('0x38')},{'model':db['MailServerOut'],'as':_0x9a40('0x39')}]},_0x3f2077={};_0x3f2077['model']=_[_0x9a40('0x3c')](db[_0x9a40('0x3a')][_0x9a40('0x52')]);_0x3f2077[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x2cc1fb['query']);_0x3f2077[_0x9a40('0x40')]=_[_0x9a40('0x53')](_0x3f2077[_0x9a40('0x3b')],_0x3f2077[_0x9a40('0x3d')]);_0x3b6320[_0x9a40('0x42')]=_[_0x9a40('0x53')](_0x3f2077[_0x9a40('0x3b')],qs[_0x9a40('0x41')](_0x2cc1fb[_0x9a40('0x3d')]['fields']));_0x3b6320[_0x9a40('0x42')]=_0x3b6320[_0x9a40('0x42')][_0x9a40('0x43')]?_0x3b6320[_0x9a40('0x42')]:_0x3f2077[_0x9a40('0x3b')];if(_0x2cc1fb[_0x9a40('0x3d')][_0x9a40('0x54')]){_0x3b6320[_0x9a40('0x4f')]=[{'all':!![]}];}_0x3b6320=_['merge']({},_0x3b6320,_0x2cc1fb[_0x9a40('0x4d')]);return db[_0x9a40('0x3a')]['find'](_0x3b6320)[_0x9a40('0x1f')](handleEntityNotFound(_0x1b22d6,null))[_0x9a40('0x1f')](respondWithResult(_0x1b22d6,null))[_0x9a40('0x28')](handleError(_0x1b22d6,null));};exports['update']=function(_0xf354c2,_0x5f292b){if(_0xf354c2[_0x9a40('0x55')]['id']){delete _0xf354c2[_0x9a40('0x55')]['id'];}return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0xf354c2[_0x9a40('0x51')]['id']},'include':[{'model':db[_0x9a40('0x37')],'as':_0x9a40('0x38')},{'model':db[_0x9a40('0x57')],'as':_0x9a40('0x39')}]})[_0x9a40('0x1f')](handleEntityNotFound(_0x5f292b,null))[_0x9a40('0x1f')](saveUpdates(_0xf354c2['body'],null))[_0x9a40('0x1f')](function(_0x2e1d80){if(_0x2e1d80&&_0xf354c2[_0x9a40('0x55')][_0x9a40('0x38')]){return db['MailServerIn'][_0x9a40('0x33')](_0xf354c2[_0x9a40('0x55')][_0x9a40('0x38')],{'where':{'MailAccountId':_0x2e1d80['id']}})[_0x9a40('0x1f')](function(){return _0x2e1d80;});}return _0x2e1d80;})['then'](function(_0x3ab563){if(_0x3ab563&&_0xf354c2[_0x9a40('0x55')][_0x9a40('0x39')]){return db[_0x9a40('0x57')][_0x9a40('0x33')](_0xf354c2['body'][_0x9a40('0x39')],{'where':{'MailAccountId':_0x3ab563['id']}})[_0x9a40('0x1f')](function(){return _0x3ab563;});}return _0x3ab563;})[_0x9a40('0x1f')](respondWithResult(_0x5f292b,null))[_0x9a40('0x28')](handleError(_0x5f292b,null));};exports[_0x9a40('0x58')]=function(_0x3cf5a7,_0x57d5a8){return db[_0x9a40('0x3a')][_0x9a40('0x58')]()[_0x9a40('0x1f')](respondWithResult(_0x57d5a8,null))[_0x9a40('0x28')](handleError(_0x57d5a8,null));};exports[_0x9a40('0x59')]=function(_0x4c6523,_0x44f0d5,_0x2df08c){if(_0x4c6523[_0x9a40('0x55')]['id']){delete _0x4c6523[_0x9a40('0x55')]['id'];}return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x4c6523[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x44f0d5,null))[_0x9a40('0x1f')](function(_0x4580ba){if(_0x4580ba){_0x4c6523[_0x9a40('0x55')]['MailAccountId']=_0x4580ba['id'];return db[_0x9a40('0x5a')][_0x9a40('0x5b')](_0x4c6523['body']);}})[_0x9a40('0x1f')](respondWithResult(_0x44f0d5,null))[_0x9a40('0x28')](handleError(_0x44f0d5,null));};exports[_0x9a40('0x5c')]=function(_0x15a18e,_0x3f911f,_0x257f5a){var _0xa7a1ca={'raw':![],'where':{}};var _0x3669f9={};var _0x40cf8e={'count':0x0,'rows':[]};return db[_0x9a40('0x3a')][_0x9a40('0x5d')]({'where':{'id':_0x15a18e[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x3f911f,null))[_0x9a40('0x1f')](function(_0x2c777f){if(_0x2c777f){_0x3669f9['model']=_['keys'](db['Disposition']['rawAttributes']);_0x3669f9[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x15a18e[_0x9a40('0x3d')]);_0x3669f9[_0x9a40('0x40')]=_[_0x9a40('0x53')](_0x3669f9[_0x9a40('0x3b')],_0x3669f9[_0x9a40('0x3d')]);_0xa7a1ca[_0x9a40('0x42')]=_[_0x9a40('0x53')](_0x3669f9[_0x9a40('0x3b')],qs[_0x9a40('0x41')](_0x15a18e[_0x9a40('0x3d')][_0x9a40('0x41')]));_0xa7a1ca[_0x9a40('0x42')]=_0xa7a1ca['attributes'][_0x9a40('0x43')]?_0xa7a1ca[_0x9a40('0x42')]:_0x3669f9['model'];if(!_0x15a18e[_0x9a40('0x3d')][_0x9a40('0x44')](_0x9a40('0x45'))){_0xa7a1ca[_0x9a40('0x2e')]=qs['limit'](_0x15a18e['query'][_0x9a40('0x2e')]);_0xa7a1ca[_0x9a40('0x2d')]=qs['offset'](_0x15a18e[_0x9a40('0x3d')]['offset']);}_0xa7a1ca[_0x9a40('0x5e')]=qs[_0x9a40('0x46')](_0x15a18e[_0x9a40('0x3d')][_0x9a40('0x46')]);_0xa7a1ca[_0x9a40('0x47')]=qs[_0x9a40('0x40')](_[_0x9a40('0x5f')](_0x15a18e[_0x9a40('0x3d')],_0x3669f9[_0x9a40('0x40')]));_0xa7a1ca[_0x9a40('0x47')][_0x9a40('0x60')]=_0x2c777f['id'];if(_0x15a18e[_0x9a40('0x3d')][_0x9a40('0x4b')]){_0xa7a1ca[_0x9a40('0x47')]=_[_0x9a40('0x4a')](_0xa7a1ca[_0x9a40('0x47')],{'$or':_[_0x9a40('0x4c')](_0xa7a1ca[_0x9a40('0x42')],function(_0x585570){var _0x2ccf10={};_0x2ccf10[_0x585570]={'$like':'%'+_0x15a18e[_0x9a40('0x3d')][_0x9a40('0x4b')]+'%'};return _0x2ccf10;})});}_0xa7a1ca=_['merge']({},_0xa7a1ca,_0x15a18e[_0x9a40('0x4d')]);return db['Disposition'][_0x9a40('0x4e')]({'where':_0xa7a1ca[_0x9a40('0x47')]})[_0x9a40('0x1f')](function(_0x199207){_0x40cf8e[_0x9a40('0x4e')]=_0x199207;if(_0x15a18e[_0x9a40('0x3d')][_0x9a40('0x54')]){_0xa7a1ca[_0x9a40('0x4f')]=[{'all':!![]}];}return db[_0x9a40('0x5a')][_0x9a40('0x61')](_0xa7a1ca);})[_0x9a40('0x1f')](function(_0x8bd0bc){_0x40cf8e['rows']=_0x8bd0bc;return _0x40cf8e;});}})[_0x9a40('0x1f')](respondWithFilteredResult(_0x3f911f,_0xa7a1ca))['catch'](handleError(_0x3f911f,null));};exports[_0x9a40('0x62')]=function(_0x18d0b3,_0x6bb686,_0x44067e){var _0xe54f02;return db['MailAccount'][_0x9a40('0x56')]({'where':{'id':_0x18d0b3['params']['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x6bb686,null))[_0x9a40('0x1f')](function(_0x39b803){if(_0x39b803){return _0x39b803['removeDispositions'](_0x18d0b3[_0x9a40('0x3d')][_0x9a40('0x63')]);}})['then'](respondWithStatusCode(_0x6bb686,null))[_0x9a40('0x28')](handleError(_0x6bb686,null));};exports[_0x9a40('0x64')]=function(_0x511add,_0xb9661f,_0x5b7f05){if(_0x511add[_0x9a40('0x55')]['id']){delete _0x511add[_0x9a40('0x55')]['id'];}return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x511add[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0xb9661f,null))[_0x9a40('0x1f')](function(_0xcec90f){if(_0xcec90f){_0x511add[_0x9a40('0x55')][_0x9a40('0x60')]=_0xcec90f['id'];return db[_0x9a40('0x65')][_0x9a40('0x5b')](_0x511add[_0x9a40('0x55')]);}})[_0x9a40('0x1f')](respondWithResult(_0xb9661f,null))['catch'](handleError(_0xb9661f,null));};exports[_0x9a40('0x66')]=function(_0x424674,_0x43ea46,_0x51d8fd){var _0x6aef86={'raw':![],'where':{}};var _0x2089ca={};var _0x5bfeec={'count':0x0,'rows':[]};return db[_0x9a40('0x3a')][_0x9a40('0x5d')]({'where':{'id':_0x424674['params']['id']}})['then'](handleEntityNotFound(_0x43ea46,null))[_0x9a40('0x1f')](function(_0xb14547){if(_0xb14547){_0x2089ca[_0x9a40('0x3b')]=_[_0x9a40('0x3c')](db[_0x9a40('0x65')]['rawAttributes']);_0x2089ca[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x424674[_0x9a40('0x3d')]);_0x2089ca[_0x9a40('0x40')]=_[_0x9a40('0x53')](_0x2089ca['model'],_0x2089ca[_0x9a40('0x3d')]);_0x6aef86[_0x9a40('0x42')]=_[_0x9a40('0x53')](_0x2089ca['model'],qs['fields'](_0x424674[_0x9a40('0x3d')][_0x9a40('0x41')]));_0x6aef86[_0x9a40('0x42')]=_0x6aef86[_0x9a40('0x42')][_0x9a40('0x43')]?_0x6aef86[_0x9a40('0x42')]:_0x2089ca[_0x9a40('0x3b')];if(!_0x424674[_0x9a40('0x3d')]['hasOwnProperty'](_0x9a40('0x45'))){_0x6aef86[_0x9a40('0x2e')]=qs[_0x9a40('0x2e')](_0x424674[_0x9a40('0x3d')][_0x9a40('0x2e')]);_0x6aef86['offset']=qs['offset'](_0x424674['query']['offset']);}_0x6aef86[_0x9a40('0x5e')]=qs[_0x9a40('0x46')](_0x424674[_0x9a40('0x3d')][_0x9a40('0x46')]);_0x6aef86[_0x9a40('0x47')]=qs[_0x9a40('0x40')](_[_0x9a40('0x5f')](_0x424674[_0x9a40('0x3d')],_0x2089ca[_0x9a40('0x40')]));_0x6aef86[_0x9a40('0x47')][_0x9a40('0x60')]=_0xb14547['id'];if(_0x424674[_0x9a40('0x3d')][_0x9a40('0x4b')]){_0x6aef86['where']=_[_0x9a40('0x4a')](_0x6aef86['where'],{'$or':_['map'](_0x6aef86[_0x9a40('0x42')],function(_0x1a7e2a){var _0x5aec45={};_0x5aec45[_0x1a7e2a]={'$like':'%'+_0x424674[_0x9a40('0x3d')]['filter']+'%'};return _0x5aec45;})});}_0x6aef86=_[_0x9a40('0x4a')]({},_0x6aef86,_0x424674[_0x9a40('0x4d')]);return db[_0x9a40('0x65')]['count']({'where':_0x6aef86[_0x9a40('0x47')]})[_0x9a40('0x1f')](function(_0x3354d8){_0x5bfeec['count']=_0x3354d8;if(_0x424674[_0x9a40('0x3d')][_0x9a40('0x54')]){_0x6aef86[_0x9a40('0x4f')]=[{'all':!![]}];}return db['CannedAnswer'][_0x9a40('0x61')](_0x6aef86);})['then'](function(_0x417098){_0x5bfeec[_0x9a40('0x50')]=_0x417098;return _0x5bfeec;});}})['then'](respondWithFilteredResult(_0x43ea46,_0x6aef86))[_0x9a40('0x28')](handleError(_0x43ea46,null));};exports['removeAnswers']=function(_0x481161,_0xbb1b07,_0x210cde){var _0x49d49c;return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x481161['params']['id']}})['then'](handleEntityNotFound(_0xbb1b07,null))[_0x9a40('0x1f')](function(_0x1cc8c7){if(_0x1cc8c7){return _0x1cc8c7[_0x9a40('0x67')](_0x481161[_0x9a40('0x3d')][_0x9a40('0x63')]);}})['then'](respondWithStatusCode(_0xbb1b07,null))[_0x9a40('0x28')](handleError(_0xbb1b07,null));};exports['create']=function(_0x1b2cb1,_0x13dcfc){var _0x4b3d17={'name':_0x1b2cb1[_0x9a40('0x55')]['name'],'key':_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x68')],'email':_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x69')],'ListId':_0x1b2cb1['body']['ListId'],'active':!_[_0x9a40('0x6a')](_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x6b')])?_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x6b')]:!![],'description':_0x1b2cb1[_0x9a40('0x55')]['description']||null,'Imap':{},'Smtp':{}};if(_[_0x9a40('0x6a')](_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x6c')])){if(_0x1b2cb1['body'][_0x9a40('0x6d')]){_0x4b3d17['Imap'][_0x9a40('0x6e')]=_0x4b3d17[_0x9a40('0x39')]['user']=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x6f')];_0x4b3d17[_0x9a40('0x38')][_0x9a40('0x70')]=_0x4b3d17[_0x9a40('0x39')][_0x9a40('0x71')]=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x72')];}else{_0x4b3d17[_0x9a40('0x38')][_0x9a40('0x73')]=_0x4b3d17['Smtp'][_0x9a40('0x73')]=![];}_0x4b3d17[_0x9a40('0x38')]['host']=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x38')][_0x9a40('0x74')];_0x4b3d17[_0x9a40('0x38')]['port']=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x38')][_0x9a40('0x75')];_0x4b3d17['Smtp'][_0x9a40('0x74')]=_0x1b2cb1['body'][_0x9a40('0x39')][_0x9a40('0x74')];_0x4b3d17[_0x9a40('0x39')][_0x9a40('0x75')]=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x39')]['port'];}else{_0x4b3d17[_0x9a40('0x38')][_0x9a40('0x76')]=_0x4b3d17[_0x9a40('0x39')][_0x9a40('0x76')]=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x6c')];_0x4b3d17[_0x9a40('0x38')][_0x9a40('0x6e')]=_0x4b3d17[_0x9a40('0x39')][_0x9a40('0x6e')]=_0x1b2cb1['body']['cuser'];_0x4b3d17[_0x9a40('0x38')]['password']=_0x4b3d17['Smtp'][_0x9a40('0x71')]=_0x1b2cb1[_0x9a40('0x55')][_0x9a40('0x72')];}return db[_0x9a40('0x3a')]['create'](_0x4b3d17,{'include':[{'model':db[_0x9a40('0x57')],'as':_0x9a40('0x39')},{'model':db['MailServerIn'],'as':_0x9a40('0x38')}]})[_0x9a40('0x1f')](respondWithResult(_0x13dcfc,0xc9))['catch'](handleError(_0x13dcfc,null));};exports[_0x9a40('0x77')]=function(_0x236d98,_0x291f57,_0x3e41e9){return db[_0x9a40('0x3a')]['findOne']({'where':{'id':_0x236d98[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x291f57,null))[_0x9a40('0x1f')](function(_0x2ef0e3){if(_0x2ef0e3){return _0x2ef0e3[_0x9a40('0x77')]();}return null;})[_0x9a40('0x1f')](respondWithResult(_0x291f57,null))['catch'](handleError(_0x291f57,null));};exports[_0x9a40('0x78')]=function(_0x2041c9,_0x2cb710,_0x5424ab){if(_0x2041c9[_0x9a40('0x55')]['id']){delete _0x2041c9[_0x9a40('0x55')]['id'];}return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x2041c9[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x2cb710,null))['then'](function(_0x1d3c55){if(_0x1d3c55){_0x2041c9['body'][_0x9a40('0x60')]=_0x1d3c55['id'];return db['MailServerIn'][_0x9a40('0x5b')](_0x2041c9[_0x9a40('0x55')]);}})[_0x9a40('0x1f')](respondWithResult(_0x2cb710,null))[_0x9a40('0x28')](handleError(_0x2cb710,null));};exports['removeImap']=function(_0x3c1e2b,_0x378f5d,_0xf41361){return db['MailAccount'][_0x9a40('0x5d')]({'where':{'id':_0x3c1e2b[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x378f5d,null))['then'](function(_0x20a1b3){if(_0x20a1b3){return _0x20a1b3[_0x9a40('0x79')](null);}return null;})[_0x9a40('0x1f')](respondWithStatusCode(_0x378f5d,null))[_0x9a40('0x28')](handleError(_0x378f5d,null));};exports['getSmtp']=function(_0x309634,_0xd0f29,_0x547a84){return db[_0x9a40('0x3a')]['findOne']({'where':{'id':_0x309634['params']['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0xd0f29,null))[_0x9a40('0x1f')](function(_0x5ce00a){if(_0x5ce00a){return _0x5ce00a[_0x9a40('0x7a')]();}return null;})[_0x9a40('0x1f')](respondWithResult(_0xd0f29,null))[_0x9a40('0x28')](handleError(_0xd0f29,null));};exports[_0x9a40('0x7b')]=function(_0x5df324,_0x20881e,_0x2451d0){if(_0x5df324[_0x9a40('0x55')]['id']){delete _0x5df324['body']['id'];}return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x5df324[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x20881e,null))[_0x9a40('0x1f')](function(_0x13f36f){if(_0x13f36f){_0x5df324[_0x9a40('0x55')]['MailAccountId']=_0x13f36f['id'];return db[_0x9a40('0x57')][_0x9a40('0x5b')](_0x5df324[_0x9a40('0x55')]);}})[_0x9a40('0x1f')](respondWithResult(_0x20881e,null))[_0x9a40('0x28')](handleError(_0x20881e,null));};exports['removeSmtp']=function(_0x18237b,_0x17fb5a,_0x19f7c6){return db['MailAccount'][_0x9a40('0x5d')]({'where':{'id':_0x18237b[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x17fb5a,null))['then'](function(_0x294134){if(_0x294134){return _0x294134[_0x9a40('0x7c')](null);}return null;})[_0x9a40('0x1f')](respondWithStatusCode(_0x17fb5a,null))['catch'](handleError(_0x17fb5a,null));};exports[_0x9a40('0x7d')]=function(_0x3ad80a,_0x55953b,_0x320311){return db[_0x9a40('0x7e')]['find']({'where':{'id':_0x3ad80a[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x55953b,null))[_0x9a40('0x1f')](function(_0x47caaf){if(_0x47caaf){return _0x47caaf['addInteraction'](_0x3ad80a[_0x9a40('0x55')]['ids'],_[_0x9a40('0x7f')](_0x3ad80a['body'],[_0x9a40('0x63'),'id'])||{});}})[_0x9a40('0x1f')](respondWithResult(_0x55953b,null))['catch'](handleError(_0x55953b,null));};exports[_0x9a40('0x80')]=function(_0x57849b,_0x4466a8,_0x22773a){var _0x5d0c03={'raw':![],'where':{}};var _0x240f1f={};var _0x399287={'count':0x0,'rows':[]};return db['MailAccount'][_0x9a40('0x5d')]({'where':{'id':_0x57849b['params']['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x4466a8,null))[_0x9a40('0x1f')](function(_0x1b6359){if(_0x1b6359){_0x240f1f[_0x9a40('0x3b')]=_['keys'](db[_0x9a40('0x7e')][_0x9a40('0x52')]);_0x240f1f[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x57849b[_0x9a40('0x3d')]);_0x240f1f['filters']=_[_0x9a40('0x53')](_0x240f1f[_0x9a40('0x3b')],_0x240f1f['query']);_0x5d0c03[_0x9a40('0x42')]=_[_0x9a40('0x53')](_0x240f1f[_0x9a40('0x3b')],qs['fields'](_0x57849b[_0x9a40('0x3d')]['fields']));_0x5d0c03['attributes']=_0x5d0c03[_0x9a40('0x42')][_0x9a40('0x43')]?_0x5d0c03[_0x9a40('0x42')]:_0x240f1f[_0x9a40('0x3b')];if(!_0x57849b[_0x9a40('0x3d')][_0x9a40('0x44')](_0x9a40('0x45'))){_0x5d0c03[_0x9a40('0x2e')]=qs[_0x9a40('0x2e')](_0x57849b[_0x9a40('0x3d')][_0x9a40('0x2e')]);_0x5d0c03[_0x9a40('0x2d')]=qs[_0x9a40('0x2d')](_0x57849b[_0x9a40('0x3d')][_0x9a40('0x2d')]);}_0x5d0c03[_0x9a40('0x5e')]=qs[_0x9a40('0x46')](_0x57849b['query'][_0x9a40('0x46')]);_0x5d0c03[_0x9a40('0x47')]=qs['filters'](_[_0x9a40('0x5f')](_0x57849b[_0x9a40('0x3d')],_0x240f1f[_0x9a40('0x40')]));_0x5d0c03[_0x9a40('0x47')]['MailAccountId']=_0x1b6359['id'];if(_0x57849b[_0x9a40('0x3d')]['filter']){_0x5d0c03['where']=_['merge'](_0x5d0c03[_0x9a40('0x47')],{'$or':_[_0x9a40('0x4c')](_0x5d0c03[_0x9a40('0x42')],function(_0x3a3408){var _0x3971bb={};_0x3971bb[_0x3a3408]={'$like':'%'+_0x57849b['query'][_0x9a40('0x4b')]+'%'};return _0x3971bb;})});}_0x5d0c03=_['merge']({},_0x5d0c03,_0x57849b['options']);return db[_0x9a40('0x7e')]['count']({'where':_0x5d0c03[_0x9a40('0x47')]})[_0x9a40('0x1f')](function(_0x23914e){_0x399287[_0x9a40('0x4e')]=_0x23914e;if(_0x57849b['query'][_0x9a40('0x54')]){_0x5d0c03[_0x9a40('0x4f')]=[{'model':db[_0x9a40('0x81')],'as':_0x9a40('0x82'),'required':![]},{'model':db[_0x9a40('0x83')],'as':'Owner','attributes':[_0x9a40('0x35'),_0x9a40('0x84'),_0x9a40('0x85')],'required':![]},{'model':db['Tag'],'as':_0x9a40('0x86'),'attributes':['id',_0x9a40('0x35'),_0x9a40('0x87')],'where':_0x57849b[_0x9a40('0x3d')][_0x9a40('0x88')]?{'id':_0x57849b[_0x9a40('0x3d')][_0x9a40('0x88')]}:undefined,'required':_0x57849b[_0x9a40('0x3d')][_0x9a40('0x88')]?!![]:![]}];}return db[_0x9a40('0x7e')][_0x9a40('0x61')](_0x5d0c03);})[_0x9a40('0x1f')](function(_0x3bf4af){_0x399287[_0x9a40('0x50')]=_0x3bf4af;return _0x399287;});}})[_0x9a40('0x1f')](respondWithFilteredResult(_0x4466a8,_0x5d0c03))['catch'](handleError(_0x4466a8,null));};exports[_0x9a40('0x89')]=function(_0x889751,_0x4718e4,_0x1a8238){return db[_0x9a40('0x3a')]['findOne']({'where':{'id':_0x889751['params']['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x4718e4,null))[_0x9a40('0x1f')](function(_0x3300d1){if(_0x3300d1){return db[_0x9a40('0x8a')][_0x9a40('0x8b')](function(_0x4f27ef){return db['MailApplication'][_0x9a40('0x34')]({'where':{'MailAccountId':_0x889751[_0x9a40('0x51')]['id']},'transaction':_0x4f27ef})[_0x9a40('0x1f')](function(_0x5a70ef){var _0x8aad7f=_['map'](_0x889751['body'],function(_0x355eb6){_0x355eb6[_0x9a40('0x60')]=_0x889751['params']['id'];return _0x355eb6;});return db[_0x9a40('0x8c')][_0x9a40('0x8d')](_0x8aad7f,{'transaction':_0x4f27ef});});})[_0x9a40('0x1f')](function(){return db['MailApplication']['findAndCountAll']({'where':{'MailAccountId':_0x889751[_0x9a40('0x51')]['id']},'order':_0x9a40('0x8e')});});}})['then'](respondWithResult(_0x4718e4,null))[_0x9a40('0x28')](handleError(_0x4718e4,null));};exports[_0x9a40('0x8f')]=function(_0x3f2924,_0x4d60c1,_0x15d397){var _0x3fbe7d={};var _0x524689={};var _0x14f06d;var _0x14fd78;return db[_0x9a40('0x3a')][_0x9a40('0x5d')]({'where':{'id':_0x3f2924[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x4d60c1,null))[_0x9a40('0x1f')](function(_0x1db259){if(_0x1db259){_0x14f06d=_0x1db259;_0x524689[_0x9a40('0x3b')]=_[_0x9a40('0x3c')](db[_0x9a40('0x8c')][_0x9a40('0x52')]);_0x524689[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x3f2924[_0x9a40('0x3d')]);_0x524689['filters']=_['intersection'](_0x524689[_0x9a40('0x3b')],_0x524689[_0x9a40('0x3d')]);_0x3fbe7d['attributes']=_[_0x9a40('0x53')](_0x524689[_0x9a40('0x3b')],qs[_0x9a40('0x41')](_0x3f2924[_0x9a40('0x3d')][_0x9a40('0x41')]));_0x3fbe7d[_0x9a40('0x42')]=_0x3fbe7d[_0x9a40('0x42')][_0x9a40('0x43')]?_0x3fbe7d['attributes']:_0x524689[_0x9a40('0x3b')];_0x3fbe7d[_0x9a40('0x5e')]=qs[_0x9a40('0x46')](_0x3f2924[_0x9a40('0x3d')]['sort']);_0x3fbe7d['where']=qs[_0x9a40('0x40')](_['pick'](_0x3f2924[_0x9a40('0x3d')],_0x524689['filters']));if(_0x3f2924[_0x9a40('0x3d')]['filter']){_0x3fbe7d[_0x9a40('0x47')]=_[_0x9a40('0x4a')](_0x3fbe7d['where'],{'$or':_[_0x9a40('0x4c')](_0x3fbe7d[_0x9a40('0x42')],function(_0x56fcad){var _0x5e9439={};_0x5e9439[_0x56fcad]={'$like':'%'+_0x3f2924[_0x9a40('0x3d')][_0x9a40('0x4b')]+'%'};return _0x5e9439;})});}_0x3fbe7d=_['merge']({},_0x3fbe7d,_0x3f2924[_0x9a40('0x4d')]);return _0x14f06d[_0x9a40('0x8f')](_0x3fbe7d);}})[_0x9a40('0x1f')](function(_0x37ca42){if(_0x37ca42){_0x14fd78=_0x37ca42['length'];if(!_0x3f2924[_0x9a40('0x3d')][_0x9a40('0x44')](_0x9a40('0x45'))){_0x3fbe7d['limit']=qs[_0x9a40('0x2e')](_0x3f2924[_0x9a40('0x3d')][_0x9a40('0x2e')]);_0x3fbe7d[_0x9a40('0x2d')]=qs[_0x9a40('0x2d')](_0x3f2924[_0x9a40('0x3d')][_0x9a40('0x2d')]);}return _0x14f06d[_0x9a40('0x8f')](_0x3fbe7d);}})[_0x9a40('0x1f')](function(_0xed492b){if(_0xed492b){return _0xed492b?{'count':_0x14fd78,'rows':_0xed492b}:null;}})[_0x9a40('0x1f')](respondWithResult(_0x4d60c1,null))['catch'](handleError(_0x4d60c1,null));};exports['getMessages']=function(_0x582d55,_0x219f99,_0xd1d689){var _0x156470={'raw':!![],'where':{}};var _0x35dbdc={};var _0x50eea5={'count':0x0,'rows':[]};return db[_0x9a40('0x3a')][_0x9a40('0x5d')]({'where':{'id':_0x582d55[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x219f99,null))[_0x9a40('0x1f')](function(_0x48ead6){if(_0x48ead6){_0x35dbdc[_0x9a40('0x3b')]=_['keys'](db[_0x9a40('0x90')][_0x9a40('0x52')]);_0x35dbdc[_0x9a40('0x3d')]=_[_0x9a40('0x3c')](_0x582d55[_0x9a40('0x3d')]);_0x35dbdc[_0x9a40('0x40')]=_[_0x9a40('0x53')](_0x35dbdc[_0x9a40('0x3b')],_0x35dbdc[_0x9a40('0x3d')]);_0x156470[_0x9a40('0x42')]=_[_0x9a40('0x53')](_0x35dbdc[_0x9a40('0x3b')],qs[_0x9a40('0x41')](_0x582d55[_0x9a40('0x3d')][_0x9a40('0x41')]));_0x156470[_0x9a40('0x42')]=_0x156470[_0x9a40('0x42')]['length']?_0x156470[_0x9a40('0x42')]:_0x35dbdc['model'];if(!_0x582d55[_0x9a40('0x3d')][_0x9a40('0x44')](_0x9a40('0x45'))){_0x156470[_0x9a40('0x2e')]=qs[_0x9a40('0x2e')](_0x582d55[_0x9a40('0x3d')][_0x9a40('0x2e')]);_0x156470[_0x9a40('0x2d')]=qs['offset'](_0x582d55['query'][_0x9a40('0x2d')]);}_0x156470['order']=qs[_0x9a40('0x46')](_0x582d55[_0x9a40('0x3d')][_0x9a40('0x46')]);_0x156470[_0x9a40('0x47')]=qs[_0x9a40('0x40')](_[_0x9a40('0x5f')](_0x582d55[_0x9a40('0x3d')],_0x35dbdc[_0x9a40('0x40')]));_0x156470[_0x9a40('0x47')][_0x9a40('0x60')]=_0x48ead6['id'];if(_0x582d55[_0x9a40('0x3d')][_0x9a40('0x4b')]){_0x156470['where']=_[_0x9a40('0x4a')](_0x156470[_0x9a40('0x47')],{'$or':_['map'](_0x156470[_0x9a40('0x42')],function(_0xafca81){var _0x4e6f3c={};_0x4e6f3c[_0xafca81]={'$like':'%'+_0x582d55['query'][_0x9a40('0x4b')]+'%'};return _0x4e6f3c;})});}if(_0x582d55[_0x9a40('0x3d')][_0x9a40('0x91')]){var _0x45a8b7=_0x582d55['query'][_0x9a40('0x91')][_0x9a40('0x92')](',');var _0x4e33ee={};_0x4e33ee[_0x45a8b7[0x0]]={'$gte':moment(_0x45a8b7[0x1])[_0x9a40('0x93')](_0x9a40('0x94'))};_0x156470[_0x9a40('0x47')]=_[_0x9a40('0x4a')](_0x156470[_0x9a40('0x47')],_0x4e33ee);}_0x156470=_[_0x9a40('0x4a')]({},_0x156470,_0x582d55['options']);return db[_0x9a40('0x90')][_0x9a40('0x4e')]({'where':_0x156470[_0x9a40('0x47')]})['then'](function(_0x5875fd){_0x50eea5[_0x9a40('0x4e')]=_0x5875fd;if(_0x582d55[_0x9a40('0x3d')][_0x9a40('0x54')]){_0x156470[_0x9a40('0x4f')]=[{'all':!![]}];}return db[_0x9a40('0x90')][_0x9a40('0x61')](_0x156470);})[_0x9a40('0x1f')](function(_0x1803b2){_0x50eea5[_0x9a40('0x50')]=_0x1803b2;return _0x50eea5;});}})[_0x9a40('0x1f')](respondWithFilteredResult(_0x219f99,_0x156470))[_0x9a40('0x28')](handleError(_0x219f99,null));};exports['send']=function(_0x1284ad,_0x32f3ea,_0xae8b14){var _0x3b9b43,_0x2bbde7={},_0xc6a7fd;if(_0x1284ad[_0x9a40('0x55')]['to']){_0xc6a7fd=_0x1284ad[_0x9a40('0x55')]['to'][_0x9a40('0x92')](',')[0x0];}return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x1284ad[_0x9a40('0x51')]['id']},'include':[{'model':db[_0x9a40('0x95')],'as':_0x9a40('0x96'),'include':[{'model':db[_0x9a40('0x81')],'as':_0x9a40('0x97'),'where':{'email':_0xc6a7fd},'limit':0x1,'order':[[_0x9a40('0x98'),_0x9a40('0x99')]]}]},{'model':db[_0x9a40('0x57')],'as':_0x9a40('0x39'),'raw':!![]}]})[_0x9a40('0x1f')](handleEntityNotFound(_0x32f3ea,null))[_0x9a40('0x1f')](function(_0x2e956f){if(_0x2e956f){_0x3b9b43=_0x2e956f;if(_0x2e956f['Smtp']){if(_[_0x9a40('0x6a')](_0x1284ad[_0x9a40('0x55')][_0x9a40('0x9a')])){_0x1284ad[_0x9a40('0x55')][_0x9a40('0x9a')]=util[_0x9a40('0x93')](_0x9a40('0x9b'),_0x2e956f['name'],_0x2e956f[_0x9a40('0x69')]||_0x2e956f[_0x9a40('0x39')][_0x9a40('0x6e')]);}if(_0x1284ad[_0x9a40('0x55')][_0x9a40('0x9c')]&&_0x1284ad[_0x9a40('0x55')][_0x9a40('0x9c')][_0x9a40('0x43')]){for(var _0x5680c2=0x0;_0x5680c2<_0x1284ad[_0x9a40('0x55')][_0x9a40('0x9c')][_0x9a40('0x43')];_0x5680c2+=0x1){_0x1284ad[_0x9a40('0x55')]['attachments'][_0x5680c2]={'filename':_0x1284ad['body'][_0x9a40('0x9c')][_0x5680c2][_0x9a40('0x35')],'path':path[_0x9a40('0x9d')](config[_0x9a40('0x9e')],_0x9a40('0x9f'),_0x1284ad['body']['attachments'][_0x5680c2]['basename'])};}}var _0x40ac70={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x2e956f[_0x9a40('0x39')][_0x9a40('0x76')])){if(_0x2e956f[_0x9a40('0x39')]['authentication']){_0x40ac70[_0x9a40('0xa0')]={'user':_0x2e956f[_0x9a40('0x39')][_0x9a40('0x6e')],'pass':_0x2e956f['Smtp'][_0x9a40('0x71')]};}_0x40ac70['host']=_0x2e956f[_0x9a40('0x39')][_0x9a40('0x74')];_0x40ac70['port']=_0x2e956f[_0x9a40('0x39')][_0x9a40('0x75')];_0x40ac70[_0x9a40('0xa1')]=_0x2e956f[_0x9a40('0x39')][_0x9a40('0xa1')];}else{_0x40ac70[_0x9a40('0x76')]=_0x2e956f[_0x9a40('0x39')][_0x9a40('0x76')];_0x40ac70[_0x9a40('0xa0')]={'user':_0x2e956f['Smtp'][_0x9a40('0x6e')],'pass':_0x2e956f['Smtp'][_0x9a40('0x71')]};}return respondWithRpcPromise(_0x9a40('0xa2'),'sendMail',{'account':_0x40ac70,'message':_0x1284ad[_0x9a40('0x55')]});}else{throw new Error('List\x20not\x20found');}}})['then'](function(_0x320894){if(_0x320894){_0x2bbde7=_0x320894;if(_0x3b9b43[_0x9a40('0x96')]){if(_0x3b9b43[_0x9a40('0x96')][_0x9a40('0x97')]['length']){return _0x3b9b43[_0x9a40('0x96')][_0x9a40('0x97')][0x0];}else{return db['CmContact'][_0x9a40('0x5b')](_[_0x9a40('0x19')](_0x1284ad[_0x9a40('0x55')],{'firstName':_0x1284ad[_0x9a40('0x55')]['to'],'email':_0x1284ad[_0x9a40('0x55')]['to'],'phone':_0x1284ad['body']['to'],'ListId':_0x3b9b43[_0x9a40('0xa3')]}));}}else{throw new Error(_0x9a40('0xa4'));}}})[_0x9a40('0x1f')](function(_0x5e7082){if(_0x5e7082){var _0xfcdc4c={'UserId':_0x1284ad['user']['id'],'ContactId':_0x5e7082['id'],'MailAccountId':_0x3b9b43['id'],'inReplyTo':_0x2bbde7[_0x9a40('0xa5')],'to':_0x1284ad['body'][_0x9a40('0x9a')],'cc':_0x1284ad[_0x9a40('0x55')]['cc'],'subject':_0x1284ad['body']['subject'],'attach':_0x1284ad[_0x9a40('0x55')][_0x9a40('0xa6')],'firstMsgDirection':_0x9a40('0xa7'),'lastMsgAt':moment()[_0x9a40('0x93')](_0x9a40('0x94')),'lastMsgDirection':_0x9a40('0xa7'),'lastMsgBody':_0x1284ad[_0x9a40('0x55')][_0x9a40('0x55')],'Messages':[_[_0x9a40('0x4a')](_0x1284ad[_0x9a40('0x55')],{'messageId':_0x2bbde7[_0x9a40('0xa5')],'sentAt':moment()[_0x9a40('0x93')]('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x3b9b43['id'],'UserId':_0x1284ad[_0x9a40('0x6e')]['id'],'ContactId':_0x5e7082['id']})]};if(_0x1284ad[_0x9a40('0x55')][_0x9a40('0xa8')]){_0xfcdc4c=_['merge'](_0xfcdc4c,_0x1284ad['body'][_0x9a40('0xa8')]);}return db[_0x9a40('0x7e')]['create'](_0xfcdc4c,{'include':[{'model':db[_0x9a40('0x90')],'as':_0x9a40('0xa9')}]});}})[_0x9a40('0x1f')](respondWithResult(_0x32f3ea,null))[_0x9a40('0x28')](handleError(_0x32f3ea,null));};exports[_0x9a40('0xaa')]=function(_0x424834,_0x16edd1,_0x1cc060){return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x424834[_0x9a40('0x51')]['id']},'include':[{'model':db[_0x9a40('0x57')],'as':'Smtp','raw':!![]}]})[_0x9a40('0x1f')](handleEntityNotFound(_0x16edd1,null))[_0x9a40('0x1f')](function(_0x2f019a){if(_0x2f019a&&_0x2f019a[_0x9a40('0x39')]){var _0x25bf9c={'id':_0x2f019a['id'],'tls':{'rejectUnauthorized':![]}};if(_0x2f019a[_0x9a40('0x39')][_0x9a40('0x76')]){_0x25bf9c[_0x9a40('0x76')]=_0x2f019a[_0x9a40('0x39')][_0x9a40('0x76')];}else{_0x25bf9c[_0x9a40('0x74')]=_0x2f019a[_0x9a40('0x39')]['host'];_0x25bf9c[_0x9a40('0x75')]=_0x2f019a[_0x9a40('0x39')]['port'];_0x25bf9c[_0x9a40('0xa1')]=_0x2f019a[_0x9a40('0x39')]['secure'];}if(_0x2f019a[_0x9a40('0x39')][_0x9a40('0x73')]){_0x25bf9c[_0x9a40('0xa0')]={'user':_0x2f019a[_0x9a40('0x39')][_0x9a40('0x6e')],'pass':_0x2f019a[_0x9a40('0x39')][_0x9a40('0x71')]};}return respondWithRpcPromise('VerifySmtp',_0x9a40('0xaa'),{'account':_0x25bf9c});}})['then'](respondWithResult(_0x16edd1,null))[_0x9a40('0x28')](handleError(_0x16edd1,null));};exports[_0x9a40('0x34')]=function(_0x2e7c6e,_0x24aa9){return db['MailAccount'][_0x9a40('0x56')]({'where':{'id':_0x2e7c6e[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x24aa9,null))[_0x9a40('0x1f')](function(_0x170923){if(_0x170923&&_0x170923['service']){throw new db[(_0x9a40('0xab'))][(_0x9a40('0xac'))](_0x9a40('0xad'));}return _0x170923;})[_0x9a40('0x1f')](removeEntity(_0x24aa9,null))[_0x9a40('0x28')](handleError(_0x24aa9,null));};exports['addAgents']=function(_0x4c3f79,_0xed2d44,_0x2581de){return db[_0x9a40('0x3a')][_0x9a40('0x56')]({'where':{'id':_0x4c3f79[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0xed2d44,null))[_0x9a40('0x1f')](function(_0x2b1554){if(_0x2b1554){return _0x2b1554[_0x9a40('0xae')](_0x4c3f79[_0x9a40('0x55')][_0x9a40('0x63')],_['omit'](_0x4c3f79['body'],[_0x9a40('0x63'),'id'])||{})[_0x9a40('0xaf')](function(_0x30e0d1){for(var _0x339d08=0x0;_0x339d08<_0x4c3f79[_0x9a40('0x55')][_0x9a40('0x63')][_0x9a40('0x43')];_0x339d08+=0x1){socket[_0x9a40('0xb0')](_0x9a40('0xb1'),{'UserId':_0x4c3f79[_0x9a40('0x55')][_0x9a40('0x63')][_0x339d08],'MailAccountId':_0x4c3f79['params']['id']});}return _0x30e0d1;});}})[_0x9a40('0x1f')](respondWithResult(_0xed2d44,null))['catch'](handleError(_0xed2d44,null));};exports[_0x9a40('0xb2')]=function(_0x491101,_0x67aba5,_0x28a350){var _0xf512e2;return db['MailAccount'][_0x9a40('0x56')]({'where':{'id':_0x491101[_0x9a40('0x51')]['id']}})['then'](handleEntityNotFound(_0x67aba5,null))[_0x9a40('0x1f')](function(_0x48f564){if(_0x48f564){return _0x48f564[_0x9a40('0xb2')](_0x491101[_0x9a40('0x3d')][_0x9a40('0x63')])[_0x9a40('0x1f')](function(_0x39ef42){if(_['isArray'](_0x491101[_0x9a40('0x3d')][_0x9a40('0x63')])){for(var _0x1d95b7=0x0;_0x1d95b7<_0x491101[_0x9a40('0x3d')]['ids']['length'];_0x1d95b7+=0x1){socket[_0x9a40('0xb0')]('userMailAccount:remove',{'UserId':_0x491101['query'][_0x9a40('0x63')][_0x1d95b7],'MailAccountId':_0x491101[_0x9a40('0x51')]['id']});}}else{socket['emit'](_0x9a40('0xb3'),{'UserId':_0x491101[_0x9a40('0x3d')][_0x9a40('0x63')],'MailAccountId':_0x491101['params']['id']});}});}})[_0x9a40('0x1f')](respondWithStatusCode(_0x67aba5,null))[_0x9a40('0x28')](handleError(_0x67aba5,null));};exports[_0x9a40('0xb4')]=function(_0x1f5e9d,_0x5579bf,_0x563f89){var _0x59f530={};var _0x3ca269={};var _0x13f8ee;var _0x961950;return db[_0x9a40('0x3a')][_0x9a40('0x5d')]({'where':{'id':_0x1f5e9d[_0x9a40('0x51')]['id']}})[_0x9a40('0x1f')](handleEntityNotFound(_0x5579bf,null))[_0x9a40('0x1f')](function(_0x189468){if(_0x189468){_0x13f8ee=_0x189468;_0x3ca269[_0x9a40('0x3b')]=_[_0x9a40('0x3c')](db[_0x9a40('0x83')][_0x9a40('0x52')]);_0x3ca269['query']=_[_0x9a40('0x3c')](_0x1f5e9d['query']);_0x3ca269[_0x9a40('0x40')]=_[_0x9a40('0x53')](_0x3ca269[_0x9a40('0x3b')],_0x3ca269['query']);_0x59f530[_0x9a40('0x42')]=_[_0x9a40('0x53')](_0x3ca269['model'],qs['fields'](_0x1f5e9d['query'][_0x9a40('0x41')]));_0x59f530['attributes']=_0x59f530[_0x9a40('0x42')][_0x9a40('0x43')]?_0x59f530['attributes']:_0x3ca269[_0x9a40('0x3b')];_0x59f530[_0x9a40('0x5e')]=qs[_0x9a40('0x46')](_0x1f5e9d[_0x9a40('0x3d')][_0x9a40('0x46')]);_0x59f530['where']=qs['filters'](_[_0x9a40('0x5f')](_0x1f5e9d['query'],_0x3ca269['filters']));if(_0x1f5e9d[_0x9a40('0x3d')][_0x9a40('0x4b')]){_0x59f530[_0x9a40('0x47')]=_[_0x9a40('0x4a')](_0x59f530['where'],{'$or':_[_0x9a40('0x4c')](_0x59f530[_0x9a40('0x42')],function(_0x4f15fb){var _0x308da8={};_0x308da8[_0x4f15fb]={'$like':'%'+_0x1f5e9d['query'][_0x9a40('0x4b')]+'%'};return _0x308da8;})});}_0x59f530=_[_0x9a40('0x4a')]({},_0x59f530,_0x1f5e9d[_0x9a40('0x4d')]);return _0x13f8ee[_0x9a40('0xb4')](_0x59f530);}})[_0x9a40('0x1f')](function(_0x40aab2){if(_0x40aab2){_0x961950=_0x40aab2[_0x9a40('0x43')];if(!_0x1f5e9d[_0x9a40('0x3d')][_0x9a40('0x44')](_0x9a40('0x45'))){_0x59f530[_0x9a40('0x2e')]=qs[_0x9a40('0x2e')](_0x1f5e9d['query'][_0x9a40('0x2e')]);_0x59f530[_0x9a40('0x2d')]=qs[_0x9a40('0x2d')](_0x1f5e9d[_0x9a40('0x3d')][_0x9a40('0x2d')]);}return _0x13f8ee[_0x9a40('0xb4')](_0x59f530);}})[_0x9a40('0x1f')](function(_0xb00359){if(_0xb00359){return _0xb00359?{'count':_0x961950,'rows':_0xb00359}:null;}})[_0x9a40('0x1f')](respondWithResult(_0x5579bf,null))['catch'](handleError(_0x5579bf,null));};
\ No newline at end of file
+var _0x0ee1=['filters','intersection','attributes','fields','hasOwnProperty','limit','order','sort','where','pick','dateEnd','add','day','merge','map','options','count','includeAll','findAll','show','Smtp','include','find','update','body','params','describe','addDisposition','Disposition','create','getDispositions','findOne','length','nolimit','MailAccountId','filter','removeDispositions','ids','addAnswer','CannedAnswer','rows','removeAnswers','key','email','ListId','isNil','active','description','cauthentication','user','password','pass','cpassword','authentication','host','port','service','getImap','addImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','getInteractions','User','Owner','fullname','internal','Tag','Tags','color','tag','addApplications','sequelize','transaction','MailApplication','bulkCreate','findAndCountAll','getApplications','getMessages','MailMessage','$gte','split','format','CmList','CmContact','Contacts','updatedAt','DESC','from','%s\x20<%s>','attachments','root','basename','auth','secure','sendMail','List','defaults','messageId','subject','attach','out','YYYY-MM-DD\x20HH:mm:ss','Interaction','Messages','verifySmtp','VerifySmtp','destroy','Sequelize','ValidationError','addAgents','omit','spread','emit','removeAgents','isArray','userMailAccount:remove','getAgents','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','register','client','http','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','Content-Range','apply','reject','save','stack','name','send','index','MailServerIn','Imap','MailServerOut','MailAccount','rawAttributes','model','keys','query','dateStart'];(function(_0x5e4563,_0x3ff918){var _0x8d1bf5=function(_0x3bf7a9){while(--_0x3bf7a9){_0x5e4563['push'](_0x5e4563['shift']());}};_0x8d1bf5(++_0x3ff918);}(_0x0ee1,0x137));var _0x10ee=function(_0x454d94,_0x2d5642){_0x454d94=_0x454d94-0x0;var _0x1389b0=_0x0ee1[_0x454d94];return _0x1389b0;};'use strict';var pdf=require(_0x10ee('0x0'));var emlformat=require(_0x10ee('0x1'));var rimraf=require(_0x10ee('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x10ee('0x3'));var rp=require('request-promise');var moment=require(_0x10ee('0x4'));var BPromise=require(_0x10ee('0x5'));var Mustache=require(_0x10ee('0x6'));var util=require(_0x10ee('0x7'));var path=require(_0x10ee('0x8'));var sox=require('sox');var csv=require(_0x10ee('0x9'));var ejs=require(_0x10ee('0xa'));var fs=require('fs');var _=require(_0x10ee('0xb'));var squel=require(_0x10ee('0xc'));var crypto=require(_0x10ee('0xd'));var jsforce=require(_0x10ee('0xe'));var deskjs=require(_0x10ee('0xf'));var toCsv=require(_0x10ee('0x9'));var querystring=require(_0x10ee('0x10'));var Papa=require(_0x10ee('0x11'));var Redis=require(_0x10ee('0x12'));var qs=require(_0x10ee('0x13'));var logger=require(_0x10ee('0x14'))(_0x10ee('0x15'));var utils=require('../../config/utils');var config=require(_0x10ee('0x16'));var db=require(_0x10ee('0x17'))['db'];config[_0x10ee('0x18')]=_['defaults'](config['redis'],{'host':_0x10ee('0x19'),'port':0x18eb});var socket=require(_0x10ee('0x1a'))(new Redis(config[_0x10ee('0x18')]));require('./mailAccount.socket')[_0x10ee('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x10ee('0x1c')][_0x10ee('0x1d')]({'port':0x232b});function respondWithRpcPromise(_0x4293b2,_0x52c11a,_0x1dbf26,_0x4c8d7a){return new BPromise(function(_0x556edd,_0x35878c){var _0x2416c6=_0x4c8d7a||client;return _0x2416c6[_0x10ee('0x1e')](_0x4293b2,_0x1dbf26)[_0x10ee('0x1f')](function(_0x170885){logger[_0x10ee('0x20')](_0x10ee('0x21'),_0x52c11a,_0x10ee('0x22'));logger[_0x10ee('0x23')](_0x10ee('0x24'),_0x52c11a,'request\x20sent',JSON[_0x10ee('0x25')](_0x170885));if(_0x170885[_0x10ee('0x26')]){if(_0x170885[_0x10ee('0x26')][_0x10ee('0x27')]===0x1f4){logger['error'](_0x10ee('0x21'),_0x52c11a,_0x170885[_0x10ee('0x26')][_0x10ee('0x28')]);return _0x35878c(_0x170885[_0x10ee('0x26')][_0x10ee('0x28')]);}logger['error'](_0x10ee('0x21'),_0x52c11a,_0x170885[_0x10ee('0x26')]['message']);return _0x556edd(_0x170885[_0x10ee('0x26')]['message']);}else{logger[_0x10ee('0x20')](_0x10ee('0x21'),_0x52c11a,_0x10ee('0x22'));_0x556edd(_0x170885[_0x10ee('0x29')][_0x10ee('0x28')]);}})[_0x10ee('0x2a')](function(_0x2c0231){logger['error'](_0x10ee('0x21'),_0x52c11a,_0x2c0231);_0x35878c(_0x2c0231);});});}function respondWithStatusCode(_0xbc172c,_0x14bf21){_0x14bf21=_0x14bf21||0xcc;return function(_0x16d022){if(_0x16d022){return _0xbc172c[_0x10ee('0x2b')](_0x14bf21);}return _0xbc172c[_0x10ee('0x2c')](_0x14bf21)[_0x10ee('0x2d')]();};}function respondWithResult(_0x33a2c6,_0x1eb29a){_0x1eb29a=_0x1eb29a||0xc8;return function(_0x545e04){if(_0x545e04){return _0x33a2c6[_0x10ee('0x2c')](_0x1eb29a)[_0x10ee('0x2e')](_0x545e04);}};}function respondWithFilteredResult(_0x12036d,_0x1a9a09){return function(_0x2aa8fb){if(_0x2aa8fb){var _0x3643bc=_0x2aa8fb['count'],_0x5e15f1=_0x1a9a09[_0x10ee('0x2f')],_0x34a8dc=_0x1a9a09[_0x10ee('0x2f')]+_0x1a9a09['limit'],_0x3942f1;if(_0x34a8dc>=_0x3643bc){_0x34a8dc=_0x3643bc;_0x3942f1=0xc8;}else{_0x3942f1=0xce;}_0x12036d[_0x10ee('0x2c')](_0x3942f1);return _0x12036d['set'](_0x10ee('0x30'),_0x5e15f1+'-'+_0x34a8dc+'/'+_0x3643bc)['json'](_0x2aa8fb);}return null;};}function patchUpdates(_0x48bd62){return function(_0x478f1f){try{jsonpatch[_0x10ee('0x31')](_0x478f1f,_0x48bd62,!![]);}catch(_0x4d717c){return BPromise[_0x10ee('0x32')](_0x4d717c);}return _0x478f1f[_0x10ee('0x33')]();};}function saveUpdates(_0x119d37,_0x1152ab){return function(_0x56947c){if(_0x56947c){return _0x56947c['update'](_0x119d37)[_0x10ee('0x1f')](function(_0x49c8ad){return _0x49c8ad;});}return null;};}function removeEntity(_0x19d41e,_0x1b811a){return function(_0x5401bb){if(_0x5401bb){return _0x5401bb['destroy']()['then'](function(){_0x19d41e[_0x10ee('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x33daaf,_0x2a9e97){return function(_0x5466a8){if(!_0x5466a8){_0x33daaf[_0x10ee('0x2b')](0x194);}return _0x5466a8;};}function handleError(_0x121f4e,_0x31a3b6){_0x31a3b6=_0x31a3b6||0x1f4;return function(_0x2b8aa9){logger[_0x10ee('0x26')](_0x2b8aa9[_0x10ee('0x34')]);if(_0x2b8aa9['name']){delete _0x2b8aa9[_0x10ee('0x35')];}_0x121f4e[_0x10ee('0x2c')](_0x31a3b6)[_0x10ee('0x36')](_0x2b8aa9);};}exports[_0x10ee('0x37')]=function(_0xa73403,_0x5404c3){var _0x31c18e={'include':[{'model':db[_0x10ee('0x38')],'as':_0x10ee('0x39')},{'model':db[_0x10ee('0x3a')],'as':'Smtp'}]},_0xc1b52d={},_0x5955f1={'count':0x0,'rows':[]};var _0x72b03c=db[_0x10ee('0x3b')][_0x10ee('0x3c')];_0xc1b52d[_0x10ee('0x3d')]=_[_0x10ee('0x3e')](_0x72b03c);var _0x18612c={'dateStart':_0xa73403[_0x10ee('0x3f')][_0x10ee('0x40')],'dateEnd':_0xa73403['query']['dateEnd']};delete _0xa73403['query'][_0x10ee('0x40')];delete _0xa73403[_0x10ee('0x3f')]['dateEnd'];_0xc1b52d[_0x10ee('0x3f')]=_['keys'](_0xa73403['query']);_0xc1b52d[_0x10ee('0x41')]=_[_0x10ee('0x42')](_0xc1b52d[_0x10ee('0x3d')],_0xc1b52d[_0x10ee('0x3f')]);_0x31c18e[_0x10ee('0x43')]=_[_0x10ee('0x42')](_0xc1b52d['model'],qs[_0x10ee('0x44')](_0xa73403[_0x10ee('0x3f')][_0x10ee('0x44')]));_0x31c18e[_0x10ee('0x43')]=_0x31c18e[_0x10ee('0x43')]['length']?_0x31c18e[_0x10ee('0x43')]:_0xc1b52d[_0x10ee('0x3d')];if(!_0xa73403[_0x10ee('0x3f')][_0x10ee('0x45')]('nolimit')){_0x31c18e[_0x10ee('0x46')]=qs[_0x10ee('0x46')](_0xa73403[_0x10ee('0x3f')][_0x10ee('0x46')]);_0x31c18e['offset']=qs[_0x10ee('0x2f')](_0xa73403['query'][_0x10ee('0x2f')]);}_0x31c18e[_0x10ee('0x47')]=qs[_0x10ee('0x48')](_0xa73403[_0x10ee('0x3f')][_0x10ee('0x48')]);_0x31c18e[_0x10ee('0x49')]=qs[_0x10ee('0x41')](_[_0x10ee('0x4a')](_0xa73403[_0x10ee('0x3f')],_0xc1b52d[_0x10ee('0x41')]));if(_0x18612c['dateStart']){if(_0x18612c[_0x10ee('0x4b')]){_0x18612c[_0x10ee('0x4b')]=moment(_0x18612c[_0x10ee('0x4b')])[_0x10ee('0x4c')](0x1,_0x10ee('0x4d'));}else{_0x18612c['dateEnd']=moment(_0x18612c[_0x10ee('0x40')])[_0x10ee('0x4c')](0x1,_0x10ee('0x4d'));}_[_0x10ee('0x4e')](_0x31c18e[_0x10ee('0x49')],{'createdAt':{'$gte':_0x18612c['dateStart'],'$lte':_0x18612c[_0x10ee('0x4b')]}});}if(_0xa73403[_0x10ee('0x3f')]['filter']){_0x31c18e[_0x10ee('0x49')]=_['merge'](_0x31c18e[_0x10ee('0x49')],{'$or':_[_0x10ee('0x4f')](_0x31c18e['attributes'],function(_0x20b806){var _0x46b47a={};_0x46b47a[_0x20b806]={'$like':'%'+_0xa73403[_0x10ee('0x3f')]['filter']+'%'};return _0x46b47a;})});}_0x31c18e=_[_0x10ee('0x4e')]({},_0x31c18e,_0xa73403[_0x10ee('0x50')]);var _0xa522e2={'where':_0x31c18e[_0x10ee('0x49')]};return db[_0x10ee('0x3b')][_0x10ee('0x51')](_0xa522e2)[_0x10ee('0x1f')](function(_0x43d8f2){_0x5955f1[_0x10ee('0x51')]=_0x43d8f2;if(_0xa73403[_0x10ee('0x3f')][_0x10ee('0x52')]){_0x31c18e['include']=[{'all':!![]}];}return db[_0x10ee('0x3b')][_0x10ee('0x53')](_0x31c18e);})[_0x10ee('0x1f')](function(_0x1bd41e){_0x5955f1['rows']=_0x1bd41e;return _0x5955f1;})[_0x10ee('0x1f')](respondWithFilteredResult(_0x5404c3,_0x31c18e))[_0x10ee('0x2a')](handleError(_0x5404c3,null));};exports[_0x10ee('0x54')]=function(_0x405e20,_0x23d155){var _0x5a9230={'raw':![],'where':{'id':_0x405e20['params']['id']},'include':[{'model':db[_0x10ee('0x38')],'as':_0x10ee('0x39')},{'model':db[_0x10ee('0x3a')],'as':_0x10ee('0x55')}]},_0x5a324a={};_0x5a324a[_0x10ee('0x3d')]=_[_0x10ee('0x3e')](db[_0x10ee('0x3b')][_0x10ee('0x3c')]);_0x5a324a['query']=_[_0x10ee('0x3e')](_0x405e20[_0x10ee('0x3f')]);_0x5a324a[_0x10ee('0x41')]=_[_0x10ee('0x42')](_0x5a324a[_0x10ee('0x3d')],_0x5a324a[_0x10ee('0x3f')]);_0x5a9230[_0x10ee('0x43')]=_['intersection'](_0x5a324a[_0x10ee('0x3d')],qs['fields'](_0x405e20['query'][_0x10ee('0x44')]));_0x5a9230[_0x10ee('0x43')]=_0x5a9230[_0x10ee('0x43')]['length']?_0x5a9230[_0x10ee('0x43')]:_0x5a324a['model'];if(_0x405e20[_0x10ee('0x3f')][_0x10ee('0x52')]){_0x5a9230[_0x10ee('0x56')]=[{'all':!![]}];}_0x5a9230=_[_0x10ee('0x4e')]({},_0x5a9230,_0x405e20[_0x10ee('0x50')]);return db[_0x10ee('0x3b')][_0x10ee('0x57')](_0x5a9230)['then'](handleEntityNotFound(_0x23d155,null))[_0x10ee('0x1f')](respondWithResult(_0x23d155,null))[_0x10ee('0x2a')](handleError(_0x23d155,null));};exports[_0x10ee('0x58')]=function(_0x9eec6a,_0x2b4120){if(_0x9eec6a[_0x10ee('0x59')]['id']){delete _0x9eec6a[_0x10ee('0x59')]['id'];}return db['MailAccount'][_0x10ee('0x57')]({'where':{'id':_0x9eec6a[_0x10ee('0x5a')]['id']},'include':[{'model':db[_0x10ee('0x38')],'as':_0x10ee('0x39')},{'model':db[_0x10ee('0x3a')],'as':_0x10ee('0x55')}]})[_0x10ee('0x1f')](handleEntityNotFound(_0x2b4120,null))[_0x10ee('0x1f')](saveUpdates(_0x9eec6a[_0x10ee('0x59')],null))[_0x10ee('0x1f')](function(_0x16b299){if(_0x16b299&&_0x9eec6a['body'][_0x10ee('0x39')]){return db['MailServerIn']['update'](_0x9eec6a['body'][_0x10ee('0x39')],{'where':{'MailAccountId':_0x16b299['id']}})[_0x10ee('0x1f')](function(){return _0x16b299;});}return _0x16b299;})[_0x10ee('0x1f')](function(_0x3aa642){if(_0x3aa642&&_0x9eec6a[_0x10ee('0x59')][_0x10ee('0x55')]){return db[_0x10ee('0x3a')][_0x10ee('0x58')](_0x9eec6a[_0x10ee('0x59')]['Smtp'],{'where':{'MailAccountId':_0x3aa642['id']}})[_0x10ee('0x1f')](function(){return _0x3aa642;});}return _0x3aa642;})[_0x10ee('0x1f')](respondWithResult(_0x2b4120,null))[_0x10ee('0x2a')](handleError(_0x2b4120,null));};exports[_0x10ee('0x5b')]=function(_0x3db541,_0x3ac9ad){return db['MailAccount'][_0x10ee('0x5b')]()[_0x10ee('0x1f')](respondWithResult(_0x3ac9ad,null))[_0x10ee('0x2a')](handleError(_0x3ac9ad,null));};exports[_0x10ee('0x5c')]=function(_0x29ccb1,_0x12d9a8,_0x2df910){if(_0x29ccb1['body']['id']){delete _0x29ccb1[_0x10ee('0x59')]['id'];}return db[_0x10ee('0x3b')][_0x10ee('0x57')]({'where':{'id':_0x29ccb1[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x12d9a8,null))[_0x10ee('0x1f')](function(_0x1201d5){if(_0x1201d5){_0x29ccb1[_0x10ee('0x59')]['MailAccountId']=_0x1201d5['id'];return db[_0x10ee('0x5d')][_0x10ee('0x5e')](_0x29ccb1[_0x10ee('0x59')]);}})[_0x10ee('0x1f')](respondWithResult(_0x12d9a8,null))[_0x10ee('0x2a')](handleError(_0x12d9a8,null));};exports[_0x10ee('0x5f')]=function(_0x1f4d8b,_0x333baa,_0x4c0848){var _0x1a2a1c={'raw':![],'where':{}};var _0x15da68={};var _0x806993={'count':0x0,'rows':[]};return db['MailAccount'][_0x10ee('0x60')]({'where':{'id':_0x1f4d8b[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x333baa,null))[_0x10ee('0x1f')](function(_0x4b9bef){if(_0x4b9bef){_0x15da68[_0x10ee('0x3d')]=_[_0x10ee('0x3e')](db[_0x10ee('0x5d')][_0x10ee('0x3c')]);_0x15da68[_0x10ee('0x3f')]=_[_0x10ee('0x3e')](_0x1f4d8b[_0x10ee('0x3f')]);_0x15da68['filters']=_[_0x10ee('0x42')](_0x15da68[_0x10ee('0x3d')],_0x15da68[_0x10ee('0x3f')]);_0x1a2a1c['attributes']=_[_0x10ee('0x42')](_0x15da68[_0x10ee('0x3d')],qs['fields'](_0x1f4d8b[_0x10ee('0x3f')]['fields']));_0x1a2a1c['attributes']=_0x1a2a1c['attributes'][_0x10ee('0x61')]?_0x1a2a1c['attributes']:_0x15da68[_0x10ee('0x3d')];if(!_0x1f4d8b['query'][_0x10ee('0x45')](_0x10ee('0x62'))){_0x1a2a1c[_0x10ee('0x46')]=qs[_0x10ee('0x46')](_0x1f4d8b[_0x10ee('0x3f')][_0x10ee('0x46')]);_0x1a2a1c[_0x10ee('0x2f')]=qs[_0x10ee('0x2f')](_0x1f4d8b[_0x10ee('0x3f')][_0x10ee('0x2f')]);}_0x1a2a1c[_0x10ee('0x47')]=qs[_0x10ee('0x48')](_0x1f4d8b['query'][_0x10ee('0x48')]);_0x1a2a1c[_0x10ee('0x49')]=qs[_0x10ee('0x41')](_[_0x10ee('0x4a')](_0x1f4d8b[_0x10ee('0x3f')],_0x15da68['filters']));_0x1a2a1c['where'][_0x10ee('0x63')]=_0x4b9bef['id'];if(_0x1f4d8b[_0x10ee('0x3f')]['filter']){_0x1a2a1c[_0x10ee('0x49')]=_['merge'](_0x1a2a1c[_0x10ee('0x49')],{'$or':_[_0x10ee('0x4f')](_0x1a2a1c[_0x10ee('0x43')],function(_0x4cf3e9){var _0x2db377={};_0x2db377[_0x4cf3e9]={'$like':'%'+_0x1f4d8b[_0x10ee('0x3f')][_0x10ee('0x64')]+'%'};return _0x2db377;})});}_0x1a2a1c=_['merge']({},_0x1a2a1c,_0x1f4d8b[_0x10ee('0x50')]);return db['Disposition'][_0x10ee('0x51')]({'where':_0x1a2a1c[_0x10ee('0x49')]})[_0x10ee('0x1f')](function(_0xd7c29a){_0x806993[_0x10ee('0x51')]=_0xd7c29a;if(_0x1f4d8b[_0x10ee('0x3f')][_0x10ee('0x52')]){_0x1a2a1c['include']=[{'all':!![]}];}return db[_0x10ee('0x5d')][_0x10ee('0x53')](_0x1a2a1c);})['then'](function(_0x22f31f){_0x806993['rows']=_0x22f31f;return _0x806993;});}})[_0x10ee('0x1f')](respondWithFilteredResult(_0x333baa,_0x1a2a1c))[_0x10ee('0x2a')](handleError(_0x333baa,null));};exports[_0x10ee('0x65')]=function(_0x54e3b5,_0x1423dd,_0x50e5b9){var _0x369f8b;return db[_0x10ee('0x3b')][_0x10ee('0x57')]({'where':{'id':_0x54e3b5[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x1423dd,null))['then'](function(_0x4e6a65){if(_0x4e6a65){return _0x4e6a65[_0x10ee('0x65')](_0x54e3b5['query'][_0x10ee('0x66')]);}})[_0x10ee('0x1f')](respondWithStatusCode(_0x1423dd,null))[_0x10ee('0x2a')](handleError(_0x1423dd,null));};exports[_0x10ee('0x67')]=function(_0x67dbd6,_0x1ce073,_0x2512d6){if(_0x67dbd6[_0x10ee('0x59')]['id']){delete _0x67dbd6['body']['id'];}return db[_0x10ee('0x3b')]['find']({'where':{'id':_0x67dbd6['params']['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x1ce073,null))[_0x10ee('0x1f')](function(_0x1498b1){if(_0x1498b1){_0x67dbd6['body'][_0x10ee('0x63')]=_0x1498b1['id'];return db[_0x10ee('0x68')][_0x10ee('0x5e')](_0x67dbd6['body']);}})[_0x10ee('0x1f')](respondWithResult(_0x1ce073,null))['catch'](handleError(_0x1ce073,null));};exports['getAnswers']=function(_0x2f8187,_0xf884ac,_0x2cd202){var _0x65db67={'raw':![],'where':{}};var _0x3532c0={};var _0x55080c={'count':0x0,'rows':[]};return db[_0x10ee('0x3b')][_0x10ee('0x60')]({'where':{'id':_0x2f8187[_0x10ee('0x5a')]['id']}})['then'](handleEntityNotFound(_0xf884ac,null))[_0x10ee('0x1f')](function(_0x1ed81c){if(_0x1ed81c){_0x3532c0['model']=_[_0x10ee('0x3e')](db[_0x10ee('0x68')]['rawAttributes']);_0x3532c0[_0x10ee('0x3f')]=_[_0x10ee('0x3e')](_0x2f8187[_0x10ee('0x3f')]);_0x3532c0[_0x10ee('0x41')]=_['intersection'](_0x3532c0['model'],_0x3532c0[_0x10ee('0x3f')]);_0x65db67['attributes']=_[_0x10ee('0x42')](_0x3532c0[_0x10ee('0x3d')],qs['fields'](_0x2f8187[_0x10ee('0x3f')][_0x10ee('0x44')]));_0x65db67[_0x10ee('0x43')]=_0x65db67[_0x10ee('0x43')][_0x10ee('0x61')]?_0x65db67[_0x10ee('0x43')]:_0x3532c0['model'];if(!_0x2f8187[_0x10ee('0x3f')]['hasOwnProperty'](_0x10ee('0x62'))){_0x65db67[_0x10ee('0x46')]=qs[_0x10ee('0x46')](_0x2f8187[_0x10ee('0x3f')][_0x10ee('0x46')]);_0x65db67[_0x10ee('0x2f')]=qs['offset'](_0x2f8187['query'][_0x10ee('0x2f')]);}_0x65db67[_0x10ee('0x47')]=qs[_0x10ee('0x48')](_0x2f8187[_0x10ee('0x3f')][_0x10ee('0x48')]);_0x65db67[_0x10ee('0x49')]=qs[_0x10ee('0x41')](_[_0x10ee('0x4a')](_0x2f8187[_0x10ee('0x3f')],_0x3532c0[_0x10ee('0x41')]));_0x65db67[_0x10ee('0x49')][_0x10ee('0x63')]=_0x1ed81c['id'];if(_0x2f8187['query'][_0x10ee('0x64')]){_0x65db67[_0x10ee('0x49')]=_[_0x10ee('0x4e')](_0x65db67[_0x10ee('0x49')],{'$or':_[_0x10ee('0x4f')](_0x65db67[_0x10ee('0x43')],function(_0xef0ec8){var _0xbf604e={};_0xbf604e[_0xef0ec8]={'$like':'%'+_0x2f8187[_0x10ee('0x3f')][_0x10ee('0x64')]+'%'};return _0xbf604e;})});}_0x65db67=_['merge']({},_0x65db67,_0x2f8187[_0x10ee('0x50')]);return db[_0x10ee('0x68')][_0x10ee('0x51')]({'where':_0x65db67['where']})['then'](function(_0x5a3744){_0x55080c[_0x10ee('0x51')]=_0x5a3744;if(_0x2f8187['query'][_0x10ee('0x52')]){_0x65db67[_0x10ee('0x56')]=[{'all':!![]}];}return db[_0x10ee('0x68')]['findAll'](_0x65db67);})[_0x10ee('0x1f')](function(_0x4543fd){_0x55080c[_0x10ee('0x69')]=_0x4543fd;return _0x55080c;});}})[_0x10ee('0x1f')](respondWithFilteredResult(_0xf884ac,_0x65db67))[_0x10ee('0x2a')](handleError(_0xf884ac,null));};exports[_0x10ee('0x6a')]=function(_0x282473,_0x1ded55,_0x251d13){var _0x44a4b7;return db[_0x10ee('0x3b')]['find']({'where':{'id':_0x282473['params']['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x1ded55,null))['then'](function(_0x5b91c9){if(_0x5b91c9){return _0x5b91c9[_0x10ee('0x6a')](_0x282473['query']['ids']);}})[_0x10ee('0x1f')](respondWithStatusCode(_0x1ded55,null))[_0x10ee('0x2a')](handleError(_0x1ded55,null));};exports[_0x10ee('0x5e')]=function(_0x290b59,_0x58b6fc){var _0x465074={'name':_0x290b59[_0x10ee('0x59')]['name'],'key':_0x290b59[_0x10ee('0x59')][_0x10ee('0x6b')],'email':_0x290b59['body'][_0x10ee('0x6c')],'ListId':_0x290b59['body'][_0x10ee('0x6d')],'active':!_[_0x10ee('0x6e')](_0x290b59[_0x10ee('0x59')][_0x10ee('0x6f')])?_0x290b59[_0x10ee('0x59')][_0x10ee('0x6f')]:!![],'description':_0x290b59['body'][_0x10ee('0x70')]||null,'Imap':{},'Smtp':{}};if(_[_0x10ee('0x6e')](_0x290b59[_0x10ee('0x59')]['cservice'])){if(_0x290b59[_0x10ee('0x59')][_0x10ee('0x71')]){_0x465074[_0x10ee('0x39')]['user']=_0x465074[_0x10ee('0x55')][_0x10ee('0x72')]=_0x290b59['body']['cuser'];_0x465074[_0x10ee('0x39')][_0x10ee('0x73')]=_0x465074['Smtp'][_0x10ee('0x74')]=_0x290b59[_0x10ee('0x59')][_0x10ee('0x75')];}else{_0x465074['Imap'][_0x10ee('0x76')]=_0x465074[_0x10ee('0x55')][_0x10ee('0x76')]=![];}_0x465074[_0x10ee('0x39')]['host']=_0x290b59[_0x10ee('0x59')][_0x10ee('0x39')][_0x10ee('0x77')];_0x465074[_0x10ee('0x39')][_0x10ee('0x78')]=_0x290b59['body'][_0x10ee('0x39')][_0x10ee('0x78')];_0x465074[_0x10ee('0x55')][_0x10ee('0x77')]=_0x290b59[_0x10ee('0x59')]['Smtp'][_0x10ee('0x77')];_0x465074[_0x10ee('0x55')]['port']=_0x290b59[_0x10ee('0x59')]['Smtp'][_0x10ee('0x78')];}else{_0x465074[_0x10ee('0x39')]['service']=_0x465074[_0x10ee('0x55')][_0x10ee('0x79')]=_0x290b59[_0x10ee('0x59')]['cservice'];_0x465074[_0x10ee('0x39')][_0x10ee('0x72')]=_0x465074['Smtp']['user']=_0x290b59[_0x10ee('0x59')]['cuser'];_0x465074[_0x10ee('0x39')][_0x10ee('0x73')]=_0x465074[_0x10ee('0x55')][_0x10ee('0x74')]=_0x290b59['body'][_0x10ee('0x75')];}return db[_0x10ee('0x3b')][_0x10ee('0x5e')](_0x465074,{'include':[{'model':db[_0x10ee('0x3a')],'as':_0x10ee('0x55')},{'model':db[_0x10ee('0x38')],'as':'Imap'}]})[_0x10ee('0x1f')](respondWithResult(_0x58b6fc,0xc9))[_0x10ee('0x2a')](handleError(_0x58b6fc,null));};exports['getImap']=function(_0x42dd78,_0x521461,_0x685904){return db[_0x10ee('0x3b')]['findOne']({'where':{'id':_0x42dd78[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x521461,null))[_0x10ee('0x1f')](function(_0x4b03d6){if(_0x4b03d6){return _0x4b03d6[_0x10ee('0x7a')]();}return null;})[_0x10ee('0x1f')](respondWithResult(_0x521461,null))['catch'](handleError(_0x521461,null));};exports[_0x10ee('0x7b')]=function(_0x4a274c,_0x2ff652,_0x55988f){if(_0x4a274c[_0x10ee('0x59')]['id']){delete _0x4a274c[_0x10ee('0x59')]['id'];}return db['MailAccount'][_0x10ee('0x57')]({'where':{'id':_0x4a274c[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x2ff652,null))[_0x10ee('0x1f')](function(_0x4a0a7a){if(_0x4a0a7a){_0x4a274c[_0x10ee('0x59')][_0x10ee('0x63')]=_0x4a0a7a['id'];return db[_0x10ee('0x38')][_0x10ee('0x5e')](_0x4a274c[_0x10ee('0x59')]);}})[_0x10ee('0x1f')](respondWithResult(_0x2ff652,null))[_0x10ee('0x2a')](handleError(_0x2ff652,null));};exports[_0x10ee('0x7c')]=function(_0x170f6e,_0x3fdc46,_0xf1a6a5){return db[_0x10ee('0x3b')]['findOne']({'where':{'id':_0x170f6e[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x3fdc46,null))['then'](function(_0x5b2294){if(_0x5b2294){return _0x5b2294[_0x10ee('0x7d')](null);}return null;})[_0x10ee('0x1f')](respondWithStatusCode(_0x3fdc46,null))[_0x10ee('0x2a')](handleError(_0x3fdc46,null));};exports[_0x10ee('0x7e')]=function(_0x3d8337,_0x268fe7,_0x599b0b){return db['MailAccount']['findOne']({'where':{'id':_0x3d8337[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x268fe7,null))['then'](function(_0x1f971c){if(_0x1f971c){return _0x1f971c['getSmtp']();}return null;})[_0x10ee('0x1f')](respondWithResult(_0x268fe7,null))['catch'](handleError(_0x268fe7,null));};exports[_0x10ee('0x7f')]=function(_0x521ad0,_0x45cf98,_0x25c7a9){if(_0x521ad0['body']['id']){delete _0x521ad0['body']['id'];}return db[_0x10ee('0x3b')][_0x10ee('0x57')]({'where':{'id':_0x521ad0[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x45cf98,null))['then'](function(_0x254b32){if(_0x254b32){_0x521ad0['body'][_0x10ee('0x63')]=_0x254b32['id'];return db[_0x10ee('0x3a')][_0x10ee('0x5e')](_0x521ad0[_0x10ee('0x59')]);}})[_0x10ee('0x1f')](respondWithResult(_0x45cf98,null))[_0x10ee('0x2a')](handleError(_0x45cf98,null));};exports[_0x10ee('0x80')]=function(_0x3b1baf,_0x2c57d2,_0x4ef3f9){return db[_0x10ee('0x3b')][_0x10ee('0x60')]({'where':{'id':_0x3b1baf[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x2c57d2,null))[_0x10ee('0x1f')](function(_0x729db7){if(_0x729db7){return _0x729db7[_0x10ee('0x81')](null);}return null;})[_0x10ee('0x1f')](respondWithStatusCode(_0x2c57d2,null))['catch'](handleError(_0x2c57d2,null));};exports[_0x10ee('0x82')]=function(_0x567b88,_0x2df500,_0x1e08c6){return db[_0x10ee('0x83')][_0x10ee('0x57')]({'where':{'id':_0x567b88[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x2df500,null))[_0x10ee('0x1f')](function(_0x27731e){if(_0x27731e){return _0x27731e['addInteraction'](_0x567b88[_0x10ee('0x59')][_0x10ee('0x66')],_['omit'](_0x567b88[_0x10ee('0x59')],['ids','id'])||{});}})[_0x10ee('0x1f')](respondWithResult(_0x2df500,null))[_0x10ee('0x2a')](handleError(_0x2df500,null));};exports[_0x10ee('0x84')]=function(_0x3e4ab4,_0x32eafc,_0x5205c9){var _0x3c8099={'raw':![],'where':{}};var _0x2eaf3a={};var _0x5a4732={'count':0x0,'rows':[]};return db['MailAccount'][_0x10ee('0x60')]({'where':{'id':_0x3e4ab4[_0x10ee('0x5a')]['id']}})['then'](handleEntityNotFound(_0x32eafc,null))[_0x10ee('0x1f')](function(_0x3a5d91){if(_0x3a5d91){_0x2eaf3a['model']=_[_0x10ee('0x3e')](db['MailInteraction'][_0x10ee('0x3c')]);_0x2eaf3a[_0x10ee('0x3f')]=_['keys'](_0x3e4ab4[_0x10ee('0x3f')]);_0x2eaf3a[_0x10ee('0x41')]=_[_0x10ee('0x42')](_0x2eaf3a[_0x10ee('0x3d')],_0x2eaf3a['query']);_0x3c8099[_0x10ee('0x43')]=_[_0x10ee('0x42')](_0x2eaf3a[_0x10ee('0x3d')],qs[_0x10ee('0x44')](_0x3e4ab4[_0x10ee('0x3f')][_0x10ee('0x44')]));_0x3c8099[_0x10ee('0x43')]=_0x3c8099[_0x10ee('0x43')][_0x10ee('0x61')]?_0x3c8099[_0x10ee('0x43')]:_0x2eaf3a[_0x10ee('0x3d')];if(!_0x3e4ab4[_0x10ee('0x3f')][_0x10ee('0x45')](_0x10ee('0x62'))){_0x3c8099[_0x10ee('0x46')]=qs[_0x10ee('0x46')](_0x3e4ab4[_0x10ee('0x3f')]['limit']);_0x3c8099[_0x10ee('0x2f')]=qs[_0x10ee('0x2f')](_0x3e4ab4[_0x10ee('0x3f')][_0x10ee('0x2f')]);}_0x3c8099['order']=qs[_0x10ee('0x48')](_0x3e4ab4[_0x10ee('0x3f')][_0x10ee('0x48')]);_0x3c8099[_0x10ee('0x49')]=qs[_0x10ee('0x41')](_[_0x10ee('0x4a')](_0x3e4ab4[_0x10ee('0x3f')],_0x2eaf3a[_0x10ee('0x41')]));_0x3c8099['where'][_0x10ee('0x63')]=_0x3a5d91['id'];if(_0x3e4ab4[_0x10ee('0x3f')]['filter']){_0x3c8099[_0x10ee('0x49')]=_[_0x10ee('0x4e')](_0x3c8099[_0x10ee('0x49')],{'$or':_[_0x10ee('0x4f')](_0x3c8099[_0x10ee('0x43')],function(_0xd5b5f1){var _0x4ca6e7={};_0x4ca6e7[_0xd5b5f1]={'$like':'%'+_0x3e4ab4['query'][_0x10ee('0x64')]+'%'};return _0x4ca6e7;})});}_0x3c8099=_[_0x10ee('0x4e')]({},_0x3c8099,_0x3e4ab4[_0x10ee('0x50')]);return db[_0x10ee('0x83')][_0x10ee('0x51')]({'where':_0x3c8099['where']})['then'](function(_0x3f5d3b){_0x5a4732['count']=_0x3f5d3b;if(_0x3e4ab4[_0x10ee('0x3f')]['includeAll']){_0x3c8099['include']=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db[_0x10ee('0x85')],'as':_0x10ee('0x86'),'attributes':[_0x10ee('0x35'),_0x10ee('0x87'),_0x10ee('0x88')],'required':![]},{'model':db[_0x10ee('0x89')],'as':_0x10ee('0x8a'),'attributes':['id','name',_0x10ee('0x8b')],'where':_0x3e4ab4[_0x10ee('0x3f')][_0x10ee('0x8c')]?{'id':_0x3e4ab4[_0x10ee('0x3f')]['tag']}:undefined,'required':_0x3e4ab4['query'][_0x10ee('0x8c')]?!![]:![]}];}return db[_0x10ee('0x83')]['findAll'](_0x3c8099);})['then'](function(_0x15f32c){_0x5a4732['rows']=_0x15f32c;return _0x5a4732;});}})['then'](respondWithFilteredResult(_0x32eafc,_0x3c8099))[_0x10ee('0x2a')](handleError(_0x32eafc,null));};exports[_0x10ee('0x8d')]=function(_0xcfaf33,_0x49d639,_0x5ce47f){return db[_0x10ee('0x3b')]['findOne']({'where':{'id':_0xcfaf33['params']['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x49d639,null))[_0x10ee('0x1f')](function(_0x27d2c6){if(_0x27d2c6){return db[_0x10ee('0x8e')][_0x10ee('0x8f')](function(_0x45e50b){return db[_0x10ee('0x90')]['destroy']({'where':{'MailAccountId':_0xcfaf33[_0x10ee('0x5a')]['id']},'transaction':_0x45e50b})[_0x10ee('0x1f')](function(_0x2047c1){var _0x436e17=_[_0x10ee('0x4f')](_0xcfaf33[_0x10ee('0x59')],function(_0x5e24c1){_0x5e24c1[_0x10ee('0x63')]=_0xcfaf33[_0x10ee('0x5a')]['id'];return _0x5e24c1;});return db[_0x10ee('0x90')][_0x10ee('0x91')](_0x436e17,{'transaction':_0x45e50b});});})[_0x10ee('0x1f')](function(){return db[_0x10ee('0x90')][_0x10ee('0x92')]({'where':{'MailAccountId':_0xcfaf33[_0x10ee('0x5a')]['id']},'order':'priority'});});}})['then'](respondWithResult(_0x49d639,null))['catch'](handleError(_0x49d639,null));};exports[_0x10ee('0x93')]=function(_0x36cdc2,_0x12ad06,_0x26d1e0){var _0x1e81fa={};var _0x134bee={};var _0xd03fb6;var _0x53e0df;return db[_0x10ee('0x3b')][_0x10ee('0x60')]({'where':{'id':_0x36cdc2[_0x10ee('0x5a')]['id']}})['then'](handleEntityNotFound(_0x12ad06,null))['then'](function(_0x3899a1){if(_0x3899a1){_0xd03fb6=_0x3899a1;_0x134bee[_0x10ee('0x3d')]=_[_0x10ee('0x3e')](db[_0x10ee('0x90')][_0x10ee('0x3c')]);_0x134bee[_0x10ee('0x3f')]=_['keys'](_0x36cdc2[_0x10ee('0x3f')]);_0x134bee[_0x10ee('0x41')]=_['intersection'](_0x134bee[_0x10ee('0x3d')],_0x134bee[_0x10ee('0x3f')]);_0x1e81fa[_0x10ee('0x43')]=_['intersection'](_0x134bee[_0x10ee('0x3d')],qs[_0x10ee('0x44')](_0x36cdc2[_0x10ee('0x3f')][_0x10ee('0x44')]));_0x1e81fa[_0x10ee('0x43')]=_0x1e81fa[_0x10ee('0x43')][_0x10ee('0x61')]?_0x1e81fa[_0x10ee('0x43')]:_0x134bee['model'];_0x1e81fa['order']=qs[_0x10ee('0x48')](_0x36cdc2[_0x10ee('0x3f')][_0x10ee('0x48')]);_0x1e81fa['where']=qs['filters'](_[_0x10ee('0x4a')](_0x36cdc2['query'],_0x134bee[_0x10ee('0x41')]));if(_0x36cdc2['query']['filter']){_0x1e81fa[_0x10ee('0x49')]=_[_0x10ee('0x4e')](_0x1e81fa[_0x10ee('0x49')],{'$or':_['map'](_0x1e81fa['attributes'],function(_0x50b703){var _0x1cf489={};_0x1cf489[_0x50b703]={'$like':'%'+_0x36cdc2[_0x10ee('0x3f')][_0x10ee('0x64')]+'%'};return _0x1cf489;})});}_0x1e81fa=_[_0x10ee('0x4e')]({},_0x1e81fa,_0x36cdc2['options']);return _0xd03fb6[_0x10ee('0x93')](_0x1e81fa);}})[_0x10ee('0x1f')](function(_0x2b88d0){if(_0x2b88d0){_0x53e0df=_0x2b88d0[_0x10ee('0x61')];if(!_0x36cdc2['query']['hasOwnProperty'](_0x10ee('0x62'))){_0x1e81fa['limit']=qs[_0x10ee('0x46')](_0x36cdc2[_0x10ee('0x3f')][_0x10ee('0x46')]);_0x1e81fa[_0x10ee('0x2f')]=qs[_0x10ee('0x2f')](_0x36cdc2[_0x10ee('0x3f')][_0x10ee('0x2f')]);}return _0xd03fb6['getApplications'](_0x1e81fa);}})[_0x10ee('0x1f')](function(_0xc802b0){if(_0xc802b0){return _0xc802b0?{'count':_0x53e0df,'rows':_0xc802b0}:null;}})[_0x10ee('0x1f')](respondWithResult(_0x12ad06,null))[_0x10ee('0x2a')](handleError(_0x12ad06,null));};exports[_0x10ee('0x94')]=function(_0x1abff1,_0x5d27da,_0x31e6d6){var _0x308fc1={'raw':!![],'where':{}};var _0x5f5827={};var _0x4fef4d={'count':0x0,'rows':[]};return db[_0x10ee('0x3b')][_0x10ee('0x60')]({'where':{'id':_0x1abff1[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x5d27da,null))[_0x10ee('0x1f')](function(_0x52c036){if(_0x52c036){_0x5f5827[_0x10ee('0x3d')]=_[_0x10ee('0x3e')](db[_0x10ee('0x95')][_0x10ee('0x3c')]);_0x5f5827[_0x10ee('0x3f')]=_[_0x10ee('0x3e')](_0x1abff1[_0x10ee('0x3f')]);_0x5f5827[_0x10ee('0x41')]=_['intersection'](_0x5f5827[_0x10ee('0x3d')],_0x5f5827[_0x10ee('0x3f')]);_0x308fc1[_0x10ee('0x43')]=_['intersection'](_0x5f5827[_0x10ee('0x3d')],qs[_0x10ee('0x44')](_0x1abff1['query'][_0x10ee('0x44')]));_0x308fc1[_0x10ee('0x43')]=_0x308fc1[_0x10ee('0x43')][_0x10ee('0x61')]?_0x308fc1[_0x10ee('0x43')]:_0x5f5827['model'];if(!_0x1abff1[_0x10ee('0x3f')][_0x10ee('0x45')]('nolimit')){_0x308fc1['limit']=qs[_0x10ee('0x46')](_0x1abff1[_0x10ee('0x3f')][_0x10ee('0x46')]);_0x308fc1[_0x10ee('0x2f')]=qs[_0x10ee('0x2f')](_0x1abff1[_0x10ee('0x3f')][_0x10ee('0x2f')]);}_0x308fc1[_0x10ee('0x47')]=qs[_0x10ee('0x48')](_0x1abff1[_0x10ee('0x3f')]['sort']);_0x308fc1[_0x10ee('0x49')]=qs[_0x10ee('0x41')](_[_0x10ee('0x4a')](_0x1abff1['query'],_0x5f5827[_0x10ee('0x41')]));_0x308fc1[_0x10ee('0x49')][_0x10ee('0x63')]=_0x52c036['id'];if(_0x1abff1[_0x10ee('0x3f')][_0x10ee('0x64')]){_0x308fc1[_0x10ee('0x49')]=_[_0x10ee('0x4e')](_0x308fc1[_0x10ee('0x49')],{'$or':_[_0x10ee('0x4f')](_0x308fc1[_0x10ee('0x43')],function(_0x375699){var _0x513010={};_0x513010[_0x375699]={'$like':'%'+_0x1abff1['query'][_0x10ee('0x64')]+'%'};return _0x513010;})});}if(_0x1abff1[_0x10ee('0x3f')][_0x10ee('0x96')]){var _0x1a2ad9=_0x1abff1[_0x10ee('0x3f')]['$gte'][_0x10ee('0x97')](',');var _0x4efb1c={};_0x4efb1c[_0x1a2ad9[0x0]]={'$gte':moment(_0x1a2ad9[0x1])[_0x10ee('0x98')]('YYYY-MM-DD\x20HH:mm:ss')};_0x308fc1[_0x10ee('0x49')]=_[_0x10ee('0x4e')](_0x308fc1[_0x10ee('0x49')],_0x4efb1c);}_0x308fc1=_[_0x10ee('0x4e')]({},_0x308fc1,_0x1abff1[_0x10ee('0x50')]);return db['MailMessage']['count']({'where':_0x308fc1[_0x10ee('0x49')]})[_0x10ee('0x1f')](function(_0xd815c1){_0x4fef4d[_0x10ee('0x51')]=_0xd815c1;if(_0x1abff1['query']['includeAll']){_0x308fc1[_0x10ee('0x56')]=[{'all':!![]}];}return db[_0x10ee('0x95')][_0x10ee('0x53')](_0x308fc1);})[_0x10ee('0x1f')](function(_0x1a0176){_0x4fef4d[_0x10ee('0x69')]=_0x1a0176;return _0x4fef4d;});}})[_0x10ee('0x1f')](respondWithFilteredResult(_0x5d27da,_0x308fc1))[_0x10ee('0x2a')](handleError(_0x5d27da,null));};exports[_0x10ee('0x36')]=function(_0x113201,_0x27a749,_0x1d6b01){var _0x5199c7,_0x2c2c0e={},_0x5dffc1;if(_0x113201[_0x10ee('0x59')]['to']){_0x5dffc1=_0x113201[_0x10ee('0x59')]['to'][_0x10ee('0x97')](',')[0x0];}return db[_0x10ee('0x3b')]['find']({'where':{'id':_0x113201['params']['id']},'include':[{'model':db[_0x10ee('0x99')],'as':'List','include':[{'model':db[_0x10ee('0x9a')],'as':_0x10ee('0x9b'),'where':{'email':_0x5dffc1},'limit':0x1,'order':[[_0x10ee('0x9c'),_0x10ee('0x9d')]]}]},{'model':db[_0x10ee('0x3a')],'as':_0x10ee('0x55'),'raw':!![]}]})[_0x10ee('0x1f')](handleEntityNotFound(_0x27a749,null))[_0x10ee('0x1f')](function(_0x5e047e){if(_0x5e047e){_0x5199c7=_0x5e047e;if(_0x5e047e['Smtp']){if(_[_0x10ee('0x6e')](_0x113201['body'][_0x10ee('0x9e')])){_0x113201[_0x10ee('0x59')][_0x10ee('0x9e')]=util['format'](_0x10ee('0x9f'),_0x5e047e[_0x10ee('0x35')],_0x5e047e['email']||_0x5e047e[_0x10ee('0x55')][_0x10ee('0x72')]);}if(_0x113201[_0x10ee('0x59')][_0x10ee('0xa0')]&&_0x113201[_0x10ee('0x59')][_0x10ee('0xa0')][_0x10ee('0x61')]){for(var _0x514ae1=0x0;_0x514ae1<_0x113201[_0x10ee('0x59')]['attachments'][_0x10ee('0x61')];_0x514ae1+=0x1){_0x113201['body'][_0x10ee('0xa0')][_0x514ae1]={'filename':_0x113201[_0x10ee('0x59')]['attachments'][_0x514ae1]['name'],'path':path['join'](config[_0x10ee('0xa1')],'server/files/attachments',_0x113201[_0x10ee('0x59')]['attachments'][_0x514ae1][_0x10ee('0xa2')])};}}var _0x41a713={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x5e047e[_0x10ee('0x55')][_0x10ee('0x79')])){if(_0x5e047e['Smtp'][_0x10ee('0x76')]){_0x41a713[_0x10ee('0xa3')]={'user':_0x5e047e[_0x10ee('0x55')]['user'],'pass':_0x5e047e[_0x10ee('0x55')]['pass']};}_0x41a713[_0x10ee('0x77')]=_0x5e047e['Smtp'][_0x10ee('0x77')];_0x41a713['port']=_0x5e047e[_0x10ee('0x55')]['port'];_0x41a713[_0x10ee('0xa4')]=_0x5e047e[_0x10ee('0x55')][_0x10ee('0xa4')];}else{_0x41a713[_0x10ee('0x79')]=_0x5e047e[_0x10ee('0x55')]['service'];_0x41a713[_0x10ee('0xa3')]={'user':_0x5e047e[_0x10ee('0x55')][_0x10ee('0x72')],'pass':_0x5e047e[_0x10ee('0x55')]['pass']};}return respondWithRpcPromise('SendMail',_0x10ee('0xa5'),{'account':_0x41a713,'message':_0x113201[_0x10ee('0x59')]});}else{throw new Error('List\x20not\x20found');}}})['then'](function(_0x431f5b){if(_0x431f5b){_0x2c2c0e=_0x431f5b;if(_0x5199c7[_0x10ee('0xa6')]){if(_0x5199c7[_0x10ee('0xa6')]['Contacts'][_0x10ee('0x61')]){return _0x5199c7['List'][_0x10ee('0x9b')][0x0];}else{return db['CmContact'][_0x10ee('0x5e')](_[_0x10ee('0xa7')](_0x113201[_0x10ee('0x59')],{'firstName':_0x113201[_0x10ee('0x59')]['to'],'email':_0x113201[_0x10ee('0x59')]['to'],'phone':_0x113201['body']['to'],'ListId':_0x5199c7[_0x10ee('0x6d')]}));}}else{throw new Error('List\x20not\x20found');}}})[_0x10ee('0x1f')](function(_0x212401){if(_0x212401){var _0x3f443e={'UserId':_0x113201[_0x10ee('0x72')]['id'],'ContactId':_0x212401['id'],'MailAccountId':_0x5199c7['id'],'inReplyTo':_0x2c2c0e[_0x10ee('0xa8')],'to':_0x113201[_0x10ee('0x59')][_0x10ee('0x9e')],'cc':_0x113201[_0x10ee('0x59')]['cc'],'subject':_0x113201[_0x10ee('0x59')][_0x10ee('0xa9')],'attach':_0x113201[_0x10ee('0x59')][_0x10ee('0xaa')],'firstMsgDirection':_0x10ee('0xab'),'lastMsgAt':moment()['format'](_0x10ee('0xac')),'lastMsgDirection':_0x10ee('0xab'),'lastMsgBody':_0x113201['body'][_0x10ee('0x59')],'Messages':[_['merge'](_0x113201[_0x10ee('0x59')],{'messageId':_0x2c2c0e[_0x10ee('0xa8')],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x5199c7['id'],'UserId':_0x113201[_0x10ee('0x72')]['id'],'ContactId':_0x212401['id']})]};if(_0x113201[_0x10ee('0x59')][_0x10ee('0xad')]){_0x3f443e=_['merge'](_0x3f443e,_0x113201['body'][_0x10ee('0xad')]);}return db[_0x10ee('0x83')][_0x10ee('0x5e')](_0x3f443e,{'include':[{'model':db['MailMessage'],'as':_0x10ee('0xae')}]});}})[_0x10ee('0x1f')](respondWithResult(_0x27a749,null))[_0x10ee('0x2a')](handleError(_0x27a749,null));};exports[_0x10ee('0xaf')]=function(_0x854653,_0x4afce7,_0x2fcf3e){return db[_0x10ee('0x3b')][_0x10ee('0x57')]({'where':{'id':_0x854653[_0x10ee('0x5a')]['id']},'include':[{'model':db['MailServerOut'],'as':_0x10ee('0x55'),'raw':!![]}]})[_0x10ee('0x1f')](handleEntityNotFound(_0x4afce7,null))[_0x10ee('0x1f')](function(_0x66a057){if(_0x66a057&&_0x66a057[_0x10ee('0x55')]){var _0x4829ec={'id':_0x66a057['id'],'tls':{'rejectUnauthorized':![]}};if(_0x66a057['Smtp'][_0x10ee('0x79')]){_0x4829ec['service']=_0x66a057[_0x10ee('0x55')][_0x10ee('0x79')];}else{_0x4829ec[_0x10ee('0x77')]=_0x66a057['Smtp'][_0x10ee('0x77')];_0x4829ec[_0x10ee('0x78')]=_0x66a057[_0x10ee('0x55')][_0x10ee('0x78')];_0x4829ec[_0x10ee('0xa4')]=_0x66a057[_0x10ee('0x55')][_0x10ee('0xa4')];}if(_0x66a057['Smtp'][_0x10ee('0x76')]){_0x4829ec[_0x10ee('0xa3')]={'user':_0x66a057['Smtp'][_0x10ee('0x72')],'pass':_0x66a057[_0x10ee('0x55')][_0x10ee('0x74')]};}return respondWithRpcPromise(_0x10ee('0xb0'),_0x10ee('0xaf'),{'account':_0x4829ec});}})[_0x10ee('0x1f')](respondWithResult(_0x4afce7,null))[_0x10ee('0x2a')](handleError(_0x4afce7,null));};exports[_0x10ee('0xb1')]=function(_0xed3e0a,_0x565348){return db['MailAccount'][_0x10ee('0x57')]({'where':{'id':_0xed3e0a[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x565348,null))['then'](function(_0x2d0865){if(_0x2d0865&&_0x2d0865[_0x10ee('0x79')]){throw new db[(_0x10ee('0xb2'))][(_0x10ee('0xb3'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0x2d0865;})[_0x10ee('0x1f')](removeEntity(_0x565348,null))[_0x10ee('0x2a')](handleError(_0x565348,null));};exports[_0x10ee('0xb4')]=function(_0xfe2615,_0x12b6f4,_0x5f04f1){return db[_0x10ee('0x3b')][_0x10ee('0x57')]({'where':{'id':_0xfe2615['params']['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x12b6f4,null))[_0x10ee('0x1f')](function(_0x399764){if(_0x399764){return _0x399764['addAgents'](_0xfe2615[_0x10ee('0x59')][_0x10ee('0x66')],_[_0x10ee('0xb5')](_0xfe2615[_0x10ee('0x59')],[_0x10ee('0x66'),'id'])||{})[_0x10ee('0xb6')](function(_0x242eb6){for(var _0x3f01c2=0x0;_0x3f01c2<_0xfe2615[_0x10ee('0x59')][_0x10ee('0x66')][_0x10ee('0x61')];_0x3f01c2+=0x1){socket[_0x10ee('0xb7')]('userMailAccount:save',{'UserId':_0xfe2615[_0x10ee('0x59')][_0x10ee('0x66')][_0x3f01c2],'MailAccountId':_0xfe2615['params']['id']});}return _0x242eb6;});}})[_0x10ee('0x1f')](respondWithResult(_0x12b6f4,null))['catch'](handleError(_0x12b6f4,null));};exports[_0x10ee('0xb8')]=function(_0x21e0d8,_0x592f7b,_0x15a1fa){var _0x3e54e5;return db[_0x10ee('0x3b')][_0x10ee('0x57')]({'where':{'id':_0x21e0d8['params']['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x592f7b,null))[_0x10ee('0x1f')](function(_0x2551d6){if(_0x2551d6){return _0x2551d6[_0x10ee('0xb8')](_0x21e0d8[_0x10ee('0x3f')][_0x10ee('0x66')])[_0x10ee('0x1f')](function(_0x157c62){if(_[_0x10ee('0xb9')](_0x21e0d8[_0x10ee('0x3f')][_0x10ee('0x66')])){for(var _0x17373c=0x0;_0x17373c<_0x21e0d8['query']['ids']['length'];_0x17373c+=0x1){socket[_0x10ee('0xb7')](_0x10ee('0xba'),{'UserId':_0x21e0d8[_0x10ee('0x3f')][_0x10ee('0x66')][_0x17373c],'MailAccountId':_0x21e0d8[_0x10ee('0x5a')]['id']});}}else{socket[_0x10ee('0xb7')]('userMailAccount:remove',{'UserId':_0x21e0d8[_0x10ee('0x3f')][_0x10ee('0x66')],'MailAccountId':_0x21e0d8['params']['id']});}});}})[_0x10ee('0x1f')](respondWithStatusCode(_0x592f7b,null))[_0x10ee('0x2a')](handleError(_0x592f7b,null));};exports['getAgents']=function(_0x4af413,_0x3cfe1a,_0x5d98a8){var _0x3d554d={};var _0x5c83f8={};var _0x552af1;var _0x5d2f63;return db[_0x10ee('0x3b')]['findOne']({'where':{'id':_0x4af413[_0x10ee('0x5a')]['id']}})[_0x10ee('0x1f')](handleEntityNotFound(_0x3cfe1a,null))[_0x10ee('0x1f')](function(_0x34a53f){if(_0x34a53f){_0x552af1=_0x34a53f;_0x5c83f8['model']=_[_0x10ee('0x3e')](db[_0x10ee('0x85')]['rawAttributes']);_0x5c83f8[_0x10ee('0x3f')]=_['keys'](_0x4af413['query']);_0x5c83f8[_0x10ee('0x41')]=_['intersection'](_0x5c83f8['model'],_0x5c83f8[_0x10ee('0x3f')]);_0x3d554d[_0x10ee('0x43')]=_[_0x10ee('0x42')](_0x5c83f8[_0x10ee('0x3d')],qs['fields'](_0x4af413[_0x10ee('0x3f')]['fields']));_0x3d554d[_0x10ee('0x43')]=_0x3d554d[_0x10ee('0x43')][_0x10ee('0x61')]?_0x3d554d[_0x10ee('0x43')]:_0x5c83f8['model'];_0x3d554d['order']=qs['sort'](_0x4af413[_0x10ee('0x3f')][_0x10ee('0x48')]);_0x3d554d[_0x10ee('0x49')]=qs[_0x10ee('0x41')](_['pick'](_0x4af413[_0x10ee('0x3f')],_0x5c83f8[_0x10ee('0x41')]));if(_0x4af413['query'][_0x10ee('0x64')]){_0x3d554d[_0x10ee('0x49')]=_[_0x10ee('0x4e')](_0x3d554d['where'],{'$or':_[_0x10ee('0x4f')](_0x3d554d['attributes'],function(_0x5747b7){var _0x1c224c={};_0x1c224c[_0x5747b7]={'$like':'%'+_0x4af413[_0x10ee('0x3f')][_0x10ee('0x64')]+'%'};return _0x1c224c;})});}_0x3d554d=_[_0x10ee('0x4e')]({},_0x3d554d,_0x4af413[_0x10ee('0x50')]);return _0x552af1[_0x10ee('0xbb')](_0x3d554d);}})[_0x10ee('0x1f')](function(_0x128d3a){if(_0x128d3a){_0x5d2f63=_0x128d3a['length'];if(!_0x4af413['query'][_0x10ee('0x45')](_0x10ee('0x62'))){_0x3d554d[_0x10ee('0x46')]=qs[_0x10ee('0x46')](_0x4af413[_0x10ee('0x3f')][_0x10ee('0x46')]);_0x3d554d[_0x10ee('0x2f')]=qs[_0x10ee('0x2f')](_0x4af413[_0x10ee('0x3f')][_0x10ee('0x2f')]);}return _0x552af1['getAgents'](_0x3d554d);}})[_0x10ee('0x1f')](function(_0x1f667f){if(_0x1f667f){return _0x1f667f?{'count':_0x5d2f63,'rows':_0x1f667f}:null;}})[_0x10ee('0x1f')](respondWithResult(_0x3cfe1a,null))[_0x10ee('0x2a')](handleError(_0x3cfe1a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x315f=['setMaxListeners','save','update','remove','emit','hook','exports','events'];(function(_0x58d1e3,_0x55f6c0){var _0x5a6d44=function(_0x531dd8){while(--_0x531dd8){_0x58d1e3['push'](_0x58d1e3['shift']());}};_0x5a6d44(++_0x55f6c0);}(_0x315f,0x177));var _0xf315=function(_0x195c21,_0x332612){_0x195c21=_0x195c21-0x0;var _0x3576a8=_0x315f[_0x195c21];return _0x3576a8;};'use strict';var EventEmitter=require(_0xf315('0x0'));var MailAccount=require('../../mysqldb')['db']['MailAccount'];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0xf315('0x1')](0x0);var events={'afterCreate':_0xf315('0x2'),'afterUpdate':_0xf315('0x3'),'afterDestroy':_0xf315('0x4')};function emitEvent(_0x47f7f5){return function(_0x222d88,_0x213d91,_0x4c5f20){MailAccountEvents[_0xf315('0x5')](_0x47f7f5+':'+_0x222d88['id'],_0x222d88);MailAccountEvents[_0xf315('0x5')](_0x47f7f5,_0x222d88);_0x4c5f20(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailAccount[_0xf315('0x6')](e,emitEvent(event));}}module[_0xf315('0x7')]=MailAccountEvents;
\ No newline at end of file
+var _0xe34e=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','MailAccount','save','update','remove'];(function(_0x386525,_0xefae6){var _0x14d015=function(_0x4a45c1){while(--_0x4a45c1){_0x386525['push'](_0x386525['shift']());}};_0x14d015(++_0xefae6);}(_0xe34e,0x194));var _0xee34=function(_0x510d9c,_0x4c6c9e){_0x510d9c=_0x510d9c-0x0;var _0x1af63c=_0xe34e[_0x510d9c];return _0x1af63c;};'use strict';var EventEmitter=require(_0xee34('0x0'));var MailAccount=require(_0xee34('0x1'))['db'][_0xee34('0x2')];var MailAccountEvents=new EventEmitter();MailAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xee34('0x3'),'afterUpdate':_0xee34('0x4'),'afterDestroy':_0xee34('0x5')};function emitEvent(_0x494c7f){return function(_0xbef31c,_0x5958b3,_0x79b76d){MailAccountEvents['emit'](_0x494c7f+':'+_0xbef31c['id'],_0xbef31c);MailAccountEvents[_0xee34('0x6')](_0x494c7f,_0xbef31c);_0x79b76d(null);};}for(var e in events){if(events[_0xee34('0x7')](e)){var event=events[e];MailAccount[_0xee34('0x8')](e,emitEvent(event));}}module[_0xee34('0x9')]=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9adc=['MailAccount','mail_accounts','util','../../config/logger','api','moment','bluebird','request-promise','./mailAccount.attributes','exports','define'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x9adc,0x141));var _0xc9ad=function(_0x2de69c,_0x594110){_0x2de69c=_0x2de69c-0x0;var _0x3ff72a=_0x9adc[_0x2de69c];return _0x3ff72a;};'use strict';var _=require('lodash');var util=require(_0xc9ad('0x0'));var logger=require(_0xc9ad('0x1'))(_0xc9ad('0x2'));var moment=require(_0xc9ad('0x3'));var BPromise=require(_0xc9ad('0x4'));var rp=require(_0xc9ad('0x5'));var attributes=require(_0xc9ad('0x6'));module[_0xc9ad('0x7')]=function(_0x2da337,_0x4f935f){return _0x2da337[_0xc9ad('0x8')](_0xc9ad('0x9'),attributes,{'tableName':_0xc9ad('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa1c4=['MailAccount','mail_accounts','api','moment','bluebird','request-promise','./mailAccount.attributes','define'];(function(_0x8f398c,_0x189cc6){var _0x22450c=function(_0x4cf097){while(--_0x4cf097){_0x8f398c['push'](_0x8f398c['shift']());}};_0x22450c(++_0x189cc6);}(_0xa1c4,0xe2));var _0x4a1c=function(_0x45be52,_0x46d496){_0x45be52=_0x45be52-0x0;var _0x15294f=_0xa1c4[_0x45be52];return _0x15294f;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x4a1c('0x0'));var moment=require(_0x4a1c('0x1'));var BPromise=require(_0x4a1c('0x2'));var rp=require(_0x4a1c('0x3'));var attributes=require(_0x4a1c('0x4'));module['exports']=function(_0x5213b6,_0x23e4ab){return _0x5213b6[_0x4a1c('0x5')](_0x4a1c('0x6'),attributes,{'tableName':_0x4a1c('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89d0=['result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','model','map','find','ShowMailAccount','NotifyMailAccount','body','mail','difference','keys','updatedAt','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','Applications','MailServerOut','Smtp','get','omit','applications','list','orderBy','priority','asc','autoclose','push','length','*,*,*,*','CmContact','create','contact','messageId','generate','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','Contact\x20not\x20found','update','format','interaction','created','MailMessage','attachments','bcc','Attachment','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','request','then','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','info'];(function(_0x2058b2,_0x9beb44){var _0x1308b9=function(_0x20dc47){while(--_0x20dc47){_0x2058b2['push'](_0x2058b2['shift']());}};_0x1308b9(++_0x9beb44);}(_0x89d0,0xaa));var _0x089d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x89d0[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x089d('0x0'));var util=require('util');var moment=require(_0x089d('0x1'));var BPromise=require(_0x089d('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x089d('0x3'))['db'];var utils=require(_0x089d('0x4'));var logger=require(_0x089d('0x5'))(_0x089d('0x6'));var config=require(_0x089d('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232c});config[_0x089d('0x8')]=_[_0x089d('0x9')](config[_0x089d('0x8')],{'host':_0x089d('0xa'),'port':0x18eb});var socket=require(_0x089d('0xb'))(config['redis']);require(_0x089d('0xc'))['register'](socket);function respondWithRpcPromise(_0x11fd23,_0x30ddc9,_0x2f7ef0){return new BPromise(function(_0x65dc95,_0x3d1008){return client[_0x089d('0xd')](_0x11fd23,_0x2f7ef0)[_0x089d('0xe')](function(_0x101b45){logger['info']('MailAccount,\x20%s,\x20%s',_0x30ddc9,_0x089d('0xf'));logger[_0x089d('0x10')](_0x089d('0x11'),_0x30ddc9,_0x089d('0xf'),JSON[_0x089d('0x12')](_0x101b45));if(_0x101b45['error']){if(_0x101b45[_0x089d('0x13')][_0x089d('0x14')]===0x1f4){logger[_0x089d('0x13')](_0x089d('0x15'),_0x30ddc9,_0x101b45[_0x089d('0x13')]['message']);return _0x3d1008(_0x101b45['error'][_0x089d('0x16')]);}logger[_0x089d('0x13')]('MailAccount,\x20%s,\x20%s',_0x30ddc9,_0x101b45[_0x089d('0x13')]['message']);return _0x65dc95(_0x101b45[_0x089d('0x13')][_0x089d('0x16')]);}else{logger[_0x089d('0x17')](_0x089d('0x15'),_0x30ddc9,_0x089d('0xf'));_0x65dc95(_0x101b45[_0x089d('0x18')]['message']);}})[_0x089d('0x19')](function(_0x4cad3d){logger[_0x089d('0x13')](_0x089d('0x15'),_0x30ddc9,_0x4cad3d);_0x3d1008(_0x4cad3d);});});}exports[_0x089d('0x1a')]=function(_0x2682e9){var _0x16b12f=this;return new Promise(function(_0x20b9db,_0xdb3f07){return db[_0x089d('0x1b')][_0x089d('0x1c')]({'raw':_0x2682e9[_0x089d('0x1d')]?_0x2682e9['options'][_0x089d('0x1e')]===undefined?!![]:![]:!![],'where':_0x2682e9[_0x089d('0x1d')]?_0x2682e9[_0x089d('0x1d')][_0x089d('0x1f')]||null:null,'attributes':_0x2682e9[_0x089d('0x1d')]?_0x2682e9['options'][_0x089d('0x20')]||null:null,'limit':_0x2682e9[_0x089d('0x1d')]?_0x2682e9['options'][_0x089d('0x21')]||null:null,'include':_0x2682e9['options']?_0x2682e9[_0x089d('0x1d')][_0x089d('0x22')]?_['map'](_0x2682e9['options'][_0x089d('0x22')],function(_0x28be7e){return{'model':db[_0x28be7e[_0x089d('0x23')]],'as':_0x28be7e['as'],'attributes':_0x28be7e[_0x089d('0x20')],'include':_0x28be7e[_0x089d('0x22')]?_[_0x089d('0x24')](_0x28be7e[_0x089d('0x22')],function(_0x2991ee){return{'model':db[_0x2991ee[_0x089d('0x23')]],'as':_0x2991ee['as'],'attributes':_0x2991ee[_0x089d('0x20')],'include':_0x2991ee[_0x089d('0x22')]?_[_0x089d('0x24')](_0x2991ee['include'],function(_0x49636c){return{'model':db[_0x49636c['model']],'as':_0x49636c['as'],'attributes':_0x49636c[_0x089d('0x20')]};}):[]};}):[]};}):[]:[]})[_0x089d('0xe')](function(_0x4e017c){logger['info'](_0x089d('0x1a'),_0x2682e9);logger[_0x089d('0x10')](_0x089d('0x1a'),_0x2682e9,JSON['stringify'](_0x4e017c));_0x20b9db(_0x4e017c);})[_0x089d('0x19')](function(_0x103733){logger[_0x089d('0x13')]('GetMailAccount',_0x103733['message'],_0x2682e9);_0xdb3f07(_0x16b12f[_0x089d('0x13')](0x1f4,_0x103733[_0x089d('0x16')]));});});};exports['ShowMailAccount']=function(_0x241392){var _0x11da4f=this;return new Promise(function(_0x11c640,_0xb3ae2){return db['MailAccount'][_0x089d('0x25')]({'raw':_0x241392[_0x089d('0x1d')]?_0x241392[_0x089d('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x241392['options']?_0x241392[_0x089d('0x1d')][_0x089d('0x1f')]||null:null,'attributes':_0x241392['options']?_0x241392['options'][_0x089d('0x20')]||null:null,'include':_0x241392[_0x089d('0x1d')]?_0x241392[_0x089d('0x1d')][_0x089d('0x22')]?_[_0x089d('0x24')](_0x241392['options']['include'],function(_0x3daf29){return{'model':db[_0x3daf29[_0x089d('0x23')]],'as':_0x3daf29['as'],'attributes':_0x3daf29[_0x089d('0x20')],'include':_0x3daf29[_0x089d('0x22')]?_['map'](_0x3daf29['include'],function(_0x53fd38){return{'model':db[_0x53fd38['model']],'as':_0x53fd38['as'],'attributes':_0x53fd38[_0x089d('0x20')],'include':_0x53fd38[_0x089d('0x22')]?_[_0x089d('0x24')](_0x53fd38[_0x089d('0x22')],function(_0x3ff601){return{'model':db[_0x3ff601[_0x089d('0x23')]],'as':_0x3ff601['as'],'attributes':_0x3ff601[_0x089d('0x20')]};}):[]};}):[]};}):[]:[]})[_0x089d('0xe')](function(_0x13da32){logger[_0x089d('0x17')](_0x089d('0x26'),_0x241392);logger['debug'](_0x089d('0x26'),_0x241392,JSON['stringify'](_0x13da32));_0x11c640(_0x13da32);})[_0x089d('0x19')](function(_0x39e9d3){logger['error'](_0x089d('0x26'),_0x39e9d3[_0x089d('0x16')],_0x241392);_0xb3ae2(_0x11da4f['error'](0x1f4,_0x39e9d3[_0x089d('0x16')]));});});};exports[_0x089d('0x27')]=function(_0x2a0ecd){var _0x2d53b8=this;return new Promise(function(_0x4987e4,_0x5aff3d){var _0x4589ab={'body':_0x2a0ecd[_0x089d('0x28')],'channel':_0x089d('0x29')};var _0x275c6c=_[_0x089d('0x2a')](_[_0x089d('0x2b')](db['CmContact']['rawAttributes']),['createdAt',_0x089d('0x2c'),'CompanyId',_0x089d('0x2d')]);var _0x29f1ba=![];if(_0x2a0ecd[_0x089d('0x28')]['id']){delete _0x2a0ecd[_0x089d('0x28')]['id'];}if(_[_0x089d('0x2e')](_0x2a0ecd['body'][_0x089d('0x2f')])){return _0x5aff3d(_0x2d53b8['error'](0x1f4,'from\x20is\x20mandatory'));}if(_['isNil'](_0x2a0ecd[_0x089d('0x28')][_0x089d('0x28')])||_0x2a0ecd['body'][_0x089d('0x28')]===''){return _0x5aff3d(_0x2d53b8[_0x089d('0x13')](0x1f4,_0x089d('0x30')));}if(_[_0x089d('0x2e')](_0x2a0ecd['body'][_0x089d('0x31')])){return _0x5aff3d(_0x2d53b8[_0x089d('0x13')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x275c6c));}if(!_['includes'](_0x275c6c,_0x2a0ecd[_0x089d('0x28')][_0x089d('0x31')])){return _0x5aff3d(_0x2d53b8[_0x089d('0x13')](0x1f4,_0x089d('0x32')+_0x275c6c));}var _0x4f2b40={};_0x4f2b40[_0x2a0ecd['body'][_0x089d('0x31')]]=_0x2a0ecd['body']['from'];return db[_0x089d('0x1b')]['find']({'where':{'id':_0x2a0ecd[_0x089d('0x33')]['id']},'include':[{'model':db[_0x089d('0x34')],'as':_0x089d('0x35'),'include':[{'model':db['CmContact'],'as':_0x089d('0x36'),'where':_0x4f2b40,'limit':0x1,'order':[[_0x089d('0x2c'),'DESC']]}]},{'model':db['MailApplication'],'as':_0x089d('0x37')},{'model':db[_0x089d('0x38')],'as':_0x089d('0x39')}]})[_0x089d('0xe')](function(_0x2877e4){if(_0x2877e4&&_0x2877e4['List']){var _0x1fb130=_0x2877e4[_0x089d('0x3a')]({'plain':!![]});_0x4589ab[_0x089d('0x33')]=_[_0x089d('0x3b')](_0x1fb130,[_0x089d('0x37'),'List']);_0x4589ab[_0x089d('0x3c')]=_0x1fb130[_0x089d('0x37')];_0x4589ab[_0x089d('0x3d')]=_0x1fb130[_0x089d('0x35')];_0x4589ab['applications']=_[_0x089d('0x3e')](_0x4589ab[_0x089d('0x3c')],[_0x089d('0x3f')],[_0x089d('0x40')]);if(_0x4589ab[_0x089d('0x33')]&&_0x4589ab[_0x089d('0x33')][_0x089d('0x41')]){_0x4589ab[_0x089d('0x3c')][_0x089d('0x42')]({'id':0x0,'priority':_0x4589ab['applications'][_0x089d('0x43')]+0x1,'app':'close','appdata':'autoclose','interval':_0x089d('0x44')});}if(_0x4589ab[_0x089d('0x33')][_0x089d('0x37')]){delete _0x4589ab[_0x089d('0x33')]['Applications'];}if(_0x4589ab[_0x089d('0x33')][_0x089d('0x35')]){delete _0x4589ab[_0x089d('0x33')][_0x089d('0x35')];}if(_0x1fb130['List'][_0x089d('0x36')]['length']){return _0x1fb130[_0x089d('0x35')][_0x089d('0x36')][0x0];}var _0xb7c2dc=_[_0x089d('0x9')](_0x2a0ecd[_0x089d('0x28')],{'firstName':_0x2a0ecd['body'][_0x089d('0x2f')],'ListId':_0x1fb130[_0x089d('0x2d')]});_0xb7c2dc[_0x2a0ecd[_0x089d('0x28')][_0x089d('0x31')]]=_0x2a0ecd[_0x089d('0x28')][_0x089d('0x2f')];return db[_0x089d('0x45')][_0x089d('0x46')](_0xb7c2dc);}else{throw new Error('List\x20not\x20found');}})[_0x089d('0xe')](function(_0x4a8742){_0x4589ab[_0x089d('0x47')]=_0x4a8742;if(_0x4a8742){if(!_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x48')]){_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x48')]=rs[_0x089d('0x49')]()+'\x20'+_0x2a0ecd['body'][_0x089d('0x16')][_0x089d('0x2f')];}var _0x4442ef={'ContactId':_0x4a8742['id'],'MailAccountId':_0x2a0ecd['account']['id'],'inReplyTo':_0x2a0ecd[_0x089d('0x28')]['message'][_0x089d('0x48')],'to':_0x2a0ecd[_0x089d('0x28')]['message'][_0x089d('0x2f')],'cc':_0x2a0ecd['body']['message']['cc'],'subject':_0x2a0ecd['body'][_0x089d('0x16')][_0x089d('0x4a')],'attach':_0x2a0ecd[_0x089d('0x28')]['message'][_0x089d('0x4b')],'lastMsgAt':moment()['format'](_0x089d('0x4c')),'lastMsgDirection':'in','lastMsgBody':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x28')]};return db[_0x089d('0x4d')][_0x089d('0x25')]({'where':{'closed':![],'MailAccountId':_0x2a0ecd[_0x089d('0x33')]['id']},'include':[{'model':db['MailMessage'],'as':_0x089d('0x4e'),'attributes':[_0x089d('0x48')],'where':{'messageId':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')]['inReplyTo']}}]})['then'](function(_0x34deb1){if(_0x34deb1){return[_0x34deb1,![]];}return db[_0x089d('0x4d')][_0x089d('0x46')](_0x4442ef)[_0x089d('0xe')](function(_0x520f84){return[_0x520f84,!![]];});});}else{throw new Error(_0x089d('0x4f'));}})['spread'](function(_0x115a43,_0x1e26e4){if(_0x115a43){_0x29f1ba=_0x1e26e4;if(!_0x1e26e4){return _0x115a43[_0x089d('0x50')]({'inReplyTo':_0x2a0ecd['body'][_0x089d('0x16')][_0x089d('0x48')],'to':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x2f')],'cc':_0x2a0ecd['body']['message']['cc'],'subject':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x4a')],'attach':_0x115a43[_0x089d('0x4b')]?_0x115a43['attach']:_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x4b')],'substatus':null,'substatusAt':moment()[_0x089d('0x51')](_0x089d('0x4c')),'lastMsgAt':moment()[_0x089d('0x51')](_0x089d('0x4c')),'lastMsgDirection':'in','lastMsgBody':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x28')]});}else{return _0x115a43;}}})[_0x089d('0xe')](function(_0x55f105){_0x4589ab['interaction']=_0x55f105[_0x089d('0x3a')]({'plain':!![]});_0x4589ab[_0x089d('0x52')][_0x089d('0x53')]=_0x29f1ba;return db[_0x089d('0x54')][_0x089d('0x46')]({'body':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x28')],'MailAccountId':_0x2a0ecd['account']['id'],'MailInteractionId':_0x55f105['id'],'direction':'in','ContactId':_0x4589ab[_0x089d('0x47')]['id'],'messageId':_0x2a0ecd['body'][_0x089d('0x16')][_0x089d('0x48')],'from':_0x2a0ecd[_0x089d('0x28')]['message'][_0x089d('0x2f')],'to':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')]['to'],'cc':_0x2a0ecd['body'][_0x089d('0x16')]['cc'],'subject':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x4a')],'attach':_0x2a0ecd[_0x089d('0x28')]['message']['attach'],'Attachments':_0x2a0ecd[_0x089d('0x28')]['message'][_0x089d('0x55')],'originTo':_0x2a0ecd[_0x089d('0x28')]['message']['originTo'],'originCc':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')]['originCc'],'bcc':_0x2a0ecd[_0x089d('0x28')][_0x089d('0x16')][_0x089d('0x56')]},{'include':[{'model':db[_0x089d('0x57')],'as':_0x089d('0x58')}]});})[_0x089d('0xe')](function(_0x5457c7){_0x4589ab[_0x089d('0x16')]=_0x5457c7;if(_0x4589ab[_0x089d('0x52')][_0x089d('0x59')]){return db[_0x089d('0x5a')][_0x089d('0x25')]({'attributes':['id',_0x089d('0x5b')],'where':{'id':_0x4589ab[_0x089d('0x52')][_0x089d('0x59')]}})['then'](function(_0x297bb8){if(_0x297bb8){_0x4589ab['applications'][_0x089d('0x5c')]({'id':0x0,'priority':0x0,'app':_0x089d('0x5d'),'appdata':_0x297bb8['name']+','+(_0x4589ab[_0x089d('0x33')][_0x089d('0x5e')]||0xa),'interval':_0x089d('0x44')});}return respondWithRpcPromise(_0x089d('0x5f'),'startRouting',_0x4589ab);});}return respondWithRpcPromise(_0x089d('0x5f'),_0x089d('0x60'),_0x4589ab);})[_0x089d('0xe')](function(_0x4ea3c1){_0x4987e4(_0x4ea3c1);})['catch'](function(_0x54d18e){_0x5aff3d(_0x2d53b8[_0x089d('0x13')](0x1f4,_0x54d18e[_0x089d('0x16')]));});});};
\ No newline at end of file
+var _0x647f=['CompanyId','body','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','List','Contacts','DESC','Smtp','get','omit','Applications','list','applications','orderBy','autoclose','push','length','close','*,*,*,*','ListId','create','List\x20not\x20found','contact','messageId','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','interaction','attachments','originCc','Attachment','Attachments','UserId','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','defaults','localhost','redis','./mailAccount.socket','then','info','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','result','catch','GetMailAccount','MailAccount','findAll','options','attributes','include','map','model','ShowMailAccount','find','raw','where','NotifyMailAccount','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt'];(function(_0x435ded,_0x1b9602){var _0x4635ec=function(_0xd4c6ec){while(--_0xd4c6ec){_0x435ded['push'](_0x435ded['shift']());}};_0x4635ec(++_0x1b9602);}(_0x647f,0x159));var _0xf647=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x647f[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xf647('0x0'));var util=require(_0xf647('0x1'));var moment=require(_0xf647('0x2'));var BPromise=require(_0xf647('0x3'));var rs=require(_0xf647('0x4'));var fs=require('fs');var Redis=require(_0xf647('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xf647('0x6'));var logger=require(_0xf647('0x7'))('rpc');var config=require(_0xf647('0x8'));var jayson=require(_0xf647('0x9'));var client=jayson[_0xf647('0xa')]['http']({'port':0x232c});config['redis']=_[_0xf647('0xb')](config['redis'],{'host':_0xf647('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf647('0xd')]));require(_0xf647('0xe'))['register'](socket);function respondWithRpcPromise(_0x79d1af,_0x4b001d,_0x33190b){return new BPromise(function(_0x1e22d2,_0x4362eb){return client['request'](_0x79d1af,_0x33190b)[_0xf647('0xf')](function(_0x235544){logger[_0xf647('0x10')]('MailAccount,\x20%s,\x20%s',_0x4b001d,_0xf647('0x11'));logger[_0xf647('0x12')](_0xf647('0x13'),_0x4b001d,_0xf647('0x11'),JSON[_0xf647('0x14')](_0x235544));if(_0x235544[_0xf647('0x15')]){if(_0x235544[_0xf647('0x15')][_0xf647('0x16')]===0x1f4){logger[_0xf647('0x15')](_0xf647('0x17'),_0x4b001d,_0x235544[_0xf647('0x15')][_0xf647('0x18')]);return _0x4362eb(_0x235544[_0xf647('0x15')]['message']);}logger[_0xf647('0x15')]('MailAccount,\x20%s,\x20%s',_0x4b001d,_0x235544[_0xf647('0x15')][_0xf647('0x18')]);return _0x1e22d2(_0x235544[_0xf647('0x15')]['message']);}else{logger[_0xf647('0x10')](_0xf647('0x17'),_0x4b001d,_0xf647('0x11'));_0x1e22d2(_0x235544[_0xf647('0x19')][_0xf647('0x18')]);}})[_0xf647('0x1a')](function(_0x2e9e97){logger['error'](_0xf647('0x17'),_0x4b001d,_0x2e9e97);_0x4362eb(_0x2e9e97);});});}exports[_0xf647('0x1b')]=function(_0x42768a){var _0x22dac1=this;return new Promise(function(_0x1d88b0,_0x3e6563){return db[_0xf647('0x1c')][_0xf647('0x1d')]({'raw':_0x42768a[_0xf647('0x1e')]?_0x42768a[_0xf647('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x42768a['options']?_0x42768a[_0xf647('0x1e')]['where']||null:null,'attributes':_0x42768a[_0xf647('0x1e')]?_0x42768a[_0xf647('0x1e')][_0xf647('0x1f')]||null:null,'limit':_0x42768a[_0xf647('0x1e')]?_0x42768a[_0xf647('0x1e')]['limit']||null:null,'include':_0x42768a[_0xf647('0x1e')]?_0x42768a['options'][_0xf647('0x20')]?_[_0xf647('0x21')](_0x42768a['options'][_0xf647('0x20')],function(_0x3d32de){return{'model':db[_0x3d32de['model']],'as':_0x3d32de['as'],'attributes':_0x3d32de[_0xf647('0x1f')],'include':_0x3d32de[_0xf647('0x20')]?_[_0xf647('0x21')](_0x3d32de[_0xf647('0x20')],function(_0x16338c){return{'model':db[_0x16338c[_0xf647('0x22')]],'as':_0x16338c['as'],'attributes':_0x16338c[_0xf647('0x1f')],'include':_0x16338c[_0xf647('0x20')]?_[_0xf647('0x21')](_0x16338c[_0xf647('0x20')],function(_0x21660d){return{'model':db[_0x21660d[_0xf647('0x22')]],'as':_0x21660d['as'],'attributes':_0x21660d[_0xf647('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xf647('0xf')](function(_0x3f8434){logger['info'](_0xf647('0x1b'),_0x42768a);logger['debug'](_0xf647('0x1b'),_0x42768a,JSON[_0xf647('0x14')](_0x3f8434));_0x1d88b0(_0x3f8434);})[_0xf647('0x1a')](function(_0x1e6568){logger[_0xf647('0x15')](_0xf647('0x1b'),_0x1e6568[_0xf647('0x18')],_0x42768a);_0x3e6563(_0x22dac1[_0xf647('0x15')](0x1f4,_0x1e6568[_0xf647('0x18')]));});});};exports[_0xf647('0x23')]=function(_0x934142){var _0x102a8e=this;return new Promise(function(_0x51499f,_0x38c6de){return db['MailAccount'][_0xf647('0x24')]({'raw':_0x934142['options']?_0x934142[_0xf647('0x1e')][_0xf647('0x25')]===undefined?!![]:![]:!![],'where':_0x934142[_0xf647('0x1e')]?_0x934142[_0xf647('0x1e')][_0xf647('0x26')]||null:null,'attributes':_0x934142['options']?_0x934142[_0xf647('0x1e')][_0xf647('0x1f')]||null:null,'include':_0x934142['options']?_0x934142[_0xf647('0x1e')][_0xf647('0x20')]?_[_0xf647('0x21')](_0x934142[_0xf647('0x1e')]['include'],function(_0x41de2e){return{'model':db[_0x41de2e[_0xf647('0x22')]],'as':_0x41de2e['as'],'attributes':_0x41de2e[_0xf647('0x1f')],'include':_0x41de2e[_0xf647('0x20')]?_[_0xf647('0x21')](_0x41de2e[_0xf647('0x20')],function(_0x3b0c66){return{'model':db[_0x3b0c66[_0xf647('0x22')]],'as':_0x3b0c66['as'],'attributes':_0x3b0c66['attributes'],'include':_0x3b0c66[_0xf647('0x20')]?_[_0xf647('0x21')](_0x3b0c66[_0xf647('0x20')],function(_0x299e3f){return{'model':db[_0x299e3f[_0xf647('0x22')]],'as':_0x299e3f['as'],'attributes':_0x299e3f['attributes']};}):[]};}):[]};}):[]:[]})[_0xf647('0xf')](function(_0x1ae702){logger[_0xf647('0x10')](_0xf647('0x23'),_0x934142);logger[_0xf647('0x12')](_0xf647('0x23'),_0x934142,JSON[_0xf647('0x14')](_0x1ae702));_0x51499f(_0x1ae702);})[_0xf647('0x1a')](function(_0x1ea43e){logger[_0xf647('0x15')](_0xf647('0x23'),_0x1ea43e[_0xf647('0x18')],_0x934142);_0x38c6de(_0x102a8e[_0xf647('0x15')](0x1f4,_0x1ea43e[_0xf647('0x18')]));});});};exports[_0xf647('0x27')]=function(_0x330967){var _0x2c6845=this;return new Promise(function(_0x2c39fe,_0x3af067){var _0x302b38={'body':_0x330967['body'],'channel':_0xf647('0x28')};var _0x3a0d9d=_[_0xf647('0x29')](_[_0xf647('0x2a')](db[_0xf647('0x2b')][_0xf647('0x2c')]),[_0xf647('0x2d'),_0xf647('0x2e'),_0xf647('0x2f'),'ListId']);var _0x385be8=![];if(_0x330967['body']['id']){delete _0x330967[_0xf647('0x30')]['id'];}if(_[_0xf647('0x31')](_0x330967['body']['from'])){return _0x3af067(_0x2c6845[_0xf647('0x15')](0x1f4,'from\x20is\x20mandatory'));}if(_[_0xf647('0x31')](_0x330967['body'][_0xf647('0x30')])||_0x330967[_0xf647('0x30')][_0xf647('0x30')]===''){return _0x3af067(_0x2c6845[_0xf647('0x15')](0x1f4,_0xf647('0x32')));}if(_['isNil'](_0x330967[_0xf647('0x30')][_0xf647('0x33')])){return _0x3af067(_0x2c6845[_0xf647('0x15')](0x1f4,_0xf647('0x34')+_0x3a0d9d));}if(!_['includes'](_0x3a0d9d,_0x330967['body'][_0xf647('0x33')])){return _0x3af067(_0x2c6845[_0xf647('0x15')](0x1f4,_0xf647('0x35')+_0x3a0d9d));}var _0x253a70={};_0x253a70[_0x330967[_0xf647('0x30')][_0xf647('0x33')]]=_0x330967['body'][_0xf647('0x36')];return db[_0xf647('0x1c')]['find']({'where':{'id':_0x330967[_0xf647('0x37')]['id']},'include':[{'model':db['CmList'],'as':_0xf647('0x38'),'include':[{'model':db[_0xf647('0x2b')],'as':_0xf647('0x39'),'where':_0x253a70,'limit':0x1,'order':[[_0xf647('0x2e'),_0xf647('0x3a')]]}]},{'model':db['MailApplication'],'as':'Applications'},{'model':db['MailServerOut'],'as':_0xf647('0x3b')}]})['then'](function(_0x69f8ea){if(_0x69f8ea&&_0x69f8ea[_0xf647('0x38')]){var _0x2bd2eb=_0x69f8ea[_0xf647('0x3c')]({'plain':!![]});_0x302b38[_0xf647('0x37')]=_[_0xf647('0x3d')](_0x2bd2eb,['Applications',_0xf647('0x38')]);_0x302b38['applications']=_0x2bd2eb[_0xf647('0x3e')];_0x302b38[_0xf647('0x3f')]=_0x2bd2eb[_0xf647('0x38')];_0x302b38[_0xf647('0x40')]=_[_0xf647('0x41')](_0x302b38['applications'],['priority'],['asc']);if(_0x302b38[_0xf647('0x37')]&&_0x302b38['account'][_0xf647('0x42')]){_0x302b38[_0xf647('0x40')][_0xf647('0x43')]({'id':0x0,'priority':_0x302b38[_0xf647('0x40')][_0xf647('0x44')]+0x1,'app':_0xf647('0x45'),'appdata':'autoclose','interval':_0xf647('0x46')});}if(_0x302b38[_0xf647('0x37')][_0xf647('0x3e')]){delete _0x302b38['account'][_0xf647('0x3e')];}if(_0x302b38[_0xf647('0x37')]['List']){delete _0x302b38[_0xf647('0x37')][_0xf647('0x38')];}if(_0x2bd2eb[_0xf647('0x38')]['Contacts'][_0xf647('0x44')]){return _0x2bd2eb[_0xf647('0x38')][_0xf647('0x39')][0x0];}var _0x26149b=_['defaults'](_0x330967['body'],{'firstName':_0x330967[_0xf647('0x30')][_0xf647('0x36')],'ListId':_0x2bd2eb[_0xf647('0x47')]});_0x26149b[_0x330967['body'][_0xf647('0x33')]]=_0x330967[_0xf647('0x30')]['from'];return db[_0xf647('0x2b')][_0xf647('0x48')](_0x26149b);}else{throw new Error(_0xf647('0x49'));}})['then'](function(_0x5bca78){_0x302b38[_0xf647('0x4a')]=_0x5bca78;if(_0x5bca78){if(!_0x330967[_0xf647('0x30')]['message']['messageId']){_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x4b')]=rs['generate']()+'\x20'+_0x330967[_0xf647('0x30')]['message'][_0xf647('0x36')];}var _0x880bc6={'ContactId':_0x5bca78['id'],'MailAccountId':_0x330967[_0xf647('0x37')]['id'],'inReplyTo':_0x330967['body'][_0xf647('0x18')][_0xf647('0x4b')],'to':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x36')],'cc':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['cc'],'subject':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x4c')],'attach':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x4d')],'lastMsgAt':moment()[_0xf647('0x4e')](_0xf647('0x4f')),'lastMsgDirection':'in','lastMsgBody':_0x330967[_0xf647('0x30')][_0xf647('0x30')]};return db[_0xf647('0x50')][_0xf647('0x24')]({'where':{'closed':![],'MailAccountId':_0x330967['account']['id']},'include':[{'model':db[_0xf647('0x51')],'as':_0xf647('0x52'),'attributes':[_0xf647('0x4b')],'where':{'messageId':_0x330967[_0xf647('0x30')]['message'][_0xf647('0x53')]}}]})[_0xf647('0xf')](function(_0x1faa76){if(_0x1faa76){return[_0x1faa76,![]];}return db[_0xf647('0x50')][_0xf647('0x48')](_0x880bc6)[_0xf647('0xf')](function(_0x13bf54){return[_0x13bf54,!![]];});});}else{throw new Error(_0xf647('0x54'));}})[_0xf647('0x55')](function(_0x459e0d,_0x4c3b0a){if(_0x459e0d){_0x385be8=_0x4c3b0a;if(!_0x4c3b0a){return _0x459e0d['update']({'inReplyTo':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['messageId'],'to':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x36')],'cc':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['cc'],'subject':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x4c')],'attach':_0x459e0d[_0xf647('0x4d')]?_0x459e0d[_0xf647('0x4d')]:_0x330967['body'][_0xf647('0x18')][_0xf647('0x4d')],'substatus':null,'substatusAt':moment()[_0xf647('0x4e')](_0xf647('0x4f')),'lastMsgAt':moment()[_0xf647('0x4e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x330967[_0xf647('0x30')][_0xf647('0x30')]});}else{return _0x459e0d;}}})[_0xf647('0xf')](function(_0xb2a601){_0x302b38[_0xf647('0x56')]=_0xb2a601[_0xf647('0x3c')]({'plain':!![]});_0x302b38[_0xf647('0x56')]['created']=_0x385be8;return db[_0xf647('0x51')][_0xf647('0x48')]({'body':_0x330967[_0xf647('0x30')]['body'],'MailAccountId':_0x330967[_0xf647('0x37')]['id'],'MailInteractionId':_0xb2a601['id'],'direction':'in','ContactId':_0x302b38[_0xf647('0x4a')]['id'],'messageId':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['messageId'],'from':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['from'],'to':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['to'],'cc':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['cc'],'subject':_0x330967['body']['message']['subject'],'attach':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x4d')],'Attachments':_0x330967[_0xf647('0x30')][_0xf647('0x18')][_0xf647('0x57')],'originTo':_0x330967[_0xf647('0x30')]['message']['originTo'],'originCc':_0x330967['body']['message'][_0xf647('0x58')],'bcc':_0x330967[_0xf647('0x30')][_0xf647('0x18')]['bcc']},{'include':[{'model':db[_0xf647('0x59')],'as':_0xf647('0x5a')}]});})['then'](function(_0x4028ca){_0x302b38[_0xf647('0x18')]=_0x4028ca;if(_0x302b38['interaction'][_0xf647('0x5b')]){return db['User'][_0xf647('0x24')]({'attributes':['id',_0xf647('0x5c')],'where':{'id':_0x302b38[_0xf647('0x56')]['UserId']}})[_0xf647('0xf')](function(_0x4f7563){if(_0x4f7563){_0x302b38['applications'][_0xf647('0x5d')]({'id':0x0,'priority':0x0,'app':_0xf647('0x5e'),'appdata':_0x4f7563[_0xf647('0x5c')]+','+(_0x302b38[_0xf647('0x37')][_0xf647('0x5f')]||0xa),'interval':_0xf647('0x46')});}return respondWithRpcPromise('Start',_0xf647('0x60'),_0x302b38);});}return respondWithRpcPromise(_0xf647('0x61'),_0xf647('0x60'),_0x302b38);})[_0xf647('0xf')](function(_0x4560b6){_0x2c39fe(_0x4560b6);})[_0xf647('0x1a')](function(_0x99622a){_0x3af067(_0x2c6845['error'](0x1f4,_0x99622a[_0xf647('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5704=['register','length','mailAccount:','./mailAccount.events','save','remove','update','emit'];(function(_0x1408c7,_0x31fa74){var _0x575319=function(_0x23a3b2){while(--_0x23a3b2){_0x1408c7['push'](_0x1408c7['shift']());}};_0x575319(++_0x31fa74);}(_0x5704,0x1db));var _0x4570=function(_0x36888d,_0x22988e){_0x36888d=_0x36888d-0x0;var _0x14f524=_0x5704[_0x36888d];return _0x14f524;};'use strict';var MailAccountEvents=require(_0x4570('0x0'));var events=[_0x4570('0x1'),_0x4570('0x2'),_0x4570('0x3')];function createListener(_0x19787b,_0x3df449){return function(_0x4608f3){_0x3df449[_0x4570('0x4')](_0x19787b,_0x4608f3);};}function removeListener(_0x100876,_0x5eed43){return function(){MailAccountEvents['removeListener'](_0x100876,_0x5eed43);};}exports[_0x4570('0x5')]=function(_0x43cad0){for(var _0xf77e79=0x0,_0x3abd44=events[_0x4570('0x6')];_0xf77e79<_0x3abd44;_0xf77e79++){var _0x469c39=events[_0xf77e79];var _0x4b6fa6=createListener(_0x4570('0x7')+_0x469c39,_0x43cad0);MailAccountEvents['on'](_0x469c39,_0x4b6fa6);}};
\ No newline at end of file
+var _0xdd52=['save','remove','update','emit','removeListener','length','mailAccount:','./mailAccount.events'];(function(_0x817d9b,_0x3c37e3){var _0x2752e1=function(_0x2b434e){while(--_0x2b434e){_0x817d9b['push'](_0x817d9b['shift']());}};_0x2752e1(++_0x3c37e3);}(_0xdd52,0x13f));var _0x2dd5=function(_0x467d87,_0x38f80e){_0x467d87=_0x467d87-0x0;var _0x41b829=_0xdd52[_0x467d87];return _0x41b829;};'use strict';var MailAccountEvents=require(_0x2dd5('0x0'));var events=[_0x2dd5('0x1'),_0x2dd5('0x2'),_0x2dd5('0x3')];function createListener(_0x5b6657,_0x3aaf87){return function(_0x2380bc){_0x3aaf87[_0x2dd5('0x4')](_0x5b6657,_0x2380bc);};}function removeListener(_0x2830ed,_0x2dfed1){return function(){MailAccountEvents[_0x2dd5('0x5')](_0x2830ed,_0x2dfed1);};}exports['register']=function(_0x4262e7){for(var _0x5128c0=0x0,_0x125762=events[_0x2dd5('0x6')];_0x5128c0<_0x125762;_0x5128c0++){var _0x21f3a2=events[_0x5128c0];var _0xe7599f=createListener(_0x2dd5('0x7')+_0x21f3a2,_0x4262e7);MailAccountEvents['on'](_0x21f3a2,_0xe7599f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6953=['destroy','multer','util','Router','../../components/interaction/service','../../config/environment','./mailApplication.controller','/:id','show','put','isAuthenticated','update'];(function(_0xd64f17,_0x4dfd13){var _0x2d424e=function(_0x35b30a){while(--_0x35b30a){_0xd64f17['push'](_0xd64f17['shift']());}};_0x2d424e(++_0x4dfd13);}(_0x6953,0x91));var _0x3695=function(_0x21546d,_0x447721){_0x21546d=_0x21546d-0x0;var _0x8c6176=_0x6953[_0x21546d];return _0x8c6176;};'use strict';var multer=require(_0x3695('0x0'));var util=require(_0x3695('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x3695('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x3695('0x3'));var config=require(_0x3695('0x4'));var controller=require(_0x3695('0x5'));router['get'](_0x3695('0x6'),auth['isAuthenticated'](),controller[_0x3695('0x7')]);router[_0x3695('0x8')](_0x3695('0x6'),auth[_0x3695('0x9')](),controller[_0x3695('0xa')]);router['delete'](_0x3695('0x6'),auth['isAuthenticated'](),controller[_0x3695('0xb')]);module['exports']=router;
\ No newline at end of file
+var _0x9c44=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','show','put','/:id','delete','destroy','path'];(function(_0x2cbb91,_0x1e719e){var _0x570acf=function(_0x139863){while(--_0x139863){_0x2cbb91['push'](_0x2cbb91['shift']());}};_0x570acf(++_0x1e719e);}(_0x9c44,0x178));var _0x49c4=function(_0x18ab2a,_0x4debcd){_0x18ab2a=_0x18ab2a-0x0;var _0x16dcee=_0x9c44[_0x18ab2a];return _0x16dcee;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var auth=require(_0x49c4('0x4'));var interaction=require(_0x49c4('0x5'));var config=require('../../config/environment');var controller=require('./mailApplication.controller');router[_0x49c4('0x6')]('/:id',auth[_0x49c4('0x7')](),controller[_0x49c4('0x8')]);router[_0x49c4('0x9')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller['update']);router[_0x49c4('0xb')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller[_0x49c4('0xc')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x904c=['INTEGER','STRING','*,*,*,*','sequelize','exports'];(function(_0x4427b3,_0x34f0a1){var _0x4c5e76=function(_0x2fc3b1){while(--_0x2fc3b1){_0x4427b3['push'](_0x4427b3['shift']());}};_0x4c5e76(++_0x34f0a1);}(_0x904c,0x1f2));var _0xc904=function(_0x2e44d5,_0x46ef14){_0x2e44d5=_0x2e44d5-0x0;var _0x3bedbf=_0x904c[_0x2e44d5];return _0x3bedbf;};'use strict';var Sequelize=require(_0xc904('0x0'));module[_0xc904('0x1')]={'priority':{'type':Sequelize[_0xc904('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xc904('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0xc904('0x3')](0x1000),'defaultValue':''},'description':{'type':Sequelize[_0xc904('0x3')]},'interval':{'type':Sequelize[_0xc904('0x3')],'defaultValue':_0xc904('0x4')}};
\ No newline at end of file
+var _0xf50a=['sequelize','exports','INTEGER','STRING','noop','*,*,*,*'];(function(_0x9cd4c3,_0x1c9b2c){var _0x4c9025=function(_0x25b3c6){while(--_0x25b3c6){_0x9cd4c3['push'](_0x9cd4c3['shift']());}};_0x4c9025(++_0x1c9b2c);}(_0xf50a,0x19e));var _0xaf50=function(_0x45283b,_0xe68902){_0x45283b=_0x45283b-0x0;var _0x1b23f9=_0xf50a[_0x45283b];return _0x1b23f9;};'use strict';var Sequelize=require(_0xaf50('0x0'));module[_0xaf50('0x1')]={'priority':{'type':Sequelize[_0xaf50('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xaf50('0x3')],'allowNull':![],'defaultValue':_0xaf50('0x4')},'appdata':{'type':Sequelize[_0xaf50('0x3')](0x1000),'defaultValue':''},'description':{'type':Sequelize[_0xaf50('0x3')]},'interval':{'type':Sequelize[_0xaf50('0x3')],'defaultValue':_0xaf50('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59e7=['include','merge','options','find','catch','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','jsforce','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','show','params','model','keys','MailApplication','rawAttributes','query','intersection','attributes','fields','length'];(function(_0xb3722f,_0x551403){var _0x3626b3=function(_0x4e9959){while(--_0x4e9959){_0xb3722f['push'](_0xb3722f['shift']());}};_0x3626b3(++_0x551403);}(_0x59e7,0x1c6));var _0x759e=function(_0x560d00,_0x5ef422){_0x560d00=_0x560d00-0x0;var _0xd80ada=_0x59e7[_0x560d00];return _0xd80ada;};'use strict';var pdf=require(_0x759e('0x0'));var emlformat=require(_0x759e('0x1'));var rimraf=require(_0x759e('0x2'));var zipdir=require(_0x759e('0x3'));var jsonpatch=require(_0x759e('0x4'));var rp=require(_0x759e('0x5'));var moment=require(_0x759e('0x6'));var BPromise=require(_0x759e('0x7'));var Mustache=require(_0x759e('0x8'));var util=require(_0x759e('0x9'));var path=require(_0x759e('0xa'));var sox=require(_0x759e('0xb'));var csv=require('to-csv');var ejs=require(_0x759e('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x759e('0xd'));var crypto=require('crypto');var jsforce=require(_0x759e('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x759e('0xf'));var querystring=require(_0x759e('0x10'));var Papa=require(_0x759e('0x11'));var qs=require(_0x759e('0x12'));var logger=require(_0x759e('0x13'))(_0x759e('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x759e('0x15'))['db'];function respondWithStatusCode(_0x27efe1,_0x21c09e){_0x21c09e=_0x21c09e||0xcc;return function(_0x50c16b){if(_0x50c16b){return _0x27efe1[_0x759e('0x16')](_0x21c09e);}return _0x27efe1[_0x759e('0x17')](_0x21c09e)[_0x759e('0x18')]();};}function respondWithResult(_0x4bfe82,_0xa03fd1){_0xa03fd1=_0xa03fd1||0xc8;return function(_0xd9f17f){if(_0xd9f17f){return _0x4bfe82['status'](_0xa03fd1)[_0x759e('0x19')](_0xd9f17f);}};}function respondWithFilteredResult(_0x5ef83c,_0x2d650e){return function(_0x2b503a){if(_0x2b503a){var _0xff7eca=_0x2b503a['count'],_0x13fff7=_0x2d650e[_0x759e('0x1a')],_0x49d215=_0x2d650e['offset']+_0x2d650e[_0x759e('0x1b')],_0x352032;if(_0x49d215>=_0xff7eca){_0x49d215=_0xff7eca;_0x352032=0xc8;}else{_0x352032=0xce;}_0x5ef83c['status'](_0x352032);return _0x5ef83c[_0x759e('0x1c')](_0x759e('0x1d'),_0x13fff7+'-'+_0x49d215+'/'+_0xff7eca)[_0x759e('0x19')](_0x2b503a);}return null;};}function patchUpdates(_0x587dc4){return function(_0x38793c){try{jsonpatch['apply'](_0x38793c,_0x587dc4,!![]);}catch(_0x3180ad){return BPromise[_0x759e('0x1e')](_0x3180ad);}return _0x38793c[_0x759e('0x1f')]();};}function saveUpdates(_0x44ef86,_0x272465){return function(_0x192635){if(_0x192635){return _0x192635[_0x759e('0x20')](_0x44ef86)[_0x759e('0x21')](function(_0x54274e){return _0x54274e;});}return null;};}function removeEntity(_0x6a5ae,_0x1d015d){return function(_0x5ca117){if(_0x5ca117){return _0x5ca117[_0x759e('0x22')]()[_0x759e('0x21')](function(){_0x6a5ae['status'](0xcc)[_0x759e('0x18')]();});}};}function handleEntityNotFound(_0x38a50b,_0x1a405c){return function(_0x5b0c55){if(!_0x5b0c55){_0x38a50b['sendStatus'](0x194);}return _0x5b0c55;};}function handleError(_0x5b5011,_0xcf5e9b){_0xcf5e9b=_0xcf5e9b||0x1f4;return function(_0x162cfd){logger[_0x759e('0x23')](_0x162cfd[_0x759e('0x24')]);if(_0x162cfd[_0x759e('0x25')]){delete _0x162cfd[_0x759e('0x25')];}_0x5b5011[_0x759e('0x17')](_0xcf5e9b)[_0x759e('0x26')](_0x162cfd);};}exports[_0x759e('0x27')]=function(_0x18a7d3,_0x1cee71){var _0x3ab454={'raw':!![],'where':{'id':_0x18a7d3[_0x759e('0x28')]['id']}},_0x460920={};_0x460920[_0x759e('0x29')]=_[_0x759e('0x2a')](db[_0x759e('0x2b')][_0x759e('0x2c')]);_0x460920['query']=_['keys'](_0x18a7d3[_0x759e('0x2d')]);_0x460920['filters']=_[_0x759e('0x2e')](_0x460920['model'],_0x460920[_0x759e('0x2d')]);_0x3ab454[_0x759e('0x2f')]=_['intersection'](_0x460920['model'],qs[_0x759e('0x30')](_0x18a7d3[_0x759e('0x2d')][_0x759e('0x30')]));_0x3ab454[_0x759e('0x2f')]=_0x3ab454[_0x759e('0x2f')][_0x759e('0x31')]?_0x3ab454[_0x759e('0x2f')]:_0x460920[_0x759e('0x29')];if(_0x18a7d3['query']['includeAll']){_0x3ab454[_0x759e('0x32')]=[{'all':!![]}];}_0x3ab454=_[_0x759e('0x33')]({},_0x3ab454,_0x18a7d3[_0x759e('0x34')]);return db[_0x759e('0x2b')][_0x759e('0x35')](_0x3ab454)[_0x759e('0x21')](handleEntityNotFound(_0x1cee71,null))[_0x759e('0x21')](respondWithResult(_0x1cee71,null))[_0x759e('0x36')](handleError(_0x1cee71,null));};exports[_0x759e('0x20')]=function(_0x40bd91,_0x13a669){if(_0x40bd91[_0x759e('0x37')]['id']){delete _0x40bd91['body']['id'];}return db[_0x759e('0x2b')][_0x759e('0x35')]({'where':{'id':_0x40bd91[_0x759e('0x28')]['id']}})['then'](handleEntityNotFound(_0x13a669,null))[_0x759e('0x21')](saveUpdates(_0x40bd91[_0x759e('0x37')],null))[_0x759e('0x21')](respondWithResult(_0x13a669,null))[_0x759e('0x36')](handleError(_0x13a669,null));};exports['destroy']=function(_0x19396c,_0x3895b9){return db[_0x759e('0x2b')]['find']({'where':{'id':_0x19396c['params']['id']}})['then'](handleEntityNotFound(_0x3895b9,null))[_0x759e('0x21')](removeEntity(_0x3895b9,null))['catch'](handleError(_0x3895b9,null));};
\ No newline at end of file
+var _0xc73e=['error','stack','name','show','params','model','keys','MailApplication','rawAttributes','query','filters','intersection','fields','attributes','length','includeAll','include','options','find','catch','body','html-pdf','eml-format','zip-dir','fast-json-patch','mustache','util','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','../../config/logger','api','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','save','update','then','destroy'];(function(_0x269a76,_0x5dd945){var _0x4983d3=function(_0x21a36e){while(--_0x21a36e){_0x269a76['push'](_0x269a76['shift']());}};_0x4983d3(++_0x5dd945);}(_0xc73e,0x1e9));var _0xec73=function(_0x5a1a5b,_0x1c8fb9){_0x5a1a5b=_0x5a1a5b-0x0;var _0x36eccd=_0xc73e[_0x5a1a5b];return _0x36eccd;};'use strict';var pdf=require(_0xec73('0x0'));var emlformat=require(_0xec73('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xec73('0x2'));var jsonpatch=require(_0xec73('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xec73('0x4'));var util=require(_0xec73('0x5'));var path=require('path');var sox=require(_0xec73('0x6'));var csv=require(_0xec73('0x7'));var ejs=require(_0xec73('0x8'));var fs=require('fs');var _=require(_0xec73('0x9'));var squel=require('squel');var crypto=require(_0xec73('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xec73('0xb'));var toCsv=require(_0xec73('0x7'));var querystring=require(_0xec73('0xc'));var Papa=require(_0xec73('0xd'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0xec73('0xe'))(_0xec73('0xf'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0xec73('0x10'))['db'];function respondWithStatusCode(_0x2ae06c,_0x1eb67e){_0x1eb67e=_0x1eb67e||0xcc;return function(_0x2fdebb){if(_0x2fdebb){return _0x2ae06c[_0xec73('0x11')](_0x1eb67e);}return _0x2ae06c[_0xec73('0x12')](_0x1eb67e)[_0xec73('0x13')]();};}function respondWithResult(_0x5f5594,_0xec7d82){_0xec7d82=_0xec7d82||0xc8;return function(_0x4b7c9f){if(_0x4b7c9f){return _0x5f5594[_0xec73('0x12')](_0xec7d82)['json'](_0x4b7c9f);}};}function respondWithFilteredResult(_0x10f003,_0x1e4869){return function(_0x2888b3){if(_0x2888b3){var _0x3bff0d=_0x2888b3[_0xec73('0x14')],_0x3690c3=_0x1e4869['offset'],_0x2a3296=_0x1e4869[_0xec73('0x15')]+_0x1e4869[_0xec73('0x16')],_0x35be28;if(_0x2a3296>=_0x3bff0d){_0x2a3296=_0x3bff0d;_0x35be28=0xc8;}else{_0x35be28=0xce;}_0x10f003[_0xec73('0x12')](_0x35be28);return _0x10f003[_0xec73('0x17')](_0xec73('0x18'),_0x3690c3+'-'+_0x2a3296+'/'+_0x3bff0d)[_0xec73('0x19')](_0x2888b3);}return null;};}function patchUpdates(_0x4d28c3){return function(_0x1bacbf){try{jsonpatch[_0xec73('0x1a')](_0x1bacbf,_0x4d28c3,!![]);}catch(_0x255d53){return BPromise['reject'](_0x255d53);}return _0x1bacbf[_0xec73('0x1b')]();};}function saveUpdates(_0x475dd1,_0x32899b){return function(_0x39cc94){if(_0x39cc94){return _0x39cc94[_0xec73('0x1c')](_0x475dd1)[_0xec73('0x1d')](function(_0x5d4c7c){return _0x5d4c7c;});}return null;};}function removeEntity(_0x519813,_0x3eeaff){return function(_0x270c62){if(_0x270c62){return _0x270c62[_0xec73('0x1e')]()[_0xec73('0x1d')](function(){_0x519813[_0xec73('0x12')](0xcc)['end']();});}};}function handleEntityNotFound(_0x323b07,_0x4bf131){return function(_0x3d58bc){if(!_0x3d58bc){_0x323b07['sendStatus'](0x194);}return _0x3d58bc;};}function handleError(_0x4df08e,_0x490ee2){_0x490ee2=_0x490ee2||0x1f4;return function(_0x12b865){logger[_0xec73('0x1f')](_0x12b865[_0xec73('0x20')]);if(_0x12b865[_0xec73('0x21')]){delete _0x12b865[_0xec73('0x21')];}_0x4df08e['status'](_0x490ee2)['send'](_0x12b865);};}exports[_0xec73('0x22')]=function(_0x34e706,_0x5a6e81){var _0x358d67={'raw':!![],'where':{'id':_0x34e706[_0xec73('0x23')]['id']}},_0x353b85={};_0x353b85[_0xec73('0x24')]=_[_0xec73('0x25')](db[_0xec73('0x26')][_0xec73('0x27')]);_0x353b85[_0xec73('0x28')]=_['keys'](_0x34e706['query']);_0x353b85[_0xec73('0x29')]=_[_0xec73('0x2a')](_0x353b85[_0xec73('0x24')],_0x353b85[_0xec73('0x28')]);_0x358d67['attributes']=_[_0xec73('0x2a')](_0x353b85[_0xec73('0x24')],qs[_0xec73('0x2b')](_0x34e706[_0xec73('0x28')][_0xec73('0x2b')]));_0x358d67[_0xec73('0x2c')]=_0x358d67['attributes'][_0xec73('0x2d')]?_0x358d67[_0xec73('0x2c')]:_0x353b85[_0xec73('0x24')];if(_0x34e706[_0xec73('0x28')][_0xec73('0x2e')]){_0x358d67[_0xec73('0x2f')]=[{'all':!![]}];}_0x358d67=_['merge']({},_0x358d67,_0x34e706[_0xec73('0x30')]);return db[_0xec73('0x26')][_0xec73('0x31')](_0x358d67)[_0xec73('0x1d')](handleEntityNotFound(_0x5a6e81,null))[_0xec73('0x1d')](respondWithResult(_0x5a6e81,null))[_0xec73('0x32')](handleError(_0x5a6e81,null));};exports[_0xec73('0x1c')]=function(_0x4c4d40,_0x31b88d){if(_0x4c4d40['body']['id']){delete _0x4c4d40[_0xec73('0x33')]['id'];}return db[_0xec73('0x26')][_0xec73('0x31')]({'where':{'id':_0x4c4d40[_0xec73('0x23')]['id']}})[_0xec73('0x1d')](handleEntityNotFound(_0x31b88d,null))[_0xec73('0x1d')](saveUpdates(_0x4c4d40[_0xec73('0x33')],null))[_0xec73('0x1d')](respondWithResult(_0x31b88d,null))[_0xec73('0x32')](handleError(_0x31b88d,null));};exports['destroy']=function(_0x527787,_0x4573ec){return db[_0xec73('0x26')][_0xec73('0x31')]({'where':{'id':_0x527787[_0xec73('0x23')]['id']}})[_0xec73('0x1d')](handleEntityNotFound(_0x4573ec,null))[_0xec73('0x1d')](removeEntity(_0x4573ec,null))[_0xec73('0x32')](handleError(_0x4573ec,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfae3=['util','../../config/logger','moment','bluebird','./mailApplication.attributes','exports','define','mail_applications','lodash'];(function(_0x59be1d,_0x16b630){var _0x3004b4=function(_0x5119d9){while(--_0x5119d9){_0x59be1d['push'](_0x59be1d['shift']());}};_0x3004b4(++_0x16b630);}(_0xfae3,0xa1));var _0x3fae=function(_0x5d76cc,_0x195736){_0x5d76cc=_0x5d76cc-0x0;var _0x4acce4=_0xfae3[_0x5d76cc];return _0x4acce4;};'use strict';var _=require(_0x3fae('0x0'));var util=require(_0x3fae('0x1'));var logger=require(_0x3fae('0x2'))('api');var moment=require(_0x3fae('0x3'));var BPromise=require(_0x3fae('0x4'));var rp=require('request-promise');var attributes=require(_0x3fae('0x5'));module[_0x3fae('0x6')]=function(_0x5be735,_0x7fa51d){return _0x5be735[_0x3fae('0x7')]('MailApplication',attributes,{'tableName':_0x3fae('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa65d=['MailApplication','mail_applications','util','../../config/logger','moment','bluebird','./mailApplication.attributes','exports'];(function(_0x598a09,_0xc1daee){var _0x142f34=function(_0x403e5f){while(--_0x403e5f){_0x598a09['push'](_0x598a09['shift']());}};_0x142f34(++_0xc1daee);}(_0xa65d,0xba));var _0xda65=function(_0x5d70e3,_0x1797d2){_0x5d70e3=_0x5d70e3-0x0;var _0x1edd97=_0xa65d[_0x5d70e3];return _0x1edd97;};'use strict';var _=require('lodash');var util=require(_0xda65('0x0'));var logger=require(_0xda65('0x1'))('api');var moment=require(_0xda65('0x2'));var BPromise=require(_0xda65('0x3'));var rp=require('request-promise');var attributes=require(_0xda65('0x4'));module[_0xda65('0x5')]=function(_0x557d8a,_0x1d5fbd){return _0x557d8a['define'](_0xda65('0x6'),attributes,{'tableName':_0xda65('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a2f=['body','options','raw','limit','UpdateMailApplication','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','then','info','request\x20sent','MailApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','MailApplication,\x20%s,\x20%s','message','catch','MailApplication','update'];(function(_0x41e25f,_0x125364){var _0x1bd5ba=function(_0x975945){while(--_0x975945){_0x41e25f['push'](_0x41e25f['shift']());}};_0x1bd5ba(++_0x125364);}(_0x8a2f,0xc2));var _0xf8a2=function(_0x357c85,_0x2cf5c6){_0x357c85=_0x357c85-0x0;var _0xb649bc=_0x8a2f[_0x357c85];return _0xb649bc;};'use strict';var _=require(_0xf8a2('0x0'));var util=require(_0xf8a2('0x1'));var moment=require(_0xf8a2('0x2'));var BPromise=require('bluebird');var rs=require(_0xf8a2('0x3'));var fs=require('fs');var db=require(_0xf8a2('0x4'))['db'];var utils=require(_0xf8a2('0x5'));var logger=require('../../config/logger')(_0xf8a2('0x6'));var config=require('../../config/environment');var jayson=require(_0xf8a2('0x7'));var client=jayson[_0xf8a2('0x8')][_0xf8a2('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2b76d7,_0x353394,_0x41264e){return new BPromise(function(_0x1c701d,_0x19e2d3){return client['request'](_0x2b76d7,_0x41264e)[_0xf8a2('0xa')](function(_0x40668c){logger[_0xf8a2('0xb')]('MailApplication,\x20%s,\x20%s',_0x353394,_0xf8a2('0xc'));logger['debug'](_0xf8a2('0xd'),_0x353394,_0xf8a2('0xc'),JSON[_0xf8a2('0xe')](_0x40668c));if(_0x40668c[_0xf8a2('0xf')]){if(_0x40668c[_0xf8a2('0xf')][_0xf8a2('0x10')]===0x1f4){logger[_0xf8a2('0xf')](_0xf8a2('0x11'),_0x353394,_0x40668c[_0xf8a2('0xf')][_0xf8a2('0x12')]);return _0x19e2d3(_0x40668c[_0xf8a2('0xf')][_0xf8a2('0x12')]);}logger[_0xf8a2('0xf')](_0xf8a2('0x11'),_0x353394,_0x40668c[_0xf8a2('0xf')][_0xf8a2('0x12')]);return _0x1c701d(_0x40668c['error'][_0xf8a2('0x12')]);}else{logger[_0xf8a2('0xb')](_0xf8a2('0x11'),_0x353394,_0xf8a2('0xc'));_0x1c701d(_0x40668c['result'][_0xf8a2('0x12')]);}})[_0xf8a2('0x13')](function(_0x2ca9ec){logger[_0xf8a2('0xf')]('MailApplication,\x20%s,\x20%s',_0x353394,_0x2ca9ec);_0x19e2d3(_0x2ca9ec);});});}exports['UpdateMailApplication']=function(_0x3dcc56){var _0x51cf5e=this;return new Promise(function(_0x35031e,_0x3746b3){return db[_0xf8a2('0x14')][_0xf8a2('0x15')](_0x3dcc56[_0xf8a2('0x16')],{'raw':_0x3dcc56['options']?_0x3dcc56[_0xf8a2('0x17')][_0xf8a2('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3dcc56[_0xf8a2('0x17')]?_0x3dcc56['options']['where']||null:null,'attributes':_0x3dcc56[_0xf8a2('0x17')]?_0x3dcc56['options']['attributes']||null:null,'limit':_0x3dcc56['options']?_0x3dcc56[_0xf8a2('0x17')][_0xf8a2('0x19')]||null:null})[_0xf8a2('0xa')](function(_0x18167e){logger[_0xf8a2('0xb')]('UpdateMailApplication',_0x3dcc56);logger['debug'](_0xf8a2('0x1a'),_0x3dcc56,JSON[_0xf8a2('0xe')](_0x18167e));_0x35031e(_0x18167e);})[_0xf8a2('0x13')](function(_0x1e4c2a){logger[_0xf8a2('0xf')](_0xf8a2('0x1a'),_0x1e4c2a[_0xf8a2('0x12')],_0x3dcc56);_0x3746b3(_0x51cf5e[_0xf8a2('0xf')](0x1f4,_0x1e4c2a[_0xf8a2('0x12')]));});});};
\ No newline at end of file
+var _0x9957=['bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','MailApplication,\x20%s,\x20%s','request\x20sent','debug','MailApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateMailApplication','update','options','raw','attributes','limit','lodash','util','moment'];(function(_0x57970d,_0x346d0a){var _0x5dd13a=function(_0x1b8572){while(--_0x1b8572){_0x57970d['push'](_0x57970d['shift']());}};_0x5dd13a(++_0x346d0a);}(_0x9957,0x93));var _0x7995=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x9957[_0xbca1b1];return _0x4e1686;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var moment=require(_0x7995('0x2'));var BPromise=require(_0x7995('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7995('0x4'));var db=require(_0x7995('0x5'))['db'];var utils=require(_0x7995('0x6'));var logger=require(_0x7995('0x7'))('rpc');var config=require(_0x7995('0x8'));var jayson=require(_0x7995('0x9'));var client=jayson[_0x7995('0xa')][_0x7995('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbda126,_0x326741,_0x4996ca){return new BPromise(function(_0x465276,_0x1cad37){return client['request'](_0xbda126,_0x4996ca)[_0x7995('0xc')](function(_0x3116fb){logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));logger[_0x7995('0x10')](_0x7995('0x11'),_0x326741,'request\x20sent',JSON[_0x7995('0x12')](_0x3116fb));if(_0x3116fb[_0x7995('0x13')]){if(_0x3116fb['error'][_0x7995('0x14')]===0x1f4){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x1cad37(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}logger['error']('MailApplication,\x20%s,\x20%s',_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x465276(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}else{logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));_0x465276(_0x3116fb[_0x7995('0x16')]['message']);}})[_0x7995('0x17')](function(_0x565d97){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x565d97);_0x1cad37(_0x565d97);});});}exports[_0x7995('0x18')]=function(_0x291317){var _0x1e1415=this;return new Promise(function(_0x37a7d4,_0x4faa60){return db['MailApplication'][_0x7995('0x19')](_0x291317['body'],{'raw':_0x291317['options']?_0x291317[_0x7995('0x1a')][_0x7995('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x291317['options']?_0x291317[_0x7995('0x1a')]['where']||null:null,'attributes':_0x291317['options']?_0x291317[_0x7995('0x1a')][_0x7995('0x1c')]||null:null,'limit':_0x291317[_0x7995('0x1a')]?_0x291317[_0x7995('0x1a')][_0x7995('0x1d')]||null:null})[_0x7995('0xc')](function(_0x5d40ae){logger[_0x7995('0xd')](_0x7995('0x18'),_0x291317);logger[_0x7995('0x10')](_0x7995('0x18'),_0x291317,JSON[_0x7995('0x12')](_0x5d40ae));_0x37a7d4(_0x5d40ae);})[_0x7995('0x17')](function(_0x475351){logger[_0x7995('0x13')]('UpdateMailApplication',_0x475351[_0x7995('0x15')],_0x291317);_0x4faa60(_0x1e1415[_0x7995('0x13')](0x1f4,_0x475351[_0x7995('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b4a=['create','/:id/messages','addMessage','/:id/tags','tracked','mail','mailinteraction:addtags','addTags','put','update','delete','mailinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../config/environment','./mailInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','getMessages','/:id/download','download','post'];(function(_0x12d32b,_0x5083e7){var _0xa719b3=function(_0x30af2f){while(--_0x30af2f){_0x12d32b['push'](_0x12d32b['shift']());}};_0xa719b3(++_0x5083e7);}(_0x1b4a,0x117));var _0xa1b4=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x1b4a[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0xa1b4('0x0'));var util=require(_0xa1b4('0x1'));var path=require(_0xa1b4('0x2'));var timeout=require(_0xa1b4('0x3'));var express=require(_0xa1b4('0x4'));var router=express['Router']();var auth=require(_0xa1b4('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xa1b4('0x6'));var controller=require(_0xa1b4('0x7'));router[_0xa1b4('0x8')]('/',auth[_0xa1b4('0x9')](),controller[_0xa1b4('0xa')]);router[_0xa1b4('0x8')](_0xa1b4('0xb'),auth['isAuthenticated'](),controller[_0xa1b4('0xc')]);router[_0xa1b4('0x8')](_0xa1b4('0xd'),auth[_0xa1b4('0x9')](),controller['show']);router[_0xa1b4('0x8')]('/:id/messages',auth['isAuthenticated'](),controller[_0xa1b4('0xe')]);router['get'](_0xa1b4('0xf'),auth['isAuthenticated'](),controller[_0xa1b4('0x10')]);router[_0xa1b4('0x11')]('/',auth[_0xa1b4('0x9')](),controller[_0xa1b4('0x12')]);router[_0xa1b4('0x11')](_0xa1b4('0x13'),auth[_0xa1b4('0x9')](),controller[_0xa1b4('0x14')]);router[_0xa1b4('0x11')](_0xa1b4('0x15'),auth[_0xa1b4('0x9')](),interaction[_0xa1b4('0x16')](_0xa1b4('0x17'),_0xa1b4('0x18')),controller[_0xa1b4('0x19')]);router[_0xa1b4('0x1a')](_0xa1b4('0xd'),auth[_0xa1b4('0x9')](),interaction[_0xa1b4('0x16')](_0xa1b4('0x17'),'mailinteraction:update'),controller[_0xa1b4('0x1b')]);router[_0xa1b4('0x1c')]('/:id',auth['isAuthenticated'](),interaction[_0xa1b4('0x16')]('mail',_0xa1b4('0x1d')),controller[_0xa1b4('0x1e')]);router[_0xa1b4('0x1c')]('/:id/tags',auth['isAuthenticated'](),controller[_0xa1b4('0x1f')]);module[_0xa1b4('0x20')]=router;
\ No newline at end of file
+var _0x56c6=['addTags','put','tracked','update','delete','mailinteraction:destroy','removeTags','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailInteraction.controller','isAuthenticated','get','describe','/:id','show','/:id/messages','getMessages','/:id/download','download','post','create','/:id/tags','mail'];(function(_0x1d6dc3,_0x44f79b){var _0x35880a=function(_0x2cf40a){while(--_0x2cf40a){_0x1d6dc3['push'](_0x1d6dc3['shift']());}};_0x35880a(++_0x44f79b);}(_0x56c6,0x116));var _0x656c=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x56c6[_0xfae23b];return _0x200640;};'use strict';var multer=require(_0x656c('0x0'));var util=require(_0x656c('0x1'));var path=require(_0x656c('0x2'));var timeout=require(_0x656c('0x3'));var express=require(_0x656c('0x4'));var router=express['Router']();var auth=require(_0x656c('0x5'));var interaction=require(_0x656c('0x6'));var config=require(_0x656c('0x7'));var controller=require(_0x656c('0x8'));router['get']('/',auth[_0x656c('0x9')](),controller['index']);router[_0x656c('0xa')]('/describe',auth['isAuthenticated'](),controller[_0x656c('0xb')]);router['get'](_0x656c('0xc'),auth[_0x656c('0x9')](),controller[_0x656c('0xd')]);router[_0x656c('0xa')](_0x656c('0xe'),auth['isAuthenticated'](),controller[_0x656c('0xf')]);router[_0x656c('0xa')](_0x656c('0x10'),auth[_0x656c('0x9')](),controller[_0x656c('0x11')]);router[_0x656c('0x12')]('/',auth['isAuthenticated'](),controller[_0x656c('0x13')]);router[_0x656c('0x12')]('/:id/messages',auth[_0x656c('0x9')](),controller['addMessage']);router[_0x656c('0x12')](_0x656c('0x14'),auth[_0x656c('0x9')](),interaction['tracked'](_0x656c('0x15'),'mailinteraction:addtags'),controller[_0x656c('0x16')]);router[_0x656c('0x17')](_0x656c('0xc'),auth[_0x656c('0x9')](),interaction[_0x656c('0x18')](_0x656c('0x15'),'mailinteraction:update'),controller[_0x656c('0x19')]);router[_0x656c('0x1a')]('/:id',auth[_0x656c('0x9')](),interaction['tracked'](_0x656c('0x15'),_0x656c('0x1b')),controller['destroy']);router[_0x656c('0x1a')](_0x656c('0x14'),auth['isAuthenticated'](),controller[_0x656c('0x1c')]);module[_0x656c('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f04=['sequelize','html-to-text','iconv','exports','BOOLEAN','STRING','TEXT','long','\x20CHARSET\x20utf8mb4\x20COLLATE\x20utf8mb4_unicode_ci','ENUM','out','DATE','getDataValue','fromString','lastMsgBody','slice'];(function(_0x518ce7,_0x12ad83){var _0x4288ff=function(_0x42384f){while(--_0x42384f){_0x518ce7['push'](_0x518ce7['shift']());}};_0x4288ff(++_0x12ad83);}(_0x7f04,0x130));var _0x47f0=function(_0x5e2f7b,_0x226498){_0x5e2f7b=_0x5e2f7b-0x0;var _0x3c386e=_0x7f04[_0x5e2f7b];return _0x3c386e;};'use strict';var Sequelize=require(_0x47f0('0x0'));var htmlToText=require(_0x47f0('0x1'));var iconv=require(_0x47f0('0x2'));module[_0x47f0('0x3')]={'closed':{'type':Sequelize[_0x47f0('0x4')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x47f0('0x5')]},'inReplyTo':{'type':Sequelize[_0x47f0('0x5')](0xbe)},'to':{'type':Sequelize[_0x47f0('0x5')]},'cc':{'type':Sequelize[_0x47f0('0x6')](_0x47f0('0x7'))},'subject':{'type':Sequelize['TEXT']('')+_0x47f0('0x8')},'attach':{'type':Sequelize[_0x47f0('0x4')],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0x47f0('0x5')](0x3c)},'substatusAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x47f0('0x9')]('in',_0x47f0('0xa')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x47f0('0xb')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgBody':{'type':Sequelize[_0x47f0('0x6')](_0x47f0('0x7'))+_0x47f0('0x8'),'get':function(){try{return this[_0x47f0('0xc')]('lastMsgBody')?htmlToText[_0x47f0('0xd')](this[_0x47f0('0xc')](_0x47f0('0xe')),{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'ignoreImage':!![]})['split']('\x0a')[_0x47f0('0xf')](0x0,0x6)['join']('\x0a'):null;}catch(_0x459e74){return null;}}}};
\ No newline at end of file
+var _0xe5ca=['slice','join','sequelize','html-to-text','iconv','BOOLEAN','DATE','STRING','TEXT','long','\x20CHARSET\x20utf8mb4\x20COLLATE\x20utf8mb4_unicode_ci','ENUM','out','lastMsgBody','fromString','getDataValue'];(function(_0x1018d3,_0x144f84){var _0x54670a=function(_0x4f2306){while(--_0x4f2306){_0x1018d3['push'](_0x1018d3['shift']());}};_0x54670a(++_0x144f84);}(_0xe5ca,0x142));var _0xae5c=function(_0x540133,_0x41783f){_0x540133=_0x540133-0x0;var _0x26b6e9=_0xe5ca[_0x540133];return _0x26b6e9;};'use strict';var Sequelize=require(_0xae5c('0x0'));var htmlToText=require(_0xae5c('0x1'));var iconv=require(_0xae5c('0x2'));module['exports']={'closed':{'type':Sequelize[_0xae5c('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xae5c('0x4')]},'disposition':{'type':Sequelize[_0xae5c('0x5')]},'note':{'type':Sequelize[_0xae5c('0x5')]},'inReplyTo':{'type':Sequelize[_0xae5c('0x5')](0xbe)},'to':{'type':Sequelize[_0xae5c('0x5')]},'cc':{'type':Sequelize[_0xae5c('0x6')](_0xae5c('0x7'))},'subject':{'type':Sequelize[_0xae5c('0x6')]('')+_0xae5c('0x8')},'attach':{'type':Sequelize[_0xae5c('0x3')],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0xae5c('0x5')](0x3c)},'substatusAt':{'type':Sequelize[_0xae5c('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xae5c('0x9')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xae5c('0x4')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xae5c('0xa')),'defaultValue':'in','allowNull':![]},'lastMsgBody':{'type':Sequelize['TEXT']('long')+'\x20CHARSET\x20utf8mb4\x20COLLATE\x20utf8mb4_unicode_ci','get':function(){try{return this['getDataValue'](_0xae5c('0xb'))?htmlToText[_0xae5c('0xc')](this[_0xae5c('0xd')](_0xae5c('0xb')),{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'ignoreImage':!![]})['split']('\x0a')[_0xae5c('0xe')](0x0,0x6)[_0xae5c('0xf')]('\x0a'):null;}catch(_0x7c4864){return null;}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['options','Tags','tag','distinct','read','include','push','Messages','direction','createdAt','includeAll','User','fullname','Contact','Owner','internal','Account','key','MailMessage','Tag','color','ThroughTags','findAll','rows','catch','params','find','create','body','describe','addMessage','ids','omit','findOne','keys','$gte','split','format','spread','emit','removeTags','download','unix','toString','join','server','files','attachments','tmp','interaction-%s.zip','from','subject','Attachment','Attachments','mkdirSync','basename','readFileSync','build','writeFileSync','log','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','status','json','count','offset','limit','set','Content-Range','apply','reject','update','then','end','sendStatus','error','stack','name','send','index','MailInteraction','rawAttributes','query','dateStart','dateEnd','filters','model','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','add','day','filter','map','merge'];(function(_0x569d1f,_0x3a109d){var _0x397247=function(_0x33cca9){while(--_0x33cca9){_0x569d1f['push'](_0x569d1f['shift']());}};_0x397247(++_0x3a109d);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x3071('0x0'));var zipdir=require(_0x3071('0x1'));var jsonpatch=require(_0x3071('0x2'));var rp=require(_0x3071('0x3'));var moment=require(_0x3071('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3071('0x5'));var util=require(_0x3071('0x6'));var path=require(_0x3071('0x7'));var sox=require(_0x3071('0x8'));var csv=require(_0x3071('0x9'));var ejs=require(_0x3071('0xa'));var fs=require('fs');var _=require(_0x3071('0xb'));var squel=require(_0x3071('0xc'));var crypto=require(_0x3071('0xd'));var jsforce=require(_0x3071('0xe'));var deskjs=require(_0x3071('0xf'));var toCsv=require(_0x3071('0x9'));var querystring=require(_0x3071('0x10'));var Papa=require('papaparse');var qs=require(_0x3071('0x11'));var logger=require(_0x3071('0x12'))(_0x3071('0x13'));var utils=require(_0x3071('0x14'));var config=require(_0x3071('0x15'));var db=require('../../mysqldb')['db'];config[_0x3071('0x16')]=_[_0x3071('0x17')](config[_0x3071('0x16')],{'host':_0x3071('0x18'),'port':0x18eb});var socket=require(_0x3071('0x19'))(config['redis']);require('./mailInteraction.socket')[_0x3071('0x1a')](socket);function respondWithStatusCode(_0x5dc13b,_0x31c220){_0x31c220=_0x31c220||0xcc;return function(_0x44fbae){if(_0x44fbae){return _0x5dc13b['sendStatus'](_0x31c220);}return _0x5dc13b[_0x3071('0x1b')](_0x31c220)['end']();};}function respondWithResult(_0x2fc15d,_0x45c93b){_0x45c93b=_0x45c93b||0xc8;return function(_0x1271d0){if(_0x1271d0){return _0x2fc15d[_0x3071('0x1b')](_0x45c93b)[_0x3071('0x1c')](_0x1271d0);}};}function respondWithFilteredResult(_0x2a6a4b,_0x157a47){return function(_0x11bdc9){if(_0x11bdc9){var _0x21aad3=_0x11bdc9[_0x3071('0x1d')],_0x344ea6=_0x157a47[_0x3071('0x1e')],_0x5f3c22=_0x157a47[_0x3071('0x1e')]+_0x157a47[_0x3071('0x1f')],_0x224996;if(_0x5f3c22>=_0x21aad3){_0x5f3c22=_0x21aad3;_0x224996=0xc8;}else{_0x224996=0xce;}_0x2a6a4b[_0x3071('0x1b')](_0x224996);return _0x2a6a4b[_0x3071('0x20')](_0x3071('0x21'),_0x344ea6+'-'+_0x5f3c22+'/'+_0x21aad3)['json'](_0x11bdc9);}return null;};}function patchUpdates(_0x359e66){return function(_0x2bfa33){try{jsonpatch[_0x3071('0x22')](_0x2bfa33,_0x359e66,!![]);}catch(_0x56c267){return BPromise[_0x3071('0x23')](_0x56c267);}return _0x2bfa33['save']();};}function saveUpdates(_0x833074,_0x43128c){return function(_0x3762d8){if(_0x3762d8){return _0x3762d8[_0x3071('0x24')](_0x833074)[_0x3071('0x25')](function(_0x34c50e){return _0x34c50e;});}return null;};}function removeEntity(_0x3c5cef,_0x211b4f){return function(_0x542646){if(_0x542646){return _0x542646['destroy']()[_0x3071('0x25')](function(){_0x3c5cef[_0x3071('0x1b')](0xcc)[_0x3071('0x26')]();});}};}function handleEntityNotFound(_0x13df9f,_0x2793ef){return function(_0x44b45f){if(!_0x44b45f){_0x13df9f[_0x3071('0x27')](0x194);}return _0x44b45f;};}function handleError(_0x1fe727,_0x1de5fb){_0x1de5fb=_0x1de5fb||0x1f4;return function(_0x4c7130){logger[_0x3071('0x28')](_0x4c7130[_0x3071('0x29')]);if(_0x4c7130[_0x3071('0x2a')]){delete _0x4c7130['name'];}_0x1fe727[_0x3071('0x1b')](_0x1de5fb)[_0x3071('0x2b')](_0x4c7130);};}exports[_0x3071('0x2c')]=function(_0x950fde,_0x3fa3b8){var _0x25b96b={},_0x177b5f={},_0x3921a1={'count':0x0,'rows':[]};var _0x32f1b4=db[_0x3071('0x2d')][_0x3071('0x2e')];_0x177b5f['model']=_['keys'](_0x32f1b4);var _0x9e26d1={'dateStart':_0x950fde[_0x3071('0x2f')][_0x3071('0x30')],'dateEnd':_0x950fde[_0x3071('0x2f')][_0x3071('0x31')]};delete _0x950fde[_0x3071('0x2f')][_0x3071('0x30')];delete _0x950fde[_0x3071('0x2f')]['dateEnd'];_0x177b5f['query']=_['keys'](_0x950fde[_0x3071('0x2f')]);_0x177b5f[_0x3071('0x32')]=_['intersection'](_0x177b5f[_0x3071('0x33')],_0x177b5f[_0x3071('0x2f')]);_0x25b96b[_0x3071('0x34')]=_[_0x3071('0x35')](_0x177b5f['model'],qs[_0x3071('0x36')](_0x950fde[_0x3071('0x2f')][_0x3071('0x36')]));_0x25b96b[_0x3071('0x34')]=_0x25b96b[_0x3071('0x34')][_0x3071('0x37')]?_0x25b96b[_0x3071('0x34')]:_0x177b5f[_0x3071('0x33')];if(!_0x950fde['query'][_0x3071('0x38')]('nolimit')){_0x25b96b['limit']=qs[_0x3071('0x1f')](_0x950fde[_0x3071('0x2f')]['limit']);_0x25b96b[_0x3071('0x1e')]=qs[_0x3071('0x1e')](_0x950fde[_0x3071('0x2f')][_0x3071('0x1e')]);}_0x25b96b[_0x3071('0x39')]=qs[_0x3071('0x3a')](_0x950fde['query'][_0x3071('0x3a')]);_0x25b96b[_0x3071('0x3b')]=qs['filters'](_[_0x3071('0x3c')](_0x950fde['query'],_0x177b5f[_0x3071('0x32')]));if(_0x9e26d1[_0x3071('0x30')]){if(_0x9e26d1['dateEnd']){_0x9e26d1['dateEnd']=moment(_0x9e26d1[_0x3071('0x31')])[_0x3071('0x3d')](0x1,_0x3071('0x3e'));}else{_0x9e26d1['dateEnd']=moment(_0x9e26d1[_0x3071('0x30')])['add'](0x1,_0x3071('0x3e'));}_['merge'](_0x25b96b[_0x3071('0x3b')],{'createdAt':{'$gte':_0x9e26d1[_0x3071('0x30')],'$lte':_0x9e26d1[_0x3071('0x31')]}});}if(_0x950fde[_0x3071('0x2f')][_0x3071('0x3f')]){_0x25b96b['where']=_['merge'](_0x25b96b[_0x3071('0x3b')],{'$or':_[_0x3071('0x40')](_0x25b96b[_0x3071('0x34')],function(_0x1f69a6){var _0x525389={};_0x525389[_0x1f69a6]={'$like':'%'+_0x950fde[_0x3071('0x2f')][_0x3071('0x3f')]+'%'};return _0x525389;})});}_0x25b96b=_[_0x3071('0x41')]({},_0x25b96b,_0x950fde[_0x3071('0x42')]);var _0x277104={'where':_0x25b96b[_0x3071('0x3b')]};_0x277104['include']=[];if(_0x950fde[_0x3071('0x2f')]['tag']){_0x277104['include']['push']({'model':db['Tag'],'as':_0x3071('0x43'),'attributes':['id'],'where':{'id':_0x950fde[_0x3071('0x2f')][_0x3071('0x44')]},'required':!![]});_0x277104[_0x3071('0x45')]=!![];}if(_0x950fde[_0x3071('0x2f')][_0x3071('0x46')]){_0x277104[_0x3071('0x47')][_0x3071('0x48')]({'model':db['MailMessage'],'as':_0x3071('0x49'),'attributes':['id',_0x3071('0x4a'),_0x3071('0x4b'),_0x3071('0x46')],'where':{'direction':'in','read':_0x950fde[_0x3071('0x2f')]['read']||![]},'required':!![]});_0x277104['distinct']=!![];}return db[_0x3071('0x2d')][_0x3071('0x1d')](_0x277104)[_0x3071('0x25')](function(_0x5c5865){_0x3921a1[_0x3071('0x1d')]=_0x5c5865;if(_0x950fde['query'][_0x3071('0x4c')]){_0x25b96b['include']=[{'model':db[_0x3071('0x4d')],'as':'Users','required':![],'attributes':['id','name',_0x3071('0x4e')]},{'model':db['CmContact'],'as':_0x3071('0x4f'),'required':![]},{'model':db['User'],'as':_0x3071('0x50'),'attributes':[_0x3071('0x2a'),_0x3071('0x4e'),_0x3071('0x51')],'required':![]},{'model':db['MailAccount'],'as':_0x3071('0x52'),'attributes':['name',_0x3071('0x53'),'email'],'required':![]},{'model':db[_0x3071('0x54')],'as':_0x3071('0x49'),'attributes':['id','direction',_0x3071('0x4b'),_0x3071('0x46')],'where':{'direction':'in','read':_0x950fde[_0x3071('0x2f')][_0x3071('0x46')]||![]},'required':_0x950fde[_0x3071('0x2f')][_0x3071('0x46')]||![]},{'model':db[_0x3071('0x55')],'as':'Tags','attributes':['id',_0x3071('0x2a'),_0x3071('0x56')],'required':_0x950fde[_0x3071('0x2f')][_0x3071('0x44')]?!![]:![]},{'model':db['Tag'],'as':_0x3071('0x57'),'attributes':['id',_0x3071('0x2a'),_0x3071('0x56')],'through':_0x950fde[_0x3071('0x2f')][_0x3071('0x44')]?{'attributes':[],'where':{'TagId':_0x950fde[_0x3071('0x2f')][_0x3071('0x44')]||undefined}}:{},'required':_0x950fde[_0x3071('0x2f')][_0x3071('0x44')]?!![]:![]}];}return db[_0x3071('0x2d')][_0x3071('0x58')](_0x25b96b);})[_0x3071('0x25')](function(_0x24977b){_0x3921a1[_0x3071('0x59')]=_0x24977b;return _0x3921a1;})[_0x3071('0x25')](respondWithFilteredResult(_0x3fa3b8,_0x25b96b))[_0x3071('0x5a')](handleError(_0x3fa3b8,null));};exports['show']=function(_0x47a438,_0x12536d){var _0x580c04={'raw':![],'where':{'id':_0x47a438[_0x3071('0x5b')]['id']}},_0x403761={};_0x403761[_0x3071('0x33')]=_['keys'](db[_0x3071('0x2d')][_0x3071('0x2e')]);_0x403761['query']=_['keys'](_0x47a438[_0x3071('0x2f')]);_0x403761[_0x3071('0x32')]=_[_0x3071('0x35')](_0x403761[_0x3071('0x33')],_0x403761['query']);_0x580c04[_0x3071('0x34')]=_[_0x3071('0x35')](_0x403761[_0x3071('0x33')],qs[_0x3071('0x36')](_0x47a438[_0x3071('0x2f')]['fields']));_0x580c04[_0x3071('0x34')]=_0x580c04[_0x3071('0x34')][_0x3071('0x37')]?_0x580c04[_0x3071('0x34')]:_0x403761[_0x3071('0x33')];if(_0x47a438[_0x3071('0x2f')][_0x3071('0x4c')]){_0x580c04['include']=[{'all':!![]}];}_0x580c04=_['merge']({},_0x580c04,_0x47a438[_0x3071('0x42')]);return db['MailInteraction'][_0x3071('0x5c')](_0x580c04)[_0x3071('0x25')](handleEntityNotFound(_0x12536d,null))['then'](respondWithResult(_0x12536d,null))[_0x3071('0x5a')](handleError(_0x12536d,null));};exports[_0x3071('0x5d')]=function(_0x4d3886,_0x108b14){return db[_0x3071('0x2d')][_0x3071('0x5d')](_0x4d3886[_0x3071('0x5e')],{})[_0x3071('0x25')](respondWithResult(_0x108b14,0xc9))['catch'](handleError(_0x108b14,null));};exports[_0x3071('0x24')]=function(_0x313a54,_0x19252f){if(_0x313a54['body']['id']){delete _0x313a54[_0x3071('0x5e')]['id'];}return db[_0x3071('0x2d')][_0x3071('0x5c')]({'where':{'id':_0x313a54[_0x3071('0x5b')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x19252f,null))[_0x3071('0x25')](saveUpdates(_0x313a54[_0x3071('0x5e')],null))[_0x3071('0x25')](respondWithResult(_0x19252f,null))[_0x3071('0x5a')](handleError(_0x19252f,null));};exports['destroy']=function(_0x5d1316,_0x29a58e){return db[_0x3071('0x2d')][_0x3071('0x5c')]({'where':{'id':_0x5d1316[_0x3071('0x5b')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x29a58e,null))[_0x3071('0x25')](removeEntity(_0x29a58e,null))[_0x3071('0x5a')](handleError(_0x29a58e,null));};exports[_0x3071('0x5f')]=function(_0x302680,_0x195d03){return db['MailInteraction'][_0x3071('0x5f')]()[_0x3071('0x25')](respondWithResult(_0x195d03,null))[_0x3071('0x5a')](handleError(_0x195d03,null));};exports[_0x3071('0x60')]=function(_0x429a03,_0x158dda,_0x30366f){return db[_0x3071('0x54')]['find']({'where':{'id':_0x429a03[_0x3071('0x5b')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x158dda,null))['then'](function(_0x5d362f){if(_0x5d362f){return _0x5d362f[_0x3071('0x60')](_0x429a03[_0x3071('0x5e')][_0x3071('0x61')],_[_0x3071('0x62')](_0x429a03['body'],['ids','id'])||{});}})[_0x3071('0x25')](respondWithResult(_0x158dda,null))['catch'](handleError(_0x158dda,null));};exports['getMessages']=function(_0x5113fc,_0x58da43,_0xec6f46){var _0x1da52c={'raw':![],'where':{}};var _0xd928e8={};var _0x567d19={'count':0x0,'rows':[]};return db[_0x3071('0x2d')][_0x3071('0x63')]({'where':{'id':_0x5113fc[_0x3071('0x5b')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x58da43,null))['then'](function(_0x2103a4){if(_0x2103a4){_0xd928e8[_0x3071('0x33')]=_['keys'](db[_0x3071('0x54')][_0x3071('0x2e')]);_0xd928e8[_0x3071('0x2f')]=_[_0x3071('0x64')](_0x5113fc[_0x3071('0x2f')]);_0xd928e8[_0x3071('0x32')]=_[_0x3071('0x35')](_0xd928e8['model'],_0xd928e8['query']);_0x1da52c[_0x3071('0x34')]=_[_0x3071('0x35')](_0xd928e8[_0x3071('0x33')],qs['fields'](_0x5113fc['query'][_0x3071('0x36')]));_0x1da52c[_0x3071('0x34')]=_0x1da52c[_0x3071('0x34')][_0x3071('0x37')]?_0x1da52c[_0x3071('0x34')]:_0xd928e8[_0x3071('0x33')];if(!_0x5113fc[_0x3071('0x2f')][_0x3071('0x38')]('nolimit')){_0x1da52c[_0x3071('0x1f')]=qs['limit'](_0x5113fc[_0x3071('0x2f')][_0x3071('0x1f')]);_0x1da52c[_0x3071('0x1e')]=qs[_0x3071('0x1e')](_0x5113fc[_0x3071('0x2f')][_0x3071('0x1e')]);}_0x1da52c[_0x3071('0x39')]=qs[_0x3071('0x3a')](_0x5113fc['query'][_0x3071('0x3a')]);_0x1da52c[_0x3071('0x3b')]=qs[_0x3071('0x32')](_['pick'](_0x5113fc[_0x3071('0x2f')],_0xd928e8[_0x3071('0x32')]));_0x1da52c[_0x3071('0x3b')]['MailInteractionId']=_0x2103a4['id'];if(_0x5113fc['query'][_0x3071('0x3f')]){_0x1da52c['where']=_[_0x3071('0x41')](_0x1da52c[_0x3071('0x3b')],{'$or':_[_0x3071('0x40')](_0x1da52c[_0x3071('0x34')],function(_0x311939){var _0x437098={};_0x437098[_0x311939]={'$like':'%'+_0x5113fc[_0x3071('0x2f')]['filter']+'%'};return _0x437098;})});}if(_0x5113fc[_0x3071('0x2f')][_0x3071('0x65')]){var _0x42d310=_0x5113fc[_0x3071('0x2f')][_0x3071('0x65')][_0x3071('0x66')](',');var _0x435dcb={};_0x435dcb[_0x42d310[0x0]]={'$gte':moment(_0x42d310[0x1])[_0x3071('0x67')]('YYYY-MM-DD\x20HH:mm:ss')};_0x1da52c[_0x3071('0x3b')]=_['merge'](_0x1da52c[_0x3071('0x3b')],_0x435dcb);}_0x1da52c=_[_0x3071('0x41')]({},_0x1da52c,_0x5113fc[_0x3071('0x42')]);return db[_0x3071('0x54')][_0x3071('0x1d')]({'where':_0x1da52c[_0x3071('0x3b')]})[_0x3071('0x25')](function(_0x32b961){_0x567d19[_0x3071('0x1d')]=_0x32b961;if(_0x5113fc[_0x3071('0x2f')]['includeAll']){_0x1da52c[_0x3071('0x47')]=[{'all':!![]}];}return db[_0x3071('0x54')]['findAll'](_0x1da52c);})[_0x3071('0x25')](function(_0x3b7c95){_0x567d19[_0x3071('0x59')]=_0x3b7c95;return _0x567d19;});}})[_0x3071('0x25')](respondWithFilteredResult(_0x58da43,_0x1da52c))[_0x3071('0x5a')](handleError(_0x58da43,null));};exports['addTags']=function(_0x5a7d28,_0x3d2860,_0x4da539){return db[_0x3071('0x2d')][_0x3071('0x5c')]({'where':{'id':_0x5a7d28[_0x3071('0x5b')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x3d2860,null))[_0x3071('0x25')](function(_0x2f31b7){if(_0x2f31b7){return _0x2f31b7['setTags'](_0x5a7d28[_0x3071('0x5e')][_0x3071('0x61')],_[_0x3071('0x62')](_0x5a7d28[_0x3071('0x5e')],['ids','id'])||{})[_0x3071('0x68')](function(){return db[_0x3071('0x55')]['findAll']({'attributes':['id',_0x3071('0x2a'),_0x3071('0x56')],'where':{'id':_0x5a7d28[_0x3071('0x5e')][_0x3071('0x61')]}});})[_0x3071('0x25')](function(_0x547ba8){socket[_0x3071('0x69')]('mailInteractionTags:save',{'id':Number(_0x5a7d28[_0x3071('0x5b')]['id']),'tags':_0x547ba8||[]});return{'id':Number(_0x5a7d28[_0x3071('0x5b')]['id']),'tags':_0x547ba8||[]};});}})[_0x3071('0x25')](respondWithResult(_0x3d2860,null))[_0x3071('0x5a')](handleError(_0x3d2860,null));};exports[_0x3071('0x6a')]=function(_0x247cda,_0x11d654,_0x32b2e2){var _0x4ed248;return db[_0x3071('0x2d')][_0x3071('0x5c')]({'where':{'id':_0x247cda[_0x3071('0x5b')]['id']}})['then'](handleEntityNotFound(_0x11d654,null))[_0x3071('0x25')](function(_0x5d22b0){if(_0x5d22b0){return _0x5d22b0[_0x3071('0x6a')](_0x247cda[_0x3071('0x2f')][_0x3071('0x61')]);}})['then'](respondWithStatusCode(_0x11d654,null))[_0x3071('0x5a')](handleError(_0x11d654,null));};exports[_0x3071('0x6b')]=function(_0x3cbb6e,_0x9cc58c){var _0x23c242=moment()[_0x3071('0x6c')]()[_0x3071('0x6d')]();var _0x2c7749=path[_0x3071('0x6e')](config['root'],_0x3071('0x6f'),_0x3071('0x70'),_0x3071('0x71'));var _0x5b2830=path['join'](config['root'],'server','files',_0x3071('0x72'));var _0x44b4c9=path['join'](_0x5b2830,_0x23c242);var _0x7c0e65=util[_0x3071('0x67')](_0x3071('0x73'),_0x23c242);var _0x4826be=path['join'](_0x5b2830,_0x7c0e65);var _0x24277a=![];return db[_0x3071('0x2d')][_0x3071('0x5c')]({'where':{'id':_0x3cbb6e[_0x3071('0x5b')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x9cc58c,null))[_0x3071('0x25')](function(_0x327732){if(_0x327732){return _0x327732['getMessages']({'attributes':['id','body',_0x3071('0x74'),'to','cc',_0x3071('0x75'),_0x3071('0x4b')],'where':{'secret':![]},'include':_0x3cbb6e[_0x3071('0x2f')]['attachments']?[{'model':db[_0x3071('0x76')],'as':_0x3071('0x77')}]:undefined,'order':qs[_0x3071('0x3a')]('id')});}return[];})[_0x3071('0x25')](function(_0x2305b4){_0x24277a=_0x2305b4[_0x3071('0x37')];if(_0x2305b4[_0x3071('0x37')]){fs[_0x3071('0x78')](_0x44b4c9);return BPromise['each'](_0x2305b4,function(_0x368a8a,_0x12bb45){var _0x118268=_0x368a8a;var _0x9dba3={'from':_0x118268[_0x3071('0x74')],'to':_0x118268['to'],'subject':_0x118268['subject'],'html':_0x118268[_0x3071('0x5e')],'attachments':[]};return new BPromise(function(_0x50c75b,_0x546a69){if(_0x368a8a[_0x3071('0x77')]){for(var _0x3108ea=0x0;_0x3108ea<_0x368a8a[_0x3071('0x77')]['length'];_0x3108ea++){var _0x262bca=_0x368a8a[_0x3071('0x77')][_0x3108ea];var _0x2753aa=path[_0x3071('0x6e')](_0x2c7749,_0x262bca[_0x3071('0x79')]);if(fs['existsSync'](_0x2753aa)){_0x9dba3['attachments'][_0x3071('0x48')]({'name':_0x262bca[_0x3071('0x2a')],'contentType':_0x262bca['type'],'data':fs[_0x3071('0x7a')](_0x2753aa)});}}}emlformat[_0x3071('0x7b')](_0x9dba3,function(_0x22e484,_0x2d559a){if(_0x22e484)return _0x546a69(_0x22e484);fs[_0x3071('0x7c')](path['join'](_0x44b4c9,util[_0x3071('0x67')]('message%d.eml',_0x12bb45)),_0x2d559a);return _0x50c75b(_0x2d559a);});});});}})[_0x3071('0x25')](function(){if(_0x24277a){return new BPromise(function(_0x2ffca3,_0x532943){zipdir(_0x44b4c9,{'saveTo':_0x4826be},function(_0x279525,_0x5d8b0d){if(_0x279525)return _0x532943(_0x279525);return _0x2ffca3(_0x5d8b0d);});});}})[_0x3071('0x25')](function(){if(_0x24277a){return new BPromise(function(_0x23d60a,_0x408ace){rimraf(_0x44b4c9,function(_0x2f36b1){if(_0x2f36b1)_0x408ace(_0x2f36b1);return _0x23d60a();});});}})['then'](function(){if(_0x24277a){return _0x9cc58c[_0x3071('0x6b')](_0x4826be,_0x7c0e65,function(_0x574723){if(_0x574723){console[_0x3071('0x7d')]('err',_0x574723);}else{fs[_0x3071('0x7e')](_0x4826be);}});}else{return _0x9cc58c[_0x3071('0x27')](0xc8);}})['catch'](handleError(_0x9cc58c,null));};
\ No newline at end of file
+var _0x707d=['each','from','Attachments','basename','writeFileSync','message%d.eml','log','err','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','end','status','count','offset','Content-Range','json','reject','save','update','destroy','then','error','stack','name','send','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','nolimit','limit','sort','where','pick','add','day','merge','filter','options','include','tag','push','Tag','Tags','read','Messages','direction','createdAt','MailInteraction','includeAll','User','Users','fullname','CmContact','Contact','Owner','MailAccount','key','MailMessage','color','ThroughTags','catch','params','length','find','create','body','describe','ids','hasOwnProperty','order','MailInteractionId','map','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','omit','spread','emit','removeTags','download','unix','toString','join','server','files','attachments','root','tmp','interaction-%s.zip','getMessages','subject','Attachment','mkdirSync'];(function(_0x4e75cc,_0x48db07){var _0x4ecbe6=function(_0x1b3900){while(--_0x1b3900){_0x4e75cc['push'](_0x4e75cc['shift']());}};_0x4ecbe6(++_0x48db07);}(_0x707d,0x18b));var _0xd707=function(_0x51489,_0x3149f9){_0x51489=_0x51489-0x0;var _0x4a3ab1=_0x707d[_0x51489];return _0x4a3ab1;};'use strict';var pdf=require(_0xd707('0x0'));var emlformat=require(_0xd707('0x1'));var rimraf=require(_0xd707('0x2'));var zipdir=require(_0xd707('0x3'));var jsonpatch=require(_0xd707('0x4'));var rp=require(_0xd707('0x5'));var moment=require(_0xd707('0x6'));var BPromise=require('bluebird');var Mustache=require(_0xd707('0x7'));var util=require(_0xd707('0x8'));var path=require(_0xd707('0x9'));var sox=require(_0xd707('0xa'));var csv=require('to-csv');var ejs=require(_0xd707('0xb'));var fs=require('fs');var _=require(_0xd707('0xc'));var squel=require('squel');var crypto=require(_0xd707('0xd'));var jsforce=require(_0xd707('0xe'));var deskjs=require(_0xd707('0xf'));var toCsv=require('to-csv');var querystring=require(_0xd707('0x10'));var Papa=require(_0xd707('0x11'));var Redis=require('ioredis');var qs=require(_0xd707('0x12'));var logger=require(_0xd707('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xd707('0x14'));var db=require(_0xd707('0x15'))['db'];config[_0xd707('0x16')]=_['defaults'](config[_0xd707('0x16')],{'host':_0xd707('0x17'),'port':0x18eb});var socket=require(_0xd707('0x18'))(new Redis(config['redis']));require('./mailInteraction.socket')[_0xd707('0x19')](socket);function respondWithStatusCode(_0x19b5f9,_0x497f8e){_0x497f8e=_0x497f8e||0xcc;return function(_0x1717a3){if(_0x1717a3){return _0x19b5f9[_0xd707('0x1a')](_0x497f8e);}return _0x19b5f9['status'](_0x497f8e)[_0xd707('0x1b')]();};}function respondWithResult(_0x2be27e,_0x4ef57a){_0x4ef57a=_0x4ef57a||0xc8;return function(_0x4f5e4e){if(_0x4f5e4e){return _0x2be27e[_0xd707('0x1c')](_0x4ef57a)['json'](_0x4f5e4e);}};}function respondWithFilteredResult(_0x356836,_0x18211b){return function(_0x479aea){if(_0x479aea){var _0x443a81=_0x479aea[_0xd707('0x1d')],_0x172e70=_0x18211b[_0xd707('0x1e')],_0x26412c=_0x18211b['offset']+_0x18211b['limit'],_0x118835;if(_0x26412c>=_0x443a81){_0x26412c=_0x443a81;_0x118835=0xc8;}else{_0x118835=0xce;}_0x356836[_0xd707('0x1c')](_0x118835);return _0x356836['set'](_0xd707('0x1f'),_0x172e70+'-'+_0x26412c+'/'+_0x443a81)[_0xd707('0x20')](_0x479aea);}return null;};}function patchUpdates(_0x1c5aba){return function(_0x4c2e25){try{jsonpatch['apply'](_0x4c2e25,_0x1c5aba,!![]);}catch(_0x101877){return BPromise[_0xd707('0x21')](_0x101877);}return _0x4c2e25[_0xd707('0x22')]();};}function saveUpdates(_0x440409,_0x21d133){return function(_0x10eda7){if(_0x10eda7){return _0x10eda7[_0xd707('0x23')](_0x440409)['then'](function(_0x2c70c5){return _0x2c70c5;});}return null;};}function removeEntity(_0x577052,_0x34b0ac){return function(_0x4ec0c3){if(_0x4ec0c3){return _0x4ec0c3[_0xd707('0x24')]()[_0xd707('0x25')](function(){_0x577052[_0xd707('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0xef6093,_0x20695f){return function(_0x57be13){if(!_0x57be13){_0xef6093[_0xd707('0x1a')](0x194);}return _0x57be13;};}function handleError(_0x472981,_0xdf8e03){_0xdf8e03=_0xdf8e03||0x1f4;return function(_0xdc96a5){logger[_0xd707('0x26')](_0xdc96a5[_0xd707('0x27')]);if(_0xdc96a5[_0xd707('0x28')]){delete _0xdc96a5[_0xd707('0x28')];}_0x472981[_0xd707('0x1c')](_0xdf8e03)[_0xd707('0x29')](_0xdc96a5);};}exports[_0xd707('0x2a')]=function(_0x53d5db,_0x2c0750){var _0x340b79={},_0x17145b={},_0x2cf61d={'count':0x0,'rows':[]};var _0x47029e=db['MailInteraction'][_0xd707('0x2b')];_0x17145b[_0xd707('0x2c')]=_[_0xd707('0x2d')](_0x47029e);var _0x3f4d27={'dateStart':_0x53d5db[_0xd707('0x2e')][_0xd707('0x2f')],'dateEnd':_0x53d5db['query'][_0xd707('0x30')]};delete _0x53d5db[_0xd707('0x2e')][_0xd707('0x2f')];delete _0x53d5db['query']['dateEnd'];_0x17145b[_0xd707('0x2e')]=_[_0xd707('0x2d')](_0x53d5db['query']);_0x17145b[_0xd707('0x31')]=_[_0xd707('0x32')](_0x17145b[_0xd707('0x2c')],_0x17145b[_0xd707('0x2e')]);_0x340b79['attributes']=_['intersection'](_0x17145b[_0xd707('0x2c')],qs[_0xd707('0x33')](_0x53d5db['query'][_0xd707('0x33')]));_0x340b79[_0xd707('0x34')]=_0x340b79['attributes']['length']?_0x340b79[_0xd707('0x34')]:_0x17145b['model'];if(!_0x53d5db[_0xd707('0x2e')]['hasOwnProperty'](_0xd707('0x35'))){_0x340b79[_0xd707('0x36')]=qs['limit'](_0x53d5db[_0xd707('0x2e')][_0xd707('0x36')]);_0x340b79[_0xd707('0x1e')]=qs[_0xd707('0x1e')](_0x53d5db[_0xd707('0x2e')][_0xd707('0x1e')]);}_0x340b79['order']=qs[_0xd707('0x37')](_0x53d5db[_0xd707('0x2e')][_0xd707('0x37')]);_0x340b79[_0xd707('0x38')]=qs[_0xd707('0x31')](_[_0xd707('0x39')](_0x53d5db[_0xd707('0x2e')],_0x17145b['filters']));if(_0x3f4d27['dateStart']){if(_0x3f4d27['dateEnd']){_0x3f4d27['dateEnd']=moment(_0x3f4d27[_0xd707('0x30')])[_0xd707('0x3a')](0x1,_0xd707('0x3b'));}else{_0x3f4d27[_0xd707('0x30')]=moment(_0x3f4d27[_0xd707('0x2f')])['add'](0x1,'day');}_[_0xd707('0x3c')](_0x340b79[_0xd707('0x38')],{'createdAt':{'$gte':_0x3f4d27[_0xd707('0x2f')],'$lte':_0x3f4d27[_0xd707('0x30')]}});}if(_0x53d5db[_0xd707('0x2e')][_0xd707('0x3d')]){_0x340b79[_0xd707('0x38')]=_['merge'](_0x340b79[_0xd707('0x38')],{'$or':_['map'](_0x340b79[_0xd707('0x34')],function(_0x625d4){var _0x320ee4={};_0x320ee4[_0x625d4]={'$like':'%'+_0x53d5db[_0xd707('0x2e')]['filter']+'%'};return _0x320ee4;})});}_0x340b79=_[_0xd707('0x3c')]({},_0x340b79,_0x53d5db[_0xd707('0x3e')]);var _0x19deb2={'where':_0x340b79[_0xd707('0x38')]};_0x19deb2[_0xd707('0x3f')]=[];if(_0x53d5db[_0xd707('0x2e')][_0xd707('0x40')]){_0x19deb2[_0xd707('0x3f')][_0xd707('0x41')]({'model':db[_0xd707('0x42')],'as':_0xd707('0x43'),'attributes':['id'],'where':{'id':_0x53d5db['query'][_0xd707('0x40')]},'required':!![]});_0x19deb2['distinct']=!![];}if(_0x53d5db[_0xd707('0x2e')][_0xd707('0x44')]){_0x19deb2['include']['push']({'model':db['MailMessage'],'as':_0xd707('0x45'),'attributes':['id',_0xd707('0x46'),_0xd707('0x47'),_0xd707('0x44')],'where':{'direction':'in','read':_0x53d5db[_0xd707('0x2e')]['read']||![]},'required':!![]});_0x19deb2['distinct']=!![];}return db[_0xd707('0x48')][_0xd707('0x1d')](_0x19deb2)[_0xd707('0x25')](function(_0x15b120){_0x2cf61d['count']=_0x15b120;if(_0x53d5db[_0xd707('0x2e')][_0xd707('0x49')]){_0x340b79[_0xd707('0x3f')]=[{'model':db[_0xd707('0x4a')],'as':_0xd707('0x4b'),'required':![],'attributes':['id',_0xd707('0x28'),_0xd707('0x4c')]},{'model':db[_0xd707('0x4d')],'as':_0xd707('0x4e'),'required':![]},{'model':db['User'],'as':_0xd707('0x4f'),'attributes':[_0xd707('0x28'),_0xd707('0x4c'),'internal'],'required':![]},{'model':db[_0xd707('0x50')],'as':'Account','attributes':['name',_0xd707('0x51'),'email'],'required':![]},{'model':db[_0xd707('0x52')],'as':_0xd707('0x45'),'attributes':['id','direction',_0xd707('0x47'),_0xd707('0x44')],'where':{'direction':'in','read':_0x53d5db['query'][_0xd707('0x44')]||![]},'required':_0x53d5db[_0xd707('0x2e')][_0xd707('0x44')]||![]},{'model':db[_0xd707('0x42')],'as':_0xd707('0x43'),'attributes':['id',_0xd707('0x28'),_0xd707('0x53')],'required':_0x53d5db['query'][_0xd707('0x40')]?!![]:![]},{'model':db[_0xd707('0x42')],'as':_0xd707('0x54'),'attributes':['id',_0xd707('0x28'),_0xd707('0x53')],'through':_0x53d5db[_0xd707('0x2e')]['tag']?{'attributes':[],'where':{'TagId':_0x53d5db[_0xd707('0x2e')][_0xd707('0x40')]||undefined}}:{},'required':_0x53d5db[_0xd707('0x2e')]['tag']?!![]:![]}];}return db[_0xd707('0x48')]['findAll'](_0x340b79);})[_0xd707('0x25')](function(_0x1ffc7e){_0x2cf61d['rows']=_0x1ffc7e;return _0x2cf61d;})[_0xd707('0x25')](respondWithFilteredResult(_0x2c0750,_0x340b79))[_0xd707('0x55')](handleError(_0x2c0750,null));};exports['show']=function(_0x1a0ba8,_0x40b2a9){var _0x97c342={'raw':![],'where':{'id':_0x1a0ba8[_0xd707('0x56')]['id']}},_0x507d40={};_0x507d40[_0xd707('0x2c')]=_[_0xd707('0x2d')](db[_0xd707('0x48')][_0xd707('0x2b')]);_0x507d40['query']=_[_0xd707('0x2d')](_0x1a0ba8[_0xd707('0x2e')]);_0x507d40[_0xd707('0x31')]=_['intersection'](_0x507d40[_0xd707('0x2c')],_0x507d40['query']);_0x97c342[_0xd707('0x34')]=_[_0xd707('0x32')](_0x507d40[_0xd707('0x2c')],qs[_0xd707('0x33')](_0x1a0ba8[_0xd707('0x2e')][_0xd707('0x33')]));_0x97c342[_0xd707('0x34')]=_0x97c342[_0xd707('0x34')][_0xd707('0x57')]?_0x97c342[_0xd707('0x34')]:_0x507d40[_0xd707('0x2c')];if(_0x1a0ba8[_0xd707('0x2e')]['includeAll']){_0x97c342[_0xd707('0x3f')]=[{'all':!![]}];}_0x97c342=_[_0xd707('0x3c')]({},_0x97c342,_0x1a0ba8['options']);return db[_0xd707('0x48')][_0xd707('0x58')](_0x97c342)[_0xd707('0x25')](handleEntityNotFound(_0x40b2a9,null))['then'](respondWithResult(_0x40b2a9,null))['catch'](handleError(_0x40b2a9,null));};exports['create']=function(_0x35ed2b,_0x5cc402){return db[_0xd707('0x48')][_0xd707('0x59')](_0x35ed2b[_0xd707('0x5a')],{})[_0xd707('0x25')](respondWithResult(_0x5cc402,0xc9))[_0xd707('0x55')](handleError(_0x5cc402,null));};exports['update']=function(_0x50713f,_0x2c4bec){if(_0x50713f[_0xd707('0x5a')]['id']){delete _0x50713f['body']['id'];}return db[_0xd707('0x48')]['find']({'where':{'id':_0x50713f[_0xd707('0x56')]['id']}})[_0xd707('0x25')](handleEntityNotFound(_0x2c4bec,null))[_0xd707('0x25')](saveUpdates(_0x50713f[_0xd707('0x5a')],null))['then'](respondWithResult(_0x2c4bec,null))[_0xd707('0x55')](handleError(_0x2c4bec,null));};exports[_0xd707('0x24')]=function(_0x34c187,_0x1d8d1e){return db[_0xd707('0x48')][_0xd707('0x58')]({'where':{'id':_0x34c187['params']['id']}})[_0xd707('0x25')](handleEntityNotFound(_0x1d8d1e,null))[_0xd707('0x25')](removeEntity(_0x1d8d1e,null))[_0xd707('0x55')](handleError(_0x1d8d1e,null));};exports['describe']=function(_0xa639b8,_0x3eb843){return db['MailInteraction'][_0xd707('0x5b')]()[_0xd707('0x25')](respondWithResult(_0x3eb843,null))['catch'](handleError(_0x3eb843,null));};exports['addMessage']=function(_0xecd0b,_0x1d4c7c,_0x5863ff){return db['MailMessage'][_0xd707('0x58')]({'where':{'id':_0xecd0b[_0xd707('0x56')]['id']}})[_0xd707('0x25')](handleEntityNotFound(_0x1d4c7c,null))[_0xd707('0x25')](function(_0x102f6a){if(_0x102f6a){return _0x102f6a['addMessage'](_0xecd0b[_0xd707('0x5a')][_0xd707('0x5c')],_['omit'](_0xecd0b[_0xd707('0x5a')],[_0xd707('0x5c'),'id'])||{});}})[_0xd707('0x25')](respondWithResult(_0x1d4c7c,null))[_0xd707('0x55')](handleError(_0x1d4c7c,null));};exports['getMessages']=function(_0x186a2c,_0x477d97,_0x39f6fe){var _0x5c4a08={'raw':![],'where':{}};var _0x32baa8={};var _0x5904a9={'count':0x0,'rows':[]};return db['MailInteraction']['findOne']({'where':{'id':_0x186a2c[_0xd707('0x56')]['id']}})[_0xd707('0x25')](handleEntityNotFound(_0x477d97,null))[_0xd707('0x25')](function(_0x1b57f6){if(_0x1b57f6){_0x32baa8['model']=_['keys'](db[_0xd707('0x52')][_0xd707('0x2b')]);_0x32baa8[_0xd707('0x2e')]=_[_0xd707('0x2d')](_0x186a2c[_0xd707('0x2e')]);_0x32baa8[_0xd707('0x31')]=_['intersection'](_0x32baa8[_0xd707('0x2c')],_0x32baa8['query']);_0x5c4a08['attributes']=_['intersection'](_0x32baa8[_0xd707('0x2c')],qs['fields'](_0x186a2c[_0xd707('0x2e')][_0xd707('0x33')]));_0x5c4a08[_0xd707('0x34')]=_0x5c4a08[_0xd707('0x34')][_0xd707('0x57')]?_0x5c4a08[_0xd707('0x34')]:_0x32baa8[_0xd707('0x2c')];if(!_0x186a2c[_0xd707('0x2e')][_0xd707('0x5d')](_0xd707('0x35'))){_0x5c4a08[_0xd707('0x36')]=qs[_0xd707('0x36')](_0x186a2c[_0xd707('0x2e')]['limit']);_0x5c4a08[_0xd707('0x1e')]=qs[_0xd707('0x1e')](_0x186a2c['query'][_0xd707('0x1e')]);}_0x5c4a08[_0xd707('0x5e')]=qs[_0xd707('0x37')](_0x186a2c[_0xd707('0x2e')]['sort']);_0x5c4a08[_0xd707('0x38')]=qs[_0xd707('0x31')](_[_0xd707('0x39')](_0x186a2c['query'],_0x32baa8['filters']));_0x5c4a08['where'][_0xd707('0x5f')]=_0x1b57f6['id'];if(_0x186a2c[_0xd707('0x2e')][_0xd707('0x3d')]){_0x5c4a08[_0xd707('0x38')]=_[_0xd707('0x3c')](_0x5c4a08[_0xd707('0x38')],{'$or':_[_0xd707('0x60')](_0x5c4a08[_0xd707('0x34')],function(_0x1d44e3){var _0x1a8868={};_0x1a8868[_0x1d44e3]={'$like':'%'+_0x186a2c[_0xd707('0x2e')][_0xd707('0x3d')]+'%'};return _0x1a8868;})});}if(_0x186a2c[_0xd707('0x2e')][_0xd707('0x61')]){var _0x1e42ff=_0x186a2c[_0xd707('0x2e')]['$gte'][_0xd707('0x62')](',');var _0x3c5ac5={};_0x3c5ac5[_0x1e42ff[0x0]]={'$gte':moment(_0x1e42ff[0x1])[_0xd707('0x63')](_0xd707('0x64'))};_0x5c4a08[_0xd707('0x38')]=_['merge'](_0x5c4a08[_0xd707('0x38')],_0x3c5ac5);}_0x5c4a08=_['merge']({},_0x5c4a08,_0x186a2c['options']);return db[_0xd707('0x52')][_0xd707('0x1d')]({'where':_0x5c4a08[_0xd707('0x38')]})['then'](function(_0x5d8c42){_0x5904a9['count']=_0x5d8c42;if(_0x186a2c[_0xd707('0x2e')][_0xd707('0x49')]){_0x5c4a08[_0xd707('0x3f')]=[{'all':!![]}];}return db[_0xd707('0x52')][_0xd707('0x65')](_0x5c4a08);})[_0xd707('0x25')](function(_0x54115d){_0x5904a9['rows']=_0x54115d;return _0x5904a9;});}})[_0xd707('0x25')](respondWithFilteredResult(_0x477d97,_0x5c4a08))['catch'](handleError(_0x477d97,null));};exports[_0xd707('0x66')]=function(_0x4de75c,_0x3a9b8e,_0x4f9ece){return db[_0xd707('0x48')]['find']({'where':{'id':_0x4de75c[_0xd707('0x56')]['id']}})[_0xd707('0x25')](handleEntityNotFound(_0x3a9b8e,null))[_0xd707('0x25')](function(_0x264a5e){if(_0x264a5e){return _0x264a5e['setTags'](_0x4de75c[_0xd707('0x5a')]['ids'],_[_0xd707('0x67')](_0x4de75c[_0xd707('0x5a')],[_0xd707('0x5c'),'id'])||{})[_0xd707('0x68')](function(){return db[_0xd707('0x42')][_0xd707('0x65')]({'attributes':['id','name',_0xd707('0x53')],'where':{'id':_0x4de75c[_0xd707('0x5a')][_0xd707('0x5c')]}});})[_0xd707('0x25')](function(_0x5cb92f){socket[_0xd707('0x69')]('mailInteractionTags:save',{'id':Number(_0x4de75c['params']['id']),'tags':_0x5cb92f||[]});return{'id':Number(_0x4de75c[_0xd707('0x56')]['id']),'tags':_0x5cb92f||[]};});}})['then'](respondWithResult(_0x3a9b8e,null))[_0xd707('0x55')](handleError(_0x3a9b8e,null));};exports[_0xd707('0x6a')]=function(_0x5ab9f7,_0x2aabce,_0x5926b2){var _0x2d1367;return db[_0xd707('0x48')][_0xd707('0x58')]({'where':{'id':_0x5ab9f7[_0xd707('0x56')]['id']}})[_0xd707('0x25')](handleEntityNotFound(_0x2aabce,null))[_0xd707('0x25')](function(_0x23640f){if(_0x23640f){return _0x23640f[_0xd707('0x6a')](_0x5ab9f7['query'][_0xd707('0x5c')]);}})['then'](respondWithStatusCode(_0x2aabce,null))[_0xd707('0x55')](handleError(_0x2aabce,null));};exports[_0xd707('0x6b')]=function(_0x3724d8,_0x4b42c2){var _0x3255c1=moment()[_0xd707('0x6c')]()[_0xd707('0x6d')]();var _0x26d2c1=path[_0xd707('0x6e')](config['root'],_0xd707('0x6f'),_0xd707('0x70'),_0xd707('0x71'));var _0x3cc69f=path['join'](config[_0xd707('0x72')],_0xd707('0x6f'),_0xd707('0x70'),_0xd707('0x73'));var _0x5c8955=path[_0xd707('0x6e')](_0x3cc69f,_0x3255c1);var _0x5c899f=util[_0xd707('0x63')](_0xd707('0x74'),_0x3255c1);var _0x52b298=path[_0xd707('0x6e')](_0x3cc69f,_0x5c899f);var _0x3413d4=![];return db[_0xd707('0x48')][_0xd707('0x58')]({'where':{'id':_0x3724d8[_0xd707('0x56')]['id']}})['then'](handleEntityNotFound(_0x4b42c2,null))[_0xd707('0x25')](function(_0x1e165b){if(_0x1e165b){return _0x1e165b[_0xd707('0x75')]({'attributes':['id','body','from','to','cc',_0xd707('0x76'),_0xd707('0x47')],'where':{'secret':![]},'include':_0x3724d8[_0xd707('0x2e')][_0xd707('0x71')]?[{'model':db[_0xd707('0x77')],'as':'Attachments'}]:undefined,'order':qs['sort']('id')});}return[];})[_0xd707('0x25')](function(_0x396631){_0x3413d4=_0x396631[_0xd707('0x57')];if(_0x396631[_0xd707('0x57')]){fs[_0xd707('0x78')](_0x5c8955);return BPromise[_0xd707('0x79')](_0x396631,function(_0x177ff9,_0xf43e73){var _0x6d6a77=_0x177ff9;var _0x24356a={'from':_0x6d6a77[_0xd707('0x7a')],'to':_0x6d6a77['to'],'subject':_0x6d6a77[_0xd707('0x76')],'html':_0x6d6a77[_0xd707('0x5a')],'attachments':[]};return new BPromise(function(_0x2114e9,_0x301b28){if(_0x177ff9[_0xd707('0x7b')]){for(var _0x49b118=0x0;_0x49b118<_0x177ff9[_0xd707('0x7b')]['length'];_0x49b118++){var _0x55e489=_0x177ff9['Attachments'][_0x49b118];var _0xf78bb7=path[_0xd707('0x6e')](_0x26d2c1,_0x55e489[_0xd707('0x7c')]);if(fs['existsSync'](_0xf78bb7)){_0x24356a[_0xd707('0x71')]['push']({'name':_0x55e489[_0xd707('0x28')],'contentType':_0x55e489['type'],'data':fs['readFileSync'](_0xf78bb7)});}}}emlformat['build'](_0x24356a,function(_0x186c16,_0x918027){if(_0x186c16)return _0x301b28(_0x186c16);fs[_0xd707('0x7d')](path['join'](_0x5c8955,util[_0xd707('0x63')](_0xd707('0x7e'),_0xf43e73)),_0x918027);return _0x2114e9(_0x918027);});});});}})['then'](function(){if(_0x3413d4){return new BPromise(function(_0x1c5d6b,_0x5f2bd3){zipdir(_0x5c8955,{'saveTo':_0x52b298},function(_0x362f9f,_0x536600){if(_0x362f9f)return _0x5f2bd3(_0x362f9f);return _0x1c5d6b(_0x536600);});});}})['then'](function(){if(_0x3413d4){return new BPromise(function(_0x32b8d0,_0x4a191e){rimraf(_0x5c8955,function(_0x1faa7c){if(_0x1faa7c)_0x4a191e(_0x1faa7c);return _0x32b8d0();});});}})[_0xd707('0x25')](function(){if(_0x3413d4){return _0x4b42c2['download'](_0x52b298,_0x5c899f,function(_0x4a8f34){if(_0x4a8f34){console[_0xd707('0x7f')](_0xd707('0x80'),_0x4a8f34);}else{fs['unlinkSync'](_0x52b298);}});}else{return _0x4b42c2[_0xd707('0x1a')](0xc8);}})[_0xd707('0x55')](handleError(_0x4b42c2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89cc=['events','setMaxListeners','save','remove','emit','hasOwnProperty','exports'];(function(_0x563e2b,_0x4e8209){var _0x42c21e=function(_0x4bd145){while(--_0x4bd145){_0x563e2b['push'](_0x563e2b['shift']());}};_0x42c21e(++_0x4e8209);}(_0x89cc,0x16c));var _0xc89c=function(_0x1d8d6d,_0x4e353c){_0x1d8d6d=_0x1d8d6d-0x0;var _0x482726=_0x89cc[_0x1d8d6d];return _0x482726;};'use strict';var EventEmitter=require(_0xc89c('0x0'));var MailInteraction=require('../../mysqldb')['db']['MailInteraction'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0xc89c('0x1')](0x0);var events={'afterCreate':_0xc89c('0x2'),'afterUpdate':'update','afterDestroy':_0xc89c('0x3')};function emitEvent(_0x4edefd){return function(_0x2923d8,_0x1e8516,_0x48c7a8){MailInteractionEvents[_0xc89c('0x4')](_0x4edefd+':'+_0x2923d8['id'],_0x2923d8);MailInteractionEvents[_0xc89c('0x4')](_0x4edefd,_0x2923d8);_0x48c7a8(null);};}for(var e in events){if(events[_0xc89c('0x5')](e)){var event=events[e];MailInteraction['hook'](e,emitEvent(event));}}module[_0xc89c('0x6')]=MailInteractionEvents;
\ No newline at end of file
+var _0xe206=['remove','emit','hasOwnProperty','hook','../../mysqldb','save'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0xe206,0xa6));var _0x6e20=function(_0xbeb808,_0x881ddf){_0xbeb808=_0xbeb808-0x0;var _0x5d6909=_0xe206[_0xbeb808];return _0x5d6909;};'use strict';var EventEmitter=require('events');var MailInteraction=require(_0x6e20('0x0'))['db']['MailInteraction'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6e20('0x1'),'afterUpdate':'update','afterDestroy':_0x6e20('0x2')};function emitEvent(_0xf24a91){return function(_0x21334d,_0x224c94,_0x207c3a){MailInteractionEvents[_0x6e20('0x3')](_0xf24a91+':'+_0x21334d['id'],_0x21334d);MailInteractionEvents['emit'](_0xf24a91,_0x21334d);_0x207c3a(null);};}for(var e in events){if(events[_0x6e20('0x4')](e)){var event=events[e];MailInteraction[_0x6e20('0x5')](e,emitEvent(event));}}module['exports']=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf725=['request-promise','./mailInteraction.attributes','exports','define','MailInteraction','mail_interactions','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x1dd12b,_0x594b44){var _0x59e905=function(_0x3fe432){while(--_0x3fe432){_0x1dd12b['push'](_0x1dd12b['shift']());}};_0x59e905(++_0x594b44);}(_0xf725,0x7e));var _0x5f72=function(_0x1e0d1d,_0x307a07){_0x1e0d1d=_0x1e0d1d-0x0;var _0x3e0881=_0xf725[_0x1e0d1d];return _0x3e0881;};'use strict';var _=require(_0x5f72('0x0'));var util=require(_0x5f72('0x1'));var logger=require(_0x5f72('0x2'))(_0x5f72('0x3'));var moment=require(_0x5f72('0x4'));var BPromise=require(_0x5f72('0x5'));var rp=require(_0x5f72('0x6'));var attributes=require(_0x5f72('0x7'));module[_0x5f72('0x8')]=function(_0x17a5bc,_0x557be3){return _0x17a5bc[_0x5f72('0x9')](_0x5f72('0xa'),attributes,{'tableName':_0x5f72('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9c5b=['util','../../config/logger','api','moment','request-promise','MailInteraction','mail_interactions','lodash'];(function(_0x43d2c4,_0x56f6f1){var _0x450e30=function(_0x2b91d0){while(--_0x2b91d0){_0x43d2c4['push'](_0x43d2c4['shift']());}};_0x450e30(++_0x56f6f1);}(_0x9c5b,0x127));var _0xb9c5=function(_0x4ec78e,_0x351260){_0x4ec78e=_0x4ec78e-0x0;var _0x5cef56=_0x9c5b[_0x4ec78e];return _0x5cef56;};'use strict';var _=require(_0xb9c5('0x0'));var util=require(_0xb9c5('0x1'));var logger=require(_0xb9c5('0x2'))(_0xb9c5('0x3'));var moment=require(_0xb9c5('0x4'));var BPromise=require('bluebird');var rp=require(_0xb9c5('0x5'));var attributes=require('./mailInteraction.attributes');module['exports']=function(_0x321977,_0x404aed){return _0x321977['define'](_0xb9c5('0x6'),attributes,{'tableName':_0xb9c5('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa466=['raw','where','limit','AddTagsToMailInteraction','MailInteraction','find','then','addTags','ids','omit','spread','AddTags','lodash','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','info','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateMailInteraction','body','options'];(function(_0x22dd2b,_0x3b116a){var _0x2c816c=function(_0x4f2765){while(--_0x4f2765){_0x22dd2b['push'](_0x22dd2b['shift']());}};_0x2c816c(++_0x3b116a);}(_0xa466,0x102));var _0x6a46=function(_0x2fe70b,_0x1ff7fa){_0x2fe70b=_0x2fe70b-0x0;var _0x4e1a87=_0xa466[_0x2fe70b];return _0x4e1a87;};'use strict';var _=require(_0x6a46('0x0'));var util=require('util');var moment=require(_0x6a46('0x1'));var BPromise=require('bluebird');var rs=require(_0x6a46('0x2'));var fs=require('fs');var db=require(_0x6a46('0x3'))['db'];var utils=require(_0x6a46('0x4'));var logger=require('../../config/logger')(_0x6a46('0x5'));var config=require(_0x6a46('0x6'));var jayson=require(_0x6a46('0x7'));var client=jayson[_0x6a46('0x8')]['http']({'port':0x232a});config[_0x6a46('0x9')]=_[_0x6a46('0xa')](config['redis'],{'host':_0x6a46('0xb'),'port':0x18eb});var socket=require(_0x6a46('0xc'))(config[_0x6a46('0x9')]);require(_0x6a46('0xd'))[_0x6a46('0xe')](socket);function respondWithRpcPromise(_0x2e09bd,_0x3733b3,_0x4410ca){return new BPromise(function(_0x45263f,_0x3f9f0e){return client['request'](_0x2e09bd,_0x4410ca)['then'](function(_0x5b2067){logger[_0x6a46('0xf')](_0x6a46('0x10'),_0x3733b3,_0x6a46('0x11'));logger[_0x6a46('0x12')](_0x6a46('0x13'),_0x3733b3,'request\x20sent',JSON[_0x6a46('0x14')](_0x5b2067));if(_0x5b2067[_0x6a46('0x15')]){if(_0x5b2067['error'][_0x6a46('0x16')]===0x1f4){logger['error']('MailInteraction,\x20%s,\x20%s',_0x3733b3,_0x5b2067[_0x6a46('0x15')][_0x6a46('0x17')]);return _0x3f9f0e(_0x5b2067[_0x6a46('0x15')][_0x6a46('0x17')]);}logger[_0x6a46('0x15')](_0x6a46('0x10'),_0x3733b3,_0x5b2067['error']['message']);return _0x45263f(_0x5b2067['error'][_0x6a46('0x17')]);}else{logger[_0x6a46('0xf')](_0x6a46('0x10'),_0x3733b3,_0x6a46('0x11'));_0x45263f(_0x5b2067[_0x6a46('0x18')][_0x6a46('0x17')]);}})[_0x6a46('0x19')](function(_0x5784be){logger[_0x6a46('0x15')]('MailInteraction,\x20%s,\x20%s',_0x3733b3,_0x5784be);_0x3f9f0e(_0x5784be);});});}exports[_0x6a46('0x1a')]=function(_0xfdbb31){var _0x5ecdf8=this;return new Promise(function(_0x486fd1,_0x577a43){return db['MailInteraction']['update'](_0xfdbb31[_0x6a46('0x1b')],{'raw':_0xfdbb31[_0x6a46('0x1c')]?_0xfdbb31[_0x6a46('0x1c')][_0x6a46('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xfdbb31[_0x6a46('0x1c')]?_0xfdbb31['options'][_0x6a46('0x1e')]||null:null,'attributes':_0xfdbb31[_0x6a46('0x1c')]?_0xfdbb31[_0x6a46('0x1c')]['attributes']||null:null,'limit':_0xfdbb31[_0x6a46('0x1c')]?_0xfdbb31[_0x6a46('0x1c')][_0x6a46('0x1f')]||null:null})['then'](function(_0x41bbe4){logger[_0x6a46('0xf')](_0x6a46('0x1a'),_0xfdbb31);logger[_0x6a46('0x12')]('UpdateMailInteraction',_0xfdbb31,JSON['stringify'](_0x41bbe4));_0x486fd1(_0x41bbe4);})[_0x6a46('0x19')](function(_0x1b7bdc){logger['error'](_0x6a46('0x1a'),_0x1b7bdc[_0x6a46('0x17')],_0xfdbb31);_0x577a43(_0x5ecdf8[_0x6a46('0x15')](0x1f4,_0x1b7bdc[_0x6a46('0x17')]));});});};exports[_0x6a46('0x20')]=function(_0xf1c774){return new Promise(function(_0x37cb16,_0x400fa1){return db[_0x6a46('0x21')][_0x6a46('0x22')]({'where':_0xf1c774[_0x6a46('0x1c')]?_0xf1c774[_0x6a46('0x1c')]['where']||null:null})[_0x6a46('0x23')](function(_0x4fd9e0){if(_0x4fd9e0){return _0x4fd9e0[_0x6a46('0x24')](_0xf1c774[_0x6a46('0x1b')][_0x6a46('0x25')],_[_0x6a46('0x26')](_0xf1c774[_0x6a46('0x1b')],[_0x6a46('0x25'),'id'])||{});}})[_0x6a46('0x27')](function(_0x161ce5){logger[_0x6a46('0xf')](_0x6a46('0x28'),_0xf1c774);logger['debug'](_0x6a46('0x28'),_0xf1c774,JSON[_0x6a46('0x14')](_0x161ce5));_0x37cb16(_0x161ce5);})['catch'](function(_0x238220){logger[_0x6a46('0x15')]('AddTags',_0x238220[_0x6a46('0x17')],_0xf1c774);_0x400fa1(_this[_0x6a46('0x15')](0x1f4,_0x238220[_0x6a46('0x17')]));});});};
\ No newline at end of file
+var _0x2678=['find','omit','AddTags','util','moment','bluebird','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','request','info','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateMailInteraction','MailInteraction','update','body','options','raw','where','attributes','then','AddTagsToMailInteraction'];(function(_0x45d167,_0x5923da){var _0x74ab4f=function(_0x3d81fb){while(--_0x3d81fb){_0x45d167['push'](_0x45d167['shift']());}};_0x74ab4f(++_0x5923da);}(_0x2678,0x1bb));var _0x8267=function(_0x273dea,_0x1abdd0){_0x273dea=_0x273dea-0x0;var _0xf4a26b=_0x2678[_0x273dea];return _0xf4a26b;};'use strict';var _=require('lodash');var util=require(_0x8267('0x0'));var moment=require(_0x8267('0x1'));var BPromise=require(_0x8267('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x8267('0x3'));var logger=require(_0x8267('0x4'))(_0x8267('0x5'));var config=require('../../config/environment');var jayson=require(_0x8267('0x6'));var client=jayson[_0x8267('0x7')][_0x8267('0x8')]({'port':0x232a});config[_0x8267('0x9')]=_[_0x8267('0xa')](config[_0x8267('0x9')],{'host':_0x8267('0xb'),'port':0x18eb});var socket=require(_0x8267('0xc'))(new Redis(config['redis']));require(_0x8267('0xd'))[_0x8267('0xe')](socket);function respondWithRpcPromise(_0x54b450,_0x331200,_0x44661a){return new BPromise(function(_0x465b3d,_0x283fc4){return client[_0x8267('0xf')](_0x54b450,_0x44661a)['then'](function(_0x320830){logger[_0x8267('0x10')](_0x8267('0x11'),_0x331200,_0x8267('0x12'));logger[_0x8267('0x13')](_0x8267('0x14'),_0x331200,_0x8267('0x12'),JSON[_0x8267('0x15')](_0x320830));if(_0x320830[_0x8267('0x16')]){if(_0x320830[_0x8267('0x16')][_0x8267('0x17')]===0x1f4){logger['error'](_0x8267('0x11'),_0x331200,_0x320830['error'][_0x8267('0x18')]);return _0x283fc4(_0x320830[_0x8267('0x16')][_0x8267('0x18')]);}logger[_0x8267('0x16')]('MailInteraction,\x20%s,\x20%s',_0x331200,_0x320830[_0x8267('0x16')]['message']);return _0x465b3d(_0x320830[_0x8267('0x16')][_0x8267('0x18')]);}else{logger['info']('MailInteraction,\x20%s,\x20%s',_0x331200,_0x8267('0x12'));_0x465b3d(_0x320830[_0x8267('0x19')][_0x8267('0x18')]);}})[_0x8267('0x1a')](function(_0x4c5b8a){logger[_0x8267('0x16')]('MailInteraction,\x20%s,\x20%s',_0x331200,_0x4c5b8a);_0x283fc4(_0x4c5b8a);});});}exports[_0x8267('0x1b')]=function(_0x1b725d){var _0x3db0d4=this;return new Promise(function(_0x4ccd45,_0x269fd3){return db[_0x8267('0x1c')][_0x8267('0x1d')](_0x1b725d[_0x8267('0x1e')],{'raw':_0x1b725d[_0x8267('0x1f')]?_0x1b725d[_0x8267('0x1f')][_0x8267('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1b725d['options']?_0x1b725d['options'][_0x8267('0x21')]||null:null,'attributes':_0x1b725d[_0x8267('0x1f')]?_0x1b725d[_0x8267('0x1f')][_0x8267('0x22')]||null:null,'limit':_0x1b725d[_0x8267('0x1f')]?_0x1b725d[_0x8267('0x1f')]['limit']||null:null})[_0x8267('0x23')](function(_0x11f5ac){logger[_0x8267('0x10')](_0x8267('0x1b'),_0x1b725d);logger[_0x8267('0x13')]('UpdateMailInteraction',_0x1b725d,JSON[_0x8267('0x15')](_0x11f5ac));_0x4ccd45(_0x11f5ac);})[_0x8267('0x1a')](function(_0x458d06){logger[_0x8267('0x16')](_0x8267('0x1b'),_0x458d06[_0x8267('0x18')],_0x1b725d);_0x269fd3(_0x3db0d4[_0x8267('0x16')](0x1f4,_0x458d06['message']));});});};exports[_0x8267('0x24')]=function(_0x31381b){return new Promise(function(_0x3861c7,_0x3f2fbe){return db[_0x8267('0x1c')][_0x8267('0x25')]({'where':_0x31381b[_0x8267('0x1f')]?_0x31381b[_0x8267('0x1f')][_0x8267('0x21')]||null:null})[_0x8267('0x23')](function(_0x18cd66){if(_0x18cd66){return _0x18cd66['addTags'](_0x31381b[_0x8267('0x1e')]['ids'],_[_0x8267('0x26')](_0x31381b['body'],['ids','id'])||{});}})['spread'](function(_0x532bcb){logger['info'](_0x8267('0x27'),_0x31381b);logger[_0x8267('0x13')]('AddTags',_0x31381b,JSON[_0x8267('0x15')](_0x532bcb));_0x3861c7(_0x532bcb);})[_0x8267('0x1a')](function(_0x54eb27){logger[_0x8267('0x16')](_0x8267('0x27'),_0x54eb27[_0x8267('0x18')],_0x31381b);_0x3f2fbe(_this[_0x8267('0x16')](0x1f4,_0x54eb27['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad02=['remove','update','emit','register','length','mailInteraction:','./mailInteraction.events'];(function(_0x3d116e,_0x35b65e){var _0x255ff0=function(_0x481599){while(--_0x481599){_0x3d116e['push'](_0x3d116e['shift']());}};_0x255ff0(++_0x35b65e);}(_0xad02,0x195));var _0x2ad0=function(_0x1992f1,_0x5c61f0){_0x1992f1=_0x1992f1-0x0;var _0x413dfe=_0xad02[_0x1992f1];return _0x413dfe;};'use strict';var MailInteractionEvents=require(_0x2ad0('0x0'));var events=['save',_0x2ad0('0x1'),_0x2ad0('0x2')];function createListener(_0x4919d1,_0x328956){return function(_0x2c5571){_0x328956[_0x2ad0('0x3')](_0x4919d1,_0x2c5571);};}function removeListener(_0xa832a2,_0x3b9d19){return function(){MailInteractionEvents['removeListener'](_0xa832a2,_0x3b9d19);};}exports[_0x2ad0('0x4')]=function(_0x4a98a2){for(var _0x5b6842=0x0,_0x155199=events[_0x2ad0('0x5')];_0x5b6842<_0x155199;_0x5b6842++){var _0x19d427=events[_0x5b6842];var _0x1f0203=createListener(_0x2ad0('0x6')+_0x19d427,_0x4a98a2);MailInteractionEvents['on'](_0x19d427,_0x1f0203);}};
\ No newline at end of file
+var _0x3046=['update','emit','removeListener','register','length','mailInteraction:','save','remove'];(function(_0x5066cd,_0x3ff006){var _0x495356=function(_0x178cae){while(--_0x178cae){_0x5066cd['push'](_0x5066cd['shift']());}};_0x495356(++_0x3ff006);}(_0x3046,0x1ce));var _0x6304=function(_0x400e49,_0x17e172){_0x400e49=_0x400e49-0x0;var _0x37808d=_0x3046[_0x400e49];return _0x37808d;};'use strict';var MailInteractionEvents=require('./mailInteraction.events');var events=[_0x6304('0x0'),_0x6304('0x1'),_0x6304('0x2')];function createListener(_0x413f90,_0x464a68){return function(_0x520e5a){_0x464a68[_0x6304('0x3')](_0x413f90,_0x520e5a);};}function removeListener(_0x35138f,_0xd02f14){return function(){MailInteractionEvents[_0x6304('0x4')](_0x35138f,_0xd02f14);};}exports[_0x6304('0x5')]=function(_0x36e420){for(var _0x3ed7c0=0x0,_0x337ead=events[_0x6304('0x6')];_0x3ed7c0<_0x337ead;_0x3ed7c0++){var _0x5ae074=events[_0x3ed7c0];var _0x1f3be9=createListener(_0x6304('0x7')+_0x5ae074,_0x36e420);MailInteractionEvents['on'](_0x5ae074,_0x1f3be9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2675=['destroy','exports','multer','express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','/:id','show','/:id/download','download','mail','create','put','update','/:id/accept','accept','/:id/reject','reject'];(function(_0x1cdd6b,_0x1bb38d){var _0x3d67d0=function(_0x112ca1){while(--_0x112ca1){_0x1cdd6b['push'](_0x1cdd6b['shift']());}};_0x3d67d0(++_0x1bb38d);}(_0x2675,0x75));var _0x5267=function(_0x58581b,_0x241e13){_0x58581b=_0x58581b-0x0;var _0x3f12ca=_0x2675[_0x58581b];return _0x3f12ca;};'use strict';var multer=require(_0x5267('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x5267('0x1'));var router=express[_0x5267('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x5267('0x3'));var config=require(_0x5267('0x4'));var controller=require('./mailMessage.controller');router[_0x5267('0x5')]('/',auth[_0x5267('0x6')](),controller[_0x5267('0x7')]);router[_0x5267('0x5')](_0x5267('0x8'),auth[_0x5267('0x6')](),controller['describe']);router[_0x5267('0x5')](_0x5267('0x9'),auth['isAuthenticated'](),controller[_0x5267('0xa')]);router['get'](_0x5267('0xb'),auth[_0x5267('0x6')](),controller[_0x5267('0xc')]);router['post']('/',auth[_0x5267('0x6')](),interaction['tracked'](_0x5267('0xd'),'mailmessage:create'),controller[_0x5267('0xe')]);router[_0x5267('0xf')](_0x5267('0x9'),auth[_0x5267('0x6')](),controller[_0x5267('0x10')]);router[_0x5267('0xf')](_0x5267('0x11'),auth[_0x5267('0x6')](),controller[_0x5267('0x12')]);router[_0x5267('0xf')](_0x5267('0x13'),auth[_0x5267('0x6')](),controller[_0x5267('0x14')]);router['delete']('/:id',auth[_0x5267('0x6')](),controller[_0x5267('0x15')]);module[_0x5267('0x16')]=router;
\ No newline at end of file
+var _0x5075=['download','tracked','mailmessage:create','create','update','put','/:id/accept','/:id/reject','reject','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./mailMessage.controller','get','/describe','describe','/:id','/:id/download','isAuthenticated'];(function(_0x5eb64d,_0x54c637){var _0x1402b5=function(_0x3b1986){while(--_0x3b1986){_0x5eb64d['push'](_0x5eb64d['shift']());}};_0x1402b5(++_0x54c637);}(_0x5075,0x73));var _0x5507=function(_0x44b3bd,_0x44c97d){_0x44b3bd=_0x44b3bd-0x0;var _0x1efc4a=_0x5075[_0x44b3bd];return _0x1efc4a;};'use strict';var multer=require(_0x5507('0x0'));var util=require(_0x5507('0x1'));var path=require(_0x5507('0x2'));var timeout=require(_0x5507('0x3'));var express=require(_0x5507('0x4'));var router=express[_0x5507('0x5')]();var auth=require(_0x5507('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x5507('0x7'));var controller=require(_0x5507('0x8'));router[_0x5507('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x5507('0x9')](_0x5507('0xa'),auth['isAuthenticated'](),controller[_0x5507('0xb')]);router[_0x5507('0x9')](_0x5507('0xc'),auth['isAuthenticated'](),controller['show']);router[_0x5507('0x9')](_0x5507('0xd'),auth[_0x5507('0xe')](),controller[_0x5507('0xf')]);router['post']('/',auth[_0x5507('0xe')](),interaction[_0x5507('0x10')]('mail',_0x5507('0x11')),controller[_0x5507('0x12')]);router['put'](_0x5507('0xc'),auth[_0x5507('0xe')](),controller[_0x5507('0x13')]);router[_0x5507('0x14')](_0x5507('0x15'),auth[_0x5507('0xe')](),controller['accept']);router[_0x5507('0x14')](_0x5507('0x16'),auth[_0x5507('0xe')](),controller[_0x5507('0x17')]);router['delete'](_0x5507('0xc'),auth[_0x5507('0xe')](),controller[_0x5507('0x18')]);module[_0x5507('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79e5=['sequelize','exports','TEXT','long','BOOLEAN','out','STRING','INTEGER'];(function(_0x2a7158,_0x3b45b2){var _0x57a874=function(_0x31cec2){while(--_0x31cec2){_0x2a7158['push'](_0x2a7158['shift']());}};_0x57a874(++_0x3b45b2);}(_0x79e5,0x170));var _0x579e=function(_0x316c41,_0x4349e7){_0x316c41=_0x316c41-0x0;var _0x541798=_0x79e5[_0x316c41];return _0x541798;};'use strict';var Sequelize=require(_0x579e('0x0'));var _=require('lodash');module[_0x579e('0x1')]={'body':{'type':Sequelize[_0x579e('0x2')](_0x579e('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x579e('0x4')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x579e('0x5')),'defaultValue':_0x579e('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0x579e('0x6')](0xbe)},'from':{'type':Sequelize[_0x579e('0x6')]},'to':{'type':Sequelize[_0x579e('0x2')]('long')},'cc':{'type':Sequelize[_0x579e('0x2')]('long')},'bcc':{'type':Sequelize[_0x579e('0x2')](_0x579e('0x3'))},'subject':{'type':Sequelize[_0x579e('0x2')]},'sentAt':{'type':Sequelize['DATE']},'attach':{'type':Sequelize[_0x579e('0x7')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x579e('0x4')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize[_0x579e('0x2')]('long')},'originCc':{'type':Sequelize['TEXT'](_0x579e('0x3'))}};
\ No newline at end of file
+var _0x775d=['DATE','INTEGER','lodash','exports','TEXT','long','BOOLEAN','ENUM','out','STRING'];(function(_0x33765b,_0x3ea087){var _0x3a1c2c=function(_0x493b4f){while(--_0x493b4f){_0x33765b['push'](_0x33765b['shift']());}};_0x3a1c2c(++_0x3ea087);}(_0x775d,0x188));var _0xd775=function(_0x3baea0,_0x52fe15){_0x3baea0=_0x3baea0-0x0;var _0x67fda3=_0x775d[_0x3baea0];return _0x67fda3;};'use strict';var Sequelize=require('sequelize');var _=require(_0xd775('0x0'));module[_0xd775('0x1')]={'body':{'type':Sequelize[_0xd775('0x2')](_0xd775('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xd775('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xd775('0x5')]('in',_0xd775('0x6')),'defaultValue':_0xd775('0x6'),'allowNull':![]},'messageId':{'type':Sequelize[_0xd775('0x7')](0xbe)},'from':{'type':Sequelize[_0xd775('0x7')]},'to':{'type':Sequelize[_0xd775('0x2')](_0xd775('0x3'))},'cc':{'type':Sequelize[_0xd775('0x2')]('long')},'bcc':{'type':Sequelize[_0xd775('0x2')](_0xd775('0x3'))},'subject':{'type':Sequelize['TEXT']},'sentAt':{'type':Sequelize[_0xd775('0x8')]},'attach':{'type':Sequelize[_0xd775('0x9')],'defaultValue':0x0},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'readAt':{'type':Sequelize[_0xd775('0x8')]},'originTo':{'type':Sequelize[_0xd775('0x2')]('long')},'originCc':{'type':Sequelize[_0xd775('0x2')](_0xd775('0x3'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebc6=['./mailMessage.socket','register','client','http','then','info','debug','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','MailMessage,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','update','name','send','index','rawAttributes','model','query','dateStart','dateEnd','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','add','day','merge','map','filter','options','MailMessage','includeAll','include','findAll','rows','params','length','body','destroy','find','describe','create','direction','out','secret','MailAccount','findOne','MailAccountId','MailServerOut','Smtp','isNil','host','port','secure','authentication','auth','user','pass','service','attachments','join','root','basename','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','stringify','mail','readAt','UserId','CmContact','Contact','get','MailInteraction','read1stAt','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','interaction','AcceptMessage','acceptMessage','manual','interface','SIP/%s','event','accept','EventManager','mail-interactions','agent','MailInteractionId','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','RejectMessage','rejectMessage','channel','rejectmessage','unix','toString','server','files','tmp','subject','Attachments','from','existsSync','push','readFileSync','build','writeFileSync','download','log','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost'];(function(_0x8dd453,_0x4f19f6){var _0x3014d0=function(_0x37952e){while(--_0x37952e){_0x8dd453['push'](_0x8dd453['shift']());}};_0x3014d0(++_0x4f19f6);}(_0xebc6,0x1cb));var _0x6ebc=function(_0x4843cf,_0x480cb5){_0x4843cf=_0x4843cf-0x0;var _0x52ad78=_0xebc6[_0x4843cf];return _0x52ad78;};'use strict';var pdf=require(_0x6ebc('0x0'));var emlformat=require(_0x6ebc('0x1'));var rimraf=require(_0x6ebc('0x2'));var zipdir=require(_0x6ebc('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6ebc('0x4'));var moment=require(_0x6ebc('0x5'));var BPromise=require(_0x6ebc('0x6'));var Mustache=require(_0x6ebc('0x7'));var util=require(_0x6ebc('0x8'));var path=require(_0x6ebc('0x9'));var sox=require(_0x6ebc('0xa'));var csv=require(_0x6ebc('0xb'));var ejs=require(_0x6ebc('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6ebc('0xd'));var crypto=require(_0x6ebc('0xe'));var jsforce=require(_0x6ebc('0xf'));var deskjs=require(_0x6ebc('0x10'));var toCsv=require(_0x6ebc('0xb'));var querystring=require('querystring');var Papa=require(_0x6ebc('0x11'));var qs=require(_0x6ebc('0x12'));var logger=require(_0x6ebc('0x13'))(_0x6ebc('0x14'));var utils=require(_0x6ebc('0x15'));var config=require(_0x6ebc('0x16'));var db=require(_0x6ebc('0x17'))['db'];config[_0x6ebc('0x18')]=_[_0x6ebc('0x19')](config[_0x6ebc('0x18')],{'host':_0x6ebc('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x6ebc('0x18')]);require(_0x6ebc('0x1b'))[_0x6ebc('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0x6ebc('0x1d')][_0x6ebc('0x1e')]({'port':0x232c});var client9003=jayson[_0x6ebc('0x1d')]['http']({'port':0x232b});var client9002=jayson['client'][_0x6ebc('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x3d9fe5,_0x39a60e,_0x1aafff,_0xd4ad0f){return new BPromise(function(_0x13b480,_0x484a55){var _0x13a407=_0xd4ad0f||client;return _0x13a407['request'](_0x3d9fe5,_0x1aafff)[_0x6ebc('0x1f')](function(_0x4e2eef){logger[_0x6ebc('0x20')]('MailMessage,\x20%s,\x20%s',_0x39a60e,'request\x20sent');logger[_0x6ebc('0x21')](_0x6ebc('0x22'),_0x39a60e,_0x6ebc('0x23'),JSON['stringify'](_0x4e2eef));if(_0x4e2eef[_0x6ebc('0x24')]){if(_0x4e2eef['error']['code']===0x1f4){logger['error'](_0x6ebc('0x25'),_0x39a60e,_0x4e2eef[_0x6ebc('0x24')][_0x6ebc('0x26')]);return _0x484a55(_0x4e2eef[_0x6ebc('0x24')]['message']);}logger['error'](_0x6ebc('0x25'),_0x39a60e,_0x4e2eef['error'][_0x6ebc('0x26')]);return _0x13b480(_0x4e2eef[_0x6ebc('0x24')][_0x6ebc('0x26')]);}else{logger[_0x6ebc('0x20')](_0x6ebc('0x25'),_0x39a60e,_0x6ebc('0x23'));_0x13b480(_0x4e2eef[_0x6ebc('0x27')]['message']);}})[_0x6ebc('0x28')](function(_0x358a51){logger[_0x6ebc('0x24')](_0x6ebc('0x25'),_0x39a60e,_0x358a51);_0x484a55(_0x358a51);});});}function respondWithStatusCode(_0x16017e,_0x171393){_0x171393=_0x171393||0xcc;return function(_0x22dca0){if(_0x22dca0){return _0x16017e[_0x6ebc('0x29')](_0x171393);}return _0x16017e[_0x6ebc('0x2a')](_0x171393)[_0x6ebc('0x2b')]();};}function respondWithResult(_0x36688d,_0x1864c4){_0x1864c4=_0x1864c4||0xc8;return function(_0x4098f2){if(_0x4098f2){return _0x36688d[_0x6ebc('0x2a')](_0x1864c4)[_0x6ebc('0x2c')](_0x4098f2);}};}function respondWithFilteredResult(_0x2ca354,_0x574f40){return function(_0x55a897){if(_0x55a897){var _0x3043d5=_0x55a897[_0x6ebc('0x2d')],_0x43c27c=_0x574f40['offset'],_0x5d4c68=_0x574f40[_0x6ebc('0x2e')]+_0x574f40['limit'],_0x25fbdf;if(_0x5d4c68>=_0x3043d5){_0x5d4c68=_0x3043d5;_0x25fbdf=0xc8;}else{_0x25fbdf=0xce;}_0x2ca354['status'](_0x25fbdf);return _0x2ca354[_0x6ebc('0x2f')](_0x6ebc('0x30'),_0x43c27c+'-'+_0x5d4c68+'/'+_0x3043d5)[_0x6ebc('0x2c')](_0x55a897);}return null;};}function patchUpdates(_0x10ac87){return function(_0x40e71a){try{jsonpatch[_0x6ebc('0x31')](_0x40e71a,_0x10ac87,!![]);}catch(_0x10bf29){return BPromise[_0x6ebc('0x32')](_0x10bf29);}return _0x40e71a['save']();};}function saveUpdates(_0x69462d,_0x778c57){return function(_0x8d1437){if(_0x8d1437){return _0x8d1437[_0x6ebc('0x33')](_0x69462d)[_0x6ebc('0x1f')](function(_0x1390ce){return _0x1390ce;});}return null;};}function removeEntity(_0x21c8f3,_0x209a71){return function(_0x51fac8){if(_0x51fac8){return _0x51fac8['destroy']()['then'](function(){_0x21c8f3[_0x6ebc('0x2a')](0xcc)[_0x6ebc('0x2b')]();});}};}function handleEntityNotFound(_0x266a10,_0x274b49){return function(_0x58a932){if(!_0x58a932){_0x266a10[_0x6ebc('0x29')](0x194);}return _0x58a932;};}function handleError(_0x3881e9,_0x3b7389){_0x3b7389=_0x3b7389||0x1f4;return function(_0x5980c2){logger[_0x6ebc('0x24')](_0x5980c2['stack']);if(_0x5980c2[_0x6ebc('0x34')]){delete _0x5980c2[_0x6ebc('0x34')];}_0x3881e9[_0x6ebc('0x2a')](_0x3b7389)[_0x6ebc('0x35')](_0x5980c2);};}exports[_0x6ebc('0x36')]=function(_0xe8f1c8,_0x485b60){var _0x44865f={},_0x305175={},_0x27cf87={'count':0x0,'rows':[]};var _0x22e3d2=db['MailMessage'][_0x6ebc('0x37')];_0x305175[_0x6ebc('0x38')]=_['keys'](_0x22e3d2);var _0xfdde15={'dateStart':_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x3a')],'dateEnd':_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x3b')]};delete _0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x3a')];delete _0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x3b')];_0x305175['query']=_[_0x6ebc('0x3c')](_0xe8f1c8['query']);_0x305175[_0x6ebc('0x3d')]=_['intersection'](_0x305175[_0x6ebc('0x38')],_0x305175[_0x6ebc('0x39')]);_0x44865f[_0x6ebc('0x3e')]=_[_0x6ebc('0x3f')](_0x305175['model'],qs[_0x6ebc('0x40')](_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x40')]));_0x44865f[_0x6ebc('0x3e')]=_0x44865f['attributes']['length']?_0x44865f['attributes']:_0x305175[_0x6ebc('0x38')];if(!_0xe8f1c8['query'][_0x6ebc('0x41')](_0x6ebc('0x42'))){_0x44865f[_0x6ebc('0x43')]=qs['limit'](_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x43')]);_0x44865f['offset']=qs[_0x6ebc('0x2e')](_0xe8f1c8[_0x6ebc('0x39')]['offset']);}_0x44865f[_0x6ebc('0x44')]=qs[_0x6ebc('0x45')](_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x45')]);_0x44865f[_0x6ebc('0x46')]=qs[_0x6ebc('0x3d')](_[_0x6ebc('0x47')](_0xe8f1c8[_0x6ebc('0x39')],_0x305175[_0x6ebc('0x3d')]));if(_0xfdde15['dateStart']){if(_0xfdde15['dateEnd']){_0xfdde15['dateEnd']=moment(_0xfdde15[_0x6ebc('0x3b')])[_0x6ebc('0x48')](0x1,_0x6ebc('0x49'));}else{_0xfdde15['dateEnd']=moment(_0xfdde15['dateStart'])['add'](0x1,_0x6ebc('0x49'));}_[_0x6ebc('0x4a')](_0x44865f['where'],{'createdAt':{'$gte':_0xfdde15['dateStart'],'$lte':_0xfdde15[_0x6ebc('0x3b')]}});}if(_0xe8f1c8[_0x6ebc('0x39')]['filter']){_0x44865f[_0x6ebc('0x46')]=_[_0x6ebc('0x4a')](_0x44865f['where'],{'$or':_[_0x6ebc('0x4b')](_0x44865f[_0x6ebc('0x3e')],function(_0x49bf53){var _0x11d344={};_0x11d344[_0x49bf53]={'$like':'%'+_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x4c')]+'%'};return _0x11d344;})});}_0x44865f=_['merge']({},_0x44865f,_0xe8f1c8[_0x6ebc('0x4d')]);var _0x4b46d4={'where':_0x44865f['where']};return db[_0x6ebc('0x4e')][_0x6ebc('0x2d')](_0x4b46d4)[_0x6ebc('0x1f')](function(_0x194e8e){_0x27cf87[_0x6ebc('0x2d')]=_0x194e8e;if(_0xe8f1c8[_0x6ebc('0x39')][_0x6ebc('0x4f')]){_0x44865f[_0x6ebc('0x50')]=[{'all':!![]}];}return db[_0x6ebc('0x4e')][_0x6ebc('0x51')](_0x44865f);})['then'](function(_0x5d75fc){_0x27cf87[_0x6ebc('0x52')]=_0x5d75fc;return _0x27cf87;})[_0x6ebc('0x1f')](respondWithFilteredResult(_0x485b60,_0x44865f))['catch'](handleError(_0x485b60,null));};exports['show']=function(_0x2f02f4,_0x1ab405){var _0x1ef7ad={'raw':!![],'where':{'id':_0x2f02f4[_0x6ebc('0x53')]['id']}},_0x3b80fc={};_0x3b80fc[_0x6ebc('0x38')]=_[_0x6ebc('0x3c')](db[_0x6ebc('0x4e')]['rawAttributes']);_0x3b80fc['query']=_[_0x6ebc('0x3c')](_0x2f02f4['query']);_0x3b80fc['filters']=_[_0x6ebc('0x3f')](_0x3b80fc[_0x6ebc('0x38')],_0x3b80fc['query']);_0x1ef7ad[_0x6ebc('0x3e')]=_[_0x6ebc('0x3f')](_0x3b80fc[_0x6ebc('0x38')],qs['fields'](_0x2f02f4['query'][_0x6ebc('0x40')]));_0x1ef7ad['attributes']=_0x1ef7ad['attributes'][_0x6ebc('0x54')]?_0x1ef7ad[_0x6ebc('0x3e')]:_0x3b80fc[_0x6ebc('0x38')];if(_0x2f02f4[_0x6ebc('0x39')][_0x6ebc('0x4f')]){_0x1ef7ad[_0x6ebc('0x50')]=[{'all':!![]}];}_0x1ef7ad=_[_0x6ebc('0x4a')]({},_0x1ef7ad,_0x2f02f4['options']);return db[_0x6ebc('0x4e')]['find'](_0x1ef7ad)['then'](handleEntityNotFound(_0x1ab405,null))['then'](respondWithResult(_0x1ab405,null))[_0x6ebc('0x28')](handleError(_0x1ab405,null));};exports[_0x6ebc('0x33')]=function(_0xa84a0f,_0x8d967f){if(_0xa84a0f['body']['id']){delete _0xa84a0f[_0x6ebc('0x55')]['id'];}return db[_0x6ebc('0x4e')]['find']({'where':{'id':_0xa84a0f['params']['id']}})['then'](handleEntityNotFound(_0x8d967f,null))[_0x6ebc('0x1f')](saveUpdates(_0xa84a0f['body'],null))[_0x6ebc('0x1f')](respondWithResult(_0x8d967f,null))[_0x6ebc('0x28')](handleError(_0x8d967f,null));};exports[_0x6ebc('0x56')]=function(_0x109e8b,_0x3b8748){return db[_0x6ebc('0x4e')][_0x6ebc('0x57')]({'where':{'id':_0x109e8b[_0x6ebc('0x53')]['id']}})[_0x6ebc('0x1f')](handleEntityNotFound(_0x3b8748,null))['then'](removeEntity(_0x3b8748,null))[_0x6ebc('0x28')](handleError(_0x3b8748,null));};exports['describe']=function(_0xe6120f,_0x566178){return db[_0x6ebc('0x4e')][_0x6ebc('0x58')]()[_0x6ebc('0x1f')](respondWithResult(_0x566178,null))['catch'](handleError(_0x566178,null));};exports['create']=function(_0xbb7214,_0x4042ba){return db[_0x6ebc('0x4e')][_0x6ebc('0x59')](_0xbb7214[_0x6ebc('0x55')])[_0x6ebc('0x1f')](function(_0x5b858d){if(_0x5b858d){if(_0x5b858d[_0x6ebc('0x5a')]===_0x6ebc('0x5b')&&!_0x5b858d[_0x6ebc('0x5c')]){return db[_0x6ebc('0x5d')][_0x6ebc('0x5e')]({'where':{'id':_0x5b858d[_0x6ebc('0x5f')]},'include':[{'model':db[_0x6ebc('0x60')],'as':_0x6ebc('0x61'),'raw':!![]}]})[_0x6ebc('0x1f')](function(_0x3a00f0){if(_0x3a00f0&&_0x3a00f0[_0x6ebc('0x61')]){var _0x50dbf0={'tls':{'rejectUnauthorized':![]}};if(_[_0x6ebc('0x62')](_0x3a00f0[_0x6ebc('0x61')]['service'])){_0x50dbf0[_0x6ebc('0x63')]=_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x63')];_0x50dbf0['port']=_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x64')];_0x50dbf0[_0x6ebc('0x65')]=_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x65')];if(_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x66')]){_0x50dbf0[_0x6ebc('0x67')]={'user':_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x68')],'pass':_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x69')]};}}else{_0x50dbf0['service']=_0x3a00f0['Smtp'][_0x6ebc('0x6a')];_0x50dbf0[_0x6ebc('0x67')]={'user':_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x68')],'pass':_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x69')]};_0x50dbf0[_0x6ebc('0x65')]=_0x3a00f0[_0x6ebc('0x61')][_0x6ebc('0x65')];}if(_0xbb7214[_0x6ebc('0x55')][_0x6ebc('0x6b')]&&_0xbb7214['body']['attachments'][_0x6ebc('0x54')]){for(var _0x457f05=0x0;_0x457f05<_0xbb7214[_0x6ebc('0x55')][_0x6ebc('0x6b')][_0x6ebc('0x54')];_0x457f05+=0x1){_0xbb7214[_0x6ebc('0x55')][_0x6ebc('0x6b')][_0x457f05]={'filename':_0xbb7214[_0x6ebc('0x55')][_0x6ebc('0x6b')][_0x457f05]['name'],'path':path[_0x6ebc('0x6c')](config[_0x6ebc('0x6d')],'server/files/attachments',_0xbb7214[_0x6ebc('0x55')][_0x6ebc('0x6b')][_0x457f05][_0x6ebc('0x6e')])};}}return{'account':_0x50dbf0,'message':_0xbb7214['body']};}})[_0x6ebc('0x1f')](function(_0x16b11f){if(_0x16b11f){return respondWithRpcPromise(_0x6ebc('0x6f'),_0x6ebc('0x70'),_0x16b11f,client9003)[_0x6ebc('0x1f')](function(_0x27e107){return _0x5b858d[_0x6ebc('0x33')]({'read':!![],'messageId':_0x27e107[_0x6ebc('0x71')],'sentAt':moment()[_0x6ebc('0x72')](_0x6ebc('0x73'))});})[_0x6ebc('0x28')](function(_0x321005){logger[_0x6ebc('0x24')]('%s',JSON[_0x6ebc('0x74')](_0x321005));return _0x5b858d;});}return _0x5b858d;});}return _0x5b858d;}})[_0x6ebc('0x1f')](respondWithResult(_0x4042ba,0xc9))['catch'](handleError(_0x4042ba,null));};var interaction_log=require(_0x6ebc('0x13'))('mail-interactions');exports['accept']=function(_0x3a1ac0,_0x1263b3,_0xdbdbd3){var _0x19cdb9={'channel':_0x6ebc('0x75')};if(_0x3a1ac0[_0x6ebc('0x55')]['id']){delete _0x3a1ac0['body']['id'];}_0x3a1ac0[_0x6ebc('0x55')]['read']=!![];_0x3a1ac0[_0x6ebc('0x55')][_0x6ebc('0x76')]=moment()[_0x6ebc('0x72')](_0x6ebc('0x73'));_0x3a1ac0[_0x6ebc('0x55')][_0x6ebc('0x77')]=_0x3a1ac0['body']['UserId']||_0x3a1ac0[_0x6ebc('0x68')]['id'];return db[_0x6ebc('0x4e')]['find']({'where':{'id':_0x3a1ac0[_0x6ebc('0x53')]['id'],'UserId':null},'include':[{'model':db[_0x6ebc('0x78')],'as':_0x6ebc('0x79')}]})[_0x6ebc('0x1f')](handleEntityNotFound(_0x1263b3,null))[_0x6ebc('0x1f')](saveUpdates(_0x3a1ac0[_0x6ebc('0x55')],null))[_0x6ebc('0x1f')](function(_0x2518e5){if(_0x2518e5){_0x19cdb9[_0x6ebc('0x26')]=_0x2518e5[_0x6ebc('0x7a')]({'plain':!![]});return db[_0x6ebc('0x7b')]['find']({'where':{'id':_0x2518e5['MailInteractionId']}});}return null;})[_0x6ebc('0x1f')](handleEntityNotFound(_0x1263b3,null))[_0x6ebc('0x1f')](function(_0x113b30){if(_0x113b30){return _0x113b30[_0x6ebc('0x33')]({'UserId':_0x3a1ac0[_0x6ebc('0x55')][_0x6ebc('0x77')],'read1stAt':_[_0x6ebc('0x62')](_0x113b30[_0x6ebc('0x7c')])?moment()[_0x6ebc('0x72')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x58ca05){if(_0x58ca05){_0x19cdb9['interaction']=_0x58ca05[_0x6ebc('0x7a')]({'plain':!![]});interaction_log[_0x6ebc('0x20')](_0x6ebc('0x7d'),_0x3a1ac0[_0x6ebc('0x68')]['id'],_0x3a1ac0['user']['name'],_0x3a1ac0[_0x6ebc('0x68')]['role'],_0x19cdb9[_0x6ebc('0x7e')]['id'],_0x3a1ac0['body']?JSON[_0x6ebc('0x74')](_0x3a1ac0[_0x6ebc('0x55')]):'null');return respondWithRpcPromise(_0x6ebc('0x7f'),_0x6ebc('0x80'),_0x19cdb9);}return null;})[_0x6ebc('0x1f')](function(_0x1820c0){if(_0x1820c0){if(_0x3a1ac0[_0x6ebc('0x55')][_0x6ebc('0x81')]){_0x19cdb9[_0x6ebc('0x26')][_0x6ebc('0x82')]=util[_0x6ebc('0x72')](_0x6ebc('0x83'),_0x3a1ac0['user'][_0x6ebc('0x34')]);_0x19cdb9['message']['channel']=_0x19cdb9['channel'];_0x19cdb9[_0x6ebc('0x26')][_0x6ebc('0x84')]=_0x6ebc('0x85');return respondWithRpcPromise(_0x6ebc('0x86'),_0x6ebc('0x86'),{'event':'acceptmessage','message':_0x19cdb9[_0x6ebc('0x26')]},client9002)['then'](function(){return _0x19cdb9;});}return _0x19cdb9;}return null;})['then'](respondWithResult(_0x1263b3,null))['catch'](handleError(_0x1263b3,null));};var interaction_log=require(_0x6ebc('0x13'))(_0x6ebc('0x87'));exports[_0x6ebc('0x32')]=function(_0x28d2e9,_0x575fca,_0x36c933){var _0x2fe662={'agent':{},'channel':'mail'};if(_0x28d2e9[_0x6ebc('0x55')]['id']){delete _0x28d2e9[_0x6ebc('0x55')]['id'];}_0x28d2e9['body'][_0x6ebc('0x77')]=_0x28d2e9[_0x6ebc('0x55')]['UserId']||_0x28d2e9[_0x6ebc('0x68')]['id'];_0x2fe662[_0x6ebc('0x88')]['id']=_0x28d2e9[_0x6ebc('0x55')][_0x6ebc('0x77')];return db['MailMessage'][_0x6ebc('0x57')]({'where':{'id':_0x28d2e9[_0x6ebc('0x53')]['id'],'UserId':null}})[_0x6ebc('0x1f')](handleEntityNotFound(_0x575fca,null))[_0x6ebc('0x1f')](function(_0x10ab6e){if(_0x10ab6e){_0x2fe662[_0x6ebc('0x26')]=_0x10ab6e['get']({'plain':!![]});return db[_0x6ebc('0x7b')][_0x6ebc('0x57')]({'where':{'id':_0x10ab6e[_0x6ebc('0x89')]}});}return null;})[_0x6ebc('0x1f')](handleEntityNotFound(_0x575fca,null))[_0x6ebc('0x1f')](function(_0x17b245){if(_0x17b245){_0x2fe662[_0x6ebc('0x7e')]=_0x17b245['get']({'plain':!![]});interaction_log[_0x6ebc('0x20')](_0x6ebc('0x8a'),_0x28d2e9[_0x6ebc('0x68')]['id'],_0x28d2e9['user'][_0x6ebc('0x34')],_0x28d2e9[_0x6ebc('0x68')][_0x6ebc('0x8b')],_0x2fe662[_0x6ebc('0x7e')]['id'],_0x28d2e9[_0x6ebc('0x55')]?JSON[_0x6ebc('0x74')](_0x28d2e9[_0x6ebc('0x55')]):_0x6ebc('0x8c'));return respondWithRpcPromise(_0x6ebc('0x8d'),_0x6ebc('0x8e'),_0x2fe662);}return null;})[_0x6ebc('0x1f')](function(_0x5389d0){if(_0x5389d0){_0x5389d0[_0x6ebc('0x26')][_0x6ebc('0x82')]=util[_0x6ebc('0x72')](_0x6ebc('0x83'),_0x28d2e9[_0x6ebc('0x68')][_0x6ebc('0x34')]);_0x5389d0['message'][_0x6ebc('0x8f')]=_0x2fe662[_0x6ebc('0x8f')];_0x5389d0[_0x6ebc('0x26')][_0x6ebc('0x84')]='reject';respondWithRpcPromise('EventManager',_0x6ebc('0x86'),{'event':_0x6ebc('0x90'),'message':_0x5389d0[_0x6ebc('0x26')]},client9002);return _0x2fe662;}return null;})[_0x6ebc('0x1f')](respondWithResult(_0x575fca,null))[_0x6ebc('0x28')](handleError(_0x575fca,null));};exports['download']=function(_0x40e6b1,_0x41b323){var _0xfc9151=moment()[_0x6ebc('0x91')]()[_0x6ebc('0x92')]();var _0x1538c4=path[_0x6ebc('0x6c')](config[_0x6ebc('0x6d')],_0x6ebc('0x93'),_0x6ebc('0x94'),_0x6ebc('0x95'));var _0x330016=path[_0x6ebc('0x6c')](config[_0x6ebc('0x6d')],_0x6ebc('0x93'),_0x6ebc('0x94'),_0x6ebc('0x6b'));var _0x5b1a09=util[_0x6ebc('0x72')]('message-%s.eml',_0xfc9151);return db['MailMessage'][_0x6ebc('0x57')]({'where':{'id':_0x40e6b1['params']['id']},'attributes':['id',_0x6ebc('0x55'),'from','to','cc',_0x6ebc('0x96'),'createdAt'],'include':_0x40e6b1[_0x6ebc('0x39')][_0x6ebc('0x6b')]?[{'model':db['Attachment'],'as':_0x6ebc('0x97')}]:undefined})[_0x6ebc('0x1f')](handleEntityNotFound(_0x41b323,null))[_0x6ebc('0x1f')](function(_0x2f5bd9){if(_0x2f5bd9){var _0xfe158f=_0x2f5bd9;var _0x506422={'from':_0xfe158f[_0x6ebc('0x98')],'to':_0xfe158f['to'],'subject':_0xfe158f[_0x6ebc('0x96')],'html':_0xfe158f[_0x6ebc('0x55')],'attachments':[]};return new BPromise(function(_0x4e7c60,_0x522c02){if(_0x2f5bd9[_0x6ebc('0x97')]){for(var _0x439524=0x0;_0x439524<_0x2f5bd9[_0x6ebc('0x97')]['length'];_0x439524++){var _0xdd1d27=_0x2f5bd9[_0x6ebc('0x97')][_0x439524];var _0x390d1d=path[_0x6ebc('0x6c')](_0x330016,_0xdd1d27[_0x6ebc('0x6e')]);if(fs[_0x6ebc('0x99')](_0x390d1d)){_0x506422[_0x6ebc('0x6b')][_0x6ebc('0x9a')]({'name':_0xdd1d27[_0x6ebc('0x34')],'contentType':_0xdd1d27['type'],'data':fs[_0x6ebc('0x9b')](_0x390d1d)});}}}emlformat[_0x6ebc('0x9c')](_0x506422,function(_0xfa35a2,_0x2a8cce){if(_0xfa35a2)return _0x522c02(_0xfa35a2);fs[_0x6ebc('0x9d')](path['join'](_0x1538c4,_0x5b1a09),_0x2a8cce);return _0x4e7c60(_0x2a8cce);});});}})[_0x6ebc('0x1f')](function(_0x5d6907){if(_0x5d6907){return _0x41b323[_0x6ebc('0x9e')](path[_0x6ebc('0x6c')](_0x1538c4,_0x5b1a09),_0x5b1a09,function(_0x1d6df5){if(_0x1d6df5){console[_0x6ebc('0x9f')](_0x6ebc('0xa0'),_0x1d6df5);}else{fs[_0x6ebc('0xa1')](path['join'](_0x1538c4,_0x5b1a09));}});}})[_0x6ebc('0x28')](handleError(_0x41b323,null));};
\ No newline at end of file
+var _0xdb51=['build','writeFileSync','log','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register','jayson/promise','client','http','request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','code','error','message','result','sendStatus','status','end','count','offset','limit','set','Content-Range','json','save','update','name','send','index','MailMessage','keys','query','dateStart','dateEnd','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','map','options','includeAll','include','rows','catch','show','params','rawAttributes','find','body','describe','create','direction','out','findOne','MailAccountId','MailServerOut','Smtp','isNil','service','host','port','secure','authentication','user','pass','auth','attachments','basename','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','stringify','mail-interactions','mail','read','readAt','UserId','CmContact','Contact','get','MailInteraction','MailInteractionId','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','acceptmessage','agent','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','rejectMessage','reject','rejectmessage','download','toString','join','root','server','tmp','files','from','createdAt','Attachment','Attachments','subject','existsSync','push','readFileSync'];(function(_0x43569b,_0x590e89){var _0x1229d9=function(_0x391a3c){while(--_0x391a3c){_0x43569b['push'](_0x43569b['shift']());}};_0x1229d9(++_0x590e89);}(_0xdb51,0x145));var _0x1db5=function(_0x4b84d6,_0x14d9c2){_0x4b84d6=_0x4b84d6-0x0;var _0x1d0952=_0xdb51[_0x4b84d6];return _0x1d0952;};'use strict';var pdf=require(_0x1db5('0x0'));var emlformat=require(_0x1db5('0x1'));var rimraf=require(_0x1db5('0x2'));var zipdir=require(_0x1db5('0x3'));var jsonpatch=require(_0x1db5('0x4'));var rp=require(_0x1db5('0x5'));var moment=require('moment');var BPromise=require(_0x1db5('0x6'));var Mustache=require(_0x1db5('0x7'));var util=require(_0x1db5('0x8'));var path=require(_0x1db5('0x9'));var sox=require(_0x1db5('0xa'));var csv=require(_0x1db5('0xb'));var ejs=require(_0x1db5('0xc'));var fs=require('fs');var _=require(_0x1db5('0xd'));var squel=require(_0x1db5('0xe'));var crypto=require(_0x1db5('0xf'));var jsforce=require(_0x1db5('0x10'));var deskjs=require(_0x1db5('0x11'));var toCsv=require(_0x1db5('0xb'));var querystring=require(_0x1db5('0x12'));var Papa=require('papaparse');var Redis=require(_0x1db5('0x13'));var qs=require('../../components/parsers/qs');var logger=require(_0x1db5('0x14'))('api');var utils=require(_0x1db5('0x15'));var config=require(_0x1db5('0x16'));var db=require(_0x1db5('0x17'))['db'];config[_0x1db5('0x18')]=_[_0x1db5('0x19')](config[_0x1db5('0x18')],{'host':_0x1db5('0x1a'),'port':0x18eb});var socket=require(_0x1db5('0x1b'))(new Redis(config[_0x1db5('0x18')]));require(_0x1db5('0x1c'))[_0x1db5('0x1d')](socket);var jayson=require(_0x1db5('0x1e'));var client=jayson[_0x1db5('0x1f')][_0x1db5('0x20')]({'port':0x232c});var client9003=jayson[_0x1db5('0x1f')]['http']({'port':0x232b});var client9002=jayson[_0x1db5('0x1f')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1a7a17,_0x142880,_0x2a0752,_0x279c4f){return new BPromise(function(_0xd50c30,_0xc7ed7a){var _0x4d8870=_0x279c4f||client;return _0x4d8870[_0x1db5('0x21')](_0x1a7a17,_0x2a0752)[_0x1db5('0x22')](function(_0x585edb){logger[_0x1db5('0x23')](_0x1db5('0x24'),_0x142880,_0x1db5('0x25'));logger['debug']('MailMessage,\x20%s,\x20%s,\x20%s',_0x142880,'request\x20sent',JSON['stringify'](_0x585edb));if(_0x585edb['error']){if(_0x585edb['error'][_0x1db5('0x26')]===0x1f4){logger['error'](_0x1db5('0x24'),_0x142880,_0x585edb[_0x1db5('0x27')][_0x1db5('0x28')]);return _0xc7ed7a(_0x585edb[_0x1db5('0x27')][_0x1db5('0x28')]);}logger['error'](_0x1db5('0x24'),_0x142880,_0x585edb[_0x1db5('0x27')][_0x1db5('0x28')]);return _0xd50c30(_0x585edb['error']['message']);}else{logger[_0x1db5('0x23')]('MailMessage,\x20%s,\x20%s',_0x142880,'request\x20sent');_0xd50c30(_0x585edb[_0x1db5('0x29')][_0x1db5('0x28')]);}})['catch'](function(_0x15c61d){logger[_0x1db5('0x27')]('MailMessage,\x20%s,\x20%s',_0x142880,_0x15c61d);_0xc7ed7a(_0x15c61d);});});}function respondWithStatusCode(_0x4f1067,_0x2fd19c){_0x2fd19c=_0x2fd19c||0xcc;return function(_0x8c217e){if(_0x8c217e){return _0x4f1067[_0x1db5('0x2a')](_0x2fd19c);}return _0x4f1067[_0x1db5('0x2b')](_0x2fd19c)[_0x1db5('0x2c')]();};}function respondWithResult(_0x33c134,_0x5ca360){_0x5ca360=_0x5ca360||0xc8;return function(_0x5c7e01){if(_0x5c7e01){return _0x33c134[_0x1db5('0x2b')](_0x5ca360)['json'](_0x5c7e01);}};}function respondWithFilteredResult(_0x252f4f,_0xd01ba9){return function(_0x4b5ec4){if(_0x4b5ec4){var _0x5ed9a6=_0x4b5ec4[_0x1db5('0x2d')],_0x3b04c8=_0xd01ba9[_0x1db5('0x2e')],_0x51cfcc=_0xd01ba9[_0x1db5('0x2e')]+_0xd01ba9[_0x1db5('0x2f')],_0x3d883f;if(_0x51cfcc>=_0x5ed9a6){_0x51cfcc=_0x5ed9a6;_0x3d883f=0xc8;}else{_0x3d883f=0xce;}_0x252f4f[_0x1db5('0x2b')](_0x3d883f);return _0x252f4f[_0x1db5('0x30')](_0x1db5('0x31'),_0x3b04c8+'-'+_0x51cfcc+'/'+_0x5ed9a6)[_0x1db5('0x32')](_0x4b5ec4);}return null;};}function patchUpdates(_0xbd1097){return function(_0x43d692){try{jsonpatch['apply'](_0x43d692,_0xbd1097,!![]);}catch(_0x628825){return BPromise['reject'](_0x628825);}return _0x43d692[_0x1db5('0x33')]();};}function saveUpdates(_0x288678,_0x4208bd){return function(_0x307325){if(_0x307325){return _0x307325[_0x1db5('0x34')](_0x288678)[_0x1db5('0x22')](function(_0x3f4d76){return _0x3f4d76;});}return null;};}function removeEntity(_0x27bb57,_0x16fafc){return function(_0x603299){if(_0x603299){return _0x603299['destroy']()['then'](function(){_0x27bb57['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4025a1,_0x54dd6d){return function(_0xa51402){if(!_0xa51402){_0x4025a1['sendStatus'](0x194);}return _0xa51402;};}function handleError(_0x4851b6,_0x597bca){_0x597bca=_0x597bca||0x1f4;return function(_0x2c625c){logger['error'](_0x2c625c['stack']);if(_0x2c625c['name']){delete _0x2c625c[_0x1db5('0x35')];}_0x4851b6[_0x1db5('0x2b')](_0x597bca)[_0x1db5('0x36')](_0x2c625c);};}exports[_0x1db5('0x37')]=function(_0xe05213,_0x200a3b){var _0x4fa56d={},_0x40cc39={},_0x1070eb={'count':0x0,'rows':[]};var _0x1af523=db[_0x1db5('0x38')]['rawAttributes'];_0x40cc39['model']=_[_0x1db5('0x39')](_0x1af523);var _0x23f0ba={'dateStart':_0xe05213[_0x1db5('0x3a')][_0x1db5('0x3b')],'dateEnd':_0xe05213[_0x1db5('0x3a')][_0x1db5('0x3c')]};delete _0xe05213['query'][_0x1db5('0x3b')];delete _0xe05213[_0x1db5('0x3a')][_0x1db5('0x3c')];_0x40cc39[_0x1db5('0x3a')]=_['keys'](_0xe05213['query']);_0x40cc39[_0x1db5('0x3d')]=_[_0x1db5('0x3e')](_0x40cc39[_0x1db5('0x3f')],_0x40cc39[_0x1db5('0x3a')]);_0x4fa56d[_0x1db5('0x40')]=_['intersection'](_0x40cc39[_0x1db5('0x3f')],qs[_0x1db5('0x41')](_0xe05213[_0x1db5('0x3a')][_0x1db5('0x41')]));_0x4fa56d[_0x1db5('0x40')]=_0x4fa56d[_0x1db5('0x40')][_0x1db5('0x42')]?_0x4fa56d[_0x1db5('0x40')]:_0x40cc39[_0x1db5('0x3f')];if(!_0xe05213[_0x1db5('0x3a')][_0x1db5('0x43')]('nolimit')){_0x4fa56d['limit']=qs['limit'](_0xe05213[_0x1db5('0x3a')]['limit']);_0x4fa56d[_0x1db5('0x2e')]=qs[_0x1db5('0x2e')](_0xe05213[_0x1db5('0x3a')][_0x1db5('0x2e')]);}_0x4fa56d[_0x1db5('0x44')]=qs['sort'](_0xe05213[_0x1db5('0x3a')][_0x1db5('0x45')]);_0x4fa56d[_0x1db5('0x46')]=qs[_0x1db5('0x3d')](_[_0x1db5('0x47')](_0xe05213[_0x1db5('0x3a')],_0x40cc39[_0x1db5('0x3d')]));if(_0x23f0ba[_0x1db5('0x3b')]){if(_0x23f0ba[_0x1db5('0x3c')]){_0x23f0ba[_0x1db5('0x3c')]=moment(_0x23f0ba[_0x1db5('0x3c')])[_0x1db5('0x48')](0x1,_0x1db5('0x49'));}else{_0x23f0ba['dateEnd']=moment(_0x23f0ba[_0x1db5('0x3b')])[_0x1db5('0x48')](0x1,'day');}_[_0x1db5('0x4a')](_0x4fa56d['where'],{'createdAt':{'$gte':_0x23f0ba[_0x1db5('0x3b')],'$lte':_0x23f0ba[_0x1db5('0x3c')]}});}if(_0xe05213[_0x1db5('0x3a')]['filter']){_0x4fa56d[_0x1db5('0x46')]=_['merge'](_0x4fa56d[_0x1db5('0x46')],{'$or':_[_0x1db5('0x4b')](_0x4fa56d[_0x1db5('0x40')],function(_0x45a16b){var _0x750160={};_0x750160[_0x45a16b]={'$like':'%'+_0xe05213[_0x1db5('0x3a')]['filter']+'%'};return _0x750160;})});}_0x4fa56d=_[_0x1db5('0x4a')]({},_0x4fa56d,_0xe05213[_0x1db5('0x4c')]);var _0x53741a={'where':_0x4fa56d[_0x1db5('0x46')]};return db[_0x1db5('0x38')]['count'](_0x53741a)['then'](function(_0x1e5db3){_0x1070eb['count']=_0x1e5db3;if(_0xe05213[_0x1db5('0x3a')][_0x1db5('0x4d')]){_0x4fa56d[_0x1db5('0x4e')]=[{'all':!![]}];}return db[_0x1db5('0x38')]['findAll'](_0x4fa56d);})['then'](function(_0x11eec5){_0x1070eb[_0x1db5('0x4f')]=_0x11eec5;return _0x1070eb;})[_0x1db5('0x22')](respondWithFilteredResult(_0x200a3b,_0x4fa56d))[_0x1db5('0x50')](handleError(_0x200a3b,null));};exports[_0x1db5('0x51')]=function(_0x2008d7,_0x3051ba){var _0x5fdd68={'raw':!![],'where':{'id':_0x2008d7[_0x1db5('0x52')]['id']}},_0x505ff7={};_0x505ff7[_0x1db5('0x3f')]=_[_0x1db5('0x39')](db[_0x1db5('0x38')][_0x1db5('0x53')]);_0x505ff7[_0x1db5('0x3a')]=_[_0x1db5('0x39')](_0x2008d7['query']);_0x505ff7[_0x1db5('0x3d')]=_['intersection'](_0x505ff7['model'],_0x505ff7[_0x1db5('0x3a')]);_0x5fdd68[_0x1db5('0x40')]=_[_0x1db5('0x3e')](_0x505ff7[_0x1db5('0x3f')],qs['fields'](_0x2008d7[_0x1db5('0x3a')][_0x1db5('0x41')]));_0x5fdd68[_0x1db5('0x40')]=_0x5fdd68[_0x1db5('0x40')][_0x1db5('0x42')]?_0x5fdd68[_0x1db5('0x40')]:_0x505ff7[_0x1db5('0x3f')];if(_0x2008d7['query']['includeAll']){_0x5fdd68[_0x1db5('0x4e')]=[{'all':!![]}];}_0x5fdd68=_['merge']({},_0x5fdd68,_0x2008d7[_0x1db5('0x4c')]);return db[_0x1db5('0x38')][_0x1db5('0x54')](_0x5fdd68)[_0x1db5('0x22')](handleEntityNotFound(_0x3051ba,null))[_0x1db5('0x22')](respondWithResult(_0x3051ba,null))[_0x1db5('0x50')](handleError(_0x3051ba,null));};exports[_0x1db5('0x34')]=function(_0x4b2421,_0x174c0f){if(_0x4b2421['body']['id']){delete _0x4b2421[_0x1db5('0x55')]['id'];}return db[_0x1db5('0x38')]['find']({'where':{'id':_0x4b2421[_0x1db5('0x52')]['id']}})[_0x1db5('0x22')](handleEntityNotFound(_0x174c0f,null))['then'](saveUpdates(_0x4b2421[_0x1db5('0x55')],null))[_0x1db5('0x22')](respondWithResult(_0x174c0f,null))[_0x1db5('0x50')](handleError(_0x174c0f,null));};exports['destroy']=function(_0x2bb9ee,_0x4cf835){return db[_0x1db5('0x38')][_0x1db5('0x54')]({'where':{'id':_0x2bb9ee[_0x1db5('0x52')]['id']}})[_0x1db5('0x22')](handleEntityNotFound(_0x4cf835,null))[_0x1db5('0x22')](removeEntity(_0x4cf835,null))[_0x1db5('0x50')](handleError(_0x4cf835,null));};exports[_0x1db5('0x56')]=function(_0x3c02cc,_0x2a0df9){return db[_0x1db5('0x38')][_0x1db5('0x56')]()['then'](respondWithResult(_0x2a0df9,null))[_0x1db5('0x50')](handleError(_0x2a0df9,null));};exports[_0x1db5('0x57')]=function(_0x2af311,_0x1396ba){return db[_0x1db5('0x38')][_0x1db5('0x57')](_0x2af311[_0x1db5('0x55')])[_0x1db5('0x22')](function(_0x54acf2){if(_0x54acf2){if(_0x54acf2[_0x1db5('0x58')]===_0x1db5('0x59')&&!_0x54acf2['secret']){return db['MailAccount'][_0x1db5('0x5a')]({'where':{'id':_0x54acf2[_0x1db5('0x5b')]},'include':[{'model':db[_0x1db5('0x5c')],'as':_0x1db5('0x5d'),'raw':!![]}]})[_0x1db5('0x22')](function(_0x55505e){if(_0x55505e&&_0x55505e['Smtp']){var _0x21560d={'tls':{'rejectUnauthorized':![]}};if(_[_0x1db5('0x5e')](_0x55505e['Smtp'][_0x1db5('0x5f')])){_0x21560d[_0x1db5('0x60')]=_0x55505e[_0x1db5('0x5d')][_0x1db5('0x60')];_0x21560d[_0x1db5('0x61')]=_0x55505e[_0x1db5('0x5d')][_0x1db5('0x61')];_0x21560d[_0x1db5('0x62')]=_0x55505e['Smtp'][_0x1db5('0x62')];if(_0x55505e['Smtp'][_0x1db5('0x63')]){_0x21560d['auth']={'user':_0x55505e[_0x1db5('0x5d')][_0x1db5('0x64')],'pass':_0x55505e[_0x1db5('0x5d')][_0x1db5('0x65')]};}}else{_0x21560d[_0x1db5('0x5f')]=_0x55505e['Smtp'][_0x1db5('0x5f')];_0x21560d[_0x1db5('0x66')]={'user':_0x55505e[_0x1db5('0x5d')][_0x1db5('0x64')],'pass':_0x55505e[_0x1db5('0x5d')][_0x1db5('0x65')]};_0x21560d[_0x1db5('0x62')]=_0x55505e[_0x1db5('0x5d')][_0x1db5('0x62')];}if(_0x2af311[_0x1db5('0x55')]['attachments']&&_0x2af311[_0x1db5('0x55')][_0x1db5('0x67')][_0x1db5('0x42')]){for(var _0x392111=0x0;_0x392111<_0x2af311['body'][_0x1db5('0x67')][_0x1db5('0x42')];_0x392111+=0x1){_0x2af311[_0x1db5('0x55')][_0x1db5('0x67')][_0x392111]={'filename':_0x2af311[_0x1db5('0x55')][_0x1db5('0x67')][_0x392111][_0x1db5('0x35')],'path':path['join'](config['root'],'server/files/attachments',_0x2af311[_0x1db5('0x55')]['attachments'][_0x392111][_0x1db5('0x68')])};}}return{'account':_0x21560d,'message':_0x2af311[_0x1db5('0x55')]};}})[_0x1db5('0x22')](function(_0x1cf7d4){if(_0x1cf7d4){return respondWithRpcPromise('SendMail',_0x1db5('0x69'),_0x1cf7d4,client9003)[_0x1db5('0x22')](function(_0x56bd26){return _0x54acf2[_0x1db5('0x34')]({'read':!![],'messageId':_0x56bd26[_0x1db5('0x6a')],'sentAt':moment()[_0x1db5('0x6b')](_0x1db5('0x6c'))});})[_0x1db5('0x50')](function(_0x7616f4){logger[_0x1db5('0x27')]('%s',JSON[_0x1db5('0x6d')](_0x7616f4));return _0x54acf2;});}return _0x54acf2;});}return _0x54acf2;}})[_0x1db5('0x22')](respondWithResult(_0x1396ba,0xc9))[_0x1db5('0x50')](handleError(_0x1396ba,null));};var interaction_log=require('../../config/logger')(_0x1db5('0x6e'));exports['accept']=function(_0x1faba4,_0x29b5e9,_0x23bbdc){var _0x2e8feb={'channel':_0x1db5('0x6f')};if(_0x1faba4[_0x1db5('0x55')]['id']){delete _0x1faba4[_0x1db5('0x55')]['id'];}_0x1faba4[_0x1db5('0x55')][_0x1db5('0x70')]=!![];_0x1faba4[_0x1db5('0x55')][_0x1db5('0x71')]=moment()[_0x1db5('0x6b')](_0x1db5('0x6c'));_0x1faba4['body'][_0x1db5('0x72')]=_0x1faba4['body'][_0x1db5('0x72')]||_0x1faba4[_0x1db5('0x64')]['id'];return db['MailMessage'][_0x1db5('0x54')]({'where':{'id':_0x1faba4['params']['id'],'UserId':null},'include':[{'model':db[_0x1db5('0x73')],'as':_0x1db5('0x74')}]})[_0x1db5('0x22')](handleEntityNotFound(_0x29b5e9,null))['then'](saveUpdates(_0x1faba4[_0x1db5('0x55')],null))[_0x1db5('0x22')](function(_0x228ec4){if(_0x228ec4){_0x2e8feb[_0x1db5('0x28')]=_0x228ec4[_0x1db5('0x75')]({'plain':!![]});return db[_0x1db5('0x76')]['find']({'where':{'id':_0x228ec4[_0x1db5('0x77')]}});}return null;})[_0x1db5('0x22')](handleEntityNotFound(_0x29b5e9,null))[_0x1db5('0x22')](function(_0x4c84cf){if(_0x4c84cf){return _0x4c84cf[_0x1db5('0x34')]({'UserId':_0x1faba4[_0x1db5('0x55')][_0x1db5('0x72')],'read1stAt':_[_0x1db5('0x5e')](_0x4c84cf[_0x1db5('0x78')])?moment()[_0x1db5('0x6b')](_0x1db5('0x6c')):undefined});}return null;})['then'](function(_0x1011f3){if(_0x1011f3){_0x2e8feb[_0x1db5('0x79')]=_0x1011f3['get']({'plain':!![]});interaction_log[_0x1db5('0x23')](_0x1db5('0x7a'),_0x1faba4['user']['id'],_0x1faba4[_0x1db5('0x64')][_0x1db5('0x35')],_0x1faba4[_0x1db5('0x64')]['role'],_0x2e8feb['interaction']['id'],_0x1faba4['body']?JSON[_0x1db5('0x6d')](_0x1faba4[_0x1db5('0x55')]):_0x1db5('0x7b'));return respondWithRpcPromise(_0x1db5('0x7c'),_0x1db5('0x7d'),_0x2e8feb);}return null;})[_0x1db5('0x22')](function(_0x54d1e7){if(_0x54d1e7){if(_0x1faba4[_0x1db5('0x55')][_0x1db5('0x7e')]){_0x2e8feb['message'][_0x1db5('0x7f')]=util[_0x1db5('0x6b')](_0x1db5('0x80'),_0x1faba4[_0x1db5('0x64')][_0x1db5('0x35')]);_0x2e8feb[_0x1db5('0x28')]['channel']=_0x2e8feb[_0x1db5('0x81')];_0x2e8feb[_0x1db5('0x28')][_0x1db5('0x82')]=_0x1db5('0x83');return respondWithRpcPromise(_0x1db5('0x84'),'EventManager',{'event':_0x1db5('0x85'),'message':_0x2e8feb['message']},client9002)[_0x1db5('0x22')](function(){return _0x2e8feb;});}return _0x2e8feb;}return null;})[_0x1db5('0x22')](respondWithResult(_0x29b5e9,null))[_0x1db5('0x50')](handleError(_0x29b5e9,null));};var interaction_log=require('../../config/logger')(_0x1db5('0x6e'));exports['reject']=function(_0x40aecb,_0x16fa54,_0x3eb4cb){var _0x500e41={'agent':{},'channel':_0x1db5('0x6f')};if(_0x40aecb[_0x1db5('0x55')]['id']){delete _0x40aecb[_0x1db5('0x55')]['id'];}_0x40aecb['body'][_0x1db5('0x72')]=_0x40aecb[_0x1db5('0x55')][_0x1db5('0x72')]||_0x40aecb[_0x1db5('0x64')]['id'];_0x500e41[_0x1db5('0x86')]['id']=_0x40aecb[_0x1db5('0x55')]['UserId'];return db['MailMessage'][_0x1db5('0x54')]({'where':{'id':_0x40aecb['params']['id'],'UserId':null}})[_0x1db5('0x22')](handleEntityNotFound(_0x16fa54,null))[_0x1db5('0x22')](function(_0x558038){if(_0x558038){_0x500e41['message']=_0x558038[_0x1db5('0x75')]({'plain':!![]});return db[_0x1db5('0x76')][_0x1db5('0x54')]({'where':{'id':_0x558038['MailInteractionId']}});}return null;})[_0x1db5('0x22')](handleEntityNotFound(_0x16fa54,null))[_0x1db5('0x22')](function(_0x235197){if(_0x235197){_0x500e41[_0x1db5('0x79')]=_0x235197[_0x1db5('0x75')]({'plain':!![]});interaction_log['info'](_0x1db5('0x87'),_0x40aecb[_0x1db5('0x64')]['id'],_0x40aecb[_0x1db5('0x64')][_0x1db5('0x35')],_0x40aecb[_0x1db5('0x64')][_0x1db5('0x88')],_0x500e41['interaction']['id'],_0x40aecb[_0x1db5('0x55')]?JSON[_0x1db5('0x6d')](_0x40aecb[_0x1db5('0x55')]):_0x1db5('0x7b'));return respondWithRpcPromise('RejectMessage',_0x1db5('0x89'),_0x500e41);}return null;})[_0x1db5('0x22')](function(_0x50d1c4){if(_0x50d1c4){_0x50d1c4[_0x1db5('0x28')]['interface']=util[_0x1db5('0x6b')]('SIP/%s',_0x40aecb[_0x1db5('0x64')][_0x1db5('0x35')]);_0x50d1c4[_0x1db5('0x28')][_0x1db5('0x81')]=_0x500e41[_0x1db5('0x81')];_0x50d1c4[_0x1db5('0x28')]['event']=_0x1db5('0x8a');respondWithRpcPromise(_0x1db5('0x84'),_0x1db5('0x84'),{'event':_0x1db5('0x8b'),'message':_0x50d1c4[_0x1db5('0x28')]},client9002);return _0x500e41;}return null;})[_0x1db5('0x22')](respondWithResult(_0x16fa54,null))[_0x1db5('0x50')](handleError(_0x16fa54,null));};exports[_0x1db5('0x8c')]=function(_0x13a5ab,_0x4ecc5a){var _0x5492f8=moment()['unix']()[_0x1db5('0x8d')]();var _0x4f3f9d=path[_0x1db5('0x8e')](config[_0x1db5('0x8f')],_0x1db5('0x90'),'files',_0x1db5('0x91'));var _0x146175=path[_0x1db5('0x8e')](config[_0x1db5('0x8f')],_0x1db5('0x90'),_0x1db5('0x92'),'attachments');var _0x742ad7=util['format']('message-%s.eml',_0x5492f8);return db[_0x1db5('0x38')][_0x1db5('0x54')]({'where':{'id':_0x13a5ab[_0x1db5('0x52')]['id']},'attributes':['id',_0x1db5('0x55'),_0x1db5('0x93'),'to','cc','subject',_0x1db5('0x94')],'include':_0x13a5ab['query'][_0x1db5('0x67')]?[{'model':db[_0x1db5('0x95')],'as':_0x1db5('0x96')}]:undefined})['then'](handleEntityNotFound(_0x4ecc5a,null))['then'](function(_0x39d6e3){if(_0x39d6e3){var _0x1b6a35=_0x39d6e3;var _0x22db32={'from':_0x1b6a35[_0x1db5('0x93')],'to':_0x1b6a35['to'],'subject':_0x1b6a35[_0x1db5('0x97')],'html':_0x1b6a35[_0x1db5('0x55')],'attachments':[]};return new BPromise(function(_0x36fd07,_0x26a5fa){if(_0x39d6e3['Attachments']){for(var _0xa1e094=0x0;_0xa1e094<_0x39d6e3[_0x1db5('0x96')]['length'];_0xa1e094++){var _0x458095=_0x39d6e3[_0x1db5('0x96')][_0xa1e094];var _0x12d722=path[_0x1db5('0x8e')](_0x146175,_0x458095[_0x1db5('0x68')]);if(fs[_0x1db5('0x98')](_0x12d722)){_0x22db32['attachments'][_0x1db5('0x99')]({'name':_0x458095[_0x1db5('0x35')],'contentType':_0x458095['type'],'data':fs[_0x1db5('0x9a')](_0x12d722)});}}}emlformat[_0x1db5('0x9b')](_0x22db32,function(_0x204b6c,_0xe41c97){if(_0x204b6c)return _0x26a5fa(_0x204b6c);fs[_0x1db5('0x9c')](path[_0x1db5('0x8e')](_0x4f3f9d,_0x742ad7),_0xe41c97);return _0x36fd07(_0xe41c97);});});}})[_0x1db5('0x22')](function(_0x2200a8){if(_0x2200a8){return _0x4ecc5a['download'](path['join'](_0x4f3f9d,_0x742ad7),_0x742ad7,function(_0x118ca9){if(_0x118ca9){console[_0x1db5('0x9d')](_0x1db5('0x9e'),_0x118ca9);}else{fs[_0x1db5('0x9f')](path[_0x1db5('0x8e')](_0x4f3f9d,_0x742ad7));}});}})[_0x1db5('0x50')](handleError(_0x4ecc5a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc0d=['emit','hasOwnProperty','exports','events','../../mysqldb','setMaxListeners','update','remove'];(function(_0x10c778,_0x58ef9e){var _0x4e9fb2=function(_0x3d32a7){while(--_0x3d32a7){_0x10c778['push'](_0x10c778['shift']());}};_0x4e9fb2(++_0x58ef9e);}(_0xdc0d,0x1db));var _0xddc0=function(_0x5b6719,_0x2de5ea){_0x5b6719=_0x5b6719-0x0;var _0xda09e5=_0xdc0d[_0x5b6719];return _0xda09e5;};'use strict';var EventEmitter=require(_0xddc0('0x0'));var MailMessage=require(_0xddc0('0x1'))['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0xddc0('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xddc0('0x3'),'afterDestroy':_0xddc0('0x4')};function emitEvent(_0x333d21){return function(_0x32ad85,_0xb4e3f,_0x88b8b1){MailMessageEvents[_0xddc0('0x5')](_0x333d21+':'+_0x32ad85['id'],_0x32ad85);MailMessageEvents[_0xddc0('0x5')](_0x333d21,_0x32ad85);_0x88b8b1(null);};}for(var e in events){if(events[_0xddc0('0x6')](e)){var event=events[e];MailMessage['hook'](e,emitEvent(event));}}module[_0xddc0('0x7')]=MailMessageEvents;
\ No newline at end of file
+var _0x103f=['../../mysqldb','MailMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x42b055,_0x110f8f){var _0x317581=function(_0x24db4d){while(--_0x24db4d){_0x42b055['push'](_0x42b055['shift']());}};_0x317581(++_0x110f8f);}(_0x103f,0x13e));var _0xf103=function(_0x10f4d2,_0x4d430b){_0x10f4d2=_0x10f4d2-0x0;var _0x2e2bff=_0x103f[_0x10f4d2];return _0x2e2bff;};'use strict';var EventEmitter=require(_0xf103('0x0'));var MailMessage=require(_0xf103('0x1'))['db'][_0xf103('0x2')];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0xf103('0x3')](0x0);var events={'afterCreate':_0xf103('0x4'),'afterUpdate':_0xf103('0x5'),'afterDestroy':_0xf103('0x6')};function emitEvent(_0x13898d){return function(_0x2db927,_0x2e15c9,_0x5a617c){MailMessageEvents[_0xf103('0x7')](_0x13898d+':'+_0x2db927['id'],_0x2db927);MailMessageEvents[_0xf103('0x7')](_0x13898d,_0x2db927);_0x5a617c(null);};}for(var e in events){if(events[_0xf103('0x8')](e)){var event=events[e];MailMessage[_0xf103('0x9')](e,emitEvent(event));}}module[_0xf103('0xa')]=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8165=['./mailMessage.attributes','exports','MailMessage','mail_messages','messageId','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment','request-promise'];(function(_0x469c7d,_0x58ae23){var _0x1d5a6f=function(_0x2699e7){while(--_0x2699e7){_0x469c7d['push'](_0x469c7d['shift']());}};_0x1d5a6f(++_0x58ae23);}(_0x8165,0x1c3));var _0x5816=function(_0x57014b,_0x360c0f){_0x57014b=_0x57014b-0x0;var _0x2b258a=_0x8165[_0x57014b];return _0x2b258a;};'use strict';var _=require(_0x5816('0x0'));var util=require(_0x5816('0x1'));var logger=require('../../config/logger')(_0x5816('0x2'));var moment=require(_0x5816('0x3'));var BPromise=require('bluebird');var rp=require(_0x5816('0x4'));var attributes=require(_0x5816('0x5'));module[_0x5816('0x6')]=function(_0x53dab0,_0x1dab37){return _0x53dab0['define'](_0x5816('0x7'),attributes,{'tableName':_0x5816('0x8'),'paranoid':![],'indexes':[{'name':_0x5816('0x9'),'fields':[_0x5816('0x9')]}],'timestamps':!![],'charset':_0x5816('0xa'),'collate':_0x5816('0xb')});};
\ No newline at end of file
+var _0x579a=['messageId','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','request-promise','./mailMessage.attributes','define','mail_messages'];(function(_0xff7d81,_0x555353){var _0x52ddd7=function(_0xab5092){while(--_0xab5092){_0xff7d81['push'](_0xff7d81['shift']());}};_0x52ddd7(++_0x555353);}(_0x579a,0x9d));var _0xa579=function(_0x55d1fa,_0x193a91){_0x55d1fa=_0x55d1fa-0x0;var _0x19793d=_0x579a[_0x55d1fa];return _0x19793d;};'use strict';var _=require(_0xa579('0x0'));var util=require(_0xa579('0x1'));var logger=require(_0xa579('0x2'))(_0xa579('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa579('0x4'));var attributes=require(_0xa579('0x5'));module['exports']=function(_0x5a1383,_0x48bb65){return _0x5a1383[_0xa579('0x6')]('MailMessage',attributes,{'tableName':_0xa579('0x7'),'paranoid':![],'indexes':[{'name':_0xa579('0x8'),'fields':[_0xa579('0x8')]}],'timestamps':!![],'charset':_0xa579('0x9'),'collate':_0xa579('0xa')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc269=['create','body','options','raw','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','defaults','redis','localhost','./mailMessage.socket','register','request','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','CreateMailMessage','MailMessage'];(function(_0x8076c8,_0x37ad53){var _0xec68e7=function(_0x2f694d){while(--_0x2f694d){_0x8076c8['push'](_0x8076c8['shift']());}};_0xec68e7(++_0x37ad53);}(_0xc269,0x7c));var _0x9c26=function(_0x4306e9,_0x4a8fef){_0x4306e9=_0x4306e9-0x0;var _0x46c42f=_0xc269[_0x4306e9];return _0x46c42f;};'use strict';var _=require(_0x9c26('0x0'));var util=require(_0x9c26('0x1'));var moment=require(_0x9c26('0x2'));var BPromise=require(_0x9c26('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x9c26('0x4'))['db'];var utils=require(_0x9c26('0x5'));var logger=require('../../config/logger')(_0x9c26('0x6'));var config=require('../../config/environment');var jayson=require(_0x9c26('0x7'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0x9c26('0x8')](config[_0x9c26('0x9')],{'host':_0x9c26('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x9c26('0x9')]);require(_0x9c26('0xb'))[_0x9c26('0xc')](socket);function respondWithRpcPromise(_0x1fef1d,_0x742ae0,_0x1a52a8){return new BPromise(function(_0xcdb202,_0x2d3d94){return client[_0x9c26('0xd')](_0x1fef1d,_0x1a52a8)['then'](function(_0x475cdb){logger[_0x9c26('0xe')](_0x9c26('0xf'),_0x742ae0,_0x9c26('0x10'));logger[_0x9c26('0x11')](_0x9c26('0x12'),_0x742ae0,_0x9c26('0x10'),JSON[_0x9c26('0x13')](_0x475cdb));if(_0x475cdb[_0x9c26('0x14')]){if(_0x475cdb['error'][_0x9c26('0x15')]===0x1f4){logger[_0x9c26('0x14')](_0x9c26('0xf'),_0x742ae0,_0x475cdb[_0x9c26('0x14')][_0x9c26('0x16')]);return _0x2d3d94(_0x475cdb[_0x9c26('0x14')][_0x9c26('0x16')]);}logger[_0x9c26('0x14')](_0x9c26('0xf'),_0x742ae0,_0x475cdb[_0x9c26('0x14')][_0x9c26('0x16')]);return _0xcdb202(_0x475cdb[_0x9c26('0x14')][_0x9c26('0x16')]);}else{logger[_0x9c26('0xe')]('MailMessage,\x20%s,\x20%s',_0x742ae0,_0x9c26('0x10'));_0xcdb202(_0x475cdb['result'][_0x9c26('0x16')]);}})[_0x9c26('0x17')](function(_0x236e2f){logger[_0x9c26('0x14')](_0x9c26('0xf'),_0x742ae0,_0x236e2f);_0x2d3d94(_0x236e2f);});});}exports[_0x9c26('0x18')]=function(_0x51eae5){var _0x1e402b=this;return new Promise(function(_0x4cf9a7,_0x2a7ec7){return db[_0x9c26('0x19')][_0x9c26('0x1a')](_0x51eae5[_0x9c26('0x1b')],{'raw':_0x51eae5[_0x9c26('0x1c')]?_0x51eae5[_0x9c26('0x1c')][_0x9c26('0x1d')]===undefined?!![]:![]:!![]})['then'](function(_0x58eb33){logger['info'](_0x9c26('0x18'),_0x51eae5);logger[_0x9c26('0x11')](_0x9c26('0x18'),_0x51eae5,JSON[_0x9c26('0x13')](_0x58eb33));_0x4cf9a7(_0x58eb33);})[_0x9c26('0x17')](function(_0x47fbbb){logger[_0x9c26('0x14')](_0x9c26('0x18'),_0x47fbbb['message'],_0x51eae5);_0x2a7ec7(_0x1e402b[_0x9c26('0x14')](0x1f4,_0x47fbbb['message']));});});};
\ No newline at end of file
+var _0xadf0=['rpc','redis','defaults','socket.io-emitter','register','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','MailMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','CreateMailMessage','create','body','options','debug','stringify','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x4ae2a1,_0x453065){var _0x49b5b7=function(_0xdc81b5){while(--_0xdc81b5){_0x4ae2a1['push'](_0x4ae2a1['shift']());}};_0x49b5b7(++_0x453065);}(_0xadf0,0x12d));var _0x0adf=function(_0x342a3a,_0x30d05a){_0x342a3a=_0x342a3a-0x0;var _0x1f2213=_0xadf0[_0x342a3a];return _0x1f2213;};'use strict';var _=require('lodash');var util=require(_0x0adf('0x0'));var moment=require(_0x0adf('0x1'));var BPromise=require(_0x0adf('0x2'));var rs=require(_0x0adf('0x3'));var fs=require('fs');var Redis=require(_0x0adf('0x4'));var db=require(_0x0adf('0x5'))['db'];var utils=require(_0x0adf('0x6'));var logger=require('../../config/logger')(_0x0adf('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});config[_0x0adf('0x8')]=_[_0x0adf('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x0adf('0xa'))(new Redis(config[_0x0adf('0x8')]));require('./mailMessage.socket')[_0x0adf('0xb')](socket);function respondWithRpcPromise(_0x1aac49,_0x5cb4d9,_0x4712d7){return new BPromise(function(_0x169c4c,_0x4d7775){return client['request'](_0x1aac49,_0x4712d7)[_0x0adf('0xc')](function(_0x43cbf5){logger[_0x0adf('0xd')](_0x0adf('0xe'),_0x5cb4d9,_0x0adf('0xf'));logger['debug'](_0x0adf('0x10'),_0x5cb4d9,_0x0adf('0xf'),JSON['stringify'](_0x43cbf5));if(_0x43cbf5[_0x0adf('0x11')]){if(_0x43cbf5['error'][_0x0adf('0x12')]===0x1f4){logger['error'](_0x0adf('0xe'),_0x5cb4d9,_0x43cbf5[_0x0adf('0x11')][_0x0adf('0x13')]);return _0x4d7775(_0x43cbf5[_0x0adf('0x11')][_0x0adf('0x13')]);}logger[_0x0adf('0x11')](_0x0adf('0xe'),_0x5cb4d9,_0x43cbf5[_0x0adf('0x11')]['message']);return _0x169c4c(_0x43cbf5[_0x0adf('0x11')][_0x0adf('0x13')]);}else{logger['info'](_0x0adf('0xe'),_0x5cb4d9,'request\x20sent');_0x169c4c(_0x43cbf5[_0x0adf('0x14')][_0x0adf('0x13')]);}})[_0x0adf('0x15')](function(_0x3170da){logger['error'](_0x0adf('0xe'),_0x5cb4d9,_0x3170da);_0x4d7775(_0x3170da);});});}exports[_0x0adf('0x16')]=function(_0x283f67){var _0x3f8b08=this;return new Promise(function(_0x420c4f,_0x42f1d6){return db['MailMessage'][_0x0adf('0x17')](_0x283f67[_0x0adf('0x18')],{'raw':_0x283f67[_0x0adf('0x19')]?_0x283f67[_0x0adf('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x0adf('0xc')](function(_0xa39e65){logger[_0x0adf('0xd')]('CreateMailMessage',_0x283f67);logger[_0x0adf('0x1a')](_0x0adf('0x16'),_0x283f67,JSON[_0x0adf('0x1b')](_0xa39e65));_0x420c4f(_0xa39e65);})[_0x0adf('0x15')](function(_0x2b6a57){logger[_0x0adf('0x11')]('CreateMailMessage',_0x2b6a57[_0x0adf('0x13')],_0x283f67);_0x42f1d6(_0x3f8b08[_0x0adf('0x11')](0x1f4,_0x2b6a57[_0x0adf('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89a6=['register','mailMessage:','./mailMessage.events','save','remove','update','emit','removeListener'];(function(_0x2aa7c9,_0x134c36){var _0x4ec552=function(_0x1972da){while(--_0x1972da){_0x2aa7c9['push'](_0x2aa7c9['shift']());}};_0x4ec552(++_0x134c36);}(_0x89a6,0x6a));var _0x689a=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x89a6[_0x122ef9];return _0x42fba0;};'use strict';var MailMessageEvents=require(_0x689a('0x0'));var events=[_0x689a('0x1'),_0x689a('0x2'),_0x689a('0x3')];function createListener(_0x438a92,_0x412437){return function(_0x4e0cfe){_0x412437[_0x689a('0x4')](_0x438a92,_0x4e0cfe);};}function removeListener(_0x2b18a0,_0x7e6da7){return function(){MailMessageEvents[_0x689a('0x5')](_0x2b18a0,_0x7e6da7);};}exports[_0x689a('0x6')]=function(_0x373279){for(var _0x3162f1=0x0,_0x567f16=events['length'];_0x3162f1<_0x567f16;_0x3162f1++){var _0x464347=events[_0x3162f1];var _0x13ca13=createListener(_0x689a('0x7')+_0x464347,_0x373279);MailMessageEvents['on'](_0x464347,_0x13ca13);}};
\ No newline at end of file
+var _0xb663=['mailMessage:','./mailMessage.events','save','update','emit','removeListener','register','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb663,0x161));var _0x3b66=function(_0x3df576,_0x545332){_0x3df576=_0x3df576-0x0;var _0x5f4825=_0xb663[_0x3df576];return _0x5f4825;};'use strict';var MailMessageEvents=require(_0x3b66('0x0'));var events=[_0x3b66('0x1'),'remove',_0x3b66('0x2')];function createListener(_0x34e448,_0x2c51d5){return function(_0x217f52){_0x2c51d5[_0x3b66('0x3')](_0x34e448,_0x217f52);};}function removeListener(_0x42619b,_0x497e49){return function(){MailMessageEvents[_0x3b66('0x4')](_0x42619b,_0x497e49);};}exports[_0x3b66('0x5')]=function(_0x2e6d4d){for(var _0x1db556=0x0,_0x16691d=events[_0x3b66('0x6')];_0x1db556<_0x16691d;_0x1db556++){var _0x29f112=events[_0x1db556];var _0x1d3bb1=createListener(_0x3b66('0x7')+_0x29f112,_0x2e6d4d);MailMessageEvents['on'](_0x29f112,_0x1d3bb1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0663=['show','/:id/members','getMembers','getTeams','/:id/users','getAgents','post','create','addAgents','put','delete','destroy','/:id/teams','removeAgents','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueue.controller','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0xa73047,_0x167ec5){var _0x3ef35d=function(_0x54b725){while(--_0x54b725){_0xa73047['push'](_0xa73047['shift']());}};_0x3ef35d(++_0x167ec5);}(_0x0663,0xda));var _0x3066=function(_0x393c1a,_0x2a06cb){_0x393c1a=_0x393c1a-0x0;var _0x19804c=_0x0663[_0x393c1a];return _0x19804c;};'use strict';var multer=require(_0x3066('0x0'));var util=require(_0x3066('0x1'));var path=require(_0x3066('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x3066('0x3')]();var auth=require(_0x3066('0x4'));var interaction=require(_0x3066('0x5'));var config=require(_0x3066('0x6'));var controller=require(_0x3066('0x7'));router[_0x3066('0x8')]('/',auth[_0x3066('0x9')](),controller[_0x3066('0xa')]);router['get'](_0x3066('0xb'),auth['isAuthenticated'](),controller[_0x3066('0xc')]);router[_0x3066('0x8')](_0x3066('0xd'),auth[_0x3066('0x9')](),controller[_0x3066('0xe')]);router[_0x3066('0x8')](_0x3066('0xf'),auth['isAuthenticated'](),controller[_0x3066('0x10')]);router[_0x3066('0x8')]('/:id/teams',auth['isAuthenticated'](),controller[_0x3066('0x11')]);router['get'](_0x3066('0x12'),auth[_0x3066('0x9')](),controller[_0x3066('0x13')]);router[_0x3066('0x14')]('/',auth['isAuthenticated'](),controller[_0x3066('0x15')]);router[_0x3066('0x14')]('/:id/teams',auth[_0x3066('0x9')](),controller['addTeams']);router['post'](_0x3066('0x12'),auth[_0x3066('0x9')](),controller[_0x3066('0x16')]);router[_0x3066('0x17')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x3066('0x18')](_0x3066('0xd'),auth['isAuthenticated'](),controller[_0x3066('0x19')]);router[_0x3066('0x18')](_0x3066('0x1a'),auth[_0x3066('0x9')](),controller['removeTeams']);router[_0x3066('0x18')](_0x3066('0x12'),auth[_0x3066('0x9')](),controller[_0x3066('0x1b')]);module[_0x3066('0x1c')]=router;
\ No newline at end of file
+var _0x935d=['isAuthenticated','index','get','/describe','/:id','show','/:id/members','getMembers','getTeams','/:id/users','getAgents','post','create','/:id/teams','put','update','delete','destroy','removeTeams','removeAgents','path','connect-timeout','express','../../components/auth/service','../../config/environment','./mailQueue.controller'];(function(_0x1a1231,_0x55ede0){var _0x1fd00b=function(_0xcaa284){while(--_0xcaa284){_0x1a1231['push'](_0x1a1231['shift']());}};_0x1fd00b(++_0x55ede0);}(_0x935d,0x1b4));var _0xd935=function(_0x3987a1,_0x447793){_0x3987a1=_0x3987a1-0x0;var _0xe2596e=_0x935d[_0x3987a1];return _0xe2596e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xd935('0x0'));var timeout=require(_0xd935('0x1'));var express=require(_0xd935('0x2'));var router=express['Router']();var auth=require(_0xd935('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xd935('0x4'));var controller=require(_0xd935('0x5'));router['get']('/',auth[_0xd935('0x6')](),controller[_0xd935('0x7')]);router[_0xd935('0x8')](_0xd935('0x9'),auth[_0xd935('0x6')](),controller['describe']);router[_0xd935('0x8')](_0xd935('0xa'),auth[_0xd935('0x6')](),controller[_0xd935('0xb')]);router[_0xd935('0x8')](_0xd935('0xc'),auth[_0xd935('0x6')](),controller[_0xd935('0xd')]);router[_0xd935('0x8')]('/:id/teams',auth[_0xd935('0x6')](),controller[_0xd935('0xe')]);router['get'](_0xd935('0xf'),auth[_0xd935('0x6')](),controller[_0xd935('0x10')]);router[_0xd935('0x11')]('/',auth['isAuthenticated'](),controller[_0xd935('0x12')]);router['post'](_0xd935('0x13'),auth[_0xd935('0x6')](),controller['addTeams']);router[_0xd935('0x11')](_0xd935('0xf'),auth['isAuthenticated'](),controller['addAgents']);router[_0xd935('0x14')](_0xd935('0xa'),auth[_0xd935('0x6')](),controller[_0xd935('0x15')]);router[_0xd935('0x16')](_0xd935('0xa'),auth[_0xd935('0x6')](),controller[_0xd935('0x17')]);router[_0xd935('0x16')]('/:id/teams',auth['isAuthenticated'](),controller[_0xd935('0x18')]);router[_0xd935('0x16')](_0xd935('0xf'),auth[_0xd935('0x6')](),controller[_0xd935('0x19')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bb0=['INTEGER','beepall','exports','STRING','name'];(function(_0x3b0a08,_0x252342){var _0x1f5faa=function(_0x128b43){while(--_0x128b43){_0x3b0a08['push'](_0x3b0a08['shift']());}};_0x1f5faa(++_0x252342);}(_0x7bb0,0xa7));var _0x07bb=function(_0x5c5127,_0x4ee5af){_0x5c5127=_0x5c5127-0x0;var _0x4f34dc=_0x7bb0[_0x5c5127];return _0x4f34dc;};'use strict';var Sequelize=require('sequelize');module[_0x07bb('0x0')]={'name':{'type':Sequelize[_0x07bb('0x1')],'unique':_0x07bb('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x07bb('0x1')]},'timeout':{'type':Sequelize[_0x07bb('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM']('rrmemory',_0x07bb('0x4'),'roundrobin')}};
\ No newline at end of file
+var _0xd625=['rrmemory','beepall','roundrobin','sequelize','exports','STRING','name','ENUM'];(function(_0x18b5fd,_0x5ea562){var _0x1adb88=function(_0x4c1349){while(--_0x4c1349){_0x18b5fd['push'](_0x18b5fd['shift']());}};_0x1adb88(++_0x5ea562);}(_0xd625,0xbb));var _0x5d62=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xd625[_0x187ee1];return _0x388160;};'use strict';var Sequelize=require(_0x5d62('0x0'));module[_0x5d62('0x1')]={'name':{'type':Sequelize[_0x5d62('0x2')],'unique':_0x5d62('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x5d62('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x5d62('0x4')](_0x5d62('0x5'),_0x5d62('0x6'),_0x5d62('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7d6=['spread','userMailQueue:save','isArray','emit','nolimit','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/environment','redis','localhost','./mailQueue.socket','sendStatus','status','end','json','offset','Content-Range','apply','reject','save','then','name','send','MailQueue','model','keys','dateStart','query','dateEnd','attributes','intersection','fields','length','hasOwnProperty','limit','order','sort','where','filters','add','day','merge','map','filter','options','count','include','findAll','rows','show','params','rawAttributes','includeAll','find','catch','create','body','update','describe','getMembers','findOne','UserMailQueue','pick','MailQueueId','User','findAndCountAll','UserId','agent','mailPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','ids','Agents','union','addAgents','penalty','addTeams','removeAgents','omit'];(function(_0x47a37c,_0x34f9bf){var _0x94c93a=function(_0x392987){while(--_0x392987){_0x47a37c['push'](_0x47a37c['shift']());}};_0x94c93a(++_0x34f9bf);}(_0xe7d6,0xd8));var _0x6e7d=function(_0x1ba153,_0x6643ee){_0x1ba153=_0x1ba153-0x0;var _0x32b443=_0xe7d6[_0x1ba153];return _0x32b443;};'use strict';var pdf=require(_0x6e7d('0x0'));var emlformat=require(_0x6e7d('0x1'));var rimraf=require(_0x6e7d('0x2'));var zipdir=require(_0x6e7d('0x3'));var jsonpatch=require(_0x6e7d('0x4'));var rp=require(_0x6e7d('0x5'));var moment=require('moment');var BPromise=require(_0x6e7d('0x6'));var Mustache=require(_0x6e7d('0x7'));var util=require(_0x6e7d('0x8'));var path=require(_0x6e7d('0x9'));var sox=require(_0x6e7d('0xa'));var csv=require(_0x6e7d('0xb'));var ejs=require(_0x6e7d('0xc'));var fs=require('fs');var _=require(_0x6e7d('0xd'));var squel=require(_0x6e7d('0xe'));var crypto=require(_0x6e7d('0xf'));var jsforce=require(_0x6e7d('0x10'));var deskjs=require(_0x6e7d('0x11'));var toCsv=require(_0x6e7d('0xb'));var querystring=require(_0x6e7d('0x12'));var Papa=require(_0x6e7d('0x13'));var qs=require(_0x6e7d('0x14'));var logger=require('../../config/logger')(_0x6e7d('0x15'));var utils=require('../../config/utils');var config=require(_0x6e7d('0x16'));var db=require('../../mysqldb')['db'];config[_0x6e7d('0x17')]=_['defaults'](config[_0x6e7d('0x17')],{'host':_0x6e7d('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x6e7d('0x17')]);require(_0x6e7d('0x19'))['register'](socket);function respondWithStatusCode(_0x141e4c,_0x4946dd){_0x4946dd=_0x4946dd||0xcc;return function(_0x224e61){if(_0x224e61){return _0x141e4c[_0x6e7d('0x1a')](_0x4946dd);}return _0x141e4c[_0x6e7d('0x1b')](_0x4946dd)[_0x6e7d('0x1c')]();};}function respondWithResult(_0x2e6406,_0x37dd9f){_0x37dd9f=_0x37dd9f||0xc8;return function(_0x4047da){if(_0x4047da){return _0x2e6406[_0x6e7d('0x1b')](_0x37dd9f)[_0x6e7d('0x1d')](_0x4047da);}};}function respondWithFilteredResult(_0x3b41e8,_0x31a37e){return function(_0x436019){if(_0x436019){var _0x496b47=_0x436019['count'],_0x3f1d22=_0x31a37e['offset'],_0x523251=_0x31a37e[_0x6e7d('0x1e')]+_0x31a37e['limit'],_0x3a36a9;if(_0x523251>=_0x496b47){_0x523251=_0x496b47;_0x3a36a9=0xc8;}else{_0x3a36a9=0xce;}_0x3b41e8[_0x6e7d('0x1b')](_0x3a36a9);return _0x3b41e8['set'](_0x6e7d('0x1f'),_0x3f1d22+'-'+_0x523251+'/'+_0x496b47)[_0x6e7d('0x1d')](_0x436019);}return null;};}function patchUpdates(_0x366c8e){return function(_0x50f294){try{jsonpatch[_0x6e7d('0x20')](_0x50f294,_0x366c8e,!![]);}catch(_0x2d3ea2){return BPromise[_0x6e7d('0x21')](_0x2d3ea2);}return _0x50f294[_0x6e7d('0x22')]();};}function saveUpdates(_0x3de7c1,_0x5553a4){return function(_0x11f553){if(_0x11f553){return _0x11f553['update'](_0x3de7c1)[_0x6e7d('0x23')](function(_0x5007ea){return _0x5007ea;});}return null;};}function removeEntity(_0x3467ef,_0x10dff8){return function(_0x214297){if(_0x214297){return _0x214297['destroy']()['then'](function(){_0x3467ef[_0x6e7d('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c2c16,_0x5c1e8e){return function(_0x1e2afe){if(!_0x1e2afe){_0x3c2c16[_0x6e7d('0x1a')](0x194);}return _0x1e2afe;};}function handleError(_0x9a34ce,_0x1778da){_0x1778da=_0x1778da||0x1f4;return function(_0x2af33e){logger['error'](_0x2af33e['stack']);if(_0x2af33e['name']){delete _0x2af33e[_0x6e7d('0x24')];}_0x9a34ce['status'](_0x1778da)[_0x6e7d('0x25')](_0x2af33e);};}exports['index']=function(_0x1819a6,_0x4e7841){var _0x21fc5b={},_0x2284d1={},_0x239680={'count':0x0,'rows':[]};var _0x3d0c1b=db[_0x6e7d('0x26')]['rawAttributes'];_0x2284d1[_0x6e7d('0x27')]=_[_0x6e7d('0x28')](_0x3d0c1b);var _0x37eb1b={'dateStart':_0x1819a6['query'][_0x6e7d('0x29')],'dateEnd':_0x1819a6[_0x6e7d('0x2a')][_0x6e7d('0x2b')]};delete _0x1819a6['query'][_0x6e7d('0x29')];delete _0x1819a6[_0x6e7d('0x2a')][_0x6e7d('0x2b')];_0x2284d1[_0x6e7d('0x2a')]=_['keys'](_0x1819a6[_0x6e7d('0x2a')]);_0x2284d1['filters']=_['intersection'](_0x2284d1[_0x6e7d('0x27')],_0x2284d1['query']);_0x21fc5b[_0x6e7d('0x2c')]=_[_0x6e7d('0x2d')](_0x2284d1[_0x6e7d('0x27')],qs['fields'](_0x1819a6['query'][_0x6e7d('0x2e')]));_0x21fc5b[_0x6e7d('0x2c')]=_0x21fc5b['attributes'][_0x6e7d('0x2f')]?_0x21fc5b[_0x6e7d('0x2c')]:_0x2284d1[_0x6e7d('0x27')];if(!_0x1819a6['query'][_0x6e7d('0x30')]('nolimit')){_0x21fc5b[_0x6e7d('0x31')]=qs[_0x6e7d('0x31')](_0x1819a6[_0x6e7d('0x2a')][_0x6e7d('0x31')]);_0x21fc5b[_0x6e7d('0x1e')]=qs[_0x6e7d('0x1e')](_0x1819a6['query'][_0x6e7d('0x1e')]);}_0x21fc5b[_0x6e7d('0x32')]=qs[_0x6e7d('0x33')](_0x1819a6[_0x6e7d('0x2a')][_0x6e7d('0x33')]);_0x21fc5b[_0x6e7d('0x34')]=qs[_0x6e7d('0x35')](_['pick'](_0x1819a6[_0x6e7d('0x2a')],_0x2284d1[_0x6e7d('0x35')]));if(_0x37eb1b[_0x6e7d('0x29')]){if(_0x37eb1b[_0x6e7d('0x2b')]){_0x37eb1b[_0x6e7d('0x2b')]=moment(_0x37eb1b['dateEnd'])[_0x6e7d('0x36')](0x1,_0x6e7d('0x37'));}else{_0x37eb1b[_0x6e7d('0x2b')]=moment(_0x37eb1b[_0x6e7d('0x29')])[_0x6e7d('0x36')](0x1,'day');}_[_0x6e7d('0x38')](_0x21fc5b[_0x6e7d('0x34')],{'createdAt':{'$gte':_0x37eb1b[_0x6e7d('0x29')],'$lte':_0x37eb1b[_0x6e7d('0x2b')]}});}if(_0x1819a6['query']['filter']){_0x21fc5b['where']=_[_0x6e7d('0x38')](_0x21fc5b['where'],{'$or':_[_0x6e7d('0x39')](_0x21fc5b[_0x6e7d('0x2c')],function(_0x6e9f10){var _0x8625fb={};_0x8625fb[_0x6e9f10]={'$like':'%'+_0x1819a6[_0x6e7d('0x2a')][_0x6e7d('0x3a')]+'%'};return _0x8625fb;})});}_0x21fc5b=_[_0x6e7d('0x38')]({},_0x21fc5b,_0x1819a6[_0x6e7d('0x3b')]);var _0x556f5e={'where':_0x21fc5b[_0x6e7d('0x34')]};return db[_0x6e7d('0x26')]['count'](_0x556f5e)[_0x6e7d('0x23')](function(_0xae663a){_0x239680[_0x6e7d('0x3c')]=_0xae663a;if(_0x1819a6[_0x6e7d('0x2a')]['includeAll']){_0x21fc5b[_0x6e7d('0x3d')]=[{'all':!![]}];}return db[_0x6e7d('0x26')][_0x6e7d('0x3e')](_0x21fc5b);})[_0x6e7d('0x23')](function(_0x732049){_0x239680[_0x6e7d('0x3f')]=_0x732049;return _0x239680;})[_0x6e7d('0x23')](respondWithFilteredResult(_0x4e7841,_0x21fc5b))['catch'](handleError(_0x4e7841,null));};exports[_0x6e7d('0x40')]=function(_0x57f869,_0xc7c590){var _0x313463={'raw':!![],'where':{'id':_0x57f869[_0x6e7d('0x41')]['id']}},_0x39859e={};_0x39859e['model']=_[_0x6e7d('0x28')](db['MailQueue'][_0x6e7d('0x42')]);_0x39859e[_0x6e7d('0x2a')]=_[_0x6e7d('0x28')](_0x57f869['query']);_0x39859e['filters']=_[_0x6e7d('0x2d')](_0x39859e[_0x6e7d('0x27')],_0x39859e[_0x6e7d('0x2a')]);_0x313463[_0x6e7d('0x2c')]=_[_0x6e7d('0x2d')](_0x39859e['model'],qs[_0x6e7d('0x2e')](_0x57f869['query'][_0x6e7d('0x2e')]));_0x313463['attributes']=_0x313463['attributes'][_0x6e7d('0x2f')]?_0x313463['attributes']:_0x39859e[_0x6e7d('0x27')];if(_0x57f869[_0x6e7d('0x2a')][_0x6e7d('0x43')]){_0x313463[_0x6e7d('0x3d')]=[{'all':!![]}];}_0x313463=_[_0x6e7d('0x38')]({},_0x313463,_0x57f869[_0x6e7d('0x3b')]);return db[_0x6e7d('0x26')][_0x6e7d('0x44')](_0x313463)[_0x6e7d('0x23')](handleEntityNotFound(_0xc7c590,null))[_0x6e7d('0x23')](respondWithResult(_0xc7c590,null))[_0x6e7d('0x45')](handleError(_0xc7c590,null));};exports[_0x6e7d('0x46')]=function(_0x4c9378,_0x380544){return db['MailQueue'][_0x6e7d('0x46')](_0x4c9378[_0x6e7d('0x47')],{})['then'](respondWithResult(_0x380544,0xc9))[_0x6e7d('0x45')](handleError(_0x380544,null));};exports[_0x6e7d('0x48')]=function(_0x2b3480,_0x2da489){if(_0x2b3480[_0x6e7d('0x47')]['id']){delete _0x2b3480['body']['id'];}return db[_0x6e7d('0x26')][_0x6e7d('0x44')]({'where':{'id':_0x2b3480[_0x6e7d('0x41')]['id']}})[_0x6e7d('0x23')](handleEntityNotFound(_0x2da489,null))[_0x6e7d('0x23')](saveUpdates(_0x2b3480['body'],null))['then'](respondWithResult(_0x2da489,null))[_0x6e7d('0x45')](handleError(_0x2da489,null));};exports['destroy']=function(_0x1c2953,_0x2d8176){return db[_0x6e7d('0x26')][_0x6e7d('0x44')]({'where':{'id':_0x1c2953[_0x6e7d('0x41')]['id']}})[_0x6e7d('0x23')](handleEntityNotFound(_0x2d8176,null))[_0x6e7d('0x23')](removeEntity(_0x2d8176,null))['catch'](handleError(_0x2d8176,null));};exports[_0x6e7d('0x49')]=function(_0x129ca8,_0x4ae31d){return db[_0x6e7d('0x26')]['describe']()[_0x6e7d('0x23')](respondWithResult(_0x4ae31d,null))['catch'](handleError(_0x4ae31d,null));};exports[_0x6e7d('0x4a')]=function(_0x21252b,_0xb51592,_0x39ab1c){var _0x72aa9f={'raw':!![],'where':{}},_0x236967={},_0x4e2b74;return db[_0x6e7d('0x26')][_0x6e7d('0x4b')]({'where':{'id':_0x21252b[_0x6e7d('0x41')]['id']}})[_0x6e7d('0x23')](handleEntityNotFound(_0xb51592,null))['then'](function(_0x528045){if(_0x528045){_0x4e2b74=_0x528045['get']({'plain':!![]});_0x236967['model']=_[_0x6e7d('0x28')](db[_0x6e7d('0x4c')][_0x6e7d('0x42')]);_0x236967['query']=_[_0x6e7d('0x28')](_0x21252b[_0x6e7d('0x2a')]);_0x236967['filters']=_['intersection'](_0x236967[_0x6e7d('0x27')],_0x236967[_0x6e7d('0x2a')]);_0x72aa9f[_0x6e7d('0x2c')]=_[_0x6e7d('0x2d')](_0x236967[_0x6e7d('0x27')],qs[_0x6e7d('0x2e')](_0x21252b[_0x6e7d('0x2a')]['fields']));_0x72aa9f[_0x6e7d('0x2c')]=_0x72aa9f[_0x6e7d('0x2c')][_0x6e7d('0x2f')]?_0x72aa9f[_0x6e7d('0x2c')]:_0x236967[_0x6e7d('0x27')];if(!_0x21252b[_0x6e7d('0x2a')][_0x6e7d('0x30')]('nolimit')){_0x72aa9f[_0x6e7d('0x31')]=qs[_0x6e7d('0x31')](_0x21252b['query'][_0x6e7d('0x31')]);_0x72aa9f[_0x6e7d('0x1e')]=qs['offset'](_0x21252b['query']['offset']);}_0x72aa9f[_0x6e7d('0x32')]=qs['sort'](_0x21252b[_0x6e7d('0x2a')][_0x6e7d('0x33')]);_0x72aa9f[_0x6e7d('0x34')]=qs[_0x6e7d('0x35')](_[_0x6e7d('0x4d')](_0x21252b[_0x6e7d('0x2a')],_0x236967['filters']));_0x72aa9f[_0x6e7d('0x34')][_0x6e7d('0x4e')]=_0x528045['id'];if(_0x21252b[_0x6e7d('0x2a')]['filter']){_0x72aa9f[_0x6e7d('0x34')]=_[_0x6e7d('0x38')](_0x72aa9f[_0x6e7d('0x34')],{'$or':_[_0x6e7d('0x39')](_0x72aa9f['attributes'],function(_0x4a45e8){var _0x57069c={};_0x57069c[_0x4a45e8]={'$like':'%'+_0x21252b[_0x6e7d('0x2a')]['filter']+'%'};return _0x57069c;})});}_0x72aa9f=_['merge']({},_0x72aa9f,_0x21252b[_0x6e7d('0x3b')]);return db[_0x6e7d('0x4c')][_0x6e7d('0x3e')](_0x72aa9f);}})['then'](function(_0x171b41){if(_0x171b41){return db[_0x6e7d('0x4f')][_0x6e7d('0x50')]({'where':{'id':_[_0x6e7d('0x39')](_0x171b41,_0x6e7d('0x51')),'role':_0x6e7d('0x52')},'attributes':['id',_0x6e7d('0x24'),_0x6e7d('0x53'),_0x6e7d('0x54'),_0x6e7d('0x55')]});}})[_0x6e7d('0x23')](function(_0x49b98d){if(_0x49b98d){return{'count':_0x49b98d[_0x6e7d('0x3c')],'rows':_[_0x6e7d('0x39')](_0x49b98d['rows'],function(_0x2d1124){return{'membername':_0x2d1124[_0x6e7d('0x24')],'UserId':_0x2d1124['id'],'queue_name':_0x4e2b74[_0x6e7d('0x24')],'MailQueueId':_0x4e2b74['id'],'interface':util[_0x6e7d('0x56')](_0x6e7d('0x57'),_0x6e7d('0x58'),_0x2d1124[_0x6e7d('0x24')]),'penalty':0x0,'paused':_0x2d1124[_0x6e7d('0x53')],'createdAt':_0x2d1124['createdAt'],'updatedAt':_0x2d1124['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x6e7d('0x23')](respondWithFilteredResult(_0xb51592,_0x72aa9f))['catch'](handleError(_0xb51592,null));};exports[_0x6e7d('0x59')]=function(_0x363e8e,_0x54c824,_0x45d042){var _0x1a44a1={};var _0x203200={};var _0x5058e5;var _0x374c5b;return db[_0x6e7d('0x26')]['findOne']({'where':{'id':_0x363e8e['params']['id']}})[_0x6e7d('0x23')](handleEntityNotFound(_0x54c824,null))[_0x6e7d('0x23')](function(_0x23783b){if(_0x23783b){_0x5058e5=_0x23783b;_0x203200['model']=_['keys'](db[_0x6e7d('0x5a')][_0x6e7d('0x42')]);_0x203200[_0x6e7d('0x2a')]=_['keys'](_0x363e8e['query']);_0x203200[_0x6e7d('0x35')]=_['intersection'](_0x203200['model'],_0x203200[_0x6e7d('0x2a')]);_0x1a44a1['attributes']=_[_0x6e7d('0x2d')](_0x203200[_0x6e7d('0x27')],qs['fields'](_0x363e8e['query'][_0x6e7d('0x2e')]));_0x1a44a1[_0x6e7d('0x2c')]=_0x1a44a1['attributes'][_0x6e7d('0x2f')]?_0x1a44a1[_0x6e7d('0x2c')]:_0x203200[_0x6e7d('0x27')];_0x1a44a1['order']=qs[_0x6e7d('0x33')](_0x363e8e[_0x6e7d('0x2a')]['sort']);_0x1a44a1[_0x6e7d('0x34')]=qs[_0x6e7d('0x35')](_[_0x6e7d('0x4d')](_0x363e8e[_0x6e7d('0x2a')],_0x203200[_0x6e7d('0x35')]));if(_0x363e8e[_0x6e7d('0x2a')][_0x6e7d('0x3a')]){_0x1a44a1[_0x6e7d('0x34')]=_[_0x6e7d('0x38')](_0x1a44a1[_0x6e7d('0x34')],{'$or':_[_0x6e7d('0x39')](_0x1a44a1[_0x6e7d('0x2c')],function(_0x52dac9){var _0xaa7a4c={};_0xaa7a4c[_0x52dac9]={'$like':'%'+_0x363e8e['query'][_0x6e7d('0x3a')]+'%'};return _0xaa7a4c;})});}_0x1a44a1=_[_0x6e7d('0x38')]({},_0x1a44a1,_0x363e8e[_0x6e7d('0x3b')]);return _0x5058e5['getTeams'](_0x1a44a1);}})[_0x6e7d('0x23')](function(_0x3ee47b){if(_0x3ee47b){_0x374c5b=_0x3ee47b[_0x6e7d('0x2f')];if(!_0x363e8e[_0x6e7d('0x2a')][_0x6e7d('0x30')]('nolimit')){_0x1a44a1['limit']=qs[_0x6e7d('0x31')](_0x363e8e[_0x6e7d('0x2a')][_0x6e7d('0x31')]);_0x1a44a1['offset']=qs[_0x6e7d('0x1e')](_0x363e8e[_0x6e7d('0x2a')][_0x6e7d('0x1e')]);}return _0x5058e5[_0x6e7d('0x59')](_0x1a44a1);}})[_0x6e7d('0x23')](function(_0x40f723){if(_0x40f723){return _0x40f723?{'count':_0x374c5b,'rows':_0x40f723}:null;}})[_0x6e7d('0x23')](respondWithResult(_0x54c824,null))[_0x6e7d('0x45')](handleError(_0x54c824,null));};exports['addTeams']=function(_0x4f0a8c,_0x5bdaed,_0x112127){var _0x324300=[];var _0x1dd213;return db[_0x6e7d('0x5a')]['findAll']({'where':{'id':_0x4f0a8c[_0x6e7d('0x47')][_0x6e7d('0x5b')]},'attributes':['id'],'include':[{'model':db[_0x6e7d('0x4f')],'as':_0x6e7d('0x5c'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x5f3a15){if(_0x5f3a15){for(var _0x11247e=0x0;_0x11247e<_0x5f3a15[_0x6e7d('0x2f')];_0x11247e+=0x1){for(var _0x9e1d5c=0x0;_0x9e1d5c<_0x5f3a15[_0x11247e]['Agents'][_0x6e7d('0x2f')];_0x9e1d5c+=0x1){_0x324300=_[_0x6e7d('0x5d')](_0x324300,[_0x5f3a15[_0x11247e]['Agents'][_0x9e1d5c]['id']]);}}return _0x324300;}})['then'](function(_0x3d1030){if(_0x3d1030){return db[_0x6e7d('0x26')]['find']({'where':{'id':_0x4f0a8c[_0x6e7d('0x41')]['id']}});}})[_0x6e7d('0x23')](function(_0x6d6f58){if(_0x6d6f58){_0x1dd213=_0x6d6f58;return _0x1dd213[_0x6e7d('0x5e')](_0x324300,{'penalty':_0x4f0a8c[_0x6e7d('0x47')][_0x6e7d('0x5f')]});}})[_0x6e7d('0x23')](function(_0x3b3b70){if(_0x3b3b70){return _0x1dd213[_0x6e7d('0x60')](_0x4f0a8c[_0x6e7d('0x47')]['ids']);}})[_0x6e7d('0x23')](handleEntityNotFound(_0x5bdaed,null))[_0x6e7d('0x23')](respondWithStatusCode(_0x5bdaed,null))[_0x6e7d('0x45')](handleError(_0x5bdaed,null));};exports['removeTeams']=function(_0x4a1266,_0x273574,_0x474f94){var _0x2d1d76=[];var _0xeefda4;return db[_0x6e7d('0x5a')]['findAll']({'where':{'id':_0x4a1266['query']['ids']},'attributes':['id'],'include':[{'model':db[_0x6e7d('0x4f')],'as':_0x6e7d('0x5c'),'attributes':['id'],'raw':!![]}]})[_0x6e7d('0x23')](function(_0x268107){if(_0x268107){for(var _0x3ce154=0x0;_0x3ce154<_0x268107[_0x6e7d('0x2f')];_0x3ce154+=0x1){for(var _0x494c5a=0x0;_0x494c5a<_0x268107[_0x3ce154][_0x6e7d('0x5c')][_0x6e7d('0x2f')];_0x494c5a+=0x1){_0x2d1d76=_[_0x6e7d('0x5d')](_0x2d1d76,[_0x268107[_0x3ce154]['Agents'][_0x494c5a]['id']]);}}return _0x2d1d76;}})[_0x6e7d('0x23')](function(_0x19c69e){if(_0x19c69e){return db[_0x6e7d('0x26')][_0x6e7d('0x44')]({'where':{'id':_0x4a1266['params']['id']}});}})[_0x6e7d('0x23')](function(_0x5009dd){if(_0x5009dd){_0xeefda4=_0x5009dd;return _0xeefda4[_0x6e7d('0x61')](_0x2d1d76);}})[_0x6e7d('0x23')](function(_0xc49f7b){if(_0xeefda4){return _0xeefda4['removeTeams'](_0x4a1266['query'][_0x6e7d('0x5b')]);}})['then'](handleEntityNotFound(_0x273574,null))[_0x6e7d('0x23')](respondWithStatusCode(_0x273574,null))[_0x6e7d('0x45')](handleError(_0x273574,null));};exports[_0x6e7d('0x5e')]=function(_0x5a4ec1,_0x531fb2,_0x1e1e0a){return db[_0x6e7d('0x26')]['find']({'where':{'id':_0x5a4ec1[_0x6e7d('0x41')]['id']}})['then'](handleEntityNotFound(_0x531fb2,null))[_0x6e7d('0x23')](function(_0x311f88){if(_0x311f88){return _0x311f88[_0x6e7d('0x5e')](_0x5a4ec1[_0x6e7d('0x47')][_0x6e7d('0x5b')],_[_0x6e7d('0x62')](_0x5a4ec1[_0x6e7d('0x47')],[_0x6e7d('0x5b'),'id'])||{})[_0x6e7d('0x63')](function(_0x316de6){for(var _0x4d375e=0x0;_0x4d375e<_0x5a4ec1[_0x6e7d('0x47')]['ids'][_0x6e7d('0x2f')];_0x4d375e+=0x1){socket['emit'](_0x6e7d('0x64'),{'UserId':_0x5a4ec1[_0x6e7d('0x47')]['ids'][_0x4d375e],'MailQueueId':_0x5a4ec1[_0x6e7d('0x41')]['id']});}return _0x316de6;});}})[_0x6e7d('0x23')](respondWithResult(_0x531fb2,null))[_0x6e7d('0x45')](handleError(_0x531fb2,null));};exports[_0x6e7d('0x61')]=function(_0x1f0916,_0x39c1b2,_0x21e73f){var _0x55dbae;return db['MailQueue'][_0x6e7d('0x44')]({'where':{'id':_0x1f0916[_0x6e7d('0x41')]['id']}})[_0x6e7d('0x23')](handleEntityNotFound(_0x39c1b2,null))[_0x6e7d('0x23')](function(_0x10b050){if(_0x10b050){return _0x10b050[_0x6e7d('0x61')](_0x1f0916[_0x6e7d('0x2a')][_0x6e7d('0x5b')])[_0x6e7d('0x23')](function(_0x48cda9){if(_[_0x6e7d('0x65')](_0x1f0916[_0x6e7d('0x2a')][_0x6e7d('0x5b')])){for(var _0x4c2c82=0x0;_0x4c2c82<_0x1f0916[_0x6e7d('0x2a')][_0x6e7d('0x5b')]['length'];_0x4c2c82+=0x1){socket[_0x6e7d('0x66')]('userMailQueue:remove',{'UserId':_0x1f0916[_0x6e7d('0x2a')][_0x6e7d('0x5b')][_0x4c2c82],'MailQueueId':_0x1f0916['params']['id']});}}else{socket['emit']('userMailQueue:remove',{'UserId':_0x1f0916[_0x6e7d('0x2a')][_0x6e7d('0x5b')],'MailQueueId':_0x1f0916['params']['id']});}});}})[_0x6e7d('0x23')](respondWithStatusCode(_0x39c1b2,null))[_0x6e7d('0x45')](handleError(_0x39c1b2,null));};exports['getAgents']=function(_0x2732b1,_0x3a4bd9,_0x425b01){var _0x27d4a9={};var _0x25cb74={};var _0x59356f;var _0x53dbb3;return db[_0x6e7d('0x26')]['findOne']({'where':{'id':_0x2732b1[_0x6e7d('0x41')]['id']}})[_0x6e7d('0x23')](handleEntityNotFound(_0x3a4bd9,null))[_0x6e7d('0x23')](function(_0x372dd2){if(_0x372dd2){_0x59356f=_0x372dd2;_0x25cb74['model']=_[_0x6e7d('0x28')](db[_0x6e7d('0x4f')][_0x6e7d('0x42')]);_0x25cb74[_0x6e7d('0x2a')]=_[_0x6e7d('0x28')](_0x2732b1[_0x6e7d('0x2a')]);_0x25cb74[_0x6e7d('0x35')]=_[_0x6e7d('0x2d')](_0x25cb74[_0x6e7d('0x27')],_0x25cb74[_0x6e7d('0x2a')]);_0x27d4a9[_0x6e7d('0x2c')]=_[_0x6e7d('0x2d')](_0x25cb74[_0x6e7d('0x27')],qs[_0x6e7d('0x2e')](_0x2732b1['query'][_0x6e7d('0x2e')]));_0x27d4a9[_0x6e7d('0x2c')]=_0x27d4a9[_0x6e7d('0x2c')][_0x6e7d('0x2f')]?_0x27d4a9['attributes']:_0x25cb74[_0x6e7d('0x27')];_0x27d4a9[_0x6e7d('0x32')]=qs[_0x6e7d('0x33')](_0x2732b1[_0x6e7d('0x2a')]['sort']);_0x27d4a9[_0x6e7d('0x34')]=qs[_0x6e7d('0x35')](_[_0x6e7d('0x4d')](_0x2732b1[_0x6e7d('0x2a')],_0x25cb74['filters']));if(_0x2732b1[_0x6e7d('0x2a')][_0x6e7d('0x3a')]){_0x27d4a9[_0x6e7d('0x34')]=_[_0x6e7d('0x38')](_0x27d4a9[_0x6e7d('0x34')],{'$or':_['map'](_0x27d4a9[_0x6e7d('0x2c')],function(_0x29e5f3){var _0x20c6f8={};_0x20c6f8[_0x29e5f3]={'$like':'%'+_0x2732b1['query'][_0x6e7d('0x3a')]+'%'};return _0x20c6f8;})});}_0x27d4a9=_['merge']({},_0x27d4a9,_0x2732b1['options']);return _0x59356f['getAgents'](_0x27d4a9);}})['then'](function(_0x2303ec){if(_0x2303ec){_0x53dbb3=_0x2303ec[_0x6e7d('0x2f')];if(!_0x2732b1[_0x6e7d('0x2a')][_0x6e7d('0x30')](_0x6e7d('0x67'))){_0x27d4a9['limit']=qs[_0x6e7d('0x31')](_0x2732b1[_0x6e7d('0x2a')][_0x6e7d('0x31')]);_0x27d4a9['offset']=qs[_0x6e7d('0x1e')](_0x2732b1['query']['offset']);}return _0x59356f[_0x6e7d('0x68')](_0x27d4a9);}})[_0x6e7d('0x23')](function(_0x2e8e76){if(_0x2e8e76){return _0x2e8e76?{'count':_0x53dbb3,'rows':_0x2e8e76}:null;}})['then'](respondWithResult(_0x3a4bd9,null))['catch'](handleError(_0x3a4bd9,null));};
\ No newline at end of file
+var _0x5610=['Content-Range','apply','reject','save','update','destroy','end','error','name','send','index','MailQueue','rawAttributes','keys','query','dateEnd','dateStart','filters','intersection','attributes','model','fields','length','nolimit','pick','add','day','merge','filter','where','map','then','findAll','rows','show','params','includeAll','options','find','create','body','catch','describe','getMembers','findOne','UserMailQueue','hasOwnProperty','sort','MailQueueId','User','UserId','agent','mailPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','order','addTeams','ids','Agents','union','addAgents','penalty','removeTeams','removeAgents','omit','spread','emit','userMailQueue:save','isArray','userMailQueue:remove','getAgents','html-pdf','moment','bluebird','mustache','path','ejs','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./mailQueue.socket','register','sendStatus','status','json','count','offset','limit','set'];(function(_0x4e51df,_0x48afbf){var _0x123733=function(_0x4bede2){while(--_0x4bede2){_0x4e51df['push'](_0x4e51df['shift']());}};_0x123733(++_0x48afbf);}(_0x5610,0x120));var _0x0561=function(_0x5dd17d,_0x198092){_0x5dd17d=_0x5dd17d-0x0;var _0x22442d=_0x5610[_0x5dd17d];return _0x22442d;};'use strict';var pdf=require(_0x0561('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0561('0x1'));var BPromise=require(_0x0561('0x2'));var Mustache=require(_0x0561('0x3'));var util=require('util');var path=require(_0x0561('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0561('0x5'));var fs=require('fs');var _=require(_0x0561('0x6'));var squel=require('squel');var crypto=require(_0x0561('0x7'));var jsforce=require('jsforce');var deskjs=require(_0x0561('0x8'));var toCsv=require(_0x0561('0x9'));var querystring=require(_0x0561('0xa'));var Papa=require(_0x0561('0xb'));var Redis=require(_0x0561('0xc'));var qs=require(_0x0561('0xd'));var logger=require(_0x0561('0xe'))('api');var utils=require(_0x0561('0xf'));var config=require(_0x0561('0x10'));var db=require(_0x0561('0x11'))['db'];config[_0x0561('0x12')]=_['defaults'](config[_0x0561('0x12')],{'host':_0x0561('0x13'),'port':0x18eb});var socket=require(_0x0561('0x14'))(new Redis(config[_0x0561('0x12')]));require(_0x0561('0x15'))[_0x0561('0x16')](socket);function respondWithStatusCode(_0x15443f,_0x31f110){_0x31f110=_0x31f110||0xcc;return function(_0x1bf0b8){if(_0x1bf0b8){return _0x15443f[_0x0561('0x17')](_0x31f110);}return _0x15443f[_0x0561('0x18')](_0x31f110)['end']();};}function respondWithResult(_0x495c96,_0x13de20){_0x13de20=_0x13de20||0xc8;return function(_0x55829a){if(_0x55829a){return _0x495c96['status'](_0x13de20)[_0x0561('0x19')](_0x55829a);}};}function respondWithFilteredResult(_0x239b2c,_0x2a97a2){return function(_0x3776cf){if(_0x3776cf){var _0x38bcd7=_0x3776cf[_0x0561('0x1a')],_0xe901ef=_0x2a97a2['offset'],_0x3638e4=_0x2a97a2[_0x0561('0x1b')]+_0x2a97a2[_0x0561('0x1c')],_0x521259;if(_0x3638e4>=_0x38bcd7){_0x3638e4=_0x38bcd7;_0x521259=0xc8;}else{_0x521259=0xce;}_0x239b2c[_0x0561('0x18')](_0x521259);return _0x239b2c[_0x0561('0x1d')](_0x0561('0x1e'),_0xe901ef+'-'+_0x3638e4+'/'+_0x38bcd7)[_0x0561('0x19')](_0x3776cf);}return null;};}function patchUpdates(_0x434a5b){return function(_0x5d5bd3){try{jsonpatch[_0x0561('0x1f')](_0x5d5bd3,_0x434a5b,!![]);}catch(_0x597e1f){return BPromise[_0x0561('0x20')](_0x597e1f);}return _0x5d5bd3[_0x0561('0x21')]();};}function saveUpdates(_0x584009,_0x27efa0){return function(_0x29958f){if(_0x29958f){return _0x29958f[_0x0561('0x22')](_0x584009)['then'](function(_0x250602){return _0x250602;});}return null;};}function removeEntity(_0x4c8411,_0x2c9f65){return function(_0x58f089){if(_0x58f089){return _0x58f089[_0x0561('0x23')]()['then'](function(){_0x4c8411['status'](0xcc)[_0x0561('0x24')]();});}};}function handleEntityNotFound(_0x4408e9,_0x5d91e2){return function(_0x4966d5){if(!_0x4966d5){_0x4408e9['sendStatus'](0x194);}return _0x4966d5;};}function handleError(_0x56bed7,_0x2fdac3){_0x2fdac3=_0x2fdac3||0x1f4;return function(_0x308d17){logger[_0x0561('0x25')](_0x308d17['stack']);if(_0x308d17[_0x0561('0x26')]){delete _0x308d17[_0x0561('0x26')];}_0x56bed7['status'](_0x2fdac3)[_0x0561('0x27')](_0x308d17);};}exports[_0x0561('0x28')]=function(_0x102c6d,_0x79e53f){var _0x224260={},_0x3159c4={},_0x1a5633={'count':0x0,'rows':[]};var _0x16ed82=db[_0x0561('0x29')][_0x0561('0x2a')];_0x3159c4['model']=_[_0x0561('0x2b')](_0x16ed82);var _0x14208b={'dateStart':_0x102c6d[_0x0561('0x2c')]['dateStart'],'dateEnd':_0x102c6d[_0x0561('0x2c')][_0x0561('0x2d')]};delete _0x102c6d[_0x0561('0x2c')][_0x0561('0x2e')];delete _0x102c6d[_0x0561('0x2c')][_0x0561('0x2d')];_0x3159c4[_0x0561('0x2c')]=_['keys'](_0x102c6d['query']);_0x3159c4[_0x0561('0x2f')]=_[_0x0561('0x30')](_0x3159c4['model'],_0x3159c4[_0x0561('0x2c')]);_0x224260[_0x0561('0x31')]=_[_0x0561('0x30')](_0x3159c4[_0x0561('0x32')],qs[_0x0561('0x33')](_0x102c6d[_0x0561('0x2c')][_0x0561('0x33')]));_0x224260[_0x0561('0x31')]=_0x224260['attributes'][_0x0561('0x34')]?_0x224260[_0x0561('0x31')]:_0x3159c4[_0x0561('0x32')];if(!_0x102c6d[_0x0561('0x2c')]['hasOwnProperty'](_0x0561('0x35'))){_0x224260['limit']=qs[_0x0561('0x1c')](_0x102c6d[_0x0561('0x2c')][_0x0561('0x1c')]);_0x224260[_0x0561('0x1b')]=qs[_0x0561('0x1b')](_0x102c6d[_0x0561('0x2c')][_0x0561('0x1b')]);}_0x224260['order']=qs['sort'](_0x102c6d['query']['sort']);_0x224260['where']=qs['filters'](_[_0x0561('0x36')](_0x102c6d[_0x0561('0x2c')],_0x3159c4[_0x0561('0x2f')]));if(_0x14208b[_0x0561('0x2e')]){if(_0x14208b['dateEnd']){_0x14208b['dateEnd']=moment(_0x14208b[_0x0561('0x2d')])[_0x0561('0x37')](0x1,_0x0561('0x38'));}else{_0x14208b[_0x0561('0x2d')]=moment(_0x14208b[_0x0561('0x2e')])[_0x0561('0x37')](0x1,_0x0561('0x38'));}_[_0x0561('0x39')](_0x224260['where'],{'createdAt':{'$gte':_0x14208b[_0x0561('0x2e')],'$lte':_0x14208b[_0x0561('0x2d')]}});}if(_0x102c6d[_0x0561('0x2c')][_0x0561('0x3a')]){_0x224260[_0x0561('0x3b')]=_[_0x0561('0x39')](_0x224260[_0x0561('0x3b')],{'$or':_[_0x0561('0x3c')](_0x224260['attributes'],function(_0x522dcb){var _0xe81c3={};_0xe81c3[_0x522dcb]={'$like':'%'+_0x102c6d['query'][_0x0561('0x3a')]+'%'};return _0xe81c3;})});}_0x224260=_[_0x0561('0x39')]({},_0x224260,_0x102c6d['options']);var _0x272149={'where':_0x224260[_0x0561('0x3b')]};return db['MailQueue'][_0x0561('0x1a')](_0x272149)[_0x0561('0x3d')](function(_0x1b557e){_0x1a5633[_0x0561('0x1a')]=_0x1b557e;if(_0x102c6d['query']['includeAll']){_0x224260['include']=[{'all':!![]}];}return db['MailQueue'][_0x0561('0x3e')](_0x224260);})[_0x0561('0x3d')](function(_0x5150f0){_0x1a5633[_0x0561('0x3f')]=_0x5150f0;return _0x1a5633;})[_0x0561('0x3d')](respondWithFilteredResult(_0x79e53f,_0x224260))['catch'](handleError(_0x79e53f,null));};exports[_0x0561('0x40')]=function(_0x3e1937,_0xec5252){var _0x5bf262={'raw':!![],'where':{'id':_0x3e1937[_0x0561('0x41')]['id']}},_0x3f3319={};_0x3f3319['model']=_['keys'](db[_0x0561('0x29')]['rawAttributes']);_0x3f3319[_0x0561('0x2c')]=_[_0x0561('0x2b')](_0x3e1937[_0x0561('0x2c')]);_0x3f3319[_0x0561('0x2f')]=_['intersection'](_0x3f3319['model'],_0x3f3319[_0x0561('0x2c')]);_0x5bf262[_0x0561('0x31')]=_[_0x0561('0x30')](_0x3f3319[_0x0561('0x32')],qs[_0x0561('0x33')](_0x3e1937[_0x0561('0x2c')]['fields']));_0x5bf262['attributes']=_0x5bf262[_0x0561('0x31')]['length']?_0x5bf262[_0x0561('0x31')]:_0x3f3319[_0x0561('0x32')];if(_0x3e1937['query'][_0x0561('0x42')]){_0x5bf262['include']=[{'all':!![]}];}_0x5bf262=_[_0x0561('0x39')]({},_0x5bf262,_0x3e1937[_0x0561('0x43')]);return db[_0x0561('0x29')][_0x0561('0x44')](_0x5bf262)[_0x0561('0x3d')](handleEntityNotFound(_0xec5252,null))[_0x0561('0x3d')](respondWithResult(_0xec5252,null))['catch'](handleError(_0xec5252,null));};exports[_0x0561('0x45')]=function(_0x51385c,_0x4f5905){return db[_0x0561('0x29')][_0x0561('0x45')](_0x51385c[_0x0561('0x46')],{})[_0x0561('0x3d')](respondWithResult(_0x4f5905,0xc9))[_0x0561('0x47')](handleError(_0x4f5905,null));};exports[_0x0561('0x22')]=function(_0x213be6,_0x2fd32b){if(_0x213be6[_0x0561('0x46')]['id']){delete _0x213be6['body']['id'];}return db[_0x0561('0x29')]['find']({'where':{'id':_0x213be6[_0x0561('0x41')]['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x2fd32b,null))[_0x0561('0x3d')](saveUpdates(_0x213be6[_0x0561('0x46')],null))[_0x0561('0x3d')](respondWithResult(_0x2fd32b,null))['catch'](handleError(_0x2fd32b,null));};exports['destroy']=function(_0x42fe67,_0x5e3638){return db[_0x0561('0x29')][_0x0561('0x44')]({'where':{'id':_0x42fe67[_0x0561('0x41')]['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x5e3638,null))['then'](removeEntity(_0x5e3638,null))[_0x0561('0x47')](handleError(_0x5e3638,null));};exports['describe']=function(_0xf22288,_0x22f3fe){return db['MailQueue'][_0x0561('0x48')]()[_0x0561('0x3d')](respondWithResult(_0x22f3fe,null))[_0x0561('0x47')](handleError(_0x22f3fe,null));};exports[_0x0561('0x49')]=function(_0x1fd6b4,_0x34beca,_0x3a0f74){var _0x15a9c4={'raw':!![],'where':{}},_0x3db847={},_0x3d68f5;return db[_0x0561('0x29')][_0x0561('0x4a')]({'where':{'id':_0x1fd6b4[_0x0561('0x41')]['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x34beca,null))[_0x0561('0x3d')](function(_0x37cb0d){if(_0x37cb0d){_0x3d68f5=_0x37cb0d['get']({'plain':!![]});_0x3db847['model']=_['keys'](db[_0x0561('0x4b')][_0x0561('0x2a')]);_0x3db847[_0x0561('0x2c')]=_['keys'](_0x1fd6b4[_0x0561('0x2c')]);_0x3db847['filters']=_[_0x0561('0x30')](_0x3db847[_0x0561('0x32')],_0x3db847['query']);_0x15a9c4[_0x0561('0x31')]=_[_0x0561('0x30')](_0x3db847[_0x0561('0x32')],qs[_0x0561('0x33')](_0x1fd6b4[_0x0561('0x2c')]['fields']));_0x15a9c4[_0x0561('0x31')]=_0x15a9c4[_0x0561('0x31')]['length']?_0x15a9c4[_0x0561('0x31')]:_0x3db847[_0x0561('0x32')];if(!_0x1fd6b4[_0x0561('0x2c')][_0x0561('0x4c')]('nolimit')){_0x15a9c4[_0x0561('0x1c')]=qs[_0x0561('0x1c')](_0x1fd6b4[_0x0561('0x2c')][_0x0561('0x1c')]);_0x15a9c4['offset']=qs['offset'](_0x1fd6b4[_0x0561('0x2c')][_0x0561('0x1b')]);}_0x15a9c4['order']=qs[_0x0561('0x4d')](_0x1fd6b4[_0x0561('0x2c')]['sort']);_0x15a9c4[_0x0561('0x3b')]=qs[_0x0561('0x2f')](_['pick'](_0x1fd6b4[_0x0561('0x2c')],_0x3db847[_0x0561('0x2f')]));_0x15a9c4[_0x0561('0x3b')][_0x0561('0x4e')]=_0x37cb0d['id'];if(_0x1fd6b4[_0x0561('0x2c')][_0x0561('0x3a')]){_0x15a9c4[_0x0561('0x3b')]=_['merge'](_0x15a9c4[_0x0561('0x3b')],{'$or':_['map'](_0x15a9c4[_0x0561('0x31')],function(_0x7650b9){var _0x400889={};_0x400889[_0x7650b9]={'$like':'%'+_0x1fd6b4[_0x0561('0x2c')][_0x0561('0x3a')]+'%'};return _0x400889;})});}_0x15a9c4=_[_0x0561('0x39')]({},_0x15a9c4,_0x1fd6b4[_0x0561('0x43')]);return db[_0x0561('0x4b')]['findAll'](_0x15a9c4);}})[_0x0561('0x3d')](function(_0x65b3af){if(_0x65b3af){return db[_0x0561('0x4f')]['findAndCountAll']({'where':{'id':_['map'](_0x65b3af,_0x0561('0x50')),'role':_0x0561('0x51')},'attributes':['id',_0x0561('0x26'),_0x0561('0x52'),_0x0561('0x53'),_0x0561('0x54')]});}})[_0x0561('0x3d')](function(_0x240896){if(_0x240896){return{'count':_0x240896['count'],'rows':_[_0x0561('0x3c')](_0x240896['rows'],function(_0x3018f7){return{'membername':_0x3018f7['name'],'UserId':_0x3018f7['id'],'queue_name':_0x3d68f5[_0x0561('0x26')],'MailQueueId':_0x3d68f5['id'],'interface':util[_0x0561('0x55')](_0x0561('0x56'),_0x0561('0x57'),_0x3018f7[_0x0561('0x26')]),'penalty':0x0,'paused':_0x3018f7[_0x0561('0x52')],'createdAt':_0x3018f7[_0x0561('0x54')],'updatedAt':_0x3018f7[_0x0561('0x53')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x0561('0x3d')](respondWithFilteredResult(_0x34beca,_0x15a9c4))[_0x0561('0x47')](handleError(_0x34beca,null));};exports[_0x0561('0x58')]=function(_0x5d7759,_0x1ca529,_0x287149){var _0x2c5497={};var _0x271d54={};var _0xc67e77;var _0x359ddb;return db[_0x0561('0x29')][_0x0561('0x4a')]({'where':{'id':_0x5d7759[_0x0561('0x41')]['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x1ca529,null))[_0x0561('0x3d')](function(_0x37db62){if(_0x37db62){_0xc67e77=_0x37db62;_0x271d54[_0x0561('0x32')]=_[_0x0561('0x2b')](db[_0x0561('0x59')][_0x0561('0x2a')]);_0x271d54[_0x0561('0x2c')]=_[_0x0561('0x2b')](_0x5d7759[_0x0561('0x2c')]);_0x271d54['filters']=_[_0x0561('0x30')](_0x271d54['model'],_0x271d54[_0x0561('0x2c')]);_0x2c5497['attributes']=_[_0x0561('0x30')](_0x271d54[_0x0561('0x32')],qs[_0x0561('0x33')](_0x5d7759[_0x0561('0x2c')][_0x0561('0x33')]));_0x2c5497[_0x0561('0x31')]=_0x2c5497[_0x0561('0x31')][_0x0561('0x34')]?_0x2c5497['attributes']:_0x271d54[_0x0561('0x32')];_0x2c5497[_0x0561('0x5a')]=qs[_0x0561('0x4d')](_0x5d7759[_0x0561('0x2c')][_0x0561('0x4d')]);_0x2c5497[_0x0561('0x3b')]=qs[_0x0561('0x2f')](_['pick'](_0x5d7759[_0x0561('0x2c')],_0x271d54[_0x0561('0x2f')]));if(_0x5d7759[_0x0561('0x2c')]['filter']){_0x2c5497[_0x0561('0x3b')]=_['merge'](_0x2c5497[_0x0561('0x3b')],{'$or':_[_0x0561('0x3c')](_0x2c5497[_0x0561('0x31')],function(_0x318d5c){var _0x4d3a99={};_0x4d3a99[_0x318d5c]={'$like':'%'+_0x5d7759[_0x0561('0x2c')]['filter']+'%'};return _0x4d3a99;})});}_0x2c5497=_[_0x0561('0x39')]({},_0x2c5497,_0x5d7759[_0x0561('0x43')]);return _0xc67e77[_0x0561('0x58')](_0x2c5497);}})[_0x0561('0x3d')](function(_0x1997b6){if(_0x1997b6){_0x359ddb=_0x1997b6[_0x0561('0x34')];if(!_0x5d7759['query'][_0x0561('0x4c')]('nolimit')){_0x2c5497[_0x0561('0x1c')]=qs['limit'](_0x5d7759['query'][_0x0561('0x1c')]);_0x2c5497[_0x0561('0x1b')]=qs['offset'](_0x5d7759[_0x0561('0x2c')][_0x0561('0x1b')]);}return _0xc67e77[_0x0561('0x58')](_0x2c5497);}})['then'](function(_0x3848d1){if(_0x3848d1){return _0x3848d1?{'count':_0x359ddb,'rows':_0x3848d1}:null;}})[_0x0561('0x3d')](respondWithResult(_0x1ca529,null))[_0x0561('0x47')](handleError(_0x1ca529,null));};exports[_0x0561('0x5b')]=function(_0x1812fe,_0x2330a4,_0x1c8fed){var _0x404e38=[];var _0x22a335;return db[_0x0561('0x59')][_0x0561('0x3e')]({'where':{'id':_0x1812fe[_0x0561('0x46')][_0x0561('0x5c')]},'attributes':['id'],'include':[{'model':db[_0x0561('0x4f')],'as':_0x0561('0x5d'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x10a751){if(_0x10a751){for(var _0x4f62dd=0x0;_0x4f62dd<_0x10a751[_0x0561('0x34')];_0x4f62dd+=0x1){for(var _0x9f965b=0x0;_0x9f965b<_0x10a751[_0x4f62dd][_0x0561('0x5d')][_0x0561('0x34')];_0x9f965b+=0x1){_0x404e38=_[_0x0561('0x5e')](_0x404e38,[_0x10a751[_0x4f62dd][_0x0561('0x5d')][_0x9f965b]['id']]);}}return _0x404e38;}})['then'](function(_0x8c9e60){if(_0x8c9e60){return db[_0x0561('0x29')]['find']({'where':{'id':_0x1812fe[_0x0561('0x41')]['id']}});}})[_0x0561('0x3d')](function(_0x563f9b){if(_0x563f9b){_0x22a335=_0x563f9b;return _0x22a335[_0x0561('0x5f')](_0x404e38,{'penalty':_0x1812fe[_0x0561('0x46')][_0x0561('0x60')]});}})['then'](function(_0x4816ab){if(_0x4816ab){return _0x22a335[_0x0561('0x5b')](_0x1812fe[_0x0561('0x46')][_0x0561('0x5c')]);}})[_0x0561('0x3d')](handleEntityNotFound(_0x2330a4,null))[_0x0561('0x3d')](respondWithStatusCode(_0x2330a4,null))[_0x0561('0x47')](handleError(_0x2330a4,null));};exports[_0x0561('0x61')]=function(_0x5b069b,_0x4edb71,_0x14d90c){var _0x5b991f=[];var _0x39d9b0;return db[_0x0561('0x59')][_0x0561('0x3e')]({'where':{'id':_0x5b069b['query'][_0x0561('0x5c')]},'attributes':['id'],'include':[{'model':db[_0x0561('0x4f')],'as':_0x0561('0x5d'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x15d05c){if(_0x15d05c){for(var _0x2bc2e1=0x0;_0x2bc2e1<_0x15d05c['length'];_0x2bc2e1+=0x1){for(var _0x59e892=0x0;_0x59e892<_0x15d05c[_0x2bc2e1][_0x0561('0x5d')][_0x0561('0x34')];_0x59e892+=0x1){_0x5b991f=_[_0x0561('0x5e')](_0x5b991f,[_0x15d05c[_0x2bc2e1][_0x0561('0x5d')][_0x59e892]['id']]);}}return _0x5b991f;}})[_0x0561('0x3d')](function(_0x162997){if(_0x162997){return db['MailQueue'][_0x0561('0x44')]({'where':{'id':_0x5b069b['params']['id']}});}})[_0x0561('0x3d')](function(_0x77db86){if(_0x77db86){_0x39d9b0=_0x77db86;return _0x39d9b0[_0x0561('0x62')](_0x5b991f);}})[_0x0561('0x3d')](function(_0xe18ebd){if(_0x39d9b0){return _0x39d9b0['removeTeams'](_0x5b069b['query']['ids']);}})[_0x0561('0x3d')](handleEntityNotFound(_0x4edb71,null))[_0x0561('0x3d')](respondWithStatusCode(_0x4edb71,null))[_0x0561('0x47')](handleError(_0x4edb71,null));};exports[_0x0561('0x5f')]=function(_0x4996e9,_0x22152e,_0x2e09bf){return db[_0x0561('0x29')][_0x0561('0x44')]({'where':{'id':_0x4996e9[_0x0561('0x41')]['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x22152e,null))[_0x0561('0x3d')](function(_0x39fa89){if(_0x39fa89){return _0x39fa89[_0x0561('0x5f')](_0x4996e9[_0x0561('0x46')][_0x0561('0x5c')],_[_0x0561('0x63')](_0x4996e9['body'],[_0x0561('0x5c'),'id'])||{})[_0x0561('0x64')](function(_0x2be6cd){for(var _0x2c81a1=0x0;_0x2c81a1<_0x4996e9[_0x0561('0x46')][_0x0561('0x5c')][_0x0561('0x34')];_0x2c81a1+=0x1){socket[_0x0561('0x65')](_0x0561('0x66'),{'UserId':_0x4996e9[_0x0561('0x46')]['ids'][_0x2c81a1],'MailQueueId':_0x4996e9[_0x0561('0x41')]['id']});}return _0x2be6cd;});}})['then'](respondWithResult(_0x22152e,null))[_0x0561('0x47')](handleError(_0x22152e,null));};exports[_0x0561('0x62')]=function(_0x26aead,_0x4f249c,_0x2dfeb4){var _0x3d7b68;return db[_0x0561('0x29')][_0x0561('0x44')]({'where':{'id':_0x26aead['params']['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x4f249c,null))[_0x0561('0x3d')](function(_0x160f3e){if(_0x160f3e){return _0x160f3e[_0x0561('0x62')](_0x26aead[_0x0561('0x2c')][_0x0561('0x5c')])[_0x0561('0x3d')](function(_0x3338a0){if(_[_0x0561('0x67')](_0x26aead[_0x0561('0x2c')][_0x0561('0x5c')])){for(var _0x5013e7=0x0;_0x5013e7<_0x26aead[_0x0561('0x2c')]['ids'][_0x0561('0x34')];_0x5013e7+=0x1){socket[_0x0561('0x65')](_0x0561('0x68'),{'UserId':_0x26aead[_0x0561('0x2c')][_0x0561('0x5c')][_0x5013e7],'MailQueueId':_0x26aead[_0x0561('0x41')]['id']});}}else{socket[_0x0561('0x65')](_0x0561('0x68'),{'UserId':_0x26aead[_0x0561('0x2c')][_0x0561('0x5c')],'MailQueueId':_0x26aead[_0x0561('0x41')]['id']});}});}})[_0x0561('0x3d')](respondWithStatusCode(_0x4f249c,null))['catch'](handleError(_0x4f249c,null));};exports[_0x0561('0x69')]=function(_0x5cc1f3,_0x48147e,_0x27a22c){var _0x1a3f4b={};var _0x2f5651={};var _0x1aa2af;var _0x37e28a;return db[_0x0561('0x29')]['findOne']({'where':{'id':_0x5cc1f3[_0x0561('0x41')]['id']}})[_0x0561('0x3d')](handleEntityNotFound(_0x48147e,null))['then'](function(_0x94ac83){if(_0x94ac83){_0x1aa2af=_0x94ac83;_0x2f5651['model']=_[_0x0561('0x2b')](db['User'][_0x0561('0x2a')]);_0x2f5651[_0x0561('0x2c')]=_['keys'](_0x5cc1f3[_0x0561('0x2c')]);_0x2f5651[_0x0561('0x2f')]=_['intersection'](_0x2f5651[_0x0561('0x32')],_0x2f5651['query']);_0x1a3f4b[_0x0561('0x31')]=_[_0x0561('0x30')](_0x2f5651[_0x0561('0x32')],qs[_0x0561('0x33')](_0x5cc1f3[_0x0561('0x2c')][_0x0561('0x33')]));_0x1a3f4b[_0x0561('0x31')]=_0x1a3f4b['attributes'][_0x0561('0x34')]?_0x1a3f4b['attributes']:_0x2f5651[_0x0561('0x32')];_0x1a3f4b[_0x0561('0x5a')]=qs[_0x0561('0x4d')](_0x5cc1f3[_0x0561('0x2c')][_0x0561('0x4d')]);_0x1a3f4b[_0x0561('0x3b')]=qs['filters'](_['pick'](_0x5cc1f3['query'],_0x2f5651['filters']));if(_0x5cc1f3[_0x0561('0x2c')][_0x0561('0x3a')]){_0x1a3f4b[_0x0561('0x3b')]=_[_0x0561('0x39')](_0x1a3f4b[_0x0561('0x3b')],{'$or':_[_0x0561('0x3c')](_0x1a3f4b[_0x0561('0x31')],function(_0x3e3177){var _0x39f7e7={};_0x39f7e7[_0x3e3177]={'$like':'%'+_0x5cc1f3[_0x0561('0x2c')]['filter']+'%'};return _0x39f7e7;})});}_0x1a3f4b=_[_0x0561('0x39')]({},_0x1a3f4b,_0x5cc1f3[_0x0561('0x43')]);return _0x1aa2af[_0x0561('0x69')](_0x1a3f4b);}})[_0x0561('0x3d')](function(_0x52da4b){if(_0x52da4b){_0x37e28a=_0x52da4b[_0x0561('0x34')];if(!_0x5cc1f3['query'][_0x0561('0x4c')]('nolimit')){_0x1a3f4b['limit']=qs['limit'](_0x5cc1f3[_0x0561('0x2c')][_0x0561('0x1c')]);_0x1a3f4b[_0x0561('0x1b')]=qs[_0x0561('0x1b')](_0x5cc1f3[_0x0561('0x2c')][_0x0561('0x1b')]);}return _0x1aa2af[_0x0561('0x69')](_0x1a3f4b);}})[_0x0561('0x3d')](function(_0x3aab3f){if(_0x3aab3f){return _0x3aab3f?{'count':_0x37e28a,'rows':_0x3aab3f}:null;}})[_0x0561('0x3d')](respondWithResult(_0x48147e,null))[_0x0561('0x47')](handleError(_0x48147e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6ac=['events','../../mysqldb','setMaxListeners','save','update','remove','emit','hook','exports'];(function(_0x46b567,_0x5bae72){var _0x26c1d6=function(_0x5811b2){while(--_0x5811b2){_0x46b567['push'](_0x46b567['shift']());}};_0x26c1d6(++_0x5bae72);}(_0xa6ac,0xfc));var _0xca6a=function(_0xacfde8,_0x145f25){_0xacfde8=_0xacfde8-0x0;var _0x260442=_0xa6ac[_0xacfde8];return _0x260442;};'use strict';var EventEmitter=require(_0xca6a('0x0'));var MailQueue=require(_0xca6a('0x1'))['db']['MailQueue'];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xca6a('0x2')](0x0);var events={'afterCreate':_0xca6a('0x3'),'afterUpdate':_0xca6a('0x4'),'afterDestroy':_0xca6a('0x5')};function emitEvent(_0x83b0b8){return function(_0x22d29f,_0x1fc6a5,_0x366028){MailQueueEvents[_0xca6a('0x6')](_0x83b0b8+':'+_0x22d29f['id'],_0x22d29f);MailQueueEvents[_0xca6a('0x6')](_0x83b0b8,_0x22d29f);_0x366028(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailQueue[_0xca6a('0x7')](e,emitEvent(event));}}module[_0xca6a('0x8')]=MailQueueEvents;
\ No newline at end of file
+var _0x5274=['MailQueue','save','update','remove','emit','hasOwnProperty','exports','events'];(function(_0x2803e7,_0x13a8cb){var _0x350d80=function(_0x34ca57){while(--_0x34ca57){_0x2803e7['push'](_0x2803e7['shift']());}};_0x350d80(++_0x13a8cb);}(_0x5274,0xc7));var _0x4527=function(_0x529587,_0x7b9e47){_0x529587=_0x529587-0x0;var _0x4ea039=_0x5274[_0x529587];return _0x4ea039;};'use strict';var EventEmitter=require(_0x4527('0x0'));var MailQueue=require('../../mysqldb')['db'][_0x4527('0x1')];var MailQueueEvents=new EventEmitter();MailQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x4527('0x2'),'afterUpdate':_0x4527('0x3'),'afterDestroy':_0x4527('0x4')};function emitEvent(_0xc44ea0){return function(_0x1e1c1e,_0x298c04,_0x15ef74){MailQueueEvents['emit'](_0xc44ea0+':'+_0x1e1c1e['id'],_0x1e1c1e);MailQueueEvents[_0x4527('0x5')](_0xc44ea0,_0x1e1c1e);_0x15ef74(null);};}for(var e in events){if(events[_0x4527('0x6')](e)){var event=events[e];MailQueue['hook'](e,emitEvent(event));}}module[_0x4527('0x7')]=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe948=['MailQueue','mail_queues','lodash','moment','bluebird','request-promise','./mailQueue.attributes'];(function(_0x37e50a,_0x331602){var _0x3f2151=function(_0x2e0476){while(--_0x2e0476){_0x37e50a['push'](_0x37e50a['shift']());}};_0x3f2151(++_0x331602);}(_0xe948,0x1ec));var _0x8e94=function(_0x5297ae,_0x524fdf){_0x5297ae=_0x5297ae-0x0;var _0x2d6526=_0xe948[_0x5297ae];return _0x2d6526;};'use strict';var _=require(_0x8e94('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x8e94('0x1'));var BPromise=require(_0x8e94('0x2'));var rp=require(_0x8e94('0x3'));var attributes=require(_0x8e94('0x4'));module['exports']=function(_0x296443,_0x400cce){return _0x296443['define'](_0x8e94('0x5'),attributes,{'tableName':_0x8e94('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc8a5=['lodash','api','bluebird','request-promise','define'];(function(_0x719624,_0x4f55f1){var _0x2a3fdc=function(_0x4d03d9){while(--_0x4d03d9){_0x719624['push'](_0x719624['shift']());}};_0x2a3fdc(++_0x4f55f1);}(_0xc8a5,0x18b));var _0x5c8a=function(_0x44ba52,_0x33781e){_0x44ba52=_0x44ba52-0x0;var _0x169b41=_0xc8a5[_0x44ba52];return _0x169b41;};'use strict';var _=require(_0x5c8a('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x5c8a('0x1'));var moment=require('moment');var BPromise=require(_0x5c8a('0x2'));var rp=require(_0x5c8a('0x3'));var attributes=require('./mailQueue.attributes');module['exports']=function(_0x13f409,_0x480ecb){return _0x13f409[_0x5c8a('0x4')]('MailQueue',attributes,{'tableName':'mail_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a61=['stringify','error','code','message','result','catch','GetMailQueue','MailQueue','options','raw','where','attributes','limit','include','map','model','then','ShowMailQueue','find','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','register','request','info','MailQueue,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x182a0c,_0x143071){var _0x24da48=function(_0x514dcb){while(--_0x514dcb){_0x182a0c['push'](_0x182a0c['shift']());}};_0x24da48(++_0x143071);}(_0x6a61,0x1e1));var _0x16a6=function(_0x4e6a36,_0x131973){_0x4e6a36=_0x4e6a36-0x0;var _0x29548d=_0x6a61[_0x4e6a36];return _0x29548d;};'use strict';var _=require(_0x16a6('0x0'));var util=require('util');var moment=require(_0x16a6('0x1'));var BPromise=require(_0x16a6('0x2'));var rs=require(_0x16a6('0x3'));var fs=require('fs');var db=require(_0x16a6('0x4'))['db'];var utils=require(_0x16a6('0x5'));var logger=require(_0x16a6('0x6'))(_0x16a6('0x7'));var config=require(_0x16a6('0x8'));var jayson=require(_0x16a6('0x9'));var client=jayson[_0x16a6('0xa')][_0x16a6('0xb')]({'port':0x232a});config[_0x16a6('0xc')]=_[_0x16a6('0xd')](config[_0x16a6('0xc')],{'host':_0x16a6('0xe'),'port':0x18eb});var socket=require(_0x16a6('0xf'))(config[_0x16a6('0xc')]);require(_0x16a6('0x10'))[_0x16a6('0x11')](socket);function respondWithRpcPromise(_0x3ebeb0,_0x227a93,_0x2417be){return new BPromise(function(_0x32e2ec,_0x4db10e){return client[_0x16a6('0x12')](_0x3ebeb0,_0x2417be)['then'](function(_0x56082e){logger[_0x16a6('0x13')](_0x16a6('0x14'),_0x227a93,'request\x20sent');logger[_0x16a6('0x15')]('MailQueue,\x20%s,\x20%s,\x20%s',_0x227a93,_0x16a6('0x16'),JSON[_0x16a6('0x17')](_0x56082e));if(_0x56082e[_0x16a6('0x18')]){if(_0x56082e[_0x16a6('0x18')][_0x16a6('0x19')]===0x1f4){logger[_0x16a6('0x18')](_0x16a6('0x14'),_0x227a93,_0x56082e[_0x16a6('0x18')][_0x16a6('0x1a')]);return _0x4db10e(_0x56082e[_0x16a6('0x18')]['message']);}logger[_0x16a6('0x18')]('MailQueue,\x20%s,\x20%s',_0x227a93,_0x56082e[_0x16a6('0x18')][_0x16a6('0x1a')]);return _0x32e2ec(_0x56082e[_0x16a6('0x18')]['message']);}else{logger[_0x16a6('0x13')](_0x16a6('0x14'),_0x227a93,_0x16a6('0x16'));_0x32e2ec(_0x56082e[_0x16a6('0x1b')][_0x16a6('0x1a')]);}})[_0x16a6('0x1c')](function(_0x32ea70){logger['error'](_0x16a6('0x14'),_0x227a93,_0x32ea70);_0x4db10e(_0x32ea70);});});}exports[_0x16a6('0x1d')]=function(_0x4668d3){var _0x2166aa=this;return new Promise(function(_0x1d5e4e,_0xfef6a2){return db[_0x16a6('0x1e')]['findAll']({'raw':_0x4668d3[_0x16a6('0x1f')]?_0x4668d3[_0x16a6('0x1f')][_0x16a6('0x20')]===undefined?!![]:![]:!![],'where':_0x4668d3['options']?_0x4668d3[_0x16a6('0x1f')][_0x16a6('0x21')]||null:null,'attributes':_0x4668d3[_0x16a6('0x1f')]?_0x4668d3[_0x16a6('0x1f')][_0x16a6('0x22')]||null:null,'limit':_0x4668d3[_0x16a6('0x1f')]?_0x4668d3[_0x16a6('0x1f')][_0x16a6('0x23')]||null:null,'include':_0x4668d3[_0x16a6('0x1f')]?_0x4668d3[_0x16a6('0x1f')][_0x16a6('0x24')]?_[_0x16a6('0x25')](_0x4668d3[_0x16a6('0x1f')][_0x16a6('0x24')],function(_0x254819){return{'model':db[_0x254819[_0x16a6('0x26')]],'as':_0x254819['as'],'attributes':_0x254819['attributes'],'include':_0x254819['include']?_[_0x16a6('0x25')](_0x254819['include'],function(_0x247b03){return{'model':db[_0x247b03[_0x16a6('0x26')]],'as':_0x247b03['as'],'attributes':_0x247b03['attributes'],'include':_0x247b03[_0x16a6('0x24')]?_[_0x16a6('0x25')](_0x247b03['include'],function(_0x3c7c1d){return{'model':db[_0x3c7c1d[_0x16a6('0x26')]],'as':_0x3c7c1d['as'],'attributes':_0x3c7c1d[_0x16a6('0x22')]};}):[]};}):[]};}):[]:[]})[_0x16a6('0x27')](function(_0x1ba270){logger['info'](_0x16a6('0x1d'),_0x4668d3);logger[_0x16a6('0x15')](_0x16a6('0x1d'),_0x4668d3,JSON[_0x16a6('0x17')](_0x1ba270));_0x1d5e4e(_0x1ba270);})[_0x16a6('0x1c')](function(_0x526f38){logger[_0x16a6('0x18')]('GetMailQueue',_0x526f38[_0x16a6('0x1a')],_0x4668d3);_0xfef6a2(_0x2166aa[_0x16a6('0x18')](0x1f4,_0x526f38[_0x16a6('0x1a')]));});});};exports[_0x16a6('0x28')]=function(_0x3a0397){var _0x1f6fb2=this;return new Promise(function(_0x4ad068,_0x26bc40){return db[_0x16a6('0x1e')][_0x16a6('0x29')]({'raw':_0x3a0397[_0x16a6('0x1f')]?_0x3a0397[_0x16a6('0x1f')][_0x16a6('0x20')]===undefined?!![]:![]:!![],'where':_0x3a0397[_0x16a6('0x1f')]?_0x3a0397[_0x16a6('0x1f')][_0x16a6('0x21')]||null:null,'attributes':_0x3a0397[_0x16a6('0x1f')]?_0x3a0397[_0x16a6('0x1f')][_0x16a6('0x22')]||null:null,'include':_0x3a0397['options']?_0x3a0397[_0x16a6('0x1f')][_0x16a6('0x24')]?_[_0x16a6('0x25')](_0x3a0397[_0x16a6('0x1f')]['include'],function(_0x39da80){return{'model':db[_0x39da80[_0x16a6('0x26')]],'as':_0x39da80['as'],'attributes':_0x39da80[_0x16a6('0x22')],'include':_0x39da80['include']?_[_0x16a6('0x25')](_0x39da80[_0x16a6('0x24')],function(_0x333c91){return{'model':db[_0x333c91['model']],'as':_0x333c91['as'],'attributes':_0x333c91[_0x16a6('0x22')],'include':_0x333c91['include']?_[_0x16a6('0x25')](_0x333c91[_0x16a6('0x24')],function(_0xe1a2d3){return{'model':db[_0xe1a2d3[_0x16a6('0x26')]],'as':_0xe1a2d3['as'],'attributes':_0xe1a2d3[_0x16a6('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x36fc3c){logger[_0x16a6('0x13')](_0x16a6('0x28'),_0x3a0397);logger[_0x16a6('0x15')](_0x16a6('0x28'),_0x3a0397,JSON[_0x16a6('0x17')](_0x36fc3c));_0x4ad068(_0x36fc3c);})['catch'](function(_0x5b160c){logger[_0x16a6('0x18')](_0x16a6('0x28'),_0x5b160c['message'],_0x3a0397);_0x26bc40(_0x1f6fb2['error'](0x1f4,_0x5b160c[_0x16a6('0x1a')]));});});};
\ No newline at end of file
+var _0x49ea=['util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','register','request','then','info','request\x20sent','debug','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','MailQueue,\x20%s,\x20%s','message','result','catch','GetMailQueue','findAll','options','raw','limit','include','attributes','map','model','ShowMailQueue','MailQueue','find'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x49ea,0xf6));var _0xa49e=function(_0x26b391,_0x4b5856){_0x26b391=_0x26b391-0x0;var _0x353437=_0x49ea[_0x26b391];return _0x353437;};'use strict';var _=require('lodash');var util=require(_0xa49e('0x0'));var moment=require(_0xa49e('0x1'));var BPromise=require('bluebird');var rs=require(_0xa49e('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa49e('0x3'))['db'];var utils=require(_0xa49e('0x4'));var logger=require(_0xa49e('0x5'))('rpc');var config=require(_0xa49e('0x6'));var jayson=require(_0xa49e('0x7'));var client=jayson[_0xa49e('0x8')][_0xa49e('0x9')]({'port':0x232a});config[_0xa49e('0xa')]=_[_0xa49e('0xb')](config[_0xa49e('0xa')],{'host':_0xa49e('0xc'),'port':0x18eb});var socket=require(_0xa49e('0xd'))(new Redis(config[_0xa49e('0xa')]));require(_0xa49e('0xe'))[_0xa49e('0xf')](socket);function respondWithRpcPromise(_0x1b67b3,_0x29978e,_0x19e7a5){return new BPromise(function(_0x2c12b5,_0x4462c2){return client[_0xa49e('0x10')](_0x1b67b3,_0x19e7a5)[_0xa49e('0x11')](function(_0x5f4864){logger[_0xa49e('0x12')]('MailQueue,\x20%s,\x20%s',_0x29978e,_0xa49e('0x13'));logger[_0xa49e('0x14')](_0xa49e('0x15'),_0x29978e,_0xa49e('0x13'),JSON[_0xa49e('0x16')](_0x5f4864));if(_0x5f4864['error']){if(_0x5f4864[_0xa49e('0x17')][_0xa49e('0x18')]===0x1f4){logger[_0xa49e('0x17')](_0xa49e('0x19'),_0x29978e,_0x5f4864['error'][_0xa49e('0x1a')]);return _0x4462c2(_0x5f4864[_0xa49e('0x17')][_0xa49e('0x1a')]);}logger[_0xa49e('0x17')](_0xa49e('0x19'),_0x29978e,_0x5f4864['error']['message']);return _0x2c12b5(_0x5f4864[_0xa49e('0x17')][_0xa49e('0x1a')]);}else{logger[_0xa49e('0x12')](_0xa49e('0x19'),_0x29978e,'request\x20sent');_0x2c12b5(_0x5f4864[_0xa49e('0x1b')]['message']);}})[_0xa49e('0x1c')](function(_0x51bee6){logger[_0xa49e('0x17')](_0xa49e('0x19'),_0x29978e,_0x51bee6);_0x4462c2(_0x51bee6);});});}exports[_0xa49e('0x1d')]=function(_0x249387){var _0x10e4b4=this;return new Promise(function(_0x17f92a,_0x226397){return db['MailQueue'][_0xa49e('0x1e')]({'raw':_0x249387[_0xa49e('0x1f')]?_0x249387['options'][_0xa49e('0x20')]===undefined?!![]:![]:!![],'where':_0x249387['options']?_0x249387[_0xa49e('0x1f')]['where']||null:null,'attributes':_0x249387[_0xa49e('0x1f')]?_0x249387[_0xa49e('0x1f')]['attributes']||null:null,'limit':_0x249387[_0xa49e('0x1f')]?_0x249387[_0xa49e('0x1f')][_0xa49e('0x21')]||null:null,'include':_0x249387['options']?_0x249387[_0xa49e('0x1f')][_0xa49e('0x22')]?_['map'](_0x249387[_0xa49e('0x1f')]['include'],function(_0x3ea936){return{'model':db[_0x3ea936['model']],'as':_0x3ea936['as'],'attributes':_0x3ea936[_0xa49e('0x23')],'include':_0x3ea936[_0xa49e('0x22')]?_[_0xa49e('0x24')](_0x3ea936['include'],function(_0x510079){return{'model':db[_0x510079[_0xa49e('0x25')]],'as':_0x510079['as'],'attributes':_0x510079['attributes'],'include':_0x510079[_0xa49e('0x22')]?_[_0xa49e('0x24')](_0x510079[_0xa49e('0x22')],function(_0x194b52){return{'model':db[_0x194b52['model']],'as':_0x194b52['as'],'attributes':_0x194b52['attributes']};}):[]};}):[]};}):[]:[]})[_0xa49e('0x11')](function(_0x2969d9){logger[_0xa49e('0x12')](_0xa49e('0x1d'),_0x249387);logger[_0xa49e('0x14')](_0xa49e('0x1d'),_0x249387,JSON['stringify'](_0x2969d9));_0x17f92a(_0x2969d9);})[_0xa49e('0x1c')](function(_0x5938fe){logger[_0xa49e('0x17')](_0xa49e('0x1d'),_0x5938fe['message'],_0x249387);_0x226397(_0x10e4b4[_0xa49e('0x17')](0x1f4,_0x5938fe[_0xa49e('0x1a')]));});});};exports[_0xa49e('0x26')]=function(_0x1a28fc){var _0x1ced9b=this;return new Promise(function(_0x10a9fe,_0x1526a2){return db[_0xa49e('0x27')][_0xa49e('0x28')]({'raw':_0x1a28fc[_0xa49e('0x1f')]?_0x1a28fc[_0xa49e('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x1a28fc[_0xa49e('0x1f')]?_0x1a28fc[_0xa49e('0x1f')]['where']||null:null,'attributes':_0x1a28fc[_0xa49e('0x1f')]?_0x1a28fc[_0xa49e('0x1f')]['attributes']||null:null,'include':_0x1a28fc[_0xa49e('0x1f')]?_0x1a28fc[_0xa49e('0x1f')][_0xa49e('0x22')]?_['map'](_0x1a28fc[_0xa49e('0x1f')][_0xa49e('0x22')],function(_0x28207d){return{'model':db[_0x28207d[_0xa49e('0x25')]],'as':_0x28207d['as'],'attributes':_0x28207d[_0xa49e('0x23')],'include':_0x28207d[_0xa49e('0x22')]?_[_0xa49e('0x24')](_0x28207d[_0xa49e('0x22')],function(_0x2b6257){return{'model':db[_0x2b6257['model']],'as':_0x2b6257['as'],'attributes':_0x2b6257[_0xa49e('0x23')],'include':_0x2b6257['include']?_[_0xa49e('0x24')](_0x2b6257[_0xa49e('0x22')],function(_0x37cefd){return{'model':db[_0x37cefd[_0xa49e('0x25')]],'as':_0x37cefd['as'],'attributes':_0x37cefd[_0xa49e('0x23')]};}):[]};}):[]};}):[]:[]})[_0xa49e('0x11')](function(_0x1ef255){logger[_0xa49e('0x12')](_0xa49e('0x26'),_0x1a28fc);logger[_0xa49e('0x14')]('ShowMailQueue',_0x1a28fc,JSON[_0xa49e('0x16')](_0x1ef255));_0x10a9fe(_0x1ef255);})[_0xa49e('0x1c')](function(_0x26f82b){logger[_0xa49e('0x17')](_0xa49e('0x26'),_0x26f82b[_0xa49e('0x1a')],_0x1a28fc);_0x1526a2(_0x1ced9b[_0xa49e('0x17')](0x1f4,_0x26f82b[_0xa49e('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d1f=['remove','removeListener','mailQueue:','./mailQueue.events','save'];(function(_0x200c68,_0x30b2fe){var _0x495e93=function(_0x3742f5){while(--_0x3742f5){_0x200c68['push'](_0x200c68['shift']());}};_0x495e93(++_0x30b2fe);}(_0x1d1f,0x143));var _0xf1d1=function(_0x4b84e8,_0x23e807){_0x4b84e8=_0x4b84e8-0x0;var _0x3d8b44=_0x1d1f[_0x4b84e8];return _0x3d8b44;};'use strict';var MailQueueEvents=require(_0xf1d1('0x0'));var events=[_0xf1d1('0x1'),_0xf1d1('0x2'),'update'];function createListener(_0x345611,_0x1d683b){return function(_0x3ab1d8){_0x1d683b['emit'](_0x345611,_0x3ab1d8);};}function removeListener(_0xe13689,_0x1fb0c2){return function(){MailQueueEvents[_0xf1d1('0x3')](_0xe13689,_0x1fb0c2);};}exports['register']=function(_0x25f5a7){for(var _0x2ff0f8=0x0,_0x15c1d6=events['length'];_0x2ff0f8<_0x15c1d6;_0x2ff0f8++){var _0x2adaf1=events[_0x2ff0f8];var _0x1ef116=createListener(_0xf1d1('0x4')+_0x2adaf1,_0x25f5a7);MailQueueEvents['on'](_0x2adaf1,_0x1ef116);}};
\ No newline at end of file
+var _0x945f=['update','register','length','mailQueue:','./mailQueue.events','save'];(function(_0x4ffbd9,_0x3954e6){var _0x5802f0=function(_0x22461e){while(--_0x22461e){_0x4ffbd9['push'](_0x4ffbd9['shift']());}};_0x5802f0(++_0x3954e6);}(_0x945f,0x13c));var _0xf945=function(_0x535fbc,_0x2bf729){_0x535fbc=_0x535fbc-0x0;var _0x50adc8=_0x945f[_0x535fbc];return _0x50adc8;};'use strict';var MailQueueEvents=require(_0xf945('0x0'));var events=[_0xf945('0x1'),'remove',_0xf945('0x2')];function createListener(_0x12e146,_0x3f4f7b){return function(_0x3e209a){_0x3f4f7b['emit'](_0x12e146,_0x3e209a);};}function removeListener(_0x4a4fb8,_0x1dc8fb){return function(){MailQueueEvents['removeListener'](_0x4a4fb8,_0x1dc8fb);};}exports[_0xf945('0x3')]=function(_0xb397f6){for(var _0x2fe4af=0x0,_0x1eff63=events[_0xf945('0x4')];_0x2fe4af<_0x1eff63;_0x2fe4af++){var _0x29b8cd=events[_0x2fe4af];var _0xff082b=createListener(_0xf945('0x5')+_0x29b8cd,_0xb397f6);MailQueueEvents['on'](_0x29b8cd,_0xff082b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9825=['exports','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/describe','describe','/:id','post','create','update','delete'];(function(_0x4f5fbc,_0x74cb4e){var _0x486e0e=function(_0x306829){while(--_0x306829){_0x4f5fbc['push'](_0x4f5fbc['shift']());}};_0x486e0e(++_0x74cb4e);}(_0x9825,0x1aa));var _0x5982=function(_0x2c2e83,_0x5875d4){_0x2c2e83=_0x2c2e83-0x0;var _0x5199bf=_0x9825[_0x2c2e83];return _0x5199bf;};'use strict';var multer=require('multer');var util=require(_0x5982('0x0'));var path=require(_0x5982('0x1'));var timeout=require(_0x5982('0x2'));var express=require(_0x5982('0x3'));var router=express['Router']();var auth=require(_0x5982('0x4'));var interaction=require(_0x5982('0x5'));var config=require('../../config/environment');var controller=require('./mailQueueReport.controller');router[_0x5982('0x6')]('/',auth[_0x5982('0x7')](),controller[_0x5982('0x8')]);router[_0x5982('0x6')](_0x5982('0x9'),auth[_0x5982('0x7')](),controller[_0x5982('0xa')]);router[_0x5982('0x6')](_0x5982('0xb'),auth['isAuthenticated'](),controller['show']);router[_0x5982('0xc')]('/',auth[_0x5982('0x7')](),controller[_0x5982('0xd')]);router['put'](_0x5982('0xb'),auth['isAuthenticated'](),controller[_0x5982('0xe')]);router[_0x5982('0xf')](_0x5982('0xb'),auth[_0x5982('0x7')](),controller['destroy']);module[_0x5982('0x10')]=router;
\ No newline at end of file
+var _0x13ae=['index','/describe','describe','show','create','put','/:id','destroy','exports','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','get','isAuthenticated'];(function(_0x15c536,_0x45dbca){var _0x514730=function(_0x357e90){while(--_0x357e90){_0x15c536['push'](_0x15c536['shift']());}};_0x514730(++_0x45dbca);}(_0x13ae,0x199));var _0xe13a=function(_0x164eca,_0x555e28){_0x164eca=_0x164eca-0x0;var _0x2ce562=_0x13ae[_0x164eca];return _0x2ce562;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe13a('0x0'));var timeout=require(_0xe13a('0x1'));var express=require('express');var router=express[_0xe13a('0x2')]();var auth=require(_0xe13a('0x3'));var interaction=require(_0xe13a('0x4'));var config=require('../../config/environment');var controller=require('./mailQueueReport.controller');router[_0xe13a('0x5')]('/',auth[_0xe13a('0x6')](),controller[_0xe13a('0x7')]);router['get'](_0xe13a('0x8'),auth['isAuthenticated'](),controller[_0xe13a('0x9')]);router[_0xe13a('0x5')]('/:id',auth['isAuthenticated'](),controller[_0xe13a('0xa')]);router['post']('/',auth['isAuthenticated'](),controller[_0xe13a('0xb')]);router[_0xe13a('0xc')](_0xe13a('0xd'),auth[_0xe13a('0x6')](),controller['update']);router['delete'](_0xe13a('0xd'),auth['isAuthenticated'](),controller[_0xe13a('0xe')]);module[_0xe13a('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6d9=['STRING','DATE','moment','sequelize'];(function(_0x5a49c8,_0x168901){var _0x1b727b=function(_0x11646b){while(--_0x11646b){_0x5a49c8['push'](_0x5a49c8['shift']());}};_0x1b727b(++_0x168901);}(_0xf6d9,0x1e6));var _0x9f6d=function(_0x22633f,_0x227324){_0x22633f=_0x22633f-0x0;var _0x752287=_0xf6d9[_0x22633f];return _0x752287;};'use strict';var moment=require(_0x9f6d('0x0'));var Sequelize=require(_0x9f6d('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0x9f6d('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x9f6d('0x3')]},'leaveAt':{'type':Sequelize[_0x9f6d('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x9f6d('0x3')]},'reason':{'type':Sequelize[_0x9f6d('0x2')]}};
\ No newline at end of file
+var _0x5b27=['sequelize','exports','STRING','DATE'];(function(_0x211651,_0x3c9123){var _0x2d1768=function(_0x513914){while(--_0x513914){_0x211651['push'](_0x211651['shift']());}};_0x2d1768(++_0x3c9123);}(_0x5b27,0x17c));var _0x75b2=function(_0x5b48fa,_0xef0e9b){_0x5b48fa=_0x5b48fa-0x0;var _0xc52987=_0x5b27[_0x5b48fa];return _0xc52987;};'use strict';var moment=require('moment');var Sequelize=require(_0x75b2('0x0'));module[_0x75b2('0x1')]={'uniqueid':{'type':Sequelize[_0x75b2('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x75b2('0x2')]},'joinAt':{'type':Sequelize[_0x75b2('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x75b2('0x3')]},'reason':{'type':Sequelize[_0x75b2('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe130=['find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','error','stack','send','index','rawAttributes','model','query','dateStart','dateEnd','intersection','attributes','fields','hasOwnProperty','order','sort','where','filters','pick','add','day','merge','filter','options','MailQueueReport','includeAll','include','findAll','rows','catch','params','keys','length'];(function(_0x3b9490,_0x2d7527){var _0x115374=function(_0x140818){while(--_0x140818){_0x3b9490['push'](_0x3b9490['shift']());}};_0x115374(++_0x2d7527);}(_0xe130,0x12c));var _0x0e13=function(_0x5c7794,_0x8a5ac1){_0x5c7794=_0x5c7794-0x0;var _0x558507=_0xe130[_0x5c7794];return _0x558507;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0e13('0x0'));var rimraf=require(_0x0e13('0x1'));var zipdir=require(_0x0e13('0x2'));var jsonpatch=require(_0x0e13('0x3'));var rp=require(_0x0e13('0x4'));var moment=require(_0x0e13('0x5'));var BPromise=require(_0x0e13('0x6'));var Mustache=require(_0x0e13('0x7'));var util=require(_0x0e13('0x8'));var path=require(_0x0e13('0x9'));var sox=require(_0x0e13('0xa'));var csv=require('to-csv');var ejs=require(_0x0e13('0xb'));var fs=require('fs');var _=require(_0x0e13('0xc'));var squel=require(_0x0e13('0xd'));var crypto=require(_0x0e13('0xe'));var jsforce=require(_0x0e13('0xf'));var deskjs=require(_0x0e13('0x10'));var toCsv=require('to-csv');var querystring=require(_0x0e13('0x11'));var Papa=require('papaparse');var qs=require(_0x0e13('0x12'));var logger=require(_0x0e13('0x13'))(_0x0e13('0x14'));var utils=require(_0x0e13('0x15'));var config=require(_0x0e13('0x16'));var db=require(_0x0e13('0x17'))['db'];function respondWithStatusCode(_0x6f0775,_0x284e88){_0x284e88=_0x284e88||0xcc;return function(_0x2cda7d){if(_0x2cda7d){return _0x6f0775[_0x0e13('0x18')](_0x284e88);}return _0x6f0775[_0x0e13('0x19')](_0x284e88)[_0x0e13('0x1a')]();};}function respondWithResult(_0x50a70d,_0x50b021){_0x50b021=_0x50b021||0xc8;return function(_0x2a9454){if(_0x2a9454){return _0x50a70d[_0x0e13('0x19')](_0x50b021)[_0x0e13('0x1b')](_0x2a9454);}};}function respondWithFilteredResult(_0x26b419,_0x4d3ad8){return function(_0x3b8e33){if(_0x3b8e33){var _0x44c4da=_0x3b8e33[_0x0e13('0x1c')],_0x1192fb=_0x4d3ad8[_0x0e13('0x1d')],_0x519903=_0x4d3ad8[_0x0e13('0x1d')]+_0x4d3ad8[_0x0e13('0x1e')],_0x15f193;if(_0x519903>=_0x44c4da){_0x519903=_0x44c4da;_0x15f193=0xc8;}else{_0x15f193=0xce;}_0x26b419[_0x0e13('0x19')](_0x15f193);return _0x26b419[_0x0e13('0x1f')]('Content-Range',_0x1192fb+'-'+_0x519903+'/'+_0x44c4da)[_0x0e13('0x1b')](_0x3b8e33);}return null;};}function patchUpdates(_0x1a6323){return function(_0x51f1ef){try{jsonpatch[_0x0e13('0x20')](_0x51f1ef,_0x1a6323,!![]);}catch(_0x4e4411){return BPromise[_0x0e13('0x21')](_0x4e4411);}return _0x51f1ef[_0x0e13('0x22')]();};}function saveUpdates(_0x3b0cb4,_0x5dbcab){return function(_0xa2c3c7){if(_0xa2c3c7){return _0xa2c3c7[_0x0e13('0x23')](_0x3b0cb4)[_0x0e13('0x24')](function(_0xed7ab6){return _0xed7ab6;});}return null;};}function removeEntity(_0x1be1b2,_0x58db30){return function(_0x460517){if(_0x460517){return _0x460517[_0x0e13('0x25')]()[_0x0e13('0x24')](function(){_0x1be1b2[_0x0e13('0x19')](0xcc)[_0x0e13('0x1a')]();});}};}function handleEntityNotFound(_0x444e5f,_0x59db9c){return function(_0x687342){if(!_0x687342){_0x444e5f[_0x0e13('0x18')](0x194);}return _0x687342;};}function handleError(_0x553d44,_0x1ac824){_0x1ac824=_0x1ac824||0x1f4;return function(_0x1fb59b){logger[_0x0e13('0x26')](_0x1fb59b[_0x0e13('0x27')]);if(_0x1fb59b['name']){delete _0x1fb59b['name'];}_0x553d44['status'](_0x1ac824)[_0x0e13('0x28')](_0x1fb59b);};}exports[_0x0e13('0x29')]=function(_0x1c3f1c,_0x3ff727){var _0x489c29={},_0x4c0c5c={},_0x3332c6={'count':0x0,'rows':[]};var _0xc4c283=db['MailQueueReport'][_0x0e13('0x2a')];_0x4c0c5c[_0x0e13('0x2b')]=_['keys'](_0xc4c283);var _0x8f8383={'dateStart':_0x1c3f1c[_0x0e13('0x2c')][_0x0e13('0x2d')],'dateEnd':_0x1c3f1c['query'][_0x0e13('0x2e')]};delete _0x1c3f1c[_0x0e13('0x2c')]['dateStart'];delete _0x1c3f1c['query'][_0x0e13('0x2e')];_0x4c0c5c[_0x0e13('0x2c')]=_['keys'](_0x1c3f1c[_0x0e13('0x2c')]);_0x4c0c5c['filters']=_[_0x0e13('0x2f')](_0x4c0c5c[_0x0e13('0x2b')],_0x4c0c5c[_0x0e13('0x2c')]);_0x489c29[_0x0e13('0x30')]=_[_0x0e13('0x2f')](_0x4c0c5c['model'],qs['fields'](_0x1c3f1c[_0x0e13('0x2c')][_0x0e13('0x31')]));_0x489c29[_0x0e13('0x30')]=_0x489c29[_0x0e13('0x30')]['length']?_0x489c29[_0x0e13('0x30')]:_0x4c0c5c[_0x0e13('0x2b')];if(!_0x1c3f1c['query'][_0x0e13('0x32')]('nolimit')){_0x489c29['limit']=qs[_0x0e13('0x1e')](_0x1c3f1c[_0x0e13('0x2c')][_0x0e13('0x1e')]);_0x489c29[_0x0e13('0x1d')]=qs[_0x0e13('0x1d')](_0x1c3f1c[_0x0e13('0x2c')][_0x0e13('0x1d')]);}_0x489c29[_0x0e13('0x33')]=qs[_0x0e13('0x34')](_0x1c3f1c[_0x0e13('0x2c')][_0x0e13('0x34')]);_0x489c29[_0x0e13('0x35')]=qs[_0x0e13('0x36')](_[_0x0e13('0x37')](_0x1c3f1c[_0x0e13('0x2c')],_0x4c0c5c['filters']));if(_0x8f8383['dateStart']){if(_0x8f8383[_0x0e13('0x2e')]){_0x8f8383[_0x0e13('0x2e')]=moment(_0x8f8383[_0x0e13('0x2e')])[_0x0e13('0x38')](0x1,_0x0e13('0x39'));}else{_0x8f8383[_0x0e13('0x2e')]=moment(_0x8f8383[_0x0e13('0x2d')])[_0x0e13('0x38')](0x1,_0x0e13('0x39'));}_[_0x0e13('0x3a')](_0x489c29[_0x0e13('0x35')],{'createdAt':{'$gte':_0x8f8383[_0x0e13('0x2d')],'$lte':_0x8f8383[_0x0e13('0x2e')]}});}if(_0x1c3f1c[_0x0e13('0x2c')]['filter']){_0x489c29[_0x0e13('0x35')]=_[_0x0e13('0x3a')](_0x489c29[_0x0e13('0x35')],{'$or':_['map'](_0x489c29[_0x0e13('0x30')],function(_0x417710){var _0x33b31f={};_0x33b31f[_0x417710]={'$like':'%'+_0x1c3f1c['query'][_0x0e13('0x3b')]+'%'};return _0x33b31f;})});}_0x489c29=_[_0x0e13('0x3a')]({},_0x489c29,_0x1c3f1c[_0x0e13('0x3c')]);var _0xf629e4={'where':_0x489c29[_0x0e13('0x35')]};return db[_0x0e13('0x3d')][_0x0e13('0x1c')](_0xf629e4)['then'](function(_0x3e4ca7){_0x3332c6[_0x0e13('0x1c')]=_0x3e4ca7;if(_0x1c3f1c[_0x0e13('0x2c')][_0x0e13('0x3e')]){_0x489c29[_0x0e13('0x3f')]=[{'all':!![]}];}return db[_0x0e13('0x3d')][_0x0e13('0x40')](_0x489c29);})[_0x0e13('0x24')](function(_0x212735){_0x3332c6[_0x0e13('0x41')]=_0x212735;return _0x3332c6;})[_0x0e13('0x24')](respondWithFilteredResult(_0x3ff727,_0x489c29))[_0x0e13('0x42')](handleError(_0x3ff727,null));};exports['show']=function(_0x3f66cb,_0x279be1){var _0x245d0f={'raw':!![],'where':{'id':_0x3f66cb[_0x0e13('0x43')]['id']}},_0x4c28c9={};_0x4c28c9[_0x0e13('0x2b')]=_[_0x0e13('0x44')](db[_0x0e13('0x3d')][_0x0e13('0x2a')]);_0x4c28c9[_0x0e13('0x2c')]=_[_0x0e13('0x44')](_0x3f66cb[_0x0e13('0x2c')]);_0x4c28c9[_0x0e13('0x36')]=_[_0x0e13('0x2f')](_0x4c28c9[_0x0e13('0x2b')],_0x4c28c9[_0x0e13('0x2c')]);_0x245d0f['attributes']=_[_0x0e13('0x2f')](_0x4c28c9[_0x0e13('0x2b')],qs[_0x0e13('0x31')](_0x3f66cb[_0x0e13('0x2c')][_0x0e13('0x31')]));_0x245d0f['attributes']=_0x245d0f[_0x0e13('0x30')][_0x0e13('0x45')]?_0x245d0f['attributes']:_0x4c28c9[_0x0e13('0x2b')];if(_0x3f66cb[_0x0e13('0x2c')]['includeAll']){_0x245d0f['include']=[{'all':!![]}];}_0x245d0f=_['merge']({},_0x245d0f,_0x3f66cb['options']);return db[_0x0e13('0x3d')][_0x0e13('0x46')](_0x245d0f)[_0x0e13('0x24')](handleEntityNotFound(_0x279be1,null))[_0x0e13('0x24')](respondWithResult(_0x279be1,null))[_0x0e13('0x42')](handleError(_0x279be1,null));};exports[_0x0e13('0x47')]=function(_0x537b81,_0x82abf0){return db[_0x0e13('0x3d')]['create'](_0x537b81['body'],{})[_0x0e13('0x24')](respondWithResult(_0x82abf0,0xc9))['catch'](handleError(_0x82abf0,null));};exports['update']=function(_0x3d7859,_0x375606){if(_0x3d7859[_0x0e13('0x48')]['id']){delete _0x3d7859['body']['id'];}return db[_0x0e13('0x3d')][_0x0e13('0x46')]({'where':{'id':_0x3d7859[_0x0e13('0x43')]['id']}})[_0x0e13('0x24')](handleEntityNotFound(_0x375606,null))[_0x0e13('0x24')](saveUpdates(_0x3d7859[_0x0e13('0x48')],null))[_0x0e13('0x24')](respondWithResult(_0x375606,null))[_0x0e13('0x42')](handleError(_0x375606,null));};exports[_0x0e13('0x25')]=function(_0x3e034e,_0x1d6c41){return db['MailQueueReport'][_0x0e13('0x46')]({'where':{'id':_0x3e034e[_0x0e13('0x43')]['id']}})['then'](handleEntityNotFound(_0x1d6c41,null))['then'](removeEntity(_0x1d6c41,null))[_0x0e13('0x42')](handleError(_0x1d6c41,null));};exports[_0x0e13('0x49')]=function(_0x24e058,_0x4607d1){return db['MailQueueReport'][_0x0e13('0x49')]()[_0x0e13('0x24')](respondWithResult(_0x4607d1,null))['catch'](handleError(_0x4607d1,null));};
\ No newline at end of file
+var _0xbf7e=['stack','name','send','index','MailQueueReport','rawAttributes','model','keys','query','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','pick','dateStart','day','where','filter','merge','map','options','findAll','rows','catch','params','include','find','create','body','update','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','count','offset','set','Content-Range','reject','save','then','sendStatus','error'];(function(_0x2e0156,_0x31f598){var _0xb0dca4=function(_0x288164){while(--_0x288164){_0x2e0156['push'](_0x2e0156['shift']());}};_0xb0dca4(++_0x31f598);}(_0xbf7e,0x17e));var _0xebf7=function(_0x44a0ac,_0xb81ed4){_0x44a0ac=_0x44a0ac-0x0;var _0x505591=_0xbf7e[_0x44a0ac];return _0x505591;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xebf7('0x0'));var zipdir=require(_0xebf7('0x1'));var jsonpatch=require(_0xebf7('0x2'));var rp=require(_0xebf7('0x3'));var moment=require(_0xebf7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xebf7('0x5'));var util=require('util');var path=require(_0xebf7('0x6'));var sox=require('sox');var csv=require(_0xebf7('0x7'));var ejs=require(_0xebf7('0x8'));var fs=require('fs');var _=require(_0xebf7('0x9'));var squel=require(_0xebf7('0xa'));var crypto=require('crypto');var jsforce=require(_0xebf7('0xb'));var deskjs=require(_0xebf7('0xc'));var toCsv=require(_0xebf7('0x7'));var querystring=require(_0xebf7('0xd'));var Papa=require(_0xebf7('0xe'));var Redis=require('ioredis');var qs=require(_0xebf7('0xf'));var logger=require(_0xebf7('0x10'))(_0xebf7('0x11'));var utils=require(_0xebf7('0x12'));var config=require('../../config/environment');var db=require(_0xebf7('0x13'))['db'];function respondWithStatusCode(_0x3928d4,_0x294cd3){_0x294cd3=_0x294cd3||0xcc;return function(_0x40a25d){if(_0x40a25d){return _0x3928d4['sendStatus'](_0x294cd3);}return _0x3928d4[_0xebf7('0x14')](_0x294cd3)[_0xebf7('0x15')]();};}function respondWithResult(_0x2a7570,_0x2a3387){_0x2a3387=_0x2a3387||0xc8;return function(_0x25d717){if(_0x25d717){return _0x2a7570[_0xebf7('0x14')](_0x2a3387)[_0xebf7('0x16')](_0x25d717);}};}function respondWithFilteredResult(_0x58cc48,_0x16735a){return function(_0x42b94d){if(_0x42b94d){var _0x5d6540=_0x42b94d[_0xebf7('0x17')],_0x74701d=_0x16735a[_0xebf7('0x18')],_0x5d9d41=_0x16735a['offset']+_0x16735a['limit'],_0xae1f06;if(_0x5d9d41>=_0x5d6540){_0x5d9d41=_0x5d6540;_0xae1f06=0xc8;}else{_0xae1f06=0xce;}_0x58cc48[_0xebf7('0x14')](_0xae1f06);return _0x58cc48[_0xebf7('0x19')](_0xebf7('0x1a'),_0x74701d+'-'+_0x5d9d41+'/'+_0x5d6540)[_0xebf7('0x16')](_0x42b94d);}return null;};}function patchUpdates(_0x367b5f){return function(_0x289b61){try{jsonpatch['apply'](_0x289b61,_0x367b5f,!![]);}catch(_0x648bab){return BPromise[_0xebf7('0x1b')](_0x648bab);}return _0x289b61[_0xebf7('0x1c')]();};}function saveUpdates(_0x2db70e,_0x41c9aa){return function(_0x4dcab7){if(_0x4dcab7){return _0x4dcab7['update'](_0x2db70e)[_0xebf7('0x1d')](function(_0x204dda){return _0x204dda;});}return null;};}function removeEntity(_0x461c25,_0x183621){return function(_0xd2d1de){if(_0xd2d1de){return _0xd2d1de['destroy']()[_0xebf7('0x1d')](function(){_0x461c25['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xd2e6ad,_0x260048){return function(_0x4c664b){if(!_0x4c664b){_0xd2e6ad[_0xebf7('0x1e')](0x194);}return _0x4c664b;};}function handleError(_0x2e7011,_0x4abe28){_0x4abe28=_0x4abe28||0x1f4;return function(_0x333bf6){logger[_0xebf7('0x1f')](_0x333bf6[_0xebf7('0x20')]);if(_0x333bf6[_0xebf7('0x21')]){delete _0x333bf6[_0xebf7('0x21')];}_0x2e7011[_0xebf7('0x14')](_0x4abe28)[_0xebf7('0x22')](_0x333bf6);};}exports[_0xebf7('0x23')]=function(_0x321d34,_0x26c8cc){var _0x2bdb45={},_0x128a9f={},_0x5c553c={'count':0x0,'rows':[]};var _0x58d5e5=db[_0xebf7('0x24')][_0xebf7('0x25')];_0x128a9f[_0xebf7('0x26')]=_[_0xebf7('0x27')](_0x58d5e5);var _0x277666={'dateStart':_0x321d34['query']['dateStart'],'dateEnd':_0x321d34[_0xebf7('0x28')]['dateEnd']};delete _0x321d34[_0xebf7('0x28')]['dateStart'];delete _0x321d34[_0xebf7('0x28')][_0xebf7('0x29')];_0x128a9f[_0xebf7('0x28')]=_['keys'](_0x321d34[_0xebf7('0x28')]);_0x128a9f[_0xebf7('0x2a')]=_[_0xebf7('0x2b')](_0x128a9f[_0xebf7('0x26')],_0x128a9f[_0xebf7('0x28')]);_0x2bdb45[_0xebf7('0x2c')]=_[_0xebf7('0x2b')](_0x128a9f[_0xebf7('0x26')],qs[_0xebf7('0x2d')](_0x321d34[_0xebf7('0x28')][_0xebf7('0x2d')]));_0x2bdb45['attributes']=_0x2bdb45['attributes']['length']?_0x2bdb45[_0xebf7('0x2c')]:_0x128a9f[_0xebf7('0x26')];if(!_0x321d34['query'][_0xebf7('0x2e')](_0xebf7('0x2f'))){_0x2bdb45[_0xebf7('0x30')]=qs['limit'](_0x321d34['query'][_0xebf7('0x30')]);_0x2bdb45[_0xebf7('0x18')]=qs[_0xebf7('0x18')](_0x321d34[_0xebf7('0x28')][_0xebf7('0x18')]);}_0x2bdb45[_0xebf7('0x31')]=qs[_0xebf7('0x32')](_0x321d34[_0xebf7('0x28')][_0xebf7('0x32')]);_0x2bdb45['where']=qs['filters'](_[_0xebf7('0x33')](_0x321d34[_0xebf7('0x28')],_0x128a9f[_0xebf7('0x2a')]));if(_0x277666[_0xebf7('0x34')]){if(_0x277666[_0xebf7('0x29')]){_0x277666[_0xebf7('0x29')]=moment(_0x277666[_0xebf7('0x29')])['add'](0x1,'day');}else{_0x277666[_0xebf7('0x29')]=moment(_0x277666['dateStart'])['add'](0x1,_0xebf7('0x35'));}_['merge'](_0x2bdb45[_0xebf7('0x36')],{'createdAt':{'$gte':_0x277666[_0xebf7('0x34')],'$lte':_0x277666[_0xebf7('0x29')]}});}if(_0x321d34['query'][_0xebf7('0x37')]){_0x2bdb45[_0xebf7('0x36')]=_[_0xebf7('0x38')](_0x2bdb45[_0xebf7('0x36')],{'$or':_[_0xebf7('0x39')](_0x2bdb45[_0xebf7('0x2c')],function(_0x574137){var _0x1cba5b={};_0x1cba5b[_0x574137]={'$like':'%'+_0x321d34['query'][_0xebf7('0x37')]+'%'};return _0x1cba5b;})});}_0x2bdb45=_[_0xebf7('0x38')]({},_0x2bdb45,_0x321d34[_0xebf7('0x3a')]);var _0x358d1d={'where':_0x2bdb45[_0xebf7('0x36')]};return db[_0xebf7('0x24')][_0xebf7('0x17')](_0x358d1d)['then'](function(_0x49a694){_0x5c553c[_0xebf7('0x17')]=_0x49a694;if(_0x321d34[_0xebf7('0x28')]['includeAll']){_0x2bdb45['include']=[{'all':!![]}];}return db[_0xebf7('0x24')][_0xebf7('0x3b')](_0x2bdb45);})[_0xebf7('0x1d')](function(_0x1acf8d){_0x5c553c[_0xebf7('0x3c')]=_0x1acf8d;return _0x5c553c;})[_0xebf7('0x1d')](respondWithFilteredResult(_0x26c8cc,_0x2bdb45))[_0xebf7('0x3d')](handleError(_0x26c8cc,null));};exports['show']=function(_0x444c16,_0x3be5d4){var _0x9985e0={'raw':!![],'where':{'id':_0x444c16[_0xebf7('0x3e')]['id']}},_0x2c9566={};_0x2c9566[_0xebf7('0x26')]=_['keys'](db[_0xebf7('0x24')][_0xebf7('0x25')]);_0x2c9566[_0xebf7('0x28')]=_['keys'](_0x444c16[_0xebf7('0x28')]);_0x2c9566[_0xebf7('0x2a')]=_[_0xebf7('0x2b')](_0x2c9566[_0xebf7('0x26')],_0x2c9566['query']);_0x9985e0[_0xebf7('0x2c')]=_[_0xebf7('0x2b')](_0x2c9566[_0xebf7('0x26')],qs[_0xebf7('0x2d')](_0x444c16[_0xebf7('0x28')][_0xebf7('0x2d')]));_0x9985e0[_0xebf7('0x2c')]=_0x9985e0[_0xebf7('0x2c')]['length']?_0x9985e0[_0xebf7('0x2c')]:_0x2c9566[_0xebf7('0x26')];if(_0x444c16[_0xebf7('0x28')]['includeAll']){_0x9985e0[_0xebf7('0x3f')]=[{'all':!![]}];}_0x9985e0=_[_0xebf7('0x38')]({},_0x9985e0,_0x444c16['options']);return db[_0xebf7('0x24')][_0xebf7('0x40')](_0x9985e0)[_0xebf7('0x1d')](handleEntityNotFound(_0x3be5d4,null))[_0xebf7('0x1d')](respondWithResult(_0x3be5d4,null))['catch'](handleError(_0x3be5d4,null));};exports['create']=function(_0x10cd3f,_0xf7a1f8){return db[_0xebf7('0x24')][_0xebf7('0x41')](_0x10cd3f[_0xebf7('0x42')],{})[_0xebf7('0x1d')](respondWithResult(_0xf7a1f8,0xc9))[_0xebf7('0x3d')](handleError(_0xf7a1f8,null));};exports[_0xebf7('0x43')]=function(_0x4b7ae4,_0x52b16e){if(_0x4b7ae4['body']['id']){delete _0x4b7ae4[_0xebf7('0x42')]['id'];}return db[_0xebf7('0x24')]['find']({'where':{'id':_0x4b7ae4['params']['id']}})[_0xebf7('0x1d')](handleEntityNotFound(_0x52b16e,null))[_0xebf7('0x1d')](saveUpdates(_0x4b7ae4[_0xebf7('0x42')],null))[_0xebf7('0x1d')](respondWithResult(_0x52b16e,null))[_0xebf7('0x3d')](handleError(_0x52b16e,null));};exports['destroy']=function(_0x383ecd,_0xdef8d2){return db['MailQueueReport'][_0xebf7('0x40')]({'where':{'id':_0x383ecd[_0xebf7('0x3e')]['id']}})[_0xebf7('0x1d')](handleEntityNotFound(_0xdef8d2,null))[_0xebf7('0x1d')](removeEntity(_0xdef8d2,null))['catch'](handleError(_0xdef8d2,null));};exports[_0xebf7('0x44')]=function(_0x461404,_0x2afff6){return db[_0xebf7('0x24')]['describe']()['then'](respondWithResult(_0x2afff6,null))[_0xebf7('0x3d')](handleError(_0x2afff6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad34=['lodash','api','request-promise','./mailQueueReport.attributes','exports','define','MailQueueReport','uniqueid'];(function(_0x51d462,_0x199f9b){var _0x3d56b1=function(_0x360342){while(--_0x360342){_0x51d462['push'](_0x51d462['shift']());}};_0x3d56b1(++_0x199f9b);}(_0xad34,0x80));var _0x4ad3=function(_0x441b26,_0x131064){_0x441b26=_0x441b26-0x0;var _0x58eebc=_0xad34[_0x441b26];return _0x58eebc;};'use strict';var _=require(_0x4ad3('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x4ad3('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x4ad3('0x2'));var attributes=require(_0x4ad3('0x3'));module[_0x4ad3('0x4')]=function(_0x14fbcf,_0x18c1cb){return _0x14fbcf[_0x4ad3('0x5')](_0x4ad3('0x6'),attributes,{'tableName':'report_mail_queue','paranoid':![],'indexes':[{'name':_0x4ad3('0x7'),'fields':[_0x4ad3('0x7')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc740=['util','../../config/logger','api','moment','bluebird','request-promise','define','report_mail_queue','lodash'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc740,0xaa));var _0x0c74=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc740[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x0c74('0x0'));var util=require(_0x0c74('0x1'));var logger=require(_0x0c74('0x2'))(_0x0c74('0x3'));var moment=require(_0x0c74('0x4'));var BPromise=require(_0x0c74('0x5'));var rp=require(_0x0c74('0x6'));var attributes=require('./mailQueueReport.attributes');module['exports']=function(_0x254100,_0x362093){return _0x254100[_0x0c74('0x7')]('MailQueueReport',attributes,{'tableName':_0x0c74('0x8'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0464=['debug','request\x20sent','stringify','error','code','message','catch','CreateMailQueueReport','options','UpdateMailQueueReport','MailQueueReport','update','body','raw','attributes','limit','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','info','MailQueueReport,\x20%s,\x20%s'];(function(_0x46bd29,_0x38aa42){var _0x196b81=function(_0x54b877){while(--_0x54b877){_0x46bd29['push'](_0x46bd29['shift']());}};_0x196b81(++_0x38aa42);}(_0x0464,0x100));var _0x4046=function(_0x5940a8,_0x1fd189){_0x5940a8=_0x5940a8-0x0;var _0x1a8508=_0x0464[_0x5940a8];return _0x1a8508;};'use strict';var _=require(_0x4046('0x0'));var util=require(_0x4046('0x1'));var moment=require(_0x4046('0x2'));var BPromise=require(_0x4046('0x3'));var rs=require(_0x4046('0x4'));var fs=require('fs');var db=require(_0x4046('0x5'))['db'];var utils=require(_0x4046('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x4046('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x4046('0x8')][_0x4046('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5b2ba6,_0x54ee67,_0x448885){return new BPromise(function(_0x2f98f9,_0x482d3a){return client[_0x4046('0xa')](_0x5b2ba6,_0x448885)[_0x4046('0xb')](function(_0x3a1a45){logger[_0x4046('0xc')](_0x4046('0xd'),_0x54ee67,'request\x20sent');logger[_0x4046('0xe')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x54ee67,_0x4046('0xf'),JSON[_0x4046('0x10')](_0x3a1a45));if(_0x3a1a45[_0x4046('0x11')]){if(_0x3a1a45[_0x4046('0x11')][_0x4046('0x12')]===0x1f4){logger['error'](_0x4046('0xd'),_0x54ee67,_0x3a1a45[_0x4046('0x11')][_0x4046('0x13')]);return _0x482d3a(_0x3a1a45[_0x4046('0x11')][_0x4046('0x13')]);}logger['error'](_0x4046('0xd'),_0x54ee67,_0x3a1a45[_0x4046('0x11')]['message']);return _0x2f98f9(_0x3a1a45[_0x4046('0x11')][_0x4046('0x13')]);}else{logger[_0x4046('0xc')](_0x4046('0xd'),_0x54ee67,_0x4046('0xf'));_0x2f98f9(_0x3a1a45['result'][_0x4046('0x13')]);}})[_0x4046('0x14')](function(_0x4411fb){logger[_0x4046('0x11')](_0x4046('0xd'),_0x54ee67,_0x4411fb);_0x482d3a(_0x4411fb);});});}exports[_0x4046('0x15')]=function(_0x35fd5b){var _0x15dc62=this;return new Promise(function(_0x42ccd7,_0x35a715){return db['MailQueueReport']['create'](_0x35fd5b['body'],{'raw':_0x35fd5b[_0x4046('0x16')]?_0x35fd5b[_0x4046('0x16')]['raw']===undefined?!![]:![]:!![]})[_0x4046('0xb')](function(_0x6b2d60){logger['info'](_0x4046('0x15'),_0x35fd5b);logger[_0x4046('0xe')](_0x4046('0x15'),_0x35fd5b,JSON[_0x4046('0x10')](_0x6b2d60));_0x42ccd7(_0x6b2d60);})[_0x4046('0x14')](function(_0x31174c){logger['error']('CreateMailQueueReport',_0x31174c['message'],_0x35fd5b);_0x35a715(_0x15dc62[_0x4046('0x11')](0x1f4,_0x31174c[_0x4046('0x13')]));});});};exports[_0x4046('0x17')]=function(_0x1cdcb4){var _0x81ab4b=this;return new Promise(function(_0x44453f,_0x50e738){return db[_0x4046('0x18')][_0x4046('0x19')](_0x1cdcb4[_0x4046('0x1a')],{'raw':_0x1cdcb4['options']?_0x1cdcb4[_0x4046('0x16')][_0x4046('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1cdcb4[_0x4046('0x16')]?_0x1cdcb4[_0x4046('0x16')]['where']||null:null,'attributes':_0x1cdcb4[_0x4046('0x16')]?_0x1cdcb4['options'][_0x4046('0x1c')]||null:null,'limit':_0x1cdcb4[_0x4046('0x16')]?_0x1cdcb4[_0x4046('0x16')][_0x4046('0x1d')]||null:null})['then'](function(_0xc8c9b3){logger[_0x4046('0xc')](_0x4046('0x17'),_0x1cdcb4);logger[_0x4046('0xe')](_0x4046('0x17'),_0x1cdcb4,JSON[_0x4046('0x10')](_0xc8c9b3));_0x44453f(_0xc8c9b3);})[_0x4046('0x14')](function(_0x2b9a6c){logger[_0x4046('0x11')](_0x4046('0x17'),_0x2b9a6c['message'],_0x1cdcb4);_0x50e738(_0x81ab4b[_0x4046('0x11')](0x1f4,_0x2b9a6c[_0x4046('0x13')]));});});};
\ No newline at end of file
+var _0xbf2d=['MailQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','MailQueueReport','create','options','raw','CreateMailQueueReport','UpdateMailQueueReport','update','body','limit','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','request','then','MailQueueReport,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x4c66b2,_0x47e1ff){var _0x362ed1=function(_0xb0eae5){while(--_0xb0eae5){_0x4c66b2['push'](_0x4c66b2['shift']());}};_0x362ed1(++_0x47e1ff);}(_0xbf2d,0xe2));var _0xdbf2=function(_0x12f6f8,_0x37a0bc){_0x12f6f8=_0x12f6f8-0x0;var _0x1fa68f=_0xbf2d[_0x12f6f8];return _0x1fa68f;};'use strict';var _=require(_0xdbf2('0x0'));var util=require(_0xdbf2('0x1'));var moment=require('moment');var BPromise=require(_0xdbf2('0x2'));var rs=require(_0xdbf2('0x3'));var fs=require('fs');var Redis=require(_0xdbf2('0x4'));var db=require(_0xdbf2('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xdbf2('0x6'))('rpc');var config=require(_0xdbf2('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xdbf2('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x9334f,_0x13ffbb,_0x2e4e7d){return new BPromise(function(_0x372172,_0x4017e6){return client[_0xdbf2('0x9')](_0x9334f,_0x2e4e7d)[_0xdbf2('0xa')](function(_0x9192b9){logger['info'](_0xdbf2('0xb'),_0x13ffbb,_0xdbf2('0xc'));logger[_0xdbf2('0xd')](_0xdbf2('0xe'),_0x13ffbb,_0xdbf2('0xc'),JSON[_0xdbf2('0xf')](_0x9192b9));if(_0x9192b9['error']){if(_0x9192b9[_0xdbf2('0x10')][_0xdbf2('0x11')]===0x1f4){logger['error']('MailQueueReport,\x20%s,\x20%s',_0x13ffbb,_0x9192b9[_0xdbf2('0x10')][_0xdbf2('0x12')]);return _0x4017e6(_0x9192b9[_0xdbf2('0x10')][_0xdbf2('0x12')]);}logger[_0xdbf2('0x10')](_0xdbf2('0xb'),_0x13ffbb,_0x9192b9[_0xdbf2('0x10')][_0xdbf2('0x12')]);return _0x372172(_0x9192b9['error'][_0xdbf2('0x12')]);}else{logger[_0xdbf2('0x13')]('MailQueueReport,\x20%s,\x20%s',_0x13ffbb,'request\x20sent');_0x372172(_0x9192b9['result'][_0xdbf2('0x12')]);}})[_0xdbf2('0x14')](function(_0x48acff){logger[_0xdbf2('0x10')](_0xdbf2('0xb'),_0x13ffbb,_0x48acff);_0x4017e6(_0x48acff);});});}exports['CreateMailQueueReport']=function(_0x53b058){var _0x396e9c=this;return new Promise(function(_0x55f2a4,_0x441466){return db[_0xdbf2('0x15')][_0xdbf2('0x16')](_0x53b058['body'],{'raw':_0x53b058[_0xdbf2('0x17')]?_0x53b058[_0xdbf2('0x17')][_0xdbf2('0x18')]===undefined?!![]:![]:!![]})[_0xdbf2('0xa')](function(_0x2a296e){logger[_0xdbf2('0x13')]('CreateMailQueueReport',_0x53b058);logger[_0xdbf2('0xd')](_0xdbf2('0x19'),_0x53b058,JSON[_0xdbf2('0xf')](_0x2a296e));_0x55f2a4(_0x2a296e);})[_0xdbf2('0x14')](function(_0x3e498d){logger['error'](_0xdbf2('0x19'),_0x3e498d[_0xdbf2('0x12')],_0x53b058);_0x441466(_0x396e9c[_0xdbf2('0x10')](0x1f4,_0x3e498d[_0xdbf2('0x12')]));});});};exports[_0xdbf2('0x1a')]=function(_0x219db6){var _0x3b8a85=this;return new Promise(function(_0xacab4f,_0x127668){return db[_0xdbf2('0x15')][_0xdbf2('0x1b')](_0x219db6[_0xdbf2('0x1c')],{'raw':_0x219db6[_0xdbf2('0x17')]?_0x219db6['options'][_0xdbf2('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x219db6[_0xdbf2('0x17')]?_0x219db6[_0xdbf2('0x17')]['where']||null:null,'attributes':_0x219db6[_0xdbf2('0x17')]?_0x219db6[_0xdbf2('0x17')]['attributes']||null:null,'limit':_0x219db6[_0xdbf2('0x17')]?_0x219db6[_0xdbf2('0x17')][_0xdbf2('0x1d')]||null:null})[_0xdbf2('0xa')](function(_0x5d4161){logger[_0xdbf2('0x13')]('UpdateMailQueueReport',_0x219db6);logger['debug']('UpdateMailQueueReport',_0x219db6,JSON[_0xdbf2('0xf')](_0x5d4161));_0xacab4f(_0x5d4161);})[_0xdbf2('0x14')](function(_0x1e457e){logger['error']('UpdateMailQueueReport',_0x1e457e[_0xdbf2('0x12')],_0x219db6);_0x127668(_0x3b8a85['error'](0x1f4,_0x1e457e[_0xdbf2('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabce=['../../components/interaction/service','../../config/environment','exports','multer','util','path','connect-timeout','express'];(function(_0x1ef8f1,_0x35804f){var _0x3ef6bb=function(_0x10e1ee){while(--_0x10e1ee){_0x1ef8f1['push'](_0x1ef8f1['shift']());}};_0x3ef6bb(++_0x35804f);}(_0xabce,0x103));var _0xeabc=function(_0x3de8a4,_0x289a5c){_0x3de8a4=_0x3de8a4-0x0;var _0x4635cf=_0xabce[_0x3de8a4];return _0x4635cf;};'use strict';var multer=require(_0xeabc('0x0'));var util=require(_0xeabc('0x1'));var path=require(_0xeabc('0x2'));var timeout=require(_0xeabc('0x3'));var express=require(_0xeabc('0x4'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0xeabc('0x5'));var config=require(_0xeabc('0x6'));module[_0xeabc('0x7')]=router;
\ No newline at end of file
+var _0xb470=['connect-timeout','Router','../../components/auth/service','../../components/interaction/service','exports','multer','util','path'];(function(_0x48f457,_0x4530c9){var _0x4e5d88=function(_0x44ffb2){while(--_0x44ffb2){_0x48f457['push'](_0x48f457['shift']());}};_0x4e5d88(++_0x4530c9);}(_0xb470,0x75));var _0x0b47=function(_0x440ea5,_0x5af7d1){_0x440ea5=_0x440ea5-0x0;var _0x45e297=_0xb470[_0x440ea5];return _0x45e297;};'use strict';var multer=require(_0x0b47('0x0'));var util=require(_0x0b47('0x1'));var path=require(_0x0b47('0x2'));var timeout=require(_0x0b47('0x3'));var express=require('express');var router=express[_0x0b47('0x4')]();var auth=require(_0x0b47('0x5'));var interaction=require(_0x0b47('0x6'));var config=require('../../config/environment');module[_0x0b47('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13f6=['BOOLEAN','STRING','username','INTEGER','sequelize','exports'];(function(_0xa60003,_0x4ba6dc){var _0x488712=function(_0x53e44d){while(--_0x53e44d){_0xa60003['push'](_0xa60003['shift']());}};_0x488712(++_0x4ba6dc);}(_0x13f6,0x124));var _0x613f=function(_0x35e8cb,_0xe7c180){_0x35e8cb=_0x35e8cb-0x0;var _0x51ed48=_0x13f6[_0x35e8cb];return _0x51ed48;};'use strict';var Sequelize=require(_0x613f('0x0'));module[_0x613f('0x1')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize[_0x613f('0x2')],'defaultValue':!![]},'user':{'type':Sequelize[_0x613f('0x3')],'unique':_0x613f('0x4')},'password':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x613f('0x5')]},'tls':{'type':Sequelize[_0x613f('0x2')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x613f('0x3')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0x613f('0x5')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x613f('0x5')],'defaultValue':0x5},'service':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xd523=['BOOLEAN','INBOX','INTEGER','sequelize','exports','STRING','username'];(function(_0x524c52,_0x6d25cd){var _0x2d3782=function(_0x2b1058){while(--_0x2b1058){_0x524c52['push'](_0x524c52['shift']());}};_0x2d3782(++_0x6d25cd);}(_0xd523,0x153));var _0x3d52=function(_0x128f10,_0x1b3005){_0x128f10=_0x128f10-0x0;var _0x4ac25d=_0xd523[_0x128f10];return _0x4ac25d;};'use strict';var Sequelize=require(_0x3d52('0x0'));module[_0x3d52('0x1')]={'description':{'type':Sequelize[_0x3d52('0x2')]},'host':{'type':Sequelize[_0x3d52('0x2')]},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'user':{'type':Sequelize[_0x3d52('0x2')],'unique':_0x3d52('0x3')},'password':{'type':Sequelize[_0x3d52('0x2')]},'port':{'type':Sequelize['INTEGER']},'tls':{'type':Sequelize[_0x3d52('0x4')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x3d52('0x2')],'defaultValue':_0x3d52('0x5')},'connTimeout':{'type':Sequelize[_0x3d52('0x6')],'defaultValue':0xa},'authTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x5},'service':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9993=['mail_servers_in','lodash','../../config/logger','api','moment','request-promise','exports','MailServerIn'];(function(_0x92c450,_0x41f1e3){var _0x2a9599=function(_0x4f27df){while(--_0x4f27df){_0x92c450['push'](_0x92c450['shift']());}};_0x2a9599(++_0x41f1e3);}(_0x9993,0x109));var _0x3999=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x9993[_0x27af45];return _0x18df21;};'use strict';var _=require(_0x3999('0x0'));var util=require('util');var logger=require(_0x3999('0x1'))(_0x3999('0x2'));var moment=require(_0x3999('0x3'));var BPromise=require('bluebird');var rp=require(_0x3999('0x4'));var attributes=require('./mailServerIn.attributes');module[_0x3999('0x5')]=function(_0x145a79,_0x46e147){return _0x145a79['define'](_0x3999('0x6'),attributes,{'tableName':_0x3999('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4e5c=['mail_servers_in','lodash','../../config/logger','moment','bluebird','request-promise','define','MailServerIn'];(function(_0x4e3e44,_0x3207c1){var _0x183128=function(_0x5eb562){while(--_0x5eb562){_0x4e3e44['push'](_0x4e3e44['shift']());}};_0x183128(++_0x3207c1);}(_0x4e5c,0x149));var _0xc4e5=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0x4e5c[_0xaa1b3e];return _0x454d7d;};'use strict';var _=require(_0xc4e5('0x0'));var util=require('util');var logger=require(_0xc4e5('0x1'))('api');var moment=require(_0xc4e5('0x2'));var BPromise=require(_0xc4e5('0x3'));var rp=require(_0xc4e5('0x4'));var attributes=require('./mailServerIn.attributes');module['exports']=function(_0x4ecd96,_0x2897d3){return _0x4ecd96[_0xc4e5('0x5')](_0xc4e5('0x6'),attributes,{'tableName':_0xc4e5('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2356=['MailServerIn','findAll','options','raw','where','limit','include','model','attributes','map','debug','util','moment','../../mysqldb','../../config/utils','../../config/environment','http','request','info','MailServerIn,\x20%s,\x20%s','request\x20sent','MailServerIn,\x20%s,\x20%s,\x20%s','stringify','error','message','result','GetMailServerIn'];(function(_0x12906d,_0x2c3101){var _0x579bdd=function(_0x292335){while(--_0x292335){_0x12906d['push'](_0x12906d['shift']());}};_0x579bdd(++_0x2c3101);}(_0x2356,0x14f));var _0x6235=function(_0x4b9617,_0x1bdf76){_0x4b9617=_0x4b9617-0x0;var _0x5f04ab=_0x2356[_0x4b9617];return _0x5f04ab;};'use strict';var _=require('lodash');var util=require(_0x6235('0x0'));var moment=require(_0x6235('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x6235('0x2'))['db'];var utils=require(_0x6235('0x3'));var logger=require('../../config/logger')('rpc');var config=require(_0x6235('0x4'));var jayson=require('jayson/promise');var client=jayson['client'][_0x6235('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x17e08f,_0x3663e7,_0x47f3a5){return new BPromise(function(_0x4c15c6,_0x547159){return client[_0x6235('0x6')](_0x17e08f,_0x47f3a5)['then'](function(_0x337e26){logger[_0x6235('0x7')](_0x6235('0x8'),_0x3663e7,_0x6235('0x9'));logger['debug'](_0x6235('0xa'),_0x3663e7,_0x6235('0x9'),JSON[_0x6235('0xb')](_0x337e26));if(_0x337e26[_0x6235('0xc')]){if(_0x337e26[_0x6235('0xc')]['code']===0x1f4){logger[_0x6235('0xc')](_0x6235('0x8'),_0x3663e7,_0x337e26[_0x6235('0xc')][_0x6235('0xd')]);return _0x547159(_0x337e26['error'][_0x6235('0xd')]);}logger[_0x6235('0xc')]('MailServerIn,\x20%s,\x20%s',_0x3663e7,_0x337e26[_0x6235('0xc')]['message']);return _0x4c15c6(_0x337e26[_0x6235('0xc')][_0x6235('0xd')]);}else{logger['info'](_0x6235('0x8'),_0x3663e7,_0x6235('0x9'));_0x4c15c6(_0x337e26[_0x6235('0xe')][_0x6235('0xd')]);}})['catch'](function(_0x37b728){logger[_0x6235('0xc')](_0x6235('0x8'),_0x3663e7,_0x37b728);_0x547159(_0x37b728);});});}exports[_0x6235('0xf')]=function(_0x78f0db){var _0x2a3554=this;return new Promise(function(_0x3f7e2e,_0x22f090){return db[_0x6235('0x10')][_0x6235('0x11')]({'raw':_0x78f0db['options']?_0x78f0db[_0x6235('0x12')][_0x6235('0x13')]===undefined?!![]:![]:!![],'where':_0x78f0db['options']?_0x78f0db['options'][_0x6235('0x14')]||null:null,'attributes':_0x78f0db['options']?_0x78f0db['options']['attributes']||null:null,'limit':_0x78f0db[_0x6235('0x12')]?_0x78f0db[_0x6235('0x12')][_0x6235('0x15')]||null:null,'include':_0x78f0db[_0x6235('0x12')]?_0x78f0db[_0x6235('0x12')][_0x6235('0x16')]?_['map'](_0x78f0db['options'][_0x6235('0x16')],function(_0x5ac43d){return{'model':db[_0x5ac43d[_0x6235('0x17')]],'as':_0x5ac43d['as'],'attributes':_0x5ac43d[_0x6235('0x18')],'include':_0x5ac43d[_0x6235('0x16')]?_[_0x6235('0x19')](_0x5ac43d[_0x6235('0x16')],function(_0x531446){return{'model':db[_0x531446[_0x6235('0x17')]],'as':_0x531446['as'],'attributes':_0x531446[_0x6235('0x18')],'include':_0x531446[_0x6235('0x16')]?_[_0x6235('0x19')](_0x531446[_0x6235('0x16')],function(_0x5a58d9){return{'model':db[_0x5a58d9['model']],'as':_0x5a58d9['as'],'attributes':_0x5a58d9['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5aa9fa){logger[_0x6235('0x7')](_0x6235('0xf'),_0x78f0db);logger[_0x6235('0x1a')](_0x6235('0xf'),_0x78f0db,JSON[_0x6235('0xb')](_0x5aa9fa));_0x3f7e2e(_0x5aa9fa);})['catch'](function(_0x47e86b){logger['error'](_0x6235('0xf'),_0x47e86b['message'],_0x78f0db);_0x22f090(_0x2a3554[_0x6235('0xc')](0x1f4,_0x47e86b[_0x6235('0xd')]));});});};
\ No newline at end of file
+var _0x069f=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','info','MailServerIn,\x20%s,\x20%s','request\x20sent','MailServerIn,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','findAll','raw','options','where','attributes','include','map','model','GetMailServerIn','lodash','util','moment'];(function(_0x19dd8a,_0x4af545){var _0x6245d3=function(_0x16e70b){while(--_0x16e70b){_0x19dd8a['push'](_0x19dd8a['shift']());}};_0x6245d3(++_0x4af545);}(_0x069f,0x1aa));var _0xf069=function(_0x7611ce,_0x4a4441){_0x7611ce=_0x7611ce-0x0;var _0x67d3ab=_0x069f[_0x7611ce];return _0x67d3ab;};'use strict';var _=require(_0xf069('0x0'));var util=require(_0xf069('0x1'));var moment=require(_0xf069('0x2'));var BPromise=require(_0xf069('0x3'));var rs=require(_0xf069('0x4'));var fs=require('fs');var Redis=require(_0xf069('0x5'));var db=require(_0xf069('0x6'))['db'];var utils=require(_0xf069('0x7'));var logger=require('../../config/logger')(_0xf069('0x8'));var config=require('../../config/environment');var jayson=require(_0xf069('0x9'));var client=jayson[_0xf069('0xa')][_0xf069('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x41cf4b,_0x5b7b0f,_0x1de3da){return new BPromise(function(_0x322a6b,_0x12f83c){return client[_0xf069('0xc')](_0x41cf4b,_0x1de3da)[_0xf069('0xd')](function(_0x26e5da){logger[_0xf069('0xe')](_0xf069('0xf'),_0x5b7b0f,_0xf069('0x10'));logger['debug'](_0xf069('0x11'),_0x5b7b0f,_0xf069('0x10'),JSON[_0xf069('0x12')](_0x26e5da));if(_0x26e5da[_0xf069('0x13')]){if(_0x26e5da[_0xf069('0x13')][_0xf069('0x14')]===0x1f4){logger['error'](_0xf069('0xf'),_0x5b7b0f,_0x26e5da['error']['message']);return _0x12f83c(_0x26e5da['error'][_0xf069('0x15')]);}logger['error'](_0xf069('0xf'),_0x5b7b0f,_0x26e5da[_0xf069('0x13')]['message']);return _0x322a6b(_0x26e5da['error'][_0xf069('0x15')]);}else{logger['info'](_0xf069('0xf'),_0x5b7b0f,'request\x20sent');_0x322a6b(_0x26e5da[_0xf069('0x16')][_0xf069('0x15')]);}})[_0xf069('0x17')](function(_0x3c5827){logger[_0xf069('0x13')]('MailServerIn,\x20%s,\x20%s',_0x5b7b0f,_0x3c5827);_0x12f83c(_0x3c5827);});});}exports['GetMailServerIn']=function(_0xc55517){var _0xb89838=this;return new Promise(function(_0x439483,_0x359a59){return db['MailServerIn'][_0xf069('0x18')]({'raw':_0xc55517['options']?_0xc55517['options'][_0xf069('0x19')]===undefined?!![]:![]:!![],'where':_0xc55517[_0xf069('0x1a')]?_0xc55517[_0xf069('0x1a')][_0xf069('0x1b')]||null:null,'attributes':_0xc55517[_0xf069('0x1a')]?_0xc55517[_0xf069('0x1a')][_0xf069('0x1c')]||null:null,'limit':_0xc55517[_0xf069('0x1a')]?_0xc55517[_0xf069('0x1a')]['limit']||null:null,'include':_0xc55517['options']?_0xc55517[_0xf069('0x1a')][_0xf069('0x1d')]?_[_0xf069('0x1e')](_0xc55517[_0xf069('0x1a')][_0xf069('0x1d')],function(_0x5e0676){return{'model':db[_0x5e0676[_0xf069('0x1f')]],'as':_0x5e0676['as'],'attributes':_0x5e0676['attributes'],'include':_0x5e0676['include']?_[_0xf069('0x1e')](_0x5e0676[_0xf069('0x1d')],function(_0x490ef7){return{'model':db[_0x490ef7[_0xf069('0x1f')]],'as':_0x490ef7['as'],'attributes':_0x490ef7[_0xf069('0x1c')],'include':_0x490ef7['include']?_[_0xf069('0x1e')](_0x490ef7[_0xf069('0x1d')],function(_0x1334ed){return{'model':db[_0x1334ed[_0xf069('0x1f')]],'as':_0x1334ed['as'],'attributes':_0x1334ed[_0xf069('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3e8b70){logger[_0xf069('0xe')]('GetMailServerIn',_0xc55517);logger['debug'](_0xf069('0x20'),_0xc55517,JSON[_0xf069('0x12')](_0x3e8b70));_0x439483(_0x3e8b70);})[_0xf069('0x17')](function(_0x1db031){logger[_0xf069('0x13')](_0xf069('0x20'),_0x1db031[_0xf069('0x15')],_0xc55517);_0x359a59(_0xb89838[_0xf069('0x13')](0x1f4,_0x1db031[_0xf069('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6f9=['post','create','put','update','delete','exports','multer','util','path','../../components/auth/service','../../components/interaction/service','./mailServerOut.controller','get','isAuthenticated','/:id','show'];(function(_0x2e2508,_0x3e6357){var _0x4e3bbe=function(_0x4978a8){while(--_0x4978a8){_0x2e2508['push'](_0x2e2508['shift']());}};_0x4e3bbe(++_0x3e6357);}(_0xb6f9,0xa6));var _0x9b6f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb6f9[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x9b6f('0x0'));var util=require(_0x9b6f('0x1'));var path=require(_0x9b6f('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require(_0x9b6f('0x3'));var interaction=require(_0x9b6f('0x4'));var config=require('../../config/environment');var controller=require(_0x9b6f('0x5'));router[_0x9b6f('0x6')]('/',auth[_0x9b6f('0x7')](),controller['index']);router['get'](_0x9b6f('0x8'),auth[_0x9b6f('0x7')](),controller[_0x9b6f('0x9')]);router[_0x9b6f('0xa')]('/',auth[_0x9b6f('0x7')](),controller[_0x9b6f('0xb')]);router[_0x9b6f('0xc')](_0x9b6f('0x8'),auth[_0x9b6f('0x7')](),controller[_0x9b6f('0xd')]);router[_0x9b6f('0xe')](_0x9b6f('0x8'),auth[_0x9b6f('0x7')](),controller['destroy']);module[_0x9b6f('0xf')]=router;
\ No newline at end of file
+var _0xd87d=['delete','destroy','exports','multer','path','express','Router','../../config/environment','./mailServerOut.controller','isAuthenticated','index','get','/:id','post','update'];(function(_0x9c39d9,_0x5e6802){var _0x5905ea=function(_0x1c743c){while(--_0x1c743c){_0x9c39d9['push'](_0x9c39d9['shift']());}};_0x5905ea(++_0x5e6802);}(_0xd87d,0x16b));var _0xdd87=function(_0x2a5aa3,_0x110415){_0x2a5aa3=_0x2a5aa3-0x0;var _0x25848f=_0xd87d[_0x2a5aa3];return _0x25848f;};'use strict';var multer=require(_0xdd87('0x0'));var util=require('util');var path=require(_0xdd87('0x1'));var timeout=require('connect-timeout');var express=require(_0xdd87('0x2'));var router=express[_0xdd87('0x3')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xdd87('0x4'));var controller=require(_0xdd87('0x5'));router['get']('/',auth[_0xdd87('0x6')](),controller[_0xdd87('0x7')]);router[_0xdd87('0x8')](_0xdd87('0x9'),auth[_0xdd87('0x6')](),controller['show']);router[_0xdd87('0xa')]('/',auth[_0xdd87('0x6')](),controller['create']);router['put'](_0xdd87('0x9'),auth[_0xdd87('0x6')](),controller[_0xdd87('0xb')]);router[_0xdd87('0xc')]('/:id',auth['isAuthenticated'](),controller[_0xdd87('0xd')]);module[_0xdd87('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69f0=['BOOLEAN','exports','STRING','INTEGER'];(function(_0x206e51,_0x3b6a0b){var _0x25611a=function(_0x168d0d){while(--_0x168d0d){_0x206e51['push'](_0x206e51['shift']());}};_0x25611a(++_0x3b6a0b);}(_0x69f0,0xb5));var _0x069f=function(_0x2cdebb,_0x165e76){_0x2cdebb=_0x2cdebb-0x0;var _0x4bc915=_0x69f0[_0x2cdebb];return _0x4bc915;};'use strict';var Sequelize=require('sequelize');module[_0x069f('0x0')]={'description':{'type':Sequelize[_0x069f('0x1')]},'host':{'type':Sequelize[_0x069f('0x1')]},'user':{'type':Sequelize['STRING']},'pass':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x069f('0x2')]},'secure':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'service':{'type':Sequelize[_0x069f('0x1')]},'authentication':{'type':Sequelize[_0x069f('0x3')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xd29f=['STRING','BOOLEAN','sequelize','exports'];(function(_0x284d33,_0x5b003f){var _0x225cf8=function(_0xe512c4){while(--_0xe512c4){_0x284d33['push'](_0x284d33['shift']());}};_0x225cf8(++_0x5b003f);}(_0xd29f,0x1de));var _0xfd29=function(_0x2c98f5,_0x3505bd){_0x2c98f5=_0x2c98f5-0x0;var _0x1d5794=_0xd29f[_0x2c98f5];return _0x1d5794;};'use strict';var Sequelize=require(_0xfd29('0x0'));module[_0xfd29('0x1')]={'description':{'type':Sequelize[_0xfd29('0x2')]},'host':{'type':Sequelize[_0xfd29('0x2')]},'user':{'type':Sequelize[_0xfd29('0x2')]},'pass':{'type':Sequelize[_0xfd29('0x2')]},'port':{'type':Sequelize['INTEGER']},'secure':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'service':{'type':Sequelize[_0xfd29('0x2')]},'authentication':{'type':Sequelize[_0xfd29('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64bb=['destroy','error','stack','name','send','MailServerOut','rawAttributes','model','keys','query','dateEnd','filters','intersection','fields','attributes','length','nolimit','sort','where','add','day','dateStart','filter','merge','options','count','includeAll','include','findAll','rows','catch','show','find','create','body','params','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/environment','sendStatus','status','end','json','offset','limit','set','Content-Range','save','update','then'];(function(_0x486b00,_0x501df5){var _0x47ea82=function(_0x997782){while(--_0x997782){_0x486b00['push'](_0x486b00['shift']());}};_0x47ea82(++_0x501df5);}(_0x64bb,0x68));var _0xb64b=function(_0x4f599d,_0x1af5a4){_0x4f599d=_0x4f599d-0x0;var _0x3b5b57=_0x64bb[_0x4f599d];return _0x3b5b57;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb64b('0x0'));var rimraf=require(_0xb64b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb64b('0x2'));var rp=require(_0xb64b('0x3'));var moment=require(_0xb64b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb64b('0x5'));var util=require(_0xb64b('0x6'));var path=require(_0xb64b('0x7'));var sox=require(_0xb64b('0x8'));var csv=require(_0xb64b('0x9'));var ejs=require(_0xb64b('0xa'));var fs=require('fs');var _=require(_0xb64b('0xb'));var squel=require(_0xb64b('0xc'));var crypto=require(_0xb64b('0xd'));var jsforce=require(_0xb64b('0xe'));var deskjs=require(_0xb64b('0xf'));var toCsv=require('to-csv');var querystring=require(_0xb64b('0x10'));var Papa=require(_0xb64b('0x11'));var qs=require(_0xb64b('0x12'));var logger=require(_0xb64b('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xb64b('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1f9c99,_0x2d4347){_0x2d4347=_0x2d4347||0xcc;return function(_0x24c4d7){if(_0x24c4d7){return _0x1f9c99[_0xb64b('0x15')](_0x2d4347);}return _0x1f9c99[_0xb64b('0x16')](_0x2d4347)[_0xb64b('0x17')]();};}function respondWithResult(_0x372c97,_0x27b541){_0x27b541=_0x27b541||0xc8;return function(_0x34d72f){if(_0x34d72f){return _0x372c97[_0xb64b('0x16')](_0x27b541)[_0xb64b('0x18')](_0x34d72f);}};}function respondWithFilteredResult(_0x372642,_0x12dcc4){return function(_0x13d4c1){if(_0x13d4c1){var _0x3faf09=_0x13d4c1['count'],_0x17eeaf=_0x12dcc4['offset'],_0xc08981=_0x12dcc4[_0xb64b('0x19')]+_0x12dcc4[_0xb64b('0x1a')],_0x141bce;if(_0xc08981>=_0x3faf09){_0xc08981=_0x3faf09;_0x141bce=0xc8;}else{_0x141bce=0xce;}_0x372642[_0xb64b('0x16')](_0x141bce);return _0x372642[_0xb64b('0x1b')](_0xb64b('0x1c'),_0x17eeaf+'-'+_0xc08981+'/'+_0x3faf09)[_0xb64b('0x18')](_0x13d4c1);}return null;};}function patchUpdates(_0x44a4a9){return function(_0x48d844){try{jsonpatch['apply'](_0x48d844,_0x44a4a9,!![]);}catch(_0x23896c){return BPromise['reject'](_0x23896c);}return _0x48d844[_0xb64b('0x1d')]();};}function saveUpdates(_0x2d344a,_0xd2ee37){return function(_0x273490){if(_0x273490){return _0x273490[_0xb64b('0x1e')](_0x2d344a)[_0xb64b('0x1f')](function(_0xac904){return _0xac904;});}return null;};}function removeEntity(_0x337bfb,_0x5d4957){return function(_0x3fa91c){if(_0x3fa91c){return _0x3fa91c[_0xb64b('0x20')]()[_0xb64b('0x1f')](function(){_0x337bfb[_0xb64b('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32720b,_0x1385e1){return function(_0xe645b3){if(!_0xe645b3){_0x32720b[_0xb64b('0x15')](0x194);}return _0xe645b3;};}function handleError(_0x533136,_0x325d9f){_0x325d9f=_0x325d9f||0x1f4;return function(_0x3d3b67){logger[_0xb64b('0x21')](_0x3d3b67[_0xb64b('0x22')]);if(_0x3d3b67['name']){delete _0x3d3b67[_0xb64b('0x23')];}_0x533136[_0xb64b('0x16')](_0x325d9f)[_0xb64b('0x24')](_0x3d3b67);};}exports['index']=function(_0x5d046d,_0x471175){var _0x387567={},_0x3d97d2={},_0x2c6da7={'count':0x0,'rows':[]};var _0x3eca0d=db[_0xb64b('0x25')][_0xb64b('0x26')];_0x3d97d2[_0xb64b('0x27')]=_[_0xb64b('0x28')](_0x3eca0d);var _0x185af8={'dateStart':_0x5d046d[_0xb64b('0x29')]['dateStart'],'dateEnd':_0x5d046d[_0xb64b('0x29')][_0xb64b('0x2a')]};delete _0x5d046d[_0xb64b('0x29')]['dateStart'];delete _0x5d046d[_0xb64b('0x29')][_0xb64b('0x2a')];_0x3d97d2[_0xb64b('0x29')]=_[_0xb64b('0x28')](_0x5d046d[_0xb64b('0x29')]);_0x3d97d2[_0xb64b('0x2b')]=_[_0xb64b('0x2c')](_0x3d97d2[_0xb64b('0x27')],_0x3d97d2[_0xb64b('0x29')]);_0x387567['attributes']=_['intersection'](_0x3d97d2[_0xb64b('0x27')],qs[_0xb64b('0x2d')](_0x5d046d[_0xb64b('0x29')][_0xb64b('0x2d')]));_0x387567[_0xb64b('0x2e')]=_0x387567[_0xb64b('0x2e')][_0xb64b('0x2f')]?_0x387567[_0xb64b('0x2e')]:_0x3d97d2['model'];if(!_0x5d046d['query']['hasOwnProperty'](_0xb64b('0x30'))){_0x387567[_0xb64b('0x1a')]=qs[_0xb64b('0x1a')](_0x5d046d[_0xb64b('0x29')]['limit']);_0x387567[_0xb64b('0x19')]=qs['offset'](_0x5d046d[_0xb64b('0x29')][_0xb64b('0x19')]);}_0x387567['order']=qs[_0xb64b('0x31')](_0x5d046d['query'][_0xb64b('0x31')]);_0x387567[_0xb64b('0x32')]=qs['filters'](_['pick'](_0x5d046d[_0xb64b('0x29')],_0x3d97d2[_0xb64b('0x2b')]));if(_0x185af8['dateStart']){if(_0x185af8[_0xb64b('0x2a')]){_0x185af8[_0xb64b('0x2a')]=moment(_0x185af8[_0xb64b('0x2a')])[_0xb64b('0x33')](0x1,_0xb64b('0x34'));}else{_0x185af8[_0xb64b('0x2a')]=moment(_0x185af8[_0xb64b('0x35')])[_0xb64b('0x33')](0x1,'day');}_['merge'](_0x387567[_0xb64b('0x32')],{'createdAt':{'$gte':_0x185af8[_0xb64b('0x35')],'$lte':_0x185af8[_0xb64b('0x2a')]}});}if(_0x5d046d[_0xb64b('0x29')][_0xb64b('0x36')]){_0x387567[_0xb64b('0x32')]=_['merge'](_0x387567[_0xb64b('0x32')],{'$or':_['map'](_0x387567[_0xb64b('0x2e')],function(_0x124e0a){var _0x424d6c={};_0x424d6c[_0x124e0a]={'$like':'%'+_0x5d046d[_0xb64b('0x29')][_0xb64b('0x36')]+'%'};return _0x424d6c;})});}_0x387567=_[_0xb64b('0x37')]({},_0x387567,_0x5d046d[_0xb64b('0x38')]);var _0x4e54cb={'where':_0x387567['where']};return db['MailServerOut']['count'](_0x4e54cb)['then'](function(_0x2ace3f){_0x2c6da7[_0xb64b('0x39')]=_0x2ace3f;if(_0x5d046d[_0xb64b('0x29')][_0xb64b('0x3a')]){_0x387567[_0xb64b('0x3b')]=[{'all':!![]}];}return db[_0xb64b('0x25')][_0xb64b('0x3c')](_0x387567);})['then'](function(_0x566c18){_0x2c6da7[_0xb64b('0x3d')]=_0x566c18;return _0x2c6da7;})[_0xb64b('0x1f')](respondWithFilteredResult(_0x471175,_0x387567))[_0xb64b('0x3e')](handleError(_0x471175,null));};exports[_0xb64b('0x3f')]=function(_0x52b1f3,_0x2ef9d1){var _0x13a5b4={'raw':!![],'where':{'id':_0x52b1f3['params']['id']}},_0x8817ac={};_0x8817ac[_0xb64b('0x27')]=_['keys'](db[_0xb64b('0x25')]['rawAttributes']);_0x8817ac[_0xb64b('0x29')]=_['keys'](_0x52b1f3[_0xb64b('0x29')]);_0x8817ac[_0xb64b('0x2b')]=_['intersection'](_0x8817ac[_0xb64b('0x27')],_0x8817ac[_0xb64b('0x29')]);_0x13a5b4[_0xb64b('0x2e')]=_[_0xb64b('0x2c')](_0x8817ac[_0xb64b('0x27')],qs[_0xb64b('0x2d')](_0x52b1f3[_0xb64b('0x29')]['fields']));_0x13a5b4['attributes']=_0x13a5b4[_0xb64b('0x2e')][_0xb64b('0x2f')]?_0x13a5b4[_0xb64b('0x2e')]:_0x8817ac[_0xb64b('0x27')];if(_0x52b1f3[_0xb64b('0x29')]['includeAll']){_0x13a5b4['include']=[{'all':!![]}];}_0x13a5b4=_[_0xb64b('0x37')]({},_0x13a5b4,_0x52b1f3[_0xb64b('0x38')]);return db[_0xb64b('0x25')][_0xb64b('0x40')](_0x13a5b4)[_0xb64b('0x1f')](handleEntityNotFound(_0x2ef9d1,null))['then'](respondWithResult(_0x2ef9d1,null))['catch'](handleError(_0x2ef9d1,null));};exports[_0xb64b('0x41')]=function(_0x4edb3e,_0x1af88f){return db[_0xb64b('0x25')]['create'](_0x4edb3e['body'],{})['then'](respondWithResult(_0x1af88f,0xc9))[_0xb64b('0x3e')](handleError(_0x1af88f,null));};exports[_0xb64b('0x1e')]=function(_0x4904fd,_0x5ae077){if(_0x4904fd[_0xb64b('0x42')]['id']){delete _0x4904fd['body']['id'];}return db[_0xb64b('0x25')][_0xb64b('0x40')]({'where':{'id':_0x4904fd[_0xb64b('0x43')]['id']}})[_0xb64b('0x1f')](handleEntityNotFound(_0x5ae077,null))['then'](saveUpdates(_0x4904fd['body'],null))[_0xb64b('0x1f')](respondWithResult(_0x5ae077,null))[_0xb64b('0x3e')](handleError(_0x5ae077,null));};exports['destroy']=function(_0x280331,_0x4788ac){return db[_0xb64b('0x25')][_0xb64b('0x40')]({'where':{'id':_0x280331[_0xb64b('0x43')]['id']}})['then'](handleEntityNotFound(_0x4788ac,null))[_0xb64b('0x1f')](removeEntity(_0x4788ac,null))['catch'](handleError(_0x4788ac,null));};
\ No newline at end of file
+var _0x3cc5=['limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','index','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','MailServerOut','include','findAll','catch','show','params','options','find','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../config/logger','api','../../config/environment','../../mysqldb','status','end','json','count','offset'];(function(_0x52cc00,_0x38520b){var _0x23cbad=function(_0x34affd){while(--_0x34affd){_0x52cc00['push'](_0x52cc00['shift']());}};_0x23cbad(++_0x38520b);}(_0x3cc5,0x142));var _0x53cc=function(_0x276d23,_0x44e0da){_0x276d23=_0x276d23-0x0;var _0x591ad3=_0x3cc5[_0x276d23];return _0x591ad3;};'use strict';var pdf=require(_0x53cc('0x0'));var emlformat=require(_0x53cc('0x1'));var rimraf=require(_0x53cc('0x2'));var zipdir=require(_0x53cc('0x3'));var jsonpatch=require(_0x53cc('0x4'));var rp=require(_0x53cc('0x5'));var moment=require(_0x53cc('0x6'));var BPromise=require(_0x53cc('0x7'));var Mustache=require(_0x53cc('0x8'));var util=require(_0x53cc('0x9'));var path=require('path');var sox=require('sox');var csv=require(_0x53cc('0xa'));var ejs=require(_0x53cc('0xb'));var fs=require('fs');var _=require(_0x53cc('0xc'));var squel=require(_0x53cc('0xd'));var crypto=require(_0x53cc('0xe'));var jsforce=require(_0x53cc('0xf'));var deskjs=require(_0x53cc('0x10'));var toCsv=require(_0x53cc('0xa'));var querystring=require('querystring');var Papa=require(_0x53cc('0x11'));var Redis=require(_0x53cc('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0x53cc('0x13'))(_0x53cc('0x14'));var utils=require('../../config/utils');var config=require(_0x53cc('0x15'));var db=require(_0x53cc('0x16'))['db'];function respondWithStatusCode(_0x659ec4,_0x48d193){_0x48d193=_0x48d193||0xcc;return function(_0x535f69){if(_0x535f69){return _0x659ec4['sendStatus'](_0x48d193);}return _0x659ec4[_0x53cc('0x17')](_0x48d193)[_0x53cc('0x18')]();};}function respondWithResult(_0xed0ff9,_0x176862){_0x176862=_0x176862||0xc8;return function(_0x2bc431){if(_0x2bc431){return _0xed0ff9[_0x53cc('0x17')](_0x176862)[_0x53cc('0x19')](_0x2bc431);}};}function respondWithFilteredResult(_0x3b2fa2,_0x473f18){return function(_0x47c25d){if(_0x47c25d){var _0x138e81=_0x47c25d[_0x53cc('0x1a')],_0x1e0c3d=_0x473f18[_0x53cc('0x1b')],_0x5807dd=_0x473f18[_0x53cc('0x1b')]+_0x473f18[_0x53cc('0x1c')],_0x27bbfa;if(_0x5807dd>=_0x138e81){_0x5807dd=_0x138e81;_0x27bbfa=0xc8;}else{_0x27bbfa=0xce;}_0x3b2fa2[_0x53cc('0x17')](_0x27bbfa);return _0x3b2fa2[_0x53cc('0x1d')](_0x53cc('0x1e'),_0x1e0c3d+'-'+_0x5807dd+'/'+_0x138e81)[_0x53cc('0x19')](_0x47c25d);}return null;};}function patchUpdates(_0x1634c9){return function(_0x443f14){try{jsonpatch[_0x53cc('0x1f')](_0x443f14,_0x1634c9,!![]);}catch(_0x34e863){return BPromise['reject'](_0x34e863);}return _0x443f14[_0x53cc('0x20')]();};}function saveUpdates(_0x49c195,_0xee2161){return function(_0x30fdb2){if(_0x30fdb2){return _0x30fdb2[_0x53cc('0x21')](_0x49c195)[_0x53cc('0x22')](function(_0xc48f15){return _0xc48f15;});}return null;};}function removeEntity(_0x1d7623,_0x390d65){return function(_0x59e34e){if(_0x59e34e){return _0x59e34e[_0x53cc('0x23')]()[_0x53cc('0x22')](function(){_0x1d7623[_0x53cc('0x17')](0xcc)[_0x53cc('0x18')]();});}};}function handleEntityNotFound(_0x1b6719,_0x47c579){return function(_0x549f8f){if(!_0x549f8f){_0x1b6719['sendStatus'](0x194);}return _0x549f8f;};}function handleError(_0x2b40cf,_0x4d2fc1){_0x4d2fc1=_0x4d2fc1||0x1f4;return function(_0x5aa1f5){logger[_0x53cc('0x24')](_0x5aa1f5[_0x53cc('0x25')]);if(_0x5aa1f5[_0x53cc('0x26')]){delete _0x5aa1f5[_0x53cc('0x26')];}_0x2b40cf[_0x53cc('0x17')](_0x4d2fc1)['send'](_0x5aa1f5);};}exports[_0x53cc('0x27')]=function(_0x4f498d,_0x164042){var _0x3afe5b={},_0x1fb083={},_0x4e55ab={'count':0x0,'rows':[]};var _0x1fc5f2=db['MailServerOut'][_0x53cc('0x28')];_0x1fb083[_0x53cc('0x29')]=_['keys'](_0x1fc5f2);var _0x554890={'dateStart':_0x4f498d[_0x53cc('0x2a')][_0x53cc('0x2b')],'dateEnd':_0x4f498d[_0x53cc('0x2a')][_0x53cc('0x2c')]};delete _0x4f498d['query']['dateStart'];delete _0x4f498d['query']['dateEnd'];_0x1fb083[_0x53cc('0x2a')]=_[_0x53cc('0x2d')](_0x4f498d[_0x53cc('0x2a')]);_0x1fb083[_0x53cc('0x2e')]=_[_0x53cc('0x2f')](_0x1fb083[_0x53cc('0x29')],_0x1fb083[_0x53cc('0x2a')]);_0x3afe5b[_0x53cc('0x30')]=_[_0x53cc('0x2f')](_0x1fb083[_0x53cc('0x29')],qs['fields'](_0x4f498d[_0x53cc('0x2a')][_0x53cc('0x31')]));_0x3afe5b[_0x53cc('0x30')]=_0x3afe5b[_0x53cc('0x30')][_0x53cc('0x32')]?_0x3afe5b[_0x53cc('0x30')]:_0x1fb083['model'];if(!_0x4f498d['query'][_0x53cc('0x33')]('nolimit')){_0x3afe5b[_0x53cc('0x1c')]=qs['limit'](_0x4f498d[_0x53cc('0x2a')][_0x53cc('0x1c')]);_0x3afe5b[_0x53cc('0x1b')]=qs[_0x53cc('0x1b')](_0x4f498d['query']['offset']);}_0x3afe5b[_0x53cc('0x34')]=qs[_0x53cc('0x35')](_0x4f498d[_0x53cc('0x2a')][_0x53cc('0x35')]);_0x3afe5b[_0x53cc('0x36')]=qs[_0x53cc('0x2e')](_[_0x53cc('0x37')](_0x4f498d['query'],_0x1fb083['filters']));if(_0x554890[_0x53cc('0x2b')]){if(_0x554890['dateEnd']){_0x554890['dateEnd']=moment(_0x554890[_0x53cc('0x2c')])[_0x53cc('0x38')](0x1,_0x53cc('0x39'));}else{_0x554890[_0x53cc('0x2c')]=moment(_0x554890[_0x53cc('0x2b')])[_0x53cc('0x38')](0x1,_0x53cc('0x39'));}_[_0x53cc('0x3a')](_0x3afe5b['where'],{'createdAt':{'$gte':_0x554890[_0x53cc('0x2b')],'$lte':_0x554890['dateEnd']}});}if(_0x4f498d[_0x53cc('0x2a')]['filter']){_0x3afe5b[_0x53cc('0x36')]=_[_0x53cc('0x3a')](_0x3afe5b[_0x53cc('0x36')],{'$or':_['map'](_0x3afe5b[_0x53cc('0x30')],function(_0x50192d){var _0x5cc614={};_0x5cc614[_0x50192d]={'$like':'%'+_0x4f498d[_0x53cc('0x2a')][_0x53cc('0x3b')]+'%'};return _0x5cc614;})});}_0x3afe5b=_[_0x53cc('0x3a')]({},_0x3afe5b,_0x4f498d['options']);var _0x41ac29={'where':_0x3afe5b[_0x53cc('0x36')]};return db[_0x53cc('0x3c')]['count'](_0x41ac29)[_0x53cc('0x22')](function(_0x1d0e15){_0x4e55ab[_0x53cc('0x1a')]=_0x1d0e15;if(_0x4f498d['query']['includeAll']){_0x3afe5b[_0x53cc('0x3d')]=[{'all':!![]}];}return db[_0x53cc('0x3c')][_0x53cc('0x3e')](_0x3afe5b);})[_0x53cc('0x22')](function(_0x5e14fc){_0x4e55ab['rows']=_0x5e14fc;return _0x4e55ab;})[_0x53cc('0x22')](respondWithFilteredResult(_0x164042,_0x3afe5b))[_0x53cc('0x3f')](handleError(_0x164042,null));};exports[_0x53cc('0x40')]=function(_0x1616e5,_0x2a7dc1){var _0x37428c={'raw':!![],'where':{'id':_0x1616e5[_0x53cc('0x41')]['id']}},_0x2459c6={};_0x2459c6[_0x53cc('0x29')]=_[_0x53cc('0x2d')](db['MailServerOut'][_0x53cc('0x28')]);_0x2459c6[_0x53cc('0x2a')]=_[_0x53cc('0x2d')](_0x1616e5[_0x53cc('0x2a')]);_0x2459c6[_0x53cc('0x2e')]=_['intersection'](_0x2459c6['model'],_0x2459c6['query']);_0x37428c[_0x53cc('0x30')]=_[_0x53cc('0x2f')](_0x2459c6[_0x53cc('0x29')],qs[_0x53cc('0x31')](_0x1616e5['query']['fields']));_0x37428c['attributes']=_0x37428c[_0x53cc('0x30')][_0x53cc('0x32')]?_0x37428c[_0x53cc('0x30')]:_0x2459c6['model'];if(_0x1616e5[_0x53cc('0x2a')]['includeAll']){_0x37428c['include']=[{'all':!![]}];}_0x37428c=_[_0x53cc('0x3a')]({},_0x37428c,_0x1616e5[_0x53cc('0x42')]);return db['MailServerOut'][_0x53cc('0x43')](_0x37428c)[_0x53cc('0x22')](handleEntityNotFound(_0x2a7dc1,null))[_0x53cc('0x22')](respondWithResult(_0x2a7dc1,null))[_0x53cc('0x3f')](handleError(_0x2a7dc1,null));};exports[_0x53cc('0x44')]=function(_0x46e423,_0x2fe916){return db[_0x53cc('0x3c')][_0x53cc('0x44')](_0x46e423[_0x53cc('0x45')],{})['then'](respondWithResult(_0x2fe916,0xc9))[_0x53cc('0x3f')](handleError(_0x2fe916,null));};exports[_0x53cc('0x21')]=function(_0x5f1537,_0x3fa2d0){if(_0x5f1537[_0x53cc('0x45')]['id']){delete _0x5f1537['body']['id'];}return db['MailServerOut']['find']({'where':{'id':_0x5f1537['params']['id']}})['then'](handleEntityNotFound(_0x3fa2d0,null))[_0x53cc('0x22')](saveUpdates(_0x5f1537[_0x53cc('0x45')],null))[_0x53cc('0x22')](respondWithResult(_0x3fa2d0,null))[_0x53cc('0x3f')](handleError(_0x3fa2d0,null));};exports[_0x53cc('0x23')]=function(_0x1f8dc4,_0x20dd03){return db[_0x53cc('0x3c')][_0x53cc('0x43')]({'where':{'id':_0x1f8dc4['params']['id']}})['then'](handleEntityNotFound(_0x20dd03,null))['then'](removeEntity(_0x20dd03,null))[_0x53cc('0x3f')](handleError(_0x20dd03,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c6c=['exports','define','mail_servers_out','lodash','../../config/logger','api','moment','bluebird','request-promise','./mailServerOut.attributes'];(function(_0x1cfce9,_0x1e4947){var _0x163dee=function(_0x5ed010){while(--_0x5ed010){_0x1cfce9['push'](_0x1cfce9['shift']());}};_0x163dee(++_0x1e4947);}(_0x3c6c,0x7b));var _0xc3c6=function(_0x5bb755,_0x35f83e){_0x5bb755=_0x5bb755-0x0;var _0x52bd68=_0x3c6c[_0x5bb755];return _0x52bd68;};'use strict';var _=require(_0xc3c6('0x0'));var util=require('util');var logger=require(_0xc3c6('0x1'))(_0xc3c6('0x2'));var moment=require(_0xc3c6('0x3'));var BPromise=require(_0xc3c6('0x4'));var rp=require(_0xc3c6('0x5'));var attributes=require(_0xc3c6('0x6'));module[_0xc3c6('0x7')]=function(_0x34db2e,_0x5f5672){return _0x34db2e[_0xc3c6('0x8')]('MailServerOut',attributes,{'tableName':_0xc3c6('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe944=['define','MailServerOut','lodash','api','request-promise'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0xe944,0x174));var _0x4e94=function(_0x1b68c8,_0xbad36f){_0x1b68c8=_0x1b68c8-0x0;var _0x5d73e5=_0xe944[_0x1b68c8];return _0x5d73e5;};'use strict';var _=require(_0x4e94('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x4e94('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x4e94('0x2'));var attributes=require('./mailServerOut.attributes');module['exports']=function(_0x10029f,_0xe47674){return _0x10029f[_0x4e94('0x3')](_0x4e94('0x4'),attributes,{'tableName':'mail_servers_out','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7235=['util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','MailServerOut,\x20%s,\x20%s,\x20%s','stringify','error','code','MailServerOut,\x20%s,\x20%s','message','catch','lodash'];(function(_0x57ee02,_0x58b0c4){var _0x2fc9b0=function(_0x565e77){while(--_0x565e77){_0x57ee02['push'](_0x57ee02['shift']());}};_0x2fc9b0(++_0x58b0c4);}(_0x7235,0x77));var _0x5723=function(_0x28ed87,_0x1cefe3){_0x28ed87=_0x28ed87-0x0;var _0x165940=_0x7235[_0x28ed87];return _0x165940;};'use strict';var _=require(_0x5723('0x0'));var util=require(_0x5723('0x1'));var moment=require(_0x5723('0x2'));var BPromise=require(_0x5723('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x5723('0x4'))['db'];var utils=require(_0x5723('0x5'));var logger=require(_0x5723('0x6'))(_0x5723('0x7'));var config=require(_0x5723('0x8'));var jayson=require(_0x5723('0x9'));var client=jayson[_0x5723('0xa')][_0x5723('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2b652f,_0x380fd3,_0xb7f250){return new BPromise(function(_0x3d627d,_0x41ca1c){return client[_0x5723('0xc')](_0x2b652f,_0xb7f250)[_0x5723('0xd')](function(_0x3ec38b){logger[_0x5723('0xe')]('MailServerOut,\x20%s,\x20%s',_0x380fd3,_0x5723('0xf'));logger[_0x5723('0x10')](_0x5723('0x11'),_0x380fd3,'request\x20sent',JSON[_0x5723('0x12')](_0x3ec38b));if(_0x3ec38b[_0x5723('0x13')]){if(_0x3ec38b[_0x5723('0x13')][_0x5723('0x14')]===0x1f4){logger[_0x5723('0x13')](_0x5723('0x15'),_0x380fd3,_0x3ec38b[_0x5723('0x13')][_0x5723('0x16')]);return _0x41ca1c(_0x3ec38b['error']['message']);}logger[_0x5723('0x13')](_0x5723('0x15'),_0x380fd3,_0x3ec38b[_0x5723('0x13')]['message']);return _0x3d627d(_0x3ec38b[_0x5723('0x13')]['message']);}else{logger[_0x5723('0xe')](_0x5723('0x15'),_0x380fd3,'request\x20sent');_0x3d627d(_0x3ec38b['result'][_0x5723('0x16')]);}})[_0x5723('0x17')](function(_0x49db63){logger[_0x5723('0x13')]('MailServerOut,\x20%s,\x20%s',_0x380fd3,_0x49db63);_0x41ca1c(_0x49db63);});});}
\ No newline at end of file
+var _0xcc6a=['client','http','then','info','request\x20sent','MailServerOut,\x20%s,\x20%s,\x20%s','stringify','error','code','MailServerOut,\x20%s,\x20%s','message','result','catch','lodash','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x1d48a9,_0x4e1896){var _0x49a01c=function(_0x84ef8d){while(--_0x84ef8d){_0x1d48a9['push'](_0x1d48a9['shift']());}};_0x49a01c(++_0x4e1896);}(_0xcc6a,0xfd));var _0xacc6=function(_0x2f8e00,_0x45a166){_0x2f8e00=_0x2f8e00-0x0;var _0x4a57cc=_0xcc6a[_0x2f8e00];return _0x4a57cc;};'use strict';var _=require(_0xacc6('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xacc6('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xacc6('0x2'));var logger=require(_0xacc6('0x3'))(_0xacc6('0x4'));var config=require(_0xacc6('0x5'));var jayson=require(_0xacc6('0x6'));var client=jayson[_0xacc6('0x7')][_0xacc6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5a9a6a,_0x324ace,_0x421082){return new BPromise(function(_0x3e310b,_0x33965d){return client['request'](_0x5a9a6a,_0x421082)[_0xacc6('0x9')](function(_0x3b6662){logger[_0xacc6('0xa')]('MailServerOut,\x20%s,\x20%s',_0x324ace,_0xacc6('0xb'));logger['debug'](_0xacc6('0xc'),_0x324ace,_0xacc6('0xb'),JSON[_0xacc6('0xd')](_0x3b6662));if(_0x3b6662[_0xacc6('0xe')]){if(_0x3b6662['error'][_0xacc6('0xf')]===0x1f4){logger[_0xacc6('0xe')](_0xacc6('0x10'),_0x324ace,_0x3b6662[_0xacc6('0xe')][_0xacc6('0x11')]);return _0x33965d(_0x3b6662['error']['message']);}logger[_0xacc6('0xe')](_0xacc6('0x10'),_0x324ace,_0x3b6662[_0xacc6('0xe')][_0xacc6('0x11')]);return _0x3e310b(_0x3b6662['error'][_0xacc6('0x11')]);}else{logger['info'](_0xacc6('0x10'),_0x324ace,'request\x20sent');_0x3e310b(_0x3b6662[_0xacc6('0x12')][_0xacc6('0x11')]);}})[_0xacc6('0x13')](function(_0xffc35b){logger[_0xacc6('0xe')]('MailServerOut,\x20%s,\x20%s',_0x324ace,_0xffc35b);_0x33965d(_0xffc35b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfae=['delete','destroy','multer','util','connect-timeout','Router','../../components/auth/service','../../config/environment','./mailSubstatus.controller','get','isAuthenticated','/describe','/:id','post','create','put','update'];(function(_0x43f61a,_0x174d57){var _0x73bdf1=function(_0x4fd41e){while(--_0x4fd41e){_0x43f61a['push'](_0x43f61a['shift']());}};_0x73bdf1(++_0x174d57);}(_0xbfae,0x1ab));var _0xebfa=function(_0x5760f7,_0x47f093){_0x5760f7=_0x5760f7-0x0;var _0x4a8aa0=_0xbfae[_0x5760f7];return _0x4a8aa0;};'use strict';var multer=require(_0xebfa('0x0'));var util=require(_0xebfa('0x1'));var path=require('path');var timeout=require(_0xebfa('0x2'));var express=require('express');var router=express[_0xebfa('0x3')]();var auth=require(_0xebfa('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xebfa('0x5'));var controller=require(_0xebfa('0x6'));router[_0xebfa('0x7')]('/',auth[_0xebfa('0x8')](),controller['index']);router['get'](_0xebfa('0x9'),auth['isAuthenticated'](),controller['describe']);router['get'](_0xebfa('0xa'),auth[_0xebfa('0x8')](),controller['show']);router[_0xebfa('0xb')]('/',auth[_0xebfa('0x8')](),controller[_0xebfa('0xc')]);router[_0xebfa('0xd')](_0xebfa('0xa'),auth[_0xebfa('0x8')](),controller[_0xebfa('0xe')]);router[_0xebfa('0xf')](_0xebfa('0xa'),auth[_0xebfa('0x8')](),controller[_0xebfa('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xb7bc=['connect-timeout','express','Router','../../components/auth/service','../../config/environment','./mailSubstatus.controller','isAuthenticated','index','get','/describe','describe','/:id','show','create','put','delete','exports','multer','util','path'];(function(_0x3ad4d7,_0x4507c1){var _0x4c24a2=function(_0x2be295){while(--_0x2be295){_0x3ad4d7['push'](_0x3ad4d7['shift']());}};_0x4c24a2(++_0x4507c1);}(_0xb7bc,0x1b5));var _0xcb7b=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0xb7bc[_0x42bdad];return _0x122626;};'use strict';var multer=require(_0xcb7b('0x0'));var util=require(_0xcb7b('0x1'));var path=require(_0xcb7b('0x2'));var timeout=require(_0xcb7b('0x3'));var express=require(_0xcb7b('0x4'));var router=express[_0xcb7b('0x5')]();var auth=require(_0xcb7b('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xcb7b('0x7'));var controller=require(_0xcb7b('0x8'));router['get']('/',auth[_0xcb7b('0x9')](),controller[_0xcb7b('0xa')]);router[_0xcb7b('0xb')](_0xcb7b('0xc'),auth[_0xcb7b('0x9')](),controller[_0xcb7b('0xd')]);router[_0xcb7b('0xb')](_0xcb7b('0xe'),auth[_0xcb7b('0x9')](),controller[_0xcb7b('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0xcb7b('0x10')]);router[_0xcb7b('0x11')](_0xcb7b('0xe'),auth[_0xcb7b('0x9')](),controller['update']);router[_0xcb7b('0x12')](_0xcb7b('0xe'),auth[_0xcb7b('0x9')](),controller['destroy']);module[_0xcb7b('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['name','sequelize','STRING'];(function(_0xf5460,_0x119833){var _0x490232=function(_0x14d122){while(--_0x14d122){_0xf5460['push'](_0xf5460['shift']());}};_0x490232(++_0x119833);}(_0xb10b,0x12a));var _0xbb10=function(_0x4e8a59,_0x32bc84){_0x4e8a59=_0x4e8a59-0x0;var _0x22ba3e=_0xb10b[_0x4e8a59];return _0x22ba3e;};'use strict';var Sequelize=require(_0xbb10('0x0'));module['exports']={'name':{'type':Sequelize[_0xbb10('0x1')],'unique':_0xbb10('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xbb10('0x1')]}};
\ No newline at end of file
+var _0x6075=['name','STRING','sequelize','exports'];(function(_0x57120e,_0x427d2d){var _0x1539f5=function(_0x5864ed){while(--_0x5864ed){_0x57120e['push'](_0x57120e['shift']());}};_0x1539f5(++_0x427d2d);}(_0x6075,0x142));var _0x5607=function(_0x17b829,_0x5e2108){_0x17b829=_0x17b829-0x0;var _0x13d776=_0x6075[_0x17b829];return _0x13d776;};'use strict';var Sequelize=require(_0x5607('0x0'));module[_0x5607('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x5607('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x5607('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5075=['apply','reject','save','update','then','sendStatus','error','stack','name','index','rawAttributes','model','query','dateStart','dateEnd','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filters','add','day','merge','filter','map','options','includeAll','include','MailSubstatus','findAll','rows','catch','show','params','find','body','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','status','end','count','offset','limit','set','Content-Range','json'];(function(_0x388440,_0x4699fa){var _0x16e634=function(_0x4c2db8){while(--_0x4c2db8){_0x388440['push'](_0x388440['shift']());}};_0x16e634(++_0x4699fa);}(_0x5075,0x73));var _0x5507=function(_0x284b22,_0x1e0f2c){_0x284b22=_0x284b22-0x0;var _0x261e08=_0x5075[_0x284b22];return _0x261e08;};'use strict';var pdf=require(_0x5507('0x0'));var emlformat=require(_0x5507('0x1'));var rimraf=require(_0x5507('0x2'));var zipdir=require(_0x5507('0x3'));var jsonpatch=require(_0x5507('0x4'));var rp=require(_0x5507('0x5'));var moment=require(_0x5507('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x5507('0x7'));var util=require(_0x5507('0x8'));var path=require(_0x5507('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5507('0xa'));var fs=require('fs');var _=require(_0x5507('0xb'));var squel=require('squel');var crypto=require(_0x5507('0xc'));var jsforce=require(_0x5507('0xd'));var deskjs=require(_0x5507('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x5507('0xf'));var qs=require(_0x5507('0x10'));var logger=require(_0x5507('0x11'))(_0x5507('0x12'));var utils=require('../../config/utils');var config=require(_0x5507('0x13'));var db=require(_0x5507('0x14'))['db'];function respondWithStatusCode(_0x55520e,_0x18601c){_0x18601c=_0x18601c||0xcc;return function(_0x5fbe08){if(_0x5fbe08){return _0x55520e['sendStatus'](_0x18601c);}return _0x55520e[_0x5507('0x15')](_0x18601c)[_0x5507('0x16')]();};}function respondWithResult(_0x32c872,_0x267f27){_0x267f27=_0x267f27||0xc8;return function(_0x13b60a){if(_0x13b60a){return _0x32c872[_0x5507('0x15')](_0x267f27)['json'](_0x13b60a);}};}function respondWithFilteredResult(_0x9cc3f9,_0x2b7c43){return function(_0xc828e5){if(_0xc828e5){var _0x46545d=_0xc828e5[_0x5507('0x17')],_0x4df473=_0x2b7c43[_0x5507('0x18')],_0x49e400=_0x2b7c43[_0x5507('0x18')]+_0x2b7c43[_0x5507('0x19')],_0x10d7b9;if(_0x49e400>=_0x46545d){_0x49e400=_0x46545d;_0x10d7b9=0xc8;}else{_0x10d7b9=0xce;}_0x9cc3f9[_0x5507('0x15')](_0x10d7b9);return _0x9cc3f9[_0x5507('0x1a')](_0x5507('0x1b'),_0x4df473+'-'+_0x49e400+'/'+_0x46545d)[_0x5507('0x1c')](_0xc828e5);}return null;};}function patchUpdates(_0x233b6a){return function(_0x2260f7){try{jsonpatch[_0x5507('0x1d')](_0x2260f7,_0x233b6a,!![]);}catch(_0x5ad6d7){return BPromise[_0x5507('0x1e')](_0x5ad6d7);}return _0x2260f7[_0x5507('0x1f')]();};}function saveUpdates(_0x4054c6,_0x193eda){return function(_0x54f473){if(_0x54f473){return _0x54f473[_0x5507('0x20')](_0x4054c6)[_0x5507('0x21')](function(_0x1a54b0){return _0x1a54b0;});}return null;};}function removeEntity(_0x3ca1f7,_0x68397c){return function(_0x1be8b1){if(_0x1be8b1){return _0x1be8b1['destroy']()[_0x5507('0x21')](function(){_0x3ca1f7[_0x5507('0x15')](0xcc)[_0x5507('0x16')]();});}};}function handleEntityNotFound(_0xa3e2cf,_0x141d22){return function(_0x2de482){if(!_0x2de482){_0xa3e2cf[_0x5507('0x22')](0x194);}return _0x2de482;};}function handleError(_0x10f149,_0x398911){_0x398911=_0x398911||0x1f4;return function(_0xa47641){logger[_0x5507('0x23')](_0xa47641[_0x5507('0x24')]);if(_0xa47641[_0x5507('0x25')]){delete _0xa47641[_0x5507('0x25')];}_0x10f149[_0x5507('0x15')](_0x398911)['send'](_0xa47641);};}exports[_0x5507('0x26')]=function(_0x5b74c0,_0x26335e){var _0x4ea271={},_0xa66a01={},_0x24668b={'count':0x0,'rows':[]};var _0x4beb0a=db['MailSubstatus'][_0x5507('0x27')];_0xa66a01[_0x5507('0x28')]=_['keys'](_0x4beb0a);var _0x2521cb={'dateStart':_0x5b74c0[_0x5507('0x29')][_0x5507('0x2a')],'dateEnd':_0x5b74c0[_0x5507('0x29')][_0x5507('0x2b')]};delete _0x5b74c0[_0x5507('0x29')]['dateStart'];delete _0x5b74c0[_0x5507('0x29')][_0x5507('0x2b')];_0xa66a01[_0x5507('0x29')]=_[_0x5507('0x2c')](_0x5b74c0[_0x5507('0x29')]);_0xa66a01['filters']=_['intersection'](_0xa66a01[_0x5507('0x28')],_0xa66a01[_0x5507('0x29')]);_0x4ea271[_0x5507('0x2d')]=_[_0x5507('0x2e')](_0xa66a01['model'],qs[_0x5507('0x2f')](_0x5b74c0[_0x5507('0x29')][_0x5507('0x2f')]));_0x4ea271[_0x5507('0x2d')]=_0x4ea271[_0x5507('0x2d')][_0x5507('0x30')]?_0x4ea271[_0x5507('0x2d')]:_0xa66a01[_0x5507('0x28')];if(!_0x5b74c0['query'][_0x5507('0x31')](_0x5507('0x32'))){_0x4ea271[_0x5507('0x19')]=qs['limit'](_0x5b74c0['query'][_0x5507('0x19')]);_0x4ea271[_0x5507('0x18')]=qs[_0x5507('0x18')](_0x5b74c0[_0x5507('0x29')][_0x5507('0x18')]);}_0x4ea271['order']=qs['sort'](_0x5b74c0[_0x5507('0x29')][_0x5507('0x33')]);_0x4ea271[_0x5507('0x34')]=qs[_0x5507('0x35')](_['pick'](_0x5b74c0['query'],_0xa66a01[_0x5507('0x35')]));if(_0x2521cb['dateStart']){if(_0x2521cb[_0x5507('0x2b')]){_0x2521cb[_0x5507('0x2b')]=moment(_0x2521cb[_0x5507('0x2b')])[_0x5507('0x36')](0x1,_0x5507('0x37'));}else{_0x2521cb[_0x5507('0x2b')]=moment(_0x2521cb[_0x5507('0x2a')])[_0x5507('0x36')](0x1,_0x5507('0x37'));}_[_0x5507('0x38')](_0x4ea271['where'],{'createdAt':{'$gte':_0x2521cb['dateStart'],'$lte':_0x2521cb['dateEnd']}});}if(_0x5b74c0['query'][_0x5507('0x39')]){_0x4ea271[_0x5507('0x34')]=_[_0x5507('0x38')](_0x4ea271[_0x5507('0x34')],{'$or':_[_0x5507('0x3a')](_0x4ea271[_0x5507('0x2d')],function(_0xbef058){var _0x101de3={};_0x101de3[_0xbef058]={'$like':'%'+_0x5b74c0[_0x5507('0x29')][_0x5507('0x39')]+'%'};return _0x101de3;})});}_0x4ea271=_[_0x5507('0x38')]({},_0x4ea271,_0x5b74c0[_0x5507('0x3b')]);var _0x2db0b2={'where':_0x4ea271[_0x5507('0x34')]};return db['MailSubstatus']['count'](_0x2db0b2)['then'](function(_0x33f7f7){_0x24668b[_0x5507('0x17')]=_0x33f7f7;if(_0x5b74c0[_0x5507('0x29')][_0x5507('0x3c')]){_0x4ea271[_0x5507('0x3d')]=[{'all':!![]}];}return db[_0x5507('0x3e')][_0x5507('0x3f')](_0x4ea271);})[_0x5507('0x21')](function(_0x3dd253){_0x24668b[_0x5507('0x40')]=_0x3dd253;return _0x24668b;})[_0x5507('0x21')](respondWithFilteredResult(_0x26335e,_0x4ea271))[_0x5507('0x41')](handleError(_0x26335e,null));};exports[_0x5507('0x42')]=function(_0x25496b,_0x1b3006){var _0x8bad16={'raw':!![],'where':{'id':_0x25496b[_0x5507('0x43')]['id']}},_0x129396={};_0x129396[_0x5507('0x28')]=_['keys'](db[_0x5507('0x3e')][_0x5507('0x27')]);_0x129396['query']=_['keys'](_0x25496b[_0x5507('0x29')]);_0x129396[_0x5507('0x35')]=_[_0x5507('0x2e')](_0x129396[_0x5507('0x28')],_0x129396[_0x5507('0x29')]);_0x8bad16['attributes']=_[_0x5507('0x2e')](_0x129396[_0x5507('0x28')],qs[_0x5507('0x2f')](_0x25496b['query'][_0x5507('0x2f')]));_0x8bad16[_0x5507('0x2d')]=_0x8bad16[_0x5507('0x2d')][_0x5507('0x30')]?_0x8bad16[_0x5507('0x2d')]:_0x129396['model'];if(_0x25496b[_0x5507('0x29')]['includeAll']){_0x8bad16[_0x5507('0x3d')]=[{'all':!![]}];}_0x8bad16=_[_0x5507('0x38')]({},_0x8bad16,_0x25496b[_0x5507('0x3b')]);return db[_0x5507('0x3e')][_0x5507('0x44')](_0x8bad16)[_0x5507('0x21')](handleEntityNotFound(_0x1b3006,null))[_0x5507('0x21')](respondWithResult(_0x1b3006,null))[_0x5507('0x41')](handleError(_0x1b3006,null));};exports['create']=function(_0x36aee1,_0x22e63b){return db['MailSubstatus']['create'](_0x36aee1['body'],{})[_0x5507('0x21')](respondWithResult(_0x22e63b,0xc9))['catch'](handleError(_0x22e63b,null));};exports[_0x5507('0x20')]=function(_0x4e53fa,_0x754595){if(_0x4e53fa['body']['id']){delete _0x4e53fa['body']['id'];}return db[_0x5507('0x3e')][_0x5507('0x44')]({'where':{'id':_0x4e53fa[_0x5507('0x43')]['id']}})[_0x5507('0x21')](handleEntityNotFound(_0x754595,null))[_0x5507('0x21')](saveUpdates(_0x4e53fa[_0x5507('0x45')],null))['then'](respondWithResult(_0x754595,null))[_0x5507('0x41')](handleError(_0x754595,null));};exports[_0x5507('0x46')]=function(_0x2f795c,_0x4b5722){return db[_0x5507('0x3e')][_0x5507('0x44')]({'where':{'id':_0x2f795c[_0x5507('0x43')]['id']}})[_0x5507('0x21')](handleEntityNotFound(_0x4b5722,null))[_0x5507('0x21')](removeEntity(_0x4b5722,null))[_0x5507('0x41')](handleError(_0x4b5722,null));};exports[_0x5507('0x47')]=function(_0x34f197,_0x4674f9){return db[_0x5507('0x3e')][_0x5507('0x47')]()['then'](respondWithResult(_0x4674f9,null))['catch'](handleError(_0x4674f9,null));};
\ No newline at end of file
+var _0x7028=['options','includeAll','findAll','rows','catch','show','rawAttributes','include','create','body','update','find','params','describe','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','apply','save','destroy','then','error','stack','name','send','index','MailSubstatus','model','keys','query','dateStart','dateEnd','intersection','attributes','fields','hasOwnProperty','order','sort','where','filters','pick','add','day','merge','filter','map'];(function(_0x58ee19,_0xdf0765){var _0x49af25=function(_0x109b5e){while(--_0x109b5e){_0x58ee19['push'](_0x58ee19['shift']());}};_0x49af25(++_0xdf0765);}(_0x7028,0x180));var _0x8702=function(_0x295314,_0x17b250){_0x295314=_0x295314-0x0;var _0x584b0c=_0x7028[_0x295314];return _0x584b0c;};'use strict';var pdf=require(_0x8702('0x0'));var emlformat=require(_0x8702('0x1'));var rimraf=require(_0x8702('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8702('0x3'));var rp=require(_0x8702('0x4'));var moment=require('moment');var BPromise=require(_0x8702('0x5'));var Mustache=require(_0x8702('0x6'));var util=require(_0x8702('0x7'));var path=require(_0x8702('0x8'));var sox=require(_0x8702('0x9'));var csv=require(_0x8702('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x8702('0xb'));var squel=require(_0x8702('0xc'));var crypto=require(_0x8702('0xd'));var jsforce=require(_0x8702('0xe'));var deskjs=require(_0x8702('0xf'));var toCsv=require(_0x8702('0xa'));var querystring=require(_0x8702('0x10'));var Papa=require('papaparse');var Redis=require(_0x8702('0x11'));var qs=require(_0x8702('0x12'));var logger=require(_0x8702('0x13'))(_0x8702('0x14'));var utils=require(_0x8702('0x15'));var config=require(_0x8702('0x16'));var db=require(_0x8702('0x17'))['db'];function respondWithStatusCode(_0x140e69,_0x30b7da){_0x30b7da=_0x30b7da||0xcc;return function(_0x326ac8){if(_0x326ac8){return _0x140e69[_0x8702('0x18')](_0x30b7da);}return _0x140e69[_0x8702('0x19')](_0x30b7da)[_0x8702('0x1a')]();};}function respondWithResult(_0x1c1bdf,_0x438025){_0x438025=_0x438025||0xc8;return function(_0x35f546){if(_0x35f546){return _0x1c1bdf[_0x8702('0x19')](_0x438025)[_0x8702('0x1b')](_0x35f546);}};}function respondWithFilteredResult(_0xfd9110,_0x23523d){return function(_0x3280c5){if(_0x3280c5){var _0x4667f9=_0x3280c5[_0x8702('0x1c')],_0x35db5c=_0x23523d[_0x8702('0x1d')],_0x32819e=_0x23523d[_0x8702('0x1d')]+_0x23523d[_0x8702('0x1e')],_0x201d2a;if(_0x32819e>=_0x4667f9){_0x32819e=_0x4667f9;_0x201d2a=0xc8;}else{_0x201d2a=0xce;}_0xfd9110[_0x8702('0x19')](_0x201d2a);return _0xfd9110['set']('Content-Range',_0x35db5c+'-'+_0x32819e+'/'+_0x4667f9)[_0x8702('0x1b')](_0x3280c5);}return null;};}function patchUpdates(_0x435bd5){return function(_0x53b4cf){try{jsonpatch[_0x8702('0x1f')](_0x53b4cf,_0x435bd5,!![]);}catch(_0x5d2ddc){return BPromise['reject'](_0x5d2ddc);}return _0x53b4cf[_0x8702('0x20')]();};}function saveUpdates(_0x2160a8,_0x391bde){return function(_0x4ce848){if(_0x4ce848){return _0x4ce848['update'](_0x2160a8)['then'](function(_0x34d189){return _0x34d189;});}return null;};}function removeEntity(_0x474b87,_0x4a6459){return function(_0x5755d4){if(_0x5755d4){return _0x5755d4[_0x8702('0x21')]()[_0x8702('0x22')](function(){_0x474b87['status'](0xcc)[_0x8702('0x1a')]();});}};}function handleEntityNotFound(_0x49a017,_0x4c50f1){return function(_0x549db5){if(!_0x549db5){_0x49a017[_0x8702('0x18')](0x194);}return _0x549db5;};}function handleError(_0x51eb60,_0x5d3eab){_0x5d3eab=_0x5d3eab||0x1f4;return function(_0xdf4c62){logger[_0x8702('0x23')](_0xdf4c62[_0x8702('0x24')]);if(_0xdf4c62[_0x8702('0x25')]){delete _0xdf4c62[_0x8702('0x25')];}_0x51eb60[_0x8702('0x19')](_0x5d3eab)[_0x8702('0x26')](_0xdf4c62);};}exports[_0x8702('0x27')]=function(_0x365101,_0x48b346){var _0x1e51d6={},_0x1db852={},_0x22cd67={'count':0x0,'rows':[]};var _0x2720f0=db[_0x8702('0x28')]['rawAttributes'];_0x1db852[_0x8702('0x29')]=_[_0x8702('0x2a')](_0x2720f0);var _0x2d9f88={'dateStart':_0x365101[_0x8702('0x2b')][_0x8702('0x2c')],'dateEnd':_0x365101[_0x8702('0x2b')]['dateEnd']};delete _0x365101['query'][_0x8702('0x2c')];delete _0x365101[_0x8702('0x2b')][_0x8702('0x2d')];_0x1db852[_0x8702('0x2b')]=_[_0x8702('0x2a')](_0x365101[_0x8702('0x2b')]);_0x1db852['filters']=_[_0x8702('0x2e')](_0x1db852[_0x8702('0x29')],_0x1db852[_0x8702('0x2b')]);_0x1e51d6[_0x8702('0x2f')]=_[_0x8702('0x2e')](_0x1db852[_0x8702('0x29')],qs[_0x8702('0x30')](_0x365101[_0x8702('0x2b')][_0x8702('0x30')]));_0x1e51d6['attributes']=_0x1e51d6[_0x8702('0x2f')]['length']?_0x1e51d6[_0x8702('0x2f')]:_0x1db852['model'];if(!_0x365101[_0x8702('0x2b')][_0x8702('0x31')]('nolimit')){_0x1e51d6[_0x8702('0x1e')]=qs['limit'](_0x365101['query'][_0x8702('0x1e')]);_0x1e51d6['offset']=qs[_0x8702('0x1d')](_0x365101[_0x8702('0x2b')][_0x8702('0x1d')]);}_0x1e51d6[_0x8702('0x32')]=qs[_0x8702('0x33')](_0x365101[_0x8702('0x2b')][_0x8702('0x33')]);_0x1e51d6[_0x8702('0x34')]=qs[_0x8702('0x35')](_[_0x8702('0x36')](_0x365101[_0x8702('0x2b')],_0x1db852[_0x8702('0x35')]));if(_0x2d9f88[_0x8702('0x2c')]){if(_0x2d9f88[_0x8702('0x2d')]){_0x2d9f88[_0x8702('0x2d')]=moment(_0x2d9f88[_0x8702('0x2d')])[_0x8702('0x37')](0x1,'day');}else{_0x2d9f88['dateEnd']=moment(_0x2d9f88[_0x8702('0x2c')])[_0x8702('0x37')](0x1,_0x8702('0x38'));}_[_0x8702('0x39')](_0x1e51d6['where'],{'createdAt':{'$gte':_0x2d9f88['dateStart'],'$lte':_0x2d9f88[_0x8702('0x2d')]}});}if(_0x365101[_0x8702('0x2b')][_0x8702('0x3a')]){_0x1e51d6[_0x8702('0x34')]=_['merge'](_0x1e51d6[_0x8702('0x34')],{'$or':_[_0x8702('0x3b')](_0x1e51d6[_0x8702('0x2f')],function(_0x33e8f2){var _0x411fbc={};_0x411fbc[_0x33e8f2]={'$like':'%'+_0x365101[_0x8702('0x2b')][_0x8702('0x3a')]+'%'};return _0x411fbc;})});}_0x1e51d6=_[_0x8702('0x39')]({},_0x1e51d6,_0x365101[_0x8702('0x3c')]);var _0x53ebb0={'where':_0x1e51d6[_0x8702('0x34')]};return db['MailSubstatus'][_0x8702('0x1c')](_0x53ebb0)[_0x8702('0x22')](function(_0x57b8a1){_0x22cd67[_0x8702('0x1c')]=_0x57b8a1;if(_0x365101[_0x8702('0x2b')][_0x8702('0x3d')]){_0x1e51d6['include']=[{'all':!![]}];}return db[_0x8702('0x28')][_0x8702('0x3e')](_0x1e51d6);})[_0x8702('0x22')](function(_0x81ab3f){_0x22cd67[_0x8702('0x3f')]=_0x81ab3f;return _0x22cd67;})['then'](respondWithFilteredResult(_0x48b346,_0x1e51d6))[_0x8702('0x40')](handleError(_0x48b346,null));};exports[_0x8702('0x41')]=function(_0x4ac362,_0x3fdf7f){var _0x32ffe9={'raw':!![],'where':{'id':_0x4ac362['params']['id']}},_0x1e64bc={};_0x1e64bc[_0x8702('0x29')]=_[_0x8702('0x2a')](db['MailSubstatus'][_0x8702('0x42')]);_0x1e64bc[_0x8702('0x2b')]=_[_0x8702('0x2a')](_0x4ac362[_0x8702('0x2b')]);_0x1e64bc[_0x8702('0x35')]=_['intersection'](_0x1e64bc[_0x8702('0x29')],_0x1e64bc[_0x8702('0x2b')]);_0x32ffe9[_0x8702('0x2f')]=_['intersection'](_0x1e64bc[_0x8702('0x29')],qs[_0x8702('0x30')](_0x4ac362[_0x8702('0x2b')]['fields']));_0x32ffe9[_0x8702('0x2f')]=_0x32ffe9[_0x8702('0x2f')]['length']?_0x32ffe9['attributes']:_0x1e64bc[_0x8702('0x29')];if(_0x4ac362[_0x8702('0x2b')]['includeAll']){_0x32ffe9[_0x8702('0x43')]=[{'all':!![]}];}_0x32ffe9=_[_0x8702('0x39')]({},_0x32ffe9,_0x4ac362[_0x8702('0x3c')]);return db[_0x8702('0x28')]['find'](_0x32ffe9)[_0x8702('0x22')](handleEntityNotFound(_0x3fdf7f,null))[_0x8702('0x22')](respondWithResult(_0x3fdf7f,null))[_0x8702('0x40')](handleError(_0x3fdf7f,null));};exports[_0x8702('0x44')]=function(_0x4234e8,_0xcc72d5){return db[_0x8702('0x28')][_0x8702('0x44')](_0x4234e8[_0x8702('0x45')],{})[_0x8702('0x22')](respondWithResult(_0xcc72d5,0xc9))[_0x8702('0x40')](handleError(_0xcc72d5,null));};exports[_0x8702('0x46')]=function(_0xfe844,_0x1f6110){if(_0xfe844[_0x8702('0x45')]['id']){delete _0xfe844[_0x8702('0x45')]['id'];}return db[_0x8702('0x28')][_0x8702('0x47')]({'where':{'id':_0xfe844['params']['id']}})['then'](handleEntityNotFound(_0x1f6110,null))[_0x8702('0x22')](saveUpdates(_0xfe844[_0x8702('0x45')],null))['then'](respondWithResult(_0x1f6110,null))['catch'](handleError(_0x1f6110,null));};exports['destroy']=function(_0xee9af4,_0x31583f){return db[_0x8702('0x28')][_0x8702('0x47')]({'where':{'id':_0xee9af4[_0x8702('0x48')]['id']}})[_0x8702('0x22')](handleEntityNotFound(_0x31583f,null))[_0x8702('0x22')](removeEntity(_0x31583f,null))[_0x8702('0x40')](handleError(_0x31583f,null));};exports['describe']=function(_0x14741f,_0x3649b1){return db[_0x8702('0x28')][_0x8702('0x49')]()[_0x8702('0x22')](respondWithResult(_0x3649b1,null))[_0x8702('0x40')](handleError(_0x3649b1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e09=['mail_substatuses','util','api','bluebird','request-promise','./mailSubstatus.attributes','exports','define','MailSubstatus'];(function(_0x912d27,_0x28e0e3){var _0x31b918=function(_0x1882f7){while(--_0x1882f7){_0x912d27['push'](_0x912d27['shift']());}};_0x31b918(++_0x28e0e3);}(_0x9e09,0x9a));var _0x99e0=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x9e09[_0x126558];return _0x1f6d14;};'use strict';var _=require('lodash');var util=require(_0x99e0('0x0'));var logger=require('../../config/logger')(_0x99e0('0x1'));var moment=require('moment');var BPromise=require(_0x99e0('0x2'));var rp=require(_0x99e0('0x3'));var attributes=require(_0x99e0('0x4'));module[_0x99e0('0x5')]=function(_0x4b5b35,_0xe5072e){return _0x4b5b35[_0x99e0('0x6')](_0x99e0('0x7'),attributes,{'tableName':_0x99e0('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5ce5=['util','../../config/logger','api','moment','request-promise','define','MailSubstatus','mail_substatuses'];(function(_0x530221,_0x184f39){var _0x15e69a=function(_0x357449){while(--_0x357449){_0x530221['push'](_0x530221['shift']());}};_0x15e69a(++_0x184f39);}(_0x5ce5,0x190));var _0x55ce=function(_0xa44f88,_0x436bc3){_0xa44f88=_0xa44f88-0x0;var _0x4857ae=_0x5ce5[_0xa44f88];return _0x4857ae;};'use strict';var _=require('lodash');var util=require(_0x55ce('0x0'));var logger=require(_0x55ce('0x1'))(_0x55ce('0x2'));var moment=require(_0x55ce('0x3'));var BPromise=require('bluebird');var rp=require(_0x55ce('0x4'));var attributes=require('./mailSubstatus.attributes');module['exports']=function(_0x4f9002,_0x1ca8db){return _0x4f9002[_0x55ce('0x5')](_0x55ce('0x6'),attributes,{'tableName':_0x55ce('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6566=['moment','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','MailSubstatus,\x20%s,\x20%s','request\x20sent','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','util'];(function(_0x3863f4,_0x305ef1){var _0x333bd1=function(_0x194384){while(--_0x194384){_0x3863f4['push'](_0x3863f4['shift']());}};_0x333bd1(++_0x305ef1);}(_0x6566,0x116));var _0x6656=function(_0x5933fb,_0x9115ad){_0x5933fb=_0x5933fb-0x0;var _0x44d988=_0x6566[_0x5933fb];return _0x44d988;};'use strict';var _=require(_0x6656('0x0'));var util=require(_0x6656('0x1'));var moment=require(_0x6656('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x6656('0x3'))['db'];var utils=require(_0x6656('0x4'));var logger=require('../../config/logger')(_0x6656('0x5'));var config=require(_0x6656('0x6'));var jayson=require(_0x6656('0x7'));var client=jayson[_0x6656('0x8')][_0x6656('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3cae5b,_0x21a2d2,_0x440ecb){return new BPromise(function(_0x230584,_0x3724ef){return client[_0x6656('0xa')](_0x3cae5b,_0x440ecb)['then'](function(_0x540038){logger['info'](_0x6656('0xb'),_0x21a2d2,_0x6656('0xc'));logger['debug'](_0x6656('0xd'),_0x21a2d2,_0x6656('0xc'),JSON[_0x6656('0xe')](_0x540038));if(_0x540038[_0x6656('0xf')]){if(_0x540038[_0x6656('0xf')][_0x6656('0x10')]===0x1f4){logger[_0x6656('0xf')](_0x6656('0xb'),_0x21a2d2,_0x540038[_0x6656('0xf')]['message']);return _0x3724ef(_0x540038['error'][_0x6656('0x11')]);}logger[_0x6656('0xf')]('MailSubstatus,\x20%s,\x20%s',_0x21a2d2,_0x540038[_0x6656('0xf')][_0x6656('0x11')]);return _0x230584(_0x540038[_0x6656('0xf')][_0x6656('0x11')]);}else{logger[_0x6656('0x12')](_0x6656('0xb'),_0x21a2d2,'request\x20sent');_0x230584(_0x540038[_0x6656('0x13')][_0x6656('0x11')]);}})['catch'](function(_0x365af0){logger[_0x6656('0xf')](_0x6656('0xb'),_0x21a2d2,_0x365af0);_0x3724ef(_0x365af0);});});}
\ No newline at end of file
+var _0xa066=['request','info','MailSubstatus,\x20%s,\x20%s','request\x20sent','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x584fce,_0x101359){var _0x30fe86=function(_0x1f84b1){while(--_0x1f84b1){_0x584fce['push'](_0x584fce['shift']());}};_0x30fe86(++_0x101359);}(_0xa066,0x1d7));var _0x6a06=function(_0xf8f6f1,_0x551483){_0xf8f6f1=_0xf8f6f1-0x0;var _0x51db61=_0xa066[_0xf8f6f1];return _0x51db61;};'use strict';var _=require(_0x6a06('0x0'));var util=require(_0x6a06('0x1'));var moment=require(_0x6a06('0x2'));var BPromise=require(_0x6a06('0x3'));var rs=require(_0x6a06('0x4'));var fs=require('fs');var Redis=require(_0x6a06('0x5'));var db=require(_0x6a06('0x6'))['db'];var utils=require(_0x6a06('0x7'));var logger=require(_0x6a06('0x8'))('rpc');var config=require(_0x6a06('0x9'));var jayson=require(_0x6a06('0xa'));var client=jayson[_0x6a06('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5eb5bd,_0xe1366,_0x487422){return new BPromise(function(_0x52e6ea,_0x545a07){return client[_0x6a06('0xc')](_0x5eb5bd,_0x487422)['then'](function(_0x3d438e){logger[_0x6a06('0xd')](_0x6a06('0xe'),_0xe1366,_0x6a06('0xf'));logger[_0x6a06('0x10')](_0x6a06('0x11'),_0xe1366,_0x6a06('0xf'),JSON['stringify'](_0x3d438e));if(_0x3d438e[_0x6a06('0x12')]){if(_0x3d438e[_0x6a06('0x12')]['code']===0x1f4){logger[_0x6a06('0x12')](_0x6a06('0xe'),_0xe1366,_0x3d438e[_0x6a06('0x12')]['message']);return _0x545a07(_0x3d438e[_0x6a06('0x12')]['message']);}logger['error'](_0x6a06('0xe'),_0xe1366,_0x3d438e[_0x6a06('0x12')][_0x6a06('0x13')]);return _0x52e6ea(_0x3d438e[_0x6a06('0x12')][_0x6a06('0x13')]);}else{logger[_0x6a06('0xd')]('MailSubstatus,\x20%s,\x20%s',_0xe1366,_0x6a06('0xf'));_0x52e6ea(_0x3d438e['result'][_0x6a06('0x13')]);}})[_0x6a06('0x14')](function(_0x15da69){logger[_0x6a06('0x12')](_0x6a06('0xe'),_0xe1366,_0x15da69);_0x545a07(_0x15da69);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc359=['Router','../../components/interaction/service','./mailTransferReport.controller','isAuthenticated','describe','get','/:id','show','post','create','put','delete','destroy','exports','util','connect-timeout','express'];(function(_0x369151,_0x179f72){var _0x4292d5=function(_0x330422){while(--_0x330422){_0x369151['push'](_0x369151['shift']());}};_0x4292d5(++_0x179f72);}(_0xc359,0x1d9));var _0x9c35=function(_0x5a9666,_0x30bc94){_0x5a9666=_0x5a9666-0x0;var _0x28601f=_0xc359[_0x5a9666];return _0x28601f;};'use strict';var multer=require('multer');var util=require(_0x9c35('0x0'));var path=require('path');var timeout=require(_0x9c35('0x1'));var express=require(_0x9c35('0x2'));var router=express[_0x9c35('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x9c35('0x4'));var config=require('../../config/environment');var controller=require(_0x9c35('0x5'));router['get']('/',auth[_0x9c35('0x6')](),controller['index']);router['get']('/describe',auth['isAuthenticated'](),controller[_0x9c35('0x7')]);router[_0x9c35('0x8')](_0x9c35('0x9'),auth[_0x9c35('0x6')](),controller[_0x9c35('0xa')]);router[_0x9c35('0xb')]('/',auth['isAuthenticated'](),controller[_0x9c35('0xc')]);router[_0x9c35('0xd')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x9c35('0xe')]('/:id',auth[_0x9c35('0x6')](),controller[_0x9c35('0xf')]);module[_0x9c35('0x10')]=router;
\ No newline at end of file
+var _0x7ee1=['../../components/auth/service','../../config/environment','./mailTransferReport.controller','get','isAuthenticated','/describe','describe','/:id','show','put','update','delete','destroy','multer','express','Router'];(function(_0x68361,_0x231f90){var _0xbb709a=function(_0x47e656){while(--_0x47e656){_0x68361['push'](_0x68361['shift']());}};_0xbb709a(++_0x231f90);}(_0x7ee1,0x8d));var _0x17ee=function(_0x465edf,_0x997f88){_0x465edf=_0x465edf-0x0;var _0x25c52=_0x7ee1[_0x465edf];return _0x25c52;};'use strict';var multer=require(_0x17ee('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x17ee('0x1'));var router=express[_0x17ee('0x2')]();var auth=require(_0x17ee('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x17ee('0x4'));var controller=require(_0x17ee('0x5'));router[_0x17ee('0x6')]('/',auth[_0x17ee('0x7')](),controller['index']);router[_0x17ee('0x6')](_0x17ee('0x8'),auth['isAuthenticated'](),controller[_0x17ee('0x9')]);router['get'](_0x17ee('0xa'),auth[_0x17ee('0x7')](),controller[_0x17ee('0xb')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x17ee('0xc')]('/:id',auth[_0x17ee('0x7')](),controller[_0x17ee('0xd')]);router[_0x17ee('0xe')](_0x17ee('0xa'),auth['isAuthenticated'](),controller[_0x17ee('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf5=['queue','DATE','moment','sequelize','STRING','ENUM','account'];(function(_0x360fc7,_0x5cd3e7){var _0x42f8ee=function(_0x4944bc){while(--_0x4944bc){_0x360fc7['push'](_0x360fc7['shift']());}};_0x42f8ee(++_0x5cd3e7);}(_0xbaf5,0x159));var _0x5baf=function(_0x5cf76b,_0xfbf968){_0x5cf76b=_0x5cf76b-0x0;var _0x50d61f=_0xbaf5[_0x5cf76b];return _0x50d61f;};'use strict';var moment=require(_0x5baf('0x0'));var Sequelize=require(_0x5baf('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0x5baf('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x5baf('0x3')](_0x5baf('0x4'),'agent','queue'),'allowNull':![],'defaultValue':_0x5baf('0x5')},'transferredAt':{'type':Sequelize[_0x5baf('0x6')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
+var _0xafc4=['NOW','moment','ENUM','queue','DATE'];(function(_0x281cd6,_0x44528a){var _0x3bd562=function(_0x4b723f){while(--_0x4b723f){_0x281cd6['push'](_0x281cd6['shift']());}};_0x3bd562(++_0x44528a);}(_0xafc4,0x128));var _0x4afc=function(_0x2ba0b3,_0x39e199){_0x2ba0b3=_0x2ba0b3-0x0;var _0x3d847e=_0xafc4[_0x2ba0b3];return _0x3d847e;};'use strict';var moment=require(_0x4afc('0x0'));var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x4afc('0x1')]('account','agent',_0x4afc('0x2')),'allowNull':![],'defaultValue':_0x4afc('0x2')},'transferredAt':{'type':Sequelize[_0x4afc('0x3')],'allowNull':![],'defaultValue':Sequelize[_0x4afc('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ee7=['to-csv','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','stack','name','index','MailTransferReport','model','query','dateStart','dateEnd','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','add','day','merge','filter','options','includeAll','findAll','rows','params','rawAttributes','include','find','catch','create','update','body','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','lodash','crypto','jsforce'];(function(_0x58d89e,_0x532333){var _0x572cb5=function(_0x474122){while(--_0x474122){_0x58d89e['push'](_0x58d89e['shift']());}};_0x572cb5(++_0x532333);}(_0x9ee7,0x196));var _0x79ee=function(_0x124b6f,_0x22f98c){_0x124b6f=_0x124b6f-0x0;var _0x2e40fd=_0x9ee7[_0x124b6f];return _0x2e40fd;};'use strict';var pdf=require(_0x79ee('0x0'));var emlformat=require(_0x79ee('0x1'));var rimraf=require(_0x79ee('0x2'));var zipdir=require(_0x79ee('0x3'));var jsonpatch=require(_0x79ee('0x4'));var rp=require(_0x79ee('0x5'));var moment=require('moment');var BPromise=require(_0x79ee('0x6'));var Mustache=require(_0x79ee('0x7'));var util=require(_0x79ee('0x8'));var path=require(_0x79ee('0x9'));var sox=require(_0x79ee('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x79ee('0xb'));var squel=require('squel');var crypto=require(_0x79ee('0xc'));var jsforce=require(_0x79ee('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x79ee('0xe'));var querystring=require('querystring');var Papa=require(_0x79ee('0xf'));var qs=require(_0x79ee('0x10'));var logger=require(_0x79ee('0x11'))(_0x79ee('0x12'));var utils=require(_0x79ee('0x13'));var config=require(_0x79ee('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x35e724,_0x1216da){_0x1216da=_0x1216da||0xcc;return function(_0x67be68){if(_0x67be68){return _0x35e724[_0x79ee('0x15')](_0x1216da);}return _0x35e724[_0x79ee('0x16')](_0x1216da)[_0x79ee('0x17')]();};}function respondWithResult(_0x27e49,_0x18c686){_0x18c686=_0x18c686||0xc8;return function(_0x219b34){if(_0x219b34){return _0x27e49[_0x79ee('0x16')](_0x18c686)[_0x79ee('0x18')](_0x219b34);}};}function respondWithFilteredResult(_0x22d5f9,_0x3f79e7){return function(_0x4e5002){if(_0x4e5002){var _0x2f3b7b=_0x4e5002[_0x79ee('0x19')],_0x52645a=_0x3f79e7[_0x79ee('0x1a')],_0x488aa6=_0x3f79e7[_0x79ee('0x1a')]+_0x3f79e7[_0x79ee('0x1b')],_0xbe0ea7;if(_0x488aa6>=_0x2f3b7b){_0x488aa6=_0x2f3b7b;_0xbe0ea7=0xc8;}else{_0xbe0ea7=0xce;}_0x22d5f9[_0x79ee('0x16')](_0xbe0ea7);return _0x22d5f9[_0x79ee('0x1c')](_0x79ee('0x1d'),_0x52645a+'-'+_0x488aa6+'/'+_0x2f3b7b)['json'](_0x4e5002);}return null;};}function patchUpdates(_0x561b8c){return function(_0x33a6c1){try{jsonpatch[_0x79ee('0x1e')](_0x33a6c1,_0x561b8c,!![]);}catch(_0x4f0840){return BPromise[_0x79ee('0x1f')](_0x4f0840);}return _0x33a6c1[_0x79ee('0x20')]();};}function saveUpdates(_0x41cac0,_0x5f0a8c){return function(_0x491759){if(_0x491759){return _0x491759['update'](_0x41cac0)[_0x79ee('0x21')](function(_0x3564cf){return _0x3564cf;});}return null;};}function removeEntity(_0x392e6c,_0x5b6706){return function(_0x26b39d){if(_0x26b39d){return _0x26b39d['destroy']()['then'](function(){_0x392e6c[_0x79ee('0x16')](0xcc)[_0x79ee('0x17')]();});}};}function handleEntityNotFound(_0x429088,_0x271056){return function(_0x4b84ea){if(!_0x4b84ea){_0x429088['sendStatus'](0x194);}return _0x4b84ea;};}function handleError(_0x5b6d87,_0xb4ae19){_0xb4ae19=_0xb4ae19||0x1f4;return function(_0xc48442){logger['error'](_0xc48442[_0x79ee('0x22')]);if(_0xc48442['name']){delete _0xc48442[_0x79ee('0x23')];}_0x5b6d87[_0x79ee('0x16')](_0xb4ae19)['send'](_0xc48442);};}exports[_0x79ee('0x24')]=function(_0x41705e,_0x2faced){var _0x5980cb={},_0x527d7a={},_0x508697={'count':0x0,'rows':[]};var _0x33c838=db[_0x79ee('0x25')]['rawAttributes'];_0x527d7a[_0x79ee('0x26')]=_['keys'](_0x33c838);var _0x3d9c66={'dateStart':_0x41705e[_0x79ee('0x27')][_0x79ee('0x28')],'dateEnd':_0x41705e[_0x79ee('0x27')][_0x79ee('0x29')]};delete _0x41705e[_0x79ee('0x27')][_0x79ee('0x28')];delete _0x41705e[_0x79ee('0x27')][_0x79ee('0x29')];_0x527d7a[_0x79ee('0x27')]=_[_0x79ee('0x2a')](_0x41705e[_0x79ee('0x27')]);_0x527d7a[_0x79ee('0x2b')]=_[_0x79ee('0x2c')](_0x527d7a[_0x79ee('0x26')],_0x527d7a[_0x79ee('0x27')]);_0x5980cb['attributes']=_[_0x79ee('0x2c')](_0x527d7a['model'],qs['fields'](_0x41705e[_0x79ee('0x27')][_0x79ee('0x2d')]));_0x5980cb['attributes']=_0x5980cb[_0x79ee('0x2e')][_0x79ee('0x2f')]?_0x5980cb[_0x79ee('0x2e')]:_0x527d7a[_0x79ee('0x26')];if(!_0x41705e['query']['hasOwnProperty'](_0x79ee('0x30'))){_0x5980cb[_0x79ee('0x1b')]=qs[_0x79ee('0x1b')](_0x41705e[_0x79ee('0x27')][_0x79ee('0x1b')]);_0x5980cb['offset']=qs[_0x79ee('0x1a')](_0x41705e[_0x79ee('0x27')][_0x79ee('0x1a')]);}_0x5980cb['order']=qs[_0x79ee('0x31')](_0x41705e[_0x79ee('0x27')]['sort']);_0x5980cb[_0x79ee('0x32')]=qs[_0x79ee('0x2b')](_[_0x79ee('0x33')](_0x41705e['query'],_0x527d7a[_0x79ee('0x2b')]));if(_0x3d9c66[_0x79ee('0x28')]){if(_0x3d9c66[_0x79ee('0x29')]){_0x3d9c66[_0x79ee('0x29')]=moment(_0x3d9c66[_0x79ee('0x29')])[_0x79ee('0x34')](0x1,_0x79ee('0x35'));}else{_0x3d9c66[_0x79ee('0x29')]=moment(_0x3d9c66[_0x79ee('0x28')])[_0x79ee('0x34')](0x1,_0x79ee('0x35'));}_['merge'](_0x5980cb['where'],{'createdAt':{'$gte':_0x3d9c66[_0x79ee('0x28')],'$lte':_0x3d9c66['dateEnd']}});}if(_0x41705e[_0x79ee('0x27')]['filter']){_0x5980cb['where']=_[_0x79ee('0x36')](_0x5980cb[_0x79ee('0x32')],{'$or':_['map'](_0x5980cb['attributes'],function(_0x114806){var _0x19d0cf={};_0x19d0cf[_0x114806]={'$like':'%'+_0x41705e[_0x79ee('0x27')][_0x79ee('0x37')]+'%'};return _0x19d0cf;})});}_0x5980cb=_['merge']({},_0x5980cb,_0x41705e[_0x79ee('0x38')]);var _0x6d90db={'where':_0x5980cb[_0x79ee('0x32')]};return db[_0x79ee('0x25')][_0x79ee('0x19')](_0x6d90db)[_0x79ee('0x21')](function(_0x392282){_0x508697['count']=_0x392282;if(_0x41705e[_0x79ee('0x27')][_0x79ee('0x39')]){_0x5980cb['include']=[{'all':!![]}];}return db[_0x79ee('0x25')][_0x79ee('0x3a')](_0x5980cb);})[_0x79ee('0x21')](function(_0x57ea34){_0x508697[_0x79ee('0x3b')]=_0x57ea34;return _0x508697;})[_0x79ee('0x21')](respondWithFilteredResult(_0x2faced,_0x5980cb))['catch'](handleError(_0x2faced,null));};exports['show']=function(_0x2f27e6,_0x237cf4){var _0x2710bf={'raw':!![],'where':{'id':_0x2f27e6[_0x79ee('0x3c')]['id']}},_0x2a3067={};_0x2a3067[_0x79ee('0x26')]=_[_0x79ee('0x2a')](db[_0x79ee('0x25')][_0x79ee('0x3d')]);_0x2a3067['query']=_[_0x79ee('0x2a')](_0x2f27e6['query']);_0x2a3067['filters']=_[_0x79ee('0x2c')](_0x2a3067['model'],_0x2a3067[_0x79ee('0x27')]);_0x2710bf[_0x79ee('0x2e')]=_['intersection'](_0x2a3067['model'],qs[_0x79ee('0x2d')](_0x2f27e6[_0x79ee('0x27')][_0x79ee('0x2d')]));_0x2710bf[_0x79ee('0x2e')]=_0x2710bf[_0x79ee('0x2e')]['length']?_0x2710bf[_0x79ee('0x2e')]:_0x2a3067[_0x79ee('0x26')];if(_0x2f27e6[_0x79ee('0x27')]['includeAll']){_0x2710bf[_0x79ee('0x3e')]=[{'all':!![]}];}_0x2710bf=_[_0x79ee('0x36')]({},_0x2710bf,_0x2f27e6[_0x79ee('0x38')]);return db[_0x79ee('0x25')][_0x79ee('0x3f')](_0x2710bf)[_0x79ee('0x21')](handleEntityNotFound(_0x237cf4,null))['then'](respondWithResult(_0x237cf4,null))[_0x79ee('0x40')](handleError(_0x237cf4,null));};exports['create']=function(_0x96375e,_0x410343){return db[_0x79ee('0x25')][_0x79ee('0x41')](_0x96375e['body'],{})[_0x79ee('0x21')](respondWithResult(_0x410343,0xc9))[_0x79ee('0x40')](handleError(_0x410343,null));};exports[_0x79ee('0x42')]=function(_0x57f516,_0xc4752c){if(_0x57f516[_0x79ee('0x43')]['id']){delete _0x57f516['body']['id'];}return db[_0x79ee('0x25')]['find']({'where':{'id':_0x57f516['params']['id']}})[_0x79ee('0x21')](handleEntityNotFound(_0xc4752c,null))[_0x79ee('0x21')](saveUpdates(_0x57f516[_0x79ee('0x43')],null))[_0x79ee('0x21')](respondWithResult(_0xc4752c,null))['catch'](handleError(_0xc4752c,null));};exports[_0x79ee('0x44')]=function(_0x1a44b2,_0x24d439){return db[_0x79ee('0x25')]['find']({'where':{'id':_0x1a44b2[_0x79ee('0x3c')]['id']}})[_0x79ee('0x21')](handleEntityNotFound(_0x24d439,null))[_0x79ee('0x21')](removeEntity(_0x24d439,null))[_0x79ee('0x40')](handleError(_0x24d439,null));};exports[_0x79ee('0x45')]=function(_0x49f4d8,_0x2fd499){return db[_0x79ee('0x25')][_0x79ee('0x45')]()['then'](respondWithResult(_0x2fd499,null))[_0x79ee('0x40')](handleError(_0x2fd499,null));};
\ No newline at end of file
+var _0x5ed7=['update','destroy','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','api','../../mysqldb','sendStatus','end','status','json','offset','Content-Range','apply','reject','save','error','stack','name','send','index','MailTransferReport','rawAttributes','model','query','dateStart','dateEnd','intersection','attributes','fields','nolimit','limit','order','sort','where','filters','pick','add','day','merge','filter','map','count','then','include','catch','show','params','keys','length','find','create','body'];(function(_0x45702e,_0x1255f0){var _0x313929=function(_0x2c6419){while(--_0x2c6419){_0x45702e['push'](_0x45702e['shift']());}};_0x313929(++_0x1255f0);}(_0x5ed7,0x15c));var _0x75ed=function(_0x322565,_0x40e188){_0x322565=_0x322565-0x0;var _0x1dafd3=_0x5ed7[_0x322565];return _0x1dafd3;};'use strict';var pdf=require(_0x75ed('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x75ed('0x1'));var zipdir=require(_0x75ed('0x2'));var jsonpatch=require(_0x75ed('0x3'));var rp=require(_0x75ed('0x4'));var moment=require(_0x75ed('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x75ed('0x6'));var path=require(_0x75ed('0x7'));var sox=require(_0x75ed('0x8'));var csv=require(_0x75ed('0x9'));var ejs=require(_0x75ed('0xa'));var fs=require('fs');var _=require(_0x75ed('0xb'));var squel=require(_0x75ed('0xc'));var crypto=require(_0x75ed('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x75ed('0xe'));var toCsv=require(_0x75ed('0x9'));var querystring=require('querystring');var Papa=require(_0x75ed('0xf'));var Redis=require(_0x75ed('0x10'));var qs=require(_0x75ed('0x11'));var logger=require('../../config/logger')(_0x75ed('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x75ed('0x13'))['db'];function respondWithStatusCode(_0x4590c1,_0x6ea057){_0x6ea057=_0x6ea057||0xcc;return function(_0x2d7a09){if(_0x2d7a09){return _0x4590c1[_0x75ed('0x14')](_0x6ea057);}return _0x4590c1['status'](_0x6ea057)[_0x75ed('0x15')]();};}function respondWithResult(_0x43f417,_0x43a1fb){_0x43a1fb=_0x43a1fb||0xc8;return function(_0x558dcc){if(_0x558dcc){return _0x43f417[_0x75ed('0x16')](_0x43a1fb)[_0x75ed('0x17')](_0x558dcc);}};}function respondWithFilteredResult(_0x486214,_0x4dbe16){return function(_0x3f3373){if(_0x3f3373){var _0x5e549f=_0x3f3373['count'],_0x37cf7e=_0x4dbe16[_0x75ed('0x18')],_0x28c683=_0x4dbe16[_0x75ed('0x18')]+_0x4dbe16['limit'],_0xf859a1;if(_0x28c683>=_0x5e549f){_0x28c683=_0x5e549f;_0xf859a1=0xc8;}else{_0xf859a1=0xce;}_0x486214[_0x75ed('0x16')](_0xf859a1);return _0x486214['set'](_0x75ed('0x19'),_0x37cf7e+'-'+_0x28c683+'/'+_0x5e549f)['json'](_0x3f3373);}return null;};}function patchUpdates(_0x216200){return function(_0x3391f9){try{jsonpatch[_0x75ed('0x1a')](_0x3391f9,_0x216200,!![]);}catch(_0xa9670d){return BPromise[_0x75ed('0x1b')](_0xa9670d);}return _0x3391f9[_0x75ed('0x1c')]();};}function saveUpdates(_0x5ea946,_0x4f8de3){return function(_0x5674bc){if(_0x5674bc){return _0x5674bc['update'](_0x5ea946)['then'](function(_0x317d55){return _0x317d55;});}return null;};}function removeEntity(_0x264077,_0x4910df){return function(_0x3c42d6){if(_0x3c42d6){return _0x3c42d6['destroy']()['then'](function(){_0x264077[_0x75ed('0x16')](0xcc)[_0x75ed('0x15')]();});}};}function handleEntityNotFound(_0x3165a4,_0x5a9765){return function(_0x377365){if(!_0x377365){_0x3165a4['sendStatus'](0x194);}return _0x377365;};}function handleError(_0x44a936,_0x5249ac){_0x5249ac=_0x5249ac||0x1f4;return function(_0x486a87){logger[_0x75ed('0x1d')](_0x486a87[_0x75ed('0x1e')]);if(_0x486a87[_0x75ed('0x1f')]){delete _0x486a87[_0x75ed('0x1f')];}_0x44a936[_0x75ed('0x16')](_0x5249ac)[_0x75ed('0x20')](_0x486a87);};}exports[_0x75ed('0x21')]=function(_0xa3f0ce,_0x49225e){var _0x14127f={},_0xf84e96={},_0x385e86={'count':0x0,'rows':[]};var _0x402180=db[_0x75ed('0x22')][_0x75ed('0x23')];_0xf84e96[_0x75ed('0x24')]=_['keys'](_0x402180);var _0x395946={'dateStart':_0xa3f0ce[_0x75ed('0x25')][_0x75ed('0x26')],'dateEnd':_0xa3f0ce[_0x75ed('0x25')][_0x75ed('0x27')]};delete _0xa3f0ce[_0x75ed('0x25')]['dateStart'];delete _0xa3f0ce[_0x75ed('0x25')]['dateEnd'];_0xf84e96[_0x75ed('0x25')]=_['keys'](_0xa3f0ce['query']);_0xf84e96['filters']=_[_0x75ed('0x28')](_0xf84e96[_0x75ed('0x24')],_0xf84e96['query']);_0x14127f[_0x75ed('0x29')]=_['intersection'](_0xf84e96[_0x75ed('0x24')],qs[_0x75ed('0x2a')](_0xa3f0ce['query'][_0x75ed('0x2a')]));_0x14127f['attributes']=_0x14127f[_0x75ed('0x29')]['length']?_0x14127f['attributes']:_0xf84e96[_0x75ed('0x24')];if(!_0xa3f0ce[_0x75ed('0x25')]['hasOwnProperty'](_0x75ed('0x2b'))){_0x14127f[_0x75ed('0x2c')]=qs['limit'](_0xa3f0ce[_0x75ed('0x25')][_0x75ed('0x2c')]);_0x14127f[_0x75ed('0x18')]=qs['offset'](_0xa3f0ce[_0x75ed('0x25')]['offset']);}_0x14127f[_0x75ed('0x2d')]=qs['sort'](_0xa3f0ce['query'][_0x75ed('0x2e')]);_0x14127f[_0x75ed('0x2f')]=qs[_0x75ed('0x30')](_[_0x75ed('0x31')](_0xa3f0ce['query'],_0xf84e96['filters']));if(_0x395946[_0x75ed('0x26')]){if(_0x395946[_0x75ed('0x27')]){_0x395946[_0x75ed('0x27')]=moment(_0x395946[_0x75ed('0x27')])[_0x75ed('0x32')](0x1,_0x75ed('0x33'));}else{_0x395946[_0x75ed('0x27')]=moment(_0x395946[_0x75ed('0x26')])[_0x75ed('0x32')](0x1,_0x75ed('0x33'));}_[_0x75ed('0x34')](_0x14127f[_0x75ed('0x2f')],{'createdAt':{'$gte':_0x395946[_0x75ed('0x26')],'$lte':_0x395946[_0x75ed('0x27')]}});}if(_0xa3f0ce[_0x75ed('0x25')][_0x75ed('0x35')]){_0x14127f['where']=_[_0x75ed('0x34')](_0x14127f[_0x75ed('0x2f')],{'$or':_[_0x75ed('0x36')](_0x14127f['attributes'],function(_0x9f88f8){var _0x5018e2={};_0x5018e2[_0x9f88f8]={'$like':'%'+_0xa3f0ce[_0x75ed('0x25')][_0x75ed('0x35')]+'%'};return _0x5018e2;})});}_0x14127f=_[_0x75ed('0x34')]({},_0x14127f,_0xa3f0ce['options']);var _0x2af867={'where':_0x14127f[_0x75ed('0x2f')]};return db[_0x75ed('0x22')][_0x75ed('0x37')](_0x2af867)[_0x75ed('0x38')](function(_0x58789e){_0x385e86[_0x75ed('0x37')]=_0x58789e;if(_0xa3f0ce[_0x75ed('0x25')]['includeAll']){_0x14127f[_0x75ed('0x39')]=[{'all':!![]}];}return db[_0x75ed('0x22')]['findAll'](_0x14127f);})[_0x75ed('0x38')](function(_0x5396e5){_0x385e86['rows']=_0x5396e5;return _0x385e86;})[_0x75ed('0x38')](respondWithFilteredResult(_0x49225e,_0x14127f))[_0x75ed('0x3a')](handleError(_0x49225e,null));};exports[_0x75ed('0x3b')]=function(_0x34163b,_0x581786){var _0x28b5bd={'raw':!![],'where':{'id':_0x34163b[_0x75ed('0x3c')]['id']}},_0x2ef5ca={};_0x2ef5ca['model']=_[_0x75ed('0x3d')](db[_0x75ed('0x22')][_0x75ed('0x23')]);_0x2ef5ca[_0x75ed('0x25')]=_[_0x75ed('0x3d')](_0x34163b['query']);_0x2ef5ca['filters']=_[_0x75ed('0x28')](_0x2ef5ca['model'],_0x2ef5ca[_0x75ed('0x25')]);_0x28b5bd[_0x75ed('0x29')]=_[_0x75ed('0x28')](_0x2ef5ca['model'],qs[_0x75ed('0x2a')](_0x34163b[_0x75ed('0x25')][_0x75ed('0x2a')]));_0x28b5bd[_0x75ed('0x29')]=_0x28b5bd[_0x75ed('0x29')][_0x75ed('0x3e')]?_0x28b5bd[_0x75ed('0x29')]:_0x2ef5ca[_0x75ed('0x24')];if(_0x34163b['query']['includeAll']){_0x28b5bd[_0x75ed('0x39')]=[{'all':!![]}];}_0x28b5bd=_['merge']({},_0x28b5bd,_0x34163b['options']);return db[_0x75ed('0x22')][_0x75ed('0x3f')](_0x28b5bd)[_0x75ed('0x38')](handleEntityNotFound(_0x581786,null))[_0x75ed('0x38')](respondWithResult(_0x581786,null))[_0x75ed('0x3a')](handleError(_0x581786,null));};exports[_0x75ed('0x40')]=function(_0x186824,_0x35c8cc){return db[_0x75ed('0x22')][_0x75ed('0x40')](_0x186824[_0x75ed('0x41')],{})[_0x75ed('0x38')](respondWithResult(_0x35c8cc,0xc9))[_0x75ed('0x3a')](handleError(_0x35c8cc,null));};exports[_0x75ed('0x42')]=function(_0xd5a308,_0x1f5ce3){if(_0xd5a308[_0x75ed('0x41')]['id']){delete _0xd5a308['body']['id'];}return db[_0x75ed('0x22')][_0x75ed('0x3f')]({'where':{'id':_0xd5a308[_0x75ed('0x3c')]['id']}})[_0x75ed('0x38')](handleEntityNotFound(_0x1f5ce3,null))[_0x75ed('0x38')](saveUpdates(_0xd5a308[_0x75ed('0x41')],null))['then'](respondWithResult(_0x1f5ce3,null))[_0x75ed('0x3a')](handleError(_0x1f5ce3,null));};exports[_0x75ed('0x43')]=function(_0x3d320b,_0x50b716){return db[_0x75ed('0x22')][_0x75ed('0x3f')]({'where':{'id':_0x3d320b[_0x75ed('0x3c')]['id']}})[_0x75ed('0x38')](handleEntityNotFound(_0x50b716,null))['then'](removeEntity(_0x50b716,null))['catch'](handleError(_0x50b716,null));};exports[_0x75ed('0x44')]=function(_0x250860,_0x31ddf7){return db[_0x75ed('0x22')][_0x75ed('0x44')]()[_0x75ed('0x38')](respondWithResult(_0x31ddf7,null))[_0x75ed('0x3a')](handleError(_0x31ddf7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80ed=['api','moment','request-promise','./mailTransferReport.attributes','exports','define','MailTransferReport','report_mail_transfer','uniqueid','lodash','../../config/logger'];(function(_0x143d46,_0x35d5b8){var _0x3f8c5c=function(_0x28feec){while(--_0x28feec){_0x143d46['push'](_0x143d46['shift']());}};_0x3f8c5c(++_0x35d5b8);}(_0x80ed,0x11c));var _0xd80e=function(_0x37f9cc,_0x533290){_0x37f9cc=_0x37f9cc-0x0;var _0x194aba=_0x80ed[_0x37f9cc];return _0x194aba;};'use strict';var _=require(_0xd80e('0x0'));var util=require('util');var logger=require(_0xd80e('0x1'))(_0xd80e('0x2'));var moment=require(_0xd80e('0x3'));var BPromise=require('bluebird');var rp=require(_0xd80e('0x4'));var attributes=require(_0xd80e('0x5'));module[_0xd80e('0x6')]=function(_0x3413d4,_0x5ae6c6){return _0x3413d4[_0xd80e('0x7')](_0xd80e('0x8'),attributes,{'tableName':_0xd80e('0x9'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xd80e('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x09d1=['report_mail_transfer','uniqueid','lodash','util','api','moment','./mailTransferReport.attributes','exports'];(function(_0x29964c,_0x1bcbda){var _0x3c6184=function(_0x24fab1){while(--_0x24fab1){_0x29964c['push'](_0x29964c['shift']());}};_0x3c6184(++_0x1bcbda);}(_0x09d1,0xba));var _0x109d=function(_0x272f06,_0x2e0dbf){_0x272f06=_0x272f06-0x0;var _0x1db6b6=_0x09d1[_0x272f06];return _0x1db6b6;};'use strict';var _=require(_0x109d('0x0'));var util=require(_0x109d('0x1'));var logger=require('../../config/logger')(_0x109d('0x2'));var moment=require(_0x109d('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x109d('0x4'));module[_0x109d('0x5')]=function(_0x64e240,_0x245b28){return _0x64e240['define']('MailTransferReport',attributes,{'tableName':_0x109d('0x6'),'paranoid':![],'indexes':[{'name':_0x109d('0x7'),'fields':[_0x109d('0x7')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce2f=['result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/environment','jayson/promise','client','request\x20sent','MailTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','message','MailTransferReport,\x20%s,\x20%s','info'];(function(_0x421261,_0x5213e2){var _0x25a25a=function(_0x16eb38){while(--_0x16eb38){_0x421261['push'](_0x421261['shift']());}};_0x25a25a(++_0x5213e2);}(_0xce2f,0xac));var _0xfce2=function(_0x52f1dc,_0x1118d7){_0x52f1dc=_0x52f1dc-0x0;var _0x1fdf3b=_0xce2f[_0x52f1dc];return _0x1fdf3b;};'use strict';var _=require(_0xfce2('0x0'));var util=require(_0xfce2('0x1'));var moment=require('moment');var BPromise=require(_0xfce2('0x2'));var rs=require(_0xfce2('0x3'));var fs=require('fs');var db=require(_0xfce2('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xfce2('0x5'));var jayson=require(_0xfce2('0x6'));var client=jayson[_0xfce2('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3f61ac,_0x224273,_0x176465){return new BPromise(function(_0x4eafa5,_0x15686a){return client['request'](_0x3f61ac,_0x176465)['then'](function(_0x507689){logger['info']('MailTransferReport,\x20%s,\x20%s',_0x224273,_0xfce2('0x8'));logger['debug'](_0xfce2('0x9'),_0x224273,_0xfce2('0x8'),JSON[_0xfce2('0xa')](_0x507689));if(_0x507689[_0xfce2('0xb')]){if(_0x507689[_0xfce2('0xb')]['code']===0x1f4){logger[_0xfce2('0xb')]('MailTransferReport,\x20%s,\x20%s',_0x224273,_0x507689[_0xfce2('0xb')]['message']);return _0x15686a(_0x507689[_0xfce2('0xb')][_0xfce2('0xc')]);}logger[_0xfce2('0xb')](_0xfce2('0xd'),_0x224273,_0x507689[_0xfce2('0xb')][_0xfce2('0xc')]);return _0x4eafa5(_0x507689[_0xfce2('0xb')][_0xfce2('0xc')]);}else{logger[_0xfce2('0xe')](_0xfce2('0xd'),_0x224273,'request\x20sent');_0x4eafa5(_0x507689[_0xfce2('0xf')]['message']);}})[_0xfce2('0x10')](function(_0x214b99){logger[_0xfce2('0xb')](_0xfce2('0xd'),_0x224273,_0x214b99);_0x15686a(_0x214b99);});});}
\ No newline at end of file
+var _0x9f06=['catch','lodash','moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','info','MailTransferReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message'];(function(_0x3bb947,_0x34b6f3){var _0x122b67=function(_0x49cf0a){while(--_0x49cf0a){_0x3bb947['push'](_0x3bb947['shift']());}};_0x122b67(++_0x34b6f3);}(_0x9f06,0x6d));var _0x69f0=function(_0x3556e6,_0x45abd3){_0x3556e6=_0x3556e6-0x0;var _0x32b976=_0x9f06[_0x3556e6];return _0x32b976;};'use strict';var _=require(_0x69f0('0x0'));var util=require('util');var moment=require(_0x69f0('0x1'));var BPromise=require(_0x69f0('0x2'));var rs=require(_0x69f0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x69f0('0x4'));var logger=require('../../config/logger')(_0x69f0('0x5'));var config=require(_0x69f0('0x6'));var jayson=require(_0x69f0('0x7'));var client=jayson[_0x69f0('0x8')][_0x69f0('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x679a1c,_0x175774,_0x217322){return new BPromise(function(_0x2e71f4,_0x39b051){return client['request'](_0x679a1c,_0x217322)['then'](function(_0x7f8562){logger[_0x69f0('0xa')](_0x69f0('0xb'),_0x175774,_0x69f0('0xc'));logger['debug']('MailTransferReport,\x20%s,\x20%s,\x20%s',_0x175774,_0x69f0('0xc'),JSON[_0x69f0('0xd')](_0x7f8562));if(_0x7f8562[_0x69f0('0xe')]){if(_0x7f8562[_0x69f0('0xe')][_0x69f0('0xf')]===0x1f4){logger[_0x69f0('0xe')](_0x69f0('0xb'),_0x175774,_0x7f8562[_0x69f0('0xe')][_0x69f0('0x10')]);return _0x39b051(_0x7f8562[_0x69f0('0xe')][_0x69f0('0x10')]);}logger['error'](_0x69f0('0xb'),_0x175774,_0x7f8562[_0x69f0('0xe')]['message']);return _0x2e71f4(_0x7f8562[_0x69f0('0xe')][_0x69f0('0x10')]);}else{logger['info'](_0x69f0('0xb'),_0x175774,_0x69f0('0xc'));_0x2e71f4(_0x7f8562['result'][_0x69f0('0x10')]);}})[_0x69f0('0x11')](function(_0x1979ab){logger[_0x69f0('0xe')](_0x69f0('0xb'),_0x175774,_0x1979ab);_0x39b051(_0x1979ab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5442=['create','put','update','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./memberReport.controller','index','get','describe','/:id','isAuthenticated','show','post'];(function(_0x4090a3,_0x237cde){var _0x14d7f8=function(_0x465cbf){while(--_0x465cbf){_0x4090a3['push'](_0x4090a3['shift']());}};_0x14d7f8(++_0x237cde);}(_0x5442,0x1c5));var _0x2544=function(_0xe15270,_0x227d06){_0xe15270=_0xe15270-0x0;var _0x1e813b=_0x5442[_0xe15270];return _0x1e813b;};'use strict';var multer=require(_0x2544('0x0'));var util=require('util');var path=require(_0x2544('0x1'));var timeout=require(_0x2544('0x2'));var express=require(_0x2544('0x3'));var router=express['Router']();var auth=require(_0x2544('0x4'));var interaction=require(_0x2544('0x5'));var config=require(_0x2544('0x6'));var controller=require(_0x2544('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x2544('0x8')]);router[_0x2544('0x9')]('/describe',auth['isAuthenticated'](),controller[_0x2544('0xa')]);router[_0x2544('0x9')](_0x2544('0xb'),auth[_0x2544('0xc')](),controller[_0x2544('0xd')]);router[_0x2544('0xe')]('/',auth[_0x2544('0xc')](),controller[_0x2544('0xf')]);router[_0x2544('0x10')](_0x2544('0xb'),auth[_0x2544('0xc')](),controller[_0x2544('0x11')]);router['delete'](_0x2544('0xb'),auth[_0x2544('0xc')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xe679=['index','get','/describe','/:id','show','update','delete','destroy','util','path','connect-timeout','../../components/auth/service','../../config/environment','isAuthenticated'];(function(_0x12d6bd,_0x2f83a8){var _0xbbde92=function(_0x58fdb8){while(--_0x58fdb8){_0x12d6bd['push'](_0x12d6bd['shift']());}};_0xbbde92(++_0x2f83a8);}(_0xe679,0x158));var _0x9e67=function(_0xc922f0,_0x1bcb79){_0xc922f0=_0xc922f0-0x0;var _0x17e3af=_0xe679[_0xc922f0];return _0x17e3af;};'use strict';var multer=require('multer');var util=require(_0x9e67('0x0'));var path=require(_0x9e67('0x1'));var timeout=require(_0x9e67('0x2'));var express=require('express');var router=express['Router']();var auth=require(_0x9e67('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x9e67('0x4'));var controller=require('./memberReport.controller');router['get']('/',auth[_0x9e67('0x5')](),controller[_0x9e67('0x6')]);router[_0x9e67('0x7')](_0x9e67('0x8'),auth[_0x9e67('0x5')](),controller['describe']);router[_0x9e67('0x7')](_0x9e67('0x9'),auth[_0x9e67('0x5')](),controller[_0x9e67('0xa')]);router['post']('/',auth[_0x9e67('0x5')](),controller['create']);router['put'](_0x9e67('0x9'),auth[_0x9e67('0x5')](),controller[_0x9e67('0xb')]);router[_0x9e67('0xc')]('/:id',auth[_0x9e67('0x5')](),controller[_0x9e67('0xd')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34cd=['DATE','enterAt','seconds','setDataValue','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[dial\x20string]','talk:[queue]','moment','exports','STRING','DEFAULT\x20PAUSE','INTEGER'];(function(_0x303862,_0x20b5ab){var _0xe6f228=function(_0x41fc5a){while(--_0x41fc5a){_0x303862['push'](_0x303862['shift']());}};_0xe6f228(++_0x20b5ab);}(_0x34cd,0x8a));var _0xd34c=function(_0x19d9e8,_0x116ce8){_0x19d9e8=_0x19d9e8-0x0;var _0x3f7e79=_0x34cd[_0x19d9e8];return _0x3f7e79;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xd34c('0x0'));module[_0xd34c('0x1')]={'channel':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0xd34c('0x2')]},'interface':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xd34c('0x2')],'defaultValue':_0xd34c('0x3'),'comment':'LOGIN,\x20PAUSE,\x20TALKING'},'duration':{'type':Sequelize[_0xd34c('0x4')]},'enterAt':{'type':Sequelize[_0xd34c('0x5')]},'exitAt':{'type':Sequelize[_0xd34c('0x5')],'set':function(_0x11b66a){var _0x3d4f3b=moment(_0x11b66a);var _0xe62842=moment(this['getDataValue'](_0xd34c('0x6')));var _0x3f231b=_0x3d4f3b['diff'](_0xe62842,_0xd34c('0x7'));this[_0xd34c('0x8')]('exitAt',_0x11b66a);this[_0xd34c('0x8')](_0xd34c('0x9'),_0x3f231b||null);}},'data1':{'type':Sequelize[_0xd34c('0x2')],'comment':_0xd34c('0xa')},'data2':{'type':Sequelize['STRING'],'comment':'talk:[start]'},'data3':{'type':Sequelize[_0xd34c('0x2')],'comment':'talk:[destination]'},'data4':{'type':Sequelize['STRING'],'comment':_0xd34c('0xb')},'data5':{'type':Sequelize['STRING'],'comment':_0xd34c('0xc')},'role':{'type':Sequelize[_0xd34c('0x2')]},'internal':{'type':Sequelize[_0xd34c('0x4')]},'uniqueid':{'type':Sequelize[_0xd34c('0x2')]}};
\ No newline at end of file
+var _0x9dfd=['sequelize','moment','exports','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','getDataValue','setDataValue','exitAt','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[destination]','talk:[dial\x20string]'];(function(_0x2746f4,_0x440bf7){var _0x5a56f4=function(_0x2a2c9f){while(--_0x2a2c9f){_0x2746f4['push'](_0x2746f4['shift']());}};_0x5a56f4(++_0x440bf7);}(_0x9dfd,0x1d1));var _0xd9df=function(_0x4e16a3,_0x2c2738){_0x4e16a3=_0x4e16a3-0x0;var _0x568e77=_0x9dfd[_0x4e16a3];return _0x568e77;};'use strict';var Sequelize=require(_0xd9df('0x0'));var moment=require(_0xd9df('0x1'));module[_0xd9df('0x2')]={'channel':{'type':Sequelize[_0xd9df('0x3')]},'membername':{'type':Sequelize['STRING']},'interface':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xd9df('0x3')],'defaultValue':_0xd9df('0x4'),'comment':_0xd9df('0x5')},'duration':{'type':Sequelize[_0xd9df('0x6')]},'enterAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xd9df('0x7')],'set':function(_0x1faf08){var _0x11b6c3=moment(_0x1faf08);var _0x54f241=moment(this[_0xd9df('0x8')]('enterAt'));var _0x20d5d5=_0x11b6c3['diff'](_0x54f241,'seconds');this[_0xd9df('0x9')](_0xd9df('0xa'),_0x1faf08);this['setDataValue'](_0xd9df('0xb'),_0x20d5d5||null);}},'data1':{'type':Sequelize[_0xd9df('0x3')],'comment':_0xd9df('0xc')},'data2':{'type':Sequelize[_0xd9df('0x3')],'comment':'talk:[start]'},'data3':{'type':Sequelize[_0xd9df('0x3')],'comment':_0xd9df('0xd')},'data4':{'type':Sequelize[_0xd9df('0x3')],'comment':_0xd9df('0xe')},'data5':{'type':Sequelize[_0xd9df('0x3')],'comment':'talk:[queue]'},'role':{'type':Sequelize['STRING']},'internal':{'type':Sequelize[_0xd9df('0x6')]},'uniqueid':{'type':Sequelize[_0xd9df('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1418=['day','filter','merge','options','count','includeAll','findAll','rows','catch','show','params','include','find','create','body','describe','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','squel','jsforce','desk.js','papaparse','../../config/logger','../../config/utils','../../mysqldb','status','end','json','offset','set','Content-Range','apply','save','update','then','error','stack','name','send','index','MemberReport','rawAttributes','model','query','dateEnd','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','dateStart','add'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x1418,0xdf));var _0x8141=function(_0x3ea0cf,_0xc0be00){_0x3ea0cf=_0x3ea0cf-0x0;var _0x2896c3=_0x1418[_0x3ea0cf];return _0x2896c3;};'use strict';var pdf=require(_0x8141('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8141('0x1'));var zipdir=require(_0x8141('0x2'));var jsonpatch=require(_0x8141('0x3'));var rp=require('request-promise');var moment=require(_0x8141('0x4'));var BPromise=require(_0x8141('0x5'));var Mustache=require(_0x8141('0x6'));var util=require(_0x8141('0x7'));var path=require(_0x8141('0x8'));var sox=require(_0x8141('0x9'));var csv=require(_0x8141('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x8141('0xb'));var crypto=require('crypto');var jsforce=require(_0x8141('0xc'));var deskjs=require(_0x8141('0xd'));var toCsv=require(_0x8141('0xa'));var querystring=require('querystring');var Papa=require(_0x8141('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x8141('0xf'))('api');var utils=require(_0x8141('0x10'));var config=require('../../config/environment');var db=require(_0x8141('0x11'))['db'];function respondWithStatusCode(_0x29b198,_0x545589){_0x545589=_0x545589||0xcc;return function(_0x482e3c){if(_0x482e3c){return _0x29b198['sendStatus'](_0x545589);}return _0x29b198[_0x8141('0x12')](_0x545589)[_0x8141('0x13')]();};}function respondWithResult(_0x3042ed,_0x2dc6a3){_0x2dc6a3=_0x2dc6a3||0xc8;return function(_0x284d43){if(_0x284d43){return _0x3042ed[_0x8141('0x12')](_0x2dc6a3)[_0x8141('0x14')](_0x284d43);}};}function respondWithFilteredResult(_0x17768a,_0x230037){return function(_0x573a53){if(_0x573a53){var _0x31a9c6=_0x573a53['count'],_0x44b56c=_0x230037[_0x8141('0x15')],_0x7dc11b=_0x230037[_0x8141('0x15')]+_0x230037['limit'],_0x56a24f;if(_0x7dc11b>=_0x31a9c6){_0x7dc11b=_0x31a9c6;_0x56a24f=0xc8;}else{_0x56a24f=0xce;}_0x17768a[_0x8141('0x12')](_0x56a24f);return _0x17768a[_0x8141('0x16')](_0x8141('0x17'),_0x44b56c+'-'+_0x7dc11b+'/'+_0x31a9c6)[_0x8141('0x14')](_0x573a53);}return null;};}function patchUpdates(_0x51ccd1){return function(_0x14d64e){try{jsonpatch[_0x8141('0x18')](_0x14d64e,_0x51ccd1,!![]);}catch(_0x10039f){return BPromise['reject'](_0x10039f);}return _0x14d64e[_0x8141('0x19')]();};}function saveUpdates(_0x873ae7,_0x3b9032){return function(_0x1c4288){if(_0x1c4288){return _0x1c4288[_0x8141('0x1a')](_0x873ae7)[_0x8141('0x1b')](function(_0x4365c2){return _0x4365c2;});}return null;};}function removeEntity(_0x15959f,_0x42fecc){return function(_0x35b93f){if(_0x35b93f){return _0x35b93f['destroy']()[_0x8141('0x1b')](function(){_0x15959f[_0x8141('0x12')](0xcc)[_0x8141('0x13')]();});}};}function handleEntityNotFound(_0x33e89b,_0x59cf84){return function(_0x45d91d){if(!_0x45d91d){_0x33e89b['sendStatus'](0x194);}return _0x45d91d;};}function handleError(_0x3e0fbf,_0x1b4c9a){_0x1b4c9a=_0x1b4c9a||0x1f4;return function(_0x154780){logger[_0x8141('0x1c')](_0x154780[_0x8141('0x1d')]);if(_0x154780[_0x8141('0x1e')]){delete _0x154780[_0x8141('0x1e')];}_0x3e0fbf[_0x8141('0x12')](_0x1b4c9a)[_0x8141('0x1f')](_0x154780);};}exports[_0x8141('0x20')]=function(_0x24afb7,_0x3b68dd){var _0x34b4af={},_0x4de8c7={},_0x2b27fa={'count':0x0,'rows':[]};var _0x4031d9=db[_0x8141('0x21')][_0x8141('0x22')];_0x4de8c7[_0x8141('0x23')]=_['keys'](_0x4031d9);var _0x33845b={'dateStart':_0x24afb7[_0x8141('0x24')]['dateStart'],'dateEnd':_0x24afb7[_0x8141('0x24')][_0x8141('0x25')]};delete _0x24afb7[_0x8141('0x24')]['dateStart'];delete _0x24afb7[_0x8141('0x24')]['dateEnd'];_0x4de8c7[_0x8141('0x24')]=_[_0x8141('0x26')](_0x24afb7['query']);_0x4de8c7['filters']=_[_0x8141('0x27')](_0x4de8c7['model'],_0x4de8c7[_0x8141('0x24')]);_0x34b4af[_0x8141('0x28')]=_[_0x8141('0x27')](_0x4de8c7[_0x8141('0x23')],qs[_0x8141('0x29')](_0x24afb7[_0x8141('0x24')][_0x8141('0x29')]));_0x34b4af[_0x8141('0x28')]=_0x34b4af[_0x8141('0x28')][_0x8141('0x2a')]?_0x34b4af[_0x8141('0x28')]:_0x4de8c7['model'];if(!_0x24afb7['query'][_0x8141('0x2b')](_0x8141('0x2c'))){_0x34b4af[_0x8141('0x2d')]=qs[_0x8141('0x2d')](_0x24afb7['query'][_0x8141('0x2d')]);_0x34b4af[_0x8141('0x15')]=qs[_0x8141('0x15')](_0x24afb7['query'][_0x8141('0x15')]);}_0x34b4af[_0x8141('0x2e')]=qs[_0x8141('0x2f')](_0x24afb7[_0x8141('0x24')][_0x8141('0x2f')]);_0x34b4af[_0x8141('0x30')]=qs['filters'](_[_0x8141('0x31')](_0x24afb7[_0x8141('0x24')],_0x4de8c7[_0x8141('0x32')]));if(_0x33845b[_0x8141('0x33')]){if(_0x33845b[_0x8141('0x25')]){_0x33845b[_0x8141('0x25')]=moment(_0x33845b['dateEnd'])[_0x8141('0x34')](0x1,_0x8141('0x35'));}else{_0x33845b[_0x8141('0x25')]=moment(_0x33845b[_0x8141('0x33')])[_0x8141('0x34')](0x1,_0x8141('0x35'));}_['merge'](_0x34b4af[_0x8141('0x30')],{'createdAt':{'$gte':_0x33845b[_0x8141('0x33')],'$lte':_0x33845b[_0x8141('0x25')]}});}if(_0x24afb7[_0x8141('0x24')][_0x8141('0x36')]){_0x34b4af[_0x8141('0x30')]=_[_0x8141('0x37')](_0x34b4af['where'],{'$or':_['map'](_0x34b4af[_0x8141('0x28')],function(_0x1ce6e0){var _0x3e469a={};_0x3e469a[_0x1ce6e0]={'$like':'%'+_0x24afb7['query'][_0x8141('0x36')]+'%'};return _0x3e469a;})});}_0x34b4af=_['merge']({},_0x34b4af,_0x24afb7[_0x8141('0x38')]);var _0x38a161={'where':_0x34b4af[_0x8141('0x30')]};return db[_0x8141('0x21')][_0x8141('0x39')](_0x38a161)[_0x8141('0x1b')](function(_0x12f1ef){_0x2b27fa[_0x8141('0x39')]=_0x12f1ef;if(_0x24afb7[_0x8141('0x24')][_0x8141('0x3a')]){_0x34b4af['include']=[{'all':!![]}];}return db[_0x8141('0x21')][_0x8141('0x3b')](_0x34b4af);})[_0x8141('0x1b')](function(_0x2293cc){_0x2b27fa[_0x8141('0x3c')]=_0x2293cc;return _0x2b27fa;})[_0x8141('0x1b')](respondWithFilteredResult(_0x3b68dd,_0x34b4af))[_0x8141('0x3d')](handleError(_0x3b68dd,null));};exports[_0x8141('0x3e')]=function(_0x5fdb00,_0xb501af){var _0x10f0bc={'raw':!![],'where':{'id':_0x5fdb00[_0x8141('0x3f')]['id']}},_0x1cf017={};_0x1cf017[_0x8141('0x23')]=_[_0x8141('0x26')](db[_0x8141('0x21')][_0x8141('0x22')]);_0x1cf017[_0x8141('0x24')]=_[_0x8141('0x26')](_0x5fdb00[_0x8141('0x24')]);_0x1cf017[_0x8141('0x32')]=_[_0x8141('0x27')](_0x1cf017['model'],_0x1cf017[_0x8141('0x24')]);_0x10f0bc[_0x8141('0x28')]=_['intersection'](_0x1cf017['model'],qs['fields'](_0x5fdb00['query'][_0x8141('0x29')]));_0x10f0bc[_0x8141('0x28')]=_0x10f0bc[_0x8141('0x28')][_0x8141('0x2a')]?_0x10f0bc[_0x8141('0x28')]:_0x1cf017[_0x8141('0x23')];if(_0x5fdb00['query'][_0x8141('0x3a')]){_0x10f0bc[_0x8141('0x40')]=[{'all':!![]}];}_0x10f0bc=_[_0x8141('0x37')]({},_0x10f0bc,_0x5fdb00[_0x8141('0x38')]);return db[_0x8141('0x21')][_0x8141('0x41')](_0x10f0bc)[_0x8141('0x1b')](handleEntityNotFound(_0xb501af,null))[_0x8141('0x1b')](respondWithResult(_0xb501af,null))['catch'](handleError(_0xb501af,null));};exports['create']=function(_0x264ec4,_0x4fd063){return db[_0x8141('0x21')][_0x8141('0x42')](_0x264ec4[_0x8141('0x43')],{})[_0x8141('0x1b')](respondWithResult(_0x4fd063,0xc9))[_0x8141('0x3d')](handleError(_0x4fd063,null));};exports['update']=function(_0x459c56,_0x3bbd8f){if(_0x459c56[_0x8141('0x43')]['id']){delete _0x459c56['body']['id'];}return db['MemberReport'][_0x8141('0x41')]({'where':{'id':_0x459c56[_0x8141('0x3f')]['id']}})['then'](handleEntityNotFound(_0x3bbd8f,null))[_0x8141('0x1b')](saveUpdates(_0x459c56[_0x8141('0x43')],null))[_0x8141('0x1b')](respondWithResult(_0x3bbd8f,null))[_0x8141('0x3d')](handleError(_0x3bbd8f,null));};exports['destroy']=function(_0x151731,_0x32cb3e){return db[_0x8141('0x21')]['find']({'where':{'id':_0x151731['params']['id']}})[_0x8141('0x1b')](handleEntityNotFound(_0x32cb3e,null))[_0x8141('0x1b')](removeEntity(_0x32cb3e,null))['catch'](handleError(_0x32cb3e,null));};exports[_0x8141('0x44')]=function(_0x3f38e3,_0x253308){return db['MemberReport']['describe']()['then'](respondWithResult(_0x253308,null))['catch'](handleError(_0x253308,null));};
\ No newline at end of file
+var _0x6c54=['crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','reject','save','update','then','error','stack','index','MemberReport','rawAttributes','keys','query','dateStart','dateEnd','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','map','options','includeAll','findAll','catch','show','params','length','include','create','body','find','destroy','describe','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x6c54,0xca));var _0x46c5=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x6c54[_0x14add3];return _0x4a174f;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x46c5('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x46c5('0x1'));var moment=require(_0x46c5('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x46c5('0x3'));var util=require(_0x46c5('0x4'));var path=require(_0x46c5('0x5'));var sox=require(_0x46c5('0x6'));var csv=require(_0x46c5('0x7'));var ejs=require(_0x46c5('0x8'));var fs=require('fs');var _=require(_0x46c5('0x9'));var squel=require(_0x46c5('0xa'));var crypto=require(_0x46c5('0xb'));var jsforce=require(_0x46c5('0xc'));var deskjs=require(_0x46c5('0xd'));var toCsv=require('to-csv');var querystring=require(_0x46c5('0xe'));var Papa=require(_0x46c5('0xf'));var Redis=require(_0x46c5('0x10'));var qs=require(_0x46c5('0x11'));var logger=require('../../config/logger')(_0x46c5('0x12'));var utils=require('../../config/utils');var config=require(_0x46c5('0x13'));var db=require(_0x46c5('0x14'))['db'];function respondWithStatusCode(_0x4f03da,_0xff3f4a){_0xff3f4a=_0xff3f4a||0xcc;return function(_0x36a4e2){if(_0x36a4e2){return _0x4f03da[_0x46c5('0x15')](_0xff3f4a);}return _0x4f03da['status'](_0xff3f4a)[_0x46c5('0x16')]();};}function respondWithResult(_0x5d5e58,_0x52c63a){_0x52c63a=_0x52c63a||0xc8;return function(_0x1e699b){if(_0x1e699b){return _0x5d5e58[_0x46c5('0x17')](_0x52c63a)[_0x46c5('0x18')](_0x1e699b);}};}function respondWithFilteredResult(_0x37cb6b,_0x80e6c0){return function(_0x4f1887){if(_0x4f1887){var _0x2f24dd=_0x4f1887[_0x46c5('0x19')],_0x41a3df=_0x80e6c0[_0x46c5('0x1a')],_0x2237e5=_0x80e6c0[_0x46c5('0x1a')]+_0x80e6c0[_0x46c5('0x1b')],_0x273d71;if(_0x2237e5>=_0x2f24dd){_0x2237e5=_0x2f24dd;_0x273d71=0xc8;}else{_0x273d71=0xce;}_0x37cb6b[_0x46c5('0x17')](_0x273d71);return _0x37cb6b[_0x46c5('0x1c')](_0x46c5('0x1d'),_0x41a3df+'-'+_0x2237e5+'/'+_0x2f24dd)['json'](_0x4f1887);}return null;};}function patchUpdates(_0x47eaa7){return function(_0x2d0eb9){try{jsonpatch['apply'](_0x2d0eb9,_0x47eaa7,!![]);}catch(_0x20761a){return BPromise[_0x46c5('0x1e')](_0x20761a);}return _0x2d0eb9[_0x46c5('0x1f')]();};}function saveUpdates(_0x3a6d73,_0x53268e){return function(_0x4ffc3a){if(_0x4ffc3a){return _0x4ffc3a[_0x46c5('0x20')](_0x3a6d73)['then'](function(_0x2f12aa){return _0x2f12aa;});}return null;};}function removeEntity(_0x4eef1f,_0x27f038){return function(_0x405a9f){if(_0x405a9f){return _0x405a9f['destroy']()[_0x46c5('0x21')](function(){_0x4eef1f[_0x46c5('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x246293,_0x1dd27e){return function(_0x2a28b8){if(!_0x2a28b8){_0x246293['sendStatus'](0x194);}return _0x2a28b8;};}function handleError(_0x376543,_0x5351ec){_0x5351ec=_0x5351ec||0x1f4;return function(_0x1e06c7){logger[_0x46c5('0x22')](_0x1e06c7[_0x46c5('0x23')]);if(_0x1e06c7['name']){delete _0x1e06c7['name'];}_0x376543[_0x46c5('0x17')](_0x5351ec)['send'](_0x1e06c7);};}exports[_0x46c5('0x24')]=function(_0x480fbf,_0x4ffb53){var _0xc7df7={},_0x4f4b43={},_0x104a46={'count':0x0,'rows':[]};var _0x3d89dc=db[_0x46c5('0x25')][_0x46c5('0x26')];_0x4f4b43['model']=_[_0x46c5('0x27')](_0x3d89dc);var _0x4cc3b7={'dateStart':_0x480fbf[_0x46c5('0x28')][_0x46c5('0x29')],'dateEnd':_0x480fbf[_0x46c5('0x28')][_0x46c5('0x2a')]};delete _0x480fbf[_0x46c5('0x28')][_0x46c5('0x29')];delete _0x480fbf[_0x46c5('0x28')]['dateEnd'];_0x4f4b43[_0x46c5('0x28')]=_['keys'](_0x480fbf[_0x46c5('0x28')]);_0x4f4b43[_0x46c5('0x2b')]=_[_0x46c5('0x2c')](_0x4f4b43[_0x46c5('0x2d')],_0x4f4b43['query']);_0xc7df7[_0x46c5('0x2e')]=_['intersection'](_0x4f4b43[_0x46c5('0x2d')],qs[_0x46c5('0x2f')](_0x480fbf['query'][_0x46c5('0x2f')]));_0xc7df7[_0x46c5('0x2e')]=_0xc7df7['attributes']['length']?_0xc7df7[_0x46c5('0x2e')]:_0x4f4b43['model'];if(!_0x480fbf[_0x46c5('0x28')][_0x46c5('0x30')](_0x46c5('0x31'))){_0xc7df7[_0x46c5('0x1b')]=qs[_0x46c5('0x1b')](_0x480fbf[_0x46c5('0x28')][_0x46c5('0x1b')]);_0xc7df7[_0x46c5('0x1a')]=qs[_0x46c5('0x1a')](_0x480fbf[_0x46c5('0x28')][_0x46c5('0x1a')]);}_0xc7df7[_0x46c5('0x32')]=qs[_0x46c5('0x33')](_0x480fbf[_0x46c5('0x28')][_0x46c5('0x33')]);_0xc7df7[_0x46c5('0x34')]=qs[_0x46c5('0x2b')](_[_0x46c5('0x35')](_0x480fbf[_0x46c5('0x28')],_0x4f4b43[_0x46c5('0x2b')]));if(_0x4cc3b7[_0x46c5('0x29')]){if(_0x4cc3b7[_0x46c5('0x2a')]){_0x4cc3b7[_0x46c5('0x2a')]=moment(_0x4cc3b7[_0x46c5('0x2a')])[_0x46c5('0x36')](0x1,'day');}else{_0x4cc3b7[_0x46c5('0x2a')]=moment(_0x4cc3b7[_0x46c5('0x29')])[_0x46c5('0x36')](0x1,_0x46c5('0x37'));}_['merge'](_0xc7df7[_0x46c5('0x34')],{'createdAt':{'$gte':_0x4cc3b7['dateStart'],'$lte':_0x4cc3b7['dateEnd']}});}if(_0x480fbf[_0x46c5('0x28')]['filter']){_0xc7df7[_0x46c5('0x34')]=_[_0x46c5('0x38')](_0xc7df7[_0x46c5('0x34')],{'$or':_[_0x46c5('0x39')](_0xc7df7[_0x46c5('0x2e')],function(_0x2ffa93){var _0x1c7da9={};_0x1c7da9[_0x2ffa93]={'$like':'%'+_0x480fbf[_0x46c5('0x28')]['filter']+'%'};return _0x1c7da9;})});}_0xc7df7=_[_0x46c5('0x38')]({},_0xc7df7,_0x480fbf[_0x46c5('0x3a')]);var _0x12d16a={'where':_0xc7df7[_0x46c5('0x34')]};return db[_0x46c5('0x25')][_0x46c5('0x19')](_0x12d16a)[_0x46c5('0x21')](function(_0x31ed7f){_0x104a46['count']=_0x31ed7f;if(_0x480fbf[_0x46c5('0x28')][_0x46c5('0x3b')]){_0xc7df7['include']=[{'all':!![]}];}return db[_0x46c5('0x25')][_0x46c5('0x3c')](_0xc7df7);})[_0x46c5('0x21')](function(_0x1d0e9e){_0x104a46['rows']=_0x1d0e9e;return _0x104a46;})[_0x46c5('0x21')](respondWithFilteredResult(_0x4ffb53,_0xc7df7))[_0x46c5('0x3d')](handleError(_0x4ffb53,null));};exports[_0x46c5('0x3e')]=function(_0x4cd927,_0x400b23){var _0x2367f7={'raw':!![],'where':{'id':_0x4cd927[_0x46c5('0x3f')]['id']}},_0x28f671={};_0x28f671[_0x46c5('0x2d')]=_[_0x46c5('0x27')](db[_0x46c5('0x25')][_0x46c5('0x26')]);_0x28f671[_0x46c5('0x28')]=_[_0x46c5('0x27')](_0x4cd927[_0x46c5('0x28')]);_0x28f671[_0x46c5('0x2b')]=_[_0x46c5('0x2c')](_0x28f671[_0x46c5('0x2d')],_0x28f671[_0x46c5('0x28')]);_0x2367f7[_0x46c5('0x2e')]=_[_0x46c5('0x2c')](_0x28f671[_0x46c5('0x2d')],qs[_0x46c5('0x2f')](_0x4cd927[_0x46c5('0x28')][_0x46c5('0x2f')]));_0x2367f7[_0x46c5('0x2e')]=_0x2367f7['attributes'][_0x46c5('0x40')]?_0x2367f7[_0x46c5('0x2e')]:_0x28f671[_0x46c5('0x2d')];if(_0x4cd927[_0x46c5('0x28')][_0x46c5('0x3b')]){_0x2367f7[_0x46c5('0x41')]=[{'all':!![]}];}_0x2367f7=_[_0x46c5('0x38')]({},_0x2367f7,_0x4cd927[_0x46c5('0x3a')]);return db[_0x46c5('0x25')]['find'](_0x2367f7)[_0x46c5('0x21')](handleEntityNotFound(_0x400b23,null))[_0x46c5('0x21')](respondWithResult(_0x400b23,null))[_0x46c5('0x3d')](handleError(_0x400b23,null));};exports[_0x46c5('0x42')]=function(_0x402e95,_0x5e82fe){return db['MemberReport'][_0x46c5('0x42')](_0x402e95[_0x46c5('0x43')],{})[_0x46c5('0x21')](respondWithResult(_0x5e82fe,0xc9))[_0x46c5('0x3d')](handleError(_0x5e82fe,null));};exports['update']=function(_0x49ff25,_0x3c3a1f){if(_0x49ff25['body']['id']){delete _0x49ff25['body']['id'];}return db[_0x46c5('0x25')][_0x46c5('0x44')]({'where':{'id':_0x49ff25[_0x46c5('0x3f')]['id']}})[_0x46c5('0x21')](handleEntityNotFound(_0x3c3a1f,null))['then'](saveUpdates(_0x49ff25[_0x46c5('0x43')],null))[_0x46c5('0x21')](respondWithResult(_0x3c3a1f,null))['catch'](handleError(_0x3c3a1f,null));};exports[_0x46c5('0x45')]=function(_0x2c10f5,_0x306d89){return db['MemberReport'][_0x46c5('0x44')]({'where':{'id':_0x2c10f5[_0x46c5('0x3f')]['id']}})[_0x46c5('0x21')](handleEntityNotFound(_0x306d89,null))[_0x46c5('0x21')](removeEntity(_0x306d89,null))[_0x46c5('0x3d')](handleError(_0x306d89,null));};exports[_0x46c5('0x46')]=function(_0x4af018,_0x37dff0){return db['MemberReport'][_0x46c5('0x46')]()['then'](respondWithResult(_0x37dff0,null))[_0x46c5('0x3d')](handleError(_0x37dff0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe190=['exports','define','MemberReport','report_member','membername_interface','membername','interface','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./memberReport.attributes'];(function(_0x497e78,_0x5a285b){var _0x434643=function(_0x47664d){while(--_0x47664d){_0x497e78['push'](_0x497e78['shift']());}};_0x434643(++_0x5a285b);}(_0xe190,0x9d));var _0x0e19=function(_0x45fa67,_0x54f9c8){_0x45fa67=_0x45fa67-0x0;var _0x2eddaf=_0xe190[_0x45fa67];return _0x2eddaf;};'use strict';var _=require(_0x0e19('0x0'));var util=require(_0x0e19('0x1'));var logger=require(_0x0e19('0x2'))(_0x0e19('0x3'));var moment=require(_0x0e19('0x4'));var BPromise=require(_0x0e19('0x5'));var rp=require(_0x0e19('0x6'));var attributes=require(_0x0e19('0x7'));module[_0x0e19('0x8')]=function(_0x1a88ff,_0x570096){return _0x1a88ff[_0x0e19('0x9')](_0x0e19('0xa'),attributes,{'tableName':_0x0e19('0xb'),'paranoid':![],'indexes':[{'name':_0x0e19('0xc'),'fields':[_0x0e19('0xd'),_0x0e19('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x4223=['MemberReport','report_member','membername_interface','membername','interface','lodash','util','../../config/logger','bluebird','request-promise','./memberReport.attributes','exports'];(function(_0x3be1a7,_0x1b1f31){var _0x6648ac=function(_0x43e6af){while(--_0x43e6af){_0x3be1a7['push'](_0x3be1a7['shift']());}};_0x6648ac(++_0x1b1f31);}(_0x4223,0x179));var _0x3422=function(_0x1fc826,_0x15b62d){_0x1fc826=_0x1fc826-0x0;var _0x5a2266=_0x4223[_0x1fc826];return _0x5a2266;};'use strict';var _=require(_0x3422('0x0'));var util=require(_0x3422('0x1'));var logger=require(_0x3422('0x2'))('api');var moment=require('moment');var BPromise=require(_0x3422('0x3'));var rp=require(_0x3422('0x4'));var attributes=require(_0x3422('0x5'));module[_0x3422('0x6')]=function(_0x23430b,_0x2a6756){return _0x23430b['define'](_0x3422('0x7'),attributes,{'tableName':_0x3422('0x8'),'paranoid':![],'indexes':[{'name':_0x3422('0x9'),'fields':[_0x3422('0xa'),_0x3422('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc15b=['catch','GetMemberReport','MemberReport','findAll','options','raw','limit','include','map','model','attributes','then','CreateMemberReport','create','update','body','where','UpdateMemberReport','lodash','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','MemberReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result'];(function(_0x2be82c,_0x1dd8d2){var _0x7cd4eb=function(_0x79d1e1){while(--_0x79d1e1){_0x2be82c['push'](_0x2be82c['shift']());}};_0x7cd4eb(++_0x1dd8d2);}(_0xc15b,0xe4));var _0xbc15=function(_0xf79bae,_0x263b2a){_0xf79bae=_0xf79bae-0x0;var _0x5d2cb7=_0xc15b[_0xf79bae];return _0x5d2cb7;};'use strict';var _=require(_0xbc15('0x0'));var util=require('util');var moment=require(_0xbc15('0x1'));var BPromise=require(_0xbc15('0x2'));var rs=require(_0xbc15('0x3'));var fs=require('fs');var db=require(_0xbc15('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xbc15('0x5'));var config=require(_0xbc15('0x6'));var jayson=require(_0xbc15('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x54f394,_0x1231f0,_0x22576c){return new BPromise(function(_0x3cb4b5,_0x50a276){return client['request'](_0x54f394,_0x22576c)['then'](function(_0x24db3f){logger['info'](_0xbc15('0x8'),_0x1231f0,_0xbc15('0x9'));logger[_0xbc15('0xa')]('MemberReport,\x20%s,\x20%s,\x20%s',_0x1231f0,_0xbc15('0x9'),JSON[_0xbc15('0xb')](_0x24db3f));if(_0x24db3f['error']){if(_0x24db3f[_0xbc15('0xc')][_0xbc15('0xd')]===0x1f4){logger[_0xbc15('0xc')]('MemberReport,\x20%s,\x20%s',_0x1231f0,_0x24db3f['error']['message']);return _0x50a276(_0x24db3f[_0xbc15('0xc')][_0xbc15('0xe')]);}logger[_0xbc15('0xc')](_0xbc15('0x8'),_0x1231f0,_0x24db3f[_0xbc15('0xc')][_0xbc15('0xe')]);return _0x3cb4b5(_0x24db3f[_0xbc15('0xc')][_0xbc15('0xe')]);}else{logger[_0xbc15('0xf')](_0xbc15('0x8'),_0x1231f0,_0xbc15('0x9'));_0x3cb4b5(_0x24db3f[_0xbc15('0x10')][_0xbc15('0xe')]);}})[_0xbc15('0x11')](function(_0x509f89){logger[_0xbc15('0xc')]('MemberReport,\x20%s,\x20%s',_0x1231f0,_0x509f89);_0x50a276(_0x509f89);});});}exports[_0xbc15('0x12')]=function(_0x204170){var _0xa29e5f=this;return new Promise(function(_0xc37530,_0x38a6b5){return db[_0xbc15('0x13')][_0xbc15('0x14')]({'raw':_0x204170[_0xbc15('0x15')]?_0x204170[_0xbc15('0x15')][_0xbc15('0x16')]===undefined?!![]:![]:!![],'where':_0x204170[_0xbc15('0x15')]?_0x204170[_0xbc15('0x15')]['where']||null:null,'attributes':_0x204170[_0xbc15('0x15')]?_0x204170[_0xbc15('0x15')]['attributes']||null:null,'limit':_0x204170[_0xbc15('0x15')]?_0x204170[_0xbc15('0x15')][_0xbc15('0x17')]||null:null,'include':_0x204170[_0xbc15('0x15')]?_0x204170[_0xbc15('0x15')][_0xbc15('0x18')]?_[_0xbc15('0x19')](_0x204170[_0xbc15('0x15')]['include'],function(_0x28a37a){return{'model':db[_0x28a37a[_0xbc15('0x1a')]],'as':_0x28a37a['as'],'attributes':_0x28a37a[_0xbc15('0x1b')],'include':_0x28a37a['include']?_[_0xbc15('0x19')](_0x28a37a[_0xbc15('0x18')],function(_0x2b1bf6){return{'model':db[_0x2b1bf6[_0xbc15('0x1a')]],'as':_0x2b1bf6['as'],'attributes':_0x2b1bf6[_0xbc15('0x1b')],'include':_0x2b1bf6[_0xbc15('0x18')]?_['map'](_0x2b1bf6[_0xbc15('0x18')],function(_0xd51ff2){return{'model':db[_0xd51ff2[_0xbc15('0x1a')]],'as':_0xd51ff2['as'],'attributes':_0xd51ff2[_0xbc15('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xbc15('0x1c')](function(_0x1c6ad9){logger[_0xbc15('0xf')](_0xbc15('0x12'),_0x204170);logger[_0xbc15('0xa')](_0xbc15('0x12'),_0x204170,JSON[_0xbc15('0xb')](_0x1c6ad9));_0xc37530(_0x1c6ad9);})[_0xbc15('0x11')](function(_0x4f2350){logger['error']('GetMemberReport',_0x4f2350[_0xbc15('0xe')],_0x204170);_0x38a6b5(_0xa29e5f[_0xbc15('0xc')](0x1f4,_0x4f2350[_0xbc15('0xe')]));});});};exports[_0xbc15('0x1d')]=function(_0x2aa248){var _0x11dbf7=this;return new Promise(function(_0xa9cf30,_0x574a36){return db[_0xbc15('0x13')][_0xbc15('0x1e')](_0x2aa248['body'],{'raw':_0x2aa248[_0xbc15('0x15')]?_0x2aa248['options'][_0xbc15('0x16')]===undefined?!![]:![]:!![]})[_0xbc15('0x1c')](function(_0x593cf9){logger[_0xbc15('0xf')]('CreateMemberReport',_0x2aa248);logger[_0xbc15('0xa')]('CreateMemberReport',_0x2aa248,JSON['stringify'](_0x593cf9));_0xa9cf30(_0x593cf9);})['catch'](function(_0x3e426d){logger['error']('CreateMemberReport',_0x3e426d[_0xbc15('0xe')],_0x2aa248);_0x574a36(_0x11dbf7[_0xbc15('0xc')](0x1f4,_0x3e426d['message']));});});};exports['UpdateMemberReport']=function(_0x550bbe){var _0x19c619=this;return new Promise(function(_0x5bc149,_0x24ea42){return db[_0xbc15('0x13')][_0xbc15('0x1f')](_0x550bbe[_0xbc15('0x20')],{'raw':_0x550bbe[_0xbc15('0x15')]?_0x550bbe['options'][_0xbc15('0x16')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x550bbe[_0xbc15('0x15')]?_0x550bbe[_0xbc15('0x15')][_0xbc15('0x21')]||null:null,'attributes':_0x550bbe[_0xbc15('0x15')]?_0x550bbe['options'][_0xbc15('0x1b')]||null:null,'limit':_0x550bbe[_0xbc15('0x15')]?_0x550bbe[_0xbc15('0x15')][_0xbc15('0x17')]||null:null})[_0xbc15('0x1c')](function(_0xf921f2){logger[_0xbc15('0xf')]('UpdateMemberReport',_0x550bbe);logger['debug']('UpdateMemberReport',_0x550bbe,JSON['stringify'](_0xf921f2));_0x5bc149(_0xf921f2);})[_0xbc15('0x11')](function(_0x28fc9e){logger[_0xbc15('0xc')](_0xbc15('0x22'),_0x28fc9e[_0xbc15('0xe')],_0x550bbe);_0x24ea42(_0x19c619['error'](0x1f4,_0x28fc9e[_0xbc15('0xe')]));});});};
\ No newline at end of file
+var _0x112b=['../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request\x20sent','debug','MemberReport,\x20%s,\x20%s,\x20%s','stringify','error','code','MemberReport,\x20%s,\x20%s','message','result','catch','GetMemberReport','MemberReport','options','raw','where','attributes','limit','include','map','model','info','CreateMemberReport','create','body','then','UpdateMemberReport','lodash','util','moment','bluebird','ioredis'];(function(_0x18bbc8,_0x4ef946){var _0x4e3316=function(_0x3aae2e){while(--_0x3aae2e){_0x18bbc8['push'](_0x18bbc8['shift']());}};_0x4e3316(++_0x4ef946);}(_0x112b,0x192));var _0xb112=function(_0x383627,_0x5be16e){_0x383627=_0x383627-0x0;var _0x2c16a0=_0x112b[_0x383627];return _0x2c16a0;};'use strict';var _=require(_0xb112('0x0'));var util=require(_0xb112('0x1'));var moment=require(_0xb112('0x2'));var BPromise=require(_0xb112('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb112('0x4'));var db=require(_0xb112('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xb112('0x6'))('rpc');var config=require(_0xb112('0x7'));var jayson=require(_0xb112('0x8'));var client=jayson[_0xb112('0x9')][_0xb112('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x208b89,_0x472eae,_0x3ca3fb){return new BPromise(function(_0x29f72e,_0x318357){return client['request'](_0x208b89,_0x3ca3fb)['then'](function(_0x3cbe88){logger['info']('MemberReport,\x20%s,\x20%s',_0x472eae,_0xb112('0xb'));logger[_0xb112('0xc')](_0xb112('0xd'),_0x472eae,_0xb112('0xb'),JSON[_0xb112('0xe')](_0x3cbe88));if(_0x3cbe88[_0xb112('0xf')]){if(_0x3cbe88[_0xb112('0xf')][_0xb112('0x10')]===0x1f4){logger[_0xb112('0xf')](_0xb112('0x11'),_0x472eae,_0x3cbe88[_0xb112('0xf')][_0xb112('0x12')]);return _0x318357(_0x3cbe88[_0xb112('0xf')][_0xb112('0x12')]);}logger[_0xb112('0xf')](_0xb112('0x11'),_0x472eae,_0x3cbe88['error'][_0xb112('0x12')]);return _0x29f72e(_0x3cbe88['error']['message']);}else{logger['info'](_0xb112('0x11'),_0x472eae,'request\x20sent');_0x29f72e(_0x3cbe88[_0xb112('0x13')][_0xb112('0x12')]);}})[_0xb112('0x14')](function(_0x582396){logger[_0xb112('0xf')](_0xb112('0x11'),_0x472eae,_0x582396);_0x318357(_0x582396);});});}exports[_0xb112('0x15')]=function(_0x5e19c3){var _0x3bbb9c=this;return new Promise(function(_0x464cae,_0x4292f0){return db[_0xb112('0x16')]['findAll']({'raw':_0x5e19c3['options']?_0x5e19c3[_0xb112('0x17')][_0xb112('0x18')]===undefined?!![]:![]:!![],'where':_0x5e19c3[_0xb112('0x17')]?_0x5e19c3[_0xb112('0x17')][_0xb112('0x19')]||null:null,'attributes':_0x5e19c3[_0xb112('0x17')]?_0x5e19c3['options'][_0xb112('0x1a')]||null:null,'limit':_0x5e19c3['options']?_0x5e19c3[_0xb112('0x17')][_0xb112('0x1b')]||null:null,'include':_0x5e19c3['options']?_0x5e19c3[_0xb112('0x17')]['include']?_['map'](_0x5e19c3[_0xb112('0x17')][_0xb112('0x1c')],function(_0xf4d941){return{'model':db[_0xf4d941['model']],'as':_0xf4d941['as'],'attributes':_0xf4d941[_0xb112('0x1a')],'include':_0xf4d941['include']?_[_0xb112('0x1d')](_0xf4d941[_0xb112('0x1c')],function(_0x5d1121){return{'model':db[_0x5d1121[_0xb112('0x1e')]],'as':_0x5d1121['as'],'attributes':_0x5d1121['attributes'],'include':_0x5d1121[_0xb112('0x1c')]?_[_0xb112('0x1d')](_0x5d1121[_0xb112('0x1c')],function(_0x212a8d){return{'model':db[_0x212a8d['model']],'as':_0x212a8d['as'],'attributes':_0x212a8d[_0xb112('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2c4b00){logger[_0xb112('0x1f')](_0xb112('0x15'),_0x5e19c3);logger[_0xb112('0xc')](_0xb112('0x15'),_0x5e19c3,JSON[_0xb112('0xe')](_0x2c4b00));_0x464cae(_0x2c4b00);})[_0xb112('0x14')](function(_0x3284e1){logger[_0xb112('0xf')](_0xb112('0x15'),_0x3284e1[_0xb112('0x12')],_0x5e19c3);_0x4292f0(_0x3bbb9c[_0xb112('0xf')](0x1f4,_0x3284e1[_0xb112('0x12')]));});});};exports[_0xb112('0x20')]=function(_0x11875c){var _0x535327=this;return new Promise(function(_0xbf34c4,_0xf74d86){return db['MemberReport'][_0xb112('0x21')](_0x11875c[_0xb112('0x22')],{'raw':_0x11875c[_0xb112('0x17')]?_0x11875c['options'][_0xb112('0x18')]===undefined?!![]:![]:!![]})[_0xb112('0x23')](function(_0x103118){logger[_0xb112('0x1f')](_0xb112('0x20'),_0x11875c);logger['debug'](_0xb112('0x20'),_0x11875c,JSON['stringify'](_0x103118));_0xbf34c4(_0x103118);})[_0xb112('0x14')](function(_0x51665c){logger[_0xb112('0xf')]('CreateMemberReport',_0x51665c[_0xb112('0x12')],_0x11875c);_0xf74d86(_0x535327[_0xb112('0xf')](0x1f4,_0x51665c[_0xb112('0x12')]));});});};exports[_0xb112('0x24')]=function(_0x275867){var _0xa225a=this;return new Promise(function(_0x469be5,_0x2b4063){return db['MemberReport']['update'](_0x275867['body'],{'raw':_0x275867[_0xb112('0x17')]?_0x275867[_0xb112('0x17')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x275867[_0xb112('0x17')]?_0x275867[_0xb112('0x17')]['where']||null:null,'attributes':_0x275867['options']?_0x275867[_0xb112('0x17')][_0xb112('0x1a')]||null:null,'limit':_0x275867['options']?_0x275867[_0xb112('0x17')][_0xb112('0x1b')]||null:null})[_0xb112('0x23')](function(_0x549cd3){logger[_0xb112('0x1f')](_0xb112('0x24'),_0x275867);logger['debug'](_0xb112('0x24'),_0x275867,JSON[_0xb112('0xe')](_0x549cd3));_0x469be5(_0x549cd3);})[_0xb112('0x14')](function(_0xe8a11f){logger['error'](_0xb112('0x24'),_0xe8a11f[_0xb112('0x12')],_0x275867);_0x2b4063(_0xa225a[_0xb112('0xf')](0x1f4,_0xe8a11f[_0xb112('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c63=['get','index','exports','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./migration.controller'];(function(_0xb1937e,_0x330b2f){var _0x44474f=function(_0x4336e0){while(--_0x4336e0){_0xb1937e['push'](_0xb1937e['shift']());}};_0x44474f(++_0x330b2f);}(_0x5c63,0x163));var _0x35c6=function(_0x2fe0a0,_0x43d100){_0x2fe0a0=_0x2fe0a0-0x0;var _0x1986db=_0x5c63[_0x2fe0a0];return _0x1986db;};'use strict';var multer=require('multer');var util=require(_0x35c6('0x0'));var path=require(_0x35c6('0x1'));var timeout=require(_0x35c6('0x2'));var express=require(_0x35c6('0x3'));var router=express['Router']();var auth=require(_0x35c6('0x4'));var interaction=require(_0x35c6('0x5'));var config=require(_0x35c6('0x6'));var controller=require(_0x35c6('0x7'));router[_0x35c6('0x8')]('/',controller[_0x35c6('0x9')]);module[_0x35c6('0xa')]=router;
\ No newline at end of file
+var _0xa6f3=['../../components/auth/service','../../components/interaction/service','../../config/environment','./migration.controller','exports','multer','path','connect-timeout','express','Router'];(function(_0x5d6e35,_0x4d1ac0){var _0x5d7ada=function(_0x2f7dd3){while(--_0x2f7dd3){_0x5d6e35['push'](_0x5d6e35['shift']());}};_0x5d7ada(++_0x4d1ac0);}(_0xa6f3,0xeb));var _0x3a6f=function(_0x13b330,_0x297092){_0x13b330=_0x13b330-0x0;var _0x1f666c=_0xa6f3[_0x13b330];return _0x1f666c;};'use strict';var multer=require(_0x3a6f('0x0'));var util=require('util');var path=require(_0x3a6f('0x1'));var timeout=require(_0x3a6f('0x2'));var express=require(_0x3a6f('0x3'));var router=express[_0x3a6f('0x4')]();var auth=require(_0x3a6f('0x5'));var interaction=require(_0x3a6f('0x6'));var config=require(_0x3a6f('0x7'));var controller=require(_0x3a6f('0x8'));router['get']('/',controller['index']);module[_0x3a6f('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcac2=['STRING','sequelize','exports'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xcac2,0x8e));var _0x2cac=function(_0x27d402,_0x52a1b8){_0x27d402=_0x27d402-0x0;var _0x5e37fe=_0xcac2[_0x27d402];return _0x5e37fe;};'use strict';var Sequelize=require(_0x2cac('0x0'));module[_0x2cac('0x1')]={'version':{'type':Sequelize[_0x2cac('0x2')],'primaryKey':!![],'autoIncrement':![]}};
\ No newline at end of file
+var _0x2b63=['sequelize','exports'];(function(_0x3474ac,_0x22d0f7){var _0x5345ec=function(_0x45056e){while(--_0x45056e){_0x3474ac['push'](_0x3474ac['shift']());}};_0x5345ec(++_0x22d0f7);}(_0x2b63,0x1d4));var _0x32b6=function(_0x1b00ea,_0x3dbdfb){_0x1b00ea=_0x1b00ea-0x0;var _0x2176fd=_0x2b63[_0x1b00ea];return _0x2176fd;};'use strict';var Sequelize=require(_0x32b6('0x0'));module[_0x32b6('0x1')]={'version':{'type':Sequelize['STRING'],'primaryKey':!![],'autoIncrement':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7b7=['papaparse','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','count','offset','limit','set','json','reject','update','destroy','error','name','send','Migration','rawAttributes','model','keys','dateStart','query','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','map','options','then','includeAll','include','rows','catch','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv'];(function(_0x104662,_0x53a7a7){var _0x19cba7=function(_0x5a76c0){while(--_0x5a76c0){_0x104662['push'](_0x104662['shift']());}};_0x19cba7(++_0x53a7a7);}(_0xe7b7,0xe5));var _0x7e7b=function(_0x3fbc21,_0x2f0540){_0x3fbc21=_0x3fbc21-0x0;var _0x512c0b=_0xe7b7[_0x3fbc21];return _0x512c0b;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x7e7b('0x0'));var zipdir=require(_0x7e7b('0x1'));var jsonpatch=require(_0x7e7b('0x2'));var rp=require(_0x7e7b('0x3'));var moment=require(_0x7e7b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x7e7b('0x5'));var util=require(_0x7e7b('0x6'));var path=require(_0x7e7b('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7e7b('0x8'));var fs=require('fs');var _=require(_0x7e7b('0x9'));var squel=require(_0x7e7b('0xa'));var crypto=require(_0x7e7b('0xb'));var jsforce=require(_0x7e7b('0xc'));var deskjs=require(_0x7e7b('0xd'));var toCsv=require(_0x7e7b('0xe'));var querystring=require('querystring');var Papa=require(_0x7e7b('0xf'));var qs=require('../../components/parsers/qs');var logger=require(_0x7e7b('0x10'))(_0x7e7b('0x11'));var utils=require(_0x7e7b('0x12'));var config=require(_0x7e7b('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x49c42c,_0x719451){_0x719451=_0x719451||0xcc;return function(_0x364969){if(_0x364969){return _0x49c42c[_0x7e7b('0x14')](_0x719451);}return _0x49c42c['status'](_0x719451)['end']();};}function respondWithResult(_0x1a7292,_0x180068){_0x180068=_0x180068||0xc8;return function(_0x5c7ea9){if(_0x5c7ea9){return _0x1a7292[_0x7e7b('0x15')](_0x180068)['json'](_0x5c7ea9);}};}function respondWithFilteredResult(_0x1e24a1,_0x1a2fdf){return function(_0x20e1c7){if(_0x20e1c7){var _0xdb0ae0=_0x20e1c7[_0x7e7b('0x16')],_0x54a76b=_0x1a2fdf[_0x7e7b('0x17')],_0x4a4103=_0x1a2fdf[_0x7e7b('0x17')]+_0x1a2fdf[_0x7e7b('0x18')],_0xff17bb;if(_0x4a4103>=_0xdb0ae0){_0x4a4103=_0xdb0ae0;_0xff17bb=0xc8;}else{_0xff17bb=0xce;}_0x1e24a1[_0x7e7b('0x15')](_0xff17bb);return _0x1e24a1[_0x7e7b('0x19')]('Content-Range',_0x54a76b+'-'+_0x4a4103+'/'+_0xdb0ae0)[_0x7e7b('0x1a')](_0x20e1c7);}return null;};}function patchUpdates(_0x3f1d8e){return function(_0x131d8a){try{jsonpatch['apply'](_0x131d8a,_0x3f1d8e,!![]);}catch(_0x22cdba){return BPromise[_0x7e7b('0x1b')](_0x22cdba);}return _0x131d8a['save']();};}function saveUpdates(_0x2c0953,_0x2feef1){return function(_0x4cccf5){if(_0x4cccf5){return _0x4cccf5[_0x7e7b('0x1c')](_0x2c0953)['then'](function(_0x16435c){return _0x16435c;});}return null;};}function removeEntity(_0x177769,_0x5c1eaf){return function(_0x4bba34){if(_0x4bba34){return _0x4bba34[_0x7e7b('0x1d')]()['then'](function(){_0x177769[_0x7e7b('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x43f0bb,_0x347c93){return function(_0x10bc19){if(!_0x10bc19){_0x43f0bb['sendStatus'](0x194);}return _0x10bc19;};}function handleError(_0x46a0c9,_0xd15d9d){_0xd15d9d=_0xd15d9d||0x1f4;return function(_0x1c4929){logger[_0x7e7b('0x1e')](_0x1c4929['stack']);if(_0x1c4929[_0x7e7b('0x1f')]){delete _0x1c4929[_0x7e7b('0x1f')];}_0x46a0c9[_0x7e7b('0x15')](_0xd15d9d)[_0x7e7b('0x20')](_0x1c4929);};}exports['index']=function(_0x4dab62,_0x4dff7a){var _0x241877={},_0x1cb164={},_0x54c944={'count':0x0,'rows':[]};var _0x412906=db[_0x7e7b('0x21')][_0x7e7b('0x22')];_0x1cb164[_0x7e7b('0x23')]=_[_0x7e7b('0x24')](_0x412906);var _0x49e587={'dateStart':_0x4dab62['query'][_0x7e7b('0x25')],'dateEnd':_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x27')]};delete _0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x25')];delete _0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x27')];_0x1cb164[_0x7e7b('0x26')]=_[_0x7e7b('0x24')](_0x4dab62[_0x7e7b('0x26')]);_0x1cb164[_0x7e7b('0x28')]=_[_0x7e7b('0x29')](_0x1cb164[_0x7e7b('0x23')],_0x1cb164[_0x7e7b('0x26')]);_0x241877[_0x7e7b('0x2a')]=_[_0x7e7b('0x29')](_0x1cb164['model'],qs[_0x7e7b('0x2b')](_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x2b')]));_0x241877[_0x7e7b('0x2a')]=_0x241877[_0x7e7b('0x2a')][_0x7e7b('0x2c')]?_0x241877[_0x7e7b('0x2a')]:_0x1cb164[_0x7e7b('0x23')];if(!_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x2d')]('nolimit')){_0x241877[_0x7e7b('0x18')]=qs[_0x7e7b('0x18')](_0x4dab62['query'][_0x7e7b('0x18')]);_0x241877['offset']=qs['offset'](_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x17')]);}_0x241877[_0x7e7b('0x2e')]=qs[_0x7e7b('0x2f')](_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x2f')]);_0x241877[_0x7e7b('0x30')]=qs[_0x7e7b('0x28')](_[_0x7e7b('0x31')](_0x4dab62['query'],_0x1cb164['filters']));if(_0x49e587[_0x7e7b('0x25')]){if(_0x49e587[_0x7e7b('0x27')]){_0x49e587[_0x7e7b('0x27')]=moment(_0x49e587[_0x7e7b('0x27')])[_0x7e7b('0x32')](0x1,_0x7e7b('0x33'));}else{_0x49e587['dateEnd']=moment(_0x49e587[_0x7e7b('0x25')])[_0x7e7b('0x32')](0x1,_0x7e7b('0x33'));}_[_0x7e7b('0x34')](_0x241877[_0x7e7b('0x30')],{'createdAt':{'$gte':_0x49e587[_0x7e7b('0x25')],'$lte':_0x49e587[_0x7e7b('0x27')]}});}if(_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x35')]){_0x241877['where']=_[_0x7e7b('0x34')](_0x241877['where'],{'$or':_[_0x7e7b('0x36')](_0x241877[_0x7e7b('0x2a')],function(_0x4f9d84){var _0x13a2de={};_0x13a2de[_0x4f9d84]={'$like':'%'+_0x4dab62['query']['filter']+'%'};return _0x13a2de;})});}_0x241877=_[_0x7e7b('0x34')]({},_0x241877,_0x4dab62[_0x7e7b('0x37')]);var _0x9fa284={'where':_0x241877[_0x7e7b('0x30')]};return db[_0x7e7b('0x21')][_0x7e7b('0x16')](_0x9fa284)[_0x7e7b('0x38')](function(_0x2fb731){_0x54c944[_0x7e7b('0x16')]=_0x2fb731;if(_0x4dab62[_0x7e7b('0x26')][_0x7e7b('0x39')]){_0x241877[_0x7e7b('0x3a')]=[{'all':!![]}];}return db[_0x7e7b('0x21')]['findAll'](_0x241877);})['then'](function(_0x1f43a8){_0x54c944[_0x7e7b('0x3b')]=_0x1f43a8;return _0x54c944;})[_0x7e7b('0x38')](respondWithFilteredResult(_0x4dff7a,_0x241877))[_0x7e7b('0x3c')](handleError(_0x4dff7a,null));};
\ No newline at end of file
+var _0x7d5a=['ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','set','reject','update','then','error','stack','name','send','index','Migration','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','pick','add','day','filter','where','merge','options','includeAll','include','findAll','rows','catch','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv'];(function(_0x5ba8fc,_0x3120dd){var _0x974890=function(_0x4ec53d){while(--_0x4ec53d){_0x5ba8fc['push'](_0x5ba8fc['shift']());}};_0x974890(++_0x3120dd);}(_0x7d5a,0x17b));var _0xa7d5=function(_0x46dc46,_0x6edb1a){_0x46dc46=_0x46dc46-0x0;var _0xf2250d=_0x7d5a[_0x46dc46];return _0xf2250d;};'use strict';var pdf=require(_0xa7d5('0x0'));var emlformat=require(_0xa7d5('0x1'));var rimraf=require(_0xa7d5('0x2'));var zipdir=require(_0xa7d5('0x3'));var jsonpatch=require(_0xa7d5('0x4'));var rp=require(_0xa7d5('0x5'));var moment=require(_0xa7d5('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa7d5('0x7'));var path=require(_0xa7d5('0x8'));var sox=require(_0xa7d5('0x9'));var csv=require(_0xa7d5('0xa'));var ejs=require(_0xa7d5('0xb'));var fs=require('fs');var _=require(_0xa7d5('0xc'));var squel=require('squel');var crypto=require(_0xa7d5('0xd'));var jsforce=require(_0xa7d5('0xe'));var deskjs=require(_0xa7d5('0xf'));var toCsv=require(_0xa7d5('0xa'));var querystring=require(_0xa7d5('0x10'));var Papa=require(_0xa7d5('0x11'));var Redis=require(_0xa7d5('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0xa7d5('0x13'))(_0xa7d5('0x14'));var utils=require(_0xa7d5('0x15'));var config=require('../../config/environment');var db=require(_0xa7d5('0x16'))['db'];function respondWithStatusCode(_0x10c0c3,_0x96f93b){_0x96f93b=_0x96f93b||0xcc;return function(_0x5d6459){if(_0x5d6459){return _0x10c0c3[_0xa7d5('0x17')](_0x96f93b);}return _0x10c0c3[_0xa7d5('0x18')](_0x96f93b)[_0xa7d5('0x19')]();};}function respondWithResult(_0x32c1d1,_0x24089f){_0x24089f=_0x24089f||0xc8;return function(_0x4f7968){if(_0x4f7968){return _0x32c1d1[_0xa7d5('0x18')](_0x24089f)[_0xa7d5('0x1a')](_0x4f7968);}};}function respondWithFilteredResult(_0x474c87,_0x3fc942){return function(_0x19bd99){if(_0x19bd99){var _0x5c3c86=_0x19bd99['count'],_0x207942=_0x3fc942['offset'],_0x2a1641=_0x3fc942[_0xa7d5('0x1b')]+_0x3fc942['limit'],_0x2c70e5;if(_0x2a1641>=_0x5c3c86){_0x2a1641=_0x5c3c86;_0x2c70e5=0xc8;}else{_0x2c70e5=0xce;}_0x474c87[_0xa7d5('0x18')](_0x2c70e5);return _0x474c87[_0xa7d5('0x1c')]('Content-Range',_0x207942+'-'+_0x2a1641+'/'+_0x5c3c86)[_0xa7d5('0x1a')](_0x19bd99);}return null;};}function patchUpdates(_0x1237fb){return function(_0x2093e0){try{jsonpatch['apply'](_0x2093e0,_0x1237fb,!![]);}catch(_0x53904a){return BPromise[_0xa7d5('0x1d')](_0x53904a);}return _0x2093e0['save']();};}function saveUpdates(_0x3f10a9,_0x490ff6){return function(_0x4dfff9){if(_0x4dfff9){return _0x4dfff9[_0xa7d5('0x1e')](_0x3f10a9)[_0xa7d5('0x1f')](function(_0x106a72){return _0x106a72;});}return null;};}function removeEntity(_0x2a2879,_0x3db378){return function(_0x18b59b){if(_0x18b59b){return _0x18b59b['destroy']()[_0xa7d5('0x1f')](function(){_0x2a2879[_0xa7d5('0x18')](0xcc)[_0xa7d5('0x19')]();});}};}function handleEntityNotFound(_0x43b3e2,_0xbb1e76){return function(_0x54ba0a){if(!_0x54ba0a){_0x43b3e2[_0xa7d5('0x17')](0x194);}return _0x54ba0a;};}function handleError(_0x164c45,_0x30e1f5){_0x30e1f5=_0x30e1f5||0x1f4;return function(_0x290025){logger[_0xa7d5('0x20')](_0x290025[_0xa7d5('0x21')]);if(_0x290025['name']){delete _0x290025[_0xa7d5('0x22')];}_0x164c45[_0xa7d5('0x18')](_0x30e1f5)[_0xa7d5('0x23')](_0x290025);};}exports[_0xa7d5('0x24')]=function(_0x327061,_0x120d49){var _0x5bb0f3={},_0x16a0b2={},_0x322878={'count':0x0,'rows':[]};var _0x23ffbe=db[_0xa7d5('0x25')][_0xa7d5('0x26')];_0x16a0b2[_0xa7d5('0x27')]=_[_0xa7d5('0x28')](_0x23ffbe);var _0x2a0b71={'dateStart':_0x327061[_0xa7d5('0x29')][_0xa7d5('0x2a')],'dateEnd':_0x327061[_0xa7d5('0x29')][_0xa7d5('0x2b')]};delete _0x327061[_0xa7d5('0x29')]['dateStart'];delete _0x327061['query'][_0xa7d5('0x2b')];_0x16a0b2[_0xa7d5('0x29')]=_[_0xa7d5('0x28')](_0x327061[_0xa7d5('0x29')]);_0x16a0b2[_0xa7d5('0x2c')]=_[_0xa7d5('0x2d')](_0x16a0b2[_0xa7d5('0x27')],_0x16a0b2['query']);_0x5bb0f3[_0xa7d5('0x2e')]=_[_0xa7d5('0x2d')](_0x16a0b2['model'],qs['fields'](_0x327061[_0xa7d5('0x29')][_0xa7d5('0x2f')]));_0x5bb0f3['attributes']=_0x5bb0f3['attributes'][_0xa7d5('0x30')]?_0x5bb0f3['attributes']:_0x16a0b2[_0xa7d5('0x27')];if(!_0x327061[_0xa7d5('0x29')][_0xa7d5('0x31')](_0xa7d5('0x32'))){_0x5bb0f3[_0xa7d5('0x33')]=qs[_0xa7d5('0x33')](_0x327061[_0xa7d5('0x29')]['limit']);_0x5bb0f3['offset']=qs['offset'](_0x327061[_0xa7d5('0x29')][_0xa7d5('0x1b')]);}_0x5bb0f3['order']=qs[_0xa7d5('0x34')](_0x327061[_0xa7d5('0x29')]['sort']);_0x5bb0f3['where']=qs[_0xa7d5('0x2c')](_[_0xa7d5('0x35')](_0x327061['query'],_0x16a0b2['filters']));if(_0x2a0b71['dateStart']){if(_0x2a0b71['dateEnd']){_0x2a0b71['dateEnd']=moment(_0x2a0b71[_0xa7d5('0x2b')])[_0xa7d5('0x36')](0x1,_0xa7d5('0x37'));}else{_0x2a0b71[_0xa7d5('0x2b')]=moment(_0x2a0b71[_0xa7d5('0x2a')])[_0xa7d5('0x36')](0x1,'day');}_['merge'](_0x5bb0f3['where'],{'createdAt':{'$gte':_0x2a0b71['dateStart'],'$lte':_0x2a0b71[_0xa7d5('0x2b')]}});}if(_0x327061[_0xa7d5('0x29')][_0xa7d5('0x38')]){_0x5bb0f3[_0xa7d5('0x39')]=_[_0xa7d5('0x3a')](_0x5bb0f3[_0xa7d5('0x39')],{'$or':_['map'](_0x5bb0f3[_0xa7d5('0x2e')],function(_0x4547b5){var _0x4b36cc={};_0x4b36cc[_0x4547b5]={'$like':'%'+_0x327061[_0xa7d5('0x29')][_0xa7d5('0x38')]+'%'};return _0x4b36cc;})});}_0x5bb0f3=_['merge']({},_0x5bb0f3,_0x327061[_0xa7d5('0x3b')]);var _0x6784d2={'where':_0x5bb0f3[_0xa7d5('0x39')]};return db[_0xa7d5('0x25')]['count'](_0x6784d2)[_0xa7d5('0x1f')](function(_0x2ab2ed){_0x322878['count']=_0x2ab2ed;if(_0x327061['query'][_0xa7d5('0x3c')]){_0x5bb0f3[_0xa7d5('0x3d')]=[{'all':!![]}];}return db['Migration'][_0xa7d5('0x3e')](_0x5bb0f3);})[_0xa7d5('0x1f')](function(_0x428acf){_0x322878[_0xa7d5('0x3f')]=_0x428acf;return _0x322878;})['then'](respondWithFilteredResult(_0x120d49,_0x5bb0f3))[_0xa7d5('0x40')](handleError(_0x120d49,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5f3=['util','../../config/logger','moment','bluebird','request-promise','define','Migration','lodash'];(function(_0x3addcd,_0x3f1969){var _0x37c24a=function(_0x33b66b){while(--_0x33b66b){_0x3addcd['push'](_0x3addcd['shift']());}};_0x37c24a(++_0x3f1969);}(_0xb5f3,0x137));var _0x3b5f=function(_0x23a79e,_0x235f89){_0x23a79e=_0x23a79e-0x0;var _0x3dab57=_0xb5f3[_0x23a79e];return _0x3dab57;};'use strict';var _=require(_0x3b5f('0x0'));var util=require(_0x3b5f('0x1'));var logger=require(_0x3b5f('0x2'))('api');var moment=require(_0x3b5f('0x3'));var BPromise=require(_0x3b5f('0x4'));var rp=require(_0x3b5f('0x5'));var attributes=require('./migration.attributes');module['exports']=function(_0x32a452,_0x42c4fe){return _0x32a452[_0x3b5f('0x6')](_0x3b5f('0x7'),attributes,{'tableName':'migrations','paranoid':![],'indexes':[],'timestamps':![]});};
\ No newline at end of file
+var _0x29b7=['migrations','util','../../config/logger','api','moment','bluebird','request-promise','./migration.attributes','exports','define'];(function(_0x4f47c7,_0x354f53){var _0x27f4b0=function(_0x45e9dd){while(--_0x45e9dd){_0x4f47c7['push'](_0x4f47c7['shift']());}};_0x27f4b0(++_0x354f53);}(_0x29b7,0x17d));var _0x729b=function(_0x1ac0c4,_0x3f7fe5){_0x1ac0c4=_0x1ac0c4-0x0;var _0x36d19f=_0x29b7[_0x1ac0c4];return _0x36d19f;};'use strict';var _=require('lodash');var util=require(_0x729b('0x0'));var logger=require(_0x729b('0x1'))(_0x729b('0x2'));var moment=require(_0x729b('0x3'));var BPromise=require(_0x729b('0x4'));var rp=require(_0x729b('0x5'));var attributes=require(_0x729b('0x6'));module[_0x729b('0x7')]=function(_0x5c4add,_0x385175){return _0x5c4add[_0x729b('0x8')]('Migration',attributes,{'tableName':_0x729b('0x9'),'paranoid':![],'indexes':[],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbabe=['stringify','error','code','message','result','lodash','util','moment','bluebird','../../config/utils','../../config/logger','rpc','client','http','request','then','info','Migration,\x20%s,\x20%s','request\x20sent','debug','Migration,\x20%s,\x20%s,\x20%s'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0xbabe,0x6e));var _0xebab=function(_0x2bfb04,_0x340ded){_0x2bfb04=_0x2bfb04-0x0;var _0x4b0279=_0xbabe[_0x2bfb04];return _0x4b0279;};'use strict';var _=require(_0xebab('0x0'));var util=require(_0xebab('0x1'));var moment=require(_0xebab('0x2'));var BPromise=require(_0xebab('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xebab('0x4'));var logger=require(_0xebab('0x5'))(_0xebab('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xebab('0x7')][_0xebab('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1f5e78,_0x12c6c1,_0x4f17ca){return new BPromise(function(_0x24ba07,_0x15f353){return client[_0xebab('0x9')](_0x1f5e78,_0x4f17ca)[_0xebab('0xa')](function(_0x54bd2f){logger[_0xebab('0xb')](_0xebab('0xc'),_0x12c6c1,_0xebab('0xd'));logger[_0xebab('0xe')](_0xebab('0xf'),_0x12c6c1,_0xebab('0xd'),JSON[_0xebab('0x10')](_0x54bd2f));if(_0x54bd2f['error']){if(_0x54bd2f[_0xebab('0x11')][_0xebab('0x12')]===0x1f4){logger[_0xebab('0x11')](_0xebab('0xc'),_0x12c6c1,_0x54bd2f[_0xebab('0x11')][_0xebab('0x13')]);return _0x15f353(_0x54bd2f[_0xebab('0x11')][_0xebab('0x13')]);}logger[_0xebab('0x11')]('Migration,\x20%s,\x20%s',_0x12c6c1,_0x54bd2f[_0xebab('0x11')][_0xebab('0x13')]);return _0x24ba07(_0x54bd2f[_0xebab('0x11')][_0xebab('0x13')]);}else{logger[_0xebab('0xb')](_0xebab('0xc'),_0x12c6c1,_0xebab('0xd'));_0x24ba07(_0x54bd2f[_0xebab('0x14')]['message']);}})['catch'](function(_0xfd7d8e){logger[_0xebab('0x11')](_0xebab('0xc'),_0x12c6c1,_0xfd7d8e);_0x15f353(_0xfd7d8e);});});}
\ No newline at end of file
+var _0x0c02=['Migration,\x20%s,\x20%s','error','code','message','result','catch','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x54c5d9,_0x2a152f){var _0x1c92f8=function(_0x253cd6){while(--_0x253cd6){_0x54c5d9['push'](_0x54c5d9['shift']());}};_0x1c92f8(++_0x2a152f);}(_0x0c02,0x84));var _0x20c0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c02[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x20c0('0x0'));var moment=require(_0x20c0('0x1'));var BPromise=require('bluebird');var rs=require(_0x20c0('0x2'));var fs=require('fs');var Redis=require(_0x20c0('0x3'));var db=require(_0x20c0('0x4'))['db'];var utils=require(_0x20c0('0x5'));var logger=require(_0x20c0('0x6'))(_0x20c0('0x7'));var config=require(_0x20c0('0x8'));var jayson=require(_0x20c0('0x9'));var client=jayson[_0x20c0('0xa')][_0x20c0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5d6408,_0x4e1dac,_0x5da127){return new BPromise(function(_0x4db532,_0x1e35e2){return client[_0x20c0('0xc')](_0x5d6408,_0x5da127)[_0x20c0('0xd')](function(_0x41a4af){logger[_0x20c0('0xe')](_0x20c0('0xf'),_0x4e1dac,'request\x20sent');logger['debug']('Migration,\x20%s,\x20%s,\x20%s',_0x4e1dac,'request\x20sent',JSON['stringify'](_0x41a4af));if(_0x41a4af[_0x20c0('0x10')]){if(_0x41a4af[_0x20c0('0x10')][_0x20c0('0x11')]===0x1f4){logger[_0x20c0('0x10')]('Migration,\x20%s,\x20%s',_0x4e1dac,_0x41a4af[_0x20c0('0x10')]['message']);return _0x1e35e2(_0x41a4af['error'][_0x20c0('0x12')]);}logger[_0x20c0('0x10')](_0x20c0('0xf'),_0x4e1dac,_0x41a4af[_0x20c0('0x10')][_0x20c0('0x12')]);return _0x4db532(_0x41a4af[_0x20c0('0x10')][_0x20c0('0x12')]);}else{logger[_0x20c0('0xe')](_0x20c0('0xf'),_0x4e1dac,'request\x20sent');_0x4db532(_0x41a4af[_0x20c0('0x13')][_0x20c0('0x12')]);}})[_0x20c0('0x14')](function(_0x46b9e5){logger[_0x20c0('0x10')](_0x20c0('0xf'),_0x4e1dac,_0x46b9e5);_0x1e35e2(_0x46b9e5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1e5=['/:id','update','delete','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./network.controller','get','isAuthenticated','create'];(function(_0x2523b5,_0x364aaa){var _0x30e52f=function(_0x4ac5a6){while(--_0x4ac5a6){_0x2523b5['push'](_0x2523b5['shift']());}};_0x30e52f(++_0x364aaa);}(_0xd1e5,0xb4));var _0x5d1e=function(_0x5a23fb,_0x50e314){_0x5a23fb=_0x5a23fb-0x0;var _0x150655=_0xd1e5[_0x5a23fb];return _0x150655;};'use strict';var multer=require(_0x5d1e('0x0'));var util=require('util');var path=require(_0x5d1e('0x1'));var timeout=require(_0x5d1e('0x2'));var express=require(_0x5d1e('0x3'));var router=express[_0x5d1e('0x4')]();var auth=require(_0x5d1e('0x5'));var interaction=require(_0x5d1e('0x6'));var config=require(_0x5d1e('0x7'));var controller=require(_0x5d1e('0x8'));router[_0x5d1e('0x9')]('/',auth[_0x5d1e('0xa')](),controller['index']);router[_0x5d1e('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x5d1e('0xb')]);router['put'](_0x5d1e('0xc'),auth[_0x5d1e('0xa')](),controller[_0x5d1e('0xd')]);router[_0x5d1e('0xe')](_0x5d1e('0xc'),auth[_0x5d1e('0xa')](),controller['destroy']);module[_0x5d1e('0xf')]=router;
\ No newline at end of file
+var _0xcfe5=['/:id','show','post','isAuthenticated','create','put','update','delete','destroy','multer','util','../../components/auth/service','../../config/environment','./network.controller','get','index'];(function(_0x38e379,_0x202f69){var _0x394684=function(_0x5e4870){while(--_0x5e4870){_0x38e379['push'](_0x38e379['shift']());}};_0x394684(++_0x202f69);}(_0xcfe5,0x1c9));var _0x5cfe=function(_0x182648,_0x2a7b01){_0x182648=_0x182648-0x0;var _0x10d106=_0xcfe5[_0x182648];return _0x10d106;};'use strict';var multer=require(_0x5cfe('0x0'));var util=require(_0x5cfe('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require(_0x5cfe('0x2'));var interaction=require('../../components/interaction/service');var config=require(_0x5cfe('0x3'));var controller=require(_0x5cfe('0x4'));router[_0x5cfe('0x5')]('/',auth['isAuthenticated'](),controller[_0x5cfe('0x6')]);router['get'](_0x5cfe('0x7'),auth['isAuthenticated'](),controller[_0x5cfe('0x8')]);router[_0x5cfe('0x9')]('/',auth[_0x5cfe('0xa')](),controller[_0x5cfe('0xb')]);router[_0x5cfe('0xc')](_0x5cfe('0x7'),auth[_0x5cfe('0xa')](),controller[_0x5cfe('0xd')]);router[_0x5cfe('0xe')]('/:id',auth[_0x5cfe('0xa')](),controller[_0x5cfe('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c1a=['exports','ENUM','localnet','externip','STRING'];(function(_0x4de1b5,_0x2a7626){var _0xed55cf=function(_0x5f1115){while(--_0x5f1115){_0x4de1b5['push'](_0x4de1b5['shift']());}};_0xed55cf(++_0x2a7626);}(_0x6c1a,0x154));var _0xa6c1=function(_0x126bc1,_0x144277){_0x126bc1=_0x126bc1-0x0;var _0x47b729=_0x6c1a[_0x126bc1];return _0x47b729;};'use strict';var Sequelize=require('sequelize');module[_0xa6c1('0x0')]={'type':{'type':Sequelize[_0xa6c1('0x1')](_0xa6c1('0x2'),_0xa6c1('0x3'))},'value':{'type':Sequelize[_0xa6c1('0x4')]}};
\ No newline at end of file
+var _0x14bb=['sequelize','ENUM','externip','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x14bb,0x1d0));var _0xb14b=function(_0x258349,_0x25c85f){_0x258349=_0x258349-0x0;var _0x331cc8=_0x14bb[_0x258349];return _0x331cc8;};'use strict';var Sequelize=require(_0xb14b('0x0'));module['exports']={'type':{'type':Sequelize[_0xb14b('0x1')]('localnet',_0xb14b('0x2'))},'value':{'type':Sequelize[_0xb14b('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a58=['path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../config/logger','../../config/utils','../../mysqldb','jayson/promise','client','http','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','sendStatus','status','end','json','count','offset','limit','reject','save','update','then','stack','name','send','Network','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','add','day','filter','merge','map','options','includeAll','include','findAll','rows','catch','show','find','create','sequelize','body','type','readFileSync','join','root','utf8','render','format','toLowerCase','Reload','chan_sip.so','transaction','params','writeFileSync','/etc/asterisk/sip_xcally_%s.conf','destroy','html-pdf','eml-format','fast-json-patch','request-promise','moment','bluebird','util'];(function(_0x404707,_0x1bbd53){var _0x2df3a5=function(_0x2502ce){while(--_0x2502ce){_0x404707['push'](_0x404707['shift']());}};_0x2df3a5(++_0x1bbd53);}(_0x6a58,0x110));var _0x86a5=function(_0x37ded3,_0x371ebb){_0x37ded3=_0x37ded3-0x0;var _0x51e49e=_0x6a58[_0x37ded3];return _0x51e49e;};'use strict';var pdf=require(_0x86a5('0x0'));var emlformat=require(_0x86a5('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x86a5('0x2'));var rp=require(_0x86a5('0x3'));var moment=require(_0x86a5('0x4'));var BPromise=require(_0x86a5('0x5'));var Mustache=require('mustache');var util=require(_0x86a5('0x6'));var path=require(_0x86a5('0x7'));var sox=require(_0x86a5('0x8'));var csv=require(_0x86a5('0x9'));var ejs=require(_0x86a5('0xa'));var fs=require('fs');var _=require(_0x86a5('0xb'));var squel=require(_0x86a5('0xc'));var crypto=require(_0x86a5('0xd'));var jsforce=require(_0x86a5('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x86a5('0x9'));var querystring=require(_0x86a5('0xf'));var Papa=require(_0x86a5('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0x86a5('0x11'))('api');var utils=require(_0x86a5('0x12'));var config=require('../../config/environment');var db=require(_0x86a5('0x13'))['db'];var jayson=require(_0x86a5('0x14'));var client=jayson[_0x86a5('0x15')][_0x86a5('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x1eb5bd,_0x4ab958,_0x136771,_0x53762c){return new BPromise(function(_0x55eea8,_0x17dee0){var _0xe64f92=_0x53762c||client;return _0xe64f92['request'](_0x1eb5bd,_0x136771)['then'](function(_0x519818){logger[_0x86a5('0x17')](_0x86a5('0x18'),_0x4ab958,_0x86a5('0x19'));logger[_0x86a5('0x1a')]('Network,\x20%s,\x20%s,\x20%s',_0x4ab958,_0x86a5('0x19'),JSON[_0x86a5('0x1b')](_0x519818));if(_0x519818[_0x86a5('0x1c')]){if(_0x519818['error']['code']===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x4ab958,_0x519818[_0x86a5('0x1c')]['message']);return _0x17dee0(_0x519818['error'][_0x86a5('0x1d')]);}logger[_0x86a5('0x1c')](_0x86a5('0x18'),_0x4ab958,_0x519818[_0x86a5('0x1c')][_0x86a5('0x1d')]);return _0x55eea8(_0x519818['error']['message']);}else{logger[_0x86a5('0x17')](_0x86a5('0x18'),_0x4ab958,_0x86a5('0x19'));_0x55eea8(_0x519818[_0x86a5('0x1e')]['message']);}})['catch'](function(_0x5d3f33){logger[_0x86a5('0x1c')](_0x86a5('0x18'),_0x4ab958,_0x5d3f33);_0x17dee0(_0x5d3f33);});});}function respondWithStatusCode(_0x3ccbf6,_0x58998a){_0x58998a=_0x58998a||0xcc;return function(_0x201458){if(_0x201458){return _0x3ccbf6[_0x86a5('0x1f')](_0x58998a);}return _0x3ccbf6[_0x86a5('0x20')](_0x58998a)[_0x86a5('0x21')]();};}function respondWithResult(_0xdee193,_0x276d46){_0x276d46=_0x276d46||0xc8;return function(_0x145a04){if(_0x145a04){return _0xdee193['status'](_0x276d46)[_0x86a5('0x22')](_0x145a04);}};}function respondWithFilteredResult(_0x407648,_0x27f9c1){return function(_0x20a443){if(_0x20a443){var _0x1ddc6b=_0x20a443[_0x86a5('0x23')],_0xb48278=_0x27f9c1[_0x86a5('0x24')],_0x43ddab=_0x27f9c1[_0x86a5('0x24')]+_0x27f9c1[_0x86a5('0x25')],_0x57c9b1;if(_0x43ddab>=_0x1ddc6b){_0x43ddab=_0x1ddc6b;_0x57c9b1=0xc8;}else{_0x57c9b1=0xce;}_0x407648['status'](_0x57c9b1);return _0x407648['set']('Content-Range',_0xb48278+'-'+_0x43ddab+'/'+_0x1ddc6b)[_0x86a5('0x22')](_0x20a443);}return null;};}function patchUpdates(_0x11057b){return function(_0x34faee){try{jsonpatch['apply'](_0x34faee,_0x11057b,!![]);}catch(_0x43bf3d){return BPromise[_0x86a5('0x26')](_0x43bf3d);}return _0x34faee[_0x86a5('0x27')]();};}function saveUpdates(_0xa2889c,_0x132e3d){return function(_0x11ad2e){if(_0x11ad2e){return _0x11ad2e[_0x86a5('0x28')](_0xa2889c)['then'](function(_0x175aea){return _0x175aea;});}return null;};}function removeEntity(_0x180690,_0x25602a){return function(_0x327361){if(_0x327361){return _0x327361['destroy']()[_0x86a5('0x29')](function(){_0x180690[_0x86a5('0x20')](0xcc)[_0x86a5('0x21')]();});}};}function handleEntityNotFound(_0x4774c3,_0x44c690){return function(_0x557ead){if(!_0x557ead){_0x4774c3['sendStatus'](0x194);}return _0x557ead;};}function handleError(_0x98b21d,_0x5e1785){_0x5e1785=_0x5e1785||0x1f4;return function(_0x4fe491){logger[_0x86a5('0x1c')](_0x4fe491[_0x86a5('0x2a')]);if(_0x4fe491[_0x86a5('0x2b')]){delete _0x4fe491[_0x86a5('0x2b')];}_0x98b21d[_0x86a5('0x20')](_0x5e1785)[_0x86a5('0x2c')](_0x4fe491);};}exports['index']=function(_0x4b2db6,_0x117b8d){var _0x32ab18={},_0x4a9958={},_0x5d8a89={'count':0x0,'rows':[]};var _0xe2c5f4=db[_0x86a5('0x2d')][_0x86a5('0x2e')];_0x4a9958[_0x86a5('0x2f')]=_['keys'](_0xe2c5f4);var _0x1d134c={'dateStart':_0x4b2db6[_0x86a5('0x30')][_0x86a5('0x31')],'dateEnd':_0x4b2db6[_0x86a5('0x30')][_0x86a5('0x32')]};delete _0x4b2db6[_0x86a5('0x30')]['dateStart'];delete _0x4b2db6[_0x86a5('0x30')][_0x86a5('0x32')];_0x4a9958[_0x86a5('0x30')]=_[_0x86a5('0x33')](_0x4b2db6[_0x86a5('0x30')]);_0x4a9958[_0x86a5('0x34')]=_[_0x86a5('0x35')](_0x4a9958[_0x86a5('0x2f')],_0x4a9958[_0x86a5('0x30')]);_0x32ab18[_0x86a5('0x36')]=_[_0x86a5('0x35')](_0x4a9958[_0x86a5('0x2f')],qs[_0x86a5('0x37')](_0x4b2db6[_0x86a5('0x30')][_0x86a5('0x37')]));_0x32ab18[_0x86a5('0x36')]=_0x32ab18[_0x86a5('0x36')][_0x86a5('0x38')]?_0x32ab18[_0x86a5('0x36')]:_0x4a9958['model'];if(!_0x4b2db6['query'][_0x86a5('0x39')](_0x86a5('0x3a'))){_0x32ab18['limit']=qs['limit'](_0x4b2db6[_0x86a5('0x30')][_0x86a5('0x25')]);_0x32ab18['offset']=qs['offset'](_0x4b2db6['query'][_0x86a5('0x24')]);}_0x32ab18[_0x86a5('0x3b')]=qs[_0x86a5('0x3c')](_0x4b2db6[_0x86a5('0x30')]['sort']);_0x32ab18[_0x86a5('0x3d')]=qs[_0x86a5('0x34')](_['pick'](_0x4b2db6[_0x86a5('0x30')],_0x4a9958['filters']));if(_0x1d134c[_0x86a5('0x31')]){if(_0x1d134c[_0x86a5('0x32')]){_0x1d134c[_0x86a5('0x32')]=moment(_0x1d134c[_0x86a5('0x32')])[_0x86a5('0x3e')](0x1,_0x86a5('0x3f'));}else{_0x1d134c[_0x86a5('0x32')]=moment(_0x1d134c['dateStart'])[_0x86a5('0x3e')](0x1,'day');}_['merge'](_0x32ab18[_0x86a5('0x3d')],{'createdAt':{'$gte':_0x1d134c[_0x86a5('0x31')],'$lte':_0x1d134c[_0x86a5('0x32')]}});}if(_0x4b2db6['query'][_0x86a5('0x40')]){_0x32ab18[_0x86a5('0x3d')]=_[_0x86a5('0x41')](_0x32ab18[_0x86a5('0x3d')],{'$or':_[_0x86a5('0x42')](_0x32ab18[_0x86a5('0x36')],function(_0x3cd4c5){var _0x435691={};_0x435691[_0x3cd4c5]={'$like':'%'+_0x4b2db6[_0x86a5('0x30')][_0x86a5('0x40')]+'%'};return _0x435691;})});}_0x32ab18=_[_0x86a5('0x41')]({},_0x32ab18,_0x4b2db6[_0x86a5('0x43')]);var _0x2bd7b9={'where':_0x32ab18[_0x86a5('0x3d')]};return db[_0x86a5('0x2d')][_0x86a5('0x23')](_0x2bd7b9)['then'](function(_0x715125){_0x5d8a89['count']=_0x715125;if(_0x4b2db6[_0x86a5('0x30')][_0x86a5('0x44')]){_0x32ab18[_0x86a5('0x45')]=[{'all':!![]}];}return db[_0x86a5('0x2d')][_0x86a5('0x46')](_0x32ab18);})[_0x86a5('0x29')](function(_0x24dc85){_0x5d8a89[_0x86a5('0x47')]=_0x24dc85;return _0x5d8a89;})[_0x86a5('0x29')](respondWithFilteredResult(_0x117b8d,_0x32ab18))[_0x86a5('0x48')](handleError(_0x117b8d,null));};exports[_0x86a5('0x49')]=function(_0x41b1f4,_0x109558){var _0x2f6ed1={'raw':!![],'where':{'id':_0x41b1f4['params']['id']}},_0x3d0e1e={};_0x3d0e1e['model']=_[_0x86a5('0x33')](db['Network'][_0x86a5('0x2e')]);_0x3d0e1e[_0x86a5('0x30')]=_[_0x86a5('0x33')](_0x41b1f4[_0x86a5('0x30')]);_0x3d0e1e[_0x86a5('0x34')]=_['intersection'](_0x3d0e1e[_0x86a5('0x2f')],_0x3d0e1e[_0x86a5('0x30')]);_0x2f6ed1[_0x86a5('0x36')]=_[_0x86a5('0x35')](_0x3d0e1e[_0x86a5('0x2f')],qs[_0x86a5('0x37')](_0x41b1f4[_0x86a5('0x30')]['fields']));_0x2f6ed1[_0x86a5('0x36')]=_0x2f6ed1['attributes'][_0x86a5('0x38')]?_0x2f6ed1['attributes']:_0x3d0e1e[_0x86a5('0x2f')];if(_0x41b1f4['query'][_0x86a5('0x44')]){_0x2f6ed1[_0x86a5('0x45')]=[{'all':!![]}];}_0x2f6ed1=_[_0x86a5('0x41')]({},_0x2f6ed1,_0x41b1f4[_0x86a5('0x43')]);return db[_0x86a5('0x2d')][_0x86a5('0x4a')](_0x2f6ed1)[_0x86a5('0x29')](handleEntityNotFound(_0x109558,null))[_0x86a5('0x29')](respondWithResult(_0x109558,null))[_0x86a5('0x48')](handleError(_0x109558,null));};exports[_0x86a5('0x4b')]=function(_0x195532,_0x79f9a5,_0x81b589){var _0x4b93ec;return db[_0x86a5('0x4c')]['transaction'](function(_0x447a3e){return db[_0x86a5('0x2d')][_0x86a5('0x4b')](_0x195532[_0x86a5('0x4d')],{'raw':!![]})[_0x86a5('0x29')](function(_0x1ea4f6){_0x4b93ec=_0x1ea4f6;return db['Network'][_0x86a5('0x46')]({'where':{'type':_0x195532[_0x86a5('0x4d')][_0x86a5('0x4e')]},'raw':!![]});})[_0x86a5('0x29')](function(_0x5d3ced){var _0x499656=fs[_0x86a5('0x4f')](path[_0x86a5('0x50')](config[_0x86a5('0x51')],'server/files/templates/network.ejs'),_0x86a5('0x52'));var _0x115d6b=ejs[_0x86a5('0x53')](_0x499656,{'networks':_0x5d3ced||[]});fs['writeFileSync'](util[_0x86a5('0x54')]('/etc/asterisk/sip_xcally_%s.conf',_0x195532[_0x86a5('0x4d')][_0x86a5('0x4e')][_0x86a5('0x55')]()),_0x115d6b);})[_0x86a5('0x29')](function(){return respondWithRpcPromise(_0x86a5('0x56'),'create',{'module':_0x86a5('0x57')});})[_0x86a5('0x29')](function(){return _0x4b93ec;});})[_0x86a5('0x29')](respondWithResult(_0x79f9a5,0xc9))[_0x86a5('0x48')](handleError(_0x79f9a5,null));};exports[_0x86a5('0x28')]=function(_0x4e0ef9,_0x5ba6a0,_0x492072){var _0x304069;return db[_0x86a5('0x4c')][_0x86a5('0x58')](function(_0x38b8c3){return db[_0x86a5('0x2d')][_0x86a5('0x4a')]({'where':{'id':_0x4e0ef9[_0x86a5('0x59')]['id']}})[_0x86a5('0x29')](handleEntityNotFound(_0x5ba6a0,null))['then'](saveUpdates(_0x4e0ef9[_0x86a5('0x4d')],null))[_0x86a5('0x29')](function(_0x13018c){if(_0x13018c){_0x304069=_0x13018c;return db[_0x86a5('0x2d')][_0x86a5('0x46')]({'where':{'type':_0x304069[_0x86a5('0x4e')]},'raw':!![]});}return null;})[_0x86a5('0x29')](function(_0x366c22){if(_0x366c22){var _0x2b860a=fs['readFileSync'](path['join'](config['root'],'server/files/templates/network.ejs'),'utf8');var _0x2c53d4=ejs[_0x86a5('0x53')](_0x2b860a,{'networks':_0x366c22||[]});fs[_0x86a5('0x5a')](util[_0x86a5('0x54')](_0x86a5('0x5b'),_0x304069[_0x86a5('0x4e')][_0x86a5('0x55')]()),_0x2c53d4);return respondWithRpcPromise('Reload','update',{'module':_0x86a5('0x57')});}return null;})[_0x86a5('0x29')](function(_0x468a9f){if(_0x468a9f){return _0x304069;}return null;});})[_0x86a5('0x29')](respondWithResult(_0x5ba6a0,null))[_0x86a5('0x48')](handleError(_0x5ba6a0,null));};exports[_0x86a5('0x5c')]=function(_0x13ae89,_0x325314,_0x578021){var _0x1cb6ff;return db[_0x86a5('0x2d')]['find']({'where':{'id':_0x13ae89[_0x86a5('0x59')]['id']}})['then'](function(_0x36e6ba){_0x1cb6ff=_0x36e6ba;return _0x36e6ba;})[_0x86a5('0x29')](handleEntityNotFound(_0x325314,null))[_0x86a5('0x29')](removeEntity(_0x325314,null))[_0x86a5('0x29')](function(){if(_0x1cb6ff){return db['Network']['findAll']({'where':{'type':_0x1cb6ff[_0x86a5('0x4e')]},'raw':!![]});}})[_0x86a5('0x29')](function(_0x35cdaa){if(_0x35cdaa){var _0x511915=fs[_0x86a5('0x4f')](path[_0x86a5('0x50')](config['root'],'server/files/templates/network.ejs'),_0x86a5('0x52'));var _0x2652dc=ejs[_0x86a5('0x53')](_0x511915,{'networks':_0x35cdaa||[]});fs['writeFileSync'](util[_0x86a5('0x54')]('/etc/asterisk/sip_xcally_%s.conf',_0x1cb6ff[_0x86a5('0x4e')][_0x86a5('0x55')]()),_0x2652dc);return respondWithRpcPromise(_0x86a5('0x56'),_0x86a5('0x5c'),{'module':_0x86a5('0x57')});}})[_0x86a5('0x48')](handleError(_0x325314,null));};
\ No newline at end of file
+var _0x3d05=['code','message','Network,\x20%s,\x20%s','catch','sendStatus','status','end','count','offset','limit','set','Content-Range','json','save','update','destroy','name','send','Network','rawAttributes','model','keys','query','dateStart','dateEnd','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','day','add','filter','merge','options','includeAll','include','show','filters','transaction','create','body','type','readFileSync','root','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','sequelize','find','params','findAll','join','server/files/templates/network.ejs','utf8','render','Reload','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','squel','jsforce','desk.js','to-csv','querystring','../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x3d05,0x9e));var _0x53d0=function(_0x1fd675,_0x165dfe){_0x1fd675=_0x1fd675-0x0;var _0x16b554=_0x3d05[_0x1fd675];return _0x16b554;};'use strict';var pdf=require(_0x53d0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x53d0('0x1'));var zipdir=require(_0x53d0('0x2'));var jsonpatch=require(_0x53d0('0x3'));var rp=require('request-promise');var moment=require(_0x53d0('0x4'));var BPromise=require(_0x53d0('0x5'));var Mustache=require(_0x53d0('0x6'));var util=require(_0x53d0('0x7'));var path=require('path');var sox=require(_0x53d0('0x8'));var csv=require('to-csv');var ejs=require(_0x53d0('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x53d0('0xa'));var crypto=require('crypto');var jsforce=require(_0x53d0('0xb'));var deskjs=require(_0x53d0('0xc'));var toCsv=require(_0x53d0('0xd'));var querystring=require(_0x53d0('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require(_0x53d0('0xf'));var logger=require(_0x53d0('0x10'))('api');var utils=require(_0x53d0('0x11'));var config=require('../../config/environment');var db=require(_0x53d0('0x12'))['db'];var jayson=require(_0x53d0('0x13'));var client=jayson[_0x53d0('0x14')][_0x53d0('0x15')]({'port':0x232a});function respondWithRpcPromise(_0x14160c,_0x2e01b0,_0x222ff0,_0x4b2249){return new BPromise(function(_0x276e89,_0xad556){var _0xa5a80e=_0x4b2249||client;return _0xa5a80e[_0x53d0('0x16')](_0x14160c,_0x222ff0)[_0x53d0('0x17')](function(_0x4acaae){logger[_0x53d0('0x18')]('Network,\x20%s,\x20%s',_0x2e01b0,_0x53d0('0x19'));logger[_0x53d0('0x1a')](_0x53d0('0x1b'),_0x2e01b0,_0x53d0('0x19'),JSON[_0x53d0('0x1c')](_0x4acaae));if(_0x4acaae[_0x53d0('0x1d')]){if(_0x4acaae[_0x53d0('0x1d')][_0x53d0('0x1e')]===0x1f4){logger[_0x53d0('0x1d')]('Network,\x20%s,\x20%s',_0x2e01b0,_0x4acaae['error']['message']);return _0xad556(_0x4acaae[_0x53d0('0x1d')]['message']);}logger[_0x53d0('0x1d')]('Network,\x20%s,\x20%s',_0x2e01b0,_0x4acaae[_0x53d0('0x1d')][_0x53d0('0x1f')]);return _0x276e89(_0x4acaae['error'][_0x53d0('0x1f')]);}else{logger[_0x53d0('0x18')](_0x53d0('0x20'),_0x2e01b0,_0x53d0('0x19'));_0x276e89(_0x4acaae['result']['message']);}})[_0x53d0('0x21')](function(_0xd9b660){logger['error'](_0x53d0('0x20'),_0x2e01b0,_0xd9b660);_0xad556(_0xd9b660);});});}function respondWithStatusCode(_0x43ae57,_0x2b959a){_0x2b959a=_0x2b959a||0xcc;return function(_0x41b606){if(_0x41b606){return _0x43ae57[_0x53d0('0x22')](_0x2b959a);}return _0x43ae57[_0x53d0('0x23')](_0x2b959a)[_0x53d0('0x24')]();};}function respondWithResult(_0x5b7d3d,_0x5eae18){_0x5eae18=_0x5eae18||0xc8;return function(_0x473499){if(_0x473499){return _0x5b7d3d[_0x53d0('0x23')](_0x5eae18)['json'](_0x473499);}};}function respondWithFilteredResult(_0x26bbde,_0x17f357){return function(_0x5ed8ef){if(_0x5ed8ef){var _0x28fa09=_0x5ed8ef[_0x53d0('0x25')],_0x1ff209=_0x17f357[_0x53d0('0x26')],_0x2d165d=_0x17f357['offset']+_0x17f357[_0x53d0('0x27')],_0x2ccf16;if(_0x2d165d>=_0x28fa09){_0x2d165d=_0x28fa09;_0x2ccf16=0xc8;}else{_0x2ccf16=0xce;}_0x26bbde[_0x53d0('0x23')](_0x2ccf16);return _0x26bbde[_0x53d0('0x28')](_0x53d0('0x29'),_0x1ff209+'-'+_0x2d165d+'/'+_0x28fa09)[_0x53d0('0x2a')](_0x5ed8ef);}return null;};}function patchUpdates(_0x2deed2){return function(_0x422930){try{jsonpatch['apply'](_0x422930,_0x2deed2,!![]);}catch(_0x5145b7){return BPromise['reject'](_0x5145b7);}return _0x422930[_0x53d0('0x2b')]();};}function saveUpdates(_0x1e81fe,_0x312422){return function(_0x32473f){if(_0x32473f){return _0x32473f[_0x53d0('0x2c')](_0x1e81fe)[_0x53d0('0x17')](function(_0x208cc2){return _0x208cc2;});}return null;};}function removeEntity(_0x13a7e9,_0x56c95c){return function(_0xb1279b){if(_0xb1279b){return _0xb1279b[_0x53d0('0x2d')]()[_0x53d0('0x17')](function(){_0x13a7e9[_0x53d0('0x23')](0xcc)[_0x53d0('0x24')]();});}};}function handleEntityNotFound(_0x4cf9dd,_0x5d0dcb){return function(_0x2ef52c){if(!_0x2ef52c){_0x4cf9dd['sendStatus'](0x194);}return _0x2ef52c;};}function handleError(_0x128e8d,_0x3982fc){_0x3982fc=_0x3982fc||0x1f4;return function(_0x68c4af){logger[_0x53d0('0x1d')](_0x68c4af['stack']);if(_0x68c4af[_0x53d0('0x2e')]){delete _0x68c4af[_0x53d0('0x2e')];}_0x128e8d[_0x53d0('0x23')](_0x3982fc)[_0x53d0('0x2f')](_0x68c4af);};}exports['index']=function(_0x2e1a09,_0x27ba39){var _0x2a4224={},_0x10083d={},_0x39d9ab={'count':0x0,'rows':[]};var _0x4f19d6=db[_0x53d0('0x30')][_0x53d0('0x31')];_0x10083d[_0x53d0('0x32')]=_[_0x53d0('0x33')](_0x4f19d6);var _0x482e4b={'dateStart':_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x35')],'dateEnd':_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x36')]};delete _0x2e1a09[_0x53d0('0x34')][_0x53d0('0x35')];delete _0x2e1a09[_0x53d0('0x34')][_0x53d0('0x36')];_0x10083d[_0x53d0('0x34')]=_[_0x53d0('0x33')](_0x2e1a09[_0x53d0('0x34')]);_0x10083d['filters']=_['intersection'](_0x10083d[_0x53d0('0x32')],_0x10083d[_0x53d0('0x34')]);_0x2a4224[_0x53d0('0x37')]=_[_0x53d0('0x38')](_0x10083d['model'],qs['fields'](_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x39')]));_0x2a4224[_0x53d0('0x37')]=_0x2a4224['attributes'][_0x53d0('0x3a')]?_0x2a4224[_0x53d0('0x37')]:_0x10083d['model'];if(!_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x3b')](_0x53d0('0x3c'))){_0x2a4224[_0x53d0('0x27')]=qs[_0x53d0('0x27')](_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x27')]);_0x2a4224[_0x53d0('0x26')]=qs[_0x53d0('0x26')](_0x2e1a09[_0x53d0('0x34')]['offset']);}_0x2a4224[_0x53d0('0x3d')]=qs['sort'](_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x3e')]);_0x2a4224[_0x53d0('0x3f')]=qs['filters'](_[_0x53d0('0x40')](_0x2e1a09[_0x53d0('0x34')],_0x10083d['filters']));if(_0x482e4b[_0x53d0('0x35')]){if(_0x482e4b[_0x53d0('0x36')]){_0x482e4b[_0x53d0('0x36')]=moment(_0x482e4b[_0x53d0('0x36')])['add'](0x1,_0x53d0('0x41'));}else{_0x482e4b['dateEnd']=moment(_0x482e4b['dateStart'])[_0x53d0('0x42')](0x1,'day');}_['merge'](_0x2a4224[_0x53d0('0x3f')],{'createdAt':{'$gte':_0x482e4b[_0x53d0('0x35')],'$lte':_0x482e4b[_0x53d0('0x36')]}});}if(_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x43')]){_0x2a4224[_0x53d0('0x3f')]=_[_0x53d0('0x44')](_0x2a4224[_0x53d0('0x3f')],{'$or':_['map'](_0x2a4224[_0x53d0('0x37')],function(_0x59f86b){var _0x226eca={};_0x226eca[_0x59f86b]={'$like':'%'+_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x43')]+'%'};return _0x226eca;})});}_0x2a4224=_[_0x53d0('0x44')]({},_0x2a4224,_0x2e1a09[_0x53d0('0x45')]);var _0x2cc996={'where':_0x2a4224[_0x53d0('0x3f')]};return db[_0x53d0('0x30')][_0x53d0('0x25')](_0x2cc996)[_0x53d0('0x17')](function(_0x1a902d){_0x39d9ab[_0x53d0('0x25')]=_0x1a902d;if(_0x2e1a09[_0x53d0('0x34')][_0x53d0('0x46')]){_0x2a4224[_0x53d0('0x47')]=[{'all':!![]}];}return db[_0x53d0('0x30')]['findAll'](_0x2a4224);})['then'](function(_0xda0b12){_0x39d9ab['rows']=_0xda0b12;return _0x39d9ab;})['then'](respondWithFilteredResult(_0x27ba39,_0x2a4224))[_0x53d0('0x21')](handleError(_0x27ba39,null));};exports[_0x53d0('0x48')]=function(_0x558d07,_0x3f1809){var _0x1c6efa={'raw':!![],'where':{'id':_0x558d07['params']['id']}},_0x3fe9df={};_0x3fe9df[_0x53d0('0x32')]=_[_0x53d0('0x33')](db[_0x53d0('0x30')][_0x53d0('0x31')]);_0x3fe9df[_0x53d0('0x34')]=_[_0x53d0('0x33')](_0x558d07['query']);_0x3fe9df[_0x53d0('0x49')]=_[_0x53d0('0x38')](_0x3fe9df[_0x53d0('0x32')],_0x3fe9df['query']);_0x1c6efa[_0x53d0('0x37')]=_[_0x53d0('0x38')](_0x3fe9df['model'],qs[_0x53d0('0x39')](_0x558d07['query'][_0x53d0('0x39')]));_0x1c6efa[_0x53d0('0x37')]=_0x1c6efa[_0x53d0('0x37')][_0x53d0('0x3a')]?_0x1c6efa[_0x53d0('0x37')]:_0x3fe9df[_0x53d0('0x32')];if(_0x558d07[_0x53d0('0x34')]['includeAll']){_0x1c6efa[_0x53d0('0x47')]=[{'all':!![]}];}_0x1c6efa=_[_0x53d0('0x44')]({},_0x1c6efa,_0x558d07[_0x53d0('0x45')]);return db[_0x53d0('0x30')]['find'](_0x1c6efa)['then'](handleEntityNotFound(_0x3f1809,null))[_0x53d0('0x17')](respondWithResult(_0x3f1809,null))['catch'](handleError(_0x3f1809,null));};exports['create']=function(_0x29273e,_0x378b7e,_0x299f2c){var _0x26937c;return db['sequelize'][_0x53d0('0x4a')](function(_0x2abc1f){return db['Network'][_0x53d0('0x4b')](_0x29273e[_0x53d0('0x4c')],{'raw':!![]})[_0x53d0('0x17')](function(_0x5e116a){_0x26937c=_0x5e116a;return db[_0x53d0('0x30')]['findAll']({'where':{'type':_0x29273e[_0x53d0('0x4c')][_0x53d0('0x4d')]},'raw':!![]});})[_0x53d0('0x17')](function(_0x352b15){var _0x42d879=fs[_0x53d0('0x4e')](path['join'](config[_0x53d0('0x4f')],'server/files/templates/network.ejs'),'utf8');var _0xd89418=ejs['render'](_0x42d879,{'networks':_0x352b15||[]});fs[_0x53d0('0x50')](util[_0x53d0('0x51')](_0x53d0('0x52'),_0x29273e[_0x53d0('0x4c')][_0x53d0('0x4d')][_0x53d0('0x53')]()),_0xd89418);})[_0x53d0('0x17')](function(){return respondWithRpcPromise('Reload',_0x53d0('0x4b'),{'module':_0x53d0('0x54')});})['then'](function(){return _0x26937c;});})['then'](respondWithResult(_0x378b7e,0xc9))[_0x53d0('0x21')](handleError(_0x378b7e,null));};exports[_0x53d0('0x2c')]=function(_0x2f6fa5,_0x2bc8e8,_0x3d9af5){var _0x42ad58;return db[_0x53d0('0x55')][_0x53d0('0x4a')](function(_0x5abe41){return db[_0x53d0('0x30')][_0x53d0('0x56')]({'where':{'id':_0x2f6fa5[_0x53d0('0x57')]['id']}})['then'](handleEntityNotFound(_0x2bc8e8,null))['then'](saveUpdates(_0x2f6fa5['body'],null))[_0x53d0('0x17')](function(_0x44c148){if(_0x44c148){_0x42ad58=_0x44c148;return db[_0x53d0('0x30')][_0x53d0('0x58')]({'where':{'type':_0x42ad58['type']},'raw':!![]});}return null;})['then'](function(_0x1c099d){if(_0x1c099d){var _0x190924=fs[_0x53d0('0x4e')](path[_0x53d0('0x59')](config[_0x53d0('0x4f')],_0x53d0('0x5a')),_0x53d0('0x5b'));var _0x32e613=ejs[_0x53d0('0x5c')](_0x190924,{'networks':_0x1c099d||[]});fs[_0x53d0('0x50')](util[_0x53d0('0x51')](_0x53d0('0x52'),_0x42ad58['type'][_0x53d0('0x53')]()),_0x32e613);return respondWithRpcPromise(_0x53d0('0x5d'),_0x53d0('0x2c'),{'module':_0x53d0('0x54')});}return null;})[_0x53d0('0x17')](function(_0x1b1f72){if(_0x1b1f72){return _0x42ad58;}return null;});})[_0x53d0('0x17')](respondWithResult(_0x2bc8e8,null))[_0x53d0('0x21')](handleError(_0x2bc8e8,null));};exports[_0x53d0('0x2d')]=function(_0x4216de,_0x294e42,_0x9c56a){var _0x494f6c;return db[_0x53d0('0x30')]['find']({'where':{'id':_0x4216de['params']['id']}})[_0x53d0('0x17')](function(_0x4419ff){_0x494f6c=_0x4419ff;return _0x4419ff;})[_0x53d0('0x17')](handleEntityNotFound(_0x294e42,null))[_0x53d0('0x17')](removeEntity(_0x294e42,null))[_0x53d0('0x17')](function(){if(_0x494f6c){return db[_0x53d0('0x30')][_0x53d0('0x58')]({'where':{'type':_0x494f6c['type']},'raw':!![]});}})['then'](function(_0x4e5e70){if(_0x4e5e70){var _0x124d2c=fs[_0x53d0('0x4e')](path['join'](config['root'],'server/files/templates/network.ejs'),_0x53d0('0x5b'));var _0x25c9be=ejs[_0x53d0('0x5c')](_0x124d2c,{'networks':_0x4e5e70||[]});fs['writeFileSync'](util[_0x53d0('0x51')]('/etc/asterisk/sip_xcally_%s.conf',_0x494f6c[_0x53d0('0x4d')][_0x53d0('0x53')]()),_0x25c9be);return respondWithRpcPromise(_0x53d0('0x5d'),_0x53d0('0x2d'),{'module':_0x53d0('0x54')});}})[_0x53d0('0x21')](handleError(_0x294e42,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1d0=['./network.attributes','exports','define','Network','network','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xc1d0,0xcb));var _0x0c1d=function(_0x38e247,_0x2cd7b5){_0x38e247=_0x38e247-0x0;var _0x1be41b=_0xc1d0[_0x38e247];return _0x1be41b;};'use strict';var _=require('lodash');var util=require(_0x0c1d('0x0'));var logger=require(_0x0c1d('0x1'))(_0x0c1d('0x2'));var moment=require(_0x0c1d('0x3'));var BPromise=require(_0x0c1d('0x4'));var rp=require(_0x0c1d('0x5'));var attributes=require(_0x0c1d('0x6'));module[_0x0c1d('0x7')]=function(_0x12690f,_0x3705f4){return _0x12690f[_0x0c1d('0x8')](_0x0c1d('0x9'),attributes,{'tableName':_0x0c1d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7f87=['lodash','../../config/logger','bluebird','request-promise','exports','define','Network','network'];(function(_0xfd084b,_0x26977e){var _0x375d60=function(_0xfec175){while(--_0xfec175){_0xfd084b['push'](_0xfd084b['shift']());}};_0x375d60(++_0x26977e);}(_0x7f87,0x170));var _0x77f8=function(_0x2a0157,_0x5b41b2){_0x2a0157=_0x2a0157-0x0;var _0x2f2ccc=_0x7f87[_0x2a0157];return _0x2f2ccc;};'use strict';var _=require(_0x77f8('0x0'));var util=require('util');var logger=require(_0x77f8('0x1'))('api');var moment=require('moment');var BPromise=require(_0x77f8('0x2'));var rp=require(_0x77f8('0x3'));var attributes=require('./network.attributes');module[_0x77f8('0x4')]=function(_0x5f1d2c,_0x31b981){return _0x5f1d2c[_0x77f8('0x5')](_0x77f8('0x6'),attributes,{'tableName':_0x77f8('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e80=['util','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','http','request','then','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','Network,\x20%s,\x20%s','message','result','catch','lodash'];(function(_0x36ed48,_0x1ee0d4){var _0x51c63a=function(_0x2d0a40){while(--_0x2d0a40){_0x36ed48['push'](_0x36ed48['shift']());}};_0x51c63a(++_0x1ee0d4);}(_0x8e80,0xdb));var _0x08e8=function(_0x4f9d26,_0x641341){_0x4f9d26=_0x4f9d26-0x0;var _0x57debc=_0x8e80[_0x4f9d26];return _0x57debc;};'use strict';var _=require(_0x08e8('0x0'));var util=require(_0x08e8('0x1'));var moment=require(_0x08e8('0x2'));var BPromise=require('bluebird');var rs=require(_0x08e8('0x3'));var fs=require('fs');var db=require(_0x08e8('0x4'))['db'];var utils=require(_0x08e8('0x5'));var logger=require('../../config/logger')(_0x08e8('0x6'));var config=require(_0x08e8('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x08e8('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4c2ee9,_0x48639f,_0x30befe){return new BPromise(function(_0x1d7548,_0x355c2c){return client[_0x08e8('0x9')](_0x4c2ee9,_0x30befe)[_0x08e8('0xa')](function(_0x683148){logger['info']('Network,\x20%s,\x20%s',_0x48639f,_0x08e8('0xb'));logger['debug'](_0x08e8('0xc'),_0x48639f,_0x08e8('0xb'),JSON[_0x08e8('0xd')](_0x683148));if(_0x683148[_0x08e8('0xe')]){if(_0x683148[_0x08e8('0xe')][_0x08e8('0xf')]===0x1f4){logger[_0x08e8('0xe')](_0x08e8('0x10'),_0x48639f,_0x683148['error'][_0x08e8('0x11')]);return _0x355c2c(_0x683148[_0x08e8('0xe')][_0x08e8('0x11')]);}logger['error'](_0x08e8('0x10'),_0x48639f,_0x683148['error'][_0x08e8('0x11')]);return _0x1d7548(_0x683148[_0x08e8('0xe')][_0x08e8('0x11')]);}else{logger['info'](_0x08e8('0x10'),_0x48639f,'request\x20sent');_0x1d7548(_0x683148[_0x08e8('0x12')][_0x08e8('0x11')]);}})[_0x08e8('0x13')](function(_0x1a6bbb){logger[_0x08e8('0xe')](_0x08e8('0x10'),_0x48639f,_0x1a6bbb);_0x355c2c(_0x1a6bbb);});});}
\ No newline at end of file
+var _0x7217=['stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x2df507,_0x553862){var _0x1f7167=function(_0x11319e){while(--_0x11319e){_0x2df507['push'](_0x2df507['shift']());}};_0x1f7167(++_0x553862);}(_0x7217,0x19e));var _0x7721=function(_0x2b10c6,_0x185590){_0x2b10c6=_0x2b10c6-0x0;var _0x3789d2=_0x7217[_0x2b10c6];return _0x3789d2;};'use strict';var _=require(_0x7721('0x0'));var util=require('util');var moment=require(_0x7721('0x1'));var BPromise=require(_0x7721('0x2'));var rs=require(_0x7721('0x3'));var fs=require('fs');var Redis=require(_0x7721('0x4'));var db=require(_0x7721('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x7721('0x6'));var config=require(_0x7721('0x7'));var jayson=require(_0x7721('0x8'));var client=jayson[_0x7721('0x9')][_0x7721('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xf7ff37,_0x18ab6b,_0x21f680){return new BPromise(function(_0x225610,_0x2f99ed){return client[_0x7721('0xb')](_0xf7ff37,_0x21f680)[_0x7721('0xc')](function(_0xfa8835){logger[_0x7721('0xd')](_0x7721('0xe'),_0x18ab6b,'request\x20sent');logger[_0x7721('0xf')](_0x7721('0x10'),_0x18ab6b,_0x7721('0x11'),JSON[_0x7721('0x12')](_0xfa8835));if(_0xfa8835[_0x7721('0x13')]){if(_0xfa8835[_0x7721('0x13')][_0x7721('0x14')]===0x1f4){logger[_0x7721('0x13')]('Network,\x20%s,\x20%s',_0x18ab6b,_0xfa8835[_0x7721('0x13')][_0x7721('0x15')]);return _0x2f99ed(_0xfa8835['error'][_0x7721('0x15')]);}logger[_0x7721('0x13')](_0x7721('0xe'),_0x18ab6b,_0xfa8835[_0x7721('0x13')]['message']);return _0x225610(_0xfa8835[_0x7721('0x13')][_0x7721('0x15')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x18ab6b,'request\x20sent');_0x225610(_0xfa8835[_0x7721('0x16')][_0x7721('0x15')]);}})[_0x7721('0x17')](function(_0x32550d){logger['error'](_0x7721('0xe'),_0x18ab6b,_0x32550d);_0x2f99ed(_0x32550d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15a9=['addDisposition','addAnswer','/:id/notify','notify','addApplications','/:id/users','addAgents','/:id','delete','destroy','removeDispositions','/:id/canned_answers','removeAnswers','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','get','isAuthenticated','index','/describe','describe','show','/:id/dispositions','getDispositions','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','getAgents','post'];(function(_0x30f4ca,_0xbb69cb){var _0x53b116=function(_0x22b825){while(--_0x22b825){_0x30f4ca['push'](_0x30f4ca['shift']());}};_0x53b116(++_0xbb69cb);}(_0x15a9,0x18a));var _0x915a=function(_0x39b410,_0x1c4f44){_0x39b410=_0x39b410-0x0;var _0x1d5460=_0x15a9[_0x39b410];return _0x1d5460;};'use strict';var multer=require(_0x915a('0x0'));var util=require(_0x915a('0x1'));var path=require(_0x915a('0x2'));var timeout=require(_0x915a('0x3'));var express=require('express');var router=express[_0x915a('0x4')]();var auth=require(_0x915a('0x5'));var interaction=require(_0x915a('0x6'));var config=require(_0x915a('0x7'));var controller=require(_0x915a('0x8'));router[_0x915a('0x9')]('/',auth[_0x915a('0xa')](),controller[_0x915a('0xb')]);router[_0x915a('0x9')](_0x915a('0xc'),auth[_0x915a('0xa')](),controller[_0x915a('0xd')]);router[_0x915a('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x915a('0xe')]);router[_0x915a('0x9')](_0x915a('0xf'),auth[_0x915a('0xa')](),controller[_0x915a('0x10')]);router[_0x915a('0x9')]('/:id/canned_answers',auth[_0x915a('0xa')](),controller[_0x915a('0x11')]);router[_0x915a('0x9')](_0x915a('0x12'),auth[_0x915a('0xa')](),controller[_0x915a('0x13')]);router['get'](_0x915a('0x14'),auth['isAuthenticated'](),controller[_0x915a('0x15')]);router[_0x915a('0x9')]('/:id/users',auth[_0x915a('0xa')](),controller[_0x915a('0x16')]);router[_0x915a('0x17')]('/',auth[_0x915a('0xa')](),controller['create']);router['post'](_0x915a('0xf'),auth['isAuthenticated'](),controller[_0x915a('0x18')]);router['post']('/:id/canned_answers',auth[_0x915a('0xa')](),controller[_0x915a('0x19')]);router[_0x915a('0x17')](_0x915a('0x1a'),controller[_0x915a('0x1b')]);router[_0x915a('0x17')](_0x915a('0x12'),auth[_0x915a('0xa')](),controller[_0x915a('0x1c')]);router['post'](_0x915a('0x1d'),auth[_0x915a('0xa')](),controller[_0x915a('0x1e')]);router[_0x915a('0x17')]('/:id/send',auth['isAuthenticated'](),controller['send']);router['put'](_0x915a('0x1f'),auth[_0x915a('0xa')](),controller['update']);router[_0x915a('0x20')](_0x915a('0x1f'),auth[_0x915a('0xa')](),controller[_0x915a('0x21')]);router['delete'](_0x915a('0xf'),auth[_0x915a('0xa')](),controller[_0x915a('0x22')]);router[_0x915a('0x20')](_0x915a('0x23'),auth['isAuthenticated'](),controller[_0x915a('0x24')]);router[_0x915a('0x20')](_0x915a('0x1d'),auth[_0x915a('0xa')](),controller['removeAgents']);module[_0x915a('0x25')]=router;
\ No newline at end of file
+var _0x46e1=['getApplications','/:id/interactions','getInteractions','getAgents','post','create','addDisposition','addAnswer','/:id/notify','notify','addAgents','put','update','delete','removeAnswers','/:id/users','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','isAuthenticated','index','get','/describe','describe','/:id/dispositions','getDispositions','/:id/canned_answers','/:id/applications'];(function(_0x3c7628,_0x4556b5){var _0x18f5d6=function(_0xbc04c4){while(--_0xbc04c4){_0x3c7628['push'](_0x3c7628['shift']());}};_0x18f5d6(++_0x4556b5);}(_0x46e1,0x155));var _0x146e=function(_0x1742e0,_0x2e970d){_0x1742e0=_0x1742e0-0x0;var _0x2dcf64=_0x46e1[_0x1742e0];return _0x2dcf64;};'use strict';var multer=require(_0x146e('0x0'));var util=require(_0x146e('0x1'));var path=require(_0x146e('0x2'));var timeout=require(_0x146e('0x3'));var express=require(_0x146e('0x4'));var router=express[_0x146e('0x5')]();var auth=require(_0x146e('0x6'));var interaction=require(_0x146e('0x7'));var config=require(_0x146e('0x8'));var controller=require(_0x146e('0x9'));router['get']('/',auth[_0x146e('0xa')](),controller[_0x146e('0xb')]);router[_0x146e('0xc')](_0x146e('0xd'),auth[_0x146e('0xa')](),controller[_0x146e('0xe')]);router[_0x146e('0xc')]('/:id',auth[_0x146e('0xa')](),controller['show']);router[_0x146e('0xc')](_0x146e('0xf'),auth[_0x146e('0xa')](),controller[_0x146e('0x10')]);router[_0x146e('0xc')](_0x146e('0x11'),auth['isAuthenticated'](),controller['getAnswers']);router[_0x146e('0xc')](_0x146e('0x12'),auth[_0x146e('0xa')](),controller[_0x146e('0x13')]);router[_0x146e('0xc')](_0x146e('0x14'),auth[_0x146e('0xa')](),controller[_0x146e('0x15')]);router['get']('/:id/users',auth[_0x146e('0xa')](),controller[_0x146e('0x16')]);router[_0x146e('0x17')]('/',auth[_0x146e('0xa')](),controller[_0x146e('0x18')]);router[_0x146e('0x17')](_0x146e('0xf'),auth[_0x146e('0xa')](),controller[_0x146e('0x19')]);router[_0x146e('0x17')](_0x146e('0x11'),auth['isAuthenticated'](),controller[_0x146e('0x1a')]);router[_0x146e('0x17')](_0x146e('0x1b'),controller[_0x146e('0x1c')]);router[_0x146e('0x17')](_0x146e('0x12'),auth[_0x146e('0xa')](),controller['addApplications']);router[_0x146e('0x17')]('/:id/users',auth[_0x146e('0xa')](),controller[_0x146e('0x1d')]);router[_0x146e('0x17')]('/:id/send',auth[_0x146e('0xa')](),controller['send']);router[_0x146e('0x1e')]('/:id',auth[_0x146e('0xa')](),controller[_0x146e('0x1f')]);router['delete']('/:id',auth['isAuthenticated'](),controller['destroy']);router['delete']('/:id/dispositions',auth[_0x146e('0xa')](),controller['removeDispositions']);router[_0x146e('0x20')](_0x146e('0x11'),auth[_0x146e('0xa')](),controller[_0x146e('0x21')]);router[_0x146e('0x20')](_0x146e('0x22'),auth[_0x146e('0xa')](),controller['removeAgents']);module[_0x146e('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','sequelize','randomstring','exports','STRING','generate','TEXT'];(function(_0x298ed3,_0x4ab5e1){var _0x5aad28=function(_0x168687){while(--_0x168687){_0x298ed3['push'](_0x298ed3['shift']());}};_0x5aad28(++_0x4ab5e1);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var Sequelize=require(_0x7995('0x0'));var rs=require(_0x7995('0x1'));module[_0x7995('0x2')]={'name':{'type':Sequelize[_0x7995('0x3')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x7995('0x3')]},'token':{'type':Sequelize[_0x7995('0x3')],'defaultValue':function(){return rs[_0x7995('0x4')]();}},'replyUri':{'type':Sequelize[_0x7995('0x3')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize['STRING'],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x7995('0x5')],'defaultValue':function(){return _0x7995('0x6');}},'notificationSound':{'type':Sequelize[_0x7995('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x7995('0x7')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x7995('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x7995('0x3')]},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x7995('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x7995('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c}};
\ No newline at end of file
+var _0x00bb=['generate','TEXT','INTEGER','BOOLEAN','sequelize','randomstring','exports','name','STRING'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x00bb,0x1d8));var _0xb00b=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0x00bb[_0x2b5eae];return _0x5f3ac9;};'use strict';var Sequelize=require(_0xb00b('0x0'));var rs=require(_0xb00b('0x1'));module[_0xb00b('0x2')]={'name':{'type':Sequelize['STRING'],'unique':_0xb00b('0x3'),'allowNull':![]},'description':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0xb00b('0x4')],'defaultValue':function(){return rs[_0xb00b('0x5')]();}},'replyUri':{'type':Sequelize['STRING'],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0xb00b('0x4')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xb00b('0x6')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xb00b('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0xb00b('0x4')]},'queueTransfer':{'type':Sequelize[_0xb00b('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xb00b('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xb00b('0x8')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xb00b('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['findAll','rows','params','include','find','create','body','describe','addDisposition','OpnechannelAccountId','Disposition','getDispositions','findOne','sort','pick','removeDispositions','ids','addAnswer','OpenchannelAccountId','CannedAnswer','removeAnswers','notify','openchannel','CmContact','Sequelize','ValidationError','difference','createdAt','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','CmList','List','Contacts','updatedAt','OpenchannelApplication','Applications','applications','orderBy','account','contact','firstName','lastName','threadId','OpenchannelInteraction','externalUrl','ContactId','spread','get','created','autoclose','close','OpenchannelMessage','AttachmentId','interaction','UserId','unshift','forcedOwnership','startRouting','Start','EventManager','addApplications','transaction','bulkCreate','findAndCountAll','priority','getApplications','getInteractions','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','addAgents','emit','userOpenchannelAccount:save','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','DESC','out','user','dataValues','Messages','push','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','squel','crypto','desk.js','../../components/parsers/qs','../../config/logger','../../config/utils','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','jayson/promise','client','http','request','then','OpenchannelAccount,\x20%s,\x20%s','OpenchannelAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','catch','end','status','json','count','offset','limit','set','reject','save','update','sendStatus','name','send','OpenchannelAccount','rawAttributes','model','keys','dateStart','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','dateEnd','add','day','merge','where','filter','map','options','includeAll'];(function(_0x10b545,_0x2da4ef){var _0x15c086=function(_0x55eafb){while(--_0x55eafb){_0x10b545['push'](_0x10b545['shift']());}};_0x15c086(++_0x2da4ef);}(_0x7a54,0x106));var _0x47a5=function(_0xb98ea3,_0x34b5b0){_0xb98ea3=_0xb98ea3-0x0;var _0x448dd4=_0x7a54[_0xb98ea3];return _0x448dd4;};'use strict';var pdf=require(_0x47a5('0x0'));var emlformat=require(_0x47a5('0x1'));var rimraf=require(_0x47a5('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x47a5('0x3'));var rp=require(_0x47a5('0x4'));var moment=require('moment');var BPromise=require(_0x47a5('0x5'));var Mustache=require(_0x47a5('0x6'));var util=require(_0x47a5('0x7'));var path=require(_0x47a5('0x8'));var sox=require(_0x47a5('0x9'));var csv=require('to-csv');var ejs=require(_0x47a5('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var qs=require(_0x47a5('0xe'));var logger=require(_0x47a5('0xf'))('api');var utils=require(_0x47a5('0x10'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x47a5('0x11')]=_[_0x47a5('0x12')](config[_0x47a5('0x11')],{'host':_0x47a5('0x13'),'port':0x18eb});var socket=require(_0x47a5('0x14'))(config[_0x47a5('0x11')]);require(_0x47a5('0x15'))['register'](socket);var jayson=require(_0x47a5('0x16'));var client=jayson[_0x47a5('0x17')][_0x47a5('0x18')]({'port':0x232c});var client9002=jayson[_0x47a5('0x17')][_0x47a5('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x620ee9,_0x3c6c46,_0x190faa,_0x4e99a8){return new BPromise(function(_0x362359,_0x11faf5){var _0x3b001e=_0x4e99a8||client;return _0x3b001e[_0x47a5('0x19')](_0x620ee9,_0x190faa)[_0x47a5('0x1a')](function(_0x574af6){logger['info'](_0x47a5('0x1b'),_0x3c6c46,'request\x20sent');logger['debug'](_0x47a5('0x1c'),_0x3c6c46,_0x47a5('0x1d'),JSON[_0x47a5('0x1e')](_0x574af6));if(_0x574af6[_0x47a5('0x1f')]){if(_0x574af6[_0x47a5('0x1f')][_0x47a5('0x20')]===0x1f4){logger[_0x47a5('0x1f')](_0x47a5('0x1b'),_0x3c6c46,_0x574af6[_0x47a5('0x1f')]['message']);return _0x11faf5(_0x574af6[_0x47a5('0x1f')][_0x47a5('0x21')]);}logger['error'](_0x47a5('0x1b'),_0x3c6c46,_0x574af6[_0x47a5('0x1f')][_0x47a5('0x21')]);return _0x362359(_0x574af6['error'][_0x47a5('0x21')]);}else{logger[_0x47a5('0x22')](_0x47a5('0x1b'),_0x3c6c46,_0x47a5('0x1d'));_0x362359(_0x574af6['result'][_0x47a5('0x21')]);}})[_0x47a5('0x23')](function(_0x513981){logger[_0x47a5('0x1f')](_0x47a5('0x1b'),_0x3c6c46,_0x513981);_0x11faf5(_0x513981);});});}function respondWithStatusCode(_0x4437f1,_0x129ce5){_0x129ce5=_0x129ce5||0xcc;return function(_0x3abd6a){if(_0x3abd6a){return _0x4437f1['sendStatus'](_0x129ce5);}return _0x4437f1['status'](_0x129ce5)[_0x47a5('0x24')]();};}function respondWithResult(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0xc8;return function(_0x5b6c4e){if(_0x5b6c4e){return _0x5686db[_0x47a5('0x25')](_0x1ea9c8)[_0x47a5('0x26')](_0x5b6c4e);}};}function respondWithFilteredResult(_0x36ad34,_0x1dac65){return function(_0x21f296){if(_0x21f296){var _0x3ba0b7=_0x21f296[_0x47a5('0x27')],_0x24b162=_0x1dac65[_0x47a5('0x28')],_0x136b14=_0x1dac65[_0x47a5('0x28')]+_0x1dac65[_0x47a5('0x29')],_0x16631f;if(_0x136b14>=_0x3ba0b7){_0x136b14=_0x3ba0b7;_0x16631f=0xc8;}else{_0x16631f=0xce;}_0x36ad34['status'](_0x16631f);return _0x36ad34[_0x47a5('0x2a')]('Content-Range',_0x24b162+'-'+_0x136b14+'/'+_0x3ba0b7)[_0x47a5('0x26')](_0x21f296);}return null;};}function patchUpdates(_0x9ac908){return function(_0x16901f){try{jsonpatch['apply'](_0x16901f,_0x9ac908,!![]);}catch(_0x256650){return BPromise[_0x47a5('0x2b')](_0x256650);}return _0x16901f[_0x47a5('0x2c')]();};}function saveUpdates(_0x1f1c68,_0x51cc81){return function(_0x50d875){if(_0x50d875){return _0x50d875[_0x47a5('0x2d')](_0x1f1c68)[_0x47a5('0x1a')](function(_0x5bd7eb){return _0x5bd7eb;});}return null;};}function removeEntity(_0x4e1006,_0x836303){return function(_0x51544e){if(_0x51544e){return _0x51544e['destroy']()[_0x47a5('0x1a')](function(){_0x4e1006['status'](0xcc)[_0x47a5('0x24')]();});}};}function handleEntityNotFound(_0xd972c,_0x5c5162){return function(_0x4843c0){if(!_0x4843c0){_0xd972c[_0x47a5('0x2e')](0x194);}return _0x4843c0;};}function handleError(_0x5910bb,_0x403028){_0x403028=_0x403028||0x1f4;return function(_0x87e4c9){logger[_0x47a5('0x1f')](_0x87e4c9['stack']);if(_0x87e4c9[_0x47a5('0x2f')]){delete _0x87e4c9['name'];}_0x5910bb['status'](_0x403028)[_0x47a5('0x30')](_0x87e4c9);};}exports['index']=function(_0x25cce0,_0x5ef577){var _0x21ad34={},_0x3534cb={},_0x38c8d4={'count':0x0,'rows':[]};var _0x199698=db[_0x47a5('0x31')][_0x47a5('0x32')];_0x3534cb[_0x47a5('0x33')]=_[_0x47a5('0x34')](_0x199698);var _0x1a0d23={'dateStart':_0x25cce0['query'][_0x47a5('0x35')],'dateEnd':_0x25cce0[_0x47a5('0x36')]['dateEnd']};delete _0x25cce0[_0x47a5('0x36')][_0x47a5('0x35')];delete _0x25cce0[_0x47a5('0x36')]['dateEnd'];_0x3534cb[_0x47a5('0x36')]=_[_0x47a5('0x34')](_0x25cce0['query']);_0x3534cb[_0x47a5('0x37')]=_[_0x47a5('0x38')](_0x3534cb['model'],_0x3534cb['query']);_0x21ad34['attributes']=_[_0x47a5('0x38')](_0x3534cb['model'],qs[_0x47a5('0x39')](_0x25cce0[_0x47a5('0x36')][_0x47a5('0x39')]));_0x21ad34[_0x47a5('0x3a')]=_0x21ad34[_0x47a5('0x3a')][_0x47a5('0x3b')]?_0x21ad34[_0x47a5('0x3a')]:_0x3534cb[_0x47a5('0x33')];if(!_0x25cce0[_0x47a5('0x36')][_0x47a5('0x3c')](_0x47a5('0x3d'))){_0x21ad34[_0x47a5('0x29')]=qs[_0x47a5('0x29')](_0x25cce0['query'][_0x47a5('0x29')]);_0x21ad34[_0x47a5('0x28')]=qs[_0x47a5('0x28')](_0x25cce0[_0x47a5('0x36')]['offset']);}_0x21ad34[_0x47a5('0x3e')]=qs['sort'](_0x25cce0['query']['sort']);_0x21ad34['where']=qs[_0x47a5('0x37')](_['pick'](_0x25cce0[_0x47a5('0x36')],_0x3534cb[_0x47a5('0x37')]));if(_0x1a0d23[_0x47a5('0x35')]){if(_0x1a0d23['dateEnd']){_0x1a0d23[_0x47a5('0x3f')]=moment(_0x1a0d23[_0x47a5('0x3f')])['add'](0x1,'day');}else{_0x1a0d23[_0x47a5('0x3f')]=moment(_0x1a0d23['dateStart'])[_0x47a5('0x40')](0x1,_0x47a5('0x41'));}_[_0x47a5('0x42')](_0x21ad34[_0x47a5('0x43')],{'createdAt':{'$gte':_0x1a0d23[_0x47a5('0x35')],'$lte':_0x1a0d23[_0x47a5('0x3f')]}});}if(_0x25cce0[_0x47a5('0x36')][_0x47a5('0x44')]){_0x21ad34[_0x47a5('0x43')]=_[_0x47a5('0x42')](_0x21ad34[_0x47a5('0x43')],{'$or':_[_0x47a5('0x45')](_0x21ad34[_0x47a5('0x3a')],function(_0x3574d4){var _0x4e5e7={};_0x4e5e7[_0x3574d4]={'$like':'%'+_0x25cce0[_0x47a5('0x36')]['filter']+'%'};return _0x4e5e7;})});}_0x21ad34=_[_0x47a5('0x42')]({},_0x21ad34,_0x25cce0[_0x47a5('0x46')]);var _0x49eab1={'where':_0x21ad34['where']};return db[_0x47a5('0x31')]['count'](_0x49eab1)[_0x47a5('0x1a')](function(_0xd93e37){_0x38c8d4['count']=_0xd93e37;if(_0x25cce0['query'][_0x47a5('0x47')]){_0x21ad34['include']=[{'all':!![]}];}return db[_0x47a5('0x31')][_0x47a5('0x48')](_0x21ad34);})[_0x47a5('0x1a')](function(_0x3e12a7){_0x38c8d4[_0x47a5('0x49')]=_0x3e12a7;return _0x38c8d4;})[_0x47a5('0x1a')](respondWithFilteredResult(_0x5ef577,_0x21ad34))[_0x47a5('0x23')](handleError(_0x5ef577,null));};exports['show']=function(_0x48a0ef,_0x2dd1db){var _0x411230={'raw':![],'where':{'id':_0x48a0ef[_0x47a5('0x4a')]['id']}},_0x1163e3={};_0x1163e3[_0x47a5('0x33')]=_[_0x47a5('0x34')](db[_0x47a5('0x31')]['rawAttributes']);_0x1163e3[_0x47a5('0x36')]=_[_0x47a5('0x34')](_0x48a0ef[_0x47a5('0x36')]);_0x1163e3['filters']=_[_0x47a5('0x38')](_0x1163e3['model'],_0x1163e3[_0x47a5('0x36')]);_0x411230[_0x47a5('0x3a')]=_[_0x47a5('0x38')](_0x1163e3[_0x47a5('0x33')],qs['fields'](_0x48a0ef[_0x47a5('0x36')][_0x47a5('0x39')]));_0x411230[_0x47a5('0x3a')]=_0x411230[_0x47a5('0x3a')][_0x47a5('0x3b')]?_0x411230[_0x47a5('0x3a')]:_0x1163e3[_0x47a5('0x33')];if(_0x48a0ef['query'][_0x47a5('0x47')]){_0x411230[_0x47a5('0x4b')]=[{'all':!![]}];}_0x411230=_[_0x47a5('0x42')]({},_0x411230,_0x48a0ef[_0x47a5('0x46')]);return db[_0x47a5('0x31')][_0x47a5('0x4c')](_0x411230)['then'](handleEntityNotFound(_0x2dd1db,null))[_0x47a5('0x1a')](respondWithResult(_0x2dd1db,null))[_0x47a5('0x23')](handleError(_0x2dd1db,null));};exports[_0x47a5('0x4d')]=function(_0x53871e,_0x4c5ed){return db[_0x47a5('0x31')][_0x47a5('0x4d')](_0x53871e['body'],{})['then'](respondWithResult(_0x4c5ed,0xc9))[_0x47a5('0x23')](handleError(_0x4c5ed,null));};exports[_0x47a5('0x2d')]=function(_0x4fa1da,_0x4cf792){if(_0x4fa1da[_0x47a5('0x4e')]['id']){delete _0x4fa1da['body']['id'];}return db[_0x47a5('0x31')]['find']({'where':{'id':_0x4fa1da['params']['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x4cf792,null))[_0x47a5('0x1a')](saveUpdates(_0x4fa1da['body'],null))[_0x47a5('0x1a')](respondWithResult(_0x4cf792,null))[_0x47a5('0x23')](handleError(_0x4cf792,null));};exports['destroy']=function(_0x5b6127,_0x16b4fd){return db[_0x47a5('0x31')][_0x47a5('0x4c')]({'where':{'id':_0x5b6127[_0x47a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x16b4fd,null))[_0x47a5('0x1a')](removeEntity(_0x16b4fd,null))[_0x47a5('0x23')](handleError(_0x16b4fd,null));};exports[_0x47a5('0x4f')]=function(_0x5a33b8,_0x30ea7a){return db['OpenchannelAccount'][_0x47a5('0x4f')]()[_0x47a5('0x1a')](respondWithResult(_0x30ea7a,null))[_0x47a5('0x23')](handleError(_0x30ea7a,null));};exports[_0x47a5('0x50')]=function(_0x3603b7,_0x4966af,_0x144af9){if(_0x3603b7['body']['id']){delete _0x3603b7['body']['id'];}return db['OpenchannelAccount']['find']({'where':{'id':_0x3603b7[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x4966af,null))[_0x47a5('0x1a')](function(_0x52e3ee){if(_0x52e3ee){_0x3603b7['body'][_0x47a5('0x51')]=_0x52e3ee['id'];return db[_0x47a5('0x52')][_0x47a5('0x4d')](_0x3603b7[_0x47a5('0x4e')]);}})[_0x47a5('0x1a')](respondWithResult(_0x4966af,null))['catch'](handleError(_0x4966af,null));};exports[_0x47a5('0x53')]=function(_0x519e9e,_0x22c886,_0x274d31){var _0x4d545f={'raw':![],'where':{}};var _0x32b4de={};var _0x345104={'count':0x0,'rows':[]};return db[_0x47a5('0x31')][_0x47a5('0x54')]({'where':{'id':_0x519e9e[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x22c886,null))[_0x47a5('0x1a')](function(_0x3ac38c){if(_0x3ac38c){_0x32b4de['model']=_[_0x47a5('0x34')](db[_0x47a5('0x52')][_0x47a5('0x32')]);_0x32b4de[_0x47a5('0x36')]=_[_0x47a5('0x34')](_0x519e9e['query']);_0x32b4de[_0x47a5('0x37')]=_[_0x47a5('0x38')](_0x32b4de[_0x47a5('0x33')],_0x32b4de[_0x47a5('0x36')]);_0x4d545f[_0x47a5('0x3a')]=_[_0x47a5('0x38')](_0x32b4de[_0x47a5('0x33')],qs[_0x47a5('0x39')](_0x519e9e[_0x47a5('0x36')][_0x47a5('0x39')]));_0x4d545f[_0x47a5('0x3a')]=_0x4d545f[_0x47a5('0x3a')][_0x47a5('0x3b')]?_0x4d545f[_0x47a5('0x3a')]:_0x32b4de[_0x47a5('0x33')];if(!_0x519e9e['query'][_0x47a5('0x3c')](_0x47a5('0x3d'))){_0x4d545f[_0x47a5('0x29')]=qs['limit'](_0x519e9e[_0x47a5('0x36')][_0x47a5('0x29')]);_0x4d545f[_0x47a5('0x28')]=qs[_0x47a5('0x28')](_0x519e9e['query'][_0x47a5('0x28')]);}_0x4d545f['order']=qs[_0x47a5('0x55')](_0x519e9e['query'][_0x47a5('0x55')]);_0x4d545f['where']=qs[_0x47a5('0x37')](_[_0x47a5('0x56')](_0x519e9e[_0x47a5('0x36')],_0x32b4de['filters']));_0x4d545f['where']['OpenchannelAccountId']=_0x3ac38c['id'];if(_0x519e9e[_0x47a5('0x36')][_0x47a5('0x44')]){_0x4d545f[_0x47a5('0x43')]=_[_0x47a5('0x42')](_0x4d545f['where'],{'$or':_[_0x47a5('0x45')](_0x4d545f[_0x47a5('0x3a')],function(_0x390bc0){var _0xd5b23f={};_0xd5b23f[_0x390bc0]={'$like':'%'+_0x519e9e[_0x47a5('0x36')][_0x47a5('0x44')]+'%'};return _0xd5b23f;})});}_0x4d545f=_[_0x47a5('0x42')]({},_0x4d545f,_0x519e9e[_0x47a5('0x46')]);return db[_0x47a5('0x52')][_0x47a5('0x27')]({'where':_0x4d545f[_0x47a5('0x43')]})[_0x47a5('0x1a')](function(_0x49d3dc){_0x345104[_0x47a5('0x27')]=_0x49d3dc;if(_0x519e9e['query'][_0x47a5('0x47')]){_0x4d545f[_0x47a5('0x4b')]=[{'all':!![]}];}return db[_0x47a5('0x52')][_0x47a5('0x48')](_0x4d545f);})[_0x47a5('0x1a')](function(_0xa9c853){_0x345104[_0x47a5('0x49')]=_0xa9c853;return _0x345104;});}})[_0x47a5('0x1a')](respondWithFilteredResult(_0x22c886,_0x4d545f))[_0x47a5('0x23')](handleError(_0x22c886,null));};exports[_0x47a5('0x57')]=function(_0x1cfb37,_0x1f07ac,_0x8f0035){var _0x2d434c;return db[_0x47a5('0x31')]['find']({'where':{'id':_0x1cfb37['params']['id']}})['then'](handleEntityNotFound(_0x1f07ac,null))['then'](function(_0x490e28){if(_0x490e28){return _0x490e28[_0x47a5('0x57')](_0x1cfb37['query'][_0x47a5('0x58')]);}})[_0x47a5('0x1a')](respondWithStatusCode(_0x1f07ac,null))[_0x47a5('0x23')](handleError(_0x1f07ac,null));};exports[_0x47a5('0x59')]=function(_0x3cd335,_0x930d25,_0x218dfa){if(_0x3cd335[_0x47a5('0x4e')]['id']){delete _0x3cd335[_0x47a5('0x4e')]['id'];}return db[_0x47a5('0x31')][_0x47a5('0x4c')]({'where':{'id':_0x3cd335['params']['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x930d25,null))[_0x47a5('0x1a')](function(_0x420671){if(_0x420671){_0x3cd335['body'][_0x47a5('0x5a')]=_0x420671['id'];return db[_0x47a5('0x5b')][_0x47a5('0x4d')](_0x3cd335['body']);}})[_0x47a5('0x1a')](respondWithResult(_0x930d25,null))['catch'](handleError(_0x930d25,null));};exports['getAnswers']=function(_0x356e16,_0x292d9c,_0x277486){var _0x27333e={'raw':![],'where':{}};var _0x164d42={};var _0xea50f3={'count':0x0,'rows':[]};return db['OpenchannelAccount']['findOne']({'where':{'id':_0x356e16[_0x47a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x292d9c,null))[_0x47a5('0x1a')](function(_0x3fffd1){if(_0x3fffd1){_0x164d42[_0x47a5('0x33')]=_[_0x47a5('0x34')](db['CannedAnswer'][_0x47a5('0x32')]);_0x164d42['query']=_['keys'](_0x356e16[_0x47a5('0x36')]);_0x164d42[_0x47a5('0x37')]=_['intersection'](_0x164d42[_0x47a5('0x33')],_0x164d42[_0x47a5('0x36')]);_0x27333e[_0x47a5('0x3a')]=_['intersection'](_0x164d42[_0x47a5('0x33')],qs['fields'](_0x356e16[_0x47a5('0x36')][_0x47a5('0x39')]));_0x27333e[_0x47a5('0x3a')]=_0x27333e['attributes'][_0x47a5('0x3b')]?_0x27333e[_0x47a5('0x3a')]:_0x164d42[_0x47a5('0x33')];if(!_0x356e16['query'][_0x47a5('0x3c')]('nolimit')){_0x27333e[_0x47a5('0x29')]=qs['limit'](_0x356e16[_0x47a5('0x36')][_0x47a5('0x29')]);_0x27333e[_0x47a5('0x28')]=qs[_0x47a5('0x28')](_0x356e16['query'][_0x47a5('0x28')]);}_0x27333e[_0x47a5('0x3e')]=qs[_0x47a5('0x55')](_0x356e16[_0x47a5('0x36')][_0x47a5('0x55')]);_0x27333e['where']=qs['filters'](_[_0x47a5('0x56')](_0x356e16['query'],_0x164d42[_0x47a5('0x37')]));_0x27333e[_0x47a5('0x43')][_0x47a5('0x5a')]=_0x3fffd1['id'];if(_0x356e16['query'][_0x47a5('0x44')]){_0x27333e[_0x47a5('0x43')]=_['merge'](_0x27333e[_0x47a5('0x43')],{'$or':_[_0x47a5('0x45')](_0x27333e[_0x47a5('0x3a')],function(_0x113beb){var _0x58dacd={};_0x58dacd[_0x113beb]={'$like':'%'+_0x356e16['query'][_0x47a5('0x44')]+'%'};return _0x58dacd;})});}_0x27333e=_[_0x47a5('0x42')]({},_0x27333e,_0x356e16['options']);return db[_0x47a5('0x5b')][_0x47a5('0x27')]({'where':_0x27333e['where']})[_0x47a5('0x1a')](function(_0x2a02cd){_0xea50f3[_0x47a5('0x27')]=_0x2a02cd;if(_0x356e16['query'][_0x47a5('0x47')]){_0x27333e['include']=[{'all':!![]}];}return db[_0x47a5('0x5b')]['findAll'](_0x27333e);})[_0x47a5('0x1a')](function(_0x3c620e){_0xea50f3['rows']=_0x3c620e;return _0xea50f3;});}})[_0x47a5('0x1a')](respondWithFilteredResult(_0x292d9c,_0x27333e))['catch'](handleError(_0x292d9c,null));};exports[_0x47a5('0x5c')]=function(_0x36f619,_0x37e045,_0x2be771){var _0x49b76a;return db[_0x47a5('0x31')]['find']({'where':{'id':_0x36f619['params']['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x37e045,null))[_0x47a5('0x1a')](function(_0x352238){if(_0x352238){return _0x352238[_0x47a5('0x5c')](_0x36f619[_0x47a5('0x36')]['ids']);}})[_0x47a5('0x1a')](respondWithStatusCode(_0x37e045,null))[_0x47a5('0x23')](handleError(_0x37e045,null));};exports[_0x47a5('0x5d')]=function(_0x11b68b,_0x50b98e,_0x240db9){var _0x4af162={'body':_0x11b68b[_0x47a5('0x4e')],'channel':_0x47a5('0x5e')};var _0x3f93f0=[];var _0x18a4c4=[];var _0x29a1cf={};var _0x3ec264=![];return db[_0x47a5('0x5f')][_0x47a5('0x4f')]()[_0x47a5('0x1a')](function(_0x583746){if(!_0x583746){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))]('no\x20available\x20attributes');}_0x3f93f0=_[_0x47a5('0x62')](_[_0x47a5('0x34')](_0x583746),[_0x47a5('0x63'),'updatedAt']);_0x18a4c4=_['difference'](_[_0x47a5('0x34')](_0x583746),[_0x47a5('0x63'),'updatedAt','CompanyId',_0x47a5('0x64')]);if(_0x11b68b[_0x47a5('0x4e')]['id']){delete _0x11b68b['body']['id'];}if(_[_0x47a5('0x65')](_0x11b68b[_0x47a5('0x4e')]['from'])){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))](_0x47a5('0x66'));}if(_[_0x47a5('0x65')](_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x4e')])||_0x11b68b['body']['body']===''){throw new db['Sequelize'][(_0x47a5('0x61'))](_0x47a5('0x67'));}if(_['isNil'](_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x68')])){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))](_0x47a5('0x69')+_0x18a4c4);}if(!_['includes'](_0x18a4c4,_0x11b68b[_0x47a5('0x4e')]['mapKey'])){throw new db['Sequelize']['ValidationError'](_0x47a5('0x6a')+_0x18a4c4);}_0x29a1cf[_0x11b68b['body'][_0x47a5('0x68')]]=_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x6b')];})['then'](function(){return db[_0x47a5('0x31')][_0x47a5('0x4c')]({'where':{'id':_0x11b68b[_0x47a5('0x4a')]['id']},'include':[{'model':db[_0x47a5('0x6c')],'as':_0x47a5('0x6d'),'include':[{'model':db['CmContact'],'as':_0x47a5('0x6e'),'where':_0x29a1cf,'limit':0x1,'order':[[_0x47a5('0x6f'),'DESC']]}]},{'model':db[_0x47a5('0x70')],'as':_0x47a5('0x71')}]});})[_0x47a5('0x1a')](handleEntityNotFound(_0x50b98e,null))[_0x47a5('0x1a')](function(_0x3c117a){if(_0x3c117a&&_0x3c117a[_0x47a5('0x6d')]){_0x4af162['account']=_0x3c117a;_0x4af162[_0x47a5('0x72')]=_0x3c117a[_0x47a5('0x71')];_0x4af162['list']=_0x3c117a[_0x47a5('0x6d')];_0x4af162[_0x47a5('0x72')]=_[_0x47a5('0x73')](_0x4af162[_0x47a5('0x72')],['priority'],['asc']);if(_0x4af162['account']['Applications']){delete _0x4af162[_0x47a5('0x74')][_0x47a5('0x71')];}if(_0x4af162[_0x47a5('0x74')][_0x47a5('0x6d')]&&_0x4af162[_0x47a5('0x74')][_0x47a5('0x6d')][_0x47a5('0x6e')][_0x47a5('0x3b')]){return _0x4af162['account'][_0x47a5('0x6d')][_0x47a5('0x6e')][0x0];}var _0x2eef05=_[_0x47a5('0x12')](_0x11b68b['body'],{'firstName':_0x11b68b['body'][_0x47a5('0x6b')],'ListId':_0x3c117a['ListId']});_0x2eef05[_0x11b68b['body'][_0x47a5('0x68')]]=_0x11b68b[_0x47a5('0x4e')]['from'];return db[_0x47a5('0x5f')][_0x47a5('0x4d')](_0x2eef05,{'fields':_0x3f93f0,'raw':!![]});}})[_0x47a5('0x1a')](handleEntityNotFound(_0x50b98e,null))['then'](function(_0x740bdf){_0x4af162[_0x47a5('0x75')]=_0x740bdf;if(_0x740bdf){var _0x48a491={'ContactId':_0x740bdf['id'],'OpenchannelAccountId':_0x11b68b[_0x47a5('0x4a')]['id'],'from':(_0x740bdf[_0x47a5('0x76')]||'')+'\x20'+(_0x740bdf[_0x47a5('0x77')]||'')};var _0x311109={'OpenchannelAccountId':_0x11b68b[_0x47a5('0x4a')]['id'],'closed':![]};if(_0x11b68b[_0x47a5('0x4e')]['threadId']){_0x311109[_0x47a5('0x78')]=_0x11b68b['body'][_0x47a5('0x78')];return db[_0x47a5('0x79')][_0x47a5('0x4c')]({'where':_0x311109})[_0x47a5('0x1a')](function(_0x522972){if(_0x522972){return[_0x522972,![]];}_0x48a491[_0x47a5('0x78')]=_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x78')];_0x48a491[_0x47a5('0x7a')]=_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x7a')];return db[_0x47a5('0x79')][_0x47a5('0x4d')](_0x48a491)[_0x47a5('0x1a')](function(_0xa2045c){return[_0xa2045c,!![]];});});}else{_0x311109[_0x47a5('0x78')]=null;}_0x311109[_0x47a5('0x7b')]=_0x740bdf['id'];return db['OpenchannelInteraction'][_0x47a5('0x4c')]({'where':_0x311109})[_0x47a5('0x1a')](function(_0x591bde){if(_0x591bde){return[_0x591bde,![]];}return db[_0x47a5('0x79')][_0x47a5('0x4d')](_0x48a491)[_0x47a5('0x1a')](function(_0x2ccf21){return[_0x2ccf21,!![]];});});}})[_0x47a5('0x7c')](function(_0x58fac0,_0x2dee0d){if(_0x58fac0){_0x3ec264=_0x2dee0d;if(!_0x2dee0d){return _0x58fac0[_0x47a5('0x2d')]({'from':(_0x4af162[_0x47a5('0x75')][_0x47a5('0x76')]||'')+'\x20'+(_0x4af162[_0x47a5('0x75')][_0x47a5('0x77')]||'')});}else{return _0x58fac0;}}})[_0x47a5('0x1a')](function(_0x5e4387){_0x4af162['interaction']=_0x5e4387[_0x47a5('0x7d')]({'plain':!![]});_0x4af162['interaction'][_0x47a5('0x7e')]=_0x3ec264;if(_0x4af162['interaction'][_0x47a5('0x7e')]){if(_0x4af162[_0x47a5('0x74')][_0x47a5('0x7f')]){_0x4af162[_0x47a5('0x72')]['push']({'id':0x0,'priority':_0x4af162[_0x47a5('0x72')][_0x47a5('0x3b')]+0x1,'app':_0x47a5('0x80'),'appdata':'unmanaged','interval':'*,*,*,*'});}}return db[_0x47a5('0x81')][_0x47a5('0x4d')]({'body':_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x4e')],'OpenchannelAccountId':_0x11b68b[_0x47a5('0x4a')]['id'],'OpenchannelInteractionId':_0x5e4387['id'],'direction':'in','ContactId':_0x4af162[_0x47a5('0x75')]['id'],'AttachmentId':_0x11b68b[_0x47a5('0x4e')][_0x47a5('0x82')]});})['then'](function(_0x38d101){_0x4af162['message']=_0x38d101;if(_0x4af162[_0x47a5('0x83')][_0x47a5('0x84')]){return db['User']['find']({'attributes':['id',_0x47a5('0x2f')],'where':{'id':_0x4af162[_0x47a5('0x83')]['UserId']}})[_0x47a5('0x1a')](function(_0x2b2693){if(_0x2b2693){_0x4af162[_0x47a5('0x72')][_0x47a5('0x85')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2b2693[_0x47a5('0x2f')]+','+(_0x4af162['account']['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});_0x4af162[_0x47a5('0x86')]=![];}return respondWithRpcPromise('Start',_0x47a5('0x87'),_0x4af162);});}return respondWithRpcPromise(_0x47a5('0x88'),_0x47a5('0x87'),_0x4af162);})[_0x47a5('0x1a')](function(_0x267d40){respondWithRpcPromise(_0x47a5('0x89'),_0x47a5('0x89'),{'event':_0x47a5('0x5d'),'message':_0x267d40},client9002);return _0x267d40;})[_0x47a5('0x1a')](respondWithResult(_0x50b98e,null))[_0x47a5('0x23')](handleError(_0x50b98e,null));};exports[_0x47a5('0x8a')]=function(_0xf05c39,_0x328faa,_0x1bfa3b){return db[_0x47a5('0x31')]['findOne']({'where':{'id':_0xf05c39[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x328faa,null))[_0x47a5('0x1a')](function(_0x2fa5e3){if(_0x2fa5e3){return db['sequelize'][_0x47a5('0x8b')](function(_0x49998b){return db[_0x47a5('0x70')]['destroy']({'where':{'OpenchannelAccountId':_0xf05c39[_0x47a5('0x4a')]['id']},'transaction':_0x49998b})[_0x47a5('0x1a')](function(_0x3b894d){var _0x5c20aa=_[_0x47a5('0x45')](_0xf05c39[_0x47a5('0x4e')],function(_0x14771b){_0x14771b['OpenchannelAccountId']=_0xf05c39['params']['id'];return _0x14771b;});return db[_0x47a5('0x70')][_0x47a5('0x8c')](_0x5c20aa,{'transaction':_0x49998b});});})[_0x47a5('0x1a')](function(){return db[_0x47a5('0x70')][_0x47a5('0x8d')]({'where':{'OpenchannelAccountId':_0xf05c39['params']['id']},'order':_0x47a5('0x8e')});});}})['then'](respondWithResult(_0x328faa,null))[_0x47a5('0x23')](handleError(_0x328faa,null));};exports[_0x47a5('0x8f')]=function(_0x46647f,_0x2d6ae7,_0x5b18a2){var _0x4dc67c={};var _0x1a054e={};var _0x20034a;var _0x291383;return db[_0x47a5('0x31')][_0x47a5('0x54')]({'where':{'id':_0x46647f[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x2d6ae7,null))[_0x47a5('0x1a')](function(_0x2c2245){if(_0x2c2245){_0x20034a=_0x2c2245;_0x1a054e['model']=_['keys'](db[_0x47a5('0x70')]['rawAttributes']);_0x1a054e[_0x47a5('0x36')]=_[_0x47a5('0x34')](_0x46647f[_0x47a5('0x36')]);_0x1a054e['filters']=_[_0x47a5('0x38')](_0x1a054e[_0x47a5('0x33')],_0x1a054e['query']);_0x4dc67c[_0x47a5('0x3a')]=_['intersection'](_0x1a054e[_0x47a5('0x33')],qs[_0x47a5('0x39')](_0x46647f[_0x47a5('0x36')]['fields']));_0x4dc67c['attributes']=_0x4dc67c['attributes']['length']?_0x4dc67c['attributes']:_0x1a054e[_0x47a5('0x33')];_0x4dc67c['order']=qs[_0x47a5('0x55')](_0x46647f[_0x47a5('0x36')]['sort']);_0x4dc67c['where']=qs['filters'](_[_0x47a5('0x56')](_0x46647f['query'],_0x1a054e['filters']));if(_0x46647f['query'][_0x47a5('0x44')]){_0x4dc67c[_0x47a5('0x43')]=_[_0x47a5('0x42')](_0x4dc67c[_0x47a5('0x43')],{'$or':_['map'](_0x4dc67c[_0x47a5('0x3a')],function(_0x559943){var _0x2b6f9e={};_0x2b6f9e[_0x559943]={'$like':'%'+_0x46647f['query'][_0x47a5('0x44')]+'%'};return _0x2b6f9e;})});}_0x4dc67c=_[_0x47a5('0x42')]({},_0x4dc67c,_0x46647f[_0x47a5('0x46')]);return _0x20034a['getApplications'](_0x4dc67c);}})[_0x47a5('0x1a')](function(_0x427c02){if(_0x427c02){_0x291383=_0x427c02[_0x47a5('0x3b')];if(!_0x46647f[_0x47a5('0x36')]['hasOwnProperty'](_0x47a5('0x3d'))){_0x4dc67c[_0x47a5('0x29')]=qs[_0x47a5('0x29')](_0x46647f[_0x47a5('0x36')][_0x47a5('0x29')]);_0x4dc67c[_0x47a5('0x28')]=qs['offset'](_0x46647f[_0x47a5('0x36')][_0x47a5('0x28')]);}return _0x20034a[_0x47a5('0x8f')](_0x4dc67c);}})[_0x47a5('0x1a')](function(_0x226b87){if(_0x226b87){return _0x226b87?{'count':_0x291383,'rows':_0x226b87}:null;}})[_0x47a5('0x1a')](respondWithResult(_0x2d6ae7,null))[_0x47a5('0x23')](handleError(_0x2d6ae7,null));};exports[_0x47a5('0x90')]=function(_0x408887,_0x34fde3,_0x406875){var _0x3d9946={'raw':![],'where':{}};var _0x40dab1={};var _0x106b70={'count':0x0,'rows':[]};return db[_0x47a5('0x31')][_0x47a5('0x54')]({'where':{'id':_0x408887[_0x47a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x34fde3,null))[_0x47a5('0x1a')](function(_0x5ee5c5){if(_0x5ee5c5){_0x40dab1['model']=_[_0x47a5('0x34')](db[_0x47a5('0x79')][_0x47a5('0x32')]);_0x40dab1['query']=_[_0x47a5('0x34')](_0x408887[_0x47a5('0x36')]);_0x40dab1[_0x47a5('0x37')]=_[_0x47a5('0x38')](_0x40dab1[_0x47a5('0x33')],_0x40dab1[_0x47a5('0x36')]);_0x3d9946[_0x47a5('0x3a')]=_[_0x47a5('0x38')](_0x40dab1[_0x47a5('0x33')],qs[_0x47a5('0x39')](_0x408887[_0x47a5('0x36')][_0x47a5('0x39')]));_0x3d9946[_0x47a5('0x3a')]=_0x3d9946['attributes']['length']?_0x3d9946[_0x47a5('0x3a')]:_0x40dab1['model'];if(!_0x408887[_0x47a5('0x36')][_0x47a5('0x3c')](_0x47a5('0x3d'))){_0x3d9946[_0x47a5('0x29')]=qs[_0x47a5('0x29')](_0x408887[_0x47a5('0x36')]['limit']);_0x3d9946[_0x47a5('0x28')]=qs[_0x47a5('0x28')](_0x408887[_0x47a5('0x36')]['offset']);}_0x3d9946[_0x47a5('0x3e')]=qs[_0x47a5('0x55')](_0x408887[_0x47a5('0x36')][_0x47a5('0x55')]);_0x3d9946[_0x47a5('0x43')]=qs[_0x47a5('0x37')](_[_0x47a5('0x56')](_0x408887[_0x47a5('0x36')],_0x40dab1[_0x47a5('0x37')]));_0x3d9946[_0x47a5('0x43')][_0x47a5('0x5a')]=_0x5ee5c5['id'];if(_0x408887[_0x47a5('0x36')][_0x47a5('0x44')]){_0x3d9946[_0x47a5('0x43')]=_[_0x47a5('0x42')](_0x3d9946[_0x47a5('0x43')],{'$or':_[_0x47a5('0x45')](_0x3d9946[_0x47a5('0x3a')],function(_0x2ee27c){var _0x25ce6b={};_0x25ce6b[_0x2ee27c]={'$like':'%'+_0x408887[_0x47a5('0x36')][_0x47a5('0x44')]+'%'};return _0x25ce6b;})});}_0x3d9946=_['merge']({},_0x3d9946,_0x408887[_0x47a5('0x46')]);return db['OpenchannelInteraction'][_0x47a5('0x27')]({'where':_0x3d9946[_0x47a5('0x43')]})[_0x47a5('0x1a')](function(_0x2a7e1e){_0x106b70[_0x47a5('0x27')]=_0x2a7e1e;if(_0x408887[_0x47a5('0x36')][_0x47a5('0x47')]){_0x3d9946[_0x47a5('0x4b')]=[{'model':db['CmContact'],'as':_0x47a5('0x91'),'required':![]},{'model':db[_0x47a5('0x92')],'as':_0x47a5('0x93'),'attributes':['name',_0x47a5('0x94'),_0x47a5('0x95')],'required':![]},{'model':db[_0x47a5('0x96')],'as':_0x47a5('0x97'),'attributes':['id','name',_0x47a5('0x98')],'where':_0x408887[_0x47a5('0x36')][_0x47a5('0x99')]?{'id':_0x408887[_0x47a5('0x36')]['tag']}:undefined,'required':_0x408887[_0x47a5('0x36')]['tag']?!![]:![]}];}return db['OpenchannelInteraction'][_0x47a5('0x48')](_0x3d9946);})[_0x47a5('0x1a')](function(_0x407fd2){_0x106b70[_0x47a5('0x49')]=_0x407fd2;return _0x106b70;});}})['then'](respondWithFilteredResult(_0x34fde3,_0x3d9946))[_0x47a5('0x23')](handleError(_0x34fde3,null));};exports[_0x47a5('0x9a')]=function(_0x1dea09,_0x26f5e5,_0xf470f5){return db[_0x47a5('0x31')]['find']({'where':{'id':_0x1dea09[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x26f5e5,null))[_0x47a5('0x1a')](function(_0x3f18a2){if(_0x3f18a2){return _0x3f18a2[_0x47a5('0x9a')](_0x1dea09['body'][_0x47a5('0x58')],_['omit'](_0x1dea09[_0x47a5('0x4e')],['ids','id'])||{})[_0x47a5('0x7c')](function(_0x5d9852){for(var _0x56a3c4=0x0;_0x56a3c4<_0x1dea09[_0x47a5('0x4e')][_0x47a5('0x58')]['length'];_0x56a3c4+=0x1){socket[_0x47a5('0x9b')](_0x47a5('0x9c'),{'UserId':_0x1dea09['body'][_0x47a5('0x58')][_0x56a3c4],'OpenchannelAccountId':_0x1dea09[_0x47a5('0x4a')]['id']});}return _0x5d9852;});}})[_0x47a5('0x1a')](respondWithResult(_0x26f5e5,null))['catch'](handleError(_0x26f5e5,null));};exports[_0x47a5('0x9d')]=function(_0x3b83ec,_0x2c3d6a,_0x30b0f9){var _0x37721c;return db['OpenchannelAccount']['find']({'where':{'id':_0x3b83ec[_0x47a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2c3d6a,null))[_0x47a5('0x1a')](function(_0xa5e1f6){if(_0xa5e1f6){return _0xa5e1f6['removeAgents'](_0x3b83ec['query'][_0x47a5('0x58')])['then'](function(_0x1e38ce){if(_[_0x47a5('0x9e')](_0x3b83ec[_0x47a5('0x36')][_0x47a5('0x58')])){for(var _0x14a6ac=0x0;_0x14a6ac<_0x3b83ec[_0x47a5('0x36')][_0x47a5('0x58')]['length'];_0x14a6ac+=0x1){socket[_0x47a5('0x9b')]('userOpenchannelAccount:remove',{'UserId':_0x3b83ec[_0x47a5('0x36')][_0x47a5('0x58')][_0x14a6ac],'OpenchannelAccountId':_0x3b83ec[_0x47a5('0x4a')]['id']});}}else{socket[_0x47a5('0x9b')](_0x47a5('0x9f'),{'UserId':_0x3b83ec[_0x47a5('0x36')][_0x47a5('0x58')],'OpenchannelAccountId':_0x3b83ec[_0x47a5('0x4a')]['id']});}});}})[_0x47a5('0x1a')](respondWithStatusCode(_0x2c3d6a,null))[_0x47a5('0x23')](handleError(_0x2c3d6a,null));};exports[_0x47a5('0xa0')]=function(_0x10d404,_0x4d5b80,_0x37b713){var _0x2a34d8={};var _0x4014f4={};var _0x50b111;var _0x28130a;return db[_0x47a5('0x31')][_0x47a5('0x54')]({'where':{'id':_0x10d404[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0x4d5b80,null))[_0x47a5('0x1a')](function(_0x482809){if(_0x482809){_0x50b111=_0x482809;_0x4014f4[_0x47a5('0x33')]=_[_0x47a5('0x34')](db[_0x47a5('0x92')][_0x47a5('0x32')]);_0x4014f4[_0x47a5('0x36')]=_[_0x47a5('0x34')](_0x10d404[_0x47a5('0x36')]);_0x4014f4[_0x47a5('0x37')]=_[_0x47a5('0x38')](_0x4014f4[_0x47a5('0x33')],_0x4014f4['query']);_0x2a34d8['attributes']=_[_0x47a5('0x38')](_0x4014f4[_0x47a5('0x33')],qs[_0x47a5('0x39')](_0x10d404['query'][_0x47a5('0x39')]));_0x2a34d8['attributes']=_0x2a34d8['attributes'][_0x47a5('0x3b')]?_0x2a34d8[_0x47a5('0x3a')]:_0x4014f4[_0x47a5('0x33')];_0x2a34d8[_0x47a5('0x3e')]=qs['sort'](_0x10d404[_0x47a5('0x36')][_0x47a5('0x55')]);_0x2a34d8['where']=qs['filters'](_['pick'](_0x10d404[_0x47a5('0x36')],_0x4014f4[_0x47a5('0x37')]));if(_0x10d404[_0x47a5('0x36')][_0x47a5('0x44')]){_0x2a34d8[_0x47a5('0x43')]=_['merge'](_0x2a34d8['where'],{'$or':_[_0x47a5('0x45')](_0x2a34d8[_0x47a5('0x3a')],function(_0x3a0c7b){var _0x1ca53c={};_0x1ca53c[_0x3a0c7b]={'$like':'%'+_0x10d404['query'][_0x47a5('0x44')]+'%'};return _0x1ca53c;})});}_0x2a34d8=_[_0x47a5('0x42')]({},_0x2a34d8,_0x10d404[_0x47a5('0x46')]);return _0x50b111[_0x47a5('0xa0')](_0x2a34d8);}})['then'](function(_0x528402){if(_0x528402){_0x28130a=_0x528402['length'];if(!_0x10d404[_0x47a5('0x36')][_0x47a5('0x3c')](_0x47a5('0x3d'))){_0x2a34d8[_0x47a5('0x29')]=qs[_0x47a5('0x29')](_0x10d404[_0x47a5('0x36')][_0x47a5('0x29')]);_0x2a34d8[_0x47a5('0x28')]=qs[_0x47a5('0x28')](_0x10d404['query'][_0x47a5('0x28')]);}return _0x50b111[_0x47a5('0xa0')](_0x2a34d8);}})['then'](function(_0x34ff37){if(_0x34ff37){return _0x34ff37?{'count':_0x28130a,'rows':_0x34ff37}:null;}})[_0x47a5('0x1a')](respondWithResult(_0x4d5b80,null))[_0x47a5('0x23')](handleError(_0x4d5b80,null));};exports[_0x47a5('0x30')]=function(_0x4f22f5,_0xbf131c,_0xd3a9ae){var _0x441770,_0x51e2c0,_0x5da197;if(_[_0x47a5('0x65')](_0x4f22f5['body'][_0x47a5('0x4e')])||_0x4f22f5['body'][_0x47a5('0x4e')]===''){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))](_0x47a5('0x67'));}if(_[_0x47a5('0x65')](_0x4f22f5['body']['to'])){}_0x441770=_0x4f22f5['body']['to'];return db[_0x47a5('0x31')][_0x47a5('0x54')]({'where':{'id':_0x4f22f5[_0x47a5('0x4a')]['id']}})[_0x47a5('0x1a')](handleEntityNotFound(_0xbf131c,null))['then'](function(_0x51f746){if(_0x51f746){return db[_0x47a5('0x31')]['find']({'where':{'id':_0x51f746['id']},'include':[{'model':db[_0x47a5('0x6c')],'as':'List','include':[{'model':db[_0x47a5('0x5f')],'as':'Contacts','where':{[_0x51f746[_0x47a5('0x68')]]:_0x441770},'limit':0x1,'order':[[_0x47a5('0x6f'),_0x47a5('0xa1')]]}]}]})[_0x47a5('0x1a')](handleEntityNotFound(_0xbf131c,null))[_0x47a5('0x1a')](function(_0x3b3e89){if(_0x3b3e89&&_0x3b3e89[_0x47a5('0x6d')]){_0x51e2c0=_0x3b3e89[_0x47a5('0x7d')]({'plain':!![]});if(_0x51e2c0['List']&&_0x51e2c0[_0x47a5('0x6d')][_0x47a5('0x6e')]['length']){return _0x51e2c0[_0x47a5('0x6d')][_0x47a5('0x6e')][0x0];}return db['CmContact']['create'](_[_0x47a5('0x12')](_0x4f22f5['body'],{'firstName':_0x441770,[_0x3b3e89[_0x47a5('0x68')]]:_0x441770,'phone':_0x441770,'ListId':_0x51e2c0[_0x47a5('0x64')]}));}})[_0x47a5('0x1a')](handleEntityNotFound(_0xbf131c,null))['then'](function(_0x106f4c){if(_0x106f4c){_0x5da197=_0x106f4c;return db[_0x47a5('0x79')][_0x47a5('0x4c')]({'where':{'ContactId':_0x5da197['id'],'closed':![],'OpenchannelAccountId':_0x51e2c0['id']}})[_0x47a5('0x1a')](function(_0x19c824){if(_0x19c824){return[_0x19c824,![]];}return db[_0x47a5('0x79')][_0x47a5('0x4d')]({'UserId':_0x4f22f5['user']['id'],'ContactId':_0x5da197['id'],'OpenchannelAccountId':_0x51e2c0['id'],'lastMsgDirection':_0x47a5('0xa2'),'Messages':[_[_0x47a5('0x42')](_0x4f22f5[_0x47a5('0x4e')],{'read':![],'body':_0x4f22f5[_0x47a5('0x4e')][_0x47a5('0x4e')],'OpenchannelAccountId':_0x51e2c0['id'],'UserId':_0x4f22f5[_0x47a5('0xa3')]['id'],'ContactId':_0x5da197['id']})]},{'include':[{'model':db[_0x47a5('0x81')],'as':'Messages'}]})['then'](function(_0x11d87b){return[_0x11d87b,!![]];});});}})[_0x47a5('0x7c')](function(_0x2d0c51,_0x4bbc94){if(_0x4bbc94){return _0x2d0c51;}return db['OpenchannelMessage'][_0x47a5('0x4d')](_[_0x47a5('0x42')](_0x4f22f5[_0x47a5('0x4e')],{'read':![],'body':_0x4f22f5[_0x47a5('0x4e')][_0x47a5('0x4e')],'OpenchannelAccountId':_0x51e2c0['id'],'OpenchannelInteractionId':_0x2d0c51['id'],'UserId':_0x4f22f5[_0x47a5('0xa3')]['id'],'ContactId':_0x5da197['id']}))[_0x47a5('0x1a')](function(_0x58e85b){_0x2d0c51[_0x47a5('0xa4')][_0x47a5('0xa5')]=[];_0x2d0c51[_0x47a5('0xa4')]['Messages'][_0x47a5('0xa6')](_0x58e85b[_0x47a5('0xa4')]);return _0x2d0c51;});});}})[_0x47a5('0x1a')](respondWithResult(_0xbf131c,null))[_0x47a5('0x23')](handleError(_0xbf131c,null));};
\ No newline at end of file
+var _0xf07b=['findAndCountAll','getApplications','getInteractions','Contact','Tag','Tags','color','tag','addAgents','omit','emit','userOpenchannelAccount:save','removeAgents','userOpenchannelAccount:remove','getAgents','user','out','Messages','dataValues','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','./openchannelAccount.socket','register','http','client','request','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','sendStatus','status','end','limit','set','Content-Range','json','apply','update','then','destroy','name','send','index','rawAttributes','keys','query','dateStart','dateEnd','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','filters','add','day','filter','merge','map','options','OpenchannelAccount','count','includeAll','include','findAll','rows','catch','show','find','create','body','params','describe','addDisposition','Disposition','findOne','OpenchannelAccountId','removeDispositions','ids','CannedAnswer','getAnswers','removeAnswers','notify','openchannel','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','from','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','OpenchannelApplication','Applications','applications','list','orderBy','priority','asc','account','contact','firstName','lastName','threadId','externalUrl','ContactId','OpenchannelInteraction','spread','interaction','get','created','push','close','unmanaged','*,*,*,*','OpenchannelMessage','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','addApplications','sequelize'];(function(_0x142c3c,_0x4a1c1d){var _0x2497cb=function(_0x57b333){while(--_0x57b333){_0x142c3c['push'](_0x142c3c['shift']());}};_0x2497cb(++_0x4a1c1d);}(_0xf07b,0x179));var _0xbf07=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf07b[_0x321bb2];return _0x9c12ed;};'use strict';var pdf=require(_0xbf07('0x0'));var emlformat=require(_0xbf07('0x1'));var rimraf=require(_0xbf07('0x2'));var zipdir=require(_0xbf07('0x3'));var jsonpatch=require(_0xbf07('0x4'));var rp=require(_0xbf07('0x5'));var moment=require('moment');var BPromise=require(_0xbf07('0x6'));var Mustache=require(_0xbf07('0x7'));var util=require(_0xbf07('0x8'));var path=require(_0xbf07('0x9'));var sox=require(_0xbf07('0xa'));var csv=require(_0xbf07('0xb'));var ejs=require(_0xbf07('0xc'));var fs=require('fs');var _=require(_0xbf07('0xd'));var squel=require(_0xbf07('0xe'));var crypto=require(_0xbf07('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xbf07('0x10'));var toCsv=require(_0xbf07('0xb'));var querystring=require('querystring');var Papa=require(_0xbf07('0x11'));var Redis=require(_0xbf07('0x12'));var qs=require(_0xbf07('0x13'));var logger=require(_0xbf07('0x14'))(_0xbf07('0x15'));var utils=require(_0xbf07('0x16'));var config=require('../../config/environment');var db=require(_0xbf07('0x17'))['db'];config[_0xbf07('0x18')]=_[_0xbf07('0x19')](config[_0xbf07('0x18')],{'host':_0xbf07('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbf07('0x18')]));require(_0xbf07('0x1b'))[_0xbf07('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0xbf07('0x1d')]({'port':0x232c});var client9002=jayson[_0xbf07('0x1e')][_0xbf07('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x42546f,_0x4c3320,_0x4f7786,_0x61492a){return new BPromise(function(_0x335e3b,_0x276573){var _0x5786fb=_0x61492a||client;return _0x5786fb[_0xbf07('0x1f')](_0x42546f,_0x4f7786)['then'](function(_0x32858d){logger['info'](_0xbf07('0x20'),_0x4c3320,_0xbf07('0x21'));logger[_0xbf07('0x22')](_0xbf07('0x23'),_0x4c3320,_0xbf07('0x21'),JSON[_0xbf07('0x24')](_0x32858d));if(_0x32858d[_0xbf07('0x25')]){if(_0x32858d['error'][_0xbf07('0x26')]===0x1f4){logger[_0xbf07('0x25')](_0xbf07('0x20'),_0x4c3320,_0x32858d[_0xbf07('0x25')][_0xbf07('0x27')]);return _0x276573(_0x32858d[_0xbf07('0x25')][_0xbf07('0x27')]);}logger[_0xbf07('0x25')](_0xbf07('0x20'),_0x4c3320,_0x32858d[_0xbf07('0x25')]['message']);return _0x335e3b(_0x32858d[_0xbf07('0x25')][_0xbf07('0x27')]);}else{logger[_0xbf07('0x28')](_0xbf07('0x20'),_0x4c3320,_0xbf07('0x21'));_0x335e3b(_0x32858d[_0xbf07('0x29')][_0xbf07('0x27')]);}})['catch'](function(_0x1132cb){logger[_0xbf07('0x25')](_0xbf07('0x20'),_0x4c3320,_0x1132cb);_0x276573(_0x1132cb);});});}function respondWithStatusCode(_0x56c303,_0x516f10){_0x516f10=_0x516f10||0xcc;return function(_0x930669){if(_0x930669){return _0x56c303[_0xbf07('0x2a')](_0x516f10);}return _0x56c303[_0xbf07('0x2b')](_0x516f10)[_0xbf07('0x2c')]();};}function respondWithResult(_0x10ba0e,_0x180a58){_0x180a58=_0x180a58||0xc8;return function(_0x47a7ea){if(_0x47a7ea){return _0x10ba0e[_0xbf07('0x2b')](_0x180a58)['json'](_0x47a7ea);}};}function respondWithFilteredResult(_0x5924ac,_0x4cbc49){return function(_0x4419db){if(_0x4419db){var _0x58fee7=_0x4419db['count'],_0x4b9e8a=_0x4cbc49['offset'],_0x3a717d=_0x4cbc49['offset']+_0x4cbc49[_0xbf07('0x2d')],_0x22281b;if(_0x3a717d>=_0x58fee7){_0x3a717d=_0x58fee7;_0x22281b=0xc8;}else{_0x22281b=0xce;}_0x5924ac[_0xbf07('0x2b')](_0x22281b);return _0x5924ac[_0xbf07('0x2e')](_0xbf07('0x2f'),_0x4b9e8a+'-'+_0x3a717d+'/'+_0x58fee7)[_0xbf07('0x30')](_0x4419db);}return null;};}function patchUpdates(_0xc61d6c){return function(_0x500d29){try{jsonpatch[_0xbf07('0x31')](_0x500d29,_0xc61d6c,!![]);}catch(_0xa753dd){return BPromise['reject'](_0xa753dd);}return _0x500d29['save']();};}function saveUpdates(_0x246637,_0x311369){return function(_0xcb50e){if(_0xcb50e){return _0xcb50e[_0xbf07('0x32')](_0x246637)[_0xbf07('0x33')](function(_0x4b8eb1){return _0x4b8eb1;});}return null;};}function removeEntity(_0xc804f0,_0x472933){return function(_0x509d6a){if(_0x509d6a){return _0x509d6a[_0xbf07('0x34')]()['then'](function(){_0xc804f0['status'](0xcc)[_0xbf07('0x2c')]();});}};}function handleEntityNotFound(_0x3131ab,_0x5aac3a){return function(_0x4b1f0c){if(!_0x4b1f0c){_0x3131ab[_0xbf07('0x2a')](0x194);}return _0x4b1f0c;};}function handleError(_0x415b88,_0x693d15){_0x693d15=_0x693d15||0x1f4;return function(_0x2e93be){logger['error'](_0x2e93be['stack']);if(_0x2e93be[_0xbf07('0x35')]){delete _0x2e93be['name'];}_0x415b88[_0xbf07('0x2b')](_0x693d15)[_0xbf07('0x36')](_0x2e93be);};}exports[_0xbf07('0x37')]=function(_0x311829,_0x583278){var _0x2e2fb1={},_0x2f86bd={},_0x46fd41={'count':0x0,'rows':[]};var _0x11da0f=db['OpenchannelAccount'][_0xbf07('0x38')];_0x2f86bd['model']=_[_0xbf07('0x39')](_0x11da0f);var _0x62d6fd={'dateStart':_0x311829[_0xbf07('0x3a')][_0xbf07('0x3b')],'dateEnd':_0x311829[_0xbf07('0x3a')][_0xbf07('0x3c')]};delete _0x311829[_0xbf07('0x3a')]['dateStart'];delete _0x311829[_0xbf07('0x3a')][_0xbf07('0x3c')];_0x2f86bd['query']=_['keys'](_0x311829[_0xbf07('0x3a')]);_0x2f86bd['filters']=_[_0xbf07('0x3d')](_0x2f86bd['model'],_0x2f86bd[_0xbf07('0x3a')]);_0x2e2fb1[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x2f86bd[_0xbf07('0x3f')],qs[_0xbf07('0x40')](_0x311829[_0xbf07('0x3a')][_0xbf07('0x40')]));_0x2e2fb1[_0xbf07('0x3e')]=_0x2e2fb1[_0xbf07('0x3e')][_0xbf07('0x41')]?_0x2e2fb1['attributes']:_0x2f86bd[_0xbf07('0x3f')];if(!_0x311829[_0xbf07('0x3a')][_0xbf07('0x42')](_0xbf07('0x43'))){_0x2e2fb1['limit']=qs[_0xbf07('0x2d')](_0x311829['query'][_0xbf07('0x2d')]);_0x2e2fb1[_0xbf07('0x44')]=qs['offset'](_0x311829['query'][_0xbf07('0x44')]);}_0x2e2fb1[_0xbf07('0x45')]=qs[_0xbf07('0x46')](_0x311829[_0xbf07('0x3a')][_0xbf07('0x46')]);_0x2e2fb1[_0xbf07('0x47')]=qs['filters'](_[_0xbf07('0x48')](_0x311829[_0xbf07('0x3a')],_0x2f86bd[_0xbf07('0x49')]));if(_0x62d6fd['dateStart']){if(_0x62d6fd[_0xbf07('0x3c')]){_0x62d6fd['dateEnd']=moment(_0x62d6fd[_0xbf07('0x3c')])[_0xbf07('0x4a')](0x1,_0xbf07('0x4b'));}else{_0x62d6fd[_0xbf07('0x3c')]=moment(_0x62d6fd[_0xbf07('0x3b')])['add'](0x1,'day');}_['merge'](_0x2e2fb1['where'],{'createdAt':{'$gte':_0x62d6fd[_0xbf07('0x3b')],'$lte':_0x62d6fd['dateEnd']}});}if(_0x311829[_0xbf07('0x3a')][_0xbf07('0x4c')]){_0x2e2fb1[_0xbf07('0x47')]=_[_0xbf07('0x4d')](_0x2e2fb1['where'],{'$or':_[_0xbf07('0x4e')](_0x2e2fb1['attributes'],function(_0x1377d7){var _0x9d92e0={};_0x9d92e0[_0x1377d7]={'$like':'%'+_0x311829[_0xbf07('0x3a')][_0xbf07('0x4c')]+'%'};return _0x9d92e0;})});}_0x2e2fb1=_[_0xbf07('0x4d')]({},_0x2e2fb1,_0x311829[_0xbf07('0x4f')]);var _0x4957af={'where':_0x2e2fb1['where']};return db[_0xbf07('0x50')][_0xbf07('0x51')](_0x4957af)[_0xbf07('0x33')](function(_0x42ea40){_0x46fd41[_0xbf07('0x51')]=_0x42ea40;if(_0x311829[_0xbf07('0x3a')][_0xbf07('0x52')]){_0x2e2fb1[_0xbf07('0x53')]=[{'all':!![]}];}return db[_0xbf07('0x50')][_0xbf07('0x54')](_0x2e2fb1);})[_0xbf07('0x33')](function(_0x238a44){_0x46fd41[_0xbf07('0x55')]=_0x238a44;return _0x46fd41;})[_0xbf07('0x33')](respondWithFilteredResult(_0x583278,_0x2e2fb1))[_0xbf07('0x56')](handleError(_0x583278,null));};exports[_0xbf07('0x57')]=function(_0xfa4d37,_0x159590){var _0x564742={'raw':![],'where':{'id':_0xfa4d37['params']['id']}},_0x486478={};_0x486478[_0xbf07('0x3f')]=_[_0xbf07('0x39')](db['OpenchannelAccount'][_0xbf07('0x38')]);_0x486478['query']=_[_0xbf07('0x39')](_0xfa4d37[_0xbf07('0x3a')]);_0x486478[_0xbf07('0x49')]=_[_0xbf07('0x3d')](_0x486478[_0xbf07('0x3f')],_0x486478[_0xbf07('0x3a')]);_0x564742[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x486478[_0xbf07('0x3f')],qs[_0xbf07('0x40')](_0xfa4d37[_0xbf07('0x3a')][_0xbf07('0x40')]));_0x564742[_0xbf07('0x3e')]=_0x564742[_0xbf07('0x3e')][_0xbf07('0x41')]?_0x564742[_0xbf07('0x3e')]:_0x486478[_0xbf07('0x3f')];if(_0xfa4d37['query'][_0xbf07('0x52')]){_0x564742[_0xbf07('0x53')]=[{'all':!![]}];}_0x564742=_[_0xbf07('0x4d')]({},_0x564742,_0xfa4d37['options']);return db[_0xbf07('0x50')][_0xbf07('0x58')](_0x564742)['then'](handleEntityNotFound(_0x159590,null))[_0xbf07('0x33')](respondWithResult(_0x159590,null))[_0xbf07('0x56')](handleError(_0x159590,null));};exports[_0xbf07('0x59')]=function(_0x142fb5,_0x3c3e33){return db['OpenchannelAccount'][_0xbf07('0x59')](_0x142fb5[_0xbf07('0x5a')],{})[_0xbf07('0x33')](respondWithResult(_0x3c3e33,0xc9))[_0xbf07('0x56')](handleError(_0x3c3e33,null));};exports[_0xbf07('0x32')]=function(_0x509d06,_0x3e8495){if(_0x509d06['body']['id']){delete _0x509d06[_0xbf07('0x5a')]['id'];}return db['OpenchannelAccount'][_0xbf07('0x58')]({'where':{'id':_0x509d06[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x3e8495,null))[_0xbf07('0x33')](saveUpdates(_0x509d06[_0xbf07('0x5a')],null))[_0xbf07('0x33')](respondWithResult(_0x3e8495,null))['catch'](handleError(_0x3e8495,null));};exports[_0xbf07('0x34')]=function(_0xaff0e,_0x18c6ff){return db['OpenchannelAccount']['find']({'where':{'id':_0xaff0e['params']['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x18c6ff,null))['then'](removeEntity(_0x18c6ff,null))[_0xbf07('0x56')](handleError(_0x18c6ff,null));};exports['describe']=function(_0x20c7c5,_0x11d3ea){return db['OpenchannelAccount'][_0xbf07('0x5c')]()[_0xbf07('0x33')](respondWithResult(_0x11d3ea,null))['catch'](handleError(_0x11d3ea,null));};exports[_0xbf07('0x5d')]=function(_0x399b40,_0x5a1932,_0x27dee2){if(_0x399b40[_0xbf07('0x5a')]['id']){delete _0x399b40[_0xbf07('0x5a')]['id'];}return db[_0xbf07('0x50')][_0xbf07('0x58')]({'where':{'id':_0x399b40[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x5a1932,null))['then'](function(_0x433cf5){if(_0x433cf5){_0x399b40[_0xbf07('0x5a')]['OpnechannelAccountId']=_0x433cf5['id'];return db[_0xbf07('0x5e')][_0xbf07('0x59')](_0x399b40[_0xbf07('0x5a')]);}})[_0xbf07('0x33')](respondWithResult(_0x5a1932,null))[_0xbf07('0x56')](handleError(_0x5a1932,null));};exports['getDispositions']=function(_0x307dcb,_0x342cb5,_0x11a486){var _0x5e1d1e={'raw':![],'where':{}};var _0x398f44={};var _0x30f2fb={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0xbf07('0x5f')]({'where':{'id':_0x307dcb['params']['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x342cb5,null))[_0xbf07('0x33')](function(_0x4e9035){if(_0x4e9035){_0x398f44[_0xbf07('0x3f')]=_[_0xbf07('0x39')](db[_0xbf07('0x5e')][_0xbf07('0x38')]);_0x398f44[_0xbf07('0x3a')]=_[_0xbf07('0x39')](_0x307dcb[_0xbf07('0x3a')]);_0x398f44['filters']=_[_0xbf07('0x3d')](_0x398f44['model'],_0x398f44[_0xbf07('0x3a')]);_0x5e1d1e[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x398f44[_0xbf07('0x3f')],qs['fields'](_0x307dcb['query'][_0xbf07('0x40')]));_0x5e1d1e[_0xbf07('0x3e')]=_0x5e1d1e[_0xbf07('0x3e')][_0xbf07('0x41')]?_0x5e1d1e[_0xbf07('0x3e')]:_0x398f44[_0xbf07('0x3f')];if(!_0x307dcb[_0xbf07('0x3a')][_0xbf07('0x42')]('nolimit')){_0x5e1d1e[_0xbf07('0x2d')]=qs[_0xbf07('0x2d')](_0x307dcb[_0xbf07('0x3a')][_0xbf07('0x2d')]);_0x5e1d1e['offset']=qs['offset'](_0x307dcb[_0xbf07('0x3a')][_0xbf07('0x44')]);}_0x5e1d1e[_0xbf07('0x45')]=qs[_0xbf07('0x46')](_0x307dcb[_0xbf07('0x3a')][_0xbf07('0x46')]);_0x5e1d1e[_0xbf07('0x47')]=qs['filters'](_['pick'](_0x307dcb[_0xbf07('0x3a')],_0x398f44[_0xbf07('0x49')]));_0x5e1d1e[_0xbf07('0x47')][_0xbf07('0x60')]=_0x4e9035['id'];if(_0x307dcb[_0xbf07('0x3a')]['filter']){_0x5e1d1e[_0xbf07('0x47')]=_['merge'](_0x5e1d1e[_0xbf07('0x47')],{'$or':_[_0xbf07('0x4e')](_0x5e1d1e[_0xbf07('0x3e')],function(_0x406da1){var _0x5b3cdc={};_0x5b3cdc[_0x406da1]={'$like':'%'+_0x307dcb[_0xbf07('0x3a')][_0xbf07('0x4c')]+'%'};return _0x5b3cdc;})});}_0x5e1d1e=_[_0xbf07('0x4d')]({},_0x5e1d1e,_0x307dcb['options']);return db[_0xbf07('0x5e')][_0xbf07('0x51')]({'where':_0x5e1d1e[_0xbf07('0x47')]})[_0xbf07('0x33')](function(_0x41a668){_0x30f2fb[_0xbf07('0x51')]=_0x41a668;if(_0x307dcb['query'][_0xbf07('0x52')]){_0x5e1d1e['include']=[{'all':!![]}];}return db[_0xbf07('0x5e')][_0xbf07('0x54')](_0x5e1d1e);})[_0xbf07('0x33')](function(_0x44c554){_0x30f2fb[_0xbf07('0x55')]=_0x44c554;return _0x30f2fb;});}})[_0xbf07('0x33')](respondWithFilteredResult(_0x342cb5,_0x5e1d1e))[_0xbf07('0x56')](handleError(_0x342cb5,null));};exports[_0xbf07('0x61')]=function(_0x212d33,_0x203d32,_0x35a1f0){var _0x377214;return db['OpenchannelAccount'][_0xbf07('0x58')]({'where':{'id':_0x212d33['params']['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x203d32,null))[_0xbf07('0x33')](function(_0x5e9f64){if(_0x5e9f64){return _0x5e9f64[_0xbf07('0x61')](_0x212d33[_0xbf07('0x3a')][_0xbf07('0x62')]);}})[_0xbf07('0x33')](respondWithStatusCode(_0x203d32,null))[_0xbf07('0x56')](handleError(_0x203d32,null));};exports['addAnswer']=function(_0x3ae29a,_0x3c2943,_0x151bfa){if(_0x3ae29a['body']['id']){delete _0x3ae29a[_0xbf07('0x5a')]['id'];}return db[_0xbf07('0x50')][_0xbf07('0x58')]({'where':{'id':_0x3ae29a[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x3c2943,null))[_0xbf07('0x33')](function(_0x197f94){if(_0x197f94){_0x3ae29a[_0xbf07('0x5a')]['OpenchannelAccountId']=_0x197f94['id'];return db[_0xbf07('0x63')]['create'](_0x3ae29a[_0xbf07('0x5a')]);}})[_0xbf07('0x33')](respondWithResult(_0x3c2943,null))[_0xbf07('0x56')](handleError(_0x3c2943,null));};exports[_0xbf07('0x64')]=function(_0x3cf98f,_0x47c603,_0x39f9ac){var _0xd3b1c2={'raw':![],'where':{}};var _0x68c592={};var _0x3c6d3f={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0xbf07('0x5f')]({'where':{'id':_0x3cf98f['params']['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x47c603,null))['then'](function(_0x3e7477){if(_0x3e7477){_0x68c592[_0xbf07('0x3f')]=_[_0xbf07('0x39')](db[_0xbf07('0x63')][_0xbf07('0x38')]);_0x68c592[_0xbf07('0x3a')]=_[_0xbf07('0x39')](_0x3cf98f['query']);_0x68c592[_0xbf07('0x49')]=_['intersection'](_0x68c592[_0xbf07('0x3f')],_0x68c592[_0xbf07('0x3a')]);_0xd3b1c2[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x68c592[_0xbf07('0x3f')],qs[_0xbf07('0x40')](_0x3cf98f[_0xbf07('0x3a')][_0xbf07('0x40')]));_0xd3b1c2[_0xbf07('0x3e')]=_0xd3b1c2[_0xbf07('0x3e')][_0xbf07('0x41')]?_0xd3b1c2[_0xbf07('0x3e')]:_0x68c592[_0xbf07('0x3f')];if(!_0x3cf98f['query'][_0xbf07('0x42')]('nolimit')){_0xd3b1c2[_0xbf07('0x2d')]=qs[_0xbf07('0x2d')](_0x3cf98f[_0xbf07('0x3a')][_0xbf07('0x2d')]);_0xd3b1c2['offset']=qs[_0xbf07('0x44')](_0x3cf98f['query']['offset']);}_0xd3b1c2[_0xbf07('0x45')]=qs['sort'](_0x3cf98f['query'][_0xbf07('0x46')]);_0xd3b1c2['where']=qs[_0xbf07('0x49')](_[_0xbf07('0x48')](_0x3cf98f[_0xbf07('0x3a')],_0x68c592[_0xbf07('0x49')]));_0xd3b1c2[_0xbf07('0x47')][_0xbf07('0x60')]=_0x3e7477['id'];if(_0x3cf98f['query'][_0xbf07('0x4c')]){_0xd3b1c2[_0xbf07('0x47')]=_[_0xbf07('0x4d')](_0xd3b1c2[_0xbf07('0x47')],{'$or':_[_0xbf07('0x4e')](_0xd3b1c2[_0xbf07('0x3e')],function(_0x2dcfc2){var _0x1432fe={};_0x1432fe[_0x2dcfc2]={'$like':'%'+_0x3cf98f['query'][_0xbf07('0x4c')]+'%'};return _0x1432fe;})});}_0xd3b1c2=_[_0xbf07('0x4d')]({},_0xd3b1c2,_0x3cf98f['options']);return db[_0xbf07('0x63')]['count']({'where':_0xd3b1c2[_0xbf07('0x47')]})[_0xbf07('0x33')](function(_0x4f661e){_0x3c6d3f[_0xbf07('0x51')]=_0x4f661e;if(_0x3cf98f[_0xbf07('0x3a')][_0xbf07('0x52')]){_0xd3b1c2[_0xbf07('0x53')]=[{'all':!![]}];}return db[_0xbf07('0x63')][_0xbf07('0x54')](_0xd3b1c2);})[_0xbf07('0x33')](function(_0x4e397b){_0x3c6d3f[_0xbf07('0x55')]=_0x4e397b;return _0x3c6d3f;});}})[_0xbf07('0x33')](respondWithFilteredResult(_0x47c603,_0xd3b1c2))[_0xbf07('0x56')](handleError(_0x47c603,null));};exports['removeAnswers']=function(_0x374f28,_0x2ee265,_0x344e74){var _0x40a7c6;return db['OpenchannelAccount'][_0xbf07('0x58')]({'where':{'id':_0x374f28[_0xbf07('0x5b')]['id']}})['then'](handleEntityNotFound(_0x2ee265,null))[_0xbf07('0x33')](function(_0x267347){if(_0x267347){return _0x267347[_0xbf07('0x65')](_0x374f28[_0xbf07('0x3a')][_0xbf07('0x62')]);}})[_0xbf07('0x33')](respondWithStatusCode(_0x2ee265,null))[_0xbf07('0x56')](handleError(_0x2ee265,null));};exports[_0xbf07('0x66')]=function(_0x1b15e0,_0xb37f83,_0x1b123a){var _0x110328={'body':_0x1b15e0[_0xbf07('0x5a')],'channel':_0xbf07('0x67')};var _0x2347d9=[];var _0x1bdde3=[];var _0x27754c={};var _0x3f6e81=![];return db[_0xbf07('0x68')][_0xbf07('0x5c')]()[_0xbf07('0x33')](function(_0x3e61bc){if(!_0x3e61bc){throw new db[(_0xbf07('0x69'))][(_0xbf07('0x6a'))](_0xbf07('0x6b'));}_0x2347d9=_[_0xbf07('0x6c')](_[_0xbf07('0x39')](_0x3e61bc),['createdAt','updatedAt']);_0x1bdde3=_[_0xbf07('0x6c')](_[_0xbf07('0x39')](_0x3e61bc),[_0xbf07('0x6d'),_0xbf07('0x6e'),_0xbf07('0x6f'),_0xbf07('0x70')]);if(_0x1b15e0[_0xbf07('0x5a')]['id']){delete _0x1b15e0[_0xbf07('0x5a')]['id'];}if(_['isNil'](_0x1b15e0['body'][_0xbf07('0x71')])){throw new db[(_0xbf07('0x69'))][(_0xbf07('0x6a'))]('from\x20is\x20mandatory');}if(_[_0xbf07('0x72')](_0x1b15e0['body']['body'])||_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x5a')]===''){throw new db[(_0xbf07('0x69'))]['ValidationError'](_0xbf07('0x73'));}if(_[_0xbf07('0x72')](_0x1b15e0['body']['mapKey'])){throw new db[(_0xbf07('0x69'))][(_0xbf07('0x6a'))](_0xbf07('0x74')+_0x1bdde3);}if(!_[_0xbf07('0x75')](_0x1bdde3,_0x1b15e0['body'][_0xbf07('0x76')])){throw new db[(_0xbf07('0x69'))]['ValidationError'](_0xbf07('0x77')+_0x1bdde3);}_0x27754c[_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x76')]]=_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x71')];})[_0xbf07('0x33')](function(){return db[_0xbf07('0x50')][_0xbf07('0x58')]({'where':{'id':_0x1b15e0[_0xbf07('0x5b')]['id']},'include':[{'model':db[_0xbf07('0x78')],'as':_0xbf07('0x79'),'include':[{'model':db[_0xbf07('0x68')],'as':_0xbf07('0x7a'),'where':_0x27754c,'limit':0x1,'order':[[_0xbf07('0x6e'),_0xbf07('0x7b')]]}]},{'model':db[_0xbf07('0x7c')],'as':_0xbf07('0x7d')}]});})[_0xbf07('0x33')](handleEntityNotFound(_0xb37f83,null))['then'](function(_0x10ebbd){if(_0x10ebbd&&_0x10ebbd[_0xbf07('0x79')]){_0x110328['account']=_0x10ebbd;_0x110328[_0xbf07('0x7e')]=_0x10ebbd[_0xbf07('0x7d')];_0x110328[_0xbf07('0x7f')]=_0x10ebbd['List'];_0x110328[_0xbf07('0x7e')]=_[_0xbf07('0x80')](_0x110328[_0xbf07('0x7e')],[_0xbf07('0x81')],[_0xbf07('0x82')]);if(_0x110328['account']['Applications']){delete _0x110328[_0xbf07('0x83')][_0xbf07('0x7d')];}if(_0x110328[_0xbf07('0x83')][_0xbf07('0x79')]&&_0x110328[_0xbf07('0x83')]['List']['Contacts'][_0xbf07('0x41')]){return _0x110328['account']['List'][_0xbf07('0x7a')][0x0];}var _0x4f2acb=_[_0xbf07('0x19')](_0x1b15e0[_0xbf07('0x5a')],{'firstName':_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x71')],'ListId':_0x10ebbd['ListId']});_0x4f2acb[_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x76')]]=_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x71')];return db[_0xbf07('0x68')][_0xbf07('0x59')](_0x4f2acb,{'fields':_0x2347d9,'raw':!![]});}})[_0xbf07('0x33')](handleEntityNotFound(_0xb37f83,null))['then'](function(_0x592550){_0x110328[_0xbf07('0x84')]=_0x592550;if(_0x592550){var _0x2fd67a={'ContactId':_0x592550['id'],'OpenchannelAccountId':_0x1b15e0[_0xbf07('0x5b')]['id'],'from':(_0x592550[_0xbf07('0x85')]||'')+'\x20'+(_0x592550[_0xbf07('0x86')]||'')};var _0x276ff0={'OpenchannelAccountId':_0x1b15e0[_0xbf07('0x5b')]['id'],'closed':![]};if(_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x87')]){_0x276ff0[_0xbf07('0x87')]=_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x87')];return db['OpenchannelInteraction'][_0xbf07('0x58')]({'where':_0x276ff0})['then'](function(_0x38d5bf){if(_0x38d5bf){return[_0x38d5bf,![]];}_0x2fd67a[_0xbf07('0x87')]=_0x1b15e0[_0xbf07('0x5a')]['threadId'];_0x2fd67a[_0xbf07('0x88')]=_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x88')];return db['OpenchannelInteraction'][_0xbf07('0x59')](_0x2fd67a)[_0xbf07('0x33')](function(_0x2867fd){return[_0x2867fd,!![]];});});}else{_0x276ff0['threadId']=null;}_0x276ff0[_0xbf07('0x89')]=_0x592550['id'];return db[_0xbf07('0x8a')][_0xbf07('0x58')]({'where':_0x276ff0})[_0xbf07('0x33')](function(_0x5d9fd4){if(_0x5d9fd4){return[_0x5d9fd4,![]];}return db[_0xbf07('0x8a')][_0xbf07('0x59')](_0x2fd67a)['then'](function(_0x4e4d5c){return[_0x4e4d5c,!![]];});});}})[_0xbf07('0x8b')](function(_0x116d0a,_0x22eaba){if(_0x116d0a){_0x3f6e81=_0x22eaba;if(!_0x22eaba){return _0x116d0a[_0xbf07('0x32')]({'from':(_0x110328[_0xbf07('0x84')][_0xbf07('0x85')]||'')+'\x20'+(_0x110328[_0xbf07('0x84')]['lastName']||'')});}else{return _0x116d0a;}}})['then'](function(_0xe4b475){_0x110328[_0xbf07('0x8c')]=_0xe4b475[_0xbf07('0x8d')]({'plain':!![]});_0x110328[_0xbf07('0x8c')][_0xbf07('0x8e')]=_0x3f6e81;if(_0x110328[_0xbf07('0x8c')]['created']){if(_0x110328['account']['autoclose']){_0x110328['applications'][_0xbf07('0x8f')]({'id':0x0,'priority':_0x110328[_0xbf07('0x7e')][_0xbf07('0x41')]+0x1,'app':_0xbf07('0x90'),'appdata':_0xbf07('0x91'),'interval':_0xbf07('0x92')});}}return db[_0xbf07('0x93')][_0xbf07('0x59')]({'body':_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x5a')],'OpenchannelAccountId':_0x1b15e0[_0xbf07('0x5b')]['id'],'OpenchannelInteractionId':_0xe4b475['id'],'direction':'in','ContactId':_0x110328[_0xbf07('0x84')]['id'],'AttachmentId':_0x1b15e0[_0xbf07('0x5a')][_0xbf07('0x94')]});})[_0xbf07('0x33')](function(_0x204be2){_0x110328[_0xbf07('0x27')]=_0x204be2;if(_0x110328['interaction'][_0xbf07('0x95')]){return db[_0xbf07('0x96')]['find']({'attributes':['id',_0xbf07('0x35')],'where':{'id':_0x110328[_0xbf07('0x8c')][_0xbf07('0x95')]}})['then'](function(_0x45f749){if(_0x45f749){_0x110328['applications'][_0xbf07('0x97')]({'id':0x0,'priority':0x0,'app':_0xbf07('0x98'),'appdata':_0x45f749[_0xbf07('0x35')]+','+(_0x110328['account'][_0xbf07('0x99')]||0xa),'interval':'*,*,*,*'});_0x110328[_0xbf07('0x9a')]=![];}return respondWithRpcPromise(_0xbf07('0x9b'),_0xbf07('0x9c'),_0x110328);});}return respondWithRpcPromise(_0xbf07('0x9b'),_0xbf07('0x9c'),_0x110328);})['then'](function(_0x12ac53){respondWithRpcPromise(_0xbf07('0x9d'),'EventManager',{'event':_0xbf07('0x66'),'message':_0x12ac53},client9002);return _0x12ac53;})[_0xbf07('0x33')](respondWithResult(_0xb37f83,null))[_0xbf07('0x56')](handleError(_0xb37f83,null));};exports[_0xbf07('0x9e')]=function(_0x518029,_0x1d9408,_0x1de8dd){return db['OpenchannelAccount'][_0xbf07('0x5f')]({'where':{'id':_0x518029[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x1d9408,null))[_0xbf07('0x33')](function(_0x541270){if(_0x541270){return db[_0xbf07('0x9f')]['transaction'](function(_0x4bebb9){return db[_0xbf07('0x7c')][_0xbf07('0x34')]({'where':{'OpenchannelAccountId':_0x518029['params']['id']},'transaction':_0x4bebb9})[_0xbf07('0x33')](function(_0x46449b){var _0x4e0832=_[_0xbf07('0x4e')](_0x518029['body'],function(_0x26e836){_0x26e836[_0xbf07('0x60')]=_0x518029[_0xbf07('0x5b')]['id'];return _0x26e836;});return db[_0xbf07('0x7c')]['bulkCreate'](_0x4e0832,{'transaction':_0x4bebb9});});})[_0xbf07('0x33')](function(){return db['OpenchannelApplication'][_0xbf07('0xa0')]({'where':{'OpenchannelAccountId':_0x518029[_0xbf07('0x5b')]['id']},'order':_0xbf07('0x81')});});}})[_0xbf07('0x33')](respondWithResult(_0x1d9408,null))['catch'](handleError(_0x1d9408,null));};exports[_0xbf07('0xa1')]=function(_0x1c2259,_0x3d150f,_0x1a6c8f){var _0x5e12ed={};var _0x62413e={};var _0xa0acfc;var _0x3062ae;return db[_0xbf07('0x50')][_0xbf07('0x5f')]({'where':{'id':_0x1c2259[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x3d150f,null))[_0xbf07('0x33')](function(_0x230ae5){if(_0x230ae5){_0xa0acfc=_0x230ae5;_0x62413e[_0xbf07('0x3f')]=_[_0xbf07('0x39')](db['OpenchannelApplication'][_0xbf07('0x38')]);_0x62413e[_0xbf07('0x3a')]=_[_0xbf07('0x39')](_0x1c2259[_0xbf07('0x3a')]);_0x62413e[_0xbf07('0x49')]=_[_0xbf07('0x3d')](_0x62413e[_0xbf07('0x3f')],_0x62413e[_0xbf07('0x3a')]);_0x5e12ed[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x62413e[_0xbf07('0x3f')],qs[_0xbf07('0x40')](_0x1c2259[_0xbf07('0x3a')][_0xbf07('0x40')]));_0x5e12ed[_0xbf07('0x3e')]=_0x5e12ed[_0xbf07('0x3e')][_0xbf07('0x41')]?_0x5e12ed[_0xbf07('0x3e')]:_0x62413e[_0xbf07('0x3f')];_0x5e12ed['order']=qs['sort'](_0x1c2259[_0xbf07('0x3a')][_0xbf07('0x46')]);_0x5e12ed[_0xbf07('0x47')]=qs[_0xbf07('0x49')](_[_0xbf07('0x48')](_0x1c2259['query'],_0x62413e[_0xbf07('0x49')]));if(_0x1c2259[_0xbf07('0x3a')][_0xbf07('0x4c')]){_0x5e12ed['where']=_['merge'](_0x5e12ed[_0xbf07('0x47')],{'$or':_[_0xbf07('0x4e')](_0x5e12ed['attributes'],function(_0x29afb9){var _0x47865e={};_0x47865e[_0x29afb9]={'$like':'%'+_0x1c2259[_0xbf07('0x3a')][_0xbf07('0x4c')]+'%'};return _0x47865e;})});}_0x5e12ed=_['merge']({},_0x5e12ed,_0x1c2259[_0xbf07('0x4f')]);return _0xa0acfc[_0xbf07('0xa1')](_0x5e12ed);}})[_0xbf07('0x33')](function(_0x3b5afb){if(_0x3b5afb){_0x3062ae=_0x3b5afb['length'];if(!_0x1c2259[_0xbf07('0x3a')]['hasOwnProperty'](_0xbf07('0x43'))){_0x5e12ed[_0xbf07('0x2d')]=qs['limit'](_0x1c2259[_0xbf07('0x3a')][_0xbf07('0x2d')]);_0x5e12ed['offset']=qs['offset'](_0x1c2259[_0xbf07('0x3a')]['offset']);}return _0xa0acfc['getApplications'](_0x5e12ed);}})[_0xbf07('0x33')](function(_0x351495){if(_0x351495){return _0x351495?{'count':_0x3062ae,'rows':_0x351495}:null;}})['then'](respondWithResult(_0x3d150f,null))[_0xbf07('0x56')](handleError(_0x3d150f,null));};exports[_0xbf07('0xa2')]=function(_0x4fec02,_0x395fe2,_0x3a1595){var _0x3e7c4a={'raw':![],'where':{}};var _0x2b04c9={};var _0x55bd24={'count':0x0,'rows':[]};return db[_0xbf07('0x50')][_0xbf07('0x5f')]({'where':{'id':_0x4fec02[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x395fe2,null))['then'](function(_0x5bad8e){if(_0x5bad8e){_0x2b04c9[_0xbf07('0x3f')]=_[_0xbf07('0x39')](db[_0xbf07('0x8a')][_0xbf07('0x38')]);_0x2b04c9[_0xbf07('0x3a')]=_[_0xbf07('0x39')](_0x4fec02[_0xbf07('0x3a')]);_0x2b04c9[_0xbf07('0x49')]=_[_0xbf07('0x3d')](_0x2b04c9['model'],_0x2b04c9[_0xbf07('0x3a')]);_0x3e7c4a[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x2b04c9[_0xbf07('0x3f')],qs[_0xbf07('0x40')](_0x4fec02['query'][_0xbf07('0x40')]));_0x3e7c4a[_0xbf07('0x3e')]=_0x3e7c4a[_0xbf07('0x3e')]['length']?_0x3e7c4a[_0xbf07('0x3e')]:_0x2b04c9[_0xbf07('0x3f')];if(!_0x4fec02[_0xbf07('0x3a')][_0xbf07('0x42')]('nolimit')){_0x3e7c4a[_0xbf07('0x2d')]=qs['limit'](_0x4fec02[_0xbf07('0x3a')][_0xbf07('0x2d')]);_0x3e7c4a[_0xbf07('0x44')]=qs[_0xbf07('0x44')](_0x4fec02[_0xbf07('0x3a')][_0xbf07('0x44')]);}_0x3e7c4a['order']=qs[_0xbf07('0x46')](_0x4fec02[_0xbf07('0x3a')][_0xbf07('0x46')]);_0x3e7c4a[_0xbf07('0x47')]=qs[_0xbf07('0x49')](_[_0xbf07('0x48')](_0x4fec02[_0xbf07('0x3a')],_0x2b04c9[_0xbf07('0x49')]));_0x3e7c4a[_0xbf07('0x47')]['OpenchannelAccountId']=_0x5bad8e['id'];if(_0x4fec02[_0xbf07('0x3a')]['filter']){_0x3e7c4a[_0xbf07('0x47')]=_[_0xbf07('0x4d')](_0x3e7c4a[_0xbf07('0x47')],{'$or':_['map'](_0x3e7c4a[_0xbf07('0x3e')],function(_0xd6757c){var _0x8753a3={};_0x8753a3[_0xd6757c]={'$like':'%'+_0x4fec02['query'][_0xbf07('0x4c')]+'%'};return _0x8753a3;})});}_0x3e7c4a=_[_0xbf07('0x4d')]({},_0x3e7c4a,_0x4fec02[_0xbf07('0x4f')]);return db[_0xbf07('0x8a')][_0xbf07('0x51')]({'where':_0x3e7c4a[_0xbf07('0x47')]})['then'](function(_0x296467){_0x55bd24[_0xbf07('0x51')]=_0x296467;if(_0x4fec02[_0xbf07('0x3a')][_0xbf07('0x52')]){_0x3e7c4a[_0xbf07('0x53')]=[{'model':db[_0xbf07('0x68')],'as':_0xbf07('0xa3'),'required':![]},{'model':db['User'],'as':'Owner','attributes':['name','fullname','internal'],'required':![]},{'model':db[_0xbf07('0xa4')],'as':_0xbf07('0xa5'),'attributes':['id','name',_0xbf07('0xa6')],'where':_0x4fec02[_0xbf07('0x3a')][_0xbf07('0xa7')]?{'id':_0x4fec02[_0xbf07('0x3a')][_0xbf07('0xa7')]}:undefined,'required':_0x4fec02[_0xbf07('0x3a')][_0xbf07('0xa7')]?!![]:![]}];}return db['OpenchannelInteraction'][_0xbf07('0x54')](_0x3e7c4a);})[_0xbf07('0x33')](function(_0x23804e){_0x55bd24['rows']=_0x23804e;return _0x55bd24;});}})['then'](respondWithFilteredResult(_0x395fe2,_0x3e7c4a))[_0xbf07('0x56')](handleError(_0x395fe2,null));};exports['addAgents']=function(_0x16d70a,_0x716489,_0x2f8913){return db[_0xbf07('0x50')][_0xbf07('0x58')]({'where':{'id':_0x16d70a[_0xbf07('0x5b')]['id']}})['then'](handleEntityNotFound(_0x716489,null))['then'](function(_0x5f1ef3){if(_0x5f1ef3){return _0x5f1ef3[_0xbf07('0xa8')](_0x16d70a[_0xbf07('0x5a')]['ids'],_[_0xbf07('0xa9')](_0x16d70a['body'],[_0xbf07('0x62'),'id'])||{})[_0xbf07('0x8b')](function(_0x3773ac){for(var _0x21d490=0x0;_0x21d490<_0x16d70a[_0xbf07('0x5a')][_0xbf07('0x62')]['length'];_0x21d490+=0x1){socket[_0xbf07('0xaa')](_0xbf07('0xab'),{'UserId':_0x16d70a[_0xbf07('0x5a')]['ids'][_0x21d490],'OpenchannelAccountId':_0x16d70a[_0xbf07('0x5b')]['id']});}return _0x3773ac;});}})[_0xbf07('0x33')](respondWithResult(_0x716489,null))[_0xbf07('0x56')](handleError(_0x716489,null));};exports[_0xbf07('0xac')]=function(_0x18c7f9,_0xc7a540,_0x558f7b){var _0x2f4399;return db['OpenchannelAccount'][_0xbf07('0x58')]({'where':{'id':_0x18c7f9[_0xbf07('0x5b')]['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0xc7a540,null))[_0xbf07('0x33')](function(_0xe5e97f){if(_0xe5e97f){return _0xe5e97f[_0xbf07('0xac')](_0x18c7f9[_0xbf07('0x3a')][_0xbf07('0x62')])[_0xbf07('0x33')](function(_0x233f98){if(_['isArray'](_0x18c7f9['query']['ids'])){for(var _0x497c67=0x0;_0x497c67<_0x18c7f9[_0xbf07('0x3a')][_0xbf07('0x62')][_0xbf07('0x41')];_0x497c67+=0x1){socket['emit'](_0xbf07('0xad'),{'UserId':_0x18c7f9['query'][_0xbf07('0x62')][_0x497c67],'OpenchannelAccountId':_0x18c7f9[_0xbf07('0x5b')]['id']});}}else{socket[_0xbf07('0xaa')](_0xbf07('0xad'),{'UserId':_0x18c7f9[_0xbf07('0x3a')][_0xbf07('0x62')],'OpenchannelAccountId':_0x18c7f9[_0xbf07('0x5b')]['id']});}});}})[_0xbf07('0x33')](respondWithStatusCode(_0xc7a540,null))['catch'](handleError(_0xc7a540,null));};exports[_0xbf07('0xae')]=function(_0x5d6e85,_0x281786,_0x3aaca9){var _0x53e1f0={};var _0x19973a={};var _0x3f5ded;var _0x125885;return db[_0xbf07('0x50')][_0xbf07('0x5f')]({'where':{'id':_0x5d6e85['params']['id']}})[_0xbf07('0x33')](handleEntityNotFound(_0x281786,null))[_0xbf07('0x33')](function(_0x5f2399){if(_0x5f2399){_0x3f5ded=_0x5f2399;_0x19973a[_0xbf07('0x3f')]=_[_0xbf07('0x39')](db[_0xbf07('0x96')]['rawAttributes']);_0x19973a[_0xbf07('0x3a')]=_[_0xbf07('0x39')](_0x5d6e85[_0xbf07('0x3a')]);_0x19973a[_0xbf07('0x49')]=_['intersection'](_0x19973a['model'],_0x19973a[_0xbf07('0x3a')]);_0x53e1f0[_0xbf07('0x3e')]=_[_0xbf07('0x3d')](_0x19973a[_0xbf07('0x3f')],qs[_0xbf07('0x40')](_0x5d6e85[_0xbf07('0x3a')][_0xbf07('0x40')]));_0x53e1f0[_0xbf07('0x3e')]=_0x53e1f0['attributes'][_0xbf07('0x41')]?_0x53e1f0['attributes']:_0x19973a['model'];_0x53e1f0[_0xbf07('0x45')]=qs[_0xbf07('0x46')](_0x5d6e85[_0xbf07('0x3a')]['sort']);_0x53e1f0[_0xbf07('0x47')]=qs[_0xbf07('0x49')](_[_0xbf07('0x48')](_0x5d6e85[_0xbf07('0x3a')],_0x19973a[_0xbf07('0x49')]));if(_0x5d6e85['query'][_0xbf07('0x4c')]){_0x53e1f0[_0xbf07('0x47')]=_[_0xbf07('0x4d')](_0x53e1f0['where'],{'$or':_[_0xbf07('0x4e')](_0x53e1f0['attributes'],function(_0x2e143a){var _0x3e6d8f={};_0x3e6d8f[_0x2e143a]={'$like':'%'+_0x5d6e85[_0xbf07('0x3a')]['filter']+'%'};return _0x3e6d8f;})});}_0x53e1f0=_[_0xbf07('0x4d')]({},_0x53e1f0,_0x5d6e85['options']);return _0x3f5ded['getAgents'](_0x53e1f0);}})['then'](function(_0xd6a383){if(_0xd6a383){_0x125885=_0xd6a383['length'];if(!_0x5d6e85[_0xbf07('0x3a')][_0xbf07('0x42')](_0xbf07('0x43'))){_0x53e1f0[_0xbf07('0x2d')]=qs[_0xbf07('0x2d')](_0x5d6e85[_0xbf07('0x3a')]['limit']);_0x53e1f0[_0xbf07('0x44')]=qs['offset'](_0x5d6e85[_0xbf07('0x3a')][_0xbf07('0x44')]);}return _0x3f5ded[_0xbf07('0xae')](_0x53e1f0);}})[_0xbf07('0x33')](function(_0x17f6d7){if(_0x17f6d7){return _0x17f6d7?{'count':_0x125885,'rows':_0x17f6d7}:null;}})[_0xbf07('0x33')](respondWithResult(_0x281786,null))['catch'](handleError(_0x281786,null));};exports[_0xbf07('0x36')]=function(_0x5d16ac,_0x58d5ab,_0xe5e5f3){var _0x12b715,_0x1ac47b,_0x278924;if(_[_0xbf07('0x72')](_0x5d16ac[_0xbf07('0x5a')][_0xbf07('0x5a')])||_0x5d16ac[_0xbf07('0x5a')][_0xbf07('0x5a')]===''){throw new db[(_0xbf07('0x69'))]['ValidationError'](_0xbf07('0x73'));}if(_['isNil'](_0x5d16ac['body']['to'])){}_0x12b715=_0x5d16ac[_0xbf07('0x5a')]['to'];return db[_0xbf07('0x50')][_0xbf07('0x5f')]({'where':{'id':_0x5d16ac[_0xbf07('0x5b')]['id']}})['then'](handleEntityNotFound(_0x58d5ab,null))[_0xbf07('0x33')](function(_0x2a6dca){if(_0x2a6dca){return db[_0xbf07('0x50')][_0xbf07('0x58')]({'where':{'id':_0x2a6dca['id']},'include':[{'model':db['CmList'],'as':_0xbf07('0x79'),'include':[{'model':db[_0xbf07('0x68')],'as':_0xbf07('0x7a'),'where':{[_0x2a6dca['mapKey']]:_0x12b715},'limit':0x1,'order':[[_0xbf07('0x6e'),_0xbf07('0x7b')]]}]}]})['then'](handleEntityNotFound(_0x58d5ab,null))[_0xbf07('0x33')](function(_0xbfa18e){if(_0xbfa18e&&_0xbfa18e['List']){_0x1ac47b=_0xbfa18e[_0xbf07('0x8d')]({'plain':!![]});if(_0x1ac47b[_0xbf07('0x79')]&&_0x1ac47b[_0xbf07('0x79')][_0xbf07('0x7a')]['length']){return _0x1ac47b[_0xbf07('0x79')]['Contacts'][0x0];}return db['CmContact'][_0xbf07('0x59')](_[_0xbf07('0x19')](_0x5d16ac[_0xbf07('0x5a')],{'firstName':_0x12b715,[_0xbfa18e[_0xbf07('0x76')]]:_0x12b715,'phone':_0x12b715,'ListId':_0x1ac47b[_0xbf07('0x70')]}));}})[_0xbf07('0x33')](handleEntityNotFound(_0x58d5ab,null))[_0xbf07('0x33')](function(_0x9edec7){if(_0x9edec7){_0x278924=_0x9edec7;return db['OpenchannelInteraction'][_0xbf07('0x58')]({'where':{'ContactId':_0x278924['id'],'closed':![],'OpenchannelAccountId':_0x1ac47b['id']}})[_0xbf07('0x33')](function(_0xb08aba){if(_0xb08aba){return[_0xb08aba,![]];}return db[_0xbf07('0x8a')]['create']({'UserId':_0x5d16ac[_0xbf07('0xaf')]['id'],'ContactId':_0x278924['id'],'OpenchannelAccountId':_0x1ac47b['id'],'lastMsgDirection':_0xbf07('0xb0'),'Messages':[_['merge'](_0x5d16ac[_0xbf07('0x5a')],{'read':![],'body':_0x5d16ac['body'][_0xbf07('0x5a')],'OpenchannelAccountId':_0x1ac47b['id'],'UserId':_0x5d16ac[_0xbf07('0xaf')]['id'],'ContactId':_0x278924['id']})]},{'include':[{'model':db[_0xbf07('0x93')],'as':_0xbf07('0xb1')}]})[_0xbf07('0x33')](function(_0x5a21c8){return[_0x5a21c8,!![]];});});}})[_0xbf07('0x8b')](function(_0x59e844,_0x17f938){if(_0x17f938){return _0x59e844;}return db[_0xbf07('0x93')][_0xbf07('0x59')](_[_0xbf07('0x4d')](_0x5d16ac[_0xbf07('0x5a')],{'read':![],'body':_0x5d16ac[_0xbf07('0x5a')]['body'],'OpenchannelAccountId':_0x1ac47b['id'],'OpenchannelInteractionId':_0x59e844['id'],'UserId':_0x5d16ac[_0xbf07('0xaf')]['id'],'ContactId':_0x278924['id']}))['then'](function(_0x54bdaf){_0x59e844[_0xbf07('0xb2')][_0xbf07('0xb1')]=[];_0x59e844[_0xbf07('0xb2')][_0xbf07('0xb1')]['push'](_0x54bdaf[_0xbf07('0xb2')]);return _0x59e844;});});}})[_0xbf07('0x33')](respondWithResult(_0x58d5ab,null))[_0xbf07('0x56')](handleError(_0x58d5ab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2de=['update','remove','emit','hook','exports','events','../../mysqldb'];(function(_0x1e554f,_0x1989cb){var _0x2e07f2=function(_0x440993){while(--_0x440993){_0x1e554f['push'](_0x1e554f['shift']());}};_0x2e07f2(++_0x1989cb);}(_0xe2de,0x101));var _0xee2d=function(_0x2e6be8,_0x46c6ef){_0x2e6be8=_0x2e6be8-0x0;var _0x7b6b45=_0xe2de[_0x2e6be8];return _0x7b6b45;};'use strict';var EventEmitter=require(_0xee2d('0x0'));var OpenchannelAccount=require(_0xee2d('0x1'))['db']['OpenchannelAccount'];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xee2d('0x2'),'afterDestroy':_0xee2d('0x3')};function emitEvent(_0x557d40){return function(_0x32cc4c,_0x51018c,_0xdea8e6){OpenchannelAccountEvents['emit'](_0x557d40+':'+_0x32cc4c['id'],_0x32cc4c);OpenchannelAccountEvents[_0xee2d('0x4')](_0x557d40,_0x32cc4c);_0xdea8e6(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelAccount[_0xee2d('0x5')](e,emitEvent(event));}}module[_0xee2d('0x6')]=OpenchannelAccountEvents;
\ No newline at end of file
+var _0x239c=['exports','events','../../mysqldb','OpenchannelAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x32b34f,_0x258b11){var _0x21673b=function(_0x551ee1){while(--_0x551ee1){_0x32b34f['push'](_0x32b34f['shift']());}};_0x21673b(++_0x258b11);}(_0x239c,0xbf));var _0xc239=function(_0x4ca4eb,_0x4ccc12){_0x4ca4eb=_0x4ca4eb-0x0;var _0x1500a2=_0x239c[_0x4ca4eb];return _0x1500a2;};'use strict';var EventEmitter=require(_0xc239('0x0'));var OpenchannelAccount=require(_0xc239('0x1'))['db'][_0xc239('0x2')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0xc239('0x3')](0x0);var events={'afterCreate':_0xc239('0x4'),'afterUpdate':_0xc239('0x5'),'afterDestroy':_0xc239('0x6')};function emitEvent(_0x298316){return function(_0x18f38b,_0x151751,_0x2d5dae){OpenchannelAccountEvents[_0xc239('0x7')](_0x298316+':'+_0x18f38b['id'],_0x18f38b);OpenchannelAccountEvents[_0xc239('0x7')](_0x298316,_0x18f38b);_0x2d5dae(null);};}for(var e in events){if(events[_0xc239('0x8')](e)){var event=events[e];OpenchannelAccount['hook'](e,emitEvent(event));}}module[_0xc239('0x9')]=OpenchannelAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['define','OpenchannelAccount','util','../../config/logger','request-promise','exports'];(function(_0x9e0cb3,_0x9cd497){var _0x5926b7=function(_0x30e82d){while(--_0x30e82d){_0x9e0cb3['push'](_0x9e0cb3['shift']());}};_0x5926b7(++_0x9cd497);}(_0xda3f,0xec));var _0xfda3=function(_0x47987d,_0x553e5d){_0x47987d=_0x47987d-0x0;var _0x3514ff=_0xda3f[_0x47987d];return _0x3514ff;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var logger=require(_0xfda3('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xfda3('0x2'));var attributes=require('./openchannelAccount.attributes');module[_0xfda3('0x3')]=function(_0x22187d,_0x516500){return _0x22187d[_0xfda3('0x4')](_0xfda3('0x5'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb7e7=['openchannel_accounts','lodash','../../config/logger','moment','request-promise','exports'];(function(_0x586d1d,_0x5a5e7b){var _0x3dd5c4=function(_0x1c6b95){while(--_0x1c6b95){_0x586d1d['push'](_0x586d1d['shift']());}};_0x3dd5c4(++_0x5a5e7b);}(_0xb7e7,0x121));var _0x7b7e=function(_0x1f9f37,_0x18776e){_0x1f9f37=_0x1f9f37-0x0;var _0x21c080=_0xb7e7[_0x1f9f37];return _0x21c080;};'use strict';var _=require(_0x7b7e('0x0'));var util=require('util');var logger=require(_0x7b7e('0x1'))('api');var moment=require(_0x7b7e('0x2'));var BPromise=require('bluebird');var rp=require(_0x7b7e('0x3'));var attributes=require('./openchannelAccount.attributes');module[_0x7b7e('0x4')]=function(_0x118577,_0x1d9384){return _0x118577['define']('OpenchannelAccount',attributes,{'tableName':_0x7b7e('0x5'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x796f=['../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','request','then','info','OpenchannelAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x796f,0x131));var _0xf796=function(_0x5744cf,_0x2ecb72){_0x5744cf=_0x5744cf-0x0;var _0x57d65e=_0x796f[_0x5744cf];return _0x57d65e;};'use strict';var _=require('lodash');var util=require(_0xf796('0x0'));var moment=require(_0xf796('0x1'));var BPromise=require(_0xf796('0x2'));var rs=require(_0xf796('0x3'));var fs=require('fs');var db=require(_0xf796('0x4'))['db'];var utils=require(_0xf796('0x5'));var logger=require(_0xf796('0x6'))('rpc');var config=require(_0xf796('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xf796('0x8')][_0xf796('0x9')]({'port':0x232a});config[_0xf796('0xa')]=_[_0xf796('0xb')](config[_0xf796('0xa')],{'host':_0xf796('0xc'),'port':0x18eb});var socket=require(_0xf796('0xd'))(config[_0xf796('0xa')]);require(_0xf796('0xe'))[_0xf796('0xf')](socket);function respondWithRpcPromise(_0x239391,_0x3c1593,_0x821285){return new BPromise(function(_0x4869ff,_0xf0d514){return client[_0xf796('0x10')](_0x239391,_0x821285)[_0xf796('0x11')](function(_0x28482d){logger[_0xf796('0x12')](_0xf796('0x13'),_0x3c1593,'request\x20sent');logger[_0xf796('0x14')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x3c1593,_0xf796('0x15'),JSON[_0xf796('0x16')](_0x28482d));if(_0x28482d[_0xf796('0x17')]){if(_0x28482d['error']['code']===0x1f4){logger['error']('OpenchannelAccount,\x20%s,\x20%s',_0x3c1593,_0x28482d['error'][_0xf796('0x18')]);return _0xf0d514(_0x28482d[_0xf796('0x17')][_0xf796('0x18')]);}logger[_0xf796('0x17')](_0xf796('0x13'),_0x3c1593,_0x28482d[_0xf796('0x17')]['message']);return _0x4869ff(_0x28482d[_0xf796('0x17')][_0xf796('0x18')]);}else{logger[_0xf796('0x12')](_0xf796('0x13'),_0x3c1593,'request\x20sent');_0x4869ff(_0x28482d['result']['message']);}})[_0xf796('0x19')](function(_0xbec424){logger['error'](_0xf796('0x13'),_0x3c1593,_0xbec424);_0xf0d514(_0xbec424);});});}
\ No newline at end of file
+var _0x7a54=['result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','defaults','redis','socket.io-emitter','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7a54,0x106));var _0x47a5=function(_0x58d4bf,_0x46416f){_0x58d4bf=_0x58d4bf-0x0;var _0x4bc2b6=_0x7a54[_0x58d4bf];return _0x4bc2b6;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});config['redis']=_[_0x47a5('0xb')](config[_0x47a5('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x47a5('0xd'))(new Redis(config['redis']));require('./openchannelAccount.socket')['register'](socket);function respondWithRpcPromise(_0x2a0e98,_0x2baee7,_0x5e31dd){return new BPromise(function(_0x2eb0dd,_0x49e844){return client['request'](_0x2a0e98,_0x5e31dd)[_0x47a5('0xe')](function(_0x69e4d4){logger[_0x47a5('0xf')](_0x47a5('0x10'),_0x2baee7,_0x47a5('0x11'));logger[_0x47a5('0x12')](_0x47a5('0x13'),_0x2baee7,'request\x20sent',JSON[_0x47a5('0x14')](_0x69e4d4));if(_0x69e4d4[_0x47a5('0x15')]){if(_0x69e4d4[_0x47a5('0x15')][_0x47a5('0x16')]===0x1f4){logger[_0x47a5('0x15')](_0x47a5('0x10'),_0x2baee7,_0x69e4d4[_0x47a5('0x15')][_0x47a5('0x17')]);return _0x49e844(_0x69e4d4['error'][_0x47a5('0x17')]);}logger[_0x47a5('0x15')](_0x47a5('0x10'),_0x2baee7,_0x69e4d4[_0x47a5('0x15')][_0x47a5('0x17')]);return _0x2eb0dd(_0x69e4d4['error']['message']);}else{logger[_0x47a5('0xf')]('OpenchannelAccount,\x20%s,\x20%s',_0x2baee7,'request\x20sent');_0x2eb0dd(_0x69e4d4[_0x47a5('0x18')][_0x47a5('0x17')]);}})[_0x47a5('0x19')](function(_0x1ef371){logger[_0x47a5('0x15')](_0x47a5('0x10'),_0x2baee7,_0x1ef371);_0x49e844(_0x1ef371);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x898f=['save','remove','update','emit','removeListener','openchannelAccount:'];(function(_0x2c3880,_0x3abfef){var _0x855f7c=function(_0x44b7f8){while(--_0x44b7f8){_0x2c3880['push'](_0x2c3880['shift']());}};_0x855f7c(++_0x3abfef);}(_0x898f,0x150));var _0xf898=function(_0xa4eda0,_0x39f704){_0xa4eda0=_0xa4eda0-0x0;var _0x5ec270=_0x898f[_0xa4eda0];return _0x5ec270;};'use strict';var OpenchannelAccountEvents=require('./openchannelAccount.events');var events=[_0xf898('0x0'),_0xf898('0x1'),_0xf898('0x2')];function createListener(_0x43e6ab,_0x1654a8){return function(_0x4b4bba){_0x1654a8[_0xf898('0x3')](_0x43e6ab,_0x4b4bba);};}function removeListener(_0xa2e0fd,_0xec3799){return function(){OpenchannelAccountEvents[_0xf898('0x4')](_0xa2e0fd,_0xec3799);};}exports['register']=function(_0x20e235){for(var _0x1737b4=0x0,_0x40e6d5=events['length'];_0x1737b4<_0x40e6d5;_0x1737b4++){var _0x2418e5=events[_0x1737b4];var _0x77a6de=createListener(_0xf898('0x5')+_0x2418e5,_0x20e235);OpenchannelAccountEvents['on'](_0x2418e5,_0x77a6de);}};
\ No newline at end of file
+var _0xcd70=['remove','update','emit','removeListener','register','openchannelAccount:','./openchannelAccount.events','save'];(function(_0x4c90b3,_0x244ec5){var _0x3e0f74=function(_0x400783){while(--_0x400783){_0x4c90b3['push'](_0x4c90b3['shift']());}};_0x3e0f74(++_0x244ec5);}(_0xcd70,0x146));var _0x0cd7=function(_0x5489e0,_0xc8ebed){_0x5489e0=_0x5489e0-0x0;var _0x172637=_0xcd70[_0x5489e0];return _0x172637;};'use strict';var OpenchannelAccountEvents=require(_0x0cd7('0x0'));var events=[_0x0cd7('0x1'),_0x0cd7('0x2'),_0x0cd7('0x3')];function createListener(_0x15b983,_0x55ec7d){return function(_0x399c13){_0x55ec7d[_0x0cd7('0x4')](_0x15b983,_0x399c13);};}function removeListener(_0x428e6a,_0x464d52){return function(){OpenchannelAccountEvents[_0x0cd7('0x5')](_0x428e6a,_0x464d52);};}exports[_0x0cd7('0x6')]=function(_0x4f9b){for(var _0x331eac=0x0,_0x2625df=events['length'];_0x331eac<_0x2625df;_0x331eac++){var _0x31f762=events[_0x331eac];var _0x4d567d=createListener(_0x0cd7('0x7')+_0x31f762,_0x4f9b);OpenchannelAccountEvents['on'](_0x31f762,_0x4d567d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b6c=['post','create','update','destroy','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','./openchannelApplication.controller','isAuthenticated','index','/:id','show'];(function(_0x31ced5,_0x5d5415){var _0x10d9e5=function(_0x2e51a5){while(--_0x2e51a5){_0x31ced5['push'](_0x31ced5['shift']());}};_0x10d9e5(++_0x5d5415);}(_0x2b6c,0x64));var _0xc2b6=function(_0x37cc4c,_0x288c26){_0x37cc4c=_0x37cc4c-0x0;var _0x425695=_0x2b6c[_0x37cc4c];return _0x425695;};'use strict';var multer=require(_0xc2b6('0x0'));var util=require(_0xc2b6('0x1'));var path=require(_0xc2b6('0x2'));var timeout=require(_0xc2b6('0x3'));var express=require('express');var router=express[_0xc2b6('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0xc2b6('0x5'));var config=require(_0xc2b6('0x6'));var controller=require(_0xc2b6('0x7'));router['get']('/',auth[_0xc2b6('0x8')](),controller[_0xc2b6('0x9')]);router['get'](_0xc2b6('0xa'),auth[_0xc2b6('0x8')](),controller[_0xc2b6('0xb')]);router[_0xc2b6('0xc')]('/',auth[_0xc2b6('0x8')](),controller[_0xc2b6('0xd')]);router['put']('/:id',auth[_0xc2b6('0x8')](),controller[_0xc2b6('0xe')]);router['delete'](_0xc2b6('0xa'),auth[_0xc2b6('0x8')](),controller[_0xc2b6('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0x6017=['destroy','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelApplication.controller','index','/:id','isAuthenticated','post','create','put','update','delete'];(function(_0x5e9959,_0x44e01e){var _0x2a6b53=function(_0x233741){while(--_0x233741){_0x5e9959['push'](_0x5e9959['shift']());}};_0x2a6b53(++_0x44e01e);}(_0x6017,0x177));var _0x7601=function(_0x17fb57,_0x3a01be){_0x17fb57=_0x17fb57-0x0;var _0x23cf62=_0x6017[_0x17fb57];return _0x23cf62;};'use strict';var multer=require('multer');var util=require(_0x7601('0x0'));var path=require('path');var timeout=require(_0x7601('0x1'));var express=require(_0x7601('0x2'));var router=express[_0x7601('0x3')]();var auth=require(_0x7601('0x4'));var interaction=require(_0x7601('0x5'));var config=require(_0x7601('0x6'));var controller=require(_0x7601('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x7601('0x8')]);router['get'](_0x7601('0x9'),auth[_0x7601('0xa')](),controller['show']);router[_0x7601('0xb')]('/',auth[_0x7601('0xa')](),controller[_0x7601('0xc')]);router[_0x7601('0xd')](_0x7601('0x9'),auth[_0x7601('0xa')](),controller[_0x7601('0xe')]);router[_0x7601('0xf')](_0x7601('0x9'),auth[_0x7601('0xa')](),controller[_0x7601('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c88=['exports','noop','STRING','*,*,*,*'];(function(_0x34eb31,_0x8f0f70){var _0x254994=function(_0xbec9a3){while(--_0xbec9a3){_0x34eb31['push'](_0x34eb31['shift']());}};_0x254994(++_0x8f0f70);}(_0x1c88,0x120));var _0x81c8=function(_0x2d10f7,_0x36abd0){_0x2d10f7=_0x2d10f7-0x0;var _0x94c2f7=_0x1c88[_0x2d10f7];return _0x94c2f7;};'use strict';var Sequelize=require('sequelize');module[_0x81c8('0x0')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x81c8('0x1')},'appdata':{'type':Sequelize[_0x81c8('0x2')](0x1000),'defaultValue':''},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x81c8('0x2')],'defaultValue':_0x81c8('0x3')}};
\ No newline at end of file
+var _0xb2fb=['STRING','*,*,*,*','sequelize','exports','noop'];(function(_0x2d64fc,_0x42b2a7){var _0x2c8556=function(_0x4b29da){while(--_0x4b29da){_0x2d64fc['push'](_0x2d64fc['shift']());}};_0x2c8556(++_0x42b2a7);}(_0xb2fb,0x165));var _0xbb2f=function(_0x24d35a,_0x18f2a9){_0x24d35a=_0x24d35a-0x0;var _0x3cf1cc=_0xb2fb[_0x24d35a];return _0x3cf1cc;};'use strict';var Sequelize=require(_0xbb2f('0x0'));module[_0xbb2f('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xbb2f('0x2')},'appdata':{'type':Sequelize[_0xbb2f('0x3')](0x1000),'defaultValue':''},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xbb2f('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x919f=['error','stack','name','send','index','rawAttributes','query','dateStart','dateEnd','keys','attributes','intersection','model','fields','hasOwnProperty','nolimit','limit','order','sort','where','filters','add','day','merge','filter','includeAll','include','OpenchannelApplication','findAll','rows','catch','show','params','options','find','create','body','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy'];(function(_0x784660,_0x2a2e51){var _0x37067c=function(_0x1cc167){while(--_0x1cc167){_0x784660['push'](_0x784660['shift']());}};_0x37067c(++_0x2a2e51);}(_0x919f,0x192));var _0xf919=function(_0xd68107,_0xb1ba09){_0xd68107=_0xd68107-0x0;var _0x40b5fb=_0x919f[_0xd68107];return _0x40b5fb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf919('0x0'));var rimraf=require(_0xf919('0x1'));var zipdir=require(_0xf919('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf919('0x3'));var moment=require(_0xf919('0x4'));var BPromise=require(_0xf919('0x5'));var Mustache=require(_0xf919('0x6'));var util=require(_0xf919('0x7'));var path=require('path');var sox=require(_0xf919('0x8'));var csv=require(_0xf919('0x9'));var ejs=require(_0xf919('0xa'));var fs=require('fs');var _=require(_0xf919('0xb'));var squel=require(_0xf919('0xc'));var crypto=require(_0xf919('0xd'));var jsforce=require(_0xf919('0xe'));var deskjs=require(_0xf919('0xf'));var toCsv=require('to-csv');var querystring=require(_0xf919('0x10'));var Papa=require(_0xf919('0x11'));var qs=require(_0xf919('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0xf919('0x13'));var config=require(_0xf919('0x14'));var db=require(_0xf919('0x15'))['db'];function respondWithStatusCode(_0x59c93,_0x198f8f){_0x198f8f=_0x198f8f||0xcc;return function(_0x16f90c){if(_0x16f90c){return _0x59c93[_0xf919('0x16')](_0x198f8f);}return _0x59c93[_0xf919('0x17')](_0x198f8f)[_0xf919('0x18')]();};}function respondWithResult(_0x53cb23,_0x34f120){_0x34f120=_0x34f120||0xc8;return function(_0x4f0931){if(_0x4f0931){return _0x53cb23[_0xf919('0x17')](_0x34f120)[_0xf919('0x19')](_0x4f0931);}};}function respondWithFilteredResult(_0x3506c6,_0x348a36){return function(_0x5b4681){if(_0x5b4681){var _0x22d9ad=_0x5b4681[_0xf919('0x1a')],_0x1605bb=_0x348a36[_0xf919('0x1b')],_0x1e2bdd=_0x348a36[_0xf919('0x1b')]+_0x348a36['limit'],_0x48b5ff;if(_0x1e2bdd>=_0x22d9ad){_0x1e2bdd=_0x22d9ad;_0x48b5ff=0xc8;}else{_0x48b5ff=0xce;}_0x3506c6[_0xf919('0x17')](_0x48b5ff);return _0x3506c6[_0xf919('0x1c')](_0xf919('0x1d'),_0x1605bb+'-'+_0x1e2bdd+'/'+_0x22d9ad)[_0xf919('0x19')](_0x5b4681);}return null;};}function patchUpdates(_0x484eec){return function(_0x3a2225){try{jsonpatch[_0xf919('0x1e')](_0x3a2225,_0x484eec,!![]);}catch(_0x351b27){return BPromise[_0xf919('0x1f')](_0x351b27);}return _0x3a2225[_0xf919('0x20')]();};}function saveUpdates(_0x32df58,_0x3f59cf){return function(_0x494838){if(_0x494838){return _0x494838[_0xf919('0x21')](_0x32df58)[_0xf919('0x22')](function(_0x26c8ff){return _0x26c8ff;});}return null;};}function removeEntity(_0xdf6dc,_0x1b5bf5){return function(_0x292ed0){if(_0x292ed0){return _0x292ed0[_0xf919('0x23')]()['then'](function(){_0xdf6dc[_0xf919('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2dba31,_0x4b535f){return function(_0x243a5a){if(!_0x243a5a){_0x2dba31['sendStatus'](0x194);}return _0x243a5a;};}function handleError(_0x3630f7,_0x46dc14){_0x46dc14=_0x46dc14||0x1f4;return function(_0x1756f6){logger[_0xf919('0x24')](_0x1756f6[_0xf919('0x25')]);if(_0x1756f6['name']){delete _0x1756f6[_0xf919('0x26')];}_0x3630f7[_0xf919('0x17')](_0x46dc14)[_0xf919('0x27')](_0x1756f6);};}exports[_0xf919('0x28')]=function(_0x2a93ce,_0x4d0104){var _0x10ec56={},_0x5713ef={},_0x1961fb={'count':0x0,'rows':[]};var _0x41bee0=db['OpenchannelApplication'][_0xf919('0x29')];_0x5713ef['model']=_['keys'](_0x41bee0);var _0xeec592={'dateStart':_0x2a93ce[_0xf919('0x2a')][_0xf919('0x2b')],'dateEnd':_0x2a93ce[_0xf919('0x2a')]['dateEnd']};delete _0x2a93ce[_0xf919('0x2a')][_0xf919('0x2b')];delete _0x2a93ce[_0xf919('0x2a')][_0xf919('0x2c')];_0x5713ef[_0xf919('0x2a')]=_[_0xf919('0x2d')](_0x2a93ce['query']);_0x5713ef['filters']=_['intersection'](_0x5713ef['model'],_0x5713ef[_0xf919('0x2a')]);_0x10ec56[_0xf919('0x2e')]=_[_0xf919('0x2f')](_0x5713ef[_0xf919('0x30')],qs[_0xf919('0x31')](_0x2a93ce[_0xf919('0x2a')][_0xf919('0x31')]));_0x10ec56[_0xf919('0x2e')]=_0x10ec56[_0xf919('0x2e')]['length']?_0x10ec56['attributes']:_0x5713ef['model'];if(!_0x2a93ce[_0xf919('0x2a')][_0xf919('0x32')](_0xf919('0x33'))){_0x10ec56[_0xf919('0x34')]=qs[_0xf919('0x34')](_0x2a93ce[_0xf919('0x2a')]['limit']);_0x10ec56[_0xf919('0x1b')]=qs[_0xf919('0x1b')](_0x2a93ce[_0xf919('0x2a')][_0xf919('0x1b')]);}_0x10ec56[_0xf919('0x35')]=qs[_0xf919('0x36')](_0x2a93ce[_0xf919('0x2a')][_0xf919('0x36')]);_0x10ec56[_0xf919('0x37')]=qs['filters'](_['pick'](_0x2a93ce[_0xf919('0x2a')],_0x5713ef[_0xf919('0x38')]));if(_0xeec592[_0xf919('0x2b')]){if(_0xeec592[_0xf919('0x2c')]){_0xeec592[_0xf919('0x2c')]=moment(_0xeec592[_0xf919('0x2c')])[_0xf919('0x39')](0x1,'day');}else{_0xeec592[_0xf919('0x2c')]=moment(_0xeec592[_0xf919('0x2b')])[_0xf919('0x39')](0x1,_0xf919('0x3a'));}_[_0xf919('0x3b')](_0x10ec56[_0xf919('0x37')],{'createdAt':{'$gte':_0xeec592[_0xf919('0x2b')],'$lte':_0xeec592['dateEnd']}});}if(_0x2a93ce['query'][_0xf919('0x3c')]){_0x10ec56[_0xf919('0x37')]=_[_0xf919('0x3b')](_0x10ec56[_0xf919('0x37')],{'$or':_['map'](_0x10ec56['attributes'],function(_0x11ecc7){var _0x37bde2={};_0x37bde2[_0x11ecc7]={'$like':'%'+_0x2a93ce['query'][_0xf919('0x3c')]+'%'};return _0x37bde2;})});}_0x10ec56=_[_0xf919('0x3b')]({},_0x10ec56,_0x2a93ce['options']);var _0x4a3682={'where':_0x10ec56[_0xf919('0x37')]};return db['OpenchannelApplication'][_0xf919('0x1a')](_0x4a3682)[_0xf919('0x22')](function(_0x2c9775){_0x1961fb[_0xf919('0x1a')]=_0x2c9775;if(_0x2a93ce[_0xf919('0x2a')][_0xf919('0x3d')]){_0x10ec56[_0xf919('0x3e')]=[{'all':!![]}];}return db[_0xf919('0x3f')][_0xf919('0x40')](_0x10ec56);})[_0xf919('0x22')](function(_0x265ee6){_0x1961fb[_0xf919('0x41')]=_0x265ee6;return _0x1961fb;})[_0xf919('0x22')](respondWithFilteredResult(_0x4d0104,_0x10ec56))[_0xf919('0x42')](handleError(_0x4d0104,null));};exports[_0xf919('0x43')]=function(_0x5d0449,_0x42199b){var _0x1fbe59={'raw':!![],'where':{'id':_0x5d0449[_0xf919('0x44')]['id']}},_0x1f67b3={};_0x1f67b3['model']=_['keys'](db['OpenchannelApplication'][_0xf919('0x29')]);_0x1f67b3[_0xf919('0x2a')]=_['keys'](_0x5d0449[_0xf919('0x2a')]);_0x1f67b3[_0xf919('0x38')]=_[_0xf919('0x2f')](_0x1f67b3[_0xf919('0x30')],_0x1f67b3[_0xf919('0x2a')]);_0x1fbe59[_0xf919('0x2e')]=_[_0xf919('0x2f')](_0x1f67b3[_0xf919('0x30')],qs[_0xf919('0x31')](_0x5d0449[_0xf919('0x2a')][_0xf919('0x31')]));_0x1fbe59[_0xf919('0x2e')]=_0x1fbe59[_0xf919('0x2e')]['length']?_0x1fbe59['attributes']:_0x1f67b3[_0xf919('0x30')];if(_0x5d0449['query'][_0xf919('0x3d')]){_0x1fbe59[_0xf919('0x3e')]=[{'all':!![]}];}_0x1fbe59=_[_0xf919('0x3b')]({},_0x1fbe59,_0x5d0449[_0xf919('0x45')]);return db[_0xf919('0x3f')][_0xf919('0x46')](_0x1fbe59)[_0xf919('0x22')](handleEntityNotFound(_0x42199b,null))[_0xf919('0x22')](respondWithResult(_0x42199b,null))[_0xf919('0x42')](handleError(_0x42199b,null));};exports[_0xf919('0x47')]=function(_0x4c4ad4,_0x1a9bf6){return db[_0xf919('0x3f')][_0xf919('0x47')](_0x4c4ad4[_0xf919('0x48')],{})[_0xf919('0x22')](respondWithResult(_0x1a9bf6,0xc9))[_0xf919('0x42')](handleError(_0x1a9bf6,null));};exports[_0xf919('0x21')]=function(_0x3612b7,_0x23fb61){if(_0x3612b7[_0xf919('0x48')]['id']){delete _0x3612b7[_0xf919('0x48')]['id'];}return db['OpenchannelApplication'][_0xf919('0x46')]({'where':{'id':_0x3612b7['params']['id']}})[_0xf919('0x22')](handleEntityNotFound(_0x23fb61,null))[_0xf919('0x22')](saveUpdates(_0x3612b7[_0xf919('0x48')],null))[_0xf919('0x22')](respondWithResult(_0x23fb61,null))[_0xf919('0x42')](handleError(_0x23fb61,null));};exports[_0xf919('0x23')]=function(_0x52969,_0x317675){return db[_0xf919('0x3f')][_0xf919('0x46')]({'where':{'id':_0x52969[_0xf919('0x44')]['id']}})[_0xf919('0x22')](handleEntityNotFound(_0x317675,null))[_0xf919('0x22')](removeEntity(_0x317675,null))['catch'](handleError(_0x317675,null));};
\ No newline at end of file
+var _0x5af1=['limit','set','Content-Range','json','reject','save','then','destroy','error','stack','name','send','index','OpenchannelApplication','rawAttributes','keys','query','dateStart','dateEnd','filters','model','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','show','params','create','body','find','catch','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x5af1,0x76));var _0x15af=function(_0x2077c2,_0x275ab5){_0x2077c2=_0x2077c2-0x0;var _0x312f9f=_0x5af1[_0x2077c2];return _0x312f9f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x15af('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x15af('0x1'));var jsonpatch=require(_0x15af('0x2'));var rp=require(_0x15af('0x3'));var moment=require(_0x15af('0x4'));var BPromise=require(_0x15af('0x5'));var Mustache=require(_0x15af('0x6'));var util=require('util');var path=require(_0x15af('0x7'));var sox=require(_0x15af('0x8'));var csv=require(_0x15af('0x9'));var ejs=require(_0x15af('0xa'));var fs=require('fs');var _=require(_0x15af('0xb'));var squel=require(_0x15af('0xc'));var crypto=require(_0x15af('0xd'));var jsforce=require(_0x15af('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x15af('0x9'));var querystring=require(_0x15af('0xf'));var Papa=require(_0x15af('0x10'));var Redis=require('ioredis');var qs=require(_0x15af('0x11'));var logger=require(_0x15af('0x12'))(_0x15af('0x13'));var utils=require(_0x15af('0x14'));var config=require(_0x15af('0x15'));var db=require(_0x15af('0x16'))['db'];function respondWithStatusCode(_0x5a7099,_0xa5ce50){_0xa5ce50=_0xa5ce50||0xcc;return function(_0x27732e){if(_0x27732e){return _0x5a7099[_0x15af('0x17')](_0xa5ce50);}return _0x5a7099[_0x15af('0x18')](_0xa5ce50)[_0x15af('0x19')]();};}function respondWithResult(_0x4c860f,_0x20a3dc){_0x20a3dc=_0x20a3dc||0xc8;return function(_0x38c15d){if(_0x38c15d){return _0x4c860f[_0x15af('0x18')](_0x20a3dc)['json'](_0x38c15d);}};}function respondWithFilteredResult(_0x5c6755,_0x30b3b9){return function(_0x3660b7){if(_0x3660b7){var _0x2aec2d=_0x3660b7[_0x15af('0x1a')],_0x24785a=_0x30b3b9[_0x15af('0x1b')],_0x14dea4=_0x30b3b9['offset']+_0x30b3b9[_0x15af('0x1c')],_0x48bf49;if(_0x14dea4>=_0x2aec2d){_0x14dea4=_0x2aec2d;_0x48bf49=0xc8;}else{_0x48bf49=0xce;}_0x5c6755[_0x15af('0x18')](_0x48bf49);return _0x5c6755[_0x15af('0x1d')](_0x15af('0x1e'),_0x24785a+'-'+_0x14dea4+'/'+_0x2aec2d)[_0x15af('0x1f')](_0x3660b7);}return null;};}function patchUpdates(_0x5e9ff4){return function(_0x32068c){try{jsonpatch['apply'](_0x32068c,_0x5e9ff4,!![]);}catch(_0x50e603){return BPromise[_0x15af('0x20')](_0x50e603);}return _0x32068c[_0x15af('0x21')]();};}function saveUpdates(_0x4c6f8c,_0x4ea8bf){return function(_0x17db54){if(_0x17db54){return _0x17db54['update'](_0x4c6f8c)[_0x15af('0x22')](function(_0x50518a){return _0x50518a;});}return null;};}function removeEntity(_0x234b40,_0x2e67f3){return function(_0x31c0dc){if(_0x31c0dc){return _0x31c0dc[_0x15af('0x23')]()[_0x15af('0x22')](function(){_0x234b40['status'](0xcc)[_0x15af('0x19')]();});}};}function handleEntityNotFound(_0x18b30d,_0xb84525){return function(_0x447712){if(!_0x447712){_0x18b30d['sendStatus'](0x194);}return _0x447712;};}function handleError(_0x49760b,_0x4735ca){_0x4735ca=_0x4735ca||0x1f4;return function(_0x40aa4b){logger[_0x15af('0x24')](_0x40aa4b[_0x15af('0x25')]);if(_0x40aa4b[_0x15af('0x26')]){delete _0x40aa4b[_0x15af('0x26')];}_0x49760b[_0x15af('0x18')](_0x4735ca)[_0x15af('0x27')](_0x40aa4b);};}exports[_0x15af('0x28')]=function(_0x382443,_0x1d4ad3){var _0xda03d0={},_0x59b39a={},_0x42d38c={'count':0x0,'rows':[]};var _0x43b1d4=db[_0x15af('0x29')][_0x15af('0x2a')];_0x59b39a['model']=_[_0x15af('0x2b')](_0x43b1d4);var _0x5073dd={'dateStart':_0x382443[_0x15af('0x2c')][_0x15af('0x2d')],'dateEnd':_0x382443[_0x15af('0x2c')][_0x15af('0x2e')]};delete _0x382443[_0x15af('0x2c')]['dateStart'];delete _0x382443[_0x15af('0x2c')][_0x15af('0x2e')];_0x59b39a[_0x15af('0x2c')]=_[_0x15af('0x2b')](_0x382443[_0x15af('0x2c')]);_0x59b39a[_0x15af('0x2f')]=_['intersection'](_0x59b39a[_0x15af('0x30')],_0x59b39a[_0x15af('0x2c')]);_0xda03d0[_0x15af('0x31')]=_[_0x15af('0x32')](_0x59b39a[_0x15af('0x30')],qs[_0x15af('0x33')](_0x382443[_0x15af('0x2c')][_0x15af('0x33')]));_0xda03d0['attributes']=_0xda03d0[_0x15af('0x31')]['length']?_0xda03d0[_0x15af('0x31')]:_0x59b39a[_0x15af('0x30')];if(!_0x382443[_0x15af('0x2c')][_0x15af('0x34')](_0x15af('0x35'))){_0xda03d0[_0x15af('0x1c')]=qs[_0x15af('0x1c')](_0x382443[_0x15af('0x2c')][_0x15af('0x1c')]);_0xda03d0[_0x15af('0x1b')]=qs['offset'](_0x382443['query'][_0x15af('0x1b')]);}_0xda03d0['order']=qs[_0x15af('0x36')](_0x382443['query']['sort']);_0xda03d0[_0x15af('0x37')]=qs[_0x15af('0x2f')](_[_0x15af('0x38')](_0x382443['query'],_0x59b39a[_0x15af('0x2f')]));if(_0x5073dd[_0x15af('0x2d')]){if(_0x5073dd[_0x15af('0x2e')]){_0x5073dd[_0x15af('0x2e')]=moment(_0x5073dd[_0x15af('0x2e')])[_0x15af('0x39')](0x1,_0x15af('0x3a'));}else{_0x5073dd[_0x15af('0x2e')]=moment(_0x5073dd[_0x15af('0x2d')])[_0x15af('0x39')](0x1,_0x15af('0x3a'));}_[_0x15af('0x3b')](_0xda03d0[_0x15af('0x37')],{'createdAt':{'$gte':_0x5073dd[_0x15af('0x2d')],'$lte':_0x5073dd['dateEnd']}});}if(_0x382443[_0x15af('0x2c')][_0x15af('0x3c')]){_0xda03d0['where']=_['merge'](_0xda03d0[_0x15af('0x37')],{'$or':_[_0x15af('0x3d')](_0xda03d0[_0x15af('0x31')],function(_0x2448c5){var _0x2981d7={};_0x2981d7[_0x2448c5]={'$like':'%'+_0x382443[_0x15af('0x2c')][_0x15af('0x3c')]+'%'};return _0x2981d7;})});}_0xda03d0=_[_0x15af('0x3b')]({},_0xda03d0,_0x382443[_0x15af('0x3e')]);var _0x45742c={'where':_0xda03d0['where']};return db[_0x15af('0x29')][_0x15af('0x1a')](_0x45742c)[_0x15af('0x22')](function(_0x4ff2d3){_0x42d38c[_0x15af('0x1a')]=_0x4ff2d3;if(_0x382443[_0x15af('0x2c')][_0x15af('0x3f')]){_0xda03d0[_0x15af('0x40')]=[{'all':!![]}];}return db['OpenchannelApplication'][_0x15af('0x41')](_0xda03d0);})['then'](function(_0x57b60b){_0x42d38c[_0x15af('0x42')]=_0x57b60b;return _0x42d38c;})[_0x15af('0x22')](respondWithFilteredResult(_0x1d4ad3,_0xda03d0))['catch'](handleError(_0x1d4ad3,null));};exports[_0x15af('0x43')]=function(_0x35404b,_0x90a7a4){var _0xc0b606={'raw':!![],'where':{'id':_0x35404b[_0x15af('0x44')]['id']}},_0x72d2d0={};_0x72d2d0[_0x15af('0x30')]=_[_0x15af('0x2b')](db[_0x15af('0x29')][_0x15af('0x2a')]);_0x72d2d0[_0x15af('0x2c')]=_['keys'](_0x35404b[_0x15af('0x2c')]);_0x72d2d0['filters']=_[_0x15af('0x32')](_0x72d2d0[_0x15af('0x30')],_0x72d2d0[_0x15af('0x2c')]);_0xc0b606[_0x15af('0x31')]=_['intersection'](_0x72d2d0[_0x15af('0x30')],qs[_0x15af('0x33')](_0x35404b[_0x15af('0x2c')]['fields']));_0xc0b606['attributes']=_0xc0b606['attributes']['length']?_0xc0b606['attributes']:_0x72d2d0[_0x15af('0x30')];if(_0x35404b[_0x15af('0x2c')]['includeAll']){_0xc0b606['include']=[{'all':!![]}];}_0xc0b606=_[_0x15af('0x3b')]({},_0xc0b606,_0x35404b['options']);return db['OpenchannelApplication']['find'](_0xc0b606)[_0x15af('0x22')](handleEntityNotFound(_0x90a7a4,null))['then'](respondWithResult(_0x90a7a4,null))['catch'](handleError(_0x90a7a4,null));};exports[_0x15af('0x45')]=function(_0x22a459,_0x145042){return db['OpenchannelApplication']['create'](_0x22a459['body'],{})[_0x15af('0x22')](respondWithResult(_0x145042,0xc9))['catch'](handleError(_0x145042,null));};exports['update']=function(_0x267db7,_0x5ac691){if(_0x267db7[_0x15af('0x46')]['id']){delete _0x267db7[_0x15af('0x46')]['id'];}return db['OpenchannelApplication'][_0x15af('0x47')]({'where':{'id':_0x267db7[_0x15af('0x44')]['id']}})[_0x15af('0x22')](handleEntityNotFound(_0x5ac691,null))[_0x15af('0x22')](saveUpdates(_0x267db7[_0x15af('0x46')],null))[_0x15af('0x22')](respondWithResult(_0x5ac691,null))[_0x15af('0x48')](handleError(_0x5ac691,null));};exports['destroy']=function(_0x5a4cfc,_0x6261cc){return db[_0x15af('0x29')][_0x15af('0x47')]({'where':{'id':_0x5a4cfc[_0x15af('0x44')]['id']}})['then'](handleEntityNotFound(_0x6261cc,null))['then'](removeEntity(_0x6261cc,null))[_0x15af('0x48')](handleError(_0x6261cc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fbd=['request-promise','exports','define','OpenchannelApplication','openchannel_applications','lodash','util','../../config/logger','moment','bluebird'];(function(_0x52282a,_0x45aef7){var _0x3c66b4=function(_0x312aa9){while(--_0x312aa9){_0x52282a['push'](_0x52282a['shift']());}};_0x3c66b4(++_0x45aef7);}(_0x9fbd,0xa5));var _0xd9fb=function(_0x538df3,_0x3d158d){_0x538df3=_0x538df3-0x0;var _0x50d2fe=_0x9fbd[_0x538df3];return _0x50d2fe;};'use strict';var _=require(_0xd9fb('0x0'));var util=require(_0xd9fb('0x1'));var logger=require(_0xd9fb('0x2'))('api');var moment=require(_0xd9fb('0x3'));var BPromise=require(_0xd9fb('0x4'));var rp=require(_0xd9fb('0x5'));var attributes=require('./openchannelApplication.attributes');module[_0xd9fb('0x6')]=function(_0x5a06f7,_0x34ffe3){return _0x5a06f7[_0xd9fb('0x7')](_0xd9fb('0x8'),attributes,{'tableName':_0xd9fb('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x44c3=['request-promise','exports','define','OpenchannelApplication','openchannel_applications','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x271731,_0x15537b){var _0x17b21b=function(_0x360ad8){while(--_0x360ad8){_0x271731['push'](_0x271731['shift']());}};_0x17b21b(++_0x15537b);}(_0x44c3,0x89));var _0x344c=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x44c3[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x344c('0x0'));var util=require(_0x344c('0x1'));var logger=require(_0x344c('0x2'))(_0x344c('0x3'));var moment=require(_0x344c('0x4'));var BPromise=require(_0x344c('0x5'));var rp=require(_0x344c('0x6'));var attributes=require('./openchannelApplication.attributes');module[_0x344c('0x7')]=function(_0x481698,_0x813700){return _0x481698[_0x344c('0x8')](_0x344c('0x9'),attributes,{'tableName':_0x344c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3435=['attributes','limit','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','client','http','request','then','info','request\x20sent','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','OpenchannelApplication,\x20%s,\x20%s','result','catch','UpdateOpenchannelApplication','update','body','options','raw','where'];(function(_0x19779b,_0x4357ea){var _0x721eb7=function(_0x2c9620){while(--_0x2c9620){_0x19779b['push'](_0x19779b['shift']());}};_0x721eb7(++_0x4357ea);}(_0x3435,0xfa));var _0x5343=function(_0x34ad72,_0x1e43f6){_0x34ad72=_0x34ad72-0x0;var _0x5c9aa8=_0x3435[_0x34ad72];return _0x5c9aa8;};'use strict';var _=require(_0x5343('0x0'));var util=require(_0x5343('0x1'));var moment=require(_0x5343('0x2'));var BPromise=require(_0x5343('0x3'));var rs=require(_0x5343('0x4'));var fs=require('fs');var db=require(_0x5343('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x5343('0x6'))(_0x5343('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x5343('0x8')][_0x5343('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4d26b5,_0x544b29,_0x13641f){return new BPromise(function(_0x1e1911,_0x9ea9b6){return client[_0x5343('0xa')](_0x4d26b5,_0x13641f)[_0x5343('0xb')](function(_0x5e1147){logger[_0x5343('0xc')]('OpenchannelApplication,\x20%s,\x20%s',_0x544b29,_0x5343('0xd'));logger[_0x5343('0xe')](_0x5343('0xf'),_0x544b29,_0x5343('0xd'),JSON[_0x5343('0x10')](_0x5e1147));if(_0x5e1147['error']){if(_0x5e1147[_0x5343('0x11')][_0x5343('0x12')]===0x1f4){logger[_0x5343('0x11')]('OpenchannelApplication,\x20%s,\x20%s',_0x544b29,_0x5e1147[_0x5343('0x11')]['message']);return _0x9ea9b6(_0x5e1147[_0x5343('0x11')][_0x5343('0x13')]);}logger['error'](_0x5343('0x14'),_0x544b29,_0x5e1147['error'][_0x5343('0x13')]);return _0x1e1911(_0x5e1147[_0x5343('0x11')][_0x5343('0x13')]);}else{logger[_0x5343('0xc')]('OpenchannelApplication,\x20%s,\x20%s',_0x544b29,_0x5343('0xd'));_0x1e1911(_0x5e1147[_0x5343('0x15')][_0x5343('0x13')]);}})[_0x5343('0x16')](function(_0x45cade){logger[_0x5343('0x11')](_0x5343('0x14'),_0x544b29,_0x45cade);_0x9ea9b6(_0x45cade);});});}exports[_0x5343('0x17')]=function(_0x4cf3c2){var _0x432992=this;return new Promise(function(_0xec1ba0,_0x1f5098){return db['OpenchannelApplication'][_0x5343('0x18')](_0x4cf3c2[_0x5343('0x19')],{'raw':_0x4cf3c2[_0x5343('0x1a')]?_0x4cf3c2[_0x5343('0x1a')][_0x5343('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4cf3c2[_0x5343('0x1a')]?_0x4cf3c2[_0x5343('0x1a')][_0x5343('0x1c')]||null:null,'attributes':_0x4cf3c2[_0x5343('0x1a')]?_0x4cf3c2['options'][_0x5343('0x1d')]||null:null,'limit':_0x4cf3c2[_0x5343('0x1a')]?_0x4cf3c2[_0x5343('0x1a')][_0x5343('0x1e')]||null:null})[_0x5343('0xb')](function(_0x4e7c0f){logger[_0x5343('0xc')](_0x5343('0x17'),_0x4cf3c2);logger[_0x5343('0xe')](_0x5343('0x17'),_0x4cf3c2,JSON[_0x5343('0x10')](_0x4e7c0f));_0xec1ba0(_0x4e7c0f);})['catch'](function(_0x3822f1){logger[_0x5343('0x11')]('UpdateOpenchannelApplication',_0x3822f1[_0x5343('0x13')],_0x4cf3c2);_0x1f5098(_0x432992[_0x5343('0x11')](0x1f4,_0x3822f1[_0x5343('0x13')]));});});};
\ No newline at end of file
+var _0xc82e=['lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','OpenchannelApplication,\x20%s,\x20%s','request\x20sent','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','UpdateOpenchannelApplication','update','body','options','raw','limit'];(function(_0x8aa35,_0x178e19){var _0x449daa=function(_0x3a0cb6){while(--_0x3a0cb6){_0x8aa35['push'](_0x8aa35['shift']());}};_0x449daa(++_0x178e19);}(_0xc82e,0x1dc));var _0xec82=function(_0x426ac8,_0x1280f3){_0x426ac8=_0x426ac8-0x0;var _0x217214=_0xc82e[_0x426ac8];return _0x217214;};'use strict';var _=require(_0xec82('0x0'));var util=require(_0xec82('0x1'));var moment=require(_0xec82('0x2'));var BPromise=require(_0xec82('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xec82('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xec82('0x5'));var logger=require(_0xec82('0x6'))(_0xec82('0x7'));var config=require(_0xec82('0x8'));var jayson=require(_0xec82('0x9'));var client=jayson[_0xec82('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2f9386,_0x4ac419,_0xd3c1c4){return new BPromise(function(_0x612132,_0x2ef39b){return client[_0xec82('0xb')](_0x2f9386,_0xd3c1c4)[_0xec82('0xc')](function(_0x12a957){logger[_0xec82('0xd')](_0xec82('0xe'),_0x4ac419,_0xec82('0xf'));logger['debug'](_0xec82('0x10'),_0x4ac419,_0xec82('0xf'),JSON[_0xec82('0x11')](_0x12a957));if(_0x12a957['error']){if(_0x12a957[_0xec82('0x12')]['code']===0x1f4){logger[_0xec82('0x12')](_0xec82('0xe'),_0x4ac419,_0x12a957[_0xec82('0x12')][_0xec82('0x13')]);return _0x2ef39b(_0x12a957[_0xec82('0x12')]['message']);}logger[_0xec82('0x12')](_0xec82('0xe'),_0x4ac419,_0x12a957[_0xec82('0x12')][_0xec82('0x13')]);return _0x612132(_0x12a957['error']['message']);}else{logger[_0xec82('0xd')](_0xec82('0xe'),_0x4ac419,'request\x20sent');_0x612132(_0x12a957[_0xec82('0x14')]['message']);}})[_0xec82('0x15')](function(_0x34905d){logger[_0xec82('0x12')](_0xec82('0xe'),_0x4ac419,_0x34905d);_0x2ef39b(_0x34905d);});});}exports[_0xec82('0x16')]=function(_0xb1a198){var _0x2610fb=this;return new Promise(function(_0x547e93,_0x45f274){return db['OpenchannelApplication'][_0xec82('0x17')](_0xb1a198[_0xec82('0x18')],{'raw':_0xb1a198[_0xec82('0x19')]?_0xb1a198[_0xec82('0x19')][_0xec82('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xb1a198['options']?_0xb1a198['options']['where']||null:null,'attributes':_0xb1a198[_0xec82('0x19')]?_0xb1a198[_0xec82('0x19')]['attributes']||null:null,'limit':_0xb1a198[_0xec82('0x19')]?_0xb1a198[_0xec82('0x19')][_0xec82('0x1b')]||null:null})[_0xec82('0xc')](function(_0x5b6a6d){logger[_0xec82('0xd')](_0xec82('0x16'),_0xb1a198);logger['debug'](_0xec82('0x16'),_0xb1a198,JSON['stringify'](_0x5b6a6d));_0x547e93(_0x5b6a6d);})['catch'](function(_0x4e9f5f){logger['error'](_0xec82('0x16'),_0x4e9f5f['message'],_0xb1a198);_0x45f274(_0x2610fb['error'](0x1f4,_0x4e9f5f[_0xec82('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4771=['/:id','show','getMessages','/:id/download','post','create','addMessage','tracked','addTags','openchannel','update','delete','openchannelinteraction:destroy','destroy','exports','util','path','express','Router','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe'];(function(_0x420513,_0x30eae3){var _0x1b44ec=function(_0x644f88){while(--_0x644f88){_0x420513['push'](_0x420513['shift']());}};_0x1b44ec(++_0x30eae3);}(_0x4771,0xf0));var _0x1477=function(_0x1da527,_0x2dc953){_0x1da527=_0x1da527-0x0;var _0x40fc7c=_0x4771[_0x1da527];return _0x40fc7c;};'use strict';var multer=require('multer');var util=require(_0x1477('0x0'));var path=require(_0x1477('0x1'));var timeout=require('connect-timeout');var express=require(_0x1477('0x2'));var router=express[_0x1477('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x1477('0x4'));var config=require(_0x1477('0x5'));var controller=require('./openchannelInteraction.controller');router['get']('/',auth[_0x1477('0x6')](),controller[_0x1477('0x7')]);router[_0x1477('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x1477('0x9')]);router['get'](_0x1477('0xa'),auth[_0x1477('0x6')](),controller[_0x1477('0xb')]);router[_0x1477('0x8')]('/:id/messages',auth['isAuthenticated'](),controller[_0x1477('0xc')]);router['get'](_0x1477('0xd'),auth['isAuthenticated'](),controller['download']);router[_0x1477('0xe')]('/',auth[_0x1477('0x6')](),controller[_0x1477('0xf')]);router[_0x1477('0xe')]('/:id/messages',auth[_0x1477('0x6')](),controller[_0x1477('0x10')]);router[_0x1477('0xe')]('/:id/tags',auth[_0x1477('0x6')](),interaction[_0x1477('0x11')]('openchannel','openchannelinteraction:addtags'),controller[_0x1477('0x12')]);router['put'](_0x1477('0xa'),auth[_0x1477('0x6')](),interaction[_0x1477('0x11')](_0x1477('0x13'),'openchannelinteraction:update'),controller[_0x1477('0x14')]);router[_0x1477('0x15')](_0x1477('0xa'),auth['isAuthenticated'](),interaction[_0x1477('0x11')]('openchannel',_0x1477('0x16')),controller[_0x1477('0x17')]);router[_0x1477('0x15')]('/:id/tags',auth[_0x1477('0x6')](),controller['removeTags']);module[_0x1477('0x18')]=router;
\ No newline at end of file
+var _0xb65e=['openchannelinteraction:addtags','addTags','put','tracked','openchannelinteraction:update','delete','destroy','removeTags','exports','multer','express','Router','../../components/interaction/service','../../config/environment','get','index','/describe','isAuthenticated','describe','/:id','show','/:id/messages','getMessages','download','post','create','addMessage','/:id/tags','openchannel'];(function(_0x22af78,_0x53ce4b){var _0x218440=function(_0xfdae12){while(--_0xfdae12){_0x22af78['push'](_0x22af78['shift']());}};_0x218440(++_0x53ce4b);}(_0xb65e,0xb7));var _0xeb65=function(_0x30fd95,_0xbcfccd){_0x30fd95=_0x30fd95-0x0;var _0x869506=_0xb65e[_0x30fd95];return _0x869506;};'use strict';var multer=require(_0xeb65('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xeb65('0x1'));var router=express[_0xeb65('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0xeb65('0x3'));var config=require(_0xeb65('0x4'));var controller=require('./openchannelInteraction.controller');router[_0xeb65('0x5')]('/',auth['isAuthenticated'](),controller[_0xeb65('0x6')]);router[_0xeb65('0x5')](_0xeb65('0x7'),auth[_0xeb65('0x8')](),controller[_0xeb65('0x9')]);router[_0xeb65('0x5')](_0xeb65('0xa'),auth['isAuthenticated'](),controller[_0xeb65('0xb')]);router['get'](_0xeb65('0xc'),auth['isAuthenticated'](),controller[_0xeb65('0xd')]);router[_0xeb65('0x5')]('/:id/download',auth[_0xeb65('0x8')](),controller[_0xeb65('0xe')]);router[_0xeb65('0xf')]('/',auth[_0xeb65('0x8')](),controller[_0xeb65('0x10')]);router['post'](_0xeb65('0xc'),auth[_0xeb65('0x8')](),controller[_0xeb65('0x11')]);router[_0xeb65('0xf')](_0xeb65('0x12'),auth[_0xeb65('0x8')](),interaction['tracked'](_0xeb65('0x13'),_0xeb65('0x14')),controller[_0xeb65('0x15')]);router[_0xeb65('0x16')]('/:id',auth['isAuthenticated'](),interaction[_0xeb65('0x17')](_0xeb65('0x13'),_0xeb65('0x18')),controller['update']);router[_0xeb65('0x19')]('/:id',auth[_0xeb65('0x8')](),interaction[_0xeb65('0x17')]('openchannel','openchannelinteraction:destroy'),controller[_0xeb65('0x1a')]);router[_0xeb65('0x19')](_0xeb65('0x12'),auth['isAuthenticated'](),controller[_0xeb65('0x1b')]);module[_0xeb65('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa44c=['out','DATE','STRING','ENUM'];(function(_0x4ba380,_0x259bee){var _0x4b111b=function(_0x2bf227){while(--_0x2bf227){_0x4ba380['push'](_0x4ba380['shift']());}};_0x4b111b(++_0x259bee);}(_0xa44c,0x1a9));var _0xca44=function(_0x5d596f,_0x5f25ab){_0x5d596f=_0x5d596f-0x0;var _0x33a450=_0xa44c[_0x5d596f];return _0x33a450;};'use strict';var Sequelize=require('sequelize');module['exports']={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xca44('0x0')]},'disposition':{'type':Sequelize[_0xca44('0x1')]},'note':{'type':Sequelize[_0xca44('0x1')]},'read1stAt':{'type':Sequelize[_0xca44('0x0')]},'threadId':{'type':Sequelize[_0xca44('0x1')]},'externalUrl':{'type':Sequelize[_0xca44('0x1')]},'lastMsgAt':{'type':Sequelize[_0xca44('0x0')]},'lastMsgDirection':{'type':Sequelize[_0xca44('0x2')]('in',_0xca44('0x3')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0xca44('0x1')]}};
\ No newline at end of file
+var _0xa348=['DATE','STRING','ENUM','out','sequelize','BOOLEAN'];(function(_0x188905,_0x398fac){var _0x2bf735=function(_0x228cf6){while(--_0x228cf6){_0x188905['push'](_0x188905['shift']());}};_0x2bf735(++_0x398fac);}(_0xa348,0xb2));var _0x8a34=function(_0x9736c0,_0x17e675){_0x9736c0=_0x9736c0-0x0;var _0x28e68b=_0xa348[_0x9736c0];return _0x28e68b;};'use strict';var Sequelize=require(_0x8a34('0x0'));module['exports']={'closed':{'type':Sequelize[_0x8a34('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x8a34('0x2')]},'threadId':{'type':Sequelize[_0x8a34('0x3')]},'externalUrl':{'type':Sequelize[_0x8a34('0x3')]},'lastMsgAt':{'type':Sequelize[_0x8a34('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x8a34('0x4')]('in',_0x8a34('0x5')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x8a34('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0dd6=['OpenchannelInteraction','includeAll','User','Users','fullname','CmContact','Contact','Owner','internal','OpenchannelAccount','Tag','color','ThroughTags','findAll','rows','show','params','keys','length','find','catch','create','body','describe','addMessage','ids','omit','getMessages','findOne','order','OpenchannelInteractionId','$gte','split','addTags','setTags','emit','openchannelInteractionTags:save','removeTags','download','join','root','server','files','tmp','interaction-%s.zip','firstName','Attachment','1cm','format','<h1>Openchannel\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<hr>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','</div>','basename','existsSync','createReadStream','pipe','createWriteStream','toFile','interaction-','.pdf','err','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','end','status','count','offset','limit','Content-Range','json','apply','reject','save','update','then','destroy','stack','name','send','index','rawAttributes','model','query','dateStart','dateEnd','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','pick','add','merge','filter','map','options','include','tag','push','Tags','distinct','read','OpenchannelMessage','Messages','direction','createdAt'];(function(_0xa5b7cf,_0x44b8cd){var _0x1d6587=function(_0x131f7f){while(--_0x131f7f){_0xa5b7cf['push'](_0xa5b7cf['shift']());}};_0x1d6587(++_0x44b8cd);}(_0x0dd6,0xca));var _0x60dd=function(_0x39d8fe,_0xae071e){_0x39d8fe=_0x39d8fe-0x0;var _0x4b52a6=_0x0dd6[_0x39d8fe];return _0x4b52a6;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x60dd('0x0'));var zipdir=require(_0x60dd('0x1'));var jsonpatch=require(_0x60dd('0x2'));var rp=require(_0x60dd('0x3'));var moment=require(_0x60dd('0x4'));var BPromise=require(_0x60dd('0x5'));var Mustache=require(_0x60dd('0x6'));var util=require(_0x60dd('0x7'));var path=require(_0x60dd('0x8'));var sox=require('sox');var csv=require(_0x60dd('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x60dd('0xa'));var squel=require('squel');var crypto=require(_0x60dd('0xb'));var jsforce=require(_0x60dd('0xc'));var deskjs=require(_0x60dd('0xd'));var toCsv=require(_0x60dd('0x9'));var querystring=require(_0x60dd('0xe'));var Papa=require(_0x60dd('0xf'));var qs=require(_0x60dd('0x10'));var logger=require(_0x60dd('0x11'))('api');var utils=require(_0x60dd('0x12'));var config=require(_0x60dd('0x13'));var db=require(_0x60dd('0x14'))['db'];config[_0x60dd('0x15')]=_[_0x60dd('0x16')](config[_0x60dd('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0x60dd('0x17'))(config[_0x60dd('0x15')]);require('./openchannelInteraction.socket')[_0x60dd('0x18')](socket);function respondWithStatusCode(_0x2925a0,_0x56af01){_0x56af01=_0x56af01||0xcc;return function(_0x13b260){if(_0x13b260){return _0x2925a0[_0x60dd('0x19')](_0x56af01);}return _0x2925a0['status'](_0x56af01)[_0x60dd('0x1a')]();};}function respondWithResult(_0x21d8b3,_0x1d41fb){_0x1d41fb=_0x1d41fb||0xc8;return function(_0x232d7d){if(_0x232d7d){return _0x21d8b3[_0x60dd('0x1b')](_0x1d41fb)['json'](_0x232d7d);}};}function respondWithFilteredResult(_0x1822e9,_0x438d07){return function(_0x477545){if(_0x477545){var _0x40f487=_0x477545[_0x60dd('0x1c')],_0x5a236f=_0x438d07[_0x60dd('0x1d')],_0x5e2c06=_0x438d07['offset']+_0x438d07[_0x60dd('0x1e')],_0x280fc8;if(_0x5e2c06>=_0x40f487){_0x5e2c06=_0x40f487;_0x280fc8=0xc8;}else{_0x280fc8=0xce;}_0x1822e9[_0x60dd('0x1b')](_0x280fc8);return _0x1822e9['set'](_0x60dd('0x1f'),_0x5a236f+'-'+_0x5e2c06+'/'+_0x40f487)[_0x60dd('0x20')](_0x477545);}return null;};}function patchUpdates(_0x22c520){return function(_0x340e14){try{jsonpatch[_0x60dd('0x21')](_0x340e14,_0x22c520,!![]);}catch(_0x31f49e){return BPromise[_0x60dd('0x22')](_0x31f49e);}return _0x340e14[_0x60dd('0x23')]();};}function saveUpdates(_0x42e2c6,_0xb8118c){return function(_0x49053a){if(_0x49053a){return _0x49053a[_0x60dd('0x24')](_0x42e2c6)[_0x60dd('0x25')](function(_0x41933a){return _0x41933a;});}return null;};}function removeEntity(_0x451bf2,_0x2ec7f9){return function(_0x5cee8e){if(_0x5cee8e){return _0x5cee8e[_0x60dd('0x26')]()[_0x60dd('0x25')](function(){_0x451bf2[_0x60dd('0x1b')](0xcc)[_0x60dd('0x1a')]();});}};}function handleEntityNotFound(_0xd0dc0d,_0xf06092){return function(_0x10e0b3){if(!_0x10e0b3){_0xd0dc0d['sendStatus'](0x194);}return _0x10e0b3;};}function handleError(_0x2ad5f5,_0x3b3101){_0x3b3101=_0x3b3101||0x1f4;return function(_0x326c50){logger['error'](_0x326c50[_0x60dd('0x27')]);if(_0x326c50[_0x60dd('0x28')]){delete _0x326c50[_0x60dd('0x28')];}_0x2ad5f5[_0x60dd('0x1b')](_0x3b3101)[_0x60dd('0x29')](_0x326c50);};}exports[_0x60dd('0x2a')]=function(_0x164f96,_0x2ce1b9){var _0x54fa69={},_0xf5d071={},_0x238a6a={'count':0x0,'rows':[]};var _0x3cc6d5=db['OpenchannelInteraction'][_0x60dd('0x2b')];_0xf5d071[_0x60dd('0x2c')]=_['keys'](_0x3cc6d5);var _0x5f3075={'dateStart':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x2e')],'dateEnd':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x2f')]};delete _0x164f96[_0x60dd('0x2d')][_0x60dd('0x2e')];delete _0x164f96[_0x60dd('0x2d')][_0x60dd('0x2f')];_0xf5d071['query']=_['keys'](_0x164f96['query']);_0xf5d071['filters']=_[_0x60dd('0x30')](_0xf5d071[_0x60dd('0x2c')],_0xf5d071[_0x60dd('0x2d')]);_0x54fa69[_0x60dd('0x31')]=_['intersection'](_0xf5d071[_0x60dd('0x2c')],qs[_0x60dd('0x32')](_0x164f96['query']['fields']));_0x54fa69[_0x60dd('0x31')]=_0x54fa69['attributes']['length']?_0x54fa69[_0x60dd('0x31')]:_0xf5d071['model'];if(!_0x164f96[_0x60dd('0x2d')][_0x60dd('0x33')](_0x60dd('0x34'))){_0x54fa69[_0x60dd('0x1e')]=qs['limit'](_0x164f96[_0x60dd('0x2d')]['limit']);_0x54fa69[_0x60dd('0x1d')]=qs[_0x60dd('0x1d')](_0x164f96[_0x60dd('0x2d')]['offset']);}_0x54fa69['order']=qs[_0x60dd('0x35')](_0x164f96[_0x60dd('0x2d')]['sort']);_0x54fa69[_0x60dd('0x36')]=qs[_0x60dd('0x37')](_[_0x60dd('0x38')](_0x164f96[_0x60dd('0x2d')],_0xf5d071[_0x60dd('0x37')]));if(_0x5f3075[_0x60dd('0x2e')]){if(_0x5f3075[_0x60dd('0x2f')]){_0x5f3075['dateEnd']=moment(_0x5f3075['dateEnd'])[_0x60dd('0x39')](0x1,'day');}else{_0x5f3075[_0x60dd('0x2f')]=moment(_0x5f3075[_0x60dd('0x2e')])['add'](0x1,'day');}_[_0x60dd('0x3a')](_0x54fa69[_0x60dd('0x36')],{'createdAt':{'$gte':_0x5f3075[_0x60dd('0x2e')],'$lte':_0x5f3075[_0x60dd('0x2f')]}});}if(_0x164f96[_0x60dd('0x2d')][_0x60dd('0x3b')]){_0x54fa69[_0x60dd('0x36')]=_[_0x60dd('0x3a')](_0x54fa69[_0x60dd('0x36')],{'$or':_[_0x60dd('0x3c')](_0x54fa69[_0x60dd('0x31')],function(_0x56476c){var _0x599e89={};_0x599e89[_0x56476c]={'$like':'%'+_0x164f96[_0x60dd('0x2d')][_0x60dd('0x3b')]+'%'};return _0x599e89;})});}_0x54fa69=_[_0x60dd('0x3a')]({},_0x54fa69,_0x164f96[_0x60dd('0x3d')]);var _0xbfac10={'where':_0x54fa69[_0x60dd('0x36')]};_0xbfac10[_0x60dd('0x3e')]=[];if(_0x164f96[_0x60dd('0x2d')][_0x60dd('0x3f')]){_0xbfac10[_0x60dd('0x3e')][_0x60dd('0x40')]({'model':db['Tag'],'as':_0x60dd('0x41'),'attributes':['id'],'where':{'id':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x3f')]},'required':!![]});_0xbfac10[_0x60dd('0x42')]=!![];}if(_0x164f96['query'][_0x60dd('0x43')]){_0xbfac10[_0x60dd('0x3e')][_0x60dd('0x40')]({'model':db[_0x60dd('0x44')],'as':_0x60dd('0x45'),'attributes':['id',_0x60dd('0x46'),_0x60dd('0x47'),_0x60dd('0x43')],'where':{'direction':'in','read':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x43')]||![]},'required':!![]});_0xbfac10[_0x60dd('0x42')]=!![];}return db[_0x60dd('0x48')][_0x60dd('0x1c')](_0xbfac10)[_0x60dd('0x25')](function(_0x3b1732){_0x238a6a[_0x60dd('0x1c')]=_0x3b1732;if(_0x164f96[_0x60dd('0x2d')][_0x60dd('0x49')]){_0x54fa69[_0x60dd('0x3e')]=[{'model':db[_0x60dd('0x4a')],'as':_0x60dd('0x4b'),'required':![],'attributes':['id',_0x60dd('0x28'),_0x60dd('0x4c')]},{'model':db[_0x60dd('0x4d')],'as':_0x60dd('0x4e'),'required':![]},{'model':db[_0x60dd('0x4a')],'as':_0x60dd('0x4f'),'attributes':[_0x60dd('0x28'),_0x60dd('0x4c'),_0x60dd('0x50')],'required':![]},{'model':db[_0x60dd('0x51')],'as':'Account','attributes':[_0x60dd('0x28'),'key'],'required':![]},{'model':db[_0x60dd('0x44')],'as':_0x60dd('0x45'),'attributes':['id','direction',_0x60dd('0x47'),_0x60dd('0x43')],'where':{'direction':'in','read':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x43')]||![]},'required':_0x164f96['query'][_0x60dd('0x43')]||![]},{'model':db[_0x60dd('0x52')],'as':'Tags','attributes':['id',_0x60dd('0x28'),_0x60dd('0x53')],'required':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x3f')]?!![]:![]},{'model':db['Tag'],'as':_0x60dd('0x54'),'attributes':['id','name',_0x60dd('0x53')],'through':_0x164f96['query'][_0x60dd('0x3f')]?{'attributes':[],'where':{'TagId':_0x164f96[_0x60dd('0x2d')][_0x60dd('0x3f')]||undefined}}:{},'required':_0x164f96[_0x60dd('0x2d')]['tag']?!![]:![]}];}return db['OpenchannelInteraction'][_0x60dd('0x55')](_0x54fa69);})[_0x60dd('0x25')](function(_0x1c8d57){_0x238a6a[_0x60dd('0x56')]=_0x1c8d57;return _0x238a6a;})[_0x60dd('0x25')](respondWithFilteredResult(_0x2ce1b9,_0x54fa69))['catch'](handleError(_0x2ce1b9,null));};exports[_0x60dd('0x57')]=function(_0x33b461,_0x478f99){var _0x4224ce={'raw':![],'where':{'id':_0x33b461[_0x60dd('0x58')]['id']}},_0x4d3197={};_0x4d3197[_0x60dd('0x2c')]=_[_0x60dd('0x59')](db[_0x60dd('0x48')][_0x60dd('0x2b')]);_0x4d3197[_0x60dd('0x2d')]=_['keys'](_0x33b461[_0x60dd('0x2d')]);_0x4d3197[_0x60dd('0x37')]=_[_0x60dd('0x30')](_0x4d3197['model'],_0x4d3197[_0x60dd('0x2d')]);_0x4224ce[_0x60dd('0x31')]=_['intersection'](_0x4d3197['model'],qs[_0x60dd('0x32')](_0x33b461[_0x60dd('0x2d')]['fields']));_0x4224ce[_0x60dd('0x31')]=_0x4224ce[_0x60dd('0x31')][_0x60dd('0x5a')]?_0x4224ce[_0x60dd('0x31')]:_0x4d3197['model'];if(_0x33b461[_0x60dd('0x2d')]['includeAll']){_0x4224ce[_0x60dd('0x3e')]=[{'all':!![]}];}_0x4224ce=_[_0x60dd('0x3a')]({},_0x4224ce,_0x33b461[_0x60dd('0x3d')]);return db[_0x60dd('0x48')][_0x60dd('0x5b')](_0x4224ce)[_0x60dd('0x25')](handleEntityNotFound(_0x478f99,null))[_0x60dd('0x25')](respondWithResult(_0x478f99,null))[_0x60dd('0x5c')](handleError(_0x478f99,null));};exports[_0x60dd('0x5d')]=function(_0x3ba35a,_0x28dd87){return db[_0x60dd('0x48')]['create'](_0x3ba35a[_0x60dd('0x5e')],{})[_0x60dd('0x25')](respondWithResult(_0x28dd87,0xc9))[_0x60dd('0x5c')](handleError(_0x28dd87,null));};exports[_0x60dd('0x24')]=function(_0x4794a1,_0x4bdf94){if(_0x4794a1['body']['id']){delete _0x4794a1[_0x60dd('0x5e')]['id'];}return db[_0x60dd('0x48')][_0x60dd('0x5b')]({'where':{'id':_0x4794a1[_0x60dd('0x58')]['id']}})[_0x60dd('0x25')](handleEntityNotFound(_0x4bdf94,null))[_0x60dd('0x25')](saveUpdates(_0x4794a1[_0x60dd('0x5e')],null))[_0x60dd('0x25')](respondWithResult(_0x4bdf94,null))[_0x60dd('0x5c')](handleError(_0x4bdf94,null));};exports['destroy']=function(_0x159eaf,_0x2d0fb5){return db[_0x60dd('0x48')][_0x60dd('0x5b')]({'where':{'id':_0x159eaf[_0x60dd('0x58')]['id']}})['then'](handleEntityNotFound(_0x2d0fb5,null))[_0x60dd('0x25')](removeEntity(_0x2d0fb5,null))[_0x60dd('0x5c')](handleError(_0x2d0fb5,null));};exports[_0x60dd('0x5f')]=function(_0x3011fd,_0x2d965e){return db['OpenchannelInteraction'][_0x60dd('0x5f')]()['then'](respondWithResult(_0x2d965e,null))[_0x60dd('0x5c')](handleError(_0x2d965e,null));};exports[_0x60dd('0x60')]=function(_0x5a91ae,_0x4aac4b,_0x41c1ed){return db['OpenchannelMessage'][_0x60dd('0x5b')]({'where':{'id':_0x5a91ae[_0x60dd('0x58')]['id']}})[_0x60dd('0x25')](handleEntityNotFound(_0x4aac4b,null))['then'](function(_0x5272a9){if(_0x5272a9){return _0x5272a9['addMessage'](_0x5a91ae[_0x60dd('0x5e')][_0x60dd('0x61')],_[_0x60dd('0x62')](_0x5a91ae[_0x60dd('0x5e')],['ids','id'])||{});}})['then'](respondWithResult(_0x4aac4b,null))[_0x60dd('0x5c')](handleError(_0x4aac4b,null));};exports[_0x60dd('0x63')]=function(_0x4bd129,_0x4794d3,_0x5cc5eb){var _0x14497d={'raw':![],'where':{}};var _0x54c563={};var _0xdd25c6={'count':0x0,'rows':[]};return db[_0x60dd('0x48')][_0x60dd('0x64')]({'where':{'id':_0x4bd129[_0x60dd('0x58')]['id']}})[_0x60dd('0x25')](handleEntityNotFound(_0x4794d3,null))[_0x60dd('0x25')](function(_0x3ba83f){if(_0x3ba83f){_0x54c563[_0x60dd('0x2c')]=_['keys'](db[_0x60dd('0x44')][_0x60dd('0x2b')]);_0x54c563[_0x60dd('0x2d')]=_[_0x60dd('0x59')](_0x4bd129[_0x60dd('0x2d')]);_0x54c563[_0x60dd('0x37')]=_[_0x60dd('0x30')](_0x54c563[_0x60dd('0x2c')],_0x54c563[_0x60dd('0x2d')]);_0x14497d[_0x60dd('0x31')]=_[_0x60dd('0x30')](_0x54c563[_0x60dd('0x2c')],qs[_0x60dd('0x32')](_0x4bd129[_0x60dd('0x2d')][_0x60dd('0x32')]));_0x14497d['attributes']=_0x14497d[_0x60dd('0x31')]['length']?_0x14497d[_0x60dd('0x31')]:_0x54c563[_0x60dd('0x2c')];if(!_0x4bd129[_0x60dd('0x2d')]['hasOwnProperty'](_0x60dd('0x34'))){_0x14497d['limit']=qs[_0x60dd('0x1e')](_0x4bd129[_0x60dd('0x2d')]['limit']);_0x14497d[_0x60dd('0x1d')]=qs[_0x60dd('0x1d')](_0x4bd129[_0x60dd('0x2d')][_0x60dd('0x1d')]);}_0x14497d[_0x60dd('0x65')]=qs['sort'](_0x4bd129[_0x60dd('0x2d')]['sort']);_0x14497d['where']=qs[_0x60dd('0x37')](_['pick'](_0x4bd129[_0x60dd('0x2d')],_0x54c563[_0x60dd('0x37')]));_0x14497d['where'][_0x60dd('0x66')]=_0x3ba83f['id'];if(_0x4bd129[_0x60dd('0x2d')][_0x60dd('0x3b')]){_0x14497d[_0x60dd('0x36')]=_[_0x60dd('0x3a')](_0x14497d[_0x60dd('0x36')],{'$or':_['map'](_0x14497d[_0x60dd('0x31')],function(_0x5b4dce){var _0x1353e1={};_0x1353e1[_0x5b4dce]={'$like':'%'+_0x4bd129[_0x60dd('0x2d')]['filter']+'%'};return _0x1353e1;})});}if(_0x4bd129['query'][_0x60dd('0x67')]){var _0x371432=_0x4bd129[_0x60dd('0x2d')][_0x60dd('0x67')][_0x60dd('0x68')](',');var _0xfe90e5={};_0xfe90e5[_0x371432[0x0]]={'$gte':moment(_0x371432[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x14497d[_0x60dd('0x36')]=_[_0x60dd('0x3a')](_0x14497d[_0x60dd('0x36')],_0xfe90e5);}_0x14497d=_[_0x60dd('0x3a')]({},_0x14497d,_0x4bd129[_0x60dd('0x3d')]);return db[_0x60dd('0x44')][_0x60dd('0x1c')]({'where':_0x14497d['where']})['then'](function(_0x2f8f1d){_0xdd25c6[_0x60dd('0x1c')]=_0x2f8f1d;if(_0x4bd129[_0x60dd('0x2d')][_0x60dd('0x49')]){_0x14497d[_0x60dd('0x3e')]=[{'all':!![]}];}return db['OpenchannelMessage']['findAll'](_0x14497d);})[_0x60dd('0x25')](function(_0x504464){_0xdd25c6[_0x60dd('0x56')]=_0x504464;return _0xdd25c6;});}})['then'](respondWithFilteredResult(_0x4794d3,_0x14497d))[_0x60dd('0x5c')](handleError(_0x4794d3,null));};exports[_0x60dd('0x69')]=function(_0x1c0c3b,_0x42a216,_0x3a72b4){return db[_0x60dd('0x48')][_0x60dd('0x5b')]({'where':{'id':_0x1c0c3b[_0x60dd('0x58')]['id']}})[_0x60dd('0x25')](handleEntityNotFound(_0x42a216,null))[_0x60dd('0x25')](function(_0x31ff35){if(_0x31ff35){return _0x31ff35[_0x60dd('0x6a')](_0x1c0c3b[_0x60dd('0x5e')][_0x60dd('0x61')],_[_0x60dd('0x62')](_0x1c0c3b[_0x60dd('0x5e')],['ids','id'])||{})['spread'](function(){return db['Tag'][_0x60dd('0x55')]({'attributes':['id',_0x60dd('0x28'),_0x60dd('0x53')],'where':{'id':_0x1c0c3b[_0x60dd('0x5e')][_0x60dd('0x61')]}});})[_0x60dd('0x25')](function(_0x418e1c){socket[_0x60dd('0x6b')](_0x60dd('0x6c'),{'id':Number(_0x1c0c3b[_0x60dd('0x58')]['id']),'tags':_0x418e1c||[]});return{'id':Number(_0x1c0c3b[_0x60dd('0x58')]['id']),'tags':_0x418e1c||[]};});}})[_0x60dd('0x25')](respondWithResult(_0x42a216,null))['catch'](handleError(_0x42a216,null));};exports[_0x60dd('0x6d')]=function(_0x3680b0,_0x3be06e,_0x2fbfa4){var _0x39aaab;return db['OpenchannelInteraction'][_0x60dd('0x5b')]({'where':{'id':_0x3680b0['params']['id']}})['then'](handleEntityNotFound(_0x3be06e,null))[_0x60dd('0x25')](function(_0x309110){if(_0x309110){return _0x309110[_0x60dd('0x6d')](_0x3680b0[_0x60dd('0x2d')][_0x60dd('0x61')]);}})[_0x60dd('0x25')](respondWithStatusCode(_0x3be06e,null))[_0x60dd('0x5c')](handleError(_0x3be06e,null));};exports[_0x60dd('0x6e')]=function(_0x130160,_0x5a7758){var _0x1b899d=moment()['unix']()['toString']();var _0x51469c=path[_0x60dd('0x6f')](config[_0x60dd('0x70')],_0x60dd('0x71'),_0x60dd('0x72'),_0x60dd('0x73'));var _0x222d19=path['join'](config[_0x60dd('0x70')],'server','files','attachments');var _0x159d94=path[_0x60dd('0x6f')](_0x51469c,_0x1b899d);var _0x421991=util['format'](_0x60dd('0x74'),_0x1b899d);var _0x4c5893=path[_0x60dd('0x6f')](_0x51469c,_0x421991);var _0x3e6259=![];return db[_0x60dd('0x48')][_0x60dd('0x5b')]({'where':{'id':_0x130160[_0x60dd('0x58')]['id']},'include':[{'model':db[_0x60dd('0x44')],'as':'Messages','attributes':['id',_0x60dd('0x5e')],'include':[{'model':db[_0x60dd('0x4a')],'as':_0x60dd('0x4a'),'attributes':['id',_0x60dd('0x4c')],'raw':!![]},{'model':db['CmContact'],'as':'Contact','attributes':['id',_0x60dd('0x75')],'raw':!![]},{'model':db[_0x60dd('0x76')],'as':'Attachment','raw':!![]}]}]})['then'](handleEntityNotFound(_0x5a7758,null))[_0x60dd('0x25')](function(_0x555ce3){if(_0x555ce3){_0x3e6259=!![];var _0x123d1a='';var _0x21a13b={'format':'Letter','border':_0x60dd('0x77')};fs['mkdirSync'](_0x159d94);_0x123d1a+=util[_0x60dd('0x78')](_0x60dd('0x79'),_0x555ce3['id']);_0x123d1a+=util['format'](_0x60dd('0x7a'),moment()[_0x60dd('0x78')](_0x60dd('0x7b'))['toString']());_0x123d1a+=_0x60dd('0x7c');for(var _0x99e31e=0x0;_0x99e31e<_0x555ce3[_0x60dd('0x45')][_0x60dd('0x5a')];_0x99e31e++){var _0x35f169=_0x555ce3['Messages'][_0x99e31e];_0x123d1a+='<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>';_0x123d1a+=util['format'](_0x60dd('0x7d'),_0x35f169['User']?_0x35f169[_0x60dd('0x4a')][_0x60dd('0x4c')]:_0x35f169['Contact'][_0x60dd('0x75')],_0x35f169[_0x60dd('0x5e')]);_0x123d1a+=_0x60dd('0x7e');if(_0x35f169['Attachment']){var _0x101f03=_0x35f169[_0x60dd('0x76')];var _0x5aba43=path['join'](_0x222d19,_0x101f03[_0x60dd('0x7f')]);if(fs[_0x60dd('0x80')](_0x5aba43)){fs[_0x60dd('0x81')](_0x5aba43)[_0x60dd('0x82')](fs[_0x60dd('0x83')](path['join'](_0x159d94,_0x101f03[_0x60dd('0x7f')])));}}}return new BPromise(function(_0x4892c6,_0x135f02){pdf['create'](_0x123d1a,_0x21a13b)[_0x60dd('0x84')](path[_0x60dd('0x6f')](_0x159d94,_0x60dd('0x85')+_0x1b899d+_0x60dd('0x86')),function(_0x3e4c4d,_0x14d60a){if(_0x3e4c4d)return _0x135f02(_0x3e4c4d);_0x4892c6(_0x14d60a);});});}})[_0x60dd('0x25')](function(){if(_0x3e6259){return new BPromise(function(_0x1b82d4,_0x39ed54){zipdir(_0x159d94,{'saveTo':_0x4c5893},function(_0x365d1b,_0xd17070){if(_0x365d1b)return _0x39ed54(_0x365d1b);return _0x1b82d4(_0xd17070);});});}})['then'](function(){if(_0x3e6259){return new BPromise(function(_0x215b4c,_0xc21787){rimraf(_0x159d94,function(_0x5cd0b1){if(_0x5cd0b1)_0xc21787(_0x5cd0b1);return _0x215b4c();});});}})['then'](function(){if(_0x3e6259){return _0x5a7758[_0x60dd('0x6e')](_0x4c5893,_0x421991,function(_0x24b2be){if(_0x24b2be){console['log'](_0x60dd('0x87'),_0x24b2be);}else{fs[_0x60dd('0x88')](_0x4c5893);}});}else{return _0x5a7758[_0x60dd('0x19')](0xc8);}})[_0x60dd('0x5c')](handleError(_0x5a7758,null));};
\ No newline at end of file
+var _0x568b=['filter','options','include','tag','push','Tag','Tags','Messages','createdAt','read','distinct','includeAll','User','Users','Contact','fullname','OpenchannelAccount','Account','OpenchannelMessage','direction','ThroughTags','color','findAll','rows','catch','show','length','find','create','body','params','describe','addMessage','omit','ids','hasOwnProperty','nolimit','OpenchannelInteractionId','map','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','spread','openchannelInteractionTags:save','removeTags','download','unix','toString','join','server','files','tmp','root','attachments','interaction-%s.zip','CmContact','firstName','Attachment','Letter','1cm','mkdirSync','<h1>Openchannel\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<hr>','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','</div>','basename','createReadStream','pipe','createWriteStream','.pdf','log','err','unlinkSync','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','status','count','offset','limit','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','OpenchannelInteraction','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','fields','attributes','order','sort','pick','day','merge','where'];(function(_0x3d019f,_0x1c56bf){var _0x22a149=function(_0x1300f3){while(--_0x1300f3){_0x3d019f['push'](_0x3d019f['shift']());}};_0x22a149(++_0x1c56bf);}(_0x568b,0xdc));var _0xb568=function(_0x49f42e,_0x4a370d){_0x49f42e=_0x49f42e-0x0;var _0xbb9128=_0x568b[_0x49f42e];return _0xbb9128;};'use strict';var pdf=require(_0xb568('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xb568('0x1'));var zipdir=require(_0xb568('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb568('0x3'));var moment=require(_0xb568('0x4'));var BPromise=require(_0xb568('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xb568('0x6'));var sox=require(_0xb568('0x7'));var csv=require('to-csv');var ejs=require(_0xb568('0x8'));var fs=require('fs');var _=require(_0xb568('0x9'));var squel=require(_0xb568('0xa'));var crypto=require(_0xb568('0xb'));var jsforce=require(_0xb568('0xc'));var deskjs=require(_0xb568('0xd'));var toCsv=require(_0xb568('0xe'));var querystring=require(_0xb568('0xf'));var Papa=require(_0xb568('0x10'));var Redis=require(_0xb568('0x11'));var qs=require(_0xb568('0x12'));var logger=require(_0xb568('0x13'))(_0xb568('0x14'));var utils=require('../../config/utils');var config=require(_0xb568('0x15'));var db=require(_0xb568('0x16'))['db'];config[_0xb568('0x17')]=_['defaults'](config[_0xb568('0x17')],{'host':_0xb568('0x18'),'port':0x18eb});var socket=require(_0xb568('0x19'))(new Redis(config[_0xb568('0x17')]));require(_0xb568('0x1a'))[_0xb568('0x1b')](socket);function respondWithStatusCode(_0x2790a5,_0x594b4b){_0x594b4b=_0x594b4b||0xcc;return function(_0x93ad40){if(_0x93ad40){return _0x2790a5[_0xb568('0x1c')](_0x594b4b);}return _0x2790a5[_0xb568('0x1d')](_0x594b4b)['end']();};}function respondWithResult(_0x3d515a,_0x122143){_0x122143=_0x122143||0xc8;return function(_0x20876e){if(_0x20876e){return _0x3d515a['status'](_0x122143)['json'](_0x20876e);}};}function respondWithFilteredResult(_0x373039,_0x3ac5be){return function(_0xbe877e){if(_0xbe877e){var _0x5316d8=_0xbe877e[_0xb568('0x1e')],_0x11e1c3=_0x3ac5be[_0xb568('0x1f')],_0x4cf354=_0x3ac5be[_0xb568('0x1f')]+_0x3ac5be[_0xb568('0x20')],_0x18fa1e;if(_0x4cf354>=_0x5316d8){_0x4cf354=_0x5316d8;_0x18fa1e=0xc8;}else{_0x18fa1e=0xce;}_0x373039['status'](_0x18fa1e);return _0x373039['set'](_0xb568('0x21'),_0x11e1c3+'-'+_0x4cf354+'/'+_0x5316d8)['json'](_0xbe877e);}return null;};}function patchUpdates(_0x3891a6){return function(_0x579cdd){try{jsonpatch[_0xb568('0x22')](_0x579cdd,_0x3891a6,!![]);}catch(_0x176bac){return BPromise[_0xb568('0x23')](_0x176bac);}return _0x579cdd[_0xb568('0x24')]();};}function saveUpdates(_0x167c1e,_0x4eb5ea){return function(_0x1fbe88){if(_0x1fbe88){return _0x1fbe88[_0xb568('0x25')](_0x167c1e)['then'](function(_0x2a5386){return _0x2a5386;});}return null;};}function removeEntity(_0x3a5efa,_0x37bdec){return function(_0x257244){if(_0x257244){return _0x257244[_0xb568('0x26')]()[_0xb568('0x27')](function(){_0x3a5efa['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1873ac,_0x499fe3){return function(_0x42723e){if(!_0x42723e){_0x1873ac[_0xb568('0x1c')](0x194);}return _0x42723e;};}function handleError(_0x3d4251,_0x5c6c14){_0x5c6c14=_0x5c6c14||0x1f4;return function(_0x11bce8){logger[_0xb568('0x28')](_0x11bce8[_0xb568('0x29')]);if(_0x11bce8[_0xb568('0x2a')]){delete _0x11bce8[_0xb568('0x2a')];}_0x3d4251['status'](_0x5c6c14)[_0xb568('0x2b')](_0x11bce8);};}exports[_0xb568('0x2c')]=function(_0x16a1e5,_0x1b8c14){var _0x15518a={},_0xff0cce={},_0x19762f={'count':0x0,'rows':[]};var _0x22995a=db[_0xb568('0x2d')][_0xb568('0x2e')];_0xff0cce[_0xb568('0x2f')]=_['keys'](_0x22995a);var _0x461f59={'dateStart':_0x16a1e5[_0xb568('0x30')][_0xb568('0x31')],'dateEnd':_0x16a1e5[_0xb568('0x30')]['dateEnd']};delete _0x16a1e5['query'][_0xb568('0x31')];delete _0x16a1e5[_0xb568('0x30')][_0xb568('0x32')];_0xff0cce[_0xb568('0x30')]=_[_0xb568('0x33')](_0x16a1e5[_0xb568('0x30')]);_0xff0cce[_0xb568('0x34')]=_[_0xb568('0x35')](_0xff0cce[_0xb568('0x2f')],_0xff0cce[_0xb568('0x30')]);_0x15518a['attributes']=_[_0xb568('0x35')](_0xff0cce['model'],qs[_0xb568('0x36')](_0x16a1e5[_0xb568('0x30')]['fields']));_0x15518a['attributes']=_0x15518a[_0xb568('0x37')]['length']?_0x15518a[_0xb568('0x37')]:_0xff0cce[_0xb568('0x2f')];if(!_0x16a1e5[_0xb568('0x30')]['hasOwnProperty']('nolimit')){_0x15518a[_0xb568('0x20')]=qs[_0xb568('0x20')](_0x16a1e5[_0xb568('0x30')][_0xb568('0x20')]);_0x15518a[_0xb568('0x1f')]=qs[_0xb568('0x1f')](_0x16a1e5[_0xb568('0x30')]['offset']);}_0x15518a[_0xb568('0x38')]=qs['sort'](_0x16a1e5[_0xb568('0x30')][_0xb568('0x39')]);_0x15518a['where']=qs['filters'](_[_0xb568('0x3a')](_0x16a1e5[_0xb568('0x30')],_0xff0cce[_0xb568('0x34')]));if(_0x461f59[_0xb568('0x31')]){if(_0x461f59[_0xb568('0x32')]){_0x461f59['dateEnd']=moment(_0x461f59['dateEnd'])['add'](0x1,_0xb568('0x3b'));}else{_0x461f59[_0xb568('0x32')]=moment(_0x461f59[_0xb568('0x31')])['add'](0x1,_0xb568('0x3b'));}_[_0xb568('0x3c')](_0x15518a[_0xb568('0x3d')],{'createdAt':{'$gte':_0x461f59[_0xb568('0x31')],'$lte':_0x461f59[_0xb568('0x32')]}});}if(_0x16a1e5[_0xb568('0x30')][_0xb568('0x3e')]){_0x15518a[_0xb568('0x3d')]=_['merge'](_0x15518a[_0xb568('0x3d')],{'$or':_['map'](_0x15518a['attributes'],function(_0x2bd4dd){var _0x590dad={};_0x590dad[_0x2bd4dd]={'$like':'%'+_0x16a1e5[_0xb568('0x30')][_0xb568('0x3e')]+'%'};return _0x590dad;})});}_0x15518a=_[_0xb568('0x3c')]({},_0x15518a,_0x16a1e5[_0xb568('0x3f')]);var _0x32b570={'where':_0x15518a[_0xb568('0x3d')]};_0x32b570[_0xb568('0x40')]=[];if(_0x16a1e5[_0xb568('0x30')][_0xb568('0x41')]){_0x32b570['include'][_0xb568('0x42')]({'model':db[_0xb568('0x43')],'as':_0xb568('0x44'),'attributes':['id'],'where':{'id':_0x16a1e5[_0xb568('0x30')]['tag']},'required':!![]});_0x32b570['distinct']=!![];}if(_0x16a1e5[_0xb568('0x30')]['read']){_0x32b570[_0xb568('0x40')]['push']({'model':db['OpenchannelMessage'],'as':_0xb568('0x45'),'attributes':['id','direction',_0xb568('0x46'),_0xb568('0x47')],'where':{'direction':'in','read':_0x16a1e5[_0xb568('0x30')][_0xb568('0x47')]||![]},'required':!![]});_0x32b570[_0xb568('0x48')]=!![];}return db['OpenchannelInteraction'][_0xb568('0x1e')](_0x32b570)[_0xb568('0x27')](function(_0x7e45b5){_0x19762f[_0xb568('0x1e')]=_0x7e45b5;if(_0x16a1e5[_0xb568('0x30')][_0xb568('0x49')]){_0x15518a[_0xb568('0x40')]=[{'model':db[_0xb568('0x4a')],'as':_0xb568('0x4b'),'required':![],'attributes':['id','name','fullname']},{'model':db['CmContact'],'as':_0xb568('0x4c'),'required':![]},{'model':db[_0xb568('0x4a')],'as':'Owner','attributes':[_0xb568('0x2a'),_0xb568('0x4d'),'internal'],'required':![]},{'model':db[_0xb568('0x4e')],'as':_0xb568('0x4f'),'attributes':[_0xb568('0x2a'),'key'],'required':![]},{'model':db[_0xb568('0x50')],'as':'Messages','attributes':['id',_0xb568('0x51'),_0xb568('0x46'),_0xb568('0x47')],'where':{'direction':'in','read':_0x16a1e5[_0xb568('0x30')][_0xb568('0x47')]||![]},'required':_0x16a1e5[_0xb568('0x30')][_0xb568('0x47')]||![]},{'model':db['Tag'],'as':_0xb568('0x44'),'attributes':['id',_0xb568('0x2a'),'color'],'required':_0x16a1e5['query']['tag']?!![]:![]},{'model':db[_0xb568('0x43')],'as':_0xb568('0x52'),'attributes':['id',_0xb568('0x2a'),_0xb568('0x53')],'through':_0x16a1e5['query'][_0xb568('0x41')]?{'attributes':[],'where':{'TagId':_0x16a1e5[_0xb568('0x30')][_0xb568('0x41')]||undefined}}:{},'required':_0x16a1e5[_0xb568('0x30')][_0xb568('0x41')]?!![]:![]}];}return db[_0xb568('0x2d')][_0xb568('0x54')](_0x15518a);})[_0xb568('0x27')](function(_0x2bc31a){_0x19762f[_0xb568('0x55')]=_0x2bc31a;return _0x19762f;})[_0xb568('0x27')](respondWithFilteredResult(_0x1b8c14,_0x15518a))[_0xb568('0x56')](handleError(_0x1b8c14,null));};exports[_0xb568('0x57')]=function(_0x177c74,_0x2f44ce){var _0x43634b={'raw':![],'where':{'id':_0x177c74['params']['id']}},_0x3cb1a4={};_0x3cb1a4[_0xb568('0x2f')]=_[_0xb568('0x33')](db[_0xb568('0x2d')][_0xb568('0x2e')]);_0x3cb1a4[_0xb568('0x30')]=_[_0xb568('0x33')](_0x177c74[_0xb568('0x30')]);_0x3cb1a4['filters']=_['intersection'](_0x3cb1a4['model'],_0x3cb1a4[_0xb568('0x30')]);_0x43634b[_0xb568('0x37')]=_['intersection'](_0x3cb1a4[_0xb568('0x2f')],qs[_0xb568('0x36')](_0x177c74[_0xb568('0x30')][_0xb568('0x36')]));_0x43634b[_0xb568('0x37')]=_0x43634b[_0xb568('0x37')][_0xb568('0x58')]?_0x43634b['attributes']:_0x3cb1a4[_0xb568('0x2f')];if(_0x177c74['query']['includeAll']){_0x43634b[_0xb568('0x40')]=[{'all':!![]}];}_0x43634b=_[_0xb568('0x3c')]({},_0x43634b,_0x177c74[_0xb568('0x3f')]);return db['OpenchannelInteraction'][_0xb568('0x59')](_0x43634b)['then'](handleEntityNotFound(_0x2f44ce,null))[_0xb568('0x27')](respondWithResult(_0x2f44ce,null))[_0xb568('0x56')](handleError(_0x2f44ce,null));};exports[_0xb568('0x5a')]=function(_0x419c36,_0x5e3c86){return db[_0xb568('0x2d')][_0xb568('0x5a')](_0x419c36[_0xb568('0x5b')],{})['then'](respondWithResult(_0x5e3c86,0xc9))['catch'](handleError(_0x5e3c86,null));};exports['update']=function(_0x892cd2,_0x12d5ac){if(_0x892cd2[_0xb568('0x5b')]['id']){delete _0x892cd2[_0xb568('0x5b')]['id'];}return db[_0xb568('0x2d')][_0xb568('0x59')]({'where':{'id':_0x892cd2[_0xb568('0x5c')]['id']}})[_0xb568('0x27')](handleEntityNotFound(_0x12d5ac,null))[_0xb568('0x27')](saveUpdates(_0x892cd2[_0xb568('0x5b')],null))[_0xb568('0x27')](respondWithResult(_0x12d5ac,null))[_0xb568('0x56')](handleError(_0x12d5ac,null));};exports[_0xb568('0x26')]=function(_0x276f54,_0x25b0de){return db['OpenchannelInteraction'][_0xb568('0x59')]({'where':{'id':_0x276f54[_0xb568('0x5c')]['id']}})[_0xb568('0x27')](handleEntityNotFound(_0x25b0de,null))['then'](removeEntity(_0x25b0de,null))[_0xb568('0x56')](handleError(_0x25b0de,null));};exports[_0xb568('0x5d')]=function(_0xbc3099,_0x38d162){return db[_0xb568('0x2d')][_0xb568('0x5d')]()[_0xb568('0x27')](respondWithResult(_0x38d162,null))[_0xb568('0x56')](handleError(_0x38d162,null));};exports[_0xb568('0x5e')]=function(_0x45a5ef,_0x5c7bd9,_0x2497aa){return db[_0xb568('0x50')][_0xb568('0x59')]({'where':{'id':_0x45a5ef[_0xb568('0x5c')]['id']}})[_0xb568('0x27')](handleEntityNotFound(_0x5c7bd9,null))[_0xb568('0x27')](function(_0x4e5cf2){if(_0x4e5cf2){return _0x4e5cf2[_0xb568('0x5e')](_0x45a5ef[_0xb568('0x5b')]['ids'],_[_0xb568('0x5f')](_0x45a5ef[_0xb568('0x5b')],[_0xb568('0x60'),'id'])||{});}})[_0xb568('0x27')](respondWithResult(_0x5c7bd9,null))[_0xb568('0x56')](handleError(_0x5c7bd9,null));};exports['getMessages']=function(_0x2972df,_0x247f7e,_0x2d1bac){var _0x22edd6={'raw':![],'where':{}};var _0x3c394f={};var _0x326ab9={'count':0x0,'rows':[]};return db[_0xb568('0x2d')]['findOne']({'where':{'id':_0x2972df[_0xb568('0x5c')]['id']}})['then'](handleEntityNotFound(_0x247f7e,null))[_0xb568('0x27')](function(_0x485c4b){if(_0x485c4b){_0x3c394f[_0xb568('0x2f')]=_['keys'](db[_0xb568('0x50')]['rawAttributes']);_0x3c394f['query']=_[_0xb568('0x33')](_0x2972df[_0xb568('0x30')]);_0x3c394f[_0xb568('0x34')]=_['intersection'](_0x3c394f[_0xb568('0x2f')],_0x3c394f['query']);_0x22edd6[_0xb568('0x37')]=_[_0xb568('0x35')](_0x3c394f['model'],qs[_0xb568('0x36')](_0x2972df[_0xb568('0x30')][_0xb568('0x36')]));_0x22edd6[_0xb568('0x37')]=_0x22edd6[_0xb568('0x37')][_0xb568('0x58')]?_0x22edd6[_0xb568('0x37')]:_0x3c394f['model'];if(!_0x2972df[_0xb568('0x30')][_0xb568('0x61')](_0xb568('0x62'))){_0x22edd6[_0xb568('0x20')]=qs[_0xb568('0x20')](_0x2972df['query'][_0xb568('0x20')]);_0x22edd6[_0xb568('0x1f')]=qs[_0xb568('0x1f')](_0x2972df[_0xb568('0x30')][_0xb568('0x1f')]);}_0x22edd6[_0xb568('0x38')]=qs['sort'](_0x2972df[_0xb568('0x30')][_0xb568('0x39')]);_0x22edd6['where']=qs[_0xb568('0x34')](_[_0xb568('0x3a')](_0x2972df[_0xb568('0x30')],_0x3c394f[_0xb568('0x34')]));_0x22edd6[_0xb568('0x3d')][_0xb568('0x63')]=_0x485c4b['id'];if(_0x2972df['query'][_0xb568('0x3e')]){_0x22edd6['where']=_[_0xb568('0x3c')](_0x22edd6[_0xb568('0x3d')],{'$or':_[_0xb568('0x64')](_0x22edd6[_0xb568('0x37')],function(_0x3e11eb){var _0x5d4315={};_0x5d4315[_0x3e11eb]={'$like':'%'+_0x2972df[_0xb568('0x30')][_0xb568('0x3e')]+'%'};return _0x5d4315;})});}if(_0x2972df[_0xb568('0x30')][_0xb568('0x65')]){var _0x1c7b3a=_0x2972df[_0xb568('0x30')]['$gte'][_0xb568('0x66')](',');var _0x224413={};_0x224413[_0x1c7b3a[0x0]]={'$gte':moment(_0x1c7b3a[0x1])[_0xb568('0x67')](_0xb568('0x68'))};_0x22edd6[_0xb568('0x3d')]=_[_0xb568('0x3c')](_0x22edd6[_0xb568('0x3d')],_0x224413);}_0x22edd6=_[_0xb568('0x3c')]({},_0x22edd6,_0x2972df['options']);return db[_0xb568('0x50')]['count']({'where':_0x22edd6['where']})[_0xb568('0x27')](function(_0x5ae1c9){_0x326ab9['count']=_0x5ae1c9;if(_0x2972df[_0xb568('0x30')][_0xb568('0x49')]){_0x22edd6['include']=[{'all':!![]}];}return db['OpenchannelMessage']['findAll'](_0x22edd6);})[_0xb568('0x27')](function(_0x238b0d){_0x326ab9['rows']=_0x238b0d;return _0x326ab9;});}})['then'](respondWithFilteredResult(_0x247f7e,_0x22edd6))[_0xb568('0x56')](handleError(_0x247f7e,null));};exports[_0xb568('0x69')]=function(_0x24a9ca,_0x3b7910,_0x5d9d2d){return db['OpenchannelInteraction'][_0xb568('0x59')]({'where':{'id':_0x24a9ca[_0xb568('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3b7910,null))[_0xb568('0x27')](function(_0x3bdc55){if(_0x3bdc55){return _0x3bdc55[_0xb568('0x6a')](_0x24a9ca[_0xb568('0x5b')][_0xb568('0x60')],_['omit'](_0x24a9ca[_0xb568('0x5b')],[_0xb568('0x60'),'id'])||{})[_0xb568('0x6b')](function(){return db[_0xb568('0x43')][_0xb568('0x54')]({'attributes':['id','name','color'],'where':{'id':_0x24a9ca['body']['ids']}});})[_0xb568('0x27')](function(_0x2274ad){socket['emit'](_0xb568('0x6c'),{'id':Number(_0x24a9ca['params']['id']),'tags':_0x2274ad||[]});return{'id':Number(_0x24a9ca['params']['id']),'tags':_0x2274ad||[]};});}})[_0xb568('0x27')](respondWithResult(_0x3b7910,null))[_0xb568('0x56')](handleError(_0x3b7910,null));};exports[_0xb568('0x6d')]=function(_0x3efc36,_0x30d895,_0x24c582){var _0x3db4c1;return db['OpenchannelInteraction'][_0xb568('0x59')]({'where':{'id':_0x3efc36[_0xb568('0x5c')]['id']}})['then'](handleEntityNotFound(_0x30d895,null))[_0xb568('0x27')](function(_0x341278){if(_0x341278){return _0x341278[_0xb568('0x6d')](_0x3efc36[_0xb568('0x30')][_0xb568('0x60')]);}})[_0xb568('0x27')](respondWithStatusCode(_0x30d895,null))[_0xb568('0x56')](handleError(_0x30d895,null));};exports[_0xb568('0x6e')]=function(_0x5c7de2,_0xe5a8c8){var _0x5d0725=moment()[_0xb568('0x6f')]()[_0xb568('0x70')]();var _0x134ed5=path[_0xb568('0x71')](config['root'],_0xb568('0x72'),_0xb568('0x73'),_0xb568('0x74'));var _0x12d169=path[_0xb568('0x71')](config[_0xb568('0x75')],_0xb568('0x72'),_0xb568('0x73'),_0xb568('0x76'));var _0x29d095=path[_0xb568('0x71')](_0x134ed5,_0x5d0725);var _0x1ff1d7=util[_0xb568('0x67')](_0xb568('0x77'),_0x5d0725);var _0x1db58e=path[_0xb568('0x71')](_0x134ed5,_0x1ff1d7);var _0x53c0be=![];return db[_0xb568('0x2d')][_0xb568('0x59')]({'where':{'id':_0x5c7de2[_0xb568('0x5c')]['id']},'include':[{'model':db[_0xb568('0x50')],'as':_0xb568('0x45'),'attributes':['id',_0xb568('0x5b')],'include':[{'model':db[_0xb568('0x4a')],'as':'User','attributes':['id','fullname'],'raw':!![]},{'model':db[_0xb568('0x78')],'as':'Contact','attributes':['id',_0xb568('0x79')],'raw':!![]},{'model':db[_0xb568('0x7a')],'as':'Attachment','raw':!![]}]}]})[_0xb568('0x27')](handleEntityNotFound(_0xe5a8c8,null))[_0xb568('0x27')](function(_0x2883a0){if(_0x2883a0){_0x53c0be=!![];var _0x5a11d7='';var _0x5b8fbc={'format':_0xb568('0x7b'),'border':_0xb568('0x7c')};fs[_0xb568('0x7d')](_0x29d095);_0x5a11d7+=util[_0xb568('0x67')](_0xb568('0x7e'),_0x2883a0['id']);_0x5a11d7+=util[_0xb568('0x67')](_0xb568('0x7f'),moment()[_0xb568('0x67')](_0xb568('0x80'))[_0xb568('0x70')]());_0x5a11d7+=_0xb568('0x81');for(var _0x4fed18=0x0;_0x4fed18<_0x2883a0[_0xb568('0x45')][_0xb568('0x58')];_0x4fed18++){var _0xd5f99c=_0x2883a0[_0xb568('0x45')][_0x4fed18];_0x5a11d7+=_0xb568('0x82');_0x5a11d7+=util[_0xb568('0x67')](_0xb568('0x83'),_0xd5f99c[_0xb568('0x4a')]?_0xd5f99c[_0xb568('0x4a')][_0xb568('0x4d')]:_0xd5f99c[_0xb568('0x4c')][_0xb568('0x79')],_0xd5f99c[_0xb568('0x5b')]);_0x5a11d7+=_0xb568('0x84');if(_0xd5f99c[_0xb568('0x7a')]){var _0x56cc56=_0xd5f99c[_0xb568('0x7a')];var _0x3afb4c=path[_0xb568('0x71')](_0x12d169,_0x56cc56[_0xb568('0x85')]);if(fs['existsSync'](_0x3afb4c)){fs[_0xb568('0x86')](_0x3afb4c)[_0xb568('0x87')](fs[_0xb568('0x88')](path['join'](_0x29d095,_0x56cc56[_0xb568('0x85')])));}}}return new BPromise(function(_0x27aec9,_0x78f3e8){pdf[_0xb568('0x5a')](_0x5a11d7,_0x5b8fbc)['toFile'](path['join'](_0x29d095,'interaction-'+_0x5d0725+_0xb568('0x89')),function(_0x5db9f9,_0x2fb232){if(_0x5db9f9)return _0x78f3e8(_0x5db9f9);_0x27aec9(_0x2fb232);});});}})[_0xb568('0x27')](function(){if(_0x53c0be){return new BPromise(function(_0x3289f4,_0x3c7c0a){zipdir(_0x29d095,{'saveTo':_0x1db58e},function(_0x3ad7f1,_0x33c345){if(_0x3ad7f1)return _0x3c7c0a(_0x3ad7f1);return _0x3289f4(_0x33c345);});});}})[_0xb568('0x27')](function(){if(_0x53c0be){return new BPromise(function(_0x21a41e,_0x206b76){rimraf(_0x29d095,function(_0x1fff66){if(_0x1fff66)_0x206b76(_0x1fff66);return _0x21a41e();});});}})[_0xb568('0x27')](function(){if(_0x53c0be){return _0xe5a8c8[_0xb568('0x6e')](_0x1db58e,_0x1ff1d7,function(_0x3db311){if(_0x3db311){console[_0xb568('0x8a')](_0xb568('0x8b'),_0x3db311);}else{fs[_0xb568('0x8c')](_0x1db58e);}});}else{return _0xe5a8c8[_0xb568('0x1c')](0xc8);}})['catch'](handleError(_0xe5a8c8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf97b=['hook','exports','events','../../mysqldb','OpenchannelInteraction','setMaxListeners','save','remove','emit','hasOwnProperty'];(function(_0x3e0b8f,_0x1cddeb){var _0x22f742=function(_0xacb1bc){while(--_0xacb1bc){_0x3e0b8f['push'](_0x3e0b8f['shift']());}};_0x22f742(++_0x1cddeb);}(_0xf97b,0x19c));var _0xbf97=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xf97b[_0x122ef9];return _0x42fba0;};'use strict';var EventEmitter=require(_0xbf97('0x0'));var OpenchannelInteraction=require(_0xbf97('0x1'))['db'][_0xbf97('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0xbf97('0x3')](0x0);var events={'afterCreate':_0xbf97('0x4'),'afterUpdate':'update','afterDestroy':_0xbf97('0x5')};function emitEvent(_0x38d727){return function(_0x1a6a33,_0x2af54d,_0x1feac7){OpenchannelInteractionEvents[_0xbf97('0x6')](_0x38d727+':'+_0x1a6a33['id'],_0x1a6a33);OpenchannelInteractionEvents[_0xbf97('0x6')](_0x38d727,_0x1a6a33);_0x1feac7(null);};}for(var e in events){if(events[_0xbf97('0x7')](e)){var event=events[e];OpenchannelInteraction[_0xbf97('0x8')](e,emitEvent(event));}}module[_0xbf97('0x9')]=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0xb855=['OpenchannelInteraction','setMaxListeners','remove','hasOwnProperty','exports','events','../../mysqldb'];(function(_0x5d262f,_0x3c1b1c){var _0x5af9ee=function(_0x2175f8){while(--_0x2175f8){_0x5d262f['push'](_0x5d262f['shift']());}};_0x5af9ee(++_0x3c1b1c);}(_0xb855,0xec));var _0x5b85=function(_0x45d174,_0x47c6bb){_0x45d174=_0x45d174-0x0;var _0x3a0128=_0xb855[_0x45d174];return _0x3a0128;};'use strict';var EventEmitter=require(_0x5b85('0x0'));var OpenchannelInteraction=require(_0x5b85('0x1'))['db'][_0x5b85('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x5b85('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x5b85('0x4')};function emitEvent(_0x34a0cc){return function(_0x108a36,_0x4d449a,_0xc330a0){OpenchannelInteractionEvents['emit'](_0x34a0cc+':'+_0x108a36['id'],_0x108a36);OpenchannelInteractionEvents['emit'](_0x34a0cc,_0x108a36);_0xc330a0(null);};}for(var e in events){if(events[_0x5b85('0x5')](e)){var event=events[e];OpenchannelInteraction['hook'](e,emitEvent(event));}}module[_0x5b85('0x6')]=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc504=['openchannel_interactions','lodash','util','../../config/logger','api','moment','bluebird','request-promise','exports','define','OpenchannelInteraction'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc504,0x14b));var _0x4c50=function(_0x219e8c,_0x434810){_0x219e8c=_0x219e8c-0x0;var _0x195468=_0xc504[_0x219e8c];return _0x195468;};'use strict';var _=require(_0x4c50('0x0'));var util=require(_0x4c50('0x1'));var logger=require(_0x4c50('0x2'))(_0x4c50('0x3'));var moment=require(_0x4c50('0x4'));var BPromise=require(_0x4c50('0x5'));var rp=require(_0x4c50('0x6'));var attributes=require('./openchannelInteraction.attributes');module[_0x4c50('0x7')]=function(_0x37facc,_0x1612a6){return _0x37facc[_0x4c50('0x8')](_0x4c50('0x9'),attributes,{'tableName':_0x4c50('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8d05=['lodash','util','../../config/logger','api','moment','request-promise','./openchannelInteraction.attributes','exports','openchannel_interactions'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8d05,0x183));var _0x58d0=function(_0x212189,_0x45a745){_0x212189=_0x212189-0x0;var _0x3aca6a=_0x8d05[_0x212189];return _0x3aca6a;};'use strict';var _=require(_0x58d0('0x0'));var util=require(_0x58d0('0x1'));var logger=require(_0x58d0('0x2'))(_0x58d0('0x3'));var moment=require(_0x58d0('0x4'));var BPromise=require('bluebird');var rp=require(_0x58d0('0x5'));var attributes=require(_0x58d0('0x6'));module[_0x58d0('0x7')]=function(_0x24a68a,_0x23f118){return _0x24a68a['define']('OpenchannelInteraction',attributes,{'tableName':_0x58d0('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57b7=['result','catch','UpdateOpenchannelInteraction','OpenchannelInteraction','update','body','options','raw','where','limit','AddTagsToOpenchannelInteraction','find','ids','omit','spread','AddTags','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./openchannelInteraction.socket','register','then','info','OpenchannelInteraction,\x20%s,\x20%s','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0xd6505d,_0x2bd131){var _0x311b62=function(_0x97dce6){while(--_0x97dce6){_0xd6505d['push'](_0xd6505d['shift']());}};_0x311b62(++_0x2bd131);}(_0x57b7,0x160));var _0x757b=function(_0x41f5e1,_0x4ad97f){_0x41f5e1=_0x41f5e1-0x0;var _0x2e5d88=_0x57b7[_0x41f5e1];return _0x2e5d88;};'use strict';var _=require(_0x757b('0x0'));var util=require(_0x757b('0x1'));var moment=require(_0x757b('0x2'));var BPromise=require(_0x757b('0x3'));var rs=require(_0x757b('0x4'));var fs=require('fs');var db=require(_0x757b('0x5'))['db'];var utils=require(_0x757b('0x6'));var logger=require('../../config/logger')(_0x757b('0x7'));var config=require(_0x757b('0x8'));var jayson=require(_0x757b('0x9'));var client=jayson[_0x757b('0xa')]['http']({'port':0x232a});config[_0x757b('0xb')]=_[_0x757b('0xc')](config[_0x757b('0xb')],{'host':_0x757b('0xd'),'port':0x18eb});var socket=require(_0x757b('0xe'))(config[_0x757b('0xb')]);require(_0x757b('0xf'))[_0x757b('0x10')](socket);function respondWithRpcPromise(_0x53a1ce,_0x1f048,_0x2bd3bc){return new BPromise(function(_0x5d1f89,_0x14b8e8){return client['request'](_0x53a1ce,_0x2bd3bc)[_0x757b('0x11')](function(_0x4cd8a4){logger[_0x757b('0x12')](_0x757b('0x13'),_0x1f048,'request\x20sent');logger[_0x757b('0x14')](_0x757b('0x15'),_0x1f048,'request\x20sent',JSON[_0x757b('0x16')](_0x4cd8a4));if(_0x4cd8a4['error']){if(_0x4cd8a4[_0x757b('0x17')][_0x757b('0x18')]===0x1f4){logger['error'](_0x757b('0x13'),_0x1f048,_0x4cd8a4['error'][_0x757b('0x19')]);return _0x14b8e8(_0x4cd8a4[_0x757b('0x17')][_0x757b('0x19')]);}logger['error'](_0x757b('0x13'),_0x1f048,_0x4cd8a4[_0x757b('0x17')]['message']);return _0x5d1f89(_0x4cd8a4[_0x757b('0x17')]['message']);}else{logger['info'](_0x757b('0x13'),_0x1f048,'request\x20sent');_0x5d1f89(_0x4cd8a4[_0x757b('0x1a')][_0x757b('0x19')]);}})[_0x757b('0x1b')](function(_0x5eaa15){logger['error'](_0x757b('0x13'),_0x1f048,_0x5eaa15);_0x14b8e8(_0x5eaa15);});});}exports[_0x757b('0x1c')]=function(_0x401182){var _0x14eec0=this;return new Promise(function(_0xda81d9,_0x9f4476){return db[_0x757b('0x1d')][_0x757b('0x1e')](_0x401182[_0x757b('0x1f')],{'raw':_0x401182[_0x757b('0x20')]?_0x401182['options'][_0x757b('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x401182[_0x757b('0x20')]?_0x401182[_0x757b('0x20')][_0x757b('0x22')]||null:null,'attributes':_0x401182[_0x757b('0x20')]?_0x401182[_0x757b('0x20')]['attributes']||null:null,'limit':_0x401182[_0x757b('0x20')]?_0x401182['options'][_0x757b('0x23')]||null:null})[_0x757b('0x11')](function(_0x2985ca){logger[_0x757b('0x12')](_0x757b('0x1c'),_0x401182);logger[_0x757b('0x14')]('UpdateOpenchannelInteraction',_0x401182,JSON['stringify'](_0x2985ca));_0xda81d9(_0x2985ca);})['catch'](function(_0x1a8fb7){logger[_0x757b('0x17')](_0x757b('0x1c'),_0x1a8fb7['message'],_0x401182);_0x9f4476(_0x14eec0[_0x757b('0x17')](0x1f4,_0x1a8fb7[_0x757b('0x19')]));});});};exports[_0x757b('0x24')]=function(_0x1f9312){return new Promise(function(_0x12ede3,_0x35fa71){return db['OpenchannelInteraction'][_0x757b('0x25')]({'where':_0x1f9312[_0x757b('0x20')]?_0x1f9312[_0x757b('0x20')][_0x757b('0x22')]||null:null})['then'](function(_0x5cf6b1){if(_0x5cf6b1){return _0x5cf6b1['addTags'](_0x1f9312[_0x757b('0x1f')][_0x757b('0x26')],_[_0x757b('0x27')](_0x1f9312[_0x757b('0x1f')],[_0x757b('0x26'),'id'])||{});}})[_0x757b('0x28')](function(_0x1a8b47){logger[_0x757b('0x12')](_0x757b('0x29'),_0x1f9312);logger[_0x757b('0x14')](_0x757b('0x29'),_0x1f9312,JSON[_0x757b('0x16')](_0x1a8b47));_0x12ede3(_0x1a8b47);})[_0x757b('0x1b')](function(_0x371091){logger['error']('AddTags',_0x371091[_0x757b('0x19')],_0x1f9312);_0x35fa71(_this[_0x757b('0x17')](0x1f4,_0x371091[_0x757b('0x19')]));});});};
\ No newline at end of file
+var _0xc949=['defaults','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','request','then','info','OpenchannelInteraction,\x20%s,\x20%s','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','OpenchannelInteraction','update','body','options','raw','where','attributes','limit','UpdateOpenchannelInteraction','AddTagsToOpenchannelInteraction','find','omit','ids','AddTags','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0xcd0e7b,_0x53600f){var _0x5cd0fb=function(_0x4a178d){while(--_0x4a178d){_0xcd0e7b['push'](_0xcd0e7b['shift']());}};_0x5cd0fb(++_0x53600f);}(_0xc949,0x181));var _0x9c94=function(_0x110c3d,_0x12ee06){_0x110c3d=_0x110c3d-0x0;var _0x226d67=_0xc949[_0x110c3d];return _0x226d67;};'use strict';var _=require(_0x9c94('0x0'));var util=require('util');var moment=require(_0x9c94('0x1'));var BPromise=require(_0x9c94('0x2'));var rs=require(_0x9c94('0x3'));var fs=require('fs');var Redis=require(_0x9c94('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x9c94('0x5'));var logger=require(_0x9c94('0x6'))('rpc');var config=require(_0x9c94('0x7'));var jayson=require(_0x9c94('0x8'));var client=jayson[_0x9c94('0x9')][_0x9c94('0xa')]({'port':0x232a});config['redis']=_[_0x9c94('0xb')](config[_0x9c94('0xc')],{'host':_0x9c94('0xd'),'port':0x18eb});var socket=require(_0x9c94('0xe'))(new Redis(config[_0x9c94('0xc')]));require(_0x9c94('0xf'))[_0x9c94('0x10')](socket);function respondWithRpcPromise(_0x454b16,_0x417063,_0x3287f8){return new BPromise(function(_0x5775c9,_0x3dc850){return client[_0x9c94('0x11')](_0x454b16,_0x3287f8)[_0x9c94('0x12')](function(_0x20fc5a){logger[_0x9c94('0x13')](_0x9c94('0x14'),_0x417063,_0x9c94('0x15'));logger[_0x9c94('0x16')](_0x9c94('0x17'),_0x417063,_0x9c94('0x15'),JSON[_0x9c94('0x18')](_0x20fc5a));if(_0x20fc5a[_0x9c94('0x19')]){if(_0x20fc5a[_0x9c94('0x19')][_0x9c94('0x1a')]===0x1f4){logger['error'](_0x9c94('0x14'),_0x417063,_0x20fc5a['error'][_0x9c94('0x1b')]);return _0x3dc850(_0x20fc5a[_0x9c94('0x19')]['message']);}logger[_0x9c94('0x19')]('OpenchannelInteraction,\x20%s,\x20%s',_0x417063,_0x20fc5a['error'][_0x9c94('0x1b')]);return _0x5775c9(_0x20fc5a['error'][_0x9c94('0x1b')]);}else{logger[_0x9c94('0x13')]('OpenchannelInteraction,\x20%s,\x20%s',_0x417063,_0x9c94('0x15'));_0x5775c9(_0x20fc5a[_0x9c94('0x1c')][_0x9c94('0x1b')]);}})[_0x9c94('0x1d')](function(_0x16ef2c){logger[_0x9c94('0x19')](_0x9c94('0x14'),_0x417063,_0x16ef2c);_0x3dc850(_0x16ef2c);});});}exports['UpdateOpenchannelInteraction']=function(_0x2c9736){var _0x39e336=this;return new Promise(function(_0x4e2569,_0x141801){return db[_0x9c94('0x1e')][_0x9c94('0x1f')](_0x2c9736[_0x9c94('0x20')],{'raw':_0x2c9736[_0x9c94('0x21')]?_0x2c9736[_0x9c94('0x21')][_0x9c94('0x22')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2c9736[_0x9c94('0x21')]?_0x2c9736[_0x9c94('0x21')][_0x9c94('0x23')]||null:null,'attributes':_0x2c9736[_0x9c94('0x21')]?_0x2c9736[_0x9c94('0x21')][_0x9c94('0x24')]||null:null,'limit':_0x2c9736[_0x9c94('0x21')]?_0x2c9736['options'][_0x9c94('0x25')]||null:null})[_0x9c94('0x12')](function(_0x5c2647){logger[_0x9c94('0x13')](_0x9c94('0x26'),_0x2c9736);logger[_0x9c94('0x16')](_0x9c94('0x26'),_0x2c9736,JSON[_0x9c94('0x18')](_0x5c2647));_0x4e2569(_0x5c2647);})['catch'](function(_0xc18230){logger[_0x9c94('0x19')]('UpdateOpenchannelInteraction',_0xc18230[_0x9c94('0x1b')],_0x2c9736);_0x141801(_0x39e336['error'](0x1f4,_0xc18230[_0x9c94('0x1b')]));});});};exports[_0x9c94('0x27')]=function(_0x330bd4){return new Promise(function(_0x4008e8,_0x1581c0){return db[_0x9c94('0x1e')][_0x9c94('0x28')]({'where':_0x330bd4['options']?_0x330bd4['options'][_0x9c94('0x23')]||null:null})[_0x9c94('0x12')](function(_0x1f732b){if(_0x1f732b){return _0x1f732b['addTags'](_0x330bd4[_0x9c94('0x20')]['ids'],_[_0x9c94('0x29')](_0x330bd4[_0x9c94('0x20')],[_0x9c94('0x2a'),'id'])||{});}})['spread'](function(_0x514b78){logger[_0x9c94('0x13')](_0x9c94('0x2b'),_0x330bd4);logger[_0x9c94('0x16')]('AddTags',_0x330bd4,JSON['stringify'](_0x514b78));_0x4008e8(_0x514b78);})['catch'](function(_0x4aa5a9){logger[_0x9c94('0x19')]('AddTags',_0x4aa5a9[_0x9c94('0x1b')],_0x330bd4);_0x1581c0(_this[_0x9c94('0x19')](0x1f4,_0x4aa5a9['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5d7=['./openchannelInteraction.events','save','removeListener','length'];(function(_0x3dbe9d,_0x1794a3){var _0x19b621=function(_0x21484a){while(--_0x21484a){_0x3dbe9d['push'](_0x3dbe9d['shift']());}};_0x19b621(++_0x1794a3);}(_0xa5d7,0x1d4));var _0x7a5d=function(_0x14258e,_0x4d120d){_0x14258e=_0x14258e-0x0;var _0x197a2c=_0xa5d7[_0x14258e];return _0x197a2c;};'use strict';var OpenchannelInteractionEvents=require(_0x7a5d('0x0'));var events=[_0x7a5d('0x1'),'remove','update'];function createListener(_0x5f905d,_0x10b5f5){return function(_0x43b9e2){_0x10b5f5['emit'](_0x5f905d,_0x43b9e2);};}function removeListener(_0x3cd221,_0x33187a){return function(){OpenchannelInteractionEvents[_0x7a5d('0x2')](_0x3cd221,_0x33187a);};}exports['register']=function(_0x3b09c6){for(var _0x5e23b8=0x0,_0x543470=events[_0x7a5d('0x3')];_0x5e23b8<_0x543470;_0x5e23b8++){var _0x4fdba7=events[_0x5e23b8];var _0x25c251=createListener('openchannelInteraction:'+_0x4fdba7,_0x3b09c6);OpenchannelInteractionEvents['on'](_0x4fdba7,_0x25c251);}};
\ No newline at end of file
+var _0x9d6c=['update','emit','register','length','openchannelInteraction:','save','remove'];(function(_0x47febb,_0x5b35c0){var _0x4599db=function(_0x4fd759){while(--_0x4fd759){_0x47febb['push'](_0x47febb['shift']());}};_0x4599db(++_0x5b35c0);}(_0x9d6c,0x108));var _0xc9d6=function(_0x19f2d8,_0x3f585d){_0x19f2d8=_0x19f2d8-0x0;var _0x532fdf=_0x9d6c[_0x19f2d8];return _0x532fdf;};'use strict';var OpenchannelInteractionEvents=require('./openchannelInteraction.events');var events=[_0xc9d6('0x0'),_0xc9d6('0x1'),_0xc9d6('0x2')];function createListener(_0x59e5df,_0x15036f){return function(_0x3d7df7){_0x15036f[_0xc9d6('0x3')](_0x59e5df,_0x3d7df7);};}function removeListener(_0xc01ca6,_0x42d8d1){return function(){OpenchannelInteractionEvents['removeListener'](_0xc01ca6,_0x42d8d1);};}exports[_0xc9d6('0x4')]=function(_0x1a87bb){for(var _0x24cdbc=0x0,_0x42c642=events[_0xc9d6('0x5')];_0x24cdbc<_0x42c642;_0x24cdbc++){var _0x4a9463=events[_0x24cdbc];var _0xc50d89=createListener(_0xc9d6('0x6')+_0x4a9463,_0x1a87bb);OpenchannelInteractionEvents['on'](_0x4a9463,_0xc50d89);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb56f=['openchannel','openchannelmessage:create','create','update','put','accept','reject','delete','exports','multer','util','path','express','Router','../../components/interaction/service','../../config/environment','./openchannelMessage.controller','get','describe','/:id','isAuthenticated','show','post','tracked'];(function(_0x27a900,_0x1cc305){var _0xea9b1f=function(_0xaddd55){while(--_0xaddd55){_0x27a900['push'](_0x27a900['shift']());}};_0xea9b1f(++_0x1cc305);}(_0xb56f,0x141));var _0xfb56=function(_0x500243,_0x49f678){_0x500243=_0x500243-0x0;var _0x49f6eb=_0xb56f[_0x500243];return _0x49f6eb;};'use strict';var multer=require(_0xfb56('0x0'));var util=require(_0xfb56('0x1'));var path=require(_0xfb56('0x2'));var timeout=require('connect-timeout');var express=require(_0xfb56('0x3'));var router=express[_0xfb56('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0xfb56('0x5'));var config=require(_0xfb56('0x6'));var controller=require(_0xfb56('0x7'));router[_0xfb56('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xfb56('0x8')]('/describe',auth['isAuthenticated'](),controller[_0xfb56('0x9')]);router[_0xfb56('0x8')](_0xfb56('0xa'),auth[_0xfb56('0xb')](),controller[_0xfb56('0xc')]);router[_0xfb56('0xd')]('/',auth['isAuthenticated'](),interaction[_0xfb56('0xe')](_0xfb56('0xf'),_0xfb56('0x10')),controller[_0xfb56('0x11')]);router['put'](_0xfb56('0xa'),auth[_0xfb56('0xb')](),controller[_0xfb56('0x12')]);router[_0xfb56('0x13')]('/:id/accept',auth[_0xfb56('0xb')](),controller[_0xfb56('0x14')]);router[_0xfb56('0x13')]('/:id/reject',auth['isAuthenticated'](),controller[_0xfb56('0x15')]);router[_0xfb56('0x16')](_0xfb56('0xa'),auth[_0xfb56('0xb')](),controller['destroy']);module[_0xfb56('0x17')]=router;
\ No newline at end of file
+var _0x8f13=['../../config/environment','./openchannelMessage.controller','get','isAuthenticated','/describe','describe','post','tracked','openchannel','create','put','/:id','update','/:id/accept','accept','/:id/reject','reject','exports','multer','connect-timeout','../../components/auth/service','../../components/interaction/service'];(function(_0x4c5c97,_0x4f85bf){var _0xd5d2cb=function(_0x1e6100){while(--_0x1e6100){_0x4c5c97['push'](_0x4c5c97['shift']());}};_0xd5d2cb(++_0x4f85bf);}(_0x8f13,0xac));var _0x38f1=function(_0x54b062,_0x264bb5){_0x54b062=_0x54b062-0x0;var _0x255e41=_0x8f13[_0x54b062];return _0x255e41;};'use strict';var multer=require(_0x38f1('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x38f1('0x1'));var express=require('express');var router=express['Router']();var auth=require(_0x38f1('0x2'));var interaction=require(_0x38f1('0x3'));var config=require(_0x38f1('0x4'));var controller=require(_0x38f1('0x5'));router[_0x38f1('0x6')]('/',auth[_0x38f1('0x7')](),controller['index']);router['get'](_0x38f1('0x8'),auth[_0x38f1('0x7')](),controller[_0x38f1('0x9')]);router[_0x38f1('0x6')]('/:id',auth[_0x38f1('0x7')](),controller['show']);router[_0x38f1('0xa')]('/',auth[_0x38f1('0x7')](),interaction[_0x38f1('0xb')](_0x38f1('0xc'),'openchannelmessage:create'),controller[_0x38f1('0xd')]);router[_0x38f1('0xe')](_0x38f1('0xf'),auth[_0x38f1('0x7')](),controller[_0x38f1('0x10')]);router[_0x38f1('0xe')](_0x38f1('0x11'),auth[_0x38f1('0x7')](),controller[_0x38f1('0x12')]);router[_0x38f1('0xe')](_0x38f1('0x13'),auth[_0x38f1('0x7')](),controller[_0x38f1('0x14')]);router['delete'](_0x38f1('0xf'),auth[_0x38f1('0x7')](),controller['destroy']);module[_0x38f1('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x549c=['BOOLEAN','ENUM','out','DATE','sequelize','TEXT','medium'];(function(_0x4e48b8,_0xed175a){var _0x358616=function(_0x58706a){while(--_0x58706a){_0x4e48b8['push'](_0x4e48b8['shift']());}};_0x358616(++_0xed175a);}(_0x549c,0x193));var _0xc549=function(_0xc1aada,_0x1e14b8){_0xc1aada=_0xc1aada-0x0;var _0x240071=_0x549c[_0xc1aada];return _0x240071;};'use strict';var Sequelize=require(_0xc549('0x0'));module['exports']={'body':{'type':Sequelize[_0xc549('0x1')](_0xc549('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xc549('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0xc549('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xc549('0x4')]('in',_0xc549('0x5')),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize[_0xc549('0x6')]}};
\ No newline at end of file
+var _0x649f=['BOOLEAN','out','DATE','exports','TEXT','medium'];(function(_0x267e5b,_0x2738cc){var _0x5ab5d6=function(_0x522934){while(--_0x522934){_0x267e5b['push'](_0x267e5b['shift']());}};_0x5ab5d6(++_0x2738cc);}(_0x649f,0x1ef));var _0xf649=function(_0x599e60,_0x5b6519){_0x599e60=_0x599e60-0x0;var _0x468e19=_0x649f[_0x599e60];return _0x468e19;};'use strict';var Sequelize=require('sequelize');module[_0xf649('0x0')]={'body':{'type':Sequelize[_0xf649('0x1')](_0xf649('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xf649('0x3')],'defaultValue':![]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0xf649('0x4')),'defaultValue':_0xf649('0x4'),'allowNull':![]},'readAt':{'type':Sequelize[_0xf649('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7269=['rejectMessage','channel','rejectmessage','html-pdf','eml-format','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','http','client','request','then','OpenchannelMessage,\x20%s,\x20%s','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','catch','sendStatus','end','status','json','count','offset','limit','Content-Range','reject','update','stack','name','index','OpenchannelMessage','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','find','body','params','destroy','describe','../../config/logger','openchannel-interactions','accept','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','get','OpenchannelInteractionId','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','acceptMessage','manual','interface','event','EventManager','acceptmessage','openchannel','agent','OpenchannelInteraction','RejectMessage'];(function(_0x49d5b6,_0x461b3f){var _0x1069d6=function(_0x1ada6d){while(--_0x1ada6d){_0x49d5b6['push'](_0x49d5b6['shift']());}};_0x1069d6(++_0x461b3f);}(_0x7269,0x76));var _0x9726=function(_0x491cc7,_0x39f3aa){_0x491cc7=_0x491cc7-0x0;var _0x5d7e13=_0x7269[_0x491cc7];return _0x5d7e13;};'use strict';var pdf=require(_0x9726('0x0'));var emlformat=require(_0x9726('0x1'));var rimraf=require(_0x9726('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9726('0x3'));var moment=require(_0x9726('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9726('0x5'));var util=require(_0x9726('0x6'));var path=require(_0x9726('0x7'));var sox=require(_0x9726('0x8'));var csv=require(_0x9726('0x9'));var ejs=require(_0x9726('0xa'));var fs=require('fs');var _=require(_0x9726('0xb'));var squel=require(_0x9726('0xc'));var crypto=require(_0x9726('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x9726('0xe'));var toCsv=require('to-csv');var querystring=require(_0x9726('0xf'));var Papa=require(_0x9726('0x10'));var qs=require(_0x9726('0x11'));var logger=require('../../config/logger')(_0x9726('0x12'));var utils=require(_0x9726('0x13'));var config=require(_0x9726('0x14'));var db=require('../../mysqldb')['db'];config[_0x9726('0x15')]=_[_0x9726('0x16')](config[_0x9726('0x15')],{'host':_0x9726('0x17'),'port':0x18eb});var socket=require(_0x9726('0x18'))(config['redis']);require('./openchannelMessage.socket')[_0x9726('0x19')](socket);var jayson=require(_0x9726('0x1a'));var client=jayson['client'][_0x9726('0x1b')]({'port':0x232c});var client9002=jayson[_0x9726('0x1c')][_0x9726('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2d1e84,_0x513080,_0x1590b4,_0x72e574){return new BPromise(function(_0x33a7d6,_0x2c8046){var _0x32f3fa=_0x72e574||client;return _0x32f3fa[_0x9726('0x1d')](_0x2d1e84,_0x1590b4)[_0x9726('0x1e')](function(_0x235beb){logger['info'](_0x9726('0x1f'),_0x513080,'request\x20sent');logger[_0x9726('0x20')](_0x9726('0x21'),_0x513080,_0x9726('0x22'),JSON[_0x9726('0x23')](_0x235beb));if(_0x235beb['error']){if(_0x235beb[_0x9726('0x24')][_0x9726('0x25')]===0x1f4){logger[_0x9726('0x24')](_0x9726('0x1f'),_0x513080,_0x235beb['error'][_0x9726('0x26')]);return _0x2c8046(_0x235beb[_0x9726('0x24')]['message']);}logger[_0x9726('0x24')](_0x9726('0x1f'),_0x513080,_0x235beb[_0x9726('0x24')][_0x9726('0x26')]);return _0x33a7d6(_0x235beb['error'][_0x9726('0x26')]);}else{logger[_0x9726('0x27')](_0x9726('0x1f'),_0x513080,_0x9726('0x22'));_0x33a7d6(_0x235beb['result'][_0x9726('0x26')]);}})[_0x9726('0x28')](function(_0x2d6d36){logger[_0x9726('0x24')](_0x9726('0x1f'),_0x513080,_0x2d6d36);_0x2c8046(_0x2d6d36);});});}function respondWithStatusCode(_0x2d19e9,_0x22a1d4){_0x22a1d4=_0x22a1d4||0xcc;return function(_0x13ccae){if(_0x13ccae){return _0x2d19e9[_0x9726('0x29')](_0x22a1d4);}return _0x2d19e9['status'](_0x22a1d4)[_0x9726('0x2a')]();};}function respondWithResult(_0x52ac95,_0xe74b18){_0xe74b18=_0xe74b18||0xc8;return function(_0x223079){if(_0x223079){return _0x52ac95[_0x9726('0x2b')](_0xe74b18)[_0x9726('0x2c')](_0x223079);}};}function respondWithFilteredResult(_0x4455b2,_0x100de3){return function(_0x55af40){if(_0x55af40){var _0x173a1d=_0x55af40[_0x9726('0x2d')],_0x4dba6a=_0x100de3[_0x9726('0x2e')],_0x5cc55b=_0x100de3[_0x9726('0x2e')]+_0x100de3[_0x9726('0x2f')],_0x57c03b;if(_0x5cc55b>=_0x173a1d){_0x5cc55b=_0x173a1d;_0x57c03b=0xc8;}else{_0x57c03b=0xce;}_0x4455b2[_0x9726('0x2b')](_0x57c03b);return _0x4455b2['set'](_0x9726('0x30'),_0x4dba6a+'-'+_0x5cc55b+'/'+_0x173a1d)[_0x9726('0x2c')](_0x55af40);}return null;};}function patchUpdates(_0x548e6f){return function(_0x2f4f12){try{jsonpatch['apply'](_0x2f4f12,_0x548e6f,!![]);}catch(_0x408051){return BPromise[_0x9726('0x31')](_0x408051);}return _0x2f4f12['save']();};}function saveUpdates(_0x4fb57f,_0x2c22d8){return function(_0x9dfe62){if(_0x9dfe62){return _0x9dfe62[_0x9726('0x32')](_0x4fb57f)[_0x9726('0x1e')](function(_0xc67a18){return _0xc67a18;});}return null;};}function removeEntity(_0x56c8fe,_0xbe9153){return function(_0x121578){if(_0x121578){return _0x121578['destroy']()['then'](function(){_0x56c8fe[_0x9726('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27cacf,_0x59aa69){return function(_0x5e37da){if(!_0x5e37da){_0x27cacf[_0x9726('0x29')](0x194);}return _0x5e37da;};}function handleError(_0x1155e6,_0x6e5d58){_0x6e5d58=_0x6e5d58||0x1f4;return function(_0x398a0a){logger[_0x9726('0x24')](_0x398a0a[_0x9726('0x33')]);if(_0x398a0a[_0x9726('0x34')]){delete _0x398a0a['name'];}_0x1155e6['status'](_0x6e5d58)['send'](_0x398a0a);};}exports[_0x9726('0x35')]=function(_0x2df4f7,_0x36b76b){var _0x4ac19d={},_0x289cdf={},_0x3a2c94={'count':0x0,'rows':[]};var _0x4ae983=db[_0x9726('0x36')][_0x9726('0x37')];_0x289cdf[_0x9726('0x38')]=_[_0x9726('0x39')](_0x4ae983);var _0x273145={'dateStart':_0x2df4f7[_0x9726('0x3a')][_0x9726('0x3b')],'dateEnd':_0x2df4f7['query'][_0x9726('0x3c')]};delete _0x2df4f7[_0x9726('0x3a')][_0x9726('0x3b')];delete _0x2df4f7[_0x9726('0x3a')][_0x9726('0x3c')];_0x289cdf['query']=_[_0x9726('0x39')](_0x2df4f7[_0x9726('0x3a')]);_0x289cdf[_0x9726('0x3d')]=_['intersection'](_0x289cdf[_0x9726('0x38')],_0x289cdf[_0x9726('0x3a')]);_0x4ac19d[_0x9726('0x3e')]=_[_0x9726('0x3f')](_0x289cdf[_0x9726('0x38')],qs[_0x9726('0x40')](_0x2df4f7['query'][_0x9726('0x40')]));_0x4ac19d[_0x9726('0x3e')]=_0x4ac19d['attributes'][_0x9726('0x41')]?_0x4ac19d[_0x9726('0x3e')]:_0x289cdf[_0x9726('0x38')];if(!_0x2df4f7[_0x9726('0x3a')][_0x9726('0x42')](_0x9726('0x43'))){_0x4ac19d[_0x9726('0x2f')]=qs[_0x9726('0x2f')](_0x2df4f7[_0x9726('0x3a')][_0x9726('0x2f')]);_0x4ac19d[_0x9726('0x2e')]=qs[_0x9726('0x2e')](_0x2df4f7['query']['offset']);}_0x4ac19d[_0x9726('0x44')]=qs[_0x9726('0x45')](_0x2df4f7[_0x9726('0x3a')][_0x9726('0x45')]);_0x4ac19d[_0x9726('0x46')]=qs[_0x9726('0x3d')](_[_0x9726('0x47')](_0x2df4f7[_0x9726('0x3a')],_0x289cdf['filters']));if(_0x273145[_0x9726('0x3b')]){if(_0x273145['dateEnd']){_0x273145[_0x9726('0x3c')]=moment(_0x273145[_0x9726('0x3c')])[_0x9726('0x48')](0x1,'day');}else{_0x273145[_0x9726('0x3c')]=moment(_0x273145[_0x9726('0x3b')])[_0x9726('0x48')](0x1,_0x9726('0x49'));}_[_0x9726('0x4a')](_0x4ac19d[_0x9726('0x46')],{'createdAt':{'$gte':_0x273145[_0x9726('0x3b')],'$lte':_0x273145[_0x9726('0x3c')]}});}if(_0x2df4f7[_0x9726('0x3a')][_0x9726('0x4b')]){_0x4ac19d[_0x9726('0x46')]=_['merge'](_0x4ac19d['where'],{'$or':_[_0x9726('0x4c')](_0x4ac19d[_0x9726('0x3e')],function(_0x40fc3a){var _0x16ac3d={};_0x16ac3d[_0x40fc3a]={'$like':'%'+_0x2df4f7['query']['filter']+'%'};return _0x16ac3d;})});}_0x4ac19d=_[_0x9726('0x4a')]({},_0x4ac19d,_0x2df4f7[_0x9726('0x4d')]);var _0x4d0ccf={'where':_0x4ac19d[_0x9726('0x46')]};return db[_0x9726('0x36')][_0x9726('0x2d')](_0x4d0ccf)[_0x9726('0x1e')](function(_0x2bb1c9){_0x3a2c94[_0x9726('0x2d')]=_0x2bb1c9;if(_0x2df4f7[_0x9726('0x3a')][_0x9726('0x4e')]){_0x4ac19d[_0x9726('0x4f')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0x9726('0x50')](_0x4ac19d);})[_0x9726('0x1e')](function(_0x3e0aca){_0x3a2c94[_0x9726('0x51')]=_0x3e0aca;return _0x3a2c94;})[_0x9726('0x1e')](respondWithFilteredResult(_0x36b76b,_0x4ac19d))[_0x9726('0x28')](handleError(_0x36b76b,null));};exports['show']=function(_0x14af0b,_0x53925d){var _0x55172a={'raw':!![],'where':{'id':_0x14af0b['params']['id']}},_0x2feae0={};_0x2feae0[_0x9726('0x38')]=_[_0x9726('0x39')](db[_0x9726('0x36')]['rawAttributes']);_0x2feae0[_0x9726('0x3a')]=_[_0x9726('0x39')](_0x14af0b['query']);_0x2feae0[_0x9726('0x3d')]=_[_0x9726('0x3f')](_0x2feae0[_0x9726('0x38')],_0x2feae0[_0x9726('0x3a')]);_0x55172a[_0x9726('0x3e')]=_['intersection'](_0x2feae0[_0x9726('0x38')],qs[_0x9726('0x40')](_0x14af0b[_0x9726('0x3a')][_0x9726('0x40')]));_0x55172a[_0x9726('0x3e')]=_0x55172a[_0x9726('0x3e')][_0x9726('0x41')]?_0x55172a[_0x9726('0x3e')]:_0x2feae0[_0x9726('0x38')];if(_0x14af0b['query'][_0x9726('0x4e')]){_0x55172a[_0x9726('0x4f')]=[{'all':!![]}];}_0x55172a=_[_0x9726('0x4a')]({},_0x55172a,_0x14af0b[_0x9726('0x4d')]);return db[_0x9726('0x36')][_0x9726('0x52')](_0x55172a)[_0x9726('0x1e')](handleEntityNotFound(_0x53925d,null))['then'](respondWithResult(_0x53925d,null))[_0x9726('0x28')](handleError(_0x53925d,null));};exports['create']=function(_0x555fe8,_0x11b967){return db['OpenchannelMessage']['create'](_0x555fe8[_0x9726('0x53')],{})['then'](respondWithResult(_0x11b967,0xc9))[_0x9726('0x28')](handleError(_0x11b967,null));};exports['update']=function(_0x299710,_0x39cacb){if(_0x299710['body']['id']){delete _0x299710[_0x9726('0x53')]['id'];}return db[_0x9726('0x36')][_0x9726('0x52')]({'where':{'id':_0x299710[_0x9726('0x54')]['id']}})[_0x9726('0x1e')](handleEntityNotFound(_0x39cacb,null))[_0x9726('0x1e')](saveUpdates(_0x299710[_0x9726('0x53')],null))[_0x9726('0x1e')](respondWithResult(_0x39cacb,null))[_0x9726('0x28')](handleError(_0x39cacb,null));};exports[_0x9726('0x55')]=function(_0x48da5a,_0x59641d){return db[_0x9726('0x36')]['find']({'where':{'id':_0x48da5a[_0x9726('0x54')]['id']}})[_0x9726('0x1e')](handleEntityNotFound(_0x59641d,null))['then'](removeEntity(_0x59641d,null))[_0x9726('0x28')](handleError(_0x59641d,null));};exports[_0x9726('0x56')]=function(_0x53a626,_0x59a177){return db[_0x9726('0x36')]['describe']()[_0x9726('0x1e')](respondWithResult(_0x59a177,null))[_0x9726('0x28')](handleError(_0x59a177,null));};var interaction_log=require(_0x9726('0x57'))(_0x9726('0x58'));exports[_0x9726('0x59')]=function(_0x44239c,_0x301796,_0x2b3134){var _0x5b2e17={'channel':'openchannel'};if(_0x44239c['body']['id']){delete _0x44239c[_0x9726('0x53')]['id'];}_0x44239c['body']['read']=!![];_0x44239c[_0x9726('0x53')]['readAt']=moment()[_0x9726('0x5a')](_0x9726('0x5b'));_0x44239c[_0x9726('0x53')]['UserId']=_0x44239c[_0x9726('0x53')][_0x9726('0x5c')]||_0x44239c[_0x9726('0x5d')]['id'];return db[_0x9726('0x36')][_0x9726('0x52')]({'where':{'id':_0x44239c[_0x9726('0x54')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0x9726('0x5e')}]})[_0x9726('0x1e')](handleEntityNotFound(_0x301796,null))[_0x9726('0x1e')](saveUpdates(_0x44239c['body'],null))['then'](function(_0x114321){if(_0x114321){_0x5b2e17[_0x9726('0x26')]=_0x114321[_0x9726('0x5f')]({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x114321[_0x9726('0x60')]}});}return null;})[_0x9726('0x1e')](handleEntityNotFound(_0x301796,null))['then'](function(_0x34960c){if(_0x34960c){return _0x34960c[_0x9726('0x32')]({'UserId':_0x44239c[_0x9726('0x53')][_0x9726('0x5c')],'read1stAt':_['isNil'](_0x34960c[_0x9726('0x61')])?moment()[_0x9726('0x5a')](_0x9726('0x5b')):undefined});}return null;})[_0x9726('0x1e')](function(_0x3ce743){if(_0x3ce743){_0x5b2e17[_0x9726('0x62')]=_0x3ce743[_0x9726('0x5f')]({'plain':!![]});interaction_log[_0x9726('0x27')](_0x9726('0x63'),_0x44239c[_0x9726('0x5d')]['id'],_0x44239c[_0x9726('0x5d')][_0x9726('0x34')],_0x44239c[_0x9726('0x5d')]['role'],_0x5b2e17[_0x9726('0x62')]['id'],_0x44239c[_0x9726('0x53')]?JSON[_0x9726('0x23')](_0x44239c[_0x9726('0x53')]):_0x9726('0x64'));return respondWithRpcPromise(_0x9726('0x65'),_0x9726('0x66'),_0x5b2e17);}return null;})['then'](function(_0x1647b3){if(_0x1647b3){if(_0x44239c[_0x9726('0x53')][_0x9726('0x67')]){_0x5b2e17['message'][_0x9726('0x68')]=util[_0x9726('0x5a')]('SIP/%s',_0x44239c[_0x9726('0x5d')][_0x9726('0x34')]);_0x5b2e17['message']['channel']=_0x5b2e17['channel'];_0x5b2e17[_0x9726('0x26')][_0x9726('0x69')]=_0x9726('0x59');return respondWithRpcPromise(_0x9726('0x6a'),_0x9726('0x6a'),{'event':_0x9726('0x6b'),'message':_0x5b2e17['message']},client9002)[_0x9726('0x1e')](function(){return _0x5b2e17;});}return _0x5b2e17;}return null;})[_0x9726('0x1e')](respondWithResult(_0x301796,null))[_0x9726('0x28')](handleError(_0x301796,null));};var interaction_log=require(_0x9726('0x57'))(_0x9726('0x58'));exports[_0x9726('0x31')]=function(_0x3a98a6,_0x1fad08,_0x8cc4e2){var _0x31e356={'agent':{},'channel':_0x9726('0x6c')};if(_0x3a98a6[_0x9726('0x53')]['id']){delete _0x3a98a6[_0x9726('0x53')]['id'];}_0x3a98a6['body']['UserId']=_0x3a98a6[_0x9726('0x53')]['UserId']||_0x3a98a6[_0x9726('0x5d')]['id'];_0x31e356[_0x9726('0x6d')]['id']=_0x3a98a6[_0x9726('0x53')][_0x9726('0x5c')];return db[_0x9726('0x36')]['find']({'where':{'id':_0x3a98a6[_0x9726('0x54')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x1fad08,null))[_0x9726('0x1e')](function(_0x3d8c4e){if(_0x3d8c4e){_0x31e356[_0x9726('0x26')]=_0x3d8c4e[_0x9726('0x5f')]({'plain':!![]});return db[_0x9726('0x6e')][_0x9726('0x52')]({'where':{'id':_0x3d8c4e['OpenchannelInteractionId']}});}return null;})[_0x9726('0x1e')](handleEntityNotFound(_0x1fad08,null))[_0x9726('0x1e')](function(_0x55a95b){if(_0x55a95b){_0x31e356[_0x9726('0x62')]=_0x55a95b[_0x9726('0x5f')]({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x3a98a6[_0x9726('0x5d')]['id'],_0x3a98a6[_0x9726('0x5d')][_0x9726('0x34')],_0x3a98a6[_0x9726('0x5d')]['role'],_0x31e356['interaction']['id'],_0x3a98a6[_0x9726('0x53')]?JSON[_0x9726('0x23')](_0x3a98a6['body']):_0x9726('0x64'));return respondWithRpcPromise(_0x9726('0x6f'),_0x9726('0x70'),_0x31e356);}return null;})['then'](function(_0x3969c2){if(_0x3969c2){_0x3969c2[_0x9726('0x26')][_0x9726('0x68')]=util['format']('SIP/%s',_0x3a98a6['user'][_0x9726('0x34')]);_0x3969c2[_0x9726('0x26')][_0x9726('0x71')]=_0x31e356[_0x9726('0x71')];_0x3969c2['message'][_0x9726('0x69')]=_0x9726('0x31');respondWithRpcPromise(_0x9726('0x6a'),'EventManager',{'event':_0x9726('0x72'),'message':_0x3969c2[_0x9726('0x26')]},client9002);return _0x31e356;}return null;})['then'](respondWithResult(_0x1fad08,null))['catch'](handleError(_0x1fad08,null));};
\ No newline at end of file
+var _0xcab8=['squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status','count','offset','limit','Content-Range','json','apply','reject','save','update','destroy','end','stack','name','index','OpenchannelMessage','query','dateStart','dateEnd','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','merge','filter','map','options','includeAll','include','findAll','rows','params','rawAttributes','find','create','body','describe','../../config/logger','openchannel-interactions','accept','openchannel','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','acceptMessage','manual','interface','SIP/%s','event','EventManager','agent','interaction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','channel','rejectmessage','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','ejs','lodash'];(function(_0x2d364e,_0x301c5e){var _0x1b9312=function(_0x1b05bb){while(--_0x1b05bb){_0x2d364e['push'](_0x2d364e['shift']());}};_0x1b9312(++_0x301c5e);}(_0xcab8,0xe2));var _0x8cab=function(_0x7b6a05,_0x1792cb){_0x7b6a05=_0x7b6a05-0x0;var _0x1f983a=_0xcab8[_0x7b6a05];return _0x1f983a;};'use strict';var pdf=require(_0x8cab('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8cab('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8cab('0x2'));var rp=require(_0x8cab('0x3'));var moment=require(_0x8cab('0x4'));var BPromise=require(_0x8cab('0x5'));var Mustache=require(_0x8cab('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x8cab('0x7'));var ejs=require(_0x8cab('0x8'));var fs=require('fs');var _=require(_0x8cab('0x9'));var squel=require(_0x8cab('0xa'));var crypto=require(_0x8cab('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x8cab('0xc'));var toCsv=require(_0x8cab('0x7'));var querystring=require(_0x8cab('0xd'));var Papa=require(_0x8cab('0xe'));var Redis=require(_0x8cab('0xf'));var qs=require(_0x8cab('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x8cab('0x11'));var config=require(_0x8cab('0x12'));var db=require(_0x8cab('0x13'))['db'];config['redis']=_[_0x8cab('0x14')](config[_0x8cab('0x15')],{'host':_0x8cab('0x16'),'port':0x18eb});var socket=require(_0x8cab('0x17'))(new Redis(config[_0x8cab('0x15')]));require('./openchannelMessage.socket')[_0x8cab('0x18')](socket);var jayson=require(_0x8cab('0x19'));var client=jayson[_0x8cab('0x1a')][_0x8cab('0x1b')]({'port':0x232c});var client9002=jayson[_0x8cab('0x1a')][_0x8cab('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x9cff8c,_0xee6661,_0x466e9d,_0x314ea2){return new BPromise(function(_0x16ddb9,_0x268023){var _0x47983e=_0x314ea2||client;return _0x47983e[_0x8cab('0x1c')](_0x9cff8c,_0x466e9d)[_0x8cab('0x1d')](function(_0x6b1186){logger[_0x8cab('0x1e')](_0x8cab('0x1f'),_0xee6661,_0x8cab('0x20'));logger[_0x8cab('0x21')](_0x8cab('0x22'),_0xee6661,_0x8cab('0x20'),JSON[_0x8cab('0x23')](_0x6b1186));if(_0x6b1186[_0x8cab('0x24')]){if(_0x6b1186[_0x8cab('0x24')][_0x8cab('0x25')]===0x1f4){logger[_0x8cab('0x24')](_0x8cab('0x1f'),_0xee6661,_0x6b1186[_0x8cab('0x24')]['message']);return _0x268023(_0x6b1186[_0x8cab('0x24')]['message']);}logger['error'](_0x8cab('0x1f'),_0xee6661,_0x6b1186[_0x8cab('0x24')]['message']);return _0x16ddb9(_0x6b1186[_0x8cab('0x24')]['message']);}else{logger[_0x8cab('0x1e')](_0x8cab('0x1f'),_0xee6661,_0x8cab('0x20'));_0x16ddb9(_0x6b1186['result'][_0x8cab('0x26')]);}})[_0x8cab('0x27')](function(_0x22a39e){logger[_0x8cab('0x24')](_0x8cab('0x1f'),_0xee6661,_0x22a39e);_0x268023(_0x22a39e);});});}function respondWithStatusCode(_0x29a5d3,_0x30eb25){_0x30eb25=_0x30eb25||0xcc;return function(_0x20a36c){if(_0x20a36c){return _0x29a5d3[_0x8cab('0x28')](_0x30eb25);}return _0x29a5d3[_0x8cab('0x29')](_0x30eb25)['end']();};}function respondWithResult(_0x635c90,_0x388ccb){_0x388ccb=_0x388ccb||0xc8;return function(_0x2ba5ad){if(_0x2ba5ad){return _0x635c90['status'](_0x388ccb)['json'](_0x2ba5ad);}};}function respondWithFilteredResult(_0xfa6ccb,_0x16589c){return function(_0x45ffc6){if(_0x45ffc6){var _0x2cde86=_0x45ffc6[_0x8cab('0x2a')],_0x7d52e5=_0x16589c[_0x8cab('0x2b')],_0x58cd2a=_0x16589c[_0x8cab('0x2b')]+_0x16589c[_0x8cab('0x2c')],_0x7cb6b8;if(_0x58cd2a>=_0x2cde86){_0x58cd2a=_0x2cde86;_0x7cb6b8=0xc8;}else{_0x7cb6b8=0xce;}_0xfa6ccb[_0x8cab('0x29')](_0x7cb6b8);return _0xfa6ccb['set'](_0x8cab('0x2d'),_0x7d52e5+'-'+_0x58cd2a+'/'+_0x2cde86)[_0x8cab('0x2e')](_0x45ffc6);}return null;};}function patchUpdates(_0x116366){return function(_0x2b4875){try{jsonpatch[_0x8cab('0x2f')](_0x2b4875,_0x116366,!![]);}catch(_0x20c352){return BPromise[_0x8cab('0x30')](_0x20c352);}return _0x2b4875[_0x8cab('0x31')]();};}function saveUpdates(_0x3bafb9,_0x5b216f){return function(_0x20d3ed){if(_0x20d3ed){return _0x20d3ed[_0x8cab('0x32')](_0x3bafb9)[_0x8cab('0x1d')](function(_0x130e51){return _0x130e51;});}return null;};}function removeEntity(_0x3dd859,_0x58a8c4){return function(_0x474f36){if(_0x474f36){return _0x474f36[_0x8cab('0x33')]()['then'](function(){_0x3dd859['status'](0xcc)[_0x8cab('0x34')]();});}};}function handleEntityNotFound(_0x400652,_0xbb81dc){return function(_0x21a75e){if(!_0x21a75e){_0x400652[_0x8cab('0x28')](0x194);}return _0x21a75e;};}function handleError(_0x2841a4,_0x4eda1f){_0x4eda1f=_0x4eda1f||0x1f4;return function(_0x11c7de){logger[_0x8cab('0x24')](_0x11c7de[_0x8cab('0x35')]);if(_0x11c7de[_0x8cab('0x36')]){delete _0x11c7de['name'];}_0x2841a4['status'](_0x4eda1f)['send'](_0x11c7de);};}exports[_0x8cab('0x37')]=function(_0x232889,_0x59c353){var _0x49ecbb={},_0x477bb8={},_0x404f0b={'count':0x0,'rows':[]};var _0x983d88=db[_0x8cab('0x38')]['rawAttributes'];_0x477bb8['model']=_['keys'](_0x983d88);var _0x1e929b={'dateStart':_0x232889[_0x8cab('0x39')][_0x8cab('0x3a')],'dateEnd':_0x232889[_0x8cab('0x39')][_0x8cab('0x3b')]};delete _0x232889[_0x8cab('0x39')][_0x8cab('0x3a')];delete _0x232889[_0x8cab('0x39')][_0x8cab('0x3b')];_0x477bb8[_0x8cab('0x39')]=_[_0x8cab('0x3c')](_0x232889[_0x8cab('0x39')]);_0x477bb8['filters']=_[_0x8cab('0x3d')](_0x477bb8[_0x8cab('0x3e')],_0x477bb8[_0x8cab('0x39')]);_0x49ecbb[_0x8cab('0x3f')]=_[_0x8cab('0x3d')](_0x477bb8['model'],qs[_0x8cab('0x40')](_0x232889['query'][_0x8cab('0x40')]));_0x49ecbb[_0x8cab('0x3f')]=_0x49ecbb[_0x8cab('0x3f')][_0x8cab('0x41')]?_0x49ecbb['attributes']:_0x477bb8[_0x8cab('0x3e')];if(!_0x232889[_0x8cab('0x39')][_0x8cab('0x42')](_0x8cab('0x43'))){_0x49ecbb[_0x8cab('0x2c')]=qs[_0x8cab('0x2c')](_0x232889[_0x8cab('0x39')][_0x8cab('0x2c')]);_0x49ecbb['offset']=qs[_0x8cab('0x2b')](_0x232889[_0x8cab('0x39')][_0x8cab('0x2b')]);}_0x49ecbb[_0x8cab('0x44')]=qs[_0x8cab('0x45')](_0x232889[_0x8cab('0x39')][_0x8cab('0x45')]);_0x49ecbb[_0x8cab('0x46')]=qs[_0x8cab('0x47')](_[_0x8cab('0x48')](_0x232889[_0x8cab('0x39')],_0x477bb8[_0x8cab('0x47')]));if(_0x1e929b[_0x8cab('0x3a')]){if(_0x1e929b[_0x8cab('0x3b')]){_0x1e929b[_0x8cab('0x3b')]=moment(_0x1e929b[_0x8cab('0x3b')])[_0x8cab('0x49')](0x1,'day');}else{_0x1e929b[_0x8cab('0x3b')]=moment(_0x1e929b[_0x8cab('0x3a')])['add'](0x1,'day');}_[_0x8cab('0x4a')](_0x49ecbb[_0x8cab('0x46')],{'createdAt':{'$gte':_0x1e929b[_0x8cab('0x3a')],'$lte':_0x1e929b[_0x8cab('0x3b')]}});}if(_0x232889[_0x8cab('0x39')][_0x8cab('0x4b')]){_0x49ecbb[_0x8cab('0x46')]=_[_0x8cab('0x4a')](_0x49ecbb['where'],{'$or':_[_0x8cab('0x4c')](_0x49ecbb[_0x8cab('0x3f')],function(_0x27b671){var _0x11e1f9={};_0x11e1f9[_0x27b671]={'$like':'%'+_0x232889[_0x8cab('0x39')]['filter']+'%'};return _0x11e1f9;})});}_0x49ecbb=_['merge']({},_0x49ecbb,_0x232889[_0x8cab('0x4d')]);var _0x57226c={'where':_0x49ecbb[_0x8cab('0x46')]};return db[_0x8cab('0x38')]['count'](_0x57226c)[_0x8cab('0x1d')](function(_0xb7cac7){_0x404f0b[_0x8cab('0x2a')]=_0xb7cac7;if(_0x232889[_0x8cab('0x39')][_0x8cab('0x4e')]){_0x49ecbb[_0x8cab('0x4f')]=[{'all':!![]}];}return db[_0x8cab('0x38')][_0x8cab('0x50')](_0x49ecbb);})[_0x8cab('0x1d')](function(_0x486376){_0x404f0b[_0x8cab('0x51')]=_0x486376;return _0x404f0b;})[_0x8cab('0x1d')](respondWithFilteredResult(_0x59c353,_0x49ecbb))[_0x8cab('0x27')](handleError(_0x59c353,null));};exports['show']=function(_0x431e52,_0x5c581b){var _0x4e47b5={'raw':!![],'where':{'id':_0x431e52[_0x8cab('0x52')]['id']}},_0x1085fa={};_0x1085fa[_0x8cab('0x3e')]=_[_0x8cab('0x3c')](db['OpenchannelMessage'][_0x8cab('0x53')]);_0x1085fa['query']=_[_0x8cab('0x3c')](_0x431e52[_0x8cab('0x39')]);_0x1085fa[_0x8cab('0x47')]=_['intersection'](_0x1085fa[_0x8cab('0x3e')],_0x1085fa[_0x8cab('0x39')]);_0x4e47b5[_0x8cab('0x3f')]=_[_0x8cab('0x3d')](_0x1085fa[_0x8cab('0x3e')],qs[_0x8cab('0x40')](_0x431e52[_0x8cab('0x39')][_0x8cab('0x40')]));_0x4e47b5['attributes']=_0x4e47b5[_0x8cab('0x3f')]['length']?_0x4e47b5[_0x8cab('0x3f')]:_0x1085fa['model'];if(_0x431e52['query'][_0x8cab('0x4e')]){_0x4e47b5[_0x8cab('0x4f')]=[{'all':!![]}];}_0x4e47b5=_[_0x8cab('0x4a')]({},_0x4e47b5,_0x431e52[_0x8cab('0x4d')]);return db[_0x8cab('0x38')][_0x8cab('0x54')](_0x4e47b5)[_0x8cab('0x1d')](handleEntityNotFound(_0x5c581b,null))[_0x8cab('0x1d')](respondWithResult(_0x5c581b,null))[_0x8cab('0x27')](handleError(_0x5c581b,null));};exports[_0x8cab('0x55')]=function(_0x3c6d91,_0x417667){return db[_0x8cab('0x38')][_0x8cab('0x55')](_0x3c6d91['body'],{})[_0x8cab('0x1d')](respondWithResult(_0x417667,0xc9))[_0x8cab('0x27')](handleError(_0x417667,null));};exports[_0x8cab('0x32')]=function(_0xa12d1c,_0x424ca5){if(_0xa12d1c[_0x8cab('0x56')]['id']){delete _0xa12d1c[_0x8cab('0x56')]['id'];}return db[_0x8cab('0x38')][_0x8cab('0x54')]({'where':{'id':_0xa12d1c[_0x8cab('0x52')]['id']}})[_0x8cab('0x1d')](handleEntityNotFound(_0x424ca5,null))['then'](saveUpdates(_0xa12d1c[_0x8cab('0x56')],null))[_0x8cab('0x1d')](respondWithResult(_0x424ca5,null))[_0x8cab('0x27')](handleError(_0x424ca5,null));};exports[_0x8cab('0x33')]=function(_0x37f0f6,_0x1f9c8f){return db[_0x8cab('0x38')][_0x8cab('0x54')]({'where':{'id':_0x37f0f6[_0x8cab('0x52')]['id']}})[_0x8cab('0x1d')](handleEntityNotFound(_0x1f9c8f,null))[_0x8cab('0x1d')](removeEntity(_0x1f9c8f,null))['catch'](handleError(_0x1f9c8f,null));};exports[_0x8cab('0x57')]=function(_0x1f6248,_0x35a2be){return db[_0x8cab('0x38')]['describe']()[_0x8cab('0x1d')](respondWithResult(_0x35a2be,null))['catch'](handleError(_0x35a2be,null));};var interaction_log=require(_0x8cab('0x58'))(_0x8cab('0x59'));exports[_0x8cab('0x5a')]=function(_0x3313b9,_0x279083,_0x547a2e){var _0x261c72={'channel':_0x8cab('0x5b')};if(_0x3313b9[_0x8cab('0x56')]['id']){delete _0x3313b9['body']['id'];}_0x3313b9[_0x8cab('0x56')]['read']=!![];_0x3313b9['body']['readAt']=moment()[_0x8cab('0x5c')](_0x8cab('0x5d'));_0x3313b9[_0x8cab('0x56')][_0x8cab('0x5e')]=_0x3313b9[_0x8cab('0x56')][_0x8cab('0x5e')]||_0x3313b9['user']['id'];return db[_0x8cab('0x38')][_0x8cab('0x54')]({'where':{'id':_0x3313b9[_0x8cab('0x52')]['id'],'UserId':null},'include':[{'model':db[_0x8cab('0x5f')],'as':_0x8cab('0x60')}]})['then'](handleEntityNotFound(_0x279083,null))['then'](saveUpdates(_0x3313b9[_0x8cab('0x56')],null))[_0x8cab('0x1d')](function(_0x308023){if(_0x308023){_0x261c72[_0x8cab('0x26')]=_0x308023['get']({'plain':!![]});return db[_0x8cab('0x61')][_0x8cab('0x54')]({'where':{'id':_0x308023[_0x8cab('0x62')]}});}return null;})[_0x8cab('0x1d')](handleEntityNotFound(_0x279083,null))[_0x8cab('0x1d')](function(_0x42cf56){if(_0x42cf56){return _0x42cf56['update']({'UserId':_0x3313b9[_0x8cab('0x56')][_0x8cab('0x5e')],'read1stAt':_[_0x8cab('0x63')](_0x42cf56[_0x8cab('0x64')])?moment()[_0x8cab('0x5c')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x8cab('0x1d')](function(_0x324fe6){if(_0x324fe6){_0x261c72['interaction']=_0x324fe6[_0x8cab('0x65')]({'plain':!![]});interaction_log['info'](_0x8cab('0x66'),_0x3313b9[_0x8cab('0x67')]['id'],_0x3313b9[_0x8cab('0x67')]['name'],_0x3313b9['user'][_0x8cab('0x68')],_0x261c72['interaction']['id'],_0x3313b9[_0x8cab('0x56')]?JSON[_0x8cab('0x23')](_0x3313b9[_0x8cab('0x56')]):_0x8cab('0x69'));return respondWithRpcPromise('AcceptMessage',_0x8cab('0x6a'),_0x261c72);}return null;})[_0x8cab('0x1d')](function(_0x3e49fb){if(_0x3e49fb){if(_0x3313b9[_0x8cab('0x56')][_0x8cab('0x6b')]){_0x261c72[_0x8cab('0x26')][_0x8cab('0x6c')]=util['format'](_0x8cab('0x6d'),_0x3313b9[_0x8cab('0x67')][_0x8cab('0x36')]);_0x261c72[_0x8cab('0x26')]['channel']=_0x261c72['channel'];_0x261c72[_0x8cab('0x26')][_0x8cab('0x6e')]=_0x8cab('0x5a');return respondWithRpcPromise(_0x8cab('0x6f'),_0x8cab('0x6f'),{'event':'acceptmessage','message':_0x261c72[_0x8cab('0x26')]},client9002)[_0x8cab('0x1d')](function(){return _0x261c72;});}return _0x261c72;}return null;})[_0x8cab('0x1d')](respondWithResult(_0x279083,null))[_0x8cab('0x27')](handleError(_0x279083,null));};var interaction_log=require(_0x8cab('0x58'))(_0x8cab('0x59'));exports[_0x8cab('0x30')]=function(_0x4aaa96,_0x56fcb2,_0x4858b6){var _0x15e6b0={'agent':{},'channel':_0x8cab('0x5b')};if(_0x4aaa96[_0x8cab('0x56')]['id']){delete _0x4aaa96['body']['id'];}_0x4aaa96[_0x8cab('0x56')][_0x8cab('0x5e')]=_0x4aaa96['body'][_0x8cab('0x5e')]||_0x4aaa96[_0x8cab('0x67')]['id'];_0x15e6b0[_0x8cab('0x70')]['id']=_0x4aaa96[_0x8cab('0x56')][_0x8cab('0x5e')];return db[_0x8cab('0x38')]['find']({'where':{'id':_0x4aaa96[_0x8cab('0x52')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x56fcb2,null))['then'](function(_0x35180c){if(_0x35180c){_0x15e6b0[_0x8cab('0x26')]=_0x35180c[_0x8cab('0x65')]({'plain':!![]});return db[_0x8cab('0x61')]['find']({'where':{'id':_0x35180c[_0x8cab('0x62')]}});}return null;})['then'](handleEntityNotFound(_0x56fcb2,null))[_0x8cab('0x1d')](function(_0x2aa087){if(_0x2aa087){_0x15e6b0[_0x8cab('0x71')]=_0x2aa087[_0x8cab('0x65')]({'plain':!![]});interaction_log[_0x8cab('0x1e')](_0x8cab('0x72'),_0x4aaa96[_0x8cab('0x67')]['id'],_0x4aaa96[_0x8cab('0x67')][_0x8cab('0x36')],_0x4aaa96[_0x8cab('0x67')]['role'],_0x15e6b0['interaction']['id'],_0x4aaa96[_0x8cab('0x56')]?JSON[_0x8cab('0x23')](_0x4aaa96['body']):_0x8cab('0x69'));return respondWithRpcPromise('RejectMessage',_0x8cab('0x73'),_0x15e6b0);}return null;})[_0x8cab('0x1d')](function(_0x46c708){if(_0x46c708){_0x46c708[_0x8cab('0x26')][_0x8cab('0x6c')]=util[_0x8cab('0x5c')]('SIP/%s',_0x4aaa96['user'][_0x8cab('0x36')]);_0x46c708[_0x8cab('0x26')][_0x8cab('0x74')]=_0x15e6b0[_0x8cab('0x74')];_0x46c708[_0x8cab('0x26')]['event']=_0x8cab('0x30');respondWithRpcPromise('EventManager','EventManager',{'event':_0x8cab('0x75'),'message':_0x46c708[_0x8cab('0x26')]},client9002);return _0x15e6b0;}return null;})[_0x8cab('0x1d')](respondWithResult(_0x56fcb2,null))[_0x8cab('0x27')](handleError(_0x56fcb2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x51a1=['../../mysqldb','setMaxListeners','save','update','remove','emit','exports','events'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x51a1,0x1b7));var _0x151a=function(_0x73e5aa,_0x21f27b){_0x73e5aa=_0x73e5aa-0x0;var _0xfb9ca5=_0x51a1[_0x73e5aa];return _0xfb9ca5;};'use strict';var EventEmitter=require(_0x151a('0x0'));var OpenchannelMessage=require(_0x151a('0x1'))['db']['OpenchannelMessage'];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x151a('0x2')](0x0);var events={'afterCreate':_0x151a('0x3'),'afterUpdate':_0x151a('0x4'),'afterDestroy':_0x151a('0x5')};function emitEvent(_0x49dc38){return function(_0x348832,_0x291fc1,_0x2479a2){OpenchannelMessageEvents['emit'](_0x49dc38+':'+_0x348832['id'],_0x348832);OpenchannelMessageEvents[_0x151a('0x6')](_0x49dc38,_0x348832);_0x2479a2(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelMessage['hook'](e,emitEvent(event));}}module[_0x151a('0x7')]=OpenchannelMessageEvents;
\ No newline at end of file
+var _0x1db3=['remove','emit','hasOwnProperty','hook','exports','../../mysqldb','OpenchannelMessage','setMaxListeners','save','update'];(function(_0x3d0c50,_0x51a629){var _0x5d3a08=function(_0xb90fc1){while(--_0xb90fc1){_0x3d0c50['push'](_0x3d0c50['shift']());}};_0x5d3a08(++_0x51a629);}(_0x1db3,0x1e5));var _0x31db=function(_0x390382,_0x4117da){_0x390382=_0x390382-0x0;var _0x5064fe=_0x1db3[_0x390382];return _0x5064fe;};'use strict';var EventEmitter=require('events');var OpenchannelMessage=require(_0x31db('0x0'))['db'][_0x31db('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x31db('0x2')](0x0);var events={'afterCreate':_0x31db('0x3'),'afterUpdate':_0x31db('0x4'),'afterDestroy':_0x31db('0x5')};function emitEvent(_0x1888ef){return function(_0x7041d7,_0x291c40,_0x446ef8){OpenchannelMessageEvents[_0x31db('0x6')](_0x1888ef+':'+_0x7041d7['id'],_0x7041d7);OpenchannelMessageEvents[_0x31db('0x6')](_0x1888ef,_0x7041d7);_0x446ef8(null);};}for(var e in events){if(events[_0x31db('0x7')](e)){var event=events[e];OpenchannelMessage[_0x31db('0x8')](e,emitEvent(event));}}module[_0x31db('0x9')]=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba6c=['exports','define','OpenchannelMessage','openchannel_messages','models','get','direction','toLowerCase','out','secret','UserId','findOne','OpenchannelInteractionId','createdAt','catch','error','describe','then','OpenchannelAccount','find','OpenchannelAccountId','OpenchannelInteraction','Interactions','CmContact','Contact','keys','afterCreate','Forwarding\x20message\x20%d\x20to\x20%s','replyUri','length','Interaction','omit','POST','method','info','OpenchannelMessage,\x20%s,\x20%s','Message\x20%d\x20forwarded\x20to\x20%s','update','finally','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','./openchannelMessage.attributes'];(function(_0x392e41,_0x4283cf){var _0x529c88=function(_0x4fbd55){while(--_0x4fbd55){_0x392e41['push'](_0x392e41['shift']());}};_0x529c88(++_0x4283cf);}(_0xba6c,0x113));var _0xcba6=function(_0x5e8d3e,_0x18ed2e){_0x5e8d3e=_0x5e8d3e-0x0;var _0x1348c0=_0xba6c[_0x5e8d3e];return _0x1348c0;};'use strict';var _=require(_0xcba6('0x0'));var util=require('util');var logger=require(_0xcba6('0x1'))(_0xcba6('0x2'));var moment=require(_0xcba6('0x3'));var BPromise=require(_0xcba6('0x4'));var rp=require(_0xcba6('0x5'));var attributes=require(_0xcba6('0x6'));module[_0xcba6('0x7')]=function(_0x5c911d,_0x57b9b2){return _0x5c911d[_0xcba6('0x8')](_0xcba6('0x9'),attributes,{'tableName':_0xcba6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x137300,_0x3302a4,_0x95c2f1){var _0x308366=_0x5c911d[_0xcba6('0xb')];var _0x3c2858=_0x137300[_0xcba6('0xc')]({'plain':!![]});if(_0x3c2858[_0xcba6('0xd')]['toLowerCase']()==='in'||_0x3c2858[_0xcba6('0xd')][_0xcba6('0xe')]()===_0xcba6('0xf')&&!_0x3c2858[_0xcba6('0x10')]&&!_['isNil'](_0x3c2858[_0xcba6('0x11')])){_0x308366['OpenchannelInteraction'][_0xcba6('0x12')]({'where':{'id':_0x3c2858[_0xcba6('0x13')]}})['then'](function(_0x12c6ae){if(_0x12c6ae){_0x12c6ae['update']({'lastMsgAt':_0x3c2858[_0xcba6('0x14')],'lastMsgDirection':_0x3c2858['direction']['toLowerCase'](),'lastMsgBody':_0x3c2858['body']});}})[_0xcba6('0x15')](function(_0x247c46){console[_0xcba6('0x16')](_0x247c46);});}if(_0x3c2858[_0xcba6('0xd')]===_0xcba6('0xf')&&!_0x3c2858['secret']){var _0x46ed16;_0x308366['CmContact'][_0xcba6('0x17')]()[_0xcba6('0x18')](function(_0x564ca6){return _0x308366[_0xcba6('0x19')][_0xcba6('0x1a')]({'where':{'id':_0x3c2858[_0xcba6('0x1b')]},'include':[{'model':_0x308366[_0xcba6('0x1c')],'as':_0xcba6('0x1d'),'where':{'id':_0x3c2858[_0xcba6('0x13')]},'limit':0x1,'include':[{'model':_0x308366[_0xcba6('0x1e')],'as':_0xcba6('0x1f'),'attributes':_[_0xcba6('0x20')](_0x564ca6)}]}]});})['then'](function(_0x5391b8){_0x46ed16=_0x5391b8['get']({'plain':!![]});if(_0x46ed16&&_0x46ed16['replyUri']){logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0xcba6('0x21'),util['format'](_0xcba6('0x22'),_0x3c2858['id'],_0x46ed16[_0xcba6('0x23')]));if(_0x46ed16[_0xcba6('0x1d')]&&_0x46ed16['Interactions'][_0xcba6('0x24')]){_0x3c2858[_0xcba6('0x25')]=_[_0xcba6('0x26')](_0x46ed16['Interactions'][0x0],_0xcba6('0x1f'));_0x3c2858[_0xcba6('0x1f')]=_0x46ed16[_0xcba6('0x1d')][0x0]['Contact'];}var _0x3302a4={'method':_0xcba6('0x27'),'uri':encodeURI(_0x46ed16[_0xcba6('0x23')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x3302a4[_0xcba6('0x28')]){case'GET':_0x3302a4['qs']=_0x3c2858;break;case'POST':_0x3302a4['body']=_0x3c2858;break;}return rp(_0x3302a4)[_0xcba6('0x18')](function(_0x47a4a9){logger[_0xcba6('0x29')](_0xcba6('0x2a'),'afterCreate',util['format'](_0xcba6('0x2b'),_0x3c2858['id'],_0x46ed16['replyUri']));return _0x137300[_0xcba6('0x2c')]({'read':!![]});})[_0xcba6('0x15')](function(_0x153a1f){logger[_0xcba6('0x16')](_0xcba6('0x2a'),_0xcba6('0x21'),util['inspect'](_0x153a1f,{'showHidden':![],'depth':null}));_0x95c2f1();});}else{_0x95c2f1();}})[_0xcba6('0x2d')](function(){_0x95c2f1();});}else{_0x95c2f1();}}},'charset':_0xcba6('0x2e'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xdace=['then','OpenchannelAccount','find','OpenchannelAccountId','Contact','keys','replyUri','info','OpenchannelMessage,\x20%s,\x20%s','afterCreate','format','Forwarding\x20message\x20%d\x20to\x20%s','Interactions','length','omit','POST','GET','Message\x20%d\x20forwarded\x20to\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','request-promise','./openchannelMessage.attributes','exports','define','OpenchannelMessage','openchannel_messages','get','direction','toLowerCase','out','UserId','OpenchannelInteraction','OpenchannelInteractionId','update','createdAt','body','catch','secret','CmContact'];(function(_0x342959,_0x2344d0){var _0x67dbf5=function(_0x2e67b6){while(--_0x2e67b6){_0x342959['push'](_0x342959['shift']());}};_0x67dbf5(++_0x2344d0);}(_0xdace,0xc5));var _0xedac=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0xdace[_0x278e3c];return _0x3e2d9b;};'use strict';var _=require(_0xedac('0x0'));var util=require('util');var logger=require(_0xedac('0x1'))(_0xedac('0x2'));var moment=require(_0xedac('0x3'));var BPromise=require('bluebird');var rp=require(_0xedac('0x4'));var attributes=require(_0xedac('0x5'));module[_0xedac('0x6')]=function(_0xefb142,_0x5a97c0){return _0xefb142[_0xedac('0x7')](_0xedac('0x8'),attributes,{'tableName':_0xedac('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5ecbd3,_0x4081c6,_0x21440e){var _0x162eea=_0xefb142['models'];var _0x27243f=_0x5ecbd3[_0xedac('0xa')]({'plain':!![]});if(_0x27243f[_0xedac('0xb')]['toLowerCase']()==='in'||_0x27243f['direction'][_0xedac('0xc')]()===_0xedac('0xd')&&!_0x27243f['secret']&&!_['isNil'](_0x27243f[_0xedac('0xe')])){_0x162eea[_0xedac('0xf')]['findOne']({'where':{'id':_0x27243f[_0xedac('0x10')]}})['then'](function(_0x21c6ae){if(_0x21c6ae){_0x21c6ae[_0xedac('0x11')]({'lastMsgAt':_0x27243f[_0xedac('0x12')],'lastMsgDirection':_0x27243f[_0xedac('0xb')][_0xedac('0xc')](),'lastMsgBody':_0x27243f[_0xedac('0x13')]});}})[_0xedac('0x14')](function(_0x11f0b0){console['error'](_0x11f0b0);});}if(_0x27243f[_0xedac('0xb')]===_0xedac('0xd')&&!_0x27243f[_0xedac('0x15')]){var _0x2676c3;_0x162eea[_0xedac('0x16')]['describe']()[_0xedac('0x17')](function(_0x594b11){return _0x162eea[_0xedac('0x18')][_0xedac('0x19')]({'where':{'id':_0x27243f[_0xedac('0x1a')]},'include':[{'model':_0x162eea[_0xedac('0xf')],'as':'Interactions','where':{'id':_0x27243f['OpenchannelInteractionId']},'limit':0x1,'include':[{'model':_0x162eea[_0xedac('0x16')],'as':_0xedac('0x1b'),'attributes':_[_0xedac('0x1c')](_0x594b11)}]}]});})[_0xedac('0x17')](function(_0x5a5438){_0x2676c3=_0x5a5438['get']({'plain':!![]});if(_0x2676c3&&_0x2676c3[_0xedac('0x1d')]){logger[_0xedac('0x1e')](_0xedac('0x1f'),_0xedac('0x20'),util[_0xedac('0x21')](_0xedac('0x22'),_0x27243f['id'],_0x2676c3[_0xedac('0x1d')]));if(_0x2676c3[_0xedac('0x23')]&&_0x2676c3['Interactions'][_0xedac('0x24')]){_0x27243f['Interaction']=_[_0xedac('0x25')](_0x2676c3[_0xedac('0x23')][0x0],'Contact');_0x27243f[_0xedac('0x1b')]=_0x2676c3[_0xedac('0x23')][0x0][_0xedac('0x1b')];}var _0x4081c6={'method':_0xedac('0x26'),'uri':encodeURI(_0x2676c3[_0xedac('0x1d')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x4081c6['method']){case _0xedac('0x27'):_0x4081c6['qs']=_0x27243f;break;case _0xedac('0x26'):_0x4081c6[_0xedac('0x13')]=_0x27243f;break;}return rp(_0x4081c6)[_0xedac('0x17')](function(_0x1ff33e){logger[_0xedac('0x1e')](_0xedac('0x1f'),_0xedac('0x20'),util[_0xedac('0x21')](_0xedac('0x28'),_0x27243f['id'],_0x2676c3['replyUri']));return _0x5ecbd3[_0xedac('0x11')]({'read':!![]});})[_0xedac('0x14')](function(_0x19aed3){logger['error'](_0xedac('0x1f'),'afterCreate',util['inspect'](_0x19aed3,{'showHidden':![],'depth':null}));_0x21440e();});}else{_0x21440e();}})[_0xedac('0x29')](function(){_0x21440e();});}else{_0x21440e();}}},'charset':_0xedac('0x2a'),'collate':_0xedac('0x2b')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8ee=['raw','debug','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','localhost','socket.io-emitter','redis','register','request','then','info','request\x20sent','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','OpenchannelMessage,\x20%s,\x20%s','message','result','catch','CreateOpenchannelMessage','OpenchannelMessage','create','body','options'];(function(_0x430f2c,_0x6e15fe){var _0x168914=function(_0x4585f6){while(--_0x4585f6){_0x430f2c['push'](_0x430f2c['shift']());}};_0x168914(++_0x6e15fe);}(_0xb8ee,0x14c));var _0xeb8e=function(_0x49c057,_0xc808ed){_0x49c057=_0x49c057-0x0;var _0xd8f0e6=_0xb8ee[_0x49c057];return _0xd8f0e6;};'use strict';var _=require(_0xeb8e('0x0'));var util=require(_0xeb8e('0x1'));var moment=require(_0xeb8e('0x2'));var BPromise=require(_0xeb8e('0x3'));var rs=require(_0xeb8e('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xeb8e('0x5'));var logger=require(_0xeb8e('0x6'))(_0xeb8e('0x7'));var config=require(_0xeb8e('0x8'));var jayson=require(_0xeb8e('0x9'));var client=jayson['client'][_0xeb8e('0xa')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0xeb8e('0xb'),'port':0x18eb});var socket=require(_0xeb8e('0xc'))(config[_0xeb8e('0xd')]);require('./openchannelMessage.socket')[_0xeb8e('0xe')](socket);function respondWithRpcPromise(_0x5c6bfc,_0x569cca,_0x2e98d1){return new BPromise(function(_0x523c49,_0xf0d36){return client[_0xeb8e('0xf')](_0x5c6bfc,_0x2e98d1)[_0xeb8e('0x10')](function(_0xcaac27){logger[_0xeb8e('0x11')]('OpenchannelMessage,\x20%s,\x20%s',_0x569cca,_0xeb8e('0x12'));logger['debug'](_0xeb8e('0x13'),_0x569cca,'request\x20sent',JSON[_0xeb8e('0x14')](_0xcaac27));if(_0xcaac27[_0xeb8e('0x15')]){if(_0xcaac27[_0xeb8e('0x15')]['code']===0x1f4){logger[_0xeb8e('0x15')](_0xeb8e('0x16'),_0x569cca,_0xcaac27[_0xeb8e('0x15')][_0xeb8e('0x17')]);return _0xf0d36(_0xcaac27[_0xeb8e('0x15')][_0xeb8e('0x17')]);}logger[_0xeb8e('0x15')]('OpenchannelMessage,\x20%s,\x20%s',_0x569cca,_0xcaac27['error'][_0xeb8e('0x17')]);return _0x523c49(_0xcaac27[_0xeb8e('0x15')]['message']);}else{logger[_0xeb8e('0x11')](_0xeb8e('0x16'),_0x569cca,_0xeb8e('0x12'));_0x523c49(_0xcaac27[_0xeb8e('0x18')][_0xeb8e('0x17')]);}})[_0xeb8e('0x19')](function(_0x429fb4){logger[_0xeb8e('0x15')](_0xeb8e('0x16'),_0x569cca,_0x429fb4);_0xf0d36(_0x429fb4);});});}exports[_0xeb8e('0x1a')]=function(_0x19a8cf){var _0x203542=this;return new Promise(function(_0x33036b,_0x4f7afb){return db[_0xeb8e('0x1b')][_0xeb8e('0x1c')](_0x19a8cf[_0xeb8e('0x1d')],{'raw':_0x19a8cf[_0xeb8e('0x1e')]?_0x19a8cf[_0xeb8e('0x1e')][_0xeb8e('0x1f')]===undefined?!![]:![]:!![]})[_0xeb8e('0x10')](function(_0x5f35e0){logger[_0xeb8e('0x11')]('CreateOpenchannelMessage',_0x19a8cf);logger[_0xeb8e('0x20')]('CreateOpenchannelMessage',_0x19a8cf,JSON['stringify'](_0x5f35e0));_0x33036b(_0x5f35e0);})['catch'](function(_0x13f361){logger[_0xeb8e('0x15')](_0xeb8e('0x1a'),_0x13f361['message'],_0x19a8cf);_0x4f7afb(_0x203542['error'](0x1f4,_0x13f361[_0xeb8e('0x17')]));});});};
\ No newline at end of file
+var _0x0eda=['rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','request','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateOpenchannelMessage','OpenchannelMessage','create','body','options','raw','info','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x29d915,_0x54a040){var _0x160f86=function(_0x237dfa){while(--_0x237dfa){_0x29d915['push'](_0x29d915['shift']());}};_0x160f86(++_0x54a040);}(_0x0eda,0x85));var _0xa0ed=function(_0x2b8761,_0x2ab7a0){_0x2b8761=_0x2b8761-0x0;var _0x16e805=_0x0eda[_0x2b8761];return _0x16e805;};'use strict';var _=require(_0xa0ed('0x0'));var util=require(_0xa0ed('0x1'));var moment=require(_0xa0ed('0x2'));var BPromise=require(_0xa0ed('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa0ed('0x4'))['db'];var utils=require(_0xa0ed('0x5'));var logger=require(_0xa0ed('0x6'))(_0xa0ed('0x7'));var config=require(_0xa0ed('0x8'));var jayson=require(_0xa0ed('0x9'));var client=jayson[_0xa0ed('0xa')]['http']({'port':0x232a});config[_0xa0ed('0xb')]=_[_0xa0ed('0xc')](config[_0xa0ed('0xb')],{'host':_0xa0ed('0xd'),'port':0x18eb});var socket=require(_0xa0ed('0xe'))(new Redis(config['redis']));require(_0xa0ed('0xf'))[_0xa0ed('0x10')](socket);function respondWithRpcPromise(_0x144bdb,_0x47689c,_0xf7e1ee){return new BPromise(function(_0xd0dc1a,_0x2a41f4){return client[_0xa0ed('0x11')](_0x144bdb,_0xf7e1ee)['then'](function(_0x188bea){logger['info'](_0xa0ed('0x12'),_0x47689c,_0xa0ed('0x13'));logger[_0xa0ed('0x14')](_0xa0ed('0x15'),_0x47689c,_0xa0ed('0x13'),JSON[_0xa0ed('0x16')](_0x188bea));if(_0x188bea[_0xa0ed('0x17')]){if(_0x188bea[_0xa0ed('0x17')][_0xa0ed('0x18')]===0x1f4){logger[_0xa0ed('0x17')](_0xa0ed('0x12'),_0x47689c,_0x188bea[_0xa0ed('0x17')][_0xa0ed('0x19')]);return _0x2a41f4(_0x188bea[_0xa0ed('0x17')][_0xa0ed('0x19')]);}logger[_0xa0ed('0x17')](_0xa0ed('0x12'),_0x47689c,_0x188bea[_0xa0ed('0x17')]['message']);return _0xd0dc1a(_0x188bea[_0xa0ed('0x17')][_0xa0ed('0x19')]);}else{logger['info'](_0xa0ed('0x12'),_0x47689c,_0xa0ed('0x13'));_0xd0dc1a(_0x188bea[_0xa0ed('0x1a')][_0xa0ed('0x19')]);}})[_0xa0ed('0x1b')](function(_0x2fb970){logger[_0xa0ed('0x17')](_0xa0ed('0x12'),_0x47689c,_0x2fb970);_0x2a41f4(_0x2fb970);});});}exports[_0xa0ed('0x1c')]=function(_0x2e9826){var _0x1d7995=this;return new Promise(function(_0x32c028,_0x107b34){return db[_0xa0ed('0x1d')][_0xa0ed('0x1e')](_0x2e9826[_0xa0ed('0x1f')],{'raw':_0x2e9826[_0xa0ed('0x20')]?_0x2e9826[_0xa0ed('0x20')][_0xa0ed('0x21')]===undefined?!![]:![]:!![]})['then'](function(_0x424956){logger[_0xa0ed('0x22')](_0xa0ed('0x1c'),_0x2e9826);logger[_0xa0ed('0x14')](_0xa0ed('0x1c'),_0x2e9826,JSON[_0xa0ed('0x16')](_0x424956));_0x32c028(_0x424956);})[_0xa0ed('0x1b')](function(_0x2b4b91){logger[_0xa0ed('0x17')]('CreateOpenchannelMessage',_0x2b4b91[_0xa0ed('0x19')],_0x2e9826);_0x107b34(_0x1d7995[_0xa0ed('0x17')](0x1f4,_0x2b4b91[_0xa0ed('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b84=['./openchannelMessage.events','save','emit','length'];(function(_0x410602,_0xf13564){var _0x3089b4=function(_0x29f934){while(--_0x29f934){_0x410602['push'](_0x410602['shift']());}};_0x3089b4(++_0xf13564);}(_0x4b84,0x1cc));var _0x44b8=function(_0xe1a3a5,_0xd3e341){_0xe1a3a5=_0xe1a3a5-0x0;var _0x362646=_0x4b84[_0xe1a3a5];return _0x362646;};'use strict';var OpenchannelMessageEvents=require(_0x44b8('0x0'));var events=[_0x44b8('0x1'),'remove','update'];function createListener(_0x765943,_0x519db3){return function(_0x4b8ad8){_0x519db3[_0x44b8('0x2')](_0x765943,_0x4b8ad8);};}function removeListener(_0x31282a,_0x39ad16){return function(){OpenchannelMessageEvents['removeListener'](_0x31282a,_0x39ad16);};}exports['register']=function(_0x55f25d){for(var _0x996a8b=0x0,_0x54274b=events[_0x44b8('0x3')];_0x996a8b<_0x54274b;_0x996a8b++){var _0x5947f7=events[_0x996a8b];var _0x3e87c5=createListener('openchannelMessage:'+_0x5947f7,_0x55f25d);OpenchannelMessageEvents['on'](_0x5947f7,_0x3e87c5);}};
\ No newline at end of file
+var _0xf873=['register','length','openchannelMessage:','save','remove','update','emit'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0xf873,0xb2));var _0x3f87=function(_0x96fef0,_0x4d89f5){_0x96fef0=_0x96fef0-0x0;var _0xfed499=_0xf873[_0x96fef0];return _0xfed499;};'use strict';var OpenchannelMessageEvents=require('./openchannelMessage.events');var events=[_0x3f87('0x0'),_0x3f87('0x1'),_0x3f87('0x2')];function createListener(_0x3ef688,_0x1c56a3){return function(_0xd4592c){_0x1c56a3[_0x3f87('0x3')](_0x3ef688,_0xd4592c);};}function removeListener(_0x1d68dd,_0x3c80d6){return function(){OpenchannelMessageEvents['removeListener'](_0x1d68dd,_0x3c80d6);};}exports[_0x3f87('0x4')]=function(_0x43c8e4){for(var _0x27c03e=0x0,_0x5a5e37=events[_0x3f87('0x5')];_0x27c03e<_0x5a5e37;_0x27c03e++){var _0x2c7ccc=events[_0x27c03e];var _0x3b8e92=createListener(_0x3f87('0x6')+_0x2c7ccc,_0x43c8e4);OpenchannelMessageEvents['on'](_0x2c7ccc,_0x3b8e92);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3258=['express','Router','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','isAuthenticated','index','/describe','describe','get','show','/:id/members','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update','/:id','destroy','delete','exports','multer','util','path','connect-timeout'];(function(_0x1809c5,_0x46cabc){var _0x5254a4=function(_0xd1d319){while(--_0xd1d319){_0x1809c5['push'](_0x1809c5['shift']());}};_0x5254a4(++_0x46cabc);}(_0x3258,0xb0));var _0x8325=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3258[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x8325('0x0'));var util=require(_0x8325('0x1'));var path=require(_0x8325('0x2'));var timeout=require(_0x8325('0x3'));var express=require(_0x8325('0x4'));var router=express[_0x8325('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0x8325('0x6'));var config=require(_0x8325('0x7'));var controller=require(_0x8325('0x8'));router['get']('/',auth[_0x8325('0x9')](),controller[_0x8325('0xa')]);router['get'](_0x8325('0xb'),auth[_0x8325('0x9')](),controller[_0x8325('0xc')]);router[_0x8325('0xd')]('/:id',auth[_0x8325('0x9')](),controller[_0x8325('0xe')]);router['get'](_0x8325('0xf'),auth[_0x8325('0x9')](),controller['getMembers']);router[_0x8325('0xd')](_0x8325('0x10'),auth[_0x8325('0x9')](),controller[_0x8325('0x11')]);router[_0x8325('0xd')](_0x8325('0x12'),auth['isAuthenticated'](),controller[_0x8325('0x13')]);router[_0x8325('0x14')]('/',auth['isAuthenticated'](),controller[_0x8325('0x15')]);router[_0x8325('0x14')]('/:id/teams',auth[_0x8325('0x9')](),controller[_0x8325('0x16')]);router[_0x8325('0x14')](_0x8325('0x12'),auth[_0x8325('0x9')](),controller[_0x8325('0x17')]);router[_0x8325('0x18')]('/:id',auth['isAuthenticated'](),controller[_0x8325('0x19')]);router['delete'](_0x8325('0x1a'),auth[_0x8325('0x9')](),controller[_0x8325('0x1b')]);router[_0x8325('0x1c')]('/:id/teams',auth['isAuthenticated'](),controller['removeTeams']);router[_0x8325('0x1c')]('/:id/users',auth[_0x8325('0x9')](),controller['removeAgents']);module[_0x8325('0x1d')]=router;
\ No newline at end of file
+var _0x740f=['delete','removeTeams','removeAgents','exports','multer','util','path','express','../../config/environment','./openchannelQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','show','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x740f,0x170));var _0xf740=function(_0x516961,_0x35b1fc){_0x516961=_0x516961-0x0;var _0x4a70ce=_0x740f[_0x516961];return _0x4a70ce;};'use strict';var multer=require(_0xf740('0x0'));var util=require(_0xf740('0x1'));var path=require(_0xf740('0x2'));var timeout=require('connect-timeout');var express=require(_0xf740('0x3'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xf740('0x4'));var controller=require(_0xf740('0x5'));router[_0xf740('0x6')]('/',auth[_0xf740('0x7')](),controller[_0xf740('0x8')]);router[_0xf740('0x6')](_0xf740('0x9'),auth[_0xf740('0x7')](),controller[_0xf740('0xa')]);router[_0xf740('0x6')](_0xf740('0xb'),auth[_0xf740('0x7')](),controller[_0xf740('0xc')]);router[_0xf740('0x6')]('/:id/members',auth[_0xf740('0x7')](),controller[_0xf740('0xd')]);router['get'](_0xf740('0xe'),auth['isAuthenticated'](),controller[_0xf740('0xf')]);router[_0xf740('0x6')](_0xf740('0x10'),auth['isAuthenticated'](),controller[_0xf740('0x11')]);router[_0xf740('0x12')]('/',auth[_0xf740('0x7')](),controller[_0xf740('0x13')]);router[_0xf740('0x12')](_0xf740('0xe'),auth[_0xf740('0x7')](),controller[_0xf740('0x14')]);router['post'](_0xf740('0x10'),auth[_0xf740('0x7')](),controller[_0xf740('0x15')]);router[_0xf740('0x16')]('/:id',auth[_0xf740('0x7')](),controller[_0xf740('0x17')]);router['delete']('/:id',auth['isAuthenticated'](),controller['destroy']);router[_0xf740('0x18')](_0xf740('0xe'),auth[_0xf740('0x7')](),controller[_0xf740('0x19')]);router[_0xf740('0x18')](_0xf740('0x10'),auth[_0xf740('0x7')](),controller[_0xf740('0x1a')]);module[_0xf740('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1756=['rrmemory','beepall','roundrobin','sequelize','exports','STRING','name','ENUM'];(function(_0x1d328f,_0x3a4700){var _0x482822=function(_0x4d5c4a){while(--_0x4d5c4a){_0x1d328f['push'](_0x1d328f['shift']());}};_0x482822(++_0x3a4700);}(_0x1756,0x93));var _0x6175=function(_0x29cdec,_0x1b9f7c){_0x29cdec=_0x29cdec-0x0;var _0x4f283e=_0x1756[_0x29cdec];return _0x4f283e;};'use strict';var Sequelize=require(_0x6175('0x0'));module[_0x6175('0x1')]={'name':{'type':Sequelize[_0x6175('0x2')],'unique':_0x6175('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6175('0x4')](_0x6175('0x5'),_0x6175('0x6'),_0x6175('0x7'))}};
\ No newline at end of file
+var _0x8b91=['rrmemory','beepall','roundrobin','sequelize','exports','STRING','ENUM'];(function(_0x424a9a,_0x2dd9af){var _0xa7831c=function(_0x512534){while(--_0x512534){_0x424a9a['push'](_0x424a9a['shift']());}};_0xa7831c(++_0x2dd9af);}(_0x8b91,0x1ae));var _0x18b9=function(_0x14c0b7,_0x2b3d0b){_0x14c0b7=_0x14c0b7-0x0;var _0x2885fe=_0x8b91[_0x14c0b7];return _0x2885fe;};'use strict';var Sequelize=require(_0x18b9('0x0'));module[_0x18b9('0x1')]={'name':{'type':Sequelize[_0x18b9('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x18b9('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x18b9('0x3')](_0x18b9('0x4'),_0x18b9('0x5'),_0x18b9('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ed9=['stack','name','send','index','OpenchannelQueue','rawAttributes','model','keys','query','dateEnd','dateStart','intersection','fields','attributes','length','nolimit','limit','order','sort','where','filters','pick','add','day','merge','filter','map','include','findAll','show','options','find','catch','body','params','describe','getMembers','findOne','get','hasOwnProperty','OpenchannelQueueId','UserOpenchannelQueue','User','UserId','openchannelPause','updatedAt','rows','format','%s/%s','SIP','createdAt','getTeams','Team','addTeams','ids','Agents','union','addAgents','penalty','removeTeams','omit','spread','emit','removeAgents','isArray','userOpenchannelQueue:remove','getAgents','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','jsforce','desk.js','papaparse','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelQueue.socket','sendStatus','end','status','json','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','error'];(function(_0x159013,_0x1aeb82){var _0x5be13c=function(_0x28c86b){while(--_0x28c86b){_0x159013['push'](_0x159013['shift']());}};_0x5be13c(++_0x1aeb82);}(_0x7ed9,0x178));var _0x97ed=function(_0x3e10dc,_0x230393){_0x3e10dc=_0x3e10dc-0x0;var _0x20020c=_0x7ed9[_0x3e10dc];return _0x20020c;};'use strict';var pdf=require(_0x97ed('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x97ed('0x1'));var zipdir=require(_0x97ed('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x97ed('0x3'));var moment=require(_0x97ed('0x4'));var BPromise=require(_0x97ed('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x97ed('0x6'));var sox=require(_0x97ed('0x7'));var csv=require(_0x97ed('0x8'));var ejs=require(_0x97ed('0x9'));var fs=require('fs');var _=require(_0x97ed('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x97ed('0xb'));var deskjs=require(_0x97ed('0xc'));var toCsv=require(_0x97ed('0x8'));var querystring=require('querystring');var Papa=require(_0x97ed('0xd'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0x97ed('0xe'));var config=require(_0x97ed('0xf'));var db=require(_0x97ed('0x10'))['db'];config[_0x97ed('0x11')]=_[_0x97ed('0x12')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x97ed('0x13'))(config[_0x97ed('0x11')]);require(_0x97ed('0x14'))['register'](socket);function respondWithStatusCode(_0x19c73c,_0x5d9666){_0x5d9666=_0x5d9666||0xcc;return function(_0x55fa44){if(_0x55fa44){return _0x19c73c[_0x97ed('0x15')](_0x5d9666);}return _0x19c73c['status'](_0x5d9666)[_0x97ed('0x16')]();};}function respondWithResult(_0x4ec8b7,_0x50776b){_0x50776b=_0x50776b||0xc8;return function(_0x4389f2){if(_0x4389f2){return _0x4ec8b7[_0x97ed('0x17')](_0x50776b)[_0x97ed('0x18')](_0x4389f2);}};}function respondWithFilteredResult(_0x36ed32,_0x15c6de){return function(_0x3ec412){if(_0x3ec412){var _0x50352b=_0x3ec412[_0x97ed('0x19')],_0x39aca2=_0x15c6de['offset'],_0x195520=_0x15c6de[_0x97ed('0x1a')]+_0x15c6de['limit'],_0x4a1879;if(_0x195520>=_0x50352b){_0x195520=_0x50352b;_0x4a1879=0xc8;}else{_0x4a1879=0xce;}_0x36ed32['status'](_0x4a1879);return _0x36ed32[_0x97ed('0x1b')](_0x97ed('0x1c'),_0x39aca2+'-'+_0x195520+'/'+_0x50352b)[_0x97ed('0x18')](_0x3ec412);}return null;};}function patchUpdates(_0x41ccd9){return function(_0x370cdf){try{jsonpatch[_0x97ed('0x1d')](_0x370cdf,_0x41ccd9,!![]);}catch(_0x3caf9f){return BPromise[_0x97ed('0x1e')](_0x3caf9f);}return _0x370cdf[_0x97ed('0x1f')]();};}function saveUpdates(_0x38a6c5,_0x2a5b9c){return function(_0xd2c140){if(_0xd2c140){return _0xd2c140[_0x97ed('0x20')](_0x38a6c5)['then'](function(_0x2513e9){return _0x2513e9;});}return null;};}function removeEntity(_0x1f73c1,_0x9268a1){return function(_0xf48cb){if(_0xf48cb){return _0xf48cb[_0x97ed('0x21')]()[_0x97ed('0x22')](function(){_0x1f73c1[_0x97ed('0x17')](0xcc)[_0x97ed('0x16')]();});}};}function handleEntityNotFound(_0x24c5f2,_0x421cbe){return function(_0x5dfff1){if(!_0x5dfff1){_0x24c5f2[_0x97ed('0x15')](0x194);}return _0x5dfff1;};}function handleError(_0x4b6dde,_0x489014){_0x489014=_0x489014||0x1f4;return function(_0x1a1e83){logger[_0x97ed('0x23')](_0x1a1e83[_0x97ed('0x24')]);if(_0x1a1e83['name']){delete _0x1a1e83[_0x97ed('0x25')];}_0x4b6dde[_0x97ed('0x17')](_0x489014)[_0x97ed('0x26')](_0x1a1e83);};}exports[_0x97ed('0x27')]=function(_0x37476e,_0x491238){var _0x34a092={},_0x53f3f2={},_0x42fbb4={'count':0x0,'rows':[]};var _0x434398=db[_0x97ed('0x28')][_0x97ed('0x29')];_0x53f3f2[_0x97ed('0x2a')]=_[_0x97ed('0x2b')](_0x434398);var _0x2d53eb={'dateStart':_0x37476e['query']['dateStart'],'dateEnd':_0x37476e[_0x97ed('0x2c')][_0x97ed('0x2d')]};delete _0x37476e[_0x97ed('0x2c')][_0x97ed('0x2e')];delete _0x37476e['query'][_0x97ed('0x2d')];_0x53f3f2[_0x97ed('0x2c')]=_[_0x97ed('0x2b')](_0x37476e[_0x97ed('0x2c')]);_0x53f3f2['filters']=_[_0x97ed('0x2f')](_0x53f3f2[_0x97ed('0x2a')],_0x53f3f2['query']);_0x34a092['attributes']=_['intersection'](_0x53f3f2[_0x97ed('0x2a')],qs[_0x97ed('0x30')](_0x37476e[_0x97ed('0x2c')][_0x97ed('0x30')]));_0x34a092[_0x97ed('0x31')]=_0x34a092[_0x97ed('0x31')][_0x97ed('0x32')]?_0x34a092[_0x97ed('0x31')]:_0x53f3f2[_0x97ed('0x2a')];if(!_0x37476e[_0x97ed('0x2c')]['hasOwnProperty'](_0x97ed('0x33'))){_0x34a092[_0x97ed('0x34')]=qs[_0x97ed('0x34')](_0x37476e[_0x97ed('0x2c')][_0x97ed('0x34')]);_0x34a092[_0x97ed('0x1a')]=qs['offset'](_0x37476e[_0x97ed('0x2c')]['offset']);}_0x34a092[_0x97ed('0x35')]=qs[_0x97ed('0x36')](_0x37476e['query'][_0x97ed('0x36')]);_0x34a092[_0x97ed('0x37')]=qs[_0x97ed('0x38')](_[_0x97ed('0x39')](_0x37476e[_0x97ed('0x2c')],_0x53f3f2[_0x97ed('0x38')]));if(_0x2d53eb[_0x97ed('0x2e')]){if(_0x2d53eb['dateEnd']){_0x2d53eb['dateEnd']=moment(_0x2d53eb[_0x97ed('0x2d')])[_0x97ed('0x3a')](0x1,_0x97ed('0x3b'));}else{_0x2d53eb[_0x97ed('0x2d')]=moment(_0x2d53eb[_0x97ed('0x2e')])['add'](0x1,_0x97ed('0x3b'));}_[_0x97ed('0x3c')](_0x34a092[_0x97ed('0x37')],{'createdAt':{'$gte':_0x2d53eb['dateStart'],'$lte':_0x2d53eb[_0x97ed('0x2d')]}});}if(_0x37476e[_0x97ed('0x2c')][_0x97ed('0x3d')]){_0x34a092['where']=_['merge'](_0x34a092[_0x97ed('0x37')],{'$or':_[_0x97ed('0x3e')](_0x34a092[_0x97ed('0x31')],function(_0x833483){var _0x5d3693={};_0x5d3693[_0x833483]={'$like':'%'+_0x37476e[_0x97ed('0x2c')][_0x97ed('0x3d')]+'%'};return _0x5d3693;})});}_0x34a092=_['merge']({},_0x34a092,_0x37476e['options']);var _0x42e289={'where':_0x34a092[_0x97ed('0x37')]};return db[_0x97ed('0x28')][_0x97ed('0x19')](_0x42e289)[_0x97ed('0x22')](function(_0x3633b3){_0x42fbb4['count']=_0x3633b3;if(_0x37476e[_0x97ed('0x2c')]['includeAll']){_0x34a092[_0x97ed('0x3f')]=[{'all':!![]}];}return db['OpenchannelQueue'][_0x97ed('0x40')](_0x34a092);})[_0x97ed('0x22')](function(_0x3a8a94){_0x42fbb4['rows']=_0x3a8a94;return _0x42fbb4;})[_0x97ed('0x22')](respondWithFilteredResult(_0x491238,_0x34a092))['catch'](handleError(_0x491238,null));};exports[_0x97ed('0x41')]=function(_0x34a1f4,_0xe8418a){var _0x2e286b={'raw':!![],'where':{'id':_0x34a1f4['params']['id']}},_0x40582c={};_0x40582c[_0x97ed('0x2a')]=_['keys'](db['OpenchannelQueue'][_0x97ed('0x29')]);_0x40582c[_0x97ed('0x2c')]=_[_0x97ed('0x2b')](_0x34a1f4['query']);_0x40582c[_0x97ed('0x38')]=_[_0x97ed('0x2f')](_0x40582c[_0x97ed('0x2a')],_0x40582c[_0x97ed('0x2c')]);_0x2e286b['attributes']=_[_0x97ed('0x2f')](_0x40582c['model'],qs[_0x97ed('0x30')](_0x34a1f4['query']['fields']));_0x2e286b[_0x97ed('0x31')]=_0x2e286b[_0x97ed('0x31')][_0x97ed('0x32')]?_0x2e286b[_0x97ed('0x31')]:_0x40582c[_0x97ed('0x2a')];if(_0x34a1f4['query']['includeAll']){_0x2e286b['include']=[{'all':!![]}];}_0x2e286b=_[_0x97ed('0x3c')]({},_0x2e286b,_0x34a1f4[_0x97ed('0x42')]);return db[_0x97ed('0x28')][_0x97ed('0x43')](_0x2e286b)['then'](handleEntityNotFound(_0xe8418a,null))[_0x97ed('0x22')](respondWithResult(_0xe8418a,null))[_0x97ed('0x44')](handleError(_0xe8418a,null));};exports['create']=function(_0x53c2fc,_0x1b7c48){return db[_0x97ed('0x28')]['create'](_0x53c2fc[_0x97ed('0x45')],{})['then'](respondWithResult(_0x1b7c48,0xc9))['catch'](handleError(_0x1b7c48,null));};exports[_0x97ed('0x20')]=function(_0x40ee63,_0x5769c4){if(_0x40ee63[_0x97ed('0x45')]['id']){delete _0x40ee63['body']['id'];}return db[_0x97ed('0x28')]['find']({'where':{'id':_0x40ee63[_0x97ed('0x46')]['id']}})[_0x97ed('0x22')](handleEntityNotFound(_0x5769c4,null))[_0x97ed('0x22')](saveUpdates(_0x40ee63[_0x97ed('0x45')],null))[_0x97ed('0x22')](respondWithResult(_0x5769c4,null))[_0x97ed('0x44')](handleError(_0x5769c4,null));};exports[_0x97ed('0x21')]=function(_0x1e9148,_0x21a85b){return db[_0x97ed('0x28')][_0x97ed('0x43')]({'where':{'id':_0x1e9148[_0x97ed('0x46')]['id']}})['then'](handleEntityNotFound(_0x21a85b,null))[_0x97ed('0x22')](removeEntity(_0x21a85b,null))[_0x97ed('0x44')](handleError(_0x21a85b,null));};exports[_0x97ed('0x47')]=function(_0x533fbc,_0x56c775){return db[_0x97ed('0x28')][_0x97ed('0x47')]()[_0x97ed('0x22')](respondWithResult(_0x56c775,null))[_0x97ed('0x44')](handleError(_0x56c775,null));};exports[_0x97ed('0x48')]=function(_0x55977b,_0x3a92d9,_0x39241d){var _0x13d95e={'raw':!![],'where':{}},_0x32d1fd={},_0x4c6f6f;return db[_0x97ed('0x28')][_0x97ed('0x49')]({'where':{'id':_0x55977b[_0x97ed('0x46')]['id']}})[_0x97ed('0x22')](handleEntityNotFound(_0x3a92d9,null))[_0x97ed('0x22')](function(_0x5c4e5b){if(_0x5c4e5b){_0x4c6f6f=_0x5c4e5b[_0x97ed('0x4a')]({'plain':!![]});_0x32d1fd[_0x97ed('0x2a')]=_[_0x97ed('0x2b')](db['UserOpenchannelQueue'][_0x97ed('0x29')]);_0x32d1fd[_0x97ed('0x2c')]=_[_0x97ed('0x2b')](_0x55977b[_0x97ed('0x2c')]);_0x32d1fd['filters']=_[_0x97ed('0x2f')](_0x32d1fd[_0x97ed('0x2a')],_0x32d1fd['query']);_0x13d95e['attributes']=_[_0x97ed('0x2f')](_0x32d1fd[_0x97ed('0x2a')],qs[_0x97ed('0x30')](_0x55977b[_0x97ed('0x2c')][_0x97ed('0x30')]));_0x13d95e[_0x97ed('0x31')]=_0x13d95e[_0x97ed('0x31')][_0x97ed('0x32')]?_0x13d95e['attributes']:_0x32d1fd[_0x97ed('0x2a')];if(!_0x55977b[_0x97ed('0x2c')][_0x97ed('0x4b')](_0x97ed('0x33'))){_0x13d95e[_0x97ed('0x34')]=qs['limit'](_0x55977b[_0x97ed('0x2c')][_0x97ed('0x34')]);_0x13d95e[_0x97ed('0x1a')]=qs['offset'](_0x55977b[_0x97ed('0x2c')][_0x97ed('0x1a')]);}_0x13d95e['order']=qs[_0x97ed('0x36')](_0x55977b[_0x97ed('0x2c')][_0x97ed('0x36')]);_0x13d95e[_0x97ed('0x37')]=qs[_0x97ed('0x38')](_[_0x97ed('0x39')](_0x55977b[_0x97ed('0x2c')],_0x32d1fd['filters']));_0x13d95e[_0x97ed('0x37')][_0x97ed('0x4c')]=_0x5c4e5b['id'];if(_0x55977b[_0x97ed('0x2c')][_0x97ed('0x3d')]){_0x13d95e[_0x97ed('0x37')]=_[_0x97ed('0x3c')](_0x13d95e['where'],{'$or':_[_0x97ed('0x3e')](_0x13d95e[_0x97ed('0x31')],function(_0x1a74d6){var _0x2582a6={};_0x2582a6[_0x1a74d6]={'$like':'%'+_0x55977b['query'][_0x97ed('0x3d')]+'%'};return _0x2582a6;})});}_0x13d95e=_[_0x97ed('0x3c')]({},_0x13d95e,_0x55977b[_0x97ed('0x42')]);return db[_0x97ed('0x4d')]['findAll'](_0x13d95e);}})[_0x97ed('0x22')](function(_0x2bb201){if(_0x2bb201){return db[_0x97ed('0x4e')]['findAndCountAll']({'where':{'id':_['map'](_0x2bb201,_0x97ed('0x4f')),'role':'agent'},'attributes':['id',_0x97ed('0x25'),_0x97ed('0x50'),_0x97ed('0x51'),'createdAt']});}})[_0x97ed('0x22')](function(_0xbad774){if(_0xbad774){return{'count':_0xbad774[_0x97ed('0x19')],'rows':_[_0x97ed('0x3e')](_0xbad774[_0x97ed('0x52')],function(_0x594a9e){return{'membername':_0x594a9e[_0x97ed('0x25')],'UserId':_0x594a9e['id'],'queue_name':_0x4c6f6f[_0x97ed('0x25')],'OpenchannelQueueId':_0x4c6f6f['id'],'interface':util[_0x97ed('0x53')](_0x97ed('0x54'),_0x97ed('0x55'),_0x594a9e[_0x97ed('0x25')]),'penalty':0x0,'paused':_0x594a9e[_0x97ed('0x50')],'createdAt':_0x594a9e[_0x97ed('0x56')],'updatedAt':_0x594a9e[_0x97ed('0x51')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x97ed('0x22')](respondWithFilteredResult(_0x3a92d9,_0x13d95e))[_0x97ed('0x44')](handleError(_0x3a92d9,null));};exports[_0x97ed('0x57')]=function(_0x44fce2,_0x11cc93,_0x29aca0){var _0x1b24bb={};var _0x1a2d0e={};var _0x65018d;var _0x419974;return db['OpenchannelQueue'][_0x97ed('0x49')]({'where':{'id':_0x44fce2['params']['id']}})[_0x97ed('0x22')](handleEntityNotFound(_0x11cc93,null))[_0x97ed('0x22')](function(_0x59f909){if(_0x59f909){_0x65018d=_0x59f909;_0x1a2d0e['model']=_[_0x97ed('0x2b')](db[_0x97ed('0x58')][_0x97ed('0x29')]);_0x1a2d0e[_0x97ed('0x2c')]=_['keys'](_0x44fce2[_0x97ed('0x2c')]);_0x1a2d0e[_0x97ed('0x38')]=_[_0x97ed('0x2f')](_0x1a2d0e[_0x97ed('0x2a')],_0x1a2d0e['query']);_0x1b24bb['attributes']=_[_0x97ed('0x2f')](_0x1a2d0e[_0x97ed('0x2a')],qs['fields'](_0x44fce2['query'][_0x97ed('0x30')]));_0x1b24bb[_0x97ed('0x31')]=_0x1b24bb[_0x97ed('0x31')][_0x97ed('0x32')]?_0x1b24bb['attributes']:_0x1a2d0e[_0x97ed('0x2a')];_0x1b24bb[_0x97ed('0x35')]=qs[_0x97ed('0x36')](_0x44fce2[_0x97ed('0x2c')][_0x97ed('0x36')]);_0x1b24bb[_0x97ed('0x37')]=qs[_0x97ed('0x38')](_[_0x97ed('0x39')](_0x44fce2[_0x97ed('0x2c')],_0x1a2d0e[_0x97ed('0x38')]));if(_0x44fce2[_0x97ed('0x2c')][_0x97ed('0x3d')]){_0x1b24bb[_0x97ed('0x37')]=_[_0x97ed('0x3c')](_0x1b24bb[_0x97ed('0x37')],{'$or':_[_0x97ed('0x3e')](_0x1b24bb['attributes'],function(_0x1101f6){var _0x54f507={};_0x54f507[_0x1101f6]={'$like':'%'+_0x44fce2[_0x97ed('0x2c')][_0x97ed('0x3d')]+'%'};return _0x54f507;})});}_0x1b24bb=_['merge']({},_0x1b24bb,_0x44fce2[_0x97ed('0x42')]);return _0x65018d[_0x97ed('0x57')](_0x1b24bb);}})[_0x97ed('0x22')](function(_0x1893aa){if(_0x1893aa){_0x419974=_0x1893aa[_0x97ed('0x32')];if(!_0x44fce2['query'][_0x97ed('0x4b')](_0x97ed('0x33'))){_0x1b24bb[_0x97ed('0x34')]=qs[_0x97ed('0x34')](_0x44fce2['query'][_0x97ed('0x34')]);_0x1b24bb[_0x97ed('0x1a')]=qs[_0x97ed('0x1a')](_0x44fce2[_0x97ed('0x2c')][_0x97ed('0x1a')]);}return _0x65018d[_0x97ed('0x57')](_0x1b24bb);}})[_0x97ed('0x22')](function(_0x2277d2){if(_0x2277d2){return _0x2277d2?{'count':_0x419974,'rows':_0x2277d2}:null;}})['then'](respondWithResult(_0x11cc93,null))[_0x97ed('0x44')](handleError(_0x11cc93,null));};exports[_0x97ed('0x59')]=function(_0xecca16,_0x53e900,_0xdf3ce2){var _0x4c1607=[];var _0xa3a688;return db[_0x97ed('0x58')][_0x97ed('0x40')]({'where':{'id':_0xecca16['body'][_0x97ed('0x5a')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x97ed('0x5b'),'attributes':['id'],'raw':!![]}]})[_0x97ed('0x22')](function(_0x587bfe){if(_0x587bfe){for(var _0x2e5ceb=0x0;_0x2e5ceb<_0x587bfe['length'];_0x2e5ceb+=0x1){for(var _0x45b89a=0x0;_0x45b89a<_0x587bfe[_0x2e5ceb]['Agents'][_0x97ed('0x32')];_0x45b89a+=0x1){_0x4c1607=_[_0x97ed('0x5c')](_0x4c1607,[_0x587bfe[_0x2e5ceb][_0x97ed('0x5b')][_0x45b89a]['id']]);}}return _0x4c1607;}})['then'](function(_0x48bbc0){if(_0x48bbc0){return db['OpenchannelQueue'][_0x97ed('0x43')]({'where':{'id':_0xecca16[_0x97ed('0x46')]['id']}});}})['then'](function(_0x4dabd1){if(_0x4dabd1){_0xa3a688=_0x4dabd1;return _0xa3a688[_0x97ed('0x5d')](_0x4c1607,{'penalty':_0xecca16[_0x97ed('0x45')][_0x97ed('0x5e')]});}})[_0x97ed('0x22')](function(_0x239841){if(_0x239841){return _0xa3a688[_0x97ed('0x59')](_0xecca16['body'][_0x97ed('0x5a')]);}})[_0x97ed('0x22')](handleEntityNotFound(_0x53e900,null))['then'](respondWithStatusCode(_0x53e900,null))[_0x97ed('0x44')](handleError(_0x53e900,null));};exports[_0x97ed('0x5f')]=function(_0x10d09a,_0x336c7e,_0x572e0c){var _0x973b83=[];var _0x2bcf52;return db[_0x97ed('0x58')][_0x97ed('0x40')]({'where':{'id':_0x10d09a[_0x97ed('0x2c')][_0x97ed('0x5a')]},'attributes':['id'],'include':[{'model':db[_0x97ed('0x4e')],'as':_0x97ed('0x5b'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x5bd6f9){if(_0x5bd6f9){for(var _0x41e058=0x0;_0x41e058<_0x5bd6f9[_0x97ed('0x32')];_0x41e058+=0x1){for(var _0x311ccb=0x0;_0x311ccb<_0x5bd6f9[_0x41e058][_0x97ed('0x5b')]['length'];_0x311ccb+=0x1){_0x973b83=_['union'](_0x973b83,[_0x5bd6f9[_0x41e058]['Agents'][_0x311ccb]['id']]);}}return _0x973b83;}})['then'](function(_0x5824bb){if(_0x5824bb){return db['OpenchannelQueue'][_0x97ed('0x43')]({'where':{'id':_0x10d09a[_0x97ed('0x46')]['id']}});}})[_0x97ed('0x22')](function(_0x104d98){if(_0x104d98){_0x2bcf52=_0x104d98;return _0x2bcf52['removeAgents'](_0x973b83);}})[_0x97ed('0x22')](function(_0x34b014){if(_0x2bcf52){return _0x2bcf52[_0x97ed('0x5f')](_0x10d09a[_0x97ed('0x2c')][_0x97ed('0x5a')]);}})[_0x97ed('0x22')](handleEntityNotFound(_0x336c7e,null))[_0x97ed('0x22')](respondWithStatusCode(_0x336c7e,null))[_0x97ed('0x44')](handleError(_0x336c7e,null));};exports[_0x97ed('0x5d')]=function(_0x1aea20,_0x258574,_0xf6fb88){return db[_0x97ed('0x28')]['find']({'where':{'id':_0x1aea20[_0x97ed('0x46')]['id']}})[_0x97ed('0x22')](handleEntityNotFound(_0x258574,null))[_0x97ed('0x22')](function(_0x1d1a3c){if(_0x1d1a3c){return _0x1d1a3c[_0x97ed('0x5d')](_0x1aea20[_0x97ed('0x45')][_0x97ed('0x5a')],_[_0x97ed('0x60')](_0x1aea20[_0x97ed('0x45')],[_0x97ed('0x5a'),'id'])||{})[_0x97ed('0x61')](function(_0x2bf77){for(var _0x3cbb56=0x0;_0x3cbb56<_0x1aea20[_0x97ed('0x45')][_0x97ed('0x5a')][_0x97ed('0x32')];_0x3cbb56+=0x1){socket[_0x97ed('0x62')]('userOpenchannelQueue:save',{'UserId':_0x1aea20[_0x97ed('0x45')][_0x97ed('0x5a')][_0x3cbb56],'OpenchannelQueueId':_0x1aea20['params']['id']});}return _0x2bf77;});}})[_0x97ed('0x22')](respondWithResult(_0x258574,null))[_0x97ed('0x44')](handleError(_0x258574,null));};exports[_0x97ed('0x63')]=function(_0x15a10e,_0x1ab1c4,_0x137be7){var _0x5231ba;return db[_0x97ed('0x28')][_0x97ed('0x43')]({'where':{'id':_0x15a10e[_0x97ed('0x46')]['id']}})['then'](handleEntityNotFound(_0x1ab1c4,null))['then'](function(_0x24cf17){if(_0x24cf17){return _0x24cf17[_0x97ed('0x63')](_0x15a10e[_0x97ed('0x2c')][_0x97ed('0x5a')])[_0x97ed('0x22')](function(_0x424132){if(_[_0x97ed('0x64')](_0x15a10e[_0x97ed('0x2c')][_0x97ed('0x5a')])){for(var _0x3b7ed3=0x0;_0x3b7ed3<_0x15a10e[_0x97ed('0x2c')][_0x97ed('0x5a')]['length'];_0x3b7ed3+=0x1){socket[_0x97ed('0x62')](_0x97ed('0x65'),{'UserId':_0x15a10e['query'][_0x97ed('0x5a')][_0x3b7ed3],'OpenchannelQueueId':_0x15a10e['params']['id']});}}else{socket[_0x97ed('0x62')](_0x97ed('0x65'),{'UserId':_0x15a10e[_0x97ed('0x2c')]['ids'],'OpenchannelQueueId':_0x15a10e['params']['id']});}});}})[_0x97ed('0x22')](respondWithStatusCode(_0x1ab1c4,null))[_0x97ed('0x44')](handleError(_0x1ab1c4,null));};exports['getAgents']=function(_0x5d6a0a,_0x34a09f,_0x4bd7a8){var _0x469c6c={};var _0x429ecd={};var _0x1f17a6;var _0x38986b;return db[_0x97ed('0x28')][_0x97ed('0x49')]({'where':{'id':_0x5d6a0a[_0x97ed('0x46')]['id']}})[_0x97ed('0x22')](handleEntityNotFound(_0x34a09f,null))[_0x97ed('0x22')](function(_0x5a8a94){if(_0x5a8a94){_0x1f17a6=_0x5a8a94;_0x429ecd['model']=_[_0x97ed('0x2b')](db['User']['rawAttributes']);_0x429ecd[_0x97ed('0x2c')]=_[_0x97ed('0x2b')](_0x5d6a0a['query']);_0x429ecd[_0x97ed('0x38')]=_[_0x97ed('0x2f')](_0x429ecd[_0x97ed('0x2a')],_0x429ecd[_0x97ed('0x2c')]);_0x469c6c[_0x97ed('0x31')]=_[_0x97ed('0x2f')](_0x429ecd['model'],qs[_0x97ed('0x30')](_0x5d6a0a[_0x97ed('0x2c')][_0x97ed('0x30')]));_0x469c6c[_0x97ed('0x31')]=_0x469c6c[_0x97ed('0x31')]['length']?_0x469c6c[_0x97ed('0x31')]:_0x429ecd[_0x97ed('0x2a')];_0x469c6c[_0x97ed('0x35')]=qs[_0x97ed('0x36')](_0x5d6a0a['query']['sort']);_0x469c6c[_0x97ed('0x37')]=qs[_0x97ed('0x38')](_[_0x97ed('0x39')](_0x5d6a0a[_0x97ed('0x2c')],_0x429ecd[_0x97ed('0x38')]));if(_0x5d6a0a[_0x97ed('0x2c')][_0x97ed('0x3d')]){_0x469c6c['where']=_[_0x97ed('0x3c')](_0x469c6c['where'],{'$or':_[_0x97ed('0x3e')](_0x469c6c[_0x97ed('0x31')],function(_0x3c7199){var _0x486d23={};_0x486d23[_0x3c7199]={'$like':'%'+_0x5d6a0a[_0x97ed('0x2c')][_0x97ed('0x3d')]+'%'};return _0x486d23;})});}_0x469c6c=_['merge']({},_0x469c6c,_0x5d6a0a[_0x97ed('0x42')]);return _0x1f17a6[_0x97ed('0x66')](_0x469c6c);}})[_0x97ed('0x22')](function(_0x245dbc){if(_0x245dbc){_0x38986b=_0x245dbc[_0x97ed('0x32')];if(!_0x5d6a0a[_0x97ed('0x2c')][_0x97ed('0x4b')]('nolimit')){_0x469c6c[_0x97ed('0x34')]=qs[_0x97ed('0x34')](_0x5d6a0a[_0x97ed('0x2c')]['limit']);_0x469c6c[_0x97ed('0x1a')]=qs['offset'](_0x5d6a0a['query'][_0x97ed('0x1a')]);}return _0x1f17a6['getAgents'](_0x469c6c);}})[_0x97ed('0x22')](function(_0x258ae8){if(_0x258ae8){return _0x258ae8?{'count':_0x38986b,'rows':_0x258ae8}:null;}})['then'](respondWithResult(_0x34a09f,null))[_0x97ed('0x44')](handleError(_0x34a09f,null));};
\ No newline at end of file
+var _0x099b=['create','body','catch','describe','findOne','UserOpenchannelQueue','OpenchannelQueueId','User','agent','openchannelPause','updatedAt','createdAt','%s/%s','SIP','getTeams','Team','ids','Agents','union','addAgents','penalty','addTeams','removeTeams','omit','spread','emit','userOpenchannelQueue:save','removeAgents','userOpenchannelQueue:remove','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','count','offset','limit','set','apply','reject','update','then','destroy','error','stack','name','send','OpenchannelQueue','rawAttributes','model','keys','query','dateStart','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','dateEnd','add','day','merge','filter','map','includeAll','include','findAll','rows','show','params','options','find'];(function(_0x4d03ad,_0x2fc7df){var _0x14bc74=function(_0x238e2a){while(--_0x238e2a){_0x4d03ad['push'](_0x4d03ad['shift']());}};_0x14bc74(++_0x2fc7df);}(_0x099b,0x89));var _0xb099=function(_0xd3b23d,_0x652b41){_0xd3b23d=_0xd3b23d-0x0;var _0x44c201=_0x099b[_0xd3b23d];return _0x44c201;};'use strict';var pdf=require(_0xb099('0x0'));var emlformat=require(_0xb099('0x1'));var rimraf=require(_0xb099('0x2'));var zipdir=require(_0xb099('0x3'));var jsonpatch=require(_0xb099('0x4'));var rp=require(_0xb099('0x5'));var moment=require(_0xb099('0x6'));var BPromise=require(_0xb099('0x7'));var Mustache=require(_0xb099('0x8'));var util=require(_0xb099('0x9'));var path=require('path');var sox=require(_0xb099('0xa'));var csv=require('to-csv');var ejs=require(_0xb099('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xb099('0xc'));var crypto=require(_0xb099('0xd'));var jsforce=require(_0xb099('0xe'));var deskjs=require(_0xb099('0xf'));var toCsv=require(_0xb099('0x10'));var querystring=require(_0xb099('0x11'));var Papa=require(_0xb099('0x12'));var Redis=require(_0xb099('0x13'));var qs=require('../../components/parsers/qs');var logger=require(_0xb099('0x14'))(_0xb099('0x15'));var utils=require(_0xb099('0x16'));var config=require('../../config/environment');var db=require(_0xb099('0x17'))['db'];config[_0xb099('0x18')]=_[_0xb099('0x19')](config[_0xb099('0x18')],{'host':_0xb099('0x1a'),'port':0x18eb});var socket=require(_0xb099('0x1b'))(new Redis(config[_0xb099('0x18')]));require('./openchannelQueue.socket')[_0xb099('0x1c')](socket);function respondWithStatusCode(_0xf74e5f,_0x36a8b9){_0x36a8b9=_0x36a8b9||0xcc;return function(_0xa74b23){if(_0xa74b23){return _0xf74e5f[_0xb099('0x1d')](_0x36a8b9);}return _0xf74e5f[_0xb099('0x1e')](_0x36a8b9)[_0xb099('0x1f')]();};}function respondWithResult(_0x3226e5,_0xc602da){_0xc602da=_0xc602da||0xc8;return function(_0x47dc6b){if(_0x47dc6b){return _0x3226e5[_0xb099('0x1e')](_0xc602da)[_0xb099('0x20')](_0x47dc6b);}};}function respondWithFilteredResult(_0x18156f,_0x2cd28e){return function(_0x57e208){if(_0x57e208){var _0xb86b79=_0x57e208[_0xb099('0x21')],_0x467e64=_0x2cd28e[_0xb099('0x22')],_0x5d6f28=_0x2cd28e[_0xb099('0x22')]+_0x2cd28e[_0xb099('0x23')],_0x486e7a;if(_0x5d6f28>=_0xb86b79){_0x5d6f28=_0xb86b79;_0x486e7a=0xc8;}else{_0x486e7a=0xce;}_0x18156f['status'](_0x486e7a);return _0x18156f[_0xb099('0x24')]('Content-Range',_0x467e64+'-'+_0x5d6f28+'/'+_0xb86b79)[_0xb099('0x20')](_0x57e208);}return null;};}function patchUpdates(_0x37cce0){return function(_0xeb8eeb){try{jsonpatch[_0xb099('0x25')](_0xeb8eeb,_0x37cce0,!![]);}catch(_0xfaa854){return BPromise[_0xb099('0x26')](_0xfaa854);}return _0xeb8eeb['save']();};}function saveUpdates(_0x3d46a4,_0xede13){return function(_0x337c7f){if(_0x337c7f){return _0x337c7f[_0xb099('0x27')](_0x3d46a4)[_0xb099('0x28')](function(_0x314065){return _0x314065;});}return null;};}function removeEntity(_0x3db0a4,_0x443d60){return function(_0x1b0e04){if(_0x1b0e04){return _0x1b0e04[_0xb099('0x29')]()[_0xb099('0x28')](function(){_0x3db0a4[_0xb099('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0xb19dcb,_0x47087c){return function(_0x1b388b){if(!_0x1b388b){_0xb19dcb[_0xb099('0x1d')](0x194);}return _0x1b388b;};}function handleError(_0x2a34b3,_0x236111){_0x236111=_0x236111||0x1f4;return function(_0x3563e3){logger[_0xb099('0x2a')](_0x3563e3[_0xb099('0x2b')]);if(_0x3563e3[_0xb099('0x2c')]){delete _0x3563e3[_0xb099('0x2c')];}_0x2a34b3[_0xb099('0x1e')](_0x236111)[_0xb099('0x2d')](_0x3563e3);};}exports['index']=function(_0x25912d,_0x587926){var _0x240467={},_0x712d7a={},_0x229f20={'count':0x0,'rows':[]};var _0xc1338b=db[_0xb099('0x2e')][_0xb099('0x2f')];_0x712d7a[_0xb099('0x30')]=_[_0xb099('0x31')](_0xc1338b);var _0x428ab3={'dateStart':_0x25912d[_0xb099('0x32')][_0xb099('0x33')],'dateEnd':_0x25912d[_0xb099('0x32')]['dateEnd']};delete _0x25912d[_0xb099('0x32')][_0xb099('0x33')];delete _0x25912d[_0xb099('0x32')]['dateEnd'];_0x712d7a['query']=_[_0xb099('0x31')](_0x25912d[_0xb099('0x32')]);_0x712d7a[_0xb099('0x34')]=_[_0xb099('0x35')](_0x712d7a[_0xb099('0x30')],_0x712d7a[_0xb099('0x32')]);_0x240467[_0xb099('0x36')]=_[_0xb099('0x35')](_0x712d7a['model'],qs[_0xb099('0x37')](_0x25912d[_0xb099('0x32')]['fields']));_0x240467[_0xb099('0x36')]=_0x240467['attributes'][_0xb099('0x38')]?_0x240467[_0xb099('0x36')]:_0x712d7a[_0xb099('0x30')];if(!_0x25912d['query'][_0xb099('0x39')](_0xb099('0x3a'))){_0x240467['limit']=qs[_0xb099('0x23')](_0x25912d['query'][_0xb099('0x23')]);_0x240467[_0xb099('0x22')]=qs['offset'](_0x25912d[_0xb099('0x32')][_0xb099('0x22')]);}_0x240467[_0xb099('0x3b')]=qs['sort'](_0x25912d[_0xb099('0x32')][_0xb099('0x3c')]);_0x240467[_0xb099('0x3d')]=qs[_0xb099('0x34')](_[_0xb099('0x3e')](_0x25912d[_0xb099('0x32')],_0x712d7a[_0xb099('0x34')]));if(_0x428ab3[_0xb099('0x33')]){if(_0x428ab3['dateEnd']){_0x428ab3[_0xb099('0x3f')]=moment(_0x428ab3['dateEnd'])[_0xb099('0x40')](0x1,_0xb099('0x41'));}else{_0x428ab3[_0xb099('0x3f')]=moment(_0x428ab3[_0xb099('0x33')])[_0xb099('0x40')](0x1,_0xb099('0x41'));}_[_0xb099('0x42')](_0x240467[_0xb099('0x3d')],{'createdAt':{'$gte':_0x428ab3[_0xb099('0x33')],'$lte':_0x428ab3[_0xb099('0x3f')]}});}if(_0x25912d['query'][_0xb099('0x43')]){_0x240467['where']=_['merge'](_0x240467[_0xb099('0x3d')],{'$or':_[_0xb099('0x44')](_0x240467[_0xb099('0x36')],function(_0xf5e13d){var _0x1fdce3={};_0x1fdce3[_0xf5e13d]={'$like':'%'+_0x25912d[_0xb099('0x32')][_0xb099('0x43')]+'%'};return _0x1fdce3;})});}_0x240467=_['merge']({},_0x240467,_0x25912d['options']);var _0x311061={'where':_0x240467['where']};return db['OpenchannelQueue']['count'](_0x311061)[_0xb099('0x28')](function(_0x3e0cfd){_0x229f20[_0xb099('0x21')]=_0x3e0cfd;if(_0x25912d['query'][_0xb099('0x45')]){_0x240467[_0xb099('0x46')]=[{'all':!![]}];}return db[_0xb099('0x2e')][_0xb099('0x47')](_0x240467);})[_0xb099('0x28')](function(_0x5dd99b){_0x229f20[_0xb099('0x48')]=_0x5dd99b;return _0x229f20;})[_0xb099('0x28')](respondWithFilteredResult(_0x587926,_0x240467))['catch'](handleError(_0x587926,null));};exports[_0xb099('0x49')]=function(_0x5ab0bd,_0x5aa1e0){var _0x1d4eda={'raw':!![],'where':{'id':_0x5ab0bd[_0xb099('0x4a')]['id']}},_0x220cd2={};_0x220cd2[_0xb099('0x30')]=_['keys'](db[_0xb099('0x2e')][_0xb099('0x2f')]);_0x220cd2[_0xb099('0x32')]=_[_0xb099('0x31')](_0x5ab0bd[_0xb099('0x32')]);_0x220cd2[_0xb099('0x34')]=_[_0xb099('0x35')](_0x220cd2['model'],_0x220cd2[_0xb099('0x32')]);_0x1d4eda[_0xb099('0x36')]=_[_0xb099('0x35')](_0x220cd2[_0xb099('0x30')],qs[_0xb099('0x37')](_0x5ab0bd[_0xb099('0x32')]['fields']));_0x1d4eda[_0xb099('0x36')]=_0x1d4eda[_0xb099('0x36')][_0xb099('0x38')]?_0x1d4eda[_0xb099('0x36')]:_0x220cd2[_0xb099('0x30')];if(_0x5ab0bd['query']['includeAll']){_0x1d4eda[_0xb099('0x46')]=[{'all':!![]}];}_0x1d4eda=_['merge']({},_0x1d4eda,_0x5ab0bd[_0xb099('0x4b')]);return db[_0xb099('0x2e')][_0xb099('0x4c')](_0x1d4eda)['then'](handleEntityNotFound(_0x5aa1e0,null))[_0xb099('0x28')](respondWithResult(_0x5aa1e0,null))['catch'](handleError(_0x5aa1e0,null));};exports[_0xb099('0x4d')]=function(_0x14fc53,_0x201dc7){return db[_0xb099('0x2e')][_0xb099('0x4d')](_0x14fc53[_0xb099('0x4e')],{})['then'](respondWithResult(_0x201dc7,0xc9))['catch'](handleError(_0x201dc7,null));};exports[_0xb099('0x27')]=function(_0x36edb2,_0x3c9616){if(_0x36edb2[_0xb099('0x4e')]['id']){delete _0x36edb2['body']['id'];}return db[_0xb099('0x2e')][_0xb099('0x4c')]({'where':{'id':_0x36edb2[_0xb099('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3c9616,null))[_0xb099('0x28')](saveUpdates(_0x36edb2[_0xb099('0x4e')],null))['then'](respondWithResult(_0x3c9616,null))[_0xb099('0x4f')](handleError(_0x3c9616,null));};exports['destroy']=function(_0x4ad347,_0x1ff903){return db[_0xb099('0x2e')][_0xb099('0x4c')]({'where':{'id':_0x4ad347['params']['id']}})[_0xb099('0x28')](handleEntityNotFound(_0x1ff903,null))['then'](removeEntity(_0x1ff903,null))[_0xb099('0x4f')](handleError(_0x1ff903,null));};exports['describe']=function(_0x20efc5,_0x4702bb){return db[_0xb099('0x2e')][_0xb099('0x50')]()[_0xb099('0x28')](respondWithResult(_0x4702bb,null))['catch'](handleError(_0x4702bb,null));};exports['getMembers']=function(_0x14e7ff,_0x236fd6,_0x35390f){var _0x30e84e={'raw':!![],'where':{}},_0x379846={},_0xd8f31c;return db[_0xb099('0x2e')][_0xb099('0x51')]({'where':{'id':_0x14e7ff[_0xb099('0x4a')]['id']}})['then'](handleEntityNotFound(_0x236fd6,null))['then'](function(_0x2e25f3){if(_0x2e25f3){_0xd8f31c=_0x2e25f3['get']({'plain':!![]});_0x379846[_0xb099('0x30')]=_[_0xb099('0x31')](db[_0xb099('0x52')][_0xb099('0x2f')]);_0x379846[_0xb099('0x32')]=_['keys'](_0x14e7ff['query']);_0x379846[_0xb099('0x34')]=_['intersection'](_0x379846[_0xb099('0x30')],_0x379846[_0xb099('0x32')]);_0x30e84e[_0xb099('0x36')]=_[_0xb099('0x35')](_0x379846[_0xb099('0x30')],qs['fields'](_0x14e7ff['query'][_0xb099('0x37')]));_0x30e84e[_0xb099('0x36')]=_0x30e84e[_0xb099('0x36')][_0xb099('0x38')]?_0x30e84e[_0xb099('0x36')]:_0x379846['model'];if(!_0x14e7ff[_0xb099('0x32')]['hasOwnProperty'](_0xb099('0x3a'))){_0x30e84e[_0xb099('0x23')]=qs[_0xb099('0x23')](_0x14e7ff[_0xb099('0x32')][_0xb099('0x23')]);_0x30e84e[_0xb099('0x22')]=qs[_0xb099('0x22')](_0x14e7ff[_0xb099('0x32')][_0xb099('0x22')]);}_0x30e84e[_0xb099('0x3b')]=qs[_0xb099('0x3c')](_0x14e7ff[_0xb099('0x32')]['sort']);_0x30e84e[_0xb099('0x3d')]=qs[_0xb099('0x34')](_['pick'](_0x14e7ff[_0xb099('0x32')],_0x379846[_0xb099('0x34')]));_0x30e84e[_0xb099('0x3d')][_0xb099('0x53')]=_0x2e25f3['id'];if(_0x14e7ff[_0xb099('0x32')][_0xb099('0x43')]){_0x30e84e[_0xb099('0x3d')]=_[_0xb099('0x42')](_0x30e84e['where'],{'$or':_[_0xb099('0x44')](_0x30e84e['attributes'],function(_0x4f7ac5){var _0x231de3={};_0x231de3[_0x4f7ac5]={'$like':'%'+_0x14e7ff['query'][_0xb099('0x43')]+'%'};return _0x231de3;})});}_0x30e84e=_[_0xb099('0x42')]({},_0x30e84e,_0x14e7ff[_0xb099('0x4b')]);return db[_0xb099('0x52')][_0xb099('0x47')](_0x30e84e);}})[_0xb099('0x28')](function(_0x15a7b4){if(_0x15a7b4){return db[_0xb099('0x54')]['findAndCountAll']({'where':{'id':_['map'](_0x15a7b4,'UserId'),'role':_0xb099('0x55')},'attributes':['id',_0xb099('0x2c'),_0xb099('0x56'),_0xb099('0x57'),_0xb099('0x58')]});}})[_0xb099('0x28')](function(_0x2a9864){if(_0x2a9864){return{'count':_0x2a9864['count'],'rows':_[_0xb099('0x44')](_0x2a9864[_0xb099('0x48')],function(_0x3044f1){return{'membername':_0x3044f1[_0xb099('0x2c')],'UserId':_0x3044f1['id'],'queue_name':_0xd8f31c['name'],'OpenchannelQueueId':_0xd8f31c['id'],'interface':util['format'](_0xb099('0x59'),_0xb099('0x5a'),_0x3044f1[_0xb099('0x2c')]),'penalty':0x0,'paused':_0x3044f1[_0xb099('0x56')],'createdAt':_0x3044f1[_0xb099('0x58')],'updatedAt':_0x3044f1[_0xb099('0x57')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x236fd6,_0x30e84e))[_0xb099('0x4f')](handleError(_0x236fd6,null));};exports[_0xb099('0x5b')]=function(_0x166757,_0x4f7ca3,_0x310aa3){var _0x9396f5={};var _0x4e05c0={};var _0x36f233;var _0x4d45a4;return db[_0xb099('0x2e')][_0xb099('0x51')]({'where':{'id':_0x166757[_0xb099('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4f7ca3,null))[_0xb099('0x28')](function(_0x1a73dc){if(_0x1a73dc){_0x36f233=_0x1a73dc;_0x4e05c0[_0xb099('0x30')]=_[_0xb099('0x31')](db[_0xb099('0x5c')][_0xb099('0x2f')]);_0x4e05c0['query']=_[_0xb099('0x31')](_0x166757['query']);_0x4e05c0[_0xb099('0x34')]=_['intersection'](_0x4e05c0['model'],_0x4e05c0['query']);_0x9396f5['attributes']=_[_0xb099('0x35')](_0x4e05c0[_0xb099('0x30')],qs[_0xb099('0x37')](_0x166757[_0xb099('0x32')][_0xb099('0x37')]));_0x9396f5[_0xb099('0x36')]=_0x9396f5[_0xb099('0x36')][_0xb099('0x38')]?_0x9396f5[_0xb099('0x36')]:_0x4e05c0[_0xb099('0x30')];_0x9396f5['order']=qs['sort'](_0x166757[_0xb099('0x32')][_0xb099('0x3c')]);_0x9396f5[_0xb099('0x3d')]=qs[_0xb099('0x34')](_[_0xb099('0x3e')](_0x166757[_0xb099('0x32')],_0x4e05c0[_0xb099('0x34')]));if(_0x166757[_0xb099('0x32')][_0xb099('0x43')]){_0x9396f5[_0xb099('0x3d')]=_['merge'](_0x9396f5[_0xb099('0x3d')],{'$or':_['map'](_0x9396f5[_0xb099('0x36')],function(_0xfb2151){var _0x5dba39={};_0x5dba39[_0xfb2151]={'$like':'%'+_0x166757['query'][_0xb099('0x43')]+'%'};return _0x5dba39;})});}_0x9396f5=_[_0xb099('0x42')]({},_0x9396f5,_0x166757[_0xb099('0x4b')]);return _0x36f233['getTeams'](_0x9396f5);}})[_0xb099('0x28')](function(_0x5a4ecc){if(_0x5a4ecc){_0x4d45a4=_0x5a4ecc[_0xb099('0x38')];if(!_0x166757[_0xb099('0x32')][_0xb099('0x39')](_0xb099('0x3a'))){_0x9396f5[_0xb099('0x23')]=qs[_0xb099('0x23')](_0x166757[_0xb099('0x32')]['limit']);_0x9396f5[_0xb099('0x22')]=qs['offset'](_0x166757[_0xb099('0x32')][_0xb099('0x22')]);}return _0x36f233[_0xb099('0x5b')](_0x9396f5);}})[_0xb099('0x28')](function(_0x320025){if(_0x320025){return _0x320025?{'count':_0x4d45a4,'rows':_0x320025}:null;}})['then'](respondWithResult(_0x4f7ca3,null))[_0xb099('0x4f')](handleError(_0x4f7ca3,null));};exports['addTeams']=function(_0x2c8a5a,_0x21aaaa,_0x2a7de4){var _0x57831b=[];var _0x4bad68;return db[_0xb099('0x5c')][_0xb099('0x47')]({'where':{'id':_0x2c8a5a[_0xb099('0x4e')][_0xb099('0x5d')]},'attributes':['id'],'include':[{'model':db[_0xb099('0x54')],'as':_0xb099('0x5e'),'attributes':['id'],'raw':!![]}]})[_0xb099('0x28')](function(_0x5415db){if(_0x5415db){for(var _0x46c1f9=0x0;_0x46c1f9<_0x5415db[_0xb099('0x38')];_0x46c1f9+=0x1){for(var _0x5e0aec=0x0;_0x5e0aec<_0x5415db[_0x46c1f9][_0xb099('0x5e')][_0xb099('0x38')];_0x5e0aec+=0x1){_0x57831b=_[_0xb099('0x5f')](_0x57831b,[_0x5415db[_0x46c1f9]['Agents'][_0x5e0aec]['id']]);}}return _0x57831b;}})[_0xb099('0x28')](function(_0x14f430){if(_0x14f430){return db[_0xb099('0x2e')][_0xb099('0x4c')]({'where':{'id':_0x2c8a5a[_0xb099('0x4a')]['id']}});}})[_0xb099('0x28')](function(_0x10f967){if(_0x10f967){_0x4bad68=_0x10f967;return _0x4bad68[_0xb099('0x60')](_0x57831b,{'penalty':_0x2c8a5a[_0xb099('0x4e')][_0xb099('0x61')]});}})[_0xb099('0x28')](function(_0x2ae0ee){if(_0x2ae0ee){return _0x4bad68[_0xb099('0x62')](_0x2c8a5a[_0xb099('0x4e')]['ids']);}})[_0xb099('0x28')](handleEntityNotFound(_0x21aaaa,null))[_0xb099('0x28')](respondWithStatusCode(_0x21aaaa,null))['catch'](handleError(_0x21aaaa,null));};exports[_0xb099('0x63')]=function(_0x48d5ac,_0x59693f,_0x4ba810){var _0x2ebae5=[];var _0x56df23;return db[_0xb099('0x5c')]['findAll']({'where':{'id':_0x48d5ac[_0xb099('0x32')][_0xb099('0x5d')]},'attributes':['id'],'include':[{'model':db[_0xb099('0x54')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0xb099('0x28')](function(_0x1f3a89){if(_0x1f3a89){for(var _0x121d10=0x0;_0x121d10<_0x1f3a89['length'];_0x121d10+=0x1){for(var _0x7a10a5=0x0;_0x7a10a5<_0x1f3a89[_0x121d10]['Agents'][_0xb099('0x38')];_0x7a10a5+=0x1){_0x2ebae5=_[_0xb099('0x5f')](_0x2ebae5,[_0x1f3a89[_0x121d10][_0xb099('0x5e')][_0x7a10a5]['id']]);}}return _0x2ebae5;}})['then'](function(_0x1b0297){if(_0x1b0297){return db[_0xb099('0x2e')][_0xb099('0x4c')]({'where':{'id':_0x48d5ac[_0xb099('0x4a')]['id']}});}})[_0xb099('0x28')](function(_0xff5eef){if(_0xff5eef){_0x56df23=_0xff5eef;return _0x56df23['removeAgents'](_0x2ebae5);}})[_0xb099('0x28')](function(_0x18b22f){if(_0x56df23){return _0x56df23[_0xb099('0x63')](_0x48d5ac['query']['ids']);}})[_0xb099('0x28')](handleEntityNotFound(_0x59693f,null))['then'](respondWithStatusCode(_0x59693f,null))[_0xb099('0x4f')](handleError(_0x59693f,null));};exports[_0xb099('0x60')]=function(_0x382481,_0x54d685,_0x3c4e1e){return db[_0xb099('0x2e')][_0xb099('0x4c')]({'where':{'id':_0x382481[_0xb099('0x4a')]['id']}})[_0xb099('0x28')](handleEntityNotFound(_0x54d685,null))[_0xb099('0x28')](function(_0x3279ba){if(_0x3279ba){return _0x3279ba[_0xb099('0x60')](_0x382481[_0xb099('0x4e')][_0xb099('0x5d')],_[_0xb099('0x64')](_0x382481[_0xb099('0x4e')],[_0xb099('0x5d'),'id'])||{})[_0xb099('0x65')](function(_0x5f5121){for(var _0x5b3778=0x0;_0x5b3778<_0x382481[_0xb099('0x4e')][_0xb099('0x5d')]['length'];_0x5b3778+=0x1){socket[_0xb099('0x66')](_0xb099('0x67'),{'UserId':_0x382481[_0xb099('0x4e')][_0xb099('0x5d')][_0x5b3778],'OpenchannelQueueId':_0x382481[_0xb099('0x4a')]['id']});}return _0x5f5121;});}})[_0xb099('0x28')](respondWithResult(_0x54d685,null))['catch'](handleError(_0x54d685,null));};exports[_0xb099('0x68')]=function(_0x1ceb3f,_0xa36560,_0x542b86){var _0x7c3f3;return db['OpenchannelQueue']['find']({'where':{'id':_0x1ceb3f[_0xb099('0x4a')]['id']}})[_0xb099('0x28')](handleEntityNotFound(_0xa36560,null))[_0xb099('0x28')](function(_0xe52135){if(_0xe52135){return _0xe52135[_0xb099('0x68')](_0x1ceb3f[_0xb099('0x32')][_0xb099('0x5d')])[_0xb099('0x28')](function(_0x456609){if(_['isArray'](_0x1ceb3f[_0xb099('0x32')][_0xb099('0x5d')])){for(var _0x20cf6b=0x0;_0x20cf6b<_0x1ceb3f[_0xb099('0x32')][_0xb099('0x5d')][_0xb099('0x38')];_0x20cf6b+=0x1){socket['emit']('userOpenchannelQueue:remove',{'UserId':_0x1ceb3f[_0xb099('0x32')][_0xb099('0x5d')][_0x20cf6b],'OpenchannelQueueId':_0x1ceb3f[_0xb099('0x4a')]['id']});}}else{socket['emit'](_0xb099('0x69'),{'UserId':_0x1ceb3f[_0xb099('0x32')]['ids'],'OpenchannelQueueId':_0x1ceb3f[_0xb099('0x4a')]['id']});}});}})[_0xb099('0x28')](respondWithStatusCode(_0xa36560,null))[_0xb099('0x4f')](handleError(_0xa36560,null));};exports['getAgents']=function(_0x535c57,_0x27c941,_0x167dfb){var _0x301752={};var _0x4ac5b2={};var _0x3271f7;var _0x3fd367;return db['OpenchannelQueue'][_0xb099('0x51')]({'where':{'id':_0x535c57['params']['id']}})[_0xb099('0x28')](handleEntityNotFound(_0x27c941,null))[_0xb099('0x28')](function(_0x34b68c){if(_0x34b68c){_0x3271f7=_0x34b68c;_0x4ac5b2[_0xb099('0x30')]=_[_0xb099('0x31')](db[_0xb099('0x54')][_0xb099('0x2f')]);_0x4ac5b2['query']=_['keys'](_0x535c57[_0xb099('0x32')]);_0x4ac5b2[_0xb099('0x34')]=_['intersection'](_0x4ac5b2['model'],_0x4ac5b2['query']);_0x301752[_0xb099('0x36')]=_[_0xb099('0x35')](_0x4ac5b2[_0xb099('0x30')],qs[_0xb099('0x37')](_0x535c57[_0xb099('0x32')]['fields']));_0x301752[_0xb099('0x36')]=_0x301752[_0xb099('0x36')][_0xb099('0x38')]?_0x301752[_0xb099('0x36')]:_0x4ac5b2[_0xb099('0x30')];_0x301752[_0xb099('0x3b')]=qs['sort'](_0x535c57[_0xb099('0x32')][_0xb099('0x3c')]);_0x301752[_0xb099('0x3d')]=qs['filters'](_[_0xb099('0x3e')](_0x535c57['query'],_0x4ac5b2[_0xb099('0x34')]));if(_0x535c57[_0xb099('0x32')][_0xb099('0x43')]){_0x301752[_0xb099('0x3d')]=_[_0xb099('0x42')](_0x301752['where'],{'$or':_[_0xb099('0x44')](_0x301752[_0xb099('0x36')],function(_0x375e58){var _0x26a0f7={};_0x26a0f7[_0x375e58]={'$like':'%'+_0x535c57['query'][_0xb099('0x43')]+'%'};return _0x26a0f7;})});}_0x301752=_[_0xb099('0x42')]({},_0x301752,_0x535c57[_0xb099('0x4b')]);return _0x3271f7[_0xb099('0x6a')](_0x301752);}})['then'](function(_0x2bd0af){if(_0x2bd0af){_0x3fd367=_0x2bd0af[_0xb099('0x38')];if(!_0x535c57[_0xb099('0x32')][_0xb099('0x39')](_0xb099('0x3a'))){_0x301752['limit']=qs[_0xb099('0x23')](_0x535c57[_0xb099('0x32')][_0xb099('0x23')]);_0x301752[_0xb099('0x22')]=qs[_0xb099('0x22')](_0x535c57[_0xb099('0x32')][_0xb099('0x22')]);}return _0x3271f7['getAgents'](_0x301752);}})[_0xb099('0x28')](function(_0x439e9b){if(_0x439e9b){return _0x439e9b?{'count':_0x3fd367,'rows':_0x439e9b}:null;}})[_0xb099('0x28')](respondWithResult(_0x27c941,null))[_0xb099('0x4f')](handleError(_0x27c941,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda36=['hasOwnProperty','hook','exports','events','../../mysqldb','OpenchannelQueue','save','update','remove','emit'];(function(_0x599e60,_0x5b6519){var _0x468e19=function(_0xcdfd97){while(--_0xcdfd97){_0x599e60['push'](_0x599e60['shift']());}};_0x468e19(++_0x5b6519);}(_0xda36,0xcb));var _0x6da3=function(_0x592644,_0x41f30f){_0x592644=_0x592644-0x0;var _0xd64bbc=_0xda36[_0x592644];return _0xd64bbc;};'use strict';var EventEmitter=require(_0x6da3('0x0'));var OpenchannelQueue=require(_0x6da3('0x1'))['db'][_0x6da3('0x2')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6da3('0x3'),'afterUpdate':_0x6da3('0x4'),'afterDestroy':_0x6da3('0x5')};function emitEvent(_0x2bcab2){return function(_0x2c064b,_0x53902a,_0x5d8c68){OpenchannelQueueEvents['emit'](_0x2bcab2+':'+_0x2c064b['id'],_0x2c064b);OpenchannelQueueEvents[_0x6da3('0x6')](_0x2bcab2,_0x2c064b);_0x5d8c68(null);};}for(var e in events){if(events[_0x6da3('0x7')](e)){var event=events[e];OpenchannelQueue[_0x6da3('0x8')](e,emitEvent(event));}}module[_0x6da3('0x9')]=OpenchannelQueueEvents;
\ No newline at end of file
+var _0x019b=['update','emit','hasOwnProperty','hook','events','OpenchannelQueue','setMaxListeners','save'];(function(_0x4d5605,_0x46c371){var _0x103bcd=function(_0x19390f){while(--_0x19390f){_0x4d5605['push'](_0x4d5605['shift']());}};_0x103bcd(++_0x46c371);}(_0x019b,0x1b4));var _0xb019=function(_0x412e27,_0x20a978){_0x412e27=_0x412e27-0x0;var _0x53da42=_0x019b[_0x412e27];return _0x53da42;};'use strict';var EventEmitter=require(_0xb019('0x0'));var OpenchannelQueue=require('../../mysqldb')['db'][_0xb019('0x1')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0xb019('0x2')](0x0);var events={'afterCreate':_0xb019('0x3'),'afterUpdate':_0xb019('0x4'),'afterDestroy':'remove'};function emitEvent(_0x4b9cb7){return function(_0x1bfe8c,_0x558e60,_0xa24231){OpenchannelQueueEvents[_0xb019('0x5')](_0x4b9cb7+':'+_0x1bfe8c['id'],_0x1bfe8c);OpenchannelQueueEvents[_0xb019('0x5')](_0x4b9cb7,_0x1bfe8c);_0xa24231(null);};}for(var e in events){if(events[_0xb019('0x6')](e)){var event=events[e];OpenchannelQueue[_0xb019('0x7')](e,emitEvent(event));}}module['exports']=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x750a=['./openchannelQueue.attributes','exports','define','OpenchannelQueue','openchannel_queues','util','moment','bluebird','request-promise'];(function(_0x2e79bc,_0x3f343e){var _0x39e336=function(_0x218bb0){while(--_0x218bb0){_0x2e79bc['push'](_0x2e79bc['shift']());}};_0x39e336(++_0x3f343e);}(_0x750a,0x140));var _0xa750=function(_0x3f343f,_0x474529){_0x3f343f=_0x3f343f-0x0;var _0x119023=_0x750a[_0x3f343f];return _0x119023;};'use strict';var _=require('lodash');var util=require(_0xa750('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xa750('0x1'));var BPromise=require(_0xa750('0x2'));var rp=require(_0xa750('0x3'));var attributes=require(_0xa750('0x4'));module[_0xa750('0x5')]=function(_0x43d704,_0x562911){return _0x43d704[_0xa750('0x6')](_0xa750('0x7'),attributes,{'tableName':_0xa750('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x76dc=['../../config/logger','api','bluebird','request-promise','exports','define','OpenchannelQueue','openchannel_queues','lodash','util'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x76dc,0x1f2));var _0xc76d=function(_0x403ee1,_0x20b15e){_0x403ee1=_0x403ee1-0x0;var _0x1f7cc0=_0x76dc[_0x403ee1];return _0x1f7cc0;};'use strict';var _=require(_0xc76d('0x0'));var util=require(_0xc76d('0x1'));var logger=require(_0xc76d('0x2'))(_0xc76d('0x3'));var moment=require('moment');var BPromise=require(_0xc76d('0x4'));var rp=require(_0xc76d('0x5'));var attributes=require('./openchannelQueue.attributes');module[_0xc76d('0x6')]=function(_0x50ed3a,_0x507ea7){return _0x50ed3a[_0xc76d('0x7')](_0xc76d('0x8'),attributes,{'tableName':_0xc76d('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b01=['error','code','OpenchannelQueue,\x20%s,\x20%s','message','catch','GetOpenchannelQueue','findAll','options','raw','where','limit','include','map','model','attributes','OpenchannelQueue','find','ShowOpenchannelQueue','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','request','then','info','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x413853,_0x30fba8){var _0x5e1664=function(_0x26f771){while(--_0x26f771){_0x413853['push'](_0x413853['shift']());}};_0x5e1664(++_0x30fba8);}(_0x7b01,0x1ca));var _0x17b0=function(_0x3a97d6,_0x1d09a9){_0x3a97d6=_0x3a97d6-0x0;var _0x368cc0=_0x7b01[_0x3a97d6];return _0x368cc0;};'use strict';var _=require(_0x17b0('0x0'));var util=require(_0x17b0('0x1'));var moment=require(_0x17b0('0x2'));var BPromise=require(_0x17b0('0x3'));var rs=require(_0x17b0('0x4'));var fs=require('fs');var db=require(_0x17b0('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x17b0('0x6'))('rpc');var config=require(_0x17b0('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x17b0('0x8')]['http']({'port':0x232a});config[_0x17b0('0x9')]=_[_0x17b0('0xa')](config[_0x17b0('0x9')],{'host':_0x17b0('0xb'),'port':0x18eb});var socket=require(_0x17b0('0xc'))(config[_0x17b0('0x9')]);require(_0x17b0('0xd'))[_0x17b0('0xe')](socket);function respondWithRpcPromise(_0x5b7606,_0x2bc5f7,_0x2236e6){return new BPromise(function(_0x156a4a,_0x5caf15){return client[_0x17b0('0xf')](_0x5b7606,_0x2236e6)[_0x17b0('0x10')](function(_0x238115){logger[_0x17b0('0x11')]('OpenchannelQueue,\x20%s,\x20%s',_0x2bc5f7,'request\x20sent');logger[_0x17b0('0x12')](_0x17b0('0x13'),_0x2bc5f7,_0x17b0('0x14'),JSON[_0x17b0('0x15')](_0x238115));if(_0x238115[_0x17b0('0x16')]){if(_0x238115['error'][_0x17b0('0x17')]===0x1f4){logger[_0x17b0('0x16')](_0x17b0('0x18'),_0x2bc5f7,_0x238115[_0x17b0('0x16')]['message']);return _0x5caf15(_0x238115[_0x17b0('0x16')][_0x17b0('0x19')]);}logger[_0x17b0('0x16')]('OpenchannelQueue,\x20%s,\x20%s',_0x2bc5f7,_0x238115[_0x17b0('0x16')][_0x17b0('0x19')]);return _0x156a4a(_0x238115[_0x17b0('0x16')][_0x17b0('0x19')]);}else{logger[_0x17b0('0x11')](_0x17b0('0x18'),_0x2bc5f7,_0x17b0('0x14'));_0x156a4a(_0x238115['result'][_0x17b0('0x19')]);}})[_0x17b0('0x1a')](function(_0x407e78){logger[_0x17b0('0x16')](_0x17b0('0x18'),_0x2bc5f7,_0x407e78);_0x5caf15(_0x407e78);});});}exports[_0x17b0('0x1b')]=function(_0x1b30fd){var _0x5f401e=this;return new Promise(function(_0x2a41fc,_0xd4e8ff){return db['OpenchannelQueue'][_0x17b0('0x1c')]({'raw':_0x1b30fd[_0x17b0('0x1d')]?_0x1b30fd[_0x17b0('0x1d')][_0x17b0('0x1e')]===undefined?!![]:![]:!![],'where':_0x1b30fd['options']?_0x1b30fd[_0x17b0('0x1d')][_0x17b0('0x1f')]||null:null,'attributes':_0x1b30fd[_0x17b0('0x1d')]?_0x1b30fd['options']['attributes']||null:null,'limit':_0x1b30fd[_0x17b0('0x1d')]?_0x1b30fd[_0x17b0('0x1d')][_0x17b0('0x20')]||null:null,'include':_0x1b30fd[_0x17b0('0x1d')]?_0x1b30fd['options'][_0x17b0('0x21')]?_[_0x17b0('0x22')](_0x1b30fd['options']['include'],function(_0x3226d2){return{'model':db[_0x3226d2[_0x17b0('0x23')]],'as':_0x3226d2['as'],'attributes':_0x3226d2[_0x17b0('0x24')],'include':_0x3226d2[_0x17b0('0x21')]?_[_0x17b0('0x22')](_0x3226d2[_0x17b0('0x21')],function(_0x202cc0){return{'model':db[_0x202cc0['model']],'as':_0x202cc0['as'],'attributes':_0x202cc0[_0x17b0('0x24')],'include':_0x202cc0[_0x17b0('0x21')]?_['map'](_0x202cc0[_0x17b0('0x21')],function(_0x566e9b){return{'model':db[_0x566e9b[_0x17b0('0x23')]],'as':_0x566e9b['as'],'attributes':_0x566e9b['attributes']};}):[]};}):[]};}):[]:[]})[_0x17b0('0x10')](function(_0x372b56){logger[_0x17b0('0x11')](_0x17b0('0x1b'),_0x1b30fd);logger[_0x17b0('0x12')](_0x17b0('0x1b'),_0x1b30fd,JSON['stringify'](_0x372b56));_0x2a41fc(_0x372b56);})['catch'](function(_0x46a831){logger[_0x17b0('0x16')](_0x17b0('0x1b'),_0x46a831[_0x17b0('0x19')],_0x1b30fd);_0xd4e8ff(_0x5f401e[_0x17b0('0x16')](0x1f4,_0x46a831[_0x17b0('0x19')]));});});};exports['ShowOpenchannelQueue']=function(_0x21c98a){var _0x4e824b=this;return new Promise(function(_0x34bfde,_0x3f65bc){return db[_0x17b0('0x25')][_0x17b0('0x26')]({'raw':_0x21c98a['options']?_0x21c98a[_0x17b0('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x21c98a[_0x17b0('0x1d')]?_0x21c98a[_0x17b0('0x1d')][_0x17b0('0x1f')]||null:null,'attributes':_0x21c98a[_0x17b0('0x1d')]?_0x21c98a['options'][_0x17b0('0x24')]||null:null,'include':_0x21c98a[_0x17b0('0x1d')]?_0x21c98a[_0x17b0('0x1d')][_0x17b0('0x21')]?_[_0x17b0('0x22')](_0x21c98a[_0x17b0('0x1d')][_0x17b0('0x21')],function(_0x5853c1){return{'model':db[_0x5853c1['model']],'as':_0x5853c1['as'],'attributes':_0x5853c1['attributes'],'include':_0x5853c1['include']?_[_0x17b0('0x22')](_0x5853c1['include'],function(_0x2a8580){return{'model':db[_0x2a8580[_0x17b0('0x23')]],'as':_0x2a8580['as'],'attributes':_0x2a8580[_0x17b0('0x24')],'include':_0x2a8580[_0x17b0('0x21')]?_['map'](_0x2a8580[_0x17b0('0x21')],function(_0x18f8e1){return{'model':db[_0x18f8e1[_0x17b0('0x23')]],'as':_0x18f8e1['as'],'attributes':_0x18f8e1[_0x17b0('0x24')]};}):[]};}):[]};}):[]:[]})[_0x17b0('0x10')](function(_0x123d9a){logger[_0x17b0('0x11')]('ShowOpenchannelQueue',_0x21c98a);logger[_0x17b0('0x12')](_0x17b0('0x27'),_0x21c98a,JSON[_0x17b0('0x15')](_0x123d9a));_0x34bfde(_0x123d9a);})[_0x17b0('0x1a')](function(_0x13e9fc){logger[_0x17b0('0x16')](_0x17b0('0x27'),_0x13e9fc[_0x17b0('0x19')],_0x21c98a);_0x3f65bc(_0x4e824b[_0x17b0('0x16')](0x1f4,_0x13e9fc[_0x17b0('0x19')]));});});};
\ No newline at end of file
+var _0x12fd=['../../config/environment','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./openchannelQueue.socket','request','request\x20sent','OpenchannelQueue,\x20%s,\x20%s,\x20%s','error','message','OpenchannelQueue,\x20%s,\x20%s','catch','GetOpenchannelQueue','OpenchannelQueue','options','raw','where','attributes','limit','include','map','model','then','debug','stringify','ShowOpenchannelQueue','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x43a4c2,_0x4e400f){var _0x3cd4fb=function(_0x28ec58){while(--_0x28ec58){_0x43a4c2['push'](_0x43a4c2['shift']());}};_0x3cd4fb(++_0x4e400f);}(_0x12fd,0x199));var _0xd12f=function(_0x3aa421,_0x55d175){_0x3aa421=_0x3aa421-0x0;var _0x54dd3b=_0x12fd[_0x3aa421];return _0x54dd3b;};'use strict';var _=require(_0xd12f('0x0'));var util=require(_0xd12f('0x1'));var moment=require(_0xd12f('0x2'));var BPromise=require(_0xd12f('0x3'));var rs=require(_0xd12f('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd12f('0x5'))['db'];var utils=require(_0xd12f('0x6'));var logger=require(_0xd12f('0x7'))(_0xd12f('0x8'));var config=require(_0xd12f('0x9'));var jayson=require(_0xd12f('0xa'));var client=jayson['client'][_0xd12f('0xb')]({'port':0x232a});config['redis']=_[_0xd12f('0xc')](config[_0xd12f('0xd')],{'host':_0xd12f('0xe'),'port':0x18eb});var socket=require(_0xd12f('0xf'))(new Redis(config['redis']));require(_0xd12f('0x10'))['register'](socket);function respondWithRpcPromise(_0xd848dd,_0x5108a9,_0x59c17c){return new BPromise(function(_0x4a1677,_0x219157){return client[_0xd12f('0x11')](_0xd848dd,_0x59c17c)['then'](function(_0x49ab44){logger['info']('OpenchannelQueue,\x20%s,\x20%s',_0x5108a9,_0xd12f('0x12'));logger['debug'](_0xd12f('0x13'),_0x5108a9,_0xd12f('0x12'),JSON['stringify'](_0x49ab44));if(_0x49ab44[_0xd12f('0x14')]){if(_0x49ab44[_0xd12f('0x14')]['code']===0x1f4){logger['error']('OpenchannelQueue,\x20%s,\x20%s',_0x5108a9,_0x49ab44[_0xd12f('0x14')][_0xd12f('0x15')]);return _0x219157(_0x49ab44[_0xd12f('0x14')][_0xd12f('0x15')]);}logger[_0xd12f('0x14')](_0xd12f('0x16'),_0x5108a9,_0x49ab44[_0xd12f('0x14')][_0xd12f('0x15')]);return _0x4a1677(_0x49ab44[_0xd12f('0x14')]['message']);}else{logger['info'](_0xd12f('0x16'),_0x5108a9,_0xd12f('0x12'));_0x4a1677(_0x49ab44['result'][_0xd12f('0x15')]);}})[_0xd12f('0x17')](function(_0x1a2900){logger['error']('OpenchannelQueue,\x20%s,\x20%s',_0x5108a9,_0x1a2900);_0x219157(_0x1a2900);});});}exports[_0xd12f('0x18')]=function(_0x449a75){var _0x10a5a8=this;return new Promise(function(_0x186b99,_0x410073){return db[_0xd12f('0x19')]['findAll']({'raw':_0x449a75[_0xd12f('0x1a')]?_0x449a75[_0xd12f('0x1a')][_0xd12f('0x1b')]===undefined?!![]:![]:!![],'where':_0x449a75[_0xd12f('0x1a')]?_0x449a75[_0xd12f('0x1a')][_0xd12f('0x1c')]||null:null,'attributes':_0x449a75[_0xd12f('0x1a')]?_0x449a75[_0xd12f('0x1a')][_0xd12f('0x1d')]||null:null,'limit':_0x449a75[_0xd12f('0x1a')]?_0x449a75[_0xd12f('0x1a')][_0xd12f('0x1e')]||null:null,'include':_0x449a75[_0xd12f('0x1a')]?_0x449a75[_0xd12f('0x1a')][_0xd12f('0x1f')]?_[_0xd12f('0x20')](_0x449a75[_0xd12f('0x1a')][_0xd12f('0x1f')],function(_0x315276){return{'model':db[_0x315276[_0xd12f('0x21')]],'as':_0x315276['as'],'attributes':_0x315276[_0xd12f('0x1d')],'include':_0x315276[_0xd12f('0x1f')]?_[_0xd12f('0x20')](_0x315276['include'],function(_0x184d13){return{'model':db[_0x184d13['model']],'as':_0x184d13['as'],'attributes':_0x184d13[_0xd12f('0x1d')],'include':_0x184d13[_0xd12f('0x1f')]?_['map'](_0x184d13[_0xd12f('0x1f')],function(_0x59b166){return{'model':db[_0x59b166[_0xd12f('0x21')]],'as':_0x59b166['as'],'attributes':_0x59b166[_0xd12f('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xd12f('0x22')](function(_0x141621){logger['info']('GetOpenchannelQueue',_0x449a75);logger[_0xd12f('0x23')]('GetOpenchannelQueue',_0x449a75,JSON[_0xd12f('0x24')](_0x141621));_0x186b99(_0x141621);})['catch'](function(_0x5e800a){logger['error']('GetOpenchannelQueue',_0x5e800a[_0xd12f('0x15')],_0x449a75);_0x410073(_0x10a5a8['error'](0x1f4,_0x5e800a[_0xd12f('0x15')]));});});};exports[_0xd12f('0x25')]=function(_0x1de94d){var _0x500c0d=this;return new Promise(function(_0x17ab32,_0x5eccf2){return db[_0xd12f('0x19')]['find']({'raw':_0x1de94d['options']?_0x1de94d[_0xd12f('0x1a')][_0xd12f('0x1b')]===undefined?!![]:![]:!![],'where':_0x1de94d[_0xd12f('0x1a')]?_0x1de94d[_0xd12f('0x1a')][_0xd12f('0x1c')]||null:null,'attributes':_0x1de94d[_0xd12f('0x1a')]?_0x1de94d[_0xd12f('0x1a')][_0xd12f('0x1d')]||null:null,'include':_0x1de94d['options']?_0x1de94d['options'][_0xd12f('0x1f')]?_['map'](_0x1de94d[_0xd12f('0x1a')][_0xd12f('0x1f')],function(_0x4bb940){return{'model':db[_0x4bb940[_0xd12f('0x21')]],'as':_0x4bb940['as'],'attributes':_0x4bb940[_0xd12f('0x1d')],'include':_0x4bb940[_0xd12f('0x1f')]?_['map'](_0x4bb940['include'],function(_0x55dcdd){return{'model':db[_0x55dcdd['model']],'as':_0x55dcdd['as'],'attributes':_0x55dcdd[_0xd12f('0x1d')],'include':_0x55dcdd[_0xd12f('0x1f')]?_['map'](_0x55dcdd[_0xd12f('0x1f')],function(_0x2e30e0){return{'model':db[_0x2e30e0[_0xd12f('0x21')]],'as':_0x2e30e0['as'],'attributes':_0x2e30e0['attributes']};}):[]};}):[]};}):[]:[]})[_0xd12f('0x22')](function(_0x5c48bd){logger['info']('ShowOpenchannelQueue',_0x1de94d);logger[_0xd12f('0x23')](_0xd12f('0x25'),_0x1de94d,JSON[_0xd12f('0x24')](_0x5c48bd));_0x17ab32(_0x5c48bd);})[_0xd12f('0x17')](function(_0x3c6c47){logger[_0xd12f('0x14')]('ShowOpenchannelQueue',_0x3c6c47[_0xd12f('0x15')],_0x1de94d);_0x5eccf2(_0x500c0d[_0xd12f('0x14')](0x1f4,_0x3c6c47[_0xd12f('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','openchannelQueue:','./openchannelQueue.events','save','remove','emit','removeListener'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xa9e0[_0x1ac595];return _0x455fff;};'use strict';var OpenchannelQueueEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){OpenchannelQueueEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);OpenchannelQueueEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','openchannelQueue:','./openchannelQueue.events','save','remove','emit','removeListener'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xa9e0[_0x411add];return _0x238242;};'use strict';var OpenchannelQueueEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){OpenchannelQueueEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);OpenchannelQueueEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['put','destroy','exports','multer','util','path','Router','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','isAuthenticated','/describe','/:id','post','create'];(function(_0x26d6d9,_0x431cb8){var _0x1b4875=function(_0x41111f){while(--_0x41111f){_0x26d6d9['push'](_0x26d6d9['shift']());}};_0x1b4875(++_0x431cb8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xa9e0[_0x5b644e];return _0x49c6bf;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x0a9e('0x4'));var config=require(_0x0a9e('0x5'));var controller=require(_0x0a9e('0x6'));router[_0x0a9e('0x7')]('/',auth[_0x0a9e('0x8')](),controller['index']);router[_0x0a9e('0x7')](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller['describe']);router['get'](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth[_0x0a9e('0x8')](),controller[_0x0a9e('0xc')]);router[_0x0a9e('0xd')](_0x0a9e('0xa'),auth[_0x0a9e('0x8')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xe')]);module[_0x0a9e('0xf')]=router;
\ No newline at end of file
+var _0xa9e0=['put','destroy','exports','multer','util','path','Router','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','isAuthenticated','/describe','/:id','post','create'];(function(_0x4cd21c,_0x35fa45){var _0x5d8e5e=function(_0x3af223){while(--_0x3af223){_0x4cd21c['push'](_0x4cd21c['shift']());}};_0x5d8e5e(++_0x35fa45);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0xa9e0[_0x1ddedd];return _0xa3e1ac;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x0a9e('0x4'));var config=require(_0x0a9e('0x5'));var controller=require(_0x0a9e('0x6'));router[_0x0a9e('0x7')]('/',auth[_0x0a9e('0x8')](),controller['index']);router[_0x0a9e('0x7')](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller['describe']);router['get'](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth[_0x0a9e('0x8')](),controller[_0x0a9e('0xc')]);router[_0x0a9e('0xd')](_0x0a9e('0xa'),auth[_0x0a9e('0x8')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xe')]);module[_0x0a9e('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96c2=['sequelize','exports','STRING','DATE','moment'];(function(_0x685346,_0x3ef2e5){var _0x52e15b=function(_0x4435da){while(--_0x4435da){_0x685346['push'](_0x685346['shift']());}};_0x52e15b(++_0x3ef2e5);}(_0x96c2,0x149));var _0x296c=function(_0x77d286,_0x1ddc6d){_0x77d286=_0x77d286-0x0;var _0x5446a5=_0x96c2[_0x77d286];return _0x5446a5;};'use strict';var moment=require(_0x296c('0x0'));var Sequelize=require(_0x296c('0x1'));module[_0x296c('0x2')]={'uniqueid':{'type':Sequelize[_0x296c('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x296c('0x3')]},'joinAt':{'type':Sequelize[_0x296c('0x4')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x296c('0x4')]},'reason':{'type':Sequelize[_0x296c('0x3')]}};
\ No newline at end of file
+var _0x93be=['sequelize','exports','STRING','DATE','moment'];(function(_0x341179,_0x35f147){var _0x2893df=function(_0x3f6339){while(--_0x3f6339){_0x341179['push'](_0x341179['shift']());}};_0x2893df(++_0x35f147);}(_0x93be,0x153));var _0xe93b=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x93be[_0x2dafbe];return _0x58a45a;};'use strict';var moment=require(_0xe93b('0x0'));var Sequelize=require(_0xe93b('0x1'));module[_0xe93b('0x2')]={'uniqueid':{'type':Sequelize[_0xe93b('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0xe93b('0x4')]},'leaveAt':{'type':Sequelize[_0xe93b('0x4')]},'acceptAt':{'type':Sequelize[_0xe93b('0x4')]},'exitAt':{'type':Sequelize[_0xe93b('0x4')]},'reason':{'type':Sequelize[_0xe93b('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc97=['then','end','stack','name','OpenchannelQueueReport','rawAttributes','model','keys','query','dateStart','dateEnd','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','filters','add','day','merge','where','filter','map','options','includeAll','findAll','rows','catch','show','params','length','include','create','body','find','destroy','describe','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','util','path','sox','to-csv','lodash','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','count','offset','limit','set','Content-Range','apply','save','update'];(function(_0x3f2e68,_0x1233d9){var _0x162cac=function(_0x5ddb3d){while(--_0x5ddb3d){_0x3f2e68['push'](_0x3f2e68['shift']());}};_0x162cac(++_0x1233d9);}(_0xdc97,0x13b));var _0x7dc9=function(_0x4d11de,_0xc92842){_0x4d11de=_0x4d11de-0x0;var _0x510d87=_0xdc97[_0x4d11de];return _0x510d87;};'use strict';var pdf=require(_0x7dc9('0x0'));var emlformat=require(_0x7dc9('0x1'));var rimraf=require(_0x7dc9('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7dc9('0x3'));var rp=require('request-promise');var moment=require(_0x7dc9('0x4'));var BPromise=require(_0x7dc9('0x5'));var Mustache=require('mustache');var util=require(_0x7dc9('0x6'));var path=require(_0x7dc9('0x7'));var sox=require(_0x7dc9('0x8'));var csv=require(_0x7dc9('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7dc9('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7dc9('0xb'));var deskjs=require(_0x7dc9('0xc'));var toCsv=require(_0x7dc9('0x9'));var querystring=require(_0x7dc9('0xd'));var Papa=require(_0x7dc9('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x7dc9('0xf'))(_0x7dc9('0x10'));var utils=require(_0x7dc9('0x11'));var config=require(_0x7dc9('0x12'));var db=require(_0x7dc9('0x13'))['db'];function respondWithStatusCode(_0x3c2af5,_0x1e336a){_0x1e336a=_0x1e336a||0xcc;return function(_0x4e8e65){if(_0x4e8e65){return _0x3c2af5['sendStatus'](_0x1e336a);}return _0x3c2af5['status'](_0x1e336a)['end']();};}function respondWithResult(_0x94c75a,_0x14e5db){_0x14e5db=_0x14e5db||0xc8;return function(_0x5c6ca5){if(_0x5c6ca5){return _0x94c75a[_0x7dc9('0x14')](_0x14e5db)[_0x7dc9('0x15')](_0x5c6ca5);}};}function respondWithFilteredResult(_0xaadf2,_0xf37bc7){return function(_0x31d43d){if(_0x31d43d){var _0x11af93=_0x31d43d[_0x7dc9('0x16')],_0x524d09=_0xf37bc7[_0x7dc9('0x17')],_0x3a54f2=_0xf37bc7[_0x7dc9('0x17')]+_0xf37bc7[_0x7dc9('0x18')],_0x278191;if(_0x3a54f2>=_0x11af93){_0x3a54f2=_0x11af93;_0x278191=0xc8;}else{_0x278191=0xce;}_0xaadf2[_0x7dc9('0x14')](_0x278191);return _0xaadf2[_0x7dc9('0x19')](_0x7dc9('0x1a'),_0x524d09+'-'+_0x3a54f2+'/'+_0x11af93)['json'](_0x31d43d);}return null;};}function patchUpdates(_0x22577e){return function(_0x4afb47){try{jsonpatch[_0x7dc9('0x1b')](_0x4afb47,_0x22577e,!![]);}catch(_0x1cc237){return BPromise['reject'](_0x1cc237);}return _0x4afb47[_0x7dc9('0x1c')]();};}function saveUpdates(_0x3b738a,_0x12f08d){return function(_0x4b2703){if(_0x4b2703){return _0x4b2703[_0x7dc9('0x1d')](_0x3b738a)[_0x7dc9('0x1e')](function(_0x2dad65){return _0x2dad65;});}return null;};}function removeEntity(_0x2895f5,_0x155cc4){return function(_0x2b38d6){if(_0x2b38d6){return _0x2b38d6['destroy']()['then'](function(){_0x2895f5[_0x7dc9('0x14')](0xcc)[_0x7dc9('0x1f')]();});}};}function handleEntityNotFound(_0x596e0f,_0x349001){return function(_0x27f7fa){if(!_0x27f7fa){_0x596e0f['sendStatus'](0x194);}return _0x27f7fa;};}function handleError(_0xffc080,_0x43d31f){_0x43d31f=_0x43d31f||0x1f4;return function(_0x41110a){logger['error'](_0x41110a[_0x7dc9('0x20')]);if(_0x41110a[_0x7dc9('0x21')]){delete _0x41110a[_0x7dc9('0x21')];}_0xffc080['status'](_0x43d31f)['send'](_0x41110a);};}exports['index']=function(_0x25b383,_0x32d032){var _0x5843bf={},_0x585eef={},_0x47771b={'count':0x0,'rows':[]};var _0x5afb7d=db[_0x7dc9('0x22')][_0x7dc9('0x23')];_0x585eef[_0x7dc9('0x24')]=_[_0x7dc9('0x25')](_0x5afb7d);var _0xa2aaa9={'dateStart':_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x27')],'dateEnd':_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x28')]};delete _0x25b383[_0x7dc9('0x26')][_0x7dc9('0x27')];delete _0x25b383[_0x7dc9('0x26')]['dateEnd'];_0x585eef['query']=_['keys'](_0x25b383['query']);_0x585eef['filters']=_['intersection'](_0x585eef['model'],_0x585eef['query']);_0x5843bf[_0x7dc9('0x29')]=_[_0x7dc9('0x2a')](_0x585eef[_0x7dc9('0x24')],qs[_0x7dc9('0x2b')](_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x2b')]));_0x5843bf['attributes']=_0x5843bf['attributes']['length']?_0x5843bf[_0x7dc9('0x29')]:_0x585eef['model'];if(!_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x2c')](_0x7dc9('0x2d'))){_0x5843bf[_0x7dc9('0x18')]=qs[_0x7dc9('0x18')](_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x18')]);_0x5843bf[_0x7dc9('0x17')]=qs['offset'](_0x25b383[_0x7dc9('0x26')]['offset']);}_0x5843bf[_0x7dc9('0x2e')]=qs[_0x7dc9('0x2f')](_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x2f')]);_0x5843bf['where']=qs[_0x7dc9('0x30')](_['pick'](_0x25b383[_0x7dc9('0x26')],_0x585eef['filters']));if(_0xa2aaa9['dateStart']){if(_0xa2aaa9[_0x7dc9('0x28')]){_0xa2aaa9[_0x7dc9('0x28')]=moment(_0xa2aaa9[_0x7dc9('0x28')])[_0x7dc9('0x31')](0x1,'day');}else{_0xa2aaa9[_0x7dc9('0x28')]=moment(_0xa2aaa9[_0x7dc9('0x27')])[_0x7dc9('0x31')](0x1,_0x7dc9('0x32'));}_[_0x7dc9('0x33')](_0x5843bf[_0x7dc9('0x34')],{'createdAt':{'$gte':_0xa2aaa9[_0x7dc9('0x27')],'$lte':_0xa2aaa9[_0x7dc9('0x28')]}});}if(_0x25b383[_0x7dc9('0x26')][_0x7dc9('0x35')]){_0x5843bf[_0x7dc9('0x34')]=_[_0x7dc9('0x33')](_0x5843bf['where'],{'$or':_[_0x7dc9('0x36')](_0x5843bf[_0x7dc9('0x29')],function(_0x466b02){var _0xfd2612={};_0xfd2612[_0x466b02]={'$like':'%'+_0x25b383['query'][_0x7dc9('0x35')]+'%'};return _0xfd2612;})});}_0x5843bf=_[_0x7dc9('0x33')]({},_0x5843bf,_0x25b383[_0x7dc9('0x37')]);var _0x3876b6={'where':_0x5843bf[_0x7dc9('0x34')]};return db[_0x7dc9('0x22')]['count'](_0x3876b6)['then'](function(_0x3ef9fd){_0x47771b[_0x7dc9('0x16')]=_0x3ef9fd;if(_0x25b383['query'][_0x7dc9('0x38')]){_0x5843bf['include']=[{'all':!![]}];}return db[_0x7dc9('0x22')][_0x7dc9('0x39')](_0x5843bf);})[_0x7dc9('0x1e')](function(_0x5e056e){_0x47771b[_0x7dc9('0x3a')]=_0x5e056e;return _0x47771b;})[_0x7dc9('0x1e')](respondWithFilteredResult(_0x32d032,_0x5843bf))[_0x7dc9('0x3b')](handleError(_0x32d032,null));};exports[_0x7dc9('0x3c')]=function(_0x28ffc0,_0x23499a){var _0xc75f21={'raw':!![],'where':{'id':_0x28ffc0[_0x7dc9('0x3d')]['id']}},_0x50651c={};_0x50651c['model']=_['keys'](db[_0x7dc9('0x22')][_0x7dc9('0x23')]);_0x50651c[_0x7dc9('0x26')]=_[_0x7dc9('0x25')](_0x28ffc0[_0x7dc9('0x26')]);_0x50651c[_0x7dc9('0x30')]=_[_0x7dc9('0x2a')](_0x50651c[_0x7dc9('0x24')],_0x50651c[_0x7dc9('0x26')]);_0xc75f21['attributes']=_[_0x7dc9('0x2a')](_0x50651c[_0x7dc9('0x24')],qs[_0x7dc9('0x2b')](_0x28ffc0[_0x7dc9('0x26')][_0x7dc9('0x2b')]));_0xc75f21[_0x7dc9('0x29')]=_0xc75f21['attributes'][_0x7dc9('0x3e')]?_0xc75f21[_0x7dc9('0x29')]:_0x50651c['model'];if(_0x28ffc0[_0x7dc9('0x26')][_0x7dc9('0x38')]){_0xc75f21[_0x7dc9('0x3f')]=[{'all':!![]}];}_0xc75f21=_['merge']({},_0xc75f21,_0x28ffc0[_0x7dc9('0x37')]);return db['OpenchannelQueueReport']['find'](_0xc75f21)[_0x7dc9('0x1e')](handleEntityNotFound(_0x23499a,null))[_0x7dc9('0x1e')](respondWithResult(_0x23499a,null))[_0x7dc9('0x3b')](handleError(_0x23499a,null));};exports['create']=function(_0x4aea89,_0x415ebd){return db['OpenchannelQueueReport'][_0x7dc9('0x40')](_0x4aea89[_0x7dc9('0x41')],{})['then'](respondWithResult(_0x415ebd,0xc9))[_0x7dc9('0x3b')](handleError(_0x415ebd,null));};exports[_0x7dc9('0x1d')]=function(_0x1f2a6e,_0x154e2d){if(_0x1f2a6e[_0x7dc9('0x41')]['id']){delete _0x1f2a6e[_0x7dc9('0x41')]['id'];}return db[_0x7dc9('0x22')][_0x7dc9('0x42')]({'where':{'id':_0x1f2a6e[_0x7dc9('0x3d')]['id']}})[_0x7dc9('0x1e')](handleEntityNotFound(_0x154e2d,null))[_0x7dc9('0x1e')](saveUpdates(_0x1f2a6e[_0x7dc9('0x41')],null))[_0x7dc9('0x1e')](respondWithResult(_0x154e2d,null))['catch'](handleError(_0x154e2d,null));};exports[_0x7dc9('0x43')]=function(_0x4fcfd5,_0x57993f){return db[_0x7dc9('0x22')][_0x7dc9('0x42')]({'where':{'id':_0x4fcfd5[_0x7dc9('0x3d')]['id']}})[_0x7dc9('0x1e')](handleEntityNotFound(_0x57993f,null))[_0x7dc9('0x1e')](removeEntity(_0x57993f,null))['catch'](handleError(_0x57993f,null));};exports[_0x7dc9('0x44')]=function(_0x2b2142,_0x34f7b1){return db['OpenchannelQueueReport'][_0x7dc9('0x44')]()[_0x7dc9('0x1e')](respondWithResult(_0x34f7b1,null))[_0x7dc9('0x3b')](handleError(_0x34f7b1,null));};
\ No newline at end of file
+var _0xb903=['mustache','util','path','sox','ejs','crypto','jsforce','desk.js','to-csv','../../config/utils','../../config/environment','sendStatus','status','end','count','offset','set','json','apply','reject','update','then','destroy','name','send','OpenchannelQueueReport','rawAttributes','model','keys','query','dateEnd','dateStart','intersection','attributes','fields','nolimit','limit','sort','pick','filters','add','day','merge','filter','where','map','options','includeAll','include','findAll','rows','show','params','length','find','catch','create','body','describe','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xb903,0x185));var _0x3b90=function(_0x7d60d9,_0x573055){_0x7d60d9=_0x7d60d9-0x0;var _0x23f197=_0xb903[_0x7d60d9];return _0x23f197;};'use strict';var pdf=require(_0x3b90('0x0'));var emlformat=require(_0x3b90('0x1'));var rimraf=require(_0x3b90('0x2'));var zipdir=require(_0x3b90('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3b90('0x4'));var moment=require(_0x3b90('0x5'));var BPromise=require(_0x3b90('0x6'));var Mustache=require(_0x3b90('0x7'));var util=require(_0x3b90('0x8'));var path=require(_0x3b90('0x9'));var sox=require(_0x3b90('0xa'));var csv=require('to-csv');var ejs=require(_0x3b90('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x3b90('0xc'));var jsforce=require(_0x3b90('0xd'));var deskjs=require(_0x3b90('0xe'));var toCsv=require(_0x3b90('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0x3b90('0x10'));var config=require(_0x3b90('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x30c49c,_0x233509){_0x233509=_0x233509||0xcc;return function(_0x4bb8f4){if(_0x4bb8f4){return _0x30c49c[_0x3b90('0x12')](_0x233509);}return _0x30c49c[_0x3b90('0x13')](_0x233509)[_0x3b90('0x14')]();};}function respondWithResult(_0x4badcb,_0x5447df){_0x5447df=_0x5447df||0xc8;return function(_0x58c4d1){if(_0x58c4d1){return _0x4badcb['status'](_0x5447df)['json'](_0x58c4d1);}};}function respondWithFilteredResult(_0x3a0a55,_0x2c72fb){return function(_0x4824f9){if(_0x4824f9){var _0x51fb66=_0x4824f9[_0x3b90('0x15')],_0x3725b9=_0x2c72fb[_0x3b90('0x16')],_0x1b6349=_0x2c72fb['offset']+_0x2c72fb['limit'],_0x381a9e;if(_0x1b6349>=_0x51fb66){_0x1b6349=_0x51fb66;_0x381a9e=0xc8;}else{_0x381a9e=0xce;}_0x3a0a55[_0x3b90('0x13')](_0x381a9e);return _0x3a0a55[_0x3b90('0x17')]('Content-Range',_0x3725b9+'-'+_0x1b6349+'/'+_0x51fb66)[_0x3b90('0x18')](_0x4824f9);}return null;};}function patchUpdates(_0x3cf281){return function(_0x11ad7d){try{jsonpatch[_0x3b90('0x19')](_0x11ad7d,_0x3cf281,!![]);}catch(_0x4f388b){return BPromise[_0x3b90('0x1a')](_0x4f388b);}return _0x11ad7d['save']();};}function saveUpdates(_0xd8d873,_0x231690){return function(_0x535894){if(_0x535894){return _0x535894[_0x3b90('0x1b')](_0xd8d873)[_0x3b90('0x1c')](function(_0x3642c0){return _0x3642c0;});}return null;};}function removeEntity(_0x3ce411,_0xc74d57){return function(_0x43deca){if(_0x43deca){return _0x43deca[_0x3b90('0x1d')]()[_0x3b90('0x1c')](function(){_0x3ce411[_0x3b90('0x13')](0xcc)[_0x3b90('0x14')]();});}};}function handleEntityNotFound(_0x4e2175,_0x20b06a){return function(_0x36b93e){if(!_0x36b93e){_0x4e2175[_0x3b90('0x12')](0x194);}return _0x36b93e;};}function handleError(_0x7faee,_0x1227ed){_0x1227ed=_0x1227ed||0x1f4;return function(_0x93b8e7){logger['error'](_0x93b8e7['stack']);if(_0x93b8e7[_0x3b90('0x1e')]){delete _0x93b8e7[_0x3b90('0x1e')];}_0x7faee[_0x3b90('0x13')](_0x1227ed)[_0x3b90('0x1f')](_0x93b8e7);};}exports['index']=function(_0x414462,_0x2936d7){var _0x1787d1={},_0x4caead={},_0x14752c={'count':0x0,'rows':[]};var _0x138d79=db[_0x3b90('0x20')][_0x3b90('0x21')];_0x4caead[_0x3b90('0x22')]=_[_0x3b90('0x23')](_0x138d79);var _0x4b4d33={'dateStart':_0x414462[_0x3b90('0x24')]['dateStart'],'dateEnd':_0x414462[_0x3b90('0x24')][_0x3b90('0x25')]};delete _0x414462[_0x3b90('0x24')][_0x3b90('0x26')];delete _0x414462[_0x3b90('0x24')][_0x3b90('0x25')];_0x4caead[_0x3b90('0x24')]=_[_0x3b90('0x23')](_0x414462['query']);_0x4caead['filters']=_[_0x3b90('0x27')](_0x4caead[_0x3b90('0x22')],_0x4caead[_0x3b90('0x24')]);_0x1787d1[_0x3b90('0x28')]=_['intersection'](_0x4caead['model'],qs[_0x3b90('0x29')](_0x414462[_0x3b90('0x24')][_0x3b90('0x29')]));_0x1787d1['attributes']=_0x1787d1[_0x3b90('0x28')]['length']?_0x1787d1['attributes']:_0x4caead[_0x3b90('0x22')];if(!_0x414462[_0x3b90('0x24')]['hasOwnProperty'](_0x3b90('0x2a'))){_0x1787d1[_0x3b90('0x2b')]=qs[_0x3b90('0x2b')](_0x414462['query']['limit']);_0x1787d1[_0x3b90('0x16')]=qs[_0x3b90('0x16')](_0x414462[_0x3b90('0x24')][_0x3b90('0x16')]);}_0x1787d1['order']=qs['sort'](_0x414462[_0x3b90('0x24')][_0x3b90('0x2c')]);_0x1787d1['where']=qs['filters'](_[_0x3b90('0x2d')](_0x414462[_0x3b90('0x24')],_0x4caead[_0x3b90('0x2e')]));if(_0x4b4d33[_0x3b90('0x26')]){if(_0x4b4d33['dateEnd']){_0x4b4d33[_0x3b90('0x25')]=moment(_0x4b4d33['dateEnd'])[_0x3b90('0x2f')](0x1,_0x3b90('0x30'));}else{_0x4b4d33[_0x3b90('0x25')]=moment(_0x4b4d33[_0x3b90('0x26')])[_0x3b90('0x2f')](0x1,_0x3b90('0x30'));}_[_0x3b90('0x31')](_0x1787d1['where'],{'createdAt':{'$gte':_0x4b4d33[_0x3b90('0x26')],'$lte':_0x4b4d33[_0x3b90('0x25')]}});}if(_0x414462[_0x3b90('0x24')][_0x3b90('0x32')]){_0x1787d1[_0x3b90('0x33')]=_[_0x3b90('0x31')](_0x1787d1[_0x3b90('0x33')],{'$or':_[_0x3b90('0x34')](_0x1787d1[_0x3b90('0x28')],function(_0x5063b9){var _0x369d0d={};_0x369d0d[_0x5063b9]={'$like':'%'+_0x414462[_0x3b90('0x24')][_0x3b90('0x32')]+'%'};return _0x369d0d;})});}_0x1787d1=_[_0x3b90('0x31')]({},_0x1787d1,_0x414462[_0x3b90('0x35')]);var _0xb71509={'where':_0x1787d1[_0x3b90('0x33')]};return db[_0x3b90('0x20')][_0x3b90('0x15')](_0xb71509)[_0x3b90('0x1c')](function(_0x47592a){_0x14752c[_0x3b90('0x15')]=_0x47592a;if(_0x414462[_0x3b90('0x24')][_0x3b90('0x36')]){_0x1787d1[_0x3b90('0x37')]=[{'all':!![]}];}return db[_0x3b90('0x20')][_0x3b90('0x38')](_0x1787d1);})[_0x3b90('0x1c')](function(_0x33056a){_0x14752c[_0x3b90('0x39')]=_0x33056a;return _0x14752c;})[_0x3b90('0x1c')](respondWithFilteredResult(_0x2936d7,_0x1787d1))['catch'](handleError(_0x2936d7,null));};exports[_0x3b90('0x3a')]=function(_0x3890c9,_0x1da52f){var _0x1b4631={'raw':!![],'where':{'id':_0x3890c9[_0x3b90('0x3b')]['id']}},_0x5a48a9={};_0x5a48a9['model']=_['keys'](db[_0x3b90('0x20')][_0x3b90('0x21')]);_0x5a48a9['query']=_[_0x3b90('0x23')](_0x3890c9[_0x3b90('0x24')]);_0x5a48a9[_0x3b90('0x2e')]=_[_0x3b90('0x27')](_0x5a48a9[_0x3b90('0x22')],_0x5a48a9[_0x3b90('0x24')]);_0x1b4631[_0x3b90('0x28')]=_[_0x3b90('0x27')](_0x5a48a9[_0x3b90('0x22')],qs['fields'](_0x3890c9[_0x3b90('0x24')][_0x3b90('0x29')]));_0x1b4631['attributes']=_0x1b4631[_0x3b90('0x28')][_0x3b90('0x3c')]?_0x1b4631[_0x3b90('0x28')]:_0x5a48a9[_0x3b90('0x22')];if(_0x3890c9[_0x3b90('0x24')]['includeAll']){_0x1b4631['include']=[{'all':!![]}];}_0x1b4631=_[_0x3b90('0x31')]({},_0x1b4631,_0x3890c9['options']);return db[_0x3b90('0x20')][_0x3b90('0x3d')](_0x1b4631)[_0x3b90('0x1c')](handleEntityNotFound(_0x1da52f,null))[_0x3b90('0x1c')](respondWithResult(_0x1da52f,null))[_0x3b90('0x3e')](handleError(_0x1da52f,null));};exports['create']=function(_0x5aeaee,_0x15d262){return db[_0x3b90('0x20')][_0x3b90('0x3f')](_0x5aeaee['body'],{})[_0x3b90('0x1c')](respondWithResult(_0x15d262,0xc9))[_0x3b90('0x3e')](handleError(_0x15d262,null));};exports[_0x3b90('0x1b')]=function(_0x1aaa2b,_0x41e951){if(_0x1aaa2b[_0x3b90('0x40')]['id']){delete _0x1aaa2b[_0x3b90('0x40')]['id'];}return db[_0x3b90('0x20')][_0x3b90('0x3d')]({'where':{'id':_0x1aaa2b['params']['id']}})[_0x3b90('0x1c')](handleEntityNotFound(_0x41e951,null))[_0x3b90('0x1c')](saveUpdates(_0x1aaa2b[_0x3b90('0x40')],null))['then'](respondWithResult(_0x41e951,null))[_0x3b90('0x3e')](handleError(_0x41e951,null));};exports['destroy']=function(_0x288fbb,_0x3fc270){return db[_0x3b90('0x20')]['find']({'where':{'id':_0x288fbb[_0x3b90('0x3b')]['id']}})[_0x3b90('0x1c')](handleEntityNotFound(_0x3fc270,null))['then'](removeEntity(_0x3fc270,null))['catch'](handleError(_0x3fc270,null));};exports[_0x3b90('0x41')]=function(_0x24337e,_0x1eb16e){return db[_0x3b90('0x20')]['describe']()['then'](respondWithResult(_0x1eb16e,null))[_0x3b90('0x3e')](handleError(_0x1eb16e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7aaf=['exports','define','OpenchannelQueueReport','report_openchannel_queue','uniqueid','lodash','../../config/logger','api','request-promise'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x7aaf,0x1eb));var _0xf7aa=function(_0x59f9e9,_0x28fef0){_0x59f9e9=_0x59f9e9-0x0;var _0x40f4e1=_0x7aaf[_0x59f9e9];return _0x40f4e1;};'use strict';var _=require(_0xf7aa('0x0'));var util=require('util');var logger=require(_0xf7aa('0x1'))(_0xf7aa('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xf7aa('0x3'));var attributes=require('./openchannelQueueReport.attributes');module[_0xf7aa('0x4')]=function(_0x5ee53a,_0x19cbb7){return _0x5ee53a[_0xf7aa('0x5')](_0xf7aa('0x6'),attributes,{'tableName':_0xf7aa('0x7'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xf7aa('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x74f3=['bluebird','request-promise','./openchannelQueueReport.attributes','OpenchannelQueueReport','report_openchannel_queue','uniqueid','lodash','util','../../config/logger','moment'];(function(_0x15924b,_0xba5d6f){var _0x1ef651=function(_0xc7020){while(--_0xc7020){_0x15924b['push'](_0x15924b['shift']());}};_0x1ef651(++_0xba5d6f);}(_0x74f3,0x164));var _0x374f=function(_0x3cc442,_0x4b0c53){_0x3cc442=_0x3cc442-0x0;var _0x2fed3f=_0x74f3[_0x3cc442];return _0x2fed3f;};'use strict';var _=require(_0x374f('0x0'));var util=require(_0x374f('0x1'));var logger=require(_0x374f('0x2'))('api');var moment=require(_0x374f('0x3'));var BPromise=require(_0x374f('0x4'));var rp=require(_0x374f('0x5'));var attributes=require(_0x374f('0x6'));module['exports']=function(_0x3db0a,_0xc045e2){return _0x3db0a['define'](_0x374f('0x7'),attributes,{'tableName':_0x374f('0x8'),'paranoid':![],'indexes':[{'name':_0x374f('0x9'),'fields':[_0x374f('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44d9=['lodash','util','moment','bluebird','randomstring','../../config/logger','rpc','jayson/promise','http','request','info','OpenchannelQueueReport,\x20%s,\x20%s','debug','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','options','raw','then','UpdateOpenchannelQueueReport','update','body','attributes','limit'];(function(_0x2c45ee,_0x2a8b1d){var _0x113ed9=function(_0x350623){while(--_0x350623){_0x2c45ee['push'](_0x2c45ee['shift']());}};_0x113ed9(++_0x2a8b1d);}(_0x44d9,0x155));var _0x944d=function(_0x520a03,_0x4f4065){_0x520a03=_0x520a03-0x0;var _0x218e73=_0x44d9[_0x520a03];return _0x218e73;};'use strict';var _=require(_0x944d('0x0'));var util=require(_0x944d('0x1'));var moment=require(_0x944d('0x2'));var BPromise=require(_0x944d('0x3'));var rs=require(_0x944d('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x944d('0x5'))(_0x944d('0x6'));var config=require('../../config/environment');var jayson=require(_0x944d('0x7'));var client=jayson['client'][_0x944d('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x377950,_0x3c335c,_0x3d7d4a){return new BPromise(function(_0x10538c,_0x3ad613){return client[_0x944d('0x9')](_0x377950,_0x3d7d4a)['then'](function(_0x19187e){logger[_0x944d('0xa')](_0x944d('0xb'),_0x3c335c,'request\x20sent');logger[_0x944d('0xc')](_0x944d('0xd'),_0x3c335c,_0x944d('0xe'),JSON[_0x944d('0xf')](_0x19187e));if(_0x19187e[_0x944d('0x10')]){if(_0x19187e['error'][_0x944d('0x11')]===0x1f4){logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0x3c335c,_0x19187e[_0x944d('0x10')][_0x944d('0x12')]);return _0x3ad613(_0x19187e[_0x944d('0x10')]['message']);}logger[_0x944d('0x10')](_0x944d('0xb'),_0x3c335c,_0x19187e[_0x944d('0x10')]['message']);return _0x10538c(_0x19187e[_0x944d('0x10')][_0x944d('0x12')]);}else{logger[_0x944d('0xa')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x3c335c,_0x944d('0xe'));_0x10538c(_0x19187e[_0x944d('0x13')]['message']);}})[_0x944d('0x14')](function(_0x4d795b){logger[_0x944d('0x10')](_0x944d('0xb'),_0x3c335c,_0x4d795b);_0x3ad613(_0x4d795b);});});}exports[_0x944d('0x15')]=function(_0x3e6d10){var _0xe095fa=this;return new Promise(function(_0x443515,_0x21dcf1){return db[_0x944d('0x16')]['create'](_0x3e6d10['body'],{'raw':_0x3e6d10[_0x944d('0x17')]?_0x3e6d10['options'][_0x944d('0x18')]===undefined?!![]:![]:!![]})[_0x944d('0x19')](function(_0x477fc6){logger[_0x944d('0xa')](_0x944d('0x15'),_0x3e6d10);logger['debug'](_0x944d('0x15'),_0x3e6d10,JSON[_0x944d('0xf')](_0x477fc6));_0x443515(_0x477fc6);})[_0x944d('0x14')](function(_0x35b1e3){logger[_0x944d('0x10')](_0x944d('0x15'),_0x35b1e3[_0x944d('0x12')],_0x3e6d10);_0x21dcf1(_0xe095fa[_0x944d('0x10')](0x1f4,_0x35b1e3[_0x944d('0x12')]));});});};exports[_0x944d('0x1a')]=function(_0x46bc06){var _0x22d463=this;return new Promise(function(_0x2a2f22,_0x575f68){return db[_0x944d('0x16')][_0x944d('0x1b')](_0x46bc06[_0x944d('0x1c')],{'raw':_0x46bc06[_0x944d('0x17')]?_0x46bc06[_0x944d('0x17')][_0x944d('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x46bc06[_0x944d('0x17')]?_0x46bc06[_0x944d('0x17')]['where']||null:null,'attributes':_0x46bc06[_0x944d('0x17')]?_0x46bc06[_0x944d('0x17')][_0x944d('0x1d')]||null:null,'limit':_0x46bc06['options']?_0x46bc06[_0x944d('0x17')][_0x944d('0x1e')]||null:null})['then'](function(_0x661b81){logger[_0x944d('0xa')]('UpdateOpenchannelQueueReport',_0x46bc06);logger[_0x944d('0xc')]('UpdateOpenchannelQueueReport',_0x46bc06,JSON[_0x944d('0xf')](_0x661b81));_0x2a2f22(_0x661b81);})[_0x944d('0x14')](function(_0x5848c1){logger[_0x944d('0x10')](_0x944d('0x1a'),_0x5848c1[_0x944d('0x12')],_0x46bc06);_0x575f68(_0x22d463[_0x944d('0x10')](0x1f4,_0x5848c1[_0x944d('0x12')]));});});};
\ No newline at end of file
+var _0x0446=['request\x20sent','debug','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','OpenchannelQueueReport,\x20%s,\x20%s','result','catch','OpenchannelQueueReport','create','body','options','raw','CreateOpenchannelQueueReport','UpdateOpenchannelQueueReport','update','where','attributes','limit','lodash','util','moment','bluebird','../../config/utils','rpc','../../config/environment','jayson/promise','client','then','info'];(function(_0x2f32c4,_0x531dc6){var _0x3f3018=function(_0x406998){while(--_0x406998){_0x2f32c4['push'](_0x2f32c4['shift']());}};_0x3f3018(++_0x531dc6);}(_0x0446,0xb5));var _0x6044=function(_0x4ba297,_0x4ddb04){_0x4ba297=_0x4ba297-0x0;var _0x2ede01=_0x0446[_0x4ba297];return _0x2ede01;};'use strict';var _=require(_0x6044('0x0'));var util=require(_0x6044('0x1'));var moment=require(_0x6044('0x2'));var BPromise=require(_0x6044('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x6044('0x4'));var logger=require('../../config/logger')(_0x6044('0x5'));var config=require(_0x6044('0x6'));var jayson=require(_0x6044('0x7'));var client=jayson[_0x6044('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x36cf01,_0x2b7799,_0x5d0fda){return new BPromise(function(_0x40af55,_0x41767b){return client['request'](_0x36cf01,_0x5d0fda)[_0x6044('0x9')](function(_0x4ac50d){logger[_0x6044('0xa')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x2b7799,_0x6044('0xb'));logger[_0x6044('0xc')](_0x6044('0xd'),_0x2b7799,_0x6044('0xb'),JSON[_0x6044('0xe')](_0x4ac50d));if(_0x4ac50d[_0x6044('0xf')]){if(_0x4ac50d[_0x6044('0xf')][_0x6044('0x10')]===0x1f4){logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0x2b7799,_0x4ac50d[_0x6044('0xf')][_0x6044('0x11')]);return _0x41767b(_0x4ac50d[_0x6044('0xf')]['message']);}logger[_0x6044('0xf')](_0x6044('0x12'),_0x2b7799,_0x4ac50d['error'][_0x6044('0x11')]);return _0x40af55(_0x4ac50d[_0x6044('0xf')]['message']);}else{logger[_0x6044('0xa')](_0x6044('0x12'),_0x2b7799,_0x6044('0xb'));_0x40af55(_0x4ac50d[_0x6044('0x13')][_0x6044('0x11')]);}})[_0x6044('0x14')](function(_0x3b0b46){logger[_0x6044('0xf')](_0x6044('0x12'),_0x2b7799,_0x3b0b46);_0x41767b(_0x3b0b46);});});}exports['CreateOpenchannelQueueReport']=function(_0x5c2f30){var _0x6735da=this;return new Promise(function(_0x3fe3eb,_0x5d941b){return db[_0x6044('0x15')][_0x6044('0x16')](_0x5c2f30[_0x6044('0x17')],{'raw':_0x5c2f30['options']?_0x5c2f30[_0x6044('0x18')][_0x6044('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x2f19cb){logger[_0x6044('0xa')](_0x6044('0x1a'),_0x5c2f30);logger[_0x6044('0xc')](_0x6044('0x1a'),_0x5c2f30,JSON[_0x6044('0xe')](_0x2f19cb));_0x3fe3eb(_0x2f19cb);})[_0x6044('0x14')](function(_0x412c0e){logger[_0x6044('0xf')](_0x6044('0x1a'),_0x412c0e['message'],_0x5c2f30);_0x5d941b(_0x6735da[_0x6044('0xf')](0x1f4,_0x412c0e['message']));});});};exports[_0x6044('0x1b')]=function(_0x1b114a){var _0x1bbb43=this;return new Promise(function(_0x1153f0,_0x1f4821){return db[_0x6044('0x15')][_0x6044('0x1c')](_0x1b114a[_0x6044('0x17')],{'raw':_0x1b114a[_0x6044('0x18')]?_0x1b114a['options'][_0x6044('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1b114a[_0x6044('0x18')]?_0x1b114a['options'][_0x6044('0x1d')]||null:null,'attributes':_0x1b114a[_0x6044('0x18')]?_0x1b114a['options'][_0x6044('0x1e')]||null:null,'limit':_0x1b114a[_0x6044('0x18')]?_0x1b114a[_0x6044('0x18')][_0x6044('0x1f')]||null:null})[_0x6044('0x9')](function(_0x219a7b){logger[_0x6044('0xa')](_0x6044('0x1b'),_0x1b114a);logger[_0x6044('0xc')]('UpdateOpenchannelQueueReport',_0x1b114a,JSON[_0x6044('0xe')](_0x219a7b));_0x1153f0(_0x219a7b);})[_0x6044('0x14')](function(_0x35e958){logger[_0x6044('0xf')](_0x6044('0x1b'),_0x35e958[_0x6044('0x11')],_0x1b114a);_0x1f4821(_0x1bbb43[_0x6044('0xf')](0x1f4,_0x35e958[_0x6044('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4068=['exports','multer','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get','isAuthenticated','index','/describe','show','post','put','/:id','delete','destroy'];(function(_0x1e8ccc,_0x93a752){var _0x40edeb=function(_0x556ff6){while(--_0x556ff6){_0x1e8ccc['push'](_0x1e8ccc['shift']());}};_0x40edeb(++_0x93a752);}(_0x4068,0x1ef));var _0x8406=function(_0x424368,_0x3c1ece){_0x424368=_0x424368-0x0;var _0x54902d=_0x4068[_0x424368];return _0x54902d;};'use strict';var multer=require(_0x8406('0x0'));var util=require(_0x8406('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x8406('0x2'));var router=express[_0x8406('0x3')]();var auth=require(_0x8406('0x4'));var interaction=require(_0x8406('0x5'));var config=require(_0x8406('0x6'));var controller=require(_0x8406('0x7'));router[_0x8406('0x8')]('/',auth[_0x8406('0x9')](),controller[_0x8406('0xa')]);router['get'](_0x8406('0xb'),auth[_0x8406('0x9')](),controller['describe']);router[_0x8406('0x8')]('/:id',auth[_0x8406('0x9')](),controller[_0x8406('0xc')]);router[_0x8406('0xd')]('/',auth[_0x8406('0x9')](),controller['create']);router[_0x8406('0xe')](_0x8406('0xf'),auth[_0x8406('0x9')](),controller['update']);router[_0x8406('0x10')](_0x8406('0xf'),auth[_0x8406('0x9')](),controller[_0x8406('0x11')]);module[_0x8406('0x12')]=router;
\ No newline at end of file
+var _0x9baf=['connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get','isAuthenticated','index','/describe','describe','show','post','create','put','/:id','update','delete','destroy','exports','multer','util'];(function(_0x56916d,_0x37b935){var _0x2b7f1f=function(_0x206eb1){while(--_0x206eb1){_0x56916d['push'](_0x56916d['shift']());}};_0x2b7f1f(++_0x37b935);}(_0x9baf,0xc4));var _0xf9ba=function(_0x46d7df,_0x503be2){_0x46d7df=_0x46d7df-0x0;var _0x58b3b2=_0x9baf[_0x46d7df];return _0x58b3b2;};'use strict';var multer=require(_0xf9ba('0x0'));var util=require(_0xf9ba('0x1'));var path=require('path');var timeout=require(_0xf9ba('0x2'));var express=require(_0xf9ba('0x3'));var router=express['Router']();var auth=require(_0xf9ba('0x4'));var interaction=require(_0xf9ba('0x5'));var config=require(_0xf9ba('0x6'));var controller=require(_0xf9ba('0x7'));router[_0xf9ba('0x8')]('/',auth[_0xf9ba('0x9')](),controller[_0xf9ba('0xa')]);router[_0xf9ba('0x8')](_0xf9ba('0xb'),auth['isAuthenticated'](),controller[_0xf9ba('0xc')]);router[_0xf9ba('0x8')]('/:id',auth[_0xf9ba('0x9')](),controller[_0xf9ba('0xd')]);router[_0xf9ba('0xe')]('/',auth[_0xf9ba('0x9')](),controller[_0xf9ba('0xf')]);router[_0xf9ba('0x10')](_0xf9ba('0x11'),auth['isAuthenticated'](),controller[_0xf9ba('0x12')]);router[_0xf9ba('0x13')](_0xf9ba('0x11'),auth[_0xf9ba('0x9')](),controller[_0xf9ba('0x14')]);module[_0xf9ba('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd3c=['exports','STRING','ENUM','account','agent','queue','DATE','NOW','moment','sequelize'];(function(_0x53a719,_0x4d5465){var _0x13f768=function(_0x3a4d78){while(--_0x3a4d78){_0x53a719['push'](_0x53a719['shift']());}};_0x13f768(++_0x4d5465);}(_0xdd3c,0x76));var _0xcdd3=function(_0x43ea23,_0x47785b){_0x43ea23=_0x43ea23-0x0;var _0x2d78cd=_0xdd3c[_0x43ea23];return _0x2d78cd;};'use strict';var moment=require(_0xcdd3('0x0'));var Sequelize=require(_0xcdd3('0x1'));module[_0xcdd3('0x2')]={'uniqueid':{'type':Sequelize[_0xcdd3('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xcdd3('0x4')](_0xcdd3('0x5'),_0xcdd3('0x6'),_0xcdd3('0x7')),'allowNull':![],'defaultValue':_0xcdd3('0x7')},'transferredAt':{'type':Sequelize[_0xcdd3('0x8')],'allowNull':![],'defaultValue':Sequelize[_0xcdd3('0x9')]}};
\ No newline at end of file
+var _0xff09=['DATE','NOW','moment','sequelize','exports','STRING','ENUM','queue'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xff09,0x11a));var _0x9ff0=function(_0x21fd59,_0x367f6c){_0x21fd59=_0x21fd59-0x0;var _0x4bc76f=_0xff09[_0x21fd59];return _0x4bc76f;};'use strict';var moment=require(_0x9ff0('0x0'));var Sequelize=require(_0x9ff0('0x1'));module[_0x9ff0('0x2')]={'uniqueid':{'type':Sequelize[_0x9ff0('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0x9ff0('0x4')]('account','agent',_0x9ff0('0x5')),'allowNull':![],'defaultValue':_0x9ff0('0x5')},'transferredAt':{'type':Sequelize[_0x9ff0('0x6')],'allowNull':![],'defaultValue':Sequelize[_0x9ff0('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5643=['rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','day','merge','filter','map','options','findAll','rows','catch','params','includeAll','include','find','create','body','describe','request-promise','moment','bluebird','mustache','path','sox','ejs','crypto','jsforce','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','OpenchannelTransferReport'];(function(_0x29616b,_0x1fd3a6){var _0x1d7029=function(_0x19fd7f){while(--_0x19fd7f){_0x29616b['push'](_0x29616b['shift']());}};_0x1d7029(++_0x1fd3a6);}(_0x5643,0x162));var _0x3564=function(_0xbd3d0f,_0x4c9ce3){_0xbd3d0f=_0xbd3d0f-0x0;var _0x4b9bd6=_0x5643[_0xbd3d0f];return _0x4b9bd6;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3564('0x0'));var moment=require(_0x3564('0x1'));var BPromise=require(_0x3564('0x2'));var Mustache=require(_0x3564('0x3'));var util=require('util');var path=require(_0x3564('0x4'));var sox=require(_0x3564('0x5'));var csv=require('to-csv');var ejs=require(_0x3564('0x6'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x3564('0x7'));var jsforce=require(_0x3564('0x8'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3564('0x9'));var Papa=require('papaparse');var qs=require(_0x3564('0xa'));var logger=require(_0x3564('0xb'))(_0x3564('0xc'));var utils=require(_0x3564('0xd'));var config=require(_0x3564('0xe'));var db=require(_0x3564('0xf'))['db'];function respondWithStatusCode(_0x4a6721,_0x4f839e){_0x4f839e=_0x4f839e||0xcc;return function(_0x165470){if(_0x165470){return _0x4a6721[_0x3564('0x10')](_0x4f839e);}return _0x4a6721[_0x3564('0x11')](_0x4f839e)[_0x3564('0x12')]();};}function respondWithResult(_0x1c8a7a,_0x37e721){_0x37e721=_0x37e721||0xc8;return function(_0x2975a8){if(_0x2975a8){return _0x1c8a7a[_0x3564('0x11')](_0x37e721)['json'](_0x2975a8);}};}function respondWithFilteredResult(_0x6e5003,_0x22d38d){return function(_0x47103d){if(_0x47103d){var _0x118c87=_0x47103d[_0x3564('0x13')],_0x552373=_0x22d38d[_0x3564('0x14')],_0x336686=_0x22d38d[_0x3564('0x14')]+_0x22d38d[_0x3564('0x15')],_0x4f77f3;if(_0x336686>=_0x118c87){_0x336686=_0x118c87;_0x4f77f3=0xc8;}else{_0x4f77f3=0xce;}_0x6e5003['status'](_0x4f77f3);return _0x6e5003[_0x3564('0x16')](_0x3564('0x17'),_0x552373+'-'+_0x336686+'/'+_0x118c87)['json'](_0x47103d);}return null;};}function patchUpdates(_0xf7cb97){return function(_0x1fbe68){try{jsonpatch[_0x3564('0x18')](_0x1fbe68,_0xf7cb97,!![]);}catch(_0x4b6a5f){return BPromise[_0x3564('0x19')](_0x4b6a5f);}return _0x1fbe68[_0x3564('0x1a')]();};}function saveUpdates(_0x1d26ea,_0x1a8909){return function(_0x379e32){if(_0x379e32){return _0x379e32[_0x3564('0x1b')](_0x1d26ea)[_0x3564('0x1c')](function(_0x585d44){return _0x585d44;});}return null;};}function removeEntity(_0x1b75ee,_0x62aaed){return function(_0x209117){if(_0x209117){return _0x209117[_0x3564('0x1d')]()[_0x3564('0x1c')](function(){_0x1b75ee[_0x3564('0x11')](0xcc)[_0x3564('0x12')]();});}};}function handleEntityNotFound(_0x3695f4,_0x57d825){return function(_0x1479c7){if(!_0x1479c7){_0x3695f4[_0x3564('0x10')](0x194);}return _0x1479c7;};}function handleError(_0x410fc3,_0x235682){_0x235682=_0x235682||0x1f4;return function(_0x17309a){logger[_0x3564('0x1e')](_0x17309a[_0x3564('0x1f')]);if(_0x17309a[_0x3564('0x20')]){delete _0x17309a[_0x3564('0x20')];}_0x410fc3[_0x3564('0x11')](_0x235682)[_0x3564('0x21')](_0x17309a);};}exports[_0x3564('0x22')]=function(_0x7c1778,_0x472f10){var _0x33b46c={},_0x11fb12={},_0x3dde1b={'count':0x0,'rows':[]};var _0x5dfea9=db[_0x3564('0x23')][_0x3564('0x24')];_0x11fb12[_0x3564('0x25')]=_[_0x3564('0x26')](_0x5dfea9);var _0x29e948={'dateStart':_0x7c1778[_0x3564('0x27')][_0x3564('0x28')],'dateEnd':_0x7c1778[_0x3564('0x27')][_0x3564('0x29')]};delete _0x7c1778['query'][_0x3564('0x28')];delete _0x7c1778[_0x3564('0x27')][_0x3564('0x29')];_0x11fb12[_0x3564('0x27')]=_[_0x3564('0x26')](_0x7c1778['query']);_0x11fb12[_0x3564('0x2a')]=_[_0x3564('0x2b')](_0x11fb12[_0x3564('0x25')],_0x11fb12[_0x3564('0x27')]);_0x33b46c[_0x3564('0x2c')]=_['intersection'](_0x11fb12[_0x3564('0x25')],qs[_0x3564('0x2d')](_0x7c1778[_0x3564('0x27')][_0x3564('0x2d')]));_0x33b46c[_0x3564('0x2c')]=_0x33b46c[_0x3564('0x2c')]['length']?_0x33b46c[_0x3564('0x2c')]:_0x11fb12[_0x3564('0x25')];if(!_0x7c1778[_0x3564('0x27')][_0x3564('0x2e')]('nolimit')){_0x33b46c[_0x3564('0x15')]=qs[_0x3564('0x15')](_0x7c1778[_0x3564('0x27')][_0x3564('0x15')]);_0x33b46c[_0x3564('0x14')]=qs[_0x3564('0x14')](_0x7c1778[_0x3564('0x27')]['offset']);}_0x33b46c[_0x3564('0x2f')]=qs[_0x3564('0x30')](_0x7c1778[_0x3564('0x27')]['sort']);_0x33b46c[_0x3564('0x31')]=qs[_0x3564('0x2a')](_['pick'](_0x7c1778[_0x3564('0x27')],_0x11fb12[_0x3564('0x2a')]));if(_0x29e948['dateStart']){if(_0x29e948[_0x3564('0x29')]){_0x29e948['dateEnd']=moment(_0x29e948['dateEnd'])['add'](0x1,_0x3564('0x32'));}else{_0x29e948[_0x3564('0x29')]=moment(_0x29e948[_0x3564('0x28')])['add'](0x1,_0x3564('0x32'));}_[_0x3564('0x33')](_0x33b46c['where'],{'createdAt':{'$gte':_0x29e948[_0x3564('0x28')],'$lte':_0x29e948[_0x3564('0x29')]}});}if(_0x7c1778[_0x3564('0x27')][_0x3564('0x34')]){_0x33b46c[_0x3564('0x31')]=_[_0x3564('0x33')](_0x33b46c[_0x3564('0x31')],{'$or':_[_0x3564('0x35')](_0x33b46c[_0x3564('0x2c')],function(_0x16212c){var _0x5d2672={};_0x5d2672[_0x16212c]={'$like':'%'+_0x7c1778[_0x3564('0x27')][_0x3564('0x34')]+'%'};return _0x5d2672;})});}_0x33b46c=_[_0x3564('0x33')]({},_0x33b46c,_0x7c1778[_0x3564('0x36')]);var _0x18aeed={'where':_0x33b46c[_0x3564('0x31')]};return db['OpenchannelTransferReport'][_0x3564('0x13')](_0x18aeed)['then'](function(_0x416cf6){_0x3dde1b[_0x3564('0x13')]=_0x416cf6;if(_0x7c1778[_0x3564('0x27')]['includeAll']){_0x33b46c['include']=[{'all':!![]}];}return db[_0x3564('0x23')][_0x3564('0x37')](_0x33b46c);})[_0x3564('0x1c')](function(_0x54eef0){_0x3dde1b[_0x3564('0x38')]=_0x54eef0;return _0x3dde1b;})['then'](respondWithFilteredResult(_0x472f10,_0x33b46c))[_0x3564('0x39')](handleError(_0x472f10,null));};exports['show']=function(_0x529a4d,_0x4c4265){var _0x130aa9={'raw':!![],'where':{'id':_0x529a4d[_0x3564('0x3a')]['id']}},_0x250bab={};_0x250bab[_0x3564('0x25')]=_[_0x3564('0x26')](db[_0x3564('0x23')][_0x3564('0x24')]);_0x250bab[_0x3564('0x27')]=_['keys'](_0x529a4d['query']);_0x250bab[_0x3564('0x2a')]=_['intersection'](_0x250bab[_0x3564('0x25')],_0x250bab['query']);_0x130aa9[_0x3564('0x2c')]=_[_0x3564('0x2b')](_0x250bab[_0x3564('0x25')],qs['fields'](_0x529a4d[_0x3564('0x27')][_0x3564('0x2d')]));_0x130aa9[_0x3564('0x2c')]=_0x130aa9[_0x3564('0x2c')]['length']?_0x130aa9[_0x3564('0x2c')]:_0x250bab['model'];if(_0x529a4d[_0x3564('0x27')][_0x3564('0x3b')]){_0x130aa9[_0x3564('0x3c')]=[{'all':!![]}];}_0x130aa9=_[_0x3564('0x33')]({},_0x130aa9,_0x529a4d['options']);return db[_0x3564('0x23')][_0x3564('0x3d')](_0x130aa9)[_0x3564('0x1c')](handleEntityNotFound(_0x4c4265,null))[_0x3564('0x1c')](respondWithResult(_0x4c4265,null))[_0x3564('0x39')](handleError(_0x4c4265,null));};exports[_0x3564('0x3e')]=function(_0x1a2c1a,_0x4bac5c){return db[_0x3564('0x23')][_0x3564('0x3e')](_0x1a2c1a[_0x3564('0x3f')],{})[_0x3564('0x1c')](respondWithResult(_0x4bac5c,0xc9))['catch'](handleError(_0x4bac5c,null));};exports[_0x3564('0x1b')]=function(_0x3ab08e,_0x334db6){if(_0x3ab08e['body']['id']){delete _0x3ab08e[_0x3564('0x3f')]['id'];}return db[_0x3564('0x23')][_0x3564('0x3d')]({'where':{'id':_0x3ab08e['params']['id']}})[_0x3564('0x1c')](handleEntityNotFound(_0x334db6,null))['then'](saveUpdates(_0x3ab08e[_0x3564('0x3f')],null))['then'](respondWithResult(_0x334db6,null))[_0x3564('0x39')](handleError(_0x334db6,null));};exports[_0x3564('0x1d')]=function(_0x16903f,_0x586adc){return db[_0x3564('0x23')][_0x3564('0x3d')]({'where':{'id':_0x16903f['params']['id']}})['then'](handleEntityNotFound(_0x586adc,null))[_0x3564('0x1c')](removeEntity(_0x586adc,null))['catch'](handleError(_0x586adc,null));};exports[_0x3564('0x40')]=function(_0x285637,_0x264a54){return db[_0x3564('0x23')][_0x3564('0x40')]()['then'](respondWithResult(_0x264a54,null))[_0x3564('0x39')](handleError(_0x264a54,null));};
\ No newline at end of file
+var _0x5a43=['fields','length','nolimit','order','sort','pick','add','day','merge','where','filter','map','options','count','includeAll','include','OpenchannelTransferReport','findAll','rows','catch','show','params','find','create','body','describe','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','api','status','end','json','offset','limit','apply','reject','save','update','destroy','then','sendStatus','error','name','send','index','rawAttributes','model','keys','dateEnd','query','dateStart','filters','attributes'];(function(_0x4becc5,_0x22da50){var _0x3258ca=function(_0x5451a2){while(--_0x5451a2){_0x4becc5['push'](_0x4becc5['shift']());}};_0x3258ca(++_0x22da50);}(_0x5a43,0x12a));var _0x35a4=function(_0x283245,_0x41560e){_0x283245=_0x283245-0x0;var _0x3e6286=_0x5a43[_0x283245];return _0x3e6286;};'use strict';var pdf=require(_0x35a4('0x0'));var emlformat=require(_0x35a4('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x35a4('0x2'));var jsonpatch=require(_0x35a4('0x3'));var rp=require('request-promise');var moment=require(_0x35a4('0x4'));var BPromise=require(_0x35a4('0x5'));var Mustache=require('mustache');var util=require(_0x35a4('0x6'));var path=require('path');var sox=require(_0x35a4('0x7'));var csv=require(_0x35a4('0x8'));var ejs=require(_0x35a4('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x35a4('0xa'));var crypto=require(_0x35a4('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x35a4('0xc'));var toCsv=require('to-csv');var querystring=require(_0x35a4('0xd'));var Papa=require(_0x35a4('0xe'));var Redis=require(_0x35a4('0xf'));var qs=require(_0x35a4('0x10'));var logger=require('../../config/logger')(_0x35a4('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5c3f13,_0x176de0){_0x176de0=_0x176de0||0xcc;return function(_0x2785c8){if(_0x2785c8){return _0x5c3f13['sendStatus'](_0x176de0);}return _0x5c3f13[_0x35a4('0x12')](_0x176de0)[_0x35a4('0x13')]();};}function respondWithResult(_0xc70874,_0x2f0c52){_0x2f0c52=_0x2f0c52||0xc8;return function(_0x47cf5d){if(_0x47cf5d){return _0xc70874[_0x35a4('0x12')](_0x2f0c52)[_0x35a4('0x14')](_0x47cf5d);}};}function respondWithFilteredResult(_0x25ca0b,_0x34f105){return function(_0xf176c6){if(_0xf176c6){var _0xf7091f=_0xf176c6['count'],_0x1c8794=_0x34f105[_0x35a4('0x15')],_0x28310e=_0x34f105['offset']+_0x34f105[_0x35a4('0x16')],_0x4482d9;if(_0x28310e>=_0xf7091f){_0x28310e=_0xf7091f;_0x4482d9=0xc8;}else{_0x4482d9=0xce;}_0x25ca0b[_0x35a4('0x12')](_0x4482d9);return _0x25ca0b['set']('Content-Range',_0x1c8794+'-'+_0x28310e+'/'+_0xf7091f)[_0x35a4('0x14')](_0xf176c6);}return null;};}function patchUpdates(_0x55b841){return function(_0x3b7d13){try{jsonpatch[_0x35a4('0x17')](_0x3b7d13,_0x55b841,!![]);}catch(_0x5a6ab1){return BPromise[_0x35a4('0x18')](_0x5a6ab1);}return _0x3b7d13[_0x35a4('0x19')]();};}function saveUpdates(_0x47d526,_0x323446){return function(_0x2e29ee){if(_0x2e29ee){return _0x2e29ee[_0x35a4('0x1a')](_0x47d526)['then'](function(_0x199afd){return _0x199afd;});}return null;};}function removeEntity(_0x288b20,_0x57e2db){return function(_0x565971){if(_0x565971){return _0x565971[_0x35a4('0x1b')]()[_0x35a4('0x1c')](function(){_0x288b20[_0x35a4('0x12')](0xcc)[_0x35a4('0x13')]();});}};}function handleEntityNotFound(_0x3e0cbf,_0x1bb24c){return function(_0x522fb3){if(!_0x522fb3){_0x3e0cbf[_0x35a4('0x1d')](0x194);}return _0x522fb3;};}function handleError(_0x95a379,_0x52161f){_0x52161f=_0x52161f||0x1f4;return function(_0x5785fd){logger[_0x35a4('0x1e')](_0x5785fd['stack']);if(_0x5785fd[_0x35a4('0x1f')]){delete _0x5785fd[_0x35a4('0x1f')];}_0x95a379[_0x35a4('0x12')](_0x52161f)[_0x35a4('0x20')](_0x5785fd);};}exports[_0x35a4('0x21')]=function(_0xc19fe0,_0x150131){var _0x41f01f={},_0xee9e51={},_0x1901e7={'count':0x0,'rows':[]};var _0x46b9ef=db['OpenchannelTransferReport'][_0x35a4('0x22')];_0xee9e51[_0x35a4('0x23')]=_[_0x35a4('0x24')](_0x46b9ef);var _0x58e21d={'dateStart':_0xc19fe0['query']['dateStart'],'dateEnd':_0xc19fe0['query'][_0x35a4('0x25')]};delete _0xc19fe0[_0x35a4('0x26')][_0x35a4('0x27')];delete _0xc19fe0['query'][_0x35a4('0x25')];_0xee9e51[_0x35a4('0x26')]=_[_0x35a4('0x24')](_0xc19fe0[_0x35a4('0x26')]);_0xee9e51[_0x35a4('0x28')]=_['intersection'](_0xee9e51[_0x35a4('0x23')],_0xee9e51['query']);_0x41f01f[_0x35a4('0x29')]=_['intersection'](_0xee9e51[_0x35a4('0x23')],qs['fields'](_0xc19fe0[_0x35a4('0x26')][_0x35a4('0x2a')]));_0x41f01f[_0x35a4('0x29')]=_0x41f01f[_0x35a4('0x29')][_0x35a4('0x2b')]?_0x41f01f[_0x35a4('0x29')]:_0xee9e51[_0x35a4('0x23')];if(!_0xc19fe0[_0x35a4('0x26')]['hasOwnProperty'](_0x35a4('0x2c'))){_0x41f01f[_0x35a4('0x16')]=qs[_0x35a4('0x16')](_0xc19fe0['query'][_0x35a4('0x16')]);_0x41f01f[_0x35a4('0x15')]=qs[_0x35a4('0x15')](_0xc19fe0[_0x35a4('0x26')][_0x35a4('0x15')]);}_0x41f01f[_0x35a4('0x2d')]=qs[_0x35a4('0x2e')](_0xc19fe0[_0x35a4('0x26')]['sort']);_0x41f01f['where']=qs[_0x35a4('0x28')](_[_0x35a4('0x2f')](_0xc19fe0[_0x35a4('0x26')],_0xee9e51['filters']));if(_0x58e21d[_0x35a4('0x27')]){if(_0x58e21d[_0x35a4('0x25')]){_0x58e21d[_0x35a4('0x25')]=moment(_0x58e21d[_0x35a4('0x25')])[_0x35a4('0x30')](0x1,_0x35a4('0x31'));}else{_0x58e21d[_0x35a4('0x25')]=moment(_0x58e21d[_0x35a4('0x27')])[_0x35a4('0x30')](0x1,_0x35a4('0x31'));}_[_0x35a4('0x32')](_0x41f01f[_0x35a4('0x33')],{'createdAt':{'$gte':_0x58e21d[_0x35a4('0x27')],'$lte':_0x58e21d[_0x35a4('0x25')]}});}if(_0xc19fe0['query'][_0x35a4('0x34')]){_0x41f01f[_0x35a4('0x33')]=_[_0x35a4('0x32')](_0x41f01f['where'],{'$or':_[_0x35a4('0x35')](_0x41f01f['attributes'],function(_0x38691e){var _0x3e9fa8={};_0x3e9fa8[_0x38691e]={'$like':'%'+_0xc19fe0[_0x35a4('0x26')][_0x35a4('0x34')]+'%'};return _0x3e9fa8;})});}_0x41f01f=_['merge']({},_0x41f01f,_0xc19fe0[_0x35a4('0x36')]);var _0x2c5684={'where':_0x41f01f['where']};return db['OpenchannelTransferReport'][_0x35a4('0x37')](_0x2c5684)['then'](function(_0x46340c){_0x1901e7[_0x35a4('0x37')]=_0x46340c;if(_0xc19fe0[_0x35a4('0x26')][_0x35a4('0x38')]){_0x41f01f[_0x35a4('0x39')]=[{'all':!![]}];}return db[_0x35a4('0x3a')][_0x35a4('0x3b')](_0x41f01f);})[_0x35a4('0x1c')](function(_0x158152){_0x1901e7[_0x35a4('0x3c')]=_0x158152;return _0x1901e7;})[_0x35a4('0x1c')](respondWithFilteredResult(_0x150131,_0x41f01f))[_0x35a4('0x3d')](handleError(_0x150131,null));};exports[_0x35a4('0x3e')]=function(_0x4f8249,_0x1fe3d7){var _0x4920d2={'raw':!![],'where':{'id':_0x4f8249[_0x35a4('0x3f')]['id']}},_0x21a7ef={};_0x21a7ef[_0x35a4('0x23')]=_[_0x35a4('0x24')](db[_0x35a4('0x3a')][_0x35a4('0x22')]);_0x21a7ef[_0x35a4('0x26')]=_[_0x35a4('0x24')](_0x4f8249[_0x35a4('0x26')]);_0x21a7ef['filters']=_['intersection'](_0x21a7ef[_0x35a4('0x23')],_0x21a7ef[_0x35a4('0x26')]);_0x4920d2[_0x35a4('0x29')]=_['intersection'](_0x21a7ef[_0x35a4('0x23')],qs[_0x35a4('0x2a')](_0x4f8249[_0x35a4('0x26')]['fields']));_0x4920d2[_0x35a4('0x29')]=_0x4920d2['attributes'][_0x35a4('0x2b')]?_0x4920d2[_0x35a4('0x29')]:_0x21a7ef['model'];if(_0x4f8249[_0x35a4('0x26')]['includeAll']){_0x4920d2['include']=[{'all':!![]}];}_0x4920d2=_[_0x35a4('0x32')]({},_0x4920d2,_0x4f8249[_0x35a4('0x36')]);return db[_0x35a4('0x3a')][_0x35a4('0x40')](_0x4920d2)[_0x35a4('0x1c')](handleEntityNotFound(_0x1fe3d7,null))['then'](respondWithResult(_0x1fe3d7,null))['catch'](handleError(_0x1fe3d7,null));};exports[_0x35a4('0x41')]=function(_0x3a163f,_0x508cad){return db[_0x35a4('0x3a')]['create'](_0x3a163f['body'],{})['then'](respondWithResult(_0x508cad,0xc9))['catch'](handleError(_0x508cad,null));};exports[_0x35a4('0x1a')]=function(_0x1ff4ae,_0x546c22){if(_0x1ff4ae[_0x35a4('0x42')]['id']){delete _0x1ff4ae[_0x35a4('0x42')]['id'];}return db[_0x35a4('0x3a')][_0x35a4('0x40')]({'where':{'id':_0x1ff4ae[_0x35a4('0x3f')]['id']}})[_0x35a4('0x1c')](handleEntityNotFound(_0x546c22,null))[_0x35a4('0x1c')](saveUpdates(_0x1ff4ae[_0x35a4('0x42')],null))[_0x35a4('0x1c')](respondWithResult(_0x546c22,null))[_0x35a4('0x3d')](handleError(_0x546c22,null));};exports[_0x35a4('0x1b')]=function(_0x28a717,_0x1583fc){return db[_0x35a4('0x3a')][_0x35a4('0x40')]({'where':{'id':_0x28a717['params']['id']}})[_0x35a4('0x1c')](handleEntityNotFound(_0x1583fc,null))[_0x35a4('0x1c')](removeEntity(_0x1583fc,null))[_0x35a4('0x3d')](handleError(_0x1583fc,null));};exports['describe']=function(_0x179cdb,_0x256dd9){return db[_0x35a4('0x3a')][_0x35a4('0x43')]()[_0x35a4('0x1c')](respondWithResult(_0x256dd9,null))['catch'](handleError(_0x256dd9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['report_openchannel_transfer','uniqueid','lodash','util','../../config/logger','moment','bluebird','./openchannelTransferReport.attributes','exports','define'];(function(_0x335f4b,_0x46cf25){var _0xf29c26=function(_0x4aefb5){while(--_0x4aefb5){_0x335f4b['push'](_0x335f4b['shift']());}};_0xf29c26(++_0x46cf25);}(_0x7a54,0x106));var _0x47a5=function(_0xf0c6ac,_0xd7de14){_0xf0c6ac=_0xf0c6ac-0x0;var _0x154376=_0x7a54[_0xf0c6ac];return _0x154376;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var attributes=require(_0x47a5('0x5'));module[_0x47a5('0x6')]=function(_0x2a1a7e,_0x3717e1){return _0x2a1a7e[_0x47a5('0x7')]('OpenchannelTransferReport',attributes,{'tableName':_0x47a5('0x8'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x47a5('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a54=['report_openchannel_transfer','uniqueid','lodash','util','../../config/logger','moment','bluebird','./openchannelTransferReport.attributes','exports','define'];(function(_0x3e8851,_0x188b12){var _0x52d73e=function(_0x17ae65){while(--_0x17ae65){_0x3e8851['push'](_0x3e8851['shift']());}};_0x52d73e(++_0x188b12);}(_0x7a54,0x106));var _0x47a5=function(_0x400e13,_0x56df91){_0x400e13=_0x400e13-0x0;var _0xef325d=_0x7a54[_0x400e13];return _0xef325d;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var attributes=require(_0x47a5('0x5'));module[_0x47a5('0x6')]=function(_0x2a1a7e,_0x3717e1){return _0x2a1a7e[_0x47a5('0x7')]('OpenchannelTransferReport',attributes,{'tableName':_0x47a5('0x8'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x47a5('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0978=['bluebird','../../mysqldb','../../config/utils','rpc','../../config/environment','http','request','then','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','error','code','message','info','result','lodash','util','moment'];(function(_0xaaf91d,_0x3845d3){var _0x2cb143=function(_0xe193ea){while(--_0xe193ea){_0xaaf91d['push'](_0xaaf91d['shift']());}};_0x2cb143(++_0x3845d3);}(_0x0978,0x1f1));var _0x8097=function(_0x41bcf1,_0x13329b){_0x41bcf1=_0x41bcf1-0x0;var _0x52c3b8=_0x0978[_0x41bcf1];return _0x52c3b8;};'use strict';var _=require(_0x8097('0x0'));var util=require(_0x8097('0x1'));var moment=require(_0x8097('0x2'));var BPromise=require(_0x8097('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x8097('0x4'))['db'];var utils=require(_0x8097('0x5'));var logger=require('../../config/logger')(_0x8097('0x6'));var config=require(_0x8097('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x8097('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3867b0,_0x2378f2,_0x231b95){return new BPromise(function(_0x3586e7,_0x3a8563){return client[_0x8097('0x9')](_0x3867b0,_0x231b95)[_0x8097('0xa')](function(_0x50238a){logger['info'](_0x8097('0xb'),_0x2378f2,_0x8097('0xc'));logger[_0x8097('0xd')](_0x8097('0xe'),_0x2378f2,'request\x20sent',JSON['stringify'](_0x50238a));if(_0x50238a[_0x8097('0xf')]){if(_0x50238a[_0x8097('0xf')][_0x8097('0x10')]===0x1f4){logger[_0x8097('0xf')](_0x8097('0xb'),_0x2378f2,_0x50238a[_0x8097('0xf')]['message']);return _0x3a8563(_0x50238a[_0x8097('0xf')][_0x8097('0x11')]);}logger[_0x8097('0xf')](_0x8097('0xb'),_0x2378f2,_0x50238a['error'][_0x8097('0x11')]);return _0x3586e7(_0x50238a[_0x8097('0xf')][_0x8097('0x11')]);}else{logger[_0x8097('0x12')](_0x8097('0xb'),_0x2378f2,_0x8097('0xc'));_0x3586e7(_0x50238a[_0x8097('0x13')][_0x8097('0x11')]);}})['catch'](function(_0x37bc7f){logger['error'](_0x8097('0xb'),_0x2378f2,_0x37bc7f);_0x3a8563(_0x37bc7f);});});}
\ No newline at end of file
+var _0xa922=['OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x13606d,_0x30f265){var _0x1b85b0=function(_0x285c1b){while(--_0x285c1b){_0x13606d['push'](_0x13606d['shift']());}};_0x1b85b0(++_0x30f265);}(_0xa922,0x1d4));var _0x2a92=function(_0x26d68d,_0x442da1){_0x26d68d=_0x26d68d-0x0;var _0x1e40f1=_0xa922[_0x26d68d];return _0x1e40f1;};'use strict';var _=require(_0x2a92('0x0'));var util=require(_0x2a92('0x1'));var moment=require('moment');var BPromise=require(_0x2a92('0x2'));var rs=require(_0x2a92('0x3'));var fs=require('fs');var Redis=require(_0x2a92('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2a92('0x5'));var logger=require(_0x2a92('0x6'))(_0x2a92('0x7'));var config=require(_0x2a92('0x8'));var jayson=require(_0x2a92('0x9'));var client=jayson[_0x2a92('0xa')][_0x2a92('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1830e0,_0x4b9e60,_0x1dd922){return new BPromise(function(_0xac9f76,_0x3c6f44){return client[_0x2a92('0xc')](_0x1830e0,_0x1dd922)[_0x2a92('0xd')](function(_0x12a6e1){logger[_0x2a92('0xe')](_0x2a92('0xf'),_0x4b9e60,_0x2a92('0x10'));logger['debug'](_0x2a92('0x11'),_0x4b9e60,_0x2a92('0x10'),JSON[_0x2a92('0x12')](_0x12a6e1));if(_0x12a6e1[_0x2a92('0x13')]){if(_0x12a6e1[_0x2a92('0x13')][_0x2a92('0x14')]===0x1f4){logger[_0x2a92('0x13')](_0x2a92('0xf'),_0x4b9e60,_0x12a6e1[_0x2a92('0x13')]['message']);return _0x3c6f44(_0x12a6e1[_0x2a92('0x13')][_0x2a92('0x15')]);}logger[_0x2a92('0x13')](_0x2a92('0xf'),_0x4b9e60,_0x12a6e1[_0x2a92('0x13')][_0x2a92('0x15')]);return _0xac9f76(_0x12a6e1[_0x2a92('0x13')][_0x2a92('0x15')]);}else{logger[_0x2a92('0xe')](_0x2a92('0xf'),_0x4b9e60,_0x2a92('0x10'));_0xac9f76(_0x12a6e1['result'][_0x2a92('0x15')]);}})[_0x2a92('0x16')](function(_0x51d02f){logger[_0x2a92('0x13')](_0x2a92('0xf'),_0x4b9e60,_0x51d02f);_0x3c6f44(_0x51d02f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7341=['post','create','update','delete','/:id','destroy','exports','path','express','Router','../../components/interaction/service','../../config/environment','./pause.controller','get','isAuthenticated','index','show'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x7341,0xe4));var _0x1734=function(_0x20d303,_0x3b44de){_0x20d303=_0x20d303-0x0;var _0x571f07=_0x7341[_0x20d303];return _0x571f07;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1734('0x0'));var timeout=require('connect-timeout');var express=require(_0x1734('0x1'));var router=express[_0x1734('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x1734('0x3'));var config=require(_0x1734('0x4'));var controller=require(_0x1734('0x5'));router[_0x1734('0x6')]('/',auth[_0x1734('0x7')](),controller[_0x1734('0x8')]);router[_0x1734('0x6')]('/:id',auth[_0x1734('0x7')](),controller[_0x1734('0x9')]);router[_0x1734('0xa')]('/',auth['isAuthenticated'](),controller[_0x1734('0xb')]);router['put']('/:id',auth[_0x1734('0x7')](),controller[_0x1734('0xc')]);router[_0x1734('0xd')](_0x1734('0xe'),auth[_0x1734('0x7')](),controller[_0x1734('0xf')]);module[_0x1734('0x10')]=router;
\ No newline at end of file
+var _0xdfe9=['../../components/auth/service','../../components/interaction/service','../../config/environment','./pause.controller','get','isAuthenticated','index','/:id','post','create','put','update','delete','destroy','exports','multer','path','Router'];(function(_0x2db226,_0x5a7392){var _0x2b031c=function(_0x38c2d1){while(--_0x38c2d1){_0x2db226['push'](_0x2db226['shift']());}};_0x2b031c(++_0x5a7392);}(_0xdfe9,0xc3));var _0x9dfe=function(_0x9731d1,_0x48e293){_0x9731d1=_0x9731d1-0x0;var _0x45667d=_0xdfe9[_0x9731d1];return _0x45667d;};'use strict';var multer=require(_0x9dfe('0x0'));var util=require('util');var path=require(_0x9dfe('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x9dfe('0x2')]();var auth=require(_0x9dfe('0x3'));var interaction=require(_0x9dfe('0x4'));var config=require(_0x9dfe('0x5'));var controller=require(_0x9dfe('0x6'));router[_0x9dfe('0x7')]('/',auth[_0x9dfe('0x8')](),controller[_0x9dfe('0x9')]);router[_0x9dfe('0x7')](_0x9dfe('0xa'),auth[_0x9dfe('0x8')](),controller['show']);router[_0x9dfe('0xb')]('/',auth[_0x9dfe('0x8')](),controller[_0x9dfe('0xc')]);router[_0x9dfe('0xd')](_0x9dfe('0xa'),auth[_0x9dfe('0x8')](),controller[_0x9dfe('0xe')]);router[_0x9dfe('0xf')]('/:id',auth[_0x9dfe('0x8')](),controller[_0x9dfe('0x10')]);module[_0x9dfe('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7695=['name','STRING'];(function(_0x57b236,_0x30614e){var _0x4feb29=function(_0x26d3e6){while(--_0x26d3e6){_0x57b236['push'](_0x57b236['shift']());}};_0x4feb29(++_0x30614e);}(_0x7695,0x1cb));var _0x5769=function(_0x5b7185,_0x1cc51e){_0x5b7185=_0x5b7185-0x0;var _0x5911ee=_0x7695[_0x5b7185];return _0x5911ee;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x5769('0x0')],'unique':_0x5769('0x1'),'allowNull':![]},'description':{'type':Sequelize[_0x5769('0x0')]}};
\ No newline at end of file
+var _0xf42d=['exports','name','sequelize'];(function(_0x564ade,_0x1736da){var _0x5b0077=function(_0x380452){while(--_0x380452){_0x564ade['push'](_0x564ade['shift']());}};_0x5b0077(++_0x1736da);}(_0xf42d,0xe9));var _0xdf42=function(_0x5f4e4a,_0x2eba3d){_0x5f4e4a=_0x5f4e4a-0x0;var _0x4d5d35=_0xf42d[_0x5f4e4a];return _0x4d5d35;};'use strict';var Sequelize=require(_0xdf42('0x0'));module[_0xdf42('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xdf42('0x2'),'allowNull':![]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf14=['merge','filter','map','options','Pause','includeAll','include','findAll','rows','catch','show','find','create','body','params','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','order','where','pick','add','day'];(function(_0x3d9176,_0x399d6f){var _0x12adc5=function(_0x700b01){while(--_0x700b01){_0x3d9176['push'](_0x3d9176['shift']());}};_0x12adc5(++_0x399d6f);}(_0xcf14,0xa1));var _0x4cf1=function(_0x276a74,_0x334571){_0x276a74=_0x276a74-0x0;var _0x48c862=_0xcf14[_0x276a74];return _0x48c862;};'use strict';var pdf=require(_0x4cf1('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x4cf1('0x1'));var zipdir=require(_0x4cf1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4cf1('0x3'));var moment=require(_0x4cf1('0x4'));var BPromise=require(_0x4cf1('0x5'));var Mustache=require(_0x4cf1('0x6'));var util=require('util');var path=require(_0x4cf1('0x7'));var sox=require(_0x4cf1('0x8'));var csv=require(_0x4cf1('0x9'));var ejs=require(_0x4cf1('0xa'));var fs=require('fs');var _=require(_0x4cf1('0xb'));var squel=require(_0x4cf1('0xc'));var crypto=require(_0x4cf1('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4cf1('0xe'));var toCsv=require(_0x4cf1('0x9'));var querystring=require(_0x4cf1('0xf'));var Papa=require(_0x4cf1('0x10'));var qs=require(_0x4cf1('0x11'));var logger=require(_0x4cf1('0x12'))(_0x4cf1('0x13'));var utils=require(_0x4cf1('0x14'));var config=require(_0x4cf1('0x15'));var db=require(_0x4cf1('0x16'))['db'];function respondWithStatusCode(_0x26d254,_0x2eaa6f){_0x2eaa6f=_0x2eaa6f||0xcc;return function(_0x172325){if(_0x172325){return _0x26d254[_0x4cf1('0x17')](_0x2eaa6f);}return _0x26d254['status'](_0x2eaa6f)[_0x4cf1('0x18')]();};}function respondWithResult(_0x5622dc,_0x1ae8fb){_0x1ae8fb=_0x1ae8fb||0xc8;return function(_0x140ede){if(_0x140ede){return _0x5622dc[_0x4cf1('0x19')](_0x1ae8fb)[_0x4cf1('0x1a')](_0x140ede);}};}function respondWithFilteredResult(_0x10abde,_0x3f365c){return function(_0x25f091){if(_0x25f091){var _0x6c10f9=_0x25f091[_0x4cf1('0x1b')],_0x3e320f=_0x3f365c[_0x4cf1('0x1c')],_0xec2510=_0x3f365c['offset']+_0x3f365c[_0x4cf1('0x1d')],_0xcfa115;if(_0xec2510>=_0x6c10f9){_0xec2510=_0x6c10f9;_0xcfa115=0xc8;}else{_0xcfa115=0xce;}_0x10abde['status'](_0xcfa115);return _0x10abde[_0x4cf1('0x1e')](_0x4cf1('0x1f'),_0x3e320f+'-'+_0xec2510+'/'+_0x6c10f9)[_0x4cf1('0x1a')](_0x25f091);}return null;};}function patchUpdates(_0x1f20c0){return function(_0x2e7204){try{jsonpatch['apply'](_0x2e7204,_0x1f20c0,!![]);}catch(_0x4499f7){return BPromise[_0x4cf1('0x20')](_0x4499f7);}return _0x2e7204[_0x4cf1('0x21')]();};}function saveUpdates(_0x4557e0,_0x52b5a2){return function(_0x519b9b){if(_0x519b9b){return _0x519b9b[_0x4cf1('0x22')](_0x4557e0)[_0x4cf1('0x23')](function(_0x5603ae){return _0x5603ae;});}return null;};}function removeEntity(_0x85885a,_0x1033b4){return function(_0x3cc036){if(_0x3cc036){return _0x3cc036[_0x4cf1('0x24')]()['then'](function(){_0x85885a[_0x4cf1('0x19')](0xcc)[_0x4cf1('0x18')]();});}};}function handleEntityNotFound(_0x2338c3,_0x19321f){return function(_0x21eb0c){if(!_0x21eb0c){_0x2338c3[_0x4cf1('0x17')](0x194);}return _0x21eb0c;};}function handleError(_0x4f14a0,_0x351ccc){_0x351ccc=_0x351ccc||0x1f4;return function(_0x5bb535){logger[_0x4cf1('0x25')](_0x5bb535[_0x4cf1('0x26')]);if(_0x5bb535[_0x4cf1('0x27')]){delete _0x5bb535[_0x4cf1('0x27')];}_0x4f14a0[_0x4cf1('0x19')](_0x351ccc)[_0x4cf1('0x28')](_0x5bb535);};}exports[_0x4cf1('0x29')]=function(_0x326ca6,_0x64eebb){var _0x174c51={},_0x395f52={},_0x1deaa0={'count':0x0,'rows':[]};var _0x2a17ce=db['Pause'][_0x4cf1('0x2a')];_0x395f52[_0x4cf1('0x2b')]=_[_0x4cf1('0x2c')](_0x2a17ce);var _0x1c7c9c={'dateStart':_0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x2e')],'dateEnd':_0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x2f')]};delete _0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x2e')];delete _0x326ca6[_0x4cf1('0x2d')]['dateEnd'];_0x395f52[_0x4cf1('0x2d')]=_[_0x4cf1('0x2c')](_0x326ca6['query']);_0x395f52[_0x4cf1('0x30')]=_[_0x4cf1('0x31')](_0x395f52[_0x4cf1('0x2b')],_0x395f52[_0x4cf1('0x2d')]);_0x174c51[_0x4cf1('0x32')]=_[_0x4cf1('0x31')](_0x395f52['model'],qs[_0x4cf1('0x33')](_0x326ca6['query'][_0x4cf1('0x33')]));_0x174c51[_0x4cf1('0x32')]=_0x174c51[_0x4cf1('0x32')][_0x4cf1('0x34')]?_0x174c51[_0x4cf1('0x32')]:_0x395f52['model'];if(!_0x326ca6[_0x4cf1('0x2d')]['hasOwnProperty']('nolimit')){_0x174c51['limit']=qs[_0x4cf1('0x1d')](_0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x1d')]);_0x174c51[_0x4cf1('0x1c')]=qs[_0x4cf1('0x1c')](_0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x1c')]);}_0x174c51[_0x4cf1('0x35')]=qs['sort'](_0x326ca6['query']['sort']);_0x174c51[_0x4cf1('0x36')]=qs[_0x4cf1('0x30')](_[_0x4cf1('0x37')](_0x326ca6[_0x4cf1('0x2d')],_0x395f52[_0x4cf1('0x30')]));if(_0x1c7c9c[_0x4cf1('0x2e')]){if(_0x1c7c9c[_0x4cf1('0x2f')]){_0x1c7c9c[_0x4cf1('0x2f')]=moment(_0x1c7c9c[_0x4cf1('0x2f')])[_0x4cf1('0x38')](0x1,_0x4cf1('0x39'));}else{_0x1c7c9c[_0x4cf1('0x2f')]=moment(_0x1c7c9c[_0x4cf1('0x2e')])['add'](0x1,'day');}_[_0x4cf1('0x3a')](_0x174c51[_0x4cf1('0x36')],{'createdAt':{'$gte':_0x1c7c9c[_0x4cf1('0x2e')],'$lte':_0x1c7c9c[_0x4cf1('0x2f')]}});}if(_0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x3b')]){_0x174c51[_0x4cf1('0x36')]=_['merge'](_0x174c51[_0x4cf1('0x36')],{'$or':_[_0x4cf1('0x3c')](_0x174c51[_0x4cf1('0x32')],function(_0xba4de){var _0x2850f7={};_0x2850f7[_0xba4de]={'$like':'%'+_0x326ca6[_0x4cf1('0x2d')]['filter']+'%'};return _0x2850f7;})});}_0x174c51=_['merge']({},_0x174c51,_0x326ca6[_0x4cf1('0x3d')]);var _0x431f1e={'where':_0x174c51[_0x4cf1('0x36')]};return db[_0x4cf1('0x3e')][_0x4cf1('0x1b')](_0x431f1e)[_0x4cf1('0x23')](function(_0x450409){_0x1deaa0[_0x4cf1('0x1b')]=_0x450409;if(_0x326ca6[_0x4cf1('0x2d')][_0x4cf1('0x3f')]){_0x174c51[_0x4cf1('0x40')]=[{'all':!![]}];}return db['Pause'][_0x4cf1('0x41')](_0x174c51);})[_0x4cf1('0x23')](function(_0x5c0464){_0x1deaa0[_0x4cf1('0x42')]=_0x5c0464;return _0x1deaa0;})[_0x4cf1('0x23')](respondWithFilteredResult(_0x64eebb,_0x174c51))[_0x4cf1('0x43')](handleError(_0x64eebb,null));};exports[_0x4cf1('0x44')]=function(_0x2b2ee4,_0x5a4078){var _0x1f148f={'raw':!![],'where':{'id':_0x2b2ee4['params']['id']}},_0x4d2bfa={};_0x4d2bfa[_0x4cf1('0x2b')]=_[_0x4cf1('0x2c')](db[_0x4cf1('0x3e')][_0x4cf1('0x2a')]);_0x4d2bfa[_0x4cf1('0x2d')]=_[_0x4cf1('0x2c')](_0x2b2ee4[_0x4cf1('0x2d')]);_0x4d2bfa[_0x4cf1('0x30')]=_[_0x4cf1('0x31')](_0x4d2bfa[_0x4cf1('0x2b')],_0x4d2bfa[_0x4cf1('0x2d')]);_0x1f148f[_0x4cf1('0x32')]=_[_0x4cf1('0x31')](_0x4d2bfa[_0x4cf1('0x2b')],qs[_0x4cf1('0x33')](_0x2b2ee4[_0x4cf1('0x2d')]['fields']));_0x1f148f[_0x4cf1('0x32')]=_0x1f148f[_0x4cf1('0x32')][_0x4cf1('0x34')]?_0x1f148f[_0x4cf1('0x32')]:_0x4d2bfa[_0x4cf1('0x2b')];if(_0x2b2ee4[_0x4cf1('0x2d')][_0x4cf1('0x3f')]){_0x1f148f['include']=[{'all':!![]}];}_0x1f148f=_[_0x4cf1('0x3a')]({},_0x1f148f,_0x2b2ee4['options']);return db[_0x4cf1('0x3e')][_0x4cf1('0x45')](_0x1f148f)[_0x4cf1('0x23')](handleEntityNotFound(_0x5a4078,null))[_0x4cf1('0x23')](respondWithResult(_0x5a4078,null))[_0x4cf1('0x43')](handleError(_0x5a4078,null));};exports[_0x4cf1('0x46')]=function(_0x48b405,_0x4fb90b){return db['Pause'][_0x4cf1('0x46')](_0x48b405[_0x4cf1('0x47')],{})[_0x4cf1('0x23')](respondWithResult(_0x4fb90b,0xc9))['catch'](handleError(_0x4fb90b,null));};exports[_0x4cf1('0x22')]=function(_0x267036,_0x4a8305){if(_0x267036[_0x4cf1('0x47')]['id']){delete _0x267036[_0x4cf1('0x47')]['id'];}return db[_0x4cf1('0x3e')][_0x4cf1('0x45')]({'where':{'id':_0x267036[_0x4cf1('0x48')]['id']}})['then'](handleEntityNotFound(_0x4a8305,null))[_0x4cf1('0x23')](saveUpdates(_0x267036[_0x4cf1('0x47')],null))[_0x4cf1('0x23')](respondWithResult(_0x4a8305,null))[_0x4cf1('0x43')](handleError(_0x4a8305,null));};exports[_0x4cf1('0x24')]=function(_0x4f7adf,_0x3a4723){return db[_0x4cf1('0x3e')]['find']({'where':{'id':_0x4f7adf['params']['id']}})['then'](handleEntityNotFound(_0x3a4723,null))[_0x4cf1('0x23')](removeEntity(_0x3a4723,null))[_0x4cf1('0x43')](handleError(_0x3a4723,null));};
\ No newline at end of file
+var _0xa9e0=['intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','day','add','merge','filter','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','error','stack','name','index','Pause','model','keys','query','dateStart','dateEnd','filters'];(function(_0x58e3ff,_0x542fe9){var _0x2acab6=function(_0x294aa1){while(--_0x294aa1){_0x58e3ff['push'](_0x58e3ff['shift']());}};_0x2acab6(++_0x542fe9);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47a7d0,_0x4e182d){_0x47a7d0=_0x47a7d0-0x0;var _0xb9bd08=_0xa9e0[_0x47a7d0];return _0xb9bd08;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var qs=require(_0x0a9e('0xf'));var logger=require(_0x0a9e('0x10'))(_0x0a9e('0x11'));var utils=require(_0x0a9e('0x12'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x527cdd,_0x4cfe67){_0x4cfe67=_0x4cfe67||0xcc;return function(_0x273d4d){if(_0x273d4d){return _0x527cdd[_0x0a9e('0x13')](_0x4cfe67);}return _0x527cdd[_0x0a9e('0x14')](_0x4cfe67)[_0x0a9e('0x15')]();};}function respondWithResult(_0x32d742,_0x69aeb7){_0x69aeb7=_0x69aeb7||0xc8;return function(_0x5db4b0){if(_0x5db4b0){return _0x32d742[_0x0a9e('0x14')](_0x69aeb7)[_0x0a9e('0x16')](_0x5db4b0);}};}function respondWithFilteredResult(_0x2b4227,_0x281129){return function(_0x44dcfd){if(_0x44dcfd){var _0x4d5611=_0x44dcfd[_0x0a9e('0x17')],_0x52a03d=_0x281129['offset'],_0x22dccb=_0x281129[_0x0a9e('0x18')]+_0x281129[_0x0a9e('0x19')],_0x5d0880;if(_0x22dccb>=_0x4d5611){_0x22dccb=_0x4d5611;_0x5d0880=0xc8;}else{_0x5d0880=0xce;}_0x2b4227['status'](_0x5d0880);return _0x2b4227[_0x0a9e('0x1a')]('Content-Range',_0x52a03d+'-'+_0x22dccb+'/'+_0x4d5611)[_0x0a9e('0x16')](_0x44dcfd);}return null;};}function patchUpdates(_0x478723){return function(_0x106033){try{jsonpatch[_0x0a9e('0x1b')](_0x106033,_0x478723,!![]);}catch(_0x31b1ca){return BPromise[_0x0a9e('0x1c')](_0x31b1ca);}return _0x106033[_0x0a9e('0x1d')]();};}function saveUpdates(_0x20559e,_0x1314ae){return function(_0x112016){if(_0x112016){return _0x112016[_0x0a9e('0x1e')](_0x20559e)[_0x0a9e('0x1f')](function(_0x4bb1e3){return _0x4bb1e3;});}return null;};}function removeEntity(_0x2c3407,_0x155cce){return function(_0x53682f){if(_0x53682f){return _0x53682f[_0x0a9e('0x20')]()['then'](function(){_0x2c3407['status'](0xcc)[_0x0a9e('0x15')]();});}};}function handleEntityNotFound(_0x432e56,_0x38e7c4){return function(_0x30bae6){if(!_0x30bae6){_0x432e56['sendStatus'](0x194);}return _0x30bae6;};}function handleError(_0xfb6e48,_0x2fb0e4){_0x2fb0e4=_0x2fb0e4||0x1f4;return function(_0x3b45bc){logger[_0x0a9e('0x21')](_0x3b45bc[_0x0a9e('0x22')]);if(_0x3b45bc[_0x0a9e('0x23')]){delete _0x3b45bc[_0x0a9e('0x23')];}_0xfb6e48['status'](_0x2fb0e4)['send'](_0x3b45bc);};}exports[_0x0a9e('0x24')]=function(_0x3a8e58,_0x40c424){var _0x33161b={},_0x526cf3={},_0x384319={'count':0x0,'rows':[]};var _0x479bc4=db[_0x0a9e('0x25')]['rawAttributes'];_0x526cf3[_0x0a9e('0x26')]=_[_0x0a9e('0x27')](_0x479bc4);var _0x25fba9={'dateStart':_0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x29')],'dateEnd':_0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x2a')]};delete _0x3a8e58[_0x0a9e('0x28')]['dateStart'];delete _0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x2a')];_0x526cf3[_0x0a9e('0x28')]=_[_0x0a9e('0x27')](_0x3a8e58['query']);_0x526cf3[_0x0a9e('0x2b')]=_[_0x0a9e('0x2c')](_0x526cf3[_0x0a9e('0x26')],_0x526cf3[_0x0a9e('0x28')]);_0x33161b[_0x0a9e('0x2d')]=_[_0x0a9e('0x2c')](_0x526cf3[_0x0a9e('0x26')],qs[_0x0a9e('0x2e')](_0x3a8e58[_0x0a9e('0x28')]['fields']));_0x33161b[_0x0a9e('0x2d')]=_0x33161b['attributes'][_0x0a9e('0x2f')]?_0x33161b[_0x0a9e('0x2d')]:_0x526cf3[_0x0a9e('0x26')];if(!_0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x30')]('nolimit')){_0x33161b[_0x0a9e('0x19')]=qs[_0x0a9e('0x19')](_0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x19')]);_0x33161b[_0x0a9e('0x18')]=qs[_0x0a9e('0x18')](_0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x18')]);}_0x33161b['order']=qs[_0x0a9e('0x31')](_0x3a8e58['query'][_0x0a9e('0x31')]);_0x33161b[_0x0a9e('0x32')]=qs[_0x0a9e('0x2b')](_[_0x0a9e('0x33')](_0x3a8e58['query'],_0x526cf3[_0x0a9e('0x2b')]));if(_0x25fba9[_0x0a9e('0x29')]){if(_0x25fba9[_0x0a9e('0x2a')]){_0x25fba9[_0x0a9e('0x2a')]=moment(_0x25fba9['dateEnd'])['add'](0x1,_0x0a9e('0x34'));}else{_0x25fba9['dateEnd']=moment(_0x25fba9[_0x0a9e('0x29')])[_0x0a9e('0x35')](0x1,_0x0a9e('0x34'));}_[_0x0a9e('0x36')](_0x33161b['where'],{'createdAt':{'$gte':_0x25fba9[_0x0a9e('0x29')],'$lte':_0x25fba9[_0x0a9e('0x2a')]}});}if(_0x3a8e58[_0x0a9e('0x28')]['filter']){_0x33161b[_0x0a9e('0x32')]=_[_0x0a9e('0x36')](_0x33161b[_0x0a9e('0x32')],{'$or':_['map'](_0x33161b['attributes'],function(_0x11b61d){var _0x40d766={};_0x40d766[_0x11b61d]={'$like':'%'+_0x3a8e58['query'][_0x0a9e('0x37')]+'%'};return _0x40d766;})});}_0x33161b=_[_0x0a9e('0x36')]({},_0x33161b,_0x3a8e58[_0x0a9e('0x38')]);var _0x148f55={'where':_0x33161b['where']};return db['Pause'][_0x0a9e('0x17')](_0x148f55)[_0x0a9e('0x1f')](function(_0x53f3ee){_0x384319[_0x0a9e('0x17')]=_0x53f3ee;if(_0x3a8e58[_0x0a9e('0x28')][_0x0a9e('0x39')]){_0x33161b['include']=[{'all':!![]}];}return db[_0x0a9e('0x25')][_0x0a9e('0x3a')](_0x33161b);})[_0x0a9e('0x1f')](function(_0x43dd5b){_0x384319[_0x0a9e('0x3b')]=_0x43dd5b;return _0x384319;})[_0x0a9e('0x1f')](respondWithFilteredResult(_0x40c424,_0x33161b))[_0x0a9e('0x3c')](handleError(_0x40c424,null));};exports[_0x0a9e('0x3d')]=function(_0x23b089,_0x3da2cd){var _0x2c3711={'raw':!![],'where':{'id':_0x23b089[_0x0a9e('0x3e')]['id']}},_0x148007={};_0x148007[_0x0a9e('0x26')]=_[_0x0a9e('0x27')](db['Pause']['rawAttributes']);_0x148007[_0x0a9e('0x28')]=_[_0x0a9e('0x27')](_0x23b089[_0x0a9e('0x28')]);_0x148007[_0x0a9e('0x2b')]=_[_0x0a9e('0x2c')](_0x148007[_0x0a9e('0x26')],_0x148007[_0x0a9e('0x28')]);_0x2c3711[_0x0a9e('0x2d')]=_[_0x0a9e('0x2c')](_0x148007[_0x0a9e('0x26')],qs[_0x0a9e('0x2e')](_0x23b089[_0x0a9e('0x28')]['fields']));_0x2c3711[_0x0a9e('0x2d')]=_0x2c3711[_0x0a9e('0x2d')][_0x0a9e('0x2f')]?_0x2c3711[_0x0a9e('0x2d')]:_0x148007[_0x0a9e('0x26')];if(_0x23b089[_0x0a9e('0x28')][_0x0a9e('0x39')]){_0x2c3711[_0x0a9e('0x3f')]=[{'all':!![]}];}_0x2c3711=_['merge']({},_0x2c3711,_0x23b089[_0x0a9e('0x38')]);return db['Pause'][_0x0a9e('0x40')](_0x2c3711)[_0x0a9e('0x1f')](handleEntityNotFound(_0x3da2cd,null))[_0x0a9e('0x1f')](respondWithResult(_0x3da2cd,null))['catch'](handleError(_0x3da2cd,null));};exports[_0x0a9e('0x41')]=function(_0x7f6eb1,_0x4774f4){return db[_0x0a9e('0x25')][_0x0a9e('0x41')](_0x7f6eb1[_0x0a9e('0x42')],{})[_0x0a9e('0x1f')](respondWithResult(_0x4774f4,0xc9))['catch'](handleError(_0x4774f4,null));};exports[_0x0a9e('0x1e')]=function(_0x1bde3c,_0x1b5e80){if(_0x1bde3c[_0x0a9e('0x42')]['id']){delete _0x1bde3c[_0x0a9e('0x42')]['id'];}return db[_0x0a9e('0x25')][_0x0a9e('0x40')]({'where':{'id':_0x1bde3c[_0x0a9e('0x3e')]['id']}})[_0x0a9e('0x1f')](handleEntityNotFound(_0x1b5e80,null))['then'](saveUpdates(_0x1bde3c[_0x0a9e('0x42')],null))[_0x0a9e('0x1f')](respondWithResult(_0x1b5e80,null))['catch'](handleError(_0x1b5e80,null));};exports['destroy']=function(_0x5ddf84,_0x1adfee){return db[_0x0a9e('0x25')][_0x0a9e('0x40')]({'where':{'id':_0x5ddf84[_0x0a9e('0x3e')]['id']}})[_0x0a9e('0x1f')](handleEntityNotFound(_0x1adfee,null))[_0x0a9e('0x1f')](removeEntity(_0x1adfee,null))[_0x0a9e('0x3c')](handleError(_0x1adfee,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f40=['./pause.attributes','Pause','tools_pauses','lodash','api','moment','request-promise'];(function(_0x45d3f0,_0x4be53f){var _0x314b79=function(_0x563d32){while(--_0x563d32){_0x45d3f0['push'](_0x45d3f0['shift']());}};_0x314b79(++_0x4be53f);}(_0x5f40,0x1a0));var _0x05f4=function(_0x2e570c,_0x2f6e13){_0x2e570c=_0x2e570c-0x0;var _0x304b7a=_0x5f40[_0x2e570c];return _0x304b7a;};'use strict';var _=require(_0x05f4('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x05f4('0x1'));var moment=require(_0x05f4('0x2'));var BPromise=require('bluebird');var rp=require(_0x05f4('0x3'));var attributes=require(_0x05f4('0x4'));module['exports']=function(_0x43a8c4,_0x22629d){return _0x43a8c4['define'](_0x05f4('0x5'),attributes,{'tableName':_0x05f4('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3d97=['util','../../config/logger','api','bluebird','request-promise','./pause.attributes','define','Pause','lodash'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x3d97,0x1a6));var _0x73d9=function(_0x3cd133,_0x222fcb){_0x3cd133=_0x3cd133-0x0;var _0x2512c8=_0x3d97[_0x3cd133];return _0x2512c8;};'use strict';var _=require(_0x73d9('0x0'));var util=require(_0x73d9('0x1'));var logger=require(_0x73d9('0x2'))(_0x73d9('0x3'));var moment=require('moment');var BPromise=require(_0x73d9('0x4'));var rp=require(_0x73d9('0x5'));var attributes=require(_0x73d9('0x6'));module['exports']=function(_0x3b7859,_0x2bd5cd){return _0x3b7859[_0x73d9('0x7')](_0x73d9('0x8'),attributes,{'tableName':'tools_pauses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64c2=['include','map','model','then','debug','lodash','util','bluebird','randomstring','../../mysqldb','../../config/environment','jayson/promise','request','Pause,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','Pause,\x20%s,\x20%s','info','result','catch','ShowPause','Pause','find','options','where','attributes'];(function(_0x2fe4c2,_0x1c29b3){var _0x25520d=function(_0x5ae4ab){while(--_0x5ae4ab){_0x2fe4c2['push'](_0x2fe4c2['shift']());}};_0x25520d(++_0x1c29b3);}(_0x64c2,0x79));var _0x264c=function(_0x56066d,_0x4c04fb){_0x56066d=_0x56066d-0x0;var _0x917034=_0x64c2[_0x56066d];return _0x917034;};'use strict';var _=require(_0x264c('0x0'));var util=require(_0x264c('0x1'));var moment=require('moment');var BPromise=require(_0x264c('0x2'));var rs=require(_0x264c('0x3'));var fs=require('fs');var db=require(_0x264c('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x264c('0x5'));var jayson=require(_0x264c('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xa9df80,_0x950a87,_0x12a907){return new BPromise(function(_0x5e16a2,_0x4857e3){return client[_0x264c('0x7')](_0xa9df80,_0x12a907)['then'](function(_0x389eb1){logger['info']('Pause,\x20%s,\x20%s',_0x950a87,'request\x20sent');logger['debug'](_0x264c('0x8'),_0x950a87,_0x264c('0x9'),JSON[_0x264c('0xa')](_0x389eb1));if(_0x389eb1[_0x264c('0xb')]){if(_0x389eb1['error'][_0x264c('0xc')]===0x1f4){logger[_0x264c('0xb')]('Pause,\x20%s,\x20%s',_0x950a87,_0x389eb1[_0x264c('0xb')][_0x264c('0xd')]);return _0x4857e3(_0x389eb1[_0x264c('0xb')][_0x264c('0xd')]);}logger[_0x264c('0xb')](_0x264c('0xe'),_0x950a87,_0x389eb1[_0x264c('0xb')][_0x264c('0xd')]);return _0x5e16a2(_0x389eb1['error'][_0x264c('0xd')]);}else{logger[_0x264c('0xf')](_0x264c('0xe'),_0x950a87,_0x264c('0x9'));_0x5e16a2(_0x389eb1[_0x264c('0x10')][_0x264c('0xd')]);}})[_0x264c('0x11')](function(_0x32ff6a){logger['error']('Pause,\x20%s,\x20%s',_0x950a87,_0x32ff6a);_0x4857e3(_0x32ff6a);});});}exports[_0x264c('0x12')]=function(_0x52635c){var _0x84ba37=this;return new Promise(function(_0x52ce67,_0x301d92){return db[_0x264c('0x13')][_0x264c('0x14')]({'raw':_0x52635c[_0x264c('0x15')]?_0x52635c[_0x264c('0x15')]['raw']===undefined?!![]:![]:!![],'where':_0x52635c[_0x264c('0x15')]?_0x52635c[_0x264c('0x15')][_0x264c('0x16')]||null:null,'attributes':_0x52635c['options']?_0x52635c[_0x264c('0x15')][_0x264c('0x17')]||null:null,'include':_0x52635c[_0x264c('0x15')]?_0x52635c[_0x264c('0x15')][_0x264c('0x18')]?_[_0x264c('0x19')](_0x52635c[_0x264c('0x15')][_0x264c('0x18')],function(_0x59963a){return{'model':db[_0x59963a['model']],'as':_0x59963a['as'],'attributes':_0x59963a[_0x264c('0x17')],'include':_0x59963a[_0x264c('0x18')]?_[_0x264c('0x19')](_0x59963a['include'],function(_0x267bdd){return{'model':db[_0x267bdd[_0x264c('0x1a')]],'as':_0x267bdd['as'],'attributes':_0x267bdd[_0x264c('0x17')],'include':_0x267bdd['include']?_['map'](_0x267bdd['include'],function(_0x340bb8){return{'model':db[_0x340bb8[_0x264c('0x1a')]],'as':_0x340bb8['as'],'attributes':_0x340bb8['attributes']};}):[]};}):[]};}):[]:[]})[_0x264c('0x1b')](function(_0x15834f){logger[_0x264c('0xf')](_0x264c('0x12'),_0x52635c);logger[_0x264c('0x1c')](_0x264c('0x12'),_0x52635c,JSON[_0x264c('0xa')](_0x15834f));_0x52ce67(_0x15834f);})[_0x264c('0x11')](function(_0x2e4aa6){logger['error'](_0x264c('0x12'),_0x2e4aa6[_0x264c('0xd')],_0x52635c);_0x301d92(_0x84ba37[_0x264c('0xb')](0x1f4,_0x2e4aa6[_0x264c('0xd')]));});});};
\ No newline at end of file
+var _0xebc5=['request\x20sent','debug','stringify','error','code','message','result','catch','ShowPause','Pause','find','options','where','attributes','include','map','model','info','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','Pause,\x20%s,\x20%s'];(function(_0x3fab86,_0x4ca65a){var _0x1778f1=function(_0x4412d7){while(--_0x4412d7){_0x3fab86['push'](_0x3fab86['shift']());}};_0x1778f1(++_0x4ca65a);}(_0xebc5,0x11a));var _0x5ebc=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xebc5[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x5ebc('0x0'));var util=require('util');var moment=require(_0x5ebc('0x1'));var BPromise=require(_0x5ebc('0x2'));var rs=require(_0x5ebc('0x3'));var fs=require('fs');var Redis=require(_0x5ebc('0x4'));var db=require(_0x5ebc('0x5'))['db'];var utils=require(_0x5ebc('0x6'));var logger=require('../../config/logger')(_0x5ebc('0x7'));var config=require(_0x5ebc('0x8'));var jayson=require(_0x5ebc('0x9'));var client=jayson[_0x5ebc('0xa')][_0x5ebc('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5e9562,_0x190e2d,_0x23ec9a){return new BPromise(function(_0x1a1c47,_0x487294){return client[_0x5ebc('0xc')](_0x5e9562,_0x23ec9a)[_0x5ebc('0xd')](function(_0x20b731){logger['info'](_0x5ebc('0xe'),_0x190e2d,_0x5ebc('0xf'));logger[_0x5ebc('0x10')]('Pause,\x20%s,\x20%s,\x20%s',_0x190e2d,_0x5ebc('0xf'),JSON[_0x5ebc('0x11')](_0x20b731));if(_0x20b731[_0x5ebc('0x12')]){if(_0x20b731['error'][_0x5ebc('0x13')]===0x1f4){logger[_0x5ebc('0x12')]('Pause,\x20%s,\x20%s',_0x190e2d,_0x20b731['error']['message']);return _0x487294(_0x20b731['error'][_0x5ebc('0x14')]);}logger[_0x5ebc('0x12')]('Pause,\x20%s,\x20%s',_0x190e2d,_0x20b731['error'][_0x5ebc('0x14')]);return _0x1a1c47(_0x20b731['error'][_0x5ebc('0x14')]);}else{logger['info']('Pause,\x20%s,\x20%s',_0x190e2d,'request\x20sent');_0x1a1c47(_0x20b731[_0x5ebc('0x15')][_0x5ebc('0x14')]);}})[_0x5ebc('0x16')](function(_0x9f938e){logger['error'](_0x5ebc('0xe'),_0x190e2d,_0x9f938e);_0x487294(_0x9f938e);});});}exports[_0x5ebc('0x17')]=function(_0x4941ae){var _0x320da3=this;return new Promise(function(_0x472d90,_0x3ba3d9){return db[_0x5ebc('0x18')][_0x5ebc('0x19')]({'raw':_0x4941ae[_0x5ebc('0x1a')]?_0x4941ae[_0x5ebc('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x4941ae[_0x5ebc('0x1a')]?_0x4941ae[_0x5ebc('0x1a')][_0x5ebc('0x1b')]||null:null,'attributes':_0x4941ae[_0x5ebc('0x1a')]?_0x4941ae['options'][_0x5ebc('0x1c')]||null:null,'include':_0x4941ae['options']?_0x4941ae[_0x5ebc('0x1a')][_0x5ebc('0x1d')]?_[_0x5ebc('0x1e')](_0x4941ae['options']['include'],function(_0x16e4f5){return{'model':db[_0x16e4f5[_0x5ebc('0x1f')]],'as':_0x16e4f5['as'],'attributes':_0x16e4f5[_0x5ebc('0x1c')],'include':_0x16e4f5[_0x5ebc('0x1d')]?_['map'](_0x16e4f5['include'],function(_0x1b85c5){return{'model':db[_0x1b85c5[_0x5ebc('0x1f')]],'as':_0x1b85c5['as'],'attributes':_0x1b85c5[_0x5ebc('0x1c')],'include':_0x1b85c5[_0x5ebc('0x1d')]?_[_0x5ebc('0x1e')](_0x1b85c5[_0x5ebc('0x1d')],function(_0xff5423){return{'model':db[_0xff5423[_0x5ebc('0x1f')]],'as':_0xff5423['as'],'attributes':_0xff5423[_0x5ebc('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x5ebc('0xd')](function(_0x3d59e2){logger[_0x5ebc('0x20')](_0x5ebc('0x17'),_0x4941ae);logger[_0x5ebc('0x10')](_0x5ebc('0x17'),_0x4941ae,JSON[_0x5ebc('0x11')](_0x3d59e2));_0x472d90(_0x3d59e2);})[_0x5ebc('0x16')](function(_0x53983a){logger[_0x5ebc('0x12')](_0x5ebc('0x17'),_0x53983a[_0x5ebc('0x14')],_0x4941ae);_0x3ba3d9(_0x320da3['error'](0x1f4,_0x53983a[_0x5ebc('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8b2=['post','put','update','delete','multer','util','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/webhook','webhookGet','/:id','/:id/download','download','diskStorage','root','server/files/plugins','originalname','replace','format','%s-%s%s','now','extname','single','file','upload'];(function(_0x36fe46,_0x40010c){var _0x4d2e9c=function(_0x2dfa20){while(--_0x2dfa20){_0x36fe46['push'](_0x36fe46['shift']());}};_0x4d2e9c(++_0x40010c);}(_0xc8b2,0x1c6));var _0x2c8b=function(_0x487b94,_0x1e3b39){_0x487b94=_0x487b94-0x0;var _0x2397fa=_0xc8b2[_0x487b94];return _0x2397fa;};'use strict';var multer=require(_0x2c8b('0x0'));var util=require(_0x2c8b('0x1'));var path=require('path');var timeout=require(_0x2c8b('0x2'));var express=require('express');var router=express['Router']();var auth=require(_0x2c8b('0x3'));var interaction=require(_0x2c8b('0x4'));var config=require(_0x2c8b('0x5'));var controller=require('./plugin.controller');router['get']('/',auth[_0x2c8b('0x6')](),controller[_0x2c8b('0x7')]);router[_0x2c8b('0x8')](_0x2c8b('0x9'),controller[_0x2c8b('0xa')]);router[_0x2c8b('0x8')](_0x2c8b('0xb'),auth[_0x2c8b('0x6')](),controller['show']);router[_0x2c8b('0x8')](_0x2c8b('0xc'),auth['isAuthenticated'](),controller[_0x2c8b('0xd')]);var upload=multer({'storage':multer[_0x2c8b('0xe')]({'destination':function(_0x5662b8,_0x2caa1b,_0x13bbca){_0x13bbca(null,path['join'](config[_0x2c8b('0xf')],_0x2c8b('0x10')));},'filename':function(_0x1ff294,_0x204392,_0x4c013e){_0x204392['originalname']=_0x204392[_0x2c8b('0x11')][_0x2c8b('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x4c013e(null,util[_0x2c8b('0x13')](_0x2c8b('0x14'),path['basename'](_0x204392[_0x2c8b('0x11')],path['extname'](_0x204392[_0x2c8b('0x11')])),Date[_0x2c8b('0x15')](),path[_0x2c8b('0x16')](_0x204392[_0x2c8b('0x11')])));}})});router['post']('/',upload[_0x2c8b('0x17')](_0x2c8b('0x18')),controller[_0x2c8b('0x19')]);router[_0x2c8b('0x1a')]('/webhook',controller['webhookPost']);router[_0x2c8b('0x1b')](_0x2c8b('0xb'),auth['isAuthenticated'](),controller[_0x2c8b('0x1c')]);router[_0x2c8b('0x1d')](_0x2c8b('0xb'),auth[_0x2c8b('0x6')](),controller[_0x2c8b('0x1d')]);module['exports']=router;
\ No newline at end of file
+var _0xfc46=['./plugin.controller','get','isAuthenticated','index','/webhook','/:id','show','/:id/download','download','diskStorage','join','root','server/files/plugins','originalname','replace','format','%s-%s%s','basename','extname','now','post','file','upload','put','update','delete','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x5a31b2,_0x527d70){var _0x2d84c8=function(_0x235697){while(--_0x235697){_0x5a31b2['push'](_0x5a31b2['shift']());}};_0x2d84c8(++_0x527d70);}(_0xfc46,0x110));var _0x6fc4=function(_0x21a2b3,_0x5d6564){_0x21a2b3=_0x21a2b3-0x0;var _0x4651a7=_0xfc46[_0x21a2b3];return _0x4651a7;};'use strict';var multer=require(_0x6fc4('0x0'));var util=require(_0x6fc4('0x1'));var path=require('path');var timeout=require(_0x6fc4('0x2'));var express=require(_0x6fc4('0x3'));var router=express[_0x6fc4('0x4')]();var auth=require(_0x6fc4('0x5'));var interaction=require(_0x6fc4('0x6'));var config=require(_0x6fc4('0x7'));var controller=require(_0x6fc4('0x8'));router[_0x6fc4('0x9')]('/',auth[_0x6fc4('0xa')](),controller[_0x6fc4('0xb')]);router[_0x6fc4('0x9')](_0x6fc4('0xc'),controller['webhookGet']);router[_0x6fc4('0x9')](_0x6fc4('0xd'),auth['isAuthenticated'](),controller[_0x6fc4('0xe')]);router[_0x6fc4('0x9')](_0x6fc4('0xf'),auth[_0x6fc4('0xa')](),controller[_0x6fc4('0x10')]);var upload=multer({'storage':multer[_0x6fc4('0x11')]({'destination':function(_0x39645e,_0x5f3dfb,_0x475c71){_0x475c71(null,path[_0x6fc4('0x12')](config[_0x6fc4('0x13')],_0x6fc4('0x14')));},'filename':function(_0x5848d5,_0x25ed22,_0x34e0fe){_0x25ed22[_0x6fc4('0x15')]=_0x25ed22['originalname'][_0x6fc4('0x16')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x34e0fe(null,util[_0x6fc4('0x17')](_0x6fc4('0x18'),path[_0x6fc4('0x19')](_0x25ed22['originalname'],path[_0x6fc4('0x1a')](_0x25ed22[_0x6fc4('0x15')])),Date[_0x6fc4('0x1b')](),path[_0x6fc4('0x1a')](_0x25ed22['originalname'])));}})});router[_0x6fc4('0x1c')]('/',upload['single'](_0x6fc4('0x1d')),controller[_0x6fc4('0x1e')]);router['post'](_0x6fc4('0xc'),controller['webhookPost']);router[_0x6fc4('0x1f')](_0x6fc4('0xd'),auth[_0x6fc4('0xa')](),controller[_0x6fc4('0x20')]);router[_0x6fc4('0x21')](_0x6fc4('0xd'),auth[_0x6fc4('0xa')](),controller[_0x6fc4('0x21')]);module[_0x6fc4('0x22')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3754=['adminOnly','always','never','Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.','sequelize','exports','STRING','ENUM','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.'];(function(_0x3c49b2,_0x285e48){var _0x2d9203=function(_0x486d6f){while(--_0x486d6f){_0x3c49b2['push'](_0x3c49b2['shift']());}};_0x2d9203(++_0x285e48);}(_0x3754,0x72));var _0x4375=function(_0x48ab64,_0x5e57ae){_0x48ab64=_0x48ab64-0x0;var _0x12d858=_0x3754[_0x48ab64];return _0x12d858;};'use strict';var Sequelize=require(_0x4375('0x0'));module[_0x4375('0x1')]={'name':{'type':Sequelize[_0x4375('0x2')]},'type':{'type':Sequelize[_0x4375('0x3')]('html','script')},'description':{'type':Sequelize[_0x4375('0x4')]},'version':{'type':Sequelize['TEXT']},'path':{'type':Sequelize[_0x4375('0x2')],'comment':_0x4375('0x5')},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x4375('0x6')},'sidebar':{'type':Sequelize[_0x4375('0x3')](_0x4375('0x7'),'agentOnly',_0x4375('0x8'),_0x4375('0x9')),'defaultValue':_0x4375('0x8'),'comment':_0x4375('0xa')},'icon':{'type':Sequelize[_0x4375('0x2')]},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize[_0x4375('0x2')]},'scriptName':{'type':Sequelize[_0x4375('0x2')]},'scriptPath':{'type':Sequelize[_0x4375('0x2')]}};
\ No newline at end of file
+var _0xe107=['exports','STRING','ENUM','html','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','agentOnly'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe107,0x1a0));var _0x7e10=function(_0x51bc26,_0x5260cc){_0x51bc26=_0x51bc26-0x0;var _0x1dd6fa=_0xe107[_0x51bc26];return _0x1dd6fa;};'use strict';var Sequelize=require('sequelize');module[_0x7e10('0x0')]={'name':{'type':Sequelize[_0x7e10('0x1')]},'type':{'type':Sequelize[_0x7e10('0x2')](_0x7e10('0x3'),'script')},'description':{'type':Sequelize['TEXT']},'version':{'type':Sequelize[_0x7e10('0x4')]},'path':{'type':Sequelize[_0x7e10('0x1')],'comment':_0x7e10('0x5')},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x7e10('0x6')},'sidebar':{'type':Sequelize[_0x7e10('0x2')]('adminOnly',_0x7e10('0x7'),'always','never'),'defaultValue':'always','comment':'Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.'},'icon':{'type':Sequelize[_0x7e10('0x1')]},'adminUrl':{'type':Sequelize[_0x7e10('0x1')]},'agentUrl':{'type':Sequelize[_0x7e10('0x1')]},'scriptName':{'type':Sequelize['STRING']},'scriptPath':{'type':Sequelize[_0x7e10('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0296=['./plugin.socket','sendStatus','end','status','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','error','name','send','index','Plugin','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','day','add','merge','filter','map','includeAll','include','findAll','rows','catch','show','options','find','params','server/files/plugins','format','%s.zip','basename','createWriteStream','zip','code','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','join','root','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','download','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','extname','chmodSync','0777','Invalid\x20plugin\x20structure','isDirectory','readdirSync','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','undefined','Invalid\x20manifest:\x20name\x20missing','type','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','always','icon','icon-apps','plugins','Warning:\x20admin\x20view\x20not\x20specified','test','Warning:\x20agent\x20view\x20not\x20specified','create','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','dirname','webhookGet','resolve','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','encoding','method','headers','statusCode','body','webhookPost','\x27PATH\x27\x20parameter\x20not\x20specified','http://localhost:','%s%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost'];(function(_0x1ccdf7,_0x215d5a){var _0x52a0ae=function(_0x40324a){while(--_0x40324a){_0x1ccdf7['push'](_0x1ccdf7['shift']());}};_0x52a0ae(++_0x215d5a);}(_0x0296,0x12a));var _0x6029=function(_0xe27035,_0x1f4876){_0xe27035=_0xe27035-0x0;var _0x3745bc=_0x0296[_0xe27035];return _0x3745bc;};'use strict';var pdf=require(_0x6029('0x0'));var emlformat=require(_0x6029('0x1'));var rimraf=require(_0x6029('0x2'));var zipdir=require(_0x6029('0x3'));var jsonpatch=require(_0x6029('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6029('0x5'));var Mustache=require(_0x6029('0x6'));var util=require(_0x6029('0x7'));var path=require(_0x6029('0x8'));var sox=require(_0x6029('0x9'));var csv=require(_0x6029('0xa'));var ejs=require(_0x6029('0xb'));var fs=require('fs');var _=require(_0x6029('0xc'));var squel=require(_0x6029('0xd'));var crypto=require(_0x6029('0xe'));var jsforce=require(_0x6029('0xf'));var deskjs=require(_0x6029('0x10'));var toCsv=require(_0x6029('0xa'));var querystring=require(_0x6029('0x11'));var Papa=require(_0x6029('0x12'));var extract=require(_0x6029('0x13'));var rimraf=require(_0x6029('0x2'));var archiver=require(_0x6029('0x14'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x6029('0x15'));var utils=require(_0x6029('0x16'));var config=require(_0x6029('0x17'));var db=require(_0x6029('0x18'))['db'];config[_0x6029('0x19')]=_[_0x6029('0x1a')](config[_0x6029('0x19')],{'host':_0x6029('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x6029('0x19')]);require(_0x6029('0x1c'))['register'](socket);function respondWithStatusCode(_0x276998,_0x22a0dd){_0x22a0dd=_0x22a0dd||0xcc;return function(_0x1cd9f1){if(_0x1cd9f1){return _0x276998[_0x6029('0x1d')](_0x22a0dd);}return _0x276998['status'](_0x22a0dd)[_0x6029('0x1e')]();};}function respondWithResult(_0x3a6510,_0x4af593){_0x4af593=_0x4af593||0xc8;return function(_0x52e1cc){if(_0x52e1cc){return _0x3a6510[_0x6029('0x1f')](_0x4af593)[_0x6029('0x20')](_0x52e1cc);}};}function respondWithFilteredResult(_0x2fafa4,_0x37e49a){return function(_0x5c39b6){if(_0x5c39b6){var _0x3ff439=_0x5c39b6[_0x6029('0x21')],_0x4fa8df=_0x37e49a[_0x6029('0x22')],_0x4d4e58=_0x37e49a[_0x6029('0x22')]+_0x37e49a[_0x6029('0x23')],_0x1c2bbf;if(_0x4d4e58>=_0x3ff439){_0x4d4e58=_0x3ff439;_0x1c2bbf=0xc8;}else{_0x1c2bbf=0xce;}_0x2fafa4[_0x6029('0x1f')](_0x1c2bbf);return _0x2fafa4[_0x6029('0x24')](_0x6029('0x25'),_0x4fa8df+'-'+_0x4d4e58+'/'+_0x3ff439)[_0x6029('0x20')](_0x5c39b6);}return null;};}function patchUpdates(_0x1c2c46){return function(_0x33d60a){try{jsonpatch['apply'](_0x33d60a,_0x1c2c46,!![]);}catch(_0x549f93){return BPromise[_0x6029('0x26')](_0x549f93);}return _0x33d60a['save']();};}function saveUpdates(_0xdc3290,_0x55b22d){return function(_0x1ff44d){if(_0x1ff44d){return _0x1ff44d[_0x6029('0x27')](_0xdc3290)[_0x6029('0x28')](function(_0x1f5cb9){return _0x1f5cb9;});}return null;};}function removeEntity(_0x3736e5,_0x15976){return function(_0x282a07){if(_0x282a07){return _0x282a07[_0x6029('0x29')]()[_0x6029('0x28')](function(){_0x3736e5[_0x6029('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x35aeff,_0x36d927){return function(_0x4ee72a){if(!_0x4ee72a){_0x35aeff[_0x6029('0x1d')](0x194);}return _0x4ee72a;};}function handleError(_0x4869be,_0x44a6f3){_0x44a6f3=_0x44a6f3||0x1f4;return function(_0x1ee688){logger[_0x6029('0x2a')](_0x1ee688['stack']);if(_0x1ee688[_0x6029('0x2b')]){delete _0x1ee688[_0x6029('0x2b')];}_0x4869be['status'](_0x44a6f3)[_0x6029('0x2c')](_0x1ee688);};}exports[_0x6029('0x2d')]=function(_0xc98a58,_0x3fe9da){var _0x1d27c0={},_0x1d02d8={},_0xeccefa={'count':0x0,'rows':[]};var _0x4d9bf9=db[_0x6029('0x2e')][_0x6029('0x2f')];_0x1d02d8[_0x6029('0x30')]=_[_0x6029('0x31')](_0x4d9bf9);var _0x1a7971={'dateStart':_0xc98a58[_0x6029('0x32')][_0x6029('0x33')],'dateEnd':_0xc98a58[_0x6029('0x32')]['dateEnd']};delete _0xc98a58[_0x6029('0x32')][_0x6029('0x33')];delete _0xc98a58[_0x6029('0x32')][_0x6029('0x34')];_0x1d02d8[_0x6029('0x32')]=_['keys'](_0xc98a58[_0x6029('0x32')]);_0x1d02d8[_0x6029('0x35')]=_[_0x6029('0x36')](_0x1d02d8[_0x6029('0x30')],_0x1d02d8[_0x6029('0x32')]);_0x1d27c0[_0x6029('0x37')]=_['intersection'](_0x1d02d8[_0x6029('0x30')],qs[_0x6029('0x38')](_0xc98a58['query']['fields']));_0x1d27c0['attributes']=_0x1d27c0[_0x6029('0x37')][_0x6029('0x39')]?_0x1d27c0[_0x6029('0x37')]:_0x1d02d8[_0x6029('0x30')];if(!_0xc98a58[_0x6029('0x32')]['hasOwnProperty'](_0x6029('0x3a'))){_0x1d27c0[_0x6029('0x23')]=qs[_0x6029('0x23')](_0xc98a58['query'][_0x6029('0x23')]);_0x1d27c0[_0x6029('0x22')]=qs[_0x6029('0x22')](_0xc98a58[_0x6029('0x32')]['offset']);}_0x1d27c0[_0x6029('0x3b')]=qs[_0x6029('0x3c')](_0xc98a58[_0x6029('0x32')][_0x6029('0x3c')]);_0x1d27c0[_0x6029('0x3d')]=qs[_0x6029('0x35')](_[_0x6029('0x3e')](_0xc98a58[_0x6029('0x32')],_0x1d02d8[_0x6029('0x35')]));if(_0x1a7971[_0x6029('0x33')]){if(_0x1a7971[_0x6029('0x34')]){_0x1a7971['dateEnd']=moment(_0x1a7971['dateEnd'])['add'](0x1,_0x6029('0x3f'));}else{_0x1a7971['dateEnd']=moment(_0x1a7971[_0x6029('0x33')])[_0x6029('0x40')](0x1,_0x6029('0x3f'));}_[_0x6029('0x41')](_0x1d27c0['where'],{'createdAt':{'$gte':_0x1a7971[_0x6029('0x33')],'$lte':_0x1a7971[_0x6029('0x34')]}});}if(_0xc98a58[_0x6029('0x32')][_0x6029('0x42')]){_0x1d27c0['where']=_[_0x6029('0x41')](_0x1d27c0[_0x6029('0x3d')],{'$or':_[_0x6029('0x43')](_0x1d27c0[_0x6029('0x37')],function(_0x5e52b6){var _0x5287db={};_0x5287db[_0x5e52b6]={'$like':'%'+_0xc98a58['query'][_0x6029('0x42')]+'%'};return _0x5287db;})});}_0x1d27c0=_[_0x6029('0x41')]({},_0x1d27c0,_0xc98a58['options']);var _0x2ff376={'where':_0x1d27c0[_0x6029('0x3d')]};return db[_0x6029('0x2e')]['count'](_0x2ff376)[_0x6029('0x28')](function(_0x263b65){_0xeccefa[_0x6029('0x21')]=_0x263b65;if(_0xc98a58[_0x6029('0x32')][_0x6029('0x44')]){_0x1d27c0[_0x6029('0x45')]=[{'all':!![]}];}return db[_0x6029('0x2e')][_0x6029('0x46')](_0x1d27c0);})[_0x6029('0x28')](function(_0x5160ca){_0xeccefa[_0x6029('0x47')]=_0x5160ca;return _0xeccefa;})[_0x6029('0x28')](respondWithFilteredResult(_0x3fe9da,_0x1d27c0))[_0x6029('0x48')](handleError(_0x3fe9da,null));};exports[_0x6029('0x49')]=function(_0x2b3caa,_0x9c6d9){var _0x18a97a={'raw':!![],'where':{'id':_0x2b3caa['params']['id']}},_0x4224b1={};_0x4224b1[_0x6029('0x30')]=_['keys'](db[_0x6029('0x2e')]['rawAttributes']);_0x4224b1[_0x6029('0x32')]=_[_0x6029('0x31')](_0x2b3caa[_0x6029('0x32')]);_0x4224b1[_0x6029('0x35')]=_[_0x6029('0x36')](_0x4224b1[_0x6029('0x30')],_0x4224b1['query']);_0x18a97a[_0x6029('0x37')]=_[_0x6029('0x36')](_0x4224b1[_0x6029('0x30')],qs[_0x6029('0x38')](_0x2b3caa[_0x6029('0x32')][_0x6029('0x38')]));_0x18a97a[_0x6029('0x37')]=_0x18a97a[_0x6029('0x37')][_0x6029('0x39')]?_0x18a97a[_0x6029('0x37')]:_0x4224b1[_0x6029('0x30')];if(_0x2b3caa[_0x6029('0x32')][_0x6029('0x44')]){_0x18a97a['include']=[{'all':!![]}];}_0x18a97a=_[_0x6029('0x41')]({},_0x18a97a,_0x2b3caa[_0x6029('0x4a')]);return db[_0x6029('0x2e')][_0x6029('0x4b')](_0x18a97a)[_0x6029('0x28')](handleEntityNotFound(_0x9c6d9,null))['then'](respondWithResult(_0x9c6d9,null))['catch'](handleError(_0x9c6d9,null));};exports['download']=function(_0x12d7ed,_0x17eef0,_0x1369bf){return db['Plugin'][_0x6029('0x4b')]({'where':{'id':_0x12d7ed[_0x6029('0x4c')]['id']},'attributes':['name','path'],'raw':!![]})[_0x6029('0x28')](handleEntityNotFound(_0x17eef0,null))[_0x6029('0x28')](function(_0xede5c9){if(_0xede5c9){var _0x17a2c1=path['join'](config['root'],_0x6029('0x4d'),util[_0x6029('0x4e')](_0x6029('0x4f'),path[_0x6029('0x50')](_0xede5c9[_0x6029('0x8')])));var _0x199593=fs[_0x6029('0x51')](_0x17a2c1);var _0x63b36a=archiver(_0x6029('0x52'),{'zlib':{'level':0x9}});_0x63b36a['on']('warning',function(_0x3d49ed){if(_0x3d49ed[_0x6029('0x53')]==='ENOENT'){logger['error'](_0x3d49ed);}else{throw new db[(_0x6029('0x54'))][(_0x6029('0x55'))](_0x6029('0x56'));}});_0x63b36a['on']('error',function(_0x494d13){throw new db[(_0x6029('0x54'))][(_0x6029('0x55'))](_0x6029('0x56'));});_0x63b36a[_0x6029('0x57')](_0x199593);_0x63b36a[_0x6029('0x58')](_0x6029('0x59'),{'cwd':path[_0x6029('0x5a')](config[_0x6029('0x5b')],_0x6029('0x4d'),path['dirname'](_0xede5c9[_0x6029('0x8')])),'ignore':[path[_0x6029('0x5a')](path[_0x6029('0x50')](_0xede5c9[_0x6029('0x8')]),_0x6029('0x5c')),path[_0x6029('0x5a')](path['basename'](_0xede5c9[_0x6029('0x8')]),_0x6029('0x5d'))],'nodir':!![]})[_0x6029('0x5e')]();_0x199593['on'](_0x6029('0x5f'),function(){if(!fs[_0x6029('0x60')](_0x17a2c1)){throw new db['Sequelize'][(_0x6029('0x55'))](_0x6029('0x61'));}return _0x17eef0[_0x6029('0x62')](_0x17a2c1,util[_0x6029('0x4e')](_0x6029('0x4f'),path[_0x6029('0x50')](_0xede5c9[_0x6029('0x8')])),function(_0x47e3f6){if(_0x47e3f6){throw new db[(_0x6029('0x54'))][(_0x6029('0x55'))](_0x6029('0x63'));}fs[_0x6029('0x64')](_0x17a2c1);logger[_0x6029('0x65')](_0x6029('0x66'));logger[_0x6029('0x65')](_0x6029('0x67'));});});}return null;})[_0x6029('0x48')](handleError(_0x17eef0,null));};exports[_0x6029('0x68')]=function(_0x207054,_0xf35205,_0x3bb3f6){var _0x3694ac=path[_0x6029('0x50')](_0x207054[_0x6029('0x69')][_0x6029('0x6a')],path[_0x6029('0x6b')](_0x207054[_0x6029('0x69')][_0x6029('0x6a')]));var _0x1785c0=path['join'](config['root'],_0x6029('0x4d'),_0x207054[_0x6029('0x69')][_0x6029('0x6a')]);var _0x865e3c=path[_0x6029('0x5a')](config[_0x6029('0x5b')],'server/files/plugins',_0x3694ac);logger[_0x6029('0x65')]('Plugin\x20upload\x20filepath:\x20%s',_0x1785c0);logger[_0x6029('0x65')]('Plugin\x20upload\x20destination:\x20%s',_0x865e3c);try{fs[_0x6029('0x6c')](_0x1785c0,parseInt(_0x6029('0x6d'),0x8));extract(_0x1785c0,{'dir':_0x865e3c},function(_0x1f9633){if(_0x1f9633){logger[_0x6029('0x2a')](_0x1f9633);handleError(_0x1f9633,!![]);};var _0xd818ea=fs['readdirSync'](_0x865e3c);if(_0xd818ea[_0x6029('0x39')]>0x1){removeReferences(_0x1785c0,_0x865e3c);logger[_0x6029('0x2a')](_0x6029('0x6e'));return _0x3bb3f6(new Error(_0x6029('0x6e')));}var _0x1128f3=fs['lstatSync'](path[_0x6029('0x5a')](_0x865e3c,_0xd818ea[0x0]));if(_0x1128f3['isFile']()){removeReferences(_0x1785c0,_0x865e3c);logger[_0x6029('0x2a')](_0x6029('0x6e'));return _0x3bb3f6(new Error(_0x6029('0x6e')));}if(_0x1128f3[_0x6029('0x6f')]()){var _0x168a32=fs[_0x6029('0x70')](path[_0x6029('0x5a')](_0x865e3c,_0xd818ea[0x0]));if(_0x168a32[_0x6029('0x39')]===0x0){removeReferences(_0x1785c0,_0x865e3c);logger['error']('Invalid\x20plugin\x20structure');return _0x3bb3f6(new Error('Invalid\x20plugin\x20structure'));}var _0x528bfc=_0x168a32[_0x6029('0x71')](function(_0x4126cd){return _0x4126cd===_0x6029('0x72');});if(!_0x528bfc){return _0x3bb3f6(new Error(_0x6029('0x73')));}var _0x57085c=fs[_0x6029('0x74')](path['join'](_0x865e3c,_0xd818ea[0x0],'manifest.json'));var _0x21a851=JSON[_0x6029('0x75')](_0x57085c);if(_0x6029('0x76')==typeof _0x21a851[_0x6029('0x2b')]){return _0x3bb3f6(new Error(_0x6029('0x77')));}if(_0x6029('0x76')==typeof _0x21a851[_0x6029('0x78')]){return _0x3bb3f6(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0x6029('0x76')==typeof _0x21a851[_0x6029('0x79')]){return _0x3bb3f6(new Error(_0x6029('0x7a')));}if(_0x6029('0x76')==typeof _0x21a851[_0x6029('0x7b')]){return _0x3bb3f6(new Error(_0x6029('0x7c')));}if(_0x21a851[_0x6029('0x78')]===_0x6029('0x7d')){if(_0x6029('0x76')==typeof _0x21a851[_0x6029('0x7b')][_0x6029('0x7e')]){return _0x3bb3f6(new Error(_0x6029('0x7f')));}if(_0x6029('0x76')==typeof _0x21a851['parameters'][_0x6029('0x7e')][_0x6029('0x80')]&&'undefined'==typeof _0x21a851[_0x6029('0x7b')]['views'][_0x6029('0x81')]){return _0x3bb3f6(new Error(_0x6029('0x82')));}}else if(_0x21a851[_0x6029('0x78')]===_0x6029('0x83')){if('undefined'==typeof _0x21a851[_0x6029('0x7b')][_0x6029('0x84')]){return _0x3bb3f6(new Error(_0x6029('0x85')));}if(_0x6029('0x76')==typeof _0x21a851[_0x6029('0x7b')]['scriptPath']){return _0x3bb3f6(new Error(_0x6029('0x86')));}}else{return _0x3bb3f6(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x401610=_0x21a851[_0x6029('0x2b')];var _0x1ffce9=_0x21a851[_0x6029('0x87')];var _0x18247a=_0x21a851[_0x6029('0x78')];var _0xd7f26e=_0x21a851['sidebar']?_0x21a851[_0x6029('0x88')]:_0x6029('0x89');var _0x3436bd=_0x21a851[_0x6029('0x8a')]?_0x21a851[_0x6029('0x8a')]:_0x6029('0x8b');var _0x2b61e2='';var _0x2e780d='';var _0x205a3a='';var _0x595eec='';var _0x1d17e6=_0x21a851['version'];if(_0x18247a==='html'){if(_0x6029('0x76')!=typeof _0x21a851[_0x6029('0x7b')]['views'][_0x6029('0x80')]){var _0x358aac=_0x21a851[_0x6029('0x7b')][_0x6029('0x7e')][_0x6029('0x80')];if(!/^(f|ht)tps?:\/\//i['test'](_0x358aac)){_0x2b61e2=path['join'](_0x6029('0x8c'),_0x3694ac,_0xd818ea[0x0],_0x358aac);}else{_0x2b61e2=_0x358aac;}}else{logger[_0x6029('0x65')](_0x6029('0x8d'));}if('undefined'!=typeof _0x21a851[_0x6029('0x7b')][_0x6029('0x7e')][_0x6029('0x81')]){var _0x155629=_0x21a851[_0x6029('0x7b')][_0x6029('0x7e')][_0x6029('0x81')];if(!/^(f|ht)tps?:\/\//i[_0x6029('0x8e')](_0x155629)){_0x2e780d=path[_0x6029('0x5a')](_0x6029('0x8c'),_0x3694ac,_0xd818ea[0x0],_0x155629);}else{_0x2e780d=_0x155629;}}else{logger[_0x6029('0x65')](_0x6029('0x8f'));}}else if(_0x18247a===_0x6029('0x83')){_0x205a3a=_0x21a851['parameters'][_0x6029('0x84')];_0x595eec=_0x21a851[_0x6029('0x7b')]['scriptPath'];if(_0x6029('0x76')!=typeof _0x21a851[_0x6029('0x7b')]['views']){if(_0x6029('0x76')!=typeof _0x21a851[_0x6029('0x7b')][_0x6029('0x7e')][_0x6029('0x80')]){var _0x358aac=_0x21a851[_0x6029('0x7b')][_0x6029('0x7e')][_0x6029('0x80')];if(!/^(f|ht)tps?:\/\//i[_0x6029('0x8e')](_0x358aac)){_0x2b61e2=path[_0x6029('0x5a')](_0x6029('0x8c'),_0x3694ac,_0xd818ea[0x0],_0x358aac);}else{_0x2b61e2=_0x358aac;}}if('undefined'!=typeof _0x21a851[_0x6029('0x7b')][_0x6029('0x7e')][_0x6029('0x81')]){var _0x155629=_0x21a851[_0x6029('0x7b')][_0x6029('0x7e')]['agent'];if(!/^(f|ht)tps?:\/\//i['test'](_0x155629)){_0x2e780d=path['join'](_0x6029('0x8c'),_0x3694ac,_0xd818ea[0x0],_0x155629);}else{_0x2e780d=_0x155629;}}}}var _0x4903e1={'name':_0x401610,'description':_0x1ffce9,'path':path[_0x6029('0x5a')](_0x3694ac,_0xd818ea[0x0]),'type':_0x18247a,'sidebar':_0xd7f26e,'icon':_0x3436bd,'adminUrl':_0x2b61e2,'agentUrl':_0x2e780d,'scriptName':_0x205a3a,'scriptPath':_0x595eec,'version':_0x1d17e6};removeReferences(_0x1785c0,null);return db['Plugin'][_0x6029('0x90')](_0x4903e1)[_0x6029('0x28')](respondWithResult(_0xf35205,null))[_0x6029('0x48')](handleError(_0xf35205,null));}});}catch(_0x39f26d){_0xf35205[_0x6029('0x1f')](0x1f4)[_0x6029('0x2c')](_0x39f26d);}};function removeReferences(_0x437861,_0x5e796b){try{if(_0x437861){fs[_0x6029('0x64')](_0x437861);logger['info'](_0x6029('0x91'));}if(_0x5e796b){rimraf(_0x5e796b,function(){});logger['info'](_0x6029('0x92'));}}catch(_0xcc2b1b){logger[_0x6029('0x2a')](_0xcc2b1b);}}exports[_0x6029('0x27')]=function(_0xc15ab7,_0x57709b,_0x364112){return db[_0x6029('0x2e')]['find']({'where':{'id':_0xc15ab7[_0x6029('0x4c')]['id']}})[_0x6029('0x28')](handleEntityNotFound(_0x57709b,null))[_0x6029('0x28')](saveUpdates(_0xc15ab7['body'],null))['then'](respondWithResult(_0x57709b,null))[_0x6029('0x48')](handleError(_0x57709b,null));};exports[_0x6029('0x93')]=function(_0x55c1a7,_0x2e27ff,_0x4e18b0){return db[_0x6029('0x2e')][_0x6029('0x4b')]({'where':{'id':_0x55c1a7['params']['id']}})[_0x6029('0x28')](function(_0x492c2f){if(_0x492c2f){return _0x492c2f[_0x6029('0x29')]();}})[_0x6029('0x28')](function(_0x434643){rimraf(path[_0x6029('0x5a')](config[_0x6029('0x5b')],_0x6029('0x4d'),path[_0x6029('0x94')](_0x434643[_0x6029('0x8')])),function(){});return _0x434643;})['then'](handleEntityNotFound(_0x2e27ff,null))[_0x6029('0x28')](respondWithStatusCode(_0x2e27ff,null))['catch'](handleError(_0x2e27ff,null));};exports[_0x6029('0x95')]=function(_0x34d98f,_0x355c3d,_0x422be9){return BPromise[_0x6029('0x96')]()[_0x6029('0x28')](function(){if(!_0x34d98f[_0x6029('0x32')][_0x6029('0x8')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x34d98f['query'][_0x6029('0x97')]){throw new Error(_0x6029('0x98'));}var _0x5409ba=_0x34d98f[_0x6029('0x32')][_0x6029('0x99')]?_0x34d98f[_0x6029('0x32')][_0x6029('0x99')]+':'+_0x34d98f[_0x6029('0x32')][_0x6029('0x97')]:'http://localhost:'+_0x34d98f[_0x6029('0x32')][_0x6029('0x97')];var _0x1b0f77=_0x34d98f[_0x6029('0x32')][_0x6029('0x20')]?_0x34d98f[_0x6029('0x32')][_0x6029('0x20')]:!![];var _0x20681d=_0x34d98f['query'][_0x6029('0x9a')]?_0x34d98f[_0x6029('0x32')]['encoding']:null;var _0x49ded9={'method':_0x34d98f[_0x6029('0x9b')],'uri':util[_0x6029('0x4e')]('%s%s',_0x5409ba,_0x34d98f[_0x6029('0x32')][_0x6029('0x8')]),'json':_0x1b0f77,'resolveWithFullResponse':!![],'encoding':_0x20681d,'qs':_0x34d98f[_0x6029('0x32')]};if(_0x34d98f[_0x6029('0x9c')]){_0x49ded9[_0x6029('0x9c')]=_0x34d98f[_0x6029('0x9c')];}return rp(_0x49ded9);})['then'](function(_0x1e9dc6){if(_0x1e9dc6){_0x355c3d[_0x6029('0x24')](_0x1e9dc6[_0x6029('0x9c')]);logger[_0x6029('0x65')](_0x1e9dc6['body']);if(_['endsWith'](_0x34d98f['query'][_0x6029('0x8')],'download')&&_0x1e9dc6[_0x6029('0x9d')]==0x1f4){return _0x355c3d[_0x6029('0x1d')](_0x1e9dc6[_0x6029('0x9d')]);}else{return _0x355c3d[_0x6029('0x1f')](_0x1e9dc6[_0x6029('0x9d')])[_0x6029('0x2c')](_0x1e9dc6[_0x6029('0x9e')]);}}else{return _0x355c3d[_0x6029('0x1d')](0xc8);}})['catch'](handleError(_0x355c3d,null));};exports[_0x6029('0x9f')]=function(_0x4238fc,_0x47fd4a,_0x3e74a4){return BPromise[_0x6029('0x96')]()[_0x6029('0x28')](function(){if(!_0x4238fc[_0x6029('0x32')][_0x6029('0x8')]){throw new Error(_0x6029('0xa0'));}if(!_0x4238fc['query'][_0x6029('0x97')]){throw new Error(_0x6029('0x98'));}var _0x279d18=_0x4238fc[_0x6029('0x32')]['hostname']?_0x4238fc['query'][_0x6029('0x99')]+':'+_0x4238fc[_0x6029('0x32')]['port']:_0x6029('0xa1')+_0x4238fc['query'][_0x6029('0x97')];var _0xe74d3d=_0x4238fc[_0x6029('0x32')][_0x6029('0x20')]?_0x4238fc[_0x6029('0x32')][_0x6029('0x20')]:!![];var _0x467ac7=_0x4238fc[_0x6029('0x32')][_0x6029('0x9a')]?_0x4238fc[_0x6029('0x32')][_0x6029('0x9a')]:null;var _0x258988={'method':_0x4238fc[_0x6029('0x9b')],'uri':util['format'](_0x6029('0xa2'),_0x279d18,_0x4238fc[_0x6029('0x32')][_0x6029('0x8')]),'json':_0xe74d3d,'resolveWithFullResponse':!![],'encoding':_0x467ac7,'body':_0x4238fc[_0x6029('0x9e')]};if(_0x4238fc[_0x6029('0x9c')]){_0x258988[_0x6029('0x9c')]=_0x4238fc[_0x6029('0x9c')];}return rp(_0x258988);})[_0x6029('0x28')](function(_0x142e5d){if(_0x142e5d){_0x47fd4a['set'](_0x142e5d[_0x6029('0x9c')]);logger['info'](_0x142e5d['body']);return _0x47fd4a[_0x6029('0x1f')](_0x142e5d[_0x6029('0x9d')])['send'](_0x142e5d['body']);}else{return _0x47fd4a[_0x6029('0x1d')](0xc8);}})[_0x6029('0x48')](handleError(_0x47fd4a,null));};
\ No newline at end of file
+var _0xab40=['extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','isFile','isDirectory','Plugin\x20manifest\x20missing','readFileSync','manifest.json','parse','undefined','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','type','html','views','agent','script','scriptName','scriptPath','description','sidebar','icon','icon-apps','admin','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','create','send','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','update','webhookGet','resolve','hostname','http://localhost:','encoding','method','%s%s','headers','set','body','endsWith','statusCode','webhookPost','port','\x27PORT\x27\x20parameter\x20not\x20specified','html-pdf','eml-format','request-promise','moment','bluebird','mustache','util','to-csv','lodash','squel','crypto','jsforce','papaparse','ioredis','extract-zip','rimraf','archiver','../../components/parsers/qs','../../config/logger','api','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','json','count','offset','limit','Content-Range','reject','save','then','destroy','error','name','model','keys','query','dateStart','filters','intersection','attributes','fields','order','sort','where','pick','dateEnd','add','day','merge','filter','map','options','Plugin','includeAll','include','rows','catch','params','length','find','download','join','root','format','%s.zip','basename','path','createWriteStream','warning','code','Error\x20while\x20generating\x20the\x20zip\x20archive','Sequelize','pipe','glob','**/*','server/files/plugins','dirname','node_modules/**/*','attachments/**/*','finalize','close','Error','Plugin\x20not\x20found','info','Download\x20completed','file','filename'];(function(_0x2850c0,_0x1363a7){var _0x21e830=function(_0x3ec70a){while(--_0x3ec70a){_0x2850c0['push'](_0x2850c0['shift']());}};_0x21e830(++_0x1363a7);}(_0xab40,0xcd));var _0x0ab4=function(_0x325120,_0x2a6f45){_0x325120=_0x325120-0x0;var _0x28cec0=_0xab40[_0x325120];return _0x28cec0;};'use strict';var pdf=require(_0x0ab4('0x0'));var emlformat=require(_0x0ab4('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0ab4('0x2'));var moment=require(_0x0ab4('0x3'));var BPromise=require(_0x0ab4('0x4'));var Mustache=require(_0x0ab4('0x5'));var util=require(_0x0ab4('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x0ab4('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x0ab4('0x8'));var squel=require(_0x0ab4('0x9'));var crypto=require(_0x0ab4('0xa'));var jsforce=require(_0x0ab4('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0ab4('0xc'));var Redis=require(_0x0ab4('0xd'));var extract=require(_0x0ab4('0xe'));var rimraf=require(_0x0ab4('0xf'));var archiver=require(_0x0ab4('0x10'));var qs=require(_0x0ab4('0x11'));var logger=require(_0x0ab4('0x12'))(_0x0ab4('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x0ab4('0x14'))['db'];config['redis']=_[_0x0ab4('0x15')](config[_0x0ab4('0x16')],{'host':_0x0ab4('0x17'),'port':0x18eb});var socket=require(_0x0ab4('0x18'))(new Redis(config[_0x0ab4('0x16')]));require(_0x0ab4('0x19'))[_0x0ab4('0x1a')](socket);function respondWithStatusCode(_0x2cc644,_0x3cb1df){_0x3cb1df=_0x3cb1df||0xcc;return function(_0x2033c8){if(_0x2033c8){return _0x2cc644[_0x0ab4('0x1b')](_0x3cb1df);}return _0x2cc644[_0x0ab4('0x1c')](_0x3cb1df)[_0x0ab4('0x1d')]();};}function respondWithResult(_0x45fad1,_0x2a83a8){_0x2a83a8=_0x2a83a8||0xc8;return function(_0x2403db){if(_0x2403db){return _0x45fad1[_0x0ab4('0x1c')](_0x2a83a8)[_0x0ab4('0x1e')](_0x2403db);}};}function respondWithFilteredResult(_0x4f37b6,_0x5000d4){return function(_0x49634f){if(_0x49634f){var _0x17422f=_0x49634f[_0x0ab4('0x1f')],_0x30d5df=_0x5000d4[_0x0ab4('0x20')],_0x2f50d2=_0x5000d4[_0x0ab4('0x20')]+_0x5000d4[_0x0ab4('0x21')],_0x53723c;if(_0x2f50d2>=_0x17422f){_0x2f50d2=_0x17422f;_0x53723c=0xc8;}else{_0x53723c=0xce;}_0x4f37b6['status'](_0x53723c);return _0x4f37b6['set'](_0x0ab4('0x22'),_0x30d5df+'-'+_0x2f50d2+'/'+_0x17422f)['json'](_0x49634f);}return null;};}function patchUpdates(_0x2b0e29){return function(_0x30abff){try{jsonpatch['apply'](_0x30abff,_0x2b0e29,!![]);}catch(_0xacd68e){return BPromise[_0x0ab4('0x23')](_0xacd68e);}return _0x30abff[_0x0ab4('0x24')]();};}function saveUpdates(_0x1d5c14,_0x12d06d){return function(_0x52d7d3){if(_0x52d7d3){return _0x52d7d3['update'](_0x1d5c14)[_0x0ab4('0x25')](function(_0x14087f){return _0x14087f;});}return null;};}function removeEntity(_0x392afe,_0x13c882){return function(_0x4e4b80){if(_0x4e4b80){return _0x4e4b80[_0x0ab4('0x26')]()[_0x0ab4('0x25')](function(){_0x392afe[_0x0ab4('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4c5caf,_0x176ff1){return function(_0x1c132c){if(!_0x1c132c){_0x4c5caf[_0x0ab4('0x1b')](0x194);}return _0x1c132c;};}function handleError(_0x4ae515,_0x519b23){_0x519b23=_0x519b23||0x1f4;return function(_0x49c72d){logger[_0x0ab4('0x27')](_0x49c72d['stack']);if(_0x49c72d[_0x0ab4('0x28')]){delete _0x49c72d[_0x0ab4('0x28')];}_0x4ae515['status'](_0x519b23)['send'](_0x49c72d);};}exports['index']=function(_0x3d38a4,_0x183bac){var _0x1cfdad={},_0x3f61cb={},_0x25385e={'count':0x0,'rows':[]};var _0x588e0d=db['Plugin']['rawAttributes'];_0x3f61cb[_0x0ab4('0x29')]=_[_0x0ab4('0x2a')](_0x588e0d);var _0x155d96={'dateStart':_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x2c')],'dateEnd':_0x3d38a4['query']['dateEnd']};delete _0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x2c')];delete _0x3d38a4[_0x0ab4('0x2b')]['dateEnd'];_0x3f61cb['query']=_[_0x0ab4('0x2a')](_0x3d38a4['query']);_0x3f61cb[_0x0ab4('0x2d')]=_[_0x0ab4('0x2e')](_0x3f61cb[_0x0ab4('0x29')],_0x3f61cb[_0x0ab4('0x2b')]);_0x1cfdad[_0x0ab4('0x2f')]=_[_0x0ab4('0x2e')](_0x3f61cb['model'],qs[_0x0ab4('0x30')](_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x30')]));_0x1cfdad[_0x0ab4('0x2f')]=_0x1cfdad['attributes']['length']?_0x1cfdad[_0x0ab4('0x2f')]:_0x3f61cb[_0x0ab4('0x29')];if(!_0x3d38a4[_0x0ab4('0x2b')]['hasOwnProperty']('nolimit')){_0x1cfdad['limit']=qs[_0x0ab4('0x21')](_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x21')]);_0x1cfdad['offset']=qs['offset'](_0x3d38a4['query'][_0x0ab4('0x20')]);}_0x1cfdad[_0x0ab4('0x31')]=qs[_0x0ab4('0x32')](_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x32')]);_0x1cfdad[_0x0ab4('0x33')]=qs[_0x0ab4('0x2d')](_[_0x0ab4('0x34')](_0x3d38a4[_0x0ab4('0x2b')],_0x3f61cb[_0x0ab4('0x2d')]));if(_0x155d96['dateStart']){if(_0x155d96[_0x0ab4('0x35')]){_0x155d96[_0x0ab4('0x35')]=moment(_0x155d96[_0x0ab4('0x35')])[_0x0ab4('0x36')](0x1,_0x0ab4('0x37'));}else{_0x155d96[_0x0ab4('0x35')]=moment(_0x155d96[_0x0ab4('0x2c')])[_0x0ab4('0x36')](0x1,_0x0ab4('0x37'));}_[_0x0ab4('0x38')](_0x1cfdad[_0x0ab4('0x33')],{'createdAt':{'$gte':_0x155d96[_0x0ab4('0x2c')],'$lte':_0x155d96['dateEnd']}});}if(_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x39')]){_0x1cfdad[_0x0ab4('0x33')]=_[_0x0ab4('0x38')](_0x1cfdad['where'],{'$or':_[_0x0ab4('0x3a')](_0x1cfdad['attributes'],function(_0x43e5ba){var _0x454e3d={};_0x454e3d[_0x43e5ba]={'$like':'%'+_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x39')]+'%'};return _0x454e3d;})});}_0x1cfdad=_[_0x0ab4('0x38')]({},_0x1cfdad,_0x3d38a4[_0x0ab4('0x3b')]);var _0x5815d1={'where':_0x1cfdad[_0x0ab4('0x33')]};return db[_0x0ab4('0x3c')][_0x0ab4('0x1f')](_0x5815d1)['then'](function(_0x395e0b){_0x25385e[_0x0ab4('0x1f')]=_0x395e0b;if(_0x3d38a4[_0x0ab4('0x2b')][_0x0ab4('0x3d')]){_0x1cfdad[_0x0ab4('0x3e')]=[{'all':!![]}];}return db['Plugin']['findAll'](_0x1cfdad);})['then'](function(_0x2f54dd){_0x25385e[_0x0ab4('0x3f')]=_0x2f54dd;return _0x25385e;})['then'](respondWithFilteredResult(_0x183bac,_0x1cfdad))[_0x0ab4('0x40')](handleError(_0x183bac,null));};exports['show']=function(_0x2d1d87,_0x562262){var _0x365be1={'raw':!![],'where':{'id':_0x2d1d87[_0x0ab4('0x41')]['id']}},_0x300fd8={};_0x300fd8[_0x0ab4('0x29')]=_[_0x0ab4('0x2a')](db[_0x0ab4('0x3c')]['rawAttributes']);_0x300fd8[_0x0ab4('0x2b')]=_[_0x0ab4('0x2a')](_0x2d1d87[_0x0ab4('0x2b')]);_0x300fd8[_0x0ab4('0x2d')]=_[_0x0ab4('0x2e')](_0x300fd8[_0x0ab4('0x29')],_0x300fd8['query']);_0x365be1[_0x0ab4('0x2f')]=_['intersection'](_0x300fd8[_0x0ab4('0x29')],qs[_0x0ab4('0x30')](_0x2d1d87[_0x0ab4('0x2b')]['fields']));_0x365be1[_0x0ab4('0x2f')]=_0x365be1[_0x0ab4('0x2f')][_0x0ab4('0x42')]?_0x365be1[_0x0ab4('0x2f')]:_0x300fd8[_0x0ab4('0x29')];if(_0x2d1d87[_0x0ab4('0x2b')]['includeAll']){_0x365be1[_0x0ab4('0x3e')]=[{'all':!![]}];}_0x365be1=_[_0x0ab4('0x38')]({},_0x365be1,_0x2d1d87[_0x0ab4('0x3b')]);return db[_0x0ab4('0x3c')][_0x0ab4('0x43')](_0x365be1)[_0x0ab4('0x25')](handleEntityNotFound(_0x562262,null))[_0x0ab4('0x25')](respondWithResult(_0x562262,null))[_0x0ab4('0x40')](handleError(_0x562262,null));};exports[_0x0ab4('0x44')]=function(_0x24bb13,_0x1a9675,_0x2cead1){return db[_0x0ab4('0x3c')]['find']({'where':{'id':_0x24bb13[_0x0ab4('0x41')]['id']},'attributes':[_0x0ab4('0x28'),'path'],'raw':!![]})[_0x0ab4('0x25')](handleEntityNotFound(_0x1a9675,null))['then'](function(_0x53d66f){if(_0x53d66f){var _0x447f0d=path[_0x0ab4('0x45')](config[_0x0ab4('0x46')],'server/files/plugins',util[_0x0ab4('0x47')](_0x0ab4('0x48'),path[_0x0ab4('0x49')](_0x53d66f[_0x0ab4('0x4a')])));var _0x30ba95=fs[_0x0ab4('0x4b')](_0x447f0d);var _0x1eea3b=archiver('zip',{'zlib':{'level':0x9}});_0x1eea3b['on'](_0x0ab4('0x4c'),function(_0x59d3f1){if(_0x59d3f1[_0x0ab4('0x4d')]==='ENOENT'){logger[_0x0ab4('0x27')](_0x59d3f1);}else{throw new db['Sequelize']['Error'](_0x0ab4('0x4e'));}});_0x1eea3b['on'](_0x0ab4('0x27'),function(_0x433346){throw new db[(_0x0ab4('0x4f'))]['Error'](_0x0ab4('0x4e'));});_0x1eea3b[_0x0ab4('0x50')](_0x30ba95);_0x1eea3b[_0x0ab4('0x51')](_0x0ab4('0x52'),{'cwd':path[_0x0ab4('0x45')](config[_0x0ab4('0x46')],_0x0ab4('0x53'),path[_0x0ab4('0x54')](_0x53d66f[_0x0ab4('0x4a')])),'ignore':[path[_0x0ab4('0x45')](path[_0x0ab4('0x49')](_0x53d66f[_0x0ab4('0x4a')]),_0x0ab4('0x55')),path[_0x0ab4('0x45')](path[_0x0ab4('0x49')](_0x53d66f[_0x0ab4('0x4a')]),_0x0ab4('0x56'))],'nodir':!![]})[_0x0ab4('0x57')]();_0x30ba95['on'](_0x0ab4('0x58'),function(){if(!fs['existsSync'](_0x447f0d)){throw new db[(_0x0ab4('0x4f'))][(_0x0ab4('0x59'))](_0x0ab4('0x5a'));}return _0x1a9675[_0x0ab4('0x44')](_0x447f0d,util[_0x0ab4('0x47')](_0x0ab4('0x48'),path[_0x0ab4('0x49')](_0x53d66f[_0x0ab4('0x4a')])),function(_0x5d5d0e){if(_0x5d5d0e){throw new db[(_0x0ab4('0x4f'))][(_0x0ab4('0x59'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs['unlinkSync'](_0x447f0d);logger[_0x0ab4('0x5b')](_0x0ab4('0x5c'));logger['info']('Temporary\x20file\x20removed');});});}return null;})[_0x0ab4('0x40')](handleError(_0x1a9675,null));};exports['upload']=function(_0x597d26,_0x427b51,_0x3cdedf){var _0x12dccd=path[_0x0ab4('0x49')](_0x597d26[_0x0ab4('0x5d')][_0x0ab4('0x5e')],path[_0x0ab4('0x5f')](_0x597d26['file'][_0x0ab4('0x5e')]));var _0x23378d=path[_0x0ab4('0x45')](config[_0x0ab4('0x46')],_0x0ab4('0x53'),_0x597d26[_0x0ab4('0x5d')]['filename']);var _0x1b8bf5=path[_0x0ab4('0x45')](config['root'],_0x0ab4('0x53'),_0x12dccd);logger['info'](_0x0ab4('0x60'),_0x23378d);logger['info'](_0x0ab4('0x61'),_0x1b8bf5);try{fs[_0x0ab4('0x62')](_0x23378d,parseInt(_0x0ab4('0x63'),0x8));extract(_0x23378d,{'dir':_0x1b8bf5},function(_0x2e728f){if(_0x2e728f){logger['error'](_0x2e728f);handleError(_0x2e728f,!![]);};var _0x581547=fs[_0x0ab4('0x64')](_0x1b8bf5);if(_0x581547[_0x0ab4('0x42')]>0x1){removeReferences(_0x23378d,_0x1b8bf5);logger['error'](_0x0ab4('0x65'));return _0x3cdedf(new Error(_0x0ab4('0x65')));}var _0x34f968=fs['lstatSync'](path[_0x0ab4('0x45')](_0x1b8bf5,_0x581547[0x0]));if(_0x34f968[_0x0ab4('0x66')]()){removeReferences(_0x23378d,_0x1b8bf5);logger[_0x0ab4('0x27')](_0x0ab4('0x65'));return _0x3cdedf(new Error(_0x0ab4('0x65')));}if(_0x34f968[_0x0ab4('0x67')]()){var _0x413817=fs[_0x0ab4('0x64')](path['join'](_0x1b8bf5,_0x581547[0x0]));if(_0x413817['length']===0x0){removeReferences(_0x23378d,_0x1b8bf5);logger[_0x0ab4('0x27')](_0x0ab4('0x65'));return _0x3cdedf(new Error(_0x0ab4('0x65')));}var _0xc23642=_0x413817['some'](function(_0x417926){return _0x417926==='manifest.json';});if(!_0xc23642){return _0x3cdedf(new Error(_0x0ab4('0x68')));}var _0x3ae586=fs[_0x0ab4('0x69')](path[_0x0ab4('0x45')](_0x1b8bf5,_0x581547[0x0],_0x0ab4('0x6a')));var _0x41b65f=JSON[_0x0ab4('0x6b')](_0x3ae586);if(_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x28')]){return _0x3cdedf(new Error('Invalid\x20manifest:\x20name\x20missing'));}if(_0x0ab4('0x6c')==typeof _0x41b65f['type']){return _0x3cdedf(new Error(_0x0ab4('0x6d')));}if(_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x6e')]){return _0x3cdedf(new Error(_0x0ab4('0x6f')));}if(_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x70')]){return _0x3cdedf(new Error(_0x0ab4('0x71')));}if(_0x41b65f[_0x0ab4('0x72')]===_0x0ab4('0x73')){if('undefined'==typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')]){return _0x3cdedf(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')]['admin']&&_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')][_0x0ab4('0x75')]){return _0x3cdedf(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x41b65f['type']===_0x0ab4('0x76')){if(_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x77')]){return _0x3cdedf(new Error('Invalid\x20manifest:\x20script\x20name\x20missing'));}if(_0x0ab4('0x6c')==typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x78')]){return _0x3cdedf(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x3cdedf(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x10852d=_0x41b65f[_0x0ab4('0x28')];var _0x4c8c5a=_0x41b65f[_0x0ab4('0x79')];var _0x46f69a=_0x41b65f[_0x0ab4('0x72')];var _0x2ae87e=_0x41b65f['sidebar']?_0x41b65f[_0x0ab4('0x7a')]:'always';var _0x50818f=_0x41b65f[_0x0ab4('0x7b')]?_0x41b65f['icon']:_0x0ab4('0x7c');var _0x40d18f='';var _0x2ba45b='';var _0x368573='';var _0x1eec8e='';var _0x4bffd4=_0x41b65f['version'];if(_0x46f69a===_0x0ab4('0x73')){if(_0x0ab4('0x6c')!=typeof _0x41b65f['parameters']['views'][_0x0ab4('0x7d')]){var _0x32e439=_0x41b65f['parameters'][_0x0ab4('0x74')][_0x0ab4('0x7d')];if(!/^(f|ht)tps?:\/\//i[_0x0ab4('0x7e')](_0x32e439)){_0x40d18f=path['join'](_0x0ab4('0x7f'),_0x12dccd,_0x581547[0x0],_0x32e439);}else{_0x40d18f=_0x32e439;}}else{logger[_0x0ab4('0x5b')](_0x0ab4('0x80'));}if(_0x0ab4('0x6c')!=typeof _0x41b65f['parameters'][_0x0ab4('0x74')][_0x0ab4('0x75')]){var _0xb398b4=_0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')][_0x0ab4('0x75')];if(!/^(f|ht)tps?:\/\//i[_0x0ab4('0x7e')](_0xb398b4)){_0x2ba45b=path[_0x0ab4('0x45')](_0x0ab4('0x7f'),_0x12dccd,_0x581547[0x0],_0xb398b4);}else{_0x2ba45b=_0xb398b4;}}else{logger[_0x0ab4('0x5b')]('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x46f69a===_0x0ab4('0x76')){_0x368573=_0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x77')];_0x1eec8e=_0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x78')];if('undefined'!=typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')]){if(_0x0ab4('0x6c')!=typeof _0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')][_0x0ab4('0x7d')]){var _0x32e439=_0x41b65f[_0x0ab4('0x70')][_0x0ab4('0x74')][_0x0ab4('0x7d')];if(!/^(f|ht)tps?:\/\//i[_0x0ab4('0x7e')](_0x32e439)){_0x40d18f=path[_0x0ab4('0x45')](_0x0ab4('0x7f'),_0x12dccd,_0x581547[0x0],_0x32e439);}else{_0x40d18f=_0x32e439;}}if(_0x0ab4('0x6c')!=typeof _0x41b65f['parameters'][_0x0ab4('0x74')][_0x0ab4('0x75')]){var _0xb398b4=_0x41b65f[_0x0ab4('0x70')]['views']['agent'];if(!/^(f|ht)tps?:\/\//i[_0x0ab4('0x7e')](_0xb398b4)){_0x2ba45b=path[_0x0ab4('0x45')]('plugins',_0x12dccd,_0x581547[0x0],_0xb398b4);}else{_0x2ba45b=_0xb398b4;}}}}var _0x4598bb={'name':_0x10852d,'description':_0x4c8c5a,'path':path[_0x0ab4('0x45')](_0x12dccd,_0x581547[0x0]),'type':_0x46f69a,'sidebar':_0x2ae87e,'icon':_0x50818f,'adminUrl':_0x40d18f,'agentUrl':_0x2ba45b,'scriptName':_0x368573,'scriptPath':_0x1eec8e,'version':_0x4bffd4};removeReferences(_0x23378d,null);return db[_0x0ab4('0x3c')][_0x0ab4('0x81')](_0x4598bb)[_0x0ab4('0x25')](respondWithResult(_0x427b51,null))[_0x0ab4('0x40')](handleError(_0x427b51,null));}});}catch(_0x20b396){_0x427b51['status'](0x1f4)[_0x0ab4('0x82')](_0x20b396);}};function removeReferences(_0x5e0bcd,_0x3ff850){try{if(_0x5e0bcd){fs[_0x0ab4('0x83')](_0x5e0bcd);logger[_0x0ab4('0x5b')](_0x0ab4('0x84'));}if(_0x3ff850){rimraf(_0x3ff850,function(){});logger[_0x0ab4('0x5b')](_0x0ab4('0x85'));}}catch(_0x16079a){logger['error'](_0x16079a);}}exports[_0x0ab4('0x86')]=function(_0x5c1e26,_0x1d058f,_0x1620eb){return db[_0x0ab4('0x3c')][_0x0ab4('0x43')]({'where':{'id':_0x5c1e26[_0x0ab4('0x41')]['id']}})[_0x0ab4('0x25')](handleEntityNotFound(_0x1d058f,null))['then'](saveUpdates(_0x5c1e26['body'],null))[_0x0ab4('0x25')](respondWithResult(_0x1d058f,null))[_0x0ab4('0x40')](handleError(_0x1d058f,null));};exports['delete']=function(_0x4e2f43,_0x21f0a2,_0x217300){return db['Plugin'][_0x0ab4('0x43')]({'where':{'id':_0x4e2f43[_0x0ab4('0x41')]['id']}})[_0x0ab4('0x25')](function(_0x3d0488){if(_0x3d0488){return _0x3d0488['destroy']();}})[_0x0ab4('0x25')](function(_0x4e62cd){rimraf(path['join'](config[_0x0ab4('0x46')],'server/files/plugins',path[_0x0ab4('0x54')](_0x4e62cd[_0x0ab4('0x4a')])),function(){});return _0x4e62cd;})[_0x0ab4('0x25')](handleEntityNotFound(_0x21f0a2,null))['then'](respondWithStatusCode(_0x21f0a2,null))[_0x0ab4('0x40')](handleError(_0x21f0a2,null));};exports[_0x0ab4('0x87')]=function(_0x840fc2,_0x2282d7,_0x2bf00c){return BPromise[_0x0ab4('0x88')]()[_0x0ab4('0x25')](function(){if(!_0x840fc2['query'][_0x0ab4('0x4a')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x840fc2[_0x0ab4('0x2b')]['port']){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x3ad9d1=_0x840fc2[_0x0ab4('0x2b')][_0x0ab4('0x89')]?_0x840fc2[_0x0ab4('0x2b')][_0x0ab4('0x89')]+':'+_0x840fc2['query']['port']:_0x0ab4('0x8a')+_0x840fc2[_0x0ab4('0x2b')]['port'];var _0x1f0aef=_0x840fc2['query'][_0x0ab4('0x1e')]?_0x840fc2[_0x0ab4('0x2b')]['json']:!![];var _0x40d000=_0x840fc2[_0x0ab4('0x2b')][_0x0ab4('0x8b')]?_0x840fc2[_0x0ab4('0x2b')]['encoding']:null;var _0x52dbd3={'method':_0x840fc2[_0x0ab4('0x8c')],'uri':util[_0x0ab4('0x47')](_0x0ab4('0x8d'),_0x3ad9d1,_0x840fc2['query'][_0x0ab4('0x4a')]),'json':_0x1f0aef,'resolveWithFullResponse':!![],'encoding':_0x40d000,'qs':_0x840fc2['query']};if(_0x840fc2[_0x0ab4('0x8e')]){_0x52dbd3[_0x0ab4('0x8e')]=_0x840fc2['headers'];}return rp(_0x52dbd3);})['then'](function(_0x5a179e){if(_0x5a179e){_0x2282d7[_0x0ab4('0x8f')](_0x5a179e[_0x0ab4('0x8e')]);logger[_0x0ab4('0x5b')](_0x5a179e[_0x0ab4('0x90')]);if(_[_0x0ab4('0x91')](_0x840fc2['query'][_0x0ab4('0x4a')],_0x0ab4('0x44'))&&_0x5a179e[_0x0ab4('0x92')]==0x1f4){return _0x2282d7[_0x0ab4('0x1b')](_0x5a179e[_0x0ab4('0x92')]);}else{return _0x2282d7['status'](_0x5a179e[_0x0ab4('0x92')])[_0x0ab4('0x82')](_0x5a179e['body']);}}else{return _0x2282d7[_0x0ab4('0x1b')](0xc8);}})[_0x0ab4('0x40')](handleError(_0x2282d7,null));};exports[_0x0ab4('0x93')]=function(_0x3d80e3,_0x1eda87,_0x35d2ec){return BPromise[_0x0ab4('0x88')]()[_0x0ab4('0x25')](function(){if(!_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x4a')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x94')]){throw new Error(_0x0ab4('0x95'));}var _0x345ffa=_0x3d80e3[_0x0ab4('0x2b')]['hostname']?_0x3d80e3['query'][_0x0ab4('0x89')]+':'+_0x3d80e3['query'][_0x0ab4('0x94')]:_0x0ab4('0x8a')+_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x94')];var _0x597e55=_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x1e')]?_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x1e')]:!![];var _0x55ac0e=_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x8b')]?_0x3d80e3[_0x0ab4('0x2b')][_0x0ab4('0x8b')]:null;var _0x48fff8={'method':_0x3d80e3['method'],'uri':util[_0x0ab4('0x47')](_0x0ab4('0x8d'),_0x345ffa,_0x3d80e3[_0x0ab4('0x2b')]['path']),'json':_0x597e55,'resolveWithFullResponse':!![],'encoding':_0x55ac0e,'body':_0x3d80e3[_0x0ab4('0x90')]};if(_0x3d80e3['headers']){_0x48fff8[_0x0ab4('0x8e')]=_0x3d80e3[_0x0ab4('0x8e')];}return rp(_0x48fff8);})[_0x0ab4('0x25')](function(_0x478a84){if(_0x478a84){_0x1eda87['set'](_0x478a84[_0x0ab4('0x8e')]);logger[_0x0ab4('0x5b')](_0x478a84[_0x0ab4('0x90')]);return _0x1eda87[_0x0ab4('0x1c')](_0x478a84['statusCode'])[_0x0ab4('0x82')](_0x478a84[_0x0ab4('0x90')]);}else{return _0x1eda87[_0x0ab4('0x1b')](0xc8);}})[_0x0ab4('0x40')](handleError(_0x1eda87,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['Plugin','save','update','emit','hasOwnProperty','exports','events','../../mysqldb'];(function(_0x4e5c04,_0x541fa8){var _0x42d69a=function(_0x5b42b0){while(--_0x5b42b0){_0x4e5c04['push'](_0x4e5c04['shift']());}};_0x42d69a(++_0x541fa8);}(_0x7a54,0x106));var _0x47a5=function(_0x3c6900,_0x3e3d5c){_0x3c6900=_0x3c6900-0x0;var _0x517f04=_0x7a54[_0x3c6900];return _0x517f04;};'use strict';var EventEmitter=require(_0x47a5('0x0'));var Plugin=require(_0x47a5('0x1'))['db'][_0x47a5('0x2')];var PluginEvents=new EventEmitter();PluginEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x47a5('0x3'),'afterUpdate':_0x47a5('0x4'),'afterDestroy':'remove'};function emitEvent(_0x5f7f12){return function(_0x11bf85,_0x2a1a7e,_0x3717e1){PluginEvents[_0x47a5('0x5')](_0x5f7f12+':'+_0x11bf85['id'],_0x11bf85);PluginEvents['emit'](_0x5f7f12,_0x11bf85);_0x3717e1(null);};}for(var e in events){if(events[_0x47a5('0x6')](e)){var event=events[e];Plugin['hook'](e,emitEvent(event));}}module[_0x47a5('0x7')]=PluginEvents;
\ No newline at end of file
+var _0xb10b=['hasOwnProperty','hook','events','Plugin','setMaxListeners','save','remove','emit'];(function(_0x1c4cca,_0x211fe8){var _0x4b4da4=function(_0x4582d5){while(--_0x4582d5){_0x1c4cca['push'](_0x1c4cca['shift']());}};_0x4b4da4(++_0x211fe8);}(_0xb10b,0x12a));var _0xbb10=function(_0x48bc0d,_0x30becd){_0x48bc0d=_0x48bc0d-0x0;var _0x35f641=_0xb10b[_0x48bc0d];return _0x35f641;};'use strict';var EventEmitter=require(_0xbb10('0x0'));var Plugin=require('../../mysqldb')['db'][_0xbb10('0x1')];var PluginEvents=new EventEmitter();PluginEvents[_0xbb10('0x2')](0x0);var events={'afterCreate':_0xbb10('0x3'),'afterUpdate':'update','afterDestroy':_0xbb10('0x4')};function emitEvent(_0x9bbed){return function(_0x460981,_0x22320e,_0x49baf4){PluginEvents[_0xbb10('0x5')](_0x9bbed+':'+_0x460981['id'],_0x460981);PluginEvents['emit'](_0x9bbed,_0x460981);_0x49baf4(null);};}for(var e in events){if(events[_0xbb10('0x6')](e)){var event=events[e];Plugin[_0xbb10('0x7')](e,emitEvent(event));}}module['exports']=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1dc=['util','../../config/logger','api','moment','bluebird','./plugin.attributes','exports','define','Plugin','plugins','lodash'];(function(_0x44330c,_0x382ad2){var _0x214166=function(_0x1f94d7){while(--_0x1f94d7){_0x44330c['push'](_0x44330c['shift']());}};_0x214166(++_0x382ad2);}(_0xb1dc,0xd0));var _0xcb1d=function(_0x591cfd,_0x501204){_0x591cfd=_0x591cfd-0x0;var _0x4d0100=_0xb1dc[_0x591cfd];return _0x4d0100;};'use strict';var _=require(_0xcb1d('0x0'));var util=require(_0xcb1d('0x1'));var logger=require(_0xcb1d('0x2'))(_0xcb1d('0x3'));var moment=require(_0xcb1d('0x4'));var BPromise=require(_0xcb1d('0x5'));var rp=require('request-promise');var attributes=require(_0xcb1d('0x6'));module[_0xcb1d('0x7')]=function(_0x4db6c1,_0x51042f){return _0x4db6c1[_0xcb1d('0x8')](_0xcb1d('0x9'),attributes,{'tableName':_0xcb1d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4b3a=['plugins','lodash','api','moment','bluebird','request-promise','./plugin.attributes','exports','define','Plugin'];(function(_0x2dd47f,_0x29593c){var _0x29e163=function(_0x4e5e33){while(--_0x4e5e33){_0x2dd47f['push'](_0x2dd47f['shift']());}};_0x29e163(++_0x29593c);}(_0x4b3a,0x137));var _0xa4b3=function(_0x5df257,_0x48c17b){_0x5df257=_0x5df257-0x0;var _0x1937a4=_0x4b3a[_0x5df257];return _0x1937a4;};'use strict';var _=require(_0xa4b3('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xa4b3('0x1'));var moment=require(_0xa4b3('0x2'));var BPromise=require(_0xa4b3('0x3'));var rp=require(_0xa4b3('0x4'));var attributes=require(_0xa4b3('0x5'));module[_0xa4b3('0x6')]=function(_0x2c43d5,_0x2f8da5){return _0x2c43d5[_0xa4b3('0x7')](_0xa4b3('0x8'),attributes,{'tableName':_0xa4b3('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58da=['lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','socket.io-emitter','register','request','then','info','request\x20sent','error','code','Plugin,\x20%s,\x20%s','message','catch','create','options','raw','CreatePlugin','debug','stringify'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x58da,0x168));var _0xa58d=function(_0x291dc6,_0x1109ff){_0x291dc6=_0x291dc6-0x0;var _0x54d7cc=_0x58da[_0x291dc6];return _0x54d7cc;};'use strict';var _=require(_0xa58d('0x0'));var util=require(_0xa58d('0x1'));var moment=require(_0xa58d('0x2'));var BPromise=require(_0xa58d('0x3'));var rs=require(_0xa58d('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xa58d('0x5'));var logger=require(_0xa58d('0x6'))(_0xa58d('0x7'));var config=require(_0xa58d('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xa58d('0x9')][_0xa58d('0xa')]({'port':0x232a});config[_0xa58d('0xb')]=_[_0xa58d('0xc')](config[_0xa58d('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0xa58d('0xd'))(config[_0xa58d('0xb')]);require('./plugin.socket')[_0xa58d('0xe')](socket);function respondWithRpcPromise(_0x216b07,_0x5e031d,_0x3b1c16){return new BPromise(function(_0x29d9e4,_0x4c2d89){return client[_0xa58d('0xf')](_0x216b07,_0x3b1c16)[_0xa58d('0x10')](function(_0x16c126){logger[_0xa58d('0x11')]('Plugin,\x20%s,\x20%s',_0x5e031d,_0xa58d('0x12'));logger['debug']('Plugin,\x20%s,\x20%s,\x20%s',_0x5e031d,'request\x20sent',JSON['stringify'](_0x16c126));if(_0x16c126['error']){if(_0x16c126[_0xa58d('0x13')][_0xa58d('0x14')]===0x1f4){logger[_0xa58d('0x13')](_0xa58d('0x15'),_0x5e031d,_0x16c126[_0xa58d('0x13')][_0xa58d('0x16')]);return _0x4c2d89(_0x16c126[_0xa58d('0x13')]['message']);}logger[_0xa58d('0x13')](_0xa58d('0x15'),_0x5e031d,_0x16c126[_0xa58d('0x13')][_0xa58d('0x16')]);return _0x29d9e4(_0x16c126['error'][_0xa58d('0x16')]);}else{logger[_0xa58d('0x11')](_0xa58d('0x15'),_0x5e031d,_0xa58d('0x12'));_0x29d9e4(_0x16c126['result'][_0xa58d('0x16')]);}})[_0xa58d('0x17')](function(_0x5f318d){logger[_0xa58d('0x13')](_0xa58d('0x15'),_0x5e031d,_0x5f318d);_0x4c2d89(_0x5f318d);});});}exports['CreatePlugin']=function(_0x53c29c){var _0x5565cf=this;return new Promise(function(_0xed5392,_0x3f3712){return db['Plugin'][_0xa58d('0x18')](_0x53c29c['body'],{'raw':_0x53c29c[_0xa58d('0x19')]?_0x53c29c[_0xa58d('0x19')][_0xa58d('0x1a')]===undefined?!![]:![]:!![]})[_0xa58d('0x10')](function(_0x5425fe){logger[_0xa58d('0x11')](_0xa58d('0x1b'),_0x53c29c);logger[_0xa58d('0x1c')]('CreatePlugin',_0x53c29c,JSON[_0xa58d('0x1d')](_0x5425fe));_0xed5392(_0x5425fe);})[_0xa58d('0x17')](function(_0x1c8406){logger[_0xa58d('0x13')](_0xa58d('0x1b'),_0x1c8406[_0xa58d('0x16')],_0x53c29c);_0x3f3712(_0x5565cf[_0xa58d('0x13')](0x1f4,_0x1c8406[_0xa58d('0x16')]));});});};
\ No newline at end of file
+var _0xd689=['then','CreatePlugin','debug','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','request','info','Plugin,\x20%s,\x20%s','request\x20sent','Plugin,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','Plugin','create','body','options','raw'];(function(_0xe73080,_0x24c56d){var _0x12cbc4=function(_0x1377e2){while(--_0x1377e2){_0xe73080['push'](_0xe73080['shift']());}};_0x12cbc4(++_0x24c56d);}(_0xd689,0xa3));var _0x9d68=function(_0x5455e2,_0x4675b4){_0x5455e2=_0x5455e2-0x0;var _0x4c8a44=_0xd689[_0x5455e2];return _0x4c8a44;};'use strict';var _=require('lodash');var util=require(_0x9d68('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x9d68('0x1'));var fs=require('fs');var Redis=require(_0x9d68('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x9d68('0x3'));var logger=require(_0x9d68('0x4'))(_0x9d68('0x5'));var config=require(_0x9d68('0x6'));var jayson=require(_0x9d68('0x7'));var client=jayson[_0x9d68('0x8')]['http']({'port':0x232a});config[_0x9d68('0x9')]=_[_0x9d68('0xa')](config['redis'],{'host':_0x9d68('0xb'),'port':0x18eb});var socket=require(_0x9d68('0xc'))(new Redis(config[_0x9d68('0x9')]));require(_0x9d68('0xd'))[_0x9d68('0xe')](socket);function respondWithRpcPromise(_0x4b81a5,_0x55c705,_0x6c583a){return new BPromise(function(_0x3bf6a7,_0x503e2a){return client[_0x9d68('0xf')](_0x4b81a5,_0x6c583a)['then'](function(_0x2e4e73){logger[_0x9d68('0x10')](_0x9d68('0x11'),_0x55c705,_0x9d68('0x12'));logger['debug'](_0x9d68('0x13'),_0x55c705,_0x9d68('0x12'),JSON[_0x9d68('0x14')](_0x2e4e73));if(_0x2e4e73[_0x9d68('0x15')]){if(_0x2e4e73[_0x9d68('0x15')]['code']===0x1f4){logger[_0x9d68('0x15')](_0x9d68('0x11'),_0x55c705,_0x2e4e73[_0x9d68('0x15')][_0x9d68('0x16')]);return _0x503e2a(_0x2e4e73[_0x9d68('0x15')][_0x9d68('0x16')]);}logger['error'](_0x9d68('0x11'),_0x55c705,_0x2e4e73[_0x9d68('0x15')]['message']);return _0x3bf6a7(_0x2e4e73[_0x9d68('0x15')][_0x9d68('0x16')]);}else{logger['info'](_0x9d68('0x11'),_0x55c705,'request\x20sent');_0x3bf6a7(_0x2e4e73['result'][_0x9d68('0x16')]);}})[_0x9d68('0x17')](function(_0x332e4f){logger['error'](_0x9d68('0x11'),_0x55c705,_0x332e4f);_0x503e2a(_0x332e4f);});});}exports['CreatePlugin']=function(_0x1baef3){var _0x1c4d5b=this;return new Promise(function(_0xdf90c,_0x555a66){return db[_0x9d68('0x18')][_0x9d68('0x19')](_0x1baef3[_0x9d68('0x1a')],{'raw':_0x1baef3[_0x9d68('0x1b')]?_0x1baef3[_0x9d68('0x1b')][_0x9d68('0x1c')]===undefined?!![]:![]:!![]})[_0x9d68('0x1d')](function(_0x218237){logger['info'](_0x9d68('0x1e'),_0x1baef3);logger[_0x9d68('0x1f')]('CreatePlugin',_0x1baef3,JSON[_0x9d68('0x14')](_0x218237));_0xdf90c(_0x218237);})[_0x9d68('0x17')](function(_0x2876d2){logger[_0x9d68('0x15')](_0x9d68('0x1e'),_0x2876d2[_0x9d68('0x16')],_0x1baef3);_0x555a66(_0x1c4d5b['error'](0x1f4,_0x2876d2['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe189=['removeListener','register','plugin:','./plugin.events','save','update','emit'];(function(_0x39d544,_0x35c14f){var _0x5a5ff2=function(_0x2271fb){while(--_0x2271fb){_0x39d544['push'](_0x39d544['shift']());}};_0x5a5ff2(++_0x35c14f);}(_0xe189,0x7a));var _0x9e18=function(_0x40c60f,_0x3e306f){_0x40c60f=_0x40c60f-0x0;var _0x2e7801=_0xe189[_0x40c60f];return _0x2e7801;};'use strict';var PluginEvents=require(_0x9e18('0x0'));var events=[_0x9e18('0x1'),'remove',_0x9e18('0x2')];function createListener(_0x511bcb,_0x56e67a){return function(_0x262c1c){_0x56e67a[_0x9e18('0x3')](_0x511bcb,_0x262c1c);};}function removeListener(_0x21a439,_0xd04ef0){return function(){PluginEvents[_0x9e18('0x4')](_0x21a439,_0xd04ef0);};}exports[_0x9e18('0x5')]=function(_0xbfcabc){for(var _0x4e32e8=0x0,_0x4f0ebe=events['length'];_0x4e32e8<_0x4f0ebe;_0x4e32e8++){var _0x1bbfd5=events[_0x4e32e8];var _0xc52157=createListener(_0x9e18('0x6')+_0x1bbfd5,_0xbfcabc);PluginEvents['on'](_0x1bbfd5,_0xc52157);}};
\ No newline at end of file
+var _0x73b8=['register','length','plugin:','remove','update','emit','removeListener'];(function(_0x43aee5,_0x11268b){var _0x76d1d0=function(_0x3faee6){while(--_0x3faee6){_0x43aee5['push'](_0x43aee5['shift']());}};_0x76d1d0(++_0x11268b);}(_0x73b8,0x88));var _0x873b=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0x73b8[_0x31e29a];return _0x32d892;};'use strict';var PluginEvents=require('./plugin.events');var events=['save',_0x873b('0x0'),_0x873b('0x1')];function createListener(_0x45f1c4,_0x133811){return function(_0x576966){_0x133811[_0x873b('0x2')](_0x45f1c4,_0x576966);};}function removeListener(_0xc313da,_0x55f726){return function(){PluginEvents[_0x873b('0x3')](_0xc313da,_0x55f726);};}exports[_0x873b('0x4')]=function(_0x688b3b){for(var _0x313954=0x0,_0x5537c4=events[_0x873b('0x5')];_0x313954<_0x5537c4;_0x313954++){var _0x11cdad=events[_0x313954];var _0x460005=createListener(_0x873b('0x6')+_0x11cdad,_0x688b3b);PluginEvents['on'](_0x11cdad,_0x460005);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x2dc8b5,_0x19286f){var _0x19ef4f=function(_0x506ac8){while(--_0x506ac8){_0x2dc8b5['push'](_0x2dc8b5['shift']());}};_0x19ef4f(++_0x19286f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
+var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x4e36ef,_0x11cb2a){var _0x558629=function(_0x3540ba){while(--_0x3540ba){_0x4e36ef['push'](_0x4e36ef['shift']());}};_0x558629(++_0x11cb2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xa9e0[_0x6c993a];return _0x27f547;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e09=['bluebird','sendStatus','status','json','error','stack','name','send','npm\x20install','index','list','then','reject','express','length','catch','show','params','create','body','script','join','../../files/plugins','cwd','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','update','restart','stop','hasOwnProperty','Unknown\x20status','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','api','path'];(function(_0x433124,_0x2a4be8){var _0x20df14=function(_0x153918){while(--_0x153918){_0x433124['push'](_0x433124['shift']());}};_0x20df14(++_0x2a4be8);}(_0x2e09,0xc8));var _0x92e0=function(_0x2db654,_0x491802){_0x2db654=_0x2db654-0x0;var _0x4f8ca2=_0x2e09[_0x2db654];return _0x4f8ca2;};'use strict';var _=require(_0x92e0('0x0'));var pm2=require(_0x92e0('0x1'));var logger=require(_0x92e0('0x2'))(_0x92e0('0x3'));var path=require(_0x92e0('0x4'));var exec=require('child_process')['exec'];var BPromise=require(_0x92e0('0x5'));function handleEntityNotFound(_0x245287,_0x1c3791){return function(_0x29484f){if(!_0x29484f){_0x245287[_0x92e0('0x6')](0x194);;}return _0x29484f;};}function respondWithResult(_0x47c199,_0x579dbd){_0x579dbd=_0x579dbd||0xc8;return function(_0x437bb4){if(_0x437bb4){return _0x47c199[_0x92e0('0x7')](_0x579dbd)[_0x92e0('0x8')](_0x437bb4);}return null;};}function handleError(_0x595f3f,_0x5dd32f){_0x5dd32f=_0x5dd32f||0x1f4;return function(_0x1a9e64){logger[_0x92e0('0x9')](_0x1a9e64[_0x92e0('0xa')]);if(_0x1a9e64['name']){delete _0x1a9e64[_0x92e0('0xb')];}_0x595f3f[_0x92e0('0x7')](_0x5dd32f)[_0x92e0('0xc')](_0x1a9e64);};}function execChildProcess(){return new BPromise(function(_0x17d3b7,_0x36b0a1){exec(_0x92e0('0xd'),function(_0x4ff654,_0x1adced,_0x29d902){logger['info'](_0x1adced);logger['info'](_0x29d902);if(_0x4ff654){logger[_0x92e0('0x9')](_0x4ff654);return _0x36b0a1(_0x4ff654);}return _0x17d3b7(_0x1adced);});});}exports[_0x92e0('0xe')]=function(_0x5bc619,_0x19351a){return pm2[_0x92e0('0xf')]()[_0x92e0('0x10')](function(_0x5f4615){if(_0x5f4615){var _0x36084d=_[_0x92e0('0x11')](_0x5f4615,function(_0x403040){return _0x403040['name']===_0x92e0('0x12')||_0x403040[_0x92e0('0xb')]==='motion2';});return{'rows':_0x36084d,'count':_0x36084d[_0x92e0('0x13')]};}return null;})[_0x92e0('0x10')](respondWithResult(_0x19351a,null))[_0x92e0('0x14')](handleError(_0x19351a,null));};exports[_0x92e0('0x15')]=function(_0x161938,_0x3a2d03){return pm2['describe'](_0x161938[_0x92e0('0x16')]['id'])[_0x92e0('0x10')](respondWithResult(_0x3a2d03,null))[_0x92e0('0x10')](handleEntityNotFound(_0x3a2d03,null))[_0x92e0('0x14')](handleError(_0x3a2d03,null));};exports[_0x92e0('0x17')]=function(_0x5aecd2,_0x4891f2){if(_0x5aecd2[_0x92e0('0x18')][_0x92e0('0xb')]&&_0x5aecd2['body'][_0x92e0('0x19')]){var _0x11f3fa=path[_0x92e0('0x1a')](__dirname,_0x92e0('0x1b'),_0x5aecd2[_0x92e0('0x18')][_0x92e0('0x19')]);var _0x116d2d=process[_0x92e0('0x1c')]();process[_0x92e0('0x1d')](path[_0x92e0('0x1e')](_0x11f3fa));return execChildProcess()[_0x92e0('0x10')](function(_0x3742e2){process[_0x92e0('0x1d')](_0x116d2d);return pm2[_0x92e0('0x1f')]({'name':_0x5aecd2['body'][_0x92e0('0xb')],'script':_0x11f3fa});})[_0x92e0('0x10')](function(_0x20f1cf){pm2[_0x92e0('0x20')]();return _0x20f1cf[0x0];})['then'](respondWithResult(_0x4891f2,0xc9))[_0x92e0('0x14')](handleError(_0x4891f2,null));}else{return _0x4891f2[_0x92e0('0x7')](0x1f4)['send']({'message':_0x92e0('0x21')});}};exports[_0x92e0('0x22')]=function(_0x305697,_0x350e3e){if(_0x305697['body']['id']){delete _0x305697[_0x92e0('0x18')]['id'];}var _0x1c65ef={'online':_0x92e0('0x23'),'stopped':_0x92e0('0x24')};if(_0x1c65ef[_0x92e0('0x25')](_0x305697[_0x92e0('0x18')][_0x92e0('0x7')])){return pm2[_0x1c65ef[_0x305697[_0x92e0('0x18')][_0x92e0('0x7')]]](_0x305697[_0x92e0('0x16')]['id'])[_0x92e0('0x10')](respondWithResult(_0x350e3e,0xc8))[_0x92e0('0x14')](handleError(_0x350e3e,null));}else{return _0x350e3e[_0x92e0('0x7')](0x1f4)['send']({'message':_0x92e0('0x26')});}};exports['destroy']=function(_0x17d73a,_0x3550e9){if(_0x17d73a[_0x92e0('0x18')]['id']){delete _0x17d73a['body']['id'];}if(_0x17d73a[_0x92e0('0x16')]['id']){return pm2[_0x92e0('0x27')](_0x17d73a['params']['id'])[_0x92e0('0x10')](function(_0xbc7795){pm2['dump']();return _0xbc7795[0x0];})[_0x92e0('0x10')](respondWithResult(_0x3550e9,null))[_0x92e0('0x14')](handleError(_0x3550e9,null));}else{return _0x3550e9[_0x92e0('0x7')](0x1f4)['send']({'message':_0x92e0('0x28')});}};
\ No newline at end of file
+var _0x5a0f=['info','error','index','list','express','motion2','length','then','catch','show','describe','params','body','script','../../files/plugins','cwd','chdir','restart','hasOwnProperty','Unknown\x20status','delete','Unknown\x20id','lodash','../../config/logger','api','bluebird','sendStatus','status','json','stack','name','send','npm\x20install'];(function(_0x2f5a22,_0x5e9f03){var _0x326b70=function(_0x1b7bf9){while(--_0x1b7bf9){_0x2f5a22['push'](_0x2f5a22['shift']());}};_0x326b70(++_0x5e9f03);}(_0x5a0f,0x1e4));var _0xf5a0=function(_0x2b7737,_0x4cf6ec){_0x2b7737=_0x2b7737-0x0;var _0x1bd815=_0x5a0f[_0x2b7737];return _0x1bd815;};'use strict';var _=require(_0xf5a0('0x0'));var pm2=require('../../config/pm2');var logger=require(_0xf5a0('0x1'))(_0xf5a0('0x2'));var path=require('path');var exec=require('child_process')['exec'];var BPromise=require(_0xf5a0('0x3'));function handleEntityNotFound(_0x2bee25,_0x499f35){return function(_0x2d6d42){if(!_0x2d6d42){_0x2bee25[_0xf5a0('0x4')](0x194);;}return _0x2d6d42;};}function respondWithResult(_0x11a078,_0x202f8a){_0x202f8a=_0x202f8a||0xc8;return function(_0x36322a){if(_0x36322a){return _0x11a078[_0xf5a0('0x5')](_0x202f8a)[_0xf5a0('0x6')](_0x36322a);}return null;};}function handleError(_0x4c0266,_0x29934b){_0x29934b=_0x29934b||0x1f4;return function(_0x5554f1){logger['error'](_0x5554f1[_0xf5a0('0x7')]);if(_0x5554f1['name']){delete _0x5554f1[_0xf5a0('0x8')];}_0x4c0266[_0xf5a0('0x5')](_0x29934b)[_0xf5a0('0x9')](_0x5554f1);};}function execChildProcess(){return new BPromise(function(_0x225056,_0x43120d){exec(_0xf5a0('0xa'),function(_0x98a981,_0xf748e2,_0x4492c7){logger['info'](_0xf748e2);logger[_0xf5a0('0xb')](_0x4492c7);if(_0x98a981){logger[_0xf5a0('0xc')](_0x98a981);return _0x43120d(_0x98a981);}return _0x225056(_0xf748e2);});});}exports[_0xf5a0('0xd')]=function(_0x164443,_0x5b0d21){return pm2[_0xf5a0('0xe')]()['then'](function(_0x82ef8e){if(_0x82ef8e){var _0x19ed3f=_['reject'](_0x82ef8e,function(_0xd2c290){return _0xd2c290[_0xf5a0('0x8')]===_0xf5a0('0xf')||_0xd2c290['name']===_0xf5a0('0x10');});return{'rows':_0x19ed3f,'count':_0x19ed3f[_0xf5a0('0x11')]};}return null;})[_0xf5a0('0x12')](respondWithResult(_0x5b0d21,null))[_0xf5a0('0x13')](handleError(_0x5b0d21,null));};exports[_0xf5a0('0x14')]=function(_0x4c0962,_0x1ba147){return pm2[_0xf5a0('0x15')](_0x4c0962[_0xf5a0('0x16')]['id'])[_0xf5a0('0x12')](respondWithResult(_0x1ba147,null))[_0xf5a0('0x12')](handleEntityNotFound(_0x1ba147,null))[_0xf5a0('0x13')](handleError(_0x1ba147,null));};exports['create']=function(_0x46a781,_0x204a12){if(_0x46a781[_0xf5a0('0x17')]['name']&&_0x46a781[_0xf5a0('0x17')][_0xf5a0('0x18')]){var _0x33f51a=path['join'](__dirname,_0xf5a0('0x19'),_0x46a781[_0xf5a0('0x17')][_0xf5a0('0x18')]);var _0x6f2e29=process[_0xf5a0('0x1a')]();process[_0xf5a0('0x1b')](path['dirname'](_0x33f51a));return execChildProcess()['then'](function(_0x555943){process[_0xf5a0('0x1b')](_0x6f2e29);return pm2['start']({'name':_0x46a781[_0xf5a0('0x17')][_0xf5a0('0x8')],'script':_0x33f51a});})[_0xf5a0('0x12')](function(_0x56a70b){pm2['dump']();return _0x56a70b[0x0];})['then'](respondWithResult(_0x204a12,0xc9))[_0xf5a0('0x13')](handleError(_0x204a12,null));}else{return _0x204a12[_0xf5a0('0x5')](0x1f4)[_0xf5a0('0x9')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports['update']=function(_0x283b04,_0x46cb68){if(_0x283b04[_0xf5a0('0x17')]['id']){delete _0x283b04[_0xf5a0('0x17')]['id'];}var _0x9dc7a8={'online':_0xf5a0('0x1c'),'stopped':'stop'};if(_0x9dc7a8[_0xf5a0('0x1d')](_0x283b04[_0xf5a0('0x17')][_0xf5a0('0x5')])){return pm2[_0x9dc7a8[_0x283b04[_0xf5a0('0x17')]['status']]](_0x283b04[_0xf5a0('0x16')]['id'])[_0xf5a0('0x12')](respondWithResult(_0x46cb68,0xc8))[_0xf5a0('0x13')](handleError(_0x46cb68,null));}else{return _0x46cb68[_0xf5a0('0x5')](0x1f4)['send']({'message':_0xf5a0('0x1e')});}};exports['destroy']=function(_0x1c799a,_0x219177){if(_0x1c799a[_0xf5a0('0x17')]['id']){delete _0x1c799a['body']['id'];}if(_0x1c799a[_0xf5a0('0x16')]['id']){return pm2[_0xf5a0('0x1f')](_0x1c799a[_0xf5a0('0x16')]['id'])[_0xf5a0('0x12')](function(_0x17a51a){pm2['dump']();return _0x17a51a[0x0];})[_0xf5a0('0x12')](respondWithResult(_0x219177,null))['catch'](handleError(_0x219177,null));}else{return _0x219177[_0xf5a0('0x5')](0x1f4)[_0xf5a0('0x9')]({'message':_0xf5a0('0x20')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbf5=['../../components/auth/service','../../components/interaction/service','../../config/environment','exports','util','express','Router'];(function(_0x46a12b,_0x30a223){var _0x42f240=function(_0xd8a220){while(--_0xd8a220){_0x46a12b['push'](_0x46a12b['shift']());}};_0x42f240(++_0x30a223);}(_0xdbf5,0x18c));var _0x5dbf=function(_0x1fa1a8,_0x494818){_0x1fa1a8=_0x1fa1a8-0x0;var _0x227331=_0xdbf5[_0x1fa1a8];return _0x227331;};'use strict';var multer=require('multer');var util=require(_0x5dbf('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x5dbf('0x1'));var router=express[_0x5dbf('0x2')]();var auth=require(_0x5dbf('0x3'));var interaction=require(_0x5dbf('0x4'));var config=require(_0x5dbf('0x5'));module[_0x5dbf('0x6')]=router;
\ No newline at end of file
+var _0x2675=['../../components/interaction/service','../../config/environment','multer','express','Router'];(function(_0x4a11da,_0x34ec52){var _0x43c6ff=function(_0x526f19){while(--_0x526f19){_0x4a11da['push'](_0x4a11da['shift']());}};_0x43c6ff(++_0x34ec52);}(_0x2675,0x75));var _0x5267=function(_0x5acabb,_0x3f52c8){_0x5acabb=_0x5acabb-0x0;var _0x3d425c=_0x2675[_0x5acabb];return _0x3d425c;};'use strict';var multer=require(_0x5267('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x5267('0x1'));var router=express[_0x5267('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x5267('0x3'));var config=require(_0x5267('0x4'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5a0=['STRING','DATE','exports','INTEGER'];(function(_0x33b7b9,_0x392765){var _0x195213=function(_0x3a92d4){while(--_0x3a92d4){_0x33b7b9['push'](_0x33b7b9['shift']());}};_0x195213(++_0x392765);}(_0xe5a0,0x14e));var _0x0e5a=function(_0x4dbefb,_0x3bdceb){_0x4dbefb=_0x4dbefb-0x0;var _0x22fadf=_0xe5a0[_0x4dbefb];return _0x22fadf;};'use strict';var Sequelize=require('sequelize');module[_0x0e5a('0x0')]={'state':{'type':Sequelize[_0x0e5a('0x1')](0x2)},'statedesc':{'type':Sequelize[_0x0e5a('0x2')]},'scheduledat':{'type':Sequelize[_0x0e5a('0x3')]},'uniqueid':{'type':Sequelize[_0x0e5a('0x2')]},'starttime':{'type':Sequelize['DATE']},'responsetime':{'type':Sequelize[_0x0e5a('0x3')]},'ringtime':{'type':Sequelize[_0x0e5a('0x1')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0x0e5a('0x2')]},'campaigntype':{'type':Sequelize[_0x0e5a('0x2')]},'membername':{'type':Sequelize[_0x0e5a('0x2')]}};
\ No newline at end of file
+var _0xb18e=['DATE','sequelize','exports','INTEGER','STRING'];(function(_0x215fd7,_0x34a3b1){var _0x3b84d9=function(_0x5bd98){while(--_0x5bd98){_0x215fd7['push'](_0x215fd7['shift']());}};_0x3b84d9(++_0x34a3b1);}(_0xb18e,0x15f));var _0xeb18=function(_0x2c7b86,_0x59ef3c){_0x2c7b86=_0x2c7b86-0x0;var _0x256735=_0xb18e[_0x2c7b86];return _0x256735;};'use strict';var Sequelize=require(_0xeb18('0x0'));module[_0xeb18('0x1')]={'state':{'type':Sequelize[_0xeb18('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xeb18('0x3')]},'scheduledat':{'type':Sequelize[_0xeb18('0x4')]},'uniqueid':{'type':Sequelize[_0xeb18('0x3')]},'starttime':{'type':Sequelize['DATE']},'responsetime':{'type':Sequelize[_0xeb18('0x4')]},'ringtime':{'type':Sequelize[_0xeb18('0x2')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0xeb18('0x3')]},'campaigntype':{'type':Sequelize[_0xeb18('0x3')]},'membername':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb503=['define','ReportAgentPreview','lodash','util','api','moment','request-promise','./reportAgentPreview.attributes','exports'];(function(_0x3d8fa2,_0x153ed0){var _0x5d3b8d=function(_0x4ae859){while(--_0x4ae859){_0x3d8fa2['push'](_0x3d8fa2['shift']());}};_0x5d3b8d(++_0x153ed0);}(_0xb503,0xc8));var _0x3b50=function(_0x53e148,_0x345023){_0x53e148=_0x53e148-0x0;var _0x340ef3=_0xb503[_0x53e148];return _0x340ef3;};'use strict';var _=require(_0x3b50('0x0'));var util=require(_0x3b50('0x1'));var logger=require('../../config/logger')(_0x3b50('0x2'));var moment=require(_0x3b50('0x3'));var BPromise=require('bluebird');var rp=require(_0x3b50('0x4'));var attributes=require(_0x3b50('0x5'));module[_0x3b50('0x6')]=function(_0x2b6f7e,_0x774269){return _0x2b6f7e[_0x3b50('0x7')](_0x3b50('0x8'),attributes,{'tableName':'report_agent_preview','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7edd=['ReportAgentPreview','report_agent_preview','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./reportAgentPreview.attributes','exports'];(function(_0x11005e,_0x20c3d2){var _0x29338f=function(_0x3384e9){while(--_0x3384e9){_0x11005e['push'](_0x11005e['shift']());}};_0x29338f(++_0x20c3d2);}(_0x7edd,0x91));var _0xd7ed=function(_0x441a2a,_0x3b5fa3){_0x441a2a=_0x441a2a-0x0;var _0xc93a2=_0x7edd[_0x441a2a];return _0xc93a2;};'use strict';var _=require(_0xd7ed('0x0'));var util=require(_0xd7ed('0x1'));var logger=require(_0xd7ed('0x2'))(_0xd7ed('0x3'));var moment=require(_0xd7ed('0x4'));var BPromise=require(_0xd7ed('0x5'));var rp=require(_0xd7ed('0x6'));var attributes=require(_0xd7ed('0x7'));module[_0xd7ed('0x8')]=function(_0x398cd1,_0x52949e){return _0x398cd1['define'](_0xd7ed('0x9'),attributes,{'tableName':_0xd7ed('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24ca=['message','info','result','ReportAgentPreview','create','options','raw','CreateReportAgentPreview','catch','lodash','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','ReportAgentPreview,\x20%s,\x20%s','request\x20sent','debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x5e7f7b,_0xb15fb5){var _0x178833=function(_0x192725){while(--_0x192725){_0x5e7f7b['push'](_0x5e7f7b['shift']());}};_0x178833(++_0xb15fb5);}(_0x24ca,0x1bc));var _0xa24c=function(_0x2f5a22,_0x5e9f03){_0x2f5a22=_0x2f5a22-0x0;var _0x326b70=_0x24ca[_0x2f5a22];return _0x326b70;};'use strict';var _=require(_0xa24c('0x0'));var util=require('util');var moment=require(_0xa24c('0x1'));var BPromise=require(_0xa24c('0x2'));var rs=require(_0xa24c('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xa24c('0x4'));var logger=require(_0xa24c('0x5'))(_0xa24c('0x6'));var config=require(_0xa24c('0x7'));var jayson=require(_0xa24c('0x8'));var client=jayson[_0xa24c('0x9')][_0xa24c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3c0aaa,_0x2dd348,_0x257264){return new BPromise(function(_0x9a5013,_0x481196){return client[_0xa24c('0xb')](_0x3c0aaa,_0x257264)[_0xa24c('0xc')](function(_0x2d645c){logger['info'](_0xa24c('0xd'),_0x2dd348,_0xa24c('0xe'));logger[_0xa24c('0xf')](_0xa24c('0x10'),_0x2dd348,_0xa24c('0xe'),JSON[_0xa24c('0x11')](_0x2d645c));if(_0x2d645c[_0xa24c('0x12')]){if(_0x2d645c[_0xa24c('0x12')][_0xa24c('0x13')]===0x1f4){logger['error'](_0xa24c('0xd'),_0x2dd348,_0x2d645c[_0xa24c('0x12')][_0xa24c('0x14')]);return _0x481196(_0x2d645c[_0xa24c('0x12')]['message']);}logger[_0xa24c('0x12')](_0xa24c('0xd'),_0x2dd348,_0x2d645c[_0xa24c('0x12')][_0xa24c('0x14')]);return _0x9a5013(_0x2d645c[_0xa24c('0x12')][_0xa24c('0x14')]);}else{logger[_0xa24c('0x15')]('ReportAgentPreview,\x20%s,\x20%s',_0x2dd348,'request\x20sent');_0x9a5013(_0x2d645c[_0xa24c('0x16')][_0xa24c('0x14')]);}})['catch'](function(_0x5babb5){logger[_0xa24c('0x12')](_0xa24c('0xd'),_0x2dd348,_0x5babb5);_0x481196(_0x5babb5);});});}exports['CreateReportAgentPreview']=function(_0x2a64ff){var _0x5de3e6=this;return new Promise(function(_0x558dc7,_0x2a610a){return db[_0xa24c('0x17')][_0xa24c('0x18')](_0x2a64ff['body'],{'raw':_0x2a64ff[_0xa24c('0x19')]?_0x2a64ff[_0xa24c('0x19')][_0xa24c('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x48a768){logger['info']('CreateReportAgentPreview',_0x2a64ff);logger[_0xa24c('0xf')](_0xa24c('0x1b'),_0x2a64ff,JSON[_0xa24c('0x11')](_0x48a768));_0x558dc7(_0x48a768);})[_0xa24c('0x1c')](function(_0x51a275){logger[_0xa24c('0x12')]('CreateReportAgentPreview',_0x51a275[_0xa24c('0x14')],_0x2a64ff);_0x2a610a(_0x5de3e6[_0xa24c('0x12')](0x1f4,_0x51a275['message']));});});};
\ No newline at end of file
+var _0x0c5a=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','ReportAgentPreview,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','CreateReportAgentPreview','ReportAgentPreview','create','body','options','raw','debug','catch'];(function(_0x3507ba,_0x4647bc){var _0x252283=function(_0x4f5f82){while(--_0x4f5f82){_0x3507ba['push'](_0x3507ba['shift']());}};_0x252283(++_0x4647bc);}(_0x0c5a,0x10e));var _0xa0c5=function(_0x383200,_0x55917e){_0x383200=_0x383200-0x0;var _0x36592f=_0x0c5a[_0x383200];return _0x36592f;};'use strict';var _=require(_0xa0c5('0x0'));var util=require(_0xa0c5('0x1'));var moment=require(_0xa0c5('0x2'));var BPromise=require(_0xa0c5('0x3'));var rs=require(_0xa0c5('0x4'));var fs=require('fs');var Redis=require(_0xa0c5('0x5'));var db=require(_0xa0c5('0x6'))['db'];var utils=require(_0xa0c5('0x7'));var logger=require(_0xa0c5('0x8'))(_0xa0c5('0x9'));var config=require(_0xa0c5('0xa'));var jayson=require(_0xa0c5('0xb'));var client=jayson[_0xa0c5('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x35c442,_0x333662,_0x536ea8){return new BPromise(function(_0x529ec2,_0x249ebe){return client[_0xa0c5('0xd')](_0x35c442,_0x536ea8)['then'](function(_0x42ef1b){logger[_0xa0c5('0xe')](_0xa0c5('0xf'),_0x333662,_0xa0c5('0x10'));logger['debug']('ReportAgentPreview,\x20%s,\x20%s,\x20%s',_0x333662,_0xa0c5('0x10'),JSON[_0xa0c5('0x11')](_0x42ef1b));if(_0x42ef1b[_0xa0c5('0x12')]){if(_0x42ef1b['error'][_0xa0c5('0x13')]===0x1f4){logger[_0xa0c5('0x12')](_0xa0c5('0xf'),_0x333662,_0x42ef1b[_0xa0c5('0x12')][_0xa0c5('0x14')]);return _0x249ebe(_0x42ef1b['error'][_0xa0c5('0x14')]);}logger['error'](_0xa0c5('0xf'),_0x333662,_0x42ef1b[_0xa0c5('0x12')][_0xa0c5('0x14')]);return _0x529ec2(_0x42ef1b[_0xa0c5('0x12')][_0xa0c5('0x14')]);}else{logger[_0xa0c5('0xe')](_0xa0c5('0xf'),_0x333662,_0xa0c5('0x10'));_0x529ec2(_0x42ef1b[_0xa0c5('0x15')][_0xa0c5('0x14')]);}})['catch'](function(_0x65fb1c){logger[_0xa0c5('0x12')](_0xa0c5('0xf'),_0x333662,_0x65fb1c);_0x249ebe(_0x65fb1c);});});}exports[_0xa0c5('0x16')]=function(_0x242324){var _0x4bd987=this;return new Promise(function(_0x1666ce,_0x14baee){return db[_0xa0c5('0x17')][_0xa0c5('0x18')](_0x242324[_0xa0c5('0x19')],{'raw':_0x242324['options']?_0x242324[_0xa0c5('0x1a')][_0xa0c5('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x2c4938){logger[_0xa0c5('0xe')](_0xa0c5('0x16'),_0x242324);logger[_0xa0c5('0x1c')](_0xa0c5('0x16'),_0x242324,JSON[_0xa0c5('0x11')](_0x2c4938));_0x1666ce(_0x2c4938);})[_0xa0c5('0x1d')](function(_0x393026){logger[_0xa0c5('0x12')](_0xa0c5('0x16'),_0x393026[_0xa0c5('0x14')],_0x242324);_0x14baee(_0x4bd987[_0xa0c5('0x12')](0x1f4,_0x393026[_0xa0c5('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe888=['/openchannel/queues/:id','showOpenchannelQueues','/sms/queues/:id/notify','showSmsQueues','/agents/:id/notify','multer','Router','../../components/auth/service','get','isAuthenticated','voiceChannels','voiceChannelMixMonitor','/voice/channels/:uniqueid/stopmixmonitor','voiceChannelStopMixMonitor','/voice/queues','voiceQueues','chatQueues','mailQueues','mailAccounts','/openchannel/queues','openchannelQueues','/sms/queues','smsQueues','/fax/queues','/voice/queues/preview/:id','voiceQueuesPreview','/voice/queues/channels','/voice/queues/channels/:uniqueid','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','showVoiceQueues','outbound','/outbound/channels','/agents','agents','/agents/:id/capacity','agentCapacity','/telephones','telephones','trunks','/campaigns','/fax/accounts','/chat/queues/waitinginteractions','/openchannel/queues/waitinginteractions','/sms/queues/waitinginteractions','smsQueuesWaitingInteractions','/fax/queues/waitinginteractions','faxQueuesWaitingInteractions','post','/mail/queues/:id/notify','queueNotify','mail','/mail/queues/:id','showMailQueues','/chat/queues/:id/notify','chat','/chat/queues/:id','showChatQueues','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','openchannel'];(function(_0x1433e2,_0x2fbb30){var _0x3daf12=function(_0x430eef){while(--_0x430eef){_0x1433e2['push'](_0x1433e2['shift']());}};_0x3daf12(++_0x2fbb30);}(_0xe888,0x1c5));var _0x8e88=function(_0x20cb20,_0x256051){_0x20cb20=_0x20cb20-0x0;var _0x2fcf4b=_0xe888[_0x20cb20];return _0x2fcf4b;};'use strict';var multer=require(_0x8e88('0x0'));var util=require('util');var path=require('path');var express=require('express');var router=express[_0x8e88('0x1')]();var auth=require(_0x8e88('0x2'));var controller=require('./rpc.controller');router[_0x8e88('0x3')]('/voice/channels',auth[_0x8e88('0x4')](),controller[_0x8e88('0x5')]);router[_0x8e88('0x3')]('/voice/channels/:uniqueid/mixmonitor',auth[_0x8e88('0x4')](),controller[_0x8e88('0x6')]);router['get'](_0x8e88('0x7'),auth['isAuthenticated'](),controller[_0x8e88('0x8')]);router[_0x8e88('0x3')](_0x8e88('0x9'),auth[_0x8e88('0x4')](),controller[_0x8e88('0xa')]);router[_0x8e88('0x3')]('/chat/queues',auth[_0x8e88('0x4')](),controller[_0x8e88('0xb')]);router[_0x8e88('0x3')]('/mail/queues',auth[_0x8e88('0x4')](),controller[_0x8e88('0xc')]);router[_0x8e88('0x3')]('/mail/accounts',auth[_0x8e88('0x4')](),controller[_0x8e88('0xd')]);router[_0x8e88('0x3')](_0x8e88('0xe'),auth[_0x8e88('0x4')](),controller[_0x8e88('0xf')]);router['get'](_0x8e88('0x10'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x11')]);router[_0x8e88('0x3')](_0x8e88('0x12'),auth[_0x8e88('0x4')](),controller['faxQueues']);router[_0x8e88('0x3')](_0x8e88('0x13'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x14')]);router[_0x8e88('0x3')](_0x8e88('0x15'),auth[_0x8e88('0x4')](),controller['voiceQueuesChannels']);router[_0x8e88('0x3')](_0x8e88('0x16'),auth[_0x8e88('0x4')](),controller['voiceQueuesChannel']);router[_0x8e88('0x3')]('/voice/queues/channels/:uniqueid/hangup',auth[_0x8e88('0x4')](),controller[_0x8e88('0x17')]);router[_0x8e88('0x3')](_0x8e88('0x18'),auth['isAuthenticated'](),controller[_0x8e88('0x19')]);router[_0x8e88('0x3')]('/voice/queues/:id',auth[_0x8e88('0x4')](),controller[_0x8e88('0x1a')]);router['get']('/outbound',auth[_0x8e88('0x4')](),controller[_0x8e88('0x1b')]);router['get'](_0x8e88('0x1c'),auth['isAuthenticated'](),controller['outboundChannels']);router[_0x8e88('0x3')](_0x8e88('0x1d'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x1e')]);router['put'](_0x8e88('0x1f'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x20')]);router['get'](_0x8e88('0x21'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x22')]);router['get']('/trunks',auth[_0x8e88('0x4')](),controller[_0x8e88('0x23')]);router['get'](_0x8e88('0x24'),auth['isAuthenticated'](),controller['campaigns']);router[_0x8e88('0x3')](_0x8e88('0x25'),auth[_0x8e88('0x4')](),controller['faxAccounts']);router[_0x8e88('0x3')](_0x8e88('0x26'),auth[_0x8e88('0x4')](),controller['chatQueuesWaitingInteractions']);router[_0x8e88('0x3')]('/mail/queues/waitinginteractions',auth[_0x8e88('0x4')](),controller['mailQueuesWaitingInteractions']);router[_0x8e88('0x3')](_0x8e88('0x27'),auth[_0x8e88('0x4')](),controller['openchannelQueuesWaitingInteractions']);router[_0x8e88('0x3')](_0x8e88('0x28'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x29')]);router[_0x8e88('0x3')](_0x8e88('0x2a'),auth['isAuthenticated'](),controller[_0x8e88('0x2b')]);router[_0x8e88('0x2c')](_0x8e88('0x2d'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x2e')](_0x8e88('0x2f')));router[_0x8e88('0x3')](_0x8e88('0x30'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x31')]);router[_0x8e88('0x2c')](_0x8e88('0x32'),auth[_0x8e88('0x4')](),controller['queueNotify'](_0x8e88('0x33')));router['get'](_0x8e88('0x34'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x35')]);router[_0x8e88('0x2c')]('/fax/queues/:id/notify',auth[_0x8e88('0x4')](),controller[_0x8e88('0x2e')](_0x8e88('0x36')));router[_0x8e88('0x3')](_0x8e88('0x37'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x38')]);router['post'](_0x8e88('0x39'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x2e')](_0x8e88('0x3a')));router[_0x8e88('0x3')](_0x8e88('0x3b'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x3c')]);router[_0x8e88('0x2c')](_0x8e88('0x3d'),auth[_0x8e88('0x4')](),controller[_0x8e88('0x2e')]('sms'));router[_0x8e88('0x3')]('/sms/queues/:id',auth[_0x8e88('0x4')](),controller[_0x8e88('0x3e')]);router['post'](_0x8e88('0x3f'),auth[_0x8e88('0x4')](),controller['agentNotify']);module['exports']=router;
\ No newline at end of file
+var _0x6e5e=['voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','showVoiceQueues','/outbound','outbound','outboundChannels','/agents','agents','put','/agents/:id/capacity','telephones','/trunks','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','mailQueuesWaitingInteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions','/sms/queues/waitinginteractions','/fax/queues/waitinginteractions','faxQueuesWaitingInteractions','post','/mail/queues/:id/notify','queueNotify','showMailQueues','/chat/queues/:id/notify','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','showFaxQueues','/openchannel/queues/:id/notify','openchannel','/openchannel/queues/:id','showOpenchannelQueues','/sms/queues/:id/notify','sms','/sms/queues/:id','showSmsQueues','/agents/:id/notify','agentNotify','exports','multer','util','express','Router','../../components/auth/service','get','/voice/channels','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/stopmixmonitor','voiceChannelStopMixMonitor','/voice/queues','voiceQueues','chatQueues','/mail/queues','mailQueues','/mail/accounts','openchannelQueues','/sms/queues','smsQueues','/fax/queues','faxQueues','/voice/queues/preview/:id','voiceQueuesPreview'];(function(_0x1a30c5,_0x477753){var _0xff44c2=function(_0x1325cc){while(--_0x1325cc){_0x1a30c5['push'](_0x1a30c5['shift']());}};_0xff44c2(++_0x477753);}(_0x6e5e,0x1aa));var _0xe6e5=function(_0x507d10,_0xcf3713){_0x507d10=_0x507d10-0x0;var _0x34a2c0=_0x6e5e[_0x507d10];return _0x34a2c0;};'use strict';var multer=require(_0xe6e5('0x0'));var util=require(_0xe6e5('0x1'));var path=require('path');var express=require(_0xe6e5('0x2'));var router=express[_0xe6e5('0x3')]();var auth=require(_0xe6e5('0x4'));var controller=require('./rpc.controller');router[_0xe6e5('0x5')](_0xe6e5('0x6'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x8')]);router[_0xe6e5('0x5')]('/voice/channels/:uniqueid/mixmonitor',auth[_0xe6e5('0x7')](),controller['voiceChannelMixMonitor']);router[_0xe6e5('0x5')](_0xe6e5('0x9'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0xa')]);router[_0xe6e5('0x5')](_0xe6e5('0xb'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0xc')]);router['get']('/chat/queues',auth[_0xe6e5('0x7')](),controller[_0xe6e5('0xd')]);router[_0xe6e5('0x5')](_0xe6e5('0xe'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0xf')]);router[_0xe6e5('0x5')](_0xe6e5('0x10'),auth[_0xe6e5('0x7')](),controller['mailAccounts']);router[_0xe6e5('0x5')]('/openchannel/queues',auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x11')]);router[_0xe6e5('0x5')](_0xe6e5('0x12'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x13')]);router[_0xe6e5('0x5')](_0xe6e5('0x14'),auth['isAuthenticated'](),controller[_0xe6e5('0x15')]);router[_0xe6e5('0x5')](_0xe6e5('0x16'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x17')]);router[_0xe6e5('0x5')]('/voice/queues/channels',auth['isAuthenticated'](),controller[_0xe6e5('0x18')]);router['get'](_0xe6e5('0x19'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x1a')]);router[_0xe6e5('0x5')](_0xe6e5('0x1b'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x1c')]);router['get'](_0xe6e5('0x1d'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x1e')]);router['get'](_0xe6e5('0x1f'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x20')]);router[_0xe6e5('0x5')](_0xe6e5('0x21'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x22')]);router[_0xe6e5('0x5')]('/outbound/channels',auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x23')]);router[_0xe6e5('0x5')](_0xe6e5('0x24'),auth['isAuthenticated'](),controller[_0xe6e5('0x25')]);router[_0xe6e5('0x26')](_0xe6e5('0x27'),auth[_0xe6e5('0x7')](),controller['agentCapacity']);router[_0xe6e5('0x5')]('/telephones',auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x28')]);router[_0xe6e5('0x5')](_0xe6e5('0x29'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x2a')]);router[_0xe6e5('0x5')](_0xe6e5('0x2b'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x2c')]);router['get'](_0xe6e5('0x2d'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x2e')]);router[_0xe6e5('0x5')]('/chat/queues/waitinginteractions',auth['isAuthenticated'](),controller['chatQueuesWaitingInteractions']);router[_0xe6e5('0x5')]('/mail/queues/waitinginteractions',auth['isAuthenticated'](),controller[_0xe6e5('0x2f')]);router[_0xe6e5('0x5')](_0xe6e5('0x30'),auth['isAuthenticated'](),controller[_0xe6e5('0x31')]);router[_0xe6e5('0x5')](_0xe6e5('0x32'),auth[_0xe6e5('0x7')](),controller['smsQueuesWaitingInteractions']);router[_0xe6e5('0x5')](_0xe6e5('0x33'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x34')]);router[_0xe6e5('0x35')](_0xe6e5('0x36'),auth['isAuthenticated'](),controller[_0xe6e5('0x37')]('mail'));router[_0xe6e5('0x5')]('/mail/queues/:id',auth['isAuthenticated'](),controller[_0xe6e5('0x38')]);router[_0xe6e5('0x35')](_0xe6e5('0x39'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x37')](_0xe6e5('0x3a')));router[_0xe6e5('0x5')](_0xe6e5('0x3b'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x3c')]);router[_0xe6e5('0x35')](_0xe6e5('0x3d'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x37')](_0xe6e5('0x3e')));router[_0xe6e5('0x5')]('/fax/queues/:id',auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x3f')]);router['post'](_0xe6e5('0x40'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x37')](_0xe6e5('0x41')));router[_0xe6e5('0x5')](_0xe6e5('0x42'),auth['isAuthenticated'](),controller[_0xe6e5('0x43')]);router[_0xe6e5('0x35')](_0xe6e5('0x44'),auth['isAuthenticated'](),controller[_0xe6e5('0x37')](_0xe6e5('0x45')));router[_0xe6e5('0x5')](_0xe6e5('0x46'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x47')]);router[_0xe6e5('0x35')](_0xe6e5('0x48'),auth[_0xe6e5('0x7')](),controller[_0xe6e5('0x49')]);module[_0xe6e5('0x4a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd27c=['Website','Queue','findOne','\x20Queue\x20not\x20found','Message','Interaction','Account','update','InteractionId','From','Start','queue','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','User','messageId','\x20Message\x20not\x20found','MessageId','create','bluebird','moment','lodash','util','../../mysqldb','../../config/logger','api','jayson/promise','client','http','request','error','code','message','result','status','json','stack','name','send','isNil','rows','find','voiceChannels','VoiceChannels','query','catch','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','then','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','params','VoiceQueues','showVoiceQueues','voiceQueuesPreview','VoiceQueuesPreview','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','VoiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','OutboundChannels','agents','Agents','body','interaction','user','hasOwnProperty','findAll','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','MemberReport','findOrCreate','INTERACTION','interface','format','SIP/%s','agent','AgentCapacity','capacity','telephones','trunks','Trunks','campaigns','chatQueues','ChatQueues','showChatQueues','MailQueues','showMailQueues','openchannelQueues','OpenchannelQueues','smsQueues','SmsQueues','faxQueues','FaxQueues','showFaxQueues','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','SmsQueuesWaitingInteractions','faxQueuesWaitingInteractions','queueNotify','capitalize','chat'];(function(_0x6131cd,_0x4c26a1){var _0x47e916=function(_0x1f2bce){while(--_0x1f2bce){_0x6131cd['push'](_0x6131cd['shift']());}};_0x47e916(++_0x4c26a1);}(_0xd27c,0x102));var _0xcd27=function(_0x2e2d89,_0x4bb615){_0x2e2d89=_0x2e2d89-0x0;var _0x3aba90=_0xd27c[_0x2e2d89];return _0x3aba90;};'use strict';var BPromise=require(_0xcd27('0x0'));var moment=require(_0xcd27('0x1'));var _=require(_0xcd27('0x2'));var util=require(_0xcd27('0x3'));var db=require(_0xcd27('0x4'))['db'];var logger=require(_0xcd27('0x5'))(_0xcd27('0x6'));var jayson=require(_0xcd27('0x7'));var amiClient=jayson[_0xcd27('0x8')][_0xcd27('0x9')]({'port':0x232a});var mailClient=jayson['client'][_0xcd27('0x9')]({'port':0x232b});var routingClient=jayson[_0xcd27('0x8')][_0xcd27('0x9')]({'port':0x232c});function respondWithRpcPromise(_0x21236d,_0x860fbb,_0xe97ff9){return new BPromise(function(_0x4c3b34,_0x336e0e){var _0x235b3f=_0xe97ff9?_0xe97ff9:amiClient;return _0x235b3f[_0xcd27('0xa')](_0x21236d,_0x860fbb)['then'](function(_0x394d26){if(_0x394d26['error']){if(_0x394d26[_0xcd27('0xb')][_0xcd27('0xc')]===0x1f4){return _0x336e0e(_0x394d26[_0xcd27('0xb')][_0xcd27('0xd')]);}return _0x4c3b34(_0x394d26[_0xcd27('0xb')]['message']);}else{_0x4c3b34(_0x394d26[_0xcd27('0xe')]);}})['catch'](function(_0x1493c2){_0x336e0e(_0x1493c2);});});}function respondWithResult(_0x166279,_0x2a3403){_0x2a3403=_0x2a3403||0xc8;return function(_0x27d50d){if(_0x27d50d){return _0x166279[_0xcd27('0xf')](_0x2a3403)[_0xcd27('0x10')](_0x27d50d);}return _0x166279['sendStatus'](0x194);};}function handleError(_0x233e79,_0x38a5af){_0x38a5af=_0x38a5af||0x1f4;return function(_0x34856b){logger[_0xcd27('0xb')](_0x34856b[_0xcd27('0x11')]);if(_0x34856b[_0xcd27('0x12')]){delete _0x34856b['name'];}_0x233e79[_0xcd27('0xf')](_0x38a5af)[_0xcd27('0x13')](_0x34856b);};}function findById(_0x1da815){return function(_0x1b9069){if(!_[_0xcd27('0x14')](_0x1da815)&&!_[_0xcd27('0x14')](_0x1b9069)&&!_[_0xcd27('0x14')](_0x1b9069[_0xcd27('0x15')])){return _[_0xcd27('0x16')](_0x1b9069[_0xcd27('0x15')],function(_0x1b1d72){return _0x1b1d72['id']==_0x1da815;});}return null;};}exports[_0xcd27('0x17')]=function(_0x4eefa3,_0x35afcb){return respondWithRpcPromise(_0xcd27('0x18'),_0x4eefa3[_0xcd27('0x19')])['then'](respondWithResult(_0x35afcb,null))[_0xcd27('0x1a')](handleError(_0x35afcb,null));};exports[_0xcd27('0x1b')]=function(_0x4acfd0,_0x1e0be6){return respondWithRpcPromise(_0xcd27('0x1c'),_[_0xcd27('0x1d')](_0x4acfd0[_0xcd27('0x19')],_0x4acfd0['params']))[_0xcd27('0x1e')](respondWithResult(_0x1e0be6,null))[_0xcd27('0x1a')](handleError(_0x1e0be6,null));};exports[_0xcd27('0x1f')]=function(_0x3ebb3f,_0x498205){return respondWithRpcPromise(_0xcd27('0x20'),_[_0xcd27('0x1d')](_0x3ebb3f[_0xcd27('0x19')],_0x3ebb3f[_0xcd27('0x21')]))[_0xcd27('0x1e')](respondWithResult(_0x498205,null))['catch'](handleError(_0x498205,null));};exports['voiceQueues']=function(_0x5d5702,_0x531a94){return respondWithRpcPromise(_0xcd27('0x22'),_0x5d5702['query'])[_0xcd27('0x1e')](respondWithResult(_0x531a94,null))['catch'](handleError(_0x531a94,null));};exports[_0xcd27('0x23')]=function(_0xa454fd,_0x470b7e){return respondWithRpcPromise(_0xcd27('0x22'),_0xa454fd[_0xcd27('0x19')])[_0xcd27('0x1e')](findById(_0xa454fd[_0xcd27('0x21')]['id']))[_0xcd27('0x1e')](respondWithResult(_0x470b7e,null))['catch'](handleError(_0x470b7e,null));};exports[_0xcd27('0x24')]=function(_0x340292,_0x236df2){return respondWithRpcPromise(_0xcd27('0x25'),_[_0xcd27('0x1d')](_0x340292[_0xcd27('0x19')],_0x340292[_0xcd27('0x21')]))[_0xcd27('0x1e')](respondWithResult(_0x236df2,null))[_0xcd27('0x1a')](handleError(_0x236df2,null));};exports['voiceQueuesChannels']=function(_0x1e8b29,_0x2b8117){return respondWithRpcPromise(_0xcd27('0x26'),_0x1e8b29[_0xcd27('0x19')])[_0xcd27('0x1e')](respondWithResult(_0x2b8117,null))[_0xcd27('0x1a')](handleError(_0x2b8117,null));};exports[_0xcd27('0x27')]=function(_0x29f5cc,_0x37548a){return respondWithRpcPromise(_0xcd27('0x28'),_[_0xcd27('0x1d')](_0x29f5cc[_0xcd27('0x19')],_0x29f5cc[_0xcd27('0x21')]))[_0xcd27('0x1e')](respondWithResult(_0x37548a,null))[_0xcd27('0x1a')](handleError(_0x37548a,null));};exports['voiceQueuesChannelHangup']=function(_0x4e728d,_0x4ca072){return respondWithRpcPromise(_0xcd27('0x29'),_[_0xcd27('0x1d')](_0x4e728d['query'],_0x4e728d[_0xcd27('0x21')]))[_0xcd27('0x1e')](respondWithResult(_0x4ca072,null))[_0xcd27('0x1a')](handleError(_0x4ca072,null));};exports[_0xcd27('0x2a')]=function(_0x1e528c,_0x32ec5a){return respondWithRpcPromise(_0xcd27('0x2b'),_[_0xcd27('0x1d')](_0x1e528c[_0xcd27('0x19')],_0x1e528c[_0xcd27('0x21')]))['then'](respondWithResult(_0x32ec5a,null))['catch'](handleError(_0x32ec5a,null));};exports[_0xcd27('0x2c')]=function(_0x877e35,_0x33fd83){return respondWithRpcPromise(_0xcd27('0x2d'),_0x877e35[_0xcd27('0x19')])[_0xcd27('0x1e')](respondWithResult(_0x33fd83,null))[_0xcd27('0x1a')](handleError(_0x33fd83,null));};exports[_0xcd27('0x2e')]=function(_0x14d3a0,_0x1f8049){return respondWithRpcPromise(_0xcd27('0x2f'),_0x14d3a0[_0xcd27('0x19')])['then'](respondWithResult(_0x1f8049,null))[_0xcd27('0x1a')](handleError(_0x1f8049,null));};exports[_0xcd27('0x30')]=function(_0x467257,_0x1b57e0){var _0x357b64;return respondWithRpcPromise(_0xcd27('0x31'),_0x467257['query'])[_0xcd27('0x1e')](function(_0x43d5c7){_0x357b64=_0x43d5c7;return respondWithRpcPromise('Agents',_0x467257['query'],routingClient);})['then'](function(_0x1ea42e){return _[_0xcd27('0x1d')]({},_0x1ea42e,_0x357b64);})[_0xcd27('0x1e')](respondWithResult(_0x1b57e0,null))[_0xcd27('0x1a')](handleError(_0x1b57e0,null));};exports['agentCapacity']=function(_0x36050a,_0x45aefc){if(_0x36050a['body']&&_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')]&&_0x36050a[_0xcd27('0x34')]&&_0x36050a[_0xcd27('0x34')][_0xcd27('0x12')]){for(var _0x3de8a6 in _0x36050a['body']['interaction']){if(_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')][_0xcd27('0x35')](_0x3de8a6)){db['MemberReport'][_0xcd27('0x36')]({'where':{'channel':_0x3de8a6,'membername':_0x36050a['user'][_0xcd27('0x12')],'type':'INTERACTION','exitAt':null,'uniqueid':_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')][_0x3de8a6]&&_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')][_0x3de8a6][_0xcd27('0x37')]?{'$notIn':_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')][_0x3de8a6]}:{'$ne':null}}})['then'](function(_0x131a9b){var _0x14ec18=moment()['format'](_0xcd27('0x38'));for(var _0x486eb6=0x0,_0x3c7734=_0x131a9b[_0xcd27('0x37')];_0x486eb6<_0x3c7734;_0x486eb6+=0x1){_0x131a9b[_0x486eb6][_0xcd27('0x39')]({'exitAt':_0x14ec18});}});for(var _0x565f40=0x0;_0x565f40<_0x36050a['body'][_0xcd27('0x33')][_0x3de8a6][_0xcd27('0x37')];_0x565f40+=0x1){db[_0xcd27('0x3a')][_0xcd27('0x3b')]({'where':{'channel':_0x3de8a6,'membername':_0x36050a['user']['name'],'type':_0xcd27('0x3c'),'uniqueid':_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')][_0x3de8a6][_0x565f40],'exitAt':null},'defaults':{'channel':_0x3de8a6,'membername':_0x36050a[_0xcd27('0x34')][_0xcd27('0x12')],'interface':_['isNil'](_0x36050a[_0xcd27('0x34')][_0xcd27('0x3d')])?util[_0xcd27('0x3e')](_0xcd27('0x3f'),_0x36050a[_0xcd27('0x34')][_0xcd27('0x12')]):_0x36050a['user'][_0xcd27('0x3d')],'type':'INTERACTION','enterAt':moment()[_0xcd27('0x3e')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0xcd27('0x40'),'internal':_0x36050a['user']['internal'],'uniqueid':_0x36050a[_0xcd27('0x32')][_0xcd27('0x33')][_0x3de8a6][_0x565f40]}});}}}}return respondWithRpcPromise(_0xcd27('0x41'),{'id':_0x36050a['params']['id'],'capacity':_0x36050a[_0xcd27('0x32')][_0xcd27('0x42')]},routingClient)[_0xcd27('0x1e')](respondWithResult(_0x45aefc,null))['catch'](handleError(_0x45aefc,null));};exports[_0xcd27('0x43')]=function(_0x4485ee,_0x5712ee){return respondWithRpcPromise('Telephones',_0x4485ee['query'])[_0xcd27('0x1e')](respondWithResult(_0x5712ee,null))[_0xcd27('0x1a')](handleError(_0x5712ee,null));};exports[_0xcd27('0x44')]=function(_0x573df6,_0x4bce4d){return respondWithRpcPromise(_0xcd27('0x45'),_0x573df6[_0xcd27('0x19')])[_0xcd27('0x1e')](respondWithResult(_0x4bce4d,null))[_0xcd27('0x1a')](handleError(_0x4bce4d,null));};exports[_0xcd27('0x46')]=function(_0x1c395f,_0x45e866){return respondWithRpcPromise('Campaigns',_0x1c395f[_0xcd27('0x19')])[_0xcd27('0x1e')](respondWithResult(_0x45e866,null))['catch'](handleError(_0x45e866,null));};exports[_0xcd27('0x47')]=function(_0x5b0696,_0x106351){return respondWithRpcPromise(_0xcd27('0x48'),_0x5b0696[_0xcd27('0x19')],routingClient)['then'](respondWithResult(_0x106351,null))[_0xcd27('0x1a')](handleError(_0x106351,null));};exports[_0xcd27('0x49')]=function(_0x671690,_0x32b688){return respondWithRpcPromise(_0xcd27('0x48'),_0x671690[_0xcd27('0x19')],routingClient)['then'](findById(_0x671690[_0xcd27('0x21')]['id']))[_0xcd27('0x1e')](respondWithResult(_0x32b688,null))[_0xcd27('0x1a')](handleError(_0x32b688,null));};exports['mailQueues']=function(_0x4236fe,_0x4a1ffb){return respondWithRpcPromise(_0xcd27('0x4a'),_0x4236fe[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](respondWithResult(_0x4a1ffb,null))[_0xcd27('0x1a')](handleError(_0x4a1ffb,null));};exports[_0xcd27('0x4b')]=function(_0xbdada0,_0x237639){return respondWithRpcPromise(_0xcd27('0x4a'),_0xbdada0[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](findById(_0xbdada0[_0xcd27('0x21')]['id']))['then'](respondWithResult(_0x237639,null))[_0xcd27('0x1a')](handleError(_0x237639,null));};exports['mailAccounts']=function(_0x2d6637,_0xe7243e){return respondWithRpcPromise('MailAccounts',_0x2d6637[_0xcd27('0x19')],mailClient)[_0xcd27('0x1e')](respondWithResult(_0xe7243e,null))[_0xcd27('0x1a')](handleError(_0xe7243e,null));};exports[_0xcd27('0x4c')]=function(_0xd5d05a,_0xa08a5f){return respondWithRpcPromise(_0xcd27('0x4d'),_0xd5d05a[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](respondWithResult(_0xa08a5f,null))[_0xcd27('0x1a')](handleError(_0xa08a5f,null));};exports['showOpenchannelQueues']=function(_0x58723d,_0x4fc291){return respondWithRpcPromise(_0xcd27('0x4d'),_0x58723d[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](findById(_0x58723d[_0xcd27('0x21')]['id']))[_0xcd27('0x1e')](respondWithResult(_0x4fc291,null))[_0xcd27('0x1a')](handleError(_0x4fc291,null));};exports[_0xcd27('0x4e')]=function(_0x56040c,_0x18d9d0){return respondWithRpcPromise(_0xcd27('0x4f'),_0x56040c[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](respondWithResult(_0x18d9d0,null))[_0xcd27('0x1a')](handleError(_0x18d9d0,null));};exports['showSmsQueues']=function(_0x233ccc,_0x6643a0){return respondWithRpcPromise(_0xcd27('0x4f'),_0x233ccc[_0xcd27('0x19')],routingClient)['then'](findById(_0x233ccc[_0xcd27('0x21')]['id']))['then'](respondWithResult(_0x6643a0,null))[_0xcd27('0x1a')](handleError(_0x6643a0,null));};exports[_0xcd27('0x50')]=function(_0x139e1e,_0x3324db){return respondWithRpcPromise(_0xcd27('0x51'),_0x139e1e[_0xcd27('0x19')],routingClient)['then'](respondWithResult(_0x3324db,null))['catch'](handleError(_0x3324db,null));};exports[_0xcd27('0x52')]=function(_0x21bcd0,_0x176677){return respondWithRpcPromise('FaxQueues',_0x21bcd0['query'],routingClient)[_0xcd27('0x1e')](findById(_0x21bcd0[_0xcd27('0x21')]['id']))['then'](respondWithResult(_0x176677,null))['catch'](handleError(_0x176677,null));};exports['faxAccounts']=function(_0x8a45a7,_0x19ad25){return respondWithRpcPromise(_0xcd27('0x53'),_0x8a45a7['query'])[_0xcd27('0x1e')](respondWithResult(_0x19ad25,null))[_0xcd27('0x1a')](handleError(_0x19ad25,null));};exports[_0xcd27('0x54')]=function(_0x2bdc1b,_0x4ed2d1){return respondWithRpcPromise(_0xcd27('0x55'),_0x2bdc1b[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](respondWithResult(_0x4ed2d1,null))[_0xcd27('0x1a')](handleError(_0x4ed2d1,null));};exports[_0xcd27('0x56')]=function(_0x39812c,_0x1e141e){return respondWithRpcPromise(_0xcd27('0x57'),_0x39812c[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](respondWithResult(_0x1e141e,null))['catch'](handleError(_0x1e141e,null));};exports[_0xcd27('0x58')]=function(_0x360a03,_0x350eec){return respondWithRpcPromise(_0xcd27('0x59'),_0x360a03['query'],routingClient)[_0xcd27('0x1e')](respondWithResult(_0x350eec,null))[_0xcd27('0x1a')](handleError(_0x350eec,null));};exports[_0xcd27('0x5a')]=function(_0x1c0370,_0x1af2dd){return respondWithRpcPromise(_0xcd27('0x5b'),_0x1c0370[_0xcd27('0x19')],routingClient)[_0xcd27('0x1e')](respondWithResult(_0x1af2dd,null))[_0xcd27('0x1a')](handleError(_0x1af2dd,null));};exports[_0xcd27('0x5c')]=function(_0x55a97a,_0x8ff434){return respondWithRpcPromise('FaxQueuesWaitingInteractions',_0x55a97a[_0xcd27('0x19')],routingClient)['then'](respondWithResult(_0x8ff434,null))[_0xcd27('0x1a')](handleError(_0x8ff434,null));};exports[_0xcd27('0x5d')]=function(_0x135e1d){return function(_0x5e46ae,_0x23a3c0){var _0x3ba122,_0x238105;var _0x2296bc=_[_0xcd27('0x5e')](_0x135e1d);var _0x8705b8=_0x135e1d===_0xcd27('0x5f')?_0xcd27('0x60'):'Account';return db[_0x2296bc+_0xcd27('0x61')][_0xcd27('0x62')]({'raw':!![],'where':{'id':_0x5e46ae[_0xcd27('0x21')]['id']}})[_0xcd27('0x1e')](function(_0x57c0de){if(_[_0xcd27('0x14')](_0x57c0de)){throw new Error(_0x2296bc+_0xcd27('0x63'));}_0x3ba122=_0x57c0de;return db[_0x2296bc+_0xcd27('0x64')][_0xcd27('0x62')]({'where':{'id':_0x5e46ae[_0xcd27('0x32')]['messageId']},'include':[{'model':db[_0x2296bc+_0xcd27('0x65')],'as':_0xcd27('0x65')},{'model':db[_0x2296bc+_0x8705b8],'as':_0xcd27('0x66')}]});})['then'](function(_0x18b840){if(_[_0xcd27('0x14')](_0x18b840)){throw new Error(_0x2296bc+'\x20Message\x20not\x20found');}_0x238105=_0x18b840;return _0x18b840[_0xcd27('0x67')]({'read':0x0,'readAt':null,'UserId':null});})[_0xcd27('0x1e')](function(){var _0x1e06e1={'uniqueid':_0x135e1d+'.'+_0x238105['id']+'.'+_0x238105[_0xcd27('0x65')]['id'],'FromUserId':_0x5e46ae['user']['id'],'type':'queue'};_0x1e06e1[_0x2296bc+'MessageId']=_0x238105['id'];_0x1e06e1[_0x2296bc+_0xcd27('0x68')]=_0x238105['Interaction']['id'];_0x1e06e1[_0xcd27('0x69')+_0x2296bc+_0x8705b8+'Id']=_0x238105[_0xcd27('0x66')]['id'];_0x1e06e1['To'+_0x2296bc+'QueueId']=_0x3ba122['id'];return db[_0x2296bc+'TransferReport']['create'](_0x1e06e1);})[_0xcd27('0x1e')](function(){return respondWithRpcPromise(_0xcd27('0x6a'),{'channel':_0x135e1d,'interaction':_0x238105[_0xcd27('0x65')],'message':_0x238105,'account':_0x238105['Account'],'applications':[{'id':0x0,'priority':0x1,'app':_0xcd27('0x6b'),'appdata':_0x3ba122[_0xcd27('0x12')]+','+(_0x238105[_0xcd27('0x66')][_0xcd27('0x6c')]||0x12c),'interval':_0xcd27('0x6d')}]},routingClient);})[_0xcd27('0x1e')](respondWithResult(_0x23a3c0,null))['catch'](handleError(_0x23a3c0,null));};};exports[_0xcd27('0x6e')]=function(_0x4770ae,_0xfc2a0f){var _0x5cf728,_0x530265;if(_[_0xcd27('0x14')](_0x4770ae['body'][_0xcd27('0x6f')])){throw new Error(_0xcd27('0x70'));}var _0x473217=_0x4770ae[_0xcd27('0x32')][_0xcd27('0x6f')];var _0x4a3557=_[_0xcd27('0x5e')](_0x473217);var _0x4a4c0b=_0x473217===_0xcd27('0x5f')?'Website':_0xcd27('0x66');return db[_0xcd27('0x71')][_0xcd27('0x62')]({'raw':!![],'where':{'id':_0x4770ae[_0xcd27('0x21')]['id'],'role':_0xcd27('0x40')}})[_0xcd27('0x1e')](function(_0x518098){if(_['isNil'](_0x518098)){throw new Error('Agent\x20not\x20found');}_0x5cf728=_0x518098;return db[_0x4a3557+'Message'][_0xcd27('0x62')]({'where':{'id':_0x4770ae[_0xcd27('0x32')][_0xcd27('0x72')]},'include':[{'model':db[_0x4a3557+_0xcd27('0x65')],'as':'Interaction'},{'model':db[_0x4a3557+_0x4a4c0b],'as':_0xcd27('0x66')}]});})['then'](function(_0x24d1bf){if(_[_0xcd27('0x14')](_0x24d1bf)){throw new Error(_0x4a3557+_0xcd27('0x73'));}_0x530265=_0x24d1bf;return _0x24d1bf['update']({'read':0x0,'readAt':null,'UserId':null});})[_0xcd27('0x1e')](function(){var _0x375180={'uniqueid':_0x473217+'.'+_0x530265['id']+'.'+_0x530265['Interaction']['id'],'FromUserId':_0x4770ae['user']['id'],'type':_0xcd27('0x6b'),'ToUserId':_0x5cf728['id']};_0x375180[_0x4a3557+_0xcd27('0x74')]=_0x530265['id'];_0x375180[_0x4a3557+'InteractionId']=_0x530265[_0xcd27('0x65')]['id'];_0x375180[_0xcd27('0x69')+_0x4a3557+_0x4a4c0b+'Id']=_0x530265[_0xcd27('0x66')]['id'];return db[_0x4a3557+'TransferReport'][_0xcd27('0x75')](_0x375180);})['then'](function(){return respondWithRpcPromise(_0xcd27('0x6a'),{'channel':_0x473217,'interaction':_0x530265[_0xcd27('0x65')],'message':_0x530265,'account':_0x530265[_0xcd27('0x66')],'applications':[{'id':0x0,'priority':0x1,'app':_0xcd27('0x40'),'appdata':_0x5cf728[_0xcd27('0x12')]+','+(_0x530265['Account']['agentTransferTimeout']||0x12c),'interval':_0xcd27('0x6d')}]},routingClient);})[_0xcd27('0x1e')](respondWithResult(_0xfc2a0f,null))[_0xcd27('0x1a')](handleError(_0xfc2a0f,null));};
\ No newline at end of file
+var _0x1fa3=['findOrCreate','INTERACTION','interface','AgentCapacity','telephones','Telephones','trunks','Trunks','campaigns','Campaigns','ChatQueues','mailQueues','MailQueues','OpenchannelQueues','showOpenchannelQueues','smsQueues','showSmsQueues','SmsQueues','faxQueues','FaxQueues','showFaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','SmsQueuesWaitingInteractions','faxQueuesWaitingInteractions','FaxQueuesWaitingInteractions','chat','Website','Account','findOne','Message','messageId','Interaction','\x20Message\x20not\x20found','update','queue','MessageId','InteractionId','QueueId','TransferReport','create','Start','queueTransferTimeout','*,*,*,*','agentNotify','channel','capitalize','User','agent','Agent\x20not\x20found','bluebird','util','../../mysqldb','../../config/logger','api','jayson/promise','client','http','request','then','error','message','result','status','json','sendStatus','stack','name','send','isNil','rows','find','voiceChannels','query','catch','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','params','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','VoiceQueues','showVoiceQueues','VoiceQueuesPreview','voiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup','voiceQueuesChannelRedirect','VoiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','OutboundChannels','agents','Agents','body','interaction','user','MemberReport','format','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x1fa3,0x17a));var _0x31fa=function(_0x37299c,_0x2ac503){_0x37299c=_0x37299c-0x0;var _0x45f7ba=_0x1fa3[_0x37299c];return _0x45f7ba;};'use strict';var BPromise=require(_0x31fa('0x0'));var moment=require('moment');var _=require('lodash');var util=require(_0x31fa('0x1'));var db=require(_0x31fa('0x2'))['db'];var logger=require(_0x31fa('0x3'))(_0x31fa('0x4'));var jayson=require(_0x31fa('0x5'));var amiClient=jayson[_0x31fa('0x6')][_0x31fa('0x7')]({'port':0x232a});var mailClient=jayson['client'][_0x31fa('0x7')]({'port':0x232b});var routingClient=jayson['client'][_0x31fa('0x7')]({'port':0x232c});function respondWithRpcPromise(_0x52d726,_0x23e22b,_0x12aed1){return new BPromise(function(_0x21343c,_0x2e13f8){var _0x299891=_0x12aed1?_0x12aed1:amiClient;return _0x299891[_0x31fa('0x8')](_0x52d726,_0x23e22b)[_0x31fa('0x9')](function(_0x214d6b){if(_0x214d6b['error']){if(_0x214d6b[_0x31fa('0xa')]['code']===0x1f4){return _0x2e13f8(_0x214d6b['error'][_0x31fa('0xb')]);}return _0x21343c(_0x214d6b[_0x31fa('0xa')]['message']);}else{_0x21343c(_0x214d6b[_0x31fa('0xc')]);}})['catch'](function(_0xc7893a){_0x2e13f8(_0xc7893a);});});}function respondWithResult(_0x2d1856,_0x4256e2){_0x4256e2=_0x4256e2||0xc8;return function(_0x2401f9){if(_0x2401f9){return _0x2d1856[_0x31fa('0xd')](_0x4256e2)[_0x31fa('0xe')](_0x2401f9);}return _0x2d1856[_0x31fa('0xf')](0x194);};}function handleError(_0x12c241,_0x4159ae){_0x4159ae=_0x4159ae||0x1f4;return function(_0x2968fa){logger[_0x31fa('0xa')](_0x2968fa[_0x31fa('0x10')]);if(_0x2968fa[_0x31fa('0x11')]){delete _0x2968fa['name'];}_0x12c241[_0x31fa('0xd')](_0x4159ae)[_0x31fa('0x12')](_0x2968fa);};}function findById(_0x50f78d){return function(_0x2d430c){if(!_[_0x31fa('0x13')](_0x50f78d)&&!_[_0x31fa('0x13')](_0x2d430c)&&!_[_0x31fa('0x13')](_0x2d430c[_0x31fa('0x14')])){return _[_0x31fa('0x15')](_0x2d430c['rows'],function(_0x431837){return _0x431837['id']==_0x50f78d;});}return null;};}exports[_0x31fa('0x16')]=function(_0x1338d3,_0xa9cb37){return respondWithRpcPromise('VoiceChannels',_0x1338d3[_0x31fa('0x17')])[_0x31fa('0x9')](respondWithResult(_0xa9cb37,null))[_0x31fa('0x18')](handleError(_0xa9cb37,null));};exports[_0x31fa('0x19')]=function(_0x4aefb8,_0xcb75b0){return respondWithRpcPromise(_0x31fa('0x1a'),_[_0x31fa('0x1b')](_0x4aefb8['query'],_0x4aefb8[_0x31fa('0x1c')]))[_0x31fa('0x9')](respondWithResult(_0xcb75b0,null))[_0x31fa('0x18')](handleError(_0xcb75b0,null));};exports[_0x31fa('0x1d')]=function(_0x501f6b,_0x46e921){return respondWithRpcPromise(_0x31fa('0x1e'),_[_0x31fa('0x1b')](_0x501f6b['query'],_0x501f6b[_0x31fa('0x1c')]))[_0x31fa('0x9')](respondWithResult(_0x46e921,null))[_0x31fa('0x18')](handleError(_0x46e921,null));};exports['voiceQueues']=function(_0x4babee,_0x3aee0f){return respondWithRpcPromise(_0x31fa('0x1f'),_0x4babee[_0x31fa('0x17')])[_0x31fa('0x9')](respondWithResult(_0x3aee0f,null))[_0x31fa('0x18')](handleError(_0x3aee0f,null));};exports[_0x31fa('0x20')]=function(_0x34c222,_0x361251){return respondWithRpcPromise(_0x31fa('0x1f'),_0x34c222[_0x31fa('0x17')])['then'](findById(_0x34c222[_0x31fa('0x1c')]['id']))[_0x31fa('0x9')](respondWithResult(_0x361251,null))[_0x31fa('0x18')](handleError(_0x361251,null));};exports['voiceQueuesPreview']=function(_0x26d696,_0xf5d49b){return respondWithRpcPromise(_0x31fa('0x21'),_['merge'](_0x26d696[_0x31fa('0x17')],_0x26d696[_0x31fa('0x1c')]))[_0x31fa('0x9')](respondWithResult(_0xf5d49b,null))[_0x31fa('0x18')](handleError(_0xf5d49b,null));};exports[_0x31fa('0x22')]=function(_0x9b5d5e,_0x381741){return respondWithRpcPromise('VoiceQueuesChannels',_0x9b5d5e[_0x31fa('0x17')])[_0x31fa('0x9')](respondWithResult(_0x381741,null))[_0x31fa('0x18')](handleError(_0x381741,null));};exports[_0x31fa('0x23')]=function(_0xe69f2c,_0x41014e){return respondWithRpcPromise(_0x31fa('0x24'),_[_0x31fa('0x1b')](_0xe69f2c['query'],_0xe69f2c[_0x31fa('0x1c')]))[_0x31fa('0x9')](respondWithResult(_0x41014e,null))[_0x31fa('0x18')](handleError(_0x41014e,null));};exports[_0x31fa('0x25')]=function(_0x308458,_0x18e268){return respondWithRpcPromise('VoiceQueuesChannelHangup',_['merge'](_0x308458['query'],_0x308458[_0x31fa('0x1c')]))[_0x31fa('0x9')](respondWithResult(_0x18e268,null))[_0x31fa('0x18')](handleError(_0x18e268,null));};exports[_0x31fa('0x26')]=function(_0x4ce287,_0x1cfd7f){return respondWithRpcPromise(_0x31fa('0x27'),_['merge'](_0x4ce287[_0x31fa('0x17')],_0x4ce287[_0x31fa('0x1c')]))[_0x31fa('0x9')](respondWithResult(_0x1cfd7f,null))[_0x31fa('0x18')](handleError(_0x1cfd7f,null));};exports[_0x31fa('0x28')]=function(_0x298f3d,_0xb3a699){return respondWithRpcPromise(_0x31fa('0x29'),_0x298f3d['query'])[_0x31fa('0x9')](respondWithResult(_0xb3a699,null))[_0x31fa('0x18')](handleError(_0xb3a699,null));};exports[_0x31fa('0x2a')]=function(_0x2703ae,_0x1a0290){return respondWithRpcPromise(_0x31fa('0x2b'),_0x2703ae['query'])[_0x31fa('0x9')](respondWithResult(_0x1a0290,null))[_0x31fa('0x18')](handleError(_0x1a0290,null));};exports[_0x31fa('0x2c')]=function(_0x55b097,_0x4363ca){var _0x1d38fc;return respondWithRpcPromise(_0x31fa('0x2d'),_0x55b097['query'])[_0x31fa('0x9')](function(_0x4958a6){_0x1d38fc=_0x4958a6;return respondWithRpcPromise(_0x31fa('0x2d'),_0x55b097['query'],routingClient);})[_0x31fa('0x9')](function(_0x309b62){return _[_0x31fa('0x1b')]({},_0x309b62,_0x1d38fc);})[_0x31fa('0x9')](respondWithResult(_0x4363ca,null))['catch'](handleError(_0x4363ca,null));};exports['agentCapacity']=function(_0x5ea0bc,_0x24bd20){if(_0x5ea0bc[_0x31fa('0x2e')]&&_0x5ea0bc['body'][_0x31fa('0x2f')]&&_0x5ea0bc[_0x31fa('0x30')]&&_0x5ea0bc[_0x31fa('0x30')][_0x31fa('0x11')]){for(var _0x5af771 in _0x5ea0bc[_0x31fa('0x2e')][_0x31fa('0x2f')]){if(_0x5ea0bc[_0x31fa('0x2e')][_0x31fa('0x2f')]['hasOwnProperty'](_0x5af771)){db[_0x31fa('0x31')]['findAll']({'where':{'channel':_0x5af771,'membername':_0x5ea0bc[_0x31fa('0x30')]['name'],'type':'INTERACTION','exitAt':null,'uniqueid':_0x5ea0bc[_0x31fa('0x2e')][_0x31fa('0x2f')][_0x5af771]&&_0x5ea0bc[_0x31fa('0x2e')][_0x31fa('0x2f')][_0x5af771]['length']?{'$notIn':_0x5ea0bc[_0x31fa('0x2e')][_0x31fa('0x2f')][_0x5af771]}:{'$ne':null}}})[_0x31fa('0x9')](function(_0x46122f){var _0x322704=moment()[_0x31fa('0x32')](_0x31fa('0x33'));for(var _0x49b7b6=0x0,_0x3d5c15=_0x46122f[_0x31fa('0x34')];_0x49b7b6<_0x3d5c15;_0x49b7b6+=0x1){_0x46122f[_0x49b7b6][_0x31fa('0x35')]({'exitAt':_0x322704});}});for(var _0x54b100=0x0;_0x54b100<_0x5ea0bc['body'][_0x31fa('0x2f')][_0x5af771][_0x31fa('0x34')];_0x54b100+=0x1){db['MemberReport'][_0x31fa('0x36')]({'where':{'channel':_0x5af771,'membername':_0x5ea0bc['user'][_0x31fa('0x11')],'type':_0x31fa('0x37'),'uniqueid':_0x5ea0bc[_0x31fa('0x2e')][_0x31fa('0x2f')][_0x5af771][_0x54b100],'exitAt':null},'defaults':{'channel':_0x5af771,'membername':_0x5ea0bc[_0x31fa('0x30')]['name'],'interface':_[_0x31fa('0x13')](_0x5ea0bc[_0x31fa('0x30')][_0x31fa('0x38')])?util[_0x31fa('0x32')]('SIP/%s',_0x5ea0bc[_0x31fa('0x30')][_0x31fa('0x11')]):_0x5ea0bc[_0x31fa('0x30')]['interface'],'type':_0x31fa('0x37'),'enterAt':moment()[_0x31fa('0x32')](_0x31fa('0x33')),'role':'agent','internal':_0x5ea0bc[_0x31fa('0x30')]['internal'],'uniqueid':_0x5ea0bc[_0x31fa('0x2e')]['interaction'][_0x5af771][_0x54b100]}});}}}}return respondWithRpcPromise(_0x31fa('0x39'),{'id':_0x5ea0bc[_0x31fa('0x1c')]['id'],'capacity':_0x5ea0bc[_0x31fa('0x2e')]['capacity']},routingClient)[_0x31fa('0x9')](respondWithResult(_0x24bd20,null))[_0x31fa('0x18')](handleError(_0x24bd20,null));};exports[_0x31fa('0x3a')]=function(_0x39efb7,_0x57bd37){return respondWithRpcPromise(_0x31fa('0x3b'),_0x39efb7[_0x31fa('0x17')])['then'](respondWithResult(_0x57bd37,null))[_0x31fa('0x18')](handleError(_0x57bd37,null));};exports[_0x31fa('0x3c')]=function(_0x25ba68,_0x27c2af){return respondWithRpcPromise(_0x31fa('0x3d'),_0x25ba68[_0x31fa('0x17')])['then'](respondWithResult(_0x27c2af,null))[_0x31fa('0x18')](handleError(_0x27c2af,null));};exports[_0x31fa('0x3e')]=function(_0x4cd315,_0x33c8bd){return respondWithRpcPromise(_0x31fa('0x3f'),_0x4cd315[_0x31fa('0x17')])[_0x31fa('0x9')](respondWithResult(_0x33c8bd,null))[_0x31fa('0x18')](handleError(_0x33c8bd,null));};exports['chatQueues']=function(_0x4a86e4,_0x28db83){return respondWithRpcPromise(_0x31fa('0x40'),_0x4a86e4[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](respondWithResult(_0x28db83,null))[_0x31fa('0x18')](handleError(_0x28db83,null));};exports['showChatQueues']=function(_0x2c2a75,_0x2410d6){return respondWithRpcPromise(_0x31fa('0x40'),_0x2c2a75[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](findById(_0x2c2a75['params']['id']))['then'](respondWithResult(_0x2410d6,null))[_0x31fa('0x18')](handleError(_0x2410d6,null));};exports[_0x31fa('0x41')]=function(_0x4d062e,_0x3a8397){return respondWithRpcPromise(_0x31fa('0x42'),_0x4d062e['query'],routingClient)[_0x31fa('0x9')](respondWithResult(_0x3a8397,null))[_0x31fa('0x18')](handleError(_0x3a8397,null));};exports['showMailQueues']=function(_0x51c5f3,_0x498db1){return respondWithRpcPromise('MailQueues',_0x51c5f3[_0x31fa('0x17')],routingClient)['then'](findById(_0x51c5f3['params']['id']))['then'](respondWithResult(_0x498db1,null))[_0x31fa('0x18')](handleError(_0x498db1,null));};exports['mailAccounts']=function(_0x5eb37a,_0x1723ec){return respondWithRpcPromise('MailAccounts',_0x5eb37a[_0x31fa('0x17')],mailClient)[_0x31fa('0x9')](respondWithResult(_0x1723ec,null))[_0x31fa('0x18')](handleError(_0x1723ec,null));};exports['openchannelQueues']=function(_0xaef854,_0x34e949){return respondWithRpcPromise(_0x31fa('0x43'),_0xaef854[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](respondWithResult(_0x34e949,null))[_0x31fa('0x18')](handleError(_0x34e949,null));};exports[_0x31fa('0x44')]=function(_0x3ce546,_0x2e24ee){return respondWithRpcPromise('OpenchannelQueues',_0x3ce546[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](findById(_0x3ce546[_0x31fa('0x1c')]['id']))[_0x31fa('0x9')](respondWithResult(_0x2e24ee,null))[_0x31fa('0x18')](handleError(_0x2e24ee,null));};exports[_0x31fa('0x45')]=function(_0x8aeb1e,_0x1320b9){return respondWithRpcPromise('SmsQueues',_0x8aeb1e[_0x31fa('0x17')],routingClient)['then'](respondWithResult(_0x1320b9,null))[_0x31fa('0x18')](handleError(_0x1320b9,null));};exports[_0x31fa('0x46')]=function(_0xfc0af7,_0x45ab59){return respondWithRpcPromise(_0x31fa('0x47'),_0xfc0af7[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](findById(_0xfc0af7[_0x31fa('0x1c')]['id']))[_0x31fa('0x9')](respondWithResult(_0x45ab59,null))[_0x31fa('0x18')](handleError(_0x45ab59,null));};exports[_0x31fa('0x48')]=function(_0x2fc724,_0x5d88cb){return respondWithRpcPromise(_0x31fa('0x49'),_0x2fc724[_0x31fa('0x17')],routingClient)['then'](respondWithResult(_0x5d88cb,null))['catch'](handleError(_0x5d88cb,null));};exports[_0x31fa('0x4a')]=function(_0x44810a,_0x4c853c){return respondWithRpcPromise(_0x31fa('0x49'),_0x44810a[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](findById(_0x44810a[_0x31fa('0x1c')]['id']))[_0x31fa('0x9')](respondWithResult(_0x4c853c,null))['catch'](handleError(_0x4c853c,null));};exports[_0x31fa('0x4b')]=function(_0x42cbb4,_0x2b539c){return respondWithRpcPromise(_0x31fa('0x4c'),_0x42cbb4[_0x31fa('0x17')])[_0x31fa('0x9')](respondWithResult(_0x2b539c,null))[_0x31fa('0x18')](handleError(_0x2b539c,null));};exports[_0x31fa('0x4d')]=function(_0x4230f1,_0x1777c9){return respondWithRpcPromise('ChatQueuesWaitingInteractions',_0x4230f1['query'],routingClient)[_0x31fa('0x9')](respondWithResult(_0x1777c9,null))[_0x31fa('0x18')](handleError(_0x1777c9,null));};exports[_0x31fa('0x4e')]=function(_0x3d817a,_0x5b6194){return respondWithRpcPromise('MailQueuesWaitingInteractions',_0x3d817a[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](respondWithResult(_0x5b6194,null))['catch'](handleError(_0x5b6194,null));};exports[_0x31fa('0x4f')]=function(_0x41a871,_0x2aa882){return respondWithRpcPromise(_0x31fa('0x50'),_0x41a871[_0x31fa('0x17')],routingClient)['then'](respondWithResult(_0x2aa882,null))[_0x31fa('0x18')](handleError(_0x2aa882,null));};exports['smsQueuesWaitingInteractions']=function(_0x33f6ba,_0x1990d6){return respondWithRpcPromise(_0x31fa('0x51'),_0x33f6ba[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](respondWithResult(_0x1990d6,null))[_0x31fa('0x18')](handleError(_0x1990d6,null));};exports[_0x31fa('0x52')]=function(_0x2b79a6,_0x4c8cef){return respondWithRpcPromise(_0x31fa('0x53'),_0x2b79a6[_0x31fa('0x17')],routingClient)[_0x31fa('0x9')](respondWithResult(_0x4c8cef,null))[_0x31fa('0x18')](handleError(_0x4c8cef,null));};exports['queueNotify']=function(_0x409663){return function(_0x54bf59,_0x46aaf1){var _0x119312,_0x1e6631;var _0x1a50d9=_['capitalize'](_0x409663);var _0x32aa4a=_0x409663===_0x31fa('0x54')?_0x31fa('0x55'):_0x31fa('0x56');return db[_0x1a50d9+'Queue'][_0x31fa('0x57')]({'raw':!![],'where':{'id':_0x54bf59[_0x31fa('0x1c')]['id']}})[_0x31fa('0x9')](function(_0x377a1d){if(_['isNil'](_0x377a1d)){throw new Error(_0x1a50d9+'\x20Queue\x20not\x20found');}_0x119312=_0x377a1d;return db[_0x1a50d9+_0x31fa('0x58')][_0x31fa('0x57')]({'where':{'id':_0x54bf59[_0x31fa('0x2e')][_0x31fa('0x59')]},'include':[{'model':db[_0x1a50d9+'Interaction'],'as':_0x31fa('0x5a')},{'model':db[_0x1a50d9+_0x32aa4a],'as':_0x31fa('0x56')}]});})['then'](function(_0x42cf12){if(_[_0x31fa('0x13')](_0x42cf12)){throw new Error(_0x1a50d9+_0x31fa('0x5b'));}_0x1e6631=_0x42cf12;return _0x42cf12[_0x31fa('0x5c')]({'read':0x0,'readAt':null,'UserId':null});})[_0x31fa('0x9')](function(){var _0x4a43aa={'uniqueid':_0x409663+'.'+_0x1e6631['id']+'.'+_0x1e6631['Interaction']['id'],'FromUserId':_0x54bf59[_0x31fa('0x30')]['id'],'type':_0x31fa('0x5d')};_0x4a43aa[_0x1a50d9+_0x31fa('0x5e')]=_0x1e6631['id'];_0x4a43aa[_0x1a50d9+_0x31fa('0x5f')]=_0x1e6631['Interaction']['id'];_0x4a43aa['From'+_0x1a50d9+_0x32aa4a+'Id']=_0x1e6631[_0x31fa('0x56')]['id'];_0x4a43aa['To'+_0x1a50d9+_0x31fa('0x60')]=_0x119312['id'];return db[_0x1a50d9+_0x31fa('0x61')][_0x31fa('0x62')](_0x4a43aa);})['then'](function(){return respondWithRpcPromise(_0x31fa('0x63'),{'channel':_0x409663,'interaction':_0x1e6631[_0x31fa('0x5a')],'message':_0x1e6631,'account':_0x1e6631[_0x31fa('0x56')],'applications':[{'id':0x0,'priority':0x1,'app':'queue','appdata':_0x119312[_0x31fa('0x11')]+','+(_0x1e6631[_0x31fa('0x56')][_0x31fa('0x64')]||0x12c),'interval':_0x31fa('0x65')}]},routingClient);})[_0x31fa('0x9')](respondWithResult(_0x46aaf1,null))[_0x31fa('0x18')](handleError(_0x46aaf1,null));};};exports[_0x31fa('0x66')]=function(_0x218730,_0x1d3940){var _0x550c1d,_0x3db376;if(_[_0x31fa('0x13')](_0x218730[_0x31fa('0x2e')][_0x31fa('0x67')])){throw new Error('Channel\x20field\x20is\x20mandatory');}var _0x226a2c=_0x218730[_0x31fa('0x2e')][_0x31fa('0x67')];var _0x250620=_[_0x31fa('0x68')](_0x226a2c);var _0x107727=_0x226a2c===_0x31fa('0x54')?_0x31fa('0x55'):_0x31fa('0x56');return db[_0x31fa('0x69')]['findOne']({'raw':!![],'where':{'id':_0x218730[_0x31fa('0x1c')]['id'],'role':_0x31fa('0x6a')}})[_0x31fa('0x9')](function(_0x336522){if(_[_0x31fa('0x13')](_0x336522)){throw new Error(_0x31fa('0x6b'));}_0x550c1d=_0x336522;return db[_0x250620+_0x31fa('0x58')][_0x31fa('0x57')]({'where':{'id':_0x218730[_0x31fa('0x2e')][_0x31fa('0x59')]},'include':[{'model':db[_0x250620+_0x31fa('0x5a')],'as':_0x31fa('0x5a')},{'model':db[_0x250620+_0x107727],'as':'Account'}]});})[_0x31fa('0x9')](function(_0x402a48){if(_['isNil'](_0x402a48)){throw new Error(_0x250620+_0x31fa('0x5b'));}_0x3db376=_0x402a48;return _0x402a48[_0x31fa('0x5c')]({'read':0x0,'readAt':null,'UserId':null});})[_0x31fa('0x9')](function(){var _0x5e1aff={'uniqueid':_0x226a2c+'.'+_0x3db376['id']+'.'+_0x3db376['Interaction']['id'],'FromUserId':_0x218730[_0x31fa('0x30')]['id'],'type':'queue','ToUserId':_0x550c1d['id']};_0x5e1aff[_0x250620+_0x31fa('0x5e')]=_0x3db376['id'];_0x5e1aff[_0x250620+_0x31fa('0x5f')]=_0x3db376[_0x31fa('0x5a')]['id'];_0x5e1aff['From'+_0x250620+_0x107727+'Id']=_0x3db376[_0x31fa('0x56')]['id'];return db[_0x250620+_0x31fa('0x61')][_0x31fa('0x62')](_0x5e1aff);})['then'](function(){return respondWithRpcPromise(_0x31fa('0x63'),{'channel':_0x226a2c,'interaction':_0x3db376[_0x31fa('0x5a')],'message':_0x3db376,'account':_0x3db376[_0x31fa('0x56')],'applications':[{'id':0x0,'priority':0x1,'app':_0x31fa('0x6a'),'appdata':_0x550c1d['name']+','+(_0x3db376[_0x31fa('0x56')]['agentTransferTimeout']||0x12c),'interval':_0x31fa('0x65')}]},routingClient);})['then'](respondWithResult(_0x1d3940,null))[_0x31fa('0x18')](handleError(_0x1d3940,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b9b=['run','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','../../config/environment','./schedule.controller','get','isAuthenticated','index','/:id','show'];(function(_0x1226e4,_0x3c677a){var _0x2be657=function(_0x17a216){while(--_0x17a216){_0x1226e4['push'](_0x1226e4['shift']());}};_0x2be657(++_0x3c677a);}(_0x0b9b,0x198));var _0xb0b9=function(_0x7e4797,_0xec91c1){_0x7e4797=_0x7e4797-0x0;var _0x2a3505=_0x0b9b[_0x7e4797];return _0x2a3505;};'use strict';var multer=require(_0xb0b9('0x0'));var util=require(_0xb0b9('0x1'));var path=require(_0xb0b9('0x2'));var timeout=require(_0xb0b9('0x3'));var express=require(_0xb0b9('0x4'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xb0b9('0x5'));var controller=require(_0xb0b9('0x6'));router[_0xb0b9('0x7')]('/',auth[_0xb0b9('0x8')](),controller[_0xb0b9('0x9')]);router[_0xb0b9('0x7')](_0xb0b9('0xa'),auth['isAuthenticated'](),controller[_0xb0b9('0xb')]);router[_0xb0b9('0x7')]('/:id/run',auth[_0xb0b9('0x8')](),controller[_0xb0b9('0xc')]);router[_0xb0b9('0xd')]('/',auth['isAuthenticated'](),controller[_0xb0b9('0xe')]);router[_0xb0b9('0xf')]('/:id',auth[_0xb0b9('0x8')](),controller[_0xb0b9('0x10')]);router[_0xb0b9('0x11')](_0xb0b9('0xa'),auth[_0xb0b9('0x8')](),controller[_0xb0b9('0x12')]);module[_0xb0b9('0x13')]=router;
\ No newline at end of file
+var _0x8614=['util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./schedule.controller','get','isAuthenticated','index','/:id','show','/:id/run','run','create','put','update','delete','destroy','multer'];(function(_0x1531af,_0xd97d40){var _0x504cee=function(_0x2facf6){while(--_0x2facf6){_0x1531af['push'](_0x1531af['shift']());}};_0x504cee(++_0xd97d40);}(_0x8614,0x1a3));var _0x4861=function(_0x34eae8,_0x30fd07){_0x34eae8=_0x34eae8-0x0;var _0x48a91a=_0x8614[_0x34eae8];return _0x48a91a;};'use strict';var multer=require(_0x4861('0x0'));var util=require(_0x4861('0x1'));var path=require(_0x4861('0x2'));var timeout=require(_0x4861('0x3'));var express=require(_0x4861('0x4'));var router=express[_0x4861('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0x4861('0x6'));var config=require(_0x4861('0x7'));var controller=require(_0x4861('0x8'));router[_0x4861('0x9')]('/',auth[_0x4861('0xa')](),controller[_0x4861('0xb')]);router[_0x4861('0x9')](_0x4861('0xc'),auth[_0x4861('0xa')](),controller[_0x4861('0xd')]);router[_0x4861('0x9')](_0x4861('0xe'),auth['isAuthenticated'](),controller[_0x4861('0xf')]);router['post']('/',auth[_0x4861('0xa')](),controller[_0x4861('0x10')]);router[_0x4861('0x11')](_0x4861('0xc'),auth[_0x4861('0xa')](),controller[_0x4861('0x12')]);router[_0x4861('0x13')]('/:id',auth[_0x4861('0xa')](),controller[_0x4861('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2dfd=['quarters','months','weeks','days','hours','minutes','csv','xlsx','custom','BOOLEAN','TEXT','sequelize','exports','STRING','0\x200\x20*\x20*\x20*','DATE','ENUM','years'];(function(_0x25dcec,_0x138641){var _0x1147da=function(_0x56f8c4){while(--_0x56f8c4){_0x25dcec['push'](_0x25dcec['shift']());}};_0x1147da(++_0x138641);}(_0x2dfd,0x185));var _0xd2df=function(_0x3c2553,_0x2ed1fc){_0x3c2553=_0x3c2553-0x0;var _0x3d063b=_0x2dfd[_0x3c2553];return _0x3d063b;};'use strict';var Sequelize=require(_0xd2df('0x0'));module[_0xd2df('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0xd2df('0x2')],'allowNull':![],'defaultValue':_0xd2df('0x3')},'startAt':{'type':Sequelize[_0xd2df('0x4')],'allowNull':![]},'endAt':{'type':Sequelize[_0xd2df('0x4')],'allowNull':![]},'subtractNumber':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0xd2df('0x5')](_0xd2df('0x6'),_0xd2df('0x7'),_0xd2df('0x8'),_0xd2df('0x9'),_0xd2df('0xa'),_0xd2df('0xb'),_0xd2df('0xc')),'allowNull':![],'defaultValue':_0xd2df('0xa')},'output':{'type':Sequelize[_0xd2df('0x5')](_0xd2df('0xd'),'pdf',_0xd2df('0xe')),'allowNull':![],'defaultValue':_0xd2df('0xd')},'type':{'type':Sequelize[_0xd2df('0x5')](_0xd2df('0xf'),'default'),'allowNull':![],'defaultValue':_0xd2df('0xf')},'sendMail':{'type':Sequelize[_0xd2df('0x10')],'defaultValue':![]},'email':{'type':Sequelize[_0xd2df('0x2')]},'cc':{'type':Sequelize[_0xd2df('0x11')]},'bcc':{'type':Sequelize[_0xd2df('0x11')]},'sendIfEmpty':{'type':Sequelize[_0xd2df('0x10')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x8049=['days','ENUM','csv','xlsx','default','custom','TEXT','sequelize','STRING','BOOLEAN','0\x200\x20*\x20*\x20*','INTEGER','quarters','months','minutes'];(function(_0x243b2f,_0x30aa15){var _0xcb3c2d=function(_0x213bb2){while(--_0x213bb2){_0x243b2f['push'](_0x243b2f['shift']());}};_0xcb3c2d(++_0x30aa15);}(_0x8049,0xbb));var _0x9804=function(_0x4122e2,_0x105191){_0x4122e2=_0x4122e2-0x0;var _0x572cc0=_0x8049[_0x4122e2];return _0x572cc0;};'use strict';var Sequelize=require(_0x9804('0x0'));module['exports']={'name':{'type':Sequelize[_0x9804('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x9804('0x1')]},'active':{'type':Sequelize[_0x9804('0x2')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x9804('0x1')],'allowNull':![],'defaultValue':_0x9804('0x3')},'startAt':{'type':Sequelize['DATE'],'allowNull':![]},'endAt':{'type':Sequelize['DATE'],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0x9804('0x4')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize['ENUM']('years',_0x9804('0x5'),_0x9804('0x6'),'weeks','days','hours',_0x9804('0x7')),'allowNull':![],'defaultValue':_0x9804('0x8')},'output':{'type':Sequelize[_0x9804('0x9')](_0x9804('0xa'),'pdf',_0x9804('0xb')),'allowNull':![],'defaultValue':_0x9804('0xa')},'type':{'type':Sequelize['ENUM']('custom',_0x9804('0xc')),'allowNull':![],'defaultValue':_0x9804('0xd')},'sendMail':{'type':Sequelize[_0x9804('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0x9804('0x1')]},'cc':{'type':Sequelize['TEXT']},'bcc':{'type':Sequelize[_0x9804('0xe')]},'sendIfEmpty':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd502=['run','params','html-pdf','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','end','status','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','then','sendStatus','error','stack','name','index','Schedule','keys','query','dateStart','dateEnd','filters','intersection','attributes','model','fields','hasOwnProperty','nolimit','order','sort','add','day','merge','where','filter','map','options','includeAll','include','findAll','rows','catch','show','rawAttributes','length','find','create','body'];(function(_0x10d341,_0x57ff35){var _0xddc36d=function(_0x1c24f0){while(--_0x1c24f0){_0x10d341['push'](_0x10d341['shift']());}};_0xddc36d(++_0x57ff35);}(_0xd502,0x1b2));var _0x2d50=function(_0x17e174,_0x4991f8){_0x17e174=_0x17e174-0x0;var _0x3f26f1=_0xd502[_0x17e174];return _0x3f26f1;};'use strict';var pdf=require(_0x2d50('0x0'));var emlformat=require(_0x2d50('0x1'));var rimraf=require(_0x2d50('0x2'));var zipdir=require(_0x2d50('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2d50('0x4'));var Mustache=require(_0x2d50('0x5'));var util=require(_0x2d50('0x6'));var path=require(_0x2d50('0x7'));var sox=require(_0x2d50('0x8'));var csv=require(_0x2d50('0x9'));var ejs=require(_0x2d50('0xa'));var fs=require('fs');var _=require(_0x2d50('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x2d50('0xc'));var deskjs=require(_0x2d50('0xd'));var toCsv=require(_0x2d50('0x9'));var querystring=require(_0x2d50('0xe'));var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require(_0x2d50('0xf'))(_0x2d50('0x10'));var utils=require(_0x2d50('0x11'));var config=require(_0x2d50('0x12'));var db=require(_0x2d50('0x13'))['db'];function respondWithStatusCode(_0x42b57a,_0x2a315f){_0x2a315f=_0x2a315f||0xcc;return function(_0x452d73){if(_0x452d73){return _0x42b57a['sendStatus'](_0x2a315f);}return _0x42b57a['status'](_0x2a315f)[_0x2d50('0x14')]();};}function respondWithResult(_0x438d1f,_0x58af26){_0x58af26=_0x58af26||0xc8;return function(_0x1563cc){if(_0x1563cc){return _0x438d1f[_0x2d50('0x15')](_0x58af26)[_0x2d50('0x16')](_0x1563cc);}};}function respondWithFilteredResult(_0x539003,_0x2c5309){return function(_0x1ebd66){if(_0x1ebd66){var _0x15f8bf=_0x1ebd66[_0x2d50('0x17')],_0x166a5b=_0x2c5309[_0x2d50('0x18')],_0x5ec488=_0x2c5309[_0x2d50('0x18')]+_0x2c5309[_0x2d50('0x19')],_0x264746;if(_0x5ec488>=_0x15f8bf){_0x5ec488=_0x15f8bf;_0x264746=0xc8;}else{_0x264746=0xce;}_0x539003[_0x2d50('0x15')](_0x264746);return _0x539003[_0x2d50('0x1a')](_0x2d50('0x1b'),_0x166a5b+'-'+_0x5ec488+'/'+_0x15f8bf)[_0x2d50('0x16')](_0x1ebd66);}return null;};}function patchUpdates(_0x2da091){return function(_0xa12a4f){try{jsonpatch[_0x2d50('0x1c')](_0xa12a4f,_0x2da091,!![]);}catch(_0xa37a75){return BPromise[_0x2d50('0x1d')](_0xa37a75);}return _0xa12a4f['save']();};}function saveUpdates(_0x4406b2,_0x37e6a6){return function(_0xf057f0){if(_0xf057f0){return _0xf057f0[_0x2d50('0x1e')](_0x4406b2)['then'](function(_0x14134f){return _0x14134f;});}return null;};}function removeEntity(_0x3d41af,_0x736c06){return function(_0xe9ac97){if(_0xe9ac97){return _0xe9ac97[_0x2d50('0x1f')]()[_0x2d50('0x20')](function(){_0x3d41af[_0x2d50('0x15')](0xcc)[_0x2d50('0x14')]();});}};}function handleEntityNotFound(_0x215260,_0x49432c){return function(_0x42bae4){if(!_0x42bae4){_0x215260[_0x2d50('0x21')](0x194);}return _0x42bae4;};}function handleError(_0x437ee5,_0x2995f6){_0x2995f6=_0x2995f6||0x1f4;return function(_0x3f20f2){logger[_0x2d50('0x22')](_0x3f20f2[_0x2d50('0x23')]);if(_0x3f20f2['name']){delete _0x3f20f2[_0x2d50('0x24')];}_0x437ee5['status'](_0x2995f6)['send'](_0x3f20f2);};}exports[_0x2d50('0x25')]=function(_0x33a0c8,_0x1c2962){var _0x23bf6c={},_0x56c7cd={},_0x3956ec={'count':0x0,'rows':[]};var _0x7b8849=db[_0x2d50('0x26')]['rawAttributes'];_0x56c7cd['model']=_[_0x2d50('0x27')](_0x7b8849);var _0x3a9a0d={'dateStart':_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x29')],'dateEnd':_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x2a')]};delete _0x33a0c8['query'][_0x2d50('0x29')];delete _0x33a0c8[_0x2d50('0x28')][_0x2d50('0x2a')];_0x56c7cd['query']=_['keys'](_0x33a0c8[_0x2d50('0x28')]);_0x56c7cd[_0x2d50('0x2b')]=_[_0x2d50('0x2c')](_0x56c7cd['model'],_0x56c7cd['query']);_0x23bf6c[_0x2d50('0x2d')]=_[_0x2d50('0x2c')](_0x56c7cd[_0x2d50('0x2e')],qs['fields'](_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x2f')]));_0x23bf6c['attributes']=_0x23bf6c[_0x2d50('0x2d')]['length']?_0x23bf6c[_0x2d50('0x2d')]:_0x56c7cd['model'];if(!_0x33a0c8['query'][_0x2d50('0x30')](_0x2d50('0x31'))){_0x23bf6c['limit']=qs[_0x2d50('0x19')](_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x19')]);_0x23bf6c[_0x2d50('0x18')]=qs['offset'](_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x18')]);}_0x23bf6c[_0x2d50('0x32')]=qs[_0x2d50('0x33')](_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x33')]);_0x23bf6c['where']=qs['filters'](_['pick'](_0x33a0c8['query'],_0x56c7cd[_0x2d50('0x2b')]));if(_0x3a9a0d[_0x2d50('0x29')]){if(_0x3a9a0d[_0x2d50('0x2a')]){_0x3a9a0d[_0x2d50('0x2a')]=moment(_0x3a9a0d['dateEnd'])[_0x2d50('0x34')](0x1,_0x2d50('0x35'));}else{_0x3a9a0d['dateEnd']=moment(_0x3a9a0d['dateStart'])[_0x2d50('0x34')](0x1,_0x2d50('0x35'));}_[_0x2d50('0x36')](_0x23bf6c[_0x2d50('0x37')],{'createdAt':{'$gte':_0x3a9a0d[_0x2d50('0x29')],'$lte':_0x3a9a0d[_0x2d50('0x2a')]}});}if(_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x38')]){_0x23bf6c[_0x2d50('0x37')]=_[_0x2d50('0x36')](_0x23bf6c['where'],{'$or':_[_0x2d50('0x39')](_0x23bf6c[_0x2d50('0x2d')],function(_0x3fd77){var _0x5f5871={};_0x5f5871[_0x3fd77]={'$like':'%'+_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x38')]+'%'};return _0x5f5871;})});}_0x23bf6c=_['merge']({},_0x23bf6c,_0x33a0c8[_0x2d50('0x3a')]);var _0x5605be={'where':_0x23bf6c[_0x2d50('0x37')]};return db['Schedule'][_0x2d50('0x17')](_0x5605be)[_0x2d50('0x20')](function(_0x2a53a2){_0x3956ec[_0x2d50('0x17')]=_0x2a53a2;if(_0x33a0c8[_0x2d50('0x28')][_0x2d50('0x3b')]){_0x23bf6c[_0x2d50('0x3c')]=[{'all':!![]}];}return db['Schedule'][_0x2d50('0x3d')](_0x23bf6c);})[_0x2d50('0x20')](function(_0x4bff43){_0x3956ec[_0x2d50('0x3e')]=_0x4bff43;return _0x3956ec;})[_0x2d50('0x20')](respondWithFilteredResult(_0x1c2962,_0x23bf6c))[_0x2d50('0x3f')](handleError(_0x1c2962,null));};exports[_0x2d50('0x40')]=function(_0x5328ac,_0x146ff9){var _0x2d162c={'raw':![],'where':{'id':_0x5328ac['params']['id']}},_0x52a379={};_0x52a379[_0x2d50('0x2e')]=_[_0x2d50('0x27')](db[_0x2d50('0x26')][_0x2d50('0x41')]);_0x52a379[_0x2d50('0x28')]=_[_0x2d50('0x27')](_0x5328ac[_0x2d50('0x28')]);_0x52a379[_0x2d50('0x2b')]=_[_0x2d50('0x2c')](_0x52a379[_0x2d50('0x2e')],_0x52a379[_0x2d50('0x28')]);_0x2d162c['attributes']=_[_0x2d50('0x2c')](_0x52a379[_0x2d50('0x2e')],qs[_0x2d50('0x2f')](_0x5328ac['query'][_0x2d50('0x2f')]));_0x2d162c[_0x2d50('0x2d')]=_0x2d162c[_0x2d50('0x2d')][_0x2d50('0x42')]?_0x2d162c[_0x2d50('0x2d')]:_0x52a379[_0x2d50('0x2e')];if(_0x5328ac[_0x2d50('0x28')][_0x2d50('0x3b')]){_0x2d162c['include']=[{'all':!![]}];}_0x2d162c=_[_0x2d50('0x36')]({},_0x2d162c,_0x5328ac[_0x2d50('0x3a')]);return db[_0x2d50('0x26')][_0x2d50('0x43')](_0x2d162c)['then'](handleEntityNotFound(_0x146ff9,null))[_0x2d50('0x20')](respondWithResult(_0x146ff9,null))['catch'](handleError(_0x146ff9,null));};exports['create']=function(_0x51503d,_0x25a485){return db[_0x2d50('0x26')][_0x2d50('0x44')](_0x51503d[_0x2d50('0x45')],{})[_0x2d50('0x20')](respondWithResult(_0x25a485,0xc9))[_0x2d50('0x3f')](handleError(_0x25a485,null));};exports[_0x2d50('0x1e')]=function(_0x17eb56,_0x3027a9){if(_0x17eb56[_0x2d50('0x45')]['id']){delete _0x17eb56[_0x2d50('0x45')]['id'];}return db[_0x2d50('0x26')][_0x2d50('0x43')]({'where':{'id':_0x17eb56['params']['id']}})[_0x2d50('0x20')](handleEntityNotFound(_0x3027a9,null))[_0x2d50('0x20')](saveUpdates(_0x17eb56[_0x2d50('0x45')],null))[_0x2d50('0x20')](respondWithResult(_0x3027a9,null))[_0x2d50('0x3f')](handleError(_0x3027a9,null));};exports[_0x2d50('0x1f')]=function(_0x4949c1,_0x228c1e){return db[_0x2d50('0x26')][_0x2d50('0x43')]({'where':{'id':_0x4949c1['params']['id']}})['then'](handleEntityNotFound(_0x228c1e,null))[_0x2d50('0x20')](removeEntity(_0x228c1e,null))[_0x2d50('0x3f')](handleError(_0x228c1e,null));};exports[_0x2d50('0x46')]=function(_0xa16884,_0x4f4a5e,_0x5ef8ae){var _0x399ed3=require('../../config/schedule');return db[_0x2d50('0x26')]['find']({'where':{'id':_0xa16884[_0x2d50('0x47')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x4f4a5e,null))[_0x2d50('0x20')](function(){_0x399ed3['run'](_0xa16884[_0x2d50('0x47')]['id']);})[_0x2d50('0x20')](respondWithStatusCode(_0x4f4a5e,null))[_0x2d50('0x3f')](handleError(_0x4f4a5e,null));};
\ No newline at end of file
+var _0x2660=['stack','name','send','index','Schedule','rawAttributes','model','keys','dateStart','query','dateEnd','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','where','add','day','merge','filter','options','includeAll','include','findAll','rows','params','fields','find','catch','create','body','../../config/schedule','run','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','apply','save','update','then','destroy','error'];(function(_0x217f12,_0x1c1655){var _0x59de2d=function(_0x465647){while(--_0x465647){_0x217f12['push'](_0x217f12['shift']());}};_0x59de2d(++_0x1c1655);}(_0x2660,0x13c));var _0x0266=function(_0x1a21ff,_0x4a7550){_0x1a21ff=_0x1a21ff-0x0;var _0x25afc1=_0x2660[_0x1a21ff];return _0x25afc1;};'use strict';var pdf=require(_0x0266('0x0'));var emlformat=require(_0x0266('0x1'));var rimraf=require(_0x0266('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0266('0x3'));var rp=require(_0x0266('0x4'));var moment=require(_0x0266('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0266('0x6'));var util=require(_0x0266('0x7'));var path=require('path');var sox=require(_0x0266('0x8'));var csv=require(_0x0266('0x9'));var ejs=require(_0x0266('0xa'));var fs=require('fs');var _=require(_0x0266('0xb'));var squel=require('squel');var crypto=require(_0x0266('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x0266('0x9'));var querystring=require(_0x0266('0xd'));var Papa=require(_0x0266('0xe'));var Redis=require(_0x0266('0xf'));var qs=require(_0x0266('0x10'));var logger=require('../../config/logger')(_0x0266('0x11'));var utils=require(_0x0266('0x12'));var config=require(_0x0266('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3b76fd,_0xa58dde){_0xa58dde=_0xa58dde||0xcc;return function(_0x509a95){if(_0x509a95){return _0x3b76fd[_0x0266('0x14')](_0xa58dde);}return _0x3b76fd[_0x0266('0x15')](_0xa58dde)[_0x0266('0x16')]();};}function respondWithResult(_0x262cb8,_0x29f4f4){_0x29f4f4=_0x29f4f4||0xc8;return function(_0x14e1bc){if(_0x14e1bc){return _0x262cb8[_0x0266('0x15')](_0x29f4f4)[_0x0266('0x17')](_0x14e1bc);}};}function respondWithFilteredResult(_0x957709,_0x1ba845){return function(_0x10e25d){if(_0x10e25d){var _0x3de47f=_0x10e25d[_0x0266('0x18')],_0x29541c=_0x1ba845[_0x0266('0x19')],_0xa6b966=_0x1ba845[_0x0266('0x19')]+_0x1ba845[_0x0266('0x1a')],_0x3b9500;if(_0xa6b966>=_0x3de47f){_0xa6b966=_0x3de47f;_0x3b9500=0xc8;}else{_0x3b9500=0xce;}_0x957709[_0x0266('0x15')](_0x3b9500);return _0x957709[_0x0266('0x1b')]('Content-Range',_0x29541c+'-'+_0xa6b966+'/'+_0x3de47f)['json'](_0x10e25d);}return null;};}function patchUpdates(_0x3cdee0){return function(_0x38b029){try{jsonpatch[_0x0266('0x1c')](_0x38b029,_0x3cdee0,!![]);}catch(_0x37b2ca){return BPromise['reject'](_0x37b2ca);}return _0x38b029[_0x0266('0x1d')]();};}function saveUpdates(_0xadea13,_0x1aa321){return function(_0xc871e8){if(_0xc871e8){return _0xc871e8[_0x0266('0x1e')](_0xadea13)[_0x0266('0x1f')](function(_0x12dd64){return _0x12dd64;});}return null;};}function removeEntity(_0x140d32,_0x26b046){return function(_0x45b38d){if(_0x45b38d){return _0x45b38d[_0x0266('0x20')]()[_0x0266('0x1f')](function(){_0x140d32[_0x0266('0x15')](0xcc)[_0x0266('0x16')]();});}};}function handleEntityNotFound(_0x120967,_0x343b64){return function(_0x193868){if(!_0x193868){_0x120967[_0x0266('0x14')](0x194);}return _0x193868;};}function handleError(_0x4fbe63,_0x4a9016){_0x4a9016=_0x4a9016||0x1f4;return function(_0x4e155d){logger[_0x0266('0x21')](_0x4e155d[_0x0266('0x22')]);if(_0x4e155d[_0x0266('0x23')]){delete _0x4e155d[_0x0266('0x23')];}_0x4fbe63[_0x0266('0x15')](_0x4a9016)[_0x0266('0x24')](_0x4e155d);};}exports[_0x0266('0x25')]=function(_0x4591e5,_0x507408){var _0x14f6bd={},_0x303c79={},_0x2a8854={'count':0x0,'rows':[]};var _0x4ff948=db[_0x0266('0x26')][_0x0266('0x27')];_0x303c79[_0x0266('0x28')]=_[_0x0266('0x29')](_0x4ff948);var _0x275154={'dateStart':_0x4591e5['query'][_0x0266('0x2a')],'dateEnd':_0x4591e5[_0x0266('0x2b')][_0x0266('0x2c')]};delete _0x4591e5['query']['dateStart'];delete _0x4591e5[_0x0266('0x2b')][_0x0266('0x2c')];_0x303c79[_0x0266('0x2b')]=_['keys'](_0x4591e5[_0x0266('0x2b')]);_0x303c79[_0x0266('0x2d')]=_[_0x0266('0x2e')](_0x303c79[_0x0266('0x28')],_0x303c79[_0x0266('0x2b')]);_0x14f6bd['attributes']=_['intersection'](_0x303c79[_0x0266('0x28')],qs['fields'](_0x4591e5[_0x0266('0x2b')]['fields']));_0x14f6bd[_0x0266('0x2f')]=_0x14f6bd[_0x0266('0x2f')][_0x0266('0x30')]?_0x14f6bd[_0x0266('0x2f')]:_0x303c79[_0x0266('0x28')];if(!_0x4591e5[_0x0266('0x2b')][_0x0266('0x31')](_0x0266('0x32'))){_0x14f6bd[_0x0266('0x1a')]=qs[_0x0266('0x1a')](_0x4591e5[_0x0266('0x2b')]['limit']);_0x14f6bd[_0x0266('0x19')]=qs[_0x0266('0x19')](_0x4591e5['query'][_0x0266('0x19')]);}_0x14f6bd[_0x0266('0x33')]=qs['sort'](_0x4591e5[_0x0266('0x2b')]['sort']);_0x14f6bd[_0x0266('0x34')]=qs['filters'](_['pick'](_0x4591e5[_0x0266('0x2b')],_0x303c79['filters']));if(_0x275154[_0x0266('0x2a')]){if(_0x275154[_0x0266('0x2c')]){_0x275154[_0x0266('0x2c')]=moment(_0x275154[_0x0266('0x2c')])[_0x0266('0x35')](0x1,'day');}else{_0x275154[_0x0266('0x2c')]=moment(_0x275154['dateStart'])[_0x0266('0x35')](0x1,_0x0266('0x36'));}_[_0x0266('0x37')](_0x14f6bd[_0x0266('0x34')],{'createdAt':{'$gte':_0x275154[_0x0266('0x2a')],'$lte':_0x275154[_0x0266('0x2c')]}});}if(_0x4591e5['query'][_0x0266('0x38')]){_0x14f6bd[_0x0266('0x34')]=_[_0x0266('0x37')](_0x14f6bd['where'],{'$or':_['map'](_0x14f6bd[_0x0266('0x2f')],function(_0x36f005){var _0x5ba520={};_0x5ba520[_0x36f005]={'$like':'%'+_0x4591e5['query'][_0x0266('0x38')]+'%'};return _0x5ba520;})});}_0x14f6bd=_[_0x0266('0x37')]({},_0x14f6bd,_0x4591e5[_0x0266('0x39')]);var _0x8b5487={'where':_0x14f6bd[_0x0266('0x34')]};return db['Schedule'][_0x0266('0x18')](_0x8b5487)[_0x0266('0x1f')](function(_0x1499ee){_0x2a8854[_0x0266('0x18')]=_0x1499ee;if(_0x4591e5[_0x0266('0x2b')][_0x0266('0x3a')]){_0x14f6bd[_0x0266('0x3b')]=[{'all':!![]}];}return db[_0x0266('0x26')][_0x0266('0x3c')](_0x14f6bd);})[_0x0266('0x1f')](function(_0x147120){_0x2a8854[_0x0266('0x3d')]=_0x147120;return _0x2a8854;})['then'](respondWithFilteredResult(_0x507408,_0x14f6bd))['catch'](handleError(_0x507408,null));};exports['show']=function(_0x56b4e5,_0x4aef4b){var _0x13731e={'raw':![],'where':{'id':_0x56b4e5[_0x0266('0x3e')]['id']}},_0x57c1e3={};_0x57c1e3[_0x0266('0x28')]=_[_0x0266('0x29')](db[_0x0266('0x26')][_0x0266('0x27')]);_0x57c1e3[_0x0266('0x2b')]=_['keys'](_0x56b4e5[_0x0266('0x2b')]);_0x57c1e3[_0x0266('0x2d')]=_[_0x0266('0x2e')](_0x57c1e3[_0x0266('0x28')],_0x57c1e3[_0x0266('0x2b')]);_0x13731e[_0x0266('0x2f')]=_['intersection'](_0x57c1e3['model'],qs[_0x0266('0x3f')](_0x56b4e5[_0x0266('0x2b')]['fields']));_0x13731e[_0x0266('0x2f')]=_0x13731e[_0x0266('0x2f')]['length']?_0x13731e[_0x0266('0x2f')]:_0x57c1e3[_0x0266('0x28')];if(_0x56b4e5['query'][_0x0266('0x3a')]){_0x13731e[_0x0266('0x3b')]=[{'all':!![]}];}_0x13731e=_[_0x0266('0x37')]({},_0x13731e,_0x56b4e5[_0x0266('0x39')]);return db[_0x0266('0x26')][_0x0266('0x40')](_0x13731e)[_0x0266('0x1f')](handleEntityNotFound(_0x4aef4b,null))['then'](respondWithResult(_0x4aef4b,null))[_0x0266('0x41')](handleError(_0x4aef4b,null));};exports[_0x0266('0x42')]=function(_0x1f6d60,_0x277d3b){return db['Schedule'][_0x0266('0x42')](_0x1f6d60[_0x0266('0x43')],{})[_0x0266('0x1f')](respondWithResult(_0x277d3b,0xc9))['catch'](handleError(_0x277d3b,null));};exports[_0x0266('0x1e')]=function(_0xe5464b,_0x20e246){if(_0xe5464b[_0x0266('0x43')]['id']){delete _0xe5464b[_0x0266('0x43')]['id'];}return db['Schedule'][_0x0266('0x40')]({'where':{'id':_0xe5464b['params']['id']}})[_0x0266('0x1f')](handleEntityNotFound(_0x20e246,null))[_0x0266('0x1f')](saveUpdates(_0xe5464b[_0x0266('0x43')],null))[_0x0266('0x1f')](respondWithResult(_0x20e246,null))[_0x0266('0x41')](handleError(_0x20e246,null));};exports[_0x0266('0x20')]=function(_0x22cfa1,_0x52338f){return db[_0x0266('0x26')][_0x0266('0x40')]({'where':{'id':_0x22cfa1[_0x0266('0x3e')]['id']}})[_0x0266('0x1f')](handleEntityNotFound(_0x52338f,null))[_0x0266('0x1f')](removeEntity(_0x52338f,null))[_0x0266('0x41')](handleError(_0x52338f,null));};exports['run']=function(_0x2e8c1d,_0x4f756c,_0x4f732a){var _0x5d9773=require(_0x0266('0x44'));return db[_0x0266('0x26')][_0x0266('0x40')]({'where':{'id':_0x2e8c1d[_0x0266('0x3e')]['id']},'raw':!![]})[_0x0266('0x1f')](handleEntityNotFound(_0x4f756c,null))['then'](function(){_0x5d9773[_0x0266('0x45')](_0x2e8c1d[_0x0266('0x3e')]['id']);})[_0x0266('0x1f')](respondWithStatusCode(_0x4f756c,null))[_0x0266('0x41')](handleError(_0x4f756c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x417e=['moment','request-promise','./schedule.attributes','exports','Schedule','lodash','util','../../config/logger','api'];(function(_0xd1c89f,_0x4d9a23){var _0x42334d=function(_0x273a39){while(--_0x273a39){_0xd1c89f['push'](_0xd1c89f['shift']());}};_0x42334d(++_0x4d9a23);}(_0x417e,0x152));var _0xe417=function(_0x14e9f0,_0x287f90){_0x14e9f0=_0x14e9f0-0x0;var _0xa63f7e=_0x417e[_0x14e9f0];return _0xa63f7e;};'use strict';var _=require(_0xe417('0x0'));var util=require(_0xe417('0x1'));var logger=require(_0xe417('0x2'))(_0xe417('0x3'));var moment=require(_0xe417('0x4'));var BPromise=require('bluebird');var rp=require(_0xe417('0x5'));var attributes=require(_0xe417('0x6'));module[_0xe417('0x7')]=function(_0x440812,_0x306c30){return _0x440812['define'](_0xe417('0x8'),attributes,{'tableName':'tools_schedules','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0f68=['bluebird','request-promise','define','Schedule','tools_schedules','lodash','util','../../config/logger','moment'];(function(_0x324d02,_0x6d9c0b){var _0x3d4f59=function(_0x279f6b){while(--_0x279f6b){_0x324d02['push'](_0x324d02['shift']());}};_0x3d4f59(++_0x6d9c0b);}(_0x0f68,0xa7));var _0x80f6=function(_0x409723,_0x5a5889){_0x409723=_0x409723-0x0;var _0x101bd2=_0x0f68[_0x409723];return _0x101bd2;};'use strict';var _=require(_0x80f6('0x0'));var util=require(_0x80f6('0x1'));var logger=require(_0x80f6('0x2'))('api');var moment=require(_0x80f6('0x3'));var BPromise=require(_0x80f6('0x4'));var rp=require(_0x80f6('0x5'));var attributes=require('./schedule.attributes');module['exports']=function(_0x288045,_0xeca381){return _0x288045[_0x80f6('0x6')](_0x80f6('0x7'),attributes,{'tableName':_0x80f6('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9dba=['message','result','catch','lodash','util','moment','../../config/logger','rpc','../../config/environment','client','request','then','info','Schedule,\x20%s,\x20%s','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x28053c,_0x30d230){var _0x34dfef=function(_0x2c0401){while(--_0x2c0401){_0x28053c['push'](_0x28053c['shift']());}};_0x34dfef(++_0x30d230);}(_0x9dba,0x16c));var _0xa9db=function(_0x5929f3,_0x83c7d4){_0x5929f3=_0x5929f3-0x0;var _0x462aba=_0x9dba[_0x5929f3];return _0x462aba;};'use strict';var _=require(_0xa9db('0x0'));var util=require(_0xa9db('0x1'));var moment=require(_0xa9db('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa9db('0x3'))(_0xa9db('0x4'));var config=require(_0xa9db('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xa9db('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x124c28,_0x1dedfe,_0xeb682d){return new BPromise(function(_0xa47f2,_0x31b1b9){return client[_0xa9db('0x7')](_0x124c28,_0xeb682d)[_0xa9db('0x8')](function(_0x2b615d){logger[_0xa9db('0x9')](_0xa9db('0xa'),_0x1dedfe,_0xa9db('0xb'));logger[_0xa9db('0xc')](_0xa9db('0xd'),_0x1dedfe,'request\x20sent',JSON[_0xa9db('0xe')](_0x2b615d));if(_0x2b615d[_0xa9db('0xf')]){if(_0x2b615d[_0xa9db('0xf')]['code']===0x1f4){logger[_0xa9db('0xf')](_0xa9db('0xa'),_0x1dedfe,_0x2b615d[_0xa9db('0xf')]['message']);return _0x31b1b9(_0x2b615d['error']['message']);}logger[_0xa9db('0xf')](_0xa9db('0xa'),_0x1dedfe,_0x2b615d[_0xa9db('0xf')][_0xa9db('0x10')]);return _0xa47f2(_0x2b615d['error'][_0xa9db('0x10')]);}else{logger[_0xa9db('0x9')](_0xa9db('0xa'),_0x1dedfe,_0xa9db('0xb'));_0xa47f2(_0x2b615d[_0xa9db('0x11')][_0xa9db('0x10')]);}})[_0xa9db('0x12')](function(_0x2a7eb4){logger[_0xa9db('0xf')](_0xa9db('0xa'),_0x1dedfe,_0x2a7eb4);_0x31b1b9(_0x2a7eb4);});});}
\ No newline at end of file
+var _0x832c=['error','code','Schedule,\x20%s,\x20%s','message','info','lodash','util','moment','bluebird','ioredis','rpc','jayson/promise','client','http','request','then','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x15bc81,_0x4d4f77){var _0x59440e=function(_0x1b60f2){while(--_0x1b60f2){_0x15bc81['push'](_0x15bc81['shift']());}};_0x59440e(++_0x4d4f77);}(_0x832c,0x1e5));var _0xc832=function(_0x29a2ec,_0x1ebdcf){_0x29a2ec=_0x29a2ec-0x0;var _0x7b6d6e=_0x832c[_0x29a2ec];return _0x7b6d6e;};'use strict';var _=require(_0xc832('0x0'));var util=require(_0xc832('0x1'));var moment=require(_0xc832('0x2'));var BPromise=require(_0xc832('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc832('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xc832('0x5'));var config=require('../../config/environment');var jayson=require(_0xc832('0x6'));var client=jayson[_0xc832('0x7')][_0xc832('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1170c5,_0x29bfab,_0x2596a7){return new BPromise(function(_0x33bd47,_0x449a74){return client[_0xc832('0x9')](_0x1170c5,_0x2596a7)[_0xc832('0xa')](function(_0x3da5a2){logger['info']('Schedule,\x20%s,\x20%s',_0x29bfab,_0xc832('0xb'));logger[_0xc832('0xc')](_0xc832('0xd'),_0x29bfab,_0xc832('0xb'),JSON[_0xc832('0xe')](_0x3da5a2));if(_0x3da5a2[_0xc832('0xf')]){if(_0x3da5a2['error'][_0xc832('0x10')]===0x1f4){logger['error'](_0xc832('0x11'),_0x29bfab,_0x3da5a2[_0xc832('0xf')]['message']);return _0x449a74(_0x3da5a2['error']['message']);}logger[_0xc832('0xf')](_0xc832('0x11'),_0x29bfab,_0x3da5a2[_0xc832('0xf')][_0xc832('0x12')]);return _0x33bd47(_0x3da5a2[_0xc832('0xf')][_0xc832('0x12')]);}else{logger[_0xc832('0x13')](_0xc832('0x11'),_0x29bfab,'request\x20sent');_0x33bd47(_0x3da5a2['result'][_0xc832('0x12')]);}})['catch'](function(_0x5c378f){logger[_0xc832('0xf')](_0xc832('0x11'),_0x29bfab,_0x5c378f);_0x449a74(_0x5c378f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c5c=['addLogo','diskStorage','server/files/images/logos/','format','logologin','extname','originalname','addLogoLogin','/:id/preferred','addPreferred','/:id','update','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./setting.controller','isAuthenticated','index','get','show','/:id/logo_login','getLogoLogin','getPreferred','join','root','%s%s','logo','post','/:id/logo','single','file'];(function(_0x5214b0,_0x546abd){var _0x58af72=function(_0x3ef9ca){while(--_0x3ef9ca){_0x5214b0['push'](_0x5214b0['shift']());}};_0x58af72(++_0x546abd);}(_0x9c5c,0x1b1));var _0xc9c5=function(_0x24f85b,_0x2bf466){_0x24f85b=_0x24f85b-0x0;var _0x578211=_0x9c5c[_0x24f85b];return _0x578211;};'use strict';var multer=require('multer');var util=require(_0xc9c5('0x0'));var path=require('path');var timeout=require(_0xc9c5('0x1'));var express=require(_0xc9c5('0x2'));var router=express[_0xc9c5('0x3')]();var auth=require(_0xc9c5('0x4'));var interaction=require(_0xc9c5('0x5'));var config=require('../../config/environment');var controller=require(_0xc9c5('0x6'));router['get']('/',auth[_0xc9c5('0x7')](),controller[_0xc9c5('0x8')]);router[_0xc9c5('0x9')]('/:id',controller[_0xc9c5('0xa')]);router[_0xc9c5('0x9')]('/:id/logo',controller['getLogo']);router[_0xc9c5('0x9')](_0xc9c5('0xb'),controller[_0xc9c5('0xc')]);router[_0xc9c5('0x9')]('/:id/gdpr',controller['gdpr']);router[_0xc9c5('0x9')]('/:id/preferred',controller[_0xc9c5('0xd')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x2f71e0,_0x124106,_0x137745){_0x137745(null,path[_0xc9c5('0xe')](config[_0xc9c5('0xf')],'server/files/images/logos/'));},'filename':function(_0x58009c,_0x4e8f32,_0x5a6d6a){_0x5a6d6a(null,util['format'](_0xc9c5('0x10'),_0xc9c5('0x11'),path['extname'](_0x4e8f32['originalname'])));}})});router[_0xc9c5('0x12')](_0xc9c5('0x13'),upload[_0xc9c5('0x14')](_0xc9c5('0x15')),controller[_0xc9c5('0x16')]);var upload=multer({'storage':multer[_0xc9c5('0x17')]({'destination':function(_0x26d573,_0x20c6c7,_0x2a4a21){_0x2a4a21(null,path[_0xc9c5('0xe')](config[_0xc9c5('0xf')],_0xc9c5('0x18')));},'filename':function(_0x56a980,_0x1e9ed6,_0x2be191){_0x2be191(null,util[_0xc9c5('0x19')](_0xc9c5('0x10'),_0xc9c5('0x1a'),path[_0xc9c5('0x1b')](_0x1e9ed6[_0xc9c5('0x1c')])));}})});router[_0xc9c5('0x12')](_0xc9c5('0xb'),upload[_0xc9c5('0x14')](_0xc9c5('0x15')),controller[_0xc9c5('0x1d')]);var upload=multer({'storage':multer[_0xc9c5('0x17')]({'destination':function(_0x2ffc54,_0x47788d,_0x359b93){_0x359b93(null,path[_0xc9c5('0xe')](config[_0xc9c5('0xf')],_0xc9c5('0x18')));},'filename':function(_0xa4e2e0,_0x4b467b,_0xd30165){_0xd30165(null,util[_0xc9c5('0x19')](_0xc9c5('0x10'),'preferred',path[_0xc9c5('0x1b')](_0x4b467b[_0xc9c5('0x1c')])));}})});router[_0xc9c5('0x12')](_0xc9c5('0x1e'),upload['single'](_0xc9c5('0x15')),controller[_0xc9c5('0x1f')]);router['put'](_0xc9c5('0x20'),auth[_0xc9c5('0x7')](),controller[_0xc9c5('0x21')]);module[_0xc9c5('0x22')]=router;
\ No newline at end of file
+var _0xff25=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/logo','getLogo','/:id/gdpr','gdpr','/:id/preferred','getPreferred','diskStorage','join','root','logo','extname','originalname','post','single','addLogo','server/files/images/logos/','%s%s','logologin','file','addLogoLogin','format','preferred','addPreferred','put','update','exports','multer','util','path'];(function(_0x1cb84c,_0x576b00){var _0x1ff4ed=function(_0x27e6b4){while(--_0x27e6b4){_0x1cb84c['push'](_0x1cb84c['shift']());}};_0x1ff4ed(++_0x576b00);}(_0xff25,0x165));var _0x5ff2=function(_0x3b6845,_0x5611c2){_0x3b6845=_0x3b6845-0x0;var _0x173b9a=_0xff25[_0x3b6845];return _0x173b9a;};'use strict';var multer=require(_0x5ff2('0x0'));var util=require(_0x5ff2('0x1'));var path=require(_0x5ff2('0x2'));var timeout=require(_0x5ff2('0x3'));var express=require(_0x5ff2('0x4'));var router=express[_0x5ff2('0x5')]();var auth=require(_0x5ff2('0x6'));var interaction=require(_0x5ff2('0x7'));var config=require(_0x5ff2('0x8'));var controller=require('./setting.controller');router[_0x5ff2('0x9')]('/',auth[_0x5ff2('0xa')](),controller[_0x5ff2('0xb')]);router[_0x5ff2('0x9')](_0x5ff2('0xc'),controller[_0x5ff2('0xd')]);router['get'](_0x5ff2('0xe'),controller[_0x5ff2('0xf')]);router[_0x5ff2('0x9')]('/:id/logo_login',controller['getLogoLogin']);router[_0x5ff2('0x9')](_0x5ff2('0x10'),controller[_0x5ff2('0x11')]);router[_0x5ff2('0x9')](_0x5ff2('0x12'),controller[_0x5ff2('0x13')]);var upload=multer({'storage':multer[_0x5ff2('0x14')]({'destination':function(_0x443aa5,_0x351720,_0x2f2847){_0x2f2847(null,path[_0x5ff2('0x15')](config[_0x5ff2('0x16')],'server/files/images/logos/'));},'filename':function(_0x38baf7,_0x45946a,_0x136920){_0x136920(null,util['format']('%s%s',_0x5ff2('0x17'),path[_0x5ff2('0x18')](_0x45946a[_0x5ff2('0x19')])));}})});router[_0x5ff2('0x1a')]('/:id/logo',upload[_0x5ff2('0x1b')]('file'),controller[_0x5ff2('0x1c')]);var upload=multer({'storage':multer[_0x5ff2('0x14')]({'destination':function(_0x5ccae5,_0xb65f1c,_0x41eeba){_0x41eeba(null,path[_0x5ff2('0x15')](config[_0x5ff2('0x16')],_0x5ff2('0x1d')));},'filename':function(_0x43fab9,_0x21aa62,_0x495820){_0x495820(null,util['format'](_0x5ff2('0x1e'),_0x5ff2('0x1f'),path[_0x5ff2('0x18')](_0x21aa62[_0x5ff2('0x19')])));}})});router['post']('/:id/logo_login',upload[_0x5ff2('0x1b')](_0x5ff2('0x20')),controller[_0x5ff2('0x21')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x512f97,_0x46aa2b,_0x871656){_0x871656(null,path['join'](config[_0x5ff2('0x16')],_0x5ff2('0x1d')));},'filename':function(_0xce14e5,_0x5004a0,_0x1e35f5){_0x1e35f5(null,util[_0x5ff2('0x22')](_0x5ff2('0x1e'),_0x5ff2('0x23'),path[_0x5ff2('0x18')](_0x5004a0['originalname'])));}})});router[_0x5ff2('0x1a')]('/:id/preferred',upload['single'](_0x5ff2('0x20')),controller[_0x5ff2('0x24')]);router[_0x5ff2('0x25')](_0x5ff2('0xc'),auth[_0x5ff2('0xa')](),controller[_0x5ff2('0x26')]);module[_0x5ff2('0x27')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10f7=['sequelize','exports','min_internal','INTEGER','min_mailbox','STRING','BOOLEAN','https://www.xcally.com/bar/phonebar/autoupdater.xml','alternate'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x10f7,0xbd));var _0x710f=function(_0x1bf1e4,_0x1e95a7){_0x1bf1e4=_0x1bf1e4-0x0;var _0x432b17=_0x10f7[_0x1bf1e4];return _0x432b17;};'use strict';var Sequelize=require(_0x710f('0x0'));module[_0x710f('0x1')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0x710f('0x2'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x710f('0x3')](0xb),'unique':_0x710f('0x4'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x710f('0x5')],'defaultValue':'/var/opt/motion2/server/files/sounds/converted'},'logo':{'type':Sequelize[_0x710f('0x5')]},'defaultLogo':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x710f('0x5')]},'defaultLoginLogo':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize['STRING']},'defaultHeaderWhiteLabel':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x710f('0x5')]},'turnaddr':{'type':Sequelize[_0x710f('0x5')]},'turnusername':{'type':Sequelize[_0x710f('0x5')]},'turnpassword':{'type':Sequelize['STRING']},'pageTitle':{'type':Sequelize[_0x710f('0x5')]},'defaultPageTitle':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x710f('0x6')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x710f('0x3')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0x710f('0x5')],'defaultValue':_0x710f('0x7')},'enableEmailPreview':{'type':Sequelize[_0x710f('0x6')],'defaultValue':![]},'split':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0x710f('0x3')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x710f('0x3')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x710f('0x5')],'defaultValue':_0x710f('0x8')},'chatTimeout':{'type':Sequelize[_0x710f('0x3')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x710f('0x5')]},'defaultPreferred':{'type':Sequelize[_0x710f('0x6')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x0e9a=['/var/opt/motion2/server/files/sounds/converted','STRING','BOOLEAN','https://www.xcally.com/bar/phonebar/autoupdater.xml','sequelize','exports','INTEGER','min_internal','min_mailbox'];(function(_0x44d461,_0xb9f49f){var _0x7d5162=function(_0x4e6126){while(--_0x4e6126){_0x44d461['push'](_0x44d461['shift']());}};_0x7d5162(++_0xb9f49f);}(_0x0e9a,0xe5));var _0xa0e9=function(_0x2e0317,_0x5e0741){_0x2e0317=_0x2e0317-0x0;var _0x122d55=_0x0e9a[_0x2e0317];return _0x122d55;};'use strict';var Sequelize=require(_0xa0e9('0x0'));module[_0xa0e9('0x1')]={'min_internal':{'type':Sequelize[_0xa0e9('0x2')](0xb),'unique':_0xa0e9('0x3'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0xa0e9('0x2')](0xb),'unique':_0xa0e9('0x4'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0xa0e9('0x2')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize['STRING'],'defaultValue':_0xa0e9('0x5')},'logo':{'type':Sequelize['STRING']},'defaultLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginLogo':{'type':Sequelize['STRING']},'defaultLoginLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0xa0e9('0x6')]},'defaultHeaderWhiteLabel':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':!![]},'firstSetup':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0xa0e9('0x6')]},'turnaddr':{'type':Sequelize[_0xa0e9('0x6')]},'turnusername':{'type':Sequelize['STRING']},'turnpassword':{'type':Sequelize[_0xa0e9('0x6')]},'pageTitle':{'type':Sequelize[_0xa0e9('0x6')]},'defaultPageTitle':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0xa0e9('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0xa0e9('0x6')],'defaultValue':_0xa0e9('0x8')},'enableEmailPreview':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':![]},'split':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0xa0e9('0x2')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0xa0e9('0x6')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0xa0e9('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'preferred':{'type':Sequelize[_0xa0e9('0x6')]},'defaultPreferred':{'type':Sequelize[_0xa0e9('0x7')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6606=['dateEnd','dateStart','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','add','day','filter','merge','map','options','include','findAll','show','params','length','includeAll','find','body','readFileSync','root','server/files/templates/stun.ejs','utf8','render','join','server/files/templates/turn.ejs','writeFileSync','/etc/asterisk/stun_xcally.conf','/etc/asterisk/turn_xcally.conf','Reload','res_rtp_asterisk.so','addLogo','file','filename','logo','addLogoLogin','loginLogo','../../config/license/util','getLogo','server/files/images/logos','getLicense','preferred','defaultLogo','defaultLoginLogo','defaultPreferred','existsSync','toLower','default_logo.png','upperFirst','custom','ValidationError','Logo\x20not\x20found','getLogoLogin','default_loginLogo.png','default','Sequelize','download','gdpr','securePassword','addPreferred','default_preferred.png','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','api','../../config/utils','../../mysqldb','jayson/promise','http','request','then','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','code','Setting,\x20%s,\x20%s','message','info','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','update','destroy','stack','name','send','Setting','rawAttributes','model','keys','query'];(function(_0x312839,_0x4bf653){var _0x57d2b4=function(_0x106467){while(--_0x106467){_0x312839['push'](_0x312839['shift']());}};_0x57d2b4(++_0x4bf653);}(_0x6606,0xbc));var _0x6660=function(_0x5c3bea,_0x33e136){_0x5c3bea=_0x5c3bea-0x0;var _0xd7cfa=_0x6606[_0x5c3bea];return _0xd7cfa;};'use strict';var pdf=require(_0x6660('0x0'));var emlformat=require(_0x6660('0x1'));var rimraf=require(_0x6660('0x2'));var zipdir=require(_0x6660('0x3'));var jsonpatch=require(_0x6660('0x4'));var rp=require(_0x6660('0x5'));var moment=require(_0x6660('0x6'));var BPromise=require(_0x6660('0x7'));var Mustache=require('mustache');var util=require(_0x6660('0x8'));var path=require(_0x6660('0x9'));var sox=require(_0x6660('0xa'));var csv=require(_0x6660('0xb'));var ejs=require(_0x6660('0xc'));var fs=require('fs');var _=require(_0x6660('0xd'));var squel=require('squel');var crypto=require(_0x6660('0xe'));var jsforce=require(_0x6660('0xf'));var deskjs=require(_0x6660('0x10'));var toCsv=require('to-csv');var querystring=require(_0x6660('0x11'));var Papa=require('papaparse');var qs=require(_0x6660('0x12'));var logger=require('../../config/logger')(_0x6660('0x13'));var utils=require(_0x6660('0x14'));var config=require('../../config/environment');var db=require(_0x6660('0x15'))['db'];var jayson=require(_0x6660('0x16'));var client=jayson['client'][_0x6660('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x3043c0,_0x4f5cd5,_0x5319b5,_0x32347a){return new BPromise(function(_0x46dab3,_0x4c2fbc){var _0x1caac7=_0x32347a||client;return _0x1caac7[_0x6660('0x18')](_0x3043c0,_0x5319b5)[_0x6660('0x19')](function(_0x451529){logger['info']('Setting,\x20%s,\x20%s',_0x4f5cd5,_0x6660('0x1a'));logger[_0x6660('0x1b')](_0x6660('0x1c'),_0x4f5cd5,_0x6660('0x1a'),JSON[_0x6660('0x1d')](_0x451529));if(_0x451529[_0x6660('0x1e')]){if(_0x451529['error'][_0x6660('0x1f')]===0x1f4){logger[_0x6660('0x1e')](_0x6660('0x20'),_0x4f5cd5,_0x451529['error'][_0x6660('0x21')]);return _0x4c2fbc(_0x451529['error'][_0x6660('0x21')]);}logger[_0x6660('0x1e')]('Setting,\x20%s,\x20%s',_0x4f5cd5,_0x451529['error'][_0x6660('0x21')]);return _0x46dab3(_0x451529[_0x6660('0x1e')][_0x6660('0x21')]);}else{logger[_0x6660('0x22')]('Setting,\x20%s,\x20%s',_0x4f5cd5,'request\x20sent');_0x46dab3(_0x451529['result'][_0x6660('0x21')]);}})[_0x6660('0x23')](function(_0x5d5987){logger[_0x6660('0x1e')]('Setting,\x20%s,\x20%s',_0x4f5cd5,_0x5d5987);_0x4c2fbc(_0x5d5987);});});}function respondWithStatusCode(_0x3fa96b,_0x227c45){_0x227c45=_0x227c45||0xcc;return function(_0x3e0caf){if(_0x3e0caf){return _0x3fa96b[_0x6660('0x24')](_0x227c45);}return _0x3fa96b[_0x6660('0x25')](_0x227c45)[_0x6660('0x26')]();};}function respondWithResult(_0x540274,_0x1cd8f5){_0x1cd8f5=_0x1cd8f5||0xc8;return function(_0x22c247){if(_0x22c247){return _0x540274[_0x6660('0x25')](_0x1cd8f5)[_0x6660('0x27')](_0x22c247);}};}function respondWithFilteredResult(_0x5cc31b,_0x5a0710){return function(_0x309600){if(_0x309600){var _0x4b861c=_0x309600[_0x6660('0x28')],_0xeebc4c=_0x5a0710[_0x6660('0x29')],_0x5e48b2=_0x5a0710['offset']+_0x5a0710[_0x6660('0x2a')],_0x2f65ed;if(_0x5e48b2>=_0x4b861c){_0x5e48b2=_0x4b861c;_0x2f65ed=0xc8;}else{_0x2f65ed=0xce;}_0x5cc31b[_0x6660('0x25')](_0x2f65ed);return _0x5cc31b['set'](_0x6660('0x2b'),_0xeebc4c+'-'+_0x5e48b2+'/'+_0x4b861c)['json'](_0x309600);}return null;};}function patchUpdates(_0xb9f4b){return function(_0x4bf5a6){try{jsonpatch[_0x6660('0x2c')](_0x4bf5a6,_0xb9f4b,!![]);}catch(_0x1bf058){return BPromise[_0x6660('0x2d')](_0x1bf058);}return _0x4bf5a6['save']();};}function saveUpdates(_0x587dea,_0x578ada){return function(_0x5ec464){if(_0x5ec464){return _0x5ec464[_0x6660('0x2e')](_0x587dea)[_0x6660('0x19')](function(_0x4bfc05){return _0x4bfc05;});}return null;};}function removeEntity(_0x4d19d1,_0x1241fa){return function(_0x472558){if(_0x472558){return _0x472558[_0x6660('0x2f')]()[_0x6660('0x19')](function(){_0x4d19d1[_0x6660('0x25')](0xcc)[_0x6660('0x26')]();});}};}function handleEntityNotFound(_0x21da30,_0x4b37dd){return function(_0x1ec9ba){if(!_0x1ec9ba){_0x21da30['sendStatus'](0x194);}return _0x1ec9ba;};}function handleError(_0x2c8576,_0x8f5faf){_0x8f5faf=_0x8f5faf||0x1f4;return function(_0x4152a3){logger['error'](_0x4152a3[_0x6660('0x30')]);if(_0x4152a3['name']){delete _0x4152a3[_0x6660('0x31')];}_0x2c8576['status'](_0x8f5faf)[_0x6660('0x32')](_0x4152a3);};}exports['index']=function(_0xcb67a4,_0x317f9e){var _0x52fbf2={},_0x3d6d9e={},_0x1f6074={'count':0x0,'rows':[]};var _0x211d00=db[_0x6660('0x33')][_0x6660('0x34')];_0x3d6d9e[_0x6660('0x35')]=_[_0x6660('0x36')](_0x211d00);var _0x2b3fae={'dateStart':_0xcb67a4['query']['dateStart'],'dateEnd':_0xcb67a4[_0x6660('0x37')][_0x6660('0x38')]};delete _0xcb67a4[_0x6660('0x37')][_0x6660('0x39')];delete _0xcb67a4[_0x6660('0x37')][_0x6660('0x38')];_0x3d6d9e[_0x6660('0x37')]=_[_0x6660('0x36')](_0xcb67a4[_0x6660('0x37')]);_0x3d6d9e[_0x6660('0x3a')]=_[_0x6660('0x3b')](_0x3d6d9e[_0x6660('0x35')],_0x3d6d9e[_0x6660('0x37')]);_0x52fbf2[_0x6660('0x3c')]=_[_0x6660('0x3b')](_0x3d6d9e['model'],qs[_0x6660('0x3d')](_0xcb67a4['query']['fields']));_0x52fbf2[_0x6660('0x3c')]=_0x52fbf2[_0x6660('0x3c')]['length']?_0x52fbf2[_0x6660('0x3c')]:_0x3d6d9e[_0x6660('0x35')];if(!_0xcb67a4['query'][_0x6660('0x3e')]('nolimit')){_0x52fbf2['limit']=qs[_0x6660('0x2a')](_0xcb67a4[_0x6660('0x37')][_0x6660('0x2a')]);_0x52fbf2['offset']=qs[_0x6660('0x29')](_0xcb67a4[_0x6660('0x37')][_0x6660('0x29')]);}_0x52fbf2['order']=qs[_0x6660('0x3f')](_0xcb67a4['query'][_0x6660('0x3f')]);_0x52fbf2[_0x6660('0x40')]=qs[_0x6660('0x3a')](_[_0x6660('0x41')](_0xcb67a4[_0x6660('0x37')],_0x3d6d9e[_0x6660('0x3a')]));if(_0x2b3fae[_0x6660('0x39')]){if(_0x2b3fae[_0x6660('0x38')]){_0x2b3fae[_0x6660('0x38')]=moment(_0x2b3fae[_0x6660('0x38')])[_0x6660('0x42')](0x1,_0x6660('0x43'));}else{_0x2b3fae[_0x6660('0x38')]=moment(_0x2b3fae[_0x6660('0x39')])[_0x6660('0x42')](0x1,_0x6660('0x43'));}_['merge'](_0x52fbf2['where'],{'createdAt':{'$gte':_0x2b3fae['dateStart'],'$lte':_0x2b3fae[_0x6660('0x38')]}});}if(_0xcb67a4[_0x6660('0x37')][_0x6660('0x44')]){_0x52fbf2['where']=_[_0x6660('0x45')](_0x52fbf2[_0x6660('0x40')],{'$or':_[_0x6660('0x46')](_0x52fbf2[_0x6660('0x3c')],function(_0x58145a){var _0x20d510={};_0x20d510[_0x58145a]={'$like':'%'+_0xcb67a4['query']['filter']+'%'};return _0x20d510;})});}_0x52fbf2=_[_0x6660('0x45')]({},_0x52fbf2,_0xcb67a4[_0x6660('0x47')]);var _0x3f6fd0={'where':_0x52fbf2[_0x6660('0x40')]};return db[_0x6660('0x33')][_0x6660('0x28')](_0x3f6fd0)[_0x6660('0x19')](function(_0x494ba0){_0x1f6074[_0x6660('0x28')]=_0x494ba0;if(_0xcb67a4[_0x6660('0x37')]['includeAll']){_0x52fbf2[_0x6660('0x48')]=[{'all':!![]}];}return db[_0x6660('0x33')][_0x6660('0x49')](_0x52fbf2);})['then'](function(_0x5f0334){_0x1f6074['rows']=_0x5f0334;return _0x1f6074;})[_0x6660('0x19')](respondWithFilteredResult(_0x317f9e,_0x52fbf2))[_0x6660('0x23')](handleError(_0x317f9e,null));};exports[_0x6660('0x4a')]=function(_0x1ced6e,_0x2c2dec){var _0x2df348={'raw':![],'where':{'id':_0x1ced6e[_0x6660('0x4b')]['id']}},_0x48ea0b={};_0x48ea0b[_0x6660('0x35')]=_[_0x6660('0x36')](db[_0x6660('0x33')][_0x6660('0x34')]);_0x48ea0b['query']=_[_0x6660('0x36')](_0x1ced6e[_0x6660('0x37')]);_0x48ea0b[_0x6660('0x3a')]=_[_0x6660('0x3b')](_0x48ea0b[_0x6660('0x35')],_0x48ea0b[_0x6660('0x37')]);_0x2df348[_0x6660('0x3c')]=_[_0x6660('0x3b')](_0x48ea0b[_0x6660('0x35')],qs[_0x6660('0x3d')](_0x1ced6e['query']['fields']));_0x2df348[_0x6660('0x3c')]=_0x2df348['attributes'][_0x6660('0x4c')]?_0x2df348[_0x6660('0x3c')]:_0x48ea0b['model'];if(_0x1ced6e[_0x6660('0x37')][_0x6660('0x4d')]){_0x2df348[_0x6660('0x48')]=[{'all':!![]}];}_0x2df348=_[_0x6660('0x45')]({},_0x2df348,_0x1ced6e['options']);return db[_0x6660('0x33')][_0x6660('0x4e')](_0x2df348)[_0x6660('0x19')](handleEntityNotFound(_0x2c2dec,null))[_0x6660('0x19')](respondWithResult(_0x2c2dec,null))[_0x6660('0x23')](handleError(_0x2c2dec,null));};exports[_0x6660('0x2e')]=function(_0x3f54c9,_0x37b70d,_0x278ddc){var _0x28e647;return db['Setting'][_0x6660('0x4e')]({'where':{'id':_0x3f54c9[_0x6660('0x4b')]['id']}})[_0x6660('0x19')](handleEntityNotFound(_0x37b70d,null))[_0x6660('0x19')](saveUpdates(_0x3f54c9[_0x6660('0x4f')],null))[_0x6660('0x19')](function(_0x136812){if(_0x136812){_0x28e647=_0x136812['get']({'plain':!![]});var _0x31f941=fs[_0x6660('0x50')](path['join'](config[_0x6660('0x51')],_0x6660('0x52')),_0x6660('0x53'));var _0x8c1648=ejs[_0x6660('0x54')](_0x31f941,_0x28e647);var _0x2ff1eb=fs[_0x6660('0x50')](path[_0x6660('0x55')](config[_0x6660('0x51')],_0x6660('0x56')),_0x6660('0x53'));var _0x2fc6c2=ejs[_0x6660('0x54')](_0x2ff1eb,_0x28e647);fs[_0x6660('0x57')](_0x6660('0x58'),_0x8c1648);fs['writeFileSync'](_0x6660('0x59'),_0x2fc6c2);return respondWithRpcPromise(_0x6660('0x5a'),_0x6660('0x2e'),{'module':'res_stun_monitor.so'});}})[_0x6660('0x19')](function(){return respondWithRpcPromise(_0x6660('0x5a'),_0x6660('0x2e'),{'module':_0x6660('0x5b')});})[_0x6660('0x19')](function(){return _0x28e647||null;})[_0x6660('0x19')](respondWithResult(_0x37b70d,null))[_0x6660('0x23')](handleError(_0x37b70d,null));};exports[_0x6660('0x5c')]=function(_0x3ca3bc,_0xddb122,_0x5ed1e6){if(_0x3ca3bc[_0x6660('0x5d')]&&_0x3ca3bc[_0x6660('0x5d')][_0x6660('0x5e')]){_0x3ca3bc[_0x6660('0x4f')][_0x6660('0x5f')]=_0x3ca3bc[_0x6660('0x5d')][_0x6660('0x5e')];}return db[_0x6660('0x33')][_0x6660('0x4e')]({'where':{'id':_0x3ca3bc[_0x6660('0x4b')]['id']}})[_0x6660('0x19')](handleEntityNotFound(_0xddb122,null))[_0x6660('0x19')](saveUpdates(_0x3ca3bc[_0x6660('0x4f')],null))[_0x6660('0x19')](respondWithResult(_0xddb122,null))[_0x6660('0x23')](handleError(_0xddb122,null));};exports[_0x6660('0x60')]=function(_0x4eeb44,_0x4a0130,_0x4cab64){if(_0x4eeb44[_0x6660('0x5d')]&&_0x4eeb44[_0x6660('0x5d')][_0x6660('0x5e')]){_0x4eeb44[_0x6660('0x4f')][_0x6660('0x61')]=_0x4eeb44['file'][_0x6660('0x5e')];}return db[_0x6660('0x33')][_0x6660('0x4e')]({'where':{'id':_0x4eeb44[_0x6660('0x4b')]['id']}})[_0x6660('0x19')](handleEntityNotFound(_0x4a0130,null))[_0x6660('0x19')](saveUpdates(_0x4eeb44['body'],null))[_0x6660('0x19')](respondWithResult(_0x4a0130,null))[_0x6660('0x23')](handleError(_0x4a0130,null));};var utilLicense=require(_0x6660('0x62'));exports[_0x6660('0x63')]=function(_0x2fbf04,_0xe90d3c,_0x12c14a){var _0x84b40b=_0x6660('0x64');var _0x30207e={'custom':![]};return utilLicense[_0x6660('0x65')]()[_0x6660('0x19')](function(_0x13a0ce){if(_0x13a0ce){_0x30207e=_0x13a0ce;}return db['Setting'][_0x6660('0x4e')]({'where':{'id':_0x2fbf04[_0x6660('0x4b')]['id']},'attributes':[_0x6660('0x5f'),_0x6660('0x61'),_0x6660('0x66'),_0x6660('0x67'),_0x6660('0x68'),_0x6660('0x69')],'raw':!![]});})[_0x6660('0x19')](handleEntityNotFound(_0xe90d3c,null))['then'](function(_0x9beba9){if(_0x9beba9){var _0x41a5f6=_0x9beba9[_0x6660('0x5f')]&&fs[_0x6660('0x6a')](path[_0x6660('0x55')](config[_0x6660('0x51')],_0x84b40b,_[_0x6660('0x6b')](_0x9beba9[_0x6660('0x5f')])))?path[_0x6660('0x55')](config[_0x6660('0x51')],_0x84b40b,_[_0x6660('0x6b')](_0x9beba9[_0x6660('0x5f')])):path['join'](config['root'],_0x84b40b,_['toLower'](_0x6660('0x6c')));var _0x354c9d='default'+_[_0x6660('0x6d')]('logo');if(_0x9beba9[_0x354c9d]||!_0x30207e[_0x6660('0x6e')]){_0x41a5f6=path[_0x6660('0x55')](config[_0x6660('0x51')],_0x84b40b,_[_0x6660('0x6b')](_0x6660('0x6c')));}if(!fs[_0x6660('0x6a')](_0x41a5f6)){throw new db['Sequelize'][(_0x6660('0x6f'))](_0x6660('0x70'));}return _0xe90d3c['download'](_0x41a5f6);}})[_0x6660('0x23')](handleError(_0xe90d3c,null));};var utilLicense=require(_0x6660('0x62'));exports[_0x6660('0x71')]=function(_0x3ea620,_0x56abde,_0x4d9971){var _0x18a0de=_0x6660('0x64');var _0x4ed179={'custom':![]};return utilLicense[_0x6660('0x65')]()[_0x6660('0x19')](function(_0x2c4bc3){if(_0x2c4bc3){_0x4ed179=_0x2c4bc3;}return db[_0x6660('0x33')]['find']({'where':{'id':_0x3ea620['params']['id']},'attributes':['logo',_0x6660('0x61'),_0x6660('0x66'),_0x6660('0x67'),_0x6660('0x68'),_0x6660('0x69')],'raw':!![]});})['then'](handleEntityNotFound(_0x56abde,null))[_0x6660('0x19')](function(_0x51289e){if(_0x51289e){var _0x1eb2d3=_0x51289e[_0x6660('0x61')]&&fs[_0x6660('0x6a')](path[_0x6660('0x55')](config[_0x6660('0x51')],_0x18a0de,_[_0x6660('0x6b')](_0x51289e[_0x6660('0x61')])))?path[_0x6660('0x55')](config[_0x6660('0x51')],_0x18a0de,_[_0x6660('0x6b')](_0x51289e[_0x6660('0x61')])):path[_0x6660('0x55')](config[_0x6660('0x51')],_0x18a0de,_[_0x6660('0x6b')](_0x6660('0x72')));var _0x407341=_0x6660('0x73')+_[_0x6660('0x6d')](_0x6660('0x61'));if(_0x51289e[_0x407341]||!_0x4ed179[_0x6660('0x6e')]){_0x1eb2d3=path['join'](config[_0x6660('0x51')],_0x18a0de,_[_0x6660('0x6b')]('default_loginLogo.png'));}if(!fs[_0x6660('0x6a')](_0x1eb2d3)){throw new db[(_0x6660('0x74'))][(_0x6660('0x6f'))](_0x6660('0x70'));}return _0x56abde[_0x6660('0x75')](_0x1eb2d3);}})[_0x6660('0x23')](handleError(_0x56abde,null));};exports[_0x6660('0x76')]=function(_0x396f3d,_0x2cb131){return db[_0x6660('0x33')][_0x6660('0x4e')]({'where':{'id':_0x396f3d[_0x6660('0x4b')]['id']},'attributes':[_0x6660('0x77')]})[_0x6660('0x19')](respondWithResult(_0x2cb131,null))[_0x6660('0x23')](handleError(_0x2cb131,null));};exports[_0x6660('0x78')]=function(_0x9fc843,_0x59e10e,_0x1e545f){if(_0x9fc843[_0x6660('0x5d')]&&_0x9fc843['file'][_0x6660('0x5e')]){_0x9fc843[_0x6660('0x4f')][_0x6660('0x66')]=_0x9fc843[_0x6660('0x5d')]['filename'];}return db[_0x6660('0x33')][_0x6660('0x4e')]({'where':{'id':_0x9fc843[_0x6660('0x4b')]['id']}})[_0x6660('0x19')](handleEntityNotFound(_0x59e10e,null))[_0x6660('0x19')](saveUpdates(_0x9fc843[_0x6660('0x4f')],null))['then'](respondWithResult(_0x59e10e,null))[_0x6660('0x23')](handleError(_0x59e10e,null));};var utilLicense=require(_0x6660('0x62'));exports['getPreferred']=function(_0x233d79,_0x9461a2,_0x4d2c80){var _0xcddf7d=_0x6660('0x64');var _0x5e2df6={'custom':![]};return utilLicense[_0x6660('0x65')]()[_0x6660('0x19')](function(_0x261d02){if(_0x261d02){_0x5e2df6=_0x261d02;}return db[_0x6660('0x33')]['find']({'where':{'id':_0x233d79['params']['id']},'attributes':[_0x6660('0x5f'),_0x6660('0x61'),_0x6660('0x66'),_0x6660('0x67'),_0x6660('0x68'),_0x6660('0x69')],'raw':!![]});})[_0x6660('0x19')](handleEntityNotFound(_0x9461a2,null))[_0x6660('0x19')](function(_0x1bcd7b){if(_0x1bcd7b){var _0x1da5dd=_0x1bcd7b[_0x6660('0x66')]&&fs[_0x6660('0x6a')](path['join'](config[_0x6660('0x51')],_0xcddf7d,_['toLower'](_0x1bcd7b[_0x6660('0x66')])))?path[_0x6660('0x55')](config[_0x6660('0x51')],_0xcddf7d,_[_0x6660('0x6b')](_0x1bcd7b[_0x6660('0x66')])):path[_0x6660('0x55')](config[_0x6660('0x51')],_0xcddf7d,_['toLower'](_0x6660('0x79')));var _0x40f2ad=_0x6660('0x73')+_[_0x6660('0x6d')](_0x6660('0x66'));if(_0x1bcd7b[_0x40f2ad]||!_0x5e2df6[_0x6660('0x6e')]||!_0x5e2df6[_0x6660('0x66')]){_0x1da5dd=path[_0x6660('0x55')](config[_0x6660('0x51')],_0xcddf7d,_['toLower']('default_preferred.png'));}if(!fs[_0x6660('0x6a')](_0x1da5dd)){throw new db[(_0x6660('0x74'))]['ValidationError'](_0x6660('0x70'));}return _0x9461a2[_0x6660('0x75')](_0x1da5dd);}})['catch'](handleError(_0x9461a2,null));};
\ No newline at end of file
+var _0xeec6=['request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','json','count','offset','limit','apply','reject','save','update','destroy','stack','name','send','Setting','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','add','day','merge','where','filter','options','includeAll','findAll','show','params','length','include','find','body','readFileSync','join','root','server/files/templates/stun.ejs','utf8','server/files/templates/turn.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','/etc/asterisk/turn_xcally.conf','Reload','res_rtp_asterisk.so','addLogo','file','filename','logo','addLogoLogin','loginLogo','../../config/license/util','getLogo','server/files/images/logos','getLicense','defaultLogo','defaultLoginLogo','defaultPreferred','existsSync','toLower','default_logo.png','upperFirst','custom','Sequelize','ValidationError','Logo\x20not\x20found','download','default_loginLogo.png','gdpr','securePassword','addPreferred','preferred','getPreferred','default_preferred.png','default','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/utils','../../config/environment','client','request','then','info','Setting,\x20%s,\x20%s'];(function(_0x1acd19,_0x44487c){var _0x1e6d7e=function(_0x1c5d16){while(--_0x1c5d16){_0x1acd19['push'](_0x1acd19['shift']());}};_0x1e6d7e(++_0x44487c);}(_0xeec6,0x1c2));var _0x6eec=function(_0x5e36d1,_0x471178){_0x5e36d1=_0x5e36d1-0x0;var _0x950b9e=_0xeec6[_0x5e36d1];return _0x950b9e;};'use strict';var pdf=require(_0x6eec('0x0'));var emlformat=require(_0x6eec('0x1'));var rimraf=require(_0x6eec('0x2'));var zipdir=require(_0x6eec('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6eec('0x4'));var moment=require(_0x6eec('0x5'));var BPromise=require(_0x6eec('0x6'));var Mustache=require(_0x6eec('0x7'));var util=require(_0x6eec('0x8'));var path=require(_0x6eec('0x9'));var sox=require('sox');var csv=require(_0x6eec('0xa'));var ejs=require(_0x6eec('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6eec('0xc'));var crypto=require(_0x6eec('0xd'));var jsforce=require(_0x6eec('0xe'));var deskjs=require(_0x6eec('0xf'));var toCsv=require('to-csv');var querystring=require(_0x6eec('0x10'));var Papa=require(_0x6eec('0x11'));var Redis=require(_0x6eec('0x12'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0x6eec('0x13'));var config=require(_0x6eec('0x14'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x6eec('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3091d0,_0x3387c2,_0x162db1,_0x3fe94b){return new BPromise(function(_0x3fe3bc,_0x49fccb){var _0x25e2a5=_0x3fe94b||client;return _0x25e2a5[_0x6eec('0x16')](_0x3091d0,_0x162db1)[_0x6eec('0x17')](function(_0xc35914){logger[_0x6eec('0x18')](_0x6eec('0x19'),_0x3387c2,_0x6eec('0x1a'));logger[_0x6eec('0x1b')](_0x6eec('0x1c'),_0x3387c2,_0x6eec('0x1a'),JSON['stringify'](_0xc35914));if(_0xc35914[_0x6eec('0x1d')]){if(_0xc35914['error'][_0x6eec('0x1e')]===0x1f4){logger[_0x6eec('0x1d')]('Setting,\x20%s,\x20%s',_0x3387c2,_0xc35914[_0x6eec('0x1d')][_0x6eec('0x1f')]);return _0x49fccb(_0xc35914[_0x6eec('0x1d')]['message']);}logger[_0x6eec('0x1d')](_0x6eec('0x19'),_0x3387c2,_0xc35914[_0x6eec('0x1d')][_0x6eec('0x1f')]);return _0x3fe3bc(_0xc35914[_0x6eec('0x1d')][_0x6eec('0x1f')]);}else{logger['info'](_0x6eec('0x19'),_0x3387c2,_0x6eec('0x1a'));_0x3fe3bc(_0xc35914[_0x6eec('0x20')][_0x6eec('0x1f')]);}})[_0x6eec('0x21')](function(_0xcd546f){logger['error'](_0x6eec('0x19'),_0x3387c2,_0xcd546f);_0x49fccb(_0xcd546f);});});}function respondWithStatusCode(_0x852d08,_0x285d41){_0x285d41=_0x285d41||0xcc;return function(_0x27785a){if(_0x27785a){return _0x852d08[_0x6eec('0x22')](_0x285d41);}return _0x852d08[_0x6eec('0x23')](_0x285d41)['end']();};}function respondWithResult(_0x384586,_0x2ad14b){_0x2ad14b=_0x2ad14b||0xc8;return function(_0xd664f5){if(_0xd664f5){return _0x384586[_0x6eec('0x23')](_0x2ad14b)[_0x6eec('0x24')](_0xd664f5);}};}function respondWithFilteredResult(_0x1f386c,_0x29879c){return function(_0x20bed3){if(_0x20bed3){var _0x316317=_0x20bed3[_0x6eec('0x25')],_0x58f95c=_0x29879c[_0x6eec('0x26')],_0x1d750c=_0x29879c['offset']+_0x29879c[_0x6eec('0x27')],_0x44b31c;if(_0x1d750c>=_0x316317){_0x1d750c=_0x316317;_0x44b31c=0xc8;}else{_0x44b31c=0xce;}_0x1f386c[_0x6eec('0x23')](_0x44b31c);return _0x1f386c['set']('Content-Range',_0x58f95c+'-'+_0x1d750c+'/'+_0x316317)[_0x6eec('0x24')](_0x20bed3);}return null;};}function patchUpdates(_0x47ed95){return function(_0x20a130){try{jsonpatch[_0x6eec('0x28')](_0x20a130,_0x47ed95,!![]);}catch(_0x3bbdf8){return BPromise[_0x6eec('0x29')](_0x3bbdf8);}return _0x20a130[_0x6eec('0x2a')]();};}function saveUpdates(_0x372f8f,_0x33d180){return function(_0x33e4a1){if(_0x33e4a1){return _0x33e4a1[_0x6eec('0x2b')](_0x372f8f)[_0x6eec('0x17')](function(_0x48f66f){return _0x48f66f;});}return null;};}function removeEntity(_0x383c6b,_0x4ce793){return function(_0x26f838){if(_0x26f838){return _0x26f838[_0x6eec('0x2c')]()[_0x6eec('0x17')](function(){_0x383c6b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x508735,_0x183ce3){return function(_0x26b0da){if(!_0x26b0da){_0x508735[_0x6eec('0x22')](0x194);}return _0x26b0da;};}function handleError(_0x2f50a7,_0x20c794){_0x20c794=_0x20c794||0x1f4;return function(_0x23547d){logger[_0x6eec('0x1d')](_0x23547d[_0x6eec('0x2d')]);if(_0x23547d[_0x6eec('0x2e')]){delete _0x23547d[_0x6eec('0x2e')];}_0x2f50a7[_0x6eec('0x23')](_0x20c794)[_0x6eec('0x2f')](_0x23547d);};}exports['index']=function(_0xd77dd3,_0x361ab7){var _0x2c83d1={},_0x47e169={},_0x2ce8c3={'count':0x0,'rows':[]};var _0x193732=db[_0x6eec('0x30')][_0x6eec('0x31')];_0x47e169[_0x6eec('0x32')]=_[_0x6eec('0x33')](_0x193732);var _0x4a7699={'dateStart':_0xd77dd3[_0x6eec('0x34')][_0x6eec('0x35')],'dateEnd':_0xd77dd3[_0x6eec('0x34')]['dateEnd']};delete _0xd77dd3['query'][_0x6eec('0x35')];delete _0xd77dd3[_0x6eec('0x34')][_0x6eec('0x36')];_0x47e169[_0x6eec('0x34')]=_[_0x6eec('0x33')](_0xd77dd3['query']);_0x47e169[_0x6eec('0x37')]=_[_0x6eec('0x38')](_0x47e169[_0x6eec('0x32')],_0x47e169[_0x6eec('0x34')]);_0x2c83d1[_0x6eec('0x39')]=_[_0x6eec('0x38')](_0x47e169[_0x6eec('0x32')],qs[_0x6eec('0x3a')](_0xd77dd3['query'][_0x6eec('0x3a')]));_0x2c83d1[_0x6eec('0x39')]=_0x2c83d1['attributes']['length']?_0x2c83d1[_0x6eec('0x39')]:_0x47e169[_0x6eec('0x32')];if(!_0xd77dd3[_0x6eec('0x34')][_0x6eec('0x3b')]('nolimit')){_0x2c83d1['limit']=qs[_0x6eec('0x27')](_0xd77dd3['query']['limit']);_0x2c83d1[_0x6eec('0x26')]=qs[_0x6eec('0x26')](_0xd77dd3[_0x6eec('0x34')][_0x6eec('0x26')]);}_0x2c83d1[_0x6eec('0x3c')]=qs['sort'](_0xd77dd3[_0x6eec('0x34')][_0x6eec('0x3d')]);_0x2c83d1['where']=qs[_0x6eec('0x37')](_[_0x6eec('0x3e')](_0xd77dd3['query'],_0x47e169[_0x6eec('0x37')]));if(_0x4a7699[_0x6eec('0x35')]){if(_0x4a7699['dateEnd']){_0x4a7699[_0x6eec('0x36')]=moment(_0x4a7699[_0x6eec('0x36')])[_0x6eec('0x3f')](0x1,_0x6eec('0x40'));}else{_0x4a7699['dateEnd']=moment(_0x4a7699[_0x6eec('0x35')])[_0x6eec('0x3f')](0x1,_0x6eec('0x40'));}_[_0x6eec('0x41')](_0x2c83d1[_0x6eec('0x42')],{'createdAt':{'$gte':_0x4a7699['dateStart'],'$lte':_0x4a7699['dateEnd']}});}if(_0xd77dd3[_0x6eec('0x34')][_0x6eec('0x43')]){_0x2c83d1[_0x6eec('0x42')]=_[_0x6eec('0x41')](_0x2c83d1[_0x6eec('0x42')],{'$or':_['map'](_0x2c83d1[_0x6eec('0x39')],function(_0x545f9d){var _0x20524a={};_0x20524a[_0x545f9d]={'$like':'%'+_0xd77dd3[_0x6eec('0x34')][_0x6eec('0x43')]+'%'};return _0x20524a;})});}_0x2c83d1=_['merge']({},_0x2c83d1,_0xd77dd3[_0x6eec('0x44')]);var _0x35a4a5={'where':_0x2c83d1[_0x6eec('0x42')]};return db[_0x6eec('0x30')][_0x6eec('0x25')](_0x35a4a5)['then'](function(_0x176392){_0x2ce8c3['count']=_0x176392;if(_0xd77dd3['query'][_0x6eec('0x45')]){_0x2c83d1['include']=[{'all':!![]}];}return db[_0x6eec('0x30')][_0x6eec('0x46')](_0x2c83d1);})[_0x6eec('0x17')](function(_0x5f2476){_0x2ce8c3['rows']=_0x5f2476;return _0x2ce8c3;})[_0x6eec('0x17')](respondWithFilteredResult(_0x361ab7,_0x2c83d1))[_0x6eec('0x21')](handleError(_0x361ab7,null));};exports[_0x6eec('0x47')]=function(_0x2d0fc0,_0x188359){var _0x2c9650={'raw':![],'where':{'id':_0x2d0fc0[_0x6eec('0x48')]['id']}},_0x185711={};_0x185711[_0x6eec('0x32')]=_[_0x6eec('0x33')](db['Setting']['rawAttributes']);_0x185711[_0x6eec('0x34')]=_[_0x6eec('0x33')](_0x2d0fc0[_0x6eec('0x34')]);_0x185711['filters']=_[_0x6eec('0x38')](_0x185711[_0x6eec('0x32')],_0x185711[_0x6eec('0x34')]);_0x2c9650[_0x6eec('0x39')]=_[_0x6eec('0x38')](_0x185711[_0x6eec('0x32')],qs[_0x6eec('0x3a')](_0x2d0fc0[_0x6eec('0x34')]['fields']));_0x2c9650[_0x6eec('0x39')]=_0x2c9650[_0x6eec('0x39')][_0x6eec('0x49')]?_0x2c9650[_0x6eec('0x39')]:_0x185711['model'];if(_0x2d0fc0['query']['includeAll']){_0x2c9650[_0x6eec('0x4a')]=[{'all':!![]}];}_0x2c9650=_[_0x6eec('0x41')]({},_0x2c9650,_0x2d0fc0[_0x6eec('0x44')]);return db[_0x6eec('0x30')]['find'](_0x2c9650)['then'](handleEntityNotFound(_0x188359,null))[_0x6eec('0x17')](respondWithResult(_0x188359,null))[_0x6eec('0x21')](handleError(_0x188359,null));};exports[_0x6eec('0x2b')]=function(_0x49f0d2,_0x238605,_0x35f411){var _0x21f3da;return db[_0x6eec('0x30')][_0x6eec('0x4b')]({'where':{'id':_0x49f0d2[_0x6eec('0x48')]['id']}})[_0x6eec('0x17')](handleEntityNotFound(_0x238605,null))[_0x6eec('0x17')](saveUpdates(_0x49f0d2[_0x6eec('0x4c')],null))['then'](function(_0x22cf6c){if(_0x22cf6c){_0x21f3da=_0x22cf6c['get']({'plain':!![]});var _0x3c945c=fs[_0x6eec('0x4d')](path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0x6eec('0x50')),_0x6eec('0x51'));var _0x274975=ejs['render'](_0x3c945c,_0x21f3da);var _0x3b10ab=fs['readFileSync'](path[_0x6eec('0x4e')](config['root'],_0x6eec('0x52')),_0x6eec('0x51'));var _0x437fb6=ejs[_0x6eec('0x53')](_0x3b10ab,_0x21f3da);fs[_0x6eec('0x54')](_0x6eec('0x55'),_0x274975);fs[_0x6eec('0x54')](_0x6eec('0x56'),_0x437fb6);return respondWithRpcPromise(_0x6eec('0x57'),_0x6eec('0x2b'),{'module':'res_stun_monitor.so'});}})['then'](function(){return respondWithRpcPromise(_0x6eec('0x57'),_0x6eec('0x2b'),{'module':_0x6eec('0x58')});})[_0x6eec('0x17')](function(){return _0x21f3da||null;})[_0x6eec('0x17')](respondWithResult(_0x238605,null))['catch'](handleError(_0x238605,null));};exports[_0x6eec('0x59')]=function(_0x20973e,_0x5329ca,_0x5dc4d1){if(_0x20973e['file']&&_0x20973e[_0x6eec('0x5a')][_0x6eec('0x5b')]){_0x20973e['body'][_0x6eec('0x5c')]=_0x20973e[_0x6eec('0x5a')]['filename'];}return db[_0x6eec('0x30')][_0x6eec('0x4b')]({'where':{'id':_0x20973e[_0x6eec('0x48')]['id']}})[_0x6eec('0x17')](handleEntityNotFound(_0x5329ca,null))['then'](saveUpdates(_0x20973e['body'],null))[_0x6eec('0x17')](respondWithResult(_0x5329ca,null))[_0x6eec('0x21')](handleError(_0x5329ca,null));};exports[_0x6eec('0x5d')]=function(_0x19ca46,_0x34c4b4,_0x3d0525){if(_0x19ca46[_0x6eec('0x5a')]&&_0x19ca46[_0x6eec('0x5a')][_0x6eec('0x5b')]){_0x19ca46[_0x6eec('0x4c')][_0x6eec('0x5e')]=_0x19ca46[_0x6eec('0x5a')][_0x6eec('0x5b')];}return db[_0x6eec('0x30')][_0x6eec('0x4b')]({'where':{'id':_0x19ca46[_0x6eec('0x48')]['id']}})[_0x6eec('0x17')](handleEntityNotFound(_0x34c4b4,null))['then'](saveUpdates(_0x19ca46[_0x6eec('0x4c')],null))[_0x6eec('0x17')](respondWithResult(_0x34c4b4,null))['catch'](handleError(_0x34c4b4,null));};var utilLicense=require(_0x6eec('0x5f'));exports[_0x6eec('0x60')]=function(_0x5bdb67,_0x7dd727,_0x3a086a){var _0x38d761=_0x6eec('0x61');var _0x4c73f2={'custom':![]};return utilLicense[_0x6eec('0x62')]()[_0x6eec('0x17')](function(_0x3a9a5b){if(_0x3a9a5b){_0x4c73f2=_0x3a9a5b;}return db[_0x6eec('0x30')][_0x6eec('0x4b')]({'where':{'id':_0x5bdb67[_0x6eec('0x48')]['id']},'attributes':['logo',_0x6eec('0x5e'),'preferred',_0x6eec('0x63'),_0x6eec('0x64'),_0x6eec('0x65')],'raw':!![]});})[_0x6eec('0x17')](handleEntityNotFound(_0x7dd727,null))[_0x6eec('0x17')](function(_0x1b3705){if(_0x1b3705){var _0x404b64=_0x1b3705[_0x6eec('0x5c')]&&fs[_0x6eec('0x66')](path['join'](config[_0x6eec('0x4f')],_0x38d761,_[_0x6eec('0x67')](_0x1b3705[_0x6eec('0x5c')])))?path['join'](config[_0x6eec('0x4f')],_0x38d761,_[_0x6eec('0x67')](_0x1b3705['logo'])):path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0x38d761,_[_0x6eec('0x67')](_0x6eec('0x68')));var _0x266689='default'+_[_0x6eec('0x69')](_0x6eec('0x5c'));if(_0x1b3705[_0x266689]||!_0x4c73f2[_0x6eec('0x6a')]){_0x404b64=path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0x38d761,_['toLower'](_0x6eec('0x68')));}if(!fs[_0x6eec('0x66')](_0x404b64)){throw new db[(_0x6eec('0x6b'))][(_0x6eec('0x6c'))](_0x6eec('0x6d'));}return _0x7dd727[_0x6eec('0x6e')](_0x404b64);}})[_0x6eec('0x21')](handleError(_0x7dd727,null));};var utilLicense=require(_0x6eec('0x5f'));exports['getLogoLogin']=function(_0x43d89a,_0x59341a,_0x55b7bb){var _0xd209bc=_0x6eec('0x61');var _0x23a2ba={'custom':![]};return utilLicense['getLicense']()[_0x6eec('0x17')](function(_0x5686e6){if(_0x5686e6){_0x23a2ba=_0x5686e6;}return db[_0x6eec('0x30')][_0x6eec('0x4b')]({'where':{'id':_0x43d89a[_0x6eec('0x48')]['id']},'attributes':[_0x6eec('0x5c'),'loginLogo','preferred','defaultLogo',_0x6eec('0x64'),_0x6eec('0x65')],'raw':!![]});})[_0x6eec('0x17')](handleEntityNotFound(_0x59341a,null))[_0x6eec('0x17')](function(_0x5a286f){if(_0x5a286f){var _0x44302a=_0x5a286f['loginLogo']&&fs[_0x6eec('0x66')](path[_0x6eec('0x4e')](config['root'],_0xd209bc,_[_0x6eec('0x67')](_0x5a286f[_0x6eec('0x5e')])))?path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0xd209bc,_[_0x6eec('0x67')](_0x5a286f[_0x6eec('0x5e')])):path['join'](config[_0x6eec('0x4f')],_0xd209bc,_['toLower'](_0x6eec('0x6f')));var _0x1ae6f8='default'+_[_0x6eec('0x69')]('loginLogo');if(_0x5a286f[_0x1ae6f8]||!_0x23a2ba[_0x6eec('0x6a')]){_0x44302a=path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0xd209bc,_[_0x6eec('0x67')]('default_loginLogo.png'));}if(!fs[_0x6eec('0x66')](_0x44302a)){throw new db['Sequelize'][(_0x6eec('0x6c'))](_0x6eec('0x6d'));}return _0x59341a['download'](_0x44302a);}})[_0x6eec('0x21')](handleError(_0x59341a,null));};exports[_0x6eec('0x70')]=function(_0x3a90cd,_0x328f28){return db[_0x6eec('0x30')]['find']({'where':{'id':_0x3a90cd[_0x6eec('0x48')]['id']},'attributes':[_0x6eec('0x71')]})[_0x6eec('0x17')](respondWithResult(_0x328f28,null))[_0x6eec('0x21')](handleError(_0x328f28,null));};exports[_0x6eec('0x72')]=function(_0x471e01,_0x485d04,_0x4a3af3){if(_0x471e01[_0x6eec('0x5a')]&&_0x471e01[_0x6eec('0x5a')]['filename']){_0x471e01['body'][_0x6eec('0x73')]=_0x471e01[_0x6eec('0x5a')]['filename'];}return db[_0x6eec('0x30')][_0x6eec('0x4b')]({'where':{'id':_0x471e01[_0x6eec('0x48')]['id']}})['then'](handleEntityNotFound(_0x485d04,null))[_0x6eec('0x17')](saveUpdates(_0x471e01['body'],null))[_0x6eec('0x17')](respondWithResult(_0x485d04,null))[_0x6eec('0x21')](handleError(_0x485d04,null));};var utilLicense=require('../../config/license/util');exports[_0x6eec('0x74')]=function(_0x395bda,_0x4215f0,_0x4a7a37){var _0xf4f91=_0x6eec('0x61');var _0x111b1b={'custom':![]};return utilLicense[_0x6eec('0x62')]()[_0x6eec('0x17')](function(_0x36d9bd){if(_0x36d9bd){_0x111b1b=_0x36d9bd;}return db['Setting'][_0x6eec('0x4b')]({'where':{'id':_0x395bda[_0x6eec('0x48')]['id']},'attributes':[_0x6eec('0x5c'),_0x6eec('0x5e'),_0x6eec('0x73'),_0x6eec('0x63'),_0x6eec('0x64'),_0x6eec('0x65')],'raw':!![]});})[_0x6eec('0x17')](handleEntityNotFound(_0x4215f0,null))[_0x6eec('0x17')](function(_0x413743){if(_0x413743){var _0x4015a4=_0x413743['preferred']&&fs[_0x6eec('0x66')](path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0xf4f91,_[_0x6eec('0x67')](_0x413743[_0x6eec('0x73')])))?path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0xf4f91,_[_0x6eec('0x67')](_0x413743[_0x6eec('0x73')])):path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0xf4f91,_[_0x6eec('0x67')](_0x6eec('0x75')));var _0x430f8c=_0x6eec('0x76')+_['upperFirst'](_0x6eec('0x73'));if(_0x413743[_0x430f8c]||!_0x111b1b['custom']||!_0x111b1b[_0x6eec('0x73')]){_0x4015a4=path[_0x6eec('0x4e')](config[_0x6eec('0x4f')],_0xf4f91,_[_0x6eec('0x67')]('default_preferred.png'));}if(!fs[_0x6eec('0x66')](_0x4015a4)){throw new db['Sequelize'][(_0x6eec('0x6c'))](_0x6eec('0x6d'));}return _0x4215f0[_0x6eec('0x6e')](_0x4015a4);}})[_0x6eec('0x21')](handleError(_0x4215f0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b1a=['../../config/logger','api','moment','request-promise','./setting.attributes','exports','Setting','settings','lodash','util'];(function(_0x20f3ef,_0x21485f){var _0x2f734b=function(_0x3939e9){while(--_0x3939e9){_0x20f3ef['push'](_0x20f3ef['shift']());}};_0x2f734b(++_0x21485f);}(_0x6b1a,0x15c));var _0xa6b1=function(_0x348e83,_0x3ad7b5){_0x348e83=_0x348e83-0x0;var _0x2ba419=_0x6b1a[_0x348e83];return _0x2ba419;};'use strict';var _=require(_0xa6b1('0x0'));var util=require(_0xa6b1('0x1'));var logger=require(_0xa6b1('0x2'))(_0xa6b1('0x3'));var moment=require(_0xa6b1('0x4'));var BPromise=require('bluebird');var rp=require(_0xa6b1('0x5'));var attributes=require(_0xa6b1('0x6'));module[_0xa6b1('0x7')]=function(_0x3d2aa2,_0x1fa1eb){return _0x3d2aa2['define'](_0xa6b1('0x8'),attributes,{'tableName':_0xa6b1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x35b9=['api','moment','bluebird','request-promise','exports','define','Setting','util'];(function(_0x7b7e39,_0x5a5a05){var _0x87fa3f=function(_0x1c686d){while(--_0x1c686d){_0x7b7e39['push'](_0x7b7e39['shift']());}};_0x87fa3f(++_0x5a5a05);}(_0x35b9,0x147));var _0x935b=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x35b9[_0x501510];return _0x1e6ee5;};'use strict';var _=require('lodash');var util=require(_0x935b('0x0'));var logger=require('../../config/logger')(_0x935b('0x1'));var moment=require(_0x935b('0x2'));var BPromise=require(_0x935b('0x3'));var rp=require(_0x935b('0x4'));var attributes=require('./setting.attributes');module[_0x935b('0x5')]=function(_0x293f70,_0x86c681){return _0x293f70[_0x935b('0x6')](_0x935b('0x7'),attributes,{'tableName':'settings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd270=['moment','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','info','Setting,\x20%s,\x20%s','request\x20sent','error','code','message','catch'];(function(_0xad8831,_0xea2c3e){var _0x1b07b9=function(_0x1a5ca6){while(--_0x1a5ca6){_0xad8831['push'](_0xad8831['shift']());}};_0x1b07b9(++_0xea2c3e);}(_0xd270,0xf0));var _0x0d27=function(_0x206e59,_0x204450){_0x206e59=_0x206e59-0x0;var _0x5f0aef=_0xd270[_0x206e59];return _0x5f0aef;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x0d27('0x0'));var BPromise=require('bluebird');var rs=require(_0x0d27('0x1'));var fs=require('fs');var db=require(_0x0d27('0x2'))['db'];var utils=require(_0x0d27('0x3'));var logger=require('../../config/logger')(_0x0d27('0x4'));var config=require('../../config/environment');var jayson=require(_0x0d27('0x5'));var client=jayson[_0x0d27('0x6')][_0x0d27('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x66c74,_0x292161,_0x68ef26){return new BPromise(function(_0x1cd12a,_0x48deca){return client['request'](_0x66c74,_0x68ef26)['then'](function(_0xbbd762){logger[_0x0d27('0x8')](_0x0d27('0x9'),_0x292161,_0x0d27('0xa'));logger['debug']('Setting,\x20%s,\x20%s,\x20%s',_0x292161,_0x0d27('0xa'),JSON['stringify'](_0xbbd762));if(_0xbbd762[_0x0d27('0xb')]){if(_0xbbd762[_0x0d27('0xb')][_0x0d27('0xc')]===0x1f4){logger['error'](_0x0d27('0x9'),_0x292161,_0xbbd762[_0x0d27('0xb')][_0x0d27('0xd')]);return _0x48deca(_0xbbd762[_0x0d27('0xb')]['message']);}logger[_0x0d27('0xb')](_0x0d27('0x9'),_0x292161,_0xbbd762[_0x0d27('0xb')][_0x0d27('0xd')]);return _0x1cd12a(_0xbbd762['error'][_0x0d27('0xd')]);}else{logger['info'](_0x0d27('0x9'),_0x292161,_0x0d27('0xa'));_0x1cd12a(_0xbbd762['result'][_0x0d27('0xd')]);}})[_0x0d27('0xe')](function(_0x2b0412){logger['error'](_0x0d27('0x9'),_0x292161,_0x2b0412);_0x48deca(_0x2b0412);});});}
\ No newline at end of file
+var _0xdf4e=['error','Setting,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','Setting,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x2bf90e,_0x38357c){var _0x502601=function(_0x2420bb){while(--_0x2420bb){_0x2bf90e['push'](_0x2bf90e['shift']());}};_0x502601(++_0x38357c);}(_0xdf4e,0x17a));var _0xedf4=function(_0x13cab0,_0x14d825){_0x13cab0=_0x13cab0-0x0;var _0x38804f=_0xdf4e[_0x13cab0];return _0x38804f;};'use strict';var _=require(_0xedf4('0x0'));var util=require(_0xedf4('0x1'));var moment=require(_0xedf4('0x2'));var BPromise=require(_0xedf4('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xedf4('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xedf4('0x5'));var logger=require(_0xedf4('0x6'))(_0xedf4('0x7'));var config=require(_0xedf4('0x8'));var jayson=require(_0xedf4('0x9'));var client=jayson[_0xedf4('0xa')][_0xedf4('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2f6eb1,_0x5765fc,_0x36c1b4){return new BPromise(function(_0x57a83e,_0x488a55){return client[_0xedf4('0xc')](_0x2f6eb1,_0x36c1b4)[_0xedf4('0xd')](function(_0x536b28){logger[_0xedf4('0xe')]('Setting,\x20%s,\x20%s',_0x5765fc,_0xedf4('0xf'));logger['debug'](_0xedf4('0x10'),_0x5765fc,_0xedf4('0xf'),JSON[_0xedf4('0x11')](_0x536b28));if(_0x536b28[_0xedf4('0x12')]){if(_0x536b28['error']['code']===0x1f4){logger['error'](_0xedf4('0x13'),_0x5765fc,_0x536b28[_0xedf4('0x12')][_0xedf4('0x14')]);return _0x488a55(_0x536b28['error'][_0xedf4('0x14')]);}logger[_0xedf4('0x12')]('Setting,\x20%s,\x20%s',_0x5765fc,_0x536b28[_0xedf4('0x12')][_0xedf4('0x14')]);return _0x57a83e(_0x536b28[_0xedf4('0x12')][_0xedf4('0x14')]);}else{logger[_0xedf4('0xe')](_0xedf4('0x13'),_0x5765fc,_0xedf4('0xf'));_0x57a83e(_0x536b28[_0xedf4('0x15')]['message']);}})['catch'](function(_0x10efdb){logger[_0xedf4('0x12')](_0xedf4('0x13'),_0x5765fc,_0x10efdb);_0x488a55(_0x10efdb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7764=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsAccount.controller','index','get','isAuthenticated','describe','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','statusGet','/:id/users','getAgents','post','create','addDisposition','addAnswer','/:id/notify','addApplications','/:id/send','/:id/status','status','addAgents','put','update','delete','removeDispositions','removeAgents','exports'];(function(_0x39170c,_0x373996){var _0x5e455d=function(_0x4ad8f3){while(--_0x4ad8f3){_0x39170c['push'](_0x39170c['shift']());}};_0x5e455d(++_0x373996);}(_0x7764,0xa4));var _0x4776=function(_0x4bfac3,_0x58324d){_0x4bfac3=_0x4bfac3-0x0;var _0x15f0f2=_0x7764[_0x4bfac3];return _0x15f0f2;};'use strict';var multer=require(_0x4776('0x0'));var util=require(_0x4776('0x1'));var path=require(_0x4776('0x2'));var timeout=require(_0x4776('0x3'));var express=require(_0x4776('0x4'));var router=express[_0x4776('0x5')]();var auth=require(_0x4776('0x6'));var interaction=require(_0x4776('0x7'));var config=require(_0x4776('0x8'));var controller=require(_0x4776('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x4776('0xa')]);router[_0x4776('0xb')]('/describe',auth[_0x4776('0xc')](),controller[_0x4776('0xd')]);router['get']('/:id',auth[_0x4776('0xc')](),controller['show']);router[_0x4776('0xb')](_0x4776('0xe'),auth[_0x4776('0xc')](),controller[_0x4776('0xf')]);router[_0x4776('0xb')](_0x4776('0x10'),auth[_0x4776('0xc')](),controller[_0x4776('0x11')]);router[_0x4776('0xb')](_0x4776('0x12'),auth[_0x4776('0xc')](),controller[_0x4776('0x13')]);router[_0x4776('0xb')](_0x4776('0x14'),auth[_0x4776('0xc')](),controller[_0x4776('0x15')]);router['get']('/:id/status',controller[_0x4776('0x16')]);router[_0x4776('0xb')](_0x4776('0x17'),auth[_0x4776('0xc')](),controller[_0x4776('0x18')]);router[_0x4776('0x19')]('/',auth[_0x4776('0xc')](),controller[_0x4776('0x1a')]);router[_0x4776('0x19')](_0x4776('0xe'),auth['isAuthenticated'](),controller[_0x4776('0x1b')]);router['post'](_0x4776('0x10'),auth[_0x4776('0xc')](),controller[_0x4776('0x1c')]);router[_0x4776('0x19')](_0x4776('0x1d'),controller['notify']);router[_0x4776('0x19')](_0x4776('0x12'),auth['isAuthenticated'](),controller[_0x4776('0x1e')]);router[_0x4776('0x19')](_0x4776('0x1f'),auth[_0x4776('0xc')](),controller['send']);router[_0x4776('0x19')](_0x4776('0x20'),controller[_0x4776('0x21')]);router[_0x4776('0x19')]('/:id/users',auth[_0x4776('0xc')](),controller[_0x4776('0x22')]);router[_0x4776('0x23')]('/:id',auth[_0x4776('0xc')](),controller[_0x4776('0x24')]);router[_0x4776('0x25')]('/:id',auth['isAuthenticated'](),controller['destroy']);router[_0x4776('0x25')](_0x4776('0xe'),auth[_0x4776('0xc')](),controller[_0x4776('0x26')]);router[_0x4776('0x25')](_0x4776('0x10'),auth[_0x4776('0xc')](),controller['removeAnswers']);router[_0x4776('0x25')](_0x4776('0x17'),auth['isAuthenticated'](),controller[_0x4776('0x27')]);module[_0x4776('0x28')]=router;
\ No newline at end of file
+var _0xc73e=['/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status','/:id/users','getAgents','post','create','addDisposition','/:id/canned_answers','addAnswer','/:id/notify','notify','addApplications','/:id/send','send','status','addAgents','update','destroy','delete','/:id/dispositions','removeDispositions','removeAnswers','removeAgents','exports','multer','util','connect-timeout','express','../../config/environment','./smsAccount.controller','isAuthenticated','index','get','/describe','describe','/:id','show','getDispositions','getAnswers'];(function(_0x34e747,_0x173163){var _0x200a90=function(_0x2cfb42){while(--_0x2cfb42){_0x34e747['push'](_0x34e747['shift']());}};_0x200a90(++_0x173163);}(_0xc73e,0x1e9));var _0xec73=function(_0x285ebf,_0x95b935){_0x285ebf=_0x285ebf-0x0;var _0x14e70d=_0xc73e[_0x285ebf];return _0x14e70d;};'use strict';var multer=require(_0xec73('0x0'));var util=require(_0xec73('0x1'));var path=require('path');var timeout=require(_0xec73('0x2'));var express=require(_0xec73('0x3'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xec73('0x4'));var controller=require(_0xec73('0x5'));router['get']('/',auth[_0xec73('0x6')](),controller[_0xec73('0x7')]);router[_0xec73('0x8')](_0xec73('0x9'),auth['isAuthenticated'](),controller[_0xec73('0xa')]);router['get'](_0xec73('0xb'),auth[_0xec73('0x6')](),controller[_0xec73('0xc')]);router[_0xec73('0x8')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0xec73('0xd')]);router[_0xec73('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller[_0xec73('0xe')]);router[_0xec73('0x8')](_0xec73('0xf'),auth[_0xec73('0x6')](),controller[_0xec73('0x10')]);router[_0xec73('0x8')](_0xec73('0x11'),auth['isAuthenticated'](),controller[_0xec73('0x12')]);router['get'](_0xec73('0x13'),controller['statusGet']);router[_0xec73('0x8')](_0xec73('0x14'),auth[_0xec73('0x6')](),controller[_0xec73('0x15')]);router[_0xec73('0x16')]('/',auth[_0xec73('0x6')](),controller[_0xec73('0x17')]);router[_0xec73('0x16')]('/:id/dispositions',auth[_0xec73('0x6')](),controller[_0xec73('0x18')]);router[_0xec73('0x16')](_0xec73('0x19'),auth[_0xec73('0x6')](),controller[_0xec73('0x1a')]);router['post'](_0xec73('0x1b'),controller[_0xec73('0x1c')]);router[_0xec73('0x16')]('/:id/applications',auth[_0xec73('0x6')](),controller[_0xec73('0x1d')]);router[_0xec73('0x16')](_0xec73('0x1e'),auth[_0xec73('0x6')](),controller[_0xec73('0x1f')]);router['post']('/:id/status',controller[_0xec73('0x20')]);router[_0xec73('0x16')](_0xec73('0x14'),auth[_0xec73('0x6')](),controller[_0xec73('0x21')]);router['put'](_0xec73('0xb'),auth['isAuthenticated'](),controller[_0xec73('0x22')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xec73('0x23')]);router[_0xec73('0x24')](_0xec73('0x25'),auth[_0xec73('0x6')](),controller[_0xec73('0x26')]);router['delete']('/:id/canned_answers',auth[_0xec73('0x6')](),controller[_0xec73('0x27')]);router['delete'](_0xec73('0x14'),auth[_0xec73('0x6')](),controller[_0xec73('0x28')]);module[_0xec73('0x29')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe39e=['infobip','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','exports','name','STRING','ENUM','twilio','skebby','clicksend','plivo','csc'];(function(_0x58c101,_0x25a536){var _0x1e9c08=function(_0x31201e){while(--_0x31201e){_0x58c101['push'](_0x58c101['shift']());}};_0x1e9c08(++_0x25a536);}(_0xe39e,0x86));var _0xee39=function(_0x48fec7,_0x30b839){_0x48fec7=_0x48fec7-0x0;var _0x4f43de=_0xe39e[_0x48fec7];return _0x4f43de;};'use strict';var Sequelize=require('sequelize');var rs=require('randomstring');module[_0xee39('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0xee39('0x1'),'allowNull':![]},'key':{'type':Sequelize[_0xee39('0x2')],'allowNull':![]},'remote':{'type':Sequelize[_0xee39('0x2')],'allowNull':![]},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs['generate']();}},'phone':{'type':Sequelize[_0xee39('0x2')]},'type':{'type':Sequelize[_0xee39('0x3')](_0xee39('0x4'),_0xee39('0x5'),'connectel',_0xee39('0x6'),_0xee39('0x7'),'clickatell',_0xee39('0x8'),_0xee39('0x9'))},'accountSid':{'type':Sequelize[_0xee39('0x2')]},'authId':{'type':Sequelize[_0xee39('0x2')]},'authToken':{'type':Sequelize[_0xee39('0x2')]},'smsMethod':{'type':Sequelize[_0xee39('0x3')]('SI','TI','GP')},'username':{'type':Sequelize[_0xee39('0x2')]},'password':{'type':Sequelize[_0xee39('0x2')]},'apiKey':{'type':Sequelize[_0xee39('0x2')]},'senderString':{'type':Sequelize['STRING']},'deliveryReport':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'description':{'type':Sequelize[_0xee39('0x2')]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0xee39('0xa');}},'notificationSound':{'type':Sequelize[_0xee39('0xb')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xee39('0xb')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xee39('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xee39('0xb')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xee39('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xee39('0xb')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0xee39('0x2')]}};
\ No newline at end of file
+var _0x135e=['generate','ENUM','twilio','connectel','clicksend','plivo','infobip','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','randomstring','exports','STRING','name'];(function(_0x1c2ad3,_0x1105eb){var _0x383430=function(_0xdb15f){while(--_0xdb15f){_0x1c2ad3['push'](_0x1c2ad3['shift']());}};_0x383430(++_0x1105eb);}(_0x135e,0x191));var _0xe135=function(_0x1ece79,_0x1bfcd3){_0x1ece79=_0x1ece79-0x0;var _0x55b51b=_0x135e[_0x1ece79];return _0x55b51b;};'use strict';var Sequelize=require('sequelize');var rs=require(_0xe135('0x0'));module[_0xe135('0x1')]={'name':{'type':Sequelize[_0xe135('0x2')],'unique':_0xe135('0x3'),'allowNull':![]},'key':{'type':Sequelize[_0xe135('0x2')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0xe135('0x2')],'defaultValue':function(){return rs[_0xe135('0x4')]();}},'phone':{'type':Sequelize[_0xe135('0x2')]},'type':{'type':Sequelize[_0xe135('0x5')](_0xe135('0x6'),'skebby',_0xe135('0x7'),_0xe135('0x8'),_0xe135('0x9'),'clickatell','csc',_0xe135('0xa'))},'accountSid':{'type':Sequelize[_0xe135('0x2')]},'authId':{'type':Sequelize[_0xe135('0x2')]},'authToken':{'type':Sequelize['STRING']},'smsMethod':{'type':Sequelize[_0xe135('0x5')]('SI','TI','GP')},'username':{'type':Sequelize[_0xe135('0x2')]},'password':{'type':Sequelize[_0xe135('0x2')]},'apiKey':{'type':Sequelize[_0xe135('0x2')]},'senderString':{'type':Sequelize[_0xe135('0x2')]},'deliveryReport':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'description':{'type':Sequelize[_0xe135('0x2')]},'notificationTemplate':{'type':Sequelize[_0xe135('0xb')],'defaultValue':function(){return _0xe135('0xc');}},'notificationSound':{'type':Sequelize[_0xe135('0xd')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xe135('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xe135('0xd')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xe135('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xe135('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd90f=['body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','user','SmsMessage','Messages','spread','dataValues','log','endpoint\x20/status\x20POST\x20/','received\x20delivery\x20report\x20from','inspect','skebby_dispatch_id','statusInt','clicksend','status_code','groupName','DELIVERED','error_code','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','statusGet','message-id','state','addAgents','emit','removeAgents','isArray','userSmsAccount:remove','getAgents','html-pdf','rimraf','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','name','send','SmsAccount','model','keys','query','dateEnd','dateStart','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','count','include','findAll','rows','show','params','rawAttributes','includeAll','find','create','body','destroy','describe','addDisposition','Disposition','getDispositions','findOne','SmsAccountId','removeDispositions','addAnswer','CannedAnswer','removeAnswers','ids','notify','sms','SmsApplication','account','applications','orderBy','Applications','priority','asc','CmContact','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','type','twilio','from','Body','MessageSid','skebby','connectel','messageId','message_id','plivo','Text','MessageUUID','infobip','results','text','csc','originatingAddress','segmentedMessage','clickatell','fromNumber','isNil','Sequelize','from\x20is\x20mandatory','ValidationError','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','DESC','list','omit','SmsInteraction','get','interaction','push','unmanaged','created','ContactId','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','receiveMessage','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','entity\x20found','set','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','addApplications','sequelize','bulkCreate','findAndCountAll','getApplications','getInteractions','Contact','Owner','fullname','internal','Tags','color','tag'];(function(_0x704de0,_0x11a37a){var _0x465477=function(_0x75cf43){while(--_0x75cf43){_0x704de0['push'](_0x704de0['shift']());}};_0x465477(++_0x11a37a);}(_0xd90f,0xf5));var _0xfd90=function(_0x841b,_0x1dde05){_0x841b=_0x841b-0x0;var _0x3c566e=_0xd90f[_0x841b];return _0x3c566e;};'use strict';var pdf=require(_0xfd90('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xfd90('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xfd90('0x2'));var moment=require(_0xfd90('0x3'));var BPromise=require(_0xfd90('0x4'));var Mustache=require('mustache');var util=require(_0xfd90('0x5'));var path=require(_0xfd90('0x6'));var sox=require(_0xfd90('0x7'));var csv=require(_0xfd90('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xfd90('0x9'));var squel=require(_0xfd90('0xa'));var crypto=require(_0xfd90('0xb'));var jsforce=require(_0xfd90('0xc'));var deskjs=require(_0xfd90('0xd'));var toCsv=require('to-csv');var querystring=require(_0xfd90('0xe'));var Papa=require(_0xfd90('0xf'));var qs=require(_0xfd90('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xfd90('0x11'));var config=require(_0xfd90('0x12'));var db=require(_0xfd90('0x13'))['db'];config['redis']=_[_0xfd90('0x14')](config[_0xfd90('0x15')],{'host':_0xfd90('0x16'),'port':0x18eb});var socket=require(_0xfd90('0x17'))(config[_0xfd90('0x15')]);require('./smsAccount.socket')[_0xfd90('0x18')](socket);var jayson=require(_0xfd90('0x19'));var client=jayson[_0xfd90('0x1a')][_0xfd90('0x1b')]({'port':0x232c});function respondWithRpcPromise(_0x1e504a,_0xa44d46,_0x5176f9,_0x1a21d4){return new BPromise(function(_0x48bcca,_0x4975ff){var _0x633412=_0x1a21d4||client;return _0x633412[_0xfd90('0x1c')](_0x1e504a,_0x5176f9)[_0xfd90('0x1d')](function(_0x468406){logger[_0xfd90('0x1e')](_0xfd90('0x1f'),_0xa44d46,_0xfd90('0x20'));logger[_0xfd90('0x21')](_0xfd90('0x22'),_0xa44d46,'request\x20sent',JSON[_0xfd90('0x23')](_0x468406));if(_0x468406['error']){if(_0x468406['error'][_0xfd90('0x24')]===0x1f4){logger[_0xfd90('0x25')](_0xfd90('0x1f'),_0xa44d46,_0x468406[_0xfd90('0x25')][_0xfd90('0x26')]);return _0x4975ff(_0x468406['error']['message']);}logger[_0xfd90('0x25')](_0xfd90('0x1f'),_0xa44d46,_0x468406[_0xfd90('0x25')][_0xfd90('0x26')]);return _0x48bcca(_0x468406[_0xfd90('0x25')]['message']);}else{logger[_0xfd90('0x1e')](_0xfd90('0x1f'),_0xa44d46,'request\x20sent');_0x48bcca(_0x468406[_0xfd90('0x27')][_0xfd90('0x26')]);}})[_0xfd90('0x28')](function(_0x1b3bdf){logger[_0xfd90('0x25')]('SmsAccount,\x20%s,\x20%s',_0xa44d46,_0x1b3bdf);_0x4975ff(_0x1b3bdf);});});}function respondWithStatusCode(_0x4b4785,_0x4d4485){_0x4d4485=_0x4d4485||0xcc;return function(_0x58ee50){if(_0x58ee50){return _0x4b4785[_0xfd90('0x29')](_0x4d4485);}return _0x4b4785[_0xfd90('0x2a')](_0x4d4485)[_0xfd90('0x2b')]();};}function respondWithResult(_0xe7ec29,_0x5b7690){_0x5b7690=_0x5b7690||0xc8;return function(_0x458232){if(_0x458232){return _0xe7ec29['status'](_0x5b7690)[_0xfd90('0x2c')](_0x458232);}};}function respondWithFilteredResult(_0x4df19b,_0x51e733){return function(_0x58aac6){if(_0x58aac6){var _0x35f41e=_0x58aac6['count'],_0x367291=_0x51e733[_0xfd90('0x2d')],_0x3e454d=_0x51e733[_0xfd90('0x2d')]+_0x51e733[_0xfd90('0x2e')],_0x2fc56b;if(_0x3e454d>=_0x35f41e){_0x3e454d=_0x35f41e;_0x2fc56b=0xc8;}else{_0x2fc56b=0xce;}_0x4df19b[_0xfd90('0x2a')](_0x2fc56b);return _0x4df19b['set'](_0xfd90('0x2f'),_0x367291+'-'+_0x3e454d+'/'+_0x35f41e)['json'](_0x58aac6);}return null;};}function patchUpdates(_0x1a31ae){return function(_0x418d9d){try{jsonpatch[_0xfd90('0x30')](_0x418d9d,_0x1a31ae,!![]);}catch(_0x1ff3cb){return BPromise[_0xfd90('0x31')](_0x1ff3cb);}return _0x418d9d[_0xfd90('0x32')]();};}function saveUpdates(_0x16f74d,_0x5b75df){return function(_0x1f0241){if(_0x1f0241){return _0x1f0241[_0xfd90('0x33')](_0x16f74d)[_0xfd90('0x1d')](function(_0x165ee6){return _0x165ee6;});}return null;};}function removeEntity(_0x5db771,_0x2c564f){return function(_0x13dce9){if(_0x13dce9){return _0x13dce9['destroy']()['then'](function(){_0x5db771[_0xfd90('0x2a')](0xcc)[_0xfd90('0x2b')]();});}};}function handleEntityNotFound(_0x2cad20,_0x2d2220){return function(_0x3e63ea){if(!_0x3e63ea){_0x2cad20[_0xfd90('0x29')](0x194);}return _0x3e63ea;};}function handleError(_0x5cfc7a,_0x154d8f){_0x154d8f=_0x154d8f||0x1f4;return function(_0x29ade9){logger[_0xfd90('0x25')](_0x29ade9['stack']);if(_0x29ade9[_0xfd90('0x34')]){delete _0x29ade9[_0xfd90('0x34')];}_0x5cfc7a['status'](_0x154d8f)[_0xfd90('0x35')](_0x29ade9);};}exports['index']=function(_0x292cad,_0x56abf5){var _0x539b8a={},_0x390382={},_0x4b5aff={'count':0x0,'rows':[]};var _0x23a005=db[_0xfd90('0x36')]['rawAttributes'];_0x390382[_0xfd90('0x37')]=_[_0xfd90('0x38')](_0x23a005);var _0xdc26e7={'dateStart':_0x292cad['query']['dateStart'],'dateEnd':_0x292cad[_0xfd90('0x39')][_0xfd90('0x3a')]};delete _0x292cad[_0xfd90('0x39')][_0xfd90('0x3b')];delete _0x292cad[_0xfd90('0x39')][_0xfd90('0x3a')];_0x390382[_0xfd90('0x39')]=_[_0xfd90('0x38')](_0x292cad['query']);_0x390382[_0xfd90('0x3c')]=_[_0xfd90('0x3d')](_0x390382[_0xfd90('0x37')],_0x390382[_0xfd90('0x39')]);_0x539b8a[_0xfd90('0x3e')]=_['intersection'](_0x390382[_0xfd90('0x37')],qs[_0xfd90('0x3f')](_0x292cad[_0xfd90('0x39')][_0xfd90('0x3f')]));_0x539b8a[_0xfd90('0x3e')]=_0x539b8a[_0xfd90('0x3e')][_0xfd90('0x40')]?_0x539b8a[_0xfd90('0x3e')]:_0x390382[_0xfd90('0x37')];if(!_0x292cad['query'][_0xfd90('0x41')](_0xfd90('0x42'))){_0x539b8a[_0xfd90('0x2e')]=qs['limit'](_0x292cad[_0xfd90('0x39')][_0xfd90('0x2e')]);_0x539b8a['offset']=qs[_0xfd90('0x2d')](_0x292cad[_0xfd90('0x39')]['offset']);}_0x539b8a[_0xfd90('0x43')]=qs[_0xfd90('0x44')](_0x292cad[_0xfd90('0x39')]['sort']);_0x539b8a[_0xfd90('0x45')]=qs[_0xfd90('0x3c')](_[_0xfd90('0x46')](_0x292cad['query'],_0x390382['filters']));if(_0xdc26e7[_0xfd90('0x3b')]){if(_0xdc26e7[_0xfd90('0x3a')]){_0xdc26e7[_0xfd90('0x3a')]=moment(_0xdc26e7[_0xfd90('0x3a')])[_0xfd90('0x47')](0x1,_0xfd90('0x48'));}else{_0xdc26e7['dateEnd']=moment(_0xdc26e7[_0xfd90('0x3b')])[_0xfd90('0x47')](0x1,_0xfd90('0x48'));}_[_0xfd90('0x49')](_0x539b8a[_0xfd90('0x45')],{'createdAt':{'$gte':_0xdc26e7[_0xfd90('0x3b')],'$lte':_0xdc26e7['dateEnd']}});}if(_0x292cad[_0xfd90('0x39')][_0xfd90('0x4a')]){_0x539b8a[_0xfd90('0x45')]=_[_0xfd90('0x49')](_0x539b8a[_0xfd90('0x45')],{'$or':_[_0xfd90('0x4b')](_0x539b8a[_0xfd90('0x3e')],function(_0x2633b2){var _0x8006b0={};_0x8006b0[_0x2633b2]={'$like':'%'+_0x292cad[_0xfd90('0x39')][_0xfd90('0x4a')]+'%'};return _0x8006b0;})});}_0x539b8a=_[_0xfd90('0x49')]({},_0x539b8a,_0x292cad[_0xfd90('0x4c')]);var _0x190eef={'where':_0x539b8a[_0xfd90('0x45')]};return db[_0xfd90('0x36')][_0xfd90('0x4d')](_0x190eef)[_0xfd90('0x1d')](function(_0x1fdbf0){_0x4b5aff[_0xfd90('0x4d')]=_0x1fdbf0;if(_0x292cad[_0xfd90('0x39')]['includeAll']){_0x539b8a[_0xfd90('0x4e')]=[{'all':!![]}];}return db[_0xfd90('0x36')][_0xfd90('0x4f')](_0x539b8a);})[_0xfd90('0x1d')](function(_0x120731){_0x4b5aff[_0xfd90('0x50')]=_0x120731;return _0x4b5aff;})['then'](respondWithFilteredResult(_0x56abf5,_0x539b8a))[_0xfd90('0x28')](handleError(_0x56abf5,null));};exports[_0xfd90('0x51')]=function(_0x12db96,_0x2bc87d){var _0x2c090a={'raw':![],'where':{'id':_0x12db96[_0xfd90('0x52')]['id']}},_0x5f1dec={};_0x5f1dec[_0xfd90('0x37')]=_['keys'](db[_0xfd90('0x36')][_0xfd90('0x53')]);_0x5f1dec[_0xfd90('0x39')]=_[_0xfd90('0x38')](_0x12db96[_0xfd90('0x39')]);_0x5f1dec[_0xfd90('0x3c')]=_[_0xfd90('0x3d')](_0x5f1dec[_0xfd90('0x37')],_0x5f1dec[_0xfd90('0x39')]);_0x2c090a['attributes']=_[_0xfd90('0x3d')](_0x5f1dec['model'],qs['fields'](_0x12db96['query'][_0xfd90('0x3f')]));_0x2c090a[_0xfd90('0x3e')]=_0x2c090a[_0xfd90('0x3e')][_0xfd90('0x40')]?_0x2c090a[_0xfd90('0x3e')]:_0x5f1dec[_0xfd90('0x37')];if(_0x12db96[_0xfd90('0x39')][_0xfd90('0x54')]){_0x2c090a['include']=[{'all':!![]}];}_0x2c090a=_[_0xfd90('0x49')]({},_0x2c090a,_0x12db96[_0xfd90('0x4c')]);return db[_0xfd90('0x36')][_0xfd90('0x55')](_0x2c090a)[_0xfd90('0x1d')](handleEntityNotFound(_0x2bc87d,null))[_0xfd90('0x1d')](respondWithResult(_0x2bc87d,null))[_0xfd90('0x28')](handleError(_0x2bc87d,null));};exports[_0xfd90('0x56')]=function(_0x93d88a,_0x3a1a5f){return db[_0xfd90('0x36')][_0xfd90('0x56')](_0x93d88a[_0xfd90('0x57')],{})[_0xfd90('0x1d')](respondWithResult(_0x3a1a5f,0xc9))[_0xfd90('0x28')](handleError(_0x3a1a5f,null));};exports['update']=function(_0x1bb590,_0x486e82){if(_0x1bb590['body']['id']){delete _0x1bb590['body']['id'];}return db[_0xfd90('0x36')][_0xfd90('0x55')]({'where':{'id':_0x1bb590[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x486e82,null))[_0xfd90('0x1d')](saveUpdates(_0x1bb590[_0xfd90('0x57')],null))[_0xfd90('0x1d')](respondWithResult(_0x486e82,null))['catch'](handleError(_0x486e82,null));};exports[_0xfd90('0x58')]=function(_0x5baeb6,_0x5b1d84){return db[_0xfd90('0x36')][_0xfd90('0x55')]({'where':{'id':_0x5baeb6[_0xfd90('0x52')]['id']}})['then'](handleEntityNotFound(_0x5b1d84,null))['then'](removeEntity(_0x5b1d84,null))[_0xfd90('0x28')](handleError(_0x5b1d84,null));};exports[_0xfd90('0x59')]=function(_0x5051ab,_0x310060){return db['SmsAccount'][_0xfd90('0x59')]()[_0xfd90('0x1d')](respondWithResult(_0x310060,null))[_0xfd90('0x28')](handleError(_0x310060,null));};exports[_0xfd90('0x5a')]=function(_0x390748,_0xf2e6eb,_0x56f3dd){if(_0x390748[_0xfd90('0x57')]['id']){delete _0x390748[_0xfd90('0x57')]['id'];}return db[_0xfd90('0x36')][_0xfd90('0x55')]({'where':{'id':_0x390748[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0xf2e6eb,null))['then'](function(_0x2333ae){if(_0x2333ae){_0x390748[_0xfd90('0x57')]['SmsAccountId']=_0x2333ae['id'];return db[_0xfd90('0x5b')]['create'](_0x390748[_0xfd90('0x57')]);}})['then'](respondWithResult(_0xf2e6eb,null))['catch'](handleError(_0xf2e6eb,null));};exports[_0xfd90('0x5c')]=function(_0x44d7e4,_0x37326a,_0x53d684){var _0x1dee5d={'raw':![],'where':{}};var _0x22c794={};var _0xb989db={'count':0x0,'rows':[]};return db[_0xfd90('0x36')][_0xfd90('0x5d')]({'where':{'id':_0x44d7e4[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x37326a,null))[_0xfd90('0x1d')](function(_0x5630fb){if(_0x5630fb){_0x22c794[_0xfd90('0x37')]=_[_0xfd90('0x38')](db['Disposition'][_0xfd90('0x53')]);_0x22c794[_0xfd90('0x39')]=_['keys'](_0x44d7e4[_0xfd90('0x39')]);_0x22c794['filters']=_['intersection'](_0x22c794[_0xfd90('0x37')],_0x22c794['query']);_0x1dee5d[_0xfd90('0x3e')]=_[_0xfd90('0x3d')](_0x22c794['model'],qs[_0xfd90('0x3f')](_0x44d7e4['query'][_0xfd90('0x3f')]));_0x1dee5d['attributes']=_0x1dee5d['attributes'][_0xfd90('0x40')]?_0x1dee5d[_0xfd90('0x3e')]:_0x22c794[_0xfd90('0x37')];if(!_0x44d7e4[_0xfd90('0x39')]['hasOwnProperty']('nolimit')){_0x1dee5d[_0xfd90('0x2e')]=qs['limit'](_0x44d7e4['query']['limit']);_0x1dee5d[_0xfd90('0x2d')]=qs[_0xfd90('0x2d')](_0x44d7e4[_0xfd90('0x39')]['offset']);}_0x1dee5d[_0xfd90('0x43')]=qs[_0xfd90('0x44')](_0x44d7e4[_0xfd90('0x39')][_0xfd90('0x44')]);_0x1dee5d['where']=qs[_0xfd90('0x3c')](_['pick'](_0x44d7e4[_0xfd90('0x39')],_0x22c794[_0xfd90('0x3c')]));_0x1dee5d[_0xfd90('0x45')][_0xfd90('0x5e')]=_0x5630fb['id'];if(_0x44d7e4[_0xfd90('0x39')][_0xfd90('0x4a')]){_0x1dee5d['where']=_[_0xfd90('0x49')](_0x1dee5d['where'],{'$or':_[_0xfd90('0x4b')](_0x1dee5d[_0xfd90('0x3e')],function(_0xec6036){var _0x3f11a6={};_0x3f11a6[_0xec6036]={'$like':'%'+_0x44d7e4[_0xfd90('0x39')][_0xfd90('0x4a')]+'%'};return _0x3f11a6;})});}_0x1dee5d=_['merge']({},_0x1dee5d,_0x44d7e4['options']);return db['Disposition'][_0xfd90('0x4d')]({'where':_0x1dee5d[_0xfd90('0x45')]})['then'](function(_0x4fda23){_0xb989db[_0xfd90('0x4d')]=_0x4fda23;if(_0x44d7e4['query'][_0xfd90('0x54')]){_0x1dee5d[_0xfd90('0x4e')]=[{'all':!![]}];}return db[_0xfd90('0x5b')]['findAll'](_0x1dee5d);})[_0xfd90('0x1d')](function(_0x4fa9c7){_0xb989db[_0xfd90('0x50')]=_0x4fa9c7;return _0xb989db;});}})[_0xfd90('0x1d')](respondWithFilteredResult(_0x37326a,_0x1dee5d))[_0xfd90('0x28')](handleError(_0x37326a,null));};exports[_0xfd90('0x5f')]=function(_0x54ddc2,_0x475ddf,_0x2a098c){var _0xc67879;return db[_0xfd90('0x36')][_0xfd90('0x55')]({'where':{'id':_0x54ddc2[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x475ddf,null))[_0xfd90('0x1d')](function(_0x15eb8c){if(_0x15eb8c){return _0x15eb8c[_0xfd90('0x5f')](_0x54ddc2[_0xfd90('0x39')]['ids']);}})['then'](respondWithStatusCode(_0x475ddf,null))[_0xfd90('0x28')](handleError(_0x475ddf,null));};exports[_0xfd90('0x60')]=function(_0x221978,_0x189a9a,_0x511c2e){if(_0x221978[_0xfd90('0x57')]['id']){delete _0x221978[_0xfd90('0x57')]['id'];}return db['SmsAccount'][_0xfd90('0x55')]({'where':{'id':_0x221978[_0xfd90('0x52')]['id']}})['then'](handleEntityNotFound(_0x189a9a,null))[_0xfd90('0x1d')](function(_0x339034){if(_0x339034){_0x221978[_0xfd90('0x57')][_0xfd90('0x5e')]=_0x339034['id'];return db['CannedAnswer'][_0xfd90('0x56')](_0x221978['body']);}})[_0xfd90('0x1d')](respondWithResult(_0x189a9a,null))[_0xfd90('0x28')](handleError(_0x189a9a,null));};exports['getAnswers']=function(_0x434ac9,_0x51264a,_0x36e474){var _0x2093c8={'raw':![],'where':{}};var _0x42ef43={};var _0x5184c1={'count':0x0,'rows':[]};return db[_0xfd90('0x36')][_0xfd90('0x5d')]({'where':{'id':_0x434ac9[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x51264a,null))[_0xfd90('0x1d')](function(_0x568dd9){if(_0x568dd9){_0x42ef43[_0xfd90('0x37')]=_['keys'](db['CannedAnswer']['rawAttributes']);_0x42ef43[_0xfd90('0x39')]=_[_0xfd90('0x38')](_0x434ac9[_0xfd90('0x39')]);_0x42ef43[_0xfd90('0x3c')]=_['intersection'](_0x42ef43['model'],_0x42ef43[_0xfd90('0x39')]);_0x2093c8['attributes']=_['intersection'](_0x42ef43['model'],qs[_0xfd90('0x3f')](_0x434ac9[_0xfd90('0x39')][_0xfd90('0x3f')]));_0x2093c8[_0xfd90('0x3e')]=_0x2093c8[_0xfd90('0x3e')]['length']?_0x2093c8[_0xfd90('0x3e')]:_0x42ef43['model'];if(!_0x434ac9[_0xfd90('0x39')][_0xfd90('0x41')](_0xfd90('0x42'))){_0x2093c8[_0xfd90('0x2e')]=qs[_0xfd90('0x2e')](_0x434ac9[_0xfd90('0x39')][_0xfd90('0x2e')]);_0x2093c8[_0xfd90('0x2d')]=qs[_0xfd90('0x2d')](_0x434ac9[_0xfd90('0x39')][_0xfd90('0x2d')]);}_0x2093c8[_0xfd90('0x43')]=qs['sort'](_0x434ac9[_0xfd90('0x39')][_0xfd90('0x44')]);_0x2093c8[_0xfd90('0x45')]=qs[_0xfd90('0x3c')](_[_0xfd90('0x46')](_0x434ac9[_0xfd90('0x39')],_0x42ef43[_0xfd90('0x3c')]));_0x2093c8[_0xfd90('0x45')]['SmsAccountId']=_0x568dd9['id'];if(_0x434ac9[_0xfd90('0x39')][_0xfd90('0x4a')]){_0x2093c8[_0xfd90('0x45')]=_[_0xfd90('0x49')](_0x2093c8[_0xfd90('0x45')],{'$or':_[_0xfd90('0x4b')](_0x2093c8['attributes'],function(_0x19839d){var _0x2605ed={};_0x2605ed[_0x19839d]={'$like':'%'+_0x434ac9[_0xfd90('0x39')][_0xfd90('0x4a')]+'%'};return _0x2605ed;})});}_0x2093c8=_[_0xfd90('0x49')]({},_0x2093c8,_0x434ac9['options']);return db['CannedAnswer']['count']({'where':_0x2093c8['where']})['then'](function(_0x3c39b0){_0x5184c1[_0xfd90('0x4d')]=_0x3c39b0;if(_0x434ac9[_0xfd90('0x39')][_0xfd90('0x54')]){_0x2093c8[_0xfd90('0x4e')]=[{'all':!![]}];}return db[_0xfd90('0x61')][_0xfd90('0x4f')](_0x2093c8);})['then'](function(_0x1d9ab2){_0x5184c1[_0xfd90('0x50')]=_0x1d9ab2;return _0x5184c1;});}})['then'](respondWithFilteredResult(_0x51264a,_0x2093c8))[_0xfd90('0x28')](handleError(_0x51264a,null));};exports[_0xfd90('0x62')]=function(_0x59d8ff,_0x128896,_0x3843de){var _0x4fd5be;return db['SmsAccount'][_0xfd90('0x55')]({'where':{'id':_0x59d8ff[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x128896,null))['then'](function(_0x47572b){if(_0x47572b){return _0x47572b[_0xfd90('0x62')](_0x59d8ff['query'][_0xfd90('0x63')]);}})[_0xfd90('0x1d')](respondWithStatusCode(_0x128896,null))[_0xfd90('0x28')](handleError(_0x128896,null));};exports[_0xfd90('0x64')]=function(_0x2c71cc,_0x59f74a,_0x4ffa9d){var _0x3551cc={'channel':_0xfd90('0x65')};var _0x1b6eba=[];var _0x2940ba=[];var _0x34f205={};return db[_0xfd90('0x36')][_0xfd90('0x55')]({'where':{'id':_0x2c71cc[_0xfd90('0x52')]['id']},'include':[{'model':db[_0xfd90('0x66')],'as':'Applications'}]})[_0xfd90('0x1d')](handleEntityNotFound(_0x59f74a,null))[_0xfd90('0x1d')](function(_0x10dc0b){_0x3551cc[_0xfd90('0x67')]=_0x10dc0b;_0x3551cc[_0xfd90('0x68')]=_[_0xfd90('0x69')](_0x10dc0b[_0xfd90('0x6a')],[_0xfd90('0x6b')],[_0xfd90('0x6c')]);if(_0x3551cc[_0xfd90('0x67')][_0xfd90('0x6a')]){delete _0x3551cc[_0xfd90('0x67')][_0xfd90('0x6a')];}return db[_0xfd90('0x6d')][_0xfd90('0x59')]();})[_0xfd90('0x1d')](function(_0x4330f6){if(!_0x4330f6){throw new db['Sequelize']['ValidationError'](_0xfd90('0x6e'));}_0x1b6eba=_[_0xfd90('0x6f')](_['keys'](_0x4330f6),[_0xfd90('0x70'),'updatedAt']);_0x2940ba=_[_0xfd90('0x6f')](_['keys'](_0x4330f6),[_0xfd90('0x70'),_0xfd90('0x71'),_0xfd90('0x72'),_0xfd90('0x73')]);_0x3551cc[_0xfd90('0x57')]={'mapKey':'mobile'};if(_0x3551cc['account'][_0xfd90('0x74')]){switch(_0x3551cc[_0xfd90('0x67')][_0xfd90('0x74')]){case _0xfd90('0x75'):_0x3551cc['body'][_0xfd90('0x76')]=_0x2c71cc[_0xfd90('0x57')]['From'];_0x3551cc['body'][_0xfd90('0x57')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x77')];_0x3551cc[_0xfd90('0x57')]['messageId']=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x78')];break;case _0xfd90('0x79'):_0x3551cc[_0xfd90('0x57')]['from']='+'+_0x2c71cc[_0xfd90('0x57')]['sender'];_0x3551cc[_0xfd90('0x57')]['body']=_0x2c71cc[_0xfd90('0x57')]['text'];break;case _0xfd90('0x7a'):_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x76')];_0x3551cc['body']['body']=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x26')];break;case'clicksend':_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x76')];_0x3551cc[_0xfd90('0x57')][_0xfd90('0x57')]=_0x2c71cc['body'][_0xfd90('0x57')];_0x3551cc[_0xfd90('0x57')][_0xfd90('0x7b')]=_0x2c71cc['body'][_0xfd90('0x7c')];break;case _0xfd90('0x7d'):_0x3551cc['body'][_0xfd90('0x76')]=_0x2c71cc[_0xfd90('0x57')]['From'];_0x3551cc[_0xfd90('0x57')][_0xfd90('0x57')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x7e')];_0x3551cc[_0xfd90('0x57')][_0xfd90('0x7b')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x7f')];break;case _0xfd90('0x80'):_0x3551cc['body'][_0xfd90('0x76')]='+'+_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x81')][0x0][_0xfd90('0x76')];_0x3551cc['body'][_0xfd90('0x57')]=_0x2c71cc['body']['results'][0x0][_0xfd90('0x82')];_0x3551cc[_0xfd90('0x57')]['messageId']=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x81')][0x0][_0xfd90('0x7b')];break;case _0xfd90('0x83'):_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x84')];_0x3551cc['body'][_0xfd90('0x57')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x85')]['message'];break;case _0xfd90('0x86'):_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x87')];_0x3551cc[_0xfd90('0x57')][_0xfd90('0x57')]=_0x2c71cc[_0xfd90('0x57')][_0xfd90('0x82')];_0x3551cc['body'][_0xfd90('0x7b')]=_0x2c71cc[_0xfd90('0x57')]['replyMessageId'];break;}}if(_0x3551cc[_0xfd90('0x57')]['id']){delete _0x3551cc['body']['id'];}if(_[_0xfd90('0x88')](_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')])){throw new db[(_0xfd90('0x89'))]['ValidationError'](_0xfd90('0x8a'));}if(_[_0xfd90('0x88')](_0x3551cc[_0xfd90('0x57')][_0xfd90('0x57')])||_0x3551cc[_0xfd90('0x57')][_0xfd90('0x57')]===''){throw new db[(_0xfd90('0x89'))][(_0xfd90('0x8b'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xfd90('0x88')](_0x3551cc[_0xfd90('0x57')][_0xfd90('0x8c')])){throw new db[(_0xfd90('0x89'))][(_0xfd90('0x8b'))](_0xfd90('0x8d')+_0x2940ba);}if(!_[_0xfd90('0x8e')](_0x2940ba,_0x3551cc[_0xfd90('0x57')][_0xfd90('0x8c')])){throw new db[(_0xfd90('0x89'))][(_0xfd90('0x8b'))](_0xfd90('0x8f')+_0x2940ba);}_0x34f205[_0x3551cc['body'][_0xfd90('0x8c')]]=_0x3551cc['body'][_0xfd90('0x76')];return db[_0xfd90('0x90')][_0xfd90('0x55')]({'where':{'id':_0x3551cc[_0xfd90('0x67')][_0xfd90('0x73')]},'include':[{'model':db[_0xfd90('0x6d')],'as':_0xfd90('0x91'),'where':_0x34f205,'limit':0x1,'order':[[_0xfd90('0x71'),_0xfd90('0x92')]]}]});})['then'](handleEntityNotFound(_0x59f74a,null))['then'](function(_0x3f723e){if(_0x3f723e){_0x3551cc[_0xfd90('0x93')]=_[_0xfd90('0x94')](_0x3f723e,[_0xfd90('0x91')]);if(_0x3f723e[_0xfd90('0x91')][_0xfd90('0x40')]){return _0x3f723e[_0xfd90('0x91')][0x0];}var _0xa2bc34=_['defaults'](_0x3551cc[_0xfd90('0x57')],{'firstName':_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')],'ListId':_0x3f723e['id']});_0xa2bc34[_0x3551cc[_0xfd90('0x57')][_0xfd90('0x8c')]]=_0x3551cc[_0xfd90('0x57')][_0xfd90('0x76')];return db[_0xfd90('0x6d')][_0xfd90('0x56')](_0xa2bc34,{'fields':_0x1b6eba,'raw':!![]});}})[_0xfd90('0x1d')](handleEntityNotFound(_0x59f74a,null))['then'](function(_0x3cf35f){if(_0x3cf35f){_0x3551cc['contact']=_0x3cf35f;var _0x332c6c={'ContactId':_0x3cf35f['id'],'phone':_0x3551cc['body'][_0xfd90('0x76')],'SmsAccountId':_0x2c71cc['params']['id']};var _0x397720={'ContactId':_0x3cf35f['id'],'SmsAccountId':_0x2c71cc[_0xfd90('0x52')]['id'],'closed':![]};return db[_0xfd90('0x95')][_0xfd90('0x55')]({'where':_0x397720})[_0xfd90('0x1d')](function(_0xe54181){if(_0xe54181){return[_0xe54181,![]];}return db[_0xfd90('0x95')][_0xfd90('0x56')](_0x332c6c)[_0xfd90('0x1d')](function(_0x544f59){return[_0x544f59,!![]];});});}})['spread'](function(_0x328543,_0x33b55e){_0x3551cc['interaction']=_0x328543[_0xfd90('0x96')]({'plain':!![]});_0x3551cc[_0xfd90('0x97')]['created']=![];if(_0x33b55e){if(_0x3551cc['account']['autoclose']){_0x3551cc[_0xfd90('0x68')][_0xfd90('0x98')]({'id':0x0,'priority':_0x3551cc[_0xfd90('0x68')][_0xfd90('0x40')]+0x1,'app':'close','appdata':_0xfd90('0x99'),'interval':'*,*,*,*'});}_0x3551cc[_0xfd90('0x97')][_0xfd90('0x9a')]=!![];}return db['SmsMessage'][_0xfd90('0x56')]({'phone':_0x3551cc['body'][_0xfd90('0x76')],'messageId':_0x3551cc['body']['messageId'],'body':_0x3551cc[_0xfd90('0x57')]['body'],'SmsAccountId':_0x2c71cc[_0xfd90('0x52')]['id'],'SmsInteractionId':_0x328543['id'],'direction':'in','ContactId':_0x328543[_0xfd90('0x9b')],'AttachmentId':_0x3551cc['body'][_0xfd90('0x9c')]});})['then'](function(_0x581216){_0x3551cc[_0xfd90('0x26')]=_0x581216;if(_0x3551cc[_0xfd90('0x97')][_0xfd90('0x9d')]){return db[_0xfd90('0x9e')][_0xfd90('0x55')]({'attributes':['id','name'],'where':{'id':_0x3551cc[_0xfd90('0x97')][_0xfd90('0x9d')]}})[_0xfd90('0x1d')](function(_0x37ce70){if(_0x37ce70){_0x3551cc[_0xfd90('0x68')][_0xfd90('0x9f')]({'id':0x0,'priority':0x0,'app':_0xfd90('0xa0'),'appdata':_0x37ce70['name']+','+(_0x3551cc[_0xfd90('0x67')][_0xfd90('0xa1')]||0xa),'interval':_0xfd90('0xa2')});}return respondWithRpcPromise('Start','startRouting',_0x3551cc);});}return respondWithRpcPromise(_0xfd90('0xa3'),_0xfd90('0xa4'),_0x3551cc);})[_0xfd90('0x1d')](function(_0x4f854e){if(_0x4f854e){var _0x1ee440=0xc8;var _0x261783=_0xfd90('0xa5');logger[_0xfd90('0x1e')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x261783,_0x1ee440,'entity\x20found');logger[_0xfd90('0x21')](_0xfd90('0xa6'),_0x261783,_0x1ee440,_0xfd90('0xa7'),JSON['stringify'](_0x4f854e));if(_0x3551cc[_0xfd90('0x67')]['type']===_0xfd90('0x75')){return _0x59f74a['status'](_0x1ee440)[_0xfd90('0xa8')](_0xfd90('0xa9'),_0xfd90('0xaa'))[_0xfd90('0x35')](_0xfd90('0xab'));}else{return _0x59f74a[_0xfd90('0x2a')](_0x1ee440)[_0xfd90('0x2c')](_0x4f854e);}}})[_0xfd90('0x28')](handleError(_0x59f74a,null));};exports[_0xfd90('0xac')]=function(_0x129862,_0x1446d9,_0x3e6e67){return db[_0xfd90('0x36')][_0xfd90('0x5d')]({'where':{'id':_0x129862[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x1446d9,null))[_0xfd90('0x1d')](function(_0x11c5fd){if(_0x11c5fd){return db[_0xfd90('0xad')]['transaction'](function(_0x47aefe){return db[_0xfd90('0x66')]['destroy']({'where':{'SmsAccountId':_0x129862[_0xfd90('0x52')]['id']},'transaction':_0x47aefe})['then'](function(_0xcd6152){var _0x483cf1=_[_0xfd90('0x4b')](_0x129862[_0xfd90('0x57')],function(_0x365385){_0x365385[_0xfd90('0x5e')]=_0x129862['params']['id'];return _0x365385;});return db['SmsApplication'][_0xfd90('0xae')](_0x483cf1,{'transaction':_0x47aefe});});})[_0xfd90('0x1d')](function(){return db[_0xfd90('0x66')][_0xfd90('0xaf')]({'where':{'SmsAccountId':_0x129862['params']['id']},'order':_0xfd90('0x6b')});});}})['then'](respondWithResult(_0x1446d9,null))[_0xfd90('0x28')](handleError(_0x1446d9,null));};exports['getApplications']=function(_0x1c0cbe,_0x37cfc7,_0x1add7a){var _0x3c8d26={};var _0xc92d29={};var _0x2e2eb8;var _0x449706;return db[_0xfd90('0x36')][_0xfd90('0x5d')]({'where':{'id':_0x1c0cbe[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x37cfc7,null))[_0xfd90('0x1d')](function(_0x5291bf){if(_0x5291bf){_0x2e2eb8=_0x5291bf;_0xc92d29['model']=_[_0xfd90('0x38')](db['SmsApplication'][_0xfd90('0x53')]);_0xc92d29['query']=_[_0xfd90('0x38')](_0x1c0cbe['query']);_0xc92d29[_0xfd90('0x3c')]=_[_0xfd90('0x3d')](_0xc92d29[_0xfd90('0x37')],_0xc92d29['query']);_0x3c8d26[_0xfd90('0x3e')]=_[_0xfd90('0x3d')](_0xc92d29[_0xfd90('0x37')],qs[_0xfd90('0x3f')](_0x1c0cbe['query'][_0xfd90('0x3f')]));_0x3c8d26[_0xfd90('0x3e')]=_0x3c8d26[_0xfd90('0x3e')][_0xfd90('0x40')]?_0x3c8d26['attributes']:_0xc92d29['model'];_0x3c8d26[_0xfd90('0x43')]=qs[_0xfd90('0x44')](_0x1c0cbe[_0xfd90('0x39')][_0xfd90('0x44')]);_0x3c8d26[_0xfd90('0x45')]=qs['filters'](_[_0xfd90('0x46')](_0x1c0cbe['query'],_0xc92d29[_0xfd90('0x3c')]));if(_0x1c0cbe[_0xfd90('0x39')][_0xfd90('0x4a')]){_0x3c8d26[_0xfd90('0x45')]=_[_0xfd90('0x49')](_0x3c8d26['where'],{'$or':_[_0xfd90('0x4b')](_0x3c8d26[_0xfd90('0x3e')],function(_0x3c3aaa){var _0x14d3b0={};_0x14d3b0[_0x3c3aaa]={'$like':'%'+_0x1c0cbe[_0xfd90('0x39')][_0xfd90('0x4a')]+'%'};return _0x14d3b0;})});}_0x3c8d26=_['merge']({},_0x3c8d26,_0x1c0cbe['options']);return _0x2e2eb8[_0xfd90('0xb0')](_0x3c8d26);}})[_0xfd90('0x1d')](function(_0x1d8297){if(_0x1d8297){_0x449706=_0x1d8297[_0xfd90('0x40')];if(!_0x1c0cbe[_0xfd90('0x39')][_0xfd90('0x41')](_0xfd90('0x42'))){_0x3c8d26['limit']=qs[_0xfd90('0x2e')](_0x1c0cbe[_0xfd90('0x39')][_0xfd90('0x2e')]);_0x3c8d26[_0xfd90('0x2d')]=qs[_0xfd90('0x2d')](_0x1c0cbe[_0xfd90('0x39')][_0xfd90('0x2d')]);}return _0x2e2eb8[_0xfd90('0xb0')](_0x3c8d26);}})[_0xfd90('0x1d')](function(_0x4fe955){if(_0x4fe955){return _0x4fe955?{'count':_0x449706,'rows':_0x4fe955}:null;}})[_0xfd90('0x1d')](respondWithResult(_0x37cfc7,null))['catch'](handleError(_0x37cfc7,null));};exports[_0xfd90('0xb1')]=function(_0x3c8392,_0x542866,_0x264cf9){var _0x15012e={'raw':![],'where':{}};var _0x140efd={};var _0x4564fb={'count':0x0,'rows':[]};return db['SmsAccount'][_0xfd90('0x5d')]({'where':{'id':_0x3c8392[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x542866,null))[_0xfd90('0x1d')](function(_0x56e5b4){if(_0x56e5b4){_0x140efd['model']=_[_0xfd90('0x38')](db[_0xfd90('0x95')][_0xfd90('0x53')]);_0x140efd[_0xfd90('0x39')]=_['keys'](_0x3c8392[_0xfd90('0x39')]);_0x140efd[_0xfd90('0x3c')]=_[_0xfd90('0x3d')](_0x140efd['model'],_0x140efd[_0xfd90('0x39')]);_0x15012e[_0xfd90('0x3e')]=_[_0xfd90('0x3d')](_0x140efd[_0xfd90('0x37')],qs[_0xfd90('0x3f')](_0x3c8392[_0xfd90('0x39')][_0xfd90('0x3f')]));_0x15012e['attributes']=_0x15012e[_0xfd90('0x3e')]['length']?_0x15012e[_0xfd90('0x3e')]:_0x140efd['model'];if(!_0x3c8392[_0xfd90('0x39')][_0xfd90('0x41')](_0xfd90('0x42'))){_0x15012e[_0xfd90('0x2e')]=qs[_0xfd90('0x2e')](_0x3c8392[_0xfd90('0x39')][_0xfd90('0x2e')]);_0x15012e[_0xfd90('0x2d')]=qs['offset'](_0x3c8392[_0xfd90('0x39')]['offset']);}_0x15012e[_0xfd90('0x43')]=qs[_0xfd90('0x44')](_0x3c8392[_0xfd90('0x39')]['sort']);_0x15012e['where']=qs[_0xfd90('0x3c')](_['pick'](_0x3c8392[_0xfd90('0x39')],_0x140efd['filters']));_0x15012e['where'][_0xfd90('0x5e')]=_0x56e5b4['id'];if(_0x3c8392[_0xfd90('0x39')]['filter']){_0x15012e[_0xfd90('0x45')]=_[_0xfd90('0x49')](_0x15012e[_0xfd90('0x45')],{'$or':_[_0xfd90('0x4b')](_0x15012e[_0xfd90('0x3e')],function(_0x26d53c){var _0x17b1cd={};_0x17b1cd[_0x26d53c]={'$like':'%'+_0x3c8392[_0xfd90('0x39')][_0xfd90('0x4a')]+'%'};return _0x17b1cd;})});}_0x15012e=_[_0xfd90('0x49')]({},_0x15012e,_0x3c8392[_0xfd90('0x4c')]);return db[_0xfd90('0x95')]['count']({'where':_0x15012e[_0xfd90('0x45')]})[_0xfd90('0x1d')](function(_0x24c283){_0x4564fb[_0xfd90('0x4d')]=_0x24c283;if(_0x3c8392[_0xfd90('0x39')]['includeAll']){_0x15012e[_0xfd90('0x4e')]=[{'model':db[_0xfd90('0x6d')],'as':_0xfd90('0xb2'),'required':![]},{'model':db[_0xfd90('0x9e')],'as':_0xfd90('0xb3'),'attributes':[_0xfd90('0x34'),_0xfd90('0xb4'),_0xfd90('0xb5')],'required':![]},{'model':db['Tag'],'as':_0xfd90('0xb6'),'attributes':['id',_0xfd90('0x34'),_0xfd90('0xb7')],'where':_0x3c8392['query']['tag']?{'id':_0x3c8392['query']['tag']}:undefined,'required':_0x3c8392[_0xfd90('0x39')][_0xfd90('0xb8')]?!![]:![]}];}return db[_0xfd90('0x95')][_0xfd90('0x4f')](_0x15012e);})[_0xfd90('0x1d')](function(_0x4b9c10){_0x4564fb[_0xfd90('0x50')]=_0x4b9c10;return _0x4564fb;});}})[_0xfd90('0x1d')](respondWithFilteredResult(_0x542866,_0x15012e))[_0xfd90('0x28')](handleError(_0x542866,null));};exports[_0xfd90('0x35')]=function(_0x12f9ea,_0x591d64,_0x1daaaa){var _0x5ede35,_0x526629,_0x35df2f;if(_[_0xfd90('0x88')](_0x12f9ea[_0xfd90('0x57')]['body'])||_0x12f9ea['body'][_0xfd90('0x57')]===''){throw new db['Sequelize'][(_0xfd90('0x8b'))](_0xfd90('0xb9'));}if(_[_0xfd90('0x88')](_0x12f9ea[_0xfd90('0x57')]['to'])){throw new db[(_0xfd90('0x89'))]['ValidationError'](_0xfd90('0xba'));}_0x5ede35=_0x12f9ea['body']['to'];return db[_0xfd90('0x36')]['find']({'where':{'id':_0x12f9ea[_0xfd90('0x52')]['id']},'include':[{'model':db[_0xfd90('0x90')],'as':'List','include':[{'model':db[_0xfd90('0x6d')],'as':_0xfd90('0x91'),'where':{'mobile':_0x5ede35},'limit':0x1,'order':[[_0xfd90('0x71'),_0xfd90('0x92')]]}]}]})[_0xfd90('0x1d')](handleEntityNotFound(_0x591d64,null))[_0xfd90('0x1d')](function(_0x3cfa2f){if(_0x3cfa2f&&_0x3cfa2f[_0xfd90('0xbb')]){_0x526629=_0x3cfa2f[_0xfd90('0x96')]({'plain':!![]});if(_0x526629[_0xfd90('0xbb')]&&_0x526629[_0xfd90('0xbb')][_0xfd90('0x91')][_0xfd90('0x40')]){return _0x526629[_0xfd90('0xbb')]['Contacts'][0x0];}return db[_0xfd90('0x6d')][_0xfd90('0x56')](_[_0xfd90('0x14')](_0x12f9ea[_0xfd90('0x57')],{'firstName':_0x5ede35,'mobile':_0x5ede35,'phone':_0x5ede35,'ListId':_0x526629[_0xfd90('0x73')]}));}})[_0xfd90('0x1d')](handleEntityNotFound(_0x591d64,null))[_0xfd90('0x1d')](function(_0x34262b){if(_0x34262b){_0x35df2f=_0x34262b;return db[_0xfd90('0x95')][_0xfd90('0x55')]({'where':{'ContactId':_0x35df2f['id'],'closed':![],'SmsAccountId':_0x526629['id']}})[_0xfd90('0x1d')](function(_0x14412c){if(_0x14412c){return[_0x14412c,![]];}return db[_0xfd90('0x95')][_0xfd90('0x56')]({'UserId':_0x12f9ea['user']['id'],'ContactId':_0x35df2f['id'],'SmsAccountId':_0x526629['id'],'phone':_0x5ede35,'firstMsgDirection':'out','Messages':[_[_0xfd90('0x49')](_0x12f9ea[_0xfd90('0x57')],{'read':![],'body':_0x12f9ea[_0xfd90('0x57')][_0xfd90('0x57')],'phone':_0x5ede35,'SmsAccountId':_0x526629['id'],'UserId':_0x12f9ea[_0xfd90('0xbc')]['id'],'ContactId':_0x35df2f['id']})]},{'include':[{'model':db[_0xfd90('0xbd')],'as':_0xfd90('0xbe')}]})['then'](function(_0x35b22c){return[_0x35b22c,!![]];});});}})[_0xfd90('0xbf')](function(_0x41a4b9,_0x43596d){if(_0x43596d){return _0x41a4b9;}return db['SmsMessage'][_0xfd90('0x56')](_[_0xfd90('0x49')](_0x12f9ea[_0xfd90('0x57')],{'read':![],'body':_0x12f9ea[_0xfd90('0x57')]['body'],'phone':_0x5ede35,'SmsAccountId':_0x526629['id'],'SmsInteractionId':_0x41a4b9['id'],'UserId':_0x12f9ea[_0xfd90('0xbc')]['id'],'ContactId':_0x35df2f['id']}))[_0xfd90('0x1d')](function(_0x3118c0){_0x41a4b9[_0xfd90('0xc0')][_0xfd90('0xbe')]=[];_0x41a4b9['dataValues'][_0xfd90('0xbe')][_0xfd90('0x98')](_0x3118c0[_0xfd90('0xc0')]);return _0x41a4b9;});})[_0xfd90('0x1d')](respondWithResult(_0x591d64,null))[_0xfd90('0x28')](handleError(_0x591d64,null));};exports[_0xfd90('0x2a')]=function(_0x191c04,_0xb42dc4,_0xc129e0){if(_0x191c04['body']['id']){delete _0x191c04[_0xfd90('0x57')]['id'];}console[_0xfd90('0xc1')](_0xfd90('0xc2'),_0x191c04['body']);var _0x178520,_0x12fb7f,_0x54e5ad;return db[_0xfd90('0x36')][_0xfd90('0x55')]({'where':{'id':_0x191c04[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0xb42dc4,null))[_0xfd90('0x1d')](function(_0x5abd84){if(_0x5abd84){_0x54e5ad=_0x5abd84;logger[_0xfd90('0x21')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xfd90('0x2a'),_0xfd90('0xc3'),_0x5abd84[_0xfd90('0x74')],util[_0xfd90('0xc4')](_0x191c04[_0xfd90('0x57')],{'showHidden':![],'depth':null}));switch(_0x5abd84[_0xfd90('0x74')]){case _0xfd90('0x79'):if(_0x191c04[_0xfd90('0x57')][_0xfd90('0xc5')]&&_0x191c04[_0xfd90('0x57')][_0xfd90('0x2a')]){_0x12fb7f=_0x191c04[_0xfd90('0x57')]['status'];return db['SmsMessage'][_0xfd90('0x55')]({'where':{'messageId':_0x191c04['body'][_0xfd90('0xc5')]}});}break;case _0xfd90('0x7a'):if(_0x191c04[_0xfd90('0x57')]['requestid']&&_0x191c04[_0xfd90('0x57')][_0xfd90('0xc6')]){_0x12fb7f=_0x191c04[_0xfd90('0x57')]['statusInt'];return db[_0xfd90('0xbd')]['find']({'where':{'messageId':_0x191c04['body']['requestid']}});}break;case _0xfd90('0xc7'):if(_0x191c04[_0xfd90('0x57')][_0xfd90('0x7c')]&&_0x191c04[_0xfd90('0x57')][_0xfd90('0xc8')]){_0x12fb7f=_0x191c04[_0xfd90('0x57')][_0xfd90('0xc8')];return db[_0xfd90('0xbd')]['find']({'where':{'messageId':_0x191c04[_0xfd90('0x57')][_0xfd90('0x7c')]}});}break;case _0xfd90('0x80'):var _0x4eeb31=_0x191c04[_0xfd90('0x57')][_0xfd90('0x81')][0x0];if(_0x4eeb31[_0xfd90('0x7b')]&&_0x4eeb31[_0xfd90('0x2a')][_0xfd90('0xc9')]===_0xfd90('0xca')){_0x12fb7f=_0x4eeb31[_0xfd90('0x2a')][_0xfd90('0xc9')];return db[_0xfd90('0xbd')]['find']({'where':{'messageId':_0x4eeb31[_0xfd90('0x7b')]}});}break;case _0xfd90('0x86'):if(_0x191c04[_0xfd90('0x57')][_0xfd90('0x7b')]&&_0x191c04[_0xfd90('0x57')]['status']){_0x12fb7f=_0x191c04[_0xfd90('0x57')]['status'];return db[_0xfd90('0xbd')]['find']({'where':{'messageId':_0x191c04[_0xfd90('0x57')][_0xfd90('0x7b')]}});}break;}}})[_0xfd90('0x1d')](handleEntityNotFound(_0xb42dc4,null))[_0xfd90('0x1d')](function(_0x42a5cb){if(_0x42a5cb){_0x178520=_0x42a5cb;switch(_0x54e5ad[_0xfd90('0x74')]){case _0xfd90('0x79'):if(_0x12fb7f===_0xfd90('0xca')){return _0x178520[_0xfd90('0x33')]({'read':!![]});}else{logger[_0xfd90('0x25')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xfd90('0x2a'),_0xfd90('0x79'),util[_0xfd90('0xc4')](_0x191c04[_0xfd90('0x57')],{'showHidden':![],'depth':null}));}break;case _0xfd90('0x7a'):if(_0x12fb7f==='1'){return _0x178520[_0xfd90('0x33')]({'read':!![]});}else{logger[_0xfd90('0x25')]('SmsAccount,\x20%s,\x20%s,\x20%s','status',_0xfd90('0x79'),util[_0xfd90('0xc4')](_0x191c04[_0xfd90('0x57')],{'showHidden':![],'depth':null}));}break;case _0xfd90('0xc7'):if(!_0x191c04[_0xfd90('0x57')][_0xfd90('0xcb')]&&_0x12fb7f>=0xc8&&_0x12fb7f<=0xce){return _0x178520[_0xfd90('0x33')]({'read':!![]});}else{logger[_0xfd90('0x25')](_0xfd90('0x22'),_0xfd90('0x2a'),_0xfd90('0xc7'),util[_0xfd90('0xc4')](_0x191c04[_0xfd90('0x57')],{'showHidden':![],'depth':null}));}break;case _0xfd90('0x80'):var _0xc6b816=_0x191c04[_0xfd90('0x57')][_0xfd90('0x81')][0x0];if(_0xc6b816[_0xfd90('0x2a')][_0xfd90('0xc9')]===_0xfd90('0xca')){return _0x178520[_0xfd90('0x33')]({'read':!![]});}else{logger[_0xfd90('0x25')](_0xfd90('0x22'),'status',_0xfd90('0x80'),util[_0xfd90('0xc4')](_0x191c04[_0xfd90('0x57')],{'showHidden':![],'depth':null}));}break;case'clickatell':if(_0x12fb7f==_0xfd90('0xcc')||_0x12fb7f==_0xfd90('0xcd')){return _0x178520['update']({'read':!![]});}else{logger[_0xfd90('0x25')](_0xfd90('0x22'),_0xfd90('0x2a'),_0xfd90('0x86'),util[_0xfd90('0xc4')](_0x191c04['body'],{'showHidden':![],'depth':null}));}break;}return _0x178520;}})['then'](respondWithResult(_0xb42dc4,null))['catch'](handleError(_0xb42dc4,null));};exports[_0xfd90('0xce')]=function(_0x291d65,_0x38cf4b,_0x332baa){var _0x344e48,_0x18fb78,_0xc2b03e;return db['SmsAccount'][_0xfd90('0x55')]({'where':{'id':_0x291d65['params']['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x38cf4b,null))[_0xfd90('0x1d')](function(_0x16633f){if(_0x16633f){_0xc2b03e=_0x16633f;logger[_0xfd90('0x21')](_0xfd90('0x22'),'status',_0xfd90('0xc3'),_0x16633f['type'],util[_0xfd90('0xc4')](_0x291d65[_0xfd90('0x39')],{'showHidden':![],'depth':null}));switch(_0x16633f[_0xfd90('0x74')]){case _0xfd90('0x83'):if(_0x291d65['query'][_0xfd90('0xcf')]&&_0x291d65[_0xfd90('0x39')][_0xfd90('0xd0')]){_0x18fb78=_0x291d65['query'][_0xfd90('0xd0')];return db[_0xfd90('0xbd')][_0xfd90('0x55')]({'where':{'messageId':_0x291d65[_0xfd90('0x39')][_0xfd90('0xcf')]}});}break;}}})['then'](handleEntityNotFound(_0x38cf4b,null))[_0xfd90('0x1d')](function(_0x50ef60){if(_0x50ef60){_0x344e48=_0x50ef60;switch(_0xc2b03e[_0xfd90('0x74')]){case'csc':if(_0x18fb78==='2'||_0x18fb78==='6'){return _0x344e48['update']({'read':!![]});}else{logger[_0xfd90('0x25')](_0xfd90('0x22'),_0xfd90('0x2a'),'csc',util[_0xfd90('0xc4')](_0x291d65['query'],{'showHidden':![],'depth':null}));};break;}return _0x344e48;}})[_0xfd90('0x1d')](respondWithResult(_0x38cf4b,null))[_0xfd90('0x28')](handleError(_0x38cf4b,null));};exports[_0xfd90('0xd1')]=function(_0x80d378,_0x354b2a,_0xd6ee8e){return db[_0xfd90('0x36')]['find']({'where':{'id':_0x80d378[_0xfd90('0x52')]['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x354b2a,null))[_0xfd90('0x1d')](function(_0x5ad6dc){if(_0x5ad6dc){return _0x5ad6dc[_0xfd90('0xd1')](_0x80d378['body']['ids'],_[_0xfd90('0x94')](_0x80d378[_0xfd90('0x57')],['ids','id'])||{})[_0xfd90('0xbf')](function(_0x36357e){for(var _0x66b125=0x0;_0x66b125<_0x80d378[_0xfd90('0x57')][_0xfd90('0x63')]['length'];_0x66b125+=0x1){socket[_0xfd90('0xd2')]('userSmsAccount:save',{'UserId':_0x80d378[_0xfd90('0x57')][_0xfd90('0x63')][_0x66b125],'SmsAccountId':_0x80d378[_0xfd90('0x52')]['id']});}return _0x36357e;});}})['then'](respondWithResult(_0x354b2a,null))[_0xfd90('0x28')](handleError(_0x354b2a,null));};exports[_0xfd90('0xd3')]=function(_0x213860,_0x289a04,_0x55d157){var _0x4c7eee;return db[_0xfd90('0x36')]['find']({'where':{'id':_0x213860['params']['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x289a04,null))[_0xfd90('0x1d')](function(_0x1a4e28){if(_0x1a4e28){return _0x1a4e28[_0xfd90('0xd3')](_0x213860['query'][_0xfd90('0x63')])['then'](function(_0x4e9265){if(_[_0xfd90('0xd4')](_0x213860[_0xfd90('0x39')][_0xfd90('0x63')])){for(var _0x22201a=0x0;_0x22201a<_0x213860['query']['ids'][_0xfd90('0x40')];_0x22201a+=0x1){socket[_0xfd90('0xd2')](_0xfd90('0xd5'),{'UserId':_0x213860[_0xfd90('0x39')]['ids'][_0x22201a],'SmsAccountId':_0x213860[_0xfd90('0x52')]['id']});}}else{socket[_0xfd90('0xd2')](_0xfd90('0xd5'),{'UserId':_0x213860[_0xfd90('0x39')][_0xfd90('0x63')],'SmsAccountId':_0x213860['params']['id']});}});}})[_0xfd90('0x1d')](respondWithStatusCode(_0x289a04,null))[_0xfd90('0x28')](handleError(_0x289a04,null));};exports[_0xfd90('0xd6')]=function(_0xefd09f,_0x20ca2b,_0x2af83d){var _0x2756fd={};var _0x174e07={};var _0xb4824;var _0x4bf9f4;return db[_0xfd90('0x36')]['findOne']({'where':{'id':_0xefd09f['params']['id']}})[_0xfd90('0x1d')](handleEntityNotFound(_0x20ca2b,null))[_0xfd90('0x1d')](function(_0x5b7c4f){if(_0x5b7c4f){_0xb4824=_0x5b7c4f;_0x174e07[_0xfd90('0x37')]=_[_0xfd90('0x38')](db['User'][_0xfd90('0x53')]);_0x174e07[_0xfd90('0x39')]=_[_0xfd90('0x38')](_0xefd09f[_0xfd90('0x39')]);_0x174e07[_0xfd90('0x3c')]=_[_0xfd90('0x3d')](_0x174e07[_0xfd90('0x37')],_0x174e07[_0xfd90('0x39')]);_0x2756fd[_0xfd90('0x3e')]=_[_0xfd90('0x3d')](_0x174e07[_0xfd90('0x37')],qs[_0xfd90('0x3f')](_0xefd09f[_0xfd90('0x39')]['fields']));_0x2756fd[_0xfd90('0x3e')]=_0x2756fd[_0xfd90('0x3e')][_0xfd90('0x40')]?_0x2756fd[_0xfd90('0x3e')]:_0x174e07[_0xfd90('0x37')];_0x2756fd[_0xfd90('0x43')]=qs[_0xfd90('0x44')](_0xefd09f[_0xfd90('0x39')][_0xfd90('0x44')]);_0x2756fd[_0xfd90('0x45')]=qs[_0xfd90('0x3c')](_['pick'](_0xefd09f[_0xfd90('0x39')],_0x174e07[_0xfd90('0x3c')]));if(_0xefd09f['query'][_0xfd90('0x4a')]){_0x2756fd[_0xfd90('0x45')]=_[_0xfd90('0x49')](_0x2756fd[_0xfd90('0x45')],{'$or':_[_0xfd90('0x4b')](_0x2756fd['attributes'],function(_0x4635b7){var _0x574c0d={};_0x574c0d[_0x4635b7]={'$like':'%'+_0xefd09f[_0xfd90('0x39')][_0xfd90('0x4a')]+'%'};return _0x574c0d;})});}_0x2756fd=_[_0xfd90('0x49')]({},_0x2756fd,_0xefd09f[_0xfd90('0x4c')]);return _0xb4824[_0xfd90('0xd6')](_0x2756fd);}})[_0xfd90('0x1d')](function(_0x1b63de){if(_0x1b63de){_0x4bf9f4=_0x1b63de[_0xfd90('0x40')];if(!_0xefd09f['query']['hasOwnProperty'](_0xfd90('0x42'))){_0x2756fd[_0xfd90('0x2e')]=qs[_0xfd90('0x2e')](_0xefd09f[_0xfd90('0x39')][_0xfd90('0x2e')]);_0x2756fd['offset']=qs[_0xfd90('0x2d')](_0xefd09f[_0xfd90('0x39')][_0xfd90('0x2d')]);}return _0xb4824['getAgents'](_0x2756fd);}})[_0xfd90('0x1d')](function(_0x2ce699){if(_0x2ce699){return _0x2ce699?{'count':_0x4bf9f4,'rows':_0x2ce699}:null;}})[_0xfd90('0x1d')](respondWithResult(_0x20ca2b,null))['catch'](handleError(_0x20ca2b,null));};
\ No newline at end of file
+var _0xa9e0=['originatingAddress','segmentedMessage','fromNumber','replyMessageId','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','CmContact','Contacts','DESC','omit','defaults','contact','SmsInteraction','spread','get','interaction','created','autoclose','push','close','*,*,*,*','SmsMessage','ContactId','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','startRouting','Start','receiveMessage','debug','entity\x20found','set','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','addApplications','transaction','SmsApplication','bulkCreate','getApplications','Contact','Owner','fullname','internal','Tag','Tags','color','tag','send','to\x20is\x20mandatory','List','user','out','dataValues','Messages','log','endpoint\x20/status\x20POST\x20/','received\x20delivery\x20report\x20from','inspect','skebby_dispatch_id','requestid','statusInt','status_code','groupName','clickatell','error_code','DELIVERED_TO_GATEWAY','statusGet','message-id','state','addAgents','emit','removeAgents','userSmsAccount:remove','getAgents','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','redis','localhost','socket.io-emitter','./smsAccount.socket','register','client','http','request','info','request\x20sent','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','SmsAccount,\x20%s,\x20%s','message','result','sendStatus','status','count','offset','limit','Content-Range','json','reject','save','update','then','destroy','end','stack','name','index','SmsAccount','rawAttributes','dateStart','query','dateEnd','filters','intersection','attributes','fields','model','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','body','describe','Disposition','create','getDispositions','findOne','SmsAccountId','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','sms','Applications','applications','orderBy','priority','asc','account','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','ListId','mobile','type','twilio','messageId','skebby','from','sender','text','connectel','clicksend','message_id','plivo','From','infobip','results','csc'];(function(_0xe58990,_0x5ae33c){var _0x5a034d=function(_0xa530c9){while(--_0xa530c9){_0xe58990['push'](_0xe58990['shift']());}};_0x5a034d(++_0x5ae33c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var qs=require(_0x0a9e('0xf'));var logger=require(_0x0a9e('0x10'))(_0x0a9e('0x11'));var utils=require(_0x0a9e('0x12'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x0a9e('0x13')],{'host':_0x0a9e('0x14'),'port':0x18eb});var socket=require(_0x0a9e('0x15'))(new Redis(config[_0x0a9e('0x13')]));require(_0x0a9e('0x16'))[_0x0a9e('0x17')](socket);var jayson=require('jayson/promise');var client=jayson[_0x0a9e('0x18')][_0x0a9e('0x19')]({'port':0x232c});function respondWithRpcPromise(_0x2b4227,_0x281129,_0x44dcfd,_0x4d5611){return new BPromise(function(_0x52a03d,_0x22dccb){var _0x5d0880=_0x4d5611||client;return _0x5d0880[_0x0a9e('0x1a')](_0x2b4227,_0x44dcfd)['then'](function(_0x16033c){logger[_0x0a9e('0x1b')]('SmsAccount,\x20%s,\x20%s',_0x281129,_0x0a9e('0x1c'));logger['debug'](_0x0a9e('0x1d'),_0x281129,_0x0a9e('0x1c'),JSON[_0x0a9e('0x1e')](_0x16033c));if(_0x16033c[_0x0a9e('0x1f')]){if(_0x16033c[_0x0a9e('0x1f')][_0x0a9e('0x20')]===0x1f4){logger[_0x0a9e('0x1f')](_0x0a9e('0x21'),_0x281129,_0x16033c[_0x0a9e('0x1f')][_0x0a9e('0x22')]);return _0x22dccb(_0x16033c[_0x0a9e('0x1f')][_0x0a9e('0x22')]);}logger['error'](_0x0a9e('0x21'),_0x281129,_0x16033c[_0x0a9e('0x1f')]['message']);return _0x52a03d(_0x16033c[_0x0a9e('0x1f')]['message']);}else{logger['info'](_0x0a9e('0x21'),_0x281129,_0x0a9e('0x1c'));_0x52a03d(_0x16033c[_0x0a9e('0x23')][_0x0a9e('0x22')]);}})['catch'](function(_0xfb6e48){logger[_0x0a9e('0x1f')](_0x0a9e('0x21'),_0x281129,_0xfb6e48);_0x22dccb(_0xfb6e48);});});}function respondWithStatusCode(_0x4d00e6,_0x370d86){_0x370d86=_0x370d86||0xcc;return function(_0x42ac8f){if(_0x42ac8f){return _0x4d00e6[_0x0a9e('0x24')](_0x370d86);}return _0x4d00e6['status'](_0x370d86)['end']();};}function respondWithResult(_0x197ec0,_0x3a8e58){_0x3a8e58=_0x3a8e58||0xc8;return function(_0x40c424){if(_0x40c424){return _0x197ec0[_0x0a9e('0x25')](_0x3a8e58)['json'](_0x40c424);}};}function respondWithFilteredResult(_0x384319,_0x479bc4){return function(_0x45a1e7){if(_0x45a1e7){var _0x5bfb33=_0x45a1e7[_0x0a9e('0x26')],_0x1dc186=_0x479bc4[_0x0a9e('0x27')],_0x34dc65=_0x479bc4[_0x0a9e('0x27')]+_0x479bc4[_0x0a9e('0x28')],_0x25fba9;if(_0x34dc65>=_0x5bfb33){_0x34dc65=_0x5bfb33;_0x25fba9=0xc8;}else{_0x25fba9=0xce;}_0x384319[_0x0a9e('0x25')](_0x25fba9);return _0x384319['set'](_0x0a9e('0x29'),_0x1dc186+'-'+_0x34dc65+'/'+_0x5bfb33)[_0x0a9e('0x2a')](_0x45a1e7);}return null;};}function patchUpdates(_0x2b1f27){return function(_0x2ec755){try{jsonpatch['apply'](_0x2ec755,_0x2b1f27,!![]);}catch(_0x15b200){return BPromise[_0x0a9e('0x2b')](_0x15b200);}return _0x2ec755[_0x0a9e('0x2c')]();};}function saveUpdates(_0x824a4f,_0x58b06f){return function(_0x563b45){if(_0x563b45){return _0x563b45[_0x0a9e('0x2d')](_0x824a4f)[_0x0a9e('0x2e')](function(_0x1dbde2){return _0x1dbde2;});}return null;};}function removeEntity(_0x540530,_0x426950){return function(_0x5d1e0e){if(_0x5d1e0e){return _0x5d1e0e[_0x0a9e('0x2f')]()[_0x0a9e('0x2e')](function(){_0x540530[_0x0a9e('0x25')](0xcc)[_0x0a9e('0x30')]();});}};}function handleEntityNotFound(_0x25ce3a,_0x5180f1){return function(_0x66c1d2){if(!_0x66c1d2){_0x25ce3a[_0x0a9e('0x24')](0x194);}return _0x66c1d2;};}function handleError(_0x40cb85,_0x2da5c0){_0x2da5c0=_0x2da5c0||0x1f4;return function(_0x2b45ea){logger[_0x0a9e('0x1f')](_0x2b45ea[_0x0a9e('0x31')]);if(_0x2b45ea[_0x0a9e('0x32')]){delete _0x2b45ea['name'];}_0x40cb85[_0x0a9e('0x25')](_0x2da5c0)['send'](_0x2b45ea);};}exports[_0x0a9e('0x33')]=function(_0x14b13f,_0x2b7e7f){var _0x3f3d41={},_0x567193={},_0x191e91={'count':0x0,'rows':[]};var _0xd1836d=db[_0x0a9e('0x34')][_0x0a9e('0x35')];_0x567193['model']=_['keys'](_0xd1836d);var _0x1e8694={'dateStart':_0x14b13f['query'][_0x0a9e('0x36')],'dateEnd':_0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x38')]};delete _0x14b13f[_0x0a9e('0x37')]['dateStart'];delete _0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x38')];_0x567193[_0x0a9e('0x37')]=_['keys'](_0x14b13f[_0x0a9e('0x37')]);_0x567193[_0x0a9e('0x39')]=_[_0x0a9e('0x3a')](_0x567193['model'],_0x567193['query']);_0x3f3d41[_0x0a9e('0x3b')]=_[_0x0a9e('0x3a')](_0x567193['model'],qs[_0x0a9e('0x3c')](_0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x3c')]));_0x3f3d41[_0x0a9e('0x3b')]=_0x3f3d41['attributes']['length']?_0x3f3d41[_0x0a9e('0x3b')]:_0x567193[_0x0a9e('0x3d')];if(!_0x14b13f['query'][_0x0a9e('0x3e')](_0x0a9e('0x3f'))){_0x3f3d41[_0x0a9e('0x28')]=qs['limit'](_0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x28')]);_0x3f3d41[_0x0a9e('0x27')]=qs[_0x0a9e('0x27')](_0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x27')]);}_0x3f3d41[_0x0a9e('0x40')]=qs[_0x0a9e('0x41')](_0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x41')]);_0x3f3d41[_0x0a9e('0x42')]=qs[_0x0a9e('0x39')](_[_0x0a9e('0x43')](_0x14b13f[_0x0a9e('0x37')],_0x567193[_0x0a9e('0x39')]));if(_0x1e8694['dateStart']){if(_0x1e8694['dateEnd']){_0x1e8694[_0x0a9e('0x38')]=moment(_0x1e8694[_0x0a9e('0x38')])[_0x0a9e('0x44')](0x1,_0x0a9e('0x45'));}else{_0x1e8694[_0x0a9e('0x38')]=moment(_0x1e8694[_0x0a9e('0x36')])[_0x0a9e('0x44')](0x1,_0x0a9e('0x45'));}_[_0x0a9e('0x46')](_0x3f3d41[_0x0a9e('0x42')],{'createdAt':{'$gte':_0x1e8694[_0x0a9e('0x36')],'$lte':_0x1e8694[_0x0a9e('0x38')]}});}if(_0x14b13f['query'][_0x0a9e('0x47')]){_0x3f3d41[_0x0a9e('0x42')]=_[_0x0a9e('0x46')](_0x3f3d41[_0x0a9e('0x42')],{'$or':_[_0x0a9e('0x48')](_0x3f3d41[_0x0a9e('0x3b')],function(_0x21eb86){var _0x44dd99={};_0x44dd99[_0x21eb86]={'$like':'%'+_0x14b13f['query'][_0x0a9e('0x47')]+'%'};return _0x44dd99;})});}_0x3f3d41=_['merge']({},_0x3f3d41,_0x14b13f[_0x0a9e('0x49')]);var _0x476688={'where':_0x3f3d41[_0x0a9e('0x42')]};return db['SmsAccount'][_0x0a9e('0x26')](_0x476688)[_0x0a9e('0x2e')](function(_0x4774f4){_0x191e91[_0x0a9e('0x26')]=_0x4774f4;if(_0x14b13f[_0x0a9e('0x37')][_0x0a9e('0x4a')]){_0x3f3d41[_0x0a9e('0x4b')]=[{'all':!![]}];}return db['SmsAccount'][_0x0a9e('0x4c')](_0x3f3d41);})[_0x0a9e('0x2e')](function(_0x1b5e80){_0x191e91[_0x0a9e('0x4d')]=_0x1b5e80;return _0x191e91;})[_0x0a9e('0x2e')](respondWithFilteredResult(_0x2b7e7f,_0x3f3d41))[_0x0a9e('0x4e')](handleError(_0x2b7e7f,null));};exports[_0x0a9e('0x4f')]=function(_0x19383e,_0x34febd){var _0x58a5c2={'raw':![],'where':{'id':_0x19383e[_0x0a9e('0x50')]['id']}},_0xe401a={};_0xe401a['model']=_['keys'](db['SmsAccount'][_0x0a9e('0x35')]);_0xe401a[_0x0a9e('0x37')]=_[_0x0a9e('0x51')](_0x19383e[_0x0a9e('0x37')]);_0xe401a[_0x0a9e('0x39')]=_[_0x0a9e('0x3a')](_0xe401a[_0x0a9e('0x3d')],_0xe401a[_0x0a9e('0x37')]);_0x58a5c2['attributes']=_['intersection'](_0xe401a['model'],qs[_0x0a9e('0x3c')](_0x19383e[_0x0a9e('0x37')][_0x0a9e('0x3c')]));_0x58a5c2['attributes']=_0x58a5c2[_0x0a9e('0x3b')][_0x0a9e('0x52')]?_0x58a5c2['attributes']:_0xe401a['model'];if(_0x19383e[_0x0a9e('0x37')]['includeAll']){_0x58a5c2[_0x0a9e('0x4b')]=[{'all':!![]}];}_0x58a5c2=_['merge']({},_0x58a5c2,_0x19383e[_0x0a9e('0x49')]);return db[_0x0a9e('0x34')][_0x0a9e('0x53')](_0x58a5c2)['then'](handleEntityNotFound(_0x34febd,null))[_0x0a9e('0x2e')](respondWithResult(_0x34febd,null))[_0x0a9e('0x4e')](handleError(_0x34febd,null));};exports['create']=function(_0x50f687,_0x128aa6){return db[_0x0a9e('0x34')]['create'](_0x50f687[_0x0a9e('0x54')],{})['then'](respondWithResult(_0x128aa6,0xc9))[_0x0a9e('0x4e')](handleError(_0x128aa6,null));};exports['update']=function(_0xe22ccc,_0x4a6deb){if(_0xe22ccc['body']['id']){delete _0xe22ccc['body']['id'];}return db[_0x0a9e('0x34')]['find']({'where':{'id':_0xe22ccc[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x4a6deb,null))[_0x0a9e('0x2e')](saveUpdates(_0xe22ccc[_0x0a9e('0x54')],null))[_0x0a9e('0x2e')](respondWithResult(_0x4a6deb,null))[_0x0a9e('0x4e')](handleError(_0x4a6deb,null));};exports[_0x0a9e('0x2f')]=function(_0x28d814,_0x4e67ab){return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0x28d814[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x4e67ab,null))[_0x0a9e('0x2e')](removeEntity(_0x4e67ab,null))[_0x0a9e('0x4e')](handleError(_0x4e67ab,null));};exports['describe']=function(_0x956fbe,_0x26bc80){return db['SmsAccount'][_0x0a9e('0x55')]()['then'](respondWithResult(_0x26bc80,null))[_0x0a9e('0x4e')](handleError(_0x26bc80,null));};exports['addDisposition']=function(_0x4b3c1a,_0x5674ee,_0x273cb5){if(_0x4b3c1a['body']['id']){delete _0x4b3c1a[_0x0a9e('0x54')]['id'];}return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0x4b3c1a[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x5674ee,null))[_0x0a9e('0x2e')](function(_0x49eed0){if(_0x49eed0){_0x4b3c1a[_0x0a9e('0x54')]['SmsAccountId']=_0x49eed0['id'];return db[_0x0a9e('0x56')][_0x0a9e('0x57')](_0x4b3c1a[_0x0a9e('0x54')]);}})['then'](respondWithResult(_0x5674ee,null))[_0x0a9e('0x4e')](handleError(_0x5674ee,null));};exports[_0x0a9e('0x58')]=function(_0x119677,_0x32e134,_0x497d91){var _0x1d0dc8={'raw':![],'where':{}};var _0xe05a5a={};var _0x54327c={'count':0x0,'rows':[]};return db[_0x0a9e('0x34')][_0x0a9e('0x59')]({'where':{'id':_0x119677[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x32e134,null))[_0x0a9e('0x2e')](function(_0x4d4a35){if(_0x4d4a35){_0xe05a5a[_0x0a9e('0x3d')]=_[_0x0a9e('0x51')](db[_0x0a9e('0x56')]['rawAttributes']);_0xe05a5a[_0x0a9e('0x37')]=_['keys'](_0x119677['query']);_0xe05a5a[_0x0a9e('0x39')]=_[_0x0a9e('0x3a')](_0xe05a5a[_0x0a9e('0x3d')],_0xe05a5a[_0x0a9e('0x37')]);_0x1d0dc8[_0x0a9e('0x3b')]=_[_0x0a9e('0x3a')](_0xe05a5a[_0x0a9e('0x3d')],qs[_0x0a9e('0x3c')](_0x119677[_0x0a9e('0x37')][_0x0a9e('0x3c')]));_0x1d0dc8[_0x0a9e('0x3b')]=_0x1d0dc8[_0x0a9e('0x3b')][_0x0a9e('0x52')]?_0x1d0dc8[_0x0a9e('0x3b')]:_0xe05a5a[_0x0a9e('0x3d')];if(!_0x119677[_0x0a9e('0x37')][_0x0a9e('0x3e')](_0x0a9e('0x3f'))){_0x1d0dc8['limit']=qs[_0x0a9e('0x28')](_0x119677[_0x0a9e('0x37')][_0x0a9e('0x28')]);_0x1d0dc8['offset']=qs[_0x0a9e('0x27')](_0x119677[_0x0a9e('0x37')]['offset']);}_0x1d0dc8[_0x0a9e('0x40')]=qs[_0x0a9e('0x41')](_0x119677[_0x0a9e('0x37')][_0x0a9e('0x41')]);_0x1d0dc8[_0x0a9e('0x42')]=qs['filters'](_['pick'](_0x119677['query'],_0xe05a5a[_0x0a9e('0x39')]));_0x1d0dc8[_0x0a9e('0x42')][_0x0a9e('0x5a')]=_0x4d4a35['id'];if(_0x119677[_0x0a9e('0x37')][_0x0a9e('0x47')]){_0x1d0dc8[_0x0a9e('0x42')]=_[_0x0a9e('0x46')](_0x1d0dc8[_0x0a9e('0x42')],{'$or':_['map'](_0x1d0dc8[_0x0a9e('0x3b')],function(_0xcbc8b2){var _0x12ccdb={};_0x12ccdb[_0xcbc8b2]={'$like':'%'+_0x119677['query'][_0x0a9e('0x47')]+'%'};return _0x12ccdb;})});}_0x1d0dc8=_['merge']({},_0x1d0dc8,_0x119677[_0x0a9e('0x49')]);return db[_0x0a9e('0x56')]['count']({'where':_0x1d0dc8[_0x0a9e('0x42')]})[_0x0a9e('0x2e')](function(_0x2cc7a7){_0x54327c[_0x0a9e('0x26')]=_0x2cc7a7;if(_0x119677['query'][_0x0a9e('0x4a')]){_0x1d0dc8[_0x0a9e('0x4b')]=[{'all':!![]}];}return db[_0x0a9e('0x56')][_0x0a9e('0x4c')](_0x1d0dc8);})['then'](function(_0x109ccb){_0x54327c[_0x0a9e('0x4d')]=_0x109ccb;return _0x54327c;});}})[_0x0a9e('0x2e')](respondWithFilteredResult(_0x32e134,_0x1d0dc8))[_0x0a9e('0x4e')](handleError(_0x32e134,null));};exports['removeDispositions']=function(_0x290d43,_0x3511c9,_0x30a4c7){var _0xf410e5;return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0x290d43[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x3511c9,null))[_0x0a9e('0x2e')](function(_0x336dc3){if(_0x336dc3){return _0x336dc3[_0x0a9e('0x5b')](_0x290d43[_0x0a9e('0x37')][_0x0a9e('0x5c')]);}})[_0x0a9e('0x2e')](respondWithStatusCode(_0x3511c9,null))['catch'](handleError(_0x3511c9,null));};exports[_0x0a9e('0x5d')]=function(_0x11da9c,_0xc599b3,_0x563627){if(_0x11da9c[_0x0a9e('0x54')]['id']){delete _0x11da9c[_0x0a9e('0x54')]['id'];}return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0x11da9c['params']['id']}})['then'](handleEntityNotFound(_0xc599b3,null))[_0x0a9e('0x2e')](function(_0x2bbdb5){if(_0x2bbdb5){_0x11da9c['body'][_0x0a9e('0x5a')]=_0x2bbdb5['id'];return db['CannedAnswer'][_0x0a9e('0x57')](_0x11da9c[_0x0a9e('0x54')]);}})['then'](respondWithResult(_0xc599b3,null))[_0x0a9e('0x4e')](handleError(_0xc599b3,null));};exports[_0x0a9e('0x5e')]=function(_0x2d2286,_0x42b959,_0x3755fe){var _0x1f42a0={'raw':![],'where':{}};var _0x444f1f={};var _0x482ca2={'count':0x0,'rows':[]};return db[_0x0a9e('0x34')][_0x0a9e('0x59')]({'where':{'id':_0x2d2286[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x42b959,null))['then'](function(_0xf51744){if(_0xf51744){_0x444f1f[_0x0a9e('0x3d')]=_['keys'](db[_0x0a9e('0x5f')]['rawAttributes']);_0x444f1f[_0x0a9e('0x37')]=_[_0x0a9e('0x51')](_0x2d2286[_0x0a9e('0x37')]);_0x444f1f[_0x0a9e('0x39')]=_['intersection'](_0x444f1f['model'],_0x444f1f[_0x0a9e('0x37')]);_0x1f42a0[_0x0a9e('0x3b')]=_[_0x0a9e('0x3a')](_0x444f1f['model'],qs[_0x0a9e('0x3c')](_0x2d2286[_0x0a9e('0x37')]['fields']));_0x1f42a0['attributes']=_0x1f42a0[_0x0a9e('0x3b')]['length']?_0x1f42a0['attributes']:_0x444f1f['model'];if(!_0x2d2286[_0x0a9e('0x37')][_0x0a9e('0x3e')](_0x0a9e('0x3f'))){_0x1f42a0[_0x0a9e('0x28')]=qs[_0x0a9e('0x28')](_0x2d2286[_0x0a9e('0x37')]['limit']);_0x1f42a0[_0x0a9e('0x27')]=qs['offset'](_0x2d2286[_0x0a9e('0x37')][_0x0a9e('0x27')]);}_0x1f42a0[_0x0a9e('0x40')]=qs[_0x0a9e('0x41')](_0x2d2286['query'][_0x0a9e('0x41')]);_0x1f42a0[_0x0a9e('0x42')]=qs[_0x0a9e('0x39')](_['pick'](_0x2d2286[_0x0a9e('0x37')],_0x444f1f[_0x0a9e('0x39')]));_0x1f42a0[_0x0a9e('0x42')][_0x0a9e('0x5a')]=_0xf51744['id'];if(_0x2d2286[_0x0a9e('0x37')][_0x0a9e('0x47')]){_0x1f42a0[_0x0a9e('0x42')]=_[_0x0a9e('0x46')](_0x1f42a0['where'],{'$or':_[_0x0a9e('0x48')](_0x1f42a0[_0x0a9e('0x3b')],function(_0x589ff3){var _0x40e0f0={};_0x40e0f0[_0x589ff3]={'$like':'%'+_0x2d2286[_0x0a9e('0x37')][_0x0a9e('0x47')]+'%'};return _0x40e0f0;})});}_0x1f42a0=_['merge']({},_0x1f42a0,_0x2d2286[_0x0a9e('0x49')]);return db['CannedAnswer'][_0x0a9e('0x26')]({'where':_0x1f42a0[_0x0a9e('0x42')]})[_0x0a9e('0x2e')](function(_0x1f29bd){_0x482ca2[_0x0a9e('0x26')]=_0x1f29bd;if(_0x2d2286[_0x0a9e('0x37')][_0x0a9e('0x4a')]){_0x1f42a0[_0x0a9e('0x4b')]=[{'all':!![]}];}return db['CannedAnswer'][_0x0a9e('0x4c')](_0x1f42a0);})[_0x0a9e('0x2e')](function(_0x17f692){_0x482ca2[_0x0a9e('0x4d')]=_0x17f692;return _0x482ca2;});}})[_0x0a9e('0x2e')](respondWithFilteredResult(_0x42b959,_0x1f42a0))[_0x0a9e('0x4e')](handleError(_0x42b959,null));};exports[_0x0a9e('0x60')]=function(_0x33f0c9,_0x1808ba,_0x31af8c){var _0x151956;return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0x33f0c9['params']['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x1808ba,null))[_0x0a9e('0x2e')](function(_0x12843d){if(_0x12843d){return _0x12843d[_0x0a9e('0x60')](_0x33f0c9[_0x0a9e('0x37')]['ids']);}})[_0x0a9e('0x2e')](respondWithStatusCode(_0x1808ba,null))[_0x0a9e('0x4e')](handleError(_0x1808ba,null));};exports['notify']=function(_0x23b447,_0x5e725e,_0x45d113){var _0x27041d={'channel':_0x0a9e('0x61')};var _0xf8c6c4=[];var _0x4f4d2d=[];var _0x3ceba6={};return db['SmsAccount'][_0x0a9e('0x53')]({'where':{'id':_0x23b447[_0x0a9e('0x50')]['id']},'include':[{'model':db['SmsApplication'],'as':_0x0a9e('0x62')}]})[_0x0a9e('0x2e')](handleEntityNotFound(_0x5e725e,null))[_0x0a9e('0x2e')](function(_0x4ab276){_0x27041d['account']=_0x4ab276;_0x27041d[_0x0a9e('0x63')]=_[_0x0a9e('0x64')](_0x4ab276[_0x0a9e('0x62')],[_0x0a9e('0x65')],[_0x0a9e('0x66')]);if(_0x27041d[_0x0a9e('0x67')][_0x0a9e('0x62')]){delete _0x27041d[_0x0a9e('0x67')][_0x0a9e('0x62')];}return db['CmContact'][_0x0a9e('0x55')]();})['then'](function(_0x287324){if(!_0x287324){throw new db[(_0x0a9e('0x68'))][(_0x0a9e('0x69'))](_0x0a9e('0x6a'));}_0xf8c6c4=_[_0x0a9e('0x6b')](_['keys'](_0x287324),[_0x0a9e('0x6c'),_0x0a9e('0x6d')]);_0x4f4d2d=_[_0x0a9e('0x6b')](_[_0x0a9e('0x51')](_0x287324),[_0x0a9e('0x6c'),'updatedAt','CompanyId',_0x0a9e('0x6e')]);_0x27041d['body']={'mapKey':_0x0a9e('0x6f')};if(_0x27041d[_0x0a9e('0x67')][_0x0a9e('0x70')]){switch(_0x27041d[_0x0a9e('0x67')][_0x0a9e('0x70')]){case _0x0a9e('0x71'):_0x27041d['body']['from']=_0x23b447[_0x0a9e('0x54')]['From'];_0x27041d[_0x0a9e('0x54')]['body']=_0x23b447[_0x0a9e('0x54')]['Body'];_0x27041d['body'][_0x0a9e('0x72')]=_0x23b447[_0x0a9e('0x54')]['MessageSid'];break;case _0x0a9e('0x73'):_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x74')]='+'+_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x75')];_0x27041d['body']['body']=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x76')];break;case _0x0a9e('0x77'):_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x74')]=_0x23b447['body'][_0x0a9e('0x74')];_0x27041d[_0x0a9e('0x54')]['body']=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x22')];break;case _0x0a9e('0x78'):_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x74')]=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x74')];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x54')]=_0x23b447[_0x0a9e('0x54')]['body'];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x72')]=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x79')];break;case _0x0a9e('0x7a'):_0x27041d['body']['from']=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x7b')];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x54')]=_0x23b447[_0x0a9e('0x54')]['Text'];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x72')]=_0x23b447[_0x0a9e('0x54')]['MessageUUID'];break;case _0x0a9e('0x7c'):_0x27041d['body'][_0x0a9e('0x74')]='+'+_0x23b447['body'][_0x0a9e('0x7d')][0x0][_0x0a9e('0x74')];_0x27041d[_0x0a9e('0x54')]['body']=_0x23b447[_0x0a9e('0x54')]['results'][0x0][_0x0a9e('0x76')];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x72')]=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x7d')][0x0][_0x0a9e('0x72')];break;case _0x0a9e('0x7e'):_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x74')]=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x7f')];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x54')]=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x80')][_0x0a9e('0x22')];break;case'clickatell':_0x27041d['body'][_0x0a9e('0x74')]=_0x23b447['body'][_0x0a9e('0x81')];_0x27041d[_0x0a9e('0x54')]['body']=_0x23b447[_0x0a9e('0x54')][_0x0a9e('0x76')];_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x72')]=_0x23b447['body'][_0x0a9e('0x82')];break;}}if(_0x27041d[_0x0a9e('0x54')]['id']){delete _0x27041d[_0x0a9e('0x54')]['id'];}if(_[_0x0a9e('0x83')](_0x27041d['body'][_0x0a9e('0x74')])){throw new db[(_0x0a9e('0x68'))][(_0x0a9e('0x69'))]('from\x20is\x20mandatory');}if(_[_0x0a9e('0x83')](_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x54')])||_0x27041d['body'][_0x0a9e('0x54')]===''){throw new db[(_0x0a9e('0x68'))][(_0x0a9e('0x69'))](_0x0a9e('0x84'));}if(_[_0x0a9e('0x83')](_0x27041d['body'][_0x0a9e('0x85')])){throw new db[(_0x0a9e('0x68'))]['ValidationError'](_0x0a9e('0x86')+_0x4f4d2d);}if(!_[_0x0a9e('0x87')](_0x4f4d2d,_0x27041d[_0x0a9e('0x54')]['mapKey'])){throw new db['Sequelize']['ValidationError'](_0x0a9e('0x88')+_0x4f4d2d);}_0x3ceba6[_0x27041d[_0x0a9e('0x54')]['mapKey']]=_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x74')];return db[_0x0a9e('0x89')]['find']({'where':{'id':_0x27041d[_0x0a9e('0x67')][_0x0a9e('0x6e')]},'include':[{'model':db[_0x0a9e('0x8a')],'as':_0x0a9e('0x8b'),'where':_0x3ceba6,'limit':0x1,'order':[[_0x0a9e('0x6d'),_0x0a9e('0x8c')]]}]});})[_0x0a9e('0x2e')](handleEntityNotFound(_0x5e725e,null))[_0x0a9e('0x2e')](function(_0x3b5bda){if(_0x3b5bda){_0x27041d['list']=_[_0x0a9e('0x8d')](_0x3b5bda,['Contacts']);if(_0x3b5bda[_0x0a9e('0x8b')][_0x0a9e('0x52')]){return _0x3b5bda[_0x0a9e('0x8b')][0x0];}var _0x3cf222=_[_0x0a9e('0x8e')](_0x27041d[_0x0a9e('0x54')],{'firstName':_0x27041d['body'][_0x0a9e('0x74')],'ListId':_0x3b5bda['id']});_0x3cf222[_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x85')]]=_0x27041d[_0x0a9e('0x54')]['from'];return db[_0x0a9e('0x8a')][_0x0a9e('0x57')](_0x3cf222,{'fields':_0xf8c6c4,'raw':!![]});}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x5e725e,null))[_0x0a9e('0x2e')](function(_0xc2e7b){if(_0xc2e7b){_0x27041d[_0x0a9e('0x8f')]=_0xc2e7b;var _0x238c24={'ContactId':_0xc2e7b['id'],'phone':_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x74')],'SmsAccountId':_0x23b447[_0x0a9e('0x50')]['id']};var _0x57f0ad={'ContactId':_0xc2e7b['id'],'SmsAccountId':_0x23b447[_0x0a9e('0x50')]['id'],'closed':![]};return db[_0x0a9e('0x90')][_0x0a9e('0x53')]({'where':_0x57f0ad})[_0x0a9e('0x2e')](function(_0xea8bd1){if(_0xea8bd1){return[_0xea8bd1,![]];}return db[_0x0a9e('0x90')][_0x0a9e('0x57')](_0x238c24)[_0x0a9e('0x2e')](function(_0x566b90){return[_0x566b90,!![]];});});}})[_0x0a9e('0x91')](function(_0xd2391,_0x1a9ef1){_0x27041d['interaction']=_0xd2391[_0x0a9e('0x92')]({'plain':!![]});_0x27041d[_0x0a9e('0x93')][_0x0a9e('0x94')]=![];if(_0x1a9ef1){if(_0x27041d[_0x0a9e('0x67')][_0x0a9e('0x95')]){_0x27041d[_0x0a9e('0x63')][_0x0a9e('0x96')]({'id':0x0,'priority':_0x27041d[_0x0a9e('0x63')][_0x0a9e('0x52')]+0x1,'app':_0x0a9e('0x97'),'appdata':'unmanaged','interval':_0x0a9e('0x98')});}_0x27041d[_0x0a9e('0x93')][_0x0a9e('0x94')]=!![];}return db[_0x0a9e('0x99')][_0x0a9e('0x57')]({'phone':_0x27041d[_0x0a9e('0x54')]['from'],'messageId':_0x27041d[_0x0a9e('0x54')]['messageId'],'body':_0x27041d['body']['body'],'SmsAccountId':_0x23b447[_0x0a9e('0x50')]['id'],'SmsInteractionId':_0xd2391['id'],'direction':'in','ContactId':_0xd2391[_0x0a9e('0x9a')],'AttachmentId':_0x27041d[_0x0a9e('0x54')][_0x0a9e('0x9b')]});})['then'](function(_0x4156a5){_0x27041d[_0x0a9e('0x22')]=_0x4156a5;if(_0x27041d[_0x0a9e('0x93')][_0x0a9e('0x9c')]){return db[_0x0a9e('0x9d')]['find']({'attributes':['id','name'],'where':{'id':_0x27041d[_0x0a9e('0x93')][_0x0a9e('0x9c')]}})[_0x0a9e('0x2e')](function(_0x5e85d0){if(_0x5e85d0){_0x27041d[_0x0a9e('0x63')][_0x0a9e('0x9e')]({'id':0x0,'priority':0x0,'app':_0x0a9e('0x9f'),'appdata':_0x5e85d0['name']+','+(_0x27041d[_0x0a9e('0x67')][_0x0a9e('0xa0')]||0xa),'interval':_0x0a9e('0x98')});}return respondWithRpcPromise('Start',_0x0a9e('0xa1'),_0x27041d);});}return respondWithRpcPromise(_0x0a9e('0xa2'),_0x0a9e('0xa1'),_0x27041d);})['then'](function(_0x549697){if(_0x549697){var _0x53ef46=0xc8;var _0x3b04fd=_0x0a9e('0xa3');logger[_0x0a9e('0x1b')](_0x0a9e('0x1d'),_0x3b04fd,_0x53ef46,'entity\x20found');logger[_0x0a9e('0xa4')]('SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s',_0x3b04fd,_0x53ef46,_0x0a9e('0xa5'),JSON[_0x0a9e('0x1e')](_0x549697));if(_0x27041d[_0x0a9e('0x67')]['type']===_0x0a9e('0x71')){return _0x5e725e[_0x0a9e('0x25')](_0x53ef46)[_0x0a9e('0xa6')]('Content-Type',_0x0a9e('0xa7'))['send'](_0x0a9e('0xa8'));}else{return _0x5e725e['status'](_0x53ef46)[_0x0a9e('0x2a')](_0x549697);}}})['catch'](handleError(_0x5e725e,null));};exports[_0x0a9e('0xa9')]=function(_0x37215d,_0xa288e4,_0x10ace8){return db[_0x0a9e('0x34')][_0x0a9e('0x59')]({'where':{'id':_0x37215d[_0x0a9e('0x50')]['id']}})['then'](handleEntityNotFound(_0xa288e4,null))[_0x0a9e('0x2e')](function(_0x1c9ea2){if(_0x1c9ea2){return db['sequelize'][_0x0a9e('0xaa')](function(_0x3753ca){return db['SmsApplication'][_0x0a9e('0x2f')]({'where':{'SmsAccountId':_0x37215d[_0x0a9e('0x50')]['id']},'transaction':_0x3753ca})[_0x0a9e('0x2e')](function(_0x569528){var _0x3766d7=_[_0x0a9e('0x48')](_0x37215d[_0x0a9e('0x54')],function(_0x3f0d64){_0x3f0d64[_0x0a9e('0x5a')]=_0x37215d[_0x0a9e('0x50')]['id'];return _0x3f0d64;});return db[_0x0a9e('0xab')][_0x0a9e('0xac')](_0x3766d7,{'transaction':_0x3753ca});});})[_0x0a9e('0x2e')](function(){return db[_0x0a9e('0xab')]['findAndCountAll']({'where':{'SmsAccountId':_0x37215d[_0x0a9e('0x50')]['id']},'order':'priority'});});}})[_0x0a9e('0x2e')](respondWithResult(_0xa288e4,null))[_0x0a9e('0x4e')](handleError(_0xa288e4,null));};exports[_0x0a9e('0xad')]=function(_0x315e31,_0x5d577b,_0x2d45db){var _0x5691ac={};var _0x119708={};var _0x469035;var _0x2977a7;return db['SmsAccount'][_0x0a9e('0x59')]({'where':{'id':_0x315e31[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x5d577b,null))[_0x0a9e('0x2e')](function(_0x31e1e0){if(_0x31e1e0){_0x469035=_0x31e1e0;_0x119708[_0x0a9e('0x3d')]=_[_0x0a9e('0x51')](db['SmsApplication'][_0x0a9e('0x35')]);_0x119708[_0x0a9e('0x37')]=_[_0x0a9e('0x51')](_0x315e31[_0x0a9e('0x37')]);_0x119708[_0x0a9e('0x39')]=_[_0x0a9e('0x3a')](_0x119708[_0x0a9e('0x3d')],_0x119708['query']);_0x5691ac['attributes']=_[_0x0a9e('0x3a')](_0x119708[_0x0a9e('0x3d')],qs[_0x0a9e('0x3c')](_0x315e31[_0x0a9e('0x37')][_0x0a9e('0x3c')]));_0x5691ac[_0x0a9e('0x3b')]=_0x5691ac[_0x0a9e('0x3b')]['length']?_0x5691ac[_0x0a9e('0x3b')]:_0x119708[_0x0a9e('0x3d')];_0x5691ac[_0x0a9e('0x40')]=qs[_0x0a9e('0x41')](_0x315e31[_0x0a9e('0x37')][_0x0a9e('0x41')]);_0x5691ac[_0x0a9e('0x42')]=qs['filters'](_[_0x0a9e('0x43')](_0x315e31[_0x0a9e('0x37')],_0x119708[_0x0a9e('0x39')]));if(_0x315e31['query'][_0x0a9e('0x47')]){_0x5691ac[_0x0a9e('0x42')]=_[_0x0a9e('0x46')](_0x5691ac[_0x0a9e('0x42')],{'$or':_['map'](_0x5691ac[_0x0a9e('0x3b')],function(_0xcbbea0){var _0x21d082={};_0x21d082[_0xcbbea0]={'$like':'%'+_0x315e31[_0x0a9e('0x37')][_0x0a9e('0x47')]+'%'};return _0x21d082;})});}_0x5691ac=_[_0x0a9e('0x46')]({},_0x5691ac,_0x315e31[_0x0a9e('0x49')]);return _0x469035[_0x0a9e('0xad')](_0x5691ac);}})['then'](function(_0x3ede01){if(_0x3ede01){_0x2977a7=_0x3ede01[_0x0a9e('0x52')];if(!_0x315e31[_0x0a9e('0x37')][_0x0a9e('0x3e')]('nolimit')){_0x5691ac['limit']=qs[_0x0a9e('0x28')](_0x315e31[_0x0a9e('0x37')][_0x0a9e('0x28')]);_0x5691ac['offset']=qs[_0x0a9e('0x27')](_0x315e31[_0x0a9e('0x37')]['offset']);}return _0x469035[_0x0a9e('0xad')](_0x5691ac);}})['then'](function(_0x35cc2a){if(_0x35cc2a){return _0x35cc2a?{'count':_0x2977a7,'rows':_0x35cc2a}:null;}})['then'](respondWithResult(_0x5d577b,null))['catch'](handleError(_0x5d577b,null));};exports['getInteractions']=function(_0xad4d10,_0x4297d1,_0x19f800){var _0x20007e={'raw':![],'where':{}};var _0x7d59a9={};var _0xe17af8={'count':0x0,'rows':[]};return db['SmsAccount'][_0x0a9e('0x59')]({'where':{'id':_0xad4d10[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x4297d1,null))[_0x0a9e('0x2e')](function(_0x293b22){if(_0x293b22){_0x7d59a9[_0x0a9e('0x3d')]=_[_0x0a9e('0x51')](db['SmsInteraction']['rawAttributes']);_0x7d59a9[_0x0a9e('0x37')]=_['keys'](_0xad4d10[_0x0a9e('0x37')]);_0x7d59a9[_0x0a9e('0x39')]=_[_0x0a9e('0x3a')](_0x7d59a9[_0x0a9e('0x3d')],_0x7d59a9[_0x0a9e('0x37')]);_0x20007e[_0x0a9e('0x3b')]=_['intersection'](_0x7d59a9[_0x0a9e('0x3d')],qs['fields'](_0xad4d10['query'][_0x0a9e('0x3c')]));_0x20007e['attributes']=_0x20007e[_0x0a9e('0x3b')]['length']?_0x20007e['attributes']:_0x7d59a9[_0x0a9e('0x3d')];if(!_0xad4d10['query'][_0x0a9e('0x3e')](_0x0a9e('0x3f'))){_0x20007e[_0x0a9e('0x28')]=qs['limit'](_0xad4d10[_0x0a9e('0x37')][_0x0a9e('0x28')]);_0x20007e[_0x0a9e('0x27')]=qs['offset'](_0xad4d10['query'][_0x0a9e('0x27')]);}_0x20007e[_0x0a9e('0x40')]=qs[_0x0a9e('0x41')](_0xad4d10[_0x0a9e('0x37')][_0x0a9e('0x41')]);_0x20007e[_0x0a9e('0x42')]=qs[_0x0a9e('0x39')](_[_0x0a9e('0x43')](_0xad4d10[_0x0a9e('0x37')],_0x7d59a9[_0x0a9e('0x39')]));_0x20007e['where']['SmsAccountId']=_0x293b22['id'];if(_0xad4d10['query'][_0x0a9e('0x47')]){_0x20007e[_0x0a9e('0x42')]=_[_0x0a9e('0x46')](_0x20007e[_0x0a9e('0x42')],{'$or':_[_0x0a9e('0x48')](_0x20007e[_0x0a9e('0x3b')],function(_0x2b97fc){var _0x307d13={};_0x307d13[_0x2b97fc]={'$like':'%'+_0xad4d10['query']['filter']+'%'};return _0x307d13;})});}_0x20007e=_[_0x0a9e('0x46')]({},_0x20007e,_0xad4d10[_0x0a9e('0x49')]);return db['SmsInteraction'][_0x0a9e('0x26')]({'where':_0x20007e[_0x0a9e('0x42')]})[_0x0a9e('0x2e')](function(_0x19e024){_0xe17af8[_0x0a9e('0x26')]=_0x19e024;if(_0xad4d10[_0x0a9e('0x37')][_0x0a9e('0x4a')]){_0x20007e[_0x0a9e('0x4b')]=[{'model':db[_0x0a9e('0x8a')],'as':_0x0a9e('0xae'),'required':![]},{'model':db[_0x0a9e('0x9d')],'as':_0x0a9e('0xaf'),'attributes':['name',_0x0a9e('0xb0'),_0x0a9e('0xb1')],'required':![]},{'model':db[_0x0a9e('0xb2')],'as':_0x0a9e('0xb3'),'attributes':['id',_0x0a9e('0x32'),_0x0a9e('0xb4')],'where':_0xad4d10[_0x0a9e('0x37')][_0x0a9e('0xb5')]?{'id':_0xad4d10[_0x0a9e('0x37')][_0x0a9e('0xb5')]}:undefined,'required':_0xad4d10[_0x0a9e('0x37')][_0x0a9e('0xb5')]?!![]:![]}];}return db['SmsInteraction']['findAll'](_0x20007e);})[_0x0a9e('0x2e')](function(_0x401207){_0xe17af8[_0x0a9e('0x4d')]=_0x401207;return _0xe17af8;});}})[_0x0a9e('0x2e')](respondWithFilteredResult(_0x4297d1,_0x20007e))[_0x0a9e('0x4e')](handleError(_0x4297d1,null));};exports[_0x0a9e('0xb6')]=function(_0xa8b5de,_0x4f7907,_0x26a204){var _0x49fd0e,_0x26aa44,_0x1ad1d7;if(_[_0x0a9e('0x83')](_0xa8b5de[_0x0a9e('0x54')][_0x0a9e('0x54')])||_0xa8b5de[_0x0a9e('0x54')][_0x0a9e('0x54')]===''){throw new db[(_0x0a9e('0x68'))][(_0x0a9e('0x69'))](_0x0a9e('0x84'));}if(_[_0x0a9e('0x83')](_0xa8b5de[_0x0a9e('0x54')]['to'])){throw new db[(_0x0a9e('0x68'))][(_0x0a9e('0x69'))](_0x0a9e('0xb7'));}_0x49fd0e=_0xa8b5de[_0x0a9e('0x54')]['to'];return db['SmsAccount']['find']({'where':{'id':_0xa8b5de[_0x0a9e('0x50')]['id']},'include':[{'model':db[_0x0a9e('0x89')],'as':'List','include':[{'model':db['CmContact'],'as':_0x0a9e('0x8b'),'where':{'mobile':_0x49fd0e},'limit':0x1,'order':[[_0x0a9e('0x6d'),_0x0a9e('0x8c')]]}]}]})['then'](handleEntityNotFound(_0x4f7907,null))[_0x0a9e('0x2e')](function(_0x5b6447){if(_0x5b6447&&_0x5b6447[_0x0a9e('0xb8')]){_0x26aa44=_0x5b6447['get']({'plain':!![]});if(_0x26aa44[_0x0a9e('0xb8')]&&_0x26aa44['List'][_0x0a9e('0x8b')][_0x0a9e('0x52')]){return _0x26aa44[_0x0a9e('0xb8')]['Contacts'][0x0];}return db[_0x0a9e('0x8a')]['create'](_['defaults'](_0xa8b5de[_0x0a9e('0x54')],{'firstName':_0x49fd0e,'mobile':_0x49fd0e,'phone':_0x49fd0e,'ListId':_0x26aa44[_0x0a9e('0x6e')]}));}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x4f7907,null))[_0x0a9e('0x2e')](function(_0x1d51fd){if(_0x1d51fd){_0x1ad1d7=_0x1d51fd;return db[_0x0a9e('0x90')][_0x0a9e('0x53')]({'where':{'ContactId':_0x1ad1d7['id'],'closed':![],'SmsAccountId':_0x26aa44['id']}})[_0x0a9e('0x2e')](function(_0x1a3143){if(_0x1a3143){return[_0x1a3143,![]];}return db[_0x0a9e('0x90')][_0x0a9e('0x57')]({'UserId':_0xa8b5de[_0x0a9e('0xb9')]['id'],'ContactId':_0x1ad1d7['id'],'SmsAccountId':_0x26aa44['id'],'phone':_0x49fd0e,'firstMsgDirection':_0x0a9e('0xba'),'Messages':[_[_0x0a9e('0x46')](_0xa8b5de[_0x0a9e('0x54')],{'read':![],'body':_0xa8b5de[_0x0a9e('0x54')][_0x0a9e('0x54')],'phone':_0x49fd0e,'SmsAccountId':_0x26aa44['id'],'UserId':_0xa8b5de[_0x0a9e('0xb9')]['id'],'ContactId':_0x1ad1d7['id']})]},{'include':[{'model':db[_0x0a9e('0x99')],'as':'Messages'}]})[_0x0a9e('0x2e')](function(_0xf780f5){return[_0xf780f5,!![]];});});}})[_0x0a9e('0x91')](function(_0x356132,_0x56e63d){if(_0x56e63d){return _0x356132;}return db['SmsMessage']['create'](_[_0x0a9e('0x46')](_0xa8b5de['body'],{'read':![],'body':_0xa8b5de[_0x0a9e('0x54')][_0x0a9e('0x54')],'phone':_0x49fd0e,'SmsAccountId':_0x26aa44['id'],'SmsInteractionId':_0x356132['id'],'UserId':_0xa8b5de[_0x0a9e('0xb9')]['id'],'ContactId':_0x1ad1d7['id']}))[_0x0a9e('0x2e')](function(_0x294c49){_0x356132[_0x0a9e('0xbb')][_0x0a9e('0xbc')]=[];_0x356132[_0x0a9e('0xbb')][_0x0a9e('0xbc')][_0x0a9e('0x96')](_0x294c49['dataValues']);return _0x356132;});})[_0x0a9e('0x2e')](respondWithResult(_0x4f7907,null))['catch'](handleError(_0x4f7907,null));};exports[_0x0a9e('0x25')]=function(_0x586d2f,_0xf4de86,_0x2c5385){if(_0x586d2f[_0x0a9e('0x54')]['id']){delete _0x586d2f['body']['id'];}console[_0x0a9e('0xbd')](_0x0a9e('0xbe'),_0x586d2f['body']);var _0x53c4f0,_0x3fab79,_0x41e19e;return db[_0x0a9e('0x34')]['find']({'where':{'id':_0x586d2f['params']['id']}})['then'](handleEntityNotFound(_0xf4de86,null))[_0x0a9e('0x2e')](function(_0x22c591){if(_0x22c591){_0x41e19e=_0x22c591;logger[_0x0a9e('0xa4')](_0x0a9e('0x1d'),_0x0a9e('0x25'),_0x0a9e('0xbf'),_0x22c591[_0x0a9e('0x70')],util[_0x0a9e('0xc0')](_0x586d2f[_0x0a9e('0x54')],{'showHidden':![],'depth':null}));switch(_0x22c591[_0x0a9e('0x70')]){case _0x0a9e('0x73'):if(_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc1')]&&_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x25')]){_0x3fab79=_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x25')];return db[_0x0a9e('0x99')]['find']({'where':{'messageId':_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc1')]}});}break;case _0x0a9e('0x77'):if(_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc2')]&&_0x586d2f[_0x0a9e('0x54')]['statusInt']){_0x3fab79=_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc3')];return db[_0x0a9e('0x99')][_0x0a9e('0x53')]({'where':{'messageId':_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc2')]}});}break;case _0x0a9e('0x78'):if(_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x79')]&&_0x586d2f['body']['status_code']){_0x3fab79=_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc4')];return db['SmsMessage'][_0x0a9e('0x53')]({'where':{'messageId':_0x586d2f[_0x0a9e('0x54')]['message_id']}});}break;case _0x0a9e('0x7c'):var _0x4fc371=_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x7d')][0x0];if(_0x4fc371['messageId']&&_0x4fc371[_0x0a9e('0x25')][_0x0a9e('0xc5')]==='DELIVERED'){_0x3fab79=_0x4fc371[_0x0a9e('0x25')][_0x0a9e('0xc5')];return db['SmsMessage'][_0x0a9e('0x53')]({'where':{'messageId':_0x4fc371[_0x0a9e('0x72')]}});}break;case _0x0a9e('0xc6'):if(_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x72')]&&_0x586d2f[_0x0a9e('0x54')]['status']){_0x3fab79=_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x25')];return db['SmsMessage'][_0x0a9e('0x53')]({'where':{'messageId':_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0x72')]}});}break;}}})[_0x0a9e('0x2e')](handleEntityNotFound(_0xf4de86,null))[_0x0a9e('0x2e')](function(_0x200f3e){if(_0x200f3e){_0x53c4f0=_0x200f3e;switch(_0x41e19e[_0x0a9e('0x70')]){case'skebby':if(_0x3fab79==='DELIVERED'){return _0x53c4f0['update']({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x0a9e('0x25'),_0x0a9e('0x73'),util['inspect'](_0x586d2f['body'],{'showHidden':![],'depth':null}));}break;case _0x0a9e('0x77'):if(_0x3fab79==='1'){return _0x53c4f0['update']({'read':!![]});}else{logger[_0x0a9e('0x1f')](_0x0a9e('0x1d'),_0x0a9e('0x25'),_0x0a9e('0x73'),util[_0x0a9e('0xc0')](_0x586d2f[_0x0a9e('0x54')],{'showHidden':![],'depth':null}));}break;case'clicksend':if(!_0x586d2f[_0x0a9e('0x54')][_0x0a9e('0xc7')]&&_0x3fab79>=0xc8&&_0x3fab79<=0xce){return _0x53c4f0['update']({'read':!![]});}else{logger[_0x0a9e('0x1f')](_0x0a9e('0x1d'),_0x0a9e('0x25'),_0x0a9e('0x78'),util[_0x0a9e('0xc0')](_0x586d2f[_0x0a9e('0x54')],{'showHidden':![],'depth':null}));}break;case _0x0a9e('0x7c'):var _0x4a36df=_0x586d2f[_0x0a9e('0x54')]['results'][0x0];if(_0x4a36df[_0x0a9e('0x25')][_0x0a9e('0xc5')]==='DELIVERED'){return _0x53c4f0[_0x0a9e('0x2d')]({'read':!![]});}else{logger[_0x0a9e('0x1f')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x0a9e('0x25'),'infobip',util[_0x0a9e('0xc0')](_0x586d2f[_0x0a9e('0x54')],{'showHidden':![],'depth':null}));}break;case'clickatell':if(_0x3fab79==_0x0a9e('0xc8')||_0x3fab79=='RECEIVED_BY_RECIPIENT'){return _0x53c4f0[_0x0a9e('0x2d')]({'read':!![]});}else{logger[_0x0a9e('0x1f')](_0x0a9e('0x1d'),_0x0a9e('0x25'),_0x0a9e('0xc6'),util[_0x0a9e('0xc0')](_0x586d2f[_0x0a9e('0x54')],{'showHidden':![],'depth':null}));}break;}return _0x53c4f0;}})['then'](respondWithResult(_0xf4de86,null))[_0x0a9e('0x4e')](handleError(_0xf4de86,null));};exports[_0x0a9e('0xc9')]=function(_0x17854b,_0x1b1971,_0x38e256){var _0x5932ad,_0xb376ed,_0x49a6b2;return db['SmsAccount'][_0x0a9e('0x53')]({'where':{'id':_0x17854b['params']['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x1b1971,null))[_0x0a9e('0x2e')](function(_0x58d5fd){if(_0x58d5fd){_0x49a6b2=_0x58d5fd;logger[_0x0a9e('0xa4')](_0x0a9e('0x1d'),_0x0a9e('0x25'),_0x0a9e('0xbf'),_0x58d5fd[_0x0a9e('0x70')],util[_0x0a9e('0xc0')](_0x17854b[_0x0a9e('0x37')],{'showHidden':![],'depth':null}));switch(_0x58d5fd[_0x0a9e('0x70')]){case _0x0a9e('0x7e'):if(_0x17854b['query'][_0x0a9e('0xca')]&&_0x17854b[_0x0a9e('0x37')][_0x0a9e('0xcb')]){_0xb376ed=_0x17854b[_0x0a9e('0x37')]['state'];return db[_0x0a9e('0x99')][_0x0a9e('0x53')]({'where':{'messageId':_0x17854b[_0x0a9e('0x37')]['message-id']}});}break;}}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x1b1971,null))[_0x0a9e('0x2e')](function(_0x393e21){if(_0x393e21){_0x5932ad=_0x393e21;switch(_0x49a6b2['type']){case _0x0a9e('0x7e'):if(_0xb376ed==='2'||_0xb376ed==='6'){return _0x5932ad['update']({'read':!![]});}else{logger[_0x0a9e('0x1f')](_0x0a9e('0x1d'),_0x0a9e('0x25'),_0x0a9e('0x7e'),util[_0x0a9e('0xc0')](_0x17854b[_0x0a9e('0x37')],{'showHidden':![],'depth':null}));};break;}return _0x5932ad;}})[_0x0a9e('0x2e')](respondWithResult(_0x1b1971,null))['catch'](handleError(_0x1b1971,null));};exports[_0x0a9e('0xcc')]=function(_0xabaf97,_0x7c4db6,_0x14444e){return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0xabaf97[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x7c4db6,null))[_0x0a9e('0x2e')](function(_0x4712c9){if(_0x4712c9){return _0x4712c9[_0x0a9e('0xcc')](_0xabaf97[_0x0a9e('0x54')][_0x0a9e('0x5c')],_[_0x0a9e('0x8d')](_0xabaf97[_0x0a9e('0x54')],[_0x0a9e('0x5c'),'id'])||{})[_0x0a9e('0x91')](function(_0x28932f){for(var _0x6276a4=0x0;_0x6276a4<_0xabaf97[_0x0a9e('0x54')][_0x0a9e('0x5c')][_0x0a9e('0x52')];_0x6276a4+=0x1){socket[_0x0a9e('0xcd')]('userSmsAccount:save',{'UserId':_0xabaf97[_0x0a9e('0x54')][_0x0a9e('0x5c')][_0x6276a4],'SmsAccountId':_0xabaf97[_0x0a9e('0x50')]['id']});}return _0x28932f;});}})['then'](respondWithResult(_0x7c4db6,null))[_0x0a9e('0x4e')](handleError(_0x7c4db6,null));};exports['removeAgents']=function(_0xf007cd,_0xf2f758,_0x20a292){var _0x39c4da;return db[_0x0a9e('0x34')][_0x0a9e('0x53')]({'where':{'id':_0xf007cd[_0x0a9e('0x50')]['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0xf2f758,null))['then'](function(_0x3ccbed){if(_0x3ccbed){return _0x3ccbed[_0x0a9e('0xce')](_0xf007cd['query'][_0x0a9e('0x5c')])[_0x0a9e('0x2e')](function(_0x579bb0){if(_['isArray'](_0xf007cd[_0x0a9e('0x37')][_0x0a9e('0x5c')])){for(var _0x315299=0x0;_0x315299<_0xf007cd[_0x0a9e('0x37')]['ids'][_0x0a9e('0x52')];_0x315299+=0x1){socket[_0x0a9e('0xcd')](_0x0a9e('0xcf'),{'UserId':_0xf007cd[_0x0a9e('0x37')][_0x0a9e('0x5c')][_0x315299],'SmsAccountId':_0xf007cd['params']['id']});}}else{socket[_0x0a9e('0xcd')](_0x0a9e('0xcf'),{'UserId':_0xf007cd['query'][_0x0a9e('0x5c')],'SmsAccountId':_0xf007cd[_0x0a9e('0x50')]['id']});}});}})[_0x0a9e('0x2e')](respondWithStatusCode(_0xf2f758,null))['catch'](handleError(_0xf2f758,null));};exports['getAgents']=function(_0x45ef37,_0x36d905,_0x271485){var _0x283bbb={};var _0x23a073={};var _0x430aa1;var _0x312e02;return db[_0x0a9e('0x34')]['findOne']({'where':{'id':_0x45ef37['params']['id']}})[_0x0a9e('0x2e')](handleEntityNotFound(_0x36d905,null))['then'](function(_0x803bc){if(_0x803bc){_0x430aa1=_0x803bc;_0x23a073[_0x0a9e('0x3d')]=_[_0x0a9e('0x51')](db[_0x0a9e('0x9d')]['rawAttributes']);_0x23a073[_0x0a9e('0x37')]=_[_0x0a9e('0x51')](_0x45ef37['query']);_0x23a073[_0x0a9e('0x39')]=_['intersection'](_0x23a073[_0x0a9e('0x3d')],_0x23a073[_0x0a9e('0x37')]);_0x283bbb[_0x0a9e('0x3b')]=_[_0x0a9e('0x3a')](_0x23a073[_0x0a9e('0x3d')],qs[_0x0a9e('0x3c')](_0x45ef37['query'][_0x0a9e('0x3c')]));_0x283bbb['attributes']=_0x283bbb[_0x0a9e('0x3b')][_0x0a9e('0x52')]?_0x283bbb[_0x0a9e('0x3b')]:_0x23a073[_0x0a9e('0x3d')];_0x283bbb[_0x0a9e('0x40')]=qs[_0x0a9e('0x41')](_0x45ef37[_0x0a9e('0x37')]['sort']);_0x283bbb[_0x0a9e('0x42')]=qs[_0x0a9e('0x39')](_[_0x0a9e('0x43')](_0x45ef37[_0x0a9e('0x37')],_0x23a073[_0x0a9e('0x39')]));if(_0x45ef37['query'][_0x0a9e('0x47')]){_0x283bbb[_0x0a9e('0x42')]=_['merge'](_0x283bbb['where'],{'$or':_[_0x0a9e('0x48')](_0x283bbb[_0x0a9e('0x3b')],function(_0x439bc7){var _0x32cdbe={};_0x32cdbe[_0x439bc7]={'$like':'%'+_0x45ef37[_0x0a9e('0x37')][_0x0a9e('0x47')]+'%'};return _0x32cdbe;})});}_0x283bbb=_['merge']({},_0x283bbb,_0x45ef37[_0x0a9e('0x49')]);return _0x430aa1[_0x0a9e('0xd0')](_0x283bbb);}})[_0x0a9e('0x2e')](function(_0x4bf3c7){if(_0x4bf3c7){_0x312e02=_0x4bf3c7[_0x0a9e('0x52')];if(!_0x45ef37[_0x0a9e('0x37')][_0x0a9e('0x3e')](_0x0a9e('0x3f'))){_0x283bbb['limit']=qs['limit'](_0x45ef37[_0x0a9e('0x37')][_0x0a9e('0x28')]);_0x283bbb[_0x0a9e('0x27')]=qs[_0x0a9e('0x27')](_0x45ef37[_0x0a9e('0x37')][_0x0a9e('0x27')]);}return _0x430aa1[_0x0a9e('0xd0')](_0x283bbb);}})[_0x0a9e('0x2e')](function(_0x4a4f79){if(_0x4a4f79){return _0x4a4f79?{'count':_0x312e02,'rows':_0x4a4f79}:null;}})[_0x0a9e('0x2e')](respondWithResult(_0x36d905,null))['catch'](handleError(_0x36d905,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35d2=['hook','../../mysqldb','emit','hasOwnProperty'];(function(_0x8538bd,_0x406733){var _0x32216d=function(_0x3e30bc){while(--_0x3e30bc){_0x8538bd['push'](_0x8538bd['shift']());}};_0x32216d(++_0x406733);}(_0x35d2,0x85));var _0x235d=function(_0xe79399,_0x32bc39){_0xe79399=_0xe79399-0x0;var _0x40f1df=_0x35d2[_0xe79399];return _0x40f1df;};'use strict';var EventEmitter=require('events');var SmsAccount=require(_0x235d('0x0'))['db']['SmsAccount'];var SmsAccountEvents=new EventEmitter();SmsAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x204864){return function(_0x5b49d3,_0x42989a,_0x371a7e){SmsAccountEvents[_0x235d('0x1')](_0x204864+':'+_0x5b49d3['id'],_0x5b49d3);SmsAccountEvents[_0x235d('0x1')](_0x204864,_0x5b49d3);_0x371a7e(null);};}for(var e in events){if(events[_0x235d('0x2')](e)){var event=events[e];SmsAccount[_0x235d('0x3')](e,emitEvent(event));}}module['exports']=SmsAccountEvents;
\ No newline at end of file
+var _0x2492=['hook','exports','events','SmsAccount','setMaxListeners','emit','hasOwnProperty'];(function(_0x32c012,_0xe3c576){var _0x48562e=function(_0x505228){while(--_0x505228){_0x32c012['push'](_0x32c012['shift']());}};_0x48562e(++_0xe3c576);}(_0x2492,0xe9));var _0x2249=function(_0x2f09ad,_0x3a5070){_0x2f09ad=_0x2f09ad-0x0;var _0x525148=_0x2492[_0x2f09ad];return _0x525148;};'use strict';var EventEmitter=require(_0x2249('0x0'));var SmsAccount=require('../../mysqldb')['db'][_0x2249('0x1')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0x2249('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x57fd95){return function(_0x5269db,_0x7509f,_0x326057){SmsAccountEvents[_0x2249('0x3')](_0x57fd95+':'+_0x5269db['id'],_0x5269db);SmsAccountEvents[_0x2249('0x3')](_0x57fd95,_0x5269db);_0x326057(null);};}for(var e in events){if(events[_0x2249('0x4')](e)){var event=events[e];SmsAccount[_0x2249('0x5')](e,emitEvent(event));}}module[_0x2249('0x6')]=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41fa=['api','moment','bluebird','./smsAccount.attributes','exports','define','SmsAccount','lodash','util','../../config/logger'];(function(_0x1b27e1,_0x342aca){var _0x276338=function(_0xba76c1){while(--_0xba76c1){_0x1b27e1['push'](_0x1b27e1['shift']());}};_0x276338(++_0x342aca);}(_0x41fa,0x1f1));var _0xa41f=function(_0x30c7c5,_0x168208){_0x30c7c5=_0x30c7c5-0x0;var _0x29e24e=_0x41fa[_0x30c7c5];return _0x29e24e;};'use strict';var _=require(_0xa41f('0x0'));var util=require(_0xa41f('0x1'));var logger=require(_0xa41f('0x2'))(_0xa41f('0x3'));var moment=require(_0xa41f('0x4'));var BPromise=require(_0xa41f('0x5'));var rp=require('request-promise');var attributes=require(_0xa41f('0x6'));module[_0xa41f('0x7')]=function(_0x1fedea,_0x2e0091){return _0x1fedea[_0xa41f('0x8')](_0xa41f('0x9'),attributes,{'tableName':'sms_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf290=['bluebird','request-promise','./smsAccount.attributes','exports','define','sms_accounts','util','api'];(function(_0x298b53,_0x3f830d){var _0x370c14=function(_0x16a8d7){while(--_0x16a8d7){_0x298b53['push'](_0x298b53['shift']());}};_0x370c14(++_0x3f830d);}(_0xf290,0xde));var _0x0f29=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0xf290[_0x21549c];return _0x426cbd;};'use strict';var _=require('lodash');var util=require(_0x0f29('0x0'));var logger=require('../../config/logger')(_0x0f29('0x1'));var moment=require('moment');var BPromise=require(_0x0f29('0x2'));var rp=require(_0x0f29('0x3'));var attributes=require(_0x0f29('0x4'));module[_0x0f29('0x5')]=function(_0xfdab92,_0x5984ba){return _0xfdab92[_0x0f29('0x6')]('SmsAccount',attributes,{'tableName':_0x0f29('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['message','result','catch','ShowSmsAccount','SmsAccount','options','attributes','include','map','model','then','info','lodash','util','moment','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','request','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','SmsAccount,\x20%s,\x20%s'];(function(_0x43e657,_0x3e7d12){var _0x1a2ea6=function(_0x4df4de){while(--_0x4df4de){_0x43e657['push'](_0x43e657['shift']());}};_0x1a2ea6(++_0x3e7d12);}(_0xa9e0,0x123));var _0x0a9e=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0xa9e0[_0x139a3c];return _0x2b375b;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x0a9e('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x0a9e('0x4'))(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var jayson=require(_0x0a9e('0x7'));var client=jayson[_0x0a9e('0x8')]['http']({'port':0x232a});config[_0x0a9e('0x9')]=_[_0x0a9e('0xa')](config[_0x0a9e('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(config[_0x0a9e('0x9')]);require('./smsAccount.socket')['register'](socket);function respondWithRpcPromise(_0x39753a,_0xf81284,_0x307b3e){return new BPromise(function(_0x3ab53f,_0xfeb75b){return client[_0x0a9e('0xb')](_0x39753a,_0x307b3e)['then'](function(_0x50dfb2){logger['info']('SmsAccount,\x20%s,\x20%s',_0xf81284,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0xf81284,_0x0a9e('0xc'),JSON[_0x0a9e('0xf')](_0x50dfb2));if(_0x50dfb2[_0x0a9e('0x10')]){if(_0x50dfb2['error'][_0x0a9e('0x11')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0x12'),_0xf81284,_0x50dfb2[_0x0a9e('0x10')][_0x0a9e('0x13')]);return _0xfeb75b(_0x50dfb2[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')]('SmsAccount,\x20%s,\x20%s',_0xf81284,_0x50dfb2[_0x0a9e('0x10')]['message']);return _0x3ab53f(_0x50dfb2[_0x0a9e('0x10')][_0x0a9e('0x13')]);}else{logger['info'](_0x0a9e('0x12'),_0xf81284,'request\x20sent');_0x3ab53f(_0x50dfb2[_0x0a9e('0x14')][_0x0a9e('0x13')]);}})[_0x0a9e('0x15')](function(_0x205fd6){logger[_0x0a9e('0x10')](_0x0a9e('0x12'),_0xf81284,_0x205fd6);_0xfeb75b(_0x205fd6);});});}exports[_0x0a9e('0x16')]=function(_0x20559e){var _0x1314ae=this;return new Promise(function(_0x112016,_0x1c696a){return db[_0x0a9e('0x17')]['find']({'raw':_0x20559e[_0x0a9e('0x18')]?_0x20559e[_0x0a9e('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x20559e[_0x0a9e('0x18')]?_0x20559e['options']['where']||null:null,'attributes':_0x20559e[_0x0a9e('0x18')]?_0x20559e[_0x0a9e('0x18')][_0x0a9e('0x19')]||null:null,'include':_0x20559e[_0x0a9e('0x18')]?_0x20559e['options'][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x20559e[_0x0a9e('0x18')][_0x0a9e('0x1a')],function(_0x370d86){return{'model':db[_0x370d86[_0x0a9e('0x1c')]],'as':_0x370d86['as'],'attributes':_0x370d86[_0x0a9e('0x19')],'include':_0x370d86['include']?_['map'](_0x370d86[_0x0a9e('0x1a')],function(_0x3a8e58){return{'model':db[_0x3a8e58[_0x0a9e('0x1c')]],'as':_0x3a8e58['as'],'attributes':_0x3a8e58[_0x0a9e('0x19')],'include':_0x3a8e58['include']?_[_0x0a9e('0x1b')](_0x3a8e58['include'],function(_0x45a1e7){return{'model':db[_0x45a1e7['model']],'as':_0x45a1e7['as'],'attributes':_0x45a1e7[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x1d')](function(_0x25fba9){logger[_0x0a9e('0x1e')](_0x0a9e('0x16'),_0x20559e);logger[_0x0a9e('0xd')](_0x0a9e('0x16'),_0x20559e,JSON[_0x0a9e('0xf')](_0x25fba9));_0x112016(_0x25fba9);})['catch'](function(_0x3652a7){logger[_0x0a9e('0x10')](_0x0a9e('0x16'),_0x3652a7[_0x0a9e('0x13')],_0x20559e);_0x1c696a(_0x1314ae['error'](0x1f4,_0x3652a7[_0x0a9e('0x13')]));});});};
\ No newline at end of file
+var _0xe2f9=['redis','socket.io-emitter','./smsAccount.socket','request','then','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','SmsAccount,\x20%s,\x20%s','message','info','ShowSmsAccount','SmsAccount','options','where','attributes','include','map','model','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x2a6c3f,_0x3a98ab){var _0x1871c0=function(_0x288ed5){while(--_0x288ed5){_0x2a6c3f['push'](_0x2a6c3f['shift']());}};_0x1871c0(++_0x3a98ab);}(_0xe2f9,0xdc));var _0x9e2f=function(_0x361805,_0x39bf7b){_0x361805=_0x361805-0x0;var _0x2066b0=_0xe2f9[_0x361805];return _0x2066b0;};'use strict';var _=require(_0x9e2f('0x0'));var util=require(_0x9e2f('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x9e2f('0x2'));var fs=require('fs');var Redis=require(_0x9e2f('0x3'));var db=require(_0x9e2f('0x4'))['db'];var utils=require(_0x9e2f('0x5'));var logger=require('../../config/logger')(_0x9e2f('0x6'));var config=require(_0x9e2f('0x7'));var jayson=require(_0x9e2f('0x8'));var client=jayson[_0x9e2f('0x9')][_0x9e2f('0xa')]({'port':0x232a});config[_0x9e2f('0xb')]=_['defaults'](config[_0x9e2f('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x9e2f('0xc'))(new Redis(config[_0x9e2f('0xb')]));require(_0x9e2f('0xd'))['register'](socket);function respondWithRpcPromise(_0x698b90,_0x3ac826,_0x185666){return new BPromise(function(_0x5df8dc,_0x1cabcd){return client[_0x9e2f('0xe')](_0x698b90,_0x185666)[_0x9e2f('0xf')](function(_0x106baa){logger['info']('SmsAccount,\x20%s,\x20%s',_0x3ac826,_0x9e2f('0x10'));logger[_0x9e2f('0x11')](_0x9e2f('0x12'),_0x3ac826,_0x9e2f('0x10'),JSON[_0x9e2f('0x13')](_0x106baa));if(_0x106baa[_0x9e2f('0x14')]){if(_0x106baa[_0x9e2f('0x14')]['code']===0x1f4){logger[_0x9e2f('0x14')](_0x9e2f('0x15'),_0x3ac826,_0x106baa[_0x9e2f('0x14')][_0x9e2f('0x16')]);return _0x1cabcd(_0x106baa[_0x9e2f('0x14')][_0x9e2f('0x16')]);}logger[_0x9e2f('0x14')]('SmsAccount,\x20%s,\x20%s',_0x3ac826,_0x106baa[_0x9e2f('0x14')][_0x9e2f('0x16')]);return _0x5df8dc(_0x106baa['error'][_0x9e2f('0x16')]);}else{logger[_0x9e2f('0x17')](_0x9e2f('0x15'),_0x3ac826,_0x9e2f('0x10'));_0x5df8dc(_0x106baa['result'][_0x9e2f('0x16')]);}})['catch'](function(_0x22f6f4){logger[_0x9e2f('0x14')](_0x9e2f('0x15'),_0x3ac826,_0x22f6f4);_0x1cabcd(_0x22f6f4);});});}exports[_0x9e2f('0x18')]=function(_0xa5b2ef){var _0x1e306a=this;return new Promise(function(_0x308cc1,_0x3e00ae){return db[_0x9e2f('0x19')]['find']({'raw':_0xa5b2ef[_0x9e2f('0x1a')]?_0xa5b2ef[_0x9e2f('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0xa5b2ef[_0x9e2f('0x1a')]?_0xa5b2ef[_0x9e2f('0x1a')][_0x9e2f('0x1b')]||null:null,'attributes':_0xa5b2ef[_0x9e2f('0x1a')]?_0xa5b2ef[_0x9e2f('0x1a')][_0x9e2f('0x1c')]||null:null,'include':_0xa5b2ef['options']?_0xa5b2ef[_0x9e2f('0x1a')][_0x9e2f('0x1d')]?_[_0x9e2f('0x1e')](_0xa5b2ef['options'][_0x9e2f('0x1d')],function(_0x22b885){return{'model':db[_0x22b885[_0x9e2f('0x1f')]],'as':_0x22b885['as'],'attributes':_0x22b885[_0x9e2f('0x1c')],'include':_0x22b885['include']?_[_0x9e2f('0x1e')](_0x22b885['include'],function(_0x3b508d){return{'model':db[_0x3b508d[_0x9e2f('0x1f')]],'as':_0x3b508d['as'],'attributes':_0x3b508d[_0x9e2f('0x1c')],'include':_0x3b508d['include']?_['map'](_0x3b508d['include'],function(_0x557688){return{'model':db[_0x557688['model']],'as':_0x557688['as'],'attributes':_0x557688[_0x9e2f('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x9e2f('0xf')](function(_0xda2f60){logger[_0x9e2f('0x17')](_0x9e2f('0x18'),_0xa5b2ef);logger[_0x9e2f('0x11')](_0x9e2f('0x18'),_0xa5b2ef,JSON[_0x9e2f('0x13')](_0xda2f60));_0x308cc1(_0xda2f60);})[_0x9e2f('0x20')](function(_0x39417c){logger[_0x9e2f('0x14')](_0x9e2f('0x18'),_0x39417c[_0x9e2f('0x16')],_0xa5b2ef);_0x3e00ae(_0x1e306a[_0x9e2f('0x14')](0x1f4,_0x39417c[_0x9e2f('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2747=['./smsAccount.events','save','remove','update','emit','removeListener','register','smsAccount:'];(function(_0x2b4448,_0x5bcc69){var _0xb4b465=function(_0x5ac741){while(--_0x5ac741){_0x2b4448['push'](_0x2b4448['shift']());}};_0xb4b465(++_0x5bcc69);}(_0x2747,0xd8));var _0x7274=function(_0x2336fe,_0x45bc50){_0x2336fe=_0x2336fe-0x0;var _0x5cd6f9=_0x2747[_0x2336fe];return _0x5cd6f9;};'use strict';var SmsAccountEvents=require(_0x7274('0x0'));var events=[_0x7274('0x1'),_0x7274('0x2'),_0x7274('0x3')];function createListener(_0x5b62c5,_0x452fdc){return function(_0x5f17bc){_0x452fdc[_0x7274('0x4')](_0x5b62c5,_0x5f17bc);};}function removeListener(_0xe1b40f,_0x2531d5){return function(){SmsAccountEvents[_0x7274('0x5')](_0xe1b40f,_0x2531d5);};}exports[_0x7274('0x6')]=function(_0x4b44ab){for(var _0x4a7592=0x0,_0x39932b=events['length'];_0x4a7592<_0x39932b;_0x4a7592++){var _0xcbb412=events[_0x4a7592];var _0x335f74=createListener(_0x7274('0x7')+_0xcbb412,_0x4b44ab);SmsAccountEvents['on'](_0xcbb412,_0x335f74);}};
\ No newline at end of file
+var _0x8f35=['removeListener','register','smsAccount:','./smsAccount.events','save','remove','update','emit'];(function(_0x959ecd,_0x30eb05){var _0xe67abb=function(_0x14de7d){while(--_0x14de7d){_0x959ecd['push'](_0x959ecd['shift']());}};_0xe67abb(++_0x30eb05);}(_0x8f35,0xbb));var _0x58f3=function(_0x32f7d7,_0x54231b){_0x32f7d7=_0x32f7d7-0x0;var _0x133d09=_0x8f35[_0x32f7d7];return _0x133d09;};'use strict';var SmsAccountEvents=require(_0x58f3('0x0'));var events=[_0x58f3('0x1'),_0x58f3('0x2'),_0x58f3('0x3')];function createListener(_0x4e1285,_0xfb9e03){return function(_0x35d8cb){_0xfb9e03[_0x58f3('0x4')](_0x4e1285,_0x35d8cb);};}function removeListener(_0x3814e4,_0x93652a){return function(){SmsAccountEvents[_0x58f3('0x5')](_0x3814e4,_0x93652a);};}exports[_0x58f3('0x6')]=function(_0xde1227){for(var _0xc32c7d=0x0,_0x359232=events['length'];_0xc32c7d<_0x359232;_0xc32c7d++){var _0x3737d0=events[_0xc32c7d];var _0x864497=createListener(_0x58f3('0x7')+_0x3737d0,_0xde1227);SmsAccountEvents['on'](_0x3737d0,_0x864497);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd4f=['Router','../../components/interaction/service','../../config/environment','./smsApplication.controller','isAuthenticated','index','get','/:id','post','create','put','update','destroy','exports','multer','express'];(function(_0x4ae6ef,_0xc2af80){var _0x3cbb4e=function(_0x569ad5){while(--_0x569ad5){_0x4ae6ef['push'](_0x4ae6ef['shift']());}};_0x3cbb4e(++_0xc2af80);}(_0xdd4f,0x1ce));var _0xfdd4=function(_0x5f2f22,_0x4c2c04){_0x5f2f22=_0x5f2f22-0x0;var _0x8db3d3=_0xdd4f[_0x5f2f22];return _0x8db3d3;};'use strict';var multer=require(_0xfdd4('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xfdd4('0x1'));var router=express[_0xfdd4('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0xfdd4('0x3'));var config=require(_0xfdd4('0x4'));var controller=require(_0xfdd4('0x5'));router['get']('/',auth[_0xfdd4('0x6')](),controller[_0xfdd4('0x7')]);router[_0xfdd4('0x8')](_0xfdd4('0x9'),auth[_0xfdd4('0x6')](),controller['show']);router[_0xfdd4('0xa')]('/',auth['isAuthenticated'](),controller[_0xfdd4('0xb')]);router[_0xfdd4('0xc')](_0xfdd4('0x9'),auth['isAuthenticated'](),controller[_0xfdd4('0xd')]);router['delete'](_0xfdd4('0x9'),auth[_0xfdd4('0x6')](),controller[_0xfdd4('0xe')]);module[_0xfdd4('0xf')]=router;
\ No newline at end of file
+var _0x96d9=['post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./smsApplication.controller','get','isAuthenticated','index','/:id'];(function(_0x328142,_0x9b3ff1){var _0x3b6ac3=function(_0x144496){while(--_0x144496){_0x328142['push'](_0x328142['shift']());}};_0x3b6ac3(++_0x9b3ff1);}(_0x96d9,0xea));var _0x996d=function(_0x35b71c,_0x41d7aa){_0x35b71c=_0x35b71c-0x0;var _0x497f15=_0x96d9[_0x35b71c];return _0x497f15;};'use strict';var multer=require(_0x996d('0x0'));var util=require(_0x996d('0x1'));var path=require(_0x996d('0x2'));var timeout=require(_0x996d('0x3'));var express=require(_0x996d('0x4'));var router=express[_0x996d('0x5')]();var auth=require(_0x996d('0x6'));var interaction=require(_0x996d('0x7'));var config=require('../../config/environment');var controller=require(_0x996d('0x8'));router[_0x996d('0x9')]('/',auth[_0x996d('0xa')](),controller[_0x996d('0xb')]);router[_0x996d('0x9')](_0x996d('0xc'),auth[_0x996d('0xa')](),controller['show']);router[_0x996d('0xd')]('/',auth[_0x996d('0xa')](),controller[_0x996d('0xe')]);router[_0x996d('0xf')](_0x996d('0xc'),auth['isAuthenticated'](),controller[_0x996d('0x10')]);router[_0x996d('0x11')](_0x996d('0xc'),auth[_0x996d('0xa')](),controller['destroy']);module[_0x996d('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x11e9=['exports','INTEGER','STRING','noop','*,*,*,*'];(function(_0x3361c9,_0x1856fc){var _0x4d3d82=function(_0x2abccd){while(--_0x2abccd){_0x3361c9['push'](_0x3361c9['shift']());}};_0x4d3d82(++_0x1856fc);}(_0x11e9,0x168));var _0x911e=function(_0x567e9c,_0x4edc4c){_0x567e9c=_0x567e9c-0x0;var _0x1ff0d4=_0x11e9[_0x567e9c];return _0x1ff0d4;};'use strict';var Sequelize=require('sequelize');module[_0x911e('0x0')]={'priority':{'type':Sequelize[_0x911e('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x911e('0x2')],'allowNull':![],'defaultValue':_0x911e('0x3')},'appdata':{'type':Sequelize[_0x911e('0x2')](0x1000),'defaultValue':''},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x911e('0x4')}};
\ No newline at end of file
+var _0xd08d=['*,*,*,*','sequelize','STRING','noop'];(function(_0x35d871,_0x42176d){var _0x2bbff6=function(_0x2b68b3){while(--_0x2b68b3){_0x35d871['push'](_0x35d871['shift']());}};_0x2bbff6(++_0x42176d);}(_0xd08d,0x151));var _0xdd08=function(_0x243b59,_0x3f9495){_0x243b59=_0x243b59-0x0;var _0x3e1676=_0xd08d[_0x243b59];return _0x3e1676;};'use strict';var Sequelize=require(_0xdd08('0x0'));module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xdd08('0x1')],'allowNull':![],'defaultValue':_0xdd08('0x2')},'appdata':{'type':Sequelize[_0xdd08('0x1')](0x1000),'defaultValue':''},'description':{'type':Sequelize[_0xdd08('0x1')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xdd08('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['nolimit','order','where','filters','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','SmsApplication','length','create','body','find','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','then','error','stack','name','rawAttributes','keys','query','dateStart','dateEnd','intersection','model','attributes','fields','hasOwnProperty'];(function(_0x4875cb,_0x257624){var _0x39a78e=function(_0x4c290b){while(--_0x4c290b){_0x4875cb['push'](_0x4875cb['shift']());}};_0x39a78e(++_0x257624);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0xa9e0[_0xf71120];return _0xbe2fd3;};'use strict';var pdf=require(_0x0a9e('0x0'));var emlformat=require(_0x0a9e('0x1'));var rimraf=require(_0x0a9e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0a9e('0x3'));var moment=require('moment');var BPromise=require(_0x0a9e('0x4'));var Mustache=require(_0x0a9e('0x5'));var util=require(_0x0a9e('0x6'));var path=require(_0x0a9e('0x7'));var sox=require(_0x0a9e('0x8'));var csv=require('to-csv');var ejs=require(_0x0a9e('0x9'));var fs=require('fs');var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var qs=require(_0x0a9e('0xe'));var logger=require(_0x0a9e('0xf'))(_0x0a9e('0x10'));var utils=require(_0x0a9e('0x11'));var config=require(_0x0a9e('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x50dfb2,_0x527cdd){_0x527cdd=_0x527cdd||0xcc;return function(_0x4cfe67){if(_0x4cfe67){return _0x50dfb2[_0x0a9e('0x13')](_0x527cdd);}return _0x50dfb2[_0x0a9e('0x14')](_0x527cdd)[_0x0a9e('0x15')]();};}function respondWithResult(_0x26d672,_0x32d742){_0x32d742=_0x32d742||0xc8;return function(_0x69aeb7){if(_0x69aeb7){return _0x26d672['status'](_0x32d742)[_0x0a9e('0x16')](_0x69aeb7);}};}function respondWithFilteredResult(_0x239b12,_0x2b4227){return function(_0x281129){if(_0x281129){var _0x44dcfd=_0x281129['count'],_0x4d5611=_0x2b4227[_0x0a9e('0x17')],_0x52a03d=_0x2b4227['offset']+_0x2b4227[_0x0a9e('0x18')],_0x22dccb;if(_0x52a03d>=_0x44dcfd){_0x52a03d=_0x44dcfd;_0x22dccb=0xc8;}else{_0x22dccb=0xce;}_0x239b12[_0x0a9e('0x14')](_0x22dccb);return _0x239b12['set'](_0x0a9e('0x19'),_0x4d5611+'-'+_0x52a03d+'/'+_0x44dcfd)['json'](_0x281129);}return null;};}function patchUpdates(_0x459eb1){return function(_0x478723){try{jsonpatch[_0x0a9e('0x1a')](_0x478723,_0x459eb1,!![]);}catch(_0x205fd6){return BPromise[_0x0a9e('0x1b')](_0x205fd6);}return _0x478723[_0x0a9e('0x1c')]();};}function saveUpdates(_0x530eb7,_0x20559e){return function(_0x1314ae){if(_0x1314ae){return _0x1314ae[_0x0a9e('0x1d')](_0x530eb7)[_0x0a9e('0x1e')](function(_0x105080){return _0x105080;});}return null;};}function removeEntity(_0x4bb1e3,_0x2c3407){return function(_0x155cce){if(_0x155cce){return _0x155cce['destroy']()[_0x0a9e('0x1e')](function(){_0x4bb1e3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a02e1,_0x432e56){return function(_0x38e7c4){if(!_0x38e7c4){_0x3a02e1[_0x0a9e('0x13')](0x194);}return _0x38e7c4;};}function handleError(_0x4abc77,_0xfb6e48){_0xfb6e48=_0xfb6e48||0x1f4;return function(_0x2fb0e4){logger[_0x0a9e('0x1f')](_0x2fb0e4[_0x0a9e('0x20')]);if(_0x2fb0e4[_0x0a9e('0x21')]){delete _0x2fb0e4[_0x0a9e('0x21')];}_0x4abc77[_0x0a9e('0x14')](_0xfb6e48)['send'](_0x2fb0e4);};}exports['index']=function(_0x197ec0,_0x3a8e58){var _0x40c424={},_0x33161b={},_0x526cf3={'count':0x0,'rows':[]};var _0x384319=db['SmsApplication'][_0x0a9e('0x22')];_0x33161b['model']=_[_0x0a9e('0x23')](_0x384319);var _0x34dc65={'dateStart':_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x25')],'dateEnd':_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x26')]};delete _0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x25')];delete _0x197ec0['query'][_0x0a9e('0x26')];_0x33161b[_0x0a9e('0x24')]=_[_0x0a9e('0x23')](_0x197ec0[_0x0a9e('0x24')]);_0x33161b['filters']=_[_0x0a9e('0x27')](_0x33161b[_0x0a9e('0x28')],_0x33161b[_0x0a9e('0x24')]);_0x40c424[_0x0a9e('0x29')]=_[_0x0a9e('0x27')](_0x33161b[_0x0a9e('0x28')],qs[_0x0a9e('0x2a')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x2a')]));_0x40c424['attributes']=_0x40c424[_0x0a9e('0x29')]['length']?_0x40c424[_0x0a9e('0x29')]:_0x33161b[_0x0a9e('0x28')];if(!_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x2b')](_0x0a9e('0x2c'))){_0x40c424['limit']=qs[_0x0a9e('0x18')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x18')]);_0x40c424[_0x0a9e('0x17')]=qs[_0x0a9e('0x17')](_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x17')]);}_0x40c424[_0x0a9e('0x2d')]=qs['sort'](_0x197ec0[_0x0a9e('0x24')]['sort']);_0x40c424[_0x0a9e('0x2e')]=qs[_0x0a9e('0x2f')](_[_0x0a9e('0x30')](_0x197ec0[_0x0a9e('0x24')],_0x33161b['filters']));if(_0x34dc65[_0x0a9e('0x25')]){if(_0x34dc65[_0x0a9e('0x26')]){_0x34dc65[_0x0a9e('0x26')]=moment(_0x34dc65[_0x0a9e('0x26')])['add'](0x1,'day');}else{_0x34dc65[_0x0a9e('0x26')]=moment(_0x34dc65['dateStart'])[_0x0a9e('0x31')](0x1,_0x0a9e('0x32'));}_[_0x0a9e('0x33')](_0x40c424[_0x0a9e('0x2e')],{'createdAt':{'$gte':_0x34dc65['dateStart'],'$lte':_0x34dc65[_0x0a9e('0x26')]}});}if(_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x34')]){_0x40c424['where']=_[_0x0a9e('0x33')](_0x40c424[_0x0a9e('0x2e')],{'$or':_[_0x0a9e('0x35')](_0x40c424['attributes'],function(_0x546ef8){var _0x11b61d={};_0x11b61d[_0x546ef8]={'$like':'%'+_0x197ec0[_0x0a9e('0x24')]['filter']+'%'};return _0x11b61d;})});}_0x40c424=_[_0x0a9e('0x33')]({},_0x40c424,_0x197ec0[_0x0a9e('0x36')]);var _0x2e1b3a={'where':_0x40c424[_0x0a9e('0x2e')]};return db['SmsApplication']['count'](_0x2e1b3a)[_0x0a9e('0x1e')](function(_0x45b3d0){_0x526cf3['count']=_0x45b3d0;if(_0x197ec0[_0x0a9e('0x24')][_0x0a9e('0x37')]){_0x40c424[_0x0a9e('0x38')]=[{'all':!![]}];}return db['SmsApplication'][_0x0a9e('0x39')](_0x40c424);})[_0x0a9e('0x1e')](function(_0x274e8e){_0x526cf3[_0x0a9e('0x3a')]=_0x274e8e;return _0x526cf3;})[_0x0a9e('0x1e')](respondWithFilteredResult(_0x3a8e58,_0x40c424))[_0x0a9e('0x3b')](handleError(_0x3a8e58,null));};exports[_0x0a9e('0x3c')]=function(_0x45a9b8,_0x23b089){var _0x3da2cd={'raw':!![],'where':{'id':_0x45a9b8[_0x0a9e('0x3d')]['id']}},_0x2c3711={};_0x2c3711[_0x0a9e('0x28')]=_[_0x0a9e('0x23')](db[_0x0a9e('0x3e')]['rawAttributes']);_0x2c3711['query']=_[_0x0a9e('0x23')](_0x45a9b8[_0x0a9e('0x24')]);_0x2c3711[_0x0a9e('0x2f')]=_[_0x0a9e('0x27')](_0x2c3711[_0x0a9e('0x28')],_0x2c3711[_0x0a9e('0x24')]);_0x3da2cd[_0x0a9e('0x29')]=_[_0x0a9e('0x27')](_0x2c3711[_0x0a9e('0x28')],qs[_0x0a9e('0x2a')](_0x45a9b8[_0x0a9e('0x24')][_0x0a9e('0x2a')]));_0x3da2cd['attributes']=_0x3da2cd[_0x0a9e('0x29')][_0x0a9e('0x3f')]?_0x3da2cd[_0x0a9e('0x29')]:_0x2c3711[_0x0a9e('0x28')];if(_0x45a9b8[_0x0a9e('0x24')][_0x0a9e('0x37')]){_0x3da2cd[_0x0a9e('0x38')]=[{'all':!![]}];}_0x3da2cd=_[_0x0a9e('0x33')]({},_0x3da2cd,_0x45a9b8['options']);return db[_0x0a9e('0x3e')]['find'](_0x3da2cd)[_0x0a9e('0x1e')](handleEntityNotFound(_0x23b089,null))[_0x0a9e('0x1e')](respondWithResult(_0x23b089,null))[_0x0a9e('0x3b')](handleError(_0x23b089,null));};exports['create']=function(_0x14bec2,_0x7f6eb1){return db[_0x0a9e('0x3e')][_0x0a9e('0x40')](_0x14bec2[_0x0a9e('0x41')],{})[_0x0a9e('0x1e')](respondWithResult(_0x7f6eb1,0xc9))[_0x0a9e('0x3b')](handleError(_0x7f6eb1,null));};exports['update']=function(_0x13f44d,_0x1bde3c){if(_0x13f44d[_0x0a9e('0x41')]['id']){delete _0x13f44d[_0x0a9e('0x41')]['id'];}return db[_0x0a9e('0x3e')][_0x0a9e('0x42')]({'where':{'id':_0x13f44d[_0x0a9e('0x3d')]['id']}})[_0x0a9e('0x1e')](handleEntityNotFound(_0x1bde3c,null))[_0x0a9e('0x1e')](saveUpdates(_0x13f44d['body'],null))[_0x0a9e('0x1e')](respondWithResult(_0x1bde3c,null))[_0x0a9e('0x3b')](handleError(_0x1bde3c,null));};exports['destroy']=function(_0x4ae14b,_0x5ddf84){return db[_0x0a9e('0x3e')][_0x0a9e('0x42')]({'where':{'id':_0x4ae14b[_0x0a9e('0x3d')]['id']}})[_0x0a9e('0x1e')](handleEntityNotFound(_0x5ddf84,null))[_0x0a9e('0x1e')](removeEntity(_0x5ddf84,null))[_0x0a9e('0x3b')](handleError(_0x5ddf84,null));};
\ No newline at end of file
+var _0x794c=['model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','options','includeAll','findAll','rows','catch','show','include','create','body','find','params','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','index','SmsApplication','rawAttributes'];(function(_0x5ac84c,_0x287781){var _0x3c53d2=function(_0x40cde0){while(--_0x40cde0){_0x5ac84c['push'](_0x5ac84c['shift']());}};_0x3c53d2(++_0x287781);}(_0x794c,0x180));var _0xc794=function(_0xe84805,_0x2702d9){_0xe84805=_0xe84805-0x0;var _0x398efd=_0x794c[_0xe84805];return _0x398efd;};'use strict';var pdf=require(_0xc794('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc794('0x1'));var zipdir=require(_0xc794('0x2'));var jsonpatch=require(_0xc794('0x3'));var rp=require('request-promise');var moment=require(_0xc794('0x4'));var BPromise=require(_0xc794('0x5'));var Mustache=require(_0xc794('0x6'));var util=require(_0xc794('0x7'));var path=require(_0xc794('0x8'));var sox=require(_0xc794('0x9'));var csv=require('to-csv');var ejs=require(_0xc794('0xa'));var fs=require('fs');var _=require(_0xc794('0xb'));var squel=require(_0xc794('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xc794('0xd'));var toCsv=require(_0xc794('0xe'));var querystring=require(_0xc794('0xf'));var Papa=require(_0xc794('0x10'));var Redis=require('ioredis');var qs=require(_0xc794('0x11'));var logger=require(_0xc794('0x12'))(_0xc794('0x13'));var utils=require(_0xc794('0x14'));var config=require('../../config/environment');var db=require(_0xc794('0x15'))['db'];function respondWithStatusCode(_0xf4bdcc,_0x4be30d){_0x4be30d=_0x4be30d||0xcc;return function(_0x579339){if(_0x579339){return _0xf4bdcc['sendStatus'](_0x4be30d);}return _0xf4bdcc[_0xc794('0x16')](_0x4be30d)[_0xc794('0x17')]();};}function respondWithResult(_0x5d0532,_0xe29ba2){_0xe29ba2=_0xe29ba2||0xc8;return function(_0x5c9aef){if(_0x5c9aef){return _0x5d0532[_0xc794('0x16')](_0xe29ba2)[_0xc794('0x18')](_0x5c9aef);}};}function respondWithFilteredResult(_0x42f728,_0x773b12){return function(_0x231a47){if(_0x231a47){var _0x5341bc=_0x231a47[_0xc794('0x19')],_0xef128b=_0x773b12[_0xc794('0x1a')],_0x37627a=_0x773b12[_0xc794('0x1a')]+_0x773b12[_0xc794('0x1b')],_0x24a2c4;if(_0x37627a>=_0x5341bc){_0x37627a=_0x5341bc;_0x24a2c4=0xc8;}else{_0x24a2c4=0xce;}_0x42f728[_0xc794('0x16')](_0x24a2c4);return _0x42f728[_0xc794('0x1c')](_0xc794('0x1d'),_0xef128b+'-'+_0x37627a+'/'+_0x5341bc)[_0xc794('0x18')](_0x231a47);}return null;};}function patchUpdates(_0x2c36f6){return function(_0x3f29eb){try{jsonpatch[_0xc794('0x1e')](_0x3f29eb,_0x2c36f6,!![]);}catch(_0x35ad0a){return BPromise[_0xc794('0x1f')](_0x35ad0a);}return _0x3f29eb[_0xc794('0x20')]();};}function saveUpdates(_0x2bf379,_0x5057be){return function(_0x4a2730){if(_0x4a2730){return _0x4a2730[_0xc794('0x21')](_0x2bf379)[_0xc794('0x22')](function(_0x515b5e){return _0x515b5e;});}return null;};}function removeEntity(_0x5e75bc,_0x9f99bb){return function(_0xb0276c){if(_0xb0276c){return _0xb0276c[_0xc794('0x23')]()[_0xc794('0x22')](function(){_0x5e75bc[_0xc794('0x16')](0xcc)[_0xc794('0x17')]();});}};}function handleEntityNotFound(_0x52c1fc,_0x408261){return function(_0x17bf9e){if(!_0x17bf9e){_0x52c1fc[_0xc794('0x24')](0x194);}return _0x17bf9e;};}function handleError(_0x5e9d89,_0x2b5fea){_0x2b5fea=_0x2b5fea||0x1f4;return function(_0x116516){logger[_0xc794('0x25')](_0x116516['stack']);if(_0x116516[_0xc794('0x26')]){delete _0x116516[_0xc794('0x26')];}_0x5e9d89[_0xc794('0x16')](_0x2b5fea)['send'](_0x116516);};}exports[_0xc794('0x27')]=function(_0x122423,_0x215ab7){var _0x6a7eb8={},_0x15a1e4={},_0x34f027={'count':0x0,'rows':[]};var _0x4207c6=db[_0xc794('0x28')][_0xc794('0x29')];_0x15a1e4[_0xc794('0x2a')]=_[_0xc794('0x2b')](_0x4207c6);var _0x2f61de={'dateStart':_0x122423[_0xc794('0x2c')][_0xc794('0x2d')],'dateEnd':_0x122423['query'][_0xc794('0x2e')]};delete _0x122423['query']['dateStart'];delete _0x122423[_0xc794('0x2c')]['dateEnd'];_0x15a1e4[_0xc794('0x2c')]=_[_0xc794('0x2b')](_0x122423[_0xc794('0x2c')]);_0x15a1e4[_0xc794('0x2f')]=_[_0xc794('0x30')](_0x15a1e4['model'],_0x15a1e4[_0xc794('0x2c')]);_0x6a7eb8[_0xc794('0x31')]=_[_0xc794('0x30')](_0x15a1e4[_0xc794('0x2a')],qs[_0xc794('0x32')](_0x122423['query'][_0xc794('0x32')]));_0x6a7eb8[_0xc794('0x31')]=_0x6a7eb8[_0xc794('0x31')]['length']?_0x6a7eb8[_0xc794('0x31')]:_0x15a1e4['model'];if(!_0x122423[_0xc794('0x2c')][_0xc794('0x33')]('nolimit')){_0x6a7eb8[_0xc794('0x1b')]=qs['limit'](_0x122423[_0xc794('0x2c')][_0xc794('0x1b')]);_0x6a7eb8[_0xc794('0x1a')]=qs[_0xc794('0x1a')](_0x122423[_0xc794('0x2c')][_0xc794('0x1a')]);}_0x6a7eb8[_0xc794('0x34')]=qs[_0xc794('0x35')](_0x122423['query'][_0xc794('0x35')]);_0x6a7eb8[_0xc794('0x36')]=qs[_0xc794('0x2f')](_[_0xc794('0x37')](_0x122423['query'],_0x15a1e4['filters']));if(_0x2f61de['dateStart']){if(_0x2f61de[_0xc794('0x2e')]){_0x2f61de['dateEnd']=moment(_0x2f61de['dateEnd'])['add'](0x1,'day');}else{_0x2f61de['dateEnd']=moment(_0x2f61de[_0xc794('0x2d')])[_0xc794('0x38')](0x1,_0xc794('0x39'));}_[_0xc794('0x3a')](_0x6a7eb8[_0xc794('0x36')],{'createdAt':{'$gte':_0x2f61de[_0xc794('0x2d')],'$lte':_0x2f61de[_0xc794('0x2e')]}});}if(_0x122423['query'][_0xc794('0x3b')]){_0x6a7eb8['where']=_[_0xc794('0x3a')](_0x6a7eb8['where'],{'$or':_['map'](_0x6a7eb8[_0xc794('0x31')],function(_0x14578b){var _0x34cf6d={};_0x34cf6d[_0x14578b]={'$like':'%'+_0x122423[_0xc794('0x2c')][_0xc794('0x3b')]+'%'};return _0x34cf6d;})});}_0x6a7eb8=_[_0xc794('0x3a')]({},_0x6a7eb8,_0x122423[_0xc794('0x3c')]);var _0x4d418e={'where':_0x6a7eb8[_0xc794('0x36')]};return db[_0xc794('0x28')][_0xc794('0x19')](_0x4d418e)[_0xc794('0x22')](function(_0x24bad7){_0x34f027[_0xc794('0x19')]=_0x24bad7;if(_0x122423[_0xc794('0x2c')][_0xc794('0x3d')]){_0x6a7eb8['include']=[{'all':!![]}];}return db[_0xc794('0x28')][_0xc794('0x3e')](_0x6a7eb8);})[_0xc794('0x22')](function(_0x369298){_0x34f027[_0xc794('0x3f')]=_0x369298;return _0x34f027;})[_0xc794('0x22')](respondWithFilteredResult(_0x215ab7,_0x6a7eb8))[_0xc794('0x40')](handleError(_0x215ab7,null));};exports[_0xc794('0x41')]=function(_0x1c1edb,_0x5473ea){var _0x1ed2d0={'raw':!![],'where':{'id':_0x1c1edb['params']['id']}},_0x28d65d={};_0x28d65d[_0xc794('0x2a')]=_[_0xc794('0x2b')](db[_0xc794('0x28')]['rawAttributes']);_0x28d65d[_0xc794('0x2c')]=_[_0xc794('0x2b')](_0x1c1edb['query']);_0x28d65d[_0xc794('0x2f')]=_[_0xc794('0x30')](_0x28d65d[_0xc794('0x2a')],_0x28d65d[_0xc794('0x2c')]);_0x1ed2d0[_0xc794('0x31')]=_['intersection'](_0x28d65d[_0xc794('0x2a')],qs[_0xc794('0x32')](_0x1c1edb['query'][_0xc794('0x32')]));_0x1ed2d0['attributes']=_0x1ed2d0[_0xc794('0x31')]['length']?_0x1ed2d0[_0xc794('0x31')]:_0x28d65d[_0xc794('0x2a')];if(_0x1c1edb[_0xc794('0x2c')][_0xc794('0x3d')]){_0x1ed2d0[_0xc794('0x42')]=[{'all':!![]}];}_0x1ed2d0=_[_0xc794('0x3a')]({},_0x1ed2d0,_0x1c1edb['options']);return db['SmsApplication']['find'](_0x1ed2d0)[_0xc794('0x22')](handleEntityNotFound(_0x5473ea,null))[_0xc794('0x22')](respondWithResult(_0x5473ea,null))[_0xc794('0x40')](handleError(_0x5473ea,null));};exports[_0xc794('0x43')]=function(_0x28ef9e,_0x5c1a54){return db[_0xc794('0x28')][_0xc794('0x43')](_0x28ef9e['body'],{})[_0xc794('0x22')](respondWithResult(_0x5c1a54,0xc9))['catch'](handleError(_0x5c1a54,null));};exports['update']=function(_0xe0402,_0x140985){if(_0xe0402[_0xc794('0x44')]['id']){delete _0xe0402[_0xc794('0x44')]['id'];}return db[_0xc794('0x28')][_0xc794('0x45')]({'where':{'id':_0xe0402['params']['id']}})[_0xc794('0x22')](handleEntityNotFound(_0x140985,null))['then'](saveUpdates(_0xe0402[_0xc794('0x44')],null))[_0xc794('0x22')](respondWithResult(_0x140985,null))[_0xc794('0x40')](handleError(_0x140985,null));};exports[_0xc794('0x23')]=function(_0x2c14c0,_0x1375ee){return db[_0xc794('0x28')][_0xc794('0x45')]({'where':{'id':_0x2c14c0[_0xc794('0x46')]['id']}})[_0xc794('0x22')](handleEntityNotFound(_0x1375ee,null))['then'](removeEntity(_0x1375ee,null))[_0xc794('0x40')](handleError(_0x1375ee,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2d8=['moment','bluebird','request-promise','./smsApplication.attributes','define','SmsApplication','sms_applications','lodash','api'];(function(_0xbb29de,_0x24a70a){var _0x1d6dbc=function(_0x7b3af4){while(--_0x7b3af4){_0xbb29de['push'](_0xbb29de['shift']());}};_0x1d6dbc(++_0x24a70a);}(_0xe2d8,0xb2));var _0x8e2d=function(_0x1cd2ac,_0x718d01){_0x1cd2ac=_0x1cd2ac-0x0;var _0x50164a=_0xe2d8[_0x1cd2ac];return _0x50164a;};'use strict';var _=require(_0x8e2d('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x8e2d('0x1'));var moment=require(_0x8e2d('0x2'));var BPromise=require(_0x8e2d('0x3'));var rp=require(_0x8e2d('0x4'));var attributes=require(_0x8e2d('0x5'));module['exports']=function(_0x5c872a,_0x32ac4a){return _0x5c872a[_0x8e2d('0x6')](_0x8e2d('0x7'),attributes,{'tableName':_0x8e2d('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5990=['bluebird','./smsApplication.attributes','define','util','moment'];(function(_0x1d1bd9,_0xd44bd2){var _0x4d024d=function(_0x1ca7fb){while(--_0x1ca7fb){_0x1d1bd9['push'](_0x1d1bd9['shift']());}};_0x4d024d(++_0xd44bd2);}(_0x5990,0xbc));var _0x0599=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5990[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x0599('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x0599('0x1'));var BPromise=require(_0x0599('0x2'));var rp=require('request-promise');var attributes=require(_0x0599('0x3'));module['exports']=function(_0x4b57bc,_0x5cb060){return _0x4b57bc[_0x0599('0x4')]('SmsApplication',attributes,{'tableName':'sms_applications','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd557=['../../config/utils','../../config/logger','../../config/environment','client','request','then','info','SmsApplication,\x20%s,\x20%s','request\x20sent','SmsApplication,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','util','moment','bluebird','randomstring'];(function(_0x5cbe8a,_0x41c132){var _0x4b07a1=function(_0x112ff9){while(--_0x112ff9){_0x5cbe8a['push'](_0x5cbe8a['shift']());}};_0x4b07a1(++_0x41c132);}(_0xd557,0x18a));var _0x7d55=function(_0x163de7,_0x1acf78){_0x163de7=_0x163de7-0x0;var _0x87ea78=_0xd557[_0x163de7];return _0x87ea78;};'use strict';var _=require(_0x7d55('0x0'));var util=require(_0x7d55('0x1'));var moment=require(_0x7d55('0x2'));var BPromise=require(_0x7d55('0x3'));var rs=require(_0x7d55('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x7d55('0x5'));var logger=require(_0x7d55('0x6'))('rpc');var config=require(_0x7d55('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x7d55('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5a6c36,_0x353fd9,_0x556884){return new BPromise(function(_0x2511e0,_0x1487a3){return client[_0x7d55('0x9')](_0x5a6c36,_0x556884)[_0x7d55('0xa')](function(_0x14a59b){logger[_0x7d55('0xb')](_0x7d55('0xc'),_0x353fd9,_0x7d55('0xd'));logger['debug'](_0x7d55('0xe'),_0x353fd9,_0x7d55('0xd'),JSON['stringify'](_0x14a59b));if(_0x14a59b['error']){if(_0x14a59b[_0x7d55('0xf')][_0x7d55('0x10')]===0x1f4){logger[_0x7d55('0xf')]('SmsApplication,\x20%s,\x20%s',_0x353fd9,_0x14a59b[_0x7d55('0xf')][_0x7d55('0x11')]);return _0x1487a3(_0x14a59b[_0x7d55('0xf')]['message']);}logger[_0x7d55('0xf')](_0x7d55('0xc'),_0x353fd9,_0x14a59b[_0x7d55('0xf')][_0x7d55('0x11')]);return _0x2511e0(_0x14a59b[_0x7d55('0xf')][_0x7d55('0x11')]);}else{logger[_0x7d55('0xb')](_0x7d55('0xc'),_0x353fd9,_0x7d55('0xd'));_0x2511e0(_0x14a59b['result'][_0x7d55('0x11')]);}})[_0x7d55('0x12')](function(_0x235f5d){logger[_0x7d55('0xf')]('SmsApplication,\x20%s,\x20%s',_0x353fd9,_0x235f5d);_0x1487a3(_0x235f5d);});});}
\ No newline at end of file
+var _0x0b20=['code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','then','info','SmsApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x19b742,_0x19e318){var _0x3ab093=function(_0x46eb0c){while(--_0x46eb0c){_0x19b742['push'](_0x19b742['shift']());}};_0x3ab093(++_0x19e318);}(_0x0b20,0x17a));var _0x00b2=function(_0x3729e9,_0x2fdbef){_0x3729e9=_0x3729e9-0x0;var _0x53f037=_0x0b20[_0x3729e9];return _0x53f037;};'use strict';var _=require(_0x00b2('0x0'));var util=require(_0x00b2('0x1'));var moment=require(_0x00b2('0x2'));var BPromise=require(_0x00b2('0x3'));var rs=require(_0x00b2('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x00b2('0x5'))['db'];var utils=require(_0x00b2('0x6'));var logger=require(_0x00b2('0x7'))(_0x00b2('0x8'));var config=require('../../config/environment');var jayson=require(_0x00b2('0x9'));var client=jayson['client'][_0x00b2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1843f4,_0x4d9686,_0x2e07bc){return new BPromise(function(_0x305da5,_0x3463c1){return client['request'](_0x1843f4,_0x2e07bc)[_0x00b2('0xb')](function(_0xb2b842){logger[_0x00b2('0xc')](_0x00b2('0xd'),_0x4d9686,_0x00b2('0xe'));logger[_0x00b2('0xf')]('SmsApplication,\x20%s,\x20%s,\x20%s',_0x4d9686,_0x00b2('0xe'),JSON[_0x00b2('0x10')](_0xb2b842));if(_0xb2b842[_0x00b2('0x11')]){if(_0xb2b842[_0x00b2('0x11')][_0x00b2('0x12')]===0x1f4){logger['error'](_0x00b2('0xd'),_0x4d9686,_0xb2b842['error'][_0x00b2('0x13')]);return _0x3463c1(_0xb2b842[_0x00b2('0x11')][_0x00b2('0x13')]);}logger['error'](_0x00b2('0xd'),_0x4d9686,_0xb2b842[_0x00b2('0x11')][_0x00b2('0x13')]);return _0x305da5(_0xb2b842[_0x00b2('0x11')][_0x00b2('0x13')]);}else{logger[_0x00b2('0xc')]('SmsApplication,\x20%s,\x20%s',_0x4d9686,'request\x20sent');_0x305da5(_0xb2b842[_0x00b2('0x14')][_0x00b2('0x13')]);}})[_0x00b2('0x15')](function(_0x69c8b0){logger[_0x00b2('0x11')](_0x00b2('0xd'),_0x4d9686,_0x69c8b0);_0x3463c1(_0x69c8b0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3013=['exports','util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/messages','getMessages','/:id/download','create','addMessage','post','/:id/tags','tracked','addTags','put','sms','smsinteraction:update','update','delete','smsinteraction:destroy','removeTags'];(function(_0x3e22ec,_0x59e837){var _0x21669d=function(_0x46bd06){while(--_0x46bd06){_0x3e22ec['push'](_0x3e22ec['shift']());}};_0x21669d(++_0x59e837);}(_0x3013,0x1b3));var _0x3301=function(_0x13d173,_0x2ea9b6){_0x13d173=_0x13d173-0x0;var _0x1449e5=_0x3013[_0x13d173];return _0x1449e5;};'use strict';var multer=require('multer');var util=require(_0x3301('0x0'));var path=require(_0x3301('0x1'));var timeout=require(_0x3301('0x2'));var express=require(_0x3301('0x3'));var router=express[_0x3301('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0x3301('0x5'));var config=require(_0x3301('0x6'));var controller=require(_0x3301('0x7'));router[_0x3301('0x8')]('/',auth[_0x3301('0x9')](),controller[_0x3301('0xa')]);router[_0x3301('0x8')](_0x3301('0xb'),auth['isAuthenticated'](),controller['describe']);router[_0x3301('0x8')](_0x3301('0xc'),auth['isAuthenticated'](),controller[_0x3301('0xd')]);router[_0x3301('0x8')](_0x3301('0xe'),auth[_0x3301('0x9')](),controller[_0x3301('0xf')]);router[_0x3301('0x8')](_0x3301('0x10'),auth[_0x3301('0x9')](),controller['download']);router['post']('/',auth['isAuthenticated'](),controller[_0x3301('0x11')]);router['post']('/:id/messages',auth['isAuthenticated'](),controller[_0x3301('0x12')]);router[_0x3301('0x13')](_0x3301('0x14'),auth[_0x3301('0x9')](),interaction[_0x3301('0x15')]('sms','smsinteraction:addtags'),controller[_0x3301('0x16')]);router[_0x3301('0x17')](_0x3301('0xc'),auth['isAuthenticated'](),interaction[_0x3301('0x15')](_0x3301('0x18'),_0x3301('0x19')),controller[_0x3301('0x1a')]);router[_0x3301('0x1b')](_0x3301('0xc'),auth['isAuthenticated'](),interaction[_0x3301('0x15')](_0x3301('0x18'),_0x3301('0x1c')),controller['destroy']);router[_0x3301('0x1b')]('/:id/tags',auth[_0x3301('0x9')](),controller[_0x3301('0x1d')]);module[_0x3301('0x1e')]=router;
\ No newline at end of file
+var _0xed49=['/:id/download','download','post','create','/:id/messages','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags','addTags','put','smsinteraction:update','delete','smsinteraction:destroy','destroy','exports','multer','util','path','connect-timeout','express','../../components/interaction/service','./smsInteraction.controller','get','isAuthenticated','index','/describe','/:id','show','getMessages'];(function(_0xd10ad9,_0x142ba4){var _0x22ee75=function(_0x52ceb3){while(--_0x52ceb3){_0xd10ad9['push'](_0xd10ad9['shift']());}};_0x22ee75(++_0x142ba4);}(_0xed49,0x1a4));var _0x9ed4=function(_0x169e8a,_0x43dc55){_0x169e8a=_0x169e8a-0x0;var _0x49b835=_0xed49[_0x169e8a];return _0x49b835;};'use strict';var multer=require(_0x9ed4('0x0'));var util=require(_0x9ed4('0x1'));var path=require(_0x9ed4('0x2'));var timeout=require(_0x9ed4('0x3'));var express=require(_0x9ed4('0x4'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x9ed4('0x5'));var config=require('../../config/environment');var controller=require(_0x9ed4('0x6'));router[_0x9ed4('0x7')]('/',auth[_0x9ed4('0x8')](),controller[_0x9ed4('0x9')]);router['get'](_0x9ed4('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x9ed4('0x7')](_0x9ed4('0xb'),auth[_0x9ed4('0x8')](),controller[_0x9ed4('0xc')]);router[_0x9ed4('0x7')]('/:id/messages',auth['isAuthenticated'](),controller[_0x9ed4('0xd')]);router[_0x9ed4('0x7')](_0x9ed4('0xe'),auth[_0x9ed4('0x8')](),controller[_0x9ed4('0xf')]);router[_0x9ed4('0x10')]('/',auth[_0x9ed4('0x8')](),controller[_0x9ed4('0x11')]);router[_0x9ed4('0x10')](_0x9ed4('0x12'),auth['isAuthenticated'](),controller[_0x9ed4('0x13')]);router['post'](_0x9ed4('0x14'),auth[_0x9ed4('0x8')](),interaction[_0x9ed4('0x15')](_0x9ed4('0x16'),_0x9ed4('0x17')),controller[_0x9ed4('0x18')]);router[_0x9ed4('0x19')](_0x9ed4('0xb'),auth['isAuthenticated'](),interaction[_0x9ed4('0x15')](_0x9ed4('0x16'),_0x9ed4('0x1a')),controller['update']);router[_0x9ed4('0x1b')](_0x9ed4('0xb'),auth[_0x9ed4('0x8')](),interaction[_0x9ed4('0x15')](_0x9ed4('0x16'),_0x9ed4('0x1c')),controller[_0x9ed4('0x1d')]);router[_0x9ed4('0x1b')](_0x9ed4('0x14'),auth[_0x9ed4('0x8')](),controller['removeTags']);module[_0x9ed4('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd8e=['out','sequelize','moment','exports','BOOLEAN','DATE','STRING','ENUM'];(function(_0x28d6b9,_0xbe9964){var _0x1e2bee=function(_0xc75f76){while(--_0xc75f76){_0x28d6b9['push'](_0x28d6b9['shift']());}};_0x1e2bee(++_0xbe9964);}(_0xfd8e,0xd1));var _0xefd8=function(_0x3f0faa,_0x21143b){_0x3f0faa=_0x3f0faa-0x0;var _0x1ff224=_0xfd8e[_0x3f0faa];return _0x1ff224;};'use strict';var Sequelize=require(_0xefd8('0x0'));var moment=require(_0xefd8('0x1'));module[_0xefd8('0x2')]={'closed':{'type':Sequelize[_0xefd8('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xefd8('0x4')]},'disposition':{'type':Sequelize[_0xefd8('0x5')]},'note':{'type':Sequelize[_0xefd8('0x5')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xefd8('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xefd8('0x6')]('in',_0xefd8('0x7')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xefd8('0x7')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0x09f3=['ENUM','out','sequelize','moment','exports','BOOLEAN','STRING','DATE'];(function(_0x43fee0,_0x5ee96f){var _0x599ed0=function(_0x558085){while(--_0x558085){_0x43fee0['push'](_0x43fee0['shift']());}};_0x599ed0(++_0x5ee96f);}(_0x09f3,0x122));var _0x309f=function(_0x426de2,_0x24acaf){_0x426de2=_0x426de2-0x0;var _0x1dbafc=_0x09f3[_0x426de2];return _0x1dbafc;};'use strict';var Sequelize=require(_0x309f('0x0'));var moment=require(_0x309f('0x1'));module[_0x309f('0x2')]={'closed':{'type':Sequelize[_0x309f('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0x309f('0x4')]},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0x309f('0x4')]},'read1stAt':{'type':Sequelize[_0x309f('0x5')]},'firstMsgDirection':{'type':Sequelize[_0x309f('0x6')]('in',_0x309f('0x7')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x309f('0x5')]},'lastMsgDirection':{'type':Sequelize[_0x309f('0x6')]('in',_0x309f('0x7')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe44=['request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','rawAttributes','model','query','dateStart','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','dateEnd','add','day','merge','filter','options','include','push','Tag','tag','distinct','read','SmsMessage','Messages','direction','SmsInteraction','includeAll','User','Users','fullname','CmContact','Contact','internal','SmsAccount','Account','key','Tags','ThroughTags','color','findAll','rows','show','intersection','find','create','body','catch','params','describe','addMessage','ids','omit','getMessages','findOne','SmsInteractionId','map','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','spread','emit','smsInteractionTags:save','removeTags','download','unix','toString','root','files','tmp','join','server','attachments','interaction-%s.zip','firstName','Letter','<h1>Sms\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>','<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>','toFile','interaction-','.pdf','log','err','unlinkSync','html-pdf','rimraf'];(function(_0x5c8c9,_0x483b53){var _0x30c616=function(_0x495094){while(--_0x495094){_0x5c8c9['push'](_0x5c8c9['shift']());}};_0x30c616(++_0x483b53);}(_0xfe44,0x88));var _0x4fe4=function(_0x2276c8,_0x55f7aa){_0x2276c8=_0x2276c8-0x0;var _0x59d4e9=_0xfe44[_0x2276c8];return _0x59d4e9;};'use strict';var pdf=require(_0x4fe4('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x4fe4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x4fe4('0x2'));var moment=require(_0x4fe4('0x3'));var BPromise=require(_0x4fe4('0x4'));var Mustache=require('mustache');var util=require(_0x4fe4('0x5'));var path=require(_0x4fe4('0x6'));var sox=require(_0x4fe4('0x7'));var csv=require(_0x4fe4('0x8'));var ejs=require(_0x4fe4('0x9'));var fs=require('fs');var _=require(_0x4fe4('0xa'));var squel=require(_0x4fe4('0xb'));var crypto=require(_0x4fe4('0xc'));var jsforce=require(_0x4fe4('0xd'));var deskjs=require(_0x4fe4('0xe'));var toCsv=require(_0x4fe4('0x8'));var querystring=require(_0x4fe4('0xf'));var Papa=require(_0x4fe4('0x10'));var qs=require(_0x4fe4('0x11'));var logger=require('../../config/logger')(_0x4fe4('0x12'));var utils=require(_0x4fe4('0x13'));var config=require('../../config/environment');var db=require(_0x4fe4('0x14'))['db'];config['redis']=_[_0x4fe4('0x15')](config[_0x4fe4('0x16')],{'host':_0x4fe4('0x17'),'port':0x18eb});var socket=require(_0x4fe4('0x18'))(config[_0x4fe4('0x16')]);require(_0x4fe4('0x19'))[_0x4fe4('0x1a')](socket);function respondWithStatusCode(_0x2c2992,_0x401ad9){_0x401ad9=_0x401ad9||0xcc;return function(_0x530737){if(_0x530737){return _0x2c2992[_0x4fe4('0x1b')](_0x401ad9);}return _0x2c2992[_0x4fe4('0x1c')](_0x401ad9)['end']();};}function respondWithResult(_0x13ddd2,_0x4ed2eb){_0x4ed2eb=_0x4ed2eb||0xc8;return function(_0x2119d2){if(_0x2119d2){return _0x13ddd2[_0x4fe4('0x1c')](_0x4ed2eb)[_0x4fe4('0x1d')](_0x2119d2);}};}function respondWithFilteredResult(_0x70e422,_0x2e26ac){return function(_0x461df9){if(_0x461df9){var _0x1dfd89=_0x461df9[_0x4fe4('0x1e')],_0x1e9203=_0x2e26ac['offset'],_0x1f0602=_0x2e26ac[_0x4fe4('0x1f')]+_0x2e26ac[_0x4fe4('0x20')],_0x3b7209;if(_0x1f0602>=_0x1dfd89){_0x1f0602=_0x1dfd89;_0x3b7209=0xc8;}else{_0x3b7209=0xce;}_0x70e422[_0x4fe4('0x1c')](_0x3b7209);return _0x70e422[_0x4fe4('0x21')](_0x4fe4('0x22'),_0x1e9203+'-'+_0x1f0602+'/'+_0x1dfd89)[_0x4fe4('0x1d')](_0x461df9);}return null;};}function patchUpdates(_0x1e78c8){return function(_0x528bae){try{jsonpatch[_0x4fe4('0x23')](_0x528bae,_0x1e78c8,!![]);}catch(_0x3404e){return BPromise[_0x4fe4('0x24')](_0x3404e);}return _0x528bae[_0x4fe4('0x25')]();};}function saveUpdates(_0x2f4457,_0x22831a){return function(_0x5165f0){if(_0x5165f0){return _0x5165f0[_0x4fe4('0x26')](_0x2f4457)[_0x4fe4('0x27')](function(_0x465728){return _0x465728;});}return null;};}function removeEntity(_0x12e7fc,_0x10e2e9){return function(_0x44593a){if(_0x44593a){return _0x44593a[_0x4fe4('0x28')]()[_0x4fe4('0x27')](function(){_0x12e7fc[_0x4fe4('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3eaf9d,_0x1664f0){return function(_0x39ce69){if(!_0x39ce69){_0x3eaf9d['sendStatus'](0x194);}return _0x39ce69;};}function handleError(_0x49bf99,_0x5e690c){_0x5e690c=_0x5e690c||0x1f4;return function(_0x4c6fb3){logger[_0x4fe4('0x29')](_0x4c6fb3[_0x4fe4('0x2a')]);if(_0x4c6fb3[_0x4fe4('0x2b')]){delete _0x4c6fb3[_0x4fe4('0x2b')];}_0x49bf99['status'](_0x5e690c)[_0x4fe4('0x2c')](_0x4c6fb3);};}exports['index']=function(_0x54ad6b,_0x47f318){var _0x142cc6={},_0x39ff5e={},_0x184082={'count':0x0,'rows':[]};var _0x3abac9=db['SmsInteraction'][_0x4fe4('0x2d')];_0x39ff5e[_0x4fe4('0x2e')]=_['keys'](_0x3abac9);var _0x3bf3cf={'dateStart':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x30')],'dateEnd':_0x54ad6b['query']['dateEnd']};delete _0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x30')];delete _0x54ad6b[_0x4fe4('0x2f')]['dateEnd'];_0x39ff5e[_0x4fe4('0x2f')]=_[_0x4fe4('0x31')](_0x54ad6b[_0x4fe4('0x2f')]);_0x39ff5e[_0x4fe4('0x32')]=_['intersection'](_0x39ff5e[_0x4fe4('0x2e')],_0x39ff5e[_0x4fe4('0x2f')]);_0x142cc6[_0x4fe4('0x33')]=_['intersection'](_0x39ff5e[_0x4fe4('0x2e')],qs[_0x4fe4('0x34')](_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x34')]));_0x142cc6[_0x4fe4('0x33')]=_0x142cc6[_0x4fe4('0x33')][_0x4fe4('0x35')]?_0x142cc6[_0x4fe4('0x33')]:_0x39ff5e[_0x4fe4('0x2e')];if(!_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x36')](_0x4fe4('0x37'))){_0x142cc6[_0x4fe4('0x20')]=qs[_0x4fe4('0x20')](_0x54ad6b['query']['limit']);_0x142cc6['offset']=qs['offset'](_0x54ad6b[_0x4fe4('0x2f')]['offset']);}_0x142cc6[_0x4fe4('0x38')]=qs[_0x4fe4('0x39')](_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x39')]);_0x142cc6[_0x4fe4('0x3a')]=qs[_0x4fe4('0x32')](_['pick'](_0x54ad6b[_0x4fe4('0x2f')],_0x39ff5e[_0x4fe4('0x32')]));if(_0x3bf3cf[_0x4fe4('0x30')]){if(_0x3bf3cf[_0x4fe4('0x3b')]){_0x3bf3cf[_0x4fe4('0x3b')]=moment(_0x3bf3cf[_0x4fe4('0x3b')])[_0x4fe4('0x3c')](0x1,'day');}else{_0x3bf3cf['dateEnd']=moment(_0x3bf3cf[_0x4fe4('0x30')])[_0x4fe4('0x3c')](0x1,_0x4fe4('0x3d'));}_[_0x4fe4('0x3e')](_0x142cc6[_0x4fe4('0x3a')],{'createdAt':{'$gte':_0x3bf3cf[_0x4fe4('0x30')],'$lte':_0x3bf3cf['dateEnd']}});}if(_0x54ad6b[_0x4fe4('0x2f')]['filter']){_0x142cc6[_0x4fe4('0x3a')]=_['merge'](_0x142cc6[_0x4fe4('0x3a')],{'$or':_['map'](_0x142cc6[_0x4fe4('0x33')],function(_0x3e91d7){var _0x4947c5={};_0x4947c5[_0x3e91d7]={'$like':'%'+_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x3f')]+'%'};return _0x4947c5;})});}_0x142cc6=_[_0x4fe4('0x3e')]({},_0x142cc6,_0x54ad6b[_0x4fe4('0x40')]);var _0x3e9342={'where':_0x142cc6[_0x4fe4('0x3a')]};_0x3e9342[_0x4fe4('0x41')]=[];if(_0x54ad6b[_0x4fe4('0x2f')]['tag']){_0x3e9342[_0x4fe4('0x41')][_0x4fe4('0x42')]({'model':db[_0x4fe4('0x43')],'as':'Tags','attributes':['id'],'where':{'id':_0x54ad6b['query'][_0x4fe4('0x44')]},'required':!![]});_0x3e9342[_0x4fe4('0x45')]=!![];}if(_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x46')]){_0x3e9342[_0x4fe4('0x41')][_0x4fe4('0x42')]({'model':db[_0x4fe4('0x47')],'as':_0x4fe4('0x48'),'attributes':['id',_0x4fe4('0x49'),'createdAt',_0x4fe4('0x46')],'where':{'direction':'in','read':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x46')]||![]},'required':!![]});_0x3e9342[_0x4fe4('0x45')]=!![];}return db[_0x4fe4('0x4a')]['count'](_0x3e9342)[_0x4fe4('0x27')](function(_0x4634ed){_0x184082[_0x4fe4('0x1e')]=_0x4634ed;if(_0x54ad6b['query'][_0x4fe4('0x4b')]){_0x142cc6['include']=[{'model':db[_0x4fe4('0x4c')],'as':_0x4fe4('0x4d'),'required':![],'attributes':['id',_0x4fe4('0x2b'),_0x4fe4('0x4e')]},{'model':db[_0x4fe4('0x4f')],'as':_0x4fe4('0x50'),'required':![]},{'model':db['User'],'as':'Owner','attributes':['name',_0x4fe4('0x4e'),_0x4fe4('0x51')],'required':![]},{'model':db[_0x4fe4('0x52')],'as':_0x4fe4('0x53'),'attributes':[_0x4fe4('0x2b'),_0x4fe4('0x54')],'required':![]},{'model':db[_0x4fe4('0x47')],'as':'Messages','attributes':['id',_0x4fe4('0x49'),'createdAt','read'],'where':{'direction':'in','read':_0x54ad6b['query']['read']||![]},'required':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x46')]||![]},{'model':db[_0x4fe4('0x43')],'as':_0x4fe4('0x55'),'attributes':['id',_0x4fe4('0x2b'),'color'],'required':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x44')]?!![]:![]},{'model':db[_0x4fe4('0x43')],'as':_0x4fe4('0x56'),'attributes':['id',_0x4fe4('0x2b'),_0x4fe4('0x57')],'through':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x44')]?{'attributes':[],'where':{'TagId':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x44')]||undefined}}:{},'required':_0x54ad6b[_0x4fe4('0x2f')][_0x4fe4('0x44')]?!![]:![]}];}return db['SmsInteraction'][_0x4fe4('0x58')](_0x142cc6);})[_0x4fe4('0x27')](function(_0x4f963a){_0x184082[_0x4fe4('0x59')]=_0x4f963a;return _0x184082;})[_0x4fe4('0x27')](respondWithFilteredResult(_0x47f318,_0x142cc6))['catch'](handleError(_0x47f318,null));};exports[_0x4fe4('0x5a')]=function(_0x3c61c1,_0xef5658){var _0x328c87={'raw':![],'where':{'id':_0x3c61c1['params']['id']}},_0x32b063={};_0x32b063[_0x4fe4('0x2e')]=_[_0x4fe4('0x31')](db[_0x4fe4('0x4a')]['rawAttributes']);_0x32b063['query']=_[_0x4fe4('0x31')](_0x3c61c1['query']);_0x32b063[_0x4fe4('0x32')]=_[_0x4fe4('0x5b')](_0x32b063[_0x4fe4('0x2e')],_0x32b063[_0x4fe4('0x2f')]);_0x328c87['attributes']=_[_0x4fe4('0x5b')](_0x32b063[_0x4fe4('0x2e')],qs[_0x4fe4('0x34')](_0x3c61c1['query'][_0x4fe4('0x34')]));_0x328c87[_0x4fe4('0x33')]=_0x328c87[_0x4fe4('0x33')][_0x4fe4('0x35')]?_0x328c87[_0x4fe4('0x33')]:_0x32b063[_0x4fe4('0x2e')];if(_0x3c61c1['query']['includeAll']){_0x328c87[_0x4fe4('0x41')]=[{'all':!![]}];}_0x328c87=_[_0x4fe4('0x3e')]({},_0x328c87,_0x3c61c1[_0x4fe4('0x40')]);return db['SmsInteraction'][_0x4fe4('0x5c')](_0x328c87)[_0x4fe4('0x27')](handleEntityNotFound(_0xef5658,null))[_0x4fe4('0x27')](respondWithResult(_0xef5658,null))['catch'](handleError(_0xef5658,null));};exports[_0x4fe4('0x5d')]=function(_0x22d0f8,_0x4160bb){return db[_0x4fe4('0x4a')]['create'](_0x22d0f8[_0x4fe4('0x5e')],{})[_0x4fe4('0x27')](respondWithResult(_0x4160bb,0xc9))[_0x4fe4('0x5f')](handleError(_0x4160bb,null));};exports[_0x4fe4('0x26')]=function(_0x31b925,_0x360481){if(_0x31b925[_0x4fe4('0x5e')]['id']){delete _0x31b925[_0x4fe4('0x5e')]['id'];}return db[_0x4fe4('0x4a')][_0x4fe4('0x5c')]({'where':{'id':_0x31b925[_0x4fe4('0x60')]['id']}})[_0x4fe4('0x27')](handleEntityNotFound(_0x360481,null))[_0x4fe4('0x27')](saveUpdates(_0x31b925['body'],null))[_0x4fe4('0x27')](respondWithResult(_0x360481,null))['catch'](handleError(_0x360481,null));};exports[_0x4fe4('0x28')]=function(_0x554b4c,_0x553ccc){return db[_0x4fe4('0x4a')][_0x4fe4('0x5c')]({'where':{'id':_0x554b4c['params']['id']}})[_0x4fe4('0x27')](handleEntityNotFound(_0x553ccc,null))['then'](removeEntity(_0x553ccc,null))[_0x4fe4('0x5f')](handleError(_0x553ccc,null));};exports[_0x4fe4('0x61')]=function(_0x481fc8,_0x2d39a6){return db[_0x4fe4('0x4a')]['describe']()[_0x4fe4('0x27')](respondWithResult(_0x2d39a6,null))[_0x4fe4('0x5f')](handleError(_0x2d39a6,null));};exports[_0x4fe4('0x62')]=function(_0x2c1a78,_0x584a75,_0x3a181f){return db[_0x4fe4('0x47')][_0x4fe4('0x5c')]({'where':{'id':_0x2c1a78['params']['id']}})[_0x4fe4('0x27')](handleEntityNotFound(_0x584a75,null))[_0x4fe4('0x27')](function(_0x44f012){if(_0x44f012){return _0x44f012[_0x4fe4('0x62')](_0x2c1a78[_0x4fe4('0x5e')][_0x4fe4('0x63')],_[_0x4fe4('0x64')](_0x2c1a78[_0x4fe4('0x5e')],[_0x4fe4('0x63'),'id'])||{});}})['then'](respondWithResult(_0x584a75,null))[_0x4fe4('0x5f')](handleError(_0x584a75,null));};exports[_0x4fe4('0x65')]=function(_0x4d728f,_0x4b06be,_0x3bcc81){var _0x25903b={'raw':![],'where':{}};var _0x105750={};var _0x4fbdcc={'count':0x0,'rows':[]};return db[_0x4fe4('0x4a')][_0x4fe4('0x66')]({'where':{'id':_0x4d728f[_0x4fe4('0x60')]['id']}})[_0x4fe4('0x27')](handleEntityNotFound(_0x4b06be,null))['then'](function(_0x30ef72){if(_0x30ef72){_0x105750[_0x4fe4('0x2e')]=_[_0x4fe4('0x31')](db[_0x4fe4('0x47')][_0x4fe4('0x2d')]);_0x105750['query']=_[_0x4fe4('0x31')](_0x4d728f[_0x4fe4('0x2f')]);_0x105750[_0x4fe4('0x32')]=_[_0x4fe4('0x5b')](_0x105750['model'],_0x105750[_0x4fe4('0x2f')]);_0x25903b[_0x4fe4('0x33')]=_[_0x4fe4('0x5b')](_0x105750[_0x4fe4('0x2e')],qs[_0x4fe4('0x34')](_0x4d728f[_0x4fe4('0x2f')]['fields']));_0x25903b[_0x4fe4('0x33')]=_0x25903b[_0x4fe4('0x33')]['length']?_0x25903b[_0x4fe4('0x33')]:_0x105750[_0x4fe4('0x2e')];if(!_0x4d728f[_0x4fe4('0x2f')][_0x4fe4('0x36')](_0x4fe4('0x37'))){_0x25903b[_0x4fe4('0x20')]=qs['limit'](_0x4d728f[_0x4fe4('0x2f')][_0x4fe4('0x20')]);_0x25903b[_0x4fe4('0x1f')]=qs[_0x4fe4('0x1f')](_0x4d728f['query'][_0x4fe4('0x1f')]);}_0x25903b[_0x4fe4('0x38')]=qs[_0x4fe4('0x39')](_0x4d728f[_0x4fe4('0x2f')]['sort']);_0x25903b[_0x4fe4('0x3a')]=qs[_0x4fe4('0x32')](_['pick'](_0x4d728f[_0x4fe4('0x2f')],_0x105750[_0x4fe4('0x32')]));_0x25903b[_0x4fe4('0x3a')][_0x4fe4('0x67')]=_0x30ef72['id'];if(_0x4d728f[_0x4fe4('0x2f')][_0x4fe4('0x3f')]){_0x25903b['where']=_[_0x4fe4('0x3e')](_0x25903b[_0x4fe4('0x3a')],{'$or':_[_0x4fe4('0x68')](_0x25903b[_0x4fe4('0x33')],function(_0x4c425b){var _0x1c83d6={};_0x1c83d6[_0x4c425b]={'$like':'%'+_0x4d728f[_0x4fe4('0x2f')][_0x4fe4('0x3f')]+'%'};return _0x1c83d6;})});}if(_0x4d728f[_0x4fe4('0x2f')][_0x4fe4('0x69')]){var _0x31f86e=_0x4d728f['query'][_0x4fe4('0x69')][_0x4fe4('0x6a')](',');var _0x590bf8={};_0x590bf8[_0x31f86e[0x0]]={'$gte':moment(_0x31f86e[0x1])[_0x4fe4('0x6b')](_0x4fe4('0x6c'))};_0x25903b[_0x4fe4('0x3a')]=_[_0x4fe4('0x3e')](_0x25903b[_0x4fe4('0x3a')],_0x590bf8);}_0x25903b=_[_0x4fe4('0x3e')]({},_0x25903b,_0x4d728f['options']);return db[_0x4fe4('0x47')][_0x4fe4('0x1e')]({'where':_0x25903b[_0x4fe4('0x3a')]})[_0x4fe4('0x27')](function(_0x4d9fc4){_0x4fbdcc[_0x4fe4('0x1e')]=_0x4d9fc4;if(_0x4d728f[_0x4fe4('0x2f')][_0x4fe4('0x4b')]){_0x25903b[_0x4fe4('0x41')]=[{'all':!![]}];}return db[_0x4fe4('0x47')][_0x4fe4('0x58')](_0x25903b);})['then'](function(_0x4a8034){_0x4fbdcc[_0x4fe4('0x59')]=_0x4a8034;return _0x4fbdcc;});}})['then'](respondWithFilteredResult(_0x4b06be,_0x25903b))[_0x4fe4('0x5f')](handleError(_0x4b06be,null));};exports[_0x4fe4('0x6d')]=function(_0xbd8048,_0x2b8cfd,_0x14a251){return db['SmsInteraction'][_0x4fe4('0x5c')]({'where':{'id':_0xbd8048[_0x4fe4('0x60')]['id']}})[_0x4fe4('0x27')](handleEntityNotFound(_0x2b8cfd,null))[_0x4fe4('0x27')](function(_0xcdf50d){if(_0xcdf50d){return _0xcdf50d[_0x4fe4('0x6e')](_0xbd8048[_0x4fe4('0x5e')][_0x4fe4('0x63')],_['omit'](_0xbd8048[_0x4fe4('0x5e')],['ids','id'])||{})[_0x4fe4('0x6f')](function(){return db[_0x4fe4('0x43')][_0x4fe4('0x58')]({'attributes':['id','name',_0x4fe4('0x57')],'where':{'id':_0xbd8048['body'][_0x4fe4('0x63')]}});})[_0x4fe4('0x27')](function(_0x28df30){socket[_0x4fe4('0x70')](_0x4fe4('0x71'),{'id':Number(_0xbd8048[_0x4fe4('0x60')]['id']),'tags':_0x28df30||[]});return{'id':Number(_0xbd8048[_0x4fe4('0x60')]['id']),'tags':_0x28df30||[]};});}})['then'](respondWithResult(_0x2b8cfd,null))[_0x4fe4('0x5f')](handleError(_0x2b8cfd,null));};exports[_0x4fe4('0x72')]=function(_0x3f3cd4,_0x5a92de,_0x3920e4){var _0x120873;return db[_0x4fe4('0x4a')][_0x4fe4('0x5c')]({'where':{'id':_0x3f3cd4[_0x4fe4('0x60')]['id']}})[_0x4fe4('0x27')](handleEntityNotFound(_0x5a92de,null))[_0x4fe4('0x27')](function(_0x56450e){if(_0x56450e){return _0x56450e['removeTags'](_0x3f3cd4[_0x4fe4('0x2f')]['ids']);}})[_0x4fe4('0x27')](respondWithStatusCode(_0x5a92de,null))[_0x4fe4('0x5f')](handleError(_0x5a92de,null));};exports[_0x4fe4('0x73')]=function(_0x17eb2b,_0x34f05e){var _0x3a713c=moment()[_0x4fe4('0x74')]()[_0x4fe4('0x75')]();var _0x4126a2=path['join'](config[_0x4fe4('0x76')],'server',_0x4fe4('0x77'),_0x4fe4('0x78'));var _0x47ad9c=path[_0x4fe4('0x79')](config[_0x4fe4('0x76')],_0x4fe4('0x7a'),_0x4fe4('0x77'),_0x4fe4('0x7b'));var _0x22beba=path[_0x4fe4('0x79')](_0x4126a2,_0x3a713c);var _0x1cd203=util[_0x4fe4('0x6b')](_0x4fe4('0x7c'),_0x3a713c);var _0x563dfd=path['join'](_0x4126a2,_0x1cd203);var _0x3d7890=![];return db[_0x4fe4('0x4a')][_0x4fe4('0x5c')]({'where':{'id':_0x17eb2b[_0x4fe4('0x60')]['id']},'include':[{'model':db[_0x4fe4('0x47')],'as':_0x4fe4('0x48'),'attributes':['id',_0x4fe4('0x5e')],'include':[{'model':db[_0x4fe4('0x4c')],'as':_0x4fe4('0x4c'),'attributes':['id',_0x4fe4('0x4e')],'raw':!![]},{'model':db[_0x4fe4('0x4f')],'as':_0x4fe4('0x50'),'attributes':['id',_0x4fe4('0x7d')],'raw':!![]}]}]})[_0x4fe4('0x27')](handleEntityNotFound(_0x34f05e,null))[_0x4fe4('0x27')](function(_0x1a999f){if(_0x1a999f){_0x3d7890=!![];var _0x43f03a='';var _0x3fea31={'format':_0x4fe4('0x7e'),'border':'1cm'};fs['mkdirSync'](_0x22beba);_0x43f03a+=util[_0x4fe4('0x6b')](_0x4fe4('0x7f'),_0x1a999f['id']);_0x43f03a+=util[_0x4fe4('0x6b')](_0x4fe4('0x80'),moment()['format'](_0x4fe4('0x81'))[_0x4fe4('0x75')]());_0x43f03a+='<hr>';for(var _0x53ce93=0x0;_0x53ce93<_0x1a999f[_0x4fe4('0x48')][_0x4fe4('0x35')];_0x53ce93++){var _0x5401f4=_0x1a999f[_0x4fe4('0x48')][_0x53ce93];_0x43f03a+=_0x4fe4('0x82');_0x43f03a+=util['format'](_0x4fe4('0x83'),_0x5401f4['User']?_0x5401f4[_0x4fe4('0x4c')]['fullname']:_0x5401f4['Contact'][_0x4fe4('0x7d')],_0x5401f4[_0x4fe4('0x5e')]);_0x43f03a+='</div>';}return new BPromise(function(_0x5df248,_0x18884c){pdf[_0x4fe4('0x5d')](_0x43f03a,_0x3fea31)[_0x4fe4('0x84')](path[_0x4fe4('0x79')](_0x22beba,_0x4fe4('0x85')+_0x3a713c+_0x4fe4('0x86')),function(_0x5004e3,_0x2a7191){if(_0x5004e3)return _0x18884c(_0x5004e3);_0x5df248(_0x2a7191);});});}})[_0x4fe4('0x27')](function(){if(_0x3d7890){return new BPromise(function(_0x571fe8,_0x4634cb){zipdir(_0x22beba,{'saveTo':_0x563dfd},function(_0xadf26a,_0x5f06b5){if(_0xadf26a)return _0x4634cb(_0xadf26a);return _0x571fe8(_0x5f06b5);});});}})['then'](function(){if(_0x3d7890){return new BPromise(function(_0x51a7bd,_0xdb289d){rimraf(_0x22beba,function(_0x514f10){if(_0x514f10)_0xdb289d(_0x514f10);return _0x51a7bd();});});}})[_0x4fe4('0x27')](function(){if(_0x3d7890){return _0x34f05e[_0x4fe4('0x73')](_0x563dfd,_0x1cd203,function(_0x48b005){if(_0x48b005){console[_0x4fe4('0x87')](_0x4fe4('0x88'),_0x48b005);}else{fs[_0x4fe4('0x89')](_0x563dfd);}});}else{return _0x34f05e[_0x4fe4('0x1b')](0xc8);}})[_0x4fe4('0x5f')](handleError(_0x34f05e,null));};
\ No newline at end of file
+var _0x78a9=['day','merge','filter','include','tag','push','Tag','Tags','distinct','read','SmsMessage','direction','includeAll','User','Users','CmContact','Contact','fullname','internal','SmsAccount','Account','key','Messages','createdAt','color','ThroughTags','findAll','rows','catch','show','params','options','find','create','update','body','destroy','describe','addMessage','ids','omit','getMessages','findOne','hasOwnProperty','SmsInteractionId','map','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','spread','emit','smsInteractionTags:save','removeTags','download','unix','toString','join','root','server','files','tmp','interaction-%s.zip','firstName','Letter','1cm','<h1>Sms\x20Interaction:\x20#%d</h1>','<h2>Date:\x20%s</h2>','MMMM\x20Do\x20YYYY,\x20HH:mm:ss','<hr>','toFile','.pdf','log','err','unlinkSync','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','localhost','register','status','end','json','count','offset','limit','set','Content-Range','apply','save','then','error','stack','name','SmsInteraction','rawAttributes','model','dateStart','query','dateEnd','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','add'];(function(_0x19b45a,_0x5675e9){var _0x5ae573=function(_0x59d9ce){while(--_0x59d9ce){_0x19b45a['push'](_0x19b45a['shift']());}};_0x5ae573(++_0x5675e9);}(_0x78a9,0xd2));var _0x978a=function(_0x26f616,_0x3e8f08){_0x26f616=_0x26f616-0x0;var _0x298682=_0x78a9[_0x26f616];return _0x298682;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x978a('0x0'));var jsonpatch=require(_0x978a('0x1'));var rp=require(_0x978a('0x2'));var moment=require(_0x978a('0x3'));var BPromise=require(_0x978a('0x4'));var Mustache=require(_0x978a('0x5'));var util=require(_0x978a('0x6'));var path=require('path');var sox=require(_0x978a('0x7'));var csv=require('to-csv');var ejs=require(_0x978a('0x8'));var fs=require('fs');var _=require(_0x978a('0x9'));var squel=require('squel');var crypto=require(_0x978a('0xa'));var jsforce=require(_0x978a('0xb'));var deskjs=require(_0x978a('0xc'));var toCsv=require('to-csv');var querystring=require(_0x978a('0xd'));var Papa=require('papaparse');var Redis=require(_0x978a('0xe'));var qs=require(_0x978a('0xf'));var logger=require(_0x978a('0x10'))(_0x978a('0x11'));var utils=require(_0x978a('0x12'));var config=require(_0x978a('0x13'));var db=require(_0x978a('0x14'))['db'];config['redis']=_[_0x978a('0x15')](config['redis'],{'host':_0x978a('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./smsInteraction.socket')[_0x978a('0x17')](socket);function respondWithStatusCode(_0x2abcc9,_0x8f4373){_0x8f4373=_0x8f4373||0xcc;return function(_0x537c5f){if(_0x537c5f){return _0x2abcc9['sendStatus'](_0x8f4373);}return _0x2abcc9[_0x978a('0x18')](_0x8f4373)[_0x978a('0x19')]();};}function respondWithResult(_0x3da5a2,_0x1a19b7){_0x1a19b7=_0x1a19b7||0xc8;return function(_0x36b4e6){if(_0x36b4e6){return _0x3da5a2[_0x978a('0x18')](_0x1a19b7)[_0x978a('0x1a')](_0x36b4e6);}};}function respondWithFilteredResult(_0x37edc1,_0x26f5be){return function(_0xd08490){if(_0xd08490){var _0x525a70=_0xd08490[_0x978a('0x1b')],_0x131419=_0x26f5be['offset'],_0x4fd518=_0x26f5be[_0x978a('0x1c')]+_0x26f5be[_0x978a('0x1d')],_0x24f8c0;if(_0x4fd518>=_0x525a70){_0x4fd518=_0x525a70;_0x24f8c0=0xc8;}else{_0x24f8c0=0xce;}_0x37edc1['status'](_0x24f8c0);return _0x37edc1[_0x978a('0x1e')](_0x978a('0x1f'),_0x131419+'-'+_0x4fd518+'/'+_0x525a70)[_0x978a('0x1a')](_0xd08490);}return null;};}function patchUpdates(_0xba3446){return function(_0xf82aa0){try{jsonpatch[_0x978a('0x20')](_0xf82aa0,_0xba3446,!![]);}catch(_0x5a9752){return BPromise['reject'](_0x5a9752);}return _0xf82aa0[_0x978a('0x21')]();};}function saveUpdates(_0x221508,_0xa45a54){return function(_0xd1bd4a){if(_0xd1bd4a){return _0xd1bd4a['update'](_0x221508)[_0x978a('0x22')](function(_0x2599c4){return _0x2599c4;});}return null;};}function removeEntity(_0x4c486c,_0x25946a){return function(_0x3909cc){if(_0x3909cc){return _0x3909cc['destroy']()[_0x978a('0x22')](function(){_0x4c486c[_0x978a('0x18')](0xcc)[_0x978a('0x19')]();});}};}function handleEntityNotFound(_0x48993b,_0x3d3f26){return function(_0x132770){if(!_0x132770){_0x48993b['sendStatus'](0x194);}return _0x132770;};}function handleError(_0x249b13,_0x249625){_0x249625=_0x249625||0x1f4;return function(_0x355115){logger[_0x978a('0x23')](_0x355115[_0x978a('0x24')]);if(_0x355115['name']){delete _0x355115[_0x978a('0x25')];}_0x249b13['status'](_0x249625)['send'](_0x355115);};}exports['index']=function(_0x431cd0,_0xf63227){var _0xfd9ed7={},_0x21c2b2={},_0x26a6ab={'count':0x0,'rows':[]};var _0x27d87f=db[_0x978a('0x26')][_0x978a('0x27')];_0x21c2b2[_0x978a('0x28')]=_['keys'](_0x27d87f);var _0xa1feb0={'dateStart':_0x431cd0['query'][_0x978a('0x29')],'dateEnd':_0x431cd0[_0x978a('0x2a')][_0x978a('0x2b')]};delete _0x431cd0[_0x978a('0x2a')][_0x978a('0x29')];delete _0x431cd0[_0x978a('0x2a')]['dateEnd'];_0x21c2b2[_0x978a('0x2a')]=_[_0x978a('0x2c')](_0x431cd0[_0x978a('0x2a')]);_0x21c2b2[_0x978a('0x2d')]=_['intersection'](_0x21c2b2[_0x978a('0x28')],_0x21c2b2[_0x978a('0x2a')]);_0xfd9ed7[_0x978a('0x2e')]=_[_0x978a('0x2f')](_0x21c2b2[_0x978a('0x28')],qs['fields'](_0x431cd0[_0x978a('0x2a')][_0x978a('0x30')]));_0xfd9ed7[_0x978a('0x2e')]=_0xfd9ed7[_0x978a('0x2e')][_0x978a('0x31')]?_0xfd9ed7[_0x978a('0x2e')]:_0x21c2b2['model'];if(!_0x431cd0[_0x978a('0x2a')]['hasOwnProperty'](_0x978a('0x32'))){_0xfd9ed7['limit']=qs[_0x978a('0x1d')](_0x431cd0[_0x978a('0x2a')]['limit']);_0xfd9ed7[_0x978a('0x1c')]=qs[_0x978a('0x1c')](_0x431cd0[_0x978a('0x2a')][_0x978a('0x1c')]);}_0xfd9ed7[_0x978a('0x33')]=qs[_0x978a('0x34')](_0x431cd0[_0x978a('0x2a')][_0x978a('0x34')]);_0xfd9ed7[_0x978a('0x35')]=qs[_0x978a('0x2d')](_[_0x978a('0x36')](_0x431cd0[_0x978a('0x2a')],_0x21c2b2[_0x978a('0x2d')]));if(_0xa1feb0[_0x978a('0x29')]){if(_0xa1feb0[_0x978a('0x2b')]){_0xa1feb0[_0x978a('0x2b')]=moment(_0xa1feb0[_0x978a('0x2b')])[_0x978a('0x37')](0x1,_0x978a('0x38'));}else{_0xa1feb0[_0x978a('0x2b')]=moment(_0xa1feb0[_0x978a('0x29')])[_0x978a('0x37')](0x1,'day');}_[_0x978a('0x39')](_0xfd9ed7[_0x978a('0x35')],{'createdAt':{'$gte':_0xa1feb0[_0x978a('0x29')],'$lte':_0xa1feb0['dateEnd']}});}if(_0x431cd0['query'][_0x978a('0x3a')]){_0xfd9ed7['where']=_[_0x978a('0x39')](_0xfd9ed7[_0x978a('0x35')],{'$or':_['map'](_0xfd9ed7['attributes'],function(_0xe17b77){var _0x4096f5={};_0x4096f5[_0xe17b77]={'$like':'%'+_0x431cd0[_0x978a('0x2a')][_0x978a('0x3a')]+'%'};return _0x4096f5;})});}_0xfd9ed7=_[_0x978a('0x39')]({},_0xfd9ed7,_0x431cd0['options']);var _0x308159={'where':_0xfd9ed7[_0x978a('0x35')]};_0x308159[_0x978a('0x3b')]=[];if(_0x431cd0[_0x978a('0x2a')][_0x978a('0x3c')]){_0x308159['include'][_0x978a('0x3d')]({'model':db[_0x978a('0x3e')],'as':_0x978a('0x3f'),'attributes':['id'],'where':{'id':_0x431cd0[_0x978a('0x2a')][_0x978a('0x3c')]},'required':!![]});_0x308159[_0x978a('0x40')]=!![];}if(_0x431cd0['query'][_0x978a('0x41')]){_0x308159[_0x978a('0x3b')][_0x978a('0x3d')]({'model':db[_0x978a('0x42')],'as':'Messages','attributes':['id',_0x978a('0x43'),'createdAt','read'],'where':{'direction':'in','read':_0x431cd0['query']['read']||![]},'required':!![]});_0x308159['distinct']=!![];}return db['SmsInteraction'][_0x978a('0x1b')](_0x308159)[_0x978a('0x22')](function(_0x52fe35){_0x26a6ab[_0x978a('0x1b')]=_0x52fe35;if(_0x431cd0['query'][_0x978a('0x44')]){_0xfd9ed7[_0x978a('0x3b')]=[{'model':db[_0x978a('0x45')],'as':_0x978a('0x46'),'required':![],'attributes':['id',_0x978a('0x25'),'fullname']},{'model':db[_0x978a('0x47')],'as':_0x978a('0x48'),'required':![]},{'model':db[_0x978a('0x45')],'as':'Owner','attributes':[_0x978a('0x25'),_0x978a('0x49'),_0x978a('0x4a')],'required':![]},{'model':db[_0x978a('0x4b')],'as':_0x978a('0x4c'),'attributes':['name',_0x978a('0x4d')],'required':![]},{'model':db[_0x978a('0x42')],'as':_0x978a('0x4e'),'attributes':['id',_0x978a('0x43'),_0x978a('0x4f'),_0x978a('0x41')],'where':{'direction':'in','read':_0x431cd0[_0x978a('0x2a')][_0x978a('0x41')]||![]},'required':_0x431cd0[_0x978a('0x2a')][_0x978a('0x41')]||![]},{'model':db['Tag'],'as':_0x978a('0x3f'),'attributes':['id',_0x978a('0x25'),_0x978a('0x50')],'required':_0x431cd0[_0x978a('0x2a')][_0x978a('0x3c')]?!![]:![]},{'model':db['Tag'],'as':_0x978a('0x51'),'attributes':['id',_0x978a('0x25'),_0x978a('0x50')],'through':_0x431cd0[_0x978a('0x2a')]['tag']?{'attributes':[],'where':{'TagId':_0x431cd0['query'][_0x978a('0x3c')]||undefined}}:{},'required':_0x431cd0[_0x978a('0x2a')][_0x978a('0x3c')]?!![]:![]}];}return db[_0x978a('0x26')][_0x978a('0x52')](_0xfd9ed7);})[_0x978a('0x22')](function(_0x2f6e64){_0x26a6ab[_0x978a('0x53')]=_0x2f6e64;return _0x26a6ab;})[_0x978a('0x22')](respondWithFilteredResult(_0xf63227,_0xfd9ed7))[_0x978a('0x54')](handleError(_0xf63227,null));};exports[_0x978a('0x55')]=function(_0x24789b,_0x128dd5){var _0x3bfe37={'raw':![],'where':{'id':_0x24789b[_0x978a('0x56')]['id']}},_0x3e7654={};_0x3e7654[_0x978a('0x28')]=_[_0x978a('0x2c')](db['SmsInteraction']['rawAttributes']);_0x3e7654[_0x978a('0x2a')]=_[_0x978a('0x2c')](_0x24789b[_0x978a('0x2a')]);_0x3e7654[_0x978a('0x2d')]=_[_0x978a('0x2f')](_0x3e7654[_0x978a('0x28')],_0x3e7654['query']);_0x3bfe37[_0x978a('0x2e')]=_[_0x978a('0x2f')](_0x3e7654[_0x978a('0x28')],qs[_0x978a('0x30')](_0x24789b[_0x978a('0x2a')][_0x978a('0x30')]));_0x3bfe37[_0x978a('0x2e')]=_0x3bfe37['attributes']['length']?_0x3bfe37[_0x978a('0x2e')]:_0x3e7654[_0x978a('0x28')];if(_0x24789b[_0x978a('0x2a')][_0x978a('0x44')]){_0x3bfe37['include']=[{'all':!![]}];}_0x3bfe37=_['merge']({},_0x3bfe37,_0x24789b[_0x978a('0x57')]);return db[_0x978a('0x26')][_0x978a('0x58')](_0x3bfe37)[_0x978a('0x22')](handleEntityNotFound(_0x128dd5,null))[_0x978a('0x22')](respondWithResult(_0x128dd5,null))[_0x978a('0x54')](handleError(_0x128dd5,null));};exports[_0x978a('0x59')]=function(_0x5582e1,_0x373917){return db['SmsInteraction']['create'](_0x5582e1['body'],{})[_0x978a('0x22')](respondWithResult(_0x373917,0xc9))[_0x978a('0x54')](handleError(_0x373917,null));};exports[_0x978a('0x5a')]=function(_0x323d0c,_0x1c9964){if(_0x323d0c[_0x978a('0x5b')]['id']){delete _0x323d0c[_0x978a('0x5b')]['id'];}return db['SmsInteraction']['find']({'where':{'id':_0x323d0c[_0x978a('0x56')]['id']}})[_0x978a('0x22')](handleEntityNotFound(_0x1c9964,null))[_0x978a('0x22')](saveUpdates(_0x323d0c[_0x978a('0x5b')],null))['then'](respondWithResult(_0x1c9964,null))['catch'](handleError(_0x1c9964,null));};exports[_0x978a('0x5c')]=function(_0x223e49,_0x20b811){return db[_0x978a('0x26')][_0x978a('0x58')]({'where':{'id':_0x223e49[_0x978a('0x56')]['id']}})[_0x978a('0x22')](handleEntityNotFound(_0x20b811,null))[_0x978a('0x22')](removeEntity(_0x20b811,null))[_0x978a('0x54')](handleError(_0x20b811,null));};exports[_0x978a('0x5d')]=function(_0x107f40,_0x683942){return db['SmsInteraction']['describe']()[_0x978a('0x22')](respondWithResult(_0x683942,null))[_0x978a('0x54')](handleError(_0x683942,null));};exports[_0x978a('0x5e')]=function(_0x3df4a4,_0x3e3b0c,_0x3cbce4){return db[_0x978a('0x42')][_0x978a('0x58')]({'where':{'id':_0x3df4a4['params']['id']}})['then'](handleEntityNotFound(_0x3e3b0c,null))[_0x978a('0x22')](function(_0x3dca8e){if(_0x3dca8e){return _0x3dca8e[_0x978a('0x5e')](_0x3df4a4[_0x978a('0x5b')][_0x978a('0x5f')],_[_0x978a('0x60')](_0x3df4a4[_0x978a('0x5b')],[_0x978a('0x5f'),'id'])||{});}})[_0x978a('0x22')](respondWithResult(_0x3e3b0c,null))[_0x978a('0x54')](handleError(_0x3e3b0c,null));};exports[_0x978a('0x61')]=function(_0xc312c0,_0x516fc0,_0x48705e){var _0x1c80b5={'raw':![],'where':{}};var _0x2d778e={};var _0x3d9d90={'count':0x0,'rows':[]};return db['SmsInteraction'][_0x978a('0x62')]({'where':{'id':_0xc312c0[_0x978a('0x56')]['id']}})['then'](handleEntityNotFound(_0x516fc0,null))[_0x978a('0x22')](function(_0x1c8e81){if(_0x1c8e81){_0x2d778e[_0x978a('0x28')]=_['keys'](db[_0x978a('0x42')][_0x978a('0x27')]);_0x2d778e[_0x978a('0x2a')]=_[_0x978a('0x2c')](_0xc312c0[_0x978a('0x2a')]);_0x2d778e[_0x978a('0x2d')]=_[_0x978a('0x2f')](_0x2d778e[_0x978a('0x28')],_0x2d778e[_0x978a('0x2a')]);_0x1c80b5[_0x978a('0x2e')]=_['intersection'](_0x2d778e['model'],qs[_0x978a('0x30')](_0xc312c0[_0x978a('0x2a')][_0x978a('0x30')]));_0x1c80b5[_0x978a('0x2e')]=_0x1c80b5['attributes']['length']?_0x1c80b5[_0x978a('0x2e')]:_0x2d778e[_0x978a('0x28')];if(!_0xc312c0[_0x978a('0x2a')][_0x978a('0x63')]('nolimit')){_0x1c80b5[_0x978a('0x1d')]=qs[_0x978a('0x1d')](_0xc312c0[_0x978a('0x2a')]['limit']);_0x1c80b5[_0x978a('0x1c')]=qs[_0x978a('0x1c')](_0xc312c0[_0x978a('0x2a')][_0x978a('0x1c')]);}_0x1c80b5[_0x978a('0x33')]=qs['sort'](_0xc312c0[_0x978a('0x2a')][_0x978a('0x34')]);_0x1c80b5[_0x978a('0x35')]=qs[_0x978a('0x2d')](_['pick'](_0xc312c0[_0x978a('0x2a')],_0x2d778e['filters']));_0x1c80b5[_0x978a('0x35')][_0x978a('0x64')]=_0x1c8e81['id'];if(_0xc312c0[_0x978a('0x2a')][_0x978a('0x3a')]){_0x1c80b5[_0x978a('0x35')]=_[_0x978a('0x39')](_0x1c80b5['where'],{'$or':_[_0x978a('0x65')](_0x1c80b5[_0x978a('0x2e')],function(_0x768129){var _0x5070f9={};_0x5070f9[_0x768129]={'$like':'%'+_0xc312c0['query']['filter']+'%'};return _0x5070f9;})});}if(_0xc312c0[_0x978a('0x2a')][_0x978a('0x66')]){var _0x14dbb0=_0xc312c0[_0x978a('0x2a')][_0x978a('0x66')][_0x978a('0x67')](',');var _0xa99dec={};_0xa99dec[_0x14dbb0[0x0]]={'$gte':moment(_0x14dbb0[0x1])[_0x978a('0x68')](_0x978a('0x69'))};_0x1c80b5[_0x978a('0x35')]=_[_0x978a('0x39')](_0x1c80b5[_0x978a('0x35')],_0xa99dec);}_0x1c80b5=_['merge']({},_0x1c80b5,_0xc312c0[_0x978a('0x57')]);return db[_0x978a('0x42')][_0x978a('0x1b')]({'where':_0x1c80b5['where']})[_0x978a('0x22')](function(_0x35de87){_0x3d9d90[_0x978a('0x1b')]=_0x35de87;if(_0xc312c0['query'][_0x978a('0x44')]){_0x1c80b5[_0x978a('0x3b')]=[{'all':!![]}];}return db[_0x978a('0x42')][_0x978a('0x52')](_0x1c80b5);})[_0x978a('0x22')](function(_0x127f6f){_0x3d9d90[_0x978a('0x53')]=_0x127f6f;return _0x3d9d90;});}})[_0x978a('0x22')](respondWithFilteredResult(_0x516fc0,_0x1c80b5))[_0x978a('0x54')](handleError(_0x516fc0,null));};exports[_0x978a('0x6a')]=function(_0x319bb1,_0x5cb7bd,_0x3bc75e){return db[_0x978a('0x26')][_0x978a('0x58')]({'where':{'id':_0x319bb1[_0x978a('0x56')]['id']}})['then'](handleEntityNotFound(_0x5cb7bd,null))['then'](function(_0x432a91){if(_0x432a91){return _0x432a91[_0x978a('0x6b')](_0x319bb1['body'][_0x978a('0x5f')],_[_0x978a('0x60')](_0x319bb1[_0x978a('0x5b')],['ids','id'])||{})[_0x978a('0x6c')](function(){return db['Tag'][_0x978a('0x52')]({'attributes':['id',_0x978a('0x25'),_0x978a('0x50')],'where':{'id':_0x319bb1[_0x978a('0x5b')][_0x978a('0x5f')]}});})[_0x978a('0x22')](function(_0x440290){socket[_0x978a('0x6d')](_0x978a('0x6e'),{'id':Number(_0x319bb1[_0x978a('0x56')]['id']),'tags':_0x440290||[]});return{'id':Number(_0x319bb1['params']['id']),'tags':_0x440290||[]};});}})['then'](respondWithResult(_0x5cb7bd,null))[_0x978a('0x54')](handleError(_0x5cb7bd,null));};exports[_0x978a('0x6f')]=function(_0x478c8b,_0xb8a14f,_0x167ffc){var _0x1f3b66;return db[_0x978a('0x26')][_0x978a('0x58')]({'where':{'id':_0x478c8b[_0x978a('0x56')]['id']}})[_0x978a('0x22')](handleEntityNotFound(_0xb8a14f,null))[_0x978a('0x22')](function(_0x5ae22a){if(_0x5ae22a){return _0x5ae22a[_0x978a('0x6f')](_0x478c8b['query']['ids']);}})[_0x978a('0x22')](respondWithStatusCode(_0xb8a14f,null))[_0x978a('0x54')](handleError(_0xb8a14f,null));};exports[_0x978a('0x70')]=function(_0xa6b61,_0x382364){var _0x2a8a99=moment()[_0x978a('0x71')]()[_0x978a('0x72')]();var _0x5c55c0=path[_0x978a('0x73')](config[_0x978a('0x74')],_0x978a('0x75'),_0x978a('0x76'),_0x978a('0x77'));var _0x3c2bfb=path[_0x978a('0x73')](config[_0x978a('0x74')],'server',_0x978a('0x76'),'attachments');var _0x36a832=path[_0x978a('0x73')](_0x5c55c0,_0x2a8a99);var _0x54a4e8=util['format'](_0x978a('0x78'),_0x2a8a99);var _0x3e002f=path[_0x978a('0x73')](_0x5c55c0,_0x54a4e8);var _0x445311=![];return db[_0x978a('0x26')][_0x978a('0x58')]({'where':{'id':_0xa6b61[_0x978a('0x56')]['id']},'include':[{'model':db[_0x978a('0x42')],'as':_0x978a('0x4e'),'attributes':['id',_0x978a('0x5b')],'include':[{'model':db[_0x978a('0x45')],'as':_0x978a('0x45'),'attributes':['id','fullname'],'raw':!![]},{'model':db['CmContact'],'as':'Contact','attributes':['id',_0x978a('0x79')],'raw':!![]}]}]})[_0x978a('0x22')](handleEntityNotFound(_0x382364,null))['then'](function(_0x59ee70){if(_0x59ee70){_0x445311=!![];var _0x4b2909='';var _0x121d76={'format':_0x978a('0x7a'),'border':_0x978a('0x7b')};fs['mkdirSync'](_0x36a832);_0x4b2909+=util[_0x978a('0x68')](_0x978a('0x7c'),_0x59ee70['id']);_0x4b2909+=util[_0x978a('0x68')](_0x978a('0x7d'),moment()['format'](_0x978a('0x7e'))[_0x978a('0x72')]());_0x4b2909+=_0x978a('0x7f');for(var _0x1fdfdc=0x0;_0x1fdfdc<_0x59ee70[_0x978a('0x4e')][_0x978a('0x31')];_0x1fdfdc++){var _0x317e8d=_0x59ee70[_0x978a('0x4e')][_0x1fdfdc];_0x4b2909+='<div\x20style=\x22border-style:\x20solid;\x20border-width:\x201px;\x20margin:\x203px;\x22>';_0x4b2909+=util['format']('<p\x20style=\x22margin:\x203px;\x22>%s:\x20%s</p>',_0x317e8d[_0x978a('0x45')]?_0x317e8d[_0x978a('0x45')][_0x978a('0x49')]:_0x317e8d[_0x978a('0x48')]['firstName'],_0x317e8d[_0x978a('0x5b')]);_0x4b2909+='</div>';}return new BPromise(function(_0x22317c,_0x10e522){pdf['create'](_0x4b2909,_0x121d76)[_0x978a('0x80')](path['join'](_0x36a832,'interaction-'+_0x2a8a99+_0x978a('0x81')),function(_0x38e710,_0x4b6710){if(_0x38e710)return _0x10e522(_0x38e710);_0x22317c(_0x4b6710);});});}})[_0x978a('0x22')](function(){if(_0x445311){return new BPromise(function(_0x2f7cad,_0x2a2e8a){zipdir(_0x36a832,{'saveTo':_0x3e002f},function(_0x297909,_0x204569){if(_0x297909)return _0x2a2e8a(_0x297909);return _0x2f7cad(_0x204569);});});}})[_0x978a('0x22')](function(){if(_0x445311){return new BPromise(function(_0x3ca6dc,_0x4b1e0f){rimraf(_0x36a832,function(_0xbd76f5){if(_0xbd76f5)_0x4b1e0f(_0xbd76f5);return _0x3ca6dc();});});}})[_0x978a('0x22')](function(){if(_0x445311){return _0x382364[_0x978a('0x70')](_0x3e002f,_0x54a4e8,function(_0xc23457){if(_0xc23457){console[_0x978a('0x82')](_0x978a('0x83'),_0xc23457);}else{fs[_0x978a('0x84')](_0x3e002f);}});}else{return _0x382364['sendStatus'](0xc8);}})[_0x978a('0x54')](handleError(_0x382364,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4bf1=['SmsInteraction','setMaxListeners','remove','emit','hasOwnProperty','hook','exports'];(function(_0x28b0a4,_0x2ea758){var _0x105ce6=function(_0x6df20f){while(--_0x6df20f){_0x28b0a4['push'](_0x28b0a4['shift']());}};_0x105ce6(++_0x2ea758);}(_0x4bf1,0x19d));var _0x14bf=function(_0x32cb4c,_0x56c8f6){_0x32cb4c=_0x32cb4c-0x0;var _0x1c9b40=_0x4bf1[_0x32cb4c];return _0x1c9b40;};'use strict';var EventEmitter=require('events');var SmsInteraction=require('../../mysqldb')['db'][_0x14bf('0x0')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x14bf('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x14bf('0x2')};function emitEvent(_0x5326cc){return function(_0xc11fd7,_0x3fa538,_0x3a2822){SmsInteractionEvents['emit'](_0x5326cc+':'+_0xc11fd7['id'],_0xc11fd7);SmsInteractionEvents[_0x14bf('0x3')](_0x5326cc,_0xc11fd7);_0x3a2822(null);};}for(var e in events){if(events[_0x14bf('0x4')](e)){var event=events[e];SmsInteraction[_0x14bf('0x5')](e,emitEvent(event));}}module[_0x14bf('0x6')]=SmsInteractionEvents;
\ No newline at end of file
+var _0xa171=['setMaxListeners','save','update','remove','emit','exports','events','SmsInteraction'];(function(_0x3cb029,_0x37bab9){var _0x559d76=function(_0x225b5a){while(--_0x225b5a){_0x3cb029['push'](_0x3cb029['shift']());}};_0x559d76(++_0x37bab9);}(_0xa171,0xe6));var _0x1a17=function(_0x443b1e,_0xf7ffe9){_0x443b1e=_0x443b1e-0x0;var _0x3beb6f=_0xa171[_0x443b1e];return _0x3beb6f;};'use strict';var EventEmitter=require(_0x1a17('0x0'));var SmsInteraction=require('../../mysqldb')['db'][_0x1a17('0x1')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x1a17('0x2')](0x0);var events={'afterCreate':_0x1a17('0x3'),'afterUpdate':_0x1a17('0x4'),'afterDestroy':_0x1a17('0x5')};function emitEvent(_0x189951){return function(_0xf4b544,_0x564575,_0x429378){SmsInteractionEvents[_0x1a17('0x6')](_0x189951+':'+_0xf4b544['id'],_0xf4b544);SmsInteractionEvents[_0x1a17('0x6')](_0x189951,_0xf4b544);_0x429378(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsInteraction['hook'](e,emitEvent(event));}}module[_0x1a17('0x7')]=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xece1=['define','SmsInteraction','lodash','api','moment','bluebird','request-promise','./smsInteraction.attributes','exports'];(function(_0x82547,_0x3ce3ae){var _0x2d7b6c=function(_0x4cfd68){while(--_0x4cfd68){_0x82547['push'](_0x82547['shift']());}};_0x2d7b6c(++_0x3ce3ae);}(_0xece1,0xda));var _0x1ece=function(_0x978baf,_0x280ada){_0x978baf=_0x978baf-0x0;var _0x2e572f=_0xece1[_0x978baf];return _0x2e572f;};'use strict';var _=require(_0x1ece('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x1ece('0x1'));var moment=require(_0x1ece('0x2'));var BPromise=require(_0x1ece('0x3'));var rp=require(_0x1ece('0x4'));var attributes=require(_0x1ece('0x5'));module[_0x1ece('0x6')]=function(_0x59fefb,_0x331f62){return _0x59fefb[_0x1ece('0x7')](_0x1ece('0x8'),attributes,{'tableName':'sms_interactions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x39c3=['sms_interactions','util','./smsInteraction.attributes','define'];(function(_0x2b3230,_0x92bf67){var _0x47f9d7=function(_0x354649){while(--_0x354649){_0x2b3230['push'](_0x2b3230['shift']());}};_0x47f9d7(++_0x92bf67);}(_0x39c3,0x179));var _0x339c=function(_0x3b5ad9,_0x223867){_0x3b5ad9=_0x3b5ad9-0x0;var _0x611ae9=_0x39c3[_0x3b5ad9];return _0x611ae9;};'use strict';var _=require('lodash');var util=require(_0x339c('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x339c('0x1'));module['exports']=function(_0x2b5c68,_0x38c36c){return _0x2b5c68[_0x339c('0x2')]('SmsInteraction',attributes,{'tableName':_0x339c('0x3'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb19f=['ids','omit','spread','AddTags','util','moment','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','then','debug','request\x20sent','stringify','error','code','message','SmsInteraction,\x20%s,\x20%s','info','result','catch','UpdateSmsInteraction','SmsInteraction','update','body','options','raw','where','attributes','limit','AddTagsToSmsInteraction','find','addTags'];(function(_0x29d7f8,_0x23c55b){var _0x12adc5=function(_0x139024){while(--_0x139024){_0x29d7f8['push'](_0x29d7f8['shift']());}};_0x12adc5(++_0x23c55b);}(_0xb19f,0x7c));var _0xfb19=function(_0xb68772,_0x5253ac){_0xb68772=_0xb68772-0x0;var _0x4189bb=_0xb19f[_0xb68772];return _0x4189bb;};'use strict';var _=require('lodash');var util=require(_0xfb19('0x0'));var moment=require(_0xfb19('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xfb19('0x2'));var logger=require(_0xfb19('0x3'))(_0xfb19('0x4'));var config=require(_0xfb19('0x5'));var jayson=require(_0xfb19('0x6'));var client=jayson[_0xfb19('0x7')]['http']({'port':0x232a});config['redis']=_['defaults'](config[_0xfb19('0x8')],{'host':_0xfb19('0x9'),'port':0x18eb});var socket=require(_0xfb19('0xa'))(config[_0xfb19('0x8')]);require(_0xfb19('0xb'))[_0xfb19('0xc')](socket);function respondWithRpcPromise(_0x577610,_0x266e70,_0x4ac871){return new BPromise(function(_0x1fd10f,_0x1a3e85){return client['request'](_0x577610,_0x4ac871)[_0xfb19('0xd')](function(_0x2a4793){logger['info']('SmsInteraction,\x20%s,\x20%s',_0x266e70,'request\x20sent');logger[_0xfb19('0xe')]('SmsInteraction,\x20%s,\x20%s,\x20%s',_0x266e70,_0xfb19('0xf'),JSON[_0xfb19('0x10')](_0x2a4793));if(_0x2a4793[_0xfb19('0x11')]){if(_0x2a4793['error'][_0xfb19('0x12')]===0x1f4){logger[_0xfb19('0x11')]('SmsInteraction,\x20%s,\x20%s',_0x266e70,_0x2a4793[_0xfb19('0x11')][_0xfb19('0x13')]);return _0x1a3e85(_0x2a4793[_0xfb19('0x11')]['message']);}logger[_0xfb19('0x11')](_0xfb19('0x14'),_0x266e70,_0x2a4793[_0xfb19('0x11')][_0xfb19('0x13')]);return _0x1fd10f(_0x2a4793['error'][_0xfb19('0x13')]);}else{logger[_0xfb19('0x15')](_0xfb19('0x14'),_0x266e70,_0xfb19('0xf'));_0x1fd10f(_0x2a4793[_0xfb19('0x16')]['message']);}})[_0xfb19('0x17')](function(_0x4737db){logger['error'](_0xfb19('0x14'),_0x266e70,_0x4737db);_0x1a3e85(_0x4737db);});});}exports[_0xfb19('0x18')]=function(_0x53f3ff){var _0x379187=this;return new Promise(function(_0x46a178,_0x57fe99){return db[_0xfb19('0x19')][_0xfb19('0x1a')](_0x53f3ff[_0xfb19('0x1b')],{'raw':_0x53f3ff[_0xfb19('0x1c')]?_0x53f3ff[_0xfb19('0x1c')][_0xfb19('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x53f3ff[_0xfb19('0x1c')]?_0x53f3ff[_0xfb19('0x1c')][_0xfb19('0x1e')]||null:null,'attributes':_0x53f3ff[_0xfb19('0x1c')]?_0x53f3ff['options'][_0xfb19('0x1f')]||null:null,'limit':_0x53f3ff[_0xfb19('0x1c')]?_0x53f3ff[_0xfb19('0x1c')][_0xfb19('0x20')]||null:null})[_0xfb19('0xd')](function(_0x3da5d8){logger[_0xfb19('0x15')](_0xfb19('0x18'),_0x53f3ff);logger['debug'](_0xfb19('0x18'),_0x53f3ff,JSON[_0xfb19('0x10')](_0x3da5d8));_0x46a178(_0x3da5d8);})[_0xfb19('0x17')](function(_0x3f305c){logger[_0xfb19('0x11')](_0xfb19('0x18'),_0x3f305c[_0xfb19('0x13')],_0x53f3ff);_0x57fe99(_0x379187[_0xfb19('0x11')](0x1f4,_0x3f305c[_0xfb19('0x13')]));});});};exports[_0xfb19('0x21')]=function(_0x25bd7d){return new Promise(function(_0x36f05e,_0x10c582){return db[_0xfb19('0x19')][_0xfb19('0x22')]({'where':_0x25bd7d[_0xfb19('0x1c')]?_0x25bd7d[_0xfb19('0x1c')][_0xfb19('0x1e')]||null:null})['then'](function(_0x2f5ce5){if(_0x2f5ce5){return _0x2f5ce5[_0xfb19('0x23')](_0x25bd7d[_0xfb19('0x1b')][_0xfb19('0x24')],_[_0xfb19('0x25')](_0x25bd7d[_0xfb19('0x1b')],[_0xfb19('0x24'),'id'])||{});}})[_0xfb19('0x26')](function(_0x345259){logger[_0xfb19('0x15')]('AddTags',_0x25bd7d);logger[_0xfb19('0xe')](_0xfb19('0x27'),_0x25bd7d,JSON[_0xfb19('0x10')](_0x345259));_0x36f05e(_0x345259);})[_0xfb19('0x17')](function(_0x121c65){logger['error']('AddTags',_0x121c65[_0xfb19('0x13')],_0x25bd7d);_0x10c582(_this[_0xfb19('0x11')](0x1f4,_0x121c65[_0xfb19('0x13')]));});});};
\ No newline at end of file
+var _0xbf98=['socket.io-emitter','./smsInteraction.socket','register','request','then','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','SmsInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','SmsInteraction','body','options','raw','attributes','limit','UpdateSmsInteraction','catch','AddTagsToSmsInteraction','find','where','addTags','ids','omit','AddTags','lodash','util','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','http','defaults','redis','localhost'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbf98,0x1eb));var _0x8bf9=function(_0xb10a6c,_0x538bcd){_0xb10a6c=_0xb10a6c-0x0;var _0x218edc=_0xbf98[_0xb10a6c];return _0x218edc;};'use strict';var _=require(_0x8bf9('0x0'));var util=require(_0x8bf9('0x1'));var moment=require(_0x8bf9('0x2'));var BPromise=require(_0x8bf9('0x3'));var rs=require(_0x8bf9('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8bf9('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x8bf9('0x6'));var config=require(_0x8bf9('0x7'));var jayson=require(_0x8bf9('0x8'));var client=jayson['client'][_0x8bf9('0x9')]({'port':0x232a});config['redis']=_[_0x8bf9('0xa')](config[_0x8bf9('0xb')],{'host':_0x8bf9('0xc'),'port':0x18eb});var socket=require(_0x8bf9('0xd'))(new Redis(config[_0x8bf9('0xb')]));require(_0x8bf9('0xe'))[_0x8bf9('0xf')](socket);function respondWithRpcPromise(_0xd6a737,_0x4213a9,_0x4b1bea){return new BPromise(function(_0x3f730b,_0x2ccb59){return client[_0x8bf9('0x10')](_0xd6a737,_0x4b1bea)[_0x8bf9('0x11')](function(_0x19564b){logger[_0x8bf9('0x12')](_0x8bf9('0x13'),_0x4213a9,_0x8bf9('0x14'));logger[_0x8bf9('0x15')](_0x8bf9('0x16'),_0x4213a9,'request\x20sent',JSON[_0x8bf9('0x17')](_0x19564b));if(_0x19564b[_0x8bf9('0x18')]){if(_0x19564b[_0x8bf9('0x18')]['code']===0x1f4){logger[_0x8bf9('0x18')](_0x8bf9('0x13'),_0x4213a9,_0x19564b[_0x8bf9('0x18')][_0x8bf9('0x19')]);return _0x2ccb59(_0x19564b[_0x8bf9('0x18')]['message']);}logger[_0x8bf9('0x18')](_0x8bf9('0x13'),_0x4213a9,_0x19564b[_0x8bf9('0x18')][_0x8bf9('0x19')]);return _0x3f730b(_0x19564b[_0x8bf9('0x18')]['message']);}else{logger[_0x8bf9('0x12')](_0x8bf9('0x13'),_0x4213a9,_0x8bf9('0x14'));_0x3f730b(_0x19564b[_0x8bf9('0x1a')][_0x8bf9('0x19')]);}})['catch'](function(_0x19998d){logger['error'](_0x8bf9('0x13'),_0x4213a9,_0x19998d);_0x2ccb59(_0x19998d);});});}exports['UpdateSmsInteraction']=function(_0x302d7a){var _0x35ad24=this;return new Promise(function(_0x9488ee,_0x476f62){return db[_0x8bf9('0x1b')]['update'](_0x302d7a[_0x8bf9('0x1c')],{'raw':_0x302d7a[_0x8bf9('0x1d')]?_0x302d7a['options'][_0x8bf9('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x302d7a[_0x8bf9('0x1d')]?_0x302d7a[_0x8bf9('0x1d')]['where']||null:null,'attributes':_0x302d7a['options']?_0x302d7a['options'][_0x8bf9('0x1f')]||null:null,'limit':_0x302d7a['options']?_0x302d7a[_0x8bf9('0x1d')][_0x8bf9('0x20')]||null:null})['then'](function(_0x577da7){logger['info']('UpdateSmsInteraction',_0x302d7a);logger['debug'](_0x8bf9('0x21'),_0x302d7a,JSON[_0x8bf9('0x17')](_0x577da7));_0x9488ee(_0x577da7);})[_0x8bf9('0x22')](function(_0x453b13){logger[_0x8bf9('0x18')](_0x8bf9('0x21'),_0x453b13[_0x8bf9('0x19')],_0x302d7a);_0x476f62(_0x35ad24[_0x8bf9('0x18')](0x1f4,_0x453b13[_0x8bf9('0x19')]));});});};exports[_0x8bf9('0x23')]=function(_0x81d462){return new Promise(function(_0x1126f7,_0xda4e03){return db['SmsInteraction'][_0x8bf9('0x24')]({'where':_0x81d462['options']?_0x81d462[_0x8bf9('0x1d')][_0x8bf9('0x25')]||null:null})['then'](function(_0xc0d25b){if(_0xc0d25b){return _0xc0d25b[_0x8bf9('0x26')](_0x81d462['body'][_0x8bf9('0x27')],_[_0x8bf9('0x28')](_0x81d462[_0x8bf9('0x1c')],[_0x8bf9('0x27'),'id'])||{});}})['spread'](function(_0xe5fb70){logger['info'](_0x8bf9('0x29'),_0x81d462);logger[_0x8bf9('0x15')](_0x8bf9('0x29'),_0x81d462,JSON[_0x8bf9('0x17')](_0xe5fb70));_0x1126f7(_0xe5fb70);})[_0x8bf9('0x22')](function(_0x38f141){logger[_0x8bf9('0x18')]('AddTags',_0x38f141['message'],_0x81d462);_0xda4e03(_this[_0x8bf9('0x18')](0x1f4,_0x38f141['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc913=['register','smsInteraction:','./smsInteraction.events','save','remove','update','removeListener'];(function(_0x28f521,_0x5341f1){var _0x14b1a3=function(_0x46c8cc){while(--_0x46c8cc){_0x28f521['push'](_0x28f521['shift']());}};_0x14b1a3(++_0x5341f1);}(_0xc913,0x198));var _0x3c91=function(_0x421cf8,_0x23152c){_0x421cf8=_0x421cf8-0x0;var _0x145c48=_0xc913[_0x421cf8];return _0x145c48;};'use strict';var SmsInteractionEvents=require(_0x3c91('0x0'));var events=[_0x3c91('0x1'),_0x3c91('0x2'),_0x3c91('0x3')];function createListener(_0x2f18fd,_0x422417){return function(_0x505b51){_0x422417['emit'](_0x2f18fd,_0x505b51);};}function removeListener(_0x202144,_0x20e219){return function(){SmsInteractionEvents[_0x3c91('0x4')](_0x202144,_0x20e219);};}exports[_0x3c91('0x5')]=function(_0x39233c){for(var _0x50304a=0x0,_0x91bc22=events['length'];_0x50304a<_0x91bc22;_0x50304a++){var _0x4ac190=events[_0x50304a];var _0x2e5470=createListener(_0x3c91('0x6')+_0x4ac190,_0x39233c);SmsInteractionEvents['on'](_0x4ac190,_0x2e5470);}};
\ No newline at end of file
+var _0x3320=['smsInteraction:','save','remove','emit','removeListener','register','length'];(function(_0x463896,_0x560b73){var _0x233b97=function(_0x1da16a){while(--_0x1da16a){_0x463896['push'](_0x463896['shift']());}};_0x233b97(++_0x560b73);}(_0x3320,0x13c));var _0x0332=function(_0x2517e0,_0x1ab572){_0x2517e0=_0x2517e0-0x0;var _0x3b430b=_0x3320[_0x2517e0];return _0x3b430b;};'use strict';var SmsInteractionEvents=require('./smsInteraction.events');var events=[_0x0332('0x0'),_0x0332('0x1'),'update'];function createListener(_0x2c60b0,_0x427f3d){return function(_0x1f4988){_0x427f3d[_0x0332('0x2')](_0x2c60b0,_0x1f4988);};}function removeListener(_0x54068c,_0x32ec48){return function(){SmsInteractionEvents[_0x0332('0x3')](_0x54068c,_0x32ec48);};}exports[_0x0332('0x4')]=function(_0x5256f9){for(var _0x2aef5e=0x0,_0x432970=events[_0x0332('0x5')];_0x2aef5e<_0x432970;_0x2aef5e++){var _0x4cdba2=events[_0x2aef5e];var _0x2d9b4a=createListener(_0x0332('0x6')+_0x4cdba2,_0x5256f9);SmsInteractionEvents['on'](_0x4cdba2,_0x2d9b4a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa177=['sms','smsmessage:create','status','put','update','/:id/accept','accept','reject','delete','destroy','exports','path','express','Router','../../components/interaction/service','../../config/environment','./smsMessage.controller','get','isAuthenticated','index','describe','/:id','show','post'];(function(_0x2e4aa2,_0x11956a){var _0x5e6092=function(_0x4c12c2){while(--_0x4c12c2){_0x2e4aa2['push'](_0x2e4aa2['shift']());}};_0x5e6092(++_0x11956a);}(_0xa177,0x143));var _0x7a17=function(_0x637787,_0x3822c2){_0x637787=_0x637787-0x0;var _0x1be9a7=_0xa177[_0x637787];return _0x1be9a7;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7a17('0x0'));var timeout=require('connect-timeout');var express=require(_0x7a17('0x1'));var router=express[_0x7a17('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x7a17('0x3'));var config=require(_0x7a17('0x4'));var controller=require(_0x7a17('0x5'));router[_0x7a17('0x6')]('/',auth[_0x7a17('0x7')](),controller[_0x7a17('0x8')]);router[_0x7a17('0x6')]('/describe',auth['isAuthenticated'](),controller[_0x7a17('0x9')]);router[_0x7a17('0x6')](_0x7a17('0xa'),auth[_0x7a17('0x7')](),controller[_0x7a17('0xb')]);router[_0x7a17('0xc')]('/',auth[_0x7a17('0x7')](),interaction['tracked'](_0x7a17('0xd'),_0x7a17('0xe')),controller['create']);router['post']('/:id/status',controller[_0x7a17('0xf')]);router[_0x7a17('0x10')](_0x7a17('0xa'),auth[_0x7a17('0x7')](),controller[_0x7a17('0x11')]);router['put'](_0x7a17('0x12'),auth[_0x7a17('0x7')](),controller[_0x7a17('0x13')]);router[_0x7a17('0x10')]('/:id/reject',auth[_0x7a17('0x7')](),controller[_0x7a17('0x14')]);router[_0x7a17('0x15')](_0x7a17('0xa'),auth[_0x7a17('0x7')](),controller[_0x7a17('0x16')]);module[_0x7a17('0x17')]=router;
\ No newline at end of file
+var _0xdbe1=['/:id/status','status','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','exports','multer','path','express','Router','../../components/interaction/service','../../config/environment','./smsMessage.controller','isAuthenticated','index','get','/describe','describe','/:id','show','post','tracked','sms','smsmessage:create','create'];(function(_0x355914,_0x21dec2){var _0x224da1=function(_0x95867b){while(--_0x95867b){_0x355914['push'](_0x355914['shift']());}};_0x224da1(++_0x21dec2);}(_0xdbe1,0x137));var _0x1dbe=function(_0x4794d1,_0x4458b2){_0x4794d1=_0x4794d1-0x0;var _0x17b5bf=_0xdbe1[_0x4794d1];return _0x17b5bf;};'use strict';var multer=require(_0x1dbe('0x0'));var util=require('util');var path=require(_0x1dbe('0x1'));var timeout=require('connect-timeout');var express=require(_0x1dbe('0x2'));var router=express[_0x1dbe('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x1dbe('0x4'));var config=require(_0x1dbe('0x5'));var controller=require(_0x1dbe('0x6'));router['get']('/',auth[_0x1dbe('0x7')](),controller[_0x1dbe('0x8')]);router[_0x1dbe('0x9')](_0x1dbe('0xa'),auth[_0x1dbe('0x7')](),controller[_0x1dbe('0xb')]);router[_0x1dbe('0x9')](_0x1dbe('0xc'),auth[_0x1dbe('0x7')](),controller[_0x1dbe('0xd')]);router[_0x1dbe('0xe')]('/',auth[_0x1dbe('0x7')](),interaction[_0x1dbe('0xf')](_0x1dbe('0x10'),_0x1dbe('0x11')),controller[_0x1dbe('0x12')]);router['post'](_0x1dbe('0x13'),controller[_0x1dbe('0x14')]);router[_0x1dbe('0x15')](_0x1dbe('0xc'),auth[_0x1dbe('0x7')](),controller[_0x1dbe('0x16')]);router['put'](_0x1dbe('0x17'),auth[_0x1dbe('0x7')](),controller[_0x1dbe('0x18')]);router[_0x1dbe('0x15')](_0x1dbe('0x19'),auth[_0x1dbe('0x7')](),controller[_0x1dbe('0x1a')]);router[_0x1dbe('0x1b')](_0x1dbe('0xc'),auth[_0x1dbe('0x7')](),controller[_0x1dbe('0x1c')]);module[_0x1dbe('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf966=['ENUM','out','STRING','DATE','sequelize','exports','TEXT','BOOLEAN'];(function(_0x272438,_0x3fe559){var _0x46def0=function(_0x50765b){while(--_0x50765b){_0x272438['push'](_0x272438['shift']());}};_0x46def0(++_0x3fe559);}(_0xf966,0x184));var _0x6f96=function(_0x1b4dcd,_0x40cfa5){_0x1b4dcd=_0x1b4dcd-0x0;var _0x5287b3=_0xf966[_0x1b4dcd];return _0x5287b3;};'use strict';var Sequelize=require(_0x6f96('0x0'));module[_0x6f96('0x1')]={'body':{'type':Sequelize[_0x6f96('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x6f96('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x6f96('0x4')]('in',_0x6f96('0x5')),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize[_0x6f96('0x6')](0xbe)},'phone':{'type':Sequelize[_0x6f96('0x6')]},'readAt':{'type':Sequelize[_0x6f96('0x7')]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x9b6d=['BOOLEAN','ENUM','out','STRING','DATE','exports','TEXT','medium'];(function(_0x543cf3,_0xf851ce){var _0x1619d6=function(_0xd6b0ef){while(--_0xd6b0ef){_0x543cf3['push'](_0x543cf3['shift']());}};_0x1619d6(++_0xf851ce);}(_0x9b6d,0x105));var _0xd9b6=function(_0x58abff,_0x16db36){_0x58abff=_0x58abff-0x0;var _0x55b949=_0x9b6d[_0x58abff];return _0x55b949;};'use strict';var Sequelize=require('sequelize');module[_0xd9b6('0x0')]={'body':{'type':Sequelize[_0xd9b6('0x1')](_0xd9b6('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xd9b6('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xd9b6('0x4')]('in',_0xd9b6('0x5')),'defaultValue':_0xd9b6('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0xd9b6('0x6')](0xbe)},'phone':{'type':Sequelize[_0xd9b6('0x6')]},'readAt':{'type':Sequelize[_0xd9b6('0x7')]},'secret':{'type':Sequelize[_0xd9b6('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c1f=['sms','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','CmContact','get','SmsInteractionId','isNil','read1stAt','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','EventManager','acceptmessage','reject','agent','SmsInteraction','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','event','rejectmessage','SmsAccount','SmsAccountId','SmsMessage,\x20%s,\x20%s,\x20%s','type','inspect','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','twilio','plivo','MessageUUID','indexOf','sent','delivered','Status','plivio','groupName','html-pdf','eml-format','zip-dir','fast-json-patch','mustache','util','sox','to-csv','ejs','squel','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./smsMessage.socket','jayson/promise','client','http','SmsMessage,\x20%s,\x20%s','debug','request\x20sent','error','message','info','result','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','stack','name','index','SmsMessage','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','filter','merge','include','findAll','rows','catch','show','params','includeAll','options','find','create','body','describe','sms-interactions','accept'];(function(_0x5d78e9,_0x319abc){var _0x58bf64=function(_0xe8f856){while(--_0xe8f856){_0x5d78e9['push'](_0x5d78e9['shift']());}};_0x58bf64(++_0x319abc);}(_0x9c1f,0xb8));var _0xf9c1=function(_0xe81807,_0x1d96e0){_0xe81807=_0xe81807-0x0;var _0x10bc49=_0x9c1f[_0xe81807];return _0x10bc49;};'use strict';var pdf=require(_0xf9c1('0x0'));var emlformat=require(_0xf9c1('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xf9c1('0x2'));var jsonpatch=require(_0xf9c1('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xf9c1('0x4'));var util=require(_0xf9c1('0x5'));var path=require('path');var sox=require(_0xf9c1('0x6'));var csv=require(_0xf9c1('0x7'));var ejs=require(_0xf9c1('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0xf9c1('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf9c1('0xa'));var toCsv=require(_0xf9c1('0x7'));var querystring=require(_0xf9c1('0xb'));var Papa=require(_0xf9c1('0xc'));var qs=require(_0xf9c1('0xd'));var logger=require(_0xf9c1('0xe'))(_0xf9c1('0xf'));var utils=require(_0xf9c1('0x10'));var config=require(_0xf9c1('0x11'));var db=require(_0xf9c1('0x12'))['db'];config[_0xf9c1('0x13')]=_[_0xf9c1('0x14')](config['redis'],{'host':_0xf9c1('0x15'),'port':0x18eb});var socket=require(_0xf9c1('0x16'))(config['redis']);require(_0xf9c1('0x17'))['register'](socket);var jayson=require(_0xf9c1('0x18'));var client=jayson[_0xf9c1('0x19')]['http']({'port':0x232c});var client9002=jayson[_0xf9c1('0x19')][_0xf9c1('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x59c58d,_0xa06f13,_0x1a05c4,_0x392ccd){return new BPromise(function(_0x23ba70,_0x36762){var _0xf7fd5c=_0x392ccd||client;return _0xf7fd5c['request'](_0x59c58d,_0x1a05c4)['then'](function(_0x4d0274){logger['info'](_0xf9c1('0x1b'),_0xa06f13,'request\x20sent');logger[_0xf9c1('0x1c')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xa06f13,_0xf9c1('0x1d'),JSON['stringify'](_0x4d0274));if(_0x4d0274['error']){if(_0x4d0274[_0xf9c1('0x1e')]['code']===0x1f4){logger[_0xf9c1('0x1e')](_0xf9c1('0x1b'),_0xa06f13,_0x4d0274[_0xf9c1('0x1e')][_0xf9c1('0x1f')]);return _0x36762(_0x4d0274['error']['message']);}logger['error']('SmsMessage,\x20%s,\x20%s',_0xa06f13,_0x4d0274[_0xf9c1('0x1e')][_0xf9c1('0x1f')]);return _0x23ba70(_0x4d0274[_0xf9c1('0x1e')][_0xf9c1('0x1f')]);}else{logger[_0xf9c1('0x20')]('SmsMessage,\x20%s,\x20%s',_0xa06f13,_0xf9c1('0x1d'));_0x23ba70(_0x4d0274[_0xf9c1('0x21')][_0xf9c1('0x1f')]);}})['catch'](function(_0x57ace9){logger[_0xf9c1('0x1e')](_0xf9c1('0x1b'),_0xa06f13,_0x57ace9);_0x36762(_0x57ace9);});});}function respondWithStatusCode(_0x30147a,_0x30a313){_0x30a313=_0x30a313||0xcc;return function(_0x57698f){if(_0x57698f){return _0x30147a[_0xf9c1('0x22')](_0x30a313);}return _0x30147a[_0xf9c1('0x23')](_0x30a313)[_0xf9c1('0x24')]();};}function respondWithResult(_0x5f0d4f,_0x28ae11){_0x28ae11=_0x28ae11||0xc8;return function(_0x19a7ef){if(_0x19a7ef){return _0x5f0d4f[_0xf9c1('0x23')](_0x28ae11)[_0xf9c1('0x25')](_0x19a7ef);}};}function respondWithFilteredResult(_0x39069b,_0x5da7c3){return function(_0x30dcbf){if(_0x30dcbf){var _0x1234c5=_0x30dcbf[_0xf9c1('0x26')],_0x5a105c=_0x5da7c3['offset'],_0x433eb7=_0x5da7c3[_0xf9c1('0x27')]+_0x5da7c3[_0xf9c1('0x28')],_0x4aadab;if(_0x433eb7>=_0x1234c5){_0x433eb7=_0x1234c5;_0x4aadab=0xc8;}else{_0x4aadab=0xce;}_0x39069b['status'](_0x4aadab);return _0x39069b[_0xf9c1('0x29')](_0xf9c1('0x2a'),_0x5a105c+'-'+_0x433eb7+'/'+_0x1234c5)['json'](_0x30dcbf);}return null;};}function patchUpdates(_0x5cad02){return function(_0x7c0a24){try{jsonpatch[_0xf9c1('0x2b')](_0x7c0a24,_0x5cad02,!![]);}catch(_0x1d261c){return BPromise['reject'](_0x1d261c);}return _0x7c0a24[_0xf9c1('0x2c')]();};}function saveUpdates(_0x434758,_0x5a1ba3){return function(_0x309957){if(_0x309957){return _0x309957[_0xf9c1('0x2d')](_0x434758)[_0xf9c1('0x2e')](function(_0xa168bf){return _0xa168bf;});}return null;};}function removeEntity(_0x6451f8,_0x4bceac){return function(_0x48c98a){if(_0x48c98a){return _0x48c98a[_0xf9c1('0x2f')]()[_0xf9c1('0x2e')](function(){_0x6451f8[_0xf9c1('0x23')](0xcc)[_0xf9c1('0x24')]();});}};}function handleEntityNotFound(_0x2f1d41,_0x4e9b3f){return function(_0x2cd7d5){if(!_0x2cd7d5){_0x2f1d41[_0xf9c1('0x22')](0x194);}return _0x2cd7d5;};}function handleError(_0x544912,_0x88c61){_0x88c61=_0x88c61||0x1f4;return function(_0x26bcc6){logger[_0xf9c1('0x1e')](_0x26bcc6[_0xf9c1('0x30')]);if(_0x26bcc6[_0xf9c1('0x31')]){delete _0x26bcc6['name'];}_0x544912[_0xf9c1('0x23')](_0x88c61)['send'](_0x26bcc6);};}exports[_0xf9c1('0x32')]=function(_0x2dda0f,_0x2f9299){var _0x5141a3={},_0x131910={},_0x445aef={'count':0x0,'rows':[]};var _0x4f2d59=db[_0xf9c1('0x33')][_0xf9c1('0x34')];_0x131910[_0xf9c1('0x35')]=_[_0xf9c1('0x36')](_0x4f2d59);var _0xf8b183={'dateStart':_0x2dda0f[_0xf9c1('0x37')][_0xf9c1('0x38')],'dateEnd':_0x2dda0f['query'][_0xf9c1('0x39')]};delete _0x2dda0f[_0xf9c1('0x37')][_0xf9c1('0x38')];delete _0x2dda0f['query'][_0xf9c1('0x39')];_0x131910[_0xf9c1('0x37')]=_['keys'](_0x2dda0f[_0xf9c1('0x37')]);_0x131910[_0xf9c1('0x3a')]=_[_0xf9c1('0x3b')](_0x131910[_0xf9c1('0x35')],_0x131910[_0xf9c1('0x37')]);_0x5141a3[_0xf9c1('0x3c')]=_[_0xf9c1('0x3b')](_0x131910['model'],qs[_0xf9c1('0x3d')](_0x2dda0f[_0xf9c1('0x37')]['fields']));_0x5141a3[_0xf9c1('0x3c')]=_0x5141a3[_0xf9c1('0x3c')][_0xf9c1('0x3e')]?_0x5141a3[_0xf9c1('0x3c')]:_0x131910[_0xf9c1('0x35')];if(!_0x2dda0f[_0xf9c1('0x37')][_0xf9c1('0x3f')]('nolimit')){_0x5141a3[_0xf9c1('0x28')]=qs[_0xf9c1('0x28')](_0x2dda0f['query']['limit']);_0x5141a3[_0xf9c1('0x27')]=qs[_0xf9c1('0x27')](_0x2dda0f[_0xf9c1('0x37')]['offset']);}_0x5141a3[_0xf9c1('0x40')]=qs[_0xf9c1('0x41')](_0x2dda0f[_0xf9c1('0x37')][_0xf9c1('0x41')]);_0x5141a3[_0xf9c1('0x42')]=qs[_0xf9c1('0x3a')](_[_0xf9c1('0x43')](_0x2dda0f[_0xf9c1('0x37')],_0x131910[_0xf9c1('0x3a')]));if(_0xf8b183['dateStart']){if(_0xf8b183[_0xf9c1('0x39')]){_0xf8b183[_0xf9c1('0x39')]=moment(_0xf8b183[_0xf9c1('0x39')])[_0xf9c1('0x44')](0x1,_0xf9c1('0x45'));}else{_0xf8b183[_0xf9c1('0x39')]=moment(_0xf8b183['dateStart'])[_0xf9c1('0x44')](0x1,'day');}_['merge'](_0x5141a3[_0xf9c1('0x42')],{'createdAt':{'$gte':_0xf8b183[_0xf9c1('0x38')],'$lte':_0xf8b183[_0xf9c1('0x39')]}});}if(_0x2dda0f[_0xf9c1('0x37')][_0xf9c1('0x46')]){_0x5141a3[_0xf9c1('0x42')]=_[_0xf9c1('0x47')](_0x5141a3[_0xf9c1('0x42')],{'$or':_['map'](_0x5141a3[_0xf9c1('0x3c')],function(_0x29e5d6){var _0x3050df={};_0x3050df[_0x29e5d6]={'$like':'%'+_0x2dda0f[_0xf9c1('0x37')]['filter']+'%'};return _0x3050df;})});}_0x5141a3=_[_0xf9c1('0x47')]({},_0x5141a3,_0x2dda0f['options']);var _0x381091={'where':_0x5141a3[_0xf9c1('0x42')]};return db[_0xf9c1('0x33')]['count'](_0x381091)['then'](function(_0x5db892){_0x445aef[_0xf9c1('0x26')]=_0x5db892;if(_0x2dda0f['query']['includeAll']){_0x5141a3[_0xf9c1('0x48')]=[{'all':!![]}];}return db['SmsMessage'][_0xf9c1('0x49')](_0x5141a3);})[_0xf9c1('0x2e')](function(_0x3aac9b){_0x445aef[_0xf9c1('0x4a')]=_0x3aac9b;return _0x445aef;})['then'](respondWithFilteredResult(_0x2f9299,_0x5141a3))[_0xf9c1('0x4b')](handleError(_0x2f9299,null));};exports[_0xf9c1('0x4c')]=function(_0x232413,_0x10b5da){var _0x24f4d5={'raw':!![],'where':{'id':_0x232413[_0xf9c1('0x4d')]['id']}},_0x38ae47={};_0x38ae47[_0xf9c1('0x35')]=_[_0xf9c1('0x36')](db['SmsMessage'][_0xf9c1('0x34')]);_0x38ae47[_0xf9c1('0x37')]=_['keys'](_0x232413[_0xf9c1('0x37')]);_0x38ae47['filters']=_[_0xf9c1('0x3b')](_0x38ae47[_0xf9c1('0x35')],_0x38ae47[_0xf9c1('0x37')]);_0x24f4d5[_0xf9c1('0x3c')]=_[_0xf9c1('0x3b')](_0x38ae47[_0xf9c1('0x35')],qs[_0xf9c1('0x3d')](_0x232413[_0xf9c1('0x37')][_0xf9c1('0x3d')]));_0x24f4d5[_0xf9c1('0x3c')]=_0x24f4d5[_0xf9c1('0x3c')][_0xf9c1('0x3e')]?_0x24f4d5[_0xf9c1('0x3c')]:_0x38ae47[_0xf9c1('0x35')];if(_0x232413[_0xf9c1('0x37')][_0xf9c1('0x4e')]){_0x24f4d5[_0xf9c1('0x48')]=[{'all':!![]}];}_0x24f4d5=_[_0xf9c1('0x47')]({},_0x24f4d5,_0x232413[_0xf9c1('0x4f')]);return db[_0xf9c1('0x33')][_0xf9c1('0x50')](_0x24f4d5)['then'](handleEntityNotFound(_0x10b5da,null))[_0xf9c1('0x2e')](respondWithResult(_0x10b5da,null))['catch'](handleError(_0x10b5da,null));};exports[_0xf9c1('0x51')]=function(_0x17d5f6,_0x55e683){return db[_0xf9c1('0x33')][_0xf9c1('0x51')](_0x17d5f6[_0xf9c1('0x52')],{})[_0xf9c1('0x2e')](respondWithResult(_0x55e683,0xc9))['catch'](handleError(_0x55e683,null));};exports['update']=function(_0x7685c6,_0x50d4f9){if(_0x7685c6[_0xf9c1('0x52')]['id']){delete _0x7685c6['body']['id'];}return db[_0xf9c1('0x33')][_0xf9c1('0x50')]({'where':{'id':_0x7685c6[_0xf9c1('0x4d')]['id']}})[_0xf9c1('0x2e')](handleEntityNotFound(_0x50d4f9,null))[_0xf9c1('0x2e')](saveUpdates(_0x7685c6['body'],null))[_0xf9c1('0x2e')](respondWithResult(_0x50d4f9,null))['catch'](handleError(_0x50d4f9,null));};exports[_0xf9c1('0x2f')]=function(_0x1c26e1,_0x18efb3){return db[_0xf9c1('0x33')]['find']({'where':{'id':_0x1c26e1[_0xf9c1('0x4d')]['id']}})[_0xf9c1('0x2e')](handleEntityNotFound(_0x18efb3,null))['then'](removeEntity(_0x18efb3,null))[_0xf9c1('0x4b')](handleError(_0x18efb3,null));};exports[_0xf9c1('0x53')]=function(_0x2e365e,_0x1b010d){return db['SmsMessage']['describe']()[_0xf9c1('0x2e')](respondWithResult(_0x1b010d,null))[_0xf9c1('0x4b')](handleError(_0x1b010d,null));};var interaction_log=require(_0xf9c1('0xe'))(_0xf9c1('0x54'));exports[_0xf9c1('0x55')]=function(_0x5f4f22,_0x5f338c,_0x1d4dca){var _0x4fbe89={'channel':_0xf9c1('0x56')};if(_0x5f4f22[_0xf9c1('0x52')]['id']){delete _0x5f4f22[_0xf9c1('0x52')]['id'];}_0x5f4f22[_0xf9c1('0x52')][_0xf9c1('0x57')]=!![];_0x5f4f22['body'][_0xf9c1('0x58')]=moment()[_0xf9c1('0x59')](_0xf9c1('0x5a'));_0x5f4f22['body']['UserId']=_0x5f4f22[_0xf9c1('0x52')][_0xf9c1('0x5b')]||_0x5f4f22[_0xf9c1('0x5c')]['id'];return db[_0xf9c1('0x33')][_0xf9c1('0x50')]({'where':{'id':_0x5f4f22[_0xf9c1('0x4d')]['id'],'UserId':null},'include':[{'model':db[_0xf9c1('0x5d')],'as':'Contact'}]})['then'](handleEntityNotFound(_0x5f338c,null))['then'](saveUpdates(_0x5f4f22[_0xf9c1('0x52')],null))['then'](function(_0x4b45ad){if(_0x4b45ad){_0x4fbe89[_0xf9c1('0x1f')]=_0x4b45ad[_0xf9c1('0x5e')]({'plain':!![]});return db['SmsInteraction'][_0xf9c1('0x50')]({'where':{'id':_0x4b45ad[_0xf9c1('0x5f')]}});}return null;})[_0xf9c1('0x2e')](handleEntityNotFound(_0x5f338c,null))['then'](function(_0x5b8a0b){if(_0x5b8a0b){return _0x5b8a0b[_0xf9c1('0x2d')]({'UserId':_0x5f4f22[_0xf9c1('0x52')][_0xf9c1('0x5b')],'read1stAt':_[_0xf9c1('0x60')](_0x5b8a0b[_0xf9c1('0x61')])?moment()[_0xf9c1('0x59')](_0xf9c1('0x5a')):undefined});}return null;})[_0xf9c1('0x2e')](function(_0x1e73cb){if(_0x1e73cb){_0x4fbe89[_0xf9c1('0x62')]=_0x1e73cb[_0xf9c1('0x5e')]({'plain':!![]});interaction_log[_0xf9c1('0x20')](_0xf9c1('0x63'),_0x5f4f22[_0xf9c1('0x5c')]['id'],_0x5f4f22[_0xf9c1('0x5c')][_0xf9c1('0x31')],_0x5f4f22[_0xf9c1('0x5c')][_0xf9c1('0x64')],_0x4fbe89['interaction']['id'],_0x5f4f22[_0xf9c1('0x52')]?JSON[_0xf9c1('0x65')](_0x5f4f22[_0xf9c1('0x52')]):'null');return respondWithRpcPromise(_0xf9c1('0x66'),_0xf9c1('0x67'),_0x4fbe89);}return null;})[_0xf9c1('0x2e')](function(_0x2ab5d6){if(_0x2ab5d6){if(_0x5f4f22[_0xf9c1('0x52')][_0xf9c1('0x68')]){_0x4fbe89[_0xf9c1('0x1f')][_0xf9c1('0x69')]=util[_0xf9c1('0x59')](_0xf9c1('0x6a'),_0x5f4f22[_0xf9c1('0x5c')][_0xf9c1('0x31')]);_0x4fbe89[_0xf9c1('0x1f')][_0xf9c1('0x6b')]=_0x4fbe89[_0xf9c1('0x6b')];_0x4fbe89[_0xf9c1('0x1f')]['event']=_0xf9c1('0x55');return respondWithRpcPromise('EventManager',_0xf9c1('0x6c'),{'event':_0xf9c1('0x6d'),'message':_0x4fbe89['message']},client9002)['then'](function(){return _0x4fbe89;});}return _0x4fbe89;}return null;})[_0xf9c1('0x2e')](respondWithResult(_0x5f338c,null))[_0xf9c1('0x4b')](handleError(_0x5f338c,null));};var interaction_log=require(_0xf9c1('0xe'))(_0xf9c1('0x54'));exports[_0xf9c1('0x6e')]=function(_0x1a7aa5,_0x5f241f,_0x159164){var _0x33b1cc={'agent':{},'channel':_0xf9c1('0x56')};if(_0x1a7aa5[_0xf9c1('0x52')]['id']){delete _0x1a7aa5['body']['id'];}_0x1a7aa5[_0xf9c1('0x52')][_0xf9c1('0x5b')]=_0x1a7aa5[_0xf9c1('0x52')][_0xf9c1('0x5b')]||_0x1a7aa5[_0xf9c1('0x5c')]['id'];_0x33b1cc[_0xf9c1('0x6f')]['id']=_0x1a7aa5[_0xf9c1('0x52')][_0xf9c1('0x5b')];return db[_0xf9c1('0x33')][_0xf9c1('0x50')]({'where':{'id':_0x1a7aa5[_0xf9c1('0x4d')]['id'],'UserId':null}})[_0xf9c1('0x2e')](handleEntityNotFound(_0x5f241f,null))[_0xf9c1('0x2e')](function(_0x36ea46){if(_0x36ea46){_0x33b1cc[_0xf9c1('0x1f')]=_0x36ea46[_0xf9c1('0x5e')]({'plain':!![]});return db[_0xf9c1('0x70')]['find']({'where':{'id':_0x36ea46[_0xf9c1('0x5f')]}});}return null;})[_0xf9c1('0x2e')](handleEntityNotFound(_0x5f241f,null))[_0xf9c1('0x2e')](function(_0x3aae0f){if(_0x3aae0f){_0x33b1cc[_0xf9c1('0x62')]=_0x3aae0f['get']({'plain':!![]});interaction_log[_0xf9c1('0x20')](_0xf9c1('0x71'),_0x1a7aa5[_0xf9c1('0x5c')]['id'],_0x1a7aa5['user'][_0xf9c1('0x31')],_0x1a7aa5['user'][_0xf9c1('0x64')],_0x33b1cc[_0xf9c1('0x62')]['id'],_0x1a7aa5[_0xf9c1('0x52')]?JSON[_0xf9c1('0x65')](_0x1a7aa5[_0xf9c1('0x52')]):'null');return respondWithRpcPromise(_0xf9c1('0x72'),_0xf9c1('0x73'),_0x33b1cc);}return null;})['then'](function(_0x29d888){if(_0x29d888){_0x29d888[_0xf9c1('0x1f')]['interface']=util[_0xf9c1('0x59')]('SIP/%s',_0x1a7aa5[_0xf9c1('0x5c')][_0xf9c1('0x31')]);_0x29d888['message'][_0xf9c1('0x6b')]=_0x33b1cc[_0xf9c1('0x6b')];_0x29d888[_0xf9c1('0x1f')][_0xf9c1('0x74')]='reject';respondWithRpcPromise(_0xf9c1('0x6c'),_0xf9c1('0x6c'),{'event':_0xf9c1('0x75'),'message':_0x29d888[_0xf9c1('0x1f')]},client9002);return _0x33b1cc;}return null;})[_0xf9c1('0x2e')](respondWithResult(_0x5f241f,null))[_0xf9c1('0x4b')](handleError(_0x5f241f,null));};exports['status']=function(_0x2e53db,_0x2c3c0f,_0x39effd){if(_0x2e53db[_0xf9c1('0x52')]['id']){delete _0x2e53db[_0xf9c1('0x52')]['id'];}var _0x3a4595;return db[_0xf9c1('0x33')]['find']({'where':{'id':_0x2e53db[_0xf9c1('0x4d')]['id']}})[_0xf9c1('0x2e')](handleEntityNotFound(_0x2c3c0f,null))[_0xf9c1('0x2e')](function(_0x48f7df){if(_0x48f7df){_0x3a4595=_0x48f7df;return db[_0xf9c1('0x76')][_0xf9c1('0x50')]({'where':{'id':_0x48f7df[_0xf9c1('0x77')]}});}})[_0xf9c1('0x2e')](handleEntityNotFound(_0x2c3c0f,null))[_0xf9c1('0x2e')](function(_0x54f5b7){if(_0x54f5b7){logger['debug'](_0xf9c1('0x78'),_0xf9c1('0x23'),'received\x20delivery\x20report\x20from',_0x54f5b7[_0xf9c1('0x79')],util[_0xf9c1('0x7a')](_0x2e53db[_0xf9c1('0x52')],{'showHidden':![],'depth':null}));switch(_0x54f5b7[_0xf9c1('0x79')]){case'twilio':if(_0x2e53db[_0xf9c1('0x52')][_0xf9c1('0x7b')]&&_0x2e53db[_0xf9c1('0x52')]['MessageSid']===_0x3a4595[_0xf9c1('0x7c')]){return _0x3a4595[_0xf9c1('0x2d')]({'read':!![]});}else{logger[_0xf9c1('0x1e')](_0xf9c1('0x7d'),_0xf9c1('0x23'),_0xf9c1('0x7e'),util[_0xf9c1('0x7a')](_0x2e53db['body'],{'showHidden':![],'depth':null}));}break;case _0xf9c1('0x7f'):if(_0x2e53db[_0xf9c1('0x52')][_0xf9c1('0x80')]&&_0x2e53db['body'][_0xf9c1('0x80')]===_0x3a4595['messageId']&&_[_0xf9c1('0x81')]([_0xf9c1('0x82'),_0xf9c1('0x83')],_0x2e53db[_0xf9c1('0x52')][_0xf9c1('0x84')])>=0x0){return _0x3a4595['update']({'read':!![]});}else{logger[_0xf9c1('0x1e')](_0xf9c1('0x7d'),_0xf9c1('0x23'),_0xf9c1('0x85'),util[_0xf9c1('0x7a')](_0x2e53db[_0xf9c1('0x52')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x2f4b1a=_0x2e53db[_0xf9c1('0x52')]['results'][0x0];if(_0x2f4b1a[_0xf9c1('0x23')][_0xf9c1('0x86')]==='DELIVERED'){return _0x3a4595[_0xf9c1('0x2d')]({'read':!![]});}else{logger[_0xf9c1('0x1e')](_0xf9c1('0x7d'),_0xf9c1('0x23'),'infobip',util[_0xf9c1('0x7a')](_0x2e53db[_0xf9c1('0x52')],{'showHidden':![],'depth':null}));}break;}return _0x3a4595;}})[_0xf9c1('0x2e')](respondWithResult(_0x2c3c0f,null))[_0xf9c1('0x4b')](handleError(_0x2c3c0f,null));};
\ No newline at end of file
+var _0xcb91=['isNil','read1stAt','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','interaction','AcceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','agent','SmsInteractionId','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','debug','SmsMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','type','twilio','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','inspect','MessageUUID','indexOf','plivio','results','groupName','DELIVERED','infobip','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','ejs','lodash','crypto','jsforce','to-csv','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','register','jayson/promise','client','http','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','sendStatus','end','status','json','offset','limit','set','Content-Range','apply','reject','save','destroy','stack','name','index','SmsMessage','model','keys','dateStart','dateEnd','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','add','day','merge','filter','options','count','includeAll','include','rows','catch','show','rawAttributes','length','find','create','body','update','params','describe','sms-interactions','accept','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','Contact','get','SmsInteraction'];(function(_0x5ce00e,_0x5be1b1){var _0x2f825b=function(_0xe8ed6){while(--_0xe8ed6){_0x5ce00e['push'](_0x5ce00e['shift']());}};_0x2f825b(++_0x5be1b1);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x59bcb1,_0x5a4b6c){_0x59bcb1=_0x59bcb1-0x0;var _0x4a737f=_0xcb91[_0x59bcb1];return _0x4a737f;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x1cb9('0x0'));var zipdir=require(_0x1cb9('0x1'));var jsonpatch=require(_0x1cb9('0x2'));var rp=require(_0x1cb9('0x3'));var moment=require('moment');var BPromise=require(_0x1cb9('0x4'));var Mustache=require(_0x1cb9('0x5'));var util=require('util');var path=require(_0x1cb9('0x6'));var sox=require(_0x1cb9('0x7'));var csv=require('to-csv');var ejs=require(_0x1cb9('0x8'));var fs=require('fs');var _=require(_0x1cb9('0x9'));var squel=require('squel');var crypto=require(_0x1cb9('0xa'));var jsforce=require(_0x1cb9('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x1cb9('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1cb9('0xd'));var qs=require(_0x1cb9('0xe'));var logger=require(_0x1cb9('0xf'))(_0x1cb9('0x10'));var utils=require(_0x1cb9('0x11'));var config=require('../../config/environment');var db=require(_0x1cb9('0x12'))['db'];config[_0x1cb9('0x13')]=_[_0x1cb9('0x14')](config[_0x1cb9('0x13')],{'host':_0x1cb9('0x15'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./smsMessage.socket')[_0x1cb9('0x16')](socket);var jayson=require(_0x1cb9('0x17'));var client=jayson[_0x1cb9('0x18')][_0x1cb9('0x19')]({'port':0x232c});var client9002=jayson['client'][_0x1cb9('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x6ef389,_0x1b3cd7,_0x8dfa55,_0x3e2d11){return new BPromise(function(_0x5806d8,_0x5572cb){var _0xd446a3=_0x3e2d11||client;return _0xd446a3[_0x1cb9('0x1a')](_0x6ef389,_0x8dfa55)[_0x1cb9('0x1b')](function(_0x3f1376){logger[_0x1cb9('0x1c')](_0x1cb9('0x1d'),_0x1b3cd7,_0x1cb9('0x1e'));logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x1b3cd7,_0x1cb9('0x1e'),JSON[_0x1cb9('0x1f')](_0x3f1376));if(_0x3f1376[_0x1cb9('0x20')]){if(_0x3f1376[_0x1cb9('0x20')][_0x1cb9('0x21')]===0x1f4){logger[_0x1cb9('0x20')](_0x1cb9('0x1d'),_0x1b3cd7,_0x3f1376['error']['message']);return _0x5572cb(_0x3f1376[_0x1cb9('0x20')]['message']);}logger[_0x1cb9('0x20')](_0x1cb9('0x1d'),_0x1b3cd7,_0x3f1376['error']['message']);return _0x5806d8(_0x3f1376[_0x1cb9('0x20')][_0x1cb9('0x22')]);}else{logger[_0x1cb9('0x1c')](_0x1cb9('0x1d'),_0x1b3cd7,_0x1cb9('0x1e'));_0x5806d8(_0x3f1376[_0x1cb9('0x23')]['message']);}})['catch'](function(_0x6c6f61){logger['error'](_0x1cb9('0x1d'),_0x1b3cd7,_0x6c6f61);_0x5572cb(_0x6c6f61);});});}function respondWithStatusCode(_0x2b1275,_0x69b4c8){_0x69b4c8=_0x69b4c8||0xcc;return function(_0x44d3c4){if(_0x44d3c4){return _0x2b1275[_0x1cb9('0x24')](_0x69b4c8);}return _0x2b1275['status'](_0x69b4c8)[_0x1cb9('0x25')]();};}function respondWithResult(_0x9df250,_0x4c8d76){_0x4c8d76=_0x4c8d76||0xc8;return function(_0xd6891c){if(_0xd6891c){return _0x9df250[_0x1cb9('0x26')](_0x4c8d76)[_0x1cb9('0x27')](_0xd6891c);}};}function respondWithFilteredResult(_0x1804fd,_0x406821){return function(_0x21d6f5){if(_0x21d6f5){var _0x2e28fe=_0x21d6f5['count'],_0xb644b3=_0x406821[_0x1cb9('0x28')],_0x41e5c2=_0x406821['offset']+_0x406821[_0x1cb9('0x29')],_0x9de64b;if(_0x41e5c2>=_0x2e28fe){_0x41e5c2=_0x2e28fe;_0x9de64b=0xc8;}else{_0x9de64b=0xce;}_0x1804fd['status'](_0x9de64b);return _0x1804fd[_0x1cb9('0x2a')](_0x1cb9('0x2b'),_0xb644b3+'-'+_0x41e5c2+'/'+_0x2e28fe)[_0x1cb9('0x27')](_0x21d6f5);}return null;};}function patchUpdates(_0x2038aa){return function(_0x561d89){try{jsonpatch[_0x1cb9('0x2c')](_0x561d89,_0x2038aa,!![]);}catch(_0x4eba82){return BPromise[_0x1cb9('0x2d')](_0x4eba82);}return _0x561d89[_0x1cb9('0x2e')]();};}function saveUpdates(_0x4220d7,_0x5d8793){return function(_0xae4c7a){if(_0xae4c7a){return _0xae4c7a['update'](_0x4220d7)[_0x1cb9('0x1b')](function(_0x58f4f5){return _0x58f4f5;});}return null;};}function removeEntity(_0x2164e3,_0x42a688){return function(_0x3a2c60){if(_0x3a2c60){return _0x3a2c60[_0x1cb9('0x2f')]()['then'](function(){_0x2164e3[_0x1cb9('0x26')](0xcc)[_0x1cb9('0x25')]();});}};}function handleEntityNotFound(_0x3467d5,_0x91a1db){return function(_0xc6784c){if(!_0xc6784c){_0x3467d5[_0x1cb9('0x24')](0x194);}return _0xc6784c;};}function handleError(_0xc6d5fd,_0x1ed5ad){_0x1ed5ad=_0x1ed5ad||0x1f4;return function(_0x386e8b){logger[_0x1cb9('0x20')](_0x386e8b[_0x1cb9('0x30')]);if(_0x386e8b[_0x1cb9('0x31')]){delete _0x386e8b[_0x1cb9('0x31')];}_0xc6d5fd['status'](_0x1ed5ad)['send'](_0x386e8b);};}exports[_0x1cb9('0x32')]=function(_0x30f7e4,_0x91c937){var _0x29f451={},_0x385daa={},_0x3a06e6={'count':0x0,'rows':[]};var _0x35f5e8=db[_0x1cb9('0x33')]['rawAttributes'];_0x385daa[_0x1cb9('0x34')]=_[_0x1cb9('0x35')](_0x35f5e8);var _0xefe136={'dateStart':_0x30f7e4['query'][_0x1cb9('0x36')],'dateEnd':_0x30f7e4['query'][_0x1cb9('0x37')]};delete _0x30f7e4['query'][_0x1cb9('0x36')];delete _0x30f7e4[_0x1cb9('0x38')][_0x1cb9('0x37')];_0x385daa[_0x1cb9('0x38')]=_[_0x1cb9('0x35')](_0x30f7e4[_0x1cb9('0x38')]);_0x385daa[_0x1cb9('0x39')]=_['intersection'](_0x385daa['model'],_0x385daa[_0x1cb9('0x38')]);_0x29f451[_0x1cb9('0x3a')]=_[_0x1cb9('0x3b')](_0x385daa[_0x1cb9('0x34')],qs[_0x1cb9('0x3c')](_0x30f7e4[_0x1cb9('0x38')][_0x1cb9('0x3c')]));_0x29f451['attributes']=_0x29f451[_0x1cb9('0x3a')]['length']?_0x29f451['attributes']:_0x385daa['model'];if(!_0x30f7e4[_0x1cb9('0x38')][_0x1cb9('0x3d')](_0x1cb9('0x3e'))){_0x29f451[_0x1cb9('0x29')]=qs[_0x1cb9('0x29')](_0x30f7e4['query'][_0x1cb9('0x29')]);_0x29f451['offset']=qs[_0x1cb9('0x28')](_0x30f7e4[_0x1cb9('0x38')][_0x1cb9('0x28')]);}_0x29f451['order']=qs[_0x1cb9('0x3f')](_0x30f7e4['query'][_0x1cb9('0x3f')]);_0x29f451[_0x1cb9('0x40')]=qs['filters'](_['pick'](_0x30f7e4[_0x1cb9('0x38')],_0x385daa[_0x1cb9('0x39')]));if(_0xefe136[_0x1cb9('0x36')]){if(_0xefe136[_0x1cb9('0x37')]){_0xefe136[_0x1cb9('0x37')]=moment(_0xefe136['dateEnd'])[_0x1cb9('0x41')](0x1,'day');}else{_0xefe136['dateEnd']=moment(_0xefe136['dateStart'])[_0x1cb9('0x41')](0x1,_0x1cb9('0x42'));}_[_0x1cb9('0x43')](_0x29f451[_0x1cb9('0x40')],{'createdAt':{'$gte':_0xefe136[_0x1cb9('0x36')],'$lte':_0xefe136[_0x1cb9('0x37')]}});}if(_0x30f7e4[_0x1cb9('0x38')][_0x1cb9('0x44')]){_0x29f451[_0x1cb9('0x40')]=_[_0x1cb9('0x43')](_0x29f451[_0x1cb9('0x40')],{'$or':_['map'](_0x29f451[_0x1cb9('0x3a')],function(_0x237125){var _0xf082dd={};_0xf082dd[_0x237125]={'$like':'%'+_0x30f7e4['query'][_0x1cb9('0x44')]+'%'};return _0xf082dd;})});}_0x29f451=_[_0x1cb9('0x43')]({},_0x29f451,_0x30f7e4[_0x1cb9('0x45')]);var _0x2efdbb={'where':_0x29f451[_0x1cb9('0x40')]};return db['SmsMessage'][_0x1cb9('0x46')](_0x2efdbb)['then'](function(_0x2eaa11){_0x3a06e6['count']=_0x2eaa11;if(_0x30f7e4[_0x1cb9('0x38')][_0x1cb9('0x47')]){_0x29f451[_0x1cb9('0x48')]=[{'all':!![]}];}return db[_0x1cb9('0x33')]['findAll'](_0x29f451);})[_0x1cb9('0x1b')](function(_0x1149b9){_0x3a06e6[_0x1cb9('0x49')]=_0x1149b9;return _0x3a06e6;})[_0x1cb9('0x1b')](respondWithFilteredResult(_0x91c937,_0x29f451))[_0x1cb9('0x4a')](handleError(_0x91c937,null));};exports[_0x1cb9('0x4b')]=function(_0x17b92a,_0x3b6a92){var _0xbb500e={'raw':!![],'where':{'id':_0x17b92a['params']['id']}},_0x17f10e={};_0x17f10e['model']=_[_0x1cb9('0x35')](db[_0x1cb9('0x33')][_0x1cb9('0x4c')]);_0x17f10e[_0x1cb9('0x38')]=_[_0x1cb9('0x35')](_0x17b92a[_0x1cb9('0x38')]);_0x17f10e[_0x1cb9('0x39')]=_[_0x1cb9('0x3b')](_0x17f10e[_0x1cb9('0x34')],_0x17f10e[_0x1cb9('0x38')]);_0xbb500e['attributes']=_[_0x1cb9('0x3b')](_0x17f10e['model'],qs[_0x1cb9('0x3c')](_0x17b92a['query'][_0x1cb9('0x3c')]));_0xbb500e['attributes']=_0xbb500e['attributes'][_0x1cb9('0x4d')]?_0xbb500e[_0x1cb9('0x3a')]:_0x17f10e[_0x1cb9('0x34')];if(_0x17b92a['query'][_0x1cb9('0x47')]){_0xbb500e[_0x1cb9('0x48')]=[{'all':!![]}];}_0xbb500e=_['merge']({},_0xbb500e,_0x17b92a['options']);return db[_0x1cb9('0x33')][_0x1cb9('0x4e')](_0xbb500e)[_0x1cb9('0x1b')](handleEntityNotFound(_0x3b6a92,null))[_0x1cb9('0x1b')](respondWithResult(_0x3b6a92,null))[_0x1cb9('0x4a')](handleError(_0x3b6a92,null));};exports[_0x1cb9('0x4f')]=function(_0x17ce94,_0x5912f9){return db[_0x1cb9('0x33')][_0x1cb9('0x4f')](_0x17ce94[_0x1cb9('0x50')],{})['then'](respondWithResult(_0x5912f9,0xc9))[_0x1cb9('0x4a')](handleError(_0x5912f9,null));};exports[_0x1cb9('0x51')]=function(_0x1651c5,_0xf6eb2d){if(_0x1651c5[_0x1cb9('0x50')]['id']){delete _0x1651c5[_0x1cb9('0x50')]['id'];}return db['SmsMessage'][_0x1cb9('0x4e')]({'where':{'id':_0x1651c5[_0x1cb9('0x52')]['id']}})[_0x1cb9('0x1b')](handleEntityNotFound(_0xf6eb2d,null))[_0x1cb9('0x1b')](saveUpdates(_0x1651c5[_0x1cb9('0x50')],null))[_0x1cb9('0x1b')](respondWithResult(_0xf6eb2d,null))[_0x1cb9('0x4a')](handleError(_0xf6eb2d,null));};exports[_0x1cb9('0x2f')]=function(_0x40875a,_0x3a4cbe){return db[_0x1cb9('0x33')]['find']({'where':{'id':_0x40875a[_0x1cb9('0x52')]['id']}})[_0x1cb9('0x1b')](handleEntityNotFound(_0x3a4cbe,null))[_0x1cb9('0x1b')](removeEntity(_0x3a4cbe,null))[_0x1cb9('0x4a')](handleError(_0x3a4cbe,null));};exports['describe']=function(_0x4a9cf8,_0x319358){return db[_0x1cb9('0x33')][_0x1cb9('0x53')]()[_0x1cb9('0x1b')](respondWithResult(_0x319358,null))[_0x1cb9('0x4a')](handleError(_0x319358,null));};var interaction_log=require(_0x1cb9('0xf'))(_0x1cb9('0x54'));exports[_0x1cb9('0x55')]=function(_0x478bba,_0x49f74c,_0x748140){var _0x4fe746={'channel':'sms'};if(_0x478bba['body']['id']){delete _0x478bba['body']['id'];}_0x478bba['body'][_0x1cb9('0x56')]=!![];_0x478bba[_0x1cb9('0x50')][_0x1cb9('0x57')]=moment()[_0x1cb9('0x58')](_0x1cb9('0x59'));_0x478bba[_0x1cb9('0x50')]['UserId']=_0x478bba[_0x1cb9('0x50')][_0x1cb9('0x5a')]||_0x478bba['user']['id'];return db['SmsMessage'][_0x1cb9('0x4e')]({'where':{'id':_0x478bba[_0x1cb9('0x52')]['id'],'UserId':null},'include':[{'model':db[_0x1cb9('0x5b')],'as':_0x1cb9('0x5c')}]})[_0x1cb9('0x1b')](handleEntityNotFound(_0x49f74c,null))['then'](saveUpdates(_0x478bba['body'],null))['then'](function(_0x270282){if(_0x270282){_0x4fe746[_0x1cb9('0x22')]=_0x270282[_0x1cb9('0x5d')]({'plain':!![]});return db[_0x1cb9('0x5e')][_0x1cb9('0x4e')]({'where':{'id':_0x270282['SmsInteractionId']}});}return null;})[_0x1cb9('0x1b')](handleEntityNotFound(_0x49f74c,null))[_0x1cb9('0x1b')](function(_0x5c65cd){if(_0x5c65cd){return _0x5c65cd['update']({'UserId':_0x478bba[_0x1cb9('0x50')]['UserId'],'read1stAt':_[_0x1cb9('0x5f')](_0x5c65cd[_0x1cb9('0x60')])?moment()[_0x1cb9('0x58')](_0x1cb9('0x59')):undefined});}return null;})[_0x1cb9('0x1b')](function(_0x398779){if(_0x398779){_0x4fe746['interaction']=_0x398779[_0x1cb9('0x5d')]({'plain':!![]});interaction_log[_0x1cb9('0x1c')](_0x1cb9('0x61'),_0x478bba[_0x1cb9('0x62')]['id'],_0x478bba['user']['name'],_0x478bba[_0x1cb9('0x62')][_0x1cb9('0x63')],_0x4fe746[_0x1cb9('0x64')]['id'],_0x478bba[_0x1cb9('0x50')]?JSON[_0x1cb9('0x1f')](_0x478bba[_0x1cb9('0x50')]):'null');return respondWithRpcPromise(_0x1cb9('0x65'),'acceptMessage',_0x4fe746);}return null;})[_0x1cb9('0x1b')](function(_0x26dae9){if(_0x26dae9){if(_0x478bba['body'][_0x1cb9('0x66')]){_0x4fe746[_0x1cb9('0x22')][_0x1cb9('0x67')]=util['format'](_0x1cb9('0x68'),_0x478bba[_0x1cb9('0x62')][_0x1cb9('0x31')]);_0x4fe746[_0x1cb9('0x22')][_0x1cb9('0x69')]=_0x4fe746[_0x1cb9('0x69')];_0x4fe746['message'][_0x1cb9('0x6a')]=_0x1cb9('0x55');return respondWithRpcPromise(_0x1cb9('0x6b'),_0x1cb9('0x6b'),{'event':_0x1cb9('0x6c'),'message':_0x4fe746[_0x1cb9('0x22')]},client9002)[_0x1cb9('0x1b')](function(){return _0x4fe746;});}return _0x4fe746;}return null;})[_0x1cb9('0x1b')](respondWithResult(_0x49f74c,null))['catch'](handleError(_0x49f74c,null));};var interaction_log=require(_0x1cb9('0xf'))(_0x1cb9('0x54'));exports['reject']=function(_0x15746e,_0x5415fa,_0x3a0675){var _0x526d2f={'agent':{},'channel':'sms'};if(_0x15746e[_0x1cb9('0x50')]['id']){delete _0x15746e[_0x1cb9('0x50')]['id'];}_0x15746e['body'][_0x1cb9('0x5a')]=_0x15746e['body'][_0x1cb9('0x5a')]||_0x15746e[_0x1cb9('0x62')]['id'];_0x526d2f[_0x1cb9('0x6d')]['id']=_0x15746e[_0x1cb9('0x50')]['UserId'];return db[_0x1cb9('0x33')][_0x1cb9('0x4e')]({'where':{'id':_0x15746e[_0x1cb9('0x52')]['id'],'UserId':null}})[_0x1cb9('0x1b')](handleEntityNotFound(_0x5415fa,null))[_0x1cb9('0x1b')](function(_0x14fc13){if(_0x14fc13){_0x526d2f['message']=_0x14fc13[_0x1cb9('0x5d')]({'plain':!![]});return db[_0x1cb9('0x5e')][_0x1cb9('0x4e')]({'where':{'id':_0x14fc13[_0x1cb9('0x6e')]}});}return null;})[_0x1cb9('0x1b')](handleEntityNotFound(_0x5415fa,null))[_0x1cb9('0x1b')](function(_0x5e07ba){if(_0x5e07ba){_0x526d2f[_0x1cb9('0x64')]=_0x5e07ba[_0x1cb9('0x5d')]({'plain':!![]});interaction_log['info'](_0x1cb9('0x6f'),_0x15746e[_0x1cb9('0x62')]['id'],_0x15746e[_0x1cb9('0x62')][_0x1cb9('0x31')],_0x15746e[_0x1cb9('0x62')][_0x1cb9('0x63')],_0x526d2f[_0x1cb9('0x64')]['id'],_0x15746e['body']?JSON[_0x1cb9('0x1f')](_0x15746e['body']):_0x1cb9('0x70'));return respondWithRpcPromise(_0x1cb9('0x71'),'rejectMessage',_0x526d2f);}return null;})[_0x1cb9('0x1b')](function(_0x114255){if(_0x114255){_0x114255[_0x1cb9('0x22')][_0x1cb9('0x67')]=util['format'](_0x1cb9('0x68'),_0x15746e[_0x1cb9('0x62')][_0x1cb9('0x31')]);_0x114255['message'][_0x1cb9('0x69')]=_0x526d2f[_0x1cb9('0x69')];_0x114255[_0x1cb9('0x22')][_0x1cb9('0x6a')]=_0x1cb9('0x2d');respondWithRpcPromise(_0x1cb9('0x6b'),_0x1cb9('0x6b'),{'event':'rejectmessage','message':_0x114255[_0x1cb9('0x22')]},client9002);return _0x526d2f;}return null;})['then'](respondWithResult(_0x5415fa,null))[_0x1cb9('0x4a')](handleError(_0x5415fa,null));};exports[_0x1cb9('0x26')]=function(_0x127e60,_0x329175,_0x4bdbd2){if(_0x127e60[_0x1cb9('0x50')]['id']){delete _0x127e60[_0x1cb9('0x50')]['id'];}var _0x5e68a1;return db[_0x1cb9('0x33')][_0x1cb9('0x4e')]({'where':{'id':_0x127e60[_0x1cb9('0x52')]['id']}})[_0x1cb9('0x1b')](handleEntityNotFound(_0x329175,null))[_0x1cb9('0x1b')](function(_0x52a3f1){if(_0x52a3f1){_0x5e68a1=_0x52a3f1;return db['SmsAccount']['find']({'where':{'id':_0x52a3f1['SmsAccountId']}});}})[_0x1cb9('0x1b')](handleEntityNotFound(_0x329175,null))[_0x1cb9('0x1b')](function(_0xe99ac7){if(_0xe99ac7){logger[_0x1cb9('0x72')](_0x1cb9('0x73'),_0x1cb9('0x26'),_0x1cb9('0x74'),_0xe99ac7[_0x1cb9('0x75')],util['inspect'](_0x127e60[_0x1cb9('0x50')],{'showHidden':![],'depth':null}));switch(_0xe99ac7[_0x1cb9('0x75')]){case _0x1cb9('0x76'):if(_0x127e60['body'][_0x1cb9('0x77')]&&_0x127e60[_0x1cb9('0x50')]['MessageSid']===_0x5e68a1[_0x1cb9('0x78')]){return _0x5e68a1[_0x1cb9('0x51')]({'read':!![]});}else{logger[_0x1cb9('0x20')](_0x1cb9('0x79'),'status',_0x1cb9('0x76'),util[_0x1cb9('0x7a')](_0x127e60['body'],{'showHidden':![],'depth':null}));}break;case'plivo':if(_0x127e60[_0x1cb9('0x50')][_0x1cb9('0x7b')]&&_0x127e60['body']['MessageUUID']===_0x5e68a1[_0x1cb9('0x78')]&&_[_0x1cb9('0x7c')](['sent','delivered'],_0x127e60[_0x1cb9('0x50')]['Status'])>=0x0){return _0x5e68a1['update']({'read':!![]});}else{logger['error'](_0x1cb9('0x79'),'status',_0x1cb9('0x7d'),util[_0x1cb9('0x7a')](_0x127e60[_0x1cb9('0x50')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x2fcb20=_0x127e60[_0x1cb9('0x50')][_0x1cb9('0x7e')][0x0];if(_0x2fcb20['status'][_0x1cb9('0x7f')]===_0x1cb9('0x80')){return _0x5e68a1[_0x1cb9('0x51')]({'read':!![]});}else{logger[_0x1cb9('0x20')](_0x1cb9('0x79'),'status',_0x1cb9('0x81'),util[_0x1cb9('0x7a')](_0x127e60[_0x1cb9('0x50')],{'showHidden':![],'depth':null}));}break;}return _0x5e68a1;}})['then'](respondWithResult(_0x329175,null))[_0x1cb9('0x4a')](handleError(_0x329175,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25dc=['save','update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb'];(function(_0x4de1b1,_0x18c64c){var _0x639f27=function(_0x635e03){while(--_0x635e03){_0x4de1b1['push'](_0x4de1b1['shift']());}};_0x639f27(++_0x18c64c);}(_0x25dc,0x1ef));var _0xc25d=function(_0xe73080,_0x24c56d){_0xe73080=_0xe73080-0x0;var _0x12cbc4=_0x25dc[_0xe73080];return _0x12cbc4;};'use strict';var EventEmitter=require('events');var SmsMessage=require(_0xc25d('0x0'))['db']['SmsMessage'];var SmsMessageEvents=new EventEmitter();SmsMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xc25d('0x1'),'afterUpdate':_0xc25d('0x2'),'afterDestroy':_0xc25d('0x3')};function emitEvent(_0x5a7a1a){return function(_0x35579b,_0x20f736,_0x452080){SmsMessageEvents[_0xc25d('0x4')](_0x5a7a1a+':'+_0x35579b['id'],_0x35579b);SmsMessageEvents['emit'](_0x5a7a1a,_0x35579b);_0x452080(null);};}for(var e in events){if(events[_0xc25d('0x5')](e)){var event=events[e];SmsMessage[_0xc25d('0x6')](e,emitEvent(event));}}module[_0xc25d('0x7')]=SmsMessageEvents;
\ No newline at end of file
+var _0xb2a4=['SmsMessage','setMaxListeners','save','update','emit','hasOwnProperty','hook','exports','../../mysqldb'];(function(_0x4fdbb9,_0x2a214e){var _0x1007cc=function(_0x4fe87a){while(--_0x4fe87a){_0x4fdbb9['push'](_0x4fdbb9['shift']());}};_0x1007cc(++_0x2a214e);}(_0xb2a4,0xaa));var _0x4b2a=function(_0x14ba63,_0x297900){_0x14ba63=_0x14ba63-0x0;var _0x1736a9=_0xb2a4[_0x14ba63];return _0x1736a9;};'use strict';var EventEmitter=require('events');var SmsMessage=require(_0x4b2a('0x0'))['db'][_0x4b2a('0x1')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0x4b2a('0x2')](0x0);var events={'afterCreate':_0x4b2a('0x3'),'afterUpdate':_0x4b2a('0x4'),'afterDestroy':'remove'};function emitEvent(_0xf750cb){return function(_0x429fc2,_0xb37897,_0x2faf13){SmsMessageEvents[_0x4b2a('0x5')](_0xf750cb+':'+_0x429fc2['id'],_0x429fc2);SmsMessageEvents[_0x4b2a('0x5')](_0xf750cb,_0x429fc2);_0x2faf13(null);};}for(var e in events){if(events[_0x4b2a('0x6')](e)){var event=events[e];SmsMessage[_0x4b2a('0x7')](e,emitEvent(event));}}module[_0x4b2a('0x8')]=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0177=['base64','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','csc','crypto','apiKey','sender','text','timestamp','keys','sort','length','md5','digest','hex','GET','https://sms.csc.lv/external/get/send.php?','id_sms','Missing\x20parameters:\x20apiKey','uuid','apiMessageId','clickatell','finally','utf8mb4','utf8mb4_unicode_ci','util','moment','bluebird','request-promise','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','models','get','direction','toLowerCase','out','secret','isNil','UserId','SmsInteraction','createdAt','catch','SmsAccount','find','then','type','twilio','authToken','accountSid','body','/status?token=','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','phone','smsMethod','&password=','sms','user_key','session_key','total_sent','deliveryReport','read','update','error','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/send/','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','%s:%s','POST','https://rest.clicksend.com/v3/sms/send','format','Basic\x20%s','toString','http_code','data','queued_count','head','messages','clickSend','plivo','authId','remote','/api/sms/messages/','token','https://api.plivo.com/v1/Account/%s/Message/'];(function(_0x56a568,_0x586bf1){var _0x144fae=function(_0x5785a2){while(--_0x5785a2){_0x56a568['push'](_0x56a568['shift']());}};_0x144fae(++_0x586bf1);}(_0x0177,0x15a));var _0x7017=function(_0x17b7d9,_0x1a78b3){_0x17b7d9=_0x17b7d9-0x0;var _0x1600d4=_0x0177[_0x17b7d9];return _0x1600d4;};'use strict';var _=require('lodash');var util=require(_0x7017('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x7017('0x1'));var BPromise=require(_0x7017('0x2'));var rp=require(_0x7017('0x3'));var attributes=require(_0x7017('0x4'));module[_0x7017('0x5')]=function(_0xe6d1d5,_0x1d52b7){return _0xe6d1d5[_0x7017('0x6')](_0x7017('0x7'),attributes,{'tableName':_0x7017('0x8'),'paranoid':![],'indexes':[{'name':_0x7017('0x9'),'fields':[_0x7017('0x9')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x41eebc,_0x26f77b,_0x356686){var _0x49b63a=_0xe6d1d5[_0x7017('0xa')];var _0x4e98d4=_0x41eebc[_0x7017('0xb')]({'plain':!![]});if(_0x4e98d4[_0x7017('0xc')][_0x7017('0xd')]()==='in'||_0x4e98d4['direction'][_0x7017('0xd')]()===_0x7017('0xe')&&!_0x4e98d4[_0x7017('0xf')]&&!_[_0x7017('0x10')](_0x4e98d4[_0x7017('0x11')])){_0x49b63a[_0x7017('0x12')]['findOne']({'where':{'id':_0x4e98d4['SmsInteractionId']}})['then'](function(_0x5b8cd8){if(_0x5b8cd8){_0x5b8cd8['update']({'lastMsgAt':_0x4e98d4[_0x7017('0x13')],'lastMsgDirection':_0x4e98d4[_0x7017('0xc')][_0x7017('0xd')](),'lastMsgBody':_0x4e98d4['body']});}})[_0x7017('0x14')](function(_0x4cb38c){console['error'](_0x4cb38c);});}if(_0x4e98d4[_0x7017('0xc')]===_0x7017('0xe')&&!_0x4e98d4[_0x7017('0xf')]){var _0x2cffa0;_0x49b63a[_0x7017('0x15')][_0x7017('0x16')]({'where':{'id':_0x4e98d4['SmsAccountId']},'raw':!![]})[_0x7017('0x17')](function(_0x3db823){_0x2cffa0=_0x3db823;if(_0x2cffa0&&_0x2cffa0[_0x7017('0x18')]){switch(_0x2cffa0['type']){case _0x7017('0x19'):var _0x23499c=require(_0x7017('0x19'));if(_0x2cffa0['accountSid']&&_0x2cffa0[_0x7017('0x1a')]&&_0x2cffa0['phone']){var _0x11cd08=new _0x23499c(_0x2cffa0[_0x7017('0x1b')],_0x2cffa0[_0x7017('0x1a')]);_0x11cd08['messages']['create']({'body':_0x4e98d4[_0x7017('0x1c')],'to':_0x4e98d4['phone'],'from':_0x2cffa0['phone'],'statusCallback':_0x2cffa0['remote']+'/api/sms/messages/'+_0x4e98d4['id']+_0x7017('0x1d')+_0x2cffa0['token']})[_0x7017('0x17')](function(_0x2903e1){if(_0x2903e1[_0x7017('0x1e')]){return _0x41eebc['update']({'messageId':_0x2903e1[_0x7017('0x1e')]});}})[_0x7017('0x14')](function(_0x3421dd){logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x19'),util[_0x7017('0x21')](_0x3421dd,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7017('0x1f'),_0x7017('0x20'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x7017('0x22'):var _0x3710ac=_0x7017('0x23');if(_0x2cffa0[_0x7017('0x24')]&&_0x2cffa0[_0x7017('0x25')]){var _0x489533={'recipient':[_0x4e98d4[_0x7017('0x26')]],'message':_0x4e98d4[_0x7017('0x1c')],'message_type':_0x2cffa0[_0x7017('0x27')]};var _0x53cb50={'url':_0x3710ac+'login?username='+_0x2cffa0[_0x7017('0x24')]+_0x7017('0x28')+_0x2cffa0[_0x7017('0x25')],'method':'GET'};rp(_0x53cb50)[_0x7017('0x17')](function(_0xadd608){var _0x383f46=_0xadd608['split'](';');var _0x292979={'user_key':_0x383f46[0x0],'session_key':_0x383f46[0x1]};_0x53cb50={'url':_0x3710ac+_0x7017('0x29'),'method':'POST','headers':{'user_key':_0x292979[_0x7017('0x2a')],'Session_key':_0x292979[_0x7017('0x2b')]},'json':!![],'body':_0x489533};return rp(_0x53cb50);})['then'](function(_0x3cd6ec){if(_0x3cd6ec[_0x7017('0x2c')]>=0x1){var _0x497d78={'messageId':_0x3cd6ec['internal_order_id']};if(_0x2cffa0[_0x7017('0x27')]!=='GP'||!_0x2cffa0[_0x7017('0x2d')]){_0x497d78[_0x7017('0x2e')]=!![];}return _0x41eebc[_0x7017('0x2f')](_0x497d78);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x22'),util[_0x7017('0x21')](_0x3cd6ec,{'showHidden':![],'depth':null}));}})[_0x7017('0x14')](function(_0x8e58bf){return logger[_0x7017('0x30')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','skebby',util[_0x7017('0x21')](_0x8e58bf,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'skebby',_0x7017('0x31'));}break;case _0x7017('0x32'):if(_0x2cffa0['authToken']){var _0x383d6d={'recipient':_0x4e98d4[_0x7017('0x26')],'message':_0x4e98d4['body'],'sender':_0x2cffa0[_0x7017('0x33')]||_0x2cffa0[_0x7017('0x26')],'authorization':_0x2cffa0[_0x7017('0x1a')]};var _0x26f77b={'method':'POST','uri':_0x7017('0x34'),'body':_0x383d6d,'json':!![]};rp(_0x26f77b)[_0x7017('0x17')](function(_0x5e4c58){var _0x3e1f11={'messageId':_0x5e4c58['requestid']};if(!_0x2cffa0[_0x7017('0x2d')]){_0x3e1f11['read']=!![];}return _0x41eebc[_0x7017('0x2f')](_0x3e1f11);})[_0x7017('0x14')](function(_0x438bb4){logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate','connectel',util[_0x7017('0x21')](_0x438bb4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x32'),_0x7017('0x35'));}break;case _0x7017('0x36'):if(_0x2cffa0['username']&&_0x2cffa0[_0x7017('0x25')]){var _0x383d6d={'messages':[{'source':_0x7017('0x37'),'to':_0x4e98d4[_0x7017('0x26')],'body':_0x4e98d4[_0x7017('0x1c')],'from':_0x2cffa0[_0x7017('0x33')]||_0x2cffa0['phone']}]};var _0x1ce974=util['format'](_0x7017('0x38'),_0x2cffa0[_0x7017('0x24')],_0x2cffa0[_0x7017('0x25')]);var _0x26f77b={'method':_0x7017('0x39'),'uri':_0x7017('0x3a'),'body':_0x383d6d,'headers':{'Authorization':util[_0x7017('0x3b')](_0x7017('0x3c'),new Buffer(_0x1ce974)[_0x7017('0x3d')]('base64'))},'json':!![]};rp(_0x26f77b)[_0x7017('0x17')](function(_0x1d7751){if(_0x1d7751[_0x7017('0x3e')]>=0xc8&&_0x1d7751[_0x7017('0x3e')]<=0xce){if(_0x1d7751[_0x7017('0x3f')]&&_0x1d7751[_0x7017('0x3f')][_0x7017('0x40')]>0x0){var _0x48e0ef=_[_0x7017('0x41')](_0x1d7751['data'][_0x7017('0x42')]);var _0x1b892a={'messageId':_0x48e0ef['message_id']};if(!_0x2cffa0[_0x7017('0x2d')]){_0x1b892a['read']=!![];}return _0x41eebc['update'](_0x1b892a);}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7017('0x20'),'clickSend',util[_0x7017('0x21')](_0x1d7751,{'showHidden':![],'depth':null}));}}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x43'),util[_0x7017('0x21')](_0x1d7751,{'showHidden':![],'depth':null}));}})['catch'](function(_0x4582f6){logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x43'),util['inspect'](_0x4582f6,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'clickSend',_0x7017('0x31'));}break;case _0x7017('0x44'):if(_0x2cffa0[_0x7017('0x45')]&&_0x2cffa0[_0x7017('0x1a')]){var _0x383d6d={'dst':_0x4e98d4[_0x7017('0x26')],'text':_0x4e98d4[_0x7017('0x1c')],'src':_0x2cffa0[_0x7017('0x33')]||_0x2cffa0[_0x7017('0x26')],'url':_0x2cffa0[_0x7017('0x46')]+_0x7017('0x47')+_0x4e98d4['id']+_0x7017('0x1d')+_0x2cffa0[_0x7017('0x48')]};var _0x1ce974=util[_0x7017('0x3b')](_0x7017('0x38'),_0x2cffa0[_0x7017('0x45')],_0x2cffa0[_0x7017('0x1a')]);var _0x26f77b={'method':_0x7017('0x39'),'uri':util[_0x7017('0x3b')](_0x7017('0x49'),_0x2cffa0[_0x7017('0x45')]),'body':_0x383d6d,'headers':{'Authorization':util[_0x7017('0x3b')]('Basic\x20%s',new Buffer(_0x1ce974)[_0x7017('0x3d')](_0x7017('0x4a')))},'json':!![]};rp(_0x26f77b)[_0x7017('0x17')](function(_0xc27fb5){var _0x20f45d={'messageId':_0xc27fb5[_0x7017('0x4b')][0x0]};return _0x41eebc[_0x7017('0x2f')](_0x20f45d);})[_0x7017('0x14')](function(_0x568d12){logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x44'),util[_0x7017('0x21')](_0x568d12,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'plivo',_0x7017('0x4c'));}break;case _0x7017('0x4d'):if(_0x2cffa0[_0x7017('0x24')]&&_0x2cffa0[_0x7017('0x25')]){if(_0x2cffa0[_0x7017('0x4e')]){var _0x431cd4={'method':'POST','uri':_0x2cffa0[_0x7017('0x4e')]+_0x7017('0x4f'),'body':{'username':_0x2cffa0['username'],'password':_0x2cffa0[_0x7017('0x25')]},'json':!![]};return rp(_0x431cd4)['then'](function(_0x1b66ea){var _0xcf1dd3={'method':'POST','uri':_0x2cffa0['baseUrl']+_0x7017('0x50'),'body':{'messages':[{'from':_0x2cffa0[_0x7017('0x26')],'destinations':[{'to':_0x4e98d4['phone']}],'text':_0x4e98d4['body'],'notifyUrl':_0x2cffa0[_0x7017('0x46')]+_0x7017('0x47')+_0x4e98d4['id']+_0x7017('0x1d')+_0x2cffa0[_0x7017('0x48')],'notifyContentType':_0x7017('0x51'),'callbackData':_0x2cffa0[_0x7017('0x26')]+';'+_0x4e98d4[_0x7017('0x1c')]}]},'headers':{'Authorization':_0x7017('0x52')+_0x1b66ea[_0x7017('0x48')]},'json':!![]};return rp(_0xcf1dd3)[_0x7017('0x17')](function(_0x264072){if(_0x264072[_0x7017('0x42')]){var _0x272f2b={'messageId':_0x264072[_0x7017('0x42')][0x0][_0x7017('0x9')]};if(!_0x2cffa0[_0x7017('0x2d')]){_0x272f2b[_0x7017('0x2e')]=!![];}return _0x41eebc[_0x7017('0x2f')](_0x272f2b);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x4d'),util[_0x7017('0x21')](_0x264072,{'showHidden':![],'depth':null}));}});})[_0x7017('0x14')](function(_0x6eb37){return logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x4d'),util[_0x7017('0x21')](_0x6eb37,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x4d'),'Missing\x20parameters:\x20base_url');}}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7017('0x20'),_0x7017('0x4d'),_0x7017('0x31'));}case _0x7017('0x53'):var _0x402ade=require(_0x7017('0x54'));if(_0x2cffa0[_0x7017('0x55')]){var _0x2a6496={};_0x2a6496['login']=_0x2cffa0[_0x7017('0x24')];_0x2a6496[_0x7017('0x26')]=_0x4e98d4[_0x7017('0x26')];_0x2a6496[_0x7017('0x56')]=_0x2cffa0[_0x7017('0x26')];_0x2a6496[_0x7017('0x57')]=_0x4e98d4[_0x7017('0x1c')];_0x2a6496[_0x7017('0x58')]=+new Date();var _0x2cb738='';var _0xf9c667='';var _0x5de947=Object[_0x7017('0x59')](_0x2a6496);_0x5de947[_0x7017('0x5a')]();for(var _0x3f7061=0x0;_0x3f7061<_0x5de947[_0x7017('0x5b')];_0x3f7061++){if(_0x2cb738!=''){_0x2cb738+='&';}_0x2cb738+=_0x5de947[_0x3f7061]+'='+encodeURIComponent(_0x2a6496[_0x5de947[_0x3f7061]]);_0xf9c667+=_0x2a6496[_0x5de947[_0x3f7061]];}_0xf9c667+=_0x2cffa0[_0x7017('0x55')];_0xf9c667=_0x402ade['createHash'](_0x7017('0x5c'))[_0x7017('0x2f')](_0xf9c667)[_0x7017('0x5d')](_0x7017('0x5e'));if(_0x2cb738!==''){_0x2cb738+='&';}_0x2cb738+='signature='+_0xf9c667;var _0x53cb50={'method':_0x7017('0x5f'),'uri':_0x7017('0x60')+_0x2cb738,'json':!![]};return rp(_0x53cb50)['then'](function(_0x4e1d2e){var _0x3991b3=Object['keys'](_0x4e1d2e);if(_0x4e1d2e[_0x3991b3[0x0]]['error']&&parseInt(_0x4e1d2e[_0x3991b3[0x0]][_0x7017('0x30')])===0x0){var _0x257139={'messageId':_0x4e1d2e[_0x3991b3[0x0]][_0x7017('0x61')]};if(!_0x2cffa0[_0x7017('0x2d')]){_0x257139[_0x7017('0x2e')]=!![];}return _0x41eebc[_0x7017('0x2f')](_0x257139);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'csc',util[_0x7017('0x21')](_0x4e1d2e[_0x7017('0x30')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x3a8a3f){return logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x53'),util[_0x7017('0x21')](_0x3a8a3f,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x53'),_0x7017('0x62'));}case'clickatell':if(_0x2cffa0[_0x7017('0x55')]){var _0x3b6dd7={'method':_0x7017('0x39'),'uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x2cffa0[_0x7017('0x55')]},'body':{'content':_0x4e98d4[_0x7017('0x1c')],'to':[_0x4e98d4[_0x7017('0x26')]],'from':_0x2cffa0[_0x7017('0x26')],'binary':![],'clientMessageId':_0x7017('0x63'),'charset':'UTF-8'},'json':!![]};rp(_0x3b6dd7)[_0x7017('0x17')](function(_0x27edc4){if(!_0x27edc4[_0x7017('0x30')]){var _0x10dd08={'messageId':_0x27edc4[_0x7017('0x42')][0x0][_0x7017('0x64')]};if(!_0x2cffa0[_0x7017('0x2d')]){_0x10dd08[_0x7017('0x2e')]=!![];}return _0x41eebc['update'](_0x10dd08);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x65'),util[_0x7017('0x21')](_0x27edc4[_0x7017('0x30')],{'showHidden':![],'depth':null}));}})[_0x7017('0x14')](function(_0x28b197){return logger[_0x7017('0x30')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x7017('0x65'),util['inspect'](_0x28b197,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x65'),_0x7017('0x62'));}break;}}})[_0x7017('0x66')](function(){_0x356686();});}else{_0x356686();}}},'charset':_0x7017('0x67'),'collate':_0x7017('0x68')});};
\ No newline at end of file
+var _0xa58b=['Missing\x20parameters:\x20base_url','crypto','apiKey','login','sender','text','keys','length','createHash','md5','digest','hex','signature=','id_sms','csc','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','finally','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','./smsMessage.attributes','exports','SmsMessage','sms_messages','messageId','models','get','toLowerCase','out','secret','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','then','update','direction','body','catch','error','find','SmsAccountId','type','twilio','accountSid','authToken','phone','messages','remote','/api/sms/messages/','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','username','password','smsMethod','login?username=','&password=','GET','split','sms','POST','user_key','total_sent','internal_order_id','read','Missing\x20parameters:\x20username,\x20password','senderString','https://smsapi.connectel.se/api/send/','requestid','connectel','inspect','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','toString','base64','http_code','data','queued_count','head','message_id','deliveryReport','clickSend','authId','/status?token=','Basic\x20%s','plivo','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20'];(function(_0x516886,_0x39ef51){var _0x4dd712=function(_0x4b6674){while(--_0x4b6674){_0x516886['push'](_0x516886['shift']());}};_0x4dd712(++_0x39ef51);}(_0xa58b,0x160));var _0xba58=function(_0x2246da,_0x9fd0de){_0x2246da=_0x2246da-0x0;var _0x17edaa=_0xa58b[_0x2246da];return _0x17edaa;};'use strict';var _=require(_0xba58('0x0'));var util=require(_0xba58('0x1'));var logger=require(_0xba58('0x2'))(_0xba58('0x3'));var moment=require(_0xba58('0x4'));var BPromise=require(_0xba58('0x5'));var rp=require(_0xba58('0x6'));var attributes=require(_0xba58('0x7'));module[_0xba58('0x8')]=function(_0x5b1e68,_0x5d0e2e){return _0x5b1e68['define'](_0xba58('0x9'),attributes,{'tableName':_0xba58('0xa'),'paranoid':![],'indexes':[{'name':_0xba58('0xb'),'fields':[_0xba58('0xb')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3c8184,_0x867d0b,_0x30ad5f){var _0x5a0c5b=_0x5b1e68[_0xba58('0xc')];var _0x5dd41a=_0x3c8184[_0xba58('0xd')]({'plain':!![]});if(_0x5dd41a['direction']['toLowerCase']()==='in'||_0x5dd41a['direction'][_0xba58('0xe')]()===_0xba58('0xf')&&!_0x5dd41a[_0xba58('0x10')]&&!_[_0xba58('0x11')](_0x5dd41a[_0xba58('0x12')])){_0x5a0c5b[_0xba58('0x13')][_0xba58('0x14')]({'where':{'id':_0x5dd41a[_0xba58('0x15')]}})[_0xba58('0x16')](function(_0x41e542){if(_0x41e542){_0x41e542[_0xba58('0x17')]({'lastMsgAt':_0x5dd41a['createdAt'],'lastMsgDirection':_0x5dd41a[_0xba58('0x18')]['toLowerCase'](),'lastMsgBody':_0x5dd41a[_0xba58('0x19')]});}})[_0xba58('0x1a')](function(_0x5c931e){console[_0xba58('0x1b')](_0x5c931e);});}if(_0x5dd41a[_0xba58('0x18')]===_0xba58('0xf')&&!_0x5dd41a[_0xba58('0x10')]){var _0x43d135;_0x5a0c5b['SmsAccount'][_0xba58('0x1c')]({'where':{'id':_0x5dd41a[_0xba58('0x1d')]},'raw':!![]})[_0xba58('0x16')](function(_0x47b3c6){_0x43d135=_0x47b3c6;if(_0x43d135&&_0x43d135[_0xba58('0x1e')]){switch(_0x43d135[_0xba58('0x1e')]){case _0xba58('0x1f'):var _0x3972dd=require(_0xba58('0x1f'));if(_0x43d135[_0xba58('0x20')]&&_0x43d135[_0xba58('0x21')]&&_0x43d135[_0xba58('0x22')]){var _0x31b76a=new _0x3972dd(_0x43d135[_0xba58('0x20')],_0x43d135['authToken']);_0x31b76a[_0xba58('0x23')]['create']({'body':_0x5dd41a[_0xba58('0x19')],'to':_0x5dd41a[_0xba58('0x22')],'from':_0x43d135[_0xba58('0x22')],'statusCallback':_0x43d135[_0xba58('0x24')]+_0xba58('0x25')+_0x5dd41a['id']+'/status?token='+_0x43d135[_0xba58('0x26')]})[_0xba58('0x16')](function(_0xab13a3){if(_0xab13a3['sid']){return _0x3c8184[_0xba58('0x17')]({'messageId':_0xab13a3[_0xba58('0x27')]});}})[_0xba58('0x1a')](function(_0x1e47cc){logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x1f'),util['inspect'](_0x1e47cc,{'showHidden':![],'depth':null}));});}else{logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x1f'),_0xba58('0x2a'));}break;case _0xba58('0x2b'):var _0x4f3074='https://api.skebby.it/API/v1.0/REST/';if(_0x43d135[_0xba58('0x2c')]&&_0x43d135[_0xba58('0x2d')]){var _0x3268ab={'recipient':[_0x5dd41a[_0xba58('0x22')]],'message':_0x5dd41a['body'],'message_type':_0x43d135[_0xba58('0x2e')]};var _0x314cef={'url':_0x4f3074+_0xba58('0x2f')+_0x43d135[_0xba58('0x2c')]+_0xba58('0x30')+_0x43d135[_0xba58('0x2d')],'method':_0xba58('0x31')};rp(_0x314cef)['then'](function(_0x4ab815){var _0x4a6a70=_0x4ab815[_0xba58('0x32')](';');var _0x116e9f={'user_key':_0x4a6a70[0x0],'session_key':_0x4a6a70[0x1]};_0x314cef={'url':_0x4f3074+_0xba58('0x33'),'method':_0xba58('0x34'),'headers':{'user_key':_0x116e9f[_0xba58('0x35')],'Session_key':_0x116e9f['session_key']},'json':!![],'body':_0x3268ab};return rp(_0x314cef);})[_0xba58('0x16')](function(_0x3dc25b){if(_0x3dc25b[_0xba58('0x36')]>=0x1){var _0x4aed16={'messageId':_0x3dc25b[_0xba58('0x37')]};if(_0x43d135[_0xba58('0x2e')]!=='GP'||!_0x43d135['deliveryReport']){_0x4aed16[_0xba58('0x38')]=!![];}return _0x3c8184[_0xba58('0x17')](_0x4aed16);}else{return logger[_0xba58('0x1b')](_0xba58('0x28'),'afterCreate',_0xba58('0x2b'),util['inspect'](_0x3dc25b,{'showHidden':![],'depth':null}));}})[_0xba58('0x1a')](function(_0x5027f5){return logger[_0xba58('0x1b')](_0xba58('0x28'),'afterCreate',_0xba58('0x2b'),util['inspect'](_0x5027f5,{'showHidden':![],'depth':null}));});}else{logger[_0xba58('0x1b')](_0xba58('0x28'),'afterCreate',_0xba58('0x2b'),_0xba58('0x39'));}break;case'connectel':if(_0x43d135[_0xba58('0x21')]){var _0x2f18a1={'recipient':_0x5dd41a[_0xba58('0x22')],'message':_0x5dd41a[_0xba58('0x19')],'sender':_0x43d135[_0xba58('0x3a')]||_0x43d135[_0xba58('0x22')],'authorization':_0x43d135['authToken']};var _0x867d0b={'method':'POST','uri':_0xba58('0x3b'),'body':_0x2f18a1,'json':!![]};rp(_0x867d0b)[_0xba58('0x16')](function(_0x138351){var _0x5b3825={'messageId':_0x138351[_0xba58('0x3c')]};if(!_0x43d135['deliveryReport']){_0x5b3825['read']=!![];}return _0x3c8184[_0xba58('0x17')](_0x5b3825);})[_0xba58('0x1a')](function(_0x4fbc6a){logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x3d'),util[_0xba58('0x3e')](_0x4fbc6a,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xba58('0x28'),'afterCreate',_0xba58('0x3d'),_0xba58('0x3f'));}break;case _0xba58('0x40'):if(_0x43d135[_0xba58('0x2c')]&&_0x43d135[_0xba58('0x2d')]){var _0x2f18a1={'messages':[{'source':_0xba58('0x41'),'to':_0x5dd41a['phone'],'body':_0x5dd41a['body'],'from':_0x43d135[_0xba58('0x3a')]||_0x43d135[_0xba58('0x22')]}]};var _0x523588=util[_0xba58('0x42')](_0xba58('0x43'),_0x43d135[_0xba58('0x2c')],_0x43d135[_0xba58('0x2d')]);var _0x867d0b={'method':'POST','uri':'https://rest.clicksend.com/v3/sms/send','body':_0x2f18a1,'headers':{'Authorization':util[_0xba58('0x42')]('Basic\x20%s',new Buffer(_0x523588)[_0xba58('0x44')](_0xba58('0x45')))},'json':!![]};rp(_0x867d0b)[_0xba58('0x16')](function(_0x563152){if(_0x563152[_0xba58('0x46')]>=0xc8&&_0x563152[_0xba58('0x46')]<=0xce){if(_0x563152[_0xba58('0x47')]&&_0x563152[_0xba58('0x47')][_0xba58('0x48')]>0x0){var _0x158f3d=_[_0xba58('0x49')](_0x563152[_0xba58('0x47')][_0xba58('0x23')]);var _0x50c715={'messageId':_0x158f3d[_0xba58('0x4a')]};if(!_0x43d135[_0xba58('0x4b')]){_0x50c715[_0xba58('0x38')]=!![];}return _0x3c8184[_0xba58('0x17')](_0x50c715);}else{logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x4c'),util[_0xba58('0x3e')](_0x563152,{'showHidden':![],'depth':null}));}}else{logger[_0xba58('0x1b')](_0xba58('0x28'),'afterCreate',_0xba58('0x4c'),util[_0xba58('0x3e')](_0x563152,{'showHidden':![],'depth':null}));}})[_0xba58('0x1a')](function(_0x139aef){logger[_0xba58('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xba58('0x29'),_0xba58('0x4c'),util[_0xba58('0x3e')](_0x139aef,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x4c'),_0xba58('0x39'));}break;case'plivo':if(_0x43d135[_0xba58('0x4d')]&&_0x43d135[_0xba58('0x21')]){var _0x2f18a1={'dst':_0x5dd41a[_0xba58('0x22')],'text':_0x5dd41a[_0xba58('0x19')],'src':_0x43d135[_0xba58('0x3a')]||_0x43d135[_0xba58('0x22')],'url':_0x43d135['remote']+_0xba58('0x25')+_0x5dd41a['id']+_0xba58('0x4e')+_0x43d135['token']};var _0x523588=util['format'](_0xba58('0x43'),_0x43d135[_0xba58('0x4d')],_0x43d135[_0xba58('0x21')]);var _0x867d0b={'method':_0xba58('0x34'),'uri':util[_0xba58('0x42')]('https://api.plivo.com/v1/Account/%s/Message/',_0x43d135['authId']),'body':_0x2f18a1,'headers':{'Authorization':util['format'](_0xba58('0x4f'),new Buffer(_0x523588)['toString'](_0xba58('0x45')))},'json':!![]};rp(_0x867d0b)[_0xba58('0x16')](function(_0x21ef01){var _0x277ba8={'messageId':_0x21ef01['message_uuid'][0x0]};return _0x3c8184[_0xba58('0x17')](_0x277ba8);})['catch'](function(_0x2dfdc3){logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),'plivo',util[_0xba58('0x3e')](_0x2dfdc3,{'showHidden':![],'depth':null}));});}else{logger[_0xba58('0x1b')](_0xba58('0x28'),'afterCreate',_0xba58('0x50'),_0xba58('0x51'));}break;case _0xba58('0x52'):if(_0x43d135[_0xba58('0x2c')]&&_0x43d135['password']){if(_0x43d135['baseUrl']){var _0x2a64f6={'method':_0xba58('0x34'),'uri':_0x43d135[_0xba58('0x53')]+_0xba58('0x54'),'body':{'username':_0x43d135['username'],'password':_0x43d135[_0xba58('0x2d')]},'json':!![]};return rp(_0x2a64f6)[_0xba58('0x16')](function(_0x123fca){var _0x108025={'method':_0xba58('0x34'),'uri':_0x43d135[_0xba58('0x53')]+_0xba58('0x55'),'body':{'messages':[{'from':_0x43d135['phone'],'destinations':[{'to':_0x5dd41a[_0xba58('0x22')]}],'text':_0x5dd41a[_0xba58('0x19')],'notifyUrl':_0x43d135[_0xba58('0x24')]+_0xba58('0x25')+_0x5dd41a['id']+_0xba58('0x4e')+_0x43d135[_0xba58('0x26')],'notifyContentType':_0xba58('0x56'),'callbackData':_0x43d135[_0xba58('0x22')]+';'+_0x5dd41a[_0xba58('0x19')]}]},'headers':{'Authorization':_0xba58('0x57')+_0x123fca[_0xba58('0x26')]},'json':!![]};return rp(_0x108025)['then'](function(_0x383708){if(_0x383708[_0xba58('0x23')]){var _0x5526f7={'messageId':_0x383708[_0xba58('0x23')][0x0][_0xba58('0xb')]};if(!_0x43d135[_0xba58('0x4b')]){_0x5526f7[_0xba58('0x38')]=!![];}return _0x3c8184[_0xba58('0x17')](_0x5526f7);}else{return logger[_0xba58('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xba58('0x29'),'infobip',util[_0xba58('0x3e')](_0x383708,{'showHidden':![],'depth':null}));}});})['catch'](function(_0x148c9a){return logger['error'](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x52'),util[_0xba58('0x3e')](_0x148c9a,{'showHidden':![],'depth':null}));});}else{logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),'infobip',_0xba58('0x58'));}}else{logger[_0xba58('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xba58('0x29'),'infobip',_0xba58('0x39'));}case'csc':var _0xfccd1d=require(_0xba58('0x59'));if(_0x43d135[_0xba58('0x5a')]){var _0x2643ad={};_0x2643ad[_0xba58('0x5b')]=_0x43d135[_0xba58('0x2c')];_0x2643ad[_0xba58('0x22')]=_0x5dd41a[_0xba58('0x22')];_0x2643ad[_0xba58('0x5c')]=_0x43d135['phone'];_0x2643ad[_0xba58('0x5d')]=_0x5dd41a[_0xba58('0x19')];_0x2643ad['timestamp']=+new Date();var _0x3d8e51='';var _0x3565bd='';var _0x2d34d7=Object[_0xba58('0x5e')](_0x2643ad);_0x2d34d7['sort']();for(var _0x222cb3=0x0;_0x222cb3<_0x2d34d7[_0xba58('0x5f')];_0x222cb3++){if(_0x3d8e51!=''){_0x3d8e51+='&';}_0x3d8e51+=_0x2d34d7[_0x222cb3]+'='+encodeURIComponent(_0x2643ad[_0x2d34d7[_0x222cb3]]);_0x3565bd+=_0x2643ad[_0x2d34d7[_0x222cb3]];}_0x3565bd+=_0x43d135['apiKey'];_0x3565bd=_0xfccd1d[_0xba58('0x60')](_0xba58('0x61'))[_0xba58('0x17')](_0x3565bd)[_0xba58('0x62')](_0xba58('0x63'));if(_0x3d8e51!==''){_0x3d8e51+='&';}_0x3d8e51+=_0xba58('0x64')+_0x3565bd;var _0x314cef={'method':_0xba58('0x31'),'uri':'https://sms.csc.lv/external/get/send.php?'+_0x3d8e51,'json':!![]};return rp(_0x314cef)[_0xba58('0x16')](function(_0x2f5b5c){var _0x548e1d=Object[_0xba58('0x5e')](_0x2f5b5c);if(_0x2f5b5c[_0x548e1d[0x0]][_0xba58('0x1b')]&&parseInt(_0x2f5b5c[_0x548e1d[0x0]][_0xba58('0x1b')])===0x0){var _0x5d46a6={'messageId':_0x2f5b5c[_0x548e1d[0x0]][_0xba58('0x65')]};if(!_0x43d135[_0xba58('0x4b')]){_0x5d46a6[_0xba58('0x38')]=!![];}return _0x3c8184['update'](_0x5d46a6);}else{return logger[_0xba58('0x1b')](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x66'),util[_0xba58('0x3e')](_0x2f5b5c[_0xba58('0x1b')],{'showHidden':![],'depth':null}));}})[_0xba58('0x1a')](function(_0x2a47cd){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xba58('0x29'),_0xba58('0x66'),util[_0xba58('0x3e')](_0x2a47cd,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xba58('0x28'),'afterCreate','csc',_0xba58('0x67'));}case _0xba58('0x68'):if(_0x43d135[_0xba58('0x5a')]){var _0x3a310b={'method':_0xba58('0x34'),'uri':_0xba58('0x69'),'headers':{'Authorization':_0x43d135[_0xba58('0x5a')]},'body':{'content':_0x5dd41a[_0xba58('0x19')],'to':[_0x5dd41a[_0xba58('0x22')]],'from':_0x43d135[_0xba58('0x22')],'binary':![],'clientMessageId':_0xba58('0x6a'),'charset':_0xba58('0x6b')},'json':!![]};rp(_0x3a310b)[_0xba58('0x16')](function(_0x37180c){if(!_0x37180c['error']){var _0x36c748={'messageId':_0x37180c[_0xba58('0x23')][0x0]['apiMessageId']};if(!_0x43d135[_0xba58('0x4b')]){_0x36c748['read']=!![];}return _0x3c8184[_0xba58('0x17')](_0x36c748);}else{return logger['error'](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x68'),util[_0xba58('0x3e')](_0x37180c[_0xba58('0x1b')],{'showHidden':![],'depth':null}));}})[_0xba58('0x1a')](function(_0x538fa1){return logger['error'](_0xba58('0x28'),_0xba58('0x29'),_0xba58('0x68'),util[_0xba58('0x3e')](_0x538fa1,{'showHidden':![],'depth':null}));});}else{logger[_0xba58('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xba58('0x68'),_0xba58('0x67'));}break;}}})[_0xba58('0x6c')](function(){_0x30ad5f();});}else{_0x30ad5f();}}},'charset':'utf8mb4','collate':_0xba58('0x6d')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98ca=['SmsMessage','create','body','options','info','debug','util','moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter','./smsMessage.socket','register','request','then','request\x20sent','stringify','error','code','SmsMessage,\x20%s,\x20%s','message','result','catch','CreateSmsMessage'];(function(_0x431252,_0x341cc6){var _0x3f608c=function(_0x207c31){while(--_0x207c31){_0x431252['push'](_0x431252['shift']());}};_0x3f608c(++_0x341cc6);}(_0x98ca,0xa1));var _0xa98c=function(_0x3b009c,_0x37e043){_0x3b009c=_0x3b009c-0x0;var _0x774eff=_0x98ca[_0x3b009c];return _0x774eff;};'use strict';var _=require('lodash');var util=require(_0xa98c('0x0'));var moment=require(_0xa98c('0x1'));var BPromise=require(_0xa98c('0x2'));var rs=require(_0xa98c('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xa98c('0x4'));var logger=require('../../config/logger')(_0xa98c('0x5'));var config=require(_0xa98c('0x6'));var jayson=require(_0xa98c('0x7'));var client=jayson['client'][_0xa98c('0x8')]({'port':0x232a});config[_0xa98c('0x9')]=_[_0xa98c('0xa')](config[_0xa98c('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0xa98c('0xb'))(config[_0xa98c('0x9')]);require(_0xa98c('0xc'))[_0xa98c('0xd')](socket);function respondWithRpcPromise(_0x3114aa,_0x301fc1,_0x640845){return new BPromise(function(_0x34aa01,_0x532612){return client[_0xa98c('0xe')](_0x3114aa,_0x640845)[_0xa98c('0xf')](function(_0x5c8143){logger['info']('SmsMessage,\x20%s,\x20%s',_0x301fc1,_0xa98c('0x10'));logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x301fc1,_0xa98c('0x10'),JSON[_0xa98c('0x11')](_0x5c8143));if(_0x5c8143[_0xa98c('0x12')]){if(_0x5c8143[_0xa98c('0x12')][_0xa98c('0x13')]===0x1f4){logger[_0xa98c('0x12')](_0xa98c('0x14'),_0x301fc1,_0x5c8143[_0xa98c('0x12')][_0xa98c('0x15')]);return _0x532612(_0x5c8143[_0xa98c('0x12')][_0xa98c('0x15')]);}logger[_0xa98c('0x12')](_0xa98c('0x14'),_0x301fc1,_0x5c8143[_0xa98c('0x12')]['message']);return _0x34aa01(_0x5c8143[_0xa98c('0x12')][_0xa98c('0x15')]);}else{logger['info'](_0xa98c('0x14'),_0x301fc1,_0xa98c('0x10'));_0x34aa01(_0x5c8143[_0xa98c('0x16')]['message']);}})[_0xa98c('0x17')](function(_0x1fc126){logger[_0xa98c('0x12')](_0xa98c('0x14'),_0x301fc1,_0x1fc126);_0x532612(_0x1fc126);});});}exports[_0xa98c('0x18')]=function(_0x5a2aff){var _0x4bbc96=this;return new Promise(function(_0xd8f39a,_0x8cae4d){return db[_0xa98c('0x19')][_0xa98c('0x1a')](_0x5a2aff[_0xa98c('0x1b')],{'raw':_0x5a2aff[_0xa98c('0x1c')]?_0x5a2aff[_0xa98c('0x1c')]['raw']===undefined?!![]:![]:!![]})[_0xa98c('0xf')](function(_0x53cd47){logger[_0xa98c('0x1d')]('CreateSmsMessage',_0x5a2aff);logger[_0xa98c('0x1e')](_0xa98c('0x18'),_0x5a2aff,JSON['stringify'](_0x53cd47));_0xd8f39a(_0x53cd47);})['catch'](function(_0x29fae6){logger[_0xa98c('0x12')]('CreateSmsMessage',_0x29fae6['message'],_0x5a2aff);_0x8cae4d(_0x4bbc96[_0xa98c('0x12')](0x1f4,_0x29fae6[_0xa98c('0x15')]));});});};
\ No newline at end of file
+var _0xa8a9=['http','redis','defaults','./smsMessage.socket','register','info','SmsMessage,\x20%s,\x20%s','request\x20sent','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','CreateSmsMessage','SmsMessage','create','options','then','debug','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise'];(function(_0x340852,_0xd377a5){var _0xfbf57e=function(_0x16892b){while(--_0x16892b){_0x340852['push'](_0x340852['shift']());}};_0xfbf57e(++_0xd377a5);}(_0xa8a9,0x180));var _0x9a8a=function(_0x3d5e43,_0x1dc2ad){_0x3d5e43=_0x3d5e43-0x0;var _0x463f5a=_0xa8a9[_0x3d5e43];return _0x463f5a;};'use strict';var _=require(_0x9a8a('0x0'));var util=require(_0x9a8a('0x1'));var moment=require('moment');var BPromise=require(_0x9a8a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9a8a('0x3'));var db=require(_0x9a8a('0x4'))['db'];var utils=require(_0x9a8a('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x9a8a('0x6'));var jayson=require(_0x9a8a('0x7'));var client=jayson['client'][_0x9a8a('0x8')]({'port':0x232a});config[_0x9a8a('0x9')]=_[_0x9a8a('0xa')](config[_0x9a8a('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9a8a('0x9')]));require(_0x9a8a('0xb'))[_0x9a8a('0xc')](socket);function respondWithRpcPromise(_0x281cc6,_0x3f2b22,_0x449e48){return new BPromise(function(_0x36c151,_0x16a8ce){return client['request'](_0x281cc6,_0x449e48)['then'](function(_0x3b9aa8){logger[_0x9a8a('0xd')](_0x9a8a('0xe'),_0x3f2b22,_0x9a8a('0xf'));logger['debug'](_0x9a8a('0x10'),_0x3f2b22,_0x9a8a('0xf'),JSON[_0x9a8a('0x11')](_0x3b9aa8));if(_0x3b9aa8[_0x9a8a('0x12')]){if(_0x3b9aa8[_0x9a8a('0x12')]['code']===0x1f4){logger[_0x9a8a('0x12')](_0x9a8a('0xe'),_0x3f2b22,_0x3b9aa8[_0x9a8a('0x12')]['message']);return _0x16a8ce(_0x3b9aa8[_0x9a8a('0x12')][_0x9a8a('0x13')]);}logger[_0x9a8a('0x12')](_0x9a8a('0xe'),_0x3f2b22,_0x3b9aa8[_0x9a8a('0x12')][_0x9a8a('0x13')]);return _0x36c151(_0x3b9aa8[_0x9a8a('0x12')][_0x9a8a('0x13')]);}else{logger[_0x9a8a('0xd')](_0x9a8a('0xe'),_0x3f2b22,_0x9a8a('0xf'));_0x36c151(_0x3b9aa8[_0x9a8a('0x14')][_0x9a8a('0x13')]);}})['catch'](function(_0x4c30d1){logger[_0x9a8a('0x12')](_0x9a8a('0xe'),_0x3f2b22,_0x4c30d1);_0x16a8ce(_0x4c30d1);});});}exports[_0x9a8a('0x15')]=function(_0x1e1b76){var _0xf1666c=this;return new Promise(function(_0x6b5384,_0x1166f0){return db[_0x9a8a('0x16')][_0x9a8a('0x17')](_0x1e1b76['body'],{'raw':_0x1e1b76[_0x9a8a('0x18')]?_0x1e1b76[_0x9a8a('0x18')]['raw']===undefined?!![]:![]:!![]})[_0x9a8a('0x19')](function(_0x3b3b80){logger['info'](_0x9a8a('0x15'),_0x1e1b76);logger[_0x9a8a('0x1a')](_0x9a8a('0x15'),_0x1e1b76,JSON['stringify'](_0x3b3b80));_0x6b5384(_0x3b3b80);})[_0x9a8a('0x1b')](function(_0x1749f1){logger[_0x9a8a('0x12')](_0x9a8a('0x15'),_0x1749f1[_0x9a8a('0x13')],_0x1e1b76);_0x1166f0(_0xf1666c['error'](0x1f4,_0x1749f1['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f7d=['removeListener','register','length','smsMessage:','./smsMessage.events','save','update','emit'];(function(_0x32b35f,_0x2c3957){var _0x4ddf3c=function(_0x4eda38){while(--_0x4eda38){_0x32b35f['push'](_0x32b35f['shift']());}};_0x4ddf3c(++_0x2c3957);}(_0x2f7d,0x194));var _0xd2f7=function(_0x132c7e,_0x3ffbb9){_0x132c7e=_0x132c7e-0x0;var _0x40717e=_0x2f7d[_0x132c7e];return _0x40717e;};'use strict';var SmsMessageEvents=require(_0xd2f7('0x0'));var events=[_0xd2f7('0x1'),'remove',_0xd2f7('0x2')];function createListener(_0x36be53,_0x2c46d7){return function(_0x3963f8){_0x2c46d7[_0xd2f7('0x3')](_0x36be53,_0x3963f8);};}function removeListener(_0x24ecef,_0x2c1dab){return function(){SmsMessageEvents[_0xd2f7('0x4')](_0x24ecef,_0x2c1dab);};}exports[_0xd2f7('0x5')]=function(_0x42aa07){for(var _0x12dc91=0x0,_0x24c0c8=events[_0xd2f7('0x6')];_0x12dc91<_0x24c0c8;_0x12dc91++){var _0x200078=events[_0x12dc91];var _0x5b20e3=createListener(_0xd2f7('0x7')+_0x200078,_0x42aa07);SmsMessageEvents['on'](_0x200078,_0x5b20e3);}};
\ No newline at end of file
+var _0x5d12=['removeListener','register','length','smsMessage:','./smsMessage.events','save','emit'];(function(_0x54be33,_0x4cc017){var _0xa51e97=function(_0x2b59dd){while(--_0x2b59dd){_0x54be33['push'](_0x54be33['shift']());}};_0xa51e97(++_0x4cc017);}(_0x5d12,0xd6));var _0x25d1=function(_0x2283dc,_0x2fcfc5){_0x2283dc=_0x2283dc-0x0;var _0x16db90=_0x5d12[_0x2283dc];return _0x16db90;};'use strict';var SmsMessageEvents=require(_0x25d1('0x0'));var events=[_0x25d1('0x1'),'remove','update'];function createListener(_0x4be290,_0x131360){return function(_0x978175){_0x131360[_0x25d1('0x2')](_0x4be290,_0x978175);};}function removeListener(_0x5ad43d,_0x2bfaeb){return function(){SmsMessageEvents[_0x25d1('0x3')](_0x5ad43d,_0x2bfaeb);};}exports[_0x25d1('0x4')]=function(_0x496334){for(var _0x5e67db=0x0,_0x477af9=events[_0x25d1('0x5')];_0x5e67db<_0x477af9;_0x5e67db++){var _0x7f5663=events[_0x5e67db];var _0x47b032=createListener(_0x25d1('0x6')+_0x7f5663,_0x496334);SmsMessageEvents['on'](_0x7f5663,_0x47b032);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8061=['removeAgents','exports','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','/describe','describe','get','/:id','show','getMembers','/:id/teams','getTeams','create','post','addTeams','/:id/users','put','update','delete','removeTeams'];(function(_0xeee8f2,_0x351024){var _0x16102b=function(_0x1617cc){while(--_0x1617cc){_0xeee8f2['push'](_0xeee8f2['shift']());}};_0x16102b(++_0x351024);}(_0x8061,0x115));var _0x1806=function(_0x17cd2d,_0x1d0f00){_0x17cd2d=_0x17cd2d-0x0;var _0x310b0e=_0x8061[_0x17cd2d];return _0x310b0e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1806('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x1806('0x1')]();var auth=require(_0x1806('0x2'));var interaction=require(_0x1806('0x3'));var config=require(_0x1806('0x4'));var controller=require('./smsQueue.controller');router['get']('/',auth[_0x1806('0x5')](),controller[_0x1806('0x6')]);router['get'](_0x1806('0x7'),auth[_0x1806('0x5')](),controller[_0x1806('0x8')]);router[_0x1806('0x9')](_0x1806('0xa'),auth[_0x1806('0x5')](),controller[_0x1806('0xb')]);router[_0x1806('0x9')]('/:id/members',auth[_0x1806('0x5')](),controller[_0x1806('0xc')]);router['get'](_0x1806('0xd'),auth['isAuthenticated'](),controller[_0x1806('0xe')]);router[_0x1806('0x9')]('/:id/users',auth[_0x1806('0x5')](),controller['getAgents']);router['post']('/',auth[_0x1806('0x5')](),controller[_0x1806('0xf')]);router[_0x1806('0x10')]('/:id/teams',auth[_0x1806('0x5')](),controller[_0x1806('0x11')]);router[_0x1806('0x10')](_0x1806('0x12'),auth['isAuthenticated'](),controller['addAgents']);router[_0x1806('0x13')]('/:id',auth[_0x1806('0x5')](),controller[_0x1806('0x14')]);router['delete']('/:id',auth['isAuthenticated'](),controller['destroy']);router[_0x1806('0x15')](_0x1806('0xd'),auth['isAuthenticated'](),controller[_0x1806('0x16')]);router[_0x1806('0x15')](_0x1806('0x12'),auth[_0x1806('0x5')](),controller[_0x1806('0x17')]);module[_0x1806('0x18')]=router;
\ No newline at end of file
+var _0x827f=['express','Router','../../config/environment','./smsQueue.controller','isAuthenticated','index','get','/describe','/:id','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','delete','destroy','exports','multer','util','connect-timeout'];(function(_0x2b0a08,_0x322d00){var _0x412dcf=function(_0x3c9969){while(--_0x3c9969){_0x2b0a08['push'](_0x2b0a08['shift']());}};_0x412dcf(++_0x322d00);}(_0x827f,0x1b7));var _0xf827=function(_0x411017,_0x4a8117){_0x411017=_0x411017-0x0;var _0x2adeea=_0x827f[_0x411017];return _0x2adeea;};'use strict';var multer=require(_0xf827('0x0'));var util=require(_0xf827('0x1'));var path=require('path');var timeout=require(_0xf827('0x2'));var express=require(_0xf827('0x3'));var router=express[_0xf827('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xf827('0x5'));var controller=require(_0xf827('0x6'));router['get']('/',auth[_0xf827('0x7')](),controller[_0xf827('0x8')]);router[_0xf827('0x9')](_0xf827('0xa'),auth[_0xf827('0x7')](),controller['describe']);router[_0xf827('0x9')](_0xf827('0xb'),auth[_0xf827('0x7')](),controller['show']);router[_0xf827('0x9')](_0xf827('0xc'),auth[_0xf827('0x7')](),controller[_0xf827('0xd')]);router['get'](_0xf827('0xe'),auth[_0xf827('0x7')](),controller[_0xf827('0xf')]);router[_0xf827('0x9')](_0xf827('0x10'),auth['isAuthenticated'](),controller[_0xf827('0x11')]);router[_0xf827('0x12')]('/',auth[_0xf827('0x7')](),controller[_0xf827('0x13')]);router[_0xf827('0x12')](_0xf827('0xe'),auth[_0xf827('0x7')](),controller[_0xf827('0x14')]);router[_0xf827('0x12')]('/:id/users',auth['isAuthenticated'](),controller[_0xf827('0x15')]);router[_0xf827('0x16')](_0xf827('0xb'),auth['isAuthenticated'](),controller['update']);router[_0xf827('0x17')]('/:id',auth[_0xf827('0x7')](),controller[_0xf827('0x18')]);router[_0xf827('0x17')](_0xf827('0xe'),auth[_0xf827('0x7')](),controller['removeTeams']);router[_0xf827('0x17')](_0xf827('0x10'),auth[_0xf827('0x7')](),controller['removeAgents']);module[_0xf827('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c9a=['name','INTEGER','ENUM','rrmemory','beepall','roundrobin','exports','STRING'];(function(_0x4e9064,_0xb2333d){var _0x4e0f32=function(_0x270393){while(--_0x270393){_0x4e9064['push'](_0x4e9064['shift']());}};_0x4e0f32(++_0xb2333d);}(_0x8c9a,0x10e));var _0xa8c9=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x8c9a[_0x42cae2];return _0x5f256f;};'use strict';var Sequelize=require('sequelize');module[_0xa8c9('0x0')]={'name':{'type':Sequelize[_0xa8c9('0x1')],'unique':_0xa8c9('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xa8c9('0x1')]},'timeout':{'type':Sequelize[_0xa8c9('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xa8c9('0x4')](_0xa8c9('0x5'),_0xa8c9('0x6'),_0xa8c9('0x7'))}};
\ No newline at end of file
+var _0x264c=['INTEGER','rrmemory','beepall','sequelize','exports','STRING','name'];(function(_0x1f5bc5,_0x2c3fb8){var _0xd48289=function(_0x4e4dcc){while(--_0x4e4dcc){_0x1f5bc5['push'](_0x1f5bc5['shift']());}};_0xd48289(++_0x2c3fb8);}(_0x264c,0x1e6));var _0xc264=function(_0x19ac6e,_0x435862){_0x19ac6e=_0x19ac6e-0x0;var _0x1cdcf3=_0x264c[_0x19ac6e];return _0x1cdcf3;};'use strict';var Sequelize=require(_0xc264('0x0'));module[_0xc264('0x1')]={'name':{'type':Sequelize[_0xc264('0x2')],'unique':_0xc264('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xc264('0x2')]},'timeout':{'type':Sequelize[_0xc264('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0xc264('0x5'),_0xc264('0x6'),'roundrobin')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95ff=['create','body','describe','get','UserSmsQueue','nolimit','order','User','findAndCountAll','agent','updatedAt','createdAt','%s/%s','SIP','smsPause','getTeams','Team','addTeams','ids','Agents','union','addAgents','removeTeams','removeAgents','omit','spread','emit','userSmsQueue:remove','getAgents','findOne','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','defaults','redis','localhost','./smsQueue.socket','register','sendStatus','status','end','json','count','offset','limit','set','reject','update','then','destroy','error','stack','name','send','SmsQueue','rawAttributes','query','dateStart','dateEnd','keys','filters','intersection','model','fields','attributes','hasOwnProperty','sort','pick','day','where','merge','map','filter','options','includeAll','findAll','rows','catch','show','params','length','include','find'];(function(_0x274961,_0x246c19){var _0x506b15=function(_0x563e11){while(--_0x563e11){_0x274961['push'](_0x274961['shift']());}};_0x506b15(++_0x246c19);}(_0x95ff,0xea));var _0xf95f=function(_0x9cc34b,_0x34d95d){_0x9cc34b=_0x9cc34b-0x0;var _0x42b03a=_0x95ff[_0x9cc34b];return _0x42b03a;};'use strict';var pdf=require(_0xf95f('0x0'));var emlformat=require(_0xf95f('0x1'));var rimraf=require(_0xf95f('0x2'));var zipdir=require(_0xf95f('0x3'));var jsonpatch=require(_0xf95f('0x4'));var rp=require(_0xf95f('0x5'));var moment=require(_0xf95f('0x6'));var BPromise=require('bluebird');var Mustache=require(_0xf95f('0x7'));var util=require(_0xf95f('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xf95f('0x9'));var ejs=require(_0xf95f('0xa'));var fs=require('fs');var _=require(_0xf95f('0xb'));var squel=require(_0xf95f('0xc'));var crypto=require(_0xf95f('0xd'));var jsforce=require(_0xf95f('0xe'));var deskjs=require(_0xf95f('0xf'));var toCsv=require(_0xf95f('0x9'));var querystring=require(_0xf95f('0x10'));var Papa=require(_0xf95f('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0xf95f('0x12'))(_0xf95f('0x13'));var utils=require(_0xf95f('0x14'));var config=require(_0xf95f('0x15'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xf95f('0x16')](config[_0xf95f('0x17')],{'host':_0xf95f('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0xf95f('0x17')]);require(_0xf95f('0x19'))[_0xf95f('0x1a')](socket);function respondWithStatusCode(_0x435788,_0x3b5de8){_0x3b5de8=_0x3b5de8||0xcc;return function(_0x494e93){if(_0x494e93){return _0x435788[_0xf95f('0x1b')](_0x3b5de8);}return _0x435788[_0xf95f('0x1c')](_0x3b5de8)[_0xf95f('0x1d')]();};}function respondWithResult(_0x2298bf,_0x49250d){_0x49250d=_0x49250d||0xc8;return function(_0x1791dc){if(_0x1791dc){return _0x2298bf[_0xf95f('0x1c')](_0x49250d)[_0xf95f('0x1e')](_0x1791dc);}};}function respondWithFilteredResult(_0x391aa0,_0xae3c4){return function(_0x3fe378){if(_0x3fe378){var _0x5acdcd=_0x3fe378[_0xf95f('0x1f')],_0x521cda=_0xae3c4['offset'],_0x15437d=_0xae3c4[_0xf95f('0x20')]+_0xae3c4[_0xf95f('0x21')],_0xb38e13;if(_0x15437d>=_0x5acdcd){_0x15437d=_0x5acdcd;_0xb38e13=0xc8;}else{_0xb38e13=0xce;}_0x391aa0[_0xf95f('0x1c')](_0xb38e13);return _0x391aa0[_0xf95f('0x22')]('Content-Range',_0x521cda+'-'+_0x15437d+'/'+_0x5acdcd)[_0xf95f('0x1e')](_0x3fe378);}return null;};}function patchUpdates(_0x4c43f3){return function(_0x18bc14){try{jsonpatch['apply'](_0x18bc14,_0x4c43f3,!![]);}catch(_0x3fff8c){return BPromise[_0xf95f('0x23')](_0x3fff8c);}return _0x18bc14['save']();};}function saveUpdates(_0x2a27c3,_0x3f6e0f){return function(_0x91ac79){if(_0x91ac79){return _0x91ac79[_0xf95f('0x24')](_0x2a27c3)[_0xf95f('0x25')](function(_0x3a3886){return _0x3a3886;});}return null;};}function removeEntity(_0xdeeb15,_0xba5c59){return function(_0x54e281){if(_0x54e281){return _0x54e281[_0xf95f('0x26')]()['then'](function(){_0xdeeb15[_0xf95f('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x10e4ed,_0x12f89f){return function(_0x19e50f){if(!_0x19e50f){_0x10e4ed[_0xf95f('0x1b')](0x194);}return _0x19e50f;};}function handleError(_0x30fb72,_0x3c0873){_0x3c0873=_0x3c0873||0x1f4;return function(_0x2c4326){logger[_0xf95f('0x27')](_0x2c4326[_0xf95f('0x28')]);if(_0x2c4326[_0xf95f('0x29')]){delete _0x2c4326[_0xf95f('0x29')];}_0x30fb72[_0xf95f('0x1c')](_0x3c0873)[_0xf95f('0x2a')](_0x2c4326);};}exports['index']=function(_0x59a6f6,_0x33cf33){var _0x4627da={},_0x3f7fae={},_0x1dbf7a={'count':0x0,'rows':[]};var _0x594dfc=db[_0xf95f('0x2b')][_0xf95f('0x2c')];_0x3f7fae['model']=_['keys'](_0x594dfc);var _0x50a56d={'dateStart':_0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x2e')],'dateEnd':_0x59a6f6['query']['dateEnd']};delete _0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x2e')];delete _0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x2f')];_0x3f7fae[_0xf95f('0x2d')]=_[_0xf95f('0x30')](_0x59a6f6[_0xf95f('0x2d')]);_0x3f7fae[_0xf95f('0x31')]=_[_0xf95f('0x32')](_0x3f7fae[_0xf95f('0x33')],_0x3f7fae[_0xf95f('0x2d')]);_0x4627da['attributes']=_[_0xf95f('0x32')](_0x3f7fae[_0xf95f('0x33')],qs[_0xf95f('0x34')](_0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x34')]));_0x4627da['attributes']=_0x4627da[_0xf95f('0x35')]['length']?_0x4627da[_0xf95f('0x35')]:_0x3f7fae[_0xf95f('0x33')];if(!_0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x36')]('nolimit')){_0x4627da[_0xf95f('0x21')]=qs[_0xf95f('0x21')](_0x59a6f6['query'][_0xf95f('0x21')]);_0x4627da[_0xf95f('0x20')]=qs[_0xf95f('0x20')](_0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x20')]);}_0x4627da['order']=qs[_0xf95f('0x37')](_0x59a6f6['query'][_0xf95f('0x37')]);_0x4627da['where']=qs[_0xf95f('0x31')](_[_0xf95f('0x38')](_0x59a6f6[_0xf95f('0x2d')],_0x3f7fae['filters']));if(_0x50a56d[_0xf95f('0x2e')]){if(_0x50a56d[_0xf95f('0x2f')]){_0x50a56d[_0xf95f('0x2f')]=moment(_0x50a56d[_0xf95f('0x2f')])['add'](0x1,_0xf95f('0x39'));}else{_0x50a56d[_0xf95f('0x2f')]=moment(_0x50a56d[_0xf95f('0x2e')])['add'](0x1,_0xf95f('0x39'));}_['merge'](_0x4627da[_0xf95f('0x3a')],{'createdAt':{'$gte':_0x50a56d['dateStart'],'$lte':_0x50a56d[_0xf95f('0x2f')]}});}if(_0x59a6f6[_0xf95f('0x2d')]['filter']){_0x4627da[_0xf95f('0x3a')]=_[_0xf95f('0x3b')](_0x4627da[_0xf95f('0x3a')],{'$or':_[_0xf95f('0x3c')](_0x4627da[_0xf95f('0x35')],function(_0x1a751e){var _0x4e4540={};_0x4e4540[_0x1a751e]={'$like':'%'+_0x59a6f6[_0xf95f('0x2d')][_0xf95f('0x3d')]+'%'};return _0x4e4540;})});}_0x4627da=_[_0xf95f('0x3b')]({},_0x4627da,_0x59a6f6[_0xf95f('0x3e')]);var _0xf968c={'where':_0x4627da[_0xf95f('0x3a')]};return db['SmsQueue']['count'](_0xf968c)[_0xf95f('0x25')](function(_0xa5a7ab){_0x1dbf7a[_0xf95f('0x1f')]=_0xa5a7ab;if(_0x59a6f6['query'][_0xf95f('0x3f')]){_0x4627da['include']=[{'all':!![]}];}return db[_0xf95f('0x2b')][_0xf95f('0x40')](_0x4627da);})[_0xf95f('0x25')](function(_0x42b68d){_0x1dbf7a[_0xf95f('0x41')]=_0x42b68d;return _0x1dbf7a;})[_0xf95f('0x25')](respondWithFilteredResult(_0x33cf33,_0x4627da))[_0xf95f('0x42')](handleError(_0x33cf33,null));};exports[_0xf95f('0x43')]=function(_0x12da66,_0x427e8e){var _0x73c72e={'raw':!![],'where':{'id':_0x12da66[_0xf95f('0x44')]['id']}},_0x3662ca={};_0x3662ca[_0xf95f('0x33')]=_[_0xf95f('0x30')](db[_0xf95f('0x2b')][_0xf95f('0x2c')]);_0x3662ca[_0xf95f('0x2d')]=_[_0xf95f('0x30')](_0x12da66[_0xf95f('0x2d')]);_0x3662ca[_0xf95f('0x31')]=_['intersection'](_0x3662ca['model'],_0x3662ca[_0xf95f('0x2d')]);_0x73c72e[_0xf95f('0x35')]=_[_0xf95f('0x32')](_0x3662ca[_0xf95f('0x33')],qs['fields'](_0x12da66[_0xf95f('0x2d')][_0xf95f('0x34')]));_0x73c72e[_0xf95f('0x35')]=_0x73c72e[_0xf95f('0x35')][_0xf95f('0x45')]?_0x73c72e[_0xf95f('0x35')]:_0x3662ca['model'];if(_0x12da66[_0xf95f('0x2d')][_0xf95f('0x3f')]){_0x73c72e[_0xf95f('0x46')]=[{'all':!![]}];}_0x73c72e=_[_0xf95f('0x3b')]({},_0x73c72e,_0x12da66['options']);return db[_0xf95f('0x2b')][_0xf95f('0x47')](_0x73c72e)[_0xf95f('0x25')](handleEntityNotFound(_0x427e8e,null))[_0xf95f('0x25')](respondWithResult(_0x427e8e,null))[_0xf95f('0x42')](handleError(_0x427e8e,null));};exports[_0xf95f('0x48')]=function(_0x249310,_0x17276b){return db['SmsQueue'][_0xf95f('0x48')](_0x249310['body'],{})[_0xf95f('0x25')](respondWithResult(_0x17276b,0xc9))['catch'](handleError(_0x17276b,null));};exports[_0xf95f('0x24')]=function(_0x505e52,_0x29cc81){if(_0x505e52['body']['id']){delete _0x505e52[_0xf95f('0x49')]['id'];}return db[_0xf95f('0x2b')]['find']({'where':{'id':_0x505e52[_0xf95f('0x44')]['id']}})[_0xf95f('0x25')](handleEntityNotFound(_0x29cc81,null))[_0xf95f('0x25')](saveUpdates(_0x505e52[_0xf95f('0x49')],null))['then'](respondWithResult(_0x29cc81,null))[_0xf95f('0x42')](handleError(_0x29cc81,null));};exports['destroy']=function(_0xf7f2b1,_0xf02aa6){return db[_0xf95f('0x2b')][_0xf95f('0x47')]({'where':{'id':_0xf7f2b1[_0xf95f('0x44')]['id']}})[_0xf95f('0x25')](handleEntityNotFound(_0xf02aa6,null))[_0xf95f('0x25')](removeEntity(_0xf02aa6,null))[_0xf95f('0x42')](handleError(_0xf02aa6,null));};exports[_0xf95f('0x4a')]=function(_0x7a1c82,_0x33b270){return db[_0xf95f('0x2b')][_0xf95f('0x4a')]()[_0xf95f('0x25')](respondWithResult(_0x33b270,null))[_0xf95f('0x42')](handleError(_0x33b270,null));};exports['getMembers']=function(_0x1c09f4,_0x5b04e6,_0x2dc1a3){var _0x496e0e={'raw':!![],'where':{}},_0x323cd8={},_0x1f9ffe;return db[_0xf95f('0x2b')]['findOne']({'where':{'id':_0x1c09f4[_0xf95f('0x44')]['id']}})['then'](handleEntityNotFound(_0x5b04e6,null))['then'](function(_0x262513){if(_0x262513){_0x1f9ffe=_0x262513[_0xf95f('0x4b')]({'plain':!![]});_0x323cd8[_0xf95f('0x33')]=_[_0xf95f('0x30')](db[_0xf95f('0x4c')]['rawAttributes']);_0x323cd8[_0xf95f('0x2d')]=_['keys'](_0x1c09f4[_0xf95f('0x2d')]);_0x323cd8[_0xf95f('0x31')]=_['intersection'](_0x323cd8[_0xf95f('0x33')],_0x323cd8[_0xf95f('0x2d')]);_0x496e0e[_0xf95f('0x35')]=_[_0xf95f('0x32')](_0x323cd8[_0xf95f('0x33')],qs[_0xf95f('0x34')](_0x1c09f4[_0xf95f('0x2d')]['fields']));_0x496e0e[_0xf95f('0x35')]=_0x496e0e[_0xf95f('0x35')][_0xf95f('0x45')]?_0x496e0e[_0xf95f('0x35')]:_0x323cd8['model'];if(!_0x1c09f4[_0xf95f('0x2d')][_0xf95f('0x36')](_0xf95f('0x4d'))){_0x496e0e[_0xf95f('0x21')]=qs[_0xf95f('0x21')](_0x1c09f4[_0xf95f('0x2d')][_0xf95f('0x21')]);_0x496e0e[_0xf95f('0x20')]=qs[_0xf95f('0x20')](_0x1c09f4['query'][_0xf95f('0x20')]);}_0x496e0e[_0xf95f('0x4e')]=qs[_0xf95f('0x37')](_0x1c09f4['query'][_0xf95f('0x37')]);_0x496e0e[_0xf95f('0x3a')]=qs['filters'](_[_0xf95f('0x38')](_0x1c09f4[_0xf95f('0x2d')],_0x323cd8['filters']));_0x496e0e[_0xf95f('0x3a')]['SmsQueueId']=_0x262513['id'];if(_0x1c09f4[_0xf95f('0x2d')][_0xf95f('0x3d')]){_0x496e0e[_0xf95f('0x3a')]=_[_0xf95f('0x3b')](_0x496e0e[_0xf95f('0x3a')],{'$or':_[_0xf95f('0x3c')](_0x496e0e[_0xf95f('0x35')],function(_0xfecddd){var _0x2c7598={};_0x2c7598[_0xfecddd]={'$like':'%'+_0x1c09f4['query'][_0xf95f('0x3d')]+'%'};return _0x2c7598;})});}_0x496e0e=_[_0xf95f('0x3b')]({},_0x496e0e,_0x1c09f4[_0xf95f('0x3e')]);return db[_0xf95f('0x4c')][_0xf95f('0x40')](_0x496e0e);}})[_0xf95f('0x25')](function(_0x5ad139){if(_0x5ad139){return db[_0xf95f('0x4f')][_0xf95f('0x50')]({'where':{'id':_[_0xf95f('0x3c')](_0x5ad139,'UserId'),'role':_0xf95f('0x51')},'attributes':['id',_0xf95f('0x29'),'smsPause',_0xf95f('0x52'),_0xf95f('0x53')]});}})[_0xf95f('0x25')](function(_0x2c39b9){if(_0x2c39b9){return{'count':_0x2c39b9[_0xf95f('0x1f')],'rows':_[_0xf95f('0x3c')](_0x2c39b9[_0xf95f('0x41')],function(_0x216490){return{'membername':_0x216490[_0xf95f('0x29')],'UserId':_0x216490['id'],'queue_name':_0x1f9ffe[_0xf95f('0x29')],'SmsQueueId':_0x1f9ffe['id'],'interface':util['format'](_0xf95f('0x54'),_0xf95f('0x55'),_0x216490['name']),'penalty':0x0,'paused':_0x216490[_0xf95f('0x56')],'createdAt':_0x216490['createdAt'],'updatedAt':_0x216490['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xf95f('0x25')](respondWithFilteredResult(_0x5b04e6,_0x496e0e))[_0xf95f('0x42')](handleError(_0x5b04e6,null));};exports[_0xf95f('0x57')]=function(_0x565a3f,_0x50f3ed,_0x2ab141){var _0xc7c86b={};var _0x3eaa45={};var _0x43ee0f;var _0x564ff6;return db[_0xf95f('0x2b')]['findOne']({'where':{'id':_0x565a3f[_0xf95f('0x44')]['id']}})['then'](handleEntityNotFound(_0x50f3ed,null))[_0xf95f('0x25')](function(_0x16e5bf){if(_0x16e5bf){_0x43ee0f=_0x16e5bf;_0x3eaa45['model']=_['keys'](db[_0xf95f('0x58')][_0xf95f('0x2c')]);_0x3eaa45[_0xf95f('0x2d')]=_[_0xf95f('0x30')](_0x565a3f[_0xf95f('0x2d')]);_0x3eaa45[_0xf95f('0x31')]=_['intersection'](_0x3eaa45[_0xf95f('0x33')],_0x3eaa45[_0xf95f('0x2d')]);_0xc7c86b[_0xf95f('0x35')]=_['intersection'](_0x3eaa45[_0xf95f('0x33')],qs[_0xf95f('0x34')](_0x565a3f[_0xf95f('0x2d')][_0xf95f('0x34')]));_0xc7c86b[_0xf95f('0x35')]=_0xc7c86b[_0xf95f('0x35')][_0xf95f('0x45')]?_0xc7c86b['attributes']:_0x3eaa45[_0xf95f('0x33')];_0xc7c86b[_0xf95f('0x4e')]=qs[_0xf95f('0x37')](_0x565a3f['query'][_0xf95f('0x37')]);_0xc7c86b[_0xf95f('0x3a')]=qs['filters'](_[_0xf95f('0x38')](_0x565a3f[_0xf95f('0x2d')],_0x3eaa45['filters']));if(_0x565a3f[_0xf95f('0x2d')]['filter']){_0xc7c86b[_0xf95f('0x3a')]=_['merge'](_0xc7c86b[_0xf95f('0x3a')],{'$or':_['map'](_0xc7c86b['attributes'],function(_0x2c59a2){var _0xe792bd={};_0xe792bd[_0x2c59a2]={'$like':'%'+_0x565a3f['query'][_0xf95f('0x3d')]+'%'};return _0xe792bd;})});}_0xc7c86b=_[_0xf95f('0x3b')]({},_0xc7c86b,_0x565a3f[_0xf95f('0x3e')]);return _0x43ee0f[_0xf95f('0x57')](_0xc7c86b);}})[_0xf95f('0x25')](function(_0x4e21b7){if(_0x4e21b7){_0x564ff6=_0x4e21b7[_0xf95f('0x45')];if(!_0x565a3f[_0xf95f('0x2d')][_0xf95f('0x36')](_0xf95f('0x4d'))){_0xc7c86b[_0xf95f('0x21')]=qs[_0xf95f('0x21')](_0x565a3f[_0xf95f('0x2d')][_0xf95f('0x21')]);_0xc7c86b['offset']=qs['offset'](_0x565a3f[_0xf95f('0x2d')][_0xf95f('0x20')]);}return _0x43ee0f['getTeams'](_0xc7c86b);}})[_0xf95f('0x25')](function(_0x487b9d){if(_0x487b9d){return _0x487b9d?{'count':_0x564ff6,'rows':_0x487b9d}:null;}})[_0xf95f('0x25')](respondWithResult(_0x50f3ed,null))[_0xf95f('0x42')](handleError(_0x50f3ed,null));};exports[_0xf95f('0x59')]=function(_0x12a02a,_0x479191,_0x3337b9){var _0x588f4a=[];var _0x2767e2;return db[_0xf95f('0x58')]['findAll']({'where':{'id':_0x12a02a[_0xf95f('0x49')][_0xf95f('0x5a')]},'attributes':['id'],'include':[{'model':db[_0xf95f('0x4f')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0xf95f('0x25')](function(_0x113b1b){if(_0x113b1b){for(var _0x110de5=0x0;_0x110de5<_0x113b1b['length'];_0x110de5+=0x1){for(var _0x3fad75=0x0;_0x3fad75<_0x113b1b[_0x110de5][_0xf95f('0x5b')]['length'];_0x3fad75+=0x1){_0x588f4a=_[_0xf95f('0x5c')](_0x588f4a,[_0x113b1b[_0x110de5]['Agents'][_0x3fad75]['id']]);}}return _0x588f4a;}})[_0xf95f('0x25')](function(_0x3be43d){if(_0x3be43d){return db[_0xf95f('0x2b')][_0xf95f('0x47')]({'where':{'id':_0x12a02a['params']['id']}});}})[_0xf95f('0x25')](function(_0x5c2f87){if(_0x5c2f87){_0x2767e2=_0x5c2f87;return _0x2767e2[_0xf95f('0x5d')](_0x588f4a,{'penalty':_0x12a02a[_0xf95f('0x49')]['penalty']});}})[_0xf95f('0x25')](function(_0x596700){if(_0x596700){return _0x2767e2[_0xf95f('0x59')](_0x12a02a[_0xf95f('0x49')][_0xf95f('0x5a')]);}})[_0xf95f('0x25')](handleEntityNotFound(_0x479191,null))[_0xf95f('0x25')](respondWithStatusCode(_0x479191,null))[_0xf95f('0x42')](handleError(_0x479191,null));};exports[_0xf95f('0x5e')]=function(_0x4d6385,_0x750c1a,_0x3b3786){var _0x171440=[];var _0x4b4298;return db[_0xf95f('0x58')][_0xf95f('0x40')]({'where':{'id':_0x4d6385[_0xf95f('0x2d')][_0xf95f('0x5a')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xf95f('0x5b'),'attributes':['id'],'raw':!![]}]})[_0xf95f('0x25')](function(_0x256096){if(_0x256096){for(var _0x372b75=0x0;_0x372b75<_0x256096[_0xf95f('0x45')];_0x372b75+=0x1){for(var _0x277fd4=0x0;_0x277fd4<_0x256096[_0x372b75][_0xf95f('0x5b')]['length'];_0x277fd4+=0x1){_0x171440=_[_0xf95f('0x5c')](_0x171440,[_0x256096[_0x372b75][_0xf95f('0x5b')][_0x277fd4]['id']]);}}return _0x171440;}})[_0xf95f('0x25')](function(_0x4a6282){if(_0x4a6282){return db[_0xf95f('0x2b')][_0xf95f('0x47')]({'where':{'id':_0x4d6385[_0xf95f('0x44')]['id']}});}})['then'](function(_0x24e1f2){if(_0x24e1f2){_0x4b4298=_0x24e1f2;return _0x4b4298[_0xf95f('0x5f')](_0x171440);}})[_0xf95f('0x25')](function(_0x3f16c7){if(_0x4b4298){return _0x4b4298[_0xf95f('0x5e')](_0x4d6385[_0xf95f('0x2d')][_0xf95f('0x5a')]);}})['then'](handleEntityNotFound(_0x750c1a,null))['then'](respondWithStatusCode(_0x750c1a,null))[_0xf95f('0x42')](handleError(_0x750c1a,null));};exports['addAgents']=function(_0x55b945,_0x170d97,_0x3b4bcc){return db['SmsQueue'][_0xf95f('0x47')]({'where':{'id':_0x55b945[_0xf95f('0x44')]['id']}})[_0xf95f('0x25')](handleEntityNotFound(_0x170d97,null))[_0xf95f('0x25')](function(_0x451126){if(_0x451126){return _0x451126[_0xf95f('0x5d')](_0x55b945[_0xf95f('0x49')][_0xf95f('0x5a')],_[_0xf95f('0x60')](_0x55b945[_0xf95f('0x49')],[_0xf95f('0x5a'),'id'])||{})[_0xf95f('0x61')](function(_0x2880fd){for(var _0x3bc986=0x0;_0x3bc986<_0x55b945[_0xf95f('0x49')][_0xf95f('0x5a')]['length'];_0x3bc986+=0x1){socket[_0xf95f('0x62')]('userSmsQueue:save',{'UserId':_0x55b945[_0xf95f('0x49')][_0xf95f('0x5a')][_0x3bc986],'SmsQueueId':_0x55b945[_0xf95f('0x44')]['id']});}return _0x2880fd;});}})[_0xf95f('0x25')](respondWithResult(_0x170d97,null))[_0xf95f('0x42')](handleError(_0x170d97,null));};exports['removeAgents']=function(_0x186739,_0x295d91,_0x5a453c){var _0x11d22f;return db[_0xf95f('0x2b')][_0xf95f('0x47')]({'where':{'id':_0x186739[_0xf95f('0x44')]['id']}})[_0xf95f('0x25')](handleEntityNotFound(_0x295d91,null))[_0xf95f('0x25')](function(_0x1151c8){if(_0x1151c8){return _0x1151c8[_0xf95f('0x5f')](_0x186739['query'][_0xf95f('0x5a')])['then'](function(_0x5c0f0f){if(_['isArray'](_0x186739['query'][_0xf95f('0x5a')])){for(var _0x21683b=0x0;_0x21683b<_0x186739[_0xf95f('0x2d')][_0xf95f('0x5a')][_0xf95f('0x45')];_0x21683b+=0x1){socket[_0xf95f('0x62')](_0xf95f('0x63'),{'UserId':_0x186739[_0xf95f('0x2d')]['ids'][_0x21683b],'SmsQueueId':_0x186739['params']['id']});}}else{socket[_0xf95f('0x62')](_0xf95f('0x63'),{'UserId':_0x186739[_0xf95f('0x2d')][_0xf95f('0x5a')],'SmsQueueId':_0x186739[_0xf95f('0x44')]['id']});}});}})[_0xf95f('0x25')](respondWithStatusCode(_0x295d91,null))[_0xf95f('0x42')](handleError(_0x295d91,null));};exports[_0xf95f('0x64')]=function(_0x562f5d,_0x1571c8,_0x1e9162){var _0x477ef3={};var _0x34e504={};var _0xafd8fd;var _0x4be1f8;return db[_0xf95f('0x2b')][_0xf95f('0x65')]({'where':{'id':_0x562f5d[_0xf95f('0x44')]['id']}})[_0xf95f('0x25')](handleEntityNotFound(_0x1571c8,null))[_0xf95f('0x25')](function(_0x282e15){if(_0x282e15){_0xafd8fd=_0x282e15;_0x34e504[_0xf95f('0x33')]=_[_0xf95f('0x30')](db[_0xf95f('0x4f')][_0xf95f('0x2c')]);_0x34e504[_0xf95f('0x2d')]=_[_0xf95f('0x30')](_0x562f5d[_0xf95f('0x2d')]);_0x34e504[_0xf95f('0x31')]=_[_0xf95f('0x32')](_0x34e504[_0xf95f('0x33')],_0x34e504['query']);_0x477ef3[_0xf95f('0x35')]=_[_0xf95f('0x32')](_0x34e504[_0xf95f('0x33')],qs[_0xf95f('0x34')](_0x562f5d[_0xf95f('0x2d')]['fields']));_0x477ef3[_0xf95f('0x35')]=_0x477ef3[_0xf95f('0x35')][_0xf95f('0x45')]?_0x477ef3[_0xf95f('0x35')]:_0x34e504[_0xf95f('0x33')];_0x477ef3[_0xf95f('0x4e')]=qs[_0xf95f('0x37')](_0x562f5d[_0xf95f('0x2d')][_0xf95f('0x37')]);_0x477ef3[_0xf95f('0x3a')]=qs[_0xf95f('0x31')](_['pick'](_0x562f5d[_0xf95f('0x2d')],_0x34e504[_0xf95f('0x31')]));if(_0x562f5d[_0xf95f('0x2d')][_0xf95f('0x3d')]){_0x477ef3[_0xf95f('0x3a')]=_[_0xf95f('0x3b')](_0x477ef3['where'],{'$or':_['map'](_0x477ef3[_0xf95f('0x35')],function(_0x17aa0c){var _0x20187d={};_0x20187d[_0x17aa0c]={'$like':'%'+_0x562f5d[_0xf95f('0x2d')][_0xf95f('0x3d')]+'%'};return _0x20187d;})});}_0x477ef3=_[_0xf95f('0x3b')]({},_0x477ef3,_0x562f5d[_0xf95f('0x3e')]);return _0xafd8fd[_0xf95f('0x64')](_0x477ef3);}})[_0xf95f('0x25')](function(_0x577e5a){if(_0x577e5a){_0x4be1f8=_0x577e5a[_0xf95f('0x45')];if(!_0x562f5d[_0xf95f('0x2d')][_0xf95f('0x36')](_0xf95f('0x4d'))){_0x477ef3[_0xf95f('0x21')]=qs[_0xf95f('0x21')](_0x562f5d[_0xf95f('0x2d')]['limit']);_0x477ef3[_0xf95f('0x20')]=qs[_0xf95f('0x20')](_0x562f5d[_0xf95f('0x2d')][_0xf95f('0x20')]);}return _0xafd8fd[_0xf95f('0x64')](_0x477ef3);}})[_0xf95f('0x25')](function(_0x1a030a){if(_0x1a030a){return _0x1a030a?{'count':_0x4be1f8,'rows':_0x1a030a}:null;}})[_0xf95f('0x25')](respondWithResult(_0x1571c8,null))[_0xf95f('0x42')](handleError(_0x1571c8,null));};
\ No newline at end of file
+var _0x9519=['save','then','destroy','end','error','name','send','index','SmsQueue','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','add','day','filter','map','merge','include','findAll','rows','catch','show','params','length','includeAll','find','create','body','update','describe','getMembers','findOne','UserSmsQueue','options','User','UserId','agent','smsPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','hasOwnProperty','addTeams','ids','Agents','addAgents','penalty','removeTeams','union','removeAgents','omit','spread','emit','userSmsQueue:remove','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/utils','redis','defaults','localhost','status','json','count','offset','limit','Content-Range','apply','reject'];(function(_0x47482a,_0x9adac2){var _0x29c6a0=function(_0x112efc){while(--_0x112efc){_0x47482a['push'](_0x47482a['shift']());}};_0x29c6a0(++_0x9adac2);}(_0x9519,0x117));var _0x9951=function(_0x227c89,_0x20688e){_0x227c89=_0x227c89-0x0;var _0x35a3bc=_0x9519[_0x227c89];return _0x35a3bc;};'use strict';var pdf=require(_0x9951('0x0'));var emlformat=require(_0x9951('0x1'));var rimraf=require(_0x9951('0x2'));var zipdir=require(_0x9951('0x3'));var jsonpatch=require(_0x9951('0x4'));var rp=require(_0x9951('0x5'));var moment=require('moment');var BPromise=require(_0x9951('0x6'));var Mustache=require(_0x9951('0x7'));var util=require(_0x9951('0x8'));var path=require(_0x9951('0x9'));var sox=require(_0x9951('0xa'));var csv=require(_0x9951('0xb'));var ejs=require(_0x9951('0xc'));var fs=require('fs');var _=require(_0x9951('0xd'));var squel=require(_0x9951('0xe'));var crypto=require(_0x9951('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x9951('0x10'));var toCsv=require(_0x9951('0xb'));var querystring=require(_0x9951('0x11'));var Papa=require(_0x9951('0x12'));var Redis=require(_0x9951('0x13'));var qs=require(_0x9951('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x9951('0x15'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x9951('0x16')]=_[_0x9951('0x17')](config[_0x9951('0x16')],{'host':_0x9951('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9951('0x16')]));require('./smsQueue.socket')['register'](socket);function respondWithStatusCode(_0x129ca7,_0x53f3a1){_0x53f3a1=_0x53f3a1||0xcc;return function(_0x189348){if(_0x189348){return _0x129ca7['sendStatus'](_0x53f3a1);}return _0x129ca7[_0x9951('0x19')](_0x53f3a1)['end']();};}function respondWithResult(_0x6eda5f,_0x367450){_0x367450=_0x367450||0xc8;return function(_0x51c81b){if(_0x51c81b){return _0x6eda5f[_0x9951('0x19')](_0x367450)[_0x9951('0x1a')](_0x51c81b);}};}function respondWithFilteredResult(_0x3c45a2,_0xac4513){return function(_0x2461c0){if(_0x2461c0){var _0x5d801b=_0x2461c0[_0x9951('0x1b')],_0x557cbf=_0xac4513['offset'],_0x3166c4=_0xac4513[_0x9951('0x1c')]+_0xac4513[_0x9951('0x1d')],_0x54301a;if(_0x3166c4>=_0x5d801b){_0x3166c4=_0x5d801b;_0x54301a=0xc8;}else{_0x54301a=0xce;}_0x3c45a2[_0x9951('0x19')](_0x54301a);return _0x3c45a2['set'](_0x9951('0x1e'),_0x557cbf+'-'+_0x3166c4+'/'+_0x5d801b)[_0x9951('0x1a')](_0x2461c0);}return null;};}function patchUpdates(_0x224faa){return function(_0x49edfa){try{jsonpatch[_0x9951('0x1f')](_0x49edfa,_0x224faa,!![]);}catch(_0x563567){return BPromise[_0x9951('0x20')](_0x563567);}return _0x49edfa[_0x9951('0x21')]();};}function saveUpdates(_0x49a4b9,_0x543b49){return function(_0x90417d){if(_0x90417d){return _0x90417d['update'](_0x49a4b9)[_0x9951('0x22')](function(_0x5e1977){return _0x5e1977;});}return null;};}function removeEntity(_0x46b2cb,_0x3c7fd3){return function(_0x587faa){if(_0x587faa){return _0x587faa[_0x9951('0x23')]()[_0x9951('0x22')](function(){_0x46b2cb['status'](0xcc)[_0x9951('0x24')]();});}};}function handleEntityNotFound(_0x11d5bb,_0x58f93b){return function(_0x52d3b9){if(!_0x52d3b9){_0x11d5bb['sendStatus'](0x194);}return _0x52d3b9;};}function handleError(_0x238ccc,_0xe48cb6){_0xe48cb6=_0xe48cb6||0x1f4;return function(_0x462949){logger[_0x9951('0x25')](_0x462949['stack']);if(_0x462949[_0x9951('0x26')]){delete _0x462949[_0x9951('0x26')];}_0x238ccc[_0x9951('0x19')](_0xe48cb6)[_0x9951('0x27')](_0x462949);};}exports[_0x9951('0x28')]=function(_0x330748,_0x5a40a1){var _0x5c6d24={},_0x5dcf8a={},_0x4c4522={'count':0x0,'rows':[]};var _0x2b8e05=db[_0x9951('0x29')][_0x9951('0x2a')];_0x5dcf8a[_0x9951('0x2b')]=_['keys'](_0x2b8e05);var _0x2581ca={'dateStart':_0x330748[_0x9951('0x2c')][_0x9951('0x2d')],'dateEnd':_0x330748['query'][_0x9951('0x2e')]};delete _0x330748[_0x9951('0x2c')]['dateStart'];delete _0x330748['query'][_0x9951('0x2e')];_0x5dcf8a[_0x9951('0x2c')]=_[_0x9951('0x2f')](_0x330748[_0x9951('0x2c')]);_0x5dcf8a[_0x9951('0x30')]=_[_0x9951('0x31')](_0x5dcf8a[_0x9951('0x2b')],_0x5dcf8a[_0x9951('0x2c')]);_0x5c6d24['attributes']=_['intersection'](_0x5dcf8a[_0x9951('0x2b')],qs[_0x9951('0x32')](_0x330748[_0x9951('0x2c')][_0x9951('0x32')]));_0x5c6d24['attributes']=_0x5c6d24[_0x9951('0x33')]['length']?_0x5c6d24[_0x9951('0x33')]:_0x5dcf8a[_0x9951('0x2b')];if(!_0x330748[_0x9951('0x2c')]['hasOwnProperty'](_0x9951('0x34'))){_0x5c6d24[_0x9951('0x1d')]=qs['limit'](_0x330748[_0x9951('0x2c')]['limit']);_0x5c6d24[_0x9951('0x1c')]=qs[_0x9951('0x1c')](_0x330748[_0x9951('0x2c')][_0x9951('0x1c')]);}_0x5c6d24[_0x9951('0x35')]=qs[_0x9951('0x36')](_0x330748[_0x9951('0x2c')][_0x9951('0x36')]);_0x5c6d24[_0x9951('0x37')]=qs['filters'](_[_0x9951('0x38')](_0x330748[_0x9951('0x2c')],_0x5dcf8a[_0x9951('0x30')]));if(_0x2581ca[_0x9951('0x2d')]){if(_0x2581ca[_0x9951('0x2e')]){_0x2581ca[_0x9951('0x2e')]=moment(_0x2581ca[_0x9951('0x2e')])[_0x9951('0x39')](0x1,_0x9951('0x3a'));}else{_0x2581ca[_0x9951('0x2e')]=moment(_0x2581ca[_0x9951('0x2d')])['add'](0x1,_0x9951('0x3a'));}_['merge'](_0x5c6d24[_0x9951('0x37')],{'createdAt':{'$gte':_0x2581ca[_0x9951('0x2d')],'$lte':_0x2581ca[_0x9951('0x2e')]}});}if(_0x330748[_0x9951('0x2c')][_0x9951('0x3b')]){_0x5c6d24[_0x9951('0x37')]=_['merge'](_0x5c6d24['where'],{'$or':_[_0x9951('0x3c')](_0x5c6d24[_0x9951('0x33')],function(_0x5c387d){var _0x529bf6={};_0x529bf6[_0x5c387d]={'$like':'%'+_0x330748[_0x9951('0x2c')]['filter']+'%'};return _0x529bf6;})});}_0x5c6d24=_[_0x9951('0x3d')]({},_0x5c6d24,_0x330748['options']);var _0x4077a9={'where':_0x5c6d24['where']};return db[_0x9951('0x29')][_0x9951('0x1b')](_0x4077a9)['then'](function(_0x3a5885){_0x4c4522[_0x9951('0x1b')]=_0x3a5885;if(_0x330748[_0x9951('0x2c')]['includeAll']){_0x5c6d24[_0x9951('0x3e')]=[{'all':!![]}];}return db[_0x9951('0x29')][_0x9951('0x3f')](_0x5c6d24);})[_0x9951('0x22')](function(_0x306fc5){_0x4c4522[_0x9951('0x40')]=_0x306fc5;return _0x4c4522;})[_0x9951('0x22')](respondWithFilteredResult(_0x5a40a1,_0x5c6d24))[_0x9951('0x41')](handleError(_0x5a40a1,null));};exports[_0x9951('0x42')]=function(_0x53338f,_0x2384d7){var _0x256dfb={'raw':!![],'where':{'id':_0x53338f[_0x9951('0x43')]['id']}},_0x21d94e={};_0x21d94e[_0x9951('0x2b')]=_[_0x9951('0x2f')](db[_0x9951('0x29')][_0x9951('0x2a')]);_0x21d94e[_0x9951('0x2c')]=_[_0x9951('0x2f')](_0x53338f[_0x9951('0x2c')]);_0x21d94e[_0x9951('0x30')]=_[_0x9951('0x31')](_0x21d94e[_0x9951('0x2b')],_0x21d94e[_0x9951('0x2c')]);_0x256dfb['attributes']=_[_0x9951('0x31')](_0x21d94e['model'],qs[_0x9951('0x32')](_0x53338f[_0x9951('0x2c')]['fields']));_0x256dfb[_0x9951('0x33')]=_0x256dfb[_0x9951('0x33')][_0x9951('0x44')]?_0x256dfb[_0x9951('0x33')]:_0x21d94e[_0x9951('0x2b')];if(_0x53338f[_0x9951('0x2c')][_0x9951('0x45')]){_0x256dfb[_0x9951('0x3e')]=[{'all':!![]}];}_0x256dfb=_[_0x9951('0x3d')]({},_0x256dfb,_0x53338f['options']);return db[_0x9951('0x29')][_0x9951('0x46')](_0x256dfb)['then'](handleEntityNotFound(_0x2384d7,null))[_0x9951('0x22')](respondWithResult(_0x2384d7,null))[_0x9951('0x41')](handleError(_0x2384d7,null));};exports['create']=function(_0x504944,_0x482b0a){return db['SmsQueue'][_0x9951('0x47')](_0x504944[_0x9951('0x48')],{})['then'](respondWithResult(_0x482b0a,0xc9))[_0x9951('0x41')](handleError(_0x482b0a,null));};exports[_0x9951('0x49')]=function(_0xad7924,_0x383c9d){if(_0xad7924[_0x9951('0x48')]['id']){delete _0xad7924[_0x9951('0x48')]['id'];}return db[_0x9951('0x29')]['find']({'where':{'id':_0xad7924[_0x9951('0x43')]['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x383c9d,null))[_0x9951('0x22')](saveUpdates(_0xad7924['body'],null))['then'](respondWithResult(_0x383c9d,null))['catch'](handleError(_0x383c9d,null));};exports[_0x9951('0x23')]=function(_0x1876b1,_0x211f60){return db[_0x9951('0x29')]['find']({'where':{'id':_0x1876b1[_0x9951('0x43')]['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x211f60,null))[_0x9951('0x22')](removeEntity(_0x211f60,null))[_0x9951('0x41')](handleError(_0x211f60,null));};exports['describe']=function(_0x520701,_0x252c5d){return db[_0x9951('0x29')][_0x9951('0x4a')]()[_0x9951('0x22')](respondWithResult(_0x252c5d,null))[_0x9951('0x41')](handleError(_0x252c5d,null));};exports[_0x9951('0x4b')]=function(_0x12e374,_0x3f757e,_0x4cd533){var _0x5e4cc2={'raw':!![],'where':{}},_0x4daac7={},_0x36dfd2;return db[_0x9951('0x29')][_0x9951('0x4c')]({'where':{'id':_0x12e374[_0x9951('0x43')]['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x3f757e,null))[_0x9951('0x22')](function(_0xecaac7){if(_0xecaac7){_0x36dfd2=_0xecaac7['get']({'plain':!![]});_0x4daac7[_0x9951('0x2b')]=_[_0x9951('0x2f')](db[_0x9951('0x4d')][_0x9951('0x2a')]);_0x4daac7['query']=_['keys'](_0x12e374[_0x9951('0x2c')]);_0x4daac7['filters']=_[_0x9951('0x31')](_0x4daac7[_0x9951('0x2b')],_0x4daac7[_0x9951('0x2c')]);_0x5e4cc2['attributes']=_[_0x9951('0x31')](_0x4daac7[_0x9951('0x2b')],qs[_0x9951('0x32')](_0x12e374['query'][_0x9951('0x32')]));_0x5e4cc2['attributes']=_0x5e4cc2[_0x9951('0x33')][_0x9951('0x44')]?_0x5e4cc2[_0x9951('0x33')]:_0x4daac7[_0x9951('0x2b')];if(!_0x12e374[_0x9951('0x2c')]['hasOwnProperty'](_0x9951('0x34'))){_0x5e4cc2['limit']=qs['limit'](_0x12e374['query']['limit']);_0x5e4cc2['offset']=qs[_0x9951('0x1c')](_0x12e374[_0x9951('0x2c')][_0x9951('0x1c')]);}_0x5e4cc2['order']=qs['sort'](_0x12e374[_0x9951('0x2c')][_0x9951('0x36')]);_0x5e4cc2[_0x9951('0x37')]=qs['filters'](_[_0x9951('0x38')](_0x12e374[_0x9951('0x2c')],_0x4daac7[_0x9951('0x30')]));_0x5e4cc2[_0x9951('0x37')]['SmsQueueId']=_0xecaac7['id'];if(_0x12e374[_0x9951('0x2c')][_0x9951('0x3b')]){_0x5e4cc2[_0x9951('0x37')]=_[_0x9951('0x3d')](_0x5e4cc2[_0x9951('0x37')],{'$or':_[_0x9951('0x3c')](_0x5e4cc2[_0x9951('0x33')],function(_0x365c7e){var _0x462f44={};_0x462f44[_0x365c7e]={'$like':'%'+_0x12e374[_0x9951('0x2c')][_0x9951('0x3b')]+'%'};return _0x462f44;})});}_0x5e4cc2=_[_0x9951('0x3d')]({},_0x5e4cc2,_0x12e374[_0x9951('0x4e')]);return db[_0x9951('0x4d')][_0x9951('0x3f')](_0x5e4cc2);}})[_0x9951('0x22')](function(_0x23e069){if(_0x23e069){return db[_0x9951('0x4f')]['findAndCountAll']({'where':{'id':_['map'](_0x23e069,_0x9951('0x50')),'role':_0x9951('0x51')},'attributes':['id','name',_0x9951('0x52'),'updatedAt',_0x9951('0x53')]});}})['then'](function(_0x1a10a6){if(_0x1a10a6){return{'count':_0x1a10a6[_0x9951('0x1b')],'rows':_[_0x9951('0x3c')](_0x1a10a6[_0x9951('0x40')],function(_0x100b05){return{'membername':_0x100b05['name'],'UserId':_0x100b05['id'],'queue_name':_0x36dfd2[_0x9951('0x26')],'SmsQueueId':_0x36dfd2['id'],'interface':util[_0x9951('0x54')](_0x9951('0x55'),_0x9951('0x56'),_0x100b05[_0x9951('0x26')]),'penalty':0x0,'paused':_0x100b05[_0x9951('0x52')],'createdAt':_0x100b05[_0x9951('0x53')],'updatedAt':_0x100b05[_0x9951('0x57')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9951('0x22')](respondWithFilteredResult(_0x3f757e,_0x5e4cc2))[_0x9951('0x41')](handleError(_0x3f757e,null));};exports[_0x9951('0x58')]=function(_0x3f490f,_0x4f20c3,_0xb0f4a3){var _0x193ac7={};var _0x2f6dea={};var _0x3ed9db;var _0x3e2b53;return db[_0x9951('0x29')]['findOne']({'where':{'id':_0x3f490f['params']['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x4f20c3,null))[_0x9951('0x22')](function(_0x35ed37){if(_0x35ed37){_0x3ed9db=_0x35ed37;_0x2f6dea['model']=_[_0x9951('0x2f')](db[_0x9951('0x59')][_0x9951('0x2a')]);_0x2f6dea[_0x9951('0x2c')]=_[_0x9951('0x2f')](_0x3f490f[_0x9951('0x2c')]);_0x2f6dea[_0x9951('0x30')]=_['intersection'](_0x2f6dea[_0x9951('0x2b')],_0x2f6dea[_0x9951('0x2c')]);_0x193ac7['attributes']=_[_0x9951('0x31')](_0x2f6dea['model'],qs['fields'](_0x3f490f[_0x9951('0x2c')][_0x9951('0x32')]));_0x193ac7['attributes']=_0x193ac7[_0x9951('0x33')][_0x9951('0x44')]?_0x193ac7[_0x9951('0x33')]:_0x2f6dea[_0x9951('0x2b')];_0x193ac7[_0x9951('0x35')]=qs[_0x9951('0x36')](_0x3f490f[_0x9951('0x2c')][_0x9951('0x36')]);_0x193ac7[_0x9951('0x37')]=qs[_0x9951('0x30')](_['pick'](_0x3f490f['query'],_0x2f6dea['filters']));if(_0x3f490f['query']['filter']){_0x193ac7['where']=_[_0x9951('0x3d')](_0x193ac7[_0x9951('0x37')],{'$or':_[_0x9951('0x3c')](_0x193ac7[_0x9951('0x33')],function(_0x208a5a){var _0x22323d={};_0x22323d[_0x208a5a]={'$like':'%'+_0x3f490f[_0x9951('0x2c')][_0x9951('0x3b')]+'%'};return _0x22323d;})});}_0x193ac7=_['merge']({},_0x193ac7,_0x3f490f[_0x9951('0x4e')]);return _0x3ed9db[_0x9951('0x58')](_0x193ac7);}})[_0x9951('0x22')](function(_0x4b58f2){if(_0x4b58f2){_0x3e2b53=_0x4b58f2['length'];if(!_0x3f490f[_0x9951('0x2c')][_0x9951('0x5a')]('nolimit')){_0x193ac7[_0x9951('0x1d')]=qs[_0x9951('0x1d')](_0x3f490f[_0x9951('0x2c')][_0x9951('0x1d')]);_0x193ac7[_0x9951('0x1c')]=qs[_0x9951('0x1c')](_0x3f490f[_0x9951('0x2c')][_0x9951('0x1c')]);}return _0x3ed9db['getTeams'](_0x193ac7);}})[_0x9951('0x22')](function(_0x521c95){if(_0x521c95){return _0x521c95?{'count':_0x3e2b53,'rows':_0x521c95}:null;}})['then'](respondWithResult(_0x4f20c3,null))['catch'](handleError(_0x4f20c3,null));};exports[_0x9951('0x5b')]=function(_0x1c5824,_0x586bb9,_0x4080b3){var _0x55cbcf=[];var _0x2686cd;return db['Team'][_0x9951('0x3f')]({'where':{'id':_0x1c5824[_0x9951('0x48')][_0x9951('0x5c')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x9951('0x5d'),'attributes':['id'],'raw':!![]}]})[_0x9951('0x22')](function(_0x20864b){if(_0x20864b){for(var _0x3d5cad=0x0;_0x3d5cad<_0x20864b[_0x9951('0x44')];_0x3d5cad+=0x1){for(var _0x158894=0x0;_0x158894<_0x20864b[_0x3d5cad]['Agents'][_0x9951('0x44')];_0x158894+=0x1){_0x55cbcf=_['union'](_0x55cbcf,[_0x20864b[_0x3d5cad][_0x9951('0x5d')][_0x158894]['id']]);}}return _0x55cbcf;}})[_0x9951('0x22')](function(_0x14a917){if(_0x14a917){return db[_0x9951('0x29')][_0x9951('0x46')]({'where':{'id':_0x1c5824[_0x9951('0x43')]['id']}});}})[_0x9951('0x22')](function(_0xb58b0f){if(_0xb58b0f){_0x2686cd=_0xb58b0f;return _0x2686cd[_0x9951('0x5e')](_0x55cbcf,{'penalty':_0x1c5824['body'][_0x9951('0x5f')]});}})[_0x9951('0x22')](function(_0x29888e){if(_0x29888e){return _0x2686cd[_0x9951('0x5b')](_0x1c5824['body']['ids']);}})[_0x9951('0x22')](handleEntityNotFound(_0x586bb9,null))[_0x9951('0x22')](respondWithStatusCode(_0x586bb9,null))[_0x9951('0x41')](handleError(_0x586bb9,null));};exports[_0x9951('0x60')]=function(_0x31068b,_0x363ad8,_0x5267fa){var _0x4f614f=[];var _0x164634;return db[_0x9951('0x59')][_0x9951('0x3f')]({'where':{'id':_0x31068b[_0x9951('0x2c')][_0x9951('0x5c')]},'attributes':['id'],'include':[{'model':db[_0x9951('0x4f')],'as':_0x9951('0x5d'),'attributes':['id'],'raw':!![]}]})[_0x9951('0x22')](function(_0x3875a3){if(_0x3875a3){for(var _0x48ad96=0x0;_0x48ad96<_0x3875a3[_0x9951('0x44')];_0x48ad96+=0x1){for(var _0x38b663=0x0;_0x38b663<_0x3875a3[_0x48ad96][_0x9951('0x5d')][_0x9951('0x44')];_0x38b663+=0x1){_0x4f614f=_[_0x9951('0x61')](_0x4f614f,[_0x3875a3[_0x48ad96][_0x9951('0x5d')][_0x38b663]['id']]);}}return _0x4f614f;}})[_0x9951('0x22')](function(_0x526647){if(_0x526647){return db['SmsQueue']['find']({'where':{'id':_0x31068b[_0x9951('0x43')]['id']}});}})[_0x9951('0x22')](function(_0x4fd331){if(_0x4fd331){_0x164634=_0x4fd331;return _0x164634[_0x9951('0x62')](_0x4f614f);}})[_0x9951('0x22')](function(_0x15ddcf){if(_0x164634){return _0x164634['removeTeams'](_0x31068b[_0x9951('0x2c')]['ids']);}})[_0x9951('0x22')](handleEntityNotFound(_0x363ad8,null))[_0x9951('0x22')](respondWithStatusCode(_0x363ad8,null))[_0x9951('0x41')](handleError(_0x363ad8,null));};exports[_0x9951('0x5e')]=function(_0x29b477,_0x3be08d,_0x4cc38a){return db['SmsQueue'][_0x9951('0x46')]({'where':{'id':_0x29b477[_0x9951('0x43')]['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x3be08d,null))['then'](function(_0x1e87d){if(_0x1e87d){return _0x1e87d[_0x9951('0x5e')](_0x29b477[_0x9951('0x48')][_0x9951('0x5c')],_[_0x9951('0x63')](_0x29b477['body'],[_0x9951('0x5c'),'id'])||{})[_0x9951('0x64')](function(_0x1da304){for(var _0x2e0e65=0x0;_0x2e0e65<_0x29b477[_0x9951('0x48')][_0x9951('0x5c')]['length'];_0x2e0e65+=0x1){socket[_0x9951('0x65')]('userSmsQueue:save',{'UserId':_0x29b477[_0x9951('0x48')][_0x9951('0x5c')][_0x2e0e65],'SmsQueueId':_0x29b477[_0x9951('0x43')]['id']});}return _0x1da304;});}})['then'](respondWithResult(_0x3be08d,null))['catch'](handleError(_0x3be08d,null));};exports[_0x9951('0x62')]=function(_0x5b70fc,_0x10f38d,_0x59324b){var _0xa70fe1;return db[_0x9951('0x29')][_0x9951('0x46')]({'where':{'id':_0x5b70fc[_0x9951('0x43')]['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x10f38d,null))[_0x9951('0x22')](function(_0x1d023e){if(_0x1d023e){return _0x1d023e[_0x9951('0x62')](_0x5b70fc[_0x9951('0x2c')]['ids'])[_0x9951('0x22')](function(_0x4fa179){if(_['isArray'](_0x5b70fc[_0x9951('0x2c')][_0x9951('0x5c')])){for(var _0x16d9e9=0x0;_0x16d9e9<_0x5b70fc[_0x9951('0x2c')][_0x9951('0x5c')][_0x9951('0x44')];_0x16d9e9+=0x1){socket[_0x9951('0x65')]('userSmsQueue:remove',{'UserId':_0x5b70fc[_0x9951('0x2c')][_0x9951('0x5c')][_0x16d9e9],'SmsQueueId':_0x5b70fc[_0x9951('0x43')]['id']});}}else{socket[_0x9951('0x65')](_0x9951('0x66'),{'UserId':_0x5b70fc[_0x9951('0x2c')][_0x9951('0x5c')],'SmsQueueId':_0x5b70fc['params']['id']});}});}})[_0x9951('0x22')](respondWithStatusCode(_0x10f38d,null))['catch'](handleError(_0x10f38d,null));};exports[_0x9951('0x67')]=function(_0x209a40,_0x4fad84,_0x4aa3de){var _0x372082={};var _0x4c2fb2={};var _0x5a1fa9;var _0x221a30;return db[_0x9951('0x29')][_0x9951('0x4c')]({'where':{'id':_0x209a40[_0x9951('0x43')]['id']}})[_0x9951('0x22')](handleEntityNotFound(_0x4fad84,null))[_0x9951('0x22')](function(_0x3f0e71){if(_0x3f0e71){_0x5a1fa9=_0x3f0e71;_0x4c2fb2[_0x9951('0x2b')]=_[_0x9951('0x2f')](db[_0x9951('0x4f')]['rawAttributes']);_0x4c2fb2['query']=_[_0x9951('0x2f')](_0x209a40['query']);_0x4c2fb2[_0x9951('0x30')]=_[_0x9951('0x31')](_0x4c2fb2[_0x9951('0x2b')],_0x4c2fb2[_0x9951('0x2c')]);_0x372082['attributes']=_[_0x9951('0x31')](_0x4c2fb2['model'],qs['fields'](_0x209a40['query'][_0x9951('0x32')]));_0x372082[_0x9951('0x33')]=_0x372082[_0x9951('0x33')][_0x9951('0x44')]?_0x372082[_0x9951('0x33')]:_0x4c2fb2[_0x9951('0x2b')];_0x372082['order']=qs[_0x9951('0x36')](_0x209a40[_0x9951('0x2c')]['sort']);_0x372082['where']=qs['filters'](_[_0x9951('0x38')](_0x209a40[_0x9951('0x2c')],_0x4c2fb2['filters']));if(_0x209a40[_0x9951('0x2c')][_0x9951('0x3b')]){_0x372082[_0x9951('0x37')]=_[_0x9951('0x3d')](_0x372082[_0x9951('0x37')],{'$or':_[_0x9951('0x3c')](_0x372082[_0x9951('0x33')],function(_0x1593bb){var _0x486d57={};_0x486d57[_0x1593bb]={'$like':'%'+_0x209a40[_0x9951('0x2c')]['filter']+'%'};return _0x486d57;})});}_0x372082=_[_0x9951('0x3d')]({},_0x372082,_0x209a40['options']);return _0x5a1fa9[_0x9951('0x67')](_0x372082);}})[_0x9951('0x22')](function(_0x2a33f4){if(_0x2a33f4){_0x221a30=_0x2a33f4['length'];if(!_0x209a40[_0x9951('0x2c')][_0x9951('0x5a')]('nolimit')){_0x372082[_0x9951('0x1d')]=qs[_0x9951('0x1d')](_0x209a40[_0x9951('0x2c')]['limit']);_0x372082[_0x9951('0x1c')]=qs[_0x9951('0x1c')](_0x209a40['query'][_0x9951('0x1c')]);}return _0x5a1fa9[_0x9951('0x67')](_0x372082);}})[_0x9951('0x22')](function(_0x4e6994){if(_0x4e6994){return _0x4e6994?{'count':_0x221a30,'rows':_0x4e6994}:null;}})[_0x9951('0x22')](respondWithResult(_0x4fad84,null))[_0x9951('0x41')](handleError(_0x4fad84,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4d9=['hasOwnProperty','hook','exports','events','SmsQueue','setMaxListeners','save','remove','emit'];(function(_0x248987,_0x5aa750){var _0x8301f1=function(_0x1df975){while(--_0x1df975){_0x248987['push'](_0x248987['shift']());}};_0x8301f1(++_0x5aa750);}(_0xa4d9,0x123));var _0x9a4d=function(_0x203716,_0x1ce7b9){_0x203716=_0x203716-0x0;var _0x519513=_0xa4d9[_0x203716];return _0x519513;};'use strict';var EventEmitter=require(_0x9a4d('0x0'));var SmsQueue=require('../../mysqldb')['db'][_0x9a4d('0x1')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0x9a4d('0x2')](0x0);var events={'afterCreate':_0x9a4d('0x3'),'afterUpdate':'update','afterDestroy':_0x9a4d('0x4')};function emitEvent(_0xa15cc){return function(_0x246d90,_0xb10d0,_0x2d2893){SmsQueueEvents[_0x9a4d('0x5')](_0xa15cc+':'+_0x246d90['id'],_0x246d90);SmsQueueEvents['emit'](_0xa15cc,_0x246d90);_0x2d2893(null);};}for(var e in events){if(events[_0x9a4d('0x6')](e)){var event=events[e];SmsQueue[_0x9a4d('0x7')](e,emitEvent(event));}}module[_0x9a4d('0x8')]=SmsQueueEvents;
\ No newline at end of file
+var _0xfd9c=['events','SmsQueue','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x1fe782,_0x544fb3){var _0x240044=function(_0x16ccc6){while(--_0x16ccc6){_0x1fe782['push'](_0x1fe782['shift']());}};_0x240044(++_0x544fb3);}(_0xfd9c,0x128));var _0xcfd9=function(_0x5c14f6,_0x2979d8){_0x5c14f6=_0x5c14f6-0x0;var _0x4949b3=_0xfd9c[_0x5c14f6];return _0x4949b3;};'use strict';var EventEmitter=require(_0xcfd9('0x0'));var SmsQueue=require('../../mysqldb')['db'][_0xcfd9('0x1')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0xcfd9('0x2')](0x0);var events={'afterCreate':_0xcfd9('0x3'),'afterUpdate':_0xcfd9('0x4'),'afterDestroy':_0xcfd9('0x5')};function emitEvent(_0x5314a7){return function(_0xf4d595,_0x50b223,_0x4d6f95){SmsQueueEvents[_0xcfd9('0x6')](_0x5314a7+':'+_0xf4d595['id'],_0xf4d595);SmsQueueEvents[_0xcfd9('0x6')](_0x5314a7,_0xf4d595);_0x4d6f95(null);};}for(var e in events){if(events[_0xcfd9('0x7')](e)){var event=events[e];SmsQueue['hook'](e,emitEvent(event));}}module['exports']=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4ce=['moment','bluebird','request-promise','./smsQueue.attributes','exports','define','SmsQueue','sms_queues','lodash','util','../../config/logger','api'];(function(_0x13b8f3,_0x442821){var _0x1a6d06=function(_0x5126f2){while(--_0x5126f2){_0x13b8f3['push'](_0x13b8f3['shift']());}};_0x1a6d06(++_0x442821);}(_0xb4ce,0x1d0));var _0xeb4c=function(_0x537d66,_0x205bff){_0x537d66=_0x537d66-0x0;var _0x451f14=_0xb4ce[_0x537d66];return _0x451f14;};'use strict';var _=require(_0xeb4c('0x0'));var util=require(_0xeb4c('0x1'));var logger=require(_0xeb4c('0x2'))(_0xeb4c('0x3'));var moment=require(_0xeb4c('0x4'));var BPromise=require(_0xeb4c('0x5'));var rp=require(_0xeb4c('0x6'));var attributes=require(_0xeb4c('0x7'));module[_0xeb4c('0x8')]=function(_0x5085a6,_0x340c80){return _0x5085a6[_0xeb4c('0x9')](_0xeb4c('0xa'),attributes,{'tableName':_0xeb4c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7f86=['request-promise','./smsQueue.attributes','exports','SmsQueue','util','../../config/logger','api','bluebird'];(function(_0x3eff1e,_0x4401c8){var _0x55ee5a=function(_0x2ec2bc){while(--_0x2ec2bc){_0x3eff1e['push'](_0x3eff1e['shift']());}};_0x55ee5a(++_0x4401c8);}(_0x7f86,0xd4));var _0x67f8=function(_0x2bd992,_0x41692f){_0x2bd992=_0x2bd992-0x0;var _0xae1d36=_0x7f86[_0x2bd992];return _0xae1d36;};'use strict';var _=require('lodash');var util=require(_0x67f8('0x0'));var logger=require(_0x67f8('0x1'))(_0x67f8('0x2'));var moment=require('moment');var BPromise=require(_0x67f8('0x3'));var rp=require(_0x67f8('0x4'));var attributes=require(_0x67f8('0x5'));module[_0x67f8('0x6')]=function(_0x1eaaa2,_0x4b0f9b){return _0x1eaaa2['define'](_0x67f8('0x7'),attributes,{'tableName':'sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90cc=['find','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./smsQueue.socket','request','then','SmsQueue,\x20%s,\x20%s','SmsQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','GetSmsQueue','SmsQueue','findAll','options','raw','where','limit','include','map','model','attributes','debug','ShowSmsQueue'];(function(_0x240d88,_0x4bf315){var _0x33ca0e=function(_0x2e01f3){while(--_0x2e01f3){_0x240d88['push'](_0x240d88['shift']());}};_0x33ca0e(++_0x4bf315);}(_0x90cc,0x187));var _0xc90c=function(_0x17caff,_0x5ea6fc){_0x17caff=_0x17caff-0x0;var _0x448277=_0x90cc[_0x17caff];return _0x448277;};'use strict';var _=require(_0xc90c('0x0'));var util=require(_0xc90c('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xc90c('0x2'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0xc90c('0x3'));var logger=require(_0xc90c('0x4'))(_0xc90c('0x5'));var config=require('../../config/environment');var jayson=require(_0xc90c('0x6'));var client=jayson[_0xc90c('0x7')][_0xc90c('0x8')]({'port':0x232a});config[_0xc90c('0x9')]=_[_0xc90c('0xa')](config['redis'],{'host':_0xc90c('0xb'),'port':0x18eb});var socket=require(_0xc90c('0xc'))(config[_0xc90c('0x9')]);require(_0xc90c('0xd'))['register'](socket);function respondWithRpcPromise(_0x56ec2a,_0x1da7d7,_0xa75d24){return new BPromise(function(_0x5be4ee,_0x1c2ded){return client[_0xc90c('0xe')](_0x56ec2a,_0xa75d24)[_0xc90c('0xf')](function(_0x26173b){logger['info'](_0xc90c('0x10'),_0x1da7d7,'request\x20sent');logger['debug'](_0xc90c('0x11'),_0x1da7d7,_0xc90c('0x12'),JSON[_0xc90c('0x13')](_0x26173b));if(_0x26173b[_0xc90c('0x14')]){if(_0x26173b[_0xc90c('0x14')][_0xc90c('0x15')]===0x1f4){logger[_0xc90c('0x14')]('SmsQueue,\x20%s,\x20%s',_0x1da7d7,_0x26173b['error'][_0xc90c('0x16')]);return _0x1c2ded(_0x26173b[_0xc90c('0x14')]['message']);}logger[_0xc90c('0x14')](_0xc90c('0x10'),_0x1da7d7,_0x26173b[_0xc90c('0x14')]['message']);return _0x5be4ee(_0x26173b['error'][_0xc90c('0x16')]);}else{logger[_0xc90c('0x17')](_0xc90c('0x10'),_0x1da7d7,_0xc90c('0x12'));_0x5be4ee(_0x26173b[_0xc90c('0x18')][_0xc90c('0x16')]);}})['catch'](function(_0x19ce63){logger['error'](_0xc90c('0x10'),_0x1da7d7,_0x19ce63);_0x1c2ded(_0x19ce63);});});}exports[_0xc90c('0x19')]=function(_0x3e6671){var _0x139505=this;return new Promise(function(_0x29e7c0,_0x250a12){return db[_0xc90c('0x1a')][_0xc90c('0x1b')]({'raw':_0x3e6671[_0xc90c('0x1c')]?_0x3e6671[_0xc90c('0x1c')][_0xc90c('0x1d')]===undefined?!![]:![]:!![],'where':_0x3e6671[_0xc90c('0x1c')]?_0x3e6671[_0xc90c('0x1c')][_0xc90c('0x1e')]||null:null,'attributes':_0x3e6671[_0xc90c('0x1c')]?_0x3e6671[_0xc90c('0x1c')]['attributes']||null:null,'limit':_0x3e6671['options']?_0x3e6671[_0xc90c('0x1c')][_0xc90c('0x1f')]||null:null,'include':_0x3e6671[_0xc90c('0x1c')]?_0x3e6671[_0xc90c('0x1c')][_0xc90c('0x20')]?_[_0xc90c('0x21')](_0x3e6671[_0xc90c('0x1c')][_0xc90c('0x20')],function(_0x2eec8d){return{'model':db[_0x2eec8d[_0xc90c('0x22')]],'as':_0x2eec8d['as'],'attributes':_0x2eec8d[_0xc90c('0x23')],'include':_0x2eec8d['include']?_[_0xc90c('0x21')](_0x2eec8d[_0xc90c('0x20')],function(_0x4228ee){return{'model':db[_0x4228ee[_0xc90c('0x22')]],'as':_0x4228ee['as'],'attributes':_0x4228ee[_0xc90c('0x23')],'include':_0x4228ee[_0xc90c('0x20')]?_['map'](_0x4228ee[_0xc90c('0x20')],function(_0x4bce4d){return{'model':db[_0x4bce4d[_0xc90c('0x22')]],'as':_0x4bce4d['as'],'attributes':_0x4bce4d[_0xc90c('0x23')]};}):[]};}):[]};}):[]:[]})[_0xc90c('0xf')](function(_0x39e2aa){logger[_0xc90c('0x17')](_0xc90c('0x19'),_0x3e6671);logger[_0xc90c('0x24')](_0xc90c('0x19'),_0x3e6671,JSON[_0xc90c('0x13')](_0x39e2aa));_0x29e7c0(_0x39e2aa);})['catch'](function(_0x400cbd){logger[_0xc90c('0x14')](_0xc90c('0x19'),_0x400cbd[_0xc90c('0x16')],_0x3e6671);_0x250a12(_0x139505[_0xc90c('0x14')](0x1f4,_0x400cbd[_0xc90c('0x16')]));});});};exports[_0xc90c('0x25')]=function(_0x59fc17){var _0x4406e5=this;return new Promise(function(_0x4bfcc5,_0x1cf283){return db[_0xc90c('0x1a')][_0xc90c('0x26')]({'raw':_0x59fc17[_0xc90c('0x1c')]?_0x59fc17[_0xc90c('0x1c')][_0xc90c('0x1d')]===undefined?!![]:![]:!![],'where':_0x59fc17[_0xc90c('0x1c')]?_0x59fc17[_0xc90c('0x1c')]['where']||null:null,'attributes':_0x59fc17[_0xc90c('0x1c')]?_0x59fc17[_0xc90c('0x1c')]['attributes']||null:null,'include':_0x59fc17['options']?_0x59fc17[_0xc90c('0x1c')][_0xc90c('0x20')]?_[_0xc90c('0x21')](_0x59fc17[_0xc90c('0x1c')][_0xc90c('0x20')],function(_0x4996c6){return{'model':db[_0x4996c6[_0xc90c('0x22')]],'as':_0x4996c6['as'],'attributes':_0x4996c6[_0xc90c('0x23')],'include':_0x4996c6['include']?_['map'](_0x4996c6[_0xc90c('0x20')],function(_0x3c711b){return{'model':db[_0x3c711b['model']],'as':_0x3c711b['as'],'attributes':_0x3c711b[_0xc90c('0x23')],'include':_0x3c711b[_0xc90c('0x20')]?_[_0xc90c('0x21')](_0x3c711b[_0xc90c('0x20')],function(_0x6bce80){return{'model':db[_0x6bce80[_0xc90c('0x22')]],'as':_0x6bce80['as'],'attributes':_0x6bce80[_0xc90c('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3465aa){logger['info'](_0xc90c('0x25'),_0x59fc17);logger[_0xc90c('0x24')](_0xc90c('0x25'),_0x59fc17,JSON[_0xc90c('0x13')](_0x3465aa));_0x4bfcc5(_0x3465aa);})['catch'](function(_0x17045f){logger[_0xc90c('0x14')](_0xc90c('0x25'),_0x17045f['message'],_0x59fc17);_0x1cf283(_0x4406e5[_0xc90c('0x14')](0x1f4,_0x17045f['message']));});});};
\ No newline at end of file
+var _0xae99=['where','include','map','model','attributes','GetSmsQueue','SmsQueue','find','raw','ShowSmsQueue','lodash','util','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','localhost','socket.io-emitter','redis','register','request','then','info','SmsQueue,\x20%s,\x20%s','request\x20sent','debug','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','findAll','options'];(function(_0xd1b4d7,_0x28b2c1){var _0x3002ec=function(_0x3d95ce){while(--_0x3d95ce){_0xd1b4d7['push'](_0xd1b4d7['shift']());}};_0x3002ec(++_0x28b2c1);}(_0xae99,0x172));var _0x9ae9=function(_0x2b10c6,_0x185590){_0x2b10c6=_0x2b10c6-0x0;var _0x3789d2=_0xae99[_0x2b10c6];return _0x3789d2;};'use strict';var _=require(_0x9ae9('0x0'));var util=require(_0x9ae9('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9ae9('0x2'));var db=require(_0x9ae9('0x3'))['db'];var utils=require(_0x9ae9('0x4'));var logger=require(_0x9ae9('0x5'))(_0x9ae9('0x6'));var config=require(_0x9ae9('0x7'));var jayson=require(_0x9ae9('0x8'));var client=jayson[_0x9ae9('0x9')]['http']({'port':0x232a});config['redis']=_[_0x9ae9('0xa')](config['redis'],{'host':_0x9ae9('0xb'),'port':0x18eb});var socket=require(_0x9ae9('0xc'))(new Redis(config[_0x9ae9('0xd')]));require('./smsQueue.socket')[_0x9ae9('0xe')](socket);function respondWithRpcPromise(_0x279c0e,_0x4760ff,_0x12982a){return new BPromise(function(_0x3fabc5,_0x36b2b5){return client[_0x9ae9('0xf')](_0x279c0e,_0x12982a)[_0x9ae9('0x10')](function(_0x317f51){logger[_0x9ae9('0x11')](_0x9ae9('0x12'),_0x4760ff,_0x9ae9('0x13'));logger[_0x9ae9('0x14')](_0x9ae9('0x15'),_0x4760ff,_0x9ae9('0x13'),JSON[_0x9ae9('0x16')](_0x317f51));if(_0x317f51[_0x9ae9('0x17')]){if(_0x317f51[_0x9ae9('0x17')][_0x9ae9('0x18')]===0x1f4){logger[_0x9ae9('0x17')](_0x9ae9('0x12'),_0x4760ff,_0x317f51[_0x9ae9('0x17')][_0x9ae9('0x19')]);return _0x36b2b5(_0x317f51[_0x9ae9('0x17')][_0x9ae9('0x19')]);}logger['error'](_0x9ae9('0x12'),_0x4760ff,_0x317f51[_0x9ae9('0x17')][_0x9ae9('0x19')]);return _0x3fabc5(_0x317f51['error'][_0x9ae9('0x19')]);}else{logger['info'](_0x9ae9('0x12'),_0x4760ff,_0x9ae9('0x13'));_0x3fabc5(_0x317f51[_0x9ae9('0x1a')]['message']);}})[_0x9ae9('0x1b')](function(_0x12c2f3){logger[_0x9ae9('0x17')](_0x9ae9('0x12'),_0x4760ff,_0x12c2f3);_0x36b2b5(_0x12c2f3);});});}exports['GetSmsQueue']=function(_0x489f51){var _0x2db8aa=this;return new Promise(function(_0x138c60,_0x4c1002){return db['SmsQueue'][_0x9ae9('0x1c')]({'raw':_0x489f51[_0x9ae9('0x1d')]?_0x489f51[_0x9ae9('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x489f51[_0x9ae9('0x1d')]?_0x489f51[_0x9ae9('0x1d')][_0x9ae9('0x1e')]||null:null,'attributes':_0x489f51[_0x9ae9('0x1d')]?_0x489f51[_0x9ae9('0x1d')]['attributes']||null:null,'limit':_0x489f51[_0x9ae9('0x1d')]?_0x489f51['options']['limit']||null:null,'include':_0x489f51[_0x9ae9('0x1d')]?_0x489f51[_0x9ae9('0x1d')][_0x9ae9('0x1f')]?_[_0x9ae9('0x20')](_0x489f51[_0x9ae9('0x1d')][_0x9ae9('0x1f')],function(_0x6a688d){return{'model':db[_0x6a688d['model']],'as':_0x6a688d['as'],'attributes':_0x6a688d['attributes'],'include':_0x6a688d[_0x9ae9('0x1f')]?_['map'](_0x6a688d['include'],function(_0x75d905){return{'model':db[_0x75d905[_0x9ae9('0x21')]],'as':_0x75d905['as'],'attributes':_0x75d905[_0x9ae9('0x22')],'include':_0x75d905[_0x9ae9('0x1f')]?_[_0x9ae9('0x20')](_0x75d905[_0x9ae9('0x1f')],function(_0x35d71b){return{'model':db[_0x35d71b[_0x9ae9('0x21')]],'as':_0x35d71b['as'],'attributes':_0x35d71b[_0x9ae9('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x39fd86){logger[_0x9ae9('0x11')]('GetSmsQueue',_0x489f51);logger[_0x9ae9('0x14')](_0x9ae9('0x23'),_0x489f51,JSON[_0x9ae9('0x16')](_0x39fd86));_0x138c60(_0x39fd86);})[_0x9ae9('0x1b')](function(_0x1f31ed){logger[_0x9ae9('0x17')](_0x9ae9('0x23'),_0x1f31ed[_0x9ae9('0x19')],_0x489f51);_0x4c1002(_0x2db8aa[_0x9ae9('0x17')](0x1f4,_0x1f31ed['message']));});});};exports['ShowSmsQueue']=function(_0x11f42c){var _0x1d7c77=this;return new Promise(function(_0x94dd4c,_0x18187a){return db[_0x9ae9('0x24')][_0x9ae9('0x25')]({'raw':_0x11f42c[_0x9ae9('0x1d')]?_0x11f42c['options'][_0x9ae9('0x26')]===undefined?!![]:![]:!![],'where':_0x11f42c[_0x9ae9('0x1d')]?_0x11f42c['options'][_0x9ae9('0x1e')]||null:null,'attributes':_0x11f42c[_0x9ae9('0x1d')]?_0x11f42c[_0x9ae9('0x1d')][_0x9ae9('0x22')]||null:null,'include':_0x11f42c['options']?_0x11f42c[_0x9ae9('0x1d')][_0x9ae9('0x1f')]?_[_0x9ae9('0x20')](_0x11f42c[_0x9ae9('0x1d')][_0x9ae9('0x1f')],function(_0x17df6f){return{'model':db[_0x17df6f['model']],'as':_0x17df6f['as'],'attributes':_0x17df6f[_0x9ae9('0x22')],'include':_0x17df6f[_0x9ae9('0x1f')]?_[_0x9ae9('0x20')](_0x17df6f[_0x9ae9('0x1f')],function(_0x42e49b){return{'model':db[_0x42e49b[_0x9ae9('0x21')]],'as':_0x42e49b['as'],'attributes':_0x42e49b[_0x9ae9('0x22')],'include':_0x42e49b['include']?_[_0x9ae9('0x20')](_0x42e49b['include'],function(_0x1154e7){return{'model':db[_0x1154e7[_0x9ae9('0x21')]],'as':_0x1154e7['as'],'attributes':_0x1154e7[_0x9ae9('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x806e09){logger['info']('ShowSmsQueue',_0x11f42c);logger['debug'](_0x9ae9('0x27'),_0x11f42c,JSON[_0x9ae9('0x16')](_0x806e09));_0x94dd4c(_0x806e09);})['catch'](function(_0x1bdb02){logger[_0x9ae9('0x17')](_0x9ae9('0x27'),_0x1bdb02[_0x9ae9('0x19')],_0x11f42c);_0x18187a(_0x1d7c77[_0x9ae9('0x17')](0x1f4,_0x1bdb02['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a5a=['emit','removeListener','register','length','./smsQueue.events','save','remove','update'];(function(_0x14e9e8,_0x21a5ec){var _0x15b5e7=function(_0xd22e11){while(--_0xd22e11){_0x14e9e8['push'](_0x14e9e8['shift']());}};_0x15b5e7(++_0x21a5ec);}(_0x9a5a,0x194));var _0xa9a5=function(_0x1445b0,_0x130abe){_0x1445b0=_0x1445b0-0x0;var _0x57fbbf=_0x9a5a[_0x1445b0];return _0x57fbbf;};'use strict';var SmsQueueEvents=require(_0xa9a5('0x0'));var events=[_0xa9a5('0x1'),_0xa9a5('0x2'),_0xa9a5('0x3')];function createListener(_0x198d2a,_0x500287){return function(_0x28e2b3){_0x500287[_0xa9a5('0x4')](_0x198d2a,_0x28e2b3);};}function removeListener(_0x230710,_0x1080a9){return function(){SmsQueueEvents[_0xa9a5('0x5')](_0x230710,_0x1080a9);};}exports[_0xa9a5('0x6')]=function(_0x4a73f4){for(var _0xb0ccd9=0x0,_0x37e93b=events[_0xa9a5('0x7')];_0xb0ccd9<_0x37e93b;_0xb0ccd9++){var _0x1eafa6=events[_0xb0ccd9];var _0x24e1bd=createListener('smsQueue:'+_0x1eafa6,_0x4a73f4);SmsQueueEvents['on'](_0x1eafa6,_0x24e1bd);}};
\ No newline at end of file
+var _0x21f2=['length','save','remove','update','emit','removeListener','register'];(function(_0x4ec6c9,_0x110f56){var _0x4eee41=function(_0x228a48){while(--_0x228a48){_0x4ec6c9['push'](_0x4ec6c9['shift']());}};_0x4eee41(++_0x110f56);}(_0x21f2,0x158));var _0x221f=function(_0x3e74e6,_0x2dc074){_0x3e74e6=_0x3e74e6-0x0;var _0x217a77=_0x21f2[_0x3e74e6];return _0x217a77;};'use strict';var SmsQueueEvents=require('./smsQueue.events');var events=[_0x221f('0x0'),_0x221f('0x1'),_0x221f('0x2')];function createListener(_0x2018be,_0x28631e){return function(_0x306a0f){_0x28631e[_0x221f('0x3')](_0x2018be,_0x306a0f);};}function removeListener(_0xa9e3b,_0x1e54e2){return function(){SmsQueueEvents[_0x221f('0x4')](_0xa9e3b,_0x1e54e2);};}exports[_0x221f('0x5')]=function(_0x500757){for(var _0x3acd81=0x0,_0xc069ff=events[_0x221f('0x6')];_0x3acd81<_0xc069ff;_0x3acd81++){var _0x28768d=events[_0x3acd81];var _0x116c6c=createListener('smsQueue:'+_0x28768d,_0x500757);SmsQueueEvents['on'](_0x28768d,_0x116c6c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9a8=['create','put','delete','destroy','exports','multer','util','path','express','Router','../../config/environment','./smsQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show'];(function(_0x3d42d8,_0x4cffaa){var _0x27fc41=function(_0x3a363b){while(--_0x3a363b){_0x3d42d8['push'](_0x3d42d8['shift']());}};_0x27fc41(++_0x4cffaa);}(_0xd9a8,0xc3));var _0x8d9a=function(_0x5a3359,_0x4bd12d){_0x5a3359=_0x5a3359-0x0;var _0x374727=_0xd9a8[_0x5a3359];return _0x374727;};'use strict';var multer=require(_0x8d9a('0x0'));var util=require(_0x8d9a('0x1'));var path=require(_0x8d9a('0x2'));var timeout=require('connect-timeout');var express=require(_0x8d9a('0x3'));var router=express[_0x8d9a('0x4')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x8d9a('0x5'));var controller=require(_0x8d9a('0x6'));router[_0x8d9a('0x7')]('/',auth[_0x8d9a('0x8')](),controller[_0x8d9a('0x9')]);router['get'](_0x8d9a('0xa'),auth[_0x8d9a('0x8')](),controller[_0x8d9a('0xb')]);router['get'](_0x8d9a('0xc'),auth[_0x8d9a('0x8')](),controller[_0x8d9a('0xd')]);router['post']('/',auth[_0x8d9a('0x8')](),controller[_0x8d9a('0xe')]);router[_0x8d9a('0xf')]('/:id',auth[_0x8d9a('0x8')](),controller['update']);router[_0x8d9a('0x10')](_0x8d9a('0xc'),auth['isAuthenticated'](),controller[_0x8d9a('0x11')]);module[_0x8d9a('0x12')]=router;
\ No newline at end of file
+var _0x5398=['isAuthenticated','index','/describe','/:id','show','post','create','put','delete','exports','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get'];(function(_0x265b80,_0x2277af){var _0x519aa8=function(_0x3bea98){while(--_0x3bea98){_0x265b80['push'](_0x265b80['shift']());}};_0x519aa8(++_0x2277af);}(_0x5398,0xe2));var _0x8539=function(_0x5b2dd9,_0x4bef7c){_0x5b2dd9=_0x5b2dd9-0x0;var _0x58f7fb=_0x5398[_0x5b2dd9];return _0x58f7fb;};'use strict';var multer=require('multer');var util=require(_0x8539('0x0'));var path=require(_0x8539('0x1'));var timeout=require(_0x8539('0x2'));var express=require(_0x8539('0x3'));var router=express[_0x8539('0x4')]();var auth=require(_0x8539('0x5'));var interaction=require(_0x8539('0x6'));var config=require('../../config/environment');var controller=require('./smsQueueReport.controller');router[_0x8539('0x7')]('/',auth[_0x8539('0x8')](),controller[_0x8539('0x9')]);router[_0x8539('0x7')](_0x8539('0xa'),auth[_0x8539('0x8')](),controller['describe']);router[_0x8539('0x7')](_0x8539('0xb'),auth[_0x8539('0x8')](),controller[_0x8539('0xc')]);router[_0x8539('0xd')]('/',auth[_0x8539('0x8')](),controller[_0x8539('0xe')]);router[_0x8539('0xf')](_0x8539('0xb'),auth[_0x8539('0x8')](),controller['update']);router[_0x8539('0x10')](_0x8539('0xb'),auth[_0x8539('0x8')](),controller['destroy']);module[_0x8539('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf658=['sequelize','exports','STRING','DATE'];(function(_0x36fbe0,_0x4e7141){var _0x431030=function(_0x3abc20){while(--_0x3abc20){_0x36fbe0['push'](_0x36fbe0['shift']());}};_0x431030(++_0x4e7141);}(_0xf658,0x160));var _0x8f65=function(_0x21291a,_0x48d2fb){_0x21291a=_0x21291a-0x0;var _0x508d6f=_0xf658[_0x21291a];return _0x508d6f;};'use strict';var moment=require('moment');var Sequelize=require(_0x8f65('0x0'));module[_0x8f65('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x8f65('0x2')]},'joinAt':{'type':Sequelize[_0x8f65('0x3')]},'leaveAt':{'type':Sequelize[_0x8f65('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x8f65('0x3')]},'reason':{'type':Sequelize[_0x8f65('0x2')]}};
\ No newline at end of file
+var _0xaa98=['DATE','moment','exports','STRING'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xaa98,0x1a5));var _0x8aa9=function(_0x3e2804,_0x2b0f68){_0x3e2804=_0x3e2804-0x0;var _0x16a615=_0xaa98[_0x3e2804];return _0x16a615;};'use strict';var moment=require(_0x8aa9('0x0'));var Sequelize=require('sequelize');module[_0x8aa9('0x1')]={'uniqueid':{'type':Sequelize[_0x8aa9('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x8aa9('0x3')]},'leaveAt':{'type':Sequelize[_0x8aa9('0x3')]},'acceptAt':{'type':Sequelize[_0x8aa9('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x8aa9('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa46e=['find','create','body','describe','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','api','../../config/utils','../../mysqldb','sendStatus','status','count','offset','limit','set','reject','save','update','then','destroy','error','name','send','index','rawAttributes','keys','query','dateStart','dateEnd','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','pick','day','add','merge','where','map','filter','includeAll','include','SmsQueueReport','rows','catch','show','params','options'];(function(_0x56c8dc,_0x272723){var _0x3363bc=function(_0x3d6511){while(--_0x3d6511){_0x56c8dc['push'](_0x56c8dc['shift']());}};_0x3363bc(++_0x272723);}(_0xa46e,0x8a));var _0xea46=function(_0x313c96,_0x3cee6e){_0x313c96=_0x313c96-0x0;var _0x522f53=_0xa46e[_0x313c96];return _0x522f53;};'use strict';var pdf=require(_0xea46('0x0'));var emlformat=require(_0xea46('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xea46('0x2'));var jsonpatch=require(_0xea46('0x3'));var rp=require(_0xea46('0x4'));var moment=require('moment');var BPromise=require(_0xea46('0x5'));var Mustache=require('mustache');var util=require(_0xea46('0x6'));var path=require('path');var sox=require(_0xea46('0x7'));var csv=require('to-csv');var ejs=require(_0xea46('0x8'));var fs=require('fs');var _=require(_0xea46('0x9'));var squel=require('squel');var crypto=require(_0xea46('0xa'));var jsforce=require(_0xea46('0xb'));var deskjs=require(_0xea46('0xc'));var toCsv=require(_0xea46('0xd'));var querystring=require(_0xea46('0xe'));var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xea46('0xf'));var utils=require(_0xea46('0x10'));var config=require('../../config/environment');var db=require(_0xea46('0x11'))['db'];function respondWithStatusCode(_0xd9b652,_0x4560b1){_0x4560b1=_0x4560b1||0xcc;return function(_0x594694){if(_0x594694){return _0xd9b652[_0xea46('0x12')](_0x4560b1);}return _0xd9b652[_0xea46('0x13')](_0x4560b1)['end']();};}function respondWithResult(_0x13390c,_0x1a4fe2){_0x1a4fe2=_0x1a4fe2||0xc8;return function(_0x534aa3){if(_0x534aa3){return _0x13390c[_0xea46('0x13')](_0x1a4fe2)['json'](_0x534aa3);}};}function respondWithFilteredResult(_0x3024af,_0x42c328){return function(_0x6c4bc4){if(_0x6c4bc4){var _0x40bb42=_0x6c4bc4[_0xea46('0x14')],_0xc76198=_0x42c328[_0xea46('0x15')],_0x2ef436=_0x42c328['offset']+_0x42c328[_0xea46('0x16')],_0x81ee45;if(_0x2ef436>=_0x40bb42){_0x2ef436=_0x40bb42;_0x81ee45=0xc8;}else{_0x81ee45=0xce;}_0x3024af[_0xea46('0x13')](_0x81ee45);return _0x3024af[_0xea46('0x17')]('Content-Range',_0xc76198+'-'+_0x2ef436+'/'+_0x40bb42)['json'](_0x6c4bc4);}return null;};}function patchUpdates(_0x19d5c1){return function(_0x3f463d){try{jsonpatch['apply'](_0x3f463d,_0x19d5c1,!![]);}catch(_0x4b6745){return BPromise[_0xea46('0x18')](_0x4b6745);}return _0x3f463d[_0xea46('0x19')]();};}function saveUpdates(_0x4ff93d,_0x40316b){return function(_0x16ae38){if(_0x16ae38){return _0x16ae38[_0xea46('0x1a')](_0x4ff93d)[_0xea46('0x1b')](function(_0x53b8db){return _0x53b8db;});}return null;};}function removeEntity(_0x2b6491,_0x4e220f){return function(_0x515e32){if(_0x515e32){return _0x515e32[_0xea46('0x1c')]()['then'](function(){_0x2b6491['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3b25fe,_0x36f982){return function(_0x3d1850){if(!_0x3d1850){_0x3b25fe['sendStatus'](0x194);}return _0x3d1850;};}function handleError(_0x16f8fa,_0x59b10d){_0x59b10d=_0x59b10d||0x1f4;return function(_0x12e688){logger[_0xea46('0x1d')](_0x12e688['stack']);if(_0x12e688[_0xea46('0x1e')]){delete _0x12e688['name'];}_0x16f8fa[_0xea46('0x13')](_0x59b10d)[_0xea46('0x1f')](_0x12e688);};}exports[_0xea46('0x20')]=function(_0x4bf494,_0x5d2de1){var _0x44e797={},_0x38ac07={},_0x4b369c={'count':0x0,'rows':[]};var _0x3b3928=db['SmsQueueReport'][_0xea46('0x21')];_0x38ac07['model']=_[_0xea46('0x22')](_0x3b3928);var _0x28472f={'dateStart':_0x4bf494[_0xea46('0x23')][_0xea46('0x24')],'dateEnd':_0x4bf494[_0xea46('0x23')][_0xea46('0x25')]};delete _0x4bf494['query'][_0xea46('0x24')];delete _0x4bf494[_0xea46('0x23')][_0xea46('0x25')];_0x38ac07['query']=_[_0xea46('0x22')](_0x4bf494[_0xea46('0x23')]);_0x38ac07[_0xea46('0x26')]=_['intersection'](_0x38ac07['model'],_0x38ac07['query']);_0x44e797[_0xea46('0x27')]=_[_0xea46('0x28')](_0x38ac07[_0xea46('0x29')],qs[_0xea46('0x2a')](_0x4bf494[_0xea46('0x23')][_0xea46('0x2a')]));_0x44e797[_0xea46('0x27')]=_0x44e797[_0xea46('0x27')][_0xea46('0x2b')]?_0x44e797[_0xea46('0x27')]:_0x38ac07[_0xea46('0x29')];if(!_0x4bf494['query'][_0xea46('0x2c')](_0xea46('0x2d'))){_0x44e797[_0xea46('0x16')]=qs[_0xea46('0x16')](_0x4bf494[_0xea46('0x23')][_0xea46('0x16')]);_0x44e797[_0xea46('0x15')]=qs['offset'](_0x4bf494[_0xea46('0x23')][_0xea46('0x15')]);}_0x44e797[_0xea46('0x2e')]=qs[_0xea46('0x2f')](_0x4bf494[_0xea46('0x23')]['sort']);_0x44e797['where']=qs[_0xea46('0x26')](_[_0xea46('0x30')](_0x4bf494['query'],_0x38ac07[_0xea46('0x26')]));if(_0x28472f[_0xea46('0x24')]){if(_0x28472f[_0xea46('0x25')]){_0x28472f[_0xea46('0x25')]=moment(_0x28472f['dateEnd'])['add'](0x1,_0xea46('0x31'));}else{_0x28472f['dateEnd']=moment(_0x28472f[_0xea46('0x24')])[_0xea46('0x32')](0x1,'day');}_[_0xea46('0x33')](_0x44e797[_0xea46('0x34')],{'createdAt':{'$gte':_0x28472f['dateStart'],'$lte':_0x28472f[_0xea46('0x25')]}});}if(_0x4bf494[_0xea46('0x23')]['filter']){_0x44e797[_0xea46('0x34')]=_[_0xea46('0x33')](_0x44e797[_0xea46('0x34')],{'$or':_[_0xea46('0x35')](_0x44e797['attributes'],function(_0x3004e9){var _0x48c2be={};_0x48c2be[_0x3004e9]={'$like':'%'+_0x4bf494[_0xea46('0x23')][_0xea46('0x36')]+'%'};return _0x48c2be;})});}_0x44e797=_[_0xea46('0x33')]({},_0x44e797,_0x4bf494['options']);var _0x139250={'where':_0x44e797[_0xea46('0x34')]};return db['SmsQueueReport'][_0xea46('0x14')](_0x139250)[_0xea46('0x1b')](function(_0xf7c07e){_0x4b369c[_0xea46('0x14')]=_0xf7c07e;if(_0x4bf494['query'][_0xea46('0x37')]){_0x44e797[_0xea46('0x38')]=[{'all':!![]}];}return db[_0xea46('0x39')]['findAll'](_0x44e797);})[_0xea46('0x1b')](function(_0x312fd3){_0x4b369c[_0xea46('0x3a')]=_0x312fd3;return _0x4b369c;})[_0xea46('0x1b')](respondWithFilteredResult(_0x5d2de1,_0x44e797))[_0xea46('0x3b')](handleError(_0x5d2de1,null));};exports[_0xea46('0x3c')]=function(_0x23940c,_0xb84a16){var _0x1e2531={'raw':!![],'where':{'id':_0x23940c[_0xea46('0x3d')]['id']}},_0x23ab02={};_0x23ab02[_0xea46('0x29')]=_[_0xea46('0x22')](db[_0xea46('0x39')][_0xea46('0x21')]);_0x23ab02['query']=_['keys'](_0x23940c[_0xea46('0x23')]);_0x23ab02[_0xea46('0x26')]=_[_0xea46('0x28')](_0x23ab02[_0xea46('0x29')],_0x23ab02['query']);_0x1e2531['attributes']=_['intersection'](_0x23ab02[_0xea46('0x29')],qs[_0xea46('0x2a')](_0x23940c['query'][_0xea46('0x2a')]));_0x1e2531[_0xea46('0x27')]=_0x1e2531[_0xea46('0x27')][_0xea46('0x2b')]?_0x1e2531[_0xea46('0x27')]:_0x23ab02['model'];if(_0x23940c[_0xea46('0x23')]['includeAll']){_0x1e2531[_0xea46('0x38')]=[{'all':!![]}];}_0x1e2531=_[_0xea46('0x33')]({},_0x1e2531,_0x23940c[_0xea46('0x3e')]);return db[_0xea46('0x39')][_0xea46('0x3f')](_0x1e2531)[_0xea46('0x1b')](handleEntityNotFound(_0xb84a16,null))[_0xea46('0x1b')](respondWithResult(_0xb84a16,null))['catch'](handleError(_0xb84a16,null));};exports[_0xea46('0x40')]=function(_0x1fa670,_0x53215a){return db[_0xea46('0x39')][_0xea46('0x40')](_0x1fa670[_0xea46('0x41')],{})['then'](respondWithResult(_0x53215a,0xc9))['catch'](handleError(_0x53215a,null));};exports[_0xea46('0x1a')]=function(_0x3a8787,_0x3c5a9f){if(_0x3a8787[_0xea46('0x41')]['id']){delete _0x3a8787[_0xea46('0x41')]['id'];}return db[_0xea46('0x39')][_0xea46('0x3f')]({'where':{'id':_0x3a8787[_0xea46('0x3d')]['id']}})[_0xea46('0x1b')](handleEntityNotFound(_0x3c5a9f,null))[_0xea46('0x1b')](saveUpdates(_0x3a8787['body'],null))[_0xea46('0x1b')](respondWithResult(_0x3c5a9f,null))['catch'](handleError(_0x3c5a9f,null));};exports[_0xea46('0x1c')]=function(_0x3102b7,_0x949159){return db['SmsQueueReport'][_0xea46('0x3f')]({'where':{'id':_0x3102b7[_0xea46('0x3d')]['id']}})[_0xea46('0x1b')](handleEntityNotFound(_0x949159,null))[_0xea46('0x1b')](removeEntity(_0x949159,null))['catch'](handleError(_0x949159,null));};exports['describe']=function(_0x6584e9,_0x24abcb){return db['SmsQueueReport'][_0xea46('0x42')]()['then'](respondWithResult(_0x24abcb,null))[_0xea46('0x3b')](handleError(_0x24abcb,null));};
\ No newline at end of file
+var _0x7d67=['eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','api','../../config/environment','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','name','send','SmsQueueReport','rawAttributes','model','query','dateEnd','dateStart','filters','intersection','fields','length','attributes','nolimit','order','sort','where','pick','add','day','merge','map','filter','includeAll','rows','catch','show','params','keys','include','find','create','body','describe','html-pdf'];(function(_0x23c2d3,_0x1488a2){var _0x29d2ae=function(_0x335344){while(--_0x335344){_0x23c2d3['push'](_0x23c2d3['shift']());}};_0x29d2ae(++_0x1488a2);}(_0x7d67,0x11b));var _0x77d6=function(_0x52861b,_0x46b114){_0x52861b=_0x52861b-0x0;var _0x4c1039=_0x7d67[_0x52861b];return _0x4c1039;};'use strict';var pdf=require(_0x77d6('0x0'));var emlformat=require(_0x77d6('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x77d6('0x2'));var jsonpatch=require(_0x77d6('0x3'));var rp=require(_0x77d6('0x4'));var moment=require(_0x77d6('0x5'));var BPromise=require(_0x77d6('0x6'));var Mustache=require(_0x77d6('0x7'));var util=require(_0x77d6('0x8'));var path=require(_0x77d6('0x9'));var sox=require(_0x77d6('0xa'));var csv=require(_0x77d6('0xb'));var ejs=require(_0x77d6('0xc'));var fs=require('fs');var _=require(_0x77d6('0xd'));var squel=require(_0x77d6('0xe'));var crypto=require(_0x77d6('0xf'));var jsforce=require(_0x77d6('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x77d6('0xb'));var querystring=require(_0x77d6('0x11'));var Papa=require(_0x77d6('0x12'));var Redis=require(_0x77d6('0x13'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x77d6('0x14'));var utils=require('../../config/utils');var config=require(_0x77d6('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3b304e,_0x137452){_0x137452=_0x137452||0xcc;return function(_0x17258e){if(_0x17258e){return _0x3b304e['sendStatus'](_0x137452);}return _0x3b304e[_0x77d6('0x16')](_0x137452)[_0x77d6('0x17')]();};}function respondWithResult(_0x186340,_0x31c9dc){_0x31c9dc=_0x31c9dc||0xc8;return function(_0xfe5eb3){if(_0xfe5eb3){return _0x186340[_0x77d6('0x16')](_0x31c9dc)[_0x77d6('0x18')](_0xfe5eb3);}};}function respondWithFilteredResult(_0x40f8c1,_0x52aea1){return function(_0x4cae0e){if(_0x4cae0e){var _0x567d81=_0x4cae0e[_0x77d6('0x19')],_0x4e57d3=_0x52aea1[_0x77d6('0x1a')],_0x25e5f0=_0x52aea1[_0x77d6('0x1a')]+_0x52aea1[_0x77d6('0x1b')],_0x130153;if(_0x25e5f0>=_0x567d81){_0x25e5f0=_0x567d81;_0x130153=0xc8;}else{_0x130153=0xce;}_0x40f8c1['status'](_0x130153);return _0x40f8c1[_0x77d6('0x1c')](_0x77d6('0x1d'),_0x4e57d3+'-'+_0x25e5f0+'/'+_0x567d81)['json'](_0x4cae0e);}return null;};}function patchUpdates(_0x36e769){return function(_0x40adf7){try{jsonpatch[_0x77d6('0x1e')](_0x40adf7,_0x36e769,!![]);}catch(_0x42f076){return BPromise[_0x77d6('0x1f')](_0x42f076);}return _0x40adf7['save']();};}function saveUpdates(_0x457f74,_0x4b0456){return function(_0x580ca6){if(_0x580ca6){return _0x580ca6[_0x77d6('0x20')](_0x457f74)[_0x77d6('0x21')](function(_0x3d0302){return _0x3d0302;});}return null;};}function removeEntity(_0x5a313f,_0x3bd627){return function(_0xe3abc3){if(_0xe3abc3){return _0xe3abc3[_0x77d6('0x22')]()[_0x77d6('0x21')](function(){_0x5a313f[_0x77d6('0x16')](0xcc)[_0x77d6('0x17')]();});}};}function handleEntityNotFound(_0x252ede,_0x9f7270){return function(_0x5d30e1){if(!_0x5d30e1){_0x252ede[_0x77d6('0x23')](0x194);}return _0x5d30e1;};}function handleError(_0x4091e3,_0x512be6){_0x512be6=_0x512be6||0x1f4;return function(_0x28d920){logger[_0x77d6('0x24')](_0x28d920['stack']);if(_0x28d920[_0x77d6('0x25')]){delete _0x28d920[_0x77d6('0x25')];}_0x4091e3[_0x77d6('0x16')](_0x512be6)[_0x77d6('0x26')](_0x28d920);};}exports['index']=function(_0xb83f41,_0x49f34){var _0x466f06={},_0x2fbe38={},_0x12fc7c={'count':0x0,'rows':[]};var _0x1a1993=db[_0x77d6('0x27')][_0x77d6('0x28')];_0x2fbe38[_0x77d6('0x29')]=_['keys'](_0x1a1993);var _0x2c9ce3={'dateStart':_0xb83f41[_0x77d6('0x2a')]['dateStart'],'dateEnd':_0xb83f41[_0x77d6('0x2a')][_0x77d6('0x2b')]};delete _0xb83f41['query'][_0x77d6('0x2c')];delete _0xb83f41['query'][_0x77d6('0x2b')];_0x2fbe38['query']=_['keys'](_0xb83f41[_0x77d6('0x2a')]);_0x2fbe38[_0x77d6('0x2d')]=_['intersection'](_0x2fbe38[_0x77d6('0x29')],_0x2fbe38[_0x77d6('0x2a')]);_0x466f06['attributes']=_[_0x77d6('0x2e')](_0x2fbe38[_0x77d6('0x29')],qs[_0x77d6('0x2f')](_0xb83f41[_0x77d6('0x2a')][_0x77d6('0x2f')]));_0x466f06['attributes']=_0x466f06['attributes'][_0x77d6('0x30')]?_0x466f06[_0x77d6('0x31')]:_0x2fbe38['model'];if(!_0xb83f41[_0x77d6('0x2a')]['hasOwnProperty'](_0x77d6('0x32'))){_0x466f06[_0x77d6('0x1b')]=qs[_0x77d6('0x1b')](_0xb83f41[_0x77d6('0x2a')][_0x77d6('0x1b')]);_0x466f06['offset']=qs['offset'](_0xb83f41['query'][_0x77d6('0x1a')]);}_0x466f06[_0x77d6('0x33')]=qs[_0x77d6('0x34')](_0xb83f41[_0x77d6('0x2a')][_0x77d6('0x34')]);_0x466f06[_0x77d6('0x35')]=qs[_0x77d6('0x2d')](_[_0x77d6('0x36')](_0xb83f41[_0x77d6('0x2a')],_0x2fbe38[_0x77d6('0x2d')]));if(_0x2c9ce3['dateStart']){if(_0x2c9ce3[_0x77d6('0x2b')]){_0x2c9ce3[_0x77d6('0x2b')]=moment(_0x2c9ce3[_0x77d6('0x2b')])[_0x77d6('0x37')](0x1,_0x77d6('0x38'));}else{_0x2c9ce3[_0x77d6('0x2b')]=moment(_0x2c9ce3[_0x77d6('0x2c')])[_0x77d6('0x37')](0x1,_0x77d6('0x38'));}_['merge'](_0x466f06[_0x77d6('0x35')],{'createdAt':{'$gte':_0x2c9ce3[_0x77d6('0x2c')],'$lte':_0x2c9ce3[_0x77d6('0x2b')]}});}if(_0xb83f41[_0x77d6('0x2a')]['filter']){_0x466f06['where']=_[_0x77d6('0x39')](_0x466f06[_0x77d6('0x35')],{'$or':_[_0x77d6('0x3a')](_0x466f06[_0x77d6('0x31')],function(_0x5df68f){var _0x27d613={};_0x27d613[_0x5df68f]={'$like':'%'+_0xb83f41[_0x77d6('0x2a')][_0x77d6('0x3b')]+'%'};return _0x27d613;})});}_0x466f06=_[_0x77d6('0x39')]({},_0x466f06,_0xb83f41['options']);var _0x480390={'where':_0x466f06[_0x77d6('0x35')]};return db[_0x77d6('0x27')][_0x77d6('0x19')](_0x480390)[_0x77d6('0x21')](function(_0x1585af){_0x12fc7c[_0x77d6('0x19')]=_0x1585af;if(_0xb83f41[_0x77d6('0x2a')][_0x77d6('0x3c')]){_0x466f06['include']=[{'all':!![]}];}return db[_0x77d6('0x27')]['findAll'](_0x466f06);})[_0x77d6('0x21')](function(_0x13bf47){_0x12fc7c[_0x77d6('0x3d')]=_0x13bf47;return _0x12fc7c;})[_0x77d6('0x21')](respondWithFilteredResult(_0x49f34,_0x466f06))[_0x77d6('0x3e')](handleError(_0x49f34,null));};exports[_0x77d6('0x3f')]=function(_0x2bab1a,_0x3d31c4){var _0x116534={'raw':!![],'where':{'id':_0x2bab1a[_0x77d6('0x40')]['id']}},_0x26582f={};_0x26582f[_0x77d6('0x29')]=_['keys'](db[_0x77d6('0x27')][_0x77d6('0x28')]);_0x26582f['query']=_[_0x77d6('0x41')](_0x2bab1a[_0x77d6('0x2a')]);_0x26582f[_0x77d6('0x2d')]=_['intersection'](_0x26582f[_0x77d6('0x29')],_0x26582f[_0x77d6('0x2a')]);_0x116534[_0x77d6('0x31')]=_[_0x77d6('0x2e')](_0x26582f[_0x77d6('0x29')],qs['fields'](_0x2bab1a[_0x77d6('0x2a')][_0x77d6('0x2f')]));_0x116534[_0x77d6('0x31')]=_0x116534[_0x77d6('0x31')][_0x77d6('0x30')]?_0x116534[_0x77d6('0x31')]:_0x26582f[_0x77d6('0x29')];if(_0x2bab1a[_0x77d6('0x2a')]['includeAll']){_0x116534[_0x77d6('0x42')]=[{'all':!![]}];}_0x116534=_[_0x77d6('0x39')]({},_0x116534,_0x2bab1a['options']);return db[_0x77d6('0x27')][_0x77d6('0x43')](_0x116534)[_0x77d6('0x21')](handleEntityNotFound(_0x3d31c4,null))['then'](respondWithResult(_0x3d31c4,null))[_0x77d6('0x3e')](handleError(_0x3d31c4,null));};exports[_0x77d6('0x44')]=function(_0xf89b66,_0x4aa4d4){return db[_0x77d6('0x27')]['create'](_0xf89b66[_0x77d6('0x45')],{})[_0x77d6('0x21')](respondWithResult(_0x4aa4d4,0xc9))[_0x77d6('0x3e')](handleError(_0x4aa4d4,null));};exports[_0x77d6('0x20')]=function(_0x3530e4,_0x4ba57e){if(_0x3530e4[_0x77d6('0x45')]['id']){delete _0x3530e4[_0x77d6('0x45')]['id'];}return db[_0x77d6('0x27')]['find']({'where':{'id':_0x3530e4[_0x77d6('0x40')]['id']}})[_0x77d6('0x21')](handleEntityNotFound(_0x4ba57e,null))[_0x77d6('0x21')](saveUpdates(_0x3530e4[_0x77d6('0x45')],null))[_0x77d6('0x21')](respondWithResult(_0x4ba57e,null))[_0x77d6('0x3e')](handleError(_0x4ba57e,null));};exports[_0x77d6('0x22')]=function(_0x51d4c7,_0x43845f){return db[_0x77d6('0x27')]['find']({'where':{'id':_0x51d4c7[_0x77d6('0x40')]['id']}})['then'](handleEntityNotFound(_0x43845f,null))[_0x77d6('0x21')](removeEntity(_0x43845f,null))[_0x77d6('0x3e')](handleError(_0x43845f,null));};exports['describe']=function(_0x305260,_0x398cc2){return db[_0x77d6('0x27')][_0x77d6('0x46')]()[_0x77d6('0x21')](respondWithResult(_0x398cc2,null))['catch'](handleError(_0x398cc2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcaf0=['bluebird','request-promise','./smsQueueReport.attributes','exports','define','report_sms_queue','uniqueid','lodash','../../config/logger','api'];(function(_0x11dcf3,_0x277f82){var _0x57d2d8=function(_0x59ddb4){while(--_0x59ddb4){_0x11dcf3['push'](_0x11dcf3['shift']());}};_0x57d2d8(++_0x277f82);}(_0xcaf0,0xcf));var _0x0caf=function(_0x958e79,_0x2f3ffa){_0x958e79=_0x958e79-0x0;var _0x3ae692=_0xcaf0[_0x958e79];return _0x3ae692;};'use strict';var _=require(_0x0caf('0x0'));var util=require('util');var logger=require(_0x0caf('0x1'))(_0x0caf('0x2'));var moment=require('moment');var BPromise=require(_0x0caf('0x3'));var rp=require(_0x0caf('0x4'));var attributes=require(_0x0caf('0x5'));module[_0x0caf('0x6')]=function(_0x2f30ac,_0x250efa){return _0x2f30ac[_0x0caf('0x7')]('SmsQueueReport',attributes,{'tableName':_0x0caf('0x8'),'paranoid':![],'indexes':[{'name':_0x0caf('0x9'),'fields':[_0x0caf('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5e19=['util','../../config/logger','api','./smsQueueReport.attributes','exports','SmsQueueReport','uniqueid','lodash'];(function(_0x498334,_0x27b6fe){var _0x13bb70=function(_0x4087b1){while(--_0x4087b1){_0x498334['push'](_0x498334['shift']());}};_0x13bb70(++_0x27b6fe);}(_0x5e19,0xcf));var _0x95e1=function(_0x3e2f3e,_0x5681cc){_0x3e2f3e=_0x3e2f3e-0x0;var _0x373394=_0x5e19[_0x3e2f3e];return _0x373394;};'use strict';var _=require(_0x95e1('0x0'));var util=require(_0x95e1('0x1'));var logger=require(_0x95e1('0x2'))(_0x95e1('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x95e1('0x4'));module[_0x95e1('0x5')]=function(_0x256306,_0x2c905f){return _0x256306['define'](_0x95e1('0x6'),attributes,{'tableName':'report_sms_queue','paranoid':![],'indexes':[{'name':_0x95e1('0x7'),'fields':[_0x95e1('0x7')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaec5=['UpdateSmsQueueReport','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','then','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','SmsQueueReport','body','options','raw','CreateSmsQueueReport','update','where','attributes'];(function(_0x3df871,_0xda2e11){var _0x570f7b=function(_0xfaac78){while(--_0xfaac78){_0x3df871['push'](_0x3df871['shift']());}};_0x570f7b(++_0xda2e11);}(_0xaec5,0x92));var _0x5aec=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaec5[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x5aec('0x0'));var util=require(_0x5aec('0x1'));var moment=require(_0x5aec('0x2'));var BPromise=require(_0x5aec('0x3'));var rs=require(_0x5aec('0x4'));var fs=require('fs');var db=require(_0x5aec('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x5aec('0x6'))(_0x5aec('0x7'));var config=require(_0x5aec('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x52d725,_0x476951,_0x3dae8d){return new BPromise(function(_0x215103,_0x28c362){return client['request'](_0x52d725,_0x3dae8d)[_0x5aec('0x9')](function(_0x1b9377){logger['info'](_0x5aec('0xa'),_0x476951,_0x5aec('0xb'));logger[_0x5aec('0xc')](_0x5aec('0xd'),_0x476951,_0x5aec('0xb'),JSON[_0x5aec('0xe')](_0x1b9377));if(_0x1b9377[_0x5aec('0xf')]){if(_0x1b9377['error']['code']===0x1f4){logger[_0x5aec('0xf')](_0x5aec('0xa'),_0x476951,_0x1b9377[_0x5aec('0xf')][_0x5aec('0x10')]);return _0x28c362(_0x1b9377[_0x5aec('0xf')][_0x5aec('0x10')]);}logger[_0x5aec('0xf')](_0x5aec('0xa'),_0x476951,_0x1b9377[_0x5aec('0xf')][_0x5aec('0x10')]);return _0x215103(_0x1b9377[_0x5aec('0xf')]['message']);}else{logger[_0x5aec('0x11')](_0x5aec('0xa'),_0x476951,'request\x20sent');_0x215103(_0x1b9377[_0x5aec('0x12')]['message']);}})[_0x5aec('0x13')](function(_0x1d631e){logger[_0x5aec('0xf')](_0x5aec('0xa'),_0x476951,_0x1d631e);_0x28c362(_0x1d631e);});});}exports['CreateSmsQueueReport']=function(_0x121467){var _0x2c32bf=this;return new Promise(function(_0x1f636a,_0x4518c9){return db[_0x5aec('0x14')]['create'](_0x121467[_0x5aec('0x15')],{'raw':_0x121467[_0x5aec('0x16')]?_0x121467['options'][_0x5aec('0x17')]===undefined?!![]:![]:!![]})['then'](function(_0x29fb35){logger[_0x5aec('0x11')](_0x5aec('0x18'),_0x121467);logger['debug'](_0x5aec('0x18'),_0x121467,JSON['stringify'](_0x29fb35));_0x1f636a(_0x29fb35);})[_0x5aec('0x13')](function(_0x5641f1){logger[_0x5aec('0xf')](_0x5aec('0x18'),_0x5641f1[_0x5aec('0x10')],_0x121467);_0x4518c9(_0x2c32bf[_0x5aec('0xf')](0x1f4,_0x5641f1['message']));});});};exports['UpdateSmsQueueReport']=function(_0x3da833){var _0x33269=this;return new Promise(function(_0x1a686d,_0x5a4f88){return db['SmsQueueReport'][_0x5aec('0x19')](_0x3da833['body'],{'raw':_0x3da833[_0x5aec('0x16')]?_0x3da833[_0x5aec('0x16')][_0x5aec('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3da833['options']?_0x3da833[_0x5aec('0x16')][_0x5aec('0x1a')]||null:null,'attributes':_0x3da833[_0x5aec('0x16')]?_0x3da833[_0x5aec('0x16')][_0x5aec('0x1b')]||null:null,'limit':_0x3da833[_0x5aec('0x16')]?_0x3da833[_0x5aec('0x16')]['limit']||null:null})[_0x5aec('0x9')](function(_0x3124c4){logger['info']('UpdateSmsQueueReport',_0x3da833);logger[_0x5aec('0xc')](_0x5aec('0x1c'),_0x3da833,JSON['stringify'](_0x3124c4));_0x1a686d(_0x3124c4);})['catch'](function(_0x311a2d){logger['error']('UpdateSmsQueueReport',_0x311a2d[_0x5aec('0x10')],_0x3da833);_0x5a4f88(_0x33269[_0x5aec('0xf')](0x1f4,_0x311a2d[_0x5aec('0x10')]));});});};
\ No newline at end of file
+var _0x8ce5=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','info','SmsQueueReport,\x20%s,\x20%s','SmsQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateSmsQueueReport','SmsQueueReport','options','then','debug','UpdateSmsQueueReport','update','body','raw','where','attributes'];(function(_0x1f8184,_0x59e343){var _0x3e19d8=function(_0x1a2a68){while(--_0x1a2a68){_0x1f8184['push'](_0x1f8184['shift']());}};_0x3e19d8(++_0x59e343);}(_0x8ce5,0x160));var _0x58ce=function(_0x325291,_0x648cc7){_0x325291=_0x325291-0x0;var _0x186872=_0x8ce5[_0x325291];return _0x186872;};'use strict';var _=require('lodash');var util=require(_0x58ce('0x0'));var moment=require(_0x58ce('0x1'));var BPromise=require(_0x58ce('0x2'));var rs=require(_0x58ce('0x3'));var fs=require('fs');var Redis=require(_0x58ce('0x4'));var db=require(_0x58ce('0x5'))['db'];var utils=require(_0x58ce('0x6'));var logger=require(_0x58ce('0x7'))(_0x58ce('0x8'));var config=require('../../config/environment');var jayson=require(_0x58ce('0x9'));var client=jayson[_0x58ce('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4d0fcb,_0x385682,_0xa56e53){return new BPromise(function(_0x119ecd,_0x314a60){return client['request'](_0x4d0fcb,_0xa56e53)['then'](function(_0x6e0c47){logger[_0x58ce('0xb')](_0x58ce('0xc'),_0x385682,'request\x20sent');logger['debug'](_0x58ce('0xd'),_0x385682,_0x58ce('0xe'),JSON[_0x58ce('0xf')](_0x6e0c47));if(_0x6e0c47[_0x58ce('0x10')]){if(_0x6e0c47[_0x58ce('0x10')][_0x58ce('0x11')]===0x1f4){logger[_0x58ce('0x10')](_0x58ce('0xc'),_0x385682,_0x6e0c47['error'][_0x58ce('0x12')]);return _0x314a60(_0x6e0c47[_0x58ce('0x10')][_0x58ce('0x12')]);}logger[_0x58ce('0x10')](_0x58ce('0xc'),_0x385682,_0x6e0c47[_0x58ce('0x10')][_0x58ce('0x12')]);return _0x119ecd(_0x6e0c47['error'][_0x58ce('0x12')]);}else{logger[_0x58ce('0xb')](_0x58ce('0xc'),_0x385682,_0x58ce('0xe'));_0x119ecd(_0x6e0c47[_0x58ce('0x13')][_0x58ce('0x12')]);}})[_0x58ce('0x14')](function(_0x4c7215){logger[_0x58ce('0x10')]('SmsQueueReport,\x20%s,\x20%s',_0x385682,_0x4c7215);_0x314a60(_0x4c7215);});});}exports[_0x58ce('0x15')]=function(_0x36a01c){var _0xf87c=this;return new Promise(function(_0x1d21d4,_0x422983){return db[_0x58ce('0x16')]['create'](_0x36a01c['body'],{'raw':_0x36a01c[_0x58ce('0x17')]?_0x36a01c['options']['raw']===undefined?!![]:![]:!![]})[_0x58ce('0x18')](function(_0x21a3d7){logger[_0x58ce('0xb')]('CreateSmsQueueReport',_0x36a01c);logger[_0x58ce('0x19')]('CreateSmsQueueReport',_0x36a01c,JSON['stringify'](_0x21a3d7));_0x1d21d4(_0x21a3d7);})[_0x58ce('0x14')](function(_0x24f5aa){logger[_0x58ce('0x10')]('CreateSmsQueueReport',_0x24f5aa['message'],_0x36a01c);_0x422983(_0xf87c[_0x58ce('0x10')](0x1f4,_0x24f5aa[_0x58ce('0x12')]));});});};exports[_0x58ce('0x1a')]=function(_0x29f11a){var _0x366962=this;return new Promise(function(_0x5937fd,_0x5ba974){return db[_0x58ce('0x16')][_0x58ce('0x1b')](_0x29f11a[_0x58ce('0x1c')],{'raw':_0x29f11a[_0x58ce('0x17')]?_0x29f11a['options'][_0x58ce('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x29f11a[_0x58ce('0x17')]?_0x29f11a[_0x58ce('0x17')][_0x58ce('0x1e')]||null:null,'attributes':_0x29f11a[_0x58ce('0x17')]?_0x29f11a[_0x58ce('0x17')][_0x58ce('0x1f')]||null:null,'limit':_0x29f11a[_0x58ce('0x17')]?_0x29f11a[_0x58ce('0x17')]['limit']||null:null})[_0x58ce('0x18')](function(_0x263684){logger['info'](_0x58ce('0x1a'),_0x29f11a);logger[_0x58ce('0x19')](_0x58ce('0x1a'),_0x29f11a,JSON['stringify'](_0x263684));_0x5937fd(_0x263684);})['catch'](function(_0x397ce2){logger[_0x58ce('0x10')](_0x58ce('0x1a'),_0x397ce2[_0x58ce('0x12')],_0x29f11a);_0x5ba974(_0x366962[_0x58ce('0x10')](0x1f4,_0x397ce2[_0x58ce('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf567=['get','isAuthenticated','index','/:id','post','put','update','delete','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsTransferReport.controller'];(function(_0xd451b1,_0x2fb4d1){var _0x4ac9a1=function(_0x34becb){while(--_0x34becb){_0xd451b1['push'](_0xd451b1['shift']());}};_0x4ac9a1(++_0x2fb4d1);}(_0xf567,0x6e));var _0x7f56=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xf567[_0x4a9fb1];return _0x348672;};'use strict';var multer=require(_0x7f56('0x0'));var util=require('util');var path=require(_0x7f56('0x1'));var timeout=require(_0x7f56('0x2'));var express=require(_0x7f56('0x3'));var router=express[_0x7f56('0x4')]();var auth=require(_0x7f56('0x5'));var interaction=require(_0x7f56('0x6'));var config=require(_0x7f56('0x7'));var controller=require(_0x7f56('0x8'));router[_0x7f56('0x9')]('/',auth[_0x7f56('0xa')](),controller[_0x7f56('0xb')]);router[_0x7f56('0x9')]('/describe',auth[_0x7f56('0xa')](),controller['describe']);router[_0x7f56('0x9')](_0x7f56('0xc'),auth['isAuthenticated'](),controller['show']);router[_0x7f56('0xd')]('/',auth[_0x7f56('0xa')](),controller['create']);router[_0x7f56('0xe')](_0x7f56('0xc'),auth['isAuthenticated'](),controller[_0x7f56('0xf')]);router[_0x7f56('0x10')](_0x7f56('0xc'),auth[_0x7f56('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xbfc5=['show','post','create','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./smsTransferReport.controller','get','isAuthenticated','index','/describe','/:id'];(function(_0x379217,_0xca06a7){var _0x222b7c=function(_0x5cf446){while(--_0x5cf446){_0x379217['push'](_0x379217['shift']());}};_0x222b7c(++_0xca06a7);}(_0xbfc5,0x15c));var _0x5bfc=function(_0x40f31d,_0x166318){_0x40f31d=_0x40f31d-0x0;var _0x10d4e4=_0xbfc5[_0x40f31d];return _0x10d4e4;};'use strict';var multer=require(_0x5bfc('0x0'));var util=require(_0x5bfc('0x1'));var path=require(_0x5bfc('0x2'));var timeout=require(_0x5bfc('0x3'));var express=require(_0x5bfc('0x4'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x5bfc('0x5'));var config=require(_0x5bfc('0x6'));var controller=require(_0x5bfc('0x7'));router[_0x5bfc('0x8')]('/',auth[_0x5bfc('0x9')](),controller[_0x5bfc('0xa')]);router[_0x5bfc('0x8')](_0x5bfc('0xb'),auth['isAuthenticated'](),controller['describe']);router[_0x5bfc('0x8')](_0x5bfc('0xc'),auth[_0x5bfc('0x9')](),controller[_0x5bfc('0xd')]);router[_0x5bfc('0xe')]('/',auth[_0x5bfc('0x9')](),controller[_0x5bfc('0xf')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x5bfc('0x10')](_0x5bfc('0xc'),auth['isAuthenticated'](),controller[_0x5bfc('0x11')]);module[_0x5bfc('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1536=['agent','NOW','moment','sequelize','exports','account'];(function(_0x59ad6f,_0x3bb8f5){var _0x145049=function(_0x596a76){while(--_0x596a76){_0x59ad6f['push'](_0x59ad6f['shift']());}};_0x145049(++_0x3bb8f5);}(_0x1536,0xda));var _0x6153=function(_0x2926bf,_0x4e2e34){_0x2926bf=_0x2926bf-0x0;var _0xda60bf=_0x1536[_0x2926bf];return _0xda60bf;};'use strict';var moment=require(_0x6153('0x0'));var Sequelize=require(_0x6153('0x1'));module[_0x6153('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x6153('0x3'),_0x6153('0x4'),'queue'),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x6153('0x5')]}};
\ No newline at end of file
+var _0xf006=['STRING','ENUM','account','agent','queue','exports'];(function(_0x49f158,_0x5102b0){var _0x334058=function(_0x4a6023){while(--_0x4a6023){_0x49f158['push'](_0x49f158['shift']());}};_0x334058(++_0x5102b0);}(_0xf006,0x1a3));var _0x6f00=function(_0x3bd10c,_0x5279c7){_0x3bd10c=_0x3bd10c-0x0;var _0x367feb=_0xf006[_0x3bd10c];return _0x367feb;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x6f00('0x0')]={'uniqueid':{'type':Sequelize[_0x6f00('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x6f00('0x2')](_0x6f00('0x3'),_0x6f00('0x4'),_0x6f00('0x5')),'allowNull':![],'defaultValue':_0x6f00('0x5')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cd1=['offset','limit','set','Content-Range','apply','update','destroy','error','stack','name','send','SmsTransferReport','rawAttributes','model','keys','query','dateEnd','dateStart','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','add','day','merge','map','options','includeAll','include','findAll','then','rows','catch','show','params','find','create','body','describe','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','sendStatus','end','status','json','count'];(function(_0x117ade,_0x41a4aa){var _0x4361b8=function(_0x3e37e6){while(--_0x3e37e6){_0x117ade['push'](_0x117ade['shift']());}};_0x4361b8(++_0x41a4aa);}(_0x5cd1,0x72));var _0x15cd=function(_0x50861d,_0x2b75d0){_0x50861d=_0x50861d-0x0;var _0xa707fa=_0x5cd1[_0x50861d];return _0xa707fa;};'use strict';var pdf=require(_0x15cd('0x0'));var emlformat=require(_0x15cd('0x1'));var rimraf=require(_0x15cd('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x15cd('0x3'));var moment=require('moment');var BPromise=require(_0x15cd('0x4'));var Mustache=require(_0x15cd('0x5'));var util=require(_0x15cd('0x6'));var path=require(_0x15cd('0x7'));var sox=require(_0x15cd('0x8'));var csv=require(_0x15cd('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x15cd('0xa'));var crypto=require(_0x15cd('0xb'));var jsforce=require(_0x15cd('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x15cd('0x9'));var querystring=require(_0x15cd('0xd'));var Papa=require(_0x15cd('0xe'));var qs=require(_0x15cd('0xf'));var logger=require('../../config/logger')(_0x15cd('0x10'));var utils=require(_0x15cd('0x11'));var config=require(_0x15cd('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x51fa1e,_0x9636bc){_0x9636bc=_0x9636bc||0xcc;return function(_0x197cc8){if(_0x197cc8){return _0x51fa1e[_0x15cd('0x13')](_0x9636bc);}return _0x51fa1e['status'](_0x9636bc)[_0x15cd('0x14')]();};}function respondWithResult(_0xe26608,_0xaf0022){_0xaf0022=_0xaf0022||0xc8;return function(_0x33a5b3){if(_0x33a5b3){return _0xe26608[_0x15cd('0x15')](_0xaf0022)[_0x15cd('0x16')](_0x33a5b3);}};}function respondWithFilteredResult(_0x13814a,_0x4df066){return function(_0xa84603){if(_0xa84603){var _0x21cb69=_0xa84603[_0x15cd('0x17')],_0x539ae9=_0x4df066[_0x15cd('0x18')],_0x2f83d7=_0x4df066[_0x15cd('0x18')]+_0x4df066[_0x15cd('0x19')],_0x4daaba;if(_0x2f83d7>=_0x21cb69){_0x2f83d7=_0x21cb69;_0x4daaba=0xc8;}else{_0x4daaba=0xce;}_0x13814a[_0x15cd('0x15')](_0x4daaba);return _0x13814a[_0x15cd('0x1a')](_0x15cd('0x1b'),_0x539ae9+'-'+_0x2f83d7+'/'+_0x21cb69)[_0x15cd('0x16')](_0xa84603);}return null;};}function patchUpdates(_0x899d7b){return function(_0x5c0253){try{jsonpatch[_0x15cd('0x1c')](_0x5c0253,_0x899d7b,!![]);}catch(_0xbebd4d){return BPromise['reject'](_0xbebd4d);}return _0x5c0253['save']();};}function saveUpdates(_0x29ffd0,_0x246f47){return function(_0x9fcf4d){if(_0x9fcf4d){return _0x9fcf4d[_0x15cd('0x1d')](_0x29ffd0)['then'](function(_0x523256){return _0x523256;});}return null;};}function removeEntity(_0x333833,_0x109c0a){return function(_0x5bacff){if(_0x5bacff){return _0x5bacff[_0x15cd('0x1e')]()['then'](function(){_0x333833[_0x15cd('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27ed0c,_0x554ae6){return function(_0xc943ab){if(!_0xc943ab){_0x27ed0c[_0x15cd('0x13')](0x194);}return _0xc943ab;};}function handleError(_0x109615,_0x3a7ac4){_0x3a7ac4=_0x3a7ac4||0x1f4;return function(_0x52aa43){logger[_0x15cd('0x1f')](_0x52aa43[_0x15cd('0x20')]);if(_0x52aa43[_0x15cd('0x21')]){delete _0x52aa43['name'];}_0x109615[_0x15cd('0x15')](_0x3a7ac4)[_0x15cd('0x22')](_0x52aa43);};}exports['index']=function(_0x453708,_0xf3f77c){var _0x491161={},_0x4a1852={},_0x89fa88={'count':0x0,'rows':[]};var _0xe26d13=db[_0x15cd('0x23')][_0x15cd('0x24')];_0x4a1852[_0x15cd('0x25')]=_[_0x15cd('0x26')](_0xe26d13);var _0x274a41={'dateStart':_0x453708['query']['dateStart'],'dateEnd':_0x453708[_0x15cd('0x27')][_0x15cd('0x28')]};delete _0x453708[_0x15cd('0x27')][_0x15cd('0x29')];delete _0x453708[_0x15cd('0x27')][_0x15cd('0x28')];_0x4a1852[_0x15cd('0x27')]=_[_0x15cd('0x26')](_0x453708[_0x15cd('0x27')]);_0x4a1852[_0x15cd('0x2a')]=_[_0x15cd('0x2b')](_0x4a1852[_0x15cd('0x25')],_0x4a1852[_0x15cd('0x27')]);_0x491161[_0x15cd('0x2c')]=_[_0x15cd('0x2b')](_0x4a1852[_0x15cd('0x25')],qs[_0x15cd('0x2d')](_0x453708[_0x15cd('0x27')][_0x15cd('0x2d')]));_0x491161[_0x15cd('0x2c')]=_0x491161[_0x15cd('0x2c')][_0x15cd('0x2e')]?_0x491161[_0x15cd('0x2c')]:_0x4a1852['model'];if(!_0x453708[_0x15cd('0x27')][_0x15cd('0x2f')](_0x15cd('0x30'))){_0x491161['limit']=qs[_0x15cd('0x19')](_0x453708['query'][_0x15cd('0x19')]);_0x491161[_0x15cd('0x18')]=qs[_0x15cd('0x18')](_0x453708[_0x15cd('0x27')][_0x15cd('0x18')]);}_0x491161['order']=qs[_0x15cd('0x31')](_0x453708[_0x15cd('0x27')]['sort']);_0x491161[_0x15cd('0x32')]=qs[_0x15cd('0x2a')](_[_0x15cd('0x33')](_0x453708['query'],_0x4a1852[_0x15cd('0x2a')]));if(_0x274a41['dateStart']){if(_0x274a41[_0x15cd('0x28')]){_0x274a41[_0x15cd('0x28')]=moment(_0x274a41[_0x15cd('0x28')])[_0x15cd('0x34')](0x1,_0x15cd('0x35'));}else{_0x274a41[_0x15cd('0x28')]=moment(_0x274a41['dateStart'])[_0x15cd('0x34')](0x1,_0x15cd('0x35'));}_['merge'](_0x491161[_0x15cd('0x32')],{'createdAt':{'$gte':_0x274a41[_0x15cd('0x29')],'$lte':_0x274a41['dateEnd']}});}if(_0x453708[_0x15cd('0x27')]['filter']){_0x491161[_0x15cd('0x32')]=_[_0x15cd('0x36')](_0x491161[_0x15cd('0x32')],{'$or':_[_0x15cd('0x37')](_0x491161[_0x15cd('0x2c')],function(_0x13b50b){var _0x2837ec={};_0x2837ec[_0x13b50b]={'$like':'%'+_0x453708['query']['filter']+'%'};return _0x2837ec;})});}_0x491161=_[_0x15cd('0x36')]({},_0x491161,_0x453708[_0x15cd('0x38')]);var _0x39872c={'where':_0x491161[_0x15cd('0x32')]};return db[_0x15cd('0x23')]['count'](_0x39872c)['then'](function(_0x380c01){_0x89fa88[_0x15cd('0x17')]=_0x380c01;if(_0x453708[_0x15cd('0x27')][_0x15cd('0x39')]){_0x491161[_0x15cd('0x3a')]=[{'all':!![]}];}return db[_0x15cd('0x23')][_0x15cd('0x3b')](_0x491161);})[_0x15cd('0x3c')](function(_0x448351){_0x89fa88[_0x15cd('0x3d')]=_0x448351;return _0x89fa88;})[_0x15cd('0x3c')](respondWithFilteredResult(_0xf3f77c,_0x491161))[_0x15cd('0x3e')](handleError(_0xf3f77c,null));};exports[_0x15cd('0x3f')]=function(_0x4f449e,_0x22f8f3){var _0x1a6589={'raw':!![],'where':{'id':_0x4f449e[_0x15cd('0x40')]['id']}},_0x1949d4={};_0x1949d4[_0x15cd('0x25')]=_[_0x15cd('0x26')](db[_0x15cd('0x23')][_0x15cd('0x24')]);_0x1949d4['query']=_[_0x15cd('0x26')](_0x4f449e[_0x15cd('0x27')]);_0x1949d4[_0x15cd('0x2a')]=_[_0x15cd('0x2b')](_0x1949d4[_0x15cd('0x25')],_0x1949d4[_0x15cd('0x27')]);_0x1a6589[_0x15cd('0x2c')]=_['intersection'](_0x1949d4[_0x15cd('0x25')],qs[_0x15cd('0x2d')](_0x4f449e['query']['fields']));_0x1a6589[_0x15cd('0x2c')]=_0x1a6589[_0x15cd('0x2c')][_0x15cd('0x2e')]?_0x1a6589[_0x15cd('0x2c')]:_0x1949d4[_0x15cd('0x25')];if(_0x4f449e[_0x15cd('0x27')][_0x15cd('0x39')]){_0x1a6589[_0x15cd('0x3a')]=[{'all':!![]}];}_0x1a6589=_[_0x15cd('0x36')]({},_0x1a6589,_0x4f449e[_0x15cd('0x38')]);return db['SmsTransferReport'][_0x15cd('0x41')](_0x1a6589)[_0x15cd('0x3c')](handleEntityNotFound(_0x22f8f3,null))[_0x15cd('0x3c')](respondWithResult(_0x22f8f3,null))[_0x15cd('0x3e')](handleError(_0x22f8f3,null));};exports[_0x15cd('0x42')]=function(_0x4b122d,_0x5c7fe4){return db[_0x15cd('0x23')][_0x15cd('0x42')](_0x4b122d[_0x15cd('0x43')],{})['then'](respondWithResult(_0x5c7fe4,0xc9))[_0x15cd('0x3e')](handleError(_0x5c7fe4,null));};exports[_0x15cd('0x1d')]=function(_0x327b9d,_0xc4f2a4){if(_0x327b9d[_0x15cd('0x43')]['id']){delete _0x327b9d['body']['id'];}return db['SmsTransferReport'][_0x15cd('0x41')]({'where':{'id':_0x327b9d[_0x15cd('0x40')]['id']}})[_0x15cd('0x3c')](handleEntityNotFound(_0xc4f2a4,null))['then'](saveUpdates(_0x327b9d[_0x15cd('0x43')],null))[_0x15cd('0x3c')](respondWithResult(_0xc4f2a4,null))[_0x15cd('0x3e')](handleError(_0xc4f2a4,null));};exports['destroy']=function(_0x21aa3c,_0x3fc3ab){return db[_0x15cd('0x23')][_0x15cd('0x41')]({'where':{'id':_0x21aa3c[_0x15cd('0x40')]['id']}})['then'](handleEntityNotFound(_0x3fc3ab,null))[_0x15cd('0x3c')](removeEntity(_0x3fc3ab,null))[_0x15cd('0x3e')](handleError(_0x3fc3ab,null));};exports[_0x15cd('0x44')]=function(_0x2b6037,_0x4979ef){return db[_0x15cd('0x23')][_0x15cd('0x44')]()[_0x15cd('0x3c')](respondWithResult(_0x4979ef,null))['catch'](handleError(_0x4979ef,null));};
\ No newline at end of file
+var _0xc4aa=['params','rawAttributes','create','body','find','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','sendStatus','status','json','offset','limit','set','Content-Range','reject','save','update','then','error','stack','name','send','index','SmsTransferReport','model','keys','query','dateStart','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','dateEnd','add','day','filter','merge','options','count','includeAll','include','findAll','rows','catch','show'];(function(_0x4ba105,_0xf97073){var _0x5eee7b=function(_0x242611){while(--_0x242611){_0x4ba105['push'](_0x4ba105['shift']());}};_0x5eee7b(++_0xf97073);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x82129b,_0x484ae9){_0x82129b=_0x82129b-0x0;var _0x2ae5dc=_0xc4aa[_0x82129b];return _0x2ae5dc;};'use strict';var pdf=require(_0xac4a('0x0'));var emlformat=require(_0xac4a('0x1'));var rimraf=require(_0xac4a('0x2'));var zipdir=require(_0xac4a('0x3'));var jsonpatch=require(_0xac4a('0x4'));var rp=require(_0xac4a('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xac4a('0x6'));var path=require(_0xac4a('0x7'));var sox=require(_0xac4a('0x8'));var csv=require(_0xac4a('0x9'));var ejs=require(_0xac4a('0xa'));var fs=require('fs');var _=require(_0xac4a('0xb'));var squel=require(_0xac4a('0xc'));var crypto=require(_0xac4a('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xac4a('0x9'));var querystring=require(_0xac4a('0xe'));var Papa=require(_0xac4a('0xf'));var Redis=require('ioredis');var qs=require(_0xac4a('0x10'));var logger=require(_0xac4a('0x11'))(_0xac4a('0x12'));var utils=require('../../config/utils');var config=require(_0xac4a('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f062c,_0x4855b6){_0x4855b6=_0x4855b6||0xcc;return function(_0x333ca5){if(_0x333ca5){return _0x2f062c[_0xac4a('0x14')](_0x4855b6);}return _0x2f062c[_0xac4a('0x15')](_0x4855b6)['end']();};}function respondWithResult(_0x21a79,_0x68424a){_0x68424a=_0x68424a||0xc8;return function(_0x247b78){if(_0x247b78){return _0x21a79[_0xac4a('0x15')](_0x68424a)[_0xac4a('0x16')](_0x247b78);}};}function respondWithFilteredResult(_0x3b71c0,_0x34bc01){return function(_0x33c287){if(_0x33c287){var _0x190418=_0x33c287['count'],_0x42c7fc=_0x34bc01[_0xac4a('0x17')],_0x11e101=_0x34bc01[_0xac4a('0x17')]+_0x34bc01[_0xac4a('0x18')],_0x26dbb8;if(_0x11e101>=_0x190418){_0x11e101=_0x190418;_0x26dbb8=0xc8;}else{_0x26dbb8=0xce;}_0x3b71c0[_0xac4a('0x15')](_0x26dbb8);return _0x3b71c0[_0xac4a('0x19')](_0xac4a('0x1a'),_0x42c7fc+'-'+_0x11e101+'/'+_0x190418)[_0xac4a('0x16')](_0x33c287);}return null;};}function patchUpdates(_0x44ec59){return function(_0x546c5d){try{jsonpatch['apply'](_0x546c5d,_0x44ec59,!![]);}catch(_0x21a729){return BPromise[_0xac4a('0x1b')](_0x21a729);}return _0x546c5d[_0xac4a('0x1c')]();};}function saveUpdates(_0x4d837c,_0x39e83e){return function(_0x15c223){if(_0x15c223){return _0x15c223[_0xac4a('0x1d')](_0x4d837c)[_0xac4a('0x1e')](function(_0x123694){return _0x123694;});}return null;};}function removeEntity(_0x3e829c,_0xe38996){return function(_0x3ca790){if(_0x3ca790){return _0x3ca790['destroy']()[_0xac4a('0x1e')](function(){_0x3e829c[_0xac4a('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d7ce0,_0x4169c0){return function(_0x3eacd3){if(!_0x3eacd3){_0x3d7ce0[_0xac4a('0x14')](0x194);}return _0x3eacd3;};}function handleError(_0x4d2d6c,_0x1b7998){_0x1b7998=_0x1b7998||0x1f4;return function(_0x2503d8){logger[_0xac4a('0x1f')](_0x2503d8[_0xac4a('0x20')]);if(_0x2503d8[_0xac4a('0x21')]){delete _0x2503d8[_0xac4a('0x21')];}_0x4d2d6c[_0xac4a('0x15')](_0x1b7998)[_0xac4a('0x22')](_0x2503d8);};}exports[_0xac4a('0x23')]=function(_0x3bc318,_0x1d0539){var _0x215a31={},_0x14832b={},_0x472c57={'count':0x0,'rows':[]};var _0x1c13dc=db[_0xac4a('0x24')]['rawAttributes'];_0x14832b[_0xac4a('0x25')]=_[_0xac4a('0x26')](_0x1c13dc);var _0x42a33c={'dateStart':_0x3bc318[_0xac4a('0x27')][_0xac4a('0x28')],'dateEnd':_0x3bc318['query']['dateEnd']};delete _0x3bc318[_0xac4a('0x27')][_0xac4a('0x28')];delete _0x3bc318[_0xac4a('0x27')]['dateEnd'];_0x14832b['query']=_[_0xac4a('0x26')](_0x3bc318[_0xac4a('0x27')]);_0x14832b[_0xac4a('0x29')]=_[_0xac4a('0x2a')](_0x14832b[_0xac4a('0x25')],_0x14832b['query']);_0x215a31[_0xac4a('0x2b')]=_['intersection'](_0x14832b[_0xac4a('0x25')],qs['fields'](_0x3bc318[_0xac4a('0x27')][_0xac4a('0x2c')]));_0x215a31[_0xac4a('0x2b')]=_0x215a31[_0xac4a('0x2b')][_0xac4a('0x2d')]?_0x215a31[_0xac4a('0x2b')]:_0x14832b[_0xac4a('0x25')];if(!_0x3bc318[_0xac4a('0x27')][_0xac4a('0x2e')](_0xac4a('0x2f'))){_0x215a31[_0xac4a('0x18')]=qs[_0xac4a('0x18')](_0x3bc318[_0xac4a('0x27')][_0xac4a('0x18')]);_0x215a31['offset']=qs[_0xac4a('0x17')](_0x3bc318[_0xac4a('0x27')]['offset']);}_0x215a31[_0xac4a('0x30')]=qs[_0xac4a('0x31')](_0x3bc318['query']['sort']);_0x215a31[_0xac4a('0x32')]=qs[_0xac4a('0x29')](_[_0xac4a('0x33')](_0x3bc318[_0xac4a('0x27')],_0x14832b['filters']));if(_0x42a33c[_0xac4a('0x28')]){if(_0x42a33c[_0xac4a('0x34')]){_0x42a33c['dateEnd']=moment(_0x42a33c[_0xac4a('0x34')])[_0xac4a('0x35')](0x1,_0xac4a('0x36'));}else{_0x42a33c['dateEnd']=moment(_0x42a33c[_0xac4a('0x28')])[_0xac4a('0x35')](0x1,_0xac4a('0x36'));}_['merge'](_0x215a31[_0xac4a('0x32')],{'createdAt':{'$gte':_0x42a33c[_0xac4a('0x28')],'$lte':_0x42a33c['dateEnd']}});}if(_0x3bc318['query'][_0xac4a('0x37')]){_0x215a31['where']=_['merge'](_0x215a31['where'],{'$or':_['map'](_0x215a31[_0xac4a('0x2b')],function(_0x2bf8e8){var _0x37834b={};_0x37834b[_0x2bf8e8]={'$like':'%'+_0x3bc318[_0xac4a('0x27')][_0xac4a('0x37')]+'%'};return _0x37834b;})});}_0x215a31=_[_0xac4a('0x38')]({},_0x215a31,_0x3bc318[_0xac4a('0x39')]);var _0x2b16f0={'where':_0x215a31[_0xac4a('0x32')]};return db[_0xac4a('0x24')][_0xac4a('0x3a')](_0x2b16f0)[_0xac4a('0x1e')](function(_0x4e4994){_0x472c57['count']=_0x4e4994;if(_0x3bc318['query'][_0xac4a('0x3b')]){_0x215a31[_0xac4a('0x3c')]=[{'all':!![]}];}return db[_0xac4a('0x24')][_0xac4a('0x3d')](_0x215a31);})[_0xac4a('0x1e')](function(_0x411543){_0x472c57[_0xac4a('0x3e')]=_0x411543;return _0x472c57;})[_0xac4a('0x1e')](respondWithFilteredResult(_0x1d0539,_0x215a31))[_0xac4a('0x3f')](handleError(_0x1d0539,null));};exports[_0xac4a('0x40')]=function(_0x561cb7,_0x3f31d1){var _0x31bfaf={'raw':!![],'where':{'id':_0x561cb7[_0xac4a('0x41')]['id']}},_0x3d9595={};_0x3d9595[_0xac4a('0x25')]=_['keys'](db[_0xac4a('0x24')][_0xac4a('0x42')]);_0x3d9595['query']=_[_0xac4a('0x26')](_0x561cb7['query']);_0x3d9595[_0xac4a('0x29')]=_[_0xac4a('0x2a')](_0x3d9595[_0xac4a('0x25')],_0x3d9595[_0xac4a('0x27')]);_0x31bfaf[_0xac4a('0x2b')]=_[_0xac4a('0x2a')](_0x3d9595[_0xac4a('0x25')],qs[_0xac4a('0x2c')](_0x561cb7[_0xac4a('0x27')][_0xac4a('0x2c')]));_0x31bfaf[_0xac4a('0x2b')]=_0x31bfaf[_0xac4a('0x2b')]['length']?_0x31bfaf[_0xac4a('0x2b')]:_0x3d9595[_0xac4a('0x25')];if(_0x561cb7[_0xac4a('0x27')]['includeAll']){_0x31bfaf[_0xac4a('0x3c')]=[{'all':!![]}];}_0x31bfaf=_[_0xac4a('0x38')]({},_0x31bfaf,_0x561cb7['options']);return db[_0xac4a('0x24')]['find'](_0x31bfaf)[_0xac4a('0x1e')](handleEntityNotFound(_0x3f31d1,null))[_0xac4a('0x1e')](respondWithResult(_0x3f31d1,null))[_0xac4a('0x3f')](handleError(_0x3f31d1,null));};exports['create']=function(_0x588374,_0x42fd9d){return db['SmsTransferReport'][_0xac4a('0x43')](_0x588374['body'],{})[_0xac4a('0x1e')](respondWithResult(_0x42fd9d,0xc9))['catch'](handleError(_0x42fd9d,null));};exports[_0xac4a('0x1d')]=function(_0x369eb8,_0x424f9b){if(_0x369eb8[_0xac4a('0x44')]['id']){delete _0x369eb8['body']['id'];}return db[_0xac4a('0x24')][_0xac4a('0x45')]({'where':{'id':_0x369eb8[_0xac4a('0x41')]['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x424f9b,null))[_0xac4a('0x1e')](saveUpdates(_0x369eb8[_0xac4a('0x44')],null))[_0xac4a('0x1e')](respondWithResult(_0x424f9b,null))['catch'](handleError(_0x424f9b,null));};exports[_0xac4a('0x46')]=function(_0x464704,_0x4828e3){return db[_0xac4a('0x24')][_0xac4a('0x45')]({'where':{'id':_0x464704[_0xac4a('0x41')]['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x4828e3,null))['then'](removeEntity(_0x4828e3,null))[_0xac4a('0x3f')](handleError(_0x4828e3,null));};exports[_0xac4a('0x47')]=function(_0x2d8db8,_0x129d58){return db[_0xac4a('0x24')]['describe']()[_0xac4a('0x1e')](respondWithResult(_0x129d58,null))['catch'](handleError(_0x129d58,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81bd=['SmsTransferReport','report_sms_transfer','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','exports'];(function(_0x44b64d,_0x4b6490){var _0x62a77=function(_0x7115b6){while(--_0x7115b6){_0x44b64d['push'](_0x44b64d['shift']());}};_0x62a77(++_0x4b6490);}(_0x81bd,0x7c));var _0xd81b=function(_0x4a30f1,_0x2e75a8){_0x4a30f1=_0x4a30f1-0x0;var _0x1e0a09=_0x81bd[_0x4a30f1];return _0x1e0a09;};'use strict';var _=require(_0xd81b('0x0'));var util=require(_0xd81b('0x1'));var logger=require(_0xd81b('0x2'))(_0xd81b('0x3'));var moment=require(_0xd81b('0x4'));var BPromise=require(_0xd81b('0x5'));var rp=require(_0xd81b('0x6'));var attributes=require('./smsTransferReport.attributes');module[_0xd81b('0x7')]=function(_0x2c3d9e,_0x1b6cfe){return _0x2c3d9e['define'](_0xd81b('0x8'),attributes,{'tableName':_0xd81b('0x9'),'paranoid':![],'indexes':[{'name':_0xd81b('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x00bb=['request-promise','./smsTransferReport.attributes','uniqueid','lodash','util','../../config/logger','moment'];(function(_0x486173,_0x521149){var _0x2da6e0=function(_0x2b6c79){while(--_0x2b6c79){_0x486173['push'](_0x486173['shift']());}};_0x2da6e0(++_0x521149);}(_0x00bb,0x1d8));var _0xb00b=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0x00bb[_0x5c351c];return _0x26f3b3;};'use strict';var _=require(_0xb00b('0x0'));var util=require(_0xb00b('0x1'));var logger=require(_0xb00b('0x2'))('api');var moment=require(_0xb00b('0x3'));var BPromise=require('bluebird');var rp=require(_0xb00b('0x4'));var attributes=require(_0xb00b('0x5'));module['exports']=function(_0x14b5d0,_0x2dbd25){return _0x14b5d0['define']('SmsTransferReport',attributes,{'tableName':'report_sms_transfer','paranoid':![],'indexes':[{'name':_0xb00b('0x6'),'fields':[_0xb00b('0x6')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe0c1=['debug','request\x20sent','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','SmsTransferReport,\x20%s,\x20%s'];(function(_0x5725bb,_0x4a73a3){var _0x52ecce=function(_0x4783cf){while(--_0x4783cf){_0x5725bb['push'](_0x5725bb['shift']());}};_0x52ecce(++_0x4a73a3);}(_0xe0c1,0x92));var _0x1e0c=function(_0x4ae7a1,_0x38cc75){_0x4ae7a1=_0x4ae7a1-0x0;var _0x35c47e=_0xe0c1[_0x4ae7a1];return _0x35c47e;};'use strict';var _=require('lodash');var util=require(_0x1e0c('0x0'));var moment=require(_0x1e0c('0x1'));var BPromise=require(_0x1e0c('0x2'));var rs=require(_0x1e0c('0x3'));var fs=require('fs');var db=require(_0x1e0c('0x4'))['db'];var utils=require(_0x1e0c('0x5'));var logger=require(_0x1e0c('0x6'))(_0x1e0c('0x7'));var config=require(_0x1e0c('0x8'));var jayson=require(_0x1e0c('0x9'));var client=jayson[_0x1e0c('0xa')][_0x1e0c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2fecca,_0x128fd0,_0x420d7e){return new BPromise(function(_0x2c955e,_0x49947b){return client[_0x1e0c('0xc')](_0x2fecca,_0x420d7e)['then'](function(_0x3a11a8){logger[_0x1e0c('0xd')](_0x1e0c('0xe'),_0x128fd0,'request\x20sent');logger[_0x1e0c('0xf')]('SmsTransferReport,\x20%s,\x20%s,\x20%s',_0x128fd0,_0x1e0c('0x10'),JSON[_0x1e0c('0x11')](_0x3a11a8));if(_0x3a11a8[_0x1e0c('0x12')]){if(_0x3a11a8[_0x1e0c('0x12')][_0x1e0c('0x13')]===0x1f4){logger['error'](_0x1e0c('0xe'),_0x128fd0,_0x3a11a8['error'][_0x1e0c('0x14')]);return _0x49947b(_0x3a11a8[_0x1e0c('0x12')][_0x1e0c('0x14')]);}logger[_0x1e0c('0x12')](_0x1e0c('0xe'),_0x128fd0,_0x3a11a8[_0x1e0c('0x12')][_0x1e0c('0x14')]);return _0x2c955e(_0x3a11a8[_0x1e0c('0x12')]['message']);}else{logger[_0x1e0c('0xd')]('SmsTransferReport,\x20%s,\x20%s',_0x128fd0,_0x1e0c('0x10'));_0x2c955e(_0x3a11a8[_0x1e0c('0x15')][_0x1e0c('0x14')]);}})[_0x1e0c('0x16')](function(_0x51d057){logger['error']('SmsTransferReport,\x20%s,\x20%s',_0x128fd0,_0x51d057);_0x49947b(_0x51d057);});});}
\ No newline at end of file
+var _0x06ae=['error','code','SmsTransferReport,\x20%s,\x20%s','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','request','info','request\x20sent','stringify'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x06ae,0x16e));var _0xe06a=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x06ae[_0xa464c9];return _0x3d73c4;};'use strict';var _=require('lodash');var util=require(_0xe06a('0x0'));var moment=require(_0xe06a('0x1'));var BPromise=require(_0xe06a('0x2'));var rs=require(_0xe06a('0x3'));var fs=require('fs');var Redis=require(_0xe06a('0x4'));var db=require(_0xe06a('0x5'))['db'];var utils=require(_0xe06a('0x6'));var logger=require(_0xe06a('0x7'))(_0xe06a('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xe06a('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x745f79,_0x20bd8a,_0x3dfa60){return new BPromise(function(_0x1ea66c,_0x563322){return client[_0xe06a('0xa')](_0x745f79,_0x3dfa60)['then'](function(_0x586e05){logger[_0xe06a('0xb')]('SmsTransferReport,\x20%s,\x20%s',_0x20bd8a,_0xe06a('0xc'));logger['debug']('SmsTransferReport,\x20%s,\x20%s,\x20%s',_0x20bd8a,_0xe06a('0xc'),JSON[_0xe06a('0xd')](_0x586e05));if(_0x586e05['error']){if(_0x586e05[_0xe06a('0xe')][_0xe06a('0xf')]===0x1f4){logger['error'](_0xe06a('0x10'),_0x20bd8a,_0x586e05[_0xe06a('0xe')][_0xe06a('0x11')]);return _0x563322(_0x586e05['error'][_0xe06a('0x11')]);}logger[_0xe06a('0xe')](_0xe06a('0x10'),_0x20bd8a,_0x586e05[_0xe06a('0xe')][_0xe06a('0x11')]);return _0x1ea66c(_0x586e05['error'][_0xe06a('0x11')]);}else{logger[_0xe06a('0xb')](_0xe06a('0x10'),_0x20bd8a,_0xe06a('0xc'));_0x1ea66c(_0x586e05[_0xe06a('0x12')][_0xe06a('0x11')]);}})['catch'](function(_0xa9b1af){logger['error']('SmsTransferReport,\x20%s,\x20%s',_0x20bd8a,_0xa9b1af);_0x563322(_0xa9b1af);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc36d=['multer','util','path','connect-timeout','express','Router','../../components/interaction/service','get','isAuthenticated','show','/:id/download','diskStorage','root','server/files/sounds/original/','originalname','%s-%s%s','extname','now','post','single','file','create','/:id','update','exports'];(function(_0x5d41de,_0x3e8b1b){var _0x536e20=function(_0x581c69){while(--_0x581c69){_0x5d41de['push'](_0x5d41de['shift']());}};_0x536e20(++_0x3e8b1b);}(_0xc36d,0xaf));var _0xdc36=function(_0x43fda2,_0x1c5662){_0x43fda2=_0x43fda2-0x0;var _0xa492a2=_0xc36d[_0x43fda2];return _0xa492a2;};'use strict';var multer=require(_0xdc36('0x0'));var util=require(_0xdc36('0x1'));var path=require(_0xdc36('0x2'));var timeout=require(_0xdc36('0x3'));var express=require(_0xdc36('0x4'));var router=express[_0xdc36('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0xdc36('0x6'));var config=require('../../config/environment');var controller=require('./sound.controller');router[_0xdc36('0x7')]('/',auth[_0xdc36('0x8')](),controller['index']);router[_0xdc36('0x7')]('/:id',auth[_0xdc36('0x8')](),controller[_0xdc36('0x9')]);router['get'](_0xdc36('0xa'),auth['isAuthenticated'](),controller['download']);var upload=multer({'storage':multer[_0xdc36('0xb')]({'destination':function(_0x2aa171,_0x541c9d,_0x20bf2c){_0x20bf2c(null,path['join'](config[_0xdc36('0xc')],_0xdc36('0xd')));},'filename':function(_0x15a12e,_0x575172,_0x590067){_0x575172[_0xdc36('0xe')]=_0x575172[_0xdc36('0xe')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x590067(null,util['format'](_0xdc36('0xf'),path['basename'](_0x575172[_0xdc36('0xe')],path[_0xdc36('0x10')](_0x575172['originalname'])),Date[_0xdc36('0x11')](),path[_0xdc36('0x10')](_0x575172[_0xdc36('0xe')])));}})});router[_0xdc36('0x12')]('/',upload[_0xdc36('0x13')](_0xdc36('0x14')),controller[_0xdc36('0x15')]);router['put'](_0xdc36('0x16'),auth[_0xdc36('0x8')](),controller[_0xdc36('0x17')]);router['delete']('/:id',auth[_0xdc36('0x8')](),controller['delete']);module[_0xdc36('0x18')]=router;
\ No newline at end of file
+var _0x787e=['/:id/download','download','diskStorage','root','originalname','replace','format','%s-%s%s','basename','extname','post','single','file','create','update','delete','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get','index','/:id','isAuthenticated'];(function(_0x5b4077,_0x1534f3){var _0x49ca17=function(_0x3cd98d){while(--_0x3cd98d){_0x5b4077['push'](_0x5b4077['shift']());}};_0x49ca17(++_0x1534f3);}(_0x787e,0x15b));var _0xe787=function(_0x16fc8c,_0x5bb88c){_0x16fc8c=_0x16fc8c-0x0;var _0x2c5d49=_0x787e[_0x16fc8c];return _0x2c5d49;};'use strict';var multer=require(_0xe787('0x0'));var util=require('util');var path=require(_0xe787('0x1'));var timeout=require(_0xe787('0x2'));var express=require(_0xe787('0x3'));var router=express[_0xe787('0x4')]();var auth=require(_0xe787('0x5'));var interaction=require(_0xe787('0x6'));var config=require(_0xe787('0x7'));var controller=require(_0xe787('0x8'));router[_0xe787('0x9')]('/',auth['isAuthenticated'](),controller[_0xe787('0xa')]);router[_0xe787('0x9')](_0xe787('0xb'),auth[_0xe787('0xc')](),controller['show']);router['get'](_0xe787('0xd'),auth[_0xe787('0xc')](),controller[_0xe787('0xe')]);var upload=multer({'storage':multer[_0xe787('0xf')]({'destination':function(_0x4cd009,_0x533064,_0x50070f){_0x50070f(null,path['join'](config[_0xe787('0x10')],'server/files/sounds/original/'));},'filename':function(_0x31832d,_0x94a1b8,_0x19d9ba){_0x94a1b8[_0xe787('0x11')]=_0x94a1b8['originalname'][_0xe787('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x19d9ba(null,util[_0xe787('0x13')](_0xe787('0x14'),path[_0xe787('0x15')](_0x94a1b8[_0xe787('0x11')],path[_0xe787('0x16')](_0x94a1b8[_0xe787('0x11')])),Date['now'](),path[_0xe787('0x16')](_0x94a1b8['originalname'])));}})});router[_0xe787('0x17')]('/',upload[_0xe787('0x18')](_0xe787('0x19')),controller[_0xe787('0x1a')]);router['put'](_0xe787('0xb'),auth[_0xe787('0xc')](),controller[_0xe787('0x1b')]);router[_0xe787('0x1c')](_0xe787('0xb'),auth['isAuthenticated'](),controller['delete']);module[_0xe787('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fd0=['name','BIGINT','INTEGER','sequelize','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5fd0,0x81));var _0x05fd=function(_0x17d18e,_0x2f7832){_0x17d18e=_0x17d18e-0x0;var _0x3894bb=_0x5fd0[_0x17d18e];return _0x3894bb;};'use strict';var Sequelize=require(_0x05fd('0x0'));module[_0x05fd('0x1')]={'name':{'type':Sequelize[_0x05fd('0x2')],'unique':_0x05fd('0x3'),'allowNull':![]},'save_name':{'type':Sequelize[_0x05fd('0x2')]},'display_name':{'type':Sequelize[_0x05fd('0x2')],'defaultValue':''},'description':{'type':Sequelize['STRING']},'original_format':{'type':Sequelize[_0x05fd('0x2')]},'original_duration':{'type':Sequelize['FLOAT']},'original_sampleCount':{'type':Sequelize[_0x05fd('0x4')]},'original_channelCount':{'type':Sequelize['INTEGER']},'original_bitRate':{'type':Sequelize[_0x05fd('0x4')]},'original_sampleRate':{'type':Sequelize[_0x05fd('0x5')]},'converted_format':{'type':Sequelize[_0x05fd('0x2')]},'converted_duration':{'type':Sequelize['FLOAT']},'converted_sampleCount':{'type':Sequelize['BIGINT']},'converted_channelCount':{'type':Sequelize[_0x05fd('0x5')]},'converted_bitRate':{'type':Sequelize[_0x05fd('0x4')]},'converted_sampleRate':{'type':Sequelize[_0x05fd('0x5')]}};
\ No newline at end of file
+var _0x598a=['exports','STRING','FLOAT','BIGINT','INTEGER'];(function(_0x2d4065,_0x38dc95){var _0xef6016=function(_0x195cee){while(--_0x195cee){_0x2d4065['push'](_0x2d4065['shift']());}};_0xef6016(++_0x38dc95);}(_0x598a,0x122));var _0xa598=function(_0x3b55eb,_0x1557c2){_0x3b55eb=_0x3b55eb-0x0;var _0xd0dc65=_0x598a[_0x3b55eb];return _0xd0dc65;};'use strict';var Sequelize=require('sequelize');module[_0xa598('0x0')]={'name':{'type':Sequelize[_0xa598('0x1')],'unique':'name','allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0xa598('0x1')],'defaultValue':''},'description':{'type':Sequelize[_0xa598('0x1')]},'original_format':{'type':Sequelize['STRING']},'original_duration':{'type':Sequelize[_0xa598('0x2')]},'original_sampleCount':{'type':Sequelize[_0xa598('0x3')]},'original_channelCount':{'type':Sequelize[_0xa598('0x4')]},'original_bitRate':{'type':Sequelize['BIGINT']},'original_sampleRate':{'type':Sequelize[_0xa598('0x4')]},'converted_format':{'type':Sequelize[_0xa598('0x1')]},'converted_duration':{'type':Sequelize[_0xa598('0x2')]},'converted_sampleCount':{'type':Sequelize['BIGINT']},'converted_channelCount':{'type':Sequelize['INTEGER']},'converted_bitRate':{'type':Sequelize[_0xa598('0x3')]},'converted_sampleRate':{'type':Sequelize[_0xa598('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27a0=['count','offset','Content-Range','reject','update','destroy','then','error','name','send','Sound','model','query','dateStart','dateEnd','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','day','merge','map','filter','options','includeAll','findAll','rows','show','rawAttributes','include','find','catch','params','save_name','existsSync','join','converted_format','ValidationError','server/files/sounds/converted','format','%s.%s','basename','file','originalname','extname','filename','substring','wav','root','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','transcode','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','chmodSync','0777','create','start','body','description','delete','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json'];(function(_0x3fe6df,_0x5a04d4){var _0x372a0e=function(_0x144b98){while(--_0x144b98){_0x3fe6df['push'](_0x3fe6df['shift']());}};_0x372a0e(++_0x5a04d4);}(_0x27a0,0xbf));var _0x027a=function(_0x28b400,_0x33c63b){_0x28b400=_0x28b400-0x0;var _0x4ec0e3=_0x27a0[_0x28b400];return _0x4ec0e3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x027a('0x0'));var rimraf=require(_0x027a('0x1'));var zipdir=require(_0x027a('0x2'));var jsonpatch=require(_0x027a('0x3'));var rp=require(_0x027a('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x027a('0x5'));var sox=require(_0x027a('0x6'));var csv=require(_0x027a('0x7'));var ejs=require(_0x027a('0x8'));var fs=require('fs');var _=require(_0x027a('0x9'));var squel=require(_0x027a('0xa'));var crypto=require('crypto');var jsforce=require(_0x027a('0xb'));var deskjs=require(_0x027a('0xc'));var toCsv=require(_0x027a('0x7'));var querystring=require('querystring');var Papa=require(_0x027a('0xd'));var qs=require(_0x027a('0xe'));var logger=require(_0x027a('0xf'))('api');var utils=require(_0x027a('0x10'));var config=require(_0x027a('0x11'));var db=require(_0x027a('0x12'))['db'];function respondWithStatusCode(_0x2ca4f0,_0x172eb4){_0x172eb4=_0x172eb4||0xcc;return function(_0x267afc){if(_0x267afc){return _0x2ca4f0[_0x027a('0x13')](_0x172eb4);}return _0x2ca4f0[_0x027a('0x14')](_0x172eb4)[_0x027a('0x15')]();};}function respondWithResult(_0x3e0c1e,_0x96a5c3){_0x96a5c3=_0x96a5c3||0xc8;return function(_0x52f5de){if(_0x52f5de){return _0x3e0c1e[_0x027a('0x14')](_0x96a5c3)[_0x027a('0x16')](_0x52f5de);}};}function respondWithFilteredResult(_0x2d27f8,_0x21da53){return function(_0x40fec0){if(_0x40fec0){var _0x5be540=_0x40fec0[_0x027a('0x17')],_0x5b6165=_0x21da53['offset'],_0x1d680d=_0x21da53[_0x027a('0x18')]+_0x21da53['limit'],_0x5cfc6d;if(_0x1d680d>=_0x5be540){_0x1d680d=_0x5be540;_0x5cfc6d=0xc8;}else{_0x5cfc6d=0xce;}_0x2d27f8['status'](_0x5cfc6d);return _0x2d27f8['set'](_0x027a('0x19'),_0x5b6165+'-'+_0x1d680d+'/'+_0x5be540)[_0x027a('0x16')](_0x40fec0);}return null;};}function patchUpdates(_0x826d19){return function(_0x1fb40b){try{jsonpatch['apply'](_0x1fb40b,_0x826d19,!![]);}catch(_0x282e70){return BPromise[_0x027a('0x1a')](_0x282e70);}return _0x1fb40b['save']();};}function saveUpdates(_0x4f8c3d,_0x3a6868){return function(_0x57cf67){if(_0x57cf67){return _0x57cf67[_0x027a('0x1b')](_0x4f8c3d)['then'](function(_0x59511c){return _0x59511c;});}return null;};}function removeEntity(_0x58b129,_0x4b4f90){return function(_0x18efe7){if(_0x18efe7){return _0x18efe7[_0x027a('0x1c')]()[_0x027a('0x1d')](function(){_0x58b129[_0x027a('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2fb1d0,_0x119a5c){return function(_0x20e2da){if(!_0x20e2da){_0x2fb1d0[_0x027a('0x13')](0x194);}return _0x20e2da;};}function handleError(_0x178ed8,_0x3bbd46){_0x3bbd46=_0x3bbd46||0x1f4;return function(_0x595f0e){logger[_0x027a('0x1e')](_0x595f0e['stack']);if(_0x595f0e[_0x027a('0x1f')]){delete _0x595f0e[_0x027a('0x1f')];}_0x178ed8[_0x027a('0x14')](_0x3bbd46)[_0x027a('0x20')](_0x595f0e);};}exports['index']=function(_0x559381,_0x18458f){var _0xcc7562={},_0x338141={},_0x129d5f={'count':0x0,'rows':[]};var _0x511c7a=db[_0x027a('0x21')]['rawAttributes'];_0x338141[_0x027a('0x22')]=_['keys'](_0x511c7a);var _0x2be389={'dateStart':_0x559381['query']['dateStart'],'dateEnd':_0x559381[_0x027a('0x23')]['dateEnd']};delete _0x559381['query'][_0x027a('0x24')];delete _0x559381['query'][_0x027a('0x25')];_0x338141['query']=_[_0x027a('0x26')](_0x559381[_0x027a('0x23')]);_0x338141['filters']=_[_0x027a('0x27')](_0x338141['model'],_0x338141[_0x027a('0x23')]);_0xcc7562[_0x027a('0x28')]=_[_0x027a('0x27')](_0x338141[_0x027a('0x22')],qs[_0x027a('0x29')](_0x559381[_0x027a('0x23')]['fields']));_0xcc7562[_0x027a('0x28')]=_0xcc7562['attributes'][_0x027a('0x2a')]?_0xcc7562['attributes']:_0x338141[_0x027a('0x22')];if(!_0x559381[_0x027a('0x23')][_0x027a('0x2b')](_0x027a('0x2c'))){_0xcc7562[_0x027a('0x2d')]=qs['limit'](_0x559381[_0x027a('0x23')][_0x027a('0x2d')]);_0xcc7562[_0x027a('0x18')]=qs[_0x027a('0x18')](_0x559381[_0x027a('0x23')][_0x027a('0x18')]);}_0xcc7562[_0x027a('0x2e')]=qs[_0x027a('0x2f')](_0x559381[_0x027a('0x23')][_0x027a('0x2f')]);_0xcc7562[_0x027a('0x30')]=qs['filters'](_[_0x027a('0x31')](_0x559381[_0x027a('0x23')],_0x338141[_0x027a('0x32')]));if(_0x2be389[_0x027a('0x24')]){if(_0x2be389[_0x027a('0x25')]){_0x2be389[_0x027a('0x25')]=moment(_0x2be389[_0x027a('0x25')])['add'](0x1,_0x027a('0x33'));}else{_0x2be389[_0x027a('0x25')]=moment(_0x2be389[_0x027a('0x24')])['add'](0x1,_0x027a('0x33'));}_['merge'](_0xcc7562[_0x027a('0x30')],{'createdAt':{'$gte':_0x2be389[_0x027a('0x24')],'$lte':_0x2be389[_0x027a('0x25')]}});}if(_0x559381['query']['filter']){_0xcc7562[_0x027a('0x30')]=_[_0x027a('0x34')](_0xcc7562['where'],{'$or':_[_0x027a('0x35')](_0xcc7562[_0x027a('0x28')],function(_0x3094f8){var _0x1b173e={};_0x1b173e[_0x3094f8]={'$like':'%'+_0x559381[_0x027a('0x23')][_0x027a('0x36')]+'%'};return _0x1b173e;})});}_0xcc7562=_[_0x027a('0x34')]({},_0xcc7562,_0x559381[_0x027a('0x37')]);var _0x19fc25={'where':_0xcc7562[_0x027a('0x30')]};return db[_0x027a('0x21')][_0x027a('0x17')](_0x19fc25)[_0x027a('0x1d')](function(_0x163783){_0x129d5f[_0x027a('0x17')]=_0x163783;if(_0x559381[_0x027a('0x23')][_0x027a('0x38')]){_0xcc7562['include']=[{'all':!![]}];}return db[_0x027a('0x21')][_0x027a('0x39')](_0xcc7562);})[_0x027a('0x1d')](function(_0x38733a){_0x129d5f[_0x027a('0x3a')]=_0x38733a;return _0x129d5f;})[_0x027a('0x1d')](respondWithFilteredResult(_0x18458f,_0xcc7562))['catch'](handleError(_0x18458f,null));};exports[_0x027a('0x3b')]=function(_0x3d0bb1,_0x563676){var _0x45eedc={'raw':!![],'where':{'id':_0x3d0bb1['params']['id']}},_0x5a5d5a={};_0x5a5d5a[_0x027a('0x22')]=_['keys'](db[_0x027a('0x21')][_0x027a('0x3c')]);_0x5a5d5a[_0x027a('0x23')]=_[_0x027a('0x26')](_0x3d0bb1[_0x027a('0x23')]);_0x5a5d5a['filters']=_[_0x027a('0x27')](_0x5a5d5a[_0x027a('0x22')],_0x5a5d5a[_0x027a('0x23')]);_0x45eedc['attributes']=_['intersection'](_0x5a5d5a['model'],qs['fields'](_0x3d0bb1[_0x027a('0x23')][_0x027a('0x29')]));_0x45eedc[_0x027a('0x28')]=_0x45eedc[_0x027a('0x28')][_0x027a('0x2a')]?_0x45eedc[_0x027a('0x28')]:_0x5a5d5a['model'];if(_0x3d0bb1['query'][_0x027a('0x38')]){_0x45eedc[_0x027a('0x3d')]=[{'all':!![]}];}_0x45eedc=_[_0x027a('0x34')]({},_0x45eedc,_0x3d0bb1[_0x027a('0x37')]);return db[_0x027a('0x21')][_0x027a('0x3e')](_0x45eedc)[_0x027a('0x1d')](handleEntityNotFound(_0x563676,null))[_0x027a('0x1d')](respondWithResult(_0x563676,null))[_0x027a('0x3f')](handleError(_0x563676,null));};exports['download']=function(_0xe9e0a8,_0x2904b1,_0x37be38){return db[_0x027a('0x21')][_0x027a('0x3e')]({'where':{'id':_0xe9e0a8[_0x027a('0x40')]['id']},'attributes':[_0x027a('0x1f'),_0x027a('0x41'),'converted_format'],'raw':!![]})[_0x027a('0x1d')](handleEntityNotFound(_0x2904b1,null))[_0x027a('0x1d')](function(_0x556b2b){if(_0x556b2b){if(!fs[_0x027a('0x42')](path[_0x027a('0x43')](config['root'],'server/files/sounds/converted',_0x556b2b['save_name']+'.'+_0x556b2b[_0x027a('0x44')]))){throw new db['Sequelize'][(_0x027a('0x45'))]('Sound\x20not\x20found');}return _0x2904b1['download'](path['join'](config['root'],_0x027a('0x46'),util[_0x027a('0x47')]('%s.%s',_0x556b2b['save_name'],_0x556b2b[_0x027a('0x44')])),util[_0x027a('0x47')](_0x027a('0x48'),_0x556b2b[_0x027a('0x1f')],_0x556b2b['converted_format']));}return null;})[_0x027a('0x3f')](handleError(_0x2904b1,null));};exports['create']=function(_0x1a34e4,_0x290661,_0x2da742){var _0x30bfb9={'name':path[_0x027a('0x49')](_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4b')],path[_0x027a('0x4c')](_0x1a34e4['file'][_0x027a('0x4b')])),'save_name':path[_0x027a('0x49')](_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4d')],path[_0x027a('0x4c')](_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4d')])),'original_format':path['extname'](_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4b')])[_0x027a('0x4e')](0x1),'converted_format':_0x027a('0x4f')};var _0x2f870d=path[_0x027a('0x43')](config[_0x027a('0x50')],_0x027a('0x51'),_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4d')]);var _0x3da285=path[_0x027a('0x43')](config[_0x027a('0x50')],_0x027a('0x46'),util[_0x027a('0x47')]('%s.%s',path[_0x027a('0x49')](_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4d')],path[_0x027a('0x4c')](_0x1a34e4[_0x027a('0x4a')][_0x027a('0x4d')])),_0x30bfb9[_0x027a('0x44')]));logger[_0x027a('0x52')](_0x027a('0x53'),_0x2f870d);logger['info']('Sound\x20upload\x20destination:\x20%s',_0x3da285);try{fs['chmodSync'](_0x2f870d,parseInt('0777',0x8));var _0x12085b=sox[_0x027a('0x54')](_0x2f870d,_0x3da285,{'sampleRate':0x1f40,'format':_0x027a('0x4f'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x12085b['on'](_0x027a('0x1e'),function(_0x16c089){fs['unlinkSync'](_0x2f870d);_0x290661['status'](0x1f4)[_0x027a('0x20')](_0x16c089);});_0x12085b['on']('src',function(_0x517a9d){_0x30bfb9[_0x027a('0x55')]=isNaN(_0x517a9d[_0x027a('0x56')])?null:_0x517a9d[_0x027a('0x56')]*0x3e8;_0x30bfb9[_0x027a('0x57')]=isNaN(_0x517a9d[_0x027a('0x58')])?null:_0x517a9d[_0x027a('0x58')];_0x30bfb9[_0x027a('0x59')]=isNaN(_0x517a9d[_0x027a('0x5a')])?null:_0x517a9d[_0x027a('0x5a')];_0x30bfb9['original_bitRate']=isNaN(_0x517a9d[_0x027a('0x5b')])?null:_0x517a9d[_0x027a('0x5b')];_0x30bfb9[_0x027a('0x5c')]=isNaN(_0x517a9d[_0x027a('0x5d')])?null:_0x517a9d[_0x027a('0x5d')];});_0x12085b['on'](_0x027a('0x5e'),function(_0x2d145f){_0x30bfb9[_0x027a('0x5f')]=isNaN(_0x2d145f[_0x027a('0x56')])?null:_0x2d145f[_0x027a('0x56')]*0x3e8;_0x30bfb9[_0x027a('0x60')]=isNaN(_0x2d145f[_0x027a('0x58')])?null:_0x2d145f[_0x027a('0x58')];_0x30bfb9[_0x027a('0x61')]=isNaN(_0x2d145f['channelCount'])?null:_0x2d145f[_0x027a('0x5a')];_0x30bfb9[_0x027a('0x62')]=isNaN(_0x2d145f[_0x027a('0x5b')])?null:_0x2d145f[_0x027a('0x5b')];_0x30bfb9['converted_sampleRate']=isNaN(_0x2d145f['sampleRate'])?null:_0x2d145f[_0x027a('0x5d')];});_0x12085b['on'](_0x027a('0x15'),function(){fs[_0x027a('0x63')](_0x3da285,parseInt(_0x027a('0x64'),0x8));return db[_0x027a('0x21')][_0x027a('0x65')](_0x30bfb9)[_0x027a('0x1d')](respondWithResult(_0x290661,null))[_0x027a('0x3f')](handleError(_0x290661,null));});_0x12085b[_0x027a('0x66')]();}catch(_0x5d629d){_0x290661[_0x027a('0x14')](0x1f4)[_0x027a('0x20')](_0x5d629d);}};exports[_0x027a('0x1b')]=function(_0x572849,_0x136332,_0x272c5e){return db['Sound'][_0x027a('0x3e')]({'where':{'id':_0x572849[_0x027a('0x40')]['id']}})['then'](handleEntityNotFound(_0x136332,null))['then'](saveUpdates(_[_0x027a('0x31')](_0x572849[_0x027a('0x67')],[_0x027a('0x1f'),_0x027a('0x68')]),null))['then'](respondWithResult(_0x136332,null))[_0x027a('0x3f')](handleError(_0x136332,null));};exports[_0x027a('0x69')]=function(_0x146543,_0x57cce6,_0x308da5){return db['Sound'][_0x027a('0x3e')]({'where':{'id':_0x146543['params']['id']}})[_0x027a('0x1d')](function(_0x2c150b){if(_0x2c150b){return _0x2c150b[_0x027a('0x1c')]();}})[_0x027a('0x1d')](function(_0x49aff5){var _0x4f755b=path['join'](config['root'],'server/files/sounds/original',util['format']('%s.%s',_0x49aff5[_0x027a('0x41')],_0x49aff5['original_format']));var _0x33957b=path['join'](config[_0x027a('0x50')],'server/files/sounds/converted',util['format'](_0x027a('0x48'),_0x49aff5[_0x027a('0x41')],_0x49aff5[_0x027a('0x44')]));fs['unlinkSync'](_0x4f755b);fs[_0x027a('0x6a')](_0x33957b);return _0x49aff5;})['then'](function(_0x1398b7){if(_0x1398b7){return _0x57cce6[_0x027a('0x14')](0xcc)[_0x027a('0x15')]();}})['then'](handleEntityNotFound(_0x57cce6,null))[_0x027a('0x3f')](handleError(_0x57cce6,null));};
\ No newline at end of file
+var _0x63c6=['dateStart','dateEnd','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','then','includeAll','include','Sound','rows','catch','params','rawAttributes','download','find','save_name','existsSync','server/files/sounds/converted','converted_format','Sequelize','ValidationError','Sound\x20not\x20found','join','root','format','%s.%s','create','basename','originalname','extname','filename','substring','wav','server/files/sounds/original','file','info','0777','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','start','description','delete','destroy','original_format','html-pdf','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','save','update','end','error','stack','name','send','index','model','query'];(function(_0x13e741,_0x5d3c24){var _0x3f8bb3=function(_0x4440a0){while(--_0x4440a0){_0x13e741['push'](_0x13e741['shift']());}};_0x3f8bb3(++_0x5d3c24);}(_0x63c6,0xbb));var _0x663c=function(_0x168c49,_0x540aa3){_0x168c49=_0x168c49-0x0;var _0x49004b=_0x63c6[_0x168c49];return _0x49004b;};'use strict';var pdf=require(_0x663c('0x0'));var emlformat=require(_0x663c('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x663c('0x2'));var rp=require(_0x663c('0x3'));var moment=require(_0x663c('0x4'));var BPromise=require(_0x663c('0x5'));var Mustache=require(_0x663c('0x6'));var util=require(_0x663c('0x7'));var path=require(_0x663c('0x8'));var sox=require(_0x663c('0x9'));var csv=require(_0x663c('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x663c('0xb'));var squel=require(_0x663c('0xc'));var crypto=require(_0x663c('0xd'));var jsforce=require(_0x663c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x663c('0xa'));var querystring=require('querystring');var Papa=require(_0x663c('0xf'));var Redis=require('ioredis');var qs=require(_0x663c('0x10'));var logger=require(_0x663c('0x11'))(_0x663c('0x12'));var utils=require(_0x663c('0x13'));var config=require(_0x663c('0x14'));var db=require(_0x663c('0x15'))['db'];function respondWithStatusCode(_0x15a914,_0x5ef5d8){_0x5ef5d8=_0x5ef5d8||0xcc;return function(_0x5453f7){if(_0x5453f7){return _0x15a914[_0x663c('0x16')](_0x5ef5d8);}return _0x15a914[_0x663c('0x17')](_0x5ef5d8)['end']();};}function respondWithResult(_0x20038d,_0x1ae7de){_0x1ae7de=_0x1ae7de||0xc8;return function(_0xaa360a){if(_0xaa360a){return _0x20038d[_0x663c('0x17')](_0x1ae7de)['json'](_0xaa360a);}};}function respondWithFilteredResult(_0xa119a1,_0x165454){return function(_0x5688eb){if(_0x5688eb){var _0x20cf6e=_0x5688eb[_0x663c('0x18')],_0x523322=_0x165454[_0x663c('0x19')],_0x44ffaa=_0x165454[_0x663c('0x19')]+_0x165454[_0x663c('0x1a')],_0xb1e1bf;if(_0x44ffaa>=_0x20cf6e){_0x44ffaa=_0x20cf6e;_0xb1e1bf=0xc8;}else{_0xb1e1bf=0xce;}_0xa119a1[_0x663c('0x17')](_0xb1e1bf);return _0xa119a1[_0x663c('0x1b')](_0x663c('0x1c'),_0x523322+'-'+_0x44ffaa+'/'+_0x20cf6e)[_0x663c('0x1d')](_0x5688eb);}return null;};}function patchUpdates(_0x517f70){return function(_0x2fd707){try{jsonpatch[_0x663c('0x1e')](_0x2fd707,_0x517f70,!![]);}catch(_0x6e56fd){return BPromise['reject'](_0x6e56fd);}return _0x2fd707[_0x663c('0x1f')]();};}function saveUpdates(_0x469019,_0x2c0cb4){return function(_0x44c947){if(_0x44c947){return _0x44c947[_0x663c('0x20')](_0x469019)['then'](function(_0xcf6ced){return _0xcf6ced;});}return null;};}function removeEntity(_0x7c353a,_0x319224){return function(_0x42703e){if(_0x42703e){return _0x42703e['destroy']()['then'](function(){_0x7c353a[_0x663c('0x17')](0xcc)[_0x663c('0x21')]();});}};}function handleEntityNotFound(_0x2f2bf0,_0x294004){return function(_0x352a21){if(!_0x352a21){_0x2f2bf0['sendStatus'](0x194);}return _0x352a21;};}function handleError(_0x4984dc,_0x4b7213){_0x4b7213=_0x4b7213||0x1f4;return function(_0x2587a5){logger[_0x663c('0x22')](_0x2587a5[_0x663c('0x23')]);if(_0x2587a5[_0x663c('0x24')]){delete _0x2587a5['name'];}_0x4984dc[_0x663c('0x17')](_0x4b7213)[_0x663c('0x25')](_0x2587a5);};}exports[_0x663c('0x26')]=function(_0x20ca5,_0x3581a3){var _0x5a56cd={},_0x34fc73={},_0x594a49={'count':0x0,'rows':[]};var _0x5ae88d=db['Sound']['rawAttributes'];_0x34fc73[_0x663c('0x27')]=_['keys'](_0x5ae88d);var _0x16f30b={'dateStart':_0x20ca5[_0x663c('0x28')][_0x663c('0x29')],'dateEnd':_0x20ca5[_0x663c('0x28')][_0x663c('0x2a')]};delete _0x20ca5[_0x663c('0x28')][_0x663c('0x29')];delete _0x20ca5['query'][_0x663c('0x2a')];_0x34fc73[_0x663c('0x28')]=_[_0x663c('0x2b')](_0x20ca5[_0x663c('0x28')]);_0x34fc73[_0x663c('0x2c')]=_[_0x663c('0x2d')](_0x34fc73['model'],_0x34fc73[_0x663c('0x28')]);_0x5a56cd['attributes']=_[_0x663c('0x2d')](_0x34fc73['model'],qs['fields'](_0x20ca5['query'][_0x663c('0x2e')]));_0x5a56cd[_0x663c('0x2f')]=_0x5a56cd['attributes'][_0x663c('0x30')]?_0x5a56cd[_0x663c('0x2f')]:_0x34fc73['model'];if(!_0x20ca5[_0x663c('0x28')][_0x663c('0x31')](_0x663c('0x32'))){_0x5a56cd[_0x663c('0x1a')]=qs[_0x663c('0x1a')](_0x20ca5['query'][_0x663c('0x1a')]);_0x5a56cd[_0x663c('0x19')]=qs[_0x663c('0x19')](_0x20ca5['query'][_0x663c('0x19')]);}_0x5a56cd[_0x663c('0x33')]=qs[_0x663c('0x34')](_0x20ca5[_0x663c('0x28')]['sort']);_0x5a56cd[_0x663c('0x35')]=qs[_0x663c('0x2c')](_[_0x663c('0x36')](_0x20ca5[_0x663c('0x28')],_0x34fc73['filters']));if(_0x16f30b['dateStart']){if(_0x16f30b[_0x663c('0x2a')]){_0x16f30b[_0x663c('0x2a')]=moment(_0x16f30b['dateEnd'])[_0x663c('0x37')](0x1,_0x663c('0x38'));}else{_0x16f30b[_0x663c('0x2a')]=moment(_0x16f30b[_0x663c('0x29')])['add'](0x1,_0x663c('0x38'));}_[_0x663c('0x39')](_0x5a56cd['where'],{'createdAt':{'$gte':_0x16f30b['dateStart'],'$lte':_0x16f30b[_0x663c('0x2a')]}});}if(_0x20ca5[_0x663c('0x28')][_0x663c('0x3a')]){_0x5a56cd['where']=_[_0x663c('0x39')](_0x5a56cd['where'],{'$or':_[_0x663c('0x3b')](_0x5a56cd['attributes'],function(_0x130354){var _0x296125={};_0x296125[_0x130354]={'$like':'%'+_0x20ca5[_0x663c('0x28')]['filter']+'%'};return _0x296125;})});}_0x5a56cd=_[_0x663c('0x39')]({},_0x5a56cd,_0x20ca5[_0x663c('0x3c')]);var _0x2ea676={'where':_0x5a56cd[_0x663c('0x35')]};return db['Sound'][_0x663c('0x18')](_0x2ea676)[_0x663c('0x3d')](function(_0x1c5364){_0x594a49[_0x663c('0x18')]=_0x1c5364;if(_0x20ca5['query'][_0x663c('0x3e')]){_0x5a56cd[_0x663c('0x3f')]=[{'all':!![]}];}return db[_0x663c('0x40')]['findAll'](_0x5a56cd);})[_0x663c('0x3d')](function(_0x21c357){_0x594a49[_0x663c('0x41')]=_0x21c357;return _0x594a49;})['then'](respondWithFilteredResult(_0x3581a3,_0x5a56cd))[_0x663c('0x42')](handleError(_0x3581a3,null));};exports['show']=function(_0x367aa7,_0x563c31){var _0x3ca848={'raw':!![],'where':{'id':_0x367aa7[_0x663c('0x43')]['id']}},_0x443842={};_0x443842['model']=_[_0x663c('0x2b')](db[_0x663c('0x40')][_0x663c('0x44')]);_0x443842['query']=_[_0x663c('0x2b')](_0x367aa7['query']);_0x443842[_0x663c('0x2c')]=_[_0x663c('0x2d')](_0x443842[_0x663c('0x27')],_0x443842['query']);_0x3ca848[_0x663c('0x2f')]=_[_0x663c('0x2d')](_0x443842[_0x663c('0x27')],qs[_0x663c('0x2e')](_0x367aa7[_0x663c('0x28')][_0x663c('0x2e')]));_0x3ca848[_0x663c('0x2f')]=_0x3ca848[_0x663c('0x2f')][_0x663c('0x30')]?_0x3ca848['attributes']:_0x443842[_0x663c('0x27')];if(_0x367aa7[_0x663c('0x28')][_0x663c('0x3e')]){_0x3ca848[_0x663c('0x3f')]=[{'all':!![]}];}_0x3ca848=_[_0x663c('0x39')]({},_0x3ca848,_0x367aa7[_0x663c('0x3c')]);return db[_0x663c('0x40')]['find'](_0x3ca848)[_0x663c('0x3d')](handleEntityNotFound(_0x563c31,null))[_0x663c('0x3d')](respondWithResult(_0x563c31,null))[_0x663c('0x42')](handleError(_0x563c31,null));};exports[_0x663c('0x45')]=function(_0x417031,_0x3b7038,_0x5626fd){return db[_0x663c('0x40')][_0x663c('0x46')]({'where':{'id':_0x417031[_0x663c('0x43')]['id']},'attributes':['name',_0x663c('0x47'),'converted_format'],'raw':!![]})[_0x663c('0x3d')](handleEntityNotFound(_0x3b7038,null))[_0x663c('0x3d')](function(_0x244288){if(_0x244288){if(!fs[_0x663c('0x48')](path['join'](config['root'],_0x663c('0x49'),_0x244288[_0x663c('0x47')]+'.'+_0x244288[_0x663c('0x4a')]))){throw new db[(_0x663c('0x4b'))][(_0x663c('0x4c'))](_0x663c('0x4d'));}return _0x3b7038[_0x663c('0x45')](path[_0x663c('0x4e')](config[_0x663c('0x4f')],_0x663c('0x49'),util[_0x663c('0x50')](_0x663c('0x51'),_0x244288['save_name'],_0x244288['converted_format'])),util[_0x663c('0x50')](_0x663c('0x51'),_0x244288['name'],_0x244288[_0x663c('0x4a')]));}return null;})[_0x663c('0x42')](handleError(_0x3b7038,null));};exports[_0x663c('0x52')]=function(_0x5ddd18,_0x48d7d3,_0x5def2f){var _0x4d26e5={'name':path[_0x663c('0x53')](_0x5ddd18['file'][_0x663c('0x54')],path[_0x663c('0x55')](_0x5ddd18['file'][_0x663c('0x54')])),'save_name':path[_0x663c('0x53')](_0x5ddd18['file']['filename'],path[_0x663c('0x55')](_0x5ddd18['file'][_0x663c('0x56')])),'original_format':path[_0x663c('0x55')](_0x5ddd18['file'][_0x663c('0x54')])[_0x663c('0x57')](0x1),'converted_format':_0x663c('0x58')};var _0x288198=path[_0x663c('0x4e')](config[_0x663c('0x4f')],_0x663c('0x59'),_0x5ddd18[_0x663c('0x5a')][_0x663c('0x56')]);var _0x387261=path[_0x663c('0x4e')](config[_0x663c('0x4f')],_0x663c('0x49'),util[_0x663c('0x50')]('%s.%s',path['basename'](_0x5ddd18[_0x663c('0x5a')][_0x663c('0x56')],path['extname'](_0x5ddd18[_0x663c('0x5a')][_0x663c('0x56')])),_0x4d26e5[_0x663c('0x4a')]));logger[_0x663c('0x5b')]('Sound\x20upload\x20filepath:\x20%s',_0x288198);logger[_0x663c('0x5b')]('Sound\x20upload\x20destination:\x20%s',_0x387261);try{fs['chmodSync'](_0x288198,parseInt(_0x663c('0x5c'),0x8));var _0x37014b=sox[_0x663c('0x5d')](_0x288198,_0x387261,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x37014b['on'](_0x663c('0x22'),function(_0x4050c5){fs[_0x663c('0x5e')](_0x288198);_0x48d7d3[_0x663c('0x17')](0x1f4)[_0x663c('0x25')](_0x4050c5);});_0x37014b['on'](_0x663c('0x5f'),function(_0x306243){_0x4d26e5[_0x663c('0x60')]=isNaN(_0x306243[_0x663c('0x61')])?null:_0x306243[_0x663c('0x61')]*0x3e8;_0x4d26e5[_0x663c('0x62')]=isNaN(_0x306243['sampleCount'])?null:_0x306243[_0x663c('0x63')];_0x4d26e5[_0x663c('0x64')]=isNaN(_0x306243[_0x663c('0x65')])?null:_0x306243[_0x663c('0x65')];_0x4d26e5[_0x663c('0x66')]=isNaN(_0x306243['bitRate'])?null:_0x306243[_0x663c('0x67')];_0x4d26e5['original_sampleRate']=isNaN(_0x306243['sampleRate'])?null:_0x306243[_0x663c('0x68')];});_0x37014b['on']('dest',function(_0x4bb812){_0x4d26e5[_0x663c('0x69')]=isNaN(_0x4bb812[_0x663c('0x61')])?null:_0x4bb812['duration']*0x3e8;_0x4d26e5[_0x663c('0x6a')]=isNaN(_0x4bb812[_0x663c('0x63')])?null:_0x4bb812['sampleCount'];_0x4d26e5['converted_channelCount']=isNaN(_0x4bb812[_0x663c('0x65')])?null:_0x4bb812[_0x663c('0x65')];_0x4d26e5[_0x663c('0x6b')]=isNaN(_0x4bb812[_0x663c('0x67')])?null:_0x4bb812[_0x663c('0x67')];_0x4d26e5[_0x663c('0x6c')]=isNaN(_0x4bb812[_0x663c('0x68')])?null:_0x4bb812['sampleRate'];});_0x37014b['on'](_0x663c('0x21'),function(){fs['chmodSync'](_0x387261,parseInt(_0x663c('0x5c'),0x8));return db[_0x663c('0x40')][_0x663c('0x52')](_0x4d26e5)['then'](respondWithResult(_0x48d7d3,null))[_0x663c('0x42')](handleError(_0x48d7d3,null));});_0x37014b[_0x663c('0x6d')]();}catch(_0x2e8ca1){_0x48d7d3[_0x663c('0x17')](0x1f4)[_0x663c('0x25')](_0x2e8ca1);}};exports[_0x663c('0x20')]=function(_0x30a30b,_0x197866,_0x2bea07){return db[_0x663c('0x40')][_0x663c('0x46')]({'where':{'id':_0x30a30b[_0x663c('0x43')]['id']}})[_0x663c('0x3d')](handleEntityNotFound(_0x197866,null))[_0x663c('0x3d')](saveUpdates(_[_0x663c('0x36')](_0x30a30b['body'],[_0x663c('0x24'),_0x663c('0x6e')]),null))[_0x663c('0x3d')](respondWithResult(_0x197866,null))['catch'](handleError(_0x197866,null));};exports[_0x663c('0x6f')]=function(_0x5efd40,_0x45b626,_0x596a59){return db[_0x663c('0x40')]['find']({'where':{'id':_0x5efd40[_0x663c('0x43')]['id']}})[_0x663c('0x3d')](function(_0x15cb30){if(_0x15cb30){return _0x15cb30[_0x663c('0x70')]();}})[_0x663c('0x3d')](function(_0x3d9859){var _0x1d9caa=path[_0x663c('0x4e')](config[_0x663c('0x4f')],'server/files/sounds/original',util[_0x663c('0x50')]('%s.%s',_0x3d9859[_0x663c('0x47')],_0x3d9859[_0x663c('0x71')]));var _0xdb98e1=path['join'](config[_0x663c('0x4f')],_0x663c('0x49'),util['format'](_0x663c('0x51'),_0x3d9859[_0x663c('0x47')],_0x3d9859['converted_format']));fs[_0x663c('0x5e')](_0x1d9caa);fs[_0x663c('0x5e')](_0xdb98e1);return _0x3d9859;})[_0x663c('0x3d')](function(_0x258231){if(_0x258231){return _0x45b626[_0x663c('0x17')](0xcc)[_0x663c('0x21')]();}})[_0x663c('0x3d')](handleEntityNotFound(_0x45b626,null))[_0x663c('0x42')](handleError(_0x45b626,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a0c=['request-promise','exports','define','Sound','tools_sounds','lodash','util','../../config/logger','moment','bluebird'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4a0c,0xf5));var _0xc4a0=function(_0x123642,_0x2e975f){_0x123642=_0x123642-0x0;var _0x10a746=_0x4a0c[_0x123642];return _0x10a746;};'use strict';var _=require(_0xc4a0('0x0'));var util=require(_0xc4a0('0x1'));var logger=require(_0xc4a0('0x2'))('api');var moment=require(_0xc4a0('0x3'));var BPromise=require(_0xc4a0('0x4'));var rp=require(_0xc4a0('0x5'));var attributes=require('./sound.attributes');module[_0xc4a0('0x6')]=function(_0x4843e0,_0xd653a3){return _0x4843e0[_0xc4a0('0x7')](_0xc4a0('0x8'),attributes,{'tableName':_0xc4a0('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x899d=['bluebird','exports','define','Sound','tools_sounds','lodash','util','../../config/logger','api'];(function(_0x19159a,_0x1cb5c3){var _0xa677f4=function(_0x24bb85){while(--_0x24bb85){_0x19159a['push'](_0x19159a['shift']());}};_0xa677f4(++_0x1cb5c3);}(_0x899d,0x83));var _0xd899=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x899d[_0x53ccf2];return _0x5a2964;};'use strict';var _=require(_0xd899('0x0'));var util=require(_0xd899('0x1'));var logger=require(_0xd899('0x2'))(_0xd899('0x3'));var moment=require('moment');var BPromise=require(_0xd899('0x4'));var rp=require('request-promise');var attributes=require('./sound.attributes');module[_0xd899('0x5')]=function(_0x147d27,_0x1c7943){return _0x147d27[_0xd899('0x6')](_0xd899('0x7'),attributes,{'tableName':_0xd899('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a07=['info','Sound,\x20%s,\x20%s','debug','Sound,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','Sound','find','options','raw','where','attributes','include','map','model','ShowSound','stringify','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then'];(function(_0x50353b,_0x5eaefa){var _0x2a9db8=function(_0x29a2f5){while(--_0x29a2f5){_0x50353b['push'](_0x50353b['shift']());}};_0x2a9db8(++_0x5eaefa);}(_0x9a07,0x18b));var _0x79a0=function(_0x3d12b2,_0x5f103d){_0x3d12b2=_0x3d12b2-0x0;var _0x2f4e0e=_0x9a07[_0x3d12b2];return _0x2f4e0e;};'use strict';var _=require(_0x79a0('0x0'));var util=require(_0x79a0('0x1'));var moment=require(_0x79a0('0x2'));var BPromise=require(_0x79a0('0x3'));var rs=require(_0x79a0('0x4'));var fs=require('fs');var db=require(_0x79a0('0x5'))['db'];var utils=require(_0x79a0('0x6'));var logger=require('../../config/logger')(_0x79a0('0x7'));var config=require(_0x79a0('0x8'));var jayson=require(_0x79a0('0x9'));var client=jayson['client'][_0x79a0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x369f7e,_0x1de64a,_0x1f6980){return new BPromise(function(_0x24a3f7,_0xbab508){return client[_0x79a0('0xb')](_0x369f7e,_0x1f6980)[_0x79a0('0xc')](function(_0x5bbefd){logger[_0x79a0('0xd')](_0x79a0('0xe'),_0x1de64a,'request\x20sent');logger[_0x79a0('0xf')](_0x79a0('0x10'),_0x1de64a,_0x79a0('0x11'),JSON['stringify'](_0x5bbefd));if(_0x5bbefd[_0x79a0('0x12')]){if(_0x5bbefd[_0x79a0('0x12')][_0x79a0('0x13')]===0x1f4){logger[_0x79a0('0x12')](_0x79a0('0xe'),_0x1de64a,_0x5bbefd[_0x79a0('0x12')]['message']);return _0xbab508(_0x5bbefd[_0x79a0('0x12')]['message']);}logger[_0x79a0('0x12')](_0x79a0('0xe'),_0x1de64a,_0x5bbefd[_0x79a0('0x12')][_0x79a0('0x14')]);return _0x24a3f7(_0x5bbefd[_0x79a0('0x12')][_0x79a0('0x14')]);}else{logger['info'](_0x79a0('0xe'),_0x1de64a,_0x79a0('0x11'));_0x24a3f7(_0x5bbefd[_0x79a0('0x15')][_0x79a0('0x14')]);}})[_0x79a0('0x16')](function(_0x2a0143){logger[_0x79a0('0x12')](_0x79a0('0xe'),_0x1de64a,_0x2a0143);_0xbab508(_0x2a0143);});});}exports['ShowSound']=function(_0x691291){var _0x1b6796=this;return new Promise(function(_0x15c4a6,_0x517ab4){return db[_0x79a0('0x17')][_0x79a0('0x18')]({'raw':_0x691291[_0x79a0('0x19')]?_0x691291[_0x79a0('0x19')][_0x79a0('0x1a')]===undefined?!![]:![]:!![],'where':_0x691291[_0x79a0('0x19')]?_0x691291['options'][_0x79a0('0x1b')]||null:null,'attributes':_0x691291[_0x79a0('0x19')]?_0x691291['options'][_0x79a0('0x1c')]||null:null,'include':_0x691291['options']?_0x691291['options'][_0x79a0('0x1d')]?_[_0x79a0('0x1e')](_0x691291[_0x79a0('0x19')][_0x79a0('0x1d')],function(_0x5c51eb){return{'model':db[_0x5c51eb['model']],'as':_0x5c51eb['as'],'attributes':_0x5c51eb[_0x79a0('0x1c')],'include':_0x5c51eb[_0x79a0('0x1d')]?_['map'](_0x5c51eb[_0x79a0('0x1d')],function(_0xc5517a){return{'model':db[_0xc5517a[_0x79a0('0x1f')]],'as':_0xc5517a['as'],'attributes':_0xc5517a[_0x79a0('0x1c')],'include':_0xc5517a['include']?_[_0x79a0('0x1e')](_0xc5517a[_0x79a0('0x1d')],function(_0x38a764){return{'model':db[_0x38a764[_0x79a0('0x1f')]],'as':_0x38a764['as'],'attributes':_0x38a764[_0x79a0('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x79a0('0xc')](function(_0x4552db){logger['info']('ShowSound',_0x691291);logger[_0x79a0('0xf')](_0x79a0('0x20'),_0x691291,JSON[_0x79a0('0x21')](_0x4552db));_0x15c4a6(_0x4552db);})[_0x79a0('0x16')](function(_0x5e06bc){logger[_0x79a0('0x12')]('ShowSound',_0x5e06bc['message'],_0x691291);_0x517ab4(_0x1b6796[_0x79a0('0x12')](0x1f4,_0x5e06bc['message']));});});};
\ No newline at end of file
+var _0xd8b0=['request\x20sent','debug','Sound,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSound','Sound','options','raw','where','include','model','attributes','map','lodash','util','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','Sound,\x20%s,\x20%s'];(function(_0x10a92c,_0x433ef0){var _0x53ff08=function(_0x3a71c9){while(--_0x3a71c9){_0x10a92c['push'](_0x10a92c['shift']());}};_0x53ff08(++_0x433ef0);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0d8b('0x2'));var db=require(_0x0d8b('0x3'))['db'];var utils=require(_0x0d8b('0x4'));var logger=require(_0x0d8b('0x5'))(_0x0d8b('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0d8b('0x7')][_0x0d8b('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x39f43a,_0x4a4470,_0x413284){return new BPromise(function(_0x284169,_0x58e4e2){return client[_0x0d8b('0x9')](_0x39f43a,_0x413284)[_0x0d8b('0xa')](function(_0x3b027f){logger[_0x0d8b('0xb')](_0x0d8b('0xc'),_0x4a4470,_0x0d8b('0xd'));logger[_0x0d8b('0xe')](_0x0d8b('0xf'),_0x4a4470,'request\x20sent',JSON[_0x0d8b('0x10')](_0x3b027f));if(_0x3b027f['error']){if(_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x12')]===0x1f4){logger[_0x0d8b('0x11')](_0x0d8b('0xc'),_0x4a4470,_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);return _0x58e4e2(_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);}logger[_0x0d8b('0x11')](_0x0d8b('0xc'),_0x4a4470,_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);return _0x284169(_0x3b027f[_0x0d8b('0x11')][_0x0d8b('0x13')]);}else{logger['info'](_0x0d8b('0xc'),_0x4a4470,_0x0d8b('0xd'));_0x284169(_0x3b027f[_0x0d8b('0x14')][_0x0d8b('0x13')]);}})[_0x0d8b('0x15')](function(_0x5cd485){logger[_0x0d8b('0x11')](_0x0d8b('0xc'),_0x4a4470,_0x5cd485);_0x58e4e2(_0x5cd485);});});}exports[_0x0d8b('0x16')]=function(_0x5fecbd){var _0x333674=this;return new Promise(function(_0x18dd2d,_0x264b39){return db[_0x0d8b('0x17')]['find']({'raw':_0x5fecbd[_0x0d8b('0x18')]?_0x5fecbd[_0x0d8b('0x18')][_0x0d8b('0x19')]===undefined?!![]:![]:!![],'where':_0x5fecbd[_0x0d8b('0x18')]?_0x5fecbd[_0x0d8b('0x18')][_0x0d8b('0x1a')]||null:null,'attributes':_0x5fecbd[_0x0d8b('0x18')]?_0x5fecbd[_0x0d8b('0x18')]['attributes']||null:null,'include':_0x5fecbd['options']?_0x5fecbd[_0x0d8b('0x18')]['include']?_['map'](_0x5fecbd['options'][_0x0d8b('0x1b')],function(_0x2b924f){return{'model':db[_0x2b924f[_0x0d8b('0x1c')]],'as':_0x2b924f['as'],'attributes':_0x2b924f[_0x0d8b('0x1d')],'include':_0x2b924f[_0x0d8b('0x1b')]?_[_0x0d8b('0x1e')](_0x2b924f[_0x0d8b('0x1b')],function(_0x4562cb){return{'model':db[_0x4562cb[_0x0d8b('0x1c')]],'as':_0x4562cb['as'],'attributes':_0x4562cb['attributes'],'include':_0x4562cb[_0x0d8b('0x1b')]?_[_0x0d8b('0x1e')](_0x4562cb['include'],function(_0xe1ef20){return{'model':db[_0xe1ef20['model']],'as':_0xe1ef20['as'],'attributes':_0xe1ef20[_0x0d8b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x0d8b('0xa')](function(_0xa2af02){logger['info']('ShowSound',_0x5fecbd);logger[_0x0d8b('0xe')](_0x0d8b('0x16'),_0x5fecbd,JSON['stringify'](_0xa2af02));_0x18dd2d(_0xa2af02);})[_0x0d8b('0x15')](function(_0x59aa83){logger[_0x0d8b('0x11')]('ShowSound',_0x59aa83[_0x0d8b('0x13')],_0x5fecbd);_0x264b39(_0x333674['error'](0x1f4,_0x59aa83[_0x0d8b('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa20a=['Router','../../components/interaction/service','../../config/environment','./squareMessage.controller','get','isAuthenticated','/:id','show','post','create','put','update','delete','destroy','path','connect-timeout','express'];(function(_0x1405b5,_0x836010){var _0x3276a3=function(_0xbf41c5){while(--_0xbf41c5){_0x1405b5['push'](_0x1405b5['shift']());}};_0x3276a3(++_0x836010);}(_0xa20a,0x74));var _0xaa20=function(_0x26462c,_0xd20a35){_0x26462c=_0x26462c-0x0;var _0x509a42=_0xa20a[_0x26462c];return _0x509a42;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xaa20('0x0'));var timeout=require(_0xaa20('0x1'));var express=require(_0xaa20('0x2'));var router=express[_0xaa20('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0xaa20('0x4'));var config=require(_0xaa20('0x5'));var controller=require(_0xaa20('0x6'));router[_0xaa20('0x7')]('/',auth[_0xaa20('0x8')](),controller['index']);router['get'](_0xaa20('0x9'),auth[_0xaa20('0x8')](),controller[_0xaa20('0xa')]);router[_0xaa20('0xb')]('/',auth[_0xaa20('0x8')](),controller[_0xaa20('0xc')]);router[_0xaa20('0xd')](_0xaa20('0x9'),auth[_0xaa20('0x8')](),controller[_0xaa20('0xe')]);router[_0xaa20('0xf')]('/:id',auth[_0xaa20('0x8')](),controller[_0xaa20('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x065e=['delete','destroy','exports','multer','express','Router','../../components/auth/service','./squareMessage.controller','get','index','/:id','show','isAuthenticated','create','put'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x065e,0x1a7));var _0xe065=function(_0x25277c,_0xf854af){_0x25277c=_0x25277c-0x0;var _0x10d0f3=_0x065e[_0x25277c];return _0x10d0f3;};'use strict';var multer=require(_0xe065('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xe065('0x1'));var router=express[_0xe065('0x2')]();var auth=require(_0xe065('0x3'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xe065('0x4'));router[_0xe065('0x5')]('/',auth['isAuthenticated'](),controller[_0xe065('0x6')]);router[_0xe065('0x5')](_0xe065('0x7'),auth['isAuthenticated'](),controller[_0xe065('0x8')]);router['post']('/',auth[_0xe065('0x9')](),controller[_0xe065('0xa')]);router[_0xe065('0xb')](_0xe065('0x7'),auth[_0xe065('0x9')](),controller['update']);router[_0xe065('0xc')](_0xe065('0x7'),auth[_0xe065('0x9')](),controller[_0xe065('0xd')]);module[_0xe065('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa63d=['exports','STRING','medium','ENUM','out'];(function(_0x126558,_0x143c9a){var _0x1f6d14=function(_0x2b0eea){while(--_0x2b0eea){_0x126558['push'](_0x126558['shift']());}};_0x1f6d14(++_0x143c9a);}(_0xa63d,0x140));var _0xda63=function(_0x3c7c9e,_0x2c1ca4){_0x3c7c9e=_0x3c7c9e-0x0;var _0x39a1d4=_0xa63d[_0x3c7c9e];return _0x39a1d4;};'use strict';var Sequelize=require('sequelize');module[_0xda63('0x0')]={'uniqueid':{'type':Sequelize[_0xda63('0x1')]},'body':{'type':Sequelize['TEXT'](_0xda63('0x2')),'allowNull':![]},'direction':{'type':Sequelize[_0xda63('0x3')]('in','out'),'defaultValue':_0xda63('0x4'),'allowNull':![]}};
\ No newline at end of file
+var _0xc345=['exports','STRING','TEXT','medium','out'];(function(_0x37139a,_0x24d881){var _0x425e8f=function(_0x56df55){while(--_0x56df55){_0x37139a['push'](_0x37139a['shift']());}};_0x425e8f(++_0x24d881);}(_0xc345,0x64));var _0x5c34=function(_0x3611ef,_0x4fbb05){_0x3611ef=_0x3611ef-0x0;var _0x246a54=_0xc345[_0x3611ef];return _0x246a54;};'use strict';var Sequelize=require('sequelize');module[_0x5c34('0x0')]={'uniqueid':{'type':Sequelize[_0x5c34('0x1')]},'body':{'type':Sequelize[_0x5c34('0x2')](_0x5c34('0x3')),'allowNull':![]},'direction':{'type':Sequelize['ENUM']('in',_0x5c34('0x4')),'defaultValue':_0x5c34('0x4'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e57=['create','body','destroy','eml-format','zip-dir','fast-json-patch','bluebird','mustache','util','to-csv','ejs','lodash','crypto','desk.js','querystring','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','status','end','count','offset','limit','set','json','apply','reject','save','update','then','sendStatus','error','stack','name','index','SquareMessage','model','keys','query','dateStart','intersection','fields','attributes','length','nolimit','order','sort','filters','dateEnd','add','day','merge','where','filter','options','includeAll','include','rows','catch','show','params','rawAttributes','find'];(function(_0x2d68f7,_0x534b07){var _0x447e1b=function(_0x29a655){while(--_0x29a655){_0x2d68f7['push'](_0x2d68f7['shift']());}};_0x447e1b(++_0x534b07);}(_0x4e57,0x83));var _0x74e5=function(_0x167f43,_0x4b8752){_0x167f43=_0x167f43-0x0;var _0x244b89=_0x4e57[_0x167f43];return _0x244b89;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x74e5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x74e5('0x1'));var jsonpatch=require(_0x74e5('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x74e5('0x3'));var Mustache=require(_0x74e5('0x4'));var util=require(_0x74e5('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x74e5('0x6'));var ejs=require(_0x74e5('0x7'));var fs=require('fs');var _=require(_0x74e5('0x8'));var squel=require('squel');var crypto=require(_0x74e5('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x74e5('0xa'));var toCsv=require(_0x74e5('0x6'));var querystring=require(_0x74e5('0xb'));var Papa=require('papaparse');var qs=require(_0x74e5('0xc'));var logger=require(_0x74e5('0xd'))('api');var utils=require('../../config/utils');var config=require(_0x74e5('0xe'));var db=require(_0x74e5('0xf'))['db'];function respondWithStatusCode(_0x632ed7,_0x158fbb){_0x158fbb=_0x158fbb||0xcc;return function(_0x3eca6b){if(_0x3eca6b){return _0x632ed7['sendStatus'](_0x158fbb);}return _0x632ed7[_0x74e5('0x10')](_0x158fbb)[_0x74e5('0x11')]();};}function respondWithResult(_0x39d3d6,_0x49d592){_0x49d592=_0x49d592||0xc8;return function(_0x550163){if(_0x550163){return _0x39d3d6[_0x74e5('0x10')](_0x49d592)['json'](_0x550163);}};}function respondWithFilteredResult(_0x5a8323,_0x158f9a){return function(_0xd95962){if(_0xd95962){var _0x31640c=_0xd95962[_0x74e5('0x12')],_0x31ae05=_0x158f9a[_0x74e5('0x13')],_0x3207d3=_0x158f9a[_0x74e5('0x13')]+_0x158f9a[_0x74e5('0x14')],_0x486c93;if(_0x3207d3>=_0x31640c){_0x3207d3=_0x31640c;_0x486c93=0xc8;}else{_0x486c93=0xce;}_0x5a8323[_0x74e5('0x10')](_0x486c93);return _0x5a8323[_0x74e5('0x15')]('Content-Range',_0x31ae05+'-'+_0x3207d3+'/'+_0x31640c)[_0x74e5('0x16')](_0xd95962);}return null;};}function patchUpdates(_0x13c47a){return function(_0x132e9f){try{jsonpatch[_0x74e5('0x17')](_0x132e9f,_0x13c47a,!![]);}catch(_0xbeaf5a){return BPromise[_0x74e5('0x18')](_0xbeaf5a);}return _0x132e9f[_0x74e5('0x19')]();};}function saveUpdates(_0x30290c,_0x3f149b){return function(_0x21ee0f){if(_0x21ee0f){return _0x21ee0f[_0x74e5('0x1a')](_0x30290c)['then'](function(_0x466402){return _0x466402;});}return null;};}function removeEntity(_0x5678f1,_0x1a7431){return function(_0x10da29){if(_0x10da29){return _0x10da29['destroy']()[_0x74e5('0x1b')](function(){_0x5678f1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a939d,_0x501da9){return function(_0x3aa8a3){if(!_0x3aa8a3){_0x5a939d[_0x74e5('0x1c')](0x194);}return _0x3aa8a3;};}function handleError(_0x32c55a,_0x3fb597){_0x3fb597=_0x3fb597||0x1f4;return function(_0x504750){logger[_0x74e5('0x1d')](_0x504750[_0x74e5('0x1e')]);if(_0x504750['name']){delete _0x504750[_0x74e5('0x1f')];}_0x32c55a[_0x74e5('0x10')](_0x3fb597)['send'](_0x504750);};}exports[_0x74e5('0x20')]=function(_0x26ae26,_0x49094f){var _0x3176dc={},_0x92bb87={},_0x1595f1={'count':0x0,'rows':[]};var _0x240179=db[_0x74e5('0x21')]['rawAttributes'];_0x92bb87[_0x74e5('0x22')]=_[_0x74e5('0x23')](_0x240179);var _0x7ea249={'dateStart':_0x26ae26[_0x74e5('0x24')][_0x74e5('0x25')],'dateEnd':_0x26ae26['query']['dateEnd']};delete _0x26ae26[_0x74e5('0x24')]['dateStart'];delete _0x26ae26['query']['dateEnd'];_0x92bb87[_0x74e5('0x24')]=_[_0x74e5('0x23')](_0x26ae26[_0x74e5('0x24')]);_0x92bb87['filters']=_['intersection'](_0x92bb87[_0x74e5('0x22')],_0x92bb87[_0x74e5('0x24')]);_0x3176dc['attributes']=_[_0x74e5('0x26')](_0x92bb87[_0x74e5('0x22')],qs[_0x74e5('0x27')](_0x26ae26['query']['fields']));_0x3176dc[_0x74e5('0x28')]=_0x3176dc['attributes'][_0x74e5('0x29')]?_0x3176dc['attributes']:_0x92bb87[_0x74e5('0x22')];if(!_0x26ae26[_0x74e5('0x24')]['hasOwnProperty'](_0x74e5('0x2a'))){_0x3176dc[_0x74e5('0x14')]=qs[_0x74e5('0x14')](_0x26ae26[_0x74e5('0x24')][_0x74e5('0x14')]);_0x3176dc[_0x74e5('0x13')]=qs[_0x74e5('0x13')](_0x26ae26['query'][_0x74e5('0x13')]);}_0x3176dc[_0x74e5('0x2b')]=qs[_0x74e5('0x2c')](_0x26ae26[_0x74e5('0x24')][_0x74e5('0x2c')]);_0x3176dc['where']=qs[_0x74e5('0x2d')](_['pick'](_0x26ae26[_0x74e5('0x24')],_0x92bb87[_0x74e5('0x2d')]));if(_0x7ea249[_0x74e5('0x25')]){if(_0x7ea249[_0x74e5('0x2e')]){_0x7ea249['dateEnd']=moment(_0x7ea249[_0x74e5('0x2e')])[_0x74e5('0x2f')](0x1,_0x74e5('0x30'));}else{_0x7ea249['dateEnd']=moment(_0x7ea249[_0x74e5('0x25')])[_0x74e5('0x2f')](0x1,'day');}_[_0x74e5('0x31')](_0x3176dc[_0x74e5('0x32')],{'createdAt':{'$gte':_0x7ea249['dateStart'],'$lte':_0x7ea249['dateEnd']}});}if(_0x26ae26[_0x74e5('0x24')][_0x74e5('0x33')]){_0x3176dc['where']=_['merge'](_0x3176dc[_0x74e5('0x32')],{'$or':_['map'](_0x3176dc[_0x74e5('0x28')],function(_0x3e6309){var _0x3ccbb6={};_0x3ccbb6[_0x3e6309]={'$like':'%'+_0x26ae26[_0x74e5('0x24')][_0x74e5('0x33')]+'%'};return _0x3ccbb6;})});}_0x3176dc=_[_0x74e5('0x31')]({},_0x3176dc,_0x26ae26[_0x74e5('0x34')]);var _0x374764={'where':_0x3176dc[_0x74e5('0x32')]};return db[_0x74e5('0x21')][_0x74e5('0x12')](_0x374764)['then'](function(_0x29b1a2){_0x1595f1[_0x74e5('0x12')]=_0x29b1a2;if(_0x26ae26['query'][_0x74e5('0x35')]){_0x3176dc[_0x74e5('0x36')]=[{'all':!![]}];}return db[_0x74e5('0x21')]['findAll'](_0x3176dc);})['then'](function(_0x425f96){_0x1595f1[_0x74e5('0x37')]=_0x425f96;return _0x1595f1;})['then'](respondWithFilteredResult(_0x49094f,_0x3176dc))[_0x74e5('0x38')](handleError(_0x49094f,null));};exports[_0x74e5('0x39')]=function(_0x5cc28b,_0x3573f1){var _0x568635={'raw':!![],'where':{'id':_0x5cc28b[_0x74e5('0x3a')]['id']}},_0x596636={};_0x596636[_0x74e5('0x22')]=_[_0x74e5('0x23')](db[_0x74e5('0x21')][_0x74e5('0x3b')]);_0x596636[_0x74e5('0x24')]=_[_0x74e5('0x23')](_0x5cc28b[_0x74e5('0x24')]);_0x596636[_0x74e5('0x2d')]=_[_0x74e5('0x26')](_0x596636['model'],_0x596636['query']);_0x568635['attributes']=_[_0x74e5('0x26')](_0x596636[_0x74e5('0x22')],qs[_0x74e5('0x27')](_0x5cc28b['query'][_0x74e5('0x27')]));_0x568635[_0x74e5('0x28')]=_0x568635[_0x74e5('0x28')][_0x74e5('0x29')]?_0x568635['attributes']:_0x596636[_0x74e5('0x22')];if(_0x5cc28b[_0x74e5('0x24')][_0x74e5('0x35')]){_0x568635[_0x74e5('0x36')]=[{'all':!![]}];}_0x568635=_['merge']({},_0x568635,_0x5cc28b[_0x74e5('0x34')]);return db[_0x74e5('0x21')][_0x74e5('0x3c')](_0x568635)[_0x74e5('0x1b')](handleEntityNotFound(_0x3573f1,null))['then'](respondWithResult(_0x3573f1,null))[_0x74e5('0x38')](handleError(_0x3573f1,null));};exports[_0x74e5('0x3d')]=function(_0x68bb42,_0x3d6a78){return db['SquareMessage'][_0x74e5('0x3d')](_0x68bb42[_0x74e5('0x3e')],{})[_0x74e5('0x1b')](respondWithResult(_0x3d6a78,0xc9))[_0x74e5('0x38')](handleError(_0x3d6a78,null));};exports[_0x74e5('0x1a')]=function(_0x4e8a3b,_0x23e9d9){if(_0x4e8a3b['body']['id']){delete _0x4e8a3b[_0x74e5('0x3e')]['id'];}return db[_0x74e5('0x21')][_0x74e5('0x3c')]({'where':{'id':_0x4e8a3b['params']['id']}})[_0x74e5('0x1b')](handleEntityNotFound(_0x23e9d9,null))[_0x74e5('0x1b')](saveUpdates(_0x4e8a3b[_0x74e5('0x3e')],null))[_0x74e5('0x1b')](respondWithResult(_0x23e9d9,null))[_0x74e5('0x38')](handleError(_0x23e9d9,null));};exports[_0x74e5('0x3f')]=function(_0x3b9a80,_0x11600e){return db[_0x74e5('0x21')]['find']({'where':{'id':_0x3b9a80[_0x74e5('0x3a')]['id']}})[_0x74e5('0x1b')](handleEntityNotFound(_0x11600e,null))[_0x74e5('0x1b')](removeEntity(_0x11600e,null))[_0x74e5('0x38')](handleError(_0x11600e,null));};
\ No newline at end of file
+var _0x11a8=['papaparse','../../components/parsers/qs','../../config/logger','../../config/environment','status','end','json','count','limit','Content-Range','reject','save','update','then','sendStatus','error','name','send','index','SquareMessage','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','nolimit','offset','order','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','destroy','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring'];(function(_0x82129b,_0x484ae9){var _0x2ae5dc=function(_0x299e34){while(--_0x299e34){_0x82129b['push'](_0x82129b['shift']());}};_0x2ae5dc(++_0x484ae9);}(_0x11a8,0x1e6));var _0x811a=function(_0xf0a280,_0x35450b){_0xf0a280=_0xf0a280-0x0;var _0x4fdbaf=_0x11a8[_0xf0a280];return _0x4fdbaf;};'use strict';var pdf=require(_0x811a('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x811a('0x1'));var zipdir=require(_0x811a('0x2'));var jsonpatch=require(_0x811a('0x3'));var rp=require(_0x811a('0x4'));var moment=require(_0x811a('0x5'));var BPromise=require(_0x811a('0x6'));var Mustache=require(_0x811a('0x7'));var util=require(_0x811a('0x8'));var path=require(_0x811a('0x9'));var sox=require(_0x811a('0xa'));var csv=require(_0x811a('0xb'));var ejs=require(_0x811a('0xc'));var fs=require('fs');var _=require(_0x811a('0xd'));var squel=require(_0x811a('0xe'));var crypto=require(_0x811a('0xf'));var jsforce=require(_0x811a('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x811a('0xb'));var querystring=require(_0x811a('0x11'));var Papa=require(_0x811a('0x12'));var Redis=require('ioredis');var qs=require(_0x811a('0x13'));var logger=require(_0x811a('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x811a('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xca2d76,_0x3a612c){_0x3a612c=_0x3a612c||0xcc;return function(_0x4010f2){if(_0x4010f2){return _0xca2d76['sendStatus'](_0x3a612c);}return _0xca2d76[_0x811a('0x16')](_0x3a612c)[_0x811a('0x17')]();};}function respondWithResult(_0x54be25,_0x239bd9){_0x239bd9=_0x239bd9||0xc8;return function(_0xac7faa){if(_0xac7faa){return _0x54be25['status'](_0x239bd9)[_0x811a('0x18')](_0xac7faa);}};}function respondWithFilteredResult(_0x176aeb,_0x1747f8){return function(_0x8279ad){if(_0x8279ad){var _0x118d90=_0x8279ad[_0x811a('0x19')],_0x133484=_0x1747f8['offset'],_0x2f6ceb=_0x1747f8['offset']+_0x1747f8[_0x811a('0x1a')],_0x57dced;if(_0x2f6ceb>=_0x118d90){_0x2f6ceb=_0x118d90;_0x57dced=0xc8;}else{_0x57dced=0xce;}_0x176aeb[_0x811a('0x16')](_0x57dced);return _0x176aeb['set'](_0x811a('0x1b'),_0x133484+'-'+_0x2f6ceb+'/'+_0x118d90)[_0x811a('0x18')](_0x8279ad);}return null;};}function patchUpdates(_0x1827b7){return function(_0x34fd52){try{jsonpatch['apply'](_0x34fd52,_0x1827b7,!![]);}catch(_0xa09cab){return BPromise[_0x811a('0x1c')](_0xa09cab);}return _0x34fd52[_0x811a('0x1d')]();};}function saveUpdates(_0x150226,_0xe63014){return function(_0x406bf5){if(_0x406bf5){return _0x406bf5[_0x811a('0x1e')](_0x150226)[_0x811a('0x1f')](function(_0x51c896){return _0x51c896;});}return null;};}function removeEntity(_0x4220f6,_0x50378e){return function(_0x50cf6c){if(_0x50cf6c){return _0x50cf6c['destroy']()[_0x811a('0x1f')](function(){_0x4220f6[_0x811a('0x16')](0xcc)[_0x811a('0x17')]();});}};}function handleEntityNotFound(_0x1fc678,_0x3af883){return function(_0x4bf6b5){if(!_0x4bf6b5){_0x1fc678[_0x811a('0x20')](0x194);}return _0x4bf6b5;};}function handleError(_0x3e066a,_0x57c10e){_0x57c10e=_0x57c10e||0x1f4;return function(_0x4ec1ce){logger[_0x811a('0x21')](_0x4ec1ce['stack']);if(_0x4ec1ce[_0x811a('0x22')]){delete _0x4ec1ce[_0x811a('0x22')];}_0x3e066a[_0x811a('0x16')](_0x57c10e)[_0x811a('0x23')](_0x4ec1ce);};}exports[_0x811a('0x24')]=function(_0x5ed2e1,_0x1f096a){var _0x1bb7aa={},_0x3282a7={},_0x30f52b={'count':0x0,'rows':[]};var _0x3acb10=db[_0x811a('0x25')][_0x811a('0x26')];_0x3282a7[_0x811a('0x27')]=_[_0x811a('0x28')](_0x3acb10);var _0x53abdc={'dateStart':_0x5ed2e1[_0x811a('0x29')]['dateStart'],'dateEnd':_0x5ed2e1[_0x811a('0x29')]['dateEnd']};delete _0x5ed2e1[_0x811a('0x29')][_0x811a('0x2a')];delete _0x5ed2e1['query'][_0x811a('0x2b')];_0x3282a7[_0x811a('0x29')]=_[_0x811a('0x28')](_0x5ed2e1[_0x811a('0x29')]);_0x3282a7[_0x811a('0x2c')]=_[_0x811a('0x2d')](_0x3282a7[_0x811a('0x27')],_0x3282a7[_0x811a('0x29')]);_0x1bb7aa['attributes']=_[_0x811a('0x2d')](_0x3282a7[_0x811a('0x27')],qs[_0x811a('0x2e')](_0x5ed2e1[_0x811a('0x29')][_0x811a('0x2e')]));_0x1bb7aa[_0x811a('0x2f')]=_0x1bb7aa['attributes'][_0x811a('0x30')]?_0x1bb7aa[_0x811a('0x2f')]:_0x3282a7[_0x811a('0x27')];if(!_0x5ed2e1[_0x811a('0x29')]['hasOwnProperty'](_0x811a('0x31'))){_0x1bb7aa[_0x811a('0x1a')]=qs['limit'](_0x5ed2e1[_0x811a('0x29')][_0x811a('0x1a')]);_0x1bb7aa['offset']=qs['offset'](_0x5ed2e1[_0x811a('0x29')][_0x811a('0x32')]);}_0x1bb7aa[_0x811a('0x33')]=qs[_0x811a('0x34')](_0x5ed2e1[_0x811a('0x29')][_0x811a('0x34')]);_0x1bb7aa[_0x811a('0x35')]=qs[_0x811a('0x2c')](_[_0x811a('0x36')](_0x5ed2e1['query'],_0x3282a7[_0x811a('0x2c')]));if(_0x53abdc[_0x811a('0x2a')]){if(_0x53abdc[_0x811a('0x2b')]){_0x53abdc[_0x811a('0x2b')]=moment(_0x53abdc[_0x811a('0x2b')])[_0x811a('0x37')](0x1,_0x811a('0x38'));}else{_0x53abdc[_0x811a('0x2b')]=moment(_0x53abdc[_0x811a('0x2a')])[_0x811a('0x37')](0x1,'day');}_[_0x811a('0x39')](_0x1bb7aa[_0x811a('0x35')],{'createdAt':{'$gte':_0x53abdc[_0x811a('0x2a')],'$lte':_0x53abdc[_0x811a('0x2b')]}});}if(_0x5ed2e1[_0x811a('0x29')][_0x811a('0x3a')]){_0x1bb7aa['where']=_[_0x811a('0x39')](_0x1bb7aa[_0x811a('0x35')],{'$or':_[_0x811a('0x3b')](_0x1bb7aa[_0x811a('0x2f')],function(_0x3d0ed1){var _0x2b754a={};_0x2b754a[_0x3d0ed1]={'$like':'%'+_0x5ed2e1[_0x811a('0x29')][_0x811a('0x3a')]+'%'};return _0x2b754a;})});}_0x1bb7aa=_[_0x811a('0x39')]({},_0x1bb7aa,_0x5ed2e1[_0x811a('0x3c')]);var _0x4c2a8c={'where':_0x1bb7aa['where']};return db[_0x811a('0x25')][_0x811a('0x19')](_0x4c2a8c)[_0x811a('0x1f')](function(_0x5b4a39){_0x30f52b[_0x811a('0x19')]=_0x5b4a39;if(_0x5ed2e1[_0x811a('0x29')][_0x811a('0x3d')]){_0x1bb7aa[_0x811a('0x3e')]=[{'all':!![]}];}return db[_0x811a('0x25')][_0x811a('0x3f')](_0x1bb7aa);})[_0x811a('0x1f')](function(_0x268a63){_0x30f52b[_0x811a('0x40')]=_0x268a63;return _0x30f52b;})[_0x811a('0x1f')](respondWithFilteredResult(_0x1f096a,_0x1bb7aa))[_0x811a('0x41')](handleError(_0x1f096a,null));};exports[_0x811a('0x42')]=function(_0x229c05,_0x525a42){var _0x283d37={'raw':!![],'where':{'id':_0x229c05[_0x811a('0x43')]['id']}},_0x285f78={};_0x285f78[_0x811a('0x27')]=_[_0x811a('0x28')](db['SquareMessage'][_0x811a('0x26')]);_0x285f78['query']=_['keys'](_0x229c05[_0x811a('0x29')]);_0x285f78[_0x811a('0x2c')]=_['intersection'](_0x285f78[_0x811a('0x27')],_0x285f78[_0x811a('0x29')]);_0x283d37[_0x811a('0x2f')]=_[_0x811a('0x2d')](_0x285f78[_0x811a('0x27')],qs['fields'](_0x229c05['query'][_0x811a('0x2e')]));_0x283d37['attributes']=_0x283d37[_0x811a('0x2f')][_0x811a('0x30')]?_0x283d37[_0x811a('0x2f')]:_0x285f78[_0x811a('0x27')];if(_0x229c05['query'][_0x811a('0x3d')]){_0x283d37[_0x811a('0x3e')]=[{'all':!![]}];}_0x283d37=_[_0x811a('0x39')]({},_0x283d37,_0x229c05['options']);return db[_0x811a('0x25')][_0x811a('0x44')](_0x283d37)['then'](handleEntityNotFound(_0x525a42,null))[_0x811a('0x1f')](respondWithResult(_0x525a42,null))['catch'](handleError(_0x525a42,null));};exports[_0x811a('0x45')]=function(_0x27ba39,_0x40f076){return db[_0x811a('0x25')]['create'](_0x27ba39[_0x811a('0x46')],{})[_0x811a('0x1f')](respondWithResult(_0x40f076,0xc9))[_0x811a('0x41')](handleError(_0x40f076,null));};exports[_0x811a('0x1e')]=function(_0x357faf,_0x559234){if(_0x357faf[_0x811a('0x46')]['id']){delete _0x357faf[_0x811a('0x46')]['id'];}return db['SquareMessage']['find']({'where':{'id':_0x357faf[_0x811a('0x43')]['id']}})[_0x811a('0x1f')](handleEntityNotFound(_0x559234,null))['then'](saveUpdates(_0x357faf[_0x811a('0x46')],null))[_0x811a('0x1f')](respondWithResult(_0x559234,null))[_0x811a('0x41')](handleError(_0x559234,null));};exports[_0x811a('0x47')]=function(_0x36cd32,_0x2f8ab8){return db[_0x811a('0x25')][_0x811a('0x44')]({'where':{'id':_0x36cd32[_0x811a('0x43')]['id']}})[_0x811a('0x1f')](handleEntityNotFound(_0x2f8ab8,null))[_0x811a('0x1f')](removeEntity(_0x2f8ab8,null))[_0x811a('0x41')](handleError(_0x2f8ab8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2412=['./squareMessage.attributes','exports','define','SquareMessage','square_messages','util','../../config/logger','moment','bluebird'];(function(_0x48b810,_0x173a5e){var _0x23c17d=function(_0x38531e){while(--_0x38531e){_0x48b810['push'](_0x48b810['shift']());}};_0x23c17d(++_0x173a5e);}(_0x2412,0xc2));var _0x2241=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x2412[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x2241('0x0'));var logger=require(_0x2241('0x1'))('api');var moment=require(_0x2241('0x2'));var BPromise=require(_0x2241('0x3'));var rp=require('request-promise');var attributes=require(_0x2241('0x4'));module[_0x2241('0x5')]=function(_0x1207cd,_0x34f047){return _0x1207cd[_0x2241('0x6')](_0x2241('0x7'),attributes,{'tableName':_0x2241('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5efb=['util','../../config/logger','moment','bluebird','request-promise','./squareMessage.attributes','SquareMessage','square_messages'];(function(_0x2c7618,_0x26be9c){var _0x5ce3f0=function(_0x1837b3){while(--_0x1837b3){_0x2c7618['push'](_0x2c7618['shift']());}};_0x5ce3f0(++_0x26be9c);}(_0x5efb,0xb0));var _0xb5ef=function(_0x53a16c,_0x4e9594){_0x53a16c=_0x53a16c-0x0;var _0x54bc91=_0x5efb[_0x53a16c];return _0x54bc91;};'use strict';var _=require('lodash');var util=require(_0xb5ef('0x0'));var logger=require(_0xb5ef('0x1'))('api');var moment=require(_0xb5ef('0x2'));var BPromise=require(_0xb5ef('0x3'));var rp=require(_0xb5ef('0x4'));var attributes=require(_0xb5ef('0x5'));module['exports']=function(_0x1cd925,_0x2af7ef){return _0x1cd925['define'](_0xb5ef('0x6'),attributes,{'tableName':_0xb5ef('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf878=['stringify','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','SquareMessage,\x20%s,\x20%s','request\x20sent','debug','SquareMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','CreateSquareMessage','SquareMessage','create','body','options','raw'];(function(_0x1e8cba,_0x29a703){var _0x214cfb=function(_0x1fcf30){while(--_0x1fcf30){_0x1e8cba['push'](_0x1e8cba['shift']());}};_0x214cfb(++_0x29a703);}(_0xf878,0x88));var _0x8f87=function(_0x59cf23,_0x1a9221){_0x59cf23=_0x59cf23-0x0;var _0x339aeb=_0xf878[_0x59cf23];return _0x339aeb;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x8f87('0x0'));var BPromise=require('bluebird');var rs=require(_0x8f87('0x1'));var fs=require('fs');var db=require(_0x8f87('0x2'))['db'];var utils=require(_0x8f87('0x3'));var logger=require(_0x8f87('0x4'))(_0x8f87('0x5'));var config=require('../../config/environment');var jayson=require(_0x8f87('0x6'));var client=jayson[_0x8f87('0x7')][_0x8f87('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2f4ab5,_0x3fa6a9,_0x105f41){return new BPromise(function(_0x2102c6,_0xa98294){return client['request'](_0x2f4ab5,_0x105f41)[_0x8f87('0x9')](function(_0x26db9c){logger[_0x8f87('0xa')](_0x8f87('0xb'),_0x3fa6a9,_0x8f87('0xc'));logger[_0x8f87('0xd')](_0x8f87('0xe'),_0x3fa6a9,_0x8f87('0xc'),JSON['stringify'](_0x26db9c));if(_0x26db9c['error']){if(_0x26db9c[_0x8f87('0xf')][_0x8f87('0x10')]===0x1f4){logger['error']('SquareMessage,\x20%s,\x20%s',_0x3fa6a9,_0x26db9c[_0x8f87('0xf')][_0x8f87('0x11')]);return _0xa98294(_0x26db9c[_0x8f87('0xf')][_0x8f87('0x11')]);}logger[_0x8f87('0xf')](_0x8f87('0xb'),_0x3fa6a9,_0x26db9c['error']['message']);return _0x2102c6(_0x26db9c[_0x8f87('0xf')][_0x8f87('0x11')]);}else{logger[_0x8f87('0xa')]('SquareMessage,\x20%s,\x20%s',_0x3fa6a9,'request\x20sent');_0x2102c6(_0x26db9c[_0x8f87('0x12')]['message']);}})[_0x8f87('0x13')](function(_0x4aaf18){logger[_0x8f87('0xf')](_0x8f87('0xb'),_0x3fa6a9,_0x4aaf18);_0xa98294(_0x4aaf18);});});}exports[_0x8f87('0x14')]=function(_0x5da708){var _0x3149db=this;return new Promise(function(_0x2a9a74,_0x255dd8){return db[_0x8f87('0x15')][_0x8f87('0x16')](_0x5da708[_0x8f87('0x17')],{'raw':_0x5da708[_0x8f87('0x18')]?_0x5da708['options'][_0x8f87('0x19')]===undefined?!![]:![]:!![]})[_0x8f87('0x9')](function(_0x353e91){logger[_0x8f87('0xa')]('CreateSquareMessage',_0x5da708);logger[_0x8f87('0xd')]('CreateSquareMessage',_0x5da708,JSON[_0x8f87('0x1a')](_0x353e91));_0x2a9a74(_0x353e91);})[_0x8f87('0x13')](function(_0xabb7d0){logger[_0x8f87('0xf')](_0x8f87('0x14'),_0xabb7d0[_0x8f87('0x11')],_0x5da708);_0x255dd8(_0x3149db[_0x8f87('0xf')](0x1f4,_0xabb7d0[_0x8f87('0x11')]));});});};
\ No newline at end of file
+var _0x378e=['stringify','error','code','message','result','SquareMessage','body','options','CreateSquareMessage','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','then','info','SquareMessage,\x20%s,\x20%s','request\x20sent','debug','SquareMessage,\x20%s,\x20%s,\x20%s'];(function(_0x4c77d0,_0x44e4b5){var _0x9f54ae=function(_0x37e2a6){while(--_0x37e2a6){_0x4c77d0['push'](_0x4c77d0['shift']());}};_0x9f54ae(++_0x44e4b5);}(_0x378e,0x133));var _0xe378=function(_0x3a87e8,_0x1d8633){_0x3a87e8=_0x3a87e8-0x0;var _0x591e80=_0x378e[_0x3a87e8];return _0x591e80;};'use strict';var _=require(_0xe378('0x0'));var util=require(_0xe378('0x1'));var moment=require(_0xe378('0x2'));var BPromise=require(_0xe378('0x3'));var rs=require(_0xe378('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe378('0x5'))['db'];var utils=require(_0xe378('0x6'));var logger=require(_0xe378('0x7'))(_0xe378('0x8'));var config=require(_0xe378('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xe378('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4dafd5,_0x5c0de5,_0xa6c261){return new BPromise(function(_0x3edee1,_0x584581){return client['request'](_0x4dafd5,_0xa6c261)[_0xe378('0xb')](function(_0x28cff9){logger[_0xe378('0xc')](_0xe378('0xd'),_0x5c0de5,_0xe378('0xe'));logger[_0xe378('0xf')](_0xe378('0x10'),_0x5c0de5,_0xe378('0xe'),JSON[_0xe378('0x11')](_0x28cff9));if(_0x28cff9[_0xe378('0x12')]){if(_0x28cff9[_0xe378('0x12')][_0xe378('0x13')]===0x1f4){logger[_0xe378('0x12')]('SquareMessage,\x20%s,\x20%s',_0x5c0de5,_0x28cff9[_0xe378('0x12')][_0xe378('0x14')]);return _0x584581(_0x28cff9[_0xe378('0x12')][_0xe378('0x14')]);}logger[_0xe378('0x12')]('SquareMessage,\x20%s,\x20%s',_0x5c0de5,_0x28cff9['error']['message']);return _0x3edee1(_0x28cff9[_0xe378('0x12')][_0xe378('0x14')]);}else{logger[_0xe378('0xc')](_0xe378('0xd'),_0x5c0de5,_0xe378('0xe'));_0x3edee1(_0x28cff9[_0xe378('0x15')][_0xe378('0x14')]);}})['catch'](function(_0x4aa63e){logger[_0xe378('0x12')](_0xe378('0xd'),_0x5c0de5,_0x4aa63e);_0x584581(_0x4aa63e);});});}exports['CreateSquareMessage']=function(_0x4b9176){var _0x541c3d=this;return new Promise(function(_0x3677bc,_0x4565bd){return db[_0xe378('0x16')]['create'](_0x4b9176[_0xe378('0x17')],{'raw':_0x4b9176[_0xe378('0x18')]?_0x4b9176[_0xe378('0x18')]['raw']===undefined?!![]:![]:!![]})[_0xe378('0xb')](function(_0x51e649){logger[_0xe378('0xc')](_0xe378('0x19'),_0x4b9176);logger[_0xe378('0xf')](_0xe378('0x19'),_0x4b9176,JSON[_0xe378('0x11')](_0x51e649));_0x3677bc(_0x51e649);})[_0xe378('0x1a')](function(_0x5e653f){logger[_0xe378('0x12')](_0xe378('0x19'),_0x5e653f[_0xe378('0x14')],_0x4b9176);_0x4565bd(_0x541c3d[_0xe378('0x12')](0x1f4,_0x5e653f[_0xe378('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8868=['express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','/:id','show','/:id/test','isAuthenticated','15s','test','post','put','update','destroy','exports','multer','util','path','connect-timeout'];(function(_0x3ae96c,_0x5f1e7e){var _0x1b0c90=function(_0x1ecc83){while(--_0x1ecc83){_0x3ae96c['push'](_0x3ae96c['shift']());}};_0x1b0c90(++_0x5f1e7e);}(_0x8868,0x1ca));var _0x8886=function(_0x3f5695,_0xa35953){_0x3f5695=_0x3f5695-0x0;var _0x11dc10=_0x8868[_0x3f5695];return _0x11dc10;};'use strict';var multer=require(_0x8886('0x0'));var util=require(_0x8886('0x1'));var path=require(_0x8886('0x2'));var timeout=require(_0x8886('0x3'));var express=require(_0x8886('0x4'));var router=express[_0x8886('0x5')]();var auth=require(_0x8886('0x6'));var interaction=require(_0x8886('0x7'));var config=require(_0x8886('0x8'));var controller=require(_0x8886('0x9'));router[_0x8886('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x8886('0xa')](_0x8886('0xb'),auth['isAuthenticated'](),controller[_0x8886('0xc')]);router['get'](_0x8886('0xd'),auth[_0x8886('0xe')](),timeout(_0x8886('0xf')),controller[_0x8886('0x10')]);router[_0x8886('0x11')]('/',auth[_0x8886('0xe')](),controller['create']);router[_0x8886('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x8886('0x13')]);router['delete'](_0x8886('0xb'),auth[_0x8886('0xe')](),controller[_0x8886('0x14')]);module[_0x8886('0x15')]=router;
\ No newline at end of file
+var _0xa4de=['./squareOdbc.controller','get','isAuthenticated','index','/:id','show','/:id/test','15s','test','post','create','put','update','delete','destroy','exports','multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0xfe708c,_0x1b8a6e){var _0x2007f5=function(_0x272917){while(--_0x272917){_0xfe708c['push'](_0xfe708c['shift']());}};_0x2007f5(++_0x1b8a6e);}(_0xa4de,0x10d));var _0xea4d=function(_0x23390c,_0x4cf6cd){_0x23390c=_0x23390c-0x0;var _0x43f2a3=_0xa4de[_0x23390c];return _0x43f2a3;};'use strict';var multer=require(_0xea4d('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xea4d('0x1'));var express=require(_0xea4d('0x2'));var router=express[_0xea4d('0x3')]();var auth=require(_0xea4d('0x4'));var interaction=require(_0xea4d('0x5'));var config=require(_0xea4d('0x6'));var controller=require(_0xea4d('0x7'));router[_0xea4d('0x8')]('/',auth[_0xea4d('0x9')](),controller[_0xea4d('0xa')]);router[_0xea4d('0x8')](_0xea4d('0xb'),auth['isAuthenticated'](),controller[_0xea4d('0xc')]);router['get'](_0xea4d('0xd'),auth[_0xea4d('0x9')](),timeout(_0xea4d('0xe')),controller[_0xea4d('0xf')]);router[_0xea4d('0x10')]('/',auth[_0xea4d('0x9')](),controller[_0xea4d('0x11')]);router[_0xea4d('0x12')](_0xea4d('0xb'),auth[_0xea4d('0x9')](),controller[_0xea4d('0x13')]);router[_0xea4d('0x14')]('/:id',auth[_0xea4d('0x9')](),controller[_0xea4d('0x15')]);module[_0xea4d('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb45=['name','exports','STRING'];(function(_0x350a01,_0x5ed763){var _0xc17c6b=function(_0x31aaec){while(--_0x31aaec){_0x350a01['push'](_0x350a01['shift']());}};_0xc17c6b(++_0x5ed763);}(_0xcb45,0x115));var _0x5cb4=function(_0x4b65ba,_0x1ceaad){_0x4b65ba=_0x4b65ba-0x0;var _0x1e5801=_0xcb45[_0x4b65ba];return _0x1e5801;};'use strict';var Sequelize=require('sequelize');module[_0x5cb4('0x0')]={'name':{'type':Sequelize[_0x5cb4('0x1')],'unique':_0x5cb4('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0x5cb4('0x1')]},'description':{'type':Sequelize[_0x5cb4('0x1')]}};
\ No newline at end of file
+var _0xa324=['name','STRING','sequelize','exports'];(function(_0x453378,_0x2f360c){var _0xab3d9e=function(_0x58c2c8){while(--_0x58c2c8){_0x453378['push'](_0x453378['shift']());}};_0xab3d9e(++_0x2f360c);}(_0xa324,0x112));var _0x4a32=function(_0x49d41c,_0x2bdc35){_0x49d41c=_0x49d41c-0x0;var _0xb64c5f=_0xa324[_0x49d41c];return _0xb64c5f;};'use strict';var Sequelize=require(_0x4a32('0x0'));module[_0x4a32('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x4a32('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0x4a32('0x3')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x087f=['update','body','destroy','dsn','openSync','closeSync','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','apply','reject','save','then','error','name','send','index','SquareOdbc','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','intersection','fields','length','nolimit','limit','sort','where','pick','add','day','merge','filter','options','count','includeAll','include','findAll','rows','show','params','find','catch','create'];(function(_0x518e15,_0x568735){var _0x3bd658=function(_0x6a579f){while(--_0x6a579f){_0x518e15['push'](_0x518e15['shift']());}};_0x3bd658(++_0x568735);}(_0x087f,0x9c));var _0xf087=function(_0x3dfabd,_0xa00e71){_0x3dfabd=_0x3dfabd-0x0;var _0x1f2523=_0x087f[_0x3dfabd];return _0x1f2523;};'use strict';var pdf=require(_0xf087('0x0'));var emlformat=require(_0xf087('0x1'));var rimraf=require(_0xf087('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf087('0x3'));var rp=require(_0xf087('0x4'));var moment=require(_0xf087('0x5'));var BPromise=require(_0xf087('0x6'));var Mustache=require(_0xf087('0x7'));var util=require(_0xf087('0x8'));var path=require(_0xf087('0x9'));var sox=require(_0xf087('0xa'));var csv=require(_0xf087('0xb'));var ejs=require(_0xf087('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0xf087('0xd'));var crypto=require(_0xf087('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xf087('0xf'));var toCsv=require('to-csv');var querystring=require(_0xf087('0x10'));var Papa=require(_0xf087('0x11'));var qs=require(_0xf087('0x12'));var logger=require(_0xf087('0x13'))(_0xf087('0x14'));var utils=require('../../config/utils');var config=require(_0xf087('0x15'));var db=require(_0xf087('0x16'))['db'];function respondWithStatusCode(_0xd1347c,_0x427359){_0x427359=_0x427359||0xcc;return function(_0x1dc0ce){if(_0x1dc0ce){return _0xd1347c[_0xf087('0x17')](_0x427359);}return _0xd1347c[_0xf087('0x18')](_0x427359)[_0xf087('0x19')]();};}function respondWithResult(_0x385f67,_0x5d03b7){_0x5d03b7=_0x5d03b7||0xc8;return function(_0x35a533){if(_0x35a533){return _0x385f67[_0xf087('0x18')](_0x5d03b7)[_0xf087('0x1a')](_0x35a533);}};}function respondWithFilteredResult(_0x3a4bf5,_0xaafe75){return function(_0x59a31f){if(_0x59a31f){var _0x1bd815=_0x59a31f['count'],_0xdfbc2e=_0xaafe75[_0xf087('0x1b')],_0x1a9815=_0xaafe75['offset']+_0xaafe75['limit'],_0x5e5b57;if(_0x1a9815>=_0x1bd815){_0x1a9815=_0x1bd815;_0x5e5b57=0xc8;}else{_0x5e5b57=0xce;}_0x3a4bf5[_0xf087('0x18')](_0x5e5b57);return _0x3a4bf5[_0xf087('0x1c')]('Content-Range',_0xdfbc2e+'-'+_0x1a9815+'/'+_0x1bd815)[_0xf087('0x1a')](_0x59a31f);}return null;};}function patchUpdates(_0x3a1974){return function(_0x5198d1){try{jsonpatch[_0xf087('0x1d')](_0x5198d1,_0x3a1974,!![]);}catch(_0x5c032a){return BPromise[_0xf087('0x1e')](_0x5c032a);}return _0x5198d1[_0xf087('0x1f')]();};}function saveUpdates(_0x4261d1,_0x3e68ec){return function(_0x4de8ec){if(_0x4de8ec){return _0x4de8ec['update'](_0x4261d1)[_0xf087('0x20')](function(_0x4d03b4){return _0x4d03b4;});}return null;};}function removeEntity(_0x495fd2,_0x566a9c){return function(_0x591ce9){if(_0x591ce9){return _0x591ce9['destroy']()[_0xf087('0x20')](function(){_0x495fd2['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x57366c,_0x578f94){return function(_0x3a45b4){if(!_0x3a45b4){_0x57366c[_0xf087('0x17')](0x194);}return _0x3a45b4;};}function handleError(_0x2834a8,_0x53a7f2){_0x53a7f2=_0x53a7f2||0x1f4;return function(_0x4c1500){logger[_0xf087('0x21')](_0x4c1500['stack']);if(_0x4c1500['name']){delete _0x4c1500[_0xf087('0x22')];}_0x2834a8[_0xf087('0x18')](_0x53a7f2)[_0xf087('0x23')](_0x4c1500);};}exports[_0xf087('0x24')]=function(_0x3f0e79,_0x241d32){var _0x87c397={},_0x55690f={},_0x4a6be7={'count':0x0,'rows':[]};var _0x2f100a=db[_0xf087('0x25')][_0xf087('0x26')];_0x55690f[_0xf087('0x27')]=_[_0xf087('0x28')](_0x2f100a);var _0x4ba9cf={'dateStart':_0x3f0e79[_0xf087('0x29')][_0xf087('0x2a')],'dateEnd':_0x3f0e79[_0xf087('0x29')][_0xf087('0x2b')]};delete _0x3f0e79['query'][_0xf087('0x2a')];delete _0x3f0e79[_0xf087('0x29')][_0xf087('0x2b')];_0x55690f[_0xf087('0x29')]=_['keys'](_0x3f0e79[_0xf087('0x29')]);_0x55690f[_0xf087('0x2c')]=_['intersection'](_0x55690f['model'],_0x55690f[_0xf087('0x29')]);_0x87c397[_0xf087('0x2d')]=_[_0xf087('0x2e')](_0x55690f[_0xf087('0x27')],qs['fields'](_0x3f0e79[_0xf087('0x29')][_0xf087('0x2f')]));_0x87c397[_0xf087('0x2d')]=_0x87c397[_0xf087('0x2d')][_0xf087('0x30')]?_0x87c397[_0xf087('0x2d')]:_0x55690f['model'];if(!_0x3f0e79[_0xf087('0x29')]['hasOwnProperty'](_0xf087('0x31'))){_0x87c397[_0xf087('0x32')]=qs['limit'](_0x3f0e79[_0xf087('0x29')][_0xf087('0x32')]);_0x87c397['offset']=qs[_0xf087('0x1b')](_0x3f0e79[_0xf087('0x29')][_0xf087('0x1b')]);}_0x87c397['order']=qs['sort'](_0x3f0e79['query'][_0xf087('0x33')]);_0x87c397[_0xf087('0x34')]=qs[_0xf087('0x2c')](_[_0xf087('0x35')](_0x3f0e79[_0xf087('0x29')],_0x55690f[_0xf087('0x2c')]));if(_0x4ba9cf[_0xf087('0x2a')]){if(_0x4ba9cf[_0xf087('0x2b')]){_0x4ba9cf['dateEnd']=moment(_0x4ba9cf[_0xf087('0x2b')])[_0xf087('0x36')](0x1,'day');}else{_0x4ba9cf[_0xf087('0x2b')]=moment(_0x4ba9cf[_0xf087('0x2a')])[_0xf087('0x36')](0x1,_0xf087('0x37'));}_[_0xf087('0x38')](_0x87c397[_0xf087('0x34')],{'createdAt':{'$gte':_0x4ba9cf['dateStart'],'$lte':_0x4ba9cf['dateEnd']}});}if(_0x3f0e79[_0xf087('0x29')][_0xf087('0x39')]){_0x87c397[_0xf087('0x34')]=_[_0xf087('0x38')](_0x87c397['where'],{'$or':_['map'](_0x87c397[_0xf087('0x2d')],function(_0xdd6e28){var _0x19e3bf={};_0x19e3bf[_0xdd6e28]={'$like':'%'+_0x3f0e79[_0xf087('0x29')][_0xf087('0x39')]+'%'};return _0x19e3bf;})});}_0x87c397=_[_0xf087('0x38')]({},_0x87c397,_0x3f0e79[_0xf087('0x3a')]);var _0x15df75={'where':_0x87c397['where']};return db[_0xf087('0x25')][_0xf087('0x3b')](_0x15df75)[_0xf087('0x20')](function(_0x3f8dc5){_0x4a6be7[_0xf087('0x3b')]=_0x3f8dc5;if(_0x3f0e79['query'][_0xf087('0x3c')]){_0x87c397[_0xf087('0x3d')]=[{'all':!![]}];}return db[_0xf087('0x25')][_0xf087('0x3e')](_0x87c397);})[_0xf087('0x20')](function(_0x4e1e91){_0x4a6be7[_0xf087('0x3f')]=_0x4e1e91;return _0x4a6be7;})[_0xf087('0x20')](respondWithFilteredResult(_0x241d32,_0x87c397))['catch'](handleError(_0x241d32,null));};exports[_0xf087('0x40')]=function(_0x2ab854,_0x421c2b){var _0x50ece5={'raw':!![],'where':{'id':_0x2ab854[_0xf087('0x41')]['id']}},_0x22b423={};_0x22b423[_0xf087('0x27')]=_[_0xf087('0x28')](db[_0xf087('0x25')][_0xf087('0x26')]);_0x22b423[_0xf087('0x29')]=_[_0xf087('0x28')](_0x2ab854[_0xf087('0x29')]);_0x22b423['filters']=_[_0xf087('0x2e')](_0x22b423['model'],_0x22b423[_0xf087('0x29')]);_0x50ece5['attributes']=_[_0xf087('0x2e')](_0x22b423[_0xf087('0x27')],qs[_0xf087('0x2f')](_0x2ab854[_0xf087('0x29')][_0xf087('0x2f')]));_0x50ece5['attributes']=_0x50ece5['attributes'][_0xf087('0x30')]?_0x50ece5['attributes']:_0x22b423[_0xf087('0x27')];if(_0x2ab854[_0xf087('0x29')][_0xf087('0x3c')]){_0x50ece5[_0xf087('0x3d')]=[{'all':!![]}];}_0x50ece5=_['merge']({},_0x50ece5,_0x2ab854['options']);return db[_0xf087('0x25')][_0xf087('0x42')](_0x50ece5)[_0xf087('0x20')](handleEntityNotFound(_0x421c2b,null))[_0xf087('0x20')](respondWithResult(_0x421c2b,null))[_0xf087('0x43')](handleError(_0x421c2b,null));};exports['create']=function(_0x4890dd,_0x26e53c){return db[_0xf087('0x25')][_0xf087('0x44')](_0x4890dd['body'],{})[_0xf087('0x20')](respondWithResult(_0x26e53c,0xc9))[_0xf087('0x43')](handleError(_0x26e53c,null));};exports[_0xf087('0x45')]=function(_0x3f288a,_0x468f78){if(_0x3f288a['body']['id']){delete _0x3f288a[_0xf087('0x46')]['id'];}return db[_0xf087('0x25')]['find']({'where':{'id':_0x3f288a[_0xf087('0x41')]['id']}})[_0xf087('0x20')](handleEntityNotFound(_0x468f78,null))[_0xf087('0x20')](saveUpdates(_0x3f288a[_0xf087('0x46')],null))[_0xf087('0x20')](respondWithResult(_0x468f78,null))['catch'](handleError(_0x468f78,null));};exports[_0xf087('0x47')]=function(_0x4110c6,_0x331830){return db[_0xf087('0x25')]['find']({'where':{'id':_0x4110c6[_0xf087('0x41')]['id']}})[_0xf087('0x20')](handleEntityNotFound(_0x331830,null))[_0xf087('0x20')](removeEntity(_0x331830,null))[_0xf087('0x43')](handleError(_0x331830,null));};exports['test']=function(_0x4289bd,_0x3b3505,_0x2ab97a){var _0x459d82;return db[_0xf087('0x25')]['find']({'where':{'id':_0x4289bd[_0xf087('0x41')]['id']},'attributes':['id',_0xf087('0x48')]})[_0xf087('0x20')](handleEntityNotFound(_0x3b3505,null))[_0xf087('0x20')](function(_0x449e8d){if(_0x449e8d){var _0x41ff1b=require('odbc')();_0x41ff1b[_0xf087('0x49')](_0x449e8d[_0xf087('0x48')]);_0x41ff1b[_0xf087('0x4a')]();return _0x449e8d;}})[_0xf087('0x20')](respondWithResult(_0x3b3505,null))[_0xf087('0x43')](handleError(_0x3b3505,null));};
\ No newline at end of file
+var _0x0062=['dateEnd','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','day','merge','filter','map','options','includeAll','include','rows','show','find','catch','create','update','body','params','destroy','test','odbc','openSync','dsn','closeSync','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','status','json','count','offset','limit','set','Content-Range','apply','reject','save','then','end','error','stack','name','send','index','SquareOdbc','rawAttributes','model','keys','query','dateStart'];(function(_0x3ed25d,_0x6c37b2){var _0x5e0998=function(_0x3e53a4){while(--_0x3e53a4){_0x3ed25d['push'](_0x3ed25d['shift']());}};_0x5e0998(++_0x6c37b2);}(_0x0062,0x153));var _0x2006=function(_0x1d1219,_0x23fc71){_0x1d1219=_0x1d1219-0x0;var _0x5b5b89=_0x0062[_0x1d1219];return _0x5b5b89;};'use strict';var pdf=require(_0x2006('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x2006('0x1'));var zipdir=require(_0x2006('0x2'));var jsonpatch=require(_0x2006('0x3'));var rp=require(_0x2006('0x4'));var moment=require('moment');var BPromise=require(_0x2006('0x5'));var Mustache=require(_0x2006('0x6'));var util=require(_0x2006('0x7'));var path=require(_0x2006('0x8'));var sox=require(_0x2006('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x2006('0xa'));var squel=require(_0x2006('0xb'));var crypto=require(_0x2006('0xc'));var jsforce=require(_0x2006('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x2006('0xe'));var querystring=require(_0x2006('0xf'));var Papa=require(_0x2006('0x10'));var Redis=require(_0x2006('0x11'));var qs=require(_0x2006('0x12'));var logger=require('../../config/logger')(_0x2006('0x13'));var utils=require(_0x2006('0x14'));var config=require(_0x2006('0x15'));var db=require(_0x2006('0x16'))['db'];function respondWithStatusCode(_0x48ace1,_0x3009f2){_0x3009f2=_0x3009f2||0xcc;return function(_0x54f93e){if(_0x54f93e){return _0x48ace1['sendStatus'](_0x3009f2);}return _0x48ace1[_0x2006('0x17')](_0x3009f2)['end']();};}function respondWithResult(_0x20d62f,_0x186310){_0x186310=_0x186310||0xc8;return function(_0x28cb07){if(_0x28cb07){return _0x20d62f['status'](_0x186310)[_0x2006('0x18')](_0x28cb07);}};}function respondWithFilteredResult(_0x526245,_0x241f13){return function(_0x289636){if(_0x289636){var _0xaddf2f=_0x289636[_0x2006('0x19')],_0x219ab9=_0x241f13[_0x2006('0x1a')],_0x152103=_0x241f13[_0x2006('0x1a')]+_0x241f13[_0x2006('0x1b')],_0x44bdc2;if(_0x152103>=_0xaddf2f){_0x152103=_0xaddf2f;_0x44bdc2=0xc8;}else{_0x44bdc2=0xce;}_0x526245[_0x2006('0x17')](_0x44bdc2);return _0x526245[_0x2006('0x1c')](_0x2006('0x1d'),_0x219ab9+'-'+_0x152103+'/'+_0xaddf2f)[_0x2006('0x18')](_0x289636);}return null;};}function patchUpdates(_0x16e6bd){return function(_0x360f1a){try{jsonpatch[_0x2006('0x1e')](_0x360f1a,_0x16e6bd,!![]);}catch(_0x3ae9b6){return BPromise[_0x2006('0x1f')](_0x3ae9b6);}return _0x360f1a[_0x2006('0x20')]();};}function saveUpdates(_0x283fa1,_0x24493c){return function(_0x35ffea){if(_0x35ffea){return _0x35ffea['update'](_0x283fa1)[_0x2006('0x21')](function(_0x5ddfb5){return _0x5ddfb5;});}return null;};}function removeEntity(_0x109d87,_0x29938f){return function(_0x40e945){if(_0x40e945){return _0x40e945['destroy']()['then'](function(){_0x109d87[_0x2006('0x17')](0xcc)[_0x2006('0x22')]();});}};}function handleEntityNotFound(_0x34c8ce,_0x361e88){return function(_0x25a68c){if(!_0x25a68c){_0x34c8ce['sendStatus'](0x194);}return _0x25a68c;};}function handleError(_0x4e906f,_0x14ede2){_0x14ede2=_0x14ede2||0x1f4;return function(_0xb239c7){logger[_0x2006('0x23')](_0xb239c7[_0x2006('0x24')]);if(_0xb239c7[_0x2006('0x25')]){delete _0xb239c7[_0x2006('0x25')];}_0x4e906f['status'](_0x14ede2)[_0x2006('0x26')](_0xb239c7);};}exports[_0x2006('0x27')]=function(_0x1107ca,_0x51c614){var _0x37e828={},_0x1744a6={},_0x1a6a12={'count':0x0,'rows':[]};var _0x324b26=db[_0x2006('0x28')][_0x2006('0x29')];_0x1744a6[_0x2006('0x2a')]=_[_0x2006('0x2b')](_0x324b26);var _0x128cb4={'dateStart':_0x1107ca[_0x2006('0x2c')][_0x2006('0x2d')],'dateEnd':_0x1107ca[_0x2006('0x2c')][_0x2006('0x2e')]};delete _0x1107ca[_0x2006('0x2c')]['dateStart'];delete _0x1107ca['query']['dateEnd'];_0x1744a6[_0x2006('0x2c')]=_[_0x2006('0x2b')](_0x1107ca['query']);_0x1744a6[_0x2006('0x2f')]=_[_0x2006('0x30')](_0x1744a6[_0x2006('0x2a')],_0x1744a6[_0x2006('0x2c')]);_0x37e828['attributes']=_[_0x2006('0x30')](_0x1744a6[_0x2006('0x2a')],qs[_0x2006('0x31')](_0x1107ca[_0x2006('0x2c')][_0x2006('0x31')]));_0x37e828[_0x2006('0x32')]=_0x37e828['attributes'][_0x2006('0x33')]?_0x37e828['attributes']:_0x1744a6[_0x2006('0x2a')];if(!_0x1107ca['query']['hasOwnProperty'](_0x2006('0x34'))){_0x37e828[_0x2006('0x1b')]=qs[_0x2006('0x1b')](_0x1107ca[_0x2006('0x2c')]['limit']);_0x37e828[_0x2006('0x1a')]=qs[_0x2006('0x1a')](_0x1107ca[_0x2006('0x2c')][_0x2006('0x1a')]);}_0x37e828['order']=qs[_0x2006('0x35')](_0x1107ca['query']['sort']);_0x37e828[_0x2006('0x36')]=qs[_0x2006('0x2f')](_[_0x2006('0x37')](_0x1107ca[_0x2006('0x2c')],_0x1744a6['filters']));if(_0x128cb4['dateStart']){if(_0x128cb4[_0x2006('0x2e')]){_0x128cb4[_0x2006('0x2e')]=moment(_0x128cb4['dateEnd'])['add'](0x1,_0x2006('0x38'));}else{_0x128cb4['dateEnd']=moment(_0x128cb4[_0x2006('0x2d')])['add'](0x1,_0x2006('0x38'));}_[_0x2006('0x39')](_0x37e828[_0x2006('0x36')],{'createdAt':{'$gte':_0x128cb4[_0x2006('0x2d')],'$lte':_0x128cb4[_0x2006('0x2e')]}});}if(_0x1107ca['query'][_0x2006('0x3a')]){_0x37e828[_0x2006('0x36')]=_[_0x2006('0x39')](_0x37e828['where'],{'$or':_[_0x2006('0x3b')](_0x37e828['attributes'],function(_0xf14b4b){var _0x821f44={};_0x821f44[_0xf14b4b]={'$like':'%'+_0x1107ca[_0x2006('0x2c')]['filter']+'%'};return _0x821f44;})});}_0x37e828=_[_0x2006('0x39')]({},_0x37e828,_0x1107ca[_0x2006('0x3c')]);var _0xb23b98={'where':_0x37e828[_0x2006('0x36')]};return db[_0x2006('0x28')][_0x2006('0x19')](_0xb23b98)[_0x2006('0x21')](function(_0x1f5986){_0x1a6a12[_0x2006('0x19')]=_0x1f5986;if(_0x1107ca[_0x2006('0x2c')][_0x2006('0x3d')]){_0x37e828[_0x2006('0x3e')]=[{'all':!![]}];}return db[_0x2006('0x28')]['findAll'](_0x37e828);})['then'](function(_0x26146a){_0x1a6a12[_0x2006('0x3f')]=_0x26146a;return _0x1a6a12;})[_0x2006('0x21')](respondWithFilteredResult(_0x51c614,_0x37e828))['catch'](handleError(_0x51c614,null));};exports[_0x2006('0x40')]=function(_0x3cb777,_0x532673){var _0x46b352={'raw':!![],'where':{'id':_0x3cb777['params']['id']}},_0x4f0ec9={};_0x4f0ec9['model']=_[_0x2006('0x2b')](db[_0x2006('0x28')]['rawAttributes']);_0x4f0ec9[_0x2006('0x2c')]=_['keys'](_0x3cb777[_0x2006('0x2c')]);_0x4f0ec9[_0x2006('0x2f')]=_[_0x2006('0x30')](_0x4f0ec9[_0x2006('0x2a')],_0x4f0ec9[_0x2006('0x2c')]);_0x46b352[_0x2006('0x32')]=_[_0x2006('0x30')](_0x4f0ec9[_0x2006('0x2a')],qs[_0x2006('0x31')](_0x3cb777[_0x2006('0x2c')]['fields']));_0x46b352[_0x2006('0x32')]=_0x46b352['attributes'][_0x2006('0x33')]?_0x46b352['attributes']:_0x4f0ec9[_0x2006('0x2a')];if(_0x3cb777[_0x2006('0x2c')]['includeAll']){_0x46b352[_0x2006('0x3e')]=[{'all':!![]}];}_0x46b352=_[_0x2006('0x39')]({},_0x46b352,_0x3cb777[_0x2006('0x3c')]);return db[_0x2006('0x28')][_0x2006('0x41')](_0x46b352)['then'](handleEntityNotFound(_0x532673,null))[_0x2006('0x21')](respondWithResult(_0x532673,null))[_0x2006('0x42')](handleError(_0x532673,null));};exports[_0x2006('0x43')]=function(_0x36bc56,_0x226e11){return db[_0x2006('0x28')][_0x2006('0x43')](_0x36bc56['body'],{})['then'](respondWithResult(_0x226e11,0xc9))['catch'](handleError(_0x226e11,null));};exports[_0x2006('0x44')]=function(_0x4b2a83,_0x230320){if(_0x4b2a83[_0x2006('0x45')]['id']){delete _0x4b2a83[_0x2006('0x45')]['id'];}return db['SquareOdbc'][_0x2006('0x41')]({'where':{'id':_0x4b2a83[_0x2006('0x46')]['id']}})[_0x2006('0x21')](handleEntityNotFound(_0x230320,null))[_0x2006('0x21')](saveUpdates(_0x4b2a83[_0x2006('0x45')],null))[_0x2006('0x21')](respondWithResult(_0x230320,null))[_0x2006('0x42')](handleError(_0x230320,null));};exports[_0x2006('0x47')]=function(_0x3fd496,_0x4d76fe){return db[_0x2006('0x28')]['find']({'where':{'id':_0x3fd496[_0x2006('0x46')]['id']}})['then'](handleEntityNotFound(_0x4d76fe,null))['then'](removeEntity(_0x4d76fe,null))['catch'](handleError(_0x4d76fe,null));};exports[_0x2006('0x48')]=function(_0x2f618b,_0x1fa44,_0x1cd145){var _0x272f94;return db[_0x2006('0x28')]['find']({'where':{'id':_0x2f618b[_0x2006('0x46')]['id']},'attributes':['id','dsn']})['then'](handleEntityNotFound(_0x1fa44,null))[_0x2006('0x21')](function(_0x4d5d49){if(_0x4d5d49){var _0x5e46ab=require(_0x2006('0x49'))();_0x5e46ab[_0x2006('0x4a')](_0x4d5d49[_0x2006('0x4b')]);_0x5e46ab[_0x2006('0x4c')]();return _0x4d5d49;}})[_0x2006('0x21')](respondWithResult(_0x1fa44,null))[_0x2006('0x42')](handleError(_0x1fa44,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['square_odbc','../../config/logger','api','moment','bluebird','request-promise','exports','define','SquareOdbc'];(function(_0x251e8c,_0x277c33){var _0x1e0c1d=function(_0x20b89c){while(--_0x20b89c){_0x251e8c['push'](_0x251e8c['shift']());}};_0x1e0c1d(++_0x277c33);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x3071('0x0'))(_0x3071('0x1'));var moment=require(_0x3071('0x2'));var BPromise=require(_0x3071('0x3'));var rp=require(_0x3071('0x4'));var attributes=require('./squareOdbc.attributes');module[_0x3071('0x5')]=function(_0x7b18a4,_0x33a70c){return _0x7b18a4[_0x3071('0x6')](_0x3071('0x7'),attributes,{'tableName':_0x3071('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x70e0=['./squareOdbc.attributes','exports','SquareOdbc','lodash','util','../../config/logger','bluebird','request-promise'];(function(_0x69015c,_0x44589e){var _0x2bd8c2=function(_0x2da892){while(--_0x2da892){_0x69015c['push'](_0x69015c['shift']());}};_0x2bd8c2(++_0x44589e);}(_0x70e0,0x17b));var _0x070e=function(_0x3c35d0,_0x444345){_0x3c35d0=_0x3c35d0-0x0;var _0x205ac1=_0x70e0[_0x3c35d0];return _0x205ac1;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var logger=require(_0x070e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x070e('0x3'));var rp=require(_0x070e('0x4'));var attributes=require(_0x070e('0x5'));module[_0x070e('0x6')]=function(_0x5c90fc,_0x7bce9b){return _0x5c90fc['define'](_0x070e('0x7'),attributes,{'tableName':'square_odbc','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbafc=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','SquareOdbc,\x20%s,\x20%s','request\x20sent','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','ShowSquareOdbc','find','options','raw','where','include','map','model','attributes','lodash','util','moment','bluebird','randomstring','../../mysqldb'];(function(_0x4f612b,_0x253bd9){var _0x381f45=function(_0x4fbd6d){while(--_0x4fbd6d){_0x4f612b['push'](_0x4f612b['shift']());}};_0x381f45(++_0x253bd9);}(_0xbafc,0x144));var _0xcbaf=function(_0x15eb76,_0x1946fb){_0x15eb76=_0x15eb76-0x0;var _0x104569=_0xbafc[_0x15eb76];return _0x104569;};'use strict';var _=require(_0xcbaf('0x0'));var util=require(_0xcbaf('0x1'));var moment=require(_0xcbaf('0x2'));var BPromise=require(_0xcbaf('0x3'));var rs=require(_0xcbaf('0x4'));var fs=require('fs');var db=require(_0xcbaf('0x5'))['db'];var utils=require(_0xcbaf('0x6'));var logger=require(_0xcbaf('0x7'))('rpc');var config=require(_0xcbaf('0x8'));var jayson=require(_0xcbaf('0x9'));var client=jayson[_0xcbaf('0xa')][_0xcbaf('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4fffb5,_0x19e10b,_0x193f28){return new BPromise(function(_0x331632,_0x1399c8){return client[_0xcbaf('0xc')](_0x4fffb5,_0x193f28)['then'](function(_0x5bad8d){logger['info'](_0xcbaf('0xd'),_0x19e10b,_0xcbaf('0xe'));logger[_0xcbaf('0xf')](_0xcbaf('0x10'),_0x19e10b,'request\x20sent',JSON[_0xcbaf('0x11')](_0x5bad8d));if(_0x5bad8d[_0xcbaf('0x12')]){if(_0x5bad8d[_0xcbaf('0x12')][_0xcbaf('0x13')]===0x1f4){logger[_0xcbaf('0x12')]('SquareOdbc,\x20%s,\x20%s',_0x19e10b,_0x5bad8d[_0xcbaf('0x12')]['message']);return _0x1399c8(_0x5bad8d[_0xcbaf('0x12')]['message']);}logger[_0xcbaf('0x12')](_0xcbaf('0xd'),_0x19e10b,_0x5bad8d['error'][_0xcbaf('0x14')]);return _0x331632(_0x5bad8d['error'][_0xcbaf('0x14')]);}else{logger[_0xcbaf('0x15')](_0xcbaf('0xd'),_0x19e10b,'request\x20sent');_0x331632(_0x5bad8d[_0xcbaf('0x16')][_0xcbaf('0x14')]);}})[_0xcbaf('0x17')](function(_0x2976d8){logger['error']('SquareOdbc,\x20%s,\x20%s',_0x19e10b,_0x2976d8);_0x1399c8(_0x2976d8);});});}exports[_0xcbaf('0x18')]=function(_0x1ab82e){var _0x32d48f=this;return new Promise(function(_0x36d43f,_0x5ddc88){return db['SquareOdbc'][_0xcbaf('0x19')]({'raw':_0x1ab82e[_0xcbaf('0x1a')]?_0x1ab82e[_0xcbaf('0x1a')][_0xcbaf('0x1b')]===undefined?!![]:![]:!![],'where':_0x1ab82e[_0xcbaf('0x1a')]?_0x1ab82e[_0xcbaf('0x1a')][_0xcbaf('0x1c')]||null:null,'attributes':_0x1ab82e[_0xcbaf('0x1a')]?_0x1ab82e[_0xcbaf('0x1a')]['attributes']||null:null,'include':_0x1ab82e[_0xcbaf('0x1a')]?_0x1ab82e[_0xcbaf('0x1a')][_0xcbaf('0x1d')]?_[_0xcbaf('0x1e')](_0x1ab82e[_0xcbaf('0x1a')][_0xcbaf('0x1d')],function(_0x539a9b){return{'model':db[_0x539a9b[_0xcbaf('0x1f')]],'as':_0x539a9b['as'],'attributes':_0x539a9b[_0xcbaf('0x20')],'include':_0x539a9b['include']?_['map'](_0x539a9b[_0xcbaf('0x1d')],function(_0x10147a){return{'model':db[_0x10147a['model']],'as':_0x10147a['as'],'attributes':_0x10147a[_0xcbaf('0x20')],'include':_0x10147a[_0xcbaf('0x1d')]?_['map'](_0x10147a[_0xcbaf('0x1d')],function(_0x502f3c){return{'model':db[_0x502f3c[_0xcbaf('0x1f')]],'as':_0x502f3c['as'],'attributes':_0x502f3c[_0xcbaf('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xc67e4f){logger[_0xcbaf('0x15')](_0xcbaf('0x18'),_0x1ab82e);logger['debug']('ShowSquareOdbc',_0x1ab82e,JSON[_0xcbaf('0x11')](_0xc67e4f));_0x36d43f(_0xc67e4f);})[_0xcbaf('0x17')](function(_0x58615a){logger[_0xcbaf('0x12')]('ShowSquareOdbc',_0x58615a[_0xcbaf('0x14')],_0x1ab82e);_0x5ddc88(_0x32d48f[_0xcbaf('0x12')](0x1f4,_0x58615a[_0xcbaf('0x14')]));});});};
\ No newline at end of file
+var _0xa101=['SquareOdbc','find','options','raw','where','attributes','include','model','map','ShowSquareOdbc','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','http','request','then','info','SquareOdbc,\x20%s,\x20%s','request\x20sent','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x287189,_0x4347ae){var _0x308b48=function(_0x2f0ba1){while(--_0x2f0ba1){_0x287189['push'](_0x287189['shift']());}};_0x308b48(++_0x4347ae);}(_0xa101,0x1ca));var _0x1a10=function(_0x419550,_0x15cdf1){_0x419550=_0x419550-0x0;var _0x55f9ef=_0xa101[_0x419550];return _0x55f9ef;};'use strict';var _=require(_0x1a10('0x0'));var util=require('util');var moment=require(_0x1a10('0x1'));var BPromise=require('bluebird');var rs=require(_0x1a10('0x2'));var fs=require('fs');var Redis=require(_0x1a10('0x3'));var db=require(_0x1a10('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x1a10('0x5'))('rpc');var config=require(_0x1a10('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x1a10('0x7')][_0x1a10('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x24aa06,_0x33375c,_0x38cc45){return new BPromise(function(_0x3e8c4f,_0x4e7ca6){return client[_0x1a10('0x9')](_0x24aa06,_0x38cc45)[_0x1a10('0xa')](function(_0x54a3c7){logger[_0x1a10('0xb')](_0x1a10('0xc'),_0x33375c,_0x1a10('0xd'));logger[_0x1a10('0xe')](_0x1a10('0xf'),_0x33375c,'request\x20sent',JSON[_0x1a10('0x10')](_0x54a3c7));if(_0x54a3c7[_0x1a10('0x11')]){if(_0x54a3c7[_0x1a10('0x11')][_0x1a10('0x12')]===0x1f4){logger[_0x1a10('0x11')](_0x1a10('0xc'),_0x33375c,_0x54a3c7[_0x1a10('0x11')][_0x1a10('0x13')]);return _0x4e7ca6(_0x54a3c7[_0x1a10('0x11')][_0x1a10('0x13')]);}logger['error'](_0x1a10('0xc'),_0x33375c,_0x54a3c7[_0x1a10('0x11')]['message']);return _0x3e8c4f(_0x54a3c7[_0x1a10('0x11')][_0x1a10('0x13')]);}else{logger[_0x1a10('0xb')](_0x1a10('0xc'),_0x33375c,_0x1a10('0xd'));_0x3e8c4f(_0x54a3c7[_0x1a10('0x14')][_0x1a10('0x13')]);}})[_0x1a10('0x15')](function(_0x2db1ac){logger[_0x1a10('0x11')](_0x1a10('0xc'),_0x33375c,_0x2db1ac);_0x4e7ca6(_0x2db1ac);});});}exports['ShowSquareOdbc']=function(_0x1d94b1){var _0x28544f=this;return new Promise(function(_0x5b5a59,_0x2c1b6f){return db[_0x1a10('0x16')][_0x1a10('0x17')]({'raw':_0x1d94b1[_0x1a10('0x18')]?_0x1d94b1[_0x1a10('0x18')][_0x1a10('0x19')]===undefined?!![]:![]:!![],'where':_0x1d94b1[_0x1a10('0x18')]?_0x1d94b1[_0x1a10('0x18')][_0x1a10('0x1a')]||null:null,'attributes':_0x1d94b1[_0x1a10('0x18')]?_0x1d94b1[_0x1a10('0x18')][_0x1a10('0x1b')]||null:null,'include':_0x1d94b1[_0x1a10('0x18')]?_0x1d94b1[_0x1a10('0x18')][_0x1a10('0x1c')]?_['map'](_0x1d94b1[_0x1a10('0x18')][_0x1a10('0x1c')],function(_0x1fdb17){return{'model':db[_0x1fdb17[_0x1a10('0x1d')]],'as':_0x1fdb17['as'],'attributes':_0x1fdb17[_0x1a10('0x1b')],'include':_0x1fdb17[_0x1a10('0x1c')]?_['map'](_0x1fdb17[_0x1a10('0x1c')],function(_0xb2050b){return{'model':db[_0xb2050b['model']],'as':_0xb2050b['as'],'attributes':_0xb2050b[_0x1a10('0x1b')],'include':_0xb2050b[_0x1a10('0x1c')]?_[_0x1a10('0x1e')](_0xb2050b[_0x1a10('0x1c')],function(_0x17906a){return{'model':db[_0x17906a[_0x1a10('0x1d')]],'as':_0x17906a['as'],'attributes':_0x17906a[_0x1a10('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x1a10('0xa')](function(_0x2a16ff){logger[_0x1a10('0xb')](_0x1a10('0x1f'),_0x1d94b1);logger[_0x1a10('0xe')]('ShowSquareOdbc',_0x1d94b1,JSON['stringify'](_0x2a16ff));_0x5b5a59(_0x2a16ff);})['catch'](function(_0x40f3e8){logger[_0x1a10('0x11')](_0x1a10('0x1f'),_0x40f3e8['message'],_0x1d94b1);_0x2c1b6f(_0x28544f[_0x1a10('0x11')](0x1f4,_0x40f3e8[_0x1a10('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x139e=['update','delete','removeUsers','exports','util','path','connect-timeout','express','../../components/auth/service','../../config/environment','./squareProject.controller','index','get','/:id','show','/:id/users','isAuthenticated','getUsers','post','create','put'];(function(_0x56c084,_0xbce248){var _0xb83f92=function(_0x18a13c){while(--_0x18a13c){_0x56c084['push'](_0x56c084['shift']());}};_0xb83f92(++_0xbce248);}(_0x139e,0x1d2));var _0xe139=function(_0x102712,_0x1cf17c){_0x102712=_0x102712-0x0;var _0x404602=_0x139e[_0x102712];return _0x404602;};'use strict';var multer=require('multer');var util=require(_0xe139('0x0'));var path=require(_0xe139('0x1'));var timeout=require(_0xe139('0x2'));var express=require(_0xe139('0x3'));var router=express['Router']();var auth=require(_0xe139('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xe139('0x5'));var controller=require(_0xe139('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0xe139('0x7')]);router[_0xe139('0x8')](_0xe139('0x9'),auth['isAuthenticated'](),controller[_0xe139('0xa')]);router[_0xe139('0x8')](_0xe139('0xb'),auth[_0xe139('0xc')](),controller[_0xe139('0xd')]);router[_0xe139('0xe')]('/',auth['isAuthenticated'](),controller[_0xe139('0xf')]);router[_0xe139('0xe')](_0xe139('0xb'),auth[_0xe139('0xc')](),controller['addUsers']);router[_0xe139('0x10')](_0xe139('0x9'),auth['isAuthenticated'](),controller[_0xe139('0x11')]);router[_0xe139('0x12')](_0xe139('0x9'),auth[_0xe139('0xc')](),controller['destroy']);router[_0xe139('0x12')](_0xe139('0xb'),auth[_0xe139('0xc')](),controller[_0xe139('0x13')]);module[_0xe139('0x14')]=router;
\ No newline at end of file
+var _0xc27c=['exports','util','path','express','Router','../../components/interaction/service','../../config/environment','./squareProject.controller','isAuthenticated','index','get','/:id','post','create','/:id/users','put','update','delete','destroy','removeUsers'];(function(_0x39d544,_0x35c14f){var _0x5a5ff2=function(_0x2271fb){while(--_0x2271fb){_0x39d544['push'](_0x39d544['shift']());}};_0x5a5ff2(++_0x35c14f);}(_0xc27c,0x17d));var _0xcc27=function(_0x4b385e,_0x4eb8b3){_0x4b385e=_0x4b385e-0x0;var _0x29cf20=_0xc27c[_0x4b385e];return _0x29cf20;};'use strict';var multer=require('multer');var util=require(_0xcc27('0x0'));var path=require(_0xcc27('0x1'));var timeout=require('connect-timeout');var express=require(_0xcc27('0x2'));var router=express[_0xcc27('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0xcc27('0x4'));var config=require(_0xcc27('0x5'));var controller=require(_0xcc27('0x6'));router['get']('/',auth[_0xcc27('0x7')](),controller[_0xcc27('0x8')]);router[_0xcc27('0x9')](_0xcc27('0xa'),auth[_0xcc27('0x7')](),controller['show']);router['get']('/:id/users',auth[_0xcc27('0x7')](),controller['getUsers']);router[_0xcc27('0xb')]('/',auth[_0xcc27('0x7')](),controller[_0xcc27('0xc')]);router[_0xcc27('0xb')](_0xcc27('0xd'),auth[_0xcc27('0x7')](),controller['addUsers']);router[_0xcc27('0xe')](_0xcc27('0xa'),auth[_0xcc27('0x7')](),controller[_0xcc27('0xf')]);router[_0xcc27('0x10')](_0xcc27('0xa'),auth['isAuthenticated'](),controller[_0xcc27('0x11')]);router[_0xcc27('0x10')](_0xcc27('0xd'),auth[_0xcc27('0x7')](),controller[_0xcc27('0x12')]);module[_0xcc27('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d72=['sequelize','exports','STRING','name','TEXT','BLOB','long','getDataValue','preproduction','toString','utf8','production'];(function(_0x3002a4,_0x4daeca){var _0x20204a=function(_0x4d2636){while(--_0x4d2636){_0x3002a4['push'](_0x3002a4['shift']());}};_0x20204a(++_0x4daeca);}(_0x2d72,0xa8));var _0x22d7=function(_0x4bc56d,_0xfdd4e){_0x4bc56d=_0x4bc56d-0x0;var _0x3bdb05=_0x2d72[_0x4bc56d];return _0x3bdb05;};'use strict';var Sequelize=require(_0x22d7('0x0'));module[_0x22d7('0x1')]={'name':{'type':Sequelize[_0x22d7('0x2')],'unique':_0x22d7('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x22d7('0x2')]},'notes':{'type':Sequelize[_0x22d7('0x4')]},'preproduction':{'type':Sequelize[_0x22d7('0x5')](_0x22d7('0x6')),'get':function(){if(this[_0x22d7('0x7')](_0x22d7('0x8'))){return this[_0x22d7('0x7')](_0x22d7('0x8'))[_0x22d7('0x9')](_0x22d7('0xa'));}}},'production':{'type':Sequelize['BLOB'](_0x22d7('0x6')),'get':function(){if(this[_0x22d7('0x7')]('production')){return this[_0x22d7('0x7')](_0x22d7('0xb'))[_0x22d7('0x9')](_0x22d7('0xa'));}}}};
\ No newline at end of file
+var _0x720b=['exports','STRING','TEXT','long','getDataValue','preproduction','toString','utf8','BLOB','production','sequelize'];(function(_0x53d172,_0x46611b){var _0x1bd0a2=function(_0x19fb52){while(--_0x19fb52){_0x53d172['push'](_0x53d172['shift']());}};_0x1bd0a2(++_0x46611b);}(_0x720b,0x1d8));var _0xb720=function(_0x350db0,_0x53369f){_0x350db0=_0x350db0-0x0;var _0x3255ce=_0x720b[_0x350db0];return _0x3255ce;};'use strict';var Sequelize=require(_0xb720('0x0'));module[_0xb720('0x1')]={'name':{'type':Sequelize[_0xb720('0x2')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0xb720('0x2')]},'notes':{'type':Sequelize[_0xb720('0x3')]},'preproduction':{'type':Sequelize['BLOB'](_0xb720('0x4')),'get':function(){if(this[_0xb720('0x5')](_0xb720('0x6'))){return this['getDataValue'](_0xb720('0x6'))[_0xb720('0x7')](_0xb720('0x8'));}}},'production':{'type':Sequelize[_0xb720('0x9')](_0xb720('0x4')),'get':function(){if(this['getDataValue']('production')){return this[_0xb720('0x5')](_0xb720('0xa'))[_0xb720('0x7')](_0xb720('0x8'));}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb224=['dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','add','day','merge','filter','where','map','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','../../config/utils','../../config/environment','defaults','localhost','socket.io-emitter','redis','./squareProject.socket','register','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','SquareProject','rawAttributes','model','keys','query'];(function(_0x22663b,_0xc8c6e3){var _0x310d0a=function(_0x151e66){while(--_0x151e66){_0x22663b['push'](_0x22663b['shift']());}};_0x310d0a(++_0xc8c6e3);}(_0xb224,0x7f));var _0x4b22=function(_0x2e96de,_0x7b3fac){_0x2e96de=_0x2e96de-0x0;var _0x588f95=_0xb224[_0x2e96de];return _0x588f95;};'use strict';var pdf=require(_0x4b22('0x0'));var emlformat=require(_0x4b22('0x1'));var rimraf=require(_0x4b22('0x2'));var zipdir=require(_0x4b22('0x3'));var jsonpatch=require(_0x4b22('0x4'));var rp=require(_0x4b22('0x5'));var moment=require(_0x4b22('0x6'));var BPromise=require(_0x4b22('0x7'));var Mustache=require(_0x4b22('0x8'));var util=require(_0x4b22('0x9'));var path=require('path');var sox=require(_0x4b22('0xa'));var csv=require(_0x4b22('0xb'));var ejs=require(_0x4b22('0xc'));var fs=require('fs');var _=require(_0x4b22('0xd'));var squel=require('squel');var crypto=require(_0x4b22('0xe'));var jsforce=require(_0x4b22('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x4b22('0xb'));var querystring=require(_0x4b22('0x10'));var Papa=require(_0x4b22('0x11'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0x4b22('0x12'));var config=require(_0x4b22('0x13'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x4b22('0x14')](config['redis'],{'host':_0x4b22('0x15'),'port':0x18eb});var socket=require(_0x4b22('0x16'))(config[_0x4b22('0x17')]);require(_0x4b22('0x18'))[_0x4b22('0x19')](socket);function respondWithStatusCode(_0x592f6f,_0x5e3144){_0x5e3144=_0x5e3144||0xcc;return function(_0x20747f){if(_0x20747f){return _0x592f6f['sendStatus'](_0x5e3144);}return _0x592f6f[_0x4b22('0x1a')](_0x5e3144)[_0x4b22('0x1b')]();};}function respondWithResult(_0x2b6b95,_0x37abce){_0x37abce=_0x37abce||0xc8;return function(_0x5bb18e){if(_0x5bb18e){return _0x2b6b95[_0x4b22('0x1a')](_0x37abce)[_0x4b22('0x1c')](_0x5bb18e);}};}function respondWithFilteredResult(_0x37da8b,_0x5d778d){return function(_0x23c51a){if(_0x23c51a){var _0xdeb95=_0x23c51a[_0x4b22('0x1d')],_0x3c19d=_0x5d778d[_0x4b22('0x1e')],_0x4a98e7=_0x5d778d[_0x4b22('0x1e')]+_0x5d778d[_0x4b22('0x1f')],_0x546037;if(_0x4a98e7>=_0xdeb95){_0x4a98e7=_0xdeb95;_0x546037=0xc8;}else{_0x546037=0xce;}_0x37da8b['status'](_0x546037);return _0x37da8b[_0x4b22('0x20')](_0x4b22('0x21'),_0x3c19d+'-'+_0x4a98e7+'/'+_0xdeb95)[_0x4b22('0x1c')](_0x23c51a);}return null;};}function patchUpdates(_0x483de2){return function(_0x2793c2){try{jsonpatch[_0x4b22('0x22')](_0x2793c2,_0x483de2,!![]);}catch(_0x58fbfd){return BPromise[_0x4b22('0x23')](_0x58fbfd);}return _0x2793c2[_0x4b22('0x24')]();};}function saveUpdates(_0x30093a,_0x3fcb26){return function(_0x340712){if(_0x340712){return _0x340712[_0x4b22('0x25')](_0x30093a)[_0x4b22('0x26')](function(_0xf6528){return _0xf6528;});}return null;};}function removeEntity(_0x4e0bd5,_0x12aa24){return function(_0xc5e46e){if(_0xc5e46e){return _0xc5e46e[_0x4b22('0x27')]()[_0x4b22('0x26')](function(){_0x4e0bd5['status'](0xcc)[_0x4b22('0x1b')]();});}};}function handleEntityNotFound(_0x4c0362,_0x51fef5){return function(_0x3d7849){if(!_0x3d7849){_0x4c0362[_0x4b22('0x28')](0x194);}return _0x3d7849;};}function handleError(_0x508bc0,_0x57ee34){_0x57ee34=_0x57ee34||0x1f4;return function(_0x3b3c3b){logger[_0x4b22('0x29')](_0x3b3c3b[_0x4b22('0x2a')]);if(_0x3b3c3b['name']){delete _0x3b3c3b[_0x4b22('0x2b')];}_0x508bc0[_0x4b22('0x1a')](_0x57ee34)[_0x4b22('0x2c')](_0x3b3c3b);};}exports[_0x4b22('0x2d')]=function(_0x2dae15,_0xcefb1){var _0x1ab1d4={},_0x242fa2={},_0x2ce2a8={'count':0x0,'rows':[]};var _0x25c83e=db[_0x4b22('0x2e')][_0x4b22('0x2f')];_0x242fa2[_0x4b22('0x30')]=_[_0x4b22('0x31')](_0x25c83e);var _0x365078={'dateStart':_0x2dae15[_0x4b22('0x32')][_0x4b22('0x33')],'dateEnd':_0x2dae15['query'][_0x4b22('0x34')]};delete _0x2dae15['query'][_0x4b22('0x33')];delete _0x2dae15[_0x4b22('0x32')][_0x4b22('0x34')];_0x242fa2[_0x4b22('0x32')]=_['keys'](_0x2dae15[_0x4b22('0x32')]);_0x242fa2[_0x4b22('0x35')]=_[_0x4b22('0x36')](_0x242fa2[_0x4b22('0x30')],_0x242fa2[_0x4b22('0x32')]);_0x1ab1d4[_0x4b22('0x37')]=_[_0x4b22('0x36')](_0x242fa2[_0x4b22('0x30')],qs[_0x4b22('0x38')](_0x2dae15[_0x4b22('0x32')]['fields']));_0x1ab1d4[_0x4b22('0x37')]=_0x1ab1d4[_0x4b22('0x37')][_0x4b22('0x39')]?_0x1ab1d4['attributes']:_0x242fa2[_0x4b22('0x30')];if(!_0x2dae15[_0x4b22('0x32')][_0x4b22('0x3a')](_0x4b22('0x3b'))){_0x1ab1d4[_0x4b22('0x1f')]=qs[_0x4b22('0x1f')](_0x2dae15[_0x4b22('0x32')][_0x4b22('0x1f')]);_0x1ab1d4['offset']=qs[_0x4b22('0x1e')](_0x2dae15[_0x4b22('0x32')][_0x4b22('0x1e')]);}_0x1ab1d4[_0x4b22('0x3c')]=qs[_0x4b22('0x3d')](_0x2dae15[_0x4b22('0x32')]['sort']);_0x1ab1d4['where']=qs[_0x4b22('0x35')](_[_0x4b22('0x3e')](_0x2dae15[_0x4b22('0x32')],_0x242fa2[_0x4b22('0x35')]));if(_0x365078['dateStart']){if(_0x365078[_0x4b22('0x34')]){_0x365078[_0x4b22('0x34')]=moment(_0x365078[_0x4b22('0x34')])[_0x4b22('0x3f')](0x1,_0x4b22('0x40'));}else{_0x365078[_0x4b22('0x34')]=moment(_0x365078[_0x4b22('0x33')])[_0x4b22('0x3f')](0x1,_0x4b22('0x40'));}_[_0x4b22('0x41')](_0x1ab1d4['where'],{'createdAt':{'$gte':_0x365078[_0x4b22('0x33')],'$lte':_0x365078[_0x4b22('0x34')]}});}if(_0x2dae15[_0x4b22('0x32')][_0x4b22('0x42')]){_0x1ab1d4[_0x4b22('0x43')]=_[_0x4b22('0x41')](_0x1ab1d4['where'],{'$or':_[_0x4b22('0x44')](_0x1ab1d4[_0x4b22('0x37')],function(_0x38da1f){var _0x53effb={};_0x53effb[_0x38da1f]={'$like':'%'+_0x2dae15['query'][_0x4b22('0x42')]+'%'};return _0x53effb;})});}_0x1ab1d4=_['merge']({},_0x1ab1d4,_0x2dae15[_0x4b22('0x45')]);var _0x4758c3={'where':_0x1ab1d4[_0x4b22('0x43')]};return db[_0x4b22('0x2e')][_0x4b22('0x1d')](_0x4758c3)['then'](function(_0x1e907b){_0x2ce2a8[_0x4b22('0x1d')]=_0x1e907b;if(_0x2dae15['query'][_0x4b22('0x46')]){_0x1ab1d4['include']=[{'all':!![]}];}return db[_0x4b22('0x2e')][_0x4b22('0x47')](_0x1ab1d4);})['then'](function(_0x1694dd){_0x2ce2a8[_0x4b22('0x48')]=_0x1694dd;return _0x2ce2a8;})[_0x4b22('0x26')](respondWithFilteredResult(_0xcefb1,_0x1ab1d4))[_0x4b22('0x49')](handleError(_0xcefb1,null));};exports[_0x4b22('0x4a')]=function(_0x2ed5ee,_0x3b6494){var _0x4f3297={'raw':![],'where':{'id':_0x2ed5ee[_0x4b22('0x4b')]['id']}},_0x2a2156={};_0x2a2156[_0x4b22('0x30')]=_[_0x4b22('0x31')](db['SquareProject']['rawAttributes']);_0x2a2156[_0x4b22('0x32')]=_[_0x4b22('0x31')](_0x2ed5ee[_0x4b22('0x32')]);_0x2a2156['filters']=_['intersection'](_0x2a2156[_0x4b22('0x30')],_0x2a2156[_0x4b22('0x32')]);_0x4f3297[_0x4b22('0x37')]=_[_0x4b22('0x36')](_0x2a2156[_0x4b22('0x30')],qs[_0x4b22('0x38')](_0x2ed5ee['query']['fields']));_0x4f3297['attributes']=_0x4f3297['attributes'][_0x4b22('0x39')]?_0x4f3297['attributes']:_0x2a2156[_0x4b22('0x30')];if(_0x2ed5ee[_0x4b22('0x32')][_0x4b22('0x46')]){_0x4f3297[_0x4b22('0x4c')]=[{'all':!![]}];}_0x4f3297=_[_0x4b22('0x41')]({},_0x4f3297,_0x2ed5ee[_0x4b22('0x45')]);return db[_0x4b22('0x2e')][_0x4b22('0x4d')](_0x4f3297)['then'](handleEntityNotFound(_0x3b6494,null))[_0x4b22('0x26')](respondWithResult(_0x3b6494,null))[_0x4b22('0x49')](handleError(_0x3b6494,null));};exports[_0x4b22('0x4e')]=function(_0x55d9d6,_0x25ebef){return db[_0x4b22('0x2e')][_0x4b22('0x4e')](_0x55d9d6[_0x4b22('0x4f')],{})[_0x4b22('0x26')](respondWithResult(_0x25ebef,0xc9))[_0x4b22('0x49')](handleError(_0x25ebef,null));};exports[_0x4b22('0x25')]=function(_0x430a53,_0x1e9db6){if(_0x430a53['body']['id']){delete _0x430a53[_0x4b22('0x4f')]['id'];}return db[_0x4b22('0x2e')][_0x4b22('0x4d')]({'where':{'id':_0x430a53[_0x4b22('0x4b')]['id']}})[_0x4b22('0x26')](handleEntityNotFound(_0x1e9db6,null))['then'](saveUpdates(_0x430a53[_0x4b22('0x4f')],null))['then'](respondWithResult(_0x1e9db6,null))[_0x4b22('0x49')](handleError(_0x1e9db6,null));};exports[_0x4b22('0x27')]=function(_0x2a1ee4,_0x553de1){return db[_0x4b22('0x2e')]['find']({'where':{'id':_0x2a1ee4[_0x4b22('0x4b')]['id']}})[_0x4b22('0x26')](handleEntityNotFound(_0x553de1,null))[_0x4b22('0x26')](removeEntity(_0x553de1,null))[_0x4b22('0x49')](handleError(_0x553de1,null));};exports[_0x4b22('0x50')]=function(_0x550578,_0x37d1d3,_0x5d023d){return db['SquareProject'][_0x4b22('0x4d')]({'where':{'id':_0x550578['params']['id']}})['then'](handleEntityNotFound(_0x37d1d3,null))[_0x4b22('0x26')](function(_0x530f20){if(_0x530f20){return _0x530f20[_0x4b22('0x50')](_0x550578[_0x4b22('0x4f')]['ids'],_['omit'](_0x550578['body'],[_0x4b22('0x51'),'id'])||{});}})['then'](respondWithResult(_0x37d1d3,null))[_0x4b22('0x49')](handleError(_0x37d1d3,null));};exports[_0x4b22('0x52')]=function(_0x56fa0b,_0x230433,_0x2ed88c){var _0x276e27;return db[_0x4b22('0x2e')][_0x4b22('0x4d')]({'where':{'id':_0x56fa0b[_0x4b22('0x4b')]['id']}})[_0x4b22('0x26')](handleEntityNotFound(_0x230433,null))[_0x4b22('0x26')](function(_0x3f654c){if(_0x3f654c){return _0x3f654c[_0x4b22('0x52')](_0x56fa0b[_0x4b22('0x32')][_0x4b22('0x51')])[_0x4b22('0x26')](function(_0xdfacab){if(_[_0x4b22('0x53')](_0x56fa0b['query'][_0x4b22('0x51')])){for(var _0x5531be=0x0;_0x5531be<_0x56fa0b['query'][_0x4b22('0x51')][_0x4b22('0x39')];_0x5531be+=0x1){socket[_0x4b22('0x54')](_0x4b22('0x55'),{'UserId':_0x56fa0b['query'][_0x4b22('0x51')][_0x5531be],'SquareProjectId':_0x56fa0b[_0x4b22('0x4b')]['id']});}}else{socket[_0x4b22('0x54')](_0x4b22('0x55'),{'UserId':_0x56fa0b['query'][_0x4b22('0x51')],'SquareProjectId':_0x56fa0b[_0x4b22('0x4b')]['id']});}});}})['then'](respondWithStatusCode(_0x230433,null))['catch'](handleError(_0x230433,null));};exports[_0x4b22('0x56')]=function(_0x25bf0c,_0x120a2b,_0x595dfd){var _0x309787={};var _0x38d929={};var _0x593029;var _0x23e62a;return db[_0x4b22('0x2e')][_0x4b22('0x57')]({'where':{'id':_0x25bf0c['params']['id']}})[_0x4b22('0x26')](handleEntityNotFound(_0x120a2b,null))[_0x4b22('0x26')](function(_0x44aa4c){if(_0x44aa4c){_0x593029=_0x44aa4c;_0x38d929[_0x4b22('0x30')]=_[_0x4b22('0x31')](db[_0x4b22('0x58')][_0x4b22('0x2f')]);_0x38d929['query']=_['keys'](_0x25bf0c[_0x4b22('0x32')]);_0x38d929[_0x4b22('0x35')]=_[_0x4b22('0x36')](_0x38d929[_0x4b22('0x30')],_0x38d929[_0x4b22('0x32')]);_0x309787[_0x4b22('0x37')]=_[_0x4b22('0x36')](_0x38d929[_0x4b22('0x30')],qs['fields'](_0x25bf0c[_0x4b22('0x32')][_0x4b22('0x38')]));_0x309787[_0x4b22('0x37')]=_0x309787[_0x4b22('0x37')]['length']?_0x309787[_0x4b22('0x37')]:_0x38d929[_0x4b22('0x30')];_0x309787[_0x4b22('0x3c')]=qs[_0x4b22('0x3d')](_0x25bf0c['query']['sort']);_0x309787['where']=qs['filters'](_[_0x4b22('0x3e')](_0x25bf0c['query'],_0x38d929[_0x4b22('0x35')]));if(_0x25bf0c['query'][_0x4b22('0x42')]){_0x309787[_0x4b22('0x43')]=_[_0x4b22('0x41')](_0x309787['where'],{'$or':_[_0x4b22('0x44')](_0x309787['attributes'],function(_0x50a50f){var _0x259163={};_0x259163[_0x50a50f]={'$like':'%'+_0x25bf0c[_0x4b22('0x32')]['filter']+'%'};return _0x259163;})});}_0x309787=_[_0x4b22('0x41')]({},_0x309787,_0x25bf0c[_0x4b22('0x45')]);return _0x593029[_0x4b22('0x56')](_0x309787);}})[_0x4b22('0x26')](function(_0x16f91d){if(_0x16f91d){_0x23e62a=_0x16f91d[_0x4b22('0x39')];if(!_0x25bf0c[_0x4b22('0x32')][_0x4b22('0x3a')](_0x4b22('0x3b'))){_0x309787[_0x4b22('0x1f')]=qs[_0x4b22('0x1f')](_0x25bf0c[_0x4b22('0x32')][_0x4b22('0x1f')]);_0x309787[_0x4b22('0x1e')]=qs[_0x4b22('0x1e')](_0x25bf0c[_0x4b22('0x32')][_0x4b22('0x1e')]);}return _0x593029[_0x4b22('0x56')](_0x309787);}})[_0x4b22('0x26')](function(_0x5a35f1){if(_0x5a35f1){return _0x5a35f1?{'count':_0x23e62a,'rows':_0x5a35f1}:null;}})['then'](respondWithResult(_0x120a2b,null))[_0x4b22('0x49')](handleError(_0x120a2b,null));};
\ No newline at end of file
+var _0x35aa=['ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','filter','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','end','status','count','offset','limit','set','Content-Range','json','apply','reject','save','destroy','then','error','stack','name','send','SquareProject','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','map','options','includeAll','findAll','rows','catch','length','include','find','create','body','update','params','addUsers'];(function(_0x4bf490,_0x5ecdb4){var _0x1e4c7f=function(_0x17987d){while(--_0x17987d){_0x4bf490['push'](_0x4bf490['shift']());}};_0x1e4c7f(++_0x5ecdb4);}(_0x35aa,0xbe));var _0xa35a=function(_0x5e57aa,_0x5cf040){_0x5e57aa=_0x5e57aa-0x0;var _0x4c376f=_0x35aa[_0x5e57aa];return _0x4c376f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xa35a('0x0'));var rimraf=require(_0xa35a('0x1'));var zipdir=require(_0xa35a('0x2'));var jsonpatch=require(_0xa35a('0x3'));var rp=require('request-promise');var moment=require(_0xa35a('0x4'));var BPromise=require(_0xa35a('0x5'));var Mustache=require(_0xa35a('0x6'));var util=require(_0xa35a('0x7'));var path=require(_0xa35a('0x8'));var sox=require(_0xa35a('0x9'));var csv=require(_0xa35a('0xa'));var ejs=require(_0xa35a('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xa35a('0xc'));var crypto=require('crypto');var jsforce=require(_0xa35a('0xd'));var deskjs=require(_0xa35a('0xe'));var toCsv=require(_0xa35a('0xa'));var querystring=require(_0xa35a('0xf'));var Papa=require(_0xa35a('0x10'));var Redis=require(_0xa35a('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0xa35a('0x12'))(_0xa35a('0x13'));var utils=require(_0xa35a('0x14'));var config=require(_0xa35a('0x15'));var db=require('../../mysqldb')['db'];config[_0xa35a('0x16')]=_[_0xa35a('0x17')](config['redis'],{'host':_0xa35a('0x18'),'port':0x18eb});var socket=require(_0xa35a('0x19'))(new Redis(config[_0xa35a('0x16')]));require(_0xa35a('0x1a'))[_0xa35a('0x1b')](socket);function respondWithStatusCode(_0xcab474,_0x5b5658){_0x5b5658=_0x5b5658||0xcc;return function(_0x5d1591){if(_0x5d1591){return _0xcab474[_0xa35a('0x1c')](_0x5b5658);}return _0xcab474['status'](_0x5b5658)[_0xa35a('0x1d')]();};}function respondWithResult(_0x30ee5f,_0x5160e8){_0x5160e8=_0x5160e8||0xc8;return function(_0x3f04b1){if(_0x3f04b1){return _0x30ee5f[_0xa35a('0x1e')](_0x5160e8)['json'](_0x3f04b1);}};}function respondWithFilteredResult(_0x5cf7a6,_0x457e28){return function(_0x41c38a){if(_0x41c38a){var _0x408930=_0x41c38a[_0xa35a('0x1f')],_0x1c2ef0=_0x457e28[_0xa35a('0x20')],_0xedcf90=_0x457e28[_0xa35a('0x20')]+_0x457e28[_0xa35a('0x21')],_0x223b82;if(_0xedcf90>=_0x408930){_0xedcf90=_0x408930;_0x223b82=0xc8;}else{_0x223b82=0xce;}_0x5cf7a6[_0xa35a('0x1e')](_0x223b82);return _0x5cf7a6[_0xa35a('0x22')](_0xa35a('0x23'),_0x1c2ef0+'-'+_0xedcf90+'/'+_0x408930)[_0xa35a('0x24')](_0x41c38a);}return null;};}function patchUpdates(_0x24802c){return function(_0x13b584){try{jsonpatch[_0xa35a('0x25')](_0x13b584,_0x24802c,!![]);}catch(_0xbb6da8){return BPromise[_0xa35a('0x26')](_0xbb6da8);}return _0x13b584[_0xa35a('0x27')]();};}function saveUpdates(_0x546c22,_0xf4d654){return function(_0x4489fc){if(_0x4489fc){return _0x4489fc['update'](_0x546c22)['then'](function(_0x1f10ec){return _0x1f10ec;});}return null;};}function removeEntity(_0x5c9fa5,_0x125612){return function(_0x5a36f9){if(_0x5a36f9){return _0x5a36f9[_0xa35a('0x28')]()[_0xa35a('0x29')](function(){_0x5c9fa5[_0xa35a('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x29ae08,_0x2bfc7b){return function(_0x211993){if(!_0x211993){_0x29ae08[_0xa35a('0x1c')](0x194);}return _0x211993;};}function handleError(_0x4d4755,_0x59ec78){_0x59ec78=_0x59ec78||0x1f4;return function(_0x866457){logger[_0xa35a('0x2a')](_0x866457[_0xa35a('0x2b')]);if(_0x866457[_0xa35a('0x2c')]){delete _0x866457[_0xa35a('0x2c')];}_0x4d4755[_0xa35a('0x1e')](_0x59ec78)[_0xa35a('0x2d')](_0x866457);};}exports['index']=function(_0x1642f8,_0x14d4fd){var _0x3b127c={},_0x3e8a68={},_0x47dd9a={'count':0x0,'rows':[]};var _0x539d67=db[_0xa35a('0x2e')][_0xa35a('0x2f')];_0x3e8a68[_0xa35a('0x30')]=_[_0xa35a('0x31')](_0x539d67);var _0x431934={'dateStart':_0x1642f8[_0xa35a('0x32')][_0xa35a('0x33')],'dateEnd':_0x1642f8[_0xa35a('0x32')][_0xa35a('0x34')]};delete _0x1642f8[_0xa35a('0x32')]['dateStart'];delete _0x1642f8[_0xa35a('0x32')][_0xa35a('0x34')];_0x3e8a68[_0xa35a('0x32')]=_['keys'](_0x1642f8[_0xa35a('0x32')]);_0x3e8a68[_0xa35a('0x35')]=_[_0xa35a('0x36')](_0x3e8a68[_0xa35a('0x30')],_0x3e8a68[_0xa35a('0x32')]);_0x3b127c[_0xa35a('0x37')]=_[_0xa35a('0x36')](_0x3e8a68[_0xa35a('0x30')],qs[_0xa35a('0x38')](_0x1642f8[_0xa35a('0x32')][_0xa35a('0x38')]));_0x3b127c['attributes']=_0x3b127c[_0xa35a('0x37')]['length']?_0x3b127c[_0xa35a('0x37')]:_0x3e8a68[_0xa35a('0x30')];if(!_0x1642f8[_0xa35a('0x32')][_0xa35a('0x39')](_0xa35a('0x3a'))){_0x3b127c[_0xa35a('0x21')]=qs['limit'](_0x1642f8['query'][_0xa35a('0x21')]);_0x3b127c[_0xa35a('0x20')]=qs[_0xa35a('0x20')](_0x1642f8[_0xa35a('0x32')][_0xa35a('0x20')]);}_0x3b127c[_0xa35a('0x3b')]=qs[_0xa35a('0x3c')](_0x1642f8[_0xa35a('0x32')][_0xa35a('0x3c')]);_0x3b127c[_0xa35a('0x3d')]=qs[_0xa35a('0x35')](_[_0xa35a('0x3e')](_0x1642f8['query'],_0x3e8a68['filters']));if(_0x431934[_0xa35a('0x33')]){if(_0x431934[_0xa35a('0x34')]){_0x431934[_0xa35a('0x34')]=moment(_0x431934[_0xa35a('0x34')])[_0xa35a('0x3f')](0x1,_0xa35a('0x40'));}else{_0x431934['dateEnd']=moment(_0x431934[_0xa35a('0x33')])[_0xa35a('0x3f')](0x1,_0xa35a('0x40'));}_['merge'](_0x3b127c[_0xa35a('0x3d')],{'createdAt':{'$gte':_0x431934[_0xa35a('0x33')],'$lte':_0x431934[_0xa35a('0x34')]}});}if(_0x1642f8[_0xa35a('0x32')]['filter']){_0x3b127c[_0xa35a('0x3d')]=_[_0xa35a('0x41')](_0x3b127c[_0xa35a('0x3d')],{'$or':_[_0xa35a('0x42')](_0x3b127c['attributes'],function(_0x59cc5b){var _0x20d144={};_0x20d144[_0x59cc5b]={'$like':'%'+_0x1642f8[_0xa35a('0x32')]['filter']+'%'};return _0x20d144;})});}_0x3b127c=_[_0xa35a('0x41')]({},_0x3b127c,_0x1642f8[_0xa35a('0x43')]);var _0xabcfc1={'where':_0x3b127c[_0xa35a('0x3d')]};return db['SquareProject'][_0xa35a('0x1f')](_0xabcfc1)[_0xa35a('0x29')](function(_0x1fddd2){_0x47dd9a[_0xa35a('0x1f')]=_0x1fddd2;if(_0x1642f8[_0xa35a('0x32')][_0xa35a('0x44')]){_0x3b127c['include']=[{'all':!![]}];}return db[_0xa35a('0x2e')][_0xa35a('0x45')](_0x3b127c);})[_0xa35a('0x29')](function(_0x365a8c){_0x47dd9a[_0xa35a('0x46')]=_0x365a8c;return _0x47dd9a;})[_0xa35a('0x29')](respondWithFilteredResult(_0x14d4fd,_0x3b127c))[_0xa35a('0x47')](handleError(_0x14d4fd,null));};exports['show']=function(_0x24bc2c,_0x5f165e){var _0x3423da={'raw':![],'where':{'id':_0x24bc2c['params']['id']}},_0x599adb={};_0x599adb[_0xa35a('0x30')]=_[_0xa35a('0x31')](db[_0xa35a('0x2e')][_0xa35a('0x2f')]);_0x599adb[_0xa35a('0x32')]=_[_0xa35a('0x31')](_0x24bc2c[_0xa35a('0x32')]);_0x599adb[_0xa35a('0x35')]=_[_0xa35a('0x36')](_0x599adb[_0xa35a('0x30')],_0x599adb[_0xa35a('0x32')]);_0x3423da[_0xa35a('0x37')]=_['intersection'](_0x599adb[_0xa35a('0x30')],qs[_0xa35a('0x38')](_0x24bc2c[_0xa35a('0x32')][_0xa35a('0x38')]));_0x3423da[_0xa35a('0x37')]=_0x3423da[_0xa35a('0x37')][_0xa35a('0x48')]?_0x3423da[_0xa35a('0x37')]:_0x599adb[_0xa35a('0x30')];if(_0x24bc2c[_0xa35a('0x32')][_0xa35a('0x44')]){_0x3423da[_0xa35a('0x49')]=[{'all':!![]}];}_0x3423da=_[_0xa35a('0x41')]({},_0x3423da,_0x24bc2c['options']);return db['SquareProject'][_0xa35a('0x4a')](_0x3423da)[_0xa35a('0x29')](handleEntityNotFound(_0x5f165e,null))['then'](respondWithResult(_0x5f165e,null))[_0xa35a('0x47')](handleError(_0x5f165e,null));};exports[_0xa35a('0x4b')]=function(_0x47da20,_0x44b93b){return db[_0xa35a('0x2e')][_0xa35a('0x4b')](_0x47da20[_0xa35a('0x4c')],{})[_0xa35a('0x29')](respondWithResult(_0x44b93b,0xc9))[_0xa35a('0x47')](handleError(_0x44b93b,null));};exports[_0xa35a('0x4d')]=function(_0x31fcc4,_0x2b34f7){if(_0x31fcc4[_0xa35a('0x4c')]['id']){delete _0x31fcc4['body']['id'];}return db[_0xa35a('0x2e')]['find']({'where':{'id':_0x31fcc4['params']['id']}})['then'](handleEntityNotFound(_0x2b34f7,null))[_0xa35a('0x29')](saveUpdates(_0x31fcc4[_0xa35a('0x4c')],null))[_0xa35a('0x29')](respondWithResult(_0x2b34f7,null))['catch'](handleError(_0x2b34f7,null));};exports[_0xa35a('0x28')]=function(_0x342da0,_0x329545){return db[_0xa35a('0x2e')][_0xa35a('0x4a')]({'where':{'id':_0x342da0[_0xa35a('0x4e')]['id']}})[_0xa35a('0x29')](handleEntityNotFound(_0x329545,null))['then'](removeEntity(_0x329545,null))[_0xa35a('0x47')](handleError(_0x329545,null));};exports['addUsers']=function(_0x2a6989,_0x5736e1,_0x2058c8){return db[_0xa35a('0x2e')][_0xa35a('0x4a')]({'where':{'id':_0x2a6989[_0xa35a('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5736e1,null))[_0xa35a('0x29')](function(_0x4df7c5){if(_0x4df7c5){return _0x4df7c5[_0xa35a('0x4f')](_0x2a6989['body'][_0xa35a('0x50')],_[_0xa35a('0x51')](_0x2a6989[_0xa35a('0x4c')],['ids','id'])||{});}})[_0xa35a('0x29')](respondWithResult(_0x5736e1,null))['catch'](handleError(_0x5736e1,null));};exports[_0xa35a('0x52')]=function(_0x526dc0,_0xc7b46d,_0x122b7d){var _0x34b706;return db[_0xa35a('0x2e')][_0xa35a('0x4a')]({'where':{'id':_0x526dc0[_0xa35a('0x4e')]['id']}})[_0xa35a('0x29')](handleEntityNotFound(_0xc7b46d,null))[_0xa35a('0x29')](function(_0x701934){if(_0x701934){return _0x701934[_0xa35a('0x52')](_0x526dc0['query']['ids'])[_0xa35a('0x29')](function(_0x31b4d2){if(_[_0xa35a('0x53')](_0x526dc0[_0xa35a('0x32')]['ids'])){for(var _0x5d0fc8=0x0;_0x5d0fc8<_0x526dc0[_0xa35a('0x32')][_0xa35a('0x50')][_0xa35a('0x48')];_0x5d0fc8+=0x1){socket[_0xa35a('0x54')](_0xa35a('0x55'),{'UserId':_0x526dc0[_0xa35a('0x32')][_0xa35a('0x50')][_0x5d0fc8],'SquareProjectId':_0x526dc0[_0xa35a('0x4e')]['id']});}}else{socket[_0xa35a('0x54')](_0xa35a('0x55'),{'UserId':_0x526dc0[_0xa35a('0x32')]['ids'],'SquareProjectId':_0x526dc0[_0xa35a('0x4e')]['id']});}});}})[_0xa35a('0x29')](respondWithStatusCode(_0xc7b46d,null))['catch'](handleError(_0xc7b46d,null));};exports[_0xa35a('0x56')]=function(_0x5c36f9,_0x187913,_0x14a616){var _0x4d7f1e={};var _0x32dc59={};var _0x796d15;var _0x5555aa;return db[_0xa35a('0x2e')][_0xa35a('0x57')]({'where':{'id':_0x5c36f9[_0xa35a('0x4e')]['id']}})[_0xa35a('0x29')](handleEntityNotFound(_0x187913,null))[_0xa35a('0x29')](function(_0x270c6f){if(_0x270c6f){_0x796d15=_0x270c6f;_0x32dc59[_0xa35a('0x30')]=_['keys'](db[_0xa35a('0x58')][_0xa35a('0x2f')]);_0x32dc59[_0xa35a('0x32')]=_[_0xa35a('0x31')](_0x5c36f9[_0xa35a('0x32')]);_0x32dc59[_0xa35a('0x35')]=_[_0xa35a('0x36')](_0x32dc59[_0xa35a('0x30')],_0x32dc59[_0xa35a('0x32')]);_0x4d7f1e[_0xa35a('0x37')]=_[_0xa35a('0x36')](_0x32dc59['model'],qs[_0xa35a('0x38')](_0x5c36f9['query'][_0xa35a('0x38')]));_0x4d7f1e['attributes']=_0x4d7f1e['attributes']['length']?_0x4d7f1e[_0xa35a('0x37')]:_0x32dc59['model'];_0x4d7f1e[_0xa35a('0x3b')]=qs['sort'](_0x5c36f9[_0xa35a('0x32')][_0xa35a('0x3c')]);_0x4d7f1e['where']=qs[_0xa35a('0x35')](_[_0xa35a('0x3e')](_0x5c36f9[_0xa35a('0x32')],_0x32dc59[_0xa35a('0x35')]));if(_0x5c36f9[_0xa35a('0x32')][_0xa35a('0x59')]){_0x4d7f1e[_0xa35a('0x3d')]=_['merge'](_0x4d7f1e[_0xa35a('0x3d')],{'$or':_['map'](_0x4d7f1e['attributes'],function(_0x3fa1a6){var _0x2c48af={};_0x2c48af[_0x3fa1a6]={'$like':'%'+_0x5c36f9['query'][_0xa35a('0x59')]+'%'};return _0x2c48af;})});}_0x4d7f1e=_[_0xa35a('0x41')]({},_0x4d7f1e,_0x5c36f9[_0xa35a('0x43')]);return _0x796d15[_0xa35a('0x56')](_0x4d7f1e);}})[_0xa35a('0x29')](function(_0x3bb1dc){if(_0x3bb1dc){_0x5555aa=_0x3bb1dc[_0xa35a('0x48')];if(!_0x5c36f9[_0xa35a('0x32')][_0xa35a('0x39')](_0xa35a('0x3a'))){_0x4d7f1e[_0xa35a('0x21')]=qs[_0xa35a('0x21')](_0x5c36f9[_0xa35a('0x32')][_0xa35a('0x21')]);_0x4d7f1e[_0xa35a('0x20')]=qs[_0xa35a('0x20')](_0x5c36f9[_0xa35a('0x32')]['offset']);}return _0x796d15[_0xa35a('0x56')](_0x4d7f1e);}})[_0xa35a('0x29')](function(_0x25ced0){if(_0x25ced0){return _0x25ced0?{'count':_0x5555aa,'rows':_0x25ced0}:null;}})[_0xa35a('0x29')](respondWithResult(_0x187913,null))['catch'](handleError(_0x187913,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb65c=['setMaxListeners','save','update','emit','hasOwnProperty','exports','events','../../mysqldb'];(function(_0x16b87d,_0x4f915b){var _0x56ac94=function(_0x558519){while(--_0x558519){_0x16b87d['push'](_0x16b87d['shift']());}};_0x56ac94(++_0x4f915b);}(_0xb65c,0x16e));var _0xcb65=function(_0x491c1e,_0x32710a){_0x491c1e=_0x491c1e-0x0;var _0x30d20b=_0xb65c[_0x491c1e];return _0x30d20b;};'use strict';var EventEmitter=require(_0xcb65('0x0'));var SquareProject=require(_0xcb65('0x1'))['db']['SquareProject'];var SquareProjectEvents=new EventEmitter();SquareProjectEvents[_0xcb65('0x2')](0x0);var events={'afterCreate':_0xcb65('0x3'),'afterUpdate':_0xcb65('0x4'),'afterDestroy':'remove'};function emitEvent(_0x162612){return function(_0x39c7ab,_0x4a4627,_0x34b6c2){SquareProjectEvents[_0xcb65('0x5')](_0x162612+':'+_0x39c7ab['id'],_0x39c7ab);SquareProjectEvents[_0xcb65('0x5')](_0x162612,_0x39c7ab);_0x34b6c2(null);};}for(var e in events){if(events[_0xcb65('0x6')](e)){var event=events[e];SquareProject['hook'](e,emitEvent(event));}}module[_0xcb65('0x7')]=SquareProjectEvents;
\ No newline at end of file
+var _0x10df=['save','update','emit','hasOwnProperty','hook','exports','events','../../mysqldb','SquareProject'];(function(_0x547e20,_0x284545){var _0x359171=function(_0x590250){while(--_0x590250){_0x547e20['push'](_0x547e20['shift']());}};_0x359171(++_0x284545);}(_0x10df,0xb1));var _0xf10d=function(_0x4c2cda,_0x5945b0){_0x4c2cda=_0x4c2cda-0x0;var _0x59c47d=_0x10df[_0x4c2cda];return _0x59c47d;};'use strict';var EventEmitter=require(_0xf10d('0x0'));var SquareProject=require(_0xf10d('0x1'))['db'][_0xf10d('0x2')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xf10d('0x3'),'afterUpdate':_0xf10d('0x4'),'afterDestroy':'remove'};function emitEvent(_0x237498){return function(_0xa55dec,_0x2b7250,_0x1da6ef){SquareProjectEvents['emit'](_0x237498+':'+_0xa55dec['id'],_0xa55dec);SquareProjectEvents[_0xf10d('0x5')](_0x237498,_0xa55dec);_0x1da6ef(null);};}for(var e in events){if(events[_0xf10d('0x6')](e)){var event=events[e];SquareProject[_0xf10d('0x7')](e,emitEvent(event));}}module[_0xf10d('0x8')]=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8cc=['./squareProject.attributes','exports','define','SquareProject','square_projects','lodash','util','../../config/logger','moment','bluebird'];(function(_0x5eff7f,_0xb93af2){var _0x51958a=function(_0x3767d7){while(--_0x3767d7){_0x5eff7f['push'](_0x5eff7f['shift']());}};_0x51958a(++_0xb93af2);}(_0xd8cc,0x109));var _0xcd8c=function(_0x4a4922,_0x82cb8f){_0x4a4922=_0x4a4922-0x0;var _0x55a8c6=_0xd8cc[_0x4a4922];return _0x55a8c6;};'use strict';var _=require(_0xcd8c('0x0'));var util=require(_0xcd8c('0x1'));var logger=require(_0xcd8c('0x2'))('api');var moment=require(_0xcd8c('0x3'));var BPromise=require(_0xcd8c('0x4'));var rp=require('request-promise');var attributes=require(_0xcd8c('0x5'));module[_0xcd8c('0x6')]=function(_0x2ca562,_0x3c79b5){return _0x2ca562[_0xcd8c('0x7')](_0xcd8c('0x8'),attributes,{'tableName':_0xcd8c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf77b=['request-promise','./squareProject.attributes','exports','define','SquareProject','square_projects','util','api','moment','bluebird'];(function(_0x36c70f,_0x3ca843){var _0x221676=function(_0x517471){while(--_0x517471){_0x36c70f['push'](_0x36c70f['shift']());}};_0x221676(++_0x3ca843);}(_0xf77b,0x164));var _0xbf77=function(_0x20a558,_0x160e0e){_0x20a558=_0x20a558-0x0;var _0x53d3f7=_0xf77b[_0x20a558];return _0x53d3f7;};'use strict';var _=require('lodash');var util=require(_0xbf77('0x0'));var logger=require('../../config/logger')(_0xbf77('0x1'));var moment=require(_0xbf77('0x2'));var BPromise=require(_0xbf77('0x3'));var rp=require(_0xbf77('0x4'));var attributes=require(_0xbf77('0x5'));module[_0xbf77('0x6')]=function(_0x8fd720,_0x70ac62){return _0x8fd720[_0xbf77('0x7')](_0xbf77('0x8'),attributes,{'tableName':_0xbf77('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x315f=['lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./squareProject.socket','register','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','SquareProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ShowSquareProject','SquareProject','find','options','include','map','attributes','model','catch'];(function(_0x39302e,_0x1a6af9){var _0x4e6dcf=function(_0x329b13){while(--_0x329b13){_0x39302e['push'](_0x39302e['shift']());}};_0x4e6dcf(++_0x1a6af9);}(_0x315f,0x120));var _0xf315=function(_0x47e7dd,_0x51b041){_0x47e7dd=_0x47e7dd-0x0;var _0x38501f=_0x315f[_0x47e7dd];return _0x38501f;};'use strict';var _=require(_0xf315('0x0'));var util=require(_0xf315('0x1'));var moment=require(_0xf315('0x2'));var BPromise=require(_0xf315('0x3'));var rs=require(_0xf315('0x4'));var fs=require('fs');var db=require(_0xf315('0x5'))['db'];var utils=require(_0xf315('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xf315('0x7'));var jayson=require(_0xf315('0x8'));var client=jayson['client'][_0xf315('0x9')]({'port':0x232a});config['redis']=_[_0xf315('0xa')](config[_0xf315('0xb')],{'host':_0xf315('0xc'),'port':0x18eb});var socket=require(_0xf315('0xd'))(config[_0xf315('0xb')]);require(_0xf315('0xe'))[_0xf315('0xf')](socket);function respondWithRpcPromise(_0x1ce1fb,_0x31ff5b,_0xa38072){return new BPromise(function(_0x197847,_0x4dbd04){return client[_0xf315('0x10')](_0x1ce1fb,_0xa38072)[_0xf315('0x11')](function(_0x4299a3){logger[_0xf315('0x12')](_0xf315('0x13'),_0x31ff5b,_0xf315('0x14'));logger[_0xf315('0x15')](_0xf315('0x16'),_0x31ff5b,_0xf315('0x14'),JSON[_0xf315('0x17')](_0x4299a3));if(_0x4299a3['error']){if(_0x4299a3[_0xf315('0x18')][_0xf315('0x19')]===0x1f4){logger[_0xf315('0x18')](_0xf315('0x13'),_0x31ff5b,_0x4299a3[_0xf315('0x18')][_0xf315('0x1a')]);return _0x4dbd04(_0x4299a3[_0xf315('0x18')]['message']);}logger[_0xf315('0x18')]('SquareProject,\x20%s,\x20%s',_0x31ff5b,_0x4299a3[_0xf315('0x18')][_0xf315('0x1a')]);return _0x197847(_0x4299a3['error'][_0xf315('0x1a')]);}else{logger[_0xf315('0x12')]('SquareProject,\x20%s,\x20%s',_0x31ff5b,_0xf315('0x14'));_0x197847(_0x4299a3['result'][_0xf315('0x1a')]);}})['catch'](function(_0x2f8323){logger[_0xf315('0x18')](_0xf315('0x13'),_0x31ff5b,_0x2f8323);_0x4dbd04(_0x2f8323);});});}exports[_0xf315('0x1b')]=function(_0x24c4f7){var _0x530d9c=this;return new Promise(function(_0xca57c4,_0x15adbe){return db[_0xf315('0x1c')][_0xf315('0x1d')]({'raw':_0x24c4f7['options']?_0x24c4f7[_0xf315('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x24c4f7[_0xf315('0x1e')]?_0x24c4f7[_0xf315('0x1e')]['where']||null:null,'attributes':_0x24c4f7[_0xf315('0x1e')]?_0x24c4f7[_0xf315('0x1e')]['attributes']||null:null,'include':_0x24c4f7[_0xf315('0x1e')]?_0x24c4f7[_0xf315('0x1e')][_0xf315('0x1f')]?_[_0xf315('0x20')](_0x24c4f7['options'][_0xf315('0x1f')],function(_0x25a85b){return{'model':db[_0x25a85b['model']],'as':_0x25a85b['as'],'attributes':_0x25a85b[_0xf315('0x21')],'include':_0x25a85b[_0xf315('0x1f')]?_[_0xf315('0x20')](_0x25a85b[_0xf315('0x1f')],function(_0x287af9){return{'model':db[_0x287af9['model']],'as':_0x287af9['as'],'attributes':_0x287af9['attributes'],'include':_0x287af9[_0xf315('0x1f')]?_[_0xf315('0x20')](_0x287af9[_0xf315('0x1f')],function(_0x4043b5){return{'model':db[_0x4043b5[_0xf315('0x22')]],'as':_0x4043b5['as'],'attributes':_0x4043b5[_0xf315('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x489e24){logger[_0xf315('0x12')]('ShowSquareProject',_0x24c4f7);logger[_0xf315('0x15')](_0xf315('0x1b'),_0x24c4f7,JSON[_0xf315('0x17')](_0x489e24));_0xca57c4(_0x489e24);})[_0xf315('0x23')](function(_0x452f64){logger[_0xf315('0x18')](_0xf315('0x1b'),_0x452f64['message'],_0x24c4f7);_0x15adbe(_0x530d9c[_0xf315('0x18')](0x1f4,_0x452f64[_0xf315('0x1a')]));});});};
\ No newline at end of file
+var _0xa9e0=['catch','ShowSquareProject','find','options','raw','where','attributes','include','map','model','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter','register','SquareProject,\x20%s,\x20%s','request\x20sent','debug','SquareProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result'];(function(_0x454b56,_0xe6f46a){var _0x87f528=function(_0x5c6940){while(--_0x5c6940){_0x454b56['push'](_0x454b56['shift']());}};_0x87f528(++_0xe6f46a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x373dee,_0x1a8c45){_0x373dee=_0x373dee-0x0;var _0x46798f=_0xa9e0[_0x373dee];return _0x46798f;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});config[_0x0a9e('0xa')]=_[_0x0a9e('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x0a9e('0xc'))(new Redis(config['redis']));require('./squareProject.socket')[_0x0a9e('0xd')](socket);function respondWithRpcPromise(_0xf81284,_0x307b3e,_0x3ab53f){return new BPromise(function(_0xfeb75b,_0xbd1168){return client['request'](_0xf81284,_0x3ab53f)['then'](function(_0x527cdd){logger['info'](_0x0a9e('0xe'),_0x307b3e,_0x0a9e('0xf'));logger[_0x0a9e('0x10')](_0x0a9e('0x11'),_0x307b3e,_0x0a9e('0xf'),JSON[_0x0a9e('0x12')](_0x527cdd));if(_0x527cdd['error']){if(_0x527cdd[_0x0a9e('0x13')][_0x0a9e('0x14')]===0x1f4){logger[_0x0a9e('0x13')](_0x0a9e('0xe'),_0x307b3e,_0x527cdd[_0x0a9e('0x13')][_0x0a9e('0x15')]);return _0xbd1168(_0x527cdd['error'][_0x0a9e('0x15')]);}logger['error'](_0x0a9e('0xe'),_0x307b3e,_0x527cdd['error'][_0x0a9e('0x15')]);return _0xfeb75b(_0x527cdd[_0x0a9e('0x13')]['message']);}else{logger[_0x0a9e('0x16')]('SquareProject,\x20%s,\x20%s',_0x307b3e,_0x0a9e('0xf'));_0xfeb75b(_0x527cdd[_0x0a9e('0x17')][_0x0a9e('0x15')]);}})[_0x0a9e('0x18')](function(_0x31b1ca){logger[_0x0a9e('0x13')](_0x0a9e('0xe'),_0x307b3e,_0x31b1ca);_0xbd1168(_0x31b1ca);});});}exports[_0x0a9e('0x19')]=function(_0x1314ae){var _0x112016=this;return new Promise(function(_0x1c696a,_0x105080){return db['SquareProject'][_0x0a9e('0x1a')]({'raw':_0x1314ae[_0x0a9e('0x1b')]?_0x1314ae['options'][_0x0a9e('0x1c')]===undefined?!![]:![]:!![],'where':_0x1314ae['options']?_0x1314ae['options'][_0x0a9e('0x1d')]||null:null,'attributes':_0x1314ae[_0x0a9e('0x1b')]?_0x1314ae[_0x0a9e('0x1b')][_0x0a9e('0x1e')]||null:null,'include':_0x1314ae['options']?_0x1314ae[_0x0a9e('0x1b')][_0x0a9e('0x1f')]?_[_0x0a9e('0x20')](_0x1314ae[_0x0a9e('0x1b')][_0x0a9e('0x1f')],function(_0x42ac8f){return{'model':db[_0x42ac8f[_0x0a9e('0x21')]],'as':_0x42ac8f['as'],'attributes':_0x42ac8f['attributes'],'include':_0x42ac8f['include']?_[_0x0a9e('0x20')](_0x42ac8f[_0x0a9e('0x1f')],function(_0x40c424){return{'model':db[_0x40c424[_0x0a9e('0x21')]],'as':_0x40c424['as'],'attributes':_0x40c424['attributes'],'include':_0x40c424[_0x0a9e('0x1f')]?_['map'](_0x40c424[_0x0a9e('0x1f')],function(_0x5bfb33){return{'model':db[_0x5bfb33[_0x0a9e('0x21')]],'as':_0x5bfb33['as'],'attributes':_0x5bfb33[_0x0a9e('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x22')](function(_0x14433c){logger[_0x0a9e('0x16')](_0x0a9e('0x19'),_0x1314ae);logger[_0x0a9e('0x10')](_0x0a9e('0x19'),_0x1314ae,JSON['stringify'](_0x14433c));_0x1c696a(_0x14433c);})[_0x0a9e('0x18')](function(_0x468813){logger[_0x0a9e('0x13')](_0x0a9e('0x19'),_0x468813['message'],_0x1314ae);_0x105080(_0x112016[_0x0a9e('0x13')](0x1f4,_0x468813[_0x0a9e('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fdb=['removeListener','length','./squareProject.events','save','remove','update','emit'];(function(_0x946156,_0x4902e0){var _0x5a7488=function(_0x4ad37b){while(--_0x4ad37b){_0x946156['push'](_0x946156['shift']());}};_0x5a7488(++_0x4902e0);}(_0x4fdb,0x9c));var _0xb4fd=function(_0x5b3a1b,_0x2128e7){_0x5b3a1b=_0x5b3a1b-0x0;var _0x4be17d=_0x4fdb[_0x5b3a1b];return _0x4be17d;};'use strict';var SquareProjectEvents=require(_0xb4fd('0x0'));var events=[_0xb4fd('0x1'),_0xb4fd('0x2'),_0xb4fd('0x3')];function createListener(_0x3b399e,_0xafe34b){return function(_0x260a35){_0xafe34b[_0xb4fd('0x4')](_0x3b399e,_0x260a35);};}function removeListener(_0x1c0b08,_0x5b73bb){return function(){SquareProjectEvents[_0xb4fd('0x5')](_0x1c0b08,_0x5b73bb);};}exports['register']=function(_0x14052b){for(var _0x5d8b39=0x0,_0x53273f=events[_0xb4fd('0x6')];_0x5d8b39<_0x53273f;_0x5d8b39++){var _0x3af8e3=events[_0x5d8b39];var _0x1151b5=createListener('squareProject:'+_0x3af8e3,_0x14052b);SquareProjectEvents['on'](_0x3af8e3,_0x1151b5);}};
\ No newline at end of file
+var _0x89c4=['emit','removeListener','register','length','./squareProject.events','save','update'];(function(_0x2bdabb,_0x6614b6){var _0x399021=function(_0x2908f5){while(--_0x2908f5){_0x2bdabb['push'](_0x2bdabb['shift']());}};_0x399021(++_0x6614b6);}(_0x89c4,0x82));var _0x489c=function(_0x94ddf,_0x47de9c){_0x94ddf=_0x94ddf-0x0;var _0x14b723=_0x89c4[_0x94ddf];return _0x14b723;};'use strict';var SquareProjectEvents=require(_0x489c('0x0'));var events=[_0x489c('0x1'),'remove',_0x489c('0x2')];function createListener(_0x57d86a,_0x4b7f17){return function(_0x165089){_0x4b7f17[_0x489c('0x3')](_0x57d86a,_0x165089);};}function removeListener(_0xf7eda,_0x397017){return function(){SquareProjectEvents[_0x489c('0x4')](_0xf7eda,_0x397017);};}exports[_0x489c('0x5')]=function(_0x27415a){for(var _0x4c5ea1=0x0,_0xe5e402=events[_0x489c('0x6')];_0x4c5ea1<_0xe5e402;_0x4c5ea1++){var _0x122c44=events[_0x4c5ea1];var _0xceb82c=createListener('squareProject:'+_0x122c44,_0x27415a);SquareProjectEvents['on'](_0x122c44,_0xceb82c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91d9=['delete','exports','util','express','../../components/auth/service','./squareRecording.controller','index','get','/:id','isAuthenticated','show','/:id/download','create','update'];(function(_0x51146d,_0x13a9b6){var _0xb8b5c6=function(_0x145e9f){while(--_0x145e9f){_0x51146d['push'](_0x51146d['shift']());}};_0xb8b5c6(++_0x13a9b6);}(_0x91d9,0x1ec));var _0x991d=function(_0x131ba4,_0x2cc207){_0x131ba4=_0x131ba4-0x0;var _0x3df2b8=_0x91d9[_0x131ba4];return _0x3df2b8;};'use strict';var multer=require('multer');var util=require(_0x991d('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x991d('0x1'));var router=express['Router']();var auth=require(_0x991d('0x2'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x991d('0x3'));router['get']('/',auth['isAuthenticated'](),controller[_0x991d('0x4')]);router[_0x991d('0x5')](_0x991d('0x6'),auth[_0x991d('0x7')](),controller[_0x991d('0x8')]);router['get'](_0x991d('0x9'),auth['isAuthenticated'](),controller['download']);router['post']('/',auth[_0x991d('0x7')](),controller[_0x991d('0xa')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x991d('0xb')]);router[_0x991d('0xc')](_0x991d('0x6'),auth[_0x991d('0x7')](),controller['destroy']);module[_0x991d('0xd')]=router;
\ No newline at end of file
+var _0x322e=['./squareRecording.controller','index','/:id','isAuthenticated','show','get','download','post','create','put','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment'];(function(_0x14b62f,_0x580872){var _0x247fdb=function(_0xbf4109){while(--_0xbf4109){_0x14b62f['push'](_0x14b62f['shift']());}};_0x247fdb(++_0x580872);}(_0x322e,0x189));var _0xe322=function(_0x474509,_0x5a4edb){_0x474509=_0x474509-0x0;var _0x3ec603=_0x322e[_0x474509];return _0x3ec603;};'use strict';var multer=require(_0xe322('0x0'));var util=require(_0xe322('0x1'));var path=require('path');var timeout=require(_0xe322('0x2'));var express=require(_0xe322('0x3'));var router=express[_0xe322('0x4')]();var auth=require(_0xe322('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xe322('0x6'));var controller=require(_0xe322('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0xe322('0x8')]);router['get'](_0xe322('0x9'),auth[_0xe322('0xa')](),controller[_0xe322('0xb')]);router[_0xe322('0xc')]('/:id/download',auth[_0xe322('0xa')](),controller[_0xe322('0xd')]);router[_0xe322('0xe')]('/',auth[_0xe322('0xa')](),controller[_0xe322('0xf')]);router[_0xe322('0x10')](_0xe322('0x9'),auth[_0xe322('0xa')](),controller['update']);router[_0xe322('0x11')](_0xe322('0x9'),auth['isAuthenticated'](),controller[_0xe322('0x12')]);module[_0xe322('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ebf=['sequelize','exports','STRING'];(function(_0x30589b,_0xb02078){var _0x49a662=function(_0x297e78){while(--_0x297e78){_0x30589b['push'](_0x30589b['shift']());}};_0x49a662(++_0xb02078);}(_0x5ebf,0x168));var _0xf5eb=function(_0x416778,_0x1fa5c3){_0x416778=_0x416778-0x0;var _0xfd5b7d=_0x5ebf[_0x416778];return _0xfd5b7d;};'use strict';var Sequelize=require(_0xf5eb('0x0'));module[_0xf5eb('0x1')]={'uniqueid':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xf5eb('0x2')]},'context':{'type':Sequelize[_0xf5eb('0x2')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xf5eb('0x2')]},'accountcode':{'type':Sequelize[_0xf5eb('0x2')]},'dnid':{'type':Sequelize['STRING']},'projectName':{'type':Sequelize[_0xf5eb('0x2')]},'saveName':{'type':Sequelize[_0xf5eb('0x2')]},'filename':{'type':Sequelize['STRING']},'savePath':{'type':Sequelize[_0xf5eb('0x2')]}};
\ No newline at end of file
+var _0xcec6=['STRING','exports'];(function(_0x5a89df,_0x59cf29){var _0x15a0c5=function(_0x381664){while(--_0x381664){_0x5a89df['push'](_0x5a89df['shift']());}};_0x15a0c5(++_0x59cf29);}(_0xcec6,0x175));var _0x6cec=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xcec6[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require('sequelize');module[_0x6cec('0x0')]={'uniqueid':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x6cec('0x1')]},'calleridname':{'type':Sequelize[_0x6cec('0x1')]},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x6cec('0x1')]},'accountcode':{'type':Sequelize[_0x6cec('0x1')]},'dnid':{'type':Sequelize[_0x6cec('0x1')]},'projectName':{'type':Sequelize['STRING']},'saveName':{'type':Sequelize[_0x6cec('0x1')]},'filename':{'type':Sequelize[_0x6cec('0x1')]},'savePath':{'type':Sequelize[_0x6cec('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b31=['length','find','create','body','download','type','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','html-pdf','eml-format','fast-json-patch','bluebird','mustache','util','sox','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','send','index','SquareRecording','rawAttributes','model','keys','dateStart','query','dateEnd','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','includeAll','include','rows','catch','params'];(function(_0x10d5e5,_0x1715ad){var _0x3e5845=function(_0x75541c){while(--_0x75541c){_0x10d5e5['push'](_0x10d5e5['shift']());}};_0x3e5845(++_0x1715ad);}(_0x3b31,0x64));var _0x13b3=function(_0x1af089,_0x55f6c9){_0x1af089=_0x1af089-0x0;var _0x33eb3e=_0x3b31[_0x1af089];return _0x33eb3e;};'use strict';var pdf=require(_0x13b3('0x0'));var emlformat=require(_0x13b3('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x13b3('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x13b3('0x3'));var Mustache=require(_0x13b3('0x4'));var util=require(_0x13b3('0x5'));var path=require('path');var sox=require(_0x13b3('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x13b3('0x7'));var squel=require(_0x13b3('0x8'));var crypto=require(_0x13b3('0x9'));var jsforce=require(_0x13b3('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x13b3('0xb'));var querystring=require(_0x13b3('0xc'));var Papa=require(_0x13b3('0xd'));var qs=require(_0x13b3('0xe'));var logger=require(_0x13b3('0xf'))('api');var utils=require('../../config/utils');var config=require(_0x13b3('0x10'));var db=require(_0x13b3('0x11'))['db'];function respondWithStatusCode(_0x462364,_0x36652f){_0x36652f=_0x36652f||0xcc;return function(_0x45aab0){if(_0x45aab0){return _0x462364[_0x13b3('0x12')](_0x36652f);}return _0x462364[_0x13b3('0x13')](_0x36652f)['end']();};}function respondWithResult(_0x2a4522,_0x147da0){_0x147da0=_0x147da0||0xc8;return function(_0x1df49f){if(_0x1df49f){return _0x2a4522[_0x13b3('0x13')](_0x147da0)[_0x13b3('0x14')](_0x1df49f);}};}function respondWithFilteredResult(_0x5b78e7,_0x35952d){return function(_0x46aa9d){if(_0x46aa9d){var _0x4b4bbb=_0x46aa9d[_0x13b3('0x15')],_0x3abfbb=_0x35952d[_0x13b3('0x16')],_0x2d40c2=_0x35952d[_0x13b3('0x16')]+_0x35952d[_0x13b3('0x17')],_0x2326ed;if(_0x2d40c2>=_0x4b4bbb){_0x2d40c2=_0x4b4bbb;_0x2326ed=0xc8;}else{_0x2326ed=0xce;}_0x5b78e7[_0x13b3('0x13')](_0x2326ed);return _0x5b78e7[_0x13b3('0x18')](_0x13b3('0x19'),_0x3abfbb+'-'+_0x2d40c2+'/'+_0x4b4bbb)[_0x13b3('0x14')](_0x46aa9d);}return null;};}function patchUpdates(_0x29ab30){return function(_0x45d0e9){try{jsonpatch['apply'](_0x45d0e9,_0x29ab30,!![]);}catch(_0x461d3b){return BPromise[_0x13b3('0x1a')](_0x461d3b);}return _0x45d0e9[_0x13b3('0x1b')]();};}function saveUpdates(_0x26fb07,_0x10b0fd){return function(_0x57a9d5){if(_0x57a9d5){return _0x57a9d5[_0x13b3('0x1c')](_0x26fb07)[_0x13b3('0x1d')](function(_0x1d4b88){return _0x1d4b88;});}return null;};}function removeEntity(_0x452fc0,_0x51d83c){return function(_0x442a32){if(_0x442a32){return _0x442a32[_0x13b3('0x1e')]()[_0x13b3('0x1d')](function(){_0x452fc0[_0x13b3('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3baa08,_0x272768){return function(_0x58153a){if(!_0x58153a){_0x3baa08[_0x13b3('0x12')](0x194);}return _0x58153a;};}function handleError(_0x396741,_0x4504f9){_0x4504f9=_0x4504f9||0x1f4;return function(_0x3ba2fe){logger['error'](_0x3ba2fe['stack']);if(_0x3ba2fe['name']){delete _0x3ba2fe['name'];}_0x396741[_0x13b3('0x13')](_0x4504f9)[_0x13b3('0x1f')](_0x3ba2fe);};}exports[_0x13b3('0x20')]=function(_0x28fdaf,_0x380747){var _0xa8f30f={},_0x253fea={},_0x592740={'count':0x0,'rows':[]};var _0x5e8d82=db[_0x13b3('0x21')][_0x13b3('0x22')];_0x253fea[_0x13b3('0x23')]=_[_0x13b3('0x24')](_0x5e8d82);var _0x25a269={'dateStart':_0x28fdaf['query'][_0x13b3('0x25')],'dateEnd':_0x28fdaf[_0x13b3('0x26')]['dateEnd']};delete _0x28fdaf[_0x13b3('0x26')][_0x13b3('0x25')];delete _0x28fdaf[_0x13b3('0x26')][_0x13b3('0x27')];_0x253fea['query']=_[_0x13b3('0x24')](_0x28fdaf[_0x13b3('0x26')]);_0x253fea['filters']=_[_0x13b3('0x28')](_0x253fea[_0x13b3('0x23')],_0x253fea[_0x13b3('0x26')]);_0xa8f30f[_0x13b3('0x29')]=_[_0x13b3('0x28')](_0x253fea['model'],qs[_0x13b3('0x2a')](_0x28fdaf[_0x13b3('0x26')][_0x13b3('0x2a')]));_0xa8f30f[_0x13b3('0x29')]=_0xa8f30f[_0x13b3('0x29')]['length']?_0xa8f30f['attributes']:_0x253fea['model'];if(!_0x28fdaf[_0x13b3('0x26')][_0x13b3('0x2b')](_0x13b3('0x2c'))){_0xa8f30f[_0x13b3('0x17')]=qs['limit'](_0x28fdaf['query'][_0x13b3('0x17')]);_0xa8f30f[_0x13b3('0x16')]=qs['offset'](_0x28fdaf[_0x13b3('0x26')][_0x13b3('0x16')]);}_0xa8f30f[_0x13b3('0x2d')]=qs[_0x13b3('0x2e')](_0x28fdaf[_0x13b3('0x26')][_0x13b3('0x2e')]);_0xa8f30f[_0x13b3('0x2f')]=qs[_0x13b3('0x30')](_[_0x13b3('0x31')](_0x28fdaf['query'],_0x253fea['filters']));if(_0x25a269[_0x13b3('0x25')]){if(_0x25a269[_0x13b3('0x27')]){_0x25a269[_0x13b3('0x27')]=moment(_0x25a269['dateEnd'])[_0x13b3('0x32')](0x1,'day');}else{_0x25a269['dateEnd']=moment(_0x25a269[_0x13b3('0x25')])[_0x13b3('0x32')](0x1,_0x13b3('0x33'));}_[_0x13b3('0x34')](_0xa8f30f[_0x13b3('0x2f')],{'createdAt':{'$gte':_0x25a269[_0x13b3('0x25')],'$lte':_0x25a269['dateEnd']}});}if(_0x28fdaf['query'][_0x13b3('0x35')]){_0xa8f30f[_0x13b3('0x2f')]=_['merge'](_0xa8f30f[_0x13b3('0x2f')],{'$or':_[_0x13b3('0x36')](_0xa8f30f['attributes'],function(_0x8fe834){var _0x38b063={};_0x38b063[_0x8fe834]={'$like':'%'+_0x28fdaf[_0x13b3('0x26')][_0x13b3('0x35')]+'%'};return _0x38b063;})});}_0xa8f30f=_[_0x13b3('0x34')]({},_0xa8f30f,_0x28fdaf['options']);var _0x3a773b={'where':_0xa8f30f[_0x13b3('0x2f')]};return db[_0x13b3('0x21')][_0x13b3('0x15')](_0x3a773b)[_0x13b3('0x1d')](function(_0x58eade){_0x592740[_0x13b3('0x15')]=_0x58eade;if(_0x28fdaf[_0x13b3('0x26')][_0x13b3('0x37')]){_0xa8f30f[_0x13b3('0x38')]=[{'all':!![]}];}return db[_0x13b3('0x21')]['findAll'](_0xa8f30f);})['then'](function(_0xf6a2fb){_0x592740[_0x13b3('0x39')]=_0xf6a2fb;return _0x592740;})['then'](respondWithFilteredResult(_0x380747,_0xa8f30f))[_0x13b3('0x3a')](handleError(_0x380747,null));};exports['show']=function(_0x10d984,_0x102f00){var _0x1c2c48={'raw':!![],'where':{'id':_0x10d984[_0x13b3('0x3b')]['id']}},_0x9ba4e8={};_0x9ba4e8[_0x13b3('0x23')]=_[_0x13b3('0x24')](db[_0x13b3('0x21')][_0x13b3('0x22')]);_0x9ba4e8[_0x13b3('0x26')]=_['keys'](_0x10d984[_0x13b3('0x26')]);_0x9ba4e8[_0x13b3('0x30')]=_[_0x13b3('0x28')](_0x9ba4e8[_0x13b3('0x23')],_0x9ba4e8['query']);_0x1c2c48[_0x13b3('0x29')]=_['intersection'](_0x9ba4e8[_0x13b3('0x23')],qs[_0x13b3('0x2a')](_0x10d984[_0x13b3('0x26')][_0x13b3('0x2a')]));_0x1c2c48['attributes']=_0x1c2c48[_0x13b3('0x29')][_0x13b3('0x3c')]?_0x1c2c48['attributes']:_0x9ba4e8[_0x13b3('0x23')];if(_0x10d984[_0x13b3('0x26')][_0x13b3('0x37')]){_0x1c2c48[_0x13b3('0x38')]=[{'all':!![]}];}_0x1c2c48=_[_0x13b3('0x34')]({},_0x1c2c48,_0x10d984['options']);return db[_0x13b3('0x21')][_0x13b3('0x3d')](_0x1c2c48)[_0x13b3('0x1d')](handleEntityNotFound(_0x102f00,null))[_0x13b3('0x1d')](respondWithResult(_0x102f00,null))[_0x13b3('0x3a')](handleError(_0x102f00,null));};exports[_0x13b3('0x3e')]=function(_0x4caeaf,_0x3abce4){return db[_0x13b3('0x21')]['create'](_0x4caeaf[_0x13b3('0x3f')],{})[_0x13b3('0x1d')](respondWithResult(_0x3abce4,0xc9))[_0x13b3('0x3a')](handleError(_0x3abce4,null));};exports[_0x13b3('0x1c')]=function(_0x1799de,_0x4c3680){if(_0x1799de[_0x13b3('0x3f')]['id']){delete _0x1799de[_0x13b3('0x3f')]['id'];}return db['SquareRecording'][_0x13b3('0x3d')]({'where':{'id':_0x1799de[_0x13b3('0x3b')]['id']}})[_0x13b3('0x1d')](handleEntityNotFound(_0x4c3680,null))[_0x13b3('0x1d')](saveUpdates(_0x1799de[_0x13b3('0x3f')],null))['then'](respondWithResult(_0x4c3680,null))[_0x13b3('0x3a')](handleError(_0x4c3680,null));};exports[_0x13b3('0x1e')]=function(_0x11b4bf,_0x54b46f){return db[_0x13b3('0x21')][_0x13b3('0x3d')]({'where':{'id':_0x11b4bf['params']['id']}})[_0x13b3('0x1d')](handleEntityNotFound(_0x54b46f,null))[_0x13b3('0x1d')](removeEntity(_0x54b46f,null))[_0x13b3('0x3a')](handleError(_0x54b46f,null));};exports[_0x13b3('0x40')]=function(_0x1feec,_0x417157,_0x51597f){var _0x6275e2=require('../../components/encryptor');var _0x3e7abd=![];var _0x2b9066={};if(_0x1feec[_0x13b3('0x26')][_0x13b3('0x41')]&&_0x1feec[_0x13b3('0x26')][_0x13b3('0x41')]===_0x13b3('0x42')){_0x2b9066['uniqueid']=_0x1feec[_0x13b3('0x3b')]['id'];}else{_0x2b9066['id']=_0x1feec[_0x13b3('0x3b')]['id'];}return db[_0x13b3('0x21')][_0x13b3('0x3d')]({'where':_0x2b9066,'attributes':['id',_0x13b3('0x43'),_0x13b3('0x44')],'raw':!![]})[_0x13b3('0x1d')](handleEntityNotFound(_0x417157,null))[_0x13b3('0x1d')](function(_0x522229){if(_0x522229){var _0x1ff2b0=util[_0x13b3('0x45')](_0x13b3('0x46'),_0x522229['value']);if(fs[_0x13b3('0x47')](_0x1ff2b0)){_0x3e7abd=!![];return _0x6275e2[_0x13b3('0x48')](_0x1ff2b0,_0x522229[_0x13b3('0x43')],config[_0x13b3('0x49')][_0x13b3('0x4a')])[_0x13b3('0x1d')](function(){return _0x522229;});}return _0x522229;}})[_0x13b3('0x1d')](function(_0x3d1597){if(_0x3d1597){if(!fs[_0x13b3('0x47')](_0x3d1597[_0x13b3('0x43')])){throw new db[(_0x13b3('0x4b'))][(_0x13b3('0x4c'))](_0x13b3('0x4d'));}if(_0x3d1597[_0x13b3('0x44')]){return _0x417157[_0x13b3('0x40')](_0x3d1597['savePath'],_0x3d1597[_0x13b3('0x44')]+path[_0x13b3('0x4e')](_0x3d1597[_0x13b3('0x43')]),function(){if(_0x3e7abd){fs[_0x13b3('0x4f')](_0x3d1597['savePath']);}});}else{return _0x417157['download'](_0x3d1597['savePath'],function(_0x52479a){if(_0x3e7abd){fs['unlink'](_0x3d1597['savePath']);}});}}})[_0x13b3('0x3a')](handleError(_0x417157,null));};
\ No newline at end of file
+var _0x5f31=['querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','add','day','merge','filter','options','SquareRecording','include','findAll','rows','params','includeAll','find','catch','create','body','download','../../components/encryptor','type','uniqueid','savePath','filename','%s.cypher','existsSync','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','eml-format','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x252d9d,_0x4e3e15){var _0x2b721f=function(_0x1d9f4d){while(--_0x1d9f4d){_0x252d9d['push'](_0x252d9d['shift']());}};_0x2b721f(++_0x4e3e15);}(_0x5f31,0x19f));var _0x15f3=function(_0x55ff79,_0x3d45e7){_0x55ff79=_0x55ff79-0x0;var _0x579067=_0x5f31[_0x55ff79];return _0x579067;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x15f3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x15f3('0x1'));var jsonpatch=require(_0x15f3('0x2'));var rp=require('request-promise');var moment=require(_0x15f3('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x15f3('0x4'));var util=require(_0x15f3('0x5'));var path=require(_0x15f3('0x6'));var sox=require(_0x15f3('0x7'));var csv=require(_0x15f3('0x8'));var ejs=require(_0x15f3('0x9'));var fs=require('fs');var _=require(_0x15f3('0xa'));var squel=require(_0x15f3('0xb'));var crypto=require(_0x15f3('0xc'));var jsforce=require(_0x15f3('0xd'));var deskjs=require(_0x15f3('0xe'));var toCsv=require(_0x15f3('0x8'));var querystring=require(_0x15f3('0xf'));var Papa=require('papaparse');var Redis=require(_0x15f3('0x10'));var qs=require(_0x15f3('0x11'));var logger=require(_0x15f3('0x12'))(_0x15f3('0x13'));var utils=require('../../config/utils');var config=require(_0x15f3('0x14'));var db=require(_0x15f3('0x15'))['db'];function respondWithStatusCode(_0x5bc778,_0x48a850){_0x48a850=_0x48a850||0xcc;return function(_0x45a011){if(_0x45a011){return _0x5bc778[_0x15f3('0x16')](_0x48a850);}return _0x5bc778[_0x15f3('0x17')](_0x48a850)[_0x15f3('0x18')]();};}function respondWithResult(_0x2208be,_0x37cb0b){_0x37cb0b=_0x37cb0b||0xc8;return function(_0x5bd68c){if(_0x5bd68c){return _0x2208be['status'](_0x37cb0b)[_0x15f3('0x19')](_0x5bd68c);}};}function respondWithFilteredResult(_0x2a2c3e,_0x201487){return function(_0x28c967){if(_0x28c967){var _0x3b34dc=_0x28c967[_0x15f3('0x1a')],_0x36bc33=_0x201487[_0x15f3('0x1b')],_0x385f7c=_0x201487[_0x15f3('0x1b')]+_0x201487[_0x15f3('0x1c')],_0x48c360;if(_0x385f7c>=_0x3b34dc){_0x385f7c=_0x3b34dc;_0x48c360=0xc8;}else{_0x48c360=0xce;}_0x2a2c3e[_0x15f3('0x17')](_0x48c360);return _0x2a2c3e[_0x15f3('0x1d')](_0x15f3('0x1e'),_0x36bc33+'-'+_0x385f7c+'/'+_0x3b34dc)[_0x15f3('0x19')](_0x28c967);}return null;};}function patchUpdates(_0x1f3b40){return function(_0x5517a9){try{jsonpatch[_0x15f3('0x1f')](_0x5517a9,_0x1f3b40,!![]);}catch(_0x124af7){return BPromise['reject'](_0x124af7);}return _0x5517a9[_0x15f3('0x20')]();};}function saveUpdates(_0x5800e5,_0x493984){return function(_0x4f3b5f){if(_0x4f3b5f){return _0x4f3b5f[_0x15f3('0x21')](_0x5800e5)['then'](function(_0x2b5ba3){return _0x2b5ba3;});}return null;};}function removeEntity(_0x224f71,_0x3ff3b7){return function(_0x187c4f){if(_0x187c4f){return _0x187c4f[_0x15f3('0x22')]()[_0x15f3('0x23')](function(){_0x224f71[_0x15f3('0x17')](0xcc)[_0x15f3('0x18')]();});}};}function handleEntityNotFound(_0x5965b,_0x1532b7){return function(_0x16e03e){if(!_0x16e03e){_0x5965b[_0x15f3('0x16')](0x194);}return _0x16e03e;};}function handleError(_0x509b95,_0x5b8d24){_0x5b8d24=_0x5b8d24||0x1f4;return function(_0x4efede){logger[_0x15f3('0x24')](_0x4efede[_0x15f3('0x25')]);if(_0x4efede['name']){delete _0x4efede[_0x15f3('0x26')];}_0x509b95[_0x15f3('0x17')](_0x5b8d24)[_0x15f3('0x27')](_0x4efede);};}exports[_0x15f3('0x28')]=function(_0x1590a2,_0x32cdf8){var _0xf8bc99={},_0x4f52f0={},_0x328ef4={'count':0x0,'rows':[]};var _0x5af407=db['SquareRecording'][_0x15f3('0x29')];_0x4f52f0[_0x15f3('0x2a')]=_[_0x15f3('0x2b')](_0x5af407);var _0x17375e={'dateStart':_0x1590a2[_0x15f3('0x2c')][_0x15f3('0x2d')],'dateEnd':_0x1590a2[_0x15f3('0x2c')][_0x15f3('0x2e')]};delete _0x1590a2[_0x15f3('0x2c')][_0x15f3('0x2d')];delete _0x1590a2[_0x15f3('0x2c')][_0x15f3('0x2e')];_0x4f52f0[_0x15f3('0x2c')]=_[_0x15f3('0x2b')](_0x1590a2[_0x15f3('0x2c')]);_0x4f52f0[_0x15f3('0x2f')]=_['intersection'](_0x4f52f0[_0x15f3('0x2a')],_0x4f52f0['query']);_0xf8bc99['attributes']=_[_0x15f3('0x30')](_0x4f52f0['model'],qs['fields'](_0x1590a2[_0x15f3('0x2c')][_0x15f3('0x31')]));_0xf8bc99[_0x15f3('0x32')]=_0xf8bc99[_0x15f3('0x32')]['length']?_0xf8bc99[_0x15f3('0x32')]:_0x4f52f0[_0x15f3('0x2a')];if(!_0x1590a2[_0x15f3('0x2c')]['hasOwnProperty'](_0x15f3('0x33'))){_0xf8bc99['limit']=qs[_0x15f3('0x1c')](_0x1590a2[_0x15f3('0x2c')][_0x15f3('0x1c')]);_0xf8bc99['offset']=qs[_0x15f3('0x1b')](_0x1590a2[_0x15f3('0x2c')]['offset']);}_0xf8bc99[_0x15f3('0x34')]=qs[_0x15f3('0x35')](_0x1590a2['query'][_0x15f3('0x35')]);_0xf8bc99[_0x15f3('0x36')]=qs[_0x15f3('0x2f')](_[_0x15f3('0x37')](_0x1590a2[_0x15f3('0x2c')],_0x4f52f0[_0x15f3('0x2f')]));if(_0x17375e['dateStart']){if(_0x17375e['dateEnd']){_0x17375e[_0x15f3('0x2e')]=moment(_0x17375e['dateEnd'])[_0x15f3('0x38')](0x1,_0x15f3('0x39'));}else{_0x17375e[_0x15f3('0x2e')]=moment(_0x17375e[_0x15f3('0x2d')])[_0x15f3('0x38')](0x1,'day');}_['merge'](_0xf8bc99['where'],{'createdAt':{'$gte':_0x17375e[_0x15f3('0x2d')],'$lte':_0x17375e[_0x15f3('0x2e')]}});}if(_0x1590a2[_0x15f3('0x2c')]['filter']){_0xf8bc99[_0x15f3('0x36')]=_[_0x15f3('0x3a')](_0xf8bc99[_0x15f3('0x36')],{'$or':_['map'](_0xf8bc99['attributes'],function(_0x4c8bca){var _0x3aa226={};_0x3aa226[_0x4c8bca]={'$like':'%'+_0x1590a2[_0x15f3('0x2c')][_0x15f3('0x3b')]+'%'};return _0x3aa226;})});}_0xf8bc99=_[_0x15f3('0x3a')]({},_0xf8bc99,_0x1590a2[_0x15f3('0x3c')]);var _0x275792={'where':_0xf8bc99['where']};return db[_0x15f3('0x3d')]['count'](_0x275792)[_0x15f3('0x23')](function(_0x2dc41b){_0x328ef4[_0x15f3('0x1a')]=_0x2dc41b;if(_0x1590a2[_0x15f3('0x2c')]['includeAll']){_0xf8bc99[_0x15f3('0x3e')]=[{'all':!![]}];}return db[_0x15f3('0x3d')][_0x15f3('0x3f')](_0xf8bc99);})[_0x15f3('0x23')](function(_0x4f8caa){_0x328ef4[_0x15f3('0x40')]=_0x4f8caa;return _0x328ef4;})[_0x15f3('0x23')](respondWithFilteredResult(_0x32cdf8,_0xf8bc99))['catch'](handleError(_0x32cdf8,null));};exports['show']=function(_0x504cc8,_0x1ad728){var _0x3f9d78={'raw':!![],'where':{'id':_0x504cc8[_0x15f3('0x41')]['id']}},_0x392cce={};_0x392cce[_0x15f3('0x2a')]=_[_0x15f3('0x2b')](db[_0x15f3('0x3d')][_0x15f3('0x29')]);_0x392cce['query']=_['keys'](_0x504cc8[_0x15f3('0x2c')]);_0x392cce[_0x15f3('0x2f')]=_[_0x15f3('0x30')](_0x392cce[_0x15f3('0x2a')],_0x392cce[_0x15f3('0x2c')]);_0x3f9d78['attributes']=_[_0x15f3('0x30')](_0x392cce['model'],qs['fields'](_0x504cc8[_0x15f3('0x2c')][_0x15f3('0x31')]));_0x3f9d78[_0x15f3('0x32')]=_0x3f9d78[_0x15f3('0x32')]['length']?_0x3f9d78[_0x15f3('0x32')]:_0x392cce[_0x15f3('0x2a')];if(_0x504cc8[_0x15f3('0x2c')][_0x15f3('0x42')]){_0x3f9d78['include']=[{'all':!![]}];}_0x3f9d78=_[_0x15f3('0x3a')]({},_0x3f9d78,_0x504cc8[_0x15f3('0x3c')]);return db[_0x15f3('0x3d')][_0x15f3('0x43')](_0x3f9d78)['then'](handleEntityNotFound(_0x1ad728,null))[_0x15f3('0x23')](respondWithResult(_0x1ad728,null))[_0x15f3('0x44')](handleError(_0x1ad728,null));};exports['create']=function(_0x3a265b,_0x25e7d5){return db[_0x15f3('0x3d')][_0x15f3('0x45')](_0x3a265b[_0x15f3('0x46')],{})['then'](respondWithResult(_0x25e7d5,0xc9))[_0x15f3('0x44')](handleError(_0x25e7d5,null));};exports[_0x15f3('0x21')]=function(_0x3cad6b,_0x43038a){if(_0x3cad6b['body']['id']){delete _0x3cad6b[_0x15f3('0x46')]['id'];}return db[_0x15f3('0x3d')][_0x15f3('0x43')]({'where':{'id':_0x3cad6b[_0x15f3('0x41')]['id']}})[_0x15f3('0x23')](handleEntityNotFound(_0x43038a,null))[_0x15f3('0x23')](saveUpdates(_0x3cad6b[_0x15f3('0x46')],null))['then'](respondWithResult(_0x43038a,null))[_0x15f3('0x44')](handleError(_0x43038a,null));};exports[_0x15f3('0x22')]=function(_0x5e7e7a,_0x2a2eaa){return db[_0x15f3('0x3d')][_0x15f3('0x43')]({'where':{'id':_0x5e7e7a[_0x15f3('0x41')]['id']}})[_0x15f3('0x23')](handleEntityNotFound(_0x2a2eaa,null))[_0x15f3('0x23')](removeEntity(_0x2a2eaa,null))[_0x15f3('0x44')](handleError(_0x2a2eaa,null));};exports[_0x15f3('0x47')]=function(_0x53ea45,_0x1aad72,_0x453176){var _0x112b01=require(_0x15f3('0x48'));var _0x5c8d04=![];var _0x3a3c2e={};if(_0x53ea45['query'][_0x15f3('0x49')]&&_0x53ea45['query'][_0x15f3('0x49')]==='uniqueid'){_0x3a3c2e[_0x15f3('0x4a')]=_0x53ea45[_0x15f3('0x41')]['id'];}else{_0x3a3c2e['id']=_0x53ea45[_0x15f3('0x41')]['id'];}return db[_0x15f3('0x3d')][_0x15f3('0x43')]({'where':_0x3a3c2e,'attributes':['id',_0x15f3('0x4b'),_0x15f3('0x4c')],'raw':!![]})[_0x15f3('0x23')](handleEntityNotFound(_0x1aad72,null))['then'](function(_0x1cfe14){if(_0x1cfe14){var _0x3a419b=util['format'](_0x15f3('0x4d'),_0x1cfe14['value']);if(fs[_0x15f3('0x4e')](_0x3a419b)){_0x5c8d04=!![];return _0x112b01['decryptFile'](_0x3a419b,_0x1cfe14[_0x15f3('0x4b')],config[_0x15f3('0x4f')][_0x15f3('0x50')])[_0x15f3('0x23')](function(){return _0x1cfe14;});}return _0x1cfe14;}})['then'](function(_0x30410b){if(_0x30410b){if(!fs[_0x15f3('0x4e')](_0x30410b['savePath'])){throw new db[(_0x15f3('0x51'))][(_0x15f3('0x52'))](_0x15f3('0x53'));}if(_0x30410b[_0x15f3('0x4c')]){return _0x1aad72[_0x15f3('0x47')](_0x30410b[_0x15f3('0x4b')],_0x30410b[_0x15f3('0x4c')]+path[_0x15f3('0x54')](_0x30410b['savePath']),function(){if(_0x5c8d04){fs[_0x15f3('0x55')](_0x30410b[_0x15f3('0x4b')]);}});}else{return _0x1aad72['download'](_0x30410b[_0x15f3('0x4b')],function(_0x4e0ecd){if(_0x5c8d04){fs[_0x15f3('0x55')](_0x30410b['savePath']);}});}}})[_0x15f3('0x44')](handleError(_0x1aad72,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49e5=['moment','request-promise','./squareRecording.attributes','exports','SquareRecording','lodash','util','../../config/logger','api'];(function(_0x4c2f17,_0x5c6821){var _0x20919e=function(_0x31eef7){while(--_0x31eef7){_0x4c2f17['push'](_0x4c2f17['shift']());}};_0x20919e(++_0x5c6821);}(_0x49e5,0x71));var _0x549e=function(_0x4f4034,_0x1dce81){_0x4f4034=_0x4f4034-0x0;var _0x1be539=_0x49e5[_0x4f4034];return _0x1be539;};'use strict';var _=require(_0x549e('0x0'));var util=require(_0x549e('0x1'));var logger=require(_0x549e('0x2'))(_0x549e('0x3'));var moment=require(_0x549e('0x4'));var BPromise=require('bluebird');var rp=require(_0x549e('0x5'));var attributes=require(_0x549e('0x6'));module[_0x549e('0x7')]=function(_0x3fb4a3,_0x26f864){return _0x3fb4a3['define'](_0x549e('0x8'),attributes,{'tableName':'square_recordings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x624c=['../../config/logger','api','moment','bluebird','./squareRecording.attributes','define','SquareRecording','square_recordings','util'];(function(_0x46111d,_0x5d286b){var _0xe82586=function(_0x39551b){while(--_0x39551b){_0x46111d['push'](_0x46111d['shift']());}};_0xe82586(++_0x5d286b);}(_0x624c,0x1ee));var _0xc624=function(_0xded12b,_0xecfb8e){_0xded12b=_0xded12b-0x0;var _0x572384=_0x624c[_0xded12b];return _0x572384;};'use strict';var _=require('lodash');var util=require(_0xc624('0x0'));var logger=require(_0xc624('0x1'))(_0xc624('0x2'));var moment=require(_0xc624('0x3'));var BPromise=require(_0xc624('0x4'));var rp=require('request-promise');var attributes=require(_0xc624('0x5'));module['exports']=function(_0x1e6dbe,_0x5f0cc1){return _0x1e6dbe[_0xc624('0x6')](_0xc624('0x7'),attributes,{'tableName':_0xc624('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7181=['http','request','then','info','SquareRecording,\x20%s,\x20%s','request\x20sent','debug','SquareRecording,\x20%s,\x20%s,\x20%s','error','code','message','catch','CreateSquareRecording','SquareRecording','create','body','options','raw','stringify','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0xed5f9c,_0x5a25cd){var _0x3a1c43=function(_0x251202){while(--_0x251202){_0xed5f9c['push'](_0xed5f9c['shift']());}};_0x3a1c43(++_0x5a25cd);}(_0x7181,0x1b7));var _0x1718=function(_0x289c3e,_0x3614b5){_0x289c3e=_0x289c3e-0x0;var _0x25a4b3=_0x7181[_0x289c3e];return _0x25a4b3;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1718('0x0'));var BPromise=require('bluebird');var rs=require(_0x1718('0x1'));var fs=require('fs');var db=require(_0x1718('0x2'))['db'];var utils=require(_0x1718('0x3'));var logger=require(_0x1718('0x4'))(_0x1718('0x5'));var config=require(_0x1718('0x6'));var jayson=require(_0x1718('0x7'));var client=jayson[_0x1718('0x8')][_0x1718('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3b1c67,_0x553309,_0x58d7cf){return new BPromise(function(_0x49b52d,_0x3879b8){return client[_0x1718('0xa')](_0x3b1c67,_0x58d7cf)[_0x1718('0xb')](function(_0x22223d){logger[_0x1718('0xc')](_0x1718('0xd'),_0x553309,_0x1718('0xe'));logger[_0x1718('0xf')](_0x1718('0x10'),_0x553309,_0x1718('0xe'),JSON['stringify'](_0x22223d));if(_0x22223d[_0x1718('0x11')]){if(_0x22223d[_0x1718('0x11')][_0x1718('0x12')]===0x1f4){logger[_0x1718('0x11')](_0x1718('0xd'),_0x553309,_0x22223d[_0x1718('0x11')][_0x1718('0x13')]);return _0x3879b8(_0x22223d['error'][_0x1718('0x13')]);}logger['error'](_0x1718('0xd'),_0x553309,_0x22223d[_0x1718('0x11')][_0x1718('0x13')]);return _0x49b52d(_0x22223d[_0x1718('0x11')][_0x1718('0x13')]);}else{logger[_0x1718('0xc')](_0x1718('0xd'),_0x553309,_0x1718('0xe'));_0x49b52d(_0x22223d['result'][_0x1718('0x13')]);}})[_0x1718('0x14')](function(_0x241d66){logger[_0x1718('0x11')](_0x1718('0xd'),_0x553309,_0x241d66);_0x3879b8(_0x241d66);});});}exports[_0x1718('0x15')]=function(_0x1b59e5){var _0x4f096c=this;return new Promise(function(_0x3ea68a,_0x589d28){return db[_0x1718('0x16')][_0x1718('0x17')](_0x1b59e5[_0x1718('0x18')],{'raw':_0x1b59e5[_0x1718('0x19')]?_0x1b59e5['options'][_0x1718('0x1a')]===undefined?!![]:![]:!![]})[_0x1718('0xb')](function(_0x11e5fa){logger[_0x1718('0xc')](_0x1718('0x15'),_0x1b59e5);logger[_0x1718('0xf')](_0x1718('0x15'),_0x1b59e5,JSON[_0x1718('0x1b')](_0x11e5fa));_0x3ea68a(_0x11e5fa);})[_0x1718('0x14')](function(_0x1f2832){logger[_0x1718('0x11')]('CreateSquareRecording',_0x1f2832[_0x1718('0x13')],_0x1b59e5);_0x589d28(_0x4f096c[_0x1718('0x11')](0x1f4,_0x1f2832[_0x1718('0x13')]));});});};
\ No newline at end of file
+var _0x4b6d=['request\x20sent','SquareRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','SquareRecording,\x20%s,\x20%s','message','result','catch','SquareRecording','create','body','options','raw','then','CreateSquareRecording','debug','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','request','info'];(function(_0x2673a4,_0x4d0b8d){var _0x5e3a6a=function(_0x59e268){while(--_0x59e268){_0x2673a4['push'](_0x2673a4['shift']());}};_0x5e3a6a(++_0x4d0b8d);}(_0x4b6d,0xdc));var _0xd4b6=function(_0x53943f,_0x4aaaef){_0x53943f=_0x53943f-0x0;var _0x403079=_0x4b6d[_0x53943f];return _0x403079;};'use strict';var _=require(_0xd4b6('0x0'));var util=require(_0xd4b6('0x1'));var moment=require(_0xd4b6('0x2'));var BPromise=require(_0xd4b6('0x3'));var rs=require(_0xd4b6('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd4b6('0x5'))['db'];var utils=require(_0xd4b6('0x6'));var logger=require(_0xd4b6('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xd4b6('0x8'));var client=jayson[_0xd4b6('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x390b48,_0x431bdb,_0x12d676){return new BPromise(function(_0x3099ad,_0x3b91e8){return client[_0xd4b6('0xa')](_0x390b48,_0x12d676)['then'](function(_0x277cbd){logger[_0xd4b6('0xb')]('SquareRecording,\x20%s,\x20%s',_0x431bdb,_0xd4b6('0xc'));logger['debug'](_0xd4b6('0xd'),_0x431bdb,'request\x20sent',JSON[_0xd4b6('0xe')](_0x277cbd));if(_0x277cbd[_0xd4b6('0xf')]){if(_0x277cbd[_0xd4b6('0xf')][_0xd4b6('0x10')]===0x1f4){logger[_0xd4b6('0xf')](_0xd4b6('0x11'),_0x431bdb,_0x277cbd[_0xd4b6('0xf')][_0xd4b6('0x12')]);return _0x3b91e8(_0x277cbd[_0xd4b6('0xf')]['message']);}logger['error'](_0xd4b6('0x11'),_0x431bdb,_0x277cbd[_0xd4b6('0xf')][_0xd4b6('0x12')]);return _0x3099ad(_0x277cbd[_0xd4b6('0xf')]['message']);}else{logger['info'](_0xd4b6('0x11'),_0x431bdb,'request\x20sent');_0x3099ad(_0x277cbd[_0xd4b6('0x13')][_0xd4b6('0x12')]);}})[_0xd4b6('0x14')](function(_0x339862){logger[_0xd4b6('0xf')](_0xd4b6('0x11'),_0x431bdb,_0x339862);_0x3b91e8(_0x339862);});});}exports['CreateSquareRecording']=function(_0x2b720d){var _0x4941e9=this;return new Promise(function(_0x1c43bb,_0x247d04){return db[_0xd4b6('0x15')][_0xd4b6('0x16')](_0x2b720d[_0xd4b6('0x17')],{'raw':_0x2b720d[_0xd4b6('0x18')]?_0x2b720d['options'][_0xd4b6('0x19')]===undefined?!![]:![]:!![]})[_0xd4b6('0x1a')](function(_0x376c4e){logger['info'](_0xd4b6('0x1b'),_0x2b720d);logger[_0xd4b6('0x1c')](_0xd4b6('0x1b'),_0x2b720d,JSON[_0xd4b6('0xe')](_0x376c4e));_0x1c43bb(_0x376c4e);})[_0xd4b6('0x14')](function(_0x44a2aa){logger[_0xd4b6('0xf')](_0xd4b6('0x1b'),_0x44a2aa[_0xd4b6('0x12')],_0x2b720d);_0x247d04(_0x4941e9[_0xd4b6('0xf')](0x1f4,_0x44a2aa[_0xd4b6('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87d5=['/:id','isAuthenticated','post','create','update','exports','multer','util','path','connect-timeout','express','Router','../../config/environment','./squareReport.controller','get','index','describe'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0x87d5,0x15a));var _0x587d=function(_0x195e1f,_0x3304c3){_0x195e1f=_0x195e1f-0x0;var _0x1acd06=_0x87d5[_0x195e1f];return _0x1acd06;};'use strict';var multer=require(_0x587d('0x0'));var util=require(_0x587d('0x1'));var path=require(_0x587d('0x2'));var timeout=require(_0x587d('0x3'));var express=require(_0x587d('0x4'));var router=express[_0x587d('0x5')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x587d('0x6'));var controller=require(_0x587d('0x7'));router[_0x587d('0x8')]('/',auth['isAuthenticated'](),controller[_0x587d('0x9')]);router[_0x587d('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x587d('0xa')]);router[_0x587d('0x8')](_0x587d('0xb'),auth[_0x587d('0xc')](),controller['show']);router[_0x587d('0xd')]('/',auth[_0x587d('0xc')](),controller[_0x587d('0xe')]);router['put']('/:id',auth[_0x587d('0xc')](),controller[_0x587d('0xf')]);router['delete'](_0x587d('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0x587d('0x10')]=router;
\ No newline at end of file
+var _0x8e48=['get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','update','delete','exports','multer','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReport.controller'];(function(_0x37b68d,_0x149465){var _0x2cf560=function(_0x5788c6){while(--_0x5788c6){_0x37b68d['push'](_0x37b68d['shift']());}};_0x2cf560(++_0x149465);}(_0x8e48,0x1f0));var _0x88e4=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x8e48[_0xbca1b1];return _0x4e1686;};'use strict';var multer=require(_0x88e4('0x0'));var util=require('util');var path=require(_0x88e4('0x1'));var timeout=require('connect-timeout');var express=require(_0x88e4('0x2'));var router=express[_0x88e4('0x3')]();var auth=require(_0x88e4('0x4'));var interaction=require(_0x88e4('0x5'));var config=require(_0x88e4('0x6'));var controller=require(_0x88e4('0x7'));router[_0x88e4('0x8')]('/',auth[_0x88e4('0x9')](),controller[_0x88e4('0xa')]);router[_0x88e4('0x8')](_0x88e4('0xb'),auth[_0x88e4('0x9')](),controller[_0x88e4('0xc')]);router[_0x88e4('0x8')](_0x88e4('0xd'),auth['isAuthenticated'](),controller[_0x88e4('0xe')]);router[_0x88e4('0xf')]('/',auth[_0x88e4('0x9')](),controller[_0x88e4('0x10')]);router[_0x88e4('0x11')](_0x88e4('0xd'),auth[_0x88e4('0x9')](),controller[_0x88e4('0x12')]);router[_0x88e4('0x13')](_0x88e4('0xd'),auth[_0x88e4('0x9')](),controller['destroy']);module[_0x88e4('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fdc=['exports','STRING','DATE','BOOLEAN'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4fdc,0x84));var _0xc4fd=function(_0x41e212,_0x3fbf15){_0x41e212=_0x41e212-0x0;var _0x24c7e2=_0x4fdc[_0x41e212];return _0x24c7e2;};'use strict';var Sequelize=require('sequelize');module[_0xc4fd('0x0')]={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize[_0xc4fd('0x1')]},'request':{'type':Sequelize[_0xc4fd('0x1')]},'channel':{'type':Sequelize[_0xc4fd('0x1')]},'language':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xc4fd('0x1')]},'uniqueid':{'type':Sequelize[_0xc4fd('0x1')]},'version':{'type':Sequelize[_0xc4fd('0x1')]},'callerid':{'type':Sequelize[_0xc4fd('0x1')]},'calleridname':{'type':Sequelize[_0xc4fd('0x1')]},'callingpres':{'type':Sequelize[_0xc4fd('0x1')]},'callingani2':{'type':Sequelize[_0xc4fd('0x1')]},'callington':{'type':Sequelize['STRING']},'callingtns':{'type':Sequelize[_0xc4fd('0x1')]},'dnid':{'type':Sequelize[_0xc4fd('0x1')]},'rdnis':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xc4fd('0x1')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'enhanced':{'type':Sequelize[_0xc4fd('0x1')]},'accountcode':{'type':Sequelize[_0xc4fd('0x1')]},'threadid':{'type':Sequelize[_0xc4fd('0x1')]},'project_name':{'type':Sequelize[_0xc4fd('0x1')]},'joinAt':{'type':Sequelize[_0xc4fd('0x2')]},'leaveAt':{'type':Sequelize[_0xc4fd('0x2')]},'bot':{'type':Sequelize[_0xc4fd('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x9099=['STRING','DATE','sequelize'];(function(_0x487a11,_0x499d97){var _0x339347=function(_0x11033d){while(--_0x11033d){_0x487a11['push'](_0x487a11['shift']());}};_0x339347(++_0x499d97);}(_0x9099,0x1ac));var _0x9909=function(_0xd299c3,_0x4ba0f1){_0xd299c3=_0xd299c3-0x0;var _0x376574=_0x9099[_0xd299c3];return _0x376574;};'use strict';var Sequelize=require(_0x9909('0x0'));module['exports']={'network':{'type':Sequelize[_0x9909('0x1')]},'network_script':{'type':Sequelize[_0x9909('0x1')]},'request':{'type':Sequelize[_0x9909('0x1')]},'channel':{'type':Sequelize[_0x9909('0x1')]},'language':{'type':Sequelize[_0x9909('0x1')]},'type':{'type':Sequelize[_0x9909('0x1')]},'uniqueid':{'type':Sequelize[_0x9909('0x1')]},'version':{'type':Sequelize[_0x9909('0x1')]},'callerid':{'type':Sequelize[_0x9909('0x1')]},'calleridname':{'type':Sequelize[_0x9909('0x1')]},'callingpres':{'type':Sequelize[_0x9909('0x1')]},'callingani2':{'type':Sequelize[_0x9909('0x1')]},'callington':{'type':Sequelize[_0x9909('0x1')]},'callingtns':{'type':Sequelize[_0x9909('0x1')]},'dnid':{'type':Sequelize['STRING']},'rdnis':{'type':Sequelize[_0x9909('0x1')]},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'enhanced':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x9909('0x1')]},'threadid':{'type':Sequelize['STRING']},'project_name':{'type':Sequelize[_0x9909('0x1')]},'joinAt':{'type':Sequelize[_0x9909('0x2')]},'leaveAt':{'type':Sequelize[_0x9909('0x2')]},'bot':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5077=['map','includeAll','include','findAll','rows','show','fields','options','find','catch','create','body','update','params','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','then','destroy','end','error','name','send','index','SquareReport','rawAttributes','query','dateEnd','dateStart','keys','filters','attributes','intersection','model','length','hasOwnProperty','order','sort','where','day','add','merge','filter'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x5077,0x133));var _0x7507=function(_0x435985,_0x26353c){_0x435985=_0x435985-0x0;var _0x366dc9=_0x5077[_0x435985];return _0x366dc9;};'use strict';var pdf=require(_0x7507('0x0'));var emlformat=require(_0x7507('0x1'));var rimraf=require(_0x7507('0x2'));var zipdir=require(_0x7507('0x3'));var jsonpatch=require(_0x7507('0x4'));var rp=require(_0x7507('0x5'));var moment=require('moment');var BPromise=require(_0x7507('0x6'));var Mustache=require(_0x7507('0x7'));var util=require(_0x7507('0x8'));var path=require(_0x7507('0x9'));var sox=require(_0x7507('0xa'));var csv=require(_0x7507('0xb'));var ejs=require(_0x7507('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x7507('0xd'));var crypto=require(_0x7507('0xe'));var jsforce=require(_0x7507('0xf'));var deskjs=require(_0x7507('0x10'));var toCsv=require(_0x7507('0xb'));var querystring=require(_0x7507('0x11'));var Papa=require(_0x7507('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0x7507('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x7507('0x14'));var db=require(_0x7507('0x15'))['db'];function respondWithStatusCode(_0x18148c,_0x1758d3){_0x1758d3=_0x1758d3||0xcc;return function(_0x258af8){if(_0x258af8){return _0x18148c[_0x7507('0x16')](_0x1758d3);}return _0x18148c[_0x7507('0x17')](_0x1758d3)['end']();};}function respondWithResult(_0x4aac64,_0x32f177){_0x32f177=_0x32f177||0xc8;return function(_0x487881){if(_0x487881){return _0x4aac64[_0x7507('0x17')](_0x32f177)[_0x7507('0x18')](_0x487881);}};}function respondWithFilteredResult(_0x4d3b93,_0x2ed1f6){return function(_0x32e2fa){if(_0x32e2fa){var _0xcec95b=_0x32e2fa[_0x7507('0x19')],_0x33b390=_0x2ed1f6[_0x7507('0x1a')],_0x284192=_0x2ed1f6['offset']+_0x2ed1f6[_0x7507('0x1b')],_0x19efed;if(_0x284192>=_0xcec95b){_0x284192=_0xcec95b;_0x19efed=0xc8;}else{_0x19efed=0xce;}_0x4d3b93[_0x7507('0x17')](_0x19efed);return _0x4d3b93['set'](_0x7507('0x1c'),_0x33b390+'-'+_0x284192+'/'+_0xcec95b)[_0x7507('0x18')](_0x32e2fa);}return null;};}function patchUpdates(_0x13b145){return function(_0x3ead3f){try{jsonpatch[_0x7507('0x1d')](_0x3ead3f,_0x13b145,!![]);}catch(_0x293aeb){return BPromise[_0x7507('0x1e')](_0x293aeb);}return _0x3ead3f[_0x7507('0x1f')]();};}function saveUpdates(_0x3c2703,_0x2f8495){return function(_0xc8c6aa){if(_0xc8c6aa){return _0xc8c6aa['update'](_0x3c2703)[_0x7507('0x20')](function(_0xad5af){return _0xad5af;});}return null;};}function removeEntity(_0x2bfe5a,_0x121ee4){return function(_0x1580c5){if(_0x1580c5){return _0x1580c5[_0x7507('0x21')]()[_0x7507('0x20')](function(){_0x2bfe5a[_0x7507('0x17')](0xcc)[_0x7507('0x22')]();});}};}function handleEntityNotFound(_0x1c26ad,_0x5803ac){return function(_0x39a5d5){if(!_0x39a5d5){_0x1c26ad['sendStatus'](0x194);}return _0x39a5d5;};}function handleError(_0x1bbcb4,_0x1c913b){_0x1c913b=_0x1c913b||0x1f4;return function(_0x12966d){logger[_0x7507('0x23')](_0x12966d['stack']);if(_0x12966d[_0x7507('0x24')]){delete _0x12966d[_0x7507('0x24')];}_0x1bbcb4[_0x7507('0x17')](_0x1c913b)[_0x7507('0x25')](_0x12966d);};}exports[_0x7507('0x26')]=function(_0xb4c4e0,_0x3be457){var _0x58bf84={},_0x1e8e36={},_0x13b261={'count':0x0,'rows':[]};var _0x315d1e=db[_0x7507('0x27')][_0x7507('0x28')];_0x1e8e36['model']=_['keys'](_0x315d1e);var _0x553ea3={'dateStart':_0xb4c4e0[_0x7507('0x29')]['dateStart'],'dateEnd':_0xb4c4e0[_0x7507('0x29')][_0x7507('0x2a')]};delete _0xb4c4e0['query'][_0x7507('0x2b')];delete _0xb4c4e0[_0x7507('0x29')][_0x7507('0x2a')];_0x1e8e36['query']=_[_0x7507('0x2c')](_0xb4c4e0[_0x7507('0x29')]);_0x1e8e36[_0x7507('0x2d')]=_['intersection'](_0x1e8e36['model'],_0x1e8e36[_0x7507('0x29')]);_0x58bf84[_0x7507('0x2e')]=_[_0x7507('0x2f')](_0x1e8e36[_0x7507('0x30')],qs['fields'](_0xb4c4e0[_0x7507('0x29')]['fields']));_0x58bf84[_0x7507('0x2e')]=_0x58bf84['attributes'][_0x7507('0x31')]?_0x58bf84[_0x7507('0x2e')]:_0x1e8e36['model'];if(!_0xb4c4e0[_0x7507('0x29')][_0x7507('0x32')]('nolimit')){_0x58bf84[_0x7507('0x1b')]=qs[_0x7507('0x1b')](_0xb4c4e0[_0x7507('0x29')][_0x7507('0x1b')]);_0x58bf84[_0x7507('0x1a')]=qs[_0x7507('0x1a')](_0xb4c4e0['query'][_0x7507('0x1a')]);}_0x58bf84[_0x7507('0x33')]=qs[_0x7507('0x34')](_0xb4c4e0[_0x7507('0x29')][_0x7507('0x34')]);_0x58bf84[_0x7507('0x35')]=qs['filters'](_['pick'](_0xb4c4e0[_0x7507('0x29')],_0x1e8e36['filters']));if(_0x553ea3['dateStart']){if(_0x553ea3[_0x7507('0x2a')]){_0x553ea3[_0x7507('0x2a')]=moment(_0x553ea3[_0x7507('0x2a')])['add'](0x1,_0x7507('0x36'));}else{_0x553ea3[_0x7507('0x2a')]=moment(_0x553ea3['dateStart'])[_0x7507('0x37')](0x1,_0x7507('0x36'));}_[_0x7507('0x38')](_0x58bf84[_0x7507('0x35')],{'createdAt':{'$gte':_0x553ea3[_0x7507('0x2b')],'$lte':_0x553ea3['dateEnd']}});}if(_0xb4c4e0[_0x7507('0x29')][_0x7507('0x39')]){_0x58bf84[_0x7507('0x35')]=_['merge'](_0x58bf84[_0x7507('0x35')],{'$or':_[_0x7507('0x3a')](_0x58bf84[_0x7507('0x2e')],function(_0x553322){var _0x15c0fb={};_0x15c0fb[_0x553322]={'$like':'%'+_0xb4c4e0['query'][_0x7507('0x39')]+'%'};return _0x15c0fb;})});}_0x58bf84=_['merge']({},_0x58bf84,_0xb4c4e0['options']);var _0x39e550={'where':_0x58bf84['where']};return db[_0x7507('0x27')][_0x7507('0x19')](_0x39e550)[_0x7507('0x20')](function(_0x1fc9d0){_0x13b261[_0x7507('0x19')]=_0x1fc9d0;if(_0xb4c4e0[_0x7507('0x29')][_0x7507('0x3b')]){_0x58bf84[_0x7507('0x3c')]=[{'all':!![]}];}return db[_0x7507('0x27')][_0x7507('0x3d')](_0x58bf84);})[_0x7507('0x20')](function(_0x40d78f){_0x13b261[_0x7507('0x3e')]=_0x40d78f;return _0x13b261;})[_0x7507('0x20')](respondWithFilteredResult(_0x3be457,_0x58bf84))['catch'](handleError(_0x3be457,null));};exports[_0x7507('0x3f')]=function(_0x14bd48,_0x196c2f){var _0x49a917={'raw':!![],'where':{'id':_0x14bd48['params']['id']}},_0x58a757={};_0x58a757[_0x7507('0x30')]=_[_0x7507('0x2c')](db[_0x7507('0x27')][_0x7507('0x28')]);_0x58a757[_0x7507('0x29')]=_[_0x7507('0x2c')](_0x14bd48[_0x7507('0x29')]);_0x58a757[_0x7507('0x2d')]=_[_0x7507('0x2f')](_0x58a757[_0x7507('0x30')],_0x58a757[_0x7507('0x29')]);_0x49a917[_0x7507('0x2e')]=_[_0x7507('0x2f')](_0x58a757['model'],qs[_0x7507('0x40')](_0x14bd48['query'][_0x7507('0x40')]));_0x49a917[_0x7507('0x2e')]=_0x49a917[_0x7507('0x2e')]['length']?_0x49a917[_0x7507('0x2e')]:_0x58a757[_0x7507('0x30')];if(_0x14bd48[_0x7507('0x29')]['includeAll']){_0x49a917[_0x7507('0x3c')]=[{'all':!![]}];}_0x49a917=_[_0x7507('0x38')]({},_0x49a917,_0x14bd48[_0x7507('0x41')]);return db[_0x7507('0x27')][_0x7507('0x42')](_0x49a917)[_0x7507('0x20')](handleEntityNotFound(_0x196c2f,null))[_0x7507('0x20')](respondWithResult(_0x196c2f,null))[_0x7507('0x43')](handleError(_0x196c2f,null));};exports[_0x7507('0x44')]=function(_0x4d5805,_0x407f13){return db[_0x7507('0x27')]['create'](_0x4d5805[_0x7507('0x45')],{})[_0x7507('0x20')](respondWithResult(_0x407f13,0xc9))['catch'](handleError(_0x407f13,null));};exports[_0x7507('0x46')]=function(_0x445383,_0x58b9c1){if(_0x445383[_0x7507('0x45')]['id']){delete _0x445383[_0x7507('0x45')]['id'];}return db['SquareReport'][_0x7507('0x42')]({'where':{'id':_0x445383[_0x7507('0x47')]['id']}})['then'](handleEntityNotFound(_0x58b9c1,null))[_0x7507('0x20')](saveUpdates(_0x445383[_0x7507('0x45')],null))['then'](respondWithResult(_0x58b9c1,null))[_0x7507('0x43')](handleError(_0x58b9c1,null));};exports[_0x7507('0x21')]=function(_0x46e77c,_0x12dc0e){return db[_0x7507('0x27')][_0x7507('0x42')]({'where':{'id':_0x46e77c[_0x7507('0x47')]['id']}})[_0x7507('0x20')](handleEntityNotFound(_0x12dc0e,null))[_0x7507('0x20')](removeEntity(_0x12dc0e,null))[_0x7507('0x43')](handleError(_0x12dc0e,null));};exports[_0x7507('0x48')]=function(_0x183518,_0x3b2521){return db[_0x7507('0x27')][_0x7507('0x48')]()['then'](respondWithResult(_0x3b2521,null))[_0x7507('0x43')](handleError(_0x3b2521,null));};
\ No newline at end of file
+var _0x3931=['send','index','rawAttributes','model','keys','query','dateEnd','dateStart','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','SquareReport','includeAll','include','findAll','rows','show','params','length','catch','create','body','update','find','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','save','then','destroy','end','error','stack','name'];(function(_0xc4577d,_0x44fb35){var _0xfb792e=function(_0x2edb27){while(--_0x2edb27){_0xc4577d['push'](_0xc4577d['shift']());}};_0xfb792e(++_0x44fb35);}(_0x3931,0xbf));var _0x1393=function(_0x38bc3d,_0x244721){_0x38bc3d=_0x38bc3d-0x0;var _0x6430b2=_0x3931[_0x38bc3d];return _0x6430b2;};'use strict';var pdf=require(_0x1393('0x0'));var emlformat=require(_0x1393('0x1'));var rimraf=require(_0x1393('0x2'));var zipdir=require(_0x1393('0x3'));var jsonpatch=require(_0x1393('0x4'));var rp=require(_0x1393('0x5'));var moment=require('moment');var BPromise=require(_0x1393('0x6'));var Mustache=require(_0x1393('0x7'));var util=require(_0x1393('0x8'));var path=require(_0x1393('0x9'));var sox=require(_0x1393('0xa'));var csv=require(_0x1393('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x1393('0xc'));var squel=require(_0x1393('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1393('0xe'));var toCsv=require(_0x1393('0xb'));var querystring=require(_0x1393('0xf'));var Papa=require(_0x1393('0x10'));var Redis=require(_0x1393('0x11'));var qs=require(_0x1393('0x12'));var logger=require(_0x1393('0x13'))(_0x1393('0x14'));var utils=require(_0x1393('0x15'));var config=require('../../config/environment');var db=require(_0x1393('0x16'))['db'];function respondWithStatusCode(_0x5e7008,_0x1a6b40){_0x1a6b40=_0x1a6b40||0xcc;return function(_0xcd7021){if(_0xcd7021){return _0x5e7008[_0x1393('0x17')](_0x1a6b40);}return _0x5e7008[_0x1393('0x18')](_0x1a6b40)['end']();};}function respondWithResult(_0x5f067f,_0x4751db){_0x4751db=_0x4751db||0xc8;return function(_0x498fc3){if(_0x498fc3){return _0x5f067f['status'](_0x4751db)['json'](_0x498fc3);}};}function respondWithFilteredResult(_0x441aeb,_0x3c96f3){return function(_0x56e697){if(_0x56e697){var _0x5b06c1=_0x56e697[_0x1393('0x19')],_0x3b8fb2=_0x3c96f3[_0x1393('0x1a')],_0x2a3b07=_0x3c96f3['offset']+_0x3c96f3[_0x1393('0x1b')],_0x29e8ea;if(_0x2a3b07>=_0x5b06c1){_0x2a3b07=_0x5b06c1;_0x29e8ea=0xc8;}else{_0x29e8ea=0xce;}_0x441aeb['status'](_0x29e8ea);return _0x441aeb[_0x1393('0x1c')](_0x1393('0x1d'),_0x3b8fb2+'-'+_0x2a3b07+'/'+_0x5b06c1)[_0x1393('0x1e')](_0x56e697);}return null;};}function patchUpdates(_0x452273){return function(_0xb49b7a){try{jsonpatch[_0x1393('0x1f')](_0xb49b7a,_0x452273,!![]);}catch(_0x1252c3){return BPromise[_0x1393('0x20')](_0x1252c3);}return _0xb49b7a[_0x1393('0x21')]();};}function saveUpdates(_0x38da73,_0x330bd3){return function(_0x28c50a){if(_0x28c50a){return _0x28c50a['update'](_0x38da73)[_0x1393('0x22')](function(_0x48534f){return _0x48534f;});}return null;};}function removeEntity(_0x5a917b,_0x2970fb){return function(_0x46ee7d){if(_0x46ee7d){return _0x46ee7d[_0x1393('0x23')]()[_0x1393('0x22')](function(){_0x5a917b[_0x1393('0x18')](0xcc)[_0x1393('0x24')]();});}};}function handleEntityNotFound(_0x5c9c2b,_0xa713ef){return function(_0x2fdcc9){if(!_0x2fdcc9){_0x5c9c2b[_0x1393('0x17')](0x194);}return _0x2fdcc9;};}function handleError(_0x59c989,_0x152f97){_0x152f97=_0x152f97||0x1f4;return function(_0x388932){logger[_0x1393('0x25')](_0x388932[_0x1393('0x26')]);if(_0x388932[_0x1393('0x27')]){delete _0x388932[_0x1393('0x27')];}_0x59c989[_0x1393('0x18')](_0x152f97)[_0x1393('0x28')](_0x388932);};}exports[_0x1393('0x29')]=function(_0x2a5f51,_0x4e5a02){var _0xb5f7cf={},_0x54e18f={},_0x52ebd5={'count':0x0,'rows':[]};var _0x391163=db['SquareReport'][_0x1393('0x2a')];_0x54e18f[_0x1393('0x2b')]=_[_0x1393('0x2c')](_0x391163);var _0x4b54e4={'dateStart':_0x2a5f51[_0x1393('0x2d')]['dateStart'],'dateEnd':_0x2a5f51['query'][_0x1393('0x2e')]};delete _0x2a5f51[_0x1393('0x2d')][_0x1393('0x2f')];delete _0x2a5f51[_0x1393('0x2d')][_0x1393('0x2e')];_0x54e18f[_0x1393('0x2d')]=_[_0x1393('0x2c')](_0x2a5f51[_0x1393('0x2d')]);_0x54e18f[_0x1393('0x30')]=_['intersection'](_0x54e18f[_0x1393('0x2b')],_0x54e18f[_0x1393('0x2d')]);_0xb5f7cf['attributes']=_[_0x1393('0x31')](_0x54e18f[_0x1393('0x2b')],qs[_0x1393('0x32')](_0x2a5f51[_0x1393('0x2d')][_0x1393('0x32')]));_0xb5f7cf[_0x1393('0x33')]=_0xb5f7cf['attributes']['length']?_0xb5f7cf['attributes']:_0x54e18f[_0x1393('0x2b')];if(!_0x2a5f51[_0x1393('0x2d')]['hasOwnProperty'](_0x1393('0x34'))){_0xb5f7cf['limit']=qs[_0x1393('0x1b')](_0x2a5f51[_0x1393('0x2d')][_0x1393('0x1b')]);_0xb5f7cf[_0x1393('0x1a')]=qs[_0x1393('0x1a')](_0x2a5f51[_0x1393('0x2d')][_0x1393('0x1a')]);}_0xb5f7cf[_0x1393('0x35')]=qs[_0x1393('0x36')](_0x2a5f51[_0x1393('0x2d')]['sort']);_0xb5f7cf[_0x1393('0x37')]=qs[_0x1393('0x30')](_[_0x1393('0x38')](_0x2a5f51[_0x1393('0x2d')],_0x54e18f[_0x1393('0x30')]));if(_0x4b54e4[_0x1393('0x2f')]){if(_0x4b54e4[_0x1393('0x2e')]){_0x4b54e4['dateEnd']=moment(_0x4b54e4['dateEnd'])[_0x1393('0x39')](0x1,_0x1393('0x3a'));}else{_0x4b54e4['dateEnd']=moment(_0x4b54e4[_0x1393('0x2f')])[_0x1393('0x39')](0x1,_0x1393('0x3a'));}_[_0x1393('0x3b')](_0xb5f7cf[_0x1393('0x37')],{'createdAt':{'$gte':_0x4b54e4[_0x1393('0x2f')],'$lte':_0x4b54e4[_0x1393('0x2e')]}});}if(_0x2a5f51['query'][_0x1393('0x3c')]){_0xb5f7cf[_0x1393('0x37')]=_['merge'](_0xb5f7cf[_0x1393('0x37')],{'$or':_[_0x1393('0x3d')](_0xb5f7cf[_0x1393('0x33')],function(_0x5519da){var _0x5627c1={};_0x5627c1[_0x5519da]={'$like':'%'+_0x2a5f51[_0x1393('0x2d')]['filter']+'%'};return _0x5627c1;})});}_0xb5f7cf=_[_0x1393('0x3b')]({},_0xb5f7cf,_0x2a5f51[_0x1393('0x3e')]);var _0x59599b={'where':_0xb5f7cf[_0x1393('0x37')]};return db[_0x1393('0x3f')]['count'](_0x59599b)[_0x1393('0x22')](function(_0x12d543){_0x52ebd5[_0x1393('0x19')]=_0x12d543;if(_0x2a5f51[_0x1393('0x2d')][_0x1393('0x40')]){_0xb5f7cf[_0x1393('0x41')]=[{'all':!![]}];}return db[_0x1393('0x3f')][_0x1393('0x42')](_0xb5f7cf);})[_0x1393('0x22')](function(_0x52152b){_0x52ebd5[_0x1393('0x43')]=_0x52152b;return _0x52ebd5;})[_0x1393('0x22')](respondWithFilteredResult(_0x4e5a02,_0xb5f7cf))['catch'](handleError(_0x4e5a02,null));};exports[_0x1393('0x44')]=function(_0x5bc53c,_0x292829){var _0x366193={'raw':!![],'where':{'id':_0x5bc53c[_0x1393('0x45')]['id']}},_0x2704c9={};_0x2704c9[_0x1393('0x2b')]=_['keys'](db[_0x1393('0x3f')][_0x1393('0x2a')]);_0x2704c9[_0x1393('0x2d')]=_[_0x1393('0x2c')](_0x5bc53c[_0x1393('0x2d')]);_0x2704c9[_0x1393('0x30')]=_[_0x1393('0x31')](_0x2704c9[_0x1393('0x2b')],_0x2704c9[_0x1393('0x2d')]);_0x366193[_0x1393('0x33')]=_[_0x1393('0x31')](_0x2704c9[_0x1393('0x2b')],qs[_0x1393('0x32')](_0x5bc53c[_0x1393('0x2d')][_0x1393('0x32')]));_0x366193[_0x1393('0x33')]=_0x366193['attributes'][_0x1393('0x46')]?_0x366193[_0x1393('0x33')]:_0x2704c9[_0x1393('0x2b')];if(_0x5bc53c['query']['includeAll']){_0x366193[_0x1393('0x41')]=[{'all':!![]}];}_0x366193=_[_0x1393('0x3b')]({},_0x366193,_0x5bc53c['options']);return db[_0x1393('0x3f')]['find'](_0x366193)['then'](handleEntityNotFound(_0x292829,null))[_0x1393('0x22')](respondWithResult(_0x292829,null))[_0x1393('0x47')](handleError(_0x292829,null));};exports[_0x1393('0x48')]=function(_0x481ce2,_0x471233){return db[_0x1393('0x3f')][_0x1393('0x48')](_0x481ce2[_0x1393('0x49')],{})[_0x1393('0x22')](respondWithResult(_0x471233,0xc9))[_0x1393('0x47')](handleError(_0x471233,null));};exports[_0x1393('0x4a')]=function(_0x285746,_0x5b9618){if(_0x285746[_0x1393('0x49')]['id']){delete _0x285746[_0x1393('0x49')]['id'];}return db[_0x1393('0x3f')]['find']({'where':{'id':_0x285746[_0x1393('0x45')]['id']}})[_0x1393('0x22')](handleEntityNotFound(_0x5b9618,null))['then'](saveUpdates(_0x285746[_0x1393('0x49')],null))[_0x1393('0x22')](respondWithResult(_0x5b9618,null))['catch'](handleError(_0x5b9618,null));};exports[_0x1393('0x23')]=function(_0x1ba055,_0x41cf6a){return db['SquareReport'][_0x1393('0x4b')]({'where':{'id':_0x1ba055[_0x1393('0x45')]['id']}})[_0x1393('0x22')](handleEntityNotFound(_0x41cf6a,null))[_0x1393('0x22')](removeEntity(_0x41cf6a,null))['catch'](handleError(_0x41cf6a,null));};exports['describe']=function(_0x3159bf,_0x66c5ee){return db[_0x1393('0x3f')][_0x1393('0x4c')]()[_0x1393('0x22')](respondWithResult(_0x66c5ee,null))[_0x1393('0x47')](handleError(_0x66c5ee,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91fb=['uniqueid','project_name','leaveAt','lodash','util','api','bluebird','request-promise','exports','define','SquareReport','report_square','uid_pname'];(function(_0x5d0518,_0x338944){var _0x4df0a7=function(_0x12e589){while(--_0x12e589){_0x5d0518['push'](_0x5d0518['shift']());}};_0x4df0a7(++_0x338944);}(_0x91fb,0xfa));var _0xb91f=function(_0x4358f5,_0x5b1ac6){_0x4358f5=_0x4358f5-0x0;var _0x4d8104=_0x91fb[_0x4358f5];return _0x4d8104;};'use strict';var _=require(_0xb91f('0x0'));var util=require(_0xb91f('0x1'));var logger=require('../../config/logger')(_0xb91f('0x2'));var moment=require('moment');var BPromise=require(_0xb91f('0x3'));var rp=require(_0xb91f('0x4'));var attributes=require('./squareReport.attributes');module[_0xb91f('0x5')]=function(_0x3e018f,_0x1dd26b){return _0x3e018f[_0xb91f('0x6')](_0xb91f('0x7'),attributes,{'tableName':_0xb91f('0x8'),'paranoid':![],'indexes':[{'name':_0xb91f('0x9'),'fields':[_0xb91f('0xa'),_0xb91f('0xb')]},{'name':_0xb91f('0xc'),'fields':[_0xb91f('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3bad=['uid_pname','uniqueid','leaveAt','lodash','util','../../config/logger','api','request-promise','./squareReport.attributes','exports','SquareReport'];(function(_0x5349b4,_0xe4cd5a){var _0xeadb7e=function(_0x258fd1){while(--_0x258fd1){_0x5349b4['push'](_0x5349b4['shift']());}};_0xeadb7e(++_0xe4cd5a);}(_0x3bad,0x1bb));var _0xd3ba=function(_0x2080b6,_0x22d0e2){_0x2080b6=_0x2080b6-0x0;var _0x1b9a3d=_0x3bad[_0x2080b6];return _0x1b9a3d;};'use strict';var _=require(_0xd3ba('0x0'));var util=require(_0xd3ba('0x1'));var logger=require(_0xd3ba('0x2'))(_0xd3ba('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd3ba('0x4'));var attributes=require(_0xd3ba('0x5'));module[_0xd3ba('0x6')]=function(_0xb75394,_0x21d7fc){return _0xb75394['define'](_0xd3ba('0x7'),attributes,{'tableName':'report_square','paranoid':![],'indexes':[{'name':_0xd3ba('0x8'),'fields':[_0xd3ba('0x9'),'project_name']},{'name':_0xd3ba('0xa'),'fields':[_0xd3ba('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84a4=['../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','code','SquareReport,\x20%s,\x20%s','message','info','result','catch','SquareReport','body','options','raw','CreateSquareReport','UpdateSquareReport','update','limit','lodash','moment','randomstring'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x84a4,0x75));var _0x484a=function(_0x453f34,_0x5089e6){_0x453f34=_0x453f34-0x0;var _0x1cd830=_0x84a4[_0x453f34];return _0x1cd830;};'use strict';var _=require(_0x484a('0x0'));var util=require('util');var moment=require(_0x484a('0x1'));var BPromise=require('bluebird');var rs=require(_0x484a('0x2'));var fs=require('fs');var db=require(_0x484a('0x3'))['db'];var utils=require(_0x484a('0x4'));var logger=require('../../config/logger')(_0x484a('0x5'));var config=require(_0x484a('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x484a('0x7')][_0x484a('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x498aa0,_0x24cf4b,_0x52ddfb){return new BPromise(function(_0xb9572e,_0x25b11b){return client[_0x484a('0x9')](_0x498aa0,_0x52ddfb)[_0x484a('0xa')](function(_0x267896){logger['info']('SquareReport,\x20%s,\x20%s',_0x24cf4b,_0x484a('0xb'));logger[_0x484a('0xc')](_0x484a('0xd'),_0x24cf4b,_0x484a('0xb'),JSON[_0x484a('0xe')](_0x267896));if(_0x267896[_0x484a('0xf')]){if(_0x267896[_0x484a('0xf')][_0x484a('0x10')]===0x1f4){logger[_0x484a('0xf')](_0x484a('0x11'),_0x24cf4b,_0x267896[_0x484a('0xf')][_0x484a('0x12')]);return _0x25b11b(_0x267896[_0x484a('0xf')][_0x484a('0x12')]);}logger['error'](_0x484a('0x11'),_0x24cf4b,_0x267896[_0x484a('0xf')][_0x484a('0x12')]);return _0xb9572e(_0x267896[_0x484a('0xf')][_0x484a('0x12')]);}else{logger[_0x484a('0x13')]('SquareReport,\x20%s,\x20%s',_0x24cf4b,_0x484a('0xb'));_0xb9572e(_0x267896[_0x484a('0x14')]['message']);}})[_0x484a('0x15')](function(_0x5580fd){logger[_0x484a('0xf')]('SquareReport,\x20%s,\x20%s',_0x24cf4b,_0x5580fd);_0x25b11b(_0x5580fd);});});}exports['CreateSquareReport']=function(_0x2a6a3d){var _0x2602eb=this;return new Promise(function(_0x28720b,_0x28c72a){return db[_0x484a('0x16')]['create'](_0x2a6a3d[_0x484a('0x17')],{'raw':_0x2a6a3d[_0x484a('0x18')]?_0x2a6a3d[_0x484a('0x18')][_0x484a('0x19')]===undefined?!![]:![]:!![]})[_0x484a('0xa')](function(_0x50509c){logger[_0x484a('0x13')](_0x484a('0x1a'),_0x2a6a3d);logger[_0x484a('0xc')]('CreateSquareReport',_0x2a6a3d,JSON[_0x484a('0xe')](_0x50509c));_0x28720b(_0x50509c);})['catch'](function(_0x198d89){logger[_0x484a('0xf')](_0x484a('0x1a'),_0x198d89['message'],_0x2a6a3d);_0x28c72a(_0x2602eb[_0x484a('0xf')](0x1f4,_0x198d89[_0x484a('0x12')]));});});};exports[_0x484a('0x1b')]=function(_0x5d10cc){var _0x579696=this;return new Promise(function(_0x2a526e,_0x30af31){return db[_0x484a('0x16')][_0x484a('0x1c')](_0x5d10cc[_0x484a('0x17')],{'raw':_0x5d10cc['options']?_0x5d10cc[_0x484a('0x18')][_0x484a('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5d10cc[_0x484a('0x18')]?_0x5d10cc['options']['where']||null:null,'attributes':_0x5d10cc[_0x484a('0x18')]?_0x5d10cc[_0x484a('0x18')]['attributes']||null:null,'limit':_0x5d10cc[_0x484a('0x18')]?_0x5d10cc[_0x484a('0x18')][_0x484a('0x1d')]||null:null})['then'](function(_0x2a50f5){logger[_0x484a('0x13')]('UpdateSquareReport',_0x5d10cc);logger['debug'](_0x484a('0x1b'),_0x5d10cc,JSON['stringify'](_0x2a50f5));_0x2a526e(_0x2a50f5);})['catch'](function(_0x4dac37){logger[_0x484a('0xf')]('UpdateSquareReport',_0x4dac37[_0x484a('0x12')],_0x5d10cc);_0x30af31(_0x579696['error'](0x1f4,_0x4dac37[_0x484a('0x12')]));});});};
\ No newline at end of file
+var _0x129d=['moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareReport,\x20%s,\x20%s','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','CreateSquareReport','body','options','raw','UpdateSquareReport','SquareReport','where','limit','catch','util'];(function(_0x26f848,_0x331fe0){var _0x598aa4=function(_0x119937){while(--_0x119937){_0x26f848['push'](_0x26f848['shift']());}};_0x598aa4(++_0x331fe0);}(_0x129d,0x15f));var _0xd129=function(_0x54d831,_0x55c1b5){_0x54d831=_0x54d831-0x0;var _0x116066=_0x129d[_0x54d831];return _0x116066;};'use strict';var _=require('lodash');var util=require(_0xd129('0x0'));var moment=require(_0xd129('0x1'));var BPromise=require('bluebird');var rs=require(_0xd129('0x2'));var fs=require('fs');var Redis=require(_0xd129('0x3'));var db=require(_0xd129('0x4'))['db'];var utils=require(_0xd129('0x5'));var logger=require(_0xd129('0x6'))(_0xd129('0x7'));var config=require(_0xd129('0x8'));var jayson=require(_0xd129('0x9'));var client=jayson[_0xd129('0xa')][_0xd129('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x37073c,_0x44a593,_0x6a1095){return new BPromise(function(_0x576a3c,_0x99a65a){return client[_0xd129('0xc')](_0x37073c,_0x6a1095)[_0xd129('0xd')](function(_0x324835){logger[_0xd129('0xe')](_0xd129('0xf'),_0x44a593,_0xd129('0x10'));logger[_0xd129('0x11')](_0xd129('0x12'),_0x44a593,'request\x20sent',JSON[_0xd129('0x13')](_0x324835));if(_0x324835[_0xd129('0x14')]){if(_0x324835[_0xd129('0x14')]['code']===0x1f4){logger[_0xd129('0x14')](_0xd129('0xf'),_0x44a593,_0x324835['error'][_0xd129('0x15')]);return _0x99a65a(_0x324835[_0xd129('0x14')][_0xd129('0x15')]);}logger[_0xd129('0x14')](_0xd129('0xf'),_0x44a593,_0x324835[_0xd129('0x14')][_0xd129('0x15')]);return _0x576a3c(_0x324835[_0xd129('0x14')]['message']);}else{logger[_0xd129('0xe')](_0xd129('0xf'),_0x44a593,'request\x20sent');_0x576a3c(_0x324835[_0xd129('0x16')][_0xd129('0x15')]);}})['catch'](function(_0x621cc9){logger[_0xd129('0x14')]('SquareReport,\x20%s,\x20%s',_0x44a593,_0x621cc9);_0x99a65a(_0x621cc9);});});}exports[_0xd129('0x17')]=function(_0x44da10){var _0x46573f=this;return new Promise(function(_0x24e7e2,_0x11b10a){return db['SquareReport']['create'](_0x44da10[_0xd129('0x18')],{'raw':_0x44da10[_0xd129('0x19')]?_0x44da10[_0xd129('0x19')][_0xd129('0x1a')]===undefined?!![]:![]:!![]})[_0xd129('0xd')](function(_0x21380d){logger[_0xd129('0xe')](_0xd129('0x17'),_0x44da10);logger['debug'](_0xd129('0x17'),_0x44da10,JSON[_0xd129('0x13')](_0x21380d));_0x24e7e2(_0x21380d);})['catch'](function(_0x38a357){logger[_0xd129('0x14')](_0xd129('0x17'),_0x38a357[_0xd129('0x15')],_0x44da10);_0x11b10a(_0x46573f[_0xd129('0x14')](0x1f4,_0x38a357[_0xd129('0x15')]));});});};exports[_0xd129('0x1b')]=function(_0x1f54e4){var _0x8458e=this;return new Promise(function(_0x30c60c,_0x125c9e){return db[_0xd129('0x1c')]['update'](_0x1f54e4['body'],{'raw':_0x1f54e4[_0xd129('0x19')]?_0x1f54e4[_0xd129('0x19')][_0xd129('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1f54e4[_0xd129('0x19')]?_0x1f54e4['options'][_0xd129('0x1d')]||null:null,'attributes':_0x1f54e4[_0xd129('0x19')]?_0x1f54e4['options']['attributes']||null:null,'limit':_0x1f54e4[_0xd129('0x19')]?_0x1f54e4[_0xd129('0x19')][_0xd129('0x1e')]||null:null})['then'](function(_0x2de024){logger[_0xd129('0xe')](_0xd129('0x1b'),_0x1f54e4);logger[_0xd129('0x11')](_0xd129('0x1b'),_0x1f54e4,JSON[_0xd129('0x13')](_0x2de024));_0x30c60c(_0x2de024);})[_0xd129('0x1f')](function(_0x30597b){logger[_0xd129('0x14')](_0xd129('0x1b'),_0x30597b[_0xd129('0x15')],_0x1f54e4);_0x125c9e(_0x8458e[_0xd129('0x14')](0x1f4,_0x30597b[_0xd129('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe53f=['create','put','update','delete','destroy','exports','multer','util','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x22463e,_0x21cb73){var _0xe55d5d=function(_0xf05cac){while(--_0xf05cac){_0x22463e['push'](_0x22463e['shift']());}};_0xe55d5d(++_0x21cb73);}(_0xe53f,0x13a));var _0xfe53=function(_0x560357,_0x142a5c){_0x560357=_0x560357-0x0;var _0x29a226=_0xe53f[_0x560357];return _0x29a226;};'use strict';var multer=require(_0xfe53('0x0'));var util=require(_0xfe53('0x1'));var path=require('path');var timeout=require(_0xfe53('0x2'));var express=require('express');var router=express[_0xfe53('0x3')]();var auth=require(_0xfe53('0x4'));var interaction=require(_0xfe53('0x5'));var config=require(_0xfe53('0x6'));var controller=require(_0xfe53('0x7'));router[_0xfe53('0x8')]('/',auth[_0xfe53('0x9')](),controller[_0xfe53('0xa')]);router['get'](_0xfe53('0xb'),auth[_0xfe53('0x9')](),controller[_0xfe53('0xc')]);router[_0xfe53('0x8')](_0xfe53('0xd'),auth[_0xfe53('0x9')](),controller[_0xfe53('0xe')]);router[_0xfe53('0xf')]('/',auth[_0xfe53('0x9')](),controller[_0xfe53('0x10')]);router[_0xfe53('0x11')](_0xfe53('0xd'),auth[_0xfe53('0x9')](),controller[_0xfe53('0x12')]);router[_0xfe53('0x13')](_0xfe53('0xd'),auth['isAuthenticated'](),controller[_0xfe53('0x14')]);module[_0xfe53('0x15')]=router;
\ No newline at end of file
+var _0xb7f5=['express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','show','post','create','put','/:id','update','multer','util','path','connect-timeout'];(function(_0x62f1a2,_0x7d84cb){var _0x137fb0=function(_0xdea36a){while(--_0xdea36a){_0x62f1a2['push'](_0x62f1a2['shift']());}};_0x137fb0(++_0x7d84cb);}(_0xb7f5,0x88));var _0x5b7f=function(_0xef06df,_0x3c27ea){_0xef06df=_0xef06df-0x0;var _0x50483d=_0xb7f5[_0xef06df];return _0x50483d;};'use strict';var multer=require(_0x5b7f('0x0'));var util=require(_0x5b7f('0x1'));var path=require(_0x5b7f('0x2'));var timeout=require(_0x5b7f('0x3'));var express=require(_0x5b7f('0x4'));var router=express[_0x5b7f('0x5')]();var auth=require(_0x5b7f('0x6'));var interaction=require(_0x5b7f('0x7'));var config=require(_0x5b7f('0x8'));var controller=require('./squareReportDetail.controller');router[_0x5b7f('0x9')]('/',auth[_0x5b7f('0xa')](),controller[_0x5b7f('0xb')]);router[_0x5b7f('0x9')](_0x5b7f('0xc'),auth[_0x5b7f('0xa')](),controller[_0x5b7f('0xd')]);router[_0x5b7f('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x5b7f('0xe')]);router[_0x5b7f('0xf')]('/',auth[_0x5b7f('0xa')](),controller[_0x5b7f('0x10')]);router[_0x5b7f('0x11')](_0x5b7f('0x12'),auth[_0x5b7f('0xa')](),controller[_0x5b7f('0x13')]);router['delete'](_0x5b7f('0x12'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x11bb=['STRING','TEXT','exports'];(function(_0x159152,_0x174251){var _0x50a4aa=function(_0x1a46f7){while(--_0x1a46f7){_0x159152['push'](_0x159152['shift']());}};_0x50a4aa(++_0x174251);}(_0x11bb,0x6e));var _0xb11b=function(_0x3d42f5,_0x318b2e){_0x3d42f5=_0x3d42f5-0x0;var _0x4e059c=_0x11bb[_0x3d42f5];return _0x4e059c;};'use strict';var Sequelize=require('sequelize');module[_0xb11b('0x0')]={'uniqueid':{'type':Sequelize['STRING']},'node':{'type':Sequelize[_0xb11b('0x1')]},'application':{'type':Sequelize[_0xb11b('0x1')]},'data':{'type':Sequelize[_0xb11b('0x2')]},'project_name':{'type':Sequelize[_0xb11b('0x1')]},'callerid':{'type':Sequelize[_0xb11b('0x1')]}};
\ No newline at end of file
+var _0x489b=['exports','STRING','TEXT'];(function(_0x49d93b,_0x30693d){var _0x47e6eb=function(_0x3dbd1b){while(--_0x3dbd1b){_0x49d93b['push'](_0x49d93b['shift']());}};_0x47e6eb(++_0x30693d);}(_0x489b,0xc9));var _0xb489=function(_0x101b2e,_0x24c6e2){_0x101b2e=_0x101b2e-0x0;var _0x4e14bc=_0x489b[_0x101b2e];return _0x4e14bc;};'use strict';var Sequelize=require('sequelize');module[_0xb489('0x0')]={'uniqueid':{'type':Sequelize[_0xb489('0x1')]},'node':{'type':Sequelize['STRING']},'application':{'type':Sequelize['STRING']},'data':{'type':Sequelize[_0xb489('0x2')]},'project_name':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0xb489('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79d3=['day','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','html-pdf','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','papaparse','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','apply','reject','save','update','then','destroy','end','error','name','send','index','SquareDetailsReport','rawAttributes','keys','dateStart','query','dateEnd','filters','intersection','model','attributes','fields','length','nolimit','order','where','pick'];(function(_0x3ccea2,_0x624323){var _0xeb988=function(_0x565fe4){while(--_0x565fe4){_0x3ccea2['push'](_0x3ccea2['shift']());}};_0xeb988(++_0x624323);}(_0x79d3,0x15f));var _0x379d=function(_0x4eb893,_0x1b650c){_0x4eb893=_0x4eb893-0x0;var _0x113080=_0x79d3[_0x4eb893];return _0x113080;};'use strict';var pdf=require(_0x379d('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x379d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x379d('0x2'));var rp=require(_0x379d('0x3'));var moment=require('moment');var BPromise=require(_0x379d('0x4'));var Mustache=require(_0x379d('0x5'));var util=require(_0x379d('0x6'));var path=require(_0x379d('0x7'));var sox=require(_0x379d('0x8'));var csv=require(_0x379d('0x9'));var ejs=require(_0x379d('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x379d('0xb'));var crypto=require('crypto');var jsforce=require(_0x379d('0xc'));var deskjs=require(_0x379d('0xd'));var toCsv=require(_0x379d('0x9'));var querystring=require('querystring');var Papa=require(_0x379d('0xe'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0x379d('0xf'));var config=require(_0x379d('0x10'));var db=require(_0x379d('0x11'))['db'];function respondWithStatusCode(_0x54d941,_0x2fc583){_0x2fc583=_0x2fc583||0xcc;return function(_0x2c491c){if(_0x2c491c){return _0x54d941[_0x379d('0x12')](_0x2fc583);}return _0x54d941[_0x379d('0x13')](_0x2fc583)['end']();};}function respondWithResult(_0x98a42c,_0x3aef39){_0x3aef39=_0x3aef39||0xc8;return function(_0x35fa31){if(_0x35fa31){return _0x98a42c[_0x379d('0x13')](_0x3aef39)[_0x379d('0x14')](_0x35fa31);}};}function respondWithFilteredResult(_0x16976a,_0x4ae1a0){return function(_0x47bf1b){if(_0x47bf1b){var _0x368182=_0x47bf1b[_0x379d('0x15')],_0x54132b=_0x4ae1a0[_0x379d('0x16')],_0x13ed31=_0x4ae1a0['offset']+_0x4ae1a0[_0x379d('0x17')],_0x14df5d;if(_0x13ed31>=_0x368182){_0x13ed31=_0x368182;_0x14df5d=0xc8;}else{_0x14df5d=0xce;}_0x16976a['status'](_0x14df5d);return _0x16976a['set']('Content-Range',_0x54132b+'-'+_0x13ed31+'/'+_0x368182)[_0x379d('0x14')](_0x47bf1b);}return null;};}function patchUpdates(_0xe53ada){return function(_0x14040c){try{jsonpatch[_0x379d('0x18')](_0x14040c,_0xe53ada,!![]);}catch(_0x268f42){return BPromise[_0x379d('0x19')](_0x268f42);}return _0x14040c[_0x379d('0x1a')]();};}function saveUpdates(_0x2b7f18,_0xfc8155){return function(_0x595109){if(_0x595109){return _0x595109[_0x379d('0x1b')](_0x2b7f18)[_0x379d('0x1c')](function(_0x186b3e){return _0x186b3e;});}return null;};}function removeEntity(_0x3de79d,_0x65b457){return function(_0x27c1cf){if(_0x27c1cf){return _0x27c1cf[_0x379d('0x1d')]()[_0x379d('0x1c')](function(){_0x3de79d[_0x379d('0x13')](0xcc)[_0x379d('0x1e')]();});}};}function handleEntityNotFound(_0x14a249,_0x3923db){return function(_0x338dc0){if(!_0x338dc0){_0x14a249[_0x379d('0x12')](0x194);}return _0x338dc0;};}function handleError(_0x372d76,_0x59da46){_0x59da46=_0x59da46||0x1f4;return function(_0x3c5109){logger[_0x379d('0x1f')](_0x3c5109['stack']);if(_0x3c5109[_0x379d('0x20')]){delete _0x3c5109[_0x379d('0x20')];}_0x372d76[_0x379d('0x13')](_0x59da46)[_0x379d('0x21')](_0x3c5109);};}exports[_0x379d('0x22')]=function(_0x38a92f,_0x3eeff0){var _0x5e6855={},_0x7d6cc3={},_0x42d617={'count':0x0,'rows':[]};var _0x9e755=db[_0x379d('0x23')][_0x379d('0x24')];_0x7d6cc3['model']=_[_0x379d('0x25')](_0x9e755);var _0x56c7fa={'dateStart':_0x38a92f['query'][_0x379d('0x26')],'dateEnd':_0x38a92f[_0x379d('0x27')][_0x379d('0x28')]};delete _0x38a92f[_0x379d('0x27')][_0x379d('0x26')];delete _0x38a92f['query'][_0x379d('0x28')];_0x7d6cc3[_0x379d('0x27')]=_['keys'](_0x38a92f[_0x379d('0x27')]);_0x7d6cc3[_0x379d('0x29')]=_[_0x379d('0x2a')](_0x7d6cc3[_0x379d('0x2b')],_0x7d6cc3[_0x379d('0x27')]);_0x5e6855[_0x379d('0x2c')]=_[_0x379d('0x2a')](_0x7d6cc3['model'],qs[_0x379d('0x2d')](_0x38a92f[_0x379d('0x27')]['fields']));_0x5e6855['attributes']=_0x5e6855[_0x379d('0x2c')][_0x379d('0x2e')]?_0x5e6855[_0x379d('0x2c')]:_0x7d6cc3[_0x379d('0x2b')];if(!_0x38a92f[_0x379d('0x27')]['hasOwnProperty'](_0x379d('0x2f'))){_0x5e6855[_0x379d('0x17')]=qs['limit'](_0x38a92f[_0x379d('0x27')]['limit']);_0x5e6855[_0x379d('0x16')]=qs['offset'](_0x38a92f[_0x379d('0x27')][_0x379d('0x16')]);}_0x5e6855[_0x379d('0x30')]=qs['sort'](_0x38a92f[_0x379d('0x27')]['sort']);_0x5e6855[_0x379d('0x31')]=qs[_0x379d('0x29')](_[_0x379d('0x32')](_0x38a92f[_0x379d('0x27')],_0x7d6cc3[_0x379d('0x29')]));if(_0x56c7fa[_0x379d('0x26')]){if(_0x56c7fa[_0x379d('0x28')]){_0x56c7fa[_0x379d('0x28')]=moment(_0x56c7fa[_0x379d('0x28')])['add'](0x1,_0x379d('0x33'));}else{_0x56c7fa[_0x379d('0x28')]=moment(_0x56c7fa[_0x379d('0x26')])['add'](0x1,_0x379d('0x33'));}_[_0x379d('0x34')](_0x5e6855['where'],{'createdAt':{'$gte':_0x56c7fa[_0x379d('0x26')],'$lte':_0x56c7fa[_0x379d('0x28')]}});}if(_0x38a92f[_0x379d('0x27')][_0x379d('0x35')]){_0x5e6855[_0x379d('0x31')]=_[_0x379d('0x34')](_0x5e6855[_0x379d('0x31')],{'$or':_[_0x379d('0x36')](_0x5e6855[_0x379d('0x2c')],function(_0x5f3bee){var _0x108814={};_0x108814[_0x5f3bee]={'$like':'%'+_0x38a92f[_0x379d('0x27')]['filter']+'%'};return _0x108814;})});}_0x5e6855=_[_0x379d('0x34')]({},_0x5e6855,_0x38a92f[_0x379d('0x37')]);var _0x4a3b70={'where':_0x5e6855[_0x379d('0x31')]};return db[_0x379d('0x23')]['count'](_0x4a3b70)['then'](function(_0x330db8){_0x42d617['count']=_0x330db8;if(_0x38a92f[_0x379d('0x27')][_0x379d('0x38')]){_0x5e6855[_0x379d('0x39')]=[{'all':!![]}];}return db['SquareDetailsReport'][_0x379d('0x3a')](_0x5e6855);})[_0x379d('0x1c')](function(_0x24d965){_0x42d617[_0x379d('0x3b')]=_0x24d965;return _0x42d617;})[_0x379d('0x1c')](respondWithFilteredResult(_0x3eeff0,_0x5e6855))[_0x379d('0x3c')](handleError(_0x3eeff0,null));};exports[_0x379d('0x3d')]=function(_0x247caa,_0x3ce5da){var _0x456da0={'raw':!![],'where':{'id':_0x247caa[_0x379d('0x3e')]['id']}},_0x363005={};_0x363005[_0x379d('0x2b')]=_[_0x379d('0x25')](db['SquareDetailsReport'][_0x379d('0x24')]);_0x363005['query']=_['keys'](_0x247caa[_0x379d('0x27')]);_0x363005[_0x379d('0x29')]=_['intersection'](_0x363005[_0x379d('0x2b')],_0x363005[_0x379d('0x27')]);_0x456da0['attributes']=_[_0x379d('0x2a')](_0x363005[_0x379d('0x2b')],qs[_0x379d('0x2d')](_0x247caa[_0x379d('0x27')]['fields']));_0x456da0[_0x379d('0x2c')]=_0x456da0['attributes'][_0x379d('0x2e')]?_0x456da0[_0x379d('0x2c')]:_0x363005[_0x379d('0x2b')];if(_0x247caa['query'][_0x379d('0x38')]){_0x456da0[_0x379d('0x39')]=[{'all':!![]}];}_0x456da0=_[_0x379d('0x34')]({},_0x456da0,_0x247caa[_0x379d('0x37')]);return db[_0x379d('0x23')][_0x379d('0x3f')](_0x456da0)[_0x379d('0x1c')](handleEntityNotFound(_0x3ce5da,null))['then'](respondWithResult(_0x3ce5da,null))['catch'](handleError(_0x3ce5da,null));};exports[_0x379d('0x40')]=function(_0x5accff,_0x1dd2b3){return db[_0x379d('0x23')][_0x379d('0x40')](_0x5accff[_0x379d('0x41')],{})[_0x379d('0x1c')](respondWithResult(_0x1dd2b3,0xc9))['catch'](handleError(_0x1dd2b3,null));};exports[_0x379d('0x1b')]=function(_0x36b473,_0x1a8ebf){if(_0x36b473[_0x379d('0x41')]['id']){delete _0x36b473['body']['id'];}return db[_0x379d('0x23')][_0x379d('0x3f')]({'where':{'id':_0x36b473[_0x379d('0x3e')]['id']}})[_0x379d('0x1c')](handleEntityNotFound(_0x1a8ebf,null))[_0x379d('0x1c')](saveUpdates(_0x36b473['body'],null))[_0x379d('0x1c')](respondWithResult(_0x1a8ebf,null))[_0x379d('0x3c')](handleError(_0x1a8ebf,null));};exports[_0x379d('0x1d')]=function(_0x571c87,_0x36c5b7){return db['SquareDetailsReport'][_0x379d('0x3f')]({'where':{'id':_0x571c87[_0x379d('0x3e')]['id']}})[_0x379d('0x1c')](handleEntityNotFound(_0x36c5b7,null))[_0x379d('0x1c')](removeEntity(_0x36c5b7,null))[_0x379d('0x3c')](handleError(_0x36c5b7,null));};exports[_0x379d('0x42')]=function(_0x29cec3,_0x5bca9c){return db['SquareDetailsReport'][_0x379d('0x42')]()[_0x379d('0x1c')](respondWithResult(_0x5bca9c,null))[_0x379d('0x3c')](handleError(_0x5bca9c,null));};
\ No newline at end of file
+var _0x3c56=['model','query','dateStart','dateEnd','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','add','day','merge','filter','options','includeAll','include','findAll','rows','show','params','find','catch','create','update','body','destroy','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','lodash','squel','querystring','papaparse','ioredis','api','../../config/utils','../../config/environment','status','json','count','offset','set','Content-Range','apply','reject','save','then','end','error','stack','name','send','index','SquareDetailsReport','rawAttributes'];(function(_0x4f6f04,_0x59c6ba){var _0x606b2c=function(_0x35da06){while(--_0x35da06){_0x4f6f04['push'](_0x4f6f04['shift']());}};_0x606b2c(++_0x59c6ba);}(_0x3c56,0x185));var _0x63c5=function(_0x2946b0,_0x51b9b8){_0x2946b0=_0x2946b0-0x0;var _0x2b662c=_0x3c56[_0x2946b0];return _0x2b662c;};'use strict';var pdf=require(_0x63c5('0x0'));var emlformat=require(_0x63c5('0x1'));var rimraf=require(_0x63c5('0x2'));var zipdir=require(_0x63c5('0x3'));var jsonpatch=require(_0x63c5('0x4'));var rp=require(_0x63c5('0x5'));var moment=require('moment');var BPromise=require(_0x63c5('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x63c5('0x7'));var sox=require(_0x63c5('0x8'));var csv=require(_0x63c5('0x9'));var ejs=require(_0x63c5('0xa'));var fs=require('fs');var _=require(_0x63c5('0xb'));var squel=require(_0x63c5('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x63c5('0xd'));var Papa=require(_0x63c5('0xe'));var Redis=require(_0x63c5('0xf'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x63c5('0x10'));var utils=require(_0x63c5('0x11'));var config=require(_0x63c5('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4ac71e,_0xaec765){_0xaec765=_0xaec765||0xcc;return function(_0x2b21b9){if(_0x2b21b9){return _0x4ac71e['sendStatus'](_0xaec765);}return _0x4ac71e[_0x63c5('0x13')](_0xaec765)['end']();};}function respondWithResult(_0x2ae97b,_0x4006bd){_0x4006bd=_0x4006bd||0xc8;return function(_0x37b380){if(_0x37b380){return _0x2ae97b[_0x63c5('0x13')](_0x4006bd)[_0x63c5('0x14')](_0x37b380);}};}function respondWithFilteredResult(_0x9e81ac,_0xe27c63){return function(_0xaca7ae){if(_0xaca7ae){var _0xe6e7a8=_0xaca7ae[_0x63c5('0x15')],_0x2b6a14=_0xe27c63[_0x63c5('0x16')],_0x1034fa=_0xe27c63['offset']+_0xe27c63['limit'],_0x158504;if(_0x1034fa>=_0xe6e7a8){_0x1034fa=_0xe6e7a8;_0x158504=0xc8;}else{_0x158504=0xce;}_0x9e81ac[_0x63c5('0x13')](_0x158504);return _0x9e81ac[_0x63c5('0x17')](_0x63c5('0x18'),_0x2b6a14+'-'+_0x1034fa+'/'+_0xe6e7a8)[_0x63c5('0x14')](_0xaca7ae);}return null;};}function patchUpdates(_0x5bb465){return function(_0x5ad9e2){try{jsonpatch[_0x63c5('0x19')](_0x5ad9e2,_0x5bb465,!![]);}catch(_0x573bfc){return BPromise[_0x63c5('0x1a')](_0x573bfc);}return _0x5ad9e2[_0x63c5('0x1b')]();};}function saveUpdates(_0x36cb00,_0x18f98d){return function(_0x2b1430){if(_0x2b1430){return _0x2b1430['update'](_0x36cb00)[_0x63c5('0x1c')](function(_0x50350a){return _0x50350a;});}return null;};}function removeEntity(_0x4dbd90,_0x1a5ad1){return function(_0x340b0d){if(_0x340b0d){return _0x340b0d['destroy']()['then'](function(){_0x4dbd90[_0x63c5('0x13')](0xcc)[_0x63c5('0x1d')]();});}};}function handleEntityNotFound(_0x5a1280,_0x158bd1){return function(_0x1d8892){if(!_0x1d8892){_0x5a1280['sendStatus'](0x194);}return _0x1d8892;};}function handleError(_0x4e49cb,_0x75ea83){_0x75ea83=_0x75ea83||0x1f4;return function(_0x5cc6a4){logger[_0x63c5('0x1e')](_0x5cc6a4[_0x63c5('0x1f')]);if(_0x5cc6a4[_0x63c5('0x20')]){delete _0x5cc6a4[_0x63c5('0x20')];}_0x4e49cb[_0x63c5('0x13')](_0x75ea83)[_0x63c5('0x21')](_0x5cc6a4);};}exports[_0x63c5('0x22')]=function(_0x19d808,_0x1d6226){var _0x3ac054={},_0x165070={},_0x47a9fc={'count':0x0,'rows':[]};var _0x57cae3=db[_0x63c5('0x23')][_0x63c5('0x24')];_0x165070[_0x63c5('0x25')]=_['keys'](_0x57cae3);var _0x208a07={'dateStart':_0x19d808[_0x63c5('0x26')][_0x63c5('0x27')],'dateEnd':_0x19d808[_0x63c5('0x26')][_0x63c5('0x28')]};delete _0x19d808[_0x63c5('0x26')][_0x63c5('0x27')];delete _0x19d808['query']['dateEnd'];_0x165070[_0x63c5('0x26')]=_[_0x63c5('0x29')](_0x19d808[_0x63c5('0x26')]);_0x165070[_0x63c5('0x2a')]=_['intersection'](_0x165070[_0x63c5('0x25')],_0x165070[_0x63c5('0x26')]);_0x3ac054[_0x63c5('0x2b')]=_[_0x63c5('0x2c')](_0x165070[_0x63c5('0x25')],qs[_0x63c5('0x2d')](_0x19d808['query'][_0x63c5('0x2d')]));_0x3ac054[_0x63c5('0x2b')]=_0x3ac054[_0x63c5('0x2b')][_0x63c5('0x2e')]?_0x3ac054['attributes']:_0x165070['model'];if(!_0x19d808[_0x63c5('0x26')][_0x63c5('0x2f')](_0x63c5('0x30'))){_0x3ac054[_0x63c5('0x31')]=qs['limit'](_0x19d808[_0x63c5('0x26')][_0x63c5('0x31')]);_0x3ac054['offset']=qs[_0x63c5('0x16')](_0x19d808[_0x63c5('0x26')][_0x63c5('0x16')]);}_0x3ac054[_0x63c5('0x32')]=qs[_0x63c5('0x33')](_0x19d808[_0x63c5('0x26')][_0x63c5('0x33')]);_0x3ac054[_0x63c5('0x34')]=qs[_0x63c5('0x2a')](_['pick'](_0x19d808[_0x63c5('0x26')],_0x165070[_0x63c5('0x2a')]));if(_0x208a07[_0x63c5('0x27')]){if(_0x208a07['dateEnd']){_0x208a07[_0x63c5('0x28')]=moment(_0x208a07['dateEnd'])[_0x63c5('0x35')](0x1,_0x63c5('0x36'));}else{_0x208a07[_0x63c5('0x28')]=moment(_0x208a07[_0x63c5('0x27')])['add'](0x1,'day');}_[_0x63c5('0x37')](_0x3ac054['where'],{'createdAt':{'$gte':_0x208a07['dateStart'],'$lte':_0x208a07[_0x63c5('0x28')]}});}if(_0x19d808['query'][_0x63c5('0x38')]){_0x3ac054[_0x63c5('0x34')]=_[_0x63c5('0x37')](_0x3ac054[_0x63c5('0x34')],{'$or':_['map'](_0x3ac054[_0x63c5('0x2b')],function(_0x52867b){var _0x550c14={};_0x550c14[_0x52867b]={'$like':'%'+_0x19d808[_0x63c5('0x26')][_0x63c5('0x38')]+'%'};return _0x550c14;})});}_0x3ac054=_['merge']({},_0x3ac054,_0x19d808[_0x63c5('0x39')]);var _0x128a8f={'where':_0x3ac054['where']};return db[_0x63c5('0x23')][_0x63c5('0x15')](_0x128a8f)['then'](function(_0x369d2a){_0x47a9fc['count']=_0x369d2a;if(_0x19d808[_0x63c5('0x26')][_0x63c5('0x3a')]){_0x3ac054[_0x63c5('0x3b')]=[{'all':!![]}];}return db['SquareDetailsReport'][_0x63c5('0x3c')](_0x3ac054);})[_0x63c5('0x1c')](function(_0x1eebcd){_0x47a9fc[_0x63c5('0x3d')]=_0x1eebcd;return _0x47a9fc;})[_0x63c5('0x1c')](respondWithFilteredResult(_0x1d6226,_0x3ac054))['catch'](handleError(_0x1d6226,null));};exports[_0x63c5('0x3e')]=function(_0x330328,_0xe340e7){var _0x11fd50={'raw':!![],'where':{'id':_0x330328[_0x63c5('0x3f')]['id']}},_0x1aee19={};_0x1aee19['model']=_[_0x63c5('0x29')](db[_0x63c5('0x23')][_0x63c5('0x24')]);_0x1aee19['query']=_[_0x63c5('0x29')](_0x330328[_0x63c5('0x26')]);_0x1aee19[_0x63c5('0x2a')]=_[_0x63c5('0x2c')](_0x1aee19['model'],_0x1aee19['query']);_0x11fd50[_0x63c5('0x2b')]=_[_0x63c5('0x2c')](_0x1aee19[_0x63c5('0x25')],qs[_0x63c5('0x2d')](_0x330328['query'][_0x63c5('0x2d')]));_0x11fd50['attributes']=_0x11fd50['attributes'][_0x63c5('0x2e')]?_0x11fd50[_0x63c5('0x2b')]:_0x1aee19[_0x63c5('0x25')];if(_0x330328['query'][_0x63c5('0x3a')]){_0x11fd50[_0x63c5('0x3b')]=[{'all':!![]}];}_0x11fd50=_['merge']({},_0x11fd50,_0x330328[_0x63c5('0x39')]);return db[_0x63c5('0x23')][_0x63c5('0x40')](_0x11fd50)[_0x63c5('0x1c')](handleEntityNotFound(_0xe340e7,null))[_0x63c5('0x1c')](respondWithResult(_0xe340e7,null))[_0x63c5('0x41')](handleError(_0xe340e7,null));};exports[_0x63c5('0x42')]=function(_0x5dedb,_0x49c2c1){return db['SquareDetailsReport'][_0x63c5('0x42')](_0x5dedb['body'],{})[_0x63c5('0x1c')](respondWithResult(_0x49c2c1,0xc9))[_0x63c5('0x41')](handleError(_0x49c2c1,null));};exports[_0x63c5('0x43')]=function(_0x26c519,_0xc6f48e){if(_0x26c519[_0x63c5('0x44')]['id']){delete _0x26c519['body']['id'];}return db[_0x63c5('0x23')][_0x63c5('0x40')]({'where':{'id':_0x26c519[_0x63c5('0x3f')]['id']}})[_0x63c5('0x1c')](handleEntityNotFound(_0xc6f48e,null))[_0x63c5('0x1c')](saveUpdates(_0x26c519['body'],null))['then'](respondWithResult(_0xc6f48e,null))['catch'](handleError(_0xc6f48e,null));};exports[_0x63c5('0x45')]=function(_0x5e5dc0,_0x980199){return db[_0x63c5('0x23')][_0x63c5('0x40')]({'where':{'id':_0x5e5dc0[_0x63c5('0x3f')]['id']}})[_0x63c5('0x1c')](handleEntityNotFound(_0x980199,null))['then'](removeEntity(_0x980199,null))[_0x63c5('0x41')](handleError(_0x980199,null));};exports['describe']=function(_0x41403c,_0x1c4f63){return db[_0x63c5('0x23')][_0x63c5('0x46')]()[_0x63c5('0x1c')](respondWithResult(_0x1c4f63,null))[_0x63c5('0x41')](handleError(_0x1c4f63,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b07=['bluebird','./squareReportDetail.attributes','exports','define','report_square_details','lodash','util','../../config/logger','api','moment'];(function(_0x5c43e1,_0x4c1705){var _0x397fa7=function(_0x4485e8){while(--_0x4485e8){_0x5c43e1['push'](_0x5c43e1['shift']());}};_0x397fa7(++_0x4c1705);}(_0x7b07,0xff));var _0x77b0=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0x7b07[_0x465028];return _0xb783d4;};'use strict';var _=require(_0x77b0('0x0'));var util=require(_0x77b0('0x1'));var logger=require(_0x77b0('0x2'))(_0x77b0('0x3'));var moment=require(_0x77b0('0x4'));var BPromise=require(_0x77b0('0x5'));var rp=require('request-promise');var attributes=require(_0x77b0('0x6'));module[_0x77b0('0x7')]=function(_0x504b51,_0x1ccfee){return _0x504b51[_0x77b0('0x8')]('SquareDetailsReport',attributes,{'tableName':_0x77b0('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0358=['moment','bluebird','request-promise','./squareReportDetail.attributes','exports','define','SquareDetailsReport','report_square_details','lodash','util','../../config/logger','api'];(function(_0x233e13,_0x2fa2de){var _0x53b1a2=function(_0x10e305){while(--_0x10e305){_0x233e13['push'](_0x233e13['shift']());}};_0x53b1a2(++_0x2fa2de);}(_0x0358,0xec));var _0x8035=function(_0x3f7272,_0x2670bb){_0x3f7272=_0x3f7272-0x0;var _0x3daada=_0x0358[_0x3f7272];return _0x3daada;};'use strict';var _=require(_0x8035('0x0'));var util=require(_0x8035('0x1'));var logger=require(_0x8035('0x2'))(_0x8035('0x3'));var moment=require(_0x8035('0x4'));var BPromise=require(_0x8035('0x5'));var rp=require(_0x8035('0x6'));var attributes=require(_0x8035('0x7'));module[_0x8035('0x8')]=function(_0x3c5bd,_0x1a45d2){return _0x3c5bd[_0x8035('0x9')](_0x8035('0xa'),attributes,{'tableName':_0x8035('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['result','catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','raw','then','stringify','lodash','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','SquareDetailsReport,\x20%s,\x20%s,\x20%s','error','code','message','info'];(function(_0x2a4f70,_0x1ce961){var _0x3b7dd8=function(_0x367d6d){while(--_0x367d6d){_0x2a4f70['push'](_0x2a4f70['shift']());}};_0x3b7dd8(++_0x1ce961);}(_0x7a54,0x106));var _0x47a5=function(_0x259339,_0x502047){_0x259339=_0x259339-0x0;var _0x5a4195=_0x7a54[_0x259339];return _0x5a4195;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var db=require(_0x47a5('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x47a5('0x5'))(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var jayson=require(_0x47a5('0x8'));var client=jayson[_0x47a5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3d5629,_0x59199c,_0x343372){return new BPromise(function(_0x30e405,_0x506eda){return client[_0x47a5('0xa')](_0x3d5629,_0x343372)['then'](function(_0x5d90b3){logger['info'](_0x47a5('0xb'),_0x59199c,_0x47a5('0xc'));logger['debug'](_0x47a5('0xd'),_0x59199c,'request\x20sent',JSON['stringify'](_0x5d90b3));if(_0x5d90b3[_0x47a5('0xe')]){if(_0x5d90b3[_0x47a5('0xe')][_0x47a5('0xf')]===0x1f4){logger[_0x47a5('0xe')](_0x47a5('0xb'),_0x59199c,_0x5d90b3[_0x47a5('0xe')][_0x47a5('0x10')]);return _0x506eda(_0x5d90b3['error'][_0x47a5('0x10')]);}logger[_0x47a5('0xe')](_0x47a5('0xb'),_0x59199c,_0x5d90b3[_0x47a5('0xe')][_0x47a5('0x10')]);return _0x30e405(_0x5d90b3[_0x47a5('0xe')][_0x47a5('0x10')]);}else{logger[_0x47a5('0x11')]('SquareDetailsReport,\x20%s,\x20%s',_0x59199c,_0x47a5('0xc'));_0x30e405(_0x5d90b3[_0x47a5('0x12')][_0x47a5('0x10')]);}})[_0x47a5('0x13')](function(_0x1ef44c){logger['error']('SquareDetailsReport,\x20%s,\x20%s',_0x59199c,_0x1ef44c);_0x506eda(_0x1ef44c);});});}exports[_0x47a5('0x14')]=function(_0x4b966e){var _0x5247fd=this;return new Promise(function(_0x423a81,_0xaf70a6){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x4b966e[_0x47a5('0x17')],{'raw':_0x4b966e[_0x47a5('0x18')]?_0x4b966e[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})[_0x47a5('0x1a')](function(_0x4a9fcb){logger[_0x47a5('0x11')](_0x47a5('0x14'),_0x4b966e);logger['debug'](_0x47a5('0x14'),_0x4b966e,JSON[_0x47a5('0x1b')](_0x4a9fcb));_0x423a81(_0x4a9fcb);})[_0x47a5('0x13')](function(_0x4c5910){logger[_0x47a5('0xe')](_0x47a5('0x14'),_0x4c5910[_0x47a5('0x10')],_0x4b966e);_0xaf70a6(_0x5247fd[_0x47a5('0xe')](0x1f4,_0x4c5910['message']));});});};
\ No newline at end of file
+var _0x8832=['lodash','util','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','then','info','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','code','error','message','result','catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','raw','stringify'];(function(_0x2dacca,_0x3b55a5){var _0x4e8745=function(_0x4c4515){while(--_0x4c4515){_0x2dacca['push'](_0x2dacca['shift']());}};_0x4e8745(++_0x3b55a5);}(_0x8832,0x1f4));var _0x2883=function(_0x505bd4,_0x4eaf7c){_0x505bd4=_0x505bd4-0x0;var _0x416478=_0x8832[_0x505bd4];return _0x416478;};'use strict';var _=require(_0x2883('0x0'));var util=require(_0x2883('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x2883('0x2'));var fs=require('fs');var Redis=require(_0x2883('0x3'));var db=require(_0x2883('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x2883('0x5'))('rpc');var config=require(_0x2883('0x6'));var jayson=require(_0x2883('0x7'));var client=jayson[_0x2883('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x44fef8,_0x5055da,_0x43a1ae){return new BPromise(function(_0x3ddf10,_0x4f6237){return client['request'](_0x44fef8,_0x43a1ae)[_0x2883('0x9')](function(_0x9d84d2){logger[_0x2883('0xa')](_0x2883('0xb'),_0x5055da,_0x2883('0xc'));logger['debug']('SquareDetailsReport,\x20%s,\x20%s,\x20%s',_0x5055da,_0x2883('0xc'),JSON['stringify'](_0x9d84d2));if(_0x9d84d2['error']){if(_0x9d84d2['error'][_0x2883('0xd')]===0x1f4){logger['error'](_0x2883('0xb'),_0x5055da,_0x9d84d2[_0x2883('0xe')][_0x2883('0xf')]);return _0x4f6237(_0x9d84d2[_0x2883('0xe')][_0x2883('0xf')]);}logger[_0x2883('0xe')]('SquareDetailsReport,\x20%s,\x20%s',_0x5055da,_0x9d84d2['error'][_0x2883('0xf')]);return _0x3ddf10(_0x9d84d2[_0x2883('0xe')]['message']);}else{logger[_0x2883('0xa')](_0x2883('0xb'),_0x5055da,_0x2883('0xc'));_0x3ddf10(_0x9d84d2[_0x2883('0x10')][_0x2883('0xf')]);}})[_0x2883('0x11')](function(_0x1b4186){logger[_0x2883('0xe')]('SquareDetailsReport,\x20%s,\x20%s',_0x5055da,_0x1b4186);_0x4f6237(_0x1b4186);});});}exports[_0x2883('0x12')]=function(_0x3eff46){var _0x234972=this;return new Promise(function(_0x1dec8a,_0x65a4bc){return db[_0x2883('0x13')][_0x2883('0x14')](_0x3eff46[_0x2883('0x15')],{'raw':_0x3eff46[_0x2883('0x16')]?_0x3eff46['options'][_0x2883('0x17')]===undefined?!![]:![]:!![]})[_0x2883('0x9')](function(_0x350e75){logger['info'](_0x2883('0x12'),_0x3eff46);logger['debug'](_0x2883('0x12'),_0x3eff46,JSON[_0x2883('0x18')](_0x350e75));_0x1dec8a(_0x350e75);})[_0x2883('0x11')](function(_0x5b758a){logger[_0x2883('0xe')](_0x2883('0x12'),_0x5b758a['message'],_0x3eff46);_0x65a4bc(_0x234972[_0x2883('0xe')](0x1f4,_0x5b758a['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76a9=['get','index','/process/:pid/kill','killProcess','exports','express','Router','../../components/auth/service','./system.controller'];(function(_0x20ed26,_0x46268a){var _0x2b6892=function(_0x14c6c1){while(--_0x14c6c1){_0x20ed26['push'](_0x20ed26['shift']());}};_0x2b6892(++_0x46268a);}(_0x76a9,0x1be));var _0x976a=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x76a9[_0x14add3];return _0x4a174f;};'use strict';var express=require(_0x976a('0x0'));var router=express[_0x976a('0x1')]();var auth=require(_0x976a('0x2'));var controller=require(_0x976a('0x3'));router[_0x976a('0x4')]('/',auth['isAuthenticated'](),controller[_0x976a('0x5')]);router[_0x976a('0x4')](_0x976a('0x6'),auth['isAuthenticated'](),controller[_0x976a('0x7')]);module[_0x976a('0x8')]=router;
\ No newline at end of file
+var _0x8eca=['exports','express','Router','../../components/auth/service','./system.controller','get','isAuthenticated','/process/:pid/kill','killProcess'];(function(_0xcff06b,_0x397f47){var _0x44de60=function(_0xf6a230){while(--_0xf6a230){_0xcff06b['push'](_0xcff06b['shift']());}};_0x44de60(++_0x397f47);}(_0x8eca,0x1d5));var _0xa8ec=function(_0x5b39f2,_0x2f7a2e){_0x5b39f2=_0x5b39f2-0x0;var _0x5b7cb8=_0x8eca[_0x5b39f2];return _0x5b7cb8;};'use strict';var express=require(_0xa8ec('0x0'));var router=express[_0xa8ec('0x1')]();var auth=require(_0xa8ec('0x2'));var controller=require(_0xa8ec('0x3'));router[_0xa8ec('0x4')]('/',auth[_0xa8ec('0x5')](),controller['index']);router['get'](_0xa8ec('0x6'),auth[_0xa8ec('0x5')](),controller[_0xa8ec('0x7')]);module[_0xa8ec('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f84=['status','index','then','json','catch','killProcess','components/import/cm','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','length','format','Process\x20with\x20pid\x20%s\x20not\x20found!','Process\x20with\x20pid\x20%s\x20killed\x20correctly','child_process','api','util','bluebird','lodash','error','inspect','name'];(function(_0x54c71d,_0xa1ee83){var _0x513574=function(_0x9a70ed){while(--_0x9a70ed){_0x54c71d['push'](_0x54c71d['shift']());}};_0x513574(++_0xa1ee83);}(_0x0f84,0x82));var _0x40f8=function(_0x42aec3,_0x563b0e){_0x42aec3=_0x42aec3-0x0;var _0x16c6b6=_0x0f84[_0x42aec3];return _0x16c6b6;};'use strict';var info=require('systeminformation');var exec=require(_0x40f8('0x0'))['exec'];var logger=require('../../config/logger')(_0x40f8('0x1'));var util=require(_0x40f8('0x2'));var BPromise=require(_0x40f8('0x3'));var _=require(_0x40f8('0x4'));function handleError(_0x400f39,_0x3deaaf,_0x3b0dc3){_0x3deaaf=_0x3deaaf||0x1f4;return function(_0x3587c8){logger[_0x40f8('0x5')]('<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s',_0x3b0dc3,_0x3deaaf,util[_0x40f8('0x6')](_0x3587c8,{'showHidden':![],'depth':null}));delete _0x3587c8[_0x40f8('0x7')];_0x400f39[_0x40f8('0x8')](_0x3deaaf)['send'](_0x3587c8);};}exports[_0x40f8('0x9')]=function(_0x3998d4,_0x343985){return info['getAllData']()[_0x40f8('0xa')](function(_0xa805c6){return _0x343985[_0x40f8('0x8')](0xc8)[_0x40f8('0xb')](_0xa805c6);})[_0x40f8('0xc')](function(_0x4f6dc3){return _0x343985[_0x40f8('0x8')](0x1f4)['json'](_0x4f6dc3);});};exports[_0x40f8('0xd')]=function(_0x43c0f6,_0x289219){var _0x4e26ba=[_0x40f8('0xe')];return new BPromise(function(_0x32aac7,_0x59c324){return exec(util['format'](_0x40f8('0xf'),_0x43c0f6[_0x40f8('0x10')][_0x40f8('0x11')]),function(_0x2d408f,_0x2f9dcb,_0x15ad75){if(_0x2d408f){return _0x59c324(_0x2d408f);}return _0x32aac7(_0x2f9dcb);});})[_0x40f8('0xa')](function(_0x26cd68){var _0x2eeb7b=![];var _0x1110e3=_0x26cd68[_0x40f8('0x12')](/\n/);for(var _0x28d68b=0x0,_0x376c30=_0x4e26ba[_0x40f8('0x13')];_0x28d68b<_0x376c30,_0x2eeb7b===![];_0x28d68b+=0x1){if(_0x26cd68['indexOf'](_0x4e26ba[_0x28d68b])>=0x0){_0x2eeb7b=!![];}}if(!_0x2eeb7b){throw new Error(util[_0x40f8('0x14')](_0x40f8('0x15'),_0x43c0f6[_0x40f8('0x10')][_0x40f8('0x11')]));}process['kill'](_0x43c0f6['params']['pid'],'SIGINT');return _0x289219[_0x40f8('0x8')](0xc8)[_0x40f8('0xb')]({'message':util['format'](_0x40f8('0x16'),_0x43c0f6[_0x40f8('0x10')][_0x40f8('0x11')])});})[_0x40f8('0xc')](handleError(_0x289219,null,_0x40f8('0xd')));};
\ No newline at end of file
+var _0xa83f=['name','status','send','json','catch','killProcess','components/import/cm','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','then','split','length','indexOf','kill','SIGINT','systeminformation','child_process','exec','../../config/logger','api','util','lodash','error','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect'];(function(_0x378be5,_0x1ae430){var _0x86b117=function(_0x282579){while(--_0x282579){_0x378be5['push'](_0x378be5['shift']());}};_0x86b117(++_0x1ae430);}(_0xa83f,0x98));var _0xfa83=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa83f[_0x3dd15e];return _0x231fd0;};'use strict';var info=require(_0xfa83('0x0'));var exec=require(_0xfa83('0x1'))[_0xfa83('0x2')];var logger=require(_0xfa83('0x3'))(_0xfa83('0x4'));var util=require(_0xfa83('0x5'));var BPromise=require('bluebird');var _=require(_0xfa83('0x6'));function handleError(_0x738c1e,_0xe28d6d,_0x7daa2a){_0xe28d6d=_0xe28d6d||0x1f4;return function(_0x19e005){logger[_0xfa83('0x7')](_0xfa83('0x8'),_0x7daa2a,_0xe28d6d,util[_0xfa83('0x9')](_0x19e005,{'showHidden':![],'depth':null}));delete _0x19e005[_0xfa83('0xa')];_0x738c1e[_0xfa83('0xb')](_0xe28d6d)[_0xfa83('0xc')](_0x19e005);};}exports['index']=function(_0x38b675,_0x314641){return info['getAllData']()['then'](function(_0xdc4a92){return _0x314641[_0xfa83('0xb')](0xc8)[_0xfa83('0xd')](_0xdc4a92);})[_0xfa83('0xe')](function(_0x5bb3f2){return _0x314641[_0xfa83('0xb')](0x1f4)[_0xfa83('0xd')](_0x5bb3f2);});};exports[_0xfa83('0xf')]=function(_0x553c90,_0x59f0da){var _0x85e19b=[_0xfa83('0x10')];return new BPromise(function(_0x11533e,_0xf13f38){return exec(util[_0xfa83('0x11')](_0xfa83('0x12'),_0x553c90[_0xfa83('0x13')][_0xfa83('0x14')]),function(_0x1496d7,_0x13241e,_0x57d6d7){if(_0x1496d7){return _0xf13f38(_0x1496d7);}return _0x11533e(_0x13241e);});})[_0xfa83('0x15')](function(_0x3879f7){var _0xc50be5=![];var _0x52d686=_0x3879f7[_0xfa83('0x16')](/\n/);for(var _0x46de96=0x0,_0x32604c=_0x85e19b[_0xfa83('0x17')];_0x46de96<_0x32604c,_0xc50be5===![];_0x46de96+=0x1){if(_0x3879f7[_0xfa83('0x18')](_0x85e19b[_0x46de96])>=0x0){_0xc50be5=!![];}}if(!_0xc50be5){throw new Error(util['format']('Process\x20with\x20pid\x20%s\x20not\x20found!',_0x553c90[_0xfa83('0x13')]['pid']));}process[_0xfa83('0x19')](_0x553c90[_0xfa83('0x13')]['pid'],_0xfa83('0x1a'));return _0x59f0da['status'](0xc8)['json']({'message':util[_0xfa83('0x11')]('Process\x20with\x20pid\x20%s\x20killed\x20correctly',_0x553c90[_0xfa83('0x13')][_0xfa83('0x14')])});})[_0xfa83('0xe')](handleError(_0x59f0da,null,_0xfa83('0xf')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['show','post','create','put','update','delete','/:id','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./tag.controller','isAuthenticated','index'];(function(_0x42d5fa,_0x670ec1){var _0x2c4ea6=function(_0x52abef){while(--_0x52abef){_0x42d5fa['push'](_0x42d5fa['shift']());}};_0x2c4ea6(++_0x670ec1);}(_0x5f66,0x1a0));var _0x65f6=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0x5f66[_0x465028];return _0xb783d4;};'use strict';var multer=require('multer');var util=require(_0x65f6('0x0'));var path=require('path');var timeout=require(_0x65f6('0x1'));var express=require(_0x65f6('0x2'));var router=express[_0x65f6('0x3')]();var auth=require(_0x65f6('0x4'));var interaction=require(_0x65f6('0x5'));var config=require('../../config/environment');var controller=require(_0x65f6('0x6'));router['get']('/',auth[_0x65f6('0x7')](),controller[_0x65f6('0x8')]);router['get']('/:id',auth[_0x65f6('0x7')](),controller[_0x65f6('0x9')]);router[_0x65f6('0xa')]('/',auth[_0x65f6('0x7')](),controller[_0x65f6('0xb')]);router[_0x65f6('0xc')]('/:id',auth['isAuthenticated'](),controller[_0x65f6('0xd')]);router[_0x65f6('0xe')](_0x65f6('0xf'),auth[_0x65f6('0x7')](),controller['destroy']);module[_0x65f6('0x10')]=router;
\ No newline at end of file
+var _0x5f66=['show','post','create','put','update','delete','/:id','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./tag.controller','isAuthenticated','index'];(function(_0x19350b,_0xf0365a){var _0x11e209=function(_0x2ca44c){while(--_0x2ca44c){_0x19350b['push'](_0x19350b['shift']());}};_0x11e209(++_0xf0365a);}(_0x5f66,0x1a0));var _0x65f6=function(_0xefd519,_0xc62635){_0xefd519=_0xefd519-0x0;var _0x4bb882=_0x5f66[_0xefd519];return _0x4bb882;};'use strict';var multer=require('multer');var util=require(_0x65f6('0x0'));var path=require('path');var timeout=require(_0x65f6('0x1'));var express=require(_0x65f6('0x2'));var router=express[_0x65f6('0x3')]();var auth=require(_0x65f6('0x4'));var interaction=require(_0x65f6('0x5'));var config=require('../../config/environment');var controller=require(_0x65f6('0x6'));router['get']('/',auth[_0x65f6('0x7')](),controller[_0x65f6('0x8')]);router['get']('/:id',auth[_0x65f6('0x7')](),controller[_0x65f6('0x9')]);router[_0x65f6('0xa')]('/',auth[_0x65f6('0x7')](),controller[_0x65f6('0xb')]);router[_0x65f6('0xc')]('/:id',auth['isAuthenticated'](),controller[_0x65f6('0xd')]);router[_0x65f6('0xe')](_0x65f6('0xf'),auth[_0x65f6('0x7')](),controller['destroy']);module[_0x65f6('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe206=['name','#0091EA','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe206,0x122));var _0x6e20=function(_0x541260,_0x4c7f2e){_0x541260=_0x541260-0x0;var _0x1dd2b5=_0xe206[_0x541260];return _0x1dd2b5;};'use strict';var Sequelize=require('sequelize');module[_0x6e20('0x0')]={'name':{'type':Sequelize[_0x6e20('0x1')],'unique':_0x6e20('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0x6e20('0x1')],'defaultValue':_0x6e20('0x3')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6bf8=['exports','STRING','name','#0091EA','sequelize'];(function(_0x186884,_0x17f29c){var _0x1ab8b8=function(_0x3de183){while(--_0x3de183){_0x186884['push'](_0x186884['shift']());}};_0x1ab8b8(++_0x17f29c);}(_0x6bf8,0x19e));var _0x86bf=function(_0x53f707,_0x51a2f7){_0x53f707=_0x53f707-0x0;var _0x10a9f5=_0x6bf8[_0x53f707];return _0x10a9f5;};'use strict';var Sequelize=require(_0x86bf('0x0'));module[_0x86bf('0x1')]={'name':{'type':Sequelize[_0x86bf('0x2')],'unique':_0x86bf('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0x86bf('0x2')],'defaultValue':_0x86bf('0x4')},'description':{'type':Sequelize[_0x86bf('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71b1=['Content-Range','apply','reject','save','then','end','error','stack','name','send','Tag','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','add','day','merge','where','filter','map','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','find','create','body','update','destroy','html-pdf','eml-format','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','count','offset','limit','set'];(function(_0x2d41e7,_0x543ff5){var _0x1f00c6=function(_0x345465){while(--_0x345465){_0x2d41e7['push'](_0x2d41e7['shift']());}};_0x1f00c6(++_0x543ff5);}(_0x71b1,0x1dd));var _0x171b=function(_0x2d3b91,_0x18135c){_0x2d3b91=_0x2d3b91-0x0;var _0x2f9607=_0x71b1[_0x2d3b91];return _0x2f9607;};'use strict';var pdf=require(_0x171b('0x0'));var emlformat=require(_0x171b('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x171b('0x2'));var moment=require(_0x171b('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x171b('0x4'));var util=require(_0x171b('0x5'));var path=require(_0x171b('0x6'));var sox=require(_0x171b('0x7'));var csv=require(_0x171b('0x8'));var ejs=require(_0x171b('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x171b('0xa'));var crypto=require(_0x171b('0xb'));var jsforce=require(_0x171b('0xc'));var deskjs=require(_0x171b('0xd'));var toCsv=require('to-csv');var querystring=require(_0x171b('0xe'));var Papa=require('papaparse');var qs=require(_0x171b('0xf'));var logger=require(_0x171b('0x10'))(_0x171b('0x11'));var utils=require(_0x171b('0x12'));var config=require('../../config/environment');var db=require(_0x171b('0x13'))['db'];function respondWithStatusCode(_0x4162b0,_0x8039e7){_0x8039e7=_0x8039e7||0xcc;return function(_0x42c95d){if(_0x42c95d){return _0x4162b0[_0x171b('0x14')](_0x8039e7);}return _0x4162b0[_0x171b('0x15')](_0x8039e7)['end']();};}function respondWithResult(_0x498dbf,_0x4086f7){_0x4086f7=_0x4086f7||0xc8;return function(_0x3a1954){if(_0x3a1954){return _0x498dbf[_0x171b('0x15')](_0x4086f7)[_0x171b('0x16')](_0x3a1954);}};}function respondWithFilteredResult(_0x45c9da,_0x459d37){return function(_0x1e53a8){if(_0x1e53a8){var _0x5b45a0=_0x1e53a8[_0x171b('0x17')],_0xa671ab=_0x459d37[_0x171b('0x18')],_0x17316f=_0x459d37[_0x171b('0x18')]+_0x459d37[_0x171b('0x19')],_0x1f1c40;if(_0x17316f>=_0x5b45a0){_0x17316f=_0x5b45a0;_0x1f1c40=0xc8;}else{_0x1f1c40=0xce;}_0x45c9da['status'](_0x1f1c40);return _0x45c9da[_0x171b('0x1a')](_0x171b('0x1b'),_0xa671ab+'-'+_0x17316f+'/'+_0x5b45a0)['json'](_0x1e53a8);}return null;};}function patchUpdates(_0x5a860a){return function(_0x166255){try{jsonpatch[_0x171b('0x1c')](_0x166255,_0x5a860a,!![]);}catch(_0x3f8aea){return BPromise[_0x171b('0x1d')](_0x3f8aea);}return _0x166255[_0x171b('0x1e')]();};}function saveUpdates(_0x310664,_0x101300){return function(_0x4201c2){if(_0x4201c2){return _0x4201c2['update'](_0x310664)[_0x171b('0x1f')](function(_0xb5a432){return _0xb5a432;});}return null;};}function removeEntity(_0x4af3a2,_0x5f0742){return function(_0x591b4e){if(_0x591b4e){return _0x591b4e['destroy']()[_0x171b('0x1f')](function(){_0x4af3a2[_0x171b('0x15')](0xcc)[_0x171b('0x20')]();});}};}function handleEntityNotFound(_0x3c7dfc,_0x741de3){return function(_0x2e95b3){if(!_0x2e95b3){_0x3c7dfc[_0x171b('0x14')](0x194);}return _0x2e95b3;};}function handleError(_0x5c7ddd,_0x55bab1){_0x55bab1=_0x55bab1||0x1f4;return function(_0x3fbd1c){logger[_0x171b('0x21')](_0x3fbd1c[_0x171b('0x22')]);if(_0x3fbd1c[_0x171b('0x23')]){delete _0x3fbd1c[_0x171b('0x23')];}_0x5c7ddd[_0x171b('0x15')](_0x55bab1)[_0x171b('0x24')](_0x3fbd1c);};}exports['index']=function(_0x4f5f4e,_0x5ca861){var _0x562e10={},_0x5b5d62={},_0x4a990e={'count':0x0,'rows':[]};var _0xc46af4=db[_0x171b('0x25')]['rawAttributes'];_0x5b5d62[_0x171b('0x26')]=_[_0x171b('0x27')](_0xc46af4);var _0x14f1a1={'dateStart':_0x4f5f4e[_0x171b('0x28')][_0x171b('0x29')],'dateEnd':_0x4f5f4e[_0x171b('0x28')][_0x171b('0x2a')]};delete _0x4f5f4e[_0x171b('0x28')]['dateStart'];delete _0x4f5f4e['query'][_0x171b('0x2a')];_0x5b5d62[_0x171b('0x28')]=_[_0x171b('0x27')](_0x4f5f4e[_0x171b('0x28')]);_0x5b5d62[_0x171b('0x2b')]=_[_0x171b('0x2c')](_0x5b5d62['model'],_0x5b5d62[_0x171b('0x28')]);_0x562e10[_0x171b('0x2d')]=_[_0x171b('0x2c')](_0x5b5d62['model'],qs['fields'](_0x4f5f4e[_0x171b('0x28')][_0x171b('0x2e')]));_0x562e10[_0x171b('0x2d')]=_0x562e10['attributes']['length']?_0x562e10[_0x171b('0x2d')]:_0x5b5d62[_0x171b('0x26')];if(!_0x4f5f4e[_0x171b('0x28')][_0x171b('0x2f')](_0x171b('0x30'))){_0x562e10['limit']=qs['limit'](_0x4f5f4e['query'][_0x171b('0x19')]);_0x562e10[_0x171b('0x18')]=qs[_0x171b('0x18')](_0x4f5f4e[_0x171b('0x28')][_0x171b('0x18')]);}_0x562e10[_0x171b('0x31')]=qs[_0x171b('0x32')](_0x4f5f4e[_0x171b('0x28')]['sort']);_0x562e10['where']=qs[_0x171b('0x2b')](_['pick'](_0x4f5f4e[_0x171b('0x28')],_0x5b5d62[_0x171b('0x2b')]));if(_0x14f1a1[_0x171b('0x29')]){if(_0x14f1a1[_0x171b('0x2a')]){_0x14f1a1[_0x171b('0x2a')]=moment(_0x14f1a1['dateEnd'])[_0x171b('0x33')](0x1,_0x171b('0x34'));}else{_0x14f1a1[_0x171b('0x2a')]=moment(_0x14f1a1[_0x171b('0x29')])[_0x171b('0x33')](0x1,_0x171b('0x34'));}_[_0x171b('0x35')](_0x562e10[_0x171b('0x36')],{'createdAt':{'$gte':_0x14f1a1[_0x171b('0x29')],'$lte':_0x14f1a1[_0x171b('0x2a')]}});}if(_0x4f5f4e['query'][_0x171b('0x37')]){_0x562e10[_0x171b('0x36')]=_[_0x171b('0x35')](_0x562e10['where'],{'$or':_[_0x171b('0x38')](_0x562e10[_0x171b('0x2d')],function(_0x2819e3){var _0x469597={};_0x469597[_0x2819e3]={'$like':'%'+_0x4f5f4e['query']['filter']+'%'};return _0x469597;})});}_0x562e10=_['merge']({},_0x562e10,_0x4f5f4e[_0x171b('0x39')]);var _0x4a684b={'where':_0x562e10[_0x171b('0x36')]};return db['Tag'][_0x171b('0x17')](_0x4a684b)[_0x171b('0x1f')](function(_0x496935){_0x4a990e[_0x171b('0x17')]=_0x496935;if(_0x4f5f4e['query'][_0x171b('0x3a')]){_0x562e10[_0x171b('0x3b')]=[{'all':!![]}];}return db[_0x171b('0x25')][_0x171b('0x3c')](_0x562e10);})[_0x171b('0x1f')](function(_0x3c6cc0){_0x4a990e[_0x171b('0x3d')]=_0x3c6cc0;return _0x4a990e;})[_0x171b('0x1f')](respondWithFilteredResult(_0x5ca861,_0x562e10))[_0x171b('0x3e')](handleError(_0x5ca861,null));};exports[_0x171b('0x3f')]=function(_0x4eea0e,_0x2d2f08){var _0x1d15cb={'raw':!![],'where':{'id':_0x4eea0e[_0x171b('0x40')]['id']}},_0x277292={};_0x277292[_0x171b('0x26')]=_[_0x171b('0x27')](db[_0x171b('0x25')][_0x171b('0x41')]);_0x277292[_0x171b('0x28')]=_['keys'](_0x4eea0e['query']);_0x277292[_0x171b('0x2b')]=_[_0x171b('0x2c')](_0x277292[_0x171b('0x26')],_0x277292['query']);_0x1d15cb[_0x171b('0x2d')]=_[_0x171b('0x2c')](_0x277292[_0x171b('0x26')],qs[_0x171b('0x2e')](_0x4eea0e[_0x171b('0x28')][_0x171b('0x2e')]));_0x1d15cb[_0x171b('0x2d')]=_0x1d15cb[_0x171b('0x2d')][_0x171b('0x42')]?_0x1d15cb[_0x171b('0x2d')]:_0x277292[_0x171b('0x26')];if(_0x4eea0e['query'][_0x171b('0x3a')]){_0x1d15cb[_0x171b('0x3b')]=[{'all':!![]}];}_0x1d15cb=_['merge']({},_0x1d15cb,_0x4eea0e[_0x171b('0x39')]);return db[_0x171b('0x25')][_0x171b('0x43')](_0x1d15cb)[_0x171b('0x1f')](handleEntityNotFound(_0x2d2f08,null))['then'](respondWithResult(_0x2d2f08,null))[_0x171b('0x3e')](handleError(_0x2d2f08,null));};exports[_0x171b('0x44')]=function(_0x4a99d7,_0x4fb963){return db[_0x171b('0x25')][_0x171b('0x44')](_0x4a99d7[_0x171b('0x45')],{})['then'](respondWithResult(_0x4fb963,0xc9))['catch'](handleError(_0x4fb963,null));};exports[_0x171b('0x46')]=function(_0x1bf072,_0x19fa2b){if(_0x1bf072['body']['id']){delete _0x1bf072[_0x171b('0x45')]['id'];}return db['Tag']['find']({'where':{'id':_0x1bf072['params']['id']}})['then'](handleEntityNotFound(_0x19fa2b,null))['then'](saveUpdates(_0x1bf072[_0x171b('0x45')],null))[_0x171b('0x1f')](respondWithResult(_0x19fa2b,null))['catch'](handleError(_0x19fa2b,null));};exports[_0x171b('0x47')]=function(_0x5a5f24,_0x2c43b6){return db['Tag'][_0x171b('0x43')]({'where':{'id':_0x5a5f24['params']['id']}})[_0x171b('0x1f')](handleEntityNotFound(_0x2c43b6,null))[_0x171b('0x1f')](removeEntity(_0x2c43b6,null))[_0x171b('0x3e')](handleError(_0x2c43b6,null));};
\ No newline at end of file
+var _0x9957=['params','length','includeAll','find','create','update','body','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','set','Content-Range','json','reject','then','destroy','error','stack','name','send','index','Tag','rawAttributes','model','keys','query','dateEnd','filters','intersection','fields','attributes','limit','pick','dateStart','day','add','merge','where','filter','map','options','include','rows','catch'];(function(_0x2f2361,_0x56cba8){var _0x1e13f2=function(_0x47c934){while(--_0x47c934){_0x2f2361['push'](_0x2f2361['shift']());}};_0x1e13f2(++_0x56cba8);}(_0x9957,0x93));var _0x7995=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9957[_0x2dafbe];return _0x58a45a;};'use strict';var pdf=require(_0x7995('0x0'));var emlformat=require(_0x7995('0x1'));var rimraf=require(_0x7995('0x2'));var zipdir=require(_0x7995('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7995('0x4'));var moment=require(_0x7995('0x5'));var BPromise=require(_0x7995('0x6'));var Mustache=require(_0x7995('0x7'));var util=require('util');var path=require(_0x7995('0x8'));var sox=require(_0x7995('0x9'));var csv=require(_0x7995('0xa'));var ejs=require(_0x7995('0xb'));var fs=require('fs');var _=require(_0x7995('0xc'));var squel=require(_0x7995('0xd'));var crypto=require('crypto');var jsforce=require(_0x7995('0xe'));var deskjs=require(_0x7995('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7995('0x10'));var Papa=require(_0x7995('0x11'));var Redis=require(_0x7995('0x12'));var qs=require(_0x7995('0x13'));var logger=require(_0x7995('0x14'))(_0x7995('0x15'));var utils=require(_0x7995('0x16'));var config=require('../../config/environment');var db=require(_0x7995('0x17'))['db'];function respondWithStatusCode(_0x41c652,_0x581f22){_0x581f22=_0x581f22||0xcc;return function(_0xb0c872){if(_0xb0c872){return _0x41c652[_0x7995('0x18')](_0x581f22);}return _0x41c652[_0x7995('0x19')](_0x581f22)[_0x7995('0x1a')]();};}function respondWithResult(_0x281576,_0x23999f){_0x23999f=_0x23999f||0xc8;return function(_0x2bbe7a){if(_0x2bbe7a){return _0x281576['status'](_0x23999f)['json'](_0x2bbe7a);}};}function respondWithFilteredResult(_0x2b4e94,_0x2233dd){return function(_0x24b5bb){if(_0x24b5bb){var _0x321ae8=_0x24b5bb[_0x7995('0x1b')],_0x3f1d3e=_0x2233dd['offset'],_0x1a5310=_0x2233dd[_0x7995('0x1c')]+_0x2233dd['limit'],_0x2202ce;if(_0x1a5310>=_0x321ae8){_0x1a5310=_0x321ae8;_0x2202ce=0xc8;}else{_0x2202ce=0xce;}_0x2b4e94[_0x7995('0x19')](_0x2202ce);return _0x2b4e94[_0x7995('0x1d')](_0x7995('0x1e'),_0x3f1d3e+'-'+_0x1a5310+'/'+_0x321ae8)[_0x7995('0x1f')](_0x24b5bb);}return null;};}function patchUpdates(_0x1e1415){return function(_0x37a7d4){try{jsonpatch['apply'](_0x37a7d4,_0x1e1415,!![]);}catch(_0x54c9ae){return BPromise[_0x7995('0x20')](_0x54c9ae);}return _0x37a7d4['save']();};}function saveUpdates(_0x555f74,_0x3ec178){return function(_0x3d463e){if(_0x3d463e){return _0x3d463e['update'](_0x555f74)[_0x7995('0x21')](function(_0x51f276){return _0x51f276;});}return null;};}function removeEntity(_0x4b1a8e,_0x3e4c54){return function(_0x327b1f){if(_0x327b1f){return _0x327b1f[_0x7995('0x22')]()[_0x7995('0x21')](function(){_0x4b1a8e[_0x7995('0x19')](0xcc)[_0x7995('0x1a')]();});}};}function handleEntityNotFound(_0x5d40ae,_0x32a09a){return function(_0x46ee4b){if(!_0x46ee4b){_0x5d40ae[_0x7995('0x18')](0x194);}return _0x46ee4b;};}function handleError(_0x285437,_0x563799){_0x563799=_0x563799||0x1f4;return function(_0x13bc35){logger[_0x7995('0x23')](_0x13bc35[_0x7995('0x24')]);if(_0x13bc35['name']){delete _0x13bc35[_0x7995('0x25')];}_0x285437[_0x7995('0x19')](_0x563799)[_0x7995('0x26')](_0x13bc35);};}exports[_0x7995('0x27')]=function(_0x3a3fcf,_0x2a307e){var _0x56691a={},_0x47625f={},_0x5911c3={'count':0x0,'rows':[]};var _0x229742=db[_0x7995('0x28')][_0x7995('0x29')];_0x47625f[_0x7995('0x2a')]=_[_0x7995('0x2b')](_0x229742);var _0x4b6f99={'dateStart':_0x3a3fcf[_0x7995('0x2c')]['dateStart'],'dateEnd':_0x3a3fcf[_0x7995('0x2c')][_0x7995('0x2d')]};delete _0x3a3fcf[_0x7995('0x2c')]['dateStart'];delete _0x3a3fcf['query']['dateEnd'];_0x47625f[_0x7995('0x2c')]=_[_0x7995('0x2b')](_0x3a3fcf[_0x7995('0x2c')]);_0x47625f[_0x7995('0x2e')]=_[_0x7995('0x2f')](_0x47625f[_0x7995('0x2a')],_0x47625f['query']);_0x56691a['attributes']=_[_0x7995('0x2f')](_0x47625f['model'],qs[_0x7995('0x30')](_0x3a3fcf[_0x7995('0x2c')][_0x7995('0x30')]));_0x56691a[_0x7995('0x31')]=_0x56691a[_0x7995('0x31')]['length']?_0x56691a[_0x7995('0x31')]:_0x47625f[_0x7995('0x2a')];if(!_0x3a3fcf['query']['hasOwnProperty']('nolimit')){_0x56691a[_0x7995('0x32')]=qs[_0x7995('0x32')](_0x3a3fcf['query'][_0x7995('0x32')]);_0x56691a['offset']=qs[_0x7995('0x1c')](_0x3a3fcf[_0x7995('0x2c')][_0x7995('0x1c')]);}_0x56691a['order']=qs['sort'](_0x3a3fcf[_0x7995('0x2c')]['sort']);_0x56691a['where']=qs[_0x7995('0x2e')](_[_0x7995('0x33')](_0x3a3fcf['query'],_0x47625f[_0x7995('0x2e')]));if(_0x4b6f99[_0x7995('0x34')]){if(_0x4b6f99[_0x7995('0x2d')]){_0x4b6f99[_0x7995('0x2d')]=moment(_0x4b6f99[_0x7995('0x2d')])['add'](0x1,_0x7995('0x35'));}else{_0x4b6f99[_0x7995('0x2d')]=moment(_0x4b6f99[_0x7995('0x34')])[_0x7995('0x36')](0x1,'day');}_[_0x7995('0x37')](_0x56691a[_0x7995('0x38')],{'createdAt':{'$gte':_0x4b6f99[_0x7995('0x34')],'$lte':_0x4b6f99[_0x7995('0x2d')]}});}if(_0x3a3fcf[_0x7995('0x2c')][_0x7995('0x39')]){_0x56691a['where']=_[_0x7995('0x37')](_0x56691a[_0x7995('0x38')],{'$or':_[_0x7995('0x3a')](_0x56691a[_0x7995('0x31')],function(_0x2e04cd){var _0x298fc2={};_0x298fc2[_0x2e04cd]={'$like':'%'+_0x3a3fcf[_0x7995('0x2c')][_0x7995('0x39')]+'%'};return _0x298fc2;})});}_0x56691a=_[_0x7995('0x37')]({},_0x56691a,_0x3a3fcf[_0x7995('0x3b')]);var _0x6fe77b={'where':_0x56691a[_0x7995('0x38')]};return db[_0x7995('0x28')]['count'](_0x6fe77b)['then'](function(_0x334dff){_0x5911c3[_0x7995('0x1b')]=_0x334dff;if(_0x3a3fcf['query']['includeAll']){_0x56691a[_0x7995('0x3c')]=[{'all':!![]}];}return db['Tag']['findAll'](_0x56691a);})[_0x7995('0x21')](function(_0x36e28b){_0x5911c3[_0x7995('0x3d')]=_0x36e28b;return _0x5911c3;})['then'](respondWithFilteredResult(_0x2a307e,_0x56691a))[_0x7995('0x3e')](handleError(_0x2a307e,null));};exports['show']=function(_0x3993b5,_0x5a8881){var _0x493066={'raw':!![],'where':{'id':_0x3993b5[_0x7995('0x3f')]['id']}},_0x39c5b8={};_0x39c5b8[_0x7995('0x2a')]=_[_0x7995('0x2b')](db['Tag'][_0x7995('0x29')]);_0x39c5b8[_0x7995('0x2c')]=_[_0x7995('0x2b')](_0x3993b5[_0x7995('0x2c')]);_0x39c5b8['filters']=_['intersection'](_0x39c5b8[_0x7995('0x2a')],_0x39c5b8['query']);_0x493066[_0x7995('0x31')]=_['intersection'](_0x39c5b8[_0x7995('0x2a')],qs['fields'](_0x3993b5[_0x7995('0x2c')][_0x7995('0x30')]));_0x493066['attributes']=_0x493066[_0x7995('0x31')][_0x7995('0x40')]?_0x493066[_0x7995('0x31')]:_0x39c5b8[_0x7995('0x2a')];if(_0x3993b5['query'][_0x7995('0x41')]){_0x493066[_0x7995('0x3c')]=[{'all':!![]}];}_0x493066=_[_0x7995('0x37')]({},_0x493066,_0x3993b5['options']);return db[_0x7995('0x28')][_0x7995('0x42')](_0x493066)[_0x7995('0x21')](handleEntityNotFound(_0x5a8881,null))[_0x7995('0x21')](respondWithResult(_0x5a8881,null))[_0x7995('0x3e')](handleError(_0x5a8881,null));};exports['create']=function(_0x1a5cec,_0xfb72b2){return db['Tag'][_0x7995('0x43')](_0x1a5cec['body'],{})[_0x7995('0x21')](respondWithResult(_0xfb72b2,0xc9))[_0x7995('0x3e')](handleError(_0xfb72b2,null));};exports[_0x7995('0x44')]=function(_0x30e220,_0xddf537){if(_0x30e220[_0x7995('0x45')]['id']){delete _0x30e220[_0x7995('0x45')]['id'];}return db['Tag'][_0x7995('0x42')]({'where':{'id':_0x30e220[_0x7995('0x3f')]['id']}})[_0x7995('0x21')](handleEntityNotFound(_0xddf537,null))['then'](saveUpdates(_0x30e220[_0x7995('0x45')],null))[_0x7995('0x21')](respondWithResult(_0xddf537,null))[_0x7995('0x3e')](handleError(_0xddf537,null));};exports['destroy']=function(_0x4ec548,_0x5a592e){return db[_0x7995('0x28')][_0x7995('0x42')]({'where':{'id':_0x4ec548['params']['id']}})[_0x7995('0x21')](handleEntityNotFound(_0x5a592e,null))[_0x7995('0x21')](removeEntity(_0x5a592e,null))[_0x7995('0x3e')](handleError(_0x5a592e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd36=['util','api','moment','./tag.attributes','exports','define','Tag','tools_tags','lodash'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xcd36,0x1c1));var _0x6cd3=function(_0xcc1a46,_0x5514d9){_0xcc1a46=_0xcc1a46-0x0;var _0x756688=_0xcd36[_0xcc1a46];return _0x756688;};'use strict';var _=require(_0x6cd3('0x0'));var util=require(_0x6cd3('0x1'));var logger=require('../../config/logger')(_0x6cd3('0x2'));var moment=require(_0x6cd3('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x6cd3('0x4'));module[_0x6cd3('0x5')]=function(_0x4627a0,_0x139f48){return _0x4627a0[_0x6cd3('0x6')](_0x6cd3('0x7'),attributes,{'tableName':_0x6cd3('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x64fc=['Tag','tools_tags','../../config/logger','api','moment','request-promise','define'];(function(_0x4f9d26,_0x641341){var _0x57debc=function(_0x48f368){while(--_0x48f368){_0x4f9d26['push'](_0x4f9d26['shift']());}};_0x57debc(++_0x641341);}(_0x64fc,0x136));var _0xc64f=function(_0x2555d0,_0x4150a6){_0x2555d0=_0x2555d0-0x0;var _0x3bb486=_0x64fc[_0x2555d0];return _0x3bb486;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xc64f('0x0'))(_0xc64f('0x1'));var moment=require(_0xc64f('0x2'));var BPromise=require('bluebird');var rp=require(_0xc64f('0x3'));var attributes=require('./tag.attributes');module['exports']=function(_0x281217,_0x5d1104){return _0x281217[_0xc64f('0x4')](_0xc64f('0x5'),attributes,{'tableName':_0xc64f('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0d9=['../../config/environment','jayson/promise','client','http','request','then','info','Tag,\x20%s,\x20%s','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','moment','bluebird','randomstring','../../mysqldb','../../config/logger'];(function(_0x42bdad,_0x12836c){var _0x122626=function(_0x2eb29c){while(--_0x2eb29c){_0x42bdad['push'](_0x42bdad['shift']());}};_0x122626(++_0x12836c);}(_0xb0d9,0x1b3));var _0x9b0d=function(_0x14965e,_0x2705bf){_0x14965e=_0x14965e-0x0;var _0x541eae=_0xb0d9[_0x14965e];return _0x541eae;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9b0d('0x0'));var BPromise=require(_0x9b0d('0x1'));var rs=require(_0x9b0d('0x2'));var fs=require('fs');var db=require(_0x9b0d('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x9b0d('0x4'))('rpc');var config=require(_0x9b0d('0x5'));var jayson=require(_0x9b0d('0x6'));var client=jayson[_0x9b0d('0x7')][_0x9b0d('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x15417e,_0x5a9861,_0x56b37b){return new BPromise(function(_0x51138c,_0x27d9d9){return client[_0x9b0d('0x9')](_0x15417e,_0x56b37b)[_0x9b0d('0xa')](function(_0x5d3e44){logger[_0x9b0d('0xb')](_0x9b0d('0xc'),_0x5a9861,_0x9b0d('0xd'));logger[_0x9b0d('0xe')](_0x9b0d('0xf'),_0x5a9861,'request\x20sent',JSON[_0x9b0d('0x10')](_0x5d3e44));if(_0x5d3e44[_0x9b0d('0x11')]){if(_0x5d3e44['error'][_0x9b0d('0x12')]===0x1f4){logger[_0x9b0d('0x11')](_0x9b0d('0xc'),_0x5a9861,_0x5d3e44['error'][_0x9b0d('0x13')]);return _0x27d9d9(_0x5d3e44[_0x9b0d('0x11')]['message']);}logger['error']('Tag,\x20%s,\x20%s',_0x5a9861,_0x5d3e44[_0x9b0d('0x11')][_0x9b0d('0x13')]);return _0x51138c(_0x5d3e44[_0x9b0d('0x11')]['message']);}else{logger[_0x9b0d('0xb')](_0x9b0d('0xc'),_0x5a9861,'request\x20sent');_0x51138c(_0x5d3e44[_0x9b0d('0x14')][_0x9b0d('0x13')]);}})[_0x9b0d('0x15')](function(_0x2a7543){logger[_0x9b0d('0x11')](_0x9b0d('0xc'),_0x5a9861,_0x2a7543);_0x27d9d9(_0x2a7543);});});}
\ No newline at end of file
+var _0x9f58=['request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','info','Tag,\x20%s,\x20%s','Tag,\x20%s,\x20%s,\x20%s'];(function(_0x412587,_0x4ea099){var _0x2f7f2d=function(_0x104379){while(--_0x104379){_0x412587['push'](_0x412587['shift']());}};_0x2f7f2d(++_0x4ea099);}(_0x9f58,0x167));var _0x89f5=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x9f58[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0x89f5('0x0'));var util=require(_0x89f5('0x1'));var moment=require(_0x89f5('0x2'));var BPromise=require(_0x89f5('0x3'));var rs=require(_0x89f5('0x4'));var fs=require('fs');var Redis=require(_0x89f5('0x5'));var db=require(_0x89f5('0x6'))['db'];var utils=require(_0x89f5('0x7'));var logger=require(_0x89f5('0x8'))(_0x89f5('0x9'));var config=require('../../config/environment');var jayson=require(_0x89f5('0xa'));var client=jayson['client'][_0x89f5('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4d860a,_0x129bbe,_0x543855){return new BPromise(function(_0x58459f,_0x3ac98c){return client['request'](_0x4d860a,_0x543855)['then'](function(_0x59182a){logger[_0x89f5('0xc')](_0x89f5('0xd'),_0x129bbe,'request\x20sent');logger['debug'](_0x89f5('0xe'),_0x129bbe,_0x89f5('0xf'),JSON[_0x89f5('0x10')](_0x59182a));if(_0x59182a[_0x89f5('0x11')]){if(_0x59182a[_0x89f5('0x11')][_0x89f5('0x12')]===0x1f4){logger[_0x89f5('0x11')](_0x89f5('0xd'),_0x129bbe,_0x59182a[_0x89f5('0x11')]['message']);return _0x3ac98c(_0x59182a[_0x89f5('0x11')][_0x89f5('0x13')]);}logger[_0x89f5('0x11')](_0x89f5('0xd'),_0x129bbe,_0x59182a[_0x89f5('0x11')][_0x89f5('0x13')]);return _0x58459f(_0x59182a[_0x89f5('0x11')]['message']);}else{logger[_0x89f5('0xc')](_0x89f5('0xd'),_0x129bbe,'request\x20sent');_0x58459f(_0x59182a[_0x89f5('0x14')][_0x89f5('0x13')]);}})[_0x89f5('0x15')](function(_0x26b856){logger[_0x89f5('0x11')](_0x89f5('0xd'),_0x129bbe,_0x26b856);_0x3ac98c(_0x26b856);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd94f=['exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./team.controller','get','isAuthenticated','index','/:id','/:id/queues','getQueues','/:id/users','getAgents','post','create','addQueues','addAgents','put','update','delete','removeQueues'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xd94f,0xb7));var _0xfd94=function(_0x1b1516,_0x17a510){_0x1b1516=_0x1b1516-0x0;var _0x14902e=_0xd94f[_0x1b1516];return _0x14902e;};'use strict';var multer=require(_0xfd94('0x0'));var util=require(_0xfd94('0x1'));var path=require(_0xfd94('0x2'));var timeout=require(_0xfd94('0x3'));var express=require(_0xfd94('0x4'));var router=express[_0xfd94('0x5')]();var auth=require(_0xfd94('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xfd94('0x7'));var controller=require(_0xfd94('0x8'));router[_0xfd94('0x9')]('/',auth[_0xfd94('0xa')](),controller[_0xfd94('0xb')]);router[_0xfd94('0x9')](_0xfd94('0xc'),auth[_0xfd94('0xa')](),controller['show']);router[_0xfd94('0x9')](_0xfd94('0xd'),auth['isAuthenticated'](),controller[_0xfd94('0xe')]);router['get'](_0xfd94('0xf'),auth[_0xfd94('0xa')](),controller[_0xfd94('0x10')]);router[_0xfd94('0x11')]('/',auth[_0xfd94('0xa')](),controller[_0xfd94('0x12')]);router['post'](_0xfd94('0xd'),auth[_0xfd94('0xa')](),controller[_0xfd94('0x13')]);router[_0xfd94('0x11')]('/:id/users',auth['isAuthenticated'](),controller[_0xfd94('0x14')]);router[_0xfd94('0x15')]('/:id',auth[_0xfd94('0xa')](),controller[_0xfd94('0x16')]);router[_0xfd94('0x17')]('/:id',auth[_0xfd94('0xa')](),controller['destroy']);router['delete'](_0xfd94('0xd'),auth[_0xfd94('0xa')](),controller[_0xfd94('0x18')]);router['delete']('/:id/users',auth[_0xfd94('0xa')](),controller['removeAgents']);module[_0xfd94('0x19')]=router;
\ No newline at end of file
+var _0xde68=['delete','destroy','exports','multer','util','path','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','isAuthenticated','index','get','/:id','show','/:id/queues','/:id/users','post','create','addQueues','addAgents','put'];(function(_0x1e6b59,_0x5eca5d){var _0x40d7c5=function(_0x2dd544){while(--_0x2dd544){_0x1e6b59['push'](_0x1e6b59['shift']());}};_0x40d7c5(++_0x5eca5d);}(_0xde68,0x15c));var _0x8de6=function(_0x29d94e,_0xf386d6){_0x29d94e=_0x29d94e-0x0;var _0x106237=_0xde68[_0x29d94e];return _0x106237;};'use strict';var multer=require(_0x8de6('0x0'));var util=require(_0x8de6('0x1'));var path=require(_0x8de6('0x2'));var timeout=require('connect-timeout');var express=require(_0x8de6('0x3'));var router=express['Router']();var auth=require(_0x8de6('0x4'));var interaction=require(_0x8de6('0x5'));var config=require(_0x8de6('0x6'));var controller=require(_0x8de6('0x7'));router['get']('/',auth[_0x8de6('0x8')](),controller[_0x8de6('0x9')]);router[_0x8de6('0xa')](_0x8de6('0xb'),auth[_0x8de6('0x8')](),controller[_0x8de6('0xc')]);router[_0x8de6('0xa')](_0x8de6('0xd'),auth['isAuthenticated'](),controller['getQueues']);router[_0x8de6('0xa')](_0x8de6('0xe'),auth[_0x8de6('0x8')](),controller['getAgents']);router[_0x8de6('0xf')]('/',auth[_0x8de6('0x8')](),controller[_0x8de6('0x10')]);router[_0x8de6('0xf')](_0x8de6('0xd'),auth[_0x8de6('0x8')](),controller[_0x8de6('0x11')]);router[_0x8de6('0xf')](_0x8de6('0xe'),auth[_0x8de6('0x8')](),controller[_0x8de6('0x12')]);router[_0x8de6('0x13')](_0x8de6('0xb'),auth[_0x8de6('0x8')](),controller['update']);router[_0x8de6('0x14')](_0x8de6('0xb'),auth['isAuthenticated'](),controller[_0x8de6('0x15')]);router[_0x8de6('0x14')](_0x8de6('0xd'),auth['isAuthenticated'](),controller['removeQueues']);router[_0x8de6('0x14')](_0x8de6('0xe'),auth['isAuthenticated'](),controller['removeAgents']);module[_0x8de6('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c75=['STRING','sequelize'];(function(_0x580736,_0x3f9a09){var _0x2a94ad=function(_0x52fe0c){while(--_0x52fe0c){_0x580736['push'](_0x580736['shift']());}};_0x2a94ad(++_0x3f9a09);}(_0x4c75,0xc1));var _0x54c7=function(_0x49aa7d,_0x5d46d8){_0x49aa7d=_0x49aa7d-0x0;var _0xdd0d26=_0x4c75[_0x49aa7d];return _0xdd0d26;};'use strict';var Sequelize=require(_0x54c7('0x0'));module['exports']={'name':{'type':Sequelize[_0x54c7('0x1')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize[_0x54c7('0x1')]}};
\ No newline at end of file
+var _0x027d=['sequelize','name','STRING'];(function(_0x53b9a7,_0xb17f43){var _0x520c53=function(_0x4299d2){while(--_0x4299d2){_0x53b9a7['push'](_0x53b9a7['shift']());}};_0x520c53(++_0xb17f43);}(_0x027d,0x153));var _0xd027=function(_0x34676d,_0xf90c9f){_0x34676d=_0x34676d-0x0;var _0x312b43=_0x027d[_0x34676d];return _0x312b43;};'use strict';var Sequelize=require(_0xd027('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd027('0x1')},'description':{'type':Sequelize[_0xd027('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6075=['index','Team','rawAttributes','model','keys','dateStart','dateEnd','query','filters','intersection','attributes','fields','hasOwnProperty','sort','add','day','merge','where','filter','options','includeAll','include','catch','length','find','create','body','params','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','order','pick','get','Queues','addQueues','Sequelize','ids','remove','addAgents','each','voice','chat','mail','sms','fax','findAll','loginInPause','UserVoiceQueueRt','isNil','interface','format','SIP/%s','voicePause','spread','emit','userTeam:save','removeAgents','isArray','userTeam:remove','getAgents','User','map','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/environment','defaults','redis','localhost','./team.socket','register','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','save','update','destroy','then','error','stack','name','send'];(function(_0x98fc16,_0x4dc31f){var _0x396ff7=function(_0x54c9ba){while(--_0x54c9ba){_0x98fc16['push'](_0x98fc16['shift']());}};_0x396ff7(++_0x4dc31f);}(_0x6075,0x191));var _0x5607=function(_0x436ddd,_0x14583e){_0x436ddd=_0x436ddd-0x0;var _0x1dba27=_0x6075[_0x436ddd];return _0x1dba27;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5607('0x0'));var rimraf=require(_0x5607('0x1'));var zipdir=require(_0x5607('0x2'));var jsonpatch=require(_0x5607('0x3'));var rp=require(_0x5607('0x4'));var moment=require(_0x5607('0x5'));var BPromise=require(_0x5607('0x6'));var Mustache=require(_0x5607('0x7'));var util=require(_0x5607('0x8'));var path=require('path');var sox=require(_0x5607('0x9'));var csv=require(_0x5607('0xa'));var ejs=require(_0x5607('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x5607('0xc'));var jsforce=require(_0x5607('0xd'));var deskjs=require(_0x5607('0xe'));var toCsv=require(_0x5607('0xa'));var querystring=require(_0x5607('0xf'));var Papa=require('papaparse');var qs=require(_0x5607('0x10'));var logger=require(_0x5607('0x11'))(_0x5607('0x12'));var utils=require('../../config/utils');var config=require(_0x5607('0x13'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x5607('0x14')](config[_0x5607('0x15')],{'host':_0x5607('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0x5607('0x15')]);require(_0x5607('0x17'))[_0x5607('0x18')](socket);function respondWithStatusCode(_0x39fc33,_0xe6368d){_0xe6368d=_0xe6368d||0xcc;return function(_0x33c436){if(_0x33c436){return _0x39fc33[_0x5607('0x19')](_0xe6368d);}return _0x39fc33[_0x5607('0x1a')](_0xe6368d)[_0x5607('0x1b')]();};}function respondWithResult(_0x4e1167,_0x1b0720){_0x1b0720=_0x1b0720||0xc8;return function(_0x275c5d){if(_0x275c5d){return _0x4e1167[_0x5607('0x1a')](_0x1b0720)['json'](_0x275c5d);}};}function respondWithFilteredResult(_0x556397,_0x3f149e){return function(_0x50e498){if(_0x50e498){var _0x38ab1c=_0x50e498[_0x5607('0x1c')],_0x1d260e=_0x3f149e[_0x5607('0x1d')],_0x1fa238=_0x3f149e['offset']+_0x3f149e[_0x5607('0x1e')],_0x1375e9;if(_0x1fa238>=_0x38ab1c){_0x1fa238=_0x38ab1c;_0x1375e9=0xc8;}else{_0x1375e9=0xce;}_0x556397['status'](_0x1375e9);return _0x556397[_0x5607('0x1f')](_0x5607('0x20'),_0x1d260e+'-'+_0x1fa238+'/'+_0x38ab1c)[_0x5607('0x21')](_0x50e498);}return null;};}function patchUpdates(_0x5f080d){return function(_0xffa25d){try{jsonpatch[_0x5607('0x22')](_0xffa25d,_0x5f080d,!![]);}catch(_0x303089){return BPromise['reject'](_0x303089);}return _0xffa25d[_0x5607('0x23')]();};}function saveUpdates(_0x2fdc13,_0x22fda4){return function(_0x491046){if(_0x491046){return _0x491046[_0x5607('0x24')](_0x2fdc13)['then'](function(_0x49f918){return _0x49f918;});}return null;};}function removeEntity(_0x39a9f4,_0x564ba2){return function(_0x32d30a){if(_0x32d30a){return _0x32d30a[_0x5607('0x25')]()[_0x5607('0x26')](function(){_0x39a9f4[_0x5607('0x1a')](0xcc)[_0x5607('0x1b')]();});}};}function handleEntityNotFound(_0x20918c,_0x8a7592){return function(_0x42a1af){if(!_0x42a1af){_0x20918c['sendStatus'](0x194);}return _0x42a1af;};}function handleError(_0x20ae60,_0x27e144){_0x27e144=_0x27e144||0x1f4;return function(_0x482842){logger[_0x5607('0x27')](_0x482842[_0x5607('0x28')]);if(_0x482842[_0x5607('0x29')]){delete _0x482842[_0x5607('0x29')];}_0x20ae60[_0x5607('0x1a')](_0x27e144)[_0x5607('0x2a')](_0x482842);};}exports[_0x5607('0x2b')]=function(_0x3a6e65,_0x570e62){var _0xcd4e9f={},_0x309ede={},_0x51b7d5={'count':0x0,'rows':[]};var _0x5932ae=db[_0x5607('0x2c')][_0x5607('0x2d')];_0x309ede[_0x5607('0x2e')]=_[_0x5607('0x2f')](_0x5932ae);var _0x2c3078={'dateStart':_0x3a6e65['query'][_0x5607('0x30')],'dateEnd':_0x3a6e65['query'][_0x5607('0x31')]};delete _0x3a6e65[_0x5607('0x32')][_0x5607('0x30')];delete _0x3a6e65['query'][_0x5607('0x31')];_0x309ede['query']=_[_0x5607('0x2f')](_0x3a6e65[_0x5607('0x32')]);_0x309ede[_0x5607('0x33')]=_[_0x5607('0x34')](_0x309ede[_0x5607('0x2e')],_0x309ede['query']);_0xcd4e9f[_0x5607('0x35')]=_['intersection'](_0x309ede[_0x5607('0x2e')],qs[_0x5607('0x36')](_0x3a6e65['query'][_0x5607('0x36')]));_0xcd4e9f[_0x5607('0x35')]=_0xcd4e9f[_0x5607('0x35')]['length']?_0xcd4e9f[_0x5607('0x35')]:_0x309ede[_0x5607('0x2e')];if(!_0x3a6e65[_0x5607('0x32')][_0x5607('0x37')]('nolimit')){_0xcd4e9f[_0x5607('0x1e')]=qs[_0x5607('0x1e')](_0x3a6e65['query'][_0x5607('0x1e')]);_0xcd4e9f[_0x5607('0x1d')]=qs[_0x5607('0x1d')](_0x3a6e65['query'][_0x5607('0x1d')]);}_0xcd4e9f['order']=qs[_0x5607('0x38')](_0x3a6e65[_0x5607('0x32')][_0x5607('0x38')]);_0xcd4e9f['where']=qs['filters'](_['pick'](_0x3a6e65[_0x5607('0x32')],_0x309ede[_0x5607('0x33')]));if(_0x2c3078[_0x5607('0x30')]){if(_0x2c3078[_0x5607('0x31')]){_0x2c3078[_0x5607('0x31')]=moment(_0x2c3078[_0x5607('0x31')])[_0x5607('0x39')](0x1,_0x5607('0x3a'));}else{_0x2c3078['dateEnd']=moment(_0x2c3078[_0x5607('0x30')])[_0x5607('0x39')](0x1,_0x5607('0x3a'));}_[_0x5607('0x3b')](_0xcd4e9f['where'],{'createdAt':{'$gte':_0x2c3078[_0x5607('0x30')],'$lte':_0x2c3078[_0x5607('0x31')]}});}if(_0x3a6e65['query']['filter']){_0xcd4e9f[_0x5607('0x3c')]=_[_0x5607('0x3b')](_0xcd4e9f[_0x5607('0x3c')],{'$or':_['map'](_0xcd4e9f['attributes'],function(_0x559045){var _0x44641f={};_0x44641f[_0x559045]={'$like':'%'+_0x3a6e65[_0x5607('0x32')][_0x5607('0x3d')]+'%'};return _0x44641f;})});}_0xcd4e9f=_['merge']({},_0xcd4e9f,_0x3a6e65[_0x5607('0x3e')]);var _0x26d713={'where':_0xcd4e9f[_0x5607('0x3c')]};return db[_0x5607('0x2c')][_0x5607('0x1c')](_0x26d713)[_0x5607('0x26')](function(_0x15cbf5){_0x51b7d5['count']=_0x15cbf5;if(_0x3a6e65['query'][_0x5607('0x3f')]){_0xcd4e9f[_0x5607('0x40')]=[{'all':!![]}];}return db[_0x5607('0x2c')]['findAll'](_0xcd4e9f);})[_0x5607('0x26')](function(_0x1432e5){_0x51b7d5['rows']=_0x1432e5;return _0x51b7d5;})[_0x5607('0x26')](respondWithFilteredResult(_0x570e62,_0xcd4e9f))[_0x5607('0x41')](handleError(_0x570e62,null));};exports['show']=function(_0x485d08,_0x23226c){var _0x3d8dae={'raw':![],'where':{'id':_0x485d08['params']['id']}},_0x3528f4={};_0x3528f4[_0x5607('0x2e')]=_[_0x5607('0x2f')](db['Team'][_0x5607('0x2d')]);_0x3528f4[_0x5607('0x32')]=_['keys'](_0x485d08[_0x5607('0x32')]);_0x3528f4[_0x5607('0x33')]=_[_0x5607('0x34')](_0x3528f4['model'],_0x3528f4[_0x5607('0x32')]);_0x3d8dae[_0x5607('0x35')]=_[_0x5607('0x34')](_0x3528f4[_0x5607('0x2e')],qs[_0x5607('0x36')](_0x485d08['query'][_0x5607('0x36')]));_0x3d8dae[_0x5607('0x35')]=_0x3d8dae[_0x5607('0x35')][_0x5607('0x42')]?_0x3d8dae[_0x5607('0x35')]:_0x3528f4['model'];if(_0x485d08[_0x5607('0x32')]['includeAll']){_0x3d8dae[_0x5607('0x40')]=[{'all':!![]}];}_0x3d8dae=_[_0x5607('0x3b')]({},_0x3d8dae,_0x485d08[_0x5607('0x3e')]);return db[_0x5607('0x2c')][_0x5607('0x43')](_0x3d8dae)[_0x5607('0x26')](handleEntityNotFound(_0x23226c,null))['then'](respondWithResult(_0x23226c,null))['catch'](handleError(_0x23226c,null));};exports['create']=function(_0x15141b,_0xda43ef){return db['Team'][_0x5607('0x44')](_0x15141b[_0x5607('0x45')],{})[_0x5607('0x26')](respondWithResult(_0xda43ef,0xc9))[_0x5607('0x41')](handleError(_0xda43ef,null));};exports[_0x5607('0x24')]=function(_0x27c053,_0xccd4f5){if(_0x27c053[_0x5607('0x45')]['id']){delete _0x27c053[_0x5607('0x45')]['id'];}return db[_0x5607('0x2c')][_0x5607('0x43')]({'where':{'id':_0x27c053[_0x5607('0x46')]['id']}})[_0x5607('0x26')](handleEntityNotFound(_0xccd4f5,null))[_0x5607('0x26')](saveUpdates(_0x27c053[_0x5607('0x45')],null))[_0x5607('0x26')](respondWithResult(_0xccd4f5,null))[_0x5607('0x41')](handleError(_0xccd4f5,null));};exports['destroy']=function(_0xf72815,_0x4d74e9){return db[_0x5607('0x2c')][_0x5607('0x43')]({'where':{'id':_0xf72815[_0x5607('0x46')]['id']}})[_0x5607('0x26')](handleEntityNotFound(_0x4d74e9,null))[_0x5607('0x26')](removeEntity(_0x4d74e9,null))[_0x5607('0x41')](handleError(_0x4d74e9,null));};exports['getQueues']=function(_0x3ae406,_0x499fb9,_0x5344d7){return db[_0x5607('0x2c')][_0x5607('0x47')]({'where':{'id':_0x3ae406[_0x5607('0x46')]['id']}})[_0x5607('0x26')](handleEntityNotFound(_0x499fb9,null))['then'](function(_0x414fbf){if(!_0x3ae406['query'][_0x5607('0x48')]||!utils[_0x5607('0x49')](_0x3ae406[_0x5607('0x32')][_0x5607('0x48')])){throw new db['Sequelize'][(_0x5607('0x4a'))](_0x5607('0x4b'));}var _0x52ca66={};var _0x1a78f6={};_0x1a78f6['model']=_[_0x5607('0x2f')](db[_[_0x5607('0x4c')](_0x3ae406[_0x5607('0x32')][_0x5607('0x48')][_0x5607('0x4d')]())+'Queue'][_0x5607('0x2d')]);_0x1a78f6[_0x5607('0x32')]=_[_0x5607('0x2f')](_0x3ae406[_0x5607('0x32')]);_0x1a78f6['filters']=_[_0x5607('0x34')](_0x1a78f6[_0x5607('0x2e')],_0x1a78f6['query']);_0x52ca66['attributes']=_[_0x5607('0x34')](_0x1a78f6[_0x5607('0x2e')],qs[_0x5607('0x36')](_0x3ae406[_0x5607('0x32')][_0x5607('0x36')]));_0x52ca66['attributes']=_0x52ca66['attributes'][_0x5607('0x42')]?_0x52ca66['attributes']:_0x1a78f6[_0x5607('0x2e')];_0x52ca66['limit']=qs['limit'](_0x3ae406['query']['limit']);_0x52ca66[_0x5607('0x1d')]=qs[_0x5607('0x1d')](_0x3ae406[_0x5607('0x32')][_0x5607('0x1d')]);_0x52ca66[_0x5607('0x4e')]=qs[_0x5607('0x38')](_0x3ae406[_0x5607('0x32')]['sort']);_0x52ca66[_0x5607('0x3c')]=qs[_0x5607('0x33')](_[_0x5607('0x4f')](_0x3ae406['query'],_0x1a78f6[_0x5607('0x33')]));_0x52ca66=_[_0x5607('0x3b')]({},_0x52ca66,_0x3ae406['options']);return _0x414fbf[_0x5607('0x50')+_['capitalize'](_0x3ae406[_0x5607('0x32')][_0x5607('0x48')]['toLowerCase']())+_0x5607('0x51')](_0x52ca66);})[_0x5607('0x26')](respondWithResult(_0x499fb9,null))[_0x5607('0x41')](handleError(_0x499fb9,null));};exports[_0x5607('0x52')]=function(_0x25543d,_0x2063a5,_0x464357){return db['Team']['findOne']({'where':{'id':_0x25543d[_0x5607('0x46')]['id']}})[_0x5607('0x26')](function(_0x24638f){if(_0x24638f){if(!_0x25543d[_0x5607('0x45')][_0x5607('0x48')]||!utils[_0x5607('0x49')](_0x25543d[_0x5607('0x45')][_0x5607('0x48')])){throw new db[(_0x5607('0x53'))][(_0x5607('0x4a'))]('Unknown\x20channel');}return _0x24638f[_0x5607('0x39')+_['capitalize'](_0x25543d[_0x5607('0x45')][_0x5607('0x48')][_0x5607('0x4d')]())+'Queues'](_0x25543d['body'][_0x5607('0x54')]);}return null;})['then'](handleEntityNotFound(_0x2063a5,null))['then'](respondWithStatusCode(_0x2063a5,null))['catch'](handleError(_0x2063a5,null));};exports['removeQueues']=function(_0x33a10f,_0x3a583c,_0x2776ee){return db[_0x5607('0x2c')][_0x5607('0x47')]({'where':{'id':_0x33a10f[_0x5607('0x46')]['id']}})[_0x5607('0x26')](function(_0x4f1945){if(_0x4f1945){if(!_0x33a10f[_0x5607('0x32')][_0x5607('0x48')]||!utils[_0x5607('0x49')](_0x33a10f[_0x5607('0x32')][_0x5607('0x48')])){throw new db['Sequelize'][(_0x5607('0x4a'))](_0x5607('0x4b'));}return _0x4f1945[_0x5607('0x55')+_['capitalize'](_0x33a10f[_0x5607('0x32')][_0x5607('0x48')][_0x5607('0x4d')]())+'Queues'](_0x33a10f[_0x5607('0x32')][_0x5607('0x54')]);}return null;})[_0x5607('0x26')](handleEntityNotFound(_0x3a583c,null))[_0x5607('0x26')](respondWithStatusCode(_0x3a583c,null))['catch'](handleError(_0x3a583c,null));};exports[_0x5607('0x56')]=function(_0x2dffbe,_0x268956,_0x6f2f28){return db[_0x5607('0x2c')][_0x5607('0x43')]({'where':{'id':_0x2dffbe[_0x5607('0x46')]['id']}})[_0x5607('0x26')](handleEntityNotFound(_0x268956,null))['then'](function(_0x5097f1){if(_0x5097f1){return BPromise[_0x5607('0x57')]([_0x5607('0x58'),_0x5607('0x59'),_0x5607('0x5a'),_0x5607('0x5b'),_0x5607('0x5c'),'openchannel'],function(_0x15b8df){return _0x5097f1[_0x5607('0x50')+_[_0x5607('0x4c')](_0x15b8df)+_0x5607('0x51')]({'attributes':['id',_0x5607('0x29')]})[_0x5607('0x26')](function(_0x40f1ab){return BPromise[_0x5607('0x57')](_0x40f1ab,function(_0x5507e0){return _0x5507e0[_0x5607('0x56')](_0x2dffbe[_0x5607('0x45')]['ids'])['then'](function(){if(_0x15b8df===_0x5607('0x58')){return db['User'][_0x5607('0x5d')]({'where':{'id':_0x2dffbe['body']['ids']},'attributes':['id',_0x5607('0x29'),_0x5607('0x5e'),'voicePause','interface'],'raw':!![]});}})[_0x5607('0x26')](function(_0x5e2c60){if(_0x15b8df==='voice'){return BPromise[_0x5607('0x57')](_0x5e2c60,function(_0x1ce925){return db[_0x5607('0x5f')]['upsert']({'membername':_0x1ce925[_0x5607('0x29')],'UserId':_0x1ce925['id'],'queue_name':_0x5507e0['name'],'VoiceQueueId':_0x5507e0['id'],'interface':_[_0x5607('0x60')](_0x1ce925[_0x5607('0x61')])?util[_0x5607('0x62')](_0x5607('0x63'),_0x1ce925[_0x5607('0x29')]):_0x1ce925['interface'],'paused':_0x1ce925[_0x5607('0x64')]||![],'penalty':0x0});});}});});})['then'](function(){return _0x5097f1;});})[_0x5607('0x26')](function(){return _0x5097f1;});}})['then'](function(_0x9ecb6d){if(_0x9ecb6d){return _0x9ecb6d[_0x5607('0x56')](_0x2dffbe[_0x5607('0x45')][_0x5607('0x54')],_['omit'](_0x2dffbe[_0x5607('0x45')],[_0x5607('0x54'),'id'])||{})[_0x5607('0x65')](function(_0x462dd5){for(var _0x357c25=0x0;_0x357c25<_0x2dffbe[_0x5607('0x45')][_0x5607('0x54')][_0x5607('0x42')];_0x357c25+=0x1){socket[_0x5607('0x66')](_0x5607('0x67'),{'UserId':_0x2dffbe[_0x5607('0x45')][_0x5607('0x54')][_0x357c25],'TeamId':_0x2dffbe[_0x5607('0x46')]['id']});}return _0x462dd5;});}})[_0x5607('0x26')](respondWithResult(_0x268956,null))[_0x5607('0x41')](handleError(_0x268956,null));};exports[_0x5607('0x68')]=function(_0x1a630f,_0x2ffc48,_0x59346e){var _0x24b5ee;return db['Team'][_0x5607('0x43')]({'where':{'id':_0x1a630f['params']['id']}})[_0x5607('0x26')](handleEntityNotFound(_0x2ffc48,null))[_0x5607('0x26')](function(_0x11a74c){if(_0x11a74c){return BPromise[_0x5607('0x57')]([_0x5607('0x58'),_0x5607('0x59'),_0x5607('0x5a'),_0x5607('0x5b'),_0x5607('0x5c'),'openchannel'],function(_0x4b0814){return _0x11a74c[_0x5607('0x50')+_[_0x5607('0x4c')](_0x4b0814)+_0x5607('0x51')]({'attributes':['id',_0x5607('0x29')]})[_0x5607('0x26')](function(_0x30c843){return BPromise[_0x5607('0x57')](_0x30c843,function(_0x50c0c0){return _0x50c0c0['removeAgents'](_0x1a630f[_0x5607('0x32')]['ids'])['then'](function(){if(_0x4b0814===_0x5607('0x58')){return db[_0x5607('0x5f')][_0x5607('0x25')]({'where':{'VoiceQueueId':_0x50c0c0['id'],'UserId':_0x1a630f[_0x5607('0x32')][_0x5607('0x54')]}});}});});})[_0x5607('0x26')](function(){return _0x11a74c;});})[_0x5607('0x26')](function(){return _0x11a74c;});}})[_0x5607('0x26')](function(_0x2f152f){if(_0x2f152f){return _0x2f152f[_0x5607('0x68')](_0x1a630f[_0x5607('0x32')]['ids'])[_0x5607('0x26')](function(_0x21d99b){if(_[_0x5607('0x69')](_0x1a630f[_0x5607('0x32')][_0x5607('0x54')])){for(var _0x464259=0x0;_0x464259<_0x1a630f[_0x5607('0x32')][_0x5607('0x54')][_0x5607('0x42')];_0x464259+=0x1){socket['emit']('userTeam:remove',{'UserId':_0x1a630f['query'][_0x5607('0x54')][_0x464259],'TeamId':_0x1a630f[_0x5607('0x46')]['id']});}}else{socket[_0x5607('0x66')](_0x5607('0x6a'),{'UserId':_0x1a630f[_0x5607('0x32')][_0x5607('0x54')],'TeamId':_0x1a630f[_0x5607('0x46')]['id']});}});}})['then'](respondWithStatusCode(_0x2ffc48,null))[_0x5607('0x41')](handleError(_0x2ffc48,null));};exports[_0x5607('0x6b')]=function(_0xad467,_0x1e9af2,_0x265fa3){var _0x16e14b={};var _0x31a829={};var _0x36b0e2;var _0x14c84f;return db[_0x5607('0x2c')][_0x5607('0x47')]({'where':{'id':_0xad467['params']['id']}})[_0x5607('0x26')](handleEntityNotFound(_0x1e9af2,null))[_0x5607('0x26')](function(_0x438219){if(_0x438219){_0x36b0e2=_0x438219;_0x31a829[_0x5607('0x2e')]=_[_0x5607('0x2f')](db[_0x5607('0x6c')]['rawAttributes']);_0x31a829[_0x5607('0x32')]=_[_0x5607('0x2f')](_0xad467[_0x5607('0x32')]);_0x31a829[_0x5607('0x33')]=_['intersection'](_0x31a829[_0x5607('0x2e')],_0x31a829[_0x5607('0x32')]);_0x16e14b['attributes']=_['intersection'](_0x31a829[_0x5607('0x2e')],qs['fields'](_0xad467[_0x5607('0x32')]['fields']));_0x16e14b[_0x5607('0x35')]=_0x16e14b[_0x5607('0x35')]['length']?_0x16e14b['attributes']:_0x31a829[_0x5607('0x2e')];_0x16e14b[_0x5607('0x4e')]=qs[_0x5607('0x38')](_0xad467['query']['sort']);_0x16e14b[_0x5607('0x3c')]=qs[_0x5607('0x33')](_[_0x5607('0x4f')](_0xad467[_0x5607('0x32')],_0x31a829[_0x5607('0x33')]));if(_0xad467['query']['filter']){_0x16e14b[_0x5607('0x3c')]=_[_0x5607('0x3b')](_0x16e14b[_0x5607('0x3c')],{'$or':_[_0x5607('0x6d')](_0x16e14b['attributes'],function(_0x7b082a){var _0x5e1f4d={};_0x5e1f4d[_0x7b082a]={'$like':'%'+_0xad467[_0x5607('0x32')][_0x5607('0x3d')]+'%'};return _0x5e1f4d;})});}_0x16e14b=_[_0x5607('0x3b')]({},_0x16e14b,_0xad467['options']);return _0x36b0e2[_0x5607('0x6b')](_0x16e14b);}})[_0x5607('0x26')](function(_0x22bdbb){if(_0x22bdbb){_0x14c84f=_0x22bdbb[_0x5607('0x42')];if(!_0xad467[_0x5607('0x32')][_0x5607('0x37')](_0x5607('0x6e'))){_0x16e14b['limit']=qs['limit'](_0xad467['query'][_0x5607('0x1e')]);_0x16e14b[_0x5607('0x1d')]=qs['offset'](_0xad467['query'][_0x5607('0x1d')]);}return _0x36b0e2[_0x5607('0x6b')](_0x16e14b);}})['then'](function(_0x146aa3){if(_0x146aa3){return _0x146aa3?{'count':_0x14c84f,'rows':_0x146aa3}:null;}})['then'](respondWithResult(_0x1e9af2,null))[_0x5607('0x41')](handleError(_0x1e9af2,null));};
\ No newline at end of file
+var _0x658b=['sms','fax','openchannel','addAgents','User','loginInPause','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','omit','spread','emit','userTeam:save','removeAgents','chat','mail','userTeam:remove','getAgents','map','hasOwnProperty','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','desk.js','papaparse','ioredis','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','stack','name','send','index','Team','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','add','day','filter','merge','includeAll','findAll','rows','catch','show','include','options','create','body','update','find','params','getQueues','findOne','channel','Sequelize','ValidationError','capitalize','Queue','get','toLowerCase','addQueues','isValidChannel','Queues','removeQueues','Unknown\x20channel','remove','ids','each','voice'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x658b,0x177));var _0xb658=function(_0x275939,_0x3345f9){_0x275939=_0x275939-0x0;var _0x2e6902=_0x658b[_0x275939];return _0x2e6902;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb658('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb658('0x1'));var jsonpatch=require(_0xb658('0x2'));var rp=require(_0xb658('0x3'));var moment=require('moment');var BPromise=require(_0xb658('0x4'));var Mustache=require(_0xb658('0x5'));var util=require(_0xb658('0x6'));var path=require('path');var sox=require(_0xb658('0x7'));var csv=require(_0xb658('0x8'));var ejs=require(_0xb658('0x9'));var fs=require('fs');var _=require(_0xb658('0xa'));var squel=require(_0xb658('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb658('0xc'));var toCsv=require(_0xb658('0x8'));var querystring=require('querystring');var Papa=require(_0xb658('0xd'));var Redis=require(_0xb658('0xe'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xb658('0xf'));var utils=require(_0xb658('0x10'));var config=require(_0xb658('0x11'));var db=require(_0xb658('0x12'))['db'];config[_0xb658('0x13')]=_[_0xb658('0x14')](config[_0xb658('0x13')],{'host':_0xb658('0x15'),'port':0x18eb});var socket=require(_0xb658('0x16'))(new Redis(config[_0xb658('0x13')]));require(_0xb658('0x17'))['register'](socket);function respondWithStatusCode(_0x33c574,_0x5a12bd){_0x5a12bd=_0x5a12bd||0xcc;return function(_0x4e590a){if(_0x4e590a){return _0x33c574[_0xb658('0x18')](_0x5a12bd);}return _0x33c574[_0xb658('0x19')](_0x5a12bd)[_0xb658('0x1a')]();};}function respondWithResult(_0x299f9e,_0x4cfe03){_0x4cfe03=_0x4cfe03||0xc8;return function(_0x3c5cf0){if(_0x3c5cf0){return _0x299f9e[_0xb658('0x19')](_0x4cfe03)[_0xb658('0x1b')](_0x3c5cf0);}};}function respondWithFilteredResult(_0xfc9748,_0x50afe0){return function(_0x6304d3){if(_0x6304d3){var _0x1a8c0e=_0x6304d3[_0xb658('0x1c')],_0x1b2f11=_0x50afe0[_0xb658('0x1d')],_0x51abdc=_0x50afe0[_0xb658('0x1d')]+_0x50afe0[_0xb658('0x1e')],_0x263b08;if(_0x51abdc>=_0x1a8c0e){_0x51abdc=_0x1a8c0e;_0x263b08=0xc8;}else{_0x263b08=0xce;}_0xfc9748['status'](_0x263b08);return _0xfc9748[_0xb658('0x1f')](_0xb658('0x20'),_0x1b2f11+'-'+_0x51abdc+'/'+_0x1a8c0e)[_0xb658('0x1b')](_0x6304d3);}return null;};}function patchUpdates(_0x2c2262){return function(_0x2502a6){try{jsonpatch[_0xb658('0x21')](_0x2502a6,_0x2c2262,!![]);}catch(_0x332cf2){return BPromise[_0xb658('0x22')](_0x332cf2);}return _0x2502a6[_0xb658('0x23')]();};}function saveUpdates(_0x463b05,_0xae2dc7){return function(_0x81093d){if(_0x81093d){return _0x81093d['update'](_0x463b05)[_0xb658('0x24')](function(_0x504d7e){return _0x504d7e;});}return null;};}function removeEntity(_0x226a99,_0x1ec8c0){return function(_0x5105ac){if(_0x5105ac){return _0x5105ac[_0xb658('0x25')]()[_0xb658('0x24')](function(){_0x226a99[_0xb658('0x19')](0xcc)[_0xb658('0x1a')]();});}};}function handleEntityNotFound(_0x1efb9d,_0x3efa20){return function(_0x55b3c5){if(!_0x55b3c5){_0x1efb9d['sendStatus'](0x194);}return _0x55b3c5;};}function handleError(_0x5a3ea2,_0x2e674a){_0x2e674a=_0x2e674a||0x1f4;return function(_0xfca275){logger['error'](_0xfca275[_0xb658('0x26')]);if(_0xfca275[_0xb658('0x27')]){delete _0xfca275['name'];}_0x5a3ea2[_0xb658('0x19')](_0x2e674a)[_0xb658('0x28')](_0xfca275);};}exports[_0xb658('0x29')]=function(_0x4864a5,_0x4405ad){var _0x560058={},_0x2900b2={},_0x37e201={'count':0x0,'rows':[]};var _0x115b94=db[_0xb658('0x2a')][_0xb658('0x2b')];_0x2900b2[_0xb658('0x2c')]=_[_0xb658('0x2d')](_0x115b94);var _0x59d52b={'dateStart':_0x4864a5[_0xb658('0x2e')][_0xb658('0x2f')],'dateEnd':_0x4864a5[_0xb658('0x2e')][_0xb658('0x30')]};delete _0x4864a5['query'][_0xb658('0x2f')];delete _0x4864a5[_0xb658('0x2e')][_0xb658('0x30')];_0x2900b2[_0xb658('0x2e')]=_[_0xb658('0x2d')](_0x4864a5[_0xb658('0x2e')]);_0x2900b2[_0xb658('0x31')]=_[_0xb658('0x32')](_0x2900b2[_0xb658('0x2c')],_0x2900b2[_0xb658('0x2e')]);_0x560058['attributes']=_['intersection'](_0x2900b2['model'],qs[_0xb658('0x33')](_0x4864a5[_0xb658('0x2e')][_0xb658('0x33')]));_0x560058['attributes']=_0x560058[_0xb658('0x34')][_0xb658('0x35')]?_0x560058['attributes']:_0x2900b2[_0xb658('0x2c')];if(!_0x4864a5['query']['hasOwnProperty'](_0xb658('0x36'))){_0x560058[_0xb658('0x1e')]=qs[_0xb658('0x1e')](_0x4864a5[_0xb658('0x2e')][_0xb658('0x1e')]);_0x560058[_0xb658('0x1d')]=qs[_0xb658('0x1d')](_0x4864a5[_0xb658('0x2e')][_0xb658('0x1d')]);}_0x560058[_0xb658('0x37')]=qs[_0xb658('0x38')](_0x4864a5['query']['sort']);_0x560058[_0xb658('0x39')]=qs['filters'](_[_0xb658('0x3a')](_0x4864a5[_0xb658('0x2e')],_0x2900b2['filters']));if(_0x59d52b['dateStart']){if(_0x59d52b['dateEnd']){_0x59d52b[_0xb658('0x30')]=moment(_0x59d52b['dateEnd'])[_0xb658('0x3b')](0x1,_0xb658('0x3c'));}else{_0x59d52b['dateEnd']=moment(_0x59d52b[_0xb658('0x2f')])[_0xb658('0x3b')](0x1,_0xb658('0x3c'));}_['merge'](_0x560058[_0xb658('0x39')],{'createdAt':{'$gte':_0x59d52b[_0xb658('0x2f')],'$lte':_0x59d52b[_0xb658('0x30')]}});}if(_0x4864a5[_0xb658('0x2e')][_0xb658('0x3d')]){_0x560058[_0xb658('0x39')]=_[_0xb658('0x3e')](_0x560058[_0xb658('0x39')],{'$or':_['map'](_0x560058[_0xb658('0x34')],function(_0x42962c){var _0x4b35fc={};_0x4b35fc[_0x42962c]={'$like':'%'+_0x4864a5[_0xb658('0x2e')][_0xb658('0x3d')]+'%'};return _0x4b35fc;})});}_0x560058=_['merge']({},_0x560058,_0x4864a5['options']);var _0x2aaf7c={'where':_0x560058[_0xb658('0x39')]};return db[_0xb658('0x2a')][_0xb658('0x1c')](_0x2aaf7c)[_0xb658('0x24')](function(_0x2a498e){_0x37e201[_0xb658('0x1c')]=_0x2a498e;if(_0x4864a5[_0xb658('0x2e')][_0xb658('0x3f')]){_0x560058['include']=[{'all':!![]}];}return db[_0xb658('0x2a')][_0xb658('0x40')](_0x560058);})[_0xb658('0x24')](function(_0x2c78ee){_0x37e201[_0xb658('0x41')]=_0x2c78ee;return _0x37e201;})[_0xb658('0x24')](respondWithFilteredResult(_0x4405ad,_0x560058))[_0xb658('0x42')](handleError(_0x4405ad,null));};exports[_0xb658('0x43')]=function(_0x4eb409,_0x75b13){var _0x508f7c={'raw':![],'where':{'id':_0x4eb409['params']['id']}},_0x113e86={};_0x113e86[_0xb658('0x2c')]=_[_0xb658('0x2d')](db[_0xb658('0x2a')]['rawAttributes']);_0x113e86[_0xb658('0x2e')]=_['keys'](_0x4eb409[_0xb658('0x2e')]);_0x113e86[_0xb658('0x31')]=_[_0xb658('0x32')](_0x113e86[_0xb658('0x2c')],_0x113e86[_0xb658('0x2e')]);_0x508f7c['attributes']=_[_0xb658('0x32')](_0x113e86[_0xb658('0x2c')],qs[_0xb658('0x33')](_0x4eb409['query']['fields']));_0x508f7c[_0xb658('0x34')]=_0x508f7c[_0xb658('0x34')]['length']?_0x508f7c['attributes']:_0x113e86[_0xb658('0x2c')];if(_0x4eb409[_0xb658('0x2e')][_0xb658('0x3f')]){_0x508f7c[_0xb658('0x44')]=[{'all':!![]}];}_0x508f7c=_[_0xb658('0x3e')]({},_0x508f7c,_0x4eb409[_0xb658('0x45')]);return db['Team']['find'](_0x508f7c)[_0xb658('0x24')](handleEntityNotFound(_0x75b13,null))[_0xb658('0x24')](respondWithResult(_0x75b13,null))[_0xb658('0x42')](handleError(_0x75b13,null));};exports[_0xb658('0x46')]=function(_0xe955be,_0x2aaccf){return db[_0xb658('0x2a')][_0xb658('0x46')](_0xe955be[_0xb658('0x47')],{})[_0xb658('0x24')](respondWithResult(_0x2aaccf,0xc9))[_0xb658('0x42')](handleError(_0x2aaccf,null));};exports[_0xb658('0x48')]=function(_0x416f9c,_0xc0f85){if(_0x416f9c[_0xb658('0x47')]['id']){delete _0x416f9c[_0xb658('0x47')]['id'];}return db['Team'][_0xb658('0x49')]({'where':{'id':_0x416f9c[_0xb658('0x4a')]['id']}})[_0xb658('0x24')](handleEntityNotFound(_0xc0f85,null))[_0xb658('0x24')](saveUpdates(_0x416f9c[_0xb658('0x47')],null))['then'](respondWithResult(_0xc0f85,null))[_0xb658('0x42')](handleError(_0xc0f85,null));};exports[_0xb658('0x25')]=function(_0x469534,_0x19a0b5){return db[_0xb658('0x2a')][_0xb658('0x49')]({'where':{'id':_0x469534['params']['id']}})[_0xb658('0x24')](handleEntityNotFound(_0x19a0b5,null))[_0xb658('0x24')](removeEntity(_0x19a0b5,null))['catch'](handleError(_0x19a0b5,null));};exports[_0xb658('0x4b')]=function(_0x2663ed,_0x3d7a6f,_0x557527){return db['Team'][_0xb658('0x4c')]({'where':{'id':_0x2663ed[_0xb658('0x4a')]['id']}})[_0xb658('0x24')](handleEntityNotFound(_0x3d7a6f,null))[_0xb658('0x24')](function(_0x280bbb){if(!_0x2663ed[_0xb658('0x2e')][_0xb658('0x4d')]||!utils['isValidChannel'](_0x2663ed[_0xb658('0x2e')][_0xb658('0x4d')])){throw new db[(_0xb658('0x4e'))][(_0xb658('0x4f'))]('Unknown\x20channel');}var _0x3e2087={};var _0x3e9ce4={};_0x3e9ce4[_0xb658('0x2c')]=_[_0xb658('0x2d')](db[_[_0xb658('0x50')](_0x2663ed[_0xb658('0x2e')][_0xb658('0x4d')]['toLowerCase']())+_0xb658('0x51')][_0xb658('0x2b')]);_0x3e9ce4['query']=_[_0xb658('0x2d')](_0x2663ed[_0xb658('0x2e')]);_0x3e9ce4[_0xb658('0x31')]=_['intersection'](_0x3e9ce4['model'],_0x3e9ce4[_0xb658('0x2e')]);_0x3e2087[_0xb658('0x34')]=_['intersection'](_0x3e9ce4['model'],qs[_0xb658('0x33')](_0x2663ed[_0xb658('0x2e')][_0xb658('0x33')]));_0x3e2087[_0xb658('0x34')]=_0x3e2087[_0xb658('0x34')][_0xb658('0x35')]?_0x3e2087[_0xb658('0x34')]:_0x3e9ce4[_0xb658('0x2c')];_0x3e2087['limit']=qs[_0xb658('0x1e')](_0x2663ed['query'][_0xb658('0x1e')]);_0x3e2087[_0xb658('0x1d')]=qs[_0xb658('0x1d')](_0x2663ed['query'][_0xb658('0x1d')]);_0x3e2087['order']=qs[_0xb658('0x38')](_0x2663ed[_0xb658('0x2e')][_0xb658('0x38')]);_0x3e2087[_0xb658('0x39')]=qs['filters'](_['pick'](_0x2663ed[_0xb658('0x2e')],_0x3e9ce4[_0xb658('0x31')]));_0x3e2087=_['merge']({},_0x3e2087,_0x2663ed[_0xb658('0x45')]);return _0x280bbb[_0xb658('0x52')+_[_0xb658('0x50')](_0x2663ed['query']['channel'][_0xb658('0x53')]())+'Queues'](_0x3e2087);})[_0xb658('0x24')](respondWithResult(_0x3d7a6f,null))['catch'](handleError(_0x3d7a6f,null));};exports[_0xb658('0x54')]=function(_0x195b47,_0xedd127,_0x396b31){return db['Team'][_0xb658('0x4c')]({'where':{'id':_0x195b47[_0xb658('0x4a')]['id']}})[_0xb658('0x24')](function(_0x3f0513){if(_0x3f0513){if(!_0x195b47['body']['channel']||!utils[_0xb658('0x55')](_0x195b47[_0xb658('0x47')][_0xb658('0x4d')])){throw new db[(_0xb658('0x4e'))][(_0xb658('0x4f'))]('Unknown\x20channel');}return _0x3f0513[_0xb658('0x3b')+_['capitalize'](_0x195b47[_0xb658('0x47')][_0xb658('0x4d')][_0xb658('0x53')]())+_0xb658('0x56')](_0x195b47[_0xb658('0x47')]['ids']);}return null;})[_0xb658('0x24')](handleEntityNotFound(_0xedd127,null))[_0xb658('0x24')](respondWithStatusCode(_0xedd127,null))[_0xb658('0x42')](handleError(_0xedd127,null));};exports[_0xb658('0x57')]=function(_0x121b17,_0x2494ca,_0x31618a){return db[_0xb658('0x2a')][_0xb658('0x4c')]({'where':{'id':_0x121b17[_0xb658('0x4a')]['id']}})[_0xb658('0x24')](function(_0x1f2e84){if(_0x1f2e84){if(!_0x121b17[_0xb658('0x2e')][_0xb658('0x4d')]||!utils[_0xb658('0x55')](_0x121b17['query']['channel'])){throw new db['Sequelize'][(_0xb658('0x4f'))](_0xb658('0x58'));}return _0x1f2e84[_0xb658('0x59')+_['capitalize'](_0x121b17[_0xb658('0x2e')]['channel'][_0xb658('0x53')]())+_0xb658('0x56')](_0x121b17[_0xb658('0x2e')][_0xb658('0x5a')]);}return null;})[_0xb658('0x24')](handleEntityNotFound(_0x2494ca,null))[_0xb658('0x24')](respondWithStatusCode(_0x2494ca,null))[_0xb658('0x42')](handleError(_0x2494ca,null));};exports['addAgents']=function(_0xe2baa7,_0x34265d,_0x10e294){return db[_0xb658('0x2a')][_0xb658('0x49')]({'where':{'id':_0xe2baa7[_0xb658('0x4a')]['id']}})['then'](handleEntityNotFound(_0x34265d,null))[_0xb658('0x24')](function(_0x3a78a4){if(_0x3a78a4){return BPromise[_0xb658('0x5b')]([_0xb658('0x5c'),'chat','mail',_0xb658('0x5d'),_0xb658('0x5e'),_0xb658('0x5f')],function(_0x273f5){return _0x3a78a4[_0xb658('0x52')+_[_0xb658('0x50')](_0x273f5)+_0xb658('0x56')]({'attributes':['id',_0xb658('0x27')]})['then'](function(_0x31446e){return BPromise[_0xb658('0x5b')](_0x31446e,function(_0x5b8132){return _0x5b8132[_0xb658('0x60')](_0xe2baa7['body'][_0xb658('0x5a')])[_0xb658('0x24')](function(){if(_0x273f5==='voice'){return db[_0xb658('0x61')][_0xb658('0x40')]({'where':{'id':_0xe2baa7[_0xb658('0x47')][_0xb658('0x5a')]},'attributes':['id','name',_0xb658('0x62'),_0xb658('0x63'),_0xb658('0x64')],'raw':!![]});}})[_0xb658('0x24')](function(_0x306387){if(_0x273f5==='voice'){return BPromise[_0xb658('0x5b')](_0x306387,function(_0xab165c){return db[_0xb658('0x65')][_0xb658('0x66')]({'membername':_0xab165c['name'],'UserId':_0xab165c['id'],'queue_name':_0x5b8132[_0xb658('0x27')],'VoiceQueueId':_0x5b8132['id'],'interface':_[_0xb658('0x67')](_0xab165c[_0xb658('0x64')])?util[_0xb658('0x68')](_0xb658('0x69'),_0xab165c[_0xb658('0x27')]):_0xab165c[_0xb658('0x64')],'paused':_0xab165c[_0xb658('0x63')]||![],'penalty':0x0});});}});});})[_0xb658('0x24')](function(){return _0x3a78a4;});})['then'](function(){return _0x3a78a4;});}})[_0xb658('0x24')](function(_0x59fe11){if(_0x59fe11){return _0x59fe11['addAgents'](_0xe2baa7['body'][_0xb658('0x5a')],_[_0xb658('0x6a')](_0xe2baa7['body'],[_0xb658('0x5a'),'id'])||{})[_0xb658('0x6b')](function(_0x4b88d8){for(var _0x301ff4=0x0;_0x301ff4<_0xe2baa7[_0xb658('0x47')][_0xb658('0x5a')][_0xb658('0x35')];_0x301ff4+=0x1){socket[_0xb658('0x6c')](_0xb658('0x6d'),{'UserId':_0xe2baa7[_0xb658('0x47')][_0xb658('0x5a')][_0x301ff4],'TeamId':_0xe2baa7[_0xb658('0x4a')]['id']});}return _0x4b88d8;});}})[_0xb658('0x24')](respondWithResult(_0x34265d,null))[_0xb658('0x42')](handleError(_0x34265d,null));};exports[_0xb658('0x6e')]=function(_0x4d188f,_0x45dd1a,_0x3bca6b){var _0x50d548;return db[_0xb658('0x2a')][_0xb658('0x49')]({'where':{'id':_0x4d188f[_0xb658('0x4a')]['id']}})['then'](handleEntityNotFound(_0x45dd1a,null))[_0xb658('0x24')](function(_0x2e47ba){if(_0x2e47ba){return BPromise['each']([_0xb658('0x5c'),_0xb658('0x6f'),_0xb658('0x70'),_0xb658('0x5d'),_0xb658('0x5e'),_0xb658('0x5f')],function(_0x34c692){return _0x2e47ba[_0xb658('0x52')+_[_0xb658('0x50')](_0x34c692)+_0xb658('0x56')]({'attributes':['id',_0xb658('0x27')]})['then'](function(_0x2d7ade){return BPromise[_0xb658('0x5b')](_0x2d7ade,function(_0x1159c4){return _0x1159c4['removeAgents'](_0x4d188f['query'][_0xb658('0x5a')])[_0xb658('0x24')](function(){if(_0x34c692===_0xb658('0x5c')){return db[_0xb658('0x65')]['destroy']({'where':{'VoiceQueueId':_0x1159c4['id'],'UserId':_0x4d188f[_0xb658('0x2e')][_0xb658('0x5a')]}});}});});})['then'](function(){return _0x2e47ba;});})['then'](function(){return _0x2e47ba;});}})[_0xb658('0x24')](function(_0x2883fe){if(_0x2883fe){return _0x2883fe[_0xb658('0x6e')](_0x4d188f['query'][_0xb658('0x5a')])[_0xb658('0x24')](function(_0x314ea3){if(_['isArray'](_0x4d188f[_0xb658('0x2e')][_0xb658('0x5a')])){for(var _0x11a4c3=0x0;_0x11a4c3<_0x4d188f[_0xb658('0x2e')][_0xb658('0x5a')][_0xb658('0x35')];_0x11a4c3+=0x1){socket[_0xb658('0x6c')](_0xb658('0x71'),{'UserId':_0x4d188f[_0xb658('0x2e')]['ids'][_0x11a4c3],'TeamId':_0x4d188f[_0xb658('0x4a')]['id']});}}else{socket['emit']('userTeam:remove',{'UserId':_0x4d188f[_0xb658('0x2e')][_0xb658('0x5a')],'TeamId':_0x4d188f['params']['id']});}});}})[_0xb658('0x24')](respondWithStatusCode(_0x45dd1a,null))[_0xb658('0x42')](handleError(_0x45dd1a,null));};exports[_0xb658('0x72')]=function(_0x3c9aa9,_0x2e9289,_0x126bd1){var _0x3047c2={};var _0x425172={};var _0x24e99d;var _0x1194c0;return db['Team'][_0xb658('0x4c')]({'where':{'id':_0x3c9aa9['params']['id']}})['then'](handleEntityNotFound(_0x2e9289,null))[_0xb658('0x24')](function(_0x53a520){if(_0x53a520){_0x24e99d=_0x53a520;_0x425172[_0xb658('0x2c')]=_[_0xb658('0x2d')](db[_0xb658('0x61')][_0xb658('0x2b')]);_0x425172[_0xb658('0x2e')]=_[_0xb658('0x2d')](_0x3c9aa9['query']);_0x425172['filters']=_[_0xb658('0x32')](_0x425172['model'],_0x425172[_0xb658('0x2e')]);_0x3047c2[_0xb658('0x34')]=_[_0xb658('0x32')](_0x425172[_0xb658('0x2c')],qs[_0xb658('0x33')](_0x3c9aa9[_0xb658('0x2e')][_0xb658('0x33')]));_0x3047c2[_0xb658('0x34')]=_0x3047c2[_0xb658('0x34')][_0xb658('0x35')]?_0x3047c2['attributes']:_0x425172[_0xb658('0x2c')];_0x3047c2[_0xb658('0x37')]=qs[_0xb658('0x38')](_0x3c9aa9['query'][_0xb658('0x38')]);_0x3047c2[_0xb658('0x39')]=qs['filters'](_[_0xb658('0x3a')](_0x3c9aa9[_0xb658('0x2e')],_0x425172['filters']));if(_0x3c9aa9[_0xb658('0x2e')]['filter']){_0x3047c2[_0xb658('0x39')]=_[_0xb658('0x3e')](_0x3047c2[_0xb658('0x39')],{'$or':_[_0xb658('0x73')](_0x3047c2[_0xb658('0x34')],function(_0x3c8fcb){var _0xd920b8={};_0xd920b8[_0x3c8fcb]={'$like':'%'+_0x3c9aa9[_0xb658('0x2e')]['filter']+'%'};return _0xd920b8;})});}_0x3047c2=_[_0xb658('0x3e')]({},_0x3047c2,_0x3c9aa9[_0xb658('0x45')]);return _0x24e99d['getAgents'](_0x3047c2);}})[_0xb658('0x24')](function(_0x219f42){if(_0x219f42){_0x1194c0=_0x219f42[_0xb658('0x35')];if(!_0x3c9aa9[_0xb658('0x2e')][_0xb658('0x74')](_0xb658('0x36'))){_0x3047c2[_0xb658('0x1e')]=qs[_0xb658('0x1e')](_0x3c9aa9[_0xb658('0x2e')][_0xb658('0x1e')]);_0x3047c2[_0xb658('0x1d')]=qs['offset'](_0x3c9aa9[_0xb658('0x2e')][_0xb658('0x1d')]);}return _0x24e99d[_0xb658('0x72')](_0x3047c2);}})['then'](function(_0x8b4b17){if(_0x8b4b17){return _0x8b4b17?{'count':_0x1194c0,'rows':_0x8b4b17}:null;}})[_0xb658('0x24')](respondWithResult(_0x2e9289,null))[_0xb658('0x42')](handleError(_0x2e9289,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f78=['setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','Team'];(function(_0x32edb1,_0x48e30e){var _0x390a30=function(_0x4960d0){while(--_0x4960d0){_0x32edb1['push'](_0x32edb1['shift']());}};_0x390a30(++_0x48e30e);}(_0x6f78,0x89));var _0x86f7=function(_0xa6df71,_0x584460){_0xa6df71=_0xa6df71-0x0;var _0xfe2f23=_0x6f78[_0xa6df71];return _0xfe2f23;};'use strict';var EventEmitter=require(_0x86f7('0x0'));var Team=require(_0x86f7('0x1'))['db'][_0x86f7('0x2')];var TeamEvents=new EventEmitter();TeamEvents[_0x86f7('0x3')](0x0);var events={'afterCreate':_0x86f7('0x4'),'afterUpdate':'update','afterDestroy':_0x86f7('0x5')};function emitEvent(_0x5f20b8){return function(_0x550fe7,_0x1127b1,_0x1cd41d){TeamEvents['emit'](_0x5f20b8+':'+_0x550fe7['id'],_0x550fe7);TeamEvents[_0x86f7('0x6')](_0x5f20b8,_0x550fe7);_0x1cd41d(null);};}for(var e in events){if(events[_0x86f7('0x7')](e)){var event=events[e];Team[_0x86f7('0x8')](e,emitEvent(event));}}module[_0x86f7('0x9')]=TeamEvents;
\ No newline at end of file
+var _0x0c9f=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','Team','setMaxListeners','save'];(function(_0x530245,_0x1541ab){var _0x22506d=function(_0x395400){while(--_0x395400){_0x530245['push'](_0x530245['shift']());}};_0x22506d(++_0x1541ab);}(_0x0c9f,0x69));var _0xf0c9=function(_0x2362e7,_0x5582c5){_0x2362e7=_0x2362e7-0x0;var _0x53b1ca=_0x0c9f[_0x2362e7];return _0x53b1ca;};'use strict';var EventEmitter=require(_0xf0c9('0x0'));var Team=require(_0xf0c9('0x1'))['db'][_0xf0c9('0x2')];var TeamEvents=new EventEmitter();TeamEvents[_0xf0c9('0x3')](0x0);var events={'afterCreate':_0xf0c9('0x4'),'afterUpdate':'update','afterDestroy':_0xf0c9('0x5')};function emitEvent(_0x4f644b){return function(_0x4d6b62,_0x48ce7d,_0x267e0c){TeamEvents['emit'](_0x4f644b+':'+_0x4d6b62['id'],_0x4d6b62);TeamEvents[_0xf0c9('0x6')](_0x4f644b,_0x4d6b62);_0x267e0c(null);};}for(var e in events){if(events[_0xf0c9('0x7')](e)){var event=events[e];Team[_0xf0c9('0x8')](e,emitEvent(event));}}module[_0xf0c9('0x9')]=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['moment','./team.attributes','define','Team','teams','lodash','../../config/logger','api'];(function(_0xc69182,_0x2a9b69){var _0x422649=function(_0x1ec0dc){while(--_0x1ec0dc){_0xc69182['push'](_0xc69182['shift']());}};_0x422649(++_0x2a9b69);}(_0x3e74,0x175));var _0x43e7=function(_0x3c0fa1,_0x1fc84d){_0x3c0fa1=_0x3c0fa1-0x0;var _0xcd8598=_0x3e74[_0x3c0fa1];return _0xcd8598;};'use strict';var _=require(_0x43e7('0x0'));var util=require('util');var logger=require(_0x43e7('0x1'))(_0x43e7('0x2'));var moment=require(_0x43e7('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x43e7('0x4'));module['exports']=function(_0x128b0f,_0xe838b4){return _0x128b0f[_0x43e7('0x5')](_0x43e7('0x6'),attributes,{'tableName':_0x43e7('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x70e0=['./team.attributes','exports','Team','lodash','util','../../config/logger','bluebird','request-promise'];(function(_0x1f417a,_0xa95e22){var _0x29c6e2=function(_0x2654fd){while(--_0x2654fd){_0x1f417a['push'](_0x1f417a['shift']());}};_0x29c6e2(++_0xa95e22);}(_0x70e0,0x17b));var _0x070e=function(_0x42c26a,_0x1b4d5a){_0x42c26a=_0x42c26a-0x0;var _0x5b6794=_0x70e0[_0x42c26a];return _0x5b6794;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var logger=require(_0x070e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x070e('0x3'));var rp=require(_0x070e('0x4'));var attributes=require(_0x070e('0x5'));module[_0x070e('0x6')]=function(_0x5c90fc,_0x7bce9b){return _0x5c90fc['define'](_0x070e('0x7'),attributes,{'tableName':'teams','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1be2=['../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./team.socket','request','then','info','debug','Team,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Team,\x20%s,\x20%s','message','result','util','moment','../../mysqldb','../../config/utils','rpc'];(function(_0xf568da,_0x12f676){var _0x4c13a7=function(_0x281ac6){while(--_0x281ac6){_0xf568da['push'](_0xf568da['shift']());}};_0x4c13a7(++_0x12f676);}(_0x1be2,0xdc));var _0x21be=function(_0x4085bf,_0x46ee85){_0x4085bf=_0x4085bf-0x0;var _0x319f14=_0x1be2[_0x4085bf];return _0x319f14;};'use strict';var _=require('lodash');var util=require(_0x21be('0x0'));var moment=require(_0x21be('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require(_0x21be('0x2'))['db'];var utils=require(_0x21be('0x3'));var logger=require('../../config/logger')(_0x21be('0x4'));var config=require(_0x21be('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x21be('0x6')][_0x21be('0x7')]({'port':0x232a});config[_0x21be('0x8')]=_[_0x21be('0x9')](config['redis'],{'host':_0x21be('0xa'),'port':0x18eb});var socket=require(_0x21be('0xb'))(config[_0x21be('0x8')]);require(_0x21be('0xc'))['register'](socket);function respondWithRpcPromise(_0x364ed9,_0x8b6a2b,_0x6a092d){return new BPromise(function(_0x1d6614,_0x4632dd){return client[_0x21be('0xd')](_0x364ed9,_0x6a092d)[_0x21be('0xe')](function(_0x4196b8){logger[_0x21be('0xf')]('Team,\x20%s,\x20%s',_0x8b6a2b,'request\x20sent');logger[_0x21be('0x10')](_0x21be('0x11'),_0x8b6a2b,_0x21be('0x12'),JSON[_0x21be('0x13')](_0x4196b8));if(_0x4196b8[_0x21be('0x14')]){if(_0x4196b8['error'][_0x21be('0x15')]===0x1f4){logger['error'](_0x21be('0x16'),_0x8b6a2b,_0x4196b8[_0x21be('0x14')][_0x21be('0x17')]);return _0x4632dd(_0x4196b8[_0x21be('0x14')][_0x21be('0x17')]);}logger[_0x21be('0x14')]('Team,\x20%s,\x20%s',_0x8b6a2b,_0x4196b8[_0x21be('0x14')][_0x21be('0x17')]);return _0x1d6614(_0x4196b8['error'][_0x21be('0x17')]);}else{logger['info'](_0x21be('0x16'),_0x8b6a2b,_0x21be('0x12'));_0x1d6614(_0x4196b8[_0x21be('0x18')]['message']);}})['catch'](function(_0x5c4478){logger['error'](_0x21be('0x16'),_0x8b6a2b,_0x5c4478);_0x4632dd(_0x5c4478);});});}
\ No newline at end of file
+var _0x967f=['message','Team,\x20%s,\x20%s','result','lodash','util','moment','bluebird','ioredis','../../config/utils','jayson/promise','http','defaults','localhost','register','request','then','info','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x4b2863,_0x494899){var _0x567d67=function(_0x751f03){while(--_0x751f03){_0x4b2863['push'](_0x4b2863['shift']());}};_0x567d67(++_0x494899);}(_0x967f,0xf5));var _0xf967=function(_0x4937b1,_0x2a6595){_0x4937b1=_0x4937b1-0x0;var _0x46d0ea=_0x967f[_0x4937b1];return _0x46d0ea;};'use strict';var _=require(_0xf967('0x0'));var util=require(_0xf967('0x1'));var moment=require(_0xf967('0x2'));var BPromise=require(_0xf967('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf967('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xf967('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xf967('0x6'));var client=jayson['client'][_0xf967('0x7')]({'port':0x232a});config['redis']=_[_0xf967('0x8')](config['redis'],{'host':_0xf967('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./team.socket')[_0xf967('0xa')](socket);function respondWithRpcPromise(_0x1b13ff,_0x14fd32,_0xf6e214){return new BPromise(function(_0x14cd4a,_0x22358d){return client[_0xf967('0xb')](_0x1b13ff,_0xf6e214)[_0xf967('0xc')](function(_0x5dc3ff){logger[_0xf967('0xd')]('Team,\x20%s,\x20%s',_0x14fd32,_0xf967('0xe'));logger[_0xf967('0xf')](_0xf967('0x10'),_0x14fd32,_0xf967('0xe'),JSON[_0xf967('0x11')](_0x5dc3ff));if(_0x5dc3ff['error']){if(_0x5dc3ff[_0xf967('0x12')]['code']===0x1f4){logger['error']('Team,\x20%s,\x20%s',_0x14fd32,_0x5dc3ff[_0xf967('0x12')][_0xf967('0x13')]);return _0x22358d(_0x5dc3ff[_0xf967('0x12')][_0xf967('0x13')]);}logger['error'](_0xf967('0x14'),_0x14fd32,_0x5dc3ff['error'][_0xf967('0x13')]);return _0x14cd4a(_0x5dc3ff[_0xf967('0x12')][_0xf967('0x13')]);}else{logger[_0xf967('0xd')](_0xf967('0x14'),_0x14fd32,'request\x20sent');_0x14cd4a(_0x5dc3ff[_0xf967('0x15')][_0xf967('0x13')]);}})['catch'](function(_0x5552ca){logger[_0xf967('0x12')](_0xf967('0x14'),_0x14fd32,_0x5552ca);_0x22358d(_0x5552ca);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0512=['./team.events','save','remove','register','length'];(function(_0x35af23,_0x9190f6){var _0x340506=function(_0xd4c26b){while(--_0xd4c26b){_0x35af23['push'](_0x35af23['shift']());}};_0x340506(++_0x9190f6);}(_0x0512,0xaa));var _0x2051=function(_0x251dfb,_0x1384f4){_0x251dfb=_0x251dfb-0x0;var _0x3530f5=_0x0512[_0x251dfb];return _0x3530f5;};'use strict';var TeamEvents=require(_0x2051('0x0'));var events=[_0x2051('0x1'),_0x2051('0x2'),'update'];function createListener(_0x39923f,_0x2f4281){return function(_0x450cf0){_0x2f4281['emit'](_0x39923f,_0x450cf0);};}function removeListener(_0x380884,_0x29e949){return function(){TeamEvents['removeListener'](_0x380884,_0x29e949);};}exports[_0x2051('0x3')]=function(_0x5d7cc7){for(var _0x2459d7=0x0,_0x32dba4=events[_0x2051('0x4')];_0x2459d7<_0x32dba4;_0x2459d7++){var _0x13f3fd=events[_0x2459d7];var _0x2db12a=createListener('team:'+_0x13f3fd,_0x5d7cc7);TeamEvents['on'](_0x13f3fd,_0x2db12a);}};
\ No newline at end of file
+var _0x3cf3=['save','update','removeListener','register','length','./team.events'];(function(_0x359349,_0x131c65){var _0x4b4827=function(_0x779681){while(--_0x779681){_0x359349['push'](_0x359349['shift']());}};_0x4b4827(++_0x131c65);}(_0x3cf3,0xcb));var _0x33cf=function(_0x20b10f,_0xc23e9c){_0x20b10f=_0x20b10f-0x0;var _0x279391=_0x3cf3[_0x20b10f];return _0x279391;};'use strict';var TeamEvents=require(_0x33cf('0x0'));var events=[_0x33cf('0x1'),'remove',_0x33cf('0x2')];function createListener(_0x371a6a,_0x369561){return function(_0x58c43a){_0x369561['emit'](_0x371a6a,_0x58c43a);};}function removeListener(_0x13114b,_0x5efd52){return function(){TeamEvents[_0x33cf('0x3')](_0x13114b,_0x5efd52);};}exports[_0x33cf('0x4')]=function(_0x3b7abf){for(var _0x147633=0x0,_0x4cf356=events[_0x33cf('0x5')];_0x147633<_0x4cf356;_0x147633++){var _0x3a75fe=events[_0x147633];var _0x5f31b9=createListener('team:'+_0x3a75fe,_0x3b7abf);TeamEvents['on'](_0x3a75fe,_0x5f31b9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e9d=['index','/:id','show','post','create','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x142020,_0x1f7233){var _0x40da8f=function(_0x17f0a3){while(--_0x17f0a3){_0x142020['push'](_0x142020['shift']());}};_0x40da8f(++_0x1f7233);}(_0x8e9d,0xd2));var _0xd8e9=function(_0x529a36,_0x10aba6){_0x529a36=_0x529a36-0x0;var _0x188026=_0x8e9d[_0x529a36];return _0x188026;};'use strict';var multer=require(_0xd8e9('0x0'));var util=require('util');var path=require(_0xd8e9('0x1'));var timeout=require(_0xd8e9('0x2'));var express=require(_0xd8e9('0x3'));var router=express[_0xd8e9('0x4')]();var auth=require(_0xd8e9('0x5'));var interaction=require(_0xd8e9('0x6'));var config=require(_0xd8e9('0x7'));var controller=require('./template.controller');router[_0xd8e9('0x8')]('/',auth[_0xd8e9('0x9')](),controller[_0xd8e9('0xa')]);router[_0xd8e9('0x8')](_0xd8e9('0xb'),auth[_0xd8e9('0x9')](),controller[_0xd8e9('0xc')]);router[_0xd8e9('0xd')]('/',auth[_0xd8e9('0x9')](),controller[_0xd8e9('0xe')]);router[_0xd8e9('0xf')](_0xd8e9('0xb'),auth[_0xd8e9('0x9')](),controller[_0xd8e9('0x10')]);router[_0xd8e9('0x11')](_0xd8e9('0xb'),auth[_0xd8e9('0x9')](),controller[_0xd8e9('0x12')]);module[_0xd8e9('0x13')]=router;
\ No newline at end of file
+var _0x5302=['update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./template.controller','get','isAuthenticated','index','/:id','post'];(function(_0x82129b,_0x484ae9){var _0x2ae5dc=function(_0x299e34){while(--_0x299e34){_0x82129b['push'](_0x82129b['shift']());}};_0x2ae5dc(++_0x484ae9);}(_0x5302,0xe1));var _0x2530=function(_0x5eee1c,_0x3817d8){_0x5eee1c=_0x5eee1c-0x0;var _0x5f2ea1=_0x5302[_0x5eee1c];return _0x5f2ea1;};'use strict';var multer=require(_0x2530('0x0'));var util=require('util');var path=require(_0x2530('0x1'));var timeout=require(_0x2530('0x2'));var express=require(_0x2530('0x3'));var router=express[_0x2530('0x4')]();var auth=require(_0x2530('0x5'));var interaction=require(_0x2530('0x6'));var config=require('../../config/environment');var controller=require(_0x2530('0x7'));router[_0x2530('0x8')]('/',auth[_0x2530('0x9')](),controller[_0x2530('0xa')]);router['get'](_0x2530('0xb'),auth[_0x2530('0x9')](),controller['show']);router[_0x2530('0xc')]('/',auth[_0x2530('0x9')](),controller['create']);router['put'](_0x2530('0xb'),auth[_0x2530('0x9')](),controller[_0x2530('0xd')]);router[_0x2530('0xe')](_0x2530('0xb'),auth[_0x2530('0x9')](),controller[_0x2530('0xf')]);module[_0x2530('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec06=['exports','STRING','TEXT','sequelize'];(function(_0x3b5ea9,_0x512114){var _0x54cb24=function(_0x273507){while(--_0x273507){_0x3b5ea9['push'](_0x3b5ea9['shift']());}};_0x54cb24(++_0x512114);}(_0xec06,0x83));var _0x6ec0=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xec06[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require(_0x6ec0('0x0'));module[_0x6ec0('0x1')]={'name':{'type':Sequelize[_0x6ec0('0x2')]},'description':{'type':Sequelize['STRING']},'html':{'type':Sequelize[_0x6ec0('0x3')]}};
\ No newline at end of file
+var _0x9370=['exports','STRING','TEXT','sequelize'];(function(_0x2f1762,_0xab43df){var _0x8ab21=function(_0xf6c1f5){while(--_0xf6c1f5){_0x2f1762['push'](_0x2f1762['shift']());}};_0x8ab21(++_0xab43df);}(_0x9370,0x19f));var _0x0937=function(_0x1150d6,_0x2a2909){_0x1150d6=_0x1150d6-0x0;var _0x47c30f=_0x9370[_0x1150d6];return _0x47c30f;};'use strict';var Sequelize=require(_0x0937('0x0'));module[_0x0937('0x1')]={'name':{'type':Sequelize[_0x0937('0x2')]},'description':{'type':Sequelize['STRING']},'html':{'type':Sequelize[_0x0937('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a67=['add','day','merge','filter','map','options','Template','include','findAll','rows','catch','show','params','length','includeAll','find','create','body','then','html-pdf','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','crypto','jsforce','querystring','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','sendStatus','error','stack','send','index','rawAttributes','model','query','dateEnd','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','pick','dateStart'];(function(_0x1b98f2,_0x4185fa){var _0x27c547=function(_0x5cd040){while(--_0x5cd040){_0x1b98f2['push'](_0x1b98f2['shift']());}};_0x27c547(++_0x4185fa);}(_0x0a67,0x12b));var _0x70a6=function(_0x3f2222,_0x48861c){_0x3f2222=_0x3f2222-0x0;var _0x3b9cfb=_0x0a67[_0x3f2222];return _0x3b9cfb;};'use strict';var pdf=require(_0x70a6('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x70a6('0x1'));var zipdir=require(_0x70a6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x70a6('0x3'));var BPromise=require(_0x70a6('0x4'));var Mustache=require(_0x70a6('0x5'));var util=require('util');var path=require(_0x70a6('0x6'));var sox=require(_0x70a6('0x7'));var csv=require(_0x70a6('0x8'));var ejs=require(_0x70a6('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x70a6('0xa'));var jsforce=require(_0x70a6('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x70a6('0x8'));var querystring=require(_0x70a6('0xc'));var Papa=require('papaparse');var qs=require('../../components/parsers/qs');var logger=require(_0x70a6('0xd'))(_0x70a6('0xe'));var utils=require(_0x70a6('0xf'));var config=require(_0x70a6('0x10'));var db=require(_0x70a6('0x11'))['db'];function respondWithStatusCode(_0x23112b,_0x43d6d7){_0x43d6d7=_0x43d6d7||0xcc;return function(_0x252dd6){if(_0x252dd6){return _0x23112b['sendStatus'](_0x43d6d7);}return _0x23112b[_0x70a6('0x12')](_0x43d6d7)[_0x70a6('0x13')]();};}function respondWithResult(_0x15d9e9,_0x26da8f){_0x26da8f=_0x26da8f||0xc8;return function(_0x385e9f){if(_0x385e9f){return _0x15d9e9[_0x70a6('0x12')](_0x26da8f)[_0x70a6('0x14')](_0x385e9f);}};}function respondWithFilteredResult(_0x5815ad,_0x5f52a5){return function(_0x356ef0){if(_0x356ef0){var _0x33bdea=_0x356ef0[_0x70a6('0x15')],_0x308ae0=_0x5f52a5[_0x70a6('0x16')],_0xec4801=_0x5f52a5['offset']+_0x5f52a5[_0x70a6('0x17')],_0x3db682;if(_0xec4801>=_0x33bdea){_0xec4801=_0x33bdea;_0x3db682=0xc8;}else{_0x3db682=0xce;}_0x5815ad[_0x70a6('0x12')](_0x3db682);return _0x5815ad[_0x70a6('0x18')](_0x70a6('0x19'),_0x308ae0+'-'+_0xec4801+'/'+_0x33bdea)['json'](_0x356ef0);}return null;};}function patchUpdates(_0x5e8cd3){return function(_0x26d19d){try{jsonpatch[_0x70a6('0x1a')](_0x26d19d,_0x5e8cd3,!![]);}catch(_0xe5ba8b){return BPromise[_0x70a6('0x1b')](_0xe5ba8b);}return _0x26d19d[_0x70a6('0x1c')]();};}function saveUpdates(_0x44b587,_0x531d1a){return function(_0x3ebeac){if(_0x3ebeac){return _0x3ebeac[_0x70a6('0x1d')](_0x44b587)['then'](function(_0x4c7689){return _0x4c7689;});}return null;};}function removeEntity(_0x552fd8,_0x33b14e){return function(_0x343967){if(_0x343967){return _0x343967[_0x70a6('0x1e')]()['then'](function(){_0x552fd8['status'](0xcc)[_0x70a6('0x13')]();});}};}function handleEntityNotFound(_0x15b9b0,_0x2b2bf4){return function(_0x3269ad){if(!_0x3269ad){_0x15b9b0[_0x70a6('0x1f')](0x194);}return _0x3269ad;};}function handleError(_0x4ede3b,_0x25d9c0){_0x25d9c0=_0x25d9c0||0x1f4;return function(_0x11ff15){logger[_0x70a6('0x20')](_0x11ff15[_0x70a6('0x21')]);if(_0x11ff15['name']){delete _0x11ff15['name'];}_0x4ede3b['status'](_0x25d9c0)[_0x70a6('0x22')](_0x11ff15);};}exports[_0x70a6('0x23')]=function(_0x21c0e5,_0x139fa3){var _0x5eef4e={},_0x668cc1={},_0x39875a={'count':0x0,'rows':[]};var _0x110cbb=db['Template'][_0x70a6('0x24')];_0x668cc1[_0x70a6('0x25')]=_['keys'](_0x110cbb);var _0x13f14d={'dateStart':_0x21c0e5[_0x70a6('0x26')]['dateStart'],'dateEnd':_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x27')]};delete _0x21c0e5[_0x70a6('0x26')]['dateStart'];delete _0x21c0e5[_0x70a6('0x26')][_0x70a6('0x27')];_0x668cc1[_0x70a6('0x26')]=_[_0x70a6('0x28')](_0x21c0e5[_0x70a6('0x26')]);_0x668cc1[_0x70a6('0x29')]=_['intersection'](_0x668cc1['model'],_0x668cc1[_0x70a6('0x26')]);_0x5eef4e[_0x70a6('0x2a')]=_[_0x70a6('0x2b')](_0x668cc1[_0x70a6('0x25')],qs[_0x70a6('0x2c')](_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x2c')]));_0x5eef4e['attributes']=_0x5eef4e[_0x70a6('0x2a')]['length']?_0x5eef4e[_0x70a6('0x2a')]:_0x668cc1[_0x70a6('0x25')];if(!_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x2d')](_0x70a6('0x2e'))){_0x5eef4e[_0x70a6('0x17')]=qs[_0x70a6('0x17')](_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x17')]);_0x5eef4e[_0x70a6('0x16')]=qs['offset'](_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x16')]);}_0x5eef4e['order']=qs[_0x70a6('0x2f')](_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x2f')]);_0x5eef4e[_0x70a6('0x30')]=qs[_0x70a6('0x29')](_[_0x70a6('0x31')](_0x21c0e5[_0x70a6('0x26')],_0x668cc1[_0x70a6('0x29')]));if(_0x13f14d[_0x70a6('0x32')]){if(_0x13f14d['dateEnd']){_0x13f14d[_0x70a6('0x27')]=moment(_0x13f14d[_0x70a6('0x27')])[_0x70a6('0x33')](0x1,_0x70a6('0x34'));}else{_0x13f14d[_0x70a6('0x27')]=moment(_0x13f14d['dateStart'])['add'](0x1,_0x70a6('0x34'));}_[_0x70a6('0x35')](_0x5eef4e[_0x70a6('0x30')],{'createdAt':{'$gte':_0x13f14d[_0x70a6('0x32')],'$lte':_0x13f14d[_0x70a6('0x27')]}});}if(_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x36')]){_0x5eef4e[_0x70a6('0x30')]=_[_0x70a6('0x35')](_0x5eef4e['where'],{'$or':_[_0x70a6('0x37')](_0x5eef4e['attributes'],function(_0x582489){var _0x1ac693={};_0x1ac693[_0x582489]={'$like':'%'+_0x21c0e5[_0x70a6('0x26')][_0x70a6('0x36')]+'%'};return _0x1ac693;})});}_0x5eef4e=_['merge']({},_0x5eef4e,_0x21c0e5[_0x70a6('0x38')]);var _0x375477={'where':_0x5eef4e[_0x70a6('0x30')]};return db[_0x70a6('0x39')][_0x70a6('0x15')](_0x375477)['then'](function(_0xe18b73){_0x39875a[_0x70a6('0x15')]=_0xe18b73;if(_0x21c0e5[_0x70a6('0x26')]['includeAll']){_0x5eef4e[_0x70a6('0x3a')]=[{'all':!![]}];}return db[_0x70a6('0x39')][_0x70a6('0x3b')](_0x5eef4e);})['then'](function(_0x5c6af6){_0x39875a[_0x70a6('0x3c')]=_0x5c6af6;return _0x39875a;})['then'](respondWithFilteredResult(_0x139fa3,_0x5eef4e))[_0x70a6('0x3d')](handleError(_0x139fa3,null));};exports[_0x70a6('0x3e')]=function(_0x15bd06,_0x35981f){var _0xc6abdc={'raw':!![],'where':{'id':_0x15bd06[_0x70a6('0x3f')]['id']}},_0x499fe7={};_0x499fe7[_0x70a6('0x25')]=_[_0x70a6('0x28')](db[_0x70a6('0x39')][_0x70a6('0x24')]);_0x499fe7[_0x70a6('0x26')]=_[_0x70a6('0x28')](_0x15bd06[_0x70a6('0x26')]);_0x499fe7[_0x70a6('0x29')]=_[_0x70a6('0x2b')](_0x499fe7[_0x70a6('0x25')],_0x499fe7[_0x70a6('0x26')]);_0xc6abdc['attributes']=_[_0x70a6('0x2b')](_0x499fe7['model'],qs[_0x70a6('0x2c')](_0x15bd06[_0x70a6('0x26')][_0x70a6('0x2c')]));_0xc6abdc[_0x70a6('0x2a')]=_0xc6abdc[_0x70a6('0x2a')][_0x70a6('0x40')]?_0xc6abdc[_0x70a6('0x2a')]:_0x499fe7['model'];if(_0x15bd06[_0x70a6('0x26')][_0x70a6('0x41')]){_0xc6abdc[_0x70a6('0x3a')]=[{'all':!![]}];}_0xc6abdc=_['merge']({},_0xc6abdc,_0x15bd06[_0x70a6('0x38')]);return db[_0x70a6('0x39')][_0x70a6('0x42')](_0xc6abdc)['then'](handleEntityNotFound(_0x35981f,null))['then'](respondWithResult(_0x35981f,null))[_0x70a6('0x3d')](handleError(_0x35981f,null));};exports[_0x70a6('0x43')]=function(_0x14c052,_0x98d663){return db[_0x70a6('0x39')][_0x70a6('0x43')](_0x14c052[_0x70a6('0x44')],{})[_0x70a6('0x45')](respondWithResult(_0x98d663,0xc9))['catch'](handleError(_0x98d663,null));};exports['update']=function(_0x5aca76,_0x232233){if(_0x5aca76['body']['id']){delete _0x5aca76[_0x70a6('0x44')]['id'];}return db[_0x70a6('0x39')][_0x70a6('0x42')]({'where':{'id':_0x5aca76[_0x70a6('0x3f')]['id']}})[_0x70a6('0x45')](handleEntityNotFound(_0x232233,null))[_0x70a6('0x45')](saveUpdates(_0x5aca76[_0x70a6('0x44')],null))['then'](respondWithResult(_0x232233,null))[_0x70a6('0x3d')](handleError(_0x232233,null));};exports['destroy']=function(_0x5d1752,_0x3d4c31){return db[_0x70a6('0x39')][_0x70a6('0x42')]({'where':{'id':_0x5d1752[_0x70a6('0x3f')]['id']}})[_0x70a6('0x45')](handleEntityNotFound(_0x3d4c31,null))[_0x70a6('0x45')](removeEntity(_0x3d4c31,null))[_0x70a6('0x3d')](handleError(_0x3d4c31,null));};
\ No newline at end of file
+var _0x9c5a=['limit','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','rawAttributes','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','day','add','merge','filter','map','options','Template','includeAll','include','findAll','catch','show','params','find','body','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','lodash','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9c5a,0x1c3));var _0xa9c5=function(_0x366bb0,_0x31741d){_0x366bb0=_0x366bb0-0x0;var _0x38aea2=_0x9c5a[_0x366bb0];return _0x38aea2;};'use strict';var pdf=require(_0xa9c5('0x0'));var emlformat=require(_0xa9c5('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa9c5('0x2'));var jsonpatch=require(_0xa9c5('0x3'));var rp=require(_0xa9c5('0x4'));var moment=require(_0xa9c5('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa9c5('0x6'));var util=require(_0xa9c5('0x7'));var path=require('path');var sox=require(_0xa9c5('0x8'));var csv=require('to-csv');var ejs=require(_0xa9c5('0x9'));var fs=require('fs');var _=require(_0xa9c5('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa9c5('0xb'));var deskjs=require(_0xa9c5('0xc'));var toCsv=require('to-csv');var querystring=require(_0xa9c5('0xd'));var Papa=require(_0xa9c5('0xe'));var Redis=require('ioredis');var qs=require(_0xa9c5('0xf'));var logger=require(_0xa9c5('0x10'))('api');var utils=require('../../config/utils');var config=require(_0xa9c5('0x11'));var db=require(_0xa9c5('0x12'))['db'];function respondWithStatusCode(_0x45f8d8,_0x4b72b0){_0x4b72b0=_0x4b72b0||0xcc;return function(_0x34c948){if(_0x34c948){return _0x45f8d8[_0xa9c5('0x13')](_0x4b72b0);}return _0x45f8d8[_0xa9c5('0x14')](_0x4b72b0)[_0xa9c5('0x15')]();};}function respondWithResult(_0x3c5ac7,_0x1ea48){_0x1ea48=_0x1ea48||0xc8;return function(_0x5915ad){if(_0x5915ad){return _0x3c5ac7[_0xa9c5('0x14')](_0x1ea48)[_0xa9c5('0x16')](_0x5915ad);}};}function respondWithFilteredResult(_0x7df76d,_0x3806c4){return function(_0x418ca5){if(_0x418ca5){var _0x1dad66=_0x418ca5[_0xa9c5('0x17')],_0x251099=_0x3806c4['offset'],_0x40b001=_0x3806c4[_0xa9c5('0x18')]+_0x3806c4[_0xa9c5('0x19')],_0x19a43e;if(_0x40b001>=_0x1dad66){_0x40b001=_0x1dad66;_0x19a43e=0xc8;}else{_0x19a43e=0xce;}_0x7df76d[_0xa9c5('0x14')](_0x19a43e);return _0x7df76d['set'](_0xa9c5('0x1a'),_0x251099+'-'+_0x40b001+'/'+_0x1dad66)[_0xa9c5('0x16')](_0x418ca5);}return null;};}function patchUpdates(_0x2b9ac5){return function(_0x3b8cf7){try{jsonpatch[_0xa9c5('0x1b')](_0x3b8cf7,_0x2b9ac5,!![]);}catch(_0x349f27){return BPromise[_0xa9c5('0x1c')](_0x349f27);}return _0x3b8cf7[_0xa9c5('0x1d')]();};}function saveUpdates(_0x2c7cd5,_0x36c486){return function(_0x113c8f){if(_0x113c8f){return _0x113c8f[_0xa9c5('0x1e')](_0x2c7cd5)['then'](function(_0x1115ad){return _0x1115ad;});}return null;};}function removeEntity(_0x21ab50,_0x541c77){return function(_0x5d2115){if(_0x5d2115){return _0x5d2115[_0xa9c5('0x1f')]()[_0xa9c5('0x20')](function(){_0x21ab50[_0xa9c5('0x14')](0xcc)[_0xa9c5('0x15')]();});}};}function handleEntityNotFound(_0xc0bca3,_0xd4b8a1){return function(_0x48e2cb){if(!_0x48e2cb){_0xc0bca3['sendStatus'](0x194);}return _0x48e2cb;};}function handleError(_0x3d4e1b,_0x11d395){_0x11d395=_0x11d395||0x1f4;return function(_0x4b0f05){logger[_0xa9c5('0x21')](_0x4b0f05[_0xa9c5('0x22')]);if(_0x4b0f05[_0xa9c5('0x23')]){delete _0x4b0f05[_0xa9c5('0x23')];}_0x3d4e1b[_0xa9c5('0x14')](_0x11d395)[_0xa9c5('0x24')](_0x4b0f05);};}exports[_0xa9c5('0x25')]=function(_0x51b64a,_0x4e8a7f){var _0x242771={},_0x4cd5e6={},_0x1762ac={'count':0x0,'rows':[]};var _0x830bad=db['Template'][_0xa9c5('0x26')];_0x4cd5e6[_0xa9c5('0x27')]=_['keys'](_0x830bad);var _0x413edf={'dateStart':_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x29')],'dateEnd':_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x2a')]};delete _0x51b64a['query'][_0xa9c5('0x29')];delete _0x51b64a['query'][_0xa9c5('0x2a')];_0x4cd5e6[_0xa9c5('0x28')]=_[_0xa9c5('0x2b')](_0x51b64a['query']);_0x4cd5e6[_0xa9c5('0x2c')]=_[_0xa9c5('0x2d')](_0x4cd5e6['model'],_0x4cd5e6[_0xa9c5('0x28')]);_0x242771[_0xa9c5('0x2e')]=_[_0xa9c5('0x2d')](_0x4cd5e6[_0xa9c5('0x27')],qs[_0xa9c5('0x2f')](_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x2f')]));_0x242771['attributes']=_0x242771[_0xa9c5('0x2e')][_0xa9c5('0x30')]?_0x242771[_0xa9c5('0x2e')]:_0x4cd5e6[_0xa9c5('0x27')];if(!_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x31')](_0xa9c5('0x32'))){_0x242771[_0xa9c5('0x19')]=qs['limit'](_0x51b64a['query'][_0xa9c5('0x19')]);_0x242771[_0xa9c5('0x18')]=qs[_0xa9c5('0x18')](_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x18')]);}_0x242771[_0xa9c5('0x33')]=qs['sort'](_0x51b64a['query']['sort']);_0x242771[_0xa9c5('0x34')]=qs[_0xa9c5('0x2c')](_['pick'](_0x51b64a[_0xa9c5('0x28')],_0x4cd5e6['filters']));if(_0x413edf[_0xa9c5('0x29')]){if(_0x413edf[_0xa9c5('0x2a')]){_0x413edf[_0xa9c5('0x2a')]=moment(_0x413edf[_0xa9c5('0x2a')])['add'](0x1,_0xa9c5('0x35'));}else{_0x413edf[_0xa9c5('0x2a')]=moment(_0x413edf[_0xa9c5('0x29')])[_0xa9c5('0x36')](0x1,_0xa9c5('0x35'));}_[_0xa9c5('0x37')](_0x242771[_0xa9c5('0x34')],{'createdAt':{'$gte':_0x413edf[_0xa9c5('0x29')],'$lte':_0x413edf['dateEnd']}});}if(_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x38')]){_0x242771[_0xa9c5('0x34')]=_[_0xa9c5('0x37')](_0x242771[_0xa9c5('0x34')],{'$or':_[_0xa9c5('0x39')](_0x242771['attributes'],function(_0x307736){var _0x5b7a0a={};_0x5b7a0a[_0x307736]={'$like':'%'+_0x51b64a[_0xa9c5('0x28')]['filter']+'%'};return _0x5b7a0a;})});}_0x242771=_[_0xa9c5('0x37')]({},_0x242771,_0x51b64a[_0xa9c5('0x3a')]);var _0x37fb1b={'where':_0x242771['where']};return db[_0xa9c5('0x3b')][_0xa9c5('0x17')](_0x37fb1b)[_0xa9c5('0x20')](function(_0x26dd0c){_0x1762ac['count']=_0x26dd0c;if(_0x51b64a[_0xa9c5('0x28')][_0xa9c5('0x3c')]){_0x242771[_0xa9c5('0x3d')]=[{'all':!![]}];}return db[_0xa9c5('0x3b')][_0xa9c5('0x3e')](_0x242771);})['then'](function(_0x2a1138){_0x1762ac['rows']=_0x2a1138;return _0x1762ac;})[_0xa9c5('0x20')](respondWithFilteredResult(_0x4e8a7f,_0x242771))[_0xa9c5('0x3f')](handleError(_0x4e8a7f,null));};exports[_0xa9c5('0x40')]=function(_0xc8fca4,_0xb50a5b){var _0x6dc061={'raw':!![],'where':{'id':_0xc8fca4[_0xa9c5('0x41')]['id']}},_0xf35cb3={};_0xf35cb3[_0xa9c5('0x27')]=_[_0xa9c5('0x2b')](db['Template'][_0xa9c5('0x26')]);_0xf35cb3[_0xa9c5('0x28')]=_[_0xa9c5('0x2b')](_0xc8fca4[_0xa9c5('0x28')]);_0xf35cb3[_0xa9c5('0x2c')]=_[_0xa9c5('0x2d')](_0xf35cb3['model'],_0xf35cb3[_0xa9c5('0x28')]);_0x6dc061[_0xa9c5('0x2e')]=_['intersection'](_0xf35cb3['model'],qs['fields'](_0xc8fca4['query']['fields']));_0x6dc061[_0xa9c5('0x2e')]=_0x6dc061[_0xa9c5('0x2e')][_0xa9c5('0x30')]?_0x6dc061[_0xa9c5('0x2e')]:_0xf35cb3[_0xa9c5('0x27')];if(_0xc8fca4[_0xa9c5('0x28')][_0xa9c5('0x3c')]){_0x6dc061[_0xa9c5('0x3d')]=[{'all':!![]}];}_0x6dc061=_[_0xa9c5('0x37')]({},_0x6dc061,_0xc8fca4[_0xa9c5('0x3a')]);return db[_0xa9c5('0x3b')][_0xa9c5('0x42')](_0x6dc061)[_0xa9c5('0x20')](handleEntityNotFound(_0xb50a5b,null))['then'](respondWithResult(_0xb50a5b,null))[_0xa9c5('0x3f')](handleError(_0xb50a5b,null));};exports['create']=function(_0x447335,_0x7a3690){return db['Template']['create'](_0x447335[_0xa9c5('0x43')],{})[_0xa9c5('0x20')](respondWithResult(_0x7a3690,0xc9))[_0xa9c5('0x3f')](handleError(_0x7a3690,null));};exports['update']=function(_0x584504,_0x2333c4){if(_0x584504[_0xa9c5('0x43')]['id']){delete _0x584504['body']['id'];}return db[_0xa9c5('0x3b')][_0xa9c5('0x42')]({'where':{'id':_0x584504[_0xa9c5('0x41')]['id']}})[_0xa9c5('0x20')](handleEntityNotFound(_0x2333c4,null))[_0xa9c5('0x20')](saveUpdates(_0x584504[_0xa9c5('0x43')],null))['then'](respondWithResult(_0x2333c4,null))['catch'](handleError(_0x2333c4,null));};exports['destroy']=function(_0x4317d8,_0x277903){return db[_0xa9c5('0x3b')][_0xa9c5('0x42')]({'where':{'id':_0x4317d8[_0xa9c5('0x41')]['id']}})[_0xa9c5('0x20')](handleEntityNotFound(_0x277903,null))['then'](removeEntity(_0x277903,null))[_0xa9c5('0x3f')](handleError(_0x277903,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e31=['bluebird','request-promise','./template.attributes','exports','define','Template','tools_templates','lodash','util','../../config/logger','api','moment'];(function(_0x257605,_0x4e427a){var _0x174a87=function(_0x4a9359){while(--_0x4a9359){_0x257605['push'](_0x257605['shift']());}};_0x174a87(++_0x4e427a);}(_0x6e31,0xc7));var _0x16e3=function(_0x56ebc8,_0x4bb8a4){_0x56ebc8=_0x56ebc8-0x0;var _0x35691f=_0x6e31[_0x56ebc8];return _0x35691f;};'use strict';var _=require(_0x16e3('0x0'));var util=require(_0x16e3('0x1'));var logger=require(_0x16e3('0x2'))(_0x16e3('0x3'));var moment=require(_0x16e3('0x4'));var BPromise=require(_0x16e3('0x5'));var rp=require(_0x16e3('0x6'));var attributes=require(_0x16e3('0x7'));module[_0x16e3('0x8')]=function(_0x17d18a,_0x5d7dec){return _0x17d18a[_0x16e3('0x9')](_0x16e3('0xa'),attributes,{'tableName':_0x16e3('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd270=['bluebird','request-promise','./template.attributes','exports','Template','lodash','../../config/logger','api'];(function(_0x114ac3,_0x9f9551){var _0x9f45f4=function(_0xdd796a){while(--_0xdd796a){_0x114ac3['push'](_0x114ac3['shift']());}};_0x9f45f4(++_0x9f9551);}(_0xd270,0x165));var _0x0d27=function(_0x1cc7f4,_0x3a9b76){_0x1cc7f4=_0x1cc7f4-0x0;var _0x4cc3e2=_0xd270[_0x1cc7f4];return _0x4cc3e2;};'use strict';var _=require(_0x0d27('0x0'));var util=require('util');var logger=require(_0x0d27('0x1'))(_0x0d27('0x2'));var moment=require('moment');var BPromise=require(_0x0d27('0x3'));var rp=require(_0x0d27('0x4'));var attributes=require(_0x0d27('0x5'));module[_0x0d27('0x6')]=function(_0x342490,_0x32dcaa){return _0x342490['define'](_0x0d27('0x7'),attributes,{'tableName':'tools_templates','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f5a=['../../config/environment','jayson/promise','client','request','info','Template,\x20%s,\x20%s','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','error','message','result','catch','GetTemplate','findAll','options','raw','where','attributes','limit','include','map','model','then','stringify','lodash','util','moment','randomstring','../../config/logger','rpc'];(function(_0x46b4a7,_0x1a65cc){var _0x32ba29=function(_0x38966d){while(--_0x38966d){_0x46b4a7['push'](_0x46b4a7['shift']());}};_0x32ba29(++_0x1a65cc);}(_0x6f5a,0x1cb));var _0xa6f5=function(_0x39c8fe,_0x3d5954){_0x39c8fe=_0x39c8fe-0x0;var _0x523a25=_0x6f5a[_0x39c8fe];return _0x523a25;};'use strict';var _=require(_0xa6f5('0x0'));var util=require(_0xa6f5('0x1'));var moment=require(_0xa6f5('0x2'));var BPromise=require('bluebird');var rs=require(_0xa6f5('0x3'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa6f5('0x4'))(_0xa6f5('0x5'));var config=require(_0xa6f5('0x6'));var jayson=require(_0xa6f5('0x7'));var client=jayson[_0xa6f5('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x21be4d,_0x3083fb,_0x5af8f5){return new BPromise(function(_0x304249,_0x473acf){return client[_0xa6f5('0x9')](_0x21be4d,_0x5af8f5)['then'](function(_0x4fdd96){logger[_0xa6f5('0xa')](_0xa6f5('0xb'),_0x3083fb,_0xa6f5('0xc'));logger[_0xa6f5('0xd')](_0xa6f5('0xe'),_0x3083fb,_0xa6f5('0xc'),JSON['stringify'](_0x4fdd96));if(_0x4fdd96['error']){if(_0x4fdd96[_0xa6f5('0xf')]['code']===0x1f4){logger['error'](_0xa6f5('0xb'),_0x3083fb,_0x4fdd96[_0xa6f5('0xf')][_0xa6f5('0x10')]);return _0x473acf(_0x4fdd96[_0xa6f5('0xf')][_0xa6f5('0x10')]);}logger[_0xa6f5('0xf')]('Template,\x20%s,\x20%s',_0x3083fb,_0x4fdd96[_0xa6f5('0xf')][_0xa6f5('0x10')]);return _0x304249(_0x4fdd96[_0xa6f5('0xf')][_0xa6f5('0x10')]);}else{logger[_0xa6f5('0xa')](_0xa6f5('0xb'),_0x3083fb,_0xa6f5('0xc'));_0x304249(_0x4fdd96[_0xa6f5('0x11')]['message']);}})[_0xa6f5('0x12')](function(_0x3b578b){logger['error'](_0xa6f5('0xb'),_0x3083fb,_0x3b578b);_0x473acf(_0x3b578b);});});}exports[_0xa6f5('0x13')]=function(_0x2fe1cf){var _0x9f8fb3=this;return new Promise(function(_0x50e507,_0x504130){return db['Template'][_0xa6f5('0x14')]({'raw':_0x2fe1cf[_0xa6f5('0x15')]?_0x2fe1cf[_0xa6f5('0x15')][_0xa6f5('0x16')]===undefined?!![]:![]:!![],'where':_0x2fe1cf['options']?_0x2fe1cf['options'][_0xa6f5('0x17')]||null:null,'attributes':_0x2fe1cf[_0xa6f5('0x15')]?_0x2fe1cf[_0xa6f5('0x15')][_0xa6f5('0x18')]||null:null,'limit':_0x2fe1cf[_0xa6f5('0x15')]?_0x2fe1cf[_0xa6f5('0x15')][_0xa6f5('0x19')]||null:null,'include':_0x2fe1cf[_0xa6f5('0x15')]?_0x2fe1cf['options'][_0xa6f5('0x1a')]?_[_0xa6f5('0x1b')](_0x2fe1cf['options']['include'],function(_0x483309){return{'model':db[_0x483309['model']],'as':_0x483309['as'],'attributes':_0x483309[_0xa6f5('0x18')],'include':_0x483309['include']?_[_0xa6f5('0x1b')](_0x483309[_0xa6f5('0x1a')],function(_0x2e8ac2){return{'model':db[_0x2e8ac2[_0xa6f5('0x1c')]],'as':_0x2e8ac2['as'],'attributes':_0x2e8ac2[_0xa6f5('0x18')],'include':_0x2e8ac2[_0xa6f5('0x1a')]?_['map'](_0x2e8ac2[_0xa6f5('0x1a')],function(_0x36ca86){return{'model':db[_0x36ca86[_0xa6f5('0x1c')]],'as':_0x36ca86['as'],'attributes':_0x36ca86[_0xa6f5('0x18')]};}):[]};}):[]};}):[]:[]})[_0xa6f5('0x1d')](function(_0x3f7d42){logger[_0xa6f5('0xa')](_0xa6f5('0x13'),_0x2fe1cf);logger[_0xa6f5('0xd')]('GetTemplate',_0x2fe1cf,JSON[_0xa6f5('0x1e')](_0x3f7d42));_0x50e507(_0x3f7d42);})['catch'](function(_0x232ddb){logger[_0xa6f5('0xf')](_0xa6f5('0x13'),_0x232ddb[_0xa6f5('0x10')],_0x2fe1cf);_0x504130(_0x9f8fb3[_0xa6f5('0xf')](0x1f4,_0x232ddb[_0xa6f5('0x10')]));});});};
\ No newline at end of file
+var _0x6d78=['http','request','then','info','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','Template,\x20%s,\x20%s','message','Template','findAll','options','attributes','limit','include','map','model','GetTemplate','catch','lodash','util','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x1ab341,_0xc22699){var _0x18dd7e=function(_0x5bdf52){while(--_0x5bdf52){_0x1ab341['push'](_0x1ab341['shift']());}};_0x18dd7e(++_0xc22699);}(_0x6d78,0x1c9));var _0x86d7=function(_0x41a6b1,_0x33302b){_0x41a6b1=_0x41a6b1-0x0;var _0x26a187=_0x6d78[_0x41a6b1];return _0x26a187;};'use strict';var _=require(_0x86d7('0x0'));var util=require(_0x86d7('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x86d7('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x86d7('0x3'))('rpc');var config=require(_0x86d7('0x4'));var jayson=require(_0x86d7('0x5'));var client=jayson[_0x86d7('0x6')][_0x86d7('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x99f8d4,_0x581da1,_0x1e28b4){return new BPromise(function(_0x37074a,_0x572395){return client[_0x86d7('0x8')](_0x99f8d4,_0x1e28b4)[_0x86d7('0x9')](function(_0x28270a){logger[_0x86d7('0xa')]('Template,\x20%s,\x20%s',_0x581da1,_0x86d7('0xb'));logger[_0x86d7('0xc')](_0x86d7('0xd'),_0x581da1,'request\x20sent',JSON[_0x86d7('0xe')](_0x28270a));if(_0x28270a[_0x86d7('0xf')]){if(_0x28270a['error'][_0x86d7('0x10')]===0x1f4){logger[_0x86d7('0xf')](_0x86d7('0x11'),_0x581da1,_0x28270a[_0x86d7('0xf')][_0x86d7('0x12')]);return _0x572395(_0x28270a[_0x86d7('0xf')]['message']);}logger[_0x86d7('0xf')](_0x86d7('0x11'),_0x581da1,_0x28270a[_0x86d7('0xf')][_0x86d7('0x12')]);return _0x37074a(_0x28270a[_0x86d7('0xf')][_0x86d7('0x12')]);}else{logger['info'](_0x86d7('0x11'),_0x581da1,'request\x20sent');_0x37074a(_0x28270a['result']['message']);}})['catch'](function(_0x46fb53){logger[_0x86d7('0xf')](_0x86d7('0x11'),_0x581da1,_0x46fb53);_0x572395(_0x46fb53);});});}exports['GetTemplate']=function(_0x2d32c9){var _0x35bae3=this;return new Promise(function(_0x33548e,_0x5e389c){return db[_0x86d7('0x13')][_0x86d7('0x14')]({'raw':_0x2d32c9[_0x86d7('0x15')]?_0x2d32c9[_0x86d7('0x15')]['raw']===undefined?!![]:![]:!![],'where':_0x2d32c9[_0x86d7('0x15')]?_0x2d32c9[_0x86d7('0x15')]['where']||null:null,'attributes':_0x2d32c9[_0x86d7('0x15')]?_0x2d32c9['options'][_0x86d7('0x16')]||null:null,'limit':_0x2d32c9['options']?_0x2d32c9[_0x86d7('0x15')][_0x86d7('0x17')]||null:null,'include':_0x2d32c9[_0x86d7('0x15')]?_0x2d32c9['options'][_0x86d7('0x18')]?_[_0x86d7('0x19')](_0x2d32c9[_0x86d7('0x15')][_0x86d7('0x18')],function(_0x205639){return{'model':db[_0x205639[_0x86d7('0x1a')]],'as':_0x205639['as'],'attributes':_0x205639['attributes'],'include':_0x205639['include']?_[_0x86d7('0x19')](_0x205639[_0x86d7('0x18')],function(_0x469700){return{'model':db[_0x469700[_0x86d7('0x1a')]],'as':_0x469700['as'],'attributes':_0x469700[_0x86d7('0x16')],'include':_0x469700[_0x86d7('0x18')]?_[_0x86d7('0x19')](_0x469700[_0x86d7('0x18')],function(_0xed48ad){return{'model':db[_0xed48ad[_0x86d7('0x1a')]],'as':_0xed48ad['as'],'attributes':_0xed48ad[_0x86d7('0x16')]};}):[]};}):[]};}):[]:[]})[_0x86d7('0x9')](function(_0x326211){logger['info'](_0x86d7('0x1b'),_0x2d32c9);logger[_0x86d7('0xc')]('GetTemplate',_0x2d32c9,JSON['stringify'](_0x326211));_0x33548e(_0x326211);})[_0x86d7('0x1c')](function(_0x4e07a6){logger[_0x86d7('0xf')](_0x86d7('0x1b'),_0x4e07a6['message'],_0x2d32c9);_0x5e389c(_0x35bae3[_0x86d7('0xf')](0x1f4,_0x4e07a6['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf541=['post','/:id/all_conditions','addAllCondition','addAnyCondition','delete','destroy','exports','util','connect-timeout','express','Router','../../components/interaction/service','./trigger.controller','get','isAuthenticated','index','/:id','show','getAllConditions','/:id/any_conditions','getAnyConditions','/:id/actions'];(function(_0x35c3f2,_0x18a051){var _0x1c056e=function(_0x30bb96){while(--_0x30bb96){_0x35c3f2['push'](_0x35c3f2['shift']());}};_0x1c056e(++_0x18a051);}(_0xf541,0x167));var _0x1f54=function(_0x28b7ab,_0x16a764){_0x28b7ab=_0x28b7ab-0x0;var _0x56791b=_0xf541[_0x28b7ab];return _0x56791b;};'use strict';var multer=require('multer');var util=require(_0x1f54('0x0'));var path=require('path');var timeout=require(_0x1f54('0x1'));var express=require(_0x1f54('0x2'));var router=express[_0x1f54('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x1f54('0x4'));var config=require('../../config/environment');var controller=require(_0x1f54('0x5'));router[_0x1f54('0x6')]('/',auth[_0x1f54('0x7')](),controller[_0x1f54('0x8')]);router[_0x1f54('0x6')](_0x1f54('0x9'),auth[_0x1f54('0x7')](),controller[_0x1f54('0xa')]);router[_0x1f54('0x6')]('/:id/all_conditions',auth[_0x1f54('0x7')](),controller[_0x1f54('0xb')]);router['get'](_0x1f54('0xc'),auth[_0x1f54('0x7')](),controller[_0x1f54('0xd')]);router['get'](_0x1f54('0xe'),auth['isAuthenticated'](),controller['getActions']);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x1f54('0xf')](_0x1f54('0x10'),auth[_0x1f54('0x7')](),controller[_0x1f54('0x11')]);router[_0x1f54('0xf')](_0x1f54('0xc'),auth['isAuthenticated'](),controller[_0x1f54('0x12')]);router[_0x1f54('0xf')]('/:id/actions',auth[_0x1f54('0x7')](),controller['addAction']);router['put'](_0x1f54('0x9'),auth[_0x1f54('0x7')](),controller['update']);router[_0x1f54('0x13')](_0x1f54('0x9'),auth[_0x1f54('0x7')](),controller[_0x1f54('0x14')]);module[_0x1f54('0x15')]=router;
\ No newline at end of file
+var _0xbeef=['/:id/all_conditions','getAllConditions','/:id/any_conditions','/:id/actions','getActions','post','create','addAllCondition','addAnyCondition','put','update','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../config/environment','./trigger.controller','index','/:id','isAuthenticated','show','get'];(function(_0x31ea57,_0x2ef266){var _0x513aec=function(_0x5e42d7){while(--_0x5e42d7){_0x31ea57['push'](_0x31ea57['shift']());}};_0x513aec(++_0x2ef266);}(_0xbeef,0x16d));var _0xfbee=function(_0x59626a,_0x251bd4){_0x59626a=_0x59626a-0x0;var _0x6c7602=_0xbeef[_0x59626a];return _0x6c7602;};'use strict';var multer=require(_0xfbee('0x0'));var util=require(_0xfbee('0x1'));var path=require(_0xfbee('0x2'));var timeout=require('connect-timeout');var express=require(_0xfbee('0x3'));var router=express[_0xfbee('0x4')]();var auth=require(_0xfbee('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xfbee('0x6'));var controller=require(_0xfbee('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0xfbee('0x8')]);router['get'](_0xfbee('0x9'),auth[_0xfbee('0xa')](),controller[_0xfbee('0xb')]);router[_0xfbee('0xc')](_0xfbee('0xd'),auth[_0xfbee('0xa')](),controller[_0xfbee('0xe')]);router[_0xfbee('0xc')](_0xfbee('0xf'),auth['isAuthenticated'](),controller['getAnyConditions']);router['get'](_0xfbee('0x10'),auth[_0xfbee('0xa')](),controller[_0xfbee('0x11')]);router[_0xfbee('0x12')]('/',auth[_0xfbee('0xa')](),controller[_0xfbee('0x13')]);router[_0xfbee('0x12')]('/:id/all_conditions',auth['isAuthenticated'](),controller[_0xfbee('0x14')]);router[_0xfbee('0x12')](_0xfbee('0xf'),auth[_0xfbee('0xa')](),controller[_0xfbee('0x15')]);router[_0xfbee('0x12')]('/:id/actions',auth[_0xfbee('0xa')](),controller['addAction']);router[_0xfbee('0x16')](_0xfbee('0x9'),auth[_0xfbee('0xa')](),controller[_0xfbee('0x17')]);router[_0xfbee('0x18')](_0xfbee('0x9'),auth[_0xfbee('0xa')](),controller[_0xfbee('0x19')]);module[_0xfbee('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xade8=['sequelize','exports','STRING','BOOLEAN'];(function(_0x44c768,_0x552a5e){var _0x55daf5=function(_0x4958e8){while(--_0x4958e8){_0x44c768['push'](_0x44c768['shift']());}};_0x55daf5(++_0x552a5e);}(_0xade8,0x194));var _0x8ade=function(_0xe7817,_0x4d978c){_0xe7817=_0xe7817-0x0;var _0x4e1c1c=_0xade8[_0xe7817];return _0x4e1c1c;};'use strict';var Sequelize=require(_0x8ade('0x0'));module[_0x8ade('0x1')]={'name':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x8ade('0x2')]},'description':{'type':Sequelize[_0x8ade('0x2')]},'status':{'type':Sequelize[_0x8ade('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x7403=['STRING','sequelize'];(function(_0x373b3e,_0x347ac7){var _0xa4ce3=function(_0x5ab1ac){while(--_0x5ab1ac){_0x373b3e['push'](_0x373b3e['shift']());}};_0xa4ce3(++_0x347ac7);}(_0x7403,0x1bf));var _0x3740=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7403[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x3740('0x0'));module['exports']={'name':{'type':Sequelize[_0x3740('0x1')]},'channel':{'type':Sequelize[_0x3740('0x1')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['dateEnd','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','count','includeAll','include','findAll','rows','catch','options','find','create','body','params','destroy','addAllCondition','TriggerAllId','addAnyCondition','TriggerAnyId','Condition','getAllConditions','findOne','map','nolimit','getAnyConditions','addAction','TriggerId','Action','getActions','html-pdf','rimraf','fast-json-patch','moment','mustache','util','path','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','stack','name','Trigger','rawAttributes','query','dateStart'];(function(_0x54b062,_0x264bb5){var _0x255e41=function(_0x3c7e6f){while(--_0x3c7e6f){_0x54b062['push'](_0x54b062['shift']());}};_0x255e41(++_0x264bb5);}(_0xb7e7,0x121));var _0x7b7e=function(_0xf50820,_0x56f041){_0xf50820=_0xf50820-0x0;var _0x2a9b10=_0xb7e7[_0xf50820];return _0x2a9b10;};'use strict';var pdf=require(_0x7b7e('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7b7e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7b7e('0x2'));var rp=require('request-promise');var moment=require(_0x7b7e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x7b7e('0x4'));var util=require(_0x7b7e('0x5'));var path=require(_0x7b7e('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7b7e('0x7'));var fs=require('fs');var _=require(_0x7b7e('0x8'));var squel=require(_0x7b7e('0x9'));var crypto=require('crypto');var jsforce=require(_0x7b7e('0xa'));var deskjs=require(_0x7b7e('0xb'));var toCsv=require(_0x7b7e('0xc'));var querystring=require(_0x7b7e('0xd'));var Papa=require(_0x7b7e('0xe'));var qs=require(_0x7b7e('0xf'));var logger=require(_0x7b7e('0x10'))('api');var utils=require(_0x7b7e('0x11'));var config=require(_0x7b7e('0x12'));var db=require(_0x7b7e('0x13'))['db'];function respondWithStatusCode(_0x29b622,_0xd581fb){_0xd581fb=_0xd581fb||0xcc;return function(_0x18a1de){if(_0x18a1de){return _0x29b622[_0x7b7e('0x14')](_0xd581fb);}return _0x29b622[_0x7b7e('0x15')](_0xd581fb)[_0x7b7e('0x16')]();};}function respondWithResult(_0x54d8ce,_0x267446){_0x267446=_0x267446||0xc8;return function(_0x430eab){if(_0x430eab){return _0x54d8ce['status'](_0x267446)[_0x7b7e('0x17')](_0x430eab);}};}function respondWithFilteredResult(_0x5976ac,_0x4c6011){return function(_0x2889ed){if(_0x2889ed){var _0xd304f5=_0x2889ed['count'],_0xf067da=_0x4c6011['offset'],_0x457ec5=_0x4c6011[_0x7b7e('0x18')]+_0x4c6011[_0x7b7e('0x19')],_0x3d2fb2;if(_0x457ec5>=_0xd304f5){_0x457ec5=_0xd304f5;_0x3d2fb2=0xc8;}else{_0x3d2fb2=0xce;}_0x5976ac[_0x7b7e('0x15')](_0x3d2fb2);return _0x5976ac[_0x7b7e('0x1a')](_0x7b7e('0x1b'),_0xf067da+'-'+_0x457ec5+'/'+_0xd304f5)[_0x7b7e('0x17')](_0x2889ed);}return null;};}function patchUpdates(_0x242368){return function(_0x200ef7){try{jsonpatch[_0x7b7e('0x1c')](_0x200ef7,_0x242368,!![]);}catch(_0x429a0e){return BPromise[_0x7b7e('0x1d')](_0x429a0e);}return _0x200ef7[_0x7b7e('0x1e')]();};}function saveUpdates(_0x448980,_0x3bec7d){return function(_0x9776c3){if(_0x9776c3){return _0x9776c3[_0x7b7e('0x1f')](_0x448980)[_0x7b7e('0x20')](function(_0x49eddb){return _0x49eddb;});}return null;};}function removeEntity(_0x69262b,_0x43db4f){return function(_0x24718c){if(_0x24718c){return _0x24718c['destroy']()[_0x7b7e('0x20')](function(){_0x69262b[_0x7b7e('0x15')](0xcc)[_0x7b7e('0x16')]();});}};}function handleEntityNotFound(_0x200156,_0x2b7211){return function(_0x303d8c){if(!_0x303d8c){_0x200156[_0x7b7e('0x14')](0x194);}return _0x303d8c;};}function handleError(_0x10a66a,_0x53bbb3){_0x53bbb3=_0x53bbb3||0x1f4;return function(_0x5d6215){logger['error'](_0x5d6215[_0x7b7e('0x21')]);if(_0x5d6215[_0x7b7e('0x22')]){delete _0x5d6215[_0x7b7e('0x22')];}_0x10a66a['status'](_0x53bbb3)['send'](_0x5d6215);};}exports['index']=function(_0x182245,_0x3c8192){var _0x16a3c7={},_0x7aa71={},_0x3ceaf5={'count':0x0,'rows':[]};var _0x48fad1=db[_0x7b7e('0x23')][_0x7b7e('0x24')];_0x7aa71['model']=_['keys'](_0x48fad1);var _0x4e5de7={'dateStart':_0x182245[_0x7b7e('0x25')][_0x7b7e('0x26')],'dateEnd':_0x182245['query'][_0x7b7e('0x27')]};delete _0x182245['query'][_0x7b7e('0x26')];delete _0x182245[_0x7b7e('0x25')][_0x7b7e('0x27')];_0x7aa71['query']=_[_0x7b7e('0x28')](_0x182245[_0x7b7e('0x25')]);_0x7aa71[_0x7b7e('0x29')]=_[_0x7b7e('0x2a')](_0x7aa71[_0x7b7e('0x2b')],_0x7aa71['query']);_0x16a3c7[_0x7b7e('0x2c')]=_['intersection'](_0x7aa71[_0x7b7e('0x2b')],qs[_0x7b7e('0x2d')](_0x182245[_0x7b7e('0x25')][_0x7b7e('0x2d')]));_0x16a3c7[_0x7b7e('0x2c')]=_0x16a3c7[_0x7b7e('0x2c')][_0x7b7e('0x2e')]?_0x16a3c7['attributes']:_0x7aa71['model'];if(!_0x182245[_0x7b7e('0x25')][_0x7b7e('0x2f')]('nolimit')){_0x16a3c7[_0x7b7e('0x19')]=qs[_0x7b7e('0x19')](_0x182245[_0x7b7e('0x25')]['limit']);_0x16a3c7[_0x7b7e('0x18')]=qs[_0x7b7e('0x18')](_0x182245[_0x7b7e('0x25')][_0x7b7e('0x18')]);}_0x16a3c7[_0x7b7e('0x30')]=qs[_0x7b7e('0x31')](_0x182245[_0x7b7e('0x25')][_0x7b7e('0x31')]);_0x16a3c7[_0x7b7e('0x32')]=qs[_0x7b7e('0x29')](_[_0x7b7e('0x33')](_0x182245[_0x7b7e('0x25')],_0x7aa71[_0x7b7e('0x29')]));if(_0x4e5de7[_0x7b7e('0x26')]){if(_0x4e5de7[_0x7b7e('0x27')]){_0x4e5de7[_0x7b7e('0x27')]=moment(_0x4e5de7['dateEnd'])[_0x7b7e('0x34')](0x1,_0x7b7e('0x35'));}else{_0x4e5de7[_0x7b7e('0x27')]=moment(_0x4e5de7[_0x7b7e('0x26')])[_0x7b7e('0x34')](0x1,_0x7b7e('0x35'));}_[_0x7b7e('0x36')](_0x16a3c7[_0x7b7e('0x32')],{'createdAt':{'$gte':_0x4e5de7[_0x7b7e('0x26')],'$lte':_0x4e5de7[_0x7b7e('0x27')]}});}if(_0x182245['query'][_0x7b7e('0x37')]){_0x16a3c7[_0x7b7e('0x32')]=_[_0x7b7e('0x36')](_0x16a3c7[_0x7b7e('0x32')],{'$or':_['map'](_0x16a3c7[_0x7b7e('0x2c')],function(_0x35b31a){var _0x3d5280={};_0x3d5280[_0x35b31a]={'$like':'%'+_0x182245['query']['filter']+'%'};return _0x3d5280;})});}_0x16a3c7=_[_0x7b7e('0x36')]({},_0x16a3c7,_0x182245['options']);var _0x35382c={'where':_0x16a3c7[_0x7b7e('0x32')]};return db['Trigger'][_0x7b7e('0x38')](_0x35382c)[_0x7b7e('0x20')](function(_0x2a6f4d){_0x3ceaf5[_0x7b7e('0x38')]=_0x2a6f4d;if(_0x182245[_0x7b7e('0x25')][_0x7b7e('0x39')]){_0x16a3c7[_0x7b7e('0x3a')]=[{'all':!![]}];}return db[_0x7b7e('0x23')][_0x7b7e('0x3b')](_0x16a3c7);})['then'](function(_0x5d61c1){_0x3ceaf5[_0x7b7e('0x3c')]=_0x5d61c1;return _0x3ceaf5;})['then'](respondWithFilteredResult(_0x3c8192,_0x16a3c7))[_0x7b7e('0x3d')](handleError(_0x3c8192,null));};exports['show']=function(_0x48dd74,_0x356db0){var _0x48252a={'raw':![],'where':{'id':_0x48dd74['params']['id']}},_0x2f9982={};_0x2f9982[_0x7b7e('0x2b')]=_[_0x7b7e('0x28')](db[_0x7b7e('0x23')][_0x7b7e('0x24')]);_0x2f9982['query']=_[_0x7b7e('0x28')](_0x48dd74[_0x7b7e('0x25')]);_0x2f9982[_0x7b7e('0x29')]=_[_0x7b7e('0x2a')](_0x2f9982[_0x7b7e('0x2b')],_0x2f9982[_0x7b7e('0x25')]);_0x48252a['attributes']=_['intersection'](_0x2f9982['model'],qs[_0x7b7e('0x2d')](_0x48dd74[_0x7b7e('0x25')][_0x7b7e('0x2d')]));_0x48252a[_0x7b7e('0x2c')]=_0x48252a[_0x7b7e('0x2c')][_0x7b7e('0x2e')]?_0x48252a['attributes']:_0x2f9982[_0x7b7e('0x2b')];if(_0x48dd74[_0x7b7e('0x25')]['includeAll']){_0x48252a['include']=[{'all':!![]}];}_0x48252a=_[_0x7b7e('0x36')]({},_0x48252a,_0x48dd74[_0x7b7e('0x3e')]);return db[_0x7b7e('0x23')][_0x7b7e('0x3f')](_0x48252a)[_0x7b7e('0x20')](handleEntityNotFound(_0x356db0,null))[_0x7b7e('0x20')](respondWithResult(_0x356db0,null))['catch'](handleError(_0x356db0,null));};exports[_0x7b7e('0x40')]=function(_0x4cc7db,_0x402793){return db[_0x7b7e('0x23')][_0x7b7e('0x40')](_0x4cc7db[_0x7b7e('0x41')],{})['then'](respondWithResult(_0x402793,0xc9))[_0x7b7e('0x3d')](handleError(_0x402793,null));};exports[_0x7b7e('0x1f')]=function(_0x45e0cf,_0x334b8e){if(_0x45e0cf[_0x7b7e('0x41')]['id']){delete _0x45e0cf['body']['id'];}return db[_0x7b7e('0x23')][_0x7b7e('0x3f')]({'where':{'id':_0x45e0cf[_0x7b7e('0x42')]['id']}})[_0x7b7e('0x20')](handleEntityNotFound(_0x334b8e,null))[_0x7b7e('0x20')](saveUpdates(_0x45e0cf['body'],null))[_0x7b7e('0x20')](respondWithResult(_0x334b8e,null))[_0x7b7e('0x3d')](handleError(_0x334b8e,null));};exports[_0x7b7e('0x43')]=function(_0x3280fa,_0x416abe){return db[_0x7b7e('0x23')][_0x7b7e('0x3f')]({'where':{'id':_0x3280fa['params']['id']}})[_0x7b7e('0x20')](handleEntityNotFound(_0x416abe,null))['then'](removeEntity(_0x416abe,null))[_0x7b7e('0x3d')](handleError(_0x416abe,null));};exports[_0x7b7e('0x44')]=function(_0x570303,_0x36f1be,_0x44e3a0){if(_0x570303[_0x7b7e('0x41')]['id']){delete _0x570303[_0x7b7e('0x41')]['id'];}return db[_0x7b7e('0x23')][_0x7b7e('0x3f')]({'where':{'id':_0x570303[_0x7b7e('0x42')]['id']}})['then'](handleEntityNotFound(_0x36f1be,null))[_0x7b7e('0x20')](function(_0x3ff731){if(_0x3ff731){_0x570303[_0x7b7e('0x41')][_0x7b7e('0x45')]=_0x3ff731['id'];return db['Condition']['create'](_0x570303['body']);}})[_0x7b7e('0x20')](respondWithResult(_0x36f1be,null))[_0x7b7e('0x3d')](handleError(_0x36f1be,null));};exports[_0x7b7e('0x46')]=function(_0x4aa92e,_0x5b1e10,_0x360cd0){if(_0x4aa92e[_0x7b7e('0x41')]['id']){delete _0x4aa92e['body']['id'];}return db[_0x7b7e('0x23')][_0x7b7e('0x3f')]({'where':{'id':_0x4aa92e[_0x7b7e('0x42')]['id']}})['then'](handleEntityNotFound(_0x5b1e10,null))[_0x7b7e('0x20')](function(_0x1d9af5){if(_0x1d9af5){_0x4aa92e['body'][_0x7b7e('0x47')]=_0x1d9af5['id'];return db[_0x7b7e('0x48')][_0x7b7e('0x40')](_0x4aa92e[_0x7b7e('0x41')]);}})[_0x7b7e('0x20')](respondWithResult(_0x5b1e10,null))[_0x7b7e('0x3d')](handleError(_0x5b1e10,null));};exports[_0x7b7e('0x49')]=function(_0x2d1908,_0x45fff9,_0x5509ad){var _0x29d0af={};var _0x20108a={};var _0x516e75;var _0xc2b1b6;return db[_0x7b7e('0x23')][_0x7b7e('0x4a')]({'where':{'id':_0x2d1908['params']['id']}})[_0x7b7e('0x20')](handleEntityNotFound(_0x45fff9,null))['then'](function(_0x50c544){if(_0x50c544){_0x516e75=_0x50c544;_0x20108a[_0x7b7e('0x2b')]=_['keys'](db[_0x7b7e('0x48')][_0x7b7e('0x24')]);_0x20108a['query']=_[_0x7b7e('0x28')](_0x2d1908[_0x7b7e('0x25')]);_0x20108a[_0x7b7e('0x29')]=_[_0x7b7e('0x2a')](_0x20108a['model'],_0x20108a[_0x7b7e('0x25')]);_0x29d0af[_0x7b7e('0x2c')]=_[_0x7b7e('0x2a')](_0x20108a[_0x7b7e('0x2b')],qs[_0x7b7e('0x2d')](_0x2d1908[_0x7b7e('0x25')][_0x7b7e('0x2d')]));_0x29d0af[_0x7b7e('0x2c')]=_0x29d0af[_0x7b7e('0x2c')][_0x7b7e('0x2e')]?_0x29d0af['attributes']:_0x20108a[_0x7b7e('0x2b')];_0x29d0af['order']=qs['sort'](_0x2d1908[_0x7b7e('0x25')][_0x7b7e('0x31')]);_0x29d0af[_0x7b7e('0x32')]=qs[_0x7b7e('0x29')](_['pick'](_0x2d1908[_0x7b7e('0x25')],_0x20108a[_0x7b7e('0x29')]));if(_0x2d1908[_0x7b7e('0x25')][_0x7b7e('0x37')]){_0x29d0af[_0x7b7e('0x32')]=_[_0x7b7e('0x36')](_0x29d0af['where'],{'$or':_[_0x7b7e('0x4b')](_0x29d0af['attributes'],function(_0x4a3af8){var _0x43a61b={};_0x43a61b[_0x4a3af8]={'$like':'%'+_0x2d1908['query'][_0x7b7e('0x37')]+'%'};return _0x43a61b;})});}_0x29d0af=_['merge']({},_0x29d0af,_0x2d1908[_0x7b7e('0x3e')]);return _0x516e75[_0x7b7e('0x49')](_0x29d0af);}})['then'](function(_0x2c167d){if(_0x2c167d){_0xc2b1b6=_0x2c167d[_0x7b7e('0x2e')];if(!_0x2d1908['query'][_0x7b7e('0x2f')](_0x7b7e('0x4c'))){_0x29d0af[_0x7b7e('0x19')]=qs[_0x7b7e('0x19')](_0x2d1908[_0x7b7e('0x25')][_0x7b7e('0x19')]);_0x29d0af[_0x7b7e('0x18')]=qs[_0x7b7e('0x18')](_0x2d1908[_0x7b7e('0x25')][_0x7b7e('0x18')]);}return _0x516e75['getAllConditions'](_0x29d0af);}})['then'](function(_0x34e7df){if(_0x34e7df){return _0x34e7df?{'count':_0xc2b1b6,'rows':_0x34e7df}:null;}})[_0x7b7e('0x20')](respondWithResult(_0x45fff9,null))[_0x7b7e('0x3d')](handleError(_0x45fff9,null));};exports[_0x7b7e('0x4d')]=function(_0xea39fa,_0x4e2c2b,_0x385f0c){var _0x5d2526={};var _0x28e6ac={};var _0x2aca93;var _0x4ff2c8;return db[_0x7b7e('0x23')][_0x7b7e('0x4a')]({'where':{'id':_0xea39fa[_0x7b7e('0x42')]['id']}})[_0x7b7e('0x20')](handleEntityNotFound(_0x4e2c2b,null))[_0x7b7e('0x20')](function(_0x40f65e){if(_0x40f65e){_0x2aca93=_0x40f65e;_0x28e6ac[_0x7b7e('0x2b')]=_[_0x7b7e('0x28')](db[_0x7b7e('0x48')][_0x7b7e('0x24')]);_0x28e6ac[_0x7b7e('0x25')]=_['keys'](_0xea39fa[_0x7b7e('0x25')]);_0x28e6ac[_0x7b7e('0x29')]=_[_0x7b7e('0x2a')](_0x28e6ac[_0x7b7e('0x2b')],_0x28e6ac[_0x7b7e('0x25')]);_0x5d2526[_0x7b7e('0x2c')]=_[_0x7b7e('0x2a')](_0x28e6ac['model'],qs[_0x7b7e('0x2d')](_0xea39fa[_0x7b7e('0x25')][_0x7b7e('0x2d')]));_0x5d2526['attributes']=_0x5d2526[_0x7b7e('0x2c')][_0x7b7e('0x2e')]?_0x5d2526[_0x7b7e('0x2c')]:_0x28e6ac[_0x7b7e('0x2b')];_0x5d2526[_0x7b7e('0x30')]=qs['sort'](_0xea39fa['query']['sort']);_0x5d2526[_0x7b7e('0x32')]=qs[_0x7b7e('0x29')](_[_0x7b7e('0x33')](_0xea39fa['query'],_0x28e6ac[_0x7b7e('0x29')]));if(_0xea39fa[_0x7b7e('0x25')][_0x7b7e('0x37')]){_0x5d2526['where']=_[_0x7b7e('0x36')](_0x5d2526[_0x7b7e('0x32')],{'$or':_[_0x7b7e('0x4b')](_0x5d2526[_0x7b7e('0x2c')],function(_0x538c5f){var _0x315923={};_0x315923[_0x538c5f]={'$like':'%'+_0xea39fa[_0x7b7e('0x25')][_0x7b7e('0x37')]+'%'};return _0x315923;})});}_0x5d2526=_[_0x7b7e('0x36')]({},_0x5d2526,_0xea39fa['options']);return _0x2aca93['getAnyConditions'](_0x5d2526);}})[_0x7b7e('0x20')](function(_0x58a963){if(_0x58a963){_0x4ff2c8=_0x58a963[_0x7b7e('0x2e')];if(!_0xea39fa[_0x7b7e('0x25')][_0x7b7e('0x2f')](_0x7b7e('0x4c'))){_0x5d2526['limit']=qs[_0x7b7e('0x19')](_0xea39fa[_0x7b7e('0x25')][_0x7b7e('0x19')]);_0x5d2526[_0x7b7e('0x18')]=qs[_0x7b7e('0x18')](_0xea39fa[_0x7b7e('0x25')][_0x7b7e('0x18')]);}return _0x2aca93[_0x7b7e('0x4d')](_0x5d2526);}})[_0x7b7e('0x20')](function(_0x23f12e){if(_0x23f12e){return _0x23f12e?{'count':_0x4ff2c8,'rows':_0x23f12e}:null;}})[_0x7b7e('0x20')](respondWithResult(_0x4e2c2b,null))[_0x7b7e('0x3d')](handleError(_0x4e2c2b,null));};exports[_0x7b7e('0x4e')]=function(_0x24189a,_0x391343,_0x28e2e9){if(_0x24189a['body']['id']){delete _0x24189a[_0x7b7e('0x41')]['id'];}return db[_0x7b7e('0x23')][_0x7b7e('0x3f')]({'where':{'id':_0x24189a[_0x7b7e('0x42')]['id']}})[_0x7b7e('0x20')](handleEntityNotFound(_0x391343,null))[_0x7b7e('0x20')](function(_0x2bf2da){if(_0x2bf2da){_0x24189a['body'][_0x7b7e('0x4f')]=_0x2bf2da['id'];return db[_0x7b7e('0x50')][_0x7b7e('0x40')](_0x24189a[_0x7b7e('0x41')]);}})[_0x7b7e('0x20')](respondWithResult(_0x391343,null))['catch'](handleError(_0x391343,null));};exports['getActions']=function(_0xb294bd,_0x110f2b,_0x145564){var _0x87d33a={};var _0x1887c7={};var _0x332ded;var _0x2c65b8;return db[_0x7b7e('0x23')][_0x7b7e('0x4a')]({'where':{'id':_0xb294bd[_0x7b7e('0x42')]['id']}})['then'](handleEntityNotFound(_0x110f2b,null))[_0x7b7e('0x20')](function(_0xe50a65){if(_0xe50a65){_0x332ded=_0xe50a65;_0x1887c7[_0x7b7e('0x2b')]=_[_0x7b7e('0x28')](db[_0x7b7e('0x50')][_0x7b7e('0x24')]);_0x1887c7[_0x7b7e('0x25')]=_['keys'](_0xb294bd[_0x7b7e('0x25')]);_0x1887c7['filters']=_[_0x7b7e('0x2a')](_0x1887c7[_0x7b7e('0x2b')],_0x1887c7['query']);_0x87d33a[_0x7b7e('0x2c')]=_[_0x7b7e('0x2a')](_0x1887c7[_0x7b7e('0x2b')],qs[_0x7b7e('0x2d')](_0xb294bd[_0x7b7e('0x25')]['fields']));_0x87d33a[_0x7b7e('0x2c')]=_0x87d33a['attributes']['length']?_0x87d33a[_0x7b7e('0x2c')]:_0x1887c7[_0x7b7e('0x2b')];_0x87d33a[_0x7b7e('0x30')]=qs[_0x7b7e('0x31')](_0xb294bd['query'][_0x7b7e('0x31')]);_0x87d33a['where']=qs[_0x7b7e('0x29')](_[_0x7b7e('0x33')](_0xb294bd[_0x7b7e('0x25')],_0x1887c7[_0x7b7e('0x29')]));if(_0xb294bd[_0x7b7e('0x25')][_0x7b7e('0x37')]){_0x87d33a[_0x7b7e('0x32')]=_['merge'](_0x87d33a[_0x7b7e('0x32')],{'$or':_[_0x7b7e('0x4b')](_0x87d33a['attributes'],function(_0x87a287){var _0x43c42e={};_0x43c42e[_0x87a287]={'$like':'%'+_0xb294bd[_0x7b7e('0x25')][_0x7b7e('0x37')]+'%'};return _0x43c42e;})});}_0x87d33a=_[_0x7b7e('0x36')]({},_0x87d33a,_0xb294bd[_0x7b7e('0x3e')]);return _0x332ded[_0x7b7e('0x51')](_0x87d33a);}})[_0x7b7e('0x20')](function(_0x41e2b5){if(_0x41e2b5){_0x2c65b8=_0x41e2b5[_0x7b7e('0x2e')];if(!_0xb294bd[_0x7b7e('0x25')][_0x7b7e('0x2f')](_0x7b7e('0x4c'))){_0x87d33a[_0x7b7e('0x19')]=qs[_0x7b7e('0x19')](_0xb294bd[_0x7b7e('0x25')][_0x7b7e('0x19')]);_0x87d33a[_0x7b7e('0x18')]=qs[_0x7b7e('0x18')](_0xb294bd[_0x7b7e('0x25')][_0x7b7e('0x18')]);}return _0x332ded[_0x7b7e('0x51')](_0x87d33a);}})['then'](function(_0x2691c4){if(_0x2691c4){return _0x2691c4?{'count':_0x2c65b8,'rows':_0x2691c4}:null;}})[_0x7b7e('0x20')](respondWithResult(_0x110f2b,null))['catch'](handleError(_0x110f2b,null));};
\ No newline at end of file
+var _0xab53=['name','Trigger','rawAttributes','keys','dateStart','query','dateEnd','filters','model','attributes','intersection','fields','nolimit','order','sort','where','pick','day','filter','merge','map','include','catch','show','params','length','includeAll','options','find','create','body','update','TriggerAllId','Condition','addAnyCondition','getAllConditions','findOne','getAnyConditions','hasOwnProperty','Action','getActions','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','end','error','stack'];(function(_0xa4b8e1,_0x49d30b){var _0x507e42=function(_0xca2abc){while(--_0xca2abc){_0xa4b8e1['push'](_0xa4b8e1['shift']());}};_0x507e42(++_0x49d30b);}(_0xab53,0x1f1));var _0x3ab5=function(_0x243b59,_0x3f9495){_0x243b59=_0x243b59-0x0;var _0x3e1676=_0xab53[_0x243b59];return _0x3e1676;};'use strict';var pdf=require(_0x3ab5('0x0'));var emlformat=require(_0x3ab5('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x3ab5('0x2'));var jsonpatch=require(_0x3ab5('0x3'));var rp=require(_0x3ab5('0x4'));var moment=require(_0x3ab5('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x3ab5('0x6'));var ejs=require(_0x3ab5('0x7'));var fs=require('fs');var _=require(_0x3ab5('0x8'));var squel=require('squel');var crypto=require(_0x3ab5('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x3ab5('0xa'));var toCsv=require(_0x3ab5('0x6'));var querystring=require(_0x3ab5('0xb'));var Papa=require(_0x3ab5('0xc'));var Redis=require('ioredis');var qs=require(_0x3ab5('0xd'));var logger=require(_0x3ab5('0xe'))(_0x3ab5('0xf'));var utils=require(_0x3ab5('0x10'));var config=require(_0x3ab5('0x11'));var db=require(_0x3ab5('0x12'))['db'];function respondWithStatusCode(_0x2dd47a,_0x252144){_0x252144=_0x252144||0xcc;return function(_0x3bf9a1){if(_0x3bf9a1){return _0x2dd47a[_0x3ab5('0x13')](_0x252144);}return _0x2dd47a[_0x3ab5('0x14')](_0x252144)['end']();};}function respondWithResult(_0xe411b,_0xd6c6fa){_0xd6c6fa=_0xd6c6fa||0xc8;return function(_0x1b85dc){if(_0x1b85dc){return _0xe411b[_0x3ab5('0x14')](_0xd6c6fa)[_0x3ab5('0x15')](_0x1b85dc);}};}function respondWithFilteredResult(_0x5d4499,_0x29a5be){return function(_0x206fe6){if(_0x206fe6){var _0x4e62e9=_0x206fe6[_0x3ab5('0x16')],_0x2738c6=_0x29a5be['offset'],_0x50c38c=_0x29a5be[_0x3ab5('0x17')]+_0x29a5be[_0x3ab5('0x18')],_0x46028a;if(_0x50c38c>=_0x4e62e9){_0x50c38c=_0x4e62e9;_0x46028a=0xc8;}else{_0x46028a=0xce;}_0x5d4499[_0x3ab5('0x14')](_0x46028a);return _0x5d4499[_0x3ab5('0x19')](_0x3ab5('0x1a'),_0x2738c6+'-'+_0x50c38c+'/'+_0x4e62e9)[_0x3ab5('0x15')](_0x206fe6);}return null;};}function patchUpdates(_0x427a41){return function(_0x8fc8c5){try{jsonpatch[_0x3ab5('0x1b')](_0x8fc8c5,_0x427a41,!![]);}catch(_0x1f1425){return BPromise[_0x3ab5('0x1c')](_0x1f1425);}return _0x8fc8c5[_0x3ab5('0x1d')]();};}function saveUpdates(_0x27b475,_0x5e537f){return function(_0x58b15d){if(_0x58b15d){return _0x58b15d['update'](_0x27b475)[_0x3ab5('0x1e')](function(_0x5ef930){return _0x5ef930;});}return null;};}function removeEntity(_0x541ff7,_0x2653bc){return function(_0x2a02ff){if(_0x2a02ff){return _0x2a02ff[_0x3ab5('0x1f')]()['then'](function(){_0x541ff7[_0x3ab5('0x14')](0xcc)[_0x3ab5('0x20')]();});}};}function handleEntityNotFound(_0x15045e,_0x5cd176){return function(_0x4eb69f){if(!_0x4eb69f){_0x15045e[_0x3ab5('0x13')](0x194);}return _0x4eb69f;};}function handleError(_0x304294,_0x18cb43){_0x18cb43=_0x18cb43||0x1f4;return function(_0x144cbc){logger[_0x3ab5('0x21')](_0x144cbc[_0x3ab5('0x22')]);if(_0x144cbc['name']){delete _0x144cbc[_0x3ab5('0x23')];}_0x304294['status'](_0x18cb43)['send'](_0x144cbc);};}exports['index']=function(_0x94d3d7,_0x47f9aa){var _0x3d8a72={},_0x24e526={},_0x130981={'count':0x0,'rows':[]};var _0x1ebfc5=db[_0x3ab5('0x24')][_0x3ab5('0x25')];_0x24e526['model']=_[_0x3ab5('0x26')](_0x1ebfc5);var _0x1ad0a7={'dateStart':_0x94d3d7['query'][_0x3ab5('0x27')],'dateEnd':_0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x29')]};delete _0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x27')];delete _0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x29')];_0x24e526[_0x3ab5('0x28')]=_[_0x3ab5('0x26')](_0x94d3d7[_0x3ab5('0x28')]);_0x24e526[_0x3ab5('0x2a')]=_['intersection'](_0x24e526[_0x3ab5('0x2b')],_0x24e526[_0x3ab5('0x28')]);_0x3d8a72[_0x3ab5('0x2c')]=_[_0x3ab5('0x2d')](_0x24e526[_0x3ab5('0x2b')],qs['fields'](_0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x2e')]));_0x3d8a72[_0x3ab5('0x2c')]=_0x3d8a72['attributes']['length']?_0x3d8a72['attributes']:_0x24e526[_0x3ab5('0x2b')];if(!_0x94d3d7[_0x3ab5('0x28')]['hasOwnProperty'](_0x3ab5('0x2f'))){_0x3d8a72['limit']=qs[_0x3ab5('0x18')](_0x94d3d7['query']['limit']);_0x3d8a72[_0x3ab5('0x17')]=qs['offset'](_0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x17')]);}_0x3d8a72[_0x3ab5('0x30')]=qs[_0x3ab5('0x31')](_0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x31')]);_0x3d8a72[_0x3ab5('0x32')]=qs['filters'](_[_0x3ab5('0x33')](_0x94d3d7[_0x3ab5('0x28')],_0x24e526[_0x3ab5('0x2a')]));if(_0x1ad0a7['dateStart']){if(_0x1ad0a7[_0x3ab5('0x29')]){_0x1ad0a7['dateEnd']=moment(_0x1ad0a7['dateEnd'])['add'](0x1,_0x3ab5('0x34'));}else{_0x1ad0a7['dateEnd']=moment(_0x1ad0a7[_0x3ab5('0x27')])['add'](0x1,_0x3ab5('0x34'));}_['merge'](_0x3d8a72[_0x3ab5('0x32')],{'createdAt':{'$gte':_0x1ad0a7['dateStart'],'$lte':_0x1ad0a7[_0x3ab5('0x29')]}});}if(_0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x35')]){_0x3d8a72[_0x3ab5('0x32')]=_[_0x3ab5('0x36')](_0x3d8a72[_0x3ab5('0x32')],{'$or':_[_0x3ab5('0x37')](_0x3d8a72[_0x3ab5('0x2c')],function(_0x1b374e){var _0x3ca25c={};_0x3ca25c[_0x1b374e]={'$like':'%'+_0x94d3d7[_0x3ab5('0x28')][_0x3ab5('0x35')]+'%'};return _0x3ca25c;})});}_0x3d8a72=_[_0x3ab5('0x36')]({},_0x3d8a72,_0x94d3d7['options']);var _0x2929ab={'where':_0x3d8a72[_0x3ab5('0x32')]};return db[_0x3ab5('0x24')]['count'](_0x2929ab)[_0x3ab5('0x1e')](function(_0x32f809){_0x130981[_0x3ab5('0x16')]=_0x32f809;if(_0x94d3d7[_0x3ab5('0x28')]['includeAll']){_0x3d8a72[_0x3ab5('0x38')]=[{'all':!![]}];}return db[_0x3ab5('0x24')]['findAll'](_0x3d8a72);})[_0x3ab5('0x1e')](function(_0x5c945f){_0x130981['rows']=_0x5c945f;return _0x130981;})[_0x3ab5('0x1e')](respondWithFilteredResult(_0x47f9aa,_0x3d8a72))[_0x3ab5('0x39')](handleError(_0x47f9aa,null));};exports[_0x3ab5('0x3a')]=function(_0x30dd1a,_0x4f8dd0){var _0x479911={'raw':![],'where':{'id':_0x30dd1a[_0x3ab5('0x3b')]['id']}},_0x5c6797={};_0x5c6797[_0x3ab5('0x2b')]=_[_0x3ab5('0x26')](db['Trigger'][_0x3ab5('0x25')]);_0x5c6797[_0x3ab5('0x28')]=_['keys'](_0x30dd1a['query']);_0x5c6797[_0x3ab5('0x2a')]=_[_0x3ab5('0x2d')](_0x5c6797[_0x3ab5('0x2b')],_0x5c6797[_0x3ab5('0x28')]);_0x479911[_0x3ab5('0x2c')]=_[_0x3ab5('0x2d')](_0x5c6797['model'],qs[_0x3ab5('0x2e')](_0x30dd1a[_0x3ab5('0x28')]['fields']));_0x479911['attributes']=_0x479911[_0x3ab5('0x2c')][_0x3ab5('0x3c')]?_0x479911[_0x3ab5('0x2c')]:_0x5c6797[_0x3ab5('0x2b')];if(_0x30dd1a[_0x3ab5('0x28')][_0x3ab5('0x3d')]){_0x479911[_0x3ab5('0x38')]=[{'all':!![]}];}_0x479911=_[_0x3ab5('0x36')]({},_0x479911,_0x30dd1a[_0x3ab5('0x3e')]);return db[_0x3ab5('0x24')][_0x3ab5('0x3f')](_0x479911)[_0x3ab5('0x1e')](handleEntityNotFound(_0x4f8dd0,null))['then'](respondWithResult(_0x4f8dd0,null))[_0x3ab5('0x39')](handleError(_0x4f8dd0,null));};exports['create']=function(_0x5de65a,_0x589bf2){return db[_0x3ab5('0x24')][_0x3ab5('0x40')](_0x5de65a[_0x3ab5('0x41')],{})[_0x3ab5('0x1e')](respondWithResult(_0x589bf2,0xc9))['catch'](handleError(_0x589bf2,null));};exports[_0x3ab5('0x42')]=function(_0x57ac87,_0x39872c){if(_0x57ac87[_0x3ab5('0x41')]['id']){delete _0x57ac87[_0x3ab5('0x41')]['id'];}return db[_0x3ab5('0x24')]['find']({'where':{'id':_0x57ac87['params']['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0x39872c,null))[_0x3ab5('0x1e')](saveUpdates(_0x57ac87[_0x3ab5('0x41')],null))['then'](respondWithResult(_0x39872c,null))[_0x3ab5('0x39')](handleError(_0x39872c,null));};exports[_0x3ab5('0x1f')]=function(_0x56743c,_0x4ed2cd){return db[_0x3ab5('0x24')][_0x3ab5('0x3f')]({'where':{'id':_0x56743c['params']['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0x4ed2cd,null))[_0x3ab5('0x1e')](removeEntity(_0x4ed2cd,null))[_0x3ab5('0x39')](handleError(_0x4ed2cd,null));};exports['addAllCondition']=function(_0x478a9,_0x39398a,_0x30b297){if(_0x478a9[_0x3ab5('0x41')]['id']){delete _0x478a9[_0x3ab5('0x41')]['id'];}return db[_0x3ab5('0x24')][_0x3ab5('0x3f')]({'where':{'id':_0x478a9['params']['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0x39398a,null))[_0x3ab5('0x1e')](function(_0x2a8988){if(_0x2a8988){_0x478a9[_0x3ab5('0x41')][_0x3ab5('0x43')]=_0x2a8988['id'];return db[_0x3ab5('0x44')][_0x3ab5('0x40')](_0x478a9['body']);}})[_0x3ab5('0x1e')](respondWithResult(_0x39398a,null))[_0x3ab5('0x39')](handleError(_0x39398a,null));};exports[_0x3ab5('0x45')]=function(_0x4331fa,_0x551ec8,_0x471fb7){if(_0x4331fa['body']['id']){delete _0x4331fa[_0x3ab5('0x41')]['id'];}return db[_0x3ab5('0x24')]['find']({'where':{'id':_0x4331fa[_0x3ab5('0x3b')]['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0x551ec8,null))[_0x3ab5('0x1e')](function(_0x50295a){if(_0x50295a){_0x4331fa[_0x3ab5('0x41')]['TriggerAnyId']=_0x50295a['id'];return db[_0x3ab5('0x44')]['create'](_0x4331fa['body']);}})[_0x3ab5('0x1e')](respondWithResult(_0x551ec8,null))[_0x3ab5('0x39')](handleError(_0x551ec8,null));};exports[_0x3ab5('0x46')]=function(_0x4883ea,_0xc9ba6c,_0x33d4f4){var _0x34aeb4={};var _0x3277b0={};var _0x151d19;var _0x50aa37;return db['Trigger'][_0x3ab5('0x47')]({'where':{'id':_0x4883ea['params']['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0xc9ba6c,null))[_0x3ab5('0x1e')](function(_0x5e569f){if(_0x5e569f){_0x151d19=_0x5e569f;_0x3277b0[_0x3ab5('0x2b')]=_[_0x3ab5('0x26')](db[_0x3ab5('0x44')][_0x3ab5('0x25')]);_0x3277b0[_0x3ab5('0x28')]=_[_0x3ab5('0x26')](_0x4883ea[_0x3ab5('0x28')]);_0x3277b0[_0x3ab5('0x2a')]=_[_0x3ab5('0x2d')](_0x3277b0['model'],_0x3277b0[_0x3ab5('0x28')]);_0x34aeb4['attributes']=_['intersection'](_0x3277b0[_0x3ab5('0x2b')],qs[_0x3ab5('0x2e')](_0x4883ea[_0x3ab5('0x28')][_0x3ab5('0x2e')]));_0x34aeb4[_0x3ab5('0x2c')]=_0x34aeb4[_0x3ab5('0x2c')]['length']?_0x34aeb4[_0x3ab5('0x2c')]:_0x3277b0[_0x3ab5('0x2b')];_0x34aeb4[_0x3ab5('0x30')]=qs[_0x3ab5('0x31')](_0x4883ea[_0x3ab5('0x28')][_0x3ab5('0x31')]);_0x34aeb4[_0x3ab5('0x32')]=qs['filters'](_[_0x3ab5('0x33')](_0x4883ea[_0x3ab5('0x28')],_0x3277b0[_0x3ab5('0x2a')]));if(_0x4883ea['query'][_0x3ab5('0x35')]){_0x34aeb4['where']=_[_0x3ab5('0x36')](_0x34aeb4[_0x3ab5('0x32')],{'$or':_[_0x3ab5('0x37')](_0x34aeb4[_0x3ab5('0x2c')],function(_0x58f75b){var _0x2d8355={};_0x2d8355[_0x58f75b]={'$like':'%'+_0x4883ea['query'][_0x3ab5('0x35')]+'%'};return _0x2d8355;})});}_0x34aeb4=_['merge']({},_0x34aeb4,_0x4883ea[_0x3ab5('0x3e')]);return _0x151d19[_0x3ab5('0x46')](_0x34aeb4);}})[_0x3ab5('0x1e')](function(_0x1d1782){if(_0x1d1782){_0x50aa37=_0x1d1782['length'];if(!_0x4883ea[_0x3ab5('0x28')]['hasOwnProperty']('nolimit')){_0x34aeb4[_0x3ab5('0x18')]=qs[_0x3ab5('0x18')](_0x4883ea[_0x3ab5('0x28')]['limit']);_0x34aeb4[_0x3ab5('0x17')]=qs[_0x3ab5('0x17')](_0x4883ea[_0x3ab5('0x28')][_0x3ab5('0x17')]);}return _0x151d19[_0x3ab5('0x46')](_0x34aeb4);}})[_0x3ab5('0x1e')](function(_0x56b9af){if(_0x56b9af){return _0x56b9af?{'count':_0x50aa37,'rows':_0x56b9af}:null;}})[_0x3ab5('0x1e')](respondWithResult(_0xc9ba6c,null))[_0x3ab5('0x39')](handleError(_0xc9ba6c,null));};exports[_0x3ab5('0x48')]=function(_0x527b1c,_0x4386d1,_0x5d00c2){var _0x27e0a1={};var _0x1a2b64={};var _0x5cffcd;var _0x4b1053;return db[_0x3ab5('0x24')]['findOne']({'where':{'id':_0x527b1c[_0x3ab5('0x3b')]['id']}})['then'](handleEntityNotFound(_0x4386d1,null))[_0x3ab5('0x1e')](function(_0x5dae3e){if(_0x5dae3e){_0x5cffcd=_0x5dae3e;_0x1a2b64[_0x3ab5('0x2b')]=_[_0x3ab5('0x26')](db[_0x3ab5('0x44')][_0x3ab5('0x25')]);_0x1a2b64[_0x3ab5('0x28')]=_[_0x3ab5('0x26')](_0x527b1c[_0x3ab5('0x28')]);_0x1a2b64[_0x3ab5('0x2a')]=_[_0x3ab5('0x2d')](_0x1a2b64[_0x3ab5('0x2b')],_0x1a2b64[_0x3ab5('0x28')]);_0x27e0a1[_0x3ab5('0x2c')]=_[_0x3ab5('0x2d')](_0x1a2b64[_0x3ab5('0x2b')],qs[_0x3ab5('0x2e')](_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x2e')]));_0x27e0a1['attributes']=_0x27e0a1[_0x3ab5('0x2c')][_0x3ab5('0x3c')]?_0x27e0a1[_0x3ab5('0x2c')]:_0x1a2b64['model'];_0x27e0a1[_0x3ab5('0x30')]=qs[_0x3ab5('0x31')](_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x31')]);_0x27e0a1[_0x3ab5('0x32')]=qs[_0x3ab5('0x2a')](_[_0x3ab5('0x33')](_0x527b1c[_0x3ab5('0x28')],_0x1a2b64[_0x3ab5('0x2a')]));if(_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x35')]){_0x27e0a1[_0x3ab5('0x32')]=_[_0x3ab5('0x36')](_0x27e0a1['where'],{'$or':_[_0x3ab5('0x37')](_0x27e0a1[_0x3ab5('0x2c')],function(_0x201785){var _0xec2ab9={};_0xec2ab9[_0x201785]={'$like':'%'+_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x35')]+'%'};return _0xec2ab9;})});}_0x27e0a1=_[_0x3ab5('0x36')]({},_0x27e0a1,_0x527b1c['options']);return _0x5cffcd[_0x3ab5('0x48')](_0x27e0a1);}})[_0x3ab5('0x1e')](function(_0x36e8e9){if(_0x36e8e9){_0x4b1053=_0x36e8e9[_0x3ab5('0x3c')];if(!_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x49')](_0x3ab5('0x2f'))){_0x27e0a1[_0x3ab5('0x18')]=qs[_0x3ab5('0x18')](_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x18')]);_0x27e0a1['offset']=qs[_0x3ab5('0x17')](_0x527b1c[_0x3ab5('0x28')][_0x3ab5('0x17')]);}return _0x5cffcd[_0x3ab5('0x48')](_0x27e0a1);}})[_0x3ab5('0x1e')](function(_0x2bbea8){if(_0x2bbea8){return _0x2bbea8?{'count':_0x4b1053,'rows':_0x2bbea8}:null;}})['then'](respondWithResult(_0x4386d1,null))[_0x3ab5('0x39')](handleError(_0x4386d1,null));};exports['addAction']=function(_0x2d3c03,_0x240d57,_0x433a1d){if(_0x2d3c03[_0x3ab5('0x41')]['id']){delete _0x2d3c03[_0x3ab5('0x41')]['id'];}return db[_0x3ab5('0x24')]['find']({'where':{'id':_0x2d3c03[_0x3ab5('0x3b')]['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0x240d57,null))[_0x3ab5('0x1e')](function(_0x2e6771){if(_0x2e6771){_0x2d3c03[_0x3ab5('0x41')]['TriggerId']=_0x2e6771['id'];return db[_0x3ab5('0x4a')][_0x3ab5('0x40')](_0x2d3c03[_0x3ab5('0x41')]);}})[_0x3ab5('0x1e')](respondWithResult(_0x240d57,null))['catch'](handleError(_0x240d57,null));};exports[_0x3ab5('0x4b')]=function(_0xd44a71,_0x1ec9a2,_0x30bbaa){var _0x191975={};var _0x298163={};var _0x307d81;var _0x4be88c;return db['Trigger'][_0x3ab5('0x47')]({'where':{'id':_0xd44a71['params']['id']}})[_0x3ab5('0x1e')](handleEntityNotFound(_0x1ec9a2,null))['then'](function(_0x393b1b){if(_0x393b1b){_0x307d81=_0x393b1b;_0x298163[_0x3ab5('0x2b')]=_[_0x3ab5('0x26')](db[_0x3ab5('0x4a')]['rawAttributes']);_0x298163['query']=_[_0x3ab5('0x26')](_0xd44a71[_0x3ab5('0x28')]);_0x298163[_0x3ab5('0x2a')]=_[_0x3ab5('0x2d')](_0x298163[_0x3ab5('0x2b')],_0x298163[_0x3ab5('0x28')]);_0x191975[_0x3ab5('0x2c')]=_[_0x3ab5('0x2d')](_0x298163[_0x3ab5('0x2b')],qs[_0x3ab5('0x2e')](_0xd44a71[_0x3ab5('0x28')]['fields']));_0x191975[_0x3ab5('0x2c')]=_0x191975[_0x3ab5('0x2c')]['length']?_0x191975[_0x3ab5('0x2c')]:_0x298163[_0x3ab5('0x2b')];_0x191975[_0x3ab5('0x30')]=qs['sort'](_0xd44a71[_0x3ab5('0x28')]['sort']);_0x191975[_0x3ab5('0x32')]=qs[_0x3ab5('0x2a')](_[_0x3ab5('0x33')](_0xd44a71[_0x3ab5('0x28')],_0x298163[_0x3ab5('0x2a')]));if(_0xd44a71[_0x3ab5('0x28')]['filter']){_0x191975[_0x3ab5('0x32')]=_['merge'](_0x191975[_0x3ab5('0x32')],{'$or':_[_0x3ab5('0x37')](_0x191975[_0x3ab5('0x2c')],function(_0x31ea72){var _0x59793a={};_0x59793a[_0x31ea72]={'$like':'%'+_0xd44a71[_0x3ab5('0x28')][_0x3ab5('0x35')]+'%'};return _0x59793a;})});}_0x191975=_[_0x3ab5('0x36')]({},_0x191975,_0xd44a71[_0x3ab5('0x3e')]);return _0x307d81['getActions'](_0x191975);}})['then'](function(_0x593921){if(_0x593921){_0x4be88c=_0x593921[_0x3ab5('0x3c')];if(!_0xd44a71[_0x3ab5('0x28')][_0x3ab5('0x49')](_0x3ab5('0x2f'))){_0x191975[_0x3ab5('0x18')]=qs[_0x3ab5('0x18')](_0xd44a71[_0x3ab5('0x28')][_0x3ab5('0x18')]);_0x191975[_0x3ab5('0x17')]=qs[_0x3ab5('0x17')](_0xd44a71[_0x3ab5('0x28')][_0x3ab5('0x17')]);}return _0x307d81[_0x3ab5('0x4b')](_0x191975);}})['then'](function(_0x136505){if(_0x136505){return _0x136505?{'count':_0x4be88c,'rows':_0x136505}:null;}})[_0x3ab5('0x1e')](respondWithResult(_0x1ec9a2,null))['catch'](handleError(_0x1ec9a2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd578=['lodash','util','../../config/logger','api','moment','bluebird','define','tools_triggers'];(function(_0x15f8ad,_0x5275c3){var _0xc0238a=function(_0x5550c8){while(--_0x5550c8){_0x15f8ad['push'](_0x15f8ad['shift']());}};_0xc0238a(++_0x5275c3);}(_0xd578,0xe8));var _0x8d57=function(_0x48d038,_0x443f02){_0x48d038=_0x48d038-0x0;var _0x56edef=_0xd578[_0x48d038];return _0x56edef;};'use strict';var _=require(_0x8d57('0x0'));var util=require(_0x8d57('0x1'));var logger=require(_0x8d57('0x2'))(_0x8d57('0x3'));var moment=require(_0x8d57('0x4'));var BPromise=require(_0x8d57('0x5'));var rp=require('request-promise');var attributes=require('./trigger.attributes');module['exports']=function(_0x22e5d2,_0x496a2f){return _0x22e5d2[_0x8d57('0x6')]('Trigger',attributes,{'tableName':_0x8d57('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x68b1=['lodash','util','../../config/logger','api','moment','request-promise','./trigger.attributes','exports','define','Trigger','tools_triggers'];(function(_0x1ccdf7,_0x215d5a){var _0x52a0ae=function(_0x40324a){while(--_0x40324a){_0x1ccdf7['push'](_0x1ccdf7['shift']());}};_0x52a0ae(++_0x215d5a);}(_0x68b1,0x16b));var _0x168b=function(_0x46b1c9,_0x169f87){_0x46b1c9=_0x46b1c9-0x0;var _0x17569c=_0x68b1[_0x46b1c9];return _0x17569c;};'use strict';var _=require(_0x168b('0x0'));var util=require(_0x168b('0x1'));var logger=require(_0x168b('0x2'))(_0x168b('0x3'));var moment=require(_0x168b('0x4'));var BPromise=require('bluebird');var rp=require(_0x168b('0x5'));var attributes=require(_0x168b('0x6'));module[_0x168b('0x7')]=function(_0x6ca1fd,_0x5a3672){return _0x6ca1fd[_0x168b('0x8')](_0x168b('0x9'),attributes,{'tableName':_0x168b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb87=['raw','where','limit','include','model','attributes','map','stringify','catch','ShowTrigger','find','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','then','info','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','error','code','Trigger,\x20%s,\x20%s','message','result','GetTrigger','Trigger','findAll','options'];(function(_0x315aea,_0x318a80){var _0x4a4bdb=function(_0x7c049c){while(--_0x7c049c){_0x315aea['push'](_0x315aea['shift']());}};_0x4a4bdb(++_0x318a80);}(_0xdb87,0xb0));var _0x7db8=function(_0x4040cd,_0x13fad0){_0x4040cd=_0x4040cd-0x0;var _0x4da173=_0xdb87[_0x4040cd];return _0x4da173;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x7db8('0x0'));var BPromise=require(_0x7db8('0x1'));var rs=require(_0x7db8('0x2'));var fs=require('fs');var db=require(_0x7db8('0x3'))['db'];var utils=require(_0x7db8('0x4'));var logger=require(_0x7db8('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x7db8('0x6'));var client=jayson['client'][_0x7db8('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x2a9eec,_0x492dcf,_0x379b92){return new BPromise(function(_0x4bc97e,_0x34ef2a){return client['request'](_0x2a9eec,_0x379b92)[_0x7db8('0x8')](function(_0x5712f3){logger[_0x7db8('0x9')]('Trigger,\x20%s,\x20%s',_0x492dcf,_0x7db8('0xa'));logger[_0x7db8('0xb')](_0x7db8('0xc'),_0x492dcf,_0x7db8('0xa'),JSON['stringify'](_0x5712f3));if(_0x5712f3[_0x7db8('0xd')]){if(_0x5712f3[_0x7db8('0xd')][_0x7db8('0xe')]===0x1f4){logger[_0x7db8('0xd')](_0x7db8('0xf'),_0x492dcf,_0x5712f3[_0x7db8('0xd')][_0x7db8('0x10')]);return _0x34ef2a(_0x5712f3['error']['message']);}logger[_0x7db8('0xd')](_0x7db8('0xf'),_0x492dcf,_0x5712f3['error'][_0x7db8('0x10')]);return _0x4bc97e(_0x5712f3[_0x7db8('0xd')]['message']);}else{logger[_0x7db8('0x9')](_0x7db8('0xf'),_0x492dcf,_0x7db8('0xa'));_0x4bc97e(_0x5712f3[_0x7db8('0x11')][_0x7db8('0x10')]);}})['catch'](function(_0x23803f){logger['error'](_0x7db8('0xf'),_0x492dcf,_0x23803f);_0x34ef2a(_0x23803f);});});}exports[_0x7db8('0x12')]=function(_0x2c559b){var _0x33ccd7=this;return new Promise(function(_0x1d8149,_0x3aa5ce){return db[_0x7db8('0x13')][_0x7db8('0x14')]({'raw':_0x2c559b[_0x7db8('0x15')]?_0x2c559b[_0x7db8('0x15')][_0x7db8('0x16')]===undefined?!![]:![]:!![],'where':_0x2c559b[_0x7db8('0x15')]?_0x2c559b[_0x7db8('0x15')][_0x7db8('0x17')]||null:null,'attributes':_0x2c559b[_0x7db8('0x15')]?_0x2c559b[_0x7db8('0x15')]['attributes']||null:null,'limit':_0x2c559b[_0x7db8('0x15')]?_0x2c559b['options'][_0x7db8('0x18')]||null:null,'include':_0x2c559b[_0x7db8('0x15')]?_0x2c559b['options'][_0x7db8('0x19')]?_['map'](_0x2c559b[_0x7db8('0x15')][_0x7db8('0x19')],function(_0xaa2e16){return{'model':db[_0xaa2e16[_0x7db8('0x1a')]],'as':_0xaa2e16['as'],'attributes':_0xaa2e16[_0x7db8('0x1b')],'include':_0xaa2e16[_0x7db8('0x19')]?_[_0x7db8('0x1c')](_0xaa2e16['include'],function(_0x4433eb){return{'model':db[_0x4433eb[_0x7db8('0x1a')]],'as':_0x4433eb['as'],'attributes':_0x4433eb[_0x7db8('0x1b')],'include':_0x4433eb[_0x7db8('0x19')]?_['map'](_0x4433eb[_0x7db8('0x19')],function(_0x3b1912){return{'model':db[_0x3b1912[_0x7db8('0x1a')]],'as':_0x3b1912['as'],'attributes':_0x3b1912[_0x7db8('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x7db8('0x8')](function(_0x4b3d4d){logger[_0x7db8('0x9')](_0x7db8('0x12'),_0x2c559b);logger['debug'](_0x7db8('0x12'),_0x2c559b,JSON[_0x7db8('0x1d')](_0x4b3d4d));_0x1d8149(_0x4b3d4d);})[_0x7db8('0x1e')](function(_0x5f39e4){logger[_0x7db8('0xd')](_0x7db8('0x12'),_0x5f39e4[_0x7db8('0x10')],_0x2c559b);_0x3aa5ce(_0x33ccd7[_0x7db8('0xd')](0x1f4,_0x5f39e4['message']));});});};exports[_0x7db8('0x1f')]=function(_0x4cf5bc){var _0x50e5d9=this;return new Promise(function(_0x31f515,_0x11a4cc){return db['Trigger'][_0x7db8('0x20')]({'raw':_0x4cf5bc[_0x7db8('0x15')]?_0x4cf5bc[_0x7db8('0x15')][_0x7db8('0x16')]===undefined?!![]:![]:!![],'where':_0x4cf5bc[_0x7db8('0x15')]?_0x4cf5bc[_0x7db8('0x15')][_0x7db8('0x17')]||null:null,'attributes':_0x4cf5bc['options']?_0x4cf5bc[_0x7db8('0x15')][_0x7db8('0x1b')]||null:null,'include':_0x4cf5bc[_0x7db8('0x15')]?_0x4cf5bc[_0x7db8('0x15')][_0x7db8('0x19')]?_[_0x7db8('0x1c')](_0x4cf5bc[_0x7db8('0x15')][_0x7db8('0x19')],function(_0x4f1a33){return{'model':db[_0x4f1a33[_0x7db8('0x1a')]],'as':_0x4f1a33['as'],'attributes':_0x4f1a33[_0x7db8('0x1b')],'include':_0x4f1a33[_0x7db8('0x19')]?_['map'](_0x4f1a33[_0x7db8('0x19')],function(_0x50a171){return{'model':db[_0x50a171['model']],'as':_0x50a171['as'],'attributes':_0x50a171[_0x7db8('0x1b')],'include':_0x50a171[_0x7db8('0x19')]?_[_0x7db8('0x1c')](_0x50a171[_0x7db8('0x19')],function(_0x829e5){return{'model':db[_0x829e5['model']],'as':_0x829e5['as'],'attributes':_0x829e5[_0x7db8('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x7db8('0x8')](function(_0x2345a9){logger['info']('ShowTrigger',_0x4cf5bc);logger[_0x7db8('0xb')](_0x7db8('0x1f'),_0x4cf5bc,JSON[_0x7db8('0x1d')](_0x2345a9));_0x31f515(_0x2345a9);})[_0x7db8('0x1e')](function(_0x1c025b){logger[_0x7db8('0xd')](_0x7db8('0x1f'),_0x1c025b[_0x7db8('0x10')],_0x4cf5bc);_0x11a4cc(_0x50e5d9['error'](0x1f4,_0x1c025b['message']));});});};
\ No newline at end of file
+var _0x1965=['../../config/environment','client','request','then','info','Trigger,\x20%s,\x20%s','Trigger,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetTrigger','findAll','options','raw','where','attributes','limit','include','map','model','debug','ShowTrigger','Trigger','find','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1965,0x15f));var _0x5196=function(_0x3c1af2,_0x2f5571){_0x3c1af2=_0x3c1af2-0x0;var _0x22800c=_0x1965[_0x3c1af2];return _0x22800c;};'use strict';var _=require(_0x5196('0x0'));var util=require(_0x5196('0x1'));var moment=require(_0x5196('0x2'));var BPromise=require(_0x5196('0x3'));var rs=require(_0x5196('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5196('0x5'))['db'];var utils=require(_0x5196('0x6'));var logger=require(_0x5196('0x7'))(_0x5196('0x8'));var config=require(_0x5196('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x5196('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2cb94f,_0x565dca,_0x5c3d44){return new BPromise(function(_0x5f1071,_0xa91067){return client[_0x5196('0xb')](_0x2cb94f,_0x5c3d44)[_0x5196('0xc')](function(_0x58c24f){logger[_0x5196('0xd')](_0x5196('0xe'),_0x565dca,'request\x20sent');logger['debug'](_0x5196('0xf'),_0x565dca,_0x5196('0x10'),JSON[_0x5196('0x11')](_0x58c24f));if(_0x58c24f[_0x5196('0x12')]){if(_0x58c24f[_0x5196('0x12')][_0x5196('0x13')]===0x1f4){logger['error']('Trigger,\x20%s,\x20%s',_0x565dca,_0x58c24f['error']['message']);return _0xa91067(_0x58c24f[_0x5196('0x12')]['message']);}logger[_0x5196('0x12')]('Trigger,\x20%s,\x20%s',_0x565dca,_0x58c24f[_0x5196('0x12')][_0x5196('0x14')]);return _0x5f1071(_0x58c24f[_0x5196('0x12')][_0x5196('0x14')]);}else{logger[_0x5196('0xd')](_0x5196('0xe'),_0x565dca,_0x5196('0x10'));_0x5f1071(_0x58c24f['result'][_0x5196('0x14')]);}})[_0x5196('0x15')](function(_0x4d6aa1){logger[_0x5196('0x12')](_0x5196('0xe'),_0x565dca,_0x4d6aa1);_0xa91067(_0x4d6aa1);});});}exports[_0x5196('0x16')]=function(_0xf53c3){var _0x467604=this;return new Promise(function(_0x2883e7,_0x49e34b){return db['Trigger'][_0x5196('0x17')]({'raw':_0xf53c3[_0x5196('0x18')]?_0xf53c3['options'][_0x5196('0x19')]===undefined?!![]:![]:!![],'where':_0xf53c3[_0x5196('0x18')]?_0xf53c3[_0x5196('0x18')][_0x5196('0x1a')]||null:null,'attributes':_0xf53c3[_0x5196('0x18')]?_0xf53c3['options'][_0x5196('0x1b')]||null:null,'limit':_0xf53c3[_0x5196('0x18')]?_0xf53c3[_0x5196('0x18')][_0x5196('0x1c')]||null:null,'include':_0xf53c3['options']?_0xf53c3[_0x5196('0x18')][_0x5196('0x1d')]?_[_0x5196('0x1e')](_0xf53c3[_0x5196('0x18')]['include'],function(_0x4f8d80){return{'model':db[_0x4f8d80[_0x5196('0x1f')]],'as':_0x4f8d80['as'],'attributes':_0x4f8d80[_0x5196('0x1b')],'include':_0x4f8d80[_0x5196('0x1d')]?_['map'](_0x4f8d80['include'],function(_0xc55953){return{'model':db[_0xc55953[_0x5196('0x1f')]],'as':_0xc55953['as'],'attributes':_0xc55953['attributes'],'include':_0xc55953['include']?_[_0x5196('0x1e')](_0xc55953[_0x5196('0x1d')],function(_0x117d54){return{'model':db[_0x117d54[_0x5196('0x1f')]],'as':_0x117d54['as'],'attributes':_0x117d54[_0x5196('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x5196('0xc')](function(_0x218f23){logger[_0x5196('0xd')]('GetTrigger',_0xf53c3);logger[_0x5196('0x20')](_0x5196('0x16'),_0xf53c3,JSON[_0x5196('0x11')](_0x218f23));_0x2883e7(_0x218f23);})[_0x5196('0x15')](function(_0x52e18a){logger[_0x5196('0x12')](_0x5196('0x16'),_0x52e18a[_0x5196('0x14')],_0xf53c3);_0x49e34b(_0x467604['error'](0x1f4,_0x52e18a[_0x5196('0x14')]));});});};exports[_0x5196('0x21')]=function(_0x3719a0){var _0x4b3a2a=this;return new Promise(function(_0x1d8c6c,_0x51cbd3){return db[_0x5196('0x22')][_0x5196('0x23')]({'raw':_0x3719a0['options']?_0x3719a0[_0x5196('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x3719a0['options']?_0x3719a0[_0x5196('0x18')][_0x5196('0x1a')]||null:null,'attributes':_0x3719a0[_0x5196('0x18')]?_0x3719a0[_0x5196('0x18')]['attributes']||null:null,'include':_0x3719a0['options']?_0x3719a0[_0x5196('0x18')][_0x5196('0x1d')]?_[_0x5196('0x1e')](_0x3719a0[_0x5196('0x18')][_0x5196('0x1d')],function(_0x5b1d00){return{'model':db[_0x5b1d00['model']],'as':_0x5b1d00['as'],'attributes':_0x5b1d00['attributes'],'include':_0x5b1d00[_0x5196('0x1d')]?_[_0x5196('0x1e')](_0x5b1d00[_0x5196('0x1d')],function(_0xd240f5){return{'model':db[_0xd240f5[_0x5196('0x1f')]],'as':_0xd240f5['as'],'attributes':_0xd240f5[_0x5196('0x1b')],'include':_0xd240f5[_0x5196('0x1d')]?_[_0x5196('0x1e')](_0xd240f5[_0x5196('0x1d')],function(_0x56b585){return{'model':db[_0x56b585[_0x5196('0x1f')]],'as':_0x56b585['as'],'attributes':_0x56b585[_0x5196('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x5196('0xc')](function(_0x46d07e){logger[_0x5196('0xd')](_0x5196('0x21'),_0x3719a0);logger[_0x5196('0x20')](_0x5196('0x21'),_0x3719a0,JSON[_0x5196('0x11')](_0x46d07e));_0x1d8c6c(_0x46d07e);})[_0x5196('0x15')](function(_0x26c5a6){logger['error'](_0x5196('0x21'),_0x26c5a6[_0x5196('0x14')],_0x3719a0);_0x51cbd3(_0x4b3a2a[_0x5196('0x12')](0x1f4,_0x26c5a6[_0x5196('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab07=['destroy','exports','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./trunk.controller','get','isAuthenticated','index','/:id','show','/:id/clone','post','put','update'];(function(_0x5caf7e,_0x52e1bc){var _0x5c3435=function(_0xb77e11){while(--_0xb77e11){_0x5caf7e['push'](_0x5caf7e['shift']());}};_0x5c3435(++_0x52e1bc);}(_0xab07,0x1bc));var _0x7ab0=function(_0x37756b,_0x24db76){_0x37756b=_0x37756b-0x0;var _0x46efec=_0xab07[_0x37756b];return _0x46efec;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x7ab0('0x0'));var express=require(_0x7ab0('0x1'));var router=express[_0x7ab0('0x2')]();var auth=require('../../components/auth/service');var interaction=require(_0x7ab0('0x3'));var config=require(_0x7ab0('0x4'));var controller=require(_0x7ab0('0x5'));router[_0x7ab0('0x6')]('/',auth[_0x7ab0('0x7')](),controller[_0x7ab0('0x8')]);router[_0x7ab0('0x6')](_0x7ab0('0x9'),auth[_0x7ab0('0x7')](),controller[_0x7ab0('0xa')]);router['post'](_0x7ab0('0xb'),auth[_0x7ab0('0x7')](),controller['clone']);router[_0x7ab0('0xc')]('/',auth['isAuthenticated'](),controller['create']);router[_0x7ab0('0xd')](_0x7ab0('0x9'),auth[_0x7ab0('0x7')](),controller[_0x7ab0('0xe')]);router['delete'](_0x7ab0('0x9'),auth[_0x7ab0('0x7')](),controller[_0x7ab0('0xf')]);module[_0x7ab0('0x10')]=router;
\ No newline at end of file
+var _0xf794=['/:id','show','post','/:id/clone','clone','create','delete','destroy','exports','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./trunk.controller','isAuthenticated','index','get'];(function(_0x4c12ec,_0x2e9103){var _0x3ae42c=function(_0x5a728f){while(--_0x5a728f){_0x4c12ec['push'](_0x4c12ec['shift']());}};_0x3ae42c(++_0x2e9103);}(_0xf794,0x1ad));var _0x4f79=function(_0x1ff332,_0x10050a){_0x1ff332=_0x1ff332-0x0;var _0x35e6d9=_0xf794[_0x1ff332];return _0x35e6d9;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x4f79('0x0'));var timeout=require(_0x4f79('0x1'));var express=require(_0x4f79('0x2'));var router=express[_0x4f79('0x3')]();var auth=require(_0x4f79('0x4'));var interaction=require(_0x4f79('0x5'));var config=require(_0x4f79('0x6'));var controller=require(_0x4f79('0x7'));router['get']('/',auth[_0x4f79('0x8')](),controller[_0x4f79('0x9')]);router[_0x4f79('0xa')](_0x4f79('0xb'),auth[_0x4f79('0x8')](),controller[_0x4f79('0xc')]);router[_0x4f79('0xd')](_0x4f79('0xe'),auth[_0x4f79('0x8')](),controller[_0x4f79('0xf')]);router[_0x4f79('0xd')]('/',auth[_0x4f79('0x8')](),controller[_0x4f79('0x10')]);router['put'](_0x4f79('0xb'),auth['isAuthenticated'](),controller['update']);router[_0x4f79('0x11')](_0x4f79('0xb'),auth['isAuthenticated'](),controller[_0x4f79('0x12')]);module[_0x4f79('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['update','outgoing','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','INTEGER','always','accept','originate','uac','uas','pai','active','passive','dynamic','update,nonat','BOOLEAN','sequelize','exports','friend','user','peer','STRING','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB','udp','setDataValue','join','getDataValue','transport','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','ENUM','rfc2833','info','shortinfo','inband','auto','yes','nonat'];(function(_0x4c05da,_0x414720){var _0x1614db=function(_0xa19cf6){while(--_0xa19cf6){_0x4c05da['push'](_0x4c05da['shift']());}};_0x1614db(++_0x414720);}(_0xd8b0,0xad));var _0x0d8b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd8b0[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize['ENUM'](_0x0d8b('0x2'),_0x0d8b('0x3'),_0x0d8b('0x4')),'allowNull':![],'defaultValue':_0x0d8b('0x2')},'context':{'type':Sequelize[_0x0d8b('0x5')],'allowNull':![],'defaultValue':'from-voip-provider'},'callingpres':{'type':Sequelize['ENUM'](_0x0d8b('0x6'),_0x0d8b('0x7'),_0x0d8b('0x8'),'ALLOWED',_0x0d8b('0x9'),_0x0d8b('0xa'),'PROHIB_FAILED_SCREEN',_0x0d8b('0xb'))},'deny':{'type':Sequelize[_0x0d8b('0x5')]},'permit':{'type':Sequelize[_0x0d8b('0x5')]},'secret':{'type':Sequelize[_0x0d8b('0x5')]},'md5secret':{'type':Sequelize[_0x0d8b('0x5')]},'remotesecret':{'type':Sequelize[_0x0d8b('0x5')]},'transport':{'type':Sequelize[_0x0d8b('0x5')],'defaultValue':_0x0d8b('0xc'),'set':function(_0x48fa16){this[_0x0d8b('0xd')]('transport',_0x48fa16?_0x48fa16[_0x0d8b('0xe')](','):null);},'get':function(){return this[_0x0d8b('0xf')](_0x0d8b('0x10'))?this[_0x0d8b('0xf')](_0x0d8b('0x10'))[_0x0d8b('0x11')](','):null;},'comment':_0x0d8b('0x12')},'dtmfmode':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x14'),_0x0d8b('0x15'),_0x0d8b('0x16'),_0x0d8b('0x17'),_0x0d8b('0x18')),'defaultValue':_0x0d8b('0x14')},'directmedia':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no',_0x0d8b('0x1a'),_0x0d8b('0x1b'),_0x0d8b('0x1c')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x0d8b('0x13')]('yes','no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x0d8b('0x5')]},'directmediadeny':{'type':Sequelize[_0x0d8b('0x5')]},'nat':{'type':Sequelize[_0x0d8b('0x5')],'defaultValue':_0x0d8b('0x1d'),'set':function(_0x333674){this[_0x0d8b('0xd')](_0x0d8b('0x1e'),_0x333674?_0x333674[_0x0d8b('0xe')](','):null);},'get':function(){return this['getDataValue'](_0x0d8b('0x1e'))?this[_0x0d8b('0xf')](_0x0d8b('0x1e'))[_0x0d8b('0x11')](','):null;},'comment':_0x0d8b('0x1f')},'callgroup':{'type':Sequelize[_0x0d8b('0x5')]},'namedcallgroup':{'type':Sequelize[_0x0d8b('0x5')]},'pickupgroup':{'type':Sequelize[_0x0d8b('0x5')]},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING'],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x0d8b('0x5')],'allowNull':!![]},'disallow':{'type':Sequelize['STRING'],'defaultValue':'all'},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x0d8b('0x20'),'set':function(_0x2b924f){this[_0x0d8b('0xd')](_0x0d8b('0x21'),_0x2b924f?_0x2b924f[_0x0d8b('0xe')](';'):_0x0d8b('0x20'));},'get':function(){return this[_0x0d8b('0xf')](_0x0d8b('0x21'))?this[_0x0d8b('0xf')]('allow')[_0x0d8b('0x11')](';'):null;},'comment':_0x0d8b('0x22')},'autoframing':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no')},'insecure':{'type':Sequelize['STRING'],'defaultValue':_0x0d8b('0x23'),'set':function(_0x234bdd){this[_0x0d8b('0xd')]('insecure',_0x234bdd?_0x234bdd['join'](','):null);},'get':function(){return this[_0x0d8b('0xf')](_0x0d8b('0x24'))?this['getDataValue'](_0x0d8b('0x24'))['split'](','):null;},'comment':_0x0d8b('0x25')},'trustrpid':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no','never')},'promiscredir':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'useclientcode':{'type':Sequelize[_0x0d8b('0x13')]('yes','no')},'accountcode':{'type':Sequelize['INTEGER'](0xb)},'setvar':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x0d8b('0x5')],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize[_0x0d8b('0x5')]},'callcounter':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0x0d8b('0x19')},'busylevel':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'allowoverlap':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'allowsubscribe':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'allowtransfer':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'ignoresdpversion':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no')},'subscribecontext':{'type':Sequelize[_0x0d8b('0x5')]},'template':{'type':Sequelize['STRING']},'videosupport':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no',_0x0d8b('0x27')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize['INTEGER'](0xb)},'rfc2833compensate':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'mailbox':{'type':Sequelize[_0x0d8b('0x5')]},'session_timers':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x28'),'refuse',_0x0d8b('0x29'))},'session_expires':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'session_minse':{'type':Sequelize['INTEGER'](0xb)},'session_refresher':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x2a'),_0x0d8b('0x2b')),'defaultValue':_0x0d8b('0x2b')},'t38pt_usertpsource':{'type':Sequelize[_0x0d8b('0x5')]},'regexten':{'type':Sequelize['STRING']},'fromdomain':{'type':Sequelize['STRING']},'fromuser':{'type':Sequelize[_0x0d8b('0x5')]},'port':{'type':Sequelize['INTEGER'](0x5)},'qualify':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no'),'defaultValue':_0x0d8b('0x19')},'keepalive':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'defaultip':{'type':Sequelize[_0x0d8b('0x5')]},'defaultuser':{'type':Sequelize[_0x0d8b('0x5')]},'rtptimeout':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpkeepalive':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'sendrpid':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no',_0x0d8b('0x2c')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x0d8b('0x5')]},'callbackextension':{'type':Sequelize[_0x0d8b('0x5')]},'timert1':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize[_0x0d8b('0x26')](0xb)},'contactpermit':{'type':Sequelize[_0x0d8b('0x5')]},'contactdeny':{'type':Sequelize[_0x0d8b('0x5')]},'contactacl':{'type':Sequelize[_0x0d8b('0x5')]},'unsolicited_mailbox':{'type':Sequelize['STRING']},'use_q850_reason':{'type':Sequelize[_0x0d8b('0x5')]},'maxforwards':{'type':Sequelize['INTEGER'](0xb)},'encryption':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'force_avp':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'icesupport':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'dtlsenable':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x19'),'no')},'dtlsverify':{'type':Sequelize['ENUM']('yes','no','fingerprint','certificate')},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb)},'dtlscertfile':{'type':Sequelize[_0x0d8b('0x5')]},'dtlsprivatekey':{'type':Sequelize[_0x0d8b('0x5')]},'dtlscipher':{'type':Sequelize[_0x0d8b('0x5')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize['STRING']},'dtlssetup':{'type':Sequelize[_0x0d8b('0x13')](_0x0d8b('0x2d'),_0x0d8b('0x2e'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x0d8b('0x5')]},'usereqphone':{'type':Sequelize[_0x0d8b('0x13')]('yes','no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING']},'recordofffeature':{'type':Sequelize[_0x0d8b('0x5')]},'call_limit':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x0d8b('0x13')]('yes','no')},'subscribemwi':{'type':Sequelize['ENUM'](_0x0d8b('0x19'),'no')},'vmexten':{'type':Sequelize[_0x0d8b('0x5')]},'mohinterpret':{'type':Sequelize['STRING']},'mohsuggest':{'type':Sequelize['STRING']},'parkinglot':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0x0d8b('0x5')],'defaultValue':_0x0d8b('0x2f')},'canreinvite':{'type':Sequelize[_0x0d8b('0x13')]('yes','no',_0x0d8b('0x1a'),_0x0d8b('0x1b'),_0x0d8b('0x30')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x0d8b('0x5')]},'otherFields':{'type':Sequelize[_0x0d8b('0x5')]},'active':{'type':Sequelize[_0x0d8b('0x31')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x0d8b('0x5')],'defaultValue':'no'}};
\ No newline at end of file
+var _0xb7e7=['always','accept','refuse','originate','uac','uas','fingerprint','active','passive','dynamic','update','update,nonat','BOOLEAN','sequelize','STRING','ENUM','user','friend','from-voip-provider','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','setDataValue','transport','join','getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','inband','auto','yes','outgoing','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','port,invite','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','INTEGER'];(function(_0x558222,_0x105cdb){var _0x4e1044=function(_0x2e0a84){while(--_0x2e0a84){_0x558222['push'](_0x558222['shift']());}};_0x4e1044(++_0x105cdb);}(_0xb7e7,0x121));var _0x7b7e=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xb7e7[_0x3e5086];return _0xfeb102;};'use strict';var Sequelize=require(_0x7b7e('0x0'));module['exports']={'name':{'type':Sequelize[_0x7b7e('0x1')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x7b7e('0x2')]('friend',_0x7b7e('0x3'),'peer'),'allowNull':![],'defaultValue':_0x7b7e('0x4')},'context':{'type':Sequelize[_0x7b7e('0x1')],'allowNull':![],'defaultValue':_0x7b7e('0x5')},'callingpres':{'type':Sequelize['ENUM']('ALLOWED_NOT_SCREENED',_0x7b7e('0x6'),_0x7b7e('0x7'),_0x7b7e('0x8'),'PROHIB_NOT_SCREENED',_0x7b7e('0x9'),_0x7b7e('0xa'),_0x7b7e('0xb'))},'deny':{'type':Sequelize[_0x7b7e('0x1')]},'permit':{'type':Sequelize[_0x7b7e('0x1')]},'secret':{'type':Sequelize[_0x7b7e('0x1')]},'md5secret':{'type':Sequelize[_0x7b7e('0x1')]},'remotesecret':{'type':Sequelize['STRING']},'transport':{'type':Sequelize[_0x7b7e('0x1')],'defaultValue':_0x7b7e('0xc'),'set':function(_0x10a666){this[_0x7b7e('0xd')](_0x7b7e('0xe'),_0x10a666?_0x10a666[_0x7b7e('0xf')](','):null);},'get':function(){return this[_0x7b7e('0x10')](_0x7b7e('0xe'))?this[_0x7b7e('0x10')]('transport')[_0x7b7e('0x11')](','):null;},'comment':_0x7b7e('0x12')},'dtmfmode':{'type':Sequelize['ENUM'](_0x7b7e('0x13'),'info','shortinfo',_0x7b7e('0x14'),_0x7b7e('0x15')),'defaultValue':_0x7b7e('0x13')},'directmedia':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no','nonat','update',_0x7b7e('0x17')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x7b7e('0x1')]},'directmediadeny':{'type':Sequelize[_0x7b7e('0x1')]},'nat':{'type':Sequelize[_0x7b7e('0x1')],'defaultValue':_0x7b7e('0x18'),'set':function(_0x200ef7){this[_0x7b7e('0xd')](_0x7b7e('0x19'),_0x200ef7?_0x200ef7[_0x7b7e('0xf')](','):null);},'get':function(){return this[_0x7b7e('0x10')](_0x7b7e('0x19'))?this[_0x7b7e('0x10')](_0x7b7e('0x19'))[_0x7b7e('0x11')](','):null;},'comment':_0x7b7e('0x1a')},'callgroup':{'type':Sequelize['STRING']},'namedcallgroup':{'type':Sequelize[_0x7b7e('0x1')]},'pickupgroup':{'type':Sequelize[_0x7b7e('0x1')]},'namedpickupgroup':{'type':Sequelize[_0x7b7e('0x1')]},'language':{'type':Sequelize['STRING'],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x7b7e('0x1')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x7b7e('0x1')],'defaultValue':_0x7b7e('0x1b')},'allow':{'type':Sequelize[_0x7b7e('0x1')],'allowNull':![],'defaultValue':_0x7b7e('0x1c'),'set':function(_0x303d8c){this[_0x7b7e('0xd')](_0x7b7e('0x1d'),_0x303d8c?_0x303d8c['join'](';'):'ulaw;alaw;gsm');},'get':function(){return this['getDataValue'](_0x7b7e('0x1d'))?this[_0x7b7e('0x10')](_0x7b7e('0x1d'))['split'](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize['ENUM'](_0x7b7e('0x16'),'no')},'insecure':{'type':Sequelize[_0x7b7e('0x1')],'defaultValue':_0x7b7e('0x1e'),'set':function(_0x7aa71){this[_0x7b7e('0xd')]('insecure',_0x7aa71?_0x7aa71[_0x7b7e('0xf')](','):null);},'get':function(){return this[_0x7b7e('0x10')]('insecure')?this['getDataValue']('insecure')[_0x7b7e('0x11')](','):null;},'comment':_0x7b7e('0x1f')},'trustrpid':{'type':Sequelize['ENUM'](_0x7b7e('0x16'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0x7b7e('0x16'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no','never')},'promiscredir':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'useclientcode':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'accountcode':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'setvar':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x7b7e('0x1')],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize[_0x7b7e('0x1')]},'callcounter':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no'),'defaultValue':_0x7b7e('0x16')},'busylevel':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'allowoverlap':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'allowsubscribe':{'type':Sequelize['ENUM']('yes','no')},'allowtransfer':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'ignoresdpversion':{'type':Sequelize['ENUM'](_0x7b7e('0x16'),'no')},'subscribecontext':{'type':Sequelize[_0x7b7e('0x1')]},'template':{'type':Sequelize[_0x7b7e('0x1')]},'videosupport':{'type':Sequelize['ENUM'](_0x7b7e('0x16'),'no',_0x7b7e('0x21')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'rfc2833compensate':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'mailbox':{'type':Sequelize[_0x7b7e('0x1')]},'session_timers':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x22'),_0x7b7e('0x23'),_0x7b7e('0x24'))},'session_expires':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'session_minse':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'session_refresher':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x25'),_0x7b7e('0x26')),'defaultValue':_0x7b7e('0x26')},'t38pt_usertpsource':{'type':Sequelize['STRING']},'regexten':{'type':Sequelize[_0x7b7e('0x1')]},'fromdomain':{'type':Sequelize[_0x7b7e('0x1')]},'fromuser':{'type':Sequelize[_0x7b7e('0x1')]},'port':{'type':Sequelize[_0x7b7e('0x20')](0x5)},'qualify':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no'),'defaultValue':_0x7b7e('0x16')},'keepalive':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'defaultip':{'type':Sequelize[_0x7b7e('0x1')]},'defaultuser':{'type':Sequelize[_0x7b7e('0x1')]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'rtpkeepalive':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'sendrpid':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no','pai'),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x7b7e('0x1')]},'callbackextension':{'type':Sequelize[_0x7b7e('0x1')]},'timert1':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb)},'contactpermit':{'type':Sequelize[_0x7b7e('0x1')]},'contactdeny':{'type':Sequelize['STRING']},'contactacl':{'type':Sequelize[_0x7b7e('0x1')]},'unsolicited_mailbox':{'type':Sequelize[_0x7b7e('0x1')]},'use_q850_reason':{'type':Sequelize['STRING']},'maxforwards':{'type':Sequelize[_0x7b7e('0x20')](0xb)},'encryption':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'force_avp':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'icesupport':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no')},'dtlsenable':{'type':Sequelize['ENUM']('yes','no')},'dtlsverify':{'type':Sequelize[_0x7b7e('0x2')]('yes','no',_0x7b7e('0x27'),'certificate')},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb)},'dtlscertfile':{'type':Sequelize[_0x7b7e('0x1')]},'dtlsprivatekey':{'type':Sequelize['STRING']},'dtlscipher':{'type':Sequelize[_0x7b7e('0x1')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize[_0x7b7e('0x1')]},'dtlssetup':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x28'),_0x7b7e('0x29'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x7b7e('0x1')]},'usereqphone':{'type':Sequelize[_0x7b7e('0x2')](_0x7b7e('0x16'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x7b7e('0x1')]},'recordofffeature':{'type':Sequelize[_0x7b7e('0x1')]},'call_limit':{'type':Sequelize[_0x7b7e('0x20')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize['ENUM']('yes','no')},'subscribemwi':{'type':Sequelize['ENUM'](_0x7b7e('0x16'),'no')},'vmexten':{'type':Sequelize[_0x7b7e('0x1')]},'mohinterpret':{'type':Sequelize[_0x7b7e('0x1')]},'mohsuggest':{'type':Sequelize[_0x7b7e('0x1')]},'parkinglot':{'type':Sequelize[_0x7b7e('0x1')]},'description':{'type':Sequelize[_0x7b7e('0x1')]},'host':{'type':Sequelize['STRING'],'defaultValue':_0x7b7e('0x2a')},'canreinvite':{'type':Sequelize[_0x7b7e('0x2')]('yes','no','nonat',_0x7b7e('0x2b'),_0x7b7e('0x2c')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x7b7e('0x1')]},'otherFields':{'type':Sequelize[_0x7b7e('0x1')]},'active':{'type':Sequelize[_0x7b7e('0x2d')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x7b7e('0x1')],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76dc=['get','omit','createdAt','updatedAt','body','create','readFileSync','utf8','join','root','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','server/files/templates/trunk.ejs','/etc/asterisk/sip_xcally_trunks.conf','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','sox','to-csv','ejs','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','api','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','sendStatus','status','end','json','count','offset','set','save','update','destroy','stack','name','send','Trunk','rawAttributes','model','query','dateStart','dateEnd','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','add','day','merge','where','map','filter','options','findAll','rows','show','keys','includeAll','include','find','clone','params'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x76dc,0x1f2));var _0xc76d=function(_0x3bffd6,_0x4e1c70){_0x3bffd6=_0x3bffd6-0x0;var _0x533162=_0x76dc[_0x3bffd6];return _0x533162;};'use strict';var pdf=require(_0xc76d('0x0'));var emlformat=require(_0xc76d('0x1'));var rimraf=require(_0xc76d('0x2'));var zipdir=require(_0xc76d('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc76d('0x4'));var moment=require(_0xc76d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc76d('0x6'));var util=require('util');var path=require('path');var sox=require(_0xc76d('0x7'));var csv=require(_0xc76d('0x8'));var ejs=require(_0xc76d('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xc76d('0xa'));var jsforce=require(_0xc76d('0xb'));var deskjs=require(_0xc76d('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc76d('0xd'));var qs=require(_0xc76d('0xe'));var logger=require('../../config/logger')(_0xc76d('0xf'));var utils=require('../../config/utils');var config=require(_0xc76d('0x10'));var db=require(_0xc76d('0x11'))['db'];var jayson=require(_0xc76d('0x12'));var client=jayson[_0xc76d('0x13')][_0xc76d('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x193c4a,_0x100181,_0x2e02e9,_0x1722b3){return new BPromise(function(_0x311814,_0x1a7b47){var _0x24e88e=_0x1722b3||client;return _0x24e88e[_0xc76d('0x15')](_0x193c4a,_0x2e02e9)[_0xc76d('0x16')](function(_0x5cda20){logger[_0xc76d('0x17')](_0xc76d('0x18'),_0x100181,'request\x20sent');logger[_0xc76d('0x19')](_0xc76d('0x1a'),_0x100181,_0xc76d('0x1b'),JSON[_0xc76d('0x1c')](_0x5cda20));if(_0x5cda20['error']){if(_0x5cda20[_0xc76d('0x1d')]['code']===0x1f4){logger['error'](_0xc76d('0x18'),_0x100181,_0x5cda20[_0xc76d('0x1d')][_0xc76d('0x1e')]);return _0x1a7b47(_0x5cda20[_0xc76d('0x1d')][_0xc76d('0x1e')]);}logger['error'](_0xc76d('0x18'),_0x100181,_0x5cda20[_0xc76d('0x1d')][_0xc76d('0x1e')]);return _0x311814(_0x5cda20[_0xc76d('0x1d')][_0xc76d('0x1e')]);}else{logger['info'](_0xc76d('0x18'),_0x100181,_0xc76d('0x1b'));_0x311814(_0x5cda20['result'][_0xc76d('0x1e')]);}})[_0xc76d('0x1f')](function(_0x191e97){logger[_0xc76d('0x1d')](_0xc76d('0x18'),_0x100181,_0x191e97);_0x1a7b47(_0x191e97);});});}function respondWithStatusCode(_0x3d357b,_0x42b89c){_0x42b89c=_0x42b89c||0xcc;return function(_0x107fad){if(_0x107fad){return _0x3d357b[_0xc76d('0x20')](_0x42b89c);}return _0x3d357b[_0xc76d('0x21')](_0x42b89c)[_0xc76d('0x22')]();};}function respondWithResult(_0x5de11f,_0x11b42f){_0x11b42f=_0x11b42f||0xc8;return function(_0x17b46f){if(_0x17b46f){return _0x5de11f['status'](_0x11b42f)[_0xc76d('0x23')](_0x17b46f);}};}function respondWithFilteredResult(_0x2f194b,_0x55ca79){return function(_0x374b9e){if(_0x374b9e){var _0x476aee=_0x374b9e[_0xc76d('0x24')],_0x2cd06e=_0x55ca79[_0xc76d('0x25')],_0xd1dda0=_0x55ca79['offset']+_0x55ca79['limit'],_0xfc4aea;if(_0xd1dda0>=_0x476aee){_0xd1dda0=_0x476aee;_0xfc4aea=0xc8;}else{_0xfc4aea=0xce;}_0x2f194b[_0xc76d('0x21')](_0xfc4aea);return _0x2f194b[_0xc76d('0x26')]('Content-Range',_0x2cd06e+'-'+_0xd1dda0+'/'+_0x476aee)[_0xc76d('0x23')](_0x374b9e);}return null;};}function patchUpdates(_0x52a79a){return function(_0x64899f){try{jsonpatch['apply'](_0x64899f,_0x52a79a,!![]);}catch(_0x2039f4){return BPromise['reject'](_0x2039f4);}return _0x64899f[_0xc76d('0x27')]();};}function saveUpdates(_0x18a7fa,_0x4d896c){return function(_0x3d4076){if(_0x3d4076){return _0x3d4076[_0xc76d('0x28')](_0x18a7fa)[_0xc76d('0x16')](function(_0x2cf501){return _0x2cf501;});}return null;};}function removeEntity(_0x4feeda,_0x283e16){return function(_0x4a7e4c){if(_0x4a7e4c){return _0x4a7e4c[_0xc76d('0x29')]()['then'](function(){_0x4feeda[_0xc76d('0x21')](0xcc)[_0xc76d('0x22')]();});}};}function handleEntityNotFound(_0x5dc369,_0x4b4dfc){return function(_0x5eca19){if(!_0x5eca19){_0x5dc369['sendStatus'](0x194);}return _0x5eca19;};}function handleError(_0x1a2149,_0x3250ab){_0x3250ab=_0x3250ab||0x1f4;return function(_0x5c13f2){logger[_0xc76d('0x1d')](_0x5c13f2[_0xc76d('0x2a')]);if(_0x5c13f2['name']){delete _0x5c13f2[_0xc76d('0x2b')];}_0x1a2149['status'](_0x3250ab)[_0xc76d('0x2c')](_0x5c13f2);};}exports['index']=function(_0x1bef44,_0x2332f5){var _0x237de9={},_0x20fe33={},_0x2aa24d={'count':0x0,'rows':[]};var _0x4df056=db[_0xc76d('0x2d')][_0xc76d('0x2e')];_0x20fe33[_0xc76d('0x2f')]=_['keys'](_0x4df056);var _0x2f69c1={'dateStart':_0x1bef44[_0xc76d('0x30')][_0xc76d('0x31')],'dateEnd':_0x1bef44['query'][_0xc76d('0x32')]};delete _0x1bef44[_0xc76d('0x30')][_0xc76d('0x31')];delete _0x1bef44[_0xc76d('0x30')][_0xc76d('0x32')];_0x20fe33[_0xc76d('0x30')]=_['keys'](_0x1bef44['query']);_0x20fe33[_0xc76d('0x33')]=_['intersection'](_0x20fe33[_0xc76d('0x2f')],_0x20fe33[_0xc76d('0x30')]);_0x237de9[_0xc76d('0x34')]=_[_0xc76d('0x35')](_0x20fe33['model'],qs['fields'](_0x1bef44[_0xc76d('0x30')][_0xc76d('0x36')]));_0x237de9[_0xc76d('0x34')]=_0x237de9[_0xc76d('0x34')][_0xc76d('0x37')]?_0x237de9['attributes']:_0x20fe33[_0xc76d('0x2f')];if(!_0x1bef44[_0xc76d('0x30')][_0xc76d('0x38')](_0xc76d('0x39'))){_0x237de9[_0xc76d('0x3a')]=qs[_0xc76d('0x3a')](_0x1bef44[_0xc76d('0x30')][_0xc76d('0x3a')]);_0x237de9[_0xc76d('0x25')]=qs[_0xc76d('0x25')](_0x1bef44['query']['offset']);}_0x237de9[_0xc76d('0x3b')]=qs[_0xc76d('0x3c')](_0x1bef44[_0xc76d('0x30')][_0xc76d('0x3c')]);_0x237de9['where']=qs['filters'](_[_0xc76d('0x3d')](_0x1bef44[_0xc76d('0x30')],_0x20fe33[_0xc76d('0x33')]));if(_0x2f69c1[_0xc76d('0x31')]){if(_0x2f69c1[_0xc76d('0x32')]){_0x2f69c1[_0xc76d('0x32')]=moment(_0x2f69c1[_0xc76d('0x32')])[_0xc76d('0x3e')](0x1,'day');}else{_0x2f69c1[_0xc76d('0x32')]=moment(_0x2f69c1[_0xc76d('0x31')])[_0xc76d('0x3e')](0x1,_0xc76d('0x3f'));}_['merge'](_0x237de9['where'],{'createdAt':{'$gte':_0x2f69c1['dateStart'],'$lte':_0x2f69c1['dateEnd']}});}if(_0x1bef44['query']['filter']){_0x237de9['where']=_[_0xc76d('0x40')](_0x237de9[_0xc76d('0x41')],{'$or':_[_0xc76d('0x42')](_0x237de9[_0xc76d('0x34')],function(_0x15c625){var _0xef5a7f={};_0xef5a7f[_0x15c625]={'$like':'%'+_0x1bef44[_0xc76d('0x30')][_0xc76d('0x43')]+'%'};return _0xef5a7f;})});}_0x237de9=_['merge']({},_0x237de9,_0x1bef44[_0xc76d('0x44')]);var _0x114c8e={'where':_0x237de9[_0xc76d('0x41')]};return db[_0xc76d('0x2d')][_0xc76d('0x24')](_0x114c8e)[_0xc76d('0x16')](function(_0x1de477){_0x2aa24d[_0xc76d('0x24')]=_0x1de477;if(_0x1bef44[_0xc76d('0x30')]['includeAll']){_0x237de9['include']=[{'all':!![]}];}return db[_0xc76d('0x2d')][_0xc76d('0x45')](_0x237de9);})[_0xc76d('0x16')](function(_0x160f4b){_0x2aa24d[_0xc76d('0x46')]=_0x160f4b;return _0x2aa24d;})['then'](respondWithFilteredResult(_0x2332f5,_0x237de9))[_0xc76d('0x1f')](handleError(_0x2332f5,null));};exports[_0xc76d('0x47')]=function(_0x5e48fe,_0x533ba8){var _0x31687d={'raw':![],'where':{'id':_0x5e48fe['params']['id']}},_0x2c3120={};_0x2c3120[_0xc76d('0x2f')]=_[_0xc76d('0x48')](db[_0xc76d('0x2d')][_0xc76d('0x2e')]);_0x2c3120[_0xc76d('0x30')]=_[_0xc76d('0x48')](_0x5e48fe[_0xc76d('0x30')]);_0x2c3120[_0xc76d('0x33')]=_[_0xc76d('0x35')](_0x2c3120[_0xc76d('0x2f')],_0x2c3120['query']);_0x31687d[_0xc76d('0x34')]=_[_0xc76d('0x35')](_0x2c3120[_0xc76d('0x2f')],qs['fields'](_0x5e48fe[_0xc76d('0x30')][_0xc76d('0x36')]));_0x31687d['attributes']=_0x31687d[_0xc76d('0x34')]['length']?_0x31687d[_0xc76d('0x34')]:_0x2c3120[_0xc76d('0x2f')];if(_0x5e48fe[_0xc76d('0x30')][_0xc76d('0x49')]){_0x31687d[_0xc76d('0x4a')]=[{'all':!![]}];}_0x31687d=_['merge']({},_0x31687d,_0x5e48fe['options']);return db['Trunk'][_0xc76d('0x4b')](_0x31687d)[_0xc76d('0x16')](handleEntityNotFound(_0x533ba8,null))[_0xc76d('0x16')](respondWithResult(_0x533ba8,null))[_0xc76d('0x1f')](handleError(_0x533ba8,null));};exports[_0xc76d('0x4c')]=function(_0x38bf54,_0x4c1e8d){var _0x41cc7e={'raw':![],'where':{'id':_0x38bf54[_0xc76d('0x4d')]['id']}},_0x417e7a={};_0x417e7a[_0xc76d('0x2f')]=_[_0xc76d('0x48')](db['Trunk'][_0xc76d('0x2e')]);_0x41cc7e[_0xc76d('0x34')]=_[_0xc76d('0x35')](_0x417e7a[_0xc76d('0x2f')],qs[_0xc76d('0x36')](_0x38bf54[_0xc76d('0x30')]['fields']));_0x41cc7e[_0xc76d('0x34')]=_0x41cc7e[_0xc76d('0x34')]['length']?_0x41cc7e['attributes']:_0x417e7a[_0xc76d('0x2f')];if(_0x38bf54['query'][_0xc76d('0x49')]){_0x41cc7e[_0xc76d('0x4a')]=[{'all':!![]}];}_0x41cc7e=_[_0xc76d('0x40')]({},_0x41cc7e,_0x38bf54[_0xc76d('0x44')]);return db[_0xc76d('0x2d')][_0xc76d('0x4b')](_0x41cc7e)[_0xc76d('0x16')](handleEntityNotFound(_0x4c1e8d,null))[_0xc76d('0x16')](function(_0x3ada89){if(_0x3ada89){var _0x35b053=_0x3ada89[_0xc76d('0x4e')]({'plain':!![]});_0x35b053=qs[_0xc76d('0x4f')](_0x35b053,['id',_0xc76d('0x50'),_0xc76d('0x51')]);_0x38bf54['body']=_[_0xc76d('0x4f')](_0x38bf54[_0xc76d('0x52')],['id',_0xc76d('0x50'),_0xc76d('0x51')]);return db[_0xc76d('0x2d')]['create'](_[_0xc76d('0x40')](_0x35b053,_0x38bf54[_0xc76d('0x52')]),{'include':_0x38bf54['query']['includeAll']?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x4c1e8d,0xc9))[_0xc76d('0x1f')](handleError(_0x4c1e8d,null));};exports[_0xc76d('0x53')]=function(_0x3b4a22,_0x436ac4,_0x2ba812){var _0x37e9a3;return db[_0xc76d('0x2d')][_0xc76d('0x53')](_0x3b4a22['body'],{'raw':!![]})[_0xc76d('0x16')](function(_0x5e2f0d){_0x37e9a3=_0x5e2f0d;return db['Trunk'][_0xc76d('0x45')]({'raw':!![]});})[_0xc76d('0x16')](function(_0x1a0182){var _0x502bd8=fs[_0xc76d('0x54')](path['join'](config['root'],'server/files/templates/trunk.ejs'),_0xc76d('0x55'));var _0x39784e=fs['readFileSync'](path[_0xc76d('0x56')](config[_0xc76d('0x57')],_0xc76d('0x58')),_0xc76d('0x55'));var _0x22a3cb=ejs[_0xc76d('0x59')](_0x502bd8,{'trunks':_0x1a0182||[]});fs[_0xc76d('0x5a')]('/etc/asterisk/sip_xcally_trunks.conf',_0x22a3cb);if(_0x37e9a3['registry']){var _0x4c523f=ejs[_0xc76d('0x59')](_0x39784e,{'trunks':_0x1a0182||[]});fs[_0xc76d('0x5a')](_0xc76d('0x5b'),_0x4c523f);}})[_0xc76d('0x16')](function(){return respondWithRpcPromise(_0xc76d('0x5c'),'create',{'module':_0xc76d('0x5d')});})[_0xc76d('0x16')](function(){return _0x37e9a3;})[_0xc76d('0x16')](respondWithResult(_0x436ac4,0xc9))[_0xc76d('0x1f')](handleError(_0x436ac4,null));};exports[_0xc76d('0x28')]=function(_0x2af760,_0x102faa,_0x2d791f){var _0x49ec96;return db[_0xc76d('0x2d')]['find']({'where':{'id':_0x2af760[_0xc76d('0x4d')]['id']}})[_0xc76d('0x16')](handleEntityNotFound(_0x102faa,null))[_0xc76d('0x16')](saveUpdates(_0x2af760[_0xc76d('0x52')],null))['then'](function(_0xec4a50){if(_0xec4a50){_0x49ec96=_0xec4a50;return db['Trunk']['findAll']({'raw':!![]});}})[_0xc76d('0x16')](function(_0xe44fd9){if(_0xe44fd9){var _0x5c6e6c=fs[_0xc76d('0x54')](path[_0xc76d('0x56')](config['root'],_0xc76d('0x5e')),_0xc76d('0x55'));var _0x4b816d=fs[_0xc76d('0x54')](path['join'](config[_0xc76d('0x57')],_0xc76d('0x58')),'utf8');var _0x16d957=ejs[_0xc76d('0x59')](_0x5c6e6c,{'trunks':_0xe44fd9||[]});fs['writeFileSync'](_0xc76d('0x5f'),_0x16d957);var _0xc3e996=ejs[_0xc76d('0x59')](_0x4b816d,{'trunks':_0xe44fd9||[]});fs['writeFileSync'](_0xc76d('0x5b'),_0xc3e996);return respondWithRpcPromise('Reload','update',{'module':_0xc76d('0x5d')});}return null;})[_0xc76d('0x16')](function(_0x559541){if(_0x559541){return _0x49ec96;}})[_0xc76d('0x16')](respondWithResult(_0x102faa,null))[_0xc76d('0x1f')](handleError(_0x102faa,null));};exports[_0xc76d('0x29')]=function(_0x3f338d,_0x1bcd83,_0x1d3582){var _0x210617;return db[_0xc76d('0x2d')][_0xc76d('0x4b')]({'where':{'id':_0x3f338d[_0xc76d('0x4d')]['id']}})[_0xc76d('0x16')](handleEntityNotFound(_0x1bcd83,null))[_0xc76d('0x16')](removeEntity(_0x1bcd83,null))[_0xc76d('0x16')](function(){return db[_0xc76d('0x2d')][_0xc76d('0x45')]({'raw':!![]});})[_0xc76d('0x16')](function(_0xa6508c){var _0xd16232=fs[_0xc76d('0x54')](path[_0xc76d('0x56')](config['root'],_0xc76d('0x5e')),_0xc76d('0x55'));var _0x937c48=fs[_0xc76d('0x54')](path[_0xc76d('0x56')](config[_0xc76d('0x57')],_0xc76d('0x58')),_0xc76d('0x55'));var _0x2b9ed9=ejs[_0xc76d('0x59')](_0xd16232,{'trunks':_0xa6508c});var _0x7210ee=ejs[_0xc76d('0x59')](_0x937c48,{'trunks':_0xa6508c});fs[_0xc76d('0x5a')](_0xc76d('0x5f'),_0x2b9ed9);fs[_0xc76d('0x5a')](_0xc76d('0x5b'),_0x7210ee);return respondWithRpcPromise(_0xc76d('0x5c'),_0xc76d('0x29'),{'module':_0xc76d('0x5d')});})[_0xc76d('0x1f')](handleError(_0x1bcd83,null));};
\ No newline at end of file
+var _0x74eb=['model','keys','dateStart','dateEnd','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','add','day','filter','options','include','rows','show','params','merge','find','clone','get','omit','updatedAt','body','createdAt','create','readFileSync','join','root','utf8','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','findAll','server/files/templates/trunk.ejs','chan_sip.so','html-pdf','eml-format','rimraf','moment','bluebird','mustache','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code','Trunk,\x20%s,\x20%s','message','result','catch','status','end','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','sendStatus','name','index','Trunk','rawAttributes'];(function(_0x3dcae6,_0x24652e){var _0x24fc25=function(_0x4d4ea9){while(--_0x4d4ea9){_0x3dcae6['push'](_0x3dcae6['shift']());}};_0x24fc25(++_0x24652e);}(_0x74eb,0xef));var _0xb74e=function(_0x4e1d08,_0x58bf59){_0x4e1d08=_0x4e1d08-0x0;var _0x259c5c=_0x74eb[_0x4e1d08];return _0x259c5c;};'use strict';var pdf=require(_0xb74e('0x0'));var emlformat=require(_0xb74e('0x1'));var rimraf=require(_0xb74e('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb74e('0x3'));var BPromise=require(_0xb74e('0x4'));var Mustache=require(_0xb74e('0x5'));var util=require(_0xb74e('0x6'));var path=require(_0xb74e('0x7'));var sox=require(_0xb74e('0x8'));var csv=require(_0xb74e('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb74e('0xa'));var squel=require('squel');var crypto=require(_0xb74e('0xb'));var jsforce=require(_0xb74e('0xc'));var deskjs=require(_0xb74e('0xd'));var toCsv=require(_0xb74e('0x9'));var querystring=require('querystring');var Papa=require(_0xb74e('0xe'));var Redis=require(_0xb74e('0xf'));var qs=require(_0xb74e('0x10'));var logger=require('../../config/logger')(_0xb74e('0x11'));var utils=require(_0xb74e('0x12'));var config=require(_0xb74e('0x13'));var db=require('../../mysqldb')['db'];var jayson=require(_0xb74e('0x14'));var client=jayson[_0xb74e('0x15')][_0xb74e('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x21a7f4,_0x5ac9d1,_0x5667e7,_0x5a8f8f){return new BPromise(function(_0x25dc1b,_0x2297fc){var _0x2d783e=_0x5a8f8f||client;return _0x2d783e[_0xb74e('0x17')](_0x21a7f4,_0x5667e7)[_0xb74e('0x18')](function(_0x5097d8){logger[_0xb74e('0x19')]('Trunk,\x20%s,\x20%s',_0x5ac9d1,_0xb74e('0x1a'));logger[_0xb74e('0x1b')]('Trunk,\x20%s,\x20%s,\x20%s',_0x5ac9d1,_0xb74e('0x1a'),JSON[_0xb74e('0x1c')](_0x5097d8));if(_0x5097d8[_0xb74e('0x1d')]){if(_0x5097d8[_0xb74e('0x1d')][_0xb74e('0x1e')]===0x1f4){logger[_0xb74e('0x1d')](_0xb74e('0x1f'),_0x5ac9d1,_0x5097d8[_0xb74e('0x1d')][_0xb74e('0x20')]);return _0x2297fc(_0x5097d8[_0xb74e('0x1d')][_0xb74e('0x20')]);}logger['error'](_0xb74e('0x1f'),_0x5ac9d1,_0x5097d8[_0xb74e('0x1d')][_0xb74e('0x20')]);return _0x25dc1b(_0x5097d8[_0xb74e('0x1d')][_0xb74e('0x20')]);}else{logger[_0xb74e('0x19')](_0xb74e('0x1f'),_0x5ac9d1,_0xb74e('0x1a'));_0x25dc1b(_0x5097d8[_0xb74e('0x21')]['message']);}})[_0xb74e('0x22')](function(_0x590b22){logger[_0xb74e('0x1d')](_0xb74e('0x1f'),_0x5ac9d1,_0x590b22);_0x2297fc(_0x590b22);});});}function respondWithStatusCode(_0x4f7d91,_0x136b6a){_0x136b6a=_0x136b6a||0xcc;return function(_0x1bb7d9){if(_0x1bb7d9){return _0x4f7d91['sendStatus'](_0x136b6a);}return _0x4f7d91[_0xb74e('0x23')](_0x136b6a)[_0xb74e('0x24')]();};}function respondWithResult(_0x36df42,_0x3e30d1){_0x3e30d1=_0x3e30d1||0xc8;return function(_0x352c81){if(_0x352c81){return _0x36df42[_0xb74e('0x23')](_0x3e30d1)['json'](_0x352c81);}};}function respondWithFilteredResult(_0x5a1c2f,_0x103001){return function(_0x287ec2){if(_0x287ec2){var _0x303c2f=_0x287ec2['count'],_0x267dd8=_0x103001[_0xb74e('0x25')],_0xed7ebc=_0x103001[_0xb74e('0x25')]+_0x103001[_0xb74e('0x26')],_0x1185ce;if(_0xed7ebc>=_0x303c2f){_0xed7ebc=_0x303c2f;_0x1185ce=0xc8;}else{_0x1185ce=0xce;}_0x5a1c2f[_0xb74e('0x23')](_0x1185ce);return _0x5a1c2f[_0xb74e('0x27')](_0xb74e('0x28'),_0x267dd8+'-'+_0xed7ebc+'/'+_0x303c2f)[_0xb74e('0x29')](_0x287ec2);}return null;};}function patchUpdates(_0x3fadf8){return function(_0x48c3a5){try{jsonpatch[_0xb74e('0x2a')](_0x48c3a5,_0x3fadf8,!![]);}catch(_0x4a2b21){return BPromise[_0xb74e('0x2b')](_0x4a2b21);}return _0x48c3a5[_0xb74e('0x2c')]();};}function saveUpdates(_0xee9301,_0x3f2d23){return function(_0x1a2e7f){if(_0x1a2e7f){return _0x1a2e7f[_0xb74e('0x2d')](_0xee9301)['then'](function(_0x208efb){return _0x208efb;});}return null;};}function removeEntity(_0x1dfd3f,_0x54d4fc){return function(_0x2f73af){if(_0x2f73af){return _0x2f73af[_0xb74e('0x2e')]()['then'](function(){_0x1dfd3f[_0xb74e('0x23')](0xcc)[_0xb74e('0x24')]();});}};}function handleEntityNotFound(_0x26b4ed,_0xa27e54){return function(_0x14ba42){if(!_0x14ba42){_0x26b4ed[_0xb74e('0x2f')](0x194);}return _0x14ba42;};}function handleError(_0x48b1d1,_0xc3815){_0xc3815=_0xc3815||0x1f4;return function(_0x574a7b){logger[_0xb74e('0x1d')](_0x574a7b['stack']);if(_0x574a7b[_0xb74e('0x30')]){delete _0x574a7b[_0xb74e('0x30')];}_0x48b1d1[_0xb74e('0x23')](_0xc3815)['send'](_0x574a7b);};}exports[_0xb74e('0x31')]=function(_0x44971b,_0x34629f){var _0x3f689b={},_0xccf45a={},_0x3380f0={'count':0x0,'rows':[]};var _0xb6a495=db[_0xb74e('0x32')][_0xb74e('0x33')];_0xccf45a[_0xb74e('0x34')]=_[_0xb74e('0x35')](_0xb6a495);var _0x1c6e69={'dateStart':_0x44971b['query'][_0xb74e('0x36')],'dateEnd':_0x44971b['query'][_0xb74e('0x37')]};delete _0x44971b[_0xb74e('0x38')][_0xb74e('0x36')];delete _0x44971b[_0xb74e('0x38')][_0xb74e('0x37')];_0xccf45a[_0xb74e('0x38')]=_[_0xb74e('0x35')](_0x44971b[_0xb74e('0x38')]);_0xccf45a[_0xb74e('0x39')]=_[_0xb74e('0x3a')](_0xccf45a['model'],_0xccf45a[_0xb74e('0x38')]);_0x3f689b[_0xb74e('0x3b')]=_[_0xb74e('0x3a')](_0xccf45a[_0xb74e('0x34')],qs[_0xb74e('0x3c')](_0x44971b[_0xb74e('0x38')]['fields']));_0x3f689b[_0xb74e('0x3b')]=_0x3f689b[_0xb74e('0x3b')][_0xb74e('0x3d')]?_0x3f689b[_0xb74e('0x3b')]:_0xccf45a[_0xb74e('0x34')];if(!_0x44971b[_0xb74e('0x38')][_0xb74e('0x3e')](_0xb74e('0x3f'))){_0x3f689b['limit']=qs[_0xb74e('0x26')](_0x44971b[_0xb74e('0x38')][_0xb74e('0x26')]);_0x3f689b[_0xb74e('0x25')]=qs[_0xb74e('0x25')](_0x44971b[_0xb74e('0x38')]['offset']);}_0x3f689b[_0xb74e('0x40')]=qs[_0xb74e('0x41')](_0x44971b[_0xb74e('0x38')][_0xb74e('0x41')]);_0x3f689b[_0xb74e('0x42')]=qs[_0xb74e('0x39')](_['pick'](_0x44971b['query'],_0xccf45a[_0xb74e('0x39')]));if(_0x1c6e69[_0xb74e('0x36')]){if(_0x1c6e69[_0xb74e('0x37')]){_0x1c6e69[_0xb74e('0x37')]=moment(_0x1c6e69[_0xb74e('0x37')])[_0xb74e('0x43')](0x1,_0xb74e('0x44'));}else{_0x1c6e69[_0xb74e('0x37')]=moment(_0x1c6e69['dateStart'])[_0xb74e('0x43')](0x1,_0xb74e('0x44'));}_['merge'](_0x3f689b[_0xb74e('0x42')],{'createdAt':{'$gte':_0x1c6e69[_0xb74e('0x36')],'$lte':_0x1c6e69[_0xb74e('0x37')]}});}if(_0x44971b[_0xb74e('0x38')][_0xb74e('0x45')]){_0x3f689b['where']=_['merge'](_0x3f689b[_0xb74e('0x42')],{'$or':_['map'](_0x3f689b[_0xb74e('0x3b')],function(_0x4caeae){var _0x363f61={};_0x363f61[_0x4caeae]={'$like':'%'+_0x44971b[_0xb74e('0x38')][_0xb74e('0x45')]+'%'};return _0x363f61;})});}_0x3f689b=_['merge']({},_0x3f689b,_0x44971b[_0xb74e('0x46')]);var _0x2ce27b={'where':_0x3f689b[_0xb74e('0x42')]};return db[_0xb74e('0x32')]['count'](_0x2ce27b)[_0xb74e('0x18')](function(_0x480988){_0x3380f0['count']=_0x480988;if(_0x44971b[_0xb74e('0x38')]['includeAll']){_0x3f689b[_0xb74e('0x47')]=[{'all':!![]}];}return db[_0xb74e('0x32')]['findAll'](_0x3f689b);})[_0xb74e('0x18')](function(_0x4718af){_0x3380f0[_0xb74e('0x48')]=_0x4718af;return _0x3380f0;})[_0xb74e('0x18')](respondWithFilteredResult(_0x34629f,_0x3f689b))['catch'](handleError(_0x34629f,null));};exports[_0xb74e('0x49')]=function(_0x1b01c5,_0x5deac9){var _0xb66e9f={'raw':![],'where':{'id':_0x1b01c5[_0xb74e('0x4a')]['id']}},_0x19d072={};_0x19d072[_0xb74e('0x34')]=_[_0xb74e('0x35')](db['Trunk'][_0xb74e('0x33')]);_0x19d072['query']=_[_0xb74e('0x35')](_0x1b01c5[_0xb74e('0x38')]);_0x19d072[_0xb74e('0x39')]=_['intersection'](_0x19d072['model'],_0x19d072[_0xb74e('0x38')]);_0xb66e9f[_0xb74e('0x3b')]=_[_0xb74e('0x3a')](_0x19d072[_0xb74e('0x34')],qs[_0xb74e('0x3c')](_0x1b01c5[_0xb74e('0x38')][_0xb74e('0x3c')]));_0xb66e9f[_0xb74e('0x3b')]=_0xb66e9f[_0xb74e('0x3b')]['length']?_0xb66e9f[_0xb74e('0x3b')]:_0x19d072[_0xb74e('0x34')];if(_0x1b01c5[_0xb74e('0x38')]['includeAll']){_0xb66e9f['include']=[{'all':!![]}];}_0xb66e9f=_[_0xb74e('0x4b')]({},_0xb66e9f,_0x1b01c5[_0xb74e('0x46')]);return db['Trunk'][_0xb74e('0x4c')](_0xb66e9f)[_0xb74e('0x18')](handleEntityNotFound(_0x5deac9,null))[_0xb74e('0x18')](respondWithResult(_0x5deac9,null))[_0xb74e('0x22')](handleError(_0x5deac9,null));};exports[_0xb74e('0x4d')]=function(_0x12f64f,_0x187622){var _0x13ff7c={'raw':![],'where':{'id':_0x12f64f[_0xb74e('0x4a')]['id']}},_0xaa9c6f={};_0xaa9c6f[_0xb74e('0x34')]=_[_0xb74e('0x35')](db[_0xb74e('0x32')]['rawAttributes']);_0x13ff7c['attributes']=_[_0xb74e('0x3a')](_0xaa9c6f[_0xb74e('0x34')],qs['fields'](_0x12f64f[_0xb74e('0x38')][_0xb74e('0x3c')]));_0x13ff7c[_0xb74e('0x3b')]=_0x13ff7c[_0xb74e('0x3b')][_0xb74e('0x3d')]?_0x13ff7c[_0xb74e('0x3b')]:_0xaa9c6f[_0xb74e('0x34')];if(_0x12f64f[_0xb74e('0x38')]['includeAll']){_0x13ff7c[_0xb74e('0x47')]=[{'all':!![]}];}_0x13ff7c=_[_0xb74e('0x4b')]({},_0x13ff7c,_0x12f64f[_0xb74e('0x46')]);return db[_0xb74e('0x32')]['find'](_0x13ff7c)[_0xb74e('0x18')](handleEntityNotFound(_0x187622,null))[_0xb74e('0x18')](function(_0x373f4f){if(_0x373f4f){var _0x27e3b9=_0x373f4f[_0xb74e('0x4e')]({'plain':!![]});_0x27e3b9=qs[_0xb74e('0x4f')](_0x27e3b9,['id','createdAt',_0xb74e('0x50')]);_0x12f64f[_0xb74e('0x51')]=_['omit'](_0x12f64f[_0xb74e('0x51')],['id',_0xb74e('0x52'),_0xb74e('0x50')]);return db[_0xb74e('0x32')][_0xb74e('0x53')](_[_0xb74e('0x4b')](_0x27e3b9,_0x12f64f[_0xb74e('0x51')]),{'include':_0x12f64f[_0xb74e('0x38')]['includeAll']?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x187622,0xc9))[_0xb74e('0x22')](handleError(_0x187622,null));};exports[_0xb74e('0x53')]=function(_0x548602,_0x38cf25,_0x113001){var _0x46b95e;return db[_0xb74e('0x32')][_0xb74e('0x53')](_0x548602[_0xb74e('0x51')],{'raw':!![]})['then'](function(_0x49b9dd){_0x46b95e=_0x49b9dd;return db[_0xb74e('0x32')]['findAll']({'raw':!![]});})[_0xb74e('0x18')](function(_0x39823e){var _0x4bf5a2=fs[_0xb74e('0x54')](path[_0xb74e('0x55')](config[_0xb74e('0x56')],'server/files/templates/trunk.ejs'),_0xb74e('0x57'));var _0x44ace4=fs[_0xb74e('0x54')](path[_0xb74e('0x55')](config[_0xb74e('0x56')],_0xb74e('0x58')),_0xb74e('0x57'));var _0x1fea69=ejs[_0xb74e('0x59')](_0x4bf5a2,{'trunks':_0x39823e||[]});fs[_0xb74e('0x5a')](_0xb74e('0x5b'),_0x1fea69);if(_0x46b95e[_0xb74e('0x5c')]){var _0x19a540=ejs[_0xb74e('0x59')](_0x44ace4,{'trunks':_0x39823e||[]});fs['writeFileSync'](_0xb74e('0x5d'),_0x19a540);}})['then'](function(){return respondWithRpcPromise('Reload',_0xb74e('0x53'),{'module':'chan_sip.so'});})[_0xb74e('0x18')](function(){return _0x46b95e;})[_0xb74e('0x18')](respondWithResult(_0x38cf25,0xc9))['catch'](handleError(_0x38cf25,null));};exports[_0xb74e('0x2d')]=function(_0x392ede,_0xf217c1,_0xe41460){var _0x528f36;return db[_0xb74e('0x32')]['find']({'where':{'id':_0x392ede['params']['id']}})[_0xb74e('0x18')](handleEntityNotFound(_0xf217c1,null))['then'](saveUpdates(_0x392ede['body'],null))['then'](function(_0x553831){if(_0x553831){_0x528f36=_0x553831;return db[_0xb74e('0x32')][_0xb74e('0x5e')]({'raw':!![]});}})[_0xb74e('0x18')](function(_0x45260e){if(_0x45260e){var _0x95c6cc=fs[_0xb74e('0x54')](path['join'](config[_0xb74e('0x56')],_0xb74e('0x5f')),'utf8');var _0x35d60c=fs[_0xb74e('0x54')](path['join'](config[_0xb74e('0x56')],_0xb74e('0x58')),'utf8');var _0x446598=ejs['render'](_0x95c6cc,{'trunks':_0x45260e||[]});fs[_0xb74e('0x5a')](_0xb74e('0x5b'),_0x446598);var _0x41c610=ejs['render'](_0x35d60c,{'trunks':_0x45260e||[]});fs[_0xb74e('0x5a')](_0xb74e('0x5d'),_0x41c610);return respondWithRpcPromise('Reload',_0xb74e('0x2d'),{'module':_0xb74e('0x60')});}return null;})[_0xb74e('0x18')](function(_0x2bf016){if(_0x2bf016){return _0x528f36;}})['then'](respondWithResult(_0xf217c1,null))[_0xb74e('0x22')](handleError(_0xf217c1,null));};exports['destroy']=function(_0x5f13e0,_0x1b3e84,_0x54cebf){var _0x791bff;return db[_0xb74e('0x32')][_0xb74e('0x4c')]({'where':{'id':_0x5f13e0[_0xb74e('0x4a')]['id']}})[_0xb74e('0x18')](handleEntityNotFound(_0x1b3e84,null))[_0xb74e('0x18')](removeEntity(_0x1b3e84,null))[_0xb74e('0x18')](function(){return db[_0xb74e('0x32')][_0xb74e('0x5e')]({'raw':!![]});})['then'](function(_0x44849d){var _0x218be5=fs[_0xb74e('0x54')](path[_0xb74e('0x55')](config[_0xb74e('0x56')],_0xb74e('0x5f')),_0xb74e('0x57'));var _0x4cbe9d=fs[_0xb74e('0x54')](path['join'](config[_0xb74e('0x56')],_0xb74e('0x58')),'utf8');var _0x596101=ejs['render'](_0x218be5,{'trunks':_0x44849d});var _0x30141a=ejs['render'](_0x4cbe9d,{'trunks':_0x44849d});fs[_0xb74e('0x5a')](_0xb74e('0x5b'),_0x596101);fs['writeFileSync'](_0xb74e('0x5d'),_0x30141a);return respondWithRpcPromise('Reload',_0xb74e('0x2e'),{'module':_0xb74e('0x60')});})['catch'](handleError(_0x1b3e84,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5998=['request-promise','./trunk.attributes','exports','define','tools_trunks','lodash','util','../../config/logger'];(function(_0x26ee91,_0x28c8a0){var _0x52d808=function(_0x267ada){while(--_0x267ada){_0x26ee91['push'](_0x26ee91['shift']());}};_0x52d808(++_0x28c8a0);}(_0x5998,0x115));var _0x8599=function(_0x22bf78,_0x5457d1){_0x22bf78=_0x22bf78-0x0;var _0x1befc8=_0x5998[_0x22bf78];return _0x1befc8;};'use strict';var _=require(_0x8599('0x0'));var util=require(_0x8599('0x1'));var logger=require(_0x8599('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x8599('0x3'));var attributes=require(_0x8599('0x4'));module[_0x8599('0x5')]=function(_0x5ef43c,_0x45ea57){return _0x5ef43c[_0x8599('0x6')]('Trunk',attributes,{'tableName':_0x8599('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xccc4=['exports','define','Trunk','tools_trunks','lodash','../../config/logger','moment','bluebird','request-promise','./trunk.attributes'];(function(_0x4b7594,_0x357da5){var _0x1f8c01=function(_0x16a57d){while(--_0x16a57d){_0x4b7594['push'](_0x4b7594['shift']());}};_0x1f8c01(++_0x357da5);}(_0xccc4,0x180));var _0x4ccc=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xccc4[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x4ccc('0x0'));var util=require('util');var logger=require(_0x4ccc('0x1'))('api');var moment=require(_0x4ccc('0x2'));var BPromise=require(_0x4ccc('0x3'));var rp=require(_0x4ccc('0x4'));var attributes=require(_0x4ccc('0x5'));module[_0x4ccc('0x6')]=function(_0x105f6f,_0x4bc729){return _0x105f6f[_0x4ccc('0x7')](_0x4ccc('0x8'),attributes,{'tableName':_0x4ccc('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbbb6=['result','catch','Trunk','findAll','options','raw','where','attributes','include','map','model','info','GetTrunk','stringify','ShowTrunk','find','debug','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','Trunk,\x20%s,\x20%s','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','code','message','error'];(function(_0x58a9b3,_0x1bd844){var _0x551616=function(_0x5c01bf){while(--_0x5c01bf){_0x58a9b3['push'](_0x58a9b3['shift']());}};_0x551616(++_0x1bd844);}(_0xbbb6,0xdd));var _0x6bbb=function(_0x416652,_0x3ba17b){_0x416652=_0x416652-0x0;var _0x762a0c=_0xbbb6[_0x416652];return _0x762a0c;};'use strict';var _=require(_0x6bbb('0x0'));var util=require(_0x6bbb('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x6bbb('0x2'));var fs=require('fs');var db=require(_0x6bbb('0x3'))['db'];var utils=require(_0x6bbb('0x4'));var logger=require(_0x6bbb('0x5'))(_0x6bbb('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x6bbb('0x7')][_0x6bbb('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4b943a,_0x1d645e,_0xc2074e){return new BPromise(function(_0x19d429,_0xcecf8f){return client[_0x6bbb('0x9')](_0x4b943a,_0xc2074e)[_0x6bbb('0xa')](function(_0x2b4260){logger['info'](_0x6bbb('0xb'),_0x1d645e,_0x6bbb('0xc'));logger['debug'](_0x6bbb('0xd'),_0x1d645e,'request\x20sent',JSON['stringify'](_0x2b4260));if(_0x2b4260['error']){if(_0x2b4260['error'][_0x6bbb('0xe')]===0x1f4){logger['error'](_0x6bbb('0xb'),_0x1d645e,_0x2b4260['error'][_0x6bbb('0xf')]);return _0xcecf8f(_0x2b4260[_0x6bbb('0x10')][_0x6bbb('0xf')]);}logger[_0x6bbb('0x10')](_0x6bbb('0xb'),_0x1d645e,_0x2b4260[_0x6bbb('0x10')][_0x6bbb('0xf')]);return _0x19d429(_0x2b4260['error']['message']);}else{logger['info'](_0x6bbb('0xb'),_0x1d645e,_0x6bbb('0xc'));_0x19d429(_0x2b4260[_0x6bbb('0x11')][_0x6bbb('0xf')]);}})[_0x6bbb('0x12')](function(_0x2120b7){logger[_0x6bbb('0x10')](_0x6bbb('0xb'),_0x1d645e,_0x2120b7);_0xcecf8f(_0x2120b7);});});}exports['GetTrunk']=function(_0x189eca){var _0x580de5=this;return new Promise(function(_0x3d50fc,_0x1fc981){return db[_0x6bbb('0x13')][_0x6bbb('0x14')]({'raw':_0x189eca[_0x6bbb('0x15')]?_0x189eca[_0x6bbb('0x15')][_0x6bbb('0x16')]===undefined?!![]:![]:!![],'where':_0x189eca[_0x6bbb('0x15')]?_0x189eca['options'][_0x6bbb('0x17')]||null:null,'attributes':_0x189eca['options']?_0x189eca[_0x6bbb('0x15')][_0x6bbb('0x18')]||null:null,'limit':_0x189eca[_0x6bbb('0x15')]?_0x189eca[_0x6bbb('0x15')]['limit']||null:null,'include':_0x189eca[_0x6bbb('0x15')]?_0x189eca[_0x6bbb('0x15')][_0x6bbb('0x19')]?_[_0x6bbb('0x1a')](_0x189eca[_0x6bbb('0x15')][_0x6bbb('0x19')],function(_0x5507a4){return{'model':db[_0x5507a4[_0x6bbb('0x1b')]],'as':_0x5507a4['as'],'attributes':_0x5507a4[_0x6bbb('0x18')],'include':_0x5507a4[_0x6bbb('0x19')]?_[_0x6bbb('0x1a')](_0x5507a4[_0x6bbb('0x19')],function(_0x841c46){return{'model':db[_0x841c46[_0x6bbb('0x1b')]],'as':_0x841c46['as'],'attributes':_0x841c46[_0x6bbb('0x18')],'include':_0x841c46['include']?_[_0x6bbb('0x1a')](_0x841c46['include'],function(_0x38c809){return{'model':db[_0x38c809[_0x6bbb('0x1b')]],'as':_0x38c809['as'],'attributes':_0x38c809['attributes']};}):[]};}):[]};}):[]:[]})[_0x6bbb('0xa')](function(_0x4cc900){logger[_0x6bbb('0x1c')](_0x6bbb('0x1d'),_0x189eca);logger['debug'](_0x6bbb('0x1d'),_0x189eca,JSON[_0x6bbb('0x1e')](_0x4cc900));_0x3d50fc(_0x4cc900);})['catch'](function(_0x3a01ac){logger['error']('GetTrunk',_0x3a01ac['message'],_0x189eca);_0x1fc981(_0x580de5[_0x6bbb('0x10')](0x1f4,_0x3a01ac[_0x6bbb('0xf')]));});});};exports[_0x6bbb('0x1f')]=function(_0x295202){var _0x3a87fa=this;return new Promise(function(_0x72c35f,_0x273f3c){return db[_0x6bbb('0x13')][_0x6bbb('0x20')]({'raw':_0x295202['options']?_0x295202[_0x6bbb('0x15')][_0x6bbb('0x16')]===undefined?!![]:![]:!![],'where':_0x295202['options']?_0x295202[_0x6bbb('0x15')]['where']||null:null,'attributes':_0x295202[_0x6bbb('0x15')]?_0x295202[_0x6bbb('0x15')][_0x6bbb('0x18')]||null:null,'include':_0x295202[_0x6bbb('0x15')]?_0x295202['options'][_0x6bbb('0x19')]?_[_0x6bbb('0x1a')](_0x295202[_0x6bbb('0x15')][_0x6bbb('0x19')],function(_0x265aba){return{'model':db[_0x265aba['model']],'as':_0x265aba['as'],'attributes':_0x265aba[_0x6bbb('0x18')],'include':_0x265aba['include']?_[_0x6bbb('0x1a')](_0x265aba['include'],function(_0x331ed6){return{'model':db[_0x331ed6[_0x6bbb('0x1b')]],'as':_0x331ed6['as'],'attributes':_0x331ed6[_0x6bbb('0x18')],'include':_0x331ed6[_0x6bbb('0x19')]?_[_0x6bbb('0x1a')](_0x331ed6['include'],function(_0x6fe667){return{'model':db[_0x6fe667[_0x6bbb('0x1b')]],'as':_0x6fe667['as'],'attributes':_0x6fe667[_0x6bbb('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x56e19b){logger[_0x6bbb('0x1c')](_0x6bbb('0x1f'),_0x295202);logger[_0x6bbb('0x21')](_0x6bbb('0x1f'),_0x295202,JSON[_0x6bbb('0x1e')](_0x56e19b));_0x72c35f(_0x56e19b);})[_0x6bbb('0x12')](function(_0x3d70e1){logger[_0x6bbb('0x10')](_0x6bbb('0x1f'),_0x3d70e1[_0x6bbb('0xf')],_0x295202);_0x273f3c(_0x3a87fa[_0x6bbb('0x10')](0x1f4,_0x3d70e1[_0x6bbb('0xf')]));});});};
\ No newline at end of file
+var _0xe650=['../../config/logger','jayson/promise','client','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetTrunk','Trunk','findAll','options','raw','where','attributes','limit','include','map','model','ShowTrunk','find','lodash','util','moment','randomstring','ioredis','../../config/utils'];(function(_0x26d6b2,_0x2a1500){var _0x3cf7c9=function(_0x106552){while(--_0x106552){_0x26d6b2['push'](_0x26d6b2['shift']());}};_0x3cf7c9(++_0x2a1500);}(_0xe650,0xe8));var _0x0e65=function(_0x290232,_0x225df1){_0x290232=_0x290232-0x0;var _0x52572c=_0xe650[_0x290232];return _0x52572c;};'use strict';var _=require(_0x0e65('0x0'));var util=require(_0x0e65('0x1'));var moment=require(_0x0e65('0x2'));var BPromise=require('bluebird');var rs=require(_0x0e65('0x3'));var fs=require('fs');var Redis=require(_0x0e65('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x0e65('0x5'));var logger=require(_0x0e65('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x0e65('0x7'));var client=jayson[_0x0e65('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4c497a,_0x22f575,_0x34ae5b){return new BPromise(function(_0x1547ad,_0x2a1bb0){return client[_0x0e65('0x9')](_0x4c497a,_0x34ae5b)[_0x0e65('0xa')](function(_0x541d6c){logger[_0x0e65('0xb')](_0x0e65('0xc'),_0x22f575,_0x0e65('0xd'));logger[_0x0e65('0xe')](_0x0e65('0xf'),_0x22f575,'request\x20sent',JSON[_0x0e65('0x10')](_0x541d6c));if(_0x541d6c[_0x0e65('0x11')]){if(_0x541d6c[_0x0e65('0x11')][_0x0e65('0x12')]===0x1f4){logger[_0x0e65('0x11')](_0x0e65('0xc'),_0x22f575,_0x541d6c[_0x0e65('0x11')]['message']);return _0x2a1bb0(_0x541d6c[_0x0e65('0x11')]['message']);}logger[_0x0e65('0x11')](_0x0e65('0xc'),_0x22f575,_0x541d6c[_0x0e65('0x11')]['message']);return _0x1547ad(_0x541d6c[_0x0e65('0x11')][_0x0e65('0x13')]);}else{logger[_0x0e65('0xb')](_0x0e65('0xc'),_0x22f575,_0x0e65('0xd'));_0x1547ad(_0x541d6c[_0x0e65('0x14')][_0x0e65('0x13')]);}})['catch'](function(_0x3187e7){logger[_0x0e65('0x11')](_0x0e65('0xc'),_0x22f575,_0x3187e7);_0x2a1bb0(_0x3187e7);});});}exports[_0x0e65('0x15')]=function(_0x55d09a){var _0x274ffc=this;return new Promise(function(_0x2710c2,_0x5e8d0a){return db[_0x0e65('0x16')][_0x0e65('0x17')]({'raw':_0x55d09a[_0x0e65('0x18')]?_0x55d09a['options'][_0x0e65('0x19')]===undefined?!![]:![]:!![],'where':_0x55d09a[_0x0e65('0x18')]?_0x55d09a[_0x0e65('0x18')][_0x0e65('0x1a')]||null:null,'attributes':_0x55d09a[_0x0e65('0x18')]?_0x55d09a['options'][_0x0e65('0x1b')]||null:null,'limit':_0x55d09a[_0x0e65('0x18')]?_0x55d09a[_0x0e65('0x18')][_0x0e65('0x1c')]||null:null,'include':_0x55d09a[_0x0e65('0x18')]?_0x55d09a[_0x0e65('0x18')][_0x0e65('0x1d')]?_[_0x0e65('0x1e')](_0x55d09a[_0x0e65('0x18')][_0x0e65('0x1d')],function(_0x1f7796){return{'model':db[_0x1f7796[_0x0e65('0x1f')]],'as':_0x1f7796['as'],'attributes':_0x1f7796[_0x0e65('0x1b')],'include':_0x1f7796['include']?_[_0x0e65('0x1e')](_0x1f7796[_0x0e65('0x1d')],function(_0x50507f){return{'model':db[_0x50507f[_0x0e65('0x1f')]],'as':_0x50507f['as'],'attributes':_0x50507f[_0x0e65('0x1b')],'include':_0x50507f[_0x0e65('0x1d')]?_['map'](_0x50507f[_0x0e65('0x1d')],function(_0xa9b1a3){return{'model':db[_0xa9b1a3[_0x0e65('0x1f')]],'as':_0xa9b1a3['as'],'attributes':_0xa9b1a3[_0x0e65('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x0e65('0xa')](function(_0x1a59a0){logger[_0x0e65('0xb')]('GetTrunk',_0x55d09a);logger['debug'](_0x0e65('0x15'),_0x55d09a,JSON[_0x0e65('0x10')](_0x1a59a0));_0x2710c2(_0x1a59a0);})['catch'](function(_0x30d54f){logger[_0x0e65('0x11')]('GetTrunk',_0x30d54f[_0x0e65('0x13')],_0x55d09a);_0x5e8d0a(_0x274ffc['error'](0x1f4,_0x30d54f[_0x0e65('0x13')]));});});};exports[_0x0e65('0x20')]=function(_0x400c3b){var _0x3073eb=this;return new Promise(function(_0x24b258,_0x2f1801){return db['Trunk'][_0x0e65('0x21')]({'raw':_0x400c3b[_0x0e65('0x18')]?_0x400c3b[_0x0e65('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x400c3b[_0x0e65('0x18')]?_0x400c3b[_0x0e65('0x18')][_0x0e65('0x1a')]||null:null,'attributes':_0x400c3b[_0x0e65('0x18')]?_0x400c3b[_0x0e65('0x18')][_0x0e65('0x1b')]||null:null,'include':_0x400c3b[_0x0e65('0x18')]?_0x400c3b[_0x0e65('0x18')][_0x0e65('0x1d')]?_[_0x0e65('0x1e')](_0x400c3b['options'][_0x0e65('0x1d')],function(_0x2674ec){return{'model':db[_0x2674ec[_0x0e65('0x1f')]],'as':_0x2674ec['as'],'attributes':_0x2674ec[_0x0e65('0x1b')],'include':_0x2674ec[_0x0e65('0x1d')]?_['map'](_0x2674ec[_0x0e65('0x1d')],function(_0x5fb6b8){return{'model':db[_0x5fb6b8['model']],'as':_0x5fb6b8['as'],'attributes':_0x5fb6b8['attributes'],'include':_0x5fb6b8['include']?_[_0x0e65('0x1e')](_0x5fb6b8[_0x0e65('0x1d')],function(_0xce98c8){return{'model':db[_0xce98c8[_0x0e65('0x1f')]],'as':_0xce98c8['as'],'attributes':_0xce98c8['attributes']};}):[]};}):[]};}):[]:[]})[_0x0e65('0xa')](function(_0x4c2925){logger['info'](_0x0e65('0x20'),_0x400c3b);logger['debug'](_0x0e65('0x20'),_0x400c3b,JSON[_0x0e65('0x10')](_0x4c2925));_0x24b258(_0x4c2925);})['catch'](function(_0x3d0bee){logger['error'](_0x0e65('0x20'),_0x3d0bee['message'],_0x400c3b);_0x2f1801(_0x3073eb[_0x0e65('0x11')](0x1f4,_0x3d0bee[_0x0e65('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa6a=['addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions','addFaxAccounts','/:id/mail_accounts','addMailAccounts','/:id/openchannel_accounts','addSmsAccounts','addChatWebsites','addSquareProjects','put','/:id','update','/:id/password','delete','removeTeams','destroy','removeChatInteractions','removeMailInteractions','removeFaxInteractions','removeSmsInteractions','removeOpenchannelInteractions','removeFaxAccounts','removeOpenchannelAccounts','removeChatWebsites','removeSquareProjects','exports','multer','path','express','../../config/environment','get','isAuthenticated','/describe','describe','show','/:id/avatar','getAvatar','/:id/contacts','getContacts','/:id/queues','getQueues','getVoiceQueuesRt','/:id/groups','getGroups','/:id/recordings','getRecordings','/:id/chat/interactions','getChatInteractions','/:id/openchannel/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','/:id/fax/interactions','/:id/teams','getTeams','getLists','/:id/agents','/:id/prefixes','getVoicePrefixes','/:id/fax_accounts','getFaxAccounts','getMailAccounts','/:id/sms_accounts','getSmsAccounts','/:id/chat_websites','getChatWebsites','/:id/square_projects','/:id/scheduled_calls','getScheduledCalls','post','/create_many','addContacts','create','addQueues','diskStorage','root','server/files/images/','format','%s-%s','originalname','single','file','addAvatar','/:id/login','login','/:id/pause','/:id/unpause','unpause','addTeams','/:id/chat_interactions','addChatInteractions','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions'];(function(_0x39a42c,_0x2daafe){var _0x10ac1d=function(_0x5456be){while(--_0x5456be){_0x39a42c['push'](_0x39a42c['shift']());}};_0x10ac1d(++_0x2daafe);}(_0xfa6a,0x1a3));var _0xafa6=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0xfa6a[_0x46e363];return _0x3fb059;};'use strict';var multer=require(_0xafa6('0x0'));var util=require('util');var path=require(_0xafa6('0x1'));var timeout=require('connect-timeout');var express=require(_0xafa6('0x2'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xafa6('0x3'));var controller=require('./user.controller');router[_0xafa6('0x4')]('/',auth[_0xafa6('0x5')](),controller['index']);router[_0xafa6('0x4')](_0xafa6('0x6'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x7')]);router[_0xafa6('0x4')]('/:id',auth['isAuthenticated'](),controller[_0xafa6('0x8')]);router[_0xafa6('0x4')](_0xafa6('0x9'),controller[_0xafa6('0xa')]);router['get'](_0xafa6('0xb'),auth[_0xafa6('0x5')](),controller[_0xafa6('0xc')]);router['get'](_0xafa6('0xd'),auth[_0xafa6('0x5')](),controller[_0xafa6('0xe')]);router['get']('/:id/queues_rt',auth[_0xafa6('0x5')](),controller[_0xafa6('0xf')]);router[_0xafa6('0x4')](_0xafa6('0x10'),auth['isAuthenticated'](),controller[_0xafa6('0x11')]);router[_0xafa6('0x4')](_0xafa6('0x12'),auth['isAuthenticated'](),controller[_0xafa6('0x13')]);router['get'](_0xafa6('0x14'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x15')]);router[_0xafa6('0x4')](_0xafa6('0x16'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x17')]);router[_0xafa6('0x4')](_0xafa6('0x18'),auth['isAuthenticated'](),controller[_0xafa6('0x19')]);router['get'](_0xafa6('0x1a'),auth[_0xafa6('0x5')](),controller['getSmsInteractions']);router[_0xafa6('0x4')](_0xafa6('0x1b'),auth[_0xafa6('0x5')](),controller['getFaxInteractions']);router[_0xafa6('0x4')](_0xafa6('0x1c'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x1d')]);router[_0xafa6('0x4')]('/:id/lists',auth[_0xafa6('0x5')](),controller[_0xafa6('0x1e')]);router['get'](_0xafa6('0x1f'),auth['isAuthenticated'](),controller['getAgents']);router['get'](_0xafa6('0x20'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x21')]);router[_0xafa6('0x4')](_0xafa6('0x22'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x23')]);router['get']('/:id/mail_accounts',auth['isAuthenticated'](),controller[_0xafa6('0x24')]);router['get']('/:id/openchannel_accounts',auth[_0xafa6('0x5')](),controller['getOpenchannelAccounts']);router[_0xafa6('0x4')](_0xafa6('0x25'),auth['isAuthenticated'](),controller[_0xafa6('0x26')]);router[_0xafa6('0x4')](_0xafa6('0x27'),auth['isAuthenticated'](),controller[_0xafa6('0x28')]);router[_0xafa6('0x4')](_0xafa6('0x29'),auth['isAuthenticated'](),controller['getSquareProjects']);router[_0xafa6('0x4')](_0xafa6('0x2a'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x2b')]);router[_0xafa6('0x2c')](_0xafa6('0x2d'),auth[_0xafa6('0x5')](),controller['bulkCreate']);router['post'](_0xafa6('0xb'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x2e')]);router[_0xafa6('0x2c')]('/',auth['isAuthenticated'](),controller[_0xafa6('0x2f')]);router[_0xafa6('0x2c')](_0xafa6('0xd'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x30')]);var upload=multer({'storage':multer[_0xafa6('0x31')]({'destination':function(_0x43e4e9,_0x181357,_0x125581){_0x125581(null,path['join'](config[_0xafa6('0x32')],_0xafa6('0x33')));},'filename':function(_0x500dc5,_0x466482,_0x226a62){_0x226a62(null,util[_0xafa6('0x34')](_0xafa6('0x35'),Date['now'](),_0x466482[_0xafa6('0x36')]));}})});router[_0xafa6('0x2c')](_0xafa6('0x9'),upload[_0xafa6('0x37')](_0xafa6('0x38')),controller[_0xafa6('0x39')]);router['post'](_0xafa6('0x3a'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x3b')]);router[_0xafa6('0x2c')]('/:id/logout',auth[_0xafa6('0x5')](),controller['logout']);router[_0xafa6('0x2c')](_0xafa6('0x3c'),auth[_0xafa6('0x5')](),controller['pause']);router[_0xafa6('0x2c')](_0xafa6('0x3d'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x3e')]);router['post'](_0xafa6('0x1c'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x3f')]);router[_0xafa6('0x2c')](_0xafa6('0x40'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x41')]);router[_0xafa6('0x2c')](_0xafa6('0x42'),auth['isAuthenticated'](),controller[_0xafa6('0x43')]);router[_0xafa6('0x2c')](_0xafa6('0x44'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x45')]);router[_0xafa6('0x2c')](_0xafa6('0x46'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x47')]);router['post'](_0xafa6('0x48'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x49')]);router['post'](_0xafa6('0x22'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x4a')]);router[_0xafa6('0x2c')](_0xafa6('0x4b'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x4c')]);router[_0xafa6('0x2c')](_0xafa6('0x4d'),auth[_0xafa6('0x5')](),controller['addOpenchannelAccounts']);router[_0xafa6('0x2c')](_0xafa6('0x25'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x4e')]);router[_0xafa6('0x2c')]('/:id/chat_websites',auth['isAuthenticated'](),controller[_0xafa6('0x4f')]);router[_0xafa6('0x2c')](_0xafa6('0x29'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x50')]);router[_0xafa6('0x51')](_0xafa6('0x52'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x53')]);router[_0xafa6('0x51')](_0xafa6('0x54'),auth[_0xafa6('0x5')](),controller['changePassword']);router[_0xafa6('0x55')](_0xafa6('0xd'),auth[_0xafa6('0x5')](),controller['removeQueues']);router['delete'](_0xafa6('0x1c'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x56')]);router[_0xafa6('0x55')](_0xafa6('0x52'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x57')]);router[_0xafa6('0x55')](_0xafa6('0x40'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x58')]);router[_0xafa6('0x55')](_0xafa6('0x42'),auth['isAuthenticated'](),controller[_0xafa6('0x59')]);router[_0xafa6('0x55')]('/:id/fax_interactions',auth['isAuthenticated'](),controller[_0xafa6('0x5a')]);router[_0xafa6('0x55')](_0xafa6('0x46'),auth['isAuthenticated'](),controller[_0xafa6('0x5b')]);router['delete'](_0xafa6('0x48'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x5c')]);router[_0xafa6('0x55')](_0xafa6('0x22'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x5d')]);router['delete'](_0xafa6('0x4b'),auth[_0xafa6('0x5')](),controller['removeMailAccounts']);router[_0xafa6('0x55')]('/:id/openchannel_accounts',auth['isAuthenticated'](),controller[_0xafa6('0x5e')]);router[_0xafa6('0x55')](_0xafa6('0x25'),auth[_0xafa6('0x5')](),controller['removeSmsAccounts']);router[_0xafa6('0x55')](_0xafa6('0x27'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x5f')]);router[_0xafa6('0x55')](_0xafa6('0x29'),auth[_0xafa6('0x5')](),controller[_0xafa6('0x60')]);module[_0xafa6('0x61')]=router;
\ No newline at end of file
+var _0xa987=['getOpenchannelAccounts','/:id/sms_accounts','getSmsAccounts','getChatWebsites','/:id/scheduled_calls','getScheduledCalls','post','bulkCreate','addContacts','addQueues','diskStorage','join','root','server/files/images/','format','%s-%s','now','file','addAvatar','/:id/login','login','logout','/:id/pause','pause','/:id/unpause','unpause','addTeams','/:id/chat_interactions','addChatInteractions','/:id/mail_interactions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','/:id/openchannel_interactions','addOpenchannelInteractions','/:id/fax_accounts','addFaxAccounts','addMailAccounts','addChatWebsites','/:id/square_projects','addSquareProjects','put','/:id/password','changePassword','delete','removeQueues','/:id/teams','removeChatInteractions','removeMailInteractions','removeOpenchannelInteractions','removeMailAccounts','removeOpenchannelAccounts','removeSmsAccounts','/:id/chat_websites','removeSquareProjects','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./user.controller','isAuthenticated','index','get','/describe','describe','/:id','/:id/avatar','getAvatar','getContacts','/:id/queues','getQueues','/:id/queues_rt','getVoiceQueuesRt','/:id/groups','getGroups','/:id/recordings','getChatInteractions','/:id/openchannel/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','/:id/fax/interactions','getFaxInteractions','getTeams','/:id/lists','getLists','getAgents','/:id/prefixes','getVoicePrefixes','getFaxAccounts','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts'];(function(_0x3d154b,_0x3b0876){var _0x5e1517=function(_0x1e7695){while(--_0x1e7695){_0x3d154b['push'](_0x3d154b['shift']());}};_0x5e1517(++_0x3b0876);}(_0xa987,0x9c));var _0x7a98=function(_0x4ae6ef,_0xc2af80){_0x4ae6ef=_0x4ae6ef-0x0;var _0x3cbb4e=_0xa987[_0x4ae6ef];return _0x3cbb4e;};'use strict';var multer=require(_0x7a98('0x0'));var util=require(_0x7a98('0x1'));var path=require(_0x7a98('0x2'));var timeout=require(_0x7a98('0x3'));var express=require(_0x7a98('0x4'));var router=express[_0x7a98('0x5')]();var auth=require(_0x7a98('0x6'));var interaction=require(_0x7a98('0x7'));var config=require(_0x7a98('0x8'));var controller=require(_0x7a98('0x9'));router['get']('/',auth[_0x7a98('0xa')](),controller[_0x7a98('0xb')]);router[_0x7a98('0xc')](_0x7a98('0xd'),auth[_0x7a98('0xa')](),controller[_0x7a98('0xe')]);router['get'](_0x7a98('0xf'),auth[_0x7a98('0xa')](),controller['show']);router['get'](_0x7a98('0x10'),controller[_0x7a98('0x11')]);router['get']('/:id/contacts',auth[_0x7a98('0xa')](),controller[_0x7a98('0x12')]);router[_0x7a98('0xc')](_0x7a98('0x13'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x14')]);router[_0x7a98('0xc')](_0x7a98('0x15'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x16')]);router[_0x7a98('0xc')](_0x7a98('0x17'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x18')]);router[_0x7a98('0xc')](_0x7a98('0x19'),auth['isAuthenticated'](),controller['getRecordings']);router[_0x7a98('0xc')]('/:id/chat/interactions',auth[_0x7a98('0xa')](),controller[_0x7a98('0x1a')]);router[_0x7a98('0xc')](_0x7a98('0x1b'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x1c')]);router[_0x7a98('0xc')](_0x7a98('0x1d'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x1e')]);router[_0x7a98('0xc')](_0x7a98('0x1f'),auth[_0x7a98('0xa')](),controller['getSmsInteractions']);router[_0x7a98('0xc')](_0x7a98('0x20'),auth['isAuthenticated'](),controller[_0x7a98('0x21')]);router[_0x7a98('0xc')]('/:id/teams',auth[_0x7a98('0xa')](),controller[_0x7a98('0x22')]);router[_0x7a98('0xc')](_0x7a98('0x23'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x24')]);router[_0x7a98('0xc')]('/:id/agents',auth[_0x7a98('0xa')](),controller[_0x7a98('0x25')]);router['get'](_0x7a98('0x26'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x27')]);router[_0x7a98('0xc')]('/:id/fax_accounts',auth[_0x7a98('0xa')](),controller[_0x7a98('0x28')]);router[_0x7a98('0xc')](_0x7a98('0x29'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x2a')]);router[_0x7a98('0xc')](_0x7a98('0x2b'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x2c')]);router[_0x7a98('0xc')](_0x7a98('0x2d'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x2e')]);router[_0x7a98('0xc')]('/:id/chat_websites',auth[_0x7a98('0xa')](),controller[_0x7a98('0x2f')]);router[_0x7a98('0xc')]('/:id/square_projects',auth[_0x7a98('0xa')](),controller['getSquareProjects']);router[_0x7a98('0xc')](_0x7a98('0x30'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x31')]);router[_0x7a98('0x32')]('/create_many',auth['isAuthenticated'](),controller[_0x7a98('0x33')]);router[_0x7a98('0x32')]('/:id/contacts',auth[_0x7a98('0xa')](),controller[_0x7a98('0x34')]);router[_0x7a98('0x32')]('/',auth[_0x7a98('0xa')](),controller['create']);router[_0x7a98('0x32')]('/:id/queues',auth[_0x7a98('0xa')](),controller[_0x7a98('0x35')]);var upload=multer({'storage':multer[_0x7a98('0x36')]({'destination':function(_0xe001e7,_0x587c73,_0x16a7e3){_0x16a7e3(null,path[_0x7a98('0x37')](config[_0x7a98('0x38')],_0x7a98('0x39')));},'filename':function(_0x323f43,_0x261d9d,_0x3f31f6){_0x3f31f6(null,util[_0x7a98('0x3a')](_0x7a98('0x3b'),Date[_0x7a98('0x3c')](),_0x261d9d['originalname']));}})});router['post'](_0x7a98('0x10'),upload['single'](_0x7a98('0x3d')),controller[_0x7a98('0x3e')]);router[_0x7a98('0x32')](_0x7a98('0x3f'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x40')]);router['post']('/:id/logout',auth[_0x7a98('0xa')](),controller[_0x7a98('0x41')]);router[_0x7a98('0x32')](_0x7a98('0x42'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x43')]);router[_0x7a98('0x32')](_0x7a98('0x44'),auth['isAuthenticated'](),controller[_0x7a98('0x45')]);router[_0x7a98('0x32')]('/:id/teams',auth[_0x7a98('0xa')](),controller[_0x7a98('0x46')]);router[_0x7a98('0x32')](_0x7a98('0x47'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x48')]);router['post'](_0x7a98('0x49'),auth[_0x7a98('0xa')](),controller['addMailInteractions']);router[_0x7a98('0x32')](_0x7a98('0x4a'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x4b')]);router[_0x7a98('0x32')](_0x7a98('0x4c'),auth[_0x7a98('0xa')](),controller['addSmsInteractions']);router['post'](_0x7a98('0x4d'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x4e')]);router[_0x7a98('0x32')](_0x7a98('0x4f'),auth['isAuthenticated'](),controller[_0x7a98('0x50')]);router[_0x7a98('0x32')](_0x7a98('0x29'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x51')]);router[_0x7a98('0x32')](_0x7a98('0x2b'),auth[_0x7a98('0xa')](),controller['addOpenchannelAccounts']);router[_0x7a98('0x32')](_0x7a98('0x2d'),auth['isAuthenticated'](),controller['addSmsAccounts']);router[_0x7a98('0x32')]('/:id/chat_websites',auth[_0x7a98('0xa')](),controller[_0x7a98('0x52')]);router[_0x7a98('0x32')](_0x7a98('0x53'),auth['isAuthenticated'](),controller[_0x7a98('0x54')]);router[_0x7a98('0x55')](_0x7a98('0xf'),auth[_0x7a98('0xa')](),controller['update']);router[_0x7a98('0x55')](_0x7a98('0x56'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x57')]);router[_0x7a98('0x58')]('/:id/queues',auth[_0x7a98('0xa')](),controller[_0x7a98('0x59')]);router[_0x7a98('0x58')](_0x7a98('0x5a'),auth[_0x7a98('0xa')](),controller['removeTeams']);router['delete'](_0x7a98('0xf'),auth['isAuthenticated'](),controller['destroy']);router['delete'](_0x7a98('0x47'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x5b')]);router[_0x7a98('0x58')]('/:id/mail_interactions',auth[_0x7a98('0xa')](),controller[_0x7a98('0x5c')]);router[_0x7a98('0x58')]('/:id/fax_interactions',auth['isAuthenticated'](),controller['removeFaxInteractions']);router[_0x7a98('0x58')](_0x7a98('0x4c'),auth['isAuthenticated'](),controller['removeSmsInteractions']);router[_0x7a98('0x58')]('/:id/openchannel_interactions',auth['isAuthenticated'](),controller[_0x7a98('0x5d')]);router[_0x7a98('0x58')](_0x7a98('0x4f'),auth[_0x7a98('0xa')](),controller['removeFaxAccounts']);router['delete']('/:id/mail_accounts',auth['isAuthenticated'](),controller[_0x7a98('0x5e')]);router[_0x7a98('0x58')](_0x7a98('0x2b'),auth[_0x7a98('0xa')](),controller[_0x7a98('0x5f')]);router[_0x7a98('0x58')](_0x7a98('0x2d'),auth['isAuthenticated'](),controller[_0x7a98('0x60')]);router['delete'](_0x7a98('0x61'),auth[_0x7a98('0xa')](),controller['removeChatWebsites']);router['delete'](_0x7a98('0x53'),auth['isAuthenticated'](),controller[_0x7a98('0x62')]);module[_0x7a98('0x63')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['from-sip','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_FAILED_SCREEN','PROHIB','join','transport','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','shortinfo','inband','auto','rfc2833','update','outgoing','yes','force_rport,comedia','nat','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','allow','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','always','accept','refuse','originate','uac','uas','certificate','active','passive','nonat','update,nonat','showWebBar','isArray','wss','encryption','avpf','force_avp','icesupport','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','dtlsprivatekey','actpass','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','rtcp_mux','TEXT','permissions','map','sequelize','moment','util','STRING','name','setDataValue','The\x20name\x20of\x20the\x20user','fullname','callerid','format','\x22%s\x22\x20<%s>','getDataValue','internal','email','toLowerCase','ENUM','admin','user','agent','telephone','INTEGER','BOOLEAN','DATE','DEFAULT\x20PAUSE','friend','peer'];(function(_0x4b1bb0,_0x7dc32b){var _0x549407=function(_0xa08deb){while(--_0xa08deb){_0x4b1bb0['push'](_0x4b1bb0['shift']());}};_0x549407(++_0x7dc32b);}(_0x70e0,0x17b));var _0x070e=function(_0x4b5413,_0x216a1b){_0x4b5413=_0x4b5413-0x0;var _0x268909=_0x70e0[_0x4b5413];return _0x268909;};'use strict';var Sequelize=require(_0x070e('0x0'));var moment=require(_0x070e('0x1'));var util=require(_0x070e('0x2'));var _=require('lodash');module['exports']={'name':{'type':Sequelize[_0x070e('0x3')],'allowNull':![],'unique':_0x070e('0x4'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x277d32){this[_0x070e('0x5')]('name',_0x277d32);this[_0x070e('0x5')]('defaultuser',_0x277d32);},'comment':_0x070e('0x6')},'fullname':{'type':Sequelize['STRING'],'allowNull':![],'set':function(_0x56e420){this['setDataValue'](_0x070e('0x7'),_0x56e420);this[_0x070e('0x5')](_0x070e('0x8'),util[_0x070e('0x9')](_0x070e('0xa'),_0x56e420,this[_0x070e('0xb')](_0x070e('0xc'))));}},'alias':{'type':Sequelize['STRING']},'email':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x070e('0xd'),'validate':{'isEmail':!![]},'set':function(_0x2e3e5e){if(_0x2e3e5e){this[_0x070e('0x5')](_0x070e('0xd'),_0x2e3e5e[_0x070e('0xe')]());}}},'role':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x10'),_0x070e('0x11'),_0x070e('0x12'),_0x070e('0x13')),'allowNull':![]},'password':{'type':Sequelize[_0x070e('0x3')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':'local'},'internal':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':![],'unique':'internal','set':function(_0x4a33d2){this['setDataValue'](_0x070e('0xc'),_0x4a33d2);this[_0x070e('0x5')]('accountcode',_0x4a33d2);this['setDataValue'](_0x070e('0x8'),util[_0x070e('0x9')](_0x070e('0xa'),this[_0x070e('0xb')]('fullname'),_0x4a33d2));}},'salt':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0x070e('0x3')]},'mobile':{'type':Sequelize[_0x070e('0x3')]},'address':{'type':Sequelize[_0x070e('0x3')]},'zipcode':{'type':Sequelize[_0x070e('0x3')]},'userpic':{'type':Sequelize[_0x070e('0x3')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0x070e('0x3')]},'online':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0x070e('0x16')]},'voicePause':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'mailPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'faxPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'smsPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0x070e('0x3')],'defaultValue':_0x070e('0x17')},'lastPauseAt':{'type':Sequelize['DATE']},'chatCapacity':{'type':Sequelize[_0x070e('0x14')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0x070e('0x14')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0x070e('0x14')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0x070e('0x14')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0x070e('0x15')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0x070e('0x14')](0x5),'defaultValue':0x13c4},'phoneBarExpires':{'type':Sequelize[_0x070e('0x14')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'host':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![],'defaultValue':'dynamic'},'ipaddr':{'type':Sequelize['STRING'],'allowNull':!![]},'port':{'type':Sequelize[_0x070e('0x14')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'regserver':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'useragent':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'lastms':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x18'),_0x070e('0x11'),_0x070e('0x19')),'allowNull':!![],'defaultValue':_0x070e('0x18')},'context':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![],'defaultValue':_0x070e('0x1a')},'callingpres':{'type':Sequelize[_0x070e('0xf')]('ALLOWED_NOT_SCREENED',_0x070e('0x1b'),_0x070e('0x1c'),_0x070e('0x1d'),'PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN',_0x070e('0x1e'),_0x070e('0x1f')),'allowNull':!![]},'deny':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'permit':{'type':Sequelize['STRING'],'allowNull':!![]},'secret':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'transport':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![],'defaultValue':'udp','set':function(_0x5bf522){this['setDataValue']('transport',_0x5bf522?_0x5bf522[_0x070e('0x20')](','):null);},'get':function(){return this['getDataValue'](_0x070e('0x21'))?this[_0x070e('0xb')]('transport')['split'](','):null;},'comment':_0x070e('0x22')},'dtmfmode':{'type':Sequelize[_0x070e('0xf')]('rfc2833','info',_0x070e('0x23'),_0x070e('0x24'),_0x070e('0x25')),'allowNull':!![],'defaultValue':_0x070e('0x26')},'directmedia':{'type':Sequelize[_0x070e('0xf')]('yes','no','nonat',_0x070e('0x27'),_0x070e('0x28')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'directmediadeny':{'type':Sequelize['STRING'],'allowNull':!![]},'nat':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![],'defaultValue':_0x070e('0x2a'),'set':function(_0x534150){this[_0x070e('0x5')](_0x070e('0x2b'),_0x534150?_0x534150['join'](','):null);},'get':function(){return this['getDataValue']('nat')?this[_0x070e('0xb')](_0x070e('0x2b'))[_0x070e('0x2c')](','):null;},'comment':_0x070e('0x2d')},'callgroup':{'type':Sequelize[_0x070e('0x3')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0x070e('0x3')]},'namedpickupgroup':{'type':Sequelize[_0x070e('0x3')]},'language':{'type':Sequelize[_0x070e('0x3')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0x070e('0x3')],'allowNull':![],'defaultValue':_0x070e('0x2e')},'allow':{'type':Sequelize[_0x070e('0x3')],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x13982f){this[_0x070e('0x5')]('allow',_0x13982f?_0x13982f[_0x070e('0x20')](';'):'ulaw;alaw;gsm');},'get':function(){return this[_0x070e('0xb')](_0x070e('0x2f'))?this[_0x070e('0xb')](_0x070e('0x2f'))[_0x070e('0x2c')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]'},'autoframing':{'type':Sequelize[_0x070e('0xf')]('yes','no'),'allowNull':!![]},'insecure':{'type':Sequelize['STRING'],'allowNull':!![],'set':function(_0x398168){this[_0x070e('0x5')](_0x070e('0x30'),_0x398168?_0x398168['join'](','):null);},'get':function(){return this[_0x070e('0xb')](_0x070e('0x30'))?this[_0x070e('0xb')](_0x070e('0x30'))['split'](','):null;},'comment':_0x070e('0x31')},'trustrpid':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0x070e('0x29'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no',_0x070e('0x32')),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0x070e('0xf')]('yes','no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0x070e('0xf')]('yes','no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'callerid':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize['STRING'],'allowNull':!![]},'callcounter':{'type':Sequelize[_0x070e('0xf')]('yes','no'),'allowNull':!![],'defaultValue':_0x070e('0x29')},'busylevel':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0x070e('0xf')]('yes','no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'template':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0x070e('0xf')]('yes','no',_0x070e('0x33')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x34'),_0x070e('0x35'),_0x070e('0x36')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x37'),_0x070e('0x38')),'allowNull':!![],'defaultValue':_0x070e('0x38')},'t38pt_usertpsource':{'type':Sequelize['STRING'],'allowNull':!![]},'regexten':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'qualify':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![],'defaultValue':_0x070e('0x29')},'keepalive':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'timert1':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'contactacl':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'maxforwards':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'encryption':{'type':Sequelize['ENUM'](_0x070e('0x29'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0x070e('0xf')]('yes','no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0x070e('0xf')]('yes','no','fingerprint',_0x070e('0x39')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x3a'),_0x070e('0x3b'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING'],'allowNull':!![]},'usereqphone':{'type':Sequelize['ENUM'](_0x070e('0x29'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0x070e('0x14')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize['ENUM'](_0x070e('0x29'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize['ENUM'](_0x070e('0x29'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0x070e('0x3')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0x070e('0xf')]('yes','no',_0x070e('0x3c'),_0x070e('0x27'),_0x070e('0x3d')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0x070e('0x3')]},'resetPasswordExpires':{'type':Sequelize[_0x070e('0x16')]},'showWebBar':{'type':Sequelize['INTEGER'],'defaultValue':0x0,'set':function(_0x1f1df5){this['setDataValue'](_0x070e('0x3e'),_0x1f1df5);var _0x569f92=this['get']({'plain':!![]});switch(_0x1f1df5){case 0x0:case 0x1:var _0x4b354d=_0x569f92[_0x070e('0x21')]?_[_0x070e('0x3f')](_0x569f92[_0x070e('0x21')])?_0x569f92[_0x070e('0x21')][_0x070e('0x20')]():_0x569f92[_0x070e('0x21')]:'udp';if(_0x4b354d===_0x070e('0x40')){_0x4b354d='udp';}this[_0x070e('0x5')]('transport',_0x4b354d);this[_0x070e('0x5')](_0x070e('0x41'),'no');this['setDataValue'](_0x070e('0x42'),null);this['setDataValue'](_0x070e('0x43'),null);this[_0x070e('0x5')](_0x070e('0x44'),null);this[_0x070e('0x5')](_0x070e('0x45'),null);this[_0x070e('0x5')](_0x070e('0x46'),null);this[_0x070e('0x5')](_0x070e('0x47'),null);this[_0x070e('0x5')](_0x070e('0x48'),null);this[_0x070e('0x5')](_0x070e('0x49'),null);this[_0x070e('0x5')]('rtcp_mux','no');break;case 0x2:this[_0x070e('0x5')](_0x070e('0x21'),_0x070e('0x40'));this[_0x070e('0x5')]('encryption',_0x070e('0x29'));this[_0x070e('0x5')](_0x070e('0x42'),_0x070e('0x29'));this[_0x070e('0x5')](_0x070e('0x43'),'yes');this[_0x070e('0x5')](_0x070e('0x44'),_0x070e('0x29'));this[_0x070e('0x5')]('dtlsenable',_0x070e('0x29'));this['setDataValue'](_0x070e('0x46'),'no');this[_0x070e('0x5')](_0x070e('0x47'),_0x070e('0x4a'));this[_0x070e('0x5')]('dtlscertfile',_0x569f92[_0x070e('0x48')]||_0x070e('0x4b'));this[_0x070e('0x5')](_0x070e('0x49'),_0x569f92['dtlsprivatekey']||_0x070e('0x4c'));this['setDataValue'](_0x070e('0x4d'),_0x070e('0x29'));break;default:}}},'permissions':{'type':Sequelize[_0x070e('0x4e')],'set':function(_0x57585e){this[_0x070e('0x5')]('permissions',_0x57585e?_0x57585e[_0x070e('0x20')](','):[]);},'get':function(){return this['getDataValue'](_0x070e('0x4f'))?_[_0x070e('0x50')](this['getDataValue'](_0x070e('0x4f'))['split'](','),function(_0x1c831f){return parseInt(_0x1c831f,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0x070e('0x3')]},'phoneBarNoReplyNumber':{'type':Sequelize['STRING']},'phoneBarBusyNumber':{'type':Sequelize['STRING']},'phoneBarUnconditional':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0x070e('0x15')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0x070e('0x15')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0x070e('0x14')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0x070e('0x3')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0x070e('0x14')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0x070e('0xf')](_0x070e('0x29'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0x070e('0x15')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0x070e('0x3')]},'passwordResetAt':{'type':Sequelize['DATE'],'defaultValue':null},'phoneBarEnableJaws':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hotdesk':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'interface':{'type':Sequelize[_0x070e('0x3')],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0x070e('0x15')],'defaultValue':![]}};
\ No newline at end of file
+var _0x0713=['split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','inband','nonat','update','yes','force_rport,comedia','nat','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','\x22\x22\x20<>','always','accept','refuse','uac','uas','fingerprint','active','passive','actpass','showWebBar','get','isArray','wss','encryption','avpf','force_avp','icesupport','dtlsenable','dtlsverify','dtlscertfile','rtcp_mux','dtlssetup','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','permissions','map','util','lodash','exports','STRING','name','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','fullname','callerid','format','\x22%s\x22\x20<%s>','internal','email','toLowerCase','ENUM','admin','user','local','INTEGER','accountcode','getDataValue','BOOLEAN','DATE','DEFAULT\x20PAUSE','dynamic','friend','peer','from-sip','ALLOWED_NOT_SCREENED','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','transport','join'];(function(_0x26eb3d,_0x2cfde2){var _0x4bd0c1=function(_0xb650cb){while(--_0xb650cb){_0x26eb3d['push'](_0x26eb3d['shift']());}};_0x4bd0c1(++_0x2cfde2);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');var util=require(_0x3071('0x0'));var _=require(_0x3071('0x1'));module[_0x3071('0x2')]={'name':{'type':Sequelize[_0x3071('0x3')],'allowNull':![],'unique':_0x3071('0x4'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x52b5fb){this[_0x3071('0x5')](_0x3071('0x4'),_0x52b5fb);this[_0x3071('0x5')](_0x3071('0x6'),_0x52b5fb);},'comment':_0x3071('0x7')},'fullname':{'type':Sequelize[_0x3071('0x3')],'allowNull':![],'set':function(_0x1d3dd6){this[_0x3071('0x5')](_0x3071('0x8'),_0x1d3dd6);this[_0x3071('0x5')](_0x3071('0x9'),util[_0x3071('0xa')](_0x3071('0xb'),_0x1d3dd6,this['getDataValue'](_0x3071('0xc'))));}},'alias':{'type':Sequelize[_0x3071('0x3')]},'email':{'type':Sequelize[_0x3071('0x3')],'allowNull':![],'unique':_0x3071('0xd'),'validate':{'isEmail':!![]},'set':function(_0x1ce844){if(_0x1ce844){this['setDataValue'](_0x3071('0xd'),_0x1ce844[_0x3071('0xe')]());}}},'role':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x10'),_0x3071('0x11'),'agent','telephone'),'allowNull':![]},'password':{'type':Sequelize[_0x3071('0x3')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':_0x3071('0x12')},'internal':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':![],'unique':'internal','set':function(_0x104e73){this['setDataValue'](_0x3071('0xc'),_0x104e73);this[_0x3071('0x5')](_0x3071('0x14'),_0x104e73);this[_0x3071('0x5')](_0x3071('0x9'),util[_0x3071('0xa')](_0x3071('0xb'),this[_0x3071('0x15')](_0x3071('0x8')),_0x104e73));}},'salt':{'type':Sequelize[_0x3071('0x3')]},'phone':{'type':Sequelize['STRING']},'mobile':{'type':Sequelize[_0x3071('0x3')]},'address':{'type':Sequelize[_0x3071('0x3')]},'zipcode':{'type':Sequelize[_0x3071('0x3')]},'userpic':{'type':Sequelize[_0x3071('0x3')]},'city':{'type':Sequelize[_0x3071('0x3')]},'country':{'type':Sequelize[_0x3071('0x3')]},'online':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0x3071('0x17')]},'voicePause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chatPause':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'mailPause':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'faxPause':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'smsPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'pauseType':{'type':Sequelize['STRING'],'defaultValue':_0x3071('0x18')},'lastPauseAt':{'type':Sequelize[_0x3071('0x17')]},'chatCapacity':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x13c4},'phoneBarExpires':{'type':Sequelize[_0x3071('0x13')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'description':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'host':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![],'defaultValue':_0x3071('0x19')},'ipaddr':{'type':Sequelize['STRING'],'allowNull':!![]},'port':{'type':Sequelize[_0x3071('0x13')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'regserver':{'type':Sequelize['STRING'],'allowNull':!![]},'useragent':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'lastms':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x1a'),_0x3071('0x11'),_0x3071('0x1b')),'allowNull':!![],'defaultValue':_0x3071('0x1a')},'context':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![],'defaultValue':_0x3071('0x1c')},'callingpres':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x1d'),'ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN',_0x3071('0x1e'),_0x3071('0x1f'),_0x3071('0x20'),_0x3071('0x21'),_0x3071('0x22')),'allowNull':!![]},'deny':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'permit':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'secret':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'md5secret':{'type':Sequelize['STRING'],'allowNull':!![]},'remotesecret':{'type':Sequelize['STRING'],'allowNull':!![]},'transport':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x3071('0x23'),'set':function(_0x392800){this['setDataValue'](_0x3071('0x24'),_0x392800?_0x392800[_0x3071('0x25')](','):null);},'get':function(){return this[_0x3071('0x15')](_0x3071('0x24'))?this['getDataValue'](_0x3071('0x24'))[_0x3071('0x26')](','):null;},'comment':_0x3071('0x27')},'dtmfmode':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x28'),_0x3071('0x29'),_0x3071('0x2a'),_0x3071('0x2b'),'auto'),'allowNull':!![],'defaultValue':_0x3071('0x28')},'directmedia':{'type':Sequelize['ENUM']('yes','no',_0x3071('0x2c'),_0x3071('0x2d'),'outgoing'),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'nat':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![],'defaultValue':_0x3071('0x2f'),'set':function(_0x5610ab){this[_0x3071('0x5')](_0x3071('0x30'),_0x5610ab?_0x5610ab['join'](','):null);},'get':function(){return this[_0x3071('0x15')]('nat')?this[_0x3071('0x15')](_0x3071('0x30'))['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0x3071('0x3')]},'namedcallgroup':{'type':Sequelize[_0x3071('0x3')]},'pickupgroup':{'type':Sequelize[_0x3071('0x3')]},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0x3071('0x3')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0x3071('0x3')],'allowNull':![],'defaultValue':'all'},'allow':{'type':Sequelize[_0x3071('0x3')],'allowNull':![],'defaultValue':_0x3071('0x31'),'set':function(_0x1fcc52){this[_0x3071('0x5')](_0x3071('0x32'),_0x1fcc52?_0x1fcc52['join'](';'):'ulaw;alaw;gsm');},'get':function(){return this[_0x3071('0x15')](_0x3071('0x32'))?this[_0x3071('0x15')](_0x3071('0x32'))['split'](';'):null;},'comment':_0x3071('0x33')},'autoframing':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![],'set':function(_0x277104){this[_0x3071('0x5')]('insecure',_0x277104?_0x277104[_0x3071('0x25')](','):null);},'get':function(){return this['getDataValue']('insecure')?this['getDataValue']('insecure')[_0x3071('0x26')](','):null;},'comment':_0x3071('0x34')},'trustrpid':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize['STRING'],'allowNull':!![]},'callerid':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x3071('0x35')},'amaflags':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':_0x3071('0x2e')},'busylevel':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0x3071('0xf')]('yes','no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0x3071('0xf')]('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize['STRING'],'allowNull':!![]},'template':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no',_0x3071('0x36')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0x3071('0xf')]('yes','no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'session_timers':{'type':Sequelize['ENUM'](_0x3071('0x37'),_0x3071('0x38'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x39'),_0x3071('0x3a')),'allowNull':!![],'defaultValue':_0x3071('0x3a')},'t38pt_usertpsource':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'regexten':{'type':Sequelize['STRING'],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'qualify':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'yes'},'keepalive':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'timert1':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'contactacl':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'use_q850_reason':{'type':Sequelize['STRING'],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0x3071('0xf')]('yes','no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no',_0x3071('0x3b'),'certificate'),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'dtlscapath':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x3c'),_0x3071('0x3d'),_0x3071('0x3e')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING'],'allowNull':!![]},'recordofffeature':{'type':Sequelize['STRING'],'allowNull':!![]},'call_limit':{'type':Sequelize[_0x3071('0x13')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0x3071('0xf')]('yes','no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'mohsuggest':{'type':Sequelize['STRING'],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0x3071('0x3')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0x3071('0xf')](_0x3071('0x2e'),'no',_0x3071('0x2c'),_0x3071('0x2d'),'update,nonat'),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0x3071('0x3')]},'resetPasswordExpires':{'type':Sequelize[_0x3071('0x17')]},'showWebBar':{'type':Sequelize['INTEGER'],'defaultValue':0x0,'set':function(_0x1b0f81){this[_0x3071('0x5')](_0x3071('0x3f'),_0x1b0f81);var _0x25680e=this[_0x3071('0x40')]({'plain':!![]});switch(_0x1b0f81){case 0x0:case 0x1:var _0x210123=_0x25680e[_0x3071('0x24')]?_[_0x3071('0x41')](_0x25680e[_0x3071('0x24')])?_0x25680e['transport'][_0x3071('0x25')]():_0x25680e[_0x3071('0x24')]:_0x3071('0x23');if(_0x210123===_0x3071('0x42')){_0x210123=_0x3071('0x23');}this[_0x3071('0x5')](_0x3071('0x24'),_0x210123);this[_0x3071('0x5')](_0x3071('0x43'),'no');this[_0x3071('0x5')](_0x3071('0x44'),null);this['setDataValue'](_0x3071('0x45'),null);this[_0x3071('0x5')](_0x3071('0x46'),null);this[_0x3071('0x5')](_0x3071('0x47'),null);this[_0x3071('0x5')](_0x3071('0x48'),null);this[_0x3071('0x5')]('dtlssetup',null);this[_0x3071('0x5')](_0x3071('0x49'),null);this['setDataValue']('dtlsprivatekey',null);this[_0x3071('0x5')](_0x3071('0x4a'),'no');break;case 0x2:this[_0x3071('0x5')](_0x3071('0x24'),'wss');this['setDataValue'](_0x3071('0x43'),'yes');this['setDataValue']('avpf','yes');this[_0x3071('0x5')](_0x3071('0x45'),_0x3071('0x2e'));this['setDataValue'](_0x3071('0x46'),_0x3071('0x2e'));this[_0x3071('0x5')](_0x3071('0x47'),'yes');this[_0x3071('0x5')](_0x3071('0x48'),'no');this['setDataValue'](_0x3071('0x4b'),_0x3071('0x3e'));this[_0x3071('0x5')](_0x3071('0x49'),_0x25680e[_0x3071('0x49')]||_0x3071('0x4c'));this[_0x3071('0x5')]('dtlsprivatekey',_0x25680e['dtlsprivatekey']||_0x3071('0x4d'));this[_0x3071('0x5')](_0x3071('0x4a'),'yes');break;default:}}},'permissions':{'type':Sequelize['TEXT'],'set':function(_0x9f49f0){this[_0x3071('0x5')](_0x3071('0x4e'),_0x9f49f0?_0x9f49f0[_0x3071('0x25')](','):[]);},'get':function(){return this[_0x3071('0x15')](_0x3071('0x4e'))?_[_0x3071('0x4f')](this[_0x3071('0x15')]('permissions')[_0x3071('0x26')](','),function(_0x5ea33f){return parseInt(_0x5ea33f,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0x3071('0x3')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0x3071('0x3')]},'phoneBarBusyNumber':{'type':Sequelize[_0x3071('0x3')]},'phoneBarUnconditional':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0x3071('0x16')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0x3071('0x16')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0x3071('0x3')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0x3071('0x13')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize['ENUM'](_0x3071('0x2e'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0x3071('0x16')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0x3071('0x3')]},'passwordResetAt':{'type':Sequelize['DATE'],'defaultValue':null},'phoneBarEnableJaws':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]},'interface':{'type':Sequelize[_0x3071('0x3')],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0x3071('0x16')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d54=['./user.socket','register','jayson/promise','http','request','then','request\x20sent','User,\x20%s,\x20%s,\x20%s','stringify','error','code','User,\x20%s,\x20%s','message','result','catch','sendStatus','end','count','limit','status','Content-Range','json','reject','save','update','destroy','stack','name','send','index','User','rawAttributes','keys','dateStart','dateEnd','query','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','map','sequelize','filter','options','includeAll','include','findAll','rows','show','params','differenceBy','length','find','bulkCreate','body','describe','addContacts','role','telephone','admin','user','../../config/license/util','getLicense','telephones','isNil','License\x20limit\x20reached','format','count\x20%s:\x20%s','internal','Setting','SELECT','from','voicemail','mailbox','VoiceMail','password','email','101','110','104','105','106','107','108','109','100','changePassword','oldPassword','newPassword','Sequelize','ValidationError','authenticate','Wrong\x20credentials','Invalid\x20body\x20format.\x20Use\x20newPassword','Unauthorized','loginInPause','voicePause','isValidChannel','channel','Unknown\x20channel','toLowerCase','Queues','ids','spread','capitalize','QueueId','Queue:save','VoiceQueue','voice','agent','interface','SIP/%s','each','upsert','removeQueues','remove','file','getAvatar','join','userpic','download','existsSync','root','server/files/images/','getContacts','findOne','CmContact','CmList','List','Tag','Tags','color','tag','offset','getQueues','Queue','get','UserVoiceQueueRt','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','UserId','VoiceRecording','getChatInteractions','getOpenchannelInteractions','OpenchannelInteraction','getMailInteractions','MailInteraction','SmsInteraction','getSmsInteractions','getFaxInteractions','FaxInteraction','login','phone','mobile','LOCAL/%s@from-sip/n','intrf','user:%s','emit','headers','x-forwarded-for','connection','socket','remoteAddress','UserVoiceQueue.penalty','MemberReport','push','YYYY-MM-DD\x20HH:mm:ss','all','getChannels','LOGIN','device','LOGININPAUSE','concat','logout','forEach','pause','updateAttributes','type','DEFAULT\x20PAUSE','unpause','mailPause','faxPause','openchannelPause','smsPause','pauseType','lastPauseAt','QueuePause','PAUSE','manual','mail','chat','sms','set','%s%s','getTeams','Team','addTeams','omit','removeTeams','getLists','getVoiceQueues','Agents','values','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','isArray','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','getVoicePrefixes','VoicePrefix','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','getMailAccounts','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','addSmsAccounts','removeSmsAccounts','getChatWebsites','addChatWebsites','removeChatWebsites','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$and','$or','$gt','$gte','$lt','$lte','$eq','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$contains','$contained','$any','firstName','lastName','Contact','dialActive','rimraf','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter'];(function(_0x2706da,_0x3856f5){var _0x3ba87e=function(_0x479a79){while(--_0x479a79){_0x2706da['push'](_0x2706da['shift']());}};_0x3ba87e(++_0x3856f5);}(_0x0d54,0x118));var _0x40d5=function(_0x4914e2,_0x48be8f){_0x4914e2=_0x4914e2-0x0;var _0x2dcd07=_0x0d54[_0x4914e2];return _0x2dcd07;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x40d5('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x40d5('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x40d5('0x2'));var Mustache=require(_0x40d5('0x3'));var util=require(_0x40d5('0x4'));var path=require(_0x40d5('0x5'));var sox=require(_0x40d5('0x6'));var csv=require(_0x40d5('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x40d5('0x8'));var crypto=require(_0x40d5('0x9'));var jsforce=require(_0x40d5('0xa'));var deskjs=require(_0x40d5('0xb'));var toCsv=require(_0x40d5('0x7'));var querystring=require(_0x40d5('0xc'));var Papa=require('papaparse');var qs=require(_0x40d5('0xd'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x40d5('0xe'));var db=require(_0x40d5('0xf'))['db'];config[_0x40d5('0x10')]=_[_0x40d5('0x11')](config[_0x40d5('0x10')],{'host':_0x40d5('0x12'),'port':0x18eb});var socket=require(_0x40d5('0x13'))(config[_0x40d5('0x10')]);require(_0x40d5('0x14'))[_0x40d5('0x15')](socket);var jayson=require(_0x40d5('0x16'));var client=jayson['client'][_0x40d5('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x4c9d43,_0x11999e,_0x2adeff,_0x2e40ba){return new BPromise(function(_0x36e86,_0x6fd559){var _0x4cb829=_0x2e40ba||client;return _0x4cb829[_0x40d5('0x18')](_0x4c9d43,_0x2adeff)[_0x40d5('0x19')](function(_0xc28bc0){logger['info']('User,\x20%s,\x20%s',_0x11999e,_0x40d5('0x1a'));logger['debug'](_0x40d5('0x1b'),_0x11999e,_0x40d5('0x1a'),JSON[_0x40d5('0x1c')](_0xc28bc0));if(_0xc28bc0[_0x40d5('0x1d')]){if(_0xc28bc0[_0x40d5('0x1d')][_0x40d5('0x1e')]===0x1f4){logger['error'](_0x40d5('0x1f'),_0x11999e,_0xc28bc0[_0x40d5('0x1d')][_0x40d5('0x20')]);return _0x6fd559(_0xc28bc0[_0x40d5('0x1d')][_0x40d5('0x20')]);}logger[_0x40d5('0x1d')](_0x40d5('0x1f'),_0x11999e,_0xc28bc0[_0x40d5('0x1d')][_0x40d5('0x20')]);return _0x36e86(_0xc28bc0[_0x40d5('0x1d')][_0x40d5('0x20')]);}else{logger['info'](_0x40d5('0x1f'),_0x11999e,_0x40d5('0x1a'));_0x36e86(_0xc28bc0[_0x40d5('0x21')]['message']);}})[_0x40d5('0x22')](function(_0x1eae0a){logger[_0x40d5('0x1d')](_0x40d5('0x1f'),_0x11999e,_0x1eae0a);_0x6fd559(_0x1eae0a);});});}function respondWithStatusCode(_0x2f3c58,_0x10a572){_0x10a572=_0x10a572||0xcc;return function(_0x42d6c3){if(_0x42d6c3){return _0x2f3c58[_0x40d5('0x23')](_0x10a572);}return _0x2f3c58['status'](_0x10a572)[_0x40d5('0x24')]();};}function respondWithResult(_0x54f673,_0x1cc042){_0x1cc042=_0x1cc042||0xc8;return function(_0x8d745f){if(_0x8d745f){return _0x54f673['status'](_0x1cc042)['json'](_0x8d745f);}};}function respondWithFilteredResult(_0x559584,_0x3324f6){return function(_0x2ab3e9){if(_0x2ab3e9){var _0xfbd5a1=_0x2ab3e9[_0x40d5('0x25')],_0x45e345=_0x3324f6['offset'],_0xc7dd54=_0x3324f6['offset']+_0x3324f6[_0x40d5('0x26')],_0x5b7384;if(_0xc7dd54>=_0xfbd5a1){_0xc7dd54=_0xfbd5a1;_0x5b7384=0xc8;}else{_0x5b7384=0xce;}_0x559584[_0x40d5('0x27')](_0x5b7384);return _0x559584['set'](_0x40d5('0x28'),_0x45e345+'-'+_0xc7dd54+'/'+_0xfbd5a1)[_0x40d5('0x29')](_0x2ab3e9);}return null;};}function patchUpdates(_0x290074){return function(_0x499303){try{jsonpatch['apply'](_0x499303,_0x290074,!![]);}catch(_0x404a46){return BPromise[_0x40d5('0x2a')](_0x404a46);}return _0x499303[_0x40d5('0x2b')]();};}function saveUpdates(_0x441a7f,_0x30dcc6){return function(_0x2fdd71){if(_0x2fdd71){return _0x2fdd71[_0x40d5('0x2c')](_0x441a7f)[_0x40d5('0x19')](function(_0x110848){return _0x110848;});}return null;};}function removeEntity(_0x5b8fc4,_0x2236ee){return function(_0x285db6){if(_0x285db6){return _0x285db6[_0x40d5('0x2d')]()[_0x40d5('0x19')](function(){_0x5b8fc4[_0x40d5('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x331965,_0x76f72d){return function(_0x3c4c2c){if(!_0x3c4c2c){_0x331965[_0x40d5('0x23')](0x194);}return _0x3c4c2c;};}function handleError(_0x3363d7,_0x4fa725){_0x4fa725=_0x4fa725||0x1f4;return function(_0x2febcf){logger['error'](_0x2febcf[_0x40d5('0x2e')]);if(_0x2febcf[_0x40d5('0x2f')]){delete _0x2febcf[_0x40d5('0x2f')];}_0x3363d7[_0x40d5('0x27')](_0x4fa725)[_0x40d5('0x30')](_0x2febcf);};}exports[_0x40d5('0x31')]=function(_0x160ff2,_0x44b602){var _0x57c1cc={},_0x117cde={},_0x2219fe={'count':0x0,'rows':[]};var _0x2e5dc8=db[_0x40d5('0x32')][_0x40d5('0x33')];_0x117cde['model']=_['differenceBy'](_[_0x40d5('0x34')](_0x2e5dc8),['password','salt']);var _0x42cb95={'dateStart':_0x160ff2['query'][_0x40d5('0x35')],'dateEnd':_0x160ff2['query'][_0x40d5('0x36')]};delete _0x160ff2['query'][_0x40d5('0x35')];delete _0x160ff2[_0x40d5('0x37')]['dateEnd'];_0x117cde[_0x40d5('0x37')]=_['keys'](_0x160ff2[_0x40d5('0x37')]);_0x117cde['filters']=_[_0x40d5('0x38')](_0x117cde['model'],_0x117cde[_0x40d5('0x37')]);_0x57c1cc['attributes']=_[_0x40d5('0x38')](_0x117cde[_0x40d5('0x39')],qs['fields'](_0x160ff2[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x57c1cc[_0x40d5('0x3b')]=_0x57c1cc[_0x40d5('0x3b')]['length']?_0x57c1cc['attributes']:_0x117cde[_0x40d5('0x39')];if(!_0x160ff2[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x57c1cc[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x160ff2[_0x40d5('0x37')]['limit']);_0x57c1cc['offset']=qs['offset'](_0x160ff2[_0x40d5('0x37')]['offset']);}_0x57c1cc[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x160ff2[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x57c1cc[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x160ff2[_0x40d5('0x37')],_0x117cde['filters']));if(_0x42cb95['dateStart']){if(_0x42cb95['dateEnd']){_0x42cb95[_0x40d5('0x36')]=moment(_0x42cb95[_0x40d5('0x36')])[_0x40d5('0x43')](0x1,_0x40d5('0x44'));}else{_0x42cb95[_0x40d5('0x36')]=moment(_0x42cb95[_0x40d5('0x35')])[_0x40d5('0x43')](0x1,'day');}_[_0x40d5('0x45')](_0x57c1cc[_0x40d5('0x40')],{'createdAt':{'$gte':_0x42cb95['dateStart'],'$lte':_0x42cb95[_0x40d5('0x36')]}});}if(_0x160ff2[_0x40d5('0x37')]['filter']){_0x57c1cc[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x57c1cc[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x57c1cc['attributes'],function(_0x469064){return db[_0x40d5('0x47')][_0x40d5('0x40')](db[_0x40d5('0x47')]['fn']('lower',db['sequelize']['col'](_0x469064)),{'$like':db[_0x40d5('0x47')]['fn']('lower','%'+_0x160ff2[_0x40d5('0x37')][_0x40d5('0x48')]+'%')});})});}_0x57c1cc=_[_0x40d5('0x45')]({},_0x57c1cc,_0x160ff2[_0x40d5('0x49')]);var _0x15a96d={'where':_0x57c1cc['where']};return db[_0x40d5('0x32')][_0x40d5('0x25')](_0x15a96d)[_0x40d5('0x19')](function(_0x59de53){_0x2219fe[_0x40d5('0x25')]=_0x59de53;if(_0x160ff2['query'][_0x40d5('0x4a')]){_0x57c1cc[_0x40d5('0x4b')]=[{'all':!![]}];}return db[_0x40d5('0x32')][_0x40d5('0x4c')](_0x57c1cc);})[_0x40d5('0x19')](function(_0x36e65b){_0x2219fe[_0x40d5('0x4d')]=_0x36e65b;return _0x2219fe;})[_0x40d5('0x19')](respondWithFilteredResult(_0x44b602,_0x57c1cc))['catch'](handleError(_0x44b602,null));};exports[_0x40d5('0x4e')]=function(_0x361bbb,_0x1c70a7){var _0x59c8ba={'raw':![],'where':{'id':_0x361bbb[_0x40d5('0x4f')]['id']}},_0x4bf1b7={};_0x4bf1b7[_0x40d5('0x39')]=_[_0x40d5('0x50')](_[_0x40d5('0x34')](db[_0x40d5('0x32')][_0x40d5('0x33')]),['password','salt']);_0x4bf1b7['query']=_[_0x40d5('0x34')](_0x361bbb[_0x40d5('0x37')]);_0x4bf1b7['filters']=_[_0x40d5('0x38')](_0x4bf1b7[_0x40d5('0x39')],_0x4bf1b7[_0x40d5('0x37')]);_0x59c8ba['attributes']=_[_0x40d5('0x38')](_0x4bf1b7[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x361bbb[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x59c8ba[_0x40d5('0x3b')]=_0x59c8ba['attributes'][_0x40d5('0x51')]?_0x59c8ba[_0x40d5('0x3b')]:_0x4bf1b7[_0x40d5('0x39')];if(_0x361bbb[_0x40d5('0x37')][_0x40d5('0x4a')]){_0x59c8ba[_0x40d5('0x4b')]=[{'all':!![]}];}_0x59c8ba=_['merge']({},_0x59c8ba,_0x361bbb[_0x40d5('0x49')]);return db['User'][_0x40d5('0x52')](_0x59c8ba)[_0x40d5('0x19')](handleEntityNotFound(_0x1c70a7,null))[_0x40d5('0x19')](respondWithResult(_0x1c70a7,null))[_0x40d5('0x22')](handleError(_0x1c70a7,null));};exports[_0x40d5('0x53')]=function(_0x7932e7,_0x4a403d){return db[_0x40d5('0x32')][_0x40d5('0x53')](_0x7932e7['body'],{'raw':![],'individualHooks':!![]})[_0x40d5('0x19')](respondWithResult(_0x4a403d,0xc9))[_0x40d5('0x22')](handleError(_0x4a403d,null));};exports['update']=function(_0x58aca4,_0x4f5226){if(_0x58aca4[_0x40d5('0x54')]['id']){delete _0x58aca4[_0x40d5('0x54')]['id'];}return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x58aca4['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x4f5226,null))[_0x40d5('0x19')](saveUpdates(_0x58aca4[_0x40d5('0x54')],null))[_0x40d5('0x19')](respondWithResult(_0x4f5226,null))[_0x40d5('0x22')](handleError(_0x4f5226,null));};exports[_0x40d5('0x55')]=function(_0x5ddb24,_0x1260b4){return db[_0x40d5('0x32')]['describe']()[_0x40d5('0x19')](respondWithResult(_0x1260b4,null))['catch'](handleError(_0x1260b4,null));};exports[_0x40d5('0x56')]=function(_0x2efd26,_0x429552,_0x16b14b){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x2efd26[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x429552,null))[_0x40d5('0x19')](function(_0x4e11eb){if(_0x4e11eb){return _0x4e11eb[_0x40d5('0x56')](_0x2efd26['body']['ids'],_['omit'](_0x2efd26[_0x40d5('0x54')],['ids','id'])||{});}})[_0x40d5('0x19')](respondWithResult(_0x429552,null))[_0x40d5('0x22')](handleError(_0x429552,null));};var getLicense=function(_0x410754){return new BPromise(function(_0x7f67d8,_0x4ab09a){var _0x503cfd=0x0;_0x410754[_0x40d5('0x54')][_0x40d5('0x57')]==='agent'&&_0x7f67d8('agent\x20role');return db['User'][_0x40d5('0x25')]({'where':{'$or':[{'role':_0x410754[_0x40d5('0x54')][_0x40d5('0x57')]===_0x40d5('0x58')?_0x40d5('0x58'):[_0x40d5('0x59'),_0x40d5('0x5a')]}]}})[_0x40d5('0x19')](function(_0x11be70){_0x503cfd=_0x11be70;return require(_0x40d5('0x5b'))[_0x40d5('0x5c')]();})[_0x40d5('0x19')](function(_0x41e5a8){var _0x4947dc=_0x410754[_0x40d5('0x54')][_0x40d5('0x57')]===_0x40d5('0x58')?_0x40d5('0x5d'):'users';if(!_[_0x40d5('0x5e')](_0x41e5a8[_0x4947dc])&&_0x503cfd>=_0x41e5a8[_0x4947dc]){return _0x4ab09a({'message':_0x40d5('0x5f')});}return _0x7f67d8(util[_0x40d5('0x60')](_0x40d5('0x61'),_0x4947dc,_0x503cfd));})['catch'](function(_0x1bfbe5){return _0x4ab09a(_0x1bfbe5);});});};exports['create']=function(_0x1bbac0,_0x3698df){return getLicense(_0x1bbac0)[_0x40d5('0x19')](function(_0x5cb097){if(!_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]){var _0x5bc354;return db[_0x40d5('0x63')]['findById'](0x1)[_0x40d5('0x19')](function(_0x114d21){_0x5bc354=_0x114d21['min_internal'];return db[_0x40d5('0x32')]['max'](_0x40d5('0x62'));})[_0x40d5('0x19')](function(_0x4295aa){if(_[_0x40d5('0x5e')](_0x4295aa)){if(_0x5bc354){_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]=_0x5bc354;}else{_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]=0x1;}}else{if(_['isNil'](_0x5bc354)||_0x5bc354==_0x4295aa){_0x1bbac0['body']['internal']=_0x4295aa+0x1;}else if(_0x5bc354>_0x4295aa){_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]=_0x5bc354;}else{return db['sequelize'][_0x40d5('0x37')]('select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)',{'type':db[_0x40d5('0x47')]['QueryTypes'][_0x40d5('0x64')]})['then'](function(_0x26680f){if(_0x26680f&&_0x26680f[_0x40d5('0x51')]){for(var _0x4b2cd1=0x0,_0x3f919c=_0x26680f['length'];_0x4b2cd1<_0x3f919c&&_[_0x40d5('0x5e')](_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]);_0x4b2cd1++){if(_0x5bc354<=_0x26680f[_0x4b2cd1]['from']){_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]=_0x26680f[_0x4b2cd1][_0x40d5('0x65')];}else if(_0x5bc354>_0x26680f[_0x4b2cd1]['from']&&_0x5bc354<=_0x26680f[_0x4b2cd1]['to']){_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]=_0x5bc354;}}}if(_[_0x40d5('0x5e')](_0x1bbac0['body']['internal'])){_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')]=_0x4295aa+0x1;}});}}});}})[_0x40d5('0x19')](function(){if(_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x66')]){_0x1bbac0['body'][_0x40d5('0x67')]=_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')];_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x68')]={'mailbox':_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x62')],'password':_0x1bbac0['body'][_0x40d5('0x69')],'fullname':_0x1bbac0[_0x40d5('0x54')]['fullname'],'email':_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x6a')]};}if(_0x1bbac0[_0x40d5('0x54')]&&_0x1bbac0[_0x40d5('0x54')][_0x40d5('0x57')]==='agent'){_0x1bbac0['body']['permissions']=[_0x40d5('0x6b'),'102','103',_0x40d5('0x6c'),_0x40d5('0x6d'),_0x40d5('0x6e'),_0x40d5('0x6f'),_0x40d5('0x70'),_0x40d5('0x71'),_0x40d5('0x72'),_0x40d5('0x73'),'111'];}return db[_0x40d5('0x32')]['create'](_0x1bbac0[_0x40d5('0x54')],{'include':[{'model':db[_0x40d5('0x68')],'as':_0x40d5('0x68')}]});})[_0x40d5('0x19')](respondWithResult(_0x3698df,0xc9))[_0x40d5('0x22')](handleError(_0x3698df,null));};exports[_0x40d5('0x74')]=function(_0x45a93d,_0x1be60a,_0xa0a9c8){if(_0x45a93d[_0x40d5('0x54')]['id']){delete _0x45a93d['body']['id'];}return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x45a93d['params']['id']}})[_0x40d5('0x19')](function(_0x827fde){if(_0x827fde){if(_0x827fde['id']==_0x45a93d[_0x40d5('0x5a')]['id']){if(!_0x45a93d[_0x40d5('0x54')][_0x40d5('0x75')]||!_0x45a93d[_0x40d5('0x54')][_0x40d5('0x76')]){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))]('Invalid\x20body\x20format.\x20Use\x20oldPassord\x20and\x20newPassword');}if(!_0x827fde[_0x40d5('0x79')](_0x45a93d['body'][_0x40d5('0x75')])){throw new db['Sequelize'][(_0x40d5('0x78'))](_0x40d5('0x7a'));}if(_0x45a93d[_0x40d5('0x54')][_0x40d5('0x75')]==_0x45a93d[_0x40d5('0x54')]['newPassword']){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))]('New\x20password\x20must\x20be\x20different\x20from\x20old\x20password');}return _0x827fde;}else if(_0x45a93d['user']['role']==_0x40d5('0x59')){if(!_0x45a93d[_0x40d5('0x54')][_0x40d5('0x76')]){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))](_0x40d5('0x7b'));}return _0x827fde;}else if(_0x45a93d[_0x40d5('0x5a')][_0x40d5('0x57')]==_0x40d5('0x5a')){if(!_0x45a93d['body'][_0x40d5('0x76')]){throw new db[(_0x40d5('0x77'))]['ValidationError'](_0x40d5('0x7b'));}if(_0x827fde[_0x40d5('0x57')]!='agent'){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))](_0x40d5('0x7c'));}return _0x827fde;}else{throw new db['Sequelize']['ValidationError'](_0x40d5('0x7c'));}}return null;})[_0x40d5('0x19')](handleEntityNotFound(_0x1be60a,null))['then'](saveUpdates({'password':_0x45a93d[_0x40d5('0x54')][_0x40d5('0x76')],'passwordResetAt':_0x45a93d[_0x40d5('0x5a')]['id']==_0x45a93d[_0x40d5('0x4f')]['id']?moment():null},null))[_0x40d5('0x19')](respondWithResult(_0x1be60a,null))[_0x40d5('0x22')](handleError(_0x1be60a,null));};exports['addQueues']=function(_0xc2ced3,_0x361635,_0x590808){var _0x21480f;return db[_0x40d5('0x32')]['find']({'where':{'id':_0xc2ced3['params']['id']},'attributes':['id',_0x40d5('0x2f'),_0x40d5('0x57'),_0x40d5('0x7d'),_0x40d5('0x7e'),'interface']})[_0x40d5('0x19')](handleEntityNotFound(_0x361635,null))[_0x40d5('0x19')](function(_0x583fd3){if(_0x583fd3){_0x21480f=_0x583fd3;if(!utils[_0x40d5('0x7f')](_0xc2ced3[_0x40d5('0x54')][_0x40d5('0x80')])){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))](_0x40d5('0x81'));}return _0x583fd3['add'+_['capitalize'](_0xc2ced3[_0x40d5('0x54')][_0x40d5('0x80')][_0x40d5('0x82')]())+_0x40d5('0x83')](_0xc2ced3[_0x40d5('0x54')][_0x40d5('0x84')],{'penalty':_0xc2ced3['body']['penalty']||0x0});}})[_0x40d5('0x85')](function(_0x3fda81){for(var _0x2cd144=0x0;_0x2cd144<_0xc2ced3[_0x40d5('0x54')]['ids'][_0x40d5('0x51')];_0x2cd144+=0x1){var _0x863950={'UserId':_0xc2ced3[_0x40d5('0x4f')]['id']};_0x863950[_[_0x40d5('0x86')](_0xc2ced3['body']['channel'][_0x40d5('0x82')]())+_0x40d5('0x87')]=_0xc2ced3[_0x40d5('0x54')][_0x40d5('0x84')][_0x2cd144];socket['emit'](_0x40d5('0x5a')+_[_0x40d5('0x86')](_0xc2ced3[_0x40d5('0x54')][_0x40d5('0x80')][_0x40d5('0x82')]())+_0x40d5('0x88'),_0x863950);}return _0x3fda81;})['then'](function(){if(_0xc2ced3['body'][_0x40d5('0x80')]==='voice'){return db[_0x40d5('0x89')][_0x40d5('0x4c')]({'where':{'id':_0xc2ced3[_0x40d5('0x54')][_0x40d5('0x84')]||[]},'raw':!![],'attributes':['id',_0x40d5('0x2f')]});}})['then'](function(_0x27b8a7){var _0x9f446f=[];if(_0xc2ced3['body']['channel']===_0x40d5('0x8a')&&_0x21480f[_0x40d5('0x57')]===_0x40d5('0x8b')){for(var _0x782388=0x0;_0x782388<_0x27b8a7[_0x40d5('0x51')];_0x782388+=0x1){_0x9f446f['push']({'membername':_0x21480f[_0x40d5('0x2f')],'UserId':_0x21480f['id'],'queue_name':_0x27b8a7[_0x782388]['name'],'VoiceQueueId':_0x27b8a7[_0x782388]['id'],'interface':_[_0x40d5('0x5e')](_0x21480f[_0x40d5('0x8c')])?util[_0x40d5('0x60')](_0x40d5('0x8d'),_0x21480f['name']):_0x21480f['interface'],'paused':_0x21480f[_0x40d5('0x7e')]||![],'penalty':_0xc2ced3['body']['penalty']||0x0});}return BPromise[_0x40d5('0x8e')](_0x9f446f,function(_0x283daa){return db['UserVoiceQueueRt'][_0x40d5('0x8f')](_0x283daa);});}return _0x21480f;})[_0x40d5('0x19')](respondWithStatusCode(_0x361635,null))[_0x40d5('0x22')](handleError(_0x361635,null));};exports[_0x40d5('0x90')]=function(_0x13d92e,_0x266822,_0x82a8ca){var _0x25cd23;return db['User']['find']({'where':{'id':_0x13d92e[_0x40d5('0x4f')]['id']},'attributes':['id',_0x40d5('0x2f'),_0x40d5('0x57')]})[_0x40d5('0x19')](handleEntityNotFound(_0x266822,null))[_0x40d5('0x19')](function(_0x5383af){if(_0x5383af){_0x25cd23=_0x5383af;if(!_0x13d92e['query'][_0x40d5('0x80')]||!utils[_0x40d5('0x7f')](_0x13d92e[_0x40d5('0x37')]['channel'])){throw new db[(_0x40d5('0x77'))]['ValidationError'](_0x40d5('0x81'));}return _0x5383af[_0x40d5('0x91')+_[_0x40d5('0x86')](_0x13d92e[_0x40d5('0x37')]['channel'][_0x40d5('0x82')]())+_0x40d5('0x83')](_0x13d92e[_0x40d5('0x37')][_0x40d5('0x84')]);}})[_0x40d5('0x19')](function(_0x59a332){for(var _0x2be208=0x0;_0x2be208<_0x13d92e['query']['ids'][_0x40d5('0x51')];_0x2be208+=0x1){var _0x289ec0={'UserId':_0x13d92e['params']['id']};_0x289ec0[_[_0x40d5('0x86')](_0x13d92e[_0x40d5('0x37')]['channel'][_0x40d5('0x82')]())+_0x40d5('0x87')]=_0x13d92e[_0x40d5('0x37')][_0x40d5('0x84')][_0x2be208];socket['emit'](_0x40d5('0x5a')+_[_0x40d5('0x86')](_0x13d92e['query']['channel'][_0x40d5('0x82')]())+'Queue:remove',_0x289ec0);}return _0x59a332;})[_0x40d5('0x19')](function(){if(_0x13d92e['query'][_0x40d5('0x80')]==='voice'){return db['UserVoiceQueueRt'][_0x40d5('0x2d')]({'where':{'UserId':_0x13d92e['params']['id'],'VoiceQueueId':_0x13d92e[_0x40d5('0x37')]['ids']},'individualHooks':!![]})[_0x40d5('0x19')](function(){return _0x25cd23;});}return _0x25cd23;})[_0x40d5('0x19')](respondWithStatusCode(_0x266822,null))[_0x40d5('0x22')](handleError(_0x266822,null));};exports['addAvatar']=function(_0x1c23f3,_0x4bf221,_0x46f382){_0x1c23f3[_0x40d5('0x54')]['userpic']=_0x1c23f3[_0x40d5('0x92')]['filename'];return db['User'][_0x40d5('0x52')]({'where':{'id':_0x1c23f3['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x4bf221,null))[_0x40d5('0x19')](saveUpdates(_0x1c23f3[_0x40d5('0x54')],null))[_0x40d5('0x19')](respondWithResult(_0x4bf221,null))[_0x40d5('0x22')](handleError(_0x4bf221,null));};exports[_0x40d5('0x93')]=function(_0x5a87d1,_0x1840e9,_0x3217c8){var _0x127136=path[_0x40d5('0x94')](config['root'],'server/files/images/logos/default_profile.png');return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x5a87d1['params']['id']},'attributes':['id',_0x40d5('0x95')],'raw':!![]})[_0x40d5('0x19')](handleEntityNotFound(_0x1840e9,null))[_0x40d5('0x19')](function(_0x1c590){if(_0x1c590){if(_[_0x40d5('0x5e')](_0x1c590['userpic'])){return _0x1840e9[_0x40d5('0x96')](_0x127136);}else{if(!fs[_0x40d5('0x97')](path[_0x40d5('0x94')](config[_0x40d5('0x98')],_0x40d5('0x99'),_0x1c590['userpic']))){return _0x1840e9['download'](_0x127136);}return _0x1840e9[_0x40d5('0x96')](path['join'](config[_0x40d5('0x98')],'server/files/images/',_0x1c590[_0x40d5('0x95')]));}}})[_0x40d5('0x22')](handleError(_0x1840e9,null));};exports[_0x40d5('0x9a')]=function(_0x2dfbf1,_0x31de5b,_0x3e1920){var _0x77ed71={};var _0x514df9={};var _0x432e04;var _0x177596;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x2dfbf1[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x31de5b,null))[_0x40d5('0x19')](function(_0x57a375){if(_0x57a375){_0x432e04=_0x57a375;_0x514df9[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0x9c')]['rawAttributes']);_0x514df9[_0x40d5('0x37')]=_['keys'](_0x2dfbf1[_0x40d5('0x37')]);_0x514df9[_0x40d5('0x41')]=_['intersection'](_0x514df9['model'],_0x514df9[_0x40d5('0x37')]);_0x77ed71[_0x40d5('0x3b')]=_['intersection'](_0x514df9['model'],qs['fields'](_0x2dfbf1[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x77ed71[_0x40d5('0x3b')]=_0x77ed71[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x77ed71[_0x40d5('0x3b')]:_0x514df9[_0x40d5('0x39')];_0x77ed71[_0x40d5('0x3e')]=qs['sort'](_0x2dfbf1[_0x40d5('0x37')]['sort']);_0x77ed71[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_['pick'](_0x2dfbf1[_0x40d5('0x37')],_0x514df9[_0x40d5('0x41')]));if(_0x2dfbf1['query'][_0x40d5('0x48')]){_0x77ed71[_0x40d5('0x40')]=_['merge'](_0x77ed71[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x77ed71[_0x40d5('0x3b')],function(_0x58f3c8){var _0x2730b2={};_0x2730b2[_0x58f3c8]={'$like':'%'+_0x2dfbf1[_0x40d5('0x37')]['filter']+'%'};return _0x2730b2;})});}_0x77ed71=_['merge']({},_0x77ed71,_0x2dfbf1[_0x40d5('0x49')]);return _0x432e04[_0x40d5('0x9a')](_0x77ed71);}})[_0x40d5('0x19')](function(_0x100bf5){if(_0x100bf5){_0x177596=_0x100bf5['length'];if(_0x2dfbf1['query'][_0x40d5('0x3c')](_0x40d5('0x4a'))){_0x77ed71[_0x40d5('0x4b')]=[{'model':db[_0x40d5('0x9d')],'as':_0x40d5('0x9e'),'required':![]},{'model':db[_0x40d5('0x9f')],'as':_0x40d5('0xa0'),'attributes':['id',_0x40d5('0x2f'),_0x40d5('0xa1')],'where':_0x2dfbf1[_0x40d5('0x37')][_0x40d5('0xa2')]?{'id':_0x2dfbf1[_0x40d5('0x37')]['tag']}:undefined,'required':_0x2dfbf1['query'][_0x40d5('0xa2')]?!![]:![]}];}if(!_0x2dfbf1[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x77ed71['limit']=qs['limit'](_0x2dfbf1[_0x40d5('0x37')]['limit']);_0x77ed71[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x2dfbf1['query'][_0x40d5('0xa3')]);}return _0x432e04[_0x40d5('0x9a')](_0x77ed71);}})[_0x40d5('0x19')](function(_0x1f78c7){if(_0x1f78c7){return _0x1f78c7?{'count':_0x177596,'rows':_0x1f78c7}:null;}})[_0x40d5('0x19')](respondWithResult(_0x31de5b,null))[_0x40d5('0x22')](handleError(_0x31de5b,null));};exports[_0x40d5('0xa4')]=function(_0x40eb34,_0x2c2e11,_0x5260bf){var _0xb5e68e;var _0x35ffef;var _0x1cc717={};var _0x3fd540;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x40eb34[_0x40d5('0x4f')]['id']},'attributes':['id',_0x40d5('0x2f'),'role']})[_0x40d5('0x19')](handleEntityNotFound(_0x2c2e11,null))[_0x40d5('0x19')](function(_0x32ccd1){if(!utils[_0x40d5('0x7f')](_0x40eb34[_0x40d5('0x37')]['channel'])){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))]('Unknown\x20channel');}_0xb5e68e=_0x32ccd1;var _0x4b5420={};_0x4b5420[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_[_0x40d5('0x86')](_0x40eb34[_0x40d5('0x37')][_0x40d5('0x80')])+_0x40d5('0xa5')][_0x40d5('0x33')]);_0x4b5420['query']=_[_0x40d5('0x34')](_0x40eb34[_0x40d5('0x37')]);_0x4b5420['filters']=_[_0x40d5('0x38')](_0x4b5420[_0x40d5('0x39')],_0x4b5420[_0x40d5('0x37')]);_0x1cc717[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x4b5420[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x40eb34['query'][_0x40d5('0x3a')]));_0x1cc717['attributes']=_0x1cc717[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x1cc717['attributes']:_0x4b5420[_0x40d5('0x39')];_0x1cc717[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x40eb34['query'][_0x40d5('0x3f')]);_0x1cc717[_0x40d5('0x40')]=qs['filters'](_[_0x40d5('0x42')](_0x40eb34['query'],_0x4b5420[_0x40d5('0x41')]));if(_0x40eb34['query']['filter']){_0x1cc717[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x1cc717[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x1cc717[_0x40d5('0x3b')],function(_0x2125f6){var _0x4b5e6e={};_0x4b5e6e[_0x2125f6]={'$like':'%'+_0x40eb34[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x4b5e6e;})});}_0x1cc717=_[_0x40d5('0x45')]({},_0x1cc717,_0x40eb34[_0x40d5('0x49')]);switch(_0xb5e68e[_0x40d5('0x57')]){case'admin':return db[_[_0x40d5('0x86')](_0x40eb34[_0x40d5('0x37')][_0x40d5('0x80')])+'Queue'][_0x40d5('0x4c')](_0x1cc717);case _0x40d5('0x5a'):case _0x40d5('0x8b'):return _0xb5e68e[_0x40d5('0xa6')+_[_0x40d5('0x86')](_0x40eb34[_0x40d5('0x37')]['channel'])+_0x40d5('0x83')](_0x1cc717);default:throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))]('Unknown\x20role');}})[_0x40d5('0x19')](function(_0x831a0b){_0x3fd540=_0x831a0b[_0x40d5('0x51')];if(!_0x40eb34[_0x40d5('0x37')]['hasOwnProperty'](_0x40d5('0x3d'))){_0x1cc717['limit']=qs[_0x40d5('0x26')](_0x40eb34['query']['limit']);_0x1cc717[_0x40d5('0xa3')]=qs['offset'](_0x40eb34['query'][_0x40d5('0xa3')]);}switch(_0xb5e68e[_0x40d5('0x57')]){case _0x40d5('0x59'):return db[_[_0x40d5('0x86')](_0x40eb34[_0x40d5('0x37')][_0x40d5('0x80')])+'Queue']['findAll'](_0x1cc717);case _0x40d5('0x5a'):case'agent':return _0xb5e68e[_0x40d5('0xa6')+_[_0x40d5('0x86')](_0x40eb34[_0x40d5('0x37')][_0x40d5('0x80')])+'Queues'](_0x1cc717);}})['then'](function(_0x56cc8d){return{'count':_0x3fd540,'rows':_0x56cc8d};})[_0x40d5('0x19')](respondWithResult(_0x2c2e11,null))[_0x40d5('0x22')](handleError(_0x2c2e11,null));};exports['getVoiceQueuesRt']=function(_0x4528b2,_0x14fd91,_0x29fddf){var _0x2d2d66={};var _0x2eceb5={};var _0x2fa691;var _0x4ce87a;return db['User']['findOne']({'where':{'id':_0x4528b2['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x14fd91,null))[_0x40d5('0x19')](function(_0x40a57f){if(_0x40a57f){_0x2fa691=_0x40a57f;_0x2eceb5[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0xa7')][_0x40d5('0x33')]);_0x2eceb5[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x4528b2['query']);_0x2eceb5[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x2eceb5[_0x40d5('0x39')],_0x2eceb5[_0x40d5('0x37')]);_0x2d2d66[_0x40d5('0x3b')]=_['intersection'](_0x2eceb5[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x4528b2[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x2d2d66[_0x40d5('0x3b')]=_0x2d2d66[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x2d2d66['attributes']:_0x2eceb5[_0x40d5('0x39')];_0x2d2d66[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x4528b2[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x2d2d66[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x4528b2[_0x40d5('0x37')],_0x2eceb5[_0x40d5('0x41')]));if(_0x4528b2[_0x40d5('0x37')]['filter']){_0x2d2d66['where']=_[_0x40d5('0x45')](_0x2d2d66[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x2d2d66['attributes'],function(_0x3c08bb){var _0x3dde0e={};_0x3dde0e[_0x3c08bb]={'$like':'%'+_0x4528b2[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x3dde0e;})});}_0x2d2d66=_[_0x40d5('0x45')]({},_0x2d2d66,_0x4528b2[_0x40d5('0x49')]);return _0x2fa691[_0x40d5('0xa8')](_0x2d2d66);}})[_0x40d5('0x19')](function(_0x5f28e2){if(_0x5f28e2){_0x4ce87a=_0x5f28e2['length'];if(!_0x4528b2[_0x40d5('0x37')][_0x40d5('0x3c')]('nolimit')){_0x2d2d66[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x4528b2[_0x40d5('0x37')][_0x40d5('0x26')]);_0x2d2d66[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x4528b2['query'][_0x40d5('0xa3')]);}return _0x2fa691[_0x40d5('0xa8')](_0x2d2d66);}})['then'](function(_0x5a90f0){if(_0x5a90f0){return _0x5a90f0?{'count':_0x4ce87a,'rows':_0x5a90f0}:null;}})[_0x40d5('0x19')](respondWithResult(_0x14fd91,null))[_0x40d5('0x22')](handleError(_0x14fd91,null));};exports[_0x40d5('0xa9')]=function(_0x305a00,_0x5c3095,_0x41fcd0){var _0x255731={};var _0x55ca11={};var _0x578dcd;var _0x3c51da;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x305a00[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5c3095,null))[_0x40d5('0x19')](function(_0x52c670){if(_0x52c670){_0x578dcd=_0x52c670;_0x55ca11['model']=_[_0x40d5('0x34')](db[_0x40d5('0xaa')]['rawAttributes']);_0x55ca11[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x305a00[_0x40d5('0x37')]);_0x55ca11['filters']=_[_0x40d5('0x38')](_0x55ca11['model'],_0x55ca11[_0x40d5('0x37')]);_0x255731[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x55ca11[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x305a00[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x255731[_0x40d5('0x3b')]=_0x255731[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x255731[_0x40d5('0x3b')]:_0x55ca11[_0x40d5('0x39')];_0x255731[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x305a00[_0x40d5('0x37')]['sort']);_0x255731[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x305a00[_0x40d5('0x37')],_0x55ca11[_0x40d5('0x41')]));if(_0x305a00[_0x40d5('0x37')][_0x40d5('0x48')]){_0x255731[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x255731[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x255731[_0x40d5('0x3b')],function(_0x3376b1){var _0x26a540={};_0x26a540[_0x3376b1]={'$like':'%'+_0x305a00[_0x40d5('0x37')]['filter']+'%'};return _0x26a540;})});}_0x255731=_[_0x40d5('0x45')]({},_0x255731,_0x305a00['options']);return _0x578dcd['getGroups'](_0x255731);}})[_0x40d5('0x19')](function(_0x559ace){if(_0x559ace){_0x3c51da=_0x559ace[_0x40d5('0x51')];if(!_0x305a00[_0x40d5('0x37')]['hasOwnProperty'](_0x40d5('0x3d'))){_0x255731[_0x40d5('0x26')]=qs['limit'](_0x305a00[_0x40d5('0x37')][_0x40d5('0x26')]);_0x255731[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x305a00[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x578dcd[_0x40d5('0xa9')](_0x255731);}})[_0x40d5('0x19')](function(_0x10e850){if(_0x10e850){return _0x10e850?{'count':_0x3c51da,'rows':_0x10e850}:null;}})[_0x40d5('0x19')](respondWithResult(_0x5c3095,null))[_0x40d5('0x22')](handleError(_0x5c3095,null));};exports[_0x40d5('0xab')]=function(_0xc9032,_0x3e22f7,_0x4c80c6){var _0xd219e5={'raw':!![],'where':{}};var _0x4385cd={};var _0x1c04aa={'count':0x0,'rows':[]};return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0xc9032[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x3e22f7,null))[_0x40d5('0x19')](function(_0x10f1ba){if(_0x10f1ba){_0x4385cd[_0x40d5('0x39')]=_[_0x40d5('0x34')](db['VoiceRecording'][_0x40d5('0x33')]);_0x4385cd[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0xc9032[_0x40d5('0x37')]);_0x4385cd[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x4385cd[_0x40d5('0x39')],_0x4385cd[_0x40d5('0x37')]);_0xd219e5[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x4385cd[_0x40d5('0x39')],qs['fields'](_0xc9032['query']['fields']));_0xd219e5[_0x40d5('0x3b')]=_0xd219e5[_0x40d5('0x3b')][_0x40d5('0x51')]?_0xd219e5['attributes']:_0x4385cd[_0x40d5('0x39')];if(!_0xc9032[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0xd219e5['limit']=qs[_0x40d5('0x26')](_0xc9032[_0x40d5('0x37')]['limit']);_0xd219e5[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0xc9032[_0x40d5('0x37')][_0x40d5('0xa3')]);}_0xd219e5[_0x40d5('0x3e')]=qs['sort'](_0xc9032[_0x40d5('0x37')][_0x40d5('0x3f')]);_0xd219e5[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0xc9032['query'],_0x4385cd['filters']));_0xd219e5[_0x40d5('0x40')][_0x40d5('0xac')]=_0x10f1ba['id'];if(_0xc9032['query'][_0x40d5('0x48')]){_0xd219e5[_0x40d5('0x40')]=_['merge'](_0xd219e5[_0x40d5('0x40')],{'$or':_['map'](_0xd219e5[_0x40d5('0x3b')],function(_0x1031e1){var _0x31535b={};_0x31535b[_0x1031e1]={'$like':'%'+_0xc9032[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x31535b;})});}_0xd219e5=_[_0x40d5('0x45')]({},_0xd219e5,_0xc9032[_0x40d5('0x49')]);return db[_0x40d5('0xad')][_0x40d5('0x25')]({'where':_0xd219e5[_0x40d5('0x40')]})[_0x40d5('0x19')](function(_0x2fe97f){_0x1c04aa[_0x40d5('0x25')]=_0x2fe97f;if(_0xc9032[_0x40d5('0x37')][_0x40d5('0x4a')]){_0xd219e5[_0x40d5('0x4b')]=[{'all':!![]}];}return db[_0x40d5('0xad')][_0x40d5('0x4c')](_0xd219e5);})[_0x40d5('0x19')](function(_0x12d447){_0x1c04aa['rows']=_0x12d447;return _0x1c04aa;});}})[_0x40d5('0x19')](respondWithFilteredResult(_0x3e22f7,_0xd219e5))[_0x40d5('0x22')](handleError(_0x3e22f7,null));};exports[_0x40d5('0xae')]=function(_0x3935d7,_0x30b264,_0x5c9ab2){var _0x42b69d={};var _0x2158a6={};var _0xf2ed86;var _0x4a3cc6;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x3935d7[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x30b264,null))[_0x40d5('0x19')](function(_0x4a77df){if(_0x4a77df){_0xf2ed86=_0x4a77df;_0x2158a6[_0x40d5('0x39')]=_[_0x40d5('0x34')](db['ChatInteraction'][_0x40d5('0x33')]);_0x2158a6[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x3935d7[_0x40d5('0x37')]);_0x2158a6[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x2158a6[_0x40d5('0x39')],_0x2158a6['query']);_0x42b69d['attributes']=_[_0x40d5('0x38')](_0x2158a6['model'],qs[_0x40d5('0x3a')](_0x3935d7[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x42b69d[_0x40d5('0x3b')]=_0x42b69d[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x42b69d[_0x40d5('0x3b')]:_0x2158a6[_0x40d5('0x39')];_0x42b69d[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x3935d7['query'][_0x40d5('0x3f')]);_0x42b69d[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_['pick'](_0x3935d7[_0x40d5('0x37')],_0x2158a6[_0x40d5('0x41')]));if(_0x3935d7[_0x40d5('0x37')][_0x40d5('0x48')]){_0x42b69d[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x42b69d[_0x40d5('0x40')],{'$or':_['map'](_0x42b69d[_0x40d5('0x3b')],function(_0x2ca31b){var _0x2c47fe={};_0x2c47fe[_0x2ca31b]={'$like':'%'+_0x3935d7[_0x40d5('0x37')]['filter']+'%'};return _0x2c47fe;})});}_0x42b69d=_[_0x40d5('0x45')]({},_0x42b69d,_0x3935d7['options']);return _0xf2ed86['getChatInteractions'](_0x42b69d);}})[_0x40d5('0x19')](function(_0x2e8c6c){if(_0x2e8c6c){_0x4a3cc6=_0x2e8c6c[_0x40d5('0x51')];if(!_0x3935d7[_0x40d5('0x37')]['hasOwnProperty'](_0x40d5('0x3d'))){_0x42b69d[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x3935d7[_0x40d5('0x37')][_0x40d5('0x26')]);_0x42b69d['offset']=qs['offset'](_0x3935d7[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0xf2ed86[_0x40d5('0xae')](_0x42b69d);}})[_0x40d5('0x19')](function(_0x15fd78){if(_0x15fd78){return _0x15fd78?{'count':_0x4a3cc6,'rows':_0x15fd78}:null;}})[_0x40d5('0x19')](respondWithResult(_0x30b264,null))[_0x40d5('0x22')](handleError(_0x30b264,null));};exports[_0x40d5('0xaf')]=function(_0x3eaec5,_0x36b374,_0x3e2642){var _0x56b8f2={};var _0x416618={};var _0x365ac7;var _0x5bbcfc;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x3eaec5[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x36b374,null))[_0x40d5('0x19')](function(_0x11a66a){if(_0x11a66a){_0x365ac7=_0x11a66a;_0x416618[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0xb0')]['rawAttributes']);_0x416618['query']=_[_0x40d5('0x34')](_0x3eaec5['query']);_0x416618['filters']=_[_0x40d5('0x38')](_0x416618['model'],_0x416618[_0x40d5('0x37')]);_0x56b8f2['attributes']=_[_0x40d5('0x38')](_0x416618[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x3eaec5[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x56b8f2[_0x40d5('0x3b')]=_0x56b8f2[_0x40d5('0x3b')]['length']?_0x56b8f2[_0x40d5('0x3b')]:_0x416618['model'];_0x56b8f2[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x3eaec5[_0x40d5('0x37')]['sort']);_0x56b8f2[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x3eaec5['query'],_0x416618['filters']));if(_0x3eaec5[_0x40d5('0x37')][_0x40d5('0x48')]){_0x56b8f2[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x56b8f2[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x56b8f2[_0x40d5('0x3b')],function(_0x3a11df){var _0x1eefc5={};_0x1eefc5[_0x3a11df]={'$like':'%'+_0x3eaec5[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x1eefc5;})});}_0x56b8f2=_['merge']({},_0x56b8f2,_0x3eaec5[_0x40d5('0x49')]);return _0x365ac7[_0x40d5('0xaf')](_0x56b8f2);}})[_0x40d5('0x19')](function(_0x4961c8){if(_0x4961c8){_0x5bbcfc=_0x4961c8[_0x40d5('0x51')];if(!_0x3eaec5['query'][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x56b8f2[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x3eaec5[_0x40d5('0x37')]['limit']);_0x56b8f2['offset']=qs[_0x40d5('0xa3')](_0x3eaec5[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x365ac7[_0x40d5('0xaf')](_0x56b8f2);}})['then'](function(_0x2b5a49){if(_0x2b5a49){return _0x2b5a49?{'count':_0x5bbcfc,'rows':_0x2b5a49}:null;}})[_0x40d5('0x19')](respondWithResult(_0x36b374,null))['catch'](handleError(_0x36b374,null));};exports[_0x40d5('0xb1')]=function(_0x1094f6,_0x47a561,_0xf7b6f){var _0x59fdf8={'raw':!![],'where':{}};var _0x26280c={};var _0x139ff6={'count':0x0,'rows':[]};return db[_0x40d5('0x32')]['findOne']({'where':{'id':_0x1094f6['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x47a561,null))['then'](function(_0x15405c){if(_0x15405c){_0x26280c[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0xb2')][_0x40d5('0x33')]);_0x26280c[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x1094f6[_0x40d5('0x37')]);_0x26280c[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x26280c[_0x40d5('0x39')],_0x26280c[_0x40d5('0x37')]);_0x59fdf8[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x26280c[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x1094f6['query'][_0x40d5('0x3a')]));_0x59fdf8[_0x40d5('0x3b')]=_0x59fdf8[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x59fdf8[_0x40d5('0x3b')]:_0x26280c[_0x40d5('0x39')];if(!_0x1094f6[_0x40d5('0x37')][_0x40d5('0x3c')]('nolimit')){_0x59fdf8['limit']=qs[_0x40d5('0x26')](_0x1094f6['query'][_0x40d5('0x26')]);_0x59fdf8[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x1094f6[_0x40d5('0x37')][_0x40d5('0xa3')]);}_0x59fdf8[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x1094f6['query'][_0x40d5('0x3f')]);_0x59fdf8[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_['pick'](_0x1094f6[_0x40d5('0x37')],_0x26280c['filters']));_0x59fdf8[_0x40d5('0x40')]['UserId']=_0x15405c['id'];if(_0x1094f6[_0x40d5('0x37')][_0x40d5('0x48')]){_0x59fdf8[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x59fdf8['where'],{'$or':_[_0x40d5('0x46')](_0x59fdf8[_0x40d5('0x3b')],function(_0x50fab3){var _0x338f7e={};_0x338f7e[_0x50fab3]={'$like':'%'+_0x1094f6[_0x40d5('0x37')]['filter']+'%'};return _0x338f7e;})});}_0x59fdf8=_['merge']({},_0x59fdf8,_0x1094f6[_0x40d5('0x49')]);return db[_0x40d5('0xb2')]['count']({'where':_0x59fdf8[_0x40d5('0x40')]})[_0x40d5('0x19')](function(_0x419089){_0x139ff6[_0x40d5('0x25')]=_0x419089;if(_0x1094f6[_0x40d5('0x37')][_0x40d5('0x4a')]){_0x59fdf8['include']=[{'all':!![]}];}return db[_0x40d5('0xb2')]['findAll'](_0x59fdf8);})[_0x40d5('0x19')](function(_0x3ecdfe){_0x139ff6[_0x40d5('0x4d')]=_0x3ecdfe;return _0x139ff6;});}})[_0x40d5('0x19')](respondWithFilteredResult(_0x47a561,_0x59fdf8))[_0x40d5('0x22')](handleError(_0x47a561,null));};exports['getSmsInteractions']=function(_0x1b2e5f,_0x26692e,_0x4b673f){var _0x504198={};var _0x59cd28={};var _0x52c623;var _0x1028ea;return db[_0x40d5('0x32')]['findOne']({'where':{'id':_0x1b2e5f[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x26692e,null))[_0x40d5('0x19')](function(_0x4b68ed){if(_0x4b68ed){_0x52c623=_0x4b68ed;_0x59cd28[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0xb3')][_0x40d5('0x33')]);_0x59cd28['query']=_[_0x40d5('0x34')](_0x1b2e5f['query']);_0x59cd28[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x59cd28[_0x40d5('0x39')],_0x59cd28[_0x40d5('0x37')]);_0x504198[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x59cd28['model'],qs[_0x40d5('0x3a')](_0x1b2e5f[_0x40d5('0x37')]['fields']));_0x504198['attributes']=_0x504198[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x504198['attributes']:_0x59cd28['model'];_0x504198[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x1b2e5f['query']['sort']);_0x504198['where']=qs['filters'](_[_0x40d5('0x42')](_0x1b2e5f[_0x40d5('0x37')],_0x59cd28[_0x40d5('0x41')]));if(_0x1b2e5f[_0x40d5('0x37')][_0x40d5('0x48')]){_0x504198[_0x40d5('0x40')]=_['merge'](_0x504198['where'],{'$or':_[_0x40d5('0x46')](_0x504198['attributes'],function(_0x349601){var _0x8ecd26={};_0x8ecd26[_0x349601]={'$like':'%'+_0x1b2e5f[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x8ecd26;})});}_0x504198=_[_0x40d5('0x45')]({},_0x504198,_0x1b2e5f[_0x40d5('0x49')]);return _0x52c623[_0x40d5('0xb4')](_0x504198);}})[_0x40d5('0x19')](function(_0x4dc6c2){if(_0x4dc6c2){_0x1028ea=_0x4dc6c2[_0x40d5('0x51')];if(!_0x1b2e5f[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x504198['limit']=qs['limit'](_0x1b2e5f[_0x40d5('0x37')][_0x40d5('0x26')]);_0x504198['offset']=qs[_0x40d5('0xa3')](_0x1b2e5f['query'][_0x40d5('0xa3')]);}return _0x52c623[_0x40d5('0xb4')](_0x504198);}})[_0x40d5('0x19')](function(_0x29834d){if(_0x29834d){return _0x29834d?{'count':_0x1028ea,'rows':_0x29834d}:null;}})['then'](respondWithResult(_0x26692e,null))[_0x40d5('0x22')](handleError(_0x26692e,null));};exports[_0x40d5('0xb5')]=function(_0x28ff4b,_0x3696da,_0x3ec1a9){var _0x1f04f2={};var _0x32104d={};var _0x370d0d;var _0x2610f0;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x28ff4b[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x3696da,null))[_0x40d5('0x19')](function(_0x5e7ffb){if(_0x5e7ffb){_0x370d0d=_0x5e7ffb;_0x32104d[_0x40d5('0x39')]=_['keys'](db[_0x40d5('0xb6')][_0x40d5('0x33')]);_0x32104d[_0x40d5('0x37')]=_['keys'](_0x28ff4b[_0x40d5('0x37')]);_0x32104d[_0x40d5('0x41')]=_['intersection'](_0x32104d[_0x40d5('0x39')],_0x32104d[_0x40d5('0x37')]);_0x1f04f2[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x32104d['model'],qs['fields'](_0x28ff4b[_0x40d5('0x37')]['fields']));_0x1f04f2[_0x40d5('0x3b')]=_0x1f04f2['attributes'][_0x40d5('0x51')]?_0x1f04f2[_0x40d5('0x3b')]:_0x32104d[_0x40d5('0x39')];_0x1f04f2[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x28ff4b[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x1f04f2[_0x40d5('0x40')]=qs['filters'](_[_0x40d5('0x42')](_0x28ff4b[_0x40d5('0x37')],_0x32104d[_0x40d5('0x41')]));if(_0x28ff4b['query'][_0x40d5('0x48')]){_0x1f04f2[_0x40d5('0x40')]=_['merge'](_0x1f04f2[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x1f04f2[_0x40d5('0x3b')],function(_0x443e70){var _0x431156={};_0x431156[_0x443e70]={'$like':'%'+_0x28ff4b[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x431156;})});}_0x1f04f2=_[_0x40d5('0x45')]({},_0x1f04f2,_0x28ff4b[_0x40d5('0x49')]);return _0x370d0d[_0x40d5('0xb5')](_0x1f04f2);}})[_0x40d5('0x19')](function(_0x2750ee){if(_0x2750ee){_0x2610f0=_0x2750ee['length'];if(!_0x28ff4b[_0x40d5('0x37')][_0x40d5('0x3c')]('nolimit')){_0x1f04f2[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x28ff4b['query'][_0x40d5('0x26')]);_0x1f04f2[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x28ff4b[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x370d0d[_0x40d5('0xb5')](_0x1f04f2);}})[_0x40d5('0x19')](function(_0x49723e){if(_0x49723e){return _0x49723e?{'count':_0x2610f0,'rows':_0x49723e}:null;}})['then'](respondWithResult(_0x3696da,null))[_0x40d5('0x22')](handleError(_0x3696da,null));};exports[_0x40d5('0xb7')]=function(_0x27fff2,_0x4f192e,_0x304104){var _0x1d7aad;var _0x514e51;var _0x1a98d9;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x27fff2[_0x40d5('0x4f')]['id'],'role':_0x40d5('0x8b')},'attributes':['id','name',_0x40d5('0xb8'),_0x40d5('0xb9'),_0x40d5('0x57'),'internal','loginInPause']})[_0x40d5('0x19')](handleEntityNotFound(_0x4f192e,null))[_0x40d5('0x19')](function(_0x283b2a){if(_0x283b2a){_0x1d7aad=_0x283b2a;if(_0x27fff2['body']['interface']){_0x1a98d9=util[_0x40d5('0x60')](_0x40d5('0xba'),_0x1d7aad[_0x27fff2[_0x40d5('0x54')][_0x40d5('0x8c')]]);}else if(_0x27fff2[_0x40d5('0x54')][_0x40d5('0xbb')]){_0x1a98d9=util[_0x40d5('0x60')](_0x40d5('0x8d'),_0x27fff2['body'][_0x40d5('0xbb')]);}else{_0x1a98d9=util[_0x40d5('0x60')](_0x40d5('0x8d'),_0x1d7aad[_0x40d5('0x2f')]);}socket['to'](util[_0x40d5('0x60')](_0x40d5('0xbc'),_0x1d7aad[_0x40d5('0x2f')]))[_0x40d5('0xbd')]('user:forcelogout',{'ip':_0x27fff2[_0x40d5('0xbe')][_0x40d5('0xbf')]||_0x27fff2[_0x40d5('0xc0')]['remoteAddress']||_0x27fff2[_0x40d5('0xc1')][_0x40d5('0xc2')]||_0x27fff2[_0x40d5('0xc0')][_0x40d5('0xc1')]['remoteAddress']});return db['UserVoiceQueueRt'][_0x40d5('0x2d')]({'where':{'membername':_0x1d7aad[_0x40d5('0x2f')]},'individualHooks':!![]});}})[_0x40d5('0x19')](function(_0x535b08){if(_0x1d7aad){return _0x1d7aad['getVoiceQueues']({'raw':!![]});}})[_0x40d5('0x19')](function(_0x37f6d5){var _0x145462=[];if(_0x37f6d5){_0x514e51=_0x37f6d5;if(_0x514e51[_0x40d5('0x51')]){for(var _0x246dd4=0x0;_0x246dd4<_0x514e51[_0x40d5('0x51')];_0x246dd4++){_0x145462['push']({'membername':_0x1d7aad['name'],'UserId':_0x1d7aad['id'],'queue_name':_0x514e51[_0x246dd4]['name'],'VoiceQueueId':_0x514e51[_0x246dd4]['id'],'interface':_0x1a98d9,'paused':_0x1d7aad[_0x40d5('0x7d')]||![],'penalty':_0x514e51[_0x246dd4][_0x40d5('0xc3')]||0x0});}return BPromise[_0x40d5('0x8e')](_0x145462,function(_0x2ce27e){return db[_0x40d5('0xa7')]['upsert'](_0x2ce27e);});}}})[_0x40d5('0x19')](function(){return db[_0x40d5('0xc4')][_0x40d5('0x4c')]({'where':{'membername':_0x1d7aad[_0x40d5('0x2f')],'exitAt':null}});})[_0x40d5('0x19')](function(_0x535455){var _0x5c7b8a=[];_0x535455['forEach'](function(_0x129af0){_0x5c7b8a[_0x40d5('0xc5')](_0x129af0[_0x40d5('0x2c')]({'exitAt':moment()[_0x40d5('0x60')](_0x40d5('0xc6'))}));});return BPromise[_0x40d5('0xc7')](_0x5c7b8a);})[_0x40d5('0x19')](function(){var _0x223abc=[];var _0x293baf=[];var _0x329e4a=utils[_0x40d5('0xc8')]();var _0x5d67e5={'membername':_0x1d7aad[_0x40d5('0x2f')],'interface':_0x1a98d9,'enterAt':moment()[_0x40d5('0x60')](_0x40d5('0xc6')),'role':_0x1d7aad['role'],'internal':_0x1d7aad[_0x40d5('0x62')]};_0x329e4a['forEach'](function(_0x236c1f){_0x223abc[_0x40d5('0xc5')](_[_0x40d5('0x45')]({'channel':_0x236c1f,'type':_0x40d5('0xc9'),'data1':_0x27fff2[_0x40d5('0x54')][_0x40d5('0xca')],'data2':_0x1a98d9},_0x5d67e5));if(_0x1d7aad[_0x40d5('0x7d')]){_0x293baf['push'](_[_0x40d5('0x45')]({'channel':_0x236c1f,'type':'PAUSE','data1':_0x40d5('0xcb')},_0x5d67e5));}});return db[_0x40d5('0xc4')]['bulkCreate'](_0x223abc[_0x40d5('0xcc')](_0x293baf),{'individualHooks':!![]});})[_0x40d5('0x19')](function(){return _0x1d7aad[_0x40d5('0x2c')]({'online':!![],'lastLoginAt':moment()[_0x40d5('0x60')](_0x40d5('0xc6')),'voicePause':_0x1d7aad[_0x40d5('0x7d')]||![],'mailPause':_0x1d7aad['loginInPause']||![],'chatPause':_0x1d7aad[_0x40d5('0x7d')]||![],'faxPause':_0x1d7aad[_0x40d5('0x7d')]||![],'smsPause':_0x1d7aad['loginInPause']||![],'openchannelPause':_0x1d7aad[_0x40d5('0x7d')]||![],'pauseType':_0x1d7aad['loginInPause']?_0x40d5('0xcb'):null,'interface':_0x1a98d9,'lastPauseAt':moment()[_0x40d5('0x60')]('YYYY-MM-DD\x20HH:mm:ss')});})['then'](respondWithResult(_0x4f192e,null))[_0x40d5('0x22')](handleError(_0x4f192e,null));};exports[_0x40d5('0xcd')]=function(_0xa5e38e,_0x55d083,_0x2bc8c9){var _0x244029;return db[_0x40d5('0x32')]['find']({'where':{'id':_0xa5e38e[_0x40d5('0x4f')]['id'],'role':_0x40d5('0x8b')},'attributes':['id',_0x40d5('0x2f'),_0x40d5('0x57')]})['then'](handleEntityNotFound(_0x55d083,null))[_0x40d5('0x19')](function(_0x3e274a){if(_0x3e274a){_0x244029=_0x3e274a;return db[_0x40d5('0xa7')][_0x40d5('0x2d')]({'where':{'membername':_0x244029[_0x40d5('0x2f')]},'individualHooks':!![]});}})[_0x40d5('0x19')](function(){return db['MemberReport']['findAll']({'where':{'membername':_0x244029['name'],'exitAt':null}});})[_0x40d5('0x19')](function(_0x130c69){var _0x22b4c2=[];_0x130c69[_0x40d5('0xce')](function(_0x5d93cf){_0x22b4c2[_0x40d5('0xc5')](_0x5d93cf[_0x40d5('0x2c')]({'exitAt':moment()[_0x40d5('0x60')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x40d5('0xc7')](_0x22b4c2);})['then'](function(){return _0x244029['update']({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'interface':null});})[_0x40d5('0x19')](respondWithResult(_0x55d083,null))[_0x40d5('0x22')](handleError(_0x55d083,null));};exports['pause']=function(_0x3acc10,_0x59a169,_0x220b1e){var _0x41bc77;return db[_0x40d5('0xa7')][_0x40d5('0x2c')]({'paused':0x1},{'where':{'UserId':_0x3acc10[_0x40d5('0x4f')]['id']},'individualHooks':!![]})[_0x40d5('0x19')](function(){return db['User'][_0x40d5('0x52')]({'where':{'id':_0x3acc10['params']['id'],'role':_0x40d5('0x8b')},'attributes':['id',_0x40d5('0x2f'),_0x40d5('0x57'),_0x40d5('0x62'),_0x40d5('0x8c')]});})[_0x40d5('0x19')](handleEntityNotFound(_0x59a169,null))['then'](function(_0x518e99){if(_0x518e99){_0x41bc77=_0x518e99;return respondWithRpcPromise('QueuePause',_0x40d5('0xcf'),{'id':_0x41bc77['id'],'name':_0x41bc77[_0x40d5('0x2f')],'pause':!![]});}})['then'](function(){if(_0x41bc77){return db[_0x40d5('0xc4')][_0x40d5('0x4c')]({'where':{'membername':_0x41bc77[_0x40d5('0x2f')],'type':'PAUSE','exitAt':null}});}})['then'](function(_0x30ab89){if(_0x30ab89[_0x40d5('0x51')]){var _0x523cbd=moment()[_0x40d5('0x60')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x2588a5=0x0,_0xfa8c80=_0x30ab89[_0x40d5('0x51')];_0x2588a5<_0xfa8c80;_0x2588a5++){_0x30ab89[_0x2588a5][_0x40d5('0xd0')]({'exitAt':_0x523cbd});}}})[_0x40d5('0x19')](function(){var _0x3b1ee3=[];var _0x5c987a=utils['getChannels']();_0x5c987a[_0x40d5('0xce')](function(_0x1efa43){_0x3b1ee3[_0x40d5('0xc5')]({'channel':_0x1efa43,'membername':_0x41bc77['name'],'interface':_[_0x40d5('0x5e')](_0x41bc77[_0x40d5('0x8c')])?util[_0x40d5('0x60')](_0x40d5('0x8d'),_0x41bc77[_0x40d5('0x2f')]):_0x41bc77[_0x40d5('0x8c')],'type':'PAUSE','enterAt':moment()[_0x40d5('0x60')](_0x40d5('0xc6')),'data1':_0x3acc10['body'][_0x40d5('0xd1')]||'DEFAULT\x20PAUSE','role':_0x41bc77[_0x40d5('0x57')],'internal':_0x41bc77[_0x40d5('0x62')]});});return db[_0x40d5('0xc4')][_0x40d5('0x53')](_0x3b1ee3,{'individualHooks':!![]});})['then'](function(){return _0x41bc77[_0x40d5('0x2c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x3acc10[_0x40d5('0x54')]['type']||_0x40d5('0xd2'),'lastPauseAt':moment()['format'](_0x40d5('0xc6'))});})[_0x40d5('0x19')](respondWithResult(_0x59a169,null))['catch'](handleError(_0x59a169,null));};exports[_0x40d5('0xd3')]=function(_0x271036,_0x25c435,_0x42d839){var _0x5f02f9;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x271036[_0x40d5('0x4f')]['id']},'attributes':['id',_0x40d5('0x2f'),_0x40d5('0x57'),_0x40d5('0x7e'),_0x40d5('0xd4'),'chatPause',_0x40d5('0xd5'),_0x40d5('0xd6'),_0x40d5('0xd7'),_0x40d5('0xd8'),_0x40d5('0xd9')]})[_0x40d5('0x19')](handleEntityNotFound(_0x25c435,null))[_0x40d5('0x19')](function(_0x38edbf){if(_0x38edbf){_0x5f02f9=_0x38edbf;if(_0x271036[_0x40d5('0x54')][_0x40d5('0x80')]&&!utils[_0x40d5('0x7f')](_0x271036['body'][_0x40d5('0x80')])){throw new db[(_0x40d5('0x77'))][(_0x40d5('0x78'))](_0x40d5('0x81'));}switch(_0x271036[_0x40d5('0x54')][_0x40d5('0x80')]){case _0x40d5('0x8a'):return respondWithRpcPromise(_0x40d5('0xda'),_0x40d5('0xd3'),{'id':_0x5f02f9['id'],'name':_0x5f02f9[_0x40d5('0x2f')],'pause':![]})[_0x40d5('0x19')](function(){return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x5f02f9['id']},'individualHooks':!![]});})['then'](function(){return db[_0x40d5('0xc4')][_0x40d5('0x52')]({'where':{'channel':_0x271036[_0x40d5('0x54')]['channel'],'membername':_0x5f02f9[_0x40d5('0x2f')],'type':_0x40d5('0xdb'),'exitAt':null}});})[_0x40d5('0x19')](function(_0x4307f7){if(_0x4307f7){return _0x4307f7[_0x40d5('0x2c')]({'exitAt':moment()[_0x40d5('0x60')](_0x40d5('0xc6')),'data2':_0x40d5('0xdc')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x5f02f9[_0x40d5('0x2c')]({'voicePause':![]});});case _0x40d5('0xdd'):case _0x40d5('0xde'):case'fax':case _0x40d5('0xdf'):case'openchannel':return db[_0x40d5('0xc4')][_0x40d5('0x52')]({'where':{'channel':_0x271036[_0x40d5('0x54')][_0x40d5('0x80')],'membername':_0x5f02f9[_0x40d5('0x2f')],'type':_0x40d5('0xdb'),'exitAt':null}})[_0x40d5('0x19')](function(_0x13f660){if(_0x13f660){return _0x13f660[_0x40d5('0x2c')]({'exitAt':moment()[_0x40d5('0x60')](_0x40d5('0xc6')),'data2':'manual'},{'individualHooks':!![]});}return null;})['then'](function(){var _0x30e3e4={};_[_0x40d5('0xe0')](_0x30e3e4,util['format'](_0x40d5('0xe1'),_0x271036[_0x40d5('0x54')]['channel'],'Pause'),![]);return _0x5f02f9['update'](_0x30e3e4);});default:return respondWithRpcPromise(_0x40d5('0xda'),_0x40d5('0xd3'),{'id':_0x5f02f9['id'],'name':_0x5f02f9[_0x40d5('0x2f')],'pause':![]})[_0x40d5('0x19')](function(){return db[_0x40d5('0xa7')][_0x40d5('0x2c')]({'paused':0x0},{'where':{'UserId':_0x5f02f9['id']}});})[_0x40d5('0x19')](function(){return db['MemberReport'][_0x40d5('0x4c')]({'where':{'membername':_0x5f02f9['name'],'type':_0x40d5('0xdb'),'exitAt':null}});})[_0x40d5('0x19')](function(_0x2f5738){var _0x261be1=[];_0x2f5738[_0x40d5('0xce')](function(_0x3b137b){_0x261be1[_0x40d5('0xc5')](_0x3b137b['update']({'exitAt':moment()[_0x40d5('0x60')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x40d5('0xdc')}));});return BPromise[_0x40d5('0xc7')](_0x261be1);})['then'](function(){return _0x5f02f9['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0x40d5('0x19')](respondWithResult(_0x25c435,null))[_0x40d5('0x22')](handleError(_0x25c435,null));};exports[_0x40d5('0xe2')]=function(_0x340d38,_0x379ea8,_0x31ef87){var _0x1d3b61={};var _0x597ebc={};var _0x2b3b4f;var _0xefd31e;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x340d38['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x379ea8,null))[_0x40d5('0x19')](function(_0x413e3){if(_0x413e3){_0x2b3b4f=_0x413e3;_0x597ebc[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0xe3')]['rawAttributes']);_0x597ebc['query']=_[_0x40d5('0x34')](_0x340d38[_0x40d5('0x37')]);_0x597ebc['filters']=_['intersection'](_0x597ebc['model'],_0x597ebc[_0x40d5('0x37')]);_0x1d3b61[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x597ebc[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x340d38['query'][_0x40d5('0x3a')]));_0x1d3b61[_0x40d5('0x3b')]=_0x1d3b61['attributes'][_0x40d5('0x51')]?_0x1d3b61[_0x40d5('0x3b')]:_0x597ebc[_0x40d5('0x39')];_0x1d3b61[_0x40d5('0x3e')]=qs['sort'](_0x340d38[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x1d3b61[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x340d38[_0x40d5('0x37')],_0x597ebc['filters']));if(_0x340d38['query']['filter']){_0x1d3b61[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x1d3b61[_0x40d5('0x40')],{'$or':_['map'](_0x1d3b61['attributes'],function(_0xe1af73){var _0x39f3d7={};_0x39f3d7[_0xe1af73]={'$like':'%'+_0x340d38[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x39f3d7;})});}_0x1d3b61=_[_0x40d5('0x45')]({},_0x1d3b61,_0x340d38[_0x40d5('0x49')]);return _0x2b3b4f[_0x40d5('0xe2')](_0x1d3b61);}})[_0x40d5('0x19')](function(_0x4afb58){if(_0x4afb58){_0xefd31e=_0x4afb58['length'];if(!_0x340d38[_0x40d5('0x37')]['hasOwnProperty'](_0x40d5('0x3d'))){_0x1d3b61[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x340d38[_0x40d5('0x37')][_0x40d5('0x26')]);_0x1d3b61[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x340d38[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x2b3b4f[_0x40d5('0xe2')](_0x1d3b61);}})['then'](function(_0x50fb8c){if(_0x50fb8c){return _0x50fb8c?{'count':_0xefd31e,'rows':_0x50fb8c}:null;}})[_0x40d5('0x19')](respondWithResult(_0x379ea8,null))[_0x40d5('0x22')](handleError(_0x379ea8,null));};exports[_0x40d5('0xe4')]=function(_0x2bcf1f,_0x27b827,_0x1efc0e){return db['User'][_0x40d5('0x52')]({'where':{'id':_0x2bcf1f['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x27b827,null))[_0x40d5('0x19')](function(_0x1a47d6){if(_0x1a47d6){return _0x1a47d6[_0x40d5('0xe4')](_0x2bcf1f[_0x40d5('0x54')]['ids'],_[_0x40d5('0xe5')](_0x2bcf1f['body'],[_0x40d5('0x84'),'id'])||{});}})[_0x40d5('0x19')](respondWithResult(_0x27b827,null))['catch'](handleError(_0x27b827,null));};exports[_0x40d5('0xe6')]=function(_0x348369,_0x5bac45,_0x516bc5){var _0x14c0dc;return db[_0x40d5('0x32')]['find']({'where':{'id':_0x348369[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x5bac45,null))[_0x40d5('0x19')](function(_0x23e373){if(_0x23e373){return _0x23e373[_0x40d5('0xe6')](_0x348369[_0x40d5('0x37')][_0x40d5('0x84')]);}})[_0x40d5('0x19')](respondWithStatusCode(_0x5bac45,null))[_0x40d5('0x22')](handleError(_0x5bac45,null));};exports[_0x40d5('0xe7')]=function(_0x2be7f3,_0x2b1ae0,_0xf32e59){var _0x121f20={};var _0x549c14={};var _0x5b32f3;var _0x8f3e15;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x2be7f3[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x2b1ae0,null))['then'](function(_0x22a28b){if(_0x22a28b){_0x5b32f3=_0x22a28b;_0x549c14['model']=_[_0x40d5('0x34')](db[_0x40d5('0x9d')]['rawAttributes']);_0x549c14[_0x40d5('0x37')]=_['keys'](_0x2be7f3[_0x40d5('0x37')]);_0x549c14[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x549c14[_0x40d5('0x39')],_0x549c14[_0x40d5('0x37')]);_0x121f20[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x549c14[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x2be7f3[_0x40d5('0x37')]['fields']));_0x121f20['attributes']=_0x121f20[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x121f20[_0x40d5('0x3b')]:_0x549c14[_0x40d5('0x39')];_0x121f20['order']=qs[_0x40d5('0x3f')](_0x2be7f3[_0x40d5('0x37')]['sort']);_0x121f20[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x2be7f3['query'],_0x549c14[_0x40d5('0x41')]));if(_0x2be7f3[_0x40d5('0x37')]['filter']){_0x121f20['where']=_[_0x40d5('0x45')](_0x121f20[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x121f20[_0x40d5('0x3b')],function(_0x4d1766){var _0x9ceb76={};_0x9ceb76[_0x4d1766]={'$like':'%'+_0x2be7f3['query'][_0x40d5('0x48')]+'%'};return _0x9ceb76;})});}_0x121f20=_[_0x40d5('0x45')]({},_0x121f20,_0x2be7f3['options']);return _0x5b32f3[_0x40d5('0xe7')](_0x121f20);}})[_0x40d5('0x19')](function(_0x2407a4){if(_0x2407a4){_0x8f3e15=_0x2407a4[_0x40d5('0x51')];if(!_0x2be7f3[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x121f20[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x2be7f3[_0x40d5('0x37')]['limit']);_0x121f20[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x2be7f3[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x5b32f3[_0x40d5('0xe7')](_0x121f20);}})['then'](function(_0x416c1b){if(_0x416c1b){return _0x416c1b?{'count':_0x8f3e15,'rows':_0x416c1b}:null;}})[_0x40d5('0x19')](respondWithResult(_0x2b1ae0,null))[_0x40d5('0x22')](handleError(_0x2b1ae0,null));};exports['getAgents']=function(_0x573873,_0x105e12,_0x35ae6e){var _0x584313={};var _0x4aeef1={};var _0x5e9d31;var _0x42f64c;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x573873[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x105e12,null))[_0x40d5('0x19')](function(_0x9c4428){if(_0x9c4428){_0x5e9d31=_0x9c4428;_0x4aeef1['model']=_[_0x40d5('0x34')](db[_0x40d5('0x32')]['rawAttributes']);_0x4aeef1['query']=_[_0x40d5('0x34')](_0x573873[_0x40d5('0x37')]);_0x4aeef1['filters']=_[_0x40d5('0x38')](_0x4aeef1[_0x40d5('0x39')],_0x4aeef1[_0x40d5('0x37')]);_0x584313['attributes']=_[_0x40d5('0x38')](_0x4aeef1[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x573873[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x584313[_0x40d5('0x3b')]=_0x584313[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x584313['attributes']:_0x4aeef1['model'];_0x584313[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x573873[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x584313['where']=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x573873[_0x40d5('0x37')],_0x4aeef1[_0x40d5('0x41')]));if(_0x573873[_0x40d5('0x37')][_0x40d5('0x48')]){_0x584313[_0x40d5('0x40')]=_['merge'](_0x584313[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x584313[_0x40d5('0x3b')],function(_0xf87f1d){var _0xe446c={};_0xe446c[_0xf87f1d]={'$like':'%'+_0x573873[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0xe446c;})});}_0x584313[_0x40d5('0x39')]=db[_0x40d5('0x32')];_0x584313['as']='Agents';_0x584313=_[_0x40d5('0x45')]({},_0x584313,_0x573873[_0x40d5('0x49')]);return _0x5e9d31[_0x40d5('0xe8')]({'include':[_0x584313]});}})[_0x40d5('0x19')](function(_0xa9f4fa){if(_0xa9f4fa){var _0x2ca2ae={},_0x129ef6=[],_0x1e2055=0x0;for(var _0x11b846=0x0;_0x11b846<_0xa9f4fa[_0x40d5('0x51')];_0x11b846+=0x1){for(var _0x47505b=0x0,_0x1c1c11;_0x47505b<_0xa9f4fa[_0x11b846][_0x40d5('0xe9')][_0x40d5('0x51')];_0x47505b+=0x1){_0x1c1c11=_0xa9f4fa[_0x11b846][_0x40d5('0xe9')][_0x47505b][_0x40d5('0xa6')]({'plain':!![]});_0x2ca2ae[_0x1c1c11['id']]=_0x1c1c11;}}_0x2ca2ae=_[_0x40d5('0xea')](_0x2ca2ae);for(var _0x45540c=qs[_0x40d5('0xa3')](_0x573873[_0x40d5('0x37')][_0x40d5('0xa3')]);_0x45540c<_0x2ca2ae[_0x40d5('0x51')]&&_0x129ef6[_0x40d5('0x51')]<qs[_0x40d5('0x26')](_0x573873[_0x40d5('0x37')][_0x40d5('0x26')]);_0x45540c+=0x1){if(_0x2ca2ae[_0x45540c]){_0x129ef6[_0x40d5('0xc5')](_0x2ca2ae[_0x45540c]);}}return{'count':_0x2ca2ae[_0x40d5('0x51')],'rows':_0x129ef6};}})['then'](respondWithResult(_0x105e12,null))['catch'](handleError(_0x105e12,null));};exports['destroy']=function(_0x457fcb,_0x6ce9df){if(_0x457fcb[_0x40d5('0x5a')]['id']==_0x457fcb[_0x40d5('0x4f')]['id']){return _0x6ce9df[_0x40d5('0x27')](0x1f4)[_0x40d5('0x30')]({'message':'You\x20can\x27t\x20delete\x20yourself'});}return db[_0x40d5('0x32')]['find']({'where':{'id':_0x457fcb[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x6ce9df,null))[_0x40d5('0x19')](removeEntity(_0x6ce9df,null))[_0x40d5('0x22')](handleError(_0x6ce9df,null));};exports[_0x40d5('0xeb')]=function(_0x5d252c,_0x20d9af,_0x14e90c){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x5d252c['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x20d9af,null))['then'](function(_0x664033){if(_0x664033){return _0x664033['addChatInteractions'](_0x5d252c[_0x40d5('0x54')][_0x40d5('0x84')],_['omit'](_0x5d252c[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{})['spread'](function(){for(var _0x43ad2a=0x0;_0x43ad2a<_0x5d252c['body']['ids'][_0x40d5('0x51')];_0x43ad2a+=0x1){socket[_0x40d5('0xbd')](_0x40d5('0xec'),{'ChatInteractionId':Number(_0x5d252c[_0x40d5('0x54')][_0x40d5('0x84')][_0x43ad2a]),'UserId':Number(_0x5d252c[_0x40d5('0x4f')]['id'])});}return _0x5d252c[_0x40d5('0x54')][_0x40d5('0x84')];});}})[_0x40d5('0x19')](respondWithResult(_0x20d9af,null))[_0x40d5('0x22')](handleError(_0x20d9af,null));};exports[_0x40d5('0xed')]=function(_0x149374,_0x2e1e75,_0x2c3f90){var _0x25c4cc;return db[_0x40d5('0x32')]['find']({'where':{'id':_0x149374[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x2e1e75,null))[_0x40d5('0x19')](function(_0x4fc4fd){if(_0x4fc4fd){return _0x4fc4fd[_0x40d5('0xed')](_0x149374[_0x40d5('0x37')][_0x40d5('0x84')])[_0x40d5('0x19')](function(_0x39a785){if(_['isArray'](_0x149374[_0x40d5('0x37')][_0x40d5('0x84')])){for(var _0x21837b=0x0;_0x21837b<_0x149374[_0x40d5('0x37')][_0x40d5('0x84')]['length'];_0x21837b+=0x1){socket['emit']('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x149374['query']['ids'][_0x21837b]),'UserId':Number(_0x149374[_0x40d5('0x4f')]['id'])});}}else{socket[_0x40d5('0xbd')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x149374[_0x40d5('0x37')][_0x40d5('0x84')]),'UserId':Number(_0x149374[_0x40d5('0x4f')]['id'])});}});}})[_0x40d5('0x19')](respondWithStatusCode(_0x2e1e75,null))[_0x40d5('0x22')](handleError(_0x2e1e75,null));};exports[_0x40d5('0xee')]=function(_0x3f6187,_0x1785b1,_0x17c2e5){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x3f6187[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1785b1,null))[_0x40d5('0x19')](function(_0x21eaba){if(_0x21eaba){return _0x21eaba[_0x40d5('0xee')](_0x3f6187['body']['ids'],_[_0x40d5('0xe5')](_0x3f6187[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{})['spread'](function(){for(var _0xce859c=0x0;_0xce859c<_0x3f6187[_0x40d5('0x54')][_0x40d5('0x84')][_0x40d5('0x51')];_0xce859c+=0x1){socket[_0x40d5('0xbd')](_0x40d5('0xef'),{'MailInteractionId':Number(_0x3f6187['body']['ids'][_0xce859c]),'UserId':Number(_0x3f6187['params']['id'])});}return _0x3f6187['body']['ids'];});}})[_0x40d5('0x19')](respondWithResult(_0x1785b1,null))[_0x40d5('0x22')](handleError(_0x1785b1,null));};exports[_0x40d5('0xf0')]=function(_0x940c50,_0x253468,_0x438518){var _0x4c8b56;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x940c50['params']['id']}})['then'](handleEntityNotFound(_0x253468,null))[_0x40d5('0x19')](function(_0x3dc9d){if(_0x3dc9d){return _0x3dc9d[_0x40d5('0xf0')](_0x940c50[_0x40d5('0x37')][_0x40d5('0x84')])[_0x40d5('0x19')](function(_0x2f8d31){if(_[_0x40d5('0xf1')](_0x940c50[_0x40d5('0x37')][_0x40d5('0x84')])){for(var _0x5301c7=0x0;_0x5301c7<_0x940c50[_0x40d5('0x37')][_0x40d5('0x84')][_0x40d5('0x51')];_0x5301c7+=0x1){socket[_0x40d5('0xbd')](_0x40d5('0xf2'),{'MailInteractionId':Number(_0x940c50[_0x40d5('0x37')][_0x40d5('0x84')][_0x5301c7]),'UserId':Number(_0x940c50[_0x40d5('0x4f')]['id'])});}}else{socket[_0x40d5('0xbd')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x940c50[_0x40d5('0x37')][_0x40d5('0x84')]),'UserId':Number(_0x940c50[_0x40d5('0x4f')]['id'])});}});}})[_0x40d5('0x19')](respondWithStatusCode(_0x253468,null))[_0x40d5('0x22')](handleError(_0x253468,null));};exports[_0x40d5('0xf3')]=function(_0xe205a7,_0x5e57cb,_0x411c79){return db['User'][_0x40d5('0x52')]({'where':{'id':_0xe205a7[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x5e57cb,null))['then'](function(_0xf147ba){if(_0xf147ba){return _0xf147ba[_0x40d5('0xf3')](_0xe205a7['body']['ids'],_[_0x40d5('0xe5')](_0xe205a7['body'],[_0x40d5('0x84'),'id'])||{})[_0x40d5('0x85')](function(){for(var _0x2319da=0x0;_0x2319da<_0xe205a7['body']['ids'][_0x40d5('0x51')];_0x2319da+=0x1){socket[_0x40d5('0xbd')](_0x40d5('0xf4'),{'FaxInteractionId':Number(_0xe205a7[_0x40d5('0x54')]['ids'][_0x2319da]),'UserId':Number(_0xe205a7[_0x40d5('0x4f')]['id'])});}return _0xe205a7[_0x40d5('0x54')][_0x40d5('0x84')];});}})[_0x40d5('0x19')](respondWithResult(_0x5e57cb,null))['catch'](handleError(_0x5e57cb,null));};exports[_0x40d5('0xf5')]=function(_0x46a107,_0x588e3a,_0x461ca8){var _0x5ac5ad;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x46a107['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x588e3a,null))[_0x40d5('0x19')](function(_0x44e50b){if(_0x44e50b){return _0x44e50b['removeFaxInteractions'](_0x46a107[_0x40d5('0x37')][_0x40d5('0x84')])['then'](function(_0x2a49c2){if(_['isArray'](_0x46a107[_0x40d5('0x37')][_0x40d5('0x84')])){for(var _0x23f056=0x0;_0x23f056<_0x46a107['query'][_0x40d5('0x84')]['length'];_0x23f056+=0x1){socket['emit'](_0x40d5('0xf6'),{'FaxInteractionId':Number(_0x46a107[_0x40d5('0x37')]['ids'][_0x23f056]),'UserId':Number(_0x46a107[_0x40d5('0x4f')]['id'])});}}else{socket[_0x40d5('0xbd')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x46a107[_0x40d5('0x37')][_0x40d5('0x84')]),'UserId':Number(_0x46a107[_0x40d5('0x4f')]['id'])});}});}})[_0x40d5('0x19')](respondWithStatusCode(_0x588e3a,null))[_0x40d5('0x22')](handleError(_0x588e3a,null));};exports['addSmsInteractions']=function(_0xab73c8,_0x31a4b7,_0x46b2bb){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0xab73c8['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x31a4b7,null))[_0x40d5('0x19')](function(_0x33d42e){if(_0x33d42e){return _0x33d42e[_0x40d5('0xf7')](_0xab73c8[_0x40d5('0x54')]['ids'],_[_0x40d5('0xe5')](_0xab73c8[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{})[_0x40d5('0x85')](function(){for(var _0x1b27bb=0x0;_0x1b27bb<_0xab73c8['body'][_0x40d5('0x84')]['length'];_0x1b27bb+=0x1){socket[_0x40d5('0xbd')](_0x40d5('0xf8'),{'SmsInteractionId':Number(_0xab73c8[_0x40d5('0x54')][_0x40d5('0x84')][_0x1b27bb]),'UserId':Number(_0xab73c8['params']['id'])});}return _0xab73c8[_0x40d5('0x54')][_0x40d5('0x84')];});}})['then'](respondWithResult(_0x31a4b7,null))[_0x40d5('0x22')](handleError(_0x31a4b7,null));};exports[_0x40d5('0xf9')]=function(_0x3fe23e,_0x81a42d,_0x140b56){var _0x5af207;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x3fe23e['params']['id']}})['then'](handleEntityNotFound(_0x81a42d,null))['then'](function(_0x4a6fc6){if(_0x4a6fc6){return _0x4a6fc6[_0x40d5('0xf9')](_0x3fe23e['query'][_0x40d5('0x84')])['then'](function(_0x473dc7){if(_[_0x40d5('0xf1')](_0x3fe23e[_0x40d5('0x37')][_0x40d5('0x84')])){for(var _0x5e5d20=0x0;_0x5e5d20<_0x3fe23e[_0x40d5('0x37')][_0x40d5('0x84')][_0x40d5('0x51')];_0x5e5d20+=0x1){socket[_0x40d5('0xbd')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x3fe23e['query']['ids'][_0x5e5d20]),'UserId':Number(_0x3fe23e[_0x40d5('0x4f')]['id'])});}}else{socket[_0x40d5('0xbd')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x3fe23e[_0x40d5('0x37')][_0x40d5('0x84')]),'UserId':Number(_0x3fe23e['params']['id'])});}});}})[_0x40d5('0x19')](respondWithStatusCode(_0x81a42d,null))['catch'](handleError(_0x81a42d,null));};exports['addOpenchannelInteractions']=function(_0x41441d,_0x34773b,_0xd18f2){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x41441d[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x34773b,null))[_0x40d5('0x19')](function(_0x544439){if(_0x544439){return _0x544439[_0x40d5('0xfa')](_0x41441d[_0x40d5('0x54')][_0x40d5('0x84')],_[_0x40d5('0xe5')](_0x41441d[_0x40d5('0x54')],['ids','id'])||{})[_0x40d5('0x85')](function(){for(var _0x8c7428=0x0;_0x8c7428<_0x41441d[_0x40d5('0x54')][_0x40d5('0x84')][_0x40d5('0x51')];_0x8c7428+=0x1){socket[_0x40d5('0xbd')](_0x40d5('0xfb'),{'OpenchannelInteractionId':Number(_0x41441d[_0x40d5('0x54')][_0x40d5('0x84')][_0x8c7428]),'UserId':Number(_0x41441d[_0x40d5('0x4f')]['id'])});}return _0x41441d[_0x40d5('0x54')]['ids'];});}})[_0x40d5('0x19')](respondWithResult(_0x34773b,null))['catch'](handleError(_0x34773b,null));};exports[_0x40d5('0xfc')]=function(_0x55c0c7,_0x55689d,_0x4ed28e){var _0x164dd4;return db['User']['find']({'where':{'id':_0x55c0c7[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x55689d,null))[_0x40d5('0x19')](function(_0x2ae0f0){if(_0x2ae0f0){return _0x2ae0f0[_0x40d5('0xfc')](_0x55c0c7['query'][_0x40d5('0x84')])[_0x40d5('0x19')](function(_0x3cf82f){if(_['isArray'](_0x55c0c7['query'][_0x40d5('0x84')])){for(var _0x440a64=0x0;_0x440a64<_0x55c0c7[_0x40d5('0x37')][_0x40d5('0x84')][_0x40d5('0x51')];_0x440a64+=0x1){socket[_0x40d5('0xbd')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x55c0c7[_0x40d5('0x37')][_0x40d5('0x84')][_0x440a64]),'UserId':Number(_0x55c0c7[_0x40d5('0x4f')]['id'])});}}else{socket[_0x40d5('0xbd')](_0x40d5('0xfd'),{'OpenchannelInteractionId':Number(_0x55c0c7['query'][_0x40d5('0x84')]),'UserId':Number(_0x55c0c7[_0x40d5('0x4f')]['id'])});}});}})[_0x40d5('0x19')](respondWithStatusCode(_0x55689d,null))['catch'](handleError(_0x55689d,null));};exports[_0x40d5('0xfe')]=function(_0x2842ba,_0x4b3216,_0xfcf48a){var _0x2b9979={};var _0x26838d={};var _0x510874;var _0x5ac69d;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x2842ba['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x4b3216,null))['then'](function(_0x87c1cf){if(_0x87c1cf){_0x510874=_0x87c1cf;_0x26838d['model']=_['keys'](db[_0x40d5('0xff')][_0x40d5('0x33')]);_0x26838d[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x2842ba[_0x40d5('0x37')]);_0x26838d[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x26838d['model'],_0x26838d['query']);_0x2b9979['attributes']=_[_0x40d5('0x38')](_0x26838d[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x2842ba[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x2b9979[_0x40d5('0x3b')]=_0x2b9979['attributes'][_0x40d5('0x51')]?_0x2b9979[_0x40d5('0x3b')]:_0x26838d[_0x40d5('0x39')];_0x2b9979[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x2842ba[_0x40d5('0x37')]['sort']);_0x2b9979['where']=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x2842ba[_0x40d5('0x37')],_0x26838d[_0x40d5('0x41')]));if(_0x2842ba[_0x40d5('0x37')][_0x40d5('0x48')]){_0x2b9979[_0x40d5('0x40')]=_['merge'](_0x2b9979[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x2b9979['attributes'],function(_0x208e1f){var _0x5375ac={};_0x5375ac[_0x208e1f]={'$like':'%'+_0x2842ba[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x5375ac;})});}_0x2b9979=_[_0x40d5('0x45')]({},_0x2b9979,_0x2842ba[_0x40d5('0x49')]);return _0x510874[_0x40d5('0xfe')](_0x2b9979);}})[_0x40d5('0x19')](function(_0x3f1bdf){if(_0x3f1bdf){_0x5ac69d=_0x3f1bdf[_0x40d5('0x51')];if(!_0x2842ba['query']['hasOwnProperty']('nolimit')){_0x2b9979[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x2842ba[_0x40d5('0x37')][_0x40d5('0x26')]);_0x2b9979[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x2842ba[_0x40d5('0x37')]['offset']);}return _0x510874[_0x40d5('0xfe')](_0x2b9979);}})[_0x40d5('0x19')](function(_0x18ad83){if(_0x18ad83){return _0x18ad83?{'count':_0x5ac69d,'rows':_0x18ad83}:null;}})[_0x40d5('0x19')](respondWithResult(_0x4b3216,null))[_0x40d5('0x22')](handleError(_0x4b3216,null));};exports[_0x40d5('0x100')]=function(_0x572157,_0x4adec2,_0x4e0e28){var _0x5cb71d={};var _0x15fb56={};var _0x4c9312;var _0x1a44d4;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x572157[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x4adec2,null))['then'](function(_0x11a3ba){if(_0x11a3ba){_0x4c9312=_0x11a3ba;_0x15fb56[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0x101')][_0x40d5('0x33')]);_0x15fb56[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x572157[_0x40d5('0x37')]);_0x15fb56['filters']=_['intersection'](_0x15fb56['model'],_0x15fb56['query']);_0x5cb71d[_0x40d5('0x3b')]=_['intersection'](_0x15fb56[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x572157[_0x40d5('0x37')]['fields']));_0x5cb71d['attributes']=_0x5cb71d[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x5cb71d[_0x40d5('0x3b')]:_0x15fb56[_0x40d5('0x39')];_0x5cb71d[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x572157[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x5cb71d[_0x40d5('0x40')]=qs['filters'](_['pick'](_0x572157['query'],_0x15fb56[_0x40d5('0x41')]));if(_0x572157[_0x40d5('0x37')]['filter']){_0x5cb71d[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x5cb71d[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x5cb71d[_0x40d5('0x3b')],function(_0x53619c){var _0x575960={};_0x575960[_0x53619c]={'$like':'%'+_0x572157['query'][_0x40d5('0x48')]+'%'};return _0x575960;})});}_0x5cb71d=_['merge']({},_0x5cb71d,_0x572157[_0x40d5('0x49')]);return _0x4c9312[_0x40d5('0x100')](_0x5cb71d);}})['then'](function(_0x59b022){if(_0x59b022){_0x1a44d4=_0x59b022[_0x40d5('0x51')];if(!_0x572157['query'][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x5cb71d[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x572157[_0x40d5('0x37')][_0x40d5('0x26')]);_0x5cb71d[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x572157[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x4c9312['getFaxAccounts'](_0x5cb71d);}})[_0x40d5('0x19')](function(_0x27dddb){if(_0x27dddb){return _0x27dddb?{'count':_0x1a44d4,'rows':_0x27dddb}:null;}})[_0x40d5('0x19')](respondWithResult(_0x4adec2,null))[_0x40d5('0x22')](handleError(_0x4adec2,null));};exports[_0x40d5('0x102')]=function(_0x512095,_0x512e14,_0x51a452){return db['User']['find']({'where':{'id':_0x512095[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x512e14,null))[_0x40d5('0x19')](function(_0x6679b9){if(_0x6679b9){return _0x6679b9['addFaxAccounts'](_0x512095[_0x40d5('0x54')][_0x40d5('0x84')],_[_0x40d5('0xe5')](_0x512095[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{});}})[_0x40d5('0x19')](respondWithResult(_0x512e14,null))[_0x40d5('0x22')](handleError(_0x512e14,null));};exports[_0x40d5('0x103')]=function(_0x59ad29,_0x5190f0,_0x27d79c){var _0x84d925;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x59ad29[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x5190f0,null))['then'](function(_0x1ec145){if(_0x1ec145){return _0x1ec145['removeFaxAccounts'](_0x59ad29[_0x40d5('0x37')]['ids']);}})['then'](respondWithStatusCode(_0x5190f0,null))[_0x40d5('0x22')](handleError(_0x5190f0,null));};exports[_0x40d5('0x104')]=function(_0x3cf75e,_0x10506d,_0x37d48c){var _0x36d516={};var _0x40964d={};var _0x2cd4eb;var _0x1d16a0;return db[_0x40d5('0x32')]['findOne']({'where':{'id':_0x3cf75e['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x10506d,null))[_0x40d5('0x19')](function(_0x4ee33b){if(_0x4ee33b){_0x2cd4eb=_0x4ee33b;_0x40964d['model']=_[_0x40d5('0x34')](db['MailAccount'][_0x40d5('0x33')]);_0x40964d['query']=_[_0x40d5('0x34')](_0x3cf75e[_0x40d5('0x37')]);_0x40964d[_0x40d5('0x41')]=_['intersection'](_0x40964d[_0x40d5('0x39')],_0x40964d[_0x40d5('0x37')]);_0x36d516[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x40964d[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x3cf75e[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x36d516['attributes']=_0x36d516[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x36d516['attributes']:_0x40964d[_0x40d5('0x39')];_0x36d516['order']=qs[_0x40d5('0x3f')](_0x3cf75e[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x36d516[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_['pick'](_0x3cf75e[_0x40d5('0x37')],_0x40964d[_0x40d5('0x41')]));if(_0x3cf75e[_0x40d5('0x37')][_0x40d5('0x48')]){_0x36d516[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x36d516[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x36d516[_0x40d5('0x3b')],function(_0xc34fc3){var _0xf1a9f1={};_0xf1a9f1[_0xc34fc3]={'$like':'%'+_0x3cf75e[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0xf1a9f1;})});}_0x36d516=_[_0x40d5('0x45')]({},_0x36d516,_0x3cf75e['options']);return _0x2cd4eb[_0x40d5('0x104')](_0x36d516);}})[_0x40d5('0x19')](function(_0x1b3ca2){if(_0x1b3ca2){_0x1d16a0=_0x1b3ca2[_0x40d5('0x51')];if(!_0x3cf75e[_0x40d5('0x37')]['hasOwnProperty'](_0x40d5('0x3d'))){_0x36d516[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x3cf75e['query'][_0x40d5('0x26')]);_0x36d516[_0x40d5('0xa3')]=qs['offset'](_0x3cf75e[_0x40d5('0x37')]['offset']);}return _0x2cd4eb[_0x40d5('0x104')](_0x36d516);}})[_0x40d5('0x19')](function(_0x2aab1e){if(_0x2aab1e){return _0x2aab1e?{'count':_0x1d16a0,'rows':_0x2aab1e}:null;}})[_0x40d5('0x19')](respondWithResult(_0x10506d,null))['catch'](handleError(_0x10506d,null));};exports[_0x40d5('0x105')]=function(_0xc0deea,_0x1c9c02,_0x1a2418){return db[_0x40d5('0x32')]['find']({'where':{'id':_0xc0deea[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x1c9c02,null))[_0x40d5('0x19')](function(_0xcef78b){if(_0xcef78b){return _0xcef78b[_0x40d5('0x105')](_0xc0deea[_0x40d5('0x54')][_0x40d5('0x84')],_[_0x40d5('0xe5')](_0xc0deea[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{});}})['then'](respondWithResult(_0x1c9c02,null))[_0x40d5('0x22')](handleError(_0x1c9c02,null));};exports[_0x40d5('0x106')]=function(_0x2aa35f,_0x36a208,_0x54a646){var _0x216786;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x2aa35f[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x36a208,null))[_0x40d5('0x19')](function(_0x3e34ff){if(_0x3e34ff){return _0x3e34ff[_0x40d5('0x106')](_0x2aa35f[_0x40d5('0x37')][_0x40d5('0x84')]);}})[_0x40d5('0x19')](respondWithStatusCode(_0x36a208,null))[_0x40d5('0x22')](handleError(_0x36a208,null));};exports[_0x40d5('0x107')]=function(_0x164eca,_0x177d40,_0x5ac4d5){var _0xb78a3f={};var _0x1b8cd5={};var _0x109d26;var _0x42b4ea;return db[_0x40d5('0x32')]['findOne']({'where':{'id':_0x164eca[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x177d40,null))['then'](function(_0x45cd25){if(_0x45cd25){_0x109d26=_0x45cd25;_0x1b8cd5['model']=_['keys'](db['OpenchannelAccount'][_0x40d5('0x33')]);_0x1b8cd5['query']=_[_0x40d5('0x34')](_0x164eca[_0x40d5('0x37')]);_0x1b8cd5[_0x40d5('0x41')]=_['intersection'](_0x1b8cd5[_0x40d5('0x39')],_0x1b8cd5[_0x40d5('0x37')]);_0xb78a3f[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x1b8cd5[_0x40d5('0x39')],qs['fields'](_0x164eca[_0x40d5('0x37')][_0x40d5('0x3a')]));_0xb78a3f['attributes']=_0xb78a3f[_0x40d5('0x3b')][_0x40d5('0x51')]?_0xb78a3f[_0x40d5('0x3b')]:_0x1b8cd5['model'];_0xb78a3f[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x164eca[_0x40d5('0x37')][_0x40d5('0x3f')]);_0xb78a3f[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x164eca[_0x40d5('0x37')],_0x1b8cd5[_0x40d5('0x41')]));if(_0x164eca[_0x40d5('0x37')][_0x40d5('0x48')]){_0xb78a3f[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0xb78a3f[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0xb78a3f[_0x40d5('0x3b')],function(_0x28acaa){var _0xa9b5be={};_0xa9b5be[_0x28acaa]={'$like':'%'+_0x164eca[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0xa9b5be;})});}_0xb78a3f=_[_0x40d5('0x45')]({},_0xb78a3f,_0x164eca[_0x40d5('0x49')]);return _0x109d26['getOpenchannelAccounts'](_0xb78a3f);}})[_0x40d5('0x19')](function(_0x44cf2c){if(_0x44cf2c){_0x42b4ea=_0x44cf2c[_0x40d5('0x51')];if(!_0x164eca['query']['hasOwnProperty'](_0x40d5('0x3d'))){_0xb78a3f[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x164eca[_0x40d5('0x37')][_0x40d5('0x26')]);_0xb78a3f[_0x40d5('0xa3')]=qs[_0x40d5('0xa3')](_0x164eca[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x109d26['getOpenchannelAccounts'](_0xb78a3f);}})[_0x40d5('0x19')](function(_0x53972d){if(_0x53972d){return _0x53972d?{'count':_0x42b4ea,'rows':_0x53972d}:null;}})[_0x40d5('0x19')](respondWithResult(_0x177d40,null))['catch'](handleError(_0x177d40,null));};exports['addOpenchannelAccounts']=function(_0x4fdf82,_0x3a9984,_0xbdbd93){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x4fdf82[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x3a9984,null))[_0x40d5('0x19')](function(_0x55a43c){if(_0x55a43c){return _0x55a43c['addOpenchannelAccounts'](_0x4fdf82[_0x40d5('0x54')][_0x40d5('0x84')],_[_0x40d5('0xe5')](_0x4fdf82[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{});}})[_0x40d5('0x19')](respondWithResult(_0x3a9984,null))[_0x40d5('0x22')](handleError(_0x3a9984,null));};exports['removeOpenchannelAccounts']=function(_0x57318c,_0xa82716,_0x508a91){var _0x1876f9;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x57318c[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0xa82716,null))[_0x40d5('0x19')](function(_0x52509d){if(_0x52509d){return _0x52509d[_0x40d5('0x108')](_0x57318c['query'][_0x40d5('0x84')]);}})[_0x40d5('0x19')](respondWithStatusCode(_0xa82716,null))[_0x40d5('0x22')](handleError(_0xa82716,null));};exports['getSmsAccounts']=function(_0x1939fe,_0x3f85a7,_0x10d0f4){var _0x370b93={};var _0x3343ef={};var _0x51e60a;var _0x946797;return db[_0x40d5('0x32')][_0x40d5('0x9b')]({'where':{'id':_0x1939fe[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x3f85a7,null))[_0x40d5('0x19')](function(_0x87c6fe){if(_0x87c6fe){_0x51e60a=_0x87c6fe;_0x3343ef[_0x40d5('0x39')]=_[_0x40d5('0x34')](db['SmsAccount'][_0x40d5('0x33')]);_0x3343ef['query']=_['keys'](_0x1939fe[_0x40d5('0x37')]);_0x3343ef[_0x40d5('0x41')]=_['intersection'](_0x3343ef[_0x40d5('0x39')],_0x3343ef['query']);_0x370b93['attributes']=_['intersection'](_0x3343ef[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x1939fe[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x370b93[_0x40d5('0x3b')]=_0x370b93['attributes'][_0x40d5('0x51')]?_0x370b93[_0x40d5('0x3b')]:_0x3343ef[_0x40d5('0x39')];_0x370b93[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x1939fe[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x370b93[_0x40d5('0x40')]=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x1939fe['query'],_0x3343ef[_0x40d5('0x41')]));if(_0x1939fe[_0x40d5('0x37')][_0x40d5('0x48')]){_0x370b93[_0x40d5('0x40')]=_['merge'](_0x370b93[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x370b93[_0x40d5('0x3b')],function(_0x3de548){var _0x57dc0a={};_0x57dc0a[_0x3de548]={'$like':'%'+_0x1939fe[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x57dc0a;})});}_0x370b93=_['merge']({},_0x370b93,_0x1939fe[_0x40d5('0x49')]);return _0x51e60a[_0x40d5('0x109')](_0x370b93);}})[_0x40d5('0x19')](function(_0x1d67e8){if(_0x1d67e8){_0x946797=_0x1d67e8['length'];if(!_0x1939fe[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x370b93[_0x40d5('0x26')]=qs['limit'](_0x1939fe['query']['limit']);_0x370b93[_0x40d5('0xa3')]=qs['offset'](_0x1939fe[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x51e60a[_0x40d5('0x109')](_0x370b93);}})[_0x40d5('0x19')](function(_0x3560a2){if(_0x3560a2){return _0x3560a2?{'count':_0x946797,'rows':_0x3560a2}:null;}})[_0x40d5('0x19')](respondWithResult(_0x3f85a7,null))[_0x40d5('0x22')](handleError(_0x3f85a7,null));};exports[_0x40d5('0x10a')]=function(_0x4be768,_0x46bcaf,_0x4ca4c2){return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x4be768[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x46bcaf,null))[_0x40d5('0x19')](function(_0xf20aee){if(_0xf20aee){return _0xf20aee[_0x40d5('0x10a')](_0x4be768[_0x40d5('0x54')]['ids'],_[_0x40d5('0xe5')](_0x4be768[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{});}})[_0x40d5('0x19')](respondWithResult(_0x46bcaf,null))[_0x40d5('0x22')](handleError(_0x46bcaf,null));};exports[_0x40d5('0x10b')]=function(_0x3cf383,_0x410023,_0x44441b){var _0x52e538;return db['User'][_0x40d5('0x52')]({'where':{'id':_0x3cf383[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x410023,null))[_0x40d5('0x19')](function(_0x993bdc){if(_0x993bdc){return _0x993bdc[_0x40d5('0x10b')](_0x3cf383[_0x40d5('0x37')][_0x40d5('0x84')]);}})['then'](respondWithStatusCode(_0x410023,null))[_0x40d5('0x22')](handleError(_0x410023,null));};exports[_0x40d5('0x10c')]=function(_0x153897,_0x302cbc,_0x4c7191){var _0x187ac9={};var _0x28bf7e={};var _0x486f4f;var _0x299dac;return db[_0x40d5('0x32')]['findOne']({'where':{'id':_0x153897['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x302cbc,null))['then'](function(_0x51a1d3){if(_0x51a1d3){_0x486f4f=_0x51a1d3;_0x28bf7e[_0x40d5('0x39')]=_[_0x40d5('0x34')](db['ChatWebsite'][_0x40d5('0x33')]);_0x28bf7e[_0x40d5('0x37')]=_[_0x40d5('0x34')](_0x153897[_0x40d5('0x37')]);_0x28bf7e[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x28bf7e[_0x40d5('0x39')],_0x28bf7e[_0x40d5('0x37')]);_0x187ac9[_0x40d5('0x3b')]=_[_0x40d5('0x38')](_0x28bf7e[_0x40d5('0x39')],qs[_0x40d5('0x3a')](_0x153897[_0x40d5('0x37')]['fields']));_0x187ac9[_0x40d5('0x3b')]=_0x187ac9[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x187ac9['attributes']:_0x28bf7e[_0x40d5('0x39')];_0x187ac9[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x153897[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x187ac9['where']=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x153897['query'],_0x28bf7e[_0x40d5('0x41')]));if(_0x153897[_0x40d5('0x37')][_0x40d5('0x48')]){_0x187ac9['where']=_['merge'](_0x187ac9[_0x40d5('0x40')],{'$or':_['map'](_0x187ac9['attributes'],function(_0x33d16e){var _0x40a7ec={};_0x40a7ec[_0x33d16e]={'$like':'%'+_0x153897[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x40a7ec;})});}_0x187ac9=_[_0x40d5('0x45')]({},_0x187ac9,_0x153897[_0x40d5('0x49')]);return _0x486f4f['getChatWebsites'](_0x187ac9);}})['then'](function(_0x13368c){if(_0x13368c){_0x299dac=_0x13368c[_0x40d5('0x51')];if(!_0x153897[_0x40d5('0x37')]['hasOwnProperty'](_0x40d5('0x3d'))){_0x187ac9['limit']=qs[_0x40d5('0x26')](_0x153897[_0x40d5('0x37')]['limit']);_0x187ac9['offset']=qs[_0x40d5('0xa3')](_0x153897[_0x40d5('0x37')][_0x40d5('0xa3')]);}return _0x486f4f['getChatWebsites'](_0x187ac9);}})[_0x40d5('0x19')](function(_0x30cbbe){if(_0x30cbbe){return _0x30cbbe?{'count':_0x299dac,'rows':_0x30cbbe}:null;}})['then'](respondWithResult(_0x302cbc,null))[_0x40d5('0x22')](handleError(_0x302cbc,null));};exports[_0x40d5('0x10d')]=function(_0x2cbf61,_0x426553,_0xac5fb5){return db['User'][_0x40d5('0x52')]({'where':{'id':_0x2cbf61['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x426553,null))[_0x40d5('0x19')](function(_0x9792b){if(_0x9792b){return _0x9792b[_0x40d5('0x10d')](_0x2cbf61['body'][_0x40d5('0x84')],_[_0x40d5('0xe5')](_0x2cbf61[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{});}})['then'](respondWithResult(_0x426553,null))[_0x40d5('0x22')](handleError(_0x426553,null));};exports[_0x40d5('0x10e')]=function(_0x5e89f4,_0x513dca,_0x379f08){var _0x1d8d11;return db[_0x40d5('0x32')][_0x40d5('0x52')]({'where':{'id':_0x5e89f4['params']['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x513dca,null))[_0x40d5('0x19')](function(_0x2e45d0){if(_0x2e45d0){return _0x2e45d0['removeChatWebsites'](_0x5e89f4[_0x40d5('0x37')][_0x40d5('0x84')]);}})[_0x40d5('0x19')](respondWithStatusCode(_0x513dca,null))[_0x40d5('0x22')](handleError(_0x513dca,null));};exports[_0x40d5('0x10f')]=function(_0x3d983a,_0x2b3b12,_0x49b58e){var _0x577034={};var _0x1fea32={};var _0x5db427;var _0x57ec6c;return db['User'][_0x40d5('0x9b')]({'where':{'id':_0x3d983a[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x2b3b12,null))[_0x40d5('0x19')](function(_0x31a134){if(_0x31a134){_0x5db427=_0x31a134;_0x1fea32[_0x40d5('0x39')]=_[_0x40d5('0x34')](db[_0x40d5('0x110')]['rawAttributes']);_0x1fea32[_0x40d5('0x37')]=_['keys'](_0x3d983a['query']);_0x1fea32['filters']=_['intersection'](_0x1fea32[_0x40d5('0x39')],_0x1fea32[_0x40d5('0x37')]);_0x577034[_0x40d5('0x3b')]=_['intersection'](_0x1fea32['model'],qs['fields'](_0x3d983a[_0x40d5('0x37')][_0x40d5('0x3a')]));_0x577034[_0x40d5('0x3b')]=_0x577034[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x577034[_0x40d5('0x3b')]:_0x1fea32['model'];_0x577034['order']=qs[_0x40d5('0x3f')](_0x3d983a['query'][_0x40d5('0x3f')]);_0x577034[_0x40d5('0x40')]=qs['filters'](_[_0x40d5('0x42')](_0x3d983a[_0x40d5('0x37')],_0x1fea32[_0x40d5('0x41')]));if(_0x3d983a[_0x40d5('0x37')]['filter']){_0x577034[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x577034['where'],{'$or':_[_0x40d5('0x46')](_0x577034[_0x40d5('0x3b')],function(_0x59d060){var _0x25f860={};_0x25f860[_0x59d060]={'$like':'%'+_0x3d983a['query'][_0x40d5('0x48')]+'%'};return _0x25f860;})});}_0x577034=_[_0x40d5('0x45')]({},_0x577034,_0x3d983a[_0x40d5('0x49')]);return _0x5db427['getSquareProjects'](_0x577034);}})[_0x40d5('0x19')](function(_0x5ad1ce){if(_0x5ad1ce){_0x57ec6c=_0x5ad1ce[_0x40d5('0x51')];if(!_0x3d983a[_0x40d5('0x37')]['hasOwnProperty']('nolimit')){_0x577034[_0x40d5('0x26')]=qs[_0x40d5('0x26')](_0x3d983a[_0x40d5('0x37')]['limit']);_0x577034[_0x40d5('0xa3')]=qs['offset'](_0x3d983a['query']['offset']);}return _0x5db427['getSquareProjects'](_0x577034);}})[_0x40d5('0x19')](function(_0x278cf2){if(_0x278cf2){return _0x278cf2?{'count':_0x57ec6c,'rows':_0x278cf2}:null;}})[_0x40d5('0x19')](respondWithResult(_0x2b3b12,null))['catch'](handleError(_0x2b3b12,null));};exports['addSquareProjects']=function(_0x36df44,_0x237c7e,_0x4e8adf){return db[_0x40d5('0x32')]['find']({'where':{'id':_0x36df44[_0x40d5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x237c7e,null))[_0x40d5('0x19')](function(_0x4497b9){if(_0x4497b9){return _0x4497b9[_0x40d5('0x111')](_0x36df44[_0x40d5('0x54')][_0x40d5('0x84')],_[_0x40d5('0xe5')](_0x36df44[_0x40d5('0x54')],[_0x40d5('0x84'),'id'])||{});}})[_0x40d5('0x19')](respondWithResult(_0x237c7e,null))[_0x40d5('0x22')](handleError(_0x237c7e,null));};exports[_0x40d5('0x112')]=function(_0x24774f,_0x5db928,_0x2cd892){var _0xf387b8;return db['User'][_0x40d5('0x52')]({'where':{'id':_0x24774f[_0x40d5('0x4f')]['id']}})[_0x40d5('0x19')](handleEntityNotFound(_0x5db928,null))[_0x40d5('0x19')](function(_0x2f2875){if(_0x2f2875){return _0x2f2875['removeSquareProjects'](_0x24774f[_0x40d5('0x37')][_0x40d5('0x84')]);}})[_0x40d5('0x19')](respondWithStatusCode(_0x5db928,null))['catch'](handleError(_0x5db928,null));};exports[_0x40d5('0x113')]=function(_0x258fad,_0x305e4a){var _0x87fbcd={},_0x5ccd93={},_0x24983e={'count':0x0,'rows':[]};var _0x35b9ab=db[_0x40d5('0x114')]['rawAttributes'];_0x5ccd93['model']=_['keys'](_0x35b9ab);var _0x1c38b4={'dateStart':_0x258fad['query'][_0x40d5('0x35')],'dateEnd':_0x258fad[_0x40d5('0x37')][_0x40d5('0x36')]};delete _0x258fad['query'][_0x40d5('0x35')];delete _0x258fad[_0x40d5('0x37')][_0x40d5('0x36')];_0x5ccd93['query']=_[_0x40d5('0x34')](_0x258fad[_0x40d5('0x37')]);_0x5ccd93[_0x40d5('0x41')]=_[_0x40d5('0x38')](_0x5ccd93[_0x40d5('0x39')],_0x5ccd93[_0x40d5('0x37')]);_0x5ccd93[_0x40d5('0x41')]=_['concat'](_0x5ccd93['filters'],[_0x40d5('0x115'),_0x40d5('0x116'),_0x40d5('0x117'),_0x40d5('0x118'),_0x40d5('0x119'),_0x40d5('0x11a'),'$ne',_0x40d5('0x11b'),_0x40d5('0x11c'),_0x40d5('0x11d'),_0x40d5('0x11e'),_0x40d5('0x11f'),_0x40d5('0x120'),_0x40d5('0x121'),_0x40d5('0x122'),_0x40d5('0x123'),_0x40d5('0x124'),_0x40d5('0x121'),'$overlap',_0x40d5('0x125'),_0x40d5('0x126'),_0x40d5('0x127')]);_0x87fbcd[_0x40d5('0x3b')]=_['intersection'](_0x5ccd93[_0x40d5('0x39')],qs['fields'](_0x258fad['query'][_0x40d5('0x3a')]));_0x87fbcd['attributes']=_0x87fbcd[_0x40d5('0x3b')][_0x40d5('0x51')]?_0x87fbcd[_0x40d5('0x3b')]:_0x5ccd93[_0x40d5('0x39')];if(!_0x258fad[_0x40d5('0x37')][_0x40d5('0x3c')](_0x40d5('0x3d'))){_0x87fbcd['limit']=qs[_0x40d5('0x26')](_0x258fad['query']['limit']);_0x87fbcd[_0x40d5('0xa3')]=qs['offset'](_0x258fad[_0x40d5('0x37')][_0x40d5('0xa3')]);}_0x87fbcd[_0x40d5('0x3e')]=qs[_0x40d5('0x3f')](_0x258fad[_0x40d5('0x37')][_0x40d5('0x3f')]);_0x87fbcd['where']=qs[_0x40d5('0x41')](_[_0x40d5('0x42')](_0x258fad[_0x40d5('0x37')],_0x5ccd93[_0x40d5('0x41')]));if(_0x1c38b4[_0x40d5('0x35')]){if(_0x1c38b4[_0x40d5('0x36')]){_0x1c38b4[_0x40d5('0x36')]=moment(_0x1c38b4[_0x40d5('0x36')])[_0x40d5('0x43')](0x1,_0x40d5('0x44'));}else{_0x1c38b4[_0x40d5('0x36')]=moment(_0x1c38b4[_0x40d5('0x35')])[_0x40d5('0x43')](0x1,_0x40d5('0x44'));}_[_0x40d5('0x45')](_0x87fbcd[_0x40d5('0x40')],{'scheduledat':{'$gte':_0x1c38b4[_0x40d5('0x35')],'$lte':_0x1c38b4[_0x40d5('0x36')]}});}if(_0x258fad[_0x40d5('0x37')]['filter']){_0x87fbcd[_0x40d5('0x40')]=_[_0x40d5('0x45')](_0x87fbcd[_0x40d5('0x40')],{'$or':_[_0x40d5('0x46')](_0x87fbcd[_0x40d5('0x3b')],function(_0x270c43){var _0x4718a9={};_0x4718a9[_0x270c43]={'$like':'%'+_0x258fad[_0x40d5('0x37')][_0x40d5('0x48')]+'%'};return _0x4718a9;})});}_0x87fbcd['where']={'$and':[_0x87fbcd[_0x40d5('0x40')],{'$or':[{'UserId':_0x258fad[_0x40d5('0x4f')]['id']},{'OwnerId':_0x258fad['params']['id']}]}]};_0x87fbcd=_[_0x40d5('0x45')]({},_0x87fbcd,_0x258fad[_0x40d5('0x49')]);var _0x504982={'where':_0x87fbcd[_0x40d5('0x40')]};return db[_0x40d5('0x114')][_0x40d5('0x25')](_0x504982)[_0x40d5('0x19')](function(_0x207271){_0x24983e['count']=_0x207271;if(_0x258fad[_0x40d5('0x37')][_0x40d5('0x4a')]){_0x87fbcd[_0x40d5('0x4b')]=[{'attributes':['id',_0x40d5('0x128'),_0x40d5('0x129'),'phone'],'model':db[_0x40d5('0x9c')],'as':_0x40d5('0x12a')},{'attributes':['id',_0x40d5('0x2f'),_0x40d5('0x12b')],'model':db[_0x40d5('0x89')],'as':'Queue'}];}return db[_0x40d5('0x114')][_0x40d5('0x4c')](_0x87fbcd);})[_0x40d5('0x19')](function(_0x4fc2ba){_0x24983e[_0x40d5('0x4d')]=_0x4fc2ba;return _0x24983e;})['then'](respondWithFilteredResult(_0x305e4a,_0x87fbcd))['catch'](handleError(_0x305e4a,null));};
\ No newline at end of file
+var _0xba01=['intrf','user:%s','user:forcelogout','headers','x-forwarded-for','remoteAddress','connection','socket','getVoiceQueues','MemberReport','YYYY-MM-DD\x20HH:mm:ss','getChannels','LOGIN','device','PAUSE','LOGININPAUSE','concat','logout','forEach','all','pause','QueuePause','updateAttributes','type','DEFAULT\x20PAUSE','unpause','chatPause','openchannelPause','smsPause','pauseType','lastPauseAt','manual','mail','chat','fax','sms','%s%s','Pause','getTeams','Team','addTeams','omit','removeTeams','CmList','getLists','getAgents','Agents','addChatInteractions','removeChatInteractions','isArray','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','getVoicePrefixes','VoicePrefix','getFaxAccounts','addFaxAccounts','removeFaxAccounts','getMailAccounts','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','OpenchannelAccount','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','$and','$or','$gte','$lt','$lte','$eq','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$overlap','$contained','$any','CmHopper','lastName','CmContact','dialActive','html-pdf','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./user.socket','register','jayson/promise','http','request','then','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','destroy','stack','name','send','index','User','model','differenceBy','keys','password','query','dateEnd','dateStart','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','day','add','merge','where','sequelize','lower','filter','options','include','findAll','rows','show','params','rawAttributes','salt','find','bulkCreate','update','body','describe','addContacts','ids','role','agent','agent\x20role','telephone','user','getLicense','telephones','users','isNil','License\x20limit\x20reached','format','count\x20%s:\x20%s','create','internal','findById','max','select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)','QueryTypes','SELECT','from','voicemail','mailbox','VoiceMail','fullname','permissions','101','102','110','106','107','109','100','111','oldPassword','newPassword','Sequelize','Invalid\x20body\x20format.\x20Use\x20oldPassord\x20and\x20newPassword','authenticate','ValidationError','Wrong\x20credentials','Invalid\x20body\x20format.\x20Use\x20newPassword','Unauthorized','voicePause','interface','isValidChannel','Unknown\x20channel','capitalize','channel','Queues','penalty','spread','toLowerCase','VoiceQueue','voice','push','SIP/%s','each','UserVoiceQueueRt','upsert','removeQueues','remove','QueueId','emit','Queue:remove','addAvatar','file','filename','getAvatar','join','server/files/images/logos/default_profile.png','userpic','download','existsSync','server/files/images/','findOne','map','getContacts','List','Tag','Tags','tag','getQueues','Queue','admin','get','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','VoiceRecording','UserId','includeAll','getChatInteractions','getOpenchannelInteractions','OpenchannelInteraction','getMailInteractions','MailInteraction','getSmsInteractions','SmsInteraction','getFaxInteractions','FaxInteraction','login','phone','mobile','loginInPause','LOCAL/%s@from-sip/n'];(function(_0x9b172a,_0x372ed8){var _0x3f02bb=function(_0x5cca3f){while(--_0x5cca3f){_0x9b172a['push'](_0x9b172a['shift']());}};_0x3f02bb(++_0x372ed8);}(_0xba01,0x1ac));var _0x1ba0=function(_0x584afc,_0x5892d1){_0x584afc=_0x584afc-0x0;var _0x34473c=_0xba01[_0x584afc];return _0x34473c;};'use strict';var pdf=require(_0x1ba0('0x0'));var emlformat=require(_0x1ba0('0x1'));var rimraf=require(_0x1ba0('0x2'));var zipdir=require(_0x1ba0('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1ba0('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x1ba0('0x5'));var util=require(_0x1ba0('0x6'));var path=require(_0x1ba0('0x7'));var sox=require(_0x1ba0('0x8'));var csv=require('to-csv');var ejs=require(_0x1ba0('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x1ba0('0xa'));var crypto=require(_0x1ba0('0xb'));var jsforce=require(_0x1ba0('0xc'));var deskjs=require(_0x1ba0('0xd'));var toCsv=require(_0x1ba0('0xe'));var querystring=require(_0x1ba0('0xf'));var Papa=require(_0x1ba0('0x10'));var Redis=require(_0x1ba0('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0x1ba0('0x12'))(_0x1ba0('0x13'));var utils=require(_0x1ba0('0x14'));var config=require(_0x1ba0('0x15'));var db=require(_0x1ba0('0x16'))['db'];config[_0x1ba0('0x17')]=_[_0x1ba0('0x18')](config['redis'],{'host':_0x1ba0('0x19'),'port':0x18eb});var socket=require(_0x1ba0('0x1a'))(new Redis(config[_0x1ba0('0x17')]));require(_0x1ba0('0x1b'))[_0x1ba0('0x1c')](socket);var jayson=require(_0x1ba0('0x1d'));var client=jayson['client'][_0x1ba0('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0xd6d42f,_0x216997,_0x44e06,_0x460952){return new BPromise(function(_0xefe4d1,_0x412684){var _0x2018f3=_0x460952||client;return _0x2018f3[_0x1ba0('0x1f')](_0xd6d42f,_0x44e06)[_0x1ba0('0x20')](function(_0x4ade33){logger[_0x1ba0('0x21')](_0x1ba0('0x22'),_0x216997,_0x1ba0('0x23'));logger[_0x1ba0('0x24')](_0x1ba0('0x25'),_0x216997,_0x1ba0('0x23'),JSON[_0x1ba0('0x26')](_0x4ade33));if(_0x4ade33[_0x1ba0('0x27')]){if(_0x4ade33[_0x1ba0('0x27')][_0x1ba0('0x28')]===0x1f4){logger[_0x1ba0('0x27')](_0x1ba0('0x22'),_0x216997,_0x4ade33[_0x1ba0('0x27')][_0x1ba0('0x29')]);return _0x412684(_0x4ade33['error'][_0x1ba0('0x29')]);}logger[_0x1ba0('0x27')](_0x1ba0('0x22'),_0x216997,_0x4ade33[_0x1ba0('0x27')]['message']);return _0xefe4d1(_0x4ade33[_0x1ba0('0x27')][_0x1ba0('0x29')]);}else{logger['info']('User,\x20%s,\x20%s',_0x216997,_0x1ba0('0x23'));_0xefe4d1(_0x4ade33[_0x1ba0('0x2a')][_0x1ba0('0x29')]);}})[_0x1ba0('0x2b')](function(_0x3c3a76){logger[_0x1ba0('0x27')](_0x1ba0('0x22'),_0x216997,_0x3c3a76);_0x412684(_0x3c3a76);});});}function respondWithStatusCode(_0x2e5ffd,_0x13727b){_0x13727b=_0x13727b||0xcc;return function(_0x3f4aa2){if(_0x3f4aa2){return _0x2e5ffd[_0x1ba0('0x2c')](_0x13727b);}return _0x2e5ffd[_0x1ba0('0x2d')](_0x13727b)[_0x1ba0('0x2e')]();};}function respondWithResult(_0x454577,_0x133038){_0x133038=_0x133038||0xc8;return function(_0x4cfc33){if(_0x4cfc33){return _0x454577['status'](_0x133038)[_0x1ba0('0x2f')](_0x4cfc33);}};}function respondWithFilteredResult(_0x2210e4,_0x58926b){return function(_0x5a4fd6){if(_0x5a4fd6){var _0x3b8979=_0x5a4fd6[_0x1ba0('0x30')],_0x5af766=_0x58926b[_0x1ba0('0x31')],_0x10b705=_0x58926b['offset']+_0x58926b[_0x1ba0('0x32')],_0x2e4723;if(_0x10b705>=_0x3b8979){_0x10b705=_0x3b8979;_0x2e4723=0xc8;}else{_0x2e4723=0xce;}_0x2210e4[_0x1ba0('0x2d')](_0x2e4723);return _0x2210e4[_0x1ba0('0x33')](_0x1ba0('0x34'),_0x5af766+'-'+_0x10b705+'/'+_0x3b8979)[_0x1ba0('0x2f')](_0x5a4fd6);}return null;};}function patchUpdates(_0x576cfb){return function(_0x29b8f0){try{jsonpatch[_0x1ba0('0x35')](_0x29b8f0,_0x576cfb,!![]);}catch(_0x5bcb29){return BPromise[_0x1ba0('0x36')](_0x5bcb29);}return _0x29b8f0['save']();};}function saveUpdates(_0x1eb26e,_0x5c9b27){return function(_0x30c1d6){if(_0x30c1d6){return _0x30c1d6['update'](_0x1eb26e)['then'](function(_0x22a430){return _0x22a430;});}return null;};}function removeEntity(_0x350f65,_0x2d594d){return function(_0xc36616){if(_0xc36616){return _0xc36616[_0x1ba0('0x37')]()[_0x1ba0('0x20')](function(){_0x350f65[_0x1ba0('0x2d')](0xcc)[_0x1ba0('0x2e')]();});}};}function handleEntityNotFound(_0x37ad18,_0x108b5b){return function(_0x53bb4a){if(!_0x53bb4a){_0x37ad18[_0x1ba0('0x2c')](0x194);}return _0x53bb4a;};}function handleError(_0x44ee3a,_0x243ca6){_0x243ca6=_0x243ca6||0x1f4;return function(_0x5bc663){logger['error'](_0x5bc663[_0x1ba0('0x38')]);if(_0x5bc663[_0x1ba0('0x39')]){delete _0x5bc663[_0x1ba0('0x39')];}_0x44ee3a['status'](_0x243ca6)[_0x1ba0('0x3a')](_0x5bc663);};}exports[_0x1ba0('0x3b')]=function(_0x5ce56c,_0x3e094d){var _0x5c180f={},_0x3893f8={},_0x1c1b25={'count':0x0,'rows':[]};var _0x4f017b=db[_0x1ba0('0x3c')]['rawAttributes'];_0x3893f8[_0x1ba0('0x3d')]=_[_0x1ba0('0x3e')](_[_0x1ba0('0x3f')](_0x4f017b),[_0x1ba0('0x40'),'salt']);var _0x2c9564={'dateStart':_0x5ce56c[_0x1ba0('0x41')]['dateStart'],'dateEnd':_0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x42')]};delete _0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x43')];delete _0x5ce56c[_0x1ba0('0x41')]['dateEnd'];_0x3893f8['query']=_[_0x1ba0('0x3f')](_0x5ce56c[_0x1ba0('0x41')]);_0x3893f8[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x3893f8[_0x1ba0('0x3d')],_0x3893f8[_0x1ba0('0x41')]);_0x5c180f[_0x1ba0('0x46')]=_['intersection'](_0x3893f8['model'],qs[_0x1ba0('0x47')](_0x5ce56c[_0x1ba0('0x41')]['fields']));_0x5c180f['attributes']=_0x5c180f[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x5c180f[_0x1ba0('0x46')]:_0x3893f8[_0x1ba0('0x3d')];if(!_0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x5c180f[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x5c180f[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x31')]);}_0x5c180f[_0x1ba0('0x4b')]=qs['sort'](_0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x5c180f['where']=qs['filters'](_[_0x1ba0('0x4d')](_0x5ce56c[_0x1ba0('0x41')],_0x3893f8[_0x1ba0('0x44')]));if(_0x2c9564[_0x1ba0('0x43')]){if(_0x2c9564[_0x1ba0('0x42')]){_0x2c9564['dateEnd']=moment(_0x2c9564['dateEnd'])['add'](0x1,_0x1ba0('0x4e'));}else{_0x2c9564[_0x1ba0('0x42')]=moment(_0x2c9564['dateStart'])[_0x1ba0('0x4f')](0x1,'day');}_[_0x1ba0('0x50')](_0x5c180f[_0x1ba0('0x51')],{'createdAt':{'$gte':_0x2c9564[_0x1ba0('0x43')],'$lte':_0x2c9564[_0x1ba0('0x42')]}});}if(_0x5ce56c[_0x1ba0('0x41')]['filter']){_0x5c180f[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x5c180f[_0x1ba0('0x51')],{'$or':_['map'](_0x5c180f[_0x1ba0('0x46')],function(_0x21338d){return db[_0x1ba0('0x52')][_0x1ba0('0x51')](db[_0x1ba0('0x52')]['fn'](_0x1ba0('0x53'),db[_0x1ba0('0x52')]['col'](_0x21338d)),{'$like':db[_0x1ba0('0x52')]['fn'](_0x1ba0('0x53'),'%'+_0x5ce56c[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%')});})});}_0x5c180f=_[_0x1ba0('0x50')]({},_0x5c180f,_0x5ce56c[_0x1ba0('0x55')]);var _0x5e6004={'where':_0x5c180f[_0x1ba0('0x51')]};return db[_0x1ba0('0x3c')]['count'](_0x5e6004)[_0x1ba0('0x20')](function(_0x1a8c88){_0x1c1b25[_0x1ba0('0x30')]=_0x1a8c88;if(_0x5ce56c[_0x1ba0('0x41')]['includeAll']){_0x5c180f[_0x1ba0('0x56')]=[{'all':!![]}];}return db[_0x1ba0('0x3c')][_0x1ba0('0x57')](_0x5c180f);})['then'](function(_0x5ba421){_0x1c1b25[_0x1ba0('0x58')]=_0x5ba421;return _0x1c1b25;})['then'](respondWithFilteredResult(_0x3e094d,_0x5c180f))[_0x1ba0('0x2b')](handleError(_0x3e094d,null));};exports[_0x1ba0('0x59')]=function(_0x2e0bbf,_0x961660){var _0xe9337a={'raw':![],'where':{'id':_0x2e0bbf[_0x1ba0('0x5a')]['id']}},_0x101852={};_0x101852[_0x1ba0('0x3d')]=_[_0x1ba0('0x3e')](_[_0x1ba0('0x3f')](db[_0x1ba0('0x3c')][_0x1ba0('0x5b')]),[_0x1ba0('0x40'),_0x1ba0('0x5c')]);_0x101852[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x2e0bbf[_0x1ba0('0x41')]);_0x101852[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x101852[_0x1ba0('0x3d')],_0x101852[_0x1ba0('0x41')]);_0xe9337a[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x101852[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x2e0bbf[_0x1ba0('0x41')]['fields']));_0xe9337a['attributes']=_0xe9337a[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0xe9337a[_0x1ba0('0x46')]:_0x101852[_0x1ba0('0x3d')];if(_0x2e0bbf[_0x1ba0('0x41')]['includeAll']){_0xe9337a[_0x1ba0('0x56')]=[{'all':!![]}];}_0xe9337a=_[_0x1ba0('0x50')]({},_0xe9337a,_0x2e0bbf[_0x1ba0('0x55')]);return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')](_0xe9337a)['then'](handleEntityNotFound(_0x961660,null))['then'](respondWithResult(_0x961660,null))['catch'](handleError(_0x961660,null));};exports['bulkCreate']=function(_0x2bcbe6,_0x380a31){return db[_0x1ba0('0x3c')][_0x1ba0('0x5e')](_0x2bcbe6['body'],{'raw':![],'individualHooks':!![]})[_0x1ba0('0x20')](respondWithResult(_0x380a31,0xc9))['catch'](handleError(_0x380a31,null));};exports[_0x1ba0('0x5f')]=function(_0x2a3fc6,_0x22677a){if(_0x2a3fc6['body']['id']){delete _0x2a3fc6[_0x1ba0('0x60')]['id'];}return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x2a3fc6['params']['id']}})['then'](handleEntityNotFound(_0x22677a,null))['then'](saveUpdates(_0x2a3fc6[_0x1ba0('0x60')],null))[_0x1ba0('0x20')](respondWithResult(_0x22677a,null))['catch'](handleError(_0x22677a,null));};exports[_0x1ba0('0x61')]=function(_0x56083,_0x5bbfd8){return db[_0x1ba0('0x3c')][_0x1ba0('0x61')]()[_0x1ba0('0x20')](respondWithResult(_0x5bbfd8,null))[_0x1ba0('0x2b')](handleError(_0x5bbfd8,null));};exports[_0x1ba0('0x62')]=function(_0x41ac48,_0x2f76eb,_0x509b1f){return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x41ac48[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x2f76eb,null))[_0x1ba0('0x20')](function(_0x23b7e9){if(_0x23b7e9){return _0x23b7e9[_0x1ba0('0x62')](_0x41ac48[_0x1ba0('0x60')][_0x1ba0('0x63')],_['omit'](_0x41ac48[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{});}})[_0x1ba0('0x20')](respondWithResult(_0x2f76eb,null))[_0x1ba0('0x2b')](handleError(_0x2f76eb,null));};var getLicense=function(_0x290bf3){return new BPromise(function(_0x48ba35,_0x26ba2d){var _0x1b1082=0x0;_0x290bf3['body'][_0x1ba0('0x64')]===_0x1ba0('0x65')&&_0x48ba35(_0x1ba0('0x66'));return db['User'][_0x1ba0('0x30')]({'where':{'$or':[{'role':_0x290bf3['body'][_0x1ba0('0x64')]==='telephone'?_0x1ba0('0x67'):['admin',_0x1ba0('0x68')]}]}})['then'](function(_0x3d31b7){_0x1b1082=_0x3d31b7;return require('../../config/license/util')[_0x1ba0('0x69')]();})[_0x1ba0('0x20')](function(_0x33aac7){var _0xa4bdbb=_0x290bf3['body'][_0x1ba0('0x64')]===_0x1ba0('0x67')?_0x1ba0('0x6a'):_0x1ba0('0x6b');if(!_[_0x1ba0('0x6c')](_0x33aac7[_0xa4bdbb])&&_0x1b1082>=_0x33aac7[_0xa4bdbb]){return _0x26ba2d({'message':_0x1ba0('0x6d')});}return _0x48ba35(util[_0x1ba0('0x6e')](_0x1ba0('0x6f'),_0xa4bdbb,_0x1b1082));})[_0x1ba0('0x2b')](function(_0xde1d99){return _0x26ba2d(_0xde1d99);});});};exports[_0x1ba0('0x70')]=function(_0x53fd4b,_0x13a59e){return getLicense(_0x53fd4b)[_0x1ba0('0x20')](function(_0x133a30){if(!_0x53fd4b['body'][_0x1ba0('0x71')]){var _0x3c6193;return db['Setting'][_0x1ba0('0x72')](0x1)['then'](function(_0x5e3634){_0x3c6193=_0x5e3634['min_internal'];return db[_0x1ba0('0x3c')][_0x1ba0('0x73')]('internal');})[_0x1ba0('0x20')](function(_0x839a15){if(_[_0x1ba0('0x6c')](_0x839a15)){if(_0x3c6193){_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x71')]=_0x3c6193;}else{_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x71')]=0x1;}}else{if(_[_0x1ba0('0x6c')](_0x3c6193)||_0x3c6193==_0x839a15){_0x53fd4b[_0x1ba0('0x60')]['internal']=_0x839a15+0x1;}else if(_0x3c6193>_0x839a15){_0x53fd4b['body'][_0x1ba0('0x71')]=_0x3c6193;}else{return db['sequelize'][_0x1ba0('0x41')](_0x1ba0('0x74'),{'type':db['sequelize'][_0x1ba0('0x75')][_0x1ba0('0x76')]})['then'](function(_0x5e72ca){if(_0x5e72ca&&_0x5e72ca[_0x1ba0('0x48')]){for(var _0x3bf1f5=0x0,_0x3b2ca3=_0x5e72ca[_0x1ba0('0x48')];_0x3bf1f5<_0x3b2ca3&&_[_0x1ba0('0x6c')](_0x53fd4b['body']['internal']);_0x3bf1f5++){if(_0x3c6193<=_0x5e72ca[_0x3bf1f5][_0x1ba0('0x77')]){_0x53fd4b[_0x1ba0('0x60')]['internal']=_0x5e72ca[_0x3bf1f5][_0x1ba0('0x77')];}else if(_0x3c6193>_0x5e72ca[_0x3bf1f5][_0x1ba0('0x77')]&&_0x3c6193<=_0x5e72ca[_0x3bf1f5]['to']){_0x53fd4b[_0x1ba0('0x60')]['internal']=_0x3c6193;}}}if(_[_0x1ba0('0x6c')](_0x53fd4b[_0x1ba0('0x60')]['internal'])){_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x71')]=_0x839a15+0x1;}});}}});}})['then'](function(){if(_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x78')]){_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x79')]=_0x53fd4b['body']['internal'];_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x7a')]={'mailbox':_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x71')],'password':_0x53fd4b[_0x1ba0('0x60')]['password'],'fullname':_0x53fd4b['body'][_0x1ba0('0x7b')],'email':_0x53fd4b['body']['email']};}if(_0x53fd4b[_0x1ba0('0x60')]&&_0x53fd4b[_0x1ba0('0x60')]['role']===_0x1ba0('0x65')){_0x53fd4b[_0x1ba0('0x60')][_0x1ba0('0x7c')]=[_0x1ba0('0x7d'),_0x1ba0('0x7e'),'103',_0x1ba0('0x7f'),'104','105',_0x1ba0('0x80'),_0x1ba0('0x81'),'108',_0x1ba0('0x82'),_0x1ba0('0x83'),_0x1ba0('0x84')];}return db['User']['create'](_0x53fd4b[_0x1ba0('0x60')],{'include':[{'model':db[_0x1ba0('0x7a')],'as':_0x1ba0('0x7a')}]});})[_0x1ba0('0x20')](respondWithResult(_0x13a59e,0xc9))[_0x1ba0('0x2b')](handleError(_0x13a59e,null));};exports['changePassword']=function(_0x4aa96f,_0x31de34,_0x47f979){if(_0x4aa96f[_0x1ba0('0x60')]['id']){delete _0x4aa96f[_0x1ba0('0x60')]['id'];}return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x4aa96f[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](function(_0x182bbe){if(_0x182bbe){if(_0x182bbe['id']==_0x4aa96f[_0x1ba0('0x68')]['id']){if(!_0x4aa96f['body'][_0x1ba0('0x85')]||!_0x4aa96f[_0x1ba0('0x60')][_0x1ba0('0x86')]){throw new db[(_0x1ba0('0x87'))]['ValidationError'](_0x1ba0('0x88'));}if(!_0x182bbe[_0x1ba0('0x89')](_0x4aa96f[_0x1ba0('0x60')][_0x1ba0('0x85')])){throw new db['Sequelize'][(_0x1ba0('0x8a'))](_0x1ba0('0x8b'));}if(_0x4aa96f['body']['oldPassword']==_0x4aa96f[_0x1ba0('0x60')][_0x1ba0('0x86')]){throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))]('New\x20password\x20must\x20be\x20different\x20from\x20old\x20password');}return _0x182bbe;}else if(_0x4aa96f['user'][_0x1ba0('0x64')]=='admin'){if(!_0x4aa96f['body']['newPassword']){throw new db[(_0x1ba0('0x87'))]['ValidationError'](_0x1ba0('0x8c'));}return _0x182bbe;}else if(_0x4aa96f[_0x1ba0('0x68')][_0x1ba0('0x64')]==_0x1ba0('0x68')){if(!_0x4aa96f[_0x1ba0('0x60')][_0x1ba0('0x86')]){throw new db[(_0x1ba0('0x87'))]['ValidationError'](_0x1ba0('0x8c'));}if(_0x182bbe['role']!=_0x1ba0('0x65')){throw new db['Sequelize'][(_0x1ba0('0x8a'))]('Unauthorized');}return _0x182bbe;}else{throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))](_0x1ba0('0x8d'));}}return null;})[_0x1ba0('0x20')](handleEntityNotFound(_0x31de34,null))[_0x1ba0('0x20')](saveUpdates({'password':_0x4aa96f[_0x1ba0('0x60')][_0x1ba0('0x86')],'passwordResetAt':_0x4aa96f[_0x1ba0('0x68')]['id']==_0x4aa96f[_0x1ba0('0x5a')]['id']?moment():null},null))['then'](respondWithResult(_0x31de34,null))['catch'](handleError(_0x31de34,null));};exports['addQueues']=function(_0x5625ab,_0x42af98,_0x103fd2){var _0x5b0e40;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x5625ab[_0x1ba0('0x5a')]['id']},'attributes':['id',_0x1ba0('0x39'),_0x1ba0('0x64'),'loginInPause',_0x1ba0('0x8e'),_0x1ba0('0x8f')]})[_0x1ba0('0x20')](handleEntityNotFound(_0x42af98,null))[_0x1ba0('0x20')](function(_0x5288e7){if(_0x5288e7){_0x5b0e40=_0x5288e7;if(!utils[_0x1ba0('0x90')](_0x5625ab[_0x1ba0('0x60')]['channel'])){throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))](_0x1ba0('0x91'));}return _0x5288e7[_0x1ba0('0x4f')+_[_0x1ba0('0x92')](_0x5625ab['body'][_0x1ba0('0x93')]['toLowerCase']())+_0x1ba0('0x94')](_0x5625ab[_0x1ba0('0x60')][_0x1ba0('0x63')],{'penalty':_0x5625ab['body'][_0x1ba0('0x95')]||0x0});}})[_0x1ba0('0x96')](function(_0x4dc59c){for(var _0x25c756=0x0;_0x25c756<_0x5625ab['body']['ids'][_0x1ba0('0x48')];_0x25c756+=0x1){var _0x17b3e7={'UserId':_0x5625ab[_0x1ba0('0x5a')]['id']};_0x17b3e7[_[_0x1ba0('0x92')](_0x5625ab['body']['channel'][_0x1ba0('0x97')]())+'QueueId']=_0x5625ab['body'][_0x1ba0('0x63')][_0x25c756];socket['emit']('user'+_[_0x1ba0('0x92')](_0x5625ab[_0x1ba0('0x60')][_0x1ba0('0x93')]['toLowerCase']())+'Queue:save',_0x17b3e7);}return _0x4dc59c;})[_0x1ba0('0x20')](function(){if(_0x5625ab[_0x1ba0('0x60')]['channel']==='voice'){return db[_0x1ba0('0x98')][_0x1ba0('0x57')]({'where':{'id':_0x5625ab[_0x1ba0('0x60')][_0x1ba0('0x63')]||[]},'raw':!![],'attributes':['id',_0x1ba0('0x39')]});}})[_0x1ba0('0x20')](function(_0x50d0a7){var _0x38ad03=[];if(_0x5625ab[_0x1ba0('0x60')]['channel']===_0x1ba0('0x99')&&_0x5b0e40['role']===_0x1ba0('0x65')){for(var _0x5cfb05=0x0;_0x5cfb05<_0x50d0a7[_0x1ba0('0x48')];_0x5cfb05+=0x1){_0x38ad03[_0x1ba0('0x9a')]({'membername':_0x5b0e40[_0x1ba0('0x39')],'UserId':_0x5b0e40['id'],'queue_name':_0x50d0a7[_0x5cfb05]['name'],'VoiceQueueId':_0x50d0a7[_0x5cfb05]['id'],'interface':_[_0x1ba0('0x6c')](_0x5b0e40[_0x1ba0('0x8f')])?util[_0x1ba0('0x6e')](_0x1ba0('0x9b'),_0x5b0e40[_0x1ba0('0x39')]):_0x5b0e40[_0x1ba0('0x8f')],'paused':_0x5b0e40[_0x1ba0('0x8e')]||![],'penalty':_0x5625ab[_0x1ba0('0x60')][_0x1ba0('0x95')]||0x0});}return BPromise[_0x1ba0('0x9c')](_0x38ad03,function(_0x5b82a3){return db[_0x1ba0('0x9d')][_0x1ba0('0x9e')](_0x5b82a3);});}return _0x5b0e40;})[_0x1ba0('0x20')](respondWithStatusCode(_0x42af98,null))[_0x1ba0('0x2b')](handleError(_0x42af98,null));};exports[_0x1ba0('0x9f')]=function(_0x3b382e,_0x242b63,_0x31cb7b){var _0x56a472;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x3b382e[_0x1ba0('0x5a')]['id']},'attributes':['id',_0x1ba0('0x39'),_0x1ba0('0x64')]})[_0x1ba0('0x20')](handleEntityNotFound(_0x242b63,null))[_0x1ba0('0x20')](function(_0x4327c9){if(_0x4327c9){_0x56a472=_0x4327c9;if(!_0x3b382e[_0x1ba0('0x41')]['channel']||!utils[_0x1ba0('0x90')](_0x3b382e[_0x1ba0('0x41')][_0x1ba0('0x93')])){throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))]('Unknown\x20channel');}return _0x4327c9[_0x1ba0('0xa0')+_[_0x1ba0('0x92')](_0x3b382e[_0x1ba0('0x41')][_0x1ba0('0x93')][_0x1ba0('0x97')]())+_0x1ba0('0x94')](_0x3b382e[_0x1ba0('0x41')][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](function(_0x5b8593){for(var _0x55332b=0x0;_0x55332b<_0x3b382e[_0x1ba0('0x41')][_0x1ba0('0x63')]['length'];_0x55332b+=0x1){var _0x3dac6c={'UserId':_0x3b382e[_0x1ba0('0x5a')]['id']};_0x3dac6c[_[_0x1ba0('0x92')](_0x3b382e[_0x1ba0('0x41')][_0x1ba0('0x93')][_0x1ba0('0x97')]())+_0x1ba0('0xa1')]=_0x3b382e[_0x1ba0('0x41')]['ids'][_0x55332b];socket[_0x1ba0('0xa2')](_0x1ba0('0x68')+_[_0x1ba0('0x92')](_0x3b382e['query']['channel'][_0x1ba0('0x97')]())+_0x1ba0('0xa3'),_0x3dac6c);}return _0x5b8593;})[_0x1ba0('0x20')](function(){if(_0x3b382e['query'][_0x1ba0('0x93')]===_0x1ba0('0x99')){return db['UserVoiceQueueRt'][_0x1ba0('0x37')]({'where':{'UserId':_0x3b382e[_0x1ba0('0x5a')]['id'],'VoiceQueueId':_0x3b382e[_0x1ba0('0x41')]['ids']},'individualHooks':!![]})[_0x1ba0('0x20')](function(){return _0x56a472;});}return _0x56a472;})[_0x1ba0('0x20')](respondWithStatusCode(_0x242b63,null))[_0x1ba0('0x2b')](handleError(_0x242b63,null));};exports[_0x1ba0('0xa4')]=function(_0x120f6b,_0x4bfd2b,_0x384ca2){_0x120f6b['body']['userpic']=_0x120f6b[_0x1ba0('0xa5')][_0x1ba0('0xa6')];return db['User']['find']({'where':{'id':_0x120f6b[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x4bfd2b,null))[_0x1ba0('0x20')](saveUpdates(_0x120f6b['body'],null))[_0x1ba0('0x20')](respondWithResult(_0x4bfd2b,null))[_0x1ba0('0x2b')](handleError(_0x4bfd2b,null));};exports[_0x1ba0('0xa7')]=function(_0x518b51,_0x3938c8,_0x2fe19e){var _0x40ea00=path[_0x1ba0('0xa8')](config['root'],_0x1ba0('0xa9'));return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x518b51[_0x1ba0('0x5a')]['id']},'attributes':['id',_0x1ba0('0xaa')],'raw':!![]})[_0x1ba0('0x20')](handleEntityNotFound(_0x3938c8,null))[_0x1ba0('0x20')](function(_0x33c7f9){if(_0x33c7f9){if(_['isNil'](_0x33c7f9[_0x1ba0('0xaa')])){return _0x3938c8[_0x1ba0('0xab')](_0x40ea00);}else{if(!fs[_0x1ba0('0xac')](path[_0x1ba0('0xa8')](config['root'],_0x1ba0('0xad'),_0x33c7f9[_0x1ba0('0xaa')]))){return _0x3938c8[_0x1ba0('0xab')](_0x40ea00);}return _0x3938c8[_0x1ba0('0xab')](path['join'](config['root'],_0x1ba0('0xad'),_0x33c7f9[_0x1ba0('0xaa')]));}}})[_0x1ba0('0x2b')](handleError(_0x3938c8,null));};exports['getContacts']=function(_0x5d3146,_0x1d57da,_0xfc42a6){var _0x474429={};var _0x6df373={};var _0x52d66d;var _0x258903;return db['User'][_0x1ba0('0xae')]({'where':{'id':_0x5d3146['params']['id']}})['then'](handleEntityNotFound(_0x1d57da,null))[_0x1ba0('0x20')](function(_0x398bc4){if(_0x398bc4){_0x52d66d=_0x398bc4;_0x6df373[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db['CmContact'][_0x1ba0('0x5b')]);_0x6df373[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x5d3146['query']);_0x6df373[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x6df373[_0x1ba0('0x3d')],_0x6df373[_0x1ba0('0x41')]);_0x474429[_0x1ba0('0x46')]=_['intersection'](_0x6df373[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x5d3146[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x474429[_0x1ba0('0x46')]=_0x474429[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x474429[_0x1ba0('0x46')]:_0x6df373['model'];_0x474429['order']=qs[_0x1ba0('0x4c')](_0x5d3146[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x474429[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x5d3146[_0x1ba0('0x41')],_0x6df373[_0x1ba0('0x44')]));if(_0x5d3146[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x474429[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x474429[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x474429['attributes'],function(_0xdc07c0){var _0x29b7c2={};_0x29b7c2[_0xdc07c0]={'$like':'%'+_0x5d3146['query'][_0x1ba0('0x54')]+'%'};return _0x29b7c2;})});}_0x474429=_['merge']({},_0x474429,_0x5d3146[_0x1ba0('0x55')]);return _0x52d66d[_0x1ba0('0xb0')](_0x474429);}})[_0x1ba0('0x20')](function(_0x5861f3){if(_0x5861f3){_0x258903=_0x5861f3['length'];if(_0x5d3146['query'][_0x1ba0('0x49')]('includeAll')){_0x474429[_0x1ba0('0x56')]=[{'model':db['CmList'],'as':_0x1ba0('0xb1'),'required':![]},{'model':db[_0x1ba0('0xb2')],'as':_0x1ba0('0xb3'),'attributes':['id',_0x1ba0('0x39'),'color'],'where':_0x5d3146[_0x1ba0('0x41')]['tag']?{'id':_0x5d3146['query'][_0x1ba0('0xb4')]}:undefined,'required':_0x5d3146[_0x1ba0('0x41')][_0x1ba0('0xb4')]?!![]:![]}];}if(!_0x5d3146[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x474429[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x5d3146[_0x1ba0('0x41')]['limit']);_0x474429[_0x1ba0('0x31')]=qs['offset'](_0x5d3146[_0x1ba0('0x41')]['offset']);}return _0x52d66d[_0x1ba0('0xb0')](_0x474429);}})[_0x1ba0('0x20')](function(_0x5d5220){if(_0x5d5220){return _0x5d5220?{'count':_0x258903,'rows':_0x5d5220}:null;}})['then'](respondWithResult(_0x1d57da,null))[_0x1ba0('0x2b')](handleError(_0x1d57da,null));};exports[_0x1ba0('0xb5')]=function(_0x38a54d,_0x1cebeb,_0x36312f){var _0x5d10ec;var _0x127596;var _0x3bf496={};var _0x583fd7;return db['User'][_0x1ba0('0xae')]({'where':{'id':_0x38a54d[_0x1ba0('0x5a')]['id']},'attributes':['id',_0x1ba0('0x39'),_0x1ba0('0x64')]})[_0x1ba0('0x20')](handleEntityNotFound(_0x1cebeb,null))[_0x1ba0('0x20')](function(_0x4cf63e){if(!utils['isValidChannel'](_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x93')])){throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))](_0x1ba0('0x91'));}_0x5d10ec=_0x4cf63e;var _0x41da88={};_0x41da88[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_[_0x1ba0('0x92')](_0x38a54d['query'][_0x1ba0('0x93')])+_0x1ba0('0xb6')][_0x1ba0('0x5b')]);_0x41da88[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x38a54d[_0x1ba0('0x41')]);_0x41da88[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x41da88[_0x1ba0('0x3d')],_0x41da88[_0x1ba0('0x41')]);_0x3bf496['attributes']=_['intersection'](_0x41da88[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x38a54d['query'][_0x1ba0('0x47')]));_0x3bf496[_0x1ba0('0x46')]=_0x3bf496[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x3bf496[_0x1ba0('0x46')]:_0x41da88['model'];_0x3bf496['order']=qs[_0x1ba0('0x4c')](_0x38a54d[_0x1ba0('0x41')]['sort']);_0x3bf496[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_['pick'](_0x38a54d['query'],_0x41da88['filters']));if(_0x38a54d['query'][_0x1ba0('0x54')]){_0x3bf496[_0x1ba0('0x51')]=_['merge'](_0x3bf496[_0x1ba0('0x51')],{'$or':_['map'](_0x3bf496['attributes'],function(_0x17aa77){var _0x159368={};_0x159368[_0x17aa77]={'$like':'%'+_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x159368;})});}_0x3bf496=_[_0x1ba0('0x50')]({},_0x3bf496,_0x38a54d[_0x1ba0('0x55')]);switch(_0x5d10ec['role']){case _0x1ba0('0xb7'):return db[_[_0x1ba0('0x92')](_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x93')])+_0x1ba0('0xb6')][_0x1ba0('0x57')](_0x3bf496);case _0x1ba0('0x68'):case _0x1ba0('0x65'):return _0x5d10ec[_0x1ba0('0xb8')+_['capitalize'](_0x38a54d[_0x1ba0('0x41')]['channel'])+_0x1ba0('0x94')](_0x3bf496);default:throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))]('Unknown\x20role');}})[_0x1ba0('0x20')](function(_0x26a6c3){_0x583fd7=_0x26a6c3[_0x1ba0('0x48')];if(!_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x3bf496['limit']=qs['limit'](_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x3bf496['offset']=qs[_0x1ba0('0x31')](_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x31')]);}switch(_0x5d10ec[_0x1ba0('0x64')]){case _0x1ba0('0xb7'):return db[_[_0x1ba0('0x92')](_0x38a54d[_0x1ba0('0x41')][_0x1ba0('0x93')])+_0x1ba0('0xb6')][_0x1ba0('0x57')](_0x3bf496);case _0x1ba0('0x68'):case _0x1ba0('0x65'):return _0x5d10ec[_0x1ba0('0xb8')+_[_0x1ba0('0x92')](_0x38a54d['query'][_0x1ba0('0x93')])+_0x1ba0('0x94')](_0x3bf496);}})[_0x1ba0('0x20')](function(_0x316776){return{'count':_0x583fd7,'rows':_0x316776};})[_0x1ba0('0x20')](respondWithResult(_0x1cebeb,null))['catch'](handleError(_0x1cebeb,null));};exports[_0x1ba0('0xb9')]=function(_0xead4f4,_0x597c94,_0x1b2543){var _0x5a1d72={};var _0x2ba86c={};var _0x4b23f6;var _0x4bfbfd;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0xead4f4[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x597c94,null))['then'](function(_0x21534e){if(_0x21534e){_0x4b23f6=_0x21534e;_0x2ba86c['model']=_[_0x1ba0('0x3f')](db['UserVoiceQueueRt'][_0x1ba0('0x5b')]);_0x2ba86c[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0xead4f4[_0x1ba0('0x41')]);_0x2ba86c[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x2ba86c[_0x1ba0('0x3d')],_0x2ba86c[_0x1ba0('0x41')]);_0x5a1d72[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x2ba86c['model'],qs[_0x1ba0('0x47')](_0xead4f4['query'][_0x1ba0('0x47')]));_0x5a1d72[_0x1ba0('0x46')]=_0x5a1d72[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x5a1d72[_0x1ba0('0x46')]:_0x2ba86c[_0x1ba0('0x3d')];_0x5a1d72[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0xead4f4['query'][_0x1ba0('0x4c')]);_0x5a1d72[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_['pick'](_0xead4f4[_0x1ba0('0x41')],_0x2ba86c['filters']));if(_0xead4f4[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x5a1d72['where']=_[_0x1ba0('0x50')](_0x5a1d72[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x5a1d72[_0x1ba0('0x46')],function(_0x23c163){var _0x147540={};_0x147540[_0x23c163]={'$like':'%'+_0xead4f4['query']['filter']+'%'};return _0x147540;})});}_0x5a1d72=_[_0x1ba0('0x50')]({},_0x5a1d72,_0xead4f4['options']);return _0x4b23f6[_0x1ba0('0xb9')](_0x5a1d72);}})[_0x1ba0('0x20')](function(_0x48a65c){if(_0x48a65c){_0x4bfbfd=_0x48a65c[_0x1ba0('0x48')];if(!_0xead4f4[_0x1ba0('0x41')][_0x1ba0('0x49')]('nolimit')){_0x5a1d72[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0xead4f4[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x5a1d72[_0x1ba0('0x31')]=qs['offset'](_0xead4f4[_0x1ba0('0x41')]['offset']);}return _0x4b23f6[_0x1ba0('0xb9')](_0x5a1d72);}})[_0x1ba0('0x20')](function(_0x2b5b14){if(_0x2b5b14){return _0x2b5b14?{'count':_0x4bfbfd,'rows':_0x2b5b14}:null;}})['then'](respondWithResult(_0x597c94,null))[_0x1ba0('0x2b')](handleError(_0x597c94,null));};exports[_0x1ba0('0xba')]=function(_0x3537f9,_0x21a65e,_0xc76dca){var _0x5a6b0a={};var _0x21510a={};var _0x37c24d;var _0x5a7f56;return db['User']['findOne']({'where':{'id':_0x3537f9[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x21a65e,null))[_0x1ba0('0x20')](function(_0x244f9f){if(_0x244f9f){_0x37c24d=_0x244f9f;_0x21510a[_0x1ba0('0x3d')]=_['keys'](db[_0x1ba0('0xbb')][_0x1ba0('0x5b')]);_0x21510a['query']=_[_0x1ba0('0x3f')](_0x3537f9[_0x1ba0('0x41')]);_0x21510a['filters']=_[_0x1ba0('0x45')](_0x21510a[_0x1ba0('0x3d')],_0x21510a['query']);_0x5a6b0a[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x21510a[_0x1ba0('0x3d')],qs['fields'](_0x3537f9[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x5a6b0a[_0x1ba0('0x46')]=_0x5a6b0a['attributes'][_0x1ba0('0x48')]?_0x5a6b0a[_0x1ba0('0x46')]:_0x21510a[_0x1ba0('0x3d')];_0x5a6b0a[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x3537f9[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x5a6b0a[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x3537f9[_0x1ba0('0x41')],_0x21510a[_0x1ba0('0x44')]));if(_0x3537f9[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x5a6b0a[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x5a6b0a['where'],{'$or':_['map'](_0x5a6b0a[_0x1ba0('0x46')],function(_0x1e0f9f){var _0x4998ef={};_0x4998ef[_0x1e0f9f]={'$like':'%'+_0x3537f9[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x4998ef;})});}_0x5a6b0a=_['merge']({},_0x5a6b0a,_0x3537f9['options']);return _0x37c24d['getGroups'](_0x5a6b0a);}})['then'](function(_0x314fd8){if(_0x314fd8){_0x5a7f56=_0x314fd8[_0x1ba0('0x48')];if(!_0x3537f9[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x5a6b0a[_0x1ba0('0x32')]=qs['limit'](_0x3537f9['query'][_0x1ba0('0x32')]);_0x5a6b0a['offset']=qs[_0x1ba0('0x31')](_0x3537f9[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x37c24d[_0x1ba0('0xba')](_0x5a6b0a);}})[_0x1ba0('0x20')](function(_0x539db5){if(_0x539db5){return _0x539db5?{'count':_0x5a7f56,'rows':_0x539db5}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x21a65e,null))['catch'](handleError(_0x21a65e,null));};exports[_0x1ba0('0xbc')]=function(_0xe3c8e1,_0x281e6a,_0x202ba7){var _0x4d9be1={'raw':!![],'where':{}};var _0x1c9021={};var _0x17df97={'count':0x0,'rows':[]};return db['User'][_0x1ba0('0xae')]({'where':{'id':_0xe3c8e1[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x281e6a,null))[_0x1ba0('0x20')](function(_0x47df29){if(_0x47df29){_0x1c9021[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0xbd')][_0x1ba0('0x5b')]);_0x1c9021[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0xe3c8e1['query']);_0x1c9021[_0x1ba0('0x44')]=_['intersection'](_0x1c9021[_0x1ba0('0x3d')],_0x1c9021[_0x1ba0('0x41')]);_0x4d9be1[_0x1ba0('0x46')]=_['intersection'](_0x1c9021[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0xe3c8e1['query'][_0x1ba0('0x47')]));_0x4d9be1['attributes']=_0x4d9be1[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x4d9be1[_0x1ba0('0x46')]:_0x1c9021[_0x1ba0('0x3d')];if(!_0xe3c8e1['query']['hasOwnProperty'](_0x1ba0('0x4a'))){_0x4d9be1[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0xe3c8e1[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x4d9be1['offset']=qs['offset'](_0xe3c8e1[_0x1ba0('0x41')][_0x1ba0('0x31')]);}_0x4d9be1['order']=qs[_0x1ba0('0x4c')](_0xe3c8e1[_0x1ba0('0x41')]['sort']);_0x4d9be1[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0xe3c8e1[_0x1ba0('0x41')],_0x1c9021[_0x1ba0('0x44')]));_0x4d9be1[_0x1ba0('0x51')][_0x1ba0('0xbe')]=_0x47df29['id'];if(_0xe3c8e1[_0x1ba0('0x41')]['filter']){_0x4d9be1[_0x1ba0('0x51')]=_['merge'](_0x4d9be1[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x4d9be1[_0x1ba0('0x46')],function(_0x4fff6c){var _0x958d20={};_0x958d20[_0x4fff6c]={'$like':'%'+_0xe3c8e1[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x958d20;})});}_0x4d9be1=_['merge']({},_0x4d9be1,_0xe3c8e1[_0x1ba0('0x55')]);return db[_0x1ba0('0xbd')][_0x1ba0('0x30')]({'where':_0x4d9be1[_0x1ba0('0x51')]})[_0x1ba0('0x20')](function(_0x5bd4a6){_0x17df97[_0x1ba0('0x30')]=_0x5bd4a6;if(_0xe3c8e1[_0x1ba0('0x41')][_0x1ba0('0xbf')]){_0x4d9be1['include']=[{'all':!![]}];}return db['VoiceRecording'][_0x1ba0('0x57')](_0x4d9be1);})[_0x1ba0('0x20')](function(_0x10334b){_0x17df97[_0x1ba0('0x58')]=_0x10334b;return _0x17df97;});}})[_0x1ba0('0x20')](respondWithFilteredResult(_0x281e6a,_0x4d9be1))[_0x1ba0('0x2b')](handleError(_0x281e6a,null));};exports['getChatInteractions']=function(_0x56f958,_0x340d52,_0x445155){var _0x2089a8={};var _0x3a8158={};var _0x478103;var _0x36f2ed;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x56f958[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x340d52,null))[_0x1ba0('0x20')](function(_0x106e63){if(_0x106e63){_0x478103=_0x106e63;_0x3a8158[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db['ChatInteraction'][_0x1ba0('0x5b')]);_0x3a8158[_0x1ba0('0x41')]=_['keys'](_0x56f958[_0x1ba0('0x41')]);_0x3a8158[_0x1ba0('0x44')]=_['intersection'](_0x3a8158['model'],_0x3a8158[_0x1ba0('0x41')]);_0x2089a8[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x3a8158[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x56f958['query'][_0x1ba0('0x47')]));_0x2089a8[_0x1ba0('0x46')]=_0x2089a8[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x2089a8[_0x1ba0('0x46')]:_0x3a8158[_0x1ba0('0x3d')];_0x2089a8[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x56f958[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x2089a8[_0x1ba0('0x51')]=qs['filters'](_[_0x1ba0('0x4d')](_0x56f958[_0x1ba0('0x41')],_0x3a8158[_0x1ba0('0x44')]));if(_0x56f958[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x2089a8[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x2089a8['where'],{'$or':_['map'](_0x2089a8[_0x1ba0('0x46')],function(_0x8cf8e1){var _0x3b668f={};_0x3b668f[_0x8cf8e1]={'$like':'%'+_0x56f958[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x3b668f;})});}_0x2089a8=_[_0x1ba0('0x50')]({},_0x2089a8,_0x56f958[_0x1ba0('0x55')]);return _0x478103[_0x1ba0('0xc0')](_0x2089a8);}})[_0x1ba0('0x20')](function(_0x2fd903){if(_0x2fd903){_0x36f2ed=_0x2fd903[_0x1ba0('0x48')];if(!_0x56f958[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x2089a8[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x56f958['query']['limit']);_0x2089a8[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x56f958[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x478103[_0x1ba0('0xc0')](_0x2089a8);}})['then'](function(_0x43c51f){if(_0x43c51f){return _0x43c51f?{'count':_0x36f2ed,'rows':_0x43c51f}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x340d52,null))['catch'](handleError(_0x340d52,null));};exports[_0x1ba0('0xc1')]=function(_0x45ab2a,_0x3c7790,_0x464414){var _0x449c18={};var _0x4e6737={};var _0x28acd4;var _0x2d4fee;return db['User'][_0x1ba0('0xae')]({'where':{'id':_0x45ab2a['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x3c7790,null))[_0x1ba0('0x20')](function(_0x4a17e2){if(_0x4a17e2){_0x28acd4=_0x4a17e2;_0x4e6737['model']=_[_0x1ba0('0x3f')](db[_0x1ba0('0xc2')]['rawAttributes']);_0x4e6737['query']=_[_0x1ba0('0x3f')](_0x45ab2a[_0x1ba0('0x41')]);_0x4e6737[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x4e6737[_0x1ba0('0x3d')],_0x4e6737['query']);_0x449c18['attributes']=_['intersection'](_0x4e6737['model'],qs[_0x1ba0('0x47')](_0x45ab2a[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x449c18[_0x1ba0('0x46')]=_0x449c18[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x449c18[_0x1ba0('0x46')]:_0x4e6737[_0x1ba0('0x3d')];_0x449c18[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x45ab2a[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x449c18[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x45ab2a[_0x1ba0('0x41')],_0x4e6737['filters']));if(_0x45ab2a[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x449c18['where']=_[_0x1ba0('0x50')](_0x449c18[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x449c18[_0x1ba0('0x46')],function(_0xf07319){var _0x4248d6={};_0x4248d6[_0xf07319]={'$like':'%'+_0x45ab2a[_0x1ba0('0x41')]['filter']+'%'};return _0x4248d6;})});}_0x449c18=_['merge']({},_0x449c18,_0x45ab2a[_0x1ba0('0x55')]);return _0x28acd4['getOpenchannelInteractions'](_0x449c18);}})[_0x1ba0('0x20')](function(_0x392bbb){if(_0x392bbb){_0x2d4fee=_0x392bbb['length'];if(!_0x45ab2a[_0x1ba0('0x41')][_0x1ba0('0x49')]('nolimit')){_0x449c18[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x45ab2a[_0x1ba0('0x41')]['limit']);_0x449c18[_0x1ba0('0x31')]=qs['offset'](_0x45ab2a['query'][_0x1ba0('0x31')]);}return _0x28acd4[_0x1ba0('0xc1')](_0x449c18);}})[_0x1ba0('0x20')](function(_0x21bb05){if(_0x21bb05){return _0x21bb05?{'count':_0x2d4fee,'rows':_0x21bb05}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x3c7790,null))[_0x1ba0('0x2b')](handleError(_0x3c7790,null));};exports[_0x1ba0('0xc3')]=function(_0x2fdcea,_0x3e1c63,_0xe9d792){var _0x38033a={'raw':!![],'where':{}};var _0x4078ec={};var _0x197195={'count':0x0,'rows':[]};return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x2fdcea[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x3e1c63,null))['then'](function(_0x10d852){if(_0x10d852){_0x4078ec[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0xc4')]['rawAttributes']);_0x4078ec[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x2fdcea[_0x1ba0('0x41')]);_0x4078ec['filters']=_[_0x1ba0('0x45')](_0x4078ec[_0x1ba0('0x3d')],_0x4078ec['query']);_0x38033a['attributes']=_['intersection'](_0x4078ec['model'],qs[_0x1ba0('0x47')](_0x2fdcea[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x38033a[_0x1ba0('0x46')]=_0x38033a[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x38033a[_0x1ba0('0x46')]:_0x4078ec['model'];if(!_0x2fdcea['query'][_0x1ba0('0x49')]('nolimit')){_0x38033a[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x2fdcea[_0x1ba0('0x41')]['limit']);_0x38033a[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x2fdcea['query'][_0x1ba0('0x31')]);}_0x38033a['order']=qs[_0x1ba0('0x4c')](_0x2fdcea['query'][_0x1ba0('0x4c')]);_0x38033a[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x2fdcea[_0x1ba0('0x41')],_0x4078ec['filters']));_0x38033a[_0x1ba0('0x51')]['UserId']=_0x10d852['id'];if(_0x2fdcea['query'][_0x1ba0('0x54')]){_0x38033a[_0x1ba0('0x51')]=_['merge'](_0x38033a['where'],{'$or':_[_0x1ba0('0xaf')](_0x38033a['attributes'],function(_0x19ebee){var _0x2f9c56={};_0x2f9c56[_0x19ebee]={'$like':'%'+_0x2fdcea[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x2f9c56;})});}_0x38033a=_[_0x1ba0('0x50')]({},_0x38033a,_0x2fdcea[_0x1ba0('0x55')]);return db[_0x1ba0('0xc4')][_0x1ba0('0x30')]({'where':_0x38033a[_0x1ba0('0x51')]})['then'](function(_0x5a374a){_0x197195[_0x1ba0('0x30')]=_0x5a374a;if(_0x2fdcea[_0x1ba0('0x41')][_0x1ba0('0xbf')]){_0x38033a[_0x1ba0('0x56')]=[{'all':!![]}];}return db[_0x1ba0('0xc4')]['findAll'](_0x38033a);})[_0x1ba0('0x20')](function(_0x1cb2cb){_0x197195[_0x1ba0('0x58')]=_0x1cb2cb;return _0x197195;});}})[_0x1ba0('0x20')](respondWithFilteredResult(_0x3e1c63,_0x38033a))[_0x1ba0('0x2b')](handleError(_0x3e1c63,null));};exports[_0x1ba0('0xc5')]=function(_0x1a7ed9,_0x40b491,_0x5922d6){var _0xd59ad={};var _0xaf0219={};var _0xb59621;var _0x4eee49;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x1a7ed9[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x40b491,null))[_0x1ba0('0x20')](function(_0x1f138b){if(_0x1f138b){_0xb59621=_0x1f138b;_0xaf0219[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0xc6')][_0x1ba0('0x5b')]);_0xaf0219[_0x1ba0('0x41')]=_['keys'](_0x1a7ed9[_0x1ba0('0x41')]);_0xaf0219['filters']=_[_0x1ba0('0x45')](_0xaf0219[_0x1ba0('0x3d')],_0xaf0219['query']);_0xd59ad[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0xaf0219['model'],qs[_0x1ba0('0x47')](_0x1a7ed9[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0xd59ad[_0x1ba0('0x46')]=_0xd59ad[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0xd59ad[_0x1ba0('0x46')]:_0xaf0219[_0x1ba0('0x3d')];_0xd59ad[_0x1ba0('0x4b')]=qs['sort'](_0x1a7ed9['query'][_0x1ba0('0x4c')]);_0xd59ad['where']=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x1a7ed9['query'],_0xaf0219[_0x1ba0('0x44')]));if(_0x1a7ed9[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0xd59ad['where']=_[_0x1ba0('0x50')](_0xd59ad[_0x1ba0('0x51')],{'$or':_['map'](_0xd59ad['attributes'],function(_0x5a5ffc){var _0x5a512d={};_0x5a512d[_0x5a5ffc]={'$like':'%'+_0x1a7ed9[_0x1ba0('0x41')]['filter']+'%'};return _0x5a512d;})});}_0xd59ad=_[_0x1ba0('0x50')]({},_0xd59ad,_0x1a7ed9['options']);return _0xb59621[_0x1ba0('0xc5')](_0xd59ad);}})['then'](function(_0x2dd977){if(_0x2dd977){_0x4eee49=_0x2dd977[_0x1ba0('0x48')];if(!_0x1a7ed9[_0x1ba0('0x41')][_0x1ba0('0x49')]('nolimit')){_0xd59ad[_0x1ba0('0x32')]=qs['limit'](_0x1a7ed9[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0xd59ad[_0x1ba0('0x31')]=qs['offset'](_0x1a7ed9['query']['offset']);}return _0xb59621[_0x1ba0('0xc5')](_0xd59ad);}})[_0x1ba0('0x20')](function(_0x160a6b){if(_0x160a6b){return _0x160a6b?{'count':_0x4eee49,'rows':_0x160a6b}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x40b491,null))[_0x1ba0('0x2b')](handleError(_0x40b491,null));};exports[_0x1ba0('0xc7')]=function(_0x46665b,_0x4e3249,_0x253bc9){var _0x37494b={};var _0x2cc56d={};var _0x24f299;var _0x5c22f3;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x46665b[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x4e3249,null))[_0x1ba0('0x20')](function(_0x5cb815){if(_0x5cb815){_0x24f299=_0x5cb815;_0x2cc56d[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0xc8')][_0x1ba0('0x5b')]);_0x2cc56d[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x46665b['query']);_0x2cc56d[_0x1ba0('0x44')]=_['intersection'](_0x2cc56d[_0x1ba0('0x3d')],_0x2cc56d[_0x1ba0('0x41')]);_0x37494b[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x2cc56d[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x46665b[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x37494b[_0x1ba0('0x46')]=_0x37494b[_0x1ba0('0x46')]['length']?_0x37494b[_0x1ba0('0x46')]:_0x2cc56d[_0x1ba0('0x3d')];_0x37494b[_0x1ba0('0x4b')]=qs['sort'](_0x46665b[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x37494b[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x46665b[_0x1ba0('0x41')],_0x2cc56d['filters']));if(_0x46665b[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x37494b[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x37494b[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x37494b[_0x1ba0('0x46')],function(_0x49b5b0){var _0xd57298={};_0xd57298[_0x49b5b0]={'$like':'%'+_0x46665b[_0x1ba0('0x41')]['filter']+'%'};return _0xd57298;})});}_0x37494b=_['merge']({},_0x37494b,_0x46665b[_0x1ba0('0x55')]);return _0x24f299[_0x1ba0('0xc7')](_0x37494b);}})[_0x1ba0('0x20')](function(_0x34b0fb){if(_0x34b0fb){_0x5c22f3=_0x34b0fb[_0x1ba0('0x48')];if(!_0x46665b['query'][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x37494b[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x46665b[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x37494b[_0x1ba0('0x31')]=qs['offset'](_0x46665b['query'][_0x1ba0('0x31')]);}return _0x24f299[_0x1ba0('0xc7')](_0x37494b);}})[_0x1ba0('0x20')](function(_0x57ea75){if(_0x57ea75){return _0x57ea75?{'count':_0x5c22f3,'rows':_0x57ea75}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x4e3249,null))[_0x1ba0('0x2b')](handleError(_0x4e3249,null));};exports[_0x1ba0('0xc9')]=function(_0x4f32e6,_0xb00cf6,_0x7dde82){var _0x21ba8a;var _0x362d28;var _0x11bcdc;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x4f32e6['params']['id'],'role':_0x1ba0('0x65')},'attributes':['id',_0x1ba0('0x39'),_0x1ba0('0xca'),_0x1ba0('0xcb'),_0x1ba0('0x64'),_0x1ba0('0x71'),_0x1ba0('0xcc')]})[_0x1ba0('0x20')](handleEntityNotFound(_0xb00cf6,null))[_0x1ba0('0x20')](function(_0x3fa671){if(_0x3fa671){_0x21ba8a=_0x3fa671;if(_0x4f32e6[_0x1ba0('0x60')][_0x1ba0('0x8f')]){_0x11bcdc=util[_0x1ba0('0x6e')](_0x1ba0('0xcd'),_0x21ba8a[_0x4f32e6['body']['interface']]);}else if(_0x4f32e6[_0x1ba0('0x60')][_0x1ba0('0xce')]){_0x11bcdc=util[_0x1ba0('0x6e')](_0x1ba0('0x9b'),_0x4f32e6[_0x1ba0('0x60')][_0x1ba0('0xce')]);}else{_0x11bcdc=util[_0x1ba0('0x6e')]('SIP/%s',_0x21ba8a[_0x1ba0('0x39')]);}socket['to'](util[_0x1ba0('0x6e')](_0x1ba0('0xcf'),_0x21ba8a[_0x1ba0('0x39')]))['emit'](_0x1ba0('0xd0'),{'ip':_0x4f32e6[_0x1ba0('0xd1')][_0x1ba0('0xd2')]||_0x4f32e6['connection'][_0x1ba0('0xd3')]||_0x4f32e6['socket'][_0x1ba0('0xd3')]||_0x4f32e6[_0x1ba0('0xd4')][_0x1ba0('0xd5')][_0x1ba0('0xd3')]});return db[_0x1ba0('0x9d')]['destroy']({'where':{'membername':_0x21ba8a[_0x1ba0('0x39')]},'individualHooks':!![]});}})[_0x1ba0('0x20')](function(_0x152601){if(_0x21ba8a){return _0x21ba8a[_0x1ba0('0xd6')]({'raw':!![]});}})['then'](function(_0x52e891){var _0x48723d=[];if(_0x52e891){_0x362d28=_0x52e891;if(_0x362d28['length']){for(var _0x2762d7=0x0;_0x2762d7<_0x362d28[_0x1ba0('0x48')];_0x2762d7++){_0x48723d[_0x1ba0('0x9a')]({'membername':_0x21ba8a[_0x1ba0('0x39')],'UserId':_0x21ba8a['id'],'queue_name':_0x362d28[_0x2762d7]['name'],'VoiceQueueId':_0x362d28[_0x2762d7]['id'],'interface':_0x11bcdc,'paused':_0x21ba8a['loginInPause']||![],'penalty':_0x362d28[_0x2762d7]['UserVoiceQueue.penalty']||0x0});}return BPromise[_0x1ba0('0x9c')](_0x48723d,function(_0x3c3ee2){return db[_0x1ba0('0x9d')][_0x1ba0('0x9e')](_0x3c3ee2);});}}})[_0x1ba0('0x20')](function(){return db[_0x1ba0('0xd7')][_0x1ba0('0x57')]({'where':{'membername':_0x21ba8a[_0x1ba0('0x39')],'exitAt':null}});})['then'](function(_0x404b04){var _0x2c0be6=[];_0x404b04['forEach'](function(_0x223ac5){_0x2c0be6[_0x1ba0('0x9a')](_0x223ac5[_0x1ba0('0x5f')]({'exitAt':moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8'))}));});return BPromise['all'](_0x2c0be6);})[_0x1ba0('0x20')](function(){var _0x1c13b2=[];var _0x19dca1=[];var _0x198649=utils[_0x1ba0('0xd9')]();var _0x48e3b3={'membername':_0x21ba8a['name'],'interface':_0x11bcdc,'enterAt':moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8')),'role':_0x21ba8a[_0x1ba0('0x64')],'internal':_0x21ba8a[_0x1ba0('0x71')]};_0x198649['forEach'](function(_0x295b71){_0x1c13b2['push'](_['merge']({'channel':_0x295b71,'type':_0x1ba0('0xda'),'data1':_0x4f32e6[_0x1ba0('0x60')][_0x1ba0('0xdb')],'data2':_0x11bcdc},_0x48e3b3));if(_0x21ba8a['loginInPause']){_0x19dca1[_0x1ba0('0x9a')](_[_0x1ba0('0x50')]({'channel':_0x295b71,'type':_0x1ba0('0xdc'),'data1':_0x1ba0('0xdd')},_0x48e3b3));}});return db[_0x1ba0('0xd7')][_0x1ba0('0x5e')](_0x1c13b2[_0x1ba0('0xde')](_0x19dca1),{'individualHooks':!![]});})[_0x1ba0('0x20')](function(){return _0x21ba8a[_0x1ba0('0x5f')]({'online':!![],'lastLoginAt':moment()['format'](_0x1ba0('0xd8')),'voicePause':_0x21ba8a['loginInPause']||![],'mailPause':_0x21ba8a[_0x1ba0('0xcc')]||![],'chatPause':_0x21ba8a[_0x1ba0('0xcc')]||![],'faxPause':_0x21ba8a[_0x1ba0('0xcc')]||![],'smsPause':_0x21ba8a['loginInPause']||![],'openchannelPause':_0x21ba8a[_0x1ba0('0xcc')]||![],'pauseType':_0x21ba8a[_0x1ba0('0xcc')]?'LOGININPAUSE':null,'interface':_0x11bcdc,'lastPauseAt':moment()[_0x1ba0('0x6e')]('YYYY-MM-DD\x20HH:mm:ss')});})['then'](respondWithResult(_0xb00cf6,null))['catch'](handleError(_0xb00cf6,null));};exports[_0x1ba0('0xdf')]=function(_0x54878a,_0x1496c6,_0x3d855b){var _0x28b23f;return db['User'][_0x1ba0('0x5d')]({'where':{'id':_0x54878a[_0x1ba0('0x5a')]['id'],'role':_0x1ba0('0x65')},'attributes':['id',_0x1ba0('0x39'),_0x1ba0('0x64')]})['then'](handleEntityNotFound(_0x1496c6,null))[_0x1ba0('0x20')](function(_0x14a99d){if(_0x14a99d){_0x28b23f=_0x14a99d;return db[_0x1ba0('0x9d')][_0x1ba0('0x37')]({'where':{'membername':_0x28b23f[_0x1ba0('0x39')]},'individualHooks':!![]});}})[_0x1ba0('0x20')](function(){return db[_0x1ba0('0xd7')][_0x1ba0('0x57')]({'where':{'membername':_0x28b23f['name'],'exitAt':null}});})['then'](function(_0x36cb35){var _0x5e8151=[];_0x36cb35[_0x1ba0('0xe0')](function(_0x23cc0e){_0x5e8151[_0x1ba0('0x9a')](_0x23cc0e[_0x1ba0('0x5f')]({'exitAt':moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8'))}));});return BPromise[_0x1ba0('0xe1')](_0x5e8151);})[_0x1ba0('0x20')](function(){return _0x28b23f[_0x1ba0('0x5f')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'interface':null});})[_0x1ba0('0x20')](respondWithResult(_0x1496c6,null))['catch'](handleError(_0x1496c6,null));};exports[_0x1ba0('0xe2')]=function(_0x33bc9f,_0x57ef12,_0x4c0922){var _0x3c3d43;return db[_0x1ba0('0x9d')][_0x1ba0('0x5f')]({'paused':0x1},{'where':{'UserId':_0x33bc9f[_0x1ba0('0x5a')]['id']},'individualHooks':!![]})[_0x1ba0('0x20')](function(){return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x33bc9f[_0x1ba0('0x5a')]['id'],'role':'agent'},'attributes':['id',_0x1ba0('0x39'),'role',_0x1ba0('0x71'),_0x1ba0('0x8f')]});})[_0x1ba0('0x20')](handleEntityNotFound(_0x57ef12,null))['then'](function(_0x1c8d21){if(_0x1c8d21){_0x3c3d43=_0x1c8d21;return respondWithRpcPromise(_0x1ba0('0xe3'),_0x1ba0('0xe2'),{'id':_0x3c3d43['id'],'name':_0x3c3d43['name'],'pause':!![]});}})[_0x1ba0('0x20')](function(){if(_0x3c3d43){return db[_0x1ba0('0xd7')][_0x1ba0('0x57')]({'where':{'membername':_0x3c3d43[_0x1ba0('0x39')],'type':_0x1ba0('0xdc'),'exitAt':null}});}})['then'](function(_0x2be85d){if(_0x2be85d[_0x1ba0('0x48')]){var _0x3916d9=moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8'));for(var _0x5dc776=0x0,_0xcf7c8=_0x2be85d['length'];_0x5dc776<_0xcf7c8;_0x5dc776++){_0x2be85d[_0x5dc776][_0x1ba0('0xe4')]({'exitAt':_0x3916d9});}}})[_0x1ba0('0x20')](function(){var _0x4c8e7b=[];var _0x270a0f=utils[_0x1ba0('0xd9')]();_0x270a0f[_0x1ba0('0xe0')](function(_0x461655){_0x4c8e7b[_0x1ba0('0x9a')]({'channel':_0x461655,'membername':_0x3c3d43['name'],'interface':_[_0x1ba0('0x6c')](_0x3c3d43[_0x1ba0('0x8f')])?util[_0x1ba0('0x6e')]('SIP/%s',_0x3c3d43[_0x1ba0('0x39')]):_0x3c3d43[_0x1ba0('0x8f')],'type':_0x1ba0('0xdc'),'enterAt':moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8')),'data1':_0x33bc9f[_0x1ba0('0x60')][_0x1ba0('0xe5')]||_0x1ba0('0xe6'),'role':_0x3c3d43[_0x1ba0('0x64')],'internal':_0x3c3d43[_0x1ba0('0x71')]});});return db[_0x1ba0('0xd7')][_0x1ba0('0x5e')](_0x4c8e7b,{'individualHooks':!![]});})[_0x1ba0('0x20')](function(){return _0x3c3d43[_0x1ba0('0x5f')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x33bc9f['body'][_0x1ba0('0xe5')]||_0x1ba0('0xe6'),'lastPauseAt':moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8'))});})['then'](respondWithResult(_0x57ef12,null))[_0x1ba0('0x2b')](handleError(_0x57ef12,null));};exports[_0x1ba0('0xe7')]=function(_0x407974,_0x68fe87,_0x559548){var _0x59fc18;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x407974['params']['id']},'attributes':['id',_0x1ba0('0x39'),'role',_0x1ba0('0x8e'),'mailPause',_0x1ba0('0xe8'),'faxPause',_0x1ba0('0xe9'),_0x1ba0('0xea'),_0x1ba0('0xeb'),_0x1ba0('0xec')]})['then'](handleEntityNotFound(_0x68fe87,null))[_0x1ba0('0x20')](function(_0x3491bd){if(_0x3491bd){_0x59fc18=_0x3491bd;if(_0x407974[_0x1ba0('0x60')]['channel']&&!utils[_0x1ba0('0x90')](_0x407974[_0x1ba0('0x60')][_0x1ba0('0x93')])){throw new db[(_0x1ba0('0x87'))][(_0x1ba0('0x8a'))]('Unknown\x20channel');}switch(_0x407974[_0x1ba0('0x60')][_0x1ba0('0x93')]){case _0x1ba0('0x99'):return respondWithRpcPromise(_0x1ba0('0xe3'),'unpause',{'id':_0x59fc18['id'],'name':_0x59fc18['name'],'pause':![]})[_0x1ba0('0x20')](function(){return db[_0x1ba0('0x9d')][_0x1ba0('0x5f')]({'paused':0x0},{'where':{'UserId':_0x59fc18['id']},'individualHooks':!![]});})[_0x1ba0('0x20')](function(){return db['MemberReport']['find']({'where':{'channel':_0x407974[_0x1ba0('0x60')]['channel'],'membername':_0x59fc18[_0x1ba0('0x39')],'type':_0x1ba0('0xdc'),'exitAt':null}});})[_0x1ba0('0x20')](function(_0x56adc2){if(_0x56adc2){return _0x56adc2[_0x1ba0('0x5f')]({'exitAt':moment()['format'](_0x1ba0('0xd8')),'data2':_0x1ba0('0xed')},{'individualHooks':!![]});}return null;})[_0x1ba0('0x20')](function(){return _0x59fc18[_0x1ba0('0x5f')]({'voicePause':![]});});case _0x1ba0('0xee'):case _0x1ba0('0xef'):case _0x1ba0('0xf0'):case _0x1ba0('0xf1'):case'openchannel':return db[_0x1ba0('0xd7')]['find']({'where':{'channel':_0x407974[_0x1ba0('0x60')]['channel'],'membername':_0x59fc18['name'],'type':'PAUSE','exitAt':null}})[_0x1ba0('0x20')](function(_0x4d8870){if(_0x4d8870){return _0x4d8870['update']({'exitAt':moment()['format'](_0x1ba0('0xd8')),'data2':'manual'},{'individualHooks':!![]});}return null;})['then'](function(){var _0x3c66f4={};_[_0x1ba0('0x33')](_0x3c66f4,util[_0x1ba0('0x6e')](_0x1ba0('0xf2'),_0x407974[_0x1ba0('0x60')]['channel'],_0x1ba0('0xf3')),![]);return _0x59fc18[_0x1ba0('0x5f')](_0x3c66f4);});default:return respondWithRpcPromise(_0x1ba0('0xe3'),'unpause',{'id':_0x59fc18['id'],'name':_0x59fc18[_0x1ba0('0x39')],'pause':![]})[_0x1ba0('0x20')](function(){return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x59fc18['id']}});})[_0x1ba0('0x20')](function(){return db[_0x1ba0('0xd7')][_0x1ba0('0x57')]({'where':{'membername':_0x59fc18['name'],'type':_0x1ba0('0xdc'),'exitAt':null}});})[_0x1ba0('0x20')](function(_0x50fdb8){var _0x307aa7=[];_0x50fdb8['forEach'](function(_0x2f66d1){_0x307aa7[_0x1ba0('0x9a')](_0x2f66d1[_0x1ba0('0x5f')]({'exitAt':moment()[_0x1ba0('0x6e')](_0x1ba0('0xd8')),'data2':_0x1ba0('0xed')}));});return BPromise[_0x1ba0('0xe1')](_0x307aa7);})[_0x1ba0('0x20')](function(){return _0x59fc18[_0x1ba0('0x5f')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0x1ba0('0x20')](respondWithResult(_0x68fe87,null))[_0x1ba0('0x2b')](handleError(_0x68fe87,null));};exports[_0x1ba0('0xf4')]=function(_0x2a6681,_0x211e4b,_0x1de5ba){var _0xb86663={};var _0x44eff5={};var _0x2e46d9;var _0x28ed69;return db['User'][_0x1ba0('0xae')]({'where':{'id':_0x2a6681[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x211e4b,null))['then'](function(_0x129cf0){if(_0x129cf0){_0x2e46d9=_0x129cf0;_0x44eff5['model']=_[_0x1ba0('0x3f')](db[_0x1ba0('0xf5')][_0x1ba0('0x5b')]);_0x44eff5[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x2a6681[_0x1ba0('0x41')]);_0x44eff5[_0x1ba0('0x44')]=_['intersection'](_0x44eff5[_0x1ba0('0x3d')],_0x44eff5[_0x1ba0('0x41')]);_0xb86663[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x44eff5[_0x1ba0('0x3d')],qs['fields'](_0x2a6681['query']['fields']));_0xb86663[_0x1ba0('0x46')]=_0xb86663[_0x1ba0('0x46')]['length']?_0xb86663[_0x1ba0('0x46')]:_0x44eff5['model'];_0xb86663[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x2a6681['query'][_0x1ba0('0x4c')]);_0xb86663[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x2a6681['query'],_0x44eff5['filters']));if(_0x2a6681[_0x1ba0('0x41')]['filter']){_0xb86663[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0xb86663[_0x1ba0('0x51')],{'$or':_['map'](_0xb86663[_0x1ba0('0x46')],function(_0x3d31b2){var _0x4b4692={};_0x4b4692[_0x3d31b2]={'$like':'%'+_0x2a6681[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x4b4692;})});}_0xb86663=_[_0x1ba0('0x50')]({},_0xb86663,_0x2a6681['options']);return _0x2e46d9['getTeams'](_0xb86663);}})[_0x1ba0('0x20')](function(_0x50b2d5){if(_0x50b2d5){_0x28ed69=_0x50b2d5['length'];if(!_0x2a6681[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0xb86663['limit']=qs['limit'](_0x2a6681['query'][_0x1ba0('0x32')]);_0xb86663[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x2a6681['query'][_0x1ba0('0x31')]);}return _0x2e46d9[_0x1ba0('0xf4')](_0xb86663);}})[_0x1ba0('0x20')](function(_0x1849c2){if(_0x1849c2){return _0x1849c2?{'count':_0x28ed69,'rows':_0x1849c2}:null;}})['then'](respondWithResult(_0x211e4b,null))[_0x1ba0('0x2b')](handleError(_0x211e4b,null));};exports[_0x1ba0('0xf6')]=function(_0x417f2d,_0x444e46,_0x55eaf4){return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x417f2d[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x444e46,null))[_0x1ba0('0x20')](function(_0x534ac1){if(_0x534ac1){return _0x534ac1['addTeams'](_0x417f2d[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x417f2d[_0x1ba0('0x60')],['ids','id'])||{});}})[_0x1ba0('0x20')](respondWithResult(_0x444e46,null))['catch'](handleError(_0x444e46,null));};exports[_0x1ba0('0xf8')]=function(_0xf513e9,_0xa3c010,_0x165b79){var _0x295704;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0xf513e9[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0xa3c010,null))[_0x1ba0('0x20')](function(_0x1f09cc){if(_0x1f09cc){return _0x1f09cc[_0x1ba0('0xf8')](_0xf513e9[_0x1ba0('0x41')][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](respondWithStatusCode(_0xa3c010,null))[_0x1ba0('0x2b')](handleError(_0xa3c010,null));};exports['getLists']=function(_0x138fe2,_0x240bb4,_0x1c036f){var _0x5bcb9c={};var _0x28f687={};var _0x51099d;var _0x2b777e;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x138fe2[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x240bb4,null))[_0x1ba0('0x20')](function(_0x2db570){if(_0x2db570){_0x51099d=_0x2db570;_0x28f687[_0x1ba0('0x3d')]=_['keys'](db[_0x1ba0('0xf9')][_0x1ba0('0x5b')]);_0x28f687[_0x1ba0('0x41')]=_['keys'](_0x138fe2[_0x1ba0('0x41')]);_0x28f687[_0x1ba0('0x44')]=_['intersection'](_0x28f687[_0x1ba0('0x3d')],_0x28f687[_0x1ba0('0x41')]);_0x5bcb9c[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x28f687[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x138fe2[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x5bcb9c[_0x1ba0('0x46')]=_0x5bcb9c[_0x1ba0('0x46')]['length']?_0x5bcb9c[_0x1ba0('0x46')]:_0x28f687[_0x1ba0('0x3d')];_0x5bcb9c[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x138fe2['query'][_0x1ba0('0x4c')]);_0x5bcb9c[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x138fe2[_0x1ba0('0x41')],_0x28f687['filters']));if(_0x138fe2[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x5bcb9c[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x5bcb9c[_0x1ba0('0x51')],{'$or':_['map'](_0x5bcb9c[_0x1ba0('0x46')],function(_0x5d22ed){var _0x5e3ae7={};_0x5e3ae7[_0x5d22ed]={'$like':'%'+_0x138fe2[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x5e3ae7;})});}_0x5bcb9c=_[_0x1ba0('0x50')]({},_0x5bcb9c,_0x138fe2['options']);return _0x51099d[_0x1ba0('0xfa')](_0x5bcb9c);}})[_0x1ba0('0x20')](function(_0x186ead){if(_0x186ead){_0x2b777e=_0x186ead[_0x1ba0('0x48')];if(!_0x138fe2[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x5bcb9c[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x138fe2[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x5bcb9c[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x138fe2[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x51099d[_0x1ba0('0xfa')](_0x5bcb9c);}})[_0x1ba0('0x20')](function(_0x13a88b){if(_0x13a88b){return _0x13a88b?{'count':_0x2b777e,'rows':_0x13a88b}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x240bb4,null))['catch'](handleError(_0x240bb4,null));};exports[_0x1ba0('0xfb')]=function(_0x3967f8,_0x36026b,_0x18bd7e){var _0x374f87={};var _0x319703={};var _0x4e6dd0;var _0x2e4162;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x3967f8[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x36026b,null))[_0x1ba0('0x20')](function(_0xd3fc4){if(_0xd3fc4){_0x4e6dd0=_0xd3fc4;_0x319703['model']=_[_0x1ba0('0x3f')](db[_0x1ba0('0x3c')][_0x1ba0('0x5b')]);_0x319703[_0x1ba0('0x41')]=_['keys'](_0x3967f8[_0x1ba0('0x41')]);_0x319703[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x319703['model'],_0x319703[_0x1ba0('0x41')]);_0x374f87[_0x1ba0('0x46')]=_['intersection'](_0x319703[_0x1ba0('0x3d')],qs['fields'](_0x3967f8['query'][_0x1ba0('0x47')]));_0x374f87[_0x1ba0('0x46')]=_0x374f87[_0x1ba0('0x46')]['length']?_0x374f87[_0x1ba0('0x46')]:_0x319703[_0x1ba0('0x3d')];_0x374f87[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x3967f8[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x374f87[_0x1ba0('0x51')]=qs['filters'](_[_0x1ba0('0x4d')](_0x3967f8[_0x1ba0('0x41')],_0x319703['filters']));if(_0x3967f8[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x374f87['where']=_['merge'](_0x374f87[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x374f87[_0x1ba0('0x46')],function(_0x3bb8f7){var _0x415f25={};_0x415f25[_0x3bb8f7]={'$like':'%'+_0x3967f8['query'][_0x1ba0('0x54')]+'%'};return _0x415f25;})});}_0x374f87[_0x1ba0('0x3d')]=db[_0x1ba0('0x3c')];_0x374f87['as']=_0x1ba0('0xfc');_0x374f87=_[_0x1ba0('0x50')]({},_0x374f87,_0x3967f8['options']);return _0x4e6dd0['getVoiceQueues']({'include':[_0x374f87]});}})[_0x1ba0('0x20')](function(_0xfd5405){if(_0xfd5405){var _0x200575={},_0x203c47=[],_0x25a557=0x0;for(var _0x33e792=0x0;_0x33e792<_0xfd5405[_0x1ba0('0x48')];_0x33e792+=0x1){for(var _0x917e57=0x0,_0x5d7774;_0x917e57<_0xfd5405[_0x33e792][_0x1ba0('0xfc')][_0x1ba0('0x48')];_0x917e57+=0x1){_0x5d7774=_0xfd5405[_0x33e792]['Agents'][_0x917e57][_0x1ba0('0xb8')]({'plain':!![]});_0x200575[_0x5d7774['id']]=_0x5d7774;}}_0x200575=_['values'](_0x200575);for(var _0x1d082f=qs[_0x1ba0('0x31')](_0x3967f8[_0x1ba0('0x41')][_0x1ba0('0x31')]);_0x1d082f<_0x200575['length']&&_0x203c47['length']<qs['limit'](_0x3967f8[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x1d082f+=0x1){if(_0x200575[_0x1d082f]){_0x203c47['push'](_0x200575[_0x1d082f]);}}return{'count':_0x200575[_0x1ba0('0x48')],'rows':_0x203c47};}})['then'](respondWithResult(_0x36026b,null))[_0x1ba0('0x2b')](handleError(_0x36026b,null));};exports[_0x1ba0('0x37')]=function(_0x18d985,_0x5484f2){if(_0x18d985['user']['id']==_0x18d985[_0x1ba0('0x5a')]['id']){return _0x5484f2['status'](0x1f4)[_0x1ba0('0x3a')]({'message':'You\x20can\x27t\x20delete\x20yourself'});}return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x18d985[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x5484f2,null))[_0x1ba0('0x20')](removeEntity(_0x5484f2,null))['catch'](handleError(_0x5484f2,null));};exports[_0x1ba0('0xfd')]=function(_0x6bf3de,_0x4775b8,_0x233455){return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x6bf3de['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x4775b8,null))[_0x1ba0('0x20')](function(_0x12c5c1){if(_0x12c5c1){return _0x12c5c1[_0x1ba0('0xfd')](_0x6bf3de[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x6bf3de[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{})[_0x1ba0('0x96')](function(){for(var _0x103d41=0x0;_0x103d41<_0x6bf3de['body'][_0x1ba0('0x63')][_0x1ba0('0x48')];_0x103d41+=0x1){socket[_0x1ba0('0xa2')]('user_has_chat_interactions:save',{'ChatInteractionId':Number(_0x6bf3de[_0x1ba0('0x60')][_0x1ba0('0x63')][_0x103d41]),'UserId':Number(_0x6bf3de[_0x1ba0('0x5a')]['id'])});}return _0x6bf3de[_0x1ba0('0x60')]['ids'];});}})['then'](respondWithResult(_0x4775b8,null))[_0x1ba0('0x2b')](handleError(_0x4775b8,null));};exports['removeChatInteractions']=function(_0x9fed04,_0x3f8f98,_0x90610){var _0x4385ad;return db['User'][_0x1ba0('0x5d')]({'where':{'id':_0x9fed04[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x3f8f98,null))[_0x1ba0('0x20')](function(_0x3affbe){if(_0x3affbe){return _0x3affbe[_0x1ba0('0xfe')](_0x9fed04[_0x1ba0('0x41')][_0x1ba0('0x63')])[_0x1ba0('0x20')](function(_0x877612){if(_[_0x1ba0('0xff')](_0x9fed04[_0x1ba0('0x41')][_0x1ba0('0x63')])){for(var _0x2c7f36=0x0;_0x2c7f36<_0x9fed04['query'][_0x1ba0('0x63')][_0x1ba0('0x48')];_0x2c7f36+=0x1){socket[_0x1ba0('0xa2')](_0x1ba0('0x100'),{'ChatInteractionId':Number(_0x9fed04[_0x1ba0('0x41')][_0x1ba0('0x63')][_0x2c7f36]),'UserId':Number(_0x9fed04[_0x1ba0('0x5a')]['id'])});}}else{socket['emit'](_0x1ba0('0x100'),{'ChatInteractionId':Number(_0x9fed04[_0x1ba0('0x41')][_0x1ba0('0x63')]),'UserId':Number(_0x9fed04['params']['id'])});}});}})[_0x1ba0('0x20')](respondWithStatusCode(_0x3f8f98,null))[_0x1ba0('0x2b')](handleError(_0x3f8f98,null));};exports['addMailInteractions']=function(_0x703bae,_0x338ac5,_0xde6cff){return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x703bae['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x338ac5,null))[_0x1ba0('0x20')](function(_0x400b4b){if(_0x400b4b){return _0x400b4b[_0x1ba0('0x101')](_0x703bae['body'][_0x1ba0('0x63')],_['omit'](_0x703bae['body'],['ids','id'])||{})[_0x1ba0('0x96')](function(){for(var _0x373062=0x0;_0x373062<_0x703bae[_0x1ba0('0x60')][_0x1ba0('0x63')][_0x1ba0('0x48')];_0x373062+=0x1){socket[_0x1ba0('0xa2')](_0x1ba0('0x102'),{'MailInteractionId':Number(_0x703bae[_0x1ba0('0x60')][_0x1ba0('0x63')][_0x373062]),'UserId':Number(_0x703bae[_0x1ba0('0x5a')]['id'])});}return _0x703bae[_0x1ba0('0x60')][_0x1ba0('0x63')];});}})[_0x1ba0('0x20')](respondWithResult(_0x338ac5,null))['catch'](handleError(_0x338ac5,null));};exports['removeMailInteractions']=function(_0x155892,_0x42dd82,_0x405f94){var _0x4cc1da;return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x155892[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x42dd82,null))[_0x1ba0('0x20')](function(_0x53484e){if(_0x53484e){return _0x53484e[_0x1ba0('0x103')](_0x155892[_0x1ba0('0x41')][_0x1ba0('0x63')])[_0x1ba0('0x20')](function(_0x11967b){if(_[_0x1ba0('0xff')](_0x155892[_0x1ba0('0x41')][_0x1ba0('0x63')])){for(var _0x3b23b7=0x0;_0x3b23b7<_0x155892[_0x1ba0('0x41')]['ids'][_0x1ba0('0x48')];_0x3b23b7+=0x1){socket[_0x1ba0('0xa2')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x155892[_0x1ba0('0x41')][_0x1ba0('0x63')][_0x3b23b7]),'UserId':Number(_0x155892[_0x1ba0('0x5a')]['id'])});}}else{socket[_0x1ba0('0xa2')](_0x1ba0('0x104'),{'MailInteractionId':Number(_0x155892[_0x1ba0('0x41')][_0x1ba0('0x63')]),'UserId':Number(_0x155892['params']['id'])});}});}})[_0x1ba0('0x20')](respondWithStatusCode(_0x42dd82,null))[_0x1ba0('0x2b')](handleError(_0x42dd82,null));};exports['addFaxInteractions']=function(_0x1d4461,_0xa1d7b7,_0x56af9c){return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x1d4461['params']['id']}})['then'](handleEntityNotFound(_0xa1d7b7,null))['then'](function(_0x46c806){if(_0x46c806){return _0x46c806['addFaxInteractions'](_0x1d4461['body']['ids'],_['omit'](_0x1d4461['body'],[_0x1ba0('0x63'),'id'])||{})['spread'](function(){for(var _0xde2222=0x0;_0xde2222<_0x1d4461[_0x1ba0('0x60')][_0x1ba0('0x63')][_0x1ba0('0x48')];_0xde2222+=0x1){socket[_0x1ba0('0xa2')]('user_has_fax_interactions:save',{'FaxInteractionId':Number(_0x1d4461[_0x1ba0('0x60')]['ids'][_0xde2222]),'UserId':Number(_0x1d4461[_0x1ba0('0x5a')]['id'])});}return _0x1d4461[_0x1ba0('0x60')][_0x1ba0('0x63')];});}})['then'](respondWithResult(_0xa1d7b7,null))['catch'](handleError(_0xa1d7b7,null));};exports[_0x1ba0('0x105')]=function(_0xfe9af1,_0x577775,_0x5c0534){var _0x4abd31;return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0xfe9af1[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x577775,null))[_0x1ba0('0x20')](function(_0x4edeab){if(_0x4edeab){return _0x4edeab['removeFaxInteractions'](_0xfe9af1[_0x1ba0('0x41')]['ids'])[_0x1ba0('0x20')](function(_0x1acd13){if(_[_0x1ba0('0xff')](_0xfe9af1[_0x1ba0('0x41')]['ids'])){for(var _0xace4a5=0x0;_0xace4a5<_0xfe9af1[_0x1ba0('0x41')][_0x1ba0('0x63')]['length'];_0xace4a5+=0x1){socket['emit']('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0xfe9af1[_0x1ba0('0x41')][_0x1ba0('0x63')][_0xace4a5]),'UserId':Number(_0xfe9af1['params']['id'])});}}else{socket[_0x1ba0('0xa2')](_0x1ba0('0x106'),{'FaxInteractionId':Number(_0xfe9af1[_0x1ba0('0x41')][_0x1ba0('0x63')]),'UserId':Number(_0xfe9af1['params']['id'])});}});}})[_0x1ba0('0x20')](respondWithStatusCode(_0x577775,null))['catch'](handleError(_0x577775,null));};exports[_0x1ba0('0x107')]=function(_0x4e2744,_0x33e536,_0x20c3d0){return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x4e2744[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x33e536,null))[_0x1ba0('0x20')](function(_0x4f6b7a){if(_0x4f6b7a){return _0x4f6b7a[_0x1ba0('0x107')](_0x4e2744[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x4e2744[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{})['spread'](function(){for(var _0x3c45ee=0x0;_0x3c45ee<_0x4e2744[_0x1ba0('0x60')][_0x1ba0('0x63')]['length'];_0x3c45ee+=0x1){socket[_0x1ba0('0xa2')](_0x1ba0('0x108'),{'SmsInteractionId':Number(_0x4e2744[_0x1ba0('0x60')][_0x1ba0('0x63')][_0x3c45ee]),'UserId':Number(_0x4e2744['params']['id'])});}return _0x4e2744[_0x1ba0('0x60')][_0x1ba0('0x63')];});}})[_0x1ba0('0x20')](respondWithResult(_0x33e536,null))[_0x1ba0('0x2b')](handleError(_0x33e536,null));};exports[_0x1ba0('0x109')]=function(_0x2ebb96,_0x5940fa,_0x180922){var _0x111fb0;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x2ebb96[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x5940fa,null))['then'](function(_0x3ad244){if(_0x3ad244){return _0x3ad244[_0x1ba0('0x109')](_0x2ebb96[_0x1ba0('0x41')]['ids'])[_0x1ba0('0x20')](function(_0xa82d31){if(_[_0x1ba0('0xff')](_0x2ebb96[_0x1ba0('0x41')][_0x1ba0('0x63')])){for(var _0x54e7ef=0x0;_0x54e7ef<_0x2ebb96[_0x1ba0('0x41')][_0x1ba0('0x63')][_0x1ba0('0x48')];_0x54e7ef+=0x1){socket[_0x1ba0('0xa2')](_0x1ba0('0x10a'),{'SmsInteractionId':Number(_0x2ebb96[_0x1ba0('0x41')][_0x1ba0('0x63')][_0x54e7ef]),'UserId':Number(_0x2ebb96[_0x1ba0('0x5a')]['id'])});}}else{socket[_0x1ba0('0xa2')](_0x1ba0('0x10a'),{'SmsInteractionId':Number(_0x2ebb96[_0x1ba0('0x41')]['ids']),'UserId':Number(_0x2ebb96['params']['id'])});}});}})[_0x1ba0('0x20')](respondWithStatusCode(_0x5940fa,null))['catch'](handleError(_0x5940fa,null));};exports['addOpenchannelInteractions']=function(_0x415af4,_0x4ee519,_0xf27b83){return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x415af4['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x4ee519,null))[_0x1ba0('0x20')](function(_0x276033){if(_0x276033){return _0x276033[_0x1ba0('0x10b')](_0x415af4[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x415af4['body'],[_0x1ba0('0x63'),'id'])||{})[_0x1ba0('0x96')](function(){for(var _0xed4f75=0x0;_0xed4f75<_0x415af4[_0x1ba0('0x60')][_0x1ba0('0x63')]['length'];_0xed4f75+=0x1){socket[_0x1ba0('0xa2')](_0x1ba0('0x10c'),{'OpenchannelInteractionId':Number(_0x415af4[_0x1ba0('0x60')][_0x1ba0('0x63')][_0xed4f75]),'UserId':Number(_0x415af4[_0x1ba0('0x5a')]['id'])});}return _0x415af4[_0x1ba0('0x60')][_0x1ba0('0x63')];});}})[_0x1ba0('0x20')](respondWithResult(_0x4ee519,null))[_0x1ba0('0x2b')](handleError(_0x4ee519,null));};exports['removeOpenchannelInteractions']=function(_0x55503e,_0x117c77,_0xbf1d42){var _0x3b621b;return db['User'][_0x1ba0('0x5d')]({'where':{'id':_0x55503e['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x117c77,null))[_0x1ba0('0x20')](function(_0x3d88dc){if(_0x3d88dc){return _0x3d88dc[_0x1ba0('0x10d')](_0x55503e[_0x1ba0('0x41')][_0x1ba0('0x63')])[_0x1ba0('0x20')](function(_0x1c454a){if(_['isArray'](_0x55503e[_0x1ba0('0x41')][_0x1ba0('0x63')])){for(var _0xeb0bf=0x0;_0xeb0bf<_0x55503e[_0x1ba0('0x41')][_0x1ba0('0x63')][_0x1ba0('0x48')];_0xeb0bf+=0x1){socket[_0x1ba0('0xa2')](_0x1ba0('0x10e'),{'OpenchannelInteractionId':Number(_0x55503e['query'][_0x1ba0('0x63')][_0xeb0bf]),'UserId':Number(_0x55503e[_0x1ba0('0x5a')]['id'])});}}else{socket[_0x1ba0('0xa2')](_0x1ba0('0x10e'),{'OpenchannelInteractionId':Number(_0x55503e[_0x1ba0('0x41')][_0x1ba0('0x63')]),'UserId':Number(_0x55503e['params']['id'])});}});}})['then'](respondWithStatusCode(_0x117c77,null))[_0x1ba0('0x2b')](handleError(_0x117c77,null));};exports[_0x1ba0('0x10f')]=function(_0x75dbe5,_0x58544c,_0x2b3f7b){var _0x20cc72={};var _0x54fff7={};var _0x41feaa;var _0x4c3c70;return db[_0x1ba0('0x3c')]['findOne']({'where':{'id':_0x75dbe5['params']['id']}})['then'](handleEntityNotFound(_0x58544c,null))['then'](function(_0x2b2def){if(_0x2b2def){_0x41feaa=_0x2b2def;_0x54fff7[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0x110')]['rawAttributes']);_0x54fff7['query']=_['keys'](_0x75dbe5['query']);_0x54fff7[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x54fff7['model'],_0x54fff7['query']);_0x20cc72['attributes']=_[_0x1ba0('0x45')](_0x54fff7[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x75dbe5[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x20cc72[_0x1ba0('0x46')]=_0x20cc72[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x20cc72[_0x1ba0('0x46')]:_0x54fff7[_0x1ba0('0x3d')];_0x20cc72[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x75dbe5[_0x1ba0('0x41')]['sort']);_0x20cc72[_0x1ba0('0x51')]=qs['filters'](_['pick'](_0x75dbe5[_0x1ba0('0x41')],_0x54fff7['filters']));if(_0x75dbe5[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x20cc72[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x20cc72[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x20cc72[_0x1ba0('0x46')],function(_0x4b9012){var _0x280014={};_0x280014[_0x4b9012]={'$like':'%'+_0x75dbe5['query'][_0x1ba0('0x54')]+'%'};return _0x280014;})});}_0x20cc72=_[_0x1ba0('0x50')]({},_0x20cc72,_0x75dbe5[_0x1ba0('0x55')]);return _0x41feaa[_0x1ba0('0x10f')](_0x20cc72);}})[_0x1ba0('0x20')](function(_0x50254c){if(_0x50254c){_0x4c3c70=_0x50254c['length'];if(!_0x75dbe5[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x20cc72[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x75dbe5[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x20cc72[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x75dbe5[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x41feaa[_0x1ba0('0x10f')](_0x20cc72);}})[_0x1ba0('0x20')](function(_0x300406){if(_0x300406){return _0x300406?{'count':_0x4c3c70,'rows':_0x300406}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x58544c,null))[_0x1ba0('0x2b')](handleError(_0x58544c,null));};exports[_0x1ba0('0x111')]=function(_0x58061c,_0x3c73bd,_0x47f4be){var _0x46b3ef={};var _0xe09c0e={};var _0xf5f2e5;var _0x4dc8c9;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x58061c[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x3c73bd,null))[_0x1ba0('0x20')](function(_0x908076){if(_0x908076){_0xf5f2e5=_0x908076;_0xe09c0e['model']=_[_0x1ba0('0x3f')](db['FaxAccount'][_0x1ba0('0x5b')]);_0xe09c0e[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x58061c[_0x1ba0('0x41')]);_0xe09c0e[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0xe09c0e[_0x1ba0('0x3d')],_0xe09c0e[_0x1ba0('0x41')]);_0x46b3ef['attributes']=_[_0x1ba0('0x45')](_0xe09c0e[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x58061c[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x46b3ef[_0x1ba0('0x46')]=_0x46b3ef[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x46b3ef[_0x1ba0('0x46')]:_0xe09c0e[_0x1ba0('0x3d')];_0x46b3ef[_0x1ba0('0x4b')]=qs['sort'](_0x58061c[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x46b3ef[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x58061c[_0x1ba0('0x41')],_0xe09c0e[_0x1ba0('0x44')]));if(_0x58061c['query'][_0x1ba0('0x54')]){_0x46b3ef[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x46b3ef[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x46b3ef[_0x1ba0('0x46')],function(_0x2f1d68){var _0x3337e8={};_0x3337e8[_0x2f1d68]={'$like':'%'+_0x58061c[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x3337e8;})});}_0x46b3ef=_['merge']({},_0x46b3ef,_0x58061c[_0x1ba0('0x55')]);return _0xf5f2e5[_0x1ba0('0x111')](_0x46b3ef);}})[_0x1ba0('0x20')](function(_0x2fefbb){if(_0x2fefbb){_0x4dc8c9=_0x2fefbb[_0x1ba0('0x48')];if(!_0x58061c[_0x1ba0('0x41')]['hasOwnProperty']('nolimit')){_0x46b3ef[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x58061c[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x46b3ef[_0x1ba0('0x31')]=qs['offset'](_0x58061c['query']['offset']);}return _0xf5f2e5['getFaxAccounts'](_0x46b3ef);}})['then'](function(_0x2beeed){if(_0x2beeed){return _0x2beeed?{'count':_0x4dc8c9,'rows':_0x2beeed}:null;}})['then'](respondWithResult(_0x3c73bd,null))['catch'](handleError(_0x3c73bd,null));};exports['addFaxAccounts']=function(_0xb4bfc,_0x51adb2,_0x365576){return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0xb4bfc['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x51adb2,null))[_0x1ba0('0x20')](function(_0x31ff3e){if(_0x31ff3e){return _0x31ff3e[_0x1ba0('0x112')](_0xb4bfc[_0x1ba0('0x60')]['ids'],_[_0x1ba0('0xf7')](_0xb4bfc[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{});}})[_0x1ba0('0x20')](respondWithResult(_0x51adb2,null))[_0x1ba0('0x2b')](handleError(_0x51adb2,null));};exports[_0x1ba0('0x113')]=function(_0x14397a,_0x2f0733,_0xc94829){var _0x14d49c;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x14397a[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x2f0733,null))[_0x1ba0('0x20')](function(_0x253d61){if(_0x253d61){return _0x253d61[_0x1ba0('0x113')](_0x14397a[_0x1ba0('0x41')][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](respondWithStatusCode(_0x2f0733,null))[_0x1ba0('0x2b')](handleError(_0x2f0733,null));};exports[_0x1ba0('0x114')]=function(_0x2da54c,_0x55dea6,_0x4c9d8c){var _0x5ccf69={};var _0x575d26={};var _0x48a86f;var _0x11b3e7;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x2da54c[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x55dea6,null))[_0x1ba0('0x20')](function(_0x3fb732){if(_0x3fb732){_0x48a86f=_0x3fb732;_0x575d26[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db['MailAccount'][_0x1ba0('0x5b')]);_0x575d26[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x2da54c['query']);_0x575d26['filters']=_[_0x1ba0('0x45')](_0x575d26[_0x1ba0('0x3d')],_0x575d26[_0x1ba0('0x41')]);_0x5ccf69[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x575d26[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x2da54c[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x5ccf69[_0x1ba0('0x46')]=_0x5ccf69['attributes'][_0x1ba0('0x48')]?_0x5ccf69[_0x1ba0('0x46')]:_0x575d26[_0x1ba0('0x3d')];_0x5ccf69['order']=qs[_0x1ba0('0x4c')](_0x2da54c[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x5ccf69[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x2da54c[_0x1ba0('0x41')],_0x575d26[_0x1ba0('0x44')]));if(_0x2da54c[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x5ccf69['where']=_[_0x1ba0('0x50')](_0x5ccf69[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x5ccf69[_0x1ba0('0x46')],function(_0x392319){var _0x466a6b={};_0x466a6b[_0x392319]={'$like':'%'+_0x2da54c['query'][_0x1ba0('0x54')]+'%'};return _0x466a6b;})});}_0x5ccf69=_[_0x1ba0('0x50')]({},_0x5ccf69,_0x2da54c[_0x1ba0('0x55')]);return _0x48a86f['getMailAccounts'](_0x5ccf69);}})[_0x1ba0('0x20')](function(_0x42bea7){if(_0x42bea7){_0x11b3e7=_0x42bea7[_0x1ba0('0x48')];if(!_0x2da54c[_0x1ba0('0x41')]['hasOwnProperty'](_0x1ba0('0x4a'))){_0x5ccf69[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x2da54c['query'][_0x1ba0('0x32')]);_0x5ccf69['offset']=qs[_0x1ba0('0x31')](_0x2da54c[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x48a86f[_0x1ba0('0x114')](_0x5ccf69);}})[_0x1ba0('0x20')](function(_0x39179b){if(_0x39179b){return _0x39179b?{'count':_0x11b3e7,'rows':_0x39179b}:null;}})['then'](respondWithResult(_0x55dea6,null))['catch'](handleError(_0x55dea6,null));};exports[_0x1ba0('0x115')]=function(_0xeaeb6f,_0xaaa3a0,_0x4c9516){return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0xeaeb6f['params']['id']}})['then'](handleEntityNotFound(_0xaaa3a0,null))[_0x1ba0('0x20')](function(_0x5292a7){if(_0x5292a7){return _0x5292a7[_0x1ba0('0x115')](_0xeaeb6f[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0xeaeb6f[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{});}})['then'](respondWithResult(_0xaaa3a0,null))[_0x1ba0('0x2b')](handleError(_0xaaa3a0,null));};exports[_0x1ba0('0x116')]=function(_0x3d149d,_0x183127,_0xe66c10){var _0x16d5b5;return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x3d149d[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x183127,null))['then'](function(_0x1fa966){if(_0x1fa966){return _0x1fa966[_0x1ba0('0x116')](_0x3d149d['query'][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](respondWithStatusCode(_0x183127,null))[_0x1ba0('0x2b')](handleError(_0x183127,null));};exports[_0x1ba0('0x117')]=function(_0x295a58,_0x53829f,_0xf9ebcb){var _0x5c61e0={};var _0x26a020={};var _0x3a68a9;var _0x3b4a2d;return db['User'][_0x1ba0('0xae')]({'where':{'id':_0x295a58['params']['id']}})['then'](handleEntityNotFound(_0x53829f,null))['then'](function(_0x105de6){if(_0x105de6){_0x3a68a9=_0x105de6;_0x26a020['model']=_[_0x1ba0('0x3f')](db[_0x1ba0('0x118')]['rawAttributes']);_0x26a020['query']=_[_0x1ba0('0x3f')](_0x295a58[_0x1ba0('0x41')]);_0x26a020[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x26a020[_0x1ba0('0x3d')],_0x26a020['query']);_0x5c61e0[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x26a020[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x295a58[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x5c61e0[_0x1ba0('0x46')]=_0x5c61e0[_0x1ba0('0x46')]['length']?_0x5c61e0[_0x1ba0('0x46')]:_0x26a020[_0x1ba0('0x3d')];_0x5c61e0[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x295a58['query'][_0x1ba0('0x4c')]);_0x5c61e0['where']=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x295a58[_0x1ba0('0x41')],_0x26a020[_0x1ba0('0x44')]));if(_0x295a58[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x5c61e0['where']=_[_0x1ba0('0x50')](_0x5c61e0[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x5c61e0[_0x1ba0('0x46')],function(_0x5e5d83){var _0x475fd0={};_0x475fd0[_0x5e5d83]={'$like':'%'+_0x295a58[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x475fd0;})});}_0x5c61e0=_['merge']({},_0x5c61e0,_0x295a58['options']);return _0x3a68a9[_0x1ba0('0x117')](_0x5c61e0);}})[_0x1ba0('0x20')](function(_0x23749a){if(_0x23749a){_0x3b4a2d=_0x23749a[_0x1ba0('0x48')];if(!_0x295a58[_0x1ba0('0x41')][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x5c61e0[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x295a58['query'][_0x1ba0('0x32')]);_0x5c61e0[_0x1ba0('0x31')]=qs['offset'](_0x295a58[_0x1ba0('0x41')]['offset']);}return _0x3a68a9[_0x1ba0('0x117')](_0x5c61e0);}})[_0x1ba0('0x20')](function(_0x1ce38c){if(_0x1ce38c){return _0x1ce38c?{'count':_0x3b4a2d,'rows':_0x1ce38c}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x53829f,null))[_0x1ba0('0x2b')](handleError(_0x53829f,null));};exports['addOpenchannelAccounts']=function(_0x43c43f,_0x32050e,_0x48d739){return db[_0x1ba0('0x3c')]['find']({'where':{'id':_0x43c43f[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x32050e,null))[_0x1ba0('0x20')](function(_0x3ab2b9){if(_0x3ab2b9){return _0x3ab2b9[_0x1ba0('0x119')](_0x43c43f[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x43c43f[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{});}})['then'](respondWithResult(_0x32050e,null))[_0x1ba0('0x2b')](handleError(_0x32050e,null));};exports[_0x1ba0('0x11a')]=function(_0x307476,_0x13743d,_0x3e5622){var _0x555246;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x307476[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x13743d,null))[_0x1ba0('0x20')](function(_0x54eea1){if(_0x54eea1){return _0x54eea1[_0x1ba0('0x11a')](_0x307476[_0x1ba0('0x41')]['ids']);}})[_0x1ba0('0x20')](respondWithStatusCode(_0x13743d,null))[_0x1ba0('0x2b')](handleError(_0x13743d,null));};exports[_0x1ba0('0x11b')]=function(_0x175853,_0x1130d0,_0x48eeff){var _0x404c0c={};var _0x20d3d5={};var _0x3dc425;var _0x162034;return db[_0x1ba0('0x3c')]['findOne']({'where':{'id':_0x175853['params']['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x1130d0,null))[_0x1ba0('0x20')](function(_0x369754){if(_0x369754){_0x3dc425=_0x369754;_0x20d3d5[_0x1ba0('0x3d')]=_['keys'](db[_0x1ba0('0x11c')][_0x1ba0('0x5b')]);_0x20d3d5['query']=_[_0x1ba0('0x3f')](_0x175853[_0x1ba0('0x41')]);_0x20d3d5[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x20d3d5[_0x1ba0('0x3d')],_0x20d3d5[_0x1ba0('0x41')]);_0x404c0c[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x20d3d5[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x175853['query'][_0x1ba0('0x47')]));_0x404c0c[_0x1ba0('0x46')]=_0x404c0c[_0x1ba0('0x46')]['length']?_0x404c0c['attributes']:_0x20d3d5[_0x1ba0('0x3d')];_0x404c0c[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x175853[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x404c0c[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x175853[_0x1ba0('0x41')],_0x20d3d5[_0x1ba0('0x44')]));if(_0x175853[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x404c0c['where']=_[_0x1ba0('0x50')](_0x404c0c[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x404c0c[_0x1ba0('0x46')],function(_0x1607d6){var _0x514222={};_0x514222[_0x1607d6]={'$like':'%'+_0x175853[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x514222;})});}_0x404c0c=_[_0x1ba0('0x50')]({},_0x404c0c,_0x175853[_0x1ba0('0x55')]);return _0x3dc425[_0x1ba0('0x11b')](_0x404c0c);}})[_0x1ba0('0x20')](function(_0x474744){if(_0x474744){_0x162034=_0x474744[_0x1ba0('0x48')];if(!_0x175853['query'][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x404c0c[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x175853[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x404c0c['offset']=qs['offset'](_0x175853[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x3dc425[_0x1ba0('0x11b')](_0x404c0c);}})[_0x1ba0('0x20')](function(_0x30787c){if(_0x30787c){return _0x30787c?{'count':_0x162034,'rows':_0x30787c}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x1130d0,null))[_0x1ba0('0x2b')](handleError(_0x1130d0,null));};exports['addSmsAccounts']=function(_0x22f912,_0x5bc209,_0x5c86a0){return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x22f912[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x5bc209,null))[_0x1ba0('0x20')](function(_0xe2ede9){if(_0xe2ede9){return _0xe2ede9[_0x1ba0('0x11d')](_0x22f912['body']['ids'],_[_0x1ba0('0xf7')](_0x22f912[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{});}})['then'](respondWithResult(_0x5bc209,null))['catch'](handleError(_0x5bc209,null));};exports[_0x1ba0('0x11e')]=function(_0x62d01,_0x341704,_0x357e76){var _0x494838;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x62d01[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x341704,null))[_0x1ba0('0x20')](function(_0x41b7f8){if(_0x41b7f8){return _0x41b7f8['removeSmsAccounts'](_0x62d01[_0x1ba0('0x41')][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](respondWithStatusCode(_0x341704,null))['catch'](handleError(_0x341704,null));};exports[_0x1ba0('0x11f')]=function(_0x300b31,_0x113457,_0x4286bf){var _0x189dd3={};var _0xfdcae1={};var _0x253070;var _0x34bdbb;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x300b31[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x113457,null))[_0x1ba0('0x20')](function(_0x56155d){if(_0x56155d){_0x253070=_0x56155d;_0xfdcae1[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0x120')]['rawAttributes']);_0xfdcae1[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x300b31[_0x1ba0('0x41')]);_0xfdcae1['filters']=_[_0x1ba0('0x45')](_0xfdcae1[_0x1ba0('0x3d')],_0xfdcae1[_0x1ba0('0x41')]);_0x189dd3['attributes']=_[_0x1ba0('0x45')](_0xfdcae1['model'],qs[_0x1ba0('0x47')](_0x300b31[_0x1ba0('0x41')][_0x1ba0('0x47')]));_0x189dd3[_0x1ba0('0x46')]=_0x189dd3[_0x1ba0('0x46')]['length']?_0x189dd3[_0x1ba0('0x46')]:_0xfdcae1['model'];_0x189dd3['order']=qs[_0x1ba0('0x4c')](_0x300b31['query']['sort']);_0x189dd3[_0x1ba0('0x51')]=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x300b31['query'],_0xfdcae1[_0x1ba0('0x44')]));if(_0x300b31[_0x1ba0('0x41')][_0x1ba0('0x54')]){_0x189dd3[_0x1ba0('0x51')]=_[_0x1ba0('0x50')](_0x189dd3[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x189dd3[_0x1ba0('0x46')],function(_0x258e5d){var _0x50bcd4={};_0x50bcd4[_0x258e5d]={'$like':'%'+_0x300b31[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x50bcd4;})});}_0x189dd3=_[_0x1ba0('0x50')]({},_0x189dd3,_0x300b31[_0x1ba0('0x55')]);return _0x253070[_0x1ba0('0x11f')](_0x189dd3);}})[_0x1ba0('0x20')](function(_0x2df44a){if(_0x2df44a){_0x34bdbb=_0x2df44a['length'];if(!_0x300b31[_0x1ba0('0x41')]['hasOwnProperty'](_0x1ba0('0x4a'))){_0x189dd3['limit']=qs[_0x1ba0('0x32')](_0x300b31[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x189dd3[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x300b31[_0x1ba0('0x41')]['offset']);}return _0x253070[_0x1ba0('0x11f')](_0x189dd3);}})['then'](function(_0x3148de){if(_0x3148de){return _0x3148de?{'count':_0x34bdbb,'rows':_0x3148de}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x113457,null))['catch'](handleError(_0x113457,null));};exports[_0x1ba0('0x121')]=function(_0x539a22,_0x40bdb5,_0xf5b389){return db['User'][_0x1ba0('0x5d')]({'where':{'id':_0x539a22[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x40bdb5,null))[_0x1ba0('0x20')](function(_0x3dadab){if(_0x3dadab){return _0x3dadab[_0x1ba0('0x121')](_0x539a22[_0x1ba0('0x60')][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x539a22[_0x1ba0('0x60')],[_0x1ba0('0x63'),'id'])||{});}})[_0x1ba0('0x20')](respondWithResult(_0x40bdb5,null))[_0x1ba0('0x2b')](handleError(_0x40bdb5,null));};exports[_0x1ba0('0x122')]=function(_0x4bec8f,_0x3bc72a,_0x84490b){var _0x171514;return db[_0x1ba0('0x3c')][_0x1ba0('0x5d')]({'where':{'id':_0x4bec8f[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x3bc72a,null))[_0x1ba0('0x20')](function(_0x1a6f3a){if(_0x1a6f3a){return _0x1a6f3a[_0x1ba0('0x122')](_0x4bec8f[_0x1ba0('0x41')][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](respondWithStatusCode(_0x3bc72a,null))[_0x1ba0('0x2b')](handleError(_0x3bc72a,null));};exports[_0x1ba0('0x123')]=function(_0x5e5189,_0x5b70c4,_0x3e8119){var _0x4fb98e={};var _0x384623={};var _0x961643;var _0x26ba39;return db[_0x1ba0('0x3c')][_0x1ba0('0xae')]({'where':{'id':_0x5e5189[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x5b70c4,null))[_0x1ba0('0x20')](function(_0x55c3fd){if(_0x55c3fd){_0x961643=_0x55c3fd;_0x384623[_0x1ba0('0x3d')]=_[_0x1ba0('0x3f')](db[_0x1ba0('0x124')][_0x1ba0('0x5b')]);_0x384623['query']=_['keys'](_0x5e5189['query']);_0x384623['filters']=_[_0x1ba0('0x45')](_0x384623['model'],_0x384623[_0x1ba0('0x41')]);_0x4fb98e[_0x1ba0('0x46')]=_['intersection'](_0x384623[_0x1ba0('0x3d')],qs[_0x1ba0('0x47')](_0x5e5189['query'][_0x1ba0('0x47')]));_0x4fb98e[_0x1ba0('0x46')]=_0x4fb98e['attributes'][_0x1ba0('0x48')]?_0x4fb98e['attributes']:_0x384623['model'];_0x4fb98e[_0x1ba0('0x4b')]=qs['sort'](_0x5e5189[_0x1ba0('0x41')]['sort']);_0x4fb98e['where']=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x5e5189[_0x1ba0('0x41')],_0x384623[_0x1ba0('0x44')]));if(_0x5e5189[_0x1ba0('0x41')]['filter']){_0x4fb98e['where']=_[_0x1ba0('0x50')](_0x4fb98e[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x4fb98e['attributes'],function(_0x399496){var _0xdf3339={};_0xdf3339[_0x399496]={'$like':'%'+_0x5e5189['query'][_0x1ba0('0x54')]+'%'};return _0xdf3339;})});}_0x4fb98e=_['merge']({},_0x4fb98e,_0x5e5189[_0x1ba0('0x55')]);return _0x961643[_0x1ba0('0x123')](_0x4fb98e);}})[_0x1ba0('0x20')](function(_0x354aed){if(_0x354aed){_0x26ba39=_0x354aed[_0x1ba0('0x48')];if(!_0x5e5189[_0x1ba0('0x41')]['hasOwnProperty'](_0x1ba0('0x4a'))){_0x4fb98e[_0x1ba0('0x32')]=qs['limit'](_0x5e5189[_0x1ba0('0x41')][_0x1ba0('0x32')]);_0x4fb98e[_0x1ba0('0x31')]=qs['offset'](_0x5e5189[_0x1ba0('0x41')][_0x1ba0('0x31')]);}return _0x961643[_0x1ba0('0x123')](_0x4fb98e);}})[_0x1ba0('0x20')](function(_0x6295c7){if(_0x6295c7){return _0x6295c7?{'count':_0x26ba39,'rows':_0x6295c7}:null;}})[_0x1ba0('0x20')](respondWithResult(_0x5b70c4,null))['catch'](handleError(_0x5b70c4,null));};exports[_0x1ba0('0x125')]=function(_0x46e90e,_0x3f9ad9,_0x10e2a0){return db['User']['find']({'where':{'id':_0x46e90e[_0x1ba0('0x5a')]['id']}})['then'](handleEntityNotFound(_0x3f9ad9,null))[_0x1ba0('0x20')](function(_0x549399){if(_0x549399){return _0x549399[_0x1ba0('0x125')](_0x46e90e['body'][_0x1ba0('0x63')],_[_0x1ba0('0xf7')](_0x46e90e['body'],[_0x1ba0('0x63'),'id'])||{});}})[_0x1ba0('0x20')](respondWithResult(_0x3f9ad9,null))[_0x1ba0('0x2b')](handleError(_0x3f9ad9,null));};exports['removeSquareProjects']=function(_0x2efd5d,_0x1433cd,_0x4f4d48){var _0x3b61da;return db['User'][_0x1ba0('0x5d')]({'where':{'id':_0x2efd5d[_0x1ba0('0x5a')]['id']}})[_0x1ba0('0x20')](handleEntityNotFound(_0x1433cd,null))['then'](function(_0x48012c){if(_0x48012c){return _0x48012c[_0x1ba0('0x126')](_0x2efd5d['query'][_0x1ba0('0x63')]);}})[_0x1ba0('0x20')](respondWithStatusCode(_0x1433cd,null))[_0x1ba0('0x2b')](handleError(_0x1433cd,null));};exports[_0x1ba0('0x127')]=function(_0x1c0f57,_0x157ecd){var _0x117e13={},_0x2b40cb={},_0x246102={'count':0x0,'rows':[]};var _0x2c62d0=db['CmHopper']['rawAttributes'];_0x2b40cb['model']=_[_0x1ba0('0x3f')](_0x2c62d0);var _0xa227b1={'dateStart':_0x1c0f57[_0x1ba0('0x41')]['dateStart'],'dateEnd':_0x1c0f57[_0x1ba0('0x41')]['dateEnd']};delete _0x1c0f57['query'][_0x1ba0('0x43')];delete _0x1c0f57['query']['dateEnd'];_0x2b40cb[_0x1ba0('0x41')]=_[_0x1ba0('0x3f')](_0x1c0f57['query']);_0x2b40cb[_0x1ba0('0x44')]=_[_0x1ba0('0x45')](_0x2b40cb[_0x1ba0('0x3d')],_0x2b40cb[_0x1ba0('0x41')]);_0x2b40cb[_0x1ba0('0x44')]=_['concat'](_0x2b40cb[_0x1ba0('0x44')],[_0x1ba0('0x128'),_0x1ba0('0x129'),'$gt',_0x1ba0('0x12a'),_0x1ba0('0x12b'),_0x1ba0('0x12c'),'$ne',_0x1ba0('0x12d'),_0x1ba0('0x12e'),_0x1ba0('0x12f'),_0x1ba0('0x130'),_0x1ba0('0x131'),_0x1ba0('0x132'),_0x1ba0('0x133'),_0x1ba0('0x134'),_0x1ba0('0x135'),'$notILike',_0x1ba0('0x133'),_0x1ba0('0x136'),'$contains',_0x1ba0('0x137'),_0x1ba0('0x138')]);_0x117e13[_0x1ba0('0x46')]=_[_0x1ba0('0x45')](_0x2b40cb['model'],qs[_0x1ba0('0x47')](_0x1c0f57[_0x1ba0('0x41')]['fields']));_0x117e13['attributes']=_0x117e13[_0x1ba0('0x46')][_0x1ba0('0x48')]?_0x117e13[_0x1ba0('0x46')]:_0x2b40cb['model'];if(!_0x1c0f57['query'][_0x1ba0('0x49')](_0x1ba0('0x4a'))){_0x117e13[_0x1ba0('0x32')]=qs[_0x1ba0('0x32')](_0x1c0f57[_0x1ba0('0x41')]['limit']);_0x117e13[_0x1ba0('0x31')]=qs[_0x1ba0('0x31')](_0x1c0f57['query'][_0x1ba0('0x31')]);}_0x117e13[_0x1ba0('0x4b')]=qs[_0x1ba0('0x4c')](_0x1c0f57[_0x1ba0('0x41')][_0x1ba0('0x4c')]);_0x117e13['where']=qs[_0x1ba0('0x44')](_[_0x1ba0('0x4d')](_0x1c0f57['query'],_0x2b40cb[_0x1ba0('0x44')]));if(_0xa227b1[_0x1ba0('0x43')]){if(_0xa227b1[_0x1ba0('0x42')]){_0xa227b1[_0x1ba0('0x42')]=moment(_0xa227b1['dateEnd'])[_0x1ba0('0x4f')](0x1,_0x1ba0('0x4e'));}else{_0xa227b1[_0x1ba0('0x42')]=moment(_0xa227b1[_0x1ba0('0x43')])[_0x1ba0('0x4f')](0x1,_0x1ba0('0x4e'));}_[_0x1ba0('0x50')](_0x117e13[_0x1ba0('0x51')],{'scheduledat':{'$gte':_0xa227b1[_0x1ba0('0x43')],'$lte':_0xa227b1[_0x1ba0('0x42')]}});}if(_0x1c0f57['query'][_0x1ba0('0x54')]){_0x117e13[_0x1ba0('0x51')]=_['merge'](_0x117e13[_0x1ba0('0x51')],{'$or':_[_0x1ba0('0xaf')](_0x117e13[_0x1ba0('0x46')],function(_0x3aa193){var _0x3cb4f2={};_0x3cb4f2[_0x3aa193]={'$like':'%'+_0x1c0f57[_0x1ba0('0x41')][_0x1ba0('0x54')]+'%'};return _0x3cb4f2;})});}_0x117e13['where']={'$and':[_0x117e13[_0x1ba0('0x51')],{'$or':[{'UserId':_0x1c0f57[_0x1ba0('0x5a')]['id']},{'OwnerId':_0x1c0f57[_0x1ba0('0x5a')]['id']}]}]};_0x117e13=_[_0x1ba0('0x50')]({},_0x117e13,_0x1c0f57[_0x1ba0('0x55')]);var _0x18af86={'where':_0x117e13[_0x1ba0('0x51')]};return db[_0x1ba0('0x139')]['count'](_0x18af86)[_0x1ba0('0x20')](function(_0x20f8d2){_0x246102[_0x1ba0('0x30')]=_0x20f8d2;if(_0x1c0f57[_0x1ba0('0x41')][_0x1ba0('0xbf')]){_0x117e13[_0x1ba0('0x56')]=[{'attributes':['id','firstName',_0x1ba0('0x13a'),_0x1ba0('0xca')],'model':db[_0x1ba0('0x13b')],'as':'Contact'},{'attributes':['id',_0x1ba0('0x39'),_0x1ba0('0x13c')],'model':db[_0x1ba0('0x98')],'as':_0x1ba0('0xb6')}];}return db['CmHopper']['findAll'](_0x117e13);})[_0x1ba0('0x20')](function(_0x1d9fe1){_0x246102[_0x1ba0('0x58')]=_0x1d9fe1;return _0x246102;})[_0x1ba0('0x20')](respondWithFilteredResult(_0x157ecd,_0x117e13))[_0x1ba0('0x2b')](handleError(_0x157ecd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabce=['events','../../mysqldb','User','setMaxListeners','save','emit','hook'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xabce,0x103));var _0xeabc=function(_0x257642,_0x270a80){_0x257642=_0x257642-0x0;var _0x3d813b=_0xabce[_0x257642];return _0x3d813b;};'use strict';var EventEmitter=require(_0xeabc('0x0'));var User=require(_0xeabc('0x1'))['db'][_0xeabc('0x2')];var UserEvents=new EventEmitter();UserEvents[_0xeabc('0x3')](0x0);var events={'afterCreate':_0xeabc('0x4'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x2e01eb){return function(_0x1d9f37,_0x1a88a7,_0x5e9e2d){UserEvents['emit'](_0x2e01eb+':'+_0x1d9f37['id'],_0x1d9f37);UserEvents[_0xeabc('0x5')](_0x2e01eb,_0x1d9f37);_0x5e9e2d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];User[_0xeabc('0x6')](e,emitEvent(event));}}module['exports']=UserEvents;
\ No newline at end of file
+var _0x2ef3=['setMaxListeners','save','update','emit','hook','exports','events','../../mysqldb','User'];(function(_0x18baf4,_0x33086b){var _0x278ed1=function(_0x3ea0a2){while(--_0x3ea0a2){_0x18baf4['push'](_0x18baf4['shift']());}};_0x278ed1(++_0x33086b);}(_0x2ef3,0xba));var _0x32ef=function(_0x2a84a2,_0x365c9a){_0x2a84a2=_0x2a84a2-0x0;var _0x4af666=_0x2ef3[_0x2a84a2];return _0x4af666;};'use strict';var EventEmitter=require(_0x32ef('0x0'));var User=require(_0x32ef('0x1'))['db'][_0x32ef('0x2')];var UserEvents=new EventEmitter();UserEvents[_0x32ef('0x3')](0x0);var events={'afterCreate':_0x32ef('0x4'),'afterUpdate':_0x32ef('0x5'),'afterDestroy':'remove'};function emitEvent(_0x38f865){return function(_0x38b7f3,_0x524ab6,_0x402857){UserEvents[_0x32ef('0x6')](_0x38f865+':'+_0x38b7f3['id'],_0x38b7f3);UserEvents['emit'](_0x38f865,_0x38b7f3);_0x402857(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];User[_0x32ef('0x7')](e,emitEvent(event));}}module[_0x32ef('0x8')]=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['findAll','internal','concat','catch','exports','define','User','users','utf8','utf8_bin','updateMd5Password','changed','updatePassword','bulkCreate','chanspy','then','VoiceExtension','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','toString','salt','base64','sha1','pbkdf2','indexOf','Invalid\x20password','makeSalt','md5secret','bluebird','crypto','util','./user.attributes','length','context','from-sip','system','format','%s%s','prefix','record','push','merge','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','wav','gsm','Set','CDR(type)=internal','extensionMonitor','includes','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','Hangup','priority','defaults'];(function(_0x1e1ded,_0x432491){var _0x5302e2=function(_0x30e064){while(--_0x30e064){_0x1e1ded['push'](_0x1e1ded['shift']());}};_0x5302e2(++_0x432491);}(_0xa9e0,0x123));var _0x0a9e=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0xa9e0[_0x43d11d];return _0x38cd08;};'use strict';var BPromise=require(_0x0a9e('0x0'));var crypto=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var md5=require('md5');var _=require('lodash');var attributes=require(_0x0a9e('0x3'));var authTypes=['google'];var validatePresenceOf=function(_0x333808){return _0x333808&&_0x333808[_0x0a9e('0x4')];};var getChanSpyApplications=function(_0x2ab90b,_0x991246,_0x981158){var _0x57b080={'context':_0x2ab90b[_0x0a9e('0x5')]||_0x0a9e('0x6'),'type':_0x0a9e('0x7'),'isApp':![],'UserId':_0x2ab90b['id']};var _0x5f41ea=[];for(var _0x503809=0x0,_0xe42b77=0x1;_0x503809<_0x981158['length'];_0x503809++,_0xe42b77=0x1){var _0x52cace={'exten':util[_0x0a9e('0x8')](_0x0a9e('0x9'),_0x981158[_0x503809][_0x0a9e('0xa')],_0x991246),'ChanSpyId':_0x981158[_0x503809]['id']};if(_0x981158[_0x503809][_0x0a9e('0xb')]){_0x5f41ea[_0x0a9e('0xc')](_[_0x0a9e('0xd')]({'app':'MixMonitor','appdata':util['format']('${UNIQUEID}.%s,ab',_0x981158[_0x503809]['recordingFormat']),'priority':_0xe42b77++},_0x57b080,_0x52cace));}if(_0x981158[_0x503809][_0x0a9e('0xe')]){_0x5f41ea[_0x0a9e('0xc')](_[_0x0a9e('0xd')]({'app':_0x0a9e('0xf'),'appdata':_0x981158[_0x503809][_0x0a9e('0x10')],'priority':_0xe42b77++},_0x57b080,_0x52cace));}_0x5f41ea[_0x0a9e('0xc')](_['merge']({'app':_0x0a9e('0x11'),'appdata':util[_0x0a9e('0x8')](_0x0a9e('0x12'),_0x2ab90b[_0x0a9e('0x13')],_0x981158[_0x503809][_0x0a9e('0x14')]?_0x981158[_0x503809][_0x0a9e('0x14')]['join'](''):''),'priority':_0xe42b77++},_0x57b080,_0x52cace));if(_0x981158[_0x503809][_0x0a9e('0xb')]){_0x5f41ea['push'](_[_0x0a9e('0xd')]({'app':'StopMixMonitor','priority':_0xe42b77++},_0x57b080,_0x52cace));}}return _0x5f41ea;};var getUserApplications=function(_0x16033c,_0x12066b){var _0x48f32d=[_0x0a9e('0x15'),'WAV',_0x0a9e('0x16')];var _0x478723={'context':_0x16033c[_0x0a9e('0x5')]||_0x0a9e('0x6'),'exten':_0x12066b,'type':_0x0a9e('0x7'),'isApp':![],'UserId':_0x16033c['id']};var _0x2eb11f=[{'app':_0x0a9e('0x17'),'appdata':_0x0a9e('0x18')}];if(_0x16033c[_0x0a9e('0x19')]&&_[_0x0a9e('0x1a')](_0x48f32d,_0x16033c[_0x0a9e('0x19')])){_0x2eb11f[_0x0a9e('0xc')]({'app':'Set','appdata':_0x0a9e('0x1b')});_0x2eb11f[_0x0a9e('0xc')]({'app':'Set','appdata':util[_0x0a9e('0x8')]('_XCALLY_MIXMONITOR_FORMAT=%s',_0x16033c['extensionMonitor'])});_0x2eb11f[_0x0a9e('0xc')]({'app':_0x0a9e('0x1c'),'appdata':util[_0x0a9e('0x8')](_0x0a9e('0x1d'),_0x16033c['name'])});}else{_0x2eb11f[_0x0a9e('0xc')]({'app':_0x0a9e('0x1c'),'appdata':util[_0x0a9e('0x8')](_0x0a9e('0x1e'),_0x16033c[_0x0a9e('0x13')])});}_0x2eb11f[_0x0a9e('0xc')]({'app':_0x0a9e('0x1f')});for(var _0x5ea472=0x0;_0x5ea472<_0x2eb11f['length'];_0x5ea472++){_0x2eb11f[_0x5ea472][_0x0a9e('0x20')]=_0x5ea472+0x1;_0x2eb11f[_0x5ea472]=_[_0x0a9e('0x21')](_0x2eb11f[_0x5ea472],_0x478723);}return _0x2eb11f;};var getChanSpyPromise=function(_0x40c424,_0x33161b){return new BPromise(function(_0x526cf3,_0x384319){return _0x40c424['VoiceChanSpy'][_0x0a9e('0x22')]()['then'](function(_0x1dc186){if(_0x1dc186){var _0x34dc65=getChanSpyApplications(_0x33161b,_0x33161b[_0x0a9e('0x23')],_0x1dc186);if(_0x33161b[_0x0a9e('0x23')]!=_0x33161b[_0x0a9e('0x13')]){_0x34dc65=_0x34dc65[_0x0a9e('0x24')](getChanSpyApplications(_0x33161b,_0x33161b[_0x0a9e('0x13')],_0x1dc186));}return _0x526cf3(_0x34dc65);}return _0x526cf3([]);})[_0x0a9e('0x25')](function(_0x5a101a){_0x384319(_0x5a101a);});});};module[_0x0a9e('0x26')]=function(_0x468813,_0x2b1f27){var _0x2ec755=_0x468813['models'];return _0x468813[_0x0a9e('0x27')](_0x0a9e('0x28'),attributes,{'tableName':_0x0a9e('0x29'),'charset':_0x0a9e('0x2a'),'collate':_0x0a9e('0x2b'),'hooks':{'beforeCreate':function(_0x563b45,_0x296f41,_0x2e8759){_0x563b45[_0x0a9e('0x2c')]();_0x563b45['updatePassword'](_0x2e8759);},'beforeUpdate':function(_0x426950,_0x5d1e0e,_0x2407f9){if(_0x426950[_0x0a9e('0x2d')](_0x0a9e('0x10'))){_0x426950[_0x0a9e('0x2c')]();return _0x426950[_0x0a9e('0x2e')](_0x2407f9);}_0x2407f9();},'afterCreate':function(_0x5180f1,_0x66c1d2,_0x46f0a5){var _0x40cb85=getUserApplications(_0x5180f1,_0x5180f1[_0x0a9e('0x23')]);if(_0x5180f1[_0x0a9e('0x23')]!=_0x5180f1[_0x0a9e('0x13')]){_0x40cb85=_0x40cb85[_0x0a9e('0x24')](getUserApplications(_0x5180f1,_0x5180f1[_0x0a9e('0x13')]));}return _0x2ec755['VoiceExtension'][_0x0a9e('0x2f')](_0x40cb85)['then'](function(){if(_0x5180f1[_0x0a9e('0x30')]){return getChanSpyPromise(_0x2ec755,_0x5180f1);}})[_0x0a9e('0x31')](function(_0x2b7e7f){if(_0x2b7e7f&&_0x2b7e7f[_0x0a9e('0x4')]){return _0x2ec755['VoiceExtension'][_0x0a9e('0x2f')](_0x2b7e7f);}})[_0x0a9e('0x31')](function(){_0x46f0a5();})[_0x0a9e('0x25')](function(_0x15de0e){_0x46f0a5(_0x15de0e);});},'afterUpdate':function(_0x4853b1,_0x54135e,_0x1e8694){return BPromise['resolve']()[_0x0a9e('0x31')](function(){if(_0x4853b1[_0x0a9e('0x2d')](_0x0a9e('0x30'))||_0x4853b1[_0x0a9e('0x2d')]('context')){return _0x2ec755[_0x0a9e('0x32')][_0x0a9e('0x33')]({'where':{'UserId':_0x4853b1['id'],'type':_0x0a9e('0x7'),'ChanSpyId':{'$ne':null}}})['then'](function(){if(_0x4853b1[_0x0a9e('0x30')]){return getChanSpyPromise(_0x2ec755,_0x4853b1)[_0x0a9e('0x31')](function(_0x289467){if(_0x289467&&_0x289467['length']){return _0x2ec755['VoiceExtension'][_0x0a9e('0x2f')](_0x289467);}});}});}})[_0x0a9e('0x31')](function(){if(_0x4853b1['changed'](_0x0a9e('0x19'))||_0x4853b1[_0x0a9e('0x2d')](_0x0a9e('0x5'))){return _0x2ec755[_0x0a9e('0x32')]['destroy']({'where':{'UserId':_0x4853b1['id'],'type':'system','ChanSpyId':null}})[_0x0a9e('0x31')](function(){var _0x45b3d0=getUserApplications(_0x4853b1,_0x4853b1['internal']);if(_0x4853b1[_0x0a9e('0x23')]!=_0x4853b1[_0x0a9e('0x13')]){_0x45b3d0=_0x45b3d0[_0x0a9e('0x24')](getUserApplications(_0x4853b1,_0x4853b1['name']));}return _0x2ec755[_0x0a9e('0x32')][_0x0a9e('0x2f')](_0x45b3d0);});}})[_0x0a9e('0x31')](function(){_0x1e8694();})[_0x0a9e('0x25')](function(_0x13cb1f){_0x1e8694(_0x13cb1f);});},'afterDestroy':function(_0xeaa5e5,_0x2881b3){return _0x2ec755[_0x0a9e('0x32')][_0x0a9e('0x33')]({'where':{'UserId':_0xeaa5e5['id'],'type':_0x0a9e('0x7')}});}},'instanceMethods':{'authenticate':function(_0x2c3711,_0x148007){if(!_0x148007){return this[_0x0a9e('0x10')]===this[_0x0a9e('0x34')](_0x2c3711);}var _0x37f6cc=this;this['encryptPassword'](_0x2c3711,function(_0x52628e,_0x473fdc){if(_0x52628e){_0x148007(_0x52628e);}if(_0x37f6cc[_0x0a9e('0x10')]===_0x473fdc){_0x148007(null,!![]);}else{_0x148007(null,![]);}});},'makeSalt':function(_0x405c8f,_0x315881){var _0x1a69dd=0x10;if(typeof arguments[0x0]===_0x0a9e('0x35')){_0x315881=arguments[0x0];_0x405c8f=_0x1a69dd;}else if(typeof arguments[0x1]===_0x0a9e('0x35')){_0x315881=arguments[0x1];}else{throw new Error(_0x0a9e('0x36'));}if(!_0x405c8f){_0x405c8f=_0x1a69dd;}return crypto[_0x0a9e('0x37')](_0x405c8f,function(_0x25c6e6,_0x2c2cb0){if(_0x25c6e6){_0x315881(_0x25c6e6);}return _0x315881(null,_0x2c2cb0[_0x0a9e('0x38')]('base64'));});},'encryptPassword':function(_0x117c99,_0x138b8b){if(!_0x117c99||!this[_0x0a9e('0x39')]){return _0x138b8b?_0x138b8b(null):null;}var _0xfbd5ad=0x2710;var _0x2e8caf=0x40;var _0xbe9d19=new Buffer(this[_0x0a9e('0x39')],_0x0a9e('0x3a'));if(!_0x138b8b){return crypto['pbkdf2Sync'](_0x117c99,_0xbe9d19,_0xfbd5ad,_0x2e8caf,_0x0a9e('0x3b'))['toString'](_0x0a9e('0x3a'));}return crypto[_0x0a9e('0x3c')](_0x117c99,_0xbe9d19,_0xfbd5ad,_0x2e8caf,_0x0a9e('0x3b'),function(_0x562fb4,_0x14bec2){if(_0x562fb4){_0x138b8b(_0x562fb4);}return _0x138b8b(null,_0x14bec2[_0x0a9e('0x38')](_0x0a9e('0x3a')));});},'updatePassword':function(_0x34aa5a){if(!this[_0x0a9e('0x10')]){return _0x34aa5a(null);}if(!validatePresenceOf(this[_0x0a9e('0x10')])&&authTypes[_0x0a9e('0x3d')](this['provider'])===-0x1){_0x34aa5a(new Error(_0x0a9e('0x3e')));}var _0x1bde3c=this;this[_0x0a9e('0x3f')](function(_0x16f976,_0x409789){if(_0x16f976){return _0x34aa5a(_0x16f976);}_0x1bde3c[_0x0a9e('0x39')]=_0x409789;_0x1bde3c[_0x0a9e('0x34')](_0x1bde3c[_0x0a9e('0x10')],function(_0x34febd,_0x58a5c2){if(_0x34febd){_0x34aa5a(_0x34febd);}_0x1bde3c[_0x0a9e('0x10')]=_0x58a5c2;_0x34aa5a(null);});});},'updateMd5Password':function(){this[_0x0a9e('0x40')]=md5(this['name']+':asterisk:'+this['password']);return this[_0x0a9e('0x40')];}}});};
\ No newline at end of file
+var _0xa9e0=['findAll','internal','concat','catch','exports','define','User','users','utf8','utf8_bin','updateMd5Password','changed','updatePassword','bulkCreate','chanspy','then','VoiceExtension','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','toString','salt','base64','sha1','pbkdf2','indexOf','Invalid\x20password','makeSalt','md5secret','bluebird','crypto','util','./user.attributes','length','context','from-sip','system','format','%s%s','prefix','record','push','merge','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','wav','gsm','Set','CDR(type)=internal','extensionMonitor','includes','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','Hangup','priority','defaults'];(function(_0x4b416f,_0x2dc1a9){var _0x4d356c=function(_0x3f6eb5){while(--_0x3f6eb5){_0x4b416f['push'](_0x4b416f['shift']());}};_0x4d356c(++_0x2dc1a9);}(_0xa9e0,0x123));var _0x0a9e=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xa9e0[_0x134c2e];return _0x2825db;};'use strict';var BPromise=require(_0x0a9e('0x0'));var crypto=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var md5=require('md5');var _=require('lodash');var attributes=require(_0x0a9e('0x3'));var authTypes=['google'];var validatePresenceOf=function(_0x333808){return _0x333808&&_0x333808[_0x0a9e('0x4')];};var getChanSpyApplications=function(_0x2ab90b,_0x991246,_0x981158){var _0x57b080={'context':_0x2ab90b[_0x0a9e('0x5')]||_0x0a9e('0x6'),'type':_0x0a9e('0x7'),'isApp':![],'UserId':_0x2ab90b['id']};var _0x5f41ea=[];for(var _0x503809=0x0,_0xe42b77=0x1;_0x503809<_0x981158['length'];_0x503809++,_0xe42b77=0x1){var _0x52cace={'exten':util[_0x0a9e('0x8')](_0x0a9e('0x9'),_0x981158[_0x503809][_0x0a9e('0xa')],_0x991246),'ChanSpyId':_0x981158[_0x503809]['id']};if(_0x981158[_0x503809][_0x0a9e('0xb')]){_0x5f41ea[_0x0a9e('0xc')](_[_0x0a9e('0xd')]({'app':'MixMonitor','appdata':util['format']('${UNIQUEID}.%s,ab',_0x981158[_0x503809]['recordingFormat']),'priority':_0xe42b77++},_0x57b080,_0x52cace));}if(_0x981158[_0x503809][_0x0a9e('0xe')]){_0x5f41ea[_0x0a9e('0xc')](_[_0x0a9e('0xd')]({'app':_0x0a9e('0xf'),'appdata':_0x981158[_0x503809][_0x0a9e('0x10')],'priority':_0xe42b77++},_0x57b080,_0x52cace));}_0x5f41ea[_0x0a9e('0xc')](_['merge']({'app':_0x0a9e('0x11'),'appdata':util[_0x0a9e('0x8')](_0x0a9e('0x12'),_0x2ab90b[_0x0a9e('0x13')],_0x981158[_0x503809][_0x0a9e('0x14')]?_0x981158[_0x503809][_0x0a9e('0x14')]['join'](''):''),'priority':_0xe42b77++},_0x57b080,_0x52cace));if(_0x981158[_0x503809][_0x0a9e('0xb')]){_0x5f41ea['push'](_[_0x0a9e('0xd')]({'app':'StopMixMonitor','priority':_0xe42b77++},_0x57b080,_0x52cace));}}return _0x5f41ea;};var getUserApplications=function(_0x16033c,_0x12066b){var _0x48f32d=[_0x0a9e('0x15'),'WAV',_0x0a9e('0x16')];var _0x478723={'context':_0x16033c[_0x0a9e('0x5')]||_0x0a9e('0x6'),'exten':_0x12066b,'type':_0x0a9e('0x7'),'isApp':![],'UserId':_0x16033c['id']};var _0x2eb11f=[{'app':_0x0a9e('0x17'),'appdata':_0x0a9e('0x18')}];if(_0x16033c[_0x0a9e('0x19')]&&_[_0x0a9e('0x1a')](_0x48f32d,_0x16033c[_0x0a9e('0x19')])){_0x2eb11f[_0x0a9e('0xc')]({'app':'Set','appdata':_0x0a9e('0x1b')});_0x2eb11f[_0x0a9e('0xc')]({'app':'Set','appdata':util[_0x0a9e('0x8')]('_XCALLY_MIXMONITOR_FORMAT=%s',_0x16033c['extensionMonitor'])});_0x2eb11f[_0x0a9e('0xc')]({'app':_0x0a9e('0x1c'),'appdata':util[_0x0a9e('0x8')](_0x0a9e('0x1d'),_0x16033c['name'])});}else{_0x2eb11f[_0x0a9e('0xc')]({'app':_0x0a9e('0x1c'),'appdata':util[_0x0a9e('0x8')](_0x0a9e('0x1e'),_0x16033c[_0x0a9e('0x13')])});}_0x2eb11f[_0x0a9e('0xc')]({'app':_0x0a9e('0x1f')});for(var _0x5ea472=0x0;_0x5ea472<_0x2eb11f['length'];_0x5ea472++){_0x2eb11f[_0x5ea472][_0x0a9e('0x20')]=_0x5ea472+0x1;_0x2eb11f[_0x5ea472]=_[_0x0a9e('0x21')](_0x2eb11f[_0x5ea472],_0x478723);}return _0x2eb11f;};var getChanSpyPromise=function(_0x40c424,_0x33161b){return new BPromise(function(_0x526cf3,_0x384319){return _0x40c424['VoiceChanSpy'][_0x0a9e('0x22')]()['then'](function(_0x1dc186){if(_0x1dc186){var _0x34dc65=getChanSpyApplications(_0x33161b,_0x33161b[_0x0a9e('0x23')],_0x1dc186);if(_0x33161b[_0x0a9e('0x23')]!=_0x33161b[_0x0a9e('0x13')]){_0x34dc65=_0x34dc65[_0x0a9e('0x24')](getChanSpyApplications(_0x33161b,_0x33161b[_0x0a9e('0x13')],_0x1dc186));}return _0x526cf3(_0x34dc65);}return _0x526cf3([]);})[_0x0a9e('0x25')](function(_0x5a101a){_0x384319(_0x5a101a);});});};module[_0x0a9e('0x26')]=function(_0x468813,_0x2b1f27){var _0x2ec755=_0x468813['models'];return _0x468813[_0x0a9e('0x27')](_0x0a9e('0x28'),attributes,{'tableName':_0x0a9e('0x29'),'charset':_0x0a9e('0x2a'),'collate':_0x0a9e('0x2b'),'hooks':{'beforeCreate':function(_0x563b45,_0x296f41,_0x2e8759){_0x563b45[_0x0a9e('0x2c')]();_0x563b45['updatePassword'](_0x2e8759);},'beforeUpdate':function(_0x426950,_0x5d1e0e,_0x2407f9){if(_0x426950[_0x0a9e('0x2d')](_0x0a9e('0x10'))){_0x426950[_0x0a9e('0x2c')]();return _0x426950[_0x0a9e('0x2e')](_0x2407f9);}_0x2407f9();},'afterCreate':function(_0x5180f1,_0x66c1d2,_0x46f0a5){var _0x40cb85=getUserApplications(_0x5180f1,_0x5180f1[_0x0a9e('0x23')]);if(_0x5180f1[_0x0a9e('0x23')]!=_0x5180f1[_0x0a9e('0x13')]){_0x40cb85=_0x40cb85[_0x0a9e('0x24')](getUserApplications(_0x5180f1,_0x5180f1[_0x0a9e('0x13')]));}return _0x2ec755['VoiceExtension'][_0x0a9e('0x2f')](_0x40cb85)['then'](function(){if(_0x5180f1[_0x0a9e('0x30')]){return getChanSpyPromise(_0x2ec755,_0x5180f1);}})[_0x0a9e('0x31')](function(_0x2b7e7f){if(_0x2b7e7f&&_0x2b7e7f[_0x0a9e('0x4')]){return _0x2ec755['VoiceExtension'][_0x0a9e('0x2f')](_0x2b7e7f);}})[_0x0a9e('0x31')](function(){_0x46f0a5();})[_0x0a9e('0x25')](function(_0x15de0e){_0x46f0a5(_0x15de0e);});},'afterUpdate':function(_0x4853b1,_0x54135e,_0x1e8694){return BPromise['resolve']()[_0x0a9e('0x31')](function(){if(_0x4853b1[_0x0a9e('0x2d')](_0x0a9e('0x30'))||_0x4853b1[_0x0a9e('0x2d')]('context')){return _0x2ec755[_0x0a9e('0x32')][_0x0a9e('0x33')]({'where':{'UserId':_0x4853b1['id'],'type':_0x0a9e('0x7'),'ChanSpyId':{'$ne':null}}})['then'](function(){if(_0x4853b1[_0x0a9e('0x30')]){return getChanSpyPromise(_0x2ec755,_0x4853b1)[_0x0a9e('0x31')](function(_0x289467){if(_0x289467&&_0x289467['length']){return _0x2ec755['VoiceExtension'][_0x0a9e('0x2f')](_0x289467);}});}});}})[_0x0a9e('0x31')](function(){if(_0x4853b1['changed'](_0x0a9e('0x19'))||_0x4853b1[_0x0a9e('0x2d')](_0x0a9e('0x5'))){return _0x2ec755[_0x0a9e('0x32')]['destroy']({'where':{'UserId':_0x4853b1['id'],'type':'system','ChanSpyId':null}})[_0x0a9e('0x31')](function(){var _0x45b3d0=getUserApplications(_0x4853b1,_0x4853b1['internal']);if(_0x4853b1[_0x0a9e('0x23')]!=_0x4853b1[_0x0a9e('0x13')]){_0x45b3d0=_0x45b3d0[_0x0a9e('0x24')](getUserApplications(_0x4853b1,_0x4853b1['name']));}return _0x2ec755[_0x0a9e('0x32')][_0x0a9e('0x2f')](_0x45b3d0);});}})[_0x0a9e('0x31')](function(){_0x1e8694();})[_0x0a9e('0x25')](function(_0x13cb1f){_0x1e8694(_0x13cb1f);});},'afterDestroy':function(_0xeaa5e5,_0x2881b3){return _0x2ec755[_0x0a9e('0x32')][_0x0a9e('0x33')]({'where':{'UserId':_0xeaa5e5['id'],'type':_0x0a9e('0x7')}});}},'instanceMethods':{'authenticate':function(_0x2c3711,_0x148007){if(!_0x148007){return this[_0x0a9e('0x10')]===this[_0x0a9e('0x34')](_0x2c3711);}var _0x37f6cc=this;this['encryptPassword'](_0x2c3711,function(_0x52628e,_0x473fdc){if(_0x52628e){_0x148007(_0x52628e);}if(_0x37f6cc[_0x0a9e('0x10')]===_0x473fdc){_0x148007(null,!![]);}else{_0x148007(null,![]);}});},'makeSalt':function(_0x405c8f,_0x315881){var _0x1a69dd=0x10;if(typeof arguments[0x0]===_0x0a9e('0x35')){_0x315881=arguments[0x0];_0x405c8f=_0x1a69dd;}else if(typeof arguments[0x1]===_0x0a9e('0x35')){_0x315881=arguments[0x1];}else{throw new Error(_0x0a9e('0x36'));}if(!_0x405c8f){_0x405c8f=_0x1a69dd;}return crypto[_0x0a9e('0x37')](_0x405c8f,function(_0x25c6e6,_0x2c2cb0){if(_0x25c6e6){_0x315881(_0x25c6e6);}return _0x315881(null,_0x2c2cb0[_0x0a9e('0x38')]('base64'));});},'encryptPassword':function(_0x117c99,_0x138b8b){if(!_0x117c99||!this[_0x0a9e('0x39')]){return _0x138b8b?_0x138b8b(null):null;}var _0xfbd5ad=0x2710;var _0x2e8caf=0x40;var _0xbe9d19=new Buffer(this[_0x0a9e('0x39')],_0x0a9e('0x3a'));if(!_0x138b8b){return crypto['pbkdf2Sync'](_0x117c99,_0xbe9d19,_0xfbd5ad,_0x2e8caf,_0x0a9e('0x3b'))['toString'](_0x0a9e('0x3a'));}return crypto[_0x0a9e('0x3c')](_0x117c99,_0xbe9d19,_0xfbd5ad,_0x2e8caf,_0x0a9e('0x3b'),function(_0x562fb4,_0x14bec2){if(_0x562fb4){_0x138b8b(_0x562fb4);}return _0x138b8b(null,_0x14bec2[_0x0a9e('0x38')](_0x0a9e('0x3a')));});},'updatePassword':function(_0x34aa5a){if(!this[_0x0a9e('0x10')]){return _0x34aa5a(null);}if(!validatePresenceOf(this[_0x0a9e('0x10')])&&authTypes[_0x0a9e('0x3d')](this['provider'])===-0x1){_0x34aa5a(new Error(_0x0a9e('0x3e')));}var _0x1bde3c=this;this[_0x0a9e('0x3f')](function(_0x16f976,_0x409789){if(_0x16f976){return _0x34aa5a(_0x16f976);}_0x1bde3c[_0x0a9e('0x39')]=_0x409789;_0x1bde3c[_0x0a9e('0x34')](_0x1bde3c[_0x0a9e('0x10')],function(_0x34febd,_0x58a5c2){if(_0x34febd){_0x34aa5a(_0x34febd);}_0x1bde3c[_0x0a9e('0x10')]=_0x58a5c2;_0x34aa5a(null);});});},'updateMd5Password':function(){this[_0x0a9e('0x40')]=md5(this['name']+':asterisk:'+this['password']);return this[_0x0a9e('0x40')];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac9e=['stringify','error','code','User,\x20%s,\x20%s','message','catch','GetUser','User','findAll','options','raw','where','attributes','limit','include','model','map','find','ShowUser','PauseUser','name','role','internal','then','UserVoiceQueueRt','update','MemberReport','length','updateAttributes','getChannels','forEach','push','isNil','interface','format','SIP/%s','YYYY-MM-DD\x20HH:mm:ss','body','type','DEFAULT\x20PAUSE','UnpauseUser','findOne','channel','isValidChannel','voice','system','mail','chat','fax','sms','openchannel','PAUSE','set','%s%s','Pause','all','LogoutUser','destroy','LoginUser','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','LOGININPAUSE','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','defaults','redis','localhost','./user.socket','register','request','info','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s'];(function(_0x293d7d,_0x3233b5){var _0x1e72e0=function(_0x32e4c1){while(--_0x32e4c1){_0x293d7d['push'](_0x293d7d['shift']());}};_0x1e72e0(++_0x3233b5);}(_0xac9e,0x1b9));var _0xeac9=function(_0xd548f0,_0x3409cd){_0xd548f0=_0xd548f0-0x0;var _0x4f59e1=_0xac9e[_0xd548f0];return _0x4f59e1;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xeac9('0x0'));var BPromise=require(_0xeac9('0x1'));var rs=require(_0xeac9('0x2'));var fs=require('fs');var db=require(_0xeac9('0x3'))['db'];var utils=require(_0xeac9('0x4'));var logger=require(_0xeac9('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xeac9('0x6'));var client=jayson[_0xeac9('0x7')][_0xeac9('0x8')]({'port':0x232a});config['redis']=_[_0xeac9('0x9')](config[_0xeac9('0xa')],{'host':_0xeac9('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0xeac9('0xa')]);require(_0xeac9('0xc'))[_0xeac9('0xd')](socket);function respondWithRpcPromise(_0x574ab2,_0x1ec53a,_0x54c2aa){return new BPromise(function(_0x30b5e2,_0xe1cc68){return client[_0xeac9('0xe')](_0x574ab2,_0x54c2aa)['then'](function(_0x1b162d){logger[_0xeac9('0xf')]('User,\x20%s,\x20%s',_0x1ec53a,_0xeac9('0x10'));logger[_0xeac9('0x11')](_0xeac9('0x12'),_0x1ec53a,_0xeac9('0x10'),JSON[_0xeac9('0x13')](_0x1b162d));if(_0x1b162d['error']){if(_0x1b162d[_0xeac9('0x14')][_0xeac9('0x15')]===0x1f4){logger['error'](_0xeac9('0x16'),_0x1ec53a,_0x1b162d['error']['message']);return _0xe1cc68(_0x1b162d[_0xeac9('0x14')][_0xeac9('0x17')]);}logger[_0xeac9('0x14')](_0xeac9('0x16'),_0x1ec53a,_0x1b162d[_0xeac9('0x14')][_0xeac9('0x17')]);return _0x30b5e2(_0x1b162d[_0xeac9('0x14')][_0xeac9('0x17')]);}else{logger[_0xeac9('0xf')](_0xeac9('0x16'),_0x1ec53a,'request\x20sent');_0x30b5e2(_0x1b162d['result'][_0xeac9('0x17')]);}})[_0xeac9('0x18')](function(_0x37fcc0){logger[_0xeac9('0x14')](_0xeac9('0x16'),_0x1ec53a,_0x37fcc0);_0xe1cc68(_0x37fcc0);});});}exports[_0xeac9('0x19')]=function(_0x3f6bf6){var _0xf4683a=this;return new Promise(function(_0x12a1a2,_0x20216e){return db[_0xeac9('0x1a')][_0xeac9('0x1b')]({'raw':_0x3f6bf6[_0xeac9('0x1c')]?_0x3f6bf6[_0xeac9('0x1c')][_0xeac9('0x1d')]===undefined?!![]:![]:!![],'where':_0x3f6bf6['options']?_0x3f6bf6['options'][_0xeac9('0x1e')]||null:null,'attributes':_0x3f6bf6['options']?_0x3f6bf6[_0xeac9('0x1c')][_0xeac9('0x1f')]||null:null,'limit':_0x3f6bf6[_0xeac9('0x1c')]?_0x3f6bf6['options'][_0xeac9('0x20')]||null:null,'include':_0x3f6bf6[_0xeac9('0x1c')]?_0x3f6bf6[_0xeac9('0x1c')][_0xeac9('0x21')]?_['map'](_0x3f6bf6[_0xeac9('0x1c')][_0xeac9('0x21')],function(_0x49c0bf){return{'model':db[_0x49c0bf[_0xeac9('0x22')]],'as':_0x49c0bf['as'],'attributes':_0x49c0bf['attributes'],'include':_0x49c0bf[_0xeac9('0x21')]?_[_0xeac9('0x23')](_0x49c0bf[_0xeac9('0x21')],function(_0x401687){return{'model':db[_0x401687['model']],'as':_0x401687['as'],'attributes':_0x401687[_0xeac9('0x1f')],'include':_0x401687[_0xeac9('0x21')]?_[_0xeac9('0x23')](_0x401687[_0xeac9('0x21')],function(_0x5bceff){return{'model':db[_0x5bceff[_0xeac9('0x22')]],'as':_0x5bceff['as'],'attributes':_0x5bceff[_0xeac9('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5ca09f){logger[_0xeac9('0xf')](_0xeac9('0x19'),_0x3f6bf6);logger['debug'](_0xeac9('0x19'),_0x3f6bf6,JSON[_0xeac9('0x13')](_0x5ca09f));_0x12a1a2(_0x5ca09f);})['catch'](function(_0x2cd1dc){logger[_0xeac9('0x14')](_0xeac9('0x19'),_0x2cd1dc[_0xeac9('0x17')],_0x3f6bf6);_0x20216e(_0xf4683a[_0xeac9('0x14')](0x1f4,_0x2cd1dc[_0xeac9('0x17')]));});});};exports['ShowUser']=function(_0x8d31d5){var _0x5a43ff=this;return new Promise(function(_0xfd32da,_0x55d72e){return db['User'][_0xeac9('0x24')]({'raw':_0x8d31d5[_0xeac9('0x1c')]?_0x8d31d5[_0xeac9('0x1c')][_0xeac9('0x1d')]===undefined?!![]:![]:!![],'where':_0x8d31d5[_0xeac9('0x1c')]?_0x8d31d5[_0xeac9('0x1c')][_0xeac9('0x1e')]||null:null,'attributes':_0x8d31d5['options']?_0x8d31d5['options'][_0xeac9('0x1f')]||null:null,'include':_0x8d31d5[_0xeac9('0x1c')]?_0x8d31d5[_0xeac9('0x1c')][_0xeac9('0x21')]?_['map'](_0x8d31d5[_0xeac9('0x1c')][_0xeac9('0x21')],function(_0x183459){return{'model':db[_0x183459[_0xeac9('0x22')]],'as':_0x183459['as'],'attributes':_0x183459[_0xeac9('0x1f')],'include':_0x183459[_0xeac9('0x21')]?_[_0xeac9('0x23')](_0x183459[_0xeac9('0x21')],function(_0x3f2749){return{'model':db[_0x3f2749[_0xeac9('0x22')]],'as':_0x3f2749['as'],'attributes':_0x3f2749[_0xeac9('0x1f')],'include':_0x3f2749['include']?_[_0xeac9('0x23')](_0x3f2749['include'],function(_0x4e257a){return{'model':db[_0x4e257a[_0xeac9('0x22')]],'as':_0x4e257a['as'],'attributes':_0x4e257a[_0xeac9('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x541758){logger[_0xeac9('0xf')](_0xeac9('0x25'),_0x8d31d5);logger[_0xeac9('0x11')](_0xeac9('0x25'),_0x8d31d5,JSON[_0xeac9('0x13')](_0x541758));_0xfd32da(_0x541758);})['catch'](function(_0x1fe950){logger['error']('ShowUser',_0x1fe950[_0xeac9('0x17')],_0x8d31d5);_0x55d72e(_0x5a43ff[_0xeac9('0x14')](0x1f4,_0x1fe950[_0xeac9('0x17')]));});});};exports[_0xeac9('0x26')]=function(_0x3ed42f){var _0x5cf453=this;return new Promise(function(_0x5a71af,_0x271f29){var _0x39fbd1;return db[_0xeac9('0x1a')]['find']({'where':_0x3ed42f[_0xeac9('0x1c')]['where']||{},'attributes':['id',_0xeac9('0x27'),_0xeac9('0x28'),_0xeac9('0x29'),'interface']})[_0xeac9('0x2a')](function(_0x43d558){if(_0x43d558){_0x39fbd1=_0x43d558;return db[_0xeac9('0x2b')][_0xeac9('0x2c')]({'paused':0x1},{'where':{'UserId':_0x39fbd1['id']},'individualHooks':!![]});}})[_0xeac9('0x2a')](function(){if(_0x39fbd1){return db[_0xeac9('0x2d')][_0xeac9('0x1b')]({'where':{'membername':_0x39fbd1[_0xeac9('0x27')],'type':'PAUSE','exitAt':null}});}})[_0xeac9('0x2a')](function(_0x273ded){if(_0x39fbd1){if(_0x273ded&&_0x273ded[_0xeac9('0x2e')]){var _0x4d3a26=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');for(var _0x3ce63d=0x0,_0x54242d=_0x273ded[_0xeac9('0x2e')];_0x3ce63d<_0x54242d;_0x3ce63d++){_0x273ded[_0x3ce63d][_0xeac9('0x2f')]({'exitAt':_0x4d3a26});}}}})[_0xeac9('0x2a')](function(){if(_0x39fbd1){var _0x2254bb=[];var _0x5e4b86=utils[_0xeac9('0x30')]();_0x5e4b86[_0xeac9('0x31')](function(_0x341661){_0x2254bb[_0xeac9('0x32')]({'channel':_0x341661,'membername':_0x39fbd1['name'],'interface':_[_0xeac9('0x33')](_0x39fbd1[_0xeac9('0x34')])?util[_0xeac9('0x35')](_0xeac9('0x36'),_0x39fbd1[_0xeac9('0x27')]):_0x39fbd1[_0xeac9('0x34')],'type':'PAUSE','enterAt':moment()[_0xeac9('0x35')](_0xeac9('0x37')),'data1':_0x3ed42f[_0xeac9('0x38')][_0xeac9('0x39')]||_0xeac9('0x3a'),'role':_0x39fbd1[_0xeac9('0x28')],'internal':_0x39fbd1['internal'],'uniqueid':_0x3ed42f[_0xeac9('0x38')]['uniqueid']||null});});return db['MemberReport']['bulkCreate'](_0x2254bb,{'individualHooks':!![]});}})[_0xeac9('0x2a')](function(){if(_0x39fbd1){return _0x39fbd1[_0xeac9('0x2c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x3ed42f[_0xeac9('0x38')][_0xeac9('0x39')]||_0xeac9('0x3a'),'lastPauseAt':moment()[_0xeac9('0x35')]('YYYY-MM-DD\x20HH:mm:ss')});}})[_0xeac9('0x2a')](function(_0x52bfe0){_0x5a71af(_0x52bfe0);})['catch'](function(_0xacc8d6){_0x271f29(_0x5cf453[_0xeac9('0x14')](0x1f4,_0xacc8d6[_0xeac9('0x17')]));});});};exports[_0xeac9('0x3b')]=function(_0x7ff529){var _0x520cf5=this;return new Promise(function(_0x57133d,_0x3b763f){var _0x3f5299;return db[_0xeac9('0x1a')][_0xeac9('0x3c')]({'where':_0x7ff529[_0xeac9('0x1c')][_0xeac9('0x1e')]||{},'attributes':['id',_0xeac9('0x27')]})[_0xeac9('0x2a')](function(_0x2637b1){if(_0x2637b1){_0x3f5299=_0x2637b1;if(_0x7ff529[_0xeac9('0x38')][_0xeac9('0x3d')]&&!utils[_0xeac9('0x3e')](_0x7ff529[_0xeac9('0x38')][_0xeac9('0x3d')])){throw new Error('Unknown\x20channel');}switch(_0x7ff529[_0xeac9('0x38')][_0xeac9('0x3d')]){case _0xeac9('0x3f'):return db[_0xeac9('0x2b')]['update']({'paused':0x0},{'where':{'UserId':_0x3f5299['id']}})[_0xeac9('0x2a')](function(){return db['MemberReport'][_0xeac9('0x24')]({'where':{'channel':_0x7ff529['body'][_0xeac9('0x3d')],'membername':_0x3f5299['name'],'type':'PAUSE','exitAt':null}});})['then'](function(_0x1d3f95){if(_0x1d3f95){return _0x1d3f95[_0xeac9('0x2c')]({'exitAt':moment()['format'](_0xeac9('0x37')),'data2':_0xeac9('0x40')},{'individualHooks':!![]});}return null;})[_0xeac9('0x2a')](function(){return _0x3f5299[_0xeac9('0x2c')]({'voicePause':![]});});case _0xeac9('0x41'):case _0xeac9('0x42'):case _0xeac9('0x43'):case _0xeac9('0x44'):case _0xeac9('0x45'):return db[_0xeac9('0x2d')][_0xeac9('0x24')]({'where':{'channel':_0x7ff529['body'][_0xeac9('0x3d')],'membername':_0x3f5299[_0xeac9('0x27')],'type':_0xeac9('0x46'),'exitAt':null}})[_0xeac9('0x2a')](function(_0x3452e9){return _0x3452e9[_0xeac9('0x2c')]({'exitAt':moment()['format'](_0xeac9('0x37')),'data2':'system'},{'individualHooks':!![]});})[_0xeac9('0x2a')](function(){var _0x16e893={};_[_0xeac9('0x47')](_0x16e893,util['format'](_0xeac9('0x48'),_0x7ff529[_0xeac9('0x38')]['channel'],_0xeac9('0x49')),![]);return _0x3f5299[_0xeac9('0x2c')](_0x16e893);});default:return db[_0xeac9('0x2b')][_0xeac9('0x2c')]({'paused':0x0},{'where':{'UserId':_0x3f5299['id']}})[_0xeac9('0x2a')](function(){return db[_0xeac9('0x2d')]['findAll']({'where':{'membername':_0x3f5299[_0xeac9('0x27')],'type':'PAUSE','exitAt':null}});})['then'](function(_0x48843c){var _0x425b4c=[];_0x48843c[_0xeac9('0x31')](function(_0x291d27){_0x425b4c[_0xeac9('0x32')](_0x291d27['update']({'exitAt':moment()[_0xeac9('0x35')](_0xeac9('0x37')),'data2':_0xeac9('0x40')}));});return BPromise[_0xeac9('0x4a')](_0x425b4c);})['then'](function(){return _0x3f5299[_0xeac9('0x2c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0xeac9('0x2a')](function(_0x37f16a){_0x57133d(_0x37f16a);})[_0xeac9('0x18')](function(_0x189623){_0x3b763f(_0x520cf5['error'](0x1f4,_0x189623[_0xeac9('0x17')]));});});};exports[_0xeac9('0x4b')]=function(_0x5d7b82){var _0x19127a=this;return new Promise(function(_0x48db22,_0x539134){var _0x493bd9;return db[_0xeac9('0x1a')][_0xeac9('0x3c')]({'where':_0x5d7b82[_0xeac9('0x1c')]['where']||{},'attributes':['id',_0xeac9('0x27')]})[_0xeac9('0x2a')](function(_0x43ae0c){if(_0x43ae0c){_0x493bd9=_0x43ae0c;return db[_0xeac9('0x2b')][_0xeac9('0x4c')]({'where':{'membername':_0x493bd9[_0xeac9('0x27')]},'individualHooks':!![]});}})[_0xeac9('0x2a')](function(){if(_0x493bd9){return db['MemberReport']['findAll']({'where':{'membername':_0x493bd9['name'],'exitAt':null}});}})[_0xeac9('0x2a')](function(_0x37c54e){if(_0x493bd9){if(_0x37c54e&&_0x37c54e[_0xeac9('0x2e')]){var _0x2128eb=[];_0x37c54e[_0xeac9('0x31')](function(_0x39df09){_0x2128eb[_0xeac9('0x32')](_0x39df09[_0xeac9('0x2c')]({'exitAt':moment()[_0xeac9('0x35')](_0xeac9('0x37'))}));});return BPromise['all'](_0x2128eb);}}})[_0xeac9('0x2a')](function(){if(_0x493bd9){return _0x493bd9['update']({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xeac9('0x2a')](function(_0x1de375){_0x48db22(_0x1de375);})[_0xeac9('0x18')](function(_0x2e30ae){_0x539134(_0x19127a['error'](0x1f4,_0x2e30ae[_0xeac9('0x17')]));});});};exports[_0xeac9('0x4d')]=function(_0x5551bf){var _0xa1acd2=this;return new Promise(function(_0x179dfd,_0x324544){var _0x541d88;var _0x3f551f;var _0x13f905;var _0x4a8ce2;return db[_0xeac9('0x1a')][_0xeac9('0x3c')]({'where':_0x5551bf[_0xeac9('0x1c')][_0xeac9('0x1e')]||{},'attributes':['id',_0xeac9('0x27'),_0xeac9('0x28'),'mobile',_0xeac9('0x4e'),_0xeac9('0x29'),_0xeac9('0x4f'),_0xeac9('0x34')]})[_0xeac9('0x2a')](function(_0x28eaf3){if(_0x28eaf3){_0x541d88=_0x28eaf3;_0x4a8ce2=_0x5551bf[_0xeac9('0x38')][_0xeac9('0x34')]?_0x5551bf[_0xeac9('0x38')][_0xeac9('0x34')]:util['format'](_0xeac9('0x36'),_0x541d88[_0xeac9('0x27')]);return db[_0xeac9('0x1a')][_0xeac9('0x50')]({'where':{'role':_0xeac9('0x51'),'online':!![],'id':{'$ne':_0x541d88['id']}}});}})[_0xeac9('0x2a')](function(_0x145ee5){if(_0x145ee5){_0x13f905=_0x145ee5;return require(_0xeac9('0x52'))[_0xeac9('0x53')]();}})[_0xeac9('0x2a')](function(_0x2b6949){if(_0x2b6949&&_0x2b6949['agents']&&_0x13f905>=_0x2b6949[_0xeac9('0x54')]){throw new Error(_0xeac9('0x55'));}})['then'](function(){if(_0x541d88){return db['UserVoiceQueueRt'][_0xeac9('0x4c')]({'where':{'membername':_0x541d88[_0xeac9('0x27')]},'individualHooks':!![]});}})[_0xeac9('0x2a')](function(){if(_0x541d88){return _0x541d88[_0xeac9('0x56')]({'raw':!![]});}})[_0xeac9('0x2a')](function(_0x2c46dd){if(_0x541d88){if(_0x2c46dd){var _0x30ae59=[];_0x3f551f=_0x2c46dd;if(_0x3f551f[_0xeac9('0x2e')]){for(var _0x28e3d=0x0;_0x28e3d<_0x3f551f[_0xeac9('0x2e')];_0x28e3d++){_0x30ae59[_0xeac9('0x32')](db[_0xeac9('0x2b')][_0xeac9('0x57')]({'membername':_0x541d88[_0xeac9('0x27')],'UserId':_0x541d88['id'],'queue_name':_0x3f551f[_0x28e3d][_0xeac9('0x27')],'VoiceQueueId':_0x3f551f[_0x28e3d]['id'],'interface':_0x4a8ce2,'paused':_0x541d88[_0xeac9('0x4f')]||![],'penalty':_0x3f551f[_0x28e3d][_0xeac9('0x58')]||0x0}));}return BPromise['all'](_0x30ae59);}}}})[_0xeac9('0x2a')](function(){if(_0x541d88){return db['MemberReport']['findAll']({'where':{'membername':_0x541d88['name'],'exitAt':null}});}})[_0xeac9('0x2a')](function(_0x33019f){if(_0x541d88){if(_0x33019f&&_0x33019f[_0xeac9('0x2e')]){var _0x5a47c0=[];_0x33019f['forEach'](function(_0x5da1c2){_0x5a47c0[_0xeac9('0x32')](_0x5da1c2['update']({'exitAt':moment()[_0xeac9('0x35')](_0xeac9('0x37'))}));});return BPromise[_0xeac9('0x4a')](_0x5a47c0);}}})[_0xeac9('0x2a')](function(_0x1127d7){if(_0x541d88){var _0x3847e8=[];var _0x1fc4ca=[];var _0x35c349=utils[_0xeac9('0x30')]();var _0x5806b6={'membername':_0x541d88['name'],'interface':_0x4a8ce2,'enterAt':moment()[_0xeac9('0x35')](_0xeac9('0x37')),'role':_0x541d88[_0xeac9('0x28')],'internal':_0x541d88[_0xeac9('0x29')]};_0x35c349[_0xeac9('0x31')](function(_0x4bf2fa){_0x3847e8[_0xeac9('0x32')](_[_0xeac9('0x59')]({'channel':_0x4bf2fa,'type':_0xeac9('0x5a'),'data1':'callysquare','data2':_0x4a8ce2},_0x5806b6));if(_0x541d88[_0xeac9('0x4f')]){_0x1fc4ca[_0xeac9('0x32')](_[_0xeac9('0x59')]({'channel':_0x4bf2fa,'type':_0xeac9('0x46'),'data1':_0xeac9('0x5b')},_0x5806b6));}});return db[_0xeac9('0x2d')]['bulkCreate'](_0x3847e8['concat'](_0x1fc4ca),{'individualHooks':!![]});}})['then'](function(){if(_0x541d88){return _0x541d88[_0xeac9('0x2c')]({'online':!![],'lastLoginAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x541d88[_0xeac9('0x4f')]||![],'mailPause':_0x541d88['loginInPause']||![],'chatPause':_0x541d88[_0xeac9('0x4f')]||![],'faxPause':_0x541d88[_0xeac9('0x4f')]||![],'smsPause':_0x541d88[_0xeac9('0x4f')]||![],'openchannelPause':_0x541d88[_0xeac9('0x4f')]||![],'pauseType':_0x541d88[_0xeac9('0x4f')]?'LOGININPAUSE':null,'lastPauseAt':moment()[_0xeac9('0x35')](_0xeac9('0x37')),'interface':_0x4a8ce2});}})[_0xeac9('0x2a')](function(_0x16d7bc){_0x179dfd(_0x16d7bc);})[_0xeac9('0x18')](function(_0x2392c0){_0x324544(_0xa1acd2[_0xeac9('0x14')](0x1f4,_0x2392c0[_0xeac9('0x17')]));});});};
\ No newline at end of file
+var _0xb10b=['destroy','length','LoginUser','loginInPause','count','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','merge','LOGIN','callysquare','LOGININPAUSE','concat','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./user.socket','register','request','then','info','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','User,\x20%s,\x20%s','message','result','catch','GetUser','User','options','where','attributes','limit','include','map','model','ShowUser','find','raw','PauseUser','name','role','interface','UserVoiceQueueRt','MemberReport','findAll','format','updateAttributes','getChannels','forEach','push','isNil','SIP/%s','PAUSE','YYYY-MM-DD\x20HH:mm:ss','body','DEFAULT\x20PAUSE','internal','uniqueid','bulkCreate','type','UnpauseUser','findOne','channel','isValidChannel','Unknown\x20channel','update','system','chat','fax','sms','openchannel','set','Pause','all','LogoutUser'];(function(_0x58c6aa,_0x557970){var _0xf7ca07=function(_0x4efe70){while(--_0x4efe70){_0x58c6aa['push'](_0x58c6aa['shift']());}};_0xf7ca07(++_0x557970);}(_0xb10b,0x12a));var _0xbb10=function(_0x14dfd6,_0x392fa4){_0x14dfd6=_0x14dfd6-0x0;var _0x36c19a=_0xb10b[_0x14dfd6];return _0x36c19a;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});config[_0xbb10('0xb')]=_['defaults'](config[_0xbb10('0xb')],{'host':_0xbb10('0xc'),'port':0x18eb});var socket=require(_0xbb10('0xd'))(new Redis(config[_0xbb10('0xb')]));require(_0xbb10('0xe'))[_0xbb10('0xf')](socket);function respondWithRpcPromise(_0x229887,_0xa3adc8,_0x5ab04a){return new BPromise(function(_0x4e47f8,_0x20bd61){return client[_0xbb10('0x10')](_0x229887,_0x5ab04a)[_0xbb10('0x11')](function(_0x5e136d){logger[_0xbb10('0x12')]('User,\x20%s,\x20%s',_0xa3adc8,_0xbb10('0x13'));logger[_0xbb10('0x14')](_0xbb10('0x15'),_0xa3adc8,_0xbb10('0x13'),JSON[_0xbb10('0x16')](_0x5e136d));if(_0x5e136d[_0xbb10('0x17')]){if(_0x5e136d['error'][_0xbb10('0x18')]===0x1f4){logger[_0xbb10('0x17')](_0xbb10('0x19'),_0xa3adc8,_0x5e136d[_0xbb10('0x17')][_0xbb10('0x1a')]);return _0x20bd61(_0x5e136d[_0xbb10('0x17')][_0xbb10('0x1a')]);}logger[_0xbb10('0x17')](_0xbb10('0x19'),_0xa3adc8,_0x5e136d[_0xbb10('0x17')]['message']);return _0x4e47f8(_0x5e136d[_0xbb10('0x17')][_0xbb10('0x1a')]);}else{logger[_0xbb10('0x12')](_0xbb10('0x19'),_0xa3adc8,_0xbb10('0x13'));_0x4e47f8(_0x5e136d[_0xbb10('0x1b')][_0xbb10('0x1a')]);}})[_0xbb10('0x1c')](function(_0xbf2906){logger[_0xbb10('0x17')]('User,\x20%s,\x20%s',_0xa3adc8,_0xbf2906);_0x20bd61(_0xbf2906);});});}exports[_0xbb10('0x1d')]=function(_0x19f48d){var _0x388fab=this;return new Promise(function(_0x109908,_0xdf237d){return db[_0xbb10('0x1e')]['findAll']({'raw':_0x19f48d[_0xbb10('0x1f')]?_0x19f48d[_0xbb10('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x19f48d['options']?_0x19f48d[_0xbb10('0x1f')][_0xbb10('0x20')]||null:null,'attributes':_0x19f48d[_0xbb10('0x1f')]?_0x19f48d[_0xbb10('0x1f')][_0xbb10('0x21')]||null:null,'limit':_0x19f48d[_0xbb10('0x1f')]?_0x19f48d[_0xbb10('0x1f')][_0xbb10('0x22')]||null:null,'include':_0x19f48d[_0xbb10('0x1f')]?_0x19f48d[_0xbb10('0x1f')][_0xbb10('0x23')]?_[_0xbb10('0x24')](_0x19f48d['options']['include'],function(_0x4fb5e0){return{'model':db[_0x4fb5e0[_0xbb10('0x25')]],'as':_0x4fb5e0['as'],'attributes':_0x4fb5e0[_0xbb10('0x21')],'include':_0x4fb5e0[_0xbb10('0x23')]?_['map'](_0x4fb5e0[_0xbb10('0x23')],function(_0x24d586){return{'model':db[_0x24d586[_0xbb10('0x25')]],'as':_0x24d586['as'],'attributes':_0x24d586[_0xbb10('0x21')],'include':_0x24d586[_0xbb10('0x23')]?_[_0xbb10('0x24')](_0x24d586[_0xbb10('0x23')],function(_0x4aabb9){return{'model':db[_0x4aabb9[_0xbb10('0x25')]],'as':_0x4aabb9['as'],'attributes':_0x4aabb9[_0xbb10('0x21')]};}):[]};}):[]};}):[]:[]})[_0xbb10('0x11')](function(_0x2e0249){logger[_0xbb10('0x12')](_0xbb10('0x1d'),_0x19f48d);logger['debug'](_0xbb10('0x1d'),_0x19f48d,JSON['stringify'](_0x2e0249));_0x109908(_0x2e0249);})[_0xbb10('0x1c')](function(_0x56f2da){logger[_0xbb10('0x17')](_0xbb10('0x1d'),_0x56f2da[_0xbb10('0x1a')],_0x19f48d);_0xdf237d(_0x388fab['error'](0x1f4,_0x56f2da['message']));});});};exports[_0xbb10('0x26')]=function(_0x34f65e){var _0x4f590d=this;return new Promise(function(_0x359ad4,_0x37dde7){return db[_0xbb10('0x1e')][_0xbb10('0x27')]({'raw':_0x34f65e[_0xbb10('0x1f')]?_0x34f65e[_0xbb10('0x1f')][_0xbb10('0x28')]===undefined?!![]:![]:!![],'where':_0x34f65e['options']?_0x34f65e[_0xbb10('0x1f')][_0xbb10('0x20')]||null:null,'attributes':_0x34f65e[_0xbb10('0x1f')]?_0x34f65e[_0xbb10('0x1f')][_0xbb10('0x21')]||null:null,'include':_0x34f65e[_0xbb10('0x1f')]?_0x34f65e[_0xbb10('0x1f')][_0xbb10('0x23')]?_[_0xbb10('0x24')](_0x34f65e['options'][_0xbb10('0x23')],function(_0x150107){return{'model':db[_0x150107[_0xbb10('0x25')]],'as':_0x150107['as'],'attributes':_0x150107[_0xbb10('0x21')],'include':_0x150107['include']?_[_0xbb10('0x24')](_0x150107['include'],function(_0x4e2754){return{'model':db[_0x4e2754[_0xbb10('0x25')]],'as':_0x4e2754['as'],'attributes':_0x4e2754[_0xbb10('0x21')],'include':_0x4e2754[_0xbb10('0x23')]?_[_0xbb10('0x24')](_0x4e2754[_0xbb10('0x23')],function(_0x29d11a){return{'model':db[_0x29d11a['model']],'as':_0x29d11a['as'],'attributes':_0x29d11a[_0xbb10('0x21')]};}):[]};}):[]};}):[]:[]})[_0xbb10('0x11')](function(_0x52de31){logger['info']('ShowUser',_0x34f65e);logger[_0xbb10('0x14')](_0xbb10('0x26'),_0x34f65e,JSON[_0xbb10('0x16')](_0x52de31));_0x359ad4(_0x52de31);})['catch'](function(_0x3c0cd7){logger[_0xbb10('0x17')](_0xbb10('0x26'),_0x3c0cd7['message'],_0x34f65e);_0x37dde7(_0x4f590d[_0xbb10('0x17')](0x1f4,_0x3c0cd7[_0xbb10('0x1a')]));});});};exports[_0xbb10('0x29')]=function(_0x446f49){var _0x4f1cdd=this;return new Promise(function(_0xd238e9,_0x110eb5){var _0x5835fd;return db[_0xbb10('0x1e')][_0xbb10('0x27')]({'where':_0x446f49[_0xbb10('0x1f')][_0xbb10('0x20')]||{},'attributes':['id',_0xbb10('0x2a'),_0xbb10('0x2b'),'internal',_0xbb10('0x2c')]})[_0xbb10('0x11')](function(_0x3e7b4c){if(_0x3e7b4c){_0x5835fd=_0x3e7b4c;return db[_0xbb10('0x2d')]['update']({'paused':0x1},{'where':{'UserId':_0x5835fd['id']},'individualHooks':!![]});}})[_0xbb10('0x11')](function(){if(_0x5835fd){return db[_0xbb10('0x2e')][_0xbb10('0x2f')]({'where':{'membername':_0x5835fd[_0xbb10('0x2a')],'type':'PAUSE','exitAt':null}});}})[_0xbb10('0x11')](function(_0x202c60){if(_0x5835fd){if(_0x202c60&&_0x202c60['length']){var _0x5d9a4f=moment()[_0xbb10('0x30')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x318984=0x0,_0x180933=_0x202c60['length'];_0x318984<_0x180933;_0x318984++){_0x202c60[_0x318984][_0xbb10('0x31')]({'exitAt':_0x5d9a4f});}}}})[_0xbb10('0x11')](function(){if(_0x5835fd){var _0x474e99=[];var _0x5cf4f8=utils[_0xbb10('0x32')]();_0x5cf4f8[_0xbb10('0x33')](function(_0x3b9fdf){_0x474e99[_0xbb10('0x34')]({'channel':_0x3b9fdf,'membername':_0x5835fd[_0xbb10('0x2a')],'interface':_[_0xbb10('0x35')](_0x5835fd[_0xbb10('0x2c')])?util[_0xbb10('0x30')](_0xbb10('0x36'),_0x5835fd[_0xbb10('0x2a')]):_0x5835fd[_0xbb10('0x2c')],'type':_0xbb10('0x37'),'enterAt':moment()['format'](_0xbb10('0x38')),'data1':_0x446f49[_0xbb10('0x39')]['type']||_0xbb10('0x3a'),'role':_0x5835fd[_0xbb10('0x2b')],'internal':_0x5835fd[_0xbb10('0x3b')],'uniqueid':_0x446f49[_0xbb10('0x39')][_0xbb10('0x3c')]||null});});return db[_0xbb10('0x2e')][_0xbb10('0x3d')](_0x474e99,{'individualHooks':!![]});}})['then'](function(){if(_0x5835fd){return _0x5835fd['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x446f49[_0xbb10('0x39')][_0xbb10('0x3e')]||_0xbb10('0x3a'),'lastPauseAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')});}})[_0xbb10('0x11')](function(_0x34cf4e){_0xd238e9(_0x34cf4e);})[_0xbb10('0x1c')](function(_0xf820fe){_0x110eb5(_0x4f1cdd[_0xbb10('0x17')](0x1f4,_0xf820fe[_0xbb10('0x1a')]));});});};exports[_0xbb10('0x3f')]=function(_0x460788){var _0x2626d8=this;return new Promise(function(_0x3d7e7e,_0x550111){var _0x5eafac;return db[_0xbb10('0x1e')][_0xbb10('0x40')]({'where':_0x460788[_0xbb10('0x1f')][_0xbb10('0x20')]||{},'attributes':['id',_0xbb10('0x2a')]})[_0xbb10('0x11')](function(_0x358e7e){if(_0x358e7e){_0x5eafac=_0x358e7e;if(_0x460788[_0xbb10('0x39')][_0xbb10('0x41')]&&!utils[_0xbb10('0x42')](_0x460788[_0xbb10('0x39')][_0xbb10('0x41')])){throw new Error(_0xbb10('0x43'));}switch(_0x460788[_0xbb10('0x39')][_0xbb10('0x41')]){case'voice':return db[_0xbb10('0x2d')]['update']({'paused':0x0},{'where':{'UserId':_0x5eafac['id']}})[_0xbb10('0x11')](function(){return db[_0xbb10('0x2e')][_0xbb10('0x27')]({'where':{'channel':_0x460788[_0xbb10('0x39')][_0xbb10('0x41')],'membername':_0x5eafac[_0xbb10('0x2a')],'type':_0xbb10('0x37'),'exitAt':null}});})[_0xbb10('0x11')](function(_0x180400){if(_0x180400){return _0x180400[_0xbb10('0x44')]({'exitAt':moment()[_0xbb10('0x30')](_0xbb10('0x38')),'data2':_0xbb10('0x45')},{'individualHooks':!![]});}return null;})[_0xbb10('0x11')](function(){return _0x5eafac[_0xbb10('0x44')]({'voicePause':![]});});case'mail':case _0xbb10('0x46'):case _0xbb10('0x47'):case _0xbb10('0x48'):case _0xbb10('0x49'):return db[_0xbb10('0x2e')][_0xbb10('0x27')]({'where':{'channel':_0x460788['body'][_0xbb10('0x41')],'membername':_0x5eafac[_0xbb10('0x2a')],'type':_0xbb10('0x37'),'exitAt':null}})[_0xbb10('0x11')](function(_0x432728){return _0x432728[_0xbb10('0x44')]({'exitAt':moment()[_0xbb10('0x30')](_0xbb10('0x38')),'data2':_0xbb10('0x45')},{'individualHooks':!![]});})[_0xbb10('0x11')](function(){var _0x2eb05a={};_[_0xbb10('0x4a')](_0x2eb05a,util[_0xbb10('0x30')]('%s%s',_0x460788['body'][_0xbb10('0x41')],_0xbb10('0x4b')),![]);return _0x5eafac[_0xbb10('0x44')](_0x2eb05a);});default:return db[_0xbb10('0x2d')]['update']({'paused':0x0},{'where':{'UserId':_0x5eafac['id']}})['then'](function(){return db[_0xbb10('0x2e')][_0xbb10('0x2f')]({'where':{'membername':_0x5eafac[_0xbb10('0x2a')],'type':_0xbb10('0x37'),'exitAt':null}});})[_0xbb10('0x11')](function(_0x3e9753){var _0x45c0dc=[];_0x3e9753['forEach'](function(_0x117e84){_0x45c0dc[_0xbb10('0x34')](_0x117e84['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xbb10('0x45')}));});return BPromise[_0xbb10('0x4c')](_0x45c0dc);})[_0xbb10('0x11')](function(){return _0x5eafac['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})['then'](function(_0x5846d1){_0x3d7e7e(_0x5846d1);})[_0xbb10('0x1c')](function(_0x249b33){_0x550111(_0x2626d8[_0xbb10('0x17')](0x1f4,_0x249b33['message']));});});};exports[_0xbb10('0x4d')]=function(_0x13131c){var _0x5a6538=this;return new Promise(function(_0x4a560c,_0x27d7b9){var _0x308896;return db[_0xbb10('0x1e')][_0xbb10('0x40')]({'where':_0x13131c['options'][_0xbb10('0x20')]||{},'attributes':['id',_0xbb10('0x2a')]})[_0xbb10('0x11')](function(_0x5202d7){if(_0x5202d7){_0x308896=_0x5202d7;return db[_0xbb10('0x2d')][_0xbb10('0x4e')]({'where':{'membername':_0x308896[_0xbb10('0x2a')]},'individualHooks':!![]});}})['then'](function(){if(_0x308896){return db[_0xbb10('0x2e')][_0xbb10('0x2f')]({'where':{'membername':_0x308896[_0xbb10('0x2a')],'exitAt':null}});}})[_0xbb10('0x11')](function(_0x5e4a6e){if(_0x308896){if(_0x5e4a6e&&_0x5e4a6e[_0xbb10('0x4f')]){var _0x258e55=[];_0x5e4a6e[_0xbb10('0x33')](function(_0x2d0f4b){_0x258e55['push'](_0x2d0f4b[_0xbb10('0x44')]({'exitAt':moment()[_0xbb10('0x30')](_0xbb10('0x38'))}));});return BPromise[_0xbb10('0x4c')](_0x258e55);}}})[_0xbb10('0x11')](function(){if(_0x308896){return _0x308896[_0xbb10('0x44')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xbb10('0x11')](function(_0x4a30c5){_0x4a560c(_0x4a30c5);})['catch'](function(_0x5acd5e){_0x27d7b9(_0x5a6538[_0xbb10('0x17')](0x1f4,_0x5acd5e[_0xbb10('0x1a')]));});});};exports[_0xbb10('0x50')]=function(_0x5c9afc){var _0x5cd089=this;return new Promise(function(_0x46f462,_0x1b11c0){var _0xd9e743;var _0x3a9677;var _0x260e06;var _0x1ad2ed;return db['User'][_0xbb10('0x40')]({'where':_0x5c9afc[_0xbb10('0x1f')][_0xbb10('0x20')]||{},'attributes':['id',_0xbb10('0x2a'),_0xbb10('0x2b'),'mobile','phone','internal',_0xbb10('0x51'),_0xbb10('0x2c')]})[_0xbb10('0x11')](function(_0x21459e){if(_0x21459e){_0xd9e743=_0x21459e;_0x1ad2ed=_0x5c9afc[_0xbb10('0x39')][_0xbb10('0x2c')]?_0x5c9afc['body'][_0xbb10('0x2c')]:util['format']('SIP/%s',_0xd9e743['name']);return db[_0xbb10('0x1e')][_0xbb10('0x52')]({'where':{'role':_0xbb10('0x53'),'online':!![],'id':{'$ne':_0xd9e743['id']}}});}})[_0xbb10('0x11')](function(_0x5ce94f){if(_0x5ce94f){_0x260e06=_0x5ce94f;return require(_0xbb10('0x54'))['getLicense']();}})['then'](function(_0x165fe9){if(_0x165fe9&&_0x165fe9[_0xbb10('0x55')]&&_0x260e06>=_0x165fe9[_0xbb10('0x55')]){throw new Error(_0xbb10('0x56'));}})[_0xbb10('0x11')](function(){if(_0xd9e743){return db['UserVoiceQueueRt'][_0xbb10('0x4e')]({'where':{'membername':_0xd9e743[_0xbb10('0x2a')]},'individualHooks':!![]});}})[_0xbb10('0x11')](function(){if(_0xd9e743){return _0xd9e743[_0xbb10('0x57')]({'raw':!![]});}})[_0xbb10('0x11')](function(_0x27f42f){if(_0xd9e743){if(_0x27f42f){var _0x174395=[];_0x3a9677=_0x27f42f;if(_0x3a9677['length']){for(var _0x387b10=0x0;_0x387b10<_0x3a9677[_0xbb10('0x4f')];_0x387b10++){_0x174395[_0xbb10('0x34')](db[_0xbb10('0x2d')][_0xbb10('0x58')]({'membername':_0xd9e743[_0xbb10('0x2a')],'UserId':_0xd9e743['id'],'queue_name':_0x3a9677[_0x387b10][_0xbb10('0x2a')],'VoiceQueueId':_0x3a9677[_0x387b10]['id'],'interface':_0x1ad2ed,'paused':_0xd9e743[_0xbb10('0x51')]||![],'penalty':_0x3a9677[_0x387b10]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0xbb10('0x4c')](_0x174395);}}}})[_0xbb10('0x11')](function(){if(_0xd9e743){return db[_0xbb10('0x2e')]['findAll']({'where':{'membername':_0xd9e743['name'],'exitAt':null}});}})['then'](function(_0x23286d){if(_0xd9e743){if(_0x23286d&&_0x23286d['length']){var _0x4e3d6a=[];_0x23286d[_0xbb10('0x33')](function(_0x3ee56b){_0x4e3d6a[_0xbb10('0x34')](_0x3ee56b[_0xbb10('0x44')]({'exitAt':moment()[_0xbb10('0x30')](_0xbb10('0x38'))}));});return BPromise[_0xbb10('0x4c')](_0x4e3d6a);}}})[_0xbb10('0x11')](function(_0x188b97){if(_0xd9e743){var _0x5206e1=[];var _0x318a14=[];var _0x1351eb=utils[_0xbb10('0x32')]();var _0x35b811={'membername':_0xd9e743['name'],'interface':_0x1ad2ed,'enterAt':moment()['format'](_0xbb10('0x38')),'role':_0xd9e743[_0xbb10('0x2b')],'internal':_0xd9e743[_0xbb10('0x3b')]};_0x1351eb[_0xbb10('0x33')](function(_0x5ee705){_0x5206e1[_0xbb10('0x34')](_[_0xbb10('0x59')]({'channel':_0x5ee705,'type':_0xbb10('0x5a'),'data1':_0xbb10('0x5b'),'data2':_0x1ad2ed},_0x35b811));if(_0xd9e743[_0xbb10('0x51')]){_0x318a14['push'](_['merge']({'channel':_0x5ee705,'type':_0xbb10('0x37'),'data1':_0xbb10('0x5c')},_0x35b811));}});return db[_0xbb10('0x2e')]['bulkCreate'](_0x5206e1[_0xbb10('0x5d')](_0x318a14),{'individualHooks':!![]});}})[_0xbb10('0x11')](function(){if(_0xd9e743){return _0xd9e743['update']({'online':!![],'lastLoginAt':moment()['format'](_0xbb10('0x38')),'voicePause':_0xd9e743[_0xbb10('0x51')]||![],'mailPause':_0xd9e743[_0xbb10('0x51')]||![],'chatPause':_0xd9e743['loginInPause']||![],'faxPause':_0xd9e743[_0xbb10('0x51')]||![],'smsPause':_0xd9e743[_0xbb10('0x51')]||![],'openchannelPause':_0xd9e743[_0xbb10('0x51')]||![],'pauseType':_0xd9e743[_0xbb10('0x51')]?_0xbb10('0x5c'):null,'lastPauseAt':moment()[_0xbb10('0x30')](_0xbb10('0x38')),'interface':_0x1ad2ed});}})[_0xbb10('0x11')](function(_0x3e6246){_0x46f462(_0x3e6246);})['catch'](function(_0x3367d4){_0x1b11c0(_0x5cd089[_0xbb10('0x17')](0x1f4,_0x3367d4[_0xbb10('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b90=['removeListener','length','user:'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x4b90,0xa5));var _0x04b9=function(_0x1144ab,_0x176843){_0x1144ab=_0x1144ab-0x0;var _0x380464=_0x4b90[_0x1144ab];return _0x380464;};'use strict';var UserEvents=require('./user.events');var events=['save','remove','update'];function createListener(_0x41cf09,_0x1fe9c3){return function(_0x7ea36d){_0x1fe9c3['emit'](_0x41cf09,_0x7ea36d);};}function removeListener(_0x56fe83,_0xae2ef3){return function(){UserEvents[_0x04b9('0x0')](_0x56fe83,_0xae2ef3);};}exports['register']=function(_0x4152f3){for(var _0x30cb7e=0x0,_0x5df1a8=events[_0x04b9('0x1')];_0x30cb7e<_0x5df1a8;_0x30cb7e++){var _0x20c7e7=events[_0x30cb7e];var _0x43a79d=createListener(_0x04b9('0x2')+_0x20c7e7,_0x4152f3);UserEvents['on'](_0x20c7e7,_0x43a79d);}};
\ No newline at end of file
+var _0xe49b=['emit','removeListener','length','user:','remove','update'];(function(_0x4d613c,_0x55f220){var _0x301fe3=function(_0x5eec0b){while(--_0x5eec0b){_0x4d613c['push'](_0x4d613c['shift']());}};_0x301fe3(++_0x55f220);}(_0xe49b,0x142));var _0xbe49=function(_0x1019a1,_0x3aea88){_0x1019a1=_0x1019a1-0x0;var _0x20c330=_0xe49b[_0x1019a1];return _0x20c330;};'use strict';var UserEvents=require('./user.events');var events=['save',_0xbe49('0x0'),_0xbe49('0x1')];function createListener(_0x22740c,_0x405a54){return function(_0xd062d3){_0x405a54[_0xbe49('0x2')](_0x22740c,_0xd062d3);};}function removeListener(_0xfebe46,_0x2c1344){return function(){UserEvents[_0xbe49('0x3')](_0xfebe46,_0x2c1344);};}exports['register']=function(_0x335396){for(var _0x5944a5=0x0,_0x3c777f=events[_0xbe49('0x4')];_0x5944a5<_0x3c777f;_0x5944a5++){var _0x595c25=events[_0x5944a5];var _0xad9745=createListener(_0xbe49('0x5')+_0x595c25,_0x335396);UserEvents['on'](_0x595c25,_0xad9745);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c09=['../../config/environment','exports','util','path','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x54537e,_0x267dec){var _0x4e9b02=function(_0xf82bd7){while(--_0xf82bd7){_0x54537e['push'](_0x54537e['shift']());}};_0x4e9b02(++_0x267dec);}(_0x7c09,0x102));var _0x97c0=function(_0x15aaef,_0x1afe23){_0x15aaef=_0x15aaef-0x0;var _0x20bd28=_0x7c09[_0x15aaef];return _0x20bd28;};'use strict';var multer=require('multer');var util=require(_0x97c0('0x0'));var path=require(_0x97c0('0x1'));var timeout=require('connect-timeout');var express=require(_0x97c0('0x2'));var router=express[_0x97c0('0x3')]();var auth=require(_0x97c0('0x4'));var interaction=require(_0x97c0('0x5'));var config=require(_0x97c0('0x6'));module[_0x97c0('0x7')]=router;
\ No newline at end of file
+var _0xc4aa=['path','connect-timeout','express','Router','exports','multer','util'];(function(_0x34ea14,_0x2e919b){var _0x40267b=function(_0x4ce585){while(--_0x4ce585){_0x34ea14['push'](_0x34ea14['shift']());}};_0x40267b(++_0x2e919b);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xc4aa[_0x19950b];return _0x3c6b41;};'use strict';var multer=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var path=require(_0xac4a('0x2'));var timeout=require(_0xac4a('0x3'));var express=require(_0xac4a('0x4'));var router=express[_0xac4a('0x5')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0xac4a('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe121=['exports','sequelize'];(function(_0x334201,_0x39f06f){var _0x134700=function(_0x28d73f){while(--_0x28d73f){_0x334201['push'](_0x334201['shift']());}};_0x134700(++_0x39f06f);}(_0xe121,0xf1));var _0x1e12=function(_0x16bb5a,_0x2a527e){_0x16bb5a=_0x16bb5a-0x0;var _0xb0ce86=_0xe121[_0x16bb5a];return _0xb0ce86;};'use strict';var Sequelize=require(_0x1e12('0x0'));module[_0x1e12('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe2ce=['exports'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xe2ce,0xbf));var _0xee2c=function(_0x2d7f0e,_0x3e6fbd){_0x2d7f0e=_0x2d7f0e-0x0;var _0x110b07=_0xe2ce[_0x2d7f0e];return _0x110b07;};'use strict';var Sequelize=require('sequelize');module[_0xee2c('0x0')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2547=['../../config/logger','api','moment','bluebird','request-promise','./userChatQueue.attributes','exports','define','UserChatQueue','user_has_chat_queues','util'];(function(_0x51b751,_0x1bc86b){var _0x182247=function(_0x3efad5){while(--_0x3efad5){_0x51b751['push'](_0x51b751['shift']());}};_0x182247(++_0x1bc86b);}(_0x2547,0x1cd));var _0x7254=function(_0x3a0f50,_0x3ed9cf){_0x3a0f50=_0x3a0f50-0x0;var _0x38f73a=_0x2547[_0x3a0f50];return _0x38f73a;};'use strict';var _=require('lodash');var util=require(_0x7254('0x0'));var logger=require(_0x7254('0x1'))(_0x7254('0x2'));var moment=require(_0x7254('0x3'));var BPromise=require(_0x7254('0x4'));var rp=require(_0x7254('0x5'));var attributes=require(_0x7254('0x6'));module[_0x7254('0x7')]=function(_0x53a02f,_0x2ddeae){return _0x53a02f[_0x7254('0x8')](_0x7254('0x9'),attributes,{'tableName':_0x7254('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xab40=['exports','UserChatQueue','lodash','util','bluebird','request-promise','./userChatQueue.attributes'];(function(_0x23e500,_0x76c67d){var _0x463022=function(_0x4331db){while(--_0x4331db){_0x23e500['push'](_0x23e500['shift']());}};_0x463022(++_0x76c67d);}(_0xab40,0xcd));var _0x0ab4=function(_0xe900c8,_0x5814bc){_0xe900c8=_0xe900c8-0x0;var _0x55910d=_0xab40[_0xe900c8];return _0x55910d;};'use strict';var _=require(_0x0ab4('0x0'));var util=require(_0x0ab4('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x0ab4('0x2'));var rp=require(_0x0ab4('0x3'));var attributes=require(_0x0ab4('0x4'));module[_0x0ab4('0x5')]=function(_0x14634a,_0x57fac1){return _0x14634a['define'](_0x0ab4('0x6'),attributes,{'tableName':'user_has_chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd18d=['moment','bluebird','randomstring','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util'];(function(_0x448970,_0x44b9b4){var _0x2fa420=function(_0x10a754){while(--_0x10a754){_0x448970['push'](_0x448970['shift']());}};_0x2fa420(++_0x44b9b4);}(_0xd18d,0xe5));var _0xdd18=function(_0x58f9a8,_0x46cc13){_0x58f9a8=_0x58f9a8-0x0;var _0x551362=_0xd18d[_0x58f9a8];return _0x551362;};'use strict';var _=require(_0xdd18('0x0'));var util=require(_0xdd18('0x1'));var moment=require(_0xdd18('0x2'));var BPromise=require(_0xdd18('0x3'));var rs=require(_0xdd18('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xdd18('0x5'))('rpc');var config=require(_0xdd18('0x6'));var jayson=require(_0xdd18('0x7'));var client=jayson[_0xdd18('0x8')][_0xdd18('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x322bd4,_0x202c3a,_0x12ac02){return new BPromise(function(_0x4e1a7a,_0x4d9e31){return client['request'](_0x322bd4,_0x12ac02)[_0xdd18('0xa')](function(_0x5ece3c){logger[_0xdd18('0xb')](_0xdd18('0xc'),_0x202c3a,_0xdd18('0xd'));logger['debug'](_0xdd18('0xe'),_0x202c3a,_0xdd18('0xd'),JSON[_0xdd18('0xf')](_0x5ece3c));if(_0x5ece3c[_0xdd18('0x10')]){if(_0x5ece3c[_0xdd18('0x10')][_0xdd18('0x11')]===0x1f4){logger[_0xdd18('0x10')](_0xdd18('0xc'),_0x202c3a,_0x5ece3c[_0xdd18('0x10')]['message']);return _0x4d9e31(_0x5ece3c[_0xdd18('0x10')]['message']);}logger[_0xdd18('0x10')]('UserChatQueue,\x20%s,\x20%s',_0x202c3a,_0x5ece3c[_0xdd18('0x10')][_0xdd18('0x12')]);return _0x4e1a7a(_0x5ece3c[_0xdd18('0x10')][_0xdd18('0x12')]);}else{logger[_0xdd18('0xb')](_0xdd18('0xc'),_0x202c3a,_0xdd18('0xd'));_0x4e1a7a(_0x5ece3c[_0xdd18('0x13')][_0xdd18('0x12')]);}})[_0xdd18('0x14')](function(_0x52299a){logger[_0xdd18('0x10')]('UserChatQueue,\x20%s,\x20%s',_0x202c3a,_0x52299a);_0x4d9e31(_0x52299a);});});}
\ No newline at end of file
+var _0x69b4=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','UserChatQueue,\x20%s,\x20%s','request\x20sent','debug','UserChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','info','catch','lodash','util','moment','randomstring','ioredis'];(function(_0x5c7e5e,_0x5e59f8){var _0x2d40cf=function(_0x25e8f6){while(--_0x25e8f6){_0x5c7e5e['push'](_0x5c7e5e['shift']());}};_0x2d40cf(++_0x5e59f8);}(_0x69b4,0x133));var _0x469b=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x69b4[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x469b('0x0'));var util=require(_0x469b('0x1'));var moment=require(_0x469b('0x2'));var BPromise=require('bluebird');var rs=require(_0x469b('0x3'));var fs=require('fs');var Redis=require(_0x469b('0x4'));var db=require(_0x469b('0x5'))['db'];var utils=require(_0x469b('0x6'));var logger=require(_0x469b('0x7'))(_0x469b('0x8'));var config=require(_0x469b('0x9'));var jayson=require(_0x469b('0xa'));var client=jayson[_0x469b('0xb')][_0x469b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x390028,_0x5e3dad,_0x2d5cb1){return new BPromise(function(_0x5c3975,_0x72f6f4){return client[_0x469b('0xd')](_0x390028,_0x2d5cb1)[_0x469b('0xe')](function(_0x459230){logger['info'](_0x469b('0xf'),_0x5e3dad,_0x469b('0x10'));logger[_0x469b('0x11')](_0x469b('0x12'),_0x5e3dad,'request\x20sent',JSON['stringify'](_0x459230));if(_0x459230['error']){if(_0x459230[_0x469b('0x13')][_0x469b('0x14')]===0x1f4){logger['error'](_0x469b('0xf'),_0x5e3dad,_0x459230[_0x469b('0x13')][_0x469b('0x15')]);return _0x72f6f4(_0x459230[_0x469b('0x13')][_0x469b('0x15')]);}logger['error']('UserChatQueue,\x20%s,\x20%s',_0x5e3dad,_0x459230[_0x469b('0x13')][_0x469b('0x15')]);return _0x5c3975(_0x459230['error'][_0x469b('0x15')]);}else{logger[_0x469b('0x16')]('UserChatQueue,\x20%s,\x20%s',_0x5e3dad,'request\x20sent');_0x5c3975(_0x459230['result']['message']);}})[_0x469b('0x17')](function(_0xcf18b9){logger[_0x469b('0x13')](_0x469b('0xf'),_0x5e3dad,_0xcf18b9);_0x72f6f4(_0xcf18b9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc65=['exports','multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x537b1c,_0x493e02){var _0x2ac3dc=function(_0x205683){while(--_0x205683){_0x537b1c['push'](_0x537b1c['shift']());}};_0x2ac3dc(++_0x493e02);}(_0xfc65,0x1e1));var _0x5fc6=function(_0x43270a,_0x235dc5){_0x43270a=_0x43270a-0x0;var _0x57016f=_0xfc65[_0x43270a];return _0x57016f;};'use strict';var multer=require(_0x5fc6('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x5fc6('0x1'));var express=require(_0x5fc6('0x2'));var router=express[_0x5fc6('0x3')]();var auth=require(_0x5fc6('0x4'));var interaction=require(_0x5fc6('0x5'));var config=require(_0x5fc6('0x6'));module[_0x5fc6('0x7')]=router;
\ No newline at end of file
+var _0x7ea9=['Router','../../components/interaction/service','../../config/environment','exports','util','path','connect-timeout','express'];(function(_0xc6be3a,_0x540e05){var _0x56a310=function(_0x50a144){while(--_0x50a144){_0xc6be3a['push'](_0xc6be3a['shift']());}};_0x56a310(++_0x540e05);}(_0x7ea9,0xec));var _0x97ea=function(_0x5d94ee,_0x153856){_0x5d94ee=_0x5d94ee-0x0;var _0x3d4f0e=_0x7ea9[_0x5d94ee];return _0x3d4f0e;};'use strict';var multer=require('multer');var util=require(_0x97ea('0x0'));var path=require(_0x97ea('0x1'));var timeout=require(_0x97ea('0x2'));var express=require(_0x97ea('0x3'));var router=express[_0x97ea('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0x97ea('0x5'));var config=require(_0x97ea('0x6'));module[_0x97ea('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd89=['sequelize','INTEGER','STRING'];(function(_0x1b8b44,_0x192b1b){var _0x213379=function(_0x57181d){while(--_0x57181d){_0x1b8b44['push'](_0x1b8b44['shift']());}};_0x213379(++_0x192b1b);}(_0xdd89,0xf9));var _0x9dd8=function(_0x36b037,_0x2b234e){_0x36b037=_0x36b037-0x0;var _0x409194=_0xdd89[_0x36b037];return _0x409194;};'use strict';var Sequelize=require(_0x9dd8('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x9dd8('0x1')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x9dd8('0x1')],'defaultValue':0x0},'queue':{'type':Sequelize[_0x9dd8('0x2')]}};
\ No newline at end of file
+var _0xb5b2=['STRING','sequelize','exports','INTEGER'];(function(_0x194237,_0x539bc0){var _0x21c934=function(_0x5caa4b){while(--_0x5caa4b){_0x194237['push'](_0x194237['shift']());}};_0x21c934(++_0x539bc0);}(_0xb5b2,0xb1));var _0x2b5b=function(_0x5b93db,_0x44c092){_0x5b93db=_0x5b93db-0x0;var _0x5ecbcd=_0xb5b2[_0x5b93db];return _0x5ecbcd;};'use strict';var Sequelize=require(_0x2b5b('0x0'));module[_0x2b5b('0x1')]={'penalty':{'type':Sequelize[_0x2b5b('0x2')],'defaultValue':0x0},'assigned':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'queue':{'type':Sequelize[_0x2b5b('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcca7=['define','UserFaxQueue','user_has_fax_queues','lodash','util','../../config/logger','api','request-promise','exports'];(function(_0x54f3dc,_0x2b4c77){var _0x1a589b=function(_0x5015b1){while(--_0x5015b1){_0x54f3dc['push'](_0x54f3dc['shift']());}};_0x1a589b(++_0x2b4c77);}(_0xcca7,0x1aa));var _0x7cca=function(_0x32366f,_0x443e25){_0x32366f=_0x32366f-0x0;var _0x586493=_0xcca7[_0x32366f];return _0x586493;};'use strict';var _=require(_0x7cca('0x0'));var util=require(_0x7cca('0x1'));var logger=require(_0x7cca('0x2'))(_0x7cca('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x7cca('0x4'));var attributes=require('./userFaxQueue.attributes');module[_0x7cca('0x5')]=function(_0x9523f7,_0x2126f7){return _0x9523f7[_0x7cca('0x6')](_0x7cca('0x7'),attributes,{'tableName':_0x7cca('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x29d4=['moment','bluebird','request-promise','exports','define','UserFaxQueue','user_has_fax_queues','lodash','../../config/logger','api'];(function(_0x21849f,_0x429836){var _0x4e28ef=function(_0x33f6d9){while(--_0x33f6d9){_0x21849f['push'](_0x21849f['shift']());}};_0x4e28ef(++_0x429836);}(_0x29d4,0x1a1));var _0x429d=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0x29d4[_0x411add];return _0x238242;};'use strict';var _=require(_0x429d('0x0'));var util=require('util');var logger=require(_0x429d('0x1'))(_0x429d('0x2'));var moment=require(_0x429d('0x3'));var BPromise=require(_0x429d('0x4'));var rp=require(_0x429d('0x5'));var attributes=require('./userFaxQueue.attributes');module[_0x429d('0x6')]=function(_0x3f43f5,_0x36a3d8){return _0x3f43f5[_0x429d('0x7')](_0x429d('0x8'),attributes,{'tableName':_0x429d('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e22=['debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','request','then','info','UserFaxQueue,\x20%s,\x20%s'];(function(_0x1414c6,_0x319890){var _0x335dc6=function(_0x47719c){while(--_0x47719c){_0x1414c6['push'](_0x1414c6['shift']());}};_0x335dc6(++_0x319890);}(_0x3e22,0xa8));var _0x23e2=function(_0xb1473e,_0x3ed6d7){_0xb1473e=_0xb1473e-0x0;var _0x9760f4=_0x3e22[_0xb1473e];return _0x9760f4;};'use strict';var _=require('lodash');var util=require(_0x23e2('0x0'));var moment=require('moment');var BPromise=require(_0x23e2('0x1'));var rs=require(_0x23e2('0x2'));var fs=require('fs');var db=require(_0x23e2('0x3'))['db'];var utils=require(_0x23e2('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x23e2('0x5'));var jayson=require(_0x23e2('0x6'));var client=jayson['client'][_0x23e2('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x433a85,_0x3a8351,_0x927fbb){return new BPromise(function(_0xb71434,_0x4c13ae){return client[_0x23e2('0x8')](_0x433a85,_0x927fbb)[_0x23e2('0x9')](function(_0x30f0e4){logger[_0x23e2('0xa')](_0x23e2('0xb'),_0x3a8351,'request\x20sent');logger[_0x23e2('0xc')](_0x23e2('0xd'),_0x3a8351,_0x23e2('0xe'),JSON[_0x23e2('0xf')](_0x30f0e4));if(_0x30f0e4[_0x23e2('0x10')]){if(_0x30f0e4['error']['code']===0x1f4){logger[_0x23e2('0x10')](_0x23e2('0xb'),_0x3a8351,_0x30f0e4[_0x23e2('0x10')][_0x23e2('0x11')]);return _0x4c13ae(_0x30f0e4[_0x23e2('0x10')][_0x23e2('0x11')]);}logger[_0x23e2('0x10')](_0x23e2('0xb'),_0x3a8351,_0x30f0e4[_0x23e2('0x10')][_0x23e2('0x11')]);return _0xb71434(_0x30f0e4[_0x23e2('0x10')][_0x23e2('0x11')]);}else{logger[_0x23e2('0xa')](_0x23e2('0xb'),_0x3a8351,'request\x20sent');_0xb71434(_0x30f0e4[_0x23e2('0x12')][_0x23e2('0x11')]);}})[_0x23e2('0x13')](function(_0x92f299){logger[_0x23e2('0x10')](_0x23e2('0xb'),_0x3a8351,_0x92f299);_0x4c13ae(_0x92f299);});});}
\ No newline at end of file
+var _0x0f74=['bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','UserFaxQueue,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','lodash','util','moment'];(function(_0x41e347,_0x4bc2bb){var _0xc4dd9a=function(_0x2860ff){while(--_0x2860ff){_0x41e347['push'](_0x41e347['shift']());}};_0xc4dd9a(++_0x4bc2bb);}(_0x0f74,0xef));var _0x40f7=function(_0x578c66,_0x3e090f){_0x578c66=_0x578c66-0x0;var _0x586aa2=_0x0f74[_0x578c66];return _0x586aa2;};'use strict';var _=require(_0x40f7('0x0'));var util=require(_0x40f7('0x1'));var moment=require(_0x40f7('0x2'));var BPromise=require(_0x40f7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x40f7('0x4'));var db=require(_0x40f7('0x5'))['db'];var utils=require(_0x40f7('0x6'));var logger=require(_0x40f7('0x7'))(_0x40f7('0x8'));var config=require(_0x40f7('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x40f7('0xa')][_0x40f7('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2a6a96,_0x4b89c5,_0x348361){return new BPromise(function(_0x257e89,_0x346855){return client[_0x40f7('0xc')](_0x2a6a96,_0x348361)[_0x40f7('0xd')](function(_0x40456f){logger[_0x40f7('0xe')](_0x40f7('0xf'),_0x4b89c5,'request\x20sent');logger['debug']('UserFaxQueue,\x20%s,\x20%s,\x20%s',_0x4b89c5,_0x40f7('0x10'),JSON[_0x40f7('0x11')](_0x40456f));if(_0x40456f[_0x40f7('0x12')]){if(_0x40456f[_0x40f7('0x12')][_0x40f7('0x13')]===0x1f4){logger[_0x40f7('0x12')](_0x40f7('0xf'),_0x4b89c5,_0x40456f[_0x40f7('0x12')][_0x40f7('0x14')]);return _0x346855(_0x40456f[_0x40f7('0x12')][_0x40f7('0x14')]);}logger[_0x40f7('0x12')]('UserFaxQueue,\x20%s,\x20%s',_0x4b89c5,_0x40456f[_0x40f7('0x12')]['message']);return _0x257e89(_0x40456f[_0x40f7('0x12')][_0x40f7('0x14')]);}else{logger['info'](_0x40f7('0xf'),_0x4b89c5,_0x40f7('0x10'));_0x257e89(_0x40456f[_0x40f7('0x15')][_0x40f7('0x14')]);}})['catch'](function(_0x58bbda){logger[_0x40f7('0x12')]('UserFaxQueue,\x20%s,\x20%s',_0x4b89c5,_0x58bbda);_0x346855(_0x58bbda);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81c6=['Router','../../components/auth/service','../../components/interaction/service','exports','util'];(function(_0x566760,_0x1f7104){var _0x30ca6d=function(_0x3aa193){while(--_0x3aa193){_0x566760['push'](_0x566760['shift']());}};_0x30ca6d(++_0x1f7104);}(_0x81c6,0x1d5));var _0x681c=function(_0x566816,_0x73fea5){_0x566816=_0x566816-0x0;var _0x36719c=_0x81c6[_0x566816];return _0x36719c;};'use strict';var multer=require('multer');var util=require(_0x681c('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x681c('0x1')]();var auth=require(_0x681c('0x2'));var interaction=require(_0x681c('0x3'));var config=require('../../config/environment');module[_0x681c('0x4')]=router;
\ No newline at end of file
+var _0x8458=['express','Router','../../components/auth/service','../../config/environment','exports','multer','path','connect-timeout'];(function(_0x43511c,_0x3a10ea){var _0x5b5710=function(_0x1fb233){while(--_0x1fb233){_0x43511c['push'](_0x43511c['shift']());}};_0x5b5710(++_0x3a10ea);}(_0x8458,0x1a5));var _0x8845=function(_0x3e41d7,_0x42568b){_0x3e41d7=_0x3e41d7-0x0;var _0x402f94=_0x8458[_0x3e41d7];return _0x402f94;};'use strict';var multer=require(_0x8845('0x0'));var util=require('util');var path=require(_0x8845('0x1'));var timeout=require(_0x8845('0x2'));var express=require(_0x8845('0x3'));var router=express[_0x8845('0x4')]();var auth=require(_0x8845('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x8845('0x6'));module[_0x8845('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd33c=['INTEGER','exports'];(function(_0x1daad9,_0x2e4b92){var _0x503da8=function(_0x3ba33c){while(--_0x3ba33c){_0x1daad9['push'](_0x1daad9['shift']());}};_0x503da8(++_0x2e4b92);}(_0xd33c,0xf7));var _0xcd33=function(_0x4bfac3,_0x58324d){_0x4bfac3=_0x4bfac3-0x0;var _0x15f0f2=_0xd33c[_0x4bfac3];return _0x15f0f2;};'use strict';var Sequelize=require('sequelize');module[_0xcd33('0x0')]={'penalty':{'type':Sequelize[_0xcd33('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2d86=['sequelize'];(function(_0x2476b2,_0xab2067){var _0x8b2264=function(_0x6d9cba){while(--_0x6d9cba){_0x2476b2['push'](_0x2476b2['shift']());}};_0x8b2264(++_0xab2067);}(_0x2d86,0x1d9));var _0x62d8=function(_0x1ae4a9,_0x4c0ed9){_0x1ae4a9=_0x1ae4a9-0x0;var _0x54d0b0=_0x2d86[_0x1ae4a9];return _0x54d0b0;};'use strict';var Sequelize=require(_0x62d8('0x0'));module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['UserMailQueue','user_has_mail_queues','util','api','moment','bluebird','./userMailQueue.attributes','exports','define'];(function(_0x172d3e,_0x2e06a4){var _0x3edc3b=function(_0x3ab712){while(--_0x3ab712){_0x172d3e['push'](_0x172d3e['shift']());}};_0x3edc3b(++_0x2e06a4);}(_0xadb5,0xad));var _0x5adb=function(_0x3a58b2,_0x40a218){_0x3a58b2=_0x3a58b2-0x0;var _0x123575=_0xadb5[_0x3a58b2];return _0x123575;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var logger=require('../../config/logger')(_0x5adb('0x1'));var moment=require(_0x5adb('0x2'));var BPromise=require(_0x5adb('0x3'));var rp=require('request-promise');var attributes=require(_0x5adb('0x4'));module[_0x5adb('0x5')]=function(_0x2e3ef4,_0x4cb1d1){return _0x2e3ef4[_0x5adb('0x6')](_0x5adb('0x7'),attributes,{'tableName':_0x5adb('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbc7a=['util','../../config/logger','moment','bluebird','request-promise','./userMailQueue.attributes','exports','define','UserMailQueue','user_has_mail_queues','lodash'];(function(_0x2ca462,_0x17f00b){var _0x2d6bdd=function(_0x4ae957){while(--_0x4ae957){_0x2ca462['push'](_0x2ca462['shift']());}};_0x2d6bdd(++_0x17f00b);}(_0xbc7a,0xa4));var _0xabc7=function(_0x1973fc,_0x4583b1){_0x1973fc=_0x1973fc-0x0;var _0x3642e9=_0xbc7a[_0x1973fc];return _0x3642e9;};'use strict';var _=require(_0xabc7('0x0'));var util=require(_0xabc7('0x1'));var logger=require(_0xabc7('0x2'))('api');var moment=require(_0xabc7('0x3'));var BPromise=require(_0xabc7('0x4'));var rp=require(_0xabc7('0x5'));var attributes=require(_0xabc7('0x6'));module[_0xabc7('0x7')]=function(_0x422283,_0x52fa9d){return _0x422283[_0xabc7('0x8')](_0xabc7('0x9'),attributes,{'tableName':_0xabc7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4016=['catch','util','moment','../../config/utils','rpc','../../config/environment','http','then','info','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','UserMailQueue,\x20%s,\x20%s','message','result'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4016,0x131));var _0x6401=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0x4016[_0x465028];return _0xb783d4;};'use strict';var _=require('lodash');var util=require(_0x6401('0x0'));var moment=require(_0x6401('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x6401('0x2'));var logger=require('../../config/logger')(_0x6401('0x3'));var config=require(_0x6401('0x4'));var jayson=require('jayson/promise');var client=jayson['client'][_0x6401('0x5')]({'port':0x232a});function respondWithRpcPromise(_0x34c7f2,_0x5b7cac,_0x3b989d){return new BPromise(function(_0x56856a,_0x1fbc01){return client['request'](_0x34c7f2,_0x3b989d)[_0x6401('0x6')](function(_0x1e748d){logger[_0x6401('0x7')]('UserMailQueue,\x20%s,\x20%s',_0x5b7cac,'request\x20sent');logger[_0x6401('0x8')](_0x6401('0x9'),_0x5b7cac,_0x6401('0xa'),JSON['stringify'](_0x1e748d));if(_0x1e748d[_0x6401('0xb')]){if(_0x1e748d['error']['code']===0x1f4){logger[_0x6401('0xb')](_0x6401('0xc'),_0x5b7cac,_0x1e748d[_0x6401('0xb')][_0x6401('0xd')]);return _0x1fbc01(_0x1e748d[_0x6401('0xb')][_0x6401('0xd')]);}logger[_0x6401('0xb')](_0x6401('0xc'),_0x5b7cac,_0x1e748d[_0x6401('0xb')][_0x6401('0xd')]);return _0x56856a(_0x1e748d[_0x6401('0xb')][_0x6401('0xd')]);}else{logger[_0x6401('0x7')](_0x6401('0xc'),_0x5b7cac,'request\x20sent');_0x56856a(_0x1e748d[_0x6401('0xe')][_0x6401('0xd')]);}})[_0x6401('0xf')](function(_0xd56185){logger[_0x6401('0xb')](_0x6401('0xc'),_0x5b7cac,_0xd56185);_0x1fbc01(_0xd56185);});});}
\ No newline at end of file
+var _0xf20e=['catch','util','moment','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','UserMailQueue,\x20%s,\x20%s','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message'];(function(_0x56229f,_0x542eaa){var _0x4cd6e3=function(_0x27fa12){while(--_0x27fa12){_0x56229f['push'](_0x56229f['shift']());}};_0x4cd6e3(++_0x542eaa);}(_0xf20e,0x155));var _0xef20=function(_0x413b13,_0x4a25de){_0x413b13=_0x413b13-0x0;var _0x1cad2e=_0xf20e[_0x413b13];return _0x1cad2e;};'use strict';var _=require('lodash');var util=require(_0xef20('0x0'));var moment=require(_0xef20('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xef20('0x2'));var db=require(_0xef20('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xef20('0x4'))('rpc');var config=require(_0xef20('0x5'));var jayson=require(_0xef20('0x6'));var client=jayson[_0xef20('0x7')][_0xef20('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x397b59,_0x21b370,_0x464a4f){return new BPromise(function(_0x1d2cb6,_0x556773){return client[_0xef20('0x9')](_0x397b59,_0x464a4f)[_0xef20('0xa')](function(_0x4869bc){logger[_0xef20('0xb')](_0xef20('0xc'),_0x21b370,'request\x20sent');logger[_0xef20('0xd')](_0xef20('0xe'),_0x21b370,_0xef20('0xf'),JSON[_0xef20('0x10')](_0x4869bc));if(_0x4869bc[_0xef20('0x11')]){if(_0x4869bc[_0xef20('0x11')]['code']===0x1f4){logger[_0xef20('0x11')](_0xef20('0xc'),_0x21b370,_0x4869bc[_0xef20('0x11')][_0xef20('0x12')]);return _0x556773(_0x4869bc['error'][_0xef20('0x12')]);}logger['error']('UserMailQueue,\x20%s,\x20%s',_0x21b370,_0x4869bc[_0xef20('0x11')]['message']);return _0x1d2cb6(_0x4869bc[_0xef20('0x11')][_0xef20('0x12')]);}else{logger['info'](_0xef20('0xc'),_0x21b370,_0xef20('0xf'));_0x1d2cb6(_0x4869bc['result'][_0xef20('0x12')]);}})[_0xef20('0x13')](function(_0x1b4a08){logger[_0xef20('0x11')](_0xef20('0xc'),_0x21b370,_0x1b4a08);_0x556773(_0x1b4a08);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef4d=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','exports','multer','util','path'];(function(_0xbe97ea,_0x1a2102){var _0x5ddc50=function(_0x3de1d9){while(--_0x3de1d9){_0xbe97ea['push'](_0xbe97ea['shift']());}};_0x5ddc50(++_0x1a2102);}(_0xef4d,0x165));var _0xdef4=function(_0x45f951,_0x2750c8){_0x45f951=_0x45f951-0x0;var _0x24756c=_0xef4d[_0x45f951];return _0x24756c;};'use strict';var multer=require(_0xdef4('0x0'));var util=require(_0xdef4('0x1'));var path=require(_0xdef4('0x2'));var timeout=require(_0xdef4('0x3'));var express=require(_0xdef4('0x4'));var router=express[_0xdef4('0x5')]();var auth=require(_0xdef4('0x6'));var interaction=require(_0xdef4('0x7'));var config=require(_0xdef4('0x8'));module[_0xdef4('0x9')]=router;
\ No newline at end of file
+var _0x0618=['util','connect-timeout','express','../../components/interaction/service','../../config/environment','exports','multer'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x0618,0x1c6));var _0x8061=function(_0x194801,_0x147ece){_0x194801=_0x194801-0x0;var _0x18c56c=_0x0618[_0x194801];return _0x18c56c;};'use strict';var multer=require(_0x8061('0x0'));var util=require(_0x8061('0x1'));var path=require('path');var timeout=require(_0x8061('0x2'));var express=require(_0x8061('0x3'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x8061('0x4'));var config=require(_0x8061('0x5'));module[_0x8061('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4311=['sequelize','exports','INTEGER'];(function(_0x5bd884,_0x576015){var _0x5a171f=function(_0x4bdbb2){while(--_0x4bdbb2){_0x5bd884['push'](_0x5bd884['shift']());}};_0x5a171f(++_0x576015);}(_0x4311,0x72));var _0x1431=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x4311[_0x1facfa];return _0x9ec701;};'use strict';var Sequelize=require(_0x1431('0x0'));module[_0x1431('0x1')]={'penalty':{'type':Sequelize[_0x1431('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2b91=['INTEGER','sequelize','exports'];(function(_0x283802,_0x4db7cd){var _0xeaa43c=function(_0x143352){while(--_0x143352){_0x283802['push'](_0x283802['shift']());}};_0xeaa43c(++_0x4db7cd);}(_0x2b91,0x88));var _0x12b9=function(_0x532244,_0x34368d){_0x532244=_0x532244-0x0;var _0x45d839=_0x2b91[_0x532244];return _0x45d839;};'use strict';var Sequelize=require(_0x12b9('0x0'));module[_0x12b9('0x1')]={'penalty':{'type':Sequelize[_0x12b9('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd408=['UserOpenchannelQueue','user_has_openchannel_queues','lodash','util','../../config/logger','api','bluebird','./userOpenchannelQueue.attributes','exports'];(function(_0x58f56d,_0x4f0209){var _0x4cb08f=function(_0x4ac291){while(--_0x4ac291){_0x58f56d['push'](_0x58f56d['shift']());}};_0x4cb08f(++_0x4f0209);}(_0xd408,0xbf));var _0x8d40=function(_0x4143c3,_0x3a98ef){_0x4143c3=_0x4143c3-0x0;var _0x490e16=_0xd408[_0x4143c3];return _0x490e16;};'use strict';var _=require(_0x8d40('0x0'));var util=require(_0x8d40('0x1'));var logger=require(_0x8d40('0x2'))(_0x8d40('0x3'));var moment=require('moment');var BPromise=require(_0x8d40('0x4'));var rp=require('request-promise');var attributes=require(_0x8d40('0x5'));module[_0x8d40('0x6')]=function(_0x482276,_0x4320db){return _0x482276['define'](_0x8d40('0x7'),attributes,{'tableName':_0x8d40('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdce1=['UserOpenchannelQueue','user_has_openchannel_queues','moment','request-promise','define'];(function(_0x2f67f3,_0x40986f){var _0x2b6fc1=function(_0x3e9bcf){while(--_0x3e9bcf){_0x2f67f3['push'](_0x2f67f3['shift']());}};_0x2b6fc1(++_0x40986f);}(_0xdce1,0x1d8));var _0x1dce=function(_0x5a5292,_0x82bec2){_0x5a5292=_0x5a5292-0x0;var _0x229b6f=_0xdce1[_0x5a5292];return _0x229b6f;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x1dce('0x0'));var BPromise=require('bluebird');var rp=require(_0x1dce('0x1'));var attributes=require('./userOpenchannelQueue.attributes');module['exports']=function(_0x43cda0,_0x40f939){return _0x43cda0[_0x1dce('0x2')](_0x1dce('0x3'),attributes,{'tableName':_0x1dce('0x4'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x819f=['util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch'];(function(_0x28528a,_0x35c0ba){var _0x299e4=function(_0x3728fe){while(--_0x3728fe){_0x28528a['push'](_0x28528a['shift']());}};_0x299e4(++_0x35c0ba);}(_0x819f,0x176));var _0xf819=function(_0x419550,_0x15cdf1){_0x419550=_0x419550-0x0;var _0x55f9ef=_0x819f[_0x419550];return _0x55f9ef;};'use strict';var _=require('lodash');var util=require(_0xf819('0x0'));var moment=require('moment');var BPromise=require(_0xf819('0x1'));var rs=require(_0xf819('0x2'));var fs=require('fs');var db=require(_0xf819('0x3'))['db'];var utils=require(_0xf819('0x4'));var logger=require(_0xf819('0x5'))('rpc');var config=require(_0xf819('0x6'));var jayson=require(_0xf819('0x7'));var client=jayson[_0xf819('0x8')][_0xf819('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xccc233,_0x9d1d78,_0x2466eb){return new BPromise(function(_0x2f8ddf,_0x470c8d){return client[_0xf819('0xa')](_0xccc233,_0x2466eb)[_0xf819('0xb')](function(_0x2363c3){logger[_0xf819('0xc')](_0xf819('0xd'),_0x9d1d78,_0xf819('0xe'));logger[_0xf819('0xf')](_0xf819('0x10'),_0x9d1d78,_0xf819('0xe'),JSON[_0xf819('0x11')](_0x2363c3));if(_0x2363c3['error']){if(_0x2363c3[_0xf819('0x12')][_0xf819('0x13')]===0x1f4){logger[_0xf819('0x12')](_0xf819('0xd'),_0x9d1d78,_0x2363c3['error'][_0xf819('0x14')]);return _0x470c8d(_0x2363c3[_0xf819('0x12')][_0xf819('0x14')]);}logger[_0xf819('0x12')](_0xf819('0xd'),_0x9d1d78,_0x2363c3['error']['message']);return _0x2f8ddf(_0x2363c3[_0xf819('0x12')][_0xf819('0x14')]);}else{logger[_0xf819('0xc')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x9d1d78,_0xf819('0xe'));_0x2f8ddf(_0x2363c3['result'][_0xf819('0x14')]);}})[_0xf819('0x15')](function(_0x3498f6){logger[_0xf819('0x12')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x9d1d78,_0x3498f6);_0x470c8d(_0x3498f6);});});}
\ No newline at end of file
+var _0x09fd=['stringify','error','message','info','request\x20sent','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','UserOpenchannelQueue,\x20%s,\x20%s','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x09fd,0x11b));var _0xd09f=function(_0xc66583,_0x404ee3){_0xc66583=_0xc66583-0x0;var _0x580314=_0x09fd[_0xc66583];return _0x580314;};'use strict';var _=require(_0xd09f('0x0'));var util=require(_0xd09f('0x1'));var moment=require(_0xd09f('0x2'));var BPromise=require(_0xd09f('0x3'));var rs=require(_0xd09f('0x4'));var fs=require('fs');var Redis=require(_0xd09f('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xd09f('0x6'));var logger=require('../../config/logger')(_0xd09f('0x7'));var config=require(_0xd09f('0x8'));var jayson=require(_0xd09f('0x9'));var client=jayson[_0xd09f('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4fcb7b,_0x1cb932,_0x3d470e){return new BPromise(function(_0x7a171,_0x440d7d){return client[_0xd09f('0xb')](_0x4fcb7b,_0x3d470e)[_0xd09f('0xc')](function(_0x180445){logger['info'](_0xd09f('0xd'),_0x1cb932,'request\x20sent');logger[_0xd09f('0xe')](_0xd09f('0xf'),_0x1cb932,'request\x20sent',JSON[_0xd09f('0x10')](_0x180445));if(_0x180445['error']){if(_0x180445['error']['code']===0x1f4){logger[_0xd09f('0x11')](_0xd09f('0xd'),_0x1cb932,_0x180445[_0xd09f('0x11')][_0xd09f('0x12')]);return _0x440d7d(_0x180445[_0xd09f('0x11')][_0xd09f('0x12')]);}logger[_0xd09f('0x11')](_0xd09f('0xd'),_0x1cb932,_0x180445[_0xd09f('0x11')][_0xd09f('0x12')]);return _0x7a171(_0x180445['error'][_0xd09f('0x12')]);}else{logger[_0xd09f('0x13')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x1cb932,_0xd09f('0x14'));_0x7a171(_0x180445[_0xd09f('0x15')][_0xd09f('0x12')]);}})[_0xd09f('0x16')](function(_0x51105d){logger['error'](_0xd09f('0xd'),_0x1cb932,_0x51105d);_0x440d7d(_0x51105d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe944=['multer','connect-timeout','../../components/auth/service','exports'];(function(_0x499c0d,_0x3a36b7){var _0x19dfb4=function(_0x55463f){while(--_0x55463f){_0x499c0d['push'](_0x499c0d['shift']());}};_0x19dfb4(++_0x3a36b7);}(_0xe944,0x174));var _0x4e94=function(_0x3de026,_0x322390){_0x3de026=_0x3de026-0x0;var _0x25b870=_0xe944[_0x3de026];return _0x25b870;};'use strict';var multer=require(_0x4e94('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x4e94('0x1'));var express=require('express');var router=express['Router']();var auth=require(_0x4e94('0x2'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x4e94('0x3')]=router;
\ No newline at end of file
+var _0xde81=['util','path','connect-timeout','express','Router','../../config/environment','multer'];(function(_0x4417d1,_0x181447){var _0x4ce59d=function(_0x5b4def){while(--_0x5b4def){_0x4417d1['push'](_0x4417d1['shift']());}};_0x4ce59d(++_0x181447);}(_0xde81,0x109));var _0x1de8=function(_0xe7bd86,_0x30f9ae){_0xe7bd86=_0xe7bd86-0x0;var _0x357f27=_0xde81[_0xe7bd86];return _0x357f27;};'use strict';var multer=require(_0x1de8('0x0'));var util=require(_0x1de8('0x1'));var path=require(_0x1de8('0x2'));var timeout=require(_0x1de8('0x3'));var express=require(_0x1de8('0x4'));var router=express[_0x1de8('0x5')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x1de8('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7695=['sequelize','exports','INTEGER'];(function(_0x55f8b4,_0x43f30d){var _0x2475f9=function(_0xdd6f4a){while(--_0xdd6f4a){_0x55f8b4['push'](_0x55f8b4['shift']());}};_0x2475f9(++_0x43f30d);}(_0x7695,0x17d));var _0x5769=function(_0x57add5,_0x3f4db8){_0x57add5=_0x57add5-0x0;var _0xba94b8=_0x7695[_0x57add5];return _0xba94b8;};'use strict';var Sequelize=require(_0x5769('0x0'));module[_0x5769('0x1')]={'penalty':{'type':Sequelize[_0x5769('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x62b6=['exports','sequelize'];(function(_0x345e6a,_0x16ef53){var _0x186d5b=function(_0x326957){while(--_0x326957){_0x345e6a['push'](_0x345e6a['shift']());}};_0x186d5b(++_0x16ef53);}(_0x62b6,0x1eb));var _0x662b=function(_0x3761c4,_0x43f4ed){_0x3761c4=_0x3761c4-0x0;var _0x462132=_0x62b6[_0x3761c4];return _0x462132;};'use strict';var Sequelize=require(_0x662b('0x0'));module[_0x662b('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x983c=['UserSmsQueue','lodash','util','moment','bluebird','request-promise','./userSmsQueue.attributes','exports','define'];(function(_0x20ef64,_0x4a8fe9){var _0x3707d8=function(_0x5b9a88){while(--_0x5b9a88){_0x20ef64['push'](_0x20ef64['shift']());}};_0x3707d8(++_0x4a8fe9);}(_0x983c,0x6d));var _0xc983=function(_0x2947d1,_0x5e70b0){_0x2947d1=_0x2947d1-0x0;var _0x2b36a5=_0x983c[_0x2947d1];return _0x2b36a5;};'use strict';var _=require(_0xc983('0x0'));var util=require(_0xc983('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xc983('0x2'));var BPromise=require(_0xc983('0x3'));var rp=require(_0xc983('0x4'));var attributes=require(_0xc983('0x5'));module[_0xc983('0x6')]=function(_0x294e3d,_0x409b4a){return _0x294e3d[_0xc983('0x7')](_0xc983('0x8'),attributes,{'tableName':'user_has_sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2bcc=['lodash','util','../../config/logger','moment','bluebird','./userSmsQueue.attributes','exports','UserSmsQueue','user_has_sms_queues'];(function(_0x53bc7b,_0x35c85b){var _0x223865=function(_0x40e1f6){while(--_0x40e1f6){_0x53bc7b['push'](_0x53bc7b['shift']());}};_0x223865(++_0x35c85b);}(_0x2bcc,0x87));var _0xc2bc=function(_0x2811ed,_0x17e65a){_0x2811ed=_0x2811ed-0x0;var _0x4da0de=_0x2bcc[_0x2811ed];return _0x4da0de;};'use strict';var _=require(_0xc2bc('0x0'));var util=require(_0xc2bc('0x1'));var logger=require(_0xc2bc('0x2'))('api');var moment=require(_0xc2bc('0x3'));var BPromise=require(_0xc2bc('0x4'));var rp=require('request-promise');var attributes=require(_0xc2bc('0x5'));module[_0xc2bc('0x6')]=function(_0x1b4ce8,_0x47e072){return _0x1b4ce8['define'](_0xc2bc('0x7'),attributes,{'tableName':_0xc2bc('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfae6=['jayson/promise','http','then','info','request\x20sent','debug','UserSmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','UserSmsQueue,\x20%s,\x20%s','result','catch','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x5b78e8,_0x55096b){var _0xf2c321=function(_0x4e0cff){while(--_0x4e0cff){_0x5b78e8['push'](_0x5b78e8['shift']());}};_0xf2c321(++_0x55096b);}(_0xfae6,0x150));var _0x6fae=function(_0x1b965d,_0x583526){_0x1b965d=_0x1b965d-0x0;var _0x5c5c4b=_0xfae6[_0x1b965d];return _0x5c5c4b;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x6fae('0x0'));var BPromise=require('bluebird');var rs=require(_0x6fae('0x1'));var fs=require('fs');var db=require(_0x6fae('0x2'))['db'];var utils=require(_0x6fae('0x3'));var logger=require('../../config/logger')(_0x6fae('0x4'));var config=require(_0x6fae('0x5'));var jayson=require(_0x6fae('0x6'));var client=jayson['client'][_0x6fae('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x56f017,_0x17ab32,_0x24cd18){return new BPromise(function(_0x15b50d,_0x1fee3e){return client['request'](_0x56f017,_0x24cd18)[_0x6fae('0x8')](function(_0xa5e7d4){logger[_0x6fae('0x9')]('UserSmsQueue,\x20%s,\x20%s',_0x17ab32,_0x6fae('0xa'));logger[_0x6fae('0xb')](_0x6fae('0xc'),_0x17ab32,_0x6fae('0xa'),JSON[_0x6fae('0xd')](_0xa5e7d4));if(_0xa5e7d4[_0x6fae('0xe')]){if(_0xa5e7d4['error']['code']===0x1f4){logger[_0x6fae('0xe')]('UserSmsQueue,\x20%s,\x20%s',_0x17ab32,_0xa5e7d4[_0x6fae('0xe')][_0x6fae('0xf')]);return _0x1fee3e(_0xa5e7d4[_0x6fae('0xe')][_0x6fae('0xf')]);}logger[_0x6fae('0xe')](_0x6fae('0x10'),_0x17ab32,_0xa5e7d4[_0x6fae('0xe')]['message']);return _0x15b50d(_0xa5e7d4[_0x6fae('0xe')][_0x6fae('0xf')]);}else{logger[_0x6fae('0x9')](_0x6fae('0x10'),_0x17ab32,'request\x20sent');_0x15b50d(_0xa5e7d4[_0x6fae('0x11')][_0x6fae('0xf')]);}})[_0x6fae('0x12')](function(_0xe60048){logger[_0x6fae('0xe')](_0x6fae('0x10'),_0x17ab32,_0xe60048);_0x1fee3e(_0xe60048);});});}
\ No newline at end of file
+var _0xfa8c=['../../config/environment','jayson/promise','client','http','request','info','UserSmsQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x57680d,_0xed4229){var _0x544fbf=function(_0x26d19c){while(--_0x26d19c){_0x57680d['push'](_0x57680d['shift']());}};_0x544fbf(++_0xed4229);}(_0xfa8c,0x1bf));var _0xcfa8=function(_0x5af806,_0x4a01ff){_0x5af806=_0x5af806-0x0;var _0x15d241=_0xfa8c[_0x5af806];return _0x15d241;};'use strict';var _=require(_0xcfa8('0x0'));var util=require(_0xcfa8('0x1'));var moment=require(_0xcfa8('0x2'));var BPromise=require(_0xcfa8('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcfa8('0x4'));var db=require(_0xcfa8('0x5'))['db'];var utils=require(_0xcfa8('0x6'));var logger=require(_0xcfa8('0x7'))(_0xcfa8('0x8'));var config=require(_0xcfa8('0x9'));var jayson=require(_0xcfa8('0xa'));var client=jayson[_0xcfa8('0xb')][_0xcfa8('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2efb3e,_0x41f753,_0x54a51c){return new BPromise(function(_0x1393a6,_0x45dc1f){return client[_0xcfa8('0xd')](_0x2efb3e,_0x54a51c)['then'](function(_0x3bb980){logger[_0xcfa8('0xe')](_0xcfa8('0xf'),_0x41f753,_0xcfa8('0x10'));logger[_0xcfa8('0x11')]('UserSmsQueue,\x20%s,\x20%s,\x20%s',_0x41f753,_0xcfa8('0x10'),JSON[_0xcfa8('0x12')](_0x3bb980));if(_0x3bb980[_0xcfa8('0x13')]){if(_0x3bb980[_0xcfa8('0x13')][_0xcfa8('0x14')]===0x1f4){logger[_0xcfa8('0x13')](_0xcfa8('0xf'),_0x41f753,_0x3bb980['error'][_0xcfa8('0x15')]);return _0x45dc1f(_0x3bb980[_0xcfa8('0x13')][_0xcfa8('0x15')]);}logger[_0xcfa8('0x13')](_0xcfa8('0xf'),_0x41f753,_0x3bb980[_0xcfa8('0x13')][_0xcfa8('0x15')]);return _0x1393a6(_0x3bb980[_0xcfa8('0x13')][_0xcfa8('0x15')]);}else{logger['info'](_0xcfa8('0xf'),_0x41f753,'request\x20sent');_0x1393a6(_0x3bb980[_0xcfa8('0x16')][_0xcfa8('0x15')]);}})[_0xcfa8('0x17')](function(_0x50eea3){logger['error'](_0xcfa8('0xf'),_0x41f753,_0x50eea3);_0x45dc1f(_0x50eea3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2ad=['exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x5ecadc,_0x1cf9f1){var _0x565037=function(_0x22908b){while(--_0x22908b){_0x5ecadc['push'](_0x5ecadc['shift']());}};_0x565037(++_0x1cf9f1);}(_0xb2ad,0x16d));var _0xdb2a=function(_0x34a3a3,_0x10e7e4){_0x34a3a3=_0x34a3a3-0x0;var _0x5e4af1=_0xb2ad[_0x34a3a3];return _0x5e4af1;};'use strict';var multer=require('multer');var util=require(_0xdb2a('0x0'));var path=require('path');var timeout=require(_0xdb2a('0x1'));var express=require(_0xdb2a('0x2'));var router=express[_0xdb2a('0x3')]();var auth=require(_0xdb2a('0x4'));var interaction=require(_0xdb2a('0x5'));var config=require('../../config/environment');module[_0xdb2a('0x6')]=router;
\ No newline at end of file
+var _0x7409=['../../config/environment','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x1b1944,_0x57c430){var _0x26100f=function(_0x23a849){while(--_0x23a849){_0x1b1944['push'](_0x1b1944['shift']());}};_0x26100f(++_0x57c430);}(_0x7409,0x6e));var _0x9740=function(_0x3355c0,_0x4b530b){_0x3355c0=_0x3355c0-0x0;var _0x5a3288=_0x7409[_0x3355c0];return _0x5a3288;};'use strict';var multer=require(_0x9740('0x0'));var util=require(_0x9740('0x1'));var path=require('path');var timeout=require(_0x9740('0x2'));var express=require(_0x9740('0x3'));var router=express[_0x9740('0x4')]();var auth=require(_0x9740('0x5'));var interaction=require(_0x9740('0x6'));var config=require(_0x9740('0x7'));module[_0x9740('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf686=['exports','INTEGER','sequelize'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xf686,0x13d));var _0x6f68=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf686[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require(_0x6f68('0x0'));module[_0x6f68('0x1')]={'penalty':{'type':Sequelize[_0x6f68('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x1589=['INTEGER','sequelize','exports'];(function(_0x2b7fe1,_0x278871){var _0x4232ca=function(_0x449d14){while(--_0x449d14){_0x2b7fe1['push'](_0x2b7fe1['shift']());}};_0x4232ca(++_0x278871);}(_0x1589,0x1d5));var _0x9158=function(_0x297c55,_0x34fa75){_0x297c55=_0x297c55-0x0;var _0x120389=_0x1589[_0x297c55];return _0x120389;};'use strict';var Sequelize=require(_0x9158('0x0'));module[_0x9158('0x1')]={'penalty':{'type':Sequelize[_0x9158('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04f2=['../../config/logger','api','moment','bluebird','request-promise','exports','UserVoiceQueue','user_has_voice_queues','lodash'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x04f2,0x8f));var _0x204f=function(_0x12acb8,_0x47eed8){_0x12acb8=_0x12acb8-0x0;var _0x563261=_0x04f2[_0x12acb8];return _0x563261;};'use strict';var _=require(_0x204f('0x0'));var util=require('util');var logger=require(_0x204f('0x1'))(_0x204f('0x2'));var moment=require(_0x204f('0x3'));var BPromise=require(_0x204f('0x4'));var rp=require(_0x204f('0x5'));var attributes=require('./userVoiceQueue.attributes');module[_0x204f('0x6')]=function(_0x134d64,_0xcecf53){return _0x134d64['define'](_0x204f('0x7'),attributes,{'tableName':_0x204f('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0327=['request-promise','./userVoiceQueue.attributes','define','UserVoiceQueue','user_has_voice_queues','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x0327,0xf7));var _0x7032=function(_0x3fe5c2,_0x17e4ea){_0x3fe5c2=_0x3fe5c2-0x0;var _0x2ca5eb=_0x0327[_0x3fe5c2];return _0x2ca5eb;};'use strict';var _=require(_0x7032('0x0'));var util=require(_0x7032('0x1'));var logger=require(_0x7032('0x2'))(_0x7032('0x3'));var moment=require(_0x7032('0x4'));var BPromise=require(_0x7032('0x5'));var rp=require(_0x7032('0x6'));var attributes=require(_0x7032('0x7'));module['exports']=function(_0x1bab18,_0x4be41c){return _0x1bab18[_0x7032('0x8')](_0x7032('0x9'),attributes,{'tableName':_0x7032('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3fad=['UserVoiceQueue,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x2a0e76,_0x1af268){var _0xaacb2e=function(_0x34a4b8){while(--_0x34a4b8){_0x2a0e76['push'](_0x2a0e76['shift']());}};_0xaacb2e(++_0x1af268);}(_0x3fad,0x157));var _0xd3fa=function(_0xb63a75,_0x228cf3){_0xb63a75=_0xb63a75-0x0;var _0x35c138=_0x3fad[_0xb63a75];return _0x35c138;};'use strict';var _=require(_0xd3fa('0x0'));var util=require(_0xd3fa('0x1'));var moment=require(_0xd3fa('0x2'));var BPromise=require(_0xd3fa('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0xd3fa('0x4'))['db'];var utils=require(_0xd3fa('0x5'));var logger=require(_0xd3fa('0x6'))(_0xd3fa('0x7'));var config=require(_0xd3fa('0x8'));var jayson=require(_0xd3fa('0x9'));var client=jayson[_0xd3fa('0xa')][_0xd3fa('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xd362c1,_0x33e53b,_0x2338be){return new BPromise(function(_0x1698d8,_0x5ada48){return client[_0xd3fa('0xc')](_0xd362c1,_0x2338be)[_0xd3fa('0xd')](function(_0xe957eb){logger['info'](_0xd3fa('0xe'),_0x33e53b,_0xd3fa('0xf'));logger[_0xd3fa('0x10')](_0xd3fa('0x11'),_0x33e53b,_0xd3fa('0xf'),JSON['stringify'](_0xe957eb));if(_0xe957eb[_0xd3fa('0x12')]){if(_0xe957eb[_0xd3fa('0x12')][_0xd3fa('0x13')]===0x1f4){logger[_0xd3fa('0x12')](_0xd3fa('0xe'),_0x33e53b,_0xe957eb[_0xd3fa('0x12')][_0xd3fa('0x14')]);return _0x5ada48(_0xe957eb[_0xd3fa('0x12')][_0xd3fa('0x14')]);}logger['error'](_0xd3fa('0xe'),_0x33e53b,_0xe957eb[_0xd3fa('0x12')][_0xd3fa('0x14')]);return _0x1698d8(_0xe957eb[_0xd3fa('0x12')][_0xd3fa('0x14')]);}else{logger[_0xd3fa('0x15')](_0xd3fa('0xe'),_0x33e53b,'request\x20sent');_0x1698d8(_0xe957eb[_0xd3fa('0x16')][_0xd3fa('0x14')]);}})[_0xd3fa('0x17')](function(_0x39767a){logger[_0xd3fa('0x12')](_0xd3fa('0xe'),_0x33e53b,_0x39767a);_0x5ada48(_0x39767a);});});}
\ No newline at end of file
+var _0x37aa=['message','result','catch','lodash','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x15fb8b,_0x189215){var _0x5bbf2a=function(_0x55b81f){while(--_0x55b81f){_0x15fb8b['push'](_0x15fb8b['shift']());}};_0x5bbf2a(++_0x189215);}(_0x37aa,0x17f));var _0xa37a=function(_0x32b30c,_0x2d5ec8){_0x32b30c=_0x32b30c-0x0;var _0xcfc212=_0x37aa[_0x32b30c];return _0xcfc212;};'use strict';var _=require(_0xa37a('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xa37a('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa37a('0x2'))['db'];var utils=require(_0xa37a('0x3'));var logger=require(_0xa37a('0x4'))(_0xa37a('0x5'));var config=require(_0xa37a('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xa37a('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4d329f,_0x6c986c,_0x568b61){return new BPromise(function(_0x126ee7,_0x109001){return client['request'](_0x4d329f,_0x568b61)['then'](function(_0x412958){logger[_0xa37a('0x8')](_0xa37a('0x9'),_0x6c986c,_0xa37a('0xa'));logger[_0xa37a('0xb')](_0xa37a('0xc'),_0x6c986c,_0xa37a('0xa'),JSON[_0xa37a('0xd')](_0x412958));if(_0x412958[_0xa37a('0xe')]){if(_0x412958[_0xa37a('0xe')][_0xa37a('0xf')]===0x1f4){logger[_0xa37a('0xe')]('UserVoiceQueue,\x20%s,\x20%s',_0x6c986c,_0x412958['error']['message']);return _0x109001(_0x412958[_0xa37a('0xe')]['message']);}logger[_0xa37a('0xe')]('UserVoiceQueue,\x20%s,\x20%s',_0x6c986c,_0x412958['error'][_0xa37a('0x10')]);return _0x126ee7(_0x412958[_0xa37a('0xe')][_0xa37a('0x10')]);}else{logger[_0xa37a('0x8')](_0xa37a('0x9'),_0x6c986c,'request\x20sent');_0x126ee7(_0x412958[_0xa37a('0x11')][_0xa37a('0x10')]);}})[_0xa37a('0x12')](function(_0x144a0e){logger[_0xa37a('0xe')](_0xa37a('0x9'),_0x6c986c,_0x144a0e);_0x109001(_0x144a0e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x687b=['../../config/environment','exports','multer','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service'];(function(_0x1d2bc8,_0x2860bc){var _0x1857e1=function(_0x3a3073){while(--_0x3a3073){_0x1d2bc8['push'](_0x1d2bc8['shift']());}};_0x1857e1(++_0x2860bc);}(_0x687b,0x14a));var _0xb687=function(_0x4fe56b,_0x53d094){_0x4fe56b=_0x4fe56b-0x0;var _0x238f05=_0x687b[_0x4fe56b];return _0x238f05;};'use strict';var multer=require(_0xb687('0x0'));var util=require(_0xb687('0x1'));var path=require(_0xb687('0x2'));var timeout=require(_0xb687('0x3'));var express=require('express');var router=express['Router']();var auth=require(_0xb687('0x4'));var interaction=require(_0xb687('0x5'));var config=require(_0xb687('0x6'));module[_0xb687('0x7')]=router;
\ No newline at end of file
+var _0x0309=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','exports','multer','path','express'];(function(_0x36a3d8,_0x3ec124){var _0x24af01=function(_0x23f5a7){while(--_0x23f5a7){_0x36a3d8['push'](_0x36a3d8['shift']());}};_0x24af01(++_0x3ec124);}(_0x0309,0x165));var _0x9030=function(_0x4584aa,_0x2920ee){_0x4584aa=_0x4584aa-0x0;var _0x4c3a3d=_0x0309[_0x4584aa];return _0x4c3a3d;};'use strict';var multer=require(_0x9030('0x0'));var util=require('util');var path=require(_0x9030('0x1'));var timeout=require('connect-timeout');var express=require(_0x9030('0x2'));var router=express[_0x9030('0x3')]();var auth=require(_0x9030('0x4'));var interaction=require(_0x9030('0x5'));var config=require(_0x9030('0x6'));module[_0x9030('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa803=['sequelize','exports','STRING','Required\x20by\x20Asterisk','INTEGER','queue_interface'];(function(_0x5edbd6,_0x422189){var _0x453fe2=function(_0x590c95){while(--_0x590c95){_0x5edbd6['push'](_0x5edbd6['shift']());}};_0x453fe2(++_0x422189);}(_0xa803,0x162));var _0x3a80=function(_0xf2f186,_0x449037){_0xf2f186=_0xf2f186-0x0;var _0x509675=_0xa803[_0xf2f186];return _0x509675;};'use strict';var Sequelize=require(_0x3a80('0x0'));module[_0x3a80('0x1')]={'uniqueid':{'type':Sequelize['INTEGER'],'primaryKey':!![],'autoIncrement':!![],'comment':'Required\x20by\x20Asterisk'},'membername':{'type':Sequelize[_0x3a80('0x2')],'allowNull':![],'comment':_0x3a80('0x3')},'UserId':{'type':Sequelize[_0x3a80('0x4')],'allowNull':![]},'queue_name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'queue_interface','comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize[_0x3a80('0x4')],'allowNull':![]},'interface':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x3a80('0x5'),'comment':_0x3a80('0x3')},'penalty':{'type':Sequelize[_0x3a80('0x4')](0xb),'defaultValue':0x0,'comment':_0x3a80('0x3')},'paused':{'type':Sequelize[_0x3a80('0x4')](0xb),'defaultValue':0x0,'comment':_0x3a80('0x3')}};
\ No newline at end of file
+var _0xdc37=['STRING','queue_interface','sequelize','exports','INTEGER','Required\x20by\x20Asterisk'];(function(_0x5bee46,_0x45784c){var _0x4cec07=function(_0x596ab2){while(--_0x596ab2){_0x5bee46['push'](_0x5bee46['shift']());}};_0x4cec07(++_0x45784c);}(_0xdc37,0x9e));var _0x7dc3=function(_0x11a220,_0x4e470a){_0x11a220=_0x11a220-0x0;var _0x20d8fe=_0xdc37[_0x11a220];return _0x20d8fe;};'use strict';var Sequelize=require(_0x7dc3('0x0'));module[_0x7dc3('0x1')]={'uniqueid':{'type':Sequelize[_0x7dc3('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':_0x7dc3('0x3')},'membername':{'type':Sequelize[_0x7dc3('0x4')],'allowNull':![],'comment':_0x7dc3('0x3')},'UserId':{'type':Sequelize[_0x7dc3('0x2')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x7dc3('0x4')],'allowNull':![],'unique':_0x7dc3('0x5'),'comment':_0x7dc3('0x3')},'VoiceQueueId':{'type':Sequelize[_0x7dc3('0x2')],'allowNull':![]},'interface':{'type':Sequelize[_0x7dc3('0x4')],'allowNull':![],'unique':'queue_interface','comment':'Required\x20by\x20Asterisk'},'penalty':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'comment':_0x7dc3('0x3')},'paused':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1355=['hook','events','../../mysqldb','emit','hasOwnProperty'];(function(_0x56ed18,_0x3ea908){var _0x215477=function(_0x46eb02){while(--_0x46eb02){_0x56ed18['push'](_0x56ed18['shift']());}};_0x215477(++_0x3ea908);}(_0x1355,0x132));var _0x5135=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x1355[_0x3ab51d];return _0x29a04e;};'use strict';var EventEmitter=require(_0x5135('0x0'));var UserVoiceQueueRt=require(_0x5135('0x1'))['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x325476){return function(_0x52d230,_0x4dae47,_0x1c2d47){UserVoiceQueueRtEvents['emit'](_0x325476+':'+_0x52d230['id'],_0x52d230);UserVoiceQueueRtEvents[_0x5135('0x2')](_0x325476,_0x52d230);_0x1c2d47(null);};}for(var e in events){if(events[_0x5135('0x3')](e)){var event=events[e];UserVoiceQueueRt[_0x5135('0x4')](e,emitEvent(event));}}module['exports']=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0x6b1c=['events','../../mysqldb','UserVoiceQueueRt','setMaxListeners','save','remove','emit','hasOwnProperty','exports'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x6b1c,0x1a7));var _0xc6b1=function(_0x7ea5bc,_0x59b726){_0x7ea5bc=_0x7ea5bc-0x0;var _0x3484cf=_0x6b1c[_0x7ea5bc];return _0x3484cf;};'use strict';var EventEmitter=require(_0xc6b1('0x0'));var UserVoiceQueueRt=require(_0xc6b1('0x1'))['db'][_0xc6b1('0x2')];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0xc6b1('0x3')](0x0);var events={'afterCreate':_0xc6b1('0x4'),'afterUpdate':'update','afterDestroy':_0xc6b1('0x5')};function emitEvent(_0x1e7c96){return function(_0x49a7a9,_0x2b2bba,_0x322019){UserVoiceQueueRtEvents[_0xc6b1('0x6')](_0x1e7c96+':'+_0x49a7a9['id'],_0x49a7a9);UserVoiceQueueRtEvents['emit'](_0x1e7c96,_0x49a7a9);_0x322019(null);};}for(var e in events){if(events[_0xc6b1('0x7')](e)){var event=events[e];UserVoiceQueueRt['hook'](e,emitEvent(event));}}module[_0xc6b1('0x8')]=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0015=['moment','request-promise','./userVoiceQueueRt.attributes','exports','define','UserVoiceQueueRt','user_has_voice_queues_rt','lodash','util','../../config/logger','api'];(function(_0xd6ae40,_0x58f493){var _0x2aae3a=function(_0xd806e6){while(--_0xd806e6){_0xd6ae40['push'](_0xd6ae40['shift']());}};_0x2aae3a(++_0x58f493);}(_0x0015,0x151));var _0x5001=function(_0x44f996,_0x12d6f4){_0x44f996=_0x44f996-0x0;var _0x3764f1=_0x0015[_0x44f996];return _0x3764f1;};'use strict';var _=require(_0x5001('0x0'));var util=require(_0x5001('0x1'));var logger=require(_0x5001('0x2'))(_0x5001('0x3'));var moment=require(_0x5001('0x4'));var BPromise=require('bluebird');var rp=require(_0x5001('0x5'));var attributes=require(_0x5001('0x6'));module[_0x5001('0x7')]=function(_0x5c4282,_0x101a8e){return _0x5c4282[_0x5001('0x8')](_0x5001('0x9'),attributes,{'tableName':_0x5001('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5a33=['UserVoiceQueueRt','user_has_voice_queues_rt','lodash','util','../../config/logger','moment','bluebird','request-promise','./userVoiceQueueRt.attributes','exports','define'];(function(_0x13d380,_0x3e7f2b){var _0x27abea=function(_0x5a46f1){while(--_0x5a46f1){_0x13d380['push'](_0x13d380['shift']());}};_0x27abea(++_0x3e7f2b);}(_0x5a33,0xd3));var _0x35a3=function(_0x40893e,_0xcfdd59){_0x40893e=_0x40893e-0x0;var _0x5564f7=_0x5a33[_0x40893e];return _0x5564f7;};'use strict';var _=require(_0x35a3('0x0'));var util=require(_0x35a3('0x1'));var logger=require(_0x35a3('0x2'))('api');var moment=require(_0x35a3('0x3'));var BPromise=require(_0x35a3('0x4'));var rp=require(_0x35a3('0x5'));var attributes=require(_0x35a3('0x6'));module[_0x35a3('0x7')]=function(_0x388b5b,_0x5e9379){return _0x388b5b[_0x35a3('0x8')](_0x35a3('0x9'),attributes,{'tableName':_0x35a3('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1000=['../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./userVoiceQueueRt.socket','register','request','then','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','sequelize','COUNT','literal','debug','stringify','lodash','util','moment','randomstring','../../mysqldb','../../config/utils'];(function(_0x377743,_0x584cab){var _0x30ae30=function(_0x5dde9b){while(--_0x5dde9b){_0x377743['push'](_0x377743['shift']());}};_0x30ae30(++_0x584cab);}(_0x1000,0x1e8));var _0x0100=function(_0x2d91a7,_0xd8a84b){_0x2d91a7=_0x2d91a7-0x0;var _0x4848cb=_0x1000[_0x2d91a7];return _0x4848cb;};'use strict';var _=require(_0x0100('0x0'));var util=require(_0x0100('0x1'));var moment=require(_0x0100('0x2'));var BPromise=require('bluebird');var rs=require(_0x0100('0x3'));var fs=require('fs');var db=require(_0x0100('0x4'))['db'];var utils=require(_0x0100('0x5'));var logger=require(_0x0100('0x6'))(_0x0100('0x7'));var config=require(_0x0100('0x8'));var jayson=require(_0x0100('0x9'));var client=jayson[_0x0100('0xa')]['http']({'port':0x232a});config[_0x0100('0xb')]=_[_0x0100('0xc')](config['redis'],{'host':_0x0100('0xd'),'port':0x18eb});var socket=require(_0x0100('0xe'))(config[_0x0100('0xb')]);require(_0x0100('0xf'))[_0x0100('0x10')](socket);function respondWithRpcPromise(_0x5e358e,_0xe8b55e,_0x12332f){return new BPromise(function(_0x2f19c8,_0x5d248a){return client[_0x0100('0x11')](_0x5e358e,_0x12332f)[_0x0100('0x12')](function(_0x17fdf8){logger[_0x0100('0x13')](_0x0100('0x14'),_0xe8b55e,_0x0100('0x15'));logger['debug']('UserVoiceQueueRt,\x20%s,\x20%s,\x20%s',_0xe8b55e,_0x0100('0x15'),JSON['stringify'](_0x17fdf8));if(_0x17fdf8[_0x0100('0x16')]){if(_0x17fdf8[_0x0100('0x16')][_0x0100('0x17')]===0x1f4){logger['error'](_0x0100('0x14'),_0xe8b55e,_0x17fdf8['error'][_0x0100('0x18')]);return _0x5d248a(_0x17fdf8[_0x0100('0x16')][_0x0100('0x18')]);}logger[_0x0100('0x16')](_0x0100('0x14'),_0xe8b55e,_0x17fdf8[_0x0100('0x16')][_0x0100('0x18')]);return _0x2f19c8(_0x17fdf8['error'][_0x0100('0x18')]);}else{logger['info'](_0x0100('0x14'),_0xe8b55e,_0x0100('0x15'));_0x2f19c8(_0x17fdf8[_0x0100('0x19')]['message']);}})[_0x0100('0x1a')](function(_0xa819eb){logger[_0x0100('0x16')](_0x0100('0x14'),_0xe8b55e,_0xa819eb);_0x5d248a(_0xa819eb);});});}exports[_0x0100('0x1b')]=function(_0x366841){var _0x4921ae=this;return new Promise(function(_0x58f01c,_0x2f065d){return db[_0x0100('0x1c')][_0x0100('0x1d')]({'raw':_0x366841[_0x0100('0x1e')]?_0x366841[_0x0100('0x1e')][_0x0100('0x1f')]===undefined?!![]:![]:!![],'where':_0x366841[_0x0100('0x1e')]?_0x366841[_0x0100('0x1e')][_0x0100('0x20')]||null:null,'attributes':[[db[_0x0100('0x21')]['fn'](_0x0100('0x22'),db[_0x0100('0x21')]['fn']('IF',db[_0x0100('0x21')][_0x0100('0x23')]('`paused`\x20=\x201,\x201,\x20null'))),'outboundQueuePauses']]})['then'](function(_0x36560f){logger['info'](_0x0100('0x1b'),_0x366841);logger[_0x0100('0x24')](_0x0100('0x1b'),_0x366841,JSON[_0x0100('0x25')](_0x36560f));_0x58f01c(_0x36560f);})[_0x0100('0x1a')](function(_0x4656e5){logger[_0x0100('0x16')](_0x0100('0x1b'),_0x4656e5['message'],_0x366841);_0x2f065d(_0x4921ae['error'](0x1f4,_0x4656e5[_0x0100('0x18')]));});});};
\ No newline at end of file
+var _0x5cae=['jayson/promise','client','http','defaults','redis','socket.io-emitter','./userVoiceQueueRt.socket','register','request','then','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','debug','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','sequelize','literal','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x463e5a,_0xf19807){var _0x1f7dc7=function(_0x2e9d47){while(--_0x2e9d47){_0x463e5a['push'](_0x463e5a['shift']());}};_0x1f7dc7(++_0xf19807);}(_0x5cae,0xe7));var _0xe5ca=function(_0x4df17c,_0x2d2b61){_0x4df17c=_0x4df17c-0x0;var _0x4e79b5=_0x5cae[_0x4df17c];return _0x4e79b5;};'use strict';var _=require(_0xe5ca('0x0'));var util=require(_0xe5ca('0x1'));var moment=require(_0xe5ca('0x2'));var BPromise=require(_0xe5ca('0x3'));var rs=require(_0xe5ca('0x4'));var fs=require('fs');var Redis=require(_0xe5ca('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xe5ca('0x6'));var logger=require(_0xe5ca('0x7'))(_0xe5ca('0x8'));var config=require('../../config/environment');var jayson=require(_0xe5ca('0x9'));var client=jayson[_0xe5ca('0xa')][_0xe5ca('0xb')]({'port':0x232a});config['redis']=_[_0xe5ca('0xc')](config[_0xe5ca('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0xe5ca('0xe'))(new Redis(config['redis']));require(_0xe5ca('0xf'))[_0xe5ca('0x10')](socket);function respondWithRpcPromise(_0x2582f8,_0x18bb12,_0x4cff6e){return new BPromise(function(_0x19e3c0,_0x188f5f){return client[_0xe5ca('0x11')](_0x2582f8,_0x4cff6e)[_0xe5ca('0x12')](function(_0x1e4632){logger[_0xe5ca('0x13')](_0xe5ca('0x14'),_0x18bb12,_0xe5ca('0x15'));logger[_0xe5ca('0x16')](_0xe5ca('0x17'),_0x18bb12,_0xe5ca('0x15'),JSON[_0xe5ca('0x18')](_0x1e4632));if(_0x1e4632[_0xe5ca('0x19')]){if(_0x1e4632[_0xe5ca('0x19')][_0xe5ca('0x1a')]===0x1f4){logger[_0xe5ca('0x19')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x18bb12,_0x1e4632[_0xe5ca('0x19')][_0xe5ca('0x1b')]);return _0x188f5f(_0x1e4632['error'][_0xe5ca('0x1b')]);}logger[_0xe5ca('0x19')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x18bb12,_0x1e4632[_0xe5ca('0x19')][_0xe5ca('0x1b')]);return _0x19e3c0(_0x1e4632['error'][_0xe5ca('0x1b')]);}else{logger[_0xe5ca('0x13')](_0xe5ca('0x14'),_0x18bb12,_0xe5ca('0x15'));_0x19e3c0(_0x1e4632[_0xe5ca('0x1c')][_0xe5ca('0x1b')]);}})[_0xe5ca('0x1d')](function(_0x123fb2){logger[_0xe5ca('0x19')](_0xe5ca('0x14'),_0x18bb12,_0x123fb2);_0x188f5f(_0x123fb2);});});}exports[_0xe5ca('0x1e')]=function(_0x45eb7b){var _0x5bb225=this;return new Promise(function(_0x1d8f03,_0x1218ab){return db[_0xe5ca('0x1f')][_0xe5ca('0x20')]({'raw':_0x45eb7b[_0xe5ca('0x21')]?_0x45eb7b['options'][_0xe5ca('0x22')]===undefined?!![]:![]:!![],'where':_0x45eb7b[_0xe5ca('0x21')]?_0x45eb7b[_0xe5ca('0x21')][_0xe5ca('0x23')]||null:null,'attributes':[[db[_0xe5ca('0x24')]['fn']('COUNT',db[_0xe5ca('0x24')]['fn']('IF',db['sequelize'][_0xe5ca('0x25')](_0xe5ca('0x26')))),_0xe5ca('0x27')]]})[_0xe5ca('0x12')](function(_0x39f285){logger[_0xe5ca('0x13')](_0xe5ca('0x1e'),_0x45eb7b);logger[_0xe5ca('0x16')](_0xe5ca('0x1e'),_0x45eb7b,JSON[_0xe5ca('0x18')](_0x39f285));_0x1d8f03(_0x39f285);})[_0xe5ca('0x1d')](function(_0x24d844){logger['error'](_0xe5ca('0x1e'),_0x24d844[_0xe5ca('0x1b')],_0x45eb7b);_0x1218ab(_0x5bb225[_0xe5ca('0x19')](0x1f4,_0x24d844[_0xe5ca('0x1b')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeda8=['userVoiceQueueRt:','./userVoiceQueueRt.events','save','update','emit','removeListener','register'];(function(_0x43dc7e,_0x49a390){var _0x21e12d=function(_0x15cc1a){while(--_0x15cc1a){_0x43dc7e['push'](_0x43dc7e['shift']());}};_0x21e12d(++_0x49a390);}(_0xeda8,0x104));var _0x8eda=function(_0x3bf2d5,_0x1b6c20){_0x3bf2d5=_0x3bf2d5-0x0;var _0x599f87=_0xeda8[_0x3bf2d5];return _0x599f87;};'use strict';var UserVoiceQueueRtEvents=require(_0x8eda('0x0'));var events=[_0x8eda('0x1'),'remove',_0x8eda('0x2')];function createListener(_0xd8b5d5,_0x2090a2){return function(_0xc01211){_0x2090a2[_0x8eda('0x3')](_0xd8b5d5,_0xc01211);};}function removeListener(_0x94b83f,_0x25b19a){return function(){UserVoiceQueueRtEvents[_0x8eda('0x4')](_0x94b83f,_0x25b19a);};}exports[_0x8eda('0x5')]=function(_0x1f3556){for(var _0x349361=0x0,_0x32abe8=events['length'];_0x349361<_0x32abe8;_0x349361++){var _0x28b721=events[_0x349361];var _0x1b6a1d=createListener(_0x8eda('0x6')+_0x28b721,_0x1f3556);UserVoiceQueueRtEvents['on'](_0x28b721,_0x1b6a1d);}};
\ No newline at end of file
+var _0x2eb2=['userVoiceQueueRt:','save','remove','update','register','length'];(function(_0x597484,_0x199340){var _0x218e64=function(_0x390d55){while(--_0x390d55){_0x597484['push'](_0x597484['shift']());}};_0x218e64(++_0x199340);}(_0x2eb2,0x19f));var _0x22eb=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0x2eb2[_0x491a7f];return _0x3d8f44;};'use strict';var UserVoiceQueueRtEvents=require('./userVoiceQueueRt.events');var events=[_0x22eb('0x0'),_0x22eb('0x1'),_0x22eb('0x2')];function createListener(_0x1a002b,_0x1dd079){return function(_0xaf32cf){_0x1dd079['emit'](_0x1a002b,_0xaf32cf);};}function removeListener(_0x27732f,_0x4efe67){return function(){UserVoiceQueueRtEvents['removeListener'](_0x27732f,_0x4efe67);};}exports[_0x22eb('0x3')]=function(_0x10e116){for(var _0x35dd5b=0x0,_0x2a9850=events[_0x22eb('0x4')];_0x35dd5b<_0x2a9850;_0x35dd5b++){var _0x396806=events[_0x35dd5b];var _0x33ddef=createListener(_0x22eb('0x5')+_0x396806,_0x10e116);UserVoiceQueueRtEvents['on'](_0x396806,_0x33ddef);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf109=['../../components/interaction/service','../../config/environment','./variable.controller','get','isAuthenticated','index','/:id','show','create','put','delete','multer','util','path','../../components/auth/service'];(function(_0x29ba6a,_0x131e04){var _0x5b7553=function(_0x3db8dd){while(--_0x3db8dd){_0x29ba6a['push'](_0x29ba6a['shift']());}};_0x5b7553(++_0x131e04);}(_0xf109,0xce));var _0x9f10=function(_0x36884e,_0x48008f){_0x36884e=_0x36884e-0x0;var _0x1cc367=_0xf109[_0x36884e];return _0x1cc367;};'use strict';var multer=require(_0x9f10('0x0'));var util=require(_0x9f10('0x1'));var path=require(_0x9f10('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require(_0x9f10('0x3'));var interaction=require(_0x9f10('0x4'));var config=require(_0x9f10('0x5'));var controller=require(_0x9f10('0x6'));router[_0x9f10('0x7')]('/',auth[_0x9f10('0x8')](),controller[_0x9f10('0x9')]);router[_0x9f10('0x7')](_0x9f10('0xa'),auth[_0x9f10('0x8')](),controller[_0x9f10('0xb')]);router['post']('/',auth[_0x9f10('0x8')](),controller[_0x9f10('0xc')]);router[_0x9f10('0xd')](_0x9f10('0xa'),auth[_0x9f10('0x8')](),controller['update']);router[_0x9f10('0xe')](_0x9f10('0xa'),auth[_0x9f10('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x878f=['update','delete','destroy','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./variable.controller','get','isAuthenticated','/:id','create'];(function(_0x4c024d,_0x239578){var _0x40afd3=function(_0x551fbe){while(--_0x551fbe){_0x4c024d['push'](_0x4c024d['shift']());}};_0x40afd3(++_0x239578);}(_0x878f,0x173));var _0xf878=function(_0x5d561c,_0x3a5d69){_0x5d561c=_0x5d561c-0x0;var _0x259237=_0x878f[_0x5d561c];return _0x259237;};'use strict';var multer=require('multer');var util=require(_0xf878('0x0'));var path=require(_0xf878('0x1'));var timeout=require(_0xf878('0x2'));var express=require(_0xf878('0x3'));var router=express[_0xf878('0x4')]();var auth=require(_0xf878('0x5'));var interaction=require(_0xf878('0x6'));var config=require(_0xf878('0x7'));var controller=require(_0xf878('0x8'));router[_0xf878('0x9')]('/',auth[_0xf878('0xa')](),controller['index']);router['get'](_0xf878('0xb'),auth[_0xf878('0xa')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0xf878('0xc')]);router['put']('/:id',auth[_0xf878('0xa')](),controller[_0xf878('0xd')]);router[_0xf878('0xe')]('/:id',auth[_0xf878('0xa')](),controller[_0xf878('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9096=['sequelize','exports','STRING','name'];(function(_0x560803,_0x2bdc23){var _0x1aeeb5=function(_0x5eaf19){while(--_0x5eaf19){_0x560803['push'](_0x560803['shift']());}};_0x1aeeb5(++_0x2bdc23);}(_0x9096,0x174));var _0x6909=function(_0xbe28ce,_0x145076){_0xbe28ce=_0xbe28ce-0x0;var _0x1f1f6a=_0x9096[_0xbe28ce];return _0x1f1f6a;};'use strict';var Sequelize=require(_0x6909('0x0'));module[_0x6909('0x1')]={'name':{'type':Sequelize[_0x6909('0x2')],'unique':_0x6909('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x6909('0x2')]}};
\ No newline at end of file
+var _0x65ee=['exports','STRING','name','sequelize'];(function(_0x377780,_0x40dbba){var _0x1667b7=function(_0x1256a5){while(--_0x1256a5){_0x377780['push'](_0x377780['shift']());}};_0x1667b7(++_0x40dbba);}(_0x65ee,0x9b));var _0xe65e=function(_0x82f438,_0x2d0840){_0x82f438=_0x82f438-0x0;var _0xf25c77=_0x65ee[_0x82f438];return _0xf25c77;};'use strict';var Sequelize=require(_0xe65e('0x0'));module[_0xe65e('0x1')]={'name':{'type':Sequelize[_0xe65e('0x2')],'unique':_0xe65e('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4758=['order','sort','where','pick','add','day','map','attributes','merge','options','includeAll','include','findAll','rows','show','params','keys','rawAttributes','intersection','length','find','catch','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','set','reject','update','then','destroy','end','error','name','send','index','Variable','dateStart','query','dateEnd','filters','fields','model','hasOwnProperty','nolimit','limit'];(function(_0x3bd193,_0x1cf9a7){var _0x445dfe=function(_0x5b7a38){while(--_0x5b7a38){_0x3bd193['push'](_0x3bd193['shift']());}};_0x445dfe(++_0x1cf9a7);}(_0x4758,0xf0));var _0x8475=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x4758[_0x321bb2];return _0x9c12ed;};'use strict';var pdf=require(_0x8475('0x0'));var emlformat=require(_0x8475('0x1'));var rimraf=require(_0x8475('0x2'));var zipdir=require(_0x8475('0x3'));var jsonpatch=require(_0x8475('0x4'));var rp=require(_0x8475('0x5'));var moment=require('moment');var BPromise=require(_0x8475('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8475('0x7'));var sox=require(_0x8475('0x8'));var csv=require(_0x8475('0x9'));var ejs=require(_0x8475('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8475('0xb'));var crypto=require(_0x8475('0xc'));var jsforce=require(_0x8475('0xd'));var deskjs=require(_0x8475('0xe'));var toCsv=require(_0x8475('0x9'));var querystring=require(_0x8475('0xf'));var Papa=require(_0x8475('0x10'));var qs=require(_0x8475('0x11'));var logger=require(_0x8475('0x12'))(_0x8475('0x13'));var utils=require(_0x8475('0x14'));var config=require(_0x8475('0x15'));var db=require(_0x8475('0x16'))['db'];function respondWithStatusCode(_0x2d376a,_0x3b5828){_0x3b5828=_0x3b5828||0xcc;return function(_0x129c0d){if(_0x129c0d){return _0x2d376a[_0x8475('0x17')](_0x3b5828);}return _0x2d376a[_0x8475('0x18')](_0x3b5828)['end']();};}function respondWithResult(_0x541755,_0x3643bb){_0x3643bb=_0x3643bb||0xc8;return function(_0x4248fc){if(_0x4248fc){return _0x541755[_0x8475('0x18')](_0x3643bb)[_0x8475('0x19')](_0x4248fc);}};}function respondWithFilteredResult(_0x13071c,_0x384aff){return function(_0x263c3e){if(_0x263c3e){var _0x2b29d3=_0x263c3e[_0x8475('0x1a')],_0x2e2c45=_0x384aff[_0x8475('0x1b')],_0x34b2f6=_0x384aff[_0x8475('0x1b')]+_0x384aff['limit'],_0x1c830f;if(_0x34b2f6>=_0x2b29d3){_0x34b2f6=_0x2b29d3;_0x1c830f=0xc8;}else{_0x1c830f=0xce;}_0x13071c[_0x8475('0x18')](_0x1c830f);return _0x13071c[_0x8475('0x1c')]('Content-Range',_0x2e2c45+'-'+_0x34b2f6+'/'+_0x2b29d3)['json'](_0x263c3e);}return null;};}function patchUpdates(_0x99254c){return function(_0x20e9fe){try{jsonpatch['apply'](_0x20e9fe,_0x99254c,!![]);}catch(_0x57272e){return BPromise[_0x8475('0x1d')](_0x57272e);}return _0x20e9fe['save']();};}function saveUpdates(_0x4ce94e,_0x1dfd8c){return function(_0x51f68b){if(_0x51f68b){return _0x51f68b[_0x8475('0x1e')](_0x4ce94e)[_0x8475('0x1f')](function(_0x362582){return _0x362582;});}return null;};}function removeEntity(_0x3913a1,_0xe1b032){return function(_0x1b7771){if(_0x1b7771){return _0x1b7771[_0x8475('0x20')]()[_0x8475('0x1f')](function(){_0x3913a1['status'](0xcc)[_0x8475('0x21')]();});}};}function handleEntityNotFound(_0x12169f,_0x4a02f5){return function(_0x17ae3c){if(!_0x17ae3c){_0x12169f['sendStatus'](0x194);}return _0x17ae3c;};}function handleError(_0x197dd5,_0x31e063){_0x31e063=_0x31e063||0x1f4;return function(_0xc9b9e9){logger[_0x8475('0x22')](_0xc9b9e9['stack']);if(_0xc9b9e9['name']){delete _0xc9b9e9[_0x8475('0x23')];}_0x197dd5[_0x8475('0x18')](_0x31e063)[_0x8475('0x24')](_0xc9b9e9);};}exports[_0x8475('0x25')]=function(_0x29ae07,_0x278953){var _0x2ffc88={},_0x205e67={},_0x40917e={'count':0x0,'rows':[]};var _0x121147=db[_0x8475('0x26')]['rawAttributes'];_0x205e67['model']=_['keys'](_0x121147);var _0x48c04f={'dateStart':_0x29ae07['query'][_0x8475('0x27')],'dateEnd':_0x29ae07[_0x8475('0x28')][_0x8475('0x29')]};delete _0x29ae07[_0x8475('0x28')][_0x8475('0x27')];delete _0x29ae07['query']['dateEnd'];_0x205e67['query']=_['keys'](_0x29ae07[_0x8475('0x28')]);_0x205e67[_0x8475('0x2a')]=_['intersection'](_0x205e67['model'],_0x205e67[_0x8475('0x28')]);_0x2ffc88['attributes']=_['intersection'](_0x205e67['model'],qs['fields'](_0x29ae07[_0x8475('0x28')][_0x8475('0x2b')]));_0x2ffc88['attributes']=_0x2ffc88['attributes']['length']?_0x2ffc88['attributes']:_0x205e67[_0x8475('0x2c')];if(!_0x29ae07['query'][_0x8475('0x2d')](_0x8475('0x2e'))){_0x2ffc88[_0x8475('0x2f')]=qs[_0x8475('0x2f')](_0x29ae07[_0x8475('0x28')]['limit']);_0x2ffc88[_0x8475('0x1b')]=qs[_0x8475('0x1b')](_0x29ae07[_0x8475('0x28')][_0x8475('0x1b')]);}_0x2ffc88[_0x8475('0x30')]=qs[_0x8475('0x31')](_0x29ae07[_0x8475('0x28')][_0x8475('0x31')]);_0x2ffc88[_0x8475('0x32')]=qs['filters'](_[_0x8475('0x33')](_0x29ae07[_0x8475('0x28')],_0x205e67[_0x8475('0x2a')]));if(_0x48c04f[_0x8475('0x27')]){if(_0x48c04f[_0x8475('0x29')]){_0x48c04f[_0x8475('0x29')]=moment(_0x48c04f[_0x8475('0x29')])[_0x8475('0x34')](0x1,_0x8475('0x35'));}else{_0x48c04f['dateEnd']=moment(_0x48c04f[_0x8475('0x27')])['add'](0x1,'day');}_['merge'](_0x2ffc88['where'],{'createdAt':{'$gte':_0x48c04f[_0x8475('0x27')],'$lte':_0x48c04f['dateEnd']}});}if(_0x29ae07['query']['filter']){_0x2ffc88[_0x8475('0x32')]=_['merge'](_0x2ffc88[_0x8475('0x32')],{'$or':_[_0x8475('0x36')](_0x2ffc88[_0x8475('0x37')],function(_0x13a5a1){var _0x2d18ce={};_0x2d18ce[_0x13a5a1]={'$like':'%'+_0x29ae07[_0x8475('0x28')]['filter']+'%'};return _0x2d18ce;})});}_0x2ffc88=_[_0x8475('0x38')]({},_0x2ffc88,_0x29ae07[_0x8475('0x39')]);var _0x30741d={'where':_0x2ffc88[_0x8475('0x32')]};return db['Variable'][_0x8475('0x1a')](_0x30741d)['then'](function(_0x3c2933){_0x40917e[_0x8475('0x1a')]=_0x3c2933;if(_0x29ae07[_0x8475('0x28')][_0x8475('0x3a')]){_0x2ffc88[_0x8475('0x3b')]=[{'all':!![]}];}return db['Variable'][_0x8475('0x3c')](_0x2ffc88);})[_0x8475('0x1f')](function(_0x408329){_0x40917e[_0x8475('0x3d')]=_0x408329;return _0x40917e;})[_0x8475('0x1f')](respondWithFilteredResult(_0x278953,_0x2ffc88))['catch'](handleError(_0x278953,null));};exports[_0x8475('0x3e')]=function(_0x4cb5f4,_0x2a364a){var _0x3e2724={'raw':!![],'where':{'id':_0x4cb5f4[_0x8475('0x3f')]['id']}},_0x2f4b4e={};_0x2f4b4e[_0x8475('0x2c')]=_[_0x8475('0x40')](db[_0x8475('0x26')][_0x8475('0x41')]);_0x2f4b4e[_0x8475('0x28')]=_[_0x8475('0x40')](_0x4cb5f4[_0x8475('0x28')]);_0x2f4b4e[_0x8475('0x2a')]=_[_0x8475('0x42')](_0x2f4b4e[_0x8475('0x2c')],_0x2f4b4e[_0x8475('0x28')]);_0x3e2724[_0x8475('0x37')]=_[_0x8475('0x42')](_0x2f4b4e[_0x8475('0x2c')],qs[_0x8475('0x2b')](_0x4cb5f4[_0x8475('0x28')][_0x8475('0x2b')]));_0x3e2724['attributes']=_0x3e2724[_0x8475('0x37')][_0x8475('0x43')]?_0x3e2724[_0x8475('0x37')]:_0x2f4b4e[_0x8475('0x2c')];if(_0x4cb5f4[_0x8475('0x28')][_0x8475('0x3a')]){_0x3e2724[_0x8475('0x3b')]=[{'all':!![]}];}_0x3e2724=_[_0x8475('0x38')]({},_0x3e2724,_0x4cb5f4[_0x8475('0x39')]);return db[_0x8475('0x26')][_0x8475('0x44')](_0x3e2724)[_0x8475('0x1f')](handleEntityNotFound(_0x2a364a,null))[_0x8475('0x1f')](respondWithResult(_0x2a364a,null))[_0x8475('0x45')](handleError(_0x2a364a,null));};exports[_0x8475('0x46')]=function(_0x4c27e8,_0x4ee6da){return db[_0x8475('0x26')]['create'](_0x4c27e8[_0x8475('0x47')],{})[_0x8475('0x1f')](respondWithResult(_0x4ee6da,0xc9))[_0x8475('0x45')](handleError(_0x4ee6da,null));};exports[_0x8475('0x1e')]=function(_0x517e02,_0x5e7ffe){if(_0x517e02[_0x8475('0x47')]['id']){delete _0x517e02['body']['id'];}return db['Variable'][_0x8475('0x44')]({'where':{'id':_0x517e02['params']['id']}})[_0x8475('0x1f')](handleEntityNotFound(_0x5e7ffe,null))[_0x8475('0x1f')](saveUpdates(_0x517e02[_0x8475('0x47')],null))[_0x8475('0x1f')](respondWithResult(_0x5e7ffe,null))[_0x8475('0x45')](handleError(_0x5e7ffe,null));};exports[_0x8475('0x20')]=function(_0x3c9ade,_0x5857be){return db[_0x8475('0x26')]['find']({'where':{'id':_0x3c9ade[_0x8475('0x3f')]['id']}})['then'](handleEntityNotFound(_0x5857be,null))[_0x8475('0x1f')](removeEntity(_0x5857be,null))[_0x8475('0x45')](handleError(_0x5857be,null));};
\ No newline at end of file
+var _0xe50e=['index','Variable','rawAttributes','model','query','dateEnd','dateStart','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','add','day','merge','where','filter','map','options','include','findAll','rows','show','params','includeAll','find','catch','create','body','update','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','save','destroy','then','end','error','stack','name','send'];(function(_0x18a691,_0x14c811){var _0x3c9f41=function(_0x4774d5){while(--_0x4774d5){_0x18a691['push'](_0x18a691['shift']());}};_0x3c9f41(++_0x14c811);}(_0xe50e,0xba));var _0xee50=function(_0x524620,_0x7435fc){_0x524620=_0x524620-0x0;var _0x328d00=_0xe50e[_0x524620];return _0x328d00;};'use strict';var pdf=require(_0xee50('0x0'));var emlformat=require(_0xee50('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xee50('0x2'));var jsonpatch=require(_0xee50('0x3'));var rp=require(_0xee50('0x4'));var moment=require('moment');var BPromise=require(_0xee50('0x5'));var Mustache=require(_0xee50('0x6'));var util=require(_0xee50('0x7'));var path=require(_0xee50('0x8'));var sox=require('sox');var csv=require(_0xee50('0x9'));var ejs=require(_0xee50('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xee50('0xb'));var crypto=require(_0xee50('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xee50('0xd'));var toCsv=require(_0xee50('0x9'));var querystring=require(_0xee50('0xe'));var Papa=require(_0xee50('0xf'));var Redis=require(_0xee50('0x10'));var qs=require(_0xee50('0x11'));var logger=require('../../config/logger')(_0xee50('0x12'));var utils=require(_0xee50('0x13'));var config=require(_0xee50('0x14'));var db=require(_0xee50('0x15'))['db'];function respondWithStatusCode(_0x10f0c5,_0x3ce6a8){_0x3ce6a8=_0x3ce6a8||0xcc;return function(_0x405e63){if(_0x405e63){return _0x10f0c5[_0xee50('0x16')](_0x3ce6a8);}return _0x10f0c5[_0xee50('0x17')](_0x3ce6a8)['end']();};}function respondWithResult(_0x1c9dea,_0x5a6afa){_0x5a6afa=_0x5a6afa||0xc8;return function(_0x40e0ea){if(_0x40e0ea){return _0x1c9dea[_0xee50('0x17')](_0x5a6afa)[_0xee50('0x18')](_0x40e0ea);}};}function respondWithFilteredResult(_0x1a885f,_0x4a1642){return function(_0x32c66e){if(_0x32c66e){var _0x282c58=_0x32c66e[_0xee50('0x19')],_0x5ee4f4=_0x4a1642[_0xee50('0x1a')],_0x107999=_0x4a1642[_0xee50('0x1a')]+_0x4a1642[_0xee50('0x1b')],_0x17918a;if(_0x107999>=_0x282c58){_0x107999=_0x282c58;_0x17918a=0xc8;}else{_0x17918a=0xce;}_0x1a885f[_0xee50('0x17')](_0x17918a);return _0x1a885f[_0xee50('0x1c')](_0xee50('0x1d'),_0x5ee4f4+'-'+_0x107999+'/'+_0x282c58)[_0xee50('0x18')](_0x32c66e);}return null;};}function patchUpdates(_0x4abd72){return function(_0xfa26ec){try{jsonpatch['apply'](_0xfa26ec,_0x4abd72,!![]);}catch(_0x7b428c){return BPromise[_0xee50('0x1e')](_0x7b428c);}return _0xfa26ec[_0xee50('0x1f')]();};}function saveUpdates(_0xb9833c,_0x27a6a5){return function(_0x5d6637){if(_0x5d6637){return _0x5d6637['update'](_0xb9833c)['then'](function(_0x301013){return _0x301013;});}return null;};}function removeEntity(_0x54e307,_0x49b2bc){return function(_0x31eecf){if(_0x31eecf){return _0x31eecf[_0xee50('0x20')]()[_0xee50('0x21')](function(){_0x54e307[_0xee50('0x17')](0xcc)[_0xee50('0x22')]();});}};}function handleEntityNotFound(_0x316e21,_0x788e29){return function(_0x588911){if(!_0x588911){_0x316e21[_0xee50('0x16')](0x194);}return _0x588911;};}function handleError(_0x1bfe20,_0x10bcf5){_0x10bcf5=_0x10bcf5||0x1f4;return function(_0x4183b5){logger[_0xee50('0x23')](_0x4183b5[_0xee50('0x24')]);if(_0x4183b5[_0xee50('0x25')]){delete _0x4183b5[_0xee50('0x25')];}_0x1bfe20[_0xee50('0x17')](_0x10bcf5)[_0xee50('0x26')](_0x4183b5);};}exports[_0xee50('0x27')]=function(_0x17f034,_0x3c5c11){var _0x3b8dac={},_0x2f51f4={},_0x45e096={'count':0x0,'rows':[]};var _0x45847d=db[_0xee50('0x28')][_0xee50('0x29')];_0x2f51f4[_0xee50('0x2a')]=_['keys'](_0x45847d);var _0x351438={'dateStart':_0x17f034[_0xee50('0x2b')]['dateStart'],'dateEnd':_0x17f034[_0xee50('0x2b')][_0xee50('0x2c')]};delete _0x17f034[_0xee50('0x2b')][_0xee50('0x2d')];delete _0x17f034['query'][_0xee50('0x2c')];_0x2f51f4[_0xee50('0x2b')]=_[_0xee50('0x2e')](_0x17f034['query']);_0x2f51f4[_0xee50('0x2f')]=_[_0xee50('0x30')](_0x2f51f4[_0xee50('0x2a')],_0x2f51f4[_0xee50('0x2b')]);_0x3b8dac[_0xee50('0x31')]=_[_0xee50('0x30')](_0x2f51f4['model'],qs['fields'](_0x17f034[_0xee50('0x2b')][_0xee50('0x32')]));_0x3b8dac[_0xee50('0x31')]=_0x3b8dac[_0xee50('0x31')][_0xee50('0x33')]?_0x3b8dac[_0xee50('0x31')]:_0x2f51f4[_0xee50('0x2a')];if(!_0x17f034[_0xee50('0x2b')][_0xee50('0x34')](_0xee50('0x35'))){_0x3b8dac[_0xee50('0x1b')]=qs['limit'](_0x17f034[_0xee50('0x2b')]['limit']);_0x3b8dac[_0xee50('0x1a')]=qs[_0xee50('0x1a')](_0x17f034['query'][_0xee50('0x1a')]);}_0x3b8dac[_0xee50('0x36')]=qs[_0xee50('0x37')](_0x17f034['query']['sort']);_0x3b8dac['where']=qs[_0xee50('0x2f')](_[_0xee50('0x38')](_0x17f034[_0xee50('0x2b')],_0x2f51f4[_0xee50('0x2f')]));if(_0x351438[_0xee50('0x2d')]){if(_0x351438[_0xee50('0x2c')]){_0x351438['dateEnd']=moment(_0x351438[_0xee50('0x2c')])[_0xee50('0x39')](0x1,'day');}else{_0x351438[_0xee50('0x2c')]=moment(_0x351438[_0xee50('0x2d')])['add'](0x1,_0xee50('0x3a'));}_[_0xee50('0x3b')](_0x3b8dac[_0xee50('0x3c')],{'createdAt':{'$gte':_0x351438[_0xee50('0x2d')],'$lte':_0x351438[_0xee50('0x2c')]}});}if(_0x17f034[_0xee50('0x2b')][_0xee50('0x3d')]){_0x3b8dac[_0xee50('0x3c')]=_[_0xee50('0x3b')](_0x3b8dac['where'],{'$or':_[_0xee50('0x3e')](_0x3b8dac[_0xee50('0x31')],function(_0x3914ac){var _0x44cda7={};_0x44cda7[_0x3914ac]={'$like':'%'+_0x17f034[_0xee50('0x2b')][_0xee50('0x3d')]+'%'};return _0x44cda7;})});}_0x3b8dac=_['merge']({},_0x3b8dac,_0x17f034[_0xee50('0x3f')]);var _0x49ab87={'where':_0x3b8dac[_0xee50('0x3c')]};return db[_0xee50('0x28')]['count'](_0x49ab87)['then'](function(_0x5a0786){_0x45e096[_0xee50('0x19')]=_0x5a0786;if(_0x17f034[_0xee50('0x2b')]['includeAll']){_0x3b8dac[_0xee50('0x40')]=[{'all':!![]}];}return db['Variable'][_0xee50('0x41')](_0x3b8dac);})[_0xee50('0x21')](function(_0x4d8aa0){_0x45e096[_0xee50('0x42')]=_0x4d8aa0;return _0x45e096;})[_0xee50('0x21')](respondWithFilteredResult(_0x3c5c11,_0x3b8dac))['catch'](handleError(_0x3c5c11,null));};exports[_0xee50('0x43')]=function(_0x451cae,_0x24a958){var _0x5f6795={'raw':!![],'where':{'id':_0x451cae[_0xee50('0x44')]['id']}},_0x4272ea={};_0x4272ea[_0xee50('0x2a')]=_['keys'](db[_0xee50('0x28')][_0xee50('0x29')]);_0x4272ea[_0xee50('0x2b')]=_[_0xee50('0x2e')](_0x451cae[_0xee50('0x2b')]);_0x4272ea[_0xee50('0x2f')]=_[_0xee50('0x30')](_0x4272ea[_0xee50('0x2a')],_0x4272ea[_0xee50('0x2b')]);_0x5f6795[_0xee50('0x31')]=_[_0xee50('0x30')](_0x4272ea[_0xee50('0x2a')],qs[_0xee50('0x32')](_0x451cae[_0xee50('0x2b')][_0xee50('0x32')]));_0x5f6795[_0xee50('0x31')]=_0x5f6795[_0xee50('0x31')][_0xee50('0x33')]?_0x5f6795[_0xee50('0x31')]:_0x4272ea['model'];if(_0x451cae[_0xee50('0x2b')][_0xee50('0x45')]){_0x5f6795[_0xee50('0x40')]=[{'all':!![]}];}_0x5f6795=_[_0xee50('0x3b')]({},_0x5f6795,_0x451cae[_0xee50('0x3f')]);return db['Variable'][_0xee50('0x46')](_0x5f6795)[_0xee50('0x21')](handleEntityNotFound(_0x24a958,null))['then'](respondWithResult(_0x24a958,null))[_0xee50('0x47')](handleError(_0x24a958,null));};exports[_0xee50('0x48')]=function(_0x35bb80,_0x36c0e9){return db[_0xee50('0x28')]['create'](_0x35bb80[_0xee50('0x49')],{})[_0xee50('0x21')](respondWithResult(_0x36c0e9,0xc9))['catch'](handleError(_0x36c0e9,null));};exports[_0xee50('0x4a')]=function(_0x20f2b2,_0x4a10a4){if(_0x20f2b2[_0xee50('0x49')]['id']){delete _0x20f2b2[_0xee50('0x49')]['id'];}return db[_0xee50('0x28')]['find']({'where':{'id':_0x20f2b2[_0xee50('0x44')]['id']}})[_0xee50('0x21')](handleEntityNotFound(_0x4a10a4,null))[_0xee50('0x21')](saveUpdates(_0x20f2b2[_0xee50('0x49')],null))[_0xee50('0x21')](respondWithResult(_0x4a10a4,null))[_0xee50('0x47')](handleError(_0x4a10a4,null));};exports[_0xee50('0x20')]=function(_0x5d7ed2,_0x243c3b){return db[_0xee50('0x28')][_0xee50('0x46')]({'where':{'id':_0x5d7ed2[_0xee50('0x44')]['id']}})[_0xee50('0x21')](handleEntityNotFound(_0x243c3b,null))[_0xee50('0x21')](removeEntity(_0x243c3b,null))[_0xee50('0x47')](handleError(_0x243c3b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['util','../../config/logger','api','moment','bluebird','request-promise','./variable.attributes','exports','tools_variables'];(function(_0x459b74,_0x5773bd){var _0x46cb16=function(_0x97867f){while(--_0x97867f){_0x459b74['push'](_0x459b74['shift']());}};_0x46cb16(++_0x5773bd);}(_0x1261,0x144));var _0x1126=function(_0xd60031,_0x5efb93){_0xd60031=_0xd60031-0x0;var _0x43d00a=_0x1261[_0xd60031];return _0x43d00a;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var logger=require(_0x1126('0x1'))(_0x1126('0x2'));var moment=require(_0x1126('0x3'));var BPromise=require(_0x1126('0x4'));var rp=require(_0x1126('0x5'));var attributes=require(_0x1126('0x6'));module[_0x1126('0x7')]=function(_0x21a480,_0x75a851){return _0x21a480['define']('Variable',attributes,{'tableName':_0x1126('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fab=['request-promise','./variable.attributes','exports','define','Variable','lodash','util','api','moment','bluebird'];(function(_0x3dfbbf,_0xa5c304){var _0x234d4c=function(_0x42881c){while(--_0x42881c){_0x3dfbbf['push'](_0x3dfbbf['shift']());}};_0x234d4c(++_0xa5c304);}(_0x5fab,0x177));var _0xb5fa=function(_0x52ab0a,_0xf641d5){_0x52ab0a=_0x52ab0a-0x0;var _0x1d2cab=_0x5fab[_0x52ab0a];return _0x1d2cab;};'use strict';var _=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var logger=require('../../config/logger')(_0xb5fa('0x2'));var moment=require(_0xb5fa('0x3'));var BPromise=require(_0xb5fa('0x4'));var rp=require(_0xb5fa('0x5'));var attributes=require(_0xb5fa('0x6'));module[_0xb5fa('0x7')]=function(_0x29390a,_0x4341d3){return _0x29390a[_0xb5fa('0x8')](_0xb5fa('0x9'),attributes,{'tableName':'tools_variables','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90e8=['moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','Variable,\x20%s,\x20%s','request\x20sent','error','message','ShowVariable','options','raw','where','attributes','include','model','debug','stringify','lodash','util'];(function(_0x389bfe,_0x55e0f7){var _0x5d6728=function(_0x4ba886){while(--_0x4ba886){_0x389bfe['push'](_0x389bfe['shift']());}};_0x5d6728(++_0x55e0f7);}(_0x90e8,0x142));var _0x890e=function(_0x50353d,_0x2a8a5b){_0x50353d=_0x50353d-0x0;var _0x5b6cf1=_0x90e8[_0x50353d];return _0x5b6cf1;};'use strict';var _=require(_0x890e('0x0'));var util=require(_0x890e('0x1'));var moment=require(_0x890e('0x2'));var BPromise=require(_0x890e('0x3'));var rs=require(_0x890e('0x4'));var fs=require('fs');var db=require(_0x890e('0x5'))['db'];var utils=require(_0x890e('0x6'));var logger=require(_0x890e('0x7'))(_0x890e('0x8'));var config=require(_0x890e('0x9'));var jayson=require(_0x890e('0xa'));var client=jayson[_0x890e('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x128711,_0xb858bf,_0x4f1092){return new BPromise(function(_0x1a8850,_0x4dcbbd){return client['request'](_0x128711,_0x4f1092)[_0x890e('0xc')](function(_0x10d271){logger[_0x890e('0xd')](_0x890e('0xe'),_0xb858bf,'request\x20sent');logger['debug']('Variable,\x20%s,\x20%s,\x20%s',_0xb858bf,_0x890e('0xf'),JSON['stringify'](_0x10d271));if(_0x10d271[_0x890e('0x10')]){if(_0x10d271[_0x890e('0x10')]['code']===0x1f4){logger[_0x890e('0x10')](_0x890e('0xe'),_0xb858bf,_0x10d271[_0x890e('0x10')][_0x890e('0x11')]);return _0x4dcbbd(_0x10d271['error']['message']);}logger['error']('Variable,\x20%s,\x20%s',_0xb858bf,_0x10d271[_0x890e('0x10')][_0x890e('0x11')]);return _0x1a8850(_0x10d271[_0x890e('0x10')][_0x890e('0x11')]);}else{logger[_0x890e('0xd')](_0x890e('0xe'),_0xb858bf,_0x890e('0xf'));_0x1a8850(_0x10d271['result']['message']);}})['catch'](function(_0x15a313){logger['error']('Variable,\x20%s,\x20%s',_0xb858bf,_0x15a313);_0x4dcbbd(_0x15a313);});});}exports[_0x890e('0x12')]=function(_0x5aebef){var _0x214ada=this;return new Promise(function(_0x4bd68d,_0x1feb4a){return db['Variable']['find']({'raw':_0x5aebef[_0x890e('0x13')]?_0x5aebef[_0x890e('0x13')][_0x890e('0x14')]===undefined?!![]:![]:!![],'where':_0x5aebef[_0x890e('0x13')]?_0x5aebef[_0x890e('0x13')][_0x890e('0x15')]||null:null,'attributes':_0x5aebef[_0x890e('0x13')]?_0x5aebef[_0x890e('0x13')][_0x890e('0x16')]||null:null,'include':_0x5aebef[_0x890e('0x13')]?_0x5aebef[_0x890e('0x13')][_0x890e('0x17')]?_['map'](_0x5aebef[_0x890e('0x13')][_0x890e('0x17')],function(_0x3054a9){return{'model':db[_0x3054a9[_0x890e('0x18')]],'as':_0x3054a9['as'],'attributes':_0x3054a9[_0x890e('0x16')],'include':_0x3054a9['include']?_['map'](_0x3054a9[_0x890e('0x17')],function(_0x1e10d8){return{'model':db[_0x1e10d8[_0x890e('0x18')]],'as':_0x1e10d8['as'],'attributes':_0x1e10d8[_0x890e('0x16')],'include':_0x1e10d8['include']?_['map'](_0x1e10d8[_0x890e('0x17')],function(_0x1242ee){return{'model':db[_0x1242ee[_0x890e('0x18')]],'as':_0x1242ee['as'],'attributes':_0x1242ee[_0x890e('0x16')]};}):[]};}):[]};}):[]:[]})[_0x890e('0xc')](function(_0x415e56){logger[_0x890e('0xd')](_0x890e('0x12'),_0x5aebef);logger[_0x890e('0x19')](_0x890e('0x12'),_0x5aebef,JSON[_0x890e('0x1a')](_0x415e56));_0x4bd68d(_0x415e56);})['catch'](function(_0x5b43f7){logger[_0x890e('0x10')](_0x890e('0x12'),_0x5b43f7[_0x890e('0x11')],_0x5aebef);_0x1feb4a(_0x214ada[_0x890e('0x10')](0x1f4,_0x5b43f7[_0x890e('0x11')]));});});};
\ No newline at end of file
+var _0xd203=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','client','request','Variable,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch','Variable','find','options','raw','attributes','include','map','model','then','ShowVariable','stringify','lodash'];(function(_0x2af926,_0x5b7cdd){var _0x4c9bf2=function(_0x3870aa){while(--_0x3870aa){_0x2af926['push'](_0x2af926['shift']());}};_0x4c9bf2(++_0x5b7cdd);}(_0xd203,0xd8));var _0x3d20=function(_0x2be880,_0x5d89a6){_0x2be880=_0x2be880-0x0;var _0x4ba069=_0xd203[_0x2be880];return _0x4ba069;};'use strict';var _=require(_0x3d20('0x0'));var util=require(_0x3d20('0x1'));var moment=require(_0x3d20('0x2'));var BPromise=require(_0x3d20('0x3'));var rs=require(_0x3d20('0x4'));var fs=require('fs');var Redis=require(_0x3d20('0x5'));var db=require(_0x3d20('0x6'))['db'];var utils=require(_0x3d20('0x7'));var logger=require(_0x3d20('0x8'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x3d20('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x177660,_0x33d41c,_0x4ceb23){return new BPromise(function(_0x4662fd,_0x334912){return client[_0x3d20('0xa')](_0x177660,_0x4ceb23)['then'](function(_0x74e448){logger['info'](_0x3d20('0xb'),_0x33d41c,_0x3d20('0xc'));logger[_0x3d20('0xd')]('Variable,\x20%s,\x20%s,\x20%s',_0x33d41c,_0x3d20('0xc'),JSON['stringify'](_0x74e448));if(_0x74e448['error']){if(_0x74e448[_0x3d20('0xe')][_0x3d20('0xf')]===0x1f4){logger[_0x3d20('0xe')](_0x3d20('0xb'),_0x33d41c,_0x74e448[_0x3d20('0xe')]['message']);return _0x334912(_0x74e448[_0x3d20('0xe')]['message']);}logger[_0x3d20('0xe')]('Variable,\x20%s,\x20%s',_0x33d41c,_0x74e448[_0x3d20('0xe')]['message']);return _0x4662fd(_0x74e448[_0x3d20('0xe')][_0x3d20('0x10')]);}else{logger[_0x3d20('0x11')]('Variable,\x20%s,\x20%s',_0x33d41c,'request\x20sent');_0x4662fd(_0x74e448[_0x3d20('0x12')][_0x3d20('0x10')]);}})[_0x3d20('0x13')](function(_0x1a1282){logger[_0x3d20('0xe')]('Variable,\x20%s,\x20%s',_0x33d41c,_0x1a1282);_0x334912(_0x1a1282);});});}exports['ShowVariable']=function(_0x3412c5){var _0x49369a=this;return new Promise(function(_0x655e3f,_0x2fe519){return db[_0x3d20('0x14')][_0x3d20('0x15')]({'raw':_0x3412c5[_0x3d20('0x16')]?_0x3412c5['options'][_0x3d20('0x17')]===undefined?!![]:![]:!![],'where':_0x3412c5[_0x3d20('0x16')]?_0x3412c5['options']['where']||null:null,'attributes':_0x3412c5[_0x3d20('0x16')]?_0x3412c5['options'][_0x3d20('0x18')]||null:null,'include':_0x3412c5['options']?_0x3412c5[_0x3d20('0x16')][_0x3d20('0x19')]?_[_0x3d20('0x1a')](_0x3412c5['options'][_0x3d20('0x19')],function(_0x4a9a1e){return{'model':db[_0x4a9a1e[_0x3d20('0x1b')]],'as':_0x4a9a1e['as'],'attributes':_0x4a9a1e[_0x3d20('0x18')],'include':_0x4a9a1e['include']?_[_0x3d20('0x1a')](_0x4a9a1e[_0x3d20('0x19')],function(_0x4d7e57){return{'model':db[_0x4d7e57[_0x3d20('0x1b')]],'as':_0x4d7e57['as'],'attributes':_0x4d7e57[_0x3d20('0x18')],'include':_0x4d7e57[_0x3d20('0x19')]?_[_0x3d20('0x1a')](_0x4d7e57[_0x3d20('0x19')],function(_0x2077cf){return{'model':db[_0x2077cf[_0x3d20('0x1b')]],'as':_0x2077cf['as'],'attributes':_0x2077cf[_0x3d20('0x18')]};}):[]};}):[]};}):[]:[]})[_0x3d20('0x1c')](function(_0x1bbedf){logger[_0x3d20('0x11')](_0x3d20('0x1d'),_0x3412c5);logger[_0x3d20('0xd')]('ShowVariable',_0x3412c5,JSON[_0x3d20('0x1e')](_0x1bbedf));_0x655e3f(_0x1bbedf);})[_0x3d20('0x13')](function(_0x3dc855){logger[_0x3d20('0xe')]('ShowVariable',_0x3dc855['message'],_0x3412c5);_0x2fe519(_0x49369a[_0x3d20('0xe')](0x1f4,_0x3dc855['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71da=['../../components/auth/service','get','canUpdate','fetch','isAuthenticated','reset','/pull','/restart','/migrations','migrations','exports','express','Router'];(function(_0x2a8b9a,_0x5928a6){var _0x5d0f20=function(_0x5bd9f5){while(--_0x5bd9f5){_0x2a8b9a['push'](_0x2a8b9a['shift']());}};_0x5d0f20(++_0x5928a6);}(_0x71da,0x150));var _0xa71d=function(_0x199c03,_0x3254aa){_0x199c03=_0x199c03-0x0;var _0x11a7d4=_0x71da[_0x199c03];return _0x11a7d4;};'use strict';var express=require(_0xa71d('0x0'));var router=express[_0xa71d('0x1')]();var auth=require(_0xa71d('0x2'));var controller=require('./version.controller');router[_0xa71d('0x3')]('/',controller['index']);router[_0xa71d('0x3')]('/fetch',auth['isAuthenticated'](),auth[_0xa71d('0x4')](),controller[_0xa71d('0x5')]);router[_0xa71d('0x3')]('/reset',auth[_0xa71d('0x6')](),auth[_0xa71d('0x4')](),controller[_0xa71d('0x7')]);router[_0xa71d('0x3')](_0xa71d('0x8'),auth['isAuthenticated'](),auth[_0xa71d('0x4')](),controller['pull']);router[_0xa71d('0x3')](_0xa71d('0x9'),auth[_0xa71d('0x6')](),controller['restart']);router['get'](_0xa71d('0xa'),controller[_0xa71d('0xb')]);module[_0xa71d('0xc')]=router;
\ No newline at end of file
+var _0xff77=['get','index','isAuthenticated','canUpdate','fetch','/reset','reset','pull','/restart','/migrations','migrations','exports','express','Router','../../components/auth/service','./version.controller'];(function(_0x14d99c,_0xa1b029){var _0x2a8f65=function(_0xc51369){while(--_0xc51369){_0x14d99c['push'](_0x14d99c['shift']());}};_0x2a8f65(++_0xa1b029);}(_0xff77,0x15c));var _0x7ff7=function(_0x4aefa2,_0x239451){_0x4aefa2=_0x4aefa2-0x0;var _0x8784ab=_0xff77[_0x4aefa2];return _0x8784ab;};'use strict';var express=require(_0x7ff7('0x0'));var router=express[_0x7ff7('0x1')]();var auth=require(_0x7ff7('0x2'));var controller=require(_0x7ff7('0x3'));router[_0x7ff7('0x4')]('/',controller[_0x7ff7('0x5')]);router[_0x7ff7('0x4')]('/fetch',auth[_0x7ff7('0x6')](),auth[_0x7ff7('0x7')](),controller[_0x7ff7('0x8')]);router['get'](_0x7ff7('0x9'),auth[_0x7ff7('0x6')](),auth['canUpdate'](),controller[_0x7ff7('0xa')]);router['get']('/pull',auth[_0x7ff7('0x6')](),auth[_0x7ff7('0x7')](),controller[_0x7ff7('0xb')]);router[_0x7ff7('0x4')](_0x7ff7('0xc'),auth[_0x7ff7('0x6')](),controller['restart']);router[_0x7ff7('0x4')](_0x7ff7('0xd'),controller[_0x7ff7('0xe')]);module[_0x7ff7('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['master','error','info','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','sequelize','Migration','getQueryInterface','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','root','server','exports','.js','catch','umzug','path','pkginfo','exec','../../config/environment','../../config/pm2','../../config/logger','update','simple-git','index','version','latest','fetch','tags','status','json','origin'];(function(_0x3ad372,_0x3167fa){var _0x2e41c8=function(_0x1c31fd){while(--_0x1c31fd){_0x3ad372['push'](_0x3ad372['shift']());}};_0x2e41c8(++_0x3167fa);}(_0xa9e0,0x123));var _0x0a9e=function(_0x521929,_0x479be5){_0x521929=_0x521929-0x0;var _0x632436=_0xa9e0[_0x521929];return _0x632436;};'use strict';var Umzug=require(_0x0a9e('0x0'));var path=require(_0x0a9e('0x1'));var pkginfo=require(_0x0a9e('0x2'))(module,'version');var exec=require('child_process')[_0x0a9e('0x3')];var db=require('../../mysqldb')['db'];var config=require(_0x0a9e('0x4'));var pm2=require(_0x0a9e('0x5'));var logger=require(_0x0a9e('0x6'))(_0x0a9e('0x7'));var git=require(_0x0a9e('0x8'))(config['root']);exports[_0x0a9e('0x9')]=function(_0x441e3a,_0x2cc193){var _0x5f41ea={'current':module['exports'][_0x0a9e('0xa')],'phonebar':0x2};if(_0x441e3a['query']&&_0x441e3a['query'][_0x0a9e('0xb')]){return git[_0x0a9e('0xc')]()[_0x0a9e('0xd')](function(_0x3ab53f,_0xfeb75b){_0x5f41ea[_0x0a9e('0xb')]=(_0x3ab53f?module['exports']['version']:_0xfeb75b['latest'])||'2.0.0';return _0x2cc193[_0x0a9e('0xe')](0xc8)[_0x0a9e('0xf')](_0x5f41ea);});}else{return _0x2cc193[_0x0a9e('0xe')](0xc8)[_0x0a9e('0xf')](_0x5f41ea);}};exports[_0x0a9e('0xc')]=function(_0x69aeb7,_0x5db4b0){return git[_0x0a9e('0xc')]([_0x0a9e('0x10'),_0x0a9e('0x11')],function(_0x281129){if(_0x281129){logger[_0x0a9e('0x12')](_0x281129);return _0x5db4b0[_0x0a9e('0xe')](0x1f4)['json'](_0x281129);}logger[_0x0a9e('0x13')]('git\x20fetch');return _0x5db4b0[_0x0a9e('0xe')](0xc8)['json']({'output':_0x0a9e('0x14')});});};exports[_0x0a9e('0x15')]=function(_0x48f32d,_0x225616){return git['reset']([_0x0a9e('0x16'),_0x0a9e('0x17')],function(_0x106033){if(_0x106033){logger[_0x0a9e('0x12')](_0x106033);return _0x225616[_0x0a9e('0xe')](0x1f4)[_0x0a9e('0xf')](_0x106033);}logger[_0x0a9e('0x13')](_0x0a9e('0x18'));return _0x225616[_0x0a9e('0xe')](0xc8)[_0x0a9e('0xf')]({'output':_0x0a9e('0x19')});});};exports[_0x0a9e('0x1a')]=function(_0x4bb1e3,_0x2c3407){exec(_0x0a9e('0x1b'),function(_0x53682f,_0x20f109,_0x5a09ef){logger['info'](_0x20f109);logger[_0x0a9e('0x13')](_0x5a09ef);if(_0x53682f){logger[_0x0a9e('0x12')](_0x53682f);return _0x2c3407[_0x0a9e('0xe')](0x1f4)[_0x0a9e('0xf')](_0x53682f);}return _0x2c3407['status'](0xc8)[_0x0a9e('0xf')]({'output':_0x20f109});});};exports[_0x0a9e('0x1c')]=function(_0x3b45bc,_0x4d00e6){return pm2[_0x0a9e('0x1c')](_0x0a9e('0x1d'))[_0x0a9e('0x1e')](function(_0x5ea472){logger['info'](_0x0a9e('0x1f'),_0x5ea472);return _0x4d00e6[_0x0a9e('0xe')](0xc8)[_0x0a9e('0xf')]({'output':_0x0a9e('0x20')});})['catch'](function(_0x384319){logger['error'](_0x384319);return _0x4d00e6[_0x0a9e('0xe')](0x1f4)['json'](_0x384319);});};exports[_0x0a9e('0x21')]=function(_0x34dc65,_0x25fba9){var _0x14433c=new Umzug({'storage':_0x0a9e('0x22'),'storageOptions':{'model':db[_0x0a9e('0x23')],'modelName':_0x0a9e('0x23'),'columnName':_0x0a9e('0xa')},'migrations':{'params':[db['sequelize'][_0x0a9e('0x24')](),db[_0x0a9e('0x22')][_0x0a9e('0x25')],function(){throw new Error(_0x0a9e('0x26'));}],'path':path['join'](config[_0x0a9e('0x27')],_0x0a9e('0x28'),_0x0a9e('0x21')),'pattern':/\.js$/}});_0x14433c['up']({'from':module[_0x0a9e('0x29')][_0x0a9e('0xa')]+_0x0a9e('0x2a')})[_0x0a9e('0x1e')](function(){return _0x25fba9[_0x0a9e('0xe')](0xc8)[_0x0a9e('0xf')]({'output':'Database\x20Migration\x20Completed!'});})[_0x0a9e('0x2b')](function(_0x5d1e0e){return _0x25fba9[_0x0a9e('0xe')](0x1f4)[_0x0a9e('0xf')](_0x5d1e0e);});};
\ No newline at end of file
+var _0x9957=['status','json','master','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','pull','npm\x20install\x20--production','restart','then','pm2\x20restart\x20motion\x20%s','catch','migrations','Migration','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','join','server','.js','Database\x20Migration\x20Completed!','umzug','path','pkginfo','version','exec','../../mysqldb','../../config/environment','../../config/pm2','update','simple-git','root','index','exports','query','latest','fetch','tags'];(function(_0x321231,_0x2fdc78){var _0x313c26=function(_0x4332b2){while(--_0x4332b2){_0x321231['push'](_0x321231['shift']());}};_0x313c26(++_0x2fdc78);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var Umzug=require(_0x7995('0x0'));var path=require(_0x7995('0x1'));var pkginfo=require(_0x7995('0x2'))(module,_0x7995('0x3'));var exec=require('child_process')[_0x7995('0x4')];var db=require(_0x7995('0x5'))['db'];var config=require(_0x7995('0x6'));var pm2=require(_0x7995('0x7'));var logger=require('../../config/logger')(_0x7995('0x8'));var git=require(_0x7995('0x9'))(config[_0x7995('0xa')]);exports[_0x7995('0xb')]=function(_0xbda126,_0x326741){var _0x4996ca={'current':module[_0x7995('0xc')][_0x7995('0x3')],'phonebar':0x2};if(_0xbda126['query']&&_0xbda126[_0x7995('0xd')][_0x7995('0xe')]){return git[_0x7995('0xf')]()[_0x7995('0x10')](function(_0x3c1d19,_0x1e400a){_0x4996ca[_0x7995('0xe')]=(_0x3c1d19?module['exports'][_0x7995('0x3')]:_0x1e400a[_0x7995('0xe')])||'2.0.0';return _0x326741[_0x7995('0x11')](0xc8)[_0x7995('0x12')](_0x4996ca);});}else{return _0x326741[_0x7995('0x11')](0xc8)[_0x7995('0x12')](_0x4996ca);}};exports[_0x7995('0xf')]=function(_0x23999f,_0x2bbe7a){return git['fetch'](['origin',_0x7995('0x13')],function(_0x2233dd){if(_0x2233dd){logger[_0x7995('0x14')](_0x2233dd);return _0x2bbe7a[_0x7995('0x11')](0x1f4)[_0x7995('0x12')](_0x2233dd);}logger[_0x7995('0x15')](_0x7995('0x16'));return _0x2bbe7a[_0x7995('0x11')](0xc8)['json']({'output':_0x7995('0x17')});});};exports['reset']=function(_0x2f832e,_0x37f297){return git[_0x7995('0x18')]([_0x7995('0x19'),_0x7995('0x1a')],function(_0x37a7d4){if(_0x37a7d4){logger['error'](_0x37a7d4);return _0x37f297['status'](0x1f4)[_0x7995('0x12')](_0x37a7d4);}logger['info']('git\x20reset\x20--hard\x20FETCH_HEAD');return _0x37f297[_0x7995('0x11')](0xc8)[_0x7995('0x12')]({'output':'git\x20reset\x20--hard'});});};exports[_0x7995('0x1b')]=function(_0x51f276,_0x4b1a8e){exec(_0x7995('0x1c'),function(_0x327b1f,_0x350fd9,_0x1a8568){logger[_0x7995('0x15')](_0x350fd9);logger[_0x7995('0x15')](_0x1a8568);if(_0x327b1f){logger['error'](_0x327b1f);return _0x4b1a8e[_0x7995('0x11')](0x1f4)[_0x7995('0x12')](_0x327b1f);}return _0x4b1a8e[_0x7995('0x11')](0xc8)[_0x7995('0x12')]({'output':_0x350fd9});});};exports[_0x7995('0x1d')]=function(_0x13bc35,_0x475351){return pm2[_0x7995('0x1d')]('motion2')[_0x7995('0x1e')](function(_0x34e70c){logger[_0x7995('0x15')](_0x7995('0x1f'),_0x34e70c);return _0x475351[_0x7995('0x11')](0xc8)[_0x7995('0x12')]({'output':'Your\x20system\x20has\x20been\x20restart\x20successfully'});})[_0x7995('0x20')](function(_0x5911c3){logger[_0x7995('0x14')](_0x5911c3);return _0x475351[_0x7995('0x11')](0x1f4)[_0x7995('0x12')](_0x5911c3);});};exports[_0x7995('0x21')]=function(_0x11c1eb,_0x4b6f99){var _0x9b2a15=new Umzug({'storage':'sequelize','storageOptions':{'model':db[_0x7995('0x22')],'modelName':_0x7995('0x22'),'columnName':_0x7995('0x3')},'migrations':{'params':[db['sequelize']['getQueryInterface'](),db['sequelize'][_0x7995('0x23')],function(){throw new Error(_0x7995('0x24'));}],'path':path[_0x7995('0x25')](config[_0x7995('0xa')],_0x7995('0x26'),_0x7995('0x21')),'pattern':/\.js$/}});_0x9b2a15['up']({'from':module['exports']['version']+_0x7995('0x27')})['then'](function(){return _0x4b6f99[_0x7995('0x11')](0xc8)[_0x7995('0x12')]({'output':_0x7995('0x28')});})[_0x7995('0x20')](function(_0x1f7d27){return _0x4b6f99['status'](0x1f4)[_0x7995('0x12')](_0x1f7d27);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6ac=['describe','show','post','create','/:id','update','destroy','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated','index'];(function(_0xdea379,_0x4c7c7b){var _0x231b5f=function(_0x49648f){while(--_0x49648f){_0xdea379['push'](_0xdea379['shift']());}};_0x231b5f(++_0x4c7c7b);}(_0xc6ac,0x15b));var _0xcc6a=function(_0x170283,_0x488969){_0x170283=_0x170283-0x0;var _0x1e0a46=_0xc6ac[_0x170283];return _0x1e0a46;};'use strict';var multer=require(_0xcc6a('0x0'));var util=require(_0xcc6a('0x1'));var path=require(_0xcc6a('0x2'));var timeout=require(_0xcc6a('0x3'));var express=require(_0xcc6a('0x4'));var router=express[_0xcc6a('0x5')]();var auth=require(_0xcc6a('0x6'));var interaction=require(_0xcc6a('0x7'));var config=require(_0xcc6a('0x8'));var controller=require(_0xcc6a('0x9'));router[_0xcc6a('0xa')]('/',auth[_0xcc6a('0xb')](),controller[_0xcc6a('0xc')]);router[_0xcc6a('0xa')]('/describe',auth[_0xcc6a('0xb')](),controller[_0xcc6a('0xd')]);router[_0xcc6a('0xa')]('/:id',auth[_0xcc6a('0xb')](),controller[_0xcc6a('0xe')]);router[_0xcc6a('0xf')]('/',auth[_0xcc6a('0xb')](),controller[_0xcc6a('0x10')]);router['put'](_0xcc6a('0x11'),auth[_0xcc6a('0xb')](),controller[_0xcc6a('0x12')]);router['delete'](_0xcc6a('0x11'),auth[_0xcc6a('0xb')](),controller[_0xcc6a('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x6050=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./voiceAgentReport.controller','get','/:id','isAuthenticated','show','post'];(function(_0x254625,_0x2d04d8){var _0x1184ed=function(_0x2a7853){while(--_0x2a7853){_0x254625['push'](_0x254625['shift']());}};_0x1184ed(++_0x2d04d8);}(_0x6050,0x196));var _0x0605=function(_0x1bd958,_0x498f22){_0x1bd958=_0x1bd958-0x0;var _0x2f1aac=_0x6050[_0x1bd958];return _0x2f1aac;};'use strict';var multer=require(_0x0605('0x0'));var util=require(_0x0605('0x1'));var path=require(_0x0605('0x2'));var timeout=require(_0x0605('0x3'));var express=require(_0x0605('0x4'));var router=express[_0x0605('0x5')]();var auth=require('../../components/auth/service');var interaction=require(_0x0605('0x6'));var config=require(_0x0605('0x7'));var controller=require(_0x0605('0x8'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x0605('0x9')]('/describe',auth['isAuthenticated'](),controller['describe']);router[_0x0605('0x9')](_0x0605('0xa'),auth[_0x0605('0xb')](),controller[_0x0605('0xc')]);router[_0x0605('0xd')]('/',auth['isAuthenticated'](),controller[_0x0605('0xe')]);router[_0x0605('0xf')](_0x0605('0xa'),auth[_0x0605('0xb')](),controller[_0x0605('0x10')]);router[_0x0605('0x11')](_0x0605('0xa'),auth[_0x0605('0xb')](),controller[_0x0605('0x12')]);module[_0x0605('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x552e=['STRING','DATE','INTEGER','BOOLEAN','sequelize','exports'];(function(_0x48f8c0,_0x294ebb){var _0x427478=function(_0x51c003){while(--_0x51c003){_0x48f8c0['push'](_0x48f8c0['shift']());}};_0x427478(++_0x294ebb);}(_0x552e,0xb8));var _0xe552=function(_0x31cb1b,_0x1e2452){_0x31cb1b=_0x31cb1b-0x0;var _0x2e2c28=_0x552e[_0x31cb1b];return _0x2e2c28;};'use strict';var Sequelize=require(_0xe552('0x0'));module[_0xe552('0x1')]={'type':{'type':Sequelize[_0xe552('0x2')]},'uniqueid':{'type':Sequelize[_0xe552('0x2')]},'calleridnum':{'type':Sequelize[_0xe552('0x2')]},'calleridname':{'type':Sequelize[_0xe552('0x2')]},'queue':{'type':Sequelize[_0xe552('0x2')]},'interface':{'type':Sequelize[_0xe552('0x2')]},'membername':{'type':Sequelize[_0xe552('0x2')]},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize[_0xe552('0x3')]},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0xe552('0x3')]},'agentdumpAt':{'type':Sequelize[_0xe552('0x3')]},'holdtime':{'type':Sequelize[_0xe552('0x4')]},'agentcomplete':{'type':Sequelize[_0xe552('0x5')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0xe552('0x5')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0xe552('0x5')],'defaultValue':![]},'talktime':{'type':Sequelize[_0xe552('0x4')]},'agentacw':{'type':Sequelize[_0xe552('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0xe552('0x4')]},'reason':{'type':Sequelize[_0xe552('0x2')]},'lastevent':{'type':Sequelize[_0xe552('0x2')]},'channel':{'type':Sequelize[_0xe552('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xe552('0x2')]},'connectedlinenum':{'type':Sequelize[_0xe552('0x2')]},'connectedlinename':{'type':Sequelize[_0xe552('0x2')]},'language':{'type':Sequelize[_0xe552('0x2')]},'accountcode':{'type':Sequelize[_0xe552('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xe552('0x2')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0xe552('0x2')]},'destchannelstate':{'type':Sequelize[_0xe552('0x4')]},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0xe552('0x2')]},'destcalleridname':{'type':Sequelize[_0xe552('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0xe552('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xe552('0x2')]},'destlanguage':{'type':Sequelize[_0xe552('0x2')]},'destaccountcode':{'type':Sequelize[_0xe552('0x2')]},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0xe552('0x2')]},'destpriority':{'type':Sequelize[_0xe552('0x2')]},'destuniqueid':{'type':Sequelize[_0xe552('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0xe552('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0xe552('0x2')]}};
\ No newline at end of file
+var _0x700f=['DATE','BOOLEAN','INTEGER','STRING'];(function(_0x4439f3,_0x2d9bab){var _0x3d7940=function(_0x965ffe){while(--_0x965ffe){_0x4439f3['push'](_0x4439f3['shift']());}};_0x3d7940(++_0x2d9bab);}(_0x700f,0x11b));var _0xf700=function(_0x58f3e5,_0x510b6c){_0x58f3e5=_0x58f3e5-0x0;var _0x554173=_0x700f[_0x58f3e5];return _0x554173;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0xf700('0x0')]},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xf700('0x0')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0xf700('0x0')]},'interface':{'type':Sequelize[_0xf700('0x0')]},'membername':{'type':Sequelize[_0xf700('0x0')]},'agentcalledAt':{'type':Sequelize[_0xf700('0x1')]},'agentconnectAt':{'type':Sequelize[_0xf700('0x1')]},'agentcompleteAt':{'type':Sequelize[_0xf700('0x1')]},'agentringnoanswerAt':{'type':Sequelize[_0xf700('0x1')]},'agentdumpAt':{'type':Sequelize[_0xf700('0x1')]},'holdtime':{'type':Sequelize['INTEGER']},'agentcomplete':{'type':Sequelize[_0xf700('0x2')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0xf700('0x2')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0xf700('0x2')],'defaultValue':![]},'talktime':{'type':Sequelize[_0xf700('0x3')]},'agentacw':{'type':Sequelize[_0xf700('0x2')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0xf700('0x3')]},'reason':{'type':Sequelize[_0xf700('0x0')]},'lastevent':{'type':Sequelize[_0xf700('0x0')]},'channel':{'type':Sequelize[_0xf700('0x0')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0xf700('0x0')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xf700('0x0')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xf700('0x0')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xf700('0x0')]},'destchannel':{'type':Sequelize[_0xf700('0x0')]},'destchannelstate':{'type':Sequelize[_0xf700('0x3')]},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0xf700('0x0')]},'destconnectedlinenum':{'type':Sequelize[_0xf700('0x0')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize[_0xf700('0x0')]},'destaccountcode':{'type':Sequelize[_0xf700('0x0')]},'destcontext':{'type':Sequelize[_0xf700('0x0')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize['STRING']},'destuniqueid':{'type':Sequelize['STRING']},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0xf700('0x0')]},'answeredelsewheremembername':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['../../config/logger','../../config/utils','../../config/environment','status','end','json','count','offset','limit','set','Content-Range','save','then','destroy','sendStatus','error','name','index','VoiceAgentReport','rawAttributes','model','query','dateEnd','dateStart','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','add','day','where','merge','map','filter','options','includeAll','include','findAll','catch','params','keys','find','body','update','describe','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','../../components/parsers/qs'];(function(_0x17928f,_0x4ad33f){var _0x500b63=function(_0x127644){while(--_0x127644){_0x17928f['push'](_0x17928f['shift']());}};_0x500b63(++_0x4ad33f);}(_0x0b0e,0x187));var _0xe0b0=function(_0x270a54,_0x307ff6){_0x270a54=_0x270a54-0x0;var _0x4d07d0=_0x0b0e[_0x270a54];return _0x4d07d0;};'use strict';var pdf=require(_0xe0b0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xe0b0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe0b0('0x2'));var rp=require(_0xe0b0('0x3'));var moment=require(_0xe0b0('0x4'));var BPromise=require(_0xe0b0('0x5'));var Mustache=require(_0xe0b0('0x6'));var util=require(_0xe0b0('0x7'));var path=require(_0xe0b0('0x8'));var sox=require(_0xe0b0('0x9'));var csv=require(_0xe0b0('0xa'));var ejs=require(_0xe0b0('0xb'));var fs=require('fs');var _=require(_0xe0b0('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe0b0('0xd'));var deskjs=require(_0xe0b0('0xe'));var toCsv=require(_0xe0b0('0xa'));var querystring=require(_0xe0b0('0xf'));var Papa=require('papaparse');var qs=require(_0xe0b0('0x10'));var logger=require(_0xe0b0('0x11'))('api');var utils=require(_0xe0b0('0x12'));var config=require(_0xe0b0('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x399320,_0x2cdad2){_0x2cdad2=_0x2cdad2||0xcc;return function(_0x39b1c2){if(_0x39b1c2){return _0x399320['sendStatus'](_0x2cdad2);}return _0x399320[_0xe0b0('0x14')](_0x2cdad2)[_0xe0b0('0x15')]();};}function respondWithResult(_0x3cc19a,_0x45f914){_0x45f914=_0x45f914||0xc8;return function(_0x34fed4){if(_0x34fed4){return _0x3cc19a['status'](_0x45f914)[_0xe0b0('0x16')](_0x34fed4);}};}function respondWithFilteredResult(_0x154de6,_0x743318){return function(_0x24babd){if(_0x24babd){var _0x177c24=_0x24babd[_0xe0b0('0x17')],_0x55d884=_0x743318[_0xe0b0('0x18')],_0x41a7e2=_0x743318['offset']+_0x743318[_0xe0b0('0x19')],_0x5adb01;if(_0x41a7e2>=_0x177c24){_0x41a7e2=_0x177c24;_0x5adb01=0xc8;}else{_0x5adb01=0xce;}_0x154de6['status'](_0x5adb01);return _0x154de6[_0xe0b0('0x1a')](_0xe0b0('0x1b'),_0x55d884+'-'+_0x41a7e2+'/'+_0x177c24)['json'](_0x24babd);}return null;};}function patchUpdates(_0x54a3eb){return function(_0x46bb44){try{jsonpatch['apply'](_0x46bb44,_0x54a3eb,!![]);}catch(_0x4df8da){return BPromise['reject'](_0x4df8da);}return _0x46bb44[_0xe0b0('0x1c')]();};}function saveUpdates(_0x50fa4a,_0x52598b){return function(_0x10cde1){if(_0x10cde1){return _0x10cde1['update'](_0x50fa4a)[_0xe0b0('0x1d')](function(_0x5dba2f){return _0x5dba2f;});}return null;};}function removeEntity(_0x2c84cc,_0x1cd7c4){return function(_0x3e10b3){if(_0x3e10b3){return _0x3e10b3[_0xe0b0('0x1e')]()[_0xe0b0('0x1d')](function(){_0x2c84cc['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2fa820,_0x5512bb){return function(_0x12b260){if(!_0x12b260){_0x2fa820[_0xe0b0('0x1f')](0x194);}return _0x12b260;};}function handleError(_0x513e63,_0x170ad8){_0x170ad8=_0x170ad8||0x1f4;return function(_0x503883){logger[_0xe0b0('0x20')](_0x503883['stack']);if(_0x503883[_0xe0b0('0x21')]){delete _0x503883['name'];}_0x513e63[_0xe0b0('0x14')](_0x170ad8)['send'](_0x503883);};}exports[_0xe0b0('0x22')]=function(_0x4aafbe,_0x3c221d){var _0x5c5317={},_0x362aba={},_0x3c3bc2={'count':0x0,'rows':[]};var _0x1f1ebd=db[_0xe0b0('0x23')][_0xe0b0('0x24')];_0x362aba[_0xe0b0('0x25')]=_['keys'](_0x1f1ebd);var _0x1444b9={'dateStart':_0x4aafbe[_0xe0b0('0x26')]['dateStart'],'dateEnd':_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x27')]};delete _0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x28')];delete _0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x27')];_0x362aba[_0xe0b0('0x26')]=_['keys'](_0x4aafbe[_0xe0b0('0x26')]);_0x362aba[_0xe0b0('0x29')]=_['intersection'](_0x362aba['model'],_0x362aba[_0xe0b0('0x26')]);_0x5c5317[_0xe0b0('0x2a')]=_[_0xe0b0('0x2b')](_0x362aba[_0xe0b0('0x25')],qs[_0xe0b0('0x2c')](_0x4aafbe['query'][_0xe0b0('0x2c')]));_0x5c5317[_0xe0b0('0x2a')]=_0x5c5317[_0xe0b0('0x2a')][_0xe0b0('0x2d')]?_0x5c5317[_0xe0b0('0x2a')]:_0x362aba['model'];if(!_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x2e')](_0xe0b0('0x2f'))){_0x5c5317[_0xe0b0('0x19')]=qs[_0xe0b0('0x19')](_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x19')]);_0x5c5317[_0xe0b0('0x18')]=qs[_0xe0b0('0x18')](_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x18')]);}_0x5c5317[_0xe0b0('0x30')]=qs[_0xe0b0('0x31')](_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x31')]);_0x5c5317['where']=qs[_0xe0b0('0x29')](_[_0xe0b0('0x32')](_0x4aafbe[_0xe0b0('0x26')],_0x362aba[_0xe0b0('0x29')]));if(_0x1444b9[_0xe0b0('0x28')]){if(_0x1444b9[_0xe0b0('0x27')]){_0x1444b9[_0xe0b0('0x27')]=moment(_0x1444b9['dateEnd'])['add'](0x1,'day');}else{_0x1444b9['dateEnd']=moment(_0x1444b9[_0xe0b0('0x28')])[_0xe0b0('0x33')](0x1,_0xe0b0('0x34'));}_['merge'](_0x5c5317[_0xe0b0('0x35')],{'createdAt':{'$gte':_0x1444b9[_0xe0b0('0x28')],'$lte':_0x1444b9[_0xe0b0('0x27')]}});}if(_0x4aafbe[_0xe0b0('0x26')]['filter']){_0x5c5317[_0xe0b0('0x35')]=_[_0xe0b0('0x36')](_0x5c5317[_0xe0b0('0x35')],{'$or':_[_0xe0b0('0x37')](_0x5c5317[_0xe0b0('0x2a')],function(_0x1205db){var _0x8b745={};_0x8b745[_0x1205db]={'$like':'%'+_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x38')]+'%'};return _0x8b745;})});}_0x5c5317=_['merge']({},_0x5c5317,_0x4aafbe[_0xe0b0('0x39')]);var _0x54f646={'where':_0x5c5317[_0xe0b0('0x35')]};return db[_0xe0b0('0x23')][_0xe0b0('0x17')](_0x54f646)[_0xe0b0('0x1d')](function(_0x4d0f98){_0x3c3bc2[_0xe0b0('0x17')]=_0x4d0f98;if(_0x4aafbe[_0xe0b0('0x26')][_0xe0b0('0x3a')]){_0x5c5317[_0xe0b0('0x3b')]=[{'all':!![]}];}return db[_0xe0b0('0x23')][_0xe0b0('0x3c')](_0x5c5317);})[_0xe0b0('0x1d')](function(_0x3bde8b){_0x3c3bc2['rows']=_0x3bde8b;return _0x3c3bc2;})[_0xe0b0('0x1d')](respondWithFilteredResult(_0x3c221d,_0x5c5317))[_0xe0b0('0x3d')](handleError(_0x3c221d,null));};exports['show']=function(_0x515bd2,_0x327fb4){var _0x247f8d={'raw':![],'where':{'id':_0x515bd2[_0xe0b0('0x3e')]['id']}},_0x56e7df={};_0x56e7df[_0xe0b0('0x25')]=_[_0xe0b0('0x3f')](db[_0xe0b0('0x23')][_0xe0b0('0x24')]);_0x56e7df['query']=_['keys'](_0x515bd2['query']);_0x56e7df[_0xe0b0('0x29')]=_[_0xe0b0('0x2b')](_0x56e7df['model'],_0x56e7df[_0xe0b0('0x26')]);_0x247f8d[_0xe0b0('0x2a')]=_[_0xe0b0('0x2b')](_0x56e7df[_0xe0b0('0x25')],qs[_0xe0b0('0x2c')](_0x515bd2['query']['fields']));_0x247f8d[_0xe0b0('0x2a')]=_0x247f8d[_0xe0b0('0x2a')][_0xe0b0('0x2d')]?_0x247f8d[_0xe0b0('0x2a')]:_0x56e7df[_0xe0b0('0x25')];if(_0x515bd2['query'][_0xe0b0('0x3a')]){_0x247f8d[_0xe0b0('0x3b')]=[{'all':!![]}];}_0x247f8d=_['merge']({},_0x247f8d,_0x515bd2['options']);return db['VoiceAgentReport'][_0xe0b0('0x40')](_0x247f8d)[_0xe0b0('0x1d')](handleEntityNotFound(_0x327fb4,null))[_0xe0b0('0x1d')](respondWithResult(_0x327fb4,null))[_0xe0b0('0x3d')](handleError(_0x327fb4,null));};exports['create']=function(_0x2e2b10,_0x87d8f3){return db['VoiceAgentReport']['create'](_0x2e2b10[_0xe0b0('0x41')],{})[_0xe0b0('0x1d')](respondWithResult(_0x87d8f3,0xc9))['catch'](handleError(_0x87d8f3,null));};exports[_0xe0b0('0x42')]=function(_0x27fd31,_0x504284){if(_0x27fd31['body']['id']){delete _0x27fd31[_0xe0b0('0x41')]['id'];}return db['VoiceAgentReport'][_0xe0b0('0x40')]({'where':{'id':_0x27fd31[_0xe0b0('0x3e')]['id']}})[_0xe0b0('0x1d')](handleEntityNotFound(_0x504284,null))[_0xe0b0('0x1d')](saveUpdates(_0x27fd31[_0xe0b0('0x41')],null))[_0xe0b0('0x1d')](respondWithResult(_0x504284,null))['catch'](handleError(_0x504284,null));};exports['destroy']=function(_0x2ef908,_0x5d380a){return db['VoiceAgentReport'][_0xe0b0('0x40')]({'where':{'id':_0x2ef908[_0xe0b0('0x3e')]['id']}})['then'](handleEntityNotFound(_0x5d380a,null))['then'](removeEntity(_0x5d380a,null))[_0xe0b0('0x3d')](handleError(_0x5d380a,null));};exports[_0xe0b0('0x43')]=function(_0x17b09f,_0x4365d1){return db[_0xe0b0('0x23')][_0xe0b0('0x43')]()[_0xe0b0('0x1d')](respondWithResult(_0x4365d1,null))['catch'](handleError(_0x4365d1,null));};
\ No newline at end of file
+var _0xa8df=['update','then','destroy','error','name','send','index','VoiceAgentReport','rawAttributes','model','keys','query','dateEnd','dateStart','filters','intersection','attributes','fields','length','order','sort','where','pick','add','day','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','squel','crypto','jsforce','querystring','ioredis','../../config/logger','api','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject'];(function(_0x41ce9c,_0x68441c){var _0x505f50=function(_0x549d5b){while(--_0x549d5b){_0x41ce9c['push'](_0x41ce9c['shift']());}};_0x505f50(++_0x68441c);}(_0xa8df,0xf0));var _0xfa8d=function(_0x3dd144,_0xdcd461){_0x3dd144=_0x3dd144-0x0;var _0x4bc160=_0xa8df[_0x3dd144];return _0x4bc160;};'use strict';var pdf=require(_0xfa8d('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xfa8d('0x1'));var zipdir=require(_0xfa8d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfa8d('0x3'));var moment=require(_0xfa8d('0x4'));var BPromise=require(_0xfa8d('0x5'));var Mustache=require(_0xfa8d('0x6'));var util=require(_0xfa8d('0x7'));var path=require(_0xfa8d('0x8'));var sox=require('sox');var csv=require(_0xfa8d('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xfa8d('0xa'));var crypto=require(_0xfa8d('0xb'));var jsforce=require(_0xfa8d('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xfa8d('0xd'));var Papa=require('papaparse');var Redis=require(_0xfa8d('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0xfa8d('0xf'))(_0xfa8d('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x45191d,_0x55f642){_0x55f642=_0x55f642||0xcc;return function(_0x2fd4d3){if(_0x2fd4d3){return _0x45191d[_0xfa8d('0x11')](_0x55f642);}return _0x45191d[_0xfa8d('0x12')](_0x55f642)[_0xfa8d('0x13')]();};}function respondWithResult(_0x2e2d0b,_0x4ada30){_0x4ada30=_0x4ada30||0xc8;return function(_0xd20609){if(_0xd20609){return _0x2e2d0b['status'](_0x4ada30)[_0xfa8d('0x14')](_0xd20609);}};}function respondWithFilteredResult(_0x5e5081,_0x51c69f){return function(_0x1403b7){if(_0x1403b7){var _0x35ad6f=_0x1403b7[_0xfa8d('0x15')],_0x504190=_0x51c69f[_0xfa8d('0x16')],_0x1a0dde=_0x51c69f[_0xfa8d('0x16')]+_0x51c69f[_0xfa8d('0x17')],_0x286d50;if(_0x1a0dde>=_0x35ad6f){_0x1a0dde=_0x35ad6f;_0x286d50=0xc8;}else{_0x286d50=0xce;}_0x5e5081['status'](_0x286d50);return _0x5e5081[_0xfa8d('0x18')](_0xfa8d('0x19'),_0x504190+'-'+_0x1a0dde+'/'+_0x35ad6f)[_0xfa8d('0x14')](_0x1403b7);}return null;};}function patchUpdates(_0x5fed9c){return function(_0x4e1383){try{jsonpatch[_0xfa8d('0x1a')](_0x4e1383,_0x5fed9c,!![]);}catch(_0x1f4893){return BPromise[_0xfa8d('0x1b')](_0x1f4893);}return _0x4e1383['save']();};}function saveUpdates(_0x34e9ef,_0x31ff13){return function(_0x5499e3){if(_0x5499e3){return _0x5499e3[_0xfa8d('0x1c')](_0x34e9ef)[_0xfa8d('0x1d')](function(_0x1a55c4){return _0x1a55c4;});}return null;};}function removeEntity(_0x51f82f,_0x4e4115){return function(_0x106dba){if(_0x106dba){return _0x106dba[_0xfa8d('0x1e')]()[_0xfa8d('0x1d')](function(){_0x51f82f[_0xfa8d('0x12')](0xcc)[_0xfa8d('0x13')]();});}};}function handleEntityNotFound(_0x415896,_0x603317){return function(_0x2d61af){if(!_0x2d61af){_0x415896[_0xfa8d('0x11')](0x194);}return _0x2d61af;};}function handleError(_0x2df69f,_0x2597e7){_0x2597e7=_0x2597e7||0x1f4;return function(_0x3bbee7){logger[_0xfa8d('0x1f')](_0x3bbee7['stack']);if(_0x3bbee7[_0xfa8d('0x20')]){delete _0x3bbee7[_0xfa8d('0x20')];}_0x2df69f['status'](_0x2597e7)[_0xfa8d('0x21')](_0x3bbee7);};}exports[_0xfa8d('0x22')]=function(_0xbf68a0,_0x839dfa){var _0x128732={},_0x21a365={},_0xf63760={'count':0x0,'rows':[]};var _0x4a66d7=db[_0xfa8d('0x23')][_0xfa8d('0x24')];_0x21a365[_0xfa8d('0x25')]=_[_0xfa8d('0x26')](_0x4a66d7);var _0x4e6887={'dateStart':_0xbf68a0[_0xfa8d('0x27')]['dateStart'],'dateEnd':_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x28')]};delete _0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x29')];delete _0xbf68a0[_0xfa8d('0x27')]['dateEnd'];_0x21a365[_0xfa8d('0x27')]=_[_0xfa8d('0x26')](_0xbf68a0[_0xfa8d('0x27')]);_0x21a365[_0xfa8d('0x2a')]=_[_0xfa8d('0x2b')](_0x21a365['model'],_0x21a365['query']);_0x128732[_0xfa8d('0x2c')]=_[_0xfa8d('0x2b')](_0x21a365[_0xfa8d('0x25')],qs['fields'](_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x2d')]));_0x128732[_0xfa8d('0x2c')]=_0x128732[_0xfa8d('0x2c')][_0xfa8d('0x2e')]?_0x128732[_0xfa8d('0x2c')]:_0x21a365['model'];if(!_0xbf68a0[_0xfa8d('0x27')]['hasOwnProperty']('nolimit')){_0x128732[_0xfa8d('0x17')]=qs['limit'](_0xbf68a0[_0xfa8d('0x27')]['limit']);_0x128732[_0xfa8d('0x16')]=qs[_0xfa8d('0x16')](_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x16')]);}_0x128732[_0xfa8d('0x2f')]=qs[_0xfa8d('0x30')](_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x30')]);_0x128732[_0xfa8d('0x31')]=qs[_0xfa8d('0x2a')](_[_0xfa8d('0x32')](_0xbf68a0[_0xfa8d('0x27')],_0x21a365['filters']));if(_0x4e6887[_0xfa8d('0x29')]){if(_0x4e6887[_0xfa8d('0x28')]){_0x4e6887[_0xfa8d('0x28')]=moment(_0x4e6887[_0xfa8d('0x28')])[_0xfa8d('0x33')](0x1,_0xfa8d('0x34'));}else{_0x4e6887['dateEnd']=moment(_0x4e6887[_0xfa8d('0x29')])[_0xfa8d('0x33')](0x1,_0xfa8d('0x34'));}_[_0xfa8d('0x35')](_0x128732[_0xfa8d('0x31')],{'createdAt':{'$gte':_0x4e6887[_0xfa8d('0x29')],'$lte':_0x4e6887[_0xfa8d('0x28')]}});}if(_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x36')]){_0x128732[_0xfa8d('0x31')]=_[_0xfa8d('0x35')](_0x128732['where'],{'$or':_['map'](_0x128732[_0xfa8d('0x2c')],function(_0x1072f3){var _0x5deab0={};_0x5deab0[_0x1072f3]={'$like':'%'+_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x36')]+'%'};return _0x5deab0;})});}_0x128732=_[_0xfa8d('0x35')]({},_0x128732,_0xbf68a0[_0xfa8d('0x37')]);var _0x4af09d={'where':_0x128732[_0xfa8d('0x31')]};return db['VoiceAgentReport'][_0xfa8d('0x15')](_0x4af09d)[_0xfa8d('0x1d')](function(_0x4895be){_0xf63760[_0xfa8d('0x15')]=_0x4895be;if(_0xbf68a0[_0xfa8d('0x27')][_0xfa8d('0x38')]){_0x128732[_0xfa8d('0x39')]=[{'all':!![]}];}return db[_0xfa8d('0x23')][_0xfa8d('0x3a')](_0x128732);})[_0xfa8d('0x1d')](function(_0x38d68b){_0xf63760[_0xfa8d('0x3b')]=_0x38d68b;return _0xf63760;})[_0xfa8d('0x1d')](respondWithFilteredResult(_0x839dfa,_0x128732))[_0xfa8d('0x3c')](handleError(_0x839dfa,null));};exports[_0xfa8d('0x3d')]=function(_0x466191,_0x2f3941){var _0x384856={'raw':![],'where':{'id':_0x466191[_0xfa8d('0x3e')]['id']}},_0x34e3bf={};_0x34e3bf[_0xfa8d('0x25')]=_['keys'](db['VoiceAgentReport']['rawAttributes']);_0x34e3bf[_0xfa8d('0x27')]=_['keys'](_0x466191['query']);_0x34e3bf[_0xfa8d('0x2a')]=_[_0xfa8d('0x2b')](_0x34e3bf[_0xfa8d('0x25')],_0x34e3bf[_0xfa8d('0x27')]);_0x384856[_0xfa8d('0x2c')]=_[_0xfa8d('0x2b')](_0x34e3bf[_0xfa8d('0x25')],qs[_0xfa8d('0x2d')](_0x466191[_0xfa8d('0x27')][_0xfa8d('0x2d')]));_0x384856[_0xfa8d('0x2c')]=_0x384856[_0xfa8d('0x2c')][_0xfa8d('0x2e')]?_0x384856['attributes']:_0x34e3bf[_0xfa8d('0x25')];if(_0x466191['query']['includeAll']){_0x384856[_0xfa8d('0x39')]=[{'all':!![]}];}_0x384856=_[_0xfa8d('0x35')]({},_0x384856,_0x466191[_0xfa8d('0x37')]);return db[_0xfa8d('0x23')][_0xfa8d('0x3f')](_0x384856)[_0xfa8d('0x1d')](handleEntityNotFound(_0x2f3941,null))['then'](respondWithResult(_0x2f3941,null))[_0xfa8d('0x3c')](handleError(_0x2f3941,null));};exports[_0xfa8d('0x40')]=function(_0x3fe286,_0x7c0c80){return db['VoiceAgentReport'][_0xfa8d('0x40')](_0x3fe286['body'],{})[_0xfa8d('0x1d')](respondWithResult(_0x7c0c80,0xc9))[_0xfa8d('0x3c')](handleError(_0x7c0c80,null));};exports[_0xfa8d('0x1c')]=function(_0x5f5d6e,_0x4c52fc){if(_0x5f5d6e[_0xfa8d('0x41')]['id']){delete _0x5f5d6e[_0xfa8d('0x41')]['id'];}return db['VoiceAgentReport'][_0xfa8d('0x3f')]({'where':{'id':_0x5f5d6e[_0xfa8d('0x3e')]['id']}})[_0xfa8d('0x1d')](handleEntityNotFound(_0x4c52fc,null))[_0xfa8d('0x1d')](saveUpdates(_0x5f5d6e['body'],null))[_0xfa8d('0x1d')](respondWithResult(_0x4c52fc,null))['catch'](handleError(_0x4c52fc,null));};exports['destroy']=function(_0x86ae7d,_0x4327d1){return db[_0xfa8d('0x23')]['find']({'where':{'id':_0x86ae7d[_0xfa8d('0x3e')]['id']}})[_0xfa8d('0x1d')](handleEntityNotFound(_0x4327d1,null))[_0xfa8d('0x1d')](removeEntity(_0x4327d1,null))[_0xfa8d('0x3c')](handleError(_0x4327d1,null));};exports[_0xfa8d('0x42')]=function(_0x577ca7,_0x310d61){return db[_0xfa8d('0x23')]['describe']()[_0xfa8d('0x1d')](respondWithResult(_0x310d61,null))[_0xfa8d('0x3c')](handleError(_0x310d61,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaca1=['VoiceAgentReport','report_agent','uniqueid','lodash','util','../../config/logger','moment','bluebird','request-promise','exports','define'];(function(_0x2bf141,_0x31eac7){var _0x48277b=function(_0x9fe560){while(--_0x9fe560){_0x2bf141['push'](_0x2bf141['shift']());}};_0x48277b(++_0x31eac7);}(_0xaca1,0x1dc));var _0x1aca=function(_0x10ac34,_0x50f24f){_0x10ac34=_0x10ac34-0x0;var _0x2b3538=_0xaca1[_0x10ac34];return _0x2b3538;};'use strict';var _=require(_0x1aca('0x0'));var util=require(_0x1aca('0x1'));var logger=require(_0x1aca('0x2'))('api');var moment=require(_0x1aca('0x3'));var BPromise=require(_0x1aca('0x4'));var rp=require(_0x1aca('0x5'));var attributes=require('./voiceAgentReport.attributes');module[_0x1aca('0x6')]=function(_0x35febf,_0x2800b6){return _0x35febf[_0x1aca('0x7')](_0x1aca('0x8'),attributes,{'tableName':_0x1aca('0x9'),'paranoid':![],'indexes':[{'fields':[_0x1aca('0xa'),'destuniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf903=['exports','define','VoiceAgentReport','report_agent','uniqueid','destuniqueid','lodash','util','api','moment','bluebird','./voiceAgentReport.attributes'];(function(_0xb6ca62,_0x377911){var _0x28b3ee=function(_0x4fd83f){while(--_0x4fd83f){_0xb6ca62['push'](_0xb6ca62['shift']());}};_0x28b3ee(++_0x377911);}(_0xf903,0x1b6));var _0x3f90=function(_0x9cb515,_0x242516){_0x9cb515=_0x9cb515-0x0;var _0x1f51d4=_0xf903[_0x9cb515];return _0x1f51d4;};'use strict';var _=require(_0x3f90('0x0'));var util=require(_0x3f90('0x1'));var logger=require('../../config/logger')(_0x3f90('0x2'));var moment=require(_0x3f90('0x3'));var BPromise=require(_0x3f90('0x4'));var rp=require('request-promise');var attributes=require(_0x3f90('0x5'));module[_0x3f90('0x6')]=function(_0x31ceaf,_0x368101){return _0x31ceaf[_0x3f90('0x7')](_0x3f90('0x8'),attributes,{'tableName':_0x3f90('0x9'),'paranoid':![],'indexes':[{'fields':[_0x3f90('0xa'),_0x3f90('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','VoiceAgentReport,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','CreateVoiceAgentReport','VoiceAgentReport','create','body','options','raw','then','stringify','UpdateVoiceAgentReport','update','attributes','limit','debug','lodash','util'];(function(_0x41508e,_0x4d5a0b){var _0x1acace=function(_0x2ec4ce){while(--_0x2ec4ce){_0x41508e['push'](_0x41508e['shift']());}};_0x1acace(++_0x4d5a0b);}(_0x7a54,0x106));var _0x47a5=function(_0x4adf73,_0xeada7c){_0x4adf73=_0x4adf73-0x0;var _0x5cf0c6=_0x7a54[_0x4adf73];return _0x5cf0c6;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var db=require(_0x47a5('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x47a5('0x5'))(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var jayson=require(_0x47a5('0x8'));var client=jayson[_0x47a5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3d5629,_0x59199c,_0x343372){return new BPromise(function(_0x30e405,_0x506eda){return client[_0x47a5('0xa')](_0x3d5629,_0x343372)['then'](function(_0x5d90b3){logger['info'](_0x47a5('0xb'),_0x59199c,_0x47a5('0xc'));logger['debug'](_0x47a5('0xd'),_0x59199c,'request\x20sent',JSON['stringify'](_0x5d90b3));if(_0x5d90b3[_0x47a5('0xe')]){if(_0x5d90b3[_0x47a5('0xe')][_0x47a5('0xf')]===0x1f4){logger[_0x47a5('0xe')](_0x47a5('0xb'),_0x59199c,_0x5d90b3[_0x47a5('0xe')][_0x47a5('0x10')]);return _0x506eda(_0x5d90b3['error'][_0x47a5('0x10')]);}logger[_0x47a5('0xe')](_0x47a5('0xb'),_0x59199c,_0x5d90b3[_0x47a5('0xe')][_0x47a5('0x10')]);return _0x30e405(_0x5d90b3[_0x47a5('0xe')][_0x47a5('0x10')]);}else{logger[_0x47a5('0x11')]('VoiceAgentReport,\x20%s,\x20%s',_0x59199c,_0x47a5('0xc'));_0x30e405(_0x5d90b3[_0x47a5('0x12')][_0x47a5('0x10')]);}})[_0x47a5('0x13')](function(_0x1ef44c){logger['error']('VoiceAgentReport,\x20%s,\x20%s',_0x59199c,_0x1ef44c);_0x506eda(_0x1ef44c);});});}exports[_0x47a5('0x14')]=function(_0x4b966e){var _0x5247fd=this;return new Promise(function(_0x423a81,_0xaf70a6){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x4b966e[_0x47a5('0x17')],{'raw':_0x4b966e[_0x47a5('0x18')]?_0x4b966e[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})[_0x47a5('0x1a')](function(_0x4a9fcb){logger[_0x47a5('0x11')](_0x47a5('0x14'),_0x4b966e);logger['debug'](_0x47a5('0x14'),_0x4b966e,JSON[_0x47a5('0x1b')](_0x4a9fcb));_0x423a81(_0x4a9fcb);})[_0x47a5('0x13')](function(_0x4c5910){logger[_0x47a5('0xe')](_0x47a5('0x14'),_0x4c5910[_0x47a5('0x10')],_0x4b966e);_0xaf70a6(_0x5247fd[_0x47a5('0xe')](0x1f4,_0x4c5910['message']));});});};exports[_0x47a5('0x1c')]=function(_0x385687){var _0x513981=this;return new Promise(function(_0x28747d,_0xc4cd63){return db[_0x47a5('0x15')][_0x47a5('0x1d')](_0x385687[_0x47a5('0x17')],{'raw':_0x385687['options']?_0x385687['options'][_0x47a5('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x385687['options']?_0x385687[_0x47a5('0x18')]['where']||null:null,'attributes':_0x385687[_0x47a5('0x18')]?_0x385687[_0x47a5('0x18')][_0x47a5('0x1e')]||null:null,'limit':_0x385687[_0x47a5('0x18')]?_0x385687[_0x47a5('0x18')][_0x47a5('0x1f')]||null:null})[_0x47a5('0x1a')](function(_0x136b14){logger[_0x47a5('0x11')](_0x47a5('0x1c'),_0x385687);logger[_0x47a5('0x20')](_0x47a5('0x1c'),_0x385687,JSON[_0x47a5('0x1b')](_0x136b14));_0x28747d(_0x136b14);})['catch'](function(_0x243210){logger['error'](_0x47a5('0x1c'),_0x243210[_0x47a5('0x10')],_0x385687);_0xc4cd63(_0x513981[_0x47a5('0xe')](0x1f4,_0x243210['message']));});});};
\ No newline at end of file
+var _0x7a54=['moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','VoiceAgentReport,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','VoiceAgentReport','create','body','options','raw','CreateVoiceAgentReport','UpdateVoiceAgentReport','update','where','attributes','limit','then','lodash','util'];(function(_0x2a2219,_0x53bab2){var _0x51acbd=function(_0x4fcddc){while(--_0x4fcddc){_0x2a2219['push'](_0x2a2219['shift']());}};_0x51acbd(++_0x53bab2);}(_0x7a54,0x106));var _0x47a5=function(_0x156a66,_0x59feca){_0x156a66=_0x156a66-0x0;var _0x65a3dc=_0x7a54[_0x156a66];return _0x65a3dc;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('VoiceAgentReport,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}exports['CreateVoiceAgentReport']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x5247fd[_0x47a5('0x17')],{'raw':_0x5247fd[_0x47a5('0x18')]?_0x5247fd[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x1570bc){logger[_0x47a5('0xb')]('CreateVoiceAgentReport',_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1a'),_0x5247fd,JSON[_0x47a5('0xe')](_0x1570bc));_0xaf70a6(_0x1570bc);})['catch'](function(_0xb8ae6c){logger[_0x47a5('0xf')](_0x47a5('0x1a'),_0xb8ae6c[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81['error'](0x1f4,_0xb8ae6c[_0x47a5('0x11')]));});});};exports[_0x47a5('0x1b')]=function(_0x513981){var _0x28747d=this;return new Promise(function(_0xc4cd63,_0x4437f1){return db[_0x47a5('0x15')][_0x47a5('0x1c')](_0x513981['body'],{'raw':_0x513981['options']?_0x513981[_0x47a5('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x513981[_0x47a5('0x18')]?_0x513981['options'][_0x47a5('0x1d')]||null:null,'attributes':_0x513981[_0x47a5('0x18')]?_0x513981[_0x47a5('0x18')][_0x47a5('0x1e')]||null:null,'limit':_0x513981[_0x47a5('0x18')]?_0x513981[_0x47a5('0x18')][_0x47a5('0x1f')]||null:null})[_0x47a5('0x20')](function(_0x16631f){logger[_0x47a5('0xb')](_0x47a5('0x1b'),_0x513981);logger[_0x47a5('0xd')](_0x47a5('0x1b'),_0x513981,JSON['stringify'](_0x16631f));_0xc4cd63(_0x16631f);})[_0x47a5('0x14')](function(_0x51833b){logger[_0x47a5('0xf')](_0x47a5('0x1b'),_0x51833b[_0x47a5('0x11')],_0x513981);_0x4437f1(_0x28747d['error'](0x1f4,_0x51833b[_0x47a5('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cf8=['../../config/environment','get','/describe','isAuthenticated','describe','/:id','show','post','create','put','delete','destroy','multer','connect-timeout','express','Router','../../components/interaction/service'];(function(_0x4306c2,_0x580ace){var _0x4c1ff2=function(_0x3edf5c){while(--_0x3edf5c){_0x4306c2['push'](_0x4306c2['shift']());}};_0x4c1ff2(++_0x580ace);}(_0x5cf8,0x1a4));var _0x85cf=function(_0x47643e,_0x337374){_0x47643e=_0x47643e-0x0;var _0x2aa5db=_0x5cf8[_0x47643e];return _0x2aa5db;};'use strict';var multer=require(_0x85cf('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x85cf('0x1'));var express=require(_0x85cf('0x2'));var router=express[_0x85cf('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x85cf('0x4'));var config=require(_0x85cf('0x5'));var controller=require('./voiceCallReport.controller');router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x85cf('0x6')](_0x85cf('0x7'),auth[_0x85cf('0x8')](),controller[_0x85cf('0x9')]);router[_0x85cf('0x6')](_0x85cf('0xa'),auth[_0x85cf('0x8')](),controller[_0x85cf('0xb')]);router[_0x85cf('0xc')]('/',auth[_0x85cf('0x8')](),controller[_0x85cf('0xd')]);router[_0x85cf('0xe')](_0x85cf('0xa'),auth[_0x85cf('0x8')](),controller['update']);router[_0x85cf('0xf')](_0x85cf('0xa'),auth[_0x85cf('0x8')](),controller[_0x85cf('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xac4c=['create','put','/:id','update','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../config/environment','./voiceCallReport.controller','get','isAuthenticated','index','/describe','describe','post'];(function(_0x5db657,_0x2f40b3){var _0x2d6e70=function(_0x358ed2){while(--_0x358ed2){_0x5db657['push'](_0x5db657['shift']());}};_0x2d6e70(++_0x2f40b3);}(_0xac4c,0xf6));var _0xcac4=function(_0x3f42b3,_0xcf6273){_0x3f42b3=_0x3f42b3-0x0;var _0x4f25a7=_0xac4c[_0x3f42b3];return _0x4f25a7;};'use strict';var multer=require(_0xcac4('0x0'));var util=require(_0xcac4('0x1'));var path=require(_0xcac4('0x2'));var timeout=require('connect-timeout');var express=require(_0xcac4('0x3'));var router=express[_0xcac4('0x4')]();var auth=require(_0xcac4('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xcac4('0x6'));var controller=require(_0xcac4('0x7'));router[_0xcac4('0x8')]('/',auth[_0xcac4('0x9')](),controller[_0xcac4('0xa')]);router['get'](_0xcac4('0xb'),auth[_0xcac4('0x9')](),controller[_0xcac4('0xc')]);router[_0xcac4('0x8')]('/:id',auth[_0xcac4('0x9')](),controller['show']);router[_0xcac4('0xd')]('/',auth[_0xcac4('0x9')](),controller[_0xcac4('0xe')]);router[_0xcac4('0xf')](_0xcac4('0x10'),auth[_0xcac4('0x9')](),controller[_0xcac4('0x11')]);router['delete']('/:id',auth[_0xcac4('0x9')](),controller[_0xcac4('0x12')]);module[_0xcac4('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeee9=['exports','ENUM','inbound','outbound-fax','STRING','TEXT','DATE','INTEGER','sequelize'];(function(_0x278e3c,_0x1c9cfd){var _0x3e2d9b=function(_0x34d928){while(--_0x34d928){_0x278e3c['push'](_0x278e3c['shift']());}};_0x3e2d9b(++_0x1c9cfd);}(_0xeee9,0x1b8));var _0x9eee=function(_0x49eecb,_0x3390cb){_0x49eecb=_0x49eecb-0x0;var _0x342408=_0xeee9[_0x49eecb];return _0x342408;};'use strict';var Sequelize=require(_0x9eee('0x0'));module[_0x9eee('0x1')]={'uniqueid':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x9eee('0x2')](_0x9eee('0x3'),'internal','outbound','inbound-fax',_0x9eee('0x4'),'dialer')},'tag':{'type':Sequelize[_0x9eee('0x5')]},'accountcode':{'type':Sequelize['STRING']},'source':{'type':Sequelize['STRING']},'destination':{'type':Sequelize[_0x9eee('0x5')]},'destinationcontext':{'type':Sequelize[_0x9eee('0x5')]},'callerid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x9eee('0x5')]},'destinationchannel':{'type':Sequelize[_0x9eee('0x5')]},'lastapplication':{'type':Sequelize[_0x9eee('0x5')]},'lastdata':{'type':Sequelize[_0x9eee('0x6')]},'starttime':{'type':Sequelize[_0x9eee('0x7')]},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x9eee('0x7')]},'duration':{'type':Sequelize[_0x9eee('0x8')]},'billableseconds':{'type':Sequelize[_0x9eee('0x8')]},'mohtime':{'type':Sequelize[_0x9eee('0x8')],'defaultValue':0x0},'disposition':{'type':Sequelize['STRING']},'amaflags':{'type':Sequelize[_0x9eee('0x5')]},'userfield':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize[_0x9eee('0x5')]},'note':{'type':Sequelize[_0x9eee('0x5')]},'prefix':{'type':Sequelize[_0x9eee('0x5')]},'routeid':{'type':Sequelize[_0x9eee('0x8')]}};
\ No newline at end of file
+var _0xc98b=['outbound-fax','dialer','DATE','INTEGER','exports','STRING','ENUM','internal','outbound','inbound-fax'];(function(_0x587fb5,_0x59cb3b){var _0x551105=function(_0x5bbef4){while(--_0x5bbef4){_0x587fb5['push'](_0x587fb5['shift']());}};_0x551105(++_0x59cb3b);}(_0xc98b,0x7c));var _0xbc98=function(_0x41cce2,_0x113e70){_0x41cce2=_0x41cce2-0x0;var _0x159f1d=_0xc98b[_0x41cce2];return _0x159f1d;};'use strict';var Sequelize=require('sequelize');module[_0xbc98('0x0')]={'uniqueid':{'type':Sequelize[_0xbc98('0x1')]},'type':{'type':Sequelize[_0xbc98('0x2')]('inbound',_0xbc98('0x3'),_0xbc98('0x4'),_0xbc98('0x5'),_0xbc98('0x6'),_0xbc98('0x7'))},'tag':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0xbc98('0x1')]},'source':{'type':Sequelize[_0xbc98('0x1')]},'destination':{'type':Sequelize[_0xbc98('0x1')]},'destinationcontext':{'type':Sequelize[_0xbc98('0x1')]},'callerid':{'type':Sequelize[_0xbc98('0x1')]},'channel':{'type':Sequelize[_0xbc98('0x1')]},'destinationchannel':{'type':Sequelize['STRING']},'lastapplication':{'type':Sequelize[_0xbc98('0x1')]},'lastdata':{'type':Sequelize['TEXT']},'starttime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0xbc98('0x8')]},'endtime':{'type':Sequelize['DATE']},'duration':{'type':Sequelize[_0xbc98('0x9')]},'billableseconds':{'type':Sequelize[_0xbc98('0x9')]},'mohtime':{'type':Sequelize[_0xbc98('0x9')],'defaultValue':0x0},'disposition':{'type':Sequelize['STRING']},'amaflags':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize[_0xbc98('0x1')]},'userDisposition':{'type':Sequelize[_0xbc98('0x1')]},'note':{'type':Sequelize[_0xbc98('0x1')]},'prefix':{'type':Sequelize[_0xbc98('0x1')]},'routeid':{'type':Sequelize[_0xbc98('0x9')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x153c=['sox','ejs','lodash','squel','crypto','jsforce','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','sendStatus','status','offset','limit','set','Content-Range','json','apply','reject','update','then','end','error','stack','name','send','index','rawAttributes','model','query','dateEnd','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','dateStart','add','day','merge','filter','where','options','includeAll','include','fullname','alias','User','VoiceCallReport','findAll','rows','catch','show','params','find','create','body','describe','uniqueid','user','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path'];(function(_0x4e486c,_0x2b0611){var _0x21f771=function(_0x440e4d){while(--_0x440e4d){_0x4e486c['push'](_0x4e486c['shift']());}};_0x21f771(++_0x2b0611);}(_0x153c,0x8c));var _0xc153=function(_0x4a5a08,_0x4e34ec){_0x4a5a08=_0x4a5a08-0x0;var _0x46e9a5=_0x153c[_0x4a5a08];return _0x46e9a5;};'use strict';var pdf=require(_0xc153('0x0'));var emlformat=require(_0xc153('0x1'));var rimraf=require(_0xc153('0x2'));var zipdir=require(_0xc153('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc153('0x4'));var moment=require(_0xc153('0x5'));var BPromise=require(_0xc153('0x6'));var Mustache=require(_0xc153('0x7'));var util=require(_0xc153('0x8'));var path=require(_0xc153('0x9'));var sox=require(_0xc153('0xa'));var csv=require('to-csv');var ejs=require(_0xc153('0xb'));var fs=require('fs');var _=require(_0xc153('0xc'));var squel=require(_0xc153('0xd'));var crypto=require(_0xc153('0xe'));var jsforce=require(_0xc153('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc153('0x10'));var qs=require(_0xc153('0x11'));var logger=require(_0xc153('0x12'))(_0xc153('0x13'));var utils=require(_0xc153('0x14'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xaa22f8,_0x44905b){_0x44905b=_0x44905b||0xcc;return function(_0x49b44c){if(_0x49b44c){return _0xaa22f8[_0xc153('0x15')](_0x44905b);}return _0xaa22f8[_0xc153('0x16')](_0x44905b)['end']();};}function respondWithResult(_0x49286f,_0x1c9d09){_0x1c9d09=_0x1c9d09||0xc8;return function(_0x1f7c65){if(_0x1f7c65){return _0x49286f[_0xc153('0x16')](_0x1c9d09)['json'](_0x1f7c65);}};}function respondWithFilteredResult(_0x385654,_0xaa835a){return function(_0x1c7d6c){if(_0x1c7d6c){var _0x4e4a09=_0x1c7d6c['count'],_0x1502b8=_0xaa835a[_0xc153('0x17')],_0x2b8de4=_0xaa835a[_0xc153('0x17')]+_0xaa835a[_0xc153('0x18')],_0x5b74a2;if(_0x2b8de4>=_0x4e4a09){_0x2b8de4=_0x4e4a09;_0x5b74a2=0xc8;}else{_0x5b74a2=0xce;}_0x385654[_0xc153('0x16')](_0x5b74a2);return _0x385654[_0xc153('0x19')](_0xc153('0x1a'),_0x1502b8+'-'+_0x2b8de4+'/'+_0x4e4a09)[_0xc153('0x1b')](_0x1c7d6c);}return null;};}function patchUpdates(_0x45bacc){return function(_0x54466a){try{jsonpatch[_0xc153('0x1c')](_0x54466a,_0x45bacc,!![]);}catch(_0x16cfce){return BPromise[_0xc153('0x1d')](_0x16cfce);}return _0x54466a['save']();};}function saveUpdates(_0x28e8c7,_0x4aa563){return function(_0x596131){if(_0x596131){return _0x596131[_0xc153('0x1e')](_0x28e8c7)[_0xc153('0x1f')](function(_0x2954d){return _0x2954d;});}return null;};}function removeEntity(_0x95a64c,_0x23fbb7){return function(_0x1bcb72){if(_0x1bcb72){return _0x1bcb72['destroy']()[_0xc153('0x1f')](function(){_0x95a64c['status'](0xcc)[_0xc153('0x20')]();});}};}function handleEntityNotFound(_0x1442a6,_0x35335c){return function(_0x2a4dc9){if(!_0x2a4dc9){_0x1442a6['sendStatus'](0x194);}return _0x2a4dc9;};}function handleError(_0x4ac708,_0x166f62){_0x166f62=_0x166f62||0x1f4;return function(_0x4b20e0){logger[_0xc153('0x21')](_0x4b20e0[_0xc153('0x22')]);if(_0x4b20e0[_0xc153('0x23')]){delete _0x4b20e0[_0xc153('0x23')];}_0x4ac708['status'](_0x166f62)[_0xc153('0x24')](_0x4b20e0);};}exports[_0xc153('0x25')]=function(_0x401487,_0x9560dd){var _0x159823={},_0x13c7ff={},_0x50ff30={'count':0x0,'rows':[]};var _0x319405=db['VoiceCallReport'][_0xc153('0x26')];_0x13c7ff[_0xc153('0x27')]=_['keys'](_0x319405);var _0x41e282={'dateStart':_0x401487[_0xc153('0x28')]['dateStart'],'dateEnd':_0x401487[_0xc153('0x28')][_0xc153('0x29')]};delete _0x401487[_0xc153('0x28')]['dateStart'];delete _0x401487[_0xc153('0x28')][_0xc153('0x29')];_0x13c7ff[_0xc153('0x28')]=_['keys'](_0x401487[_0xc153('0x28')]);_0x13c7ff[_0xc153('0x2a')]=_[_0xc153('0x2b')](_0x13c7ff[_0xc153('0x27')],_0x13c7ff['query']);_0x159823[_0xc153('0x2c')]=_['intersection'](_0x13c7ff[_0xc153('0x27')],qs['fields'](_0x401487[_0xc153('0x28')][_0xc153('0x2d')]));_0x159823['attributes']=_0x159823[_0xc153('0x2c')]['length']?_0x159823['attributes']:_0x13c7ff[_0xc153('0x27')];if(!_0x401487[_0xc153('0x28')][_0xc153('0x2e')](_0xc153('0x2f'))){_0x159823[_0xc153('0x18')]=qs['limit'](_0x401487[_0xc153('0x28')][_0xc153('0x18')]);_0x159823[_0xc153('0x17')]=qs[_0xc153('0x17')](_0x401487[_0xc153('0x28')][_0xc153('0x17')]);}_0x159823[_0xc153('0x30')]=qs[_0xc153('0x31')](_0x401487[_0xc153('0x28')][_0xc153('0x31')]);_0x159823['where']=qs['filters'](_[_0xc153('0x32')](_0x401487['query'],_0x13c7ff[_0xc153('0x2a')]));if(_0x41e282[_0xc153('0x33')]){if(_0x41e282[_0xc153('0x29')]){_0x41e282['dateEnd']=moment(_0x41e282[_0xc153('0x29')])[_0xc153('0x34')](0x1,_0xc153('0x35'));}else{_0x41e282[_0xc153('0x29')]=moment(_0x41e282[_0xc153('0x33')])[_0xc153('0x34')](0x1,_0xc153('0x35'));}_[_0xc153('0x36')](_0x159823['where'],{'createdAt':{'$gte':_0x41e282['dateStart'],'$lte':_0x41e282[_0xc153('0x29')]}});}if(_0x401487[_0xc153('0x28')][_0xc153('0x37')]){_0x159823[_0xc153('0x38')]=_[_0xc153('0x36')](_0x159823[_0xc153('0x38')],{'$or':_['map'](_0x159823[_0xc153('0x2c')],function(_0x3c8dd6){var _0x5c5a73={};_0x5c5a73[_0x3c8dd6]={'$like':'%'+_0x401487['query'][_0xc153('0x37')]+'%'};return _0x5c5a73;})});}_0x159823=_[_0xc153('0x36')]({},_0x159823,_0x401487[_0xc153('0x39')]);var _0x55d90c={'where':_0x159823['where']};return db['VoiceCallReport']['count'](_0x55d90c)['then'](function(_0x1c07ab){_0x50ff30['count']=_0x1c07ab;if(_0x401487[_0xc153('0x28')][_0xc153('0x3a')]){_0x159823[_0xc153('0x3b')]=[{'attributes':['id',_0xc153('0x23'),_0xc153('0x3c'),_0xc153('0x3d')],'model':db[_0xc153('0x3e')],'as':_0xc153('0x3e')}];}return db[_0xc153('0x3f')][_0xc153('0x40')](_0x159823);})[_0xc153('0x1f')](function(_0x1893a1){_0x50ff30[_0xc153('0x41')]=_0x1893a1;return _0x50ff30;})['then'](respondWithFilteredResult(_0x9560dd,_0x159823))[_0xc153('0x42')](handleError(_0x9560dd,null));};exports[_0xc153('0x43')]=function(_0x1c3716,_0x14fb16){var _0xebaf8f={'raw':!![],'where':{'id':_0x1c3716[_0xc153('0x44')]['id']}},_0x4e669e={};_0x4e669e[_0xc153('0x27')]=_['keys'](db['VoiceCallReport'][_0xc153('0x26')]);_0x4e669e['query']=_['keys'](_0x1c3716['query']);_0x4e669e[_0xc153('0x2a')]=_['intersection'](_0x4e669e[_0xc153('0x27')],_0x4e669e[_0xc153('0x28')]);_0xebaf8f[_0xc153('0x2c')]=_['intersection'](_0x4e669e['model'],qs[_0xc153('0x2d')](_0x1c3716[_0xc153('0x28')][_0xc153('0x2d')]));_0xebaf8f[_0xc153('0x2c')]=_0xebaf8f[_0xc153('0x2c')]['length']?_0xebaf8f['attributes']:_0x4e669e[_0xc153('0x27')];if(_0x1c3716['query']['includeAll']){_0xebaf8f['include']=[{'all':!![]}];}_0xebaf8f=_['merge']({},_0xebaf8f,_0x1c3716[_0xc153('0x39')]);return db['VoiceCallReport'][_0xc153('0x45')](_0xebaf8f)[_0xc153('0x1f')](handleEntityNotFound(_0x14fb16,null))[_0xc153('0x1f')](respondWithResult(_0x14fb16,null))[_0xc153('0x42')](handleError(_0x14fb16,null));};exports[_0xc153('0x46')]=function(_0x4bceb0,_0x101f91){return db[_0xc153('0x3f')][_0xc153('0x46')](_0x4bceb0[_0xc153('0x47')],{})[_0xc153('0x1f')](respondWithResult(_0x101f91,0xc9))['catch'](handleError(_0x101f91,null));};exports['destroy']=function(_0x1b267f,_0x490699){return db[_0xc153('0x3f')][_0xc153('0x45')]({'where':{'id':_0x1b267f[_0xc153('0x44')]['id']}})[_0xc153('0x1f')](handleEntityNotFound(_0x490699,null))[_0xc153('0x1f')](removeEntity(_0x490699,null))[_0xc153('0x42')](handleError(_0x490699,null));};exports[_0xc153('0x48')]=function(_0x54aa74,_0x2a472c){return db['VoiceCallReport']['describe']()[_0xc153('0x1f')](respondWithResult(_0x2a472c,null))[_0xc153('0x42')](handleError(_0x2a472c,null));};exports[_0xc153('0x1e')]=function(_0x35a019,_0x31c237){if(_0x35a019[_0xc153('0x47')][_0xc153('0x49')]){delete _0x35a019[_0xc153('0x47')][_0xc153('0x49')];}return db[_0xc153('0x3f')][_0xc153('0x45')]({'where':{'uniqueid':_0x35a019[_0xc153('0x44')]['id'],'UserId':{'$or':[null,_0x35a019[_0xc153('0x4a')]['id']]}}})[_0xc153('0x1f')](handleEntityNotFound(_0x31c237,null))[_0xc153('0x1f')](saveUpdates(_0x35a019[_0xc153('0x47')],null))['then'](respondWithResult(_0x31c237,null))[_0xc153('0x42')](handleError(_0x31c237,null));};
\ No newline at end of file
+var _0xeebe=['crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','set','Content-Range','json','apply','save','then','destroy','name','send','index','VoiceCallReport','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','add','day','merge','where','filter','map','options','count','includeAll','include','fullname','findAll','rows','catch','show','find','create','body','params','describe','update','uniqueid','user','eml-format','zip-dir','fast-json-patch','mustache','path','sox','to-csv','ejs','lodash','squel'];(function(_0x59fb99,_0xdd35f){var _0x11ce04=function(_0x246034){while(--_0x246034){_0x59fb99['push'](_0x59fb99['shift']());}};_0x11ce04(++_0xdd35f);}(_0xeebe,0x116));var _0xeeeb=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0xeebe[_0x4cf98e];return _0x1623ac;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xeeeb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xeeeb('0x1'));var jsonpatch=require(_0xeeeb('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xeeeb('0x3'));var util=require('util');var path=require(_0xeeeb('0x4'));var sox=require(_0xeeeb('0x5'));var csv=require(_0xeeeb('0x6'));var ejs=require(_0xeeeb('0x7'));var fs=require('fs');var _=require(_0xeeeb('0x8'));var squel=require(_0xeeeb('0x9'));var crypto=require(_0xeeeb('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xeeeb('0xb'));var Papa=require(_0xeeeb('0xc'));var Redis=require(_0xeeeb('0xd'));var qs=require(_0xeeeb('0xe'));var logger=require(_0xeeeb('0xf'))('api');var utils=require(_0xeeeb('0x10'));var config=require(_0xeeeb('0x11'));var db=require(_0xeeeb('0x12'))['db'];function respondWithStatusCode(_0x5eba83,_0x4fcbcc){_0x4fcbcc=_0x4fcbcc||0xcc;return function(_0x5280d8){if(_0x5280d8){return _0x5eba83[_0xeeeb('0x13')](_0x4fcbcc);}return _0x5eba83[_0xeeeb('0x14')](_0x4fcbcc)[_0xeeeb('0x15')]();};}function respondWithResult(_0x3c998c,_0xe0a47d){_0xe0a47d=_0xe0a47d||0xc8;return function(_0x376918){if(_0x376918){return _0x3c998c['status'](_0xe0a47d)['json'](_0x376918);}};}function respondWithFilteredResult(_0x311022,_0x3a1bb5){return function(_0x1bb038){if(_0x1bb038){var _0x4d7557=_0x1bb038['count'],_0x2716ef=_0x3a1bb5[_0xeeeb('0x16')],_0x288c7a=_0x3a1bb5[_0xeeeb('0x16')]+_0x3a1bb5[_0xeeeb('0x17')],_0x5ee812;if(_0x288c7a>=_0x4d7557){_0x288c7a=_0x4d7557;_0x5ee812=0xc8;}else{_0x5ee812=0xce;}_0x311022[_0xeeeb('0x14')](_0x5ee812);return _0x311022[_0xeeeb('0x18')](_0xeeeb('0x19'),_0x2716ef+'-'+_0x288c7a+'/'+_0x4d7557)[_0xeeeb('0x1a')](_0x1bb038);}return null;};}function patchUpdates(_0x11a0bf){return function(_0x50ac07){try{jsonpatch[_0xeeeb('0x1b')](_0x50ac07,_0x11a0bf,!![]);}catch(_0x2d6e85){return BPromise['reject'](_0x2d6e85);}return _0x50ac07[_0xeeeb('0x1c')]();};}function saveUpdates(_0x260f86,_0x1899cb){return function(_0x275dea){if(_0x275dea){return _0x275dea['update'](_0x260f86)[_0xeeeb('0x1d')](function(_0x15880a){return _0x15880a;});}return null;};}function removeEntity(_0x898f57,_0x436caa){return function(_0x105f67){if(_0x105f67){return _0x105f67[_0xeeeb('0x1e')]()['then'](function(){_0x898f57[_0xeeeb('0x14')](0xcc)[_0xeeeb('0x15')]();});}};}function handleEntityNotFound(_0x3731e7,_0x3481ce){return function(_0x41ef13){if(!_0x41ef13){_0x3731e7['sendStatus'](0x194);}return _0x41ef13;};}function handleError(_0x521780,_0x48076d){_0x48076d=_0x48076d||0x1f4;return function(_0x13b70c){logger['error'](_0x13b70c['stack']);if(_0x13b70c[_0xeeeb('0x1f')]){delete _0x13b70c[_0xeeeb('0x1f')];}_0x521780[_0xeeeb('0x14')](_0x48076d)[_0xeeeb('0x20')](_0x13b70c);};}exports[_0xeeeb('0x21')]=function(_0x4fb7cb,_0x4daa6d){var _0x1cb8b0={},_0x5396a3={},_0x352f6e={'count':0x0,'rows':[]};var _0x5bc559=db[_0xeeeb('0x22')]['rawAttributes'];_0x5396a3[_0xeeeb('0x23')]=_[_0xeeeb('0x24')](_0x5bc559);var _0x4ca2bf={'dateStart':_0x4fb7cb[_0xeeeb('0x25')][_0xeeeb('0x26')],'dateEnd':_0x4fb7cb['query'][_0xeeeb('0x27')]};delete _0x4fb7cb['query'][_0xeeeb('0x26')];delete _0x4fb7cb[_0xeeeb('0x25')]['dateEnd'];_0x5396a3['query']=_[_0xeeeb('0x24')](_0x4fb7cb['query']);_0x5396a3[_0xeeeb('0x28')]=_[_0xeeeb('0x29')](_0x5396a3[_0xeeeb('0x23')],_0x5396a3['query']);_0x1cb8b0[_0xeeeb('0x2a')]=_[_0xeeeb('0x29')](_0x5396a3[_0xeeeb('0x23')],qs[_0xeeeb('0x2b')](_0x4fb7cb[_0xeeeb('0x25')][_0xeeeb('0x2b')]));_0x1cb8b0[_0xeeeb('0x2a')]=_0x1cb8b0['attributes'][_0xeeeb('0x2c')]?_0x1cb8b0['attributes']:_0x5396a3['model'];if(!_0x4fb7cb[_0xeeeb('0x25')][_0xeeeb('0x2d')](_0xeeeb('0x2e'))){_0x1cb8b0[_0xeeeb('0x17')]=qs['limit'](_0x4fb7cb[_0xeeeb('0x25')]['limit']);_0x1cb8b0[_0xeeeb('0x16')]=qs[_0xeeeb('0x16')](_0x4fb7cb['query']['offset']);}_0x1cb8b0[_0xeeeb('0x2f')]=qs['sort'](_0x4fb7cb[_0xeeeb('0x25')][_0xeeeb('0x30')]);_0x1cb8b0['where']=qs[_0xeeeb('0x28')](_['pick'](_0x4fb7cb[_0xeeeb('0x25')],_0x5396a3[_0xeeeb('0x28')]));if(_0x4ca2bf['dateStart']){if(_0x4ca2bf[_0xeeeb('0x27')]){_0x4ca2bf[_0xeeeb('0x27')]=moment(_0x4ca2bf[_0xeeeb('0x27')])['add'](0x1,'day');}else{_0x4ca2bf[_0xeeeb('0x27')]=moment(_0x4ca2bf[_0xeeeb('0x26')])[_0xeeeb('0x31')](0x1,_0xeeeb('0x32'));}_[_0xeeeb('0x33')](_0x1cb8b0[_0xeeeb('0x34')],{'createdAt':{'$gte':_0x4ca2bf[_0xeeeb('0x26')],'$lte':_0x4ca2bf['dateEnd']}});}if(_0x4fb7cb[_0xeeeb('0x25')][_0xeeeb('0x35')]){_0x1cb8b0[_0xeeeb('0x34')]=_[_0xeeeb('0x33')](_0x1cb8b0['where'],{'$or':_[_0xeeeb('0x36')](_0x1cb8b0['attributes'],function(_0xcf1734){var _0x542294={};_0x542294[_0xcf1734]={'$like':'%'+_0x4fb7cb[_0xeeeb('0x25')][_0xeeeb('0x35')]+'%'};return _0x542294;})});}_0x1cb8b0=_[_0xeeeb('0x33')]({},_0x1cb8b0,_0x4fb7cb[_0xeeeb('0x37')]);var _0x45cbf3={'where':_0x1cb8b0[_0xeeeb('0x34')]};return db[_0xeeeb('0x22')]['count'](_0x45cbf3)[_0xeeeb('0x1d')](function(_0x202fc){_0x352f6e[_0xeeeb('0x38')]=_0x202fc;if(_0x4fb7cb['query'][_0xeeeb('0x39')]){_0x1cb8b0[_0xeeeb('0x3a')]=[{'attributes':['id',_0xeeeb('0x1f'),_0xeeeb('0x3b'),'alias'],'model':db['User'],'as':'User'}];}return db[_0xeeeb('0x22')][_0xeeeb('0x3c')](_0x1cb8b0);})[_0xeeeb('0x1d')](function(_0x9dd58a){_0x352f6e[_0xeeeb('0x3d')]=_0x9dd58a;return _0x352f6e;})[_0xeeeb('0x1d')](respondWithFilteredResult(_0x4daa6d,_0x1cb8b0))[_0xeeeb('0x3e')](handleError(_0x4daa6d,null));};exports[_0xeeeb('0x3f')]=function(_0x40d429,_0x465b30){var _0x1f08dc={'raw':!![],'where':{'id':_0x40d429['params']['id']}},_0x30a30c={};_0x30a30c[_0xeeeb('0x23')]=_['keys'](db['VoiceCallReport']['rawAttributes']);_0x30a30c['query']=_['keys'](_0x40d429[_0xeeeb('0x25')]);_0x30a30c[_0xeeeb('0x28')]=_[_0xeeeb('0x29')](_0x30a30c[_0xeeeb('0x23')],_0x30a30c[_0xeeeb('0x25')]);_0x1f08dc['attributes']=_['intersection'](_0x30a30c[_0xeeeb('0x23')],qs[_0xeeeb('0x2b')](_0x40d429[_0xeeeb('0x25')]['fields']));_0x1f08dc[_0xeeeb('0x2a')]=_0x1f08dc[_0xeeeb('0x2a')][_0xeeeb('0x2c')]?_0x1f08dc[_0xeeeb('0x2a')]:_0x30a30c['model'];if(_0x40d429[_0xeeeb('0x25')][_0xeeeb('0x39')]){_0x1f08dc[_0xeeeb('0x3a')]=[{'all':!![]}];}_0x1f08dc=_['merge']({},_0x1f08dc,_0x40d429['options']);return db[_0xeeeb('0x22')][_0xeeeb('0x40')](_0x1f08dc)['then'](handleEntityNotFound(_0x465b30,null))[_0xeeeb('0x1d')](respondWithResult(_0x465b30,null))[_0xeeeb('0x3e')](handleError(_0x465b30,null));};exports[_0xeeeb('0x41')]=function(_0x2b3473,_0x59f874){return db['VoiceCallReport'][_0xeeeb('0x41')](_0x2b3473[_0xeeeb('0x42')],{})[_0xeeeb('0x1d')](respondWithResult(_0x59f874,0xc9))['catch'](handleError(_0x59f874,null));};exports[_0xeeeb('0x1e')]=function(_0x1c4761,_0xc83f5c){return db[_0xeeeb('0x22')][_0xeeeb('0x40')]({'where':{'id':_0x1c4761[_0xeeeb('0x43')]['id']}})[_0xeeeb('0x1d')](handleEntityNotFound(_0xc83f5c,null))[_0xeeeb('0x1d')](removeEntity(_0xc83f5c,null))[_0xeeeb('0x3e')](handleError(_0xc83f5c,null));};exports['describe']=function(_0x3d3746,_0x2e3d1a){return db['VoiceCallReport'][_0xeeeb('0x44')]()['then'](respondWithResult(_0x2e3d1a,null))[_0xeeeb('0x3e')](handleError(_0x2e3d1a,null));};exports[_0xeeeb('0x45')]=function(_0x4b0836,_0x47afff){if(_0x4b0836['body']['uniqueid']){delete _0x4b0836[_0xeeeb('0x42')][_0xeeeb('0x46')];}return db[_0xeeeb('0x22')][_0xeeeb('0x40')]({'where':{'uniqueid':_0x4b0836['params']['id'],'UserId':{'$or':[null,_0x4b0836[_0xeeeb('0x47')]['id']]}}})[_0xeeeb('0x1d')](handleEntityNotFound(_0x47afff,null))[_0xeeeb('0x1d')](saveUpdates(_0x4b0836['body'],null))[_0xeeeb('0x1d')](respondWithResult(_0x47afff,null))[_0xeeeb('0x3e')](handleError(_0x47afff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1aad=['../../config/logger','api','moment','bluebird','request-promise','./voiceCallReport.attributes','exports','VoiceCallReport','lodash','util'];(function(_0x1e475d,_0x1f4bae){var _0x3ecc53=function(_0x30c19a){while(--_0x30c19a){_0x1e475d['push'](_0x1e475d['shift']());}};_0x3ecc53(++_0x1f4bae);}(_0x1aad,0x1ca));var _0xd1aa=function(_0x1b7171,_0x533d9a){_0x1b7171=_0x1b7171-0x0;var _0x3c3db2=_0x1aad[_0x1b7171];return _0x3c3db2;};'use strict';var _=require(_0xd1aa('0x0'));var util=require(_0xd1aa('0x1'));var logger=require(_0xd1aa('0x2'))(_0xd1aa('0x3'));var moment=require(_0xd1aa('0x4'));var BPromise=require(_0xd1aa('0x5'));var rp=require(_0xd1aa('0x6'));var attributes=require(_0xd1aa('0x7'));module[_0xd1aa('0x8')]=function(_0x206c24,_0xe3083){return _0x206c24['define'](_0xd1aa('0x9'),attributes,{'tableName':'report_call','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2af6=['../../config/logger','api','bluebird','./voiceCallReport.attributes','exports','define','VoiceCallReport','report_call'];(function(_0x4de26c,_0x1e53d8){var _0x114e33=function(_0x1ae078){while(--_0x1ae078){_0x4de26c['push'](_0x4de26c['shift']());}};_0x114e33(++_0x1e53d8);}(_0x2af6,0x170));var _0x62af=function(_0x4c7594,_0x179e44){_0x4c7594=_0x4c7594-0x0;var _0x223fa2=_0x2af6[_0x4c7594];return _0x223fa2;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x62af('0x0'))(_0x62af('0x1'));var moment=require('moment');var BPromise=require(_0x62af('0x2'));var rp=require('request-promise');var attributes=require(_0x62af('0x3'));module[_0x62af('0x4')]=function(_0x3b798a,_0x5d3df6){return _0x3b798a[_0x62af('0x5')](_0x62af('0x6'),attributes,{'tableName':_0x62af('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2144=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','VoiceCallReport,\x20%s,\x20%s','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','VoiceCallReport','findAll','options','raw','where','attributes','limit','include','map','model','GetVoiceCallReport','catch','CreateVoiceCallReport','UpdateVoiceCallReport','update','body','lodash','util','moment','bluebird','randomstring'];(function(_0x105ac3,_0x44f11a){var _0x23e897=function(_0x390442){while(--_0x390442){_0x105ac3['push'](_0x105ac3['shift']());}};_0x23e897(++_0x44f11a);}(_0x2144,0x1a8));var _0x4214=function(_0xe4936,_0x3cd5c0){_0xe4936=_0xe4936-0x0;var _0x254fee=_0x2144[_0xe4936];return _0x254fee;};'use strict';var _=require(_0x4214('0x0'));var util=require(_0x4214('0x1'));var moment=require(_0x4214('0x2'));var BPromise=require(_0x4214('0x3'));var rs=require(_0x4214('0x4'));var fs=require('fs');var db=require(_0x4214('0x5'))['db'];var utils=require(_0x4214('0x6'));var logger=require(_0x4214('0x7'))('rpc');var config=require(_0x4214('0x8'));var jayson=require(_0x4214('0x9'));var client=jayson[_0x4214('0xa')][_0x4214('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3d200b,_0x1dfa26,_0x4cd8c6){return new BPromise(function(_0x2e4542,_0x2bccf5){return client['request'](_0x3d200b,_0x4cd8c6)[_0x4214('0xc')](function(_0x4efa5c){logger[_0x4214('0xd')](_0x4214('0xe'),_0x1dfa26,_0x4214('0xf'));logger[_0x4214('0x10')](_0x4214('0x11'),_0x1dfa26,_0x4214('0xf'),JSON[_0x4214('0x12')](_0x4efa5c));if(_0x4efa5c[_0x4214('0x13')]){if(_0x4efa5c['error'][_0x4214('0x14')]===0x1f4){logger[_0x4214('0x13')](_0x4214('0xe'),_0x1dfa26,_0x4efa5c[_0x4214('0x13')][_0x4214('0x15')]);return _0x2bccf5(_0x4efa5c['error'][_0x4214('0x15')]);}logger['error']('VoiceCallReport,\x20%s,\x20%s',_0x1dfa26,_0x4efa5c['error'][_0x4214('0x15')]);return _0x2e4542(_0x4efa5c[_0x4214('0x13')][_0x4214('0x15')]);}else{logger[_0x4214('0xd')](_0x4214('0xe'),_0x1dfa26,_0x4214('0xf'));_0x2e4542(_0x4efa5c[_0x4214('0x16')][_0x4214('0x15')]);}})['catch'](function(_0xe31d2c){logger[_0x4214('0x13')](_0x4214('0xe'),_0x1dfa26,_0xe31d2c);_0x2bccf5(_0xe31d2c);});});}exports['GetVoiceCallReport']=function(_0xa69e36){var _0xd3f779=this;return new Promise(function(_0x2b537b,_0x87be1b){return db[_0x4214('0x17')][_0x4214('0x18')]({'raw':_0xa69e36[_0x4214('0x19')]?_0xa69e36[_0x4214('0x19')][_0x4214('0x1a')]===undefined?!![]:![]:!![],'where':_0xa69e36[_0x4214('0x19')]?_0xa69e36[_0x4214('0x19')][_0x4214('0x1b')]||null:null,'attributes':_0xa69e36['options']?_0xa69e36[_0x4214('0x19')][_0x4214('0x1c')]||null:null,'limit':_0xa69e36[_0x4214('0x19')]?_0xa69e36['options'][_0x4214('0x1d')]||null:null,'include':_0xa69e36[_0x4214('0x19')]?_0xa69e36['options'][_0x4214('0x1e')]?_[_0x4214('0x1f')](_0xa69e36[_0x4214('0x19')][_0x4214('0x1e')],function(_0xfcf28a){return{'model':db[_0xfcf28a[_0x4214('0x20')]],'as':_0xfcf28a['as'],'attributes':_0xfcf28a[_0x4214('0x1c')],'include':_0xfcf28a[_0x4214('0x1e')]?_[_0x4214('0x1f')](_0xfcf28a[_0x4214('0x1e')],function(_0x1ffcbe){return{'model':db[_0x1ffcbe[_0x4214('0x20')]],'as':_0x1ffcbe['as'],'attributes':_0x1ffcbe[_0x4214('0x1c')],'include':_0x1ffcbe['include']?_[_0x4214('0x1f')](_0x1ffcbe[_0x4214('0x1e')],function(_0x1b4184){return{'model':db[_0x1b4184['model']],'as':_0x1b4184['as'],'attributes':_0x1b4184[_0x4214('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4214('0xc')](function(_0x483e06){logger[_0x4214('0xd')]('GetVoiceCallReport',_0xa69e36);logger[_0x4214('0x10')](_0x4214('0x21'),_0xa69e36,JSON['stringify'](_0x483e06));_0x2b537b(_0x483e06);})[_0x4214('0x22')](function(_0x561250){logger[_0x4214('0x13')](_0x4214('0x21'),_0x561250[_0x4214('0x15')],_0xa69e36);_0x87be1b(_0xd3f779[_0x4214('0x13')](0x1f4,_0x561250[_0x4214('0x15')]));});});};exports[_0x4214('0x23')]=function(_0x37af46){var _0xb258a9=this;return new Promise(function(_0x2ea2ad,_0x259e66){return db['VoiceCallReport']['create'](_0x37af46['body'],{'raw':_0x37af46[_0x4214('0x19')]?_0x37af46[_0x4214('0x19')][_0x4214('0x1a')]===undefined?!![]:![]:!![]})[_0x4214('0xc')](function(_0x2d5e31){logger[_0x4214('0xd')](_0x4214('0x23'),_0x37af46);logger[_0x4214('0x10')](_0x4214('0x23'),_0x37af46,JSON[_0x4214('0x12')](_0x2d5e31));_0x2ea2ad(_0x2d5e31);})[_0x4214('0x22')](function(_0x37855d){logger[_0x4214('0x13')](_0x4214('0x23'),_0x37855d[_0x4214('0x15')],_0x37af46);_0x259e66(_0xb258a9[_0x4214('0x13')](0x1f4,_0x37855d[_0x4214('0x15')]));});});};exports[_0x4214('0x24')]=function(_0x1003b4){var _0x1a8e80=this;return new Promise(function(_0x4e8ed0,_0x410ef5){return db[_0x4214('0x17')][_0x4214('0x25')](_0x1003b4[_0x4214('0x26')],{'raw':_0x1003b4[_0x4214('0x19')]?_0x1003b4['options'][_0x4214('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1003b4['options']?_0x1003b4[_0x4214('0x19')][_0x4214('0x1b')]||null:null,'attributes':_0x1003b4[_0x4214('0x19')]?_0x1003b4[_0x4214('0x19')][_0x4214('0x1c')]||null:null,'limit':_0x1003b4[_0x4214('0x19')]?_0x1003b4['options'][_0x4214('0x1d')]||null:null})[_0x4214('0xc')](function(_0x3ee824){logger[_0x4214('0xd')]('UpdateVoiceCallReport',_0x1003b4);logger[_0x4214('0x10')](_0x4214('0x24'),_0x1003b4,JSON[_0x4214('0x12')](_0x3ee824));_0x4e8ed0(_0x3ee824);})[_0x4214('0x22')](function(_0x4bf276){logger[_0x4214('0x13')](_0x4214('0x24'),_0x4bf276[_0x4214('0x15')],_0x1003b4);_0x410ef5(_0x1a8e80[_0x4214('0x13')](0x1f4,_0x4bf276['message']));});});};
\ No newline at end of file
+var _0x7742=['bluebird','../../mysqldb','../../config/logger','jayson/promise','client','http','request','then','info','VoiceCallReport,\x20%s,\x20%s','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','VoiceCallReport','findAll','options','where','attributes','limit','include','map','model','GetVoiceCallReport','CreateVoiceCallReport','create','UpdateVoiceCallReport','update','body','raw','lodash','util','moment'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0x7742,0x194));var _0x2774=function(_0x3101c5,_0x1d5762){_0x3101c5=_0x3101c5-0x0;var _0x46cddb=_0x7742[_0x3101c5];return _0x46cddb;};'use strict';var _=require(_0x2774('0x0'));var util=require(_0x2774('0x1'));var moment=require(_0x2774('0x2'));var BPromise=require(_0x2774('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2774('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x2774('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x2774('0x6'));var client=jayson[_0x2774('0x7')][_0x2774('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x528c53,_0x4f0389,_0x1cfc93){return new BPromise(function(_0x1dd2fd,_0x32fdbc){return client[_0x2774('0x9')](_0x528c53,_0x1cfc93)[_0x2774('0xa')](function(_0x157e84){logger[_0x2774('0xb')](_0x2774('0xc'),_0x4f0389,_0x2774('0xd'));logger[_0x2774('0xe')](_0x2774('0xf'),_0x4f0389,_0x2774('0xd'),JSON[_0x2774('0x10')](_0x157e84));if(_0x157e84[_0x2774('0x11')]){if(_0x157e84['error']['code']===0x1f4){logger[_0x2774('0x11')](_0x2774('0xc'),_0x4f0389,_0x157e84[_0x2774('0x11')][_0x2774('0x12')]);return _0x32fdbc(_0x157e84[_0x2774('0x11')]['message']);}logger[_0x2774('0x11')](_0x2774('0xc'),_0x4f0389,_0x157e84[_0x2774('0x11')][_0x2774('0x12')]);return _0x1dd2fd(_0x157e84[_0x2774('0x11')][_0x2774('0x12')]);}else{logger['info']('VoiceCallReport,\x20%s,\x20%s',_0x4f0389,_0x2774('0xd'));_0x1dd2fd(_0x157e84[_0x2774('0x13')][_0x2774('0x12')]);}})[_0x2774('0x14')](function(_0x510e74){logger[_0x2774('0x11')](_0x2774('0xc'),_0x4f0389,_0x510e74);_0x32fdbc(_0x510e74);});});}exports['GetVoiceCallReport']=function(_0x1da6e2){var _0x44e728=this;return new Promise(function(_0x4ac132,_0x15eab9){return db[_0x2774('0x15')][_0x2774('0x16')]({'raw':_0x1da6e2[_0x2774('0x17')]?_0x1da6e2['options']['raw']===undefined?!![]:![]:!![],'where':_0x1da6e2[_0x2774('0x17')]?_0x1da6e2[_0x2774('0x17')][_0x2774('0x18')]||null:null,'attributes':_0x1da6e2['options']?_0x1da6e2[_0x2774('0x17')][_0x2774('0x19')]||null:null,'limit':_0x1da6e2['options']?_0x1da6e2[_0x2774('0x17')][_0x2774('0x1a')]||null:null,'include':_0x1da6e2[_0x2774('0x17')]?_0x1da6e2[_0x2774('0x17')][_0x2774('0x1b')]?_[_0x2774('0x1c')](_0x1da6e2[_0x2774('0x17')][_0x2774('0x1b')],function(_0x1df444){return{'model':db[_0x1df444[_0x2774('0x1d')]],'as':_0x1df444['as'],'attributes':_0x1df444[_0x2774('0x19')],'include':_0x1df444['include']?_[_0x2774('0x1c')](_0x1df444[_0x2774('0x1b')],function(_0x2cf60d){return{'model':db[_0x2cf60d['model']],'as':_0x2cf60d['as'],'attributes':_0x2cf60d[_0x2774('0x19')],'include':_0x2cf60d['include']?_['map'](_0x2cf60d['include'],function(_0x1da4dd){return{'model':db[_0x1da4dd[_0x2774('0x1d')]],'as':_0x1da4dd['as'],'attributes':_0x1da4dd[_0x2774('0x19')]};}):[]};}):[]};}):[]:[]})[_0x2774('0xa')](function(_0x1f822d){logger[_0x2774('0xb')]('GetVoiceCallReport',_0x1da6e2);logger[_0x2774('0xe')]('GetVoiceCallReport',_0x1da6e2,JSON[_0x2774('0x10')](_0x1f822d));_0x4ac132(_0x1f822d);})[_0x2774('0x14')](function(_0x1b7f6b){logger[_0x2774('0x11')](_0x2774('0x1e'),_0x1b7f6b[_0x2774('0x12')],_0x1da6e2);_0x15eab9(_0x44e728[_0x2774('0x11')](0x1f4,_0x1b7f6b[_0x2774('0x12')]));});});};exports[_0x2774('0x1f')]=function(_0x314fd5){var _0x4e1fcd=this;return new Promise(function(_0x22fdd8,_0x3e9057){return db[_0x2774('0x15')][_0x2774('0x20')](_0x314fd5['body'],{'raw':_0x314fd5[_0x2774('0x17')]?_0x314fd5[_0x2774('0x17')]['raw']===undefined?!![]:![]:!![]})[_0x2774('0xa')](function(_0x1bbfb8){logger[_0x2774('0xb')]('CreateVoiceCallReport',_0x314fd5);logger[_0x2774('0xe')](_0x2774('0x1f'),_0x314fd5,JSON[_0x2774('0x10')](_0x1bbfb8));_0x22fdd8(_0x1bbfb8);})[_0x2774('0x14')](function(_0x56328d){logger['error'](_0x2774('0x1f'),_0x56328d[_0x2774('0x12')],_0x314fd5);_0x3e9057(_0x4e1fcd['error'](0x1f4,_0x56328d[_0x2774('0x12')]));});});};exports[_0x2774('0x21')]=function(_0x1efb9b){var _0x3c7b44=this;return new Promise(function(_0x1f00c8,_0x256d6e){return db[_0x2774('0x15')][_0x2774('0x22')](_0x1efb9b[_0x2774('0x23')],{'raw':_0x1efb9b['options']?_0x1efb9b['options'][_0x2774('0x24')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1efb9b[_0x2774('0x17')]?_0x1efb9b['options'][_0x2774('0x18')]||null:null,'attributes':_0x1efb9b[_0x2774('0x17')]?_0x1efb9b[_0x2774('0x17')][_0x2774('0x19')]||null:null,'limit':_0x1efb9b['options']?_0x1efb9b[_0x2774('0x17')][_0x2774('0x1a')]||null:null})[_0x2774('0xa')](function(_0x14503b){logger[_0x2774('0xb')](_0x2774('0x21'),_0x1efb9b);logger[_0x2774('0xe')](_0x2774('0x21'),_0x1efb9b,JSON[_0x2774('0x10')](_0x14503b));_0x1f00c8(_0x14503b);})[_0x2774('0x14')](function(_0x4d45aa){logger[_0x2774('0x11')](_0x2774('0x21'),_0x4d45aa[_0x2774('0x12')],_0x1efb9b);_0x256d6e(_0x3c7b44[_0x2774('0x11')](0x1f4,_0x4d45aa[_0x2774('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6baa=['get','/:id','show','post','isAuthenticated','create','update','delete','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceChanSpy.controller'];(function(_0x28fe94,_0x120b9b){var _0x3560da=function(_0x4d4e25){while(--_0x4d4e25){_0x28fe94['push'](_0x28fe94['shift']());}};_0x3560da(++_0x120b9b);}(_0x6baa,0xe0));var _0xa6ba=function(_0x5a8eab,_0x3fb0b0){_0x5a8eab=_0x5a8eab-0x0;var _0x5edbe3=_0x6baa[_0x5a8eab];return _0x5edbe3;};'use strict';var multer=require(_0xa6ba('0x0'));var util=require(_0xa6ba('0x1'));var path=require(_0xa6ba('0x2'));var timeout=require(_0xa6ba('0x3'));var express=require(_0xa6ba('0x4'));var router=express[_0xa6ba('0x5')]();var auth=require(_0xa6ba('0x6'));var interaction=require(_0xa6ba('0x7'));var config=require(_0xa6ba('0x8'));var controller=require(_0xa6ba('0x9'));router[_0xa6ba('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa6ba('0xa')](_0xa6ba('0xb'),auth['isAuthenticated'](),controller[_0xa6ba('0xc')]);router[_0xa6ba('0xd')]('/',auth[_0xa6ba('0xe')](),controller[_0xa6ba('0xf')]);router['put'](_0xa6ba('0xb'),auth[_0xa6ba('0xe')](),controller[_0xa6ba('0x10')]);router[_0xa6ba('0x11')](_0xa6ba('0xb'),auth[_0xa6ba('0xe')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xb47b=['express','Router','../../components/auth/service','../../components/interaction/service','./voiceChanSpy.controller','isAuthenticated','index','get','show','post','create','put','/:id','update','delete','destroy','exports','multer','connect-timeout'];(function(_0x2ad831,_0x4e4823){var _0x37a671=function(_0x5a1958){while(--_0x5a1958){_0x2ad831['push'](_0x2ad831['shift']());}};_0x37a671(++_0x4e4823);}(_0xb47b,0x17a));var _0xbb47=function(_0x318b21,_0x1bf39e){_0x318b21=_0x318b21-0x0;var _0x102bc7=_0xb47b[_0x318b21];return _0x102bc7;};'use strict';var multer=require(_0xbb47('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xbb47('0x1'));var express=require(_0xbb47('0x2'));var router=express[_0xbb47('0x3')]();var auth=require(_0xbb47('0x4'));var interaction=require(_0xbb47('0x5'));var config=require('../../config/environment');var controller=require(_0xbb47('0x6'));router['get']('/',auth[_0xbb47('0x7')](),controller[_0xbb47('0x8')]);router[_0xbb47('0x9')]('/:id',auth[_0xbb47('0x7')](),controller[_0xbb47('0xa')]);router[_0xbb47('0xb')]('/',auth[_0xbb47('0x7')](),controller[_0xbb47('0xc')]);router[_0xbb47('0xd')](_0xbb47('0xe'),auth[_0xbb47('0x7')](),controller[_0xbb47('0xf')]);router[_0xbb47('0x10')](_0xbb47('0xe'),auth['isAuthenticated'](),controller[_0xbb47('0x11')]);module[_0xbb47('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5532=['options','join','BOOLEAN','STRING','name','setDataValue'];(function(_0x4f0e62,_0x28e44f){var _0x117ab8=function(_0x1a74bb){while(--_0x1a74bb){_0x4f0e62['push'](_0x4f0e62['shift']());}};_0x117ab8(++_0x28e44f);}(_0x5532,0x14d));var _0x2553=function(_0x1ddcde,_0x2ab09e){_0x1ddcde=_0x1ddcde-0x0;var _0x3bd4d3=_0x5532[_0x1ddcde];return _0x3bd4d3;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING']},'prefix':{'type':Sequelize[_0x2553('0x0')],'unique':_0x2553('0x1'),'allowNull':![]},'options':{'type':Sequelize['STRING'],'set':function(_0x48b8dc){this[_0x2553('0x2')](_0x2553('0x3'),_0x48b8dc?_0x48b8dc[_0x2553('0x4')](''):[]);},'get':function(){return this['getDataValue'](_0x2553('0x3'))?this['getDataValue'](_0x2553('0x3'))['split'](''):[];}},'auth':{'type':Sequelize[_0x2553('0x5')],'defaultValue':![]},'password':{'type':Sequelize[_0x2553('0x0')]},'record':{'type':Sequelize[_0x2553('0x5')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0x2553('0x0')]},'description':{'type':Sequelize[_0x2553('0x0')]}};
\ No newline at end of file
+var _0xd90b=['STRING','name','setDataValue','getDataValue','options','BOOLEAN','sequelize','exports'];(function(_0x3d42d8,_0x4cffaa){var _0x27fc41=function(_0x3a363b){while(--_0x3a363b){_0x3d42d8['push'](_0x3d42d8['shift']());}};_0x27fc41(++_0x4cffaa);}(_0xd90b,0x1de));var _0xbd90=function(_0x3aebc3,_0x5ba7a4){_0x3aebc3=_0x3aebc3-0x0;var _0x5547c9=_0xd90b[_0x3aebc3];return _0x5547c9;};'use strict';var Sequelize=require(_0xbd90('0x0'));module[_0xbd90('0x1')]={'name':{'type':Sequelize[_0xbd90('0x2')]},'prefix':{'type':Sequelize['STRING'],'unique':_0xbd90('0x3'),'allowNull':![]},'options':{'type':Sequelize[_0xbd90('0x2')],'set':function(_0x4bd6be){this[_0xbd90('0x4')]('options',_0x4bd6be?_0x4bd6be['join'](''):[]);},'get':function(){return this[_0xbd90('0x5')](_0xbd90('0x6'))?this[_0xbd90('0x5')]('options')['split'](''):[];}},'auth':{'type':Sequelize[_0xbd90('0x7')],'defaultValue':![]},'password':{'type':Sequelize[_0xbd90('0x2')]},'record':{'type':Sequelize[_0xbd90('0x7')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0xbd90('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['find','params','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','squel','crypto','desk.js','../../components/parsers/qs','../../config/logger','../../config/utils','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','VoiceChanSpy','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','intersection','fields','length','nolimit','sort','where','pick','add','day','merge','map','filter','options','includeAll','include','findAll','rows','catch','create','body'];(function(_0x48ccc1,_0x55e9cb){var _0x9ffe13=function(_0x323a36){while(--_0x323a36){_0x48ccc1['push'](_0x48ccc1['shift']());}};_0x9ffe13(++_0x55e9cb);}(_0x7a54,0x106));var _0x47a5=function(_0xf84226,_0x5f043f){_0xf84226=_0xf84226-0x0;var _0x2cad1c=_0x7a54[_0xf84226];return _0x2cad1c;};'use strict';var pdf=require(_0x47a5('0x0'));var emlformat=require(_0x47a5('0x1'));var rimraf=require(_0x47a5('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x47a5('0x3'));var rp=require(_0x47a5('0x4'));var moment=require('moment');var BPromise=require(_0x47a5('0x5'));var Mustache=require(_0x47a5('0x6'));var util=require(_0x47a5('0x7'));var path=require(_0x47a5('0x8'));var sox=require(_0x47a5('0x9'));var csv=require('to-csv');var ejs=require(_0x47a5('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var qs=require(_0x47a5('0xe'));var logger=require(_0x47a5('0xf'))('api');var utils=require(_0x47a5('0x10'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1f47f4,_0x69e4d4){_0x69e4d4=_0x69e4d4||0xcc;return function(_0x2f399b){if(_0x2f399b){return _0x1f47f4[_0x47a5('0x11')](_0x69e4d4);}return _0x1f47f4[_0x47a5('0x12')](_0x69e4d4)[_0x47a5('0x13')]();};}function respondWithResult(_0x1eae59,_0x5beb89){_0x5beb89=_0x5beb89||0xc8;return function(_0x44bd3e){if(_0x44bd3e){return _0x1eae59[_0x47a5('0x12')](_0x5beb89)[_0x47a5('0x14')](_0x44bd3e);}};}function respondWithFilteredResult(_0x711793,_0x139f25){return function(_0x620ee9){if(_0x620ee9){var _0x3c6c46=_0x620ee9[_0x47a5('0x15')],_0x190faa=_0x139f25[_0x47a5('0x16')],_0x4e99a8=_0x139f25[_0x47a5('0x16')]+_0x139f25[_0x47a5('0x17')],_0x362359;if(_0x4e99a8>=_0x3c6c46){_0x4e99a8=_0x3c6c46;_0x362359=0xc8;}else{_0x362359=0xce;}_0x711793['status'](_0x362359);return _0x711793['set'](_0x47a5('0x18'),_0x190faa+'-'+_0x4e99a8+'/'+_0x3c6c46)['json'](_0x620ee9);}return null;};}function patchUpdates(_0x5247fd){return function(_0x423a81){try{jsonpatch[_0x47a5('0x19')](_0x423a81,_0x5247fd,!![]);}catch(_0x2ce454){return BPromise[_0x47a5('0x1a')](_0x2ce454);}return _0x423a81[_0x47a5('0x1b')]();};}function saveUpdates(_0x12b98e,_0x2763d6){return function(_0xe3c618){if(_0xe3c618){return _0xe3c618[_0x47a5('0x1c')](_0x12b98e)['then'](function(_0x1570bc){return _0x1570bc;});}return null;};}function removeEntity(_0xf160ba,_0x47cf3c){return function(_0x2b0360){if(_0x2b0360){return _0x2b0360[_0x47a5('0x1d')]()[_0x47a5('0x1e')](function(){_0xf160ba['status'](0xcc)[_0x47a5('0x13')]();});}};}function handleEntityNotFound(_0x2f142b,_0x23db32){return function(_0x7a9f9e){if(!_0x7a9f9e){_0x2f142b['sendStatus'](0x194);}return _0x7a9f9e;};}function handleError(_0xe2dea9,_0x385687){_0x385687=_0x385687||0x1f4;return function(_0x513981){logger[_0x47a5('0x1f')](_0x513981[_0x47a5('0x20')]);if(_0x513981[_0x47a5('0x21')]){delete _0x513981[_0x47a5('0x21')];}_0xe2dea9[_0x47a5('0x12')](_0x385687)['send'](_0x513981);};}exports['index']=function(_0x136745,_0x5686db){var _0x1ea9c8={},_0x5b6c4e={},_0x23cb77={'count':0x0,'rows':[]};var _0x378208=db[_0x47a5('0x22')][_0x47a5('0x23')];_0x5b6c4e[_0x47a5('0x24')]=_[_0x47a5('0x25')](_0x378208);var _0x24b162={'dateStart':_0x136745[_0x47a5('0x26')][_0x47a5('0x27')],'dateEnd':_0x136745[_0x47a5('0x26')][_0x47a5('0x28')]};delete _0x136745[_0x47a5('0x26')][_0x47a5('0x27')];delete _0x136745['query'][_0x47a5('0x28')];_0x5b6c4e['query']=_[_0x47a5('0x25')](_0x136745[_0x47a5('0x26')]);_0x5b6c4e[_0x47a5('0x29')]=_['intersection'](_0x5b6c4e[_0x47a5('0x24')],_0x5b6c4e[_0x47a5('0x26')]);_0x1ea9c8[_0x47a5('0x2a')]=_[_0x47a5('0x2b')](_0x5b6c4e['model'],qs['fields'](_0x136745[_0x47a5('0x26')][_0x47a5('0x2c')]));_0x1ea9c8['attributes']=_0x1ea9c8['attributes'][_0x47a5('0x2d')]?_0x1ea9c8[_0x47a5('0x2a')]:_0x5b6c4e['model'];if(!_0x136745[_0x47a5('0x26')]['hasOwnProperty'](_0x47a5('0x2e'))){_0x1ea9c8[_0x47a5('0x17')]=qs['limit'](_0x136745['query'][_0x47a5('0x17')]);_0x1ea9c8['offset']=qs[_0x47a5('0x16')](_0x136745[_0x47a5('0x26')][_0x47a5('0x16')]);}_0x1ea9c8['order']=qs[_0x47a5('0x2f')](_0x136745['query']['sort']);_0x1ea9c8[_0x47a5('0x30')]=qs['filters'](_[_0x47a5('0x31')](_0x136745['query'],_0x5b6c4e[_0x47a5('0x29')]));if(_0x24b162[_0x47a5('0x27')]){if(_0x24b162[_0x47a5('0x28')]){_0x24b162[_0x47a5('0x28')]=moment(_0x24b162[_0x47a5('0x28')])[_0x47a5('0x32')](0x1,_0x47a5('0x33'));}else{_0x24b162[_0x47a5('0x28')]=moment(_0x24b162[_0x47a5('0x27')])['add'](0x1,_0x47a5('0x33'));}_[_0x47a5('0x34')](_0x1ea9c8['where'],{'createdAt':{'$gte':_0x24b162[_0x47a5('0x27')],'$lte':_0x24b162[_0x47a5('0x28')]}});}if(_0x136745[_0x47a5('0x26')]['filter']){_0x1ea9c8[_0x47a5('0x30')]=_[_0x47a5('0x34')](_0x1ea9c8['where'],{'$or':_[_0x47a5('0x35')](_0x1ea9c8[_0x47a5('0x2a')],function(_0x54ae35){var _0x55c5eb={};_0x55c5eb[_0x54ae35]={'$like':'%'+_0x136745['query'][_0x47a5('0x36')]+'%'};return _0x55c5eb;})});}_0x1ea9c8=_['merge']({},_0x1ea9c8,_0x136745[_0x47a5('0x37')]);var _0x1f9631={'where':_0x1ea9c8[_0x47a5('0x30')]};return db[_0x47a5('0x22')][_0x47a5('0x15')](_0x1f9631)[_0x47a5('0x1e')](function(_0x2003b0){_0x23cb77[_0x47a5('0x15')]=_0x2003b0;if(_0x136745[_0x47a5('0x26')][_0x47a5('0x38')]){_0x1ea9c8[_0x47a5('0x39')]=[{'all':!![]}];}return db[_0x47a5('0x22')][_0x47a5('0x3a')](_0x1ea9c8);})['then'](function(_0x1fbece){_0x23cb77[_0x47a5('0x3b')]=_0x1fbece;return _0x23cb77;})[_0x47a5('0x1e')](respondWithFilteredResult(_0x5686db,_0x1ea9c8))[_0x47a5('0x3c')](handleError(_0x5686db,null));};exports['show']=function(_0x7de536,_0x528ef3){var _0x47c7a2={'raw':![],'where':{'id':_0x7de536['params']['id']}},_0x55c43d={};_0x55c43d[_0x47a5('0x24')]=_['keys'](db[_0x47a5('0x22')][_0x47a5('0x23')]);_0x55c43d[_0x47a5('0x26')]=_['keys'](_0x7de536[_0x47a5('0x26')]);_0x55c43d[_0x47a5('0x29')]=_['intersection'](_0x55c43d['model'],_0x55c43d[_0x47a5('0x26')]);_0x47c7a2['attributes']=_[_0x47a5('0x2b')](_0x55c43d[_0x47a5('0x24')],qs[_0x47a5('0x2c')](_0x7de536[_0x47a5('0x26')][_0x47a5('0x2c')]));_0x47c7a2[_0x47a5('0x2a')]=_0x47c7a2[_0x47a5('0x2a')][_0x47a5('0x2d')]?_0x47c7a2[_0x47a5('0x2a')]:_0x55c43d[_0x47a5('0x24')];if(_0x7de536[_0x47a5('0x26')][_0x47a5('0x38')]){_0x47c7a2[_0x47a5('0x39')]=[{'all':!![]}];}_0x47c7a2=_[_0x47a5('0x34')]({},_0x47c7a2,_0x7de536[_0x47a5('0x37')]);return db[_0x47a5('0x22')]['find'](_0x47c7a2)[_0x47a5('0x1e')](handleEntityNotFound(_0x528ef3,null))[_0x47a5('0x1e')](respondWithResult(_0x528ef3,null))['catch'](handleError(_0x528ef3,null));};exports['create']=function(_0x3d0a88,_0x560e4e){return db[_0x47a5('0x22')][_0x47a5('0x3d')](_0x3d0a88['body'],{})['then'](respondWithResult(_0x560e4e,0xc9))[_0x47a5('0x3c')](handleError(_0x560e4e,null));};exports['update']=function(_0x2d147c,_0x1d1039){if(_0x2d147c[_0x47a5('0x3e')]['id']){delete _0x2d147c[_0x47a5('0x3e')]['id'];}return db[_0x47a5('0x22')][_0x47a5('0x3f')]({'where':{'id':_0x2d147c[_0x47a5('0x40')]['id']}})['then'](handleEntityNotFound(_0x1d1039,null))['then'](saveUpdates(_0x2d147c[_0x47a5('0x3e')],null))[_0x47a5('0x1e')](respondWithResult(_0x1d1039,null))[_0x47a5('0x3c')](handleError(_0x1d1039,null));};exports[_0x47a5('0x1d')]=function(_0x2c7020,_0x2c0c86){return db[_0x47a5('0x22')]['find']({'where':{'id':_0x2c7020[_0x47a5('0x40')]['id']}})[_0x47a5('0x1e')](handleEntityNotFound(_0x2c0c86,null))[_0x47a5('0x1e')](removeEntity(_0x2c0c86,null))['catch'](handleError(_0x2c0c86,null));};
\ No newline at end of file
+var _0xa963=['update','find','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','jsforce','papaparse','ioredis','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','then','destroy','error','stack','name','send','index','VoiceChanSpy','rawAttributes','model','keys','dateStart','query','dateEnd','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','add','day','filter','merge','options','include','catch','show','params','filters','includeAll','create','body'];(function(_0x47852a,_0x50e312){var _0x28ccde=function(_0x65556d){while(--_0x65556d){_0x47852a['push'](_0x47852a['shift']());}};_0x28ccde(++_0x50e312);}(_0xa963,0xc5));var _0x3a96=function(_0x5ad794,_0x136415){_0x5ad794=_0x5ad794-0x0;var _0x422cac=_0xa963[_0x5ad794];return _0x422cac;};'use strict';var pdf=require(_0x3a96('0x0'));var emlformat=require(_0x3a96('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x3a96('0x2'));var jsonpatch=require(_0x3a96('0x3'));var rp=require(_0x3a96('0x4'));var moment=require(_0x3a96('0x5'));var BPromise=require(_0x3a96('0x6'));var Mustache=require(_0x3a96('0x7'));var util=require('util');var path=require('path');var sox=require(_0x3a96('0x8'));var csv=require(_0x3a96('0x9'));var ejs=require(_0x3a96('0xa'));var fs=require('fs');var _=require(_0x3a96('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x3a96('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x3a96('0x9'));var querystring=require('querystring');var Papa=require(_0x3a96('0xd'));var Redis=require(_0x3a96('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x3a96('0xf'))('api');var utils=require(_0x3a96('0x10'));var config=require(_0x3a96('0x11'));var db=require(_0x3a96('0x12'))['db'];function respondWithStatusCode(_0x3a65c2,_0x5a09f3){_0x5a09f3=_0x5a09f3||0xcc;return function(_0xfa38ab){if(_0xfa38ab){return _0x3a65c2[_0x3a96('0x13')](_0x5a09f3);}return _0x3a65c2[_0x3a96('0x14')](_0x5a09f3)['end']();};}function respondWithResult(_0x1ea249,_0x77ea80){_0x77ea80=_0x77ea80||0xc8;return function(_0x2c2326){if(_0x2c2326){return _0x1ea249[_0x3a96('0x14')](_0x77ea80)[_0x3a96('0x15')](_0x2c2326);}};}function respondWithFilteredResult(_0x42ac95,_0x36de55){return function(_0x4969e4){if(_0x4969e4){var _0x5656b4=_0x4969e4[_0x3a96('0x16')],_0x36fc2c=_0x36de55[_0x3a96('0x17')],_0x2f605d=_0x36de55[_0x3a96('0x17')]+_0x36de55[_0x3a96('0x18')],_0x1a4859;if(_0x2f605d>=_0x5656b4){_0x2f605d=_0x5656b4;_0x1a4859=0xc8;}else{_0x1a4859=0xce;}_0x42ac95[_0x3a96('0x14')](_0x1a4859);return _0x42ac95[_0x3a96('0x19')](_0x3a96('0x1a'),_0x36fc2c+'-'+_0x2f605d+'/'+_0x5656b4)[_0x3a96('0x15')](_0x4969e4);}return null;};}function patchUpdates(_0x11d484){return function(_0xe910c3){try{jsonpatch['apply'](_0xe910c3,_0x11d484,!![]);}catch(_0x2314f2){return BPromise[_0x3a96('0x1b')](_0x2314f2);}return _0xe910c3['save']();};}function saveUpdates(_0x186bbe,_0x90df8c){return function(_0x3daefe){if(_0x3daefe){return _0x3daefe['update'](_0x186bbe)[_0x3a96('0x1c')](function(_0x3d2607){return _0x3d2607;});}return null;};}function removeEntity(_0x71df02,_0x277cf6){return function(_0x3d2f3){if(_0x3d2f3){return _0x3d2f3[_0x3a96('0x1d')]()[_0x3a96('0x1c')](function(){_0x71df02[_0x3a96('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x438167,_0x1b5088){return function(_0x37c8bc){if(!_0x37c8bc){_0x438167[_0x3a96('0x13')](0x194);}return _0x37c8bc;};}function handleError(_0x517867,_0x7cc415){_0x7cc415=_0x7cc415||0x1f4;return function(_0x2269c1){logger[_0x3a96('0x1e')](_0x2269c1[_0x3a96('0x1f')]);if(_0x2269c1[_0x3a96('0x20')]){delete _0x2269c1['name'];}_0x517867[_0x3a96('0x14')](_0x7cc415)[_0x3a96('0x21')](_0x2269c1);};}exports[_0x3a96('0x22')]=function(_0x335366,_0xb63e65){var _0x2aaccf={},_0x5b6923={},_0x3b9a9e={'count':0x0,'rows':[]};var _0x4a33b8=db[_0x3a96('0x23')][_0x3a96('0x24')];_0x5b6923[_0x3a96('0x25')]=_[_0x3a96('0x26')](_0x4a33b8);var _0x320b43={'dateStart':_0x335366['query'][_0x3a96('0x27')],'dateEnd':_0x335366['query']['dateEnd']};delete _0x335366['query'][_0x3a96('0x27')];delete _0x335366[_0x3a96('0x28')][_0x3a96('0x29')];_0x5b6923[_0x3a96('0x28')]=_[_0x3a96('0x26')](_0x335366[_0x3a96('0x28')]);_0x5b6923['filters']=_['intersection'](_0x5b6923[_0x3a96('0x25')],_0x5b6923[_0x3a96('0x28')]);_0x2aaccf['attributes']=_[_0x3a96('0x2a')](_0x5b6923['model'],qs[_0x3a96('0x2b')](_0x335366['query'][_0x3a96('0x2b')]));_0x2aaccf[_0x3a96('0x2c')]=_0x2aaccf[_0x3a96('0x2c')]['length']?_0x2aaccf['attributes']:_0x5b6923[_0x3a96('0x25')];if(!_0x335366['query'][_0x3a96('0x2d')]('nolimit')){_0x2aaccf['limit']=qs[_0x3a96('0x18')](_0x335366[_0x3a96('0x28')][_0x3a96('0x18')]);_0x2aaccf[_0x3a96('0x17')]=qs[_0x3a96('0x17')](_0x335366[_0x3a96('0x28')][_0x3a96('0x17')]);}_0x2aaccf[_0x3a96('0x2e')]=qs[_0x3a96('0x2f')](_0x335366[_0x3a96('0x28')][_0x3a96('0x2f')]);_0x2aaccf[_0x3a96('0x30')]=qs['filters'](_[_0x3a96('0x31')](_0x335366[_0x3a96('0x28')],_0x5b6923['filters']));if(_0x320b43[_0x3a96('0x27')]){if(_0x320b43[_0x3a96('0x29')]){_0x320b43[_0x3a96('0x29')]=moment(_0x320b43[_0x3a96('0x29')])[_0x3a96('0x32')](0x1,_0x3a96('0x33'));}else{_0x320b43[_0x3a96('0x29')]=moment(_0x320b43[_0x3a96('0x27')])[_0x3a96('0x32')](0x1,'day');}_['merge'](_0x2aaccf['where'],{'createdAt':{'$gte':_0x320b43[_0x3a96('0x27')],'$lte':_0x320b43['dateEnd']}});}if(_0x335366[_0x3a96('0x28')][_0x3a96('0x34')]){_0x2aaccf[_0x3a96('0x30')]=_['merge'](_0x2aaccf[_0x3a96('0x30')],{'$or':_['map'](_0x2aaccf[_0x3a96('0x2c')],function(_0x3b0dcd){var _0x287af8={};_0x287af8[_0x3b0dcd]={'$like':'%'+_0x335366['query'][_0x3a96('0x34')]+'%'};return _0x287af8;})});}_0x2aaccf=_[_0x3a96('0x35')]({},_0x2aaccf,_0x335366[_0x3a96('0x36')]);var _0x2d17c8={'where':_0x2aaccf['where']};return db[_0x3a96('0x23')][_0x3a96('0x16')](_0x2d17c8)[_0x3a96('0x1c')](function(_0x9df965){_0x3b9a9e[_0x3a96('0x16')]=_0x9df965;if(_0x335366[_0x3a96('0x28')]['includeAll']){_0x2aaccf[_0x3a96('0x37')]=[{'all':!![]}];}return db[_0x3a96('0x23')]['findAll'](_0x2aaccf);})[_0x3a96('0x1c')](function(_0x48879b){_0x3b9a9e['rows']=_0x48879b;return _0x3b9a9e;})[_0x3a96('0x1c')](respondWithFilteredResult(_0xb63e65,_0x2aaccf))[_0x3a96('0x38')](handleError(_0xb63e65,null));};exports[_0x3a96('0x39')]=function(_0x530e1d,_0x39d2fd){var _0x393cf3={'raw':![],'where':{'id':_0x530e1d[_0x3a96('0x3a')]['id']}},_0x4e06e2={};_0x4e06e2['model']=_[_0x3a96('0x26')](db[_0x3a96('0x23')]['rawAttributes']);_0x4e06e2[_0x3a96('0x28')]=_[_0x3a96('0x26')](_0x530e1d[_0x3a96('0x28')]);_0x4e06e2[_0x3a96('0x3b')]=_[_0x3a96('0x2a')](_0x4e06e2['model'],_0x4e06e2['query']);_0x393cf3[_0x3a96('0x2c')]=_[_0x3a96('0x2a')](_0x4e06e2[_0x3a96('0x25')],qs[_0x3a96('0x2b')](_0x530e1d[_0x3a96('0x28')][_0x3a96('0x2b')]));_0x393cf3[_0x3a96('0x2c')]=_0x393cf3[_0x3a96('0x2c')]['length']?_0x393cf3[_0x3a96('0x2c')]:_0x4e06e2[_0x3a96('0x25')];if(_0x530e1d[_0x3a96('0x28')][_0x3a96('0x3c')]){_0x393cf3[_0x3a96('0x37')]=[{'all':!![]}];}_0x393cf3=_[_0x3a96('0x35')]({},_0x393cf3,_0x530e1d[_0x3a96('0x36')]);return db[_0x3a96('0x23')]['find'](_0x393cf3)[_0x3a96('0x1c')](handleEntityNotFound(_0x39d2fd,null))[_0x3a96('0x1c')](respondWithResult(_0x39d2fd,null))[_0x3a96('0x38')](handleError(_0x39d2fd,null));};exports[_0x3a96('0x3d')]=function(_0xf5944d,_0x427834){return db[_0x3a96('0x23')][_0x3a96('0x3d')](_0xf5944d[_0x3a96('0x3e')],{})['then'](respondWithResult(_0x427834,0xc9))[_0x3a96('0x38')](handleError(_0x427834,null));};exports[_0x3a96('0x3f')]=function(_0x536dc9,_0x1747b0){if(_0x536dc9[_0x3a96('0x3e')]['id']){delete _0x536dc9[_0x3a96('0x3e')]['id'];}return db['VoiceChanSpy']['find']({'where':{'id':_0x536dc9[_0x3a96('0x3a')]['id']}})[_0x3a96('0x1c')](handleEntityNotFound(_0x1747b0,null))[_0x3a96('0x1c')](saveUpdates(_0x536dc9['body'],null))[_0x3a96('0x1c')](respondWithResult(_0x1747b0,null))['catch'](handleError(_0x1747b0,null));};exports[_0x3a96('0x1d')]=function(_0x5ae8ff,_0x2cd7a0){return db[_0x3a96('0x23')][_0x3a96('0x40')]({'where':{'id':_0x5ae8ff[_0x3a96('0x3a')]['id']}})[_0x3a96('0x1c')](handleEntityNotFound(_0x2cd7a0,null))[_0x3a96('0x1c')](removeEntity(_0x2cd7a0,null))['catch'](handleError(_0x2cd7a0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6fe5=['system','format','%s%s','merge','Set','CDR(type)=%s','record','push','MixMonitor','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','length','internal','concat','User','findAll','agent','then','catch','exports','models','define','VoiceChanSpy','VoiceExtension','bulkCreate','destroy','lodash','util','bluebird','../../config/logger','./voiceChanSpy.attributes','from-sip'];(function(_0x3eb5d3,_0xbd0292){var _0x56b544=function(_0x5b93d2){while(--_0x5b93d2){_0x3eb5d3['push'](_0x3eb5d3['shift']());}};_0x56b544(++_0xbd0292);}(_0x6fe5,0x180));var _0x56fe=function(_0x375790,_0x388eb4){_0x375790=_0x375790-0x0;var _0x490d8f=_0x6fe5[_0x375790];return _0x490d8f;};'use strict';var _=require(_0x56fe('0x0'));var util=require(_0x56fe('0x1'));var BPromise=require(_0x56fe('0x2'));var logger=require(_0x56fe('0x3'))('api');var attributes=require(_0x56fe('0x4'));var getUserApplications=function(_0x5cdcbd,_0xcba220,_0x3ce6e8){var _0x14dc58=0x1;var _0x361c49=[];var _0x28881e={'context':_0x56fe('0x5'),'type':_0x56fe('0x6'),'isApp':![]};var _0x2b473c={'exten':util[_0x56fe('0x7')](_0x56fe('0x8'),_0x5cdcbd['prefix'],_0x3ce6e8),'ChanSpyId':_0x5cdcbd['id'],'UserId':_0xcba220['id']};_0x361c49['push'](_[_0x56fe('0x9')]({'app':_0x56fe('0xa'),'appdata':util[_0x56fe('0x7')](_0x56fe('0xb'),'chanspy'),'priority':_0x14dc58++},_0x28881e,_0x2b473c));if(_0x5cdcbd[_0x56fe('0xc')]){_0x361c49[_0x56fe('0xd')](_['merge']({'app':_0x56fe('0xe'),'appdata':util[_0x56fe('0x7')]('${UNIQUEID}.%s,ab',_0x5cdcbd['recordingFormat']),'priority':_0x14dc58++},_0x28881e,_0x2b473c));}if(_0x5cdcbd[_0x56fe('0xf')]){_0x361c49['push'](_[_0x56fe('0x9')]({'app':_0x56fe('0x10'),'appdata':_0x5cdcbd[_0x56fe('0x11')],'priority':_0x14dc58++},_0x28881e,_0x2b473c));}_0x361c49['push'](_[_0x56fe('0x9')]({'app':_0x56fe('0x12'),'appdata':util[_0x56fe('0x7')](_0x56fe('0x13'),_0xcba220[_0x56fe('0x14')],_0x5cdcbd[_0x56fe('0x15')]?_0x5cdcbd['options'][_0x56fe('0x16')](''):''),'priority':_0x14dc58++},_0x28881e,_0x2b473c));if(_0x5cdcbd[_0x56fe('0xc')]){_0x361c49[_0x56fe('0xd')](_[_0x56fe('0x9')]({'app':_0x56fe('0x17'),'priority':_0x14dc58++},_0x28881e,_0x2b473c));}return _0x361c49;};var getChanSpyApplications=function(_0x3e4c4e,_0x17582c){var _0x5b9ee6=[];for(var _0x10cf64=0x0,_0x14af45=0x1;_0x10cf64<_0x17582c[_0x56fe('0x18')];_0x10cf64++,_0x14af45=0x1){var _0x3dde36=getUserApplications(_0x3e4c4e,_0x17582c[_0x10cf64],_0x17582c[_0x10cf64][_0x56fe('0x19')]);var _0x2203c2=getUserApplications(_0x3e4c4e,_0x17582c[_0x10cf64],_0x17582c[_0x10cf64]['name']);_0x5b9ee6=_0x5b9ee6[_0x56fe('0x1a')](_0x3dde36,_0x2203c2);}return _0x5b9ee6;};var getChanSpyPromise=function(_0x851543,_0x1de007){return new BPromise(function(_0x3deec8,_0x4359b2){return _0x851543[_0x56fe('0x1b')][_0x56fe('0x1c')]({'attributes':['id',_0x56fe('0x14'),'internal'],'where':{'role':_0x56fe('0x1d'),'chanspy':!![]},'raw':!![]})[_0x56fe('0x1e')](function(_0x2e1218){if(_0x2e1218){return _0x3deec8(getChanSpyApplications(_0x1de007,_0x2e1218));}return _0x3deec8([]);})[_0x56fe('0x1f')](function(_0x58af26){_0x4359b2(_0x58af26);});});};module[_0x56fe('0x20')]=function(_0x428c6e,_0x3f3d4d){var _0x11899b=_0x428c6e[_0x56fe('0x21')];return _0x428c6e[_0x56fe('0x22')](_0x56fe('0x23'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x269bb7,_0xf71c1,_0x462c79){return getChanSpyPromise(_0x11899b,_0x269bb7)[_0x56fe('0x1e')](function(_0xe08a40){if(_0xe08a40&&_0xe08a40[_0x56fe('0x18')]){return _0x11899b[_0x56fe('0x24')][_0x56fe('0x25')](_0xe08a40);}})[_0x56fe('0x1e')](function(){_0x462c79();})[_0x56fe('0x1f')](function(_0xbae644){_0x462c79(_0xbae644);});},'afterUpdate':function(_0x192448,_0x52eb36,_0x54f432){return _0x11899b['VoiceExtension'][_0x56fe('0x26')]({'where':{'ChanSpyId':_0x192448['id']}})[_0x56fe('0x1e')](function(){return getChanSpyPromise(_0x11899b,_0x192448);})[_0x56fe('0x1e')](function(_0x58c77b){if(_0x58c77b&&_0x58c77b[_0x56fe('0x18')]){return _0x11899b[_0x56fe('0x24')]['bulkCreate'](_0x58c77b);}})['then'](function(){_0x54f432();})[_0x56fe('0x1f')](function(_0x289c3a){_0x54f432(_0x289c3a);});},'afterDestroy':function(_0x29975b,_0x548cff,_0x2f97ae){return _0x11899b['VoiceExtension'][_0x56fe('0x26')]({'where':{'ChanSpyId':_0x29975b['id']}})['then'](function(){_0x2f97ae();})['catch'](function(_0x31200f){_0x2f97ae(_0x31200f);});}}});};
\ No newline at end of file
+var _0x35e3=['VoiceExtension','bulkCreate','catch','destroy','lodash','util','bluebird','../../config/logger','api','./voiceChanSpy.attributes','from-sip','format','%s%s','prefix','push','Set','CDR(type)=%s','record','MixMonitor','${UNIQUEID}.%s,ab','recordingFormat','auth','merge','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','length','internal','concat','User','findAll','agent','then','exports','models','define','VoiceChanSpy','voice_chanspy'];(function(_0x43860f,_0x42c4e3){var _0x17b216=function(_0x40bc6f){while(--_0x40bc6f){_0x43860f['push'](_0x43860f['shift']());}};_0x17b216(++_0x42c4e3);}(_0x35e3,0x100));var _0x335e=function(_0x836465,_0x5442ae){_0x836465=_0x836465-0x0;var _0x2150ea=_0x35e3[_0x836465];return _0x2150ea;};'use strict';var _=require(_0x335e('0x0'));var util=require(_0x335e('0x1'));var BPromise=require(_0x335e('0x2'));var logger=require(_0x335e('0x3'))(_0x335e('0x4'));var attributes=require(_0x335e('0x5'));var getUserApplications=function(_0x96e876,_0x29131e,_0x1e2458){var _0x4531e6=0x1;var _0x3537ca=[];var _0x164b1f={'context':_0x335e('0x6'),'type':'system','isApp':![]};var _0x2241f5={'exten':util[_0x335e('0x7')](_0x335e('0x8'),_0x96e876[_0x335e('0x9')],_0x1e2458),'ChanSpyId':_0x96e876['id'],'UserId':_0x29131e['id']};_0x3537ca[_0x335e('0xa')](_['merge']({'app':_0x335e('0xb'),'appdata':util[_0x335e('0x7')](_0x335e('0xc'),'chanspy'),'priority':_0x4531e6++},_0x164b1f,_0x2241f5));if(_0x96e876[_0x335e('0xd')]){_0x3537ca[_0x335e('0xa')](_['merge']({'app':_0x335e('0xe'),'appdata':util[_0x335e('0x7')](_0x335e('0xf'),_0x96e876[_0x335e('0x10')]),'priority':_0x4531e6++},_0x164b1f,_0x2241f5));}if(_0x96e876[_0x335e('0x11')]){_0x3537ca[_0x335e('0xa')](_[_0x335e('0x12')]({'app':_0x335e('0x13'),'appdata':_0x96e876[_0x335e('0x14')],'priority':_0x4531e6++},_0x164b1f,_0x2241f5));}_0x3537ca['push'](_[_0x335e('0x12')]({'app':_0x335e('0x15'),'appdata':util[_0x335e('0x7')](_0x335e('0x16'),_0x29131e[_0x335e('0x17')],_0x96e876[_0x335e('0x18')]?_0x96e876[_0x335e('0x18')][_0x335e('0x19')](''):''),'priority':_0x4531e6++},_0x164b1f,_0x2241f5));if(_0x96e876[_0x335e('0xd')]){_0x3537ca['push'](_[_0x335e('0x12')]({'app':'StopMixMonitor','priority':_0x4531e6++},_0x164b1f,_0x2241f5));}return _0x3537ca;};var getChanSpyApplications=function(_0x21fab9,_0x20604d){var _0x199383=[];for(var _0x4401ef=0x0,_0x12e83f=0x1;_0x4401ef<_0x20604d[_0x335e('0x1a')];_0x4401ef++,_0x12e83f=0x1){var _0x25d15e=getUserApplications(_0x21fab9,_0x20604d[_0x4401ef],_0x20604d[_0x4401ef][_0x335e('0x1b')]);var _0x2c4430=getUserApplications(_0x21fab9,_0x20604d[_0x4401ef],_0x20604d[_0x4401ef]['name']);_0x199383=_0x199383[_0x335e('0x1c')](_0x25d15e,_0x2c4430);}return _0x199383;};var getChanSpyPromise=function(_0x32c981,_0x47ddd2){return new BPromise(function(_0x2b58da,_0x166240){return _0x32c981[_0x335e('0x1d')][_0x335e('0x1e')]({'attributes':['id','name','internal'],'where':{'role':_0x335e('0x1f'),'chanspy':!![]},'raw':!![]})[_0x335e('0x20')](function(_0x373999){if(_0x373999){return _0x2b58da(getChanSpyApplications(_0x47ddd2,_0x373999));}return _0x2b58da([]);})['catch'](function(_0x2a6d37){_0x166240(_0x2a6d37);});});};module[_0x335e('0x21')]=function(_0x2bc237,_0xa500d){var _0x599d79=_0x2bc237[_0x335e('0x22')];return _0x2bc237[_0x335e('0x23')](_0x335e('0x24'),attributes,{'tableName':_0x335e('0x25'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x15001e,_0x1fb9c1,_0x5e1e57){return getChanSpyPromise(_0x599d79,_0x15001e)[_0x335e('0x20')](function(_0x3ed954){if(_0x3ed954&&_0x3ed954[_0x335e('0x1a')]){return _0x599d79[_0x335e('0x26')][_0x335e('0x27')](_0x3ed954);}})['then'](function(){_0x5e1e57();})[_0x335e('0x28')](function(_0x30b42e){_0x5e1e57(_0x30b42e);});},'afterUpdate':function(_0x12d4e0,_0xf3928f,_0x3d1292){return _0x599d79[_0x335e('0x26')]['destroy']({'where':{'ChanSpyId':_0x12d4e0['id']}})['then'](function(){return getChanSpyPromise(_0x599d79,_0x12d4e0);})[_0x335e('0x20')](function(_0x9dde5b){if(_0x9dde5b&&_0x9dde5b[_0x335e('0x1a')]){return _0x599d79['VoiceExtension'][_0x335e('0x27')](_0x9dde5b);}})[_0x335e('0x20')](function(){_0x3d1292();})[_0x335e('0x28')](function(_0x454bca){_0x3d1292(_0x454bca);});},'afterDestroy':function(_0x205d5d,_0x285174,_0x16f01e){return _0x599d79[_0x335e('0x26')][_0x335e('0x29')]({'where':{'ChanSpyId':_0x205d5d['id']}})['then'](function(){_0x16f01e();})['catch'](function(_0x23b378){_0x16f01e(_0x23b378);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cd5=['VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','VoiceChanSpy,\x20%s,\x20%s','request\x20sent'];(function(_0x2d27d5,_0x36ee88){var _0x510d35=function(_0x1e0bec){while(--_0x1e0bec){_0x2d27d5['push'](_0x2d27d5['shift']());}};_0x510d35(++_0x36ee88);}(_0x5cd5,0x149));var _0x55cd=function(_0x560d74,_0x546bc8){_0x560d74=_0x560d74-0x0;var _0x41fda0=_0x5cd5[_0x560d74];return _0x41fda0;};'use strict';var _=require(_0x55cd('0x0'));var util=require(_0x55cd('0x1'));var moment=require(_0x55cd('0x2'));var BPromise=require(_0x55cd('0x3'));var rs=require(_0x55cd('0x4'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x55cd('0x5'));var logger=require(_0x55cd('0x6'))(_0x55cd('0x7'));var config=require(_0x55cd('0x8'));var jayson=require(_0x55cd('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3b80d1,_0x4ab0ca,_0x2cd09d){return new BPromise(function(_0x144f33,_0x143db2){return client[_0x55cd('0xa')](_0x3b80d1,_0x2cd09d)['then'](function(_0x1f7a13){logger['info'](_0x55cd('0xb'),_0x4ab0ca,_0x55cd('0xc'));logger['debug'](_0x55cd('0xd'),_0x4ab0ca,_0x55cd('0xc'),JSON[_0x55cd('0xe')](_0x1f7a13));if(_0x1f7a13['error']){if(_0x1f7a13[_0x55cd('0xf')][_0x55cd('0x10')]===0x1f4){logger['error'](_0x55cd('0xb'),_0x4ab0ca,_0x1f7a13['error']['message']);return _0x143db2(_0x1f7a13[_0x55cd('0xf')][_0x55cd('0x11')]);}logger[_0x55cd('0xf')](_0x55cd('0xb'),_0x4ab0ca,_0x1f7a13[_0x55cd('0xf')][_0x55cd('0x11')]);return _0x144f33(_0x1f7a13['error']['message']);}else{logger['info'](_0x55cd('0xb'),_0x4ab0ca,_0x55cd('0xc'));_0x144f33(_0x1f7a13['result'][_0x55cd('0x11')]);}})[_0x55cd('0x12')](function(_0x463927){logger['error'](_0x55cd('0xb'),_0x4ab0ca,_0x463927);_0x143db2(_0x463927);});});}
\ No newline at end of file
+var _0x6345=['request','then','info','VoiceChanSpy,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x2cdd3e,_0x421527){var _0x55fde2=function(_0x29ce91){while(--_0x29ce91){_0x2cdd3e['push'](_0x2cdd3e['shift']());}};_0x55fde2(++_0x421527);}(_0x6345,0xa4));var _0x5634=function(_0x4c844e,_0x479fbf){_0x4c844e=_0x4c844e-0x0;var _0x49d4f6=_0x6345[_0x4c844e];return _0x49d4f6;};'use strict';var _=require(_0x5634('0x0'));var util=require('util');var moment=require(_0x5634('0x1'));var BPromise=require('bluebird');var rs=require(_0x5634('0x2'));var fs=require('fs');var Redis=require(_0x5634('0x3'));var db=require(_0x5634('0x4'))['db'];var utils=require(_0x5634('0x5'));var logger=require(_0x5634('0x6'))(_0x5634('0x7'));var config=require(_0x5634('0x8'));var jayson=require(_0x5634('0x9'));var client=jayson[_0x5634('0xa')][_0x5634('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x478efa,_0xb7b27c,_0x247067){return new BPromise(function(_0x2f615c,_0x4b675e){return client[_0x5634('0xc')](_0x478efa,_0x247067)[_0x5634('0xd')](function(_0x5946a2){logger[_0x5634('0xe')](_0x5634('0xf'),_0xb7b27c,_0x5634('0x10'));logger[_0x5634('0x11')]('VoiceChanSpy,\x20%s,\x20%s,\x20%s',_0xb7b27c,'request\x20sent',JSON[_0x5634('0x12')](_0x5946a2));if(_0x5946a2[_0x5634('0x13')]){if(_0x5946a2['error'][_0x5634('0x14')]===0x1f4){logger['error'](_0x5634('0xf'),_0xb7b27c,_0x5946a2[_0x5634('0x13')][_0x5634('0x15')]);return _0x4b675e(_0x5946a2[_0x5634('0x13')][_0x5634('0x15')]);}logger[_0x5634('0x13')]('VoiceChanSpy,\x20%s,\x20%s',_0xb7b27c,_0x5946a2[_0x5634('0x13')][_0x5634('0x15')]);return _0x2f615c(_0x5946a2[_0x5634('0x13')][_0x5634('0x15')]);}else{logger['info'](_0x5634('0xf'),_0xb7b27c,_0x5634('0x10'));_0x2f615c(_0x5946a2['result']['message']);}})['catch'](function(_0x32020d){logger['error']('VoiceChanSpy,\x20%s,\x20%s',_0xb7b27c,_0x32020d);_0x4b675e(_0x32020d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38b8=['path','connect-timeout','Router','../../config/environment','./voiceContext.controller','index','get','isAuthenticated','show','create','put','/:id','update','destroy','exports','multer'];(function(_0x431c09,_0xff1c24){var _0x1ad012=function(_0x20caa7){while(--_0x20caa7){_0x431c09['push'](_0x431c09['shift']());}};_0x1ad012(++_0xff1c24);}(_0x38b8,0x7f));var _0x838b=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x38b8[_0x2dafbe];return _0x58a45a;};'use strict';var multer=require(_0x838b('0x0'));var util=require('util');var path=require(_0x838b('0x1'));var timeout=require(_0x838b('0x2'));var express=require('express');var router=express[_0x838b('0x3')]();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x838b('0x4'));var controller=require(_0x838b('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x838b('0x6')]);router[_0x838b('0x7')]('/:id',auth[_0x838b('0x8')](),controller[_0x838b('0x9')]);router['post']('/',auth['isAuthenticated'](),controller[_0x838b('0xa')]);router[_0x838b('0xb')](_0x838b('0xc'),auth['isAuthenticated'](),controller[_0x838b('0xd')]);router['delete'](_0x838b('0xc'),auth[_0x838b('0x8')](),controller[_0x838b('0xe')]);module[_0x838b('0xf')]=router;
\ No newline at end of file
+var _0x8383=['multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceContext.controller','get','isAuthenticated','index','/:id','post','create','put','update','delete','destroy','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x8383,0x98));var _0x3838=function(_0x41908c,_0x416d8b){_0x41908c=_0x41908c-0x0;var _0x39a5d6=_0x8383[_0x41908c];return _0x39a5d6;};'use strict';var multer=require(_0x3838('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x3838('0x1'));var express=require(_0x3838('0x2'));var router=express[_0x3838('0x3')]();var auth=require(_0x3838('0x4'));var interaction=require(_0x3838('0x5'));var config=require(_0x3838('0x6'));var controller=require(_0x3838('0x7'));router[_0x3838('0x8')]('/',auth[_0x3838('0x9')](),controller[_0x3838('0xa')]);router['get'](_0x3838('0xb'),auth[_0x3838('0x9')](),controller['show']);router[_0x3838('0xc')]('/',auth['isAuthenticated'](),controller[_0x3838('0xd')]);router[_0x3838('0xe')](_0x3838('0xb'),auth['isAuthenticated'](),controller[_0x3838('0xf')]);router[_0x3838('0x10')](_0x3838('0xb'),auth['isAuthenticated'](),controller[_0x3838('0x11')]);module[_0x3838('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x071a=['BOOLEAN','sequelize','exports','STRING'];(function(_0x57643b,_0x1706fe){var _0x53a35b=function(_0x2625e8){while(--_0x2625e8){_0x57643b['push'](_0x57643b['shift']());}};_0x53a35b(++_0x1706fe);}(_0x071a,0xe9));var _0xa071=function(_0x12f35c,_0x23fe06){_0x12f35c=_0x12f35c-0x0;var _0xe7442a=_0x071a[_0x12f35c];return _0xe7442a;};'use strict';var Sequelize=require(_0xa071('0x0'));module[_0xa071('0x1')]={'name':{'type':Sequelize[_0xa071('0x2')],'unique':'name'},'description':{'type':Sequelize[_0xa071('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0xa071('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd2e2=['exports','STRING','BOOLEAN','sequelize'];(function(_0x53d120,_0x1b3fb5){var _0x53ea8f=function(_0x28e718){while(--_0x28e718){_0x53d120['push'](_0x53d120['shift']());}};_0x53ea8f(++_0x1b3fb5);}(_0xd2e2,0x1f3));var _0x2d2e=function(_0xd1eff0,_0x5ca30d){_0xd1eff0=_0xd1eff0-0x0;var _0x22e88a=_0xd2e2[_0xd1eff0];return _0x22e88a;};'use strict';var Sequelize=require(_0x2d2e('0x0'));module[_0x2d2e('0x1')]={'name':{'type':Sequelize[_0x2d2e('0x2')],'unique':'name'},'description':{'type':Sequelize[_0x2d2e('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0x2d2e('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12c2=['request-promise','moment','bluebird','util','sox','to-csv','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','message','catch','status','json','count','offset','apply','reject','update','destroy','end','sendStatus','stack','name','index','VoiceContext','model','query','dateEnd','dateStart','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','day','add','merge','filter','options','includeAll','include','findAll','rows','show','params','keys','rawAttributes','find','create','body','server/files/templates/context.ejs','utf8','writeFileSync','chan_sip.so','readFileSync','join','root','render','/etc/asterisk/extensions_xcally_contexts.conf','Reload','rimraf','zip-dir'];(function(_0x456d1e,_0x147857){var _0x392089=function(_0x4514a0){while(--_0x4514a0){_0x456d1e['push'](_0x456d1e['shift']());}};_0x392089(++_0x147857);}(_0x12c2,0x103));var _0x212c=function(_0x53bbd2,_0x185fd0){_0x53bbd2=_0x53bbd2-0x0;var _0x5d721c=_0x12c2[_0x53bbd2];return _0x5d721c;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x212c('0x0'));var zipdir=require(_0x212c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x212c('0x2'));var moment=require(_0x212c('0x3'));var BPromise=require(_0x212c('0x4'));var Mustache=require('mustache');var util=require(_0x212c('0x5'));var path=require('path');var sox=require(_0x212c('0x6'));var csv=require(_0x212c('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x212c('0x8'));var jsforce=require(_0x212c('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x212c('0x7'));var querystring=require(_0x212c('0xa'));var Papa=require(_0x212c('0xb'));var qs=require(_0x212c('0xc'));var logger=require(_0x212c('0xd'))(_0x212c('0xe'));var utils=require(_0x212c('0xf'));var config=require(_0x212c('0x10'));var db=require(_0x212c('0x11'))['db'];var jayson=require(_0x212c('0x12'));var client=jayson[_0x212c('0x13')][_0x212c('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x239c57,_0x5c3577,_0x21d1ff,_0x5efffb){return new BPromise(function(_0x348c78,_0x55d838){var _0x48ad35=_0x5efffb||client;return _0x48ad35[_0x212c('0x15')](_0x239c57,_0x21d1ff)[_0x212c('0x16')](function(_0x2d8fd8){logger[_0x212c('0x17')](_0x212c('0x18'),_0x5c3577,_0x212c('0x19'));logger[_0x212c('0x1a')](_0x212c('0x1b'),_0x5c3577,_0x212c('0x19'),JSON['stringify'](_0x2d8fd8));if(_0x2d8fd8['error']){if(_0x2d8fd8[_0x212c('0x1c')][_0x212c('0x1d')]===0x1f4){logger[_0x212c('0x1c')](_0x212c('0x18'),_0x5c3577,_0x2d8fd8['error']['message']);return _0x55d838(_0x2d8fd8['error'][_0x212c('0x1e')]);}logger[_0x212c('0x1c')](_0x212c('0x18'),_0x5c3577,_0x2d8fd8[_0x212c('0x1c')][_0x212c('0x1e')]);return _0x348c78(_0x2d8fd8['error'][_0x212c('0x1e')]);}else{logger['info'](_0x212c('0x18'),_0x5c3577,_0x212c('0x19'));_0x348c78(_0x2d8fd8['result'][_0x212c('0x1e')]);}})[_0x212c('0x1f')](function(_0xbfa145){logger[_0x212c('0x1c')](_0x212c('0x18'),_0x5c3577,_0xbfa145);_0x55d838(_0xbfa145);});});}function respondWithStatusCode(_0x2b9612,_0x26a817){_0x26a817=_0x26a817||0xcc;return function(_0xd9f9a3){if(_0xd9f9a3){return _0x2b9612['sendStatus'](_0x26a817);}return _0x2b9612['status'](_0x26a817)['end']();};}function respondWithResult(_0x39eec6,_0x45b793){_0x45b793=_0x45b793||0xc8;return function(_0x3c80d2){if(_0x3c80d2){return _0x39eec6[_0x212c('0x20')](_0x45b793)[_0x212c('0x21')](_0x3c80d2);}};}function respondWithFilteredResult(_0x1cb9d1,_0x14fee4){return function(_0x440d30){if(_0x440d30){var _0x435d4a=_0x440d30[_0x212c('0x22')],_0x3188bd=_0x14fee4[_0x212c('0x23')],_0x23494c=_0x14fee4['offset']+_0x14fee4['limit'],_0x2b89ea;if(_0x23494c>=_0x435d4a){_0x23494c=_0x435d4a;_0x2b89ea=0xc8;}else{_0x2b89ea=0xce;}_0x1cb9d1['status'](_0x2b89ea);return _0x1cb9d1['set']('Content-Range',_0x3188bd+'-'+_0x23494c+'/'+_0x435d4a)['json'](_0x440d30);}return null;};}function patchUpdates(_0x1539c1){return function(_0x29cc2b){try{jsonpatch[_0x212c('0x24')](_0x29cc2b,_0x1539c1,!![]);}catch(_0x43aa7c){return BPromise[_0x212c('0x25')](_0x43aa7c);}return _0x29cc2b['save']();};}function saveUpdates(_0x4c0ab1,_0x436e0b){return function(_0x1ea1fd){if(_0x1ea1fd){return _0x1ea1fd[_0x212c('0x26')](_0x4c0ab1)['then'](function(_0xe5d461){return _0xe5d461;});}return null;};}function removeEntity(_0x4efdf6,_0x28253c){return function(_0x4089fd){if(_0x4089fd){return _0x4089fd[_0x212c('0x27')]()[_0x212c('0x16')](function(){_0x4efdf6[_0x212c('0x20')](0xcc)[_0x212c('0x28')]();});}};}function handleEntityNotFound(_0x5656fb,_0x56cc66){return function(_0x36fa29){if(!_0x36fa29){_0x5656fb[_0x212c('0x29')](0x194);}return _0x36fa29;};}function handleError(_0x48894e,_0x49f0c8){_0x49f0c8=_0x49f0c8||0x1f4;return function(_0x4bd373){logger[_0x212c('0x1c')](_0x4bd373[_0x212c('0x2a')]);if(_0x4bd373[_0x212c('0x2b')]){delete _0x4bd373[_0x212c('0x2b')];}_0x48894e[_0x212c('0x20')](_0x49f0c8)['send'](_0x4bd373);};}exports[_0x212c('0x2c')]=function(_0x1dd106,_0x36363f){var _0x15f931={},_0xbc8332={},_0x100d0d={'count':0x0,'rows':[]};var _0x243f83=db[_0x212c('0x2d')]['rawAttributes'];_0xbc8332[_0x212c('0x2e')]=_['keys'](_0x243f83);var _0x3d85ba={'dateStart':_0x1dd106[_0x212c('0x2f')]['dateStart'],'dateEnd':_0x1dd106['query'][_0x212c('0x30')]};delete _0x1dd106[_0x212c('0x2f')][_0x212c('0x31')];delete _0x1dd106[_0x212c('0x2f')][_0x212c('0x30')];_0xbc8332[_0x212c('0x2f')]=_['keys'](_0x1dd106['query']);_0xbc8332['filters']=_['intersection'](_0xbc8332[_0x212c('0x2e')],_0xbc8332[_0x212c('0x2f')]);_0x15f931[_0x212c('0x32')]=_[_0x212c('0x33')](_0xbc8332['model'],qs[_0x212c('0x34')](_0x1dd106['query'][_0x212c('0x34')]));_0x15f931[_0x212c('0x32')]=_0x15f931[_0x212c('0x32')][_0x212c('0x35')]?_0x15f931[_0x212c('0x32')]:_0xbc8332['model'];if(!_0x1dd106[_0x212c('0x2f')][_0x212c('0x36')](_0x212c('0x37'))){_0x15f931[_0x212c('0x38')]=qs[_0x212c('0x38')](_0x1dd106[_0x212c('0x2f')][_0x212c('0x38')]);_0x15f931[_0x212c('0x23')]=qs['offset'](_0x1dd106['query'][_0x212c('0x23')]);}_0x15f931[_0x212c('0x39')]=qs[_0x212c('0x3a')](_0x1dd106[_0x212c('0x2f')][_0x212c('0x3a')]);_0x15f931[_0x212c('0x3b')]=qs[_0x212c('0x3c')](_['pick'](_0x1dd106[_0x212c('0x2f')],_0xbc8332[_0x212c('0x3c')]));if(_0x3d85ba[_0x212c('0x31')]){if(_0x3d85ba['dateEnd']){_0x3d85ba[_0x212c('0x30')]=moment(_0x3d85ba[_0x212c('0x30')])['add'](0x1,_0x212c('0x3d'));}else{_0x3d85ba['dateEnd']=moment(_0x3d85ba[_0x212c('0x31')])[_0x212c('0x3e')](0x1,_0x212c('0x3d'));}_[_0x212c('0x3f')](_0x15f931[_0x212c('0x3b')],{'createdAt':{'$gte':_0x3d85ba[_0x212c('0x31')],'$lte':_0x3d85ba[_0x212c('0x30')]}});}if(_0x1dd106[_0x212c('0x2f')][_0x212c('0x40')]){_0x15f931[_0x212c('0x3b')]=_[_0x212c('0x3f')](_0x15f931[_0x212c('0x3b')],{'$or':_['map'](_0x15f931[_0x212c('0x32')],function(_0x375963){var _0x42458c={};_0x42458c[_0x375963]={'$like':'%'+_0x1dd106[_0x212c('0x2f')][_0x212c('0x40')]+'%'};return _0x42458c;})});}_0x15f931=_[_0x212c('0x3f')]({},_0x15f931,_0x1dd106[_0x212c('0x41')]);var _0x5ac6d4={'where':_0x15f931['where']};return db['VoiceContext'][_0x212c('0x22')](_0x5ac6d4)[_0x212c('0x16')](function(_0x1ac890){_0x100d0d[_0x212c('0x22')]=_0x1ac890;if(_0x1dd106[_0x212c('0x2f')][_0x212c('0x42')]){_0x15f931[_0x212c('0x43')]=[{'all':!![]}];}return db[_0x212c('0x2d')][_0x212c('0x44')](_0x15f931);})[_0x212c('0x16')](function(_0x31a54b){_0x100d0d[_0x212c('0x45')]=_0x31a54b;return _0x100d0d;})['then'](respondWithFilteredResult(_0x36363f,_0x15f931))[_0x212c('0x1f')](handleError(_0x36363f,null));};exports[_0x212c('0x46')]=function(_0x30f959,_0x457c0e){var _0x4e689a={'raw':![],'where':{'id':_0x30f959[_0x212c('0x47')]['id']}},_0x4cb551={};_0x4cb551[_0x212c('0x2e')]=_[_0x212c('0x48')](db[_0x212c('0x2d')][_0x212c('0x49')]);_0x4cb551['query']=_['keys'](_0x30f959[_0x212c('0x2f')]);_0x4cb551[_0x212c('0x3c')]=_[_0x212c('0x33')](_0x4cb551[_0x212c('0x2e')],_0x4cb551[_0x212c('0x2f')]);_0x4e689a[_0x212c('0x32')]=_['intersection'](_0x4cb551[_0x212c('0x2e')],qs['fields'](_0x30f959[_0x212c('0x2f')][_0x212c('0x34')]));_0x4e689a['attributes']=_0x4e689a['attributes'][_0x212c('0x35')]?_0x4e689a['attributes']:_0x4cb551[_0x212c('0x2e')];if(_0x30f959[_0x212c('0x2f')][_0x212c('0x42')]){_0x4e689a[_0x212c('0x43')]=[{'all':!![]}];}_0x4e689a=_['merge']({},_0x4e689a,_0x30f959['options']);return db[_0x212c('0x2d')][_0x212c('0x4a')](_0x4e689a)[_0x212c('0x16')](handleEntityNotFound(_0x457c0e,null))[_0x212c('0x16')](respondWithResult(_0x457c0e,null))['catch'](handleError(_0x457c0e,null));};exports[_0x212c('0x4b')]=function(_0x217e64,_0x15b960,_0x2c1005){var _0x2e3d91;return db[_0x212c('0x2d')][_0x212c('0x4b')](_0x217e64[_0x212c('0x4c')],{'raw':!![]})[_0x212c('0x16')](function(_0x2f7f07){_0x2e3d91=_0x2f7f07;return db[_0x212c('0x2d')][_0x212c('0x44')]({'raw':!![]});})['then'](function(_0x425e77){var _0x4e976b=fs['readFileSync'](path['join'](config['root'],_0x212c('0x4d')),_0x212c('0x4e'));var _0x53b8ef=ejs['render'](_0x4e976b,{'contexts':_0x425e77||[]});fs[_0x212c('0x4f')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x53b8ef);})[_0x212c('0x16')](function(){return respondWithRpcPromise('Reload',_0x212c('0x4b'),{'module':_0x212c('0x50')});})[_0x212c('0x16')](function(){return _0x2e3d91;})[_0x212c('0x16')](respondWithResult(_0x15b960,0xc9))['catch'](handleError(_0x15b960,null));};exports[_0x212c('0x26')]=function(_0x22a582,_0xb867d3,_0x480dd1){var _0x527b2b;return db['VoiceContext'][_0x212c('0x4a')]({'where':{'id':_0x22a582[_0x212c('0x47')]['id']}})[_0x212c('0x16')](handleEntityNotFound(_0xb867d3,null))[_0x212c('0x16')](saveUpdates(_0x22a582[_0x212c('0x4c')],null))['then'](function(_0x3feb86){if(_0x3feb86){_0x527b2b=_0x3feb86;return db[_0x212c('0x2d')][_0x212c('0x44')]({'raw':!![]});}})[_0x212c('0x16')](function(_0xb6c538){var _0x28d964=fs[_0x212c('0x51')](path[_0x212c('0x52')](config[_0x212c('0x53')],_0x212c('0x4d')),_0x212c('0x4e'));var _0x5df756=ejs[_0x212c('0x54')](_0x28d964,{'contexts':_0xb6c538||[]});fs['writeFileSync'](_0x212c('0x55'),_0x5df756);})['then'](function(){return respondWithRpcPromise(_0x212c('0x56'),_0x212c('0x26'),{'module':_0x212c('0x50')});})[_0x212c('0x16')](function(){return _0x527b2b;})[_0x212c('0x16')](respondWithResult(_0xb867d3,null))['catch'](handleError(_0xb867d3,null));};exports['destroy']=function(_0x5823e2,_0x5ee116,_0x3d13e1){var _0x32f156;return db['VoiceContext'][_0x212c('0x4a')]({'where':{'id':_0x5823e2[_0x212c('0x47')]['id']}})[_0x212c('0x16')](handleEntityNotFound(_0x5ee116,null))['then'](removeEntity(_0x5ee116,null))[_0x212c('0x16')](function(){return db[_0x212c('0x2d')][_0x212c('0x44')]({'raw':!![]});})[_0x212c('0x16')](function(_0x32a8bf){var _0x21db2d=fs[_0x212c('0x51')](path['join'](config[_0x212c('0x53')],'server/files/templates/context.ejs'),_0x212c('0x4e'));var _0x1150f0=ejs['render'](_0x21db2d,{'contexts':_0x32a8bf});fs[_0x212c('0x4f')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x1150f0);return respondWithRpcPromise('Reload','destroy',{'module':_0x212c('0x50')});})[_0x212c('0x1f')](handleError(_0x5ee116,null));};
\ No newline at end of file
+var _0x7a54=['path','sox','ejs','squel','crypto','desk.js','ioredis','../../components/parsers/qs','api','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','sendStatus','stack','name','send','rawAttributes','keys','query','dateStart','dateEnd','filters','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','day','add','filter','merge','map','options','VoiceContext','includeAll','findAll','rows','show','params','intersection','length','include','find','create','body','join','root','writeFileSync','Reload','readFileSync','render','chan_sip.so','utf8','/etc/asterisk/extensions_xcally_contexts.conf','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7a54,0x106));var _0x47a5=function(_0x45c693,_0x3d120e){_0x45c693=_0x45c693-0x0;var _0x308083=_0x7a54[_0x45c693];return _0x308083;};'use strict';var pdf=require(_0x47a5('0x0'));var emlformat=require(_0x47a5('0x1'));var rimraf=require(_0x47a5('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x47a5('0x3'));var rp=require(_0x47a5('0x4'));var moment=require('moment');var BPromise=require(_0x47a5('0x5'));var Mustache=require(_0x47a5('0x6'));var util=require(_0x47a5('0x7'));var path=require(_0x47a5('0x8'));var sox=require(_0x47a5('0x9'));var csv=require('to-csv');var ejs=require(_0x47a5('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var qs=require(_0x47a5('0xf'));var logger=require('../../config/logger')(_0x47a5('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x47a5('0x11'))['db'];var jayson=require(_0x47a5('0x12'));var client=jayson[_0x47a5('0x13')][_0x47a5('0x14')]({'port':0x232a});function respondWithRpcPromise(_0xd612dd,_0xd308b8,_0x1eae59,_0x5beb89){return new BPromise(function(_0x44bd3e,_0x221b54){var _0x1cf309=_0x5beb89||client;return _0x1cf309[_0x47a5('0x15')](_0xd612dd,_0x1eae59)[_0x47a5('0x16')](function(_0x620ee9){logger[_0x47a5('0x17')](_0x47a5('0x18'),_0xd308b8,'request\x20sent');logger[_0x47a5('0x19')](_0x47a5('0x1a'),_0xd308b8,_0x47a5('0x1b'),JSON[_0x47a5('0x1c')](_0x620ee9));if(_0x620ee9[_0x47a5('0x1d')]){if(_0x620ee9['error']['code']===0x1f4){logger[_0x47a5('0x1d')]('VoiceContext,\x20%s,\x20%s',_0xd308b8,_0x620ee9['error'][_0x47a5('0x1e')]);return _0x221b54(_0x620ee9[_0x47a5('0x1d')][_0x47a5('0x1e')]);}logger[_0x47a5('0x1d')](_0x47a5('0x18'),_0xd308b8,_0x620ee9[_0x47a5('0x1d')][_0x47a5('0x1e')]);return _0x44bd3e(_0x620ee9[_0x47a5('0x1d')][_0x47a5('0x1e')]);}else{logger['info'](_0x47a5('0x18'),_0xd308b8,_0x47a5('0x1b'));_0x44bd3e(_0x620ee9['result'][_0x47a5('0x1e')]);}})[_0x47a5('0x1f')](function(_0x36874d){logger['error'](_0x47a5('0x18'),_0xd308b8,_0x36874d);_0x221b54(_0x36874d);});});}function respondWithStatusCode(_0x2f142b,_0x23db32){_0x23db32=_0x23db32||0xcc;return function(_0x7a9f9e){if(_0x7a9f9e){return _0x2f142b['sendStatus'](_0x23db32);}return _0x2f142b[_0x47a5('0x20')](_0x23db32)[_0x47a5('0x21')]();};}function respondWithResult(_0x513981,_0x28747d){_0x28747d=_0x28747d||0xc8;return function(_0xc4cd63){if(_0xc4cd63){return _0x513981[_0x47a5('0x20')](_0x28747d)[_0x47a5('0x22')](_0xc4cd63);}};}function respondWithFilteredResult(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(_0x53078a){var _0x136745=_0x53078a[_0x47a5('0x23')],_0x5686db=_0x50bf17[_0x47a5('0x24')],_0x1ea9c8=_0x50bf17[_0x47a5('0x24')]+_0x50bf17[_0x47a5('0x25')],_0x5b6c4e;if(_0x1ea9c8>=_0x136745){_0x1ea9c8=_0x136745;_0x5b6c4e=0xc8;}else{_0x5b6c4e=0xce;}_0x3abd6a[_0x47a5('0x20')](_0x5b6c4e);return _0x3abd6a[_0x47a5('0x26')](_0x47a5('0x27'),_0x5686db+'-'+_0x1ea9c8+'/'+_0x136745)[_0x47a5('0x22')](_0x53078a);}return null;};}function patchUpdates(_0x16631f){return function(_0x361bfa){try{jsonpatch[_0x47a5('0x28')](_0x361bfa,_0x16631f,!![]);}catch(_0x11a4fa){return BPromise[_0x47a5('0x29')](_0x11a4fa);}return _0x361bfa['save']();};}function saveUpdates(_0x243210,_0x51833b){return function(_0x2ef875){if(_0x2ef875){return _0x2ef875[_0x47a5('0x2a')](_0x243210)[_0x47a5('0x16')](function(_0x4d6b57){return _0x4d6b57;});}return null;};}function removeEntity(_0x256650,_0x625952){return function(_0x39b50b){if(_0x39b50b){return _0x39b50b[_0x47a5('0x2b')]()['then'](function(){_0x256650['status'](0xcc)[_0x47a5('0x21')]();});}};}function handleEntityNotFound(_0xfb5ddb,_0x5bd7eb){return function(_0x4e1006){if(!_0x4e1006){_0xfb5ddb[_0x47a5('0x2c')](0x194);}return _0x4e1006;};}function handleError(_0x51544e,_0x57bff6){_0x57bff6=_0x57bff6||0x1f4;return function(_0x42f70c){logger['error'](_0x42f70c[_0x47a5('0x2d')]);if(_0x42f70c[_0x47a5('0x2e')]){delete _0x42f70c['name'];}_0x51544e['status'](_0x57bff6)[_0x47a5('0x2f')](_0x42f70c);};}exports['index']=function(_0x403028,_0x87e4c9){var _0xf269a8={},_0x52749b={},_0x18f7e9={'count':0x0,'rows':[]};var _0x50c086=db['VoiceContext'][_0x47a5('0x30')];_0x52749b['model']=_[_0x47a5('0x31')](_0x50c086);var _0x5ef577={'dateStart':_0x403028[_0x47a5('0x32')][_0x47a5('0x33')],'dateEnd':_0x403028[_0x47a5('0x32')][_0x47a5('0x34')]};delete _0x403028[_0x47a5('0x32')][_0x47a5('0x33')];delete _0x403028[_0x47a5('0x32')][_0x47a5('0x34')];_0x52749b[_0x47a5('0x32')]=_['keys'](_0x403028[_0x47a5('0x32')]);_0x52749b[_0x47a5('0x35')]=_['intersection'](_0x52749b[_0x47a5('0x36')],_0x52749b[_0x47a5('0x32')]);_0xf269a8[_0x47a5('0x37')]=_['intersection'](_0x52749b[_0x47a5('0x36')],qs[_0x47a5('0x38')](_0x403028['query'][_0x47a5('0x38')]));_0xf269a8[_0x47a5('0x37')]=_0xf269a8['attributes']['length']?_0xf269a8['attributes']:_0x52749b[_0x47a5('0x36')];if(!_0x403028['query'][_0x47a5('0x39')](_0x47a5('0x3a'))){_0xf269a8[_0x47a5('0x25')]=qs[_0x47a5('0x25')](_0x403028[_0x47a5('0x32')][_0x47a5('0x25')]);_0xf269a8[_0x47a5('0x24')]=qs[_0x47a5('0x24')](_0x403028[_0x47a5('0x32')][_0x47a5('0x24')]);}_0xf269a8[_0x47a5('0x3b')]=qs[_0x47a5('0x3c')](_0x403028[_0x47a5('0x32')]['sort']);_0xf269a8[_0x47a5('0x3d')]=qs[_0x47a5('0x35')](_[_0x47a5('0x3e')](_0x403028[_0x47a5('0x32')],_0x52749b['filters']));if(_0x5ef577[_0x47a5('0x33')]){if(_0x5ef577['dateEnd']){_0x5ef577['dateEnd']=moment(_0x5ef577['dateEnd'])['add'](0x1,_0x47a5('0x3f'));}else{_0x5ef577['dateEnd']=moment(_0x5ef577[_0x47a5('0x33')])[_0x47a5('0x40')](0x1,_0x47a5('0x3f'));}_['merge'](_0xf269a8[_0x47a5('0x3d')],{'createdAt':{'$gte':_0x5ef577[_0x47a5('0x33')],'$lte':_0x5ef577['dateEnd']}});}if(_0x403028['query'][_0x47a5('0x41')]){_0xf269a8['where']=_[_0x47a5('0x42')](_0xf269a8[_0x47a5('0x3d')],{'$or':_[_0x47a5('0x43')](_0xf269a8[_0x47a5('0x37')],function(_0x34a9ae){var _0xf0edbb={};_0xf0edbb[_0x34a9ae]={'$like':'%'+_0x403028[_0x47a5('0x32')][_0x47a5('0x41')]+'%'};return _0xf0edbb;})});}_0xf269a8=_[_0x47a5('0x42')]({},_0xf269a8,_0x403028[_0x47a5('0x44')]);var _0x24ecb1={'where':_0xf269a8[_0x47a5('0x3d')]};return db[_0x47a5('0x45')][_0x47a5('0x23')](_0x24ecb1)[_0x47a5('0x16')](function(_0x3a2b38){_0x18f7e9['count']=_0x3a2b38;if(_0x403028[_0x47a5('0x32')][_0x47a5('0x46')]){_0xf269a8['include']=[{'all':!![]}];}return db['VoiceContext'][_0x47a5('0x47')](_0xf269a8);})['then'](function(_0x13750d){_0x18f7e9[_0x47a5('0x48')]=_0x13750d;return _0x18f7e9;})['then'](respondWithFilteredResult(_0x87e4c9,_0xf269a8))['catch'](handleError(_0x87e4c9,null));};exports[_0x47a5('0x49')]=function(_0x52d409,_0x2d147c){var _0x1d1039={'raw':![],'where':{'id':_0x52d409[_0x47a5('0x4a')]['id']}},_0x3548bc={};_0x3548bc[_0x47a5('0x36')]=_[_0x47a5('0x31')](db[_0x47a5('0x45')]['rawAttributes']);_0x3548bc['query']=_[_0x47a5('0x31')](_0x52d409[_0x47a5('0x32')]);_0x3548bc[_0x47a5('0x35')]=_[_0x47a5('0x4b')](_0x3548bc[_0x47a5('0x36')],_0x3548bc[_0x47a5('0x32')]);_0x1d1039[_0x47a5('0x37')]=_['intersection'](_0x3548bc[_0x47a5('0x36')],qs[_0x47a5('0x38')](_0x52d409[_0x47a5('0x32')]['fields']));_0x1d1039[_0x47a5('0x37')]=_0x1d1039['attributes'][_0x47a5('0x4c')]?_0x1d1039[_0x47a5('0x37')]:_0x3548bc[_0x47a5('0x36')];if(_0x52d409[_0x47a5('0x32')]['includeAll']){_0x1d1039[_0x47a5('0x4d')]=[{'all':!![]}];}_0x1d1039=_[_0x47a5('0x42')]({},_0x1d1039,_0x52d409[_0x47a5('0x44')]);return db[_0x47a5('0x45')][_0x47a5('0x4e')](_0x1d1039)[_0x47a5('0x16')](handleEntityNotFound(_0x2d147c,null))[_0x47a5('0x16')](respondWithResult(_0x2d147c,null))['catch'](handleError(_0x2d147c,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e,_0x8da9fb){var _0x3329aa;return db[_0x47a5('0x45')]['create'](_0x43721b[_0x47a5('0x50')],{'raw':!![]})[_0x47a5('0x16')](function(_0x1aa581){_0x3329aa=_0x1aa581;return db['VoiceContext'][_0x47a5('0x47')]({'raw':!![]});})[_0x47a5('0x16')](function(_0x183b3c){var _0x5d8d4a=fs['readFileSync'](path[_0x47a5('0x51')](config[_0x47a5('0x52')],'server/files/templates/context.ejs'),'utf8');var _0x6d6b2b=ejs['render'](_0x5d8d4a,{'contexts':_0x183b3c||[]});fs[_0x47a5('0x53')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x6d6b2b);})['then'](function(){return respondWithRpcPromise(_0x47a5('0x54'),_0x47a5('0x4f'),{'module':'chan_sip.so'});})[_0x47a5('0x16')](function(){return _0x3329aa;})[_0x47a5('0x16')](respondWithResult(_0x187d7e,0xc9))['catch'](handleError(_0x187d7e,null));};exports['update']=function(_0x16b4fd,_0x30d482,_0x867da0){var _0x2931e4;return db['VoiceContext'][_0x47a5('0x4e')]({'where':{'id':_0x16b4fd[_0x47a5('0x4a')]['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x30d482,null))['then'](saveUpdates(_0x16b4fd[_0x47a5('0x50')],null))['then'](function(_0x485e3c){if(_0x485e3c){_0x2931e4=_0x485e3c;return db[_0x47a5('0x45')][_0x47a5('0x47')]({'raw':!![]});}})[_0x47a5('0x16')](function(_0x3603b7){var _0x4966af=fs[_0x47a5('0x55')](path['join'](config['root'],'server/files/templates/context.ejs'),'utf8');var _0x212d92=ejs[_0x47a5('0x56')](_0x4966af,{'contexts':_0x3603b7||[]});fs[_0x47a5('0x53')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x212d92);})['then'](function(){return respondWithRpcPromise(_0x47a5('0x54'),_0x47a5('0x2a'),{'module':_0x47a5('0x57')});})[_0x47a5('0x16')](function(){return _0x2931e4;})[_0x47a5('0x16')](respondWithResult(_0x30d482,null))['catch'](handleError(_0x30d482,null));};exports[_0x47a5('0x2b')]=function(_0x519e9e,_0x22c886,_0x274d31){var _0x4d545f;return db[_0x47a5('0x45')][_0x47a5('0x4e')]({'where':{'id':_0x519e9e[_0x47a5('0x4a')]['id']}})[_0x47a5('0x16')](handleEntityNotFound(_0x22c886,null))[_0x47a5('0x16')](removeEntity(_0x22c886,null))[_0x47a5('0x16')](function(){return db[_0x47a5('0x45')][_0x47a5('0x47')]({'raw':!![]});})['then'](function(_0x2dcc3b){var _0x2a3a57=fs[_0x47a5('0x55')](path[_0x47a5('0x51')](config[_0x47a5('0x52')],'server/files/templates/context.ejs'),_0x47a5('0x58'));var _0xdfcecc=ejs[_0x47a5('0x56')](_0x2a3a57,{'contexts':_0x2dcc3b});fs[_0x47a5('0x53')](_0x47a5('0x59'),_0xdfcecc);return respondWithRpcPromise(_0x47a5('0x54'),_0x47a5('0x2b'),{'module':_0x47a5('0x57')});})[_0x47a5('0x1f')](handleError(_0x22c886,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb894=['util','../../config/logger','api','moment','bluebird','request-promise','./voiceContext.attributes','define','voice_contexts','lodash'];(function(_0x36da95,_0x448a0a){var _0x139204=function(_0x4c9621){while(--_0x4c9621){_0x36da95['push'](_0x36da95['shift']());}};_0x139204(++_0x448a0a);}(_0xb894,0x8b));var _0x4b89=function(_0x446d07,_0x46c665){_0x446d07=_0x446d07-0x0;var _0x279a6d=_0xb894[_0x446d07];return _0x279a6d;};'use strict';var _=require(_0x4b89('0x0'));var util=require(_0x4b89('0x1'));var logger=require(_0x4b89('0x2'))(_0x4b89('0x3'));var moment=require(_0x4b89('0x4'));var BPromise=require(_0x4b89('0x5'));var rp=require(_0x4b89('0x6'));var attributes=require(_0x4b89('0x7'));module['exports']=function(_0x34ce54,_0x3ad05e){return _0x34ce54[_0x4b89('0x8')]('VoiceContext',attributes,{'tableName':_0x4b89('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x37d8=['request-promise','exports','define','VoiceContext','voice_contexts','lodash','util','../../config/logger','api','bluebird'];(function(_0x154644,_0x7246e7){var _0x2d9261=function(_0x5686c4){while(--_0x5686c4){_0x154644['push'](_0x154644['shift']());}};_0x2d9261(++_0x7246e7);}(_0x37d8,0xc3));var _0x837d=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x37d8[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x837d('0x0'));var util=require(_0x837d('0x1'));var logger=require(_0x837d('0x2'))(_0x837d('0x3'));var moment=require('moment');var BPromise=require(_0x837d('0x4'));var rp=require(_0x837d('0x5'));var attributes=require('./voiceContext.attributes');module[_0x837d('0x6')]=function(_0x52de50,_0x4bc466){return _0x52de50[_0x837d('0x7')](_0x837d('0x8'),attributes,{'tableName':_0x837d('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5506=['lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x31a371,_0x50828e){var _0x2a5bd6=function(_0x2fb481){while(--_0x2fb481){_0x31a371['push'](_0x31a371['shift']());}};_0x2a5bd6(++_0x50828e);}(_0x5506,0x1cc));var _0x6550=function(_0x48c40b,_0x55ceb9){_0x48c40b=_0x48c40b-0x0;var _0x216d6b=_0x5506[_0x48c40b];return _0x216d6b;};'use strict';var _=require(_0x6550('0x0'));var util=require('util');var moment=require(_0x6550('0x1'));var BPromise=require(_0x6550('0x2'));var rs=require(_0x6550('0x3'));var fs=require('fs');var db=require(_0x6550('0x4'))['db'];var utils=require(_0x6550('0x5'));var logger=require(_0x6550('0x6'))(_0x6550('0x7'));var config=require(_0x6550('0x8'));var jayson=require(_0x6550('0x9'));var client=jayson['client'][_0x6550('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x41e8bd,_0x528797,_0x301bec){return new BPromise(function(_0x9cdf27,_0x3ebd12){return client[_0x6550('0xb')](_0x41e8bd,_0x301bec)[_0x6550('0xc')](function(_0x5f4c1c){logger[_0x6550('0xd')](_0x6550('0xe'),_0x528797,_0x6550('0xf'));logger['debug'](_0x6550('0x10'),_0x528797,_0x6550('0xf'),JSON[_0x6550('0x11')](_0x5f4c1c));if(_0x5f4c1c[_0x6550('0x12')]){if(_0x5f4c1c[_0x6550('0x12')][_0x6550('0x13')]===0x1f4){logger[_0x6550('0x12')]('VoiceContext,\x20%s,\x20%s',_0x528797,_0x5f4c1c[_0x6550('0x12')][_0x6550('0x14')]);return _0x3ebd12(_0x5f4c1c['error'][_0x6550('0x14')]);}logger[_0x6550('0x12')]('VoiceContext,\x20%s,\x20%s',_0x528797,_0x5f4c1c[_0x6550('0x12')][_0x6550('0x14')]);return _0x9cdf27(_0x5f4c1c['error'][_0x6550('0x14')]);}else{logger[_0x6550('0xd')]('VoiceContext,\x20%s,\x20%s',_0x528797,_0x6550('0xf'));_0x9cdf27(_0x5f4c1c[_0x6550('0x15')][_0x6550('0x14')]);}})[_0x6550('0x16')](function(_0x3b5d52){logger[_0x6550('0x12')](_0x6550('0xe'),_0x528797,_0x3b5d52);_0x3ebd12(_0x3b5d52);});});}
\ No newline at end of file
+var _0x080b=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','VoiceContext,\x20%s,\x20%s','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','bluebird'];(function(_0x26b33c,_0x16514c){var _0x438755=function(_0x5efc78){while(--_0x5efc78){_0x26b33c['push'](_0x26b33c['shift']());}};_0x438755(++_0x16514c);}(_0x080b,0xf9));var _0xb080=function(_0x18d349,_0x3f83f7){_0x18d349=_0x18d349-0x0;var _0x1bff04=_0x080b[_0x18d349];return _0x1bff04;};'use strict';var _=require(_0xb080('0x0'));var util=require(_0xb080('0x1'));var moment=require('moment');var BPromise=require(_0xb080('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb080('0x3'))['db'];var utils=require(_0xb080('0x4'));var logger=require(_0xb080('0x5'))(_0xb080('0x6'));var config=require(_0xb080('0x7'));var jayson=require(_0xb080('0x8'));var client=jayson[_0xb080('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x537998,_0x422f2b,_0x2d92eb){return new BPromise(function(_0xeb0dd0,_0x2b7eb5){return client['request'](_0x537998,_0x2d92eb)[_0xb080('0xa')](function(_0x32e786){logger['info'](_0xb080('0xb'),_0x422f2b,_0xb080('0xc'));logger['debug'](_0xb080('0xd'),_0x422f2b,'request\x20sent',JSON[_0xb080('0xe')](_0x32e786));if(_0x32e786[_0xb080('0xf')]){if(_0x32e786[_0xb080('0xf')][_0xb080('0x10')]===0x1f4){logger['error'](_0xb080('0xb'),_0x422f2b,_0x32e786[_0xb080('0xf')][_0xb080('0x11')]);return _0x2b7eb5(_0x32e786[_0xb080('0xf')]['message']);}logger[_0xb080('0xf')](_0xb080('0xb'),_0x422f2b,_0x32e786[_0xb080('0xf')][_0xb080('0x11')]);return _0xeb0dd0(_0x32e786['error']['message']);}else{logger[_0xb080('0x12')]('VoiceContext,\x20%s,\x20%s',_0x422f2b,_0xb080('0xc'));_0xeb0dd0(_0x32e786[_0xb080('0x13')]['message']);}})[_0xb080('0x14')](function(_0x2faecf){logger['error'](_0xb080('0xb'),_0x422f2b,_0x2faecf);_0x2b7eb5(_0x2faecf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb6c=['path','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceDialReport.controller','get','isAuthenticated','/describe','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util'];(function(_0x52532d,_0x3a2f30){var _0xb6372d=function(_0x57f815){while(--_0x57f815){_0x52532d['push'](_0x52532d['shift']());}};_0xb6372d(++_0x3a2f30);}(_0xeb6c,0x102));var _0xceb6=function(_0x24f97a,_0x5b089a){_0x24f97a=_0x24f97a-0x0;var _0x15b683=_0xeb6c[_0x24f97a];return _0x15b683;};'use strict';var multer=require(_0xceb6('0x0'));var util=require(_0xceb6('0x1'));var path=require(_0xceb6('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var auth=require(_0xceb6('0x3'));var interaction=require(_0xceb6('0x4'));var config=require(_0xceb6('0x5'));var controller=require(_0xceb6('0x6'));router[_0xceb6('0x7')]('/',auth[_0xceb6('0x8')](),controller['index']);router[_0xceb6('0x7')](_0xceb6('0x9'),auth[_0xceb6('0x8')](),controller[_0xceb6('0xa')]);router[_0xceb6('0x7')](_0xceb6('0xb'),auth[_0xceb6('0x8')](),controller[_0xceb6('0xc')]);router[_0xceb6('0xd')]('/',auth['isAuthenticated'](),controller[_0xceb6('0xe')]);router[_0xceb6('0xf')](_0xceb6('0xb'),auth[_0xceb6('0x8')](),controller[_0xceb6('0x10')]);router[_0xceb6('0x11')](_0xceb6('0xb'),auth[_0xceb6('0x8')](),controller[_0xceb6('0x12')]);module[_0xceb6('0x13')]=router;
\ No newline at end of file
+var _0x9b75=['delete','destroy','exports','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./voiceDialReport.controller','get','/describe','describe','/:id','isAuthenticated','show','create','put','update'];(function(_0x17a32f,_0x5a51a){var _0x15a293=function(_0x55fbd3){while(--_0x55fbd3){_0x17a32f['push'](_0x17a32f['shift']());}};_0x15a293(++_0x5a51a);}(_0x9b75,0x192));var _0x59b7=function(_0x4e638e,_0x951e5d){_0x4e638e=_0x4e638e-0x0;var _0x496f72=_0x9b75[_0x4e638e];return _0x496f72;};'use strict';var multer=require(_0x59b7('0x0'));var util=require(_0x59b7('0x1'));var path=require('path');var timeout=require(_0x59b7('0x2'));var express=require(_0x59b7('0x3'));var router=express['Router']();var auth=require(_0x59b7('0x4'));var interaction=require(_0x59b7('0x5'));var config=require('../../config/environment');var controller=require(_0x59b7('0x6'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x59b7('0x7')](_0x59b7('0x8'),auth['isAuthenticated'](),controller[_0x59b7('0x9')]);router[_0x59b7('0x7')](_0x59b7('0xa'),auth[_0x59b7('0xb')](),controller[_0x59b7('0xc')]);router['post']('/',auth[_0x59b7('0xb')](),controller[_0x59b7('0xd')]);router[_0x59b7('0xe')](_0x59b7('0xa'),auth[_0x59b7('0xb')](),controller[_0x59b7('0xf')]);router[_0x59b7('0x10')](_0x59b7('0xa'),auth[_0x59b7('0xb')](),controller[_0x59b7('0x11')]);module[_0x59b7('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41a2=['STRING','INTEGER','DATE','called,connect,complete','sequelize','exports'];(function(_0x3c5503,_0x2b568d){var _0x5571a6=function(_0x4ee147){while(--_0x4ee147){_0x3c5503['push'](_0x3c5503['shift']());}};_0x5571a6(++_0x2b568d);}(_0x41a2,0x160));var _0x241a=function(_0x3c1d2d,_0x246a15){_0x3c1d2d=_0x3c1d2d-0x0;var _0x5ac9e5=_0x41a2[_0x3c1d2d];return _0x5ac9e5;};'use strict';var Sequelize=require(_0x241a('0x0'));module[_0x241a('0x1')]={'privilege':{'type':Sequelize[_0x241a('0x2')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x241a('0x2')]},'calleridnum':{'type':Sequelize[_0x241a('0x2')]},'calleridname':{'type':Sequelize[_0x241a('0x2')]},'connectedlinenum':{'type':Sequelize[_0x241a('0x2')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0x241a('0x2')]},'accountcode':{'type':Sequelize[_0x241a('0x2')]},'context':{'type':Sequelize[_0x241a('0x2')]},'exten':{'type':Sequelize[_0x241a('0x2')]},'priority':{'type':Sequelize[_0x241a('0x3')]},'uniqueid':{'type':Sequelize['STRING']},'linkedid':{'type':Sequelize[_0x241a('0x2')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0x241a('0x2')]},'destcalleridnum':{'type':Sequelize[_0x241a('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x241a('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x241a('0x2')]},'destlanguage':{'type':Sequelize[_0x241a('0x2')]},'destaccountcode':{'type':Sequelize[_0x241a('0x2')]},'destcontext':{'type':Sequelize[_0x241a('0x2')]},'destexten':{'type':Sequelize[_0x241a('0x2')]},'destpriority':{'type':Sequelize['INTEGER']},'destuniqueid':{'type':Sequelize[_0x241a('0x2')]},'destlinkedid':{'type':Sequelize[_0x241a('0x2')]},'dialstring':{'type':Sequelize[_0x241a('0x2')]},'dialstatus':{'type':Sequelize[_0x241a('0x2')]},'starttime':{'type':Sequelize[_0x241a('0x4')]},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x241a('0x4')]},'lastevent':{'type':Sequelize['STRING'],'comment':_0x241a('0x5')},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize[_0x241a('0x3')]},'holdtime':{'type':Sequelize[_0x241a('0x3')]},'billableseconds':{'type':Sequelize[_0x241a('0x3')]}};
\ No newline at end of file
+var _0x1b95=['STRING','INTEGER','DATE','sequelize','exports'];(function(_0x3c6b7d,_0x5f0d90){var _0x1d3ed2=function(_0x1a8f35){while(--_0x1a8f35){_0x3c6b7d['push'](_0x3c6b7d['shift']());}};_0x1d3ed2(++_0x5f0d90);}(_0x1b95,0x152));var _0x51b9=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0x1b95[_0x56482c];return _0x5aae7a;};'use strict';var Sequelize=require(_0x51b9('0x0'));module[_0x51b9('0x1')]={'privilege':{'type':Sequelize[_0x51b9('0x2')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize[_0x51b9('0x3')]},'channelstatedesc':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x51b9('0x2')]},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0x51b9('0x2')]},'accountcode':{'type':Sequelize[_0x51b9('0x2')]},'context':{'type':Sequelize[_0x51b9('0x2')]},'exten':{'type':Sequelize[_0x51b9('0x2')]},'priority':{'type':Sequelize['INTEGER']},'uniqueid':{'type':Sequelize[_0x51b9('0x2')]},'linkedid':{'type':Sequelize[_0x51b9('0x2')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0x51b9('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x51b9('0x2')]},'destcalleridnum':{'type':Sequelize[_0x51b9('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x51b9('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x51b9('0x2')]},'destlanguage':{'type':Sequelize[_0x51b9('0x2')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0x51b9('0x2')]},'destexten':{'type':Sequelize[_0x51b9('0x2')]},'destpriority':{'type':Sequelize[_0x51b9('0x3')]},'destuniqueid':{'type':Sequelize[_0x51b9('0x2')]},'destlinkedid':{'type':Sequelize['STRING']},'dialstring':{'type':Sequelize[_0x51b9('0x2')]},'dialstatus':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x51b9('0x4')]},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize['DATE']},'lastevent':{'type':Sequelize['STRING'],'comment':'called,connect,complete'},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize[_0x51b9('0x3')]},'holdtime':{'type':Sequelize[_0x51b9('0x3')]},'billableseconds':{'type':Sequelize[_0x51b9('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62bf=['index','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','add','day','filter','merge','includeAll','VoiceDialReport','findAll','rows','params','options','find','catch','create','body','destroy','describe','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','api','sendStatus','end','status','json','count','offset','limit','Content-Range','reject','save','update','then','error','stack','name','send'];(function(_0x4f1fab,_0x3d2b7b){var _0x47aa27=function(_0x51ad0b){while(--_0x51ad0b){_0x4f1fab['push'](_0x4f1fab['shift']());}};_0x47aa27(++_0x3d2b7b);}(_0x62bf,0x1b3));var _0xf62b=function(_0x184418,_0x3cad26){_0x184418=_0x184418-0x0;var _0xac1b84=_0x62bf[_0x184418];return _0xac1b84;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xf62b('0x0'));var zipdir=require(_0xf62b('0x1'));var jsonpatch=require(_0xf62b('0x2'));var rp=require('request-promise');var moment=require(_0xf62b('0x3'));var BPromise=require(_0xf62b('0x4'));var Mustache=require(_0xf62b('0x5'));var util=require(_0xf62b('0x6'));var path=require(_0xf62b('0x7'));var sox=require(_0xf62b('0x8'));var csv=require(_0xf62b('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf62b('0xa'));var squel=require(_0xf62b('0xb'));var crypto=require(_0xf62b('0xc'));var jsforce=require(_0xf62b('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf62b('0xe'));var Papa=require(_0xf62b('0xf'));var qs=require(_0xf62b('0x10'));var logger=require('../../config/logger')(_0xf62b('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4e1eeb,_0x1d6b20){_0x1d6b20=_0x1d6b20||0xcc;return function(_0x5dd9d5){if(_0x5dd9d5){return _0x4e1eeb[_0xf62b('0x12')](_0x1d6b20);}return _0x4e1eeb['status'](_0x1d6b20)[_0xf62b('0x13')]();};}function respondWithResult(_0x5c73f4,_0x3a3b07){_0x3a3b07=_0x3a3b07||0xc8;return function(_0xb64b53){if(_0xb64b53){return _0x5c73f4[_0xf62b('0x14')](_0x3a3b07)[_0xf62b('0x15')](_0xb64b53);}};}function respondWithFilteredResult(_0x274442,_0xa98a84){return function(_0x182a06){if(_0x182a06){var _0x42588f=_0x182a06[_0xf62b('0x16')],_0x196960=_0xa98a84[_0xf62b('0x17')],_0x24ce12=_0xa98a84['offset']+_0xa98a84[_0xf62b('0x18')],_0x2ceafc;if(_0x24ce12>=_0x42588f){_0x24ce12=_0x42588f;_0x2ceafc=0xc8;}else{_0x2ceafc=0xce;}_0x274442[_0xf62b('0x14')](_0x2ceafc);return _0x274442['set'](_0xf62b('0x19'),_0x196960+'-'+_0x24ce12+'/'+_0x42588f)['json'](_0x182a06);}return null;};}function patchUpdates(_0x3c4510){return function(_0x311484){try{jsonpatch['apply'](_0x311484,_0x3c4510,!![]);}catch(_0x5d0f92){return BPromise[_0xf62b('0x1a')](_0x5d0f92);}return _0x311484[_0xf62b('0x1b')]();};}function saveUpdates(_0x1de930,_0x95ffa3){return function(_0x3acc75){if(_0x3acc75){return _0x3acc75[_0xf62b('0x1c')](_0x1de930)['then'](function(_0xe6350){return _0xe6350;});}return null;};}function removeEntity(_0x14efa0,_0x1607e6){return function(_0x1badc9){if(_0x1badc9){return _0x1badc9['destroy']()[_0xf62b('0x1d')](function(){_0x14efa0[_0xf62b('0x14')](0xcc)[_0xf62b('0x13')]();});}};}function handleEntityNotFound(_0x4333a0,_0x3eb3bd){return function(_0x32f9e9){if(!_0x32f9e9){_0x4333a0[_0xf62b('0x12')](0x194);}return _0x32f9e9;};}function handleError(_0x4de1c8,_0x73523b){_0x73523b=_0x73523b||0x1f4;return function(_0x3f9c7f){logger[_0xf62b('0x1e')](_0x3f9c7f[_0xf62b('0x1f')]);if(_0x3f9c7f['name']){delete _0x3f9c7f[_0xf62b('0x20')];}_0x4de1c8[_0xf62b('0x14')](_0x73523b)[_0xf62b('0x21')](_0x3f9c7f);};}exports[_0xf62b('0x22')]=function(_0x232ed1,_0x18c8cd){var _0x1919e8={},_0x514076={},_0x15377d={'count':0x0,'rows':[]};var _0x367256=db['VoiceDialReport'][_0xf62b('0x23')];_0x514076[_0xf62b('0x24')]=_[_0xf62b('0x25')](_0x367256);var _0x4443dd={'dateStart':_0x232ed1[_0xf62b('0x26')][_0xf62b('0x27')],'dateEnd':_0x232ed1[_0xf62b('0x26')]['dateEnd']};delete _0x232ed1['query'][_0xf62b('0x27')];delete _0x232ed1['query'][_0xf62b('0x28')];_0x514076[_0xf62b('0x26')]=_[_0xf62b('0x25')](_0x232ed1[_0xf62b('0x26')]);_0x514076[_0xf62b('0x29')]=_[_0xf62b('0x2a')](_0x514076[_0xf62b('0x24')],_0x514076['query']);_0x1919e8[_0xf62b('0x2b')]=_[_0xf62b('0x2a')](_0x514076[_0xf62b('0x24')],qs[_0xf62b('0x2c')](_0x232ed1[_0xf62b('0x26')][_0xf62b('0x2c')]));_0x1919e8[_0xf62b('0x2b')]=_0x1919e8[_0xf62b('0x2b')][_0xf62b('0x2d')]?_0x1919e8[_0xf62b('0x2b')]:_0x514076['model'];if(!_0x232ed1[_0xf62b('0x26')][_0xf62b('0x2e')](_0xf62b('0x2f'))){_0x1919e8[_0xf62b('0x18')]=qs['limit'](_0x232ed1[_0xf62b('0x26')]['limit']);_0x1919e8[_0xf62b('0x17')]=qs[_0xf62b('0x17')](_0x232ed1['query']['offset']);}_0x1919e8[_0xf62b('0x30')]=qs['sort'](_0x232ed1[_0xf62b('0x26')]['sort']);_0x1919e8[_0xf62b('0x31')]=qs[_0xf62b('0x29')](_[_0xf62b('0x32')](_0x232ed1['query'],_0x514076[_0xf62b('0x29')]));if(_0x4443dd[_0xf62b('0x27')]){if(_0x4443dd[_0xf62b('0x28')]){_0x4443dd[_0xf62b('0x28')]=moment(_0x4443dd[_0xf62b('0x28')])[_0xf62b('0x33')](0x1,_0xf62b('0x34'));}else{_0x4443dd[_0xf62b('0x28')]=moment(_0x4443dd[_0xf62b('0x27')])[_0xf62b('0x33')](0x1,_0xf62b('0x34'));}_['merge'](_0x1919e8['where'],{'createdAt':{'$gte':_0x4443dd[_0xf62b('0x27')],'$lte':_0x4443dd[_0xf62b('0x28')]}});}if(_0x232ed1[_0xf62b('0x26')][_0xf62b('0x35')]){_0x1919e8[_0xf62b('0x31')]=_['merge'](_0x1919e8[_0xf62b('0x31')],{'$or':_['map'](_0x1919e8[_0xf62b('0x2b')],function(_0xdc1d02){var _0x342615={};_0x342615[_0xdc1d02]={'$like':'%'+_0x232ed1[_0xf62b('0x26')][_0xf62b('0x35')]+'%'};return _0x342615;})});}_0x1919e8=_[_0xf62b('0x36')]({},_0x1919e8,_0x232ed1['options']);var _0x384cf4={'where':_0x1919e8[_0xf62b('0x31')]};return db['VoiceDialReport']['count'](_0x384cf4)[_0xf62b('0x1d')](function(_0x128665){_0x15377d['count']=_0x128665;if(_0x232ed1[_0xf62b('0x26')][_0xf62b('0x37')]){_0x1919e8['include']=[{'all':!![]}];}return db[_0xf62b('0x38')][_0xf62b('0x39')](_0x1919e8);})['then'](function(_0x822c8b){_0x15377d[_0xf62b('0x3a')]=_0x822c8b;return _0x15377d;})[_0xf62b('0x1d')](respondWithFilteredResult(_0x18c8cd,_0x1919e8))['catch'](handleError(_0x18c8cd,null));};exports['show']=function(_0x3e2d6b,_0x55c804){var _0x2f8eda={'raw':!![],'where':{'id':_0x3e2d6b[_0xf62b('0x3b')]['id']}},_0xe696eb={};_0xe696eb['model']=_[_0xf62b('0x25')](db['VoiceDialReport']['rawAttributes']);_0xe696eb[_0xf62b('0x26')]=_[_0xf62b('0x25')](_0x3e2d6b['query']);_0xe696eb[_0xf62b('0x29')]=_[_0xf62b('0x2a')](_0xe696eb[_0xf62b('0x24')],_0xe696eb[_0xf62b('0x26')]);_0x2f8eda['attributes']=_[_0xf62b('0x2a')](_0xe696eb[_0xf62b('0x24')],qs['fields'](_0x3e2d6b[_0xf62b('0x26')][_0xf62b('0x2c')]));_0x2f8eda[_0xf62b('0x2b')]=_0x2f8eda['attributes'][_0xf62b('0x2d')]?_0x2f8eda[_0xf62b('0x2b')]:_0xe696eb[_0xf62b('0x24')];if(_0x3e2d6b[_0xf62b('0x26')][_0xf62b('0x37')]){_0x2f8eda['include']=[{'all':!![]}];}_0x2f8eda=_[_0xf62b('0x36')]({},_0x2f8eda,_0x3e2d6b[_0xf62b('0x3c')]);return db[_0xf62b('0x38')][_0xf62b('0x3d')](_0x2f8eda)[_0xf62b('0x1d')](handleEntityNotFound(_0x55c804,null))[_0xf62b('0x1d')](respondWithResult(_0x55c804,null))[_0xf62b('0x3e')](handleError(_0x55c804,null));};exports[_0xf62b('0x3f')]=function(_0x4f3451,_0x4e0b98){return db[_0xf62b('0x38')][_0xf62b('0x3f')](_0x4f3451[_0xf62b('0x40')],{})['then'](respondWithResult(_0x4e0b98,0xc9))[_0xf62b('0x3e')](handleError(_0x4e0b98,null));};exports[_0xf62b('0x1c')]=function(_0x3210bd,_0x150a9d){if(_0x3210bd[_0xf62b('0x40')]['id']){delete _0x3210bd['body']['id'];}return db['VoiceDialReport']['find']({'where':{'id':_0x3210bd['params']['id']}})['then'](handleEntityNotFound(_0x150a9d,null))[_0xf62b('0x1d')](saveUpdates(_0x3210bd[_0xf62b('0x40')],null))[_0xf62b('0x1d')](respondWithResult(_0x150a9d,null))[_0xf62b('0x3e')](handleError(_0x150a9d,null));};exports[_0xf62b('0x41')]=function(_0x57391d,_0x21c678){return db['VoiceDialReport'][_0xf62b('0x3d')]({'where':{'id':_0x57391d[_0xf62b('0x3b')]['id']}})['then'](handleEntityNotFound(_0x21c678,null))[_0xf62b('0x1d')](removeEntity(_0x21c678,null))[_0xf62b('0x3e')](handleError(_0x21c678,null));};exports['describe']=function(_0x53b826,_0xbe4a03){return db[_0xf62b('0x38')][_0xf62b('0x42')]()[_0xf62b('0x1d')](respondWithResult(_0xbe4a03,null))[_0xf62b('0x3e')](handleError(_0xbe4a03,null));};
\ No newline at end of file
+var _0x1561=['rawAttributes','find','catch','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','jsforce','querystring','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','destroy','then','name','send','index','VoiceDialReport','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','add','day','merge','filter','map','options','count','includeAll','include','findAll','show','params'];(function(_0x2ddd52,_0x4e3b17){var _0x4bb4ec=function(_0x41905f){while(--_0x41905f){_0x2ddd52['push'](_0x2ddd52['shift']());}};_0x4bb4ec(++_0x4e3b17);}(_0x1561,0x116));var _0x1156=function(_0x385527,_0x2a1124){_0x385527=_0x385527-0x0;var _0x330c13=_0x1561[_0x385527];return _0x330c13;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1156('0x0'));var rimraf=require(_0x1156('0x1'));var zipdir=require(_0x1156('0x2'));var jsonpatch=require(_0x1156('0x3'));var rp=require(_0x1156('0x4'));var moment=require(_0x1156('0x5'));var BPromise=require(_0x1156('0x6'));var Mustache=require(_0x1156('0x7'));var util=require(_0x1156('0x8'));var path=require(_0x1156('0x9'));var sox=require('sox');var csv=require(_0x1156('0xa'));var ejs=require(_0x1156('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1156('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x1156('0xa'));var querystring=require(_0x1156('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x1156('0xe'))(_0x1156('0xf'));var utils=require(_0x1156('0x10'));var config=require(_0x1156('0x11'));var db=require(_0x1156('0x12'))['db'];function respondWithStatusCode(_0x3775f2,_0x520098){_0x520098=_0x520098||0xcc;return function(_0xf8f721){if(_0xf8f721){return _0x3775f2[_0x1156('0x13')](_0x520098);}return _0x3775f2[_0x1156('0x14')](_0x520098)[_0x1156('0x15')]();};}function respondWithResult(_0x4bffd9,_0xd48642){_0xd48642=_0xd48642||0xc8;return function(_0x55b91b){if(_0x55b91b){return _0x4bffd9['status'](_0xd48642)[_0x1156('0x16')](_0x55b91b);}};}function respondWithFilteredResult(_0x12e3b6,_0x59874e){return function(_0x1a429b){if(_0x1a429b){var _0x3d4e95=_0x1a429b['count'],_0x143ae8=_0x59874e['offset'],_0x1cdb4f=_0x59874e[_0x1156('0x17')]+_0x59874e[_0x1156('0x18')],_0xc743fa;if(_0x1cdb4f>=_0x3d4e95){_0x1cdb4f=_0x3d4e95;_0xc743fa=0xc8;}else{_0xc743fa=0xce;}_0x12e3b6[_0x1156('0x14')](_0xc743fa);return _0x12e3b6['set'](_0x1156('0x19'),_0x143ae8+'-'+_0x1cdb4f+'/'+_0x3d4e95)[_0x1156('0x16')](_0x1a429b);}return null;};}function patchUpdates(_0x30cd9d){return function(_0x383536){try{jsonpatch[_0x1156('0x1a')](_0x383536,_0x30cd9d,!![]);}catch(_0x3d7208){return BPromise[_0x1156('0x1b')](_0x3d7208);}return _0x383536[_0x1156('0x1c')]();};}function saveUpdates(_0x4794c3,_0x223f99){return function(_0x5f3e05){if(_0x5f3e05){return _0x5f3e05[_0x1156('0x1d')](_0x4794c3)['then'](function(_0x4c2b20){return _0x4c2b20;});}return null;};}function removeEntity(_0x3e5a30,_0x9e2874){return function(_0x5d2b03){if(_0x5d2b03){return _0x5d2b03[_0x1156('0x1e')]()[_0x1156('0x1f')](function(){_0x3e5a30[_0x1156('0x14')](0xcc)[_0x1156('0x15')]();});}};}function handleEntityNotFound(_0x332c1c,_0x28acfc){return function(_0x50ac4f){if(!_0x50ac4f){_0x332c1c[_0x1156('0x13')](0x194);}return _0x50ac4f;};}function handleError(_0x10a4ba,_0x112d19){_0x112d19=_0x112d19||0x1f4;return function(_0x4e3281){logger['error'](_0x4e3281['stack']);if(_0x4e3281[_0x1156('0x20')]){delete _0x4e3281[_0x1156('0x20')];}_0x10a4ba[_0x1156('0x14')](_0x112d19)[_0x1156('0x21')](_0x4e3281);};}exports[_0x1156('0x22')]=function(_0x5d6729,_0x17f937){var _0x1efe5a={},_0xa24d6a={},_0x226bbb={'count':0x0,'rows':[]};var _0xe334df=db[_0x1156('0x23')]['rawAttributes'];_0xa24d6a[_0x1156('0x24')]=_['keys'](_0xe334df);var _0x35a89b={'dateStart':_0x5d6729[_0x1156('0x25')][_0x1156('0x26')],'dateEnd':_0x5d6729[_0x1156('0x25')][_0x1156('0x27')]};delete _0x5d6729['query'][_0x1156('0x26')];delete _0x5d6729[_0x1156('0x25')][_0x1156('0x27')];_0xa24d6a['query']=_[_0x1156('0x28')](_0x5d6729['query']);_0xa24d6a[_0x1156('0x29')]=_[_0x1156('0x2a')](_0xa24d6a[_0x1156('0x24')],_0xa24d6a[_0x1156('0x25')]);_0x1efe5a[_0x1156('0x2b')]=_[_0x1156('0x2a')](_0xa24d6a['model'],qs['fields'](_0x5d6729[_0x1156('0x25')][_0x1156('0x2c')]));_0x1efe5a[_0x1156('0x2b')]=_0x1efe5a[_0x1156('0x2b')][_0x1156('0x2d')]?_0x1efe5a[_0x1156('0x2b')]:_0xa24d6a[_0x1156('0x24')];if(!_0x5d6729[_0x1156('0x25')][_0x1156('0x2e')](_0x1156('0x2f'))){_0x1efe5a[_0x1156('0x18')]=qs['limit'](_0x5d6729[_0x1156('0x25')][_0x1156('0x18')]);_0x1efe5a[_0x1156('0x17')]=qs[_0x1156('0x17')](_0x5d6729[_0x1156('0x25')][_0x1156('0x17')]);}_0x1efe5a['order']=qs[_0x1156('0x30')](_0x5d6729['query']['sort']);_0x1efe5a[_0x1156('0x31')]=qs[_0x1156('0x29')](_['pick'](_0x5d6729[_0x1156('0x25')],_0xa24d6a[_0x1156('0x29')]));if(_0x35a89b[_0x1156('0x26')]){if(_0x35a89b['dateEnd']){_0x35a89b[_0x1156('0x27')]=moment(_0x35a89b[_0x1156('0x27')])[_0x1156('0x32')](0x1,_0x1156('0x33'));}else{_0x35a89b[_0x1156('0x27')]=moment(_0x35a89b[_0x1156('0x26')])[_0x1156('0x32')](0x1,_0x1156('0x33'));}_[_0x1156('0x34')](_0x1efe5a[_0x1156('0x31')],{'createdAt':{'$gte':_0x35a89b[_0x1156('0x26')],'$lte':_0x35a89b['dateEnd']}});}if(_0x5d6729['query'][_0x1156('0x35')]){_0x1efe5a[_0x1156('0x31')]=_[_0x1156('0x34')](_0x1efe5a[_0x1156('0x31')],{'$or':_[_0x1156('0x36')](_0x1efe5a['attributes'],function(_0x1c846d){var _0x44729e={};_0x44729e[_0x1c846d]={'$like':'%'+_0x5d6729[_0x1156('0x25')]['filter']+'%'};return _0x44729e;})});}_0x1efe5a=_[_0x1156('0x34')]({},_0x1efe5a,_0x5d6729[_0x1156('0x37')]);var _0x420f64={'where':_0x1efe5a[_0x1156('0x31')]};return db['VoiceDialReport']['count'](_0x420f64)[_0x1156('0x1f')](function(_0x2f7420){_0x226bbb[_0x1156('0x38')]=_0x2f7420;if(_0x5d6729[_0x1156('0x25')][_0x1156('0x39')]){_0x1efe5a[_0x1156('0x3a')]=[{'all':!![]}];}return db[_0x1156('0x23')][_0x1156('0x3b')](_0x1efe5a);})['then'](function(_0x388fa7){_0x226bbb['rows']=_0x388fa7;return _0x226bbb;})['then'](respondWithFilteredResult(_0x17f937,_0x1efe5a))['catch'](handleError(_0x17f937,null));};exports[_0x1156('0x3c')]=function(_0x2e2a22,_0x32a668){var _0x5550db={'raw':!![],'where':{'id':_0x2e2a22[_0x1156('0x3d')]['id']}},_0x5f6023={};_0x5f6023[_0x1156('0x24')]=_[_0x1156('0x28')](db[_0x1156('0x23')][_0x1156('0x3e')]);_0x5f6023[_0x1156('0x25')]=_['keys'](_0x2e2a22[_0x1156('0x25')]);_0x5f6023['filters']=_[_0x1156('0x2a')](_0x5f6023[_0x1156('0x24')],_0x5f6023[_0x1156('0x25')]);_0x5550db[_0x1156('0x2b')]=_['intersection'](_0x5f6023[_0x1156('0x24')],qs[_0x1156('0x2c')](_0x2e2a22['query'][_0x1156('0x2c')]));_0x5550db[_0x1156('0x2b')]=_0x5550db[_0x1156('0x2b')][_0x1156('0x2d')]?_0x5550db[_0x1156('0x2b')]:_0x5f6023['model'];if(_0x2e2a22[_0x1156('0x25')]['includeAll']){_0x5550db[_0x1156('0x3a')]=[{'all':!![]}];}_0x5550db=_[_0x1156('0x34')]({},_0x5550db,_0x2e2a22[_0x1156('0x37')]);return db['VoiceDialReport'][_0x1156('0x3f')](_0x5550db)['then'](handleEntityNotFound(_0x32a668,null))[_0x1156('0x1f')](respondWithResult(_0x32a668,null))[_0x1156('0x40')](handleError(_0x32a668,null));};exports[_0x1156('0x41')]=function(_0x1f5f9a,_0x2cc4a3){return db[_0x1156('0x23')][_0x1156('0x41')](_0x1f5f9a[_0x1156('0x42')],{})[_0x1156('0x1f')](respondWithResult(_0x2cc4a3,0xc9))[_0x1156('0x40')](handleError(_0x2cc4a3,null));};exports['update']=function(_0x2b1e74,_0x8e15f2){if(_0x2b1e74['body']['id']){delete _0x2b1e74[_0x1156('0x42')]['id'];}return db[_0x1156('0x23')]['find']({'where':{'id':_0x2b1e74[_0x1156('0x3d')]['id']}})['then'](handleEntityNotFound(_0x8e15f2,null))[_0x1156('0x1f')](saveUpdates(_0x2b1e74['body'],null))['then'](respondWithResult(_0x8e15f2,null))['catch'](handleError(_0x8e15f2,null));};exports[_0x1156('0x1e')]=function(_0x4befec,_0x4555ee){return db[_0x1156('0x23')]['find']({'where':{'id':_0x4befec[_0x1156('0x3d')]['id']}})[_0x1156('0x1f')](handleEntityNotFound(_0x4555ee,null))['then'](removeEntity(_0x4555ee,null))['catch'](handleError(_0x4555ee,null));};exports[_0x1156('0x43')]=function(_0x401645,_0x2ade42){return db['VoiceDialReport'][_0x1156('0x43')]()[_0x1156('0x1f')](respondWithResult(_0x2ade42,null))[_0x1156('0x40')](handleError(_0x2ade42,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3cdd=['report_dial','lodash','util','../../config/logger','api','request-promise','./voiceDialReport.attributes','exports','VoiceDialReport'];(function(_0x156b5e,_0x489d1e){var _0x5c8fa2=function(_0x4dbd77){while(--_0x4dbd77){_0x156b5e['push'](_0x156b5e['shift']());}};_0x5c8fa2(++_0x489d1e);}(_0x3cdd,0xb5));var _0xd3cd=function(_0x2002bf,_0x33a155){_0x2002bf=_0x2002bf-0x0;var _0x1f18f3=_0x3cdd[_0x2002bf];return _0x1f18f3;};'use strict';var _=require(_0xd3cd('0x0'));var util=require(_0xd3cd('0x1'));var logger=require(_0xd3cd('0x2'))(_0xd3cd('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd3cd('0x4'));var attributes=require(_0xd3cd('0x5'));module[_0xd3cd('0x6')]=function(_0x2a50fb,_0x51a1b0){return _0x2a50fb['define'](_0xd3cd('0x7'),attributes,{'tableName':_0xd3cd('0x8'),'paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1337=['report_dial','uniqueid','lodash','../../config/logger','api','moment','bluebird','exports','define','VoiceDialReport'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x1337,0x1ce));var _0x7133=function(_0x4dd8cd,_0x486a8c){_0x4dd8cd=_0x4dd8cd-0x0;var _0x2cd2e4=_0x1337[_0x4dd8cd];return _0x2cd2e4;};'use strict';var _=require(_0x7133('0x0'));var util=require('util');var logger=require(_0x7133('0x1'))(_0x7133('0x2'));var moment=require(_0x7133('0x3'));var BPromise=require(_0x7133('0x4'));var rp=require('request-promise');var attributes=require('./voiceDialReport.attributes');module[_0x7133('0x5')]=function(_0x5c2c6e,_0x147148){return _0x5c2c6e[_0x7133('0x6')](_0x7133('0x7'),attributes,{'tableName':_0x7133('0x8'),'paranoid':![],'indexes':[{'fields':[_0x7133('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7916=['raw','then','UpdateVoiceDialReport','update','limit','catch','lodash','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','info','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceDialReport,\x20%s,\x20%s','message','CreateVoiceDialReport','VoiceDialReport','create','body','options'];(function(_0x4a8b9e,_0x41d7bf){var _0xb34ef7=function(_0x3ab1fe){while(--_0x3ab1fe){_0x4a8b9e['push'](_0x4a8b9e['shift']());}};_0xb34ef7(++_0x41d7bf);}(_0x7916,0x128));var _0x6791=function(_0x34ccc9,_0x2c3b78){_0x34ccc9=_0x34ccc9-0x0;var _0x578733=_0x7916[_0x34ccc9];return _0x578733;};'use strict';var _=require(_0x6791('0x0'));var util=require('util');var moment=require(_0x6791('0x1'));var BPromise=require(_0x6791('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x6791('0x3'))['db'];var utils=require(_0x6791('0x4'));var logger=require(_0x6791('0x5'))(_0x6791('0x6'));var config=require('../../config/environment');var jayson=require(_0x6791('0x7'));var client=jayson['client'][_0x6791('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3277a8,_0x5ad8c0,_0x8b85ff){return new BPromise(function(_0x5d2118,_0x2b240c){return client['request'](_0x3277a8,_0x8b85ff)['then'](function(_0x2a9915){logger[_0x6791('0x9')]('VoiceDialReport,\x20%s,\x20%s',_0x5ad8c0,_0x6791('0xa'));logger[_0x6791('0xb')](_0x6791('0xc'),_0x5ad8c0,'request\x20sent',JSON[_0x6791('0xd')](_0x2a9915));if(_0x2a9915[_0x6791('0xe')]){if(_0x2a9915[_0x6791('0xe')][_0x6791('0xf')]===0x1f4){logger[_0x6791('0xe')](_0x6791('0x10'),_0x5ad8c0,_0x2a9915[_0x6791('0xe')][_0x6791('0x11')]);return _0x2b240c(_0x2a9915[_0x6791('0xe')][_0x6791('0x11')]);}logger[_0x6791('0xe')]('VoiceDialReport,\x20%s,\x20%s',_0x5ad8c0,_0x2a9915['error'][_0x6791('0x11')]);return _0x5d2118(_0x2a9915['error'][_0x6791('0x11')]);}else{logger['info'](_0x6791('0x10'),_0x5ad8c0,_0x6791('0xa'));_0x5d2118(_0x2a9915['result'][_0x6791('0x11')]);}})['catch'](function(_0x3856ac){logger[_0x6791('0xe')]('VoiceDialReport,\x20%s,\x20%s',_0x5ad8c0,_0x3856ac);_0x2b240c(_0x3856ac);});});}exports[_0x6791('0x12')]=function(_0x36d7a1){var _0x5bec14=this;return new Promise(function(_0x1872f5,_0x4d8a79){return db[_0x6791('0x13')][_0x6791('0x14')](_0x36d7a1[_0x6791('0x15')],{'raw':_0x36d7a1[_0x6791('0x16')]?_0x36d7a1[_0x6791('0x16')][_0x6791('0x17')]===undefined?!![]:![]:!![]})[_0x6791('0x18')](function(_0x581d51){logger[_0x6791('0x9')](_0x6791('0x12'),_0x36d7a1);logger['debug'](_0x6791('0x12'),_0x36d7a1,JSON[_0x6791('0xd')](_0x581d51));_0x1872f5(_0x581d51);})['catch'](function(_0x17f200){logger[_0x6791('0xe')](_0x6791('0x12'),_0x17f200[_0x6791('0x11')],_0x36d7a1);_0x4d8a79(_0x5bec14['error'](0x1f4,_0x17f200[_0x6791('0x11')]));});});};exports[_0x6791('0x19')]=function(_0x4a8717){var _0x53bb44=this;return new Promise(function(_0x4b23bc,_0x372dae){return db['VoiceDialReport'][_0x6791('0x1a')](_0x4a8717['body'],{'raw':_0x4a8717['options']?_0x4a8717['options'][_0x6791('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4a8717[_0x6791('0x16')]?_0x4a8717[_0x6791('0x16')]['where']||null:null,'attributes':_0x4a8717[_0x6791('0x16')]?_0x4a8717[_0x6791('0x16')]['attributes']||null:null,'limit':_0x4a8717[_0x6791('0x16')]?_0x4a8717['options'][_0x6791('0x1b')]||null:null})['then'](function(_0x4fc5d5){logger[_0x6791('0x9')]('UpdateVoiceDialReport',_0x4a8717);logger[_0x6791('0xb')](_0x6791('0x19'),_0x4a8717,JSON['stringify'](_0x4fc5d5));_0x4b23bc(_0x4fc5d5);})[_0x6791('0x1c')](function(_0x273f79){logger[_0x6791('0xe')](_0x6791('0x19'),_0x273f79['message'],_0x4a8717);_0x372dae(_0x53bb44['error'](0x1f4,_0x273f79[_0x6791('0x11')]));});});};
\ No newline at end of file
+var _0xb43b=['error','message','result','catch','CreateVoiceDialReport','create','body','options','info','VoiceDialReport','update','raw','where','attributes','limit','UpdateVoiceDialReport','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x1cc190,_0xa3668){var _0x2273c5=function(_0x4f0d54){while(--_0x4f0d54){_0x1cc190['push'](_0x1cc190['shift']());}};_0x2273c5(++_0xa3668);}(_0xb43b,0xbf));var _0xbb43=function(_0x4d8544,_0x26c341){_0x4d8544=_0x4d8544-0x0;var _0x5f1830=_0xb43b[_0x4d8544];return _0x5f1830;};'use strict';var _=require(_0xbb43('0x0'));var util=require('util');var moment=require(_0xbb43('0x1'));var BPromise=require(_0xbb43('0x2'));var rs=require(_0xbb43('0x3'));var fs=require('fs');var Redis=require(_0xbb43('0x4'));var db=require(_0xbb43('0x5'))['db'];var utils=require(_0xbb43('0x6'));var logger=require(_0xbb43('0x7'))(_0xbb43('0x8'));var config=require(_0xbb43('0x9'));var jayson=require(_0xbb43('0xa'));var client=jayson[_0xbb43('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x16fc1c,_0x4a070c,_0x54806a){return new BPromise(function(_0x33f9a8,_0x120d67){return client[_0xbb43('0xc')](_0x16fc1c,_0x54806a)[_0xbb43('0xd')](function(_0x117f4d){logger['info'](_0xbb43('0xe'),_0x4a070c,_0xbb43('0xf'));logger[_0xbb43('0x10')](_0xbb43('0x11'),_0x4a070c,'request\x20sent',JSON[_0xbb43('0x12')](_0x117f4d));if(_0x117f4d[_0xbb43('0x13')]){if(_0x117f4d['error']['code']===0x1f4){logger['error'](_0xbb43('0xe'),_0x4a070c,_0x117f4d['error'][_0xbb43('0x14')]);return _0x120d67(_0x117f4d['error'][_0xbb43('0x14')]);}logger[_0xbb43('0x13')](_0xbb43('0xe'),_0x4a070c,_0x117f4d[_0xbb43('0x13')][_0xbb43('0x14')]);return _0x33f9a8(_0x117f4d['error'][_0xbb43('0x14')]);}else{logger['info'](_0xbb43('0xe'),_0x4a070c,_0xbb43('0xf'));_0x33f9a8(_0x117f4d[_0xbb43('0x15')][_0xbb43('0x14')]);}})[_0xbb43('0x16')](function(_0x126f61){logger[_0xbb43('0x13')](_0xbb43('0xe'),_0x4a070c,_0x126f61);_0x120d67(_0x126f61);});});}exports[_0xbb43('0x17')]=function(_0x4c223b){var _0xe15a1b=this;return new Promise(function(_0x4cb0b2,_0x78df91){return db['VoiceDialReport'][_0xbb43('0x18')](_0x4c223b[_0xbb43('0x19')],{'raw':_0x4c223b[_0xbb43('0x1a')]?_0x4c223b[_0xbb43('0x1a')]['raw']===undefined?!![]:![]:!![]})[_0xbb43('0xd')](function(_0x6cdc26){logger[_0xbb43('0x1b')](_0xbb43('0x17'),_0x4c223b);logger[_0xbb43('0x10')](_0xbb43('0x17'),_0x4c223b,JSON[_0xbb43('0x12')](_0x6cdc26));_0x4cb0b2(_0x6cdc26);})[_0xbb43('0x16')](function(_0x3409d0){logger[_0xbb43('0x13')](_0xbb43('0x17'),_0x3409d0[_0xbb43('0x14')],_0x4c223b);_0x78df91(_0xe15a1b[_0xbb43('0x13')](0x1f4,_0x3409d0[_0xbb43('0x14')]));});});};exports['UpdateVoiceDialReport']=function(_0x28b3e4){var _0x326864=this;return new Promise(function(_0x54a9aa,_0x464b4a){return db[_0xbb43('0x1c')][_0xbb43('0x1d')](_0x28b3e4['body'],{'raw':_0x28b3e4['options']?_0x28b3e4[_0xbb43('0x1a')][_0xbb43('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x28b3e4['options']?_0x28b3e4['options'][_0xbb43('0x1f')]||null:null,'attributes':_0x28b3e4[_0xbb43('0x1a')]?_0x28b3e4[_0xbb43('0x1a')][_0xbb43('0x20')]||null:null,'limit':_0x28b3e4[_0xbb43('0x1a')]?_0x28b3e4[_0xbb43('0x1a')][_0xbb43('0x21')]||null:null})[_0xbb43('0xd')](function(_0x5d613c){logger[_0xbb43('0x1b')](_0xbb43('0x22'),_0x28b3e4);logger[_0xbb43('0x10')](_0xbb43('0x22'),_0x28b3e4,JSON[_0xbb43('0x12')](_0x5d613c));_0x54a9aa(_0x5d613c);})[_0xbb43('0x16')](function(_0x2860d8){logger['error'](_0xbb43('0x22'),_0x2860d8[_0xbb43('0x14')],_0x28b3e4);_0x464b4a(_0x326864[_0xbb43('0x13')](0x1f4,_0x2860d8['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7d1=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceExtension.controller','get','isAuthenticated','index','/:id','show','post','create','/:id/applications','addApplications','put','delete','destroy','multer','util','path','connect-timeout','express'];(function(_0x2e4cbf,_0x8763d3){var _0x52840f=function(_0x31b93f){while(--_0x31b93f){_0x2e4cbf['push'](_0x2e4cbf['shift']());}};_0x52840f(++_0x8763d3);}(_0xd7d1,0x1b3));var _0x1d7d=function(_0xca1b2b,_0x3a3874){_0xca1b2b=_0xca1b2b-0x0;var _0x236e93=_0xd7d1[_0xca1b2b];return _0x236e93;};'use strict';var multer=require(_0x1d7d('0x0'));var util=require(_0x1d7d('0x1'));var path=require(_0x1d7d('0x2'));var timeout=require(_0x1d7d('0x3'));var express=require(_0x1d7d('0x4'));var router=express[_0x1d7d('0x5')]();var auth=require(_0x1d7d('0x6'));var interaction=require(_0x1d7d('0x7'));var config=require(_0x1d7d('0x8'));var controller=require(_0x1d7d('0x9'));router[_0x1d7d('0xa')]('/',auth[_0x1d7d('0xb')](),controller[_0x1d7d('0xc')]);router['get'](_0x1d7d('0xd'),auth[_0x1d7d('0xb')](),controller[_0x1d7d('0xe')]);router[_0x1d7d('0xf')]('/',auth[_0x1d7d('0xb')](),controller[_0x1d7d('0x10')]);router[_0x1d7d('0xf')](_0x1d7d('0x11'),auth[_0x1d7d('0xb')](),controller[_0x1d7d('0x12')]);router[_0x1d7d('0x13')]('/:id',auth[_0x1d7d('0xb')](),controller['update']);router[_0x1d7d('0x14')](_0x1d7d('0xd'),auth[_0x1d7d('0xb')](),controller[_0x1d7d('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0xa321=['connect-timeout','Router','../../components/auth/service','../../config/environment','./voiceExtension.controller','get','isAuthenticated','show','post','create','/:id/applications','put','/:id','update','delete','destroy','exports','multer','util','path'];(function(_0x31642b,_0x10df2c){var _0x1f68c6=function(_0x252ca1){while(--_0x252ca1){_0x31642b['push'](_0x31642b['shift']());}};_0x1f68c6(++_0x10df2c);}(_0xa321,0x9d));var _0x1a32=function(_0x5f584a,_0x47f064){_0x5f584a=_0x5f584a-0x0;var _0x3788d9=_0xa321[_0x5f584a];return _0x3788d9;};'use strict';var multer=require(_0x1a32('0x0'));var util=require(_0x1a32('0x1'));var path=require(_0x1a32('0x2'));var timeout=require(_0x1a32('0x3'));var express=require('express');var router=express[_0x1a32('0x4')]();var auth=require(_0x1a32('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x1a32('0x6'));var controller=require(_0x1a32('0x7'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x1a32('0x8')]('/:id',auth[_0x1a32('0x9')](),controller[_0x1a32('0xa')]);router[_0x1a32('0xb')]('/',auth[_0x1a32('0x9')](),controller[_0x1a32('0xc')]);router['post'](_0x1a32('0xd'),auth[_0x1a32('0x9')](),controller['addApplications']);router[_0x1a32('0xe')](_0x1a32('0xf'),auth[_0x1a32('0x9')](),controller[_0x1a32('0x10')]);router[_0x1a32('0x11')](_0x1a32('0xf'),auth['isAuthenticated'](),controller[_0x1a32('0x12')]);module[_0x1a32('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe51b=['outbound-fax','system','any','*,*,*,*','INTEGER','BOOLEAN','wav','sequelize','exports','STRING','compositeIndex','NoOp','inbound','outbound','internal','inbound-fax'];(function(_0x4903eb,_0x51acdc){var _0x202cf2=function(_0x14376f){while(--_0x14376f){_0x4903eb['push'](_0x4903eb['shift']());}};_0x202cf2(++_0x51acdc);}(_0xe51b,0x177));var _0xbe51=function(_0x25d4b5,_0x478a02){_0x25d4b5=_0x25d4b5-0x0;var _0x33d2f5=_0xe51b[_0x25d4b5];return _0x33d2f5;};'use strict';var Sequelize=require(_0xbe51('0x0'));module[_0xbe51('0x1')]={'context':{'type':Sequelize[_0xbe51('0x2')],'allowNull':![],'unique':_0xbe51('0x3'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0xbe51('0x2')],'allowNull':![],'unique':_0xbe51('0x3')},'priority':{'type':Sequelize[_0xbe51('0x2')],'allowNull':![],'defaultValue':'1','unique':_0xbe51('0x3')},'tag':{'type':Sequelize[_0xbe51('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0xbe51('0x2')],'allowNull':![],'defaultValue':_0xbe51('0x4')},'appdata':{'type':Sequelize[_0xbe51('0x2')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize['ENUM'](_0xbe51('0x5'),_0xbe51('0x6'),_0xbe51('0x7'),_0xbe51('0x8'),_0xbe51('0x9'),_0xbe51('0xa'),_0xbe51('0xb')),'allowNull':![]},'description':{'type':Sequelize[_0xbe51('0x2')]},'interval':{'type':Sequelize[_0xbe51('0x2')],'allowNull':![],'defaultValue':_0xbe51('0xc')},'IntervalId':{'type':Sequelize[_0xbe51('0xd')]},'isApp':{'type':Sequelize[_0xbe51('0xe')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize['STRING'],'defaultValue':null},'callerID':{'type':Sequelize[_0xbe51('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0xbe51('0xe')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0xbe51('0xd')]},'recordingFormat':{'type':Sequelize[_0xbe51('0x2')],'defaultValue':_0xbe51('0xf')},'answer':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xdaa4=['system','any','*,*,*,*','INTEGER','BOOLEAN','sequelize','compositeIndex','STRING','ENUM','inbound','outbound','internal'];(function(_0x8b73e0,_0x18fae3){var _0x44699=function(_0x57d6de){while(--_0x57d6de){_0x8b73e0['push'](_0x8b73e0['shift']());}};_0x44699(++_0x18fae3);}(_0xdaa4,0x155));var _0x4daa=function(_0x3e7ae6,_0x2e14d9){_0x3e7ae6=_0x3e7ae6-0x0;var _0xdfaa19=_0xdaa4[_0x3e7ae6];return _0xdfaa19;};'use strict';var Sequelize=require(_0x4daa('0x0'));module['exports']={'context':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x4daa('0x1'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x4daa('0x2')],'allowNull':![],'unique':_0x4daa('0x1')},'priority':{'type':Sequelize[_0x4daa('0x2')],'allowNull':![],'defaultValue':'1','unique':_0x4daa('0x1')},'tag':{'type':Sequelize[_0x4daa('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0x4daa('0x2')],'allowNull':![],'defaultValue':'NoOp'},'appdata':{'type':Sequelize[_0x4daa('0x2')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x4daa('0x3')](_0x4daa('0x4'),_0x4daa('0x5'),_0x4daa('0x6'),'inbound-fax','outbound-fax',_0x4daa('0x7'),_0x4daa('0x8')),'allowNull':![]},'description':{'type':Sequelize[_0x4daa('0x2')]},'interval':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x4daa('0x9')},'IntervalId':{'type':Sequelize[_0x4daa('0xa')]},'isApp':{'type':Sequelize[_0x4daa('0xb')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x4daa('0x2')],'defaultValue':null},'callerID':{'type':Sequelize[_0x4daa('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0x4daa('0xb')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x4daa('0xa')]},'recordingFormat':{'type':Sequelize[_0x4daa('0x2')],'defaultValue':'wav'},'answer':{'type':Sequelize[_0x4daa('0xb')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x889a=['../../config/environment','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','count','offset','limit','apply','reject','save','update','then','destroy','name','index','VoiceExtension','rawAttributes','keys','query','dateStart','dateEnd','filters','model','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','map','include','catch','show','params','includeAll','options','find','create','body','type','exten','concat','context','description','recordingFormat','cutdigits','addApplications','findOne','sequelize','transaction','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','to-csv','papaparse','../../components/parsers/qs','api'];(function(_0x4e21ba,_0x18097f){var _0x55b94b=function(_0x3b9add){while(--_0x3b9add){_0x4e21ba['push'](_0x4e21ba['shift']());}};_0x55b94b(++_0x18097f);}(_0x889a,0x193));var _0xa889=function(_0x4e5797,_0x47fd77){_0x4e5797=_0x4e5797-0x0;var _0x36e778=_0x889a[_0x4e5797];return _0x36e778;};'use strict';var pdf=require(_0xa889('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa889('0x1'));var zipdir=require(_0xa889('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa889('0x3'));var moment=require(_0xa889('0x4'));var BPromise=require(_0xa889('0x5'));var Mustache=require(_0xa889('0x6'));var util=require(_0xa889('0x7'));var path=require('path');var sox=require(_0xa889('0x8'));var csv=require('to-csv');var ejs=require(_0xa889('0x9'));var fs=require('fs');var _=require(_0xa889('0xa'));var squel=require(_0xa889('0xb'));var crypto=require(_0xa889('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xa889('0xd'));var querystring=require('querystring');var Papa=require(_0xa889('0xe'));var qs=require(_0xa889('0xf'));var logger=require('../../config/logger')(_0xa889('0x10'));var utils=require('../../config/utils');var config=require(_0xa889('0x11'));var db=require('../../mysqldb')['db'];config[_0xa889('0x12')]=_[_0xa889('0x13')](config[_0xa889('0x12')],{'host':'localhost','port':0x18eb});var socket=require(_0xa889('0x14'))(config[_0xa889('0x12')]);require(_0xa889('0x15'))[_0xa889('0x16')](socket);function respondWithStatusCode(_0x48b142,_0x40cdeb){_0x40cdeb=_0x40cdeb||0xcc;return function(_0x175664){if(_0x175664){return _0x48b142[_0xa889('0x17')](_0x40cdeb);}return _0x48b142[_0xa889('0x18')](_0x40cdeb)[_0xa889('0x19')]();};}function respondWithResult(_0x48549f,_0x59a290){_0x59a290=_0x59a290||0xc8;return function(_0x3d5f94){if(_0x3d5f94){return _0x48549f['status'](_0x59a290)[_0xa889('0x1a')](_0x3d5f94);}};}function respondWithFilteredResult(_0x1106ac,_0x4c5c98){return function(_0x15698f){if(_0x15698f){var _0x3e4f4c=_0x15698f[_0xa889('0x1b')],_0x34b32a=_0x4c5c98[_0xa889('0x1c')],_0x4e3e54=_0x4c5c98[_0xa889('0x1c')]+_0x4c5c98[_0xa889('0x1d')],_0x45d656;if(_0x4e3e54>=_0x3e4f4c){_0x4e3e54=_0x3e4f4c;_0x45d656=0xc8;}else{_0x45d656=0xce;}_0x1106ac[_0xa889('0x18')](_0x45d656);return _0x1106ac['set']('Content-Range',_0x34b32a+'-'+_0x4e3e54+'/'+_0x3e4f4c)[_0xa889('0x1a')](_0x15698f);}return null;};}function patchUpdates(_0x5c13d3){return function(_0xcab247){try{jsonpatch[_0xa889('0x1e')](_0xcab247,_0x5c13d3,!![]);}catch(_0x5e7b3b){return BPromise[_0xa889('0x1f')](_0x5e7b3b);}return _0xcab247[_0xa889('0x20')]();};}function saveUpdates(_0x2993d8,_0xc3d0b1){return function(_0x3a4106){if(_0x3a4106){return _0x3a4106[_0xa889('0x21')](_0x2993d8)[_0xa889('0x22')](function(_0x11c989){return _0x11c989;});}return null;};}function removeEntity(_0x422fc1,_0x221a6f){return function(_0x2b3ff3){if(_0x2b3ff3){return _0x2b3ff3[_0xa889('0x23')]()[_0xa889('0x22')](function(){_0x422fc1[_0xa889('0x18')](0xcc)[_0xa889('0x19')]();});}};}function handleEntityNotFound(_0x380858,_0x4aeb4b){return function(_0x165c75){if(!_0x165c75){_0x380858[_0xa889('0x17')](0x194);}return _0x165c75;};}function handleError(_0x11ad53,_0x584e5a){_0x584e5a=_0x584e5a||0x1f4;return function(_0x18e901){logger['error'](_0x18e901['stack']);if(_0x18e901[_0xa889('0x24')]){delete _0x18e901[_0xa889('0x24')];}_0x11ad53[_0xa889('0x18')](_0x584e5a)['send'](_0x18e901);};}exports[_0xa889('0x25')]=function(_0x420d02,_0x4197e1){var _0x15e17a={},_0x578294={},_0x482057={'count':0x0,'rows':[]};var _0x3279a7=db[_0xa889('0x26')][_0xa889('0x27')];_0x578294['model']=_[_0xa889('0x28')](_0x3279a7);var _0x4c8811={'dateStart':_0x420d02[_0xa889('0x29')][_0xa889('0x2a')],'dateEnd':_0x420d02[_0xa889('0x29')][_0xa889('0x2b')]};delete _0x420d02[_0xa889('0x29')][_0xa889('0x2a')];delete _0x420d02[_0xa889('0x29')][_0xa889('0x2b')];_0x578294[_0xa889('0x29')]=_[_0xa889('0x28')](_0x420d02[_0xa889('0x29')]);_0x578294[_0xa889('0x2c')]=_['intersection'](_0x578294[_0xa889('0x2d')],_0x578294[_0xa889('0x29')]);_0x15e17a[_0xa889('0x2e')]=_[_0xa889('0x2f')](_0x578294['model'],qs[_0xa889('0x30')](_0x420d02[_0xa889('0x29')][_0xa889('0x30')]));_0x15e17a[_0xa889('0x2e')]=_0x15e17a['attributes'][_0xa889('0x31')]?_0x15e17a[_0xa889('0x2e')]:_0x578294[_0xa889('0x2d')];if(!_0x420d02[_0xa889('0x29')][_0xa889('0x32')]('nolimit')){_0x15e17a[_0xa889('0x1d')]=qs['limit'](_0x420d02[_0xa889('0x29')][_0xa889('0x1d')]);_0x15e17a[_0xa889('0x1c')]=qs[_0xa889('0x1c')](_0x420d02[_0xa889('0x29')][_0xa889('0x1c')]);}_0x15e17a[_0xa889('0x33')]=qs['sort'](_0x420d02[_0xa889('0x29')][_0xa889('0x34')]);_0x15e17a[_0xa889('0x35')]=qs[_0xa889('0x2c')](_[_0xa889('0x36')](_0x420d02[_0xa889('0x29')],_0x578294['filters']));if(_0x4c8811['dateStart']){if(_0x4c8811[_0xa889('0x2b')]){_0x4c8811[_0xa889('0x2b')]=moment(_0x4c8811[_0xa889('0x2b')])[_0xa889('0x37')](0x1,_0xa889('0x38'));}else{_0x4c8811['dateEnd']=moment(_0x4c8811[_0xa889('0x2a')])[_0xa889('0x37')](0x1,_0xa889('0x38'));}_[_0xa889('0x39')](_0x15e17a[_0xa889('0x35')],{'createdAt':{'$gte':_0x4c8811['dateStart'],'$lte':_0x4c8811[_0xa889('0x2b')]}});}if(_0x420d02['query'][_0xa889('0x3a')]){_0x15e17a['where']=_['merge'](_0x15e17a[_0xa889('0x35')],{'$or':_[_0xa889('0x3b')](_0x15e17a[_0xa889('0x2e')],function(_0x5ee41c){var _0x5255bb={};_0x5255bb[_0x5ee41c]={'$like':'%'+_0x420d02[_0xa889('0x29')][_0xa889('0x3a')]+'%'};return _0x5255bb;})});}_0x15e17a=_['merge']({},_0x15e17a,_0x420d02['options']);var _0xd508f3={'where':_0x15e17a[_0xa889('0x35')]};return db['VoiceExtension'][_0xa889('0x1b')](_0xd508f3)[_0xa889('0x22')](function(_0x108e89){_0x482057[_0xa889('0x1b')]=_0x108e89;if(_0x420d02[_0xa889('0x29')]['includeAll']){_0x15e17a[_0xa889('0x3c')]=[{'all':!![]}];}return db['VoiceExtension']['findAll'](_0x15e17a);})[_0xa889('0x22')](function(_0x39f07b){_0x482057['rows']=_0x39f07b;return _0x482057;})[_0xa889('0x22')](respondWithFilteredResult(_0x4197e1,_0x15e17a))[_0xa889('0x3d')](handleError(_0x4197e1,null));};exports[_0xa889('0x3e')]=function(_0x1042ab,_0x433c1e){var _0x7e4f38={'raw':![],'where':{'id':_0x1042ab[_0xa889('0x3f')]['id']}},_0x2e15c9={};_0x2e15c9[_0xa889('0x2d')]=_[_0xa889('0x28')](db[_0xa889('0x26')][_0xa889('0x27')]);_0x2e15c9[_0xa889('0x29')]=_['keys'](_0x1042ab[_0xa889('0x29')]);_0x2e15c9['filters']=_[_0xa889('0x2f')](_0x2e15c9[_0xa889('0x2d')],_0x2e15c9[_0xa889('0x29')]);_0x7e4f38[_0xa889('0x2e')]=_[_0xa889('0x2f')](_0x2e15c9[_0xa889('0x2d')],qs[_0xa889('0x30')](_0x1042ab[_0xa889('0x29')][_0xa889('0x30')]));_0x7e4f38['attributes']=_0x7e4f38[_0xa889('0x2e')]['length']?_0x7e4f38['attributes']:_0x2e15c9[_0xa889('0x2d')];if(_0x1042ab[_0xa889('0x29')][_0xa889('0x40')]){_0x7e4f38['include']=[{'all':!![]}];}_0x7e4f38=_[_0xa889('0x39')]({},_0x7e4f38,_0x1042ab[_0xa889('0x41')]);return db[_0xa889('0x26')][_0xa889('0x42')](_0x7e4f38)[_0xa889('0x22')](handleEntityNotFound(_0x433c1e,null))['then'](respondWithResult(_0x433c1e,null))[_0xa889('0x3d')](handleError(_0x433c1e,null));};exports['destroy']=function(_0xdaa716,_0x27b71b){return db[_0xa889('0x26')][_0xa889('0x42')]({'where':{'id':_0xdaa716['params']['id']}})[_0xa889('0x22')](handleEntityNotFound(_0x27b71b,null))[_0xa889('0x22')](removeEntity(_0x27b71b,null))['catch'](handleError(_0x27b71b,null));};exports[_0xa889('0x43')]=function(_0x5ad319,_0x2c72d9){if(_0x5ad319[_0xa889('0x44')][_0xa889('0x45')]==='outbound'&&!_['startsWith'](_0x5ad319['body'][_0xa889('0x46')],'_')){_0x5ad319['body'][_0xa889('0x46')]='_'[_0xa889('0x47')](_0x5ad319[_0xa889('0x44')][_0xa889('0x46')]);}return db[_0xa889('0x26')][_0xa889('0x43')](_0x5ad319['body'],{'raw':![]})['then'](respondWithResult(_0x2c72d9,0xc9))[_0xa889('0x3d')](handleError(_0x2c72d9,null));};exports['update']=function(_0x2dfeac,_0x216743){if(_0x2dfeac[_0xa889('0x44')]['id']){delete _0x2dfeac[_0xa889('0x44')]['id'];}return db['VoiceExtension'][_0xa889('0x42')]({'where':{'id':_0x2dfeac['params']['id']}})[_0xa889('0x22')](handleEntityNotFound(_0x216743,null))[_0xa889('0x22')](function(_0x4d83e3){if(_0x4d83e3){return db[_0xa889('0x26')]['update'](_[_0xa889('0x36')](_0x2dfeac['body'],[_0xa889('0x46'),_0xa889('0x48'),_0xa889('0x49'),_0xa889('0x4a'),_0xa889('0x4b')]),{'where':{'context':_0x4d83e3[_0xa889('0x48')],'exten':_0x4d83e3[_0xa889('0x46')]},'individualHooks':!![]})[_0xa889('0x22')](function(_0x102a73){return _0x102a73;});}return null;})[_0xa889('0x22')](respondWithStatusCode(_0x216743,null))[_0xa889('0x3d')](handleError(_0x216743,null));};exports[_0xa889('0x4c')]=function(_0x342999,_0x34f812,_0xba9485){return db[_0xa889('0x26')][_0xa889('0x4d')]({'where':{'id':_0x342999[_0xa889('0x3f')]['id']}})[_0xa889('0x22')](handleEntityNotFound(_0x34f812,null))[_0xa889('0x22')](function(_0x49d40c){if(_0x49d40c){return db[_0xa889('0x4e')][_0xa889('0x4f')](function(_0x2bf7c0){return db['VoiceExtension'][_0xa889('0x23')]({'where':{'VoiceExtensionId':_0x342999['params']['id']},'transaction':_0x2bf7c0})[_0xa889('0x22')](function(_0x50ea6d){var _0x155319=_[_0xa889('0x3b')](_0x342999[_0xa889('0x44')],function(_0x4925bf){_0x4925bf[_0xa889('0x50')]=_0x342999['params']['id'];return _0x4925bf;});return db['VoiceExtension'][_0xa889('0x51')](_0x155319,{'transaction':_0x2bf7c0});});})[_0xa889('0x22')](function(){return db['VoiceExtension'][_0xa889('0x52')]({'where':{'isApp':!![],'VoiceExtensionId':_0x342999[_0xa889('0x3f')]['id']},'order':_0xa889('0x53')});});}})[_0xa889('0x22')](respondWithResult(_0x34f812,null))['catch'](handleError(_0x34f812,null));};
\ No newline at end of file
+var _0xfc5a=['status','json','offset','limit','set','Content-Range','apply','reject','save','update','then','error','stack','send','index','VoiceExtension','rawAttributes','model','keys','dateStart','dateEnd','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','filter','merge','map','options','count','include','findAll','rows','show','params','includeAll','find','catch','destroy','create','type','outbound','startsWith','body','exten','concat','description','recordingFormat','cutdigits','context','sequelize','transaction','VoiceExtensionId','bulkCreate','html-pdf','eml-format','fast-json-patch','request-promise','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','sendStatus','end'];(function(_0x419a8a,_0x207aa0){var _0x4e3231=function(_0x4b0b04){while(--_0x4b0b04){_0x419a8a['push'](_0x419a8a['shift']());}};_0x4e3231(++_0x207aa0);}(_0xfc5a,0x1ac));var _0xafc5=function(_0x582ccd,_0xa9ab43){_0x582ccd=_0x582ccd-0x0;var _0x11545d=_0xfc5a[_0x582ccd];return _0x11545d;};'use strict';var pdf=require(_0xafc5('0x0'));var emlformat=require(_0xafc5('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xafc5('0x2'));var rp=require(_0xafc5('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xafc5('0x4'));var util=require(_0xafc5('0x5'));var path=require(_0xafc5('0x6'));var sox=require(_0xafc5('0x7'));var csv=require('to-csv');var ejs=require(_0xafc5('0x8'));var fs=require('fs');var _=require(_0xafc5('0x9'));var squel=require(_0xafc5('0xa'));var crypto=require(_0xafc5('0xb'));var jsforce=require(_0xafc5('0xc'));var deskjs=require(_0xafc5('0xd'));var toCsv=require('to-csv');var querystring=require(_0xafc5('0xe'));var Papa=require(_0xafc5('0xf'));var Redis=require('ioredis');var qs=require(_0xafc5('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xafc5('0x11'));var config=require(_0xafc5('0x12'));var db=require(_0xafc5('0x13'))['db'];config[_0xafc5('0x14')]=_[_0xafc5('0x15')](config[_0xafc5('0x14')],{'host':_0xafc5('0x16'),'port':0x18eb});var socket=require(_0xafc5('0x17'))(new Redis(config[_0xafc5('0x14')]));require(_0xafc5('0x18'))['register'](socket);function respondWithStatusCode(_0xd6db78,_0x407bc4){_0x407bc4=_0x407bc4||0xcc;return function(_0x3d478a){if(_0x3d478a){return _0xd6db78[_0xafc5('0x19')](_0x407bc4);}return _0xd6db78['status'](_0x407bc4)[_0xafc5('0x1a')]();};}function respondWithResult(_0x567f9f,_0x58d86d){_0x58d86d=_0x58d86d||0xc8;return function(_0x1a19c2){if(_0x1a19c2){return _0x567f9f[_0xafc5('0x1b')](_0x58d86d)[_0xafc5('0x1c')](_0x1a19c2);}};}function respondWithFilteredResult(_0x191300,_0x15ab53){return function(_0x12e679){if(_0x12e679){var _0x3e2383=_0x12e679['count'],_0x5291af=_0x15ab53[_0xafc5('0x1d')],_0x2ee062=_0x15ab53['offset']+_0x15ab53[_0xafc5('0x1e')],_0x3633a1;if(_0x2ee062>=_0x3e2383){_0x2ee062=_0x3e2383;_0x3633a1=0xc8;}else{_0x3633a1=0xce;}_0x191300['status'](_0x3633a1);return _0x191300[_0xafc5('0x1f')](_0xafc5('0x20'),_0x5291af+'-'+_0x2ee062+'/'+_0x3e2383)[_0xafc5('0x1c')](_0x12e679);}return null;};}function patchUpdates(_0x485340){return function(_0xb70b6a){try{jsonpatch[_0xafc5('0x21')](_0xb70b6a,_0x485340,!![]);}catch(_0x83b1f3){return BPromise[_0xafc5('0x22')](_0x83b1f3);}return _0xb70b6a[_0xafc5('0x23')]();};}function saveUpdates(_0x8b080b,_0x1466e5){return function(_0x5df086){if(_0x5df086){return _0x5df086[_0xafc5('0x24')](_0x8b080b)[_0xafc5('0x25')](function(_0x11aabc){return _0x11aabc;});}return null;};}function removeEntity(_0x5a4c63,_0x44af3b){return function(_0x2fb86a){if(_0x2fb86a){return _0x2fb86a['destroy']()[_0xafc5('0x25')](function(){_0x5a4c63[_0xafc5('0x1b')](0xcc)[_0xafc5('0x1a')]();});}};}function handleEntityNotFound(_0x3691cf,_0x2b11c3){return function(_0x75bea){if(!_0x75bea){_0x3691cf[_0xafc5('0x19')](0x194);}return _0x75bea;};}function handleError(_0x19fd69,_0x428125){_0x428125=_0x428125||0x1f4;return function(_0x239e28){logger[_0xafc5('0x26')](_0x239e28[_0xafc5('0x27')]);if(_0x239e28['name']){delete _0x239e28['name'];}_0x19fd69['status'](_0x428125)[_0xafc5('0x28')](_0x239e28);};}exports[_0xafc5('0x29')]=function(_0x4c8a88,_0x9a7743){var _0x34d00f={},_0x1dbf81={},_0x4912c2={'count':0x0,'rows':[]};var _0x1b790d=db[_0xafc5('0x2a')][_0xafc5('0x2b')];_0x1dbf81[_0xafc5('0x2c')]=_[_0xafc5('0x2d')](_0x1b790d);var _0x3853a1={'dateStart':_0x4c8a88['query'][_0xafc5('0x2e')],'dateEnd':_0x4c8a88['query'][_0xafc5('0x2f')]};delete _0x4c8a88['query'][_0xafc5('0x2e')];delete _0x4c8a88['query'][_0xafc5('0x2f')];_0x1dbf81[_0xafc5('0x30')]=_[_0xafc5('0x2d')](_0x4c8a88[_0xafc5('0x30')]);_0x1dbf81['filters']=_[_0xafc5('0x31')](_0x1dbf81['model'],_0x1dbf81['query']);_0x34d00f[_0xafc5('0x32')]=_[_0xafc5('0x31')](_0x1dbf81[_0xafc5('0x2c')],qs[_0xafc5('0x33')](_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x33')]));_0x34d00f['attributes']=_0x34d00f[_0xafc5('0x32')][_0xafc5('0x34')]?_0x34d00f[_0xafc5('0x32')]:_0x1dbf81[_0xafc5('0x2c')];if(!_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x35')](_0xafc5('0x36'))){_0x34d00f[_0xafc5('0x1e')]=qs['limit'](_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x1e')]);_0x34d00f[_0xafc5('0x1d')]=qs[_0xafc5('0x1d')](_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x1d')]);}_0x34d00f[_0xafc5('0x37')]=qs[_0xafc5('0x38')](_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x38')]);_0x34d00f[_0xafc5('0x39')]=qs[_0xafc5('0x3a')](_[_0xafc5('0x3b')](_0x4c8a88[_0xafc5('0x30')],_0x1dbf81[_0xafc5('0x3a')]));if(_0x3853a1['dateStart']){if(_0x3853a1[_0xafc5('0x2f')]){_0x3853a1[_0xafc5('0x2f')]=moment(_0x3853a1[_0xafc5('0x2f')])['add'](0x1,'day');}else{_0x3853a1[_0xafc5('0x2f')]=moment(_0x3853a1[_0xafc5('0x2e')])[_0xafc5('0x3c')](0x1,_0xafc5('0x3d'));}_['merge'](_0x34d00f[_0xafc5('0x39')],{'createdAt':{'$gte':_0x3853a1[_0xafc5('0x2e')],'$lte':_0x3853a1['dateEnd']}});}if(_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x3e')]){_0x34d00f[_0xafc5('0x39')]=_[_0xafc5('0x3f')](_0x34d00f['where'],{'$or':_[_0xafc5('0x40')](_0x34d00f['attributes'],function(_0xd55a7d){var _0x423e42={};_0x423e42[_0xd55a7d]={'$like':'%'+_0x4c8a88[_0xafc5('0x30')][_0xafc5('0x3e')]+'%'};return _0x423e42;})});}_0x34d00f=_['merge']({},_0x34d00f,_0x4c8a88[_0xafc5('0x41')]);var _0x5b1e99={'where':_0x34d00f['where']};return db[_0xafc5('0x2a')][_0xafc5('0x42')](_0x5b1e99)[_0xafc5('0x25')](function(_0x5c462f){_0x4912c2['count']=_0x5c462f;if(_0x4c8a88['query']['includeAll']){_0x34d00f[_0xafc5('0x43')]=[{'all':!![]}];}return db[_0xafc5('0x2a')][_0xafc5('0x44')](_0x34d00f);})['then'](function(_0x4b0538){_0x4912c2[_0xafc5('0x45')]=_0x4b0538;return _0x4912c2;})[_0xafc5('0x25')](respondWithFilteredResult(_0x9a7743,_0x34d00f))['catch'](handleError(_0x9a7743,null));};exports[_0xafc5('0x46')]=function(_0x1f45a8,_0x307969){var _0x500526={'raw':![],'where':{'id':_0x1f45a8[_0xafc5('0x47')]['id']}},_0x3b064b={};_0x3b064b['model']=_[_0xafc5('0x2d')](db[_0xafc5('0x2a')]['rawAttributes']);_0x3b064b[_0xafc5('0x30')]=_[_0xafc5('0x2d')](_0x1f45a8[_0xafc5('0x30')]);_0x3b064b['filters']=_[_0xafc5('0x31')](_0x3b064b['model'],_0x3b064b[_0xafc5('0x30')]);_0x500526[_0xafc5('0x32')]=_[_0xafc5('0x31')](_0x3b064b['model'],qs[_0xafc5('0x33')](_0x1f45a8[_0xafc5('0x30')][_0xafc5('0x33')]));_0x500526[_0xafc5('0x32')]=_0x500526[_0xafc5('0x32')][_0xafc5('0x34')]?_0x500526['attributes']:_0x3b064b['model'];if(_0x1f45a8[_0xafc5('0x30')][_0xafc5('0x48')]){_0x500526[_0xafc5('0x43')]=[{'all':!![]}];}_0x500526=_['merge']({},_0x500526,_0x1f45a8['options']);return db['VoiceExtension'][_0xafc5('0x49')](_0x500526)[_0xafc5('0x25')](handleEntityNotFound(_0x307969,null))[_0xafc5('0x25')](respondWithResult(_0x307969,null))[_0xafc5('0x4a')](handleError(_0x307969,null));};exports[_0xafc5('0x4b')]=function(_0x573fae,_0x363bb6){return db[_0xafc5('0x2a')][_0xafc5('0x49')]({'where':{'id':_0x573fae[_0xafc5('0x47')]['id']}})[_0xafc5('0x25')](handleEntityNotFound(_0x363bb6,null))[_0xafc5('0x25')](removeEntity(_0x363bb6,null))[_0xafc5('0x4a')](handleError(_0x363bb6,null));};exports[_0xafc5('0x4c')]=function(_0xe38b01,_0x192282){if(_0xe38b01['body'][_0xafc5('0x4d')]===_0xafc5('0x4e')&&!_[_0xafc5('0x4f')](_0xe38b01[_0xafc5('0x50')][_0xafc5('0x51')],'_')){_0xe38b01[_0xafc5('0x50')][_0xafc5('0x51')]='_'[_0xafc5('0x52')](_0xe38b01['body']['exten']);}return db['VoiceExtension'][_0xafc5('0x4c')](_0xe38b01[_0xafc5('0x50')],{'raw':![]})['then'](respondWithResult(_0x192282,0xc9))['catch'](handleError(_0x192282,null));};exports[_0xafc5('0x24')]=function(_0x35871f,_0x3cdf19){if(_0x35871f[_0xafc5('0x50')]['id']){delete _0x35871f[_0xafc5('0x50')]['id'];}return db[_0xafc5('0x2a')][_0xafc5('0x49')]({'where':{'id':_0x35871f[_0xafc5('0x47')]['id']}})[_0xafc5('0x25')](handleEntityNotFound(_0x3cdf19,null))[_0xafc5('0x25')](function(_0x35933b){if(_0x35933b){return db[_0xafc5('0x2a')][_0xafc5('0x24')](_[_0xafc5('0x3b')](_0x35871f['body'],[_0xafc5('0x51'),'context',_0xafc5('0x53'),_0xafc5('0x54'),_0xafc5('0x55')]),{'where':{'context':_0x35933b[_0xafc5('0x56')],'exten':_0x35933b[_0xafc5('0x51')]},'individualHooks':!![]})[_0xafc5('0x25')](function(_0x192b95){return _0x192b95;});}return null;})[_0xafc5('0x25')](respondWithStatusCode(_0x3cdf19,null))[_0xafc5('0x4a')](handleError(_0x3cdf19,null));};exports['addApplications']=function(_0x234ae8,_0x1ab9fc,_0x5629ce){return db[_0xafc5('0x2a')]['findOne']({'where':{'id':_0x234ae8[_0xafc5('0x47')]['id']}})[_0xafc5('0x25')](handleEntityNotFound(_0x1ab9fc,null))[_0xafc5('0x25')](function(_0x5a3ee4){if(_0x5a3ee4){return db[_0xafc5('0x57')][_0xafc5('0x58')](function(_0x4e53e1){return db[_0xafc5('0x2a')][_0xafc5('0x4b')]({'where':{'VoiceExtensionId':_0x234ae8['params']['id']},'transaction':_0x4e53e1})[_0xafc5('0x25')](function(_0x356b1c){var _0x161e1a=_[_0xafc5('0x40')](_0x234ae8[_0xafc5('0x50')],function(_0xf159b5){_0xf159b5[_0xafc5('0x59')]=_0x234ae8[_0xafc5('0x47')]['id'];return _0xf159b5;});return db[_0xafc5('0x2a')][_0xafc5('0x5a')](_0x161e1a,{'transaction':_0x4e53e1});});})[_0xafc5('0x25')](function(){return db[_0xafc5('0x2a')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x234ae8[_0xafc5('0x47')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0x1ab9fc,null))['catch'](handleError(_0x1ab9fc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfc2=['events','../../mysqldb','VoiceExtension','save','emit','hasOwnProperty','hook','exports'];(function(_0x4f708f,_0x19857c){var _0xc14ea8=function(_0x4f3728){while(--_0x4f3728){_0x4f708f['push'](_0x4f708f['shift']());}};_0xc14ea8(++_0x19857c);}(_0xcfc2,0xd8));var _0x2cfc=function(_0x503267,_0x521c52){_0x503267=_0x503267-0x0;var _0x4931ac=_0xcfc2[_0x503267];return _0x4931ac;};'use strict';var EventEmitter=require(_0x2cfc('0x0'));var VoiceExtension=require(_0x2cfc('0x1'))['db'][_0x2cfc('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2cfc('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x2199cb){return function(_0x2afc6d,_0x5b60ae,_0x3bff52){VoiceExtensionEvents['emit'](_0x2199cb+':'+_0x2afc6d['id'],_0x2afc6d);VoiceExtensionEvents[_0x2cfc('0x4')](_0x2199cb,_0x2afc6d);_0x3bff52(null);};}for(var e in events){if(events[_0x2cfc('0x5')](e)){var event=events[e];VoiceExtension[_0x2cfc('0x6')](e,emitEvent(event));}}module[_0x2cfc('0x7')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0x1223=['../../mysqldb','save','remove','emit','hasOwnProperty'];(function(_0x48e921,_0x20cf98){var _0x4986fe=function(_0x466eb2){while(--_0x466eb2){_0x48e921['push'](_0x48e921['shift']());}};_0x4986fe(++_0x20cf98);}(_0x1223,0x195));var _0x3122=function(_0xd4fc3c,_0xd2fdc0){_0xd4fc3c=_0xd4fc3c-0x0;var _0x43bd55=_0x1223[_0xd4fc3c];return _0x43bd55;};'use strict';var EventEmitter=require('events');var VoiceExtension=require(_0x3122('0x0'))['db']['VoiceExtension'];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3122('0x1'),'afterUpdate':'update','afterDestroy':_0x3122('0x2')};function emitEvent(_0x4155ad){return function(_0x19f671,_0xcec441,_0x4e845e){VoiceExtensionEvents[_0x3122('0x3')](_0x4155ad+':'+_0x19f671['id'],_0x19f671);VoiceExtensionEvents[_0x3122('0x3')](_0x4155ad,_0x19f671);_0x4e845e(null);};}for(var e in events){if(events[_0x3122('0x4')](e)){var event=events[e];VoiceExtension['hook'](e,emitEvent(event));}}module['exports']=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d84=['request-promise','./voiceExtension.attributes','exports','voice_extensions','lodash','util','../../config/logger','api'];(function(_0x882439,_0x33e6a5){var _0x432c66=function(_0x5e1a39){while(--_0x5e1a39){_0x882439['push'](_0x882439['shift']());}};_0x432c66(++_0x33e6a5);}(_0x8d84,0xec));var _0x48d8=function(_0x2e642e,_0x4087a9){_0x2e642e=_0x2e642e-0x0;var _0x174fc0=_0x8d84[_0x2e642e];return _0x174fc0;};'use strict';var _=require(_0x48d8('0x0'));var util=require(_0x48d8('0x1'));var logger=require(_0x48d8('0x2'))(_0x48d8('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x48d8('0x4'));var attributes=require(_0x48d8('0x5'));module[_0x48d8('0x6')]=function(_0x2bdfc3,_0x48adf3){return _0x2bdfc3['define']('VoiceExtension',attributes,{'tableName':_0x48d8('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf869=['moment','bluebird','request-promise','./voiceExtension.attributes','exports','define','VoiceExtension','voice_extensions','lodash','util','../../config/logger','api'];(function(_0x267d8d,_0xe90f65){var _0x11a98f=function(_0x5703c9){while(--_0x5703c9){_0x267d8d['push'](_0x267d8d['shift']());}};_0x11a98f(++_0xe90f65);}(_0xf869,0xec));var _0x9f86=function(_0x22f5ea,_0x3a6a30){_0x22f5ea=_0x22f5ea-0x0;var _0xe5955=_0xf869[_0x22f5ea];return _0xe5955;};'use strict';var _=require(_0x9f86('0x0'));var util=require(_0x9f86('0x1'));var logger=require(_0x9f86('0x2'))(_0x9f86('0x3'));var moment=require(_0x9f86('0x4'));var BPromise=require(_0x9f86('0x5'));var rp=require(_0x9f86('0x6'));var attributes=require(_0x9f86('0x7'));module[_0x9f86('0x8')]=function(_0x4a2496,_0x33d600){return _0x4a2496[_0x9f86('0x9')](_0x9f86('0xa'),attributes,{'tableName':_0x9f86('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60fd=['VoiceExtension,\x20%s,\x20%s','VoiceExtension,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','VoiceExtension','findAll','options','where','limit','include','map','attributes','model','GetVoiceExtension','debug','stringify','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','./voiceExtension.socket','register','request','then','info'];(function(_0x41a72c,_0x5a2cb0){var _0x5c9339=function(_0x38a61b){while(--_0x38a61b){_0x41a72c['push'](_0x41a72c['shift']());}};_0x5c9339(++_0x5a2cb0);}(_0x60fd,0x160));var _0xd60f=function(_0x333107,_0x57c6aa){_0x333107=_0x333107-0x0;var _0x2ad045=_0x60fd[_0x333107];return _0x2ad045;};'use strict';var _=require('lodash');var util=require(_0xd60f('0x0'));var moment=require(_0xd60f('0x1'));var BPromise=require(_0xd60f('0x2'));var rs=require(_0xd60f('0x3'));var fs=require('fs');var db=require(_0xd60f('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xd60f('0x5'))(_0xd60f('0x6'));var config=require('../../config/environment');var jayson=require(_0xd60f('0x7'));var client=jayson[_0xd60f('0x8')][_0xd60f('0x9')]({'port':0x232a});config[_0xd60f('0xa')]=_[_0xd60f('0xb')](config[_0xd60f('0xa')],{'host':_0xd60f('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(config[_0xd60f('0xa')]);require(_0xd60f('0xd'))[_0xd60f('0xe')](socket);function respondWithRpcPromise(_0x1759f7,_0x19a1c5,_0x484a55){return new BPromise(function(_0x4bf8c5,_0x557d61){return client[_0xd60f('0xf')](_0x1759f7,_0x484a55)[_0xd60f('0x10')](function(_0x52d63b){logger[_0xd60f('0x11')](_0xd60f('0x12'),_0x19a1c5,'request\x20sent');logger['debug'](_0xd60f('0x13'),_0x19a1c5,_0xd60f('0x14'),JSON['stringify'](_0x52d63b));if(_0x52d63b[_0xd60f('0x15')]){if(_0x52d63b['error'][_0xd60f('0x16')]===0x1f4){logger['error'](_0xd60f('0x12'),_0x19a1c5,_0x52d63b[_0xd60f('0x15')][_0xd60f('0x17')]);return _0x557d61(_0x52d63b[_0xd60f('0x15')][_0xd60f('0x17')]);}logger[_0xd60f('0x15')](_0xd60f('0x12'),_0x19a1c5,_0x52d63b[_0xd60f('0x15')][_0xd60f('0x17')]);return _0x4bf8c5(_0x52d63b[_0xd60f('0x15')][_0xd60f('0x17')]);}else{logger[_0xd60f('0x11')]('VoiceExtension,\x20%s,\x20%s',_0x19a1c5,_0xd60f('0x14'));_0x4bf8c5(_0x52d63b[_0xd60f('0x18')]['message']);}})['catch'](function(_0x55ceed){logger[_0xd60f('0x15')](_0xd60f('0x12'),_0x19a1c5,_0x55ceed);_0x557d61(_0x55ceed);});});}exports['GetVoiceExtension']=function(_0x206d31){var _0x332390=this;return new Promise(function(_0x3a6106,_0x1d7c10){return db[_0xd60f('0x19')][_0xd60f('0x1a')]({'raw':_0x206d31[_0xd60f('0x1b')]?_0x206d31['options']['raw']===undefined?!![]:![]:!![],'where':_0x206d31[_0xd60f('0x1b')]?_0x206d31[_0xd60f('0x1b')][_0xd60f('0x1c')]||null:null,'attributes':_0x206d31['options']?_0x206d31['options']['attributes']||null:null,'limit':_0x206d31['options']?_0x206d31[_0xd60f('0x1b')][_0xd60f('0x1d')]||null:null,'include':_0x206d31[_0xd60f('0x1b')]?_0x206d31[_0xd60f('0x1b')][_0xd60f('0x1e')]?_[_0xd60f('0x1f')](_0x206d31['options'][_0xd60f('0x1e')],function(_0x301af3){return{'model':db[_0x301af3['model']],'as':_0x301af3['as'],'attributes':_0x301af3[_0xd60f('0x20')],'include':_0x301af3[_0xd60f('0x1e')]?_[_0xd60f('0x1f')](_0x301af3[_0xd60f('0x1e')],function(_0x4762a7){return{'model':db[_0x4762a7[_0xd60f('0x21')]],'as':_0x4762a7['as'],'attributes':_0x4762a7[_0xd60f('0x20')],'include':_0x4762a7['include']?_[_0xd60f('0x1f')](_0x4762a7[_0xd60f('0x1e')],function(_0x4693a1){return{'model':db[_0x4693a1[_0xd60f('0x21')]],'as':_0x4693a1['as'],'attributes':_0x4693a1[_0xd60f('0x20')]};}):[]};}):[]};}):[]:[]})[_0xd60f('0x10')](function(_0x34c18c){logger[_0xd60f('0x11')](_0xd60f('0x22'),_0x206d31);logger[_0xd60f('0x23')](_0xd60f('0x22'),_0x206d31,JSON[_0xd60f('0x24')](_0x34c18c));_0x3a6106(_0x34c18c);})['catch'](function(_0x331b80){logger[_0xd60f('0x15')](_0xd60f('0x22'),_0x331b80[_0xd60f('0x17')],_0x206d31);_0x1d7c10(_0x332390[_0xd60f('0x15')](0x1f4,_0x331b80[_0xd60f('0x17')]));});});};
\ No newline at end of file
+var _0x91a7=['then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetVoiceExtension','VoiceExtension','findAll','options','raw','where','attributes','limit','include','map','model','debug','util','moment','bluebird','ioredis','../../config/utils','../../config/environment','jayson/promise','http','defaults','redis','socket.io-emitter','./voiceExtension.socket','register','request'];(function(_0xb1cf84,_0x813740){var _0x4bad2e=function(_0x53e6f2){while(--_0x53e6f2){_0xb1cf84['push'](_0xb1cf84['shift']());}};_0x4bad2e(++_0x813740);}(_0x91a7,0xe7));var _0x791a=function(_0x4cf5ad,_0x58e6b7){_0x4cf5ad=_0x4cf5ad-0x0;var _0x244165=_0x91a7[_0x4cf5ad];return _0x244165;};'use strict';var _=require('lodash');var util=require(_0x791a('0x0'));var moment=require(_0x791a('0x1'));var BPromise=require(_0x791a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x791a('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x791a('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x791a('0x5'));var jayson=require(_0x791a('0x6'));var client=jayson['client'][_0x791a('0x7')]({'port':0x232a});config['redis']=_[_0x791a('0x8')](config[_0x791a('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x791a('0xa'))(new Redis(config[_0x791a('0x9')]));require(_0x791a('0xb'))[_0x791a('0xc')](socket);function respondWithRpcPromise(_0x266e4b,_0x5249d5,_0x21f0e0){return new BPromise(function(_0x38f7c2,_0x57e99c){return client[_0x791a('0xd')](_0x266e4b,_0x21f0e0)[_0x791a('0xe')](function(_0x167bc4){logger[_0x791a('0xf')](_0x791a('0x10'),_0x5249d5,_0x791a('0x11'));logger['debug']('VoiceExtension,\x20%s,\x20%s,\x20%s',_0x5249d5,_0x791a('0x11'),JSON[_0x791a('0x12')](_0x167bc4));if(_0x167bc4['error']){if(_0x167bc4[_0x791a('0x13')][_0x791a('0x14')]===0x1f4){logger['error'](_0x791a('0x10'),_0x5249d5,_0x167bc4[_0x791a('0x13')][_0x791a('0x15')]);return _0x57e99c(_0x167bc4[_0x791a('0x13')]['message']);}logger[_0x791a('0x13')]('VoiceExtension,\x20%s,\x20%s',_0x5249d5,_0x167bc4[_0x791a('0x13')][_0x791a('0x15')]);return _0x38f7c2(_0x167bc4['error'][_0x791a('0x15')]);}else{logger['info'](_0x791a('0x10'),_0x5249d5,'request\x20sent');_0x38f7c2(_0x167bc4['result']['message']);}})[_0x791a('0x16')](function(_0x52fa43){logger['error'](_0x791a('0x10'),_0x5249d5,_0x52fa43);_0x57e99c(_0x52fa43);});});}exports[_0x791a('0x17')]=function(_0x3a31a3){var _0x364ca1=this;return new Promise(function(_0x5f3cec,_0x189c0d){return db[_0x791a('0x18')][_0x791a('0x19')]({'raw':_0x3a31a3[_0x791a('0x1a')]?_0x3a31a3['options'][_0x791a('0x1b')]===undefined?!![]:![]:!![],'where':_0x3a31a3[_0x791a('0x1a')]?_0x3a31a3[_0x791a('0x1a')][_0x791a('0x1c')]||null:null,'attributes':_0x3a31a3[_0x791a('0x1a')]?_0x3a31a3[_0x791a('0x1a')][_0x791a('0x1d')]||null:null,'limit':_0x3a31a3[_0x791a('0x1a')]?_0x3a31a3[_0x791a('0x1a')][_0x791a('0x1e')]||null:null,'include':_0x3a31a3[_0x791a('0x1a')]?_0x3a31a3['options'][_0x791a('0x1f')]?_[_0x791a('0x20')](_0x3a31a3[_0x791a('0x1a')][_0x791a('0x1f')],function(_0x4d748a){return{'model':db[_0x4d748a[_0x791a('0x21')]],'as':_0x4d748a['as'],'attributes':_0x4d748a[_0x791a('0x1d')],'include':_0x4d748a['include']?_[_0x791a('0x20')](_0x4d748a[_0x791a('0x1f')],function(_0x16dbaf){return{'model':db[_0x16dbaf['model']],'as':_0x16dbaf['as'],'attributes':_0x16dbaf[_0x791a('0x1d')],'include':_0x16dbaf[_0x791a('0x1f')]?_[_0x791a('0x20')](_0x16dbaf[_0x791a('0x1f')],function(_0x4f423){return{'model':db[_0x4f423[_0x791a('0x21')]],'as':_0x4f423['as'],'attributes':_0x4f423[_0x791a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x791a('0xe')](function(_0x58bbc0){logger[_0x791a('0xf')](_0x791a('0x17'),_0x3a31a3);logger[_0x791a('0x22')]('GetVoiceExtension',_0x3a31a3,JSON[_0x791a('0x12')](_0x58bbc0));_0x5f3cec(_0x58bbc0);})['catch'](function(_0xc59f5e){logger[_0x791a('0x13')](_0x791a('0x17'),_0xc59f5e[_0x791a('0x15')],_0x3a31a3);_0x189c0d(_0x364ca1[_0x791a('0x13')](0x1f4,_0xc59f5e[_0x791a('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda24=['length','voiceExtension:','./voiceExtension.events','save','remove','emit'];(function(_0x3bc15e,_0x872aff){var _0x49087c=function(_0x3dbf7a){while(--_0x3dbf7a){_0x3bc15e['push'](_0x3bc15e['shift']());}};_0x49087c(++_0x872aff);}(_0xda24,0x134));var _0x4da2=function(_0xbf1875,_0x34b144){_0xbf1875=_0xbf1875-0x0;var _0x2e598b=_0xda24[_0xbf1875];return _0x2e598b;};'use strict';var VoiceExtensionEvents=require(_0x4da2('0x0'));var events=[_0x4da2('0x1'),_0x4da2('0x2'),'update'];function createListener(_0x18649a,_0x41456d){return function(_0xb48e23){_0x41456d[_0x4da2('0x3')](_0x18649a,_0xb48e23);};}function removeListener(_0xc9ce20,_0x1bdabd){return function(){VoiceExtensionEvents['removeListener'](_0xc9ce20,_0x1bdabd);};}exports['register']=function(_0x1ea5e8){for(var _0x32b4e0=0x0,_0x1e0758=events[_0x4da2('0x4')];_0x32b4e0<_0x1e0758;_0x32b4e0++){var _0x564a97=events[_0x32b4e0];var _0x3846de=createListener(_0x4da2('0x5')+_0x564a97,_0x1ea5e8);VoiceExtensionEvents['on'](_0x564a97,_0x3846de);}};
\ No newline at end of file
+var _0x7324=['register','length','voiceExtension:','save','update','removeListener'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x7324,0x1a1));var _0x4732=function(_0x3b6e5f,_0x258013){_0x3b6e5f=_0x3b6e5f-0x0;var _0x1e4f39=_0x7324[_0x3b6e5f];return _0x1e4f39;};'use strict';var VoiceExtensionEvents=require('./voiceExtension.events');var events=[_0x4732('0x0'),'remove',_0x4732('0x1')];function createListener(_0x4e035,_0x9d1c3e){return function(_0x56b15e){_0x9d1c3e['emit'](_0x4e035,_0x56b15e);};}function removeListener(_0x2577e4,_0x277561){return function(){VoiceExtensionEvents[_0x4732('0x2')](_0x2577e4,_0x277561);};}exports[_0x4732('0x3')]=function(_0x1658df){for(var _0x486b66=0x0,_0x416111=events[_0x4732('0x4')];_0x486b66<_0x416111;_0x486b66++){var _0x553252=events[_0x486b66];var _0xa88ec6=createListener(_0x4732('0x5')+_0x553252,_0x1658df);VoiceExtensionEvents['on'](_0x553252,_0xa88ec6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3442=['create','put','update','delete','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMail.controller','get','isAuthenticated','index','/:id','getMessages','post'];(function(_0x19a71c,_0x1194c3){var _0x451c12=function(_0x1426e5){while(--_0x1426e5){_0x19a71c['push'](_0x19a71c['shift']());}};_0x451c12(++_0x1194c3);}(_0x3442,0xd5));var _0x2344=function(_0x4883f8,_0x302c9f){_0x4883f8=_0x4883f8-0x0;var _0xe180fb=_0x3442[_0x4883f8];return _0xe180fb;};'use strict';var multer=require(_0x2344('0x0'));var util=require(_0x2344('0x1'));var path=require('path');var timeout=require(_0x2344('0x2'));var express=require(_0x2344('0x3'));var router=express[_0x2344('0x4')]();var auth=require(_0x2344('0x5'));var interaction=require(_0x2344('0x6'));var config=require(_0x2344('0x7'));var controller=require(_0x2344('0x8'));router[_0x2344('0x9')]('/',auth[_0x2344('0xa')](),controller[_0x2344('0xb')]);router[_0x2344('0x9')](_0x2344('0xc'),auth[_0x2344('0xa')](),controller['show']);router[_0x2344('0x9')]('/:id/messages',auth[_0x2344('0xa')](),controller[_0x2344('0xd')]);router[_0x2344('0xe')]('/',auth[_0x2344('0xa')](),controller[_0x2344('0xf')]);router[_0x2344('0x10')]('/:id',auth[_0x2344('0xa')](),controller[_0x2344('0x11')]);router[_0x2344('0x12')](_0x2344('0xc'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x8a59=['util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMail.controller','get','isAuthenticated','index','/:id','show','/:id/messages','getMessages','post','put','update','delete','destroy','exports'];(function(_0x210bb9,_0xc0d44c){var _0x2434ce=function(_0x50ea91){while(--_0x50ea91){_0x210bb9['push'](_0x210bb9['shift']());}};_0x2434ce(++_0xc0d44c);}(_0x8a59,0x165));var _0x98a5=function(_0x5e3b04,_0xbb6795){_0x5e3b04=_0x5e3b04-0x0;var _0x1fc44d=_0x8a59[_0x5e3b04];return _0x1fc44d;};'use strict';var multer=require('multer');var util=require(_0x98a5('0x0'));var path=require(_0x98a5('0x1'));var timeout=require('connect-timeout');var express=require(_0x98a5('0x2'));var router=express[_0x98a5('0x3')]();var auth=require(_0x98a5('0x4'));var interaction=require(_0x98a5('0x5'));var config=require(_0x98a5('0x6'));var controller=require(_0x98a5('0x7'));router[_0x98a5('0x8')]('/',auth[_0x98a5('0x9')](),controller[_0x98a5('0xa')]);router[_0x98a5('0x8')](_0x98a5('0xb'),auth[_0x98a5('0x9')](),controller[_0x98a5('0xc')]);router[_0x98a5('0x8')](_0x98a5('0xd'),auth[_0x98a5('0x9')](),controller[_0x98a5('0xe')]);router[_0x98a5('0xf')]('/',auth[_0x98a5('0x9')](),controller['create']);router[_0x98a5('0x10')](_0x98a5('0xb'),auth[_0x98a5('0x9')](),controller[_0x98a5('0x11')]);router[_0x98a5('0x12')](_0x98a5('0xb'),auth[_0x98a5('0x9')](),controller[_0x98a5('0x13')]);module[_0x98a5('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3be5=['contest_mailbox','email','string','trim','central','ENUM','yes','TIMESTAMP','INTEGER','exports','STRING','from-voicemail'];(function(_0x259606,_0x49b484){var _0xd021be=function(_0xcf9f12){while(--_0xcf9f12){_0x259606['push'](_0x259606['shift']());}};_0xd021be(++_0x49b484);}(_0x3be5,0xd5));var _0x53be=function(_0x4e6616,_0x4e14a2){_0x4e6616=_0x4e6616-0x0;var _0x54eacf=_0x3be5[_0x4e6616];return _0x54eacf;};'use strict';var Sequelize=require('sequelize');module[_0x53be('0x0')]={'customer_id':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x53be('0x1')],'defaultValue':_0x53be('0x2'),'unique':_0x53be('0x3')},'mailbox':{'type':Sequelize[_0x53be('0x1')],'defaultValue':'','allowNull':![],'unique':_0x53be('0x3')},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0x53be('0x1')]},'email':{'type':Sequelize[_0x53be('0x1')],'validate':{'isEmail':!![]},'set':function(_0x100394){this['setDataValue'](_0x53be('0x4'),typeof _0x100394===_0x53be('0x5')&&_0x100394['trim']()?_0x100394[_0x53be('0x6')]():null);}},'pager':{'type':Sequelize['STRING']},'tz':{'type':Sequelize[_0x53be('0x1')],'defaultValue':_0x53be('0x7')},'attach':{'type':Sequelize[_0x53be('0x8')](_0x53be('0x9'),'no'),'defaultValue':_0x53be('0x9'),'allowNull':![]},'saycid':{'type':Sequelize['ENUM'](_0x53be('0x9'),'no'),'defaultValue':_0x53be('0x9'),'allowNull':![]},'dialout':{'type':Sequelize['STRING']},'callback':{'type':Sequelize[_0x53be('0x1')]},'review':{'type':Sequelize[_0x53be('0x8')](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize['ENUM'](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0x53be('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x53be('0x8')](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':'TINYINT(4)','defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x53be('0x8')](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0x53be('0x8')](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0x53be('0x9'),'allowNull':![]},'forcename':{'type':Sequelize['ENUM'](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize['ENUM'](_0x53be('0x9'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x53be('0x8')](_0x53be('0x9'),'no'),'defaultValue':_0x53be('0x9'),'allowNull':![]},'stamp':{'type':_0x53be('0xa')},'emailsubject':{'type':Sequelize[_0x53be('0x1')]},'emailbody':{'type':Sequelize[_0x53be('0x1')]},'name':{'type':Sequelize['STRING']},'maxsecs':{'type':Sequelize[_0x53be('0xb')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x53be('0xb')](0xff),'defaultValue':0x64,'allowNull':![]}};
\ No newline at end of file
+var _0xc5f9=['yes','ENUM','TINYINT(4)','TIMESTAMP','INTEGER','sequelize','STRING','from-voicemail','contest_mailbox','setDataValue','email','string','trim','central'];(function(_0x4fc2fc,_0x25b74a){var _0x29234c=function(_0x1b91f6){while(--_0x1b91f6){_0x4fc2fc['push'](_0x4fc2fc['shift']());}};_0x29234c(++_0x25b74a);}(_0xc5f9,0x155));var _0x9c5f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc5f9[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x9c5f('0x0'));module['exports']={'customer_id':{'type':Sequelize[_0x9c5f('0x1')]},'context':{'type':Sequelize[_0x9c5f('0x1')],'defaultValue':_0x9c5f('0x2'),'unique':_0x9c5f('0x3')},'mailbox':{'type':Sequelize['STRING'],'defaultValue':'','allowNull':![],'unique':'contest_mailbox'},'password':{'type':Sequelize[_0x9c5f('0x1')]},'fullname':{'type':Sequelize[_0x9c5f('0x1')]},'email':{'type':Sequelize[_0x9c5f('0x1')],'validate':{'isEmail':!![]},'set':function(_0x272ef5){this[_0x9c5f('0x4')](_0x9c5f('0x5'),typeof _0x272ef5===_0x9c5f('0x6')&&_0x272ef5[_0x9c5f('0x7')]()?_0x272ef5[_0x9c5f('0x7')]():null);}},'pager':{'type':Sequelize[_0x9c5f('0x1')]},'tz':{'type':Sequelize['STRING'],'defaultValue':_0x9c5f('0x8')},'attach':{'type':Sequelize['ENUM'](_0x9c5f('0x9'),'no'),'defaultValue':_0x9c5f('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0x9c5f('0xa')]('yes','no'),'defaultValue':_0x9c5f('0x9'),'allowNull':![]},'dialout':{'type':Sequelize[_0x9c5f('0x1')]},'callback':{'type':Sequelize[_0x9c5f('0x1')]},'review':{'type':Sequelize[_0x9c5f('0xa')](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize['ENUM'](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize['ENUM'](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x9c5f('0xb'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x9c5f('0xa')](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0x9c5f('0xa')](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0x9c5f('0xa')](_0x9c5f('0x9'),'no'),'defaultValue':_0x9c5f('0x9'),'allowNull':![]},'forcename':{'type':Sequelize[_0x9c5f('0xa')](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x9c5f('0xa')](_0x9c5f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize['ENUM'](_0x9c5f('0x9'),'no'),'defaultValue':'yes','allowNull':![]},'stamp':{'type':_0x9c5f('0xc')},'emailsubject':{'type':Sequelize[_0x9c5f('0x1')]},'emailbody':{'type':Sequelize['STRING']},'name':{'type':Sequelize[_0x9c5f('0x1')]},'maxsecs':{'type':Sequelize[_0x9c5f('0xd')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x9c5f('0xd')](0xff),'defaultValue':0x64,'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd60d=['length','attributes','nolimit','order','sort','where','pick','dateEnd','day','merge','map','filter','options','includeAll','findAll','catch','show','params','include','find','body','destroy','getMessages','findOne','VoiceMailMessage','mailbox','findAndCountAll','html-pdf','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','status','json','count','offset','limit','set','Content-Range','apply','save','update','then','end','sendStatus','error','stack','name','send','index','VoiceMail','rawAttributes','model','dateStart','query','keys','filters','intersection','fields'];(function(_0x5ab252,_0xfe61d9){var _0x5a930f=function(_0x144803){while(--_0x144803){_0x5ab252['push'](_0x5ab252['shift']());}};_0x5a930f(++_0xfe61d9);}(_0xd60d,0xff));var _0xdd60=function(_0x383323,_0x370b99){_0x383323=_0x383323-0x0;var _0x48a642=_0xd60d[_0x383323];return _0x48a642;};'use strict';var pdf=require(_0xdd60('0x0'));var emlformat=require(_0xdd60('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xdd60('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdd60('0x3'));var moment=require(_0xdd60('0x4'));var BPromise=require(_0xdd60('0x5'));var Mustache=require(_0xdd60('0x6'));var util=require(_0xdd60('0x7'));var path=require('path');var sox=require(_0xdd60('0x8'));var csv=require(_0xdd60('0x9'));var ejs=require(_0xdd60('0xa'));var fs=require('fs');var _=require(_0xdd60('0xb'));var squel=require(_0xdd60('0xc'));var crypto=require(_0xdd60('0xd'));var jsforce=require(_0xdd60('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xdd60('0x9'));var querystring=require(_0xdd60('0xf'));var Papa=require(_0xdd60('0x10'));var qs=require(_0xdd60('0x11'));var logger=require(_0xdd60('0x12'))('api');var utils=require(_0xdd60('0x13'));var config=require(_0xdd60('0x14'));var db=require(_0xdd60('0x15'))['db'];function respondWithStatusCode(_0x360f41,_0x11b4be){_0x11b4be=_0x11b4be||0xcc;return function(_0x2010c0){if(_0x2010c0){return _0x360f41['sendStatus'](_0x11b4be);}return _0x360f41[_0xdd60('0x16')](_0x11b4be)['end']();};}function respondWithResult(_0x308267,_0x3ab049){_0x3ab049=_0x3ab049||0xc8;return function(_0x32d07f){if(_0x32d07f){return _0x308267[_0xdd60('0x16')](_0x3ab049)[_0xdd60('0x17')](_0x32d07f);}};}function respondWithFilteredResult(_0x37adf3,_0x387067){return function(_0x60566b){if(_0x60566b){var _0x34fe67=_0x60566b[_0xdd60('0x18')],_0x393051=_0x387067[_0xdd60('0x19')],_0x3b2024=_0x387067[_0xdd60('0x19')]+_0x387067[_0xdd60('0x1a')],_0x2cfeb1;if(_0x3b2024>=_0x34fe67){_0x3b2024=_0x34fe67;_0x2cfeb1=0xc8;}else{_0x2cfeb1=0xce;}_0x37adf3[_0xdd60('0x16')](_0x2cfeb1);return _0x37adf3[_0xdd60('0x1b')](_0xdd60('0x1c'),_0x393051+'-'+_0x3b2024+'/'+_0x34fe67)[_0xdd60('0x17')](_0x60566b);}return null;};}function patchUpdates(_0x50fbf6){return function(_0x524f9d){try{jsonpatch[_0xdd60('0x1d')](_0x524f9d,_0x50fbf6,!![]);}catch(_0x24fb22){return BPromise['reject'](_0x24fb22);}return _0x524f9d[_0xdd60('0x1e')]();};}function saveUpdates(_0x235418,_0x28a787){return function(_0x135244){if(_0x135244){return _0x135244[_0xdd60('0x1f')](_0x235418)[_0xdd60('0x20')](function(_0x248939){return _0x248939;});}return null;};}function removeEntity(_0x563c04,_0x1f1fce){return function(_0x55e9de){if(_0x55e9de){return _0x55e9de['destroy']()['then'](function(){_0x563c04[_0xdd60('0x16')](0xcc)[_0xdd60('0x21')]();});}};}function handleEntityNotFound(_0x44bf29,_0x26bb50){return function(_0x27e1f7){if(!_0x27e1f7){_0x44bf29[_0xdd60('0x22')](0x194);}return _0x27e1f7;};}function handleError(_0x4b5bda,_0x20db0e){_0x20db0e=_0x20db0e||0x1f4;return function(_0x444298){logger[_0xdd60('0x23')](_0x444298[_0xdd60('0x24')]);if(_0x444298[_0xdd60('0x25')]){delete _0x444298[_0xdd60('0x25')];}_0x4b5bda[_0xdd60('0x16')](_0x20db0e)[_0xdd60('0x26')](_0x444298);};}exports[_0xdd60('0x27')]=function(_0x5a4691,_0x481a40){var _0x33813e={},_0x3e6ac6={},_0x2388d0={'count':0x0,'rows':[]};var _0x4ab78d=db[_0xdd60('0x28')][_0xdd60('0x29')];_0x3e6ac6[_0xdd60('0x2a')]=_['keys'](_0x4ab78d);var _0x1d734a={'dateStart':_0x5a4691['query'][_0xdd60('0x2b')],'dateEnd':_0x5a4691[_0xdd60('0x2c')]['dateEnd']};delete _0x5a4691[_0xdd60('0x2c')][_0xdd60('0x2b')];delete _0x5a4691[_0xdd60('0x2c')]['dateEnd'];_0x3e6ac6['query']=_[_0xdd60('0x2d')](_0x5a4691[_0xdd60('0x2c')]);_0x3e6ac6[_0xdd60('0x2e')]=_[_0xdd60('0x2f')](_0x3e6ac6[_0xdd60('0x2a')],_0x3e6ac6['query']);_0x33813e['attributes']=_[_0xdd60('0x2f')](_0x3e6ac6[_0xdd60('0x2a')],qs[_0xdd60('0x30')](_0x5a4691[_0xdd60('0x2c')]['fields']));_0x33813e['attributes']=_0x33813e['attributes'][_0xdd60('0x31')]?_0x33813e[_0xdd60('0x32')]:_0x3e6ac6['model'];if(!_0x5a4691[_0xdd60('0x2c')]['hasOwnProperty'](_0xdd60('0x33'))){_0x33813e[_0xdd60('0x1a')]=qs[_0xdd60('0x1a')](_0x5a4691[_0xdd60('0x2c')][_0xdd60('0x1a')]);_0x33813e[_0xdd60('0x19')]=qs['offset'](_0x5a4691[_0xdd60('0x2c')][_0xdd60('0x19')]);}_0x33813e[_0xdd60('0x34')]=qs['sort'](_0x5a4691['query'][_0xdd60('0x35')]);_0x33813e[_0xdd60('0x36')]=qs['filters'](_[_0xdd60('0x37')](_0x5a4691[_0xdd60('0x2c')],_0x3e6ac6['filters']));if(_0x1d734a['dateStart']){if(_0x1d734a['dateEnd']){_0x1d734a[_0xdd60('0x38')]=moment(_0x1d734a[_0xdd60('0x38')])['add'](0x1,_0xdd60('0x39'));}else{_0x1d734a[_0xdd60('0x38')]=moment(_0x1d734a['dateStart'])['add'](0x1,'day');}_[_0xdd60('0x3a')](_0x33813e['where'],{'createdAt':{'$gte':_0x1d734a['dateStart'],'$lte':_0x1d734a[_0xdd60('0x38')]}});}if(_0x5a4691[_0xdd60('0x2c')]['filter']){_0x33813e[_0xdd60('0x36')]=_[_0xdd60('0x3a')](_0x33813e[_0xdd60('0x36')],{'$or':_[_0xdd60('0x3b')](_0x33813e[_0xdd60('0x32')],function(_0x5e13dd){var _0x17a449={};_0x17a449[_0x5e13dd]={'$like':'%'+_0x5a4691[_0xdd60('0x2c')][_0xdd60('0x3c')]+'%'};return _0x17a449;})});}_0x33813e=_[_0xdd60('0x3a')]({},_0x33813e,_0x5a4691[_0xdd60('0x3d')]);var _0x5eca49={'where':_0x33813e[_0xdd60('0x36')]};return db['VoiceMail'][_0xdd60('0x18')](_0x5eca49)[_0xdd60('0x20')](function(_0x400754){_0x2388d0[_0xdd60('0x18')]=_0x400754;if(_0x5a4691[_0xdd60('0x2c')][_0xdd60('0x3e')]){_0x33813e['include']=[{'all':!![]}];}return db[_0xdd60('0x28')][_0xdd60('0x3f')](_0x33813e);})['then'](function(_0x3a887a){_0x2388d0['rows']=_0x3a887a;return _0x2388d0;})[_0xdd60('0x20')](respondWithFilteredResult(_0x481a40,_0x33813e))[_0xdd60('0x40')](handleError(_0x481a40,null));};exports[_0xdd60('0x41')]=function(_0x5cfd0e,_0x400b5a){var _0x220bef={'raw':!![],'where':{'id':_0x5cfd0e[_0xdd60('0x42')]['id']}},_0x45173e={};_0x45173e[_0xdd60('0x2a')]=_['keys'](db[_0xdd60('0x28')][_0xdd60('0x29')]);_0x45173e['query']=_[_0xdd60('0x2d')](_0x5cfd0e['query']);_0x45173e['filters']=_['intersection'](_0x45173e[_0xdd60('0x2a')],_0x45173e[_0xdd60('0x2c')]);_0x220bef[_0xdd60('0x32')]=_[_0xdd60('0x2f')](_0x45173e['model'],qs[_0xdd60('0x30')](_0x5cfd0e[_0xdd60('0x2c')][_0xdd60('0x30')]));_0x220bef[_0xdd60('0x32')]=_0x220bef['attributes'][_0xdd60('0x31')]?_0x220bef[_0xdd60('0x32')]:_0x45173e['model'];if(_0x5cfd0e[_0xdd60('0x2c')][_0xdd60('0x3e')]){_0x220bef[_0xdd60('0x43')]=[{'all':!![]}];}_0x220bef=_['merge']({},_0x220bef,_0x5cfd0e[_0xdd60('0x3d')]);return db[_0xdd60('0x28')][_0xdd60('0x44')](_0x220bef)['then'](handleEntityNotFound(_0x400b5a,null))[_0xdd60('0x20')](respondWithResult(_0x400b5a,null))[_0xdd60('0x40')](handleError(_0x400b5a,null));};exports['create']=function(_0x3022c0,_0x508232){return db[_0xdd60('0x28')]['create'](_0x3022c0[_0xdd60('0x45')],{})[_0xdd60('0x20')](respondWithResult(_0x508232,0xc9))[_0xdd60('0x40')](handleError(_0x508232,null));};exports['update']=function(_0xb5e195,_0x2a6e69){if(_0xb5e195['body']['id']){delete _0xb5e195[_0xdd60('0x45')]['id'];}return db[_0xdd60('0x28')][_0xdd60('0x44')]({'where':{'id':_0xb5e195[_0xdd60('0x42')]['id']}})['then'](handleEntityNotFound(_0x2a6e69,null))[_0xdd60('0x20')](saveUpdates(_0xb5e195[_0xdd60('0x45')],null))[_0xdd60('0x20')](respondWithResult(_0x2a6e69,null))[_0xdd60('0x40')](handleError(_0x2a6e69,null));};exports[_0xdd60('0x46')]=function(_0x16bbbf,_0x1ffb6c){return db['VoiceMail']['find']({'where':{'id':_0x16bbbf[_0xdd60('0x42')]['id']}})['then'](handleEntityNotFound(_0x1ffb6c,null))[_0xdd60('0x20')](removeEntity(_0x1ffb6c,null))['catch'](handleError(_0x1ffb6c,null));};exports[_0xdd60('0x47')]=function(_0x3191ae,_0x55a063,_0x2ee8eb){return db[_0xdd60('0x28')][_0xdd60('0x48')]({'where':{'id':_0x3191ae[_0xdd60('0x42')]['id']}})[_0xdd60('0x20')](handleEntityNotFound(_0x55a063,null))['then'](function(_0x16f3ce){var _0xc93725;var _0x718453={},_0xae4587={};_0xae4587['model']=_[_0xdd60('0x2d')](db[_0xdd60('0x49')][_0xdd60('0x29')]);_0xae4587[_0xdd60('0x2c')]=_[_0xdd60('0x2d')](_0x3191ae[_0xdd60('0x2c')]);_0xae4587[_0xdd60('0x2e')]=_['intersection'](_0xae4587[_0xdd60('0x2a')],_0xae4587[_0xdd60('0x2c')]);_0x718453[_0xdd60('0x32')]=_['intersection'](_0xae4587[_0xdd60('0x2a')],qs[_0xdd60('0x30')](_0x3191ae[_0xdd60('0x2c')][_0xdd60('0x30')]));_0x718453['attributes']=_0x718453[_0xdd60('0x32')]['length']?_0x718453[_0xdd60('0x32')]:_0xae4587['model'];if(!_0x3191ae[_0xdd60('0x2c')]['hasOwnProperty']('nolimit')){_0x718453[_0xdd60('0x1a')]=qs[_0xdd60('0x1a')](_0x3191ae[_0xdd60('0x2c')][_0xdd60('0x1a')]);_0x718453[_0xdd60('0x19')]=qs[_0xdd60('0x19')](_0x3191ae[_0xdd60('0x2c')][_0xdd60('0x19')]);}_0x718453[_0xdd60('0x34')]=qs[_0xdd60('0x35')](_0x3191ae[_0xdd60('0x2c')][_0xdd60('0x35')]);_0x718453[_0xdd60('0x36')]=qs[_0xdd60('0x2e')](_[_0xdd60('0x37')](_0x3191ae[_0xdd60('0x2c')],_0xae4587[_0xdd60('0x2e')]));if(_0x3191ae[_0xdd60('0x2c')]['filter']){_0x718453[_0xdd60('0x36')]=_['merge'](_0x718453[_0xdd60('0x36')],{'$or':_['map'](_0x718453[_0xdd60('0x32')],function(_0x2d00ed){var _0x958c75={};_0x958c75[_0x2d00ed]={'$like':'%'+_0x3191ae[_0xdd60('0x2c')][_0xdd60('0x3c')]+'%'};return _0x958c75;})});}_0x718453[_0xdd60('0x36')]=_[_0xdd60('0x3a')](_0x718453[_0xdd60('0x36')],{'mailboxuser':_0x16f3ce[_0xdd60('0x4a')]});_0x718453=_[_0xdd60('0x3a')]({},_0x718453,_0x3191ae[_0xdd60('0x3d')]);return db[_0xdd60('0x49')][_0xdd60('0x4b')](_0x718453)[_0xdd60('0x20')](respondWithFilteredResult(_0x55a063,_0x718453));})[_0xdd60('0x40')](handleError(_0x55a063,null));};
\ No newline at end of file
+var _0x2ee5=['attributes','fields','length','order','sort','where','pick','add','day','merge','filter','map','options','VoiceMail','includeAll','findAll','rows','catch','show','params','include','create','body','find','hasOwnProperty','VoiceMailMessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','count','offset','limit','set','apply','reject','save','update','then','destroy','error','stack','name','send','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection'];(function(_0x3fba9f,_0x3b7b9b){var _0x192cf1=function(_0x557290){while(--_0x557290){_0x3fba9f['push'](_0x3fba9f['shift']());}};_0x192cf1(++_0x3b7b9b);}(_0x2ee5,0xfb));var _0x52ee=function(_0x2d5f34,_0x10e2d4){_0x2d5f34=_0x2d5f34-0x0;var _0x27300e=_0x2ee5[_0x2d5f34];return _0x27300e;};'use strict';var pdf=require(_0x52ee('0x0'));var emlformat=require(_0x52ee('0x1'));var rimraf=require(_0x52ee('0x2'));var zipdir=require(_0x52ee('0x3'));var jsonpatch=require(_0x52ee('0x4'));var rp=require(_0x52ee('0x5'));var moment=require(_0x52ee('0x6'));var BPromise=require(_0x52ee('0x7'));var Mustache=require(_0x52ee('0x8'));var util=require(_0x52ee('0x9'));var path=require(_0x52ee('0xa'));var sox=require(_0x52ee('0xb'));var csv=require(_0x52ee('0xc'));var ejs=require(_0x52ee('0xd'));var fs=require('fs');var _=require('lodash');var squel=require(_0x52ee('0xe'));var crypto=require('crypto');var jsforce=require(_0x52ee('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x52ee('0xc'));var querystring=require('querystring');var Papa=require(_0x52ee('0x10'));var Redis=require(_0x52ee('0x11'));var qs=require(_0x52ee('0x12'));var logger=require(_0x52ee('0x13'))(_0x52ee('0x14'));var utils=require(_0x52ee('0x15'));var config=require(_0x52ee('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2befe3,_0x42b379){_0x42b379=_0x42b379||0xcc;return function(_0x2793d0){if(_0x2793d0){return _0x2befe3[_0x52ee('0x17')](_0x42b379);}return _0x2befe3['status'](_0x42b379)[_0x52ee('0x18')]();};}function respondWithResult(_0x30e47b,_0x26dabe){_0x26dabe=_0x26dabe||0xc8;return function(_0x571136){if(_0x571136){return _0x30e47b[_0x52ee('0x19')](_0x26dabe)[_0x52ee('0x1a')](_0x571136);}};}function respondWithFilteredResult(_0x2a889e,_0x3088f7){return function(_0x1e6846){if(_0x1e6846){var _0x407b59=_0x1e6846[_0x52ee('0x1b')],_0x519576=_0x3088f7[_0x52ee('0x1c')],_0x3aef34=_0x3088f7[_0x52ee('0x1c')]+_0x3088f7[_0x52ee('0x1d')],_0x3c0577;if(_0x3aef34>=_0x407b59){_0x3aef34=_0x407b59;_0x3c0577=0xc8;}else{_0x3c0577=0xce;}_0x2a889e[_0x52ee('0x19')](_0x3c0577);return _0x2a889e[_0x52ee('0x1e')]('Content-Range',_0x519576+'-'+_0x3aef34+'/'+_0x407b59)[_0x52ee('0x1a')](_0x1e6846);}return null;};}function patchUpdates(_0x3a85a3){return function(_0x388cac){try{jsonpatch[_0x52ee('0x1f')](_0x388cac,_0x3a85a3,!![]);}catch(_0xd87b30){return BPromise[_0x52ee('0x20')](_0xd87b30);}return _0x388cac[_0x52ee('0x21')]();};}function saveUpdates(_0x4795b8,_0x18c1e3){return function(_0x6ee77){if(_0x6ee77){return _0x6ee77[_0x52ee('0x22')](_0x4795b8)[_0x52ee('0x23')](function(_0x2d196c){return _0x2d196c;});}return null;};}function removeEntity(_0x3081df,_0x2a6431){return function(_0x313e1c){if(_0x313e1c){return _0x313e1c[_0x52ee('0x24')]()[_0x52ee('0x23')](function(){_0x3081df['status'](0xcc)[_0x52ee('0x18')]();});}};}function handleEntityNotFound(_0x1aa1ee,_0x5d35f1){return function(_0x34da62){if(!_0x34da62){_0x1aa1ee['sendStatus'](0x194);}return _0x34da62;};}function handleError(_0x5951e4,_0x27b639){_0x27b639=_0x27b639||0x1f4;return function(_0x300fff){logger[_0x52ee('0x25')](_0x300fff[_0x52ee('0x26')]);if(_0x300fff[_0x52ee('0x27')]){delete _0x300fff['name'];}_0x5951e4[_0x52ee('0x19')](_0x27b639)[_0x52ee('0x28')](_0x300fff);};}exports['index']=function(_0x54684f,_0x59c652){var _0x4b378c={},_0x21d3ad={},_0x5a8f61={'count':0x0,'rows':[]};var _0x5ccdfe=db['VoiceMail'][_0x52ee('0x29')];_0x21d3ad[_0x52ee('0x2a')]=_[_0x52ee('0x2b')](_0x5ccdfe);var _0x1e7b2e={'dateStart':_0x54684f[_0x52ee('0x2c')][_0x52ee('0x2d')],'dateEnd':_0x54684f[_0x52ee('0x2c')]['dateEnd']};delete _0x54684f[_0x52ee('0x2c')][_0x52ee('0x2d')];delete _0x54684f[_0x52ee('0x2c')][_0x52ee('0x2e')];_0x21d3ad[_0x52ee('0x2c')]=_[_0x52ee('0x2b')](_0x54684f['query']);_0x21d3ad[_0x52ee('0x2f')]=_[_0x52ee('0x30')](_0x21d3ad['model'],_0x21d3ad[_0x52ee('0x2c')]);_0x4b378c[_0x52ee('0x31')]=_[_0x52ee('0x30')](_0x21d3ad[_0x52ee('0x2a')],qs[_0x52ee('0x32')](_0x54684f[_0x52ee('0x2c')][_0x52ee('0x32')]));_0x4b378c[_0x52ee('0x31')]=_0x4b378c[_0x52ee('0x31')][_0x52ee('0x33')]?_0x4b378c[_0x52ee('0x31')]:_0x21d3ad[_0x52ee('0x2a')];if(!_0x54684f[_0x52ee('0x2c')]['hasOwnProperty']('nolimit')){_0x4b378c[_0x52ee('0x1d')]=qs[_0x52ee('0x1d')](_0x54684f[_0x52ee('0x2c')][_0x52ee('0x1d')]);_0x4b378c[_0x52ee('0x1c')]=qs[_0x52ee('0x1c')](_0x54684f[_0x52ee('0x2c')][_0x52ee('0x1c')]);}_0x4b378c[_0x52ee('0x34')]=qs[_0x52ee('0x35')](_0x54684f[_0x52ee('0x2c')][_0x52ee('0x35')]);_0x4b378c[_0x52ee('0x36')]=qs['filters'](_[_0x52ee('0x37')](_0x54684f[_0x52ee('0x2c')],_0x21d3ad[_0x52ee('0x2f')]));if(_0x1e7b2e['dateStart']){if(_0x1e7b2e[_0x52ee('0x2e')]){_0x1e7b2e[_0x52ee('0x2e')]=moment(_0x1e7b2e[_0x52ee('0x2e')])[_0x52ee('0x38')](0x1,_0x52ee('0x39'));}else{_0x1e7b2e[_0x52ee('0x2e')]=moment(_0x1e7b2e[_0x52ee('0x2d')])['add'](0x1,_0x52ee('0x39'));}_[_0x52ee('0x3a')](_0x4b378c[_0x52ee('0x36')],{'createdAt':{'$gte':_0x1e7b2e[_0x52ee('0x2d')],'$lte':_0x1e7b2e[_0x52ee('0x2e')]}});}if(_0x54684f['query'][_0x52ee('0x3b')]){_0x4b378c[_0x52ee('0x36')]=_['merge'](_0x4b378c[_0x52ee('0x36')],{'$or':_[_0x52ee('0x3c')](_0x4b378c[_0x52ee('0x31')],function(_0xc68706){var _0x5860ce={};_0x5860ce[_0xc68706]={'$like':'%'+_0x54684f[_0x52ee('0x2c')]['filter']+'%'};return _0x5860ce;})});}_0x4b378c=_[_0x52ee('0x3a')]({},_0x4b378c,_0x54684f[_0x52ee('0x3d')]);var _0x559b30={'where':_0x4b378c[_0x52ee('0x36')]};return db[_0x52ee('0x3e')][_0x52ee('0x1b')](_0x559b30)['then'](function(_0x4d2c4a){_0x5a8f61[_0x52ee('0x1b')]=_0x4d2c4a;if(_0x54684f[_0x52ee('0x2c')][_0x52ee('0x3f')]){_0x4b378c['include']=[{'all':!![]}];}return db[_0x52ee('0x3e')][_0x52ee('0x40')](_0x4b378c);})['then'](function(_0x2534a6){_0x5a8f61[_0x52ee('0x41')]=_0x2534a6;return _0x5a8f61;})[_0x52ee('0x23')](respondWithFilteredResult(_0x59c652,_0x4b378c))[_0x52ee('0x42')](handleError(_0x59c652,null));};exports[_0x52ee('0x43')]=function(_0x3eca69,_0x5dbf2b){var _0xcfaf6d={'raw':!![],'where':{'id':_0x3eca69[_0x52ee('0x44')]['id']}},_0x4655fe={};_0x4655fe[_0x52ee('0x2a')]=_[_0x52ee('0x2b')](db[_0x52ee('0x3e')][_0x52ee('0x29')]);_0x4655fe[_0x52ee('0x2c')]=_[_0x52ee('0x2b')](_0x3eca69[_0x52ee('0x2c')]);_0x4655fe[_0x52ee('0x2f')]=_[_0x52ee('0x30')](_0x4655fe[_0x52ee('0x2a')],_0x4655fe[_0x52ee('0x2c')]);_0xcfaf6d['attributes']=_[_0x52ee('0x30')](_0x4655fe['model'],qs[_0x52ee('0x32')](_0x3eca69[_0x52ee('0x2c')][_0x52ee('0x32')]));_0xcfaf6d[_0x52ee('0x31')]=_0xcfaf6d[_0x52ee('0x31')][_0x52ee('0x33')]?_0xcfaf6d[_0x52ee('0x31')]:_0x4655fe['model'];if(_0x3eca69[_0x52ee('0x2c')][_0x52ee('0x3f')]){_0xcfaf6d[_0x52ee('0x45')]=[{'all':!![]}];}_0xcfaf6d=_[_0x52ee('0x3a')]({},_0xcfaf6d,_0x3eca69[_0x52ee('0x3d')]);return db[_0x52ee('0x3e')]['find'](_0xcfaf6d)[_0x52ee('0x23')](handleEntityNotFound(_0x5dbf2b,null))[_0x52ee('0x23')](respondWithResult(_0x5dbf2b,null))[_0x52ee('0x42')](handleError(_0x5dbf2b,null));};exports[_0x52ee('0x46')]=function(_0x35661c,_0x13f451){return db[_0x52ee('0x3e')][_0x52ee('0x46')](_0x35661c['body'],{})[_0x52ee('0x23')](respondWithResult(_0x13f451,0xc9))['catch'](handleError(_0x13f451,null));};exports['update']=function(_0x409849,_0x3c70fa){if(_0x409849[_0x52ee('0x47')]['id']){delete _0x409849[_0x52ee('0x47')]['id'];}return db[_0x52ee('0x3e')][_0x52ee('0x48')]({'where':{'id':_0x409849[_0x52ee('0x44')]['id']}})[_0x52ee('0x23')](handleEntityNotFound(_0x3c70fa,null))[_0x52ee('0x23')](saveUpdates(_0x409849[_0x52ee('0x47')],null))['then'](respondWithResult(_0x3c70fa,null))['catch'](handleError(_0x3c70fa,null));};exports[_0x52ee('0x24')]=function(_0x7979bd,_0x51db2b){return db[_0x52ee('0x3e')][_0x52ee('0x48')]({'where':{'id':_0x7979bd[_0x52ee('0x44')]['id']}})[_0x52ee('0x23')](handleEntityNotFound(_0x51db2b,null))['then'](removeEntity(_0x51db2b,null))[_0x52ee('0x42')](handleError(_0x51db2b,null));};exports['getMessages']=function(_0xf2594d,_0x263541,_0x1c06b0){return db[_0x52ee('0x3e')]['findOne']({'where':{'id':_0xf2594d['params']['id']}})[_0x52ee('0x23')](handleEntityNotFound(_0x263541,null))[_0x52ee('0x23')](function(_0x548ea3){var _0x176ba0;var _0x4285f4={},_0x5e3bd5={};_0x5e3bd5['model']=_[_0x52ee('0x2b')](db['VoiceMailMessage'][_0x52ee('0x29')]);_0x5e3bd5[_0x52ee('0x2c')]=_[_0x52ee('0x2b')](_0xf2594d['query']);_0x5e3bd5['filters']=_[_0x52ee('0x30')](_0x5e3bd5[_0x52ee('0x2a')],_0x5e3bd5['query']);_0x4285f4['attributes']=_['intersection'](_0x5e3bd5[_0x52ee('0x2a')],qs[_0x52ee('0x32')](_0xf2594d[_0x52ee('0x2c')][_0x52ee('0x32')]));_0x4285f4['attributes']=_0x4285f4[_0x52ee('0x31')][_0x52ee('0x33')]?_0x4285f4[_0x52ee('0x31')]:_0x5e3bd5[_0x52ee('0x2a')];if(!_0xf2594d[_0x52ee('0x2c')][_0x52ee('0x49')]('nolimit')){_0x4285f4[_0x52ee('0x1d')]=qs[_0x52ee('0x1d')](_0xf2594d[_0x52ee('0x2c')][_0x52ee('0x1d')]);_0x4285f4[_0x52ee('0x1c')]=qs['offset'](_0xf2594d['query']['offset']);}_0x4285f4[_0x52ee('0x34')]=qs[_0x52ee('0x35')](_0xf2594d[_0x52ee('0x2c')]['sort']);_0x4285f4[_0x52ee('0x36')]=qs['filters'](_['pick'](_0xf2594d['query'],_0x5e3bd5[_0x52ee('0x2f')]));if(_0xf2594d[_0x52ee('0x2c')][_0x52ee('0x3b')]){_0x4285f4[_0x52ee('0x36')]=_['merge'](_0x4285f4['where'],{'$or':_[_0x52ee('0x3c')](_0x4285f4[_0x52ee('0x31')],function(_0x15b52e){var _0x252ec6={};_0x252ec6[_0x15b52e]={'$like':'%'+_0xf2594d['query'][_0x52ee('0x3b')]+'%'};return _0x252ec6;})});}_0x4285f4[_0x52ee('0x36')]=_[_0x52ee('0x3a')](_0x4285f4[_0x52ee('0x36')],{'mailboxuser':_0x548ea3['mailbox']});_0x4285f4=_[_0x52ee('0x3a')]({},_0x4285f4,_0xf2594d[_0x52ee('0x3d')]);return db[_0x52ee('0x4a')]['findAndCountAll'](_0x4285f4)[_0x52ee('0x23')](respondWithFilteredResult(_0x263541,_0x4285f4));})[_0x52ee('0x42')](handleError(_0x263541,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x560e=['../../config/logger','api','moment','bluebird','request-promise','./voiceMail.attributes','exports','define','VoiceMail','voice_voicemail','mailbox_context','mailbox','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x560e,0x14e));var _0xe560=function(_0x412014,_0x261677){_0x412014=_0x412014-0x0;var _0x30a025=_0x560e[_0x412014];return _0x30a025;};'use strict';var _=require(_0xe560('0x0'));var util=require(_0xe560('0x1'));var logger=require(_0xe560('0x2'))(_0xe560('0x3'));var moment=require(_0xe560('0x4'));var BPromise=require(_0xe560('0x5'));var rp=require(_0xe560('0x6'));var attributes=require(_0xe560('0x7'));module[_0xe560('0x8')]=function(_0x8cdb21,_0x5ce19c){return _0x8cdb21[_0xe560('0x9')](_0xe560('0xa'),attributes,{'tableName':_0xe560('0xb'),'paranoid':![],'indexes':[{'name':_0xe560('0xc'),'fields':[_0xe560('0xd'),'context']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x4481=['bluebird','./voiceMail.attributes','exports','define','voice_voicemail','mailbox_context','mailbox','context','lodash','../../config/logger','api','moment'];(function(_0x4108ae,_0x26ba58){var _0x4f2b33=function(_0x1ac988){while(--_0x1ac988){_0x4108ae['push'](_0x4108ae['shift']());}};_0x4f2b33(++_0x26ba58);}(_0x4481,0x80));var _0x1448=function(_0x36d18b,_0x49ab06){_0x36d18b=_0x36d18b-0x0;var _0x46b42b=_0x4481[_0x36d18b];return _0x46b42b;};'use strict';var _=require(_0x1448('0x0'));var util=require('util');var logger=require(_0x1448('0x1'))(_0x1448('0x2'));var moment=require(_0x1448('0x3'));var BPromise=require(_0x1448('0x4'));var rp=require('request-promise');var attributes=require(_0x1448('0x5'));module[_0x1448('0x6')]=function(_0x1d6da6,_0x55737b){return _0x1d6da6[_0x1448('0x7')]('VoiceMail',attributes,{'tableName':_0x1448('0x8'),'paranoid':![],'indexes':[{'name':_0x1448('0x9'),'fields':[_0x1448('0xa'),_0x1448('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb401=['util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','VoiceMail,\x20%s,\x20%s','request\x20sent','VoiceMail,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash'];(function(_0x25ca44,_0x111633){var _0x4897c1=function(_0xf344b9){while(--_0xf344b9){_0x25ca44['push'](_0x25ca44['shift']());}};_0x4897c1(++_0x111633);}(_0xb401,0xd7));var _0x1b40=function(_0x213f4f,_0x263862){_0x213f4f=_0x213f4f-0x0;var _0x443945=_0xb401[_0x213f4f];return _0x443945;};'use strict';var _=require(_0x1b40('0x0'));var util=require(_0x1b40('0x1'));var moment=require(_0x1b40('0x2'));var BPromise=require(_0x1b40('0x3'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x1b40('0x4'))['db'];var utils=require(_0x1b40('0x5'));var logger=require(_0x1b40('0x6'))(_0x1b40('0x7'));var config=require(_0x1b40('0x8'));var jayson=require(_0x1b40('0x9'));var client=jayson[_0x1b40('0xa')][_0x1b40('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3a6ef2,_0x13a3f5,_0x41e95a){return new BPromise(function(_0x378978,_0x162936){return client[_0x1b40('0xc')](_0x3a6ef2,_0x41e95a)[_0x1b40('0xd')](function(_0x390ce0){logger['info'](_0x1b40('0xe'),_0x13a3f5,_0x1b40('0xf'));logger['debug'](_0x1b40('0x10'),_0x13a3f5,_0x1b40('0xf'),JSON[_0x1b40('0x11')](_0x390ce0));if(_0x390ce0['error']){if(_0x390ce0[_0x1b40('0x12')][_0x1b40('0x13')]===0x1f4){logger['error']('VoiceMail,\x20%s,\x20%s',_0x13a3f5,_0x390ce0[_0x1b40('0x12')]['message']);return _0x162936(_0x390ce0[_0x1b40('0x12')][_0x1b40('0x14')]);}logger[_0x1b40('0x12')](_0x1b40('0xe'),_0x13a3f5,_0x390ce0['error'][_0x1b40('0x14')]);return _0x378978(_0x390ce0[_0x1b40('0x12')][_0x1b40('0x14')]);}else{logger[_0x1b40('0x15')]('VoiceMail,\x20%s,\x20%s',_0x13a3f5,_0x1b40('0xf'));_0x378978(_0x390ce0[_0x1b40('0x16')]['message']);}})[_0x1b40('0x17')](function(_0x999b3e){logger[_0x1b40('0x12')](_0x1b40('0xe'),_0x13a3f5,_0x999b3e);_0x162936(_0x999b3e);});});}
\ No newline at end of file
+var _0xcc68=['VoiceMail,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','jayson/promise','client','http','request','info'];(function(_0x2d15f3,_0x3fe35a){var _0x168641=function(_0x4b5f0b){while(--_0x4b5f0b){_0x2d15f3['push'](_0x2d15f3['shift']());}};_0x168641(++_0x3fe35a);}(_0xcc68,0x197));var _0x8cc6=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xcc68[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0x8cc6('0x0'));var util=require(_0x8cc6('0x1'));var moment=require(_0x8cc6('0x2'));var BPromise=require(_0x8cc6('0x3'));var rs=require(_0x8cc6('0x4'));var fs=require('fs');var Redis=require(_0x8cc6('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x8cc6('0x6'));var logger=require('../../config/logger')(_0x8cc6('0x7'));var config=require('../../config/environment');var jayson=require(_0x8cc6('0x8'));var client=jayson[_0x8cc6('0x9')][_0x8cc6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3013d2,_0x4fb2b4,_0x4a7668){return new BPromise(function(_0x51c734,_0xc8b7da){return client[_0x8cc6('0xb')](_0x3013d2,_0x4a7668)['then'](function(_0x535946){logger[_0x8cc6('0xc')](_0x8cc6('0xd'),_0x4fb2b4,_0x8cc6('0xe'));logger['debug']('VoiceMail,\x20%s,\x20%s,\x20%s',_0x4fb2b4,'request\x20sent',JSON[_0x8cc6('0xf')](_0x535946));if(_0x535946[_0x8cc6('0x10')]){if(_0x535946['error'][_0x8cc6('0x11')]===0x1f4){logger[_0x8cc6('0x10')]('VoiceMail,\x20%s,\x20%s',_0x4fb2b4,_0x535946['error'][_0x8cc6('0x12')]);return _0xc8b7da(_0x535946[_0x8cc6('0x10')][_0x8cc6('0x12')]);}logger[_0x8cc6('0x10')]('VoiceMail,\x20%s,\x20%s',_0x4fb2b4,_0x535946[_0x8cc6('0x10')][_0x8cc6('0x12')]);return _0x51c734(_0x535946[_0x8cc6('0x10')]['message']);}else{logger['info'](_0x8cc6('0xd'),_0x4fb2b4,_0x8cc6('0xe'));_0x51c734(_0x535946['result'][_0x8cc6('0x12')]);}})[_0x8cc6('0x13')](function(_0x28b309){logger[_0x8cc6('0x10')](_0x8cc6('0xd'),_0x4fb2b4,_0x28b309);_0xc8b7da(_0x28b309);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x664b=['get','isAuthenticated','index','/:id','show','/:id/download','download','post','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment'];(function(_0x16c9e6,_0x41f0a6){var _0x2ff5c9=function(_0x42a1b7){while(--_0x42a1b7){_0x16c9e6['push'](_0x16c9e6['shift']());}};_0x2ff5c9(++_0x41f0a6);}(_0x664b,0xc0));var _0xb664=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x664b[_0x40a045];return _0x1a687c;};'use strict';var multer=require(_0xb664('0x0'));var util=require(_0xb664('0x1'));var path=require(_0xb664('0x2'));var timeout=require(_0xb664('0x3'));var express=require(_0xb664('0x4'));var router=express[_0xb664('0x5')]();var auth=require(_0xb664('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xb664('0x7'));var controller=require('./voiceMailMessage.controller');router[_0xb664('0x8')]('/',auth[_0xb664('0x9')](),controller[_0xb664('0xa')]);router['get'](_0xb664('0xb'),auth[_0xb664('0x9')](),controller[_0xb664('0xc')]);router[_0xb664('0x8')](_0xb664('0xd'),auth[_0xb664('0x9')](),controller[_0xb664('0xe')]);router[_0xb664('0xf')]('/',auth[_0xb664('0x9')](),controller['create']);router[_0xb664('0x10')]('/:id',auth[_0xb664('0x9')](),controller[_0xb664('0x11')]);router[_0xb664('0x12')](_0xb664('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xb664('0x13')]=router;
\ No newline at end of file
+var _0xc539=['download','post','put','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','/:id/download'];(function(_0x408e18,_0x45313c){var _0x38ebd2=function(_0x45634a){while(--_0x45634a){_0x408e18['push'](_0x408e18['shift']());}};_0x38ebd2(++_0x45313c);}(_0xc539,0x1a4));var _0x9c53=function(_0x502cd3,_0xe4fd9d){_0x502cd3=_0x502cd3-0x0;var _0x1f1c57=_0xc539[_0x502cd3];return _0x1f1c57;};'use strict';var multer=require(_0x9c53('0x0'));var util=require(_0x9c53('0x1'));var path=require('path');var timeout=require(_0x9c53('0x2'));var express=require(_0x9c53('0x3'));var router=express[_0x9c53('0x4')]();var auth=require(_0x9c53('0x5'));var interaction=require(_0x9c53('0x6'));var config=require('../../config/environment');var controller=require('./voiceMailMessage.controller');router[_0x9c53('0x7')]('/',auth[_0x9c53('0x8')](),controller[_0x9c53('0x9')]);router[_0x9c53('0x7')](_0x9c53('0xa'),auth[_0x9c53('0x8')](),controller['show']);router[_0x9c53('0x7')](_0x9c53('0xb'),auth['isAuthenticated'](),controller[_0x9c53('0xc')]);router[_0x9c53('0xd')]('/',auth[_0x9c53('0x8')](),controller['create']);router[_0x9c53('0xe')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x9c53('0xf')]('/:id',auth[_0x9c53('0x8')](),controller[_0x9c53('0x10')]);module[_0x9c53('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9980=['sequelize','exports','VIRTUAL','INTEGER','STRING','BLOB'];(function(_0x2f45ea,_0x15c656){var _0x485a84=function(_0x4a1fe3){while(--_0x4a1fe3){_0x2f45ea['push'](_0x2f45ea['shift']());}};_0x485a84(++_0x15c656);}(_0x9980,0x84));var _0x0998=function(_0x5d7774,_0x10e3db){_0x5d7774=_0x5d7774-0x0;var _0x100409=_0x9980[_0x5d7774];return _0x100409;};'use strict';var Sequelize=require(_0x0998('0x0'));module[_0x0998('0x1')]={'name':{'type':Sequelize[_0x0998('0x2')],'get':function(_0x16528c){return this['getDataValue']('id');}},'msgnum':{'type':Sequelize[_0x0998('0x3')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'context':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'callerid':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'origtime':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'duration':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0x0998('0x4')],'defaultValue':''},'recording':{'type':Sequelize[_0x0998('0x5')]('long'),'defaultValue':null},'flag':{'type':Sequelize['STRING'],'defaultValue':''},'msg_id':{'type':Sequelize['STRING'],'defaultValue':''},'stamp':{'type':'TIMESTAMP','allowNull':![]}};
\ No newline at end of file
+var _0x5e3f=['BLOB','long','TIMESTAMP','exports','VIRTUAL','getDataValue','INTEGER','STRING'];(function(_0x4a8a8e,_0x42fdbc){var _0x4590ac=function(_0x28450b){while(--_0x28450b){_0x4a8a8e['push'](_0x4a8a8e['shift']());}};_0x4590ac(++_0x42fdbc);}(_0x5e3f,0x1f3));var _0xf5e3=function(_0x5bf595,_0x3dcc0b){_0x5bf595=_0x5bf595-0x0;var _0x3026a4=_0x5e3f[_0x5bf595];return _0x3026a4;};'use strict';var Sequelize=require('sequelize');module[_0xf5e3('0x0')]={'name':{'type':Sequelize[_0xf5e3('0x1')],'get':function(_0x1be14a){return this[_0xf5e3('0x2')]('id');}},'msgnum':{'type':Sequelize[_0xf5e3('0x3')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'context':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'callerid':{'type':Sequelize['STRING'],'defaultValue':''},'origtime':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'duration':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'recording':{'type':Sequelize[_0xf5e3('0x5')](_0xf5e3('0x6')),'defaultValue':null},'flag':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'msg_id':{'type':Sequelize[_0xf5e3('0x4')],'defaultValue':''},'stamp':{'type':_0xf5e3('0x7'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x722d=['pick','day','filter','merge','options','includeAll','include','catch','show','keys','model','find','create','body','params','download','recording','msg_id','Sequelize','attachment','Content-Disposition','.wav\x22','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','set','apply','save','update','then','destroy','end','error','name','send','index','VoiceMailMessage','rawAttributes','differenceBy','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0x722d,0x1e4));var _0xd722=function(_0x123da7,_0x1da803){_0x123da7=_0x123da7-0x0;var _0x48b201=_0x722d[_0x123da7];return _0x48b201;};'use strict';var pdf=require(_0xd722('0x0'));var emlformat=require(_0xd722('0x1'));var rimraf=require(_0xd722('0x2'));var zipdir=require(_0xd722('0x3'));var jsonpatch=require(_0xd722('0x4'));var rp=require(_0xd722('0x5'));var moment=require(_0xd722('0x6'));var BPromise=require(_0xd722('0x7'));var Mustache=require(_0xd722('0x8'));var util=require(_0xd722('0x9'));var path=require('path');var sox=require('sox');var csv=require(_0xd722('0xa'));var ejs=require(_0xd722('0xb'));var fs=require('fs');var _=require(_0xd722('0xc'));var squel=require('squel');var crypto=require(_0xd722('0xd'));var jsforce=require(_0xd722('0xe'));var deskjs=require(_0xd722('0xf'));var toCsv=require('to-csv');var querystring=require(_0xd722('0x10'));var Papa=require(_0xd722('0x11'));var qs=require(_0xd722('0x12'));var logger=require('../../config/logger')(_0xd722('0x13'));var utils=require(_0xd722('0x14'));var config=require(_0xd722('0x15'));var db=require(_0xd722('0x16'))['db'];function respondWithStatusCode(_0x442464,_0x52d1d3){_0x52d1d3=_0x52d1d3||0xcc;return function(_0x5404ab){if(_0x5404ab){return _0x442464[_0xd722('0x17')](_0x52d1d3);}return _0x442464[_0xd722('0x18')](_0x52d1d3)['end']();};}function respondWithResult(_0x4abb26,_0x3d46d3){_0x3d46d3=_0x3d46d3||0xc8;return function(_0x3dd7cf){if(_0x3dd7cf){return _0x4abb26[_0xd722('0x18')](_0x3d46d3)[_0xd722('0x19')](_0x3dd7cf);}};}function respondWithFilteredResult(_0x313b81,_0x4f3e4b){return function(_0x49435a){if(_0x49435a){var _0x7413b4=_0x49435a[_0xd722('0x1a')],_0x57023a=_0x4f3e4b['offset'],_0x4fcf38=_0x4f3e4b[_0xd722('0x1b')]+_0x4f3e4b['limit'],_0x407cb1;if(_0x4fcf38>=_0x7413b4){_0x4fcf38=_0x7413b4;_0x407cb1=0xc8;}else{_0x407cb1=0xce;}_0x313b81[_0xd722('0x18')](_0x407cb1);return _0x313b81[_0xd722('0x1c')]('Content-Range',_0x57023a+'-'+_0x4fcf38+'/'+_0x7413b4)[_0xd722('0x19')](_0x49435a);}return null;};}function patchUpdates(_0x4eab05){return function(_0x27c6aa){try{jsonpatch[_0xd722('0x1d')](_0x27c6aa,_0x4eab05,!![]);}catch(_0x1a0183){return BPromise['reject'](_0x1a0183);}return _0x27c6aa[_0xd722('0x1e')]();};}function saveUpdates(_0x2325a9,_0x1a6674){return function(_0x2ff873){if(_0x2ff873){return _0x2ff873[_0xd722('0x1f')](_0x2325a9)[_0xd722('0x20')](function(_0x19a821){return _0x19a821;});}return null;};}function removeEntity(_0x26fb17,_0x25cdab){return function(_0x2772df){if(_0x2772df){return _0x2772df[_0xd722('0x21')]()[_0xd722('0x20')](function(){_0x26fb17[_0xd722('0x18')](0xcc)[_0xd722('0x22')]();});}};}function handleEntityNotFound(_0x36aa93,_0x27ef05){return function(_0x52a83a){if(!_0x52a83a){_0x36aa93[_0xd722('0x17')](0x194);}return _0x52a83a;};}function handleError(_0x2331b5,_0x101f8e){_0x101f8e=_0x101f8e||0x1f4;return function(_0x5a3e25){logger[_0xd722('0x23')](_0x5a3e25['stack']);if(_0x5a3e25[_0xd722('0x24')]){delete _0x5a3e25[_0xd722('0x24')];}_0x2331b5[_0xd722('0x18')](_0x101f8e)[_0xd722('0x25')](_0x5a3e25);};}exports[_0xd722('0x26')]=function(_0x35ae6b,_0x2a5b9c){var _0x25d166={},_0x23a288={},_0xbcb24a={'count':0x0,'rows':[]};var _0x19b779=db[_0xd722('0x27')][_0xd722('0x28')];_0x23a288['model']=_[_0xd722('0x29')](_['keys'](_0x19b779),[_0xd722('0x24')]);var _0x4b7438={'dateStart':_0x35ae6b[_0xd722('0x2a')][_0xd722('0x2b')],'dateEnd':_0x35ae6b['query'][_0xd722('0x2c')]};delete _0x35ae6b[_0xd722('0x2a')][_0xd722('0x2b')];delete _0x35ae6b['query'][_0xd722('0x2c')];_0x23a288[_0xd722('0x2a')]=_['keys'](_0x35ae6b[_0xd722('0x2a')]);_0x23a288[_0xd722('0x2d')]=_[_0xd722('0x2e')](_0x23a288['model'],_0x23a288[_0xd722('0x2a')]);_0x25d166[_0xd722('0x2f')]=_[_0xd722('0x2e')](_0x23a288['model'],qs[_0xd722('0x30')](_0x35ae6b[_0xd722('0x2a')][_0xd722('0x30')]));_0x25d166[_0xd722('0x2f')]=_0x25d166[_0xd722('0x2f')][_0xd722('0x31')]?_0x25d166[_0xd722('0x2f')]:_0x23a288['model'];if(!_0x35ae6b['query'][_0xd722('0x32')](_0xd722('0x33'))){_0x25d166[_0xd722('0x34')]=qs[_0xd722('0x34')](_0x35ae6b['query'][_0xd722('0x34')]);_0x25d166['offset']=qs['offset'](_0x35ae6b[_0xd722('0x2a')][_0xd722('0x1b')]);}_0x25d166['order']=qs['sort'](_0x35ae6b['query'][_0xd722('0x35')]);_0x25d166[_0xd722('0x36')]=qs['filters'](_[_0xd722('0x37')](_0x35ae6b[_0xd722('0x2a')],_0x23a288[_0xd722('0x2d')]));if(_0x4b7438['dateStart']){if(_0x4b7438[_0xd722('0x2c')]){_0x4b7438['dateEnd']=moment(_0x4b7438[_0xd722('0x2c')])['add'](0x1,_0xd722('0x38'));}else{_0x4b7438[_0xd722('0x2c')]=moment(_0x4b7438[_0xd722('0x2b')])['add'](0x1,_0xd722('0x38'));}_['merge'](_0x25d166[_0xd722('0x36')],{'createdAt':{'$gte':_0x4b7438[_0xd722('0x2b')],'$lte':_0x4b7438[_0xd722('0x2c')]}});}if(_0x35ae6b['query'][_0xd722('0x39')]){_0x25d166[_0xd722('0x36')]=_[_0xd722('0x3a')](_0x25d166[_0xd722('0x36')],{'$or':_['map'](_0x25d166[_0xd722('0x2f')],function(_0xa9b70b){var _0x57e65d={};_0x57e65d[_0xa9b70b]={'$like':'%'+_0x35ae6b[_0xd722('0x2a')]['filter']+'%'};return _0x57e65d;})});}_0x25d166=_['merge']({},_0x25d166,_0x35ae6b[_0xd722('0x3b')]);var _0x5e8f72={'where':_0x25d166['where']};return db['VoiceMailMessage'][_0xd722('0x1a')](_0x5e8f72)[_0xd722('0x20')](function(_0x162f09){_0xbcb24a['count']=_0x162f09;if(_0x35ae6b['query'][_0xd722('0x3c')]){_0x25d166[_0xd722('0x3d')]=[{'all':!![]}];}return db['VoiceMailMessage']['findAll'](_0x25d166);})[_0xd722('0x20')](function(_0x503bd1){_0xbcb24a['rows']=_0x503bd1;return _0xbcb24a;})[_0xd722('0x20')](respondWithFilteredResult(_0x2a5b9c,_0x25d166))[_0xd722('0x3e')](handleError(_0x2a5b9c,null));};exports[_0xd722('0x3f')]=function(_0x5594f9,_0x43a88e){var _0x57a36a={'raw':!![],'where':{'id':_0x5594f9['params']['id']}},_0x4a1ed2={};_0x4a1ed2['model']=_[_0xd722('0x40')](db[_0xd722('0x27')][_0xd722('0x28')]);_0x4a1ed2[_0xd722('0x2a')]=_[_0xd722('0x40')](_0x5594f9[_0xd722('0x2a')]);_0x4a1ed2[_0xd722('0x2d')]=_[_0xd722('0x2e')](_0x4a1ed2[_0xd722('0x41')],_0x4a1ed2[_0xd722('0x2a')]);_0x57a36a[_0xd722('0x2f')]=_['intersection'](_0x4a1ed2['model'],qs[_0xd722('0x30')](_0x5594f9[_0xd722('0x2a')][_0xd722('0x30')]));_0x57a36a[_0xd722('0x2f')]=_0x57a36a[_0xd722('0x2f')][_0xd722('0x31')]?_0x57a36a[_0xd722('0x2f')]:_0x4a1ed2[_0xd722('0x41')];if(_0x5594f9['query']['includeAll']){_0x57a36a[_0xd722('0x3d')]=[{'all':!![]}];}_0x57a36a=_[_0xd722('0x3a')]({},_0x57a36a,_0x5594f9['options']);return db[_0xd722('0x27')][_0xd722('0x42')](_0x57a36a)[_0xd722('0x20')](handleEntityNotFound(_0x43a88e,null))[_0xd722('0x20')](respondWithResult(_0x43a88e,null))[_0xd722('0x3e')](handleError(_0x43a88e,null));};exports['create']=function(_0x3ec173,_0x5bea5c){return db[_0xd722('0x27')][_0xd722('0x43')](_0x3ec173[_0xd722('0x44')],{})['then'](respondWithResult(_0x5bea5c,0xc9))[_0xd722('0x3e')](handleError(_0x5bea5c,null));};exports['update']=function(_0x56c1c7,_0x1420fa){if(_0x56c1c7[_0xd722('0x44')]['id']){delete _0x56c1c7[_0xd722('0x44')]['id'];}return db[_0xd722('0x27')][_0xd722('0x42')]({'where':{'id':_0x56c1c7[_0xd722('0x45')]['id']}})[_0xd722('0x20')](handleEntityNotFound(_0x1420fa,null))['then'](saveUpdates(_0x56c1c7[_0xd722('0x44')],null))['then'](respondWithResult(_0x1420fa,null))[_0xd722('0x3e')](handleError(_0x1420fa,null));};exports[_0xd722('0x21')]=function(_0x98faeb,_0x55db57){return db[_0xd722('0x27')][_0xd722('0x42')]({'where':{'id':_0x98faeb[_0xd722('0x45')]['id']}})['then'](handleEntityNotFound(_0x55db57,null))[_0xd722('0x20')](removeEntity(_0x55db57,null))[_0xd722('0x3e')](handleError(_0x55db57,null));};exports[_0xd722('0x46')]=function(_0x452639,_0x49f161,_0x2b7a38){return db[_0xd722('0x27')]['find']({'where':{'id':_0x452639[_0xd722('0x45')]['id']},'attributes':['id',_0xd722('0x47'),_0xd722('0x48')]})[_0xd722('0x20')](handleEntityNotFound(_0x49f161,null))[_0xd722('0x20')](function(_0x413ea6){if(_0x413ea6){if(!_0x413ea6['recording']){throw new db[(_0xd722('0x49'))]['ValidationError']('VoiceMailMessage\x20not\x20found');}var _0x24de27={'Content-Type':'audio/wav','Content-Disposition':_0xd722('0x4a')};if(_0x413ea6[_0xd722('0x48')]){_0x24de27[_0xd722('0x4b')]='attachment;\x20filename=\x22'+_0x413ea6[_0xd722('0x48')]+_0xd722('0x4c');}_0x49f161[_0xd722('0x1c')](_0x24de27);return _0x49f161[_0xd722('0x25')](new Buffer(_0x413ea6[_0xd722('0x47')]));}})['catch'](handleError(_0x49f161,null));};
\ No newline at end of file
+var _0xd7d1=['../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','status','count','offset','limit','set','Content-Range','reject','save','update','destroy','then','error','name','index','rawAttributes','model','differenceBy','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','add','day','merge','where','options','includeAll','include','rows','show','params','VoiceMailMessage','create','catch','body','find','recording','msg_id','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','attachment','.wav\x22','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis'];(function(_0x53cae9,_0x35d740){var _0x2cbf01=function(_0x2ebdd1){while(--_0x2ebdd1){_0x53cae9['push'](_0x53cae9['shift']());}};_0x2cbf01(++_0x35d740);}(_0xd7d1,0x1b3));var _0x1d7d=function(_0x3d1c5f,_0x405cef){_0x3d1c5f=_0x3d1c5f-0x0;var _0x4e5569=_0xd7d1[_0x3d1c5f];return _0x4e5569;};'use strict';var pdf=require(_0x1d7d('0x0'));var emlformat=require(_0x1d7d('0x1'));var rimraf=require(_0x1d7d('0x2'));var zipdir=require(_0x1d7d('0x3'));var jsonpatch=require(_0x1d7d('0x4'));var rp=require(_0x1d7d('0x5'));var moment=require(_0x1d7d('0x6'));var BPromise=require(_0x1d7d('0x7'));var Mustache=require(_0x1d7d('0x8'));var util=require(_0x1d7d('0x9'));var path=require(_0x1d7d('0xa'));var sox=require(_0x1d7d('0xb'));var csv=require(_0x1d7d('0xc'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x1d7d('0xd'));var squel=require(_0x1d7d('0xe'));var crypto=require(_0x1d7d('0xf'));var jsforce=require(_0x1d7d('0x10'));var deskjs=require(_0x1d7d('0x11'));var toCsv=require(_0x1d7d('0xc'));var querystring=require(_0x1d7d('0x12'));var Papa=require(_0x1d7d('0x13'));var Redis=require(_0x1d7d('0x14'));var qs=require(_0x1d7d('0x15'));var logger=require(_0x1d7d('0x16'))('api');var utils=require(_0x1d7d('0x17'));var config=require('../../config/environment');var db=require(_0x1d7d('0x18'))['db'];function respondWithStatusCode(_0x3a7add,_0x3ddf35){_0x3ddf35=_0x3ddf35||0xcc;return function(_0x30b888){if(_0x30b888){return _0x3a7add['sendStatus'](_0x3ddf35);}return _0x3a7add[_0x1d7d('0x19')](_0x3ddf35)['end']();};}function respondWithResult(_0x577e07,_0x19e6bc){_0x19e6bc=_0x19e6bc||0xc8;return function(_0x4049be){if(_0x4049be){return _0x577e07['status'](_0x19e6bc)['json'](_0x4049be);}};}function respondWithFilteredResult(_0x1d3822,_0x334e78){return function(_0xe10fdd){if(_0xe10fdd){var _0x183fc6=_0xe10fdd[_0x1d7d('0x1a')],_0xeb05b3=_0x334e78['offset'],_0x53423f=_0x334e78[_0x1d7d('0x1b')]+_0x334e78[_0x1d7d('0x1c')],_0x28adf3;if(_0x53423f>=_0x183fc6){_0x53423f=_0x183fc6;_0x28adf3=0xc8;}else{_0x28adf3=0xce;}_0x1d3822[_0x1d7d('0x19')](_0x28adf3);return _0x1d3822[_0x1d7d('0x1d')](_0x1d7d('0x1e'),_0xeb05b3+'-'+_0x53423f+'/'+_0x183fc6)['json'](_0xe10fdd);}return null;};}function patchUpdates(_0x664e3f){return function(_0x191024){try{jsonpatch['apply'](_0x191024,_0x664e3f,!![]);}catch(_0x495212){return BPromise[_0x1d7d('0x1f')](_0x495212);}return _0x191024[_0x1d7d('0x20')]();};}function saveUpdates(_0x2a9f2b,_0x396802){return function(_0x2ae740){if(_0x2ae740){return _0x2ae740[_0x1d7d('0x21')](_0x2a9f2b)['then'](function(_0x225f85){return _0x225f85;});}return null;};}function removeEntity(_0x40c27f,_0x3a93d0){return function(_0x5692d9){if(_0x5692d9){return _0x5692d9[_0x1d7d('0x22')]()[_0x1d7d('0x23')](function(){_0x40c27f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1dcaf2,_0x264a4e){return function(_0x3d631f){if(!_0x3d631f){_0x1dcaf2['sendStatus'](0x194);}return _0x3d631f;};}function handleError(_0x377653,_0x106376){_0x106376=_0x106376||0x1f4;return function(_0x2d4c0c){logger[_0x1d7d('0x24')](_0x2d4c0c['stack']);if(_0x2d4c0c[_0x1d7d('0x25')]){delete _0x2d4c0c[_0x1d7d('0x25')];}_0x377653['status'](_0x106376)['send'](_0x2d4c0c);};}exports[_0x1d7d('0x26')]=function(_0x52c618,_0x38c323){var _0x2d4de4={},_0x3bc6e8={},_0x22c40d={'count':0x0,'rows':[]};var _0x465938=db['VoiceMailMessage'][_0x1d7d('0x27')];_0x3bc6e8[_0x1d7d('0x28')]=_[_0x1d7d('0x29')](_['keys'](_0x465938),[_0x1d7d('0x25')]);var _0x1a935a={'dateStart':_0x52c618[_0x1d7d('0x2a')]['dateStart'],'dateEnd':_0x52c618['query']['dateEnd']};delete _0x52c618[_0x1d7d('0x2a')][_0x1d7d('0x2b')];delete _0x52c618['query'][_0x1d7d('0x2c')];_0x3bc6e8[_0x1d7d('0x2a')]=_[_0x1d7d('0x2d')](_0x52c618[_0x1d7d('0x2a')]);_0x3bc6e8[_0x1d7d('0x2e')]=_[_0x1d7d('0x2f')](_0x3bc6e8[_0x1d7d('0x28')],_0x3bc6e8[_0x1d7d('0x2a')]);_0x2d4de4[_0x1d7d('0x30')]=_[_0x1d7d('0x2f')](_0x3bc6e8['model'],qs['fields'](_0x52c618[_0x1d7d('0x2a')][_0x1d7d('0x31')]));_0x2d4de4[_0x1d7d('0x30')]=_0x2d4de4[_0x1d7d('0x30')][_0x1d7d('0x32')]?_0x2d4de4[_0x1d7d('0x30')]:_0x3bc6e8[_0x1d7d('0x28')];if(!_0x52c618[_0x1d7d('0x2a')][_0x1d7d('0x33')]('nolimit')){_0x2d4de4[_0x1d7d('0x1c')]=qs[_0x1d7d('0x1c')](_0x52c618[_0x1d7d('0x2a')][_0x1d7d('0x1c')]);_0x2d4de4['offset']=qs['offset'](_0x52c618[_0x1d7d('0x2a')][_0x1d7d('0x1b')]);}_0x2d4de4['order']=qs[_0x1d7d('0x34')](_0x52c618[_0x1d7d('0x2a')]['sort']);_0x2d4de4['where']=qs[_0x1d7d('0x2e')](_[_0x1d7d('0x35')](_0x52c618[_0x1d7d('0x2a')],_0x3bc6e8[_0x1d7d('0x2e')]));if(_0x1a935a[_0x1d7d('0x2b')]){if(_0x1a935a[_0x1d7d('0x2c')]){_0x1a935a[_0x1d7d('0x2c')]=moment(_0x1a935a[_0x1d7d('0x2c')])[_0x1d7d('0x36')](0x1,_0x1d7d('0x37'));}else{_0x1a935a['dateEnd']=moment(_0x1a935a['dateStart'])['add'](0x1,'day');}_[_0x1d7d('0x38')](_0x2d4de4['where'],{'createdAt':{'$gte':_0x1a935a[_0x1d7d('0x2b')],'$lte':_0x1a935a[_0x1d7d('0x2c')]}});}if(_0x52c618[_0x1d7d('0x2a')]['filter']){_0x2d4de4[_0x1d7d('0x39')]=_[_0x1d7d('0x38')](_0x2d4de4[_0x1d7d('0x39')],{'$or':_['map'](_0x2d4de4[_0x1d7d('0x30')],function(_0xa53806){var _0xfb9845={};_0xfb9845[_0xa53806]={'$like':'%'+_0x52c618[_0x1d7d('0x2a')]['filter']+'%'};return _0xfb9845;})});}_0x2d4de4=_[_0x1d7d('0x38')]({},_0x2d4de4,_0x52c618[_0x1d7d('0x3a')]);var _0x4239fa={'where':_0x2d4de4[_0x1d7d('0x39')]};return db['VoiceMailMessage'][_0x1d7d('0x1a')](_0x4239fa)['then'](function(_0xc38ee){_0x22c40d[_0x1d7d('0x1a')]=_0xc38ee;if(_0x52c618[_0x1d7d('0x2a')][_0x1d7d('0x3b')]){_0x2d4de4[_0x1d7d('0x3c')]=[{'all':!![]}];}return db['VoiceMailMessage']['findAll'](_0x2d4de4);})[_0x1d7d('0x23')](function(_0xe57fa5){_0x22c40d[_0x1d7d('0x3d')]=_0xe57fa5;return _0x22c40d;})['then'](respondWithFilteredResult(_0x38c323,_0x2d4de4))['catch'](handleError(_0x38c323,null));};exports[_0x1d7d('0x3e')]=function(_0x4f5ba3,_0x86e7bc){var _0x379e75={'raw':!![],'where':{'id':_0x4f5ba3[_0x1d7d('0x3f')]['id']}},_0x1d1064={};_0x1d1064[_0x1d7d('0x28')]=_[_0x1d7d('0x2d')](db[_0x1d7d('0x40')]['rawAttributes']);_0x1d1064[_0x1d7d('0x2a')]=_[_0x1d7d('0x2d')](_0x4f5ba3['query']);_0x1d1064[_0x1d7d('0x2e')]=_[_0x1d7d('0x2f')](_0x1d1064[_0x1d7d('0x28')],_0x1d1064[_0x1d7d('0x2a')]);_0x379e75[_0x1d7d('0x30')]=_[_0x1d7d('0x2f')](_0x1d1064[_0x1d7d('0x28')],qs[_0x1d7d('0x31')](_0x4f5ba3[_0x1d7d('0x2a')][_0x1d7d('0x31')]));_0x379e75[_0x1d7d('0x30')]=_0x379e75[_0x1d7d('0x30')]['length']?_0x379e75[_0x1d7d('0x30')]:_0x1d1064['model'];if(_0x4f5ba3[_0x1d7d('0x2a')]['includeAll']){_0x379e75[_0x1d7d('0x3c')]=[{'all':!![]}];}_0x379e75=_[_0x1d7d('0x38')]({},_0x379e75,_0x4f5ba3[_0x1d7d('0x3a')]);return db[_0x1d7d('0x40')]['find'](_0x379e75)[_0x1d7d('0x23')](handleEntityNotFound(_0x86e7bc,null))['then'](respondWithResult(_0x86e7bc,null))['catch'](handleError(_0x86e7bc,null));};exports[_0x1d7d('0x41')]=function(_0x5ed6cc,_0x57e416){return db[_0x1d7d('0x40')][_0x1d7d('0x41')](_0x5ed6cc['body'],{})[_0x1d7d('0x23')](respondWithResult(_0x57e416,0xc9))[_0x1d7d('0x42')](handleError(_0x57e416,null));};exports['update']=function(_0x1f3a63,_0x2b9faa){if(_0x1f3a63[_0x1d7d('0x43')]['id']){delete _0x1f3a63[_0x1d7d('0x43')]['id'];}return db['VoiceMailMessage']['find']({'where':{'id':_0x1f3a63[_0x1d7d('0x3f')]['id']}})[_0x1d7d('0x23')](handleEntityNotFound(_0x2b9faa,null))[_0x1d7d('0x23')](saveUpdates(_0x1f3a63[_0x1d7d('0x43')],null))[_0x1d7d('0x23')](respondWithResult(_0x2b9faa,null))['catch'](handleError(_0x2b9faa,null));};exports[_0x1d7d('0x22')]=function(_0x24e0b7,_0x344b66){return db[_0x1d7d('0x40')][_0x1d7d('0x44')]({'where':{'id':_0x24e0b7[_0x1d7d('0x3f')]['id']}})[_0x1d7d('0x23')](handleEntityNotFound(_0x344b66,null))[_0x1d7d('0x23')](removeEntity(_0x344b66,null))[_0x1d7d('0x42')](handleError(_0x344b66,null));};exports['download']=function(_0x3e7c4c,_0x41ad41,_0x44b1f7){return db['VoiceMailMessage']['find']({'where':{'id':_0x3e7c4c[_0x1d7d('0x3f')]['id']},'attributes':['id',_0x1d7d('0x45'),_0x1d7d('0x46')]})['then'](handleEntityNotFound(_0x41ad41,null))[_0x1d7d('0x23')](function(_0xfbb4d4){if(_0xfbb4d4){if(!_0xfbb4d4['recording']){throw new db[(_0x1d7d('0x47'))][(_0x1d7d('0x48'))](_0x1d7d('0x49'));}var _0x39dfa2={'Content-Type':'audio/wav','Content-Disposition':_0x1d7d('0x4a')};if(_0xfbb4d4[_0x1d7d('0x46')]){_0x39dfa2['Content-Disposition']='attachment;\x20filename=\x22'+_0xfbb4d4[_0x1d7d('0x46')]+_0x1d7d('0x4b');}_0x41ad41['set'](_0x39dfa2);return _0x41ad41['send'](new Buffer(_0xfbb4d4[_0x1d7d('0x45')]));}})[_0x1d7d('0x42')](handleError(_0x41ad41,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4894=['api','moment','./voiceMailMessage.attributes','VoiceMailMessage','voice_voicemail_messages','dir','../../config/logger'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4894,0xd8));var _0x4489=function(_0x42eaac,_0x1d4877){_0x42eaac=_0x42eaac-0x0;var _0x1d38d1=_0x4894[_0x42eaac];return _0x1d38d1;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x4489('0x0'))(_0x4489('0x1'));var moment=require(_0x4489('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0x4489('0x3'));module['exports']=function(_0x469cfb,_0x4eb6fb){return _0x469cfb['define'](_0x4489('0x4'),attributes,{'tableName':_0x4489('0x5'),'paranoid':![],'indexes':[{'name':_0x4489('0x6'),'fields':[_0x4489('0x6')]}],'timestamps':![]});};
\ No newline at end of file
+var _0xb0bd=['util','../../config/logger','api','request-promise','./voiceMailMessage.attributes','exports','VoiceMailMessage','voice_voicemail_messages','dir','lodash'];(function(_0x431cbe,_0x2b069c){var _0x51fe05=function(_0x4a99a8){while(--_0x4a99a8){_0x431cbe['push'](_0x431cbe['shift']());}};_0x51fe05(++_0x2b069c);}(_0xb0bd,0x103));var _0xdb0b=function(_0x1b7f05,_0x4f7d33){_0x1b7f05=_0x1b7f05-0x0;var _0x3edc0b=_0xb0bd[_0x1b7f05];return _0x3edc0b;};'use strict';var _=require(_0xdb0b('0x0'));var util=require(_0xdb0b('0x1'));var logger=require(_0xdb0b('0x2'))(_0xdb0b('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xdb0b('0x4'));var attributes=require(_0xdb0b('0x5'));module[_0xdb0b('0x6')]=function(_0x1cc155,_0x2c608e){return _0x1cc155['define'](_0xdb0b('0x7'),attributes,{'tableName':_0xdb0b('0x8'),'paranoid':![],'indexes':[{'name':_0xdb0b('0x9'),'fields':[_0xdb0b('0x9')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34da=['request','then','info','VoiceMailMessage,\x20%s,\x20%s','request\x20sent','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x2cb8f6,_0x3958a7){var _0x5f321d=function(_0x95b275){while(--_0x95b275){_0x2cb8f6['push'](_0x2cb8f6['shift']());}};_0x5f321d(++_0x3958a7);}(_0x34da,0x1ef));var _0xa34d=function(_0x154ea3,_0x74afc6){_0x154ea3=_0x154ea3-0x0;var _0x2d92c4=_0x34da[_0x154ea3];return _0x2d92c4;};'use strict';var _=require(_0xa34d('0x0'));var util=require(_0xa34d('0x1'));var moment=require('moment');var BPromise=require(_0xa34d('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0xa34d('0x3'))['db'];var utils=require(_0xa34d('0x4'));var logger=require(_0xa34d('0x5'))(_0xa34d('0x6'));var config=require(_0xa34d('0x7'));var jayson=require(_0xa34d('0x8'));var client=jayson[_0xa34d('0x9')][_0xa34d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xa27ee6,_0x3a0fd1,_0x55e801){return new BPromise(function(_0x4af053,_0x48404a){return client[_0xa34d('0xb')](_0xa27ee6,_0x55e801)[_0xa34d('0xc')](function(_0x256ae1){logger[_0xa34d('0xd')](_0xa34d('0xe'),_0x3a0fd1,_0xa34d('0xf'));logger[_0xa34d('0x10')](_0xa34d('0x11'),_0x3a0fd1,_0xa34d('0xf'),JSON['stringify'](_0x256ae1));if(_0x256ae1[_0xa34d('0x12')]){if(_0x256ae1[_0xa34d('0x12')][_0xa34d('0x13')]===0x1f4){logger[_0xa34d('0x12')]('VoiceMailMessage,\x20%s,\x20%s',_0x3a0fd1,_0x256ae1[_0xa34d('0x12')][_0xa34d('0x14')]);return _0x48404a(_0x256ae1[_0xa34d('0x12')][_0xa34d('0x14')]);}logger[_0xa34d('0x12')](_0xa34d('0xe'),_0x3a0fd1,_0x256ae1[_0xa34d('0x12')][_0xa34d('0x14')]);return _0x4af053(_0x256ae1[_0xa34d('0x12')][_0xa34d('0x14')]);}else{logger[_0xa34d('0xd')](_0xa34d('0xe'),_0x3a0fd1,_0xa34d('0xf'));_0x4af053(_0x256ae1['result'][_0xa34d('0x14')]);}})[_0xa34d('0x15')](function(_0x4b8cf8){logger['error'](_0xa34d('0xe'),_0x3a0fd1,_0x4b8cf8);_0x48404a(_0x4b8cf8);});});}
\ No newline at end of file
+var _0xa5bc=['VoiceMailMessage,\x20%s,\x20%s','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','request','then'];(function(_0x36ed48,_0x1ee0d4){var _0x51c63a=function(_0x2d0a40){while(--_0x2d0a40){_0x36ed48['push'](_0x36ed48['shift']());}};_0x51c63a(++_0x1ee0d4);}(_0xa5bc,0x15f));var _0xca5b=function(_0x4687d2,_0x499abc){_0x4687d2=_0x4687d2-0x0;var _0x3fabae=_0xa5bc[_0x4687d2];return _0x3fabae;};'use strict';var _=require('lodash');var util=require(_0xca5b('0x0'));var moment=require(_0xca5b('0x1'));var BPromise=require('bluebird');var rs=require(_0xca5b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xca5b('0x3'))['db'];var utils=require(_0xca5b('0x4'));var logger=require('../../config/logger')(_0xca5b('0x5'));var config=require('../../config/environment');var jayson=require(_0xca5b('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x216f28,_0x3460f2,_0x29f63b){return new BPromise(function(_0x217d03,_0xcb3a78){return client[_0xca5b('0x7')](_0x216f28,_0x29f63b)[_0xca5b('0x8')](function(_0x20d0b5){logger['info'](_0xca5b('0x9'),_0x3460f2,'request\x20sent');logger[_0xca5b('0xa')](_0xca5b('0xb'),_0x3460f2,'request\x20sent',JSON['stringify'](_0x20d0b5));if(_0x20d0b5[_0xca5b('0xc')]){if(_0x20d0b5[_0xca5b('0xc')][_0xca5b('0xd')]===0x1f4){logger[_0xca5b('0xc')](_0xca5b('0x9'),_0x3460f2,_0x20d0b5[_0xca5b('0xc')]['message']);return _0xcb3a78(_0x20d0b5[_0xca5b('0xc')][_0xca5b('0xe')]);}logger[_0xca5b('0xc')](_0xca5b('0x9'),_0x3460f2,_0x20d0b5[_0xca5b('0xc')][_0xca5b('0xe')]);return _0x217d03(_0x20d0b5[_0xca5b('0xc')]['message']);}else{logger[_0xca5b('0xf')]('VoiceMailMessage,\x20%s,\x20%s',_0x3460f2,'request\x20sent');_0x217d03(_0x20d0b5[_0xca5b('0x10')][_0xca5b('0xe')]);}})[_0xca5b('0x11')](function(_0x32c18d){logger[_0xca5b('0xc')](_0xca5b('0x9'),_0x3460f2,_0x32c18d);_0xcb3a78(_0x32c18d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43b=['../../config/environment','./voiceMusicOnHold.controller','get','isAuthenticated','show','/:id/sounds','post','addSound','put','/:id','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/interaction/service'];(function(_0x1b8050,_0x4d12c6){var _0x1ec2b1=function(_0x4c150a){while(--_0x4c150a){_0x1b8050['push'](_0x1b8050['shift']());}};_0x1ec2b1(++_0x4d12c6);}(_0xb43b,0x1b2));var _0xbb43=function(_0x623399,_0x84403f){_0x623399=_0x623399-0x0;var _0x4042b8=_0xb43b[_0x623399];return _0x4042b8;};'use strict';var multer=require(_0xbb43('0x0'));var util=require(_0xbb43('0x1'));var path=require('path');var timeout=require(_0xbb43('0x2'));var express=require(_0xbb43('0x3'));var router=express[_0xbb43('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0xbb43('0x5'));var config=require(_0xbb43('0x6'));var controller=require(_0xbb43('0x7'));router[_0xbb43('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xbb43('0x8')]('/:id',auth[_0xbb43('0x9')](),controller[_0xbb43('0xa')]);router[_0xbb43('0x8')](_0xbb43('0xb'),auth[_0xbb43('0x9')](),controller['getSounds']);router[_0xbb43('0xc')]('/',auth[_0xbb43('0x9')](),controller['create']);router[_0xbb43('0xc')](_0xbb43('0xb'),auth[_0xbb43('0x9')](),controller[_0xbb43('0xd')]);router[_0xbb43('0xe')](_0xbb43('0xf'),auth['isAuthenticated'](),controller[_0xbb43('0x10')]);router[_0xbb43('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xbb43('0x12')]);router['delete']('/:id/sounds/:id2',auth[_0xbb43('0x9')](),controller['removeSound']);module[_0xbb43('0x13')]=router;
\ No newline at end of file
+var _0xbb53=['exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMusicOnHold.controller','index','get','/:id','isAuthenticated','show','getSounds','post','addSound','put','delete','destroy','/:id/sounds/:id2','removeSound'];(function(_0x3de92a,_0x1c252c){var _0x4b9430=function(_0x4c6e55){while(--_0x4c6e55){_0x3de92a['push'](_0x3de92a['shift']());}};_0x4b9430(++_0x1c252c);}(_0xbb53,0x121));var _0x3bb5=function(_0x28670c,_0x2a82b2){_0x28670c=_0x28670c-0x0;var _0x406828=_0xbb53[_0x28670c];return _0x406828;};'use strict';var multer=require(_0x3bb5('0x0'));var util=require(_0x3bb5('0x1'));var path=require(_0x3bb5('0x2'));var timeout=require(_0x3bb5('0x3'));var express=require(_0x3bb5('0x4'));var router=express[_0x3bb5('0x5')]();var auth=require(_0x3bb5('0x6'));var interaction=require(_0x3bb5('0x7'));var config=require(_0x3bb5('0x8'));var controller=require(_0x3bb5('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x3bb5('0xa')]);router[_0x3bb5('0xb')](_0x3bb5('0xc'),auth[_0x3bb5('0xd')](),controller[_0x3bb5('0xe')]);router['get']('/:id/sounds',auth['isAuthenticated'](),controller[_0x3bb5('0xf')]);router[_0x3bb5('0x10')]('/',auth[_0x3bb5('0xd')](),controller['create']);router[_0x3bb5('0x10')]('/:id/sounds',auth['isAuthenticated'](),controller[_0x3bb5('0x11')]);router[_0x3bb5('0x12')]('/:id',auth[_0x3bb5('0xd')](),controller['update']);router[_0x3bb5('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x3bb5('0x14')]);router[_0x3bb5('0x13')](_0x3bb5('0x15'),auth['isAuthenticated'](),controller[_0x3bb5('0x16')]);module[_0x3bb5('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x832c=['ENUM','custom','files','mp3nb','quietmp3nb','quietmp3','alpha','BOOLEAN','sequelize','exports','STRING','name'];(function(_0x5f2509,_0x3c3b65){var _0x2364de=function(_0x6565d){while(--_0x6565d){_0x5f2509['push'](_0x5f2509['shift']());}};_0x2364de(++_0x3c3b65);}(_0x832c,0x164));var _0xc832=function(_0x10033e,_0xca5d44){_0x10033e=_0x10033e-0x0;var _0x458a6e=_0x832c[_0x10033e];return _0x458a6e;};'use strict';var Sequelize=require(_0xc832('0x0'));module[_0xc832('0x1')]={'name':{'type':Sequelize[_0xc832('0x2')],'allowNull':![],'unique':_0xc832('0x3')},'mode':{'type':Sequelize[_0xc832('0x4')](_0xc832('0x5'),_0xc832('0x6'),_0xc832('0x7'),_0xc832('0x8'),_0xc832('0x9'),'mp3'),'allowNull':!![],'defaultValue':'files'},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize[_0xc832('0x2')],'allowNull':!![]},'digit':{'type':Sequelize[_0xc832('0x2')],'allowNull':!![]},'sort':{'type':Sequelize[_0xc832('0x2')],'allowNull':!![],'defaultValue':_0xc832('0xa')},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':'TIMESTAMP'},'defaultEntry':{'type':Sequelize[_0xc832('0xb')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x587a=['mp3nb','quietmp3nb','quietmp3','TIMESTAMP','BOOLEAN','sequelize','exports','STRING','name','files'];(function(_0x26c47d,_0x306ec6){var _0x3e0ae2=function(_0x5a73a7){while(--_0x5a73a7){_0x26c47d['push'](_0x26c47d['shift']());}};_0x3e0ae2(++_0x306ec6);}(_0x587a,0x18b));var _0xa587=function(_0x121b17,_0x3f519b){_0x121b17=_0x121b17-0x0;var _0x2e587a=_0x587a[_0x121b17];return _0x2e587a;};'use strict';var Sequelize=require(_0xa587('0x0'));module[_0xa587('0x1')]={'name':{'type':Sequelize[_0xa587('0x2')],'allowNull':![],'unique':_0xa587('0x3')},'mode':{'type':Sequelize['ENUM']('custom',_0xa587('0x4'),_0xa587('0x5'),_0xa587('0x6'),_0xa587('0x7'),'mp3'),'allowNull':!![],'defaultValue':_0xa587('0x4')},'directory':{'type':Sequelize[_0xa587('0x2')],'allowNull':!![]},'application':{'type':Sequelize[_0xa587('0x2')],'allowNull':!![]},'digit':{'type':Sequelize[_0xa587('0x2')],'allowNull':!![]},'sort':{'type':Sequelize[_0xa587('0x2')],'allowNull':!![],'defaultValue':'alpha'},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':_0xa587('0x8')},'defaultEntry':{'type':Sequelize[_0xa587('0x9')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33cb=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','count','offset','limit','apply','update','then','destroy','error','send','index','VoiceMusicOnHold','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','day','merge','map','filter','options','includeAll','include','findAll','catch','show','params','rawAttributes','find','body','create','sequelize','transaction','mode','directory','join','server/files/moh','mkdirSync','forEach','unlinkSync','rmdirSync','ValidationError','message','addSound','findOne','name','save_name','converted_format','format','basename','extname','root','%s.%s','symlinkSync','Sequelize','removeSound','id2','Sound','createdAt','getSounds','nolimit','html-pdf','eml-format'];(function(_0x511b49,_0x42a618){var _0x1b7f3b=function(_0x2b5d18){while(--_0x2b5d18){_0x511b49['push'](_0x511b49['shift']());}};_0x1b7f3b(++_0x42a618);}(_0x33cb,0x124));var _0xb33c=function(_0x4fe6f5,_0x3578c1){_0x4fe6f5=_0x4fe6f5-0x0;var _0x2e2b5c=_0x33cb[_0x4fe6f5];return _0x2e2b5c;};'use strict';var pdf=require(_0xb33c('0x0'));var emlformat=require(_0xb33c('0x1'));var rimraf=require(_0xb33c('0x2'));var zipdir=require(_0xb33c('0x3'));var jsonpatch=require(_0xb33c('0x4'));var rp=require(_0xb33c('0x5'));var moment=require(_0xb33c('0x6'));var BPromise=require(_0xb33c('0x7'));var Mustache=require(_0xb33c('0x8'));var util=require(_0xb33c('0x9'));var path=require('path');var sox=require('sox');var csv=require(_0xb33c('0xa'));var ejs=require(_0xb33c('0xb'));var fs=require('fs');var _=require(_0xb33c('0xc'));var squel=require(_0xb33c('0xd'));var crypto=require(_0xb33c('0xe'));var jsforce=require(_0xb33c('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xb33c('0xa'));var querystring=require(_0xb33c('0x10'));var Papa=require(_0xb33c('0x11'));var qs=require(_0xb33c('0x12'));var logger=require(_0xb33c('0x13'))(_0xb33c('0x14'));var utils=require(_0xb33c('0x15'));var config=require(_0xb33c('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x170f9f,_0x2c3827){_0x2c3827=_0x2c3827||0xcc;return function(_0x52ffd9){if(_0x52ffd9){return _0x170f9f[_0xb33c('0x17')](_0x2c3827);}return _0x170f9f['status'](_0x2c3827)[_0xb33c('0x18')]();};}function respondWithResult(_0x180325,_0x5002b1){_0x5002b1=_0x5002b1||0xc8;return function(_0x31c2c9){if(_0x31c2c9){return _0x180325[_0xb33c('0x19')](_0x5002b1)[_0xb33c('0x1a')](_0x31c2c9);}};}function respondWithFilteredResult(_0x4c37c6,_0x219fae){return function(_0x44e60f){if(_0x44e60f){var _0x537c5a=_0x44e60f[_0xb33c('0x1b')],_0x236621=_0x219fae['offset'],_0x378363=_0x219fae[_0xb33c('0x1c')]+_0x219fae[_0xb33c('0x1d')],_0x5f1e1b;if(_0x378363>=_0x537c5a){_0x378363=_0x537c5a;_0x5f1e1b=0xc8;}else{_0x5f1e1b=0xce;}_0x4c37c6[_0xb33c('0x19')](_0x5f1e1b);return _0x4c37c6['set']('Content-Range',_0x236621+'-'+_0x378363+'/'+_0x537c5a)[_0xb33c('0x1a')](_0x44e60f);}return null;};}function patchUpdates(_0x4fcd35){return function(_0x88e044){try{jsonpatch[_0xb33c('0x1e')](_0x88e044,_0x4fcd35,!![]);}catch(_0x3bfacc){return BPromise['reject'](_0x3bfacc);}return _0x88e044['save']();};}function saveUpdates(_0x2e3440,_0xfbae5b){return function(_0x21c449){if(_0x21c449){return _0x21c449[_0xb33c('0x1f')](_0x2e3440)[_0xb33c('0x20')](function(_0x40c08b){return _0x40c08b;});}return null;};}function removeEntity(_0x2dcfff,_0x29965b){return function(_0x783e76){if(_0x783e76){return _0x783e76[_0xb33c('0x21')]()[_0xb33c('0x20')](function(){_0x2dcfff[_0xb33c('0x19')](0xcc)[_0xb33c('0x18')]();});}};}function handleEntityNotFound(_0x53e20d,_0x2295f5){return function(_0x2b231b){if(!_0x2b231b){_0x53e20d[_0xb33c('0x17')](0x194);}return _0x2b231b;};}function handleError(_0x2d9019,_0x9eb218){_0x9eb218=_0x9eb218||0x1f4;return function(_0x4deff3){logger[_0xb33c('0x22')](_0x4deff3['stack']);if(_0x4deff3['name']){delete _0x4deff3['name'];}_0x2d9019['status'](_0x9eb218)[_0xb33c('0x23')](_0x4deff3);};}exports[_0xb33c('0x24')]=function(_0xfb3ede,_0x4aec58){var _0x2d0163={},_0x3dcb01={},_0x3734ed={'count':0x0,'rows':[]};var _0x2693ce=db[_0xb33c('0x25')]['rawAttributes'];_0x3dcb01[_0xb33c('0x26')]=_[_0xb33c('0x27')](_0x2693ce);var _0x5590f6={'dateStart':_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x29')],'dateEnd':_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x2a')]};delete _0xfb3ede[_0xb33c('0x28')]['dateStart'];delete _0xfb3ede[_0xb33c('0x28')]['dateEnd'];_0x3dcb01[_0xb33c('0x28')]=_[_0xb33c('0x27')](_0xfb3ede[_0xb33c('0x28')]);_0x3dcb01[_0xb33c('0x2b')]=_[_0xb33c('0x2c')](_0x3dcb01['model'],_0x3dcb01['query']);_0x2d0163[_0xb33c('0x2d')]=_[_0xb33c('0x2c')](_0x3dcb01[_0xb33c('0x26')],qs['fields'](_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x2e')]));_0x2d0163['attributes']=_0x2d0163[_0xb33c('0x2d')][_0xb33c('0x2f')]?_0x2d0163[_0xb33c('0x2d')]:_0x3dcb01['model'];if(!_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x30')]('nolimit')){_0x2d0163[_0xb33c('0x1d')]=qs[_0xb33c('0x1d')](_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x1d')]);_0x2d0163['offset']=qs['offset'](_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x1c')]);}_0x2d0163[_0xb33c('0x31')]=qs[_0xb33c('0x32')](_0xfb3ede[_0xb33c('0x28')]['sort']);_0x2d0163[_0xb33c('0x33')]=qs[_0xb33c('0x2b')](_[_0xb33c('0x34')](_0xfb3ede[_0xb33c('0x28')],_0x3dcb01[_0xb33c('0x2b')]));if(_0x5590f6[_0xb33c('0x29')]){if(_0x5590f6['dateEnd']){_0x5590f6[_0xb33c('0x2a')]=moment(_0x5590f6[_0xb33c('0x2a')])['add'](0x1,_0xb33c('0x35'));}else{_0x5590f6[_0xb33c('0x2a')]=moment(_0x5590f6[_0xb33c('0x29')])['add'](0x1,_0xb33c('0x35'));}_['merge'](_0x2d0163['where'],{'createdAt':{'$gte':_0x5590f6[_0xb33c('0x29')],'$lte':_0x5590f6[_0xb33c('0x2a')]}});}if(_0xfb3ede['query']['filter']){_0x2d0163[_0xb33c('0x33')]=_[_0xb33c('0x36')](_0x2d0163['where'],{'$or':_[_0xb33c('0x37')](_0x2d0163['attributes'],function(_0x37d683){var _0x2557f8={};_0x2557f8[_0x37d683]={'$like':'%'+_0xfb3ede['query'][_0xb33c('0x38')]+'%'};return _0x2557f8;})});}_0x2d0163=_[_0xb33c('0x36')]({},_0x2d0163,_0xfb3ede[_0xb33c('0x39')]);var _0x58e1e6={'where':_0x2d0163['where']};return db[_0xb33c('0x25')]['count'](_0x58e1e6)[_0xb33c('0x20')](function(_0x5a75a1){_0x3734ed[_0xb33c('0x1b')]=_0x5a75a1;if(_0xfb3ede[_0xb33c('0x28')][_0xb33c('0x3a')]){_0x2d0163[_0xb33c('0x3b')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0xb33c('0x3c')](_0x2d0163);})['then'](function(_0x176c94){_0x3734ed['rows']=_0x176c94;return _0x3734ed;})[_0xb33c('0x20')](respondWithFilteredResult(_0x4aec58,_0x2d0163))[_0xb33c('0x3d')](handleError(_0x4aec58,null));};exports[_0xb33c('0x3e')]=function(_0x295066,_0x319b56){var _0xb6045c={'raw':![],'where':{'id':_0x295066[_0xb33c('0x3f')]['id']}},_0x30b804={};_0x30b804[_0xb33c('0x26')]=_[_0xb33c('0x27')](db[_0xb33c('0x25')][_0xb33c('0x40')]);_0x30b804[_0xb33c('0x28')]=_[_0xb33c('0x27')](_0x295066[_0xb33c('0x28')]);_0x30b804['filters']=_['intersection'](_0x30b804['model'],_0x30b804[_0xb33c('0x28')]);_0xb6045c[_0xb33c('0x2d')]=_['intersection'](_0x30b804['model'],qs[_0xb33c('0x2e')](_0x295066[_0xb33c('0x28')][_0xb33c('0x2e')]));_0xb6045c['attributes']=_0xb6045c[_0xb33c('0x2d')]['length']?_0xb6045c[_0xb33c('0x2d')]:_0x30b804[_0xb33c('0x26')];if(_0x295066[_0xb33c('0x28')][_0xb33c('0x3a')]){_0xb6045c[_0xb33c('0x3b')]=[{'all':!![]}];}_0xb6045c=_[_0xb33c('0x36')]({},_0xb6045c,_0x295066[_0xb33c('0x39')]);return db[_0xb33c('0x25')][_0xb33c('0x41')](_0xb6045c)[_0xb33c('0x20')](handleEntityNotFound(_0x319b56,null))[_0xb33c('0x20')](respondWithResult(_0x319b56,null))[_0xb33c('0x3d')](handleError(_0x319b56,null));};exports[_0xb33c('0x1f')]=function(_0x31cbaf,_0x5b2dde){if(_0x31cbaf[_0xb33c('0x42')]['id']){delete _0x31cbaf[_0xb33c('0x42')]['id'];}return db[_0xb33c('0x25')][_0xb33c('0x41')]({'where':{'id':_0x31cbaf[_0xb33c('0x3f')]['id']}})[_0xb33c('0x20')](handleEntityNotFound(_0x5b2dde,null))[_0xb33c('0x20')](saveUpdates(_0x31cbaf[_0xb33c('0x42')],null))['then'](respondWithResult(_0x5b2dde,null))['catch'](handleError(_0x5b2dde,null));};exports[_0xb33c('0x43')]=function(_0x9b682e,_0x2692d9,_0x3325ca){return db[_0xb33c('0x44')][_0xb33c('0x45')](function(_0x521145){if(_0x9b682e[_0xb33c('0x42')][_0xb33c('0x46')]==='files'){_0x9b682e[_0xb33c('0x42')][_0xb33c('0x47')]=path[_0xb33c('0x48')](config['root'],_0xb33c('0x49'),_0x9b682e[_0xb33c('0x42')]['name']);}return db[_0xb33c('0x25')][_0xb33c('0x43')](_0x9b682e[_0xb33c('0x42')],{'transaction':_0x521145})[_0xb33c('0x20')](function(_0x217cb9){if(_0x9b682e['body'][_0xb33c('0x46')]==='files'){fs[_0xb33c('0x4a')](_0x217cb9[_0xb33c('0x47')],parseInt('0777',0x8));}return _0x217cb9;});})[_0xb33c('0x20')](respondWithResult(_0x2692d9,0xc9))['catch'](handleError(_0x2692d9,null));};exports[_0xb33c('0x21')]=function(_0x1b87da,_0x29db7a,_0x48eb41){var _0x20bae6;return db[_0xb33c('0x25')][_0xb33c('0x41')]({'where':{'id':_0x1b87da[_0xb33c('0x3f')]['id']}})[_0xb33c('0x20')](function(_0x2a4a28){if(_0x2a4a28){return db[_0xb33c('0x44')][_0xb33c('0x45')](function(_0x4d6160){return _0x2a4a28['destroy']({'transaction':_0x4d6160,'raw':!![]})[_0xb33c('0x20')](function(_0xb1b9d){if(_0xb1b9d[_0xb33c('0x47')]){fs['readdirSync'](_0xb1b9d[_0xb33c('0x47')])[_0xb33c('0x4b')](function(_0x42fb09){fs[_0xb33c('0x4c')](path[_0xb33c('0x48')](_0xb1b9d[_0xb33c('0x47')],_0x42fb09));});fs[_0xb33c('0x4d')](_0xb1b9d['directory']);}return _0xb1b9d;});})[_0xb33c('0x3d')](function(_0x48bdbe){throw new db['Sequelize'][(_0xb33c('0x4e'))](_0x48bdbe[_0xb33c('0x4f')]);});}})[_0xb33c('0x20')](handleEntityNotFound(_0x29db7a,null))[_0xb33c('0x20')](removeEntity(_0x29db7a,null))[_0xb33c('0x3d')](handleError(_0x29db7a,null));};exports[_0xb33c('0x50')]=function(_0x596e6e,_0x966ae0,_0x35f92f){return db['sequelize'][_0xb33c('0x45')](function(_0xdb84e0){var _0x5a6c9b;return db['VoiceMusicOnHold'][_0xb33c('0x41')]({'where':{'id':_0x596e6e['params']['id']}})['then'](function(_0x1be201){if(_0x1be201){_0x5a6c9b=_0x1be201;return _0x1be201[_0xb33c('0x50')](_0x596e6e['body']['id'],{'transaction':_0xdb84e0});}})[_0xb33c('0x20')](function(_0x53f4f6){if(_0x53f4f6){return db['Sound'][_0xb33c('0x51')]({'where':{'id':_0x596e6e[_0xb33c('0x42')]['id']},'attributes':['id',_0xb33c('0x52'),_0xb33c('0x53'),_0xb33c('0x54'),'createdAt'],'raw':!![]});}})['then'](function(_0x4a59ef){if(_0x4a59ef){var _0x4aa738=path[_0xb33c('0x48')](config['root'],'server/files/sounds/converted',util[_0xb33c('0x55')]('%s.%s',path[_0xb33c('0x56')](_0x4a59ef[_0xb33c('0x53')],path[_0xb33c('0x57')](_0x4a59ef['save_name'])),_0x4a59ef['converted_format']));var _0x7fdbf6=path[_0xb33c('0x48')](config[_0xb33c('0x58')],'server/files/moh',_0x5a6c9b[_0xb33c('0x52')],util['format'](_0xb33c('0x59'),_0x4a59ef['name'],_0x4a59ef['converted_format']));fs[_0xb33c('0x5a')](_0x4aa738,_0x7fdbf6);return _0x4a59ef;}})['catch'](function(_0x5d3ade){throw new db[(_0xb33c('0x5b'))]['ValidationError'](_0x5d3ade[_0xb33c('0x4f')]);});})[_0xb33c('0x20')](handleEntityNotFound(_0x966ae0,null))['then'](respondWithResult(_0x966ae0,0xc9))['catch'](handleError(_0x966ae0,null));};exports['removeSound']=function(_0x1f6800,_0x389536,_0x4722ba){return db[_0xb33c('0x44')][_0xb33c('0x45')](function(_0x5b710d){var _0x35d58d;return db[_0xb33c('0x25')][_0xb33c('0x51')]({'where':{'id':_0x1f6800[_0xb33c('0x3f')]['id']}})['then'](handleEntityNotFound(_0x389536,null))[_0xb33c('0x20')](function(_0x7da060){if(_0x7da060){_0x35d58d=_0x7da060;return _0x7da060[_0xb33c('0x5c')](_0x1f6800[_0xb33c('0x3f')][_0xb33c('0x5d')]);}})[_0xb33c('0x20')](function(_0x22fa21){if(_0x22fa21){return db[_0xb33c('0x5e')][_0xb33c('0x51')]({'where':{'id':_0x1f6800[_0xb33c('0x3f')][_0xb33c('0x5d')]},'attributes':['id',_0xb33c('0x52'),_0xb33c('0x53'),_0xb33c('0x54'),_0xb33c('0x5f')],'raw':!![]});}})['then'](function(_0x5a6d9b){if(_0x5a6d9b){fs[_0xb33c('0x4c')](path['join'](_0x35d58d[_0xb33c('0x47')],util['format']('%s.%s',_0x5a6d9b[_0xb33c('0x52')],_0x5a6d9b[_0xb33c('0x54')])));return _0x5a6d9b;}})['catch'](function(_0x4d7993){throw new db[(_0xb33c('0x5b'))]['ValidationError'](_0x4d7993[_0xb33c('0x4f')]);});})[_0xb33c('0x20')](handleEntityNotFound(_0x389536,null))['then'](respondWithStatusCode(_0x389536,0xcc))[_0xb33c('0x3d')](handleError(_0x389536,null));};exports[_0xb33c('0x60')]=function(_0x18eb2c,_0x2f7c61,_0x5ad9b3){var _0x2ba35={};var _0x4f092d={};var _0x156325;var _0x3ea2c3;return db['VoiceMusicOnHold']['findOne']({'where':{'id':_0x18eb2c[_0xb33c('0x3f')]['id']}})[_0xb33c('0x20')](handleEntityNotFound(_0x2f7c61,null))[_0xb33c('0x20')](function(_0xd3259e){if(_0xd3259e){_0x156325=_0xd3259e;_0x4f092d['model']=_[_0xb33c('0x27')](db['Sound'][_0xb33c('0x40')]);_0x4f092d[_0xb33c('0x28')]=_['keys'](_0x18eb2c['query']);_0x4f092d[_0xb33c('0x2b')]=_[_0xb33c('0x2c')](_0x4f092d[_0xb33c('0x26')],_0x4f092d[_0xb33c('0x28')]);_0x2ba35[_0xb33c('0x2d')]=_[_0xb33c('0x2c')](_0x4f092d[_0xb33c('0x26')],qs[_0xb33c('0x2e')](_0x18eb2c[_0xb33c('0x28')][_0xb33c('0x2e')]));_0x2ba35['attributes']=_0x2ba35[_0xb33c('0x2d')][_0xb33c('0x2f')]?_0x2ba35[_0xb33c('0x2d')]:_0x4f092d[_0xb33c('0x26')];_0x2ba35[_0xb33c('0x31')]=qs['sort'](_0x18eb2c[_0xb33c('0x28')][_0xb33c('0x32')]);_0x2ba35['where']=qs['filters'](_[_0xb33c('0x34')](_0x18eb2c[_0xb33c('0x28')],_0x4f092d[_0xb33c('0x2b')]));if(_0x18eb2c[_0xb33c('0x28')]['filter']){_0x2ba35['where']=_[_0xb33c('0x36')](_0x2ba35[_0xb33c('0x33')],{'$or':_['map'](_0x2ba35[_0xb33c('0x2d')],function(_0x1c6113){var _0x380ced={};_0x380ced[_0x1c6113]={'$like':'%'+_0x18eb2c[_0xb33c('0x28')][_0xb33c('0x38')]+'%'};return _0x380ced;})});}_0x2ba35=_[_0xb33c('0x36')]({},_0x2ba35,_0x18eb2c[_0xb33c('0x39')]);return _0x156325[_0xb33c('0x60')](_0x2ba35);}})['then'](function(_0x1d6000){if(_0x1d6000){_0x3ea2c3=_0x1d6000['length'];if(!_0x18eb2c[_0xb33c('0x28')]['hasOwnProperty'](_0xb33c('0x61'))){_0x2ba35['limit']=qs[_0xb33c('0x1d')](_0x18eb2c['query'][_0xb33c('0x1d')]);_0x2ba35[_0xb33c('0x1c')]=qs[_0xb33c('0x1c')](_0x18eb2c['query'][_0xb33c('0x1c')]);}return _0x156325[_0xb33c('0x60')](_0x2ba35);}})[_0xb33c('0x20')](function(_0x1da882){if(_0x1da882){return _0x1da882?{'count':_0x3ea2c3,'rows':_0x1da882}:null;}})[_0xb33c('0x20')](respondWithResult(_0x2f7c61,null))[_0xb33c('0x3d')](handleError(_0x2f7c61,null));};
\ No newline at end of file
+var _0x2203=['mode','mkdirSync','directory','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','addSound','Sound','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','server/files/moh','message','removeSound','findOne','id2','getSounds','pick','nolimit','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','path','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','../../config/utils','sendStatus','status','json','count','offset','limit','Content-Range','reject','update','then','destroy','end','name','send','index','VoiceMusicOnHold','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','fields','length','attributes','hasOwnProperty','order','sort','where','add','day','merge','map','filter','includeAll','include','findAll','rows','catch','options','body','find','params','create','sequelize','transaction','files','join','root'];(function(_0x507c81,_0x3e1b56){var _0x368a25=function(_0x1e7519){while(--_0x1e7519){_0x507c81['push'](_0x507c81['shift']());}};_0x368a25(++_0x3e1b56);}(_0x2203,0xd2));var _0x3220=function(_0x4e324f,_0x4f0cfc){_0x4e324f=_0x4e324f-0x0;var _0x4e6076=_0x2203[_0x4e324f];return _0x4e6076;};'use strict';var pdf=require(_0x3220('0x0'));var emlformat=require(_0x3220('0x1'));var rimraf=require(_0x3220('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3220('0x3'));var rp=require(_0x3220('0x4'));var moment=require('moment');var BPromise=require(_0x3220('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x3220('0x6'));var sox=require(_0x3220('0x7'));var csv=require(_0x3220('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x3220('0x9'));var crypto=require(_0x3220('0xa'));var jsforce=require(_0x3220('0xb'));var deskjs=require(_0x3220('0xc'));var toCsv=require(_0x3220('0x8'));var querystring=require(_0x3220('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')('api');var utils=require(_0x3220('0xe'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x40b961,_0x3ba491){_0x3ba491=_0x3ba491||0xcc;return function(_0x1cc7b5){if(_0x1cc7b5){return _0x40b961[_0x3220('0xf')](_0x3ba491);}return _0x40b961[_0x3220('0x10')](_0x3ba491)['end']();};}function respondWithResult(_0x559860,_0x224b90){_0x224b90=_0x224b90||0xc8;return function(_0x385f18){if(_0x385f18){return _0x559860[_0x3220('0x10')](_0x224b90)[_0x3220('0x11')](_0x385f18);}};}function respondWithFilteredResult(_0x35e744,_0x114bc4){return function(_0x477d6d){if(_0x477d6d){var _0x5e35a6=_0x477d6d[_0x3220('0x12')],_0x23ed27=_0x114bc4[_0x3220('0x13')],_0x4d38d9=_0x114bc4[_0x3220('0x13')]+_0x114bc4[_0x3220('0x14')],_0x3b53e1;if(_0x4d38d9>=_0x5e35a6){_0x4d38d9=_0x5e35a6;_0x3b53e1=0xc8;}else{_0x3b53e1=0xce;}_0x35e744[_0x3220('0x10')](_0x3b53e1);return _0x35e744['set'](_0x3220('0x15'),_0x23ed27+'-'+_0x4d38d9+'/'+_0x5e35a6)[_0x3220('0x11')](_0x477d6d);}return null;};}function patchUpdates(_0x885321){return function(_0xcda991){try{jsonpatch['apply'](_0xcda991,_0x885321,!![]);}catch(_0x390cba){return BPromise[_0x3220('0x16')](_0x390cba);}return _0xcda991['save']();};}function saveUpdates(_0x5e0b2d,_0x3f0143){return function(_0x4718bd){if(_0x4718bd){return _0x4718bd[_0x3220('0x17')](_0x5e0b2d)[_0x3220('0x18')](function(_0x5746f5){return _0x5746f5;});}return null;};}function removeEntity(_0x6ca095,_0x1c48df){return function(_0x29feae){if(_0x29feae){return _0x29feae[_0x3220('0x19')]()[_0x3220('0x18')](function(){_0x6ca095[_0x3220('0x10')](0xcc)[_0x3220('0x1a')]();});}};}function handleEntityNotFound(_0x1c57a0,_0x570c90){return function(_0x25a2d9){if(!_0x25a2d9){_0x1c57a0[_0x3220('0xf')](0x194);}return _0x25a2d9;};}function handleError(_0x153610,_0x5d6a1d){_0x5d6a1d=_0x5d6a1d||0x1f4;return function(_0x313ac2){logger['error'](_0x313ac2['stack']);if(_0x313ac2[_0x3220('0x1b')]){delete _0x313ac2[_0x3220('0x1b')];}_0x153610[_0x3220('0x10')](_0x5d6a1d)[_0x3220('0x1c')](_0x313ac2);};}exports[_0x3220('0x1d')]=function(_0xac2340,_0x3f52f2){var _0x5b8a66={},_0x53e0c1={},_0x1d2abe={'count':0x0,'rows':[]};var _0x16f6a2=db[_0x3220('0x1e')][_0x3220('0x1f')];_0x53e0c1[_0x3220('0x20')]=_[_0x3220('0x21')](_0x16f6a2);var _0x589c12={'dateStart':_0xac2340[_0x3220('0x22')][_0x3220('0x23')],'dateEnd':_0xac2340[_0x3220('0x22')][_0x3220('0x24')]};delete _0xac2340[_0x3220('0x22')]['dateStart'];delete _0xac2340[_0x3220('0x22')][_0x3220('0x24')];_0x53e0c1['query']=_[_0x3220('0x21')](_0xac2340['query']);_0x53e0c1[_0x3220('0x25')]=_[_0x3220('0x26')](_0x53e0c1['model'],_0x53e0c1[_0x3220('0x22')]);_0x5b8a66['attributes']=_[_0x3220('0x26')](_0x53e0c1[_0x3220('0x20')],qs[_0x3220('0x27')](_0xac2340['query'][_0x3220('0x27')]));_0x5b8a66['attributes']=_0x5b8a66['attributes'][_0x3220('0x28')]?_0x5b8a66[_0x3220('0x29')]:_0x53e0c1['model'];if(!_0xac2340['query'][_0x3220('0x2a')]('nolimit')){_0x5b8a66[_0x3220('0x14')]=qs[_0x3220('0x14')](_0xac2340[_0x3220('0x22')]['limit']);_0x5b8a66[_0x3220('0x13')]=qs[_0x3220('0x13')](_0xac2340['query'][_0x3220('0x13')]);}_0x5b8a66[_0x3220('0x2b')]=qs[_0x3220('0x2c')](_0xac2340[_0x3220('0x22')]['sort']);_0x5b8a66[_0x3220('0x2d')]=qs[_0x3220('0x25')](_['pick'](_0xac2340[_0x3220('0x22')],_0x53e0c1['filters']));if(_0x589c12['dateStart']){if(_0x589c12[_0x3220('0x24')]){_0x589c12[_0x3220('0x24')]=moment(_0x589c12[_0x3220('0x24')])[_0x3220('0x2e')](0x1,_0x3220('0x2f'));}else{_0x589c12[_0x3220('0x24')]=moment(_0x589c12['dateStart'])[_0x3220('0x2e')](0x1,_0x3220('0x2f'));}_[_0x3220('0x30')](_0x5b8a66['where'],{'createdAt':{'$gte':_0x589c12['dateStart'],'$lte':_0x589c12[_0x3220('0x24')]}});}if(_0xac2340[_0x3220('0x22')]['filter']){_0x5b8a66['where']=_['merge'](_0x5b8a66[_0x3220('0x2d')],{'$or':_[_0x3220('0x31')](_0x5b8a66[_0x3220('0x29')],function(_0x33e0ab){var _0x1a6233={};_0x1a6233[_0x33e0ab]={'$like':'%'+_0xac2340['query'][_0x3220('0x32')]+'%'};return _0x1a6233;})});}_0x5b8a66=_[_0x3220('0x30')]({},_0x5b8a66,_0xac2340['options']);var _0xbcc1b={'where':_0x5b8a66[_0x3220('0x2d')]};return db[_0x3220('0x1e')][_0x3220('0x12')](_0xbcc1b)[_0x3220('0x18')](function(_0x193f96){_0x1d2abe[_0x3220('0x12')]=_0x193f96;if(_0xac2340[_0x3220('0x22')][_0x3220('0x33')]){_0x5b8a66[_0x3220('0x34')]=[{'all':!![]}];}return db[_0x3220('0x1e')][_0x3220('0x35')](_0x5b8a66);})['then'](function(_0x5d0840){_0x1d2abe[_0x3220('0x36')]=_0x5d0840;return _0x1d2abe;})[_0x3220('0x18')](respondWithFilteredResult(_0x3f52f2,_0x5b8a66))[_0x3220('0x37')](handleError(_0x3f52f2,null));};exports['show']=function(_0x5358ef,_0x544b3f){var _0x2cec79={'raw':![],'where':{'id':_0x5358ef['params']['id']}},_0x49452a={};_0x49452a[_0x3220('0x20')]=_[_0x3220('0x21')](db[_0x3220('0x1e')][_0x3220('0x1f')]);_0x49452a['query']=_[_0x3220('0x21')](_0x5358ef[_0x3220('0x22')]);_0x49452a['filters']=_[_0x3220('0x26')](_0x49452a[_0x3220('0x20')],_0x49452a['query']);_0x2cec79['attributes']=_[_0x3220('0x26')](_0x49452a[_0x3220('0x20')],qs[_0x3220('0x27')](_0x5358ef[_0x3220('0x22')]['fields']));_0x2cec79[_0x3220('0x29')]=_0x2cec79['attributes'][_0x3220('0x28')]?_0x2cec79['attributes']:_0x49452a['model'];if(_0x5358ef[_0x3220('0x22')][_0x3220('0x33')]){_0x2cec79[_0x3220('0x34')]=[{'all':!![]}];}_0x2cec79=_[_0x3220('0x30')]({},_0x2cec79,_0x5358ef[_0x3220('0x38')]);return db[_0x3220('0x1e')]['find'](_0x2cec79)[_0x3220('0x18')](handleEntityNotFound(_0x544b3f,null))[_0x3220('0x18')](respondWithResult(_0x544b3f,null))['catch'](handleError(_0x544b3f,null));};exports[_0x3220('0x17')]=function(_0x26fc3a,_0x59b972){if(_0x26fc3a[_0x3220('0x39')]['id']){delete _0x26fc3a[_0x3220('0x39')]['id'];}return db['VoiceMusicOnHold'][_0x3220('0x3a')]({'where':{'id':_0x26fc3a[_0x3220('0x3b')]['id']}})[_0x3220('0x18')](handleEntityNotFound(_0x59b972,null))[_0x3220('0x18')](saveUpdates(_0x26fc3a[_0x3220('0x39')],null))[_0x3220('0x18')](respondWithResult(_0x59b972,null))[_0x3220('0x37')](handleError(_0x59b972,null));};exports[_0x3220('0x3c')]=function(_0x4e1d47,_0x51dab0,_0x337b78){return db[_0x3220('0x3d')][_0x3220('0x3e')](function(_0x31991c){if(_0x4e1d47[_0x3220('0x39')]['mode']===_0x3220('0x3f')){_0x4e1d47['body']['directory']=path[_0x3220('0x40')](config[_0x3220('0x41')],'server/files/moh',_0x4e1d47[_0x3220('0x39')][_0x3220('0x1b')]);}return db[_0x3220('0x1e')]['create'](_0x4e1d47['body'],{'transaction':_0x31991c})[_0x3220('0x18')](function(_0x55f0d3){if(_0x4e1d47[_0x3220('0x39')][_0x3220('0x42')]===_0x3220('0x3f')){fs[_0x3220('0x43')](_0x55f0d3[_0x3220('0x44')],parseInt('0777',0x8));}return _0x55f0d3;});})[_0x3220('0x18')](respondWithResult(_0x51dab0,0xc9))[_0x3220('0x37')](handleError(_0x51dab0,null));};exports[_0x3220('0x19')]=function(_0x3a7428,_0x2a96f3,_0x3a20ae){var _0x2b37b7;return db[_0x3220('0x1e')][_0x3220('0x3a')]({'where':{'id':_0x3a7428[_0x3220('0x3b')]['id']}})[_0x3220('0x18')](function(_0x17322d){if(_0x17322d){return db[_0x3220('0x3d')][_0x3220('0x3e')](function(_0x193d8b){return _0x17322d['destroy']({'transaction':_0x193d8b,'raw':!![]})['then'](function(_0x43d314){if(_0x43d314[_0x3220('0x44')]){fs[_0x3220('0x45')](_0x43d314[_0x3220('0x44')])[_0x3220('0x46')](function(_0x3143f1){fs[_0x3220('0x47')](path['join'](_0x43d314[_0x3220('0x44')],_0x3143f1));});fs[_0x3220('0x48')](_0x43d314['directory']);}return _0x43d314;});})[_0x3220('0x37')](function(_0x314cb1){throw new db[(_0x3220('0x49'))][(_0x3220('0x4a'))](_0x314cb1['message']);});}})['then'](handleEntityNotFound(_0x2a96f3,null))[_0x3220('0x18')](removeEntity(_0x2a96f3,null))[_0x3220('0x37')](handleError(_0x2a96f3,null));};exports[_0x3220('0x4b')]=function(_0x5e1dd3,_0x4119dc,_0x56fc6e){return db['sequelize'][_0x3220('0x3e')](function(_0x1fad81){var _0x5121b2;return db[_0x3220('0x1e')][_0x3220('0x3a')]({'where':{'id':_0x5e1dd3[_0x3220('0x3b')]['id']}})['then'](function(_0x999738){if(_0x999738){_0x5121b2=_0x999738;return _0x999738['addSound'](_0x5e1dd3['body']['id'],{'transaction':_0x1fad81});}})[_0x3220('0x18')](function(_0x51af39){if(_0x51af39){return db[_0x3220('0x4c')]['findOne']({'where':{'id':_0x5e1dd3[_0x3220('0x39')]['id']},'attributes':['id',_0x3220('0x1b'),_0x3220('0x4d'),_0x3220('0x4e'),_0x3220('0x4f')],'raw':!![]});}})['then'](function(_0x42da84){if(_0x42da84){var _0x5389fd=path['join'](config[_0x3220('0x41')],_0x3220('0x50'),util[_0x3220('0x51')](_0x3220('0x52'),path[_0x3220('0x53')](_0x42da84['save_name'],path['extname'](_0x42da84[_0x3220('0x4d')])),_0x42da84[_0x3220('0x4e')]));var _0x47eeef=path[_0x3220('0x40')](config[_0x3220('0x41')],_0x3220('0x54'),_0x5121b2[_0x3220('0x1b')],util[_0x3220('0x51')](_0x3220('0x52'),_0x42da84['name'],_0x42da84['converted_format']));fs['symlinkSync'](_0x5389fd,_0x47eeef);return _0x42da84;}})['catch'](function(_0x5aedf5){throw new db['Sequelize'][(_0x3220('0x4a'))](_0x5aedf5[_0x3220('0x55')]);});})['then'](handleEntityNotFound(_0x4119dc,null))['then'](respondWithResult(_0x4119dc,0xc9))[_0x3220('0x37')](handleError(_0x4119dc,null));};exports[_0x3220('0x56')]=function(_0x7a6dd,_0x26c0c0,_0x5659b0){return db[_0x3220('0x3d')][_0x3220('0x3e')](function(_0x505d63){var _0x4f928a;return db[_0x3220('0x1e')][_0x3220('0x57')]({'where':{'id':_0x7a6dd['params']['id']}})['then'](handleEntityNotFound(_0x26c0c0,null))['then'](function(_0x4ccb00){if(_0x4ccb00){_0x4f928a=_0x4ccb00;return _0x4ccb00[_0x3220('0x56')](_0x7a6dd[_0x3220('0x3b')][_0x3220('0x58')]);}})[_0x3220('0x18')](function(_0x294f3e){if(_0x294f3e){return db[_0x3220('0x4c')][_0x3220('0x57')]({'where':{'id':_0x7a6dd[_0x3220('0x3b')][_0x3220('0x58')]},'attributes':['id',_0x3220('0x1b'),_0x3220('0x4d'),_0x3220('0x4e'),_0x3220('0x4f')],'raw':!![]});}})[_0x3220('0x18')](function(_0x1268f1){if(_0x1268f1){fs['unlinkSync'](path[_0x3220('0x40')](_0x4f928a[_0x3220('0x44')],util[_0x3220('0x51')](_0x3220('0x52'),_0x1268f1['name'],_0x1268f1[_0x3220('0x4e')])));return _0x1268f1;}})[_0x3220('0x37')](function(_0x59e1a5){throw new db[(_0x3220('0x49'))][(_0x3220('0x4a'))](_0x59e1a5[_0x3220('0x55')]);});})[_0x3220('0x18')](handleEntityNotFound(_0x26c0c0,null))[_0x3220('0x18')](respondWithStatusCode(_0x26c0c0,0xcc))['catch'](handleError(_0x26c0c0,null));};exports[_0x3220('0x59')]=function(_0x1c204b,_0xf622be,_0x268b92){var _0x39415f={};var _0x363390={};var _0x308f02;var _0x11f0c3;return db[_0x3220('0x1e')][_0x3220('0x57')]({'where':{'id':_0x1c204b[_0x3220('0x3b')]['id']}})[_0x3220('0x18')](handleEntityNotFound(_0xf622be,null))[_0x3220('0x18')](function(_0x5a1cc8){if(_0x5a1cc8){_0x308f02=_0x5a1cc8;_0x363390[_0x3220('0x20')]=_[_0x3220('0x21')](db[_0x3220('0x4c')][_0x3220('0x1f')]);_0x363390[_0x3220('0x22')]=_[_0x3220('0x21')](_0x1c204b[_0x3220('0x22')]);_0x363390[_0x3220('0x25')]=_['intersection'](_0x363390[_0x3220('0x20')],_0x363390[_0x3220('0x22')]);_0x39415f['attributes']=_[_0x3220('0x26')](_0x363390['model'],qs[_0x3220('0x27')](_0x1c204b[_0x3220('0x22')][_0x3220('0x27')]));_0x39415f[_0x3220('0x29')]=_0x39415f[_0x3220('0x29')][_0x3220('0x28')]?_0x39415f[_0x3220('0x29')]:_0x363390[_0x3220('0x20')];_0x39415f[_0x3220('0x2b')]=qs['sort'](_0x1c204b[_0x3220('0x22')]['sort']);_0x39415f[_0x3220('0x2d')]=qs[_0x3220('0x25')](_[_0x3220('0x5a')](_0x1c204b[_0x3220('0x22')],_0x363390['filters']));if(_0x1c204b['query'][_0x3220('0x32')]){_0x39415f[_0x3220('0x2d')]=_[_0x3220('0x30')](_0x39415f[_0x3220('0x2d')],{'$or':_['map'](_0x39415f[_0x3220('0x29')],function(_0x537abc){var _0x5311e9={};_0x5311e9[_0x537abc]={'$like':'%'+_0x1c204b[_0x3220('0x22')][_0x3220('0x32')]+'%'};return _0x5311e9;})});}_0x39415f=_[_0x3220('0x30')]({},_0x39415f,_0x1c204b['options']);return _0x308f02[_0x3220('0x59')](_0x39415f);}})['then'](function(_0x20a08a){if(_0x20a08a){_0x11f0c3=_0x20a08a[_0x3220('0x28')];if(!_0x1c204b[_0x3220('0x22')][_0x3220('0x2a')](_0x3220('0x5b'))){_0x39415f[_0x3220('0x14')]=qs['limit'](_0x1c204b[_0x3220('0x22')][_0x3220('0x14')]);_0x39415f[_0x3220('0x13')]=qs[_0x3220('0x13')](_0x1c204b[_0x3220('0x22')][_0x3220('0x13')]);}return _0x308f02[_0x3220('0x59')](_0x39415f);}})[_0x3220('0x18')](function(_0x407bec){if(_0x407bec){return _0x407bec?{'count':_0x11f0c3,'rows':_0x407bec}:null;}})[_0x3220('0x18')](respondWithResult(_0xf622be,null))[_0x3220('0x37')](handleError(_0xf622be,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ebe=['voice_musiconhold','lodash','util','../../config/logger','api','bluebird','request-promise','./voiceMusicOnHold.attributes','exports','define','VoiceMusicOnHold'];(function(_0x5c6046,_0x25dcd8){var _0x4c462d=function(_0x4615c8){while(--_0x4615c8){_0x5c6046['push'](_0x5c6046['shift']());}};_0x4c462d(++_0x25dcd8);}(_0x9ebe,0xa6));var _0xe9eb=function(_0x4bfdcc,_0x66104b){_0x4bfdcc=_0x4bfdcc-0x0;var _0x44710d=_0x9ebe[_0x4bfdcc];return _0x44710d;};'use strict';var _=require(_0xe9eb('0x0'));var util=require(_0xe9eb('0x1'));var logger=require(_0xe9eb('0x2'))(_0xe9eb('0x3'));var moment=require('moment');var BPromise=require(_0xe9eb('0x4'));var rp=require(_0xe9eb('0x5'));var attributes=require(_0xe9eb('0x6'));module[_0xe9eb('0x7')]=function(_0xdd274f,_0x573dff){return _0xdd274f[_0xe9eb('0x8')](_0xe9eb('0x9'),attributes,{'tableName':_0xe9eb('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x491d=['request-promise','./voiceMusicOnHold.attributes','exports','define','VoiceMusicOnHold','voice_musiconhold','lodash','util','api','bluebird'];(function(_0x48ae70,_0x49cae3){var _0x15a0e9=function(_0x16a09d){while(--_0x16a09d){_0x48ae70['push'](_0x48ae70['shift']());}};_0x15a0e9(++_0x49cae3);}(_0x491d,0x1be));var _0xd491=function(_0x3041bb,_0x205b9c){_0x3041bb=_0x3041bb-0x0;var _0x59d35=_0x491d[_0x3041bb];return _0x59d35;};'use strict';var _=require(_0xd491('0x0'));var util=require(_0xd491('0x1'));var logger=require('../../config/logger')(_0xd491('0x2'));var moment=require('moment');var BPromise=require(_0xd491('0x3'));var rp=require(_0xd491('0x4'));var attributes=require(_0xd491('0x5'));module[_0xd491('0x6')]=function(_0x30f75c,_0x1efcba){return _0x30f75c[_0xd491('0x7')](_0xd491('0x8'),attributes,{'tableName':_0xd491('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe59e=['moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','VoiceMusicOnHold,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe59e,0x158));var _0xee59=function(_0x266830,_0x4b18f1){_0x266830=_0x266830-0x0;var _0x3704f9=_0xe59e[_0x266830];return _0x3704f9;};'use strict';var _=require('lodash');var util=require(_0xee59('0x0'));var moment=require(_0xee59('0x1'));var BPromise=require(_0xee59('0x2'));var rs=require(_0xee59('0x3'));var fs=require('fs');var db=require(_0xee59('0x4'))['db'];var utils=require(_0xee59('0x5'));var logger=require(_0xee59('0x6'))(_0xee59('0x7'));var config=require(_0xee59('0x8'));var jayson=require(_0xee59('0x9'));var client=jayson[_0xee59('0xa')][_0xee59('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3d1bbd,_0x553fc3,_0x3fc0d7){return new BPromise(function(_0x5d83e5,_0x2c94fb){return client['request'](_0x3d1bbd,_0x3fc0d7)[_0xee59('0xc')](function(_0x59f685){logger[_0xee59('0xd')](_0xee59('0xe'),_0x553fc3,'request\x20sent');logger[_0xee59('0xf')]('VoiceMusicOnHold,\x20%s,\x20%s,\x20%s',_0x553fc3,_0xee59('0x10'),JSON[_0xee59('0x11')](_0x59f685));if(_0x59f685[_0xee59('0x12')]){if(_0x59f685['error'][_0xee59('0x13')]===0x1f4){logger[_0xee59('0x12')](_0xee59('0xe'),_0x553fc3,_0x59f685[_0xee59('0x12')][_0xee59('0x14')]);return _0x2c94fb(_0x59f685[_0xee59('0x12')][_0xee59('0x14')]);}logger[_0xee59('0x12')](_0xee59('0xe'),_0x553fc3,_0x59f685[_0xee59('0x12')][_0xee59('0x14')]);return _0x5d83e5(_0x59f685[_0xee59('0x12')]['message']);}else{logger[_0xee59('0xd')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x553fc3,_0xee59('0x10'));_0x5d83e5(_0x59f685[_0xee59('0x15')][_0xee59('0x14')]);}})[_0xee59('0x16')](function(_0x4ff184){logger[_0xee59('0x12')](_0xee59('0xe'),_0x553fc3,_0x4ff184);_0x2c94fb(_0x4ff184);});});}
\ No newline at end of file
+var _0xa21a=['../../config/environment','jayson/promise','request','info','VoiceMusicOnHold,\x20%s,\x20%s','request\x20sent','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc'];(function(_0x8267aa,_0x496ef0){var _0x2a437f=function(_0x447f72){while(--_0x447f72){_0x8267aa['push'](_0x8267aa['shift']());}};_0x2a437f(++_0x496ef0);}(_0xa21a,0xf4));var _0xaa21=function(_0x5a3620,_0x41a862){_0x5a3620=_0x5a3620-0x0;var _0x29b24e=_0xa21a[_0x5a3620];return _0x29b24e;};'use strict';var _=require(_0xaa21('0x0'));var util=require(_0xaa21('0x1'));var moment=require(_0xaa21('0x2'));var BPromise=require('bluebird');var rs=require(_0xaa21('0x3'));var fs=require('fs');var Redis=require(_0xaa21('0x4'));var db=require(_0xaa21('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xaa21('0x6'))(_0xaa21('0x7'));var config=require(_0xaa21('0x8'));var jayson=require(_0xaa21('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x25b21e,_0x56aef1,_0x3de997){return new BPromise(function(_0x1fdd9a,_0x83a55f){return client[_0xaa21('0xa')](_0x25b21e,_0x3de997)['then'](function(_0x34ae8d){logger[_0xaa21('0xb')](_0xaa21('0xc'),_0x56aef1,_0xaa21('0xd'));logger[_0xaa21('0xe')](_0xaa21('0xf'),_0x56aef1,_0xaa21('0xd'),JSON[_0xaa21('0x10')](_0x34ae8d));if(_0x34ae8d[_0xaa21('0x11')]){if(_0x34ae8d[_0xaa21('0x11')]['code']===0x1f4){logger[_0xaa21('0x11')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x56aef1,_0x34ae8d[_0xaa21('0x11')][_0xaa21('0x12')]);return _0x83a55f(_0x34ae8d[_0xaa21('0x11')][_0xaa21('0x12')]);}logger[_0xaa21('0x11')](_0xaa21('0xc'),_0x56aef1,_0x34ae8d[_0xaa21('0x11')][_0xaa21('0x12')]);return _0x1fdd9a(_0x34ae8d[_0xaa21('0x11')]['message']);}else{logger[_0xaa21('0xb')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x56aef1,_0xaa21('0xd'));_0x1fdd9a(_0x34ae8d[_0xaa21('0x13')][_0xaa21('0x12')]);}})[_0xaa21('0x14')](function(_0x452943){logger[_0xaa21('0x11')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x56aef1,_0x452943);_0x83a55f(_0x452943);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf875=['express','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','describe','show','/:id/users','getAgents','post','create','addAgents','/:id','update','delete','destroy','removeAgents','multer','path','connect-timeout'];(function(_0x38537f,_0x252124){var _0x141e23=function(_0x2809b5){while(--_0x2809b5){_0x38537f['push'](_0x38537f['shift']());}};_0x141e23(++_0x252124);}(_0xf875,0x138));var _0x5f87=function(_0x1dcb3f,_0x30336d){_0x1dcb3f=_0x1dcb3f-0x0;var _0x5d3d99=_0xf875[_0x1dcb3f];return _0x5d3d99;};'use strict';var multer=require(_0x5f87('0x0'));var util=require('util');var path=require(_0x5f87('0x1'));var timeout=require(_0x5f87('0x2'));var express=require(_0x5f87('0x3'));var router=express['Router']();var auth=require(_0x5f87('0x4'));var interaction=require(_0x5f87('0x5'));var config=require('../../config/environment');var controller=require('./voicePrefix.controller');router[_0x5f87('0x6')]('/',auth[_0x5f87('0x7')](),controller[_0x5f87('0x8')]);router[_0x5f87('0x6')]('/describe',auth['isAuthenticated'](),controller[_0x5f87('0x9')]);router['get']('/:id',auth[_0x5f87('0x7')](),controller[_0x5f87('0xa')]);router[_0x5f87('0x6')](_0x5f87('0xb'),auth['isAuthenticated'](),controller[_0x5f87('0xc')]);router[_0x5f87('0xd')]('/',auth[_0x5f87('0x7')](),controller[_0x5f87('0xe')]);router['post']('/:id/users',auth[_0x5f87('0x7')](),controller[_0x5f87('0xf')]);router['put'](_0x5f87('0x10'),auth[_0x5f87('0x7')](),controller[_0x5f87('0x11')]);router[_0x5f87('0x12')](_0x5f87('0x10'),auth[_0x5f87('0x7')](),controller[_0x5f87('0x13')]);router[_0x5f87('0x12')](_0x5f87('0xb'),auth[_0x5f87('0x7')](),controller[_0x5f87('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x8e94=['put','update','delete','destroy','removeAgents','exports','multer','util','connect-timeout','Router','../../components/interaction/service','isAuthenticated','index','/describe','describe','/:id','show','get','getAgents','post','/:id/users','addAgents'];(function(_0x482581,_0x283347){var _0x375ce6=function(_0x4bd1c1){while(--_0x4bd1c1){_0x482581['push'](_0x482581['shift']());}};_0x375ce6(++_0x283347);}(_0x8e94,0xf8));var _0x48e9=function(_0x2f1172,_0x5f5b26){_0x2f1172=_0x2f1172-0x0;var _0x58e374=_0x8e94[_0x2f1172];return _0x58e374;};'use strict';var multer=require(_0x48e9('0x0'));var util=require(_0x48e9('0x1'));var path=require('path');var timeout=require(_0x48e9('0x2'));var express=require('express');var router=express[_0x48e9('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x48e9('0x4'));var config=require('../../config/environment');var controller=require('./voicePrefix.controller');router['get']('/',auth[_0x48e9('0x5')](),controller[_0x48e9('0x6')]);router['get'](_0x48e9('0x7'),auth['isAuthenticated'](),controller[_0x48e9('0x8')]);router['get'](_0x48e9('0x9'),auth[_0x48e9('0x5')](),controller[_0x48e9('0xa')]);router[_0x48e9('0xb')]('/:id/users',auth[_0x48e9('0x5')](),controller[_0x48e9('0xc')]);router['post']('/',auth[_0x48e9('0x5')](),controller['create']);router[_0x48e9('0xd')](_0x48e9('0xe'),auth[_0x48e9('0x5')](),controller[_0x48e9('0xf')]);router[_0x48e9('0x10')](_0x48e9('0x9'),auth['isAuthenticated'](),controller[_0x48e9('0x11')]);router[_0x48e9('0x12')](_0x48e9('0x9'),auth['isAuthenticated'](),controller[_0x48e9('0x13')]);router[_0x48e9('0x12')](_0x48e9('0xe'),auth[_0x48e9('0x5')](),controller[_0x48e9('0x14')]);module[_0x48e9('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71f3=['VIRTUAL','system-','getDataValue','INTEGER','sequelize','exports','STRING','name'];(function(_0x1cc9d5,_0x464c67){var _0x695a62=function(_0x3e7d92){while(--_0x3e7d92){_0x1cc9d5['push'](_0x1cc9d5['shift']());}};_0x695a62(++_0x464c67);}(_0x71f3,0x1b4));var _0x371f=function(_0x1caebb,_0x264a79){_0x1caebb=_0x1caebb-0x0;var _0x38c588=_0x71f3[_0x1caebb];return _0x38c588;};'use strict';var Sequelize=require(_0x371f('0x0'));module[_0x371f('0x1')]={'name':{'type':Sequelize[_0x371f('0x2')],'allowNull':![],'unique':_0x371f('0x3')},'prefix':{'type':Sequelize[_0x371f('0x4')],'get':function(_0x229307){return _0x371f('0x5')+this[_0x371f('0x6')]('name')+'-';}},'description':{'type':Sequelize[_0x371f('0x2')]},'callerIdAll':{'type':Sequelize[_0x371f('0x2')]},'VoiceExtensionId':{'type':Sequelize[_0x371f('0x7')]}};
\ No newline at end of file
+var _0x97f0=['name','system-','getDataValue','INTEGER','exports','STRING'];(function(_0x2020d4,_0x160922){var _0xf28ba8=function(_0xe7c272){while(--_0xe7c272){_0x2020d4['push'](_0x2020d4['shift']());}};_0xf28ba8(++_0x160922);}(_0x97f0,0x130));var _0x097f=function(_0x5f1391,_0x19c132){_0x5f1391=_0x5f1391-0x0;var _0x50ebe3=_0x97f0[_0x5f1391];return _0x50ebe3;};'use strict';var Sequelize=require('sequelize');module[_0x097f('0x0')]={'name':{'type':Sequelize[_0x097f('0x1')],'allowNull':![],'unique':_0x097f('0x2')},'prefix':{'type':Sequelize['VIRTUAL'],'get':function(_0x5f224f){return _0x097f('0x3')+this[_0x097f('0x4')]('name')+'-';}},'description':{'type':Sequelize[_0x097f('0x1')]},'callerIdAll':{'type':Sequelize[_0x097f('0x1')]},'VoiceExtensionId':{'type':Sequelize[_0x097f('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1c4=['querystring','papaparse','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','update','then','destroy','error','name','send','index','VoicePrefix','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','intersection','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','add','day','merge','filter','map','options','include','findAll','rows','catch','show','length','find','params','describe','create','transaction','body','get','VoiceExtension','VoiceExtensionId','context','from-sip','exten','app','type','description','priority','appdata','NoOp','Voice\x20Prefix','VoicePrefixId','bulkCreate','prefix','push','Set','CDR(prefix)=','callerIdAll','goto','${EXTEN:','charAt','system-','sequelize','addAgents','omit','ids','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','emit','getAgents','findOne','User','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv'];(function(_0x3b4731,_0xcd1f76){var _0x3cd28d=function(_0x26ecc3){while(--_0x26ecc3){_0x3b4731['push'](_0x3b4731['shift']());}};_0x3cd28d(++_0xcd1f76);}(_0xf1c4,0xd9));var _0x4f1c=function(_0x70dd54,_0x1e6b60){_0x70dd54=_0x70dd54-0x0;var _0x5f1c42=_0xf1c4[_0x70dd54];return _0x5f1c42;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4f1c('0x0'));var rimraf=require(_0x4f1c('0x1'));var zipdir=require(_0x4f1c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4f1c('0x3'));var moment=require(_0x4f1c('0x4'));var BPromise=require(_0x4f1c('0x5'));var Mustache=require(_0x4f1c('0x6'));var util=require('util');var path=require(_0x4f1c('0x7'));var sox=require(_0x4f1c('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x4f1c('0x9'));var squel=require(_0x4f1c('0xa'));var crypto=require(_0x4f1c('0xb'));var jsforce=require(_0x4f1c('0xc'));var deskjs=require(_0x4f1c('0xd'));var toCsv=require(_0x4f1c('0xe'));var querystring=require(_0x4f1c('0xf'));var Papa=require(_0x4f1c('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0x4f1c('0x11'))(_0x4f1c('0x12'));var utils=require(_0x4f1c('0x13'));var config=require('../../config/environment');var db=require(_0x4f1c('0x14'))['db'];config[_0x4f1c('0x15')]=_[_0x4f1c('0x16')](config[_0x4f1c('0x15')],{'host':_0x4f1c('0x17'),'port':0x18eb});var socket=require(_0x4f1c('0x18'))(config['redis']);require(_0x4f1c('0x19'))[_0x4f1c('0x1a')](socket);function respondWithStatusCode(_0x1ded2f,_0x156791){_0x156791=_0x156791||0xcc;return function(_0x2793fc){if(_0x2793fc){return _0x1ded2f[_0x4f1c('0x1b')](_0x156791);}return _0x1ded2f[_0x4f1c('0x1c')](_0x156791)[_0x4f1c('0x1d')]();};}function respondWithResult(_0x42e05b,_0x45024b){_0x45024b=_0x45024b||0xc8;return function(_0x49d6bb){if(_0x49d6bb){return _0x42e05b['status'](_0x45024b)[_0x4f1c('0x1e')](_0x49d6bb);}};}function respondWithFilteredResult(_0x3f0a34,_0x560534){return function(_0x2c2481){if(_0x2c2481){var _0x13fb80=_0x2c2481[_0x4f1c('0x1f')],_0x5f2302=_0x560534[_0x4f1c('0x20')],_0x5a957b=_0x560534[_0x4f1c('0x20')]+_0x560534['limit'],_0x544bcf;if(_0x5a957b>=_0x13fb80){_0x5a957b=_0x13fb80;_0x544bcf=0xc8;}else{_0x544bcf=0xce;}_0x3f0a34[_0x4f1c('0x1c')](_0x544bcf);return _0x3f0a34[_0x4f1c('0x21')](_0x4f1c('0x22'),_0x5f2302+'-'+_0x5a957b+'/'+_0x13fb80)[_0x4f1c('0x1e')](_0x2c2481);}return null;};}function patchUpdates(_0x27cefe){return function(_0x158f4f){try{jsonpatch[_0x4f1c('0x23')](_0x158f4f,_0x27cefe,!![]);}catch(_0x28bafc){return BPromise[_0x4f1c('0x24')](_0x28bafc);}return _0x158f4f['save']();};}function saveUpdates(_0x326fe1,_0x15c21e){return function(_0x3b9e51){if(_0x3b9e51){return _0x3b9e51[_0x4f1c('0x25')](_0x326fe1)[_0x4f1c('0x26')](function(_0x5f1422){return _0x5f1422;});}return null;};}function removeEntity(_0x3eb63f,_0x3665a5){return function(_0x31c7f9){if(_0x31c7f9){return _0x31c7f9[_0x4f1c('0x27')]()[_0x4f1c('0x26')](function(){_0x3eb63f[_0x4f1c('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x50170e,_0x1b59cf){return function(_0x20a8f9){if(!_0x20a8f9){_0x50170e[_0x4f1c('0x1b')](0x194);}return _0x20a8f9;};}function handleError(_0x2c226a,_0x49c70a){_0x49c70a=_0x49c70a||0x1f4;return function(_0x3e1dcd){logger[_0x4f1c('0x28')](_0x3e1dcd['stack']);if(_0x3e1dcd[_0x4f1c('0x29')]){delete _0x3e1dcd[_0x4f1c('0x29')];}_0x2c226a[_0x4f1c('0x1c')](_0x49c70a)[_0x4f1c('0x2a')](_0x3e1dcd);};}exports[_0x4f1c('0x2b')]=function(_0x50c4dc,_0x49a8e5){var _0x271f5b={},_0x5d8771={},_0x5b1f52={'count':0x0,'rows':[]};var _0xa3083a=db[_0x4f1c('0x2c')][_0x4f1c('0x2d')];_0x5d8771[_0x4f1c('0x2e')]=_[_0x4f1c('0x2f')](_0xa3083a);var _0x577ae3={'dateStart':_0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x31')],'dateEnd':_0x50c4dc['query'][_0x4f1c('0x32')]};delete _0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x31')];delete _0x50c4dc[_0x4f1c('0x30')]['dateEnd'];_0x5d8771[_0x4f1c('0x30')]=_[_0x4f1c('0x2f')](_0x50c4dc[_0x4f1c('0x30')]);_0x5d8771[_0x4f1c('0x33')]=_['intersection'](_0x5d8771[_0x4f1c('0x2e')],_0x5d8771[_0x4f1c('0x30')]);_0x271f5b[_0x4f1c('0x34')]=_[_0x4f1c('0x35')](_0x5d8771[_0x4f1c('0x2e')],qs[_0x4f1c('0x36')](_0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x36')]));_0x271f5b[_0x4f1c('0x34')]=_0x271f5b[_0x4f1c('0x34')]['length']?_0x271f5b[_0x4f1c('0x34')]:_0x5d8771[_0x4f1c('0x2e')];if(!_0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x37')](_0x4f1c('0x38'))){_0x271f5b[_0x4f1c('0x39')]=qs[_0x4f1c('0x39')](_0x50c4dc['query'][_0x4f1c('0x39')]);_0x271f5b[_0x4f1c('0x20')]=qs['offset'](_0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x20')]);}_0x271f5b[_0x4f1c('0x3a')]=qs[_0x4f1c('0x3b')](_0x50c4dc['query'][_0x4f1c('0x3b')]);_0x271f5b[_0x4f1c('0x3c')]=qs[_0x4f1c('0x33')](_[_0x4f1c('0x3d')](_0x50c4dc[_0x4f1c('0x30')],_0x5d8771[_0x4f1c('0x33')]));if(_0x577ae3['dateStart']){if(_0x577ae3[_0x4f1c('0x32')]){_0x577ae3[_0x4f1c('0x32')]=moment(_0x577ae3[_0x4f1c('0x32')])[_0x4f1c('0x3e')](0x1,'day');}else{_0x577ae3[_0x4f1c('0x32')]=moment(_0x577ae3[_0x4f1c('0x31')])[_0x4f1c('0x3e')](0x1,_0x4f1c('0x3f'));}_[_0x4f1c('0x40')](_0x271f5b[_0x4f1c('0x3c')],{'createdAt':{'$gte':_0x577ae3[_0x4f1c('0x31')],'$lte':_0x577ae3[_0x4f1c('0x32')]}});}if(_0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x41')]){_0x271f5b['where']=_[_0x4f1c('0x40')](_0x271f5b[_0x4f1c('0x3c')],{'$or':_[_0x4f1c('0x42')](_0x271f5b[_0x4f1c('0x34')],function(_0x1ae041){var _0xc6f061={};_0xc6f061[_0x1ae041]={'$like':'%'+_0x50c4dc[_0x4f1c('0x30')][_0x4f1c('0x41')]+'%'};return _0xc6f061;})});}_0x271f5b=_[_0x4f1c('0x40')]({},_0x271f5b,_0x50c4dc[_0x4f1c('0x43')]);var _0xdf93d5={'where':_0x271f5b[_0x4f1c('0x3c')]};return db[_0x4f1c('0x2c')][_0x4f1c('0x1f')](_0xdf93d5)[_0x4f1c('0x26')](function(_0x4035dd){_0x5b1f52['count']=_0x4035dd;if(_0x50c4dc['query']['includeAll']){_0x271f5b[_0x4f1c('0x44')]=[{'all':!![]}];}return db[_0x4f1c('0x2c')][_0x4f1c('0x45')](_0x271f5b);})[_0x4f1c('0x26')](function(_0x3e074b){_0x5b1f52[_0x4f1c('0x46')]=_0x3e074b;return _0x5b1f52;})[_0x4f1c('0x26')](respondWithFilteredResult(_0x49a8e5,_0x271f5b))[_0x4f1c('0x47')](handleError(_0x49a8e5,null));};exports[_0x4f1c('0x48')]=function(_0x1d26ee,_0xaec339){var _0x514473={'raw':![],'where':{'id':_0x1d26ee['params']['id']}},_0x3020dc={};_0x3020dc[_0x4f1c('0x2e')]=_['keys'](db[_0x4f1c('0x2c')][_0x4f1c('0x2d')]);_0x3020dc['query']=_[_0x4f1c('0x2f')](_0x1d26ee['query']);_0x3020dc[_0x4f1c('0x33')]=_[_0x4f1c('0x35')](_0x3020dc['model'],_0x3020dc[_0x4f1c('0x30')]);_0x514473[_0x4f1c('0x34')]=_['intersection'](_0x3020dc['model'],qs[_0x4f1c('0x36')](_0x1d26ee[_0x4f1c('0x30')][_0x4f1c('0x36')]));_0x514473[_0x4f1c('0x34')]=_0x514473[_0x4f1c('0x34')][_0x4f1c('0x49')]?_0x514473['attributes']:_0x3020dc[_0x4f1c('0x2e')];if(_0x1d26ee[_0x4f1c('0x30')]['includeAll']){_0x514473[_0x4f1c('0x44')]=[{'all':!![]}];}_0x514473=_[_0x4f1c('0x40')]({},_0x514473,_0x1d26ee[_0x4f1c('0x43')]);return db[_0x4f1c('0x2c')]['find'](_0x514473)['then'](handleEntityNotFound(_0xaec339,null))[_0x4f1c('0x26')](respondWithResult(_0xaec339,null))[_0x4f1c('0x47')](handleError(_0xaec339,null));};exports['destroy']=function(_0xa89f25,_0x153536){return db['VoicePrefix'][_0x4f1c('0x4a')]({'where':{'id':_0xa89f25[_0x4f1c('0x4b')]['id']}})[_0x4f1c('0x26')](handleEntityNotFound(_0x153536,null))[_0x4f1c('0x26')](removeEntity(_0x153536,null))[_0x4f1c('0x47')](handleError(_0x153536,null));};exports[_0x4f1c('0x4c')]=function(_0x1d22fd,_0x5a73db){return db[_0x4f1c('0x2c')][_0x4f1c('0x4c')]()['then'](respondWithResult(_0x5a73db,null))['catch'](handleError(_0x5a73db,null));};exports[_0x4f1c('0x4d')]=function(_0xe26671,_0x16015c){var _0x2748e1;return db['sequelize'][_0x4f1c('0x4e')](function(_0x8615f){return db['VoicePrefix'][_0x4f1c('0x4d')](_0xe26671[_0x4f1c('0x4f')],{'transaction':_0x8615f})['then'](function(_0x589648){_0x2748e1=_0x589648[_0x4f1c('0x50')]({'plain':!![]});return db[_0x4f1c('0x51')][_0x4f1c('0x4a')]({'where':{'id':_0x2748e1[_0x4f1c('0x52')]},'raw':!![]})[_0x4f1c('0x26')](function(_0x3d4ea0){return createVoicePrefixExtensions(_0x2748e1,_0x3d4ea0,_0x8615f);});});})[_0x4f1c('0x26')](function(){return _0x2748e1;})[_0x4f1c('0x26')](respondWithResult(_0x16015c,null))[_0x4f1c('0x47')](handleError(_0x16015c,null));};function Extension(_0x5d1731,_0x571a62,_0x3cbb90,_0x1d3472){this[_0x4f1c('0x53')]=_0x4f1c('0x54');this[_0x4f1c('0x55')]=_0x5d1731;this[_0x4f1c('0x56')]=_0x3cbb90;this[_0x4f1c('0x57')]='system';this[_0x4f1c('0x58')]='Voice\x20Prefix\x20Extension';this[_0x4f1c('0x59')]=_0x571a62;this[_0x4f1c('0x5a')]=_0x1d3472;}function createVoicePrefixExtensions(_0xdd99a,_0x372729,_0x422b3c){return new BPromise(function(_0x4356a4,_0x1577ab){var _0x1fefa2=new Extension(formatPrefixName(_0xdd99a['prefix']),0x1,_0x4f1c('0x5b'),_0x4f1c('0x5c'));_0x1fefa2['VoicePrefixId']=_0xdd99a['id'];return db[_0x4f1c('0x51')][_0x4f1c('0x4d')](_0x1fefa2,{'transaction':_0x422b3c})[_0x4f1c('0x26')](function(_0x5e3bad){var _0x3026b0=_0x5e3bad['get']({'plain':!![]});var _0x19e5a9=_[_0x4f1c('0x42')](addVoicePrefixExtensions(_0xdd99a,_0x372729),function(_0x1b1b68){_0x1b1b68[_0x4f1c('0x52')]=_0x3026b0['id'];_0x1b1b68[_0x4f1c('0x5d')]=_0xdd99a['id'];return _0x1b1b68;});return db[_0x4f1c('0x51')][_0x4f1c('0x5e')](_0x19e5a9,{'transaction':_0x422b3c})[_0x4f1c('0x26')](function(_0x44d2e7){if(!_0x44d2e7){return _0x1577ab('Extensions\x20creation\x20failed');}else{return _0x4356a4(_0x44d2e7);}})[_0x4f1c('0x47')](function(_0x69168b){return _0x1577ab(_0x69168b);});});;});};function addVoicePrefixExtensions(_0x250b2c,_0x290d68){var _0x57a2f3=[];var _0x40cc50=formatPrefixName(_0x250b2c[_0x4f1c('0x5f')]);_0x57a2f3[_0x4f1c('0x60')](new Extension(_0x40cc50,0x2,_0x4f1c('0x61'),_0x4f1c('0x62')+_0x250b2c['name']));if(_0x250b2c[_0x4f1c('0x63')]){_0x57a2f3[_0x4f1c('0x60')](new Extension(_0x40cc50,0x3,_0x4f1c('0x61'),'PREFIX-CALLERIDALL='+_0x250b2c[_0x4f1c('0x63')]));}else{_0x57a2f3[_0x4f1c('0x60')](new Extension(_0x40cc50,0x3,_0x4f1c('0x5b'),'No\x20callerid\x20available'));}_0x57a2f3[_0x4f1c('0x60')](new Extension(_0x40cc50,0x4,_0x4f1c('0x64'),_0x290d68[_0x4f1c('0x53')]+','+_0x4f1c('0x65')+(0x8+_0x250b2c[_0x4f1c('0x29')][_0x4f1c('0x49')])+'}'+','+0x1));return _0x57a2f3;}function formatPrefixName(_0x3ff2db){var _0x186d4c='_';for(var _0x4593eb=0x0;_0x4593eb<_0x3ff2db[_0x4f1c('0x49')];_0x4593eb++){if(_0x3ff2db['charAt'](_0x4593eb)=='-'){_0x186d4c+=_0x3ff2db[_0x4f1c('0x66')](_0x4593eb);}else{_0x186d4c+='['+_0x3ff2db[_0x4f1c('0x66')](_0x4593eb)+']';}}_0x186d4c+='.';return _0x186d4c;}exports[_0x4f1c('0x25')]=function(_0x57b58c,_0x23e554,_0x48e975){var _0x19ba5d=_0x57b58c[_0x4f1c('0x4f')];_0x19ba5d['prefix']=_0x4f1c('0x67')+_0x19ba5d[_0x4f1c('0x29')]+'-';return db[_0x4f1c('0x68')]['transaction'](function(_0x46976b){return db['VoicePrefix'][_0x4f1c('0x25')](_0x19ba5d,{'where':{'id':_0x19ba5d['id']},'transaction':_0x46976b})[_0x4f1c('0x26')](function(){return db['VoiceExtension'][_0x4f1c('0x27')]({'where':{'VoicePrefixId':_0x19ba5d['id']},'transaction':_0x46976b})[_0x4f1c('0x26')](function(){return db[_0x4f1c('0x51')][_0x4f1c('0x4a')]({'where':{'id':_0x19ba5d[_0x4f1c('0x52')]},'raw':!![]})[_0x4f1c('0x26')](function(_0x28abc0){return createVoicePrefixExtensions(_0x19ba5d,_0x28abc0,_0x46976b);});});});})['then'](function(){return db[_0x4f1c('0x2c')]['findById'](_0x19ba5d['id']);})[_0x4f1c('0x26')](respondWithResult(_0x23e554,null))[_0x4f1c('0x47')](handleError(_0x23e554,null));};exports[_0x4f1c('0x69')]=function(_0x4912b5,_0x1a5513,_0x5ac5ee){return db[_0x4f1c('0x2c')][_0x4f1c('0x4a')]({'where':{'id':_0x4912b5[_0x4f1c('0x4b')]['id']}})[_0x4f1c('0x26')](handleEntityNotFound(_0x1a5513,null))[_0x4f1c('0x26')](function(_0x306bdc){if(_0x306bdc){return _0x306bdc[_0x4f1c('0x69')](_0x4912b5[_0x4f1c('0x4f')]['ids'],_[_0x4f1c('0x6a')](_0x4912b5['body'],[_0x4f1c('0x6b'),'id'])||{})['spread'](function(_0x1cf8ee){for(var _0x566773=0x0;_0x566773<_0x4912b5[_0x4f1c('0x4f')][_0x4f1c('0x6b')][_0x4f1c('0x49')];_0x566773+=0x1){socket['emit'](_0x4f1c('0x6c'),{'UserId':_0x4912b5['body']['ids'][_0x566773],'VoicePrefixId':_0x4912b5['params']['id']});}return _0x1cf8ee;});}})[_0x4f1c('0x26')](respondWithResult(_0x1a5513,null))[_0x4f1c('0x47')](handleError(_0x1a5513,null));};exports[_0x4f1c('0x6d')]=function(_0x6303a7,_0x49523e,_0x3fb551){var _0x1cc3ec;return db[_0x4f1c('0x2c')]['find']({'where':{'id':_0x6303a7[_0x4f1c('0x4b')]['id']}})['then'](handleEntityNotFound(_0x49523e,null))[_0x4f1c('0x26')](function(_0x3a47c2){if(_0x3a47c2){return _0x3a47c2[_0x4f1c('0x6d')](_0x6303a7[_0x4f1c('0x30')]['ids'])['then'](function(_0x2734c3){if(_[_0x4f1c('0x6e')](_0x6303a7[_0x4f1c('0x30')]['ids'])){for(var _0x1244ba=0x0;_0x1244ba<_0x6303a7['query']['ids'][_0x4f1c('0x49')];_0x1244ba+=0x1){socket['emit'](_0x4f1c('0x6f'),{'UserId':_0x6303a7['query'][_0x4f1c('0x6b')][_0x1244ba],'VoicePrefixId':_0x6303a7[_0x4f1c('0x4b')]['id']});}}else{socket[_0x4f1c('0x70')](_0x4f1c('0x6f'),{'UserId':_0x6303a7['query']['ids'],'VoicePrefixId':_0x6303a7[_0x4f1c('0x4b')]['id']});}});}})[_0x4f1c('0x26')](respondWithStatusCode(_0x49523e,null))[_0x4f1c('0x47')](handleError(_0x49523e,null));};exports[_0x4f1c('0x71')]=function(_0x3533cc,_0x4b3d0d,_0x24e91a){var _0x16f161={};var _0x536fae={};var _0x135093;var _0x16fec4;return db[_0x4f1c('0x2c')][_0x4f1c('0x72')]({'where':{'id':_0x3533cc[_0x4f1c('0x4b')]['id']}})[_0x4f1c('0x26')](handleEntityNotFound(_0x4b3d0d,null))[_0x4f1c('0x26')](function(_0x3e2b0c){if(_0x3e2b0c){_0x135093=_0x3e2b0c;_0x536fae[_0x4f1c('0x2e')]=_[_0x4f1c('0x2f')](db[_0x4f1c('0x73')]['rawAttributes']);_0x536fae[_0x4f1c('0x30')]=_[_0x4f1c('0x2f')](_0x3533cc[_0x4f1c('0x30')]);_0x536fae['filters']=_[_0x4f1c('0x35')](_0x536fae[_0x4f1c('0x2e')],_0x536fae[_0x4f1c('0x30')]);_0x16f161[_0x4f1c('0x34')]=_[_0x4f1c('0x35')](_0x536fae[_0x4f1c('0x2e')],qs[_0x4f1c('0x36')](_0x3533cc[_0x4f1c('0x30')][_0x4f1c('0x36')]));_0x16f161[_0x4f1c('0x34')]=_0x16f161[_0x4f1c('0x34')][_0x4f1c('0x49')]?_0x16f161['attributes']:_0x536fae[_0x4f1c('0x2e')];_0x16f161[_0x4f1c('0x3a')]=qs[_0x4f1c('0x3b')](_0x3533cc[_0x4f1c('0x30')][_0x4f1c('0x3b')]);_0x16f161[_0x4f1c('0x3c')]=qs[_0x4f1c('0x33')](_[_0x4f1c('0x3d')](_0x3533cc[_0x4f1c('0x30')],_0x536fae['filters']));if(_0x3533cc[_0x4f1c('0x30')][_0x4f1c('0x41')]){_0x16f161[_0x4f1c('0x3c')]=_[_0x4f1c('0x40')](_0x16f161[_0x4f1c('0x3c')],{'$or':_[_0x4f1c('0x42')](_0x16f161[_0x4f1c('0x34')],function(_0x411ae3){var _0x1d5436={};_0x1d5436[_0x411ae3]={'$like':'%'+_0x3533cc[_0x4f1c('0x30')]['filter']+'%'};return _0x1d5436;})});}_0x16f161=_['merge']({},_0x16f161,_0x3533cc[_0x4f1c('0x43')]);return _0x135093[_0x4f1c('0x71')](_0x16f161);}})[_0x4f1c('0x26')](function(_0x56ade9){if(_0x56ade9){_0x16fec4=_0x56ade9[_0x4f1c('0x49')];if(!_0x3533cc['query'][_0x4f1c('0x37')](_0x4f1c('0x38'))){_0x16f161[_0x4f1c('0x39')]=qs[_0x4f1c('0x39')](_0x3533cc[_0x4f1c('0x30')][_0x4f1c('0x39')]);_0x16f161[_0x4f1c('0x20')]=qs[_0x4f1c('0x20')](_0x3533cc[_0x4f1c('0x30')]['offset']);}return _0x135093[_0x4f1c('0x71')](_0x16f161);}})['then'](function(_0x3c0b22){if(_0x3c0b22){return _0x3c0b22?{'count':_0x16fec4,'rows':_0x3c0b22}:null;}})[_0x4f1c('0x26')](respondWithResult(_0x4b3d0d,null))[_0x4f1c('0x47')](handleError(_0x4b3d0d,null));};
\ No newline at end of file
+var _0x2a07=['getAgents','findOne','rawAttributes','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','register','status','end','count','offset','limit','set','Content-Range','apply','reject','update','destroy','then','sendStatus','error','stack','name','send','index','VoicePrefix','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','filter','merge','options','include','findAll','rows','catch','params','find','describe','create','sequelize','body','get','VoiceExtension','context','app','type','description','priority','prefix','Voice\x20Prefix','VoicePrefixId','map','VoiceExtensionId','push','CDR(prefix)=','callerIdAll','PREFIX-CALLERIDALL=','NoOp','No\x20callerid\x20available','goto','${EXTEN:','charAt','findById','ids','omit','spread','emit','userVoicePrefix:save','removeAgents','isArray'];(function(_0x7c645f,_0x4177ab){var _0x1ae9c0=function(_0xb6be2c){while(--_0xb6be2c){_0x7c645f['push'](_0x7c645f['shift']());}};_0x1ae9c0(++_0x4177ab);}(_0x2a07,0x74));var _0x72a0=function(_0x36d203,_0x3653f3){_0x36d203=_0x36d203-0x0;var _0x2f9e62=_0x2a07[_0x36d203];return _0x2f9e62;};'use strict';var pdf=require(_0x72a0('0x0'));var emlformat=require(_0x72a0('0x1'));var rimraf=require(_0x72a0('0x2'));var zipdir=require(_0x72a0('0x3'));var jsonpatch=require(_0x72a0('0x4'));var rp=require('request-promise');var moment=require(_0x72a0('0x5'));var BPromise=require(_0x72a0('0x6'));var Mustache=require(_0x72a0('0x7'));var util=require(_0x72a0('0x8'));var path=require(_0x72a0('0x9'));var sox=require(_0x72a0('0xa'));var csv=require(_0x72a0('0xb'));var ejs=require(_0x72a0('0xc'));var fs=require('fs');var _=require(_0x72a0('0xd'));var squel=require(_0x72a0('0xe'));var crypto=require(_0x72a0('0xf'));var jsforce=require(_0x72a0('0x10'));var deskjs=require(_0x72a0('0x11'));var toCsv=require(_0x72a0('0xb'));var querystring=require(_0x72a0('0x12'));var Papa=require(_0x72a0('0x13'));var Redis=require('ioredis');var qs=require(_0x72a0('0x14'));var logger=require(_0x72a0('0x15'))('api');var utils=require(_0x72a0('0x16'));var config=require(_0x72a0('0x17'));var db=require(_0x72a0('0x18'))['db'];config[_0x72a0('0x19')]=_[_0x72a0('0x1a')](config['redis'],{'host':_0x72a0('0x1b'),'port':0x18eb});var socket=require(_0x72a0('0x1c'))(new Redis(config[_0x72a0('0x19')]));require(_0x72a0('0x1d'))[_0x72a0('0x1e')](socket);function respondWithStatusCode(_0x324cbd,_0xe73b5e){_0xe73b5e=_0xe73b5e||0xcc;return function(_0x5e0b5f){if(_0x5e0b5f){return _0x324cbd['sendStatus'](_0xe73b5e);}return _0x324cbd[_0x72a0('0x1f')](_0xe73b5e)[_0x72a0('0x20')]();};}function respondWithResult(_0x19eaf9,_0x1d1133){_0x1d1133=_0x1d1133||0xc8;return function(_0x23b001){if(_0x23b001){return _0x19eaf9[_0x72a0('0x1f')](_0x1d1133)['json'](_0x23b001);}};}function respondWithFilteredResult(_0x30248e,_0x2e7552){return function(_0x16ac70){if(_0x16ac70){var _0xb7e22d=_0x16ac70[_0x72a0('0x21')],_0x2d1e95=_0x2e7552[_0x72a0('0x22')],_0x54495e=_0x2e7552['offset']+_0x2e7552[_0x72a0('0x23')],_0x100d8f;if(_0x54495e>=_0xb7e22d){_0x54495e=_0xb7e22d;_0x100d8f=0xc8;}else{_0x100d8f=0xce;}_0x30248e[_0x72a0('0x1f')](_0x100d8f);return _0x30248e[_0x72a0('0x24')](_0x72a0('0x25'),_0x2d1e95+'-'+_0x54495e+'/'+_0xb7e22d)['json'](_0x16ac70);}return null;};}function patchUpdates(_0x3bc78b){return function(_0x5b8f2c){try{jsonpatch[_0x72a0('0x26')](_0x5b8f2c,_0x3bc78b,!![]);}catch(_0x315413){return BPromise[_0x72a0('0x27')](_0x315413);}return _0x5b8f2c['save']();};}function saveUpdates(_0x35da77,_0x1849d1){return function(_0x1d22d8){if(_0x1d22d8){return _0x1d22d8[_0x72a0('0x28')](_0x35da77)['then'](function(_0x38a7ba){return _0x38a7ba;});}return null;};}function removeEntity(_0x390464,_0x1ddd54){return function(_0x23b918){if(_0x23b918){return _0x23b918[_0x72a0('0x29')]()[_0x72a0('0x2a')](function(){_0x390464['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x468d66,_0x2d8b68){return function(_0x123df4){if(!_0x123df4){_0x468d66[_0x72a0('0x2b')](0x194);}return _0x123df4;};}function handleError(_0xf5cb49,_0x27ca5a){_0x27ca5a=_0x27ca5a||0x1f4;return function(_0xa5bda0){logger[_0x72a0('0x2c')](_0xa5bda0[_0x72a0('0x2d')]);if(_0xa5bda0[_0x72a0('0x2e')]){delete _0xa5bda0['name'];}_0xf5cb49[_0x72a0('0x1f')](_0x27ca5a)[_0x72a0('0x2f')](_0xa5bda0);};}exports[_0x72a0('0x30')]=function(_0x2928f6,_0x1773ea){var _0x177a3a={},_0x432179={},_0x12eda2={'count':0x0,'rows':[]};var _0x23c96a=db[_0x72a0('0x31')]['rawAttributes'];_0x432179[_0x72a0('0x32')]=_[_0x72a0('0x33')](_0x23c96a);var _0x39136d={'dateStart':_0x2928f6[_0x72a0('0x34')][_0x72a0('0x35')],'dateEnd':_0x2928f6[_0x72a0('0x34')][_0x72a0('0x36')]};delete _0x2928f6['query'][_0x72a0('0x35')];delete _0x2928f6[_0x72a0('0x34')][_0x72a0('0x36')];_0x432179[_0x72a0('0x34')]=_[_0x72a0('0x33')](_0x2928f6[_0x72a0('0x34')]);_0x432179[_0x72a0('0x37')]=_[_0x72a0('0x38')](_0x432179['model'],_0x432179[_0x72a0('0x34')]);_0x177a3a[_0x72a0('0x39')]=_[_0x72a0('0x38')](_0x432179['model'],qs[_0x72a0('0x3a')](_0x2928f6['query'][_0x72a0('0x3a')]));_0x177a3a[_0x72a0('0x39')]=_0x177a3a[_0x72a0('0x39')][_0x72a0('0x3b')]?_0x177a3a[_0x72a0('0x39')]:_0x432179[_0x72a0('0x32')];if(!_0x2928f6[_0x72a0('0x34')][_0x72a0('0x3c')](_0x72a0('0x3d'))){_0x177a3a[_0x72a0('0x23')]=qs[_0x72a0('0x23')](_0x2928f6[_0x72a0('0x34')]['limit']);_0x177a3a[_0x72a0('0x22')]=qs['offset'](_0x2928f6[_0x72a0('0x34')][_0x72a0('0x22')]);}_0x177a3a[_0x72a0('0x3e')]=qs[_0x72a0('0x3f')](_0x2928f6[_0x72a0('0x34')][_0x72a0('0x3f')]);_0x177a3a[_0x72a0('0x40')]=qs[_0x72a0('0x37')](_[_0x72a0('0x41')](_0x2928f6['query'],_0x432179['filters']));if(_0x39136d[_0x72a0('0x35')]){if(_0x39136d[_0x72a0('0x36')]){_0x39136d[_0x72a0('0x36')]=moment(_0x39136d[_0x72a0('0x36')])[_0x72a0('0x42')](0x1,'day');}else{_0x39136d[_0x72a0('0x36')]=moment(_0x39136d[_0x72a0('0x35')])['add'](0x1,_0x72a0('0x43'));}_['merge'](_0x177a3a['where'],{'createdAt':{'$gte':_0x39136d['dateStart'],'$lte':_0x39136d[_0x72a0('0x36')]}});}if(_0x2928f6['query'][_0x72a0('0x44')]){_0x177a3a[_0x72a0('0x40')]=_[_0x72a0('0x45')](_0x177a3a[_0x72a0('0x40')],{'$or':_['map'](_0x177a3a['attributes'],function(_0x4bb006){var _0x4a32bd={};_0x4a32bd[_0x4bb006]={'$like':'%'+_0x2928f6[_0x72a0('0x34')][_0x72a0('0x44')]+'%'};return _0x4a32bd;})});}_0x177a3a=_['merge']({},_0x177a3a,_0x2928f6[_0x72a0('0x46')]);var _0x35d790={'where':_0x177a3a['where']};return db[_0x72a0('0x31')][_0x72a0('0x21')](_0x35d790)[_0x72a0('0x2a')](function(_0xe4abe1){_0x12eda2[_0x72a0('0x21')]=_0xe4abe1;if(_0x2928f6[_0x72a0('0x34')]['includeAll']){_0x177a3a[_0x72a0('0x47')]=[{'all':!![]}];}return db['VoicePrefix'][_0x72a0('0x48')](_0x177a3a);})['then'](function(_0x2266e4){_0x12eda2[_0x72a0('0x49')]=_0x2266e4;return _0x12eda2;})['then'](respondWithFilteredResult(_0x1773ea,_0x177a3a))[_0x72a0('0x4a')](handleError(_0x1773ea,null));};exports['show']=function(_0x443b3e,_0x1c07b9){var _0x13254c={'raw':![],'where':{'id':_0x443b3e[_0x72a0('0x4b')]['id']}},_0x4afdd1={};_0x4afdd1[_0x72a0('0x32')]=_[_0x72a0('0x33')](db['VoicePrefix']['rawAttributes']);_0x4afdd1[_0x72a0('0x34')]=_['keys'](_0x443b3e[_0x72a0('0x34')]);_0x4afdd1[_0x72a0('0x37')]=_[_0x72a0('0x38')](_0x4afdd1[_0x72a0('0x32')],_0x4afdd1[_0x72a0('0x34')]);_0x13254c[_0x72a0('0x39')]=_[_0x72a0('0x38')](_0x4afdd1[_0x72a0('0x32')],qs[_0x72a0('0x3a')](_0x443b3e['query'][_0x72a0('0x3a')]));_0x13254c[_0x72a0('0x39')]=_0x13254c[_0x72a0('0x39')][_0x72a0('0x3b')]?_0x13254c[_0x72a0('0x39')]:_0x4afdd1[_0x72a0('0x32')];if(_0x443b3e[_0x72a0('0x34')]['includeAll']){_0x13254c['include']=[{'all':!![]}];}_0x13254c=_[_0x72a0('0x45')]({},_0x13254c,_0x443b3e[_0x72a0('0x46')]);return db[_0x72a0('0x31')][_0x72a0('0x4c')](_0x13254c)[_0x72a0('0x2a')](handleEntityNotFound(_0x1c07b9,null))[_0x72a0('0x2a')](respondWithResult(_0x1c07b9,null))[_0x72a0('0x4a')](handleError(_0x1c07b9,null));};exports[_0x72a0('0x29')]=function(_0x2b3577,_0x237494){return db['VoicePrefix'][_0x72a0('0x4c')]({'where':{'id':_0x2b3577[_0x72a0('0x4b')]['id']}})[_0x72a0('0x2a')](handleEntityNotFound(_0x237494,null))[_0x72a0('0x2a')](removeEntity(_0x237494,null))[_0x72a0('0x4a')](handleError(_0x237494,null));};exports['describe']=function(_0x143410,_0x595243){return db['VoicePrefix'][_0x72a0('0x4d')]()[_0x72a0('0x2a')](respondWithResult(_0x595243,null))[_0x72a0('0x4a')](handleError(_0x595243,null));};exports[_0x72a0('0x4e')]=function(_0x3994ed,_0x50c8d7){var _0xc0f323;return db[_0x72a0('0x4f')]['transaction'](function(_0x48688a){return db[_0x72a0('0x31')][_0x72a0('0x4e')](_0x3994ed[_0x72a0('0x50')],{'transaction':_0x48688a})[_0x72a0('0x2a')](function(_0x18b4b3){_0xc0f323=_0x18b4b3[_0x72a0('0x51')]({'plain':!![]});return db[_0x72a0('0x52')][_0x72a0('0x4c')]({'where':{'id':_0xc0f323['VoiceExtensionId']},'raw':!![]})[_0x72a0('0x2a')](function(_0x555b14){return createVoicePrefixExtensions(_0xc0f323,_0x555b14,_0x48688a);});});})['then'](function(){return _0xc0f323;})['then'](respondWithResult(_0x50c8d7,null))[_0x72a0('0x4a')](handleError(_0x50c8d7,null));};function Extension(_0x16edb7,_0x583434,_0x2e3239,_0x536966){this[_0x72a0('0x53')]='from-sip';this['exten']=_0x16edb7;this[_0x72a0('0x54')]=_0x2e3239;this[_0x72a0('0x55')]='system';this[_0x72a0('0x56')]='Voice\x20Prefix\x20Extension';this[_0x72a0('0x57')]=_0x583434;this['appdata']=_0x536966;}function createVoicePrefixExtensions(_0x48df1d,_0x312b5e,_0x2dbbb4){return new BPromise(function(_0x137eb5,_0x541ce8){var _0x54ab0f=new Extension(formatPrefixName(_0x48df1d[_0x72a0('0x58')]),0x1,'NoOp',_0x72a0('0x59'));_0x54ab0f[_0x72a0('0x5a')]=_0x48df1d['id'];return db[_0x72a0('0x52')][_0x72a0('0x4e')](_0x54ab0f,{'transaction':_0x2dbbb4})[_0x72a0('0x2a')](function(_0x2628dd){var _0x41f7f6=_0x2628dd[_0x72a0('0x51')]({'plain':!![]});var _0x106343=_[_0x72a0('0x5b')](addVoicePrefixExtensions(_0x48df1d,_0x312b5e),function(_0x32a0bb){_0x32a0bb[_0x72a0('0x5c')]=_0x41f7f6['id'];_0x32a0bb['VoicePrefixId']=_0x48df1d['id'];return _0x32a0bb;});return db[_0x72a0('0x52')]['bulkCreate'](_0x106343,{'transaction':_0x2dbbb4})['then'](function(_0x55ba28){if(!_0x55ba28){return _0x541ce8('Extensions\x20creation\x20failed');}else{return _0x137eb5(_0x55ba28);}})[_0x72a0('0x4a')](function(_0x4e5d05){return _0x541ce8(_0x4e5d05);});});;});};function addVoicePrefixExtensions(_0xc805a7,_0x4a2f94){var _0x27398d=[];var _0x484700=formatPrefixName(_0xc805a7[_0x72a0('0x58')]);_0x27398d[_0x72a0('0x5d')](new Extension(_0x484700,0x2,'Set',_0x72a0('0x5e')+_0xc805a7[_0x72a0('0x2e')]));if(_0xc805a7[_0x72a0('0x5f')]){_0x27398d[_0x72a0('0x5d')](new Extension(_0x484700,0x3,'Set',_0x72a0('0x60')+_0xc805a7['callerIdAll']));}else{_0x27398d[_0x72a0('0x5d')](new Extension(_0x484700,0x3,_0x72a0('0x61'),_0x72a0('0x62')));}_0x27398d['push'](new Extension(_0x484700,0x4,_0x72a0('0x63'),_0x4a2f94[_0x72a0('0x53')]+','+_0x72a0('0x64')+(0x8+_0xc805a7[_0x72a0('0x2e')][_0x72a0('0x3b')])+'}'+','+0x1));return _0x27398d;}function formatPrefixName(_0x599e4c){var _0x5707e9='_';for(var _0xa65d14=0x0;_0xa65d14<_0x599e4c['length'];_0xa65d14++){if(_0x599e4c[_0x72a0('0x65')](_0xa65d14)=='-'){_0x5707e9+=_0x599e4c['charAt'](_0xa65d14);}else{_0x5707e9+='['+_0x599e4c[_0x72a0('0x65')](_0xa65d14)+']';}}_0x5707e9+='.';return _0x5707e9;}exports[_0x72a0('0x28')]=function(_0x5ef439,_0x1cfd1d,_0x1b960e){var _0x83ebf6=_0x5ef439['body'];_0x83ebf6[_0x72a0('0x58')]='system-'+_0x83ebf6[_0x72a0('0x2e')]+'-';return db[_0x72a0('0x4f')]['transaction'](function(_0x2f6ce7){return db['VoicePrefix']['update'](_0x83ebf6,{'where':{'id':_0x83ebf6['id']},'transaction':_0x2f6ce7})['then'](function(){return db[_0x72a0('0x52')]['destroy']({'where':{'VoicePrefixId':_0x83ebf6['id']},'transaction':_0x2f6ce7})[_0x72a0('0x2a')](function(){return db['VoiceExtension'][_0x72a0('0x4c')]({'where':{'id':_0x83ebf6[_0x72a0('0x5c')]},'raw':!![]})[_0x72a0('0x2a')](function(_0x5b81d7){return createVoicePrefixExtensions(_0x83ebf6,_0x5b81d7,_0x2f6ce7);});});});})[_0x72a0('0x2a')](function(){return db[_0x72a0('0x31')][_0x72a0('0x66')](_0x83ebf6['id']);})[_0x72a0('0x2a')](respondWithResult(_0x1cfd1d,null))[_0x72a0('0x4a')](handleError(_0x1cfd1d,null));};exports['addAgents']=function(_0x54e925,_0x2d431d,_0x19c116){return db[_0x72a0('0x31')]['find']({'where':{'id':_0x54e925[_0x72a0('0x4b')]['id']}})[_0x72a0('0x2a')](handleEntityNotFound(_0x2d431d,null))['then'](function(_0xd041ec){if(_0xd041ec){return _0xd041ec['addAgents'](_0x54e925[_0x72a0('0x50')][_0x72a0('0x67')],_[_0x72a0('0x68')](_0x54e925[_0x72a0('0x50')],[_0x72a0('0x67'),'id'])||{})[_0x72a0('0x69')](function(_0x7450c7){for(var _0x5e3e81=0x0;_0x5e3e81<_0x54e925['body']['ids'][_0x72a0('0x3b')];_0x5e3e81+=0x1){socket[_0x72a0('0x6a')](_0x72a0('0x6b'),{'UserId':_0x54e925[_0x72a0('0x50')][_0x72a0('0x67')][_0x5e3e81],'VoicePrefixId':_0x54e925[_0x72a0('0x4b')]['id']});}return _0x7450c7;});}})['then'](respondWithResult(_0x2d431d,null))[_0x72a0('0x4a')](handleError(_0x2d431d,null));};exports[_0x72a0('0x6c')]=function(_0xe05bda,_0x37990e,_0x31db83){var _0x238400;return db[_0x72a0('0x31')]['find']({'where':{'id':_0xe05bda[_0x72a0('0x4b')]['id']}})[_0x72a0('0x2a')](handleEntityNotFound(_0x37990e,null))[_0x72a0('0x2a')](function(_0x116493){if(_0x116493){return _0x116493[_0x72a0('0x6c')](_0xe05bda[_0x72a0('0x34')]['ids'])[_0x72a0('0x2a')](function(_0x47e13c){if(_[_0x72a0('0x6d')](_0xe05bda[_0x72a0('0x34')][_0x72a0('0x67')])){for(var _0x3d5edb=0x0;_0x3d5edb<_0xe05bda[_0x72a0('0x34')]['ids'][_0x72a0('0x3b')];_0x3d5edb+=0x1){socket[_0x72a0('0x6a')]('userVoicePrefix:remove',{'UserId':_0xe05bda[_0x72a0('0x34')][_0x72a0('0x67')][_0x3d5edb],'VoicePrefixId':_0xe05bda[_0x72a0('0x4b')]['id']});}}else{socket[_0x72a0('0x6a')]('userVoicePrefix:remove',{'UserId':_0xe05bda[_0x72a0('0x34')][_0x72a0('0x67')],'VoicePrefixId':_0xe05bda[_0x72a0('0x4b')]['id']});}});}})[_0x72a0('0x2a')](respondWithStatusCode(_0x37990e,null))[_0x72a0('0x4a')](handleError(_0x37990e,null));};exports[_0x72a0('0x6e')]=function(_0x3c27fb,_0x1d2dfb,_0xd771f1){var _0x3d02e6={};var _0x2fd7e2={};var _0x109e9e;var _0x4baa72;return db[_0x72a0('0x31')][_0x72a0('0x6f')]({'where':{'id':_0x3c27fb[_0x72a0('0x4b')]['id']}})[_0x72a0('0x2a')](handleEntityNotFound(_0x1d2dfb,null))[_0x72a0('0x2a')](function(_0x3a0bd6){if(_0x3a0bd6){_0x109e9e=_0x3a0bd6;_0x2fd7e2[_0x72a0('0x32')]=_[_0x72a0('0x33')](db['User'][_0x72a0('0x70')]);_0x2fd7e2['query']=_['keys'](_0x3c27fb[_0x72a0('0x34')]);_0x2fd7e2['filters']=_['intersection'](_0x2fd7e2[_0x72a0('0x32')],_0x2fd7e2['query']);_0x3d02e6[_0x72a0('0x39')]=_[_0x72a0('0x38')](_0x2fd7e2[_0x72a0('0x32')],qs['fields'](_0x3c27fb[_0x72a0('0x34')][_0x72a0('0x3a')]));_0x3d02e6[_0x72a0('0x39')]=_0x3d02e6[_0x72a0('0x39')][_0x72a0('0x3b')]?_0x3d02e6['attributes']:_0x2fd7e2[_0x72a0('0x32')];_0x3d02e6[_0x72a0('0x3e')]=qs[_0x72a0('0x3f')](_0x3c27fb['query'][_0x72a0('0x3f')]);_0x3d02e6[_0x72a0('0x40')]=qs[_0x72a0('0x37')](_['pick'](_0x3c27fb[_0x72a0('0x34')],_0x2fd7e2[_0x72a0('0x37')]));if(_0x3c27fb[_0x72a0('0x34')][_0x72a0('0x44')]){_0x3d02e6[_0x72a0('0x40')]=_[_0x72a0('0x45')](_0x3d02e6[_0x72a0('0x40')],{'$or':_[_0x72a0('0x5b')](_0x3d02e6[_0x72a0('0x39')],function(_0x5ca360){var _0x874ada={};_0x874ada[_0x5ca360]={'$like':'%'+_0x3c27fb[_0x72a0('0x34')][_0x72a0('0x44')]+'%'};return _0x874ada;})});}_0x3d02e6=_[_0x72a0('0x45')]({},_0x3d02e6,_0x3c27fb[_0x72a0('0x46')]);return _0x109e9e['getAgents'](_0x3d02e6);}})[_0x72a0('0x2a')](function(_0x2c72fd){if(_0x2c72fd){_0x4baa72=_0x2c72fd[_0x72a0('0x3b')];if(!_0x3c27fb[_0x72a0('0x34')]['hasOwnProperty'](_0x72a0('0x3d'))){_0x3d02e6[_0x72a0('0x23')]=qs[_0x72a0('0x23')](_0x3c27fb['query']['limit']);_0x3d02e6[_0x72a0('0x22')]=qs[_0x72a0('0x22')](_0x3c27fb[_0x72a0('0x34')][_0x72a0('0x22')]);}return _0x109e9e[_0x72a0('0x6e')](_0x3d02e6);}})['then'](function(_0x5f515f){if(_0x5f515f){return _0x5f515f?{'count':_0x4baa72,'rows':_0x5f515f}:null;}})['then'](respondWithResult(_0x1d2dfb,null))[_0x72a0('0x4a')](handleError(_0x1d2dfb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4bc3=['emit','hook','events','../../mysqldb','setMaxListeners','save','remove'];(function(_0x5c667b,_0x3f0681){var _0x51bd15=function(_0x25480e){while(--_0x25480e){_0x5c667b['push'](_0x5c667b['shift']());}};_0x51bd15(++_0x3f0681);}(_0x4bc3,0x16e));var _0x34bc=function(_0x15c421,_0x6366f7){_0x15c421=_0x15c421-0x0;var _0x5e5ed5=_0x4bc3[_0x15c421];return _0x5e5ed5;};'use strict';var EventEmitter=require(_0x34bc('0x0'));var VoicePrefix=require(_0x34bc('0x1'))['db']['VoicePrefix'];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0x34bc('0x2')](0x0);var events={'afterCreate':_0x34bc('0x3'),'afterUpdate':'update','afterDestroy':_0x34bc('0x4')};function emitEvent(_0x616014){return function(_0x3ce1c3,_0x2e043e,_0x232f40){VoicePrefixEvents[_0x34bc('0x5')](_0x616014+':'+_0x3ce1c3['id'],_0x3ce1c3);VoicePrefixEvents[_0x34bc('0x5')](_0x616014,_0x3ce1c3);_0x232f40(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoicePrefix[_0x34bc('0x6')](e,emitEvent(event));}}module['exports']=VoicePrefixEvents;
\ No newline at end of file
+var _0xfd28=['VoicePrefix','save','remove','emit','hasOwnProperty','hook','../../mysqldb'];(function(_0x2173b2,_0x4cb78b){var _0x2d11df=function(_0x5a3cd1){while(--_0x5a3cd1){_0x2173b2['push'](_0x2173b2['shift']());}};_0x2d11df(++_0x4cb78b);}(_0xfd28,0x148));var _0x8fd2=function(_0x27beea,_0x3bc9f4){_0x27beea=_0x27beea-0x0;var _0x122645=_0xfd28[_0x27beea];return _0x122645;};'use strict';var EventEmitter=require('events');var VoicePrefix=require(_0x8fd2('0x0'))['db'][_0x8fd2('0x1')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x8fd2('0x2'),'afterUpdate':'update','afterDestroy':_0x8fd2('0x3')};function emitEvent(_0xf7417d){return function(_0x4e2108,_0x4b22ae,_0x155f46){VoicePrefixEvents[_0x8fd2('0x4')](_0xf7417d+':'+_0x4e2108['id'],_0x4e2108);VoicePrefixEvents[_0x8fd2('0x4')](_0xf7417d,_0x4e2108);_0x155f46(null);};}for(var e in events){if(events[_0x8fd2('0x5')](e)){var event=events[e];VoicePrefix[_0x8fd2('0x6')](e,emitEvent(event));}}module['exports']=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d86=['VoicePrefix','api','bluebird','request-promise','exports'];(function(_0x4ed1a2,_0x7b259e){var _0x5727f4=function(_0x5f3053){while(--_0x5f3053){_0x4ed1a2['push'](_0x4ed1a2['shift']());}};_0x5727f4(++_0x7b259e);}(_0x1d86,0x7e));var _0x61d8=function(_0x4539db,_0x58ba05){_0x4539db=_0x4539db-0x0;var _0x8f6cba=_0x1d86[_0x4539db];return _0x8f6cba;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x61d8('0x0'));var moment=require('moment');var BPromise=require(_0x61d8('0x1'));var rp=require(_0x61d8('0x2'));var attributes=require('./voicePrefix.attributes');module[_0x61d8('0x3')]=function(_0x1d170a,_0x2e4ab8){return _0x1d170a['define'](_0x61d8('0x4'),attributes,{'tableName':'voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2123=['./voicePrefix.attributes','exports','define','voice_prefixes','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x84a189,_0x323ae4){var _0x476af8=function(_0x52e014){while(--_0x52e014){_0x84a189['push'](_0x84a189['shift']());}};_0x476af8(++_0x323ae4);}(_0x2123,0x190));var _0x3212=function(_0x19f07f,_0x550e3f){_0x19f07f=_0x19f07f-0x0;var _0x17ebe5=_0x2123[_0x19f07f];return _0x17ebe5;};'use strict';var _=require(_0x3212('0x0'));var util=require(_0x3212('0x1'));var logger=require(_0x3212('0x2'))(_0x3212('0x3'));var moment=require(_0x3212('0x4'));var BPromise=require(_0x3212('0x5'));var rp=require(_0x3212('0x6'));var attributes=require(_0x3212('0x7'));module[_0x3212('0x8')]=function(_0x6ca653,_0x37058e){return _0x6ca653[_0x3212('0x9')]('VoicePrefix',attributes,{'tableName':_0x3212('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3fb=['request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','stringify','error','code','VoicePrefix,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','defaults','localhost','socket.io-emitter','redis','register','request','info'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0xd3fb,0x117));var _0xbd3f=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd3fb[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0xbd3f('0x0'));var util=require(_0xbd3f('0x1'));var moment=require(_0xbd3f('0x2'));var BPromise=require(_0xbd3f('0x3'));var rs=require(_0xbd3f('0x4'));var fs=require('fs');var db=require(_0xbd3f('0x5'))['db'];var utils=require(_0xbd3f('0x6'));var logger=require(_0xbd3f('0x7'))('rpc');var config=require(_0xbd3f('0x8'));var jayson=require(_0xbd3f('0x9'));var client=jayson['client'][_0xbd3f('0xa')]({'port':0x232a});config['redis']=_[_0xbd3f('0xb')](config['redis'],{'host':_0xbd3f('0xc'),'port':0x18eb});var socket=require(_0xbd3f('0xd'))(config[_0xbd3f('0xe')]);require('./voicePrefix.socket')[_0xbd3f('0xf')](socket);function respondWithRpcPromise(_0x1c77ef,_0x5f55db,_0x3d7266){return new BPromise(function(_0x3a5a8,_0x2ebdd8){return client[_0xbd3f('0x10')](_0x1c77ef,_0x3d7266)['then'](function(_0x1cd6fa){logger[_0xbd3f('0x11')]('VoicePrefix,\x20%s,\x20%s',_0x5f55db,_0xbd3f('0x12'));logger[_0xbd3f('0x13')](_0xbd3f('0x14'),_0x5f55db,_0xbd3f('0x12'),JSON[_0xbd3f('0x15')](_0x1cd6fa));if(_0x1cd6fa[_0xbd3f('0x16')]){if(_0x1cd6fa['error'][_0xbd3f('0x17')]===0x1f4){logger['error'](_0xbd3f('0x18'),_0x5f55db,_0x1cd6fa[_0xbd3f('0x16')]['message']);return _0x2ebdd8(_0x1cd6fa['error'][_0xbd3f('0x19')]);}logger[_0xbd3f('0x16')](_0xbd3f('0x18'),_0x5f55db,_0x1cd6fa[_0xbd3f('0x16')][_0xbd3f('0x19')]);return _0x3a5a8(_0x1cd6fa[_0xbd3f('0x16')][_0xbd3f('0x19')]);}else{logger[_0xbd3f('0x11')](_0xbd3f('0x18'),_0x5f55db,_0xbd3f('0x12'));_0x3a5a8(_0x1cd6fa['result']['message']);}})[_0xbd3f('0x1a')](function(_0x24502e){logger[_0xbd3f('0x16')](_0xbd3f('0x18'),_0x5f55db,_0x24502e);_0x2ebdd8(_0x24502e);});});}
\ No newline at end of file
+var _0x3f8d=['localhost','socket.io-emitter','./voicePrefix.socket','register','request','then','VoicePrefix,\x20%s,\x20%s','request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults'];(function(_0x26293d,_0x87e1de){var _0x528448=function(_0x4810dd){while(--_0x4810dd){_0x26293d['push'](_0x26293d['shift']());}};_0x528448(++_0x87e1de);}(_0x3f8d,0xa6));var _0xd3f8=function(_0x3d4ef1,_0x5a957c){_0x3d4ef1=_0x3d4ef1-0x0;var _0x409423=_0x3f8d[_0x3d4ef1];return _0x409423;};'use strict';var _=require(_0xd3f8('0x0'));var util=require(_0xd3f8('0x1'));var moment=require(_0xd3f8('0x2'));var BPromise=require(_0xd3f8('0x3'));var rs=require(_0xd3f8('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd3f8('0x5'))['db'];var utils=require(_0xd3f8('0x6'));var logger=require(_0xd3f8('0x7'))(_0xd3f8('0x8'));var config=require(_0xd3f8('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xd3f8('0xa')][_0xd3f8('0xb')]({'port':0x232a});config[_0xd3f8('0xc')]=_[_0xd3f8('0xd')](config[_0xd3f8('0xc')],{'host':_0xd3f8('0xe'),'port':0x18eb});var socket=require(_0xd3f8('0xf'))(new Redis(config[_0xd3f8('0xc')]));require(_0xd3f8('0x10'))[_0xd3f8('0x11')](socket);function respondWithRpcPromise(_0x322e36,_0x1eccfd,_0x311344){return new BPromise(function(_0x163e1a,_0x7250a9){return client[_0xd3f8('0x12')](_0x322e36,_0x311344)[_0xd3f8('0x13')](function(_0x4f264f){logger['info'](_0xd3f8('0x14'),_0x1eccfd,_0xd3f8('0x15'));logger[_0xd3f8('0x16')](_0xd3f8('0x17'),_0x1eccfd,'request\x20sent',JSON[_0xd3f8('0x18')](_0x4f264f));if(_0x4f264f[_0xd3f8('0x19')]){if(_0x4f264f[_0xd3f8('0x19')][_0xd3f8('0x1a')]===0x1f4){logger[_0xd3f8('0x19')](_0xd3f8('0x14'),_0x1eccfd,_0x4f264f[_0xd3f8('0x19')][_0xd3f8('0x1b')]);return _0x7250a9(_0x4f264f[_0xd3f8('0x19')][_0xd3f8('0x1b')]);}logger[_0xd3f8('0x19')](_0xd3f8('0x14'),_0x1eccfd,_0x4f264f[_0xd3f8('0x19')][_0xd3f8('0x1b')]);return _0x163e1a(_0x4f264f[_0xd3f8('0x19')][_0xd3f8('0x1b')]);}else{logger[_0xd3f8('0x1c')]('VoicePrefix,\x20%s,\x20%s',_0x1eccfd,'request\x20sent');_0x163e1a(_0x4f264f['result'][_0xd3f8('0x1b')]);}})[_0xd3f8('0x1d')](function(_0x5b5969){logger[_0xd3f8('0x19')]('VoicePrefix,\x20%s,\x20%s',_0x1eccfd,_0x5b5969);_0x7250a9(_0x5b5969);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b05=['length','voicePrefix:','save','update','register'];(function(_0x4d613c,_0x55f220){var _0x301fe3=function(_0x5eec0b){while(--_0x5eec0b){_0x4d613c['push'](_0x4d613c['shift']());}};_0x301fe3(++_0x55f220);}(_0x9b05,0x1ba));var _0x59b0=function(_0x14d4d5,_0x3c298e){_0x14d4d5=_0x14d4d5-0x0;var _0x516cf5=_0x9b05[_0x14d4d5];return _0x516cf5;};'use strict';var VoicePrefixEvents=require('./voicePrefix.events');var events=[_0x59b0('0x0'),'remove',_0x59b0('0x1')];function createListener(_0x24df71,_0x6932cd){return function(_0x4c14d6){_0x6932cd['emit'](_0x24df71,_0x4c14d6);};}function removeListener(_0x33cf49,_0x5d78e7){return function(){VoicePrefixEvents['removeListener'](_0x33cf49,_0x5d78e7);};}exports[_0x59b0('0x2')]=function(_0x23fab5){for(var _0x5899c7=0x0,_0x4e6c87=events[_0x59b0('0x3')];_0x5899c7<_0x4e6c87;_0x5899c7++){var _0x5addba=events[_0x5899c7];var _0x41a821=createListener(_0x59b0('0x4')+_0x5addba,_0x23fab5);VoicePrefixEvents['on'](_0x5addba,_0x41a821);}};
\ No newline at end of file
+var _0x3a60=['save','update','emit','removeListener','register','length','voicePrefix:','./voicePrefix.events'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3a60,0xaf));var _0x03a6=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x3a60[_0x14add3];return _0x4a174f;};'use strict';var VoicePrefixEvents=require(_0x03a6('0x0'));var events=[_0x03a6('0x1'),'remove',_0x03a6('0x2')];function createListener(_0x5653b0,_0x5123ea){return function(_0x29f84e){_0x5123ea[_0x03a6('0x3')](_0x5653b0,_0x29f84e);};}function removeListener(_0x345608,_0x2236fc){return function(){VoicePrefixEvents[_0x03a6('0x4')](_0x345608,_0x2236fc);};}exports[_0x03a6('0x5')]=function(_0x706463){for(var _0x580a34=0x0,_0x301927=events[_0x03a6('0x6')];_0x580a34<_0x301927;_0x580a34++){var _0x36585a=events[_0x580a34];var _0x15c278=createListener(_0x03a6('0x7')+_0x36585a,_0x706463);VoicePrefixEvents['on'](_0x36585a,_0x15c278);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['/:id','show','/:id/hoppers','getHoppers','/:id/hopper_histories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/teams','getTeams','getAgents','/:id/members','getMembers','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','clone','addTeams','/:id/users','addBlackLists','put','update','delete','destroy','removeTeams','removeAgents','removeLists','removeBlackLists','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','isAuthenticated'];(function(_0x5b32ee,_0x1f10b6){var _0x525702=function(_0x53ab78){while(--_0x53ab78){_0x5b32ee['push'](_0x5b32ee['shift']());}};_0x525702(++_0x1f10b6);}(_0xb10b,0x12a));var _0xbb10=function(_0x1caf4f,_0xd0b32d){_0x1caf4f=_0x1caf4f-0x0;var _0x11b9e2=_0xb10b[_0x1caf4f];return _0x11b9e2;};'use strict';var multer=require(_0xbb10('0x0'));var util=require('util');var path=require(_0xbb10('0x1'));var timeout=require(_0xbb10('0x2'));var express=require(_0xbb10('0x3'));var router=express['Router']();var auth=require(_0xbb10('0x4'));var interaction=require(_0xbb10('0x5'));var config=require(_0xbb10('0x6'));var controller=require(_0xbb10('0x7'));router[_0xbb10('0x8')]('/',auth[_0xbb10('0x9')](),controller['index']);router[_0xbb10('0x8')](_0xbb10('0xa'),auth['isAuthenticated'](),controller[_0xbb10('0xb')]);router[_0xbb10('0x8')](_0xbb10('0xc'),auth[_0xbb10('0x9')](),controller[_0xbb10('0xd')]);router[_0xbb10('0x8')](_0xbb10('0xe'),auth[_0xbb10('0x9')](),controller['getHopperHistories']);router['get'](_0xbb10('0xf'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x10')]);router['get'](_0xbb10('0x11'),auth['isAuthenticated'](),controller[_0xbb10('0x12')]);router[_0xbb10('0x8')](_0xbb10('0x13'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x14')]);router[_0xbb10('0x8')]('/:id/users',auth[_0xbb10('0x9')](),controller[_0xbb10('0x15')]);router[_0xbb10('0x8')](_0xbb10('0x16'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x17')]);router[_0xbb10('0x8')](_0xbb10('0x18'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x19')]);router['get'](_0xbb10('0x1a'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x1b')]);router[_0xbb10('0x1c')]('/',auth[_0xbb10('0x9')](),controller[_0xbb10('0x1d')]);router[_0xbb10('0x1c')](_0xbb10('0x1e'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x1f')]);router['post'](_0xbb10('0x13'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x20')]);router[_0xbb10('0x1c')](_0xbb10('0x21'),auth[_0xbb10('0x9')](),controller['addAgents']);router[_0xbb10('0x1c')](_0xbb10('0x18'),auth['isAuthenticated'](),controller['addLists']);router[_0xbb10('0x1c')](_0xbb10('0x1a'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x22')]);router[_0xbb10('0x23')](_0xbb10('0xa'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x24')]);router[_0xbb10('0x25')](_0xbb10('0xa'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x26')]);router['delete']('/:id/teams',auth['isAuthenticated'](),controller[_0xbb10('0x27')]);router[_0xbb10('0x25')](_0xbb10('0x21'),auth['isAuthenticated'](),controller[_0xbb10('0x28')]);router[_0xbb10('0x25')](_0xbb10('0x18'),auth[_0xbb10('0x9')](),controller[_0xbb10('0x29')]);router[_0xbb10('0x25')](_0xbb10('0x1a'),auth['isAuthenticated'](),controller[_0xbb10('0x2a')]);module[_0xbb10('0x2b')]=router;
\ No newline at end of file
+var _0xa9e0=['removeTeams','removeBlackLists','exports','multer','util','path','Router','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','isAuthenticated','/:id','/:id/hoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperBlacks','/:id/teams','getTeams','/:id/users','getAgents','/:id/members','/:id/blacklists','getBlackLists','create','post','/:id/clone','clone','addTeams','addAgents','addBlackLists','put','update','delete','destroy'];(function(_0x2b69b2,_0x47a747){var _0x5333bb=function(_0x3250dd){while(--_0x3250dd){_0x2b69b2['push'](_0x2b69b2['shift']());}};_0x5333bb(++_0x47a747);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3899d1,_0x4aa04c){_0x3899d1=_0x3899d1-0x0;var _0xeb4a7d=_0xa9e0[_0x3899d1];return _0xeb4a7d;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var auth=require('../../components/auth/service');var interaction=require(_0x0a9e('0x4'));var config=require(_0x0a9e('0x5'));var controller=require(_0x0a9e('0x6'));router[_0x0a9e('0x7')]('/',auth[_0x0a9e('0x8')](),controller['index']);router[_0x0a9e('0x7')](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller['show']);router['get'](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['getHoppers']);router[_0x0a9e('0x7')](_0x0a9e('0xb'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0xc')]);router[_0x0a9e('0x7')](_0x0a9e('0xd'),auth['isAuthenticated'](),controller['getHopperFinals']);router['get']('/:id/hopper_black',auth[_0x0a9e('0x8')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x7')](_0x0a9e('0xf'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x10')]);router['get'](_0x0a9e('0x11'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x7')](_0x0a9e('0x13'),auth[_0x0a9e('0x8')](),controller['getMembers']);router[_0x0a9e('0x7')]('/:id/lists',auth[_0x0a9e('0x8')](),controller['getLists']);router[_0x0a9e('0x7')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x16')]);router[_0x0a9e('0x17')](_0x0a9e('0x18'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x17')](_0x0a9e('0xf'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x17')](_0x0a9e('0x11'),auth['isAuthenticated'](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x17')]('/:id/lists',auth[_0x0a9e('0x8')](),controller['addLists']);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x1c')]);router[_0x0a9e('0x1d')]('/:id',auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x1e')]);router[_0x0a9e('0x1f')](_0x0a9e('0x9'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x1f')]('/:id/teams',auth['isAuthenticated'](),controller[_0x0a9e('0x21')]);router[_0x0a9e('0x1f')](_0x0a9e('0x11'),auth[_0x0a9e('0x8')](),controller['removeAgents']);router[_0x0a9e('0x1f')]('/:id/lists',auth[_0x0a9e('0x8')](),controller['removeLists']);router[_0x0a9e('0x1f')](_0x0a9e('0x14'),auth[_0x0a9e('0x8')](),controller[_0x0a9e('0x22')]);module[_0x0a9e('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['booked','roundrobin','progressive','predictive','power','INTEGER','yes','all','once','TEXT','join','periodic_announce','split','joinempty','leavewhenempty','BOOLEAN','acw','wrapuptime','Active/Disactive\x20Campaign','Dial\x20Method.','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','onlyIfOpen','#AMD\x20Initial\x20Silence','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','#RecallMe\x20Timeout\x20(min:1)','Active/Disactive\x20Recall\x20In\x20Queue','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','sequelize','exports','STRING','ENUM','inbound','default','leastrecent','random','rrmemory','wrandom','setDataValue','strategy','getDataValue','dialMethod'];(function(_0x34cab6,_0x23724e){var _0x29874c=function(_0x24f299){while(--_0x24f299){_0x34cab6['push'](_0x34cab6['shift']());}};_0x29874c(++_0x23724e);}(_0x7a54,0x106));var _0x47a5=function(_0x50bad1,_0x1317a1){_0x50bad1=_0x50bad1-0x0;var _0x57ee22=_0x7a54[_0x50bad1];return _0x57ee22;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'name':{'type':Sequelize[_0x47a5('0x2')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x4'),'outbound'),'allowNull':![],'defaultValue':_0x47a5('0x4')},'musiconhold':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':_0x47a5('0x5')},'announce':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':''},'strategy':{'type':Sequelize[_0x47a5('0x3')]('rr','ringall',_0x47a5('0x6'),'fewestcalls',_0x47a5('0x7'),_0x47a5('0x8'),'linear',_0x47a5('0x9'),'rrordered'),'allowNull':![],'defaultValue':'ringall','set':function(_0x582352){this[_0x47a5('0xa')](_0x47a5('0xb'),_0x582352?_0x582352:'rrmemory');},'get':function(){var _0x2eb0dd=this['getDataValue']('type');var _0x1f47f4=this[_0x47a5('0xc')](_0x47a5('0xd'));var _0x250fad=this[_0x47a5('0xc')](_0x47a5('0xb'));if(_0x2eb0dd===_0x47a5('0x4')){return _0x250fad;}if(_0x1f47f4==='booked'&&_0x250fad===_0x47a5('0x8')||_0x1f47f4===_0x47a5('0xe')&&_0x250fad===_0x47a5('0xf')){return _0x250fad;}if(_0x1f47f4===_0x47a5('0x10')||_0x1f47f4===_0x47a5('0x11')||_0x1f47f4===_0x47a5('0x12')){return _0x250fad;}return null;}},'servicelevel':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize['INTEGER'](0xb)},'timeout':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0x47a5('0x2')]},'weight':{'type':Sequelize[_0x47a5('0x13')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0x47a5('0x14')},'autopause':{'type':Sequelize['ENUM']('yes','no',_0x47a5('0x15')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x47a5('0x13')](0xb)},'autopausebusy':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x14'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x14'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x14'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize['ENUM'](_0x47a5('0x14'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x47a5('0x3')]('yes','no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x14'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0x47a5('0x2')],'allowNull':!![]},'membergosub':{'type':Sequelize['STRING'],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x47a5('0x3')]('yes','no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x14'),'no'),'defaultValue':'yes'},'announce_holdtime':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x14'),'no',_0x47a5('0x16')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0x47a5('0x3')]('yes','no')},'announce_position_limit':{'type':Sequelize['INTEGER'](0xb)},'announce_round_seconds':{'type':Sequelize[_0x47a5('0x3')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize['STRING'],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x47a5('0x2')]},'queue_youarenext':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x47a5('0x2')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x47a5('0x2')]},'queue_quantity1':{'type':Sequelize[_0x47a5('0x2')]},'queue_quantity2':{'type':Sequelize[_0x47a5('0x2')]},'queue_periodic_announce':{'type':Sequelize[_0x47a5('0x2')]},'queue_less_than':{'type':Sequelize[_0x47a5('0x2')]},'periodic_announce':{'type':Sequelize[_0x47a5('0x17')],'set':function(_0x528582){this[_0x47a5('0xa')]('periodic_announce',_0x528582?_0x528582[_0x47a5('0x18')](','):[]);},'get':function(){return this[_0x47a5('0xc')](_0x47a5('0x19'))?this['getDataValue'](_0x47a5('0x19'))[_0x47a5('0x1a')](','):[];}},'joinempty':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':_0x47a5('0x14'),'set':function(_0x51cc81){this['setDataValue'](_0x47a5('0x1b'),_0x51cc81?_0x51cc81[_0x47a5('0x18')](','):[]);},'get':function(){return this['getDataValue']('joinempty')?this[_0x47a5('0xc')](_0x47a5('0x1b'))['split'](','):[];}},'leavewhenempty':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':'no','set':function(_0x53119b){this[_0x47a5('0xa')](_0x47a5('0x1c'),_0x53119b?_0x53119b['join'](','):[]);},'get':function(){return this['getDataValue'](_0x47a5('0x1c'))?this['getDataValue'](_0x47a5('0x1c'))[_0x47a5('0x1a')](','):[];}},'reportholdtime':{'type':Sequelize[_0x47a5('0x3')]('yes','no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x47a5('0x3')]('yes','no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x47a5('0x3')]('yes','no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x47a5('0x2')]},'description':{'type':Sequelize['STRING']},'acw':{'type':Sequelize[_0x47a5('0x1d')],'defaultValue':0x0,'set':function(_0x3534cb){this[_0x47a5('0xa')](_0x47a5('0x1e'),_0x3534cb);if(_0x3534cb){if(this[_0x47a5('0xc')](_0x47a5('0x1f'))<0x2){this[_0x47a5('0xa')](_0x47a5('0x1f'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0x47a5('0x13')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x47a5('0x20')},'dialMethod':{'type':Sequelize[_0x47a5('0x3')]('preview',_0x47a5('0x10'),_0x47a5('0x12'),_0x47a5('0x11'),'booked'),'defaultValue':_0x47a5('0x10'),'comment':_0x47a5('0x21')},'dialLimitChannel':{'type':Sequelize['INTEGER'](0x4)[_0x47a5('0x22')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x47a5('0x23')},'dialLimitQueue':{'type':Sequelize['INTEGER'](0x4)['UNSIGNED'],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.'},'dialPowerLevel':{'type':Sequelize[_0x47a5('0x24')](0x2)['UNSIGNED'],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x47a5('0x25')},'dialPredictiveOptimization':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x26'),_0x47a5('0x27')),'defaultValue':_0x47a5('0x27'),'comment':_0x47a5('0x28')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x47a5('0x24')](0x2)[_0x47a5('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x47a5('0x29')},'dialPredictiveInterval':{'type':Sequelize[_0x47a5('0x13')](0x3)[_0x47a5('0x22')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x47a5('0x2a')},'dialOriginateCallerIdName':{'type':Sequelize[_0x47a5('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize[_0x47a5('0x13')](0x3)[_0x47a5('0x22')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x47a5('0x2b')},'dialQueueOptions':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':'tTxX','comment':_0x47a5('0x2c')},'dialQueueTimeout':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize['STRING'],'comment':_0x47a5('0x2d')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x47a5('0x22')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x47a5('0x2e')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x47a5('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x47a5('0x2f')},'dialBusyMaxRetry':{'type':Sequelize[_0x47a5('0x13')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize[_0x47a5('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x47a5('0x30')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x47a5('0x13')](0x3)[_0x47a5('0x22')],'defaultValue':0x3,'comment':_0x47a5('0x31')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x47a5('0x13')](0x5)[_0x47a5('0x22')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x47a5('0x32')},'dialGlobalMaxRetry':{'type':Sequelize[_0x47a5('0x13')](0x3)[_0x47a5('0x22')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x47a5('0x33')},'dialTimezone':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':_0x47a5('0x34')},'dialPrefix':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x35'),'never',_0x47a5('0x36')),'defaultValue':_0x47a5('0x35')},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0x47a5('0x13')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x47a5('0x37')},'dialAMDGreeting':{'type':Sequelize[_0x47a5('0x13')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x47a5('0x13')](0x9)['UNSIGNED'],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x47a5('0x38')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x47a5('0x13')](0x9)[_0x47a5('0x22')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x47a5('0x39')},'dialAMDMinWordLength':{'type':Sequelize[_0x47a5('0x13')](0x9)[_0x47a5('0x22')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x47a5('0x3a')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x47a5('0x3b')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x47a5('0x13')](0x9)[_0x47a5('0x22')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x47a5('0x3c')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x47a5('0x13')](0x5)[_0x47a5('0x22')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x47a5('0x3d')},'dialAMDMaximumWordLength':{'type':Sequelize['INTEGER'](0x9)[_0x47a5('0x22')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x47a5('0x3e')},'dialRecallMeTimeout':{'type':Sequelize[_0x47a5('0x13')](0x5)['UNSIGNED'],'validate':{'min':0x1},'defaultValue':0x1e,'comment':_0x47a5('0x3f')},'dialRecallInQueue':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x47a5('0x40')},'dialOrderByScheduledAt':{'type':Sequelize[_0x47a5('0x3')](_0x47a5('0x41'),_0x47a5('0x42')),'defaultValue':'DESC'},'dialQueueProject2':{'type':Sequelize[_0x47a5('0x2')],'comment':_0x47a5('0x2d')},'dialAgiAfterHangupClient':{'type':Sequelize[_0x47a5('0x1d')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x47a5('0x1d')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x47a5('0x13')](0x3)[_0x47a5('0x22')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x47a5('0x43')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0x47a5('0x22')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x47a5('0x44')}};
\ No newline at end of file
+var _0xb10b=['#RecallMe\x20Timeout\x20(min:1)','Active/Disactive\x20Recall\x20In\x20Queue','DESC','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','sequelize','STRING','name','ENUM','outbound','inbound','default','leastrecent','fewestcalls','rrmemory','linear','wrandom','rrordered','ringall','setDataValue','strategy','getDataValue','type','dialMethod','booked','progressive','predictive','power','INTEGER','yes','all','once','TEXT','periodic_announce','split','join','joinempty','leavewhenempty','acw','wrapuptime','BOOLEAN','Dial\x20Method.','Max\x209999\x20channels,\x200\x20means\x20unlimited.','UNSIGNED','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','FLOAT','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','never','onlyIfOpen','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length'];(function(_0x17e712,_0x5c3cd1){var _0x3f4e39=function(_0x372bdd){while(--_0x372bdd){_0x17e712['push'](_0x17e712['shift']());}};_0x3f4e39(++_0x5c3cd1);}(_0xb10b,0x12a));var _0xbb10=function(_0x544463,_0x214963){_0x544463=_0x544463-0x0;var _0x1add2a=_0xb10b[_0x544463];return _0x1add2a;};'use strict';var Sequelize=require(_0xbb10('0x0'));module['exports']={'name':{'type':Sequelize[_0xbb10('0x1')],'allowNull':![],'unique':_0xbb10('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xbb10('0x3')]('inbound',_0xbb10('0x4')),'allowNull':![],'defaultValue':_0xbb10('0x5')},'musiconhold':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':_0xbb10('0x6')},'announce':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':''},'strategy':{'type':Sequelize[_0xbb10('0x3')]('rr','ringall',_0xbb10('0x7'),_0xbb10('0x8'),'random',_0xbb10('0x9'),_0xbb10('0xa'),_0xbb10('0xb'),_0xbb10('0xc')),'allowNull':![],'defaultValue':_0xbb10('0xd'),'set':function(_0x1ce33e){this[_0xbb10('0xe')](_0xbb10('0xf'),_0x1ce33e?_0x1ce33e:'rrmemory');},'get':function(){var _0x4e47f8=this[_0xbb10('0x10')](_0xbb10('0x11'));var _0xce64f3=this['getDataValue'](_0xbb10('0x12'));var _0x5be7e0=this[_0xbb10('0x10')](_0xbb10('0xf'));if(_0x4e47f8===_0xbb10('0x5')){return _0x5be7e0;}if(_0xce64f3===_0xbb10('0x13')&&_0x5be7e0===_0xbb10('0x9')||_0xce64f3===_0xbb10('0x13')&&_0x5be7e0==='roundrobin'){return _0x5be7e0;}if(_0xce64f3===_0xbb10('0x14')||_0xce64f3===_0xbb10('0x15')||_0xce64f3===_0xbb10('0x16')){return _0x5be7e0;}return null;}},'servicelevel':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0xbb10('0x17')](0xb)},'timeout':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0xbb10('0x1')]},'weight':{'type':Sequelize[_0xbb10('0x17')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':_0xbb10('0x18')},'autopause':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no',_0xbb10('0x19')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0xbb10('0x17')](0xb)},'autopausebusy':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0xbb10('0x3')]('yes','no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0xbb10('0x3')]('yes','no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize['STRING'],'allowNull':!![]},'membergosub':{'type':Sequelize['STRING'],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':_0xbb10('0x18')},'announce_holdtime':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no',_0xbb10('0x1a')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize['ENUM']('yes','no')},'announce_position_limit':{'type':Sequelize['INTEGER'](0xb)},'announce_round_seconds':{'type':Sequelize[_0xbb10('0x3')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0xbb10('0x1')]},'queue_youarenext':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0xbb10('0x1')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'queue_reporthold':{'type':Sequelize['STRING']},'queue_quantity1':{'type':Sequelize[_0xbb10('0x1')]},'queue_quantity2':{'type':Sequelize[_0xbb10('0x1')]},'queue_periodic_announce':{'type':Sequelize[_0xbb10('0x1')]},'queue_less_than':{'type':Sequelize[_0xbb10('0x1')]},'periodic_announce':{'type':Sequelize[_0xbb10('0x1b')],'set':function(_0x2ff4c1){this['setDataValue'](_0xbb10('0x1c'),_0x2ff4c1?_0x2ff4c1['join'](','):[]);},'get':function(){return this[_0xbb10('0x10')]('periodic_announce')?this[_0xbb10('0x10')](_0xbb10('0x1c'))[_0xbb10('0x1d')](','):[];}},'joinempty':{'type':Sequelize['STRING'],'defaultValue':'yes','set':function(_0x4c3744){this[_0xbb10('0xe')]('joinempty',_0x4c3744?_0x4c3744[_0xbb10('0x1e')](','):[]);},'get':function(){return this[_0xbb10('0x10')](_0xbb10('0x1f'))?this[_0xbb10('0x10')](_0xbb10('0x1f'))[_0xbb10('0x1d')](','):[];}},'leavewhenempty':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':'no','set':function(_0x4975f5){this[_0xbb10('0xe')](_0xbb10('0x20'),_0x4975f5?_0x4975f5[_0xbb10('0x1e')](','):[]);},'get':function(){return this[_0xbb10('0x10')](_0xbb10('0x20'))?this[_0xbb10('0x10')](_0xbb10('0x20'))[_0xbb10('0x1d')](','):[];}},'reportholdtime':{'type':Sequelize[_0xbb10('0x3')]('yes','no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x18'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0xbb10('0x3')]('yes','no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0xbb10('0x1')]},'description':{'type':Sequelize['STRING']},'acw':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'set':function(_0x3eb3cc){this[_0xbb10('0xe')](_0xbb10('0x21'),_0x3eb3cc);if(_0x3eb3cc){if(this[_0xbb10('0x10')](_0xbb10('0x22'))<0x2){this[_0xbb10('0xe')]('wrapuptime',0x2);}}}},'acwTimeout':{'type':Sequelize[_0xbb10('0x17')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0xbb10('0x23')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'dialMethod':{'type':Sequelize['ENUM']('preview',_0xbb10('0x14'),_0xbb10('0x16'),_0xbb10('0x15'),'booked'),'defaultValue':_0xbb10('0x14'),'comment':_0xbb10('0x24')},'dialLimitChannel':{'type':Sequelize[_0xbb10('0x17')](0x4)['UNSIGNED'],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xbb10('0x25')},'dialLimitQueue':{'type':Sequelize[_0xbb10('0x17')](0x4)[_0xbb10('0x26')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xbb10('0x27')},'dialPowerLevel':{'type':Sequelize['FLOAT'](0x2)[_0xbb10('0x26')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0xbb10('0x28')},'dialPredictiveOptimization':{'type':Sequelize['ENUM'](_0xbb10('0x29'),_0xbb10('0x2a')),'defaultValue':_0xbb10('0x2a'),'comment':_0xbb10('0x2b')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0xbb10('0x2c')](0x2)[_0xbb10('0x26')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':'Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)'},'dialPredictiveInterval':{'type':Sequelize[_0xbb10('0x17')](0x3)[_0xbb10('0x26')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0xbb10('0x2d')},'dialOriginateCallerIdName':{'type':Sequelize[_0xbb10('0x1')]},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize[_0xbb10('0x17')](0x3)[_0xbb10('0x26')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbb10('0x2e')},'dialQueueOptions':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':'tTxX','comment':_0xbb10('0x2f')},'dialQueueTimeout':{'type':Sequelize[_0xbb10('0x17')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize[_0xbb10('0x1')],'comment':'AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)'},'dialCongestionMaxRetry':{'type':Sequelize[_0xbb10('0x17')](0x3)[_0xbb10('0x26')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize[_0xbb10('0x17')](0x5)[_0xbb10('0x26')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbb10('0x30')},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xbb10('0x26')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbb10('0x31')},'dialBusyRetryFrequency':{'type':Sequelize[_0xbb10('0x17')](0x5)[_0xbb10('0x26')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbb10('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xbb10('0x17')](0x3)[_0xbb10('0x26')],'defaultValue':0x3,'comment':_0xbb10('0x33')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xbb10('0x17')](0x5)[_0xbb10('0x26')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbb10('0x34')},'dialGlobalMaxRetry':{'type':Sequelize[_0xbb10('0x17')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xbb10('0x35')},'dialTimezone':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize['STRING'],'defaultValue':_0xbb10('0x36')},'dialPrefix':{'type':Sequelize[_0xbb10('0x1')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0xbb10('0x3')](_0xbb10('0x37'),_0xbb10('0x38'),_0xbb10('0x39')),'defaultValue':_0xbb10('0x37')},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0xbb10('0x17')](0x9)[_0xbb10('0x26')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0xbb10('0x3a')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xbb10('0x3b')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xbb10('0x17')](0x9)[_0xbb10('0x26')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xbb10('0x3c')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xbb10('0x17')](0x9)[_0xbb10('0x26')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xbb10('0x3d')},'dialAMDMinWordLength':{'type':Sequelize[_0xbb10('0x17')](0x9)[_0xbb10('0x26')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0xbb10('0x3e')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xbb10('0x3f')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xbb10('0x17')](0x9)[_0xbb10('0x26')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xbb10('0x40')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xbb10('0x17')](0x5)[_0xbb10('0x26')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xbb10('0x41')},'dialAMDMaximumWordLength':{'type':Sequelize[_0xbb10('0x17')](0x9)[_0xbb10('0x26')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xbb10('0x42')},'dialRecallMeTimeout':{'type':Sequelize[_0xbb10('0x17')](0x5)[_0xbb10('0x26')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':_0xbb10('0x43')},'dialRecallInQueue':{'type':Sequelize[_0xbb10('0x23')],'defaultValue':0x0,'comment':_0xbb10('0x44')},'dialOrderByScheduledAt':{'type':Sequelize['ENUM'](_0xbb10('0x45'),'ASC'),'defaultValue':_0xbb10('0x45')},'dialQueueProject2':{'type':Sequelize[_0xbb10('0x1')],'comment':_0xbb10('0x46')},'dialAgiAfterHangupClient':{'type':Sequelize[_0xbb10('0x23')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0xbb10('0x23')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xbb10('0x17')](0x3)[_0xbb10('0x26')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xbb10('0x47')},'dialCutDigit':{'type':Sequelize[_0xbb10('0x17')](0x3)[_0xbb10('0x26')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xbb10('0x48')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x136c=['updatedAt','select','field','NOW()','toString','from','cm_contacts','ListId\x20=\x20?','CmListId','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','calleridnum','VoiceQueueId\x20=\x20?','onlyIfOpen','deletedAt\x20IS\x20NULL','ListId','sequelize','removeLists','getBlackLists','addBlackLists','all','removeBlackLists','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','to-csv','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./voiceQueue.socket','register','sendStatus','status','end','count','Content-Range','json','reject','update','then','destroy','error','stack','name','send','index','VoiceQueue','rawAttributes','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','offset','order','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','rows','catch','show','params','create','body','clone','find','createdAt','findOne','CmHopper','VoiceQueueId','findAll','getHopperHistories','CmHopperHistory','getHopperFinals','CmHopperFinal','CmHopperBlack','getTeams','Team','addTeams','User','union','Agents','penalty','ids','removeTeams','addAgents','omit','loginInPause','interface','push','UserVoiceQueueRt','upsert','isNil','format','removeAgents','isArray','emit','userVoiceQueue:remove','realtime','getAgents','getMembers','CmList','addLists','spread','get','dialCheckDuplicateType','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x136c,0x1d2));var _0xc136=function(_0xfd51a9,_0x5484ba){_0xfd51a9=_0xfd51a9-0x0;var _0x13845d=_0x136c[_0xfd51a9];return _0x13845d;};'use strict';var pdf=require(_0xc136('0x0'));var emlformat=require(_0xc136('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xc136('0x2'));var jsonpatch=require(_0xc136('0x3'));var rp=require(_0xc136('0x4'));var moment=require(_0xc136('0x5'));var BPromise=require(_0xc136('0x6'));var Mustache=require(_0xc136('0x7'));var util=require(_0xc136('0x8'));var path=require(_0xc136('0x9'));var sox=require(_0xc136('0xa'));var csv=require('to-csv');var ejs=require(_0xc136('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xc136('0xc'));var crypto=require(_0xc136('0xd'));var jsforce=require(_0xc136('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xc136('0xf'));var querystring=require('querystring');var Papa=require(_0xc136('0x10'));var qs=require(_0xc136('0x11'));var logger=require(_0xc136('0x12'))(_0xc136('0x13'));var utils=require(_0xc136('0x14'));var config=require(_0xc136('0x15'));var db=require(_0xc136('0x16'))['db'];config[_0xc136('0x17')]=_[_0xc136('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xc136('0x19'))(config['redis']);require(_0xc136('0x1a'))[_0xc136('0x1b')](socket);function respondWithStatusCode(_0x3937b1,_0x49118f){_0x49118f=_0x49118f||0xcc;return function(_0x59b7c8){if(_0x59b7c8){return _0x3937b1[_0xc136('0x1c')](_0x49118f);}return _0x3937b1[_0xc136('0x1d')](_0x49118f)[_0xc136('0x1e')]();};}function respondWithResult(_0x5ecabc,_0x524b86){_0x524b86=_0x524b86||0xc8;return function(_0x2e28ba){if(_0x2e28ba){return _0x5ecabc[_0xc136('0x1d')](_0x524b86)['json'](_0x2e28ba);}};}function respondWithFilteredResult(_0x4e24fb,_0x55a6c9){return function(_0x3524ef){if(_0x3524ef){var _0x3daf55=_0x3524ef[_0xc136('0x1f')],_0x192b3f=_0x55a6c9['offset'],_0x155929=_0x55a6c9['offset']+_0x55a6c9['limit'],_0x2b7e5a;if(_0x155929>=_0x3daf55){_0x155929=_0x3daf55;_0x2b7e5a=0xc8;}else{_0x2b7e5a=0xce;}_0x4e24fb[_0xc136('0x1d')](_0x2b7e5a);return _0x4e24fb['set'](_0xc136('0x20'),_0x192b3f+'-'+_0x155929+'/'+_0x3daf55)[_0xc136('0x21')](_0x3524ef);}return null;};}function patchUpdates(_0x357483){return function(_0x3f1f4d){try{jsonpatch['apply'](_0x3f1f4d,_0x357483,!![]);}catch(_0x2b8527){return BPromise[_0xc136('0x22')](_0x2b8527);}return _0x3f1f4d['save']();};}function saveUpdates(_0xc26366,_0x55f75b){return function(_0x484a97){if(_0x484a97){return _0x484a97[_0xc136('0x23')](_0xc26366)[_0xc136('0x24')](function(_0x4f766d){return _0x4f766d;});}return null;};}function removeEntity(_0x29448d,_0x16ec49){return function(_0x279c07){if(_0x279c07){return _0x279c07[_0xc136('0x25')]()['then'](function(){_0x29448d[_0xc136('0x1d')](0xcc)[_0xc136('0x1e')]();});}};}function handleEntityNotFound(_0x584706,_0x3432b0){return function(_0x5b4ed3){if(!_0x5b4ed3){_0x584706[_0xc136('0x1c')](0x194);}return _0x5b4ed3;};}function handleError(_0x16109f,_0x4a9dad){_0x4a9dad=_0x4a9dad||0x1f4;return function(_0x57602d){logger[_0xc136('0x26')](_0x57602d[_0xc136('0x27')]);if(_0x57602d['name']){delete _0x57602d[_0xc136('0x28')];}_0x16109f[_0xc136('0x1d')](_0x4a9dad)[_0xc136('0x29')](_0x57602d);};}exports[_0xc136('0x2a')]=function(_0x1317b3,_0x1c1057){var _0xa3e411={},_0x5f3027={},_0x436db5={'count':0x0,'rows':[]};var _0x1e023a=db[_0xc136('0x2b')][_0xc136('0x2c')];_0x5f3027[_0xc136('0x2d')]=_[_0xc136('0x2e')](_0x1e023a);var _0x309f54={'dateStart':_0x1317b3[_0xc136('0x2f')][_0xc136('0x30')],'dateEnd':_0x1317b3['query'][_0xc136('0x31')]};delete _0x1317b3[_0xc136('0x2f')][_0xc136('0x30')];delete _0x1317b3['query'][_0xc136('0x31')];_0x5f3027['query']=_['keys'](_0x1317b3[_0xc136('0x2f')]);_0x5f3027[_0xc136('0x32')]=_[_0xc136('0x33')](_0x5f3027['model'],_0x5f3027[_0xc136('0x2f')]);_0xa3e411[_0xc136('0x34')]=_['intersection'](_0x5f3027[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x1317b3['query'][_0xc136('0x35')]));_0xa3e411[_0xc136('0x34')]=_0xa3e411[_0xc136('0x34')][_0xc136('0x36')]?_0xa3e411[_0xc136('0x34')]:_0x5f3027[_0xc136('0x2d')];if(!_0x1317b3[_0xc136('0x2f')][_0xc136('0x37')](_0xc136('0x38'))){_0xa3e411[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x1317b3[_0xc136('0x2f')]['limit']);_0xa3e411[_0xc136('0x3a')]=qs[_0xc136('0x3a')](_0x1317b3[_0xc136('0x2f')][_0xc136('0x3a')]);}_0xa3e411[_0xc136('0x3b')]=qs[_0xc136('0x3c')](_0x1317b3[_0xc136('0x2f')]['sort']);_0xa3e411[_0xc136('0x3d')]=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x1317b3[_0xc136('0x2f')],_0x5f3027[_0xc136('0x32')]));if(_0x309f54[_0xc136('0x30')]){if(_0x309f54[_0xc136('0x31')]){_0x309f54['dateEnd']=moment(_0x309f54[_0xc136('0x31')])[_0xc136('0x3f')](0x1,_0xc136('0x40'));}else{_0x309f54[_0xc136('0x31')]=moment(_0x309f54[_0xc136('0x30')])['add'](0x1,_0xc136('0x40'));}_[_0xc136('0x41')](_0xa3e411['where'],{'createdAt':{'$gte':_0x309f54[_0xc136('0x30')],'$lte':_0x309f54[_0xc136('0x31')]}});}if(_0x1317b3[_0xc136('0x2f')][_0xc136('0x42')]){_0xa3e411[_0xc136('0x3d')]=_['merge'](_0xa3e411['where'],{'$or':_[_0xc136('0x43')](_0xa3e411['attributes'],function(_0x248080){var _0x279356={};_0x279356[_0x248080]={'$like':'%'+_0x1317b3[_0xc136('0x2f')][_0xc136('0x42')]+'%'};return _0x279356;})});}_0xa3e411=_[_0xc136('0x41')]({},_0xa3e411,_0x1317b3[_0xc136('0x44')]);var _0x102a10={'where':_0xa3e411['where']};return db['VoiceQueue'][_0xc136('0x1f')](_0x102a10)['then'](function(_0x2cd53){_0x436db5[_0xc136('0x1f')]=_0x2cd53;if(_0x1317b3['query'][_0xc136('0x45')]){_0xa3e411[_0xc136('0x46')]=[{'all':!![]}];}return db['VoiceQueue']['findAll'](_0xa3e411);})['then'](function(_0x1a70b6){_0x436db5[_0xc136('0x47')]=_0x1a70b6;return _0x436db5;})['then'](respondWithFilteredResult(_0x1c1057,_0xa3e411))[_0xc136('0x48')](handleError(_0x1c1057,null));};exports[_0xc136('0x49')]=function(_0x188f06,_0x579b3b){var _0x463f33={'raw':![],'where':{'id':_0x188f06[_0xc136('0x4a')]['id']}},_0xfe6a8f={};_0xfe6a8f[_0xc136('0x2d')]=_[_0xc136('0x2e')](db['VoiceQueue'][_0xc136('0x2c')]);_0xfe6a8f[_0xc136('0x2f')]=_[_0xc136('0x2e')](_0x188f06[_0xc136('0x2f')]);_0xfe6a8f[_0xc136('0x32')]=_[_0xc136('0x33')](_0xfe6a8f[_0xc136('0x2d')],_0xfe6a8f[_0xc136('0x2f')]);_0x463f33[_0xc136('0x34')]=_[_0xc136('0x33')](_0xfe6a8f[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x188f06[_0xc136('0x2f')][_0xc136('0x35')]));_0x463f33[_0xc136('0x34')]=_0x463f33[_0xc136('0x34')][_0xc136('0x36')]?_0x463f33[_0xc136('0x34')]:_0xfe6a8f[_0xc136('0x2d')];if(_0x188f06[_0xc136('0x2f')]['includeAll']){_0x463f33[_0xc136('0x46')]=[{'all':!![]}];}_0x463f33=_[_0xc136('0x41')]({},_0x463f33,_0x188f06[_0xc136('0x44')]);return db['VoiceQueue']['find'](_0x463f33)[_0xc136('0x24')](handleEntityNotFound(_0x579b3b,null))[_0xc136('0x24')](respondWithResult(_0x579b3b,null))[_0xc136('0x48')](handleError(_0x579b3b,null));};exports[_0xc136('0x4b')]=function(_0x3a774d,_0x4b90c6){return db[_0xc136('0x2b')][_0xc136('0x4b')](_0x3a774d[_0xc136('0x4c')],{})[_0xc136('0x24')](respondWithResult(_0x4b90c6,0xc9))[_0xc136('0x48')](handleError(_0x4b90c6,null));};exports[_0xc136('0x4d')]=function(_0x2886cc,_0x4ea74f){var _0x3283f8={'raw':![],'where':{'id':_0x2886cc[_0xc136('0x4a')]['id']}},_0x16784c={};_0x16784c[_0xc136('0x2d')]=_['keys'](db['VoiceQueue'][_0xc136('0x2c')]);_0x3283f8[_0xc136('0x34')]=_['intersection'](_0x16784c[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x2886cc[_0xc136('0x2f')][_0xc136('0x35')]));_0x3283f8[_0xc136('0x34')]=_0x3283f8[_0xc136('0x34')][_0xc136('0x36')]?_0x3283f8[_0xc136('0x34')]:_0x16784c[_0xc136('0x2d')];if(_0x2886cc[_0xc136('0x2f')]['includeAll']){_0x3283f8['include']=[{'all':!![]}];}_0x3283f8=_[_0xc136('0x41')]({},_0x3283f8,_0x2886cc[_0xc136('0x44')]);return db[_0xc136('0x2b')][_0xc136('0x4e')](_0x3283f8)[_0xc136('0x24')](handleEntityNotFound(_0x4ea74f,null))[_0xc136('0x24')](function(_0x2a9953){if(_0x2a9953){var _0xca3464=_0x2a9953['get']({'plain':!![]});_0xca3464=qs['omit'](_0xca3464,['id','createdAt','updatedAt']);_0x2886cc[_0xc136('0x4c')]=_['omit'](_0x2886cc['body'],['id',_0xc136('0x4f'),'updatedAt']);return db[_0xc136('0x2b')][_0xc136('0x4b')](_['merge'](_0xca3464,_0x2886cc[_0xc136('0x4c')]),{'include':_0x2886cc[_0xc136('0x2f')][_0xc136('0x45')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x4ea74f,0xc9))['catch'](handleError(_0x4ea74f,null));};exports[_0xc136('0x23')]=function(_0x6b4e16,_0x37cb21){if(_0x6b4e16[_0xc136('0x4c')]['id']){delete _0x6b4e16[_0xc136('0x4c')]['id'];}return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0x6b4e16[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x37cb21,null))[_0xc136('0x24')](saveUpdates(_0x6b4e16[_0xc136('0x4c')],null))[_0xc136('0x24')](respondWithResult(_0x37cb21,null))[_0xc136('0x48')](handleError(_0x37cb21,null));};exports[_0xc136('0x25')]=function(_0x159547,_0x45d87e){return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0x159547[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x45d87e,null))[_0xc136('0x24')](removeEntity(_0x45d87e,null))['catch'](handleError(_0x45d87e,null));};exports['getHoppers']=function(_0x4435f9,_0x1b3209,_0x3fdddc){var _0xad1dc6={'raw':![],'where':{}};var _0x10134e={};var _0x41fa22={'count':0x0,'rows':[]};return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x4435f9[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x1b3209,null))[_0xc136('0x24')](function(_0xa4a5d0){if(_0xa4a5d0){_0x10134e[_0xc136('0x2d')]=_['keys'](db[_0xc136('0x51')]['rawAttributes']);_0x10134e['query']=_[_0xc136('0x2e')](_0x4435f9['query']);_0x10134e['filters']=_[_0xc136('0x33')](_0x10134e[_0xc136('0x2d')],_0x10134e[_0xc136('0x2f')]);_0xad1dc6['attributes']=_[_0xc136('0x33')](_0x10134e[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x4435f9[_0xc136('0x2f')]['fields']));_0xad1dc6[_0xc136('0x34')]=_0xad1dc6['attributes']['length']?_0xad1dc6[_0xc136('0x34')]:_0x10134e[_0xc136('0x2d')];if(!_0x4435f9[_0xc136('0x2f')][_0xc136('0x37')]('nolimit')){_0xad1dc6['limit']=qs[_0xc136('0x39')](_0x4435f9[_0xc136('0x2f')][_0xc136('0x39')]);_0xad1dc6[_0xc136('0x3a')]=qs[_0xc136('0x3a')](_0x4435f9['query'][_0xc136('0x3a')]);}_0xad1dc6[_0xc136('0x3b')]=qs[_0xc136('0x3c')](_0x4435f9['query'][_0xc136('0x3c')]);_0xad1dc6['where']=qs[_0xc136('0x32')](_['pick'](_0x4435f9[_0xc136('0x2f')],_0x10134e[_0xc136('0x32')]));_0xad1dc6[_0xc136('0x3d')][_0xc136('0x52')]=_0xa4a5d0['id'];if(_0x4435f9[_0xc136('0x2f')][_0xc136('0x42')]){_0xad1dc6[_0xc136('0x3d')]=_[_0xc136('0x41')](_0xad1dc6[_0xc136('0x3d')],{'$or':_[_0xc136('0x43')](_0xad1dc6[_0xc136('0x34')],function(_0x4b7833){var _0x440606={};_0x440606[_0x4b7833]={'$like':'%'+_0x4435f9[_0xc136('0x2f')][_0xc136('0x42')]+'%'};return _0x440606;})});}_0xad1dc6=_[_0xc136('0x41')]({},_0xad1dc6,_0x4435f9[_0xc136('0x44')]);return db[_0xc136('0x51')][_0xc136('0x1f')]({'where':_0xad1dc6[_0xc136('0x3d')]})[_0xc136('0x24')](function(_0x50cb14){_0x41fa22[_0xc136('0x1f')]=_0x50cb14;if(_0x4435f9[_0xc136('0x2f')][_0xc136('0x45')]){_0xad1dc6[_0xc136('0x46')]=[{'all':!![]}];}return db[_0xc136('0x51')][_0xc136('0x53')](_0xad1dc6);})['then'](function(_0x4e3d7f){_0x41fa22[_0xc136('0x47')]=_0x4e3d7f;return _0x41fa22;});}})['then'](respondWithFilteredResult(_0x1b3209,_0xad1dc6))[_0xc136('0x48')](handleError(_0x1b3209,null));};exports[_0xc136('0x54')]=function(_0x413421,_0x53d0dc,_0x5bf3ef){var _0x53eabc={'raw':!![],'where':{}};var _0x27b448={};var _0x3d39ae={'count':0x0,'rows':[]};return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x413421[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x53d0dc,null))[_0xc136('0x24')](function(_0x51432b){if(_0x51432b){_0x27b448[_0xc136('0x2d')]=_[_0xc136('0x2e')](db[_0xc136('0x55')][_0xc136('0x2c')]);_0x27b448[_0xc136('0x2f')]=_[_0xc136('0x2e')](_0x413421[_0xc136('0x2f')]);_0x27b448[_0xc136('0x32')]=_[_0xc136('0x33')](_0x27b448[_0xc136('0x2d')],_0x27b448['query']);_0x53eabc['attributes']=_[_0xc136('0x33')](_0x27b448[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x413421['query']['fields']));_0x53eabc[_0xc136('0x34')]=_0x53eabc[_0xc136('0x34')][_0xc136('0x36')]?_0x53eabc[_0xc136('0x34')]:_0x27b448[_0xc136('0x2d')];if(!_0x413421[_0xc136('0x2f')][_0xc136('0x37')](_0xc136('0x38'))){_0x53eabc[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x413421['query'][_0xc136('0x39')]);_0x53eabc[_0xc136('0x3a')]=qs[_0xc136('0x3a')](_0x413421['query'][_0xc136('0x3a')]);}_0x53eabc['order']=qs['sort'](_0x413421[_0xc136('0x2f')][_0xc136('0x3c')]);_0x53eabc[_0xc136('0x3d')]=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x413421[_0xc136('0x2f')],_0x27b448[_0xc136('0x32')]));_0x53eabc[_0xc136('0x3d')][_0xc136('0x52')]=_0x51432b['id'];if(_0x413421['query']['filter']){_0x53eabc['where']=_[_0xc136('0x41')](_0x53eabc[_0xc136('0x3d')],{'$or':_['map'](_0x53eabc[_0xc136('0x34')],function(_0x5c33dc){var _0x41fbf4={};_0x41fbf4[_0x5c33dc]={'$like':'%'+_0x413421[_0xc136('0x2f')][_0xc136('0x42')]+'%'};return _0x41fbf4;})});}_0x53eabc=_[_0xc136('0x41')]({},_0x53eabc,_0x413421[_0xc136('0x44')]);return db['CmHopperHistory']['count']({'where':_0x53eabc[_0xc136('0x3d')]})[_0xc136('0x24')](function(_0x55fc3d){_0x3d39ae[_0xc136('0x1f')]=_0x55fc3d;if(_0x413421[_0xc136('0x2f')]['includeAll']){_0x53eabc[_0xc136('0x46')]=[{'all':!![]}];}return db['CmHopperHistory'][_0xc136('0x53')](_0x53eabc);})[_0xc136('0x24')](function(_0x3a1f1d){_0x3d39ae[_0xc136('0x47')]=_0x3a1f1d;return _0x3d39ae;});}})['then'](respondWithFilteredResult(_0x53d0dc,_0x53eabc))[_0xc136('0x48')](handleError(_0x53d0dc,null));};exports[_0xc136('0x56')]=function(_0x47c60f,_0x222818,_0x5a2a75){var _0x52f37b={'raw':!![],'where':{}};var _0x5bab50={};var _0x4bc77a={'count':0x0,'rows':[]};return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x47c60f['params']['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x222818,null))[_0xc136('0x24')](function(_0x14fa34){if(_0x14fa34){_0x5bab50[_0xc136('0x2d')]=_[_0xc136('0x2e')](db[_0xc136('0x57')][_0xc136('0x2c')]);_0x5bab50['query']=_[_0xc136('0x2e')](_0x47c60f[_0xc136('0x2f')]);_0x5bab50[_0xc136('0x32')]=_[_0xc136('0x33')](_0x5bab50[_0xc136('0x2d')],_0x5bab50[_0xc136('0x2f')]);_0x52f37b[_0xc136('0x34')]=_[_0xc136('0x33')](_0x5bab50[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x47c60f[_0xc136('0x2f')][_0xc136('0x35')]));_0x52f37b[_0xc136('0x34')]=_0x52f37b[_0xc136('0x34')][_0xc136('0x36')]?_0x52f37b[_0xc136('0x34')]:_0x5bab50[_0xc136('0x2d')];if(!_0x47c60f[_0xc136('0x2f')]['hasOwnProperty'](_0xc136('0x38'))){_0x52f37b[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x47c60f['query'][_0xc136('0x39')]);_0x52f37b['offset']=qs['offset'](_0x47c60f[_0xc136('0x2f')][_0xc136('0x3a')]);}_0x52f37b[_0xc136('0x3b')]=qs['sort'](_0x47c60f[_0xc136('0x2f')]['sort']);_0x52f37b[_0xc136('0x3d')]=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x47c60f[_0xc136('0x2f')],_0x5bab50[_0xc136('0x32')]));_0x52f37b[_0xc136('0x3d')]['VoiceQueueId']=_0x14fa34['id'];if(_0x47c60f[_0xc136('0x2f')][_0xc136('0x42')]){_0x52f37b[_0xc136('0x3d')]=_[_0xc136('0x41')](_0x52f37b[_0xc136('0x3d')],{'$or':_[_0xc136('0x43')](_0x52f37b['attributes'],function(_0x5ce615){var _0x3818c8={};_0x3818c8[_0x5ce615]={'$like':'%'+_0x47c60f['query']['filter']+'%'};return _0x3818c8;})});}_0x52f37b=_['merge']({},_0x52f37b,_0x47c60f['options']);return db[_0xc136('0x57')][_0xc136('0x1f')]({'where':_0x52f37b[_0xc136('0x3d')]})[_0xc136('0x24')](function(_0x387195){_0x4bc77a['count']=_0x387195;if(_0x47c60f[_0xc136('0x2f')][_0xc136('0x45')]){_0x52f37b[_0xc136('0x46')]=[{'all':!![]}];}return db['CmHopperFinal'][_0xc136('0x53')](_0x52f37b);})[_0xc136('0x24')](function(_0x4625ed){_0x4bc77a['rows']=_0x4625ed;return _0x4bc77a;});}})[_0xc136('0x24')](respondWithFilteredResult(_0x222818,_0x52f37b))[_0xc136('0x48')](handleError(_0x222818,null));};exports['getHopperBlacks']=function(_0xdb0d02,_0x3928c2,_0x249f61){var _0x46116b={'raw':!![],'where':{}};var _0x11abf0={};var _0x5177f5={'count':0x0,'rows':[]};return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0xdb0d02[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x3928c2,null))['then'](function(_0x2089ce){if(_0x2089ce){_0x11abf0[_0xc136('0x2d')]=_[_0xc136('0x2e')](db[_0xc136('0x58')][_0xc136('0x2c')]);_0x11abf0['query']=_[_0xc136('0x2e')](_0xdb0d02[_0xc136('0x2f')]);_0x11abf0[_0xc136('0x32')]=_[_0xc136('0x33')](_0x11abf0[_0xc136('0x2d')],_0x11abf0['query']);_0x46116b['attributes']=_[_0xc136('0x33')](_0x11abf0[_0xc136('0x2d')],qs['fields'](_0xdb0d02[_0xc136('0x2f')]['fields']));_0x46116b['attributes']=_0x46116b[_0xc136('0x34')][_0xc136('0x36')]?_0x46116b['attributes']:_0x11abf0[_0xc136('0x2d')];if(!_0xdb0d02[_0xc136('0x2f')][_0xc136('0x37')]('nolimit')){_0x46116b[_0xc136('0x39')]=qs[_0xc136('0x39')](_0xdb0d02['query'][_0xc136('0x39')]);_0x46116b['offset']=qs[_0xc136('0x3a')](_0xdb0d02['query'][_0xc136('0x3a')]);}_0x46116b[_0xc136('0x3b')]=qs[_0xc136('0x3c')](_0xdb0d02[_0xc136('0x2f')][_0xc136('0x3c')]);_0x46116b[_0xc136('0x3d')]=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0xdb0d02['query'],_0x11abf0[_0xc136('0x32')]));_0x46116b[_0xc136('0x3d')][_0xc136('0x52')]=_0x2089ce['id'];if(_0xdb0d02[_0xc136('0x2f')][_0xc136('0x42')]){_0x46116b[_0xc136('0x3d')]=_['merge'](_0x46116b['where'],{'$or':_[_0xc136('0x43')](_0x46116b['attributes'],function(_0x285295){var _0x1a1a38={};_0x1a1a38[_0x285295]={'$like':'%'+_0xdb0d02[_0xc136('0x2f')][_0xc136('0x42')]+'%'};return _0x1a1a38;})});}_0x46116b=_[_0xc136('0x41')]({},_0x46116b,_0xdb0d02['options']);return db[_0xc136('0x58')][_0xc136('0x1f')]({'where':_0x46116b[_0xc136('0x3d')]})[_0xc136('0x24')](function(_0x28ddc3){_0x5177f5[_0xc136('0x1f')]=_0x28ddc3;if(_0xdb0d02[_0xc136('0x2f')][_0xc136('0x45')]){_0x46116b[_0xc136('0x46')]=[{'all':!![]}];}return db[_0xc136('0x58')][_0xc136('0x53')](_0x46116b);})[_0xc136('0x24')](function(_0x268b4b){_0x5177f5[_0xc136('0x47')]=_0x268b4b;return _0x5177f5;});}})[_0xc136('0x24')](respondWithFilteredResult(_0x3928c2,_0x46116b))[_0xc136('0x48')](handleError(_0x3928c2,null));};exports[_0xc136('0x59')]=function(_0x5367cd,_0x32c6d4,_0x16dcad){var _0x282c4f={};var _0xafdea3={};var _0x362dfe;var _0x2f3eef;return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x5367cd[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x32c6d4,null))[_0xc136('0x24')](function(_0x5790ca){if(_0x5790ca){_0x362dfe=_0x5790ca;_0xafdea3[_0xc136('0x2d')]=_[_0xc136('0x2e')](db[_0xc136('0x5a')][_0xc136('0x2c')]);_0xafdea3[_0xc136('0x2f')]=_['keys'](_0x5367cd[_0xc136('0x2f')]);_0xafdea3['filters']=_[_0xc136('0x33')](_0xafdea3[_0xc136('0x2d')],_0xafdea3[_0xc136('0x2f')]);_0x282c4f[_0xc136('0x34')]=_[_0xc136('0x33')](_0xafdea3[_0xc136('0x2d')],qs['fields'](_0x5367cd[_0xc136('0x2f')]['fields']));_0x282c4f['attributes']=_0x282c4f[_0xc136('0x34')][_0xc136('0x36')]?_0x282c4f[_0xc136('0x34')]:_0xafdea3['model'];_0x282c4f[_0xc136('0x3b')]=qs[_0xc136('0x3c')](_0x5367cd['query']['sort']);_0x282c4f['where']=qs['filters'](_[_0xc136('0x3e')](_0x5367cd[_0xc136('0x2f')],_0xafdea3[_0xc136('0x32')]));if(_0x5367cd[_0xc136('0x2f')][_0xc136('0x42')]){_0x282c4f[_0xc136('0x3d')]=_[_0xc136('0x41')](_0x282c4f[_0xc136('0x3d')],{'$or':_['map'](_0x282c4f[_0xc136('0x34')],function(_0x6d92){var _0x1031b={};_0x1031b[_0x6d92]={'$like':'%'+_0x5367cd[_0xc136('0x2f')][_0xc136('0x42')]+'%'};return _0x1031b;})});}_0x282c4f=_[_0xc136('0x41')]({},_0x282c4f,_0x5367cd[_0xc136('0x44')]);return _0x362dfe[_0xc136('0x59')](_0x282c4f);}})['then'](function(_0x2a067f){if(_0x2a067f){_0x2f3eef=_0x2a067f[_0xc136('0x36')];if(!_0x5367cd['query'][_0xc136('0x37')](_0xc136('0x38'))){_0x282c4f[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x5367cd[_0xc136('0x2f')][_0xc136('0x39')]);_0x282c4f[_0xc136('0x3a')]=qs[_0xc136('0x3a')](_0x5367cd[_0xc136('0x2f')][_0xc136('0x3a')]);}return _0x362dfe[_0xc136('0x59')](_0x282c4f);}})[_0xc136('0x24')](function(_0x3d11ef){if(_0x3d11ef){return _0x3d11ef?{'count':_0x2f3eef,'rows':_0x3d11ef}:null;}})['then'](respondWithResult(_0x32c6d4,null))[_0xc136('0x48')](handleError(_0x32c6d4,null));};exports[_0xc136('0x5b')]=function(_0x39051c,_0x1a9bb7,_0x43b0b9){var _0x375ea2=[];var _0x48a25c;return db[_0xc136('0x5a')]['findAll']({'where':{'id':_0x39051c['body']['ids']},'attributes':['id'],'include':[{'model':db[_0xc136('0x5c')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0xc136('0x24')](function(_0xcadceb){if(_0xcadceb){for(var _0x3929f9=0x0;_0x3929f9<_0xcadceb['length'];_0x3929f9+=0x1){for(var _0x13331c=0x0;_0x13331c<_0xcadceb[_0x3929f9]['Agents']['length'];_0x13331c+=0x1){_0x375ea2=_[_0xc136('0x5d')](_0x375ea2,[_0xcadceb[_0x3929f9][_0xc136('0x5e')][_0x13331c]['id']]);}}return _0x375ea2;}})[_0xc136('0x24')](function(_0x398261){if(_0x398261){return db[_0xc136('0x2b')]['find']({'where':{'id':_0x39051c[_0xc136('0x4a')]['id']}});}})[_0xc136('0x24')](function(_0x3c90dc){if(_0x3c90dc){_0x48a25c=_0x3c90dc;return _0x48a25c['addAgents'](_0x375ea2,{'penalty':_0x39051c[_0xc136('0x4c')][_0xc136('0x5f')]});}})[_0xc136('0x24')](function(_0x4f944f){if(_0x4f944f){return _0x48a25c[_0xc136('0x5b')](_0x39051c[_0xc136('0x4c')][_0xc136('0x60')]);}})[_0xc136('0x24')](handleEntityNotFound(_0x1a9bb7,null))[_0xc136('0x24')](respondWithStatusCode(_0x1a9bb7,null))[_0xc136('0x48')](handleError(_0x1a9bb7,null));};exports[_0xc136('0x61')]=function(_0x26924b,_0x5b9203,_0xc8208c){var _0x4da7a6=[];var _0x10f626;return db[_0xc136('0x5a')][_0xc136('0x53')]({'where':{'id':_0x26924b['query']['ids']},'attributes':['id'],'include':[{'model':db[_0xc136('0x5c')],'as':_0xc136('0x5e'),'attributes':['id'],'raw':!![]}]})[_0xc136('0x24')](function(_0x569e9b){if(_0x569e9b){for(var _0x48cd50=0x0;_0x48cd50<_0x569e9b[_0xc136('0x36')];_0x48cd50+=0x1){for(var _0x54bf4d=0x0;_0x54bf4d<_0x569e9b[_0x48cd50][_0xc136('0x5e')]['length'];_0x54bf4d+=0x1){_0x4da7a6=_[_0xc136('0x5d')](_0x4da7a6,[_0x569e9b[_0x48cd50][_0xc136('0x5e')][_0x54bf4d]['id']]);}}return _0x4da7a6;}})['then'](function(_0x328451){if(_0x328451){return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0x26924b['params']['id']}});}})[_0xc136('0x24')](function(_0x4d3bb4){if(_0x4d3bb4){_0x10f626=_0x4d3bb4;return _0x10f626['removeAgents'](_0x4da7a6);}})[_0xc136('0x24')](function(_0x3fe1a5){if(_0x10f626){return _0x10f626[_0xc136('0x61')](_0x26924b[_0xc136('0x2f')]['ids']);}})[_0xc136('0x24')](handleEntityNotFound(_0x5b9203,null))[_0xc136('0x24')](respondWithStatusCode(_0x5b9203,null))[_0xc136('0x48')](handleError(_0x5b9203,null));};exports['addAgents']=function(_0xd34a4b,_0x397eb5,_0x1bfeaf){var _0x151e45,_0xfed110;return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0xd34a4b['params']['id']}})['then'](handleEntityNotFound(_0x397eb5,null))[_0xc136('0x24')](function(_0x4e8493){if(_0x4e8493){_0xfed110=_0x4e8493;return _0x4e8493[_0xc136('0x62')](_0xd34a4b[_0xc136('0x4c')][_0xc136('0x60')],_[_0xc136('0x63')](_0xd34a4b[_0xc136('0x4c')],[_0xc136('0x60'),'id'])||{})['spread'](function(_0x4f991d){for(var _0x3f6271=0x0;_0x3f6271<_0xd34a4b[_0xc136('0x4c')][_0xc136('0x60')]['length'];_0x3f6271+=0x1){socket['emit']('userVoiceQueue:save',{'UserId':_0xd34a4b[_0xc136('0x4c')][_0xc136('0x60')][_0x3f6271],'VoiceQueueId':_0xd34a4b[_0xc136('0x4a')]['id']});}return _0x4f991d;});}})[_0xc136('0x24')](function(_0x5c63c6){_0x151e45=_0x5c63c6||[];if(_0xfed110){return db['User'][_0xc136('0x53')]({'where':{'id':_0xd34a4b[_0xc136('0x4c')][_0xc136('0x60')]},'attributes':['id','name',_0xc136('0x64'),'voicePause',_0xc136('0x65')],'raw':!![]});}})[_0xc136('0x24')](function(_0x20b478){if(_0x20b478&&_0x20b478[_0xc136('0x36')]){var _0x197cb2=[];for(var _0x3a29e9=0x0;_0x3a29e9<_0x20b478[_0xc136('0x36')];_0x3a29e9++){_0x197cb2[_0xc136('0x66')](db[_0xc136('0x67')][_0xc136('0x68')]({'membername':_0x20b478[_0x3a29e9][_0xc136('0x28')],'UserId':_0x20b478[_0x3a29e9]['id'],'queue_name':_0xfed110[_0xc136('0x28')],'VoiceQueueId':_0xfed110['id'],'interface':_[_0xc136('0x69')](_0x20b478[_0x3a29e9][_0xc136('0x65')])?util[_0xc136('0x6a')]('SIP/%s',_0x20b478[_0x3a29e9]['name']):_0x20b478[_0x3a29e9]['interface'],'paused':_0x20b478[_0x3a29e9]['voicePause']||![],'penalty':_0xd34a4b[_0xc136('0x4c')][_0xc136('0x5f')]||0x0}));}return BPromise['all'](_0x197cb2);}})[_0xc136('0x24')](function(_0x326972){return _0x151e45;})[_0xc136('0x24')](respondWithResult(_0x397eb5,null))['catch'](handleError(_0x397eb5,null));};exports['removeAgents']=function(_0x34247e,_0x31937b,_0x9bac6c){var _0x20df4f;return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0x34247e[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x31937b,null))[_0xc136('0x24')](function(_0x5918d9){if(_0x5918d9){return _0x5918d9[_0xc136('0x6b')](_0x34247e[_0xc136('0x2f')][_0xc136('0x60')])['then'](function(_0x1a9e8e){if(_[_0xc136('0x6c')](_0x34247e[_0xc136('0x2f')][_0xc136('0x60')])){for(var _0x3e01ca=0x0;_0x3e01ca<_0x34247e['query'][_0xc136('0x60')]['length'];_0x3e01ca+=0x1){socket[_0xc136('0x6d')]('userVoiceQueue:remove',{'UserId':_0x34247e['query'][_0xc136('0x60')][_0x3e01ca],'VoiceQueueId':_0x34247e[_0xc136('0x4a')]['id']});}}else{socket['emit'](_0xc136('0x6e'),{'UserId':_0x34247e[_0xc136('0x2f')][_0xc136('0x60')],'VoiceQueueId':_0x34247e[_0xc136('0x4a')]['id']});}});}})[_0xc136('0x24')](function(_0xec7ee5){if(_0x34247e[_0xc136('0x2f')][_0xc136('0x6f')]){_0x20df4f=_0xec7ee5;return db['UserVoiceQueueRt']['destroy']({'where':{'VoiceQueueId':_0x34247e[_0xc136('0x4a')]['id'],'UserId':_0x34247e[_0xc136('0x2f')]['ids']}})[_0xc136('0x24')](function(){return _0x20df4f;});}})[_0xc136('0x24')](respondWithStatusCode(_0x31937b,null))[_0xc136('0x48')](handleError(_0x31937b,null));};exports['getAgents']=function(_0x599ef9,_0x5c7c96,_0x5ce57a){var _0x122c6e={};var _0x5081fd={};var _0x1b3324;var _0x21ed7c;return db['VoiceQueue'][_0xc136('0x50')]({'where':{'id':_0x599ef9[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x5c7c96,null))[_0xc136('0x24')](function(_0x233af4){if(_0x233af4){_0x1b3324=_0x233af4;_0x5081fd[_0xc136('0x2d')]=_[_0xc136('0x2e')](db['User'][_0xc136('0x2c')]);_0x5081fd[_0xc136('0x2f')]=_[_0xc136('0x2e')](_0x599ef9[_0xc136('0x2f')]);_0x5081fd[_0xc136('0x32')]=_[_0xc136('0x33')](_0x5081fd[_0xc136('0x2d')],_0x5081fd[_0xc136('0x2f')]);_0x122c6e[_0xc136('0x34')]=_[_0xc136('0x33')](_0x5081fd['model'],qs[_0xc136('0x35')](_0x599ef9[_0xc136('0x2f')][_0xc136('0x35')]));_0x122c6e[_0xc136('0x34')]=_0x122c6e['attributes']['length']?_0x122c6e['attributes']:_0x5081fd[_0xc136('0x2d')];_0x122c6e['order']=qs[_0xc136('0x3c')](_0x599ef9['query']['sort']);_0x122c6e['where']=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x599ef9[_0xc136('0x2f')],_0x5081fd['filters']));if(_0x599ef9[_0xc136('0x2f')][_0xc136('0x42')]){_0x122c6e[_0xc136('0x3d')]=_[_0xc136('0x41')](_0x122c6e[_0xc136('0x3d')],{'$or':_[_0xc136('0x43')](_0x122c6e[_0xc136('0x34')],function(_0x11e2b8){var _0x1767d4={};_0x1767d4[_0x11e2b8]={'$like':'%'+_0x599ef9[_0xc136('0x2f')]['filter']+'%'};return _0x1767d4;})});}_0x122c6e=_[_0xc136('0x41')]({},_0x122c6e,_0x599ef9[_0xc136('0x44')]);return _0x1b3324['getAgents'](_0x122c6e);}})['then'](function(_0x91850){if(_0x91850){_0x21ed7c=_0x91850[_0xc136('0x36')];if(!_0x599ef9[_0xc136('0x2f')]['hasOwnProperty'](_0xc136('0x38'))){_0x122c6e[_0xc136('0x39')]=qs['limit'](_0x599ef9[_0xc136('0x2f')]['limit']);_0x122c6e[_0xc136('0x3a')]=qs[_0xc136('0x3a')](_0x599ef9[_0xc136('0x2f')][_0xc136('0x3a')]);}return _0x1b3324[_0xc136('0x70')](_0x122c6e);}})[_0xc136('0x24')](function(_0x3c0d60){if(_0x3c0d60){return _0x3c0d60?{'count':_0x21ed7c,'rows':_0x3c0d60}:null;}})[_0xc136('0x24')](respondWithResult(_0x5c7c96,null))[_0xc136('0x48')](handleError(_0x5c7c96,null));};exports[_0xc136('0x71')]=function(_0x30f061,_0x2e0f30,_0x4c2e6b){var _0x4e50af={};var _0x2f32fe={};var _0x3559b9;var _0x208908;return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x30f061[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x2e0f30,null))[_0xc136('0x24')](function(_0x1f4a92){if(_0x1f4a92){_0x3559b9=_0x1f4a92;_0x2f32fe[_0xc136('0x2d')]=_[_0xc136('0x2e')](db['UserVoiceQueueRt'][_0xc136('0x2c')]);_0x2f32fe['query']=_['keys'](_0x30f061[_0xc136('0x2f')]);_0x2f32fe[_0xc136('0x32')]=_['intersection'](_0x2f32fe[_0xc136('0x2d')],_0x2f32fe[_0xc136('0x2f')]);_0x4e50af[_0xc136('0x34')]=_[_0xc136('0x33')](_0x2f32fe[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x30f061[_0xc136('0x2f')]['fields']));_0x4e50af[_0xc136('0x34')]=_0x4e50af[_0xc136('0x34')]['length']?_0x4e50af['attributes']:_0x2f32fe[_0xc136('0x2d')];_0x4e50af[_0xc136('0x3b')]=qs[_0xc136('0x3c')](_0x30f061['query'][_0xc136('0x3c')]);_0x4e50af[_0xc136('0x3d')]=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x30f061[_0xc136('0x2f')],_0x2f32fe[_0xc136('0x32')]));if(_0x30f061['query'][_0xc136('0x42')]){_0x4e50af[_0xc136('0x3d')]=_[_0xc136('0x41')](_0x4e50af[_0xc136('0x3d')],{'$or':_[_0xc136('0x43')](_0x4e50af[_0xc136('0x34')],function(_0x3e992c){var _0x2fd755={};_0x2fd755[_0x3e992c]={'$like':'%'+_0x30f061[_0xc136('0x2f')]['filter']+'%'};return _0x2fd755;})});}_0x4e50af=_['merge']({},_0x4e50af,_0x30f061[_0xc136('0x44')]);return _0x3559b9['getMembers'](_0x4e50af);}})['then'](function(_0x49fcbf){if(_0x49fcbf){_0x208908=_0x49fcbf[_0xc136('0x36')];if(!_0x30f061['query'][_0xc136('0x37')](_0xc136('0x38'))){_0x4e50af[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x30f061['query'][_0xc136('0x39')]);_0x4e50af[_0xc136('0x3a')]=qs[_0xc136('0x3a')](_0x30f061['query'][_0xc136('0x3a')]);}return _0x3559b9[_0xc136('0x71')](_0x4e50af);}})[_0xc136('0x24')](function(_0x39aadc){return _0x39aadc?{'count':_0x208908,'rows':_0x39aadc}:null;})['then'](respondWithResult(_0x2e0f30,null))['catch'](handleError(_0x2e0f30,null));};exports['getLists']=function(_0x30e4e6,_0x38d469,_0xb0ef36){var _0x294819={};var _0x4cd31a={};var _0x56cd34;var _0x2257e6;return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x30e4e6[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x38d469,null))[_0xc136('0x24')](function(_0xdf39d4){if(_0xdf39d4){_0x56cd34=_0xdf39d4;_0x4cd31a[_0xc136('0x2d')]=_['keys'](db[_0xc136('0x72')][_0xc136('0x2c')]);_0x4cd31a[_0xc136('0x2f')]=_[_0xc136('0x2e')](_0x30e4e6[_0xc136('0x2f')]);_0x4cd31a[_0xc136('0x32')]=_[_0xc136('0x33')](_0x4cd31a[_0xc136('0x2d')],_0x4cd31a[_0xc136('0x2f')]);_0x294819[_0xc136('0x34')]=_[_0xc136('0x33')](_0x4cd31a[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x30e4e6['query']['fields']));_0x294819[_0xc136('0x34')]=_0x294819[_0xc136('0x34')][_0xc136('0x36')]?_0x294819['attributes']:_0x4cd31a[_0xc136('0x2d')];_0x294819['order']=qs[_0xc136('0x3c')](_0x30e4e6[_0xc136('0x2f')]['sort']);_0x294819[_0xc136('0x3d')]=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x30e4e6[_0xc136('0x2f')],_0x4cd31a[_0xc136('0x32')]));if(_0x30e4e6[_0xc136('0x2f')][_0xc136('0x42')]){_0x294819['where']=_['merge'](_0x294819[_0xc136('0x3d')],{'$or':_[_0xc136('0x43')](_0x294819['attributes'],function(_0x3e5362){var _0x3c4a7e={};_0x3c4a7e[_0x3e5362]={'$like':'%'+_0x30e4e6[_0xc136('0x2f')]['filter']+'%'};return _0x3c4a7e;})});}_0x294819=_['merge']({},_0x294819,_0x30e4e6['options']);return _0x56cd34['getLists'](_0x294819);}})[_0xc136('0x24')](function(_0x4d0687){if(_0x4d0687){_0x2257e6=_0x4d0687[_0xc136('0x36')];if(!_0x30e4e6[_0xc136('0x2f')][_0xc136('0x37')]('nolimit')){_0x294819[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x30e4e6['query']['limit']);_0x294819['offset']=qs[_0xc136('0x3a')](_0x30e4e6[_0xc136('0x2f')][_0xc136('0x3a')]);}return _0x56cd34['getLists'](_0x294819);}})['then'](function(_0x397d70){if(_0x397d70){return _0x397d70?{'count':_0x2257e6,'rows':_0x397d70}:null;}})[_0xc136('0x24')](respondWithResult(_0x38d469,null))[_0xc136('0x48')](handleError(_0x38d469,null));};exports[_0xc136('0x73')]=function(_0xfc64e2,_0x3d454d,_0x560adb){var _0x370f46,_0x373935;return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0xfc64e2[_0xc136('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3d454d,null))[_0xc136('0x24')](function(_0xc8996c){if(_0xc8996c){_0x373935=_0xc8996c;return _0xc8996c[_0xc136('0x73')](_0xfc64e2[_0xc136('0x4c')][_0xc136('0x60')],_[_0xc136('0x63')](_0xfc64e2[_0xc136('0x4c')],[_0xc136('0x60'),'id'])||{});}return null;})[_0xc136('0x74')](function(_0x330a7c){var _0x6bb420;_0x370f46=_0x330a7c||[];var _0x45f99f=[];if(_0x330a7c){for(var _0x43eae4=0x0;_0x43eae4<_0x330a7c[_0xc136('0x36')];_0x43eae4+=0x1){var _0x14b510=_0x330a7c[_0x43eae4][_0xc136('0x75')]({'plain':!![]});_0x373935['dialCheckDuplicateType']=_0xfc64e2[_0xc136('0x4c')][_0xc136('0x76')]?_0xfc64e2[_0xc136('0x4c')][_0xc136('0x76')]:_0x373935[_0xc136('0x76')];switch(_0x373935[_0xc136('0x76')]){case'always':_0x6bb420=squel[_0xc136('0x77')]()[_0xc136('0x78')](_0xc136('0x79'))[_0xc136('0x7a')]([_0xc136('0x7b'),_0xc136('0x7c'),_0xc136('0x7d'),'ListId','VoiceQueueId',_0xc136('0x4f'),_0xc136('0x7e')],squel[_0xc136('0x7f')]()[_0xc136('0x80')](_0xc136('0x7b'),_0xc136('0x7b'))[_0xc136('0x80')](_0xc136('0x81'),_0xc136('0x7c'))[_0xc136('0x80')]('id',_0xc136('0x7d'))[_0xc136('0x80')](_0x14b510['CmListId'][_0xc136('0x82')](),'ListId')[_0xc136('0x80')](_0xfc64e2['params']['id'][_0xc136('0x82')](),_0xc136('0x52'))[_0xc136('0x80')](_0xc136('0x81'),_0xc136('0x4f'))[_0xc136('0x80')]('NOW()',_0xc136('0x7e'))[_0xc136('0x83')](_0xc136('0x84'))['where']('deletedAt\x20IS\x20NULL')[_0xc136('0x3d')](_0xc136('0x85'),_0x14b510[_0xc136('0x86')][_0xc136('0x82')]())[_0xc136('0x3d')](_0xc136('0x87'))['where'](_0xc136('0x88'),squel[_0xc136('0x7f')]()[_0xc136('0x80')](_0xc136('0x89'))[_0xc136('0x83')]('cm_hopper_final')[_0xc136('0x3d')](_0xc136('0x8a'),_0xfc64e2[_0xc136('0x4a')]['id']['toString']()))[_0xc136('0x3d')](_0xc136('0x88'),squel[_0xc136('0x7f')]()[_0xc136('0x80')](_0xc136('0x7b'))[_0xc136('0x83')]('cm_hopper')['where']('VoiceQueueId\x20=\x20?',_0xfc64e2['params']['id'][_0xc136('0x82')]())))[_0xc136('0x82')]();break;case _0xc136('0x8b'):_0x6bb420=squel[_0xc136('0x77')]()[_0xc136('0x78')](_0xc136('0x79'))[_0xc136('0x7a')]([_0xc136('0x7b'),_0xc136('0x7c'),_0xc136('0x7d'),'ListId',_0xc136('0x52'),_0xc136('0x4f'),_0xc136('0x7e')],squel[_0xc136('0x7f')]()[_0xc136('0x80')](_0xc136('0x7b'),'phone')[_0xc136('0x80')](_0xc136('0x81'),_0xc136('0x7c'))[_0xc136('0x80')]('id','ContactId')['field'](_0x14b510[_0xc136('0x86')][_0xc136('0x82')](),'ListId')[_0xc136('0x80')](_0xfc64e2[_0xc136('0x4a')]['id'][_0xc136('0x82')](),_0xc136('0x52'))['field'](_0xc136('0x81'),'createdAt')[_0xc136('0x80')](_0xc136('0x81'),_0xc136('0x7e'))[_0xc136('0x83')]('cm_contacts')[_0xc136('0x3d')](_0xc136('0x8c'))['where'](_0xc136('0x85'),_0x14b510['CmListId'][_0xc136('0x82')]())[_0xc136('0x3d')]('phone\x20IS\x20NOT\x20NULL')[_0xc136('0x3d')](_0xc136('0x88'),squel['select']()['field'](_0xc136('0x7b'))['from'](_0xc136('0x79'))['where'](_0xc136('0x8a'),_0xfc64e2[_0xc136('0x4a')]['id'][_0xc136('0x82')]())))['toString']();break;default:_0x6bb420=squel[_0xc136('0x77')]()[_0xc136('0x78')](_0xc136('0x79'))[_0xc136('0x7a')](['phone','scheduledAt','ContactId',_0xc136('0x8d'),_0xc136('0x52'),_0xc136('0x4f'),_0xc136('0x7e')],squel[_0xc136('0x7f')]()[_0xc136('0x80')](_0xc136('0x7b'),'phone')['field'](_0xc136('0x81'),_0xc136('0x7c'))[_0xc136('0x80')]('id',_0xc136('0x7d'))['field'](_0x14b510['CmListId']['toString'](),_0xc136('0x8d'))[_0xc136('0x80')](_0xfc64e2[_0xc136('0x4a')]['id'][_0xc136('0x82')](),'VoiceQueueId')['field']('NOW()',_0xc136('0x4f'))[_0xc136('0x80')]('NOW()',_0xc136('0x7e'))[_0xc136('0x83')](_0xc136('0x84'))[_0xc136('0x3d')](_0xc136('0x8c'))[_0xc136('0x3d')](_0xc136('0x85'),_0x14b510[_0xc136('0x86')][_0xc136('0x82')]())[_0xc136('0x3d')]('phone\x20IS\x20NOT\x20NULL'))['toString']();}_0x45f99f[_0xc136('0x66')](db[_0xc136('0x8e')][_0xc136('0x2f')](_0x6bb420));}return BPromise['all'](_0x45f99f);}})[_0xc136('0x24')](function(){return _0x370f46;})[_0xc136('0x24')](respondWithResult(_0x3d454d,null))[_0xc136('0x48')](handleError(_0x3d454d,null));};exports[_0xc136('0x8f')]=function(_0x1a0b52,_0x581a07,_0x10f49c){var _0x503b15;return db[_0xc136('0x2b')]['find']({'where':{'id':_0x1a0b52[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x581a07,null))[_0xc136('0x24')](function(_0xc2980a){if(_0xc2980a){return _0xc2980a[_0xc136('0x8f')](_0x1a0b52[_0xc136('0x2f')]['ids']);}})['then'](function(_0x36a61e){if(_0x36a61e){_0x503b15=_0x36a61e;return db[_0xc136('0x51')][_0xc136('0x25')]({'where':{'ListId':_0x1a0b52[_0xc136('0x2f')]['ids'],'VoiceQueueId':_0x1a0b52[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](function(){return _0x503b15;});}})[_0xc136('0x24')](respondWithStatusCode(_0x581a07,null))[_0xc136('0x48')](handleError(_0x581a07,null));};exports[_0xc136('0x90')]=function(_0x2a2fd5,_0x2282ec,_0x155d3e){var _0x437e35={};var _0x52421d={};var _0x59e411;var _0x5ab56c;return db[_0xc136('0x2b')][_0xc136('0x50')]({'where':{'id':_0x2a2fd5[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x2282ec,null))[_0xc136('0x24')](function(_0x201850){if(_0x201850){_0x59e411=_0x201850;_0x52421d['model']=_['keys'](db[_0xc136('0x72')][_0xc136('0x2c')]);_0x52421d[_0xc136('0x2f')]=_[_0xc136('0x2e')](_0x2a2fd5[_0xc136('0x2f')]);_0x52421d[_0xc136('0x32')]=_[_0xc136('0x33')](_0x52421d[_0xc136('0x2d')],_0x52421d[_0xc136('0x2f')]);_0x437e35[_0xc136('0x34')]=_[_0xc136('0x33')](_0x52421d[_0xc136('0x2d')],qs[_0xc136('0x35')](_0x2a2fd5[_0xc136('0x2f')]['fields']));_0x437e35[_0xc136('0x34')]=_0x437e35[_0xc136('0x34')][_0xc136('0x36')]?_0x437e35[_0xc136('0x34')]:_0x52421d[_0xc136('0x2d')];_0x437e35[_0xc136('0x3b')]=qs[_0xc136('0x3c')](_0x2a2fd5[_0xc136('0x2f')]['sort']);_0x437e35['where']=qs[_0xc136('0x32')](_[_0xc136('0x3e')](_0x2a2fd5[_0xc136('0x2f')],_0x52421d['filters']));if(_0x2a2fd5['query'][_0xc136('0x42')]){_0x437e35[_0xc136('0x3d')]=_[_0xc136('0x41')](_0x437e35[_0xc136('0x3d')],{'$or':_[_0xc136('0x43')](_0x437e35[_0xc136('0x34')],function(_0x2e0136){var _0x28144e={};_0x28144e[_0x2e0136]={'$like':'%'+_0x2a2fd5['query'][_0xc136('0x42')]+'%'};return _0x28144e;})});}_0x437e35=_[_0xc136('0x41')]({},_0x437e35,_0x2a2fd5['options']);return _0x59e411[_0xc136('0x90')](_0x437e35);}})['then'](function(_0x7d67ed){if(_0x7d67ed){_0x5ab56c=_0x7d67ed[_0xc136('0x36')];if(!_0x2a2fd5[_0xc136('0x2f')][_0xc136('0x37')]('nolimit')){_0x437e35[_0xc136('0x39')]=qs[_0xc136('0x39')](_0x2a2fd5['query'][_0xc136('0x39')]);_0x437e35['offset']=qs[_0xc136('0x3a')](_0x2a2fd5['query'][_0xc136('0x3a')]);}return _0x59e411[_0xc136('0x90')](_0x437e35);}})[_0xc136('0x24')](function(_0x3fddcc){if(_0x3fddcc){return _0x3fddcc?{'count':_0x5ab56c,'rows':_0x3fddcc}:null;}})[_0xc136('0x24')](respondWithResult(_0x2282ec,null))[_0xc136('0x48')](handleError(_0x2282ec,null));};exports[_0xc136('0x91')]=function(_0x50a9ae,_0x1dec3a,_0x2a75fd){var _0x321913,_0x417c6b;return db['VoiceQueue'][_0xc136('0x4e')]({'where':{'id':_0x50a9ae['params']['id']}})['then'](handleEntityNotFound(_0x1dec3a,null))[_0xc136('0x24')](function(_0x4d5c75){if(_0x4d5c75){_0x417c6b=_0x4d5c75;return _0x4d5c75['addBlackLists'](_0x50a9ae[_0xc136('0x4c')][_0xc136('0x60')],_['omit'](_0x50a9ae[_0xc136('0x4c')],[_0xc136('0x60'),'id'])||{});}return null;})[_0xc136('0x74')](function(_0x4d13dc){var _0x1936b3;_0x321913=_0x4d13dc||[];var _0x377aff=[];if(_0x4d13dc){for(var _0x3049df=0x0;_0x3049df<_0x4d13dc[_0xc136('0x36')];_0x3049df+=0x1){var _0x5692bb=_0x4d13dc[_0x3049df][_0xc136('0x75')]({'plain':!![]});_0x1936b3=squel['insert']()[_0xc136('0x78')]('cm_hopper_black')['fromQuery']([_0xc136('0x7b'),_0xc136('0x7d'),_0xc136('0x8d'),'VoiceQueueId',_0xc136('0x4f'),_0xc136('0x7e')],squel[_0xc136('0x7f')]()[_0xc136('0x80')](_0xc136('0x7b'),_0xc136('0x7b'))[_0xc136('0x80')]('id','ContactId')['field'](_0x5692bb['CmListId'][_0xc136('0x82')](),_0xc136('0x8d'))[_0xc136('0x80')](_0x50a9ae[_0xc136('0x4a')]['id']['toString'](),_0xc136('0x52'))[_0xc136('0x80')]('NOW()',_0xc136('0x4f'))[_0xc136('0x80')](_0xc136('0x81'),_0xc136('0x7e'))[_0xc136('0x83')](_0xc136('0x84'))['where'](_0xc136('0x8c'))['where'](_0xc136('0x85'),_0x5692bb[_0xc136('0x86')][_0xc136('0x82')]())[_0xc136('0x3d')]('phone\x20IS\x20NOT\x20NULL'))['toString']();_0x377aff[_0xc136('0x66')](db['sequelize'][_0xc136('0x2f')](_0x1936b3));}return BPromise[_0xc136('0x92')](_0x377aff);}})[_0xc136('0x24')](function(){return _0x321913;})['then'](respondWithResult(_0x1dec3a,null))[_0xc136('0x48')](handleError(_0x1dec3a,null));};exports[_0xc136('0x93')]=function(_0x140e92,_0x3d333d,_0x1cee79){var _0x3b945c;return db[_0xc136('0x2b')][_0xc136('0x4e')]({'where':{'id':_0x140e92[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](handleEntityNotFound(_0x3d333d,null))['then'](function(_0x745b22){if(_0x745b22){return _0x745b22[_0xc136('0x93')](_0x140e92[_0xc136('0x2f')][_0xc136('0x60')]);}})['then'](function(_0x44b463){if(_0x44b463){_0x3b945c=_0x44b463;return db[_0xc136('0x58')][_0xc136('0x25')]({'where':{'ListId':_0x140e92[_0xc136('0x2f')][_0xc136('0x60')],'VoiceQueueId':_0x140e92[_0xc136('0x4a')]['id']}})[_0xc136('0x24')](function(){return _0x3b945c;});}})[_0xc136('0x24')](respondWithStatusCode(_0x3d333d,null))['catch'](handleError(_0x3d333d,null));};
\ No newline at end of file
+var _0xe083=['status','end','offset','limit','Content-Range','apply','save','then','destroy','stack','name','send','index','model','query','dateStart','dateEnd','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','add','day','merge','where','filter','map','VoiceQueue','count','includeAll','include','findAll','catch','params','options','find','create','rawAttributes','omit','updatedAt','body','createdAt','findOne','CmHopper','hasOwnProperty','rows','getHopperHistories','CmHopperHistory','pick','VoiceQueueId','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getTeams','addTeams','ids','User','Agents','union','addAgents','penalty','removeTeams','Team','removeAgents','spread','emit','userVoiceQueue:save','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','all','userVoiceQueue:remove','realtime','getAgents','getMembers','getLists','addLists','get','dialCheckDuplicateType','always','insert','cm_hopper','phone','scheduledAt','ContactId','ListId','select','field','NOW()','CmListId','toString','cm_contacts','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','from','cm_hopper_final','VoiceQueueId\x20=\x20?','phone\x20NOT\x20IN\x20(?)','into','fromQuery','ListId\x20=\x20?','push','sequelize','removeLists','getBlackLists','CmList','cm_hopper_black','removeBlackLists','html-pdf','eml-format','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','redis','localhost','socket.io-emitter','./voiceQueue.socket','register','sendStatus'];(function(_0x5390b0,_0x4d00f5){var _0x2f4914=function(_0x40e6d1){while(--_0x40e6d1){_0x5390b0['push'](_0x5390b0['shift']());}};_0x2f4914(++_0x4d00f5);}(_0xe083,0x76));var _0x3e08=function(_0x194549,_0x2d6481){_0x194549=_0x194549-0x0;var _0x307b7d=_0xe083[_0x194549];return _0x307b7d;};'use strict';var pdf=require(_0x3e08('0x0'));var emlformat=require(_0x3e08('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3e08('0x2'));var rp=require(_0x3e08('0x3'));var moment=require(_0x3e08('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3e08('0x5'));var util=require(_0x3e08('0x6'));var path=require('path');var sox=require(_0x3e08('0x7'));var csv=require(_0x3e08('0x8'));var ejs=require(_0x3e08('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x3e08('0xa'));var crypto=require(_0x3e08('0xb'));var jsforce=require(_0x3e08('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x3e08('0x8'));var querystring=require(_0x3e08('0xd'));var Papa=require(_0x3e08('0xe'));var Redis=require(_0x3e08('0xf'));var qs=require(_0x3e08('0x10'));var logger=require(_0x3e08('0x11'))(_0x3e08('0x12'));var utils=require(_0x3e08('0x13'));var config=require('../../config/environment');var db=require(_0x3e08('0x14'))['db'];config[_0x3e08('0x15')]=_['defaults'](config[_0x3e08('0x15')],{'host':_0x3e08('0x16'),'port':0x18eb});var socket=require(_0x3e08('0x17'))(new Redis(config[_0x3e08('0x15')]));require(_0x3e08('0x18'))[_0x3e08('0x19')](socket);function respondWithStatusCode(_0x50349a,_0x3c51c3){_0x3c51c3=_0x3c51c3||0xcc;return function(_0x329b1f){if(_0x329b1f){return _0x50349a[_0x3e08('0x1a')](_0x3c51c3);}return _0x50349a[_0x3e08('0x1b')](_0x3c51c3)[_0x3e08('0x1c')]();};}function respondWithResult(_0x3e16a7,_0x49becc){_0x49becc=_0x49becc||0xc8;return function(_0x1fd42d){if(_0x1fd42d){return _0x3e16a7[_0x3e08('0x1b')](_0x49becc)['json'](_0x1fd42d);}};}function respondWithFilteredResult(_0x5f3a6b,_0x11803b){return function(_0x10c847){if(_0x10c847){var _0xfd05fc=_0x10c847['count'],_0x111017=_0x11803b[_0x3e08('0x1d')],_0x14a140=_0x11803b[_0x3e08('0x1d')]+_0x11803b[_0x3e08('0x1e')],_0x4d57d0;if(_0x14a140>=_0xfd05fc){_0x14a140=_0xfd05fc;_0x4d57d0=0xc8;}else{_0x4d57d0=0xce;}_0x5f3a6b['status'](_0x4d57d0);return _0x5f3a6b['set'](_0x3e08('0x1f'),_0x111017+'-'+_0x14a140+'/'+_0xfd05fc)['json'](_0x10c847);}return null;};}function patchUpdates(_0x1112ac){return function(_0x36d3b5){try{jsonpatch[_0x3e08('0x20')](_0x36d3b5,_0x1112ac,!![]);}catch(_0x4cfa7a){return BPromise['reject'](_0x4cfa7a);}return _0x36d3b5[_0x3e08('0x21')]();};}function saveUpdates(_0x29d886,_0x3285b5){return function(_0x3d857e){if(_0x3d857e){return _0x3d857e['update'](_0x29d886)[_0x3e08('0x22')](function(_0x255049){return _0x255049;});}return null;};}function removeEntity(_0x5bbb4d,_0x2b7733){return function(_0x4b1db9){if(_0x4b1db9){return _0x4b1db9[_0x3e08('0x23')]()[_0x3e08('0x22')](function(){_0x5bbb4d[_0x3e08('0x1b')](0xcc)[_0x3e08('0x1c')]();});}};}function handleEntityNotFound(_0x4ae5eb,_0x10a84d){return function(_0x287333){if(!_0x287333){_0x4ae5eb['sendStatus'](0x194);}return _0x287333;};}function handleError(_0x32b9a6,_0xb8004e){_0xb8004e=_0xb8004e||0x1f4;return function(_0x5557d4){logger['error'](_0x5557d4[_0x3e08('0x24')]);if(_0x5557d4[_0x3e08('0x25')]){delete _0x5557d4['name'];}_0x32b9a6[_0x3e08('0x1b')](_0xb8004e)[_0x3e08('0x26')](_0x5557d4);};}exports[_0x3e08('0x27')]=function(_0x685528,_0x587d0b){var _0x1eeda4={},_0x59e31f={},_0x32ff93={'count':0x0,'rows':[]};var _0x2b5d39=db['VoiceQueue']['rawAttributes'];_0x59e31f[_0x3e08('0x28')]=_['keys'](_0x2b5d39);var _0x2496aa={'dateStart':_0x685528[_0x3e08('0x29')][_0x3e08('0x2a')],'dateEnd':_0x685528['query'][_0x3e08('0x2b')]};delete _0x685528['query']['dateStart'];delete _0x685528['query'][_0x3e08('0x2b')];_0x59e31f[_0x3e08('0x29')]=_[_0x3e08('0x2c')](_0x685528['query']);_0x59e31f[_0x3e08('0x2d')]=_[_0x3e08('0x2e')](_0x59e31f['model'],_0x59e31f[_0x3e08('0x29')]);_0x1eeda4[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x59e31f[_0x3e08('0x28')],qs[_0x3e08('0x30')](_0x685528[_0x3e08('0x29')][_0x3e08('0x30')]));_0x1eeda4[_0x3e08('0x2f')]=_0x1eeda4['attributes'][_0x3e08('0x31')]?_0x1eeda4[_0x3e08('0x2f')]:_0x59e31f['model'];if(!_0x685528['query']['hasOwnProperty'](_0x3e08('0x32'))){_0x1eeda4[_0x3e08('0x1e')]=qs['limit'](_0x685528[_0x3e08('0x29')][_0x3e08('0x1e')]);_0x1eeda4['offset']=qs['offset'](_0x685528[_0x3e08('0x29')][_0x3e08('0x1d')]);}_0x1eeda4[_0x3e08('0x33')]=qs['sort'](_0x685528[_0x3e08('0x29')][_0x3e08('0x34')]);_0x1eeda4['where']=qs[_0x3e08('0x2d')](_['pick'](_0x685528['query'],_0x59e31f[_0x3e08('0x2d')]));if(_0x2496aa['dateStart']){if(_0x2496aa['dateEnd']){_0x2496aa['dateEnd']=moment(_0x2496aa[_0x3e08('0x2b')])[_0x3e08('0x35')](0x1,_0x3e08('0x36'));}else{_0x2496aa[_0x3e08('0x2b')]=moment(_0x2496aa[_0x3e08('0x2a')])['add'](0x1,_0x3e08('0x36'));}_[_0x3e08('0x37')](_0x1eeda4[_0x3e08('0x38')],{'createdAt':{'$gte':_0x2496aa[_0x3e08('0x2a')],'$lte':_0x2496aa['dateEnd']}});}if(_0x685528[_0x3e08('0x29')][_0x3e08('0x39')]){_0x1eeda4[_0x3e08('0x38')]=_['merge'](_0x1eeda4[_0x3e08('0x38')],{'$or':_[_0x3e08('0x3a')](_0x1eeda4[_0x3e08('0x2f')],function(_0x17014a){var _0x1875d8={};_0x1875d8[_0x17014a]={'$like':'%'+_0x685528[_0x3e08('0x29')][_0x3e08('0x39')]+'%'};return _0x1875d8;})});}_0x1eeda4=_[_0x3e08('0x37')]({},_0x1eeda4,_0x685528['options']);var _0x149691={'where':_0x1eeda4[_0x3e08('0x38')]};return db[_0x3e08('0x3b')][_0x3e08('0x3c')](_0x149691)[_0x3e08('0x22')](function(_0x5f3033){_0x32ff93[_0x3e08('0x3c')]=_0x5f3033;if(_0x685528['query'][_0x3e08('0x3d')]){_0x1eeda4[_0x3e08('0x3e')]=[{'all':!![]}];}return db['VoiceQueue'][_0x3e08('0x3f')](_0x1eeda4);})[_0x3e08('0x22')](function(_0x11c19d){_0x32ff93['rows']=_0x11c19d;return _0x32ff93;})[_0x3e08('0x22')](respondWithFilteredResult(_0x587d0b,_0x1eeda4))[_0x3e08('0x40')](handleError(_0x587d0b,null));};exports['show']=function(_0x5dcfad,_0x165f51){var _0x4fa023={'raw':![],'where':{'id':_0x5dcfad[_0x3e08('0x41')]['id']}},_0x54a6c5={};_0x54a6c5[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db[_0x3e08('0x3b')]['rawAttributes']);_0x54a6c5['query']=_[_0x3e08('0x2c')](_0x5dcfad[_0x3e08('0x29')]);_0x54a6c5[_0x3e08('0x2d')]=_['intersection'](_0x54a6c5[_0x3e08('0x28')],_0x54a6c5[_0x3e08('0x29')]);_0x4fa023['attributes']=_['intersection'](_0x54a6c5[_0x3e08('0x28')],qs[_0x3e08('0x30')](_0x5dcfad['query']['fields']));_0x4fa023[_0x3e08('0x2f')]=_0x4fa023['attributes']['length']?_0x4fa023['attributes']:_0x54a6c5[_0x3e08('0x28')];if(_0x5dcfad[_0x3e08('0x29')][_0x3e08('0x3d')]){_0x4fa023['include']=[{'all':!![]}];}_0x4fa023=_['merge']({},_0x4fa023,_0x5dcfad[_0x3e08('0x42')]);return db[_0x3e08('0x3b')][_0x3e08('0x43')](_0x4fa023)[_0x3e08('0x22')](handleEntityNotFound(_0x165f51,null))[_0x3e08('0x22')](respondWithResult(_0x165f51,null))['catch'](handleError(_0x165f51,null));};exports[_0x3e08('0x44')]=function(_0x31063f,_0x32f09b){return db[_0x3e08('0x3b')][_0x3e08('0x44')](_0x31063f['body'],{})[_0x3e08('0x22')](respondWithResult(_0x32f09b,0xc9))[_0x3e08('0x40')](handleError(_0x32f09b,null));};exports['clone']=function(_0x4e21a0,_0x533ba7){var _0x1e598b={'raw':![],'where':{'id':_0x4e21a0[_0x3e08('0x41')]['id']}},_0x12ffd8={};_0x12ffd8['model']=_[_0x3e08('0x2c')](db[_0x3e08('0x3b')][_0x3e08('0x45')]);_0x1e598b[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x12ffd8[_0x3e08('0x28')],qs[_0x3e08('0x30')](_0x4e21a0['query'][_0x3e08('0x30')]));_0x1e598b[_0x3e08('0x2f')]=_0x1e598b[_0x3e08('0x2f')][_0x3e08('0x31')]?_0x1e598b['attributes']:_0x12ffd8[_0x3e08('0x28')];if(_0x4e21a0['query'][_0x3e08('0x3d')]){_0x1e598b[_0x3e08('0x3e')]=[{'all':!![]}];}_0x1e598b=_[_0x3e08('0x37')]({},_0x1e598b,_0x4e21a0['options']);return db['VoiceQueue'][_0x3e08('0x43')](_0x1e598b)[_0x3e08('0x22')](handleEntityNotFound(_0x533ba7,null))['then'](function(_0x4bfa71){if(_0x4bfa71){var _0x4dc249=_0x4bfa71['get']({'plain':!![]});_0x4dc249=qs[_0x3e08('0x46')](_0x4dc249,['id','createdAt',_0x3e08('0x47')]);_0x4e21a0['body']=_[_0x3e08('0x46')](_0x4e21a0[_0x3e08('0x48')],['id',_0x3e08('0x49'),_0x3e08('0x47')]);return db[_0x3e08('0x3b')]['create'](_[_0x3e08('0x37')](_0x4dc249,_0x4e21a0[_0x3e08('0x48')]),{'include':_0x4e21a0[_0x3e08('0x29')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x3e08('0x22')](respondWithResult(_0x533ba7,0xc9))[_0x3e08('0x40')](handleError(_0x533ba7,null));};exports['update']=function(_0x5b27d6,_0x299bb5){if(_0x5b27d6['body']['id']){delete _0x5b27d6[_0x3e08('0x48')]['id'];}return db[_0x3e08('0x3b')][_0x3e08('0x43')]({'where':{'id':_0x5b27d6[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x299bb5,null))[_0x3e08('0x22')](saveUpdates(_0x5b27d6[_0x3e08('0x48')],null))[_0x3e08('0x22')](respondWithResult(_0x299bb5,null))[_0x3e08('0x40')](handleError(_0x299bb5,null));};exports[_0x3e08('0x23')]=function(_0x2b7836,_0x4edb77){return db[_0x3e08('0x3b')][_0x3e08('0x43')]({'where':{'id':_0x2b7836[_0x3e08('0x41')]['id']}})['then'](handleEntityNotFound(_0x4edb77,null))['then'](removeEntity(_0x4edb77,null))[_0x3e08('0x40')](handleError(_0x4edb77,null));};exports['getHoppers']=function(_0x3a6bb9,_0x50cbf0,_0x46c63e){var _0x4e5d37={'raw':![],'where':{}};var _0x2a0ee5={};var _0x307427={'count':0x0,'rows':[]};return db[_0x3e08('0x3b')][_0x3e08('0x4a')]({'where':{'id':_0x3a6bb9[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x50cbf0,null))[_0x3e08('0x22')](function(_0x14148d){if(_0x14148d){_0x2a0ee5[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db[_0x3e08('0x4b')][_0x3e08('0x45')]);_0x2a0ee5[_0x3e08('0x29')]=_[_0x3e08('0x2c')](_0x3a6bb9[_0x3e08('0x29')]);_0x2a0ee5[_0x3e08('0x2d')]=_['intersection'](_0x2a0ee5[_0x3e08('0x28')],_0x2a0ee5['query']);_0x4e5d37['attributes']=_['intersection'](_0x2a0ee5[_0x3e08('0x28')],qs[_0x3e08('0x30')](_0x3a6bb9[_0x3e08('0x29')][_0x3e08('0x30')]));_0x4e5d37[_0x3e08('0x2f')]=_0x4e5d37['attributes'][_0x3e08('0x31')]?_0x4e5d37['attributes']:_0x2a0ee5[_0x3e08('0x28')];if(!_0x3a6bb9['query'][_0x3e08('0x4c')](_0x3e08('0x32'))){_0x4e5d37[_0x3e08('0x1e')]=qs['limit'](_0x3a6bb9[_0x3e08('0x29')][_0x3e08('0x1e')]);_0x4e5d37['offset']=qs[_0x3e08('0x1d')](_0x3a6bb9['query'][_0x3e08('0x1d')]);}_0x4e5d37[_0x3e08('0x33')]=qs[_0x3e08('0x34')](_0x3a6bb9[_0x3e08('0x29')][_0x3e08('0x34')]);_0x4e5d37[_0x3e08('0x38')]=qs[_0x3e08('0x2d')](_['pick'](_0x3a6bb9[_0x3e08('0x29')],_0x2a0ee5['filters']));_0x4e5d37[_0x3e08('0x38')]['VoiceQueueId']=_0x14148d['id'];if(_0x3a6bb9['query']['filter']){_0x4e5d37[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0x4e5d37['where'],{'$or':_['map'](_0x4e5d37['attributes'],function(_0x1d0037){var _0x18d7d9={};_0x18d7d9[_0x1d0037]={'$like':'%'+_0x3a6bb9['query']['filter']+'%'};return _0x18d7d9;})});}_0x4e5d37=_[_0x3e08('0x37')]({},_0x4e5d37,_0x3a6bb9[_0x3e08('0x42')]);return db[_0x3e08('0x4b')][_0x3e08('0x3c')]({'where':_0x4e5d37[_0x3e08('0x38')]})[_0x3e08('0x22')](function(_0x41dc13){_0x307427[_0x3e08('0x3c')]=_0x41dc13;if(_0x3a6bb9['query'][_0x3e08('0x3d')]){_0x4e5d37['include']=[{'all':!![]}];}return db['CmHopper'][_0x3e08('0x3f')](_0x4e5d37);})[_0x3e08('0x22')](function(_0x5196c5){_0x307427[_0x3e08('0x4d')]=_0x5196c5;return _0x307427;});}})[_0x3e08('0x22')](respondWithFilteredResult(_0x50cbf0,_0x4e5d37))[_0x3e08('0x40')](handleError(_0x50cbf0,null));};exports[_0x3e08('0x4e')]=function(_0x33712d,_0xa6dad8,_0x4961b3){var _0x5ae80a={'raw':!![],'where':{}};var _0x41ae90={};var _0xda58cc={'count':0x0,'rows':[]};return db[_0x3e08('0x3b')][_0x3e08('0x4a')]({'where':{'id':_0x33712d[_0x3e08('0x41')]['id']}})['then'](handleEntityNotFound(_0xa6dad8,null))[_0x3e08('0x22')](function(_0x3b5308){if(_0x3b5308){_0x41ae90[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db[_0x3e08('0x4f')][_0x3e08('0x45')]);_0x41ae90[_0x3e08('0x29')]=_['keys'](_0x33712d['query']);_0x41ae90[_0x3e08('0x2d')]=_[_0x3e08('0x2e')](_0x41ae90[_0x3e08('0x28')],_0x41ae90[_0x3e08('0x29')]);_0x5ae80a['attributes']=_[_0x3e08('0x2e')](_0x41ae90[_0x3e08('0x28')],qs['fields'](_0x33712d[_0x3e08('0x29')][_0x3e08('0x30')]));_0x5ae80a[_0x3e08('0x2f')]=_0x5ae80a[_0x3e08('0x2f')][_0x3e08('0x31')]?_0x5ae80a[_0x3e08('0x2f')]:_0x41ae90['model'];if(!_0x33712d[_0x3e08('0x29')]['hasOwnProperty'](_0x3e08('0x32'))){_0x5ae80a[_0x3e08('0x1e')]=qs['limit'](_0x33712d['query']['limit']);_0x5ae80a[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x33712d['query'][_0x3e08('0x1d')]);}_0x5ae80a[_0x3e08('0x33')]=qs[_0x3e08('0x34')](_0x33712d[_0x3e08('0x29')][_0x3e08('0x34')]);_0x5ae80a[_0x3e08('0x38')]=qs[_0x3e08('0x2d')](_[_0x3e08('0x50')](_0x33712d[_0x3e08('0x29')],_0x41ae90['filters']));_0x5ae80a[_0x3e08('0x38')][_0x3e08('0x51')]=_0x3b5308['id'];if(_0x33712d[_0x3e08('0x29')]['filter']){_0x5ae80a[_0x3e08('0x38')]=_['merge'](_0x5ae80a['where'],{'$or':_[_0x3e08('0x3a')](_0x5ae80a[_0x3e08('0x2f')],function(_0x2b70bd){var _0x412909={};_0x412909[_0x2b70bd]={'$like':'%'+_0x33712d['query'][_0x3e08('0x39')]+'%'};return _0x412909;})});}_0x5ae80a=_[_0x3e08('0x37')]({},_0x5ae80a,_0x33712d['options']);return db[_0x3e08('0x4f')][_0x3e08('0x3c')]({'where':_0x5ae80a[_0x3e08('0x38')]})[_0x3e08('0x22')](function(_0x440b87){_0xda58cc['count']=_0x440b87;if(_0x33712d['query'][_0x3e08('0x3d')]){_0x5ae80a[_0x3e08('0x3e')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x3e08('0x3f')](_0x5ae80a);})[_0x3e08('0x22')](function(_0x5917d8){_0xda58cc['rows']=_0x5917d8;return _0xda58cc;});}})['then'](respondWithFilteredResult(_0xa6dad8,_0x5ae80a))[_0x3e08('0x40')](handleError(_0xa6dad8,null));};exports[_0x3e08('0x52')]=function(_0x4c8291,_0x19d4d3,_0x342376){var _0x408552={'raw':!![],'where':{}};var _0x3e5727={};var _0x27f795={'count':0x0,'rows':[]};return db[_0x3e08('0x3b')][_0x3e08('0x4a')]({'where':{'id':_0x4c8291[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x19d4d3,null))[_0x3e08('0x22')](function(_0x598b6a){if(_0x598b6a){_0x3e5727[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db[_0x3e08('0x53')][_0x3e08('0x45')]);_0x3e5727[_0x3e08('0x29')]=_['keys'](_0x4c8291[_0x3e08('0x29')]);_0x3e5727['filters']=_['intersection'](_0x3e5727[_0x3e08('0x28')],_0x3e5727[_0x3e08('0x29')]);_0x408552[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x3e5727['model'],qs['fields'](_0x4c8291[_0x3e08('0x29')]['fields']));_0x408552[_0x3e08('0x2f')]=_0x408552[_0x3e08('0x2f')]['length']?_0x408552[_0x3e08('0x2f')]:_0x3e5727[_0x3e08('0x28')];if(!_0x4c8291[_0x3e08('0x29')][_0x3e08('0x4c')](_0x3e08('0x32'))){_0x408552[_0x3e08('0x1e')]=qs[_0x3e08('0x1e')](_0x4c8291['query']['limit']);_0x408552[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x4c8291[_0x3e08('0x29')][_0x3e08('0x1d')]);}_0x408552[_0x3e08('0x33')]=qs[_0x3e08('0x34')](_0x4c8291[_0x3e08('0x29')][_0x3e08('0x34')]);_0x408552[_0x3e08('0x38')]=qs['filters'](_[_0x3e08('0x50')](_0x4c8291[_0x3e08('0x29')],_0x3e5727[_0x3e08('0x2d')]));_0x408552[_0x3e08('0x38')][_0x3e08('0x51')]=_0x598b6a['id'];if(_0x4c8291[_0x3e08('0x29')]['filter']){_0x408552[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0x408552[_0x3e08('0x38')],{'$or':_[_0x3e08('0x3a')](_0x408552[_0x3e08('0x2f')],function(_0x48930f){var _0x34c66e={};_0x34c66e[_0x48930f]={'$like':'%'+_0x4c8291[_0x3e08('0x29')]['filter']+'%'};return _0x34c66e;})});}_0x408552=_[_0x3e08('0x37')]({},_0x408552,_0x4c8291['options']);return db[_0x3e08('0x53')][_0x3e08('0x3c')]({'where':_0x408552[_0x3e08('0x38')]})['then'](function(_0x34c21c){_0x27f795[_0x3e08('0x3c')]=_0x34c21c;if(_0x4c8291[_0x3e08('0x29')][_0x3e08('0x3d')]){_0x408552[_0x3e08('0x3e')]=[{'all':!![]}];}return db[_0x3e08('0x53')][_0x3e08('0x3f')](_0x408552);})[_0x3e08('0x22')](function(_0x4ef86){_0x27f795['rows']=_0x4ef86;return _0x27f795;});}})[_0x3e08('0x22')](respondWithFilteredResult(_0x19d4d3,_0x408552))[_0x3e08('0x40')](handleError(_0x19d4d3,null));};exports[_0x3e08('0x54')]=function(_0x518cc8,_0x1b14f5,_0x41c810){var _0xb7727={'raw':!![],'where':{}};var _0xa37e70={};var _0x19e38b={'count':0x0,'rows':[]};return db[_0x3e08('0x3b')]['findOne']({'where':{'id':_0x518cc8[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x1b14f5,null))[_0x3e08('0x22')](function(_0x1973f8){if(_0x1973f8){_0xa37e70['model']=_[_0x3e08('0x2c')](db[_0x3e08('0x55')]['rawAttributes']);_0xa37e70['query']=_[_0x3e08('0x2c')](_0x518cc8[_0x3e08('0x29')]);_0xa37e70[_0x3e08('0x2d')]=_[_0x3e08('0x2e')](_0xa37e70['model'],_0xa37e70[_0x3e08('0x29')]);_0xb7727['attributes']=_['intersection'](_0xa37e70[_0x3e08('0x28')],qs['fields'](_0x518cc8[_0x3e08('0x29')][_0x3e08('0x30')]));_0xb7727[_0x3e08('0x2f')]=_0xb7727[_0x3e08('0x2f')][_0x3e08('0x31')]?_0xb7727[_0x3e08('0x2f')]:_0xa37e70[_0x3e08('0x28')];if(!_0x518cc8[_0x3e08('0x29')][_0x3e08('0x4c')]('nolimit')){_0xb7727[_0x3e08('0x1e')]=qs[_0x3e08('0x1e')](_0x518cc8[_0x3e08('0x29')][_0x3e08('0x1e')]);_0xb7727[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x518cc8[_0x3e08('0x29')][_0x3e08('0x1d')]);}_0xb7727[_0x3e08('0x33')]=qs['sort'](_0x518cc8['query'][_0x3e08('0x34')]);_0xb7727['where']=qs[_0x3e08('0x2d')](_[_0x3e08('0x50')](_0x518cc8[_0x3e08('0x29')],_0xa37e70[_0x3e08('0x2d')]));_0xb7727[_0x3e08('0x38')][_0x3e08('0x51')]=_0x1973f8['id'];if(_0x518cc8['query']['filter']){_0xb7727[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0xb7727[_0x3e08('0x38')],{'$or':_[_0x3e08('0x3a')](_0xb7727[_0x3e08('0x2f')],function(_0x1de347){var _0x3ba1d1={};_0x3ba1d1[_0x1de347]={'$like':'%'+_0x518cc8[_0x3e08('0x29')][_0x3e08('0x39')]+'%'};return _0x3ba1d1;})});}_0xb7727=_['merge']({},_0xb7727,_0x518cc8['options']);return db[_0x3e08('0x55')][_0x3e08('0x3c')]({'where':_0xb7727[_0x3e08('0x38')]})[_0x3e08('0x22')](function(_0x531976){_0x19e38b[_0x3e08('0x3c')]=_0x531976;if(_0x518cc8['query'][_0x3e08('0x3d')]){_0xb7727[_0x3e08('0x3e')]=[{'all':!![]}];}return db['CmHopperBlack'][_0x3e08('0x3f')](_0xb7727);})[_0x3e08('0x22')](function(_0x430dc6){_0x19e38b[_0x3e08('0x4d')]=_0x430dc6;return _0x19e38b;});}})[_0x3e08('0x22')](respondWithFilteredResult(_0x1b14f5,_0xb7727))[_0x3e08('0x40')](handleError(_0x1b14f5,null));};exports[_0x3e08('0x56')]=function(_0x2ab780,_0x1dfa6d,_0x3c1c76){var _0x1de140={};var _0x3bbab5={};var _0x31e5ee;var _0x3aab88;return db[_0x3e08('0x3b')][_0x3e08('0x4a')]({'where':{'id':_0x2ab780['params']['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x1dfa6d,null))[_0x3e08('0x22')](function(_0x467bcd){if(_0x467bcd){_0x31e5ee=_0x467bcd;_0x3bbab5[_0x3e08('0x28')]=_['keys'](db['Team'][_0x3e08('0x45')]);_0x3bbab5['query']=_['keys'](_0x2ab780['query']);_0x3bbab5['filters']=_[_0x3e08('0x2e')](_0x3bbab5[_0x3e08('0x28')],_0x3bbab5[_0x3e08('0x29')]);_0x1de140[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x3bbab5['model'],qs[_0x3e08('0x30')](_0x2ab780[_0x3e08('0x29')][_0x3e08('0x30')]));_0x1de140['attributes']=_0x1de140[_0x3e08('0x2f')][_0x3e08('0x31')]?_0x1de140[_0x3e08('0x2f')]:_0x3bbab5[_0x3e08('0x28')];_0x1de140[_0x3e08('0x33')]=qs[_0x3e08('0x34')](_0x2ab780[_0x3e08('0x29')][_0x3e08('0x34')]);_0x1de140[_0x3e08('0x38')]=qs[_0x3e08('0x2d')](_[_0x3e08('0x50')](_0x2ab780[_0x3e08('0x29')],_0x3bbab5['filters']));if(_0x2ab780[_0x3e08('0x29')][_0x3e08('0x39')]){_0x1de140[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0x1de140['where'],{'$or':_[_0x3e08('0x3a')](_0x1de140['attributes'],function(_0x2be36c){var _0x8d6364={};_0x8d6364[_0x2be36c]={'$like':'%'+_0x2ab780[_0x3e08('0x29')][_0x3e08('0x39')]+'%'};return _0x8d6364;})});}_0x1de140=_[_0x3e08('0x37')]({},_0x1de140,_0x2ab780[_0x3e08('0x42')]);return _0x31e5ee[_0x3e08('0x56')](_0x1de140);}})[_0x3e08('0x22')](function(_0x209237){if(_0x209237){_0x3aab88=_0x209237[_0x3e08('0x31')];if(!_0x2ab780[_0x3e08('0x29')][_0x3e08('0x4c')](_0x3e08('0x32'))){_0x1de140[_0x3e08('0x1e')]=qs[_0x3e08('0x1e')](_0x2ab780[_0x3e08('0x29')]['limit']);_0x1de140[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x2ab780[_0x3e08('0x29')][_0x3e08('0x1d')]);}return _0x31e5ee['getTeams'](_0x1de140);}})[_0x3e08('0x22')](function(_0x95583){if(_0x95583){return _0x95583?{'count':_0x3aab88,'rows':_0x95583}:null;}})[_0x3e08('0x22')](respondWithResult(_0x1dfa6d,null))[_0x3e08('0x40')](handleError(_0x1dfa6d,null));};exports[_0x3e08('0x57')]=function(_0x3fc450,_0x23dfcb,_0x14dbb0){var _0x3a494a=[];var _0x2af391;return db['Team'][_0x3e08('0x3f')]({'where':{'id':_0x3fc450[_0x3e08('0x48')][_0x3e08('0x58')]},'attributes':['id'],'include':[{'model':db[_0x3e08('0x59')],'as':_0x3e08('0x5a'),'attributes':['id'],'raw':!![]}]})[_0x3e08('0x22')](function(_0x2ac708){if(_0x2ac708){for(var _0x43a8ac=0x0;_0x43a8ac<_0x2ac708[_0x3e08('0x31')];_0x43a8ac+=0x1){for(var _0x539a31=0x0;_0x539a31<_0x2ac708[_0x43a8ac][_0x3e08('0x5a')][_0x3e08('0x31')];_0x539a31+=0x1){_0x3a494a=_[_0x3e08('0x5b')](_0x3a494a,[_0x2ac708[_0x43a8ac][_0x3e08('0x5a')][_0x539a31]['id']]);}}return _0x3a494a;}})[_0x3e08('0x22')](function(_0x2cbd18){if(_0x2cbd18){return db[_0x3e08('0x3b')][_0x3e08('0x43')]({'where':{'id':_0x3fc450[_0x3e08('0x41')]['id']}});}})[_0x3e08('0x22')](function(_0x373226){if(_0x373226){_0x2af391=_0x373226;return _0x2af391[_0x3e08('0x5c')](_0x3a494a,{'penalty':_0x3fc450[_0x3e08('0x48')][_0x3e08('0x5d')]});}})[_0x3e08('0x22')](function(_0x25808a){if(_0x25808a){return _0x2af391[_0x3e08('0x57')](_0x3fc450[_0x3e08('0x48')][_0x3e08('0x58')]);}})['then'](handleEntityNotFound(_0x23dfcb,null))['then'](respondWithStatusCode(_0x23dfcb,null))[_0x3e08('0x40')](handleError(_0x23dfcb,null));};exports[_0x3e08('0x5e')]=function(_0x32a6f2,_0x139fed,_0x59fc16){var _0x5533d8=[];var _0x3d148c;return db[_0x3e08('0x5f')][_0x3e08('0x3f')]({'where':{'id':_0x32a6f2[_0x3e08('0x29')][_0x3e08('0x58')]},'attributes':['id'],'include':[{'model':db[_0x3e08('0x59')],'as':_0x3e08('0x5a'),'attributes':['id'],'raw':!![]}]})[_0x3e08('0x22')](function(_0x5ad3c3){if(_0x5ad3c3){for(var _0xd10bde=0x0;_0xd10bde<_0x5ad3c3[_0x3e08('0x31')];_0xd10bde+=0x1){for(var _0x4d127d=0x0;_0x4d127d<_0x5ad3c3[_0xd10bde][_0x3e08('0x5a')][_0x3e08('0x31')];_0x4d127d+=0x1){_0x5533d8=_['union'](_0x5533d8,[_0x5ad3c3[_0xd10bde][_0x3e08('0x5a')][_0x4d127d]['id']]);}}return _0x5533d8;}})[_0x3e08('0x22')](function(_0x1bec89){if(_0x1bec89){return db[_0x3e08('0x3b')][_0x3e08('0x43')]({'where':{'id':_0x32a6f2[_0x3e08('0x41')]['id']}});}})['then'](function(_0x4f9961){if(_0x4f9961){_0x3d148c=_0x4f9961;return _0x3d148c[_0x3e08('0x60')](_0x5533d8);}})['then'](function(_0x2a2d12){if(_0x3d148c){return _0x3d148c['removeTeams'](_0x32a6f2['query'][_0x3e08('0x58')]);}})[_0x3e08('0x22')](handleEntityNotFound(_0x139fed,null))[_0x3e08('0x22')](respondWithStatusCode(_0x139fed,null))['catch'](handleError(_0x139fed,null));};exports[_0x3e08('0x5c')]=function(_0x569c80,_0x179955,_0x50f2a9){var _0x305b7a,_0x17605f;return db['VoiceQueue'][_0x3e08('0x43')]({'where':{'id':_0x569c80[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x179955,null))[_0x3e08('0x22')](function(_0xc3f748){if(_0xc3f748){_0x17605f=_0xc3f748;return _0xc3f748[_0x3e08('0x5c')](_0x569c80[_0x3e08('0x48')][_0x3e08('0x58')],_['omit'](_0x569c80['body'],[_0x3e08('0x58'),'id'])||{})[_0x3e08('0x61')](function(_0x41477f){for(var _0x4689df=0x0;_0x4689df<_0x569c80[_0x3e08('0x48')][_0x3e08('0x58')][_0x3e08('0x31')];_0x4689df+=0x1){socket[_0x3e08('0x62')](_0x3e08('0x63'),{'UserId':_0x569c80['body'][_0x3e08('0x58')][_0x4689df],'VoiceQueueId':_0x569c80[_0x3e08('0x41')]['id']});}return _0x41477f;});}})['then'](function(_0x429248){_0x305b7a=_0x429248||[];if(_0x17605f){return db[_0x3e08('0x59')][_0x3e08('0x3f')]({'where':{'id':_0x569c80[_0x3e08('0x48')]['ids']},'attributes':['id',_0x3e08('0x25'),'loginInPause',_0x3e08('0x64'),_0x3e08('0x65')],'raw':!![]});}})[_0x3e08('0x22')](function(_0x3eb722){if(_0x3eb722&&_0x3eb722[_0x3e08('0x31')]){var _0x29bd4e=[];for(var _0x545aed=0x0;_0x545aed<_0x3eb722[_0x3e08('0x31')];_0x545aed++){_0x29bd4e['push'](db[_0x3e08('0x66')][_0x3e08('0x67')]({'membername':_0x3eb722[_0x545aed][_0x3e08('0x25')],'UserId':_0x3eb722[_0x545aed]['id'],'queue_name':_0x17605f[_0x3e08('0x25')],'VoiceQueueId':_0x17605f['id'],'interface':_[_0x3e08('0x68')](_0x3eb722[_0x545aed][_0x3e08('0x65')])?util[_0x3e08('0x69')](_0x3e08('0x6a'),_0x3eb722[_0x545aed][_0x3e08('0x25')]):_0x3eb722[_0x545aed]['interface'],'paused':_0x3eb722[_0x545aed]['voicePause']||![],'penalty':_0x569c80['body']['penalty']||0x0}));}return BPromise[_0x3e08('0x6b')](_0x29bd4e);}})[_0x3e08('0x22')](function(_0x5770c0){return _0x305b7a;})[_0x3e08('0x22')](respondWithResult(_0x179955,null))[_0x3e08('0x40')](handleError(_0x179955,null));};exports[_0x3e08('0x60')]=function(_0x5c8637,_0x2bc6f4,_0x258caf){var _0x1990b2;return db['VoiceQueue'][_0x3e08('0x43')]({'where':{'id':_0x5c8637['params']['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x2bc6f4,null))['then'](function(_0x47e2af){if(_0x47e2af){return _0x47e2af['removeAgents'](_0x5c8637[_0x3e08('0x29')][_0x3e08('0x58')])[_0x3e08('0x22')](function(_0xda44ca){if(_['isArray'](_0x5c8637['query'][_0x3e08('0x58')])){for(var _0xbf550b=0x0;_0xbf550b<_0x5c8637['query']['ids'][_0x3e08('0x31')];_0xbf550b+=0x1){socket[_0x3e08('0x62')]('userVoiceQueue:remove',{'UserId':_0x5c8637[_0x3e08('0x29')][_0x3e08('0x58')][_0xbf550b],'VoiceQueueId':_0x5c8637['params']['id']});}}else{socket[_0x3e08('0x62')](_0x3e08('0x6c'),{'UserId':_0x5c8637[_0x3e08('0x29')][_0x3e08('0x58')],'VoiceQueueId':_0x5c8637[_0x3e08('0x41')]['id']});}});}})['then'](function(_0x545f31){if(_0x5c8637[_0x3e08('0x29')][_0x3e08('0x6d')]){_0x1990b2=_0x545f31;return db[_0x3e08('0x66')][_0x3e08('0x23')]({'where':{'VoiceQueueId':_0x5c8637[_0x3e08('0x41')]['id'],'UserId':_0x5c8637[_0x3e08('0x29')][_0x3e08('0x58')]}})[_0x3e08('0x22')](function(){return _0x1990b2;});}})[_0x3e08('0x22')](respondWithStatusCode(_0x2bc6f4,null))['catch'](handleError(_0x2bc6f4,null));};exports[_0x3e08('0x6e')]=function(_0xa76507,_0x5f5a75,_0xaa0f04){var _0x409497={};var _0x39e61a={};var _0x2768e6;var _0x26a62e;return db[_0x3e08('0x3b')][_0x3e08('0x4a')]({'where':{'id':_0xa76507['params']['id']}})['then'](handleEntityNotFound(_0x5f5a75,null))['then'](function(_0x547d65){if(_0x547d65){_0x2768e6=_0x547d65;_0x39e61a[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db[_0x3e08('0x59')][_0x3e08('0x45')]);_0x39e61a['query']=_[_0x3e08('0x2c')](_0xa76507[_0x3e08('0x29')]);_0x39e61a['filters']=_[_0x3e08('0x2e')](_0x39e61a[_0x3e08('0x28')],_0x39e61a['query']);_0x409497[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x39e61a[_0x3e08('0x28')],qs[_0x3e08('0x30')](_0xa76507[_0x3e08('0x29')][_0x3e08('0x30')]));_0x409497[_0x3e08('0x2f')]=_0x409497['attributes'][_0x3e08('0x31')]?_0x409497[_0x3e08('0x2f')]:_0x39e61a[_0x3e08('0x28')];_0x409497[_0x3e08('0x33')]=qs['sort'](_0xa76507[_0x3e08('0x29')][_0x3e08('0x34')]);_0x409497[_0x3e08('0x38')]=qs[_0x3e08('0x2d')](_[_0x3e08('0x50')](_0xa76507[_0x3e08('0x29')],_0x39e61a[_0x3e08('0x2d')]));if(_0xa76507['query'][_0x3e08('0x39')]){_0x409497[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0x409497['where'],{'$or':_[_0x3e08('0x3a')](_0x409497[_0x3e08('0x2f')],function(_0x79b1c7){var _0x5c2c53={};_0x5c2c53[_0x79b1c7]={'$like':'%'+_0xa76507['query'][_0x3e08('0x39')]+'%'};return _0x5c2c53;})});}_0x409497=_[_0x3e08('0x37')]({},_0x409497,_0xa76507['options']);return _0x2768e6[_0x3e08('0x6e')](_0x409497);}})[_0x3e08('0x22')](function(_0x255812){if(_0x255812){_0x26a62e=_0x255812[_0x3e08('0x31')];if(!_0xa76507[_0x3e08('0x29')][_0x3e08('0x4c')]('nolimit')){_0x409497[_0x3e08('0x1e')]=qs[_0x3e08('0x1e')](_0xa76507['query'][_0x3e08('0x1e')]);_0x409497[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0xa76507[_0x3e08('0x29')]['offset']);}return _0x2768e6[_0x3e08('0x6e')](_0x409497);}})['then'](function(_0x465511){if(_0x465511){return _0x465511?{'count':_0x26a62e,'rows':_0x465511}:null;}})['then'](respondWithResult(_0x5f5a75,null))[_0x3e08('0x40')](handleError(_0x5f5a75,null));};exports[_0x3e08('0x6f')]=function(_0x1d1a7c,_0x3d3ce3,_0x31de1b){var _0x242ded={};var _0x512656={};var _0x149ccf;var _0x256632;return db[_0x3e08('0x3b')]['findOne']({'where':{'id':_0x1d1a7c[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x3d3ce3,null))[_0x3e08('0x22')](function(_0x49a327){if(_0x49a327){_0x149ccf=_0x49a327;_0x512656['model']=_[_0x3e08('0x2c')](db[_0x3e08('0x66')][_0x3e08('0x45')]);_0x512656[_0x3e08('0x29')]=_['keys'](_0x1d1a7c[_0x3e08('0x29')]);_0x512656[_0x3e08('0x2d')]=_[_0x3e08('0x2e')](_0x512656[_0x3e08('0x28')],_0x512656[_0x3e08('0x29')]);_0x242ded[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x512656['model'],qs['fields'](_0x1d1a7c[_0x3e08('0x29')][_0x3e08('0x30')]));_0x242ded[_0x3e08('0x2f')]=_0x242ded['attributes'][_0x3e08('0x31')]?_0x242ded['attributes']:_0x512656[_0x3e08('0x28')];_0x242ded['order']=qs[_0x3e08('0x34')](_0x1d1a7c[_0x3e08('0x29')][_0x3e08('0x34')]);_0x242ded[_0x3e08('0x38')]=qs['filters'](_[_0x3e08('0x50')](_0x1d1a7c[_0x3e08('0x29')],_0x512656[_0x3e08('0x2d')]));if(_0x1d1a7c['query'][_0x3e08('0x39')]){_0x242ded[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0x242ded[_0x3e08('0x38')],{'$or':_['map'](_0x242ded[_0x3e08('0x2f')],function(_0x1d7cdc){var _0x53eec8={};_0x53eec8[_0x1d7cdc]={'$like':'%'+_0x1d1a7c[_0x3e08('0x29')]['filter']+'%'};return _0x53eec8;})});}_0x242ded=_[_0x3e08('0x37')]({},_0x242ded,_0x1d1a7c[_0x3e08('0x42')]);return _0x149ccf['getMembers'](_0x242ded);}})['then'](function(_0x33327d){if(_0x33327d){_0x256632=_0x33327d[_0x3e08('0x31')];if(!_0x1d1a7c[_0x3e08('0x29')][_0x3e08('0x4c')](_0x3e08('0x32'))){_0x242ded[_0x3e08('0x1e')]=qs[_0x3e08('0x1e')](_0x1d1a7c[_0x3e08('0x29')][_0x3e08('0x1e')]);_0x242ded[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x1d1a7c[_0x3e08('0x29')][_0x3e08('0x1d')]);}return _0x149ccf[_0x3e08('0x6f')](_0x242ded);}})[_0x3e08('0x22')](function(_0x539eaa){return _0x539eaa?{'count':_0x256632,'rows':_0x539eaa}:null;})[_0x3e08('0x22')](respondWithResult(_0x3d3ce3,null))[_0x3e08('0x40')](handleError(_0x3d3ce3,null));};exports[_0x3e08('0x70')]=function(_0x1b8933,_0x99672f,_0x578f15){var _0x46b413={};var _0x21055c={};var _0x10ee10;var _0x4c6982;return db['VoiceQueue'][_0x3e08('0x4a')]({'where':{'id':_0x1b8933['params']['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x99672f,null))[_0x3e08('0x22')](function(_0x358777){if(_0x358777){_0x10ee10=_0x358777;_0x21055c[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db['CmList'][_0x3e08('0x45')]);_0x21055c[_0x3e08('0x29')]=_['keys'](_0x1b8933[_0x3e08('0x29')]);_0x21055c[_0x3e08('0x2d')]=_[_0x3e08('0x2e')](_0x21055c['model'],_0x21055c['query']);_0x46b413[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x21055c[_0x3e08('0x28')],qs['fields'](_0x1b8933[_0x3e08('0x29')][_0x3e08('0x30')]));_0x46b413[_0x3e08('0x2f')]=_0x46b413[_0x3e08('0x2f')][_0x3e08('0x31')]?_0x46b413[_0x3e08('0x2f')]:_0x21055c['model'];_0x46b413[_0x3e08('0x33')]=qs['sort'](_0x1b8933[_0x3e08('0x29')][_0x3e08('0x34')]);_0x46b413[_0x3e08('0x38')]=qs[_0x3e08('0x2d')](_['pick'](_0x1b8933[_0x3e08('0x29')],_0x21055c[_0x3e08('0x2d')]));if(_0x1b8933[_0x3e08('0x29')][_0x3e08('0x39')]){_0x46b413[_0x3e08('0x38')]=_[_0x3e08('0x37')](_0x46b413[_0x3e08('0x38')],{'$or':_[_0x3e08('0x3a')](_0x46b413[_0x3e08('0x2f')],function(_0x2619e4){var _0x2ce7e8={};_0x2ce7e8[_0x2619e4]={'$like':'%'+_0x1b8933[_0x3e08('0x29')]['filter']+'%'};return _0x2ce7e8;})});}_0x46b413=_[_0x3e08('0x37')]({},_0x46b413,_0x1b8933[_0x3e08('0x42')]);return _0x10ee10[_0x3e08('0x70')](_0x46b413);}})['then'](function(_0x3c2982){if(_0x3c2982){_0x4c6982=_0x3c2982[_0x3e08('0x31')];if(!_0x1b8933[_0x3e08('0x29')][_0x3e08('0x4c')](_0x3e08('0x32'))){_0x46b413[_0x3e08('0x1e')]=qs[_0x3e08('0x1e')](_0x1b8933[_0x3e08('0x29')][_0x3e08('0x1e')]);_0x46b413[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x1b8933['query']['offset']);}return _0x10ee10[_0x3e08('0x70')](_0x46b413);}})[_0x3e08('0x22')](function(_0x40314c){if(_0x40314c){return _0x40314c?{'count':_0x4c6982,'rows':_0x40314c}:null;}})[_0x3e08('0x22')](respondWithResult(_0x99672f,null))[_0x3e08('0x40')](handleError(_0x99672f,null));};exports[_0x3e08('0x71')]=function(_0x1958ef,_0x572c22,_0xd9fb2f){var _0x3f4490,_0x50f528;return db[_0x3e08('0x3b')]['find']({'where':{'id':_0x1958ef[_0x3e08('0x41')]['id']}})['then'](handleEntityNotFound(_0x572c22,null))[_0x3e08('0x22')](function(_0x509da1){if(_0x509da1){_0x50f528=_0x509da1;return _0x509da1['addLists'](_0x1958ef[_0x3e08('0x48')][_0x3e08('0x58')],_[_0x3e08('0x46')](_0x1958ef['body'],[_0x3e08('0x58'),'id'])||{});}return null;})[_0x3e08('0x61')](function(_0x597c16){var _0x305ad0;_0x3f4490=_0x597c16||[];var _0x48b20f=[];if(_0x597c16){for(var _0xa73ae2=0x0;_0xa73ae2<_0x597c16[_0x3e08('0x31')];_0xa73ae2+=0x1){var _0x22bb14=_0x597c16[_0xa73ae2][_0x3e08('0x72')]({'plain':!![]});_0x50f528['dialCheckDuplicateType']=_0x1958ef[_0x3e08('0x48')][_0x3e08('0x73')]?_0x1958ef[_0x3e08('0x48')][_0x3e08('0x73')]:_0x50f528[_0x3e08('0x73')];switch(_0x50f528['dialCheckDuplicateType']){case _0x3e08('0x74'):_0x305ad0=squel[_0x3e08('0x75')]()['into'](_0x3e08('0x76'))['fromQuery']([_0x3e08('0x77'),_0x3e08('0x78'),_0x3e08('0x79'),_0x3e08('0x7a'),'VoiceQueueId',_0x3e08('0x49'),_0x3e08('0x47')],squel[_0x3e08('0x7b')]()[_0x3e08('0x7c')](_0x3e08('0x77'),_0x3e08('0x77'))[_0x3e08('0x7c')](_0x3e08('0x7d'),_0x3e08('0x78'))[_0x3e08('0x7c')]('id',_0x3e08('0x79'))[_0x3e08('0x7c')](_0x22bb14[_0x3e08('0x7e')]['toString'](),_0x3e08('0x7a'))[_0x3e08('0x7c')](_0x1958ef['params']['id'][_0x3e08('0x7f')](),_0x3e08('0x51'))[_0x3e08('0x7c')]('NOW()',_0x3e08('0x49'))['field'](_0x3e08('0x7d'),_0x3e08('0x47'))['from'](_0x3e08('0x80'))[_0x3e08('0x38')](_0x3e08('0x81'))[_0x3e08('0x38')]('ListId\x20=\x20?',_0x22bb14[_0x3e08('0x7e')][_0x3e08('0x7f')]())[_0x3e08('0x38')](_0x3e08('0x82'))[_0x3e08('0x38')]('phone\x20NOT\x20IN\x20(?)',squel[_0x3e08('0x7b')]()[_0x3e08('0x7c')]('calleridnum')[_0x3e08('0x83')](_0x3e08('0x84'))[_0x3e08('0x38')](_0x3e08('0x85'),_0x1958ef[_0x3e08('0x41')]['id'][_0x3e08('0x7f')]()))['where'](_0x3e08('0x86'),squel['select']()['field'](_0x3e08('0x77'))[_0x3e08('0x83')](_0x3e08('0x76'))['where'](_0x3e08('0x85'),_0x1958ef[_0x3e08('0x41')]['id'][_0x3e08('0x7f')]())))['toString']();break;case'onlyIfOpen':_0x305ad0=squel[_0x3e08('0x75')]()[_0x3e08('0x87')](_0x3e08('0x76'))[_0x3e08('0x88')]([_0x3e08('0x77'),_0x3e08('0x78'),_0x3e08('0x79'),_0x3e08('0x7a'),'VoiceQueueId',_0x3e08('0x49'),'updatedAt'],squel[_0x3e08('0x7b')]()['field'](_0x3e08('0x77'),_0x3e08('0x77'))['field'](_0x3e08('0x7d'),_0x3e08('0x78'))[_0x3e08('0x7c')]('id',_0x3e08('0x79'))['field'](_0x22bb14[_0x3e08('0x7e')]['toString'](),_0x3e08('0x7a'))[_0x3e08('0x7c')](_0x1958ef[_0x3e08('0x41')]['id'][_0x3e08('0x7f')](),_0x3e08('0x51'))[_0x3e08('0x7c')](_0x3e08('0x7d'),'createdAt')[_0x3e08('0x7c')](_0x3e08('0x7d'),'updatedAt')['from'](_0x3e08('0x80'))[_0x3e08('0x38')](_0x3e08('0x81'))[_0x3e08('0x38')](_0x3e08('0x89'),_0x22bb14[_0x3e08('0x7e')][_0x3e08('0x7f')]())[_0x3e08('0x38')]('phone\x20IS\x20NOT\x20NULL')[_0x3e08('0x38')](_0x3e08('0x86'),squel['select']()[_0x3e08('0x7c')](_0x3e08('0x77'))[_0x3e08('0x83')]('cm_hopper')[_0x3e08('0x38')](_0x3e08('0x85'),_0x1958ef[_0x3e08('0x41')]['id'][_0x3e08('0x7f')]())))[_0x3e08('0x7f')]();break;default:_0x305ad0=squel[_0x3e08('0x75')]()['into']('cm_hopper')[_0x3e08('0x88')](['phone',_0x3e08('0x78'),_0x3e08('0x79'),'ListId',_0x3e08('0x51'),_0x3e08('0x49'),_0x3e08('0x47')],squel[_0x3e08('0x7b')]()['field'](_0x3e08('0x77'),'phone')[_0x3e08('0x7c')](_0x3e08('0x7d'),_0x3e08('0x78'))[_0x3e08('0x7c')]('id',_0x3e08('0x79'))['field'](_0x22bb14['CmListId'][_0x3e08('0x7f')](),_0x3e08('0x7a'))[_0x3e08('0x7c')](_0x1958ef[_0x3e08('0x41')]['id'][_0x3e08('0x7f')](),'VoiceQueueId')[_0x3e08('0x7c')](_0x3e08('0x7d'),_0x3e08('0x49'))[_0x3e08('0x7c')](_0x3e08('0x7d'),'updatedAt')[_0x3e08('0x83')](_0x3e08('0x80'))[_0x3e08('0x38')](_0x3e08('0x81'))[_0x3e08('0x38')]('ListId\x20=\x20?',_0x22bb14[_0x3e08('0x7e')][_0x3e08('0x7f')]())['where'](_0x3e08('0x82')))['toString']();}_0x48b20f[_0x3e08('0x8a')](db[_0x3e08('0x8b')][_0x3e08('0x29')](_0x305ad0));}return BPromise[_0x3e08('0x6b')](_0x48b20f);}})[_0x3e08('0x22')](function(){return _0x3f4490;})[_0x3e08('0x22')](respondWithResult(_0x572c22,null))[_0x3e08('0x40')](handleError(_0x572c22,null));};exports['removeLists']=function(_0x3bb7d7,_0x405320,_0xb0a28a){var _0xbe5a3d;return db[_0x3e08('0x3b')][_0x3e08('0x43')]({'where':{'id':_0x3bb7d7['params']['id']}})['then'](handleEntityNotFound(_0x405320,null))[_0x3e08('0x22')](function(_0x222196){if(_0x222196){return _0x222196[_0x3e08('0x8c')](_0x3bb7d7['query'][_0x3e08('0x58')]);}})['then'](function(_0x1cea4a){if(_0x1cea4a){_0xbe5a3d=_0x1cea4a;return db[_0x3e08('0x4b')][_0x3e08('0x23')]({'where':{'ListId':_0x3bb7d7[_0x3e08('0x29')]['ids'],'VoiceQueueId':_0x3bb7d7[_0x3e08('0x41')]['id']}})['then'](function(){return _0xbe5a3d;});}})['then'](respondWithStatusCode(_0x405320,null))[_0x3e08('0x40')](handleError(_0x405320,null));};exports[_0x3e08('0x8d')]=function(_0x31c1a5,_0x261c12,_0x39ad72){var _0x2f837b={};var _0x45eadc={};var _0x358413;var _0x5a42ad;return db[_0x3e08('0x3b')][_0x3e08('0x4a')]({'where':{'id':_0x31c1a5[_0x3e08('0x41')]['id']}})['then'](handleEntityNotFound(_0x261c12,null))[_0x3e08('0x22')](function(_0xec3a71){if(_0xec3a71){_0x358413=_0xec3a71;_0x45eadc[_0x3e08('0x28')]=_[_0x3e08('0x2c')](db[_0x3e08('0x8e')][_0x3e08('0x45')]);_0x45eadc['query']=_[_0x3e08('0x2c')](_0x31c1a5[_0x3e08('0x29')]);_0x45eadc[_0x3e08('0x2d')]=_[_0x3e08('0x2e')](_0x45eadc[_0x3e08('0x28')],_0x45eadc['query']);_0x2f837b[_0x3e08('0x2f')]=_[_0x3e08('0x2e')](_0x45eadc[_0x3e08('0x28')],qs['fields'](_0x31c1a5[_0x3e08('0x29')][_0x3e08('0x30')]));_0x2f837b[_0x3e08('0x2f')]=_0x2f837b[_0x3e08('0x2f')][_0x3e08('0x31')]?_0x2f837b[_0x3e08('0x2f')]:_0x45eadc[_0x3e08('0x28')];_0x2f837b['order']=qs[_0x3e08('0x34')](_0x31c1a5['query']['sort']);_0x2f837b[_0x3e08('0x38')]=qs[_0x3e08('0x2d')](_[_0x3e08('0x50')](_0x31c1a5['query'],_0x45eadc['filters']));if(_0x31c1a5[_0x3e08('0x29')]['filter']){_0x2f837b[_0x3e08('0x38')]=_['merge'](_0x2f837b['where'],{'$or':_[_0x3e08('0x3a')](_0x2f837b[_0x3e08('0x2f')],function(_0x7989fc){var _0x3e73c8={};_0x3e73c8[_0x7989fc]={'$like':'%'+_0x31c1a5[_0x3e08('0x29')][_0x3e08('0x39')]+'%'};return _0x3e73c8;})});}_0x2f837b=_[_0x3e08('0x37')]({},_0x2f837b,_0x31c1a5[_0x3e08('0x42')]);return _0x358413[_0x3e08('0x8d')](_0x2f837b);}})[_0x3e08('0x22')](function(_0x2f0d60){if(_0x2f0d60){_0x5a42ad=_0x2f0d60['length'];if(!_0x31c1a5['query'][_0x3e08('0x4c')](_0x3e08('0x32'))){_0x2f837b['limit']=qs[_0x3e08('0x1e')](_0x31c1a5[_0x3e08('0x29')]['limit']);_0x2f837b[_0x3e08('0x1d')]=qs[_0x3e08('0x1d')](_0x31c1a5['query'][_0x3e08('0x1d')]);}return _0x358413[_0x3e08('0x8d')](_0x2f837b);}})[_0x3e08('0x22')](function(_0x46b137){if(_0x46b137){return _0x46b137?{'count':_0x5a42ad,'rows':_0x46b137}:null;}})['then'](respondWithResult(_0x261c12,null))[_0x3e08('0x40')](handleError(_0x261c12,null));};exports['addBlackLists']=function(_0x1e5683,_0x1b71f4,_0x273e20){var _0x2d3492,_0x5a6e55;return db[_0x3e08('0x3b')]['find']({'where':{'id':_0x1e5683[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x1b71f4,null))[_0x3e08('0x22')](function(_0x1ae133){if(_0x1ae133){_0x5a6e55=_0x1ae133;return _0x1ae133['addBlackLists'](_0x1e5683[_0x3e08('0x48')][_0x3e08('0x58')],_['omit'](_0x1e5683[_0x3e08('0x48')],[_0x3e08('0x58'),'id'])||{});}return null;})[_0x3e08('0x61')](function(_0x43b44a){var _0x114627;_0x2d3492=_0x43b44a||[];var _0x11b86b=[];if(_0x43b44a){for(var _0x3ba380=0x0;_0x3ba380<_0x43b44a[_0x3e08('0x31')];_0x3ba380+=0x1){var _0x278e12=_0x43b44a[_0x3ba380][_0x3e08('0x72')]({'plain':!![]});_0x114627=squel[_0x3e08('0x75')]()[_0x3e08('0x87')](_0x3e08('0x8f'))[_0x3e08('0x88')](['phone',_0x3e08('0x79'),_0x3e08('0x7a'),'VoiceQueueId',_0x3e08('0x49'),_0x3e08('0x47')],squel[_0x3e08('0x7b')]()[_0x3e08('0x7c')]('phone',_0x3e08('0x77'))[_0x3e08('0x7c')]('id',_0x3e08('0x79'))['field'](_0x278e12[_0x3e08('0x7e')][_0x3e08('0x7f')](),'ListId')[_0x3e08('0x7c')](_0x1e5683[_0x3e08('0x41')]['id'][_0x3e08('0x7f')](),_0x3e08('0x51'))[_0x3e08('0x7c')]('NOW()','createdAt')[_0x3e08('0x7c')](_0x3e08('0x7d'),_0x3e08('0x47'))[_0x3e08('0x83')](_0x3e08('0x80'))[_0x3e08('0x38')](_0x3e08('0x81'))[_0x3e08('0x38')](_0x3e08('0x89'),_0x278e12[_0x3e08('0x7e')][_0x3e08('0x7f')]())[_0x3e08('0x38')](_0x3e08('0x82')))['toString']();_0x11b86b[_0x3e08('0x8a')](db[_0x3e08('0x8b')][_0x3e08('0x29')](_0x114627));}return BPromise[_0x3e08('0x6b')](_0x11b86b);}})[_0x3e08('0x22')](function(){return _0x2d3492;})[_0x3e08('0x22')](respondWithResult(_0x1b71f4,null))['catch'](handleError(_0x1b71f4,null));};exports[_0x3e08('0x90')]=function(_0x4fb063,_0x3b7900,_0x990ab3){var _0x476eba;return db[_0x3e08('0x3b')][_0x3e08('0x43')]({'where':{'id':_0x4fb063[_0x3e08('0x41')]['id']}})[_0x3e08('0x22')](handleEntityNotFound(_0x3b7900,null))[_0x3e08('0x22')](function(_0x461de9){if(_0x461de9){return _0x461de9[_0x3e08('0x90')](_0x4fb063[_0x3e08('0x29')]['ids']);}})[_0x3e08('0x22')](function(_0x2d8a65){if(_0x2d8a65){_0x476eba=_0x2d8a65;return db[_0x3e08('0x55')][_0x3e08('0x23')]({'where':{'ListId':_0x4fb063[_0x3e08('0x29')]['ids'],'VoiceQueueId':_0x4fb063['params']['id']}})[_0x3e08('0x22')](function(){return _0x476eba;});}})['then'](respondWithStatusCode(_0x3b7900,null))['catch'](handleError(_0x3b7900,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62ec=['setMaxListeners','save','update','remove','emit','hasOwnProperty','../../mysqldb'];(function(_0x1efb5c,_0x2830ee){var _0x3586e7=function(_0x437cd6){while(--_0x437cd6){_0x1efb5c['push'](_0x1efb5c['shift']());}};_0x3586e7(++_0x2830ee);}(_0x62ec,0xca));var _0xc62e=function(_0x6beff7,_0x5432ed){_0x6beff7=_0x6beff7-0x0;var _0x2489fd=_0x62ec[_0x6beff7];return _0x2489fd;};'use strict';var EventEmitter=require('events');var VoiceQueue=require(_0xc62e('0x0'))['db']['VoiceQueue'];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0xc62e('0x1')](0x0);var events={'afterCreate':_0xc62e('0x2'),'afterUpdate':_0xc62e('0x3'),'afterDestroy':_0xc62e('0x4')};function emitEvent(_0x5214ba){return function(_0x2d9670,_0x4323b1,_0x51199d){VoiceQueueEvents[_0xc62e('0x5')](_0x5214ba+':'+_0x2d9670['id'],_0x2d9670);VoiceQueueEvents[_0xc62e('0x5')](_0x5214ba,_0x2d9670);_0x51199d(null);};}for(var e in events){if(events[_0xc62e('0x6')](e)){var event=events[e];VoiceQueue['hook'](e,emitEvent(event));}}module['exports']=VoiceQueueEvents;
\ No newline at end of file
+var _0xd6cb=['hasOwnProperty','hook','exports','events','VoiceQueue','setMaxListeners','update','emit'];(function(_0xe39277,_0x42cf78){var _0x265220=function(_0x40ec04){while(--_0x40ec04){_0xe39277['push'](_0xe39277['shift']());}};_0x265220(++_0x42cf78);}(_0xd6cb,0x16b));var _0xbd6c=function(_0x3ab99a,_0x3ce898){_0x3ab99a=_0x3ab99a-0x0;var _0x454822=_0xd6cb[_0x3ab99a];return _0x454822;};'use strict';var EventEmitter=require(_0xbd6c('0x0'));var VoiceQueue=require('../../mysqldb')['db'][_0xbd6c('0x1')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0xbd6c('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xbd6c('0x3'),'afterDestroy':'remove'};function emitEvent(_0x546ab5){return function(_0x25f02f,_0x3c81fe,_0x3e2354){VoiceQueueEvents[_0xbd6c('0x4')](_0x546ab5+':'+_0x25f02f['id'],_0x25f02f);VoiceQueueEvents[_0xbd6c('0x4')](_0x546ab5,_0x25f02f);_0x3e2354(null);};}for(var e in events){if(events[_0xbd6c('0x5')](e)){var event=events[e];VoiceQueue[_0xbd6c('0x6')](e,emitEvent(event));}}module[_0xbd6c('0x7')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaeb4=['../../config/logger','api','moment','request-promise','./voiceQueue.attributes','VoiceQueue','voice_queues','lodash'];(function(_0x414f67,_0x861aed){var _0x338537=function(_0x4696fd){while(--_0x4696fd){_0x414f67['push'](_0x414f67['shift']());}};_0x338537(++_0x861aed);}(_0xaeb4,0x177));var _0x4aeb=function(_0x3b9d5f,_0x2e9039){_0x3b9d5f=_0x3b9d5f-0x0;var _0x39924e=_0xaeb4[_0x3b9d5f];return _0x39924e;};'use strict';var _=require(_0x4aeb('0x0'));var util=require('util');var logger=require(_0x4aeb('0x1'))(_0x4aeb('0x2'));var moment=require(_0x4aeb('0x3'));var BPromise=require('bluebird');var rp=require(_0x4aeb('0x4'));var attributes=require(_0x4aeb('0x5'));module['exports']=function(_0x481e2a,_0xb20c38){return _0x481e2a['define'](_0x4aeb('0x6'),attributes,{'tableName':_0x4aeb('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9f4b=['voice_queues','lodash','util','../../config/logger','api','bluebird','request-promise','./voiceQueue.attributes','exports','define','VoiceQueue'];(function(_0x159864,_0x1f238a){var _0x4fb02f=function(_0x4778cc){while(--_0x4778cc){_0x159864['push'](_0x159864['shift']());}};_0x4fb02f(++_0x1f238a);}(_0x9f4b,0x1ae));var _0xb9f4=function(_0x3ec83a,_0xc4823){_0x3ec83a=_0x3ec83a-0x0;var _0x163d25=_0x9f4b[_0x3ec83a];return _0x163d25;};'use strict';var _=require(_0xb9f4('0x0'));var util=require(_0xb9f4('0x1'));var logger=require(_0xb9f4('0x2'))(_0xb9f4('0x3'));var moment=require('moment');var BPromise=require(_0xb9f4('0x4'));var rp=require(_0xb9f4('0x5'));var attributes=require(_0xb9f4('0x6'));module[_0xb9f4('0x7')]=function(_0x12bb1e,_0x4946e5){return _0x12bb1e[_0xb9f4('0x8')](_0xb9f4('0x9'),attributes,{'tableName':_0xb9f4('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd03=['socket.io-emitter','./voiceQueue.socket','register','request','then','info','VoiceQueue,\x20%s,\x20%s','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','catch','GetVoiceQueue','VoiceQueue','findAll','options','attributes','limit','include','map','model','ShowVoiceQueue','where','lodash','moment','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost'];(function(_0x2d7db6,_0x1cafa5){var _0x2ce3aa=function(_0x2f3c5f){while(--_0x2f3c5f){_0x2d7db6['push'](_0x2d7db6['shift']());}};_0x2ce3aa(++_0x1cafa5);}(_0xdd03,0x124));var _0x3dd0=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xdd03[_0x167cc1];return _0x10bc4b;};'use strict';var _=require(_0x3dd0('0x0'));var util=require('util');var moment=require(_0x3dd0('0x1'));var BPromise=require('bluebird');var rs=require(_0x3dd0('0x2'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x3dd0('0x3'));var logger=require(_0x3dd0('0x4'))(_0x3dd0('0x5'));var config=require('../../config/environment');var jayson=require(_0x3dd0('0x6'));var client=jayson[_0x3dd0('0x7')][_0x3dd0('0x8')]({'port':0x232a});config['redis']=_[_0x3dd0('0x9')](config[_0x3dd0('0xa')],{'host':_0x3dd0('0xb'),'port':0x18eb});var socket=require(_0x3dd0('0xc'))(config[_0x3dd0('0xa')]);require(_0x3dd0('0xd'))[_0x3dd0('0xe')](socket);function respondWithRpcPromise(_0x5eb2b9,_0x14e1f4,_0x331d21){return new BPromise(function(_0x651d4a,_0x448912){return client[_0x3dd0('0xf')](_0x5eb2b9,_0x331d21)[_0x3dd0('0x10')](function(_0x1023c9){logger[_0x3dd0('0x11')](_0x3dd0('0x12'),_0x14e1f4,'request\x20sent');logger[_0x3dd0('0x13')](_0x3dd0('0x14'),_0x14e1f4,'request\x20sent',JSON[_0x3dd0('0x15')](_0x1023c9));if(_0x1023c9[_0x3dd0('0x16')]){if(_0x1023c9['error'][_0x3dd0('0x17')]===0x1f4){logger[_0x3dd0('0x16')](_0x3dd0('0x12'),_0x14e1f4,_0x1023c9[_0x3dd0('0x16')]['message']);return _0x448912(_0x1023c9['error'][_0x3dd0('0x18')]);}logger['error'](_0x3dd0('0x12'),_0x14e1f4,_0x1023c9['error'][_0x3dd0('0x18')]);return _0x651d4a(_0x1023c9[_0x3dd0('0x16')]['message']);}else{logger[_0x3dd0('0x11')](_0x3dd0('0x12'),_0x14e1f4,_0x3dd0('0x19'));_0x651d4a(_0x1023c9['result'][_0x3dd0('0x18')]);}})[_0x3dd0('0x1a')](function(_0xc0ceaa){logger[_0x3dd0('0x16')](_0x3dd0('0x12'),_0x14e1f4,_0xc0ceaa);_0x448912(_0xc0ceaa);});});}exports[_0x3dd0('0x1b')]=function(_0x4f9ea7){var _0x256912=this;return new Promise(function(_0x10e63c,_0x5e66a2){return db[_0x3dd0('0x1c')][_0x3dd0('0x1d')]({'raw':_0x4f9ea7[_0x3dd0('0x1e')]?_0x4f9ea7[_0x3dd0('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x4f9ea7[_0x3dd0('0x1e')]?_0x4f9ea7[_0x3dd0('0x1e')]['where']||null:null,'attributes':_0x4f9ea7[_0x3dd0('0x1e')]?_0x4f9ea7[_0x3dd0('0x1e')][_0x3dd0('0x1f')]||null:null,'limit':_0x4f9ea7[_0x3dd0('0x1e')]?_0x4f9ea7['options'][_0x3dd0('0x20')]||null:null,'include':_0x4f9ea7[_0x3dd0('0x1e')]?_0x4f9ea7['options'][_0x3dd0('0x21')]?_[_0x3dd0('0x22')](_0x4f9ea7[_0x3dd0('0x1e')][_0x3dd0('0x21')],function(_0x38a6e6){return{'model':db[_0x38a6e6[_0x3dd0('0x23')]],'as':_0x38a6e6['as'],'attributes':_0x38a6e6[_0x3dd0('0x1f')],'include':_0x38a6e6[_0x3dd0('0x21')]?_[_0x3dd0('0x22')](_0x38a6e6[_0x3dd0('0x21')],function(_0x18135f){return{'model':db[_0x18135f[_0x3dd0('0x23')]],'as':_0x18135f['as'],'attributes':_0x18135f[_0x3dd0('0x1f')],'include':_0x18135f[_0x3dd0('0x21')]?_[_0x3dd0('0x22')](_0x18135f[_0x3dd0('0x21')],function(_0x51f19c){return{'model':db[_0x51f19c[_0x3dd0('0x23')]],'as':_0x51f19c['as'],'attributes':_0x51f19c[_0x3dd0('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x3dd0('0x10')](function(_0x48cef5){logger[_0x3dd0('0x11')](_0x3dd0('0x1b'),_0x4f9ea7);logger[_0x3dd0('0x13')](_0x3dd0('0x1b'),_0x4f9ea7,JSON[_0x3dd0('0x15')](_0x48cef5));_0x10e63c(_0x48cef5);})['catch'](function(_0x57b30a){logger[_0x3dd0('0x16')](_0x3dd0('0x1b'),_0x57b30a[_0x3dd0('0x18')],_0x4f9ea7);_0x5e66a2(_0x256912['error'](0x1f4,_0x57b30a[_0x3dd0('0x18')]));});});};exports[_0x3dd0('0x24')]=function(_0x3fdd61){var _0x3556bf=this;return new Promise(function(_0x1b0f04,_0xeab8ca){return db[_0x3dd0('0x1c')]['find']({'raw':_0x3fdd61[_0x3dd0('0x1e')]?_0x3fdd61[_0x3dd0('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x3fdd61[_0x3dd0('0x1e')]?_0x3fdd61['options'][_0x3dd0('0x25')]||null:null,'attributes':_0x3fdd61[_0x3dd0('0x1e')]?_0x3fdd61[_0x3dd0('0x1e')][_0x3dd0('0x1f')]||null:null,'include':_0x3fdd61[_0x3dd0('0x1e')]?_0x3fdd61[_0x3dd0('0x1e')][_0x3dd0('0x21')]?_['map'](_0x3fdd61['options']['include'],function(_0x1dec52){return{'model':db[_0x1dec52[_0x3dd0('0x23')]],'as':_0x1dec52['as'],'attributes':_0x1dec52[_0x3dd0('0x1f')],'include':_0x1dec52[_0x3dd0('0x21')]?_[_0x3dd0('0x22')](_0x1dec52[_0x3dd0('0x21')],function(_0x445ed6){return{'model':db[_0x445ed6[_0x3dd0('0x23')]],'as':_0x445ed6['as'],'attributes':_0x445ed6['attributes'],'include':_0x445ed6['include']?_['map'](_0x445ed6['include'],function(_0x535b69){return{'model':db[_0x535b69[_0x3dd0('0x23')]],'as':_0x535b69['as'],'attributes':_0x535b69[_0x3dd0('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x26e26c){logger[_0x3dd0('0x11')](_0x3dd0('0x24'),_0x3fdd61);logger[_0x3dd0('0x13')]('ShowVoiceQueue',_0x3fdd61,JSON['stringify'](_0x26e26c));_0x1b0f04(_0x26e26c);})[_0x3dd0('0x1a')](function(_0x36958d){logger['error']('ShowVoiceQueue',_0x36958d[_0x3dd0('0x18')],_0x3fdd61);_0xeab8ca(_0x3556bf[_0x3dd0('0x16')](0x1f4,_0x36958d['message']));});});};
\ No newline at end of file
+var _0xa9e0=['register','VoiceQueue,\x20%s,\x20%s','request\x20sent','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetVoiceQueue','findAll','options','raw','where','attributes','limit','include','map','model','then','ShowVoiceQueue','VoiceQueue','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter'];(function(_0x29abcb,_0x8d3d51){var _0x3967a8=function(_0x25c657){while(--_0x25c657){_0x29abcb['push'](_0x29abcb['shift']());}};_0x3967a8(++_0x8d3d51);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa9e0[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});config[_0x0a9e('0xa')]=_[_0x0a9e('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x0a9e('0xc'))(new Redis(config['redis']));require('./voiceQueue.socket')[_0x0a9e('0xd')](socket);function respondWithRpcPromise(_0xf81284,_0x307b3e,_0x3ab53f){return new BPromise(function(_0xfeb75b,_0xbd1168){return client['request'](_0xf81284,_0x3ab53f)['then'](function(_0x527cdd){logger['info'](_0x0a9e('0xe'),_0x307b3e,_0x0a9e('0xf'));logger[_0x0a9e('0x10')](_0x0a9e('0x11'),_0x307b3e,_0x0a9e('0xf'),JSON[_0x0a9e('0x12')](_0x527cdd));if(_0x527cdd['error']){if(_0x527cdd[_0x0a9e('0x13')][_0x0a9e('0x14')]===0x1f4){logger[_0x0a9e('0x13')](_0x0a9e('0xe'),_0x307b3e,_0x527cdd[_0x0a9e('0x13')][_0x0a9e('0x15')]);return _0xbd1168(_0x527cdd['error'][_0x0a9e('0x15')]);}logger['error'](_0x0a9e('0xe'),_0x307b3e,_0x527cdd['error'][_0x0a9e('0x15')]);return _0xfeb75b(_0x527cdd[_0x0a9e('0x13')]['message']);}else{logger[_0x0a9e('0x16')]('VoiceQueue,\x20%s,\x20%s',_0x307b3e,_0x0a9e('0xf'));_0xfeb75b(_0x527cdd[_0x0a9e('0x17')][_0x0a9e('0x15')]);}})[_0x0a9e('0x18')](function(_0x31b1ca){logger[_0x0a9e('0x13')](_0x0a9e('0xe'),_0x307b3e,_0x31b1ca);_0xbd1168(_0x31b1ca);});});}exports[_0x0a9e('0x19')]=function(_0x1314ae){var _0x112016=this;return new Promise(function(_0x1c696a,_0x105080){return db['VoiceQueue'][_0x0a9e('0x1a')]({'raw':_0x1314ae[_0x0a9e('0x1b')]?_0x1314ae['options'][_0x0a9e('0x1c')]===undefined?!![]:![]:!![],'where':_0x1314ae['options']?_0x1314ae['options'][_0x0a9e('0x1d')]||null:null,'attributes':_0x1314ae[_0x0a9e('0x1b')]?_0x1314ae[_0x0a9e('0x1b')][_0x0a9e('0x1e')]||null:null,'limit':_0x1314ae['options']?_0x1314ae[_0x0a9e('0x1b')][_0x0a9e('0x1f')]||null:null,'include':_0x1314ae[_0x0a9e('0x1b')]?_0x1314ae[_0x0a9e('0x1b')][_0x0a9e('0x20')]?_[_0x0a9e('0x21')](_0x1314ae[_0x0a9e('0x1b')]['include'],function(_0x59181e){return{'model':db[_0x59181e[_0x0a9e('0x22')]],'as':_0x59181e['as'],'attributes':_0x59181e[_0x0a9e('0x1e')],'include':_0x59181e[_0x0a9e('0x20')]?_[_0x0a9e('0x21')](_0x59181e['include'],function(_0x384319){return{'model':db[_0x384319['model']],'as':_0x384319['as'],'attributes':_0x384319[_0x0a9e('0x1e')],'include':_0x384319['include']?_[_0x0a9e('0x21')](_0x384319[_0x0a9e('0x20')],function(_0x25fba9){return{'model':db[_0x25fba9[_0x0a9e('0x22')]],'as':_0x25fba9['as'],'attributes':_0x25fba9[_0x0a9e('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x23')](function(_0x11c3b6){logger[_0x0a9e('0x16')]('GetVoiceQueue',_0x1314ae);logger[_0x0a9e('0x10')](_0x0a9e('0x19'),_0x1314ae,JSON[_0x0a9e('0x12')](_0x11c3b6));_0x1c696a(_0x11c3b6);})[_0x0a9e('0x18')](function(_0x5c877d){logger[_0x0a9e('0x13')](_0x0a9e('0x19'),_0x5c877d[_0x0a9e('0x15')],_0x1314ae);_0x105080(_0x112016[_0x0a9e('0x13')](0x1f4,_0x5c877d[_0x0a9e('0x15')]));});});};exports[_0x0a9e('0x24')]=function(_0x296f41){var _0x2e8759=this;return new Promise(function(_0x1dbde2,_0x540530){return db[_0x0a9e('0x25')]['find']({'raw':_0x296f41[_0x0a9e('0x1b')]?_0x296f41[_0x0a9e('0x1b')][_0x0a9e('0x1c')]===undefined?!![]:![]:!![],'where':_0x296f41[_0x0a9e('0x1b')]?_0x296f41[_0x0a9e('0x1b')]['where']||null:null,'attributes':_0x296f41[_0x0a9e('0x1b')]?_0x296f41[_0x0a9e('0x1b')][_0x0a9e('0x1e')]||null:null,'include':_0x296f41[_0x0a9e('0x1b')]?_0x296f41[_0x0a9e('0x1b')][_0x0a9e('0x20')]?_[_0x0a9e('0x21')](_0x296f41[_0x0a9e('0x1b')]['include'],function(_0x44295a){return{'model':db[_0x44295a['model']],'as':_0x44295a['as'],'attributes':_0x44295a[_0x0a9e('0x1e')],'include':_0x44295a[_0x0a9e('0x20')]?_[_0x0a9e('0x21')](_0x44295a[_0x0a9e('0x20')],function(_0x567193){return{'model':db[_0x567193[_0x0a9e('0x22')]],'as':_0x567193['as'],'attributes':_0x567193[_0x0a9e('0x1e')],'include':_0x567193[_0x0a9e('0x20')]?_[_0x0a9e('0x21')](_0x567193['include'],function(_0x54135e){return{'model':db[_0x54135e[_0x0a9e('0x22')]],'as':_0x54135e['as'],'attributes':_0x54135e['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x23')](function(_0x3d9717){logger[_0x0a9e('0x16')](_0x0a9e('0x24'),_0x296f41);logger['debug'](_0x0a9e('0x24'),_0x296f41,JSON[_0x0a9e('0x12')](_0x3d9717));_0x1dbde2(_0x3d9717);})[_0x0a9e('0x18')](function(_0x533942){logger[_0x0a9e('0x13')](_0x0a9e('0x24'),_0x533942[_0x0a9e('0x15')],_0x296f41);_0x540530(_0x2e8759['error'](0x1f4,_0x533942['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc82=['removeListener','register','length','voiceQueue:','./voiceQueue.events','remove','emit'];(function(_0x14bf75,_0x2262f7){var _0x215818=function(_0x4ff66a){while(--_0x4ff66a){_0x14bf75['push'](_0x14bf75['shift']());}};_0x215818(++_0x2262f7);}(_0xfc82,0x1bd));var _0x2fc8=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xfc82[_0x5ddb1c];return _0x354adc;};'use strict';var VoiceQueueEvents=require(_0x2fc8('0x0'));var events=['save',_0x2fc8('0x1'),'update'];function createListener(_0xeee38b,_0x4a20ab){return function(_0x43b7a9){_0x4a20ab[_0x2fc8('0x2')](_0xeee38b,_0x43b7a9);};}function removeListener(_0x319cd3,_0x2c0acd){return function(){VoiceQueueEvents[_0x2fc8('0x3')](_0x319cd3,_0x2c0acd);};}exports[_0x2fc8('0x4')]=function(_0x5299eb){for(var _0x4d04a1=0x0,_0x4e5a4e=events[_0x2fc8('0x5')];_0x4d04a1<_0x4e5a4e;_0x4d04a1++){var _0x32b4c2=events[_0x4d04a1];var _0x562d00=createListener(_0x2fc8('0x6')+_0x32b4c2,_0x5299eb);VoiceQueueEvents['on'](_0x32b4c2,_0x562d00);}};
\ No newline at end of file
+var _0xc1cc=['removeListener','register','length','./voiceQueue.events','emit'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0xc1cc,0x198));var _0xcc1c=function(_0x13e919,_0x2e6934){_0x13e919=_0x13e919-0x0;var _0x98100b=_0xc1cc[_0x13e919];return _0x98100b;};'use strict';var VoiceQueueEvents=require(_0xcc1c('0x0'));var events=['save','remove','update'];function createListener(_0x3f0d42,_0x3684c8){return function(_0x65d94c){_0x3684c8[_0xcc1c('0x1')](_0x3f0d42,_0x65d94c);};}function removeListener(_0x558ce1,_0xea9b62){return function(){VoiceQueueEvents[_0xcc1c('0x2')](_0x558ce1,_0xea9b62);};}exports[_0xcc1c('0x3')]=function(_0x2e6880){for(var _0x4dbc00=0x0,_0x1faaf0=events[_0xcc1c('0x4')];_0x4dbc00<_0x1faaf0;_0x4dbc00++){var _0x838d2=events[_0x4dbc00];var _0x4eea67=createListener('voiceQueue:'+_0x838d2,_0x2e6880);VoiceQueueEvents['on'](_0x838d2,_0x4eea67);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a61=['delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./voiceQueueReport.controller','get','isAuthenticated','describe','/index','getVoiceQueuesReport','show','create','put','/:id','update'];(function(_0x437421,_0x15764b){var _0x36266d=function(_0x68a127){while(--_0x68a127){_0x437421['push'](_0x437421['shift']());}};_0x36266d(++_0x15764b);}(_0x1a61,0x1a7));var _0x11a6=function(_0x3fa3c0,_0x4074f5){_0x3fa3c0=_0x3fa3c0-0x0;var _0x408fa0=_0x1a61[_0x3fa3c0];return _0x408fa0;};'use strict';var multer=require(_0x11a6('0x0'));var util=require(_0x11a6('0x1'));var path=require('path');var timeout=require(_0x11a6('0x2'));var express=require(_0x11a6('0x3'));var router=express[_0x11a6('0x4')]();var auth=require(_0x11a6('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x11a6('0x6'));var controller=require(_0x11a6('0x7'));router[_0x11a6('0x8')]('/',auth[_0x11a6('0x9')](),controller['index']);router[_0x11a6('0x8')]('/describe',auth[_0x11a6('0x9')](),controller[_0x11a6('0xa')]);router[_0x11a6('0x8')](_0x11a6('0xb'),auth[_0x11a6('0x9')](),controller[_0x11a6('0xc')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x11a6('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x11a6('0xe')]);router[_0x11a6('0xf')](_0x11a6('0x10'),auth['isAuthenticated'](),controller[_0x11a6('0x11')]);router[_0x11a6('0x12')](_0x11a6('0x10'),auth[_0x11a6('0x9')](),controller[_0x11a6('0x13')]);module[_0x11a6('0x14')]=router;
\ No newline at end of file
+var _0x4b95=['/describe','describe','/index','getVoiceQueuesReport','/:id','post','create','put','update','delete','destroy','exports','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller','isAuthenticated','index','get'];(function(_0xb9796,_0x49fca3){var _0x13565d=function(_0x15b3ff){while(--_0x15b3ff){_0xb9796['push'](_0xb9796['shift']());}};_0x13565d(++_0x49fca3);}(_0x4b95,0xbc));var _0x54b9=function(_0x35048c,_0x1f633b){_0x35048c=_0x35048c-0x0;var _0x3619c5=_0x4b95[_0x35048c];return _0x3619c5;};'use strict';var multer=require('multer');var util=require(_0x54b9('0x0'));var path=require(_0x54b9('0x1'));var timeout=require(_0x54b9('0x2'));var express=require(_0x54b9('0x3'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require(_0x54b9('0x4'));var config=require(_0x54b9('0x5'));var controller=require(_0x54b9('0x6'));router['get']('/',auth[_0x54b9('0x7')](),controller[_0x54b9('0x8')]);router[_0x54b9('0x9')](_0x54b9('0xa'),auth[_0x54b9('0x7')](),controller[_0x54b9('0xb')]);router[_0x54b9('0x9')](_0x54b9('0xc'),auth[_0x54b9('0x7')](),controller[_0x54b9('0xd')]);router[_0x54b9('0x9')](_0x54b9('0xe'),auth['isAuthenticated'](),controller['show']);router[_0x54b9('0xf')]('/',auth['isAuthenticated'](),controller[_0x54b9('0x10')]);router[_0x54b9('0x11')]('/:id',auth[_0x54b9('0x7')](),controller[_0x54b9('0x12')]);router[_0x54b9('0x13')](_0x54b9('0xe'),auth['isAuthenticated'](),controller[_0x54b9('0x14')]);module[_0x54b9('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9902=['setDataValue','queuecallerleaveAt','holdtime','INTEGER','BOOLEAN','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','moment','exports','STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9902,0x14b));var _0x2990=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x9902[_0x126558];return _0x1f6d14;};'use strict';var Sequelize=require(_0x2990('0x0'));var moment=require(_0x2990('0x1'));module[_0x2990('0x2')]={'type':{'type':Sequelize[_0x2990('0x3')]},'uniqueid':{'type':Sequelize[_0x2990('0x3')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x2990('0x3')]},'queue':{'type':Sequelize['STRING']},'queuecallerjoinAt':{'type':Sequelize[_0x2990('0x4')]},'queuecallerleaveAt':{'type':Sequelize[_0x2990('0x4')],'set':function(_0x550ba3){var _0x4f45c7=moment(_0x550ba3);var _0x3a17f2=moment(this[_0x2990('0x5')](_0x2990('0x6')))[_0x2990('0x7')](_0x2990('0x8'));var _0x2ee8f9=_0x4f45c7[_0x2990('0x9')](_0x3a17f2,_0x2990('0xa'));this[_0x2990('0xb')](_0x2990('0xc'),_0x550ba3);this[_0x2990('0xb')](_0x2990('0xd'),_0x2ee8f9||null);}},'position':{'type':Sequelize[_0x2990('0xe')]},'count':{'type':Sequelize[_0x2990('0xe')]},'queuecallerabandon':{'type':Sequelize[_0x2990('0xf')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize['DATE']},'queuecallercomplete':{'type':Sequelize[_0x2990('0xf')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize['DATE']},'queuecallerexit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0x2990('0x4')]},'queuecallerexitreason':{'type':Sequelize[_0x2990('0x3')],'comment':_0x2990('0x10')},'originalposition':{'type':Sequelize[_0x2990('0xe')]},'channel':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x2990('0x3')]},'connectedlinename':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x2990('0x3')]},'context':{'type':Sequelize[_0x2990('0x3')]},'exten':{'type':Sequelize[_0x2990('0x3')]},'priority':{'type':Sequelize[_0x2990('0x3')]},'holdtime':{'type':Sequelize[_0x2990('0xe')]},'mohtime':{'type':Sequelize[_0x2990('0xe')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x2990('0xf')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0x2990('0x3')]},'transfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x2990('0x3')],'comment':_0x2990('0x11')},'transferexten':{'type':Sequelize[_0x2990('0x3')]},'transferuniqueid':{'type':Sequelize[_0x2990('0x3')]},'disposition':{'type':Sequelize[_0x2990('0x3')]},'queuecallerenterreason':{'type':Sequelize[_0x2990('0xe')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x3d55=['queuecallerjoinAt','diff','setDataValue','queuecallerleaveAt','holdtime','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','moment','exports','STRING','DATE'];(function(_0x50e1d6,_0x1f9fbf){var _0x22ee4e=function(_0x13cc2c){while(--_0x13cc2c){_0x50e1d6['push'](_0x50e1d6['shift']());}};_0x22ee4e(++_0x1f9fbf);}(_0x3d55,0xb1));var _0x53d5=function(_0x13de0d,_0x4af4ee){_0x13de0d=_0x13de0d-0x0;var _0x24df61=_0x3d55[_0x13de0d];return _0x24df61;};'use strict';var Sequelize=require(_0x53d5('0x0'));var moment=require(_0x53d5('0x1'));module[_0x53d5('0x2')]={'type':{'type':Sequelize[_0x53d5('0x3')]},'uniqueid':{'type':Sequelize[_0x53d5('0x3')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x53d5('0x3')]},'queue':{'type':Sequelize['STRING']},'queuecallerjoinAt':{'type':Sequelize['DATE']},'queuecallerleaveAt':{'type':Sequelize[_0x53d5('0x4')],'set':function(_0x3cbea9){var _0x408632=moment(_0x3cbea9);var _0x12d350=moment(this['getDataValue'](_0x53d5('0x5')))['format']('YYYY-MM-DD\x20HH:mm:ss');var _0x42e3aa=_0x408632[_0x53d5('0x6')](_0x12d350,'seconds');this[_0x53d5('0x7')](_0x53d5('0x8'),_0x3cbea9);this[_0x53d5('0x7')](_0x53d5('0x9'),_0x42e3aa||null);}},'position':{'type':Sequelize[_0x53d5('0xa')]},'count':{'type':Sequelize[_0x53d5('0xa')]},'queuecallerabandon':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0x53d5('0x4')]},'queuecallercomplete':{'type':Sequelize[_0x53d5('0xb')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0x53d5('0x4')]},'queuecallerexit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0x53d5('0x4')]},'queuecallerexitreason':{'type':Sequelize[_0x53d5('0x3')],'comment':'COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT'},'originalposition':{'type':Sequelize[_0x53d5('0xa')]},'channel':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x53d5('0x3')]},'connectedlinename':{'type':Sequelize[_0x53d5('0x3')]},'accountcode':{'type':Sequelize[_0x53d5('0x3')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x53d5('0x3')]},'priority':{'type':Sequelize[_0x53d5('0x3')]},'holdtime':{'type':Sequelize[_0x53d5('0xa')]},'mohtime':{'type':Sequelize[_0x53d5('0xa')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x53d5('0xb')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0x53d5('0x3')]},'transfer':{'type':Sequelize[_0x53d5('0xb')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0x53d5('0xc')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0x53d5('0x3')]},'queuecallerenterreason':{'type':Sequelize[_0x53d5('0xa')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12f5=['lodash','squel','crypto','jsforce','querystring','papaparse','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','status','json','count','offset','limit','set','apply','reject','save','update','then','error','stack','name','send','index','rawAttributes','model','dateStart','query','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','pick','add','day','merge','where','filter','options','VoiceQueueReport','includeAll','findAll','rows','show','include','find','catch','create','body','destroy','params','describe','keys','nolimit','getVoiceQueuesReport','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv'];(function(_0x9b6188,_0x28cb0b){var _0x37d16d=function(_0x25b681){while(--_0x25b681){_0x9b6188['push'](_0x9b6188['shift']());}};_0x37d16d(++_0x28cb0b);}(_0x12f5,0x138));var _0x512f=function(_0x4a747d,_0x3b747f){_0x4a747d=_0x4a747d-0x0;var _0x3a5b5c=_0x12f5[_0x4a747d];return _0x3a5b5c;};'use strict';var pdf=require(_0x512f('0x0'));var emlformat=require(_0x512f('0x1'));var rimraf=require(_0x512f('0x2'));var zipdir=require(_0x512f('0x3'));var jsonpatch=require(_0x512f('0x4'));var rp=require(_0x512f('0x5'));var moment=require('moment');var BPromise=require(_0x512f('0x6'));var Mustache=require(_0x512f('0x7'));var util=require(_0x512f('0x8'));var path=require(_0x512f('0x9'));var sox=require(_0x512f('0xa'));var csv=require(_0x512f('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x512f('0xc'));var squel=require(_0x512f('0xd'));var crypto=require(_0x512f('0xe'));var jsforce=require(_0x512f('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x512f('0x10'));var Papa=require(_0x512f('0x11'));var qs=require('../../components/parsers/qs');var logger=require(_0x512f('0x12'))(_0x512f('0x13'));var utils=require(_0x512f('0x14'));var config=require('../../config/environment');var db=require(_0x512f('0x15'))['db'];config[_0x512f('0x16')]=_[_0x512f('0x17')](config['redis'],{'host':_0x512f('0x18'),'port':0x18eb});var socket=require(_0x512f('0x19'))(config[_0x512f('0x16')]);require(_0x512f('0x1a'))[_0x512f('0x1b')](socket);function respondWithStatusCode(_0x30de58,_0x33614a){_0x33614a=_0x33614a||0xcc;return function(_0x102e9d){if(_0x102e9d){return _0x30de58[_0x512f('0x1c')](_0x33614a);}return _0x30de58[_0x512f('0x1d')](_0x33614a)['end']();};}function respondWithResult(_0x2728f6,_0x315f86){_0x315f86=_0x315f86||0xc8;return function(_0x54f6e7){if(_0x54f6e7){return _0x2728f6[_0x512f('0x1d')](_0x315f86)[_0x512f('0x1e')](_0x54f6e7);}};}function respondWithFilteredResult(_0x2d1bb4,_0x4be416){return function(_0x591aa6){if(_0x591aa6){var _0x16b79a=_0x591aa6[_0x512f('0x1f')],_0x2869b5=_0x4be416[_0x512f('0x20')],_0x517f17=_0x4be416[_0x512f('0x20')]+_0x4be416[_0x512f('0x21')],_0x110205;if(_0x517f17>=_0x16b79a){_0x517f17=_0x16b79a;_0x110205=0xc8;}else{_0x110205=0xce;}_0x2d1bb4[_0x512f('0x1d')](_0x110205);return _0x2d1bb4[_0x512f('0x22')]('Content-Range',_0x2869b5+'-'+_0x517f17+'/'+_0x16b79a)['json'](_0x591aa6);}return null;};}function patchUpdates(_0x1eaa87){return function(_0x22ae23){try{jsonpatch[_0x512f('0x23')](_0x22ae23,_0x1eaa87,!![]);}catch(_0x519805){return BPromise[_0x512f('0x24')](_0x519805);}return _0x22ae23[_0x512f('0x25')]();};}function saveUpdates(_0xecc235,_0x115adc){return function(_0x5c82f7){if(_0x5c82f7){return _0x5c82f7[_0x512f('0x26')](_0xecc235)[_0x512f('0x27')](function(_0x52d27c){return _0x52d27c;});}return null;};}function removeEntity(_0x3baacb,_0x838af8){return function(_0x481aa5){if(_0x481aa5){return _0x481aa5['destroy']()[_0x512f('0x27')](function(){_0x3baacb[_0x512f('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x56bc28,_0x29fdb5){return function(_0x58f2fb){if(!_0x58f2fb){_0x56bc28['sendStatus'](0x194);}return _0x58f2fb;};}function handleError(_0x156726,_0x39d390){_0x39d390=_0x39d390||0x1f4;return function(_0x39266c){logger[_0x512f('0x28')](_0x39266c[_0x512f('0x29')]);if(_0x39266c[_0x512f('0x2a')]){delete _0x39266c['name'];}_0x156726[_0x512f('0x1d')](_0x39d390)[_0x512f('0x2b')](_0x39266c);};}exports[_0x512f('0x2c')]=function(_0x5e402b,_0x1484f2){var _0x21b5bb={},_0x5e8b24={},_0xf874de={'count':0x0,'rows':[]};var _0xab368e=db['VoiceQueueReport'][_0x512f('0x2d')];_0x5e8b24[_0x512f('0x2e')]=_['keys'](_0xab368e);var _0x3fe8f9={'dateStart':_0x5e402b['query'][_0x512f('0x2f')],'dateEnd':_0x5e402b[_0x512f('0x30')][_0x512f('0x31')]};delete _0x5e402b[_0x512f('0x30')][_0x512f('0x2f')];delete _0x5e402b[_0x512f('0x30')][_0x512f('0x31')];_0x5e8b24[_0x512f('0x30')]=_['keys'](_0x5e402b[_0x512f('0x30')]);_0x5e8b24[_0x512f('0x32')]=_[_0x512f('0x33')](_0x5e8b24[_0x512f('0x2e')],_0x5e8b24[_0x512f('0x30')]);_0x21b5bb['attributes']=_[_0x512f('0x33')](_0x5e8b24[_0x512f('0x2e')],qs[_0x512f('0x34')](_0x5e402b[_0x512f('0x30')]['fields']));_0x21b5bb[_0x512f('0x35')]=_0x21b5bb['attributes'][_0x512f('0x36')]?_0x21b5bb[_0x512f('0x35')]:_0x5e8b24[_0x512f('0x2e')];if(!_0x5e402b[_0x512f('0x30')][_0x512f('0x37')]('nolimit')){_0x21b5bb[_0x512f('0x21')]=qs[_0x512f('0x21')](_0x5e402b['query'][_0x512f('0x21')]);_0x21b5bb[_0x512f('0x20')]=qs[_0x512f('0x20')](_0x5e402b[_0x512f('0x30')][_0x512f('0x20')]);}_0x21b5bb[_0x512f('0x38')]=qs[_0x512f('0x39')](_0x5e402b[_0x512f('0x30')][_0x512f('0x39')]);_0x21b5bb['where']=qs['filters'](_[_0x512f('0x3a')](_0x5e402b[_0x512f('0x30')],_0x5e8b24['filters']));if(_0x3fe8f9['dateStart']){if(_0x3fe8f9['dateEnd']){_0x3fe8f9[_0x512f('0x31')]=moment(_0x3fe8f9[_0x512f('0x31')])[_0x512f('0x3b')](0x1,_0x512f('0x3c'));}else{_0x3fe8f9[_0x512f('0x31')]=moment(_0x3fe8f9['dateStart'])[_0x512f('0x3b')](0x1,'day');}_[_0x512f('0x3d')](_0x21b5bb[_0x512f('0x3e')],{'createdAt':{'$gte':_0x3fe8f9[_0x512f('0x2f')],'$lte':_0x3fe8f9[_0x512f('0x31')]}});}if(_0x5e402b[_0x512f('0x30')][_0x512f('0x3f')]){_0x21b5bb['where']=_[_0x512f('0x3d')](_0x21b5bb[_0x512f('0x3e')],{'$or':_['map'](_0x21b5bb[_0x512f('0x35')],function(_0x555a18){var _0x5302ad={};_0x5302ad[_0x555a18]={'$like':'%'+_0x5e402b['query'][_0x512f('0x3f')]+'%'};return _0x5302ad;})});}_0x21b5bb=_[_0x512f('0x3d')]({},_0x21b5bb,_0x5e402b[_0x512f('0x40')]);var _0x3f23a4={'where':_0x21b5bb[_0x512f('0x3e')]};return db[_0x512f('0x41')]['count'](_0x3f23a4)[_0x512f('0x27')](function(_0xc003da){_0xf874de['count']=_0xc003da;if(_0x5e402b[_0x512f('0x30')][_0x512f('0x42')]){_0x21b5bb['include']=[{'all':!![]}];}return db[_0x512f('0x41')][_0x512f('0x43')](_0x21b5bb);})['then'](function(_0x169555){_0xf874de[_0x512f('0x44')]=_0x169555;return _0xf874de;})['then'](respondWithFilteredResult(_0x1484f2,_0x21b5bb))['catch'](handleError(_0x1484f2,null));};exports[_0x512f('0x45')]=function(_0x312122,_0x46eaaa){var _0x1143d3={'raw':![],'where':{'id':_0x312122['params']['id']}},_0x10f200={};_0x10f200[_0x512f('0x2e')]=_['keys'](db[_0x512f('0x41')][_0x512f('0x2d')]);_0x10f200['query']=_['keys'](_0x312122[_0x512f('0x30')]);_0x10f200['filters']=_['intersection'](_0x10f200['model'],_0x10f200[_0x512f('0x30')]);_0x1143d3[_0x512f('0x35')]=_['intersection'](_0x10f200[_0x512f('0x2e')],qs[_0x512f('0x34')](_0x312122[_0x512f('0x30')][_0x512f('0x34')]));_0x1143d3[_0x512f('0x35')]=_0x1143d3['attributes'][_0x512f('0x36')]?_0x1143d3[_0x512f('0x35')]:_0x10f200[_0x512f('0x2e')];if(_0x312122[_0x512f('0x30')][_0x512f('0x42')]){_0x1143d3[_0x512f('0x46')]=[{'all':!![]}];}_0x1143d3=_[_0x512f('0x3d')]({},_0x1143d3,_0x312122[_0x512f('0x40')]);return db[_0x512f('0x41')][_0x512f('0x47')](_0x1143d3)[_0x512f('0x27')](handleEntityNotFound(_0x46eaaa,null))[_0x512f('0x27')](respondWithResult(_0x46eaaa,null))[_0x512f('0x48')](handleError(_0x46eaaa,null));};exports[_0x512f('0x49')]=function(_0x5c8dd2,_0x317bc8){return db[_0x512f('0x41')]['create'](_0x5c8dd2[_0x512f('0x4a')],{})[_0x512f('0x27')](respondWithResult(_0x317bc8,0xc9))[_0x512f('0x48')](handleError(_0x317bc8,null));};exports[_0x512f('0x26')]=function(_0x2fb49f,_0x343fcf){if(_0x2fb49f[_0x512f('0x4a')]['id']){delete _0x2fb49f[_0x512f('0x4a')]['id'];}return db[_0x512f('0x41')][_0x512f('0x47')]({'where':{'id':_0x2fb49f['params']['id']}})[_0x512f('0x27')](handleEntityNotFound(_0x343fcf,null))[_0x512f('0x27')](saveUpdates(_0x2fb49f[_0x512f('0x4a')],null))[_0x512f('0x27')](respondWithResult(_0x343fcf,null))[_0x512f('0x48')](handleError(_0x343fcf,null));};exports[_0x512f('0x4b')]=function(_0x505827,_0x3a0283){return db['VoiceQueueReport'][_0x512f('0x47')]({'where':{'id':_0x505827[_0x512f('0x4c')]['id']}})[_0x512f('0x27')](handleEntityNotFound(_0x3a0283,null))['then'](removeEntity(_0x3a0283,null))[_0x512f('0x48')](handleError(_0x3a0283,null));};exports[_0x512f('0x4d')]=function(_0x47e0bd,_0x4ff587){return db['VoiceQueueReport'][_0x512f('0x4d')]()[_0x512f('0x27')](respondWithResult(_0x4ff587,null))[_0x512f('0x48')](handleError(_0x4ff587,null));};exports['getVoiceQueuesReport']=function(_0x4d6208,_0x581a5d){var _0x909ac3={},_0x425137={},_0x689ab9={'count':0x0,'rows':[]};_0x425137[_0x512f('0x2e')]=_['keys'](db[_0x512f('0x41')]['rawAttributes']);var _0x4815ed={'dateStart':_0x4d6208['query'][_0x512f('0x2f')],'dateEnd':_0x4d6208[_0x512f('0x30')][_0x512f('0x31')]};delete _0x4d6208['query']['dateStart'];delete _0x4d6208[_0x512f('0x30')][_0x512f('0x31')];_0x425137[_0x512f('0x30')]=_[_0x512f('0x4e')](_0x4d6208['query']);_0x425137[_0x512f('0x32')]=_[_0x512f('0x33')](_0x425137[_0x512f('0x2e')],_0x425137[_0x512f('0x30')]);_0x909ac3[_0x512f('0x35')]=_['intersection'](_0x425137['model'],qs[_0x512f('0x34')](_0x4d6208[_0x512f('0x30')][_0x512f('0x34')]));_0x909ac3[_0x512f('0x35')]=_0x909ac3['attributes']['length']?_0x909ac3[_0x512f('0x35')]:_0x425137[_0x512f('0x2e')];if(!_0x4d6208['query'][_0x512f('0x37')](_0x512f('0x4f'))){_0x909ac3['limit']=qs[_0x512f('0x21')](_0x4d6208[_0x512f('0x30')][_0x512f('0x21')]);_0x909ac3['offset']=qs[_0x512f('0x20')](_0x4d6208[_0x512f('0x30')][_0x512f('0x20')]);}_0x909ac3['order']=qs[_0x512f('0x39')](_0x4d6208[_0x512f('0x30')]['sort']);_0x909ac3[_0x512f('0x3e')]=qs[_0x512f('0x32')](_[_0x512f('0x3a')](_0x4d6208[_0x512f('0x30')],_0x425137[_0x512f('0x32')]));if(_0x4815ed[_0x512f('0x2f')]){if(_0x4815ed[_0x512f('0x31')]){_0x4815ed[_0x512f('0x31')]=moment(_0x4815ed['dateEnd'])['add'](0x1,_0x512f('0x3c'));}else{_0x4815ed[_0x512f('0x31')]=moment(_0x4815ed[_0x512f('0x2f')])[_0x512f('0x3b')](0x1,_0x512f('0x3c'));}_['merge'](_0x909ac3[_0x512f('0x3e')],{'createdAt':{'$gte':_0x4815ed['dateStart'],'$lte':_0x4815ed[_0x512f('0x31')]}});}if(_0x4d6208['query'][_0x512f('0x3f')]){_0x909ac3[_0x512f('0x3e')]=_[_0x512f('0x3d')](_0x909ac3['where'],{'$or':_['map'](_0x909ac3['attributes'],function(_0x5d014a){var _0x23fbc5={};_0x23fbc5[_0x5d014a]={'$like':'%'+_0x4d6208['query'][_0x512f('0x3f')]+'%'};return _0x23fbc5;})});}_0x909ac3=_[_0x512f('0x3d')]({},_0x909ac3,_0x4d6208[_0x512f('0x40')]);var _0x22aa1e={'where':_0x909ac3[_0x512f('0x3e')]};return db[_0x512f('0x41')][_0x512f('0x1f')](_0x22aa1e)['then'](function(_0x14fdd8){_0x689ab9[_0x512f('0x1f')]=_0x14fdd8;if(_0x4d6208['query'][_0x512f('0x42')]){_0x909ac3['include']=[{'all':!![]}];}return db[_0x512f('0x41')][_0x512f('0x43')](_0x909ac3);})[_0x512f('0x27')](function(_0xcaf92a){_0x689ab9[_0x512f('0x44')]=_0xcaf92a;return _0x689ab9;})['then'](respondWithFilteredResult(_0x581a5d,_0x909ac3,_0x512f('0x50')))[_0x512f('0x48')](handleError(_0x581a5d,null,_0x512f('0x50')));};
\ No newline at end of file
+var _0x7fbe=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','end','json','offset','limit','status','Content-Range','apply','reject','save','update','then','error','stack','name','index','VoiceQueueReport','rawAttributes','model','keys','dateStart','query','dateEnd','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','add','day','merge','filter','map','options','includeAll','include','rows','show','params','find','catch','create','body','destroy','describe','nolimit','count','getVoiceQueuesReport'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0xd2cd94,_0x3bf735){_0xd2cd94=_0xd2cd94-0x0;var _0x844eaa=_0x7fbe[_0xd2cd94];return _0x844eaa;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe7fb('0x0'));var zipdir=require(_0xe7fb('0x1'));var jsonpatch=require(_0xe7fb('0x2'));var rp=require(_0xe7fb('0x3'));var moment=require(_0xe7fb('0x4'));var BPromise=require(_0xe7fb('0x5'));var Mustache=require(_0xe7fb('0x6'));var util=require(_0xe7fb('0x7'));var path=require(_0xe7fb('0x8'));var sox=require(_0xe7fb('0x9'));var csv=require(_0xe7fb('0xa'));var ejs=require(_0xe7fb('0xb'));var fs=require('fs');var _=require(_0xe7fb('0xc'));var squel=require(_0xe7fb('0xd'));var crypto=require('crypto');var jsforce=require(_0xe7fb('0xe'));var deskjs=require(_0xe7fb('0xf'));var toCsv=require(_0xe7fb('0xa'));var querystring=require(_0xe7fb('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require(_0xe7fb('0x11'));var logger=require(_0xe7fb('0x12'))(_0xe7fb('0x13'));var utils=require(_0xe7fb('0x14'));var config=require(_0xe7fb('0x15'));var db=require(_0xe7fb('0x16'))['db'];config[_0xe7fb('0x17')]=_[_0xe7fb('0x18')](config[_0xe7fb('0x17')],{'host':_0xe7fb('0x19'),'port':0x18eb});var socket=require(_0xe7fb('0x1a'))(new Redis(config[_0xe7fb('0x17')]));require(_0xe7fb('0x1b'))[_0xe7fb('0x1c')](socket);function respondWithStatusCode(_0x7fe4d3,_0x598729){_0x598729=_0x598729||0xcc;return function(_0x278b75){if(_0x278b75){return _0x7fe4d3[_0xe7fb('0x1d')](_0x598729);}return _0x7fe4d3['status'](_0x598729)[_0xe7fb('0x1e')]();};}function respondWithResult(_0x37eb9f,_0x482f7d){_0x482f7d=_0x482f7d||0xc8;return function(_0xa76acf){if(_0xa76acf){return _0x37eb9f['status'](_0x482f7d)[_0xe7fb('0x1f')](_0xa76acf);}};}function respondWithFilteredResult(_0x18d23c,_0x12603d){return function(_0x17e8a8){if(_0x17e8a8){var _0x562262=_0x17e8a8['count'],_0x892b0f=_0x12603d[_0xe7fb('0x20')],_0x5ebc87=_0x12603d[_0xe7fb('0x20')]+_0x12603d[_0xe7fb('0x21')],_0x293a47;if(_0x5ebc87>=_0x562262){_0x5ebc87=_0x562262;_0x293a47=0xc8;}else{_0x293a47=0xce;}_0x18d23c[_0xe7fb('0x22')](_0x293a47);return _0x18d23c['set'](_0xe7fb('0x23'),_0x892b0f+'-'+_0x5ebc87+'/'+_0x562262)['json'](_0x17e8a8);}return null;};}function patchUpdates(_0x11cae0){return function(_0x51f01f){try{jsonpatch[_0xe7fb('0x24')](_0x51f01f,_0x11cae0,!![]);}catch(_0x4ea664){return BPromise[_0xe7fb('0x25')](_0x4ea664);}return _0x51f01f[_0xe7fb('0x26')]();};}function saveUpdates(_0x4a9994,_0x143eb6){return function(_0x4742bd){if(_0x4742bd){return _0x4742bd[_0xe7fb('0x27')](_0x4a9994)['then'](function(_0x469d50){return _0x469d50;});}return null;};}function removeEntity(_0x469ead,_0x5da3d9){return function(_0x5bea27){if(_0x5bea27){return _0x5bea27['destroy']()[_0xe7fb('0x28')](function(){_0x469ead['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4026b1,_0x32e8b2){return function(_0x2996ae){if(!_0x2996ae){_0x4026b1['sendStatus'](0x194);}return _0x2996ae;};}function handleError(_0x6c930,_0x2b69c4){_0x2b69c4=_0x2b69c4||0x1f4;return function(_0x390f32){logger[_0xe7fb('0x29')](_0x390f32[_0xe7fb('0x2a')]);if(_0x390f32[_0xe7fb('0x2b')]){delete _0x390f32[_0xe7fb('0x2b')];}_0x6c930['status'](_0x2b69c4)['send'](_0x390f32);};}exports[_0xe7fb('0x2c')]=function(_0x3bdee9,_0xead63){var _0x4fd290={},_0xb1f2f4={},_0x251807={'count':0x0,'rows':[]};var _0xd3fffe=db[_0xe7fb('0x2d')][_0xe7fb('0x2e')];_0xb1f2f4[_0xe7fb('0x2f')]=_[_0xe7fb('0x30')](_0xd3fffe);var _0x3dd0be={'dateStart':_0x3bdee9['query'][_0xe7fb('0x31')],'dateEnd':_0x3bdee9[_0xe7fb('0x32')][_0xe7fb('0x33')]};delete _0x3bdee9['query']['dateStart'];delete _0x3bdee9[_0xe7fb('0x32')]['dateEnd'];_0xb1f2f4[_0xe7fb('0x32')]=_[_0xe7fb('0x30')](_0x3bdee9[_0xe7fb('0x32')]);_0xb1f2f4[_0xe7fb('0x34')]=_['intersection'](_0xb1f2f4[_0xe7fb('0x2f')],_0xb1f2f4[_0xe7fb('0x32')]);_0x4fd290[_0xe7fb('0x35')]=_[_0xe7fb('0x36')](_0xb1f2f4[_0xe7fb('0x2f')],qs['fields'](_0x3bdee9[_0xe7fb('0x32')][_0xe7fb('0x37')]));_0x4fd290[_0xe7fb('0x35')]=_0x4fd290[_0xe7fb('0x35')][_0xe7fb('0x38')]?_0x4fd290[_0xe7fb('0x35')]:_0xb1f2f4[_0xe7fb('0x2f')];if(!_0x3bdee9[_0xe7fb('0x32')][_0xe7fb('0x39')]('nolimit')){_0x4fd290[_0xe7fb('0x21')]=qs[_0xe7fb('0x21')](_0x3bdee9[_0xe7fb('0x32')]['limit']);_0x4fd290[_0xe7fb('0x20')]=qs[_0xe7fb('0x20')](_0x3bdee9[_0xe7fb('0x32')][_0xe7fb('0x20')]);}_0x4fd290[_0xe7fb('0x3a')]=qs[_0xe7fb('0x3b')](_0x3bdee9[_0xe7fb('0x32')][_0xe7fb('0x3b')]);_0x4fd290[_0xe7fb('0x3c')]=qs[_0xe7fb('0x34')](_[_0xe7fb('0x3d')](_0x3bdee9[_0xe7fb('0x32')],_0xb1f2f4[_0xe7fb('0x34')]));if(_0x3dd0be[_0xe7fb('0x31')]){if(_0x3dd0be[_0xe7fb('0x33')]){_0x3dd0be[_0xe7fb('0x33')]=moment(_0x3dd0be[_0xe7fb('0x33')])[_0xe7fb('0x3e')](0x1,_0xe7fb('0x3f'));}else{_0x3dd0be['dateEnd']=moment(_0x3dd0be[_0xe7fb('0x31')])[_0xe7fb('0x3e')](0x1,_0xe7fb('0x3f'));}_[_0xe7fb('0x40')](_0x4fd290['where'],{'createdAt':{'$gte':_0x3dd0be[_0xe7fb('0x31')],'$lte':_0x3dd0be[_0xe7fb('0x33')]}});}if(_0x3bdee9[_0xe7fb('0x32')][_0xe7fb('0x41')]){_0x4fd290['where']=_[_0xe7fb('0x40')](_0x4fd290[_0xe7fb('0x3c')],{'$or':_[_0xe7fb('0x42')](_0x4fd290[_0xe7fb('0x35')],function(_0x468d16){var _0xb729fc={};_0xb729fc[_0x468d16]={'$like':'%'+_0x3bdee9['query'][_0xe7fb('0x41')]+'%'};return _0xb729fc;})});}_0x4fd290=_[_0xe7fb('0x40')]({},_0x4fd290,_0x3bdee9[_0xe7fb('0x43')]);var _0x4b263d={'where':_0x4fd290[_0xe7fb('0x3c')]};return db[_0xe7fb('0x2d')]['count'](_0x4b263d)['then'](function(_0x5a01ae){_0x251807['count']=_0x5a01ae;if(_0x3bdee9['query'][_0xe7fb('0x44')]){_0x4fd290[_0xe7fb('0x45')]=[{'all':!![]}];}return db[_0xe7fb('0x2d')]['findAll'](_0x4fd290);})[_0xe7fb('0x28')](function(_0x58d743){_0x251807[_0xe7fb('0x46')]=_0x58d743;return _0x251807;})[_0xe7fb('0x28')](respondWithFilteredResult(_0xead63,_0x4fd290))['catch'](handleError(_0xead63,null));};exports[_0xe7fb('0x47')]=function(_0x2a3422,_0x240efa){var _0x1d07d9={'raw':![],'where':{'id':_0x2a3422[_0xe7fb('0x48')]['id']}},_0x54dbd8={};_0x54dbd8[_0xe7fb('0x2f')]=_[_0xe7fb('0x30')](db['VoiceQueueReport'][_0xe7fb('0x2e')]);_0x54dbd8[_0xe7fb('0x32')]=_[_0xe7fb('0x30')](_0x2a3422[_0xe7fb('0x32')]);_0x54dbd8[_0xe7fb('0x34')]=_['intersection'](_0x54dbd8[_0xe7fb('0x2f')],_0x54dbd8['query']);_0x1d07d9[_0xe7fb('0x35')]=_[_0xe7fb('0x36')](_0x54dbd8[_0xe7fb('0x2f')],qs[_0xe7fb('0x37')](_0x2a3422[_0xe7fb('0x32')]['fields']));_0x1d07d9[_0xe7fb('0x35')]=_0x1d07d9['attributes']['length']?_0x1d07d9[_0xe7fb('0x35')]:_0x54dbd8[_0xe7fb('0x2f')];if(_0x2a3422[_0xe7fb('0x32')]['includeAll']){_0x1d07d9[_0xe7fb('0x45')]=[{'all':!![]}];}_0x1d07d9=_[_0xe7fb('0x40')]({},_0x1d07d9,_0x2a3422['options']);return db['VoiceQueueReport'][_0xe7fb('0x49')](_0x1d07d9)[_0xe7fb('0x28')](handleEntityNotFound(_0x240efa,null))[_0xe7fb('0x28')](respondWithResult(_0x240efa,null))[_0xe7fb('0x4a')](handleError(_0x240efa,null));};exports[_0xe7fb('0x4b')]=function(_0x1f0533,_0x18a590){return db[_0xe7fb('0x2d')]['create'](_0x1f0533[_0xe7fb('0x4c')],{})['then'](respondWithResult(_0x18a590,0xc9))[_0xe7fb('0x4a')](handleError(_0x18a590,null));};exports[_0xe7fb('0x27')]=function(_0x5cedfb,_0x25347b){if(_0x5cedfb['body']['id']){delete _0x5cedfb[_0xe7fb('0x4c')]['id'];}return db['VoiceQueueReport'][_0xe7fb('0x49')]({'where':{'id':_0x5cedfb['params']['id']}})[_0xe7fb('0x28')](handleEntityNotFound(_0x25347b,null))['then'](saveUpdates(_0x5cedfb[_0xe7fb('0x4c')],null))[_0xe7fb('0x28')](respondWithResult(_0x25347b,null))[_0xe7fb('0x4a')](handleError(_0x25347b,null));};exports[_0xe7fb('0x4d')]=function(_0xb8179a,_0x2f959d){return db[_0xe7fb('0x2d')]['find']({'where':{'id':_0xb8179a['params']['id']}})[_0xe7fb('0x28')](handleEntityNotFound(_0x2f959d,null))['then'](removeEntity(_0x2f959d,null))['catch'](handleError(_0x2f959d,null));};exports['describe']=function(_0x50b8df,_0x539252){return db[_0xe7fb('0x2d')][_0xe7fb('0x4e')]()[_0xe7fb('0x28')](respondWithResult(_0x539252,null))[_0xe7fb('0x4a')](handleError(_0x539252,null));};exports['getVoiceQueuesReport']=function(_0x37af37,_0x236b35){var _0x195e52={},_0x4a9372={},_0x56c512={'count':0x0,'rows':[]};_0x4a9372[_0xe7fb('0x2f')]=_[_0xe7fb('0x30')](db[_0xe7fb('0x2d')]['rawAttributes']);var _0x27f860={'dateStart':_0x37af37[_0xe7fb('0x32')][_0xe7fb('0x31')],'dateEnd':_0x37af37[_0xe7fb('0x32')]['dateEnd']};delete _0x37af37['query'][_0xe7fb('0x31')];delete _0x37af37[_0xe7fb('0x32')][_0xe7fb('0x33')];_0x4a9372[_0xe7fb('0x32')]=_[_0xe7fb('0x30')](_0x37af37['query']);_0x4a9372[_0xe7fb('0x34')]=_[_0xe7fb('0x36')](_0x4a9372[_0xe7fb('0x2f')],_0x4a9372['query']);_0x195e52['attributes']=_[_0xe7fb('0x36')](_0x4a9372[_0xe7fb('0x2f')],qs[_0xe7fb('0x37')](_0x37af37[_0xe7fb('0x32')][_0xe7fb('0x37')]));_0x195e52[_0xe7fb('0x35')]=_0x195e52['attributes'][_0xe7fb('0x38')]?_0x195e52[_0xe7fb('0x35')]:_0x4a9372[_0xe7fb('0x2f')];if(!_0x37af37[_0xe7fb('0x32')][_0xe7fb('0x39')](_0xe7fb('0x4f'))){_0x195e52['limit']=qs[_0xe7fb('0x21')](_0x37af37['query'][_0xe7fb('0x21')]);_0x195e52[_0xe7fb('0x20')]=qs[_0xe7fb('0x20')](_0x37af37[_0xe7fb('0x32')]['offset']);}_0x195e52['order']=qs[_0xe7fb('0x3b')](_0x37af37[_0xe7fb('0x32')][_0xe7fb('0x3b')]);_0x195e52[_0xe7fb('0x3c')]=qs[_0xe7fb('0x34')](_['pick'](_0x37af37[_0xe7fb('0x32')],_0x4a9372['filters']));if(_0x27f860[_0xe7fb('0x31')]){if(_0x27f860['dateEnd']){_0x27f860['dateEnd']=moment(_0x27f860[_0xe7fb('0x33')])[_0xe7fb('0x3e')](0x1,_0xe7fb('0x3f'));}else{_0x27f860['dateEnd']=moment(_0x27f860[_0xe7fb('0x31')])[_0xe7fb('0x3e')](0x1,_0xe7fb('0x3f'));}_[_0xe7fb('0x40')](_0x195e52[_0xe7fb('0x3c')],{'createdAt':{'$gte':_0x27f860['dateStart'],'$lte':_0x27f860[_0xe7fb('0x33')]}});}if(_0x37af37[_0xe7fb('0x32')]['filter']){_0x195e52[_0xe7fb('0x3c')]=_[_0xe7fb('0x40')](_0x195e52['where'],{'$or':_[_0xe7fb('0x42')](_0x195e52['attributes'],function(_0x2705ef){var _0x1dc9c1={};_0x1dc9c1[_0x2705ef]={'$like':'%'+_0x37af37[_0xe7fb('0x32')]['filter']+'%'};return _0x1dc9c1;})});}_0x195e52=_[_0xe7fb('0x40')]({},_0x195e52,_0x37af37[_0xe7fb('0x43')]);var _0x2c558a={'where':_0x195e52[_0xe7fb('0x3c')]};return db[_0xe7fb('0x2d')][_0xe7fb('0x50')](_0x2c558a)[_0xe7fb('0x28')](function(_0x187040){_0x56c512['count']=_0x187040;if(_0x37af37['query'][_0xe7fb('0x44')]){_0x195e52[_0xe7fb('0x45')]=[{'all':!![]}];}return db[_0xe7fb('0x2d')]['findAll'](_0x195e52);})['then'](function(_0x1ac1fd){_0x56c512[_0xe7fb('0x46')]=_0x1ac1fd;return _0x56c512;})[_0xe7fb('0x28')](respondWithFilteredResult(_0x236b35,_0x195e52,_0xe7fb('0x51')))[_0xe7fb('0x4a')](handleError(_0x236b35,null,_0xe7fb('0x51')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e20=['emit','hook','exports','events','../../mysqldb','VoiceQueueReport','setMaxListeners','save','update','remove'];(function(_0x319130,_0x4714b2){var _0x367fa4=function(_0x3e1a12){while(--_0x3e1a12){_0x319130['push'](_0x319130['shift']());}};_0x367fa4(++_0x4714b2);}(_0x0e20,0x16b));var _0x00e2=function(_0xb583d7,_0x57474e){_0xb583d7=_0xb583d7-0x0;var _0x79d232=_0x0e20[_0xb583d7];return _0x79d232;};'use strict';var EventEmitter=require(_0x00e2('0x0'));var VoiceQueueReport=require(_0x00e2('0x1'))['db'][_0x00e2('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0x00e2('0x3')](0x0);var events={'afterCreate':_0x00e2('0x4'),'afterUpdate':_0x00e2('0x5'),'afterDestroy':_0x00e2('0x6')};function emitEvent(_0x26b079){return function(_0x438fdd,_0x44580b,_0x57bbdf){VoiceQueueReportEvents['emit'](_0x26b079+':'+_0x438fdd['id'],_0x438fdd);VoiceQueueReportEvents[_0x00e2('0x7')](_0x26b079,_0x438fdd);_0x57bbdf(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceQueueReport[_0x00e2('0x8')](e,emitEvent(event));}}module[_0x00e2('0x9')]=VoiceQueueReportEvents;
\ No newline at end of file
+var _0x016b=['exports','../../mysqldb','save','update','emit','hasOwnProperty','hook'];(function(_0x5e61fa,_0x130882){var _0x3db999=function(_0x1be2e7){while(--_0x1be2e7){_0x5e61fa['push'](_0x5e61fa['shift']());}};_0x3db999(++_0x130882);}(_0x016b,0xa2));var _0xb016=function(_0x12b403,_0x19f02e){_0x12b403=_0x12b403-0x0;var _0x877163=_0x016b[_0x12b403];return _0x877163;};'use strict';var EventEmitter=require('events');var VoiceQueueReport=require(_0xb016('0x0'))['db']['VoiceQueueReport'];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb016('0x1'),'afterUpdate':_0xb016('0x2'),'afterDestroy':'remove'};function emitEvent(_0x4e5fa7){return function(_0x377d9d,_0x51eafa,_0x5a6df2){VoiceQueueReportEvents[_0xb016('0x3')](_0x4e5fa7+':'+_0x377d9d['id'],_0x377d9d);VoiceQueueReportEvents[_0xb016('0x3')](_0x4e5fa7,_0x377d9d);_0x5a6df2(null);};}for(var e in events){if(events[_0xb016('0x4')](e)){var event=events[e];VoiceQueueReport[_0xb016('0x5')](e,emitEvent(event));}}module[_0xb016('0x6')]=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x808b=['lodash','util','../../config/logger','api','moment','./voiceQueueReport.attributes','define','VoiceQueueReport','report_queue','uniqueid','calleridnum'];(function(_0x1c79f0,_0x1bf492){var _0xeb63b4=function(_0x18996c){while(--_0x18996c){_0x1c79f0['push'](_0x1c79f0['shift']());}};_0xeb63b4(++_0x1bf492);}(_0x808b,0x155));var _0xb808=function(_0x420f2c,_0x220e65){_0x420f2c=_0x420f2c-0x0;var _0x2f7b3a=_0x808b[_0x420f2c];return _0x2f7b3a;};'use strict';var _=require(_0xb808('0x0'));var util=require(_0xb808('0x1'));var logger=require(_0xb808('0x2'))(_0xb808('0x3'));var moment=require(_0xb808('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var attributes=require(_0xb808('0x5'));module['exports']=function(_0x5dad06,_0x483f86){return _0x5dad06[_0xb808('0x6')](_0xb808('0x7'),attributes,{'tableName':_0xb808('0x8'),'paranoid':![],'indexes':[{'fields':[_0xb808('0x9')]},{'fields':[_0xb808('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x76f4=['calleridnum','lodash','../../config/logger','api','bluebird','request-promise','define','VoiceQueueReport','report_queue','uniqueid'];(function(_0x1a5494,_0x90ac6e){var _0x181741=function(_0x39b7ad){while(--_0x39b7ad){_0x1a5494['push'](_0x1a5494['shift']());}};_0x181741(++_0x90ac6e);}(_0x76f4,0xe7));var _0x476f=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x76f4[_0x24061a];return _0x82054e;};'use strict';var _=require(_0x476f('0x0'));var util=require('util');var logger=require(_0x476f('0x1'))(_0x476f('0x2'));var moment=require('moment');var BPromise=require(_0x476f('0x3'));var rp=require(_0x476f('0x4'));var attributes=require('./voiceQueueReport.attributes');module['exports']=function(_0x5d3fbe,_0xfba78a){return _0x5d3fbe[_0x476f('0x5')](_0x476f('0x6'),attributes,{'tableName':_0x476f('0x7'),'paranoid':![],'indexes':[{'fields':[_0x476f('0x8')]},{'fields':[_0x476f('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeae7=['./voiceQueueReport.socket','register','request','then','info','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceQueueReport','VoiceQueueReport','findAll','options','raw','attributes','map','include','model','debug','CreateVoiceQueueReport','create','body','UpdateVoiceQueueReport','update','limit','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','redis','socket.io-emitter'];(function(_0x518997,_0x262720){var _0x5ebb79=function(_0x5bdae5){while(--_0x5bdae5){_0x518997['push'](_0x518997['shift']());}};_0x5ebb79(++_0x262720);}(_0xeae7,0x1a1));var _0x7eae=function(_0x368587,_0x1b6554){_0x368587=_0x368587-0x0;var _0x42d33c=_0xeae7[_0x368587];return _0x42d33c;};'use strict';var _=require('lodash');var util=require(_0x7eae('0x0'));var moment=require(_0x7eae('0x1'));var BPromise=require(_0x7eae('0x2'));var rs=require('randomstring');var fs=require('fs');var db=require(_0x7eae('0x3'))['db'];var utils=require(_0x7eae('0x4'));var logger=require(_0x7eae('0x5'))(_0x7eae('0x6'));var config=require(_0x7eae('0x7'));var jayson=require(_0x7eae('0x8'));var client=jayson[_0x7eae('0x9')]['http']({'port':0x232a});config['redis']=_[_0x7eae('0xa')](config[_0x7eae('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x7eae('0xc'))(config['redis']);require(_0x7eae('0xd'))[_0x7eae('0xe')](socket);function respondWithRpcPromise(_0x1b6f32,_0x2f2efe,_0x7b9f34){return new BPromise(function(_0x3a0f9b,_0x42a064){return client[_0x7eae('0xf')](_0x1b6f32,_0x7b9f34)[_0x7eae('0x10')](function(_0x3758e4){logger[_0x7eae('0x11')](_0x7eae('0x12'),_0x2f2efe,_0x7eae('0x13'));logger['debug'](_0x7eae('0x14'),_0x2f2efe,_0x7eae('0x13'),JSON[_0x7eae('0x15')](_0x3758e4));if(_0x3758e4[_0x7eae('0x16')]){if(_0x3758e4[_0x7eae('0x16')][_0x7eae('0x17')]===0x1f4){logger['error'](_0x7eae('0x12'),_0x2f2efe,_0x3758e4[_0x7eae('0x16')][_0x7eae('0x18')]);return _0x42a064(_0x3758e4['error']['message']);}logger[_0x7eae('0x16')](_0x7eae('0x12'),_0x2f2efe,_0x3758e4['error'][_0x7eae('0x18')]);return _0x3a0f9b(_0x3758e4['error'][_0x7eae('0x18')]);}else{logger[_0x7eae('0x11')](_0x7eae('0x12'),_0x2f2efe,'request\x20sent');_0x3a0f9b(_0x3758e4[_0x7eae('0x19')]['message']);}})[_0x7eae('0x1a')](function(_0x37c1c7){logger[_0x7eae('0x16')]('VoiceQueueReport,\x20%s,\x20%s',_0x2f2efe,_0x37c1c7);_0x42a064(_0x37c1c7);});});}exports[_0x7eae('0x1b')]=function(_0xc2ebbe){var _0x567b81=this;return new Promise(function(_0x12dfed,_0x5c1209){return db[_0x7eae('0x1c')][_0x7eae('0x1d')]({'raw':_0xc2ebbe[_0x7eae('0x1e')]?_0xc2ebbe['options'][_0x7eae('0x1f')]===undefined?!![]:![]:!![],'where':_0xc2ebbe[_0x7eae('0x1e')]?_0xc2ebbe[_0x7eae('0x1e')]['where']||null:null,'attributes':_0xc2ebbe[_0x7eae('0x1e')]?_0xc2ebbe[_0x7eae('0x1e')][_0x7eae('0x20')]||null:null,'limit':_0xc2ebbe[_0x7eae('0x1e')]?_0xc2ebbe[_0x7eae('0x1e')]['limit']||null:null,'include':_0xc2ebbe['options']?_0xc2ebbe['options']['include']?_[_0x7eae('0x21')](_0xc2ebbe[_0x7eae('0x1e')][_0x7eae('0x22')],function(_0x23fff2){return{'model':db[_0x23fff2[_0x7eae('0x23')]],'as':_0x23fff2['as'],'attributes':_0x23fff2[_0x7eae('0x20')],'include':_0x23fff2[_0x7eae('0x22')]?_['map'](_0x23fff2[_0x7eae('0x22')],function(_0x18bf57){return{'model':db[_0x18bf57[_0x7eae('0x23')]],'as':_0x18bf57['as'],'attributes':_0x18bf57[_0x7eae('0x20')],'include':_0x18bf57[_0x7eae('0x22')]?_['map'](_0x18bf57[_0x7eae('0x22')],function(_0x1ce98e){return{'model':db[_0x1ce98e[_0x7eae('0x23')]],'as':_0x1ce98e['as'],'attributes':_0x1ce98e['attributes']};}):[]};}):[]};}):[]:[]})[_0x7eae('0x10')](function(_0x3dca0a){logger[_0x7eae('0x11')](_0x7eae('0x1b'),_0xc2ebbe);logger[_0x7eae('0x24')](_0x7eae('0x1b'),_0xc2ebbe,JSON[_0x7eae('0x15')](_0x3dca0a));_0x12dfed(_0x3dca0a);})[_0x7eae('0x1a')](function(_0x3ce487){logger[_0x7eae('0x16')](_0x7eae('0x1b'),_0x3ce487['message'],_0xc2ebbe);_0x5c1209(_0x567b81[_0x7eae('0x16')](0x1f4,_0x3ce487['message']));});});};exports[_0x7eae('0x25')]=function(_0x53f1d8){var _0x1d8041=this;return new Promise(function(_0x4ada84,_0xd159af){return db['VoiceQueueReport'][_0x7eae('0x26')](_0x53f1d8[_0x7eae('0x27')],{'raw':_0x53f1d8[_0x7eae('0x1e')]?_0x53f1d8['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x5543a0){logger[_0x7eae('0x11')]('CreateVoiceQueueReport',_0x53f1d8);logger[_0x7eae('0x24')](_0x7eae('0x25'),_0x53f1d8,JSON[_0x7eae('0x15')](_0x5543a0));_0x4ada84(_0x5543a0);})[_0x7eae('0x1a')](function(_0x3aa871){logger[_0x7eae('0x16')](_0x7eae('0x25'),_0x3aa871[_0x7eae('0x18')],_0x53f1d8);_0xd159af(_0x1d8041[_0x7eae('0x16')](0x1f4,_0x3aa871['message']));});});};exports[_0x7eae('0x28')]=function(_0x31a883){var _0x2b14c5=this;return new Promise(function(_0xae7fda,_0x3e30b7){return db[_0x7eae('0x1c')][_0x7eae('0x29')](_0x31a883['body'],{'raw':_0x31a883[_0x7eae('0x1e')]?_0x31a883[_0x7eae('0x1e')][_0x7eae('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x31a883[_0x7eae('0x1e')]?_0x31a883[_0x7eae('0x1e')]['where']||null:null,'attributes':_0x31a883[_0x7eae('0x1e')]?_0x31a883['options'][_0x7eae('0x20')]||null:null,'limit':_0x31a883['options']?_0x31a883[_0x7eae('0x1e')][_0x7eae('0x2a')]||null:null})[_0x7eae('0x10')](function(_0x161408){logger[_0x7eae('0x11')](_0x7eae('0x28'),_0x31a883);logger['debug'](_0x7eae('0x28'),_0x31a883,JSON[_0x7eae('0x15')](_0x161408));_0xae7fda(_0x161408);})[_0x7eae('0x1a')](function(_0x49f88a){logger[_0x7eae('0x16')](_0x7eae('0x28'),_0x49f88a['message'],_0x31a883);_0x3e30b7(_0x2b14c5[_0x7eae('0x16')](0x1f4,_0x49f88a['message']));});});};
\ No newline at end of file
+var _0x35bf=['catch','GetVoiceQueueReport','VoiceQueueReport','findAll','options','raw','attributes','limit','include','model','map','debug','stringify','create','CreateVoiceQueueReport','update','body','where','UpdateVoiceQueueReport','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','request','then','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','VoiceQueueReport,\x20%s,\x20%s,\x20%s','error','message','info','result'];(function(_0x4a1879,_0x1b1515){var _0x158a2d=function(_0x3df50c){while(--_0x3df50c){_0x4a1879['push'](_0x4a1879['shift']());}};_0x158a2d(++_0x1b1515);}(_0x35bf,0x97));var _0xf35b=function(_0x552b17,_0x36e745){_0x552b17=_0x552b17-0x0;var _0x31d50c=_0x35bf[_0x552b17];return _0x31d50c;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xf35b('0x0'));var BPromise=require(_0xf35b('0x1'));var rs=require(_0xf35b('0x2'));var fs=require('fs');var Redis=require(_0xf35b('0x3'));var db=require(_0xf35b('0x4'))['db'];var utils=require(_0xf35b('0x5'));var logger=require(_0xf35b('0x6'))(_0xf35b('0x7'));var config=require(_0xf35b('0x8'));var jayson=require(_0xf35b('0x9'));var client=jayson['client'][_0xf35b('0xa')]({'port':0x232a});config[_0xf35b('0xb')]=_['defaults'](config['redis'],{'host':_0xf35b('0xc'),'port':0x18eb});var socket=require(_0xf35b('0xd'))(new Redis(config[_0xf35b('0xb')]));require(_0xf35b('0xe'))[_0xf35b('0xf')](socket);function respondWithRpcPromise(_0x1d1a88,_0x314fff,_0x408ece){return new BPromise(function(_0x3b48c7,_0xd78c7f){return client[_0xf35b('0x10')](_0x1d1a88,_0x408ece)[_0xf35b('0x11')](function(_0x4881fa){logger['info'](_0xf35b('0x12'),_0x314fff,_0xf35b('0x13'));logger['debug'](_0xf35b('0x14'),_0x314fff,_0xf35b('0x13'),JSON['stringify'](_0x4881fa));if(_0x4881fa['error']){if(_0x4881fa['error']['code']===0x1f4){logger[_0xf35b('0x15')]('VoiceQueueReport,\x20%s,\x20%s',_0x314fff,_0x4881fa[_0xf35b('0x15')][_0xf35b('0x16')]);return _0xd78c7f(_0x4881fa[_0xf35b('0x15')][_0xf35b('0x16')]);}logger[_0xf35b('0x15')](_0xf35b('0x12'),_0x314fff,_0x4881fa[_0xf35b('0x15')][_0xf35b('0x16')]);return _0x3b48c7(_0x4881fa[_0xf35b('0x15')][_0xf35b('0x16')]);}else{logger[_0xf35b('0x17')](_0xf35b('0x12'),_0x314fff,_0xf35b('0x13'));_0x3b48c7(_0x4881fa[_0xf35b('0x18')][_0xf35b('0x16')]);}})[_0xf35b('0x19')](function(_0x202033){logger[_0xf35b('0x15')](_0xf35b('0x12'),_0x314fff,_0x202033);_0xd78c7f(_0x202033);});});}exports[_0xf35b('0x1a')]=function(_0x1248d2){var _0x1b7c05=this;return new Promise(function(_0x25d224,_0x3b951e){return db[_0xf35b('0x1b')][_0xf35b('0x1c')]({'raw':_0x1248d2[_0xf35b('0x1d')]?_0x1248d2['options'][_0xf35b('0x1e')]===undefined?!![]:![]:!![],'where':_0x1248d2[_0xf35b('0x1d')]?_0x1248d2[_0xf35b('0x1d')]['where']||null:null,'attributes':_0x1248d2[_0xf35b('0x1d')]?_0x1248d2[_0xf35b('0x1d')][_0xf35b('0x1f')]||null:null,'limit':_0x1248d2[_0xf35b('0x1d')]?_0x1248d2[_0xf35b('0x1d')][_0xf35b('0x20')]||null:null,'include':_0x1248d2[_0xf35b('0x1d')]?_0x1248d2[_0xf35b('0x1d')][_0xf35b('0x21')]?_['map'](_0x1248d2[_0xf35b('0x1d')][_0xf35b('0x21')],function(_0x406538){return{'model':db[_0x406538[_0xf35b('0x22')]],'as':_0x406538['as'],'attributes':_0x406538[_0xf35b('0x1f')],'include':_0x406538[_0xf35b('0x21')]?_[_0xf35b('0x23')](_0x406538['include'],function(_0x45c400){return{'model':db[_0x45c400[_0xf35b('0x22')]],'as':_0x45c400['as'],'attributes':_0x45c400[_0xf35b('0x1f')],'include':_0x45c400[_0xf35b('0x21')]?_['map'](_0x45c400[_0xf35b('0x21')],function(_0x37b958){return{'model':db[_0x37b958[_0xf35b('0x22')]],'as':_0x37b958['as'],'attributes':_0x37b958[_0xf35b('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4ac40c){logger[_0xf35b('0x17')](_0xf35b('0x1a'),_0x1248d2);logger[_0xf35b('0x24')]('GetVoiceQueueReport',_0x1248d2,JSON[_0xf35b('0x25')](_0x4ac40c));_0x25d224(_0x4ac40c);})[_0xf35b('0x19')](function(_0x72287e){logger[_0xf35b('0x15')](_0xf35b('0x1a'),_0x72287e[_0xf35b('0x16')],_0x1248d2);_0x3b951e(_0x1b7c05['error'](0x1f4,_0x72287e[_0xf35b('0x16')]));});});};exports['CreateVoiceQueueReport']=function(_0x11f786){var _0x544439=this;return new Promise(function(_0x59580a,_0x416c72){return db[_0xf35b('0x1b')][_0xf35b('0x26')](_0x11f786['body'],{'raw':_0x11f786[_0xf35b('0x1d')]?_0x11f786['options'][_0xf35b('0x1e')]===undefined?!![]:![]:!![]})[_0xf35b('0x11')](function(_0x11f409){logger['info'](_0xf35b('0x27'),_0x11f786);logger[_0xf35b('0x24')](_0xf35b('0x27'),_0x11f786,JSON[_0xf35b('0x25')](_0x11f409));_0x59580a(_0x11f409);})['catch'](function(_0x22e125){logger['error'](_0xf35b('0x27'),_0x22e125[_0xf35b('0x16')],_0x11f786);_0x416c72(_0x544439['error'](0x1f4,_0x22e125[_0xf35b('0x16')]));});});};exports['UpdateVoiceQueueReport']=function(_0x4868ea){var _0x577c6b=this;return new Promise(function(_0x449f47,_0x1fe147){return db[_0xf35b('0x1b')][_0xf35b('0x28')](_0x4868ea[_0xf35b('0x29')],{'raw':_0x4868ea[_0xf35b('0x1d')]?_0x4868ea['options'][_0xf35b('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4868ea[_0xf35b('0x1d')]?_0x4868ea[_0xf35b('0x1d')][_0xf35b('0x2a')]||null:null,'attributes':_0x4868ea[_0xf35b('0x1d')]?_0x4868ea[_0xf35b('0x1d')]['attributes']||null:null,'limit':_0x4868ea['options']?_0x4868ea[_0xf35b('0x1d')][_0xf35b('0x20')]||null:null})[_0xf35b('0x11')](function(_0x16a8a2){logger[_0xf35b('0x17')](_0xf35b('0x2b'),_0x4868ea);logger[_0xf35b('0x24')](_0xf35b('0x2b'),_0x4868ea,JSON[_0xf35b('0x25')](_0x16a8a2));_0x449f47(_0x16a8a2);})[_0xf35b('0x19')](function(_0x1832f3){logger[_0xf35b('0x15')](_0xf35b('0x2b'),_0x1832f3['message'],_0x4868ea);_0x1fe147(_0x577c6b[_0xf35b('0x15')](0x1f4,_0x1832f3[_0xf35b('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa2c=['remove','update','register','voiceQueueReport:','./voiceQueueReport.events','save'];(function(_0x2a19e7,_0x53aa4d){var _0xdb7b37=function(_0x13396c){while(--_0x13396c){_0x2a19e7['push'](_0x2a19e7['shift']());}};_0xdb7b37(++_0x53aa4d);}(_0xfa2c,0x1e4));var _0xcfa2=function(_0x443e9e,_0x3c1baf){_0x443e9e=_0x443e9e-0x0;var _0x5db340=_0xfa2c[_0x443e9e];return _0x5db340;};'use strict';var VoiceQueueReportEvents=require(_0xcfa2('0x0'));var events=[_0xcfa2('0x1'),_0xcfa2('0x2'),_0xcfa2('0x3')];function createListener(_0x147c61,_0x1651e3){return function(_0x51e80a){_0x1651e3['emit'](_0x147c61,_0x51e80a);};}function removeListener(_0x6ad29f,_0x36229e){return function(){VoiceQueueReportEvents['removeListener'](_0x6ad29f,_0x36229e);};}exports[_0xcfa2('0x4')]=function(_0x50c7ce){for(var _0x272749=0x0,_0x21496e=events['length'];_0x272749<_0x21496e;_0x272749++){var _0x306099=events[_0x272749];var _0x516f19=createListener(_0xcfa2('0x5')+_0x306099,_0x50c7ce);VoiceQueueReportEvents['on'](_0x306099,_0x516f19);}};
\ No newline at end of file
+var _0xc8ee=['removeListener','length','voiceQueueReport:','./voiceQueueReport.events','save','remove','update','emit'];(function(_0x2dee54,_0xcd7333){var _0xa8c85a=function(_0xd18878){while(--_0xd18878){_0x2dee54['push'](_0x2dee54['shift']());}};_0xa8c85a(++_0xcd7333);}(_0xc8ee,0xcb));var _0xec8e=function(_0x3ea3d3,_0x269d61){_0x3ea3d3=_0x3ea3d3-0x0;var _0x1615d6=_0xc8ee[_0x3ea3d3];return _0x1615d6;};'use strict';var VoiceQueueReportEvents=require(_0xec8e('0x0'));var events=[_0xec8e('0x1'),_0xec8e('0x2'),_0xec8e('0x3')];function createListener(_0x4b41f6,_0x10bb71){return function(_0x4bd57c){_0x10bb71[_0xec8e('0x4')](_0x4b41f6,_0x4bd57c);};}function removeListener(_0x25a714,_0x35fa4e){return function(){VoiceQueueReportEvents[_0xec8e('0x5')](_0x25a714,_0x35fa4e);};}exports['register']=function(_0x2fbb2b){for(var _0x265429=0x0,_0x2bfe76=events[_0xec8e('0x6')];_0x265429<_0x2bfe76;_0x265429++){var _0x175f26=events[_0x265429];var _0x22abfb=createListener(_0xec8e('0x7')+_0x175f26,_0x2fbb2b);VoiceQueueReportEvents['on'](_0x175f26,_0x22abfb);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6c0=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueuesLog.controller','get','isAuthenticated','/:id','show','post','create','put','update','delete','destroy','exports','multer','path'];(function(_0x458ed6,_0x504646){var _0xa5dfd9=function(_0x504e7b){while(--_0x504e7b){_0x458ed6['push'](_0x458ed6['shift']());}};_0xa5dfd9(++_0x504646);}(_0xc6c0,0x13e));var _0x0c6c=function(_0x2bf466,_0x4929a5){_0x2bf466=_0x2bf466-0x0;var _0x856885=_0xc6c0[_0x2bf466];return _0x856885;};'use strict';var multer=require(_0x0c6c('0x0'));var util=require('util');var path=require(_0x0c6c('0x1'));var timeout=require(_0x0c6c('0x2'));var express=require(_0x0c6c('0x3'));var router=express[_0x0c6c('0x4')]();var auth=require(_0x0c6c('0x5'));var interaction=require(_0x0c6c('0x6'));var config=require(_0x0c6c('0x7'));var controller=require(_0x0c6c('0x8'));router[_0x0c6c('0x9')]('/',auth[_0x0c6c('0xa')](),controller['index']);router['get'](_0x0c6c('0xb'),auth[_0x0c6c('0xa')](),controller[_0x0c6c('0xc')]);router[_0x0c6c('0xd')]('/',auth[_0x0c6c('0xa')](),controller[_0x0c6c('0xe')]);router[_0x0c6c('0xf')](_0x0c6c('0xb'),auth[_0x0c6c('0xa')](),controller[_0x0c6c('0x10')]);router[_0x0c6c('0x11')](_0x0c6c('0xb'),auth[_0x0c6c('0xa')](),controller[_0x0c6c('0x12')]);module[_0x0c6c('0x13')]=router;
\ No newline at end of file
+var _0x2015=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./voiceQueuesLog.controller','get','isAuthenticated','index','/:id','show','post','put','update'];(function(_0x4d2263,_0x3fbf0d){var _0x24aba0=function(_0x389a59){while(--_0x389a59){_0x4d2263['push'](_0x4d2263['shift']());}};_0x24aba0(++_0x3fbf0d);}(_0x2015,0x193));var _0x5201=function(_0x34a3e3,_0x4c825c){_0x34a3e3=_0x34a3e3-0x0;var _0x2fe3e7=_0x2015[_0x34a3e3];return _0x2fe3e7;};'use strict';var multer=require(_0x5201('0x0'));var util=require(_0x5201('0x1'));var path=require(_0x5201('0x2'));var timeout=require(_0x5201('0x3'));var express=require(_0x5201('0x4'));var router=express[_0x5201('0x5')]();var auth=require(_0x5201('0x6'));var interaction=require(_0x5201('0x7'));var config=require('../../config/environment');var controller=require(_0x5201('0x8'));router[_0x5201('0x9')]('/',auth[_0x5201('0xa')](),controller[_0x5201('0xb')]);router[_0x5201('0x9')](_0x5201('0xc'),auth[_0x5201('0xa')](),controller[_0x5201('0xd')]);router[_0x5201('0xe')]('/',auth[_0x5201('0xa')](),controller['create']);router[_0x5201('0xf')](_0x5201('0xc'),auth['isAuthenticated'](),controller[_0x5201('0x10')]);router[_0x5201('0x11')](_0x5201('0xc'),auth['isAuthenticated'](),controller[_0x5201('0x12')]);module[_0x5201('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['exports','STRING','DATE','format'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x1b5bc2,_0x453d84){_0x1b5bc2=_0x1b5bc2-0x0;var _0x1a5382=_0x7fbe[_0x1b5bc2];return _0x1a5382;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');module[_0xe7fb('0x0')]={'time':{'type':Sequelize[_0xe7fb('0x1')]},'callid':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0xe7fb('0x1')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0xe7fb('0x2')],'allowNull':![],'defaultValue':moment()[_0xe7fb('0x3')]('YYYY-MM-DD\x20HH:mm:ss')}};
\ No newline at end of file
+var _0xeec6=['sequelize','moment','exports','STRING','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x527b40,_0x4d02a4){var _0x2150a4=function(_0x48357f){while(--_0x48357f){_0x527b40['push'](_0x527b40['shift']());}};_0x2150a4(++_0x4d02a4);}(_0xeec6,0x1c2));var _0x6eec=function(_0x8a217e,_0x450bfc){_0x8a217e=_0x8a217e-0x0;var _0x3fc350=_0xeec6[_0x8a217e];return _0x3fc350;};'use strict';var Sequelize=require(_0x6eec('0x0'));var moment=require(_0x6eec('0x1'));module[_0x6eec('0x2')]={'time':{'type':Sequelize[_0x6eec('0x3')]},'callid':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x6eec('0x3')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':moment()[_0x6eec('0x4')](_0x6eec('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1735=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','model','keys','query','dateStart','dateEnd','filters','attributes','intersection','fields','hasOwnProperty','order','pick','add','day','merge','where','filter','map','includeAll','VoiceQueuesLog','findAll','catch','show','params','rawAttributes','include','options','find','create','body','html-pdf','eml-format'];(function(_0x6d0a22,_0x55d6c4){var _0x4c1e70=function(_0xe155a){while(--_0xe155a){_0x6d0a22['push'](_0x6d0a22['shift']());}};_0x4c1e70(++_0x55d6c4);}(_0x1735,0x8c));var _0x5173=function(_0x535faa,_0x249aeb){_0x535faa=_0x535faa-0x0;var _0x1e54a3=_0x1735[_0x535faa];return _0x1e54a3;};'use strict';var pdf=require(_0x5173('0x0'));var emlformat=require(_0x5173('0x1'));var rimraf=require(_0x5173('0x2'));var zipdir=require(_0x5173('0x3'));var jsonpatch=require(_0x5173('0x4'));var rp=require(_0x5173('0x5'));var moment=require(_0x5173('0x6'));var BPromise=require(_0x5173('0x7'));var Mustache=require(_0x5173('0x8'));var util=require(_0x5173('0x9'));var path=require(_0x5173('0xa'));var sox=require(_0x5173('0xb'));var csv=require(_0x5173('0xc'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x5173('0xd'));var squel=require(_0x5173('0xe'));var crypto=require(_0x5173('0xf'));var jsforce=require(_0x5173('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x5173('0xc'));var querystring=require(_0x5173('0x11'));var Papa=require(_0x5173('0x12'));var qs=require('../../components/parsers/qs');var logger=require(_0x5173('0x13'))(_0x5173('0x14'));var utils=require(_0x5173('0x15'));var config=require(_0x5173('0x16'));var db=require(_0x5173('0x17'))['db'];function respondWithStatusCode(_0x835b35,_0xbb0777){_0xbb0777=_0xbb0777||0xcc;return function(_0x5c2023){if(_0x5c2023){return _0x835b35[_0x5173('0x18')](_0xbb0777);}return _0x835b35[_0x5173('0x19')](_0xbb0777)[_0x5173('0x1a')]();};}function respondWithResult(_0xedb515,_0x16f508){_0x16f508=_0x16f508||0xc8;return function(_0x38f833){if(_0x38f833){return _0xedb515[_0x5173('0x19')](_0x16f508)['json'](_0x38f833);}};}function respondWithFilteredResult(_0x9dbae5,_0x51c607){return function(_0x861e45){if(_0x861e45){var _0x40fc73=_0x861e45[_0x5173('0x1b')],_0x5d31d6=_0x51c607[_0x5173('0x1c')],_0x2c5fca=_0x51c607['offset']+_0x51c607[_0x5173('0x1d')],_0x5f5249;if(_0x2c5fca>=_0x40fc73){_0x2c5fca=_0x40fc73;_0x5f5249=0xc8;}else{_0x5f5249=0xce;}_0x9dbae5['status'](_0x5f5249);return _0x9dbae5[_0x5173('0x1e')](_0x5173('0x1f'),_0x5d31d6+'-'+_0x2c5fca+'/'+_0x40fc73)['json'](_0x861e45);}return null;};}function patchUpdates(_0x2b0f92){return function(_0x311109){try{jsonpatch[_0x5173('0x20')](_0x311109,_0x2b0f92,!![]);}catch(_0x5a23df){return BPromise['reject'](_0x5a23df);}return _0x311109[_0x5173('0x21')]();};}function saveUpdates(_0x39b0cd,_0x16830e){return function(_0x598a14){if(_0x598a14){return _0x598a14[_0x5173('0x22')](_0x39b0cd)[_0x5173('0x23')](function(_0x302e52){return _0x302e52;});}return null;};}function removeEntity(_0x2d009a,_0x4d42f0){return function(_0x173769){if(_0x173769){return _0x173769[_0x5173('0x24')]()[_0x5173('0x23')](function(){_0x2d009a[_0x5173('0x19')](0xcc)[_0x5173('0x1a')]();});}};}function handleEntityNotFound(_0x5223a9,_0x184177){return function(_0x2d1bdc){if(!_0x2d1bdc){_0x5223a9[_0x5173('0x18')](0x194);}return _0x2d1bdc;};}function handleError(_0x5d6b0d,_0x3394fc){_0x3394fc=_0x3394fc||0x1f4;return function(_0x4bc18d){logger[_0x5173('0x25')](_0x4bc18d[_0x5173('0x26')]);if(_0x4bc18d[_0x5173('0x27')]){delete _0x4bc18d['name'];}_0x5d6b0d['status'](_0x3394fc)[_0x5173('0x28')](_0x4bc18d);};}exports['index']=function(_0x29d3b3,_0x59b6f7){var _0x47d7bd={},_0x2d6e53={},_0x173722={'count':0x0,'rows':[]};var _0x17fb2c=db['VoiceQueuesLog']['rawAttributes'];_0x2d6e53[_0x5173('0x29')]=_[_0x5173('0x2a')](_0x17fb2c);var _0x4b79ce={'dateStart':_0x29d3b3[_0x5173('0x2b')][_0x5173('0x2c')],'dateEnd':_0x29d3b3[_0x5173('0x2b')][_0x5173('0x2d')]};delete _0x29d3b3['query'][_0x5173('0x2c')];delete _0x29d3b3[_0x5173('0x2b')][_0x5173('0x2d')];_0x2d6e53[_0x5173('0x2b')]=_[_0x5173('0x2a')](_0x29d3b3[_0x5173('0x2b')]);_0x2d6e53[_0x5173('0x2e')]=_['intersection'](_0x2d6e53[_0x5173('0x29')],_0x2d6e53['query']);_0x47d7bd[_0x5173('0x2f')]=_[_0x5173('0x30')](_0x2d6e53[_0x5173('0x29')],qs['fields'](_0x29d3b3[_0x5173('0x2b')][_0x5173('0x31')]));_0x47d7bd[_0x5173('0x2f')]=_0x47d7bd['attributes']['length']?_0x47d7bd[_0x5173('0x2f')]:_0x2d6e53[_0x5173('0x29')];if(!_0x29d3b3[_0x5173('0x2b')][_0x5173('0x32')]('nolimit')){_0x47d7bd[_0x5173('0x1d')]=qs[_0x5173('0x1d')](_0x29d3b3['query'][_0x5173('0x1d')]);_0x47d7bd[_0x5173('0x1c')]=qs[_0x5173('0x1c')](_0x29d3b3['query'][_0x5173('0x1c')]);}_0x47d7bd[_0x5173('0x33')]=qs['sort'](_0x29d3b3['query']['sort']);_0x47d7bd['where']=qs[_0x5173('0x2e')](_[_0x5173('0x34')](_0x29d3b3[_0x5173('0x2b')],_0x2d6e53[_0x5173('0x2e')]));if(_0x4b79ce['dateStart']){if(_0x4b79ce[_0x5173('0x2d')]){_0x4b79ce[_0x5173('0x2d')]=moment(_0x4b79ce[_0x5173('0x2d')])[_0x5173('0x35')](0x1,_0x5173('0x36'));}else{_0x4b79ce[_0x5173('0x2d')]=moment(_0x4b79ce[_0x5173('0x2c')])[_0x5173('0x35')](0x1,_0x5173('0x36'));}_[_0x5173('0x37')](_0x47d7bd[_0x5173('0x38')],{'createdAt':{'$gte':_0x4b79ce[_0x5173('0x2c')],'$lte':_0x4b79ce[_0x5173('0x2d')]}});}if(_0x29d3b3['query'][_0x5173('0x39')]){_0x47d7bd[_0x5173('0x38')]=_['merge'](_0x47d7bd[_0x5173('0x38')],{'$or':_[_0x5173('0x3a')](_0x47d7bd[_0x5173('0x2f')],function(_0x25fba7){var _0x5f1770={};_0x5f1770[_0x25fba7]={'$like':'%'+_0x29d3b3[_0x5173('0x2b')][_0x5173('0x39')]+'%'};return _0x5f1770;})});}_0x47d7bd=_['merge']({},_0x47d7bd,_0x29d3b3['options']);var _0x119422={'where':_0x47d7bd['where']};return db['VoiceQueuesLog']['count'](_0x119422)[_0x5173('0x23')](function(_0x3d1aca){_0x173722[_0x5173('0x1b')]=_0x3d1aca;if(_0x29d3b3[_0x5173('0x2b')][_0x5173('0x3b')]){_0x47d7bd['include']=[{'all':!![]}];}return db[_0x5173('0x3c')][_0x5173('0x3d')](_0x47d7bd);})[_0x5173('0x23')](function(_0x1b9004){_0x173722['rows']=_0x1b9004;return _0x173722;})['then'](respondWithFilteredResult(_0x59b6f7,_0x47d7bd))[_0x5173('0x3e')](handleError(_0x59b6f7,null));};exports[_0x5173('0x3f')]=function(_0x1a16ca,_0x376627){var _0xa4d0eb={'raw':!![],'where':{'id':_0x1a16ca[_0x5173('0x40')]['id']}},_0x4d3ce0={};_0x4d3ce0[_0x5173('0x29')]=_[_0x5173('0x2a')](db[_0x5173('0x3c')][_0x5173('0x41')]);_0x4d3ce0[_0x5173('0x2b')]=_[_0x5173('0x2a')](_0x1a16ca['query']);_0x4d3ce0[_0x5173('0x2e')]=_[_0x5173('0x30')](_0x4d3ce0['model'],_0x4d3ce0[_0x5173('0x2b')]);_0xa4d0eb[_0x5173('0x2f')]=_[_0x5173('0x30')](_0x4d3ce0[_0x5173('0x29')],qs['fields'](_0x1a16ca[_0x5173('0x2b')]['fields']));_0xa4d0eb[_0x5173('0x2f')]=_0xa4d0eb[_0x5173('0x2f')]['length']?_0xa4d0eb[_0x5173('0x2f')]:_0x4d3ce0[_0x5173('0x29')];if(_0x1a16ca[_0x5173('0x2b')][_0x5173('0x3b')]){_0xa4d0eb[_0x5173('0x42')]=[{'all':!![]}];}_0xa4d0eb=_[_0x5173('0x37')]({},_0xa4d0eb,_0x1a16ca[_0x5173('0x43')]);return db[_0x5173('0x3c')][_0x5173('0x44')](_0xa4d0eb)[_0x5173('0x23')](handleEntityNotFound(_0x376627,null))[_0x5173('0x23')](respondWithResult(_0x376627,null))[_0x5173('0x3e')](handleError(_0x376627,null));};exports[_0x5173('0x45')]=function(_0x4f36c9,_0x353e09){return db[_0x5173('0x3c')][_0x5173('0x45')](_0x4f36c9[_0x5173('0x46')],{})[_0x5173('0x23')](respondWithResult(_0x353e09,0xc9))[_0x5173('0x3e')](handleError(_0x353e09,null));};exports[_0x5173('0x22')]=function(_0x59eb4e,_0x571c82){if(_0x59eb4e[_0x5173('0x46')]['id']){delete _0x59eb4e[_0x5173('0x46')]['id'];}return db[_0x5173('0x3c')][_0x5173('0x44')]({'where':{'id':_0x59eb4e[_0x5173('0x40')]['id']}})[_0x5173('0x23')](handleEntityNotFound(_0x571c82,null))[_0x5173('0x23')](saveUpdates(_0x59eb4e[_0x5173('0x46')],null))[_0x5173('0x23')](respondWithResult(_0x571c82,null))[_0x5173('0x3e')](handleError(_0x571c82,null));};exports[_0x5173('0x24')]=function(_0x5bf64a,_0x443734){return db[_0x5173('0x3c')]['find']({'where':{'id':_0x5bf64a[_0x5173('0x40')]['id']}})[_0x5173('0x23')](handleEntityNotFound(_0x443734,null))[_0x5173('0x23')](removeEntity(_0x443734,null))[_0x5173('0x3e')](handleError(_0x443734,null));};
\ No newline at end of file
+var _0x4f16=['ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','offset','limit','set','Content-Range','apply','update','destroy','then','error','stack','name','index','VoiceQueuesLog','rawAttributes','model','keys','dateEnd','query','dateStart','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','add','day','merge','filter','map','options','count','include','catch','params','length','includeAll','create','body','find','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','papaparse'];(function(_0x546eed,_0x9b4516){var _0x1a9dd1=function(_0x4d1bbe){while(--_0x4d1bbe){_0x546eed['push'](_0x546eed['shift']());}};_0x1a9dd1(++_0x9b4516);}(_0x4f16,0x194));var _0x64f1=function(_0x50f92b,_0x32fab3){_0x50f92b=_0x50f92b-0x0;var _0x5cedbc=_0x4f16[_0x50f92b];return _0x5cedbc;};'use strict';var pdf=require(_0x64f1('0x0'));var emlformat=require(_0x64f1('0x1'));var rimraf=require(_0x64f1('0x2'));var zipdir=require(_0x64f1('0x3'));var jsonpatch=require(_0x64f1('0x4'));var rp=require('request-promise');var moment=require(_0x64f1('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x64f1('0x6'));var util=require(_0x64f1('0x7'));var path=require('path');var sox=require(_0x64f1('0x8'));var csv=require('to-csv');var ejs=require(_0x64f1('0x9'));var fs=require('fs');var _=require(_0x64f1('0xa'));var squel=require(_0x64f1('0xb'));var crypto=require('crypto');var jsforce=require(_0x64f1('0xc'));var deskjs=require(_0x64f1('0xd'));var toCsv=require(_0x64f1('0xe'));var querystring=require('querystring');var Papa=require(_0x64f1('0xf'));var Redis=require(_0x64f1('0x10'));var qs=require(_0x64f1('0x11'));var logger=require(_0x64f1('0x12'))(_0x64f1('0x13'));var utils=require(_0x64f1('0x14'));var config=require(_0x64f1('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3a60cf,_0x55ce3a){_0x55ce3a=_0x55ce3a||0xcc;return function(_0x35f27e){if(_0x35f27e){return _0x3a60cf[_0x64f1('0x16')](_0x55ce3a);}return _0x3a60cf['status'](_0x55ce3a)[_0x64f1('0x17')]();};}function respondWithResult(_0x5059f4,_0x458480){_0x458480=_0x458480||0xc8;return function(_0x4ca89f){if(_0x4ca89f){return _0x5059f4[_0x64f1('0x18')](_0x458480)[_0x64f1('0x19')](_0x4ca89f);}};}function respondWithFilteredResult(_0x2ed34b,_0x1a12b0){return function(_0x2574df){if(_0x2574df){var _0xd4665e=_0x2574df['count'],_0x3649f9=_0x1a12b0[_0x64f1('0x1a')],_0x4bf32=_0x1a12b0[_0x64f1('0x1a')]+_0x1a12b0[_0x64f1('0x1b')],_0x99d3b2;if(_0x4bf32>=_0xd4665e){_0x4bf32=_0xd4665e;_0x99d3b2=0xc8;}else{_0x99d3b2=0xce;}_0x2ed34b['status'](_0x99d3b2);return _0x2ed34b[_0x64f1('0x1c')](_0x64f1('0x1d'),_0x3649f9+'-'+_0x4bf32+'/'+_0xd4665e)[_0x64f1('0x19')](_0x2574df);}return null;};}function patchUpdates(_0x3baab9){return function(_0x1ca89d){try{jsonpatch[_0x64f1('0x1e')](_0x1ca89d,_0x3baab9,!![]);}catch(_0x3d15fb){return BPromise['reject'](_0x3d15fb);}return _0x1ca89d['save']();};}function saveUpdates(_0x5a6328,_0x3fe0b4){return function(_0x45f099){if(_0x45f099){return _0x45f099[_0x64f1('0x1f')](_0x5a6328)['then'](function(_0x4f3889){return _0x4f3889;});}return null;};}function removeEntity(_0x1d74c0,_0x5867fd){return function(_0x1c1384){if(_0x1c1384){return _0x1c1384[_0x64f1('0x20')]()[_0x64f1('0x21')](function(){_0x1d74c0[_0x64f1('0x18')](0xcc)[_0x64f1('0x17')]();});}};}function handleEntityNotFound(_0x60b838,_0x24a3d1){return function(_0x20ff38){if(!_0x20ff38){_0x60b838['sendStatus'](0x194);}return _0x20ff38;};}function handleError(_0x8a5cee,_0x30f43e){_0x30f43e=_0x30f43e||0x1f4;return function(_0xc91abe){logger[_0x64f1('0x22')](_0xc91abe[_0x64f1('0x23')]);if(_0xc91abe[_0x64f1('0x24')]){delete _0xc91abe[_0x64f1('0x24')];}_0x8a5cee[_0x64f1('0x18')](_0x30f43e)['send'](_0xc91abe);};}exports[_0x64f1('0x25')]=function(_0x4ce567,_0x1e0555){var _0x2dc3b6={},_0x5eae70={},_0x56deaf={'count':0x0,'rows':[]};var _0x38f6fd=db[_0x64f1('0x26')][_0x64f1('0x27')];_0x5eae70[_0x64f1('0x28')]=_[_0x64f1('0x29')](_0x38f6fd);var _0x18f0e5={'dateStart':_0x4ce567['query']['dateStart'],'dateEnd':_0x4ce567['query'][_0x64f1('0x2a')]};delete _0x4ce567[_0x64f1('0x2b')][_0x64f1('0x2c')];delete _0x4ce567[_0x64f1('0x2b')]['dateEnd'];_0x5eae70[_0x64f1('0x2b')]=_[_0x64f1('0x29')](_0x4ce567['query']);_0x5eae70['filters']=_[_0x64f1('0x2d')](_0x5eae70[_0x64f1('0x28')],_0x5eae70['query']);_0x2dc3b6[_0x64f1('0x2e')]=_[_0x64f1('0x2d')](_0x5eae70[_0x64f1('0x28')],qs[_0x64f1('0x2f')](_0x4ce567[_0x64f1('0x2b')][_0x64f1('0x2f')]));_0x2dc3b6['attributes']=_0x2dc3b6[_0x64f1('0x2e')]['length']?_0x2dc3b6['attributes']:_0x5eae70[_0x64f1('0x28')];if(!_0x4ce567[_0x64f1('0x2b')][_0x64f1('0x30')](_0x64f1('0x31'))){_0x2dc3b6[_0x64f1('0x1b')]=qs['limit'](_0x4ce567['query']['limit']);_0x2dc3b6[_0x64f1('0x1a')]=qs[_0x64f1('0x1a')](_0x4ce567[_0x64f1('0x2b')][_0x64f1('0x1a')]);}_0x2dc3b6[_0x64f1('0x32')]=qs[_0x64f1('0x33')](_0x4ce567[_0x64f1('0x2b')][_0x64f1('0x33')]);_0x2dc3b6[_0x64f1('0x34')]=qs[_0x64f1('0x35')](_[_0x64f1('0x36')](_0x4ce567[_0x64f1('0x2b')],_0x5eae70[_0x64f1('0x35')]));if(_0x18f0e5['dateStart']){if(_0x18f0e5[_0x64f1('0x2a')]){_0x18f0e5[_0x64f1('0x2a')]=moment(_0x18f0e5[_0x64f1('0x2a')])[_0x64f1('0x37')](0x1,_0x64f1('0x38'));}else{_0x18f0e5['dateEnd']=moment(_0x18f0e5['dateStart'])[_0x64f1('0x37')](0x1,'day');}_[_0x64f1('0x39')](_0x2dc3b6['where'],{'createdAt':{'$gte':_0x18f0e5[_0x64f1('0x2c')],'$lte':_0x18f0e5[_0x64f1('0x2a')]}});}if(_0x4ce567[_0x64f1('0x2b')][_0x64f1('0x3a')]){_0x2dc3b6[_0x64f1('0x34')]=_['merge'](_0x2dc3b6[_0x64f1('0x34')],{'$or':_[_0x64f1('0x3b')](_0x2dc3b6[_0x64f1('0x2e')],function(_0x16f8e8){var _0xf0d61f={};_0xf0d61f[_0x16f8e8]={'$like':'%'+_0x4ce567[_0x64f1('0x2b')]['filter']+'%'};return _0xf0d61f;})});}_0x2dc3b6=_[_0x64f1('0x39')]({},_0x2dc3b6,_0x4ce567[_0x64f1('0x3c')]);var _0xa2127e={'where':_0x2dc3b6['where']};return db[_0x64f1('0x26')][_0x64f1('0x3d')](_0xa2127e)[_0x64f1('0x21')](function(_0x5bdfb9){_0x56deaf[_0x64f1('0x3d')]=_0x5bdfb9;if(_0x4ce567[_0x64f1('0x2b')]['includeAll']){_0x2dc3b6[_0x64f1('0x3e')]=[{'all':!![]}];}return db['VoiceQueuesLog']['findAll'](_0x2dc3b6);})['then'](function(_0x542fb6){_0x56deaf['rows']=_0x542fb6;return _0x56deaf;})[_0x64f1('0x21')](respondWithFilteredResult(_0x1e0555,_0x2dc3b6))[_0x64f1('0x3f')](handleError(_0x1e0555,null));};exports['show']=function(_0x49dead,_0x796e9){var _0x5557d0={'raw':!![],'where':{'id':_0x49dead[_0x64f1('0x40')]['id']}},_0x43522a={};_0x43522a[_0x64f1('0x28')]=_[_0x64f1('0x29')](db[_0x64f1('0x26')]['rawAttributes']);_0x43522a[_0x64f1('0x2b')]=_[_0x64f1('0x29')](_0x49dead[_0x64f1('0x2b')]);_0x43522a[_0x64f1('0x35')]=_[_0x64f1('0x2d')](_0x43522a[_0x64f1('0x28')],_0x43522a[_0x64f1('0x2b')]);_0x5557d0[_0x64f1('0x2e')]=_[_0x64f1('0x2d')](_0x43522a['model'],qs[_0x64f1('0x2f')](_0x49dead[_0x64f1('0x2b')][_0x64f1('0x2f')]));_0x5557d0[_0x64f1('0x2e')]=_0x5557d0[_0x64f1('0x2e')][_0x64f1('0x41')]?_0x5557d0[_0x64f1('0x2e')]:_0x43522a[_0x64f1('0x28')];if(_0x49dead['query'][_0x64f1('0x42')]){_0x5557d0[_0x64f1('0x3e')]=[{'all':!![]}];}_0x5557d0=_[_0x64f1('0x39')]({},_0x5557d0,_0x49dead[_0x64f1('0x3c')]);return db[_0x64f1('0x26')]['find'](_0x5557d0)['then'](handleEntityNotFound(_0x796e9,null))[_0x64f1('0x21')](respondWithResult(_0x796e9,null))[_0x64f1('0x3f')](handleError(_0x796e9,null));};exports[_0x64f1('0x43')]=function(_0x4c2ad5,_0x21296b){return db['VoiceQueuesLog']['create'](_0x4c2ad5[_0x64f1('0x44')],{})['then'](respondWithResult(_0x21296b,0xc9))[_0x64f1('0x3f')](handleError(_0x21296b,null));};exports[_0x64f1('0x1f')]=function(_0x418fb6,_0x482123){if(_0x418fb6[_0x64f1('0x44')]['id']){delete _0x418fb6[_0x64f1('0x44')]['id'];}return db[_0x64f1('0x26')][_0x64f1('0x45')]({'where':{'id':_0x418fb6[_0x64f1('0x40')]['id']}})[_0x64f1('0x21')](handleEntityNotFound(_0x482123,null))[_0x64f1('0x21')](saveUpdates(_0x418fb6[_0x64f1('0x44')],null))[_0x64f1('0x21')](respondWithResult(_0x482123,null))[_0x64f1('0x3f')](handleError(_0x482123,null));};exports[_0x64f1('0x20')]=function(_0x4891ac,_0x57fa9c){return db['VoiceQueuesLog'][_0x64f1('0x45')]({'where':{'id':_0x4891ac['params']['id']}})['then'](handleEntityNotFound(_0x57fa9c,null))[_0x64f1('0x21')](removeEntity(_0x57fa9c,null))['catch'](handleError(_0x57fa9c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1354=['exports','VoiceQueuesLog','voice_queues_log','event','dtm','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x1d415d,_0x5781a9){var _0x1e0686=function(_0x24d5ea){while(--_0x24d5ea){_0x1d415d['push'](_0x1d415d['shift']());}};_0x1e0686(++_0x5781a9);}(_0x1354,0x95));var _0x4135=function(_0x284c0c,_0x181aee){_0x284c0c=_0x284c0c-0x0;var _0x418b18=_0x1354[_0x284c0c];return _0x418b18;};'use strict';var _=require(_0x4135('0x0'));var util=require(_0x4135('0x1'));var logger=require(_0x4135('0x2'))(_0x4135('0x3'));var moment=require(_0x4135('0x4'));var BPromise=require(_0x4135('0x5'));var rp=require(_0x4135('0x6'));var attributes=require('./voiceQueuesLog.attributes');module[_0x4135('0x7')]=function(_0x4ed434,_0x202042){return _0x4ed434['define'](_0x4135('0x8'),attributes,{'tableName':_0x4135('0x9'),'paranoid':![],'indexes':[{'name':'event_dtm','fields':[_0x4135('0xa'),_0x4135('0xb')]}],'timestamps':![]});};
\ No newline at end of file
+var _0xed2e=['event_dtm','event','util','../../config/logger','api','moment','request-promise','./voiceQueuesLog.attributes','exports','define','voice_queues_log'];(function(_0x549ec5,_0x483d92){var _0x47b5f6=function(_0x429cf1){while(--_0x429cf1){_0x549ec5['push'](_0x549ec5['shift']());}};_0x47b5f6(++_0x483d92);}(_0xed2e,0x1d0));var _0xeed2=function(_0x4e8229,_0x54371a){_0x4e8229=_0x4e8229-0x0;var _0x39fa05=_0xed2e[_0x4e8229];return _0x39fa05;};'use strict';var _=require('lodash');var util=require(_0xeed2('0x0'));var logger=require(_0xeed2('0x1'))(_0xeed2('0x2'));var moment=require(_0xeed2('0x3'));var BPromise=require('bluebird');var rp=require(_0xeed2('0x4'));var attributes=require(_0xeed2('0x5'));module[_0xeed2('0x6')]=function(_0x39b8ac,_0x253d30){return _0x39b8ac[_0xeed2('0x7')]('VoiceQueuesLog',attributes,{'tableName':_0xeed2('0x8'),'paranoid':![],'indexes':[{'name':_0xeed2('0x9'),'fields':[_0xeed2('0xa'),'dtm']}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e0b=['../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','then','info','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring'];(function(_0x2478e1,_0x4a2153){var _0x404692=function(_0x16eeb7){while(--_0x16eeb7){_0x2478e1['push'](_0x2478e1['shift']());}};_0x404692(++_0x4a2153);}(_0x3e0b,0x1db));var _0xb3e0=function(_0x41b5cd,_0x1c7a59){_0x41b5cd=_0x41b5cd-0x0;var _0x31b0af=_0x3e0b[_0x41b5cd];return _0x31b0af;};'use strict';var _=require(_0xb3e0('0x0'));var util=require(_0xb3e0('0x1'));var moment=require(_0xb3e0('0x2'));var BPromise=require(_0xb3e0('0x3'));var rs=require(_0xb3e0('0x4'));var fs=require('fs');var db=require(_0xb3e0('0x5'))['db'];var utils=require(_0xb3e0('0x6'));var logger=require(_0xb3e0('0x7'))(_0xb3e0('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xb3e0('0x9')][_0xb3e0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2559a1,_0x2d7588,_0x5e7546){return new BPromise(function(_0x4a4f24,_0x44eda2){return client['request'](_0x2559a1,_0x5e7546)[_0xb3e0('0xb')](function(_0x4ca6bd){logger[_0xb3e0('0xc')](_0xb3e0('0xd'),_0x2d7588,_0xb3e0('0xe'));logger['debug'](_0xb3e0('0xf'),_0x2d7588,_0xb3e0('0xe'),JSON[_0xb3e0('0x10')](_0x4ca6bd));if(_0x4ca6bd[_0xb3e0('0x11')]){if(_0x4ca6bd[_0xb3e0('0x11')]['code']===0x1f4){logger[_0xb3e0('0x11')](_0xb3e0('0xd'),_0x2d7588,_0x4ca6bd[_0xb3e0('0x11')]['message']);return _0x44eda2(_0x4ca6bd[_0xb3e0('0x11')][_0xb3e0('0x12')]);}logger[_0xb3e0('0x11')](_0xb3e0('0xd'),_0x2d7588,_0x4ca6bd[_0xb3e0('0x11')]['message']);return _0x4a4f24(_0x4ca6bd['error'][_0xb3e0('0x12')]);}else{logger[_0xb3e0('0xc')](_0xb3e0('0xd'),_0x2d7588,'request\x20sent');_0x4a4f24(_0x4ca6bd[_0xb3e0('0x13')]['message']);}})['catch'](function(_0x1ce3a3){logger[_0xb3e0('0x11')](_0xb3e0('0xd'),_0x2d7588,_0x1ce3a3);_0x44eda2(_0x1ce3a3);});});}
\ No newline at end of file
+var _0xc32d=['catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result'];(function(_0xaa3a42,_0x331cb5){var _0x2e16c9=function(_0x1c2472){while(--_0x1c2472){_0xaa3a42['push'](_0xaa3a42['shift']());}};_0x2e16c9(++_0x331cb5);}(_0xc32d,0x188));var _0xdc32=function(_0x47caf7,_0x38a78a){_0x47caf7=_0x47caf7-0x0;var _0x462a35=_0xc32d[_0x47caf7];return _0x462a35;};'use strict';var _=require(_0xdc32('0x0'));var util=require(_0xdc32('0x1'));var moment=require(_0xdc32('0x2'));var BPromise=require('bluebird');var rs=require(_0xdc32('0x3'));var fs=require('fs');var Redis=require(_0xdc32('0x4'));var db=require(_0xdc32('0x5'))['db'];var utils=require(_0xdc32('0x6'));var logger=require('../../config/logger')(_0xdc32('0x7'));var config=require('../../config/environment');var jayson=require(_0xdc32('0x8'));var client=jayson[_0xdc32('0x9')][_0xdc32('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x599067,_0x142704,_0x589584){return new BPromise(function(_0x4245f9,_0x9270a9){return client[_0xdc32('0xb')](_0x599067,_0x589584)['then'](function(_0x20b865){logger['info'](_0xdc32('0xc'),_0x142704,_0xdc32('0xd'));logger[_0xdc32('0xe')](_0xdc32('0xf'),_0x142704,_0xdc32('0xd'),JSON[_0xdc32('0x10')](_0x20b865));if(_0x20b865[_0xdc32('0x11')]){if(_0x20b865[_0xdc32('0x11')][_0xdc32('0x12')]===0x1f4){logger['error'](_0xdc32('0xc'),_0x142704,_0x20b865[_0xdc32('0x11')][_0xdc32('0x13')]);return _0x9270a9(_0x20b865['error']['message']);}logger[_0xdc32('0x11')](_0xdc32('0xc'),_0x142704,_0x20b865['error']['message']);return _0x4245f9(_0x20b865[_0xdc32('0x11')]['message']);}else{logger[_0xdc32('0x14')]('VoiceQueuesLog,\x20%s,\x20%s',_0x142704,_0xdc32('0xd'));_0x4245f9(_0x20b865[_0xdc32('0x15')][_0xdc32('0x13')]);}})[_0xdc32('0x16')](function(_0x503610){logger[_0xdc32('0x11')](_0xdc32('0xc'),_0x142704,_0x503610);_0x9270a9(_0x503610);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f7f=['../../components/interaction/service','./voiceRecording.controller','get','isAuthenticated','describe','/:id','show','/:id/download','/:id/downloads','downloads','post','create','put','update','delete','util','path','connect-timeout','express','Router'];(function(_0x518392,_0x25ac70){var _0x344e59=function(_0xa99198){while(--_0xa99198){_0x518392['push'](_0x518392['shift']());}};_0x344e59(++_0x25ac70);}(_0x6f7f,0x177));var _0xf6f7=function(_0x3f43de,_0xc10ec7){_0x3f43de=_0x3f43de-0x0;var _0x44be45=_0x6f7f[_0x3f43de];return _0x44be45;};'use strict';var multer=require('multer');var util=require(_0xf6f7('0x0'));var path=require(_0xf6f7('0x1'));var timeout=require(_0xf6f7('0x2'));var express=require(_0xf6f7('0x3'));var router=express[_0xf6f7('0x4')]();var auth=require('../../components/auth/service');var interaction=require(_0xf6f7('0x5'));var config=require('../../config/environment');var controller=require(_0xf6f7('0x6'));router[_0xf6f7('0x7')]('/',auth[_0xf6f7('0x8')](),controller['index']);router[_0xf6f7('0x7')]('/describe',auth[_0xf6f7('0x8')](),controller[_0xf6f7('0x9')]);router[_0xf6f7('0x7')](_0xf6f7('0xa'),auth[_0xf6f7('0x8')](),controller[_0xf6f7('0xb')]);router['get'](_0xf6f7('0xc'),auth['isAuthenticated'](),controller['download']);router['get'](_0xf6f7('0xd'),controller[_0xf6f7('0xe')]);router[_0xf6f7('0xf')]('/',auth[_0xf6f7('0x8')](),controller[_0xf6f7('0x10')]);router[_0xf6f7('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xf6f7('0x12')]);router[_0xf6f7('0x13')](_0xf6f7('0xa'),auth[_0xf6f7('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x41bb=['download','downloads','create','put','/:id','delete','destroy','exports','multer','util','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','show','/:id/download'];(function(_0x32605c,_0x403620){var _0x16acdb=function(_0x16b8fe){while(--_0x16b8fe){_0x32605c['push'](_0x32605c['shift']());}};_0x16acdb(++_0x403620);}(_0x41bb,0xc5));var _0xb41b=function(_0x53f530,_0x33b863){_0x53f530=_0x53f530-0x0;var _0x287199=_0x41bb[_0x53f530];return _0x287199;};'use strict';var multer=require(_0xb41b('0x0'));var util=require(_0xb41b('0x1'));var path=require('path');var timeout=require(_0xb41b('0x2'));var express=require('express');var router=express[_0xb41b('0x3')]();var auth=require(_0xb41b('0x4'));var interaction=require(_0xb41b('0x5'));var config=require(_0xb41b('0x6'));var controller=require('./voiceRecording.controller');router[_0xb41b('0x7')]('/',auth[_0xb41b('0x8')](),controller[_0xb41b('0x9')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0xb41b('0xa')]);router[_0xb41b('0x7')]('/:id',auth[_0xb41b('0x8')](),controller[_0xb41b('0xb')]);router[_0xb41b('0x7')](_0xb41b('0xc'),auth[_0xb41b('0x8')](),controller[_0xb41b('0xd')]);router[_0xb41b('0x7')]('/:id/downloads',controller[_0xb41b('0xe')]);router['post']('/',auth[_0xb41b('0x8')](),controller[_0xb41b('0xf')]);router[_0xb41b('0x10')](_0xb41b('0x11'),auth[_0xb41b('0x8')](),controller['update']);router[_0xb41b('0x12')](_0xb41b('0x11'),auth[_0xb41b('0x8')](),controller[_0xb41b('0x13')]);module[_0xb41b('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ca8=['STRING','channel','setDataValue','INTEGER','createdAt','toString','updatedAt','path','exports','VIRTUAL','extname','getDataValue','value'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x5ca8,0xe4));var _0x85ca=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x5ca8[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');var path=require(_0x85ca('0x0'));module[_0x85ca('0x1')]={'format':{'type':Sequelize[_0x85ca('0x2')],'get':function(){return this['getDataValue']('value')?path[_0x85ca('0x3')](this[_0x85ca('0x4')](_0x85ca('0x5'))):undefined;}},'uniqueid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x85ca('0x6')],'set':function(_0x4f0c35){if(_0x4f0c35){this['setDataValue'](_0x85ca('0x7'),_0x4f0c35);this[_0x85ca('0x8')]('membername',_0x4f0c35['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x85ca('0x6')]},'calleridnum':{'type':Sequelize[_0x85ca('0x6')]},'calleridname':{'type':Sequelize[_0x85ca('0x6')]},'connectedlinenum':{'type':Sequelize[_0x85ca('0x6')]},'connectedlinename':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x85ca('0x6')]},'context':{'type':Sequelize[_0x85ca('0x6')]},'exten':{'type':Sequelize[_0x85ca('0x6')]},'value':{'type':Sequelize['STRING']},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize[_0x85ca('0x9')],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize[_0x85ca('0x6')]},'userDisposition':{'type':Sequelize[_0x85ca('0x6')]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x85ca('0x4')](_0x85ca('0xa')))['format']('MM-DD-YYYY\x20HH:mm')[_0x85ca('0xb')]();}},'updatedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x85ca('0x4')](_0x85ca('0xc')))['format']('MM-DD-YYYY\x20HH:mm')['toString']();}}};
\ No newline at end of file
+var _0x3434=['DATE','updatedAt','MM-DD-YYYY\x20HH:mm','sequelize','moment','exports','getDataValue','value','STRING','setDataValue','membername','split','format','toString'];(function(_0x12a85b,_0x4c7eac){var _0xb6d9d=function(_0x15681f){while(--_0x15681f){_0x12a85b['push'](_0x12a85b['shift']());}};_0xb6d9d(++_0x4c7eac);}(_0x3434,0x153));var _0x4343=function(_0x388083,_0x3d811d){_0x388083=_0x388083-0x0;var _0x398875=_0x3434[_0x388083];return _0x398875;};'use strict';var Sequelize=require(_0x4343('0x0'));var moment=require(_0x4343('0x1'));var path=require('path');module[_0x4343('0x2')]={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x4343('0x3')](_0x4343('0x4'))?path['extname'](this[_0x4343('0x3')]('value')):undefined;}},'uniqueid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x4343('0x5')],'set':function(_0x14c111){if(_0x14c111){this['setDataValue']('channel',_0x14c111);this[_0x4343('0x6')](_0x4343('0x7'),_0x14c111[_0x4343('0x8')](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x4343('0x5')]},'connectedlinenum':{'type':Sequelize[_0x4343('0x5')]},'connectedlinename':{'type':Sequelize[_0x4343('0x5')]},'accountcode':{'type':Sequelize[_0x4343('0x5')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x4343('0x5')]},'value':{'type':Sequelize[_0x4343('0x5')]},'type':{'type':Sequelize[_0x4343('0x5')]},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize[_0x4343('0x5')]},'userDisposition':{'type':Sequelize[_0x4343('0x5')]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x4343('0x3')]('createdAt'))[_0x4343('0x9')]('MM-DD-YYYY\x20HH:mm')[_0x4343('0xa')]();}},'updatedAt':{'type':Sequelize[_0x4343('0xb')],'get':function(){return moment(this[_0x4343('0x3')](_0x4343('0xc')))[_0x4343('0x9')](_0x4343('0xd'))[_0x4343('0xa')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe12b=['model','keys','format','query','dateStart','dateEnd','filters','intersection','fields','attributes','length','nolimit','order','sort','add','day','merge','where','filter','map','options','includeAll','include','findAll','rows','show','body','catch','find','params','describe','download','../../components/encryptor','type','uniqueid','value','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','downloads','sequelize','MD5','col','token','$and','push','html-pdf','eml-format','request-promise','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','save','then','destroy','error','stack','name','index','VoiceRecording','rawAttributes'];(function(_0x9f05d9,_0x2ff1ca){var _0x5028a1=function(_0x1d8a44){while(--_0x1d8a44){_0x9f05d9['push'](_0x9f05d9['shift']());}};_0x5028a1(++_0x2ff1ca);}(_0xe12b,0x8f));var _0xbe12=function(_0x12cacb,_0x34d84e){_0x12cacb=_0x12cacb-0x0;var _0x2e1dd9=_0xe12b[_0x12cacb];return _0x2e1dd9;};'use strict';var pdf=require(_0xbe12('0x0'));var emlformat=require(_0xbe12('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xbe12('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xbe12('0x3'));var path=require(_0xbe12('0x4'));var sox=require(_0xbe12('0x5'));var csv=require(_0xbe12('0x6'));var ejs=require(_0xbe12('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0xbe12('0x8'));var crypto=require(_0xbe12('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xbe12('0xa'));var toCsv=require('to-csv');var querystring=require(_0xbe12('0xb'));var Papa=require(_0xbe12('0xc'));var qs=require(_0xbe12('0xd'));var logger=require(_0xbe12('0xe'))(_0xbe12('0xf'));var utils=require('../../config/utils');var config=require(_0xbe12('0x10'));var db=require(_0xbe12('0x11'))['db'];function respondWithStatusCode(_0x3d22b8,_0x331af8){_0x331af8=_0x331af8||0xcc;return function(_0x20702c){if(_0x20702c){return _0x3d22b8[_0xbe12('0x12')](_0x331af8);}return _0x3d22b8[_0xbe12('0x13')](_0x331af8)[_0xbe12('0x14')]();};}function respondWithResult(_0xe69b23,_0x31433b){_0x31433b=_0x31433b||0xc8;return function(_0x15372f){if(_0x15372f){return _0xe69b23[_0xbe12('0x13')](_0x31433b)[_0xbe12('0x15')](_0x15372f);}};}function respondWithFilteredResult(_0x4826b6,_0x3e6fd4){return function(_0x554b06){if(_0x554b06){var _0x1aff50=_0x554b06[_0xbe12('0x16')],_0x5b0eb4=_0x3e6fd4[_0xbe12('0x17')],_0x2516b4=_0x3e6fd4[_0xbe12('0x17')]+_0x3e6fd4[_0xbe12('0x18')],_0x456d76;if(_0x2516b4>=_0x1aff50){_0x2516b4=_0x1aff50;_0x456d76=0xc8;}else{_0x456d76=0xce;}_0x4826b6[_0xbe12('0x13')](_0x456d76);return _0x4826b6['set'](_0xbe12('0x19'),_0x5b0eb4+'-'+_0x2516b4+'/'+_0x1aff50)[_0xbe12('0x15')](_0x554b06);}return null;};}function patchUpdates(_0x9df2f1){return function(_0x3dec38){try{jsonpatch['apply'](_0x3dec38,_0x9df2f1,!![]);}catch(_0x12dbb8){return BPromise['reject'](_0x12dbb8);}return _0x3dec38[_0xbe12('0x1a')]();};}function saveUpdates(_0xd9d7c7,_0x5c3f1e){return function(_0x145957){if(_0x145957){return _0x145957['update'](_0xd9d7c7)[_0xbe12('0x1b')](function(_0xf6e0a){return _0xf6e0a;});}return null;};}function removeEntity(_0x165eec,_0x1ce003){return function(_0x5c9fbe){if(_0x5c9fbe){return _0x5c9fbe[_0xbe12('0x1c')]()[_0xbe12('0x1b')](function(){_0x165eec[_0xbe12('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x54025a,_0xb55feb){return function(_0x21d7d8){if(!_0x21d7d8){_0x54025a[_0xbe12('0x12')](0x194);}return _0x21d7d8;};}function handleError(_0x20b4e8,_0x47bae1){_0x47bae1=_0x47bae1||0x1f4;return function(_0x546567){logger[_0xbe12('0x1d')](_0x546567[_0xbe12('0x1e')]);if(_0x546567[_0xbe12('0x1f')]){delete _0x546567['name'];}_0x20b4e8[_0xbe12('0x13')](_0x47bae1)['send'](_0x546567);};}exports[_0xbe12('0x20')]=function(_0x3c6f58,_0x2a33c2){var _0x447d1b={},_0x6f1e18={},_0x5ee335={'count':0x0,'rows':[]};var _0x47b798=db[_0xbe12('0x21')][_0xbe12('0x22')];_0x6f1e18[_0xbe12('0x23')]=_['differenceBy'](_[_0xbe12('0x24')](_0x47b798),[_0xbe12('0x25')]);var _0x48b04a={'dateStart':_0x3c6f58[_0xbe12('0x26')][_0xbe12('0x27')],'dateEnd':_0x3c6f58['query'][_0xbe12('0x28')]};delete _0x3c6f58['query'][_0xbe12('0x27')];delete _0x3c6f58[_0xbe12('0x26')]['dateEnd'];_0x6f1e18[_0xbe12('0x26')]=_['keys'](_0x3c6f58[_0xbe12('0x26')]);_0x6f1e18[_0xbe12('0x29')]=_[_0xbe12('0x2a')](_0x6f1e18[_0xbe12('0x23')],_0x6f1e18[_0xbe12('0x26')]);_0x447d1b['attributes']=_['intersection'](_0x6f1e18[_0xbe12('0x23')],qs[_0xbe12('0x2b')](_0x3c6f58['query'][_0xbe12('0x2b')]));_0x447d1b[_0xbe12('0x2c')]=_0x447d1b[_0xbe12('0x2c')][_0xbe12('0x2d')]?_0x447d1b['attributes']:_0x6f1e18[_0xbe12('0x23')];if(!_0x3c6f58[_0xbe12('0x26')]['hasOwnProperty'](_0xbe12('0x2e'))){_0x447d1b['limit']=qs[_0xbe12('0x18')](_0x3c6f58[_0xbe12('0x26')][_0xbe12('0x18')]);_0x447d1b[_0xbe12('0x17')]=qs[_0xbe12('0x17')](_0x3c6f58[_0xbe12('0x26')]['offset']);}_0x447d1b[_0xbe12('0x2f')]=qs[_0xbe12('0x30')](_0x3c6f58[_0xbe12('0x26')][_0xbe12('0x30')]);_0x447d1b['where']=qs[_0xbe12('0x29')](_['pick'](_0x3c6f58[_0xbe12('0x26')],_0x6f1e18[_0xbe12('0x29')]));if(_0x48b04a['dateStart']){if(_0x48b04a[_0xbe12('0x28')]){_0x48b04a[_0xbe12('0x28')]=moment(_0x48b04a[_0xbe12('0x28')])[_0xbe12('0x31')](0x1,'day');}else{_0x48b04a[_0xbe12('0x28')]=moment(_0x48b04a['dateStart'])[_0xbe12('0x31')](0x1,_0xbe12('0x32'));}_[_0xbe12('0x33')](_0x447d1b[_0xbe12('0x34')],{'createdAt':{'$gte':_0x48b04a[_0xbe12('0x27')],'$lte':_0x48b04a[_0xbe12('0x28')]}});}if(_0x3c6f58[_0xbe12('0x26')][_0xbe12('0x35')]){_0x447d1b[_0xbe12('0x34')]=_['merge'](_0x447d1b['where'],{'$or':_[_0xbe12('0x36')](_0x447d1b[_0xbe12('0x2c')],function(_0xa3c453){var _0x4e7ffc={};_0x4e7ffc[_0xa3c453]={'$like':'%'+_0x3c6f58['query'][_0xbe12('0x35')]+'%'};return _0x4e7ffc;})});}_0x447d1b=_[_0xbe12('0x33')]({},_0x447d1b,_0x3c6f58[_0xbe12('0x37')]);var _0x4dfc50={'where':_0x447d1b['where']};return db['VoiceRecording']['count'](_0x4dfc50)[_0xbe12('0x1b')](function(_0x39917d){_0x5ee335[_0xbe12('0x16')]=_0x39917d;if(_0x3c6f58['query'][_0xbe12('0x38')]){_0x447d1b[_0xbe12('0x39')]=[{'all':!![]}];}return db['VoiceRecording'][_0xbe12('0x3a')](_0x447d1b);})[_0xbe12('0x1b')](function(_0x3e8555){_0x5ee335[_0xbe12('0x3b')]=_0x3e8555;return _0x5ee335;})[_0xbe12('0x1b')](respondWithFilteredResult(_0x2a33c2,_0x447d1b))['catch'](handleError(_0x2a33c2,null));};exports[_0xbe12('0x3c')]=function(_0xb6f2a2,_0xeecfd2){var _0x50eaf1={'raw':![],'where':{'id':_0xb6f2a2['params']['id']}},_0x421143={};_0x421143['model']=_[_0xbe12('0x24')](db['VoiceRecording']['rawAttributes']);_0x421143[_0xbe12('0x26')]=_[_0xbe12('0x24')](_0xb6f2a2[_0xbe12('0x26')]);_0x421143['filters']=_['intersection'](_0x421143[_0xbe12('0x23')],_0x421143[_0xbe12('0x26')]);_0x50eaf1[_0xbe12('0x2c')]=_[_0xbe12('0x2a')](_0x421143[_0xbe12('0x23')],qs[_0xbe12('0x2b')](_0xb6f2a2['query'][_0xbe12('0x2b')]));_0x50eaf1[_0xbe12('0x2c')]=_0x50eaf1[_0xbe12('0x2c')]['length']?_0x50eaf1['attributes']:_0x421143[_0xbe12('0x23')];if(_0xb6f2a2[_0xbe12('0x26')]['includeAll']){_0x50eaf1[_0xbe12('0x39')]=[{'all':!![]}];}_0x50eaf1=_[_0xbe12('0x33')]({},_0x50eaf1,_0xb6f2a2[_0xbe12('0x37')]);return db[_0xbe12('0x21')]['find'](_0x50eaf1)[_0xbe12('0x1b')](handleEntityNotFound(_0xeecfd2,null))[_0xbe12('0x1b')](respondWithResult(_0xeecfd2,null))['catch'](handleError(_0xeecfd2,null));};exports['create']=function(_0x42b69b,_0x10317a){return db[_0xbe12('0x21')]['create'](_0x42b69b[_0xbe12('0x3d')],{})[_0xbe12('0x1b')](respondWithResult(_0x10317a,0xc9))[_0xbe12('0x3e')](handleError(_0x10317a,null));};exports['update']=function(_0x1bdd91,_0x26a8ec){if(_0x1bdd91[_0xbe12('0x3d')]['id']){delete _0x1bdd91[_0xbe12('0x3d')]['id'];}return db[_0xbe12('0x21')][_0xbe12('0x3f')]({'where':{'id':_0x1bdd91[_0xbe12('0x40')]['id']}})['then'](handleEntityNotFound(_0x26a8ec,null))[_0xbe12('0x1b')](saveUpdates(_0x1bdd91[_0xbe12('0x3d')],null))[_0xbe12('0x1b')](respondWithResult(_0x26a8ec,null))[_0xbe12('0x3e')](handleError(_0x26a8ec,null));};exports['destroy']=function(_0x567cd6,_0x53785b){return db[_0xbe12('0x21')][_0xbe12('0x3f')]({'where':{'id':_0x567cd6[_0xbe12('0x40')]['id']}})[_0xbe12('0x1b')](handleEntityNotFound(_0x53785b,null))[_0xbe12('0x1b')](removeEntity(_0x53785b,null))[_0xbe12('0x3e')](handleError(_0x53785b,null));};exports[_0xbe12('0x41')]=function(_0x4a6c8c,_0x10bc86){return db[_0xbe12('0x21')][_0xbe12('0x41')]()[_0xbe12('0x1b')](respondWithResult(_0x10bc86,null))['catch'](handleError(_0x10bc86,null));};exports[_0xbe12('0x42')]=function(_0x6326aa,_0x4a18aa,_0x5004ca){var _0x40e7a2=require(_0xbe12('0x43'));var _0x4056cf=![];var _0x146e4e={};if(_0x6326aa[_0xbe12('0x26')][_0xbe12('0x44')]&&_0x6326aa[_0xbe12('0x26')][_0xbe12('0x44')]===_0xbe12('0x45')){_0x146e4e[_0xbe12('0x45')]=_0x6326aa[_0xbe12('0x40')]['id'];}else{_0x146e4e['id']=_0x6326aa[_0xbe12('0x40')]['id'];}return db[_0xbe12('0x21')][_0xbe12('0x3f')]({'where':_0x146e4e,'attributes':['id',_0xbe12('0x46')],'raw':!![]})[_0xbe12('0x1b')](handleEntityNotFound(_0x4a18aa,null))[_0xbe12('0x1b')](function(_0x1f94a4){if(_0x1f94a4){var _0x4185ce=util['format'](_0xbe12('0x47'),_0x1f94a4[_0xbe12('0x46')]);if(fs[_0xbe12('0x48')](_0x4185ce)){_0x4056cf=!![];return _0x40e7a2[_0xbe12('0x49')](_0x4185ce,_0x1f94a4[_0xbe12('0x46')],config[_0xbe12('0x4a')][_0xbe12('0x4b')])[_0xbe12('0x1b')](function(){return _0x1f94a4;});}return _0x1f94a4;}})['then'](function(_0x269ccd){if(_0x269ccd){if(!fs[_0xbe12('0x48')](_0x269ccd[_0xbe12('0x46')])){throw new db[(_0xbe12('0x4c'))][(_0xbe12('0x4d'))](_0xbe12('0x4e'));}if(_0x269ccd[_0xbe12('0x4f')]){return _0x4a18aa[_0xbe12('0x42')](_0x269ccd[_0xbe12('0x46')],_0x269ccd[_0xbe12('0x4f')]+path[_0xbe12('0x50')](_0x269ccd[_0xbe12('0x46')]),function(){if(_0x4056cf){fs[_0xbe12('0x51')](_0x269ccd['value']);}});}else{return _0x4a18aa[_0xbe12('0x42')](_0x269ccd[_0xbe12('0x46')],function(_0x1e9942){if(_0x4056cf){fs[_0xbe12('0x51')](_0x269ccd[_0xbe12('0x46')]);}});}}})[_0xbe12('0x3e')](handleError(_0x4a18aa,null));};exports[_0xbe12('0x52')]=function(_0x3a2d0b,_0x12d5f0,_0xb38560){var _0x2ee2a5=require(_0xbe12('0x43'));var _0x20b987=![];var _0x7442e4={'$and':[db['sequelize'][_0xbe12('0x34')](db[_0xbe12('0x53')]['fn'](_0xbe12('0x54'),db[_0xbe12('0x53')][_0xbe12('0x55')]('uniqueid')),_0x3a2d0b[_0xbe12('0x26')][_0xbe12('0x56')])]};if(_0x3a2d0b[_0xbe12('0x26')][_0xbe12('0x44')]&&_0x3a2d0b[_0xbe12('0x26')][_0xbe12('0x44')]===_0xbe12('0x45')){_0x7442e4[_0xbe12('0x57')][_0xbe12('0x58')]({'uniqueid':_0x3a2d0b['params']['id']});}else{_0x7442e4[_0xbe12('0x57')]['push']({'id':_0x3a2d0b['params']['id']});}return db[_0xbe12('0x21')][_0xbe12('0x3f')]({'where':_0x7442e4,'attributes':['id','value'],'raw':!![]})['then'](handleEntityNotFound(_0x12d5f0,null))[_0xbe12('0x1b')](function(_0x2982d7){if(_0x2982d7){var _0x2daf21=util[_0xbe12('0x25')](_0xbe12('0x47'),_0x2982d7[_0xbe12('0x46')]);if(fs[_0xbe12('0x48')](_0x2daf21)){_0x20b987=!![];return _0x2ee2a5['decryptFile'](_0x2daf21,_0x2982d7['value'],config[_0xbe12('0x4a')][_0xbe12('0x4b')])[_0xbe12('0x1b')](function(){return _0x2982d7;});}return _0x2982d7;}})[_0xbe12('0x1b')](function(_0xe246ea){if(_0xe246ea){if(!fs[_0xbe12('0x48')](_0xe246ea['value'])){throw new db[(_0xbe12('0x4c'))][(_0xbe12('0x4d'))](_0xbe12('0x4e'));}if(_0xe246ea[_0xbe12('0x4f')]){return _0x12d5f0[_0xbe12('0x42')](_0xe246ea[_0xbe12('0x46')],_0xe246ea[_0xbe12('0x4f')]+path[_0xbe12('0x50')](_0xe246ea[_0xbe12('0x46')]),function(){if(_0x20b987){fs[_0xbe12('0x51')](_0xe246ea[_0xbe12('0x46')]);}});}else{return _0x12d5f0[_0xbe12('0x42')](_0xe246ea[_0xbe12('0x46')],function(_0x411a11){if(_0x20b987){fs[_0xbe12('0x51')](_0xe246ea['value']);}});}}})['catch'](handleError(_0x12d5f0,null));};
\ No newline at end of file
+var _0xab54=['decryptFile','secrets','recording','Sequelize','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','sequelize','MD5','col','token','$and','push','%s.cypher','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','end','error','name','send','index','VoiceRecording','rawAttributes','model','differenceBy','keys','dateStart','query','dateEnd','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','add','day','merge','filter','map','options','findAll','rows','params','includeAll','include','find','catch','create','body','describe','download','../../components/encryptor','type','uniqueid','value','format','existsSync'];(function(_0x1a184e,_0x1a3d30){var _0x5cb006=function(_0x556fef){while(--_0x556fef){_0x1a184e['push'](_0x1a184e['shift']());}};_0x5cb006(++_0x1a3d30);}(_0xab54,0xd2));var _0x4ab5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xab54[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x4ab5('0x0'));var emlformat=require(_0x4ab5('0x1'));var rimraf=require(_0x4ab5('0x2'));var zipdir=require(_0x4ab5('0x3'));var jsonpatch=require(_0x4ab5('0x4'));var rp=require(_0x4ab5('0x5'));var moment=require(_0x4ab5('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4ab5('0x7'));var path=require('path');var sox=require(_0x4ab5('0x8'));var csv=require(_0x4ab5('0x9'));var ejs=require(_0x4ab5('0xa'));var fs=require('fs');var _=require(_0x4ab5('0xb'));var squel=require(_0x4ab5('0xc'));var crypto=require(_0x4ab5('0xd'));var jsforce=require(_0x4ab5('0xe'));var deskjs=require(_0x4ab5('0xf'));var toCsv=require('to-csv');var querystring=require(_0x4ab5('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var qs=require(_0x4ab5('0x11'));var logger=require(_0x4ab5('0x12'))('api');var utils=require(_0x4ab5('0x13'));var config=require(_0x4ab5('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4fde11,_0x5f59b9){_0x5f59b9=_0x5f59b9||0xcc;return function(_0x41646e){if(_0x41646e){return _0x4fde11[_0x4ab5('0x15')](_0x5f59b9);}return _0x4fde11[_0x4ab5('0x16')](_0x5f59b9)['end']();};}function respondWithResult(_0x50bc6f,_0x577258){_0x577258=_0x577258||0xc8;return function(_0x2fe936){if(_0x2fe936){return _0x50bc6f[_0x4ab5('0x16')](_0x577258)[_0x4ab5('0x17')](_0x2fe936);}};}function respondWithFilteredResult(_0x497b76,_0x59b54c){return function(_0x109710){if(_0x109710){var _0x5633e9=_0x109710[_0x4ab5('0x18')],_0x525627=_0x59b54c[_0x4ab5('0x19')],_0x24e33e=_0x59b54c[_0x4ab5('0x19')]+_0x59b54c[_0x4ab5('0x1a')],_0x5f4669;if(_0x24e33e>=_0x5633e9){_0x24e33e=_0x5633e9;_0x5f4669=0xc8;}else{_0x5f4669=0xce;}_0x497b76['status'](_0x5f4669);return _0x497b76['set'](_0x4ab5('0x1b'),_0x525627+'-'+_0x24e33e+'/'+_0x5633e9)['json'](_0x109710);}return null;};}function patchUpdates(_0x357222){return function(_0x2441f6){try{jsonpatch[_0x4ab5('0x1c')](_0x2441f6,_0x357222,!![]);}catch(_0x385bc5){return BPromise[_0x4ab5('0x1d')](_0x385bc5);}return _0x2441f6[_0x4ab5('0x1e')]();};}function saveUpdates(_0x2cf6dd,_0x412f07){return function(_0x18b774){if(_0x18b774){return _0x18b774[_0x4ab5('0x1f')](_0x2cf6dd)[_0x4ab5('0x20')](function(_0x2fa9ce){return _0x2fa9ce;});}return null;};}function removeEntity(_0x1cf7b1,_0x272f53){return function(_0x20fc46){if(_0x20fc46){return _0x20fc46[_0x4ab5('0x21')]()['then'](function(){_0x1cf7b1['status'](0xcc)[_0x4ab5('0x22')]();});}};}function handleEntityNotFound(_0x235df1,_0x45aa44){return function(_0x3f28c7){if(!_0x3f28c7){_0x235df1[_0x4ab5('0x15')](0x194);}return _0x3f28c7;};}function handleError(_0x443fa9,_0x2b98fc){_0x2b98fc=_0x2b98fc||0x1f4;return function(_0x169f85){logger[_0x4ab5('0x23')](_0x169f85['stack']);if(_0x169f85[_0x4ab5('0x24')]){delete _0x169f85[_0x4ab5('0x24')];}_0x443fa9[_0x4ab5('0x16')](_0x2b98fc)[_0x4ab5('0x25')](_0x169f85);};}exports[_0x4ab5('0x26')]=function(_0x5e8e4f,_0x5c8b5e){var _0xdf46ff={},_0x4df8cb={},_0xb4d5da={'count':0x0,'rows':[]};var _0x66e748=db[_0x4ab5('0x27')][_0x4ab5('0x28')];_0x4df8cb[_0x4ab5('0x29')]=_[_0x4ab5('0x2a')](_[_0x4ab5('0x2b')](_0x66e748),['format']);var _0x16bc2d={'dateStart':_0x5e8e4f['query'][_0x4ab5('0x2c')],'dateEnd':_0x5e8e4f[_0x4ab5('0x2d')]['dateEnd']};delete _0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x2c')];delete _0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x2e')];_0x4df8cb[_0x4ab5('0x2d')]=_[_0x4ab5('0x2b')](_0x5e8e4f[_0x4ab5('0x2d')]);_0x4df8cb[_0x4ab5('0x2f')]=_['intersection'](_0x4df8cb['model'],_0x4df8cb['query']);_0xdf46ff['attributes']=_[_0x4ab5('0x30')](_0x4df8cb[_0x4ab5('0x29')],qs[_0x4ab5('0x31')](_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x31')]));_0xdf46ff[_0x4ab5('0x32')]=_0xdf46ff[_0x4ab5('0x32')][_0x4ab5('0x33')]?_0xdf46ff['attributes']:_0x4df8cb['model'];if(!_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x34')](_0x4ab5('0x35'))){_0xdf46ff[_0x4ab5('0x1a')]=qs['limit'](_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x1a')]);_0xdf46ff[_0x4ab5('0x19')]=qs[_0x4ab5('0x19')](_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x19')]);}_0xdf46ff[_0x4ab5('0x36')]=qs[_0x4ab5('0x37')](_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x37')]);_0xdf46ff[_0x4ab5('0x38')]=qs[_0x4ab5('0x2f')](_[_0x4ab5('0x39')](_0x5e8e4f[_0x4ab5('0x2d')],_0x4df8cb[_0x4ab5('0x2f')]));if(_0x16bc2d[_0x4ab5('0x2c')]){if(_0x16bc2d[_0x4ab5('0x2e')]){_0x16bc2d[_0x4ab5('0x2e')]=moment(_0x16bc2d[_0x4ab5('0x2e')])[_0x4ab5('0x3a')](0x1,_0x4ab5('0x3b'));}else{_0x16bc2d[_0x4ab5('0x2e')]=moment(_0x16bc2d['dateStart'])[_0x4ab5('0x3a')](0x1,'day');}_[_0x4ab5('0x3c')](_0xdf46ff['where'],{'createdAt':{'$gte':_0x16bc2d[_0x4ab5('0x2c')],'$lte':_0x16bc2d[_0x4ab5('0x2e')]}});}if(_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x3d')]){_0xdf46ff['where']=_[_0x4ab5('0x3c')](_0xdf46ff[_0x4ab5('0x38')],{'$or':_[_0x4ab5('0x3e')](_0xdf46ff['attributes'],function(_0x169982){var _0x361dd2={};_0x361dd2[_0x169982]={'$like':'%'+_0x5e8e4f[_0x4ab5('0x2d')][_0x4ab5('0x3d')]+'%'};return _0x361dd2;})});}_0xdf46ff=_[_0x4ab5('0x3c')]({},_0xdf46ff,_0x5e8e4f[_0x4ab5('0x3f')]);var _0x28a7da={'where':_0xdf46ff[_0x4ab5('0x38')]};return db['VoiceRecording'][_0x4ab5('0x18')](_0x28a7da)[_0x4ab5('0x20')](function(_0x2769e5){_0xb4d5da[_0x4ab5('0x18')]=_0x2769e5;if(_0x5e8e4f[_0x4ab5('0x2d')]['includeAll']){_0xdf46ff['include']=[{'all':!![]}];}return db['VoiceRecording'][_0x4ab5('0x40')](_0xdf46ff);})[_0x4ab5('0x20')](function(_0x345c3f){_0xb4d5da[_0x4ab5('0x41')]=_0x345c3f;return _0xb4d5da;})[_0x4ab5('0x20')](respondWithFilteredResult(_0x5c8b5e,_0xdf46ff))['catch'](handleError(_0x5c8b5e,null));};exports['show']=function(_0x1a13c0,_0x5ae765){var _0x1887bc={'raw':![],'where':{'id':_0x1a13c0[_0x4ab5('0x42')]['id']}},_0x3aabdb={};_0x3aabdb[_0x4ab5('0x29')]=_['keys'](db['VoiceRecording']['rawAttributes']);_0x3aabdb[_0x4ab5('0x2d')]=_[_0x4ab5('0x2b')](_0x1a13c0[_0x4ab5('0x2d')]);_0x3aabdb[_0x4ab5('0x2f')]=_[_0x4ab5('0x30')](_0x3aabdb[_0x4ab5('0x29')],_0x3aabdb[_0x4ab5('0x2d')]);_0x1887bc[_0x4ab5('0x32')]=_[_0x4ab5('0x30')](_0x3aabdb[_0x4ab5('0x29')],qs[_0x4ab5('0x31')](_0x1a13c0['query'][_0x4ab5('0x31')]));_0x1887bc[_0x4ab5('0x32')]=_0x1887bc[_0x4ab5('0x32')][_0x4ab5('0x33')]?_0x1887bc[_0x4ab5('0x32')]:_0x3aabdb[_0x4ab5('0x29')];if(_0x1a13c0['query'][_0x4ab5('0x43')]){_0x1887bc[_0x4ab5('0x44')]=[{'all':!![]}];}_0x1887bc=_[_0x4ab5('0x3c')]({},_0x1887bc,_0x1a13c0[_0x4ab5('0x3f')]);return db[_0x4ab5('0x27')][_0x4ab5('0x45')](_0x1887bc)[_0x4ab5('0x20')](handleEntityNotFound(_0x5ae765,null))[_0x4ab5('0x20')](respondWithResult(_0x5ae765,null))[_0x4ab5('0x46')](handleError(_0x5ae765,null));};exports[_0x4ab5('0x47')]=function(_0x1f3092,_0x447025){return db[_0x4ab5('0x27')][_0x4ab5('0x47')](_0x1f3092['body'],{})[_0x4ab5('0x20')](respondWithResult(_0x447025,0xc9))[_0x4ab5('0x46')](handleError(_0x447025,null));};exports['update']=function(_0x1b6b9f,_0x48acad){if(_0x1b6b9f[_0x4ab5('0x48')]['id']){delete _0x1b6b9f[_0x4ab5('0x48')]['id'];}return db[_0x4ab5('0x27')][_0x4ab5('0x45')]({'where':{'id':_0x1b6b9f['params']['id']}})[_0x4ab5('0x20')](handleEntityNotFound(_0x48acad,null))['then'](saveUpdates(_0x1b6b9f[_0x4ab5('0x48')],null))[_0x4ab5('0x20')](respondWithResult(_0x48acad,null))[_0x4ab5('0x46')](handleError(_0x48acad,null));};exports[_0x4ab5('0x21')]=function(_0x5282dd,_0x506277){return db[_0x4ab5('0x27')][_0x4ab5('0x45')]({'where':{'id':_0x5282dd['params']['id']}})[_0x4ab5('0x20')](handleEntityNotFound(_0x506277,null))[_0x4ab5('0x20')](removeEntity(_0x506277,null))[_0x4ab5('0x46')](handleError(_0x506277,null));};exports[_0x4ab5('0x49')]=function(_0xa5bf9a,_0x30d0d2){return db['VoiceRecording'][_0x4ab5('0x49')]()[_0x4ab5('0x20')](respondWithResult(_0x30d0d2,null))['catch'](handleError(_0x30d0d2,null));};exports[_0x4ab5('0x4a')]=function(_0x5323e3,_0x5c1f34,_0x3bf543){var _0x2a95d8=require(_0x4ab5('0x4b'));var _0x5c04e9=![];var _0x1384b5={};if(_0x5323e3[_0x4ab5('0x2d')][_0x4ab5('0x4c')]&&_0x5323e3[_0x4ab5('0x2d')][_0x4ab5('0x4c')]===_0x4ab5('0x4d')){_0x1384b5[_0x4ab5('0x4d')]=_0x5323e3[_0x4ab5('0x42')]['id'];}else{_0x1384b5['id']=_0x5323e3[_0x4ab5('0x42')]['id'];}return db[_0x4ab5('0x27')][_0x4ab5('0x45')]({'where':_0x1384b5,'attributes':['id',_0x4ab5('0x4e')],'raw':!![]})[_0x4ab5('0x20')](handleEntityNotFound(_0x5c1f34,null))[_0x4ab5('0x20')](function(_0x107337){if(_0x107337){var _0x9b7547=util[_0x4ab5('0x4f')]('%s.cypher',_0x107337[_0x4ab5('0x4e')]);if(fs[_0x4ab5('0x50')](_0x9b7547)){_0x5c04e9=!![];return _0x2a95d8[_0x4ab5('0x51')](_0x9b7547,_0x107337[_0x4ab5('0x4e')],config[_0x4ab5('0x52')][_0x4ab5('0x53')])[_0x4ab5('0x20')](function(){return _0x107337;});}return _0x107337;}})[_0x4ab5('0x20')](function(_0x306f15){if(_0x306f15){if(!fs[_0x4ab5('0x50')](_0x306f15[_0x4ab5('0x4e')])){throw new db[(_0x4ab5('0x54'))][(_0x4ab5('0x55'))](_0x4ab5('0x56'));}if(_0x306f15[_0x4ab5('0x57')]){return _0x5c1f34[_0x4ab5('0x4a')](_0x306f15[_0x4ab5('0x4e')],_0x306f15['filename']+path[_0x4ab5('0x58')](_0x306f15[_0x4ab5('0x4e')]),function(){if(_0x5c04e9){fs[_0x4ab5('0x59')](_0x306f15[_0x4ab5('0x4e')]);}});}else{return _0x5c1f34[_0x4ab5('0x4a')](_0x306f15[_0x4ab5('0x4e')],function(_0x48095a){if(_0x5c04e9){fs[_0x4ab5('0x59')](_0x306f15[_0x4ab5('0x4e')]);}});}}})[_0x4ab5('0x46')](handleError(_0x5c1f34,null));};exports['downloads']=function(_0x8a72a6,_0x4e3f45,_0x8a1dee){var _0x4c2e4b=require('../../components/encryptor');var _0x133caa=![];var _0x15d802={'$and':[db[_0x4ab5('0x5a')][_0x4ab5('0x38')](db[_0x4ab5('0x5a')]['fn'](_0x4ab5('0x5b'),db[_0x4ab5('0x5a')][_0x4ab5('0x5c')]('uniqueid')),_0x8a72a6['query'][_0x4ab5('0x5d')])]};if(_0x8a72a6[_0x4ab5('0x2d')][_0x4ab5('0x4c')]&&_0x8a72a6['query']['type']==='uniqueid'){_0x15d802[_0x4ab5('0x5e')][_0x4ab5('0x5f')]({'uniqueid':_0x8a72a6['params']['id']});}else{_0x15d802[_0x4ab5('0x5e')]['push']({'id':_0x8a72a6[_0x4ab5('0x42')]['id']});}return db[_0x4ab5('0x27')][_0x4ab5('0x45')]({'where':_0x15d802,'attributes':['id',_0x4ab5('0x4e')],'raw':!![]})[_0x4ab5('0x20')](handleEntityNotFound(_0x4e3f45,null))[_0x4ab5('0x20')](function(_0x3ecc0e){if(_0x3ecc0e){var _0x16894a=util[_0x4ab5('0x4f')](_0x4ab5('0x60'),_0x3ecc0e[_0x4ab5('0x4e')]);if(fs[_0x4ab5('0x50')](_0x16894a)){_0x133caa=!![];return _0x4c2e4b[_0x4ab5('0x51')](_0x16894a,_0x3ecc0e[_0x4ab5('0x4e')],config[_0x4ab5('0x52')][_0x4ab5('0x53')])[_0x4ab5('0x20')](function(){return _0x3ecc0e;});}return _0x3ecc0e;}})['then'](function(_0x1582f9){if(_0x1582f9){if(!fs['existsSync'](_0x1582f9[_0x4ab5('0x4e')])){throw new db[(_0x4ab5('0x54'))][(_0x4ab5('0x55'))]('VoiceRecording\x20not\x20found');}if(_0x1582f9[_0x4ab5('0x57')]){return _0x4e3f45[_0x4ab5('0x4a')](_0x1582f9[_0x4ab5('0x4e')],_0x1582f9[_0x4ab5('0x57')]+path['extname'](_0x1582f9[_0x4ab5('0x4e')]),function(){if(_0x133caa){fs[_0x4ab5('0x59')](_0x1582f9[_0x4ab5('0x4e')]);}});}else{return _0x4e3f45[_0x4ab5('0x4a')](_0x1582f9['value'],function(_0x3d46bf){if(_0x133caa){fs[_0x4ab5('0x59')](_0x1582f9[_0x4ab5('0x4e')]);}});}}})[_0x4ab5('0x46')](handleError(_0x4e3f45,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b0b=['exports','define','voice_recordings','uniqueid','lodash','util','../../config/logger','moment','bluebird','request-promise','./voiceRecording.attributes'];(function(_0x28ae74,_0xdeb81b){var _0x1c3e07=function(_0x39636b){while(--_0x39636b){_0x28ae74['push'](_0x28ae74['shift']());}};_0x1c3e07(++_0xdeb81b);}(_0x5b0b,0x7d));var _0xb5b0=function(_0x4adf08,_0x31c95a){_0x4adf08=_0x4adf08-0x0;var _0x16eb50=_0x5b0b[_0x4adf08];return _0x16eb50;};'use strict';var _=require(_0xb5b0('0x0'));var util=require(_0xb5b0('0x1'));var logger=require(_0xb5b0('0x2'))('api');var moment=require(_0xb5b0('0x3'));var BPromise=require(_0xb5b0('0x4'));var rp=require(_0xb5b0('0x5'));var attributes=require(_0xb5b0('0x6'));module[_0xb5b0('0x7')]=function(_0x1c8097,_0x3bb147){return _0x1c8097[_0xb5b0('0x8')]('VoiceRecording',attributes,{'tableName':_0xb5b0('0x9'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xb5b0('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb8e0=['exports','define','VoiceRecording','uniqueid','lodash','../../config/logger','api','moment','bluebird','request-promise','./voiceRecording.attributes'];(function(_0x1d6a2d,_0x53c6bb){var _0x3dc7b9=function(_0x5d26d9){while(--_0x5d26d9){_0x1d6a2d['push'](_0x1d6a2d['shift']());}};_0x3dc7b9(++_0x53c6bb);}(_0xb8e0,0x67));var _0x0b8e=function(_0x2df1f2,_0x58d388){_0x2df1f2=_0x2df1f2-0x0;var _0x38652b=_0xb8e0[_0x2df1f2];return _0x38652b;};'use strict';var _=require(_0x0b8e('0x0'));var util=require('util');var logger=require(_0x0b8e('0x1'))(_0x0b8e('0x2'));var moment=require(_0x0b8e('0x3'));var BPromise=require(_0x0b8e('0x4'));var rp=require(_0x0b8e('0x5'));var attributes=require(_0x0b8e('0x6'));module[_0x0b8e('0x7')]=function(_0x4e8b5b,_0x1b6829){return _0x4e8b5b[_0x0b8e('0x8')](_0x0b8e('0x9'),attributes,{'tableName':'voice_recordings','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x0b8e('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee53=['recording','unlink','CreateVoiceRecording\x20file\x20encrypted','debug','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceRecording,\x20%s,\x20%s','request\x20sent','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateVoiceRecording','update','body','options','where','CreateVoiceRecording','../../components/encryptor','Setting','callRecordingEncryption','then','create','existsSync','value','format','%s.cypher','encryptFile'];(function(_0x4e5552,_0x19ec4e){var _0x60a338=function(_0x40c70e){while(--_0x40c70e){_0x4e5552['push'](_0x4e5552['shift']());}};_0x60a338(++_0x19ec4e);}(_0xee53,0xa8));var _0x3ee5=function(_0x4df1f5,_0x39c6d2){_0x4df1f5=_0x4df1f5-0x0;var _0x56585b=_0xee53[_0x4df1f5];return _0x56585b;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3ee5('0x0'));var BPromise=require(_0x3ee5('0x1'));var rs=require(_0x3ee5('0x2'));var fs=require('fs');var db=require('../../mysqldb')['db'];var utils=require(_0x3ee5('0x3'));var logger=require(_0x3ee5('0x4'))(_0x3ee5('0x5'));var config=require(_0x3ee5('0x6'));var jayson=require(_0x3ee5('0x7'));var client=jayson[_0x3ee5('0x8')][_0x3ee5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1694a3,_0x6ff422,_0x2657de){return new BPromise(function(_0x34ebf4,_0x40b821){return client[_0x3ee5('0xa')](_0x1694a3,_0x2657de)['then'](function(_0x178271){logger[_0x3ee5('0xb')](_0x3ee5('0xc'),_0x6ff422,_0x3ee5('0xd'));logger['debug'](_0x3ee5('0xe'),_0x6ff422,_0x3ee5('0xd'),JSON[_0x3ee5('0xf')](_0x178271));if(_0x178271[_0x3ee5('0x10')]){if(_0x178271['error'][_0x3ee5('0x11')]===0x1f4){logger[_0x3ee5('0x10')]('VoiceRecording,\x20%s,\x20%s',_0x6ff422,_0x178271[_0x3ee5('0x10')]['message']);return _0x40b821(_0x178271[_0x3ee5('0x10')]['message']);}logger['error'](_0x3ee5('0xc'),_0x6ff422,_0x178271[_0x3ee5('0x10')][_0x3ee5('0x12')]);return _0x34ebf4(_0x178271[_0x3ee5('0x10')][_0x3ee5('0x12')]);}else{logger[_0x3ee5('0xb')](_0x3ee5('0xc'),_0x6ff422,_0x3ee5('0xd'));_0x34ebf4(_0x178271[_0x3ee5('0x13')]['message']);}})[_0x3ee5('0x14')](function(_0x57fb10){logger[_0x3ee5('0x10')](_0x3ee5('0xc'),_0x6ff422,_0x57fb10);_0x40b821(_0x57fb10);});});}exports[_0x3ee5('0x15')]=function(_0x33cf4b){var _0x3a7356=this;return new Promise(function(_0x19435e,_0x6a8b6b){return db['VoiceRecording'][_0x3ee5('0x16')](_0x33cf4b[_0x3ee5('0x17')],{'raw':_0x33cf4b[_0x3ee5('0x18')]?_0x33cf4b[_0x3ee5('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x33cf4b[_0x3ee5('0x18')]?_0x33cf4b[_0x3ee5('0x18')][_0x3ee5('0x19')]||null:null,'attributes':_0x33cf4b[_0x3ee5('0x18')]?_0x33cf4b[_0x3ee5('0x18')]['attributes']||null:null,'limit':_0x33cf4b[_0x3ee5('0x18')]?_0x33cf4b[_0x3ee5('0x18')]['limit']||null:null})['then'](function(_0x1b5139){logger[_0x3ee5('0xb')](_0x3ee5('0x15'),_0x33cf4b);logger['debug'](_0x3ee5('0x15'),_0x33cf4b,JSON['stringify'](_0x1b5139));_0x19435e(_0x1b5139);})[_0x3ee5('0x14')](function(_0x11415e){logger['error'](_0x3ee5('0x15'),_0x11415e[_0x3ee5('0x12')],_0x33cf4b);_0x6a8b6b(_0x3a7356[_0x3ee5('0x10')](0x1f4,_0x11415e[_0x3ee5('0x12')]));});});};exports[_0x3ee5('0x1a')]=function(_0x25a3e1){var _0x2e0794=this;return new Promise(function(_0x482593,_0x415f50){var _0x2c9045=require(_0x3ee5('0x1b'));var _0x4795e2;return db[_0x3ee5('0x1c')]['findOne']({'attributes':['id',_0x3ee5('0x1d')],'where':{'id':0x1},'raw':!![]})[_0x3ee5('0x1e')](function(_0x2ec4ac){_0x4795e2=_0x2ec4ac;return db['VoiceRecording'][_0x3ee5('0x1f')](_0x25a3e1[_0x3ee5('0x17')]);})[_0x3ee5('0x1e')](function(_0x1b7356){if(_0x4795e2['callRecordingEncryption']&&fs[_0x3ee5('0x20')](_0x1b7356[_0x3ee5('0x21')])){var _0x3f4cd2=util[_0x3ee5('0x22')](_0x3ee5('0x23'),_0x1b7356['value']);return _0x2c9045[_0x3ee5('0x24')](_0x1b7356['value'],_0x3f4cd2,config['secrets'][_0x3ee5('0x25')])[_0x3ee5('0x1e')](function(){fs[_0x3ee5('0x26')](_0x1b7356['value']);logger[_0x3ee5('0xb')](_0x3ee5('0x27'));return _0x1b7356;});}return _0x1b7356;})[_0x3ee5('0x1e')](function(_0x10efa5){logger['info'](_0x3ee5('0x1a'),_0x25a3e1);logger[_0x3ee5('0x28')](_0x3ee5('0x1a'),_0x25a3e1,JSON[_0x3ee5('0xf')](_0x10efa5));_0x482593(_0x10efa5);})[_0x3ee5('0x14')](function(_0x9963fe){logger[_0x3ee5('0x10')](_0x3ee5('0x1a'),_0x9963fe[_0x3ee5('0x12')],_0x25a3e1);_0x415f50(_0x2e0794['error'](0x1f4,_0x9963fe[_0x3ee5('0x12')]));});});};
\ No newline at end of file
+var _0xbd74=['stringify','../../components/encryptor','Setting','findOne','create','callRecordingEncryption','existsSync','format','%s.cypher','value','secrets','CreateVoiceRecording\x20file\x20encrypted','CreateVoiceRecording','catch','lodash','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','request','then','info','VoiceRecording,\x20%s,\x20%s','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','error','code','message','result','VoiceRecording','update','body','options','attributes','limit','UpdateVoiceRecording'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0xbd74,0xd6));var _0x4bd7=function(_0x19580f,_0x7b95cd){_0x19580f=_0x19580f-0x0;var _0x4ec7ac=_0xbd74[_0x19580f];return _0x4ec7ac;};'use strict';var _=require(_0x4bd7('0x0'));var util=require('util');var moment=require(_0x4bd7('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4bd7('0x2'));var db=require(_0x4bd7('0x3'))['db'];var utils=require(_0x4bd7('0x4'));var logger=require(_0x4bd7('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x4bd7('0x6'));var client=jayson[_0x4bd7('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1bc495,_0x5e831e,_0x3af9b3){return new BPromise(function(_0x43765e,_0xa90a5f){return client[_0x4bd7('0x8')](_0x1bc495,_0x3af9b3)[_0x4bd7('0x9')](function(_0x355a69){logger[_0x4bd7('0xa')](_0x4bd7('0xb'),_0x5e831e,_0x4bd7('0xc'));logger[_0x4bd7('0xd')](_0x4bd7('0xe'),_0x5e831e,_0x4bd7('0xc'),JSON['stringify'](_0x355a69));if(_0x355a69[_0x4bd7('0xf')]){if(_0x355a69[_0x4bd7('0xf')][_0x4bd7('0x10')]===0x1f4){logger[_0x4bd7('0xf')](_0x4bd7('0xb'),_0x5e831e,_0x355a69[_0x4bd7('0xf')][_0x4bd7('0x11')]);return _0xa90a5f(_0x355a69['error'][_0x4bd7('0x11')]);}logger['error']('VoiceRecording,\x20%s,\x20%s',_0x5e831e,_0x355a69['error'][_0x4bd7('0x11')]);return _0x43765e(_0x355a69[_0x4bd7('0xf')][_0x4bd7('0x11')]);}else{logger[_0x4bd7('0xa')](_0x4bd7('0xb'),_0x5e831e,_0x4bd7('0xc'));_0x43765e(_0x355a69[_0x4bd7('0x12')][_0x4bd7('0x11')]);}})['catch'](function(_0x5991c5){logger['error'](_0x4bd7('0xb'),_0x5e831e,_0x5991c5);_0xa90a5f(_0x5991c5);});});}exports['UpdateVoiceRecording']=function(_0x3def80){var _0x3da488=this;return new Promise(function(_0x1b3147,_0x49b9fd){return db[_0x4bd7('0x13')][_0x4bd7('0x14')](_0x3def80[_0x4bd7('0x15')],{'raw':_0x3def80[_0x4bd7('0x16')]?_0x3def80[_0x4bd7('0x16')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3def80[_0x4bd7('0x16')]?_0x3def80['options']['where']||null:null,'attributes':_0x3def80[_0x4bd7('0x16')]?_0x3def80[_0x4bd7('0x16')][_0x4bd7('0x17')]||null:null,'limit':_0x3def80[_0x4bd7('0x16')]?_0x3def80[_0x4bd7('0x16')][_0x4bd7('0x18')]||null:null})[_0x4bd7('0x9')](function(_0x5de89b){logger[_0x4bd7('0xa')](_0x4bd7('0x19'),_0x3def80);logger['debug']('UpdateVoiceRecording',_0x3def80,JSON[_0x4bd7('0x1a')](_0x5de89b));_0x1b3147(_0x5de89b);})['catch'](function(_0x53e769){logger['error'](_0x4bd7('0x19'),_0x53e769[_0x4bd7('0x11')],_0x3def80);_0x49b9fd(_0x3da488[_0x4bd7('0xf')](0x1f4,_0x53e769['message']));});});};exports['CreateVoiceRecording']=function(_0x3e0836){var _0x19f250=this;return new Promise(function(_0x239067,_0x38ba8e){var _0x461069=require(_0x4bd7('0x1b'));var _0x30403f;return db[_0x4bd7('0x1c')][_0x4bd7('0x1d')]({'attributes':['id','callRecordingEncryption'],'where':{'id':0x1},'raw':!![]})[_0x4bd7('0x9')](function(_0x475ee5){_0x30403f=_0x475ee5;return db['VoiceRecording'][_0x4bd7('0x1e')](_0x3e0836[_0x4bd7('0x15')]);})[_0x4bd7('0x9')](function(_0x4ed3a1){if(_0x30403f[_0x4bd7('0x1f')]&&fs[_0x4bd7('0x20')](_0x4ed3a1['value'])){var _0x6f47e=util[_0x4bd7('0x21')](_0x4bd7('0x22'),_0x4ed3a1[_0x4bd7('0x23')]);return _0x461069['encryptFile'](_0x4ed3a1[_0x4bd7('0x23')],_0x6f47e,config[_0x4bd7('0x24')]['recording'])[_0x4bd7('0x9')](function(){fs['unlink'](_0x4ed3a1[_0x4bd7('0x23')]);logger[_0x4bd7('0xa')](_0x4bd7('0x25'));return _0x4ed3a1;});}return _0x4ed3a1;})['then'](function(_0x390c31){logger['info'](_0x4bd7('0x26'),_0x3e0836);logger[_0x4bd7('0xd')](_0x4bd7('0x26'),_0x3e0836,JSON[_0x4bd7('0x1a')](_0x390c31));_0x239067(_0x390c31);})[_0x4bd7('0x27')](function(_0x1e891a){logger['error'](_0x4bd7('0x26'),_0x1e891a[_0x4bd7('0x11')],_0x3e0836);_0x38ba8e(_0x19f250[_0x4bd7('0xf')](0x1f4,_0x1e891a['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44ca=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','post','create','put','/:id','delete','destroy','connect-timeout','express'];(function(_0x407092,_0x1bbe37){var _0x113c6e=function(_0x35b504){while(--_0x35b504){_0x407092['push'](_0x407092['shift']());}};_0x113c6e(++_0x1bbe37);}(_0x44ca,0x1a2));var _0xa44c=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x44ca[_0x57b54c];return _0x59cc19;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xa44c('0x0'));var express=require(_0xa44c('0x1'));var router=express[_0xa44c('0x2')]();var auth=require(_0xa44c('0x3'));var interaction=require(_0xa44c('0x4'));var config=require(_0xa44c('0x5'));var controller=require('./voiceTransferReport.controller');router[_0xa44c('0x6')]('/',auth[_0xa44c('0x7')](),controller[_0xa44c('0x8')]);router[_0xa44c('0x6')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0xa44c('0x9')]('/',auth[_0xa44c('0x7')](),controller[_0xa44c('0xa')]);router[_0xa44c('0xb')](_0xa44c('0xc'),auth[_0xa44c('0x7')](),controller['update']);router[_0xa44c('0xd')]('/:id',auth[_0xa44c('0x7')](),controller[_0xa44c('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0xc14b=['get','isAuthenticated','/:id','show','post','create','update','delete','destroy','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceTransferReport.controller'];(function(_0x1d26a9,_0x17c6d0){var _0x2a15c8=function(_0x41a905){while(--_0x41a905){_0x1d26a9['push'](_0x1d26a9['shift']());}};_0x2a15c8(++_0x17c6d0);}(_0xc14b,0xa2));var _0xbc14=function(_0x53c2a9,_0x591554){_0x53c2a9=_0x53c2a9-0x0;var _0x3030a3=_0xc14b[_0x53c2a9];return _0x3030a3;};'use strict';var multer=require(_0xbc14('0x0'));var util=require(_0xbc14('0x1'));var path=require('path');var timeout=require(_0xbc14('0x2'));var express=require(_0xbc14('0x3'));var router=express['Router']();var auth=require(_0xbc14('0x4'));var interaction=require(_0xbc14('0x5'));var config=require(_0xbc14('0x6'));var controller=require(_0xbc14('0x7'));router[_0xbc14('0x8')]('/',auth[_0xbc14('0x9')](),controller['index']);router[_0xbc14('0x8')](_0xbc14('0xa'),auth['isAuthenticated'](),controller[_0xbc14('0xb')]);router[_0xbc14('0xc')]('/',auth['isAuthenticated'](),controller[_0xbc14('0xd')]);router['put'](_0xbc14('0xa'),auth['isAuthenticated'](),controller[_0xbc14('0xe')]);router[_0xbc14('0xf')]('/:id',auth[_0xbc14('0x9')](),controller[_0xbc14('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x140e=['attended','STRING','Yes','ENUM','blind'];(function(_0x555c0b,_0x2a5cae){var _0x7f508=function(_0x1b511b){while(--_0x1b511b){_0x555c0b['push'](_0x555c0b['shift']());}};_0x7f508(++_0x2a5cae);}(_0x140e,0x1e8));var _0xe140=function(_0xced0ad,_0x14be47){_0xced0ad=_0xced0ad-0x0;var _0x2d72e9=_0x140e[_0xced0ad];return _0x2d72e9;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');module['exports']={'type':{'type':Sequelize[_0xe140('0x0')](_0xe140('0x1'),_0xe140('0x2'))},'result':{'type':Sequelize['STRING']},'transfererchannel':{'type':Sequelize['STRING']},'transferercalleridnum':{'type':Sequelize['STRING']},'transferercalleridname':{'type':Sequelize[_0xe140('0x3')]},'transfererconnectedlinenum':{'type':Sequelize[_0xe140('0x3')]},'transfererconnectedlinename':{'type':Sequelize[_0xe140('0x3')]},'transfereraccountcode':{'type':Sequelize[_0xe140('0x3')]},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize[_0xe140('0x3')]},'transfererlinkedid':{'type':Sequelize['STRING']},'transfereechannel':{'type':Sequelize['STRING']},'transfereecalleridnum':{'type':Sequelize[_0xe140('0x3')]},'transfereecalleridname':{'type':Sequelize[_0xe140('0x3')]},'transfereeconnectedlinenum':{'type':Sequelize[_0xe140('0x3')]},'transfereeconnectedlinename':{'type':Sequelize[_0xe140('0x3')]},'transfereeaccountcode':{'type':Sequelize['STRING']},'transfereecontext':{'type':Sequelize[_0xe140('0x3')]},'transfereeexten':{'type':Sequelize['STRING']},'transfereelinkedid':{'type':Sequelize['STRING']},'isexternal':{'type':Sequelize[_0xe140('0x0')](_0xe140('0x4'),'No')},'context':{'type':Sequelize[_0xe140('0x3')]},'extension':{'type':Sequelize[_0xe140('0x3')]}};
\ No newline at end of file
+var _0x9aef=['STRING','Yes','sequelize','moment','ENUM','blind'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0x9aef,0x1ca));var _0xf9ae=function(_0x424ebd,_0x498c91){_0x424ebd=_0x424ebd-0x0;var _0x586ddf=_0x9aef[_0x424ebd];return _0x586ddf;};'use strict';var Sequelize=require(_0xf9ae('0x0'));var moment=require(_0xf9ae('0x1'));module['exports']={'type':{'type':Sequelize[_0xf9ae('0x2')](_0xf9ae('0x3'),'attended')},'result':{'type':Sequelize[_0xf9ae('0x4')]},'transfererchannel':{'type':Sequelize[_0xf9ae('0x4')]},'transferercalleridnum':{'type':Sequelize[_0xf9ae('0x4')]},'transferercalleridname':{'type':Sequelize[_0xf9ae('0x4')]},'transfererconnectedlinenum':{'type':Sequelize[_0xf9ae('0x4')]},'transfererconnectedlinename':{'type':Sequelize[_0xf9ae('0x4')]},'transfereraccountcode':{'type':Sequelize[_0xf9ae('0x4')]},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize[_0xf9ae('0x4')]},'transfererlinkedid':{'type':Sequelize[_0xf9ae('0x4')]},'transfereechannel':{'type':Sequelize[_0xf9ae('0x4')]},'transfereecalleridnum':{'type':Sequelize[_0xf9ae('0x4')]},'transfereecalleridname':{'type':Sequelize['STRING']},'transfereeconnectedlinenum':{'type':Sequelize[_0xf9ae('0x4')]},'transfereeconnectedlinename':{'type':Sequelize[_0xf9ae('0x4')]},'transfereeaccountcode':{'type':Sequelize[_0xf9ae('0x4')]},'transfereecontext':{'type':Sequelize[_0xf9ae('0x4')]},'transfereeexten':{'type':Sequelize[_0xf9ae('0x4')]},'transfereelinkedid':{'type':Sequelize[_0xf9ae('0x4')]},'isexternal':{'type':Sequelize['ENUM'](_0xf9ae('0x5'),'No')},'context':{'type':Sequelize[_0xf9ae('0x4')]},'extension':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6aa7=['rawAttributes','model','keys','query','dateEnd','dateStart','filters','attributes','intersection','fields','nolimit','order','sort','where','pick','day','merge','filter','map','count','includeAll','include','findAll','show','params','length','options','find','catch','create','body','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','to-csv','lodash','squel','crypto','desk.js','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','VoiceTransferReport'];(function(_0x24ed26,_0x90a05a){var _0x563455=function(_0x3489a7){while(--_0x3489a7){_0x24ed26['push'](_0x24ed26['shift']());}};_0x563455(++_0x90a05a);}(_0x6aa7,0x178));var _0x76aa=function(_0x10d194,_0x1962ce){_0x10d194=_0x10d194-0x0;var _0xf219e9=_0x6aa7[_0x10d194];return _0xf219e9;};'use strict';var pdf=require(_0x76aa('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x76aa('0x1'));var zipdir=require(_0x76aa('0x2'));var jsonpatch=require(_0x76aa('0x3'));var rp=require(_0x76aa('0x4'));var moment=require('moment');var BPromise=require(_0x76aa('0x5'));var Mustache=require(_0x76aa('0x6'));var util=require(_0x76aa('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x76aa('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x76aa('0x9'));var squel=require(_0x76aa('0xa'));var crypto=require(_0x76aa('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x76aa('0xc'));var toCsv=require(_0x76aa('0x8'));var querystring=require(_0x76aa('0xd'));var Papa=require('papaparse');var qs=require(_0x76aa('0xe'));var logger=require(_0x76aa('0xf'))(_0x76aa('0x10'));var utils=require(_0x76aa('0x11'));var config=require(_0x76aa('0x12'));var db=require(_0x76aa('0x13'))['db'];function respondWithStatusCode(_0x2c5075,_0x8dc35c){_0x8dc35c=_0x8dc35c||0xcc;return function(_0xd6327){if(_0xd6327){return _0x2c5075[_0x76aa('0x14')](_0x8dc35c);}return _0x2c5075['status'](_0x8dc35c)[_0x76aa('0x15')]();};}function respondWithResult(_0x5df49c,_0x226536){_0x226536=_0x226536||0xc8;return function(_0x12dde0){if(_0x12dde0){return _0x5df49c[_0x76aa('0x16')](_0x226536)[_0x76aa('0x17')](_0x12dde0);}};}function respondWithFilteredResult(_0x10432c,_0x4e309f){return function(_0x5f5b59){if(_0x5f5b59){var _0x2b3b4f=_0x5f5b59['count'],_0x4cfc34=_0x4e309f[_0x76aa('0x18')],_0x180d92=_0x4e309f['offset']+_0x4e309f[_0x76aa('0x19')],_0x319bf1;if(_0x180d92>=_0x2b3b4f){_0x180d92=_0x2b3b4f;_0x319bf1=0xc8;}else{_0x319bf1=0xce;}_0x10432c['status'](_0x319bf1);return _0x10432c[_0x76aa('0x1a')](_0x76aa('0x1b'),_0x4cfc34+'-'+_0x180d92+'/'+_0x2b3b4f)[_0x76aa('0x17')](_0x5f5b59);}return null;};}function patchUpdates(_0x21c16d){return function(_0xa1bc7){try{jsonpatch[_0x76aa('0x1c')](_0xa1bc7,_0x21c16d,!![]);}catch(_0x496902){return BPromise['reject'](_0x496902);}return _0xa1bc7[_0x76aa('0x1d')]();};}function saveUpdates(_0x454dd3,_0xf0711){return function(_0x15b931){if(_0x15b931){return _0x15b931[_0x76aa('0x1e')](_0x454dd3)[_0x76aa('0x1f')](function(_0x19af92){return _0x19af92;});}return null;};}function removeEntity(_0x2eaf48,_0x385157){return function(_0x5990c1){if(_0x5990c1){return _0x5990c1[_0x76aa('0x20')]()[_0x76aa('0x1f')](function(){_0x2eaf48[_0x76aa('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41463a,_0x189cb6){return function(_0x31252f){if(!_0x31252f){_0x41463a[_0x76aa('0x14')](0x194);}return _0x31252f;};}function handleError(_0x29c50c,_0xc1044c){_0xc1044c=_0xc1044c||0x1f4;return function(_0x3cd039){logger[_0x76aa('0x21')](_0x3cd039[_0x76aa('0x22')]);if(_0x3cd039[_0x76aa('0x23')]){delete _0x3cd039[_0x76aa('0x23')];}_0x29c50c[_0x76aa('0x16')](_0xc1044c)[_0x76aa('0x24')](_0x3cd039);};}exports['index']=function(_0xb5e8a9,_0x1d6d15){var _0x25c614={},_0x2e7ab4={},_0xa1e6={'count':0x0,'rows':[]};var _0x2f9316=db[_0x76aa('0x25')][_0x76aa('0x26')];_0x2e7ab4[_0x76aa('0x27')]=_[_0x76aa('0x28')](_0x2f9316);var _0x545b06={'dateStart':_0xb5e8a9[_0x76aa('0x29')]['dateStart'],'dateEnd':_0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x2a')]};delete _0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x2b')];delete _0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x2a')];_0x2e7ab4[_0x76aa('0x29')]=_[_0x76aa('0x28')](_0xb5e8a9[_0x76aa('0x29')]);_0x2e7ab4[_0x76aa('0x2c')]=_['intersection'](_0x2e7ab4[_0x76aa('0x27')],_0x2e7ab4[_0x76aa('0x29')]);_0x25c614[_0x76aa('0x2d')]=_[_0x76aa('0x2e')](_0x2e7ab4[_0x76aa('0x27')],qs[_0x76aa('0x2f')](_0xb5e8a9[_0x76aa('0x29')]['fields']));_0x25c614[_0x76aa('0x2d')]=_0x25c614[_0x76aa('0x2d')]['length']?_0x25c614[_0x76aa('0x2d')]:_0x2e7ab4['model'];if(!_0xb5e8a9[_0x76aa('0x29')]['hasOwnProperty'](_0x76aa('0x30'))){_0x25c614['limit']=qs['limit'](_0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x19')]);_0x25c614[_0x76aa('0x18')]=qs[_0x76aa('0x18')](_0xb5e8a9['query']['offset']);}_0x25c614[_0x76aa('0x31')]=qs[_0x76aa('0x32')](_0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x32')]);_0x25c614[_0x76aa('0x33')]=qs['filters'](_[_0x76aa('0x34')](_0xb5e8a9['query'],_0x2e7ab4['filters']));if(_0x545b06[_0x76aa('0x2b')]){if(_0x545b06[_0x76aa('0x2a')]){_0x545b06[_0x76aa('0x2a')]=moment(_0x545b06[_0x76aa('0x2a')])['add'](0x1,_0x76aa('0x35'));}else{_0x545b06[_0x76aa('0x2a')]=moment(_0x545b06[_0x76aa('0x2b')])['add'](0x1,_0x76aa('0x35'));}_[_0x76aa('0x36')](_0x25c614[_0x76aa('0x33')],{'createdAt':{'$gte':_0x545b06[_0x76aa('0x2b')],'$lte':_0x545b06[_0x76aa('0x2a')]}});}if(_0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x37')]){_0x25c614[_0x76aa('0x33')]=_[_0x76aa('0x36')](_0x25c614['where'],{'$or':_[_0x76aa('0x38')](_0x25c614[_0x76aa('0x2d')],function(_0x4a5a96){var _0xa824e8={};_0xa824e8[_0x4a5a96]={'$like':'%'+_0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x37')]+'%'};return _0xa824e8;})});}_0x25c614=_['merge']({},_0x25c614,_0xb5e8a9['options']);var _0x153a47={'where':_0x25c614[_0x76aa('0x33')]};return db[_0x76aa('0x25')][_0x76aa('0x39')](_0x153a47)['then'](function(_0x174a14){_0xa1e6[_0x76aa('0x39')]=_0x174a14;if(_0xb5e8a9[_0x76aa('0x29')][_0x76aa('0x3a')]){_0x25c614[_0x76aa('0x3b')]=[{'all':!![]}];}return db['VoiceTransferReport'][_0x76aa('0x3c')](_0x25c614);})['then'](function(_0xbb3136){_0xa1e6['rows']=_0xbb3136;return _0xa1e6;})['then'](respondWithFilteredResult(_0x1d6d15,_0x25c614))['catch'](handleError(_0x1d6d15,null));};exports[_0x76aa('0x3d')]=function(_0x541594,_0x5cf314){var _0x5be7ce={'raw':!![],'where':{'id':_0x541594[_0x76aa('0x3e')]['id']}},_0x11531b={};_0x11531b[_0x76aa('0x27')]=_[_0x76aa('0x28')](db[_0x76aa('0x25')]['rawAttributes']);_0x11531b[_0x76aa('0x29')]=_[_0x76aa('0x28')](_0x541594[_0x76aa('0x29')]);_0x11531b[_0x76aa('0x2c')]=_[_0x76aa('0x2e')](_0x11531b['model'],_0x11531b[_0x76aa('0x29')]);_0x5be7ce[_0x76aa('0x2d')]=_['intersection'](_0x11531b[_0x76aa('0x27')],qs['fields'](_0x541594[_0x76aa('0x29')][_0x76aa('0x2f')]));_0x5be7ce[_0x76aa('0x2d')]=_0x5be7ce[_0x76aa('0x2d')][_0x76aa('0x3f')]?_0x5be7ce[_0x76aa('0x2d')]:_0x11531b[_0x76aa('0x27')];if(_0x541594[_0x76aa('0x29')][_0x76aa('0x3a')]){_0x5be7ce[_0x76aa('0x3b')]=[{'all':!![]}];}_0x5be7ce=_['merge']({},_0x5be7ce,_0x541594[_0x76aa('0x40')]);return db['VoiceTransferReport'][_0x76aa('0x41')](_0x5be7ce)[_0x76aa('0x1f')](handleEntityNotFound(_0x5cf314,null))[_0x76aa('0x1f')](respondWithResult(_0x5cf314,null))[_0x76aa('0x42')](handleError(_0x5cf314,null));};exports['create']=function(_0x5a3d9c,_0x4f58c8){return db['VoiceTransferReport'][_0x76aa('0x43')](_0x5a3d9c[_0x76aa('0x44')],{})[_0x76aa('0x1f')](respondWithResult(_0x4f58c8,0xc9))[_0x76aa('0x42')](handleError(_0x4f58c8,null));};exports[_0x76aa('0x1e')]=function(_0x110f3c,_0x5b567b){if(_0x110f3c['body']['id']){delete _0x110f3c[_0x76aa('0x44')]['id'];}return db[_0x76aa('0x25')][_0x76aa('0x41')]({'where':{'id':_0x110f3c[_0x76aa('0x3e')]['id']}})[_0x76aa('0x1f')](handleEntityNotFound(_0x5b567b,null))[_0x76aa('0x1f')](saveUpdates(_0x110f3c['body'],null))[_0x76aa('0x1f')](respondWithResult(_0x5b567b,null))[_0x76aa('0x42')](handleError(_0x5b567b,null));};exports[_0x76aa('0x20')]=function(_0x4b3d2a,_0x30d930){return db['VoiceTransferReport'][_0x76aa('0x41')]({'where':{'id':_0x4b3d2a['params']['id']}})[_0x76aa('0x1f')](handleEntityNotFound(_0x30d930,null))[_0x76aa('0x1f')](removeEntity(_0x30d930,null))[_0x76aa('0x42')](handleError(_0x30d930,null));};
\ No newline at end of file
+var _0x5f2f=['limit','set','Content-Range','apply','reject','save','destroy','then','stack','name','send','index','VoiceTransferReport','rawAttributes','model','keys','dateStart','query','dateEnd','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','day','add','merge','map','filter','include','findAll','catch','params','intersection','includeAll','options','find','create','body','update','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','api','../../mysqldb','sendStatus','status','end','json','count','offset'];(function(_0x5a170e,_0x4f3045){var _0x36a92a=function(_0x2ba4a9){while(--_0x2ba4a9){_0x5a170e['push'](_0x5a170e['shift']());}};_0x36a92a(++_0x4f3045);}(_0x5f2f,0x73));var _0xf5f2=function(_0xfca3c4,_0x2cebf6){_0xfca3c4=_0xfca3c4-0x0;var _0x2e8ef0=_0x5f2f[_0xfca3c4];return _0x2e8ef0;};'use strict';var pdf=require(_0xf5f2('0x0'));var emlformat=require(_0xf5f2('0x1'));var rimraf=require(_0xf5f2('0x2'));var zipdir=require(_0xf5f2('0x3'));var jsonpatch=require(_0xf5f2('0x4'));var rp=require(_0xf5f2('0x5'));var moment=require(_0xf5f2('0x6'));var BPromise=require(_0xf5f2('0x7'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf5f2('0x8'));var sox=require(_0xf5f2('0x9'));var csv=require(_0xf5f2('0xa'));var ejs=require(_0xf5f2('0xb'));var fs=require('fs');var _=require(_0xf5f2('0xc'));var squel=require(_0xf5f2('0xd'));var crypto=require('crypto');var jsforce=require(_0xf5f2('0xe'));var deskjs=require(_0xf5f2('0xf'));var toCsv=require(_0xf5f2('0xa'));var querystring=require('querystring');var Papa=require(_0xf5f2('0x10'));var Redis=require(_0xf5f2('0x11'));var qs=require(_0xf5f2('0x12'));var logger=require('../../config/logger')(_0xf5f2('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0xf5f2('0x14'))['db'];function respondWithStatusCode(_0x151aba,_0x4b78cd){_0x4b78cd=_0x4b78cd||0xcc;return function(_0x336f6b){if(_0x336f6b){return _0x151aba[_0xf5f2('0x15')](_0x4b78cd);}return _0x151aba[_0xf5f2('0x16')](_0x4b78cd)[_0xf5f2('0x17')]();};}function respondWithResult(_0x59bb6c,_0x3e5956){_0x3e5956=_0x3e5956||0xc8;return function(_0x5c01b8){if(_0x5c01b8){return _0x59bb6c[_0xf5f2('0x16')](_0x3e5956)[_0xf5f2('0x18')](_0x5c01b8);}};}function respondWithFilteredResult(_0x269909,_0x1c1a5c){return function(_0x422b55){if(_0x422b55){var _0x4d97fc=_0x422b55[_0xf5f2('0x19')],_0xafe430=_0x1c1a5c[_0xf5f2('0x1a')],_0x286197=_0x1c1a5c[_0xf5f2('0x1a')]+_0x1c1a5c[_0xf5f2('0x1b')],_0x17d656;if(_0x286197>=_0x4d97fc){_0x286197=_0x4d97fc;_0x17d656=0xc8;}else{_0x17d656=0xce;}_0x269909[_0xf5f2('0x16')](_0x17d656);return _0x269909[_0xf5f2('0x1c')](_0xf5f2('0x1d'),_0xafe430+'-'+_0x286197+'/'+_0x4d97fc)[_0xf5f2('0x18')](_0x422b55);}return null;};}function patchUpdates(_0x28e097){return function(_0x4ff59b){try{jsonpatch[_0xf5f2('0x1e')](_0x4ff59b,_0x28e097,!![]);}catch(_0x3cf5ea){return BPromise[_0xf5f2('0x1f')](_0x3cf5ea);}return _0x4ff59b[_0xf5f2('0x20')]();};}function saveUpdates(_0x56acc5,_0x34706d){return function(_0x47101e){if(_0x47101e){return _0x47101e['update'](_0x56acc5)['then'](function(_0x2d2805){return _0x2d2805;});}return null;};}function removeEntity(_0x388e6c,_0x4ae323){return function(_0x45b74f){if(_0x45b74f){return _0x45b74f[_0xf5f2('0x21')]()[_0xf5f2('0x22')](function(){_0x388e6c[_0xf5f2('0x16')](0xcc)[_0xf5f2('0x17')]();});}};}function handleEntityNotFound(_0x4c691a,_0x21cd91){return function(_0x4669a6){if(!_0x4669a6){_0x4c691a[_0xf5f2('0x15')](0x194);}return _0x4669a6;};}function handleError(_0x2833fe,_0x287ad5){_0x287ad5=_0x287ad5||0x1f4;return function(_0x5bdf4a){logger['error'](_0x5bdf4a[_0xf5f2('0x23')]);if(_0x5bdf4a[_0xf5f2('0x24')]){delete _0x5bdf4a[_0xf5f2('0x24')];}_0x2833fe[_0xf5f2('0x16')](_0x287ad5)[_0xf5f2('0x25')](_0x5bdf4a);};}exports[_0xf5f2('0x26')]=function(_0x13a3be,_0x281ec8){var _0x294414={},_0x4ab014={},_0xaa2602={'count':0x0,'rows':[]};var _0x102449=db[_0xf5f2('0x27')][_0xf5f2('0x28')];_0x4ab014[_0xf5f2('0x29')]=_[_0xf5f2('0x2a')](_0x102449);var _0x5b6672={'dateStart':_0x13a3be['query'][_0xf5f2('0x2b')],'dateEnd':_0x13a3be[_0xf5f2('0x2c')][_0xf5f2('0x2d')]};delete _0x13a3be['query']['dateStart'];delete _0x13a3be[_0xf5f2('0x2c')][_0xf5f2('0x2d')];_0x4ab014[_0xf5f2('0x2c')]=_[_0xf5f2('0x2a')](_0x13a3be[_0xf5f2('0x2c')]);_0x4ab014['filters']=_['intersection'](_0x4ab014[_0xf5f2('0x29')],_0x4ab014['query']);_0x294414[_0xf5f2('0x2e')]=_['intersection'](_0x4ab014[_0xf5f2('0x29')],qs[_0xf5f2('0x2f')](_0x13a3be[_0xf5f2('0x2c')][_0xf5f2('0x2f')]));_0x294414[_0xf5f2('0x2e')]=_0x294414[_0xf5f2('0x2e')][_0xf5f2('0x30')]?_0x294414[_0xf5f2('0x2e')]:_0x4ab014['model'];if(!_0x13a3be[_0xf5f2('0x2c')][_0xf5f2('0x31')](_0xf5f2('0x32'))){_0x294414[_0xf5f2('0x1b')]=qs[_0xf5f2('0x1b')](_0x13a3be[_0xf5f2('0x2c')][_0xf5f2('0x1b')]);_0x294414['offset']=qs[_0xf5f2('0x1a')](_0x13a3be[_0xf5f2('0x2c')]['offset']);}_0x294414[_0xf5f2('0x33')]=qs['sort'](_0x13a3be[_0xf5f2('0x2c')][_0xf5f2('0x34')]);_0x294414[_0xf5f2('0x35')]=qs[_0xf5f2('0x36')](_['pick'](_0x13a3be['query'],_0x4ab014[_0xf5f2('0x36')]));if(_0x5b6672[_0xf5f2('0x2b')]){if(_0x5b6672[_0xf5f2('0x2d')]){_0x5b6672['dateEnd']=moment(_0x5b6672[_0xf5f2('0x2d')])['add'](0x1,_0xf5f2('0x37'));}else{_0x5b6672['dateEnd']=moment(_0x5b6672[_0xf5f2('0x2b')])[_0xf5f2('0x38')](0x1,'day');}_[_0xf5f2('0x39')](_0x294414[_0xf5f2('0x35')],{'createdAt':{'$gte':_0x5b6672[_0xf5f2('0x2b')],'$lte':_0x5b6672[_0xf5f2('0x2d')]}});}if(_0x13a3be['query']['filter']){_0x294414[_0xf5f2('0x35')]=_[_0xf5f2('0x39')](_0x294414[_0xf5f2('0x35')],{'$or':_[_0xf5f2('0x3a')](_0x294414[_0xf5f2('0x2e')],function(_0xe62b57){var _0x2bc20e={};_0x2bc20e[_0xe62b57]={'$like':'%'+_0x13a3be['query'][_0xf5f2('0x3b')]+'%'};return _0x2bc20e;})});}_0x294414=_[_0xf5f2('0x39')]({},_0x294414,_0x13a3be['options']);var _0xc6a1ae={'where':_0x294414[_0xf5f2('0x35')]};return db[_0xf5f2('0x27')][_0xf5f2('0x19')](_0xc6a1ae)[_0xf5f2('0x22')](function(_0x3b6372){_0xaa2602[_0xf5f2('0x19')]=_0x3b6372;if(_0x13a3be[_0xf5f2('0x2c')]['includeAll']){_0x294414[_0xf5f2('0x3c')]=[{'all':!![]}];}return db[_0xf5f2('0x27')][_0xf5f2('0x3d')](_0x294414);})['then'](function(_0x509dbc){_0xaa2602['rows']=_0x509dbc;return _0xaa2602;})[_0xf5f2('0x22')](respondWithFilteredResult(_0x281ec8,_0x294414))[_0xf5f2('0x3e')](handleError(_0x281ec8,null));};exports['show']=function(_0x106272,_0xeed03d){var _0x28e33f={'raw':!![],'where':{'id':_0x106272[_0xf5f2('0x3f')]['id']}},_0x31f86c={};_0x31f86c[_0xf5f2('0x29')]=_[_0xf5f2('0x2a')](db[_0xf5f2('0x27')][_0xf5f2('0x28')]);_0x31f86c[_0xf5f2('0x2c')]=_[_0xf5f2('0x2a')](_0x106272[_0xf5f2('0x2c')]);_0x31f86c[_0xf5f2('0x36')]=_[_0xf5f2('0x40')](_0x31f86c['model'],_0x31f86c[_0xf5f2('0x2c')]);_0x28e33f['attributes']=_[_0xf5f2('0x40')](_0x31f86c[_0xf5f2('0x29')],qs[_0xf5f2('0x2f')](_0x106272[_0xf5f2('0x2c')][_0xf5f2('0x2f')]));_0x28e33f[_0xf5f2('0x2e')]=_0x28e33f['attributes'][_0xf5f2('0x30')]?_0x28e33f[_0xf5f2('0x2e')]:_0x31f86c[_0xf5f2('0x29')];if(_0x106272[_0xf5f2('0x2c')][_0xf5f2('0x41')]){_0x28e33f[_0xf5f2('0x3c')]=[{'all':!![]}];}_0x28e33f=_[_0xf5f2('0x39')]({},_0x28e33f,_0x106272[_0xf5f2('0x42')]);return db['VoiceTransferReport'][_0xf5f2('0x43')](_0x28e33f)[_0xf5f2('0x22')](handleEntityNotFound(_0xeed03d,null))[_0xf5f2('0x22')](respondWithResult(_0xeed03d,null))['catch'](handleError(_0xeed03d,null));};exports[_0xf5f2('0x44')]=function(_0xc91b64,_0x3179a9){return db['VoiceTransferReport']['create'](_0xc91b64[_0xf5f2('0x45')],{})[_0xf5f2('0x22')](respondWithResult(_0x3179a9,0xc9))['catch'](handleError(_0x3179a9,null));};exports[_0xf5f2('0x46')]=function(_0x533cca,_0x740321){if(_0x533cca['body']['id']){delete _0x533cca[_0xf5f2('0x45')]['id'];}return db['VoiceTransferReport'][_0xf5f2('0x43')]({'where':{'id':_0x533cca[_0xf5f2('0x3f')]['id']}})[_0xf5f2('0x22')](handleEntityNotFound(_0x740321,null))[_0xf5f2('0x22')](saveUpdates(_0x533cca['body'],null))[_0xf5f2('0x22')](respondWithResult(_0x740321,null))[_0xf5f2('0x3e')](handleError(_0x740321,null));};exports['destroy']=function(_0x58213b,_0xc3d4f){return db[_0xf5f2('0x27')]['find']({'where':{'id':_0x58213b[_0xf5f2('0x3f')]['id']}})[_0xf5f2('0x22')](handleEntityNotFound(_0xc3d4f,null))[_0xf5f2('0x22')](removeEntity(_0xc3d4f,null))[_0xf5f2('0x3e')](handleError(_0xc3d4f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb945=['VoiceTransferReport','report_call_transfer','lodash','util','../../config/logger','api','bluebird','request-promise','./voiceTransferReport.attributes','define'];(function(_0x14c72e,_0x5932c6){var _0xd3bde7=function(_0x1ac80b){while(--_0x1ac80b){_0x14c72e['push'](_0x14c72e['shift']());}};_0xd3bde7(++_0x5932c6);}(_0xb945,0x70));var _0x5b94=function(_0x5a75ba,_0x53549e){_0x5a75ba=_0x5a75ba-0x0;var _0xfd2fc8=_0xb945[_0x5a75ba];return _0xfd2fc8;};'use strict';var _=require(_0x5b94('0x0'));var util=require(_0x5b94('0x1'));var logger=require(_0x5b94('0x2'))(_0x5b94('0x3'));var moment=require('moment');var BPromise=require(_0x5b94('0x4'));var rp=require(_0x5b94('0x5'));var attributes=require(_0x5b94('0x6'));module['exports']=function(_0x16fb4d,_0x12cddc){return _0x16fb4d[_0x5b94('0x7')](_0x5b94('0x8'),attributes,{'tableName':_0x5b94('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf102=['lodash','../../config/logger','api','moment','bluebird','request-promise','define','VoiceTransferReport','report_call_transfer'];(function(_0x254fad,_0x289e2d){var _0x213301=function(_0x1be4ba){while(--_0x1be4ba){_0x254fad['push'](_0x254fad['shift']());}};_0x213301(++_0x289e2d);}(_0xf102,0x15f));var _0x2f10=function(_0x16eb11,_0x1a2251){_0x16eb11=_0x16eb11-0x0;var _0x3ae7ef=_0xf102[_0x16eb11];return _0x3ae7ef;};'use strict';var _=require(_0x2f10('0x0'));var util=require('util');var logger=require(_0x2f10('0x1'))(_0x2f10('0x2'));var moment=require(_0x2f10('0x3'));var BPromise=require(_0x2f10('0x4'));var rp=require(_0x2f10('0x5'));var attributes=require('./voiceTransferReport.attributes');module['exports']=function(_0x4e6716,_0x83dfce){return _0x4e6716[_0x2f10('0x6')](_0x2f10('0x7'),attributes,{'tableName':_0x2f10('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee71=['CreateVoiceTransferReport','VoiceTransferReport','create','body','options','raw','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','VoiceTransferReport,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch'];(function(_0x236779,_0x2c9d17){var _0xae381d=function(_0x2b3263){while(--_0x2b3263){_0x236779['push'](_0x236779['shift']());}};_0xae381d(++_0x2c9d17);}(_0xee71,0x128));var _0x1ee7=function(_0x14ed10,_0x1d5989){_0x14ed10=_0x14ed10-0x0;var _0x1991bd=_0xee71[_0x14ed10];return _0x1991bd;};'use strict';var _=require(_0x1ee7('0x0'));var util=require(_0x1ee7('0x1'));var moment=require(_0x1ee7('0x2'));var BPromise=require('bluebird');var rs=require(_0x1ee7('0x3'));var fs=require('fs');var db=require(_0x1ee7('0x4'))['db'];var utils=require(_0x1ee7('0x5'));var logger=require(_0x1ee7('0x6'))(_0x1ee7('0x7'));var config=require(_0x1ee7('0x8'));var jayson=require(_0x1ee7('0x9'));var client=jayson[_0x1ee7('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x352c4c,_0x175553,_0x26de6a){return new BPromise(function(_0x290fdd,_0x5a51c0){return client[_0x1ee7('0xb')](_0x352c4c,_0x26de6a)[_0x1ee7('0xc')](function(_0x2f4c4b){logger[_0x1ee7('0xd')](_0x1ee7('0xe'),_0x175553,'request\x20sent');logger[_0x1ee7('0xf')]('VoiceTransferReport,\x20%s,\x20%s,\x20%s',_0x175553,_0x1ee7('0x10'),JSON[_0x1ee7('0x11')](_0x2f4c4b));if(_0x2f4c4b[_0x1ee7('0x12')]){if(_0x2f4c4b[_0x1ee7('0x12')][_0x1ee7('0x13')]===0x1f4){logger[_0x1ee7('0x12')]('VoiceTransferReport,\x20%s,\x20%s',_0x175553,_0x2f4c4b[_0x1ee7('0x12')][_0x1ee7('0x14')]);return _0x5a51c0(_0x2f4c4b[_0x1ee7('0x12')][_0x1ee7('0x14')]);}logger[_0x1ee7('0x12')](_0x1ee7('0xe'),_0x175553,_0x2f4c4b[_0x1ee7('0x12')][_0x1ee7('0x14')]);return _0x290fdd(_0x2f4c4b[_0x1ee7('0x12')][_0x1ee7('0x14')]);}else{logger[_0x1ee7('0xd')](_0x1ee7('0xe'),_0x175553,_0x1ee7('0x10'));_0x290fdd(_0x2f4c4b[_0x1ee7('0x15')]['message']);}})[_0x1ee7('0x16')](function(_0x383030){logger[_0x1ee7('0x12')](_0x1ee7('0xe'),_0x175553,_0x383030);_0x5a51c0(_0x383030);});});}exports[_0x1ee7('0x17')]=function(_0xce4fd8){var _0x126403=this;return new Promise(function(_0x671014,_0xe4fe83){return db[_0x1ee7('0x18')][_0x1ee7('0x19')](_0xce4fd8[_0x1ee7('0x1a')],{'raw':_0xce4fd8[_0x1ee7('0x1b')]?_0xce4fd8['options'][_0x1ee7('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x3c09fb){logger[_0x1ee7('0xd')]('CreateVoiceTransferReport',_0xce4fd8);logger[_0x1ee7('0xf')](_0x1ee7('0x17'),_0xce4fd8,JSON[_0x1ee7('0x11')](_0x3c09fb));_0x671014(_0x3c09fb);})[_0x1ee7('0x16')](function(_0x16f107){logger[_0x1ee7('0x12')]('CreateVoiceTransferReport',_0x16f107[_0x1ee7('0x14')],_0xce4fd8);_0xe4fe83(_0x126403[_0x1ee7('0x12')](0x1f4,_0x16f107[_0x1ee7('0x14')]));});});};
\ No newline at end of file
+var _0x296b=['result','catch','VoiceTransferReport','create','body','options','raw','CreateVoiceTransferReport','lodash','util','moment','bluebird','ioredis','rpc','jayson/promise','http','then','info','request\x20sent','debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceTransferReport,\x20%s,\x20%s','message'];(function(_0x24326d,_0x5a9051){var _0x5b2d85=function(_0x26b9f4){while(--_0x26b9f4){_0x24326d['push'](_0x24326d['shift']());}};_0x5b2d85(++_0x5a9051);}(_0x296b,0xf2));var _0xb296=function(_0x5cd395,_0x507285){_0x5cd395=_0x5cd395-0x0;var _0x141227=_0x296b[_0x5cd395];return _0x141227;};'use strict';var _=require(_0xb296('0x0'));var util=require(_0xb296('0x1'));var moment=require(_0xb296('0x2'));var BPromise=require(_0xb296('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb296('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xb296('0x5'));var config=require('../../config/environment');var jayson=require(_0xb296('0x6'));var client=jayson['client'][_0xb296('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x40b06c,_0xfe8c78,_0x51b6c8){return new BPromise(function(_0xdbdef0,_0x7a4906){return client['request'](_0x40b06c,_0x51b6c8)[_0xb296('0x8')](function(_0x593d22){logger[_0xb296('0x9')]('VoiceTransferReport,\x20%s,\x20%s',_0xfe8c78,_0xb296('0xa'));logger[_0xb296('0xb')](_0xb296('0xc'),_0xfe8c78,_0xb296('0xa'),JSON[_0xb296('0xd')](_0x593d22));if(_0x593d22[_0xb296('0xe')]){if(_0x593d22[_0xb296('0xe')][_0xb296('0xf')]===0x1f4){logger[_0xb296('0xe')](_0xb296('0x10'),_0xfe8c78,_0x593d22['error']['message']);return _0x7a4906(_0x593d22['error'][_0xb296('0x11')]);}logger[_0xb296('0xe')](_0xb296('0x10'),_0xfe8c78,_0x593d22[_0xb296('0xe')][_0xb296('0x11')]);return _0xdbdef0(_0x593d22[_0xb296('0xe')]['message']);}else{logger[_0xb296('0x9')](_0xb296('0x10'),_0xfe8c78,_0xb296('0xa'));_0xdbdef0(_0x593d22[_0xb296('0x12')][_0xb296('0x11')]);}})[_0xb296('0x13')](function(_0x1c9911){logger[_0xb296('0xe')]('VoiceTransferReport,\x20%s,\x20%s',_0xfe8c78,_0x1c9911);_0x7a4906(_0x1c9911);});});}exports['CreateVoiceTransferReport']=function(_0x47ab17){var _0x56d6ed=this;return new Promise(function(_0x8fd07c,_0x27f43d){return db[_0xb296('0x14')][_0xb296('0x15')](_0x47ab17[_0xb296('0x16')],{'raw':_0x47ab17['options']?_0x47ab17[_0xb296('0x17')][_0xb296('0x18')]===undefined?!![]:![]:!![]})[_0xb296('0x8')](function(_0x6e5223){logger[_0xb296('0x9')](_0xb296('0x19'),_0x47ab17);logger[_0xb296('0xb')]('CreateVoiceTransferReport',_0x47ab17,JSON[_0xb296('0xd')](_0x6e5223));_0x8fd07c(_0x6e5223);})[_0xb296('0x13')](function(_0x2d5cd3){logger['error']('CreateVoiceTransferReport',_0x2d5cd3[_0xb296('0x11')],_0x47ab17);_0x27f43d(_0x56d6ed[_0xb296('0xe')](0x1f4,_0x2d5cd3[_0xb296('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4019=['exit','lodash','./mysqldb','./rpc','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule/chat','sync','then','listen','info','start','Online\x20apps:','map','filter','online','name','join','Offline\x20apps:','status','None','seedDB','./config/seedDB','./config/license','default','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s'];(function(_0x24666b,_0x2b8808){var _0x488f23=function(_0x542885){while(--_0x542885){_0x24666b['push'](_0x24666b['shift']());}};_0x488f23(++_0x2b8808);}(_0x4019,0x12d));var _0x9401=function(_0x1e3264,_0x37d4c8){_0x1e3264=_0x1e3264-0x0;var _0x5ba490=_0x4019[_0x1e3264];return _0x5ba490;};'use strict';var _=require(_0x9401('0x0'));var mysqldb=require(_0x9401('0x1'));var rpc=require(_0x9401('0x2'));var config=require('./config/environment');var logger=require(_0x9401('0x3'))(_0x9401('0x4'));var pm2=require(_0x9401('0x5'));var pm2Config=require(_0x9401('0x6'));var schedule=require('./config/schedule');var chat=require(_0x9401('0x7'));function main(){return mysqldb['db']['sequelize'][_0x9401('0x8')]()[_0x9401('0x9')](function(){return rpc[_0x9401('0xa')]();})[_0x9401('0x9')](function(_0x369979){logger[_0x9401('0xb')](_0x369979);return chat[_0x9401('0xc')]();})[_0x9401('0x9')](function(){return schedule[_0x9401('0xc')]();})[_0x9401('0x9')](function(_0xdc054e){logger[_0x9401('0xb')](_0xdc054e);return pm2[_0x9401('0xc')](pm2Config);})['then'](function(_0x37dc90){logger['info'](_0x9401('0xd'),_[_0x9401('0xe')](_[_0x9401('0xf')](_0x37dc90,{'status':_0x9401('0x10')}),_0x9401('0x11'))[_0x9401('0x12')]());logger[_0x9401('0xb')](_0x9401('0x13'),_[_0x9401('0xe')](_[_0x9401('0xf')](_0x37dc90,function(_0x4213f4){return _0x4213f4[_0x9401('0x14')]!=='online';}),_0x9401('0x11'))[_0x9401('0x12')]()||_0x9401('0x15'));config[_0x9401('0x16')]&&require(_0x9401('0x17'))['default']();require(_0x9401('0x18'))[_0x9401('0x19')]();})[_0x9401('0x1a')](function(_0x46dcc8){logger[_0x9401('0x1b')](_0x9401('0x1c'),_0x46dcc8);process[_0x9401('0x1d')](0x1);});}main();
\ No newline at end of file
+var _0x8209=['Offline\x20apps:','map','online','None','seedDB','./config/seedDB','default','./config/license','catch','error','lodash','./mysqldb','./rpc','./config/environment','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule/chat','sequelize','sync','then','listen','info','start','Online\x20apps:','filter','name','join'];(function(_0x188831,_0x3f4413){var _0x28ca18=function(_0x19ff76){while(--_0x19ff76){_0x188831['push'](_0x188831['shift']());}};_0x28ca18(++_0x3f4413);}(_0x8209,0x183));var _0x9820=function(_0x2898bd,_0x3a96d4){_0x2898bd=_0x2898bd-0x0;var _0x2a49b0=_0x8209[_0x2898bd];return _0x2a49b0;};'use strict';var _=require(_0x9820('0x0'));var mysqldb=require(_0x9820('0x1'));var rpc=require(_0x9820('0x2'));var config=require(_0x9820('0x3'));var logger=require(_0x9820('0x4'))(_0x9820('0x5'));var pm2=require(_0x9820('0x6'));var pm2Config=require(_0x9820('0x7'));var schedule=require('./config/schedule');var chat=require(_0x9820('0x8'));function main(){return mysqldb['db'][_0x9820('0x9')][_0x9820('0xa')]()[_0x9820('0xb')](function(){return rpc[_0x9820('0xc')]();})[_0x9820('0xb')](function(_0x386b38){logger[_0x9820('0xd')](_0x386b38);return chat[_0x9820('0xe')]();})[_0x9820('0xb')](function(){return schedule[_0x9820('0xe')]();})[_0x9820('0xb')](function(_0x1ba982){logger[_0x9820('0xd')](_0x1ba982);return pm2[_0x9820('0xe')](pm2Config);})['then'](function(_0x31d473){logger[_0x9820('0xd')](_0x9820('0xf'),_['map'](_[_0x9820('0x10')](_0x31d473,{'status':'online'}),_0x9820('0x11'))[_0x9820('0x12')]());logger[_0x9820('0xd')](_0x9820('0x13'),_[_0x9820('0x14')](_[_0x9820('0x10')](_0x31d473,function(_0x5dda86){return _0x5dda86['status']!==_0x9820('0x15');}),'name')[_0x9820('0x12')]()||_0x9820('0x16'));config[_0x9820('0x17')]&&require(_0x9820('0x18'))[_0x9820('0x19')]();require(_0x9820('0x1a'))[_0x9820('0x19')]();})[_0x9820('0x1b')](function(_0x145f5d){logger[_0x9820('0x1c')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x145f5d);process['exit'](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc348=['update','Forbidden','sign','signToken','hasRole','userRoles','indexOf','role','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','pick','redirect','/dashboards/general','../../mysqldb','../../config/environment','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','ipaddr.js','secrets','session','fullname','name','internal','email','userpic','permissions','voicePause','chatPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','phoneBarRemoteControl','isChatInteractionAuthorized','user','ChatInteraction','findOne','closed','disposition','then','status','unmanaged','json','Unmanaged.','Forbidden.','catch','use','headers','authorization','Basic','User','find','authenticate','pass','Wrong\x20credentials.','startsWith','Bearer','Unknown\x20authorization\x20format.','User\x20not\x20found.','User\x20object\x20not\x20found.','../../config/license/util'];(function(_0x1afd3b,_0x212a08){var _0x21dd50=function(_0x42fdc2){while(--_0x42fdc2){_0x1afd3b['push'](_0x1afd3b['shift']());}};_0x21dd50(++_0x212a08);}(_0xc348,0x19a));var _0x8c34=function(_0x391ece,_0x5a3727){_0x391ece=_0x391ece-0x0;var _0x320cdd=_0xc348[_0x391ece];return _0x320cdd;};'use strict';var db=require(_0x8c34('0x0'))['db'];var config=require(_0x8c34('0x1'));var _=require(_0x8c34('0x2'));var jwt=require(_0x8c34('0x3'));var expressJwt=require(_0x8c34('0x4'));var compose=require(_0x8c34('0x5'));var basicAuth=require(_0x8c34('0x6'));var ipaddr=require(_0x8c34('0x7'));var validateJwt=expressJwt({'secret':config[_0x8c34('0x8')][_0x8c34('0x9')]});var userAttributes=['id','role',_0x8c34('0xa'),_0x8c34('0xb'),_0x8c34('0xc'),_0x8c34('0xd'),_0x8c34('0xe'),_0x8c34('0xf'),_0x8c34('0x10'),_0x8c34('0x11'),'mailPause',_0x8c34('0x12'),_0x8c34('0x13'),_0x8c34('0x14'),_0x8c34('0x15'),_0x8c34('0x16'),'phoneBarRemoteControlPort',_0x8c34('0x17'),'interface'];exports[_0x8c34('0x18')]=function(){return isAuthenticated(!![])['use'](function(_0x5852ab,_0x20e90b,_0x179e49){if(_0x5852ab[_0x8c34('0x19')]){_0x179e49();}else{return db[_0x8c34('0x1a')][_0x8c34('0x1b')]({'where':{'id':_0x5852ab['params']['id']},'attributes':['id',_0x8c34('0x1c'),_0x8c34('0x1d')],'raw':!![]})[_0x8c34('0x1e')](function(_0x4785bf){if(_0x4785bf&&_0x4785bf[_0x8c34('0x1c')]){return _0x20e90b[_0x8c34('0x1f')](_0x4785bf[_0x8c34('0x1d')]===_0x8c34('0x20')?0x195:0x193)[_0x8c34('0x21')]({'message':_0x4785bf[_0x8c34('0x1d')]==='unmanaged'?_0x8c34('0x22'):_0x8c34('0x23')});}else{_0x179e49();}})[_0x8c34('0x24')](function(_0xa44904){_0x179e49(_0xa44904);});}});};function isAuthenticated(_0x567455){return compose()[_0x8c34('0x25')](function(_0x4cdca7,_0x15e36a,_0x3d8f8e){if(_0x4cdca7[_0x8c34('0x26')]['authorization']){if(_['startsWith'](_0x4cdca7[_0x8c34('0x26')][_0x8c34('0x27')],_0x8c34('0x28'))){var _0x3d84a9=basicAuth(_0x4cdca7);db[_0x8c34('0x29')][_0x8c34('0x2a')]({'where':{'name':_0x3d84a9[_0x8c34('0xb')]}})[_0x8c34('0x1e')](function(_0x41bca3){if(!_0x41bca3||!_0x41bca3[_0x8c34('0x2b')](_0x3d84a9[_0x8c34('0x2c')])){return _0x15e36a[_0x8c34('0x1f')](0x191)[_0x8c34('0x21')]({'message':_0x8c34('0x2d')});}_0x4cdca7[_0x8c34('0x19')]={'id':_0x41bca3['id']};_0x3d8f8e();})[_0x8c34('0x24')](function(_0x469511){_0x3d8f8e(_0x469511);});}else if(_[_0x8c34('0x2e')](_0x4cdca7[_0x8c34('0x26')]['authorization'],_0x8c34('0x2f'))){validateJwt(_0x4cdca7,_0x15e36a,_0x3d8f8e);}}else{if(_0x567455){_0x3d8f8e();}else{return _0x15e36a[_0x8c34('0x1f')](0x191)[_0x8c34('0x21')]({'message':_0x8c34('0x30')});}}})[_0x8c34('0x25')](function(_0xe3359b,_0x20285c,_0x417f5f){if(_0xe3359b['user']){db['User'][_0x8c34('0x2a')]({'where':{'id':_0xe3359b[_0x8c34('0x19')]['id']},'attributes':userAttributes})[_0x8c34('0x1e')](function(_0x341f71){if(!_0x341f71){return _0x20285c[_0x8c34('0x1f')](0x194)[_0x8c34('0x21')]({'message':_0x8c34('0x31')});}_0xe3359b[_0x8c34('0x19')]=_0x341f71;_0x417f5f();})['catch'](function(_0x25f95a){_0x417f5f(_0x25f95a);});}else if(_0x567455){_0x417f5f();}else{return _0x20285c[_0x8c34('0x1f')](0x194)[_0x8c34('0x21')]({'message':_0x8c34('0x32')});}});}exports['isAuthenticated']=isAuthenticated;function canUpdate(){return compose()['use'](function(_0x21520e,_0x410092,_0x300175){return require(_0x8c34('0x33'))['getLicense']()[_0x8c34('0x1e')](function(_0x2b5ab8){if(_0x2b5ab8[_0x8c34('0x34')]){_0x300175();}else{return _0x410092[_0x8c34('0x1f')](0x193)[_0x8c34('0x21')]({'message':_0x8c34('0x35')});}})[_0x8c34('0x24')](function(_0x3b7fe5){_0x300175(_0x3b7fe5);});});}exports['canUpdate']=canUpdate;function signToken(_0x33333e,_0x571bf7){return jwt[_0x8c34('0x36')]({'id':_0x33333e,'role':_0x571bf7},config[_0x8c34('0x8')]['session'],{'expiresIn':0x15180});}exports[_0x8c34('0x37')]=signToken;exports[_0x8c34('0x38')]=function(_0x13da8c){if(!_0x13da8c){throw new Error('Required\x20role\x20needs\x20to\x20be\x20set');}return compose()[_0x8c34('0x25')](isAuthenticated())[_0x8c34('0x25')](function meetsRequirements(_0x3b6a70,_0xea65d9,_0x511e6c){if(config[_0x8c34('0x39')][_0x8c34('0x3a')](_0x3b6a70[_0x8c34('0x19')][_0x8c34('0x3b')])>=config[_0x8c34('0x39')]['indexOf'](_0x13da8c)){return _0x511e6c();}else{return _0xea65d9['status'](0x193)['json']({'message':_0x8c34('0x35')});}});};exports['setTokenCookie']=function(_0x391ffa,_0x15bd08){if(!_0x391ffa[_0x8c34('0x19')]){return _0x15bd08[_0x8c34('0x1f')](0x194)[_0x8c34('0x21')]({'message':_0x8c34('0x3c')});}var _0x586ef9=signToken(_0x391ffa[_0x8c34('0x19')]['id'],_0x391ffa[_0x8c34('0x19')][_0x8c34('0x3b')]);_0x15bd08[_0x8c34('0x3d')](_0x8c34('0x3e'),_0x586ef9);_0x15bd08['cookie']('motion.user',JSON['stringify'](_[_0x8c34('0x3f')](_0x391ffa[_0x8c34('0x19')],userAttributes)));_0x15bd08[_0x8c34('0x40')](_0x8c34('0x41'));};
\ No newline at end of file
+var _0x7295=['Basic','User','find','name','authenticate','pass','Wrong\x20credentials.','user','authorization','Bearer','Unknown\x20authorization\x20format.','User\x20not\x20found.','getLicense','update','Forbidden','canUpdate','sign','session','signToken','hasRole','Required\x20role\x20needs\x20to\x20be\x20set','userRoles','indexOf','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.user','stringify','pick','redirect','/dashboards/general','../../mysqldb','../../config/environment','express-jwt','composable-middleware','basic-auth','secrets','role','fullname','internal','email','userpic','permissions','voicePause','chatPause','faxPause','openchannelPause','pauseType','showWebBar','phoneBarRemoteControlPort','phoneBarRemoteControl','interface','use','findOne','params','closed','then','status','disposition','json','unmanaged','Unmanaged.','Forbidden.','catch','startsWith','headers'];(function(_0x407302,_0x56d041){var _0x250792=function(_0x5e3d0f){while(--_0x5e3d0f){_0x407302['push'](_0x407302['shift']());}};_0x250792(++_0x56d041);}(_0x7295,0xe1));var _0x5729=function(_0x2d9535,_0x4bc592){_0x2d9535=_0x2d9535-0x0;var _0xb4e710=_0x7295[_0x2d9535];return _0xb4e710;};'use strict';var db=require(_0x5729('0x0'))['db'];var config=require(_0x5729('0x1'));var _=require('lodash');var jwt=require('jsonwebtoken');var expressJwt=require(_0x5729('0x2'));var compose=require(_0x5729('0x3'));var basicAuth=require(_0x5729('0x4'));var ipaddr=require('ipaddr.js');var validateJwt=expressJwt({'secret':config[_0x5729('0x5')]['session']});var userAttributes=['id',_0x5729('0x6'),_0x5729('0x7'),'name',_0x5729('0x8'),_0x5729('0x9'),_0x5729('0xa'),_0x5729('0xb'),_0x5729('0xc'),_0x5729('0xd'),'mailPause',_0x5729('0xe'),'smsPause',_0x5729('0xf'),_0x5729('0x10'),_0x5729('0x11'),_0x5729('0x12'),_0x5729('0x13'),_0x5729('0x14')];exports['isChatInteractionAuthorized']=function(){return isAuthenticated(!![])[_0x5729('0x15')](function(_0x2fb0cd,_0x475446,_0x30bc0a){if(_0x2fb0cd['user']){_0x30bc0a();}else{return db['ChatInteraction'][_0x5729('0x16')]({'where':{'id':_0x2fb0cd[_0x5729('0x17')]['id']},'attributes':['id',_0x5729('0x18'),'disposition'],'raw':!![]})[_0x5729('0x19')](function(_0x8ad636){if(_0x8ad636&&_0x8ad636['closed']){return _0x475446[_0x5729('0x1a')](_0x8ad636[_0x5729('0x1b')]==='unmanaged'?0x195:0x193)[_0x5729('0x1c')]({'message':_0x8ad636[_0x5729('0x1b')]===_0x5729('0x1d')?_0x5729('0x1e'):_0x5729('0x1f')});}else{_0x30bc0a();}})[_0x5729('0x20')](function(_0x57b238){_0x30bc0a(_0x57b238);});}});};function isAuthenticated(_0x3ac58b){return compose()[_0x5729('0x15')](function(_0x3c70c6,_0x43f79f,_0x1a3607){if(_0x3c70c6['headers']['authorization']){if(_[_0x5729('0x21')](_0x3c70c6[_0x5729('0x22')]['authorization'],_0x5729('0x23'))){var _0x5dc592=basicAuth(_0x3c70c6);db[_0x5729('0x24')][_0x5729('0x25')]({'where':{'name':_0x5dc592[_0x5729('0x26')]}})[_0x5729('0x19')](function(_0x3a8a96){if(!_0x3a8a96||!_0x3a8a96[_0x5729('0x27')](_0x5dc592[_0x5729('0x28')])){return _0x43f79f[_0x5729('0x1a')](0x191)[_0x5729('0x1c')]({'message':_0x5729('0x29')});}_0x3c70c6[_0x5729('0x2a')]={'id':_0x3a8a96['id']};_0x1a3607();})['catch'](function(_0x2af2ec){_0x1a3607(_0x2af2ec);});}else if(_[_0x5729('0x21')](_0x3c70c6[_0x5729('0x22')][_0x5729('0x2b')],_0x5729('0x2c'))){validateJwt(_0x3c70c6,_0x43f79f,_0x1a3607);}}else{if(_0x3ac58b){_0x1a3607();}else{return _0x43f79f[_0x5729('0x1a')](0x191)[_0x5729('0x1c')]({'message':_0x5729('0x2d')});}}})[_0x5729('0x15')](function(_0x2d78d7,_0x3ad304,_0x2ccf7b){if(_0x2d78d7[_0x5729('0x2a')]){db[_0x5729('0x24')]['find']({'where':{'id':_0x2d78d7[_0x5729('0x2a')]['id']},'attributes':userAttributes})[_0x5729('0x19')](function(_0x1cfeec){if(!_0x1cfeec){return _0x3ad304['status'](0x194)['json']({'message':_0x5729('0x2e')});}_0x2d78d7[_0x5729('0x2a')]=_0x1cfeec;_0x2ccf7b();})[_0x5729('0x20')](function(_0x28fa8e){_0x2ccf7b(_0x28fa8e);});}else if(_0x3ac58b){_0x2ccf7b();}else{return _0x3ad304['status'](0x194)[_0x5729('0x1c')]({'message':'User\x20object\x20not\x20found.'});}});}exports['isAuthenticated']=isAuthenticated;function canUpdate(){return compose()[_0x5729('0x15')](function(_0x38cca0,_0x51a963,_0x12fcf2){return require('../../config/license/util')[_0x5729('0x2f')]()[_0x5729('0x19')](function(_0x4458fa){if(_0x4458fa[_0x5729('0x30')]){_0x12fcf2();}else{return _0x51a963['status'](0x193)[_0x5729('0x1c')]({'message':_0x5729('0x31')});}})[_0x5729('0x20')](function(_0xa463c){_0x12fcf2(_0xa463c);});});}exports[_0x5729('0x32')]=canUpdate;function signToken(_0x733792,_0x51adb9){return jwt[_0x5729('0x33')]({'id':_0x733792,'role':_0x51adb9},config[_0x5729('0x5')][_0x5729('0x34')],{'expiresIn':0x15180});}exports[_0x5729('0x35')]=signToken;exports[_0x5729('0x36')]=function(_0x1fd004){if(!_0x1fd004){throw new Error(_0x5729('0x37'));}return compose()['use'](isAuthenticated())[_0x5729('0x15')](function meetsRequirements(_0x19334b,_0x3e5850,_0x492151){if(config['userRoles']['indexOf'](_0x19334b[_0x5729('0x2a')]['role'])>=config[_0x5729('0x38')][_0x5729('0x39')](_0x1fd004)){return _0x492151();}else{return _0x3e5850[_0x5729('0x1a')](0x193)[_0x5729('0x1c')]({'message':_0x5729('0x31')});}});};exports['setTokenCookie']=function(_0x369a1c,_0x419fd3){if(!_0x369a1c['user']){return _0x419fd3[_0x5729('0x1a')](0x194)['json']({'message':_0x5729('0x3a')});}var _0x599107=signToken(_0x369a1c['user']['id'],_0x369a1c['user'][_0x5729('0x6')]);_0x419fd3['cookie']('motion.token',_0x599107);_0x419fd3[_0x5729('0x3b')](_0x5729('0x3c'),JSON[_0x5729('0x3d')](_[_0x5729('0x3e')](_0x369a1c['user'],userAttributes)));_0x419fd3[_0x5729('0x3f')](_0x5729('0x40'));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0715=['close','unlink','decryptFile','createWriteStream','createDecipher','crypto','bluebird','aes192','hasOwnProperty','encryptFile','createReadStream','algorithm','data','update','binary','write','end','final'];(function(_0x1969a7,_0x5a133a){var _0x3d665f=function(_0x39c64b){while(--_0x39c64b){_0x1969a7['push'](_0x1969a7['shift']());}};_0x3d665f(++_0x5a133a);}(_0x0715,0x149));var _0x5071=function(_0x2f9827,_0x10617d){_0x2f9827=_0x2f9827-0x0;var _0x5a91b9=_0x0715[_0x2f9827];return _0x5a91b9;};'use strict';var crypto=require(_0x5071('0x0'));var fs=require('fs');var BPromise=require(_0x5071('0x1'));var defaultOptions={'algorithm':_0x5071('0x2')};function combineOptions(_0x56b7dc){var _0x47588c={};for(var _0x191b04 in defaultOptions){if(defaultOptions[_0x5071('0x3')](_0x191b04)){_0x47588c[_0x191b04]=defaultOptions[_0x191b04];}}if(_0x56b7dc){for(var _0x2103c8 in _0x56b7dc){if(_0x56b7dc[_0x5071('0x3')](_0x2103c8)){_0x47588c[_0x2103c8]=_0x56b7dc[_0x2103c8];}}}return _0x47588c;}exports[_0x5071('0x4')]=function(_0x140fb2,_0x2ea439,_0x5736a5,_0x3b657f){return new BPromise(function(_0x42d868,_0x1c1289){_0x3b657f=combineOptions(_0x3b657f);var _0x58b96c=new Buffer(_0x5736a5);var _0x35ec64=fs[_0x5071('0x5')](_0x140fb2);var _0x2300a4=fs['createWriteStream'](_0x2ea439);var _0x3b526c=crypto['createCipher'](_0x3b657f[_0x5071('0x6')],_0x58b96c);_0x35ec64['on'](_0x5071('0x7'),function(_0x37c940){var _0x243e19=new Buffer(_0x3b526c[_0x5071('0x8')](_0x37c940),_0x5071('0x9'));_0x2300a4[_0x5071('0xa')](_0x243e19);});_0x35ec64['on'](_0x5071('0xb'),function(){try{var _0x215d17=new Buffer(_0x3b526c[_0x5071('0xc')](_0x5071('0x9')),'binary');_0x2300a4[_0x5071('0xa')](_0x215d17);_0x2300a4[_0x5071('0xb')]();_0x2300a4['on'](_0x5071('0xd'),function(){return _0x42d868(_0x2ea439);});}catch(_0x5ddc99){fs[_0x5071('0xe')](_0x2ea439);return _0x1c1289(_0x5ddc99);}});});};exports[_0x5071('0xf')]=function(_0x230b2b,_0xd9b687,_0x2adbed,_0x1b02b7){return new BPromise(function(_0xcc0d1d,_0x38ed8f){_0x1b02b7=combineOptions(_0x1b02b7);var _0x116456=new Buffer(_0x2adbed);var _0x1cdd6b=fs[_0x5071('0x5')](_0x230b2b);var _0x397c73=fs[_0x5071('0x10')](_0xd9b687);var _0x1228d5=crypto[_0x5071('0x11')](_0x1b02b7[_0x5071('0x6')],_0x116456);_0x1cdd6b['on'](_0x5071('0x7'),function(_0x5445c4){var _0x3a8c9d=new Buffer(_0x1228d5[_0x5071('0x8')](_0x5445c4),'binary');_0x397c73[_0x5071('0xa')](_0x3a8c9d);});_0x1cdd6b['on'](_0x5071('0xb'),function(){try{var _0x1a5fdf=new Buffer(_0x1228d5[_0x5071('0xc')](_0x5071('0x9')),_0x5071('0x9'));_0x397c73['write'](_0x1a5fdf);_0x397c73[_0x5071('0xb')]();_0x397c73['on'](_0x5071('0xd'),function(){return _0xcc0d1d(_0xd9b687);});}catch(_0x4116f4){fs[_0x5071('0xe')](_0xd9b687);return _0x38ed8f(_0x4116f4);}});});};
\ No newline at end of file
+var _0x5122=['encryptFile','createReadStream','createWriteStream','algorithm','data','write','end','final','binary','close','unlink','createDecipher','update','crypto','bluebird','aes192','hasOwnProperty'];(function(_0x1b3c05,_0x389da6){var _0x1775c5=function(_0x358977){while(--_0x358977){_0x1b3c05['push'](_0x1b3c05['shift']());}};_0x1775c5(++_0x389da6);}(_0x5122,0xfb));var _0x2512=function(_0xcf6dc5,_0x150a8c){_0xcf6dc5=_0xcf6dc5-0x0;var _0x4ba236=_0x5122[_0xcf6dc5];return _0x4ba236;};'use strict';var crypto=require(_0x2512('0x0'));var fs=require('fs');var BPromise=require(_0x2512('0x1'));var defaultOptions={'algorithm':_0x2512('0x2')};function combineOptions(_0x3cdf20){var _0x377cdc={};for(var _0x2c02e1 in defaultOptions){if(defaultOptions[_0x2512('0x3')](_0x2c02e1)){_0x377cdc[_0x2c02e1]=defaultOptions[_0x2c02e1];}}if(_0x3cdf20){for(var _0x59af66 in _0x3cdf20){if(_0x3cdf20[_0x2512('0x3')](_0x59af66)){_0x377cdc[_0x59af66]=_0x3cdf20[_0x59af66];}}}return _0x377cdc;}exports[_0x2512('0x4')]=function(_0x5ce042,_0xc6cde,_0x4404e3,_0x3ee677){return new BPromise(function(_0x464df0,_0x16acbe){_0x3ee677=combineOptions(_0x3ee677);var _0x270b67=new Buffer(_0x4404e3);var _0x262b19=fs[_0x2512('0x5')](_0x5ce042);var _0x188851=fs[_0x2512('0x6')](_0xc6cde);var _0x429de1=crypto['createCipher'](_0x3ee677[_0x2512('0x7')],_0x270b67);_0x262b19['on'](_0x2512('0x8'),function(_0x474d12){var _0x49ec83=new Buffer(_0x429de1['update'](_0x474d12),'binary');_0x188851[_0x2512('0x9')](_0x49ec83);});_0x262b19['on'](_0x2512('0xa'),function(){try{var _0x2e4a1d=new Buffer(_0x429de1[_0x2512('0xb')](_0x2512('0xc')),_0x2512('0xc'));_0x188851[_0x2512('0x9')](_0x2e4a1d);_0x188851[_0x2512('0xa')]();_0x188851['on'](_0x2512('0xd'),function(){return _0x464df0(_0xc6cde);});}catch(_0x262340){fs[_0x2512('0xe')](_0xc6cde);return _0x16acbe(_0x262340);}});});};exports['decryptFile']=function(_0x5a0d1d,_0x5f4118,_0x5c1739,_0x3b964f){return new BPromise(function(_0x4af415,_0x3473aa){_0x3b964f=combineOptions(_0x3b964f);var _0x1492cd=new Buffer(_0x5c1739);var _0x2993a5=fs[_0x2512('0x5')](_0x5a0d1d);var _0x533974=fs[_0x2512('0x6')](_0x5f4118);var _0x26d45a=crypto[_0x2512('0xf')](_0x3b964f[_0x2512('0x7')],_0x1492cd);_0x2993a5['on'](_0x2512('0x8'),function(_0x541a20){var _0x43ae64=new Buffer(_0x26d45a[_0x2512('0x10')](_0x541a20),_0x2512('0xc'));_0x533974[_0x2512('0x9')](_0x43ae64);});_0x2993a5['on'](_0x2512('0xa'),function(){try{var _0x4f158c=new Buffer(_0x26d45a['final'](_0x2512('0xc')),_0x2512('0xc'));_0x533974[_0x2512('0x9')](_0x4f158c);_0x533974[_0x2512('0xa')]();_0x533974['on'](_0x2512('0xd'),function(){return _0x4af415(_0x5f4118);});}catch(_0xd83747){fs[_0x2512('0xe')](_0x5f4118);return _0x3473aa(_0xd83747);}});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7bf=['push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','csv','%s.%s','writeFileSync','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','zip','catch','Failed','util','path','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeCsv','then','sequelize','query','SELECT','num','Empty','length'];(function(_0x3cc615,_0x36fa68){var _0x43d0c7=function(_0x50976d){while(--_0x50976d){_0x3cc615['push'](_0x3cc615['shift']());}};_0x43d0c7(++_0x36fa68);}(_0xb7bf,0x157));var _0xfb7b=function(_0x4d07cc,_0x587613){_0x4d07cc=_0x4d07cc-0x0;var _0x42de3b=_0xb7bf[_0x4d07cc];return _0x42de3b;};'use strict';var util=require(_0xfb7b('0x0'));var path=require(_0xfb7b('0x1'));var _=require('lodash');var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0xfb7b('0x2'));var zipdir=require(_0xfb7b('0x3'));var rimraf=require(_0xfb7b('0x4'));var db=require(_0xfb7b('0x5'))['db'];var dbH=require(_0xfb7b('0x5'))[_0xfb7b('0x6')];var logger=require(_0xfb7b('0x7'))(_0xfb7b('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xfb7b('0x9')][0x2]);var QUERY=process[_0xfb7b('0x9')][0x3];var PATH=process[_0xfb7b('0x9')][0x4];function analyticExtractedReport(_0x612f15,_0x29ca1a){var _0x248d63={'status':_0x612f15};var _0x5b3750={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x29ca1a){_0x248d63[_0xfb7b('0xa')]=_0x29ca1a;}return db[_0xfb7b('0xb')]['update'](_0x248d63,_0x5b3750);}function main(){var _0xda4938=0x1388;var _0x41455b;logger[_0xfb7b('0xc')](util[_0xfb7b('0xd')](_0xfb7b('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0xfb7b('0xf')][_0xfb7b('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xfb7b('0x11'),_0xfb7b('0x12')]})[_0xfb7b('0x13')](function(_0x126db1){if(_0x126db1){_0x41455b=_0x126db1;_0xda4938=_0x41455b['splitSizeCsv']||0x1388;}})[_0xfb7b('0x13')](function(){return dbH[_0xfb7b('0x14')][_0xfb7b('0x15')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xfb7b('0x14')]['QueryTypes'][_0xfb7b('0x16')]});})[_0xfb7b('0x13')](function(_0x4fc58e){if(!_0x4fc58e[0x0][_0xfb7b('0x17')]){return analyticExtractedReport(_0xfb7b('0x18'));}var _0xc9f270=[];var _0x2c2a13=0x0;var _0x2719bb=!![];if(_0x4fc58e&&_0x4fc58e[_0xfb7b('0x19')]){var _0x58d066=_0x4fc58e[0x0][_0xfb7b('0x17')]%(_0x2c2a13+_0xda4938);if(_0x41455b[_0xfb7b('0x11')]){for(;_0x2719bb;_0x2c2a13+=_0xda4938,_0x58d066=_0x4fc58e[0x0][_0xfb7b('0x17')]%(_0x2c2a13+_0xda4938)){if(_0x58d066==0x0||_0x58d066==_0x4fc58e[0x0][_0xfb7b('0x17')]){_0x2719bb=![];}_0xc9f270[_0xfb7b('0x1a')](dbH[_0xfb7b('0x14')]['query'](util[_0xfb7b('0xd')](_0xfb7b('0x1b'),QUERY,_0xda4938,_0x2c2a13),{'type':dbH[_0xfb7b('0x14')]['QueryTypes'][_0xfb7b('0x16')]}));}}else{_0xc9f270[_0xfb7b('0x1a')](dbH[_0xfb7b('0x14')][_0xfb7b('0x15')](QUERY,{'type':dbH[_0xfb7b('0x14')]['QueryTypes'][_0xfb7b('0x16')]}));}}var _0x4a9b03=path[_0xfb7b('0x1c')](PATH);var _0x578be3=path[_0xfb7b('0x1d')](PATH,_0xfb7b('0x1e'));var _0xd33d6b=_0x41455b[_0xfb7b('0x11')]&&_0xc9f270[_0xfb7b('0x19')]>0x1;var _0x35d4d0=[];if(!fs[_0xfb7b('0x1f')](path[_0xfb7b('0x20')](_0x4a9b03,_0x578be3))&&_0xd33d6b){fs['mkdirSync'](path[_0xfb7b('0x20')](_0x4a9b03,_0x578be3));}return BPromise['each'](_0xc9f270,function(_0x47241d){_0x35d4d0[_0xfb7b('0x1a')](_0x47241d);})[_0xfb7b('0x13')](function(){for(var _0x19a282=0x0;_0x19a282<_0x35d4d0['length'];_0x19a282+=0x1){var _0x568adc;var _0x1aa19d=_0x35d4d0[_0x19a282];if(_0xd33d6b){_0x568adc=path[_0xfb7b('0x20')](_0x4a9b03,_0x578be3,util['format']('%s%d.%s',_0x578be3,_0x19a282,_0xfb7b('0x21')));}else{_0x568adc=path[_0xfb7b('0x20')](_0x4a9b03,util[_0xfb7b('0xd')](_0xfb7b('0x22'),_0x578be3,_0xfb7b('0x21')));}fs[_0xfb7b('0x23')](_0x568adc,csv(_0x1aa19d));}})[_0xfb7b('0x13')](function(){if(_0xd33d6b){zipdir(path[_0xfb7b('0x20')](_0x4a9b03,_0x578be3),{'saveTo':path[_0xfb7b('0x20')](_0x4a9b03,util[_0xfb7b('0xd')](_0xfb7b('0x22'),_0x578be3,'zip'))},function(_0xdad039,_0xf3213){});rimraf(path[_0xfb7b('0x20')](_0x4a9b03,_0x578be3),function(){});}})[_0xfb7b('0x13')](function(){logger[_0xfb7b('0xc')](util['format'](_0xfb7b('0x24'),EXTRACTED_REPORT_ID,_0xfb7b('0x25')));return analyticExtractedReport('Completed',_0xd33d6b?util[_0xfb7b('0xd')](_0xfb7b('0x22'),_0x578be3,_0xd33d6b?_0xfb7b('0x26'):_0xfb7b('0x21')):null);});})[_0xfb7b('0x27')](function(_0x2cb180){logger[_0xfb7b('0xc')](util[_0xfb7b('0xd')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xfb7b('0x25')),util['inspect'](_0x2cb180,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xfb7b('0x28'));});}main();
\ No newline at end of file
+var _0x9384=['SELECT','num','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','.csv','length','existsSync','join','%s%d.%s','csv','%s.%s','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','savename','update','info','Setting','find','split','then','sequelize','query','format','QueryTypes'];(function(_0x31cb5f,_0x2df766){var _0x586042=function(_0x53c807){while(--_0x53c807){_0x31cb5f['push'](_0x31cb5f['shift']());}};_0x586042(++_0x2df766);}(_0x9384,0xb3));var _0x4938=function(_0x3fc97b,_0x20ca29){_0x3fc97b=_0x3fc97b-0x0;var _0x3a0c82=_0x9384[_0x3fc97b];return _0x3a0c82;};'use strict';var util=require(_0x4938('0x0'));var path=require('path');var _=require(_0x4938('0x1'));var csv=require(_0x4938('0x2'));var fs=require('fs');var BPromise=require(_0x4938('0x3'));var zipdir=require(_0x4938('0x4'));var rimraf=require(_0x4938('0x5'));var db=require(_0x4938('0x6'))['db'];var dbH=require(_0x4938('0x6'))[_0x4938('0x7')];var logger=require(_0x4938('0x8'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x4938('0x9')][0x2]);var QUERY=process[_0x4938('0x9')][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x3368cb,_0x1d8485){var _0x239010={'status':_0x3368cb};var _0x180c8f={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1d8485){_0x239010[_0x4938('0xa')]=_0x1d8485;}return db['AnalyticExtractedReport'][_0x4938('0xb')](_0x239010,_0x180c8f);}function main(){var _0x35c3be=0x1388;var _0x434147;logger[_0x4938('0xc')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'CSV'));return db[_0x4938('0xd')][_0x4938('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4938('0xf'),'splitSizeCsv']})[_0x4938('0x10')](function(_0x3b5478){if(_0x3b5478){_0x434147=_0x3b5478;_0x35c3be=_0x434147['splitSizeCsv']||0x1388;}})[_0x4938('0x10')](function(){return dbH[_0x4938('0x11')][_0x4938('0x12')](util[_0x4938('0x13')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x4938('0x14')][_0x4938('0x15')]});})['then'](function(_0x33bb7a){if(!_0x33bb7a[0x0][_0x4938('0x16')]){return analyticExtractedReport('Empty');}var _0x326ed6=[];var _0x1965f8=0x0;var _0xbbfa80=!![];if(_0x33bb7a&&_0x33bb7a['length']){var _0x1d133a=_0x33bb7a[0x0][_0x4938('0x16')]%(_0x1965f8+_0x35c3be);if(_0x434147[_0x4938('0xf')]){for(;_0xbbfa80;_0x1965f8+=_0x35c3be,_0x1d133a=_0x33bb7a[0x0][_0x4938('0x16')]%(_0x1965f8+_0x35c3be)){if(_0x1d133a==0x0||_0x1d133a==_0x33bb7a[0x0][_0x4938('0x16')]){_0xbbfa80=![];}_0x326ed6['push'](dbH[_0x4938('0x11')][_0x4938('0x12')](util[_0x4938('0x13')](_0x4938('0x17'),QUERY,_0x35c3be,_0x1965f8),{'type':dbH['sequelize'][_0x4938('0x14')][_0x4938('0x15')]}));}}else{_0x326ed6[_0x4938('0x18')](dbH[_0x4938('0x11')][_0x4938('0x12')](QUERY,{'type':dbH[_0x4938('0x11')]['QueryTypes'][_0x4938('0x15')]}));}}var _0xe57ad2=path[_0x4938('0x19')](PATH);var _0x23186d=path['basename'](PATH,_0x4938('0x1a'));var _0x404c0f=_0x434147[_0x4938('0xf')]&&_0x326ed6[_0x4938('0x1b')]>0x1;var _0xae54bf=[];if(!fs[_0x4938('0x1c')](path[_0x4938('0x1d')](_0xe57ad2,_0x23186d))&&_0x404c0f){fs['mkdirSync'](path['join'](_0xe57ad2,_0x23186d));}return BPromise['each'](_0x326ed6,function(_0x143d11){_0xae54bf['push'](_0x143d11);})[_0x4938('0x10')](function(){for(var _0x141621=0x0;_0x141621<_0xae54bf[_0x4938('0x1b')];_0x141621+=0x1){var _0x30bb62;var _0x38c340=_0xae54bf[_0x141621];if(_0x404c0f){_0x30bb62=path[_0x4938('0x1d')](_0xe57ad2,_0x23186d,util['format'](_0x4938('0x1e'),_0x23186d,_0x141621,_0x4938('0x1f')));}else{_0x30bb62=path[_0x4938('0x1d')](_0xe57ad2,util['format'](_0x4938('0x20'),_0x23186d,_0x4938('0x1f')));}fs['writeFileSync'](_0x30bb62,csv(_0x38c340));}})[_0x4938('0x10')](function(){if(_0x404c0f){zipdir(path[_0x4938('0x1d')](_0xe57ad2,_0x23186d),{'saveTo':path[_0x4938('0x1d')](_0xe57ad2,util['format'](_0x4938('0x20'),_0x23186d,'zip'))},function(_0x3481c2,_0x12d319){});rimraf(path['join'](_0xe57ad2,_0x23186d),function(){});}})[_0x4938('0x10')](function(){logger[_0x4938('0xc')](util[_0x4938('0x13')](_0x4938('0x21'),EXTRACTED_REPORT_ID,_0x4938('0x22')));return analyticExtractedReport('Completed',_0x404c0f?util[_0x4938('0x13')](_0x4938('0x20'),_0x23186d,_0x404c0f?_0x4938('0x23'):_0x4938('0x1f')):null);});})[_0x4938('0x24')](function(_0x5cb156){logger[_0x4938('0xc')](util[_0x4938('0x13')](_0x4938('0x25'),EXTRACTED_REPORT_ID,_0x4938('0x22')),util[_0x4938('0x26')](_0x5cb156,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x4938('0x27'));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68c1=['Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','PDF','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','lodash','bluebird','util','path','moment','pdfmake/src/printer','zip-dir','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','update','hasOwnProperty','tableHeader','num','dirname','basename','Setting','find','split','splitSizePdf','then','length','query','format','sequelize','QueryTypes','SELECT','push','existsSync','join','mkdirSync','each','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','startDate','endDate','header','black','body','/fonts/Roboto-Medium.ttf','/fonts/Roboto-MediumItalic.ttf','pdf','pipe','createWriteStream','error','log','err','end','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed'];(function(_0x4e77ba,_0x139ca8){var _0x85ea30=function(_0x3e1bdc){while(--_0x3e1bdc){_0x4e77ba['push'](_0x4e77ba['shift']());}};_0x85ea30(++_0x139ca8);}(_0x68c1,0x17c));var _0x168c=function(_0xb6e43,_0x1568fc){_0xb6e43=_0xb6e43-0x0;var _0x47c40f=_0x68c1[_0xb6e43];return _0x47c40f;};'use strict';var _=require(_0x168c('0x0'));var fs=require('fs');var BPromise=require(_0x168c('0x1'));var util=require(_0x168c('0x2'));var path=require(_0x168c('0x3'));var moment=require(_0x168c('0x4'));var PdfPrinter=require(_0x168c('0x5'));var zipdir=require(_0x168c('0x6'));var rimraf=require('rimraf');var db=require(_0x168c('0x7'))['db'];var dbH=require(_0x168c('0x7'))[_0x168c('0x8')];var logger=require(_0x168c('0x9'))(_0x168c('0xa'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var NAME=process[_0x168c('0xb')][0x5];var FORMAT=_0x168c('0xc');var _extractedReport;function analyticExtractedReport(_0x5e2a9a,_0x76181e){var _0xa38d1a={'status':_0x5e2a9a};var _0x1691af={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x76181e){_0xa38d1a[_0x168c('0xd')]=_0x76181e;}return db['AnalyticExtractedReport'][_0x168c('0xe')](_0xa38d1a,_0x1691af);}function getHeader(_0x57413e){var _0x2b7acd=[];for(var _0x4e0a63 in _0x57413e){if(_0x57413e[_0x168c('0xf')](_0x4e0a63)){_0x2b7acd['push']({'text':_0x4e0a63,'style':_0x168c('0x10')});}}return _0x2b7acd;}function extractReport(_0xab3eda){var _0x4eabf9=0x1388;var _0x4d6942;if(!_0xab3eda[0x0][_0x168c('0x11')]){return analyticExtractedReport('Empty');}var _0x45415b=[];var _0x11b8ed=0x0;var _0x7df99e=!![];var _0x5d446b=path[_0x168c('0x12')](PATH);var _0x206ecd=path[_0x168c('0x13')](PATH,'.pdf');var _0x2e43b5=![];var _0x559519=[];return db[_0x168c('0x14')][_0x168c('0x15')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x168c('0x16'),_0x168c('0x17')]})['then'](function(_0x102e93){if(_0x102e93){_0x4d6942=_0x102e93;_0x4eabf9=_0x4d6942[_0x168c('0x17')]||0x3e8;}})[_0x168c('0x18')](function(){if(_0xab3eda&&_0xab3eda[_0x168c('0x19')]){var _0x5d1bc0=_0xab3eda[0x0][_0x168c('0x11')]%(_0x11b8ed+_0x4eabf9);if(_0x4d6942['split']){for(;_0x7df99e;_0x11b8ed+=_0x4eabf9,_0x5d1bc0=_0xab3eda[0x0]['num']%(_0x11b8ed+_0x4eabf9)){if(_0x5d1bc0==0x0||_0x5d1bc0==_0xab3eda[0x0][_0x168c('0x11')]){_0x7df99e=![];}_0x45415b['push'](dbH['sequelize'][_0x168c('0x1a')](util[_0x168c('0x1b')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x4eabf9,_0x11b8ed),{'type':dbH[_0x168c('0x1c')][_0x168c('0x1d')][_0x168c('0x1e')]}));}}else{_0x45415b[_0x168c('0x1f')](dbH['sequelize'][_0x168c('0x1a')](QUERY,{'type':dbH[_0x168c('0x1c')][_0x168c('0x1d')][_0x168c('0x1e')]}));}}_0x2e43b5=_0x4d6942[_0x168c('0x16')]&&_0x45415b[_0x168c('0x19')]>0x1;if(!fs[_0x168c('0x20')](path[_0x168c('0x21')](_0x5d446b,_0x206ecd))&&_0x2e43b5){fs[_0x168c('0x22')](path[_0x168c('0x21')](_0x5d446b,_0x206ecd));}return BPromise[_0x168c('0x23')](_0x45415b,function(_0x4d5819){_0x559519[_0x168c('0x1f')](_0x4d5819);});})[_0x168c('0x18')](function(){return BPromise['each'](_0x45415b,function(_0x55deac,_0x3562e0){var _0x2e51f1;var _0x18d367=util[_0x168c('0x1b')](_0x168c('0x24'),NAME,_extractedReport['name'],moment(_extractedReport[_0x168c('0x25')])[_0x168c('0x1b')](FORMAT),moment(_extractedReport[_0x168c('0x26')])['format'](FORMAT));var _0x72c8dc={'pageSize':'A4','pageOrientation':'landscape','content':[{'text':_0x18d367,'style':_0x168c('0x27')}],'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x168c('0x28')}}};var _0x39ab46={'headerRows':0x1,'body':[]};_0x39ab46[_0x168c('0x29')][_0x168c('0x1f')](getHeader(_0x55deac[0x0]));var _0x14fffe;for(var _0x256e26=0x0;_0x256e26<_0x55deac[_0x168c('0x19')];_0x256e26+=0x1){_0x14fffe=[];for(var _0xa5dd21 in _0x55deac[_0x256e26]){if(_0x55deac[_0x256e26]['hasOwnProperty'](_0xa5dd21)){_0x14fffe[_0x168c('0x1f')](_0x55deac[_0x256e26][_0xa5dd21]?_['toString'](_0x55deac[_0x256e26][_0xa5dd21]):'');}}_0x39ab46[_0x168c('0x29')]['push'](_0x14fffe);}_0x72c8dc['content'][_0x168c('0x1f')]({'table':_0x39ab46});return new BPromise(function(_0x24b47b,_0x48e9f2){var _0x26ef08=new PdfPrinter({'Roboto':{'normal':__dirname+'/fonts/Roboto-Regular.ttf','bold':__dirname+_0x168c('0x2a'),'italics':__dirname+'/fonts/Roboto-Italic.ttf','bolditalics':__dirname+_0x168c('0x2b')}});var _0x2ee573=_0x26ef08['createPdfKitDocument'](_0x72c8dc);if(_0x2e43b5){_0x2e51f1=path[_0x168c('0x21')](_0x5d446b,_0x206ecd,util[_0x168c('0x1b')]('%s%d.%s',_0x206ecd,_0x3562e0,_0x168c('0x2c')));}else{_0x2e51f1=path[_0x168c('0x21')](_0x5d446b,util[_0x168c('0x1b')]('%s.%s',_0x206ecd,'pdf'));}var _0x59ccd=_0x2ee573[_0x168c('0x2d')](fs[_0x168c('0x2e')](_0x2e51f1));_0x59ccd['on']('finish',function(){_0x24b47b();});_0x59ccd['on'](_0x168c('0x2f'),function(_0x5a3aec){console[_0x168c('0x30')](_0x168c('0x31'),_0x5a3aec);_0x48e9f2(_0x5a3aec);});_0x2ee573[_0x168c('0x32')]();});});})[_0x168c('0x18')](function(){if(_0x2e43b5){return new BPromise(function(_0x475344,_0x4778e7){zipdir(path['join'](_0x5d446b,_0x206ecd),{'saveTo':path[_0x168c('0x21')](_0x5d446b,util[_0x168c('0x1b')]('%s.%s',_0x206ecd,_0x168c('0x33')))},function(_0x364dae){if(_0x364dae){_0x4778e7(_0x364dae);}else{_0x475344();}});});}})[_0x168c('0x18')](function(){if(_0x2e43b5){rimraf(path['join'](_0x5d446b,_0x206ecd),function(){});}})[_0x168c('0x18')](function(){logger[_0x168c('0x34')](util[_0x168c('0x1b')](_0x168c('0x35'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x168c('0x36'),_0x2e43b5?util[_0x168c('0x1b')]('%s.%s',_0x206ecd,_0x2e43b5?_0x168c('0x33'):_0x168c('0x2c')):null);});}function main(){logger[_0x168c('0x34')](util[_0x168c('0x1b')](_0x168c('0x37'),EXTRACTED_REPORT_ID,_0x168c('0x38')));return db['AnalyticExtractedReport'][_0x168c('0x39')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x168c('0x18')](function(_0x3b62b0){_extractedReport=_0x3b62b0;return dbH[_0x168c('0x1c')][_0x168c('0x1a')](util[_0x168c('0x1b')](_0x168c('0x3a'),QUERY),{'type':dbH[_0x168c('0x1c')][_0x168c('0x1d')][_0x168c('0x1e')]});})[_0x168c('0x18')](extractReport)[_0x168c('0x3b')](function(_0x2c5cc0){logger[_0x168c('0x34')](util['format'](_0x168c('0x3c'),EXTRACTED_REPORT_ID,_0x168c('0x38')),util[_0x168c('0x3d')](_0x2c5cc0,{'showHidden':![],'depth':null}));return analyticExtractedReport('Failed');});}main();
\ No newline at end of file
+var _0x01ed=['body','toString','content','/fonts/Roboto-Regular.ttf','/fonts/Roboto-Medium.ttf','/fonts/Roboto-Italic.ttf','/fonts/Roboto-MediumItalic.ttf','createPdfKitDocument','join','%s%d.%s','pdf','%s.%s','createWriteStream','finish','error','log','err','end','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','Completed','PDF','findOne','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','lodash','bluebird','util','path','pdfmake/src/printer','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','AnalyticExtractedReport','hasOwnProperty','push','tableHeader','num','Empty','dirname','basename','.pdf','Setting','find','split','splitSizePdf','then','sequelize','query','format','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','length','existsSync','mkdirSync','each','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','endDate','landscape','header'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x01ed,0x12c));var _0xd01e=function(_0x5dde91,_0x3bb66e){_0x5dde91=_0x5dde91-0x0;var _0x402888=_0x01ed[_0x5dde91];return _0x402888;};'use strict';var _=require(_0xd01e('0x0'));var fs=require('fs');var BPromise=require(_0xd01e('0x1'));var util=require(_0xd01e('0x2'));var path=require(_0xd01e('0x3'));var moment=require('moment');var PdfPrinter=require(_0xd01e('0x4'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var db=require(_0xd01e('0x5'))['db'];var dbH=require(_0xd01e('0x5'))[_0xd01e('0x6')];var logger=require(_0xd01e('0x7'))(_0xd01e('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xd01e('0x9')][0x3];var PATH=process[_0xd01e('0x9')][0x4];var NAME=process[_0xd01e('0x9')][0x5];var FORMAT=_0xd01e('0xa');var _extractedReport;function analyticExtractedReport(_0x4e3597,_0x24c64a){var _0x4e95e5={'status':_0x4e3597};var _0x590903={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x24c64a){_0x4e95e5['savename']=_0x24c64a;}return db[_0xd01e('0xb')]['update'](_0x4e95e5,_0x590903);}function getHeader(_0x263574){var _0x4ff7d6=[];for(var _0x25979d in _0x263574){if(_0x263574[_0xd01e('0xc')](_0x25979d)){_0x4ff7d6[_0xd01e('0xd')]({'text':_0x25979d,'style':_0xd01e('0xe')});}}return _0x4ff7d6;}function extractReport(_0x5cc121){var _0x4b7012=0x1388;var _0xc0f66a;if(!_0x5cc121[0x0][_0xd01e('0xf')]){return analyticExtractedReport(_0xd01e('0x10'));}var _0x5d577b=[];var _0xc00330=0x0;var _0x3157d6=!![];var _0x3fb2bb=path[_0xd01e('0x11')](PATH);var _0x242204=path[_0xd01e('0x12')](PATH,_0xd01e('0x13'));var _0x481644=![];var _0x47785a=[];return db[_0xd01e('0x14')][_0xd01e('0x15')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xd01e('0x16'),_0xd01e('0x17')]})[_0xd01e('0x18')](function(_0x1b47ae){if(_0x1b47ae){_0xc0f66a=_0x1b47ae;_0x4b7012=_0xc0f66a[_0xd01e('0x17')]||0x3e8;}})[_0xd01e('0x18')](function(){if(_0x5cc121&&_0x5cc121['length']){var _0x44ca90=_0x5cc121[0x0][_0xd01e('0xf')]%(_0xc00330+_0x4b7012);if(_0xc0f66a[_0xd01e('0x16')]){for(;_0x3157d6;_0xc00330+=_0x4b7012,_0x44ca90=_0x5cc121[0x0]['num']%(_0xc00330+_0x4b7012)){if(_0x44ca90==0x0||_0x44ca90==_0x5cc121[0x0]['num']){_0x3157d6=![];}_0x5d577b[_0xd01e('0xd')](dbH[_0xd01e('0x19')][_0xd01e('0x1a')](util[_0xd01e('0x1b')](_0xd01e('0x1c'),QUERY,_0x4b7012,_0xc00330),{'type':dbH['sequelize'][_0xd01e('0x1d')][_0xd01e('0x1e')]}));}}else{_0x5d577b[_0xd01e('0xd')](dbH['sequelize']['query'](QUERY,{'type':dbH[_0xd01e('0x19')][_0xd01e('0x1d')][_0xd01e('0x1e')]}));}}_0x481644=_0xc0f66a[_0xd01e('0x16')]&&_0x5d577b[_0xd01e('0x1f')]>0x1;if(!fs[_0xd01e('0x20')](path['join'](_0x3fb2bb,_0x242204))&&_0x481644){fs[_0xd01e('0x21')](path['join'](_0x3fb2bb,_0x242204));}return BPromise[_0xd01e('0x22')](_0x5d577b,function(_0x5f3154){_0x47785a['push'](_0x5f3154);});})[_0xd01e('0x18')](function(){return BPromise[_0xd01e('0x22')](_0x5d577b,function(_0x5bec7d,_0x490367){var _0x2f26f8;var _0x3946f8=util['format'](_0xd01e('0x23'),NAME,_extractedReport[_0xd01e('0x24')],moment(_extractedReport['startDate'])[_0xd01e('0x1b')](FORMAT),moment(_extractedReport[_0xd01e('0x25')])[_0xd01e('0x1b')](FORMAT));var _0x37ce91={'pageSize':'A4','pageOrientation':_0xd01e('0x26'),'content':[{'text':_0x3946f8,'style':_0xd01e('0x27')}],'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'}}};var _0x10d5c9={'headerRows':0x1,'body':[]};_0x10d5c9[_0xd01e('0x28')]['push'](getHeader(_0x5bec7d[0x0]));var _0x25c44c;for(var _0x5d0096=0x0;_0x5d0096<_0x5bec7d[_0xd01e('0x1f')];_0x5d0096+=0x1){_0x25c44c=[];for(var _0x3db164 in _0x5bec7d[_0x5d0096]){if(_0x5bec7d[_0x5d0096][_0xd01e('0xc')](_0x3db164)){_0x25c44c[_0xd01e('0xd')](_0x5bec7d[_0x5d0096][_0x3db164]?_[_0xd01e('0x29')](_0x5bec7d[_0x5d0096][_0x3db164]):'');}}_0x10d5c9[_0xd01e('0x28')][_0xd01e('0xd')](_0x25c44c);}_0x37ce91[_0xd01e('0x2a')][_0xd01e('0xd')]({'table':_0x10d5c9});return new BPromise(function(_0x4fcd94,_0x2ee7d4){var _0x326df4=new PdfPrinter({'Roboto':{'normal':__dirname+_0xd01e('0x2b'),'bold':__dirname+_0xd01e('0x2c'),'italics':__dirname+_0xd01e('0x2d'),'bolditalics':__dirname+_0xd01e('0x2e')}});var _0x14c2b2=_0x326df4[_0xd01e('0x2f')](_0x37ce91);if(_0x481644){_0x2f26f8=path[_0xd01e('0x30')](_0x3fb2bb,_0x242204,util['format'](_0xd01e('0x31'),_0x242204,_0x490367,_0xd01e('0x32')));}else{_0x2f26f8=path[_0xd01e('0x30')](_0x3fb2bb,util['format'](_0xd01e('0x33'),_0x242204,_0xd01e('0x32')));}var _0x187724=_0x14c2b2['pipe'](fs[_0xd01e('0x34')](_0x2f26f8));_0x187724['on'](_0xd01e('0x35'),function(){_0x4fcd94();});_0x187724['on'](_0xd01e('0x36'),function(_0x2d6235){console[_0xd01e('0x37')](_0xd01e('0x38'),_0x2d6235);_0x2ee7d4(_0x2d6235);});_0x14c2b2[_0xd01e('0x39')]();});});})[_0xd01e('0x18')](function(){if(_0x481644){return new BPromise(function(_0x90accb,_0x23573a){zipdir(path['join'](_0x3fb2bb,_0x242204),{'saveTo':path[_0xd01e('0x30')](_0x3fb2bb,util[_0xd01e('0x1b')](_0xd01e('0x33'),_0x242204,'zip'))},function(_0x5ed4d7){if(_0x5ed4d7){_0x23573a(_0x5ed4d7);}else{_0x90accb();}});});}})['then'](function(){if(_0x481644){rimraf(path['join'](_0x3fb2bb,_0x242204),function(){});}})[_0xd01e('0x18')](function(){logger[_0xd01e('0x3a')](util[_0xd01e('0x1b')](_0xd01e('0x3b'),EXTRACTED_REPORT_ID,_0xd01e('0x3c')));return analyticExtractedReport(_0xd01e('0x3d'),_0x481644?util['format']('%s.%s',_0x242204,_0x481644?'zip':'pdf'):null);});}function main(){logger[_0xd01e('0x3a')](util[_0xd01e('0x1b')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xd01e('0x3e')));return db[_0xd01e('0xb')][_0xd01e('0x3f')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xd01e('0x18')](function(_0x47f5f6){_extractedReport=_0x47f5f6;return dbH[_0xd01e('0x19')]['query'](util[_0xd01e('0x1b')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xd01e('0x19')][_0xd01e('0x1d')]['SELECT']});})[_0xd01e('0x18')](extractReport)[_0xd01e('0x40')](function(_0x336b3c){logger[_0xd01e('0x3a')](util['format'](_0xd01e('0x41'),EXTRACTED_REPORT_ID,_0xd01e('0x3e')),util[_0xd01e('0x42')](_0x336b3c,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xd01e('0x43'));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x684f=['format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','then','sequelize','query','SELECT','num','length','%s\x20limit\x20%d\x20OFFSET\x20%d','push','QueryTypes','dirname','.xlsx','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path','json2xls','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info'];(function(_0x165f36,_0x5917ed){var _0x5eb673=function(_0xf2504f){while(--_0xf2504f){_0x165f36['push'](_0x165f36['shift']());}};_0x5eb673(++_0x5917ed);}(_0x684f,0x14c));var _0xf684=function(_0x576cd5,_0x48085b){_0x576cd5=_0x576cd5-0x0;var _0x1b1bb1=_0x684f[_0x576cd5];return _0x1b1bb1;};'use strict';var util=require(_0xf684('0x0'));var path=require(_0xf684('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0xf684('0x2'));var BPromise=require('bluebird');var zipdir=require(_0xf684('0x3'));var rimraf=require(_0xf684('0x4'));var db=require(_0xf684('0x5'))['db'];var dbH=require(_0xf684('0x5'))['dbH'];var logger=require(_0xf684('0x6'))(_0xf684('0x7'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0xf684('0x8')][0x4];function analyticExtractedReport(_0x221dac,_0x34cff3){var _0x18567a={'status':_0x221dac};var _0x45f928={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x34cff3){_0x18567a[_0xf684('0x9')]=_0x34cff3;}return db[_0xf684('0xa')]['update'](_0x18567a,_0x45f928);}function main(){var _0x51091f=0x1388;var _0x15055d;logger[_0xf684('0xb')](util[_0xf684('0xc')](_0xf684('0xd'),EXTRACTED_REPORT_ID,_0xf684('0xe')));return db[_0xf684('0xf')][_0xf684('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xf684('0x11'),_0xf684('0x12')]})[_0xf684('0x13')](function(_0x2ff01a){if(_0x2ff01a){_0x15055d=_0x2ff01a;_0x51091f=_0x15055d[_0xf684('0x12')]||0x1388;}})[_0xf684('0x13')](function(){return dbH[_0xf684('0x14')][_0xf684('0x15')](util[_0xf684('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes'][_0xf684('0x16')]});})[_0xf684('0x13')](function(_0x739b70){if(!_0x739b70[0x0][_0xf684('0x17')]){return analyticExtractedReport('Empty');}var _0x3c6d86=[];var _0x57808b=0x0;var _0x52efc5=!![];if(_0x15055d[_0xf684('0x11')]){if(_0x739b70&&_0x739b70[_0xf684('0x18')]){var _0x193946=_0x739b70[0x0][_0xf684('0x17')]%(_0x57808b+_0x51091f);for(;_0x52efc5;_0x57808b+=_0x51091f,_0x193946=_0x739b70[0x0][_0xf684('0x17')]%(_0x57808b+_0x51091f)){if(_0x193946==0x0||_0x193946==_0x739b70[0x0]['num']){_0x52efc5=![];}_0x3c6d86['push'](dbH[_0xf684('0x14')]['query'](util[_0xf684('0xc')](_0xf684('0x19'),QUERY,_0x51091f,_0x57808b),{'type':dbH[_0xf684('0x14')]['QueryTypes'][_0xf684('0x16')]}));}}}else{_0x3c6d86[_0xf684('0x1a')](dbH['sequelize'][_0xf684('0x15')](QUERY,{'type':dbH['sequelize'][_0xf684('0x1b')][_0xf684('0x16')]}));}var _0x4d033f=path[_0xf684('0x1c')](PATH);var _0xb029c3=path['basename'](PATH,_0xf684('0x1d'));var _0x5cbc2e=_0x15055d[_0xf684('0x11')]&&_0x3c6d86[_0xf684('0x18')]>0x1;var _0x9dcac9=[];if(!fs[_0xf684('0x1e')](path[_0xf684('0x1f')](_0x4d033f,_0xb029c3))&&_0x5cbc2e){fs[_0xf684('0x20')](path['join'](_0x4d033f,_0xb029c3));}return BPromise[_0xf684('0x21')](_0x3c6d86,function(_0x423c9f){_0x9dcac9[_0xf684('0x1a')](_0x423c9f);})[_0xf684('0x13')](function(){for(var _0x735491=0x0;_0x735491<_0x9dcac9[_0xf684('0x18')];_0x735491+=0x1){var _0x2d3e0e;var _0x23dab3=_0x9dcac9[_0x735491];if(_0x5cbc2e){_0x2d3e0e=path[_0xf684('0x1f')](_0x4d033f,_0xb029c3,util[_0xf684('0xc')](_0xf684('0x22'),_0xb029c3,_0x735491,_0xf684('0x23')));}else{_0x2d3e0e=path[_0xf684('0x1f')](_0x4d033f,util['format'](_0xf684('0x24'),_0xb029c3,_0xf684('0x23')));}fs['writeFileSync'](_0x2d3e0e,json2xls(_0x23dab3),'binary');}})[_0xf684('0x13')](function(){if(_0x5cbc2e){zipdir(path[_0xf684('0x1f')](_0x4d033f,_0xb029c3),{'saveTo':path[_0xf684('0x1f')](_0x4d033f,util[_0xf684('0xc')](_0xf684('0x24'),_0xb029c3,_0xf684('0x25')))},function(_0x2ee7fb,_0x59cdd8){});rimraf(path[_0xf684('0x1f')](_0x4d033f,_0xb029c3),function(){});}})[_0xf684('0x13')](function(){logger[_0xf684('0xb')](util[_0xf684('0xc')](_0xf684('0x26'),EXTRACTED_REPORT_ID,_0xf684('0xe')));return analyticExtractedReport(_0xf684('0x27'),_0x5cbc2e?util['format'](_0xf684('0x24'),_0xb029c3,_0x5cbc2e?'zip':_0xf684('0x23')):null);});})['catch'](function(_0x112e4d){logger[_0xf684('0xb')](util[_0xf684('0xc')](_0xf684('0x28'),EXTRACTED_REPORT_ID,'XLSX'),util[_0xf684('0x29')](_0x112e4d,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xf684('0x2a'));});}main();
\ No newline at end of file
+var _0xbb41=['catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path','lodash','json2xls','zip-dir','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','splitSizeXlsx','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','length','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.xlsx','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','writeFileSync','binary','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed'];(function(_0x115b6d,_0x52496b){var _0x5b0063=function(_0xc757ed){while(--_0xc757ed){_0x115b6d['push'](_0x115b6d['shift']());}};_0x5b0063(++_0x52496b);}(_0xbb41,0xf9));var _0x1bb4=function(_0x46fec9,_0x471353){_0x46fec9=_0x46fec9-0x0;var _0x3e1acb=_0xbb41[_0x46fec9];return _0x3e1acb;};'use strict';var util=require(_0x1bb4('0x0'));var path=require(_0x1bb4('0x1'));var _=require(_0x1bb4('0x2'));var fs=require('fs');var json2xls=require(_0x1bb4('0x3'));var BPromise=require('bluebird');var zipdir=require(_0x1bb4('0x4'));var rimraf=require('rimraf');var db=require(_0x1bb4('0x5'))['db'];var dbH=require(_0x1bb4('0x5'))[_0x1bb4('0x6')];var logger=require(_0x1bb4('0x7'))(_0x1bb4('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x1bb4('0x9')][0x2]);var QUERY=process[_0x1bb4('0x9')][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x5852ad,_0x2709c3){var _0x35a03c={'status':_0x5852ad};var _0x1350ae={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2709c3){_0x35a03c[_0x1bb4('0xa')]=_0x2709c3;}return db[_0x1bb4('0xb')][_0x1bb4('0xc')](_0x35a03c,_0x1350ae);}function main(){var _0x19dc22=0x1388;var _0x4bee3f;logger[_0x1bb4('0xd')](util['format'](_0x1bb4('0xe'),EXTRACTED_REPORT_ID,_0x1bb4('0xf')));return db[_0x1bb4('0x10')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x1bb4('0x11')]})[_0x1bb4('0x12')](function(_0x35e6f3){if(_0x35e6f3){_0x4bee3f=_0x35e6f3;_0x19dc22=_0x4bee3f[_0x1bb4('0x11')]||0x1388;}})[_0x1bb4('0x12')](function(){return dbH[_0x1bb4('0x13')][_0x1bb4('0x14')](util[_0x1bb4('0x15')](_0x1bb4('0x16'),QUERY),{'type':dbH[_0x1bb4('0x13')][_0x1bb4('0x17')][_0x1bb4('0x18')]});})['then'](function(_0x73a149){if(!_0x73a149[0x0][_0x1bb4('0x19')]){return analyticExtractedReport(_0x1bb4('0x1a'));}var _0x562002=[];var _0x5d431a=0x0;var _0x538ad1=!![];if(_0x4bee3f[_0x1bb4('0x1b')]){if(_0x73a149&&_0x73a149[_0x1bb4('0x1c')]){var _0x33293c=_0x73a149[0x0][_0x1bb4('0x19')]%(_0x5d431a+_0x19dc22);for(;_0x538ad1;_0x5d431a+=_0x19dc22,_0x33293c=_0x73a149[0x0][_0x1bb4('0x19')]%(_0x5d431a+_0x19dc22)){if(_0x33293c==0x0||_0x33293c==_0x73a149[0x0][_0x1bb4('0x19')]){_0x538ad1=![];}_0x562002[_0x1bb4('0x1d')](dbH[_0x1bb4('0x13')][_0x1bb4('0x14')](util['format'](_0x1bb4('0x1e'),QUERY,_0x19dc22,_0x5d431a),{'type':dbH[_0x1bb4('0x13')][_0x1bb4('0x17')][_0x1bb4('0x18')]}));}}}else{_0x562002[_0x1bb4('0x1d')](dbH['sequelize'][_0x1bb4('0x14')](QUERY,{'type':dbH[_0x1bb4('0x13')][_0x1bb4('0x17')]['SELECT']}));}var _0x5a48d8=path['dirname'](PATH);var _0x2ad897=path[_0x1bb4('0x1f')](PATH,_0x1bb4('0x20'));var _0x13ff26=_0x4bee3f[_0x1bb4('0x1b')]&&_0x562002[_0x1bb4('0x1c')]>0x1;var _0xf29897=[];if(!fs[_0x1bb4('0x21')](path[_0x1bb4('0x22')](_0x5a48d8,_0x2ad897))&&_0x13ff26){fs[_0x1bb4('0x23')](path[_0x1bb4('0x22')](_0x5a48d8,_0x2ad897));}return BPromise[_0x1bb4('0x24')](_0x562002,function(_0x54d766){_0xf29897[_0x1bb4('0x1d')](_0x54d766);})[_0x1bb4('0x12')](function(){for(var _0x21baed=0x0;_0x21baed<_0xf29897[_0x1bb4('0x1c')];_0x21baed+=0x1){var _0x41c6ad;var _0x2abed2=_0xf29897[_0x21baed];if(_0x13ff26){_0x41c6ad=path[_0x1bb4('0x22')](_0x5a48d8,_0x2ad897,util[_0x1bb4('0x15')](_0x1bb4('0x25'),_0x2ad897,_0x21baed,'xlsx'));}else{_0x41c6ad=path[_0x1bb4('0x22')](_0x5a48d8,util[_0x1bb4('0x15')]('%s.%s',_0x2ad897,_0x1bb4('0x26')));}fs[_0x1bb4('0x27')](_0x41c6ad,json2xls(_0x2abed2),_0x1bb4('0x28'));}})[_0x1bb4('0x12')](function(){if(_0x13ff26){zipdir(path[_0x1bb4('0x22')](_0x5a48d8,_0x2ad897),{'saveTo':path[_0x1bb4('0x22')](_0x5a48d8,util['format'](_0x1bb4('0x29'),_0x2ad897,_0x1bb4('0x2a')))},function(_0x153e78,_0x379ed0){});rimraf(path[_0x1bb4('0x22')](_0x5a48d8,_0x2ad897),function(){});}})[_0x1bb4('0x12')](function(){logger[_0x1bb4('0xd')](util[_0x1bb4('0x15')](_0x1bb4('0x2b'),EXTRACTED_REPORT_ID,_0x1bb4('0xf')));return analyticExtractedReport(_0x1bb4('0x2c'),_0x13ff26?util[_0x1bb4('0x15')](_0x1bb4('0x29'),_0x2ad897,_0x13ff26?_0x1bb4('0x2a'):'xlsx'):null);});})[_0x1bb4('0x2d')](function(_0xd7024c){logger[_0x1bb4('0xd')](util[_0x1bb4('0x15')](_0x1bb4('0x2e'),EXTRACTED_REPORT_ID,_0x1bb4('0xf')),util[_0x1bb4('0x2f')](_0xd7024c,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x1bb4('0x30'));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7016=['tag','push','Set','CDR(tag)=','context','callerID','CALLERID(all)=','answer','indexOf','app','toLowerCase','appType','custom','record','recordingFormat','MixMonitor','StopMixMonitor','splice','GotoIfTime',',${EXTEN},','last','Hangup','concat','transaction','bulkCreate','sortBy','catch','error','util','findAll','then','intervals','models','VoiceExtension','IntervalId','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','groupBy','queue','playback','hasOwnProperty','progress','priority','extensions','type','exten','format','VoiceExtensionId','length','createdAt','updatedAt','interval','filter'];(function(_0x581af1,_0x4f02c5){var _0x54c22e=function(_0x5a7a5a){while(--_0x5a7a5a){_0x581af1['push'](_0x581af1['shift']());}};_0x54c22e(++_0x4f02c5);}(_0x7016,0x88));var _0x6701=function(_0x5a8c30,_0x43018f){_0x5a8c30=_0x5a8c30-0x0;var _0x51026a=_0x7016[_0x5a8c30];return _0x51026a;};'use strict';var _=require('lodash');var util=require(_0x6701('0x0'));function rewrite(_0xd6716f,_0xf865c8){var _0x5e38a5=this;return _0xd6716f['models']['Interval'][_0x6701('0x1')]({'raw':!![]})[_0x6701('0x2')](function(_0xeb2427){_0x5e38a5[_0x6701('0x3')]=_0xeb2427;return _0xd6716f[_0x6701('0x4')][_0x6701('0x5')][_0x6701('0x1')]({'where':{'IntervalId':_0xf865c8[_0x6701('0x6')]},'raw':!![]});})['then'](function(_0x5209a1){return _0xd6716f['models']['VoiceExtension']['findAll']({'where':{'exten':{'$in':_[_0x6701('0x7')](_[_0x6701('0x8')](_0x5209a1,'exten'))},'isApp':!![]},'order':[{'raw':_0x6701('0x9')}],'raw':!![]});})[_0x6701('0x2')](function(_0x4a7bc6){var _0x52275f=_[_0x6701('0xa')](_0x4a7bc6,'exten');var _0x2292e5=[_0x6701('0xb'),_0x6701('0xc')];var _0x5e33e7=[];var _0x339c55=[];for(var _0x417a09 in _0x52275f){if(_0x52275f[_0x6701('0xd')](_0x417a09)){_0x5e38a5['answer']=![];_0x5e38a5[_0x6701('0xe')]=![];_0x5e38a5[_0x6701('0xf')]=0x2;_0x5e38a5[_0x6701('0x10')]=[];_0x5e38a5[_0x6701('0x10')]['push']({'type':_0x52275f[_0x417a09][0x0][_0x6701('0x11')],'context':_0x52275f[_0x417a09][0x0]['context'],'exten':_0x52275f[_0x417a09][0x0][_0x6701('0x12')],'priority':_0x5e38a5['priority']++,'app':'Set','appdata':util[_0x6701('0x13')]('CDR(type)=%s',_0x52275f[_0x417a09][0x0][_0x6701('0x11')]),'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});for(var _0x2e1133=0x0,_0x55c811=0x0;_0x2e1133<_0x52275f[_0x417a09][_0x6701('0x15')];_0x2e1133+=0x1,_0x55c811=0x0){var _0x2b90ac=_0x52275f[_0x417a09][_0x2e1133];var _0x24559f=[];var _0xd295b5=[];delete _0x2b90ac['id'];delete _0x2b90ac[_0x6701('0x16')];delete _0x2b90ac[_0x6701('0x17')];var _0x313e92=_0x2b90ac[_0x6701('0x18')]!=='*,*,*,*'?[_0x2b90ac[_0x6701('0x18')]]:_0x2b90ac[_0x6701('0x6')]?_[_0x6701('0x8')](_[_0x6701('0x19')](_0x5e38a5['intervals'],{'IntervalId':_0x2b90ac[_0x6701('0x6')]}),_0x6701('0x18')):[];if(_0x2b90ac[_0x6701('0xd')](_0x6701('0x1a'))){if(_0x2b90ac[_0x6701('0x1a')]&&_0x2b90ac[_0x6701('0x1a')]!=='--'){_0x24559f[_0x6701('0x1b')]({'type':_0x2b90ac['type'],'app':_0x6701('0x1c'),'appdata':_0x6701('0x1d')+_0x2b90ac[_0x6701('0x1a')],'context':_0x2b90ac[_0x6701('0x1e')],'exten':_0x2b90ac[_0x6701('0x12')],'priority':_0x313e92[_0x6701('0x15')]+_0x5e38a5[_0x6701('0xf')]+_0x55c811++,'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});}}if(_0x2b90ac[_0x6701('0xd')](_0x6701('0x1f'))){if(_0x2b90ac[_0x6701('0x1f')]){_0x24559f['push']({'type':_0x2b90ac[_0x6701('0x11')],'app':'Set','appdata':_0x6701('0x20')+_0x2b90ac['callerID'],'context':_0x2b90ac[_0x6701('0x1e')],'exten':_0x2b90ac[_0x6701('0x12')],'priority':_0x313e92['length']+_0x5e38a5[_0x6701('0xf')]+_0x55c811++,'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});}}if(_0x2b90ac[_0x6701('0xd')](_0x6701('0x21'))){if(_0x2292e5[_0x6701('0x22')](_0x2b90ac[_0x6701('0x23')][_0x6701('0x24')]())>=0x0&&_0x2b90ac[_0x6701('0x25')]!==_0x6701('0x26')){if(!_0x5e38a5['answer']&&_0x2b90ac[_0x6701('0x21')]){_0x5e38a5['answer']=!![];_0x24559f[_0x6701('0x1b')]({'type':_0x2b90ac[_0x6701('0x11')],'app':'Answer','context':_0x2b90ac['context'],'exten':_0x2b90ac[_0x6701('0x12')],'priority':_0x313e92['length']+_0x5e38a5[_0x6701('0xf')]+_0x55c811++,'VoiceExtensionId':_0x52275f[_0x417a09][0x0]['VoiceExtensionId']});}if(!_0x5e38a5[_0x6701('0x21')]&&!_0x5e38a5[_0x6701('0xe')]&&!_0x2b90ac['answer']){_0x5e38a5[_0x6701('0xe')]=!![];_0x24559f[_0x6701('0x1b')]({'type':_0x2b90ac[_0x6701('0x11')],'app':'Progress','context':_0x2b90ac['context'],'exten':_0x2b90ac[_0x6701('0x12')],'priority':_0x313e92[_0x6701('0x15')]+_0x5e38a5[_0x6701('0xf')]+_0x55c811++,'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});}}}if(_0x2b90ac['hasOwnProperty'](_0x6701('0x27'))&&_0x2b90ac['hasOwnProperty'](_0x6701('0x28'))){if(_0x2b90ac['record']){_0x24559f[_0x6701('0x1b')]({'type':_0x2b90ac[_0x6701('0x11')],'app':_0x6701('0x29'),'appdata':'${UNIQUEID}.'+_0x2b90ac[_0x6701('0x28')]+',ab','context':_0x2b90ac[_0x6701('0x1e')],'exten':_0x2b90ac[_0x6701('0x12')],'priority':_0x313e92['length']+_0x5e38a5['priority']+_0x55c811++,'VoiceExtensionId':_0x52275f[_0x417a09][0x0]['VoiceExtensionId']});}}if(_0x2b90ac['hasOwnProperty'](_0x6701('0x27'))&&_0x2b90ac['hasOwnProperty'](_0x6701('0x28'))){if(_0x2b90ac[_0x6701('0x27')]){_0xd295b5[_0x6701('0x1b')]({'type':_0x2b90ac[_0x6701('0x11')],'app':_0x6701('0x2a'),'appdata':null,'context':_0x2b90ac['context'],'exten':_0x2b90ac[_0x6701('0x12')],'priority':_0x313e92[_0x6701('0x15')]+_0x5e38a5[_0x6701('0xf')]+_0x55c811++ +0x1,'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});}}for(var _0x1a647a=0x0;_0x1a647a<_0x313e92[_0x6701('0x15')];_0x1a647a+=0x1){var _0x2ae6c2=_0x5e38a5['priority']+_0x313e92[_0x6701('0x15')];var _0x2152a6=_0x1a647a===_0x313e92['length']-0x1?_0x5e38a5[_0x6701('0xf')]+_0x24559f[_0x6701('0x15')]+_0xd295b5[_0x6701('0x15')]+0x2:_0x5e38a5[_0x6701('0xf')]+_0x1a647a+0x1;_0x24559f[_0x6701('0x2b')](_0x1a647a,0x0,{'type':_0x2b90ac[_0x6701('0x11')],'app':_0x6701('0x2c'),'appdata':_0x313e92[_0x1a647a]+'?'+_0x2b90ac[_0x6701('0x1e')]+_0x6701('0x2d')+_0x2ae6c2+':'+_0x2b90ac[_0x6701('0x1e')]+_0x6701('0x2d')+_0x2152a6,'exten':_0x2b90ac['exten'],'context':_0x2b90ac[_0x6701('0x1e')],'priority':_0x5e38a5['priority']+_0x1a647a,'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});}_0x2b90ac[_0x6701('0xf')]=_0x24559f[_0x6701('0x15')]?_['last'](_0x24559f)[_0x6701('0xf')]+0x1:_0x5e38a5[_0x6701('0xf')];_0x5e38a5[_0x6701('0xf')]=(_0xd295b5[_0x6701('0x15')]?_[_0x6701('0x2e')](_0xd295b5)[_0x6701('0xf')]:_0x2b90ac[_0x6701('0xf')])+0x1;_0x5e38a5[_0x6701('0x10')]=_['concat'](_0x5e38a5[_0x6701('0x10')],_0x24559f,[_0x2b90ac],_0xd295b5);}_0x5e38a5[_0x6701('0x10')]['push']({'type':_0x52275f[_0x417a09][0x0][_0x6701('0x11')],'app':_0x6701('0x2f'),'exten':_0x52275f[_0x417a09][0x0][_0x6701('0x12')],'context':_0x52275f[_0x417a09][0x0][_0x6701('0x1e')],'priority':_0x5e38a5[_0x6701('0xf')],'VoiceExtensionId':_0x52275f[_0x417a09][0x0][_0x6701('0x14')]});_0x5e33e7[_0x6701('0x1b')](_0x52275f[_0x417a09][0x0][_0x6701('0x14')]);_0x339c55=_[_0x6701('0x30')](_0x339c55,_0x5e38a5['extensions']);}}return _0xd6716f[_0x6701('0x31')](function(_0x3279ba){return _0xd6716f['models'][_0x6701('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x5e33e7}},'transaction':_0x3279ba})[_0x6701('0x2')](function(_0x47f2b5){return _0xd6716f['models'][_0x6701('0x5')][_0x6701('0x32')](_[_0x6701('0x33')](_0x339c55,'priority'),{'transaction':_0x3279ba});});});})[_0x6701('0x34')](function(_0x4e6d48){console[_0x6701('0x35')](_0x4e6d48);});}exports['rewrite']=rewrite;
\ No newline at end of file
+var _0x45ae=['MixMonitor','${UNIQUEID}.',',ab','StopMixMonitor','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','VoiceExtension','destroy','sortBy','catch','error','lodash','util','then','intervals','models','findAll','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','groupBy','queue','playback','hasOwnProperty','progress','priority','extensions','push','context','CDR(type)=%s','VoiceExtensionId','createdAt','updatedAt','interval','filter','tag','Set','length','callerID','type','CALLERID(all)=','answer','indexOf','app','toLowerCase','appType','Answer','Progress','record','recordingFormat'];(function(_0x3af8af,_0x3c66fe){var _0x367c9b=function(_0x4a76c4){while(--_0x4a76c4){_0x3af8af['push'](_0x3af8af['shift']());}};_0x367c9b(++_0x3c66fe);}(_0x45ae,0x15f));var _0xe45a=function(_0x57486f,_0x303fda){_0x57486f=_0x57486f-0x0;var _0x442443=_0x45ae[_0x57486f];return _0x442443;};'use strict';var _=require(_0xe45a('0x0'));var util=require(_0xe45a('0x1'));function rewrite(_0x3b806a,_0x5442ef){var _0x4a502c=this;return _0x3b806a['models']['Interval']['findAll']({'raw':!![]})[_0xe45a('0x2')](function(_0x4c6688){_0x4a502c[_0xe45a('0x3')]=_0x4c6688;return _0x3b806a[_0xe45a('0x4')]['VoiceExtension'][_0xe45a('0x5')]({'where':{'IntervalId':_0x5442ef[_0xe45a('0x6')]},'raw':!![]});})[_0xe45a('0x2')](function(_0x580855){return _0x3b806a['models']['VoiceExtension']['findAll']({'where':{'exten':{'$in':_[_0xe45a('0x7')](_[_0xe45a('0x8')](_0x580855,_0xe45a('0x9')))},'isApp':!![]},'order':[{'raw':_0xe45a('0xa')}],'raw':!![]});})[_0xe45a('0x2')](function(_0x50d0d3){var _0x11066e=_[_0xe45a('0xb')](_0x50d0d3,_0xe45a('0x9'));var _0x4855b9=[_0xe45a('0xc'),_0xe45a('0xd')];var _0x269768=[];var _0x169f5d=[];for(var _0x2e0538 in _0x11066e){if(_0x11066e[_0xe45a('0xe')](_0x2e0538)){_0x4a502c['answer']=![];_0x4a502c[_0xe45a('0xf')]=![];_0x4a502c[_0xe45a('0x10')]=0x2;_0x4a502c[_0xe45a('0x11')]=[];_0x4a502c['extensions'][_0xe45a('0x12')]({'type':_0x11066e[_0x2e0538][0x0]['type'],'context':_0x11066e[_0x2e0538][0x0][_0xe45a('0x13')],'exten':_0x11066e[_0x2e0538][0x0][_0xe45a('0x9')],'priority':_0x4a502c[_0xe45a('0x10')]++,'app':'Set','appdata':util['format'](_0xe45a('0x14'),_0x11066e[_0x2e0538][0x0]['type']),'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});for(var _0x5e7795=0x0,_0x58b0d5=0x0;_0x5e7795<_0x11066e[_0x2e0538]['length'];_0x5e7795+=0x1,_0x58b0d5=0x0){var _0x1c5470=_0x11066e[_0x2e0538][_0x5e7795];var _0xd277c0=[];var _0x138a40=[];delete _0x1c5470['id'];delete _0x1c5470[_0xe45a('0x16')];delete _0x1c5470[_0xe45a('0x17')];var _0x4f398d=_0x1c5470['interval']!=='*,*,*,*'?[_0x1c5470[_0xe45a('0x18')]]:_0x1c5470[_0xe45a('0x6')]?_[_0xe45a('0x8')](_[_0xe45a('0x19')](_0x4a502c['intervals'],{'IntervalId':_0x1c5470[_0xe45a('0x6')]}),_0xe45a('0x18')):[];if(_0x1c5470[_0xe45a('0xe')]('tag')){if(_0x1c5470[_0xe45a('0x1a')]&&_0x1c5470[_0xe45a('0x1a')]!=='--'){_0xd277c0[_0xe45a('0x12')]({'type':_0x1c5470['type'],'app':_0xe45a('0x1b'),'appdata':'CDR(tag)='+_0x1c5470['tag'],'context':_0x1c5470['context'],'exten':_0x1c5470[_0xe45a('0x9')],'priority':_0x4f398d[_0xe45a('0x1c')]+_0x4a502c[_0xe45a('0x10')]+_0x58b0d5++,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});}}if(_0x1c5470[_0xe45a('0xe')](_0xe45a('0x1d'))){if(_0x1c5470[_0xe45a('0x1d')]){_0xd277c0[_0xe45a('0x12')]({'type':_0x1c5470[_0xe45a('0x1e')],'app':_0xe45a('0x1b'),'appdata':_0xe45a('0x1f')+_0x1c5470[_0xe45a('0x1d')],'context':_0x1c5470[_0xe45a('0x13')],'exten':_0x1c5470['exten'],'priority':_0x4f398d[_0xe45a('0x1c')]+_0x4a502c[_0xe45a('0x10')]+_0x58b0d5++,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0]['VoiceExtensionId']});}}if(_0x1c5470[_0xe45a('0xe')](_0xe45a('0x20'))){if(_0x4855b9[_0xe45a('0x21')](_0x1c5470[_0xe45a('0x22')][_0xe45a('0x23')]())>=0x0&&_0x1c5470[_0xe45a('0x24')]!=='custom'){if(!_0x4a502c['answer']&&_0x1c5470['answer']){_0x4a502c[_0xe45a('0x20')]=!![];_0xd277c0[_0xe45a('0x12')]({'type':_0x1c5470['type'],'app':_0xe45a('0x25'),'context':_0x1c5470['context'],'exten':_0x1c5470['exten'],'priority':_0x4f398d['length']+_0x4a502c[_0xe45a('0x10')]+_0x58b0d5++,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});}if(!_0x4a502c['answer']&&!_0x4a502c[_0xe45a('0xf')]&&!_0x1c5470[_0xe45a('0x20')]){_0x4a502c[_0xe45a('0xf')]=!![];_0xd277c0[_0xe45a('0x12')]({'type':_0x1c5470[_0xe45a('0x1e')],'app':_0xe45a('0x26'),'context':_0x1c5470['context'],'exten':_0x1c5470[_0xe45a('0x9')],'priority':_0x4f398d[_0xe45a('0x1c')]+_0x4a502c[_0xe45a('0x10')]+_0x58b0d5++,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});}}}if(_0x1c5470[_0xe45a('0xe')](_0xe45a('0x27'))&&_0x1c5470[_0xe45a('0xe')](_0xe45a('0x28'))){if(_0x1c5470[_0xe45a('0x27')]){_0xd277c0['push']({'type':_0x1c5470[_0xe45a('0x1e')],'app':_0xe45a('0x29'),'appdata':_0xe45a('0x2a')+_0x1c5470[_0xe45a('0x28')]+_0xe45a('0x2b'),'context':_0x1c5470['context'],'exten':_0x1c5470[_0xe45a('0x9')],'priority':_0x4f398d[_0xe45a('0x1c')]+_0x4a502c[_0xe45a('0x10')]+_0x58b0d5++,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});}}if(_0x1c5470[_0xe45a('0xe')](_0xe45a('0x27'))&&_0x1c5470[_0xe45a('0xe')](_0xe45a('0x28'))){if(_0x1c5470[_0xe45a('0x27')]){_0x138a40['push']({'type':_0x1c5470[_0xe45a('0x1e')],'app':_0xe45a('0x2c'),'appdata':null,'context':_0x1c5470[_0xe45a('0x13')],'exten':_0x1c5470[_0xe45a('0x9')],'priority':_0x4f398d[_0xe45a('0x1c')]+_0x4a502c[_0xe45a('0x10')]+_0x58b0d5++ +0x1,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});}}for(var _0x357367=0x0;_0x357367<_0x4f398d[_0xe45a('0x1c')];_0x357367+=0x1){var _0x476cf9=_0x4a502c['priority']+_0x4f398d[_0xe45a('0x1c')];var _0x31fa9b=_0x357367===_0x4f398d[_0xe45a('0x1c')]-0x1?_0x4a502c['priority']+_0xd277c0[_0xe45a('0x1c')]+_0x138a40[_0xe45a('0x1c')]+0x2:_0x4a502c[_0xe45a('0x10')]+_0x357367+0x1;_0xd277c0['splice'](_0x357367,0x0,{'type':_0x1c5470[_0xe45a('0x1e')],'app':_0xe45a('0x2d'),'appdata':_0x4f398d[_0x357367]+'?'+_0x1c5470[_0xe45a('0x13')]+_0xe45a('0x2e')+_0x476cf9+':'+_0x1c5470[_0xe45a('0x13')]+',${EXTEN},'+_0x31fa9b,'exten':_0x1c5470['exten'],'context':_0x1c5470[_0xe45a('0x13')],'priority':_0x4a502c[_0xe45a('0x10')]+_0x357367,'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});}_0x1c5470[_0xe45a('0x10')]=_0xd277c0[_0xe45a('0x1c')]?_[_0xe45a('0x2f')](_0xd277c0)[_0xe45a('0x10')]+0x1:_0x4a502c['priority'];_0x4a502c[_0xe45a('0x10')]=(_0x138a40[_0xe45a('0x1c')]?_['last'](_0x138a40)[_0xe45a('0x10')]:_0x1c5470[_0xe45a('0x10')])+0x1;_0x4a502c[_0xe45a('0x11')]=_[_0xe45a('0x30')](_0x4a502c[_0xe45a('0x11')],_0xd277c0,[_0x1c5470],_0x138a40);}_0x4a502c[_0xe45a('0x11')][_0xe45a('0x12')]({'type':_0x11066e[_0x2e0538][0x0]['type'],'app':_0xe45a('0x31'),'exten':_0x11066e[_0x2e0538][0x0][_0xe45a('0x9')],'context':_0x11066e[_0x2e0538][0x0][_0xe45a('0x13')],'priority':_0x4a502c['priority'],'VoiceExtensionId':_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]});_0x269768['push'](_0x11066e[_0x2e0538][0x0][_0xe45a('0x15')]);_0x169f5d=_['concat'](_0x169f5d,_0x4a502c[_0xe45a('0x11')]);}}return _0x3b806a[_0xe45a('0x32')](function(_0xda710d){return _0x3b806a[_0xe45a('0x4')][_0xe45a('0x33')][_0xe45a('0x34')]({'where':{'VoiceExtensionId':{'$in':_0x269768}},'transaction':_0xda710d})[_0xe45a('0x2')](function(_0x4c03a2){return _0x3b806a[_0xe45a('0x4')][_0xe45a('0x33')]['bulkCreate'](_[_0xe45a('0x35')](_0x169f5d,_0xe45a('0x10')),{'transaction':_0xda710d});});});})[_0xe45a('0x36')](function(_0x548032){console[_0xe45a('0x37')](_0x548032);});}exports['rewrite']=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d57=['str','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper_final','\x20=\x20?','cm_contacts','cm_hopper_black','VoiceQueue','findAll','CmList','Lists','get','dialCheckDuplicateType','always','sequelize','query','VoiceQueueId','onlyIfOpen','all','outbound','CampaignId','Campaign','BlackLists','cmContact,\x20%s,\x20%s','Error\x20processing\x20rows\x20block:','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','CSV\x20import\x20process\x20stopped!','CmContact','createReadStream','parse','pause','info','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','../../../config/environment','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','undefined','argv','null','zipObject','split','Missing\x20ListId\x20parameter!','error','contact','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','map','errors','message','join','hasOwnProperty','data','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','email','email\x20format\x20is\x20not\x20valid!','length','duplicate','Duplicate\x20Contact','create','keys','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','insert','into','fromQuery','phone','scheduledAt','ContactId','ListId','createdAt','updatedAt','select','field','NOW()','toString','from','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','cm_hopper','id\x20IN\x20?'];(function(_0x4ec9e3,_0x15fbf4){var _0x2883ce=function(_0x3e9998){while(--_0x3e9998){_0x4ec9e3['push'](_0x4ec9e3['shift']());}};_0x2883ce(++_0x15fbf4);}(_0x6d57,0x104));var _0x76d5=function(_0x74ffc6,_0xf03237){_0x74ffc6=_0x74ffc6-0x0;var _0x5dea3c=_0x6d57[_0x74ffc6];return _0x5dea3c;};'use strict';var BPromise=require(_0x76d5('0x0'));var util=require(_0x76d5('0x1'));var _=require(_0x76d5('0x2'));var fs=require('fs');var squel=require(_0x76d5('0x3'));var Papa=require('papaparse');var db=require('../../../mysqldb')['db'];var config=require(_0x76d5('0x4'));var logger=require('../../../config/logger')(_0x76d5('0x5'));config[_0x76d5('0x6')]=_[_0x76d5('0x7')](config['redis'],{'host':_0x76d5('0x8'),'port':0x18eb});var socket=require(_0x76d5('0x9'))(config[_0x76d5('0x6')]);require(_0x76d5('0xa'))[_0x76d5('0xb')](socket);try{if(!process['argv'][0x2]||process['argv'][0x2]===_0x76d5('0xc')||process[_0x76d5('0xd')][0x2]===_0x76d5('0xe')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0x76d5('0xd')][0x2];if(!process['argv'][0x3]||process[_0x76d5('0xd')][0x3]===_0x76d5('0xc')||process[_0x76d5('0xd')][0x3]===_0x76d5('0xe')||!process[_0x76d5('0xd')][0x4]||process[_0x76d5('0xd')][0x4]===_0x76d5('0xc')||process[_0x76d5('0xd')][0x4]===_0x76d5('0xe')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x76d5('0xf')](process['argv'][0x3]['split'](','),process[_0x76d5('0xd')][0x4][_0x76d5('0x10')](','));if(!process['argv'][0x5]||process[_0x76d5('0xd')][0x5]==='undefined'||process[_0x76d5('0xd')][0x5]==='null'){throw new Error(_0x76d5('0x11'));}var LISTID=process[_0x76d5('0xd')][0x5];var COMPANYID=process[_0x76d5('0xd')][0x6]&&process[_0x76d5('0xd')][0x6]!==_0x76d5('0xc')&&process[_0x76d5('0xd')][0x6]!==_0x76d5('0xe')?process['argv'][0x6]:null;var DUPLICATES=process[_0x76d5('0xd')][0x7]&&process[_0x76d5('0xd')][0x7]!==_0x76d5('0xc')&&process[_0x76d5('0xd')][0x7]!==_0x76d5('0xe')?process[_0x76d5('0xd')][0x7]:null;if(!process[_0x76d5('0xd')][0x8]||process['argv'][0x8]===_0x76d5('0xc')||process[_0x76d5('0xd')][0x8]==='null'){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x889f50){logger[_0x76d5('0x12')](_0x889f50);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x571247,_0x44e280,_0x155045,_0x3fc71e){var _0x3fc334={'message':_0x44e280};_0x3fc334[_0x571247]=!![];if(_0x155045){_0x3fc334[_0x76d5('0x13')]=_0x155045;}if(_0x3fc71e){_0x3fc334[_0x76d5('0x14')]=_0x3fc71e;}return _0x3fc334;}function isEmail(_0x3d10dc){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x76d5('0x15')](_0x3d10dc);}function checkRow(_0x14463b,_0x4315b6,_0x161159){return new BPromise(function(_0x183c05,_0x47136f){if(_[_0x76d5('0x16')](_0x14463b)){return _0x47136f(handleCheckRowError(_0x76d5('0x12'),_0x76d5('0x17'),null,_0x161159));}if(_0x14463b['errors']&&_0x14463b['errors']['length']){var _0x5615dd=_[_0x76d5('0x18')](_0x14463b[_0x76d5('0x19')],_0x76d5('0x1a'))[_0x76d5('0x1b')](';');return _0x47136f(handleCheckRowError(_0x76d5('0x12'),_0x5615dd,null,_0x161159));}var _0x3af8a3={};for(var _0x4a1b3d in FIELDS){if(FIELDS[_0x76d5('0x1c')](_0x4a1b3d)&&FIELDS[_0x4a1b3d]){_0x3af8a3[_0x4a1b3d]=_0x14463b['data'][0x0][FIELDS[_0x4a1b3d]]||_0x14463b[_0x76d5('0x1d')][0x0]['\ufeff'+FIELDS[_0x4a1b3d]];}}if(!_0x3af8a3['firstName']){return _0x47136f(handleCheckRowError(_0x76d5('0x12'),_0x76d5('0x1e'),null,_0x161159));}if(!_0x3af8a3['phone']){return _0x47136f(handleCheckRowError(_0x76d5('0x12'),_0x76d5('0x1f'),null,_0x161159));}if(_0x3af8a3['birthDate']){var _0x518390=moment(_0x3af8a3[_0x76d5('0x20')],_0x76d5('0x21'));if(!_0x518390[_0x76d5('0x22')]()){return _0x47136f(handleCheckRowError('error','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x161159));}}if(_0x3af8a3[_0x76d5('0x23')]){if(!isEmail(_0x3af8a3[_0x76d5('0x23')])){return _0x47136f(handleCheckRowError(_0x76d5('0x12'),_0x76d5('0x24'),null,_0x161159));}}_0x3af8a3['ListId']=LISTID;_0x3af8a3['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x76d5('0x25')]&&_0x4315b6){var _0x320883={};for(var _0x499300=0x0,_0x223a51=DUPLICATES[_0x76d5('0x25')];_0x499300<_0x223a51;_0x499300+=0x1){_0x320883[DUPLICATES[_0x499300]]=_0x3af8a3[DUPLICATES[_0x499300]];}var _0x326e65=_['find'](_0x4315b6,_0x320883);if(_0x326e65){return _0x47136f(handleCheckRowError(_0x76d5('0x26'),_0x76d5('0x27'),_0x326e65,_0x161159));}}return db['CmContact'][_0x76d5('0x28')](_0x3af8a3,{'raw':!![],'hooks':![],'fields':_[_0x76d5('0x29')](_0x3af8a3)})[_0x76d5('0x2a')](function(_0x50cf0b){if(DUPLICATES&&DUPLICATES['length']&&_0x4315b6){_0x4315b6[_0x76d5('0x2b')](_[_0x76d5('0x2c')](_0x3af8a3,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x50cf0b['id'];return _0x183c05();})[_0x76d5('0x2d')](function(_0x150e77){return _0x47136f(handleCheckRowError(_0x76d5('0x12'),_0x76d5('0x2e')+(_0x150e77[_0x76d5('0x1a')]||JSON[_0x76d5('0x2f')](_0x150e77)),null,_0x161159));});});}function checkHopper(){function _0x1ae098(){return function(_0x500b8d){logger[_0x76d5('0x12')](_0x76d5('0x30'),_0x76d5('0x31'),util[_0x76d5('0x32')](_0x500b8d,{'showHidden':![],'depth':null}));};}var _0x4a4ea0=function(_0x12ace1,_0x408946){var _0x2b5e93=squel[_0x76d5('0x33')]()[_0x76d5('0x34')]('cm_hopper')[_0x76d5('0x35')]([_0x76d5('0x36'),_0x76d5('0x37'),_0x76d5('0x38'),_0x76d5('0x39'),_0x408946,_0x76d5('0x3a'),_0x76d5('0x3b')],squel[_0x76d5('0x3c')]()['field']('phone','phone')[_0x76d5('0x3d')](_0x76d5('0x3e'),_0x76d5('0x37'))[_0x76d5('0x3d')]('id',_0x76d5('0x38'))['field'](LISTID['toString'](),'ListId')[_0x76d5('0x3d')](_0x12ace1['id'][_0x76d5('0x3f')](),_0x408946)['field'](_0x76d5('0x3e'),_0x76d5('0x3a'))[_0x76d5('0x3d')](_0x76d5('0x3e'),_0x76d5('0x3b'))[_0x76d5('0x40')]('cm_contacts')['where'](_0x76d5('0x41'))[_0x76d5('0x42')](_0x76d5('0x43'),LISTID[_0x76d5('0x3f')]())[_0x76d5('0x42')]('phone\x20IS\x20NOT\x20NULL')[_0x76d5('0x42')]('phone\x20NOT\x20IN\x20(?)',squel[_0x76d5('0x3c')]()[_0x76d5('0x3d')](_0x76d5('0x36'))[_0x76d5('0x40')](_0x76d5('0x44'))[_0x76d5('0x42')](_0x408946+'\x20=\x20?',_0x12ace1['id'][_0x76d5('0x3f')]())))[_0x76d5('0x3f')]();return _0x2b5e93;};var _0x308a8a=function(_0x448e09,_0x209180){var _0x11d84a=squel[_0x76d5('0x33')]()[_0x76d5('0x34')]('cm_hopper')[_0x76d5('0x35')]([_0x76d5('0x36'),_0x76d5('0x37'),'ContactId',_0x76d5('0x39'),_0x209180,'createdAt',_0x76d5('0x3b')],squel['select']()[_0x76d5('0x3d')](_0x76d5('0x36'),_0x76d5('0x36'))[_0x76d5('0x3d')]('NOW()','scheduledAt')[_0x76d5('0x3d')]('id',_0x76d5('0x38'))[_0x76d5('0x3d')](LISTID[_0x76d5('0x3f')](),'ListId')[_0x76d5('0x3d')](_0x448e09['id']['toString'](),_0x209180)[_0x76d5('0x3d')](_0x76d5('0x3e'),_0x76d5('0x3a'))[_0x76d5('0x3d')](_0x76d5('0x3e'),'updatedAt')[_0x76d5('0x40')]('cm_contacts')['where'](_0x76d5('0x41'))[_0x76d5('0x42')](_0x76d5('0x43'),LISTID['toString']())[_0x76d5('0x42')](_0x76d5('0x45'),squel[_0x76d5('0x46')](hopperContacts))[_0x76d5('0x42')](_0x76d5('0x47'))[_0x76d5('0x42')](_0x76d5('0x48'),squel[_0x76d5('0x3c')]()[_0x76d5('0x3d')]('calleridnum')[_0x76d5('0x40')](_0x76d5('0x49'))[_0x76d5('0x42')](_0x209180+_0x76d5('0x4a'),_0x448e09['id'][_0x76d5('0x3f')]()))[_0x76d5('0x42')]('phone\x20NOT\x20IN\x20(?)',squel[_0x76d5('0x3c')]()['field']('phone')['from'](_0x76d5('0x44'))['where'](_0x209180+_0x76d5('0x4a'),_0x448e09['id'][_0x76d5('0x3f')]())))[_0x76d5('0x3f')]();return _0x11d84a;};function _0x87f429(_0x47e88b,_0x21abe8){var _0x17ab18=squel[_0x76d5('0x33')]()[_0x76d5('0x34')](_0x76d5('0x44'))[_0x76d5('0x35')](['phone','scheduledAt',_0x76d5('0x38'),_0x76d5('0x39'),_0x21abe8,_0x76d5('0x3a'),_0x76d5('0x3b')],squel['select']()['field'](_0x76d5('0x36'),_0x76d5('0x36'))['field'](_0x76d5('0x3e'),_0x76d5('0x37'))['field']('id',_0x76d5('0x38'))[_0x76d5('0x3d')](LISTID['toString'](),_0x76d5('0x39'))[_0x76d5('0x3d')](_0x47e88b['id'][_0x76d5('0x3f')](),_0x21abe8)[_0x76d5('0x3d')]('NOW()',_0x76d5('0x3a'))[_0x76d5('0x3d')](_0x76d5('0x3e'),_0x76d5('0x3b'))['from'](_0x76d5('0x4b'))[_0x76d5('0x42')](_0x76d5('0x41'))[_0x76d5('0x42')]('ListId\x20=\x20?',LISTID[_0x76d5('0x3f')]())[_0x76d5('0x42')](_0x76d5('0x45'),squel[_0x76d5('0x46')](hopperContacts))['where'](_0x76d5('0x47')))[_0x76d5('0x3f')]();return _0x17ab18;}function _0x4f8e2f(_0x34574b,_0x5e7c22){var _0x3880df=squel[_0x76d5('0x33')]()[_0x76d5('0x34')](_0x76d5('0x4c'))[_0x76d5('0x35')]([_0x76d5('0x36'),_0x76d5('0x38'),_0x76d5('0x39'),_0x5e7c22,'createdAt',_0x76d5('0x3b')],squel[_0x76d5('0x3c')]()[_0x76d5('0x3d')](_0x76d5('0x36'),_0x76d5('0x36'))[_0x76d5('0x3d')]('id',_0x76d5('0x38'))['field'](LISTID[_0x76d5('0x3f')](),_0x76d5('0x39'))[_0x76d5('0x3d')](_0x34574b['id'][_0x76d5('0x3f')](),_0x5e7c22)[_0x76d5('0x3d')](_0x76d5('0x3e'),'createdAt')[_0x76d5('0x3d')](_0x76d5('0x3e'),_0x76d5('0x3b'))['from'](_0x76d5('0x4b'))['where'](_0x76d5('0x41'))[_0x76d5('0x42')](_0x76d5('0x43'),LISTID[_0x76d5('0x3f')]())['where'](_0x76d5('0x45'),squel[_0x76d5('0x46')](hopperContacts))[_0x76d5('0x42')](_0x76d5('0x47')))[_0x76d5('0x3f')]();return _0x3880df;}return db[_0x76d5('0x4d')][_0x76d5('0x4e')]({'where':{'type':'outbound'},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x76d5('0x4f')],'as':_0x76d5('0x50'),'where':{'id':LISTID}}]})[_0x76d5('0x2a')](function(_0x55e192){var _0x2b245b=[];if(_0x55e192){var _0x57468e;for(var _0x486f52=0x0,_0x3e754a;_0x486f52<_0x55e192[_0x76d5('0x25')];_0x486f52+=0x1){_0x3e754a=_0x55e192[_0x486f52][_0x76d5('0x51')]({'plain':!![]});switch(_0x3e754a[_0x76d5('0x52')]){case _0x76d5('0x53'):_0x2b245b[_0x76d5('0x2b')](db[_0x76d5('0x54')][_0x76d5('0x55')](_0x308a8a(_0x3e754a,_0x76d5('0x56')))[_0x76d5('0x2a')](function(){})[_0x76d5('0x2d')](_0x1ae098()));break;case _0x76d5('0x57'):_0x2b245b[_0x76d5('0x2b')](db[_0x76d5('0x54')][_0x76d5('0x55')](_0x4a4ea0(_0x3e754a,'VoiceQueueId'))['then'](function(){})[_0x76d5('0x2d')](_0x1ae098()));break;default:_0x2b245b['push'](db[_0x76d5('0x54')][_0x76d5('0x55')](_0x87f429(_0x3e754a,_0x76d5('0x56')))['then'](function(){})[_0x76d5('0x2d')](_0x1ae098()));}}}return _0x2b245b;})[_0x76d5('0x58')]()[_0x76d5('0x2a')](function(){return db['VoiceQueue'][_0x76d5('0x4e')]({'where':{'type':_0x76d5('0x59')},'attributes':['id'],'include':[{'model':db[_0x76d5('0x4f')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x76d5('0x2a')](function(_0x3ab747){var _0x52a6df=[];if(_0x3ab747){var _0x3d380e;for(var _0x3079cd=0x0,_0x4693c6;_0x3079cd<_0x3ab747[_0x76d5('0x25')];_0x3079cd+=0x1){_0x4693c6=_0x3ab747[_0x3079cd]['get']({'plain':!![]});_0x52a6df[_0x76d5('0x2b')](db[_0x76d5('0x54')]['query'](_0x4f8e2f(_0x4693c6,_0x76d5('0x56')))[_0x76d5('0x2a')](function(){})[_0x76d5('0x2d')](_0x1ae098()));}}return _0x52a6df;})[_0x76d5('0x58')]();})[_0x76d5('0x2a')](function(){return db['Campaign'][_0x76d5('0x4e')]({'attributes':['id',_0x76d5('0x52')],'include':[{'model':db['CmList'],'as':_0x76d5('0x50'),'where':{'id':LISTID}}]})[_0x76d5('0x2a')](function(_0x3ffad4){var _0x21202f=[];if(_0x3ffad4){for(var _0x730f38=0x0,_0x337980;_0x730f38<_0x3ffad4['length'];_0x730f38+=0x1){_0x337980=_0x3ffad4[_0x730f38][_0x76d5('0x51')]({'plain':!![]});switch(_0x337980[_0x76d5('0x52')]){case _0x76d5('0x53'):_0x21202f[_0x76d5('0x2b')](db[_0x76d5('0x54')][_0x76d5('0x55')](_0x308a8a(_0x337980,_0x76d5('0x5a')))['then'](function(){})['catch'](_0x1ae098()));break;case'onlyIfOpen':_0x21202f[_0x76d5('0x2b')](db[_0x76d5('0x54')][_0x76d5('0x55')](_0x4a4ea0(_0x337980,_0x76d5('0x5a')))[_0x76d5('0x2a')](function(){})[_0x76d5('0x2d')](_0x1ae098()));break;default:_0x21202f[_0x76d5('0x2b')](db['sequelize']['query'](_0x87f429(_0x337980,'CampaignId'))[_0x76d5('0x2a')](function(){})[_0x76d5('0x2d')](_0x1ae098()));}}}return _0x21202f;})['all']();})['then'](function(){return db[_0x76d5('0x5b')][_0x76d5('0x4e')]({'attributes':['id'],'include':[{'model':db[_0x76d5('0x4f')],'as':_0x76d5('0x5c'),'where':{'id':LISTID}}]})['then'](function(_0x53d58d){var _0x32e25c=[];if(_0x53d58d){for(var _0x23ab9e=0x0,_0x119471;_0x23ab9e<_0x53d58d[_0x76d5('0x25')];_0x23ab9e+=0x1){_0x119471=_0x53d58d[_0x23ab9e][_0x76d5('0x51')]({'plain':!![]});_0x32e25c[_0x76d5('0x2b')](db['sequelize'][_0x76d5('0x55')](_0x4f8e2f(_0x119471,_0x76d5('0x5a')))[_0x76d5('0x2a')](function(){})[_0x76d5('0x2d')](_0x1ae098()));}}return _0x32e25c;})[_0x76d5('0x58')]();})[_0x76d5('0x2d')](function(_0x58e2ad){logger[_0x76d5('0x12')](_0x76d5('0x5d'),'generalCheckHopper',_0x58e2ad[_0x76d5('0x1a')]);});}var processPromises=function(_0x2bb503){return BPromise[_0x76d5('0x58')](promises)[_0x76d5('0x2a')](function(_0x45b3a5){})[_0x76d5('0x2d')](function(_0x10c0f2){logger[_0x76d5('0x12')](_0x76d5('0x5e'),JSON[_0x76d5('0x2f')](_0x10c0f2));})['finally'](function(){socket[_0x76d5('0x5f')](_0x76d5('0x60')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2bb503){return _0x2bb503[_0x76d5('0x61')]();}});};var endCsv=function(){return BPromise[_0x76d5('0x62')]()[_0x76d5('0x2a')](function(){if(hopperContacts){return checkHopper();}})[_0x76d5('0x2a')](function(){socket[_0x76d5('0x5f')]('contact:csv_'+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x76d5('0x63')](FILEPATH);}catch(_0x6030fc){logger[_0x76d5('0x12')](_0x76d5('0x64'),JSON['stringify'](_0x6030fc));}finally{process['exit'](0x0);}});};process['on'](_0x76d5('0x65'),function(){logger['info'](_0x76d5('0x66'));endCsv();});function main(){return BPromise['resolve']()[_0x76d5('0x2a')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x76d5('0x10')](',');return db[_0x76d5('0x67')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0xdd13bf){var _0x531eb8=fs[_0x76d5('0x68')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x76d5('0x69')](_0x531eb8,{'header':!![],'skipEmptyLines':!![],'step':function(_0xbc2ba6,_0x18d3f5){total+=0x1;var _0x3f5ed8=total;promises[_0x76d5('0x2b')](checkRow(_0xbc2ba6,_0xdd13bf,_0x3f5ed8)[_0x76d5('0x2a')](function(){success+=0x1;})[_0x76d5('0x2d')](function(_0x38b4b6){if(_0x38b4b6[_0x76d5('0x12')]){errors+=0x1;delete _0x38b4b6['error'];}else if(_0x38b4b6[_0x76d5('0x26')]){duplicates+=0x1;delete _0x38b4b6[_0x76d5('0x26')];}rows[_0x76d5('0x2b')](_0x38b4b6);}));if(total%0xc8===0x0){_0x18d3f5[_0x76d5('0x6a')]();return processPromises(_0x18d3f5);}},'complete':function(){return processPromises()[_0x76d5('0x2a')](function(){logger[_0x76d5('0x6b')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0xd2b564,_0x1292cb){logger[_0x76d5('0x6b')](_0x76d5('0x6c'),JSON[_0x76d5('0x2f')](_0xd2b564));endCsv();}});})['catch'](function(_0x4c9661){logger[_0x76d5('0x12')](_0x76d5('0x6d'),JSON[_0x76d5('0x2f')](_0x4c9661));});}main();
\ No newline at end of file
+var _0x5f6b=['errors','length','map','message','join','hasOwnProperty','data','firstName\x20not\x20specified!','phone','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','Duplicate\x20Contact','CmContact','create','keys','then','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','insert','into','cm_hopper','fromQuery','scheduledAt','ContactId','createdAt','select','field','NOW()','toString','updatedAt','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','from','\x20=\x20?','id\x20IN\x20?','str','calleridnum','cm_hopper_black','VoiceQueue','outbound','CmList','get','dialCheckDuplicateType','always','sequelize','query','VoiceQueueId','onlyIfOpen','push','BlackLists','Campaign','findAll','CampaignId','all','cmContact,\x20%s,\x20%s','generalCheckHopper','finally','emit','resume','resolve','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','duplicate','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','Missing\x20filepath\x20parameter!','undefined','null','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x5f6b,0x136));var _0xb5f6=function(_0x4d78ec,_0x51125b){_0x4d78ec=_0x4d78ec-0x0;var _0x17e338=_0x5f6b[_0x4d78ec];return _0x17e338;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require(_0xb5f6('0x0'));var fs=require('fs');var squel=require(_0xb5f6('0x1'));var Papa=require(_0xb5f6('0x2'));var Redis=require(_0xb5f6('0x3'));var db=require(_0xb5f6('0x4'))['db'];var config=require(_0xb5f6('0x5'));var logger=require('../../../config/logger')('api');config[_0xb5f6('0x6')]=_[_0xb5f6('0x7')](config[_0xb5f6('0x6')],{'host':_0xb5f6('0x8'),'port':0x18eb});var socket=require(_0xb5f6('0x9'))(new Redis(config[_0xb5f6('0x6')]));require(_0xb5f6('0xa'))[_0xb5f6('0xb')](socket);try{if(!process[_0xb5f6('0xc')][0x2]||process['argv'][0x2]==='undefined'||process[_0xb5f6('0xc')][0x2]==='null'){throw new Error(_0xb5f6('0xd'));}var FILEPATH=process[_0xb5f6('0xc')][0x2];if(!process[_0xb5f6('0xc')][0x3]||process[_0xb5f6('0xc')][0x3]===_0xb5f6('0xe')||process[_0xb5f6('0xc')][0x3]===_0xb5f6('0xf')||!process[_0xb5f6('0xc')][0x4]||process[_0xb5f6('0xc')][0x4]===_0xb5f6('0xe')||process[_0xb5f6('0xc')][0x4]===_0xb5f6('0xf')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xb5f6('0x10')](process[_0xb5f6('0xc')][0x3][_0xb5f6('0x11')](','),process[_0xb5f6('0xc')][0x4]['split'](','));if(!process['argv'][0x5]||process[_0xb5f6('0xc')][0x5]===_0xb5f6('0xe')||process[_0xb5f6('0xc')][0x5]===_0xb5f6('0xf')){throw new Error(_0xb5f6('0x12'));}var LISTID=process[_0xb5f6('0xc')][0x5];var COMPANYID=process[_0xb5f6('0xc')][0x6]&&process[_0xb5f6('0xc')][0x6]!==_0xb5f6('0xe')&&process[_0xb5f6('0xc')][0x6]!==_0xb5f6('0xf')?process['argv'][0x6]:null;var DUPLICATES=process[_0xb5f6('0xc')][0x7]&&process['argv'][0x7]!=='undefined'&&process[_0xb5f6('0xc')][0x7]!=='null'?process[_0xb5f6('0xc')][0x7]:null;if(!process[_0xb5f6('0xc')][0x8]||process[_0xb5f6('0xc')][0x8]===_0xb5f6('0xe')||process[_0xb5f6('0xc')][0x8]===_0xb5f6('0xf')){throw new Error(_0xb5f6('0x13'));}var SOCKET_TIMESTAMP=process[_0xb5f6('0xc')][0x8];}catch(_0x15b55d){logger[_0xb5f6('0x14')](_0x15b55d);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x42c994,_0x51af3f,_0x5e54ae,_0x3de3fd){var _0x52ac49={'message':_0x51af3f};_0x52ac49[_0x42c994]=!![];if(_0x5e54ae){_0x52ac49[_0xb5f6('0x15')]=_0x5e54ae;}if(_0x3de3fd){_0x52ac49[_0xb5f6('0x16')]=_0x3de3fd;}return _0x52ac49;}function isEmail(_0x2c37b8){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xb5f6('0x17')](_0x2c37b8);}function checkRow(_0x114ade,_0x24f483,_0x26506e){return new BPromise(function(_0x24a98d,_0x1e9366){if(_[_0xb5f6('0x18')](_0x114ade)){return _0x1e9366(handleCheckRowError(_0xb5f6('0x14'),_0xb5f6('0x19'),null,_0x26506e));}if(_0x114ade[_0xb5f6('0x1a')]&&_0x114ade[_0xb5f6('0x1a')][_0xb5f6('0x1b')]){var _0x1da336=_[_0xb5f6('0x1c')](_0x114ade[_0xb5f6('0x1a')],_0xb5f6('0x1d'))[_0xb5f6('0x1e')](';');return _0x1e9366(handleCheckRowError(_0xb5f6('0x14'),_0x1da336,null,_0x26506e));}var _0x3ed72c={};for(var _0x1906c3 in FIELDS){if(FIELDS[_0xb5f6('0x1f')](_0x1906c3)&&FIELDS[_0x1906c3]){_0x3ed72c[_0x1906c3]=_0x114ade[_0xb5f6('0x20')][0x0][FIELDS[_0x1906c3]]||_0x114ade[_0xb5f6('0x20')][0x0]['\ufeff'+FIELDS[_0x1906c3]];}}if(!_0x3ed72c['firstName']){return _0x1e9366(handleCheckRowError('error',_0xb5f6('0x21'),null,_0x26506e));}if(!_0x3ed72c[_0xb5f6('0x22')]){return _0x1e9366(handleCheckRowError(_0xb5f6('0x14'),'phone\x20not\x20specified!',null,_0x26506e));}if(_0x3ed72c['birthDate']){var _0x3c02ae=moment(_0x3ed72c[_0xb5f6('0x23')],_0xb5f6('0x24'));if(!_0x3c02ae[_0xb5f6('0x25')]()){return _0x1e9366(handleCheckRowError('error',_0xb5f6('0x26'),null,_0x26506e));}}if(_0x3ed72c[_0xb5f6('0x27')]){if(!isEmail(_0x3ed72c['email'])){return _0x1e9366(handleCheckRowError('error',_0xb5f6('0x28'),null,_0x26506e));}}_0x3ed72c[_0xb5f6('0x29')]=LISTID;_0x3ed72c['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xb5f6('0x1b')]&&_0x24f483){var _0x1eca38={};for(var _0x5d5be9=0x0,_0x3cf679=DUPLICATES[_0xb5f6('0x1b')];_0x5d5be9<_0x3cf679;_0x5d5be9+=0x1){_0x1eca38[DUPLICATES[_0x5d5be9]]=_0x3ed72c[DUPLICATES[_0x5d5be9]];}var _0x3059ee=_['find'](_0x24f483,_0x1eca38);if(_0x3059ee){return _0x1e9366(handleCheckRowError('duplicate',_0xb5f6('0x2a'),_0x3059ee,_0x26506e));}}return db[_0xb5f6('0x2b')][_0xb5f6('0x2c')](_0x3ed72c,{'raw':!![],'hooks':![],'fields':_[_0xb5f6('0x2d')](_0x3ed72c)})[_0xb5f6('0x2e')](function(_0x5484bb){if(DUPLICATES&&DUPLICATES[_0xb5f6('0x1b')]&&_0x24f483){_0x24f483['push'](_[_0xb5f6('0x2f')](_0x3ed72c,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x5484bb['id'];return _0x24a98d();})[_0xb5f6('0x30')](function(_0x5f26aa){return _0x1e9366(handleCheckRowError('error',_0xb5f6('0x31')+(_0x5f26aa['message']||JSON[_0xb5f6('0x32')](_0x5f26aa)),null,_0x26506e));});});}function checkHopper(){function _0x33692d(){return function(_0x394cff){logger[_0xb5f6('0x14')](_0xb5f6('0x33'),_0xb5f6('0x34'),util[_0xb5f6('0x35')](_0x394cff,{'showHidden':![],'depth':null}));};}var _0x2265aa=function(_0x50c60b,_0x5da08f){var _0x2bad0f=squel[_0xb5f6('0x36')]()[_0xb5f6('0x37')](_0xb5f6('0x38'))[_0xb5f6('0x39')]([_0xb5f6('0x22'),_0xb5f6('0x3a'),_0xb5f6('0x3b'),_0xb5f6('0x29'),_0x5da08f,_0xb5f6('0x3c'),'updatedAt'],squel[_0xb5f6('0x3d')]()['field'](_0xb5f6('0x22'),'phone')[_0xb5f6('0x3e')](_0xb5f6('0x3f'),_0xb5f6('0x3a'))[_0xb5f6('0x3e')]('id',_0xb5f6('0x3b'))[_0xb5f6('0x3e')](LISTID[_0xb5f6('0x40')](),'ListId')[_0xb5f6('0x3e')](_0x50c60b['id'][_0xb5f6('0x40')](),_0x5da08f)[_0xb5f6('0x3e')](_0xb5f6('0x3f'),_0xb5f6('0x3c'))[_0xb5f6('0x3e')](_0xb5f6('0x3f'),_0xb5f6('0x41'))['from'](_0xb5f6('0x42'))[_0xb5f6('0x43')](_0xb5f6('0x44'))[_0xb5f6('0x43')](_0xb5f6('0x45'),LISTID[_0xb5f6('0x40')]())[_0xb5f6('0x43')](_0xb5f6('0x46'))['where'](_0xb5f6('0x47'),squel[_0xb5f6('0x3d')]()[_0xb5f6('0x3e')]('phone')[_0xb5f6('0x48')](_0xb5f6('0x38'))['where'](_0x5da08f+_0xb5f6('0x49'),_0x50c60b['id']['toString']())))['toString']();return _0x2bad0f;};var _0x570026=function(_0x47ac69,_0x562418){var _0x101cfb=squel[_0xb5f6('0x36')]()[_0xb5f6('0x37')](_0xb5f6('0x38'))[_0xb5f6('0x39')]([_0xb5f6('0x22'),_0xb5f6('0x3a'),_0xb5f6('0x3b'),_0xb5f6('0x29'),_0x562418,_0xb5f6('0x3c'),_0xb5f6('0x41')],squel[_0xb5f6('0x3d')]()[_0xb5f6('0x3e')](_0xb5f6('0x22'),_0xb5f6('0x22'))['field'](_0xb5f6('0x3f'),_0xb5f6('0x3a'))[_0xb5f6('0x3e')]('id',_0xb5f6('0x3b'))[_0xb5f6('0x3e')](LISTID[_0xb5f6('0x40')](),_0xb5f6('0x29'))[_0xb5f6('0x3e')](_0x47ac69['id']['toString'](),_0x562418)['field'](_0xb5f6('0x3f'),'createdAt')[_0xb5f6('0x3e')](_0xb5f6('0x3f'),'updatedAt')[_0xb5f6('0x48')](_0xb5f6('0x42'))['where'](_0xb5f6('0x44'))['where'](_0xb5f6('0x45'),LISTID[_0xb5f6('0x40')]())[_0xb5f6('0x43')](_0xb5f6('0x4a'),squel[_0xb5f6('0x4b')](hopperContacts))['where'](_0xb5f6('0x46'))[_0xb5f6('0x43')](_0xb5f6('0x47'),squel[_0xb5f6('0x3d')]()[_0xb5f6('0x3e')](_0xb5f6('0x4c'))[_0xb5f6('0x48')]('cm_hopper_final')[_0xb5f6('0x43')](_0x562418+'\x20=\x20?',_0x47ac69['id'][_0xb5f6('0x40')]()))[_0xb5f6('0x43')](_0xb5f6('0x47'),squel[_0xb5f6('0x3d')]()[_0xb5f6('0x3e')](_0xb5f6('0x22'))['from']('cm_hopper')[_0xb5f6('0x43')](_0x562418+_0xb5f6('0x49'),_0x47ac69['id']['toString']())))[_0xb5f6('0x40')]();return _0x101cfb;};function _0x3bd674(_0x4280a6,_0x1321ce){var _0x41dd42=squel[_0xb5f6('0x36')]()[_0xb5f6('0x37')](_0xb5f6('0x38'))[_0xb5f6('0x39')]([_0xb5f6('0x22'),_0xb5f6('0x3a'),_0xb5f6('0x3b'),_0xb5f6('0x29'),_0x1321ce,'createdAt','updatedAt'],squel[_0xb5f6('0x3d')]()['field'](_0xb5f6('0x22'),_0xb5f6('0x22'))[_0xb5f6('0x3e')]('NOW()','scheduledAt')[_0xb5f6('0x3e')]('id',_0xb5f6('0x3b'))['field'](LISTID[_0xb5f6('0x40')](),_0xb5f6('0x29'))[_0xb5f6('0x3e')](_0x4280a6['id'][_0xb5f6('0x40')](),_0x1321ce)[_0xb5f6('0x3e')]('NOW()',_0xb5f6('0x3c'))['field']('NOW()','updatedAt')[_0xb5f6('0x48')](_0xb5f6('0x42'))[_0xb5f6('0x43')](_0xb5f6('0x44'))[_0xb5f6('0x43')](_0xb5f6('0x45'),LISTID[_0xb5f6('0x40')]())[_0xb5f6('0x43')](_0xb5f6('0x4a'),squel[_0xb5f6('0x4b')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL'))['toString']();return _0x41dd42;}function _0x424118(_0x3247a3,_0x14ecf5){var _0x55880e=squel[_0xb5f6('0x36')]()[_0xb5f6('0x37')](_0xb5f6('0x4d'))[_0xb5f6('0x39')]([_0xb5f6('0x22'),'ContactId',_0xb5f6('0x29'),_0x14ecf5,'createdAt',_0xb5f6('0x41')],squel['select']()[_0xb5f6('0x3e')]('phone',_0xb5f6('0x22'))[_0xb5f6('0x3e')]('id',_0xb5f6('0x3b'))[_0xb5f6('0x3e')](LISTID[_0xb5f6('0x40')](),_0xb5f6('0x29'))[_0xb5f6('0x3e')](_0x3247a3['id'][_0xb5f6('0x40')](),_0x14ecf5)[_0xb5f6('0x3e')]('NOW()',_0xb5f6('0x3c'))[_0xb5f6('0x3e')](_0xb5f6('0x3f'),_0xb5f6('0x41'))[_0xb5f6('0x48')]('cm_contacts')[_0xb5f6('0x43')](_0xb5f6('0x44'))[_0xb5f6('0x43')](_0xb5f6('0x45'),LISTID['toString']())[_0xb5f6('0x43')]('id\x20IN\x20?',squel[_0xb5f6('0x4b')](hopperContacts))['where'](_0xb5f6('0x46')))[_0xb5f6('0x40')]();return _0x55880e;}return db[_0xb5f6('0x4e')]['findAll']({'where':{'type':_0xb5f6('0x4f')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xb5f6('0x50')],'as':'Lists','where':{'id':LISTID}}]})[_0xb5f6('0x2e')](function(_0x64663c){var _0xc1ea4d=[];if(_0x64663c){var _0x4b888a;for(var _0x5b69de=0x0,_0x3cc85e;_0x5b69de<_0x64663c['length'];_0x5b69de+=0x1){_0x3cc85e=_0x64663c[_0x5b69de][_0xb5f6('0x51')]({'plain':!![]});switch(_0x3cc85e[_0xb5f6('0x52')]){case _0xb5f6('0x53'):_0xc1ea4d['push'](db[_0xb5f6('0x54')][_0xb5f6('0x55')](_0x570026(_0x3cc85e,_0xb5f6('0x56')))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));break;case _0xb5f6('0x57'):_0xc1ea4d[_0xb5f6('0x58')](db['sequelize'][_0xb5f6('0x55')](_0x2265aa(_0x3cc85e,_0xb5f6('0x56')))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));break;default:_0xc1ea4d[_0xb5f6('0x58')](db[_0xb5f6('0x54')]['query'](_0x3bd674(_0x3cc85e,'VoiceQueueId'))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));}}}return _0xc1ea4d;})['all']()[_0xb5f6('0x2e')](function(){return db[_0xb5f6('0x4e')]['findAll']({'where':{'type':_0xb5f6('0x4f')},'attributes':['id'],'include':[{'model':db[_0xb5f6('0x50')],'as':_0xb5f6('0x59'),'where':{'id':LISTID}}]})[_0xb5f6('0x2e')](function(_0x3b3a71){var _0x4fd98d=[];if(_0x3b3a71){var _0x11c60c;for(var _0x34b9a1=0x0,_0x2e8c70;_0x34b9a1<_0x3b3a71[_0xb5f6('0x1b')];_0x34b9a1+=0x1){_0x2e8c70=_0x3b3a71[_0x34b9a1][_0xb5f6('0x51')]({'plain':!![]});_0x4fd98d[_0xb5f6('0x58')](db[_0xb5f6('0x54')][_0xb5f6('0x55')](_0x424118(_0x2e8c70,_0xb5f6('0x56')))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));}}return _0x4fd98d;})['all']();})[_0xb5f6('0x2e')](function(){return db[_0xb5f6('0x5a')][_0xb5f6('0x5b')]({'attributes':['id',_0xb5f6('0x52')],'include':[{'model':db[_0xb5f6('0x50')],'as':'Lists','where':{'id':LISTID}}]})[_0xb5f6('0x2e')](function(_0x15b9de){var _0x2de457=[];if(_0x15b9de){for(var _0x182a89=0x0,_0x86fb37;_0x182a89<_0x15b9de[_0xb5f6('0x1b')];_0x182a89+=0x1){_0x86fb37=_0x15b9de[_0x182a89][_0xb5f6('0x51')]({'plain':!![]});switch(_0x86fb37[_0xb5f6('0x52')]){case'always':_0x2de457[_0xb5f6('0x58')](db[_0xb5f6('0x54')][_0xb5f6('0x55')](_0x570026(_0x86fb37,_0xb5f6('0x5c')))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));break;case _0xb5f6('0x57'):_0x2de457[_0xb5f6('0x58')](db[_0xb5f6('0x54')]['query'](_0x2265aa(_0x86fb37,_0xb5f6('0x5c')))['then'](function(){})[_0xb5f6('0x30')](_0x33692d()));break;default:_0x2de457['push'](db[_0xb5f6('0x54')][_0xb5f6('0x55')](_0x3bd674(_0x86fb37,'CampaignId'))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));}}}return _0x2de457;})['all']();})[_0xb5f6('0x2e')](function(){return db['Campaign'][_0xb5f6('0x5b')]({'attributes':['id'],'include':[{'model':db[_0xb5f6('0x50')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xb5f6('0x2e')](function(_0x254ef1){var _0x45f4c7=[];if(_0x254ef1){for(var _0x22fc51=0x0,_0x27633e;_0x22fc51<_0x254ef1[_0xb5f6('0x1b')];_0x22fc51+=0x1){_0x27633e=_0x254ef1[_0x22fc51][_0xb5f6('0x51')]({'plain':!![]});_0x45f4c7['push'](db[_0xb5f6('0x54')][_0xb5f6('0x55')](_0x424118(_0x27633e,_0xb5f6('0x5c')))[_0xb5f6('0x2e')](function(){})[_0xb5f6('0x30')](_0x33692d()));}}return _0x45f4c7;})[_0xb5f6('0x5d')]();})[_0xb5f6('0x30')](function(_0xfcc786){logger[_0xb5f6('0x14')](_0xb5f6('0x5e'),_0xb5f6('0x5f'),_0xfcc786['message']);});}var processPromises=function(_0x3c2e3b){return BPromise[_0xb5f6('0x5d')](promises)[_0xb5f6('0x2e')](function(_0x201f3f){})[_0xb5f6('0x30')](function(_0x162420){logger[_0xb5f6('0x14')]('Error\x20processing\x20rows\x20block:',JSON[_0xb5f6('0x32')](_0x162420));})[_0xb5f6('0x60')](function(){socket[_0xb5f6('0x61')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x3c2e3b){return _0x3c2e3b[_0xb5f6('0x62')]();}});};var endCsv=function(){return BPromise[_0xb5f6('0x63')]()['then'](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0xb5f6('0x61')](_0xb5f6('0x64')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xb5f6('0x65')](FILEPATH);}catch(_0x28c615){logger['error'](_0xb5f6('0x66'),JSON[_0xb5f6('0x32')](_0x28c615));}finally{process[_0xb5f6('0x67')](0x0);}});};process['on'](_0xb5f6('0x68'),function(){logger[_0xb5f6('0x69')](_0xb5f6('0x6a'));endCsv();});function main(){return BPromise[_0xb5f6('0x63')]()[_0xb5f6('0x2e')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xb5f6('0x11')](',');return db['CmContact']['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xb5f6('0x2e')](function(_0xf12826){var _0x30b3c3=fs[_0xb5f6('0x6b')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x30b3c3,{'header':!![],'skipEmptyLines':!![],'step':function(_0x7d739b,_0x5497a){total+=0x1;var _0x5633fd=total;promises[_0xb5f6('0x58')](checkRow(_0x7d739b,_0xf12826,_0x5633fd)[_0xb5f6('0x2e')](function(){success+=0x1;})[_0xb5f6('0x30')](function(_0xe2223d){if(_0xe2223d[_0xb5f6('0x14')]){errors+=0x1;delete _0xe2223d[_0xb5f6('0x14')];}else if(_0xe2223d['duplicate']){duplicates+=0x1;delete _0xe2223d[_0xb5f6('0x6c')];}rows[_0xb5f6('0x58')](_0xe2223d);}));if(total%0xc8===0x0){_0x5497a['pause']();return processPromises(_0x5497a);}},'complete':function(){return processPromises()[_0xb5f6('0x2e')](function(){logger[_0xb5f6('0x69')](_0xb5f6('0x6d'));endCsv();});},'error':function(_0x154504,_0x2d47ac){logger['info'](_0xb5f6('0x6e'),JSON['stringify'](_0x154504));endCsv();}});})['catch'](function(_0xcdc1fa){logger[_0xb5f6('0x14')](_0xb5f6('0x6f'),JSON['stringify'](_0xcdc1fa));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd24b=['root','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','map','uncaughtException','path','lodash','util','bluebird','squel','import','defaults','redis','socket.io-emitter','format','test','phone','from','join','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','cm_contacts.phone','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.UserId','insert','into','fromQuery','scheduledat','ContactId','updatedAt','priority','UserId','recallme','cm_contacts','cm_contacts.ListId\x20=\x20','.id\x20=\x20','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_hopper','\x22always\x22','cm_hopper_black','createdAt','select','fields','.CmListId','field','toString','concat','keys','ListId','CompanyId',')\x20NOT\x20IN\x20?','ListId\x20=\x20?','id\x20IN\x20?','MIN(id)','group','Received\x20SIGINT','error','exit','errors','push','code','message','info','sequelize','query','spread','send','start','binding','socket_timestamp','server/files/tmp','.csv','header','writeFileSync','parse','data','rows','hasOwnProperty','trim','YYYY-MM-DD\x20HH:mm:ss','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','includes','agent\x20not\x20exists','email','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','length','SystemRow','appendFileSync','emit','Abort\x20parser','abort','SystemError','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','isNil',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns','CampaignId','campaigns_has_cm_blacklists','each','then','affectedRows','contact:import:','unlink','catch','complete','argv'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd24b,0x108));var _0xbd24=function(_0x2dac5e,_0x50d131){_0x2dac5e=_0x2dac5e-0x0;var _0x2b27a3=_0xd24b[_0x2dac5e];return _0x2b27a3;};'use strict';var fs=require('fs');var path=require(_0xbd24('0x0'));var _=require(_0xbd24('0x1'));var Papa=require('papaparse');var util=require(_0xbd24('0x2'));var BPromise=require(_0xbd24('0x3'));var moment=require('moment');var squel=require(_0xbd24('0x4'));var db=require('../../../mysqldb')['db'];var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0xbd24('0x5'));config['redis']=_[_0xbd24('0x6')](config[_0xbd24('0x7')],{'host':'localhost','port':0x18eb});var socket=require(_0xbd24('0x8'))(config[_0xbd24('0x7')]);var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0xbd24('0x9')]('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x5d7f50){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xbd24('0xa')](_0x5d7f50);}function selectNotIn(_0x56b9af,_0x215795,_0x25bb74,_0x35afbb,_0x140a54){return squel['select']()['field'](_0xbd24('0xb'))[_0xbd24('0xc')](_0x35afbb)[_0xbd24('0xd')](_0x215795,null,_0x215795+'.id\x20=\x20'+_0x35afbb+'.'+_0x25bb74)[_0xbd24('0xe')](_0x35afbb+'.'+_0x25bb74+_0xbd24('0xf')+_0x56b9af+'.'+_0x25bb74)[_0xbd24('0xe')](_0x215795+_0xbd24('0x10')+_0x140a54[_0xbd24('0xd')]()+')');}function insertCmHopper(_0x437ac9,_0x54a862,_0x288151,_0x382341,_0x34e3cb){var _0x451f92=[_0xbd24('0x11'),'cm_contacts.scheduledat',_0xbd24('0x12'),_0xbd24('0x13'),_0x54a862+'.'+_0x382341,_0xbd24('0x14'),_0xbd24('0x15'),'cm_contacts.priority',_0xbd24('0x16'),'\x22'+_0x34e3cb+'\x22'];return squel[_0xbd24('0x17')]()[_0xbd24('0x18')]('cm_hopper')[_0xbd24('0x19')]([_0xbd24('0xb'),_0xbd24('0x1a'),_0xbd24('0x1b'),'ListId',_0x382341,'createdAt',_0xbd24('0x1c'),_0xbd24('0x1d'),_0xbd24('0x1e'),_0xbd24('0x1f')],squel['select']()['fields'](_0x451f92)[_0xbd24('0xc')](_0x54a862)['join'](_0xbd24('0x20'),null,_0xbd24('0x21')+_0x54a862+'.CmListId')[_0xbd24('0xd')](_0x288151,null,_0x288151+_0xbd24('0x22')+_0x54a862+'.'+_0x382341)['where'](_0x54a862+_0xbd24('0x23'),_0x437ac9)[_0xbd24('0xe')](_0xbd24('0x24'),NOW)[_0xbd24('0xe')](_0xbd24('0x25'),selectNotIn(_0x54a862,_0x288151,_0x382341,_0xbd24('0x26'),[_0xbd24('0x27'),'\x22onlyIfOpen\x22']))[_0xbd24('0xe')](_0xbd24('0x25'),selectNotIn(_0x54a862,_0x288151,_0x382341,_0xbd24('0x26'),[_0xbd24('0x27')])))['toString']();}function insertCmHopperBlack(_0x57932a,_0x44e341,_0x3410b3,_0x302842){var _0x15d28a=[_0xbd24('0x11'),_0xbd24('0x12'),'cm_contacts.ListId',_0x44e341+'.'+_0x302842,_0xbd24('0x14'),_0xbd24('0x15')];return squel[_0xbd24('0x17')]()[_0xbd24('0x18')](_0xbd24('0x28'))['fromQuery']([_0xbd24('0xb'),'ContactId','ListId',_0x302842,_0xbd24('0x29'),'updatedAt'],squel[_0xbd24('0x2a')]()[_0xbd24('0x2b')](_0x15d28a)['from'](_0x44e341)['join']('cm_contacts',null,_0xbd24('0x21')+_0x44e341+_0xbd24('0x2c'))['join'](_0x3410b3,null,_0x3410b3+_0xbd24('0x22')+_0x44e341+'.'+_0x302842)['where'](_0x44e341+'.CmListId\x20=\x20?',_0x57932a)[_0xbd24('0xe')](_0xbd24('0x24'),NOW)[_0xbd24('0xe')](_0xbd24('0x25'),squel[_0xbd24('0x2a')]()[_0xbd24('0x2d')](_0xbd24('0xb'))[_0xbd24('0xc')](_0xbd24('0x28'))[_0xbd24('0xe')]('ListId\x20=\x20?',_0x57932a)['where'](_0x302842+'\x20=\x20?',_0x44e341+'.'+_0x302842)))[_0xbd24('0x2e')]();}function insertCmContact(_0x397025,_0x2dbde8,_0x1bfb3a,_0x3c4bd4){var _0x32707c=_[_0xbd24('0x2f')](_[_0xbd24('0x30')](_0x3c4bd4),[_0xbd24('0x31'),_0xbd24('0x32'),_0xbd24('0x29'),'updatedAt']);return squel[_0xbd24('0x17')]()[_0xbd24('0x18')](_0xbd24('0x20'))[_0xbd24('0x19')](_0x32707c,squel[_0xbd24('0x2a')]()[_0xbd24('0x2b')](_0x32707c)[_0xbd24('0xc')](_0x2dbde8)[_0xbd24('0xe')]('('+_0x1bfb3a[_0xbd24('0xd')](',')+_0xbd24('0x33'),squel[_0xbd24('0x2a')]()['fields'](_0x1bfb3a)[_0xbd24('0xc')](_0xbd24('0x20'))[_0xbd24('0xe')](_0xbd24('0x34'),_0x397025))[_0xbd24('0xe')](_0xbd24('0x35'),squel[_0xbd24('0x2a')]()[_0xbd24('0x2d')](_0xbd24('0x36'),'min_id')[_0xbd24('0xc')](_0x2dbde8)[_0xbd24('0x37')](_0x1bfb3a[_0xbd24('0xd')](','))))[_0xbd24('0x2e')]();}function handleStop(){logger['info'](_0xbd24('0x38'));stopped=!![];}function handleUncaughtException(_0xcdb101){logger[_0xbd24('0x39')](_0xcdb101['message']);process[_0xbd24('0x3a')](0x1);}function handleError(_0x1ffb93,_0x320b1c){stats[_0xbd24('0x3b')][_0xbd24('0x3c')]({'name':_0x320b1c[_0xbd24('0x3d')],'message':_0x320b1c[_0xbd24('0x3e')],'row':_0x1ffb93});}function handleQuery(_0x418226){logger[_0xbd24('0x3f')](_0x418226);return db[_0xbd24('0x40')][_0xbd24('0x41')](_0x418226)[_0xbd24('0x42')](function(_0x1941b8){results[_0xbd24('0x3c')](_0x1941b8);})['catch'](function(_0x395bfe){logger[_0xbd24('0x39')](_0x395bfe[_0xbd24('0x3e')]);});}function main(_0x2669e7,_0x31034b,_0x4b27ef,_0x149eef){logger[_0xbd24('0x3f')]('main',_0x2669e7,JSON['stringify'](_0x31034b));process[_0xbd24('0x43')](_0xbd24('0x44'));var _0x1b1461=_0x31034b[_0xbd24('0x45')];var _0x55792b=_0x31034b[_0xbd24('0x46')];var _0x268ad7=path[_0xbd24('0xd')](config['root'],_0xbd24('0x47'),_0x55792b+_0xbd24('0x48'));var _0x4dfdcb=_['keys'](_0x1b1461)[_0xbd24('0xd')]();logger[_0xbd24('0x3f')](_0xbd24('0x49'),_0x4dfdcb);fs[_0xbd24('0x4a')](_0x268ad7,_0x4dfdcb+'\x0a');Papa[_0xbd24('0x4b')](fs['createReadStream'](_0x2669e7),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1a2581,_0xf8d13f){try{for(var _0x9174a2=0x0,_0x420b44=[];_0x9174a2<_0x1a2581[_0xbd24('0x4c')]['length'];_0x9174a2++){stats[_0xbd24('0x4d')]+=0x1;if(_0x1a2581[_0xbd24('0x3b')][_0x9174a2]){handleError(_0x1a2581[_0xbd24('0x4c')][_0x9174a2],_0x1a2581[_0xbd24('0x3b')][_0x9174a2]);}else{var _0x1e6b48=[];for(var _0x4fd138 in _0x1b1461){if(_0x1b1461[_0xbd24('0x4e')](_0x4fd138)){if(_0x1a2581['data'][_0x9174a2][_0x1b1461[_0x4fd138]]){var _0x30d104=_[_0xbd24('0x4f')](_0x1a2581[_0xbd24('0x4c')][_0x9174a2][_0x1b1461[_0x4fd138]]['replace'](/"/g,'\x27'));switch(_0x4fd138){case _0xbd24('0x1a'):var _0xd9ae2f=moment(_0x30d104,_0xbd24('0x50'),!![]);if(_0xd9ae2f[_0xbd24('0x51')]()){_0x420b44[_0xbd24('0x3c')]('\x22'+_0x30d104+'\x22');}else{_0x1e6b48[_0xbd24('0x3c')](_0xbd24('0x52'));}break;case'priority':var _0x31e201=parseInt(_0x30d104);_0x30d104=_[_0xbd24('0x53')](_0x31e201)||_0x31e201<0x0||_0x31e201>0x4?_0x149eef?0x3:0x2:_0x31e201;_0x420b44['push']('\x22'+_0x30d104+'\x22');break;case _0xbd24('0x1e'):var _0x110cc0=parseInt(_0x30d104);if(_[_0xbd24('0x54')](_0x110cc0)&&_[_0xbd24('0x55')](_0x4b27ef,_0x110cc0)){_0x420b44[_0xbd24('0x3c')]('\x22'+_0x110cc0+'\x22');}else{_0x1e6b48[_0xbd24('0x3c')](_0xbd24('0x56'));}break;case _0xbd24('0x57'):if(isEmail(_0x30d104)){_0x420b44[_0xbd24('0x3c')]('\x22'+_0x30d104+'\x22');}else{_0x1e6b48[_0xbd24('0x3c')]('email\x20wrong\x20format');}break;case'dateOfBirth':var _0x33b66b=moment(_0x30d104,_0xbd24('0x58'),!![]);if(_0x33b66b[_0xbd24('0x51')]()){_0x420b44[_0xbd24('0x3c')]('\x22'+_0x30d104+'\x22');}else{_0x1e6b48[_0xbd24('0x3c')](_0xbd24('0x59'));}break;default:_0x420b44[_0xbd24('0x3c')]('\x22'+_0x30d104+'\x22');}}else{switch(_0x4fd138){case _0xbd24('0x5a'):case _0xbd24('0xb'):_0x1e6b48[_0xbd24('0x3c')](_0x4fd138+'\x20not\x20specified');break;default:_0x420b44['push']('\x22\x22');}}}}if(_0x1e6b48[_0xbd24('0x5b')]){handleError(_0x1a2581['data'][_0x9174a2],{'code':_0xbd24('0x5c'),'message':_0x1e6b48[_0xbd24('0xd')]()});}else{fs[_0xbd24('0x5d')](_0x268ad7,_0x420b44[_0xbd24('0xd')]()+'\x0a');}_0x420b44=[];}if(!(stats[_0xbd24('0x4d')]%0xc8)){socket[_0xbd24('0x5e')]('contact:import:'+_0x55792b,stats);stats[_0xbd24('0x3b')]=[];}}if(stopped){logger[_0xbd24('0x3f')](_0xbd24('0x5f'));_0xf8d13f[_0xbd24('0x60')]();}}catch(_0x4aea80){handleError(_0x1a2581[_0xbd24('0x4c')][_0x9174a2],{'code':_0xbd24('0x61'),'message':_0x4aea80['message']});logger[_0xbd24('0x39')]('step',_0x4aea80[_0xbd24('0x3e')]);}},'complete':function(){try{var _0xd3f2aa=[];var _0x17f4ea=_0xbd24('0x20');if(_0x31034b['duplicates']&&_0x31034b[_0xbd24('0x62')][_0xbd24('0x5b')]){_0x17f4ea=_0xbd24('0x63')+_0x55792b;_0xd3f2aa[_0xbd24('0x3c')](_0xbd24('0x64')+_0x17f4ea+_0xbd24('0x65'));}var _0x4c8448=util['format']('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x268ad7,_0x17f4ea,_0x4dfdcb,_0x31034b[_0xbd24('0x31')],_0x31034b['CompanyId']||null,NOW,NOW);if(_[_0xbd24('0x66')](_0x1b1461[_0xbd24('0x1a')])){_0x4c8448+=_0xbd24('0x67');}_0xd3f2aa[_0xbd24('0x3c')](_0x4c8448);if(_0x31034b['duplicates']&&_0x31034b['duplicates'][_0xbd24('0x5b')]){_0xd3f2aa[_0xbd24('0x3c')](insertCmContact(_0x31034b['ListId'],_0x17f4ea,_0x31034b[_0xbd24('0x62')],_0x1b1461));_0xd3f2aa[_0xbd24('0x3c')](_0xbd24('0x68')+_0x17f4ea+';');}_0xd3f2aa[_0xbd24('0x3c')](insertCmHopper(_0x31034b[_0xbd24('0x31')],'voice_queues_has_cm_lists',_0xbd24('0x69'),_0xbd24('0x6a'),_0x149eef));_0xd3f2aa['push'](insertCmHopperBlack(_0x31034b['ListId'],_0xbd24('0x6b'),_0xbd24('0x69'),_0xbd24('0x6a')));_0xd3f2aa[_0xbd24('0x3c')](insertCmHopper(_0x31034b['ListId'],_0xbd24('0x6c'),_0xbd24('0x6d'),_0xbd24('0x6e'),_0x149eef));_0xd3f2aa[_0xbd24('0x3c')](insertCmHopperBlack(_0x31034b[_0xbd24('0x31')],_0xbd24('0x6f'),_0xbd24('0x6d'),'CampaignId'));BPromise[_0xbd24('0x70')](_0xd3f2aa,handleQuery)[_0xbd24('0x71')](function(_0x509470){stats['finish']=!![];stats['affectedRows']=_0x31034b[_0xbd24('0x62')]&&_0x31034b['duplicates'][_0xbd24('0x5b')]?results[0x2][_0xbd24('0x72')]:results[0x0][_0xbd24('0x72')];socket[_0xbd24('0x5e')](_0xbd24('0x73')+_0x55792b,stats);fs[_0xbd24('0x74')](_0x2669e7);fs[_0xbd24('0x74')](_0x268ad7);process['exit'](0x0);})[_0xbd24('0x75')](function(_0x3c3a0a){logger[_0xbd24('0x39')](_0x3c3a0a[_0xbd24('0x3e')]);process[_0xbd24('0x3a')](0x1);});}catch(_0x2d3e4a){logger[_0xbd24('0x39')](_0xbd24('0x76'),_0x2d3e4a[_0xbd24('0x3e')]);process[_0xbd24('0x3a')](0x1);}},'error':function(_0x4c8be3,_0x21958d,_0x5a0fc9,_0x378e38){throw new Error(_0x378e38);}});}function validate(){if(process[_0xbd24('0x77')]&&process[_0xbd24('0x77')][_0xbd24('0x5b')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x187771=path['join'](config[_0xbd24('0x78')],'server/files/tmp',process[_0xbd24('0x77')][0x2]);if(!fs[_0xbd24('0x79')](_0x187771)){throw new Error(_0xbd24('0x7a'));}var _0x2fabeb={};try{_0x2fabeb=JSON['parse'](process[_0xbd24('0x77')][0x3]);if(!_0x2fabeb['binding']){throw new Error(_0xbd24('0x7b'));}if(!_0x2fabeb[_0xbd24('0x45')][_0xbd24('0xb')]){throw new Error('phone\x20is\x20mandatory');}if(!_0x2fabeb[_0xbd24('0x45')][_0xbd24('0x5a')]){throw new Error(_0xbd24('0x7c'));}var _0x3d1764=0x0;if(_0x2fabeb[_0xbd24('0x45')]['UserId']){_0x3d1764=0x1;}if(!_0x2fabeb[_0xbd24('0x31')]){throw new Error(_0xbd24('0x7d'));}}catch(_0x4dd238){throw new Error('body\x20id\x20mandatory');}var _0x3a98dc=[];try{_0x3a98dc=_[_0xbd24('0x7e')](JSON[_0xbd24('0x4b')](process['argv'][0x4]),'id');}catch(_0x1ecb5e){logger[_0xbd24('0x3f')]('No\x20agent\x20available');}main(_0x187771,_0x2fabeb,_0x3a98dc,_0x3d1764);}validate();process['on']('SIGINT',handleStop);process['on'](_0xbd24('0x7f'),handleUncaughtException);
\ No newline at end of file
+var _0x3fdc=['send','start','binding','root','server/files/tmp','.csv','header','writeFileSync','createReadStream','data','rows','hasOwnProperty','trim','replace','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNumber','includes','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','firstName','\x20not\x20specified','length','SystemRow','emit','contact:import:','Abort\x20parser','abort','SystemError','error','step','duplicates','format','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27','CompanyId','isNil',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','voice_queues_has_cm_blacklists','VoiceQueueId','campaigns_has_cm_lists','CampaignId','campaigns_has_cm_blacklists','campaigns','each','then','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','SIGINT','uncaughtException','path','lodash','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','socket.io-emitter','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','insert','cm_hopper','fromQuery','scheduledat','ContactId','ListId','createdAt','updatedAt','priority','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','toString','into','cm_hopper_black','ListId\x20=\x20?','\x20=\x20?','keys',')\x20NOT\x20IN\x20?','MIN(id)','min_id','info','Received\x20SIGINT','message','exit','errors','sequelize','query','spread','push','catch','main'];(function(_0x3c78db,_0x2caa58){var _0x920e8c=function(_0x4217da){while(--_0x4217da){_0x3c78db['push'](_0x3c78db['shift']());}};_0x920e8c(++_0x2caa58);}(_0x3fdc,0x1c9));var _0xc3fd=function(_0x25554b,_0x28e359){_0x25554b=_0x25554b-0x0;var _0x5c0850=_0x3fdc[_0x25554b];return _0x5c0850;};'use strict';var fs=require('fs');var path=require(_0xc3fd('0x0'));var _=require(_0xc3fd('0x1'));var Papa=require(_0xc3fd('0x2'));var util=require(_0xc3fd('0x3'));var BPromise=require(_0xc3fd('0x4'));var moment=require(_0xc3fd('0x5'));var squel=require(_0xc3fd('0x6'));var Redis=require(_0xc3fd('0x7'));var db=require(_0xc3fd('0x8'))['db'];var config=require(_0xc3fd('0x9'));var logger=require(_0xc3fd('0xa'))('import');config['redis']=_['defaults'](config[_0xc3fd('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0xc3fd('0xc'))(new Redis(config[_0xc3fd('0xb')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()['format'](_0xc3fd('0xd'));function isEmail(_0x2afd0f){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xc3fd('0xe')](_0x2afd0f);}function selectNotIn(_0x438b20,_0x221a61,_0x5a84b9,_0x2d1b7e,_0xd09869){return squel[_0xc3fd('0xf')]()[_0xc3fd('0x10')](_0xc3fd('0x11'))[_0xc3fd('0x12')](_0x2d1b7e)[_0xc3fd('0x13')](_0x221a61,null,_0x221a61+_0xc3fd('0x14')+_0x2d1b7e+'.'+_0x5a84b9)[_0xc3fd('0x15')](_0x2d1b7e+'.'+_0x5a84b9+_0xc3fd('0x16')+_0x438b20+'.'+_0x5a84b9)[_0xc3fd('0x15')](_0x221a61+_0xc3fd('0x17')+_0xd09869[_0xc3fd('0x13')]()+')');}function insertCmHopper(_0x4ebbcc,_0x5b11c8,_0x2de1e3,_0x453cf7,_0x30ba2e){var _0x3ee2c4=['cm_contacts.phone',_0xc3fd('0x18'),_0xc3fd('0x19'),_0xc3fd('0x1a'),_0x5b11c8+'.'+_0x453cf7,_0xc3fd('0x1b'),_0xc3fd('0x1c'),_0xc3fd('0x1d'),'cm_contacts.UserId','\x22'+_0x30ba2e+'\x22'];return squel[_0xc3fd('0x1e')]()['into'](_0xc3fd('0x1f'))[_0xc3fd('0x20')]([_0xc3fd('0x11'),_0xc3fd('0x21'),_0xc3fd('0x22'),_0xc3fd('0x23'),_0x453cf7,_0xc3fd('0x24'),_0xc3fd('0x25'),_0xc3fd('0x26'),_0xc3fd('0x27'),_0xc3fd('0x28')],squel[_0xc3fd('0xf')]()[_0xc3fd('0x29')](_0x3ee2c4)['from'](_0x5b11c8)[_0xc3fd('0x13')](_0xc3fd('0x2a'),null,_0xc3fd('0x2b')+_0x5b11c8+_0xc3fd('0x2c'))[_0xc3fd('0x13')](_0x2de1e3,null,_0x2de1e3+_0xc3fd('0x14')+_0x5b11c8+'.'+_0x453cf7)[_0xc3fd('0x15')](_0x5b11c8+'.CmListId\x20=\x20?',_0x4ebbcc)[_0xc3fd('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0xc3fd('0x15')](_0xc3fd('0x2d'),selectNotIn(_0x5b11c8,_0x2de1e3,_0x453cf7,'cm_hopper',[_0xc3fd('0x2e'),'\x22onlyIfOpen\x22']))['where'](_0xc3fd('0x2d'),selectNotIn(_0x5b11c8,_0x2de1e3,_0x453cf7,'cm_hopper',[_0xc3fd('0x2e')])))[_0xc3fd('0x2f')]();}function insertCmHopperBlack(_0x4e6907,_0x4750ff,_0x1ee9b1,_0xc3d5b9){var _0x55c067=['cm_contacts.phone','cm_contacts.id',_0xc3fd('0x1a'),_0x4750ff+'.'+_0xc3d5b9,_0xc3fd('0x1b'),_0xc3fd('0x1c')];return squel[_0xc3fd('0x1e')]()[_0xc3fd('0x30')](_0xc3fd('0x31'))['fromQuery']([_0xc3fd('0x11'),_0xc3fd('0x22'),_0xc3fd('0x23'),_0xc3d5b9,_0xc3fd('0x24'),_0xc3fd('0x25')],squel['select']()[_0xc3fd('0x29')](_0x55c067)['from'](_0x4750ff)['join']('cm_contacts',null,'cm_contacts.ListId\x20=\x20'+_0x4750ff+_0xc3fd('0x2c'))[_0xc3fd('0x13')](_0x1ee9b1,null,_0x1ee9b1+_0xc3fd('0x14')+_0x4750ff+'.'+_0xc3d5b9)['where'](_0x4750ff+'.CmListId\x20=\x20?',_0x4e6907)[_0xc3fd('0x15')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0xc3fd('0x15')](_0xc3fd('0x2d'),squel[_0xc3fd('0xf')]()[_0xc3fd('0x10')](_0xc3fd('0x11'))[_0xc3fd('0x12')](_0xc3fd('0x31'))[_0xc3fd('0x15')](_0xc3fd('0x32'),_0x4e6907)['where'](_0xc3d5b9+_0xc3fd('0x33'),_0x4750ff+'.'+_0xc3d5b9)))['toString']();}function insertCmContact(_0x3fbafb,_0xb78758,_0x20cfa6,_0x531099){var _0x5ce382=_['concat'](_[_0xc3fd('0x34')](_0x531099),['ListId','CompanyId','createdAt',_0xc3fd('0x25')]);return squel['insert']()[_0xc3fd('0x30')](_0xc3fd('0x2a'))[_0xc3fd('0x20')](_0x5ce382,squel[_0xc3fd('0xf')]()[_0xc3fd('0x29')](_0x5ce382)[_0xc3fd('0x12')](_0xb78758)[_0xc3fd('0x15')]('('+_0x20cfa6[_0xc3fd('0x13')](',')+_0xc3fd('0x35'),squel[_0xc3fd('0xf')]()[_0xc3fd('0x29')](_0x20cfa6)[_0xc3fd('0x12')](_0xc3fd('0x2a'))[_0xc3fd('0x15')]('ListId\x20=\x20?',_0x3fbafb))['where']('id\x20IN\x20?',squel[_0xc3fd('0xf')]()[_0xc3fd('0x10')](_0xc3fd('0x36'),_0xc3fd('0x37'))[_0xc3fd('0x12')](_0xb78758)['group'](_0x20cfa6[_0xc3fd('0x13')](','))))['toString']();}function handleStop(){logger[_0xc3fd('0x38')](_0xc3fd('0x39'));stopped=!![];}function handleUncaughtException(_0x231e2f){logger['error'](_0x231e2f[_0xc3fd('0x3a')]);process[_0xc3fd('0x3b')](0x1);}function handleError(_0x278f26,_0x96eba1){stats[_0xc3fd('0x3c')]['push']({'name':_0x96eba1['code'],'message':_0x96eba1[_0xc3fd('0x3a')],'row':_0x278f26});}function handleQuery(_0x532e8a){logger[_0xc3fd('0x38')](_0x532e8a);return db[_0xc3fd('0x3d')][_0xc3fd('0x3e')](_0x532e8a)[_0xc3fd('0x3f')](function(_0x5cddbe){results[_0xc3fd('0x40')](_0x5cddbe);})[_0xc3fd('0x41')](function(_0xd015ac){logger['error'](_0xd015ac[_0xc3fd('0x3a')]);});}function main(_0x5795de,_0x559153,_0xa0fb63,_0x289f7a){logger[_0xc3fd('0x38')](_0xc3fd('0x42'),_0x5795de,JSON['stringify'](_0x559153));process[_0xc3fd('0x43')](_0xc3fd('0x44'));var _0x30a527=_0x559153[_0xc3fd('0x45')];var _0x56e576=_0x559153['socket_timestamp'];var _0x2ff6c8=path[_0xc3fd('0x13')](config[_0xc3fd('0x46')],_0xc3fd('0x47'),_0x56e576+_0xc3fd('0x48'));var _0x24e1df=_[_0xc3fd('0x34')](_0x30a527)[_0xc3fd('0x13')]();logger[_0xc3fd('0x38')](_0xc3fd('0x49'),_0x24e1df);fs[_0xc3fd('0x4a')](_0x2ff6c8,_0x24e1df+'\x0a');Papa['parse'](fs[_0xc3fd('0x4b')](_0x5795de),{'header':!![],'skipEmptyLines':!![],'step':function(_0x5ce6f2,_0x4c46cf){try{for(var _0x79e50b=0x0,_0xcfd643=[];_0x79e50b<_0x5ce6f2[_0xc3fd('0x4c')]['length'];_0x79e50b++){stats[_0xc3fd('0x4d')]+=0x1;if(_0x5ce6f2[_0xc3fd('0x3c')][_0x79e50b]){handleError(_0x5ce6f2[_0xc3fd('0x4c')][_0x79e50b],_0x5ce6f2[_0xc3fd('0x3c')][_0x79e50b]);}else{var _0x18afe1=[];for(var _0x39ea99 in _0x30a527){if(_0x30a527[_0xc3fd('0x4e')](_0x39ea99)){if(_0x5ce6f2['data'][_0x79e50b][_0x30a527[_0x39ea99]]){var _0x1c407c=_[_0xc3fd('0x4f')](_0x5ce6f2[_0xc3fd('0x4c')][_0x79e50b][_0x30a527[_0x39ea99]][_0xc3fd('0x50')](/"/g,'\x27'));switch(_0x39ea99){case _0xc3fd('0x21'):var _0x5661ce=moment(_0x1c407c,_0xc3fd('0xd'),!![]);if(_0x5661ce['isValid']()){_0xcfd643[_0xc3fd('0x40')]('\x22'+_0x1c407c+'\x22');}else{_0x18afe1[_0xc3fd('0x40')](_0xc3fd('0x51'));}break;case'priority':var _0x40f965=parseInt(_0x1c407c);_0x1c407c=_['isNaN'](_0x40f965)||_0x40f965<0x0||_0x40f965>0x4?_0x289f7a?0x3:0x2:_0x40f965;_0xcfd643['push']('\x22'+_0x1c407c+'\x22');break;case'UserId':var _0x14237f=parseInt(_0x1c407c);if(_[_0xc3fd('0x52')](_0x14237f)&&_[_0xc3fd('0x53')](_0xa0fb63,_0x14237f)){_0xcfd643[_0xc3fd('0x40')]('\x22'+_0x14237f+'\x22');}else{_0x18afe1['push']('agent\x20not\x20exists');}break;case _0xc3fd('0x54'):if(isEmail(_0x1c407c)){_0xcfd643['push']('\x22'+_0x1c407c+'\x22');}else{_0x18afe1[_0xc3fd('0x40')](_0xc3fd('0x55'));}break;case _0xc3fd('0x56'):var _0x4079a4=moment(_0x1c407c,_0xc3fd('0x57'),!![]);if(_0x4079a4['isValid']()){_0xcfd643[_0xc3fd('0x40')]('\x22'+_0x1c407c+'\x22');}else{_0x18afe1[_0xc3fd('0x40')]('dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)');}break;default:_0xcfd643[_0xc3fd('0x40')]('\x22'+_0x1c407c+'\x22');}}else{switch(_0x39ea99){case _0xc3fd('0x58'):case _0xc3fd('0x11'):_0x18afe1[_0xc3fd('0x40')](_0x39ea99+_0xc3fd('0x59'));break;default:_0xcfd643[_0xc3fd('0x40')]('\x22\x22');}}}}if(_0x18afe1[_0xc3fd('0x5a')]){handleError(_0x5ce6f2[_0xc3fd('0x4c')][_0x79e50b],{'code':_0xc3fd('0x5b'),'message':_0x18afe1['join']()});}else{fs['appendFileSync'](_0x2ff6c8,_0xcfd643['join']()+'\x0a');}_0xcfd643=[];}if(!(stats['rows']%0xc8)){socket[_0xc3fd('0x5c')](_0xc3fd('0x5d')+_0x56e576,stats);stats[_0xc3fd('0x3c')]=[];}}if(stopped){logger[_0xc3fd('0x38')](_0xc3fd('0x5e'));_0x4c46cf[_0xc3fd('0x5f')]();}}catch(_0x5bb674){handleError(_0x5ce6f2[_0xc3fd('0x4c')][_0x79e50b],{'code':_0xc3fd('0x60'),'message':_0x5bb674[_0xc3fd('0x3a')]});logger[_0xc3fd('0x61')](_0xc3fd('0x62'),_0x5bb674[_0xc3fd('0x3a')]);}},'complete':function(){try{var _0x2f06dc=[];var _0x44d42f=_0xc3fd('0x2a');if(_0x559153[_0xc3fd('0x63')]&&_0x559153[_0xc3fd('0x63')][_0xc3fd('0x5a')]){_0x44d42f='cm_contacts_'+_0x56e576;_0x2f06dc[_0xc3fd('0x40')]('CREATE\x20TABLE\x20'+_0x44d42f+'\x20LIKE\x20cm_contacts;');}var _0x1849b0=util[_0xc3fd('0x64')](_0xc3fd('0x65'),_0x2ff6c8,_0x44d42f,_0x24e1df,_0x559153[_0xc3fd('0x23')],_0x559153[_0xc3fd('0x66')]||null,NOW,NOW);if(_[_0xc3fd('0x67')](_0x30a527[_0xc3fd('0x21')])){_0x1849b0+=_0xc3fd('0x68');}_0x2f06dc[_0xc3fd('0x40')](_0x1849b0);if(_0x559153[_0xc3fd('0x63')]&&_0x559153[_0xc3fd('0x63')]['length']){_0x2f06dc[_0xc3fd('0x40')](insertCmContact(_0x559153[_0xc3fd('0x23')],_0x44d42f,_0x559153[_0xc3fd('0x63')],_0x30a527));_0x2f06dc[_0xc3fd('0x40')](_0xc3fd('0x69')+_0x44d42f+';');}_0x2f06dc[_0xc3fd('0x40')](insertCmHopper(_0x559153[_0xc3fd('0x23')],_0xc3fd('0x6a'),_0xc3fd('0x6b'),'VoiceQueueId',_0x289f7a));_0x2f06dc['push'](insertCmHopperBlack(_0x559153[_0xc3fd('0x23')],_0xc3fd('0x6c'),'voice_queues',_0xc3fd('0x6d')));_0x2f06dc[_0xc3fd('0x40')](insertCmHopper(_0x559153['ListId'],_0xc3fd('0x6e'),'campaigns',_0xc3fd('0x6f'),_0x289f7a));_0x2f06dc[_0xc3fd('0x40')](insertCmHopperBlack(_0x559153[_0xc3fd('0x23')],_0xc3fd('0x70'),_0xc3fd('0x71'),_0xc3fd('0x6f')));BPromise[_0xc3fd('0x72')](_0x2f06dc,handleQuery)[_0xc3fd('0x73')](function(_0x2d4a76){stats[_0xc3fd('0x74')]=!![];stats[_0xc3fd('0x75')]=_0x559153[_0xc3fd('0x63')]&&_0x559153['duplicates']['length']?results[0x2][_0xc3fd('0x75')]:results[0x0][_0xc3fd('0x75')];socket[_0xc3fd('0x5c')]('contact:import:'+_0x56e576,stats);fs['unlink'](_0x5795de);fs[_0xc3fd('0x76')](_0x2ff6c8);process[_0xc3fd('0x3b')](0x0);})[_0xc3fd('0x41')](function(_0x238ba8){logger[_0xc3fd('0x61')](_0x238ba8['message']);process[_0xc3fd('0x3b')](0x1);});}catch(_0x1a0a51){logger[_0xc3fd('0x61')](_0xc3fd('0x77'),_0x1a0a51[_0xc3fd('0x3a')]);process['exit'](0x1);}},'error':function(_0x53c261,_0x1b5ed8,_0x4f3830,_0x38f798){throw new Error(_0x38f798);}});}function validate(){if(process[_0xc3fd('0x78')]&&process[_0xc3fd('0x78')][_0xc3fd('0x5a')]<0x4){throw new Error(_0xc3fd('0x79'));}var _0x323350=path[_0xc3fd('0x13')](config['root'],_0xc3fd('0x47'),process[_0xc3fd('0x78')][0x2]);if(!fs['existsSync'](_0x323350)){throw new Error(_0xc3fd('0x7a'));}var _0x1e7767={};try{_0x1e7767=JSON[_0xc3fd('0x7b')](process[_0xc3fd('0x78')][0x3]);if(!_0x1e7767['binding']){throw new Error(_0xc3fd('0x7c'));}if(!_0x1e7767[_0xc3fd('0x45')][_0xc3fd('0x11')]){throw new Error(_0xc3fd('0x7d'));}if(!_0x1e7767['binding'][_0xc3fd('0x58')]){throw new Error('firstName\x20is\x20mandatory');}var _0x409aa1=0x0;if(_0x1e7767[_0xc3fd('0x45')][_0xc3fd('0x27')]){_0x409aa1=0x1;}if(!_0x1e7767['ListId']){throw new Error(_0xc3fd('0x7e'));}}catch(_0x3f525b){throw new Error(_0xc3fd('0x7f'));}var _0x424a5e=[];try{_0x424a5e=_[_0xc3fd('0x80')](JSON[_0xc3fd('0x7b')](process['argv'][0x4]),'id');}catch(_0x465544){logger[_0xc3fd('0x38')]('No\x20agent\x20available');}main(_0x323350,_0x1e7767,_0x424a5e,_0x409aa1);}validate();process['on'](_0xc3fd('0x81'),handleStop);process['on'](_0xc3fd('0x82'),handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5b3=['Hold\x20Time','holdtime','Talk\x20Time','talktime','Called\x20Number','Member\x20Name','membername','Date','starttime','Answer\x20Time','answertime','Complete\x20Time','endtime','string','[xCALLY\x20Ticket]','toLowerCase','voice','inbound','push','variable','outbound','Outbound\x20Call','destcalleridnum','getDescriptions','***\x20Call\x20Info\x20***','keyValue','Caller\x20Number','calleridnum','Caller\x20Name','Call\x20To','destexten','Queue','UniqueId','uniqueid','agentcalledAt','Agent\x20Name','destcalleridname','Agent\x20Number','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt'];(function(_0x57411d,_0x4de415){var _0x162e11=function(_0x583753){while(--_0x583753){_0x57411d['push'](_0x57411d['shift']());}};_0x162e11(++_0x4de415);}(_0xe5b3,0x133));var _0x3e5b=function(_0x5c1c16,_0x137236){_0x5c1c16=_0x5c1c16-0x0;var _0x17a765=_0xe5b3[_0x5c1c16];return _0x17a765;};'use strict';exports['getSubjects']=function(_0x9b4a66,_0xba44a0){var _0x243fe0=[{'type':_0x3e5b('0x0'),'content':_0x3e5b('0x1'),'variableName':null}];switch(_0x9b4a66[_0x3e5b('0x2')]()){case _0x3e5b('0x3'):switch(_0xba44a0[_0x3e5b('0x2')]()){case _0x3e5b('0x4'):_0x243fe0[_0x3e5b('0x5')]({'type':_0x3e5b('0x6'),'content':'','variableName':'queue'});_0x243fe0[_0x3e5b('0x5')]({'type':_0x3e5b('0x6'),'content':'','variableName':'calleridnum'});break;case _0x3e5b('0x7'):_0x243fe0[_0x3e5b('0x5')]({'type':_0x3e5b('0x0'),'content':_0x3e5b('0x8'),'variableName':null});_0x243fe0['push']({'type':'variable','content':'','variableName':_0x3e5b('0x9')});break;}}return _0x243fe0;};exports[_0x3e5b('0xa')]=function(_0x22fc1a,_0x17dee7){var _0xeeaabc=[];switch(_0x22fc1a['toLowerCase']()){case _0x3e5b('0x3'):switch(_0x17dee7['toLowerCase']()){case _0x3e5b('0x4'):_0xeeaabc=[{'type':_0x3e5b('0x0'),'content':_0x3e5b('0xb'),'key':null,'keyType':null,'variableName':null},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0xd'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0xe')},{'type':'keyValue','content':'','key':_0x3e5b('0xf'),'keyType':'variable','variableName':'calleridname'},{'type':'keyValue','content':'','key':_0x3e5b('0x10'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x11')},{'type':'keyValue','content':'','key':_0x3e5b('0x12'),'keyType':'variable','variableName':'queue'},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x13'),'keyType':'variable','variableName':_0x3e5b('0x14')},{'type':_0x3e5b('0xc'),'content':'','key':'Date','keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x15')},{'type':'string','content':'***\x20Agent\x20Info\x20***','key':null,'keyType':null,'variableName':null},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x16'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x17')},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x18'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x9')},{'type':_0x3e5b('0x0'),'content':_0x3e5b('0x19'),'key':null,'keyType':null,'variableName':null},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x1a'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x15')},{'type':'keyValue','content':'','key':_0x3e5b('0x1b'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x1c')},{'type':_0x3e5b('0xc'),'content':'','key':'Agent\x20Complete','keyType':_0x3e5b('0x6'),'variableName':'agentcompleteAt'},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x1d'),'keyType':'variable','variableName':_0x3e5b('0x1e')},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x1f'),'keyType':_0x3e5b('0x6'),'variableName':_0x3e5b('0x20')}];break;case _0x3e5b('0x7'):_0xeeaabc=[{'type':_0x3e5b('0x0'),'content':_0x3e5b('0xb'),'variableName':null},{'type':'keyValue','content':'','key':_0x3e5b('0x21'),'keyType':'variable','keyContent':'','variableName':_0x3e5b('0x9')},{'type':'keyValue','content':'','key':_0x3e5b('0x22'),'keyType':_0x3e5b('0x6'),'keyContent':'','variableName':_0x3e5b('0x23')},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x13'),'keyType':_0x3e5b('0x6'),'keyContent':'','variableName':_0x3e5b('0x14')},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x24'),'keyType':_0x3e5b('0x6'),'keyContent':'','variableName':_0x3e5b('0x25')},{'type':'string','content':_0x3e5b('0x19')},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x26'),'keyType':_0x3e5b('0x6'),'keyContent':'','variableName':_0x3e5b('0x27')},{'type':_0x3e5b('0xc'),'content':'','key':_0x3e5b('0x28'),'keyType':'variable','keyContent':'','variableName':_0x3e5b('0x29')}];break;}}return _0xeeaabc;};
\ No newline at end of file
+var _0xf109=['membername','starttime','Answer\x20Time','answertime','Complete\x20Time','endtime','getSubjects','toLowerCase','voice','inbound','push','variable','queue','calleridnum','outbound','string','Outbound\x20Call','destcalleridnum','keyValue','Caller\x20Number','Caller\x20Name','calleridname','destexten','UniqueId','uniqueid','destcalleridname','Agent\x20Number','***\x20Time\x20Info\x20***','Agent\x20Ring','agentcalledAt','Agent\x20Connect','agentconnectAt','Agent\x20Complete','agentcompleteAt','Hold\x20Time','holdtime','Talk\x20Time','***\x20Call\x20Info\x20***','Called\x20Number','Member\x20Name'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf109,0xce));var _0x9f10=function(_0x1b4b23,_0x5dd6d6){_0x1b4b23=_0x1b4b23-0x0;var _0x2a325b=_0xf109[_0x1b4b23];return _0x2a325b;};'use strict';exports[_0x9f10('0x0')]=function(_0x60d1e,_0x44c4f2){var _0x5d2950=[{'type':'string','content':'[xCALLY\x20Ticket]','variableName':null}];switch(_0x60d1e[_0x9f10('0x1')]()){case _0x9f10('0x2'):switch(_0x44c4f2[_0x9f10('0x1')]()){case _0x9f10('0x3'):_0x5d2950[_0x9f10('0x4')]({'type':_0x9f10('0x5'),'content':'','variableName':_0x9f10('0x6')});_0x5d2950[_0x9f10('0x4')]({'type':_0x9f10('0x5'),'content':'','variableName':_0x9f10('0x7')});break;case _0x9f10('0x8'):_0x5d2950['push']({'type':_0x9f10('0x9'),'content':_0x9f10('0xa'),'variableName':null});_0x5d2950[_0x9f10('0x4')]({'type':_0x9f10('0x5'),'content':'','variableName':_0x9f10('0xb')});break;}}return _0x5d2950;};exports['getDescriptions']=function(_0x318776,_0x18995b){var _0x4522d9=[];switch(_0x318776['toLowerCase']()){case'voice':switch(_0x18995b[_0x9f10('0x1')]()){case _0x9f10('0x3'):_0x4522d9=[{'type':_0x9f10('0x9'),'content':'***\x20Call\x20Info\x20***','key':null,'keyType':null,'variableName':null},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0xd'),'keyType':_0x9f10('0x5'),'variableName':'calleridnum'},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0xe'),'keyType':'variable','variableName':_0x9f10('0xf')},{'type':_0x9f10('0xc'),'content':'','key':'Call\x20To','keyType':'variable','variableName':_0x9f10('0x10')},{'type':_0x9f10('0xc'),'content':'','key':'Queue','keyType':_0x9f10('0x5'),'variableName':'queue'},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x11'),'keyType':'variable','variableName':_0x9f10('0x12')},{'type':_0x9f10('0xc'),'content':'','key':'Date','keyType':_0x9f10('0x5'),'variableName':'agentcalledAt'},{'type':_0x9f10('0x9'),'content':'***\x20Agent\x20Info\x20***','key':null,'keyType':null,'variableName':null},{'type':_0x9f10('0xc'),'content':'','key':'Agent\x20Name','keyType':'variable','variableName':_0x9f10('0x13')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x14'),'keyType':_0x9f10('0x5'),'variableName':_0x9f10('0xb')},{'type':_0x9f10('0x9'),'content':_0x9f10('0x15'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0x9f10('0x16'),'keyType':'variable','variableName':_0x9f10('0x17')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x18'),'keyType':'variable','variableName':_0x9f10('0x19')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x1a'),'keyType':'variable','variableName':_0x9f10('0x1b')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x1c'),'keyType':'variable','variableName':_0x9f10('0x1d')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x1e'),'keyType':_0x9f10('0x5'),'variableName':'talktime'}];break;case'outbound':_0x4522d9=[{'type':'string','content':_0x9f10('0x1f'),'variableName':null},{'type':'keyValue','content':'','key':_0x9f10('0x20'),'keyType':_0x9f10('0x5'),'keyContent':'','variableName':_0x9f10('0xb')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x21'),'keyType':'variable','keyContent':'','variableName':_0x9f10('0x22')},{'type':_0x9f10('0xc'),'content':'','key':_0x9f10('0x11'),'keyType':_0x9f10('0x5'),'keyContent':'','variableName':_0x9f10('0x12')},{'type':_0x9f10('0xc'),'content':'','key':'Date','keyType':_0x9f10('0x5'),'keyContent':'','variableName':_0x9f10('0x23')},{'type':_0x9f10('0x9'),'content':_0x9f10('0x15')},{'type':'keyValue','content':'','key':_0x9f10('0x24'),'keyType':_0x9f10('0x5'),'keyContent':'','variableName':_0x9f10('0x25')},{'type':'keyValue','content':'','key':_0x9f10('0x26'),'keyType':'variable','keyContent':'','variableName':_0x9f10('0x27')}];break;}}return _0x4522d9;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b1b=['name','role','stringify','null','Interaction','findOne','then','info','catch','error','tracked','query','omit','body','html','phone','fax','mobile','lodash','../../mysqldb','openchannel-interactions','mail-interactions','fax-interactions','../../config/logger','chat-interactions','upperFirst','InteractionId','unknown','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase'];(function(_0x218933,_0x25a2fe){var _0x189944=function(_0x2f7156){while(--_0x2f7156){_0x218933['push'](_0x218933['shift']());}};_0x189944(++_0x25a2fe);}(_0x2b1b,0xe4));var _0xb2b1=function(_0x58ed23,_0x286384){_0x58ed23=_0x58ed23-0x0;var _0x86b9e6=_0x2b1b[_0x58ed23];return _0x86b9e6;};'use strict';var _=require(_0xb2b1('0x0'));var db=require(_0xb2b1('0x1'))['db'];var loggers={'openchannel':require('../../config/logger')(_0xb2b1('0x2')),'mail':require('../../config/logger')(_0xb2b1('0x3')),'fax':require('../../config/logger')(_0xb2b1('0x4')),'sms':require(_0xb2b1('0x5'))('sms-interactions'),'chat':require(_0xb2b1('0x5'))(_0xb2b1('0x6'))};function getInteractionId(_0x208511,_0x44646e,_0x159956){if(_0x208511&&_0x208511[_[_0xb2b1('0x7')](_0x159956)+_0xb2b1('0x8')]){return _0x208511[_[_0xb2b1('0x7')](_0x159956)+'InteractionId'];}else if(_0x208511&&_0x208511['id']){return _0x208511['id'];}else if(_0x44646e&&_0x44646e['id']){return _0x44646e['id'];}else{return _0xb2b1('0x9');}}function log(_0x1496ed,_0x436ddf,_0x35d53c,_0x42ff36,_0x12c396,_0x16da16){loggers[_0x12c396['toLowerCase']()][_0x1496ed](_0xb2b1('0xa'),_0x16da16[_0xb2b1('0xb')](),_0x436ddf?_0x436ddf['id']:null,_0x436ddf?_0x436ddf[_0xb2b1('0xc')]:null,_0x436ddf?_0x436ddf[_0xb2b1('0xd')]:null,getInteractionId(_0x35d53c,_0x42ff36,_0x12c396),_0x35d53c?JSON[_0xb2b1('0xe')](_0x35d53c):_0xb2b1('0xf'));}function updateUser(_0x1db827,_0x166b46,_0x55337b,_0x3b7f6b,_0x21ee0c){db[_[_0xb2b1('0x7')](_0x3b7f6b)+_0xb2b1('0x10')][_0xb2b1('0x11')]({'where':{'id':getInteractionId(_0x166b46,_0x55337b,_0x3b7f6b)}})[_0xb2b1('0x12')](function(_0xc67b13){if(_0xc67b13){return _0xc67b13['update']({'UserId':_0x1db827?_0x1db827['id']:null});}})['then'](function(_0x3543ed){if(_0x3543ed){log(_0xb2b1('0x13'),_0x1db827,_0x166b46,_0x55337b,_0x3b7f6b,_0x21ee0c);}})[_0xb2b1('0x14')](function(){log(_0xb2b1('0x15'),_0x1db827,_0x166b46,_0x55337b,_0x3b7f6b,_0x21ee0c);});}exports[_0xb2b1('0x16')]=function(_0x171895,_0x163c1f){return function(_0x126c1,_0x4b9fd9,_0x82198e){var _0x256950=_0x126c1['user'];var _0x201e17={};var _0x99d512=_0x126c1[_0xb2b1('0x17')];if(_0x201e17){_0x201e17=_['clone'](_0x126c1['body']);_0x201e17=_[_0xb2b1('0x18')](_0x201e17,[_0xb2b1('0x19'),_0xb2b1('0x1a'),_0xb2b1('0x1b'),_0xb2b1('0x1c'),_0xb2b1('0x1d')]);}updateUser(_0x256950,_0x201e17,_0x99d512,_0x171895,_0x163c1f);_0x82198e(null);};};
\ No newline at end of file
+var _0x1829=['body','omit','html','phone','openchannel-interactions','../../config/logger','mail-interactions','fax-interactions','chat-interactions','upperFirst','InteractionId','unknown','name','null','Interaction','findOne','then','update','info','catch','tracked','user','query','clone'];(function(_0x230aa3,_0x404f9b){var _0x272149=function(_0x1d62f8){while(--_0x1d62f8){_0x230aa3['push'](_0x230aa3['shift']());}};_0x272149(++_0x404f9b);}(_0x1829,0x13c));var _0x9182=function(_0x476bf4,_0x2a3755){_0x476bf4=_0x476bf4-0x0;var _0x788ffe=_0x1829[_0x476bf4];return _0x788ffe;};'use strict';var _=require('lodash');var db=require('../../mysqldb')['db'];var loggers={'openchannel':require('../../config/logger')(_0x9182('0x0')),'mail':require(_0x9182('0x1'))(_0x9182('0x2')),'fax':require(_0x9182('0x1'))(_0x9182('0x3')),'sms':require(_0x9182('0x1'))('sms-interactions'),'chat':require(_0x9182('0x1'))(_0x9182('0x4'))};function getInteractionId(_0x4a99e4,_0x5b4aac,_0x21e0c2){if(_0x4a99e4&&_0x4a99e4[_[_0x9182('0x5')](_0x21e0c2)+_0x9182('0x6')]){return _0x4a99e4[_[_0x9182('0x5')](_0x21e0c2)+_0x9182('0x6')];}else if(_0x4a99e4&&_0x4a99e4['id']){return _0x4a99e4['id'];}else if(_0x5b4aac&&_0x5b4aac['id']){return _0x5b4aac['id'];}else{return _0x9182('0x7');}}function log(_0x326230,_0x1e725c,_0x559ed9,_0x29f425,_0x25a389,_0x675952){loggers[_0x25a389['toLowerCase']()][_0x326230]('[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x675952['toUpperCase'](),_0x1e725c?_0x1e725c['id']:null,_0x1e725c?_0x1e725c[_0x9182('0x8')]:null,_0x1e725c?_0x1e725c['role']:null,getInteractionId(_0x559ed9,_0x29f425,_0x25a389),_0x559ed9?JSON['stringify'](_0x559ed9):_0x9182('0x9'));}function updateUser(_0xeec98a,_0x2a2a43,_0x2756f0,_0x2e7009,_0x2a9e1b){db[_['upperFirst'](_0x2e7009)+_0x9182('0xa')][_0x9182('0xb')]({'where':{'id':getInteractionId(_0x2a2a43,_0x2756f0,_0x2e7009)}})[_0x9182('0xc')](function(_0x80fe55){if(_0x80fe55){return _0x80fe55[_0x9182('0xd')]({'UserId':_0xeec98a?_0xeec98a['id']:null});}})[_0x9182('0xc')](function(_0x5db614){if(_0x5db614){log(_0x9182('0xe'),_0xeec98a,_0x2a2a43,_0x2756f0,_0x2e7009,_0x2a9e1b);}})[_0x9182('0xf')](function(){log('error',_0xeec98a,_0x2a2a43,_0x2756f0,_0x2e7009,_0x2a9e1b);});}exports[_0x9182('0x10')]=function(_0x218397,_0xeb30c4){return function(_0x4abe34,_0x2932aa,_0x5e6f5e){var _0x5acea8=_0x4abe34[_0x9182('0x11')];var _0x126892={};var _0x47ab68=_0x4abe34[_0x9182('0x12')];if(_0x126892){_0x126892=_[_0x9182('0x13')](_0x4abe34[_0x9182('0x14')]);_0x126892=_[_0x9182('0x15')](_0x126892,[_0x9182('0x14'),_0x9182('0x16'),_0x9182('0x17'),'fax','mobile']);}updateUser(_0x5acea8,_0x126892,_0x47ab68,_0x218397,_0xeb30c4);_0x5e6f5e(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x585f=['Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','User','admin','user','isUserLimit','crypto','util','../../mysqldb','data1','license','split','createDecipher','format','utf8','final','parse','hasOwnProperty','use','then','count'];(function(_0x21eef3,_0x19f189){var _0x33943a=function(_0x8bb792){while(--_0x8bb792){_0x21eef3['push'](_0x21eef3['shift']());}};_0x33943a(++_0x19f189);}(_0x585f,0x180));var _0xf585=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x585f[_0x59ee6f];return _0x4c0979;};'use strict';var crypto=require(_0xf585('0x0'));var util=require(_0xf585('0x1'));var compose=require('composable-middleware');var db=require(_0xf585('0x2'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x54450d,_0x9db2b6){if(_0x54450d&&_0x9db2b6){if(_0x9db2b6[_0xf585('0x3')]&&_0x9db2b6[_0xf585('0x4')]){var _0x17aa21=_0x9db2b6[_0xf585('0x3')];var _0x49ec0e=_0x9db2b6[_0xf585('0x4')];var _0x40c86b=_0x17aa21[_0xf585('0x5')]('-')[0x4];var _0x48d2d7=_0x17aa21[_0xf585('0x5')]('-')[0x0];var _0x30b0fb=crypto[_0xf585('0x6')]('aes-256-ctr',util[_0xf585('0x7')]('%s:%s:%s',_0x40c86b,_0x17aa21,_0x48d2d7));var _0x314c12=_0x30b0fb['update'](_0x49ec0e,'base64',_0xf585('0x8'));_0x314c12+=_0x30b0fb[_0xf585('0x9')]('utf8');var _0x1b0f5a=JSON[_0xf585('0xa')](_0x314c12);return _0x1b0f5a[_0xf585('0xb')](_0x54450d)?_0x1b0f5a[_0x54450d]:null;}}return null;}function isLimit(_0xde04da,_0x1d49b4,_0x58f294,_0x3374b2){var _0x19130f=_0x1d49b4;return compose()[_0xf585('0xc')](function(_0x41cbeb,_0x20761b,_0xf1373f){return db['License']['findOne']({'where':{'id':0x1},'raw':!![]})['then'](function(_0x1f10e4){var _0x11a5dd=getValueFromLicense(_0xde04da,_0x1f10e4);return _0x11a5dd?_0x11a5dd:_0x19130f;})[_0xf585('0xd')](function(_0x4ecfb2){_0x19130f=_0x4ecfb2;return _0x58f294[_0xf585('0xe')](_0x3374b2);})[_0xf585('0xd')](function(_0x3023a3){if(_0x3023a3>=_0x19130f){return _0x20761b['status'](0x193)['json']({'message':util[_0xf585('0x7')](_0xf585('0xf'),_0xde04da)});}_0xf1373f();})[_0xf585('0x10')](function(_0x1f568f){_0xf1373f(_0x1f568f);});});}function isUserLimit(){return isLimit('users',0x1,db[_0xf585('0x11')],{'where':{'$or':[{'role':_0xf585('0x12')},{'role':_0xf585('0x13')}]}});}exports[_0xf585('0x14')]=isUserLimit;
\ No newline at end of file
+var _0x76d5=['admin','user','isUserLimit','crypto','../../mysqldb','../../config/environment','data1','license','split','createDecipher','%s:%s:%s','update','utf8','final','hasOwnProperty','use','License','findOne','then','count','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','users'];(function(_0x3b9e86,_0x5b92d6){var _0xd37d38=function(_0x358339){while(--_0x358339){_0x3b9e86['push'](_0x3b9e86['shift']());}};_0xd37d38(++_0x5b92d6);}(_0x76d5,0x19b));var _0x576d=function(_0x4da5c2,_0x1afa15){_0x4da5c2=_0x4da5c2-0x0;var _0x3fb445=_0x76d5[_0x4da5c2];return _0x3fb445;};'use strict';var crypto=require(_0x576d('0x0'));var util=require('util');var compose=require('composable-middleware');var db=require(_0x576d('0x1'))['db'];var config=require(_0x576d('0x2'));function getValueFromLicense(_0x4d483b,_0x572baf){if(_0x4d483b&&_0x572baf){if(_0x572baf[_0x576d('0x3')]&&_0x572baf[_0x576d('0x4')]){var _0x21b18c=_0x572baf[_0x576d('0x3')];var _0x49e9cf=_0x572baf[_0x576d('0x4')];var _0x1d7f08=_0x21b18c[_0x576d('0x5')]('-')[0x4];var _0x375782=_0x21b18c[_0x576d('0x5')]('-')[0x0];var _0x313661=crypto[_0x576d('0x6')]('aes-256-ctr',util['format'](_0x576d('0x7'),_0x1d7f08,_0x21b18c,_0x375782));var _0x270d99=_0x313661[_0x576d('0x8')](_0x49e9cf,'base64',_0x576d('0x9'));_0x270d99+=_0x313661[_0x576d('0xa')]('utf8');var _0x2ff2d2=JSON['parse'](_0x270d99);return _0x2ff2d2[_0x576d('0xb')](_0x4d483b)?_0x2ff2d2[_0x4d483b]:null;}}return null;}function isLimit(_0x2afb71,_0x482a83,_0x5dda00,_0x34ec8b){var _0x2abe6b=_0x482a83;return compose()[_0x576d('0xc')](function(_0x1b7c4e,_0x58ddf0,_0x2e46ac){return db[_0x576d('0xd')][_0x576d('0xe')]({'where':{'id':0x1},'raw':!![]})[_0x576d('0xf')](function(_0x2fe9a5){var _0x43a30a=getValueFromLicense(_0x2afb71,_0x2fe9a5);return _0x43a30a?_0x43a30a:_0x2abe6b;})[_0x576d('0xf')](function(_0x4ebe3a){_0x2abe6b=_0x4ebe3a;return _0x5dda00[_0x576d('0x10')](_0x34ec8b);})[_0x576d('0xf')](function(_0x548c79){if(_0x548c79>=_0x2abe6b){return _0x58ddf0[_0x576d('0x11')](0x193)[_0x576d('0x12')]({'message':util['format'](_0x576d('0x13'),_0x2afb71)});}_0x2e46ac();})['catch'](function(_0x2964d8){_0x2e46ac(_0x2964d8);});});}function isUserLimit(){return isLimit(_0x576d('0x14'),0x1,db['User'],{'where':{'$or':[{'role':_0x576d('0x15')},{'role':_0x576d('0x16')}]}});}exports[_0x576d('0x17')]=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e6c=['ASC','omit','isArray','isString','length','unset','lodash','sequelize','split','isEmpty','forOwn','limit','offset','sort','map','indexOf','cast','priority','substr','DESC','col','unsigned'];(function(_0x1e0b2f,_0x3627df){var _0x179c2e=function(_0x4c1710){while(--_0x4c1710){_0x1e0b2f['push'](_0x1e0b2f['shift']());}};_0x179c2e(++_0x3627df);}(_0x4e6c,0xf8));var _0xc4e6=function(_0xf37661,_0x3e44ad){_0xf37661=_0xf37661-0x0;var _0x80a28a=_0x4e6c[_0xf37661];return _0x80a28a;};'use strict';var _=require(_0xc4e6('0x0'));var sequelize=require(_0xc4e6('0x1'));var LIMIT_VALUE=0xfa;exports['fields']=function(_0x22c770){var _0x531cd6=null;if(_0x22c770){_0x531cd6=_0x22c770[_0xc4e6('0x2')](',');}return _0x531cd6;};exports['filters']=function(_0x36800c){var _0x5b6291={};if(!_[_0xc4e6('0x3')](_0x36800c)){_0x5b6291={};_[_0xc4e6('0x4')](_0x36800c,function(_0x2760b0,_0xd13ded){try{_0x5b6291[_0xd13ded]=JSON['parse'](_0x2760b0);}catch(_0x533951){_0x5b6291[_0xd13ded]=_0x2760b0['split'](',');}});}return _0x5b6291;};exports[_0xc4e6('0x5')]=function(_0xb8df92){_0xb8df92=parseInt(_0xb8df92,0xa);if(!_0xb8df92||_0xb8df92<0x0){_0xb8df92=LIMIT_VALUE;}return _0xb8df92;};exports[_0xc4e6('0x6')]=function(_0x3c35a4){_0x3c35a4=parseInt(_0x3c35a4,0xa);if(!_0x3c35a4||_0x3c35a4<0x0){_0x3c35a4=0x0;}return _0x3c35a4;};exports[_0xc4e6('0x7')]=function(_0x1ec01e){var _0x115ab3,_0x982661=null;if(_0x1ec01e){_0x115ab3=_0x1ec01e[_0xc4e6('0x2')](',');_0x982661=_[_0xc4e6('0x8')](_0x115ab3,function(_0x4b51f8){if(_0x4b51f8[_0xc4e6('0x9')]('-')===0x0){return[_0x4b51f8==='priority'?sequelize[_0xc4e6('0xa')](sequelize['col'](_0xc4e6('0xb')),'unsigned'):_0x4b51f8[_0xc4e6('0xc')](0x1),_0xc4e6('0xd')];}else{return[_0x4b51f8===_0xc4e6('0xb')?sequelize[_0xc4e6('0xa')](sequelize[_0xc4e6('0xe')](_0xc4e6('0xb')),_0xc4e6('0xf')):_0x4b51f8,_0xc4e6('0x10')];}});}return _0x982661;};exports[_0xc4e6('0x11')]=function(_0x2c731f,_0x376b93){if(_[_0xc4e6('0x3')](_0x2c731f)){return _0x2c731f;}if(_[_0xc4e6('0x12')](_0x2c731f)){for(var _0x26b253=0x0;_0x26b253<_0x2c731f['length'];_0x26b253+=0x1){_0x2c731f[_0x26b253]=this[_0xc4e6('0x11')](_0x2c731f[_0x26b253],_0x376b93);}return _0x2c731f;}if(!_['isObject'](_0x2c731f)){return _0x2c731f;}if(_[_0xc4e6('0x13')](_0x376b93)){_0x376b93=[_0x376b93];}if(!_[_0xc4e6('0x12')](_0x376b93)){return _0x2c731f;}for(var _0x466192=0x0;_0x466192<_0x376b93[_0xc4e6('0x14')];_0x466192+=0x1){_[_0xc4e6('0x15')](_0x2c731f,_0x376b93[_0x466192]);}for(var _0x4cef5c in _0x2c731f){if(_0x2c731f['hasOwnProperty'](_0x4cef5c)){_0x2c731f[_0x4cef5c]=this[_0xc4e6('0x11')](_0x2c731f[_0x4cef5c],_0x376b93);}}return _0x2c731f;};
\ No newline at end of file
+var _0x21fe=['isArray','lodash','sequelize','fields','split','filters','isEmpty','forOwn','parse','limit','offset','sort','map','priority','cast','col','unsigned','DESC','ASC','omit','length','isString'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x21fe,0x161));var _0xe21f=function(_0x3e523d,_0x6950a6){_0x3e523d=_0x3e523d-0x0;var _0x2bed3b=_0x21fe[_0x3e523d];return _0x2bed3b;};'use strict';var _=require(_0xe21f('0x0'));var sequelize=require(_0xe21f('0x1'));var LIMIT_VALUE=0xfa;exports[_0xe21f('0x2')]=function(_0x599af2){var _0x572720=null;if(_0x599af2){_0x572720=_0x599af2[_0xe21f('0x3')](',');}return _0x572720;};exports[_0xe21f('0x4')]=function(_0x4de08d){var _0x4824f8={};if(!_[_0xe21f('0x5')](_0x4de08d)){_0x4824f8={};_[_0xe21f('0x6')](_0x4de08d,function(_0x307815,_0x1614be){try{_0x4824f8[_0x1614be]=JSON[_0xe21f('0x7')](_0x307815);}catch(_0x3a44c1){_0x4824f8[_0x1614be]=_0x307815[_0xe21f('0x3')](',');}});}return _0x4824f8;};exports[_0xe21f('0x8')]=function(_0x3c4f36){_0x3c4f36=parseInt(_0x3c4f36,0xa);if(!_0x3c4f36||_0x3c4f36<0x0){_0x3c4f36=LIMIT_VALUE;}return _0x3c4f36;};exports[_0xe21f('0x9')]=function(_0x5c0c89){_0x5c0c89=parseInt(_0x5c0c89,0xa);if(!_0x5c0c89||_0x5c0c89<0x0){_0x5c0c89=0x0;}return _0x5c0c89;};exports[_0xe21f('0xa')]=function(_0x46302b){var _0x48e597,_0x265b1a=null;if(_0x46302b){_0x48e597=_0x46302b[_0xe21f('0x3')](',');_0x265b1a=_[_0xe21f('0xb')](_0x48e597,function(_0x1836c5){if(_0x1836c5['indexOf']('-')===0x0){return[_0x1836c5===_0xe21f('0xc')?sequelize[_0xe21f('0xd')](sequelize[_0xe21f('0xe')](_0xe21f('0xc')),_0xe21f('0xf')):_0x1836c5['substr'](0x1),_0xe21f('0x10')];}else{return[_0x1836c5===_0xe21f('0xc')?sequelize['cast'](sequelize[_0xe21f('0xe')](_0xe21f('0xc')),_0xe21f('0xf')):_0x1836c5,_0xe21f('0x11')];}});}return _0x265b1a;};exports[_0xe21f('0x12')]=function(_0xd4565d,_0x1865a9){if(_['isEmpty'](_0xd4565d)){return _0xd4565d;}if(_['isArray'](_0xd4565d)){for(var _0x4b6d55=0x0;_0x4b6d55<_0xd4565d[_0xe21f('0x13')];_0x4b6d55+=0x1){_0xd4565d[_0x4b6d55]=this[_0xe21f('0x12')](_0xd4565d[_0x4b6d55],_0x1865a9);}return _0xd4565d;}if(!_['isObject'](_0xd4565d)){return _0xd4565d;}if(_[_0xe21f('0x14')](_0x1865a9)){_0x1865a9=[_0x1865a9];}if(!_[_0xe21f('0x15')](_0x1865a9)){return _0xd4565d;}for(var _0x1eea3a=0x0;_0x1eea3a<_0x1865a9[_0xe21f('0x13')];_0x1eea3a+=0x1){_['unset'](_0xd4565d,_0x1865a9[_0x1eea3a]);}for(var _0x11e010 in _0xd4565d){if(_0xd4565d['hasOwnProperty'](_0x11e010)){_0xd4565d[_0x11e010]=this[_0xe21f('0x12')](_0xd4565d[_0x11e010],_0x1865a9);}}return _0xd4565d;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['use','join','root','favicon.ico','set','appPath','development','test','json\x20replacer','toISOString','split','static','/server/views','engine','html','ejs','renderFile','view\x20engine','urlencoded','50mb','json','initialize','body-parser','method-override','cookie-parser','errorhandler','path','cors','moment','./environment','../mysqldb','default','get','env','production'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var express=require('express');var favicon=require('serve-favicon');var bodyParser=require(_0x3071('0x0'));var methodOverride=require(_0x3071('0x1'));var cookieParser=require(_0x3071('0x2'));var errorHandler=require(_0x3071('0x3'));var path=require(_0x3071('0x4'));var passport=require('passport');var cors=require(_0x3071('0x5'));var moment=require(_0x3071('0x6'));var config=require(_0x3071('0x7'));var db=require(_0x3071('0x8'))['db'];exports[_0x3071('0x9')]=function(_0x41cf76){var _0x1d3dd6=_0x41cf76[_0x3071('0xa')](_0x3071('0xb'));if(_0x1d3dd6===_0x3071('0xc')){_0x41cf76[_0x3071('0xd')](favicon(path[_0x3071('0xe')](config[_0x3071('0xf')],'public',_0x3071('0x10'))));_0x41cf76[_0x3071('0x11')](_0x3071('0x12'),path[_0x3071('0xe')](config[_0x3071('0xf')],'public'));}if(_0x1d3dd6===_0x3071('0x13')||_0x1d3dd6===_0x3071('0x14')){_0x41cf76[_0x3071('0xd')](favicon(path[_0x3071('0xe')](config[_0x3071('0xf')],'client','favicon.ico')));_0x41cf76[_0x3071('0x11')]('appPath',path[_0x3071('0xe')](config[_0x3071('0xf')],'client'));_0x41cf76[_0x3071('0xd')](errorHandler());}_0x41cf76['set'](_0x3071('0x15'),function(_0x45c93b,_0x1271d0){if(this[_0x45c93b]instanceof Date){_0x1271d0=this[_0x45c93b][_0x3071('0x16')]()[_0x3071('0x17')]('.')[0x0]+'Z';}return _0x1271d0;});_0x41cf76[_0x3071('0xd')](express[_0x3071('0x18')](_0x41cf76[_0x3071('0xa')](_0x3071('0x12'))));_0x41cf76[_0x3071('0x11')]('views',config[_0x3071('0xf')]+_0x3071('0x19'));_0x41cf76[_0x3071('0x1a')](_0x3071('0x1b'),require(_0x3071('0x1c'))[_0x3071('0x1d')]);_0x41cf76[_0x3071('0x11')](_0x3071('0x1e'),'html');_0x41cf76[_0x3071('0xd')](bodyParser[_0x3071('0x1f')]({'limit':_0x3071('0x20'),'extended':!![]}));_0x41cf76['use'](bodyParser[_0x3071('0x21')]({'limit':'50mb'}));_0x41cf76[_0x3071('0xd')](cors());_0x41cf76[_0x3071('0xd')](methodOverride());_0x41cf76[_0x3071('0xd')](cookieParser());_0x41cf76[_0x3071('0xd')](passport[_0x3071('0x22')]());};
\ No newline at end of file
+var _0x9c44=['appPath','development','favicon.ico','set','client','json\x20replacer','split','static','views','html','ejs','renderFile','view\x20engine','urlencoded','50mb','json','body-parser','method-override','cookie-parser','errorhandler','path','passport','./environment','default','get','env','use','join','root','public'];(function(_0x274e0e,_0x2e7080){var _0x4c370f=function(_0x1fedd9){while(--_0x1fedd9){_0x274e0e['push'](_0x274e0e['shift']());}};_0x4c370f(++_0x2e7080);}(_0x9c44,0x178));var _0x49c4=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x9c44[_0x209941];return _0x1e8729;};'use strict';var express=require('express');var favicon=require('serve-favicon');var bodyParser=require(_0x49c4('0x0'));var methodOverride=require(_0x49c4('0x1'));var cookieParser=require(_0x49c4('0x2'));var errorHandler=require(_0x49c4('0x3'));var path=require(_0x49c4('0x4'));var passport=require(_0x49c4('0x5'));var cors=require('cors');var moment=require('moment');var config=require(_0x49c4('0x6'));var db=require('../mysqldb')['db'];exports[_0x49c4('0x7')]=function(_0x6030ae){var _0x69bc41=_0x6030ae[_0x49c4('0x8')](_0x49c4('0x9'));if(_0x69bc41==='production'){_0x6030ae[_0x49c4('0xa')](favicon(path[_0x49c4('0xb')](config[_0x49c4('0xc')],_0x49c4('0xd'),'favicon.ico')));_0x6030ae['set'](_0x49c4('0xe'),path[_0x49c4('0xb')](config['root'],_0x49c4('0xd')));}if(_0x69bc41===_0x49c4('0xf')||_0x69bc41==='test'){_0x6030ae['use'](favicon(path[_0x49c4('0xb')](config[_0x49c4('0xc')],'client',_0x49c4('0x10'))));_0x6030ae[_0x49c4('0x11')]('appPath',path[_0x49c4('0xb')](config[_0x49c4('0xc')],_0x49c4('0x12')));_0x6030ae[_0x49c4('0xa')](errorHandler());}_0x6030ae[_0x49c4('0x11')](_0x49c4('0x13'),function(_0x75ea8,_0x3de397){if(this[_0x75ea8]instanceof Date){_0x3de397=this[_0x75ea8]['toISOString']()[_0x49c4('0x14')]('.')[0x0]+'Z';}return _0x3de397;});_0x6030ae[_0x49c4('0xa')](express[_0x49c4('0x15')](_0x6030ae[_0x49c4('0x8')](_0x49c4('0xe'))));_0x6030ae['set'](_0x49c4('0x16'),config[_0x49c4('0xc')]+'/server/views');_0x6030ae['engine'](_0x49c4('0x17'),require(_0x49c4('0x18'))[_0x49c4('0x19')]);_0x6030ae['set'](_0x49c4('0x1a'),'html');_0x6030ae[_0x49c4('0xa')](bodyParser[_0x49c4('0x1b')]({'limit':_0x49c4('0x1c'),'extended':!![]}));_0x6030ae[_0x49c4('0xa')](bodyParser[_0x49c4('0x1d')]({'limit':_0x49c4('0x1c')}));_0x6030ae[_0x49c4('0xa')](cors());_0x6030ae[_0x49c4('0xa')](methodOverride());_0x6030ae[_0x49c4('0xa')](cookieParser());_0x6030ae['use'](passport['initialize']());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cb5=['join','createHash','md5','update','digest','hex','getUuid','win32','utf8','replace','macAddress','ipAddress','substring','lodash','bimedia-machine-uuid','child_process','execSync','orderBy','keys','length','filter','family','IPv4','internal','concat','head','mac','00:00:00:00:00:00','address','127.0.0.1','getFirstInterface','cpus','map','model'];(function(_0x16a2c9,_0x543ce2){var _0x2d359e=function(_0x2e03a3){while(--_0x2e03a3){_0x16a2c9['push'](_0x16a2c9['shift']());}};_0x2d359e(++_0x543ce2);}(_0x5cb5,0xd9));var _0x55cb=function(_0x33fd6c,_0x338e14){_0x33fd6c=_0x33fd6c-0x0;var _0x48c518=_0x5cb5[_0x33fd6c];return _0x48c518;};'use strict';var _=require(_0x55cb('0x0'));var os=require('os');var crypto=require('crypto');var machine=require(_0x55cb('0x1'));var exec=require(_0x55cb('0x2'))[_0x55cb('0x3')];function getInterfaces(){var _0x44231a=[];var _0x20898b=os['networkInterfaces']();var _0x3140a0=_[_0x55cb('0x4')](_[_0x55cb('0x5')](_0x20898b));for(var _0x19ac1a=0x0;_0x19ac1a<_0x3140a0[_0x55cb('0x6')];_0x19ac1a++){var _0x2d1950=_0x20898b[_0x3140a0[_0x19ac1a]][_0x55cb('0x7')](function(_0x272089){return _0x272089[_0x55cb('0x8')]===_0x55cb('0x9')&&_0x272089[_0x55cb('0xa')]===![];});_0x44231a=_0x44231a[_0x55cb('0xb')](_0x2d1950);}return _0x44231a;}function getFirstInterface(){var _0x3061b4=_[_0x55cb('0xc')](getInterfaces());return{'macAddress':_0x3061b4&&_0x3061b4[_0x55cb('0xd')]?_0x3061b4[_0x55cb('0xd')]:_0x55cb('0xe'),'ipAddress':_0x3061b4&&_0x3061b4[_0x55cb('0xf')]?_0x3061b4['address']:_0x55cb('0x10')};}exports[_0x55cb('0x11')]=getFirstInterface;function getCPUhash(){var _0x5644be=_[_0x55cb('0x4')](os[_0x55cb('0x12')]()[_0x55cb('0x13')](function(_0x3f3a02){return _0x3f3a02[_0x55cb('0x14')];}))[_0x55cb('0x15')](':');return crypto[_0x55cb('0x16')](_0x55cb('0x17'))[_0x55cb('0x18')](_0x5644be)[_0x55cb('0x19')](_0x55cb('0x1a'));}exports[_0x55cb('0x1b')]=function(){switch(os['platform']()){case _0x55cb('0x1c'):return exec('dmidecode\x20--string\x20system-uuid',{'encoding':_0x55cb('0x1d')})[_0x55cb('0x1e')]('\x0d\x0a','');default:var _0x59d313=getFirstInterface();var _0x2d7705=getCPUhash();var _0x1f5b9c=_0x2d7705+'|'+os['hostname']()+'|'+_0x59d313[_0x55cb('0x1f')]+'|'+_0x59d313[_0x55cb('0x20')];var _0x449bbb=crypto['createHash'](_0x55cb('0x17'))['update'](_0x1f5b9c)[_0x55cb('0x19')](_0x55cb('0x1a'));return _0x449bbb[_0x55cb('0x21')](0x0,0x8)+'-'+_0x449bbb[_0x55cb('0x21')](0x8,0xc)+'-'+_0x449bbb['substring'](0xc,0x10)+'-'+_0x449bbb[_0x55cb('0x21')](0x10,0x14)+'-'+_0x449bbb[_0x55cb('0x21')](0x14);}};
\ No newline at end of file
+var _0xae87=['00:00:00:00:00:00','127.0.0.1','map','model','join','createHash','md5','update','digest','hex','platform','win32','dmidecode\x20--string\x20system-uuid','utf8','hostname','ipAddress','substring','lodash','child_process','execSync','orderBy','keys','length','filter','internal','head','mac'];(function(_0x4ae625,_0xf396d0){var _0x31accf=function(_0x3ded6b){while(--_0x3ded6b){_0x4ae625['push'](_0x4ae625['shift']());}};_0x31accf(++_0xf396d0);}(_0xae87,0x7d));var _0x7ae8=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xae87[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x7ae8('0x0'));var os=require('os');var crypto=require('crypto');var machine=require('bimedia-machine-uuid');var exec=require(_0x7ae8('0x1'))[_0x7ae8('0x2')];function getInterfaces(){var _0x3b9cef=[];var _0x5999b6=os['networkInterfaces']();var _0x3c3ef4=_[_0x7ae8('0x3')](_[_0x7ae8('0x4')](_0x5999b6));for(var _0x499f82=0x0;_0x499f82<_0x3c3ef4[_0x7ae8('0x5')];_0x499f82++){var _0x5f07db=_0x5999b6[_0x3c3ef4[_0x499f82]][_0x7ae8('0x6')](function(_0x55e814){return _0x55e814['family']==='IPv4'&&_0x55e814[_0x7ae8('0x7')]===![];});_0x3b9cef=_0x3b9cef['concat'](_0x5f07db);}return _0x3b9cef;}function getFirstInterface(){var _0x642f2b=_[_0x7ae8('0x8')](getInterfaces());return{'macAddress':_0x642f2b&&_0x642f2b[_0x7ae8('0x9')]?_0x642f2b[_0x7ae8('0x9')]:_0x7ae8('0xa'),'ipAddress':_0x642f2b&&_0x642f2b['address']?_0x642f2b['address']:_0x7ae8('0xb')};}exports['getFirstInterface']=getFirstInterface;function getCPUhash(){var _0x118b50=_[_0x7ae8('0x3')](os['cpus']()[_0x7ae8('0xc')](function(_0x32a34b){return _0x32a34b[_0x7ae8('0xd')];}))[_0x7ae8('0xe')](':');return crypto[_0x7ae8('0xf')](_0x7ae8('0x10'))[_0x7ae8('0x11')](_0x118b50)[_0x7ae8('0x12')](_0x7ae8('0x13'));}exports['getUuid']=function(){switch(os[_0x7ae8('0x14')]()){case _0x7ae8('0x15'):return exec(_0x7ae8('0x16'),{'encoding':_0x7ae8('0x17')})['replace']('\x0d\x0a','');default:var _0x359fb9=getFirstInterface();var _0x1e87be=getCPUhash();var _0x5c9e98=_0x1e87be+'|'+os[_0x7ae8('0x18')]()+'|'+_0x359fb9['macAddress']+'|'+_0x359fb9[_0x7ae8('0x19')];var _0x4802b4=crypto['createHash'](_0x7ae8('0x10'))[_0x7ae8('0x11')](_0x5c9e98)['digest'](_0x7ae8('0x13'));return _0x4802b4['substring'](0x0,0x8)+'-'+_0x4802b4[_0x7ae8('0x1a')](0x8,0xc)+'-'+_0x4802b4[_0x7ae8('0x1a')](0xc,0x10)+'-'+_0x4802b4[_0x7ae8('0x1a')](0x10,0x14)+'-'+_0x4802b4[_0x7ae8('0x1a')](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d28=['YYYY-MM-DD\x20HH:mm','diff','days','DEMO\x20START\x20AT\x20%s','catch','message','finally','getUuid','License','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','https','crypto','moment','pkginfo','version','../../mysqldb','../environment','./hardware','../logger','../../api/jira/jira.controller','www.xcallymotion.com','format','GET','application/json','request','utf8','data','end','parse','error','createCipher','secrets','session','base64','final','createDecipher','aes-256-ctr','update','||FIELD||VALUE||\x0a','findOne','admin','fullname','email','then','|reason|','|uuid|','|machineUuid|','|name|','|email|','getFirstInterface','ipAddress','openIssue','MOTLICENSE','Motion\x20License\x20Alert','Alert','get','active','license','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','data2','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','data1','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase'];(function(_0x3dd0d9,_0x4102f5){var _0x454be3=function(_0x467038){while(--_0x467038){_0x3dd0d9['push'](_0x3dd0d9['shift']());}};_0x454be3(++_0x4102f5);}(_0x8d28,0x175));var _0x88d2=function(_0x2704cb,_0x4c4a53){_0x2704cb=_0x2704cb-0x0;var _0x2f0aff=_0x8d28[_0x2704cb];return _0x2f0aff;};'use strict';var util=require('util');var https=require(_0x88d2('0x0'));var crypto=require(_0x88d2('0x1'));var moment=require(_0x88d2('0x2'));var BPromise=require('bluebird');var pkginfo=require(_0x88d2('0x3'))(module,_0x88d2('0x4'));var db=require(_0x88d2('0x5'))['db'];var config=require(_0x88d2('0x6'));var hardware=require(_0x88d2('0x7'));var logger=require(_0x88d2('0x8'))('license');var jira=require(_0x88d2('0x9'));var HOST=_0x88d2('0xa');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var ADMIN;function httpRequest(_0x232e53){return new BPromise(function(_0x5dac7,_0x2ec5d6){var _0x5101f4={'host':HOST,'port':0x1bb,'path':util[_0x88d2('0xb')]('/api/servers/%s/check?version=%s',_0x232e53,module['exports']['version']),'method':_0x88d2('0xc'),'timeout':0xea60,'headers':{'Content-Type':_0x88d2('0xd')}};var _0x59d15e=https[_0x88d2('0xe')](_0x5101f4,function(_0x43999e){_0x43999e['setEncoding'](_0x88d2('0xf'));var _0x3bcf84='';_0x43999e['on'](_0x88d2('0x10'),function(_0x480814){_0x3bcf84+=_0x480814;});_0x43999e['on'](_0x88d2('0x11'),function(){try{_0x5dac7(JSON[_0x88d2('0x12')](_0x3bcf84));}catch(_0x3e775c){_0x2ec5d6(_0x3e775c);}});});_0x59d15e['on'](_0x88d2('0x13'),_0x2ec5d6);_0x59d15e[_0x88d2('0x11')]();});}function encryptDate(_0x5b04b5){var _0x29f991=crypto[_0x88d2('0x14')]('aes-256-ctr',config[_0x88d2('0x15')][_0x88d2('0x16')]);var _0x426c3c=_0x29f991['update'](_0x5b04b5,_0x88d2('0xf'),_0x88d2('0x17'));_0x426c3c+=_0x29f991[_0x88d2('0x18')]('base64');return _0x426c3c;}function decryptDate(_0x1aacfa){var _0xd274df=crypto[_0x88d2('0x19')](_0x88d2('0x1a'),config[_0x88d2('0x15')][_0x88d2('0x16')]);var _0x1c3593=_0xd274df[_0x88d2('0x1b')](_0x1aacfa,'base64','utf8');_0x1c3593+=_0xd274df[_0x88d2('0x18')]('utf8');return _0x1c3593;}function sendJiraAlert(_0x5dc8f6,_0x4f7378,_0xc46b1b){var _0x1112a0=_0x88d2('0x1c');return db['User'][_0x88d2('0x1d')]({'where':{'role':_0x88d2('0x1e')},'attributes':[_0x88d2('0x1f'),_0x88d2('0x20')],'raw':!![]})[_0x88d2('0x21')](function(_0x533eb){ADMIN=_0x533eb;_0x1112a0+=_0x88d2('0x22')+_0xc46b1b+'|\x0a';_0x1112a0+=_0x88d2('0x23')+_0x5dc8f6+'|\x0a';_0x1112a0+=_0x88d2('0x24')+_0x4f7378+'|\x0a';_0x1112a0+=_0x88d2('0x25')+ADMIN['fullname']+'|\x0a';_0x1112a0+=_0x88d2('0x26')+ADMIN[_0x88d2('0x20')]+'|\x0a';return _0x1112a0;})[_0x88d2('0x21')](function(_0x5d5c29){var _0x417023=hardware[_0x88d2('0x27')]()[_0x88d2('0x28')];return jira[_0x88d2('0x29')]({'key':_0x88d2('0x2a'),'summary':_0x88d2('0x2b'),'description':_0x5d5c29,'issuetype':_0x88d2('0x2c'),'oldToken':_0x5dc8f6,'newToken':_0x4f7378,'email':ADMIN[_0x88d2('0x20')],'name':ADMIN[_0x88d2('0x1f')],'reason':GRAY_PERIOD_REASON,'ip':_0x417023});});}function manageLicense(_0x157a8e,_0x34635e){var _0x3e9bc5=_0x34635e[_0x88d2('0x2d')]({'plain':!![]});httpRequest(_0x157a8e)[_0x88d2('0x21')](function(_0x47af20){if(_0x47af20[_0x88d2('0x2e')]){if(!_0x3e9bc5[_0x88d2('0x2f')]&&_0x3e9bc5[_0x88d2('0x2f')]!=_0x47af20[_0x88d2('0x2f')]||_0x3e9bc5[_0x88d2('0x2f')]&&_0x3e9bc5['data2']){logger[_0x88d2('0x30')](_0x88d2('0x31'));}if(_0x3e9bc5[_0x88d2('0x2f')]&&!_0x3e9bc5[_0x88d2('0x32')]&&_0x3e9bc5[_0x88d2('0x2f')]!=_0x47af20[_0x88d2('0x2f')]){logger[_0x88d2('0x30')](_0x88d2('0x33'));}if(_0x3e9bc5[_0x88d2('0x2f')]&&!_0x3e9bc5['data2']&&_0x3e9bc5[_0x88d2('0x2f')]==_0x47af20[_0x88d2('0x2f')]){return _0x34635e;}return _0x34635e[_0x88d2('0x1b')]({'data1':_0x157a8e,'data2':null,'license':_0x47af20[_0x88d2('0x2f')]});}else{if(_0x47af20[_0x88d2('0x2f')]||_0x3e9bc5[_0x88d2('0x2f')]){if(!_0x3e9bc5[_0x88d2('0x32')]){if(_0x3e9bc5[_0x88d2('0x34')]==_0x157a8e){GRAY_PERIOD_REASON=_0x88d2('0x35');logger[_0x88d2('0x30')](_0x88d2('0x36'));}else{GRAY_PERIOD_REASON=_0x88d2('0x37');logger[_0x88d2('0x30')](_0x88d2('0x38'),_0x3e9bc5[_0x88d2('0x34')],_0x157a8e);}sendJiraAlert(_0x3e9bc5['data1'],_0x47af20['uuid'],GRAY_PERIOD_REASON);logger['info'](_0x88d2('0x39'),GRAY_PERIOD_REASON[_0x88d2('0x3a')](),moment()['format']('YYYY-MM-DD\x20HH:mm'));return _0x34635e['update']({'data2':encryptDate(moment()[_0x88d2('0xb')](_0x88d2('0x3b')))});}else{if(moment()[_0x88d2('0x3c')](decryptDate(_0x3e9bc5[_0x88d2('0x32')]),_0x88d2('0x3d'))>DAYS){logger[_0x88d2('0x30')](_0x88d2('0x3e'),moment()['format'](_0x88d2('0x3b')));return _0x34635e[_0x88d2('0x1b')]({'data1':_0x157a8e,'data2':null,'license':null});}}}else{if(_0x3e9bc5[_0x88d2('0x34')]!=_0x157a8e){logger['info'](_0x88d2('0x38'),_0x3e9bc5[_0x88d2('0x34')],_0x157a8e);return _0x34635e[_0x88d2('0x1b')]({'data1':_0x157a8e,'data2':null,'license':null});}}}return _0x34635e;})['then'](function(_0x1a1ddd){_0x34635e=_0x1a1ddd;})[_0x88d2('0x3f')](function(_0x33a5d1){logger[_0x88d2('0x13')](_0x33a5d1[_0x88d2('0x40')]);})[_0x88d2('0x41')](function(){setTimeout(function(){manageLicense(hardware[_0x88d2('0x42')](),_0x34635e);},TIME);});}function defaultLicense(){var _0x3434a9=hardware[_0x88d2('0x42')]();if(_0x3434a9){return db[_0x88d2('0x43')][_0x88d2('0x44')]({'where':{'id':0x1},'defaults':{'data1':_0x3434a9}})[_0x88d2('0x45')](function(_0x4fb12b,_0x2e5305){logger[_0x88d2('0x30')](_0x88d2('0x46'),_0x3434a9);manageLicense(_0x3434a9,_0x4fb12b);})[_0x88d2('0x3f')](function(_0x4e7dbf){logger[_0x88d2('0x13')](_0x4e7dbf['message']);});}}exports[_0x88d2('0x47')]=defaultLicense;
\ No newline at end of file
+var _0x8168=['util','https','moment','pkginfo','../../mysqldb','../environment','../logger','license','www.xcallymotion.com','format','exports','version','application/json','request','setEncoding','utf8','data','end','parse','createCipher','secrets','session','update','base64','aes-256-ctr','final','||FIELD||VALUE||\x0a','User','findOne','admin','fullname','then','|reason|','|uuid|','|machineUuid|','|name|','email','getFirstInterface','ipAddress','MOTLICENSE','Motion\x20License\x20Alert','Alert','get','data2','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','data1','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','uuid','toUpperCase','YYYY-MM-DD\x20HH:mm','days','DEMO\x20START\x20AT\x20%s','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','catch','message','getUuid','License','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','error','default'];(function(_0x1ed933,_0x355330){var _0x171b46=function(_0x451d12){while(--_0x451d12){_0x1ed933['push'](_0x1ed933['shift']());}};_0x171b46(++_0x355330);}(_0x8168,0x82));var _0x8816=function(_0x3055ab,_0x4d1f74){_0x3055ab=_0x3055ab-0x0;var _0x31d336=_0x8168[_0x3055ab];return _0x31d336;};'use strict';var util=require(_0x8816('0x0'));var https=require(_0x8816('0x1'));var crypto=require('crypto');var moment=require(_0x8816('0x2'));var BPromise=require('bluebird');var pkginfo=require(_0x8816('0x3'))(module,'version');var db=require(_0x8816('0x4'))['db'];var config=require(_0x8816('0x5'));var hardware=require('./hardware');var logger=require(_0x8816('0x6'))(_0x8816('0x7'));var jira=require('../../api/jira/jira.controller');var HOST=_0x8816('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var ADMIN;function httpRequest(_0x528a69){return new BPromise(function(_0x1ed23e,_0x4e2e4e){var _0x11f729={'host':HOST,'port':0x1bb,'path':util[_0x8816('0x9')]('/api/servers/%s/check?version=%s',_0x528a69,module[_0x8816('0xa')][_0x8816('0xb')]),'method':'GET','timeout':0xea60,'headers':{'Content-Type':_0x8816('0xc')}};var _0x574e54=https[_0x8816('0xd')](_0x11f729,function(_0x27ca83){_0x27ca83[_0x8816('0xe')](_0x8816('0xf'));var _0x2e24e7='';_0x27ca83['on'](_0x8816('0x10'),function(_0x4f4ba6){_0x2e24e7+=_0x4f4ba6;});_0x27ca83['on'](_0x8816('0x11'),function(){try{_0x1ed23e(JSON[_0x8816('0x12')](_0x2e24e7));}catch(_0x4109eb){_0x4e2e4e(_0x4109eb);}});});_0x574e54['on']('error',_0x4e2e4e);_0x574e54['end']();});}function encryptDate(_0x30b3a1){var _0x100154=crypto[_0x8816('0x13')]('aes-256-ctr',config[_0x8816('0x14')][_0x8816('0x15')]);var _0x1c2eb1=_0x100154[_0x8816('0x16')](_0x30b3a1,_0x8816('0xf'),'base64');_0x1c2eb1+=_0x100154['final'](_0x8816('0x17'));return _0x1c2eb1;}function decryptDate(_0x40d534){var _0xacab21=crypto['createDecipher'](_0x8816('0x18'),config[_0x8816('0x14')][_0x8816('0x15')]);var _0x59f325=_0xacab21['update'](_0x40d534,'base64',_0x8816('0xf'));_0x59f325+=_0xacab21[_0x8816('0x19')](_0x8816('0xf'));return _0x59f325;}function sendJiraAlert(_0xd999fe,_0x3a350e,_0x3e7476){var _0x87246f=_0x8816('0x1a');return db[_0x8816('0x1b')][_0x8816('0x1c')]({'where':{'role':_0x8816('0x1d')},'attributes':[_0x8816('0x1e'),'email'],'raw':!![]})[_0x8816('0x1f')](function(_0x7187ab){ADMIN=_0x7187ab;_0x87246f+=_0x8816('0x20')+_0x3e7476+'|\x0a';_0x87246f+=_0x8816('0x21')+_0xd999fe+'|\x0a';_0x87246f+=_0x8816('0x22')+_0x3a350e+'|\x0a';_0x87246f+=_0x8816('0x23')+ADMIN[_0x8816('0x1e')]+'|\x0a';_0x87246f+='|email|'+ADMIN[_0x8816('0x24')]+'|\x0a';return _0x87246f;})[_0x8816('0x1f')](function(_0x5473c0){var _0xda1d59=hardware[_0x8816('0x25')]()[_0x8816('0x26')];return jira['openIssue']({'key':_0x8816('0x27'),'summary':_0x8816('0x28'),'description':_0x5473c0,'issuetype':_0x8816('0x29'),'oldToken':_0xd999fe,'newToken':_0x3a350e,'email':ADMIN[_0x8816('0x24')],'name':ADMIN[_0x8816('0x1e')],'reason':GRAY_PERIOD_REASON,'ip':_0xda1d59});});}function manageLicense(_0x3e76ba,_0x530b1b){var _0x4c359f=_0x530b1b[_0x8816('0x2a')]({'plain':!![]});httpRequest(_0x3e76ba)[_0x8816('0x1f')](function(_0x11dc68){if(_0x11dc68['active']){if(!_0x4c359f[_0x8816('0x7')]&&_0x4c359f['license']!=_0x11dc68[_0x8816('0x7')]||_0x4c359f[_0x8816('0x7')]&&_0x4c359f[_0x8816('0x2b')]){logger[_0x8816('0x2c')](_0x8816('0x2d'));}if(_0x4c359f[_0x8816('0x7')]&&!_0x4c359f['data2']&&_0x4c359f[_0x8816('0x7')]!=_0x11dc68[_0x8816('0x7')]){logger[_0x8816('0x2c')](_0x8816('0x2e'));}if(_0x4c359f[_0x8816('0x7')]&&!_0x4c359f[_0x8816('0x2b')]&&_0x4c359f[_0x8816('0x7')]==_0x11dc68[_0x8816('0x7')]){return _0x530b1b;}return _0x530b1b[_0x8816('0x16')]({'data1':_0x3e76ba,'data2':null,'license':_0x11dc68[_0x8816('0x7')]});}else{if(_0x11dc68[_0x8816('0x7')]||_0x4c359f[_0x8816('0x7')]){if(!_0x4c359f['data2']){if(_0x4c359f[_0x8816('0x2f')]==_0x3e76ba){GRAY_PERIOD_REASON='Disabled';logger[_0x8816('0x2c')](_0x8816('0x30'));}else{GRAY_PERIOD_REASON=_0x8816('0x31');logger[_0x8816('0x2c')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x4c359f[_0x8816('0x2f')],_0x3e76ba);}sendJiraAlert(_0x4c359f['data1'],_0x11dc68[_0x8816('0x32')],GRAY_PERIOD_REASON);logger[_0x8816('0x2c')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0x8816('0x33')](),moment()['format'](_0x8816('0x34')));return _0x530b1b[_0x8816('0x16')]({'data2':encryptDate(moment()['format'](_0x8816('0x34')))});}else{if(moment()['diff'](decryptDate(_0x4c359f[_0x8816('0x2b')]),_0x8816('0x35'))>DAYS){logger[_0x8816('0x2c')](_0x8816('0x36'),moment()[_0x8816('0x9')](_0x8816('0x34')));return _0x530b1b[_0x8816('0x16')]({'data1':_0x3e76ba,'data2':null,'license':null});}}}else{if(_0x4c359f[_0x8816('0x2f')]!=_0x3e76ba){logger[_0x8816('0x2c')](_0x8816('0x37'),_0x4c359f[_0x8816('0x2f')],_0x3e76ba);return _0x530b1b[_0x8816('0x16')]({'data1':_0x3e76ba,'data2':null,'license':null});}}}return _0x530b1b;})['then'](function(_0x5069d7){_0x530b1b=_0x5069d7;})[_0x8816('0x38')](function(_0x2c790e){logger['error'](_0x2c790e[_0x8816('0x39')]);})['finally'](function(){setTimeout(function(){manageLicense(hardware[_0x8816('0x3a')](),_0x530b1b);},TIME);});}function defaultLicense(){var _0x21519b=hardware[_0x8816('0x3a')]();if(_0x21519b){return db[_0x8816('0x3b')][_0x8816('0x3c')]({'where':{'id':0x1},'defaults':{'data1':_0x21519b}})[_0x8816('0x3d')](function(_0x40efa1,_0x306e9e){logger[_0x8816('0x2c')](_0x8816('0x3e'),_0x21519b);manageLicense(_0x21519b,_0x40efa1);})['catch'](function(_0x493f1b){logger[_0x8816('0x3f')](_0x493f1b[_0x8816('0x39')]);});}}exports[_0x8816('0x40')]=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb665=['gray','add','days','grayReason','2027-01-01T00:00:00.000Z','Breaking\x20license','message','Demo\x20license','getLicense','License','find','defaults','util','moment','./hardware','../../mysqldb','isEmpty','License\x20key\x20value\x20not\x20found','data1','data2','split','createDecipher','aes-256-ctr','format','update','base64','utf8','final','parse','uuid','machineUuid','getUuid','secrets'];(function(_0x1b93e6,_0x1259ab){var _0x44fc47=function(_0x13d970){while(--_0x13d970){_0x1b93e6['push'](_0x1b93e6['shift']());}};_0x44fc47(++_0x1259ab);}(_0xb665,0x135));var _0x5b66=function(_0x16e491,_0x56fef6){_0x16e491=_0x16e491-0x0;var _0x38be44=_0xb665[_0x16e491];return _0x38be44;};'use strict';var crypto=require('crypto');var util=require(_0x5b66('0x0'));var _=require('lodash');var moment=require(_0x5b66('0x1'));var hardware=require(_0x5b66('0x2'));var config=require('../environment');var db=require(_0x5b66('0x3'))['db'];function checkLicense(_0x43d005,_0x528b49){if(_0x43d005){try{var _0x52fe5c=_0x528b49||_0x43d005['license'];if(_[_0x5b66('0x4')](_0x52fe5c)){throw new Error(_0x5b66('0x5'));}var _0x478c74=_0x43d005[_0x5b66('0x6')];var _0x560ce5=_0x43d005[_0x5b66('0x7')];var _0x5b9e4d=_0x478c74[_0x5b66('0x8')]('-')[0x4];var _0x12762f=_0x478c74[_0x5b66('0x8')]('-')[0x0];var _0x4213a6=crypto[_0x5b66('0x9')](_0x5b66('0xa'),util[_0x5b66('0xb')]('%s:%s:%s',_0x5b9e4d,_0x478c74,_0x12762f));var _0x4e371a=_0x4213a6[_0x5b66('0xc')](_0x52fe5c,_0x5b66('0xd'),_0x5b66('0xe'));_0x4e371a+=_0x4213a6[_0x5b66('0xf')](_0x5b66('0xe'));var _0x5ccab5=JSON[_0x5b66('0x10')](_0x4e371a);_0x5ccab5['demo']=![];_0x5ccab5[_0x5b66('0x11')]=_0x478c74;_0x5ccab5[_0x5b66('0x12')]=hardware[_0x5b66('0x13')]();if(_0x560ce5){var _0x524013=crypto['createDecipher'](_0x5b66('0xa'),config[_0x5b66('0x14')]['session']);var _0x20c765=_0x524013[_0x5b66('0xc')](_0x560ce5,_0x5b66('0xd'),_0x5b66('0xe'));_0x20c765+=_0x524013[_0x5b66('0xf')](_0x5b66('0xe'));_0x5ccab5[_0x5b66('0x15')]=_0x20c765;_0x5ccab5['deadline']=moment(_0x20c765)[_0x5b66('0x16')](0x7,_0x5b66('0x17'))[_0x5b66('0xb')]();_0x5ccab5[_0x5b66('0x18')]=_0x5ccab5[_0x5b66('0x11')]!=_0x5ccab5[_0x5b66('0x12')]?'changed':'disabled';}return _0x5ccab5;}catch(_0x41c0c3){return{'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x5b66('0x19'),'chat':![],'mail':![],'fax':![],'messaging':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x5b66('0x1a'),'uuid':_0x43d005[_0x5b66('0x6')],'machineUuid':hardware[_0x5b66('0x13')](),'message':_0x41c0c3[_0x5b66('0x1b')],'virtual':0x0,'voice':!![],'preferred':![]};}}return{'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x5b66('0x19'),'chat':![],'mail':![],'fax':![],'messaging':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x5b66('0x1c'),'uuid':_0x43d005['data1'],'machineUuid':hardware[_0x5b66('0x13')](),'virtual':0x0,'voice':!![],'preferred':![]};}exports[_0x5b66('0x1d')]=function(_0xad22e3){return db[_0x5b66('0x1e')][_0x5b66('0x1f')](_[_0x5b66('0x20')](_0xad22e3,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x4358e1){return checkLicense(_0x4358e1,null);});};exports['checkLicense']=checkLicense;
\ No newline at end of file
+var _0x1a57=['demo','uuid','getUuid','secrets','session','base64','final','gray','deadline','add','grayReason','machineUuid','changed','2027-01-01T00:00:00.000Z','Breaking\x20license','message','Demo\x20license','getLicense','License','find','defaults','then','checkLicense','crypto','util','moment','./hardware','license','isEmpty','License\x20key\x20value\x20not\x20found','data1','data2','split','createDecipher','aes-256-ctr','format','%s:%s:%s','update','utf8'];(function(_0x4a1835,_0xe4a237){var _0x203f1b=function(_0x52886e){while(--_0x52886e){_0x4a1835['push'](_0x4a1835['shift']());}};_0x203f1b(++_0xe4a237);}(_0x1a57,0xb3));var _0x71a5=function(_0x176a4e,_0x305d9f){_0x176a4e=_0x176a4e-0x0;var _0x333a81=_0x1a57[_0x176a4e];return _0x333a81;};'use strict';var crypto=require(_0x71a5('0x0'));var util=require(_0x71a5('0x1'));var _=require('lodash');var moment=require(_0x71a5('0x2'));var hardware=require(_0x71a5('0x3'));var config=require('../environment');var db=require('../../mysqldb')['db'];function checkLicense(_0x1c2ee5,_0x146039){if(_0x1c2ee5){try{var _0x146fb4=_0x146039||_0x1c2ee5[_0x71a5('0x4')];if(_[_0x71a5('0x5')](_0x146fb4)){throw new Error(_0x71a5('0x6'));}var _0x24e65f=_0x1c2ee5[_0x71a5('0x7')];var _0x327646=_0x1c2ee5[_0x71a5('0x8')];var _0xe42e7c=_0x24e65f['split']('-')[0x4];var _0x1a7133=_0x24e65f[_0x71a5('0x9')]('-')[0x0];var _0xf69e71=crypto[_0x71a5('0xa')](_0x71a5('0xb'),util[_0x71a5('0xc')](_0x71a5('0xd'),_0xe42e7c,_0x24e65f,_0x1a7133));var _0x144eb9=_0xf69e71[_0x71a5('0xe')](_0x146fb4,'base64','utf8');_0x144eb9+=_0xf69e71['final'](_0x71a5('0xf'));var _0x18587e=JSON['parse'](_0x144eb9);_0x18587e[_0x71a5('0x10')]=![];_0x18587e[_0x71a5('0x11')]=_0x24e65f;_0x18587e['machineUuid']=hardware[_0x71a5('0x12')]();if(_0x327646){var _0x7b8bc5=crypto[_0x71a5('0xa')]('aes-256-ctr',config[_0x71a5('0x13')][_0x71a5('0x14')]);var _0x36a2ad=_0x7b8bc5[_0x71a5('0xe')](_0x327646,_0x71a5('0x15'),_0x71a5('0xf'));_0x36a2ad+=_0x7b8bc5[_0x71a5('0x16')](_0x71a5('0xf'));_0x18587e[_0x71a5('0x17')]=_0x36a2ad;_0x18587e[_0x71a5('0x18')]=moment(_0x36a2ad)[_0x71a5('0x19')](0x7,'days')[_0x71a5('0xc')]();_0x18587e[_0x71a5('0x1a')]=_0x18587e['uuid']!=_0x18587e[_0x71a5('0x1b')]?_0x71a5('0x1c'):'disabled';}return _0x18587e;}catch(_0x14845a){return{'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x71a5('0x1d'),'chat':![],'mail':![],'fax':![],'messaging':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x71a5('0x1e'),'uuid':_0x1c2ee5[_0x71a5('0x7')],'machineUuid':hardware[_0x71a5('0x12')](),'message':_0x14845a[_0x71a5('0x1f')],'virtual':0x0,'voice':!![],'preferred':![]};}}return{'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x71a5('0x1d'),'chat':![],'mail':![],'fax':![],'messaging':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x71a5('0x20'),'uuid':_0x1c2ee5[_0x71a5('0x7')],'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'preferred':![]};}exports[_0x71a5('0x21')]=function(_0x18fee6){return db[_0x71a5('0x22')][_0x71a5('0x23')](_[_0x71a5('0x24')](_0x18fee6,{'raw':!![],'where':{'id':0x1}}))[_0x71a5('0x25')](function(_0x588fe2){return checkLicense(_0x588fe2,null);});};exports[_0x71a5('0x26')]=checkLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48d0=['http://localhost:9000','app-id','secret','exports'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x48d0,0xd3));var _0x048d=function(_0x544054,_0x314aef){_0x544054=_0x544054-0x0;var _0x5bcd6e=_0x48d0[_0x544054];return _0x5bcd6e;};'use strict';module[_0x048d('0x0')]={'DOMAIN':_0x048d('0x1'),'SESSION_SECRET':'myappanuglar-secret','GOOGLE_ID':_0x048d('0x2'),'GOOGLE_SECRET':_0x048d('0x3'),'DEBUG':''};
\ No newline at end of file
+var _0xd847=['myappanuglar-secret','app-id','exports','http://localhost:9000'];(function(_0x2272b5,_0x362458){var _0x110156=function(_0x5c2e32){while(--_0x5c2e32){_0x2272b5['push'](_0x2272b5['shift']());}};_0x110156(++_0x362458);}(_0xd847,0x18a));var _0x7d84=function(_0x35dcea,_0x773857){_0x35dcea=_0x35dcea-0x0;var _0x3efa1e=_0xd847[_0x35dcea];return _0x3efa1e;};'use strict';module[_0x7d84('0x0')]={'DOMAIN':_0x7d84('0x1'),'SESSION_SECRET':_0x7d84('0x2'),'GOOGLE_ID':_0x7d84('0x3'),'GOOGLE_SECRET':'secret','DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3e0=['toUpperCase','message','Logger','transports','File','%s-%s','error','info','Console','env','debugLevel','moment','winston','util','INFO','join','/var','log','xcally','%s-%s.log','format','YYYY-MM-DD\x20HH:mm:ss','level'];(function(_0x1776c6,_0x505310){var _0x31445a=function(_0xaf7202){while(--_0xaf7202){_0x1776c6['push'](_0x1776c6['shift']());}};_0x31445a(++_0x505310);}(_0xe3e0,0x67));var _0x0e3e=function(_0xfbdff6,_0x2af690){_0xfbdff6=_0xfbdff6-0x0;var _0x4cb9be=_0xe3e0[_0xfbdff6];return _0x4cb9be;};'use strict';var moment=require(_0x0e3e('0x0'));var winston=require(_0x0e3e('0x1'));var util=require(_0x0e3e('0x2'));var path=require('path');var debugLevel=_0x0e3e('0x3');function filename(_0x5411c0,_0x15ae62){return path[_0x0e3e('0x4')](_0x0e3e('0x5'),_0x0e3e('0x6'),_0x0e3e('0x7'),util['format'](_0x0e3e('0x8'),_0x5411c0,_0x15ae62));}function formatter(_0x201841,_0x50464a){return util['format']('[%s]\x20[%s]\x20%s\x20-\x20%s',moment()[_0x0e3e('0x9')](_0x0e3e('0xa')),_0x50464a[_0x0e3e('0xb')][_0x0e3e('0xc')](),_0x201841,_0x50464a[_0x0e3e('0xd')]);}module['exports']=function(_0x300f61){return new winston[(_0x0e3e('0xe'))]({'transports':[new winston[(_0x0e3e('0xf'))][(_0x0e3e('0x10'))]({'name':util[_0x0e3e('0x9')](_0x0e3e('0x11'),_0x300f61,_0x0e3e('0x12')),'filename':filename(_0x300f61,_0x0e3e('0x12')),'level':_0x0e3e('0x12'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x28099c){return formatter(_0x300f61,_0x28099c);}}),new winston[(_0x0e3e('0xf'))]['File']({'name':util[_0x0e3e('0x9')](_0x0e3e('0x11'),_0x300f61,'info'),'filename':filename(_0x300f61,_0x0e3e('0x13')),'level':_0x0e3e('0x13'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x433726){return formatter(_0x300f61,_0x433726);}}),new winston[(_0x0e3e('0xf'))][(_0x0e3e('0x14'))]({'level':process[_0x0e3e('0x15')][_0x0e3e('0x16')]||debugLevel,'json':![],'formatter':function(_0x5d64a2){return formatter(_0x300f61,_0x5d64a2);}})]});};
\ No newline at end of file
+var _0xd1e5=['exports','Logger','transports','File','%s-%s','error','info','env','debugLevel','moment','winston','util','path','join','xcally','format','%s-%s.log','[%s]\x20[%s]\x20%s\x20-\x20%s','level','toUpperCase','message'];(function(_0x82129b,_0x484ae9){var _0x2ae5dc=function(_0x299e34){while(--_0x299e34){_0x82129b['push'](_0x82129b['shift']());}};_0x2ae5dc(++_0x484ae9);}(_0xd1e5,0x1ec));var _0x5d1e=function(_0x32c402,_0x12474b){_0x32c402=_0x32c402-0x0;var _0x1e4765=_0xd1e5[_0x32c402];return _0x1e4765;};'use strict';var moment=require(_0x5d1e('0x0'));var winston=require(_0x5d1e('0x1'));var util=require(_0x5d1e('0x2'));var path=require(_0x5d1e('0x3'));var debugLevel='INFO';function filename(_0xd490b1,_0x488190){return path[_0x5d1e('0x4')]('/var','log',_0x5d1e('0x5'),util[_0x5d1e('0x6')](_0x5d1e('0x7'),_0xd490b1,_0x488190));}function formatter(_0x3752a8,_0x55bfb0){return util[_0x5d1e('0x6')](_0x5d1e('0x8'),moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),_0x55bfb0[_0x5d1e('0x9')][_0x5d1e('0xa')](),_0x3752a8,_0x55bfb0[_0x5d1e('0xb')]);}module[_0x5d1e('0xc')]=function(_0x36d6d7){return new winston[(_0x5d1e('0xd'))]({'transports':[new winston[(_0x5d1e('0xe'))][(_0x5d1e('0xf'))]({'name':util[_0x5d1e('0x6')](_0x5d1e('0x10'),_0x36d6d7,_0x5d1e('0x11')),'filename':filename(_0x36d6d7,_0x5d1e('0x11')),'level':_0x5d1e('0x11'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x1f804f){return formatter(_0x36d6d7,_0x1f804f);}}),new winston['transports'][(_0x5d1e('0xf'))]({'name':util[_0x5d1e('0x6')]('%s-%s',_0x36d6d7,_0x5d1e('0x12')),'filename':filename(_0x36d6d7,_0x5d1e('0x12')),'level':'info','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x557206){return formatter(_0x36d6d7,_0x557206);}}),new winston[(_0x5d1e('0xe'))]['Console']({'level':process[_0x5d1e('0x13')][_0x5d1e('0x14')]||debugLevel,'json':![],'formatter':function(_0x30d444){return formatter(_0x36d6d7,_0x30d444);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe19=['../../services/routing/index.js','exports','path','express','join','../../services/express/index.js','ami','../../services/ami/index.js','agi','email','../../services/email/index.js'];(function(_0x77d310,_0x2b2fe7){var _0x2cdce4=function(_0xbaa481){while(--_0xbaa481){_0x77d310['push'](_0x77d310['shift']());}};_0x2cdce4(++_0x2b2fe7);}(_0xfe19,0x12b));var _0x9fe1=function(_0x79a41b,_0x4d965c){_0x79a41b=_0x79a41b-0x0;var _0x58787a=_0xfe19[_0x79a41b];return _0x58787a;};'use strict';var path=require(_0x9fe1('0x0'));var os=require('os');var config={'apps':[{'name':_0x9fe1('0x1'),'script':path[_0x9fe1('0x2')](__dirname,_0x9fe1('0x3'))},{'name':_0x9fe1('0x4'),'script':path['join'](__dirname,_0x9fe1('0x5'))},{'name':_0x9fe1('0x6'),'script':path['join'](__dirname,'../../services/agi/index.js')},{'name':_0x9fe1('0x7'),'script':path[_0x9fe1('0x2')](__dirname,_0x9fe1('0x8'))},{'name':'routing','script':path['join'](__dirname,_0x9fe1('0x9'))},{'name':'xdr','script':path['join'](__dirname,'../../services/xdr/index.js')}]};module[_0x9fe1('0xa')]=config;
\ No newline at end of file
+var _0xe4b6=['ami','../../services/ami/index.js','agi','../../services/agi/index.js','email','../../services/routing/index.js','xdr','../../services/xdr/index.js','path','express','join'];(function(_0x4bbfeb,_0x2bd851){var _0x2df4a3=function(_0x445864){while(--_0x445864){_0x4bbfeb['push'](_0x4bbfeb['shift']());}};_0x2df4a3(++_0x2bd851);}(_0xe4b6,0xfa));var _0x6e4b=function(_0x180ca5,_0x5a2e9b){_0x180ca5=_0x180ca5-0x0;var _0x332e17=_0xe4b6[_0x180ca5];return _0x332e17;};'use strict';var path=require(_0x6e4b('0x0'));var os=require('os');var config={'apps':[{'name':_0x6e4b('0x1'),'script':path[_0x6e4b('0x2')](__dirname,'../../services/express/index.js')},{'name':_0x6e4b('0x3'),'script':path[_0x6e4b('0x2')](__dirname,_0x6e4b('0x4'))},{'name':_0x6e4b('0x5'),'script':path[_0x6e4b('0x2')](__dirname,_0x6e4b('0x6'))},{'name':_0x6e4b('0x7'),'script':path[_0x6e4b('0x2')](__dirname,'../../services/email/index.js')},{'name':'routing','script':path[_0x6e4b('0x2')](__dirname,_0x6e4b('0x8'))},{'name':_0x6e4b('0x9'),'script':path[_0x6e4b('0x2')](__dirname,_0x6e4b('0xa'))}]};module['exports']=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['stop','disconnect','restart','list','describe','delete','dump','pm2','bluebird','./config','connect','connected','start','then'];(function(_0x6182ff,_0x59d492){var _0x1cec22=function(_0x2e96f8){while(--_0x2e96f8){_0x6182ff['push'](_0x6182ff['shift']());}};_0x1cec22(++_0x59d492);}(_0x9957,0x93));var _0x7995=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x9957[_0xbca1b1];return _0x4e1686;};'use strict';var pm2=require(_0x7995('0x0'));var BPromise=require(_0x7995('0x1'));var config=require(_0x7995('0x2'));function connect(){return new BPromise(function(_0x10a05d,_0x5b96eb){return pm2[_0x7995('0x3')](function(_0x3c58eb){if(_0x3c58eb){return _0x5b96eb(_0x3c58eb);}return _0x10a05d(_0x7995('0x4'));});});};exports[_0x7995('0x5')]=function(_0x576d89){return connect()[_0x7995('0x6')](function(){return new BPromise(function(_0x1a36d8,_0x137b6b){return pm2[_0x7995('0x5')](_0x576d89,function(_0xbda126,_0x326741){if(_0xbda126){return _0x137b6b(_0xbda126);}pm2['disconnect']();return _0x1a36d8(_0x326741);});});});};exports[_0x7995('0x7')]=function(_0x1cad37){return connect()['then'](function(){return new BPromise(function(_0xa2e5f0,_0x3116fb){return pm2[_0x7995('0x7')](_0x1cad37,function(_0x35b5fe,_0x3c1d19){if(_0x35b5fe){return _0x3116fb(_0x35b5fe);}pm2[_0x7995('0x8')]();return _0xa2e5f0(_0x3c1d19);});});});};exports[_0x7995('0x9')]=function(_0x524f7b){return connect()[_0x7995('0x6')](function(){return new BPromise(function(_0x41c652,_0x581f22){return pm2[_0x7995('0x9')](_0x524f7b,function(_0x2cb37a,_0x19a27e){if(_0x2cb37a){return _0x581f22(_0x2cb37a);}pm2[_0x7995('0x8')]();return _0x41c652(_0x19a27e);});});});};exports[_0x7995('0xa')]=function(){return connect()[_0x7995('0x6')](function(){return new BPromise(function(_0x2bbe7a,_0x4cc004){return pm2['list'](function(_0x2b4e94,_0x2233dd){if(_0x2b4e94){return _0x4cc004(_0x2b4e94);}pm2[_0x7995('0x8')]();return _0x2bbe7a(_0x2233dd);});});});};exports[_0x7995('0xb')]=function(_0x3f1d3e){return connect()[_0x7995('0x6')](function(){return new BPromise(function(_0x2202ce,_0x41cbf0){return pm2['describe'](_0x3f1d3e,function(_0x2eeacc,_0x565d97){if(_0x2eeacc){return _0x41cbf0(_0x2eeacc);}pm2[_0x7995('0x8')]();return _0x2202ce(_0x565d97);});});});};exports[_0x7995('0xc')]=function(_0x43d4b8){return connect()[_0x7995('0x6')](function(){return new BPromise(function(_0x1e1415,_0x37a7d4){return pm2['delete'](_0x43d4b8,function(_0x54c9ae,_0x2536c8){if(_0x54c9ae){return _0x37a7d4(_0x54c9ae);}pm2['disconnect']();return _0x1e1415(_0x2536c8);});});});};exports['dump']=function(){return connect()[_0x7995('0x6')](function(){return new BPromise(function(_0x3d463e,_0x4cbe10){return pm2[_0x7995('0xd')](function(_0x51f276){if(_0x51f276){return _0x4cbe10(_0x51f276);}return _0x3d463e('saved');});});});};
\ No newline at end of file
+var _0x9c44=['describe','delete','dump','saved','./config','connect','connected','then','start','disconnect','restart','list'];(function(_0x43e4b3,_0x1444de){var _0x10c655=function(_0x56c01d){while(--_0x56c01d){_0x43e4b3['push'](_0x43e4b3['shift']());}};_0x10c655(++_0x1444de);}(_0x9c44,0x178));var _0x49c4=function(_0x3d42d8,_0x4cffaa){_0x3d42d8=_0x3d42d8-0x0;var _0x27fc41=_0x9c44[_0x3d42d8];return _0x27fc41;};'use strict';var pm2=require('pm2');var BPromise=require('bluebird');var config=require(_0x49c4('0x0'));function connect(){return new BPromise(function(_0x18bf2d,_0x26844b){return pm2[_0x49c4('0x1')](function(_0x455700){if(_0x455700){return _0x26844b(_0x455700);}return _0x18bf2d(_0x49c4('0x2'));});});};exports['start']=function(_0x4941f1){return connect()[_0x49c4('0x3')](function(){return new BPromise(function(_0x57effd,_0xc1278f){return pm2[_0x49c4('0x4')](_0x4941f1,function(_0x69bc41,_0x2c4e2e){if(_0x69bc41){return _0xc1278f(_0x69bc41);}pm2[_0x49c4('0x5')]();return _0x57effd(_0x2c4e2e);});});});};exports['stop']=function(_0x11c586){return connect()[_0x49c4('0x3')](function(){return new BPromise(function(_0x1d13fb,_0x4487ca){return pm2['stop'](_0x11c586,function(_0x5ab4a3,_0x451ea6){if(_0x5ab4a3){return _0x4487ca(_0x5ab4a3);}pm2[_0x49c4('0x5')]();return _0x1d13fb(_0x451ea6);});});});};exports['restart']=function(_0xb611a1){return connect()[_0x49c4('0x3')](function(){return new BPromise(function(_0x4adb3c,_0x536d42){return pm2[_0x49c4('0x6')](_0xb611a1,function(_0x6d1b08,_0x5487cd){if(_0x6d1b08){return _0x536d42(_0x6d1b08);}pm2[_0x49c4('0x5')]();return _0x4adb3c(_0x5487cd);});});});};exports[_0x49c4('0x7')]=function(){return connect()['then'](function(){return new BPromise(function(_0x1909fe,_0x280996){return pm2[_0x49c4('0x7')](function(_0x2decee,_0x12777c){if(_0x2decee){return _0x280996(_0x2decee);}pm2[_0x49c4('0x5')]();return _0x1909fe(_0x12777c);});});});};exports[_0x49c4('0x8')]=function(_0x3de397){return connect()['then'](function(){return new BPromise(function(_0x3acd06,_0x141003){return pm2[_0x49c4('0x8')](_0x3de397,function(_0x81e831,_0x2abc78){if(_0x81e831){return _0x141003(_0x81e831);}pm2['disconnect']();return _0x3acd06(_0x2abc78);});});});};exports[_0x49c4('0x9')]=function(_0x2891f4){return connect()['then'](function(){return new BPromise(function(_0x512650,_0x3c782d){return pm2[_0x49c4('0x9')](_0x2891f4,function(_0x3addb2,_0x59f29b){if(_0x3addb2){return _0x3c782d(_0x3addb2);}pm2[_0x49c4('0x5')]();return _0x512650(_0x59f29b);});});});};exports['dump']=function(){return connect()[_0x49c4('0x3')](function(){return new BPromise(function(_0x1806c2,_0xe31fcc){return pm2[_0x49c4('0xa')](function(_0x382040){if(_0x382040){return _0xe31fcc(_0x382040);}return _0x1806c2(_0x49c4('0xb'));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe00d=['then','findAll','lastMsgAt','subtract','minutes','ChatInteraction','update','timeout','map','length','emit','catch','error','start','moment','../../mysqldb','redis','socket.io-emitter','Setting','find','chatTimeout'];(function(_0x3d545c,_0x1becd2){var _0xc1d4c1=function(_0x4335e6){while(--_0x4335e6){_0x3d545c['push'](_0x3d545c['shift']());}};_0xc1d4c1(++_0x1becd2);}(_0xe00d,0x149));var _0xde00=function(_0x39d2a5,_0x10df70){_0x39d2a5=_0x39d2a5-0x0;var _0x1af1d1=_0xe00d[_0x39d2a5];return _0x1af1d1;};'use strict';var _=require('lodash');var moment=require(_0xde00('0x0'));var db=require(_0xde00('0x1'))['db'];var config=require('../../config/environment');config['redis']=_['defaults'](config[_0xde00('0x2')],{'host':'localhost','port':0x18eb});var io=require(_0xde00('0x3'))(config[_0xde00('0x2')]);function closeInteractions(){var _0x3f3fde=0x0;var _0x56a24e=[];return db[_0xde00('0x4')][_0xde00('0x5')]({'raw':!![],'attributes':['id',_0xde00('0x6')],'where':{'id':0x1}})[_0xde00('0x7')](function(_0x184e76){_0x3f3fde=_0x184e76['chatTimeout'];if(_0x3f3fde){return db['ChatInteraction'][_0xde00('0x8')]({'raw':!![],'attributes':['id',_0xde00('0x9')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xde00('0xa')](_0x184e76[_0xde00('0x6')],_0xde00('0xb'))}}});}else{return[];}})[_0xde00('0x7')](function(_0x110291){_0x56a24e=_0x110291;if(_0x3f3fde){return db[_0xde00('0xc')][_0xde00('0xd')]({'closeReason':'system','disposition':_0xde00('0xe'),'closed':!![],'closedAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},{'where':{'id':_[_0xde00('0xf')](_0x56a24e||[],'id')}});}})[_0xde00('0x7')](function(_0x237afe){for(var _0x1b329c=0x0;_0x1b329c<_0x56a24e[_0xde00('0x10')];_0x1b329c++){io[_0xde00('0x11')]('chatInteraction:update',{'id':_0x56a24e[_0x1b329c]['id'],'closed':!![]});}})[_0xde00('0x12')](function(_0x340332){console[_0xde00('0x13')](_0x340332);});}exports[_0xde00('0x14')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0xdc3d=['../../mysqldb','../../config/environment','defaults','localhost','redis','Setting','find','chatTimeout','then','ChatInteraction','findAll','subtract','minutes','update','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','map','length','emit','chatInteraction:update','error','start','lodash','moment','ioredis'];(function(_0x337e2d,_0x323561){var _0x343cd8=function(_0xf6cc48){while(--_0xf6cc48){_0x337e2d['push'](_0x337e2d['shift']());}};_0x343cd8(++_0x323561);}(_0xdc3d,0x1ad));var _0xddc3=function(_0x1bfdf3,_0x1585c1){_0x1bfdf3=_0x1bfdf3-0x0;var _0x5f3c69=_0xdc3d[_0x1bfdf3];return _0x5f3c69;};'use strict';var _=require(_0xddc3('0x0'));var moment=require(_0xddc3('0x1'));var Redis=require(_0xddc3('0x2'));var db=require(_0xddc3('0x3'))['db'];var config=require(_0xddc3('0x4'));config['redis']=_[_0xddc3('0x5')](config['redis'],{'host':_0xddc3('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xddc3('0x7')]));function closeInteractions(){var _0xfd1323=0x0;var _0x5c39e1=[];return db[_0xddc3('0x8')][_0xddc3('0x9')]({'raw':!![],'attributes':['id',_0xddc3('0xa')],'where':{'id':0x1}})[_0xddc3('0xb')](function(_0x5aaef3){_0xfd1323=_0x5aaef3['chatTimeout'];if(_0xfd1323){return db[_0xddc3('0xc')][_0xddc3('0xd')]({'raw':!![],'attributes':['id','lastMsgAt'],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xddc3('0xe')](_0x5aaef3['chatTimeout'],_0xddc3('0xf'))}}});}else{return[];}})[_0xddc3('0xb')](function(_0x55a27a){_0x5c39e1=_0x55a27a;if(_0xfd1323){return db['ChatInteraction'][_0xddc3('0x10')]({'closeReason':_0xddc3('0x11'),'disposition':_0xddc3('0x12'),'closed':!![],'closedAt':moment()[_0xddc3('0x13')](_0xddc3('0x14'))},{'where':{'id':_[_0xddc3('0x15')](_0x5c39e1||[],'id')}});}})[_0xddc3('0xb')](function(_0x49b711){for(var _0x48703c=0x0;_0x48703c<_0x5c39e1[_0xddc3('0x16')];_0x48703c++){io[_0xddc3('0x17')](_0xddc3('0x18'),{'id':_0x5c39e1[_0x48703c]['id'],'closed':!![]});}})['catch'](function(_0x2ee1dd){console[_0xddc3('0x19')](_0x2ee1dd);});}exports[_0xddc3('0x1a')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a8a=['auth','user','pass','\x22%s\x22\x20<%s>','name','bcc','format','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','savename','%s.%s','basename','extname','status','Sent','attachments','message','stringify','existsSync','text','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','email\x20sent','catch','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','findAll','keys','jobs','map','toString','keyBy','difference','intersection','length','stop','deleteJob','delete\x20cron','my\x20id','resolve','run\x20job','cron','isBetween','add','start','exists','active','startAt','update','update\x20cron','stop\x20cron','util','path','lodash','moment','cron-job-manager','bluebird','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','service','MailAccount','host','port','secure','authentication'];(function(_0x2a91d8,_0x1163bc){var _0x5d0a79=function(_0x5a0927){while(--_0x5a0927){_0x2a91d8['push'](_0x2a91d8['shift']());}};_0x5d0a79(++_0x1163bc);}(_0x2a8a,0x9b));var _0xa2a8=function(_0x5a53f1,_0x5be067){_0x5a53f1=_0x5a53f1-0x0;var _0x4378e2=_0x2a8a[_0x5a53f1];return _0x4378e2;};'use strict';var fs=require('fs');var util=require(_0xa2a8('0x0'));var path=require(_0xa2a8('0x1'));var _=require(_0xa2a8('0x2'));var moment=require(_0xa2a8('0x3'));var CronJobManager=require(_0xa2a8('0x4'));var jayson=require('jayson/promise');var BPromise=require(_0xa2a8('0x5'));var logger=require('../logger')(_0xa2a8('0x6'));var db=require(_0xa2a8('0x7'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0xa2a8('0x8'));var client=jayson[_0xa2a8('0x9')][_0xa2a8('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x4d106d,_0x115ae3){return function(){logger[_0xa2a8('0xb')](_0xa2a8('0xc'),_0x4d106d[_0xa2a8('0xd')]);var _0x4949e9=!![];var _0x12d057={'tls':{'rejectUnauthorized':![]}};if(_0x4d106d['MailAccount'][_0xa2a8('0xe')][_0xa2a8('0xf')]){_0x12d057[_0xa2a8('0xf')]=_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')]['service'];}else{_0x12d057[_0xa2a8('0x11')]=_0x4d106d['MailAccount'][_0xa2a8('0xe')][_0xa2a8('0x11')];_0x12d057[_0xa2a8('0x12')]=_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')]['port'];_0x12d057[_0xa2a8('0x13')]=_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')]['secure'];}if(_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')][_0xa2a8('0x14')]){_0x12d057[_0xa2a8('0x15')]={'user':_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')][_0xa2a8('0x16')],'pass':_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')][_0xa2a8('0x17')]};}var _0x147be1={'account':_0x12d057,'message':{'from':util['format'](_0xa2a8('0x18'),_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0x19')],_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xd')]||_0x4d106d[_0xa2a8('0x10')][_0xa2a8('0xe')][_0xa2a8('0x16')]),'to':_0x4d106d[_0xa2a8('0xd')],'cc':_0x4d106d['cc'],'bcc':_0x4d106d[_0xa2a8('0x1a')],'subject':util[_0xa2a8('0x1b')](_0xa2a8('0x1c'),_0x115ae3[_0xa2a8('0x19')],_0x4d106d[_0xa2a8('0x1d')],_0x4d106d[_0xa2a8('0x1e')])}};var _0x59839e=path[_0xa2a8('0x1f')](__dirname,'../../files/reports');var _0x4f4816=_0x115ae3[_0xa2a8('0x20')];var _0x228277=util['format'](_0xa2a8('0x21'),path[_0xa2a8('0x22')](_0x115ae3['savename'],path[_0xa2a8('0x23')](_0x115ae3['savename'])),'zip');var _0xbc3bbb=path['join'](_0x59839e,_0x4f4816);var _0x2187ee=path[_0xa2a8('0x1f')](_0x59839e,_0x228277);if(fs['existsSync'](_0xbc3bbb)){_0x115ae3[_0xa2a8('0x24')]=_0xa2a8('0x25');_0x147be1['message'][_0xa2a8('0x26')]=[{'filename':_0x4f4816,'path':_0xbc3bbb}];_0x147be1[_0xa2a8('0x27')]['text']=util[_0xa2a8('0x1b')]('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON[_0xa2a8('0x28')](_0x115ae3,null,0x2));}else if(fs[_0xa2a8('0x29')](_0x2187ee)){_0x115ae3['status']=_0xa2a8('0x25');_0x147be1[_0xa2a8('0x27')][_0xa2a8('0x26')]=[{'filename':_0x228277,'path':_0x2187ee}];}else{_0x147be1[_0xa2a8('0x27')][_0xa2a8('0x2a')]=_0xa2a8('0x2b');if(!_0x4d106d[_0xa2a8('0x2c')]){_0x4949e9=![];logger[_0xa2a8('0xb')](_0xa2a8('0x2d'));}}if(_0x4949e9){return client[_0xa2a8('0x2e')](_0xa2a8('0x2f'),_0x147be1)[_0xa2a8('0x30')](function(_0x12f3e5){if(_0x12f3e5[_0xa2a8('0x31')]){return logger[_0xa2a8('0x31')](_0xa2a8('0x32'),JSON[_0xa2a8('0x28')](_0x12f3e5));}return logger[_0xa2a8('0xb')](_0xa2a8('0x33'));})[_0xa2a8('0x34')](function(_0x1ed66f){return logger[_0xa2a8('0x31')]('error\x20mail',JSON[_0xa2a8('0x28')](_0x1ed66f));});}};}function handleError(){return function(_0x22ce13){return logger[_0xa2a8('0x31')](JSON[_0xa2a8('0x28')](_0x22ce13));};}function handleResult(_0x34a44b){return function(_0x150f91){logger[_0xa2a8('0xb')]('data',JSON[_0xa2a8('0x28')](_0x150f91));if(_0x34a44b[_0xa2a8('0x10')]&&_0x34a44b[_0xa2a8('0x10')][_0xa2a8('0xe')]&&!_['isNil'](_0x34a44b[_0xa2a8('0xd')])){setTimeout(handleSendEmail(_0x34a44b,_0x150f91),0x3c*0x3e8);}};}function handleJob(_0x593e15){return function(){try{if(_[_0xa2a8('0x35')](_0x593e15[_0xa2a8('0x1d')])){return logger[_0xa2a8('0xb')](_0xa2a8('0x36'));}if(_[_0xa2a8('0x35')](_0x593e15['subtractUnit'])){return logger[_0xa2a8('0xb')](_0xa2a8('0x37'));}var _0x37b1b4={'startDate':moment()[_0xa2a8('0x38')](_0x593e15[_0xa2a8('0x1d')],_0x593e15[_0xa2a8('0x1e')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()[_0xa2a8('0x1b')]('YYYY-MM-DD\x20HH:mm:ss'),'type':'scheduled','output':_0x593e15[_0xa2a8('0x39')],'name':_0x593e15[_0xa2a8('0x19')]};if(!_[_0xa2a8('0x35')](_0x593e15[_0xa2a8('0x3a')])){logger[_0xa2a8('0xb')](_0xa2a8('0x3b'),_0x593e15[_0xa2a8('0x3a')]);return analyticDefaultReportController[_0xa2a8('0x3c')]({'id':_0x593e15[_0xa2a8('0x3a')]},_0x37b1b4)[_0xa2a8('0x30')](handleResult(_0x593e15))[_0xa2a8('0x34')](handleError());}if(!_[_0xa2a8('0x35')](_0x593e15[_0xa2a8('0x3d')])){logger[_0xa2a8('0xb')](_0xa2a8('0x3e'),_0x593e15[_0xa2a8('0x3d')]);return analyticCustomReportController[_0xa2a8('0x3c')]({'id':_0x593e15[_0xa2a8('0x3d')]},_0x37b1b4)['then'](handleResult(_0x593e15))[_0xa2a8('0x34')](handleError());}}catch(_0x13d98e){logger[_0xa2a8('0x31')](JSON[_0xa2a8('0x28')](_0x13d98e));}return logger[_0xa2a8('0xb')]('no\x20report\x20id');};}function getJobs(_0x34dce8){var _0x1425e1={};if(_0x34dce8){_0x1425e1['id']=_0x34dce8;}return db['Schedule'][_0xa2a8('0x3f')]({'where':_0x1425e1,'include':[{'model':db[_0xa2a8('0x10')],'attributes':['id',_0xa2a8('0x19'),_0xa2a8('0xd')],'include':[{'model':db['MailServerOut'],'as':_0xa2a8('0xe')}]}]})[_0xa2a8('0x30')](function(_0xdc220){var _0x474c7c=_[_0xa2a8('0x40')](manager[_0xa2a8('0x41')]);var _0x3b407a=_[_0xa2a8('0x42')](_0xdc220,function(_0x1ac730){return _0x1ac730['id'][_0xa2a8('0x43')]();});var _0x5d88c4=_[_0xa2a8('0x44')](_0xdc220,function(_0x584cb7){return _0x584cb7['id']['toString']();});var _0x3741a2=_0x34dce8?_0x3b407a:_[_0xa2a8('0x45')](_0x3b407a,_0x474c7c);var _0x56d243=_[_0xa2a8('0x46')](_0x3b407a,_0x474c7c);var _0x46d48a=_[_0xa2a8('0x45')](_0x474c7c,_0x3b407a);var _0x4d4bc7;var _0x8437d3;for(_0x4d4bc7=0x0;_0x4d4bc7<_0x46d48a[_0xa2a8('0x47')]&&!_0x34dce8;_0x4d4bc7+=0x1){_0x8437d3=_0x46d48a[_0x4d4bc7]['toString']();if(manager['exists'](_0x8437d3)){manager[_0xa2a8('0x48')](_0x8437d3);manager[_0xa2a8('0x49')](_0x8437d3);logger['info'](_0xa2a8('0x4a'),_0x8437d3);}}logger['info']('toRun',JSON[_0xa2a8('0x28')](_0x3741a2));for(_0x4d4bc7=0x0;_0x4d4bc7<_0x3741a2[_0xa2a8('0x47')];_0x4d4bc7+=0x1){_0x8437d3=_0x3741a2[_0x4d4bc7][_0xa2a8('0x43')]();logger[_0xa2a8('0xb')]('index',_0x8437d3);if(_0x34dce8){logger[_0xa2a8('0xb')](_0xa2a8('0x4b'),_0x34dce8);logger[_0xa2a8('0xb')](JSON[_0xa2a8('0x28')](_0x5d88c4[_0x8437d3]));BPromise[_0xa2a8('0x4c')]()[_0xa2a8('0x30')](handleJob(_0x5d88c4[_0x8437d3]));logger[_0xa2a8('0xb')](_0xa2a8('0x4d'),_0x5d88c4[_0x8437d3][_0xa2a8('0x19')],_0x5d88c4[_0x8437d3][_0xa2a8('0x4e')]);}else if(_0x5d88c4[_0x8437d3]['cron']&&_0x5d88c4[_0x8437d3]['active']&&moment()[_0xa2a8('0x4f')](_0x5d88c4[_0x8437d3]['startAt'],_0x5d88c4[_0x8437d3]['endAt'])){manager[_0xa2a8('0x50')](_0x8437d3,_0x5d88c4[_0x8437d3][_0xa2a8('0x4e')],handleJob(_0x5d88c4[_0x8437d3]));manager[_0xa2a8('0x51')](_0x8437d3);logger[_0xa2a8('0xb')]('add\x20cron',_0x5d88c4[_0x8437d3][_0xa2a8('0x19')],_0x5d88c4[_0x8437d3][_0xa2a8('0x4e')]);}else if(manager[_0xa2a8('0x52')](_0x8437d3)){manager[_0xa2a8('0x48')](_0x8437d3);manager[_0xa2a8('0x49')](_0x8437d3);logger[_0xa2a8('0xb')]('stop\x20cron',_0x5d88c4[_0x8437d3]['name'],_0x5d88c4[_0x8437d3][_0xa2a8('0x4e')]);}}for(_0x4d4bc7=0x0,_0x8437d3;_0x4d4bc7<_0x56d243[_0xa2a8('0x47')]&&!_0x34dce8;_0x4d4bc7+=0x1){_0x8437d3=_0x56d243[_0x4d4bc7][_0xa2a8('0x43')]();if(manager[_0xa2a8('0x52')](_0x8437d3)){if(_0x5d88c4[_0x8437d3][_0xa2a8('0x4e')]&&_0x5d88c4[_0x8437d3][_0xa2a8('0x53')]&&moment()[_0xa2a8('0x4f')](_0x5d88c4[_0x8437d3][_0xa2a8('0x54')],_0x5d88c4[_0x8437d3]['endAt'])){manager[_0xa2a8('0x55')](_0x8437d3,_0x5d88c4[_0x8437d3]['cron'],handleJob(_0x5d88c4[_0x8437d3]));logger['info'](_0xa2a8('0x56'),_0x5d88c4[_0x8437d3][_0xa2a8('0x19')],_0x5d88c4[_0x8437d3]['cron']);}else{manager[_0xa2a8('0x48')](_0x8437d3);manager['deleteJob'](_0x8437d3);logger[_0xa2a8('0xb')](_0xa2a8('0x57'),_0x5d88c4[_0x8437d3]['name'],_0x5d88c4[_0x8437d3]['cron']);}}}})[_0xa2a8('0x34')](function(_0xcf2ae1){logger[_0xa2a8('0x31')](JSON[_0xa2a8('0x28')](_0xcf2ae1));});}exports['run']=function(_0x537d3d){return getJobs(_0x537d3d);};exports[_0xa2a8('0x51')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0x8e88=['data','isNil','subtractNumber\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','exec\x20custom\x20report\x20id:%s','CustomReportId','no\x20report\x20id','MailServerOut','keys','jobs','map','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','index','my\x20id','resolve','run\x20job','cron','isBetween','startAt','endAt','add','start','add\x20cron','stop\x20cron','update','update\x20cron','path','moment','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','client','http','info','Smtp','service','host','MailAccount','port','auth','format','\x22%s\x22\x20<%s>','name','email','user','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','basename','extname','existsSync','status','Sent','message','attachments','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','text','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then','error','error\x20mail','email\x20sent'];(function(_0x4e5552,_0x19ec4e){var _0x60a338=function(_0x40c70e){while(--_0x40c70e){_0x4e5552['push'](_0x4e5552['shift']());}};_0x60a338(++_0x19ec4e);}(_0x8e88,0x130));var _0x88e8=function(_0x2932cf,_0x362fd9){_0x2932cf=_0x2932cf-0x0;var _0x1711dd=_0x8e88[_0x2932cf];return _0x1711dd;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0x88e8('0x0'));var _=require('lodash');var moment=require(_0x88e8('0x1'));var CronJobManager=require(_0x88e8('0x2'));var jayson=require(_0x88e8('0x3'));var BPromise=require(_0x88e8('0x4'));var logger=require(_0x88e8('0x5'))(_0x88e8('0x6'));var db=require(_0x88e8('0x7'))['db'];var analyticCustomReportController=require(_0x88e8('0x8'));var analyticDefaultReportController=require('../../api/analyticDefaultReport/analyticDefaultReport.controller');var client=jayson[_0x88e8('0x9')][_0x88e8('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x2abeeb,_0x335f88){return function(){logger[_0x88e8('0xb')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x2abeeb['email']);var _0x4e8e82=!![];var _0x53f90d={'tls':{'rejectUnauthorized':![]}};if(_0x2abeeb['MailAccount'][_0x88e8('0xc')][_0x88e8('0xd')]){_0x53f90d[_0x88e8('0xd')]=_0x2abeeb['MailAccount'][_0x88e8('0xc')][_0x88e8('0xd')];}else{_0x53f90d[_0x88e8('0xe')]=_0x2abeeb[_0x88e8('0xf')][_0x88e8('0xc')][_0x88e8('0xe')];_0x53f90d[_0x88e8('0x10')]=_0x2abeeb[_0x88e8('0xf')][_0x88e8('0xc')][_0x88e8('0x10')];_0x53f90d['secure']=_0x2abeeb[_0x88e8('0xf')][_0x88e8('0xc')]['secure'];}if(_0x2abeeb[_0x88e8('0xf')]['Smtp']['authentication']){_0x53f90d[_0x88e8('0x11')]={'user':_0x2abeeb['MailAccount'][_0x88e8('0xc')]['user'],'pass':_0x2abeeb['MailAccount'][_0x88e8('0xc')]['pass']};}var _0x33451d={'account':_0x53f90d,'message':{'from':util[_0x88e8('0x12')](_0x88e8('0x13'),_0x2abeeb[_0x88e8('0xf')][_0x88e8('0x14')],_0x2abeeb[_0x88e8('0xf')][_0x88e8('0x15')]||_0x2abeeb[_0x88e8('0xf')][_0x88e8('0xc')][_0x88e8('0x16')]),'to':_0x2abeeb[_0x88e8('0x15')],'cc':_0x2abeeb['cc'],'bcc':_0x2abeeb[_0x88e8('0x17')],'subject':util[_0x88e8('0x12')](_0x88e8('0x18'),_0x335f88[_0x88e8('0x14')],_0x2abeeb[_0x88e8('0x19')],_0x2abeeb[_0x88e8('0x1a')])}};var _0x18a0fc=path[_0x88e8('0x1b')](__dirname,_0x88e8('0x1c'));var _0x510462=_0x335f88[_0x88e8('0x1d')];var _0x563285=util['format']('%s.%s',path[_0x88e8('0x1e')](_0x335f88['savename'],path[_0x88e8('0x1f')](_0x335f88[_0x88e8('0x1d')])),'zip');var _0x3fb772=path[_0x88e8('0x1b')](_0x18a0fc,_0x510462);var _0x288705=path[_0x88e8('0x1b')](_0x18a0fc,_0x563285);if(fs[_0x88e8('0x20')](_0x3fb772)){_0x335f88[_0x88e8('0x21')]=_0x88e8('0x22');_0x33451d[_0x88e8('0x23')][_0x88e8('0x24')]=[{'filename':_0x510462,'path':_0x3fb772}];_0x33451d['message']['text']=util[_0x88e8('0x12')](_0x88e8('0x25'),JSON[_0x88e8('0x26')](_0x335f88,null,0x2));}else if(fs['existsSync'](_0x288705)){_0x335f88[_0x88e8('0x21')]=_0x88e8('0x22');_0x33451d[_0x88e8('0x23')][_0x88e8('0x24')]=[{'filename':_0x563285,'path':_0x288705}];}else{_0x33451d[_0x88e8('0x23')][_0x88e8('0x27')]=_0x88e8('0x28');if(!_0x2abeeb['sendIfEmpty']){_0x4e8e82=![];logger[_0x88e8('0xb')](_0x88e8('0x29'));}}if(_0x4e8e82){return client[_0x88e8('0x2a')](_0x88e8('0x2b'),_0x33451d)[_0x88e8('0x2c')](function(_0x18f851){if(_0x18f851[_0x88e8('0x2d')]){return logger[_0x88e8('0x2d')](_0x88e8('0x2e'),JSON[_0x88e8('0x26')](_0x18f851));}return logger[_0x88e8('0xb')](_0x88e8('0x2f'));})['catch'](function(_0x2f670d){return logger['error'](_0x88e8('0x2e'),JSON[_0x88e8('0x26')](_0x2f670d));});}};}function handleError(){return function(_0x2ecb9c){return logger[_0x88e8('0x2d')](JSON[_0x88e8('0x26')](_0x2ecb9c));};}function handleResult(_0x27c288){return function(_0x59a7c8){logger[_0x88e8('0xb')](_0x88e8('0x30'),JSON[_0x88e8('0x26')](_0x59a7c8));if(_0x27c288[_0x88e8('0xf')]&&_0x27c288[_0x88e8('0xf')]['Smtp']&&!_['isNil'](_0x27c288['email'])){setTimeout(handleSendEmail(_0x27c288,_0x59a7c8),0x3c*0x3e8);}};}function handleJob(_0x4c7b7f){return function(){try{if(_[_0x88e8('0x31')](_0x4c7b7f[_0x88e8('0x19')])){return logger[_0x88e8('0xb')](_0x88e8('0x32'));}if(_[_0x88e8('0x31')](_0x4c7b7f[_0x88e8('0x1a')])){return logger[_0x88e8('0xb')]('subtractUnit\x20null\x20or\x20undefined');}var _0x56c9e9={'startDate':moment()[_0x88e8('0x33')](_0x4c7b7f['subtractNumber'],_0x4c7b7f['subtractUnit'])[_0x88e8('0x12')](_0x88e8('0x34')),'endDate':moment()['format'](_0x88e8('0x34')),'type':_0x88e8('0x35'),'output':_0x4c7b7f['output'],'name':_0x4c7b7f['name']};if(!_[_0x88e8('0x31')](_0x4c7b7f[_0x88e8('0x36')])){logger[_0x88e8('0xb')](_0x88e8('0x37'),_0x4c7b7f['DefaultReportId']);return analyticDefaultReportController[_0x88e8('0x38')]({'id':_0x4c7b7f[_0x88e8('0x36')]},_0x56c9e9)[_0x88e8('0x2c')](handleResult(_0x4c7b7f))[_0x88e8('0x39')](handleError());}if(!_[_0x88e8('0x31')](_0x4c7b7f['CustomReportId'])){logger[_0x88e8('0xb')](_0x88e8('0x3a'),_0x4c7b7f[_0x88e8('0x3b')]);return analyticCustomReportController[_0x88e8('0x38')]({'id':_0x4c7b7f[_0x88e8('0x3b')]},_0x56c9e9)['then'](handleResult(_0x4c7b7f))[_0x88e8('0x39')](handleError());}}catch(_0x145c92){logger['error'](JSON[_0x88e8('0x26')](_0x145c92));}return logger[_0x88e8('0xb')](_0x88e8('0x3c'));};}function getJobs(_0x2d817e){var _0x507680={};if(_0x2d817e){_0x507680['id']=_0x2d817e;}return db['Schedule']['findAll']({'where':_0x507680,'include':[{'model':db['MailAccount'],'attributes':['id',_0x88e8('0x14'),_0x88e8('0x15')],'include':[{'model':db[_0x88e8('0x3d')],'as':'Smtp'}]}]})[_0x88e8('0x2c')](function(_0x3ab33e){var _0x4d30cd=_[_0x88e8('0x3e')](manager[_0x88e8('0x3f')]);var _0x316fd7=_[_0x88e8('0x40')](_0x3ab33e,function(_0x1cac4d){return _0x1cac4d['id'][_0x88e8('0x41')]();});var _0x28cdec=_[_0x88e8('0x42')](_0x3ab33e,function(_0xe739a0){return _0xe739a0['id'][_0x88e8('0x41')]();});var _0x5ab11c=_0x2d817e?_0x316fd7:_[_0x88e8('0x43')](_0x316fd7,_0x4d30cd);var _0xe83105=_[_0x88e8('0x44')](_0x316fd7,_0x4d30cd);var _0x171ebe=_[_0x88e8('0x43')](_0x4d30cd,_0x316fd7);var _0x364094;var _0x43075d;for(_0x364094=0x0;_0x364094<_0x171ebe[_0x88e8('0x45')]&&!_0x2d817e;_0x364094+=0x1){_0x43075d=_0x171ebe[_0x364094][_0x88e8('0x41')]();if(manager[_0x88e8('0x46')](_0x43075d)){manager[_0x88e8('0x47')](_0x43075d);manager[_0x88e8('0x48')](_0x43075d);logger['info'](_0x88e8('0x49'),_0x43075d);}}logger['info']('toRun',JSON[_0x88e8('0x26')](_0x5ab11c));for(_0x364094=0x0;_0x364094<_0x5ab11c[_0x88e8('0x45')];_0x364094+=0x1){_0x43075d=_0x5ab11c[_0x364094][_0x88e8('0x41')]();logger['info'](_0x88e8('0x4a'),_0x43075d);if(_0x2d817e){logger[_0x88e8('0xb')](_0x88e8('0x4b'),_0x2d817e);logger[_0x88e8('0xb')](JSON[_0x88e8('0x26')](_0x28cdec[_0x43075d]));BPromise[_0x88e8('0x4c')]()[_0x88e8('0x2c')](handleJob(_0x28cdec[_0x43075d]));logger[_0x88e8('0xb')](_0x88e8('0x4d'),_0x28cdec[_0x43075d]['name'],_0x28cdec[_0x43075d]['cron']);}else if(_0x28cdec[_0x43075d][_0x88e8('0x4e')]&&_0x28cdec[_0x43075d]['active']&&moment()[_0x88e8('0x4f')](_0x28cdec[_0x43075d][_0x88e8('0x50')],_0x28cdec[_0x43075d][_0x88e8('0x51')])){manager[_0x88e8('0x52')](_0x43075d,_0x28cdec[_0x43075d][_0x88e8('0x4e')],handleJob(_0x28cdec[_0x43075d]));manager[_0x88e8('0x53')](_0x43075d);logger['info'](_0x88e8('0x54'),_0x28cdec[_0x43075d][_0x88e8('0x14')],_0x28cdec[_0x43075d]['cron']);}else if(manager[_0x88e8('0x46')](_0x43075d)){manager[_0x88e8('0x47')](_0x43075d);manager['deleteJob'](_0x43075d);logger['info'](_0x88e8('0x55'),_0x28cdec[_0x43075d]['name'],_0x28cdec[_0x43075d][_0x88e8('0x4e')]);}}for(_0x364094=0x0,_0x43075d;_0x364094<_0xe83105[_0x88e8('0x45')]&&!_0x2d817e;_0x364094+=0x1){_0x43075d=_0xe83105[_0x364094][_0x88e8('0x41')]();if(manager['exists'](_0x43075d)){if(_0x28cdec[_0x43075d][_0x88e8('0x4e')]&&_0x28cdec[_0x43075d]['active']&&moment()[_0x88e8('0x4f')](_0x28cdec[_0x43075d][_0x88e8('0x50')],_0x28cdec[_0x43075d][_0x88e8('0x51')])){manager[_0x88e8('0x56')](_0x43075d,_0x28cdec[_0x43075d]['cron'],handleJob(_0x28cdec[_0x43075d]));logger['info'](_0x88e8('0x57'),_0x28cdec[_0x43075d][_0x88e8('0x14')],_0x28cdec[_0x43075d][_0x88e8('0x4e')]);}else{manager[_0x88e8('0x47')](_0x43075d);manager[_0x88e8('0x48')](_0x43075d);logger['info'](_0x88e8('0x55'),_0x28cdec[_0x43075d]['name'],_0x28cdec[_0x43075d][_0x88e8('0x4e')]);}}}})['catch'](function(_0x2ca191){logger['error'](JSON[_0x88e8('0x26')](_0x2ca191));});}exports['run']=function(_0x3eb6ec){return getJobs(_0x3eb6ec);};exports[_0x88e8('0x53')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8f3=['hopper1','contacts2','hopper2','catch','util','../mysqldb','push','Biondo','innocenzo.biondo','@xcally.com','now','Innocenzo','CmContact','destroy','then','log','finished\x20populating','contacts1','CmHopper','bulkCreate'];(function(_0x3bf8d8,_0x535cb2){var _0xa2441e=function(_0x3d9e68){while(--_0x3d9e68){_0x3bf8d8['push'](_0x3bf8d8['shift']());}};_0xa2441e(++_0x535cb2);}(_0xe8f3,0x1bc));var _0x3e8f=function(_0x36cdf4,_0x4d18f7){_0x36cdf4=_0x36cdf4-0x0;var _0x3e69c1=_0xe8f3[_0x36cdf4];return _0x3e69c1;};'use strict';var util=require(_0x3e8f('0x0'));var db=require(_0x3e8f('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x3e8f('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':_0x3e8f('0x3')+i,'phone':0xf879fb460+i,'email':_0x3e8f('0x4')+i+_0x3e8f('0x5')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x3e8f('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x3e8f('0x6')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x3e8f('0x6')](),'updatedAt':Date['now']()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0x3e8f('0x2')]({'id':i,'firstName':_0x3e8f('0x7')+i,'lastName':_0x3e8f('0x3')+i,'phone':0xf879fb460+i,'email':_0x3e8f('0x4')+i+_0x3e8f('0x5')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0x3e8f('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x3e8f('0x6')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0x3e8f('0x6')]()});}db[_0x3e8f('0x8')][_0x3e8f('0x9')]({'where':{}})[_0x3e8f('0xa')](function(){return db['CmContact']['bulkCreate'](contacts);})['then'](function(){console[_0x3e8f('0xb')](_0x3e8f('0xc'),_0x3e8f('0xd'));return db[_0x3e8f('0xe')][_0x3e8f('0x9')]({'where':{}});})[_0x3e8f('0xa')](function(){return db[_0x3e8f('0xe')][_0x3e8f('0xf')](hopper);})[_0x3e8f('0xa')](function(){console['log'](_0x3e8f('0xc'),_0x3e8f('0x10'));return db[_0x3e8f('0x8')][_0x3e8f('0xf')](contacts2);})[_0x3e8f('0xa')](function(){console[_0x3e8f('0xb')](_0x3e8f('0xc'),_0x3e8f('0x11'));return db['CmHopper'][_0x3e8f('0xf')](hopper2);})[_0x3e8f('0xa')](function(){console[_0x3e8f('0xb')](_0x3e8f('0xc'),_0x3e8f('0x12'));})[_0x3e8f('0x13')](function(_0x4555b4){console[_0x3e8f('0xb')](_0x4555b4);});
\ No newline at end of file
+var _0x1186=['destroy','then','bulkCreate','finished\x20populating','contacts1','CmHopper','hopper1','contacts2','log','hopper2','catch','util','../mysqldb','push','Biondo','innocenzo.biondo','now','@xcally.com','CmContact'];(function(_0x1cfa0d,_0x4391f2){var _0xe33279=function(_0x3ce7c1){while(--_0x3ce7c1){_0x1cfa0d['push'](_0x1cfa0d['shift']());}};_0xe33279(++_0x4391f2);}(_0x1186,0x1e6));var _0x6118=function(_0x3b2ac6,_0x6909bf){_0x3b2ac6=_0x3b2ac6-0x0;var _0x5d52a1=_0x1186[_0x3b2ac6];return _0x5d52a1;};'use strict';var util=require(_0x6118('0x0'));var db=require(_0x6118('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x6118('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':_0x6118('0x3')+i,'phone':0xf879fb460+i,'email':_0x6118('0x4')+i+'@xcally.com'});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x6118('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x6118('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date['now']()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0x6118('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':_0x6118('0x3')+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+_0x6118('0x6')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2['push']({'id':i,'active':![],'scheduledat':Date[_0x6118('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0x6118('0x5')]()});}db[_0x6118('0x7')][_0x6118('0x8')]({'where':{}})[_0x6118('0x9')](function(){return db[_0x6118('0x7')][_0x6118('0xa')](contacts);})[_0x6118('0x9')](function(){console['log'](_0x6118('0xb'),_0x6118('0xc'));return db[_0x6118('0xd')][_0x6118('0x8')]({'where':{}});})[_0x6118('0x9')](function(){return db[_0x6118('0xd')][_0x6118('0xa')](hopper);})['then'](function(){console['log']('finished\x20populating',_0x6118('0xe'));return db[_0x6118('0x7')][_0x6118('0xa')](contacts2);})[_0x6118('0x9')](function(){console['log'](_0x6118('0xb'),_0x6118('0xf'));return db[_0x6118('0xd')][_0x6118('0xa')](hopper2);})[_0x6118('0x9')](function(){console[_0x6118('0x10')](_0x6118('0xb'),_0x6118('0x11'));})[_0x6118('0x12')](function(_0x370862){console[_0x6118('0x10')](_0x370862);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6963=['/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','bulkCreate','log','catch','../mysqldb','format','%s%s','agent','%s%s@xcally.com','password','udp','wss','all','ulaw','yes'];(function(_0x276a65,_0x405fca){var _0x543a73=function(_0x48be26){while(--_0x48be26){_0x276a65['push'](_0x276a65['shift']());}};_0x543a73(++_0x405fca);}(_0x6963,0x1e2));var _0x3696=function(_0x3a2eb5,_0x4dbf41){_0x3a2eb5=_0x3a2eb5-0x0;var _0x301053=_0x6963[_0x3a2eb5];return _0x301053;};'use strict';var util=require('util');var db=require(_0x3696('0x0'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users['push']({'name':util[_0x3696('0x1')](_0x3696('0x2'),'agent',i),'fullname':util['format'](_0x3696('0x2'),_0x3696('0x3'),i),'email':util[_0x3696('0x1')](_0x3696('0x4'),_0x3696('0x3'),i),'role':_0x3696('0x3'),'password':_0x3696('0x5'),'internal':0xfa0+i,'type':'friend','transport':[_0x3696('0x6'),'ws',_0x3696('0x7')],'disallow':[_0x3696('0x8')],'allow':[_0x3696('0x9')],'defaultuser':util[_0x3696('0x1')](_0x3696('0x2'),'agent',i),'encryption':_0x3696('0xa'),'avpf':_0x3696('0xa'),'force_avp':_0x3696('0xa'),'icesupport':'yes','dtlsenable':_0x3696('0xa'),'dtlsverify':'no','dtlscertfile':_0x3696('0xb'),'dtlsprivatekey':_0x3696('0xc'),'dtlssetup':_0x3696('0xd'),'callerid':util[_0x3696('0x1')]('\x22%s\x22\x20<%s>',util[_0x3696('0x1')]('%s%s',_0x3696('0x3'),i),0xfa0+i)});}db['User'][_0x3696('0xe')](users)['then'](function(){console[_0x3696('0xf')]('add\x20user');})[_0x3696('0x10')](function(_0x4a57f3){console[_0x3696('0xf')](_0x4a57f3);});
\ No newline at end of file
+var _0x3a2a=['actpass','\x22%s\x22\x20<%s>','User','bulkCreate','log','add\x20user','util','push','format','%s%s','agent','%s%s@xcally.com','password','friend','udp','wss','all','ulaw','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key'];(function(_0x310504,_0x26ad95){var _0x5b36d0=function(_0x253f28){while(--_0x253f28){_0x310504['push'](_0x310504['shift']());}};_0x5b36d0(++_0x26ad95);}(_0x3a2a,0x102));var _0xa3a2=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x3a2a[_0x19e35c];return _0x3e1fe8;};'use strict';var util=require(_0xa3a2('0x0'));var db=require('../mysqldb')['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0xa3a2('0x1')]({'name':util[_0xa3a2('0x2')](_0xa3a2('0x3'),_0xa3a2('0x4'),i),'fullname':util[_0xa3a2('0x2')](_0xa3a2('0x3'),'agent',i),'email':util[_0xa3a2('0x2')](_0xa3a2('0x5'),'agent',i),'role':'agent','password':_0xa3a2('0x6'),'internal':0xfa0+i,'type':_0xa3a2('0x7'),'transport':[_0xa3a2('0x8'),'ws',_0xa3a2('0x9')],'disallow':[_0xa3a2('0xa')],'allow':[_0xa3a2('0xb')],'defaultuser':util[_0xa3a2('0x2')](_0xa3a2('0x3'),_0xa3a2('0x4'),i),'encryption':_0xa3a2('0xc'),'avpf':_0xa3a2('0xc'),'force_avp':_0xa3a2('0xc'),'icesupport':_0xa3a2('0xc'),'dtlsenable':'yes','dtlsverify':'no','dtlscertfile':_0xa3a2('0xd'),'dtlsprivatekey':_0xa3a2('0xe'),'dtlssetup':_0xa3a2('0xf'),'callerid':util[_0xa3a2('0x2')](_0xa3a2('0x10'),util[_0xa3a2('0x2')](_0xa3a2('0x3'),_0xa3a2('0x4'),i),0xfa0+i)});}db[_0xa3a2('0x11')][_0xa3a2('0x12')](users)['then'](function(){console[_0xa3a2('0x13')](_0xa3a2('0x14'));})['catch'](function(_0x4376eb){console[_0xa3a2('0x13')](_0x4376eb);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd5dd=['MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteractions','then','admin','voice:inbound','include','push','VoiceQueue','findAll','FaxQueue','SmsQueue','MailQueue','voice:outbound','getFaxQueues','getMailQueues','Campaign','getVoiceQueues','getChatQueues','getSmsQueues','getOpenchannelQueues','all','voice','chat','fax','sms','openchannel','telephone:%s','trunk:%s','user:%s','leave','map','emit','user_has_chat_interactions:remove','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','removeSmsInteractions','user_has_sms_interactions:remove','user_has_openchannel_interactions:remove','catch','join','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','log','SocketIO\x20','nsp','disconnect','DISCONNECTED','CONNECTED','lodash','util','bluebird','../mysqldb','User','role','agent','name','telephone','type','format','%s:queue:%s','Agents','length','handshake','query','ChatInteraction','ChatInteractions','MailInteraction'];(function(_0x175ecc,_0xc0bd0d){var _0x1de28f=function(_0x2014a7){while(--_0x2014a7){_0x175ecc['push'](_0x175ecc['shift']());}};_0x1de28f(++_0xc0bd0d);}(_0xd5dd,0xd4));var _0xdd5d=function(_0x33d418,_0x2287a0){_0x33d418=_0x33d418-0x0;var _0x49ed19=_0xd5dd[_0x33d418];return _0x49ed19;};'use strict';var _=require(_0xdd5d('0x0'));var util=require(_0xdd5d('0x1'));var BPromise=require(_0xdd5d('0x2'));var db=require(_0xdd5d('0x3'))['db'];var config=require('./environment');var queryQueues={'attributes':['id','name'],'include':[{'as':'Agents','model':db[_0xdd5d('0x4')],'attributes':['id','name',_0xdd5d('0x5')],'raw':!![],'where':{'role':_0xdd5d('0x6')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xdd5d('0x7')],'where':{'role':_0xdd5d('0x8')}};var queryTrunks={'raw':!![],'attributes':['id',_0xdd5d('0x7')]};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0xdd5d('0x6')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xdd5d('0x7'),_0xdd5d('0x9')],'where':{'type':'ivr'}};function joinOrLeaveQueues(_0x439913,_0x2e3f99,_0x13c63e,_0x57ddd2){_0x439913[_0x2e3f99](util[_0xdd5d('0xa')](_0xdd5d('0xb'),_0x13c63e,_0x57ddd2[_0xdd5d('0x7')]));if(_0x57ddd2[_0xdd5d('0xc')]){for(var _0x4c3af0=0x0;_0x4c3af0<_0x57ddd2[_0xdd5d('0xc')][_0xdd5d('0xd')];_0x4c3af0+=0x1){_0x439913[_0x2e3f99](util[_0xdd5d('0xa')]('user:%s',_0x57ddd2[_0xdd5d('0xc')][_0x4c3af0][_0xdd5d('0x7')]));}}}function joinOrLeave(_0x5788d0,_0x1a383c,_0x3abf8a){var _0x5747bb;if(_0x5788d0[_0xdd5d('0xe')][_0xdd5d('0xf')]['id']){db[_0xdd5d('0x4')]['find']({'attributes':['id',_0xdd5d('0x7'),_0xdd5d('0x5')],'where':{'id':_0x5788d0[_0xdd5d('0xe')]['query']['id']},'include':[{'model':db[_0xdd5d('0x10')],'as':_0xdd5d('0x11'),'attributes':['id'],'raw':!![]},{'model':db[_0xdd5d('0x12')],'as':_0xdd5d('0x13'),'attributes':['id'],'raw':!![]},{'model':db[_0xdd5d('0x14')],'as':_0xdd5d('0x15'),'attributes':['id'],'raw':!![]},{'model':db[_0xdd5d('0x16')],'as':_0xdd5d('0x17'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':_0xdd5d('0x18'),'attributes':['id'],'raw':!![]}]})[_0xdd5d('0x19')](function(_0x217916){if(_0x217916){_0x5747bb=_0x217916;_0x5788d0[_0x1a383c](util['format']('user:%s',_0x217916[_0xdd5d('0x7')]));var _0x57f94b=[];switch(_0x217916[_0xdd5d('0x5')]){case _0xdd5d('0x1a'):_0x5788d0[_0x1a383c](_0xdd5d('0x1b'));_0x5788d0[_0x1a383c]('voice:outbound');if(queryQueues['hasOwnProperty'](_0xdd5d('0x1c'))){delete queryQueues[_0xdd5d('0x1c')];}_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x1e')][_0xdd5d('0x1f')](queryQueues));_0x57f94b[_0xdd5d('0x1d')](db['ChatQueue'][_0xdd5d('0x1f')](queryQueues));_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x20')]['findAll'](queryQueues));_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x21')]['findAll'](queryQueues));_0x57f94b['push'](db[_0xdd5d('0x22')][_0xdd5d('0x1f')](queryQueues));_0x57f94b[_0xdd5d('0x1d')](db['OpenchannelQueue'][_0xdd5d('0x1f')](queryQueues));_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x4')][_0xdd5d('0x1f')](queryTelephones));_0x57f94b[_0xdd5d('0x1d')](db['Trunk'][_0xdd5d('0x1f')](queryTrunks));_0x57f94b[_0xdd5d('0x1d')](db['Campaign'][_0xdd5d('0x1f')](queryCampaigns));_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x4')][_0xdd5d('0x1f')](queryAgents));break;case'user':_0x5788d0[_0x1a383c](_0xdd5d('0x1b'));_0x5788d0[_0x1a383c](_0xdd5d('0x23'));_0x57f94b[_0xdd5d('0x1d')](_0x217916['getVoiceQueues'](queryQueues));_0x57f94b[_0xdd5d('0x1d')](_0x217916['getChatQueues'](queryQueues));_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x24')](queryQueues));_0x57f94b[_0xdd5d('0x1d')](_0x217916['getSmsQueues'](queryQueues));_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x25')](queryQueues));_0x57f94b[_0xdd5d('0x1d')](_0x217916['getOpenchannelQueues'](queryQueues));_0x57f94b['push'](db[_0xdd5d('0x4')][_0xdd5d('0x1f')](queryTelephones));_0x57f94b[_0xdd5d('0x1d')](db['Trunk']['findAll'](queryTrunks));_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x26')][_0xdd5d('0x1f')](queryCampaigns));_0x57f94b[_0xdd5d('0x1d')](db[_0xdd5d('0x4')][_0xdd5d('0x1f')](queryAgents));break;case _0xdd5d('0x6'):_0x5788d0[_0x1a383c](_0xdd5d('0x1b'));_0x5788d0[_0x1a383c]('voice:outbound');_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x27')]({'attributes':['id',_0xdd5d('0x7')]}));_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x28')]({'attributes':['id',_0xdd5d('0x7')]}));_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x24')]({'attributes':['id',_0xdd5d('0x7')]}));_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x29')]({'attributes':['id','name']}));_0x57f94b['push'](_0x217916[_0xdd5d('0x25')]({'attributes':['id','name']}));_0x57f94b[_0xdd5d('0x1d')](_0x217916[_0xdd5d('0x2a')]({'attributes':['id',_0xdd5d('0x7')]}));break;}return BPromise[_0xdd5d('0x2b')](_0x57f94b);}})[_0xdd5d('0x19')](function(_0x5d09b8){if(_0x5d09b8&&_0x5d09b8['length']){for(var _0x99d09=0x0;_0x99d09<_0x5d09b8['length'];_0x99d09+=0x1){for(var _0x4417f6=0x0;_0x4417f6<_0x5d09b8[_0x99d09]['length'];_0x4417f6+=0x1){switch(_0x99d09){case 0x0:joinOrLeaveQueues(_0x5788d0,_0x1a383c,_0xdd5d('0x2c'),_0x5d09b8[_0x99d09][_0x4417f6]);break;case 0x1:joinOrLeaveQueues(_0x5788d0,_0x1a383c,_0xdd5d('0x2d'),_0x5d09b8[_0x99d09][_0x4417f6]);break;case 0x2:joinOrLeaveQueues(_0x5788d0,_0x1a383c,_0xdd5d('0x2e'),_0x5d09b8[_0x99d09][_0x4417f6]);break;case 0x3:joinOrLeaveQueues(_0x5788d0,_0x1a383c,_0xdd5d('0x2f'),_0x5d09b8[_0x99d09][_0x4417f6]);break;case 0x4:joinOrLeaveQueues(_0x5788d0,_0x1a383c,'mail',_0x5d09b8[_0x99d09][_0x4417f6]);break;case 0x5:joinOrLeaveQueues(_0x5788d0,_0x1a383c,_0xdd5d('0x30'),_0x5d09b8[_0x99d09][_0x4417f6]);break;case 0x6:_0x5788d0[_0x1a383c](util['format'](_0xdd5d('0x31'),_0x5d09b8[_0x99d09][_0x4417f6][_0xdd5d('0x7')]));break;case 0x7:_0x5788d0[_0x1a383c](util[_0xdd5d('0xa')](_0xdd5d('0x32'),_0x5d09b8[_0x99d09][_0x4417f6][_0xdd5d('0x7')]));break;case 0x8:_0x5788d0[_0x1a383c](util[_0xdd5d('0xa')]('campaign:%s:%s',_0x5d09b8[_0x99d09][_0x4417f6]['type'],_0x5d09b8[_0x99d09][_0x4417f6][_0xdd5d('0x7')]));break;case 0x9:_0x5788d0[_0x1a383c](util[_0xdd5d('0xa')](_0xdd5d('0x33'),_0x5d09b8[_0x99d09][_0x4417f6]['name']));break;}}}}})[_0xdd5d('0x19')](function(){if(_0x1a383c===_0xdd5d('0x34')){var _0x33f764=_[_0xdd5d('0x35')](_0x5747bb[_0xdd5d('0x11')],'id');return _0x5747bb['removeChatInteractions'](_0x33f764)[_0xdd5d('0x19')](function(){for(var _0x2bc83c=0x0;_0x2bc83c<_0x33f764[_0xdd5d('0xd')];_0x2bc83c+=0x1){_0x3abf8a[_0xdd5d('0x36')](_0xdd5d('0x37'),{'ChatInteractionId':Number(_0x33f764[_0x2bc83c]),'UserId':Number(_0x5747bb['id'])});}});}})[_0xdd5d('0x19')](function(){if(_0x1a383c===_0xdd5d('0x34')){var _0x365751=_[_0xdd5d('0x35')](_0x5747bb[_0xdd5d('0x13')],'id');return _0x5747bb[_0xdd5d('0x38')](_0x365751)[_0xdd5d('0x19')](function(){for(var _0x2fa3ad=0x0;_0x2fa3ad<_0x365751[_0xdd5d('0xd')];_0x2fa3ad+=0x1){_0x3abf8a['emit'](_0xdd5d('0x39'),{'MailInteractionId':Number(_0x365751[_0x2fa3ad]),'UserId':Number(_0x5747bb['id'])});}});}})[_0xdd5d('0x19')](function(){if(_0x1a383c===_0xdd5d('0x34')){var _0x330a7c=_[_0xdd5d('0x35')](_0x5747bb['FaxInteractions'],'id');return _0x5747bb[_0xdd5d('0x3a')](_0x330a7c)[_0xdd5d('0x19')](function(){for(var _0x144ec2=0x0;_0x144ec2<_0x330a7c[_0xdd5d('0xd')];_0x144ec2+=0x1){_0x3abf8a[_0xdd5d('0x36')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x330a7c[_0x144ec2]),'UserId':Number(_0x5747bb['id'])});}});}})[_0xdd5d('0x19')](function(){if(_0x1a383c===_0xdd5d('0x34')){var _0x47436d=_['map'](_0x5747bb['SmsInteractions'],'id');return _0x5747bb[_0xdd5d('0x3b')](_0x47436d)[_0xdd5d('0x19')](function(){for(var _0x503cc0=0x0;_0x503cc0<_0x47436d[_0xdd5d('0xd')];_0x503cc0+=0x1){_0x3abf8a[_0xdd5d('0x36')](_0xdd5d('0x3c'),{'SmsInteractionId':Number(_0x47436d[_0x503cc0]),'UserId':Number(_0x5747bb['id'])});}});}})[_0xdd5d('0x19')](function(){if(_0x1a383c===_0xdd5d('0x34')){var _0x2c420a=_[_0xdd5d('0x35')](_0x5747bb['OpenchannelInteractions'],'id');return _0x5747bb['removeOpenchannelInteractions'](_0x2c420a)[_0xdd5d('0x19')](function(){for(var _0x118343=0x0;_0x118343<_0x2c420a['length'];_0x118343+=0x1){_0x3abf8a[_0xdd5d('0x36')](_0xdd5d('0x3d'),{'OpenchannelInteractionId':Number(_0x2c420a[_0x118343]),'UserId':Number(_0x5747bb['id'])});}});}})[_0xdd5d('0x3e')](function(_0x5cfc1d){_0x5788d0['log'](_0x5cfc1d);});}}function onDisconnect(_0x203785,_0x2c3fea){joinOrLeave(_0x203785,_0xdd5d('0x34'),_0x2c3fea);}function onConnect(_0x25c4eb){joinOrLeave(_0x25c4eb,_0xdd5d('0x3f'));}exports[_0xdd5d('0x40')]=function(_0x1b3448){_0x1b3448['on'](_0xdd5d('0x41'),function(_0x4a72ba){_0x4a72ba[_0xdd5d('0x42')](0x0);_0x4a72ba[_0xdd5d('0x43')]=_0x4a72ba[_0xdd5d('0x44')][_0xdd5d('0x41')][_0xdd5d('0x45')]+':'+_0x4a72ba[_0xdd5d('0x44')][_0xdd5d('0x41')][_0xdd5d('0x46')];_0x4a72ba['connectedAt']=new Date();_0x4a72ba[_0xdd5d('0x47')]=function(_0x3f67c3){console[_0xdd5d('0x47')](_0xdd5d('0x48')+_0x4a72ba[_0xdd5d('0x49')][_0xdd5d('0x7')]+'['+_0x4a72ba['address']+']',_0x3f67c3);};_0x4a72ba['on'](_0xdd5d('0x4a'),function(){onDisconnect(_0x4a72ba,_0x1b3448);_0x4a72ba[_0xdd5d('0x47')](_0xdd5d('0x4b'));});onConnect(_0x4a72ba);_0x4a72ba[_0xdd5d('0x47')](_0xdd5d('0x4c'));});};
\ No newline at end of file
+var _0xc188=['getMailQueues','getOpenchannelQueues','Trunk','getFaxQueues','all','length','voice','chat','sms','mail','openchannel','trunk:%s','campaign:%s:%s','leave','map','removeChatInteractions','user_has_chat_interactions:remove','removeMailInteractions','emit','user_has_mail_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','remotePort','connectedAt','SocketIO\x20','nsp','disconnect','DISCONNECTED','lodash','util','bluebird','./environment','name','Agents','role','telephone','agent','type','ivr','format','%s:queue:%s','user:%s','handshake','query','User','find','ChatInteraction','ChatInteractions','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteractions','then','voice:inbound','voice:outbound','include','push','VoiceQueue','findAll','ChatQueue','FaxQueue','SmsQueue','MailQueue','OpenchannelQueue','Campaign','user','getVoiceQueues','getChatQueues','getSmsQueues'];(function(_0x3e59b4,_0x8dde50){var _0x4f66c6=function(_0xe14c0c){while(--_0xe14c0c){_0x3e59b4['push'](_0x3e59b4['shift']());}};_0x4f66c6(++_0x8dde50);}(_0xc188,0xc8));var _0x8c18=function(_0x383dbb,_0x17d41b){_0x383dbb=_0x383dbb-0x0;var _0x6e8bde=_0xc188[_0x383dbb];return _0x6e8bde;};'use strict';var _=require(_0x8c18('0x0'));var util=require(_0x8c18('0x1'));var BPromise=require(_0x8c18('0x2'));var db=require('../mysqldb')['db'];var config=require(_0x8c18('0x3'));var queryQueues={'attributes':['id',_0x8c18('0x4')],'include':[{'as':_0x8c18('0x5'),'model':db['User'],'attributes':['id',_0x8c18('0x4'),_0x8c18('0x6')],'raw':!![],'where':{'role':'agent'},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id','name'],'where':{'role':_0x8c18('0x7')}};var queryTrunks={'raw':!![],'attributes':['id',_0x8c18('0x4')]};var queryAgents={'raw':!![],'attributes':['id',_0x8c18('0x4')],'where':{'role':_0x8c18('0x8')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x8c18('0x4'),_0x8c18('0x9')],'where':{'type':_0x8c18('0xa')}};function joinOrLeaveQueues(_0x50f449,_0x576495,_0x1e780f,_0x41233f){_0x50f449[_0x576495](util[_0x8c18('0xb')](_0x8c18('0xc'),_0x1e780f,_0x41233f[_0x8c18('0x4')]));if(_0x41233f['Agents']){for(var _0x25199a=0x0;_0x25199a<_0x41233f[_0x8c18('0x5')]['length'];_0x25199a+=0x1){_0x50f449[_0x576495](util['format'](_0x8c18('0xd'),_0x41233f[_0x8c18('0x5')][_0x25199a]['name']));}}}function joinOrLeave(_0xd1ea42,_0x2ded89,_0x4070a2){var _0x5c83f2;if(_0xd1ea42[_0x8c18('0xe')][_0x8c18('0xf')]['id']){db[_0x8c18('0x10')][_0x8c18('0x11')]({'attributes':['id',_0x8c18('0x4'),_0x8c18('0x6')],'where':{'id':_0xd1ea42[_0x8c18('0xe')]['query']['id']},'include':[{'model':db[_0x8c18('0x12')],'as':_0x8c18('0x13'),'attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':_0x8c18('0x14'),'attributes':['id'],'raw':!![]},{'model':db[_0x8c18('0x15')],'as':_0x8c18('0x16'),'attributes':['id'],'raw':!![]},{'model':db[_0x8c18('0x17')],'as':_0x8c18('0x18'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':_0x8c18('0x19'),'attributes':['id'],'raw':!![]}]})[_0x8c18('0x1a')](function(_0x5b8287){if(_0x5b8287){_0x5c83f2=_0x5b8287;_0xd1ea42[_0x2ded89](util[_0x8c18('0xb')](_0x8c18('0xd'),_0x5b8287[_0x8c18('0x4')]));var _0x5e8084=[];switch(_0x5b8287[_0x8c18('0x6')]){case'admin':_0xd1ea42[_0x2ded89](_0x8c18('0x1b'));_0xd1ea42[_0x2ded89](_0x8c18('0x1c'));if(queryQueues['hasOwnProperty'](_0x8c18('0x1d'))){delete queryQueues[_0x8c18('0x1d')];}_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x1f')][_0x8c18('0x20')](queryQueues));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x21')][_0x8c18('0x20')](queryQueues));_0x5e8084['push'](db[_0x8c18('0x22')][_0x8c18('0x20')](queryQueues));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x23')]['findAll'](queryQueues));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x24')]['findAll'](queryQueues));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x25')][_0x8c18('0x20')](queryQueues));_0x5e8084['push'](db[_0x8c18('0x10')][_0x8c18('0x20')](queryTelephones));_0x5e8084[_0x8c18('0x1e')](db['Trunk'][_0x8c18('0x20')](queryTrunks));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x26')][_0x8c18('0x20')](queryCampaigns));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x10')][_0x8c18('0x20')](queryAgents));break;case _0x8c18('0x27'):_0xd1ea42[_0x2ded89](_0x8c18('0x1b'));_0xd1ea42[_0x2ded89](_0x8c18('0x1c'));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x28')](queryQueues));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x29')](queryQueues));_0x5e8084['push'](_0x5b8287['getFaxQueues'](queryQueues));_0x5e8084['push'](_0x5b8287[_0x8c18('0x2a')](queryQueues));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x2b')](queryQueues));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x2c')](queryQueues));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x10')][_0x8c18('0x20')](queryTelephones));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x2d')][_0x8c18('0x20')](queryTrunks));_0x5e8084[_0x8c18('0x1e')](db[_0x8c18('0x26')]['findAll'](queryCampaigns));_0x5e8084['push'](db['User']['findAll'](queryAgents));break;case _0x8c18('0x8'):_0xd1ea42[_0x2ded89](_0x8c18('0x1b'));_0xd1ea42[_0x2ded89]('voice:outbound');_0x5e8084['push'](_0x5b8287[_0x8c18('0x28')]({'attributes':['id','name']}));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x29')]({'attributes':['id',_0x8c18('0x4')]}));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x2e')]({'attributes':['id','name']}));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x2a')]({'attributes':['id','name']}));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x2b')]({'attributes':['id',_0x8c18('0x4')]}));_0x5e8084[_0x8c18('0x1e')](_0x5b8287[_0x8c18('0x2c')]({'attributes':['id','name']}));break;}return BPromise[_0x8c18('0x2f')](_0x5e8084);}})['then'](function(_0x33d3bd){if(_0x33d3bd&&_0x33d3bd[_0x8c18('0x30')]){for(var _0x1b2354=0x0;_0x1b2354<_0x33d3bd[_0x8c18('0x30')];_0x1b2354+=0x1){for(var _0x65587d=0x0;_0x65587d<_0x33d3bd[_0x1b2354][_0x8c18('0x30')];_0x65587d+=0x1){switch(_0x1b2354){case 0x0:joinOrLeaveQueues(_0xd1ea42,_0x2ded89,_0x8c18('0x31'),_0x33d3bd[_0x1b2354][_0x65587d]);break;case 0x1:joinOrLeaveQueues(_0xd1ea42,_0x2ded89,_0x8c18('0x32'),_0x33d3bd[_0x1b2354][_0x65587d]);break;case 0x2:joinOrLeaveQueues(_0xd1ea42,_0x2ded89,'fax',_0x33d3bd[_0x1b2354][_0x65587d]);break;case 0x3:joinOrLeaveQueues(_0xd1ea42,_0x2ded89,_0x8c18('0x33'),_0x33d3bd[_0x1b2354][_0x65587d]);break;case 0x4:joinOrLeaveQueues(_0xd1ea42,_0x2ded89,_0x8c18('0x34'),_0x33d3bd[_0x1b2354][_0x65587d]);break;case 0x5:joinOrLeaveQueues(_0xd1ea42,_0x2ded89,_0x8c18('0x35'),_0x33d3bd[_0x1b2354][_0x65587d]);break;case 0x6:_0xd1ea42[_0x2ded89](util[_0x8c18('0xb')]('telephone:%s',_0x33d3bd[_0x1b2354][_0x65587d][_0x8c18('0x4')]));break;case 0x7:_0xd1ea42[_0x2ded89](util[_0x8c18('0xb')](_0x8c18('0x36'),_0x33d3bd[_0x1b2354][_0x65587d]['name']));break;case 0x8:_0xd1ea42[_0x2ded89](util[_0x8c18('0xb')](_0x8c18('0x37'),_0x33d3bd[_0x1b2354][_0x65587d][_0x8c18('0x9')],_0x33d3bd[_0x1b2354][_0x65587d][_0x8c18('0x4')]));break;case 0x9:_0xd1ea42[_0x2ded89](util['format'](_0x8c18('0xd'),_0x33d3bd[_0x1b2354][_0x65587d][_0x8c18('0x4')]));break;}}}}})[_0x8c18('0x1a')](function(){if(_0x2ded89===_0x8c18('0x38')){var _0x190fa1=_[_0x8c18('0x39')](_0x5c83f2[_0x8c18('0x13')],'id');return _0x5c83f2[_0x8c18('0x3a')](_0x190fa1)['then'](function(){for(var _0x503f5d=0x0;_0x503f5d<_0x190fa1[_0x8c18('0x30')];_0x503f5d+=0x1){_0x4070a2['emit'](_0x8c18('0x3b'),{'ChatInteractionId':Number(_0x190fa1[_0x503f5d]),'UserId':Number(_0x5c83f2['id'])});}});}})['then'](function(){if(_0x2ded89===_0x8c18('0x38')){var _0x38b155=_[_0x8c18('0x39')](_0x5c83f2[_0x8c18('0x14')],'id');return _0x5c83f2[_0x8c18('0x3c')](_0x38b155)['then'](function(){for(var _0x5d7352=0x0;_0x5d7352<_0x38b155[_0x8c18('0x30')];_0x5d7352+=0x1){_0x4070a2[_0x8c18('0x3d')](_0x8c18('0x3e'),{'MailInteractionId':Number(_0x38b155[_0x5d7352]),'UserId':Number(_0x5c83f2['id'])});}});}})[_0x8c18('0x1a')](function(){if(_0x2ded89===_0x8c18('0x38')){var _0x153478=_[_0x8c18('0x39')](_0x5c83f2['FaxInteractions'],'id');return _0x5c83f2['removeFaxInteractions'](_0x153478)[_0x8c18('0x1a')](function(){for(var _0x2af4c4=0x0;_0x2af4c4<_0x153478[_0x8c18('0x30')];_0x2af4c4+=0x1){_0x4070a2[_0x8c18('0x3d')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x153478[_0x2af4c4]),'UserId':Number(_0x5c83f2['id'])});}});}})[_0x8c18('0x1a')](function(){if(_0x2ded89===_0x8c18('0x38')){var _0x591dc3=_['map'](_0x5c83f2['SmsInteractions'],'id');return _0x5c83f2[_0x8c18('0x3f')](_0x591dc3)[_0x8c18('0x1a')](function(){for(var _0xdef9f2=0x0;_0xdef9f2<_0x591dc3[_0x8c18('0x30')];_0xdef9f2+=0x1){_0x4070a2[_0x8c18('0x3d')](_0x8c18('0x40'),{'SmsInteractionId':Number(_0x591dc3[_0xdef9f2]),'UserId':Number(_0x5c83f2['id'])});}});}})[_0x8c18('0x1a')](function(){if(_0x2ded89===_0x8c18('0x38')){var _0x11f4d4=_[_0x8c18('0x39')](_0x5c83f2[_0x8c18('0x19')],'id');return _0x5c83f2[_0x8c18('0x41')](_0x11f4d4)[_0x8c18('0x1a')](function(){for(var _0x3fec6e=0x0;_0x3fec6e<_0x11f4d4[_0x8c18('0x30')];_0x3fec6e+=0x1){_0x4070a2[_0x8c18('0x3d')](_0x8c18('0x42'),{'OpenchannelInteractionId':Number(_0x11f4d4[_0x3fec6e]),'UserId':Number(_0x5c83f2['id'])});}});}})[_0x8c18('0x43')](function(_0x5b6931){_0xd1ea42[_0x8c18('0x44')](_0x5b6931);});}}function onDisconnect(_0x2446f7,_0x2fd510){joinOrLeave(_0x2446f7,'leave',_0x2fd510);}function onConnect(_0x5f36c9){joinOrLeave(_0x5f36c9,_0x8c18('0x45'));}exports[_0x8c18('0x46')]=function(_0x47664d){_0x47664d['on'](_0x8c18('0x47'),function(_0x262c2f){_0x262c2f[_0x8c18('0x48')](0x0);_0x262c2f[_0x8c18('0x49')]=_0x262c2f[_0x8c18('0x4a')][_0x8c18('0x47')]['remoteAddress']+':'+_0x262c2f[_0x8c18('0x4a')]['connection'][_0x8c18('0x4b')];_0x262c2f[_0x8c18('0x4c')]=new Date();_0x262c2f[_0x8c18('0x44')]=function(_0x46a185){console[_0x8c18('0x44')](_0x8c18('0x4d')+_0x262c2f[_0x8c18('0x4e')][_0x8c18('0x4')]+'['+_0x262c2f[_0x8c18('0x49')]+']',_0x46a185);};_0x262c2f['on'](_0x8c18('0x4f'),function(){onDisconnect(_0x262c2f,_0x47664d);_0x262c2f['log'](_0x8c18('0x50'));});onConnect(_0x262c2f);_0x262c2f['log']('CONNECTED');});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x19e4=['callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','afterCreate','Chat','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','FaxInteraction','newinteraction','Fax','FaxMessage','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','then','Trigger,\x20%s','error','catch','get','event','direction','UserId','User','name','interface','channel','incomingmessage','outgoingmessage','opened','changed','closed','format','SIP/%s','length','hasOwnProperty','model','hook'];(function(_0x4ac6f6,_0x529224){var _0x3ea76d=function(_0x143924){while(--_0x143924){_0x4ac6f6['push'](_0x4ac6f6['shift']());}};_0x3ea76d(++_0x529224);}(_0x19e4,0x6d));var _0x419e=function(_0xc1df26,_0x39ecea){_0xc1df26=_0xc1df26-0x0;var _0x2088f3=_0x19e4[_0xc1df26];return _0x2088f3;};'use strict';var util=require(_0x419e('0x0'));var db=require(_0x419e('0x1'))['db'];var jayson=require(_0x419e('0x2'));var logger=require(_0x419e('0x3'))(_0x419e('0x4'));var client=jayson[_0x419e('0x5')]['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':_0x419e('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x419e('0x7'),'model':_0x419e('0x8'),'event':_0x419e('0x9'),'condition':_0x419e('0xa'),'callback':afterUpdate},{'channel':_0x419e('0x7'),'model':_0x419e('0xb'),'event':_0x419e('0x6'),'condition':_0x419e('0xc'),'callback':afterCreateMessage},{'channel':_0x419e('0xd'),'model':_0x419e('0xe'),'event':_0x419e('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x419e('0xd'),'model':_0x419e('0xe'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x419e('0xd'),'model':_0x419e('0xf'),'event':'afterCreate','condition':_0x419e('0xc'),'callback':afterCreateMessage},{'channel':'Fax','model':_0x419e('0x10'),'event':_0x419e('0x6'),'condition':_0x419e('0x11'),'callback':afterCreate},{'channel':_0x419e('0x12'),'model':_0x419e('0x10'),'event':_0x419e('0x9'),'condition':_0x419e('0xa'),'callback':afterUpdate},{'channel':_0x419e('0x12'),'model':_0x419e('0x13'),'event':_0x419e('0x6'),'condition':_0x419e('0xc'),'callback':afterCreateMessage},{'channel':_0x419e('0x14'),'model':_0x419e('0x15'),'event':_0x419e('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x419e('0x14'),'model':_0x419e('0x15'),'event':_0x419e('0x9'),'condition':_0x419e('0xa'),'callback':afterUpdate},{'channel':'Mail','model':_0x419e('0x16'),'event':_0x419e('0x6'),'condition':_0x419e('0xc'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x419e('0x17'),'event':_0x419e('0x6'),'condition':_0x419e('0x11'),'callback':afterCreate},{'channel':_0x419e('0x18'),'model':_0x419e('0x17'),'event':_0x419e('0x9'),'condition':_0x419e('0xa'),'callback':afterUpdate},{'channel':_0x419e('0x18'),'model':_0x419e('0x19'),'event':_0x419e('0x6'),'condition':_0x419e('0xc'),'callback':afterCreateMessage}];function request(_0x1b1d2e){return client[_0x419e('0x1a')]('EventManager',_0x1b1d2e)[_0x419e('0x1b')](function(_0x561714){logger['info'](_0x419e('0x1c'),'EventManager',_0x561714);if(_0x561714[_0x419e('0x1d')]){if(_0x561714['error']['code']===0x1f4){logger[_0x419e('0x1d')](_0x419e('0x1c'),'EventManager',_0x561714['error']);}}})[_0x419e('0x1e')](function(_0x1022ad){logger[_0x419e('0x1d')](_0x419e('0x1c'),'EventManager',_0x1022ad);});}function afterCreateMessage(_0x44865d,_0x530132){return function(_0x53f759,_0x23ba8c){_0x53f759=_0x53f759[_0x419e('0x1f')]({'plain':!![]});_0x53f759['channel']=_0x44865d;_0x53f759[_0x419e('0x20')]=_0x53f759[_0x419e('0x21')];if(_0x53f759[_0x419e('0x22')]){return db[_0x419e('0x23')]['find']({'where':{'id':_0x53f759['UserId']},'attributes':['id',_0x419e('0x24')],'raw':!![]})[_0x419e('0x1b')](function(_0x7e2798){_0x53f759[_0x419e('0x25')]=util['format']('SIP/%s',_0x7e2798[_0x419e('0x24')]);_0x53f759[_0x419e('0x26')]=_0x44865d;return request({'event':_0x419e('0x27'),'message':_0x53f759});})['catch'](function(_0x5cf6a9){console[_0x419e('0x1d')](_0x5cf6a9);});}else{return request({'event':_0x419e('0x28'),'message':_0x53f759});}};}function afterCreate(_0x45cf1d,_0x34dc60){return function(_0x438b8e,_0x2cdf5b){_0x438b8e=_0x438b8e['get']({'plain':!![]});_0x438b8e[_0x419e('0x26')]=_0x45cf1d;_0x438b8e['event']=_0x419e('0x29');return request({'event':_0x34dc60,'message':_0x438b8e});};}function afterUpdate(_0x342111,_0x7974e3){return function(_0x1ebf28,_0x34641f){if(_0x1ebf28[_0x419e('0x2a')](_0x419e('0x2b'))&&_0x1ebf28['closed']){_0x1ebf28=_0x1ebf28[_0x419e('0x1f')]({'plain':!![]});_0x1ebf28[_0x419e('0x26')]=_0x342111;_0x1ebf28[_0x419e('0x20')]='closed';if(_0x1ebf28[_0x419e('0x22')]){return db['User']['find']({'where':{'id':_0x1ebf28[_0x419e('0x22')]},'attributes':['id','name'],'raw':!![]})['then'](function(_0x1bf84e){_0x1ebf28[_0x419e('0x25')]=util[_0x419e('0x2c')](_0x419e('0x2d'),_0x1bf84e[_0x419e('0x24')]);return request({'event':_0x7974e3,'message':_0x1ebf28});})[_0x419e('0x1e')](function(_0x50afe0){console[_0x419e('0x1d')](_0x50afe0);});}else{return request({'event':_0x7974e3,'message':_0x1ebf28});}}};}exports['default']=function(){for(var _0x2062a6=0x0;_0x2062a6<triggers[_0x419e('0x2e')];_0x2062a6+=0x1){if(db[_0x419e('0x2f')](triggers[_0x2062a6][_0x419e('0x30')])){db[triggers[_0x2062a6][_0x419e('0x30')]][_0x419e('0x31')](triggers[_0x2062a6][_0x419e('0x20')],triggers[_0x2062a6][_0x419e('0x32')](triggers[_0x2062a6][_0x419e('0x26')][_0x419e('0x33')](),triggers[_0x2062a6][_0x419e('0x34')]));}}};
\ No newline at end of file
+var _0xa26d=['client','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','then','EventManager','error','Trigger,\x20%s','catch','get','channel','direction','UserId','User','find','name','interface','format','incomingmessage','opened','changed','closed','event','SIP/%s','length','hasOwnProperty','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers'];(function(_0x595f29,_0x554668){var _0x18e07c=function(_0x3b1ad0){while(--_0x3b1ad0){_0x595f29['push'](_0x595f29['shift']());}};_0x18e07c(++_0x554668);}(_0xa26d,0xcf));var _0xda26=function(_0xadadb1,_0x29bbdd){_0xadadb1=_0xadadb1-0x0;var _0x445d50=_0xa26d[_0xadadb1];return _0x445d50;};'use strict';var util=require(_0xda26('0x0'));var db=require(_0xda26('0x1'))['db'];var jayson=require(_0xda26('0x2'));var logger=require(_0xda26('0x3'))(_0xda26('0x4'));var client=jayson[_0xda26('0x5')]['http']({'port':0x232a});var triggers=[{'channel':_0xda26('0x6'),'model':_0xda26('0x7'),'event':_0xda26('0x8'),'condition':_0xda26('0x9'),'callback':afterCreate},{'channel':_0xda26('0x6'),'model':_0xda26('0x7'),'event':_0xda26('0xa'),'condition':_0xda26('0xb'),'callback':afterUpdate},{'channel':_0xda26('0x6'),'model':_0xda26('0xc'),'event':_0xda26('0x8'),'condition':_0xda26('0xd'),'callback':afterCreateMessage},{'channel':_0xda26('0xe'),'model':_0xda26('0xf'),'event':_0xda26('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':'Sms','model':_0xda26('0xf'),'event':'afterUpdate','condition':_0xda26('0xb'),'callback':afterUpdate},{'channel':'Sms','model':_0xda26('0x10'),'event':_0xda26('0x8'),'condition':_0xda26('0xd'),'callback':afterCreateMessage},{'channel':_0xda26('0x11'),'model':_0xda26('0x12'),'event':_0xda26('0x8'),'condition':_0xda26('0x9'),'callback':afterCreate},{'channel':_0xda26('0x11'),'model':'FaxInteraction','event':_0xda26('0xa'),'condition':_0xda26('0xb'),'callback':afterUpdate},{'channel':_0xda26('0x11'),'model':_0xda26('0x13'),'event':_0xda26('0x8'),'condition':_0xda26('0xd'),'callback':afterCreateMessage},{'channel':_0xda26('0x14'),'model':'MailInteraction','event':_0xda26('0x8'),'condition':_0xda26('0x9'),'callback':afterCreate},{'channel':_0xda26('0x14'),'model':_0xda26('0x15'),'event':_0xda26('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xda26('0x14'),'model':_0xda26('0x16'),'event':_0xda26('0x8'),'condition':_0xda26('0xd'),'callback':afterCreateMessage},{'channel':_0xda26('0x17'),'model':_0xda26('0x18'),'event':_0xda26('0x8'),'condition':_0xda26('0x9'),'callback':afterCreate},{'channel':_0xda26('0x17'),'model':'OpenchannelInteraction','event':_0xda26('0xa'),'condition':_0xda26('0xb'),'callback':afterUpdate},{'channel':_0xda26('0x17'),'model':_0xda26('0x19'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage}];function request(_0x4c3428){return client[_0xda26('0x1a')]('EventManager',_0x4c3428)[_0xda26('0x1b')](function(_0x56b293){logger['info']('Trigger,\x20%s',_0xda26('0x1c'),_0x56b293);if(_0x56b293[_0xda26('0x1d')]){if(_0x56b293[_0xda26('0x1d')]['code']===0x1f4){logger[_0xda26('0x1d')](_0xda26('0x1e'),_0xda26('0x1c'),_0x56b293[_0xda26('0x1d')]);}}})[_0xda26('0x1f')](function(_0x129a11){logger[_0xda26('0x1d')](_0xda26('0x1e'),'EventManager',_0x129a11);});}function afterCreateMessage(_0x56f485,_0x945b1c){return function(_0x2e1913,_0x46eb55){_0x2e1913=_0x2e1913[_0xda26('0x20')]({'plain':!![]});_0x2e1913[_0xda26('0x21')]=_0x56f485;_0x2e1913['event']=_0x2e1913[_0xda26('0x22')];if(_0x2e1913[_0xda26('0x23')]){return db[_0xda26('0x24')][_0xda26('0x25')]({'where':{'id':_0x2e1913[_0xda26('0x23')]},'attributes':['id',_0xda26('0x26')],'raw':!![]})['then'](function(_0xd077fa){_0x2e1913[_0xda26('0x27')]=util[_0xda26('0x28')]('SIP/%s',_0xd077fa[_0xda26('0x26')]);_0x2e1913[_0xda26('0x21')]=_0x56f485;return request({'event':_0xda26('0x29'),'message':_0x2e1913});})[_0xda26('0x1f')](function(_0x4f8eb2){console[_0xda26('0x1d')](_0x4f8eb2);});}else{return request({'event':'outgoingmessage','message':_0x2e1913});}};}function afterCreate(_0x2bc5d0,_0x45d23e){return function(_0x41387e,_0x5cc0dc){_0x41387e=_0x41387e[_0xda26('0x20')]({'plain':!![]});_0x41387e[_0xda26('0x21')]=_0x2bc5d0;_0x41387e['event']=_0xda26('0x2a');return request({'event':_0x45d23e,'message':_0x41387e});};}function afterUpdate(_0x5aa0f1,_0x44d960){return function(_0x54c407,_0x205870){if(_0x54c407[_0xda26('0x2b')](_0xda26('0x2c'))&&_0x54c407[_0xda26('0x2c')]){_0x54c407=_0x54c407[_0xda26('0x20')]({'plain':!![]});_0x54c407['channel']=_0x5aa0f1;_0x54c407[_0xda26('0x2d')]=_0xda26('0x2c');if(_0x54c407['UserId']){return db['User'][_0xda26('0x25')]({'where':{'id':_0x54c407['UserId']},'attributes':['id','name'],'raw':!![]})[_0xda26('0x1b')](function(_0x1727c0){_0x54c407[_0xda26('0x27')]=util[_0xda26('0x28')](_0xda26('0x2e'),_0x1727c0['name']);return request({'event':_0x44d960,'message':_0x54c407});})['catch'](function(_0x11d527){console[_0xda26('0x1d')](_0x11d527);});}else{return request({'event':_0x44d960,'message':_0x54c407});}}};}exports['default']=function(){for(var _0x2b8361=0x0;_0x2b8361<triggers[_0xda26('0x2f')];_0x2b8361+=0x1){if(db[_0xda26('0x30')](triggers[_0x2b8361]['model'])){db[triggers[_0x2b8361]['model']][_0xda26('0x31')](triggers[_0x2b8361][_0xda26('0x2d')],triggers[_0x2b8361][_0xda26('0x32')](triggers[_0x2b8361][_0xda26('0x21')][_0xda26('0x33')](),triggers[_0x2b8361][_0xda26('0x34')]));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62ba=['mail','chat','fax','exports','includes','lodash'];(function(_0x365e54,_0x44be74){var _0x13317a=function(_0x2d917f){while(--_0x2d917f){_0x365e54['push'](_0x365e54['shift']());}};_0x13317a(++_0x44be74);}(_0x62ba,0x1cd));var _0xa62b=function(_0x1c0edd,_0x53e2e6){_0x1c0edd=_0x1c0edd-0x0;var _0x1bee0d=_0x62ba[_0x1c0edd];return _0x1bee0d;};'use strict';var _=require(_0xa62b('0x0'));var channels=['voice',_0xa62b('0x1'),_0xa62b('0x2'),_0xa62b('0x3'),'sms','openchannel'];module[_0xa62b('0x4')]={'getChannels':function(){return channels;},'isValidChannel':function(_0x46ca3c){_0x46ca3c=_0x46ca3c['toLowerCase']();return _[_0xa62b('0x5')](channels,_0x46ca3c);}};
\ No newline at end of file
+var _0xaac0=['sms','exports','toLowerCase','includes','lodash','voice','chat','fax'];(function(_0x38987f,_0xc79720){var _0x4cb697=function(_0x1af5ae){while(--_0x1af5ae){_0x38987f['push'](_0x38987f['shift']());}};_0x4cb697(++_0xc79720);}(_0xaac0,0x10c));var _0x0aac=function(_0x18ac4a,_0x3970f0){_0x18ac4a=_0x18ac4a-0x0;var _0x48cb7a=_0xaac0[_0x18ac4a];return _0x48cb7a;};'use strict';var _=require(_0x0aac('0x0'));var channels=[_0x0aac('0x1'),'mail',_0x0aac('0x2'),_0x0aac('0x3'),_0x0aac('0x4'),'openchannel'];module[_0x0aac('0x5')]={'getChannels':function(){return channels;},'isValidChannel':function(_0x48d4b4){_0x48d4b4=_0x48d4b4[_0x0aac('0x6')]();return _[_0x0aac('0x7')](channels,_0x48d4b4);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba8d=['json','send','exports','render','status'];(function(_0x122c7c,_0x4b98fe){var _0x2f4b2e=function(_0x5a3236){while(--_0x5a3236){_0x122c7c['push'](_0x122c7c['shift']());}};_0x2f4b2e(++_0x4b98fe);}(_0xba8d,0xed));var _0xdba8=function(_0x1b3b90,_0x2ecb5c){_0x1b3b90=_0x1b3b90-0x0;var _0x2d41c1=_0xba8d[_0x1b3b90];return _0x2d41c1;};'use strict';module[_0xdba8('0x0')][0x194]=function pageNotFound(_0x475a10,_0x648e22){var _0x610881='404';var _0x8d44fa=0x194;var _0x40ed33={'status':_0x8d44fa};_0x648e22['status'](_0x40ed33['status']);_0x648e22[_0xdba8('0x1')](_0x610881,{},function(_0x118b87,_0x4f0fe2){if(_0x118b87){return _0x648e22[_0xdba8('0x2')](_0x40ed33[_0xdba8('0x2')])[_0xdba8('0x3')](_0x40ed33);}_0x648e22[_0xdba8('0x4')](_0x4f0fe2);});};
\ No newline at end of file
+var _0x0f39=['exports','404','status','render','json','send'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0x0f39,0xde));var _0x90f3=function(_0x5b807e,_0x836bdb){_0x5b807e=_0x5b807e-0x0;var _0x34a257=_0x0f39[_0x5b807e];return _0x34a257;};'use strict';module[_0x90f3('0x0')][0x194]=function pageNotFound(_0x428972,_0xf3ce1e){var _0x3da6e5=_0x90f3('0x1');var _0x129c8c=0x194;var _0x26a415={'status':_0x129c8c};_0xf3ce1e[_0x90f3('0x2')](_0x26a415[_0x90f3('0x2')]);_0xf3ce1e[_0x90f3('0x3')](_0x3da6e5,{},function(_0x507bba,_0x3f7b8b){if(_0x507bba){return _0xf3ce1e[_0x90f3('0x2')](_0x26a415[_0x90f3('0x2')])[_0x90f3('0x4')](_0x26a415);}_0xf3ce1e[_0x90f3('0x5')](_0x3f7b8b);});};
\ No newline at end of file
--- /dev/null
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+ this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+ this.queryInterface = queryInterface;
+ this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .changeColumn(table, column, type)
+ .then(function() {
+ logger.info('Changed column %s in table %s', column, table);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .addColumn(table, column, type)
+ .then(function() {
+ logger.info('Added column %s to %s', column, table);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.dropTable = function(table) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .dropTable(table, {
+ force: true
+ })
+ .then(function() {
+ logger.info('table dropped %s', table);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .addIndex(table, column, {
+ indexName: indexName
+ })
+ .then(function() {
+ logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .removeIndex(table, indexName)
+ .then(function() {
+ logger.info('removeIndex %s %s', table, indexName);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.query = function(sql) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface.sequelize
+ .query(sql)
+ .then(function() {
+ logger.info('query %s', sql);
+ })
+ .catch(function(err) {
+ logger.info(JSON.stringify(err));
+ });
+ });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .removeColumn(table, column)
+ .then(function() {
+ logger.info('Removed column %s from %s', column, table);
+ })
+ .catch(function(err) {
+ logger.info(
+ util.inspect(err, {
+ showHidden: false,
+ depth: null
+ })
+ );
+ });
+ });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+ var _this = this;
+ this.sequence.enqueue(function() {
+ return _this.queryInterface
+ .renameColumn(table, oldColumn, newColumn)
+ .then(function() {
+ logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+ })
+ .catch(function(err) {
+ logger.info(
+ util.inspect(err, {
+ showHidden: false,
+ depth: null
+ })
+ );
+ });
+ });
+};
+
+Migration.prototype.final = function(resolve) {
+ this.sequence.enqueue(function() {
+ return resolve();
+ });
+};
+
+module.exports = {
+ up: function(queryInterface, Sequelize) {
+ return new BPromise(function(resolve) {
+ var migration = new Migration(queryInterface);
+
+ // START FINAL
+ migration.final(resolve);
+ // END FINAL
+ });
+ },
+
+ down: function(queryInterface, Sequelize) {
+ // var migration = new Migration(queryInterface);
+ }
+};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a63=['Tags','ThroughTags','Users','MailInteractionId','Attachment','Account','restrict','ListId','Dashboard','DashboardItem','FaxAccountId','List','fax_interaction_has_tags','Interaction','FaxInteractionId','AttachmentId','team_has_fax_queues','Answers','SmsAccountId','SmsMessage','TagId','SmsInteractionId','SmsQueueId','team_has_sms_queues','OpenchannelAccountId','OpenchannelMessage','OpenchannelInteractionId','openchannel_interaction_has_tags','OpenchannelQueueId','team_has_openchannel_queues','ChatWebsiteId','ChatProactiveAction','Agent','Queue','ChatQueueId','ChatInteractionId','chat_interaction_has_tags','team_has_chat_queues','ChatGroupId','Members','Website','CompanyId','cm_contact_has_tags','All','AutomationAllId','Any','OneAny','AutomationAnyId','Actions','AutomationId','MailApplications','ChatApplications','SmsApplications','DefaultReportId','Mohs','sms_interaction_has_tags','AllCondition','TriggerAllId','AnyConditions','AnyCondition','TriggerAnyId','Fields','CustomReportId','Configurations','Subjects','SubjectId','Descriptions','DescriptionId','FieldId','AccountId','Subject','Description','Field','VariableId','int_desk_configuration_has_tags','int_zendesk_configuration_has_tags','FreshdeskField','VtigerAccount','VtigerConfiguration','int_vtiger_configuration_has_tags','ChatQueueReport','FromId','ToId','SessionId','SmsQueueReport','ProjectId','SquareProject','user_has_square_projects','user_has_teams','CampaignId','TrunkId','TrunkBackup','SquareProjectId','campaigns_has_cm_lists','BlackLists','campaigns_has_cm_blacklists','FromMailAccountId','FromUserId','ToUserId','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','FromAccount','FromAgent','ToChatQueueId','ToChatWebsiteId','ToAccount','FaxTransferReport','FromFaxAccountId','ToFaxQueueId','ToFaxAccountId','FromSmsAccountId','ToSmsQueueId','ToSmsAccountId','CustomFields','Queues','user_has_voice_prefixes','exports','path','determine','defaultsDeep','sequelize','motion2','xcall','xC@LL1234','127.0.0.1','mysql','utf8mb4','name','utf8','utf8_general_ci','username','password','options','sequelizeHistory','import','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','VoiceAgentReport','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','../api/memberReport/memberReport.model','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','../api/userFaxQueue/userFaxQueue.model','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','MailServerIn','../api/mailServerIn/mailServerIn.model','MailServerOut','MailAccount','../api/mailAccount/mailAccount.model','MailQueue','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','MailMessage','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','../api/dashboard/dashboard.model','../api/dashboardItem/dashboardItem.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','FaxQueueReport','SmsAccount','../api/smsAccount/smsAccount.model','SmsApplication','../api/smsApplication/smsApplication.model','../api/smsInteraction/smsInteraction.model','../api/smsMessage/smsMessage.model','SmsQueue','../api/smsQueue/smsQueue.model','OpenchannelAccount','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelQueue','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','../api/openchannelQueueReport/openchannelQueueReport.model','ChatApplication','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatMessage/chatMessage.model','ChatOfflineMessage','ChatQueue','../api/chatQueue/chatQueue.model','ChatGroup','../api/chatGroup/chatGroup.model','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmContact','../api/cmContact/cmContact.model','CmHopper','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperFinal','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','ReportAgentPreview','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','Action','../api/action/action.model','Automation','../api/automation/automation.model','CannedAnswer','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Pause','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','VoiceQueuesLog','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','Tag','Template','../api/template/template.model','Trigger','../api/trigger/trigger.model','Variable','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskConfiguration','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','ZohoField','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','FreshdeskConfiguration','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','../api/intFreshdeskField/intFreshdeskField.model','../api/intVtigerAccount/intVtigerAccount.model','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','../api/network/network.model','../api/chatQueueReport/chatQueueReport.model','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','SquareReport','../api/squareReport/squareReport.model','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../api/jscriptyProject/jscriptyProject.model','Setting','../api/setting/setting.model','SquareOdbc','../api/squareOdbc/squareOdbc.model','../api/squareProject/squareProject.model','SquareRecording','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/license/license.model','Campaign','../api/campaign/campaign.model','../api/migration/migration.model','../api/plugin/plugin.model','MailTransferReport','ChatTransferReport','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','CmList','VoicePrefix','../api/voicePrefix/voicePrefix.model','User','hasOne','VoiceMail','UserId','hasMany','UserVoiceQueueRt','VoiceQueuesRt','Extensions','cascade','HopperFinals','HopperHistory','OpenchannelInteractions','ChatInteraction','ChatInteractions','SmsInteractions','FaxInteractions','MailInteractions','belongsToMany','chat_group_has_users','Contacts','cm_user_has_contacts','cm_user_has_lists','user_has_mail_interactions','user_has_fax_interactions','SmsInteraction','user_has_sms_interactions','user_has_openchannel_interactions','VoiceQueues','MailQueues','ChatQueues','UserChatQueue','FaxQueues','SmsQueues','UserSmsQueue','OpenchannelQueues','VoicePrefixes','ChatWebsites','user_has_chat_websites','FaxAccounts','MailAccounts','user_has_mail_accounts','OpenchannelAccounts','user_has_openchannel_accounts','SmsAccounts','user_has_sms_accounts','SquareProjects','VoiceChanSpy','ChanSpyId','Applications','Sounds','moh_has_sounds','VoiceQueue','Hoppers','VoiceQueueId','HopperHistories','HopperBlacks','JscriptySessions','Trunk','belongsTo','TrunkBackupId','Interval','IntervalId','Lists','voice_queues_has_cm_lists','Teams','team_has_voice_queues','voice_queues_has_cm_blacklists','Messages','mailboxuser','mailbox','QueueCalls','uniqueid','AgentReports','Contact','ContactId','MailAccountId','Smtp','Dispositions','Interactions','Agents','team_has_mail_queues','Owner','mail_interaction_has_tags'];(function(_0x4de9e8,_0x565ffa){var _0x4db0de=function(_0x12279d){while(--_0x12279d){_0x4de9e8['push'](_0x4de9e8['shift']());}};_0x4db0de(++_0x565ffa);}(_0x9a63,0x77));var _0x39a6=function(_0x13854c,_0x2ed273){_0x13854c=_0x13854c-0x0;var _0x4d9c2e=_0x9a63[_0x13854c];return _0x4d9c2e;};'use strict';var path=require(_0x39a6('0x0'));var config=require('../config/environment');var Sequelize=require('sequelize');var _=require('lodash');var jstz=require('jstz');var timezone=jstz[_0x39a6('0x1')]();config['sequelize']=_[_0x39a6('0x2')](config[_0x39a6('0x3')],{'database':_0x39a6('0x4'),'username':_0x39a6('0x5'),'password':_0x39a6('0x6'),'options':{'host':_0x39a6('0x7'),'port':0xcea,'dialect':_0x39a6('0x8'),'dialectOptions':{'charset':_0x39a6('0x9')},'logging':![],'timezone':timezone[_0x39a6('0xa')](),'define':{'charset':_0x39a6('0xb'),'collate':'utf8_general_ci'}}});config['sequelizeHistory']=_[_0x39a6('0x2')](config['sequelizeHistory'],{'database':_0x39a6('0x4'),'username':'xcall','password':_0x39a6('0x6'),'options':{'host':'127.0.0.1','port':0xcea,'dialect':_0x39a6('0x8'),'dialectOptions':{'charset':_0x39a6('0x9')},'logging':![],'timezone':timezone[_0x39a6('0xa')](),'define':{'charset':'utf8','collate':_0x39a6('0xc')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x39a6('0x3')]['database'],config['sequelize'][_0x39a6('0xd')],config['sequelize'][_0x39a6('0xe')],config['sequelize'][_0x39a6('0xf')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x39a6('0x10')]['database'],config['sequelizeHistory'][_0x39a6('0xd')],config['sequelizeHistory'][_0x39a6('0xe')],config[_0x39a6('0x10')][_0x39a6('0xf')])};db['User']=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/user/user.model');db['VoiceChanSpy']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x12'));db[_0x39a6('0x13')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x14'));db[_0x39a6('0x15')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x16'));db[_0x39a6('0x17')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x18'));db['VoiceQueue']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x19'));db[_0x39a6('0x1a')]=db['sequelize'][_0x39a6('0x11')]('../api/voiceRecording/voiceRecording.model');db['VoiceMail']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x1b'));db[_0x39a6('0x1c')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x1d'));db[_0x39a6('0x1e')]=db['sequelize']['import'](_0x39a6('0x1f'));db[_0x39a6('0x20')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x21'));db[_0x39a6('0x22')]=db[_0x39a6('0x3')]['import']('../api/voiceAgentReport/voiceAgentReport.model');db[_0x39a6('0x23')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x24'));db['MemberReport']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x25'));db['Trunk']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x26'));db[_0x39a6('0x27')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x28'));db['UserVoiceQueueRt']=db[_0x39a6('0x3')]['import'](_0x39a6('0x29'));db[_0x39a6('0x2a')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x2b'));db['UserChatQueue']=db[_0x39a6('0x3')]['import'](_0x39a6('0x2c'));db[_0x39a6('0x2d')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x2e'));db[_0x39a6('0x2f')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x30'));db['UserSmsQueue']=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x31'));db[_0x39a6('0x32')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x33'));db[_0x39a6('0x34')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x35'));db[_0x39a6('0x36')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/mailServerOut/mailServerOut.model');db[_0x39a6('0x37')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x38'));db[_0x39a6('0x39')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/mailQueue/mailQueue.model');db[_0x39a6('0x3a')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x3b'));db[_0x39a6('0x3c')]=db['sequelize'][_0x39a6('0x11')]('../api/mailInteraction/mailInteraction.model');db[_0x39a6('0x3d')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/mailMessage/mailMessage.model');db[_0x39a6('0x3e')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x3f'));db[_0x39a6('0x40')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x41'));db['Dashboard']=db[_0x39a6('0x3')]['import'](_0x39a6('0x42'));db['DashboardItem']=db[_0x39a6('0x3')]['import'](_0x39a6('0x43'));db[_0x39a6('0x44')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x45'));db[_0x39a6('0x46')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x47'));db[_0x39a6('0x48')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x49'));db[_0x39a6('0x4a')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x4b'));db[_0x39a6('0x4c')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/faxQueue/faxQueue.model');db[_0x39a6('0x4d')]=db['sequelize']['import']('../api/faxQueueReport/faxQueueReport.model');db[_0x39a6('0x4e')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x4f'));db[_0x39a6('0x50')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x51'));db['SmsInteraction']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x52'));db['SmsMessage']=db['sequelize']['import'](_0x39a6('0x53'));db[_0x39a6('0x54')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x55'));db[_0x39a6('0x56')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/openchannelAccount/openchannelAccount.model');db[_0x39a6('0x57')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x58'));db[_0x39a6('0x59')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x5a'));db['OpenchannelMessage']=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/openchannelMessage/openchannelMessage.model');db[_0x39a6('0x5b')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x5c'));db[_0x39a6('0x5d')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x5e'));db[_0x39a6('0x5f')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x60'));db[_0x39a6('0x61')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/chatApplication/chatApplication.model');db['ChatInteraction']=db['sequelize']['import'](_0x39a6('0x62'));db[_0x39a6('0x63')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x64'));db[_0x39a6('0x65')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/chatOfflineMessage/chatOfflineMessage.model');db[_0x39a6('0x66')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x67'));db[_0x39a6('0x68')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x69'));db['ChatProactiveAction']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x6a'));db[_0x39a6('0x6b')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x6c'));db[_0x39a6('0x6d')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x6e'));db[_0x39a6('0x6f')]=db['sequelize'][_0x39a6('0x11')]('../api/cmHopper/cmHopper.model');db[_0x39a6('0x70')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x71'));db[_0x39a6('0x72')]=db['sequelize'][_0x39a6('0x11')]('../api/cmHopperFinal/cmHopperFinal.model');db[_0x39a6('0x73')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x74'));db[_0x39a6('0x75')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x76'));db[_0x39a6('0x77')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x78'));db[_0x39a6('0x79')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x7a'));db[_0x39a6('0x7b')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x7c'));db[_0x39a6('0x7d')]=db['sequelize'][_0x39a6('0x11')]('../api/cannedAnswer/cannedAnswer.model');db[_0x39a6('0x7e')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x7f'));db[_0x39a6('0x80')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x81'));db['Interval']=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/interval/interval.model');db[_0x39a6('0x82')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x83'));db[_0x39a6('0x84')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x85'));db[_0x39a6('0x86')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x87'));db[_0x39a6('0x88')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x89'));db[_0x39a6('0x8a')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/sound/sound.model');db[_0x39a6('0x8b')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/tag/tag.model');db[_0x39a6('0x8c')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x8d'));db[_0x39a6('0x8e')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x8f'));db[_0x39a6('0x90')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/variable/variable.model');db[_0x39a6('0x91')]=db['sequelize']['import'](_0x39a6('0x92'));db[_0x39a6('0x93')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x94'));db[_0x39a6('0x95')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x96'));db[_0x39a6('0x97')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0x98'));db[_0x39a6('0x99')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x9a'));db[_0x39a6('0x9b')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x9c'));db[_0x39a6('0x9d')]=db[_0x39a6('0x3')]['import'](_0x39a6('0x9e'));db['AnalyticTreeReport']=db[_0x39a6('0x3')]['import'](_0x39a6('0x9f'));db[_0x39a6('0xa0')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xa1'));db[_0x39a6('0xa2')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0xa3'));db[_0x39a6('0xa4')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xa5'));db[_0x39a6('0xa6')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xa7'));db[_0x39a6('0xa8')]=db['sequelize']['import'](_0x39a6('0xa9'));db[_0x39a6('0xaa')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xab'));db[_0x39a6('0xac')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xad'));db[_0x39a6('0xae')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xaf'));db[_0x39a6('0xb0')]=db['sequelize']['import'](_0x39a6('0xb1'));db[_0x39a6('0xb2')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xb3'));db[_0x39a6('0xb4')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/intZohoConfiguration/intZohoConfiguration.model');db[_0x39a6('0xb5')]=db['sequelize'][_0x39a6('0x11')]('../api/intZohoField/intZohoField.model');db[_0x39a6('0xb6')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xb7'));db[_0x39a6('0xb8')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/intZendeskConfiguration/intZendeskConfiguration.model');db[_0x39a6('0xb9')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xba'));db[_0x39a6('0xbb')]=db['sequelize']['import'](_0x39a6('0xbc'));db[_0x39a6('0xbd')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xbe'));db['FreshdeskField']=db[_0x39a6('0x3')]['import'](_0x39a6('0xbf'));db['VtigerAccount']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xc0'));db['VtigerConfiguration']=db['sequelize'][_0x39a6('0x11')](_0x39a6('0xc1'));db[_0x39a6('0xc2')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xc3'));db['Integration']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0x92'));db['Network']=db[_0x39a6('0x3')]['import'](_0x39a6('0xc4'));db['ChatQueueReport']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xc5'));db[_0x39a6('0xc6')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0xc7'));db[_0x39a6('0xc8')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0xc9'));db[_0x39a6('0xca')]=db['sequelize'][_0x39a6('0x11')](_0x39a6('0xcb'));db[_0x39a6('0xcc')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/jscriptySessionReport/jscriptySessionReport.model');db['SmsQueueReport']=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/smsQueueReport/smsQueueReport.model');db[_0x39a6('0xcd')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xce'));db['SquareDetailsReport']=db[_0x39a6('0x3')]['import'](_0x39a6('0xcf'));db[_0x39a6('0xd0')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xd1'));db[_0x39a6('0xd2')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xd3'));db[_0x39a6('0xd4')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xd5'));db['SquareProject']=db[_0x39a6('0x3')]['import'](_0x39a6('0xd6'));db[_0x39a6('0xd7')]=db['sequelize'][_0x39a6('0x11')]('../api/squareRecording/squareRecording.model');db[_0x39a6('0xd8')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xd9'));db[_0x39a6('0xda')]=db['sequelize'][_0x39a6('0x11')]('../api/team/team.model');db['License']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xdb'));db[_0x39a6('0xdc')]=db[_0x39a6('0x3')]['import'](_0x39a6('0xdd'));db['Migration']=db['sequelize'][_0x39a6('0x11')](_0x39a6('0xde'));db['Attachment']=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/attachment/attachment.model');db['Plugin']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xdf'));db[_0x39a6('0xe0')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/mailTransferReport/mailTransferReport.model');db[_0x39a6('0xe1')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/chatTransferReport/chatTransferReport.model');db['FaxTransferReport']=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xe2'));db[_0x39a6('0xe3')]=db[_0x39a6('0x3')][_0x39a6('0x11')](_0x39a6('0xe4'));db[_0x39a6('0xe5')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/smsTransferReport/smsTransferReport.model');db[_0x39a6('0xe6')]=db[_0x39a6('0x3')][_0x39a6('0x11')]('../api/cmList/cmList.model');db[_0x39a6('0xe7')]=db['sequelize']['import'](_0x39a6('0xe8'));db[_0x39a6('0xe9')][_0x39a6('0xea')](db[_0x39a6('0xeb')],{'as':_0x39a6('0xeb'),'onDelete':'cascade','foreignKey':_0x39a6('0xec')});db['User'][_0x39a6('0xed')](db['VoiceRecording'],{'as':'Recordings','foreignKey':_0x39a6('0xec')});db[_0x39a6('0xe9')][_0x39a6('0xed')](db[_0x39a6('0xee')],{'as':_0x39a6('0xef'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0xe9')]['hasMany'](db['VoiceExtension'],{'as':_0x39a6('0xf0'),'onDelete':_0x39a6('0xf1'),'hooks':!![]});db[_0x39a6('0xe9')][_0x39a6('0xed')](db[_0x39a6('0x72')],{'as':_0x39a6('0xf2'),'foreignKey':'UserId'});db[_0x39a6('0xe9')][_0x39a6('0xed')](db[_0x39a6('0x73')],{'as':_0x39a6('0xf3'),'foreignKey':'UserId'});db['User'][_0x39a6('0xed')](db[_0x39a6('0x75')],{'as':_0x39a6('0x75'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0xe9')][_0x39a6('0xed')](db[_0x39a6('0x59')],{'as':_0x39a6('0xf4'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0xe9')][_0x39a6('0xed')](db[_0x39a6('0xf5')],{'as':_0x39a6('0xf6'),'foreignKey':_0x39a6('0xec')});db['User'][_0x39a6('0xed')](db['SmsInteraction'],{'as':_0x39a6('0xf7'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0xe9')][_0x39a6('0xed')](db['FaxInteraction'],{'as':_0x39a6('0xf8'),'foreignKey':_0x39a6('0xec')});db['User'][_0x39a6('0xed')](db[_0x39a6('0x3c')],{'as':_0x39a6('0xf9'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x68')],{'as':'Groups','through':_0x39a6('0xfb')});db[_0x39a6('0xe9')]['belongsToMany'](db[_0x39a6('0x6d')],{'as':_0x39a6('0xfc'),'through':_0x39a6('0xfd')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0xe6')],{'as':'Lists','through':_0x39a6('0xfe')});db[_0x39a6('0xe9')]['belongsToMany'](db[_0x39a6('0xda')],{'through':'user_has_teams'});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x3c')],{'as':_0x39a6('0xf9'),'through':_0x39a6('0xff')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db['ChatInteraction'],{'as':_0x39a6('0xf6'),'through':'user_has_chat_interactions'});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x48')],{'as':_0x39a6('0xf8'),'through':_0x39a6('0x100')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x101')],{'as':_0x39a6('0xf7'),'through':_0x39a6('0x102')});db['User']['belongsToMany'](db['OpenchannelInteraction'],{'as':_0x39a6('0xf4'),'through':_0x39a6('0x103')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db['VoiceQueue'],{'as':_0x39a6('0x104'),'through':'UserVoiceQueue','required':![]});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x39')],{'as':_0x39a6('0x105'),'through':_0x39a6('0x2d'),'required':![]});db['User'][_0x39a6('0xfa')](db[_0x39a6('0x66')],{'as':_0x39a6('0x106'),'through':_0x39a6('0x107'),'required':![],'hooks':!![]});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x4c')],{'as':_0x39a6('0x108'),'through':'UserFaxQueue','required':![]});db[_0x39a6('0xe9')]['belongsToMany'](db['SmsQueue'],{'as':_0x39a6('0x109'),'through':_0x39a6('0x10a'),'required':![]});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x5b')],{'as':_0x39a6('0x10b'),'through':_0x39a6('0x32'),'required':![]});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0xe6')],{'through':_0x39a6('0xfe')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0xe7')],{'as':_0x39a6('0x10c'),'through':'user_has_voice_prefixes','required':![]});db[_0x39a6('0xe9')]['belongsToMany'](db[_0x39a6('0x5d')],{'as':_0x39a6('0x10d'),'through':_0x39a6('0x10e')});db[_0x39a6('0xe9')]['belongsToMany'](db[_0x39a6('0x44')],{'as':_0x39a6('0x10f'),'through':'user_has_fax_accounts'});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x37')],{'as':_0x39a6('0x110'),'through':_0x39a6('0x111')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db['OpenchannelAccount'],{'as':_0x39a6('0x112'),'through':_0x39a6('0x113')});db[_0x39a6('0xe9')][_0x39a6('0xfa')](db[_0x39a6('0x4e')],{'as':_0x39a6('0x114'),'through':_0x39a6('0x115')});db[_0x39a6('0xe9')]['belongsToMany'](db['SquareProject'],{'as':_0x39a6('0x116'),'through':'user_has_square_projects'});db[_0x39a6('0x117')][_0x39a6('0xed')](db[_0x39a6('0x15')],{'as':'SpiedAgents','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x118')});db[_0x39a6('0x13')][_0x39a6('0xed')](db['VoiceExtension'],{'onDelete':_0x39a6('0xf1')});db['VoiceExtension']['hasMany'](db[_0x39a6('0x15')],{'as':_0x39a6('0x119'),'onDelete':'cascade'});db['VoiceMusicOnHold'][_0x39a6('0xfa')](db['Sound'],{'as':_0x39a6('0x11a'),'through':_0x39a6('0x11b')});db['VoiceQueue']['hasMany'](db[_0x39a6('0xee')],{'as':'Members','foreignKey':'VoiceQueueId'});db[_0x39a6('0x11c')][_0x39a6('0xed')](db[_0x39a6('0x6f')],{'as':_0x39a6('0x11d'),'foreignKey':_0x39a6('0x11e')});db[_0x39a6('0x11c')]['hasMany'](db[_0x39a6('0x72')],{'as':_0x39a6('0xf2'),'foreignKey':_0x39a6('0x11e')});db[_0x39a6('0x11c')][_0x39a6('0xed')](db[_0x39a6('0x73')],{'as':_0x39a6('0x11f'),'foreignKey':_0x39a6('0x11e')});db[_0x39a6('0x11c')][_0x39a6('0xed')](db[_0x39a6('0x75')],{'as':_0x39a6('0x75'),'foreignKey':_0x39a6('0x11e')});db[_0x39a6('0x11c')][_0x39a6('0xed')](db[_0x39a6('0x70')],{'as':_0x39a6('0x120'),'foreignKey':_0x39a6('0x11e')});db['VoiceQueue']['hasMany'](db['JscriptySessionReport'],{'as':_0x39a6('0x121'),'foreignKey':_0x39a6('0x11e')});db[_0x39a6('0x11c')]['belongsTo'](db[_0x39a6('0x122')],{'as':_0x39a6('0x122'),'foreignKey':'TrunkId'});db['VoiceQueue'][_0x39a6('0x123')](db['Trunk'],{'as':'TrunkBackup','foreignKey':_0x39a6('0x124')});db[_0x39a6('0x11c')]['belongsTo'](db['Interval'],{'as':_0x39a6('0x125'),'foreignKey':_0x39a6('0x126')});db[_0x39a6('0x11c')][_0x39a6('0xfa')](db['CmList'],{'as':_0x39a6('0x127'),'through':_0x39a6('0x128')});db[_0x39a6('0x11c')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':'Agents','through':_0x39a6('0x2a')});db[_0x39a6('0x11c')][_0x39a6('0xfa')](db[_0x39a6('0xda')],{'as':_0x39a6('0x129'),'through':_0x39a6('0x12a')});db[_0x39a6('0x11c')][_0x39a6('0xfa')](db['CmList'],{'as':'BlackLists','through':_0x39a6('0x12b')});db[_0x39a6('0x1a')][_0x39a6('0x123')](db['User'],{'as':'User','foreignKey':_0x39a6('0xec')});db[_0x39a6('0xeb')][_0x39a6('0xed')](db[_0x39a6('0x1c')],{'as':_0x39a6('0x12c'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x12d'),'sourceKey':'mailbox'});db[_0x39a6('0x1c')][_0x39a6('0x123')](db[_0x39a6('0xeb')],{'foreignKey':_0x39a6('0x12d'),'targetKey':_0x39a6('0x12e')});db[_0x39a6('0x1e')]['hasMany'](db[_0x39a6('0x23')],{'as':_0x39a6('0x12f'),'foreignKey':_0x39a6('0x130'),'constraints':![]});db[_0x39a6('0x1e')]['hasMany'](db[_0x39a6('0x22')],{'as':_0x39a6('0x131'),'foreignKey':_0x39a6('0x130'),'constraints':![]});db['VoiceCallReport'][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'as':_0x39a6('0xe9'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0x1e')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x34')][_0x39a6('0x123')](db[_0x39a6('0x37')],{'as':'MailAccount','foreignKey':_0x39a6('0x134')});db[_0x39a6('0x36')]['belongsTo'](db[_0x39a6('0x37')],{'as':_0x39a6('0x37'),'foreignKey':_0x39a6('0x134')});db[_0x39a6('0x37')][_0x39a6('0xea')](db['MailServerIn'],{'as':'Imap','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x37')]['hasOne'](db[_0x39a6('0x36')],{'as':_0x39a6('0x135'),'onDelete':_0x39a6('0xf1')});db[_0x39a6('0x37')][_0x39a6('0xed')](db[_0x39a6('0x7e')],{'as':_0x39a6('0x136'),'foreignKey':'MailAccountId'});db[_0x39a6('0x37')]['hasMany'](db[_0x39a6('0x7d')],{'as':'Answers','foreignKey':_0x39a6('0x134')});db[_0x39a6('0x37')][_0x39a6('0xed')](db[_0x39a6('0x3d')],{'as':'Messages','foreignKey':_0x39a6('0x134')});db[_0x39a6('0x37')][_0x39a6('0xed')](db[_0x39a6('0x3c')],{'as':_0x39a6('0x137')});db['MailAccount'][_0x39a6('0xed')](db['MailApplication'],{'as':_0x39a6('0x119')});db[_0x39a6('0x37')]['belongsTo'](db[_0x39a6('0xe6')],{'as':'List','foreignKey':'ListId'});db[_0x39a6('0x37')][_0x39a6('0x123')](db[_0x39a6('0x8c')],{'as':'Template','foreignKey':'TemplateId'});db[_0x39a6('0x37')][_0x39a6('0xfa')](db['User'],{'as':'Agents','through':'user_has_mail_accounts'});db[_0x39a6('0x39')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x2d')});db[_0x39a6('0x39')][_0x39a6('0xfa')](db[_0x39a6('0xda')],{'through':_0x39a6('0x139'),'as':_0x39a6('0x129')});db[_0x39a6('0x3c')][_0x39a6('0xed')](db['MailMessage'],{'as':'Messages','onDelete':_0x39a6('0xf1'),'foreignKey':'MailInteractionId'});db[_0x39a6('0x3c')][_0x39a6('0x123')](db[_0x39a6('0x37')],{'as':'Account','foreignKey':_0x39a6('0x134')});db[_0x39a6('0x3c')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':'ContactId'});db['MailInteraction']['belongsTo'](db[_0x39a6('0xe9')],{'as':_0x39a6('0x13a'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0x3c')][_0x39a6('0xfa')](db['Tag'],{'through':_0x39a6('0x13b'),'as':_0x39a6('0x13c')});db[_0x39a6('0x3c')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':_0x39a6('0x13b'),'as':_0x39a6('0x13d')});db[_0x39a6('0x3c')][_0x39a6('0xfa')](db['User'],{'as':_0x39a6('0x13e'),'through':_0x39a6('0xff'),'foreignKey':_0x39a6('0x13f')});db[_0x39a6('0x3d')][_0x39a6('0xed')](db[_0x39a6('0x140')],{'as':'Attachments','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x3d')]['belongsTo'](db[_0x39a6('0xe9')],{'as':_0x39a6('0xe9')});db['MailMessage']['belongsTo'](db[_0x39a6('0x6d')],{'onDelete':'cascade','as':'Contact'});db[_0x39a6('0x3d')][_0x39a6('0x123')](db['MailInteraction'],{'as':'Interaction','foreignKey':_0x39a6('0x13f')});db['MailMessage'][_0x39a6('0x123')](db[_0x39a6('0x37')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x134')});db[_0x39a6('0x3e')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0x142')});db['MailApplication']['belongsTo'](db[_0x39a6('0x39')],{'onDelete':'restrict'});db['MailApplication'][_0x39a6('0x123')](db['MailAccount'],{'onDelete':_0x39a6('0x142')});db[_0x39a6('0x3e')][_0x39a6('0x123')](db[_0x39a6('0x125')],{'onDelete':'restrict','foreignKey':'IntervalId'});db[_0x39a6('0x3e')]['belongsTo'](db[_0x39a6('0x8b')],{'onDelete':_0x39a6('0x142'),'foreignKey':'TagId'});db[_0x39a6('0x40')]['belongsTo'](db[_0x39a6('0x37')],{});db['MailQueueReport'][_0x39a6('0x123')](db['CmList'],{'as':'List','foreignKey':_0x39a6('0x143')});db[_0x39a6('0x40')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db['MailQueueReport'][_0x39a6('0x123')](db[_0x39a6('0x3c')],{});db['MailQueueReport'][_0x39a6('0x123')](db[_0x39a6('0x3d')],{});db[_0x39a6('0x40')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{});db[_0x39a6('0x40')]['belongsTo'](db['MailQueue'],{});db[_0x39a6('0x144')]['hasMany'](db[_0x39a6('0x145')],{'as':'Items','onDelete':_0x39a6('0xf1')});db['FaxAccount'][_0x39a6('0xed')](db['Disposition'],{'as':_0x39a6('0x136'),'foreignKey':_0x39a6('0x146')});db['FaxAccount'][_0x39a6('0xed')](db[_0x39a6('0x7d')],{'as':'Answers','foreignKey':_0x39a6('0x146')});db['FaxAccount']['hasMany'](db['FaxInteraction'],{'as':_0x39a6('0x137')});db[_0x39a6('0x44')][_0x39a6('0xed')](db[_0x39a6('0x46')],{'as':_0x39a6('0x119')});db[_0x39a6('0x44')][_0x39a6('0xed')](db[_0x39a6('0x15')],{'as':'Exntensions','onDelete':'cascade'});db[_0x39a6('0x44')]['hasMany'](db[_0x39a6('0x4a')],{'as':_0x39a6('0x12c')});db['FaxAccount'][_0x39a6('0x123')](db[_0x39a6('0x122')],{'as':_0x39a6('0x122')});db[_0x39a6('0x44')][_0x39a6('0x123')](db[_0x39a6('0xe6')],{'as':_0x39a6('0x147'),'foreignKey':_0x39a6('0x143')});db['FaxAccount'][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':'user_has_fax_accounts'});db[_0x39a6('0x46')]['belongsTo'](db[_0x39a6('0xe9')],{'onDelete':'restrict'});db['FaxApplication']['belongsTo'](db['FaxQueue'],{'onDelete':_0x39a6('0x142')});db[_0x39a6('0x46')][_0x39a6('0x123')](db[_0x39a6('0x44')],{'onDelete':_0x39a6('0x142')});db['FaxApplication']['belongsTo'](db[_0x39a6('0x8b')],{'onDelete':_0x39a6('0x142'),'foreignKey':'TagId'});db[_0x39a6('0x48')][_0x39a6('0xed')](db['FaxMessage'],{'as':'Messages','onDelete':_0x39a6('0xf1'),'foreignKey':'FaxInteractionId'});db['FaxInteraction'][_0x39a6('0x123')](db['FaxAccount'],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x146')});db[_0x39a6('0x48')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':'Contact','foreignKey':_0x39a6('0x133')});db['FaxInteraction'][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x13a'),'foreignKey':_0x39a6('0xec')});db['FaxInteraction'][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':_0x39a6('0x148'),'as':_0x39a6('0x13c')});db[_0x39a6('0x48')][_0x39a6('0xfa')](db['Tag'],{'through':_0x39a6('0x148'),'as':'ThroughTags'});db[_0x39a6('0x48')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':'Users','through':_0x39a6('0x100'),'foreignKey':'FaxInteractionId'});db[_0x39a6('0x4a')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0xf1'),'as':_0x39a6('0xe9')});db[_0x39a6('0x4a')][_0x39a6('0x123')](db[_0x39a6('0x48')],{'as':_0x39a6('0x149'),'foreignKey':_0x39a6('0x14a')});db['FaxMessage']['belongsTo'](db[_0x39a6('0x6d')],{'onDelete':_0x39a6('0xf1'),'as':'Contact'});db[_0x39a6('0x4a')][_0x39a6('0x123')](db[_0x39a6('0x140')],{'as':_0x39a6('0x140'),'foreignKey':_0x39a6('0x14b')});db[_0x39a6('0x4a')][_0x39a6('0x123')](db['FaxAccount'],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x146')});db[_0x39a6('0x4c')]['belongsToMany'](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x2f')});db[_0x39a6('0x4c')][_0x39a6('0xfa')](db[_0x39a6('0xda')],{'through':_0x39a6('0x14c'),'as':_0x39a6('0x129')});db[_0x39a6('0x4d')]['belongsTo'](db[_0x39a6('0x44')],{});db['FaxQueueReport']['belongsTo'](db[_0x39a6('0xe6')],{'as':_0x39a6('0x147'),'foreignKey':_0x39a6('0x143')});db['FaxQueueReport'][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':'ContactId'});db[_0x39a6('0x4d')][_0x39a6('0x123')](db[_0x39a6('0x48')],{});db['FaxQueueReport'][_0x39a6('0x123')](db[_0x39a6('0x4a')],{});db[_0x39a6('0x4d')]['belongsTo'](db[_0x39a6('0xe9')],{});db[_0x39a6('0x4d')][_0x39a6('0x123')](db[_0x39a6('0x4c')],{});db['SmsAccount'][_0x39a6('0xed')](db[_0x39a6('0x7e')],{'as':_0x39a6('0x136'),'foreignKey':'SmsAccountId'});db['SmsAccount'][_0x39a6('0xed')](db['CannedAnswer'],{'as':_0x39a6('0x14d'),'foreignKey':_0x39a6('0x14e')});db[_0x39a6('0x4e')][_0x39a6('0xed')](db[_0x39a6('0x14f')],{'as':_0x39a6('0x12c'),'foreignKey':_0x39a6('0x14e')});db[_0x39a6('0x4e')][_0x39a6('0xed')](db[_0x39a6('0x101')],{'as':_0x39a6('0x137')});db[_0x39a6('0x4e')][_0x39a6('0xed')](db['SmsApplication'],{'as':_0x39a6('0x119')});db[_0x39a6('0x4e')]['belongsTo'](db[_0x39a6('0xe6')],{'as':'List','foreignKey':'ListId'});db['SmsAccount'][_0x39a6('0xfa')](db['User'],{'as':_0x39a6('0x138'),'through':_0x39a6('0x115')});db[_0x39a6('0x50')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0x142')});db[_0x39a6('0x50')][_0x39a6('0x123')](db['SmsQueue'],{'onDelete':_0x39a6('0x142')});db[_0x39a6('0x50')][_0x39a6('0x123')](db['SmsAccount'],{'onDelete':_0x39a6('0x142')});db['SmsApplication'][_0x39a6('0x123')](db['Interval'],{'onDelete':'restrict','foreignKey':_0x39a6('0x126')});db['SmsApplication'][_0x39a6('0x123')](db[_0x39a6('0x8b')],{'onDelete':_0x39a6('0x142'),'foreignKey':_0x39a6('0x150')});db['SmsInteraction'][_0x39a6('0xed')](db[_0x39a6('0x14f')],{'as':_0x39a6('0x12c'),'onDelete':_0x39a6('0xf1'),'foreignKey':'SmsInteractionId'});db[_0x39a6('0x101')]['belongsTo'](db[_0x39a6('0x4e')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x14e')});db[_0x39a6('0x101')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':'ContactId'});db['SmsInteraction'][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'as':'Owner','foreignKey':_0x39a6('0xec')});db[_0x39a6('0x101')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':'sms_interaction_has_tags','as':'Tags'});db[_0x39a6('0x101')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':'sms_interaction_has_tags','as':_0x39a6('0x13d')});db['SmsInteraction'][_0x39a6('0xfa')](db['User'],{'as':_0x39a6('0x13e'),'through':_0x39a6('0x102'),'foreignKey':'SmsInteractionId'});db[_0x39a6('0x14f')][_0x39a6('0x123')](db['User'],{'as':'User'});db[_0x39a6('0x14f')]['belongsTo'](db[_0x39a6('0x6d')],{'onDelete':_0x39a6('0xf1'),'as':_0x39a6('0x132')});db[_0x39a6('0x14f')]['belongsTo'](db['SmsInteraction'],{'onDelete':'cascade','as':_0x39a6('0x149'),'foreignKey':_0x39a6('0x151')});db[_0x39a6('0x14f')][_0x39a6('0x123')](db[_0x39a6('0x4e')],{'as':_0x39a6('0x141'),'foreignKey':'SmsAccountId'});db[_0x39a6('0x54')]['belongsToMany'](db['User'],{'as':'Agents','through':'UserSmsQueue','foreignKey':_0x39a6('0x152')});db[_0x39a6('0x54')][_0x39a6('0xfa')](db['Team'],{'through':_0x39a6('0x153'),'as':'Teams'});db[_0x39a6('0x56')]['hasMany'](db[_0x39a6('0x7e')],{'as':_0x39a6('0x136'),'foreignKey':_0x39a6('0x154')});db[_0x39a6('0x56')][_0x39a6('0xed')](db['CannedAnswer'],{'as':_0x39a6('0x14d'),'foreignKey':_0x39a6('0x154')});db['OpenchannelAccount'][_0x39a6('0xed')](db[_0x39a6('0x59')],{'as':'Interactions','foreignKey':_0x39a6('0x154')});db[_0x39a6('0x56')]['hasMany'](db['OpenchannelMessage'],{'as':_0x39a6('0x12c'),'foreignKey':_0x39a6('0x154')});db[_0x39a6('0x56')][_0x39a6('0xed')](db[_0x39a6('0x57')],{'as':_0x39a6('0x119'),'foreignKey':'OpenchannelAccountId'});db['OpenchannelAccount'][_0x39a6('0x123')](db['CmList'],{'as':'List','foreignKey':_0x39a6('0x143')});db[_0x39a6('0x56')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x113')});db[_0x39a6('0x57')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0x142')});db[_0x39a6('0x57')][_0x39a6('0x123')](db[_0x39a6('0x5b')],{'onDelete':_0x39a6('0x142'),'foreignKey':'OpenchannelQueueId'});db[_0x39a6('0x57')][_0x39a6('0x123')](db['OpenchannelAccount'],{'onDelete':_0x39a6('0x142'),'foreignKey':_0x39a6('0x154')});db[_0x39a6('0x57')][_0x39a6('0x123')](db[_0x39a6('0x125')],{'onDelete':_0x39a6('0x142'),'foreignKey':'IntervalId'});db[_0x39a6('0x57')][_0x39a6('0x123')](db[_0x39a6('0x8b')],{'onDelete':_0x39a6('0x142'),'foreignKey':_0x39a6('0x150')});db[_0x39a6('0x59')]['hasMany'](db[_0x39a6('0x155')],{'as':_0x39a6('0x12c'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x156')});db[_0x39a6('0x59')][_0x39a6('0x123')](db[_0x39a6('0x56')],{'as':'Account','foreignKey':'OpenchannelAccountId'});db[_0x39a6('0x59')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':'ContactId'});db[_0x39a6('0x59')]['belongsTo'](db[_0x39a6('0xe9')],{'as':_0x39a6('0x13a'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0x59')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':_0x39a6('0x157'),'as':_0x39a6('0x13c')});db[_0x39a6('0x59')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':_0x39a6('0x157'),'as':'ThroughTags'});db[_0x39a6('0x59')][_0x39a6('0xfa')](db['User'],{'as':_0x39a6('0x13e'),'through':_0x39a6('0x103'),'foreignKey':_0x39a6('0x156')});db[_0x39a6('0x155')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0xf1'),'as':_0x39a6('0xe9')});db['OpenchannelMessage']['belongsTo'](db[_0x39a6('0x6d')],{'onDelete':_0x39a6('0xf1'),'as':'Contact'});db['OpenchannelMessage']['belongsTo'](db[_0x39a6('0x59')],{'onDelete':'cascade','as':'Interaction','foreignKey':_0x39a6('0x156')});db[_0x39a6('0x155')][_0x39a6('0x123')](db[_0x39a6('0x140')],{'as':_0x39a6('0x140'),'foreignKey':_0x39a6('0x14b')});db[_0x39a6('0x155')]['belongsTo'](db[_0x39a6('0x56')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x154')});db['OpenchannelQueue']['belongsToMany'](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x32'),'foreignKey':_0x39a6('0x158')});db[_0x39a6('0x5b')][_0x39a6('0xfa')](db['Team'],{'through':_0x39a6('0x159'),'as':_0x39a6('0x129')});db[_0x39a6('0x5d')][_0x39a6('0xed')](db['Disposition'],{'as':_0x39a6('0x136'),'foreignKey':_0x39a6('0x15a')});db[_0x39a6('0x5d')][_0x39a6('0xed')](db[_0x39a6('0x7d')],{'as':'Answers','foreignKey':_0x39a6('0x15a')});db[_0x39a6('0x5d')][_0x39a6('0xed')](db[_0x39a6('0x15b')],{'as':'ProactiveActions'});db[_0x39a6('0x5d')]['hasMany'](db[_0x39a6('0xf5')],{'as':_0x39a6('0x137')});db[_0x39a6('0x5d')][_0x39a6('0xed')](db[_0x39a6('0x61')],{'as':_0x39a6('0x119')});db[_0x39a6('0x5d')][_0x39a6('0xed')](db[_0x39a6('0x63')],{'as':_0x39a6('0x12c')});db[_0x39a6('0x5d')]['belongsTo'](db['CmList'],{'as':'List','foreignKey':_0x39a6('0x143')});db[_0x39a6('0x5d')]['belongsTo'](db[_0x39a6('0x125')],{'as':_0x39a6('0x125'),'foreignKey':_0x39a6('0x126')});db['ChatWebsite']['belongsToMany'](db['User'],{'as':_0x39a6('0x138'),'through':_0x39a6('0x10e')});db['OpenchannelQueueReport'][_0x39a6('0x123')](db['OpenchannelAccount'],{});db[_0x39a6('0x5f')][_0x39a6('0x123')](db[_0x39a6('0xe6')],{'as':_0x39a6('0x147'),'foreignKey':_0x39a6('0x143')});db['OpenchannelQueueReport'][_0x39a6('0x123')](db['CmContact'],{'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x5f')][_0x39a6('0x123')](db[_0x39a6('0x59')],{});db[_0x39a6('0x5f')][_0x39a6('0x123')](db[_0x39a6('0x155')],{});db[_0x39a6('0x5f')][_0x39a6('0x123')](db['User'],{});db[_0x39a6('0x5f')]['belongsTo'](db[_0x39a6('0x5b')],{});db['ChatApplication']['belongsTo'](db[_0x39a6('0xe9')],{'as':_0x39a6('0x15c'),'foreignKey':_0x39a6('0xec'),'onDelete':_0x39a6('0x142')});db['ChatApplication'][_0x39a6('0x123')](db[_0x39a6('0x66')],{'as':_0x39a6('0x15d'),'foreignKey':_0x39a6('0x15e'),'onDelete':'restrict'});db['ChatApplication']['belongsTo'](db['ChatWebsite'],{'as':'Website','foreignKey':_0x39a6('0x15a'),'onDelete':'restrict'});db['ChatApplication'][_0x39a6('0x123')](db[_0x39a6('0x8b')],{'onDelete':_0x39a6('0x142'),'foreignKey':_0x39a6('0x150')});db['ChatInteraction'][_0x39a6('0xed')](db[_0x39a6('0x63')],{'as':'Messages','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x15f')});db[_0x39a6('0xf5')][_0x39a6('0x123')](db[_0x39a6('0x5d')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x15a')});db['ChatInteraction'][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0xf5')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x13a'),'foreignKey':_0x39a6('0xec')});db[_0x39a6('0xf5')][_0x39a6('0xfa')](db['Tag'],{'through':_0x39a6('0x160'),'as':'Tags'});db[_0x39a6('0xf5')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':'chat_interaction_has_tags','as':'ThroughTags'});db[_0x39a6('0xf5')][_0x39a6('0xfa')](db['User'],{'as':_0x39a6('0x13e'),'through':'user_has_chat_interactions','foreignKey':_0x39a6('0x15f')});db[_0x39a6('0x63')]['belongsTo'](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0xf1'),'as':_0x39a6('0xe9')});db['ChatMessage'][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'onDelete':_0x39a6('0xf1'),'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x63')][_0x39a6('0x123')](db[_0x39a6('0xf5')],{'onDelete':_0x39a6('0xf1'),'as':_0x39a6('0x149'),'foreignKey':_0x39a6('0x15f')});db[_0x39a6('0x63')][_0x39a6('0x123')](db[_0x39a6('0x140')],{'as':_0x39a6('0x140'),'foreignKey':_0x39a6('0x14b')});db['ChatMessage'][_0x39a6('0x123')](db[_0x39a6('0x5d')],{'as':'Account','foreignKey':_0x39a6('0x15a')});db[_0x39a6('0x65')][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'onDelete':'cascade','as':_0x39a6('0x132'),'foreignKey':'ContactId'});db['ChatOfflineMessage'][_0x39a6('0x123')](db['ChatWebsite'],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x15a')});db[_0x39a6('0x66')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x107'),'hooks':!![]});db[_0x39a6('0x66')]['belongsToMany'](db[_0x39a6('0xda')],{'through':_0x39a6('0x161'),'as':_0x39a6('0x129')});db[_0x39a6('0x68')][_0x39a6('0xed')](db[_0x39a6('0xc6')],{'as':_0x39a6('0x12c'),'foreignKey':_0x39a6('0x162'),'onDelete':_0x39a6('0xf1')});db[_0x39a6('0x68')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x163'),'through':_0x39a6('0xfb')});db[_0x39a6('0x15b')][_0x39a6('0x123')](db[_0x39a6('0x5d')],{'as':_0x39a6('0x164'),'foreignKey':_0x39a6('0x15a')});db['CmCompany'][_0x39a6('0xed')](db['CmContact'],{'as':'Contacts','foreignKey':_0x39a6('0x165')});db[_0x39a6('0x6d')][_0x39a6('0xed')](db[_0x39a6('0x6f')],{'as':'Hoppers','foreignKey':_0x39a6('0x133')});db[_0x39a6('0x6d')][_0x39a6('0xed')](db[_0x39a6('0x72')],{'as':_0x39a6('0xf2'),'foreignKey':'ContactId'});db[_0x39a6('0x6d')][_0x39a6('0xed')](db[_0x39a6('0x73')],{'as':_0x39a6('0x11f'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x6d')][_0x39a6('0xed')](db[_0x39a6('0x75')],{'as':_0x39a6('0x75'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x6d')][_0x39a6('0xed')](db[_0x39a6('0xcc')],{'as':_0x39a6('0x121'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x6d')][_0x39a6('0xed')](db['OpenchannelInteraction'],{'as':_0x39a6('0xf4'),'foreignKey':_0x39a6('0x133'),'onDelete':_0x39a6('0x142')});db[_0x39a6('0x6d')][_0x39a6('0xed')](db['ChatInteraction'],{'as':_0x39a6('0xf6'),'foreignKey':_0x39a6('0x133'),'onDelete':'restrict'});db[_0x39a6('0x6d')][_0x39a6('0xed')](db['SmsInteraction'],{'as':_0x39a6('0xf7'),'foreignKey':'ContactId','onDelete':_0x39a6('0x142')});db['CmContact'][_0x39a6('0xed')](db[_0x39a6('0x48')],{'as':_0x39a6('0xf8'),'foreignKey':_0x39a6('0x133'),'onDelete':'restrict'});db[_0x39a6('0x6d')][_0x39a6('0xed')](db[_0x39a6('0x3c')],{'as':_0x39a6('0xf9'),'foreignKey':_0x39a6('0x133'),'onDelete':_0x39a6('0x142')});db[_0x39a6('0x6d')][_0x39a6('0x123')](db['CmCompany'],{'as':'Company','foreignKey':_0x39a6('0x165')});db['CmContact'][_0x39a6('0x123')](db[_0x39a6('0xe6')],{'as':_0x39a6('0x147'),'foreignKey':_0x39a6('0x143'),'onDelete':'cascade'});db[_0x39a6('0x6d')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x13e'),'through':_0x39a6('0xfd')});db[_0x39a6('0x6d')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'as':_0x39a6('0x13c'),'through':'cm_contact_has_tags'});db[_0x39a6('0x6d')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':_0x39a6('0x166'),'as':_0x39a6('0x13d')});db[_0x39a6('0x6f')][_0x39a6('0x123')](db['CmContact'],{'as':_0x39a6('0x132'),'foreignKey':'ContactId','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x6f')][_0x39a6('0x123')](db[_0x39a6('0xe6')],{'as':_0x39a6('0x147'),'foreignKey':'ListId','onDelete':_0x39a6('0xf1')});db['CmHopper'][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x15c'),'foreignKey':_0x39a6('0xec')});db['CmHopper'][_0x39a6('0x123')](db[_0x39a6('0x11c')],{'as':'Queue','foreignKey':'VoiceQueueId','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x6f')]['belongsTo'](db[_0x39a6('0xdc')],{'as':'Campaign','foreignKey':'CampaignId','onDelete':'cascade'});db[_0x39a6('0x6f')]['belongsTo'](db['User'],{'as':_0x39a6('0x13a'),'foreignKey':'OwnerId'});db['CmHopperBlack'][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':'Contact','foreignKey':_0x39a6('0x133'),'onDelete':_0x39a6('0xf1')});db[_0x39a6('0x70')][_0x39a6('0x123')](db[_0x39a6('0xe6')],{'as':_0x39a6('0x147'),'foreignKey':'ListId','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x70')][_0x39a6('0x123')](db[_0x39a6('0x11c')],{'as':'Queue','foreignKey':'VoiceQueueId','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x70')][_0x39a6('0x123')](db[_0x39a6('0xdc')],{'as':_0x39a6('0xdc'),'foreignKey':'CampaignId','onDelete':_0x39a6('0xf1')});db[_0x39a6('0x7b')][_0x39a6('0xed')](db[_0x39a6('0x80')],{'as':{'plural':_0x39a6('0x167'),'singular':'OneAll'},'foreignKey':_0x39a6('0x168'),'onDelete':_0x39a6('0xf1'),'hooks':!![]});db['Automation'][_0x39a6('0xed')](db[_0x39a6('0x80')],{'as':{'plural':_0x39a6('0x169'),'singular':_0x39a6('0x16a')},'foreignKey':_0x39a6('0x16b'),'onDelete':_0x39a6('0xf1'),'hooks':!![]});db[_0x39a6('0x7b')][_0x39a6('0xed')](db[_0x39a6('0x79')],{'as':_0x39a6('0x16c'),'foreignKey':_0x39a6('0x16d'),'onDelete':'cascade','hooks':!![]});db['Interval'][_0x39a6('0xed')](db[_0x39a6('0x125')],{'as':'Intervals','foreignKey':'IntervalId','onDelete':_0x39a6('0xf1'),'hooks':!![],'required':![]});db[_0x39a6('0x125')][_0x39a6('0xed')](db[_0x39a6('0x15')],{'as':'Extensions','foreignKey':_0x39a6('0x126'),'onDelete':_0x39a6('0x142')});db[_0x39a6('0x125')][_0x39a6('0xed')](db['MailApplication'],{'as':_0x39a6('0x16e'),'foreignKey':'IntervalId'});db[_0x39a6('0x125')][_0x39a6('0xed')](db[_0x39a6('0x61')],{'as':_0x39a6('0x16f'),'foreignKey':_0x39a6('0x126')});db['Interval'][_0x39a6('0xed')](db['FaxApplication'],{'as':'FaxApplications','foreignKey':_0x39a6('0x126')});db[_0x39a6('0x125')][_0x39a6('0xed')](db[_0x39a6('0x50')],{'as':_0x39a6('0x170'),'foreignKey':'IntervalId'});db[_0x39a6('0x88')][_0x39a6('0x123')](db[_0x39a6('0x37')],{});db['Schedule'][_0x39a6('0x123')](db[_0x39a6('0x97')],{'foreignKey':_0x39a6('0x171')});db['Schedule'][_0x39a6('0x123')](db[_0x39a6('0x95')],{'foreignKey':'CustomReportId'});db[_0x39a6('0x8a')][_0x39a6('0xfa')](db[_0x39a6('0x17')],{'as':_0x39a6('0x172'),'through':_0x39a6('0x11b'),'onDelete':_0x39a6('0x142')});db[_0x39a6('0x8b')][_0x39a6('0xfa')](db[_0x39a6('0x6d')],{'through':'cm_contact_has_tags'});db[_0x39a6('0x8b')]['belongsToMany'](db[_0x39a6('0xf5')],{'through':'chat_interaction_has_tags'});db['Tag'][_0x39a6('0xfa')](db['MailInteraction'],{'through':_0x39a6('0x13b')});db[_0x39a6('0x8b')]['belongsToMany'](db[_0x39a6('0x101')],{'through':_0x39a6('0x173')});db[_0x39a6('0x8b')][_0x39a6('0xfa')](db[_0x39a6('0x48')],{'through':_0x39a6('0x148')});db[_0x39a6('0x8b')][_0x39a6('0xfa')](db[_0x39a6('0x59')],{'through':'openchannel_interaction_has_tags'});db[_0x39a6('0x8e')]['hasMany'](db[_0x39a6('0x80')],{'as':{'plural':'AllConditions','singular':_0x39a6('0x174')},'foreignKey':_0x39a6('0x175'),'onDelete':_0x39a6('0xf1'),'hooks':!![]});db[_0x39a6('0x8e')][_0x39a6('0xed')](db[_0x39a6('0x80')],{'as':{'plural':_0x39a6('0x176'),'singular':_0x39a6('0x177')},'foreignKey':_0x39a6('0x178'),'onDelete':'cascade','hooks':!![]});db[_0x39a6('0x8e')]['hasMany'](db['Action'],{'as':_0x39a6('0x16c'),'foreignKey':'TriggerId','onDelete':'cascade','hooks':!![]});db[_0x39a6('0x95')][_0x39a6('0xed')](db[_0x39a6('0x9d')],{'as':_0x39a6('0x179'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17a'),'hooks':!![]});db[_0x39a6('0x97')]['hasMany'](db[_0x39a6('0x9d')],{'as':_0x39a6('0x179'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x171')});db[_0x39a6('0x9b')][_0x39a6('0xed')](db[_0x39a6('0x9d')],{'as':_0x39a6('0x179'),'onDelete':_0x39a6('0xf1'),'foreignKey':'MetricId'});db['AnalyticFieldReport'][_0x39a6('0x123')](db[_0x39a6('0x9b')],{'foreignKey':'MetricId'});db['SalesforceAccount']['hasMany'](db[_0x39a6('0xa2')],{'as':_0x39a6('0x17b'),'onDelete':'cascade','foreignKey':'AccountId'});db[_0x39a6('0xa2')][_0x39a6('0xed')](db[_0x39a6('0xa4')],{'as':_0x39a6('0x17c'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17d')});db['SalesforceConfiguration'][_0x39a6('0xed')](db['SalesforceField'],{'as':_0x39a6('0x17e'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17f')});db['SalesforceConfiguration'][_0x39a6('0xed')](db[_0x39a6('0xa4')],{'as':_0x39a6('0x179'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x180')});db['SalesforceConfiguration']['belongsTo'](db[_0x39a6('0xa0')],{'as':'Account','foreignKey':_0x39a6('0x181')});db[_0x39a6('0xa4')][_0x39a6('0xed')](db[_0x39a6('0xa4')],{'as':_0x39a6('0x182'),'foreignKey':_0x39a6('0x17d')});db[_0x39a6('0xa4')][_0x39a6('0xed')](db[_0x39a6('0xa4')],{'as':_0x39a6('0x183'),'foreignKey':'DescriptionId'});db[_0x39a6('0xa4')][_0x39a6('0xed')](db[_0x39a6('0xa4')],{'as':_0x39a6('0x184'),'foreignKey':'FieldId'});db['SalesforceField'][_0x39a6('0x123')](db[_0x39a6('0x90')],{'as':_0x39a6('0x90'),'foreignKey':'VariableId'});db[_0x39a6('0xa6')][_0x39a6('0xed')](db['SugarcrmConfiguration'],{'as':'Configurations','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xa8')][_0x39a6('0xed')](db[_0x39a6('0xaa')],{'as':_0x39a6('0x17c'),'onDelete':_0x39a6('0xf1'),'foreignKey':'SubjectId'});db[_0x39a6('0xa8')][_0x39a6('0xed')](db[_0x39a6('0xaa')],{'as':'Descriptions','onDelete':'cascade','foreignKey':_0x39a6('0x17f')});db['SugarcrmConfiguration'][_0x39a6('0xed')](db[_0x39a6('0xaa')],{'as':_0x39a6('0x179'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x180')});db[_0x39a6('0xa8')][_0x39a6('0x123')](db[_0x39a6('0xa6')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xaa')][_0x39a6('0xed')](db[_0x39a6('0xaa')],{'as':_0x39a6('0x182'),'foreignKey':_0x39a6('0x17d')});db['SugarcrmField'][_0x39a6('0xed')](db[_0x39a6('0xaa')],{'as':_0x39a6('0x183'),'foreignKey':_0x39a6('0x17f')});db[_0x39a6('0xaa')][_0x39a6('0xed')](db[_0x39a6('0xaa')],{'as':_0x39a6('0x184'),'foreignKey':'FieldId'});db[_0x39a6('0xaa')][_0x39a6('0x123')](db[_0x39a6('0x90')],{'as':_0x39a6('0x90'),'foreignKey':_0x39a6('0x185')});db[_0x39a6('0xac')]['hasMany'](db[_0x39a6('0xae')],{'as':_0x39a6('0x17b'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xae')][_0x39a6('0xed')](db[_0x39a6('0xb0')],{'as':_0x39a6('0x17c'),'onDelete':_0x39a6('0xf1'),'foreignKey':'SubjectId'});db[_0x39a6('0xae')][_0x39a6('0xed')](db[_0x39a6('0xb0')],{'as':_0x39a6('0x17e'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17f')});db['DeskConfiguration'][_0x39a6('0xed')](db[_0x39a6('0xb0')],{'as':'Fields','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x180')});db[_0x39a6('0xae')][_0x39a6('0x123')](db[_0x39a6('0xac')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xae')][_0x39a6('0xfa')](db[_0x39a6('0x8b')],{'through':_0x39a6('0x186')});db[_0x39a6('0xb0')]['hasMany'](db['DeskField'],{'as':_0x39a6('0x182'),'foreignKey':_0x39a6('0x17d')});db['DeskField'][_0x39a6('0xed')](db[_0x39a6('0xb0')],{'as':_0x39a6('0x183'),'foreignKey':_0x39a6('0x17f')});db[_0x39a6('0xb0')][_0x39a6('0xed')](db['DeskField'],{'as':_0x39a6('0x184'),'foreignKey':_0x39a6('0x180')});db['DeskField']['belongsTo'](db[_0x39a6('0x90')],{'as':_0x39a6('0x90'),'foreignKey':_0x39a6('0x185')});db[_0x39a6('0xb2')][_0x39a6('0xed')](db[_0x39a6('0xb4')],{'as':_0x39a6('0x17b'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xb4')][_0x39a6('0xed')](db[_0x39a6('0xb5')],{'as':_0x39a6('0x17c'),'onDelete':'cascade','foreignKey':_0x39a6('0x17d')});db[_0x39a6('0xb4')]['hasMany'](db[_0x39a6('0xb5')],{'as':_0x39a6('0x17e'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17f')});db[_0x39a6('0xb4')][_0x39a6('0xed')](db['ZohoField'],{'as':_0x39a6('0x179'),'onDelete':'cascade','foreignKey':_0x39a6('0x180')});db['ZohoConfiguration'][_0x39a6('0x123')](db[_0x39a6('0xb2')],{'as':'Account','foreignKey':_0x39a6('0x181')});db[_0x39a6('0xb5')][_0x39a6('0xed')](db[_0x39a6('0xb5')],{'as':'Subject','foreignKey':_0x39a6('0x17d')});db[_0x39a6('0xb5')][_0x39a6('0xed')](db[_0x39a6('0xb5')],{'as':'Description','foreignKey':'DescriptionId'});db['ZohoField'][_0x39a6('0xed')](db[_0x39a6('0xb5')],{'as':_0x39a6('0x184'),'foreignKey':'FieldId'});db[_0x39a6('0xb5')][_0x39a6('0x123')](db['Variable'],{'as':_0x39a6('0x90'),'foreignKey':'VariableId'});db[_0x39a6('0xb6')][_0x39a6('0xed')](db[_0x39a6('0xb8')],{'as':'Configurations','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x181')});db['ZendeskConfiguration'][_0x39a6('0xed')](db[_0x39a6('0xb9')],{'as':_0x39a6('0x17c'),'foreignKey':_0x39a6('0x17d')});db['ZendeskConfiguration'][_0x39a6('0xed')](db[_0x39a6('0xb9')],{'as':_0x39a6('0x17e'),'foreignKey':_0x39a6('0x17f')});db['ZendeskConfiguration'][_0x39a6('0xed')](db['ZendeskField'],{'as':_0x39a6('0x179'),'foreignKey':_0x39a6('0x180')});db[_0x39a6('0xb8')][_0x39a6('0x123')](db['ZendeskAccount'],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xb8')]['belongsToMany'](db[_0x39a6('0x8b')],{'through':_0x39a6('0x187')});db[_0x39a6('0xb9')][_0x39a6('0xed')](db['ZendeskField'],{'as':_0x39a6('0x182'),'foreignKey':_0x39a6('0x17d')});db['ZendeskField']['hasMany'](db[_0x39a6('0xb9')],{'as':_0x39a6('0x183'),'foreignKey':'DescriptionId'});db[_0x39a6('0xb9')][_0x39a6('0xed')](db[_0x39a6('0xb9')],{'as':_0x39a6('0x184'),'foreignKey':'FieldId'});db[_0x39a6('0xb9')]['belongsTo'](db['Variable'],{'as':_0x39a6('0x90'),'foreignKey':_0x39a6('0x185')});db[_0x39a6('0xbb')][_0x39a6('0xed')](db['FreshdeskConfiguration'],{'as':_0x39a6('0x17b'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0xbd')][_0x39a6('0xed')](db[_0x39a6('0x188')],{'as':'Subjects','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17d')});db[_0x39a6('0xbd')][_0x39a6('0xed')](db[_0x39a6('0x188')],{'as':_0x39a6('0x17e'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x17f')});db[_0x39a6('0xbd')][_0x39a6('0xed')](db[_0x39a6('0x188')],{'as':_0x39a6('0x179'),'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x180')});db[_0x39a6('0xbd')]['belongsTo'](db[_0x39a6('0xbb')],{'as':_0x39a6('0x141'),'foreignKey':_0x39a6('0x181')});db['FreshdeskConfiguration']['belongsToMany'](db[_0x39a6('0x8b')],{'through':'int_freshdesk_configuration_has_tags'});db[_0x39a6('0x188')][_0x39a6('0xed')](db[_0x39a6('0x188')],{'as':_0x39a6('0x182'),'foreignKey':'SubjectId'});db[_0x39a6('0x188')][_0x39a6('0xed')](db[_0x39a6('0x188')],{'as':_0x39a6('0x183'),'foreignKey':_0x39a6('0x17f')});db['FreshdeskField'][_0x39a6('0xed')](db[_0x39a6('0x188')],{'as':_0x39a6('0x184'),'foreignKey':_0x39a6('0x180')});db[_0x39a6('0x188')]['belongsTo'](db[_0x39a6('0x90')],{'as':_0x39a6('0x90'),'foreignKey':_0x39a6('0x185')});db[_0x39a6('0x189')][_0x39a6('0xed')](db[_0x39a6('0x18a')],{'as':'Configurations','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x181')});db[_0x39a6('0x18a')][_0x39a6('0xed')](db[_0x39a6('0xc2')],{'as':'Subjects','foreignKey':'SubjectId'});db[_0x39a6('0x18a')][_0x39a6('0xed')](db[_0x39a6('0xc2')],{'as':'Descriptions','foreignKey':_0x39a6('0x17f')});db['VtigerConfiguration'][_0x39a6('0xed')](db[_0x39a6('0xc2')],{'as':_0x39a6('0x179'),'foreignKey':_0x39a6('0x180')});db[_0x39a6('0x18a')]['belongsTo'](db[_0x39a6('0x189')],{'as':'Account','foreignKey':_0x39a6('0x181')});db[_0x39a6('0x18a')]['belongsToMany'](db[_0x39a6('0x8b')],{'through':_0x39a6('0x18b')});db[_0x39a6('0xc2')][_0x39a6('0xed')](db[_0x39a6('0xc2')],{'as':'Subject','foreignKey':_0x39a6('0x17d')});db[_0x39a6('0xc2')]['hasMany'](db[_0x39a6('0xc2')],{'as':_0x39a6('0x183'),'foreignKey':'DescriptionId'});db[_0x39a6('0xc2')][_0x39a6('0xed')](db[_0x39a6('0xc2')],{'as':_0x39a6('0x184'),'foreignKey':_0x39a6('0x180')});db['VtigerField']['belongsTo'](db[_0x39a6('0x90')],{'as':_0x39a6('0x90'),'foreignKey':_0x39a6('0x185')});db[_0x39a6('0x18c')]['belongsTo'](db[_0x39a6('0x5d')],{});db[_0x39a6('0x18c')]['belongsTo'](db['CmList'],{'as':_0x39a6('0x147'),'foreignKey':_0x39a6('0x143')});db[_0x39a6('0x18c')][_0x39a6('0x123')](db['CmContact'],{'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x18c')][_0x39a6('0x123')](db[_0x39a6('0xf5')],{});db[_0x39a6('0x18c')][_0x39a6('0x123')](db['ChatMessage'],{});db['ChatQueueReport']['belongsTo'](db[_0x39a6('0xe9')],{});db['ChatQueueReport'][_0x39a6('0x123')](db[_0x39a6('0x66')],{});db[_0x39a6('0xc6')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x18d')});db[_0x39a6('0xc6')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x18e')});db['JscriptySessionReport'][_0x39a6('0xed')](db[_0x39a6('0xca')],{'foreignKey':_0x39a6('0x18f'),'onDelete':'cascade'});db[_0x39a6('0xcc')][_0x39a6('0xed')](db[_0x39a6('0xc8')],{'foreignKey':_0x39a6('0x18f'),'onDelete':_0x39a6('0xf1')});db[_0x39a6('0x190')][_0x39a6('0x123')](db['SmsAccount'],{});db[_0x39a6('0x190')][_0x39a6('0x123')](db['CmList'],{'as':_0x39a6('0x147'),'foreignKey':_0x39a6('0x143')});db['SmsQueueReport'][_0x39a6('0x123')](db[_0x39a6('0x6d')],{'as':_0x39a6('0x132'),'foreignKey':_0x39a6('0x133')});db[_0x39a6('0x190')][_0x39a6('0x123')](db[_0x39a6('0x101')],{});db[_0x39a6('0x190')][_0x39a6('0x123')](db['SmsMessage'],{});db[_0x39a6('0x190')]['belongsTo'](db[_0x39a6('0xe9')],{});db[_0x39a6('0x190')]['belongsTo'](db[_0x39a6('0x54')],{});db[_0x39a6('0xd0')]['hasMany'](db[_0x39a6('0xcc')],{'foreignKey':_0x39a6('0x191')});db[_0x39a6('0xd0')][_0x39a6('0xed')](db[_0x39a6('0xca')],{'foreignKey':_0x39a6('0x191')});db[_0x39a6('0xd0')]['hasMany'](db['JscriptyAnswerReport'],{'foreignKey':_0x39a6('0x191')});db[_0x39a6('0x192')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':'Users','through':_0x39a6('0x193')});db[_0x39a6('0xda')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x194')});db['Team']['belongsToMany'](db['VoiceQueue'],{'through':_0x39a6('0x12a'),'as':'VoiceQueues'});db['Team'][_0x39a6('0xfa')](db[_0x39a6('0x39')],{'through':_0x39a6('0x139'),'as':_0x39a6('0x105')});db[_0x39a6('0xda')]['belongsToMany'](db[_0x39a6('0x66')],{'through':_0x39a6('0x161'),'as':_0x39a6('0x106')});db['Team']['belongsToMany'](db[_0x39a6('0x4c')],{'through':_0x39a6('0x14c'),'as':_0x39a6('0x108')});db[_0x39a6('0xda')][_0x39a6('0xfa')](db['SmsQueue'],{'through':_0x39a6('0x153'),'as':_0x39a6('0x109')});db['Team']['belongsToMany'](db['OpenchannelQueue'],{'through':'team_has_openchannel_queues','as':_0x39a6('0x10b')});db[_0x39a6('0xdc')][_0x39a6('0xed')](db[_0x39a6('0x6f')],{'as':_0x39a6('0x11d'),'foreignKey':_0x39a6('0x195')});db[_0x39a6('0xdc')][_0x39a6('0xed')](db['CmHopperFinal'],{'as':_0x39a6('0xf2'),'foreignKey':_0x39a6('0x195')});db['Campaign'][_0x39a6('0xed')](db[_0x39a6('0x73')],{'as':'HopperHistories','foreignKey':_0x39a6('0x195')});db[_0x39a6('0xdc')][_0x39a6('0xed')](db[_0x39a6('0x70')],{'as':_0x39a6('0x120'),'foreignKey':'CampaignId'});db['Campaign']['belongsTo'](db[_0x39a6('0x122')],{'as':_0x39a6('0x122'),'foreignKey':_0x39a6('0x196')});db[_0x39a6('0xdc')][_0x39a6('0x123')](db[_0x39a6('0x122')],{'as':_0x39a6('0x197'),'foreignKey':_0x39a6('0x124')});db[_0x39a6('0xdc')][_0x39a6('0x123')](db[_0x39a6('0x125')],{'as':_0x39a6('0x125'),'foreignKey':'IntervalId'});db[_0x39a6('0xdc')][_0x39a6('0x123')](db[_0x39a6('0x192')],{'as':_0x39a6('0x192'),'foreignKey':_0x39a6('0x198')});db[_0x39a6('0xdc')][_0x39a6('0xfa')](db[_0x39a6('0xe6')],{'as':_0x39a6('0x127'),'through':_0x39a6('0x199')});db['Campaign']['belongsToMany'](db[_0x39a6('0xe6')],{'as':_0x39a6('0x19a'),'through':_0x39a6('0x19b')});db[_0x39a6('0xe0')][_0x39a6('0x123')](db['MailMessage'],{});db[_0x39a6('0xe0')][_0x39a6('0x123')](db[_0x39a6('0x3c')],{});db[_0x39a6('0xe0')][_0x39a6('0x123')](db[_0x39a6('0x37')],{'foreignKey':_0x39a6('0x19c'),'as':'FromAccount'});db['MailTransferReport']['belongsTo'](db[_0x39a6('0xe9')],{'foreignKey':_0x39a6('0x19d'),'as':'FromAgent'});db[_0x39a6('0xe0')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'foreignKey':_0x39a6('0x19e'),'as':_0x39a6('0x19f')});db[_0x39a6('0xe0')][_0x39a6('0x123')](db[_0x39a6('0x39')],{'foreignKey':_0x39a6('0x1a0'),'as':_0x39a6('0x1a1')});db[_0x39a6('0xe0')]['belongsTo'](db[_0x39a6('0x37')],{'foreignKey':_0x39a6('0x1a2'),'as':'ToAccount'});db[_0x39a6('0xe1')]['belongsTo'](db[_0x39a6('0x63')],{});db['ChatTransferReport'][_0x39a6('0x123')](db[_0x39a6('0xf5')],{});db[_0x39a6('0xe1')][_0x39a6('0x123')](db[_0x39a6('0x5d')],{'foreignKey':'FromChatWebsiteId','as':_0x39a6('0x1a3')});db[_0x39a6('0xe1')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'foreignKey':_0x39a6('0x19d'),'as':_0x39a6('0x1a4')});db[_0x39a6('0xe1')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'foreignKey':'ToUserId','as':_0x39a6('0x19f')});db['ChatTransferReport'][_0x39a6('0x123')](db[_0x39a6('0x66')],{'foreignKey':_0x39a6('0x1a5'),'as':'ToQueue'});db[_0x39a6('0xe1')][_0x39a6('0x123')](db[_0x39a6('0x5d')],{'foreignKey':_0x39a6('0x1a6'),'as':_0x39a6('0x1a7')});db[_0x39a6('0x1a8')][_0x39a6('0x123')](db[_0x39a6('0x4a')],{});db[_0x39a6('0x1a8')][_0x39a6('0x123')](db[_0x39a6('0x48')],{});db[_0x39a6('0x1a8')][_0x39a6('0x123')](db[_0x39a6('0x44')],{'foreignKey':_0x39a6('0x1a9'),'as':'FromAccount'});db[_0x39a6('0x1a8')]['belongsTo'](db['User'],{'foreignKey':'FromUserId','as':_0x39a6('0x1a4')});db[_0x39a6('0x1a8')][_0x39a6('0x123')](db['User'],{'foreignKey':_0x39a6('0x19e'),'as':_0x39a6('0x19f')});db[_0x39a6('0x1a8')][_0x39a6('0x123')](db['FaxQueue'],{'foreignKey':_0x39a6('0x1aa'),'as':_0x39a6('0x1a1')});db[_0x39a6('0x1a8')][_0x39a6('0x123')](db[_0x39a6('0x44')],{'foreignKey':_0x39a6('0x1ab'),'as':_0x39a6('0x1a7')});db['OpenchannelTransferReport']['belongsTo'](db[_0x39a6('0x155')],{});db['OpenchannelTransferReport'][_0x39a6('0x123')](db['OpenchannelInteraction'],{});db[_0x39a6('0xe3')][_0x39a6('0x123')](db[_0x39a6('0x56')],{'foreignKey':'FromOpenchannelAccountId','as':'FromAccount'});db[_0x39a6('0xe3')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'foreignKey':'FromUserId','as':_0x39a6('0x1a4')});db[_0x39a6('0xe3')]['belongsTo'](db[_0x39a6('0xe9')],{'foreignKey':_0x39a6('0x19e'),'as':_0x39a6('0x19f')});db['OpenchannelTransferReport'][_0x39a6('0x123')](db['OpenchannelQueue'],{'foreignKey':'ToOpenchannelQueueId','as':_0x39a6('0x1a1')});db[_0x39a6('0xe3')][_0x39a6('0x123')](db[_0x39a6('0x56')],{'foreignKey':'ToOpenchannelAccountId','as':_0x39a6('0x1a7')});db[_0x39a6('0xe5')][_0x39a6('0x123')](db[_0x39a6('0x14f')],{});db['SmsTransferReport']['belongsTo'](db['SmsInteraction'],{});db[_0x39a6('0xe5')]['belongsTo'](db[_0x39a6('0x4e')],{'foreignKey':_0x39a6('0x1ac'),'as':_0x39a6('0x1a3')});db[_0x39a6('0xe5')][_0x39a6('0x123')](db[_0x39a6('0xe9')],{'foreignKey':_0x39a6('0x19d'),'as':'FromAgent'});db[_0x39a6('0xe5')]['belongsTo'](db[_0x39a6('0xe9')],{'foreignKey':_0x39a6('0x19e'),'as':_0x39a6('0x19f')});db['SmsTransferReport'][_0x39a6('0x123')](db[_0x39a6('0x54')],{'foreignKey':_0x39a6('0x1ad'),'as':_0x39a6('0x1a1')});db[_0x39a6('0xe5')][_0x39a6('0x123')](db['SmsAccount'],{'foreignKey':_0x39a6('0x1ae'),'as':_0x39a6('0x1a7')});db['CmList'][_0x39a6('0xed')](db[_0x39a6('0x7e')],{'as':_0x39a6('0x136'),'foreignKey':_0x39a6('0x143')});db['CmList'][_0x39a6('0xed')](db['CmCustomField'],{'as':_0x39a6('0x1af'),'foreignKey':_0x39a6('0x143')});db[_0x39a6('0xe6')][_0x39a6('0xed')](db[_0x39a6('0x6d')],{'as':'Contacts','onDelete':_0x39a6('0xf1'),'foreignKey':_0x39a6('0x143')});db['CmList'][_0x39a6('0xed')](db[_0x39a6('0x72')],{'as':'HopperFinals','foreignKey':_0x39a6('0x143')});db[_0x39a6('0xe6')][_0x39a6('0xed')](db[_0x39a6('0x73')],{'as':_0x39a6('0xf3'),'foreignKey':_0x39a6('0x143')});db[_0x39a6('0xe6')][_0x39a6('0xed')](db[_0x39a6('0x75')],{'as':'ReportAgentPreview','foreignKey':_0x39a6('0x143')});db[_0x39a6('0xe6')][_0x39a6('0xfa')](db[_0x39a6('0x11c')],{'as':_0x39a6('0x1b0'),'through':_0x39a6('0x128')});db[_0x39a6('0xe6')][_0x39a6('0xfa')](db['User'],{'as':'Agents','through':_0x39a6('0xfe')});db['VoicePrefix'][_0x39a6('0xed')](db['VoiceExtension'],{'as':_0x39a6('0xf0'),'onDelete':_0x39a6('0x142')});db[_0x39a6('0xe7')][_0x39a6('0xfa')](db[_0x39a6('0xe9')],{'as':_0x39a6('0x138'),'through':_0x39a6('0x1b1')});module[_0x39a6('0x1b2')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0xd0be=['OneAny','AutomationAnyId','Actions','Intervals','MailApplications','ChatApplications','FaxApplications','SmsApplications','AnalyticDefaultReport','DefaultReportId','AnalyticCustomReport','cm_contact_has_tags','AllCondition','TriggerAllId','TriggerAnyId','Action','TriggerId','Fields','CustomReportId','MetricId','SalesforceConfiguration','Subjects','DescriptionId','AccountId','Subject','SubjectId','Description','Field','FieldId','VariableId','Descriptions','DeskConfiguration','DeskField','int_desk_configuration_has_tags','Configurations','FreshdeskField','int_freshdesk_configuration_has_tags','VtigerConfiguration','int_vtiger_configuration_has_tags','ToId','JscriptyQuestionReport','SessionId','ProjectId','team_has_chat_queues','team_has_fax_queues','FaxQueues','team_has_openchannel_queues','TrunkBackup','SquareProjectId','campaigns_has_cm_lists','BlackLists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToUserId','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','ToAccount','ToChatQueueId','FromFaxAccountId','ToFaxQueueId','ToFaxAccountId','FromOpenchannelAccountId','SmsTransferReport','FromSmsAccountId','ToSmsQueueId','ToSmsAccountId','CustomFields','exports','path','../config/environment','lodash','jstz','sequelize','defaultsDeep','xcall','127.0.0.1','name','utf8','sequelizeHistory','xC@LL1234','mysql','utf8_general_ci','username','options','database','password','User','import','../api/user/user.model','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','VoiceQueue','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','../api/memberReport/memberReport.model','../api/trunk/trunk.model','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','UserChatQueue','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','UserSmsQueue','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','../api/mailAccount/mailAccount.model','MailQueue','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailInteraction/mailInteraction.model','MailMessage','../api/mailMessage/mailMessage.model','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','../api/dashboard/dashboard.model','DashboardItem','../api/dashboardItem/dashboardItem.model','FaxAccount','FaxApplication','../api/faxApplication/faxApplication.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','FaxQueueReport','../api/faxQueueReport/faxQueueReport.model','SmsAccount','../api/smsAccount/smsAccount.model','SmsInteraction','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','OpenchannelQueue','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','../api/openchannelQueueReport/openchannelQueueReport.model','ChatApplication','ChatInteraction','../api/chatInteraction/chatInteraction.model','ChatOfflineMessage','ChatQueue','../api/chatQueue/chatQueue.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','CmContact','../api/cmContact/cmContact.model','CmHopper','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','ReportAgentPreview','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','../api/action/action.model','Automation','CannedAnswer','../api/cannedAnswer/cannedAnswer.model','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Interval','../api/interval/interval.model','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','VoiceQueuesLog','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/sound/sound.model','../api/tag/tag.model','Template','../api/template/template.model','Trigger','Variable','../api/variable/variable.model','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','../api/analyticCustomReport/analyticCustomReport.model','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','AnalyticTreeReport','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','SugarcrmField','DeskAccount','../api/intDeskAccount/intDeskAccount.model','../api/intDeskConfiguration/intDeskConfiguration.model','ZohoAccount','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','../api/intZohoField/intZohoField.model','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','FreshdeskConfiguration','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','VtigerAccount','../api/intVtigerAccount/intVtigerAccount.model','VtigerField','../api/intVtigerField/intVtigerField.model','Network','../api/network/network.model','ChatQueueReport','../api/chatQueueReport/chatQueueReport.model','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','../api/squareReport/squareReport.model','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../api/jscriptyProject/jscriptyProject.model','../api/setting/setting.model','SquareOdbc','../api/squareProject/squareProject.model','../api/squareRecording/squareRecording.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','License','Campaign','../api/campaign/campaign.model','../api/migration/migration.model','Attachment','../api/plugin/plugin.model','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','hasOne','VoiceMail','cascade','UserId','hasMany','Recordings','VoiceExtension','Extensions','HopperFinals','HopperHistory','ChatInteractions','SmsInteractions','FaxInteraction','MailInteractions','belongsToMany','ChatGroup','Groups','chat_group_has_users','cm_user_has_contacts','CmList','user_has_teams','user_has_mail_interactions','FaxInteractions','user_has_fax_interactions','user_has_sms_interactions','OpenchannelInteractions','VoiceQueues','MailQueues','ChatQueues','SmsQueues','OpenchannelQueues','cm_user_has_lists','VoicePrefixes','user_has_voice_prefixes','ChatWebsites','user_has_chat_websites','FaxAccounts','MailAccount','MailAccounts','user_has_mail_accounts','OpenchannelAccounts','user_has_openchannel_accounts','SquareProject','SquareProjects','user_has_square_projects','SpiedAgents','ChanSpyId','Applications','Sound','Hoppers','VoiceQueueId','CmHopperFinal','HopperHistories','CmHopperBlack','HopperBlacks','JscriptySessions','belongsTo','Trunk','TrunkId','TrunkBackupId','voice_queues_has_cm_lists','Agents','Teams','team_has_voice_queues','mailboxuser','mailbox','VoiceCallReport','VoiceQueueReport','uniqueid','VoiceAgentReport','AgentReports','Contact','ContactId','MailServerIn','MailAccountId','Imap','Smtp','Dispositions','Answers','Messages','Interactions','List','TemplateId','team_has_mail_queues','MailInteractionId','Account','Owner','Tag','Tags','mail_interaction_has_tags','ThroughTags','Users','Attachments','restrict','IntervalId','Exntensions','TagId','FaxInteractionId','FaxAccountId','fax_interaction_has_tags','Interaction','AttachmentId','ListId','SmsAccountId','SmsApplication','user_has_sms_accounts','SmsMessage','sms_interaction_has_tags','SmsInteractionId','SmsQueue','SmsQueueId','team_has_sms_queues','OpenchannelAccountId','OpenchannelApplication','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','user_has_openchannel_interactions','ChatWebsiteId','ProactiveActions','Agent','Queue','ChatQueueId','Website','ChatMessage','chat_interaction_has_tags','ChatInteractionId','ChatGroupId','Contacts','CompanyId','Company','CampaignId','OwnerId','All'];(function(_0x4a5c9e,_0x5bec39){var _0x55b760=function(_0x2e51c4){while(--_0x2e51c4){_0x4a5c9e['push'](_0x4a5c9e['shift']());}};_0x55b760(++_0x5bec39);}(_0xd0be,0x1ef));var _0xed0b=function(_0x5c758d,_0x3bbadb){_0x5c758d=_0x5c758d-0x0;var _0x516580=_0xd0be[_0x5c758d];return _0x516580;};'use strict';var path=require(_0xed0b('0x0'));var config=require(_0xed0b('0x1'));var Sequelize=require('sequelize');var _=require(_0xed0b('0x2'));var jstz=require(_0xed0b('0x3'));var timezone=jstz['determine']();config[_0xed0b('0x4')]=_[_0xed0b('0x5')](config['sequelize'],{'database':'motion2','username':_0xed0b('0x6'),'password':'xC@LL1234','options':{'host':_0xed0b('0x7'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':'utf8mb4'},'logging':![],'timezone':timezone[_0xed0b('0x8')](),'define':{'charset':_0xed0b('0x9'),'collate':'utf8_general_ci'}}});config[_0xed0b('0xa')]=_[_0xed0b('0x5')](config[_0xed0b('0xa')],{'database':'motion2','username':_0xed0b('0x6'),'password':_0xed0b('0xb'),'options':{'host':_0xed0b('0x7'),'port':0xcea,'dialect':_0xed0b('0xc'),'dialectOptions':{'charset':'utf8mb4'},'logging':![],'timezone':timezone['name'](),'define':{'charset':_0xed0b('0x9'),'collate':_0xed0b('0xd')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config['sequelize']['database'],config['sequelize'][_0xed0b('0xe')],config[_0xed0b('0x4')]['password'],config[_0xed0b('0x4')][_0xed0b('0xf')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0xed0b('0xa')][_0xed0b('0x10')],config[_0xed0b('0xa')][_0xed0b('0xe')],config[_0xed0b('0xa')][_0xed0b('0x11')],config[_0xed0b('0xa')][_0xed0b('0xf')])};db[_0xed0b('0x12')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x14'));db[_0xed0b('0x15')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x16'));db[_0xed0b('0x17')]=db['sequelize'][_0xed0b('0x13')]('../api/voiceContext/voiceContext.model');db['VoiceExtension']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x18'));db[_0xed0b('0x19')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/voiceMusicOnHold/voiceMusicOnHold.model');db[_0xed0b('0x1a')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x1b'));db[_0xed0b('0x1c')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x1d'));db['VoiceMail']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x1e'));db[_0xed0b('0x1f')]=db['sequelize'][_0xed0b('0x13')]('../api/voiceMailMessage/voiceMailMessage.model');db['VoiceCallReport']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x20'));db[_0xed0b('0x21')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x22'));db['VoiceAgentReport']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/voiceAgentReport/voiceAgentReport.model');db['VoiceQueueReport']=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x23'));db[_0xed0b('0x24')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x25'));db['Trunk']=db[_0xed0b('0x4')]['import'](_0xed0b('0x26'));db['VoiceTransferReport']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/voiceTransferReport/voiceTransferReport.model');db[_0xed0b('0x27')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x28'));db[_0xed0b('0x29')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/userVoiceQueue/userVoiceQueue.model');db[_0xed0b('0x2a')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x2b'));db[_0xed0b('0x2c')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x2d'));db[_0xed0b('0x2e')]=db['sequelize'][_0xed0b('0x13')]('../api/userFaxQueue/userFaxQueue.model');db[_0xed0b('0x2f')]=db[_0xed0b('0x4')]['import']('../api/userSmsQueue/userSmsQueue.model');db[_0xed0b('0x30')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x31'));db['MailServerIn']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x32'));db[_0xed0b('0x33')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x34'));db['MailAccount']=db[_0xed0b('0x4')]['import'](_0xed0b('0x35'));db[_0xed0b('0x36')]=db['sequelize']['import']('../api/mailQueue/mailQueue.model');db[_0xed0b('0x37')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x38'));db[_0xed0b('0x39')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x3a'));db[_0xed0b('0x3b')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x3c'));db[_0xed0b('0x3d')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x3e'));db[_0xed0b('0x3f')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x40'));db['Dashboard']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x41'));db[_0xed0b('0x42')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x43'));db[_0xed0b('0x44')]=db[_0xed0b('0x4')]['import']('../api/faxAccount/faxAccount.model');db[_0xed0b('0x45')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x46'));db['FaxInteraction']=db[_0xed0b('0x4')]['import']('../api/faxInteraction/faxInteraction.model');db[_0xed0b('0x47')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x48'));db[_0xed0b('0x49')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/faxQueue/faxQueue.model');db[_0xed0b('0x4a')]=db['sequelize']['import'](_0xed0b('0x4b'));db[_0xed0b('0x4c')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x4d'));db['SmsApplication']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/smsApplication/smsApplication.model');db[_0xed0b('0x4e')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/smsInteraction/smsInteraction.model');db['SmsMessage']=db[_0xed0b('0x4')]['import']('../api/smsMessage/smsMessage.model');db['SmsQueue']=db[_0xed0b('0x4')]['import'](_0xed0b('0x4f'));db[_0xed0b('0x50')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x51'));db['OpenchannelApplication']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x52'));db[_0xed0b('0x53')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x54'));db[_0xed0b('0x55')]=db[_0xed0b('0x4')]['import']('../api/openchannelMessage/openchannelMessage.model');db[_0xed0b('0x56')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/openchannelQueue/openchannelQueue.model');db[_0xed0b('0x57')]=db['sequelize']['import'](_0xed0b('0x58'));db[_0xed0b('0x59')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x5a'));db[_0xed0b('0x5b')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/chatApplication/chatApplication.model');db[_0xed0b('0x5c')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x5d'));db['ChatMessage']=db[_0xed0b('0x4')]['import']('../api/chatMessage/chatMessage.model');db[_0xed0b('0x5e')]=db[_0xed0b('0x4')]['import']('../api/chatOfflineMessage/chatOfflineMessage.model');db[_0xed0b('0x5f')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x60'));db['ChatGroup']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/chatGroup/chatGroup.model');db[_0xed0b('0x61')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x62'));db[_0xed0b('0x63')]=db[_0xed0b('0x4')]['import']('../api/cmCompany/cmCompany.model');db[_0xed0b('0x64')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x65'));db[_0xed0b('0x66')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/cmHopper/cmHopper.model');db['CmHopperBlack']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/cmHopperBlack/cmHopperBlack.model');db['CmHopperFinal']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x67'));db[_0xed0b('0x68')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/cmHopperHistory/cmHopperHistory.model');db[_0xed0b('0x69')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x6a'));db[_0xed0b('0x6b')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x6c'));db['Action']=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x6d'));db[_0xed0b('0x6e')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/automation/automation.model');db[_0xed0b('0x6f')]=db['sequelize']['import'](_0xed0b('0x70'));db[_0xed0b('0x71')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x72'));db[_0xed0b('0x73')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x74'));db[_0xed0b('0x75')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x76'));db['Pause']=db[_0xed0b('0x4')]['import'](_0xed0b('0x77'));db[_0xed0b('0x78')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x79'));db[_0xed0b('0x7a')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x7b'));db[_0xed0b('0x7c')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/schedule/schedule.model');db['Sound']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x7d'));db['Tag']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x7e'));db[_0xed0b('0x7f')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x80'));db[_0xed0b('0x81')]=db['sequelize'][_0xed0b('0x13')]('../api/trigger/trigger.model');db[_0xed0b('0x82')]=db['sequelize']['import'](_0xed0b('0x83'));db[_0xed0b('0x84')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x85'));db[_0xed0b('0x86')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x87'));db['AnalyticCustomReport']=db[_0xed0b('0x4')]['import'](_0xed0b('0x88'));db['AnalyticDefaultReport']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x89'));db[_0xed0b('0x8a')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x8b'));db[_0xed0b('0x8c')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x8d'));db[_0xed0b('0x8e')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x8f'));db[_0xed0b('0x90')]=db['sequelize']['import'](_0xed0b('0x91'));db[_0xed0b('0x92')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x93'));db['SalesforceConfiguration']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x94'));db[_0xed0b('0x95')]=db['sequelize'][_0xed0b('0x13')]('../api/intSalesforceField/intSalesforceField.model');db[_0xed0b('0x96')]=db['sequelize']['import'](_0xed0b('0x97'));db[_0xed0b('0x98')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model');db[_0xed0b('0x99')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/intSugarcrmField/intSugarcrmField.model');db[_0xed0b('0x9a')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x9b'));db['DeskConfiguration']=db['sequelize'][_0xed0b('0x13')](_0xed0b('0x9c'));db['DeskField']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/intDeskField/intDeskField.model');db[_0xed0b('0x9d')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/intZohoAccount/intZohoAccount.model');db[_0xed0b('0x9e')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0x9f'));db[_0xed0b('0xa0')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xa1'));db[_0xed0b('0xa2')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xa3'));db[_0xed0b('0xa4')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xa5'));db[_0xed0b('0xa6')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/intZendeskField/intZendeskField.model');db[_0xed0b('0xa7')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xa8'));db[_0xed0b('0xa9')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xaa'));db['FreshdeskField']=db['sequelize'][_0xed0b('0x13')]('../api/intFreshdeskField/intFreshdeskField.model');db[_0xed0b('0xab')]=db[_0xed0b('0x4')]['import'](_0xed0b('0xac'));db['VtigerConfiguration']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/intVtigerConfiguration/intVtigerConfiguration.model');db[_0xed0b('0xad')]=db[_0xed0b('0x4')]['import'](_0xed0b('0xae'));db[_0xed0b('0x84')]=db[_0xed0b('0x4')]['import'](_0xed0b('0x85'));db[_0xed0b('0xaf')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0xb0'));db[_0xed0b('0xb1')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xb2'));db[_0xed0b('0xb3')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xb4'));db[_0xed0b('0xb5')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xb6'));db['JscriptyQuestionReport']=db[_0xed0b('0x4')]['import'](_0xed0b('0xb7'));db[_0xed0b('0xb8')]=db[_0xed0b('0x4')]['import'](_0xed0b('0xb9'));db[_0xed0b('0xba')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0xbb'));db[_0xed0b('0xbc')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xbd'));db['SquareDetailsReport']=db[_0xed0b('0x4')]['import'](_0xed0b('0xbe'));db[_0xed0b('0xbf')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0xc0'));db['Setting']=db[_0xed0b('0x4')]['import'](_0xed0b('0xc1'));db[_0xed0b('0xc2')]=db[_0xed0b('0x4')]['import']('../api/squareOdbc/squareOdbc.model');db['SquareProject']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xc3'));db['SquareRecording']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xc4'));db[_0xed0b('0xc5')]=db[_0xed0b('0x4')]['import'](_0xed0b('0xc6'));db[_0xed0b('0xc7')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/team/team.model');db[_0xed0b('0xc8')]=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/license/license.model');db[_0xed0b('0xc9')]=db['sequelize'][_0xed0b('0x13')](_0xed0b('0xca'));db['Migration']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xcb'));db[_0xed0b('0xcc')]=db[_0xed0b('0x4')]['import']('../api/attachment/attachment.model');db['Plugin']=db[_0xed0b('0x4')]['import'](_0xed0b('0xcd'));db[_0xed0b('0xce')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xcf'));db[_0xed0b('0xd0')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xd1'));db[_0xed0b('0xd2')]=db['sequelize']['import'](_0xed0b('0xd3'));db[_0xed0b('0xd4')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xd5'));db['SmsTransferReport']=db[_0xed0b('0x4')][_0xed0b('0x13')]('../api/smsTransferReport/smsTransferReport.model');db['CmList']=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xd6'));db[_0xed0b('0xd7')]=db[_0xed0b('0x4')][_0xed0b('0x13')](_0xed0b('0xd8'));db[_0xed0b('0x12')][_0xed0b('0xd9')](db['VoiceMail'],{'as':_0xed0b('0xda'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x12')][_0xed0b('0xdd')](db[_0xed0b('0x1c')],{'as':_0xed0b('0xde'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x12')][_0xed0b('0xdd')](db['UserVoiceQueueRt'],{'as':'VoiceQueuesRt','foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x12')][_0xed0b('0xdd')](db[_0xed0b('0xdf')],{'as':_0xed0b('0xe0'),'onDelete':_0xed0b('0xdb'),'hooks':!![]});db[_0xed0b('0x12')][_0xed0b('0xdd')](db['CmHopperFinal'],{'as':_0xed0b('0xe1'),'foreignKey':_0xed0b('0xdc')});db['User']['hasMany'](db[_0xed0b('0x68')],{'as':_0xed0b('0xe2'),'foreignKey':'UserId'});db['User'][_0xed0b('0xdd')](db['ReportAgentPreview'],{'as':_0xed0b('0x69'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x12')][_0xed0b('0xdd')](db[_0xed0b('0x53')],{'as':'OpenchannelInteractions','foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x12')][_0xed0b('0xdd')](db[_0xed0b('0x5c')],{'as':_0xed0b('0xe3'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x12')][_0xed0b('0xdd')](db[_0xed0b('0x4e')],{'as':_0xed0b('0xe4'),'foreignKey':'UserId'});db[_0xed0b('0x12')]['hasMany'](db[_0xed0b('0xe5')],{'as':'FaxInteractions','foreignKey':'UserId'});db[_0xed0b('0x12')][_0xed0b('0xdd')](db['MailInteraction'],{'as':_0xed0b('0xe6'),'foreignKey':'UserId'});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0xe8')],{'as':_0xed0b('0xe9'),'through':_0xed0b('0xea')});db[_0xed0b('0x12')]['belongsToMany'](db[_0xed0b('0x64')],{'as':'Contacts','through':_0xed0b('0xeb')});db['User'][_0xed0b('0xe7')](db[_0xed0b('0xec')],{'as':'Lists','through':'cm_user_has_lists'});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0xc7')],{'through':_0xed0b('0xed')});db['User'][_0xed0b('0xe7')](db[_0xed0b('0x39')],{'as':_0xed0b('0xe6'),'through':_0xed0b('0xee')});db[_0xed0b('0x12')]['belongsToMany'](db[_0xed0b('0x5c')],{'as':_0xed0b('0xe3'),'through':'user_has_chat_interactions'});db[_0xed0b('0x12')][_0xed0b('0xe7')](db['FaxInteraction'],{'as':_0xed0b('0xef'),'through':_0xed0b('0xf0')});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0x4e')],{'as':'SmsInteractions','through':_0xed0b('0xf1')});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0x53')],{'as':_0xed0b('0xf2'),'through':'user_has_openchannel_interactions'});db[_0xed0b('0x12')]['belongsToMany'](db[_0xed0b('0x1a')],{'as':_0xed0b('0xf3'),'through':_0xed0b('0x29'),'required':![]});db[_0xed0b('0x12')]['belongsToMany'](db[_0xed0b('0x36')],{'as':_0xed0b('0xf4'),'through':_0xed0b('0x2c'),'required':![]});db['User'][_0xed0b('0xe7')](db[_0xed0b('0x5f')],{'as':_0xed0b('0xf5'),'through':_0xed0b('0x2a'),'required':![],'hooks':!![]});db['User'][_0xed0b('0xe7')](db[_0xed0b('0x49')],{'as':'FaxQueues','through':_0xed0b('0x2e'),'required':![]});db['User']['belongsToMany'](db['SmsQueue'],{'as':_0xed0b('0xf6'),'through':_0xed0b('0x2f'),'required':![]});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0x56')],{'as':_0xed0b('0xf7'),'through':_0xed0b('0x30'),'required':![]});db['User'][_0xed0b('0xe7')](db[_0xed0b('0xec')],{'through':_0xed0b('0xf8')});db['User'][_0xed0b('0xe7')](db[_0xed0b('0xd7')],{'as':_0xed0b('0xf9'),'through':_0xed0b('0xfa'),'required':![]});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0x57')],{'as':_0xed0b('0xfb'),'through':_0xed0b('0xfc')});db[_0xed0b('0x12')]['belongsToMany'](db[_0xed0b('0x44')],{'as':_0xed0b('0xfd'),'through':'user_has_fax_accounts'});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0xfe')],{'as':_0xed0b('0xff'),'through':_0xed0b('0x100')});db['User'][_0xed0b('0xe7')](db[_0xed0b('0x50')],{'as':_0xed0b('0x101'),'through':_0xed0b('0x102')});db['User'][_0xed0b('0xe7')](db[_0xed0b('0x4c')],{'as':'SmsAccounts','through':'user_has_sms_accounts'});db[_0xed0b('0x12')][_0xed0b('0xe7')](db[_0xed0b('0x103')],{'as':_0xed0b('0x104'),'through':_0xed0b('0x105')});db[_0xed0b('0x15')][_0xed0b('0xdd')](db[_0xed0b('0xdf')],{'as':_0xed0b('0x106'),'onDelete':'cascade','foreignKey':_0xed0b('0x107')});db[_0xed0b('0x17')][_0xed0b('0xdd')](db['VoiceExtension'],{'onDelete':_0xed0b('0xdb')});db[_0xed0b('0xdf')][_0xed0b('0xdd')](db[_0xed0b('0xdf')],{'as':_0xed0b('0x108'),'onDelete':'cascade'});db[_0xed0b('0x19')][_0xed0b('0xe7')](db[_0xed0b('0x109')],{'as':'Sounds','through':'moh_has_sounds'});db['VoiceQueue'][_0xed0b('0xdd')](db['UserVoiceQueueRt'],{'as':'Members','foreignKey':'VoiceQueueId'});db[_0xed0b('0x1a')][_0xed0b('0xdd')](db[_0xed0b('0x66')],{'as':_0xed0b('0x10a'),'foreignKey':_0xed0b('0x10b')});db[_0xed0b('0x1a')][_0xed0b('0xdd')](db[_0xed0b('0x10c')],{'as':'HopperFinals','foreignKey':_0xed0b('0x10b')});db[_0xed0b('0x1a')][_0xed0b('0xdd')](db['CmHopperHistory'],{'as':_0xed0b('0x10d'),'foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0xed0b('0xdd')](db[_0xed0b('0x69')],{'as':_0xed0b('0x69'),'foreignKey':_0xed0b('0x10b')});db[_0xed0b('0x1a')][_0xed0b('0xdd')](db[_0xed0b('0x10e')],{'as':_0xed0b('0x10f'),'foreignKey':_0xed0b('0x10b')});db[_0xed0b('0x1a')][_0xed0b('0xdd')](db['JscriptySessionReport'],{'as':_0xed0b('0x110'),'foreignKey':_0xed0b('0x10b')});db[_0xed0b('0x1a')][_0xed0b('0x111')](db[_0xed0b('0x112')],{'as':_0xed0b('0x112'),'foreignKey':_0xed0b('0x113')});db['VoiceQueue'][_0xed0b('0x111')](db[_0xed0b('0x112')],{'as':'TrunkBackup','foreignKey':_0xed0b('0x114')});db[_0xed0b('0x1a')][_0xed0b('0x111')](db[_0xed0b('0x75')],{'as':_0xed0b('0x75'),'foreignKey':'IntervalId'});db[_0xed0b('0x1a')]['belongsToMany'](db[_0xed0b('0xec')],{'as':'Lists','through':_0xed0b('0x115')});db[_0xed0b('0x1a')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':_0xed0b('0x29')});db['VoiceQueue']['belongsToMany'](db[_0xed0b('0xc7')],{'as':_0xed0b('0x117'),'through':_0xed0b('0x118')});db[_0xed0b('0x1a')][_0xed0b('0xe7')](db[_0xed0b('0xec')],{'as':'BlackLists','through':'voice_queues_has_cm_blacklists'});db['VoiceRecording']['belongsTo'](db[_0xed0b('0x12')],{'as':_0xed0b('0x12'),'foreignKey':'UserId'});db[_0xed0b('0xda')][_0xed0b('0xdd')](db[_0xed0b('0x1f')],{'as':'Messages','onDelete':'cascade','foreignKey':_0xed0b('0x119'),'sourceKey':_0xed0b('0x11a')});db[_0xed0b('0x1f')][_0xed0b('0x111')](db[_0xed0b('0xda')],{'foreignKey':'mailboxuser','targetKey':_0xed0b('0x11a')});db[_0xed0b('0x11b')][_0xed0b('0xdd')](db[_0xed0b('0x11c')],{'as':'QueueCalls','foreignKey':_0xed0b('0x11d'),'constraints':![]});db[_0xed0b('0x11b')][_0xed0b('0xdd')](db[_0xed0b('0x11e')],{'as':_0xed0b('0x11f'),'foreignKey':_0xed0b('0x11d'),'constraints':![]});db[_0xed0b('0x11b')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'as':_0xed0b('0x12'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x11b')]['belongsTo'](db[_0xed0b('0x64')],{'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0x122')]['belongsTo'](db['MailAccount'],{'as':'MailAccount','foreignKey':_0xed0b('0x123')});db[_0xed0b('0x33')][_0xed0b('0x111')](db[_0xed0b('0xfe')],{'as':_0xed0b('0xfe'),'foreignKey':_0xed0b('0x123')});db[_0xed0b('0xfe')]['hasOne'](db[_0xed0b('0x122')],{'as':_0xed0b('0x124'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0xfe')][_0xed0b('0xd9')](db[_0xed0b('0x33')],{'as':_0xed0b('0x125'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0xfe')][_0xed0b('0xdd')](db['Disposition'],{'as':_0xed0b('0x126'),'foreignKey':_0xed0b('0x123')});db['MailAccount']['hasMany'](db[_0xed0b('0x6f')],{'as':_0xed0b('0x127'),'foreignKey':_0xed0b('0x123')});db[_0xed0b('0xfe')][_0xed0b('0xdd')](db[_0xed0b('0x3b')],{'as':_0xed0b('0x128'),'foreignKey':_0xed0b('0x123')});db[_0xed0b('0xfe')][_0xed0b('0xdd')](db[_0xed0b('0x39')],{'as':_0xed0b('0x129')});db['MailAccount'][_0xed0b('0xdd')](db['MailApplication'],{'as':'Applications'});db[_0xed0b('0xfe')][_0xed0b('0x111')](db[_0xed0b('0xec')],{'as':_0xed0b('0x12a'),'foreignKey':'ListId'});db[_0xed0b('0xfe')][_0xed0b('0x111')](db[_0xed0b('0x7f')],{'as':_0xed0b('0x7f'),'foreignKey':_0xed0b('0x12b')});db[_0xed0b('0xfe')][_0xed0b('0xe7')](db['User'],{'as':_0xed0b('0x116'),'through':_0xed0b('0x100')});db[_0xed0b('0x36')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':'UserMailQueue'});db['MailQueue'][_0xed0b('0xe7')](db[_0xed0b('0xc7')],{'through':_0xed0b('0x12c'),'as':_0xed0b('0x117')});db[_0xed0b('0x39')][_0xed0b('0xdd')](db['MailMessage'],{'as':_0xed0b('0x128'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x12d')});db[_0xed0b('0x39')][_0xed0b('0x111')](db['MailAccount'],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x123')});db[_0xed0b('0x39')][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0x39')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'as':_0xed0b('0x12f'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x39')]['belongsToMany'](db[_0xed0b('0x130')],{'through':'mail_interaction_has_tags','as':_0xed0b('0x131')});db['MailInteraction']['belongsToMany'](db['Tag'],{'through':_0xed0b('0x132'),'as':_0xed0b('0x133')});db[_0xed0b('0x39')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x134'),'through':'user_has_mail_interactions','foreignKey':_0xed0b('0x12d')});db[_0xed0b('0x3b')][_0xed0b('0xdd')](db[_0xed0b('0xcc')],{'as':_0xed0b('0x135'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0x3b')]['belongsTo'](db[_0xed0b('0x12')],{'as':_0xed0b('0x12')});db[_0xed0b('0x3b')]['belongsTo'](db[_0xed0b('0x64')],{'onDelete':'cascade','as':_0xed0b('0x120')});db[_0xed0b('0x3b')][_0xed0b('0x111')](db[_0xed0b('0x39')],{'as':'Interaction','foreignKey':'MailInteractionId'});db[_0xed0b('0x3b')][_0xed0b('0x111')](db[_0xed0b('0xfe')],{'as':'Account','foreignKey':_0xed0b('0x123')});db['MailApplication'][_0xed0b('0x111')](db['User'],{'onDelete':_0xed0b('0x136')});db[_0xed0b('0x3d')][_0xed0b('0x111')](db[_0xed0b('0x36')],{'onDelete':_0xed0b('0x136')});db['MailApplication'][_0xed0b('0x111')](db[_0xed0b('0xfe')],{'onDelete':_0xed0b('0x136')});db[_0xed0b('0x3d')][_0xed0b('0x111')](db[_0xed0b('0x75')],{'onDelete':'restrict','foreignKey':_0xed0b('0x137')});db[_0xed0b('0x3d')][_0xed0b('0x111')](db[_0xed0b('0x130')],{'onDelete':_0xed0b('0x136'),'foreignKey':'TagId'});db['MailQueueReport']['belongsTo'](db['MailAccount'],{});db[_0xed0b('0x3f')]['belongsTo'](db['CmList'],{'as':_0xed0b('0x12a'),'foreignKey':'ListId'});db[_0xed0b('0x3f')][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':'Contact','foreignKey':_0xed0b('0x121')});db['MailQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x39')],{});db[_0xed0b('0x3f')]['belongsTo'](db[_0xed0b('0x3b')],{});db[_0xed0b('0x3f')][_0xed0b('0x111')](db[_0xed0b('0x12')],{});db[_0xed0b('0x3f')][_0xed0b('0x111')](db[_0xed0b('0x36')],{});db['Dashboard'][_0xed0b('0xdd')](db['DashboardItem'],{'as':'Items','onDelete':_0xed0b('0xdb')});db[_0xed0b('0x44')][_0xed0b('0xdd')](db[_0xed0b('0x71')],{'as':_0xed0b('0x126'),'foreignKey':'FaxAccountId'});db['FaxAccount'][_0xed0b('0xdd')](db[_0xed0b('0x6f')],{'as':_0xed0b('0x127'),'foreignKey':'FaxAccountId'});db[_0xed0b('0x44')][_0xed0b('0xdd')](db[_0xed0b('0xe5')],{'as':_0xed0b('0x129')});db[_0xed0b('0x44')][_0xed0b('0xdd')](db[_0xed0b('0x45')],{'as':'Applications'});db['FaxAccount'][_0xed0b('0xdd')](db[_0xed0b('0xdf')],{'as':_0xed0b('0x138'),'onDelete':_0xed0b('0xdb')});db['FaxAccount'][_0xed0b('0xdd')](db[_0xed0b('0x47')],{'as':_0xed0b('0x128')});db[_0xed0b('0x44')]['belongsTo'](db[_0xed0b('0x112')],{'as':_0xed0b('0x112')});db[_0xed0b('0x44')][_0xed0b('0x111')](db[_0xed0b('0xec')],{'as':'List','foreignKey':'ListId'});db[_0xed0b('0x44')]['belongsToMany'](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':'user_has_fax_accounts'});db[_0xed0b('0x45')]['belongsTo'](db[_0xed0b('0x12')],{'onDelete':'restrict'});db[_0xed0b('0x45')][_0xed0b('0x111')](db[_0xed0b('0x49')],{'onDelete':_0xed0b('0x136')});db['FaxApplication']['belongsTo'](db[_0xed0b('0x44')],{'onDelete':_0xed0b('0x136')});db[_0xed0b('0x45')][_0xed0b('0x111')](db['Tag'],{'onDelete':'restrict','foreignKey':_0xed0b('0x139')});db[_0xed0b('0xe5')][_0xed0b('0xdd')](db['FaxMessage'],{'as':_0xed0b('0x128'),'onDelete':'cascade','foreignKey':_0xed0b('0x13a')});db[_0xed0b('0xe5')][_0xed0b('0x111')](db['FaxAccount'],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x13b')});db[_0xed0b('0xe5')]['belongsTo'](db['CmContact'],{'as':_0xed0b('0x120'),'foreignKey':'ContactId'});db[_0xed0b('0xe5')]['belongsTo'](db[_0xed0b('0x12')],{'as':'Owner','foreignKey':_0xed0b('0xdc')});db[_0xed0b('0xe5')][_0xed0b('0xe7')](db['Tag'],{'through':_0xed0b('0x13c'),'as':_0xed0b('0x131')});db[_0xed0b('0xe5')][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':_0xed0b('0x13c'),'as':_0xed0b('0x133')});db[_0xed0b('0xe5')]['belongsToMany'](db[_0xed0b('0x12')],{'as':_0xed0b('0x134'),'through':_0xed0b('0xf0'),'foreignKey':'FaxInteractionId'});db['FaxMessage'][_0xed0b('0x111')](db[_0xed0b('0x12')],{'onDelete':'cascade','as':_0xed0b('0x12')});db[_0xed0b('0x47')][_0xed0b('0x111')](db[_0xed0b('0xe5')],{'as':_0xed0b('0x13d'),'foreignKey':_0xed0b('0x13a')});db[_0xed0b('0x47')]['belongsTo'](db[_0xed0b('0x64')],{'onDelete':_0xed0b('0xdb'),'as':_0xed0b('0x120')});db[_0xed0b('0x47')][_0xed0b('0x111')](db['Attachment'],{'as':'Attachment','foreignKey':_0xed0b('0x13e')});db[_0xed0b('0x47')][_0xed0b('0x111')](db['FaxAccount'],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x13b')});db['FaxQueue'][_0xed0b('0xe7')](db['User'],{'as':_0xed0b('0x116'),'through':_0xed0b('0x2e')});db[_0xed0b('0x49')]['belongsToMany'](db[_0xed0b('0xc7')],{'through':'team_has_fax_queues','as':_0xed0b('0x117')});db[_0xed0b('0x4a')][_0xed0b('0x111')](db[_0xed0b('0x44')],{});db[_0xed0b('0x4a')][_0xed0b('0x111')](db[_0xed0b('0xec')],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f')});db[_0xed0b('0x4a')][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':'Contact','foreignKey':_0xed0b('0x121')});db['FaxQueueReport'][_0xed0b('0x111')](db[_0xed0b('0xe5')],{});db[_0xed0b('0x4a')][_0xed0b('0x111')](db[_0xed0b('0x47')],{});db['FaxQueueReport'][_0xed0b('0x111')](db['User'],{});db[_0xed0b('0x4a')][_0xed0b('0x111')](db[_0xed0b('0x49')],{});db[_0xed0b('0x4c')][_0xed0b('0xdd')](db[_0xed0b('0x71')],{'as':_0xed0b('0x126'),'foreignKey':'SmsAccountId'});db[_0xed0b('0x4c')][_0xed0b('0xdd')](db[_0xed0b('0x6f')],{'as':_0xed0b('0x127'),'foreignKey':_0xed0b('0x140')});db[_0xed0b('0x4c')][_0xed0b('0xdd')](db['SmsMessage'],{'as':_0xed0b('0x128'),'foreignKey':_0xed0b('0x140')});db['SmsAccount']['hasMany'](db[_0xed0b('0x4e')],{'as':_0xed0b('0x129')});db['SmsAccount'][_0xed0b('0xdd')](db[_0xed0b('0x141')],{'as':_0xed0b('0x108')});db[_0xed0b('0x4c')][_0xed0b('0x111')](db['CmList'],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f')});db[_0xed0b('0x4c')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':_0xed0b('0x142')});db[_0xed0b('0x141')][_0xed0b('0x111')](db['User'],{'onDelete':'restrict'});db[_0xed0b('0x141')]['belongsTo'](db['SmsQueue'],{'onDelete':_0xed0b('0x136')});db[_0xed0b('0x141')]['belongsTo'](db[_0xed0b('0x4c')],{'onDelete':_0xed0b('0x136')});db[_0xed0b('0x141')][_0xed0b('0x111')](db[_0xed0b('0x75')],{'onDelete':_0xed0b('0x136'),'foreignKey':_0xed0b('0x137')});db[_0xed0b('0x141')][_0xed0b('0x111')](db[_0xed0b('0x130')],{'onDelete':_0xed0b('0x136'),'foreignKey':_0xed0b('0x139')});db[_0xed0b('0x4e')]['hasMany'](db[_0xed0b('0x143')],{'as':'Messages','onDelete':_0xed0b('0xdb'),'foreignKey':'SmsInteractionId'});db['SmsInteraction'][_0xed0b('0x111')](db[_0xed0b('0x4c')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x140')});db['SmsInteraction'][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':_0xed0b('0x120'),'foreignKey':'ContactId'});db[_0xed0b('0x4e')]['belongsTo'](db[_0xed0b('0x12')],{'as':_0xed0b('0x12f'),'foreignKey':_0xed0b('0xdc')});db[_0xed0b('0x4e')]['belongsToMany'](db[_0xed0b('0x130')],{'through':_0xed0b('0x144'),'as':'Tags'});db[_0xed0b('0x4e')][_0xed0b('0xe7')](db['Tag'],{'through':'sms_interaction_has_tags','as':'ThroughTags'});db[_0xed0b('0x4e')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x134'),'through':_0xed0b('0xf1'),'foreignKey':_0xed0b('0x145')});db['SmsMessage']['belongsTo'](db[_0xed0b('0x12')],{'as':_0xed0b('0x12')});db[_0xed0b('0x143')][_0xed0b('0x111')](db[_0xed0b('0x64')],{'onDelete':_0xed0b('0xdb'),'as':'Contact'});db[_0xed0b('0x143')][_0xed0b('0x111')](db[_0xed0b('0x4e')],{'onDelete':'cascade','as':_0xed0b('0x13d'),'foreignKey':_0xed0b('0x145')});db[_0xed0b('0x143')][_0xed0b('0x111')](db[_0xed0b('0x4c')],{'as':'Account','foreignKey':_0xed0b('0x140')});db[_0xed0b('0x146')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':'UserSmsQueue','foreignKey':_0xed0b('0x147')});db[_0xed0b('0x146')][_0xed0b('0xe7')](db[_0xed0b('0xc7')],{'through':_0xed0b('0x148'),'as':_0xed0b('0x117')});db[_0xed0b('0x50')]['hasMany'](db[_0xed0b('0x71')],{'as':_0xed0b('0x126'),'foreignKey':_0xed0b('0x149')});db[_0xed0b('0x50')][_0xed0b('0xdd')](db[_0xed0b('0x6f')],{'as':_0xed0b('0x127'),'foreignKey':_0xed0b('0x149')});db[_0xed0b('0x50')][_0xed0b('0xdd')](db[_0xed0b('0x53')],{'as':_0xed0b('0x129'),'foreignKey':'OpenchannelAccountId'});db[_0xed0b('0x50')][_0xed0b('0xdd')](db[_0xed0b('0x55')],{'as':'Messages','foreignKey':'OpenchannelAccountId'});db[_0xed0b('0x50')][_0xed0b('0xdd')](db[_0xed0b('0x14a')],{'as':'Applications','foreignKey':_0xed0b('0x149')});db[_0xed0b('0x50')]['belongsTo'](db['CmList'],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f')});db[_0xed0b('0x50')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':_0xed0b('0x102')});db['OpenchannelApplication'][_0xed0b('0x111')](db[_0xed0b('0x12')],{'onDelete':_0xed0b('0x136')});db[_0xed0b('0x14a')][_0xed0b('0x111')](db[_0xed0b('0x56')],{'onDelete':_0xed0b('0x136'),'foreignKey':_0xed0b('0x14b')});db[_0xed0b('0x14a')][_0xed0b('0x111')](db[_0xed0b('0x50')],{'onDelete':'restrict','foreignKey':_0xed0b('0x149')});db[_0xed0b('0x14a')]['belongsTo'](db[_0xed0b('0x75')],{'onDelete':_0xed0b('0x136'),'foreignKey':_0xed0b('0x137')});db['OpenchannelApplication'][_0xed0b('0x111')](db['Tag'],{'onDelete':_0xed0b('0x136'),'foreignKey':_0xed0b('0x139')});db['OpenchannelInteraction'][_0xed0b('0xdd')](db[_0xed0b('0x55')],{'as':'Messages','onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x14c')});db[_0xed0b('0x53')]['belongsTo'](db['OpenchannelAccount'],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x149')});db['OpenchannelInteraction'][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0x53')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'as':_0xed0b('0x12f'),'foreignKey':_0xed0b('0xdc')});db['OpenchannelInteraction'][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':_0xed0b('0x14d'),'as':_0xed0b('0x131')});db['OpenchannelInteraction'][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':_0xed0b('0x14d'),'as':_0xed0b('0x133')});db[_0xed0b('0x53')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x134'),'through':_0xed0b('0x14e'),'foreignKey':_0xed0b('0x14c')});db['OpenchannelMessage'][_0xed0b('0x111')](db[_0xed0b('0x12')],{'onDelete':_0xed0b('0xdb'),'as':_0xed0b('0x12')});db['OpenchannelMessage']['belongsTo'](db['CmContact'],{'onDelete':_0xed0b('0xdb'),'as':'Contact'});db[_0xed0b('0x55')]['belongsTo'](db[_0xed0b('0x53')],{'onDelete':_0xed0b('0xdb'),'as':_0xed0b('0x13d'),'foreignKey':_0xed0b('0x14c')});db[_0xed0b('0x55')]['belongsTo'](db[_0xed0b('0xcc')],{'as':'Attachment','foreignKey':_0xed0b('0x13e')});db[_0xed0b('0x55')][_0xed0b('0x111')](db[_0xed0b('0x50')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x149')});db[_0xed0b('0x56')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':'UserOpenchannelQueue','foreignKey':_0xed0b('0x14b')});db['OpenchannelQueue'][_0xed0b('0xe7')](db[_0xed0b('0xc7')],{'through':'team_has_openchannel_queues','as':_0xed0b('0x117')});db['ChatWebsite']['hasMany'](db[_0xed0b('0x71')],{'as':_0xed0b('0x126'),'foreignKey':_0xed0b('0x14f')});db[_0xed0b('0x57')][_0xed0b('0xdd')](db['CannedAnswer'],{'as':_0xed0b('0x127'),'foreignKey':_0xed0b('0x14f')});db['ChatWebsite'][_0xed0b('0xdd')](db[_0xed0b('0x61')],{'as':_0xed0b('0x150')});db['ChatWebsite']['hasMany'](db[_0xed0b('0x5c')],{'as':_0xed0b('0x129')});db[_0xed0b('0x57')]['hasMany'](db[_0xed0b('0x5b')],{'as':_0xed0b('0x108')});db[_0xed0b('0x57')]['hasMany'](db['ChatMessage'],{'as':'Messages'});db[_0xed0b('0x57')][_0xed0b('0x111')](db['CmList'],{'as':'List','foreignKey':_0xed0b('0x13f')});db['ChatWebsite'][_0xed0b('0x111')](db[_0xed0b('0x75')],{'as':_0xed0b('0x75'),'foreignKey':_0xed0b('0x137')});db[_0xed0b('0x57')]['belongsToMany'](db[_0xed0b('0x12')],{'as':'Agents','through':_0xed0b('0xfc')});db[_0xed0b('0x59')][_0xed0b('0x111')](db[_0xed0b('0x50')],{});db[_0xed0b('0x59')][_0xed0b('0x111')](db['CmList'],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f')});db[_0xed0b('0x59')][_0xed0b('0x111')](db['CmContact'],{'as':'Contact','foreignKey':_0xed0b('0x121')});db[_0xed0b('0x59')]['belongsTo'](db['OpenchannelInteraction'],{});db[_0xed0b('0x59')][_0xed0b('0x111')](db[_0xed0b('0x55')],{});db['OpenchannelQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x12')],{});db['OpenchannelQueueReport']['belongsTo'](db[_0xed0b('0x56')],{});db[_0xed0b('0x5b')][_0xed0b('0x111')](db['User'],{'as':_0xed0b('0x151'),'foreignKey':_0xed0b('0xdc'),'onDelete':_0xed0b('0x136')});db[_0xed0b('0x5b')][_0xed0b('0x111')](db[_0xed0b('0x5f')],{'as':_0xed0b('0x152'),'foreignKey':_0xed0b('0x153'),'onDelete':_0xed0b('0x136')});db[_0xed0b('0x5b')][_0xed0b('0x111')](db[_0xed0b('0x57')],{'as':_0xed0b('0x154'),'foreignKey':_0xed0b('0x14f'),'onDelete':'restrict'});db[_0xed0b('0x5b')]['belongsTo'](db[_0xed0b('0x130')],{'onDelete':_0xed0b('0x136'),'foreignKey':_0xed0b('0x139')});db[_0xed0b('0x5c')][_0xed0b('0xdd')](db[_0xed0b('0x155')],{'as':_0xed0b('0x128'),'onDelete':_0xed0b('0xdb'),'foreignKey':'ChatInteractionId'});db[_0xed0b('0x5c')][_0xed0b('0x111')](db['ChatWebsite'],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x14f')});db['ChatInteraction']['belongsTo'](db[_0xed0b('0x64')],{'as':'Contact','foreignKey':'ContactId'});db[_0xed0b('0x5c')]['belongsTo'](db['User'],{'as':'Owner','foreignKey':_0xed0b('0xdc')});db['ChatInteraction']['belongsToMany'](db['Tag'],{'through':_0xed0b('0x156'),'as':_0xed0b('0x131')});db[_0xed0b('0x5c')][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':_0xed0b('0x156'),'as':_0xed0b('0x133')});db[_0xed0b('0x5c')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':'Users','through':'user_has_chat_interactions','foreignKey':'ChatInteractionId'});db[_0xed0b('0x155')][_0xed0b('0x111')](db['User'],{'onDelete':'cascade','as':_0xed0b('0x12')});db['ChatMessage'][_0xed0b('0x111')](db[_0xed0b('0x64')],{'onDelete':_0xed0b('0xdb'),'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db['ChatMessage'][_0xed0b('0x111')](db['ChatInteraction'],{'onDelete':_0xed0b('0xdb'),'as':_0xed0b('0x13d'),'foreignKey':_0xed0b('0x157')});db[_0xed0b('0x155')][_0xed0b('0x111')](db[_0xed0b('0xcc')],{'as':'Attachment','foreignKey':_0xed0b('0x13e')});db[_0xed0b('0x155')][_0xed0b('0x111')](db[_0xed0b('0x57')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x14f')});db[_0xed0b('0x5e')]['belongsTo'](db[_0xed0b('0x64')],{'onDelete':_0xed0b('0xdb'),'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0x5e')]['belongsTo'](db[_0xed0b('0x57')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x14f')});db['ChatQueue']['belongsToMany'](db['User'],{'as':_0xed0b('0x116'),'through':_0xed0b('0x2a'),'hooks':!![]});db[_0xed0b('0x5f')]['belongsToMany'](db['Team'],{'through':'team_has_chat_queues','as':'Teams'});db[_0xed0b('0xe8')][_0xed0b('0xdd')](db['ChatInternalMessage'],{'as':_0xed0b('0x128'),'foreignKey':_0xed0b('0x158'),'onDelete':'cascade'});db['ChatGroup'][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':'Members','through':'chat_group_has_users'});db[_0xed0b('0x61')][_0xed0b('0x111')](db[_0xed0b('0x57')],{'as':_0xed0b('0x154'),'foreignKey':_0xed0b('0x14f')});db[_0xed0b('0x63')][_0xed0b('0xdd')](db[_0xed0b('0x64')],{'as':_0xed0b('0x159'),'foreignKey':_0xed0b('0x15a')});db[_0xed0b('0x64')][_0xed0b('0xdd')](db[_0xed0b('0x66')],{'as':'Hoppers','foreignKey':'ContactId'});db[_0xed0b('0x64')][_0xed0b('0xdd')](db[_0xed0b('0x10c')],{'as':'HopperFinals','foreignKey':_0xed0b('0x121')});db['CmContact'][_0xed0b('0xdd')](db[_0xed0b('0x68')],{'as':'HopperHistories','foreignKey':_0xed0b('0x121')});db['CmContact'][_0xed0b('0xdd')](db[_0xed0b('0x69')],{'as':_0xed0b('0x69'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0x64')][_0xed0b('0xdd')](db[_0xed0b('0xb8')],{'as':'JscriptySessions','foreignKey':_0xed0b('0x121')});db['CmContact']['hasMany'](db[_0xed0b('0x53')],{'as':_0xed0b('0xf2'),'foreignKey':_0xed0b('0x121'),'onDelete':'restrict'});db[_0xed0b('0x64')][_0xed0b('0xdd')](db[_0xed0b('0x5c')],{'as':_0xed0b('0xe3'),'foreignKey':_0xed0b('0x121'),'onDelete':_0xed0b('0x136')});db[_0xed0b('0x64')][_0xed0b('0xdd')](db['SmsInteraction'],{'as':_0xed0b('0xe4'),'foreignKey':_0xed0b('0x121'),'onDelete':_0xed0b('0x136')});db[_0xed0b('0x64')][_0xed0b('0xdd')](db['FaxInteraction'],{'as':_0xed0b('0xef'),'foreignKey':_0xed0b('0x121'),'onDelete':_0xed0b('0x136')});db[_0xed0b('0x64')][_0xed0b('0xdd')](db[_0xed0b('0x39')],{'as':_0xed0b('0xe6'),'foreignKey':'ContactId','onDelete':_0xed0b('0x136')});db[_0xed0b('0x64')][_0xed0b('0x111')](db[_0xed0b('0x63')],{'as':_0xed0b('0x15b'),'foreignKey':_0xed0b('0x15a')});db['CmContact'][_0xed0b('0x111')](db[_0xed0b('0xec')],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f'),'onDelete':_0xed0b('0xdb')});db['CmContact'][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x134'),'through':_0xed0b('0xeb')});db['CmContact']['belongsToMany'](db['Tag'],{'as':_0xed0b('0x131'),'through':'cm_contact_has_tags'});db['CmContact'][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':'cm_contact_has_tags','as':_0xed0b('0x133')});db[_0xed0b('0x66')][_0xed0b('0x111')](db['CmContact'],{'as':'Contact','foreignKey':'ContactId','onDelete':_0xed0b('0xdb')});db[_0xed0b('0x66')]['belongsTo'](db[_0xed0b('0xec')],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f'),'onDelete':'cascade'});db[_0xed0b('0x66')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'as':_0xed0b('0x151'),'foreignKey':'UserId'});db[_0xed0b('0x66')]['belongsTo'](db[_0xed0b('0x1a')],{'as':'Queue','foreignKey':'VoiceQueueId','onDelete':_0xed0b('0xdb')});db[_0xed0b('0x66')]['belongsTo'](db[_0xed0b('0xc9')],{'as':_0xed0b('0xc9'),'foreignKey':_0xed0b('0x15c'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0x66')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'as':'Owner','foreignKey':_0xed0b('0x15d')});db[_0xed0b('0x10e')][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0x10e')]['belongsTo'](db[_0xed0b('0xec')],{'as':_0xed0b('0x12a'),'foreignKey':_0xed0b('0x13f'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0x10e')][_0xed0b('0x111')](db[_0xed0b('0x1a')],{'as':_0xed0b('0x152'),'foreignKey':_0xed0b('0x10b'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0x10e')][_0xed0b('0x111')](db['Campaign'],{'as':_0xed0b('0xc9'),'foreignKey':_0xed0b('0x15c'),'onDelete':_0xed0b('0xdb')});db[_0xed0b('0x6e')][_0xed0b('0xdd')](db['Condition'],{'as':{'plural':_0xed0b('0x15e'),'singular':'OneAll'},'foreignKey':'AutomationAllId','onDelete':_0xed0b('0xdb'),'hooks':!![]});db[_0xed0b('0x6e')]['hasMany'](db['Condition'],{'as':{'plural':'Any','singular':_0xed0b('0x15f')},'foreignKey':_0xed0b('0x160'),'onDelete':_0xed0b('0xdb'),'hooks':!![]});db[_0xed0b('0x6e')]['hasMany'](db['Action'],{'as':_0xed0b('0x161'),'foreignKey':'AutomationId','onDelete':_0xed0b('0xdb'),'hooks':!![]});db[_0xed0b('0x75')][_0xed0b('0xdd')](db[_0xed0b('0x75')],{'as':_0xed0b('0x162'),'foreignKey':_0xed0b('0x137'),'onDelete':'cascade','hooks':!![],'required':![]});db[_0xed0b('0x75')][_0xed0b('0xdd')](db[_0xed0b('0xdf')],{'as':_0xed0b('0xe0'),'foreignKey':'IntervalId','onDelete':_0xed0b('0x136')});db[_0xed0b('0x75')][_0xed0b('0xdd')](db[_0xed0b('0x3d')],{'as':_0xed0b('0x163'),'foreignKey':_0xed0b('0x137')});db[_0xed0b('0x75')][_0xed0b('0xdd')](db[_0xed0b('0x5b')],{'as':_0xed0b('0x164'),'foreignKey':_0xed0b('0x137')});db[_0xed0b('0x75')][_0xed0b('0xdd')](db[_0xed0b('0x45')],{'as':_0xed0b('0x165'),'foreignKey':_0xed0b('0x137')});db[_0xed0b('0x75')][_0xed0b('0xdd')](db[_0xed0b('0x141')],{'as':_0xed0b('0x166'),'foreignKey':'IntervalId'});db[_0xed0b('0x7c')]['belongsTo'](db[_0xed0b('0xfe')],{});db['Schedule'][_0xed0b('0x111')](db[_0xed0b('0x167')],{'foreignKey':_0xed0b('0x168')});db[_0xed0b('0x7c')][_0xed0b('0x111')](db[_0xed0b('0x169')],{'foreignKey':'CustomReportId'});db[_0xed0b('0x109')][_0xed0b('0xe7')](db[_0xed0b('0x19')],{'as':'Mohs','through':'moh_has_sounds','onDelete':_0xed0b('0x136')});db[_0xed0b('0x130')][_0xed0b('0xe7')](db[_0xed0b('0x64')],{'through':_0xed0b('0x16a')});db[_0xed0b('0x130')][_0xed0b('0xe7')](db[_0xed0b('0x5c')],{'through':_0xed0b('0x156')});db[_0xed0b('0x130')][_0xed0b('0xe7')](db[_0xed0b('0x39')],{'through':_0xed0b('0x132')});db['Tag'][_0xed0b('0xe7')](db['SmsInteraction'],{'through':'sms_interaction_has_tags'});db[_0xed0b('0x130')][_0xed0b('0xe7')](db[_0xed0b('0xe5')],{'through':_0xed0b('0x13c')});db['Tag'][_0xed0b('0xe7')](db[_0xed0b('0x53')],{'through':_0xed0b('0x14d')});db['Trigger']['hasMany'](db[_0xed0b('0x73')],{'as':{'plural':'AllConditions','singular':_0xed0b('0x16b')},'foreignKey':_0xed0b('0x16c'),'onDelete':_0xed0b('0xdb'),'hooks':!![]});db[_0xed0b('0x81')][_0xed0b('0xdd')](db[_0xed0b('0x73')],{'as':{'plural':'AnyConditions','singular':'AnyCondition'},'foreignKey':_0xed0b('0x16d'),'onDelete':'cascade','hooks':!![]});db['Trigger'][_0xed0b('0xdd')](db[_0xed0b('0x16e')],{'as':_0xed0b('0x161'),'foreignKey':_0xed0b('0x16f'),'onDelete':_0xed0b('0xdb'),'hooks':!![]});db[_0xed0b('0x169')][_0xed0b('0xdd')](db[_0xed0b('0x8e')],{'as':_0xed0b('0x170'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x171'),'hooks':!![]});db[_0xed0b('0x167')]['hasMany'](db[_0xed0b('0x8e')],{'as':'Fields','onDelete':'cascade','foreignKey':_0xed0b('0x168')});db['AnalyticMetric'][_0xed0b('0xdd')](db[_0xed0b('0x8e')],{'as':_0xed0b('0x170'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x172')});db[_0xed0b('0x8e')]['belongsTo'](db[_0xed0b('0x8c')],{'foreignKey':_0xed0b('0x172')});db[_0xed0b('0x92')][_0xed0b('0xdd')](db[_0xed0b('0x173')],{'as':'Configurations','onDelete':'cascade','foreignKey':'AccountId'});db[_0xed0b('0x173')][_0xed0b('0xdd')](db[_0xed0b('0x95')],{'as':_0xed0b('0x174'),'onDelete':_0xed0b('0xdb'),'foreignKey':'SubjectId'});db[_0xed0b('0x173')][_0xed0b('0xdd')](db['SalesforceField'],{'as':'Descriptions','onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x173')][_0xed0b('0xdd')](db['SalesforceField'],{'as':_0xed0b('0x170'),'onDelete':_0xed0b('0xdb'),'foreignKey':'FieldId'});db[_0xed0b('0x173')][_0xed0b('0x111')](db[_0xed0b('0x92')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x176')});db[_0xed0b('0x95')][_0xed0b('0xdd')](db[_0xed0b('0x95')],{'as':_0xed0b('0x177'),'foreignKey':_0xed0b('0x178')});db[_0xed0b('0x95')][_0xed0b('0xdd')](db[_0xed0b('0x95')],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x95')][_0xed0b('0xdd')](db[_0xed0b('0x95')],{'as':_0xed0b('0x17a'),'foreignKey':_0xed0b('0x17b')});db[_0xed0b('0x95')]['belongsTo'](db[_0xed0b('0x82')],{'as':'Variable','foreignKey':_0xed0b('0x17c')});db[_0xed0b('0x96')][_0xed0b('0xdd')](db['SugarcrmConfiguration'],{'as':'Configurations','onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x176')});db[_0xed0b('0x98')][_0xed0b('0xdd')](db[_0xed0b('0x99')],{'as':_0xed0b('0x174'),'onDelete':_0xed0b('0xdb'),'foreignKey':'SubjectId'});db[_0xed0b('0x98')]['hasMany'](db[_0xed0b('0x99')],{'as':_0xed0b('0x17d'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x98')][_0xed0b('0xdd')](db['SugarcrmField'],{'as':_0xed0b('0x170'),'onDelete':_0xed0b('0xdb'),'foreignKey':'FieldId'});db['SugarcrmConfiguration']['belongsTo'](db[_0xed0b('0x96')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x176')});db[_0xed0b('0x99')][_0xed0b('0xdd')](db['SugarcrmField'],{'as':_0xed0b('0x177'),'foreignKey':_0xed0b('0x178')});db['SugarcrmField'][_0xed0b('0xdd')](db['SugarcrmField'],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x99')][_0xed0b('0xdd')](db[_0xed0b('0x99')],{'as':'Field','foreignKey':'FieldId'});db[_0xed0b('0x99')][_0xed0b('0x111')](db[_0xed0b('0x82')],{'as':_0xed0b('0x82'),'foreignKey':'VariableId'});db[_0xed0b('0x9a')]['hasMany'](db[_0xed0b('0x17e')],{'as':'Configurations','onDelete':'cascade','foreignKey':'AccountId'});db[_0xed0b('0x17e')]['hasMany'](db[_0xed0b('0x17f')],{'as':_0xed0b('0x174'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x178')});db[_0xed0b('0x17e')][_0xed0b('0xdd')](db[_0xed0b('0x17f')],{'as':_0xed0b('0x17d'),'onDelete':'cascade','foreignKey':'DescriptionId'});db[_0xed0b('0x17e')][_0xed0b('0xdd')](db[_0xed0b('0x17f')],{'as':_0xed0b('0x170'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x17b')});db[_0xed0b('0x17e')][_0xed0b('0x111')](db[_0xed0b('0x9a')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x176')});db[_0xed0b('0x17e')][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':_0xed0b('0x180')});db[_0xed0b('0x17f')][_0xed0b('0xdd')](db['DeskField'],{'as':_0xed0b('0x177'),'foreignKey':'SubjectId'});db[_0xed0b('0x17f')][_0xed0b('0xdd')](db[_0xed0b('0x17f')],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x17f')]['hasMany'](db[_0xed0b('0x17f')],{'as':'Field','foreignKey':_0xed0b('0x17b')});db[_0xed0b('0x17f')]['belongsTo'](db[_0xed0b('0x82')],{'as':_0xed0b('0x82'),'foreignKey':_0xed0b('0x17c')});db[_0xed0b('0x9d')]['hasMany'](db['ZohoConfiguration'],{'as':'Configurations','onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x176')});db['ZohoConfiguration'][_0xed0b('0xdd')](db[_0xed0b('0xa0')],{'as':_0xed0b('0x174'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x178')});db[_0xed0b('0x9e')][_0xed0b('0xdd')](db[_0xed0b('0xa0')],{'as':'Descriptions','onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x175')});db['ZohoConfiguration'][_0xed0b('0xdd')](db[_0xed0b('0xa0')],{'as':_0xed0b('0x170'),'onDelete':'cascade','foreignKey':'FieldId'});db['ZohoConfiguration'][_0xed0b('0x111')](db[_0xed0b('0x9d')],{'as':_0xed0b('0x12e'),'foreignKey':_0xed0b('0x176')});db['ZohoField'][_0xed0b('0xdd')](db['ZohoField'],{'as':'Subject','foreignKey':'SubjectId'});db[_0xed0b('0xa0')][_0xed0b('0xdd')](db[_0xed0b('0xa0')],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0xa0')]['hasMany'](db[_0xed0b('0xa0')],{'as':_0xed0b('0x17a'),'foreignKey':_0xed0b('0x17b')});db[_0xed0b('0xa0')][_0xed0b('0x111')](db[_0xed0b('0x82')],{'as':_0xed0b('0x82'),'foreignKey':'VariableId'});db['ZendeskAccount'][_0xed0b('0xdd')](db[_0xed0b('0xa4')],{'as':_0xed0b('0x181'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x176')});db[_0xed0b('0xa4')][_0xed0b('0xdd')](db[_0xed0b('0xa6')],{'as':'Subjects','foreignKey':_0xed0b('0x178')});db[_0xed0b('0xa4')][_0xed0b('0xdd')](db[_0xed0b('0xa6')],{'as':'Descriptions','foreignKey':_0xed0b('0x175')});db[_0xed0b('0xa4')]['hasMany'](db['ZendeskField'],{'as':_0xed0b('0x170'),'foreignKey':'FieldId'});db['ZendeskConfiguration'][_0xed0b('0x111')](db[_0xed0b('0xa2')],{'as':'Account','foreignKey':_0xed0b('0x176')});db['ZendeskConfiguration'][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':'int_zendesk_configuration_has_tags'});db['ZendeskField'][_0xed0b('0xdd')](db['ZendeskField'],{'as':_0xed0b('0x177'),'foreignKey':_0xed0b('0x178')});db['ZendeskField'][_0xed0b('0xdd')](db[_0xed0b('0xa6')],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db['ZendeskField']['hasMany'](db[_0xed0b('0xa6')],{'as':_0xed0b('0x17a'),'foreignKey':'FieldId'});db['ZendeskField']['belongsTo'](db['Variable'],{'as':_0xed0b('0x82'),'foreignKey':'VariableId'});db[_0xed0b('0xa7')][_0xed0b('0xdd')](db[_0xed0b('0xa9')],{'as':_0xed0b('0x181'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x176')});db[_0xed0b('0xa9')]['hasMany'](db[_0xed0b('0x182')],{'as':'Subjects','onDelete':_0xed0b('0xdb'),'foreignKey':'SubjectId'});db[_0xed0b('0xa9')]['hasMany'](db[_0xed0b('0x182')],{'as':'Descriptions','onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0xa9')][_0xed0b('0xdd')](db[_0xed0b('0x182')],{'as':_0xed0b('0x170'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x17b')});db['FreshdeskConfiguration'][_0xed0b('0x111')](db[_0xed0b('0xa7')],{'as':'Account','foreignKey':_0xed0b('0x176')});db['FreshdeskConfiguration']['belongsToMany'](db['Tag'],{'through':_0xed0b('0x183')});db[_0xed0b('0x182')]['hasMany'](db[_0xed0b('0x182')],{'as':_0xed0b('0x177'),'foreignKey':_0xed0b('0x178')});db[_0xed0b('0x182')]['hasMany'](db['FreshdeskField'],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x182')]['hasMany'](db['FreshdeskField'],{'as':_0xed0b('0x17a'),'foreignKey':_0xed0b('0x17b')});db[_0xed0b('0x182')][_0xed0b('0x111')](db[_0xed0b('0x82')],{'as':_0xed0b('0x82'),'foreignKey':_0xed0b('0x17c')});db[_0xed0b('0xab')][_0xed0b('0xdd')](db[_0xed0b('0x184')],{'as':_0xed0b('0x181'),'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x176')});db['VtigerConfiguration'][_0xed0b('0xdd')](db['VtigerField'],{'as':_0xed0b('0x174'),'foreignKey':_0xed0b('0x178')});db[_0xed0b('0x184')]['hasMany'](db[_0xed0b('0xad')],{'as':_0xed0b('0x17d'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0x184')][_0xed0b('0xdd')](db[_0xed0b('0xad')],{'as':_0xed0b('0x170'),'foreignKey':_0xed0b('0x17b')});db[_0xed0b('0x184')][_0xed0b('0x111')](db[_0xed0b('0xab')],{'as':'Account','foreignKey':_0xed0b('0x176')});db['VtigerConfiguration'][_0xed0b('0xe7')](db[_0xed0b('0x130')],{'through':_0xed0b('0x185')});db[_0xed0b('0xad')]['hasMany'](db[_0xed0b('0xad')],{'as':'Subject','foreignKey':_0xed0b('0x178')});db['VtigerField']['hasMany'](db[_0xed0b('0xad')],{'as':_0xed0b('0x179'),'foreignKey':_0xed0b('0x175')});db[_0xed0b('0xad')][_0xed0b('0xdd')](db[_0xed0b('0xad')],{'as':_0xed0b('0x17a'),'foreignKey':_0xed0b('0x17b')});db[_0xed0b('0xad')]['belongsTo'](db['Variable'],{'as':'Variable','foreignKey':_0xed0b('0x17c')});db['ChatQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x57')],{});db[_0xed0b('0xb1')][_0xed0b('0x111')](db['CmList'],{'as':'List','foreignKey':_0xed0b('0x13f')});db[_0xed0b('0xb1')][_0xed0b('0x111')](db['CmContact'],{'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0xb1')][_0xed0b('0x111')](db[_0xed0b('0x5c')],{});db[_0xed0b('0xb1')]['belongsTo'](db['ChatMessage'],{});db['ChatQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x12')],{});db['ChatQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x5f')],{});db[_0xed0b('0xb3')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'onDelete':_0xed0b('0xdb'),'foreignKey':'FromId'});db[_0xed0b('0xb3')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'onDelete':_0xed0b('0xdb'),'foreignKey':_0xed0b('0x186')});db[_0xed0b('0xb8')][_0xed0b('0xdd')](db[_0xed0b('0x187')],{'foreignKey':_0xed0b('0x188'),'onDelete':_0xed0b('0xdb')});db['JscriptySessionReport'][_0xed0b('0xdd')](db[_0xed0b('0xb5')],{'foreignKey':'SessionId','onDelete':'cascade'});db[_0xed0b('0xba')][_0xed0b('0x111')](db[_0xed0b('0x4c')],{});db['SmsQueueReport'][_0xed0b('0x111')](db['CmList'],{'as':'List','foreignKey':_0xed0b('0x13f')});db['SmsQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x64')],{'as':_0xed0b('0x120'),'foreignKey':_0xed0b('0x121')});db[_0xed0b('0xba')][_0xed0b('0x111')](db[_0xed0b('0x4e')],{});db['SmsQueueReport'][_0xed0b('0x111')](db[_0xed0b('0x143')],{});db[_0xed0b('0xba')][_0xed0b('0x111')](db[_0xed0b('0x12')],{});db[_0xed0b('0xba')][_0xed0b('0x111')](db[_0xed0b('0x146')],{});db['JscriptyProject'][_0xed0b('0xdd')](db[_0xed0b('0xb8')],{'foreignKey':'ProjectId'});db[_0xed0b('0xbf')][_0xed0b('0xdd')](db[_0xed0b('0x187')],{'foreignKey':_0xed0b('0x189')});db[_0xed0b('0xbf')][_0xed0b('0xdd')](db[_0xed0b('0xb5')],{'foreignKey':_0xed0b('0x189')});db[_0xed0b('0x103')][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':'Users','through':_0xed0b('0x105')});db['Team'][_0xed0b('0xe7')](db[_0xed0b('0x12')],{'as':_0xed0b('0x116'),'through':'user_has_teams'});db[_0xed0b('0xc7')]['belongsToMany'](db[_0xed0b('0x1a')],{'through':_0xed0b('0x118'),'as':_0xed0b('0xf3')});db[_0xed0b('0xc7')][_0xed0b('0xe7')](db[_0xed0b('0x36')],{'through':_0xed0b('0x12c'),'as':_0xed0b('0xf4')});db[_0xed0b('0xc7')][_0xed0b('0xe7')](db[_0xed0b('0x5f')],{'through':_0xed0b('0x18a'),'as':'ChatQueues'});db[_0xed0b('0xc7')][_0xed0b('0xe7')](db[_0xed0b('0x49')],{'through':_0xed0b('0x18b'),'as':_0xed0b('0x18c')});db['Team']['belongsToMany'](db[_0xed0b('0x146')],{'through':'team_has_sms_queues','as':_0xed0b('0xf6')});db[_0xed0b('0xc7')][_0xed0b('0xe7')](db[_0xed0b('0x56')],{'through':_0xed0b('0x18d'),'as':_0xed0b('0xf7')});db[_0xed0b('0xc9')][_0xed0b('0xdd')](db[_0xed0b('0x66')],{'as':_0xed0b('0x10a'),'foreignKey':_0xed0b('0x15c')});db[_0xed0b('0xc9')][_0xed0b('0xdd')](db[_0xed0b('0x10c')],{'as':'HopperFinals','foreignKey':_0xed0b('0x15c')});db['Campaign'][_0xed0b('0xdd')](db[_0xed0b('0x68')],{'as':_0xed0b('0x10d'),'foreignKey':_0xed0b('0x15c')});db[_0xed0b('0xc9')][_0xed0b('0xdd')](db[_0xed0b('0x10e')],{'as':'HopperBlacks','foreignKey':_0xed0b('0x15c')});db['Campaign']['belongsTo'](db[_0xed0b('0x112')],{'as':_0xed0b('0x112'),'foreignKey':_0xed0b('0x113')});db[_0xed0b('0xc9')][_0xed0b('0x111')](db[_0xed0b('0x112')],{'as':_0xed0b('0x18e'),'foreignKey':_0xed0b('0x114')});db[_0xed0b('0xc9')][_0xed0b('0x111')](db['Interval'],{'as':'Interval','foreignKey':_0xed0b('0x137')});db['Campaign'][_0xed0b('0x111')](db['SquareProject'],{'as':_0xed0b('0x103'),'foreignKey':_0xed0b('0x18f')});db[_0xed0b('0xc9')][_0xed0b('0xe7')](db[_0xed0b('0xec')],{'as':'Lists','through':_0xed0b('0x190')});db[_0xed0b('0xc9')][_0xed0b('0xe7')](db[_0xed0b('0xec')],{'as':_0xed0b('0x191'),'through':'campaigns_has_cm_blacklists'});db['MailTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x3b')],{});db['MailTransferReport'][_0xed0b('0x111')](db['MailInteraction'],{});db['MailTransferReport'][_0xed0b('0x111')](db['MailAccount'],{'foreignKey':_0xed0b('0x192'),'as':_0xed0b('0x193')});db['MailTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x194'),'as':_0xed0b('0x195')});db[_0xed0b('0xce')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x196'),'as':_0xed0b('0x197')});db[_0xed0b('0xce')]['belongsTo'](db[_0xed0b('0x36')],{'foreignKey':_0xed0b('0x198'),'as':_0xed0b('0x199')});db[_0xed0b('0xce')][_0xed0b('0x111')](db[_0xed0b('0xfe')],{'foreignKey':_0xed0b('0x19a'),'as':_0xed0b('0x19b')});db[_0xed0b('0xd0')][_0xed0b('0x111')](db[_0xed0b('0x155')],{});db['ChatTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x5c')],{});db['ChatTransferReport']['belongsTo'](db['ChatWebsite'],{'foreignKey':'FromChatWebsiteId','as':_0xed0b('0x193')});db[_0xed0b('0xd0')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':'FromUserId','as':_0xed0b('0x195')});db['ChatTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x196'),'as':_0xed0b('0x197')});db['ChatTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x5f')],{'foreignKey':_0xed0b('0x19c'),'as':_0xed0b('0x199')});db[_0xed0b('0xd0')][_0xed0b('0x111')](db[_0xed0b('0x57')],{'foreignKey':'ToChatWebsiteId','as':'ToAccount'});db['FaxTransferReport']['belongsTo'](db[_0xed0b('0x47')],{});db['FaxTransferReport'][_0xed0b('0x111')](db['FaxInteraction'],{});db['FaxTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x44')],{'foreignKey':_0xed0b('0x19d'),'as':'FromAccount'});db[_0xed0b('0xd2')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x194'),'as':'FromAgent'});db[_0xed0b('0xd2')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x196'),'as':_0xed0b('0x197')});db[_0xed0b('0xd2')]['belongsTo'](db[_0xed0b('0x49')],{'foreignKey':_0xed0b('0x19e'),'as':'ToQueue'});db[_0xed0b('0xd2')][_0xed0b('0x111')](db[_0xed0b('0x44')],{'foreignKey':_0xed0b('0x19f'),'as':_0xed0b('0x19b')});db[_0xed0b('0xd4')][_0xed0b('0x111')](db[_0xed0b('0x55')],{});db[_0xed0b('0xd4')][_0xed0b('0x111')](db[_0xed0b('0x53')],{});db['OpenchannelTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x50')],{'foreignKey':_0xed0b('0x1a0'),'as':'FromAccount'});db['OpenchannelTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x194'),'as':_0xed0b('0x195')});db[_0xed0b('0xd4')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x196'),'as':_0xed0b('0x197')});db['OpenchannelTransferReport']['belongsTo'](db[_0xed0b('0x56')],{'foreignKey':'ToOpenchannelQueueId','as':_0xed0b('0x199')});db['OpenchannelTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x50')],{'foreignKey':'ToOpenchannelAccountId','as':'ToAccount'});db[_0xed0b('0x1a1')][_0xed0b('0x111')](db['SmsMessage'],{});db[_0xed0b('0x1a1')][_0xed0b('0x111')](db[_0xed0b('0x4e')],{});db['SmsTransferReport'][_0xed0b('0x111')](db[_0xed0b('0x4c')],{'foreignKey':_0xed0b('0x1a2'),'as':'FromAccount'});db[_0xed0b('0x1a1')]['belongsTo'](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x194'),'as':_0xed0b('0x195')});db[_0xed0b('0x1a1')][_0xed0b('0x111')](db[_0xed0b('0x12')],{'foreignKey':_0xed0b('0x196'),'as':_0xed0b('0x197')});db[_0xed0b('0x1a1')][_0xed0b('0x111')](db['SmsQueue'],{'foreignKey':_0xed0b('0x1a3'),'as':_0xed0b('0x199')});db[_0xed0b('0x1a1')][_0xed0b('0x111')](db['SmsAccount'],{'foreignKey':_0xed0b('0x1a4'),'as':'ToAccount'});db[_0xed0b('0xec')][_0xed0b('0xdd')](db['Disposition'],{'as':_0xed0b('0x126'),'foreignKey':_0xed0b('0x13f')});db[_0xed0b('0xec')]['hasMany'](db[_0xed0b('0x6b')],{'as':_0xed0b('0x1a5'),'foreignKey':_0xed0b('0x13f')});db['CmList'][_0xed0b('0xdd')](db['CmContact'],{'as':'Contacts','onDelete':_0xed0b('0xdb'),'foreignKey':'ListId'});db[_0xed0b('0xec')][_0xed0b('0xdd')](db[_0xed0b('0x10c')],{'as':_0xed0b('0xe1'),'foreignKey':'ListId'});db[_0xed0b('0xec')]['hasMany'](db[_0xed0b('0x68')],{'as':_0xed0b('0xe2'),'foreignKey':'ListId'});db[_0xed0b('0xec')][_0xed0b('0xdd')](db['ReportAgentPreview'],{'as':'ReportAgentPreview','foreignKey':_0xed0b('0x13f')});db[_0xed0b('0xec')][_0xed0b('0xe7')](db[_0xed0b('0x1a')],{'as':'Queues','through':_0xed0b('0x115')});db[_0xed0b('0xec')][_0xed0b('0xe7')](db['User'],{'as':_0xed0b('0x116'),'through':'cm_user_has_lists'});db[_0xed0b('0xd7')][_0xed0b('0xdd')](db[_0xed0b('0xdf')],{'as':_0xed0b('0xe0'),'onDelete':_0xed0b('0x136')});db['VoicePrefix'][_0xed0b('0xe7')](db['User'],{'as':_0xed0b('0x116'),'through':'user_has_voice_prefixes'});module[_0xed0b('0x1a6')]={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6bc=['./api/openchannelAccount','/api/openchannel/applications','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/messages','./api/openchannelMessage','./api/openchannelQueue','/api/chat/websites','/api/openchannel/reports/queue','./api/openchannelQueueReport','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','./api/chatOfflineMessage','/api/chat/queues','./api/chatQueue','./api/chatGroup','./api/chatProactiveAction','/api/cm/companies','/api/cm/contacts','./api/cmContact','./api/cmHopper','./api/cmHopperBlack','/api/cm/hopper_history','./api/cmCustomField','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','./api/disposition','./api/condition','./api/interval','/api/pauses','./api/pause','/api/cdr','./api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/sounds','./api/sound','/api/tags','/api/templates','./api/template','/api/triggers','./api/trigger','./api/variable','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','./api/analyticCustomReport','/api/analytics/default_reports','./api/analyticDefaultReport','/api/analytics/extracted_reports','./api/analyticExtractedReport','/api/analytics/metrics','./api/analyticMetric','/api/analytics/field_reports','/api/analytics/tree_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','/api/integrations/salesforce/fields','./api/intSalesforceField','/api/integrations/sugarcrm/accounts','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','./api/intSugarcrmConfiguration','/api/integrations/sugarcrm/fields','./api/intSugarcrmField','/api/integrations/desk/accounts','./api/intDeskAccount','./api/intDeskConfiguration','./api/intDeskField','/api/integrations/zoho/accounts','/api/integrations/zoho/configurations','./api/intZohoConfiguration','./api/intZohoField','/api/integrations/zendesk/accounts','./api/intZendeskAccount','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','/api/integrations/freshdesk/accounts','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/vtiger/accounts','/api/integrations/vtiger/configurations','/api/integrations/vtiger/fields','./api/intVtigerField','./api/network','/api/chat/reports/queue','./api/chatQueueReport','/api/chat/internal/messages','./api/chatInternalMessage','/api/jscripty/answers/reports','/api/jscripty/sessions/reports','./api/jscriptySessionReport','/api/sms/reports/queue','./api/smsQueueReport','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','/api/settings','./api/setting','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareProject','/api/square/recordings','/api/square/messages','./api/team','/api/license','./api/license','/api/campaigns','./api/campaign','/api/migrations','./api/migration','/api/attachments','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','/api/fax/reports/transfer','/api/openchannel/reports/transfer','/api/sms/reports/transfer','/api/cm/lists','./api/cmList','/api/voice/prefixes','./api/voicePrefix','./api/authLocal','/api/rpc','./api/rpc','./api/version','./api/system','./api/pm2','/apidoc','static','join','root','/www','/demo','1.0.10','/server/files/plugins','route','get','sendFile','resolve','appPath','/index.html','express-winston','./errors','api','./config/logger','auth','default','use','format','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','method','headers','connection','remoteAddress','url','statusCode','responseTime','user','name','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','body','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','x-forwarded-for','device','other','agent_name','test','./api/user','/api/voice/chanspy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','/api/voice/queues','/api/voice/recordings','./api/voiceRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','/api/voice/calls/reports','./api/voiceCallReport','./api/voiceDialReport','/api/voice/agents/reports','/api/voice/queues/reports','/api/members/reports','/api/trunks','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','/api/mail/queues','/api/mail/substatuses','./api/mailSubstatus','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','./api/mailMessage','/api/mail/applications','./api/mailApplication','/api/mail/reports/queue','./api/mailQueueReport','/api/dashboards','./api/dashboard','/api/dashboards/items','/api/fax/accounts','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','./api/faxMessage','/api/fax/queues','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','./api/smsAccount','/api/sms/applications','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','./api/smsMessage','./api/smsQueue','/api/openchannel/accounts'];(function(_0x21f6fc,_0x435106){var _0x1d5980=function(_0x19c473){while(--_0x19c473){_0x21f6fc['push'](_0x21f6fc['shift']());}};_0x1d5980(++_0x435106);}(_0xa6bc,0x18e));var _0xca6b=function(_0x31d03c,_0x158cef){_0x31d03c=_0x31d03c-0x0;var _0x420e61=_0xa6bc[_0x31d03c];return _0x420e61;};'use strict';var path=require('path');var express=require('express');var ewinston=require(_0xca6b('0x0'));var util=require('util');var errors=require(_0xca6b('0x1'));var config=require('./config/environment');var logger=require('./config/logger')(_0xca6b('0x2'));var authLogger=require(_0xca6b('0x3'))(_0xca6b('0x4'));exports[_0xca6b('0x5')]=function(_0x51dfaa){_0x51dfaa[_0xca6b('0x6')](ewinston['logger']({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x3a20f9,_0x8678ef){return util[_0xca6b('0x7')](_0xca6b('0x8'),_0x3a20f9[_0xca6b('0x9')],_0x3a20f9[_0xca6b('0xa')]['x-forwarded-for']?_0x3a20f9['headers']['x-forwarded-for']:_0x3a20f9[_0xca6b('0xb')][_0xca6b('0xc')]||_0x3a20f9['ip'],_0x3a20f9[_0xca6b('0xd')],_0x8678ef[_0xca6b('0xe')],_0x8678ef[_0xca6b('0xf')],_0x3a20f9['user']?_0x3a20f9[_0xca6b('0x10')]['id']:null,_0x3a20f9[_0xca6b('0x10')]?_0x3a20f9[_0xca6b('0x10')][_0xca6b('0x11')]:null,_0x3a20f9[_0xca6b('0x10')]?_0x3a20f9[_0xca6b('0x10')]['role']:null);}}));_0x51dfaa[_0xca6b('0x6')](ewinston[_0xca6b('0x12')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x1fea9b,_0x4b4b4c){var _0x343aaa=_0xca6b('0x13');if(_0x1fea9b[_0xca6b('0x14')]&&_0x1fea9b[_0xca6b('0x14')]['device']&&_0x1fea9b[_0xca6b('0x14')][_0xca6b('0x15')]){_0x343aaa=_0xca6b('0x16');}return util[_0xca6b('0x7')](_0x343aaa,_0x1fea9b['method'],_0x1fea9b[_0xca6b('0xa')][_0xca6b('0x17')]?_0x1fea9b[_0xca6b('0xa')]['x-forwarded-for']:_0x1fea9b[_0xca6b('0xb')][_0xca6b('0xc')]||_0x1fea9b['ip'],_0x1fea9b[_0xca6b('0xd')],_0x4b4b4c[_0xca6b('0xe')],_0x4b4b4c[_0xca6b('0xf')],_0x1fea9b[_0xca6b('0x10')]?_0x1fea9b[_0xca6b('0x10')]['id']:null,_0x1fea9b[_0xca6b('0x10')]?_0x1fea9b[_0xca6b('0x10')][_0xca6b('0x11')]:null,_0x1fea9b[_0xca6b('0x10')]?_0x1fea9b[_0xca6b('0x10')]['role']:null,_0x1fea9b[_0xca6b('0x14')]&&_0x1fea9b[_0xca6b('0x14')]['device']?_0x1fea9b['body'][_0xca6b('0x18')]:_0xca6b('0x19'),_0x1fea9b[_0xca6b('0x14')]&&_0x1fea9b['body']['agent_id']?_0x1fea9b['body'][_0xca6b('0x15')]:'',_0x1fea9b[_0xca6b('0x14')]&&_0x1fea9b[_0xca6b('0x14')][_0xca6b('0x1a')]?_0x1fea9b[_0xca6b('0x14')][_0xca6b('0x1a')]:'');},'ignoreRoute':function(_0x484c0e){var _0xd3fb6e=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0xd3fb6e[_0xca6b('0x1b')](_0x484c0e[_0xca6b('0xd')]);}}));_0x51dfaa[_0xca6b('0x6')]('/api/users',require(_0xca6b('0x1c')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x1d'),require('./api/voiceChanSpy'));_0x51dfaa['use'](_0xca6b('0x1e'),require(_0xca6b('0x1f')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x20'),require(_0xca6b('0x21')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x22'),require(_0xca6b('0x23')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x24'),require('./api/voiceQueue'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x25'),require(_0xca6b('0x26')));_0x51dfaa['use'](_0xca6b('0x27'),require(_0xca6b('0x28')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x29'),require('./api/voiceMailMessage'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x2a'),require(_0xca6b('0x2b')));_0x51dfaa[_0xca6b('0x6')]('/api/voice/dials/reports',require(_0xca6b('0x2c')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x2d'),require('./api/voiceAgentReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x2e'),require('./api/voiceQueueReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x2f'),require('./api/memberReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x30'),require(_0xca6b('0x31')));_0x51dfaa['use'](_0xca6b('0x32'),require(_0xca6b('0x33')));_0x51dfaa[_0xca6b('0x6')]('/api/mail/out_servers',require(_0xca6b('0x34')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x35'),require(_0xca6b('0x36')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x37'),require('./api/mailQueue'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x38'),require(_0xca6b('0x39')));_0x51dfaa['use'](_0xca6b('0x3a'),require(_0xca6b('0x3b')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x3c'),require(_0xca6b('0x3d')));_0x51dfaa['use'](_0xca6b('0x3e'),require(_0xca6b('0x3f')));_0x51dfaa['use'](_0xca6b('0x40'),require(_0xca6b('0x41')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x42'),require(_0xca6b('0x43')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x44'),require('./api/dashboardItem'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x45'),require(_0xca6b('0x46')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x47'),require(_0xca6b('0x48')));_0x51dfaa['use'](_0xca6b('0x49'),require(_0xca6b('0x4a')));_0x51dfaa['use']('/api/fax/messages',require(_0xca6b('0x4b')));_0x51dfaa['use'](_0xca6b('0x4c'),require(_0xca6b('0x4d')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x4e'),require(_0xca6b('0x4f')));_0x51dfaa[_0xca6b('0x6')]('/api/sms/accounts',require(_0xca6b('0x50')));_0x51dfaa['use'](_0xca6b('0x51'),require('./api/smsApplication'));_0x51dfaa['use'](_0xca6b('0x52'),require(_0xca6b('0x53')));_0x51dfaa['use'](_0xca6b('0x54'),require(_0xca6b('0x55')));_0x51dfaa[_0xca6b('0x6')]('/api/sms/queues',require(_0xca6b('0x56')));_0x51dfaa['use'](_0xca6b('0x57'),require(_0xca6b('0x58')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x59'),require(_0xca6b('0x5a')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x5b'),require(_0xca6b('0x5c')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x5d'),require(_0xca6b('0x5e')));_0x51dfaa[_0xca6b('0x6')]('/api/openchannel/queues',require(_0xca6b('0x5f')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x60'),require('./api/chatWebsite'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x61'),require(_0xca6b('0x62')));_0x51dfaa[_0xca6b('0x6')]('/api/chat/applications',require(_0xca6b('0x63')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x64'),require(_0xca6b('0x65')));_0x51dfaa[_0xca6b('0x6')]('/api/chat/messages',require('./api/chatMessage'));_0x51dfaa[_0xca6b('0x6')]('/api/chat/offline_messages',require(_0xca6b('0x66')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x67'),require(_0xca6b('0x68')));_0x51dfaa['use']('/api/chat/groups',require(_0xca6b('0x69')));_0x51dfaa[_0xca6b('0x6')]('/api/chat/proactive_actions',require(_0xca6b('0x6a')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x6b'),require('./api/cmCompany'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x6c'),require(_0xca6b('0x6d')));_0x51dfaa[_0xca6b('0x6')]('/api/cm/hopper',require(_0xca6b('0x6e')));_0x51dfaa['use']('/api/cm/hopper_black',require(_0xca6b('0x6f')));_0x51dfaa[_0xca6b('0x6')]('/api/cm/hopper_final',require('./api/cmHopperFinal'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x70'),require('./api/cmHopperHistory'));_0x51dfaa[_0xca6b('0x6')]('/api/cm/custom_fields',require(_0xca6b('0x71')));_0x51dfaa[_0xca6b('0x6')]('/api/actions',require('./api/action'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x72'),require(_0xca6b('0x73')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x74'),require(_0xca6b('0x75')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x76'),require(_0xca6b('0x77')));_0x51dfaa[_0xca6b('0x6')]('/api/conditions',require(_0xca6b('0x78')));_0x51dfaa['use']('/api/intervals',require(_0xca6b('0x79')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x7a'),require(_0xca6b('0x7b')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x7c'),require(_0xca6b('0x7d')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x7e'),require(_0xca6b('0x7f')));_0x51dfaa[_0xca6b('0x6')]('/api/schedules',require('./api/schedule'));_0x51dfaa['use'](_0xca6b('0x80'),require(_0xca6b('0x81')));_0x51dfaa['use'](_0xca6b('0x82'),require('./api/tag'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x83'),require(_0xca6b('0x84')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x85'),require(_0xca6b('0x86')));_0x51dfaa[_0xca6b('0x6')]('/api/variables',require(_0xca6b('0x87')));_0x51dfaa[_0xca6b('0x6')]('/api/integrations',require(_0xca6b('0x88')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x89'),require(_0xca6b('0x8a')));_0x51dfaa['use'](_0xca6b('0x8b'),require(_0xca6b('0x8c')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x8d'),require(_0xca6b('0x8e')));_0x51dfaa['use'](_0xca6b('0x8f'),require(_0xca6b('0x90')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x91'),require(_0xca6b('0x92')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x93'),require('./api/analyticFieldReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x94'),require(_0xca6b('0x95')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x96'),require(_0xca6b('0x97')));_0x51dfaa['use'](_0xca6b('0x98'),require('./api/intSalesforceConfiguration'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x99'),require(_0xca6b('0x9a')));_0x51dfaa['use'](_0xca6b('0x9b'),require(_0xca6b('0x9c')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x9d'),require(_0xca6b('0x9e')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0x9f'),require(_0xca6b('0xa0')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xa1'),require(_0xca6b('0xa2')));_0x51dfaa['use']('/api/integrations/desk/configurations',require(_0xca6b('0xa3')));_0x51dfaa['use']('/api/integrations/desk/fields',require(_0xca6b('0xa4')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xa5'),require('./api/intZohoAccount'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xa6'),require(_0xca6b('0xa7')));_0x51dfaa[_0xca6b('0x6')]('/api/integrations/zoho/fields',require(_0xca6b('0xa8')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xa9'),require(_0xca6b('0xaa')));_0x51dfaa[_0xca6b('0x6')]('/api/integrations/zendesk/configurations',require(_0xca6b('0xab')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xac'),require('./api/intZendeskField'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xad'),require(_0xca6b('0xae')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xaf'),require(_0xca6b('0xb0')));_0x51dfaa[_0xca6b('0x6')]('/api/integrations/freshdesk/fields',require('./api/intFreshdeskField'));_0x51dfaa['use'](_0xca6b('0xb1'),require('./api/intVtigerAccount'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xb2'),require('./api/intVtigerConfiguration'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xb3'),require(_0xca6b('0xb4')));_0x51dfaa[_0xca6b('0x6')]('/api/networks',require(_0xca6b('0xb5')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xb6'),require(_0xca6b('0xb7')));_0x51dfaa['use'](_0xca6b('0xb8'),require(_0xca6b('0xb9')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xba'),require('./api/jscriptyAnswerReport'));_0x51dfaa[_0xca6b('0x6')]('/api/jscripty/questions/reports',require('./api/jscriptyQuestionReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xbb'),require(_0xca6b('0xbc')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xbd'),require(_0xca6b('0xbe')));_0x51dfaa['use']('/api/square/reports',require(_0xca6b('0xbf')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xc0'),require(_0xca6b('0xc1')));_0x51dfaa['use'](_0xca6b('0xc2'),require('./api/jscriptyProject'));_0x51dfaa['use'](_0xca6b('0xc3'),require(_0xca6b('0xc4')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xc5'),require(_0xca6b('0xc6')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xc7'),require(_0xca6b('0xc8')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xc9'),require('./api/squareRecording'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xca'),require('./api/squareMessage'));_0x51dfaa[_0xca6b('0x6')]('/api/teams',require(_0xca6b('0xcb')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xcc'),require(_0xca6b('0xcd')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xce'),require(_0xca6b('0xcf')));_0x51dfaa['use'](_0xca6b('0xd0'),require(_0xca6b('0xd1')));_0x51dfaa['use'](_0xca6b('0xd2'),require('./api/attachment'));_0x51dfaa[_0xca6b('0x6')]('/api/plugins',require(_0xca6b('0xd3')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xd4'),require(_0xca6b('0xd5')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xd6'),require(_0xca6b('0xd7')));_0x51dfaa['use'](_0xca6b('0xd8'),require('./api/faxTransferReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xd9'),require('./api/openchannelTransferReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xda'),require('./api/smsTransferReport'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xdb'),require(_0xca6b('0xdc')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xdd'),require(_0xca6b('0xde')));_0x51dfaa[_0xca6b('0x6')]('/api/auth/local',require(_0xca6b('0xdf')));_0x51dfaa['use']('/api/auth/google',require('./api/authGoogle'));_0x51dfaa[_0xca6b('0x6')]('/api/jira',require('./api/jira'));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xe0'),require(_0xca6b('0xe1')));_0x51dfaa[_0xca6b('0x6')]('/api/version',require(_0xca6b('0xe2')));_0x51dfaa['use']('/api/system',require(_0xca6b('0xe3')));_0x51dfaa['use']('/api/pm2',require(_0xca6b('0xe4')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xe5'),express[_0xca6b('0xe6')](path[_0xca6b('0xe7')](config[_0xca6b('0xe8')],'/apidoc')));_0x51dfaa[_0xca6b('0x6')](_0xca6b('0xe9'),express[_0xca6b('0xe6')](path['join'](config['root'],'/www')));_0x51dfaa['use']('/demo',express['static'](path[_0xca6b('0xe7')](config[_0xca6b('0xe8')],_0xca6b('0xea'))));_0x51dfaa[_0xca6b('0x6')]('/snippet',express[_0xca6b('0xe6')](path[_0xca6b('0xe7')](config[_0xca6b('0xe8')],'snippet',_0xca6b('0xeb'))));_0x51dfaa[_0xca6b('0x6')]('/plugins',express[_0xca6b('0xe6')](path[_0xca6b('0xe7')](config[_0xca6b('0xe8')],_0xca6b('0xec'))));_0x51dfaa[_0xca6b('0xed')]('/:url(api|auth|components|app|bower_components|assets)/*')['get'](errors[0x194]);_0x51dfaa[_0xca6b('0xed')]('/*')[_0xca6b('0xee')](function(_0x473815,_0x1f2411){_0x1f2411[_0xca6b('0xef')](path[_0xca6b('0xf0')](_0x51dfaa[_0xca6b('0xee')](_0xca6b('0xf1'))+_0xca6b('0xf2')));});};
\ No newline at end of file
+var _0x304c=['/api/chat/proactive_actions','/api/cm/companies','./api/cmCompany','./api/cmContact','/api/cm/hopper','/api/cm/hopper_black','./api/cmHopperBlack','/api/cm/hopper_final','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','./api/cmCustomField','/api/actions','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/disposition','/api/conditions','./api/condition','/api/intervals','./api/interval','./api/pause','/api/cdr','./api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','./api/sound','/api/tags','./api/tag','./api/template','./api/trigger','/api/variables','./api/variable','/api/integrations','./api/integration','/api/analytics/custom_reports','/api/analytics/default_reports','/api/analytics/extracted_reports','./api/analyticExtractedReport','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceConfiguration','./api/intSalesforceField','/api/integrations/sugarcrm/accounts','./api/intSugarcrmConfiguration','/api/integrations/sugarcrm/fields','./api/intSugarcrmField','/api/integrations/desk/accounts','./api/intDeskAccount','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zendesk/accounts','./api/intZendeskAccount','/api/integrations/zendesk/configurations','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','/api/integrations/freshdesk/accounts','./api/intFreshdeskAccount','/api/integrations/freshdesk/fields','./api/intFreshdeskField','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','./api/network','/api/chat/reports/queue','./api/chatQueueReport','./api/chatInternalMessage','/api/jscripty/questions/reports','./api/jscriptyQuestionReport','/api/jscripty/sessions/reports','./api/jscriptySessionReport','/api/sms/reports/queue','./api/smsQueueReport','/api/square/reports','./api/squareReport','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','./api/setting','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareProject','/api/square/recordings','./api/squareRecording','/api/square/messages','./api/team','/api/license','./api/license','/api/campaigns','/api/migrations','/api/attachments','./api/attachment','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','/api/cm/lists','./api/cmList','/api/voice/prefixes','/api/auth/local','./api/authLocal','/api/auth/google','./api/authGoogle','/api/jira','/api/rpc','./api/rpc','/api/version','./api/version','/api/system','./api/pm2','/apidoc','static','join','root','/www','/demo','snippet','1.0.10','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','get','sendFile','resolve','appPath','/index.html','path','express','express-winston','util','./errors','./config/logger','default','use','logger','format','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','method','headers','x-forwarded-for','connection','url','statusCode','responseTime','user','name','role','body','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','remoteAddress','other','agent_name','test','/api/users','/api/voice/chanspy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','/api/voice/queues','./api/voiceQueue','/api/voice/recordings','/api/voice/mails','./api/voiceMail','./api/voiceMailMessage','/api/voice/dials/reports','./api/voiceDialReport','./api/voiceAgentReport','/api/voice/queues/reports','./api/voiceQueueReport','/api/trunks','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','./api/mailServerOut','./api/mailAccount','/api/mail/queues','./api/mailQueue','/api/mail/substatuses','./api/mailSubstatus','./api/mailInteraction','/api/mail/messages','./api/mailMessage','/api/mail/applications','./api/mailApplication','/api/mail/reports/queue','./api/mailQueueReport','/api/dashboards/items','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxMessage','/api/fax/queues','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','./api/smsAccount','/api/sms/applications','./api/smsApplication','/api/sms/messages','./api/smsMessage','/api/sms/queues','./api/smsQueue','/api/openchannel/accounts','/api/openchannel/applications','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/messages','./api/openchannelQueue','/api/chat/websites','./api/chatWebsite','/api/openchannel/reports/queue','./api/openchannelQueueReport','/api/chat/applications','/api/chat/interactions','./api/chatInteraction','/api/chat/messages','/api/chat/offline_messages','./api/chatOfflineMessage','/api/chat/queues','./api/chatQueue','./api/chatGroup'];(function(_0x50a33a,_0x35bf3a){var _0x2e16ca=function(_0x1f2691){while(--_0x1f2691){_0x50a33a['push'](_0x50a33a['shift']());}};_0x2e16ca(++_0x35bf3a);}(_0x304c,0x92));var _0xc304=function(_0x1dc55b,_0x29eced){_0x1dc55b=_0x1dc55b-0x0;var _0x439aa0=_0x304c[_0x1dc55b];return _0x439aa0;};'use strict';var path=require(_0xc304('0x0'));var express=require(_0xc304('0x1'));var ewinston=require(_0xc304('0x2'));var util=require(_0xc304('0x3'));var errors=require(_0xc304('0x4'));var config=require('./config/environment');var logger=require(_0xc304('0x5'))('api');var authLogger=require(_0xc304('0x5'))('auth');exports[_0xc304('0x6')]=function(_0x585d7d){_0x585d7d[_0xc304('0x7')](ewinston[_0xc304('0x8')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x3f9df3,_0x21c4c8){return util[_0xc304('0x9')](_0xc304('0xa'),_0x3f9df3[_0xc304('0xb')],_0x3f9df3[_0xc304('0xc')][_0xc304('0xd')]?_0x3f9df3[_0xc304('0xc')][_0xc304('0xd')]:_0x3f9df3[_0xc304('0xe')]['remoteAddress']||_0x3f9df3['ip'],_0x3f9df3[_0xc304('0xf')],_0x21c4c8[_0xc304('0x10')],_0x21c4c8[_0xc304('0x11')],_0x3f9df3[_0xc304('0x12')]?_0x3f9df3[_0xc304('0x12')]['id']:null,_0x3f9df3[_0xc304('0x12')]?_0x3f9df3[_0xc304('0x12')][_0xc304('0x13')]:null,_0x3f9df3[_0xc304('0x12')]?_0x3f9df3[_0xc304('0x12')][_0xc304('0x14')]:null);}}));_0x585d7d['use'](ewinston[_0xc304('0x8')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x4cb480,_0x1e1ad1){var _0x416a2b='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x4cb480[_0xc304('0x15')]&&_0x4cb480[_0xc304('0x15')]['device']&&_0x4cb480[_0xc304('0x15')][_0xc304('0x16')]){_0x416a2b=_0xc304('0x17');}return util[_0xc304('0x9')](_0x416a2b,_0x4cb480[_0xc304('0xb')],_0x4cb480[_0xc304('0xc')][_0xc304('0xd')]?_0x4cb480[_0xc304('0xc')][_0xc304('0xd')]:_0x4cb480[_0xc304('0xe')][_0xc304('0x18')]||_0x4cb480['ip'],_0x4cb480['url'],_0x1e1ad1[_0xc304('0x10')],_0x1e1ad1[_0xc304('0x11')],_0x4cb480[_0xc304('0x12')]?_0x4cb480[_0xc304('0x12')]['id']:null,_0x4cb480['user']?_0x4cb480[_0xc304('0x12')][_0xc304('0x13')]:null,_0x4cb480[_0xc304('0x12')]?_0x4cb480[_0xc304('0x12')][_0xc304('0x14')]:null,_0x4cb480['body']&&_0x4cb480['body']['device']?_0x4cb480[_0xc304('0x15')]['device']:_0xc304('0x19'),_0x4cb480[_0xc304('0x15')]&&_0x4cb480[_0xc304('0x15')]['agent_id']?_0x4cb480[_0xc304('0x15')][_0xc304('0x16')]:'',_0x4cb480[_0xc304('0x15')]&&_0x4cb480[_0xc304('0x15')][_0xc304('0x1a')]?_0x4cb480[_0xc304('0x15')]['agent_name']:'');},'ignoreRoute':function(_0x5765d8){var _0x1c3705=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x1c3705[_0xc304('0x1b')](_0x5765d8[_0xc304('0xf')]);}}));_0x585d7d['use'](_0xc304('0x1c'),require('./api/user'));_0x585d7d['use'](_0xc304('0x1d'),require('./api/voiceChanSpy'));_0x585d7d[_0xc304('0x7')](_0xc304('0x1e'),require(_0xc304('0x1f')));_0x585d7d[_0xc304('0x7')](_0xc304('0x20'),require(_0xc304('0x21')));_0x585d7d['use'](_0xc304('0x22'),require(_0xc304('0x23')));_0x585d7d[_0xc304('0x7')](_0xc304('0x24'),require(_0xc304('0x25')));_0x585d7d[_0xc304('0x7')](_0xc304('0x26'),require('./api/voiceRecording'));_0x585d7d[_0xc304('0x7')](_0xc304('0x27'),require(_0xc304('0x28')));_0x585d7d['use']('/api/voice/mails/messages',require(_0xc304('0x29')));_0x585d7d[_0xc304('0x7')]('/api/voice/calls/reports',require('./api/voiceCallReport'));_0x585d7d[_0xc304('0x7')](_0xc304('0x2a'),require(_0xc304('0x2b')));_0x585d7d[_0xc304('0x7')]('/api/voice/agents/reports',require(_0xc304('0x2c')));_0x585d7d[_0xc304('0x7')](_0xc304('0x2d'),require(_0xc304('0x2e')));_0x585d7d['use']('/api/members/reports',require('./api/memberReport'));_0x585d7d[_0xc304('0x7')](_0xc304('0x2f'),require(_0xc304('0x30')));_0x585d7d[_0xc304('0x7')](_0xc304('0x31'),require(_0xc304('0x32')));_0x585d7d['use']('/api/mail/out_servers',require(_0xc304('0x33')));_0x585d7d[_0xc304('0x7')]('/api/mail/accounts',require(_0xc304('0x34')));_0x585d7d[_0xc304('0x7')](_0xc304('0x35'),require(_0xc304('0x36')));_0x585d7d['use'](_0xc304('0x37'),require(_0xc304('0x38')));_0x585d7d[_0xc304('0x7')]('/api/mail/interactions',require(_0xc304('0x39')));_0x585d7d[_0xc304('0x7')](_0xc304('0x3a'),require(_0xc304('0x3b')));_0x585d7d[_0xc304('0x7')](_0xc304('0x3c'),require(_0xc304('0x3d')));_0x585d7d[_0xc304('0x7')](_0xc304('0x3e'),require(_0xc304('0x3f')));_0x585d7d[_0xc304('0x7')]('/api/dashboards',require('./api/dashboard'));_0x585d7d[_0xc304('0x7')](_0xc304('0x40'),require(_0xc304('0x41')));_0x585d7d[_0xc304('0x7')](_0xc304('0x42'),require(_0xc304('0x43')));_0x585d7d[_0xc304('0x7')]('/api/fax/applications',require(_0xc304('0x44')));_0x585d7d[_0xc304('0x7')](_0xc304('0x45'),require(_0xc304('0x46')));_0x585d7d[_0xc304('0x7')](_0xc304('0x47'),require(_0xc304('0x48')));_0x585d7d['use'](_0xc304('0x49'),require(_0xc304('0x4a')));_0x585d7d[_0xc304('0x7')](_0xc304('0x4b'),require(_0xc304('0x4c')));_0x585d7d[_0xc304('0x7')]('/api/sms/accounts',require(_0xc304('0x4d')));_0x585d7d[_0xc304('0x7')](_0xc304('0x4e'),require(_0xc304('0x4f')));_0x585d7d[_0xc304('0x7')]('/api/sms/interactions',require('./api/smsInteraction'));_0x585d7d[_0xc304('0x7')](_0xc304('0x50'),require(_0xc304('0x51')));_0x585d7d[_0xc304('0x7')](_0xc304('0x52'),require(_0xc304('0x53')));_0x585d7d[_0xc304('0x7')](_0xc304('0x54'),require('./api/openchannelAccount'));_0x585d7d[_0xc304('0x7')](_0xc304('0x55'),require('./api/openchannelApplication'));_0x585d7d[_0xc304('0x7')](_0xc304('0x56'),require(_0xc304('0x57')));_0x585d7d[_0xc304('0x7')](_0xc304('0x58'),require('./api/openchannelMessage'));_0x585d7d[_0xc304('0x7')]('/api/openchannel/queues',require(_0xc304('0x59')));_0x585d7d[_0xc304('0x7')](_0xc304('0x5a'),require(_0xc304('0x5b')));_0x585d7d['use'](_0xc304('0x5c'),require(_0xc304('0x5d')));_0x585d7d['use'](_0xc304('0x5e'),require('./api/chatApplication'));_0x585d7d[_0xc304('0x7')](_0xc304('0x5f'),require(_0xc304('0x60')));_0x585d7d['use'](_0xc304('0x61'),require('./api/chatMessage'));_0x585d7d[_0xc304('0x7')](_0xc304('0x62'),require(_0xc304('0x63')));_0x585d7d['use'](_0xc304('0x64'),require(_0xc304('0x65')));_0x585d7d[_0xc304('0x7')]('/api/chat/groups',require(_0xc304('0x66')));_0x585d7d[_0xc304('0x7')](_0xc304('0x67'),require('./api/chatProactiveAction'));_0x585d7d[_0xc304('0x7')](_0xc304('0x68'),require(_0xc304('0x69')));_0x585d7d['use']('/api/cm/contacts',require(_0xc304('0x6a')));_0x585d7d[_0xc304('0x7')](_0xc304('0x6b'),require('./api/cmHopper'));_0x585d7d['use'](_0xc304('0x6c'),require(_0xc304('0x6d')));_0x585d7d[_0xc304('0x7')](_0xc304('0x6e'),require(_0xc304('0x6f')));_0x585d7d[_0xc304('0x7')](_0xc304('0x70'),require(_0xc304('0x71')));_0x585d7d['use']('/api/cm/custom_fields',require(_0xc304('0x72')));_0x585d7d[_0xc304('0x7')](_0xc304('0x73'),require(_0xc304('0x74')));_0x585d7d[_0xc304('0x7')](_0xc304('0x75'),require(_0xc304('0x76')));_0x585d7d[_0xc304('0x7')](_0xc304('0x77'),require('./api/cannedAnswer'));_0x585d7d['use']('/api/dispositions',require(_0xc304('0x78')));_0x585d7d[_0xc304('0x7')](_0xc304('0x79'),require(_0xc304('0x7a')));_0x585d7d[_0xc304('0x7')](_0xc304('0x7b'),require(_0xc304('0x7c')));_0x585d7d[_0xc304('0x7')]('/api/pauses',require(_0xc304('0x7d')));_0x585d7d[_0xc304('0x7')](_0xc304('0x7e'),require(_0xc304('0x7f')));_0x585d7d[_0xc304('0x7')](_0xc304('0x80'),require(_0xc304('0x81')));_0x585d7d['use']('/api/schedules',require('./api/schedule'));_0x585d7d[_0xc304('0x7')]('/api/sounds',require(_0xc304('0x82')));_0x585d7d[_0xc304('0x7')](_0xc304('0x83'),require(_0xc304('0x84')));_0x585d7d[_0xc304('0x7')]('/api/templates',require(_0xc304('0x85')));_0x585d7d[_0xc304('0x7')]('/api/triggers',require(_0xc304('0x86')));_0x585d7d[_0xc304('0x7')](_0xc304('0x87'),require(_0xc304('0x88')));_0x585d7d[_0xc304('0x7')](_0xc304('0x89'),require(_0xc304('0x8a')));_0x585d7d[_0xc304('0x7')]('/api/integrations/reports',require('./api/integrationReport'));_0x585d7d['use'](_0xc304('0x8b'),require('./api/analyticCustomReport'));_0x585d7d[_0xc304('0x7')](_0xc304('0x8c'),require('./api/analyticDefaultReport'));_0x585d7d[_0xc304('0x7')](_0xc304('0x8d'),require(_0xc304('0x8e')));_0x585d7d['use']('/api/analytics/metrics',require(_0xc304('0x8f')));_0x585d7d[_0xc304('0x7')](_0xc304('0x90'),require(_0xc304('0x91')));_0x585d7d['use'](_0xc304('0x92'),require(_0xc304('0x93')));_0x585d7d[_0xc304('0x7')](_0xc304('0x94'),require(_0xc304('0x95')));_0x585d7d[_0xc304('0x7')](_0xc304('0x96'),require(_0xc304('0x97')));_0x585d7d[_0xc304('0x7')]('/api/integrations/salesforce/fields',require(_0xc304('0x98')));_0x585d7d[_0xc304('0x7')](_0xc304('0x99'),require('./api/intSugarcrmAccount'));_0x585d7d['use']('/api/integrations/sugarcrm/configurations',require(_0xc304('0x9a')));_0x585d7d['use'](_0xc304('0x9b'),require(_0xc304('0x9c')));_0x585d7d[_0xc304('0x7')](_0xc304('0x9d'),require(_0xc304('0x9e')));_0x585d7d['use'](_0xc304('0x9f'),require(_0xc304('0xa0')));_0x585d7d[_0xc304('0x7')](_0xc304('0xa1'),require('./api/intDeskField'));_0x585d7d[_0xc304('0x7')]('/api/integrations/zoho/accounts',require('./api/intZohoAccount'));_0x585d7d['use'](_0xc304('0xa2'),require(_0xc304('0xa3')));_0x585d7d[_0xc304('0x7')]('/api/integrations/zoho/fields',require('./api/intZohoField'));_0x585d7d[_0xc304('0x7')](_0xc304('0xa4'),require(_0xc304('0xa5')));_0x585d7d[_0xc304('0x7')](_0xc304('0xa6'),require(_0xc304('0xa7')));_0x585d7d[_0xc304('0x7')](_0xc304('0xa8'),require(_0xc304('0xa9')));_0x585d7d[_0xc304('0x7')](_0xc304('0xaa'),require(_0xc304('0xab')));_0x585d7d[_0xc304('0x7')]('/api/integrations/freshdesk/configurations',require('./api/intFreshdeskConfiguration'));_0x585d7d[_0xc304('0x7')](_0xc304('0xac'),require(_0xc304('0xad')));_0x585d7d[_0xc304('0x7')]('/api/integrations/vtiger/accounts',require('./api/intVtigerAccount'));_0x585d7d[_0xc304('0x7')]('/api/integrations/vtiger/configurations',require(_0xc304('0xae')));_0x585d7d[_0xc304('0x7')](_0xc304('0xaf'),require(_0xc304('0xb0')));_0x585d7d[_0xc304('0x7')]('/api/networks',require(_0xc304('0xb1')));_0x585d7d[_0xc304('0x7')](_0xc304('0xb2'),require(_0xc304('0xb3')));_0x585d7d[_0xc304('0x7')]('/api/chat/internal/messages',require(_0xc304('0xb4')));_0x585d7d[_0xc304('0x7')]('/api/jscripty/answers/reports',require('./api/jscriptyAnswerReport'));_0x585d7d[_0xc304('0x7')](_0xc304('0xb5'),require(_0xc304('0xb6')));_0x585d7d['use'](_0xc304('0xb7'),require(_0xc304('0xb8')));_0x585d7d[_0xc304('0x7')](_0xc304('0xb9'),require(_0xc304('0xba')));_0x585d7d[_0xc304('0x7')](_0xc304('0xbb'),require(_0xc304('0xbc')));_0x585d7d[_0xc304('0x7')]('/api/square/details/reports',require(_0xc304('0xbd')));_0x585d7d[_0xc304('0x7')](_0xc304('0xbe'),require(_0xc304('0xbf')));_0x585d7d[_0xc304('0x7')]('/api/settings',require(_0xc304('0xc0')));_0x585d7d[_0xc304('0x7')](_0xc304('0xc1'),require(_0xc304('0xc2')));_0x585d7d[_0xc304('0x7')](_0xc304('0xc3'),require(_0xc304('0xc4')));_0x585d7d[_0xc304('0x7')](_0xc304('0xc5'),require(_0xc304('0xc6')));_0x585d7d['use'](_0xc304('0xc7'),require('./api/squareMessage'));_0x585d7d[_0xc304('0x7')]('/api/teams',require(_0xc304('0xc8')));_0x585d7d[_0xc304('0x7')](_0xc304('0xc9'),require(_0xc304('0xca')));_0x585d7d['use'](_0xc304('0xcb'),require('./api/campaign'));_0x585d7d[_0xc304('0x7')](_0xc304('0xcc'),require('./api/migration'));_0x585d7d['use'](_0xc304('0xcd'),require(_0xc304('0xce')));_0x585d7d[_0xc304('0x7')]('/api/plugins',require(_0xc304('0xcf')));_0x585d7d[_0xc304('0x7')](_0xc304('0xd0'),require(_0xc304('0xd1')));_0x585d7d['use'](_0xc304('0xd2'),require(_0xc304('0xd3')));_0x585d7d['use'](_0xc304('0xd4'),require(_0xc304('0xd5')));_0x585d7d['use'](_0xc304('0xd6'),require(_0xc304('0xd7')));_0x585d7d[_0xc304('0x7')](_0xc304('0xd8'),require(_0xc304('0xd9')));_0x585d7d['use'](_0xc304('0xda'),require(_0xc304('0xdb')));_0x585d7d['use'](_0xc304('0xdc'),require('./api/voicePrefix'));_0x585d7d['use'](_0xc304('0xdd'),require(_0xc304('0xde')));_0x585d7d[_0xc304('0x7')](_0xc304('0xdf'),require(_0xc304('0xe0')));_0x585d7d['use'](_0xc304('0xe1'),require('./api/jira'));_0x585d7d[_0xc304('0x7')](_0xc304('0xe2'),require(_0xc304('0xe3')));_0x585d7d[_0xc304('0x7')](_0xc304('0xe4'),require(_0xc304('0xe5')));_0x585d7d['use'](_0xc304('0xe6'),require('./api/system'));_0x585d7d['use']('/api/pm2',require(_0xc304('0xe7')));_0x585d7d[_0xc304('0x7')](_0xc304('0xe8'),express[_0xc304('0xe9')](path[_0xc304('0xea')](config[_0xc304('0xeb')],'/apidoc')));_0x585d7d['use'](_0xc304('0xec'),express['static'](path[_0xc304('0xea')](config[_0xc304('0xeb')],'/www')));_0x585d7d['use'](_0xc304('0xed'),express[_0xc304('0xe9')](path['join'](config['root'],_0xc304('0xed'))));_0x585d7d['use']('/snippet',express['static'](path[_0xc304('0xea')](config[_0xc304('0xeb')],_0xc304('0xee'),_0xc304('0xef'))));_0x585d7d[_0xc304('0x7')](_0xc304('0xf0'),express['static'](path['join'](config['root'],_0xc304('0xf1'))));_0x585d7d[_0xc304('0xf2')](_0xc304('0xf3'))[_0xc304('0xf4')](errors[0x194]);_0x585d7d[_0xc304('0xf2')]('/*')[_0xc304('0xf4')](function(_0x3a5fed,_0xe3fc3){_0xe3fc3[_0xc304('0xf5')](path[_0xc304('0xf6')](_0x585d7d[_0xc304('0xf4')](_0xc304('0xf7'))+_0xc304('0xf8')));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['../api/mailAccount/mailAccount.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueue/faxQueue.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsMessage/smsMessage.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/cmContact/cmContact.rpc','../api/cmHopper/cmHopper.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/template/template.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareRecording/squareRecording.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','http','rpc','port','error','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','default','jayson/promise','bluebird','lodash','../config/environment','listen','merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailServerIn/mailServerIn.rpc'];(function(_0x31cb5f,_0x2df766){var _0x586042=function(_0x53c807){while(--_0x53c807){_0x31cb5f['push'](_0x31cb5f['shift']());}};_0x586042(++_0x2df766);}(_0x5f2f,0x73));var _0xf5f2=function(_0x26fdbd,_0x4377f2){_0x26fdbd=_0x26fdbd-0x0;var _0x3de333=_0x5f2f[_0x26fdbd];return _0x3de333;};'use strict';var jayson=require(_0xf5f2('0x0'));var BPromise=require(_0xf5f2('0x1'));var _=require(_0xf5f2('0x2'));var config=require(_0xf5f2('0x3'));exports[_0xf5f2('0x4')]=function(){return new BPromise(function(_0x174bc7,_0x3c72ee){var _0x107cf={};_0x107cf=_['merge'](_0x107cf,require('../api/user/user.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x6')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x7')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x8')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x9')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0xa')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0xb')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0xc')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0xd')));_0x107cf=_['merge'](_0x107cf,require('../api/trunk/trunk.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0xe')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0xf')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x10')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x11')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/mailQueue/mailQueue.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x12')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x13')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/mailApplication/mailApplication.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x14')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x15')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x16')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x17')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x18')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x19')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1a')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1b')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/smsInteraction/smsInteraction.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1c')));_0x107cf=_['merge'](_0x107cf,require('../api/smsQueue/smsQueue.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1d')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x1e')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1f')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x20')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x21')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x22')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x23')));_0x107cf=_['merge'](_0x107cf,require('../api/chatQueue/chatQueue.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x24')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x25')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x26')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x27')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/cmHopperHistory/cmHopperHistory.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x28')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x29')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2a')));_0x107cf=_['merge'](_0x107cf,require('../api/sound/sound.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2b')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/trigger/trigger.rpc'));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x2c')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2d')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2e')));_0x107cf=_['merge'](_0x107cf,require('../api/intDeskAccount/intDeskAccount.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/intZohoAccount/intZohoAccount.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2f')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x30')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x31')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x32')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x33')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x34')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x35')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x36')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x37')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/squareMessage/squareMessage.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/campaign/campaign.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x38')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x39')));var _0x59a6dd=jayson['server'](_0x107cf)[_0xf5f2('0x3a')]();var _0x46ad4a=config[_0xf5f2('0x3b')]['port']||config[_0xf5f2('0x3c')]+0x1;var _0x4f7f80=config[_0xf5f2('0x3b')]['ip']||'localhost';_0x59a6dd['on'](_0xf5f2('0x3d'),function(_0x456764){return _0x3c72ee(_0x456764);});_0x59a6dd['listen'](_0x46ad4a,_0x4f7f80,function(){console[_0xf5f2('0x3e')](_0xf5f2('0x3f'),_0x4f7f80,_0x46ad4a);require(_0xf5f2('0x40'))[_0xf5f2('0x41')]();return _0x174bc7('RPC\x20listening\x20on\x20'+_0x4f7f80+':'+_0x46ad4a);});});};
\ No newline at end of file
+var _0x5f2f=['../api/mailAccount/mailAccount.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueue/faxQueue.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsMessage/smsMessage.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/cmContact/cmContact.rpc','../api/cmHopper/cmHopper.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/template/template.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareRecording/squareRecording.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','http','rpc','port','error','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','default','jayson/promise','bluebird','lodash','../config/environment','listen','merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailServerIn/mailServerIn.rpc'];(function(_0x565c49,_0x54acd0){var _0x20ca34=function(_0x42f7e1){while(--_0x42f7e1){_0x565c49['push'](_0x565c49['shift']());}};_0x20ca34(++_0x54acd0);}(_0x5f2f,0x73));var _0xf5f2=function(_0x1b99df,_0x3dea4f){_0x1b99df=_0x1b99df-0x0;var _0x2a557e=_0x5f2f[_0x1b99df];return _0x2a557e;};'use strict';var jayson=require(_0xf5f2('0x0'));var BPromise=require(_0xf5f2('0x1'));var _=require(_0xf5f2('0x2'));var config=require(_0xf5f2('0x3'));exports[_0xf5f2('0x4')]=function(){return new BPromise(function(_0x174bc7,_0x3c72ee){var _0x107cf={};_0x107cf=_['merge'](_0x107cf,require('../api/user/user.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x6')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x7')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x8')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x9')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0xa')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0xb')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0xc')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0xd')));_0x107cf=_['merge'](_0x107cf,require('../api/trunk/trunk.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0xe')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0xf')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x10')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x11')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/mailQueue/mailQueue.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x12')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x13')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/mailApplication/mailApplication.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x14')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x15')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x16')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x17')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x18')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x19')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1a')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1b')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/smsInteraction/smsInteraction.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1c')));_0x107cf=_['merge'](_0x107cf,require('../api/smsQueue/smsQueue.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1d')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x1e')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x1f')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x20')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x21')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x22')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x23')));_0x107cf=_['merge'](_0x107cf,require('../api/chatQueue/chatQueue.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x24')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x25')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x26')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x27')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/cmHopperHistory/cmHopperHistory.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x28')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x29')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2a')));_0x107cf=_['merge'](_0x107cf,require('../api/sound/sound.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2b')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/trigger/trigger.rpc'));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x2c')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2d')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2e')));_0x107cf=_['merge'](_0x107cf,require('../api/intDeskAccount/intDeskAccount.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/intZohoAccount/intZohoAccount.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x2f')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x30')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x31')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x32')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x33')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x34')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x35')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x36')));_0x107cf=_['merge'](_0x107cf,require(_0xf5f2('0x37')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/squareMessage/squareMessage.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require('../api/campaign/campaign.rpc'));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x38')));_0x107cf=_[_0xf5f2('0x5')](_0x107cf,require(_0xf5f2('0x39')));var _0x59a6dd=jayson['server'](_0x107cf)[_0xf5f2('0x3a')]();var _0x46ad4a=config[_0xf5f2('0x3b')]['port']||config[_0xf5f2('0x3c')]+0x1;var _0x4f7f80=config[_0xf5f2('0x3b')]['ip']||'localhost';_0x59a6dd['on'](_0xf5f2('0x3d'),function(_0x456764){return _0x3c72ee(_0x456764);});_0x59a6dd['listen'](_0x46ad4a,_0x4f7f80,function(){console[_0xf5f2('0x3e')](_0xf5f2('0x3f'),_0x4f7f80,_0x46ad4a);require(_0xf5f2('0x40'))[_0xf5f2('0x41')]();return _0x174bc7('RPC\x20listening\x20on\x20'+_0x4f7f80+':'+_0x46ad4a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20b4=['inherits','prototype','sendRequest','command','sync','answer','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','exec','isArray','join','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setContext','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','events','EventEmitter','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','line','hangup','520-Invalid','search','520\x20End\x20of\x20proper','substring','no\x20code','result=','indexOf','substr','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','pipe','destroy'];(function(_0x3b0912,_0x39d739){var _0xa8f339=function(_0x6a31ab){while(--_0x6a31ab){_0x3b0912['push'](_0x3b0912['shift']());}};_0xa8f339(++_0x39d739);}(_0x20b4,0x15d));var _0x420b=function(_0x5a2436,_0x11375a){_0x5a2436=_0x5a2436-0x0;var _0x2d8468=_0x20b4[_0x5a2436];return _0x2d8468;};'use strict';var util=require('util');var _=require('lodash');var EventEmitter=require(_0x420b('0x0'))[_0x420b('0x1')];var AGIReply=require('./reply');var AGIError=require(_0x420b('0x2'));function AGIChannel(_0x304f7d){var _0x80b5f0=this,_0x18d22b=new AGIReply(),_0x1f3df4=![],_0x499148={};EventEmitter[_0x420b('0x3')](_0x80b5f0);_0x304f7d[_0x420b('0x4')](_0x420b('0x5'));_0x304f7d[_0x420b('0x6')](0x8*0x3c*0x3c*0x3e8);_0x18d22b[_0x420b('0x4')]('utf8');_0x18d22b['on'](_0x420b('0x7'),function(_0x2f8ce3){for(var _0x5a328a in _0x2f8ce3){_0x80b5f0[_0x5a328a]=_0x2f8ce3[_0x5a328a];}_0x80b5f0[_0x420b('0x8')](_0x420b('0x9'));});_0x18d22b['on'](_0x420b('0xa'),function(_0x434860){if(_0x434860['toLowerCase']()==_0x420b('0xb')){_0x80b5f0[_0x420b('0x8')]('hangup');return;}if(_0x434860['substring'](0x0,0xb)==_0x420b('0xc')){_0x1f3df4=!![];}if(_0x1f3df4){_0x499148['rx']+=_0x434860+'\x0a';if(_0x434860[_0x420b('0xd')](_0x420b('0xe'))!=-0x1){_0x1f3df4=![];}}else{_0x499148['rx']=_0x434860;}if(_0x1f3df4){return;}if(typeof _0x499148['cb']=='function'){var _0x4826fa=_0x499148['rx'][_0x420b('0xf')](0x0,0x3),_0x17ff56=null,_0x44348a=null;_0x4826fa=parseInt(_0x4826fa);if(isNaN(_0x4826fa)){_0x499148['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x420b('0x10')});return;}if(_0x4826fa!=0xc8){_0x499148['cb'](null,{'code':_0x4826fa,'result':-0x1,'extra':'KO'});return;}_0x17ff56=_0x499148['rx']['substring'](0x4)['replace'](_0x420b('0x11'),'');if(_0x17ff56[_0x420b('0x12')]('\x20')!=-0x1){_0x17ff56=_0x17ff56[_0x420b('0x13')](0x0,_0x17ff56['indexOf']('\x20'));}if(_[_0x420b('0x14')](_0x17ff56,'-1')){_0x17ff56=parseInt(_0x17ff56);}_0x44348a=_0x499148['rx'][_0x420b('0x15')]('\x20');if(_0x44348a['length']==0x3){_0x44348a=_0x44348a[0x2][_0x420b('0xf')](0x1,_0x44348a[0x2][_0x420b('0x16')]-0x1);}else if(_0x44348a['length']>0x3){var _0x3e6fb8=/\((.+)\)/;var _0x49b59e=_0x499148['rx'][_0x420b('0x17')](_0x3e6fb8);if(_0x49b59e){_0x44348a=_0x49b59e[0x1];}else{_0x44348a=null;}}else{_0x44348a=null;}_0x499148['cb'](null,{'code':_0x4826fa,'result':_0x17ff56,'extra':_0x44348a});}});_0x304f7d['on']('error',function(_0x16410a){_0x80b5f0[_0x420b('0x8')](_0x420b('0x18'),new AGIError('E_AGI_SOCKET_ERROR',_0x16410a[_0x420b('0x19')]));});_0x304f7d['on'](_0x420b('0x1a'),function(){_0x80b5f0[_0x420b('0x8')](_0x420b('0x1a'),new AGIError(_0x420b('0x1b')));});_0x304f7d['on'](_0x420b('0x1c'),function(){_0x80b5f0['emit'](_0x420b('0x1c'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x304f7d['destroy']();});_0x304f7d[_0x420b('0x1d')](_0x18d22b);this['command']=function(_0x2e5278,_0x1e5540){var _0x2e5278=_0x2e5278||'',_0x1e5540=typeof _0x1e5540=='function'?_0x1e5540:new Function();_0x499148={'tx':_0x2e5278,'rx':'','cb':_0x1e5540};_0x304f7d['write'](_0x2e5278+'\x0a');},this[_0x420b('0x1a')]=function(){_0x304f7d[_0x420b('0x1e')]();};}util[_0x420b('0x1f')](AGIChannel,EventEmitter);AGIChannel[_0x420b('0x20')][_0x420b('0x21')]=function(_0x4223b2){return this[_0x420b('0x22')][_0x420b('0x23')](this,_0x4223b2);};AGIChannel[_0x420b('0x20')][_0x420b('0x24')]=function(){return this[_0x420b('0x21')](_0x420b('0x25'));};AGIChannel[_0x420b('0x20')][_0x420b('0x26')]=function(_0x1fa89e,_0x5e3668,_0x293daf){_0x1fa89e=_0x1fa89e===undefined?_0x420b('0x27'):_0x1fa89e;_0x5e3668=_0x5e3668===undefined?'5':_0x5e3668;_0x293daf=_0x293daf===undefined?'1':_0x293daf;return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x29'),_0x1fa89e,_0x5e3668*0x3e8,_0x293daf));};AGIChannel[_0x420b('0x20')][_0x420b('0x2a')]=function(_0x2992dd){_0x2992dd=_0x2992dd||_0x420b('0x2b');return this[_0x420b('0x21')](util['format']('VERBOSE\x20\x22%s\x22',_0x2992dd));};AGIChannel[_0x420b('0x20')][_0x420b('0x2c')]=function(_0x1e3f87,_0x514cd4){if(_[_0x420b('0x2d')](_0x514cd4)){return this[_0x420b('0x21')](util[_0x420b('0x28')]('EXEC\x20%s\x20%s',_0x1e3f87,_0x514cd4[_0x420b('0x2e')](',')));}return this[_0x420b('0x21')](util[_0x420b('0x28')]('EXEC\x20%s\x20%s',_0x1e3f87,_0x514cd4));};AGIChannel['prototype']['setContext']=function(_0x525415){return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x2f'),_0x525415));};AGIChannel[_0x420b('0x20')][_0x420b('0x30')]=function(_0x5ea6f9){return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x31'),_0x5ea6f9));};AGIChannel[_0x420b('0x20')][_0x420b('0x32')]=function(_0x58e871){return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x33'),_0x58e871));};AGIChannel[_0x420b('0x20')][_0x420b('0xb')]=function(){return this[_0x420b('0x21')]('HANGUP');};AGIChannel[_0x420b('0x20')]['setVariable']=function(_0x43c1ec,_0x3f554b){return this[_0x420b('0x21')](util['format'](_0x420b('0x34'),_0x43c1ec,_0x3f554b?_0x3f554b[_0x420b('0x35')]()[_0x420b('0x36')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x420b('0x37')]=function(_0x34e712,_0x5d23f1){return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x38'),_0x34e712,_0x5d23f1));};AGIChannel[_0x420b('0x20')][_0x420b('0x39')]=function(_0x1918a9,_0x196efe){return this[_0x420b('0x21')](util['format']('SAY\x20DIGITS\x20%s\x20%s',_0x1918a9,_0x196efe));};AGIChannel[_0x420b('0x20')][_0x420b('0x3a')]=function(_0x3e5a2f,_0x46fd16){return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x3b'),_0x3e5a2f,_0x46fd16));};AGIChannel[_0x420b('0x20')][_0x420b('0x3c')]=function(_0x26b242,_0x24bf28,_0x23c8c8){_0x24bf28=_0x24bf28||this[_0x420b('0x3d')];_0x23c8c8=_0x23c8c8||0x1;this[_0x420b('0x3e')](_0x26b242);this['setExtension'](_0x24bf28);this[_0x420b('0x32')](_0x23c8c8);return this[_0x420b('0x2a')](util[_0x420b('0x28')](_0x420b('0x3f'),_0x26b242,_0x24bf28,_0x23c8c8));};AGIChannel[_0x420b('0x20')][_0x420b('0x40')]=function(_0x229a29){return this[_0x420b('0x21')](util[_0x420b('0x28')](_0x420b('0x41'),_0x229a29));};AGIChannel[_0x420b('0x20')]['recordFile']=function(_0x3f6720,_0x31afc2,_0x402d2b,_0x2bee52,_0xd61c15,_0x3c5548){_0x31afc2=_0x31afc2||'wav';_0x402d2b=_0x402d2b||'';_0x2bee52=_0x2bee52===undefined?-0x1:_0x2bee52==='-1'?-0x1:_0x2bee52*0x3e8;_0xd61c15=_0xd61c15===undefined?'':'s='+_0xd61c15;_0x3c5548=_0x3c5548?'BEEP':'';return this[_0x420b('0x21')](util['format'](_0x420b('0x42'),_0x3f6720,_0x31afc2,_0x402d2b,_0x2bee52,_0x3c5548,_0xd61c15));};AGIChannel[_0x420b('0x20')][_0x420b('0x43')]=function(_0x45c7bd,_0x49c677){_0x49c677=_0x49c677||'';return this[_0x420b('0x21')](util['format'](_0x420b('0x44'),_0x45c7bd,_0x49c677));};AGIChannel['prototype'][_0x420b('0x45')]=function(_0x3ef702){return this[_0x420b('0x2c')](_0x420b('0x46'),_0x3ef702);};AGIChannel[_0x420b('0x20')][_0x420b('0x47')]=function(_0x36c466){return this[_0x420b('0x2c')](_0x420b('0x48'),_0x36c466);};AGIChannel['prototype'][_0x420b('0x18')]=function(_0x29fc55,_0x51ac76){this[_0x420b('0x2a')](util['format'](_0x420b('0x49'),_0x29fc55['id'],_0x29fc55[_0x420b('0x4a')],_0x51ac76));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x420b('0x4b')]=AGIChannel;
\ No newline at end of file
+var _0x0ca5=['length','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','function','write','inherits','sendRequest','sync','prototype','answer','ANSWER','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','setContext','setExtension','SET\x20EXTENSION\x20%s','setPriority','HANGUP','toString','replace','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','BEEP','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','exports','util','lodash','./reply','setTimeout','setEncoding','utf8','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','result=','substr','indexOf','startsWith','split'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x0ca5,0x76));var _0x50ca=function(_0xea0d59,_0x5b81d8){_0xea0d59=_0xea0d59-0x0;var _0x2a0b6a=_0x0ca5[_0xea0d59];return _0x2a0b6a;};'use strict';var util=require(_0x50ca('0x0'));var _=require(_0x50ca('0x1'));var EventEmitter=require('events')['EventEmitter'];var AGIReply=require(_0x50ca('0x2'));var AGIError=require('./error');function AGIChannel(_0x3b4caa){var _0x1e9c19=this,_0x5c4c35=new AGIReply(),_0x43b3ca=![],_0x139b64={};EventEmitter['call'](_0x1e9c19);_0x3b4caa['setEncoding']('utf8');_0x3b4caa[_0x50ca('0x3')](0x8*0x3c*0x3c*0x3e8);_0x5c4c35[_0x50ca('0x4')](_0x50ca('0x5'));_0x5c4c35['on'](_0x50ca('0x6'),function(_0x355a20){for(var _0x40ae8e in _0x355a20){_0x1e9c19[_0x40ae8e]=_0x355a20[_0x40ae8e];}_0x1e9c19[_0x50ca('0x7')](_0x50ca('0x8'));});_0x5c4c35['on'](_0x50ca('0x9'),function(_0x1870c2){if(_0x1870c2[_0x50ca('0xa')]()==_0x50ca('0xb')){_0x1e9c19['emit'](_0x50ca('0xb'));return;}if(_0x1870c2[_0x50ca('0xc')](0x0,0xb)==_0x50ca('0xd')){_0x43b3ca=!![];}if(_0x43b3ca){_0x139b64['rx']+=_0x1870c2+'\x0a';if(_0x1870c2[_0x50ca('0xe')]('520\x20End\x20of\x20proper')!=-0x1){_0x43b3ca=![];}}else{_0x139b64['rx']=_0x1870c2;}if(_0x43b3ca){return;}if(typeof _0x139b64['cb']=='function'){var _0x3b22e5=_0x139b64['rx'][_0x50ca('0xc')](0x0,0x3),_0x5a78c6=null,_0x220efb=null;_0x3b22e5=parseInt(_0x3b22e5);if(isNaN(_0x3b22e5)){_0x139b64['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x3b22e5!=0xc8){_0x139b64['cb'](null,{'code':_0x3b22e5,'result':-0x1,'extra':'KO'});return;}_0x5a78c6=_0x139b64['rx'][_0x50ca('0xc')](0x4)['replace'](_0x50ca('0xf'),'');if(_0x5a78c6['indexOf']('\x20')!=-0x1){_0x5a78c6=_0x5a78c6[_0x50ca('0x10')](0x0,_0x5a78c6[_0x50ca('0x11')]('\x20'));}if(_[_0x50ca('0x12')](_0x5a78c6,'-1')){_0x5a78c6=parseInt(_0x5a78c6);}_0x220efb=_0x139b64['rx'][_0x50ca('0x13')]('\x20');if(_0x220efb['length']==0x3){_0x220efb=_0x220efb[0x2][_0x50ca('0xc')](0x1,_0x220efb[0x2][_0x50ca('0x14')]-0x1);}else if(_0x220efb['length']>0x3){var _0x524a49=/\((.+)\)/;var _0xc27ca0=_0x139b64['rx']['match'](_0x524a49);if(_0xc27ca0){_0x220efb=_0xc27ca0[0x1];}else{_0x220efb=null;}}else{_0x220efb=null;}_0x139b64['cb'](null,{'code':_0x3b22e5,'result':_0x5a78c6,'extra':_0x220efb});}});_0x3b4caa['on'](_0x50ca('0x15'),function(_0x3df045){_0x1e9c19['emit']('error',new AGIError(_0x50ca('0x16'),_0x3df045[_0x50ca('0x17')]));});_0x3b4caa['on']('close',function(){_0x1e9c19['emit'](_0x50ca('0x18'),new AGIError(_0x50ca('0x19')));});_0x3b4caa['on'](_0x50ca('0x1a'),function(){_0x1e9c19[_0x50ca('0x7')](_0x50ca('0x1a'),new AGIError(_0x50ca('0x1b')));_0x3b4caa['destroy']();});_0x3b4caa[_0x50ca('0x1c')](_0x5c4c35);this[_0x50ca('0x1d')]=function(_0x15e4b3,_0x149616){var _0x15e4b3=_0x15e4b3||'',_0x149616=typeof _0x149616==_0x50ca('0x1e')?_0x149616:new Function();_0x139b64={'tx':_0x15e4b3,'rx':'','cb':_0x149616};_0x3b4caa[_0x50ca('0x1f')](_0x15e4b3+'\x0a');},this[_0x50ca('0x18')]=function(){_0x3b4caa['destroy']();};}util[_0x50ca('0x20')](AGIChannel,EventEmitter);AGIChannel['prototype'][_0x50ca('0x21')]=function(_0x475512){return this['command'][_0x50ca('0x22')](this,_0x475512);};AGIChannel[_0x50ca('0x23')][_0x50ca('0x24')]=function(){return this['sendRequest'](_0x50ca('0x25'));};AGIChannel['prototype']['getData']=function(_0x14e16b,_0x38018c,_0x3ce0a7){_0x14e16b=_0x14e16b===undefined?'beep':_0x14e16b;_0x38018c=_0x38018c===undefined?'5':_0x38018c;_0x3ce0a7=_0x3ce0a7===undefined?'1':_0x3ce0a7;return this['sendRequest'](util[_0x50ca('0x26')](_0x50ca('0x27'),_0x14e16b,_0x38018c*0x3e8,_0x3ce0a7));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x28')]=function(_0x2c1153){_0x2c1153=_0x2c1153||'NO\x20MESSAGE';return this[_0x50ca('0x21')](util['format'](_0x50ca('0x29'),_0x2c1153));};AGIChannel['prototype'][_0x50ca('0x2a')]=function(_0x48a8f2,_0x3bc24a){if(_[_0x50ca('0x2b')](_0x3bc24a)){return this[_0x50ca('0x21')](util[_0x50ca('0x26')](_0x50ca('0x2c'),_0x48a8f2,_0x3bc24a['join'](',')));}return this[_0x50ca('0x21')](util[_0x50ca('0x26')](_0x50ca('0x2c'),_0x48a8f2,_0x3bc24a));};AGIChannel['prototype'][_0x50ca('0x2d')]=function(_0x177618){return this['sendRequest'](util[_0x50ca('0x26')]('SET\x20CONTEXT\x20%s',_0x177618));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x2e')]=function(_0x522f95){return this[_0x50ca('0x21')](util[_0x50ca('0x26')](_0x50ca('0x2f'),_0x522f95));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x30')]=function(_0x37aed0){return this[_0x50ca('0x21')](util[_0x50ca('0x26')]('SET\x20PRIORITY\x20%s',_0x37aed0));};AGIChannel[_0x50ca('0x23')][_0x50ca('0xb')]=function(){return this[_0x50ca('0x21')](_0x50ca('0x31'));};AGIChannel[_0x50ca('0x23')]['setVariable']=function(_0xcb7496,_0x1d1688){return this[_0x50ca('0x21')](util[_0x50ca('0x26')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0xcb7496,_0x1d1688?_0x1d1688[_0x50ca('0x32')]()[_0x50ca('0x33')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype']['sayNumber']=function(_0x31b431,_0x5788cc){return this[_0x50ca('0x21')](util[_0x50ca('0x26')]('SAY\x20NUMBER\x20%s\x20%s',_0x31b431,_0x5788cc));};AGIChannel[_0x50ca('0x23')]['sayDigits']=function(_0x54843c,_0x310ef8){return this[_0x50ca('0x21')](util[_0x50ca('0x26')](_0x50ca('0x34'),_0x54843c,_0x310ef8));};AGIChannel['prototype'][_0x50ca('0x35')]=function(_0x3e3790,_0x5af3f9){return this[_0x50ca('0x21')](util[_0x50ca('0x26')](_0x50ca('0x36'),_0x3e3790,_0x5af3f9));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x37')]=function(_0x283180,_0x22d3b8,_0x1ba9e4){_0x22d3b8=_0x22d3b8||this[_0x50ca('0x38')];_0x1ba9e4=_0x1ba9e4||0x1;this['setContext'](_0x283180);this[_0x50ca('0x2e')](_0x22d3b8);this[_0x50ca('0x30')](_0x1ba9e4);return this[_0x50ca('0x28')](util[_0x50ca('0x26')](_0x50ca('0x39'),_0x283180,_0x22d3b8,_0x1ba9e4));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x3a')]=function(_0x55f2a9){return this[_0x50ca('0x21')](util['format'](_0x50ca('0x3b'),_0x55f2a9));};AGIChannel['prototype'][_0x50ca('0x3c')]=function(_0x4f2503,_0x9cf87d,_0x20e1b2,_0x426d99,_0x8abd43,_0x1a29cb){_0x9cf87d=_0x9cf87d||'wav';_0x20e1b2=_0x20e1b2||'';_0x426d99=_0x426d99===undefined?-0x1:_0x426d99==='-1'?-0x1:_0x426d99*0x3e8;_0x8abd43=_0x8abd43===undefined?'':'s='+_0x8abd43;_0x1a29cb=_0x1a29cb?_0x50ca('0x3d'):'';return this[_0x50ca('0x21')](util[_0x50ca('0x26')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x4f2503,_0x9cf87d,_0x20e1b2,_0x426d99,_0x1a29cb,_0x8abd43));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x3e')]=function(_0x23d812,_0x4a6b27){_0x4a6b27=_0x4a6b27||'';return this[_0x50ca('0x21')](util[_0x50ca('0x26')](_0x50ca('0x3f'),_0x23d812,_0x4a6b27));};AGIChannel[_0x50ca('0x23')][_0x50ca('0x40')]=function(_0x80a10a){return this[_0x50ca('0x2a')](_0x50ca('0x41'),_0x80a10a);};AGIChannel[_0x50ca('0x23')][_0x50ca('0x42')]=function(_0xd7191b){return this['exec']('WAIT',_0xd7191b);};AGIChannel[_0x50ca('0x23')]['error']=function(_0x4105d2,_0x50464b){this[_0x50ca('0x28')](util[_0x50ca('0x26')](_0x50ca('0x43'),_0x4105d2['id'],_0x4105d2['label'],_0x50464b));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x50ca('0x44')]=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe525=['[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20closed.','Socket\x20timeout.','Empty\x20command.','Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','E_AGI_UNDEFINED','push','format','apply','message','Undefined\x20error.','Server\x20error.\x20Code:\x20%s.'];(function(_0x296174,_0x3e82a1){var _0x16ae68=function(_0x15c75e){while(--_0x15c75e){_0x296174['push'](_0x296174['shift']());}};_0x16ae68(++_0x3e82a1);}(_0xe525,0xe8));var _0x5e52=function(_0x1c3c0d,_0x2ab2c2){_0x1c3c0d=_0x1c3c0d-0x0;var _0x1fb5fe=_0xe525[_0x1c3c0d];return _0x1fb5fe;};'use strict';var util=require('util');var error={'E_AGI_UNDEFINED':_0x5e52('0x0'),'E_AGI_ARGUMENT_PORT':'Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','E_AGI_SERVER_ERROR':_0x5e52('0x1'),'E_AGI_SERVER_CLOSE':'Server\x20closed.','E_AGI_SERVER_MAXCONNECTION':'[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','E_AGI_SERVER_VOICE_DISABLED':_0x5e52('0x2'),'E_AGI_SOCKET_ERROR':'Socket\x20error.\x20Code:\x20%s.','E_AGI_SOCKET_CLOSE':_0x5e52('0x3'),'E_AGI_SOCKET_TIMEOUT':_0x5e52('0x4'),'E_AGI_COMMAND_EMPTY':_0x5e52('0x5'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x5e52('0x6'),'E_AGI_IVR_ENTRY':_0x5e52('0x7')};function AGIError(_0x4e1008){var _0x4e1008=_0x4e1008||null,_0x37cc02=_0x37cc02||[],_0x1cc6fe=0x1,_0x271cfa='';if(!error[_0x4e1008]){_0x4e1008=_0x5e52('0x8');}_0x37cc02['push'](error[_0x4e1008]);while(arguments[_0x1cc6fe]){_0x37cc02[_0x5e52('0x9')](arguments[_0x1cc6fe]);_0x1cc6fe++;}_0x271cfa=util[_0x5e52('0xa')][_0x5e52('0xb')](util,_0x37cc02);this[_0x5e52('0xc')]=_0x271cfa;this['name']=_0x4e1008;}module['exports']=AGIError;
\ No newline at end of file
+var _0xf9a6=['Socket\x20timeout.','Empty\x20command.','Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','push','format','message','name','exports','util','Undefined\x20error.','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','Socket\x20error.\x20Code:\x20%s.','Socket\x20closed.'];(function(_0x317976,_0x333bbe){var _0x3275b5=function(_0x52e11f){while(--_0x52e11f){_0x317976['push'](_0x317976['shift']());}};_0x3275b5(++_0x333bbe);}(_0xf9a6,0x1d4));var _0x6f9a=function(_0x23e8d6,_0x53249d){_0x23e8d6=_0x23e8d6-0x0;var _0x132385=_0xf9a6[_0x23e8d6];return _0x132385;};'use strict';var util=require(_0x6f9a('0x0'));var error={'E_AGI_UNDEFINED':_0x6f9a('0x1'),'E_AGI_ARGUMENT_PORT':_0x6f9a('0x2'),'E_AGI_SERVER_ERROR':_0x6f9a('0x3'),'E_AGI_SERVER_CLOSE':_0x6f9a('0x4'),'E_AGI_SERVER_MAXCONNECTION':_0x6f9a('0x5'),'E_AGI_SERVER_VOICE_DISABLED':'[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','E_AGI_SOCKET_ERROR':_0x6f9a('0x6'),'E_AGI_SOCKET_CLOSE':_0x6f9a('0x7'),'E_AGI_SOCKET_TIMEOUT':_0x6f9a('0x8'),'E_AGI_COMMAND_EMPTY':_0x6f9a('0x9'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x6f9a('0xa'),'E_AGI_IVR_ENTRY':_0x6f9a('0xb')};function AGIError(_0x9ac8a0){var _0x9ac8a0=_0x9ac8a0||null,_0x3a6ede=_0x3a6ede||[],_0x331883=0x1,_0x10cb07='';if(!error[_0x9ac8a0]){_0x9ac8a0='E_AGI_UNDEFINED';}_0x3a6ede['push'](error[_0x9ac8a0]);while(arguments[_0x331883]){_0x3a6ede[_0x6f9a('0xc')](arguments[_0x331883]);_0x331883++;}_0x10cb07=util[_0x6f9a('0xd')]['apply'](util,_0x3a6ede);this[_0x6f9a('0xe')]=_0x10cb07;this[_0x6f9a('0xf')]=_0x9ac8a0;}module[_0x6f9a('0x10')]=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4f4=['info','length','condition','split','agicommand','vswitch','target','default','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','lodash','../../../config/logger','menu','getdigits','getsecretdigits','vertices','edges','prototype','addEdge','push','numberOfEdges','size','relations','getVertex','traverseBFS','no\x20vertex\x20found'];(function(_0x72a33d,_0x5691da){var _0x2621d5=function(_0x95b7c6){while(--_0x95b7c6){_0x72a33d['push'](_0x72a33d['shift']());}};_0x2621d5(++_0x5691da);}(_0xf4f4,0xe3));var _0x4f4f=function(_0x2c234a,_0x4fc673){_0x2c234a=_0x2c234a-0x0;var _0x28bf8d=_0xf4f4[_0x2c234a];return _0x28bf8d;};'use strict';var _=require(_0x4f4f('0x0'));var logger=require(_0x4f4f('0x1'))('agi');var verticesWithRetry=[_0x4f4f('0x2'),_0x4f4f('0x3'),_0x4f4f('0x4')];var Graph=function(){this[_0x4f4f('0x5')]={};this[_0x4f4f('0x6')]={};this['numberOfEdges']=0x0;};Graph[_0x4f4f('0x7')]['addVertex']=function(_0x3f274d){this[_0x4f4f('0x5')][_0x3f274d['id']]=_0x3f274d;this[_0x4f4f('0x6')][_0x3f274d['id']]=[];};Graph[_0x4f4f('0x7')][_0x4f4f('0x8')]=function(_0x249f8a,_0x2faba9,_0x3768d7){this['edges'][_0x249f8a][_0x4f4f('0x9')]({'target':_0x2faba9,'condition':_0x3768d7});this[_0x4f4f('0xa')]+=0x1;};Graph[_0x4f4f('0x7')][_0x4f4f('0xb')]=function(){return _[_0x4f4f('0xb')](this[_0x4f4f('0x5')]);};Graph[_0x4f4f('0x7')][_0x4f4f('0xc')]=function(){return this['numberOfEdges'];};Graph['prototype'][_0x4f4f('0xd')]=function(_0x78c1c4){return this[_0x4f4f('0x5')][_0x78c1c4];};Graph[_0x4f4f('0x7')][_0x4f4f('0xe')]=function(_0x1d7575,_0x4e1050){if(!this[_0x4f4f('0x5')][_0x1d7575]){return logger['info'](_0x4f4f('0xf'));}var _0xe7c2d5=_0x4e1050(this[_0x4f4f('0x5')][_0x1d7575]);if(!_0xe7c2d5){return logger[_0x4f4f('0x10')]('stop\x20traverse');}if(this[_0x4f4f('0x6')][_0x1d7575]['length']===0x0){return logger['info']('no\x20edge/s\x20available');}for(var _0x422894=0x0,_0x8d65a2=[],_0x2d21ed=![];_0x422894<this[_0x4f4f('0x6')][_0x1d7575][_0x4f4f('0x11')];_0x422894+=0x1){if(this[_0x4f4f('0x6')][_0x1d7575][_0x422894][_0x4f4f('0x12')]){_0x8d65a2=this[_0x4f4f('0x6')][_0x1d7575][_0x422894][_0x4f4f('0x12')][_0x4f4f('0x13')](',');for(var _0x32b549=0x0;_0x32b549<_0x8d65a2[_0x4f4f('0x11')];_0x32b549+=0x1){if(this['vertices'][_0x1d7575][_0x4f4f('0x14')]===_0x4f4f('0x15')&&_0x8d65a2[_0x32b549]==='-'){_0x2d21ed=this[_0x4f4f('0x6')][_0x1d7575][_0x422894][_0x4f4f('0x16')];logger[_0x4f4f('0x10')](_0x4f4f('0x17'),_0x8d65a2[_0x32b549],this[_0x4f4f('0x6')][_0x1d7575][_0x422894][_0x4f4f('0x16')]);}else if(this[_0x4f4f('0x5')][_0x1d7575][_0x4f4f('0x14')]===_0x4f4f('0x2')&&_0x8d65a2[_0x32b549]==='i'){_0x2d21ed=this[_0x4f4f('0x6')][_0x1d7575][_0x422894][_0x4f4f('0x16')];logger[_0x4f4f('0x10')]('invalid',_0x8d65a2[_0x32b549],this['edges'][_0x1d7575][_0x422894]['target']);}if(_0x8d65a2[_0x32b549]===_0xe7c2d5){return this[_0x4f4f('0xe')](this[_0x4f4f('0x6')][_0x1d7575][_0x422894]['target'],_0x4e1050);}}}else{return this[_0x4f4f('0xe')](this[_0x4f4f('0x6')][_0x1d7575][_0x422894][_0x4f4f('0x16')],_0x4e1050);}}if(_0x8d65a2[_0x4f4f('0x11')]){if(this[_0x4f4f('0x5')][_0x1d7575][_0x4f4f('0x14')]===_0x4f4f('0x15')){if(_0x2d21ed){return this['traverseBFS'](_0x2d21ed,_0x4e1050);}return logger[_0x4f4f('0x10')](_0x4f4f('0x18'));}else if(_[_0x4f4f('0x19')](verticesWithRetry,this[_0x4f4f('0x5')][_0x1d7575][_0x4f4f('0x14')])){if(_0xe7c2d5==='-'){return logger['info'](_0x4f4f('0x1a'));}if(_0x2d21ed&&_0xe7c2d5!=='t'){return this[_0x4f4f('0xe')](_0x2d21ed,_0x4e1050);}return this[_0x4f4f('0xe')](_0x1d7575,_0x4e1050);}return logger['info']('condition\x20not\x20found');}};module['exports']=Graph;
\ No newline at end of file
+var _0xe9e8=['addVertex','edges','addEdge','size','relations','getVertex','info','no\x20vertex\x20found','length','no\x20edge/s\x20available','condition','split','vswitch','target','agicommand','traverseBFS','default\x20on\x20switch\x20not\x20found','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','vertices','numberOfEdges','prototype'];(function(_0x34fd11,_0x9a5f15){var _0x133302=function(_0x196d08){while(--_0x196d08){_0x34fd11['push'](_0x34fd11['shift']());}};_0x133302(++_0x9a5f15);}(_0xe9e8,0x6b));var _0x8e9e=function(_0x36d4e9,_0x8bd44f){_0x36d4e9=_0x36d4e9-0x0;var _0x2035aa=_0xe9e8[_0x36d4e9];return _0x2035aa;};'use strict';var _=require(_0x8e9e('0x0'));var logger=require(_0x8e9e('0x1'))(_0x8e9e('0x2'));var verticesWithRetry=[_0x8e9e('0x3'),_0x8e9e('0x4'),_0x8e9e('0x5')];var Graph=function(){this[_0x8e9e('0x6')]={};this['edges']={};this[_0x8e9e('0x7')]=0x0;};Graph[_0x8e9e('0x8')][_0x8e9e('0x9')]=function(_0x4d1b1c){this[_0x8e9e('0x6')][_0x4d1b1c['id']]=_0x4d1b1c;this[_0x8e9e('0xa')][_0x4d1b1c['id']]=[];};Graph[_0x8e9e('0x8')][_0x8e9e('0xb')]=function(_0x58f822,_0x3b5d21,_0x2ae896){this[_0x8e9e('0xa')][_0x58f822]['push']({'target':_0x3b5d21,'condition':_0x2ae896});this[_0x8e9e('0x7')]+=0x1;};Graph[_0x8e9e('0x8')][_0x8e9e('0xc')]=function(){return _['size'](this[_0x8e9e('0x6')]);};Graph[_0x8e9e('0x8')][_0x8e9e('0xd')]=function(){return this[_0x8e9e('0x7')];};Graph[_0x8e9e('0x8')][_0x8e9e('0xe')]=function(_0x2adef2){return this['vertices'][_0x2adef2];};Graph[_0x8e9e('0x8')]['traverseBFS']=function(_0x29d7ec,_0xd1909e){if(!this[_0x8e9e('0x6')][_0x29d7ec]){return logger[_0x8e9e('0xf')](_0x8e9e('0x10'));}var _0x1c927d=_0xd1909e(this[_0x8e9e('0x6')][_0x29d7ec]);if(!_0x1c927d){return logger['info']('stop\x20traverse');}if(this[_0x8e9e('0xa')][_0x29d7ec][_0x8e9e('0x11')]===0x0){return logger['info'](_0x8e9e('0x12'));}for(var _0xb67ecc=0x0,_0xa45d92=[],_0x22b2c7=![];_0xb67ecc<this[_0x8e9e('0xa')][_0x29d7ec]['length'];_0xb67ecc+=0x1){if(this['edges'][_0x29d7ec][_0xb67ecc][_0x8e9e('0x13')]){_0xa45d92=this[_0x8e9e('0xa')][_0x29d7ec][_0xb67ecc][_0x8e9e('0x13')][_0x8e9e('0x14')](',');for(var _0xa079b5=0x0;_0xa079b5<_0xa45d92[_0x8e9e('0x11')];_0xa079b5+=0x1){if(this[_0x8e9e('0x6')][_0x29d7ec]['agicommand']===_0x8e9e('0x15')&&_0xa45d92[_0xa079b5]==='-'){_0x22b2c7=this['edges'][_0x29d7ec][_0xb67ecc][_0x8e9e('0x16')];logger[_0x8e9e('0xf')]('default',_0xa45d92[_0xa079b5],this[_0x8e9e('0xa')][_0x29d7ec][_0xb67ecc][_0x8e9e('0x16')]);}else if(this[_0x8e9e('0x6')][_0x29d7ec][_0x8e9e('0x17')]===_0x8e9e('0x3')&&_0xa45d92[_0xa079b5]==='i'){_0x22b2c7=this[_0x8e9e('0xa')][_0x29d7ec][_0xb67ecc][_0x8e9e('0x16')];logger[_0x8e9e('0xf')]('invalid',_0xa45d92[_0xa079b5],this['edges'][_0x29d7ec][_0xb67ecc][_0x8e9e('0x16')]);}if(_0xa45d92[_0xa079b5]===_0x1c927d){return this[_0x8e9e('0x18')](this[_0x8e9e('0xa')][_0x29d7ec][_0xb67ecc]['target'],_0xd1909e);}}}else{return this[_0x8e9e('0x18')](this['edges'][_0x29d7ec][_0xb67ecc][_0x8e9e('0x16')],_0xd1909e);}}if(_0xa45d92[_0x8e9e('0x11')]){if(this[_0x8e9e('0x6')][_0x29d7ec]['agicommand']===_0x8e9e('0x15')){if(_0x22b2c7){return this['traverseBFS'](_0x22b2c7,_0xd1909e);}return logger['info'](_0x8e9e('0x19'));}else if(_['includes'](verticesWithRetry,this[_0x8e9e('0x6')][_0x29d7ec]['agicommand'])){if(_0x1c927d==='-'){return logger[_0x8e9e('0xf')](_0x8e9e('0x1a'));}if(_0x22b2c7&&_0x1c927d!=='t'){return this['traverseBFS'](_0x22b2c7,_0xd1909e);}return this[_0x8e9e('0x18')](_0x29d7ec,_0xd1909e);}return logger[_0x8e9e('0xf')](_0x8e9e('0x1b'));}};module[_0x8e9e('0x1c')]=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72b1=['createSquareReport','indexOf','agi_','substring','inspect','debug','stringify','timeout','evtHangup','hangup','sync','production','start','joinAt','YYYY-MM-DD\x20HH:mm:ss','traverseBFS','clear','vertex','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','result','isUndefined','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','close','getLicense','callysquare','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]','./server','listening','xml2json','syncho','util','moment','../../config/environment','../../config/logger','agi','../../config/license/util','./mailRpc','./graph','./vertices','error','stack','log','port','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','[ERROR]\x20%s','arg_1','calleridname','callerid','dnid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','uniqueid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','toJson','mxGraphModel','root','agicommand','hasOwnProperty','maxRetry','retry','addVertex','omit','mxCell','length','source','addEdge','getSquareProject','then','catch'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x72b1,0x16e));var _0x172b=function(_0x5c682e,_0x255c01){_0x5c682e=_0x5c682e-0x0;var _0x38d0c7=_0x72b1[_0x5c682e];return _0x38d0c7;};'use strict';var parser=require(_0x172b('0x0'));var _=require('lodash');var syncho=require(_0x172b('0x1'));var util=require(_0x172b('0x2'));var moment=require(_0x172b('0x3'));var config=require(_0x172b('0x4'));var logger=require(_0x172b('0x5'))(_0x172b('0x6'));var utilLicense=require(_0x172b('0x7'));var rpc=require('./rpc');var mailRpc=require(_0x172b('0x8'));var Graph=require(_0x172b('0x9'));var Vertices=require(_0x172b('0xa'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x172b('0x6')]=_['defaults'](config[_0x172b('0x6')],{'ip':'127.0.0.1','port':0x11dd});function connectionHandler(_0x1f98e9){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0x1f98e9);agiHandler(_0x1f98e9);}catch(_0x6680e0){logger[_0x172b('0xb')](_0x6680e0[_0x172b('0xc')]);}});});}function listeningHandler(){console[_0x172b('0xd')]('Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!',config[_0x172b('0x6')][_0x172b('0xe')]);logger[_0x172b('0xf')](util[_0x172b('0x10')](_0x172b('0x11'),config[_0x172b('0x6')]['ip'],config[_0x172b('0x6')]['port']));}function errorHandler(_0x13d285){if(_0x13d285&&_0x13d285[_0x172b('0x12')]&&_0x13d285[_0x172b('0x13')]){logger['error'](util[_0x172b('0x10')]('[%s]\x20%s',_0x13d285[_0x172b('0x12')],_0x13d285[_0x172b('0x13')]));}else{logger['error'](util[_0x172b('0x10')](_0x172b('0x14'),_0x13d285[_0x172b('0xc')]));}}function closeHandler(){logger[_0x172b('0xf')](util['format']('[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',this[_0x172b('0x15')],this[_0x172b('0x16')],this[_0x172b('0x17')],this[_0x172b('0x18')],this['uniqueid']));try{createSquareReport(this);}catch(_0x4f369b){logger[_0x172b('0xb')](_0x4f369b[_0x172b('0xc')]);}}function timeoutHandler(){logger[_0x172b('0xf')](util[_0x172b('0x10')](_0x172b('0x19'),this['arg_1'],this[_0x172b('0x16')],this[_0x172b('0x17')],this[_0x172b('0x18')],this[_0x172b('0x1a')]));}function hangupHandler(){logger[_0x172b('0xf')](util[_0x172b('0x10')](_0x172b('0x1b'),this['arg_1'],this['calleridname'],this['callerid'],this['dnid'],this[_0x172b('0x1a')]));this['evtHangup']=!![];}function getRoot(_0x721d07){return parser[_0x172b('0x1c')](_0x721d07,{'object':!![]})[_0x172b('0x1d')][_0x172b('0x1e')];}function addVertex(_0x32419a,_0x24e4ff,_0x507b99){_0x24e4ff[_0x172b('0x1f')]=_0x507b99;if(_0x24e4ff[_0x172b('0x20')]('retry')){_0x24e4ff[_0x172b('0x21')]=parseInt(_0x24e4ff[_0x172b('0x22')],0xa);}_0x32419a[_0x172b('0x23')](_[_0x172b('0x24')](_0x24e4ff,_0x172b('0x25')));}function initGraph(_0x778c29,_0x39bdc5){var _0x5ee442=new Graph();for(var _0x1deb7e in _0x778c29){if(_0x778c29[_0x172b('0x20')](_0x1deb7e)){if(_['isArray'](_0x778c29[_0x1deb7e])){for(var _0x4263a1=0x0;_0x4263a1<_0x778c29[_0x1deb7e][_0x172b('0x26')];_0x4263a1+=0x1){addVertex(_0x5ee442,_0x778c29[_0x1deb7e][_0x4263a1],_0x1deb7e);}}else{addVertex(_0x5ee442,_0x778c29[_0x1deb7e],_0x1deb7e);}}}for(var _0x3909b1=0x0;_0x3909b1<_0x39bdc5[_0x172b('0x26')];_0x3909b1+=0x1){if(_0x39bdc5[_0x3909b1][_0x172b('0x27')]&&_0x39bdc5[_0x3909b1]['target']){_0x5ee442[_0x172b('0x28')](_0x39bdc5[_0x3909b1][_0x172b('0x27')],_0x39bdc5[_0x3909b1]['target'],_0x39bdc5[_0x3909b1]['value']);}}return _0x5ee442;}function getSquareProject(_0x43728b,_0xe923f1){rpc[_0x172b('0x29')](_0x43728b)[_0x172b('0x2a')](function(_0x367f80){_0xe923f1(null,_0x367f80);})[_0x172b('0x2b')](function(_0x3345bd){_0xe923f1(null,_0x3345bd);});}function createSquareReport(_0xd4a668,_0x34b4ec){rpc[_0x172b('0x2c')](_0xd4a668)[_0x172b('0x2a')](function(_0x22ba41){if(_0x34b4ec){_0x34b4ec(null,_0x22ba41);}})[_0x172b('0x2b')](function(_0x30abd3){if(_0x34b4ec){_0x34b4ec(null,_0x30abd3);}});}function setChannelVariables(_0x32e35b){for(var _0x1095dd in _0x32e35b){if(_0x32e35b[_0x172b('0x20')](_0x1095dd)){if(_0x1095dd[_0x172b('0x2d')](_0x172b('0x2e'))===0x0){_0x32e35b[_0x1095dd[_0x172b('0x2f')](0x4)]=_0x32e35b[_0x1095dd];delete _0x32e35b[_0x1095dd];}}}}function getLogFromObject(_0x2e0d50){return util[_0x172b('0x30')](_0x2e0d50,{'showHidden':![],'depth':null});}function agiHandler(_0x1a6707){var _0x20f962,_0x992daa,_0x5d211b,_0x33fb71,_0x27e493;logger[_0x172b('0x31')]('variables',JSON[_0x172b('0x32')](_0x1a6707,null,0x2));logger['info'](util['format']('[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1a6707[_0x172b('0x15')],_0x1a6707['calleridname'],_0x1a6707['callerid'],_0x1a6707[_0x172b('0x18')],_0x1a6707[_0x172b('0x1a')]));_0x1a6707['on'](_0x172b('0xb'),errorHandler);_0x1a6707['on']('close',closeHandler);_0x1a6707['on'](_0x172b('0x33'),timeoutHandler);_0x1a6707[_0x172b('0x34')]=![];_0x1a6707['on'](_0x172b('0x35'),hangupHandler);var _0x3c0e6a=getSquareProject[_0x172b('0x36')](null,_0x1a6707[_0x172b('0x15')]);if(_0x3c0e6a){if(_0x3c0e6a[_0x172b('0x37')]){_0x20f962=getRoot(_0x3c0e6a[_0x172b('0x37')]);if(_0x20f962&&_0x20f962[_0x172b('0x38')]){logger[_0x172b('0x31')](_0x172b('0x1e'),JSON[_0x172b('0x32')](_0x20f962,null,0x2));_0x1a6707[_0x172b('0x39')]=moment()[_0x172b('0x10')](_0x172b('0x3a'));_0x992daa=initGraph(_[_0x172b('0x24')](_0x20f962,_0x172b('0x25')),_0x20f962[_0x172b('0x25')]);_0x5d211b=new Vertices(_0x1a6707,rpc,mailRpc);logger[_0x172b('0xf')](util['format']('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1a6707[_0x172b('0x15')],_0x1a6707['calleridname'],_0x1a6707['callerid'],_0x1a6707['dnid'],_0x1a6707[_0x172b('0x1a')]));_0x992daa[_0x172b('0x3b')](_0x20f962[_0x172b('0x38')]['id'],function(_0x54e62d){try{_0x54e62d=_0x5d211b[_0x172b('0x3c')](_0x54e62d);logger[_0x172b('0x31')](_0x172b('0x3d'),JSON['stringify'](_0x54e62d,null,0x2));if(_0x54e62d[_0x172b('0x1f')]==='gotoc'){logger[_0x172b('0xf')](_0x172b('0x3e'));_0x1a6707[_0x172b('0x3f')]=_0x54e62d[_0x172b('0x3f')]||_0x1a6707[_0x172b('0x3f')];_0x1a6707[_0x172b('0x40')]=_0x54e62d[_0x172b('0x40')];_0x1a6707['priority']=_0x54e62d[_0x172b('0x41')]?_0x54e62d[_0x172b('0x41')]-0x1:0x1;return null;}else if(_0x54e62d&&_0x5d211b[_0x54e62d[_0x172b('0x1f')]]){_0x27e493=_0x5d211b[_0x54e62d[_0x172b('0x1f')]](_0x54e62d);logger[_0x172b('0xf')](_0x172b('0x42'),JSON['stringify'](_0x27e493,null,0x2));if(_0x27e493&&_0x27e493['code']===AGI_CODE_SUCCESS&&_0x27e493[_0x172b('0x43')]!==AGI_RESULT_ERROR&&!_0x1a6707['evtHangup']){logger['debug']('response',getLogFromObject(_0x27e493));return _[_0x172b('0x44')](_0x27e493[_0x172b('0x43')])?null:_0x27e493[_0x172b('0x43')][_0x172b('0x45')]();}else{logger['error'](_0x172b('0x42'),getLogFromObject(_0x27e493));return null;}}else{logger[_0x172b('0xb')](_0x172b('0x46'));return null;}}catch(_0x17793c){logger[_0x172b('0xb')](_0x17793c[_0x172b('0xc')]);return null;}});if(_0x20f962[_0x172b('0x47')]){logger[_0x172b('0xf')](util[_0x172b('0x10')](_0x172b('0x48'),_0x1a6707[_0x172b('0x15')],_0x1a6707[_0x172b('0x16')],_0x1a6707['callerid'],_0x1a6707[_0x172b('0x18')],_0x1a6707[_0x172b('0x1a')]));_0x992daa['traverseBFS'](_0x20f962['finally']['id'],function(_0xeda783){try{_0xeda783=_0x5d211b[_0x172b('0x3c')](_0xeda783);logger[_0x172b('0x31')]('vertex',JSON[_0x172b('0x32')](_0xeda783,null,0x2));if(_0xeda783&&_0x5d211b[_0xeda783['agicommand']]){_0x27e493=_0x5d211b[_0xeda783['agicommand']](_0xeda783);if(_0x27e493){logger[_0x172b('0x31')](_0x172b('0x42'),getLogFromObject(_0x27e493));return _[_0x172b('0x44')](_0x27e493[_0x172b('0x43')])?null:_0x27e493[_0x172b('0x43')][_0x172b('0x45')]();}else{logger[_0x172b('0xb')](_0x172b('0x42'),getLogFromObject(_0x27e493));return null;}}else{logger[_0x172b('0xb')](_0x172b('0x46'));return null;}}catch(_0x495cca){logger['error'](_0x495cca[_0x172b('0xc')]);return null;}});}logger[_0x172b('0xf')](util['format']('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1a6707[_0x172b('0x15')],_0x1a6707[_0x172b('0x16')],_0x1a6707[_0x172b('0x17')],_0x1a6707[_0x172b('0x18')],_0x1a6707[_0x172b('0x1a')]));logger[_0x172b('0xf')](util['format'](_0x172b('0x49'),_0x1a6707['context'],_0x1a6707['extension'],parseInt(_0x1a6707[_0x172b('0x41')],0xa)+0x1));_0x1a6707[_0x172b('0x4a')](_0x1a6707[_0x172b('0x3f')],_0x1a6707['extension'],parseInt(_0x1a6707[_0x172b('0x41')],0xa)+0x1);_0x1a6707[_0x172b('0x4b')]();}}else{logger[_0x172b('0xb')](util['format']('Project\x20%s\x20not\x20published',_0x1a6707[_0x172b('0x15')]));_0x1a6707[_0x172b('0x4a')](_0x1a6707[_0x172b('0x3f')],_0x1a6707[_0x172b('0x40')],parseInt(_0x1a6707[_0x172b('0x41')],0xa)+0x1);_0x1a6707[_0x172b('0x4b')]();}}else{logger[_0x172b('0xb')](util[_0x172b('0x10')]('Project\x20%s\x20not\x20found',_0x1a6707[_0x172b('0x15')]));_0x1a6707['continueAt'](_0x1a6707['context'],_0x1a6707[_0x172b('0x40')],parseInt(_0x1a6707['priority'],0xa)+0x1);_0x1a6707[_0x172b('0x4b')]();}}function main(){var _0x3e3a33;return utilLicense[_0x172b('0x4c')]()['then'](function(_0x2cc8c7){if(_0x2cc8c7){if(_0x2cc8c7['voice']){if(_0x2cc8c7[_0x172b('0x4d')]&&_0x2cc8c7[_0x172b('0x4d')]>0x0){logger['info'](util[_0x172b('0x10')]('[LICENSE]\x20CHANNELS:\x20%s',_0x2cc8c7[_0x172b('0x4d')]));_0x3e3a33=_0x2cc8c7[_0x172b('0x4d')];}else{logger[_0x172b('0xf')](_0x172b('0x4e'));}}else{logger[_0x172b('0xf')]('[LICENSE]\x20VOICE\x20IS\x20DISABLED');_0x3e3a33=-0x1;}}})[_0x172b('0x2b')](function(_0x151b3b){logger[_0x172b('0xb')](_0x172b('0x4f'),_0x151b3b['stack']);})[_0x172b('0x47')](function(){var _0x49535f=require(_0x172b('0x50'))(config[_0x172b('0x6')][_0x172b('0xe')],config[_0x172b('0x6')]['ip'],_0x3e3a33);_0x49535f['on'](_0x172b('0xb'),errorHandler);_0x49535f['on'](_0x172b('0x51'),listeningHandler);_0x49535f['on']('connection',connectionHandler);_0x49535f['on'](_0x172b('0x4b'),closeHandler);});}main();
\ No newline at end of file
+var _0xb66c=['context','extension','priority','result','isUndefined','toString','response','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','vertex','continueAt','Project\x20%s\x20not\x20published','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','listening','connection','xml2json','syncho','moment','../../config/environment','../../config/logger','../../config/license/util','./rpc','./mailRpc','./graph','defaults','agi','127.0.0.1','nextTick','error','stack','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','port','name','message','[%s]\x20%s','calleridname','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','evtHangup','toJson','mxGraphModel','root','agicommand','maxRetry','retry','addVertex','mxCell','hasOwnProperty','isArray','length','source','target','addEdge','value','then','catch','createSquareReport','indexOf','agi_','inspect','debug','variables','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','production','start','joinAt','YYYY-MM-DD\x20HH:mm:ss','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','clear','gotoc\x20block\x20stop\x20traverse\x20BFS'];(function(_0x4c7178,_0x52bb9a){var _0x3ccab0=function(_0x4f171b){while(--_0x4f171b){_0x4c7178['push'](_0x4c7178['shift']());}};_0x3ccab0(++_0x52bb9a);}(_0xb66c,0x175));var _0xcb66=function(_0x50b35d,_0x60515f){_0x50b35d=_0x50b35d-0x0;var _0x12e307=_0xb66c[_0x50b35d];return _0x12e307;};'use strict';var parser=require(_0xcb66('0x0'));var _=require('lodash');var syncho=require(_0xcb66('0x1'));var util=require('util');var moment=require(_0xcb66('0x2'));var config=require(_0xcb66('0x3'));var logger=require(_0xcb66('0x4'))('agi');var utilLicense=require(_0xcb66('0x5'));var rpc=require(_0xcb66('0x6'));var mailRpc=require(_0xcb66('0x7'));var Graph=require(_0xcb66('0x8'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config['agi']=_[_0xcb66('0x9')](config[_0xcb66('0xa')],{'ip':_0xcb66('0xb'),'port':0x11dd});function connectionHandler(_0x439f3d){process[_0xcb66('0xc')](function(){syncho(function(){try{setChannelVariables(_0x439f3d);agiHandler(_0x439f3d);}catch(_0x58582b){logger[_0xcb66('0xd')](_0x58582b[_0xcb66('0xe')]);}});});}function listeningHandler(){console[_0xcb66('0xf')](_0xcb66('0x10'),config[_0xcb66('0xa')]['port']);logger[_0xcb66('0x11')](util[_0xcb66('0x12')](_0xcb66('0x13'),config[_0xcb66('0xa')]['ip'],config['agi'][_0xcb66('0x14')]));}function errorHandler(_0x3471f3){if(_0x3471f3&&_0x3471f3[_0xcb66('0x15')]&&_0x3471f3[_0xcb66('0x16')]){logger['error'](util[_0xcb66('0x12')](_0xcb66('0x17'),_0x3471f3[_0xcb66('0x15')],_0x3471f3[_0xcb66('0x16')]));}else{logger['error'](util[_0xcb66('0x12')]('[ERROR]\x20%s',_0x3471f3[_0xcb66('0xe')]));}}function closeHandler(){logger['info'](util[_0xcb66('0x12')]('[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',this['arg_1'],this[_0xcb66('0x18')],this[_0xcb66('0x19')],this[_0xcb66('0x1a')],this[_0xcb66('0x1b')]));try{createSquareReport(this);}catch(_0x4d99c0){logger[_0xcb66('0xd')](_0x4d99c0[_0xcb66('0xe')]);}}function timeoutHandler(){logger[_0xcb66('0x11')](util['format'](_0xcb66('0x1c'),this['arg_1'],this[_0xcb66('0x18')],this[_0xcb66('0x19')],this[_0xcb66('0x1a')],this[_0xcb66('0x1b')]));}function hangupHandler(){logger['info'](util['format']('[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',this[_0xcb66('0x1d')],this['calleridname'],this['callerid'],this[_0xcb66('0x1a')],this['uniqueid']));this[_0xcb66('0x1e')]=!![];}function getRoot(_0x12e2bc){return parser[_0xcb66('0x1f')](_0x12e2bc,{'object':!![]})[_0xcb66('0x20')][_0xcb66('0x21')];}function addVertex(_0x204f15,_0x3391a0,_0x5977e1){_0x3391a0[_0xcb66('0x22')]=_0x5977e1;if(_0x3391a0['hasOwnProperty']('retry')){_0x3391a0[_0xcb66('0x23')]=parseInt(_0x3391a0[_0xcb66('0x24')],0xa);}_0x204f15[_0xcb66('0x25')](_['omit'](_0x3391a0,_0xcb66('0x26')));}function initGraph(_0x196ef6,_0x43cd8f){var _0x40e3de=new Graph();for(var _0x5affdb in _0x196ef6){if(_0x196ef6[_0xcb66('0x27')](_0x5affdb)){if(_[_0xcb66('0x28')](_0x196ef6[_0x5affdb])){for(var _0x134987=0x0;_0x134987<_0x196ef6[_0x5affdb][_0xcb66('0x29')];_0x134987+=0x1){addVertex(_0x40e3de,_0x196ef6[_0x5affdb][_0x134987],_0x5affdb);}}else{addVertex(_0x40e3de,_0x196ef6[_0x5affdb],_0x5affdb);}}}for(var _0x37a676=0x0;_0x37a676<_0x43cd8f[_0xcb66('0x29')];_0x37a676+=0x1){if(_0x43cd8f[_0x37a676][_0xcb66('0x2a')]&&_0x43cd8f[_0x37a676][_0xcb66('0x2b')]){_0x40e3de[_0xcb66('0x2c')](_0x43cd8f[_0x37a676][_0xcb66('0x2a')],_0x43cd8f[_0x37a676]['target'],_0x43cd8f[_0x37a676][_0xcb66('0x2d')]);}}return _0x40e3de;}function getSquareProject(_0x5b7cf2,_0x4dbb7f){rpc['getSquareProject'](_0x5b7cf2)[_0xcb66('0x2e')](function(_0x4ca8b4){_0x4dbb7f(null,_0x4ca8b4);})[_0xcb66('0x2f')](function(_0x228b0c){_0x4dbb7f(null,_0x228b0c);});}function createSquareReport(_0x1b8a79,_0x5d3fb5){rpc[_0xcb66('0x30')](_0x1b8a79)[_0xcb66('0x2e')](function(_0x266862){if(_0x5d3fb5){_0x5d3fb5(null,_0x266862);}})[_0xcb66('0x2f')](function(_0xa411e3){if(_0x5d3fb5){_0x5d3fb5(null,_0xa411e3);}});}function setChannelVariables(_0x375636){for(var _0x2a5e56 in _0x375636){if(_0x375636[_0xcb66('0x27')](_0x2a5e56)){if(_0x2a5e56[_0xcb66('0x31')](_0xcb66('0x32'))===0x0){_0x375636[_0x2a5e56['substring'](0x4)]=_0x375636[_0x2a5e56];delete _0x375636[_0x2a5e56];}}}}function getLogFromObject(_0x4529e8){return util[_0xcb66('0x33')](_0x4529e8,{'showHidden':![],'depth':null});}function agiHandler(_0xeba0d1){var _0x5f6d80,_0x1fea04,_0x128256,_0xec4052,_0x5a343f;logger[_0xcb66('0x34')](_0xcb66('0x35'),JSON[_0xcb66('0x36')](_0xeba0d1,null,0x2));logger[_0xcb66('0x11')](util['format'](_0xcb66('0x37'),_0xeba0d1[_0xcb66('0x1d')],_0xeba0d1[_0xcb66('0x18')],_0xeba0d1[_0xcb66('0x19')],_0xeba0d1[_0xcb66('0x1a')],_0xeba0d1[_0xcb66('0x1b')]));_0xeba0d1['on'](_0xcb66('0xd'),errorHandler);_0xeba0d1['on'](_0xcb66('0x38'),closeHandler);_0xeba0d1['on'](_0xcb66('0x39'),timeoutHandler);_0xeba0d1[_0xcb66('0x1e')]=![];_0xeba0d1['on'](_0xcb66('0x3a'),hangupHandler);var _0x17b087=getSquareProject['sync'](null,_0xeba0d1['arg_1']);if(_0x17b087){if(_0x17b087['production']){_0x5f6d80=getRoot(_0x17b087[_0xcb66('0x3b')]);if(_0x5f6d80&&_0x5f6d80[_0xcb66('0x3c')]){logger[_0xcb66('0x34')](_0xcb66('0x21'),JSON[_0xcb66('0x36')](_0x5f6d80,null,0x2));_0xeba0d1[_0xcb66('0x3d')]=moment()['format'](_0xcb66('0x3e'));_0x1fea04=initGraph(_['omit'](_0x5f6d80,'mxCell'),_0x5f6d80['mxCell']);_0x128256=new Vertices(_0xeba0d1,rpc,mailRpc);logger[_0xcb66('0x11')](util[_0xcb66('0x12')](_0xcb66('0x3f'),_0xeba0d1[_0xcb66('0x1d')],_0xeba0d1[_0xcb66('0x18')],_0xeba0d1[_0xcb66('0x19')],_0xeba0d1[_0xcb66('0x1a')],_0xeba0d1[_0xcb66('0x1b')]));_0x1fea04[_0xcb66('0x40')](_0x5f6d80['start']['id'],function(_0xe45331){try{_0xe45331=_0x128256[_0xcb66('0x41')](_0xe45331);logger[_0xcb66('0x34')]('vertex',JSON[_0xcb66('0x36')](_0xe45331,null,0x2));if(_0xe45331[_0xcb66('0x22')]==='gotoc'){logger['info'](_0xcb66('0x42'));_0xeba0d1['context']=_0xe45331['context']||_0xeba0d1[_0xcb66('0x43')];_0xeba0d1[_0xcb66('0x44')]=_0xe45331[_0xcb66('0x44')];_0xeba0d1[_0xcb66('0x45')]=_0xe45331[_0xcb66('0x45')]?_0xe45331[_0xcb66('0x45')]-0x1:0x1;return null;}else if(_0xe45331&&_0x128256[_0xe45331[_0xcb66('0x22')]]){_0x5a343f=_0x128256[_0xe45331[_0xcb66('0x22')]](_0xe45331);logger[_0xcb66('0x11')]('response',JSON['stringify'](_0x5a343f,null,0x2));if(_0x5a343f&&_0x5a343f['code']===AGI_CODE_SUCCESS&&_0x5a343f[_0xcb66('0x46')]!==AGI_RESULT_ERROR&&!_0xeba0d1['evtHangup']){logger[_0xcb66('0x34')]('response',getLogFromObject(_0x5a343f));return _[_0xcb66('0x47')](_0x5a343f[_0xcb66('0x46')])?null:_0x5a343f[_0xcb66('0x46')][_0xcb66('0x48')]();}else{logger[_0xcb66('0xd')](_0xcb66('0x49'),getLogFromObject(_0x5a343f));return null;}}else{logger['error']('agicommand\x20not\x20found');return null;}}catch(_0x437490){logger[_0xcb66('0xd')](_0x437490[_0xcb66('0xe')]);return null;}});if(_0x5f6d80[_0xcb66('0x4a')]){logger[_0xcb66('0x11')](util[_0xcb66('0x12')](_0xcb66('0x4b'),_0xeba0d1[_0xcb66('0x1d')],_0xeba0d1[_0xcb66('0x18')],_0xeba0d1['callerid'],_0xeba0d1[_0xcb66('0x1a')],_0xeba0d1[_0xcb66('0x1b')]));_0x1fea04[_0xcb66('0x40')](_0x5f6d80[_0xcb66('0x4a')]['id'],function(_0x4a2465){try{_0x4a2465=_0x128256[_0xcb66('0x41')](_0x4a2465);logger[_0xcb66('0x34')](_0xcb66('0x4c'),JSON['stringify'](_0x4a2465,null,0x2));if(_0x4a2465&&_0x128256[_0x4a2465[_0xcb66('0x22')]]){_0x5a343f=_0x128256[_0x4a2465[_0xcb66('0x22')]](_0x4a2465);if(_0x5a343f){logger[_0xcb66('0x34')](_0xcb66('0x49'),getLogFromObject(_0x5a343f));return _['isUndefined'](_0x5a343f[_0xcb66('0x46')])?null:_0x5a343f[_0xcb66('0x46')][_0xcb66('0x48')]();}else{logger['error']('response',getLogFromObject(_0x5a343f));return null;}}else{logger[_0xcb66('0xd')]('agicommand\x20not\x20found');return null;}}catch(_0x37262a){logger['error'](_0x37262a[_0xcb66('0xe')]);return null;}});}logger[_0xcb66('0x11')](util[_0xcb66('0x12')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0xeba0d1[_0xcb66('0x1d')],_0xeba0d1['calleridname'],_0xeba0d1[_0xcb66('0x19')],_0xeba0d1[_0xcb66('0x1a')],_0xeba0d1[_0xcb66('0x1b')]));logger[_0xcb66('0x11')](util[_0xcb66('0x12')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0xeba0d1[_0xcb66('0x43')],_0xeba0d1['extension'],parseInt(_0xeba0d1[_0xcb66('0x45')],0xa)+0x1));_0xeba0d1[_0xcb66('0x4d')](_0xeba0d1[_0xcb66('0x43')],_0xeba0d1['extension'],parseInt(_0xeba0d1['priority'],0xa)+0x1);_0xeba0d1['close']();}}else{logger[_0xcb66('0xd')](util[_0xcb66('0x12')](_0xcb66('0x4e'),_0xeba0d1[_0xcb66('0x1d')]));_0xeba0d1[_0xcb66('0x4d')](_0xeba0d1[_0xcb66('0x43')],_0xeba0d1[_0xcb66('0x44')],parseInt(_0xeba0d1[_0xcb66('0x45')],0xa)+0x1);_0xeba0d1[_0xcb66('0x38')]();}}else{logger[_0xcb66('0xd')](util['format'](_0xcb66('0x4f'),_0xeba0d1[_0xcb66('0x1d')]));_0xeba0d1[_0xcb66('0x4d')](_0xeba0d1[_0xcb66('0x43')],_0xeba0d1['extension'],parseInt(_0xeba0d1['priority'],0xa)+0x1);_0xeba0d1[_0xcb66('0x38')]();}}function main(){var _0x476c9a;return utilLicense[_0xcb66('0x50')]()[_0xcb66('0x2e')](function(_0xff3820){if(_0xff3820){if(_0xff3820[_0xcb66('0x51')]){if(_0xff3820['callysquare']&&_0xff3820[_0xcb66('0x52')]>0x0){logger[_0xcb66('0x11')](util[_0xcb66('0x12')](_0xcb66('0x53'),_0xff3820['callysquare']));_0x476c9a=_0xff3820[_0xcb66('0x52')];}else{logger['info'](_0xcb66('0x54'));}}else{logger['info'](_0xcb66('0x55'));_0x476c9a=-0x1;}}})[_0xcb66('0x2f')](function(_0x146a06){logger['error']('[LICENSE]',_0x146a06[_0xcb66('0xe')]);})[_0xcb66('0x4a')](function(){var _0x55ab08=require('./server')(config[_0xcb66('0xa')]['port'],config[_0xcb66('0xa')]['ip'],_0x476c9a);_0x55ab08['on']('error',errorHandler);_0x55ab08['on'](_0xcb66('0x56'),listeningHandler);_0x55ab08['on'](_0xcb66('0x57'),connectionHandler);_0x55ab08['on'](_0xcb66('0x38'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['result','catch','sendMailMessage','SendMail','bluebird','jayson/promise','client','http','request','error','message'];(function(_0xf61520,_0x4fb773){var _0x5c553a=function(_0x5c5449){while(--_0x5c5449){_0xf61520['push'](_0xf61520['shift']());}};_0x5c553a(++_0x4fb773);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'use strict';var BPromise=require(_0x7995('0x0'));var jayson=require(_0x7995('0x1'));var client=jayson[_0x7995('0x2')][_0x7995('0x3')]({'port':0x232b});function request(_0x5b96eb,_0x86c128){return new BPromise(function(_0x3c58eb,_0x1902b4){return client[_0x7995('0x4')](_0x5b96eb,_0x86c128)['then'](function(_0x744bea){if(_0x744bea[_0x7995('0x5')]){return _0x1902b4(_0x744bea[_0x7995('0x5')][_0x7995('0x6')]);}else{return _0x3c58eb(_0x744bea[_0x7995('0x7')]);}})[_0x7995('0x8')](function(_0x4996ca){return _0x1902b4(_0x4996ca);});});}exports[_0x7995('0x9')]=function(_0x1cad37,_0x4a64f7){return request(_0x7995('0xa'),{'account':_0x1cad37,'message':_0x4a64f7});};
\ No newline at end of file
+var _0x9957=['result','catch','sendMailMessage','SendMail','bluebird','jayson/promise','client','http','request','error','message'];(function(_0x572cae,_0x1c840d){var _0x4affe4=function(_0x4cac1d){while(--_0x4cac1d){_0x572cae['push'](_0x572cae['shift']());}};_0x4affe4(++_0x1c840d);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'use strict';var BPromise=require(_0x7995('0x0'));var jayson=require(_0x7995('0x1'));var client=jayson[_0x7995('0x2')][_0x7995('0x3')]({'port':0x232b});function request(_0x5b96eb,_0x86c128){return new BPromise(function(_0x3c58eb,_0x1902b4){return client[_0x7995('0x4')](_0x5b96eb,_0x86c128)['then'](function(_0x744bea){if(_0x744bea[_0x7995('0x5')]){return _0x1902b4(_0x744bea[_0x7995('0x5')][_0x7995('0x6')]);}else{return _0x3c58eb(_0x744bea[_0x7995('0x7')]);}})[_0x7995('0x8')](function(_0x4996ca){return _0x1902b4(_0x4996ca);});});}exports[_0x7995('0x9')]=function(_0x1cad37,_0x4a64f7){return request(_0x7995('0xa'),{'account':_0x1cad37,'message':_0x4a64f7});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['exports','util','stream','Transform','call','_localBuffer','_inBody','inherits','\x0d\x0a\x0d\x0a','toString','substring','length','split','slice','trim','headers','indexOf','emit','line'];(function(_0x3b5794,_0x254fa1){var _0x5ac592=function(_0x10fb9b){while(--_0x10fb9b){_0x3b5794['push'](_0x3b5794['shift']());}};_0x5ac592(++_0x254fa1);}(_0x5f2f,0x73));var _0xf5f2=function(_0x20e8c1,_0x97672f){_0x20e8c1=_0x20e8c1-0x0;var _0x4b8e6f=_0x5f2f[_0x20e8c1];return _0x4b8e6f;};'use strict';var util=require(_0xf5f2('0x0'));var Transform=require(_0xf5f2('0x1'))[_0xf5f2('0x2')];function AGIReply(_0x1a7be1){Transform[_0xf5f2('0x3')](this,_0x1a7be1);this[_0xf5f2('0x4')]='';this[_0xf5f2('0x5')]=![];}util[_0xf5f2('0x6')](AGIReply,Transform);AGIReply['prototype']['_transform']=function(_0x1665c7,_0x192215,_0xad7f65){var _0x3eebf6='\x0a',_0x3133bc=['\x0a\x0a',_0xf5f2('0x7')],_0x473100=-0x1,_0x5907aa=-0x1,_0x466882='',_0x46cd9c=0x0,_0x2ec345='',_0x56a69f='';this[_0xf5f2('0x4')]+=_0x1665c7[_0xf5f2('0x8')]();_0x2ec345=this['_localBuffer'];if(!this[_0xf5f2('0x5')]){_0x46cd9c=0x0;while(_0x3133bc[_0x46cd9c]){while((_0x5907aa=_0x2ec345['indexOf'](_0x3133bc[_0x46cd9c]))!=-0x1){_0x466882=_0x3133bc[_0x46cd9c];_0x56a69f=_0x2ec345['substring'](0x0,_0x5907aa);_0x2ec345=_0x2ec345[_0xf5f2('0x9')](_0x5907aa+_0x466882[_0xf5f2('0xa')]);var _0x4b78cd=_0x56a69f[_0xf5f2('0xb')](_0x3eebf6),_0x336f6b=0x0,_0x14b51f={},_0x331482='',_0x3f2997='',_0x59bb6c=-0x1;while(_0x4b78cd[_0x336f6b]){_0x59bb6c=_0x4b78cd[_0x336f6b]['indexOf'](':');if(_0x59bb6c!=-0x1){_0x331482=_0x4b78cd[_0x336f6b][_0xf5f2('0xc')](0x0,_0x59bb6c)[_0xf5f2('0xd')]();_0x3f2997=_0x4b78cd[_0x336f6b][_0xf5f2('0xc')](_0x59bb6c+0x1)[_0xf5f2('0xd')]();if(_0x331482[_0xf5f2('0xa')]>0x0){_0x14b51f[_0x331482]=_0x3f2997;}}else{}_0x336f6b++;}this['emit'](_0xf5f2('0xe'),_0x14b51f);this[_0xf5f2('0x5')]=!![];}_0x46cd9c++;}this[_0xf5f2('0x4')]=_0x2ec345;}else{while((_0x473100=_0x2ec345[_0xf5f2('0xf')](_0x3eebf6))!=-0x1){_0x56a69f=_0x2ec345[_0xf5f2('0x9')](0x0,_0x473100);this[_0xf5f2('0x10')](_0xf5f2('0x11'),_0x56a69f);_0x2ec345=_0x2ec345[_0xf5f2('0x9')](_0x473100+_0x3eebf6[_0xf5f2('0xa')]);}this[_0xf5f2('0x4')]=_0x2ec345;}_0xad7f65();};module[_0xf5f2('0x12')]=AGIReply;
\ No newline at end of file
+var _0xb10b=['call','_inBody','inherits','prototype','_transform','\x0d\x0a\x0d\x0a','_localBuffer','toString','indexOf','substring','split','trim','slice','length','emit','headers','line','exports','util','Transform'];(function(_0xc6b104,_0x1d805a){var _0x1c6fce=function(_0x1bfb3f){while(--_0x1bfb3f){_0xc6b104['push'](_0xc6b104['shift']());}};_0x1c6fce(++_0x1d805a);}(_0xb10b,0x12a));var _0xbb10=function(_0x1e88eb,_0x4d031e){_0x1e88eb=_0x1e88eb-0x0;var _0x23fe01=_0xb10b[_0x1e88eb];return _0x23fe01;};'use strict';var util=require(_0xbb10('0x0'));var Transform=require('stream')[_0xbb10('0x1')];function AGIReply(_0x35bc5f){Transform[_0xbb10('0x2')](this,_0x35bc5f);this['_localBuffer']='';this[_0xbb10('0x3')]=![];}util[_0xbb10('0x4')](AGIReply,Transform);AGIReply[_0xbb10('0x5')][_0xbb10('0x6')]=function(_0x49baf4,_0x312b72,_0x481979){var _0x328583='\x0a',_0x3cdd53=['\x0a\x0a',_0xbb10('0x7')],_0x513741=-0x1,_0x1b9e94=-0x1,_0x3fb675='',_0x21370f=0x0,_0x1c3ee5='',_0x2353ef='';this[_0xbb10('0x8')]+=_0x49baf4[_0xbb10('0x9')]();_0x1c3ee5=this['_localBuffer'];if(!this['_inBody']){_0x21370f=0x0;while(_0x3cdd53[_0x21370f]){while((_0x1b9e94=_0x1c3ee5[_0xbb10('0xa')](_0x3cdd53[_0x21370f]))!=-0x1){_0x3fb675=_0x3cdd53[_0x21370f];_0x2353ef=_0x1c3ee5[_0xbb10('0xb')](0x0,_0x1b9e94);_0x1c3ee5=_0x1c3ee5[_0xbb10('0xb')](_0x1b9e94+_0x3fb675['length']);var _0x408248=_0x2353ef[_0xbb10('0xc')](_0x328583),_0x5be7e0=0x0,_0x44fb19={},_0x916a32='',_0x285009='',_0x193a27=-0x1;while(_0x408248[_0x5be7e0]){_0x193a27=_0x408248[_0x5be7e0][_0xbb10('0xa')](':');if(_0x193a27!=-0x1){_0x916a32=_0x408248[_0x5be7e0]['slice'](0x0,_0x193a27)[_0xbb10('0xd')]();_0x285009=_0x408248[_0x5be7e0][_0xbb10('0xe')](_0x193a27+0x1)[_0xbb10('0xd')]();if(_0x916a32[_0xbb10('0xf')]>0x0){_0x44fb19[_0x916a32]=_0x285009;}}else{}_0x5be7e0++;}this[_0xbb10('0x10')](_0xbb10('0x11'),_0x44fb19);this[_0xbb10('0x3')]=!![];}_0x21370f++;}this[_0xbb10('0x8')]=_0x1c3ee5;}else{while((_0x513741=_0x1c3ee5[_0xbb10('0xa')](_0x328583))!=-0x1){_0x2353ef=_0x1c3ee5[_0xbb10('0xb')](0x0,_0x513741);this['emit'](_0xbb10('0x12'),_0x2353ef);_0x1c3ee5=_0x1c3ee5[_0xbb10('0xb')](_0x513741+_0x328583[_0xbb10('0xf')]);}this[_0xbb10('0x8')]=_0x1c3ee5;}_0x481979();};module[_0xbb10('0x13')]=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14ca=['result','catch','getSquareProject','ShowSquareProject','production','getMailAccountById','Smtp','getSquareProjectById','name','getVoiceQueueById','ShowVoiceQueue','getVariableById','ShowVariable','getSquareOdbcById','ShowSquareOdbc','dsn','ShowUser','getTrunkById','getIntervalById','ShowInterval','Interval','getSmsAccountById','ShowSmsAccount','createSmsMessage','CreateSmsMessage','CreateSquareDetailsReport','createSquareReport','CreateSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','CreateSquareMessage','phone','ListId','CreateCmContact','getPauseById','ShowPause','agentLogin','agentPause','PauseUser','agentUnpause','UnpauseUser','agentLogout','LogoutUser','bluebird','moment','util','client','request','then','error','message'];(function(_0x117da7,_0x3c275b){var _0x9fd0ba=function(_0x51c2db){while(--_0x51c2db){_0x117da7['push'](_0x117da7['shift']());}};_0x9fd0ba(++_0x3c275b);}(_0x14ca,0x148));var _0xa14c=function(_0x576139,_0x4d401d){_0x576139=_0x576139-0x0;var _0x3519cc=_0x14ca[_0x576139];return _0x3519cc;};'use strict';var BPromise=require(_0xa14c('0x0'));var moment=require(_0xa14c('0x1'));var _=require('lodash');var util=require(_0xa14c('0x2'));var jayson=require('jayson/promise');var client=jayson[_0xa14c('0x3')]['http']({'port':0x2329});function request(_0x25bfab,_0x289b27){return new BPromise(function(_0x5adc15,_0x29bcaf){return client[_0xa14c('0x4')](_0x25bfab,_0x289b27)[_0xa14c('0x5')](function(_0x50f9e8){if(_0x50f9e8['error']){return _0x29bcaf(_0x50f9e8[_0xa14c('0x6')][_0xa14c('0x7')]);}else{return _0x5adc15(_0x50f9e8[_0xa14c('0x8')]);}})[_0xa14c('0x9')](function(_0x2b708a){return _0x29bcaf(_0x2b708a);});});}exports[_0xa14c('0xa')]=function(_0x2e69c8){return request(_0xa14c('0xb'),{'options':{'raw':![],'where':{'name':_0x2e69c8},'attributes':[_0xa14c('0xc')]}});};exports[_0xa14c('0xd')]=function(_0x26ebf1){return request('ShowMailAccount',{'options':{'raw':![],'where':{'id':_0x26ebf1},'include':[{'model':'MailServerOut','as':_0xa14c('0xe')}],'attributes':['id','name','email']}});};exports[_0xa14c('0xf')]=function(_0x69cc71){return request('ShowSquareProject',{'options':{'where':{'id':_0x69cc71},'attributes':[_0xa14c('0x10')]}});};exports[_0xa14c('0x11')]=function(_0x547eb1){return request(_0xa14c('0x12'),{'options':{'where':{'id':_0x547eb1},'attributes':[_0xa14c('0x10')]}});};exports[_0xa14c('0x13')]=function(_0x4e5982){return request(_0xa14c('0x14'),{'options':{'where':{'id':_0x4e5982},'attributes':[_0xa14c('0x10')]}});};exports[_0xa14c('0x15')]=function(_0x10d92f){return request(_0xa14c('0x16'),{'options':{'where':{'id':_0x10d92f},'attributes':[_0xa14c('0x17')]}});};exports['getUserById']=function(_0x372289){return request(_0xa14c('0x18'),{'options':{'where':{'id':_0x372289},'attributes':[_0xa14c('0x10')]}});};exports[_0xa14c('0x19')]=function(_0x116cfe){return request('ShowTrunk',{'options':{'where':{'id':_0x116cfe},'attributes':[_0xa14c('0x10')]}});};exports['getSoundById']=function(_0x324611){return request('ShowSound',{'options':{'where':{'id':_0x324611},'attributes':['save_name']}});};exports[_0xa14c('0x1a')]=function(_0xc71f05){return request(_0xa14c('0x1b'),{'options':{'raw':![],'where':{'id':_0xc71f05},'include':[{'model':_0xa14c('0x1c'),'as':'Intervals'}]}});};exports[_0xa14c('0x1d')]=function(_0x49bb12){return request(_0xa14c('0x1e'),{'options':{'where':{'id':_0x49bb12},'attributes':['id',_0xa14c('0x10')]}});};exports[_0xa14c('0x1f')]=function(_0x34f7b2){return request(_0xa14c('0x20'),{'body':_0x34f7b2});};exports['createSquareDetailsReport']=function(_0xe08776){return request(_0xa14c('0x21'),{'body':_0xe08776});};exports[_0xa14c('0x22')]=function(_0x5e10e0){return request(_0xa14c('0x23'),{'body':_[_0xa14c('0x24')](_0x5e10e0,{'project_name':_0x5e10e0[_0xa14c('0x25')],'prev_project_name':_0x5e10e0[_0xa14c('0x26')]||'','is_subproject':_0x5e10e0['arg_2']?!![]:![],'leaveAt':moment()[_0xa14c('0x27')](_0xa14c('0x28'))})});};exports[_0xa14c('0x29')]=function(_0x3d0fcb){return request(_0xa14c('0x2a'),{'body':_0x3d0fcb});};exports['createSquareMessage']=function(_0x1434a0){return request(_0xa14c('0x2b'),{'body':_0x1434a0});};exports['createCmContact']=function(_0x5b8725){return request('ShowCmHopper',{'options':{'raw':![],'where':{'phone':_0x5b8725[_0xa14c('0x2c')],'ListId':_0x5b8725[_0xa14c('0x2d')]}}})[_0xa14c('0x5')](function(_0x1f9932){if(_0x1f9932){return _0x1f9932;}return request(_0xa14c('0x2e'),{'body':_0x5b8725});});};exports[_0xa14c('0x2f')]=function(_0x14ada5){return request(_0xa14c('0x30'),{'options':{'where':{'id':_0x14ada5},'attributes':[_0xa14c('0x10')]}});};exports[_0xa14c('0x31')]=function(_0x193441,_0x541044){return request('LoginUser',{'body':{'interface':_0x541044},'options':{'where':_0x193441}});};exports[_0xa14c('0x32')]=function(_0x22d48b,_0xcebe14,_0x58c83d){return request(_0xa14c('0x33'),{'body':{'type':_0xcebe14,'uniqueid':_0x58c83d},'options':{'where':_0x22d48b}});};exports[_0xa14c('0x34')]=function(_0x2c3e50){return request(_0xa14c('0x35'),{'body':{},'options':{'where':_0x2c3e50}});};exports[_0xa14c('0x36')]=function(_0x57c270){return request(_0xa14c('0x37'),{'body':{},'options':{'where':_0x57c270}});};
\ No newline at end of file
+var _0x1fcd=['getSoundById','save_name','getIntervalById','ShowInterval','Interval','Intervals','ShowSmsAccount','createSmsMessage','CreateSquareDetailsReport','CreateSquareReport','arg_1','arg_2','YYYY-MM-DD\x20HH:mm:ss','CreateSquareRecording','createSquareMessage','CreateSquareMessage','createCmContact','ShowCmHopper','phone','ListId','getPauseById','ShowPause','agentLogin','LoginUser','agentPause','PauseUser','agentUnpause','UnpauseUser','agentLogout','moment','lodash','util','jayson/promise','client','http','request','then','error','result','getSquareProject','ShowSquareProject','production','getMailAccountById','MailServerOut','Smtp','getSquareProjectById','name','getVoiceQueueById','ShowVoiceQueue','getVariableById','ShowSquareOdbc','dsn','getUserById','ShowUser','getTrunkById'];(function(_0x1782b2,_0x3a63b8){var _0x182e34=function(_0x141f87){while(--_0x141f87){_0x1782b2['push'](_0x1782b2['shift']());}};_0x182e34(++_0x3a63b8);}(_0x1fcd,0x19e));var _0xd1fc=function(_0x2e0443,_0x7e5974){_0x2e0443=_0x2e0443-0x0;var _0x52d450=_0x1fcd[_0x2e0443];return _0x52d450;};'use strict';var BPromise=require('bluebird');var moment=require(_0xd1fc('0x0'));var _=require(_0xd1fc('0x1'));var util=require(_0xd1fc('0x2'));var jayson=require(_0xd1fc('0x3'));var client=jayson[_0xd1fc('0x4')][_0xd1fc('0x5')]({'port':0x2329});function request(_0x51c83b,_0x5af116){return new BPromise(function(_0xdde06e,_0x1b3a97){return client[_0xd1fc('0x6')](_0x51c83b,_0x5af116)[_0xd1fc('0x7')](function(_0x2433b3){if(_0x2433b3[_0xd1fc('0x8')]){return _0x1b3a97(_0x2433b3[_0xd1fc('0x8')]['message']);}else{return _0xdde06e(_0x2433b3[_0xd1fc('0x9')]);}})['catch'](function(_0x58fc9d){return _0x1b3a97(_0x58fc9d);});});}exports[_0xd1fc('0xa')]=function(_0x20920a){return request(_0xd1fc('0xb'),{'options':{'raw':![],'where':{'name':_0x20920a},'attributes':[_0xd1fc('0xc')]}});};exports[_0xd1fc('0xd')]=function(_0xdf6500){return request('ShowMailAccount',{'options':{'raw':![],'where':{'id':_0xdf6500},'include':[{'model':_0xd1fc('0xe'),'as':_0xd1fc('0xf')}],'attributes':['id','name','email']}});};exports[_0xd1fc('0x10')]=function(_0x2a225f){return request('ShowSquareProject',{'options':{'where':{'id':_0x2a225f},'attributes':[_0xd1fc('0x11')]}});};exports[_0xd1fc('0x12')]=function(_0x41d0e2){return request(_0xd1fc('0x13'),{'options':{'where':{'id':_0x41d0e2},'attributes':[_0xd1fc('0x11')]}});};exports[_0xd1fc('0x14')]=function(_0xd32135){return request('ShowVariable',{'options':{'where':{'id':_0xd32135},'attributes':['name']}});};exports['getSquareOdbcById']=function(_0x576280){return request(_0xd1fc('0x15'),{'options':{'where':{'id':_0x576280},'attributes':[_0xd1fc('0x16')]}});};exports[_0xd1fc('0x17')]=function(_0x16b17e){return request(_0xd1fc('0x18'),{'options':{'where':{'id':_0x16b17e},'attributes':['name']}});};exports[_0xd1fc('0x19')]=function(_0x2727c6){return request('ShowTrunk',{'options':{'where':{'id':_0x2727c6},'attributes':['name']}});};exports[_0xd1fc('0x1a')]=function(_0x21e321){return request('ShowSound',{'options':{'where':{'id':_0x21e321},'attributes':[_0xd1fc('0x1b')]}});};exports[_0xd1fc('0x1c')]=function(_0x7b29b6){return request(_0xd1fc('0x1d'),{'options':{'raw':![],'where':{'id':_0x7b29b6},'include':[{'model':_0xd1fc('0x1e'),'as':_0xd1fc('0x1f')}]}});};exports['getSmsAccountById']=function(_0x4d4cbc){return request(_0xd1fc('0x20'),{'options':{'where':{'id':_0x4d4cbc},'attributes':['id',_0xd1fc('0x11')]}});};exports[_0xd1fc('0x21')]=function(_0xf6faba){return request('CreateSmsMessage',{'body':_0xf6faba});};exports['createSquareDetailsReport']=function(_0x249d6d){return request(_0xd1fc('0x22'),{'body':_0x249d6d});};exports['createSquareReport']=function(_0x254265){return request(_0xd1fc('0x23'),{'body':_['merge'](_0x254265,{'project_name':_0x254265[_0xd1fc('0x24')],'prev_project_name':_0x254265[_0xd1fc('0x25')]||'','is_subproject':_0x254265[_0xd1fc('0x25')]?!![]:![],'leaveAt':moment()['format'](_0xd1fc('0x26'))})});};exports['createSquareRecording']=function(_0x5e1d90){return request(_0xd1fc('0x27'),{'body':_0x5e1d90});};exports[_0xd1fc('0x28')]=function(_0x3290c3){return request(_0xd1fc('0x29'),{'body':_0x3290c3});};exports[_0xd1fc('0x2a')]=function(_0x4307f7){return request(_0xd1fc('0x2b'),{'options':{'raw':![],'where':{'phone':_0x4307f7[_0xd1fc('0x2c')],'ListId':_0x4307f7[_0xd1fc('0x2d')]}}})[_0xd1fc('0x7')](function(_0x103c0a){if(_0x103c0a){return _0x103c0a;}return request('CreateCmContact',{'body':_0x4307f7});});};exports[_0xd1fc('0x2e')]=function(_0x22693e){return request(_0xd1fc('0x2f'),{'options':{'where':{'id':_0x22693e},'attributes':['name']}});};exports[_0xd1fc('0x30')]=function(_0x4d716d,_0xa8a3f7){return request(_0xd1fc('0x31'),{'body':{'interface':_0xa8a3f7},'options':{'where':_0x4d716d}});};exports[_0xd1fc('0x32')]=function(_0x1512e0,_0x6409cc,_0x127007){return request(_0xd1fc('0x33'),{'body':{'type':_0x6409cc,'uniqueid':_0x127007},'options':{'where':_0x1512e0}});};exports[_0xd1fc('0x34')]=function(_0x564f04){return request(_0xd1fc('0x35'),{'body':{},'options':{'where':_0x564f04}});};exports[_0xd1fc('0x36')]=function(_0x18a138){return request('LogoutUser',{'body':{},'options':{'where':_0x18a138}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x86c5=['./polly','exports'];(function(_0xcfe8cc,_0xb83aeb){var _0x55ac53=function(_0x4067d4){while(--_0x4067d4){_0xcfe8cc['push'](_0xcfe8cc['shift']());}};_0x55ac53(++_0xb83aeb);}(_0x86c5,0x124));var _0x586c=function(_0x5e667b,_0x8b62c5){_0x5e667b=_0x5e667b-0x0;var _0x29f509=_0x86c5[_0x5e667b];return _0x29f509;};var polly=require(_0x586c('0x0'));var lex=require('./lex');module[_0x586c('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0x6490=['./polly','./lex','exports'];(function(_0x1d3bb9,_0x53e071){var _0xe2227=function(_0x2b6b4d){while(--_0x2b6b4d){_0x1d3bb9['push'](_0x1d3bb9['shift']());}};_0xe2227(++_0x53e071);}(_0x6490,0x102));var _0x0649=function(_0x257896,_0x8de612){_0x257896=_0x257896-0x0;var _0x1ff242=_0x6490[_0x257896];return _0x1ff242;};var polly=require(_0x0649('0x0'));var lex=require(_0x0649('0x1'));module[_0x0649('0x2')]={'polly':polly,'lex':lex};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13c0=['exports','./lib/api'];(function(_0x5bfb6e,_0x9edfc1){var _0x3c3c39=function(_0x529b1e){while(--_0x529b1e){_0x5bfb6e['push'](_0x5bfb6e['shift']());}};_0x3c3c39(++_0x9edfc1);}(_0x13c0,0x79));var _0x013c=function(_0x56b886,_0x1ff474){_0x56b886=_0x56b886-0x0;var _0x164baf=_0x13c0[_0x56b886];return _0x164baf;};'use strict';var lex=require(_0x013c('0x0'));module[_0x013c('0x1')]=function(_0x112e3c,_0x27895b,_0x5b4348,_0x4fb1ff,_0x5b8e8e,_0x17ae19){return lex(_0x112e3c,_0x27895b,_0x5b4348,_0x4fb1ff,_0x5b8e8e,_0x17ae19);};
\ No newline at end of file
+var _0x46fc=['exports','./lib/api'];(function(_0x3161f4,_0x8e7b45){var _0x1b2b59=function(_0x2adbfd){while(--_0x2adbfd){_0x3161f4['push'](_0x3161f4['shift']());}};_0x1b2b59(++_0x8e7b45);}(_0x46fc,0x103));var _0xc46f=function(_0x4f01ad,_0x5334cd){_0x4f01ad=_0x4f01ad-0x0;var _0x189341=_0x46fc[_0x4f01ad];return _0x189341;};'use strict';var lex=require(_0xc46f('0x0'));module[_0xc46f('0x1')]=function(_0xf5212c,_0x23d3ae,_0x865c60,_0x9460ea,_0x2bf9ee,_0x24058a){return lex(_0xf5212c,_0x23d3ae,_0x865c60,_0x9460ea,_0x2bf9ee,_0x24058a);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9776=['bluebird','aws-sdk','slots','slot_','exports','LexRuntime'];(function(_0x450d4e,_0xcacc3){var _0x300304=function(_0x49ab27){while(--_0x49ab27){_0x450d4e['push'](_0x450d4e['shift']());}};_0x300304(++_0xcacc3);}(_0x9776,0x1b0));var _0x6977=function(_0x516d39,_0x4c4dc3){_0x516d39=_0x516d39-0x0;var _0x1e1642=_0x9776[_0x516d39];return _0x1e1642;};'use strict';var BPromise=require(_0x6977('0x0'));var AWS=require(_0x6977('0x1'));function lexResult(_0x3bc6be,_0x29cf59){return new BPromise(function(_0x2de5e7,_0x13c6c7){_0x3bc6be['postText'](_0x29cf59,function(_0x461d6e,_0x297181){if(_0x461d6e){_0x13c6c7(_0x461d6e);}if(_0x297181[_0x6977('0x2')]){for(const _0x308150 in _0x297181['slots']){if(_0x297181['slots']['hasOwnProperty'](_0x308150)){var _0x1fe5ce=_0x297181[_0x6977('0x2')][_0x308150];_0x297181[_0x6977('0x3')+_0x308150]=_0x1fe5ce;}}}_0x2de5e7(_0x297181);});});}module[_0x6977('0x4')]=function(_0x9ac3e6,_0x506199,_0x262cef,_0x40472c,_0x54a200,_0x38be36){var _0x3b4be2=new AWS[(_0x6977('0x5'))]({'accessKeyId':_0x506199,'secretAccessKey':_0x262cef,'region':_0x40472c});var _0x45e4f3={'botAlias':'$LATEST','botName':_0x38be36,'inputText':_0x54a200,'userId':_0x9ac3e6};return lexResult(_0x3b4be2,_0x45e4f3);};
\ No newline at end of file
+var _0xcbc7=['slots','slot_','exports','LexRuntime','$LATEST','bluebird','aws-sdk'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcbc7,0xd7));var _0x7cbc=function(_0x354b70,_0x2ee366){_0x354b70=_0x354b70-0x0;var _0x56a7e8=_0xcbc7[_0x354b70];return _0x56a7e8;};'use strict';var BPromise=require(_0x7cbc('0x0'));var AWS=require(_0x7cbc('0x1'));function lexResult(_0x30187b,_0x204119){return new BPromise(function(_0x2cf174,_0x316d3b){_0x30187b['postText'](_0x204119,function(_0x4be47f,_0x40650e){if(_0x4be47f){_0x316d3b(_0x4be47f);}if(_0x40650e[_0x7cbc('0x2')]){for(const _0x32dba6 in _0x40650e[_0x7cbc('0x2')]){if(_0x40650e['slots']['hasOwnProperty'](_0x32dba6)){var _0x185ce6=_0x40650e['slots'][_0x32dba6];_0x40650e[_0x7cbc('0x3')+_0x32dba6]=_0x185ce6;}}}_0x2cf174(_0x40650e);});});}module[_0x7cbc('0x4')]=function(_0x5b9397,_0x11c0d5,_0x13189b,_0x52c900,_0x289420,_0x263a82){var _0x43a8ae=new AWS[(_0x7cbc('0x5'))]({'accessKeyId':_0x11c0d5,'secretAccessKey':_0x13189b,'region':_0x52c900});var _0x29b0bc={'botAlias':_0x7cbc('0x6'),'botName':_0x263a82,'inputText':_0x289420,'userId':_0x5b9397};return lexResult(_0x43a8ae,_0x29b0bc);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21a9=['exports','./lib/api'];(function(_0x4256c7,_0xc203b3){var _0x550502=function(_0xdb50c1){while(--_0xdb50c1){_0x4256c7['push'](_0x4256c7['shift']());}};_0x550502(++_0xc203b3);}(_0x21a9,0x16b));var _0x921a=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x21a9[_0x59ee6f];return _0x4c0979;};'use strict';var polly=require(_0x921a('0x0'));module[_0x921a('0x1')]=function(_0x47a070,_0x257490,_0x2d6f4d,_0x3da8a2,_0x2228bc,_0x58ab2e,_0xcca076){return polly(_0x47a070,_0x257490,_0x2d6f4d,_0x3da8a2,_0x2228bc,_0x58ab2e,_0xcca076);};
\ No newline at end of file
+var _0xcfd2=['./lib/api'];(function(_0x196005,_0x26c833){var _0x59d640=function(_0x11a5f8){while(--_0x11a5f8){_0x196005['push'](_0x196005['shift']());}};_0x59d640(++_0x26c833);}(_0xcfd2,0x113));var _0x2cfd=function(_0x5c825d,_0x2dc3bf){_0x5c825d=_0x5c825d-0x0;var _0x1de873=_0xcfd2[_0x5c825d];return _0x1de873;};'use strict';var polly=require(_0x2cfd('0x0'));module['exports']=function(_0x31d0ca,_0xe88917,_0x4d89b6,_0x294ea4,_0x4c04cd,_0x4033dc,_0x4709cd){return polly(_0x31d0ca,_0xe88917,_0x4d89b6,_0x294ea4,_0x4c04cd,_0x4033dc,_0x4709cd);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ceb=['randomstring','synthesizeSpeech','AudioStream','writeFile','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','mp3','path','bluebird'];(function(_0x38e1f0,_0x48d9aa){var _0x156c65=function(_0x20e0c7){while(--_0x20e0c7){_0x38e1f0['push'](_0x38e1f0['shift']());}};_0x156c65(++_0x48d9aa);}(_0x2ceb,0x1c1));var _0xb2ce=function(_0x5efdfc,_0x1a78ca){_0x5efdfc=_0x5efdfc-0x0;var _0x3c36fa=_0x2ceb[_0x5efdfc];return _0x3c36fa;};'use strict';var fs=require('fs');var path=require(_0xb2ce('0x0'));var BPromise=require(_0xb2ce('0x1'));var rs=require(_0xb2ce('0x2'));var AWS=require('aws-sdk');function pollyResult(_0x58f707,_0x140b27,_0x402fda){return new BPromise(function(_0xb93148,_0x56bfb3){_0x58f707[_0xb2ce('0x3')](_0x140b27,function(_0x583b6a,_0x3bbbfb){if(_0x583b6a){_0x56bfb3(_0x583b6a);}else if(_0x3bbbfb){if(_0x3bbbfb[_0xb2ce('0x4')]instanceof Buffer){fs[_0xb2ce('0x5')](_0x402fda,_0x3bbbfb[_0xb2ce('0x4')],function(_0x4226d9){if(_0x4226d9){_0x56bfb3(_0x4226d9);}else{_0xb93148();}});}else{_0x56bfb3(new Error(_0xb2ce('0x6')));}}else{_0x56bfb3(new Error(_0xb2ce('0x7')));}});});}module[_0xb2ce('0x8')]=function(_0x3b4a6a,_0x306ddb,_0x33d591,_0x580f87,_0x2c6877,_0x1f470b,_0x5ed191){var _0xf1a694=new AWS[(_0xb2ce('0x9'))]({'accessKeyId':_0x3b4a6a,'secretAccessKey':_0x306ddb,'region':_0x33d591});var _0x6f7327={'Text':_0x2c6877,'TextType':_0x1f470b||'text','OutputFormat':_0xb2ce('0xa'),'VoiceId':_0x580f87};return pollyResult(_0xf1a694,_0x6f7327,_0x5ed191);};
\ No newline at end of file
+var _0xea56=['bluebird','randomstring','aws-sdk','AudioStream','writeFile','No\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','mp3'];(function(_0x29e3ec,_0x138a18){var _0x25727e=function(_0x2bea0d){while(--_0x2bea0d){_0x29e3ec['push'](_0x29e3ec['shift']());}};_0x25727e(++_0x138a18);}(_0xea56,0x8c));var _0x6ea5=function(_0x4c6840,_0x97fe36){_0x4c6840=_0x4c6840-0x0;var _0x23e354=_0xea56[_0x4c6840];return _0x23e354;};'use strict';var fs=require('fs');var path=require('path');var BPromise=require(_0x6ea5('0x0'));var rs=require(_0x6ea5('0x1'));var AWS=require(_0x6ea5('0x2'));function pollyResult(_0x33e08e,_0x317f66,_0x298b39){return new BPromise(function(_0x4d1812,_0x57b86d){_0x33e08e['synthesizeSpeech'](_0x317f66,function(_0x12f8f5,_0x2fb2ab){if(_0x12f8f5){_0x57b86d(_0x12f8f5);}else if(_0x2fb2ab){if(_0x2fb2ab[_0x6ea5('0x3')]instanceof Buffer){fs[_0x6ea5('0x4')](_0x298b39,_0x2fb2ab[_0x6ea5('0x3')],function(_0x139c7b){if(_0x139c7b){_0x57b86d(_0x139c7b);}else{_0x4d1812();}});}else{_0x57b86d(new Error('Invalid\x20data\x20response\x20from\x20aws\x20Polly!'));}}else{_0x57b86d(new Error(_0x6ea5('0x5')));}});});}module[_0x6ea5('0x6')]=function(_0x31fa0d,_0x5cf918,_0x17bf4e,_0x42422c,_0x98af63,_0x245cf5,_0x298285){var _0x3b51f9=new AWS[(_0x6ea5('0x7'))]({'accessKeyId':_0x31fa0d,'secretAccessKey':_0x5cf918,'region':_0x17bf4e});var _0x3ac23d={'Text':_0x98af63,'TextType':_0x245cf5||_0x6ea5('0x8'),'OutputFormat':_0x6ea5('0x9'),'VoiceId':_0x42422c};return pollyResult(_0x3b51f9,_0x3ac23d,_0x298285);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaca=['./lib/api','exports'];(function(_0x2847d0,_0x10a787){var _0x1cc209=function(_0x3863ff){while(--_0x3863ff){_0x2847d0['push'](_0x2847d0['shift']());}};_0x1cc209(++_0x10a787);}(_0xbaca,0xfc));var _0xabac=function(_0x44c935,_0x3653f0){_0x44c935=_0x44c935-0x0;var _0x465bee=_0xbaca[_0x44c935];return _0x465bee;};'use strict';var asr=require(_0xabac('0x0'));module[_0xabac('0x1')]=function(_0x5c2fa7,_0x3ea86d,_0x174427,_0x599bac){return asr(_0x5c2fa7,_0x3ea86d,_0x174427);};
\ No newline at end of file
+var _0x99cd=['./lib/api'];(function(_0x3b8347,_0x7fa5a0){var _0x2aa5ff=function(_0x11f94d){while(--_0x11f94d){_0x3b8347['push'](_0x3b8347['shift']());}};_0x2aa5ff(++_0x7fa5a0);}(_0x99cd,0x1df));var _0xd99c=function(_0x13facf,_0x12edf4){_0x13facf=_0x13facf-0x0;var _0x1ae876=_0x99cd[_0x13facf];return _0x1ae876;};'use strict';var asr=require(_0xd99c('0x0'));module['exports']=function(_0x1ff7d3,_0x146718,_0x1ed35b,_0x39359c){return asr(_0x1ff7d3,_0x146718,_0x1ed35b);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06f6=['string','length','filepath\x20should\x20be\x20a\x20string','key\x20should\x20be\x20a\x20string','undefined','lang\x20should\x20be\x20a\x20string','toString','base64','POST','/v1/speech:recognize?key=','8000','url','bluebird','exports'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x06f6,0x115));var _0x606f=function(_0x4b951c,_0x1d242c){_0x4b951c=_0x4b951c-0x0;var _0x5eaa10=_0x06f6[_0x4b951c];return _0x5eaa10;};'use strict';var url=require(_0x606f('0x0'));var BPromise=require(_0x606f('0x1'));var fs=require('fs');var host='https://speech.googleapis.com';module[_0x606f('0x2')]=function(_0x269fcb,_0x143864,_0x28f08b){return new BPromise(function(_0x499a7a,_0x199780){var _0x58b584;if(typeof _0x269fcb!==_0x606f('0x3')||_0x269fcb[_0x606f('0x4')]===0x0){return _0x199780(_0x606f('0x5'));}if(typeof _0x143864!==_0x606f('0x3')||_0x143864['length']===0x0){return _0x199780(_0x606f('0x6'));}if(typeof _0x28f08b!==_0x606f('0x7')&&(typeof _0x28f08b!==_0x606f('0x3')||_0x28f08b[_0x606f('0x4')]===0x0)){return _0x199780(_0x606f('0x8'));}try{_0x58b584=fs['readFileSync'](_0x269fcb)[_0x606f('0x9')](_0x606f('0xa'));}catch(_0x36ce45){return _0x199780(_0x36ce45);}return _0x499a7a({'method':_0x606f('0xb'),'uri':host+_0x606f('0xc')+_0x143864,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':_0x606f('0xd'),'languageCode':_0x28f08b},'audio':{'content':_0x58b584}},'json':!![]});});};
\ No newline at end of file
+var _0xffe1=['length','filepath\x20should\x20be\x20a\x20string','key\x20should\x20be\x20a\x20string','undefined','lang\x20should\x20be\x20a\x20string','toString','8000','url','bluebird','https://speech.googleapis.com','exports','string'];(function(_0x58e469,_0x95ee3e){var _0x4c01c5=function(_0x1ef7ae){while(--_0x1ef7ae){_0x58e469['push'](_0x58e469['shift']());}};_0x4c01c5(++_0x95ee3e);}(_0xffe1,0x1f3));var _0x1ffe=function(_0xb3e2a,_0x5805cf){_0xb3e2a=_0xb3e2a-0x0;var _0x300692=_0xffe1[_0xb3e2a];return _0x300692;};'use strict';var url=require(_0x1ffe('0x0'));var BPromise=require(_0x1ffe('0x1'));var fs=require('fs');var host=_0x1ffe('0x2');module[_0x1ffe('0x3')]=function(_0x1482b7,_0x4d3872,_0x767ba1){return new BPromise(function(_0x28bb73,_0x2b1a51){var _0x2e7bce;if(typeof _0x1482b7!==_0x1ffe('0x4')||_0x1482b7[_0x1ffe('0x5')]===0x0){return _0x2b1a51(_0x1ffe('0x6'));}if(typeof _0x4d3872!==_0x1ffe('0x4')||_0x4d3872['length']===0x0){return _0x2b1a51(_0x1ffe('0x7'));}if(typeof _0x767ba1!==_0x1ffe('0x8')&&(typeof _0x767ba1!=='string'||_0x767ba1[_0x1ffe('0x5')]===0x0)){return _0x2b1a51(_0x1ffe('0x9'));}try{_0x2e7bce=fs['readFileSync'](_0x1482b7)[_0x1ffe('0xa')]('base64');}catch(_0x24d02c){return _0x2b1a51(_0x24d02c);}return _0x28bb73({'method':'POST','uri':host+'/v1/speech:recognize?key='+_0x4d3872,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':_0x1ffe('0xb'),'languageCode':_0x767ba1},'audio':{'content':_0x2e7bce}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['./asr','exports'];(function(_0x269094,_0x4701b3){var _0x10344f=function(_0x180a69){while(--_0x180a69){_0x269094['push'](_0x269094['shift']());}};_0x10344f(++_0x4701b3);}(_0x008c,0x188));var _0xc008=function(_0xbe48c2,_0x3db103){_0xbe48c2=_0xbe48c2-0x0;var _0x39a679=_0x008c[_0xbe48c2];return _0x39a679;};var asr=require(_0xc008('0x0'));module[_0xc008('0x1')]={'asr':asr};
\ No newline at end of file
+var _0x34e8=['./asr','exports'];(function(_0x135904,_0x1e252b){var _0x1ce7d5=function(_0x25a721){while(--_0x25a721){_0x135904['push'](_0x135904['shift']());}};_0x1ce7d5(++_0x1e252b);}(_0x34e8,0x12c));var _0x834e=function(_0x1c1a11,_0x174c6f){_0x1c1a11=_0x1c1a11-0x0;var _0x51c4c3=_0x34e8[_0x1c1a11];return _0x51c4c3;};var asr=require(_0x834e('0x0'));module[_0x834e('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','close','unlink','download\x20error','pipe','end','data','wav','error\x20convert','start','readFileSync','toString','then','generate','resolve','tmp','.wav','chmodSync','goggleTTS\x20path','split','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','message','googleDialogflow','textRequest','stringify','source','result','action','actionIncomplete','fulfillment','speech','score','endConversation','metadata','tildeASR','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','.mp3','lex','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','777','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','path','http','https','url','bluebird','randomstring','sox','request-promise','querystring','moment','google-tts-api','apiai-promise','./google','./aws','../../../config/logger','agi','protocol','host','WHAT_EVER'];(function(_0x3db179,_0x16c7e1){var _0x4360fd=function(_0x20d975){while(--_0x20d975){_0x3db179['push'](_0x3db179['shift']());}};_0x4360fd(++_0x16c7e1);}(_0x9957,0x93));var _0x7995=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x9957[_0x3b380d];return _0x54502b;};'use strict';var fs=require('fs');var path=require(_0x7995('0x0'));var http=require(_0x7995('0x1'));var https=require(_0x7995('0x2'));var urlParse=require(_0x7995('0x3'))['parse'];var BPromise=require(_0x7995('0x4'));var rs=require(_0x7995('0x5'));var sox=require(_0x7995('0x6'));var rp=require(_0x7995('0x7'));var util=require('util');var querystring=require(_0x7995('0x8'));var moment=require(_0x7995('0x9'));var tts=require(_0x7995('0xa'));var apiai=require(_0x7995('0xb'));var google=require(_0x7995('0xc'));var aws=require(_0x7995('0xd'));var tilde=require('./tilde');var logger=require(_0x7995('0xe'))(_0x7995('0xf'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0xa2e5f0,_0x3116fb){return new BPromise(function(_0x18c8a3,_0x35b5fe){var _0x3c1d19=urlParse(_0xa2e5f0);var _0x1e400a=_0x3c1d19[_0x7995('0x10')]==='https:'?https:http;var _0x245143={'host':_0x3c1d19[_0x7995('0x11')],'path':_0x3c1d19['path'],'headers':{'user-agent':_0x7995('0x12')}};_0x1e400a[_0x7995('0x13')](_0x245143,function(_0x19a27e){if(_0x19a27e[_0x7995('0x14')]!==0xc8){logger[_0x7995('0x15')](_0x7995('0x16')+_0xa2e5f0+_0x7995('0x17')+_0x19a27e['statusCode']+'\x20('+_0x19a27e['statusMessage']+')');_0x35b5fe(new Error(_0x7995('0x16')+_0xa2e5f0+_0x7995('0x17')+_0x19a27e[_0x7995('0x14')]+'\x20('+_0x19a27e[_0x7995('0x18')]+')'));return;}var _0x3f1d3e=fs[_0x7995('0x19')](_0x3116fb);_0x3f1d3e['on'](_0x7995('0x1a'),function(){logger[_0x7995('0x1b')]('finish\x20download\x20file');_0x3f1d3e[_0x7995('0x1c')](_0x18c8a3);});_0x3f1d3e['on']('error',function(_0x2f832e){fs[_0x7995('0x1d')](_0x3116fb);logger[_0x7995('0x15')](_0x7995('0x1e'),_0x2f832e);_0x35b5fe(_0x2f832e);});_0x19a27e[_0x7995('0x1f')](_0x3f1d3e);})['on'](_0x7995('0x15'),function(_0x4faa60){logger['error'](_0x4faa60);_0x35b5fe(_0x4faa60);})[_0x7995('0x20')]();});}function uploadFile(_0x5e6f90){return new BPromise(function(_0x555f74,_0x3ec178){var _0x3d463e=urlParse(_0x5e6f90);var _0x4cbe10=_0x3d463e[_0x7995('0x10')]==='https:'?https:http;var _0x4b1a8e={'host':_0x3d463e[_0x7995('0x11')],'path':_0x3d463e[_0x7995('0x0')],'headers':{'user-agent':_0x7995('0x12')}};_0x4cbe10[_0x7995('0x13')](_0x4b1a8e,function(_0x460924){if(_0x460924[_0x7995('0x14')]!==0xc8){_0x3ec178(new Error('request\x20to\x20'+_0x5e6f90+_0x7995('0x17')+_0x460924[_0x7995('0x14')]+'\x20('+_0x460924[_0x7995('0x18')]+')'));return;}var _0x285437='';_0x460924['on'](_0x7995('0x21'),function(_0x13bc35){_0x285437+=_0x13bc35;});_0x460924['on'](_0x7995('0x20'),function(){_0x555f74(_0x285437);});})['on'](_0x7995('0x15'),function(_0x59405a){_0x3ec178(_0x59405a);})[_0x7995('0x20')]();});}function convertFile(_0x34e70c,_0x401dc3){return new BPromise(function(_0x268ce7,_0x3a3fcf){var _0x2a307e=sox['transcode'](_0x34e70c,_0x401dc3,{'sampleRate':0x1f40,'format':_0x7995('0x22'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2a307e['on']('error',function(_0x229742){logger[_0x7995('0x15')](_0x7995('0x23'),_0x229742);_0x3a3fcf(_0x229742);});_0x2a307e['on'](_0x7995('0x20'),function(){logger[_0x7995('0x1b')]('finish\x20to\x20convert');_0x268ce7();});_0x2a307e[_0x7995('0x24')]();});}function base64Encode(_0x514445){var _0x456a28=fs[_0x7995('0x25')](_0x514445);return new Buffer(_0x456a28)[_0x7995('0x26')]('base64');}exports['googleTTS']=function(_0x48e573,_0x3573be){var _0xe6b0b3,_0x327a81;return tts(_0x48e573,_0x3573be||'en',0x1)[_0x7995('0x27')](function(_0x2e3493){logger[_0x7995('0x1b')](_0x2e3493);_0xe6b0b3=path['resolve'](__dirname,'tmp',rs[_0x7995('0x28')](0x4)+'.mp3');return downloadFile(_0x2e3493,_0xe6b0b3);})[_0x7995('0x27')](function(){_0x327a81=path[_0x7995('0x29')](__dirname,_0x7995('0x2a'),rs[_0x7995('0x28')](0x4)+_0x7995('0x2b'));return convertFile(_0xe6b0b3,_0x327a81);})['then'](function(){try{fs[_0x7995('0x1d')](_0xe6b0b3);fs[_0x7995('0x2c')](_0x327a81,'777');}catch(_0x48db25){logger['error'](_0x48db25);}logger[_0x7995('0x1b')](_0x7995('0x2d'),_0x327a81['split']('.')[0x0]);return _0x327a81[_0x7995('0x2e')]('.')[0x0];});};exports['googleASR']=function(_0x37917b,_0x1cb058,_0x177cb4){return google['asr'](_0x37917b,_0x1cb058,_0x177cb4)['then'](function(_0x36d057){logger['info'](_0x36d057['uri']);return rp(_0x36d057);})[_0x7995('0x27')](function(_0xe328b1){var _0x5212ff='';var _0x1baa15=0x0;try{fs[_0x7995('0x1d')](_0x37917b);}catch(_0x2b772f){logger[_0x7995('0x15')](_0x2b772f);}if(_0xe328b1&&_0xe328b1[_0x7995('0x2f')]){_0x5212ff=_0xe328b1['results'][_0x7995('0x30')](function(_0x242713){return _0x242713&&_0x242713[_0x7995('0x31')][0x0]&&_0x242713[_0x7995('0x31')][0x0]['transcript']?_0x242713[_0x7995('0x31')][0x0][_0x7995('0x32')]:'';})[_0x7995('0x33')]('\x0a');_0x1baa15=_0xe328b1[_0x7995('0x2f')][_0x7995('0x30')](function(_0x1035dc){return _0x1035dc&&_0x1035dc['alternatives'][0x0]&&_0x1035dc[_0x7995('0x31')][0x0][_0x7995('0x34')]?_0x1035dc[_0x7995('0x31')][0x0][_0x7995('0x34')]:0x0;})[_0x7995('0x33')]('\x0a');}logger[_0x7995('0x1b')](_0x7995('0x35'),_0x5212ff);logger[_0x7995('0x1b')](_0x7995('0x36'),_0x1baa15);return{'transcript':_0x5212ff,'confidence':_0x1baa15};})[_0x7995('0x37')](function(_0x6fe77b){logger[_0x7995('0x15')](_0x7995('0x38'),_0x6fe77b['statusCode'],_0x6fe77b['name'],_0x6fe77b[_0x7995('0x39')]);});};exports[_0x7995('0x3a')]=function(_0x58523e,_0x4b0855,_0x3f8522,_0x4a9fef){var _0x504a33=apiai(_0x4b0855,{'language':_0x4a9fef||'en'});return _0x504a33[_0x7995('0x3b')](_0x3f8522,{'sessionId':_0x58523e})[_0x7995('0x27')](function(_0x35c8ff){logger['info'](JSON[_0x7995('0x3c')](_0x35c8ff));return{'source':_0x35c8ff['result'][_0x7995('0x3d')],'resolvedQuery':_0x35c8ff['result']['resolvedQuery'],'action':_0x35c8ff[_0x7995('0x3e')][_0x7995('0x3f')],'actionIncomplete':_0x35c8ff[_0x7995('0x3e')][_0x7995('0x40')],'speech':_0x35c8ff['result'][_0x7995('0x41')][_0x7995('0x42')],'score':_0x35c8ff[_0x7995('0x3e')][_0x7995('0x43')],'statusCode':_0x35c8ff['status']['code'],'endConversation':_0x35c8ff[_0x7995('0x3e')]['metadata'][_0x7995('0x44')]||![],'isFallbackIntent':_0x35c8ff['result'][_0x7995('0x45')]['isFallbackIntent']};});};exports[_0x7995('0x46')]=function(_0x1b0373,_0x4d9245,_0x3e9e62,_0x336ff2){return tilde[_0x7995('0x47')](_0x1b0373,_0x4d9245,_0x3e9e62,_0x336ff2)[_0x7995('0x27')](function(_0x4c6837){try{fs[_0x7995('0x1d')](_0x1b0373);}catch(_0x3e787d){logger[_0x7995('0x15')](_0x3e787d);}logger['info'](_0x7995('0x48'),_0x4c6837[_0x7995('0x32')]);logger[_0x7995('0x1b')](_0x7995('0x49'),_0x4c6837[_0x7995('0x34')]);return _0x4c6837;});};exports['awsPolly']=function(_0x1a5cec,_0xfb72b2,_0x5921b9,_0x3d1dbb,_0x5843ba,_0x1d87f9){var _0x187735=path[_0x7995('0x29')](__dirname,_0x7995('0x2a'),rs[_0x7995('0x28')](0x4)+_0x7995('0x4a'));var _0x1579b9;return aws['polly'](_0x1a5cec,_0xfb72b2,_0x5921b9,_0x3d1dbb,_0x5843ba,_0x1d87f9,_0x187735)[_0x7995('0x27')](function(){_0x1579b9=path[_0x7995('0x29')](__dirname,_0x7995('0x2a'),rs['generate'](0x4)+_0x7995('0x2b'));return convertFile(_0x187735,_0x1579b9);})[_0x7995('0x27')](function(){try{fs[_0x7995('0x1d')](_0x187735);fs['chmodSync'](_0x1579b9,'777');}catch(_0x5a592e){logger[_0x7995('0x15')](_0x5a592e);}return _0x1579b9[_0x7995('0x2e')]('.')[0x0];});};exports['awsLex']=function(_0x1cd85,_0x29f300,_0x31f27c,_0x1a9bd7,_0xc04004,_0x528c8e){return aws[_0x7995('0x4b')](_0x1cd85,_0x29f300,_0x31f27c,_0x1a9bd7,_0xc04004,_0x528c8e)['then'](function(_0x14fe7f){logger[_0x7995('0x1b')](JSON[_0x7995('0x3c')](_0x14fe7f));return _0x14fe7f;});};exports['ispeechTTS']=function(_0x5e1f34,_0x54e2b1,_0x563f8e,_0x2e13b0){var _0x3709de=util[_0x7995('0x4c')](_0x7995('0x4d'),ISPEECH_API,_0x5e1f34,encodeURIComponent(_0x54e2b1),_0x563f8e,_0x2e13b0);var _0x1d957e=path[_0x7995('0x29')](__dirname,_0x7995('0x2a'),rs[_0x7995('0x28')](0x4)+_0x7995('0x4a'));var _0x17ecd3;return downloadFile(_0x3709de,_0x1d957e)[_0x7995('0x27')](function(){_0x17ecd3=path[_0x7995('0x29')](__dirname,_0x7995('0x2a'),rs[_0x7995('0x28')](0x4)+_0x7995('0x2b'));return convertFile(_0x1d957e,_0x17ecd3);})[_0x7995('0x27')](function(){try{fs[_0x7995('0x1d')](_0x1d957e);fs[_0x7995('0x2c')](_0x17ecd3,_0x7995('0x4e'));}catch(_0x50b7c2){logger[_0x7995('0x15')](_0x50b7c2);}return _0x17ecd3[_0x7995('0x2e')]('.')[0x0];});};exports[_0x7995('0x4f')]=function(_0x32c0d3,_0x5d160d,_0x53125a,_0x402fa0){var _0x197b52=util[_0x7995('0x4c')](_0x7995('0x50'),ISPEECH_API,_0x5d160d,_0x53125a,base64Encode(_0x32c0d3),_0x402fa0?util['format'](_0x7995('0x51'),encodeURIComponent(_0x402fa0)):_0x7995('0x52'));return uploadFile(_0x197b52)[_0x7995('0x27')](function(_0x33c49c){return querystring['parse'](_0x33c49c);});};exports['dirName']=function(){return __dirname;};
\ No newline at end of file
+var _0x24a9=['error\x20convert','finish\x20to\x20convert','start','toString','base64','googleTTS','then','resolve','.mp3','tmp','generate','.wav','unlink','goggleTTS\x20path','googleASR','asr','uri','results','map','transcript','alternatives','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','message','googleDialogflow','textRequest','stringify','result','source','action','actionIncomplete','fulfillment','score','status','code','metadata','isFallbackIntent','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','polly','chmodSync','777','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','split','model=%s','sestekNDA','nda','text','channelData','CustomAction','CustomActionData','path','http','url','parse','bluebird','randomstring','request-promise','util','querystring','moment','google-tts-api','md5','./google','../../../config/logger','https://api.ispeech.org/api/rest','protocol','https:','WHAT_EVER','error','\x20failed,\x20status\x20code\x20=\x20','statusCode','request\x20to\x20','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','close','download\x20error','pipe','end','get','data'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x24a9,0xf9));var _0x924a=function(_0x27605c,_0x4b75f4){_0x27605c=_0x27605c-0x0;var _0x1079ed=_0x24a9[_0x27605c];return _0x1079ed;};'use strict';var fs=require('fs');var path=require(_0x924a('0x0'));var http=require(_0x924a('0x1'));var https=require('https');var urlParse=require(_0x924a('0x2'))[_0x924a('0x3')];var BPromise=require(_0x924a('0x4'));var rs=require(_0x924a('0x5'));var sox=require('sox');var rp=require(_0x924a('0x6'));var util=require(_0x924a('0x7'));var querystring=require(_0x924a('0x8'));var moment=require(_0x924a('0x9'));var tts=require(_0x924a('0xa'));var apiai=require('apiai-promise');var md5=require(_0x924a('0xb'));var google=require(_0x924a('0xc'));var aws=require('./aws');var tilde=require('./tilde');var sestek=require('./sestek');var logger=require(_0x924a('0xd'))('agi');var ISPEECH_API=_0x924a('0xe');function downloadFile(_0x40dade,_0xf0e80a){return new BPromise(function(_0x2b1b12,_0x50bd14){var _0x44dfe4=urlParse(_0x40dade);var _0x3487c5=_0x44dfe4[_0x924a('0xf')]===_0x924a('0x10')?https:http;var _0x2d8d4a={'host':_0x44dfe4['host'],'path':_0x44dfe4[_0x924a('0x0')],'headers':{'user-agent':_0x924a('0x11')}};_0x3487c5['get'](_0x2d8d4a,function(_0x295fbe){if(_0x295fbe['statusCode']!==0xc8){logger[_0x924a('0x12')]('request\x20to\x20'+_0x40dade+_0x924a('0x13')+_0x295fbe[_0x924a('0x14')]+'\x20('+_0x295fbe['statusMessage']+')');_0x50bd14(new Error(_0x924a('0x15')+_0x40dade+_0x924a('0x13')+_0x295fbe['statusCode']+'\x20('+_0x295fbe[_0x924a('0x16')]+')'));return;}var _0x894148=fs[_0x924a('0x17')](_0xf0e80a);_0x894148['on'](_0x924a('0x18'),function(){logger[_0x924a('0x19')](_0x924a('0x1a'));_0x894148[_0x924a('0x1b')](_0x2b1b12);});_0x894148['on'](_0x924a('0x12'),function(_0x3ffc6d){fs['unlink'](_0xf0e80a);logger[_0x924a('0x12')](_0x924a('0x1c'),_0x3ffc6d);_0x50bd14(_0x3ffc6d);});_0x295fbe[_0x924a('0x1d')](_0x894148);})['on']('error',function(_0x3501fc){logger[_0x924a('0x12')](_0x3501fc);_0x50bd14(_0x3501fc);})[_0x924a('0x1e')]();});}function uploadFile(_0x390e71){return new BPromise(function(_0x48d54d,_0x157342){var _0xb86ce5=urlParse(_0x390e71);var _0x5b932a=_0xb86ce5[_0x924a('0xf')]===_0x924a('0x10')?https:http;var _0x4e6fa7={'host':_0xb86ce5['host'],'path':_0xb86ce5[_0x924a('0x0')],'headers':{'user-agent':_0x924a('0x11')}};_0x5b932a[_0x924a('0x1f')](_0x4e6fa7,function(_0x5bf121){if(_0x5bf121[_0x924a('0x14')]!==0xc8){_0x157342(new Error(_0x924a('0x15')+_0x390e71+'\x20failed,\x20status\x20code\x20=\x20'+_0x5bf121[_0x924a('0x14')]+'\x20('+_0x5bf121['statusMessage']+')'));return;}var _0x54ac7d='';_0x5bf121['on'](_0x924a('0x20'),function(_0x580169){_0x54ac7d+=_0x580169;});_0x5bf121['on'](_0x924a('0x1e'),function(){_0x48d54d(_0x54ac7d);});})['on'](_0x924a('0x12'),function(_0x2a9dfc){_0x157342(_0x2a9dfc);})[_0x924a('0x1e')]();});}function convertFile(_0x5014ff,_0xc86e60){return new BPromise(function(_0x5f2dec,_0xdfb43e){var _0x4aa2c2=sox['transcode'](_0x5014ff,_0xc86e60,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4aa2c2['on'](_0x924a('0x12'),function(_0x5a67c5){logger[_0x924a('0x12')](_0x924a('0x21'),_0x5a67c5);_0xdfb43e(_0x5a67c5);});_0x4aa2c2['on'](_0x924a('0x1e'),function(){logger[_0x924a('0x19')](_0x924a('0x22'));_0x5f2dec();});_0x4aa2c2[_0x924a('0x23')]();});}function base64Encode(_0x2b29cf){var _0x3011a9=fs['readFileSync'](_0x2b29cf);return new Buffer(_0x3011a9)[_0x924a('0x24')](_0x924a('0x25'));}exports[_0x924a('0x26')]=function(_0x371015,_0x42d189){var _0x149ed5,_0x878985;return tts(_0x371015,_0x42d189||'en',0x1)[_0x924a('0x27')](function(_0xf97ca){logger['info'](_0xf97ca);_0x149ed5=path[_0x924a('0x28')](__dirname,'tmp',rs['generate'](0x4)+_0x924a('0x29'));return downloadFile(_0xf97ca,_0x149ed5);})[_0x924a('0x27')](function(){_0x878985=path['resolve'](__dirname,_0x924a('0x2a'),rs[_0x924a('0x2b')](0x4)+_0x924a('0x2c'));return convertFile(_0x149ed5,_0x878985);})[_0x924a('0x27')](function(){try{fs[_0x924a('0x2d')](_0x149ed5);fs['chmodSync'](_0x878985,'777');}catch(_0x52f964){logger[_0x924a('0x12')](_0x52f964);}logger[_0x924a('0x19')](_0x924a('0x2e'),_0x878985['split']('.')[0x0]);return _0x878985['split']('.')[0x0];});};exports[_0x924a('0x2f')]=function(_0x59462b,_0x57e4ab,_0x4a5fb6){return google[_0x924a('0x30')](_0x59462b,_0x57e4ab,_0x4a5fb6)['then'](function(_0x70abb9){logger[_0x924a('0x19')](_0x70abb9[_0x924a('0x31')]);return rp(_0x70abb9);})[_0x924a('0x27')](function(_0x10c137){var _0x1fe8fe='';var _0x222de3=0x0;try{fs['unlink'](_0x59462b);}catch(_0x4bbf39){logger[_0x924a('0x12')](_0x4bbf39);}if(_0x10c137&&_0x10c137['results']){_0x1fe8fe=_0x10c137[_0x924a('0x32')][_0x924a('0x33')](function(_0x12d379){return _0x12d379&&_0x12d379['alternatives'][0x0]&&_0x12d379['alternatives'][0x0][_0x924a('0x34')]?_0x12d379[_0x924a('0x35')][0x0][_0x924a('0x34')]:'';})[_0x924a('0x36')]('\x0a');_0x222de3=_0x10c137[_0x924a('0x32')][_0x924a('0x33')](function(_0x1532fe){return _0x1532fe&&_0x1532fe[_0x924a('0x35')][0x0]&&_0x1532fe[_0x924a('0x35')][0x0]['confidence']?_0x1532fe[_0x924a('0x35')][0x0][_0x924a('0x37')]:0x0;})[_0x924a('0x36')]('\x0a');}logger['info'](_0x924a('0x38'),_0x1fe8fe);logger[_0x924a('0x19')](_0x924a('0x39'),_0x222de3);return{'transcript':_0x1fe8fe,'confidence':_0x222de3};})[_0x924a('0x3a')](function(_0x1f6ba3){logger['error'](_0x924a('0x3b'),_0x1f6ba3[_0x924a('0x14')],_0x1f6ba3[_0x924a('0x3c')],_0x1f6ba3[_0x924a('0x3d')]);});};exports[_0x924a('0x3e')]=function(_0x4214ce,_0x511e2c,_0x16cade,_0x5cffe8){var _0x354731=apiai(_0x511e2c,{'language':_0x5cffe8||'en'});return _0x354731[_0x924a('0x3f')](_0x16cade,{'sessionId':md5(_0x4214ce)})[_0x924a('0x27')](function(_0xdb8ca2){logger[_0x924a('0x19')](JSON[_0x924a('0x40')](_0xdb8ca2));return{'source':_0xdb8ca2[_0x924a('0x41')][_0x924a('0x42')],'resolvedQuery':_0xdb8ca2[_0x924a('0x41')]['resolvedQuery'],'action':_0xdb8ca2['result'][_0x924a('0x43')],'actionIncomplete':_0xdb8ca2[_0x924a('0x41')][_0x924a('0x44')],'speech':_0xdb8ca2[_0x924a('0x41')][_0x924a('0x45')]['speech'],'score':_0xdb8ca2[_0x924a('0x41')][_0x924a('0x46')],'statusCode':_0xdb8ca2[_0x924a('0x47')][_0x924a('0x48')],'endConversation':_0xdb8ca2[_0x924a('0x41')][_0x924a('0x49')]['endConversation']||![],'isFallbackIntent':_0xdb8ca2[_0x924a('0x41')][_0x924a('0x49')][_0x924a('0x4a')]};});};exports[_0x924a('0x4b')]=function(_0x27a9b0,_0x287fa9,_0x208744,_0x11f918){return tilde['asr'](_0x27a9b0,_0x287fa9,_0x208744,_0x11f918)[_0x924a('0x27')](function(_0x17a05e){try{fs['unlink'](_0x27a9b0);}catch(_0x58cf1b){logger['error'](_0x58cf1b);}logger['info'](_0x924a('0x4c'),_0x17a05e[_0x924a('0x34')]);logger[_0x924a('0x19')](_0x924a('0x4d'),_0x17a05e[_0x924a('0x37')]);return _0x17a05e;});};exports['awsPolly']=function(_0x5b9c0c,_0x5efa09,_0x53249a,_0x4792a7,_0x1460f7,_0x569167){var _0x2b639b=path[_0x924a('0x28')](__dirname,_0x924a('0x2a'),rs[_0x924a('0x2b')](0x4)+_0x924a('0x29'));var _0x2ae40f;return aws[_0x924a('0x4e')](_0x5b9c0c,_0x5efa09,_0x53249a,_0x4792a7,_0x1460f7,_0x569167,_0x2b639b)['then'](function(){_0x2ae40f=path[_0x924a('0x28')](__dirname,_0x924a('0x2a'),rs[_0x924a('0x2b')](0x4)+_0x924a('0x2c'));return convertFile(_0x2b639b,_0x2ae40f);})[_0x924a('0x27')](function(){try{fs[_0x924a('0x2d')](_0x2b639b);fs[_0x924a('0x4f')](_0x2ae40f,_0x924a('0x50'));}catch(_0x56b72d){logger[_0x924a('0x12')](_0x56b72d);}return _0x2ae40f['split']('.')[0x0];});};exports[_0x924a('0x51')]=function(_0x197511,_0x2f2ec8,_0x49bd5f,_0x3ef9f8,_0x3a635c,_0x5d4f82){return aws[_0x924a('0x52')](_0x197511,_0x2f2ec8,_0x49bd5f,_0x3ef9f8,_0x3a635c,_0x5d4f82)[_0x924a('0x27')](function(_0xda3fca){logger[_0x924a('0x19')](JSON[_0x924a('0x40')](_0xda3fca));return _0xda3fca;});};exports[_0x924a('0x53')]=function(_0x4f9bf2,_0x571f5a,_0x4a825e,_0x573d72){var _0x42d89c=util[_0x924a('0x54')](_0x924a('0x55'),ISPEECH_API,_0x4f9bf2,encodeURIComponent(_0x571f5a),_0x4a825e,_0x573d72);var _0x368ed1=path['resolve'](__dirname,_0x924a('0x2a'),rs[_0x924a('0x2b')](0x4)+_0x924a('0x29'));var _0x2dcd9a;return downloadFile(_0x42d89c,_0x368ed1)[_0x924a('0x27')](function(){_0x2dcd9a=path[_0x924a('0x28')](__dirname,'tmp',rs[_0x924a('0x2b')](0x4)+_0x924a('0x2c'));return convertFile(_0x368ed1,_0x2dcd9a);})[_0x924a('0x27')](function(){try{fs[_0x924a('0x2d')](_0x368ed1);fs[_0x924a('0x4f')](_0x2dcd9a,_0x924a('0x50'));}catch(_0x587f81){logger[_0x924a('0x12')](_0x587f81);}return _0x2dcd9a[_0x924a('0x56')]('.')[0x0];});};exports['ispeechASR']=function(_0x1c8c7c,_0x2730fc,_0x425abb,_0x41a65b){var _0x5032c0=util[_0x924a('0x54')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x2730fc,_0x425abb,base64Encode(_0x1c8c7c),_0x41a65b?util['format'](_0x924a('0x57'),encodeURIComponent(_0x41a65b)):'freeform=3');return uploadFile(_0x5032c0)[_0x924a('0x27')](function(_0x117085){return querystring[_0x924a('0x3')](_0x117085);});};exports[_0x924a('0x58')]=function(_0x5098ae,_0x551042){return sestek[_0x924a('0x59')](_0x5098ae,_0x551042)['then'](function(_0x25883f){logger[_0x924a('0x19')](JSON[_0x924a('0x40')](_0x25883f));return{'speech':_0x25883f[_0x924a('0x5a')],'action':_0x25883f[_0x924a('0x5b')]?_0x25883f['channelData'][_0x924a('0x5c')]:undefined,'actiondata':_0x25883f[_0x924a('0x5b')]?_0x25883f['channelData'][_0x924a('0x5d')]:undefined};});};exports['dirName']=function(){return __dirname;};
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var nda=require('./nda');module['exports']={'nda':nda};
\ No newline at end of file
--- /dev/null
+// *************************************************************************
+// * *
+// * xCALLY Motion - The Omnichannel Contact Center *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved *
+// * *
+// *************************************************************************
+// * *
+// * Email: info@xcally.com *
+// * Website: https://www.xcally.com *
+// * *
+// *************************************************************************
+// * *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
+// * *
+// *************************************************************************
+var _0x2ef3=['project','info','request-promise','url','../../../../../config/logger','agi','exports','POST','ndauth_url','/token','password','then','resolve','ndassistant_url','/api/NaturalDialogAssistant/v1/Run','message','Nda','calleridname','dnid','extension','text','access_token','body'];(function(_0xd49d86,_0x426071){var _0x12cd0b=function(_0x1160cc){while(--_0x1160cc){_0xd49d86['push'](_0xd49d86['shift']());}};_0x12cd0b(++_0x426071);}(_0x2ef3,0xba));var _0x32ef=function(_0x4c34a3,_0x2774f3){_0x4c34a3=_0x4c34a3-0x0;var _0x471c13=_0x2ef3[_0x4c34a3];return _0x471c13;};'use strict';var rp=require(_0x32ef('0x0'));var url=require(_0x32ef('0x1'));var logger=require(_0x32ef('0x2'))(_0x32ef('0x3'));module[_0x32ef('0x4')]=function(_0x38047b,_0x48106c){var _0x38f865={'method':_0x32ef('0x5'),'uri':url['resolve'](_0x48106c[_0x32ef('0x6')],_0x32ef('0x7')),'form':{'grant_type':'password','username':_0x48106c['username'],'password':_0x48106c[_0x32ef('0x8')]},'json':!![]};return rp(_0x38f865)[_0x32ef('0x9')](function(_0x367c39){var _0x2fb8eb={'method':_0x32ef('0x5'),'uri':url[_0x32ef('0xa')](_0x48106c[_0x32ef('0xb')],_0x32ef('0xc')),'body':{'type':_0x32ef('0xd'),'channelId':_0x32ef('0xe'),'conversation':{'id':_0x38047b['uniqueid']},'from':{'id':_0x38047b['callerid'],'name':_0x38047b[_0x32ef('0xf')]},'recipient':{'id':_0x38047b[_0x32ef('0x10')],'name':_0x38047b[_0x32ef('0x11')]},'text':_0x48106c[_0x32ef('0x12')]},'headers':{'Authorization':'Bearer\x20'+_0x367c39[_0x32ef('0x13')]},'json':!![]};if(_0x48106c['project']){_0x2fb8eb[_0x32ef('0x14')]['channelData']={'ProjectName':_0x48106c[_0x32ef('0x15')]};}logger[_0x32ef('0x16')](JSON['stringify'](_0x2fb8eb));return rp(_0x2fb8eb);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x787b=['exports'];(function(_0x488d66,_0x981a07){var _0x247fba=function(_0x270a5b){while(--_0x270a5b){_0x488d66['push'](_0x488d66['shift']());}};_0x247fba(++_0x981a07);}(_0x787b,0x147));var _0xb787=function(_0x52c4e9,_0x5412d0){_0x52c4e9=_0x52c4e9-0x0;var _0x252a03=_0x787b[_0x52c4e9];return _0x252a03;};'use strict';var asr=require('./lib/api');module[_0xb787('0x0')]=function(_0x57e729,_0x16728f,_0x47537a,_0x5ce018){return asr(_0x57e729,_0x16728f,_0x47537a,_0x5ce018);};
\ No newline at end of file
+var _0xcad9=['exports','./lib/api'];(function(_0x441e9e,_0x30b06f){var _0xa272ce=function(_0x269d8b){while(--_0x269d8b){_0x441e9e['push'](_0x441e9e['shift']());}};_0xa272ce(++_0x30b06f);}(_0xcad9,0x177));var _0x9cad=function(_0x3e6adb,_0x5432e4){_0x3e6adb=_0x3e6adb-0x0;var _0x2c1967=_0xcad9[_0x3e6adb];return _0x2c1967;};'use strict';var asr=require(_0x9cad('0x0'));module[_0x9cad('0x1')]=function(_0x1fcafa,_0x51a21e,_0xc1f72f,_0x5f5a25){return asr(_0x1fcafa,_0x51a21e,_0xc1f72f,_0x5f5a25);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c08=['Tilde\x20ASR\x20send\x20error','terminate','parse','result','final','hypotheses','transcript','likelihood','Success.','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Error\x20Tilde\x20ASR\x20socket','isNil','open','message','bluebird','lodash','moment','crypto','../../../../../../config/logger','agi','exports','info','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','createHash','update','digest','Open\x20Tilde\x20ASR\x20socket','unix','stringify','createReadStream','send','close','EOS','error'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0x6c08,0x8a));var _0x86c0=function(_0x400b5e,_0x273fe9){_0x400b5e=_0x400b5e-0x0;var _0x2e1ad9=_0x6c08[_0x400b5e];return _0x2e1ad9;};'use strict';var BPromise=require(_0x86c0('0x0'));var _=require(_0x86c0('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x86c0('0x2'));var crypto=require(_0x86c0('0x3'));var logger=require(_0x86c0('0x4'))(_0x86c0('0x5'));module[_0x86c0('0x6')]=function(_0x2a951e,_0x550cfe,_0xa4c1ef,_0x2056bd){return new BPromise(function(_0x994c28,_0xb31927){logger[_0x86c0('0x7')](_0x86c0('0x8'),_0x2056bd||_0x86c0('0x9'));var _0x5effca=new WebSocket(_0x2056bd||_0x86c0('0x9'),{'perMessageDeflate':![]});var _0x2c3cab='';var _0x458c8a='0';var _0x141eac='1';var _0x3ea520=_0x86c0('0xa');function _0x53d168(_0x499613){var _0x5c7da4=crypto[_0x86c0('0xb')]('sha1');_0x5c7da4[_0x86c0('0xc')](_0x499613);return _0x5c7da4[_0x86c0('0xd')]('hex');}function _0x2caa71(){try{logger[_0x86c0('0x7')](_0x86c0('0xe'));var _0x57d89b=moment()[_0x86c0('0xf')]();var _0x1ea702=_0x53d168(_0x57d89b+_0x550cfe+_0xa4c1ef);_0x5effca['send'](JSON[_0x86c0('0x10')]({'appID':_0x550cfe,'timestamp':_0x57d89b,'appKey':_0x1ea702}));var _0x5310c6=fs[_0x86c0('0x11')](_0x2a951e);_0x5310c6['on']('data',function(_0x80e021){_0x5effca[_0x86c0('0x12')](_0x80e021);});_0x5310c6['on'](_0x86c0('0x13'),function(){_0x5effca[_0x86c0('0x12')](_0x86c0('0x14'));});}catch(_0x15508b){logger[_0x86c0('0x15')](_0x86c0('0x16'),JSON['stringify'](_0x15508b));_0x5effca[_0x86c0('0x17')]();}}function _0xc849e3(_0x4cd1df){try{if(_0x4cd1df){var _0x21345e=JSON[_0x86c0('0x18')](_0x4cd1df);switch(_0x21345e['status']){case 0x0:if(_0x21345e[_0x86c0('0x19')]){if(_0x21345e['result'][_0x86c0('0x1a')]){logger['info']('Tilde\x20ASR\x20hypoteses',JSON[_0x86c0('0x10')](_0x21345e['result'][_0x86c0('0x1b')]));_0x2c3cab=_0x21345e[_0x86c0('0x19')][_0x86c0('0x1b')][0x0][_0x86c0('0x1c')];_0x458c8a=_0x21345e[_0x86c0('0x19')][_0x86c0('0x1b')][0x0][_0x86c0('0x1d')];_0x141eac='0';_0x3ea520=_0x86c0('0x1e');_0x5effca['terminate']();}}break;case 0x1:logger['info'](_0x86c0('0xa'));_0x141eac='1';_0x3ea520='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger['info'](_0x86c0('0x1f'));_0x141eac='2';_0x3ea520=_0x86c0('0x1f');break;case 0x9:logger['info'](_0x86c0('0x20'));_0x141eac='9';_0x3ea520='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger['info'](_0x86c0('0x21'));_0x141eac='10';_0x3ea520='Authentication\x20failed.';break;case 0xb:logger[_0x86c0('0x7')](_0x86c0('0x22'));_0x141eac='11';_0x3ea520=_0x86c0('0x22');}}}catch(_0x18ea2f){logger[_0x86c0('0x15')](_0x86c0('0x23'),JSON[_0x86c0('0x10')](_0x18ea2f));_0x5effca['terminate']();}}function _0x43b0ee(){logger[_0x86c0('0x7')]('Close\x20Tilde\x20ASR\x20socket');_0x994c28({'transcript':_0x2c3cab,'confidence':_0x458c8a,'status':_0x141eac,'status_message':_0x3ea520});}function _0x586f3b(_0x418c63){logger['error'](_0x86c0('0x24'));if(!_[_0x86c0('0x25')](_0x418c63)){logger['error'](_['isObject'](_0x418c63)?JSON[_0x86c0('0x10')](_0x418c63):_0x418c63);}}_0x5effca['on'](_0x86c0('0x26'),_0x2caa71);_0x5effca['on'](_0x86c0('0x27'),_0xc849e3);_0x5effca['on']('close',_0x43b0ee);_0x5effca['on'](_0x86c0('0x15'),_0x586f3b);});};
\ No newline at end of file
+var _0x9d70=['Tilde\x20ASR\x20parse\x20error','terminate','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','bluebird','lodash','moment','crypto','exports','info','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','createHash','sha1','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','stringify','parse','status','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','transcript','likelihood','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.'];(function(_0x5b3ac2,_0x7f8408){var _0x3b3026=function(_0x3c3819){while(--_0x3c3819){_0x5b3ac2['push'](_0x5b3ac2['shift']());}};_0x3b3026(++_0x7f8408);}(_0x9d70,0x1e0));var _0x09d7=function(_0x2db12b,_0x30ab1d){_0x2db12b=_0x2db12b-0x0;var _0x20990b=_0x9d70[_0x2db12b];return _0x20990b;};'use strict';var BPromise=require(_0x09d7('0x0'));var _=require(_0x09d7('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x09d7('0x2'));var crypto=require(_0x09d7('0x3'));var logger=require('../../../../../../config/logger')('agi');module[_0x09d7('0x4')]=function(_0x39df7c,_0x2f66d5,_0x391947,_0x4c6304){return new BPromise(function(_0x34a2d9,_0x1fa7ad){logger[_0x09d7('0x5')](_0x09d7('0x6'),_0x4c6304||_0x09d7('0x7'));var _0x5ec705=new WebSocket(_0x4c6304||_0x09d7('0x7'),{'perMessageDeflate':![]});var _0x181ef4='';var _0x2aab52='0';var _0x4d1975='1';var _0xc3346c=_0x09d7('0x8');function _0x2080e5(_0x263161){var _0x4e72d5=crypto[_0x09d7('0x9')](_0x09d7('0xa'));_0x4e72d5[_0x09d7('0xb')](_0x263161);return _0x4e72d5[_0x09d7('0xc')](_0x09d7('0xd'));}function _0x4f96dc(){try{logger[_0x09d7('0x5')](_0x09d7('0xe'));var _0x1dd808=moment()[_0x09d7('0xf')]();var _0x49bbd0=_0x2080e5(_0x1dd808+_0x2f66d5+_0x391947);_0x5ec705[_0x09d7('0x10')](JSON['stringify']({'appID':_0x2f66d5,'timestamp':_0x1dd808,'appKey':_0x49bbd0}));var _0x1c628c=fs[_0x09d7('0x11')](_0x39df7c);_0x1c628c['on'](_0x09d7('0x12'),function(_0x330aa0){_0x5ec705[_0x09d7('0x10')](_0x330aa0);});_0x1c628c['on'](_0x09d7('0x13'),function(){_0x5ec705[_0x09d7('0x10')](_0x09d7('0x14'));});}catch(_0xe30c3c){logger[_0x09d7('0x15')](_0x09d7('0x16'),JSON[_0x09d7('0x17')](_0xe30c3c));_0x5ec705['terminate']();}}function _0x545acc(_0x48ec4c){try{if(_0x48ec4c){var _0x15dc45=JSON[_0x09d7('0x18')](_0x48ec4c);switch(_0x15dc45[_0x09d7('0x19')]){case 0x0:if(_0x15dc45[_0x09d7('0x1a')]){if(_0x15dc45[_0x09d7('0x1a')][_0x09d7('0x1b')]){logger[_0x09d7('0x5')](_0x09d7('0x1c'),JSON[_0x09d7('0x17')](_0x15dc45['result'][_0x09d7('0x1d')]));_0x181ef4=_0x15dc45[_0x09d7('0x1a')][_0x09d7('0x1d')][0x0][_0x09d7('0x1e')];_0x2aab52=_0x15dc45[_0x09d7('0x1a')][_0x09d7('0x1d')][0x0][_0x09d7('0x1f')];_0x4d1975='0';_0xc3346c='Success.';_0x5ec705['terminate']();}}break;case 0x1:logger[_0x09d7('0x5')](_0x09d7('0x8'));_0x4d1975='1';_0xc3346c=_0x09d7('0x8');break;case 0x2:logger[_0x09d7('0x5')]('Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.');_0x4d1975='2';_0xc3346c=_0x09d7('0x20');break;case 0x9:logger[_0x09d7('0x5')](_0x09d7('0x21'));_0x4d1975='9';_0xc3346c=_0x09d7('0x21');break;case 0xa:logger[_0x09d7('0x5')](_0x09d7('0x22'));_0x4d1975='10';_0xc3346c=_0x09d7('0x22');break;case 0xb:logger[_0x09d7('0x5')](_0x09d7('0x23'));_0x4d1975='11';_0xc3346c=_0x09d7('0x23');}}}catch(_0x358ca6){logger[_0x09d7('0x15')](_0x09d7('0x24'),JSON[_0x09d7('0x17')](_0x358ca6));_0x5ec705[_0x09d7('0x25')]();}}function _0x2db611(){logger[_0x09d7('0x5')](_0x09d7('0x26'));_0x34a2d9({'transcript':_0x181ef4,'confidence':_0x2aab52,'status':_0x4d1975,'status_message':_0xc3346c});}function _0x1e01ef(_0x357882){logger[_0x09d7('0x15')](_0x09d7('0x27'));if(!_[_0x09d7('0x28')](_0x357882)){logger[_0x09d7('0x15')](_[_0x09d7('0x29')](_0x357882)?JSON[_0x09d7('0x17')](_0x357882):_0x357882);}}_0x5ec705['on'](_0x09d7('0x2a'),_0x4f96dc);_0x5ec705['on']('message',_0x545acc);_0x5ec705['on']('close',_0x2db611);_0x5ec705['on'](_0x09d7('0x15'),_0x1e01ef);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['./asr','exports'];(function(_0x3f940e,_0x140c3b){var _0x424b2e=function(_0x3f2fb4){while(--_0x3f2fb4){_0x3f940e['push'](_0x3f940e['shift']());}};_0x424b2e(++_0x140c3b);}(_0x34e8,0x12c));var _0x834e=function(_0x59abff,_0x2ef39f){_0x59abff=_0x59abff-0x0;var _0x7145f9=_0x34e8[_0x59abff];return _0x7145f9;};var asr=require(_0x834e('0x0'));module[_0x834e('0x1')]={'asr':asr};
\ No newline at end of file
+var asr=require('./asr');module['exports']={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x050f=['listen','listening','connection','getConnections','E_AGI_SERVER_ERROR','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','code','close','inherits','events','EventEmitter','./error','./channel','127.0.0.1','call','emit','error','E_AGI_ARGUMENT_PORT','createServer'];(function(_0x1306e9,_0x4fd1ce){var _0x15eafb=function(_0x16ebed){while(--_0x16ebed){_0x1306e9['push'](_0x1306e9['shift']());}};_0x15eafb(++_0x4fd1ce);}(_0x050f,0xdd));var _0xf050=function(_0x5f3e99,_0xe7e8bf){_0x5f3e99=_0x5f3e99-0x0;var _0x17dc01=_0x050f[_0x5f3e99];return _0x17dc01;};'use strict';var util=require('util');var net=require('net');var EventEmitter=require(_0xf050('0x0'))[_0xf050('0x1')];var AGIError=require(_0xf050('0x2'));var AGIChannel=require(_0xf050('0x3'));var AGIServer=function(_0x2324e0,_0x3e65db,_0x228d44){var _0x226748=this,_0x2324e0=_0x2324e0||0x11dd,_0x3e65db=_0x3e65db||_0xf050('0x4'),_0x117ad3=null,_0x41262d=0x0;EventEmitter[_0xf050('0x5')](_0x226748);function _0x3a6997(){if(!_0x2324e0){_0x226748[_0xf050('0x6')](_0xf050('0x7'),new AGIError(_0xf050('0x8')));return![];}_0x117ad3=net[_0xf050('0x9')]();_0x117ad3[_0xf050('0xa')](_0x2324e0,_0x3e65db);_0x117ad3['on'](_0xf050('0xb'),function(){_0x226748[_0xf050('0x6')](_0xf050('0xb'));});_0x117ad3['on'](_0xf050('0xc'),function(_0x138ec0){_0x117ad3[_0xf050('0xd')](function(_0x3a7d9b,_0x223a8d){if(_0x3a7d9b){_0x226748[_0xf050('0x6')]('error',new AGIError(_0xf050('0xe'),_0x3a7d9b));}else if(_0x228d44&&_0x228d44<0x0){_0x226748[_0xf050('0x6')](_0xf050('0x7'),new AGIError(_0xf050('0xf')));_0x138ec0[_0xf050('0x10')]();}else if(_0x228d44&&_0x228d44>0x0&&_0x228d44<_0x223a8d){_0x41262d+=0x1;_0x226748['emit'](_0xf050('0x7'),new AGIError(_0xf050('0x11'),_0x41262d));_0x138ec0[_0xf050('0x10')]();}else{var _0x246fa6=new AGIChannel(_0x138ec0);_0x246fa6['on']('ready',function(){_0x226748[_0xf050('0x6')](_0xf050('0xc'),_0x246fa6);});}});});_0x117ad3['on']('error',function(_0x2c2255){_0x226748[_0xf050('0x6')](_0xf050('0x7'),new AGIError(_0xf050('0xe'),_0x2c2255[_0xf050('0x12')]));});_0x117ad3['on'](_0xf050('0x13'),function(){_0x226748[_0xf050('0x6')](_0xf050('0x13'),new AGIError('E_AGI_SERVER_CLOSE'));});}process['nextTick'](function(){_0x3a6997();});};util[_0xf050('0x14')](AGIServer,EventEmitter);module['exports']=function(_0x12bc17,_0x43965a,_0x1925a3){return new AGIServer(_0x12bc17,_0x43965a,_0x1925a3);};
\ No newline at end of file
+var _0x0629=['code','close','nextTick','inherits','exports','events','EventEmitter','./channel','127.0.0.1','emit','E_AGI_ARGUMENT_PORT','createServer','listen','listening','connection','error','E_AGI_SERVER_ERROR','E_AGI_SERVER_VOICE_DISABLED','E_AGI_SERVER_MAXCONNECTION','destroy'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0629,0x195));var _0x9062=function(_0x5c2935,_0x401a3b){_0x5c2935=_0x5c2935-0x0;var _0x5b66a3=_0x0629[_0x5c2935];return _0x5b66a3;};'use strict';var util=require('util');var net=require('net');var EventEmitter=require(_0x9062('0x0'))[_0x9062('0x1')];var AGIError=require('./error');var AGIChannel=require(_0x9062('0x2'));var AGIServer=function(_0x5c123e,_0x960c8d,_0x13ecc6){var _0x221dc8=this,_0x5c123e=_0x5c123e||0x11dd,_0x960c8d=_0x960c8d||_0x9062('0x3'),_0x35dd48=null,_0x815a72=0x0;EventEmitter['call'](_0x221dc8);function _0x8a22c1(){if(!_0x5c123e){_0x221dc8[_0x9062('0x4')]('error',new AGIError(_0x9062('0x5')));return![];}_0x35dd48=net[_0x9062('0x6')]();_0x35dd48[_0x9062('0x7')](_0x5c123e,_0x960c8d);_0x35dd48['on'](_0x9062('0x8'),function(){_0x221dc8[_0x9062('0x4')]('listening');});_0x35dd48['on'](_0x9062('0x9'),function(_0x441a65){_0x35dd48['getConnections'](function(_0x57812e,_0x2d2153){if(_0x57812e){_0x221dc8[_0x9062('0x4')](_0x9062('0xa'),new AGIError(_0x9062('0xb'),_0x57812e));}else if(_0x13ecc6&&_0x13ecc6<0x0){_0x221dc8[_0x9062('0x4')](_0x9062('0xa'),new AGIError(_0x9062('0xc')));_0x441a65['destroy']();}else if(_0x13ecc6&&_0x13ecc6>0x0&&_0x13ecc6<_0x2d2153){_0x815a72+=0x1;_0x221dc8[_0x9062('0x4')](_0x9062('0xa'),new AGIError(_0x9062('0xd'),_0x815a72));_0x441a65[_0x9062('0xe')]();}else{var _0x545f03=new AGIChannel(_0x441a65);_0x545f03['on']('ready',function(){_0x221dc8[_0x9062('0x4')](_0x9062('0x9'),_0x545f03);});}});});_0x35dd48['on'](_0x9062('0xa'),function(_0x48fe25){_0x221dc8['emit'](_0x9062('0xa'),new AGIError('E_AGI_SERVER_ERROR',_0x48fe25[_0x9062('0xf')]));});_0x35dd48['on']('close',function(){_0x221dc8['emit'](_0x9062('0x10'),new AGIError('E_AGI_SERVER_CLOSE'));});}process[_0x9062('0x11')](function(){_0x8a22c1();});};util[_0x9062('0x12')](AGIServer,EventEmitter);module[_0x9062('0x13')]=function(_0x739ee5,_0x4167e1,_0x2a2497){return new AGIServer(_0x739ee5,_0x4167e1,_0x2a2497);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd0bb=['Enter\x20in\x20LOGIN\x20(%s)\x20block','findBy','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','no\x20find\x20by\x20configured','math','Enter\x20in\x20MATH\x20(%s)\x20block','operation','no\x20operation\x20configured','math\x20%s','no\x20variable\x20found','isArray','%s[%s]','variable\x20%s[key]\x20set','Enter\x20in\x20MENU\x20(%s)\x20block','response','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','success','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','toLowerCase','QUEUE','gosub','record','escape_digits','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','sayDigits','digits','sayNumber','number','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','user','bcc','subject','service','host','port','secure','authentication','auth','pass','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','sendFax','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','sms_text','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','no\x20variable\x20selected','variable_value','start','Enter\x20in\x20START\x20(%s)\x20block','yes','Answer','Skipped\x20Answer','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','no\x20subproject\x20selected','project_id','no\x20subproject\x20found\x20with\x20id\x20%d','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','Enter\x20in\x20SYSTEM\x20(%s)\x20block','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','tts','Google\x20TTS\x20%s\x20file\x20created','Google\x20TTS\x20is\x20unreachable','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','Enter\x20in\x20VOICEMAIL\x20(%s)\x20block','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','replaceAll','path','util','lodash','odbc','moment','mustache','agi','./scripts','/var/opt/motion2/server/files','menu','getdigits','getsecretdigits','channel','rpc','mailRpc','getVariableById','then','name','catch','prototype','getVoiceQueue','getVoiceQueueById','getSquareProject','getSquareProjectById','getSquareOdbc','dsn','getUser','getTrunk','getTrunkById','getSound','getSoundById','getMailAccount','sendMailMessage','getIntervals','getIntervalById','IntervalId','interval','map','Intervals','getSoundPath','format','%s/sounds/converted/%s','getQueryOdbc','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','Error\x20executing\x20query\x20%s','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','agicommand','callerid','createSquareRecording','calleridname','context','extension','priority','accountcode','dnid','arg_1','file','createSquareMessage','createCmContact','isNil','callback_','random','isEmpty','lastName','phone','list_id','callback','Callback\x20scheduled\x20at\x20','scheduledAt','callback_priority','getPause','getPauseById','agentPause','agent','agentUnpause','agentLogout','agentLogin','internal','%s/%s@from-sip/n','LOCAL','shellCommand','exec','googleTTS','google_tts_language','googleDialogflow','text','ispeechTTS','key','ispeech_tts_language','speed','ispeechASR','ispeech_asr_language','en-US','isConfigured','awsPolly','aws_access_key_id','aws_polly_region','Amy','aws_text_type','awsLex','aws_secret_access_key','aws_lex_region','aws_bot_name','googleASR','tildeASR','appid','appsecret','uri','clear','includes','clone','hasOwnProperty','isString','replaceAllVariables','split','length','getVariable','extra','toString','getAndSetVariable','result','sync','retry','maxRetry','Enter\x20in\x20AGI\x20(%s)\x20block','label','command','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','timeout','wait','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected','delay','add','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','options','noop','Executed\x20command\x20%s\x20%s','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','no\x20text\x20configured','MRCPSynth','Executed\x20command\x20MRCPSynth\x20%s','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','no\x20grammar\x20configured','grammar','MRCPRecog','LUMENVOX_ASR_CONFIDENCE','RECOG_INPUT()','LUMENVOX_ASR_TRANSCRIPT','RECOG_INSTANCE()','LUMENVOX_ASR_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20database\x20selected','no\x20odbc\x20database\x20found','no\x20query\x20configured','query','replace','query:\x20%s','no\x20variable\x20selected\x20for\x20the\x20result','variable_id','keys','forEach','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','debug','sip_id','no\x20user\x20selected','DIAL','SIP/%s','opts','url','Executed\x20command\x20%s','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','DIALOGFLOW_%s','toUpperCase','speech','out','Dialogflow\x20Result\x20%s','Dialogflow\x20is\x20unreachable','end','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','getData','mindigit','setVariable','hiddendigitsnum','generate','hiddendigitspos','first','substr','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','no\x20valid\x20credentials\x20configured','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','.wav','aws\x20Polly\x20is\x20unreachable','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','message','Amazon\x20Lex\x20Result\x20%s','Amazon\x20Lex\x20is\x20unreachable','googleasr','wav','%s/recordings/%s','%s.%s','NOBEEP','recordFile','google\x20%s\x20file\x20created','stringify','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','Enter\x20in\x20GOTO\x20(%s)\x20block','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','EVAL\x20CONDITION\x20%s\x20%s','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20interval\x20configured','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','Enter\x20in\x20HANGUP\x20(%s)\x20block','hangup','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','beep','intKey','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','ispeechtts','ispeech\x20%s\x20file\x20created','streamFile','unlink','ispeech\x20TTS\x20is\x20unreachable','login'];(function(_0xdea41a,_0x552987){var _0x15d0d8=function(_0x1e0d0b){while(--_0x1e0d0b){_0xdea41a['push'](_0xdea41a['shift']());}};_0x15d0d8(++_0x552987);}(_0xd0bb,0x1eb));var _0xbd0b=function(_0x2f8255,_0x44ff85){_0x2f8255=_0x2f8255-0x0;var _0x2207f6=_0xd0bb[_0x2f8255];return _0x2207f6;};'use strict';var fs=require('fs');var path=require(_0xbd0b('0x0'));var util=require(_0xbd0b('0x1'));var _=require(_0xbd0b('0x2'));var sh=require('shelljs');var odbc=require(_0xbd0b('0x3'))();var rs=require('randomstring');var moment=require(_0xbd0b('0x4'));var Mustache=require(_0xbd0b('0x5'));var logger=require('../../config/logger')(_0xbd0b('0x6'));var config=require('../../config/environment');var scripts=require(_0xbd0b('0x7'));var FILES_PATH=_0xbd0b('0x8');var verticesWithRetry=[_0xbd0b('0x9'),_0xbd0b('0xa'),_0xbd0b('0xb')];var AGIVertices=function(_0x5eb975,_0x2a4075,_0x4533ff){this[_0xbd0b('0xc')]=_0x5eb975;this[_0xbd0b('0xd')]=_0x2a4075;this[_0xbd0b('0xe')]=_0x4533ff;};AGIVertices['prototype']['getVariable']=function(_0x14bc5b,_0x110cf1){this['rpc'][_0xbd0b('0xf')](_0x14bc5b)[_0xbd0b('0x10')](function(_0x526258){_0x110cf1(null,_0x526258?_0x526258[_0xbd0b('0x11')]:![]);})[_0xbd0b('0x12')](function(_0x3a4b28){_0x110cf1(_0x3a4b28);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x14')]=function(_0x42a96b,_0x420f96){this[_0xbd0b('0xd')][_0xbd0b('0x15')](_0x42a96b)[_0xbd0b('0x10')](function(_0x2d4664){_0x420f96(null,_0x2d4664?_0x2d4664['name']:![]);})[_0xbd0b('0x12')](function(_0x4b113b){_0x420f96(_0x4b113b);});};AGIVertices['prototype'][_0xbd0b('0x16')]=function(_0x4c0e52,_0x3183cf){this[_0xbd0b('0xd')][_0xbd0b('0x17')](_0x4c0e52)['then'](function(_0x55e0a1){_0x3183cf(null,_0x55e0a1?_0x55e0a1[_0xbd0b('0x11')]:![]);})[_0xbd0b('0x12')](function(_0x1f2a6e){_0x3183cf(_0x1f2a6e);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x18')]=function(_0x40b798,_0x5aeb79){this[_0xbd0b('0xd')]['getSquareOdbcById'](_0x40b798)[_0xbd0b('0x10')](function(_0x475801){_0x5aeb79(null,_0x475801?_0x475801[_0xbd0b('0x19')]:![]);})[_0xbd0b('0x12')](function(_0x4b312d){_0x5aeb79(_0x4b312d);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x1a')]=function(_0x40b021,_0x495d62){this[_0xbd0b('0xd')]['getUserById'](_0x40b021)[_0xbd0b('0x10')](function(_0x3c4938){_0x495d62(null,_0x3c4938?_0x3c4938[_0xbd0b('0x11')]:![]);})[_0xbd0b('0x12')](function(_0x297c85){_0x495d62(_0x297c85);});};AGIVertices['prototype'][_0xbd0b('0x1b')]=function(_0x58a721,_0x3e7e9c){this[_0xbd0b('0xd')][_0xbd0b('0x1c')](_0x58a721)[_0xbd0b('0x10')](function(_0xfd9f82){_0x3e7e9c(null,_0xfd9f82?_0xfd9f82[_0xbd0b('0x11')]:![]);})['catch'](function(_0x382f76){_0x3e7e9c(_0x382f76);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x1d')]=function(_0x1b5a00,_0x1129ae){var _0x122893=this;this['rpc'][_0xbd0b('0x1e')](_0x1b5a00)[_0xbd0b('0x10')](function(_0x82d326){_0x1129ae(null,_0x82d326?_0x122893['getSoundPath'](_0x82d326['save_name']):![]);})[_0xbd0b('0x12')](function(_0x684b09){_0x1129ae(_0x684b09);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x1f')]=function(_0x4e2149,_0x38926f){this[_0xbd0b('0xd')]['getMailAccountById'](_0x4e2149)[_0xbd0b('0x10')](function(_0x3b70b4){_0x38926f(null,_0x3b70b4?_0x3b70b4:![]);})['catch'](function(_0x5e5e69){_0x38926f(_0x5e5e69);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x20')]=function(_0x53f555,_0x31bdd3,_0x2f7d61){this[_0xbd0b('0xe')][_0xbd0b('0x20')](_0x53f555,_0x31bdd3)[_0xbd0b('0x10')](function(){_0x2f7d61(null);})[_0xbd0b('0x12')](function(_0x5f224e){_0x2f7d61(_0x5f224e);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x21')]=function(_0x32572e,_0x3e38e4){this[_0xbd0b('0xd')][_0xbd0b('0x22')](_0x32572e)[_0xbd0b('0x10')](function(_0x1029a0){if(_0x1029a0){if(_0x1029a0[_0xbd0b('0x23')]){_0x3e38e4(null,[_0x1029a0[_0xbd0b('0x24')]]);}else{_0x3e38e4(null,_[_0xbd0b('0x25')](_0x1029a0[_0xbd0b('0x26')],_0xbd0b('0x24')));}}else{_0x3e38e4(null,![]);}})[_0xbd0b('0x12')](function(_0x48e4cb){_0x3e38e4(_0x48e4cb);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x27')]=function(_0x545f59){return util[_0xbd0b('0x28')](_0xbd0b('0x29'),FILES_PATH,_0x545f59);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x2a')]=function(_0x27ad8b,_0x288715,_0x4c8ff5){odbc[_0xbd0b('0x2b')](_0x27ad8b,function(_0x11cf5a){if(_0x11cf5a){logger[_0xbd0b('0x2c')](_0xbd0b('0x2d'),_0x11cf5a);_0x4c8ff5(_0x11cf5a);}else{logger[_0xbd0b('0x2e')]('ODBC\x20connection\x20successfully');odbc['query'](_0x288715,function(_0x3b6a38,_0x8db305){if(_0x3b6a38){logger[_0xbd0b('0x2e')](_0xbd0b('0x2f'),_0x288715);_0x4c8ff5(_0x3b6a38);}else{logger['info']('Query\x20executed\x20correctly\x20%s',_0x288715);odbc[_0xbd0b('0x30')](function(_0x4d8237){if(_0x4d8237){logger[_0xbd0b('0x2c')](_0xbd0b('0x31'),_0x4d8237);}_0x4c8ff5(null,_0x8db305);});}});}});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x32')]=function(_0x3e2ad9,_0x1f48ba){this[_0xbd0b('0xd')][_0xbd0b('0x33')](_0x3e2ad9)[_0xbd0b('0x10')](function(_0x14fcc7){_0x1f48ba(null,_0x14fcc7?_0x14fcc7:![]);})[_0xbd0b('0x12')](function(_0x411872){_0x1f48ba(_0x411872);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x34')]=function(_0x11b1a0,_0x18e51a){this[_0xbd0b('0xd')][_0xbd0b('0x34')](_0x11b1a0)['then'](function(_0x32bde9){_0x18e51a(null,_0x32bde9);})[_0xbd0b('0x12')](function(_0x89b5ea){_0x18e51a(_0x89b5ea);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x35')]=function(_0xb22cbf,_0x2e72a7,_0x1b4497){this[_0xbd0b('0xd')][_0xbd0b('0x35')]({'uniqueid':this[_0xbd0b('0xc')][_0xbd0b('0x36')],'node':_0xb22cbf['label'],'application':_0xb22cbf[_0xbd0b('0x37')],'data':_0x2e72a7||null,'project_name':this['channel']['arg_1'],'callerid':this[_0xbd0b('0xc')][_0xbd0b('0x38')]})[_0xbd0b('0x10')](function(_0x580fa2){if(_0x1b4497){_0x1b4497(null,_0x580fa2);}})[_0xbd0b('0x12')](function(_0x6e41bd){if(_0x1b4497){_0x1b4497(_0x6e41bd);}});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x39')]=function(_0x1a12c0,_0x4f1e3a,_0x1830e9,_0x3619b9){this[_0xbd0b('0xd')][_0xbd0b('0x39')]({'uniqueid':this[_0xbd0b('0xc')][_0xbd0b('0x36')],'callerid':this['channel'][_0xbd0b('0x38')],'calleridname':this[_0xbd0b('0xc')][_0xbd0b('0x3a')],'context':this[_0xbd0b('0xc')][_0xbd0b('0x3b')],'extension':this[_0xbd0b('0xc')][_0xbd0b('0x3c')],'priority':this[_0xbd0b('0xc')][_0xbd0b('0x3d')],'accountcode':this[_0xbd0b('0xc')][_0xbd0b('0x3e')],'dnid':this[_0xbd0b('0xc')][_0xbd0b('0x3f')],'projectName':this[_0xbd0b('0xc')][_0xbd0b('0x40')],'saveName':_0x4f1e3a,'filename':_0x1a12c0[_0xbd0b('0x41')]||_0x4f1e3a,'savePath':_0x1830e9})[_0xbd0b('0x10')](function(_0x74977a){_0x3619b9(null,_0x74977a);})[_0xbd0b('0x12')](function(_0x2ed890){_0x3619b9(_0x2ed890);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x42')]=function(_0x915d2c,_0x5148c2,_0x12d3e7){this[_0xbd0b('0xd')]['createSquareMessage']({'uniqueid':this['channel']['uniqueid'],'body':_0x915d2c,'direction':_0x5148c2})[_0xbd0b('0x10')](function(_0x5bae10){if(_0x12d3e7){_0x12d3e7(null,_0x5bae10);}})[_0xbd0b('0x12')](function(_0x14d5ce){if(_0x12d3e7){_0x12d3e7(_0x14d5ce);}});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x43')]=function(_0x5a28c5,_0x2d2e58){this['rpc'][_0xbd0b('0x43')]({'firstName':_['isEmpty'](_0x5a28c5['name'])||_[_0xbd0b('0x44')](_0x5a28c5[_0xbd0b('0x11')])?_0xbd0b('0x45')+Math[_0xbd0b('0x46')]():_0x5a28c5[_0xbd0b('0x11')],'lastName':_[_0xbd0b('0x47')](_0x5a28c5[_0xbd0b('0x48')])||_[_0xbd0b('0x44')](_0x5a28c5['lastName'])?null:_0x5a28c5['lastName'],'phone':_0x5a28c5[_0xbd0b('0x49')],'ListId':_0x5a28c5[_0xbd0b('0x4a')],'scheduledAt':_0x5a28c5['scheduledAt'],'callbackUniqueid':this['channel'][_0xbd0b('0x36')],'tags':_0xbd0b('0x4b'),'description':_0xbd0b('0x4c')+_0x5a28c5[_0xbd0b('0x4d')]['toString'](),'priority':_0x5a28c5[_0xbd0b('0x4e')]})[_0xbd0b('0x10')](function(_0x19d3e0){_0x2d2e58(null,_0x19d3e0);})[_0xbd0b('0x12')](function(_0x50fc5b){_0x2d2e58(_0x50fc5b);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x4f')]=function(_0x4bd549,_0x122a19){this[_0xbd0b('0xd')][_0xbd0b('0x50')](_0x4bd549)[_0xbd0b('0x10')](function(_0x1ba677){_0x122a19(null,_0x1ba677?_0x1ba677[_0xbd0b('0x11')]:![]);})[_0xbd0b('0x12')](function(_0x656a47){_0x122a19(_0x656a47);});};AGIVertices['prototype'][_0xbd0b('0x51')]=function(_0x114cf9,_0x315883,_0x15b83e){var _0x303037={'role':_0xbd0b('0x52')};_0x303037[_0x114cf9]=this['channel']['callerid'];this[_0xbd0b('0xd')][_0xbd0b('0x51')](_0x303037,_0x315883,this['channel'][_0xbd0b('0x36')])[_0xbd0b('0x10')](function(_0x34db98){_0x15b83e(null,_[_0xbd0b('0x44')](_0x34db98)?![]:!![]);})[_0xbd0b('0x12')](function(_0x5be34a){logger[_0xbd0b('0x2c')](_0x5be34a);_0x15b83e(null,![]);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x53')]=function(_0x26a7d9,_0x3fe55a){var _0xa08f72={'role':_0xbd0b('0x52')};_0xa08f72[_0x26a7d9]=this[_0xbd0b('0xc')][_0xbd0b('0x38')];this[_0xbd0b('0xd')][_0xbd0b('0x53')](_0xa08f72)[_0xbd0b('0x10')](function(_0x20502d){_0x3fe55a(null,_[_0xbd0b('0x44')](_0x20502d)?![]:!![]);})[_0xbd0b('0x12')](function(_0x1fefd5){logger[_0xbd0b('0x2c')](_0x1fefd5);_0x3fe55a(null,![]);});};AGIVertices['prototype'][_0xbd0b('0x54')]=function(_0x3f6f14,_0x319ee8){var _0x2c935c={'role':'agent'};_0x2c935c[_0x3f6f14]=this['channel'][_0xbd0b('0x38')];this[_0xbd0b('0xd')][_0xbd0b('0x54')](_0x2c935c)[_0xbd0b('0x10')](function(_0x2085f2){_0x319ee8(null,_['isNil'](_0x2085f2)?![]:!![]);})[_0xbd0b('0x12')](function(_0x4d3664){logger[_0xbd0b('0x2c')](_0x4d3664);_0x319ee8(null,![]);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x55')]=function(_0x4cc507,_0x2df588){var _0x463db8={'role':'agent'};_0x463db8[_0x4cc507]=this[_0xbd0b('0xc')][_0xbd0b('0x38')];var _0x21a475=_0x4cc507!=_0xbd0b('0x56')?util['format'](_0xbd0b('0x57'),_0xbd0b('0x58'),this[_0xbd0b('0xc')][_0xbd0b('0x38')]):undefined;this[_0xbd0b('0xd')]['agentLogin'](_0x463db8,_0x21a475)['then'](function(_0x4ce5bc){_0x2df588(null,_['isNil'](_0x4ce5bc)?![]:!![]);})[_0xbd0b('0x12')](function(_0x3735b9){logger[_0xbd0b('0x2c')](_0x3735b9);_0x2df588(null,![]);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x59')]=function(_0x42d8ed,_0x56317c){sh[_0xbd0b('0x5a')](_['trim'](_0x42d8ed),function(_0x271463,_0x537a32){var _0x4f2d7c=_0x537a32['replace'](/(\r\n|\n|\r)/gm,'');_0x56317c(null,_0x4f2d7c);});};AGIVertices[_0xbd0b('0x13')]['googleTTS']=function(_0x57d14b,_0x308317){scripts[_0xbd0b('0x5b')](_0x57d14b['text'],_0x57d14b[_0xbd0b('0x5c')]||'en',0x1)['then'](function(_0x58d337){_0x308317(null,_0x58d337);})[_0xbd0b('0x12')](function(_0x15dbda){_0x308317(_0x15dbda);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x5d')]=function(_0x420d1f,_0x19f4d0){scripts[_0xbd0b('0x5d')](this[_0xbd0b('0xc')]['uniqueid'],_0x420d1f['key'],_0x420d1f[_0xbd0b('0x5e')],_0x420d1f['dialogflow_language']||'en')[_0xbd0b('0x10')](function(_0x41ca38){_0x19f4d0(null,_0x41ca38);})[_0xbd0b('0x12')](function(_0x551bca){_0x19f4d0(_0x551bca);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x5f')]=function(_0x541853,_0x3bea41){scripts[_0xbd0b('0x5f')](_0x541853[_0xbd0b('0x60')],_0x541853[_0xbd0b('0x5e')],_0x541853[_0xbd0b('0x61')]||'en-US',_0x541853[_0xbd0b('0x62')])[_0xbd0b('0x10')](function(_0x353c5a){_0x3bea41(null,_0x353c5a);})[_0xbd0b('0x12')](function(_0x56fc7a){_0x3bea41(_0x56fc7a);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x63')]=function(_0x4ce935,_0x1c398f,_0x4ced87){scripts[_0xbd0b('0x63')](_0x1c398f,_0x4ce935[_0xbd0b('0x60')],_0x4ce935[_0xbd0b('0x64')]||_0xbd0b('0x65'),this[_0xbd0b('0x66')](_0x4ce935['model'])?_0x4ce935['model']:undefined)['then'](function(_0xbc6db3){_0x4ced87(null,_0xbc6db3);})[_0xbd0b('0x12')](function(_0x3b220f){_0x4ced87(_0x3b220f);});};AGIVertices['prototype'][_0xbd0b('0x67')]=function(_0x19b3b3,_0x262866){scripts[_0xbd0b('0x67')](_0x19b3b3[_0xbd0b('0x68')],_0x19b3b3['aws_secret_access_key'],_0x19b3b3[_0xbd0b('0x69')],_0x19b3b3['aws_polly_voice']||_0xbd0b('0x6a'),_0x19b3b3[_0xbd0b('0x5e')],_0x19b3b3[_0xbd0b('0x6b')]||_0xbd0b('0x5e'))[_0xbd0b('0x10')](function(_0xba1071){_0x262866(null,_0xba1071);})[_0xbd0b('0x12')](function(_0x35ef58){_0x262866(_0x35ef58);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x6c')]=function(_0x4913b3,_0x3088e5){scripts[_0xbd0b('0x6c')](this[_0xbd0b('0xc')][_0xbd0b('0x36')],_0x4913b3[_0xbd0b('0x68')],_0x4913b3[_0xbd0b('0x6d')],_0x4913b3[_0xbd0b('0x6e')],_0x4913b3['text'],_0x4913b3[_0xbd0b('0x6f')])[_0xbd0b('0x10')](function(_0x9960ab){_0x3088e5(null,_0x9960ab);})['catch'](function(_0x1d1d70){_0x3088e5(_0x1d1d70);});};AGIVertices['prototype'][_0xbd0b('0x70')]=function(_0x1c81d6,_0x1247f0,_0x3325f3){scripts[_0xbd0b('0x70')](_0x1247f0,_0x1c81d6[_0xbd0b('0x60')],_0x1c81d6['google_asr_language']||_0xbd0b('0x65'))[_0xbd0b('0x10')](function(_0x2b3459){_0x3325f3(null,_0x2b3459);})[_0xbd0b('0x12')](function(_0x4966a7){_0x3325f3(_0x4966a7);});};AGIVertices[_0xbd0b('0x13')]['tildeASR']=function(_0x17dd54,_0x34cacd,_0x27c561){scripts[_0xbd0b('0x71')](_0x34cacd,_0x17dd54[_0xbd0b('0x72')],_0x17dd54[_0xbd0b('0x73')],_0x17dd54[_0xbd0b('0x74')])[_0xbd0b('0x10')](function(_0x39f423){_0x27c561(null,_0x39f423);})[_0xbd0b('0x12')](function(_0x37ff80){_0x27c561(_0x37ff80);});};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x75')]=function(_0x50b868){var _0x39740c=_[_0xbd0b('0x76')](verticesWithRetry,_0x50b868[_0xbd0b('0x37')])?_0x50b868:_[_0xbd0b('0x77')](_0x50b868);for(var _0xf81312 in _0x39740c){if(_0x39740c[_0xbd0b('0x78')](_0xf81312)){if(_0x39740c[_0xf81312]&&_[_0xbd0b('0x79')](_0x39740c[_0xf81312])){_0x39740c[_0xf81312]=this[_0xbd0b('0x7a')](_0x39740c[_0xf81312]);}}}return _0x39740c;};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x7a')]=function(_0x3db94a){var _0x451dd7=_0x3db94a[_0xbd0b('0x7b')]('{');for(var _0x4ade50=0x1;_0x4ade50<_0x451dd7[_0xbd0b('0x7c')];_0x4ade50+=0x1){var _0x42a306=_0x451dd7[_0x4ade50][_0xbd0b('0x7b')]('}');if(_0x42a306[_0xbd0b('0x7c')]>0x1){_0x3db94a=_0x3db94a['replaceAll']('{'+_0x42a306[0x0]+'}',this[_0xbd0b('0xc')][_0xbd0b('0x7d')](_0x42a306[0x0])[_0xbd0b('0x7e')]||_0x42a306[0x0]);}}if(_0x451dd7[_0xbd0b('0x7c')]===0x1){return _0x3db94a[_0xbd0b('0x7f')]();}return this['replaceAllVariables'](_0x3db94a);};AGIVertices['prototype'][_0xbd0b('0x80')]=function(_0x356ca4,_0x1c271e){var _0x541fa1=this[_0xbd0b('0xc')][_0xbd0b('0x7d')](_0x356ca4);if(_0x541fa1[_0xbd0b('0x81')]===-0x1){return _0x541fa1;}logger['info'](util[_0xbd0b('0x28')]('The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s',_0x1c271e,_0x541fa1['extra']));return this[_0xbd0b('0xc')]['setVariable'](_0x1c271e,_0x541fa1['extra']);};AGIVertices[_0xbd0b('0x13')]['isConfigured']=function(_0x3ca88d){return _0x3ca88d&&_0x3ca88d!=='0'&&_0x3ca88d!=='-1'&&_0x3ca88d!=='';};AGIVertices[_0xbd0b('0x13')]['maxRetry']=function(_0x1ddc8c){this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x1ddc8c,'-');_0x1ddc8c[_0xbd0b('0x83')]=_0x1ddc8c[_0xbd0b('0x84')];return{'code':0xc8,'result':'-'};};AGIVertices['prototype'][_0xbd0b('0x6')]=function(_0x45624c){logger['info'](util[_0xbd0b('0x28')](_0xbd0b('0x85'),_0x45624c[_0xbd0b('0x86')]));return this[_0xbd0b('0xc')][_0xbd0b('0x6')]([_0x45624c[_0xbd0b('0x87')],_0x45624c['args']]);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x88')]=function(_0x3033fd){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x89'),_0x3033fd[_0xbd0b('0x86')]));if(this[_0xbd0b('0x66')](_0x3033fd[_0xbd0b('0x8a')])){logger['info'](util[_0xbd0b('0x28')]('Wait\x20%s\x20seconds\x20before\x20answer',_0x3033fd[_0xbd0b('0x8a')]));var _0x33590c=this[_0xbd0b('0xc')][_0xbd0b('0x8b')](_0x3033fd[_0xbd0b('0x8a')]);if(_0x33590c[_0xbd0b('0x81')]===-0x1){return _0x33590c;}}return this[_0xbd0b('0xc')][_0xbd0b('0x88')]();};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x4b')]=function(_0x453a58){logger[_0xbd0b('0x2e')](util['format'](_0xbd0b('0x8c'),_0x453a58['label']));if(!this[_0xbd0b('0x66')](_0x453a58[_0xbd0b('0x4a')])){return this['channel'][_0xbd0b('0x2c')](_0x453a58,_0xbd0b('0x8d'));}_0x453a58[_0xbd0b('0x4d')]=moment();if(this[_0xbd0b('0x66')](_0x453a58[_0xbd0b('0x8e')])){_0x453a58[_0xbd0b('0x4d')]=moment()[_0xbd0b('0x8f')](_0x453a58[_0xbd0b('0x8e')],_0xbd0b('0x90'));}if(!this[_0xbd0b('0x66')](_0x453a58[_0xbd0b('0x4e')])){_0x453a58[_0xbd0b('0x4e')]=0x2;}this['createCmContact'][_0xbd0b('0x82')](this,_0x453a58);return this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0x91'),_0x453a58['phone'],_0x453a58[_0xbd0b('0x4a')],_0x453a58['scheduledAt']));};AGIVertices[_0xbd0b('0x13')]['custom_app']=function(_0x240a5a){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x92'),_0x240a5a[_0xbd0b('0x86')]));var _0x10ccc8=this['channel']['exec'](_0x240a5a[_0xbd0b('0x93')],_0x240a5a[_0xbd0b('0x94')]);if(_0x10ccc8[_0xbd0b('0x81')]===-0x1){return _0x10ccc8;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x96'),_0x240a5a['application'],_0x240a5a[_0xbd0b('0x94')]));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x97')]=function(_0x4d14f7){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x98'),_0x4d14f7['label']));if(!this[_0xbd0b('0x66')](_0x4d14f7['text'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x99'));}var _0x3f45cc='\x22'+_0x4d14f7['text']+'\x22';if(this['isConfigured'](_0x4d14f7[_0xbd0b('0x94')])){_0x3f45cc+=','+_0x4d14f7['options'];}var _0x35748b=this['channel']['exec'](_0xbd0b('0x9a'),_0x3f45cc);if(_0x35748b[_0xbd0b('0x81')]===-0x1){return _0x35748b;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format'](_0xbd0b('0x9b'),_0x3f45cc));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x9c')]=function(_0x199aad){logger['info'](util[_0xbd0b('0x28')](_0xbd0b('0x9d'),_0x199aad[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x199aad['grammar'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x9e'));}var _0x5168b7=_0x199aad[_0xbd0b('0x9f')];if(this[_0xbd0b('0x66')](_0x199aad[_0xbd0b('0x94')])){_0x5168b7+=','+_0x199aad[_0xbd0b('0x94')];}var _0x1fe2bf=this[_0xbd0b('0xc')][_0xbd0b('0x5a')](_0xbd0b('0xa0'),_0x5168b7);if(_0x1fe2bf[_0xbd0b('0x81')]===-0x1){return _0x1fe2bf;}var _0x3e2343=this['getAndSetVariable']('RECOG_CONFIDENCE()',_0xbd0b('0xa1'));if(_0x3e2343[_0xbd0b('0x81')]===-0x1){return _0x3e2343;}var _0x49a091=this[_0xbd0b('0x80')](_0xbd0b('0xa2'),_0xbd0b('0xa3'));if(_0x49a091[_0xbd0b('0x81')]===-0x1){return _0x49a091;}var _0x47a666=this['getAndSetVariable'](_0xbd0b('0xa4'),_0xbd0b('0xa5'));if(_0x47a666[_0xbd0b('0x81')]===-0x1){return _0x47a666;}return this['channel'][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0xa6'),_0x5168b7));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xa7')]=function(_0x4dc394){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xa8'),_0x4dc394['label']));if(!this[_0xbd0b('0x66')](_0x4dc394[_0xbd0b('0xa9')])){return this['channel'][_0xbd0b('0x2c')](_0x4dc394,_0xbd0b('0xaa'));}var _0x2e5cfb=this[_0xbd0b('0x18')][_0xbd0b('0x82')](this,_0x4dc394['odbc_id']);if(!_0x2e5cfb){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x4dc394,_0xbd0b('0xab'));}if(!this[_0xbd0b('0x66')](_0x4dc394['query'])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x4dc394,_0xbd0b('0xac'));}var _0x2f428e=_0x4dc394[_0xbd0b('0xad')][_0xbd0b('0xae')](/(\r\n|\n|\r)/gm,'\x20');this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format'](_0xbd0b('0xaf'),_0x2f428e));var _0x4f99e0=this[_0xbd0b('0x2a')][_0xbd0b('0x82')](this,_0x2e5cfb,_0x2f428e);this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x4dc394,_0x2f428e);if(!this[_0xbd0b('0x66')](_0x4dc394['variable_id'])){return this[_0xbd0b('0xc')]['noop'](_0xbd0b('0xb0'));}var _0x57e5b0=this['getVariable'][_0xbd0b('0x82')](this,_0x4dc394[_0xbd0b('0xb1')]);if(!_0x57e5b0){return this['channel'][_0xbd0b('0x2c')](_0x4dc394,'no\x20variable\x20found');}var _0x216ac5=this;_0x4f99e0['forEach'](function(_0x151b30,_0x192d80){Object[_0xbd0b('0xb2')](_0x151b30)[_0xbd0b('0xb3')](function(_0x29d5e6){_0x216ac5['channel']['setVariable'](util[_0xbd0b('0x28')](_0xbd0b('0xb4'),_0x57e5b0,_0x192d80,_0x29d5e6),_0x151b30[_0x29d5e6]);});});this[_0xbd0b('0xc')]['setVariable'](util[_0xbd0b('0x28')](_0xbd0b('0xb5'),_0x57e5b0),_0x4f99e0[_0xbd0b('0x7c')]);return this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0xb6'),_0x57e5b0));};AGIVertices[_0xbd0b('0x13')]['dial']=function(_0x2f1699){logger[_0xbd0b('0xb7')](util[_0xbd0b('0x28')]('Enter\x20in\x20DIAL\x20(%s)\x20block',_0x2f1699[_0xbd0b('0x86')]));if(!this['isConfigured'](_0x2f1699[_0xbd0b('0xb8')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x2f1699,_0xbd0b('0xb9'));}var _0x406c23=this[_0xbd0b('0x1a')][_0xbd0b('0x82')](this,_0x2f1699[_0xbd0b('0xb8')]);if(!_0x406c23){return this['channel']['error'](_0x2f1699,'no\x20user\x20found');}var _0x3e1cef=this[_0xbd0b('0xc')][_0xbd0b('0x5a')](_0xbd0b('0xba'),[util['format'](_0xbd0b('0xbb'),_0x406c23),_0x2f1699[_0xbd0b('0x8a')],_0x2f1699[_0xbd0b('0xbc')],_0x2f1699[_0xbd0b('0xbd')]]);if(_0x3e1cef[_0xbd0b('0x81')]===-0x1){return _0x3e1cef;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0xbe'),'DIAL'));};AGIVertices[_0xbd0b('0x13')]['dialogflow']=function(_0x4e57fa){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xbf'),_0x4e57fa[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x4e57fa['key'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xc0'));}if(!this[_0xbd0b('0x66')](_0x4e57fa[_0xbd0b('0x5e')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x99'));}this[_0xbd0b('0xc')][_0xbd0b('0xc1')]=!![];this[_0xbd0b('0x35')](_0x4e57fa);this[_0xbd0b('0x42')](_0x4e57fa[_0xbd0b('0x5e')],'in');this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('Trying\x20Dialogflow:\x20%s',_0x4e57fa[_0xbd0b('0x5e')]));var _0x1fea66=this['googleDialogflow'][_0xbd0b('0x82')](this,_0x4e57fa);if(_0x1fea66){for(var _0x3161a0 in _0x1fea66){if(_0x1fea66['hasOwnProperty'](_0x3161a0)){this[_0xbd0b('0xc')]['setVariable'](util[_0xbd0b('0x28')](_0xbd0b('0xc2'),_0x3161a0[_0xbd0b('0xc3')]()),_0x1fea66[_0x3161a0]);}}this[_0xbd0b('0x42')](_0x1fea66[_0xbd0b('0xc4')],_0xbd0b('0xc5'));return this['channel']['noop'](util['format'](_0xbd0b('0xc6'),_0x1fea66[_0xbd0b('0xc4')]));}return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x4e57fa,_0xbd0b('0xc7'));};AGIVertices['prototype'][_0xbd0b('0xc8')]=function(_0x7206d7){logger[_0xbd0b('0x2e')](util['format']('Enter\x20in\x20END\x20(%s)\x20block',_0x7206d7[_0xbd0b('0x86')]));return this['channel'][_0xbd0b('0x95')](_0xbd0b('0xc8'));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xc9')]=function(_0x2cf9c5){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xca'),_0x2cf9c5[_0xbd0b('0x86')]));var _0x53e8a5='';if(_0x2cf9c5['trunk_id']){if(!this['isConfigured'](_0x2cf9c5[_0xbd0b('0xcb')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x2cf9c5,_0xbd0b('0xcc'));}else{var _0x197f63=parseInt(_0x2cf9c5['trunk_id'],0xa);if(isNaN(_0x197f63)){_0x53e8a5=_0x2cf9c5['trunk_id'];}else{_0x53e8a5=this[_0xbd0b('0x1b')][_0xbd0b('0x82')](this,_0x2cf9c5[_0xbd0b('0xcb')]);if(!_0x53e8a5){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x2cf9c5,_0xbd0b('0xcd'));}}}}else if(_0x2cf9c5[_0xbd0b('0xce')]){_0x53e8a5=_0x2cf9c5[_0xbd0b('0xce')];}else{return this['channel'][_0xbd0b('0x2c')](_0x2cf9c5,_0xbd0b('0xcc'));}var _0x48f4e9=this[_0xbd0b('0xc')][_0xbd0b('0x5a')](_0xbd0b('0xba'),[util[_0xbd0b('0x28')]('SIP/%s/%s',_0x53e8a5,_0x2cf9c5['phone']),_0x2cf9c5['timeout'],_0x2cf9c5[_0xbd0b('0xbc')],_0x2cf9c5[_0xbd0b('0xbd')]]);if(_0x48f4e9[_0xbd0b('0x81')]===-0x1){return _0x48f4e9;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('Executed\x20command\x20%s',_0xbd0b('0xba')));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xcf')]=function(_0x170f50){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xd0'),_0x170f50[_0xbd0b('0x86')]));return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xcf'));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xa')]=function(_0x41a198){logger[_0xbd0b('0x2e')](util['format'](_0xbd0b('0xd1'),_0x41a198[_0xbd0b('0x86')]));if(_0x41a198[_0xbd0b('0x83')]===0x0){return this[_0xbd0b('0x84')](_0x41a198);}_0x41a198[_0xbd0b('0x83')]-=0x1;if(!this[_0xbd0b('0x66')](_0x41a198[_0xbd0b('0xd2')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x41a198,_0xbd0b('0xd3'));}var _0x256111=this['getSound'][_0xbd0b('0x82')](this,_0x41a198[_0xbd0b('0xd2')]);if(!_0x256111){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x41a198,_0xbd0b('0xd4'));}if(!this[_0xbd0b('0x66')](_0x41a198[_0xbd0b('0xb1')])){return this['channel']['error'](_0xbd0b('0xb0'));}var _0x5986b3=this[_0xbd0b('0xc')][_0xbd0b('0xd5')](_0x256111,_0x41a198['response'],_0x41a198['maxdigit']);var _0x4066e0=_0x5986b3[_0xbd0b('0x81')]?_0x5986b3[_0xbd0b('0x81')]['toString']():'';logger[_0xbd0b('0x2e')]('test',JSON['stringify'](_0x5986b3));if(_0x5986b3['result']===-0x1){this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x41a198,_0x4066e0);return _0x5986b3;}else if(_0x5986b3['extra']===_0xbd0b('0x8a')){_0x5986b3[_0xbd0b('0x81')]=_0x4066e0[_0xbd0b('0x7c')]>=parseInt(_0x41a198[_0xbd0b('0xd6')])?'x':'i';}else{_0x5986b3[_0xbd0b('0x81')]=_0x4066e0[_0xbd0b('0x7c')]>=parseInt(_0x41a198[_0xbd0b('0xd6')])&&_0x4066e0[_0xbd0b('0x7c')]<=parseInt(_0x41a198['maxdigit'])?'x':'i';}var _0x146486=this[_0xbd0b('0x7d')][_0xbd0b('0x82')](this,_0x41a198[_0xbd0b('0xb1')]);if(!_0x146486){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x41a198,'no\x20variable\x20found');}this[_0xbd0b('0xc')][_0xbd0b('0xd7')](_0x146486,_0x4066e0);if(this[_0xbd0b('0x66')](_0x41a198[_0xbd0b('0xd8')])){var _0x5c77d5=parseInt(_0x41a198['hiddendigitsnum'],0xa);var _0x5b68e3=rs[_0xbd0b('0xd9')]({'charset':'*','length':_0x5c77d5});var _0x2fd994=_0x4066e0['length'];if(_0x2fd994>0x0){if(_0x2fd994>_0x5c77d5){this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x41a198,_0x41a198[_0xbd0b('0xda')]===_0xbd0b('0xdb')?_0x5b68e3+_0x4066e0[_0xbd0b('0xdc')](_0x5c77d5):_0x4066e0[_0xbd0b('0xdc')](0x0,_0x2fd994-_0x5c77d5)+_0x5b68e3);}else{this['createSquareDetailsReport'][_0xbd0b('0x82')](this,_0x41a198,rs[_0xbd0b('0xd9')]({'charset':'*','length':_0x2fd994}));}}else{this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x41a198,'');}}else{this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x41a198,_0x4066e0);}return _0x5986b3;};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xb')]=function(_0x350b16){logger['info'](util[_0xbd0b('0x28')]('Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block',_0x350b16[_0xbd0b('0x86')]));return this[_0xbd0b('0xa')](_0x350b16);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xdd')]=function(_0x5ec563){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xde'),_0x5ec563[_0xbd0b('0x86')]));this['createSquareDetailsReport'][_0xbd0b('0x82')](this,_0x5ec563,_0x5ec563['goalname']);return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0xdf'),_0x5ec563['goalname']));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xe0')]=function(_0x1816e5){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xe1'),_0x1816e5[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x1816e5[_0xbd0b('0x68')])||!this[_0xbd0b('0x66')](_0x1816e5[_0xbd0b('0x6d')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xe2'));}if(!this[_0xbd0b('0x66')](_0x1816e5[_0xbd0b('0x5e')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')]('no\x20text\x20configured');}this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format'](_0xbd0b('0xe3'),_0x1816e5[_0xbd0b('0x5e')]));var _0x64b5f2=this[_0xbd0b('0x67')][_0xbd0b('0x82')](this,_0x1816e5);if(_0x64b5f2){this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0xe4'),_0x64b5f2));var _0x41bdd0=this[_0xbd0b('0xc')]['streamFile'](_0x64b5f2);try{fs['unlink'](_0x64b5f2+_0xbd0b('0xe5'));}catch(_0x4d0310){logger[_0xbd0b('0x2c')](_0x4d0310);}return _0x41bdd0;}return this['channel']['error'](_0x1816e5,_0xbd0b('0xe6'));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xe7')]=function(_0x7bcdc0){logger['info'](util[_0xbd0b('0x28')](_0xbd0b('0xe8'),_0x7bcdc0['label']));if(!this[_0xbd0b('0x66')](_0x7bcdc0[_0xbd0b('0x68')])||!this[_0xbd0b('0x66')](_0x7bcdc0['aws_secret_access_key'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xe2'));}if(!this[_0xbd0b('0x66')](_0x7bcdc0['aws_bot_name'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xe9'));}if(!this['isConfigured'](_0x7bcdc0[_0xbd0b('0x5e')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x99'));}this[_0xbd0b('0xc')][_0xbd0b('0xc1')]=!![];this[_0xbd0b('0x35')](_0x7bcdc0);this[_0xbd0b('0x42')](_0x7bcdc0[_0xbd0b('0x5e')],'in');this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0xea'),_0x7bcdc0['text']));var _0x3c9371=this[_0xbd0b('0x6c')][_0xbd0b('0x82')](this,_0x7bcdc0);if(_0x3c9371){for(var _0x16a4c9 in _0x3c9371){if(_0x3c9371[_0xbd0b('0x78')](_0x16a4c9)&&_['isString'](_0x3c9371[_0x16a4c9])){this[_0xbd0b('0xc')][_0xbd0b('0xd7')](util[_0xbd0b('0x28')]('AWS_LEX_%s',_0x16a4c9[_0xbd0b('0xc3')]()),_0x3c9371[_0x16a4c9]);}}if(_['isNil'](_0x3c9371[_0xbd0b('0xeb')])){return this[_0xbd0b('0xc')]['noop']('Amazon\x20Lex\x20ready\x20for\x20fulfillment');}else{this[_0xbd0b('0x42')](_0x3c9371['message'],_0xbd0b('0xc5'));return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0xec'),_0x3c9371[_0xbd0b('0xeb')]));}}return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x7bcdc0,_0xbd0b('0xed'));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xee')]=function(_0x569043){logger['info'](util[_0xbd0b('0x28')]('Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s',_0x569043[_0xbd0b('0x86')],_0x569043[_0xbd0b('0x8a')]));if(!this[_0xbd0b('0x66')](_0x569043['key'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xc0'));}var _0x43e8e9=_0xbd0b('0xef');var _0x556126=util[_0xbd0b('0x28')](_0xbd0b('0xf0'),FILES_PATH,rs[_0xbd0b('0xd9')](0x4));var _0x51e87b=util['format'](_0xbd0b('0xf1'),_0x556126,_0x43e8e9);var _0x4616ab=!![];if(_0x569043['beep']===_0xbd0b('0xf2')){_0x4616ab=![];}var _0x19f0ad=this[_0xbd0b('0xc')][_0xbd0b('0xf3')](_0x556126,_0x43e8e9,_0x569043['intKey'],_0x569043[_0xbd0b('0x8a')],undefined,_0x4616ab);if(_0x19f0ad[_0xbd0b('0x81')]!==-0x1){this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format'](_0xbd0b('0xf4'),_0x51e87b));var _0x4ed184=this[_0xbd0b('0x70')][_0xbd0b('0x82')](this,_0x569043,_0x51e87b);if(_0x4ed184){for(var _0x586b2f in _0x4ed184){if(_0x4ed184[_0xbd0b('0x78')](_0x586b2f)){this['channel']['setVariable'](util[_0xbd0b('0x28')]('GOOGLE_ASR_%s',_0x586b2f[_0xbd0b('0xc3')]()),_0x4ed184[_0x586b2f]);}}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format']('GoogleASR\x20Result\x20%s',JSON[_0xbd0b('0xf5')](_0x4ed184)));}}return _0x19f0ad;};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0xf6')]=function(_0x31f0d6){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xf7'),_0x31f0d6[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x31f0d6[_0xbd0b('0x72')])){return this['channel'][_0xbd0b('0x95')](_0xbd0b('0xf8'));}if(!this['isConfigured'](_0x31f0d6[_0xbd0b('0x73')])){return this['channel'][_0xbd0b('0x95')](_0xbd0b('0xf9'));}var _0xc70ad3=_0xbd0b('0xef');var _0x591787=util[_0xbd0b('0x28')](_0xbd0b('0xf0'),FILES_PATH,rs[_0xbd0b('0xd9')](0x4));var _0x3d3816=util['format'](_0xbd0b('0xf1'),_0x591787,_0xc70ad3);var _0x21bd14=!![];if(_0x31f0d6['beep']===_0xbd0b('0xf2')){_0x21bd14=![];}var _0xafa05e=this[_0xbd0b('0xc')][_0xbd0b('0xf3')](_0x591787,_0xc70ad3,_0x31f0d6['intKey'],_0x31f0d6[_0xbd0b('0x8a')],undefined,_0x21bd14);if(_0xafa05e[_0xbd0b('0x81')]!==-0x1){this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0xfa'),_0x3d3816));var _0x2a528e=this['tildeASR'][_0xbd0b('0x82')](this,_0x31f0d6,_0x3d3816);if(_0x2a528e){for(var _0x265840 in _0x2a528e){if(_0x2a528e[_0xbd0b('0x78')](_0x265840)){this[_0xbd0b('0xc')]['setVariable'](util['format'](_0xbd0b('0xfb'),_0x265840['toUpperCase']()),_0x2a528e[_0x265840]);}}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('TildeASR\x20Result\x20%s',JSON['stringify'](_0x2a528e)));}}return _0xafa05e;};AGIVertices['prototype']['gotoc']=function(_0x35845e){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xfc'),_0x35845e[_0xbd0b('0x86')]));return this[_0xbd0b('0xc')]['continueAt'](_0x35845e[_0xbd0b('0x3b')],_0x35845e[_0xbd0b('0x3c')],_0x35845e[_0xbd0b('0x3d')]);};AGIVertices['prototype'][_0xbd0b('0xfd')]=function(_0x36dd1d){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0xfe'),_0x36dd1d[_0xbd0b('0x86')]));if(!this['isConfigured'](_0x36dd1d[_0xbd0b('0xff')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x36dd1d,_0xbd0b('0x100'));}try{var _0x5450ba=eval(_0x36dd1d['condition'])?_0xbd0b('0x101'):_0xbd0b('0x102');this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x103'),_0x36dd1d[_0xbd0b('0xff')],_0x5450ba));return{'code':0xc8,'result':_0x5450ba};}catch(_0x1ab9a1){return{'code':0xc8,'result':_0xbd0b('0x102')};}};AGIVertices['prototype'][_0xbd0b('0x104')]=function(_0x233d08){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x105'),_0x233d08[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x233d08[_0xbd0b('0x106')])){return this['channel'][_0xbd0b('0x2c')](_0x233d08,_0xbd0b('0x107'));}var _0xb2d193=this[_0xbd0b('0x21')][_0xbd0b('0x82')](this,_0x233d08[_0xbd0b('0x106')]);if(!_0xb2d193){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x233d08,_0xbd0b('0x108'));}for(var _0x58c16c=0x0;_0x58c16c<_0xb2d193[_0xbd0b('0x7c')];_0x58c16c+=0x1){var _0x24971c=this[_0xbd0b('0xc')][_0xbd0b('0x7d')](util[_0xbd0b('0x28')](_0xbd0b('0x109'),_0xb2d193[_0x58c16c]));if(_0x24971c[_0xbd0b('0x81')]===-0x1){return _0x24971c;}logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('IFTIME\x20%s\x20%s',_0xb2d193[_0x58c16c],_0x24971c['extra']));if(_0x24971c['extra']===_0xbd0b('0x101')){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('IFTIME\x20%s\x20%s',_0xb2d193[_0x58c16c],_0xbd0b('0x101')));this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0x10a'),_0xb2d193[_0x58c16c],_0xbd0b('0x101')));return{'code':0xc8,'result':'true'};}else{logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x10a'),_0xb2d193[_0x58c16c],_0xbd0b('0x102')));this['channel'][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x10a'),_0xb2d193[_0x58c16c],'false'));}}return{'code':0xc8,'result':_0xbd0b('0x102')};};AGIVertices['prototype']['hangup']=function(_0x4703c0){logger[_0xbd0b('0x2e')](util['format'](_0xbd0b('0x10b'),_0x4703c0[_0xbd0b('0x86')]));return this[_0xbd0b('0xc')][_0xbd0b('0x10c')]();};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x10d')]=function(_0x35967c){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x10e'),_0x35967c[_0xbd0b('0x86')]));if(!this['isConfigured'](_0x35967c[_0xbd0b('0x60')])){return this['channel'][_0xbd0b('0x95')](_0xbd0b('0xc0'));}var _0x3c9a30='wav';var _0x42206b=util[_0xbd0b('0x28')](_0xbd0b('0xf0'),FILES_PATH,rs[_0xbd0b('0xd9')](0x4));var _0x2ee1c3=util['format']('%s.%s',_0x42206b,_0x3c9a30);var _0x5dffe8=!![];if(_0x35967c[_0xbd0b('0x10f')]===_0xbd0b('0xf2')){_0x5dffe8=![];}var _0x2accb1=this[_0xbd0b('0xc')][_0xbd0b('0xf3')](_0x42206b,_0x3c9a30,_0x35967c[_0xbd0b('0x110')],_0x35967c[_0xbd0b('0x8a')],undefined,_0x5dffe8);if(_0x2accb1[_0xbd0b('0x81')]!==-0x1){this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('ispeech\x20%s\x20file\x20created',_0x2ee1c3));var _0x5c8090=this[_0xbd0b('0x63')][_0xbd0b('0x82')](this,_0x35967c,_0x2ee1c3);if(_0x5c8090){for(var _0x55b11a in _0x5c8090){if(_0x5c8090[_0xbd0b('0x78')](_0x55b11a)){this[_0xbd0b('0xc')][_0xbd0b('0xd7')](util[_0xbd0b('0x28')](_0xbd0b('0x111'),_0x55b11a[_0xbd0b('0xc3')]()),_0x5c8090[_0x55b11a]);}}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x112'),JSON[_0xbd0b('0xf5')](_0x5c8090)));}}return _0x2accb1;};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x113')]=function(_0x450447){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block',_0x450447[_0xbd0b('0x86')]));if(!this['isConfigured'](_0x450447[_0xbd0b('0x60')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xc0'));}if(!this[_0xbd0b('0x66')](_0x450447[_0xbd0b('0x5e')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x99'));}this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('Trying\x20ispeech\x20TTS\x20%s',_0x450447['text']));var _0xf00386=this[_0xbd0b('0x5f')][_0xbd0b('0x82')](this,_0x450447);if(_0xf00386){this[_0xbd0b('0xc')]['noop'](util['format'](_0xbd0b('0x114'),_0xf00386));var _0x129bcb=this['channel'][_0xbd0b('0x115')](_0xf00386,_0x450447[_0xbd0b('0x110')]);try{fs[_0xbd0b('0x116')](_0xf00386+_0xbd0b('0xe5'));}catch(_0x324d0d){logger[_0xbd0b('0x2c')](_0x324d0d);}return _0x129bcb;}return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x450447,_0xbd0b('0x117'));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x118')]=function(_0x28d82e){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x119'),_0x28d82e['label']));if(!this[_0xbd0b('0x66')](_0x28d82e[_0xbd0b('0x11a')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x28d82e,'no\x20find\x20by\x20configured');}logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x11b'),this[_0xbd0b('0xc')]['callerid'],_0x28d82e[_0xbd0b('0x11a')]));var _0x373868=this[_0xbd0b('0x55')][_0xbd0b('0x82')](this,_0x28d82e[_0xbd0b('0x11a')]);if(_0x373868){logger['info'](util[_0xbd0b('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x28d82e[_0xbd0b('0x11a')]));this['channel'][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x11c'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x28d82e[_0xbd0b('0x11a')]));return{'code':0xc8,'result':'success'};}else{logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x11d'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x28d82e['findBy']));this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x28d82e[_0xbd0b('0x11a')]));return{'code':0xc8,'result':_0xbd0b('0x11e')};}};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x11f')]=function(_0x1c76ef){logger[_0xbd0b('0x2e')](util['format'](_0xbd0b('0x120'),_0x1c76ef[_0xbd0b('0x86')]));if(!this['isConfigured'](_0x1c76ef[_0xbd0b('0x11a')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x1c76ef,_0xbd0b('0x121'));}logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x11b'),this['channel'][_0xbd0b('0x38')],_0x1c76ef[_0xbd0b('0x11a')]));var _0x45efda=this[_0xbd0b('0x54')][_0xbd0b('0x82')](this,_0x1c76ef['findBy']);if(_0x45efda){logger[_0xbd0b('0x2e')](util['format'](_0xbd0b('0x11c'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x1c76ef['findBy']));this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format'](_0xbd0b('0x11c'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x1c76ef[_0xbd0b('0x11a')]));return{'code':0xc8,'result':'success'};}else{logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x11d'),this['channel']['callerid'],_0x1c76ef[_0xbd0b('0x11a')]));this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel'][_0xbd0b('0x38')],_0x1c76ef[_0xbd0b('0x11a')]));return{'code':0xc8,'result':_0xbd0b('0x11e')};}};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x122')]=function(_0x542d02){logger['info'](util[_0xbd0b('0x28')](_0xbd0b('0x123'),_0x542d02[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x542d02[_0xbd0b('0x124')])){return this[_0xbd0b('0xc')]['error'](_0x542d02,_0xbd0b('0x125'));}this[_0xbd0b('0xc')]['noop'](util['format'](_0xbd0b('0x126'),_0x542d02[_0xbd0b('0x124')]));var _0x5754bc=eval(_0x542d02[_0xbd0b('0x124')]);if(!this[_0xbd0b('0x66')](_0x542d02['variable_id'])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xb0'));}var _0x4c65bd=this[_0xbd0b('0x7d')][_0xbd0b('0x82')](this,_0x542d02[_0xbd0b('0xb1')]);if(!_0x4c65bd){return this['channel'][_0xbd0b('0x2c')](_0x542d02,_0xbd0b('0x127'));}if(_[_0xbd0b('0x128')](_0x5754bc)){var _0x1b13a1=this;_0x5754bc['forEach'](function(_0x36cc43,_0x50e50f){_0x1b13a1[_0xbd0b('0xc')][_0xbd0b('0xd7')](util[_0xbd0b('0x28')](_0xbd0b('0x129'),_0x4c65bd,_0x50e50f),_0x36cc43);});return this['channel'][_0xbd0b('0x95')](util['format'](_0xbd0b('0x12a'),_0x4c65bd));}else{return this[_0xbd0b('0xc')][_0xbd0b('0xd7')](_0x4c65bd,_0x5754bc);}};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x9')]=function(_0x1566bf){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x12b'),_0x1566bf[_0xbd0b('0x86')]));if(_0x1566bf[_0xbd0b('0x83')]===0x0){return this['maxRetry'](_0x1566bf);}_0x1566bf['retry']-=0x1;if(!this[_0xbd0b('0x66')](_0x1566bf[_0xbd0b('0xd2')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x1566bf,_0xbd0b('0xd3'));}var _0x99cc3c=this[_0xbd0b('0x1d')][_0xbd0b('0x82')](this,_0x1566bf[_0xbd0b('0xd2')]);if(!_0x99cc3c){return this[_0xbd0b('0xc')]['error'](_0x1566bf,'no\x20file\x20audio\x20found');}var _0x57bc8d=this[_0xbd0b('0xc')][_0xbd0b('0xd5')](_0x99cc3c,_0x1566bf[_0xbd0b('0x12c')],_0x1566bf['digit']);var _0x5d28d3=_0x57bc8d[_0xbd0b('0x81')];if(_0x57bc8d[_0xbd0b('0x81')]===-0x1){this['createSquareDetailsReport'][_0xbd0b('0x82')](this,_0x1566bf,'-1');return _0x57bc8d;}else if(_0x57bc8d[_0xbd0b('0x7e')]===_0xbd0b('0x8a')){_0x57bc8d['result']=_0x57bc8d['result'][_0xbd0b('0x7c')]>0x0?_0x57bc8d['result']:'t';}else if(_['isEmpty'](_0x57bc8d[_0xbd0b('0x81')])){_0x57bc8d[_0xbd0b('0x81')]='#';_0x5d28d3='#';}if(!this[_0xbd0b('0x66')](_0x1566bf[_0xbd0b('0xb1')])){this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0xb0'));}else{var _0x412fd7=this[_0xbd0b('0x7d')][_0xbd0b('0x82')](this,_0x1566bf['variable_id']);if(!_0x412fd7){return this['channel'][_0xbd0b('0x2c')](_0x1566bf,'no\x20variable\x20found');}this[_0xbd0b('0xc')][_0xbd0b('0xd7')](_0x412fd7,_0x5d28d3);}this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x1566bf,_0x5d28d3);return _0x57bc8d;};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x95')]=function(_0x2df4dc){logger['info'](util['format']('Enter\x20in\x20NOOP\x20(%s)\x20block',_0x2df4dc[_0xbd0b('0x86')]));return this['channel'][_0xbd0b('0x95')](_0x2df4dc[_0xbd0b('0x12d')]||_0x2df4dc[_0xbd0b('0x86')]);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x12e')]=function(_0x4cbe3b){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x12f'),_0x4cbe3b[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x4cbe3b[_0xbd0b('0x11a')])){return this['channel'][_0xbd0b('0x2c')](_0x4cbe3b,_0xbd0b('0x121'));}logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x11b'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x4cbe3b[_0xbd0b('0x11a')]));var _0x221bd5=this[_0xbd0b('0x4f')]['sync'](this,_0x4cbe3b['pause_id']);var _0x3cb88e=this['agentPause']['sync'](this,_0x4cbe3b[_0xbd0b('0x11a')],_0x221bd5);if(_0x3cb88e){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x4cbe3b[_0xbd0b('0x11a')]));this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x11c'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x4cbe3b[_0xbd0b('0x11a')]));return{'code':0xc8,'result':_0xbd0b('0x130')};}else{logger['info'](util['format'](_0xbd0b('0x11d'),this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x4cbe3b[_0xbd0b('0x11a')]));this['channel'][_0xbd0b('0x95')](util['format'](_0xbd0b('0x11c'),this['channel']['callerid'],_0x4cbe3b[_0xbd0b('0x11a')]));return{'code':0xc8,'result':_0xbd0b('0x11e')};}};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x131')]=function(_0xdb0b6c){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x132'),_0xdb0b6c['label']));if(!this[_0xbd0b('0x66')](_0xdb0b6c['file_id'])){return this[_0xbd0b('0xc')]['error'](_0xdb0b6c,'no\x20file\x20audio\x20selected');}var _0x5c539=this['getSound'][_0xbd0b('0x82')](this,_0xdb0b6c[_0xbd0b('0xd2')]);if(!_0x5c539){return this['channel'][_0xbd0b('0x2c')](_0xdb0b6c,_0xbd0b('0xd4'));}var _0x512e72=this[_0xbd0b('0xc')][_0xbd0b('0x5a')](_0xbd0b('0x133'),[_0x5c539,_0xdb0b6c['opts']]);if(_0x512e72[_0xbd0b('0x81')]===-0x1){return _0x512e72;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x96'),_0xbd0b('0x133'),_0x5c539));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x134')]=function(_0x563eb7){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x135'),_0x563eb7['label']));if(!this[_0xbd0b('0x66')](_0x563eb7[_0xbd0b('0x136')])){return this['channel'][_0xbd0b('0x2c')](_0x563eb7,_0xbd0b('0x137'));}var _0x44e5b3='';var _0x1d3061=parseInt(_0x563eb7[_0xbd0b('0x136')],0xa);if(isNaN(_0x1d3061)){_0x44e5b3=_0x563eb7[_0xbd0b('0x136')];}else{_0x44e5b3=this['getVoiceQueue'][_0xbd0b('0x82')](this,_0x563eb7[_0xbd0b('0x136')]);if(!_0x44e5b3){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x563eb7,_0xbd0b('0x138'));}}var _0xfd4865='';if(this['isConfigured'](_0x563eb7[_0xbd0b('0xd2')])){var _0xb251c8=this[_0xbd0b('0x1d')][_0xbd0b('0x82')](this,_0x563eb7['file_id']);if(_0xb251c8){_0xfd4865=_0xb251c8;}}this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x563eb7,_0x44e5b3);if(_0x563eb7[_0xbd0b('0xbc')][_0xbd0b('0x139')]('x')<0x0){_0x563eb7[_0xbd0b('0xbc')]+='x';}if(_0x563eb7[_0xbd0b('0xbc')]['indexOf']('X')<0x0){_0x563eb7[_0xbd0b('0xbc')]+='X';}this['channel'][_0xbd0b('0xd7')]('XMCS-QUEUE',_0x44e5b3?_0x44e5b3[_0xbd0b('0x13a')]():'');var _0x55e93b=this[_0xbd0b('0xc')][_0xbd0b('0x5a')](_0xbd0b('0x13b'),[_0x44e5b3,_0x563eb7['opts'],_0x563eb7[_0xbd0b('0xbd')],_0xfd4865,_0x563eb7[_0xbd0b('0x8a')],_0x563eb7[_0xbd0b('0x6')],_0x563eb7['macro'],_0x563eb7[_0xbd0b('0x13c')],'',_0x563eb7['position']]);if(_0x55e93b[_0xbd0b('0x81')]===-0x1){return _0x55e93b;}return this[_0xbd0b('0xc')]['noop'](util['format'](_0xbd0b('0x96'),_0xbd0b('0x13b'),_0x44e5b3));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x13d')]=function(_0x30b2a3){logger['info'](util[_0xbd0b('0x28')]('Enter\x20in\x20RECORD\x20(%s)\x20block',_0x30b2a3[_0xbd0b('0x86')]));var _0x4d29f9=_0x30b2a3['recordingFormat']||_0xbd0b('0xef');var _0x3a3861=util[_0xbd0b('0x28')]('%s_%s',this[_0xbd0b('0xc')][_0xbd0b('0x36')],rs[_0xbd0b('0xd9')](0x5));var _0x465058=util[_0xbd0b('0x28')]('%s/recordings/%s.%s',FILES_PATH,_0x3a3861,_0x4d29f9);var _0x556051=util['format'](_0xbd0b('0xf0'),FILES_PATH,_0x3a3861);this[_0xbd0b('0x39')][_0xbd0b('0x82')](this,_0x30b2a3,_0x3a3861,_0x465058);this[_0xbd0b('0xc')]['setVariable']('RECORDING_SAVENAME',_0x3a3861);logger[_0xbd0b('0x2e')]('Recording\x20%s\x20%s\x20%s\x20%s',_0x556051,_0x4d29f9,_0x30b2a3[_0xbd0b('0x13e')],_0x30b2a3[_0xbd0b('0x8a')]);return this['channel'][_0xbd0b('0xf3')](_0x556051,_0x4d29f9,_0x30b2a3['escape_digits'],_0x30b2a3[_0xbd0b('0x8a')],undefined,!![]);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x13f')]=function(_0x4ae049){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x140'),_0x4ae049[_0xbd0b('0x86')]));return this['channel'][_0xbd0b('0x141')](_0x4ae049[_0xbd0b('0x142')][_0xbd0b('0xae')](/\s+/g,''),_0x4ae049[_0xbd0b('0x13e')]);};AGIVertices[_0xbd0b('0x13')]['saynumber']=function(_0x303977){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('Enter\x20in\x20SAYNUMBER\x20(%s)\x20block',_0x303977['label']));return this[_0xbd0b('0xc')][_0xbd0b('0x143')](_0x303977[_0xbd0b('0x144')][_0xbd0b('0xae')](/\s+/g,''),_0x303977['escape_digits']);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x145')]=function(_0xf19f10){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x146'),_0xf19f10[_0xbd0b('0x86')]));return this['channel'][_0xbd0b('0x147')](_0xf19f10[_0xbd0b('0x5e')],_0xf19f10[_0xbd0b('0x13e')]);};AGIVertices['prototype']['sendMail']=function(_0x3d9bf0){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x148'),_0x3d9bf0[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x3d9bf0[_0xbd0b('0x149')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x14a'));}var _0x335707=this[_0xbd0b('0x1f')]['sync'](this,_0x3d9bf0[_0xbd0b('0x149')]);if(!_0x335707||!_0x335707[_0xbd0b('0x14b')]){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x3d9bf0,_0xbd0b('0x14c'));}var _0xea3833={'from':util[_0xbd0b('0x28')](_0xbd0b('0x14d'),_0x335707[_0xbd0b('0x11')],_0x335707[_0xbd0b('0x14e')]||_0x335707[_0xbd0b('0x14b')][_0xbd0b('0x14f')]),'to':_0x3d9bf0['to']||'','cc':_0x3d9bf0['cc']||'','bcc':_0x3d9bf0[_0xbd0b('0x150')]||'','subject':_0x3d9bf0[_0xbd0b('0x151')],'html':_0x3d9bf0[_0xbd0b('0x5e')],'text':_0x3d9bf0['text']};var _0x553eec={'tls':{'rejectUnauthorized':![]}};if(_0x335707[_0xbd0b('0x14b')][_0xbd0b('0x152')]){_0x553eec[_0xbd0b('0x152')]=_0x335707[_0xbd0b('0x14b')]['service'];}else{_0x553eec[_0xbd0b('0x153')]=_0x335707[_0xbd0b('0x14b')][_0xbd0b('0x153')];_0x553eec[_0xbd0b('0x154')]=_0x335707[_0xbd0b('0x14b')][_0xbd0b('0x154')];_0x553eec[_0xbd0b('0x155')]=_0x335707['Smtp'][_0xbd0b('0x155')];}if(_0x335707['Smtp'][_0xbd0b('0x156')]){_0x553eec[_0xbd0b('0x157')]={'user':_0x335707[_0xbd0b('0x14b')][_0xbd0b('0x14f')],'pass':_0x335707['Smtp'][_0xbd0b('0x158')]};}if(this[_0xbd0b('0x66')](_0x3d9bf0['template_id'])){}logger[_0xbd0b('0xb7')](_0xbd0b('0x159'),JSON['stringify'](_0xea3833));this['createSquareDetailsReport'][_0xbd0b('0x82')](this,_0x3d9bf0,_0x3d9bf0[_0xbd0b('0x149')]);this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x15a'),_0x335707[_0xbd0b('0x11')]));this[_0xbd0b('0x20')][_0xbd0b('0x82')](this,_0x553eec,_0xea3833);return this[_0xbd0b('0xc')][_0xbd0b('0x95')]('Mail\x20message\x20added\x20to\x20outgoing\x20process');};AGIVertices['prototype'][_0xbd0b('0x15b')]=function(_0x276a50){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x15c'),_0x276a50[_0xbd0b('0x86')]));return this[_0xbd0b('0xc')]['noop'](_0xbd0b('0x15d'));};AGIVertices['prototype'][_0xbd0b('0x15e')]=function(_0x3be066){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x15f'),_0x3be066['label']));if(!this['isConfigured'](_0x3be066[_0xbd0b('0x160')])){return this[_0xbd0b('0xc')]['noop']('no\x20sms\x20account\x20configured');}var _0x2f7e41=this[_0xbd0b('0x32')]['sync'](this,_0x3be066[_0xbd0b('0x160')]);if(!_0x2f7e41){return this[_0xbd0b('0xc')]['error'](_0x3be066,'no\x20sms\x20account\x20found');}var _0x2da354={'body':_0x3be066[_0xbd0b('0x161')],'phone':_0x3be066['to']||'','SmsAccountId':_0x2f7e41['id']};logger[_0xbd0b('0xb7')](_0xbd0b('0x162'),JSON['stringify'](_0x2da354));this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x3be066,_0x3be066[_0xbd0b('0x160')]);this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0x163'),_0x2f7e41[_0xbd0b('0x11')]));this[_0xbd0b('0x34')][_0xbd0b('0x82')](this,_0x2da354);return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x164'));};AGIVertices['prototype'][_0xbd0b('0x165')]=function(_0x3efe0a){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x166'),_0x3efe0a['label']));if(!this[_0xbd0b('0x66')](_0x3efe0a[_0xbd0b('0xb1')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x3efe0a,_0xbd0b('0x167'));}var _0x18aaa8=this[_0xbd0b('0x7d')][_0xbd0b('0x82')](this,_0x3efe0a[_0xbd0b('0xb1')]);if(!_0x18aaa8){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x3efe0a,_0xbd0b('0x127'));}return this[_0xbd0b('0xc')][_0xbd0b('0xd7')](_0x18aaa8,_0x3efe0a[_0xbd0b('0x168')]);};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x169')]=function(_0x15fd18){logger['info'](util['format'](_0xbd0b('0x16a'),_0x15fd18['label']));this['channel'][_0xbd0b('0x95')]('START\x20CALLY\x20SQUARE');if(_0x15fd18[_0xbd0b('0x88')]===_0xbd0b('0x16b')){this[_0xbd0b('0xc')]['noop'](_0xbd0b('0x16c'));return this[_0xbd0b('0xc')][_0xbd0b('0x88')]();}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x16d'));};AGIVertices[_0xbd0b('0x13')]['subproject']=function(_0xd530f7){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x16e'),_0xd530f7['label']));if(!this[_0xbd0b('0x66')](_0xd530f7['project_id'])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0xd530f7,_0xbd0b('0x16f'));}var _0x4f4c43=this[_0xbd0b('0x16')][_0xbd0b('0x82')](this,_0xd530f7[_0xbd0b('0x170')]);if(!this[_0xbd0b('0x66')](_0x4f4c43)){return this['channel'][_0xbd0b('0x2c')](_0xd530f7,util['format'](_0xbd0b('0x171'),_0xd530f7['project_id']));}if(_0x4f4c43===this[_0xbd0b('0xc')]['arg_1']){return this['channel'][_0xbd0b('0x2c')](_0xd530f7,'project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project');}this['createSquareDetailsReport'][_0xbd0b('0x82')](this,_0xd530f7,_0x4f4c43);var _0x4e564c=this['channel']['exec'](_0xbd0b('0x172'),util[_0xbd0b('0x28')](_0xbd0b('0x173'),config[_0xbd0b('0x6')][_0xbd0b('0x153')]||'127.0.0.1',_0x4f4c43,this[_0xbd0b('0xc')][_0xbd0b('0x40')]));if(_0x4e564c[_0xbd0b('0x81')]===-0x1){return _0x4e564c;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x96'),'AGI',_0x4f4c43));};AGIVertices[_0xbd0b('0x13')]['system']=function(_0x46ea99){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x174'),_0x46ea99['label']));var _0x19b70e=this[_0xbd0b('0x59')][_0xbd0b('0x82')](this,_0x46ea99[_0xbd0b('0x87')]);this[_0xbd0b('0x35')][_0xbd0b('0x82')](this,_0x46ea99,_0x46ea99[_0xbd0b('0x87')]);if(this[_0xbd0b('0x66')](_0x46ea99[_0xbd0b('0xb1')])){var _0x12313c=this['getVariable'][_0xbd0b('0x82')](this,_0x46ea99[_0xbd0b('0xb1')]);if(_0x12313c){this[_0xbd0b('0xc')][_0xbd0b('0xd7')](_0x12313c,_0x19b70e);return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x175'),_0x46ea99[_0xbd0b('0x87')],_0x12313c));}}return this['channel'][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x176'),_0x46ea99[_0xbd0b('0x87')]));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x177')]=function(_0x4f5ee7){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('Enter\x20in\x20GOOGLETTS\x20(%s)\x20block',_0x4f5ee7['label']));if(!this['isConfigured'](_0x4f5ee7[_0xbd0b('0x5e')])){return this[_0xbd0b('0xc')][_0xbd0b('0x95')](_0xbd0b('0x99'));}this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('Trying\x20Google\x20TTS\x20%s',_0x4f5ee7['text']));var _0x2579b2=this['googleTTS'][_0xbd0b('0x82')](this,_0x4f5ee7);if(_0x2579b2){this['channel'][_0xbd0b('0x95')](util[_0xbd0b('0x28')](_0xbd0b('0x178'),_0x2579b2));var _0x45f823=this[_0xbd0b('0xc')][_0xbd0b('0x115')](_0x2579b2);try{fs['unlink'](_0x2579b2+'.wav');}catch(_0x268214){logger['error'](_0x268214);}return _0x45f823;}return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x4f5ee7,_0xbd0b('0x179'));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x17a')]=function(_0x41907d){logger['info'](util[_0xbd0b('0x28')](_0xbd0b('0x17b'),_0x41907d[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0x41907d['findBy'])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0x41907d,_0xbd0b('0x121'));}logger['info'](util[_0xbd0b('0x28')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x41907d[_0xbd0b('0x11a')]));var _0x5bb1b2=this[_0xbd0b('0x53')]['sync'](this,_0x41907d[_0xbd0b('0x11a')]);if(_0x5bb1b2){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xbd0b('0xc')]['callerid'],_0x41907d['findBy']));this[_0xbd0b('0xc')][_0xbd0b('0x95')](util['format'](_0xbd0b('0x11c'),this['channel'][_0xbd0b('0x38')],_0x41907d[_0xbd0b('0x11a')]));return{'code':0xc8,'result':'success'};}else{logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xbd0b('0xc')][_0xbd0b('0x38')],_0x41907d['findBy']));this[_0xbd0b('0xc')]['noop'](util[_0xbd0b('0x28')](_0xbd0b('0x11d'),this['channel'][_0xbd0b('0x38')],_0x41907d['findBy']));return{'code':0xc8,'result':_0xbd0b('0x11e')};}};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x17c')]=function(_0x146fa7){logger[_0xbd0b('0x2e')](util['format'](_0xbd0b('0x17d'),_0x146fa7[_0xbd0b('0x86')]));var _0xb33ba1=this['channel'][_0xbd0b('0x5a')]('VOICEMAIL',[_0x146fa7[_0xbd0b('0x17e')],_0x146fa7['options']]);if(_0xb33ba1[_0xbd0b('0x81')]===-0x1){return _0xb33ba1;}return this[_0xbd0b('0xc')][_0xbd0b('0x95')](util[_0xbd0b('0x28')]('Executed\x20command\x20%s\x20%s','VOICEMAIL',_0x146fa7['mailbox']));};AGIVertices[_0xbd0b('0x13')][_0xbd0b('0x17f')]=function(_0xf9a187){logger[_0xbd0b('0x2e')](util[_0xbd0b('0x28')](_0xbd0b('0x180'),_0xf9a187[_0xbd0b('0x86')]));if(!this[_0xbd0b('0x66')](_0xf9a187[_0xbd0b('0xb1')])){return this[_0xbd0b('0xc')][_0xbd0b('0x2c')](_0xf9a187,_0xbd0b('0x167'));}var _0x1c6251=this[_0xbd0b('0x7d')][_0xbd0b('0x82')](this,_0xf9a187['variable_id']);if(!_0x1c6251){return this['channel'][_0xbd0b('0x2c')](_0xf9a187,'no\x20variable\x20found');}var _0x46969f=this[_0xbd0b('0xc')][_0xbd0b('0x7d')](_0x1c6251);return{'code':0xc8,'result':_0x46969f[_0xbd0b('0x7e')]?_0x46969f['extra']:'-'};};String['prototype'][_0xbd0b('0x181')]=function(_0x2ad6f3,_0x35c1f2){return this['split'](_0x2ad6f3)['join'](_0x35c1f2);};module['exports']=AGIVertices;
\ No newline at end of file
+var _0x0221=['list_id','no\x20list\x20selected','delay','noop','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','custom_app','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','options','Executed\x20command\x20%s\x20%s','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','no\x20text\x20configured','MRCPSynth','sestektts','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','Executed\x20command\x20MRCPSynth\x20%s','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','grammar','no\x20grammar\x20configured','MRCPRecog','LUMENVOX_ASR_CONFIDENCE','RECOG_INPUT()','LUMENVOX_ASR_TRANSCRIPT','RECOG_INSTANCE()','Executed\x20command\x20MRCPRecog\x20%s','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','RECOG_CONFIDENCE()','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20database\x20selected','getSquareOdbc','no\x20query\x20configured','replace','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','forEach','keys','setVariable','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','opts','Executed\x20command\x20%s','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','toUpperCase','speech','out','Dialogflow\x20Result\x20%s','Dialogflow\x20is\x20unreachable','sesteknda','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','ndauth_url','no\x20ndauth\x20url\x20configured','no\x20username\x20configured','password','ndassistant_url','Trying\x20SestekNDA:\x20%s','hasOwnProperty','SESTEK_NDA_%s','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','end','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20found','trunk_name','no\x20trunk\x20selected','DIAL','SIP/%s/%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','getdigits','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','getData','response','maxdigit','toString','test','stringify','mindigit','hiddendigitsnum','hiddendigitspos','first','substr','generate','getsecretdigits','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','goalname','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','aws_secret_access_key','no\x20valid\x20credentials\x20configured','aws\x20Polly\x20%s\x20file\x20created','streamFile','aws\x20Polly\x20is\x20unreachable','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','message','Amazon\x20Lex\x20ready\x20for\x20fulfillment','Amazon\x20Lex\x20is\x20unreachable','googleasr','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','wav','%s/recordings/%s','%s.%s','beep','NOBEEP','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','recordFile','intKey','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','TildeASR\x20Result\x20%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','gotoiftime','interval_id','no\x20interval\x20configured','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20HANGUP\x20(%s)\x20block','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','unlink','.wav','ispeech\x20TTS\x20is\x20unreachable','login','Enter\x20in\x20LOGIN\x20(%s)\x20block','findBy','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','Enter\x20in\x20LOGOUT\x20(%s)\x20block','success','math','math\x20%s','operation','isArray','%s[%s]','variable\x20%s[key]\x20set','Enter\x20in\x20MENU\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','pause_id','playback','no\x20file\x20audio\x20found','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20found','indexOf','toLowerCase','QUEUE','url','macro','gosub','position','record','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','saydigits','sayDigits','saynumber','sayNumber','number','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','user','bcc','subject','service','host','port','secure','authentication','auth','pass','template_id','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sendSMS','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','sms_text','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','variable_value','start','Enter\x20in\x20START\x20(%s)\x20block','Answer','Skipped\x20Answer','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','Enter\x20in\x20SYSTEM\x20(%s)\x20block','shellCommand','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','Google\x20TTS\x20is\x20unreachable','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','no\x20variable\x20selected','join','exports','path','util','lodash','odbc','randomstring','moment','mustache','../../config/logger','../../config/environment','./scripts','/var/opt/motion2/server/files','menu','channel','rpc','mailRpc','prototype','getVariable','getVariableById','name','getVoiceQueue','then','getSquareProject','getSquareProjectById','getSquareOdbcById','dsn','getUserById','catch','getTrunk','getTrunkById','getSound','getSoundById','save_name','getMailAccount','getMailAccountById','sendMailMessage','getIntervals','getIntervalById','IntervalId','interval','getSoundPath','%s/sounds/converted/%s','getQueryOdbc','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','query','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','label','agicommand','arg_1','callerid','createSquareRecording','context','extension','accountcode','dnid','file','createSquareMessage','createCmContact','isEmpty','isNil','callback_','lastName','phone','scheduledAt','Callback\x20scheduled\x20at\x20','callback_priority','getPause','agentPause','agent','agentUnpause','agentLogout','agentLogin','internal','format','%s/%s@from-sip/n','LOCAL','exec','trim','googleTTS','text','googleDialogflow','key','dialogflow_language','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_access_key_id','aws_polly_region','Amy','aws_text_type','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','en-US','tildeASR','appid','uri','clear','includes','clone','isString','replaceAllVariables','split','length','replaceAll','extra','getAndSetVariable','result','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','sync','retry','maxRetry','Enter\x20in\x20AGI\x20(%s)\x20block','agi','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','timeout','callback'];(function(_0x94133d,_0x443d17){var _0x5a4b73=function(_0x5a8730){while(--_0x5a8730){_0x94133d['push'](_0x94133d['shift']());}};_0x5a4b73(++_0x443d17);}(_0x0221,0x118));var _0x1022=function(_0x59bad8,_0x1ec010){_0x59bad8=_0x59bad8-0x0;var _0x5b923a=_0x0221[_0x59bad8];return _0x5b923a;};'use strict';var fs=require('fs');var path=require(_0x1022('0x0'));var util=require(_0x1022('0x1'));var _=require(_0x1022('0x2'));var sh=require('shelljs');var odbc=require(_0x1022('0x3'))();var rs=require(_0x1022('0x4'));var moment=require(_0x1022('0x5'));var Mustache=require(_0x1022('0x6'));var logger=require(_0x1022('0x7'))('agi');var config=require(_0x1022('0x8'));var scripts=require(_0x1022('0x9'));var FILES_PATH=_0x1022('0xa');var verticesWithRetry=[_0x1022('0xb'),'getdigits','getsecretdigits'];var AGIVertices=function(_0xeb1110,_0x79c807,_0x31eebd){this[_0x1022('0xc')]=_0xeb1110;this[_0x1022('0xd')]=_0x79c807;this[_0x1022('0xe')]=_0x31eebd;};AGIVertices[_0x1022('0xf')][_0x1022('0x10')]=function(_0x424ea9,_0x35438e){this[_0x1022('0xd')][_0x1022('0x11')](_0x424ea9)['then'](function(_0x581585){_0x35438e(null,_0x581585?_0x581585[_0x1022('0x12')]:![]);})['catch'](function(_0x21c51e){_0x35438e(_0x21c51e);});};AGIVertices[_0x1022('0xf')][_0x1022('0x13')]=function(_0x44ced9,_0x2f9f93){this['rpc']['getVoiceQueueById'](_0x44ced9)[_0x1022('0x14')](function(_0x1a4ef3){_0x2f9f93(null,_0x1a4ef3?_0x1a4ef3[_0x1022('0x12')]:![]);})['catch'](function(_0x1db5dc){_0x2f9f93(_0x1db5dc);});};AGIVertices[_0x1022('0xf')][_0x1022('0x15')]=function(_0x4d9dbf,_0x5754c2){this['rpc'][_0x1022('0x16')](_0x4d9dbf)['then'](function(_0x5cebe5){_0x5754c2(null,_0x5cebe5?_0x5cebe5[_0x1022('0x12')]:![]);})['catch'](function(_0x2ed1fd){_0x5754c2(_0x2ed1fd);});};AGIVertices[_0x1022('0xf')]['getSquareOdbc']=function(_0x42abca,_0x275229){this[_0x1022('0xd')][_0x1022('0x17')](_0x42abca)['then'](function(_0x4d27f4){_0x275229(null,_0x4d27f4?_0x4d27f4[_0x1022('0x18')]:![]);})['catch'](function(_0x3b76e9){_0x275229(_0x3b76e9);});};AGIVertices['prototype']['getUser']=function(_0x38911c,_0x162974){this[_0x1022('0xd')][_0x1022('0x19')](_0x38911c)['then'](function(_0x2596c8){_0x162974(null,_0x2596c8?_0x2596c8['name']:![]);})[_0x1022('0x1a')](function(_0x96974b){_0x162974(_0x96974b);});};AGIVertices[_0x1022('0xf')][_0x1022('0x1b')]=function(_0x117809,_0xa4fdb0){this['rpc'][_0x1022('0x1c')](_0x117809)[_0x1022('0x14')](function(_0x10106a){_0xa4fdb0(null,_0x10106a?_0x10106a[_0x1022('0x12')]:![]);})[_0x1022('0x1a')](function(_0x446054){_0xa4fdb0(_0x446054);});};AGIVertices[_0x1022('0xf')][_0x1022('0x1d')]=function(_0x29f2c2,_0x241e7c){var _0x4da7b0=this;this[_0x1022('0xd')][_0x1022('0x1e')](_0x29f2c2)['then'](function(_0x3d7877){_0x241e7c(null,_0x3d7877?_0x4da7b0['getSoundPath'](_0x3d7877[_0x1022('0x1f')]):![]);})[_0x1022('0x1a')](function(_0xd71799){_0x241e7c(_0xd71799);});};AGIVertices[_0x1022('0xf')][_0x1022('0x20')]=function(_0x1490b4,_0x197a30){this[_0x1022('0xd')][_0x1022('0x21')](_0x1490b4)[_0x1022('0x14')](function(_0x2b32ab){_0x197a30(null,_0x2b32ab?_0x2b32ab:![]);})[_0x1022('0x1a')](function(_0x5bf3bd){_0x197a30(_0x5bf3bd);});};AGIVertices['prototype'][_0x1022('0x22')]=function(_0x5a8e34,_0x26d03b,_0x464b1a){this[_0x1022('0xe')]['sendMailMessage'](_0x5a8e34,_0x26d03b)['then'](function(){_0x464b1a(null);})[_0x1022('0x1a')](function(_0x3d9024){_0x464b1a(_0x3d9024);});};AGIVertices['prototype'][_0x1022('0x23')]=function(_0x43be2a,_0x8e5300){this[_0x1022('0xd')][_0x1022('0x24')](_0x43be2a)['then'](function(_0x11c93e){if(_0x11c93e){if(_0x11c93e[_0x1022('0x25')]){_0x8e5300(null,[_0x11c93e[_0x1022('0x26')]]);}else{_0x8e5300(null,_['map'](_0x11c93e['Intervals'],_0x1022('0x26')));}}else{_0x8e5300(null,![]);}})[_0x1022('0x1a')](function(_0xc84e82){_0x8e5300(_0xc84e82);});};AGIVertices[_0x1022('0xf')][_0x1022('0x27')]=function(_0x497b01){return util['format'](_0x1022('0x28'),FILES_PATH,_0x497b01);};AGIVertices[_0x1022('0xf')][_0x1022('0x29')]=function(_0x312b44,_0x50376b,_0x504bd0){odbc['open'](_0x312b44,function(_0x41ff6a){if(_0x41ff6a){logger[_0x1022('0x2a')](_0x1022('0x2b'),_0x41ff6a);_0x504bd0(_0x41ff6a);}else{logger[_0x1022('0x2c')]('ODBC\x20connection\x20successfully');odbc[_0x1022('0x2d')](_0x50376b,function(_0x530320,_0x50e4a1){if(_0x530320){logger['info'](_0x1022('0x2e'),_0x50376b);_0x504bd0(_0x530320);}else{logger[_0x1022('0x2c')](_0x1022('0x2f'),_0x50376b);odbc[_0x1022('0x30')](function(_0x2db242){if(_0x2db242){logger[_0x1022('0x2a')](_0x1022('0x31'),_0x2db242);}_0x504bd0(null,_0x50e4a1);});}});}});};AGIVertices[_0x1022('0xf')][_0x1022('0x32')]=function(_0x120f3d,_0x4f99a2){this[_0x1022('0xd')][_0x1022('0x33')](_0x120f3d)[_0x1022('0x14')](function(_0x23273b){_0x4f99a2(null,_0x23273b?_0x23273b:![]);})[_0x1022('0x1a')](function(_0xbe8d54){_0x4f99a2(_0xbe8d54);});};AGIVertices[_0x1022('0xf')]['createSmsMessage']=function(_0x48c066,_0x1e672c){this['rpc'][_0x1022('0x34')](_0x48c066)['then'](function(_0x425a63){_0x1e672c(null,_0x425a63);})[_0x1022('0x1a')](function(_0x611a2e){_0x1e672c(_0x611a2e);});};AGIVertices['prototype']['createSquareDetailsReport']=function(_0x3d774e,_0x2fd367,_0x4d02f4){this[_0x1022('0xd')][_0x1022('0x35')]({'uniqueid':this[_0x1022('0xc')][_0x1022('0x36')],'node':_0x3d774e[_0x1022('0x37')],'application':_0x3d774e[_0x1022('0x38')],'data':_0x2fd367||null,'project_name':this[_0x1022('0xc')][_0x1022('0x39')],'callerid':this[_0x1022('0xc')][_0x1022('0x3a')]})[_0x1022('0x14')](function(_0x372bfa){if(_0x4d02f4){_0x4d02f4(null,_0x372bfa);}})[_0x1022('0x1a')](function(_0x1e7d04){if(_0x4d02f4){_0x4d02f4(_0x1e7d04);}});};AGIVertices[_0x1022('0xf')][_0x1022('0x3b')]=function(_0x100adf,_0x4f7674,_0x209c48,_0x5ef636){this['rpc'][_0x1022('0x3b')]({'uniqueid':this['channel'][_0x1022('0x36')],'callerid':this[_0x1022('0xc')][_0x1022('0x3a')],'calleridname':this[_0x1022('0xc')]['calleridname'],'context':this[_0x1022('0xc')][_0x1022('0x3c')],'extension':this['channel'][_0x1022('0x3d')],'priority':this[_0x1022('0xc')]['priority'],'accountcode':this[_0x1022('0xc')][_0x1022('0x3e')],'dnid':this[_0x1022('0xc')][_0x1022('0x3f')],'projectName':this[_0x1022('0xc')][_0x1022('0x39')],'saveName':_0x4f7674,'filename':_0x100adf[_0x1022('0x40')]||_0x4f7674,'savePath':_0x209c48})['then'](function(_0x57362b){_0x5ef636(null,_0x57362b);})[_0x1022('0x1a')](function(_0x4bfc15){_0x5ef636(_0x4bfc15);});};AGIVertices[_0x1022('0xf')][_0x1022('0x41')]=function(_0x301ec9,_0x5f3795,_0x2a4a22){this[_0x1022('0xd')][_0x1022('0x41')]({'uniqueid':this[_0x1022('0xc')][_0x1022('0x36')],'body':_0x301ec9,'direction':_0x5f3795})[_0x1022('0x14')](function(_0x32a9f7){if(_0x2a4a22){_0x2a4a22(null,_0x32a9f7);}})['catch'](function(_0x101ada){if(_0x2a4a22){_0x2a4a22(_0x101ada);}});};AGIVertices[_0x1022('0xf')][_0x1022('0x42')]=function(_0x566921,_0x340999){this[_0x1022('0xd')][_0x1022('0x42')]({'firstName':_[_0x1022('0x43')](_0x566921[_0x1022('0x12')])||_[_0x1022('0x44')](_0x566921[_0x1022('0x12')])?_0x1022('0x45')+Math['random']():_0x566921[_0x1022('0x12')],'lastName':_[_0x1022('0x43')](_0x566921[_0x1022('0x46')])||_[_0x1022('0x44')](_0x566921['lastName'])?null:_0x566921[_0x1022('0x46')],'phone':_0x566921[_0x1022('0x47')],'ListId':_0x566921['list_id'],'scheduledAt':_0x566921[_0x1022('0x48')],'callbackUniqueid':this[_0x1022('0xc')][_0x1022('0x36')],'tags':'callback','description':_0x1022('0x49')+_0x566921[_0x1022('0x48')]['toString'](),'priority':_0x566921[_0x1022('0x4a')]})[_0x1022('0x14')](function(_0x17f460){_0x340999(null,_0x17f460);})['catch'](function(_0x507664){_0x340999(_0x507664);});};AGIVertices['prototype'][_0x1022('0x4b')]=function(_0x153e56,_0x9212cb){this[_0x1022('0xd')]['getPauseById'](_0x153e56)[_0x1022('0x14')](function(_0x199588){_0x9212cb(null,_0x199588?_0x199588['name']:![]);})[_0x1022('0x1a')](function(_0x2bf967){_0x9212cb(_0x2bf967);});};AGIVertices[_0x1022('0xf')][_0x1022('0x4c')]=function(_0x5716a5,_0x1a6a46,_0x3d90b7){var _0x30658b={'role':'agent'};_0x30658b[_0x5716a5]=this[_0x1022('0xc')][_0x1022('0x3a')];this['rpc']['agentPause'](_0x30658b,_0x1a6a46,this[_0x1022('0xc')][_0x1022('0x36')])['then'](function(_0x3fa9cb){_0x3d90b7(null,_[_0x1022('0x44')](_0x3fa9cb)?![]:!![]);})[_0x1022('0x1a')](function(_0x430b76){logger[_0x1022('0x2a')](_0x430b76);_0x3d90b7(null,![]);});};AGIVertices['prototype']['agentUnpause']=function(_0xa56bb8,_0x46d8d4){var _0x631517={'role':_0x1022('0x4d')};_0x631517[_0xa56bb8]=this[_0x1022('0xc')]['callerid'];this[_0x1022('0xd')][_0x1022('0x4e')](_0x631517)[_0x1022('0x14')](function(_0x1d2668){_0x46d8d4(null,_['isNil'](_0x1d2668)?![]:!![]);})[_0x1022('0x1a')](function(_0x142c3f){logger[_0x1022('0x2a')](_0x142c3f);_0x46d8d4(null,![]);});};AGIVertices[_0x1022('0xf')][_0x1022('0x4f')]=function(_0x49e304,_0x48db65){var _0x3f81c5={'role':_0x1022('0x4d')};_0x3f81c5[_0x49e304]=this['channel'][_0x1022('0x3a')];this[_0x1022('0xd')][_0x1022('0x4f')](_0x3f81c5)[_0x1022('0x14')](function(_0x3ad6ca){_0x48db65(null,_['isNil'](_0x3ad6ca)?![]:!![]);})['catch'](function(_0x530e5c){logger['error'](_0x530e5c);_0x48db65(null,![]);});};AGIVertices['prototype'][_0x1022('0x50')]=function(_0x4eef78,_0x49dfb8){var _0x2970fa={'role':_0x1022('0x4d')};_0x2970fa[_0x4eef78]=this[_0x1022('0xc')][_0x1022('0x3a')];var _0x48d908=_0x4eef78!=_0x1022('0x51')?util[_0x1022('0x52')](_0x1022('0x53'),_0x1022('0x54'),this['channel']['callerid']):undefined;this[_0x1022('0xd')]['agentLogin'](_0x2970fa,_0x48d908)['then'](function(_0x5d8b64){_0x49dfb8(null,_[_0x1022('0x44')](_0x5d8b64)?![]:!![]);})[_0x1022('0x1a')](function(_0x505483){logger[_0x1022('0x2a')](_0x505483);_0x49dfb8(null,![]);});};AGIVertices[_0x1022('0xf')]['shellCommand']=function(_0x527da6,_0xf03f93){sh[_0x1022('0x55')](_[_0x1022('0x56')](_0x527da6),function(_0x3e1aa3,_0x31424f){var _0x4b53a5=_0x31424f['replace'](/(\r\n|\n|\r)/gm,'');_0xf03f93(null,_0x4b53a5);});};AGIVertices[_0x1022('0xf')][_0x1022('0x57')]=function(_0x337bd8,_0x5ccf14){scripts['googleTTS'](_0x337bd8[_0x1022('0x58')],_0x337bd8['google_tts_language']||'en',0x1)[_0x1022('0x14')](function(_0x23b3c0){_0x5ccf14(null,_0x23b3c0);})[_0x1022('0x1a')](function(_0x388683){_0x5ccf14(_0x388683);});};AGIVertices[_0x1022('0xf')][_0x1022('0x59')]=function(_0x2aa55d,_0x54bffc){scripts['googleDialogflow'](this[_0x1022('0xc')][_0x1022('0x36')],_0x2aa55d[_0x1022('0x5a')],_0x2aa55d[_0x1022('0x58')],_0x2aa55d[_0x1022('0x5b')]||'en')['then'](function(_0x1f2f09){_0x54bffc(null,_0x1f2f09);})[_0x1022('0x1a')](function(_0x261518){_0x54bffc(_0x261518);});};AGIVertices[_0x1022('0xf')][_0x1022('0x5c')]=function(_0x3d8328,_0x557632){scripts['sestekNDA'](this[_0x1022('0xc')],_0x3d8328)[_0x1022('0x14')](function(_0x2b420d){_0x557632(null,_0x2b420d);})[_0x1022('0x1a')](function(_0x1c27b2){_0x557632(_0x1c27b2);});};AGIVertices[_0x1022('0xf')][_0x1022('0x5d')]=function(_0xc4dbbb,_0x4b8761){scripts[_0x1022('0x5d')](_0xc4dbbb['key'],_0xc4dbbb['text'],_0xc4dbbb[_0x1022('0x5e')]||'en-US',_0xc4dbbb[_0x1022('0x5f')])['then'](function(_0x52a3ee){_0x4b8761(null,_0x52a3ee);})[_0x1022('0x1a')](function(_0x535809){_0x4b8761(_0x535809);});};AGIVertices[_0x1022('0xf')][_0x1022('0x60')]=function(_0x2e2ae5,_0x1f363c,_0x2e6ce1){scripts[_0x1022('0x60')](_0x1f363c,_0x2e2ae5[_0x1022('0x5a')],_0x2e2ae5[_0x1022('0x61')]||'en-US',this[_0x1022('0x62')](_0x2e2ae5[_0x1022('0x63')])?_0x2e2ae5[_0x1022('0x63')]:undefined)[_0x1022('0x14')](function(_0x3b575a){_0x2e6ce1(null,_0x3b575a);})['catch'](function(_0x55ddc9){_0x2e6ce1(_0x55ddc9);});};AGIVertices['prototype']['awsPolly']=function(_0x4a52d8,_0x59b690){scripts[_0x1022('0x64')](_0x4a52d8[_0x1022('0x65')],_0x4a52d8['aws_secret_access_key'],_0x4a52d8[_0x1022('0x66')],_0x4a52d8['aws_polly_voice']||_0x1022('0x67'),_0x4a52d8[_0x1022('0x58')],_0x4a52d8[_0x1022('0x68')]||'text')[_0x1022('0x14')](function(_0x2f9c29){_0x59b690(null,_0x2f9c29);})[_0x1022('0x1a')](function(_0x57f5a9){_0x59b690(_0x57f5a9);});};AGIVertices[_0x1022('0xf')][_0x1022('0x69')]=function(_0x3d4292,_0x5133c7){scripts['awsLex'](this[_0x1022('0xc')][_0x1022('0x36')],_0x3d4292[_0x1022('0x65')],_0x3d4292['aws_secret_access_key'],_0x3d4292[_0x1022('0x6a')],_0x3d4292[_0x1022('0x58')],_0x3d4292[_0x1022('0x6b')])[_0x1022('0x14')](function(_0x3f8a61){_0x5133c7(null,_0x3f8a61);})[_0x1022('0x1a')](function(_0x4f2ad4){_0x5133c7(_0x4f2ad4);});};AGIVertices['prototype'][_0x1022('0x6c')]=function(_0x39b06f,_0x939914,_0x19c9a4){scripts['googleASR'](_0x939914,_0x39b06f['key'],_0x39b06f[_0x1022('0x6d')]||_0x1022('0x6e'))[_0x1022('0x14')](function(_0x4f3dc6){_0x19c9a4(null,_0x4f3dc6);})[_0x1022('0x1a')](function(_0x342100){_0x19c9a4(_0x342100);});};AGIVertices[_0x1022('0xf')]['tildeASR']=function(_0x2cc2ea,_0x24dbdb,_0x253465){scripts[_0x1022('0x6f')](_0x24dbdb,_0x2cc2ea[_0x1022('0x70')],_0x2cc2ea['appsecret'],_0x2cc2ea[_0x1022('0x71')])[_0x1022('0x14')](function(_0x2310ba){_0x253465(null,_0x2310ba);})[_0x1022('0x1a')](function(_0x457687){_0x253465(_0x457687);});};AGIVertices['prototype'][_0x1022('0x72')]=function(_0x2fadb5){var _0x306e8c=_[_0x1022('0x73')](verticesWithRetry,_0x2fadb5['agicommand'])?_0x2fadb5:_[_0x1022('0x74')](_0x2fadb5);for(var _0x79a160 in _0x306e8c){if(_0x306e8c['hasOwnProperty'](_0x79a160)){if(_0x306e8c[_0x79a160]&&_[_0x1022('0x75')](_0x306e8c[_0x79a160])){_0x306e8c[_0x79a160]=this[_0x1022('0x76')](_0x306e8c[_0x79a160]);}}}return _0x306e8c;};AGIVertices[_0x1022('0xf')][_0x1022('0x76')]=function(_0x141800){var _0x4a94c4=_0x141800[_0x1022('0x77')]('{');for(var _0x203f95=0x1;_0x203f95<_0x4a94c4[_0x1022('0x78')];_0x203f95+=0x1){var _0x5c695a=_0x4a94c4[_0x203f95][_0x1022('0x77')]('}');if(_0x5c695a[_0x1022('0x78')]>0x1){_0x141800=_0x141800[_0x1022('0x79')]('{'+_0x5c695a[0x0]+'}',this[_0x1022('0xc')][_0x1022('0x10')](_0x5c695a[0x0])[_0x1022('0x7a')]||_0x5c695a[0x0]);}}if(_0x4a94c4[_0x1022('0x78')]===0x1){return _0x141800['toString']();}return this[_0x1022('0x76')](_0x141800);};AGIVertices[_0x1022('0xf')][_0x1022('0x7b')]=function(_0x41a4a2,_0x44ba9d){var _0xd9443e=this[_0x1022('0xc')][_0x1022('0x10')](_0x41a4a2);if(_0xd9443e[_0x1022('0x7c')]===-0x1){return _0xd9443e;}logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x7d'),_0x44ba9d,_0xd9443e['extra']));return this[_0x1022('0xc')]['setVariable'](_0x44ba9d,_0xd9443e[_0x1022('0x7a')]);};AGIVertices[_0x1022('0xf')][_0x1022('0x62')]=function(_0x238274){return _0x238274&&_0x238274!=='0'&&_0x238274!=='-1'&&_0x238274!=='';};AGIVertices[_0x1022('0xf')]['maxRetry']=function(_0x39b22e){this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x39b22e,'-');_0x39b22e[_0x1022('0x7f')]=_0x39b22e[_0x1022('0x80')];return{'code':0xc8,'result':'-'};};AGIVertices[_0x1022('0xf')]['agi']=function(_0x13b92c){logger['info'](util[_0x1022('0x52')](_0x1022('0x81'),_0x13b92c['label']));return this[_0x1022('0xc')][_0x1022('0x82')]([_0x13b92c[_0x1022('0x83')],_0x13b92c[_0x1022('0x84')]]);};AGIVertices['prototype'][_0x1022('0x85')]=function(_0x50b151){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x86'),_0x50b151[_0x1022('0x37')]));if(this[_0x1022('0x62')](_0x50b151['timeout'])){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x87'),_0x50b151[_0x1022('0x88')]));var _0x113e8d=this[_0x1022('0xc')]['wait'](_0x50b151[_0x1022('0x88')]);if(_0x113e8d[_0x1022('0x7c')]===-0x1){return _0x113e8d;}}return this[_0x1022('0xc')][_0x1022('0x85')]();};AGIVertices['prototype'][_0x1022('0x89')]=function(_0x2570eb){logger[_0x1022('0x2c')](util['format']('Enter\x20in\x20CALLBACK\x20(%s)\x20block',_0x2570eb[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x2570eb[_0x1022('0x8a')])){return this['channel']['error'](_0x2570eb,_0x1022('0x8b'));}_0x2570eb[_0x1022('0x48')]=moment();if(this[_0x1022('0x62')](_0x2570eb[_0x1022('0x8c')])){_0x2570eb[_0x1022('0x48')]=moment()['add'](_0x2570eb[_0x1022('0x8c')],'minutes');}if(!this[_0x1022('0x62')](_0x2570eb['callback_priority'])){_0x2570eb[_0x1022('0x4a')]=0x2;}this[_0x1022('0x42')][_0x1022('0x7e')](this,_0x2570eb);return this['channel'][_0x1022('0x8d')](util['format'](_0x1022('0x8e'),_0x2570eb[_0x1022('0x47')],_0x2570eb[_0x1022('0x8a')],_0x2570eb[_0x1022('0x48')]));};AGIVertices[_0x1022('0xf')][_0x1022('0x8f')]=function(_0x1d5a33){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x90'),_0x1d5a33['label']));var _0x188d1e=this['channel'][_0x1022('0x55')](_0x1d5a33[_0x1022('0x91')],_0x1d5a33[_0x1022('0x92')]);if(_0x188d1e[_0x1022('0x7c')]===-0x1){return _0x188d1e;}return this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')](_0x1022('0x93'),_0x1d5a33[_0x1022('0x91')],_0x1d5a33[_0x1022('0x92')]));};AGIVertices[_0x1022('0xf')][_0x1022('0x94')]=function(_0x18b874){logger['info'](util[_0x1022('0x52')](_0x1022('0x95'),_0x18b874[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x18b874[_0x1022('0x58')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x96'));}var _0x5240da='\x22'+_0x18b874['text']+'\x22';if(this['isConfigured'](_0x18b874[_0x1022('0x92')])){_0x5240da+=','+_0x18b874[_0x1022('0x92')];}var _0x4e0268=this[_0x1022('0xc')][_0x1022('0x55')](_0x1022('0x97'),_0x5240da);if(_0x4e0268[_0x1022('0x7c')]===-0x1){return _0x4e0268;}return this[_0x1022('0xc')]['noop'](util['format']('Executed\x20command\x20MRCPSynth\x20%s',_0x5240da));};AGIVertices['prototype'][_0x1022('0x98')]=function(_0x491935){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x99'),_0x491935['label']));if(!this[_0x1022('0x62')](_0x491935['text'])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x96'));}var _0x367ef2='\x22'+_0x491935[_0x1022('0x58')]+'\x22';if(this[_0x1022('0x62')](_0x491935[_0x1022('0x92')])){_0x367ef2+=','+_0x491935[_0x1022('0x92')];}var _0x3b5873=this[_0x1022('0xc')][_0x1022('0x55')]('MRCPSynth',_0x367ef2);if(_0x3b5873[_0x1022('0x7c')]===-0x1){return _0x3b5873;}return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x9a'),_0x367ef2));};AGIVertices['prototype'][_0x1022('0x9b')]=function(_0x11238a){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x9c'),_0x11238a[_0x1022('0x37')]));if(!this['isConfigured'](_0x11238a[_0x1022('0x9d')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x9e'));}var _0x33d4bd=_0x11238a[_0x1022('0x9d')];if(this[_0x1022('0x62')](_0x11238a[_0x1022('0x92')])){_0x33d4bd+=','+_0x11238a[_0x1022('0x92')];}var _0x43e9a0=this[_0x1022('0xc')][_0x1022('0x55')](_0x1022('0x9f'),_0x33d4bd);if(_0x43e9a0[_0x1022('0x7c')]===-0x1){return _0x43e9a0;}var _0x4033f4=this[_0x1022('0x7b')]('RECOG_CONFIDENCE()',_0x1022('0xa0'));if(_0x4033f4[_0x1022('0x7c')]===-0x1){return _0x4033f4;}var _0x468d38=this[_0x1022('0x7b')](_0x1022('0xa1'),_0x1022('0xa2'));if(_0x468d38[_0x1022('0x7c')]===-0x1){return _0x468d38;}var _0x59b893=this[_0x1022('0x7b')](_0x1022('0xa3'),'LUMENVOX_ASR_INSTANCE');if(_0x59b893[_0x1022('0x7c')]===-0x1){return _0x59b893;}return this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0xa4'),_0x33d4bd));};AGIVertices[_0x1022('0xf')][_0x1022('0xa5')]=function(_0x17a7dc){logger['info'](util[_0x1022('0x52')](_0x1022('0xa6'),_0x17a7dc['label']));if(!this[_0x1022('0x62')](_0x17a7dc[_0x1022('0x9d')])){return this['channel']['noop'](_0x1022('0x9e'));}var _0x32890f=_0x17a7dc['grammar'];if(this[_0x1022('0x62')](_0x17a7dc['options'])){_0x32890f+=','+_0x17a7dc['options'];}var _0x3e91bc=this['channel'][_0x1022('0x55')]('MRCPRecog',_0x32890f);if(_0x3e91bc[_0x1022('0x7c')]===-0x1){return _0x3e91bc;}var _0x3fe739=this[_0x1022('0x7b')](_0x1022('0xa7'),_0x1022('0xa8'));if(_0x3fe739[_0x1022('0x7c')]===-0x1){return _0x3fe739;}var _0x28ec28=this[_0x1022('0x7b')]('RECOG_INPUT()',_0x1022('0xa9'));if(_0x28ec28[_0x1022('0x7c')]===-0x1){return _0x28ec28;}var _0x4c3dc7=this['getAndSetVariable'](_0x1022('0xa3'),_0x1022('0xaa'));if(_0x4c3dc7[_0x1022('0x7c')]===-0x1){return _0x4c3dc7;}return this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')]('Executed\x20command\x20MRCPRecog\x20%s',_0x32890f));};AGIVertices[_0x1022('0xf')][_0x1022('0xab')]=function(_0x1dc6b7){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0xac'),_0x1dc6b7[_0x1022('0x37')]));if(!this['isConfigured'](_0x1dc6b7[_0x1022('0xad')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1dc6b7,_0x1022('0xae'));}var _0x561be5=this[_0x1022('0xaf')]['sync'](this,_0x1dc6b7[_0x1022('0xad')]);if(!_0x561be5){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1dc6b7,'no\x20odbc\x20database\x20found');}if(!this[_0x1022('0x62')](_0x1dc6b7[_0x1022('0x2d')])){return this[_0x1022('0xc')]['error'](_0x1dc6b7,_0x1022('0xb0'));}var _0x16bd68=_0x1dc6b7['query'][_0x1022('0xb1')](/(\r\n|\n|\r)/gm,'\x20');this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')]('query:\x20%s',_0x16bd68));var _0x1b6f8a=this[_0x1022('0x29')][_0x1022('0x7e')](this,_0x561be5,_0x16bd68);this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x1dc6b7,_0x16bd68);if(!this['isConfigured'](_0x1dc6b7[_0x1022('0xb2')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0xb3'));}var _0x2a6b0b=this[_0x1022('0x10')][_0x1022('0x7e')](this,_0x1dc6b7['variable_id']);if(!_0x2a6b0b){return this['channel'][_0x1022('0x2a')](_0x1dc6b7,_0x1022('0xb4'));}var _0xafc135=this;_0x1b6f8a[_0x1022('0xb5')](function(_0x136aba,_0x265405){Object[_0x1022('0xb6')](_0x136aba)[_0x1022('0xb5')](function(_0x2400ed){_0xafc135['channel'][_0x1022('0xb7')](util['format'](_0x1022('0xb8'),_0x2a6b0b,_0x265405,_0x2400ed),_0x136aba[_0x2400ed]);});});this[_0x1022('0xc')]['setVariable'](util[_0x1022('0x52')](_0x1022('0xb9'),_0x2a6b0b),_0x1b6f8a[_0x1022('0x78')]);return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0xba'),_0x2a6b0b));};AGIVertices[_0x1022('0xf')]['dial']=function(_0x1057a2){logger[_0x1022('0xbb')](util[_0x1022('0x52')](_0x1022('0xbc'),_0x1057a2[_0x1022('0x37')]));if(!this['isConfigured'](_0x1057a2[_0x1022('0xbd')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1057a2,_0x1022('0xbe'));}var _0x3ac9cc=this['getUser'][_0x1022('0x7e')](this,_0x1057a2[_0x1022('0xbd')]);if(!_0x3ac9cc){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1057a2,_0x1022('0xbf'));}var _0x4b8b53=this[_0x1022('0xc')][_0x1022('0x55')]('DIAL',[util['format']('SIP/%s',_0x3ac9cc),_0x1057a2[_0x1022('0x88')],_0x1057a2[_0x1022('0xc0')],_0x1057a2['url']]);if(_0x4b8b53[_0x1022('0x7c')]===-0x1){return _0x4b8b53;}return this[_0x1022('0xc')][_0x1022('0x8d')](util['format'](_0x1022('0xc1'),'DIAL'));};AGIVertices[_0x1022('0xf')][_0x1022('0xc2')]=function(_0x37a3a1){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0xc3'),_0x37a3a1[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x37a3a1[_0x1022('0x5a')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0xc4'));}if(!this[_0x1022('0x62')](_0x37a3a1[_0x1022('0x58')])){return this[_0x1022('0xc')][_0x1022('0x8d')]('no\x20text\x20configured');}this[_0x1022('0xc')][_0x1022('0xc5')]=!![];this[_0x1022('0x35')](_0x37a3a1);this[_0x1022('0x41')](_0x37a3a1[_0x1022('0x58')],'in');this[_0x1022('0xc')][_0x1022('0x8d')](util['format'](_0x1022('0xc6'),_0x37a3a1['text']));var _0x54cc19=this[_0x1022('0x59')][_0x1022('0x7e')](this,_0x37a3a1);if(_0x54cc19){for(var _0x188fa0 in _0x54cc19){if(_0x54cc19['hasOwnProperty'](_0x188fa0)){this['channel'][_0x1022('0xb7')](util[_0x1022('0x52')](_0x1022('0xc7'),_0x188fa0[_0x1022('0xc8')]()),_0x54cc19[_0x188fa0]);}}this[_0x1022('0x41')](_0x54cc19[_0x1022('0xc9')],_0x1022('0xca'));return this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0xcb'),_0x54cc19['speech']));}return this[_0x1022('0xc')][_0x1022('0x2a')](_0x37a3a1,_0x1022('0xcc'));};AGIVertices['prototype'][_0x1022('0xcd')]=function(_0x11f1b2){logger['info'](util[_0x1022('0x52')](_0x1022('0xce'),_0x11f1b2[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x11f1b2[_0x1022('0xcf')])){return this[_0x1022('0xc')]['noop'](_0x1022('0xd0'));}if(!this[_0x1022('0x62')](_0x11f1b2['username'])){return this[_0x1022('0xc')]['noop'](_0x1022('0xd1'));}if(!this[_0x1022('0x62')](_0x11f1b2[_0x1022('0xd2')])){return this[_0x1022('0xc')][_0x1022('0x8d')]('no\x20password\x20configured');}if(!this['isConfigured'](_0x11f1b2[_0x1022('0xd3')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x96'));}this[_0x1022('0xc')][_0x1022('0xc5')]=!![];this[_0x1022('0x35')](_0x11f1b2);this['createSquareMessage'](_0x11f1b2['text'],'in');this[_0x1022('0xc')][_0x1022('0x8d')](util['format'](_0x1022('0xd4'),_0x11f1b2[_0x1022('0x58')]));var _0x543829=this[_0x1022('0x5c')][_0x1022('0x7e')](this,_0x11f1b2);if(_0x543829){for(var _0x203b0c in _0x543829){if(_0x543829[_0x1022('0xd5')](_0x203b0c)){this[_0x1022('0xc')]['setVariable'](util[_0x1022('0x52')](_0x1022('0xd6'),_0x203b0c[_0x1022('0xc8')]()),_0x543829[_0x203b0c]);}}this[_0x1022('0x41')](_0x543829[_0x1022('0xc9')],_0x1022('0xca'));return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0xd7'),_0x543829['speech']));}return this[_0x1022('0xc')][_0x1022('0x2a')](_0x11f1b2,_0x1022('0xd8'));};AGIVertices[_0x1022('0xf')][_0x1022('0xd9')]=function(_0x470a96){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20END\x20(%s)\x20block',_0x470a96[_0x1022('0x37')]));return this[_0x1022('0xc')][_0x1022('0x8d')]('end');};AGIVertices[_0x1022('0xf')][_0x1022('0xda')]=function(_0x430e30){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0xdb'),_0x430e30[_0x1022('0x37')]));var _0x54f454='';if(_0x430e30[_0x1022('0xdc')]){if(!this[_0x1022('0x62')](_0x430e30[_0x1022('0xdc')])){return this['channel'][_0x1022('0x2a')](_0x430e30,'no\x20trunk\x20selected');}else{var _0x508952=parseInt(_0x430e30[_0x1022('0xdc')],0xa);if(isNaN(_0x508952)){_0x54f454=_0x430e30['trunk_id'];}else{_0x54f454=this[_0x1022('0x1b')][_0x1022('0x7e')](this,_0x430e30['trunk_id']);if(!_0x54f454){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x430e30,_0x1022('0xdd'));}}}}else if(_0x430e30['trunk_name']){_0x54f454=_0x430e30[_0x1022('0xde')];}else{return this[_0x1022('0xc')]['error'](_0x430e30,_0x1022('0xdf'));}var _0x3fcad4=this[_0x1022('0xc')][_0x1022('0x55')](_0x1022('0xe0'),[util[_0x1022('0x52')](_0x1022('0xe1'),_0x54f454,_0x430e30[_0x1022('0x47')]),_0x430e30[_0x1022('0x88')],_0x430e30['opts'],_0x430e30['url']]);if(_0x3fcad4[_0x1022('0x7c')]===-0x1){return _0x3fcad4;}return this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')](_0x1022('0xc1'),_0x1022('0xe0')));};AGIVertices[_0x1022('0xf')][_0x1022('0xe2')]=function(_0x932858){logger[_0x1022('0x2c')](util['format'](_0x1022('0xe3'),_0x932858['label']));return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0xe2'));};AGIVertices[_0x1022('0xf')][_0x1022('0xe4')]=function(_0x111cbc){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0xe5'),_0x111cbc['label']));if(_0x111cbc[_0x1022('0x7f')]===0x0){return this['maxRetry'](_0x111cbc);}_0x111cbc['retry']-=0x1;if(!this[_0x1022('0x62')](_0x111cbc[_0x1022('0xe6')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x111cbc,_0x1022('0xe7'));}var _0x541b28=this['getSound'][_0x1022('0x7e')](this,_0x111cbc[_0x1022('0xe6')]);if(!_0x541b28){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x111cbc,'no\x20file\x20audio\x20found');}if(!this['isConfigured'](_0x111cbc[_0x1022('0xb2')])){return this['channel'][_0x1022('0x2a')](_0x1022('0xb3'));}var _0x55b9d0=this[_0x1022('0xc')][_0x1022('0xe8')](_0x541b28,_0x111cbc[_0x1022('0xe9')],_0x111cbc[_0x1022('0xea')]);var _0x2dd591=_0x55b9d0['result']?_0x55b9d0['result'][_0x1022('0xeb')]():'';logger[_0x1022('0x2c')](_0x1022('0xec'),JSON[_0x1022('0xed')](_0x55b9d0));if(_0x55b9d0[_0x1022('0x7c')]===-0x1){this['createSquareDetailsReport'][_0x1022('0x7e')](this,_0x111cbc,_0x2dd591);return _0x55b9d0;}else if(_0x55b9d0[_0x1022('0x7a')]===_0x1022('0x88')){_0x55b9d0[_0x1022('0x7c')]=_0x2dd591['length']>=parseInt(_0x111cbc[_0x1022('0xee')])?'x':'i';}else{_0x55b9d0['result']=_0x2dd591['length']>=parseInt(_0x111cbc[_0x1022('0xee')])&&_0x2dd591[_0x1022('0x78')]<=parseInt(_0x111cbc['maxdigit'])?'x':'i';}var _0x382f30=this[_0x1022('0x10')]['sync'](this,_0x111cbc[_0x1022('0xb2')]);if(!_0x382f30){return this[_0x1022('0xc')]['error'](_0x111cbc,_0x1022('0xb4'));}this[_0x1022('0xc')][_0x1022('0xb7')](_0x382f30,_0x2dd591);if(this[_0x1022('0x62')](_0x111cbc[_0x1022('0xef')])){var _0x27a4f7=parseInt(_0x111cbc[_0x1022('0xef')],0xa);var _0x4f6403=rs['generate']({'charset':'*','length':_0x27a4f7});var _0xc2ccfd=_0x2dd591[_0x1022('0x78')];if(_0xc2ccfd>0x0){if(_0xc2ccfd>_0x27a4f7){this[_0x1022('0x35')]['sync'](this,_0x111cbc,_0x111cbc[_0x1022('0xf0')]===_0x1022('0xf1')?_0x4f6403+_0x2dd591['substr'](_0x27a4f7):_0x2dd591[_0x1022('0xf2')](0x0,_0xc2ccfd-_0x27a4f7)+_0x4f6403);}else{this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x111cbc,rs[_0x1022('0xf3')]({'charset':'*','length':_0xc2ccfd}));}}else{this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x111cbc,'');}}else{this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x111cbc,_0x2dd591);}return _0x55b9d0;};AGIVertices[_0x1022('0xf')][_0x1022('0xf4')]=function(_0x42a180){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block',_0x42a180[_0x1022('0x37')]));return this['getdigits'](_0x42a180);};AGIVertices[_0x1022('0xf')][_0x1022('0xf5')]=function(_0x285517){logger['info'](util[_0x1022('0x52')](_0x1022('0xf6'),_0x285517['label']));this['createSquareDetailsReport'][_0x1022('0x7e')](this,_0x285517,_0x285517[_0x1022('0xf7')]);return this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')]('GOAL\x20%s',_0x285517[_0x1022('0xf7')]));};AGIVertices['prototype'][_0x1022('0xf8')]=function(_0x21dbbd){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0xf9'),_0x21dbbd[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x21dbbd[_0x1022('0x65')])||!this['isConfigured'](_0x21dbbd[_0x1022('0xfa')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0xfb'));}if(!this[_0x1022('0x62')](_0x21dbbd['text'])){return this['channel'][_0x1022('0x8d')](_0x1022('0x96'));}this[_0x1022('0xc')]['noop'](util['format']('Trying\x20aws\x20Polly\x20%s',_0x21dbbd[_0x1022('0x58')]));var _0x270c4f=this[_0x1022('0x64')]['sync'](this,_0x21dbbd);if(_0x270c4f){this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0xfc'),_0x270c4f));var _0x1802dd=this[_0x1022('0xc')][_0x1022('0xfd')](_0x270c4f);try{fs['unlink'](_0x270c4f+'.wav');}catch(_0x47f6c1){logger[_0x1022('0x2a')](_0x47f6c1);}return _0x1802dd;}return this[_0x1022('0xc')][_0x1022('0x2a')](_0x21dbbd,_0x1022('0xfe'));};AGIVertices[_0x1022('0xf')][_0x1022('0xff')]=function(_0x49e7ff){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x100'),_0x49e7ff[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x49e7ff['aws_access_key_id'])||!this[_0x1022('0x62')](_0x49e7ff[_0x1022('0xfa')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0xfb'));}if(!this[_0x1022('0x62')](_0x49e7ff[_0x1022('0x6b')])){return this['channel']['noop'](_0x1022('0x101'));}if(!this[_0x1022('0x62')](_0x49e7ff[_0x1022('0x58')])){return this[_0x1022('0xc')][_0x1022('0x8d')]('no\x20text\x20configured');}this['channel'][_0x1022('0xc5')]=!![];this[_0x1022('0x35')](_0x49e7ff);this[_0x1022('0x41')](_0x49e7ff[_0x1022('0x58')],'in');this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x102'),_0x49e7ff[_0x1022('0x58')]));var _0x10ecc0=this[_0x1022('0x69')]['sync'](this,_0x49e7ff);if(_0x10ecc0){for(var _0x290807 in _0x10ecc0){if(_0x10ecc0[_0x1022('0xd5')](_0x290807)&&_['isString'](_0x10ecc0[_0x290807])){this[_0x1022('0xc')][_0x1022('0xb7')](util['format']('AWS_LEX_%s',_0x290807['toUpperCase']()),_0x10ecc0[_0x290807]);}}if(_[_0x1022('0x44')](_0x10ecc0[_0x1022('0x103')])){return this[_0x1022('0xc')]['noop'](_0x1022('0x104'));}else{this[_0x1022('0x41')](_0x10ecc0['message'],'out');return this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')]('Amazon\x20Lex\x20Result\x20%s',_0x10ecc0[_0x1022('0x103')]));}}return this['channel'][_0x1022('0x2a')](_0x49e7ff,_0x1022('0x105'));};AGIVertices['prototype'][_0x1022('0x106')]=function(_0x58de25){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x107'),_0x58de25[_0x1022('0x37')],_0x58de25[_0x1022('0x88')]));if(!this[_0x1022('0x62')](_0x58de25[_0x1022('0x5a')])){return this[_0x1022('0xc')][_0x1022('0x8d')]('no\x20key\x20configured');}var _0x546fdb=_0x1022('0x108');var _0xf4b1a6=util[_0x1022('0x52')](_0x1022('0x109'),FILES_PATH,rs[_0x1022('0xf3')](0x4));var _0x4baff2=util[_0x1022('0x52')](_0x1022('0x10a'),_0xf4b1a6,_0x546fdb);var _0xe5840=!![];if(_0x58de25[_0x1022('0x10b')]===_0x1022('0x10c')){_0xe5840=![];}var _0x3e93f4=this[_0x1022('0xc')]['recordFile'](_0xf4b1a6,_0x546fdb,_0x58de25['intKey'],_0x58de25['timeout'],undefined,_0xe5840);if(_0x3e93f4['result']!==-0x1){this['channel']['noop'](util[_0x1022('0x52')](_0x1022('0x10d'),_0x4baff2));var _0x27ac46=this[_0x1022('0x6c')][_0x1022('0x7e')](this,_0x58de25,_0x4baff2);if(_0x27ac46){for(var _0x1acbfc in _0x27ac46){if(_0x27ac46[_0x1022('0xd5')](_0x1acbfc)){this[_0x1022('0xc')]['setVariable'](util[_0x1022('0x52')](_0x1022('0x10e'),_0x1acbfc[_0x1022('0xc8')]()),_0x27ac46[_0x1acbfc]);}}return this[_0x1022('0xc')][_0x1022('0x8d')](util['format']('GoogleASR\x20Result\x20%s',JSON['stringify'](_0x27ac46)));}}return _0x3e93f4;};AGIVertices[_0x1022('0xf')][_0x1022('0x10f')]=function(_0x492fba){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x110'),_0x492fba[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x492fba['appid'])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x111'));}if(!this[_0x1022('0x62')](_0x492fba['appsecret'])){return this['channel']['noop'](_0x1022('0x112'));}var _0x5b17c8=_0x1022('0x108');var _0x1f5a07=util[_0x1022('0x52')]('%s/recordings/%s',FILES_PATH,rs[_0x1022('0xf3')](0x4));var _0x3cc2e0=util['format'](_0x1022('0x10a'),_0x1f5a07,_0x5b17c8);var _0x143f67=!![];if(_0x492fba[_0x1022('0x10b')]===_0x1022('0x10c')){_0x143f67=![];}var _0x52a456=this[_0x1022('0xc')][_0x1022('0x113')](_0x1f5a07,_0x5b17c8,_0x492fba[_0x1022('0x114')],_0x492fba[_0x1022('0x88')],undefined,_0x143f67);if(_0x52a456['result']!==-0x1){this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x115'),_0x3cc2e0));var _0x2a48a7=this[_0x1022('0x6f')]['sync'](this,_0x492fba,_0x3cc2e0);if(_0x2a48a7){for(var _0x354148 in _0x2a48a7){if(_0x2a48a7[_0x1022('0xd5')](_0x354148)){this[_0x1022('0xc')][_0x1022('0xb7')](util[_0x1022('0x52')](_0x1022('0x116'),_0x354148[_0x1022('0xc8')]()),_0x2a48a7[_0x354148]);}}return this['channel']['noop'](util[_0x1022('0x52')](_0x1022('0x117'),JSON[_0x1022('0xed')](_0x2a48a7)));}}return _0x52a456;};AGIVertices[_0x1022('0xf')][_0x1022('0x118')]=function(_0x80ac06){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x119'),_0x80ac06[_0x1022('0x37')]));return this[_0x1022('0xc')][_0x1022('0x11a')](_0x80ac06[_0x1022('0x3c')],_0x80ac06[_0x1022('0x3d')],_0x80ac06['priority']);};AGIVertices[_0x1022('0xf')][_0x1022('0x11b')]=function(_0xc951da){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x11c'),_0xc951da[_0x1022('0x37')]));if(!this['isConfigured'](_0xc951da[_0x1022('0x11d')])){return this['channel'][_0x1022('0x2a')](_0xc951da,_0x1022('0x11e'));}try{var _0x4cb992=eval(_0xc951da[_0x1022('0x11d')])?_0x1022('0x11f'):'false';this[_0x1022('0xc')][_0x1022('0x8d')](util['format']('EVAL\x20CONDITION\x20%s\x20%s',_0xc951da[_0x1022('0x11d')],_0x4cb992));return{'code':0xc8,'result':_0x4cb992};}catch(_0x5199f4){return{'code':0xc8,'result':_0x1022('0x120')};}};AGIVertices[_0x1022('0xf')][_0x1022('0x121')]=function(_0x2e752f){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block',_0x2e752f[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x2e752f[_0x1022('0x122')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x2e752f,_0x1022('0x123'));}var _0x582edf=this['getIntervals'][_0x1022('0x7e')](this,_0x2e752f[_0x1022('0x122')]);if(!_0x582edf){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x2e752f,_0x1022('0x124'));}for(var _0x877700=0x0;_0x877700<_0x582edf[_0x1022('0x78')];_0x877700+=0x1){var _0xb2ddc8=this[_0x1022('0xc')]['getVariable'](util['format'](_0x1022('0x125'),_0x582edf[_0x877700]));if(_0xb2ddc8[_0x1022('0x7c')]===-0x1){return _0xb2ddc8;}logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x126'),_0x582edf[_0x877700],_0xb2ddc8[_0x1022('0x7a')]));if(_0xb2ddc8[_0x1022('0x7a')]===_0x1022('0x11f')){logger[_0x1022('0x2c')](util['format'](_0x1022('0x126'),_0x582edf[_0x877700],_0x1022('0x11f')));this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x126'),_0x582edf[_0x877700],_0x1022('0x11f')));return{'code':0xc8,'result':'true'};}else{logger[_0x1022('0x2c')](util['format'](_0x1022('0x126'),_0x582edf[_0x877700],_0x1022('0x120')));this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')]('IFTIME\x20%s\x20%s',_0x582edf[_0x877700],_0x1022('0x120')));}}return{'code':0xc8,'result':_0x1022('0x120')};};AGIVertices[_0x1022('0xf')][_0x1022('0x127')]=function(_0x1c7b0e){logger['info'](util[_0x1022('0x52')](_0x1022('0x128'),_0x1c7b0e[_0x1022('0x37')]));return this[_0x1022('0xc')]['hangup']();};AGIVertices[_0x1022('0xf')][_0x1022('0x129')]=function(_0x4ae156){logger['info'](util[_0x1022('0x52')](_0x1022('0x12a'),_0x4ae156[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x4ae156[_0x1022('0x5a')])){return this[_0x1022('0xc')]['noop'](_0x1022('0xc4'));}var _0xcf25e9=_0x1022('0x108');var _0x461b1c=util['format'](_0x1022('0x109'),FILES_PATH,rs['generate'](0x4));var _0x122e5a=util[_0x1022('0x52')](_0x1022('0x10a'),_0x461b1c,_0xcf25e9);var _0x1151f2=!![];if(_0x4ae156[_0x1022('0x10b')]===_0x1022('0x10c')){_0x1151f2=![];}var _0x5779e4=this['channel']['recordFile'](_0x461b1c,_0xcf25e9,_0x4ae156[_0x1022('0x114')],_0x4ae156[_0x1022('0x88')],undefined,_0x1151f2);if(_0x5779e4[_0x1022('0x7c')]!==-0x1){this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x12b'),_0x122e5a));var _0x4b8184=this[_0x1022('0x60')]['sync'](this,_0x4ae156,_0x122e5a);if(_0x4b8184){for(var _0x356edf in _0x4b8184){if(_0x4b8184[_0x1022('0xd5')](_0x356edf)){this[_0x1022('0xc')][_0x1022('0xb7')](util['format'](_0x1022('0x12c'),_0x356edf['toUpperCase']()),_0x4b8184[_0x356edf]);}}return this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x12d'),JSON[_0x1022('0xed')](_0x4b8184)));}}return _0x5779e4;};AGIVertices[_0x1022('0xf')][_0x1022('0x12e')]=function(_0x4fccca){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x12f'),_0x4fccca['label']));if(!this[_0x1022('0x62')](_0x4fccca['key'])){return this[_0x1022('0xc')][_0x1022('0x8d')]('no\x20key\x20configured');}if(!this[_0x1022('0x62')](_0x4fccca[_0x1022('0x58')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x96'));}this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')]('Trying\x20ispeech\x20TTS\x20%s',_0x4fccca[_0x1022('0x58')]));var _0x2dd312=this[_0x1022('0x5d')][_0x1022('0x7e')](this,_0x4fccca);if(_0x2dd312){this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x12b'),_0x2dd312));var _0x578625=this[_0x1022('0xc')]['streamFile'](_0x2dd312,_0x4fccca[_0x1022('0x114')]);try{fs[_0x1022('0x130')](_0x2dd312+_0x1022('0x131'));}catch(_0x579592){logger[_0x1022('0x2a')](_0x579592);}return _0x578625;}return this['channel'][_0x1022('0x2a')](_0x4fccca,_0x1022('0x132'));};AGIVertices['prototype'][_0x1022('0x133')]=function(_0x2ad886){logger['info'](util[_0x1022('0x52')](_0x1022('0x134'),_0x2ad886['label']));if(!this[_0x1022('0x62')](_0x2ad886[_0x1022('0x135')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x2ad886,_0x1022('0x136'));}logger['info'](util[_0x1022('0x52')](_0x1022('0x137'),this['channel']['callerid'],_0x2ad886[_0x1022('0x135')]));var _0x3ed811=this[_0x1022('0x50')][_0x1022('0x7e')](this,_0x2ad886[_0x1022('0x135')]);if(_0x3ed811){logger[_0x1022('0x2c')](util['format'](_0x1022('0x138'),this[_0x1022('0xc')]['callerid'],_0x2ad886[_0x1022('0x135')]));this[_0x1022('0xc')][_0x1022('0x8d')](util['format'](_0x1022('0x138'),this[_0x1022('0xc')][_0x1022('0x3a')],_0x2ad886[_0x1022('0x135')]));return{'code':0xc8,'result':'success'};}else{logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x139'),this[_0x1022('0xc')][_0x1022('0x3a')],_0x2ad886['findBy']));this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x1022('0xc')][_0x1022('0x3a')],_0x2ad886[_0x1022('0x135')]));return{'code':0xc8,'result':_0x1022('0x13a')};}};AGIVertices[_0x1022('0xf')]['logout']=function(_0x1f231b){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x13b'),_0x1f231b[_0x1022('0x37')]));if(!this['isConfigured'](_0x1f231b['findBy'])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1f231b,'no\x20find\x20by\x20configured');}logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x137'),this[_0x1022('0xc')]['callerid'],_0x1f231b[_0x1022('0x135')]));var _0x1fecfb=this['agentLogout']['sync'](this,_0x1f231b[_0x1022('0x135')]);if(_0x1fecfb){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x138'),this[_0x1022('0xc')][_0x1022('0x3a')],_0x1f231b[_0x1022('0x135')]));this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x138'),this[_0x1022('0xc')][_0x1022('0x3a')],_0x1f231b[_0x1022('0x135')]));return{'code':0xc8,'result':_0x1022('0x13c')};}else{logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x139'),this['channel'][_0x1022('0x3a')],_0x1f231b[_0x1022('0x135')]));this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x139'),this['channel'][_0x1022('0x3a')],_0x1f231b[_0x1022('0x135')]));return{'code':0xc8,'result':'failure'};}};AGIVertices['prototype'][_0x1022('0x13d')]=function(_0x344271){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20MATH\x20(%s)\x20block',_0x344271[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x344271['operation'])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x344271,'no\x20operation\x20configured');}this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x13e'),_0x344271[_0x1022('0x13f')]));var _0x5aef7a=eval(_0x344271[_0x1022('0x13f')]);if(!this[_0x1022('0x62')](_0x344271[_0x1022('0xb2')])){return this['channel']['noop']('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x468911=this['getVariable']['sync'](this,_0x344271[_0x1022('0xb2')]);if(!_0x468911){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x344271,_0x1022('0xb4'));}if(_[_0x1022('0x140')](_0x5aef7a)){var _0x329f7e=this;_0x5aef7a[_0x1022('0xb5')](function(_0x242d72,_0x3d5a3f){_0x329f7e[_0x1022('0xc')][_0x1022('0xb7')](util[_0x1022('0x52')](_0x1022('0x141'),_0x468911,_0x3d5a3f),_0x242d72);});return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x142'),_0x468911));}else{return this[_0x1022('0xc')][_0x1022('0xb7')](_0x468911,_0x5aef7a);}};AGIVertices['prototype']['menu']=function(_0x232c79){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x143'),_0x232c79[_0x1022('0x37')]));if(_0x232c79['retry']===0x0){return this[_0x1022('0x80')](_0x232c79);}_0x232c79[_0x1022('0x7f')]-=0x1;if(!this[_0x1022('0x62')](_0x232c79[_0x1022('0xe6')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x232c79,'no\x20file\x20audio\x20selected');}var _0x4afc66=this[_0x1022('0x1d')][_0x1022('0x7e')](this,_0x232c79['file_id']);if(!_0x4afc66){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x232c79,'no\x20file\x20audio\x20found');}var _0x2962e2=this[_0x1022('0xc')][_0x1022('0xe8')](_0x4afc66,_0x232c79['response'],_0x232c79['digit']);var _0x4fdf0d=_0x2962e2['result'];if(_0x2962e2['result']===-0x1){this[_0x1022('0x35')]['sync'](this,_0x232c79,'-1');return _0x2962e2;}else if(_0x2962e2[_0x1022('0x7a')]===_0x1022('0x88')){_0x2962e2['result']=_0x2962e2['result']['length']>0x0?_0x2962e2[_0x1022('0x7c')]:'t';}else if(_[_0x1022('0x43')](_0x2962e2[_0x1022('0x7c')])){_0x2962e2[_0x1022('0x7c')]='#';_0x4fdf0d='#';}if(!this[_0x1022('0x62')](_0x232c79[_0x1022('0xb2')])){this[_0x1022('0xc')][_0x1022('0x8d')]('no\x20variable\x20selected\x20for\x20the\x20result');}else{var _0x5931c7=this[_0x1022('0x10')][_0x1022('0x7e')](this,_0x232c79[_0x1022('0xb2')]);if(!_0x5931c7){return this['channel'][_0x1022('0x2a')](_0x232c79,'no\x20variable\x20found');}this[_0x1022('0xc')][_0x1022('0xb7')](_0x5931c7,_0x4fdf0d);}this[_0x1022('0x35')]['sync'](this,_0x232c79,_0x4fdf0d);return _0x2962e2;};AGIVertices['prototype'][_0x1022('0x8d')]=function(_0x4b9ba6){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20NOOP\x20(%s)\x20block',_0x4b9ba6[_0x1022('0x37')]));return this[_0x1022('0xc')]['noop'](_0x4b9ba6[_0x1022('0x144')]||_0x4b9ba6[_0x1022('0x37')]);};AGIVertices[_0x1022('0xf')][_0x1022('0x145')]=function(_0x2b1245){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x146'),_0x2b1245[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x2b1245[_0x1022('0x135')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x2b1245,_0x1022('0x136'));}logger[_0x1022('0x2c')](util['format']('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x1022('0xc')]['callerid'],_0x2b1245['findBy']));var _0x16278c=this['getPause']['sync'](this,_0x2b1245[_0x1022('0x147')]);var _0x32f410=this['agentPause'][_0x1022('0x7e')](this,_0x2b1245[_0x1022('0x135')],_0x16278c);if(_0x32f410){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x1022('0xc')][_0x1022('0x3a')],_0x2b1245[_0x1022('0x135')]));this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x138'),this['channel'][_0x1022('0x3a')],_0x2b1245['findBy']));return{'code':0xc8,'result':_0x1022('0x13c')};}else{logger[_0x1022('0x2c')](util[_0x1022('0x52')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x1022('0xc')][_0x1022('0x3a')],_0x2b1245[_0x1022('0x135')]));this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0x1022('0x3a')],_0x2b1245['findBy']));return{'code':0xc8,'result':_0x1022('0x13a')};}};AGIVertices[_0x1022('0xf')][_0x1022('0x148')]=function(_0x586292){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20PLAYBACK\x20(%s)\x20block',_0x586292[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x586292[_0x1022('0xe6')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x586292,_0x1022('0xe7'));}var _0x249569=this[_0x1022('0x1d')][_0x1022('0x7e')](this,_0x586292['file_id']);if(!_0x249569){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x586292,_0x1022('0x149'));}var _0x32fc98=this[_0x1022('0xc')][_0x1022('0x55')](_0x1022('0x14a'),[_0x249569,_0x586292[_0x1022('0xc0')]]);if(_0x32fc98[_0x1022('0x7c')]===-0x1){return _0x32fc98;}return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x93'),_0x1022('0x14a'),_0x249569));};AGIVertices[_0x1022('0xf')][_0x1022('0x14b')]=function(_0x1e92e4){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x14c'),_0x1e92e4[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x1e92e4[_0x1022('0x14d')])){return this[_0x1022('0xc')]['error'](_0x1e92e4,'no\x20queue\x20selected');}var _0x170d36='';var _0x1c4e68=parseInt(_0x1e92e4[_0x1022('0x14d')],0xa);if(isNaN(_0x1c4e68)){_0x170d36=_0x1e92e4[_0x1022('0x14d')];}else{_0x170d36=this['getVoiceQueue'][_0x1022('0x7e')](this,_0x1e92e4[_0x1022('0x14d')]);if(!_0x170d36){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1e92e4,_0x1022('0x14e'));}}var _0x101aac='';if(this[_0x1022('0x62')](_0x1e92e4[_0x1022('0xe6')])){var _0x5c8a1e=this['getSound'][_0x1022('0x7e')](this,_0x1e92e4[_0x1022('0xe6')]);if(_0x5c8a1e){_0x101aac=_0x5c8a1e;}}this[_0x1022('0x35')]['sync'](this,_0x1e92e4,_0x170d36);if(_0x1e92e4[_0x1022('0xc0')][_0x1022('0x14f')]('x')<0x0){_0x1e92e4[_0x1022('0xc0')]+='x';}if(_0x1e92e4['opts']['indexOf']('X')<0x0){_0x1e92e4['opts']+='X';}this[_0x1022('0xc')][_0x1022('0xb7')]('XMCS-QUEUE',_0x170d36?_0x170d36[_0x1022('0x150')]():'');var _0x5d76ba=this[_0x1022('0xc')]['exec'](_0x1022('0x151'),[_0x170d36,_0x1e92e4[_0x1022('0xc0')],_0x1e92e4[_0x1022('0x152')],_0x101aac,_0x1e92e4['timeout'],_0x1e92e4[_0x1022('0x82')],_0x1e92e4[_0x1022('0x153')],_0x1e92e4[_0x1022('0x154')],'',_0x1e92e4[_0x1022('0x155')]]);if(_0x5d76ba[_0x1022('0x7c')]===-0x1){return _0x5d76ba;}return this[_0x1022('0xc')]['noop'](util['format'](_0x1022('0x93'),_0x1022('0x151'),_0x170d36));};AGIVertices[_0x1022('0xf')][_0x1022('0x156')]=function(_0x125ac6){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x157'),_0x125ac6[_0x1022('0x37')]));var _0x8c256c=_0x125ac6[_0x1022('0x158')]||_0x1022('0x108');var _0x168684=util[_0x1022('0x52')](_0x1022('0x159'),this[_0x1022('0xc')]['uniqueid'],rs['generate'](0x5));var _0x21ab68=util[_0x1022('0x52')]('%s/recordings/%s.%s',FILES_PATH,_0x168684,_0x8c256c);var _0x25f077=util['format']('%s/recordings/%s',FILES_PATH,_0x168684);this['createSquareRecording'][_0x1022('0x7e')](this,_0x125ac6,_0x168684,_0x21ab68);this['channel']['setVariable'](_0x1022('0x15a'),_0x168684);logger[_0x1022('0x2c')](_0x1022('0x15b'),_0x25f077,_0x8c256c,_0x125ac6[_0x1022('0x15c')],_0x125ac6['timeout']);return this[_0x1022('0xc')][_0x1022('0x113')](_0x25f077,_0x8c256c,_0x125ac6[_0x1022('0x15c')],_0x125ac6[_0x1022('0x88')],undefined,!![]);};AGIVertices[_0x1022('0xf')][_0x1022('0x15d')]=function(_0x59f65d){logger[_0x1022('0x2c')](util['format']('Enter\x20in\x20SAYDIGITS\x20(%s)\x20block',_0x59f65d[_0x1022('0x37')]));return this[_0x1022('0xc')][_0x1022('0x15e')](_0x59f65d['digits'][_0x1022('0xb1')](/\s+/g,''),_0x59f65d[_0x1022('0x15c')]);};AGIVertices[_0x1022('0xf')][_0x1022('0x15f')]=function(_0x272cf0){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20SAYNUMBER\x20(%s)\x20block',_0x272cf0[_0x1022('0x37')]));return this[_0x1022('0xc')][_0x1022('0x160')](_0x272cf0[_0x1022('0x161')]['replace'](/\s+/g,''),_0x272cf0['escape_digits']);};AGIVertices['prototype']['sayphonetic']=function(_0x2105e0){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x162'),_0x2105e0[_0x1022('0x37')]));return this[_0x1022('0xc')][_0x1022('0x163')](_0x2105e0[_0x1022('0x58')],_0x2105e0['escape_digits']);};AGIVertices[_0x1022('0xf')]['sendMail']=function(_0x1b3c36){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x164'),_0x1b3c36[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x1b3c36[_0x1022('0x165')])){return this['channel']['noop'](_0x1022('0x166'));}var _0x47c393=this[_0x1022('0x20')][_0x1022('0x7e')](this,_0x1b3c36['account_id']);if(!_0x47c393||!_0x47c393[_0x1022('0x167')]){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x1b3c36,_0x1022('0x168'));}var _0x2f7970={'from':util[_0x1022('0x52')](_0x1022('0x169'),_0x47c393[_0x1022('0x12')],_0x47c393[_0x1022('0x16a')]||_0x47c393[_0x1022('0x167')][_0x1022('0x16b')]),'to':_0x1b3c36['to']||'','cc':_0x1b3c36['cc']||'','bcc':_0x1b3c36[_0x1022('0x16c')]||'','subject':_0x1b3c36[_0x1022('0x16d')],'html':_0x1b3c36['text'],'text':_0x1b3c36['text']};var _0x18afbc={'tls':{'rejectUnauthorized':![]}};if(_0x47c393[_0x1022('0x167')][_0x1022('0x16e')]){_0x18afbc[_0x1022('0x16e')]=_0x47c393[_0x1022('0x167')]['service'];}else{_0x18afbc[_0x1022('0x16f')]=_0x47c393[_0x1022('0x167')][_0x1022('0x16f')];_0x18afbc[_0x1022('0x170')]=_0x47c393[_0x1022('0x167')][_0x1022('0x170')];_0x18afbc[_0x1022('0x171')]=_0x47c393['Smtp']['secure'];}if(_0x47c393[_0x1022('0x167')][_0x1022('0x172')]){_0x18afbc[_0x1022('0x173')]={'user':_0x47c393[_0x1022('0x167')][_0x1022('0x16b')],'pass':_0x47c393[_0x1022('0x167')][_0x1022('0x174')]};}if(this[_0x1022('0x62')](_0x1b3c36[_0x1022('0x175')])){}logger['debug'](_0x1022('0x176'),JSON[_0x1022('0xed')](_0x2f7970));this[_0x1022('0x35')]['sync'](this,_0x1b3c36,_0x1b3c36[_0x1022('0x165')]);this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')](_0x1022('0x177'),_0x47c393[_0x1022('0x12')]));this[_0x1022('0x22')]['sync'](this,_0x18afbc,_0x2f7970);return this['channel'][_0x1022('0x8d')](_0x1022('0x178'));};AGIVertices[_0x1022('0xf')][_0x1022('0x179')]=function(_0x5a8ba0){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x17a'),_0x5a8ba0[_0x1022('0x37')]));return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x17b'));};AGIVertices[_0x1022('0xf')][_0x1022('0x17c')]=function(_0x44a156){logger['info'](util[_0x1022('0x52')]('Enter\x20in\x20SENDSMS\x20(%s)\x20block',_0x44a156[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x44a156[_0x1022('0x17d')])){return this['channel'][_0x1022('0x8d')](_0x1022('0x17e'));}var _0x5d9bb5=this['getSmsAccount'][_0x1022('0x7e')](this,_0x44a156['sms_account_id']);if(!_0x5d9bb5){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x44a156,_0x1022('0x17f'));}var _0x3fc2b1={'body':_0x44a156[_0x1022('0x180')],'phone':_0x44a156['to']||'','SmsAccountId':_0x5d9bb5['id']};logger['debug'](_0x1022('0x181'),JSON[_0x1022('0xed')](_0x3fc2b1));this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x44a156,_0x44a156[_0x1022('0x17d')]);this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x182'),_0x5d9bb5[_0x1022('0x12')]));this[_0x1022('0x34')][_0x1022('0x7e')](this,_0x3fc2b1);return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x183'));};AGIVertices['prototype'][_0x1022('0x184')]=function(_0x3cea4d){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x185'),_0x3cea4d[_0x1022('0x37')]));if(!this['isConfigured'](_0x3cea4d[_0x1022('0xb2')])){return this['channel'][_0x1022('0x2a')](_0x3cea4d,'no\x20variable\x20selected');}var _0x24cc71=this[_0x1022('0x10')][_0x1022('0x7e')](this,_0x3cea4d[_0x1022('0xb2')]);if(!_0x24cc71){return this[_0x1022('0xc')]['error'](_0x3cea4d,_0x1022('0xb4'));}return this[_0x1022('0xc')]['setVariable'](_0x24cc71,_0x3cea4d[_0x1022('0x186')]);};AGIVertices['prototype'][_0x1022('0x187')]=function(_0x74959){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x188'),_0x74959[_0x1022('0x37')]));this['channel'][_0x1022('0x8d')]('START\x20CALLY\x20SQUARE');if(_0x74959[_0x1022('0x85')]==='yes'){this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x189'));return this[_0x1022('0xc')][_0x1022('0x85')]();}return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x18a'));};AGIVertices[_0x1022('0xf')]['subproject']=function(_0x447e7a){logger['info'](util[_0x1022('0x52')](_0x1022('0x18b'),_0x447e7a['label']));if(!this['isConfigured'](_0x447e7a[_0x1022('0x18c')])){return this[_0x1022('0xc')]['error'](_0x447e7a,_0x1022('0x18d'));}var _0x1dc3a6=this['getSquareProject']['sync'](this,_0x447e7a['project_id']);if(!this[_0x1022('0x62')](_0x1dc3a6)){return this['channel'][_0x1022('0x2a')](_0x447e7a,util['format'](_0x1022('0x18e'),_0x447e7a[_0x1022('0x18c')]));}if(_0x1dc3a6===this[_0x1022('0xc')][_0x1022('0x39')]){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x447e7a,_0x1022('0x18f'));}this[_0x1022('0x35')][_0x1022('0x7e')](this,_0x447e7a,_0x1dc3a6);var _0x5d39ae=this['channel'][_0x1022('0x55')](_0x1022('0x190'),util['format'](_0x1022('0x191'),config[_0x1022('0x82')][_0x1022('0x16f')]||_0x1022('0x192'),_0x1dc3a6,this['channel'][_0x1022('0x39')]));if(_0x5d39ae[_0x1022('0x7c')]===-0x1){return _0x5d39ae;}return this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')](_0x1022('0x93'),_0x1022('0x190'),_0x1dc3a6));};AGIVertices['prototype']['system']=function(_0x53c055){logger[_0x1022('0x2c')](util['format'](_0x1022('0x193'),_0x53c055['label']));var _0x127855=this[_0x1022('0x194')][_0x1022('0x7e')](this,_0x53c055['command']);this[_0x1022('0x35')]['sync'](this,_0x53c055,_0x53c055[_0x1022('0x83')]);if(this['isConfigured'](_0x53c055[_0x1022('0xb2')])){var _0x3cc69e=this[_0x1022('0x10')]['sync'](this,_0x53c055[_0x1022('0xb2')]);if(_0x3cc69e){this[_0x1022('0xc')]['setVariable'](_0x3cc69e,_0x127855);return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x195'),_0x53c055['command'],_0x3cc69e));}}return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x196'),_0x53c055[_0x1022('0x83')]));};AGIVertices[_0x1022('0xf')][_0x1022('0x197')]=function(_0x35bf71){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x198'),_0x35bf71[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x35bf71[_0x1022('0x58')])){return this[_0x1022('0xc')][_0x1022('0x8d')](_0x1022('0x96'));}this[_0x1022('0xc')]['noop'](util[_0x1022('0x52')](_0x1022('0x199'),_0x35bf71[_0x1022('0x58')]));var _0x420780=this['googleTTS'][_0x1022('0x7e')](this,_0x35bf71);if(_0x420780){this['channel'][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x19a'),_0x420780));var _0x1c6499=this[_0x1022('0xc')]['streamFile'](_0x420780);try{fs[_0x1022('0x130')](_0x420780+_0x1022('0x131'));}catch(_0x265f02){logger[_0x1022('0x2a')](_0x265f02);}return _0x1c6499;}return this[_0x1022('0xc')][_0x1022('0x2a')](_0x35bf71,_0x1022('0x19b'));};AGIVertices[_0x1022('0xf')]['unpause']=function(_0x419d7f){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20UNPAUSE\x20(%s)\x20block',_0x419d7f[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x419d7f[_0x1022('0x135')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x419d7f,'no\x20find\x20by\x20configured');}logger['info'](util[_0x1022('0x52')](_0x1022('0x137'),this[_0x1022('0xc')]['callerid'],_0x419d7f[_0x1022('0x135')]));var _0x38d4fc=this[_0x1022('0x4e')][_0x1022('0x7e')](this,_0x419d7f[_0x1022('0x135')]);if(_0x38d4fc){logger['info'](util[_0x1022('0x52')](_0x1022('0x138'),this[_0x1022('0xc')]['callerid'],_0x419d7f[_0x1022('0x135')]));this[_0x1022('0xc')]['noop'](util['format'](_0x1022('0x138'),this[_0x1022('0xc')][_0x1022('0x3a')],_0x419d7f[_0x1022('0x135')]));return{'code':0xc8,'result':'success'};}else{logger[_0x1022('0x2c')](util[_0x1022('0x52')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel'][_0x1022('0x3a')],_0x419d7f[_0x1022('0x135')]));this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')](_0x1022('0x139'),this[_0x1022('0xc')][_0x1022('0x3a')],_0x419d7f[_0x1022('0x135')]));return{'code':0xc8,'result':_0x1022('0x13a')};}};AGIVertices[_0x1022('0xf')]['voicemail']=function(_0x1cc6e1){logger[_0x1022('0x2c')](util[_0x1022('0x52')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x1cc6e1[_0x1022('0x37')]));var _0x58178b=this[_0x1022('0xc')][_0x1022('0x55')]('VOICEMAIL',[_0x1cc6e1[_0x1022('0x19c')],_0x1cc6e1[_0x1022('0x92')]]);if(_0x58178b[_0x1022('0x7c')]===-0x1){return _0x58178b;}return this[_0x1022('0xc')][_0x1022('0x8d')](util[_0x1022('0x52')]('Executed\x20command\x20%s\x20%s','VOICEMAIL',_0x1cc6e1[_0x1022('0x19c')]));};AGIVertices[_0x1022('0xf')][_0x1022('0x19d')]=function(_0x343f9d){logger[_0x1022('0x2c')](util[_0x1022('0x52')](_0x1022('0x19e'),_0x343f9d[_0x1022('0x37')]));if(!this[_0x1022('0x62')](_0x343f9d[_0x1022('0xb2')])){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x343f9d,_0x1022('0x19f'));}var _0x103354=this['getVariable'][_0x1022('0x7e')](this,_0x343f9d[_0x1022('0xb2')]);if(!_0x103354){return this[_0x1022('0xc')][_0x1022('0x2a')](_0x343f9d,_0x1022('0xb4'));}var _0x25f54d=this['channel']['getVariable'](_0x103354);return{'code':0xc8,'result':_0x25f54d[_0x1022('0x7a')]?_0x25f54d['extra']:'-'};};String[_0x1022('0xf')][_0x1022('0x79')]=function(_0x4cfcf4,_0x4c7e66){return this[_0x1022('0x77')](_0x4cfcf4)[_0x1022('0x1a0')](_0x4c7e66);};module[_0x1022('0x1a1')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x425d=['[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','stringify','transfereruniqueid','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','autopause','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','savePause','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','syncAgentConnect','bind','hanguprequest','syncHangupRequest','hangup','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','seconds','prototype','startAcw','interface','queue','Action','QueuePause','ACW','then','info','[%s][START][AGENT:%s][QUEUE:%s]','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','stopAcw','lastPauseAt','uniqueid','updateAcw','update','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','message','[TIMER][STOP][AGENT:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','isUndefined','attended','[%s][HANGUP:UNIQUEID]','linkedid','[%s][HANGUP:LINKEDID]'];(function(_0x53f80c,_0x5913f7){var _0x1408fd=function(_0x5dc479){while(--_0x5dc479){_0x53f80c['push'](_0x53f80c['shift']());}};_0x1408fd(++_0x5913f7);}(_0x425d,0x1e0));var _0xd425=function(_0x1faa6e,_0x423197){_0x1faa6e=_0x1faa6e-0x0;var _0x15fc1d=_0x425d[_0x1faa6e];return _0x15fc1d;};'use strict';var util=require(_0xd425('0x0'));var _=require('lodash');var moment=require(_0xd425('0x1'));var ami=require(_0xd425('0x2'));var logger=require(_0xd425('0x3'))(_0xd425('0x4'));var RpcUser=require(_0xd425('0x5'));var RpcVoiceAgentReport=require(_0xd425('0x6'));function Acw(_0x47043f){this['voiceQueues']=_0x47043f[_0xd425('0x7')];this[_0xd425('0x8')]=_0x47043f[_0xd425('0x8')];this[_0xd425('0x9')]=_0x47043f[_0xd425('0x9')];this[_0xd425('0xa')]={};ami['on']('agentconnect',this[_0xd425('0xb')][_0xd425('0xc')](this));ami['on'](_0xd425('0xd'),this[_0xd425('0xe')][_0xd425('0xc')](this));ami['on'](_0xd425('0xf'),this[_0xd425('0x10')][_0xd425('0xc')](this));ami['on'](_0xd425('0x11'),this[_0xd425('0x12')][_0xd425('0xc')](this));ami['on'](_0xd425('0x13'),this[_0xd425('0x14')][_0xd425('0xc')](this));ami['on'](_0xd425('0x15'),this[_0xd425('0x16')][_0xd425('0xc')](this));ami['on'](_0xd425('0x17'),this[_0xd425('0x18')][_0xd425('0xc')](this));}function getDiff(_0x51263f){var _0x27318c=moment()[_0xd425('0x19')](0x0);var _0x336dc3=moment(_0x51263f)['milliseconds'](0x0);return _0x27318c[_0xd425('0x1a')](_0x336dc3,_0xd425('0x1b'));}Acw[_0xd425('0x1c')][_0xd425('0x1d')]=function(_0x1fc822){try{var _0x538a0a=this;var _0x278626=this[_0xd425('0xa')][_0x1fc822][_0xd425('0x1e')];var _0x5dda0c=this['channels'][_0x1fc822][_0xd425('0x1f')];ami[_0xd425('0x20')]({'action':_0xd425('0x21'),'interface':_0x278626,'paused':!![],'reason':_0xd425('0x22')})['then'](function(_0x58a0c1){if(_0x538a0a['agents'][_0x278626]){return RpcUser['getAgent'](_0x538a0a[_0xd425('0x8')][_0x278626]['id'])[_0xd425('0x23')](function(_0x3c98db){if(_0x3c98db&&!_0x3c98db['voicePause']){logger[_0xd425('0x24')](_0xd425('0x25'),_0x1fc822,_0x278626,_0x5dda0c);return RpcUser['savePause'](_0x538a0a[_0xd425('0x8')][_0x278626],_0xd425('0x22'),_0x1fc822)[_0xd425('0x23')](function(_0x1d3fc0){_0x538a0a[_0xd425('0x9')][_0x278626]={};logger[_0xd425('0x24')](_0xd425('0x26'),_0x1fc822,_0x538a0a[_0xd425('0x7')][_0x5dda0c][_0xd425('0x27')],_0x278626,_0x5dda0c);_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x28')]=setTimeout(_0x538a0a[_0xd425('0x29')]['bind'](_0x538a0a,_0x278626),_0x538a0a[_0xd425('0x7')][_0x5dda0c][_0xd425('0x27')]*0x3e8);_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x2a')]=_0x1d3fc0[_0xd425('0x2a')];_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x2b')]=_0x1fc822;_0x538a0a['timers'][_0x278626][_0xd425('0x1f')]=_0x5dda0c;_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x2c')]=function(){var _0x57c950=getDiff(_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x2a')]);clearTimeout(_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x28')]);RpcVoiceAgentReport[_0xd425('0x2d')]({'acwtime':_0x57c950},_0x538a0a[_0xd425('0x9')][_0x278626][_0xd425('0x2b')],_0x278626)[_0xd425('0x23')](function(_0x24da23){logger[_0xd425('0x24')]('[%s][UPDATE][ACWTIME:%s]',_0x1fc822,_0x57c950,_0x24da23);})[_0xd425('0x2e')](function(_0x219ada){logger[_0xd425('0x2f')](_0xd425('0x30'),_0x1fc822,_0x219ada);});delete _0x538a0a[_0xd425('0x9')][_0x278626];};});}else{logger[_0xd425('0x24')](_0xd425('0x31'),_0x1fc822,_0x278626,_0x5dda0c);}});}})[_0xd425('0x2e')](function(_0x3ec51b){logger[_0xd425('0x2f')](_0xd425('0x26'),_0x1fc822,_0x538a0a['voiceQueues'][_0x5dda0c][_0xd425('0x27')],_0x278626,_0x5dda0c);})[_0xd425('0x32')](function(){delete _0x538a0a[_0xd425('0xa')][_0x1fc822];});}catch(_0x21e0bd){logger[_0xd425('0x2f')]('[ACW][START]\x20%s',_0x21e0bd[_0xd425('0x33')]);}};Acw[_0xd425('0x1c')]['stopAcw']=function(_0x574962){try{var _0x51669d=this;if(_0x51669d[_0xd425('0x9')][_0x574962]){var _0xfb0c8=_0x51669d[_0xd425('0x9')][_0x574962][_0xd425('0x2b')];var _0x4aa5b2=_0x51669d[_0xd425('0x9')][_0x574962][_0xd425('0x1f')];var _0x30a9dc=_0x51669d[_0xd425('0x7')][_0x4aa5b2][_0xd425('0x27')];logger[_0xd425('0x24')](_0xd425('0x34'),_0x574962);RpcUser['saveUnpause'](this[_0xd425('0x8')][_0x574962]);RpcVoiceAgentReport['update']({'acwtime':_0x30a9dc,'agentacw':!![]},_0xfb0c8,_0x574962)[_0xd425('0x23')](function(_0x29cca9){logger[_0xd425('0x24')]('[%s][UPDATE][ACWTIME:%s]',_0xfb0c8,_0x30a9dc,_0x29cca9);})[_0xd425('0x2e')](function(_0x26806c){logger[_0xd425('0x2f')](_0xd425('0x30'),_0xfb0c8,_0x26806c);});}else{logger['error'](_0xd425('0x35'),_0x574962);if(_0x51669d[_0xd425('0x9')]){logger['info']('[ACW][TIMERS]',JSON['stringify'](_0x51669d[_0xd425('0x9')]));}}}catch(_0x400d57){logger[_0xd425('0x2f')]('[ACW][STOP]\x20%s',_0x400d57['message']);}};Acw['prototype'][_0xd425('0xb')]=function(_0x3f9090){try{if(this[_0xd425('0x7')][_0x3f9090[_0xd425('0x1f')]]&&this[_0xd425('0x7')][_0x3f9090[_0xd425('0x1f')]][_0xd425('0x4')]){if(this['agents'][_0x3f9090[_0xd425('0x1e')]]){this[_0xd425('0xa')][_0x3f9090[_0xd425('0x2b')]]={'queue':_0x3f9090['queue'],'interface':_0x3f9090[_0xd425('0x1e')]};}}}catch(_0x2dffc7){logger[_0xd425('0x2f')]('[ACW][syncAgentConnect]\x20%s',_0x2dffc7[_0xd425('0x33')]);}};Acw[_0xd425('0x1c')][_0xd425('0x18')]=function(_0x2d7a2f){try{if(this['voiceQueues'][_0x2d7a2f[_0xd425('0x1f')]]&&this[_0xd425('0x7')][_0x2d7a2f[_0xd425('0x1f')]][_0xd425('0x4')]){if(this[_0xd425('0x8')][_0x2d7a2f[_0xd425('0x1e')]]){this[_0xd425('0xa')][_0x2d7a2f['uniqueid']]={'queue':_0x2d7a2f[_0xd425('0x1f')],'interface':_0x2d7a2f[_0xd425('0x1e')]};}}}catch(_0x5b65fe){logger[_0xd425('0x2f')]('[ACW][syncAgentConnectPreview]\x20%s',_0x5b65fe['message']);}};Acw[_0xd425('0x1c')]['syncHangupRequest']=function(_0x1be60a){try{if(this['channels'][_0x1be60a[_0xd425('0x2b')]]&&_[_0xd425('0x36')](this[_0xd425('0xa')][_0x1be60a[_0xd425('0x2b')]][_0xd425('0x37')])){logger['info'](_0xd425('0x38'),_0x1be60a['uniqueid']);this[_0xd425('0x1d')](_0x1be60a['uniqueid']);}else if(this[_0xd425('0xa')][_0x1be60a[_0xd425('0x39')]]&&_[_0xd425('0x36')](this[_0xd425('0xa')][_0x1be60a[_0xd425('0x39')]]['attended'])){logger[_0xd425('0x24')](_0xd425('0x3a'),_0x1be60a[_0xd425('0x39')]);this[_0xd425('0x1d')](_0x1be60a[_0xd425('0x39')]);}}catch(_0x499796){logger[_0xd425('0x2f')](_0xd425('0x3b'),_0x499796[_0xd425('0x33')]);}};Acw[_0xd425('0x1c')][_0xd425('0x10')]=function(_0xf7a74c){try{if(this['channels'][_0xf7a74c[_0xd425('0x2b')]]&&this[_0xd425('0xa')][_0xf7a74c['uniqueid']][_0xd425('0x37')]){logger[_0xd425('0x24')](_0xd425('0x3c'),_0xf7a74c[_0xd425('0x2b')]);this['startAcw'](_0xf7a74c[_0xd425('0x2b')]);}else if(this[_0xd425('0xa')][_0xf7a74c[_0xd425('0x39')]]&&this[_0xd425('0xa')][_0xf7a74c[_0xd425('0x39')]]['attended']){logger['info'](_0xd425('0x3d'),_0xf7a74c['linkedid']);this[_0xd425('0x1d')](_0xf7a74c[_0xd425('0x39')]);}}catch(_0x5594f9){logger[_0xd425('0x2f')]('[ACW][syncHangup]\x20%s',_0x5594f9['message']);}};Acw[_0xd425('0x1c')][_0xd425('0x14')]=function(_0xe6451f){try{if(!_[_0xd425('0x3e')](this[_0xd425('0xa')][_0xe6451f[_0xd425('0x3f')]])){this[_0xd425('0x1d')](_0xe6451f[_0xd425('0x3f')]);if(this['channels'][_0xe6451f[_0xd425('0x40')]]){this[_0xd425('0xa')][_0xe6451f[_0xd425('0x40')]][_0xd425('0x37')]=!![];this[_0xd425('0xa')][_0xe6451f[_0xd425('0x41')]]=this[_0xd425('0xa')][_0xe6451f[_0xd425('0x40')]];delete this['channels'][_0xe6451f['secondtransfereruniqueid']];}}else if(!_['isNil'](this[_0xd425('0xa')][_0xe6451f[_0xd425('0x41')]])){this[_0xd425('0x1d')](_0xe6451f[_0xd425('0x41')]);if(this['channels'][_0xe6451f['origtransfereruniqueid']]){this['channels'][_0xe6451f['origtransfereruniqueid']][_0xd425('0x37')]=!![];this[_0xd425('0xa')][_0xe6451f['transfereeuniqueid']]=this[_0xd425('0xa')][_0xe6451f[_0xd425('0x42')]];delete this[_0xd425('0xa')][_0xe6451f['origtransfereruniqueid']];}}}catch(_0x517e2e){logger[_0xd425('0x2f')]('[ACW][syncAttendedTransfer]\x20%s',_0x517e2e['message']);}};Acw['prototype'][_0xd425('0x16')]=function(_0x259482){try{if(this[_0xd425('0xa')][_0x259482['transfereruniqueid']]){logger[_0xd425('0x24')]('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0xd425('0x43')](_0x259482[_0xd425('0x44')]));this[_0xd425('0x1d')](_0x259482[_0xd425('0x44')]);}else if(this[_0xd425('0xa')][_0x259482[_0xd425('0x45')]]){logger[_0xd425('0x24')](_0xd425('0x46'),JSON[_0xd425('0x43')](_0x259482['transfererlinkedid']));this[_0xd425('0x1d')](_0x259482[_0xd425('0x45')]);}}catch(_0x18dc33){logger[_0xd425('0x2f')]('[ACW][syncBlindTransfer]\x20%s',_0x18dc33['message']);}};Acw[_0xd425('0x1c')][_0xd425('0x12')]=function(_0x142660){try{if(this[_0xd425('0x7')][_0x142660[_0xd425('0x1f')]]&&this[_0xd425('0x7')][_0x142660[_0xd425('0x1f')]][_0xd425('0x47')]===_0xd425('0x48')){if(this[_0xd425('0x8')][_0x142660[_0xd425('0x1e')]]){logger[_0xd425('0x24')](_0xd425('0x49'),_0x142660[_0xd425('0x2b')],_0x142660['interface'],_0x142660[_0xd425('0x1f')]);return RpcUser[_0xd425('0x4a')](this[_0xd425('0x8')][_0x142660['interface']],'Auto-Pause',_0x142660['uniqueid']);}}}catch(_0x403cb3){logger[_0xd425('0x2f')](_0xd425('0x4b'),_0x403cb3['message']);}};module[_0xd425('0x4c')]=Acw;
\ No newline at end of file
+var _0x7fbe=['moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','syncAgentConnect','bind','hanguprequest','syncHangupRequest','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','seconds','startAcw','interface','Action','ACW','then','info','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','stopAcw','acwTimeout','lastPauseAt','uniqueid','queue','updateAcw','timer','update','[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','message','prototype','[TIMER][STOP][AGENT:%s]','[%s][UPDATE][ERRORS:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]','linkedid','attended','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','autopause','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','exports'];(function(_0x19a49f,_0x444d74){var _0x5351ae=function(_0x58b1ed){while(--_0x58b1ed){_0x19a49f['push'](_0x19a49f['shift']());}};_0x5351ae(++_0x444d74);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x45dd0e,_0x28e603){_0x45dd0e=_0x45dd0e-0x0;var _0x50e5ca=_0x7fbe[_0x45dd0e];return _0x50e5ca;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0xe7fb('0x0'));var ami=require(_0xe7fb('0x1'));var logger=require(_0xe7fb('0x2'))(_0xe7fb('0x3'));var RpcUser=require(_0xe7fb('0x4'));var RpcVoiceAgentReport=require(_0xe7fb('0x5'));function Acw(_0x11d2c4){this[_0xe7fb('0x6')]=_0x11d2c4[_0xe7fb('0x6')];this[_0xe7fb('0x7')]=_0x11d2c4[_0xe7fb('0x7')];this[_0xe7fb('0x8')]=_0x11d2c4[_0xe7fb('0x8')];this[_0xe7fb('0x9')]={};ami['on']('agentconnect',this[_0xe7fb('0xa')][_0xe7fb('0xb')](this));ami['on'](_0xe7fb('0xc'),this[_0xe7fb('0xd')]['bind'](this));ami['on']('hangup',this[_0xe7fb('0xe')][_0xe7fb('0xb')](this));ami['on'](_0xe7fb('0xf'),this[_0xe7fb('0x10')][_0xe7fb('0xb')](this));ami['on'](_0xe7fb('0x11'),this[_0xe7fb('0x12')][_0xe7fb('0xb')](this));ami['on'](_0xe7fb('0x13'),this[_0xe7fb('0x14')][_0xe7fb('0xb')](this));ami['on'](_0xe7fb('0x15'),this[_0xe7fb('0x16')][_0xe7fb('0xb')](this));}function getDiff(_0x7fe4d3){var _0x598729=moment()[_0xe7fb('0x17')](0x0);var _0x2225e5=moment(_0x7fe4d3)['milliseconds'](0x0);return _0x598729[_0xe7fb('0x18')](_0x2225e5,_0xe7fb('0x19'));}Acw['prototype'][_0xe7fb('0x1a')]=function(_0x559129){try{var _0x12fff6=this;var _0x18d23c=this[_0xe7fb('0x9')][_0x559129][_0xe7fb('0x1b')];var _0x562262=this[_0xe7fb('0x9')][_0x559129]['queue'];ami[_0xe7fb('0x1c')]({'action':'QueuePause','interface':_0x18d23c,'paused':!![],'reason':_0xe7fb('0x1d')})[_0xe7fb('0x1e')](function(_0x3f96a7){if(_0x12fff6[_0xe7fb('0x7')][_0x18d23c]){return RpcUser['getAgent'](_0x12fff6[_0xe7fb('0x7')][_0x18d23c]['id'])['then'](function(_0x11cae0){if(_0x11cae0&&!_0x11cae0['voicePause']){logger[_0xe7fb('0x1f')]('[%s][START][AGENT:%s][QUEUE:%s]',_0x559129,_0x18d23c,_0x562262);return RpcUser[_0xe7fb('0x20')](_0x12fff6[_0xe7fb('0x7')][_0x18d23c],'ACW',_0x559129)[_0xe7fb('0x1e')](function(_0x4742bd){_0x12fff6[_0xe7fb('0x8')][_0x18d23c]={};logger['info'](_0xe7fb('0x21'),_0x559129,_0x12fff6[_0xe7fb('0x6')][_0x562262]['acwTimeout'],_0x18d23c,_0x562262);_0x12fff6['timers'][_0x18d23c]['timer']=setTimeout(_0x12fff6[_0xe7fb('0x22')]['bind'](_0x12fff6,_0x18d23c),_0x12fff6['voiceQueues'][_0x562262][_0xe7fb('0x23')]*0x3e8);_0x12fff6[_0xe7fb('0x8')][_0x18d23c][_0xe7fb('0x24')]=_0x4742bd['lastPauseAt'];_0x12fff6[_0xe7fb('0x8')][_0x18d23c][_0xe7fb('0x25')]=_0x559129;_0x12fff6[_0xe7fb('0x8')][_0x18d23c][_0xe7fb('0x26')]=_0x562262;_0x12fff6[_0xe7fb('0x8')][_0x18d23c][_0xe7fb('0x27')]=function(){var _0x380130=getDiff(_0x12fff6['timers'][_0x18d23c]['lastPauseAt']);clearTimeout(_0x12fff6[_0xe7fb('0x8')][_0x18d23c][_0xe7fb('0x28')]);RpcVoiceAgentReport[_0xe7fb('0x29')]({'acwtime':_0x380130},_0x12fff6['timers'][_0x18d23c][_0xe7fb('0x25')],_0x18d23c)[_0xe7fb('0x1e')](function(_0xd3fffe){logger[_0xe7fb('0x1f')](_0xe7fb('0x2a'),_0x559129,_0x380130,_0xd3fffe);})[_0xe7fb('0x2b')](function(_0x1d57a7){logger[_0xe7fb('0x2c')]('[%s][UPDATE][ERRORS:%s]',_0x559129,_0x1d57a7);});delete _0x12fff6[_0xe7fb('0x8')][_0x18d23c];};});}else{logger[_0xe7fb('0x1f')](_0xe7fb('0x2d'),_0x559129,_0x18d23c,_0x562262);}});}})['catch'](function(_0x517d70){logger[_0xe7fb('0x2c')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x559129,_0x12fff6[_0xe7fb('0x6')][_0x562262][_0xe7fb('0x23')],_0x18d23c,_0x562262);})[_0xe7fb('0x2e')](function(){delete _0x12fff6[_0xe7fb('0x9')][_0x559129];});}catch(_0x556368){logger[_0xe7fb('0x2c')](_0xe7fb('0x2f'),_0x556368[_0xe7fb('0x30')]);}};Acw[_0xe7fb('0x31')][_0xe7fb('0x22')]=function(_0x480819){try{var _0x256694=this;if(_0x256694[_0xe7fb('0x8')][_0x480819]){var _0x209eaa=_0x256694[_0xe7fb('0x8')][_0x480819][_0xe7fb('0x25')];var _0x25e925=_0x256694[_0xe7fb('0x8')][_0x480819][_0xe7fb('0x26')];var _0x389903=_0x256694['voiceQueues'][_0x25e925][_0xe7fb('0x23')];logger[_0xe7fb('0x1f')](_0xe7fb('0x32'),_0x480819);RpcUser['saveUnpause'](this[_0xe7fb('0x7')][_0x480819]);RpcVoiceAgentReport[_0xe7fb('0x29')]({'acwtime':_0x389903,'agentacw':!![]},_0x209eaa,_0x480819)[_0xe7fb('0x1e')](function(_0x1530b1){logger[_0xe7fb('0x1f')](_0xe7fb('0x2a'),_0x209eaa,_0x389903,_0x1530b1);})[_0xe7fb('0x2b')](function(_0xc4e271){logger[_0xe7fb('0x2c')](_0xe7fb('0x33'),_0x209eaa,_0xc4e271);});}else{logger[_0xe7fb('0x2c')](_0xe7fb('0x34'),_0x480819);if(_0x256694[_0xe7fb('0x8')]){logger[_0xe7fb('0x1f')](_0xe7fb('0x35'),JSON[_0xe7fb('0x36')](_0x256694[_0xe7fb('0x8')]));}}}catch(_0x15aad5){logger[_0xe7fb('0x2c')]('[ACW][STOP]\x20%s',_0x15aad5[_0xe7fb('0x30')]);}};Acw[_0xe7fb('0x31')][_0xe7fb('0xa')]=function(_0x444f98){try{if(this['voiceQueues'][_0x444f98[_0xe7fb('0x26')]]&&this[_0xe7fb('0x6')][_0x444f98[_0xe7fb('0x26')]][_0xe7fb('0x3')]){if(this['agents'][_0x444f98[_0xe7fb('0x1b')]]){this[_0xe7fb('0x9')][_0x444f98[_0xe7fb('0x25')]]={'queue':_0x444f98[_0xe7fb('0x26')],'interface':_0x444f98[_0xe7fb('0x1b')]};}}}catch(_0xb729fc){logger['error'](_0xe7fb('0x37'),_0xb729fc[_0xe7fb('0x30')]);}};Acw[_0xe7fb('0x31')]['syncAgentConnectPreview']=function(_0x36a341){try{if(this[_0xe7fb('0x6')][_0x36a341['queue']]&&this['voiceQueues'][_0x36a341['queue']]['acw']){if(this['agents'][_0x36a341[_0xe7fb('0x1b')]]){this[_0xe7fb('0x9')][_0x36a341[_0xe7fb('0x25')]]={'queue':_0x36a341['queue'],'interface':_0x36a341[_0xe7fb('0x1b')]};}}}catch(_0x58d743){logger[_0xe7fb('0x2c')](_0xe7fb('0x38'),_0x58d743['message']);}};Acw[_0xe7fb('0x31')][_0xe7fb('0xd')]=function(_0x240efa){try{if(this[_0xe7fb('0x9')][_0x240efa['uniqueid']]&&_[_0xe7fb('0x39')](this[_0xe7fb('0x9')][_0x240efa[_0xe7fb('0x25')]]['attended'])){logger[_0xe7fb('0x1f')](_0xe7fb('0x3a'),_0x240efa[_0xe7fb('0x25')]);this[_0xe7fb('0x1a')](_0x240efa[_0xe7fb('0x25')]);}else if(this['channels'][_0x240efa[_0xe7fb('0x3b')]]&&_['isUndefined'](this[_0xe7fb('0x9')][_0x240efa[_0xe7fb('0x3b')]][_0xe7fb('0x3c')])){logger[_0xe7fb('0x1f')](_0xe7fb('0x3d'),_0x240efa['linkedid']);this[_0xe7fb('0x1a')](_0x240efa['linkedid']);}}catch(_0x511759){logger[_0xe7fb('0x2c')](_0xe7fb('0x3e'),_0x511759[_0xe7fb('0x30')]);}};Acw['prototype'][_0xe7fb('0xe')]=function(_0x4cefe7){try{if(this['channels'][_0x4cefe7['uniqueid']]&&this[_0xe7fb('0x9')][_0x4cefe7[_0xe7fb('0x25')]][_0xe7fb('0x3c')]){logger[_0xe7fb('0x1f')](_0xe7fb('0x3f'),_0x4cefe7[_0xe7fb('0x25')]);this[_0xe7fb('0x1a')](_0x4cefe7[_0xe7fb('0x25')]);}else if(this['channels'][_0x4cefe7[_0xe7fb('0x3b')]]&&this['channels'][_0x4cefe7[_0xe7fb('0x3b')]][_0xe7fb('0x3c')]){logger['info'](_0xe7fb('0x40'),_0x4cefe7['linkedid']);this[_0xe7fb('0x1a')](_0x4cefe7['linkedid']);}}catch(_0x68e723){logger['error'](_0xe7fb('0x41'),_0x68e723['message']);}};Acw[_0xe7fb('0x31')][_0xe7fb('0x12')]=function(_0x41fcfb){try{if(!_[_0xe7fb('0x42')](this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x43')]])){this[_0xe7fb('0x1a')](_0x41fcfb['transfereeuniqueid']);if(this['channels'][_0x41fcfb[_0xe7fb('0x44')]]){this['channels'][_0x41fcfb['secondtransfereruniqueid']]['attended']=!![];this['channels'][_0x41fcfb['transfertargetuniqueid']]=this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x44')]];delete this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x44')]];}}else if(!_['isNil'](this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x45')]])){this[_0xe7fb('0x1a')](_0x41fcfb['transfertargetuniqueid']);if(this['channels'][_0x41fcfb[_0xe7fb('0x46')]]){this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x46')]]['attended']=!![];this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x43')]]=this[_0xe7fb('0x9')][_0x41fcfb[_0xe7fb('0x46')]];delete this['channels'][_0x41fcfb['origtransfereruniqueid']];}}}catch(_0x2f620d){logger[_0xe7fb('0x2c')](_0xe7fb('0x47'),_0x2f620d[_0xe7fb('0x30')]);}};Acw[_0xe7fb('0x31')]['syncBlindTransfer']=function(_0x9c45a){try{if(this[_0xe7fb('0x9')][_0x9c45a[_0xe7fb('0x48')]]){logger['info']('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0xe7fb('0x36')](_0x9c45a[_0xe7fb('0x48')]));this[_0xe7fb('0x1a')](_0x9c45a[_0xe7fb('0x48')]);}else if(this[_0xe7fb('0x9')][_0x9c45a[_0xe7fb('0x49')]]){logger['info'](_0xe7fb('0x4a'),JSON[_0xe7fb('0x36')](_0x9c45a[_0xe7fb('0x49')]));this[_0xe7fb('0x1a')](_0x9c45a[_0xe7fb('0x49')]);}}catch(_0x1e0d69){logger['error'](_0xe7fb('0x4b'),_0x1e0d69['message']);}};Acw[_0xe7fb('0x31')][_0xe7fb('0x10')]=function(_0x116c7e){try{if(this[_0xe7fb('0x6')][_0x116c7e['queue']]&&this['voiceQueues'][_0x116c7e[_0xe7fb('0x26')]][_0xe7fb('0x4c')]===_0xe7fb('0x4d')){if(this[_0xe7fb('0x7')][_0x116c7e[_0xe7fb('0x1b')]]){logger['info'](_0xe7fb('0x4e'),_0x116c7e['uniqueid'],_0x116c7e[_0xe7fb('0x1b')],_0x116c7e['queue']);return RpcUser['savePause'](this[_0xe7fb('0x7')][_0x116c7e[_0xe7fb('0x1b')]],_0xe7fb('0x4f'),_0x116c7e['uniqueid']);}}}catch(_0x475716){logger[_0xe7fb('0x2c')](_0xe7fb('0x50'),_0x475716[_0xe7fb('0x30')]);}};module[_0xe7fb('0x51')]=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6684=['catch','log','asterisk-manager','bluebird','moment','util','lodash','../../config/logger','asterisk','port','password','keepConnected','Action','action','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','username','inspect','error','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','sipshowregistry','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary','queuesummary','actionCoreShowChannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','resolve','then','actionDeviceStateList'];(function(_0x1af1e1,_0x37bc24){var _0x5f3450=function(_0x1dc6fd){while(--_0x1dc6fd){_0x1af1e1['push'](_0x1af1e1['shift']());}};_0x5f3450(++_0x37bc24);}(_0x6684,0x10c));var _0x4668=function(_0x260f28,_0x4e9b30){_0x260f28=_0x260f28-0x0;var _0x3aefcc=_0x6684[_0x260f28];return _0x3aefcc;};'use strict';var Manager=require(_0x4668('0x0'));var BPromise=require(_0x4668('0x1'));var moment=require(_0x4668('0x2'));var util=require(_0x4668('0x3'));var _=require(_0x4668('0x4'));var logger=require(_0x4668('0x5'))('ami');var config=require('../../config/environment');var ami=new Manager(config[_0x4668('0x6')][_0x4668('0x7')],config[_0x4668('0x6')]['ip'],config['asterisk']['username'],config['asterisk'][_0x4668('0x8')],!![]);ami[_0x4668('0x9')]();ami[_0x4668('0xa')]=BPromise['promisify'](ami[_0x4668('0xb')]);function error(_0x554123){logger['error'](util[_0x4668('0xc')](_0x4668('0xd'),config[_0x4668('0x6')][_0x4668('0xe')],config[_0x4668('0x6')]['ip'],config[_0x4668('0x6')][_0x4668('0x7')],util[_0x4668('0xf')](_0x554123,![],null)));}function close(){logger[_0x4668('0x10')](util[_0x4668('0xc')](_0x4668('0x11'),config[_0x4668('0x6')][_0x4668('0xe')],config[_0x4668('0x6')]['ip'],config[_0x4668('0x6')][_0x4668('0x7')]));}ami[_0x4668('0x12')]=function(){return function(){return ami[_0x4668('0xa')]({'action':_0x4668('0x13')});};};ami['actionDeviceStateList']=function(){return function(){return ami['Action']({'action':_0x4668('0x14')});};};ami[_0x4668('0x15')]=function(){return function(){return ami[_0x4668('0xa')]({'action':_0x4668('0x16')});};};ami[_0x4668('0x17')]=function(){return function(){return ami[_0x4668('0xa')]({'action':_0x4668('0x18')});};};ami[_0x4668('0x19')]=function(){return function(){return ami[_0x4668('0xa')]({'action':'coreshowchannels'});};};function connect(_0x599ca1){logger[_0x4668('0x1a')](util[_0x4668('0xc')](_0x4668('0x1b'),config['asterisk']['username'],config[_0x4668('0x6')]['ip'],config['asterisk']['port']));ami[_0x4668('0x1c')]('error',error);ami[_0x4668('0x1c')](_0x4668('0x1d'),close);}ami['on'](_0x4668('0x1e'),connect);ami['on'](_0x4668('0x1f'),function(_0x25b3db){logger['info'](util[_0x4668('0xc')](_0x4668('0x20'),config[_0x4668('0x6')][_0x4668('0xe')],config[_0x4668('0x6')]['ip'],config[_0x4668('0x6')][_0x4668('0x7')],util[_0x4668('0xf')](_0x25b3db,![],null)));});ami['on']('fullybooted',function(_0x2c2b9f){logger[_0x4668('0x1a')](util['format']('Fullybooted\x20\x22%s\x22\x20to\x20%s:%s',config[_0x4668('0x6')][_0x4668('0xe')],config[_0x4668('0x6')]['ip'],config[_0x4668('0x6')]['port']));return BPromise[_0x4668('0x21')]()['then'](ami[_0x4668('0x12')]())[_0x4668('0x22')](ami[_0x4668('0x23')]())[_0x4668('0x22')](ami[_0x4668('0x15')]())[_0x4668('0x22')](ami[_0x4668('0x17')]())[_0x4668('0x22')](ami[_0x4668('0x19')]())[_0x4668('0x24')](function(_0x370dce){console[_0x4668('0x25')](_0x370dce);});});ami[_0x4668('0x1c')]('error',error);ami[_0x4668('0x1c')](_0x4668('0x1d'),close);module['exports']=ami;
\ No newline at end of file
+var _0x1fba=['moment','lodash','../../config/logger','../../config/environment','asterisk','username','password','keepConnected','Action','promisify','action','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','error','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','port','actionSipShowRegistry','sipshowregistry','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary','queuesummary','actionCoreShowChannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','log','exports','bluebird'];(function(_0x4f01a9,_0x4a0d3a){var _0x5f5ade=function(_0xbd7ca6){while(--_0xbd7ca6){_0x4f01a9['push'](_0x4f01a9['shift']());}};_0x5f5ade(++_0x4a0d3a);}(_0x1fba,0x71));var _0xa1fb=function(_0x1fafa5,_0x1aa281){_0x1fafa5=_0x1fafa5-0x0;var _0xcf08c9=_0x1fba[_0x1fafa5];return _0xcf08c9;};'use strict';var Manager=require('asterisk-manager');var BPromise=require(_0xa1fb('0x0'));var moment=require(_0xa1fb('0x1'));var util=require('util');var _=require(_0xa1fb('0x2'));var logger=require(_0xa1fb('0x3'))('ami');var config=require(_0xa1fb('0x4'));var ami=new Manager(config[_0xa1fb('0x5')]['port'],config['asterisk']['ip'],config[_0xa1fb('0x5')][_0xa1fb('0x6')],config[_0xa1fb('0x5')][_0xa1fb('0x7')],!![]);ami[_0xa1fb('0x8')]();ami[_0xa1fb('0x9')]=BPromise[_0xa1fb('0xa')](ami[_0xa1fb('0xb')]);function error(_0x46ecb4){logger['error'](util[_0xa1fb('0xc')](_0xa1fb('0xd'),config[_0xa1fb('0x5')]['username'],config['asterisk']['ip'],config[_0xa1fb('0x5')]['port'],util[_0xa1fb('0xe')](_0x46ecb4,![],null)));}function close(){logger[_0xa1fb('0xf')](util['format'](_0xa1fb('0x10'),config['asterisk'][_0xa1fb('0x6')],config[_0xa1fb('0x5')]['ip'],config[_0xa1fb('0x5')][_0xa1fb('0x11')]));}ami[_0xa1fb('0x12')]=function(){return function(){return ami[_0xa1fb('0x9')]({'action':_0xa1fb('0x13')});};};ami['actionDeviceStateList']=function(){return function(){return ami['Action']({'action':_0xa1fb('0x14')});};};ami[_0xa1fb('0x15')]=function(){return function(){return ami[_0xa1fb('0x9')]({'action':_0xa1fb('0x16')});};};ami[_0xa1fb('0x17')]=function(){return function(){return ami['Action']({'action':_0xa1fb('0x18')});};};ami[_0xa1fb('0x19')]=function(){return function(){return ami['Action']({'action':'coreshowchannels'});};};function connect(_0xcc4ec5){logger[_0xa1fb('0x1a')](util[_0xa1fb('0xc')](_0xa1fb('0x1b'),config[_0xa1fb('0x5')]['username'],config[_0xa1fb('0x5')]['ip'],config[_0xa1fb('0x5')]['port']));ami[_0xa1fb('0x1c')](_0xa1fb('0xf'),error);ami[_0xa1fb('0x1c')](_0xa1fb('0x1d'),close);}ami['on'](_0xa1fb('0x1e'),connect);ami['on'](_0xa1fb('0x1f'),function(_0x3b8f68){logger[_0xa1fb('0x1a')](util['format']('Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s',config[_0xa1fb('0x5')][_0xa1fb('0x6')],config[_0xa1fb('0x5')]['ip'],config[_0xa1fb('0x5')][_0xa1fb('0x11')],util['inspect'](_0x3b8f68,![],null)));});ami['on'](_0xa1fb('0x20'),function(_0x407438){logger['info'](util[_0xa1fb('0xc')](_0xa1fb('0x21'),config[_0xa1fb('0x5')][_0xa1fb('0x6')],config[_0xa1fb('0x5')]['ip'],config[_0xa1fb('0x5')]['port']));return BPromise[_0xa1fb('0x22')]()[_0xa1fb('0x23')](ami[_0xa1fb('0x12')]())[_0xa1fb('0x23')](ami['actionDeviceStateList']())['then'](ami[_0xa1fb('0x15')]())[_0xa1fb('0x23')](ami[_0xa1fb('0x17')]())[_0xa1fb('0x23')](ami[_0xa1fb('0x19')]())['catch'](function(_0x378678){console[_0xa1fb('0x24')](_0x378678);});});ami[_0xa1fb('0x1c')](_0xa1fb('0xf'),error);ami[_0xa1fb('0x1c')]('close',close);module[_0xa1fb('0x25')]=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x993e=['request','debug','rpc','memberReport','error','result','catch','exports','jayson/promise','bluebird','../../config/logger','ami','client','http','Request'];(function(_0x495744,_0x390f00){var _0x399399=function(_0x59dc06){while(--_0x59dc06){_0x495744['push'](_0x495744['shift']());}};_0x399399(++_0x390f00);}(_0x993e,0x107));var _0xe993=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x993e[_0x20a584];return _0x4b41a8;};'use strict';var jayson=require(_0xe993('0x0'));var BPromise=require(_0xe993('0x1'));var logger=require(_0xe993('0x2'))(_0xe993('0x3'));var client=jayson[_0xe993('0x4')][_0xe993('0x5')]({'port':0x2329});client[_0xe993('0x6')]=function(_0x262d57,_0x4c13bc){return new BPromise(function(_0x1d8c6b,_0xbfe2f6){return client[_0xe993('0x7')](_0x262d57,_0x4c13bc)['then'](function(_0x3d73e8){logger[_0xe993('0x8')](_0xe993('0x9'),_0xe993('0xa'),_0x262d57,_0x4c13bc,_0x3d73e8);if(_0x3d73e8[_0xe993('0xb')]){logger[_0xe993('0xb')]('rpc',_0xe993('0xa'),_0x262d57,_0x3d73e8[_0xe993('0xb')]['message'],_0x4c13bc);return _0xbfe2f6(_0x3d73e8[_0xe993('0xb')]['message']);}else{return _0x1d8c6b(_0x3d73e8[_0xe993('0xc')]);}})[_0xe993('0xd')](function(_0x16c310){logger['error'](_0xe993('0x9'),_0xe993('0xa'),_0x262d57,_0x16c310,_0x4c13bc);return _0xbfe2f6(_0x16c310);});});};module[_0xe993('0xe')]=client;
\ No newline at end of file
+var _0x8b7a=['error','message','catch','exports','bluebird','../../config/logger','request','then','rpc','memberReport'];(function(_0x5f0cdb,_0x39963b){var _0x1a4655=function(_0x57aade){while(--_0x57aade){_0x5f0cdb['push'](_0x5f0cdb['shift']());}};_0x1a4655(++_0x39963b);}(_0x8b7a,0x11c));var _0xa8b7=function(_0x355de4,_0x11056f){_0x355de4=_0x355de4-0x0;var _0x5265eb=_0x8b7a[_0x355de4];return _0x5265eb;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xa8b7('0x0'));var logger=require(_0xa8b7('0x1'))('ami');var client=jayson['client']['http']({'port':0x2329});client['Request']=function(_0x325c6f,_0x3900a2){return new BPromise(function(_0x4391af,_0x514a1b){return client[_0xa8b7('0x2')](_0x325c6f,_0x3900a2)[_0xa8b7('0x3')](function(_0x357e46){logger['debug'](_0xa8b7('0x4'),_0xa8b7('0x5'),_0x325c6f,_0x3900a2,_0x357e46);if(_0x357e46[_0xa8b7('0x6')]){logger['error'](_0xa8b7('0x4'),_0xa8b7('0x5'),_0x325c6f,_0x357e46[_0xa8b7('0x6')][_0xa8b7('0x7')],_0x3900a2);return _0x514a1b(_0x357e46[_0xa8b7('0x6')][_0xa8b7('0x7')]);}else{return _0x4391af(_0x357e46['result']);}})[_0xa8b7('0x8')](function(_0xb04480){logger['error'](_0xa8b7('0x4'),_0xa8b7('0x5'),_0x325c6f,_0xb04480,_0x3900a2);return _0x514a1b(_0xb04480);});});};module[_0xa8b7('0x9')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18ab=['ContactFirstName','starttime','format','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','getCaller','\x22%s\x22\x20<%s>','dialCutDigit','substring','prototype','getQueue','exports','util','lodash','moment','isNil','string','voiceQueue','uniqueid','Contact','firstName','number','queue','name','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','ContactId','ListId','UserId','VoiceQueueId','idHopper'];(function(_0x23bee4,_0x389242){var _0x1821e9=function(_0x6913eb){while(--_0x6913eb){_0x23bee4['push'](_0x23bee4['shift']());}};_0x1821e9(++_0x389242);}(_0x18ab,0xd2));var _0xb18a=function(_0x3b564a,_0x1aebcf){_0x3b564a=_0x3b564a-0x0;var _0x45d977=_0x18ab[_0x3b564a];return _0x45d977;};'use strict';var util=require(_0xb18a('0x0'));var _=require(_0xb18a('0x1'));var moment=require(_0xb18a('0x2'));function checkNameSurname(_0x361ef3,_0x3a476a,_0x131b9d){var _0x5b1eda='';if(!_[_0xb18a('0x3')](_0x3a476a)&&_0xb18a('0x4')===typeof _0x3a476a){_0x5b1eda+=_0x3a476a;}if(!_[_0xb18a('0x3')](_0x131b9d)&&_0xb18a('0x4')===typeof _0x131b9d){_0x5b1eda+='\x20'+_0x131b9d;}if(_0x5b1eda!==''){return _0x5b1eda;}return _0x361ef3;}function Action(_0x48fe50,_0x1e5da1,_0x4cccff){this[_0xb18a('0x5')]=_0x48fe50;this[_0xb18a('0x6')]=_0x4cccff||undefined;this['name']=checkNameSurname(_0x1e5da1[_0xb18a('0x7')]['phone'],_0x1e5da1[_0xb18a('0x7')][_0xb18a('0x8')],_0x1e5da1[_0xb18a('0x7')]['lastName']);this[_0xb18a('0x9')]=_0x1e5da1[_0xb18a('0x7')]['phone'];this[_0xb18a('0xa')]=_0x48fe50[_0xb18a('0xb')];this['active']=_0x1e5da1[_0xb18a('0xc')]||![];this[_0xb18a('0xd')]=_0x48fe50[_0xb18a('0xd')];this[_0xb18a('0xe')]=_0x48fe50[_0xb18a('0xe')]||0x3;this[_0xb18a('0xf')]=_0x1e5da1['scheduledat'];this[_0xb18a('0x10')]=_0x1e5da1['countbusyretry'];this[_0xb18a('0x11')]=_0x1e5da1['countcongestionretry'];this[_0xb18a('0x12')]=_0x1e5da1[_0xb18a('0x12')];this[_0xb18a('0x13')]=_0x1e5da1['ContactId'];this[_0xb18a('0x14')]=_0x1e5da1[_0xb18a('0x14')];this[_0xb18a('0x15')]=_0x1e5da1[_0xb18a('0x15')];this[_0xb18a('0x16')]=_0x1e5da1[_0xb18a('0x16')];this['CampaignId']=_0x1e5da1['CampaignId'];this[_0xb18a('0x17')]=_0x1e5da1['id'];this[_0xb18a('0x18')]=_0x1e5da1['Contact'][_0xb18a('0x8')]||'';this[_0xb18a('0x19')]=moment()[_0xb18a('0x1a')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xb18a('0x1b')]=_0x1e5da1[_0xb18a('0x1b')];this[_0xb18a('0x1c')]=_0x1e5da1[_0xb18a('0x1c')];this[_0xb18a('0x1d')]=_0x1e5da1[_0xb18a('0x1d')];this[_0xb18a('0x1e')]=_0x1e5da1[_0xb18a('0x1e')];this[_0xb18a('0x1f')]='';this['originatecalleridname']='';}Action['prototype'][_0xb18a('0x20')]=function(){return util[_0xb18a('0x1a')](_0xb18a('0x21'),this[_0xb18a('0xb')],this['voiceQueue'][_0xb18a('0x22')]>0x0?this['number'][_0xb18a('0x23')](this[_0xb18a('0x5')][_0xb18a('0x22')]):this[_0xb18a('0x9')]);};Action[_0xb18a('0x24')][_0xb18a('0x25')]=function(){return this[_0xb18a('0xa')];};module[_0xb18a('0x26')]=Action;
\ No newline at end of file
+var _0xacf8=['UserId','CampaignId','idHopper','ContactFirstName','callback','callbackat','recallme','originatecalleridname','getCaller','format','\x22%s\x22\x20<%s>','number','substring','dialCutDigit','exports','util','string','isNil','voiceQueue','uniqueid','Contact','phone','firstName','lastName','queue','name','active','type','dialQueueTimeout','countcongestionretry','ContactId','ListId'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xacf8,0xef));var _0x8acf=function(_0xbb66a,_0x28bf42){_0xbb66a=_0xbb66a-0x0;var _0x5b69a5=_0xacf8[_0xbb66a];return _0x5b69a5;};'use strict';var util=require(_0x8acf('0x0'));var _=require('lodash');var moment=require('moment');function checkNameSurname(_0x541c45,_0x5e20eb,_0x2c7ffe){var _0x55c70a='';if(!_['isNil'](_0x5e20eb)&&_0x8acf('0x1')===typeof _0x5e20eb){_0x55c70a+=_0x5e20eb;}if(!_[_0x8acf('0x2')](_0x2c7ffe)&&_0x8acf('0x1')===typeof _0x2c7ffe){_0x55c70a+='\x20'+_0x2c7ffe;}if(_0x55c70a!==''){return _0x55c70a;}return _0x541c45;}function Action(_0x2005cf,_0x943755,_0x4ce6a5){this[_0x8acf('0x3')]=_0x2005cf;this[_0x8acf('0x4')]=_0x4ce6a5||undefined;this['name']=checkNameSurname(_0x943755[_0x8acf('0x5')][_0x8acf('0x6')],_0x943755[_0x8acf('0x5')][_0x8acf('0x7')],_0x943755[_0x8acf('0x5')][_0x8acf('0x8')]);this['number']=_0x943755['Contact'][_0x8acf('0x6')];this[_0x8acf('0x9')]=_0x2005cf[_0x8acf('0xa')];this[_0x8acf('0xb')]=_0x943755[_0x8acf('0xb')]||![];this[_0x8acf('0xc')]=_0x2005cf[_0x8acf('0xc')];this[_0x8acf('0xd')]=_0x2005cf[_0x8acf('0xd')]||0x3;this['scheduledat']=_0x943755['scheduledat'];this['countbusyretry']=_0x943755['countbusyretry'];this[_0x8acf('0xe')]=_0x943755[_0x8acf('0xe')];this['countnoanswerretry']=_0x943755['countnoanswerretry'];this[_0x8acf('0xf')]=_0x943755[_0x8acf('0xf')];this[_0x8acf('0x10')]=_0x943755[_0x8acf('0x10')];this[_0x8acf('0x11')]=_0x943755[_0x8acf('0x11')];this['VoiceQueueId']=_0x943755['VoiceQueueId'];this[_0x8acf('0x12')]=_0x943755['CampaignId'];this[_0x8acf('0x13')]=_0x943755['id'];this[_0x8acf('0x14')]=_0x943755[_0x8acf('0x5')][_0x8acf('0x7')]||'';this['starttime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x8acf('0x15')]=_0x943755['callback'];this['callbackuniqueid']=_0x943755['callbackuniqueid'];this[_0x8acf('0x16')]=_0x943755['callbackat'];this[_0x8acf('0x17')]=_0x943755['recallme'];this['originatecalleridnum']='';this[_0x8acf('0x18')]='';}Action['prototype'][_0x8acf('0x19')]=function(){return util[_0x8acf('0x1a')](_0x8acf('0x1b'),this[_0x8acf('0xa')],this['voiceQueue']['dialCutDigit']>0x0?this[_0x8acf('0x1c')][_0x8acf('0x1d')](this[_0x8acf('0x3')][_0x8acf('0x1e')]):this['number']);};Action['prototype']['getQueue']=function(){return this[_0x8acf('0x9')];};module[_0x8acf('0x1f')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd482=['calleridnum','number','starttime','responsetime','answertime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','moment','milliseconds','diff','state','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','uniqueid','calleridname'];(function(_0x160254,_0x20081d){var _0x1b1e8a=function(_0x46e8d1){while(--_0x46e8d1){_0x160254['push'](_0x160254['shift']());}};_0x1b1e8a(++_0x20081d);}(_0xd482,0x160));var _0x2d48=function(_0x4325fa,_0x29e636){_0x4325fa=_0x4325fa-0x0;var _0x25dab3=_0xd482[_0x4325fa];return _0x25dab3;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0x2d48('0x0'));function getSeconds(_0x9c3549,_0x18621a){var _0x32513c=moment(_0x9c3549)['milliseconds'](0x0);var _0x10e7c7=moment(_0x18621a)[_0x2d48('0x1')](0x0);return _0x32513c[_0x2d48('0x2')](_0x10e7c7,'seconds');}function AgentComplete(_0x3e83c1,_0x1e2499){this[_0x2d48('0x3')]=0x4;this[_0x2d48('0x4')]=_0x2d48('0x5');this[_0x2d48('0x6')]=_0x3e83c1[_0x2d48('0x6')];this[_0x2d48('0x7')]=_0x3e83c1[_0x2d48('0x7')];this[_0x2d48('0x8')]=_0x3e83c1[_0x2d48('0x7')]===_0x2d48('0x9')?_0x2d48('0xa'):_0x3e83c1[_0x2d48('0x7')];this[_0x2d48('0xb')]=_0x3e83c1[_0x2d48('0xb')];this[_0x2d48('0xc')]=_0x3e83c1['countcongestionretry'];this[_0x2d48('0xd')]=_0x3e83c1[_0x2d48('0xd')];this[_0x2d48('0xe')]=_0x3e83c1[_0x2d48('0xb')]+_0x3e83c1[_0x2d48('0xc')]+_0x3e83c1[_0x2d48('0xd')];this[_0x2d48('0xf')]=_0x1e2499[_0x2d48('0xf')];this[_0x2d48('0x10')]=_0x3e83c1['name'];this[_0x2d48('0x11')]=_0x3e83c1[_0x2d48('0x12')];this[_0x2d48('0x13')]=_0x3e83c1[_0x2d48('0x13')];this[_0x2d48('0x14')]=_0x3e83c1[_0x2d48('0x14')];this[_0x2d48('0x15')]=_0x3e83c1[_0x2d48('0x15')];this[_0x2d48('0x16')]=moment()[_0x2d48('0x17')](_0x2d48('0x18'));this[_0x2d48('0x19')]=getSeconds(_0x3e83c1['responsetime'],_0x3e83c1[_0x2d48('0x13')]);this[_0x2d48('0x1a')]=getSeconds(_0x3e83c1[_0x2d48('0x15')],_0x3e83c1[_0x2d48('0x14')]);this[_0x2d48('0x1b')]=getSeconds(this[_0x2d48('0x16')],_0x3e83c1[_0x2d48('0x15')]);this[_0x2d48('0xa')]=_0x1e2499[_0x2d48('0xa')];this[_0x2d48('0x1c')]=_0x1e2499['membername'];this[_0x2d48('0x1d')]=_0x1e2499[_0x2d48('0x1d')];this['callback']=_0x3e83c1[_0x2d48('0x1e')];this[_0x2d48('0x1f')]=_0x3e83c1[_0x2d48('0x1f')];this[_0x2d48('0x20')]=_0x3e83c1['callbackat'];this[_0x2d48('0x21')]=_0x3e83c1[_0x2d48('0x21')];this[_0x2d48('0x22')]=_0x3e83c1['ContactId'];this[_0x2d48('0x23')]=_0x3e83c1['ListId'];this['UserId']=_0x3e83c1[_0x2d48('0x24')];this[_0x2d48('0x25')]=_0x3e83c1[_0x2d48('0x25')];this[_0x2d48('0x26')]=_0x3e83c1['CampaignId'];this[_0x2d48('0x27')]=_0x3e83c1['originatecalleridnum']||'';this[_0x2d48('0x28')]=_0x3e83c1[_0x2d48('0x28')]||'';}module['exports']=AgentComplete;
\ No newline at end of file
+var _0xe74f=['calleridname','name','calleridnum','starttime','responsetime','answertime','format','YYYY-MM-DD\x20HH:mm:ss','holdtime','talktime','endtime','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff','seconds','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','uniqueid'];(function(_0x456fb1,_0x859a1d){var _0x4083d6=function(_0xe1d0f2){while(--_0xe1d0f2){_0x456fb1['push'](_0x456fb1['shift']());}};_0x4083d6(++_0x859a1d);}(_0xe74f,0x1bc));var _0xfe74=function(_0x1bc762,_0x523eb3){_0x1bc762=_0x1bc762-0x0;var _0x40f70c=_0xe74f[_0x1bc762];return _0x40f70c;};'use strict';var util=require(_0xfe74('0x0'));var _=require(_0xfe74('0x1'));var moment=require(_0xfe74('0x2'));function getSeconds(_0x21dc50,_0x17327e){var _0x45f4c4=moment(_0x21dc50)[_0xfe74('0x3')](0x0);var _0x22b292=moment(_0x17327e)[_0xfe74('0x3')](0x0);return _0x45f4c4[_0xfe74('0x4')](_0x22b292,_0xfe74('0x5'));}function AgentComplete(_0x514792,_0x575ecb){this['state']=0x4;this[_0xfe74('0x6')]=_0xfe74('0x7');this['scheduledat']=_0x514792[_0xfe74('0x8')];this[_0xfe74('0x9')]=_0x514792[_0xfe74('0x9')];this[_0xfe74('0xa')]=_0x514792[_0xfe74('0x9')]===_0xfe74('0xb')?_0xfe74('0xc'):_0x514792[_0xfe74('0x9')];this['countbusyretry']=_0x514792[_0xfe74('0xd')];this[_0xfe74('0xe')]=_0x514792[_0xfe74('0xe')];this[_0xfe74('0xf')]=_0x514792[_0xfe74('0xf')];this[_0xfe74('0x10')]=_0x514792[_0xfe74('0xd')]+_0x514792[_0xfe74('0xe')]+_0x514792['countnoanswerretry'];this[_0xfe74('0x11')]=_0x575ecb['uniqueid'];this[_0xfe74('0x12')]=_0x514792[_0xfe74('0x13')];this[_0xfe74('0x14')]=_0x514792['number'];this[_0xfe74('0x15')]=_0x514792[_0xfe74('0x15')];this[_0xfe74('0x16')]=_0x514792[_0xfe74('0x16')];this[_0xfe74('0x17')]=_0x514792['answertime'];this['endtime']=moment()[_0xfe74('0x18')](_0xfe74('0x19'));this['ringtime']=getSeconds(_0x514792[_0xfe74('0x16')],_0x514792[_0xfe74('0x15')]);this[_0xfe74('0x1a')]=getSeconds(_0x514792[_0xfe74('0x17')],_0x514792[_0xfe74('0x16')]);this[_0xfe74('0x1b')]=getSeconds(this[_0xfe74('0x1c')],_0x514792[_0xfe74('0x17')]);this[_0xfe74('0xc')]=_0x575ecb['queue'];this['membername']=_0x575ecb['membername'];this[_0xfe74('0x1d')]=_0x575ecb['reason'];this[_0xfe74('0x1e')]=_0x514792['callback'];this[_0xfe74('0x1f')]=_0x514792[_0xfe74('0x1f')];this[_0xfe74('0x20')]=_0x514792[_0xfe74('0x20')];this[_0xfe74('0x21')]=_0x514792[_0xfe74('0x21')];this[_0xfe74('0x22')]=_0x514792[_0xfe74('0x22')];this[_0xfe74('0x23')]=_0x514792[_0xfe74('0x23')];this[_0xfe74('0x24')]=_0x514792['UserId'];this[_0xfe74('0x25')]=_0x514792[_0xfe74('0x25')];this['CampaignId']=_0x514792[_0xfe74('0x26')];this[_0xfe74('0x27')]=_0x514792[_0xfe74('0x27')]||'';this[_0xfe74('0x28')]=_0x514792[_0xfe74('0x28')]||'';}module[_0xfe74('0x29')]=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f96=['lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util'];(function(_0x28d18d,_0x55896b){var _0x470640=function(_0x57e78b){while(--_0x57e78b){_0x28d18d['push'](_0x28d18d['shift']());}};_0x470640(++_0x55896b);}(_0x3f96,0x1d3));var _0x63f9=function(_0x14e55a,_0x1ef77a){_0x14e55a=_0x14e55a-0x0;var _0x1d10b3=_0x3f96[_0x14e55a];return _0x1d10b3;};'use strict';var util=require(_0x63f9('0x0'));var _=require(_0x63f9('0x1'));var moment=require(_0x63f9('0x2'));function getSeconds(_0x1feae5,_0x793bf7){var _0x4d159c=moment(_0x1feae5)[_0x63f9('0x3')](0x0);var _0x113895=moment(_0x793bf7)[_0x63f9('0x3')](0x0);return _0x4d159c[_0x63f9('0x4')](_0x113895,_0x63f9('0x5'));}function Final(_0x541f19){this[_0x63f9('0x6')]=_0x541f19[_0x63f9('0x6')];this[_0x63f9('0x7')]=_0x541f19[_0x63f9('0x7')];this['type']=_0x541f19[_0x63f9('0x8')];this[_0x63f9('0x9')]=_0x541f19[_0x63f9('0x8')]===_0x63f9('0xa')?_0x63f9('0xb'):_0x541f19[_0x63f9('0x8')];this[_0x63f9('0xc')]=_0x541f19[_0x63f9('0xc')];this['countcongestionretry']=_0x541f19[_0x63f9('0xd')];this[_0x63f9('0xe')]=_0x541f19['countnoanswerretry'];this[_0x63f9('0xf')]=_0x541f19[_0x63f9('0xc')]+_0x541f19[_0x63f9('0xd')]+_0x541f19['countnoanswerretry'];this[_0x63f9('0xb')]=_0x541f19[_0x63f9('0xb')];this[_0x63f9('0x10')]=_0x541f19[_0x63f9('0x10')];this[_0x63f9('0x11')]=_0x541f19[_0x63f9('0x11')];this[_0x63f9('0x12')]=_0x541f19['starttime'];this[_0x63f9('0x13')]=_0x541f19['responsetime'];this[_0x63f9('0x14')]=_0x541f19['responsetime'];this[_0x63f9('0x15')]=_0x541f19[_0x63f9('0x15')]||0x0;this[_0x63f9('0x16')]=_0x541f19[_0x63f9('0x16')]||0x0;this[_0x63f9('0x17')]=_0x541f19[_0x63f9('0x17')]||0x0;this[_0x63f9('0x18')]=_0x541f19['callback'];this[_0x63f9('0x19')]=_0x541f19[_0x63f9('0x19')];this[_0x63f9('0x1a')]=_0x541f19[_0x63f9('0x1a')];this[_0x63f9('0x1b')]=_0x541f19['recallme'];this[_0x63f9('0x1c')]=_0x541f19[_0x63f9('0x1c')];this[_0x63f9('0x1d')]=_0x541f19['ListId'];this[_0x63f9('0x1e')]=_0x541f19[_0x63f9('0x1e')];this[_0x63f9('0x1f')]=_0x541f19[_0x63f9('0x1f')];this[_0x63f9('0x20')]=_0x541f19['CampaignId'];this['originatecalleridnum']=_0x541f19[_0x63f9('0x21')]||'';this[_0x63f9('0x22')]=_0x541f19[_0x63f9('0x22')]||'';}module[_0x63f9('0x23')]=Final;
\ No newline at end of file
+var _0xb366=['moment','milliseconds','uniqueid','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','queue','calleridname','calleridnum','starttime','endtime','responsetime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xb366,0xa4));var _0x6b36=function(_0x4deff,_0x42c328){_0x4deff=_0x4deff-0x0;var _0x440123=_0xb366[_0x4deff];return _0x440123;};'use strict';var util=require(_0x6b36('0x0'));var _=require('lodash');var moment=require(_0x6b36('0x1'));function getSeconds(_0x7395b1,_0x5068fc){var _0x457b56=moment(_0x7395b1)[_0x6b36('0x2')](0x0);var _0x2cf84c=moment(_0x5068fc)['milliseconds'](0x0);return _0x457b56['diff'](_0x2cf84c,'seconds');}function Final(_0x3fa91b){this[_0x6b36('0x3')]=_0x3fa91b['uniqueid'];this[_0x6b36('0x4')]=_0x3fa91b['scheduledat'];this['type']=_0x3fa91b[_0x6b36('0x5')];this[_0x6b36('0x6')]=_0x3fa91b[_0x6b36('0x5')]===_0x6b36('0x7')?'queue':_0x3fa91b[_0x6b36('0x5')];this[_0x6b36('0x8')]=_0x3fa91b['countbusyretry'];this[_0x6b36('0x9')]=_0x3fa91b['countcongestionretry'];this[_0x6b36('0xa')]=_0x3fa91b[_0x6b36('0xa')];this[_0x6b36('0xb')]=_0x3fa91b[_0x6b36('0x8')]+_0x3fa91b[_0x6b36('0x9')]+_0x3fa91b[_0x6b36('0xa')];this['queue']=_0x3fa91b[_0x6b36('0xc')];this[_0x6b36('0xd')]=_0x3fa91b['calleridname'];this[_0x6b36('0xe')]=_0x3fa91b['calleridnum'];this[_0x6b36('0xf')]=_0x3fa91b['starttime'];this['responsetime']=_0x3fa91b['responsetime'];this[_0x6b36('0x10')]=_0x3fa91b[_0x6b36('0x11')];this[_0x6b36('0x12')]=_0x3fa91b['ringtime']||0x0;this[_0x6b36('0x13')]=_0x3fa91b['holdtime']||0x0;this[_0x6b36('0x14')]=_0x3fa91b[_0x6b36('0x14')]||0x0;this[_0x6b36('0x15')]=_0x3fa91b['callback'];this['callbackuniqueid']=_0x3fa91b[_0x6b36('0x16')];this['callbackat']=_0x3fa91b[_0x6b36('0x17')];this[_0x6b36('0x18')]=_0x3fa91b['recallme'];this[_0x6b36('0x19')]=_0x3fa91b['ContactId'];this[_0x6b36('0x1a')]=_0x3fa91b['ListId'];this[_0x6b36('0x1b')]=_0x3fa91b[_0x6b36('0x1b')];this[_0x6b36('0x1c')]=_0x3fa91b[_0x6b36('0x1c')];this[_0x6b36('0x1d')]=_0x3fa91b[_0x6b36('0x1d')];this[_0x6b36('0x1e')]=_0x3fa91b[_0x6b36('0x1e')]||'';this[_0x6b36('0x1f')]=_0x3fa91b[_0x6b36('0x1f')]||'';}module[_0x6b36('0x20')]=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['countglobal','countcongestionretry','countnoanswerretry','uniqueid','name','calleridnum','number','starttime','responsetime','endtime','YYYY-MM-DD\x20HH:mm:ss','talktime','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','VoiceQueueId','CampaignId','exports','util','lodash','moment','milliseconds','diff','seconds','state','statedesc','Answer','type','outbound','queue','countbusyretry'];(function(_0x173b35,_0x5830a){var _0x5d68fb=function(_0x3a0dab){while(--_0x3a0dab){_0x173b35['push'](_0x173b35['shift']());}};_0x5d68fb(++_0x5830a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0xa9e0[_0x220dbb];return _0x2b77de;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function getSeconds(_0x5dd881,_0x550fbc){var _0x18d5c9=moment(_0x5dd881)['milliseconds'](0x0);var _0x333808=moment(_0x550fbc)[_0x0a9e('0x3')](0x0);return _0x18d5c9[_0x0a9e('0x4')](_0x333808,_0x0a9e('0x5'));}function Hangup(_0x981158,_0x57b080){this[_0x0a9e('0x6')]=0x4;this[_0x0a9e('0x7')]=_0x0a9e('0x8');this['scheduledat']=_0x981158['scheduledat'];this[_0x0a9e('0x9')]=_0x981158['type'];this['campaigntype']=_0x981158[_0x0a9e('0x9')]===_0x0a9e('0xa')?_0x0a9e('0xb'):_0x981158[_0x0a9e('0x9')];this[_0x0a9e('0xc')]=_0x981158[_0x0a9e('0xc')];this['countcongestionretry']=_0x981158['countcongestionretry'];this['countnoanswerretry']=_0x981158['countnoanswerretry'];this[_0x0a9e('0xd')]=_0x981158[_0x0a9e('0xc')]+_0x981158[_0x0a9e('0xe')]+_0x981158[_0x0a9e('0xf')];this[_0x0a9e('0x10')]=_0x57b080[_0x0a9e('0x10')];this['calleridname']=_0x981158[_0x0a9e('0x11')];this[_0x0a9e('0x12')]=_0x981158[_0x0a9e('0x13')];this[_0x0a9e('0x14')]=_0x981158[_0x0a9e('0x14')];this[_0x0a9e('0x15')]=_0x981158['responsetime'];this[_0x0a9e('0x16')]=moment()['format'](_0x0a9e('0x17'));this['ringtime']=getSeconds(_0x981158[_0x0a9e('0x15')],_0x981158[_0x0a9e('0x14')]);this['holdtime']=0x0;this[_0x0a9e('0x18')]=getSeconds(this['endtime'],_0x981158[_0x0a9e('0x15')]);this[_0x0a9e('0xb')]=_0x981158[_0x0a9e('0xb')];this[_0x0a9e('0x19')]=_0x0a9e('0x1a');this[_0x0a9e('0x1b')]=_0x57b080[_0x0a9e('0x1c')];this[_0x0a9e('0x1d')]=_0x981158[_0x0a9e('0x1d')];this[_0x0a9e('0x1e')]=_0x981158[_0x0a9e('0x1e')];this[_0x0a9e('0x1f')]=_0x981158['callbackat'];this[_0x0a9e('0x20')]=_0x981158[_0x0a9e('0x20')];this['ContactId']=_0x981158[_0x0a9e('0x21')];this['ListId']=_0x981158['ListId'];this[_0x0a9e('0x22')]=_0x981158[_0x0a9e('0x22')];this[_0x0a9e('0x23')]=_0x981158[_0x0a9e('0x23')];this['CampaignId']=_0x981158[_0x0a9e('0x24')];}module[_0x0a9e('0x25')]=Hangup;
\ No newline at end of file
+var _0xa9e0=['countglobal','countcongestionretry','countnoanswerretry','uniqueid','name','calleridnum','number','starttime','responsetime','endtime','YYYY-MM-DD\x20HH:mm:ss','talktime','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','VoiceQueueId','CampaignId','exports','util','lodash','moment','milliseconds','diff','seconds','state','statedesc','Answer','type','outbound','queue','countbusyretry'];(function(_0x47604d,_0x15a014){var _0x388e4c=function(_0x42a446){while(--_0x42a446){_0x47604d['push'](_0x47604d['shift']());}};_0x388e4c(++_0x15a014);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0xa9e0[_0x5447fd];return _0x15b28a;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function getSeconds(_0x5dd881,_0x550fbc){var _0x18d5c9=moment(_0x5dd881)['milliseconds'](0x0);var _0x333808=moment(_0x550fbc)[_0x0a9e('0x3')](0x0);return _0x18d5c9[_0x0a9e('0x4')](_0x333808,_0x0a9e('0x5'));}function Hangup(_0x981158,_0x57b080){this[_0x0a9e('0x6')]=0x4;this[_0x0a9e('0x7')]=_0x0a9e('0x8');this['scheduledat']=_0x981158['scheduledat'];this[_0x0a9e('0x9')]=_0x981158['type'];this['campaigntype']=_0x981158[_0x0a9e('0x9')]===_0x0a9e('0xa')?_0x0a9e('0xb'):_0x981158[_0x0a9e('0x9')];this[_0x0a9e('0xc')]=_0x981158[_0x0a9e('0xc')];this['countcongestionretry']=_0x981158['countcongestionretry'];this['countnoanswerretry']=_0x981158['countnoanswerretry'];this[_0x0a9e('0xd')]=_0x981158[_0x0a9e('0xc')]+_0x981158[_0x0a9e('0xe')]+_0x981158[_0x0a9e('0xf')];this[_0x0a9e('0x10')]=_0x57b080[_0x0a9e('0x10')];this['calleridname']=_0x981158[_0x0a9e('0x11')];this[_0x0a9e('0x12')]=_0x981158[_0x0a9e('0x13')];this[_0x0a9e('0x14')]=_0x981158[_0x0a9e('0x14')];this[_0x0a9e('0x15')]=_0x981158['responsetime'];this[_0x0a9e('0x16')]=moment()['format'](_0x0a9e('0x17'));this['ringtime']=getSeconds(_0x981158[_0x0a9e('0x15')],_0x981158[_0x0a9e('0x14')]);this['holdtime']=0x0;this[_0x0a9e('0x18')]=getSeconds(this['endtime'],_0x981158[_0x0a9e('0x15')]);this[_0x0a9e('0xb')]=_0x981158[_0x0a9e('0xb')];this[_0x0a9e('0x19')]=_0x0a9e('0x1a');this[_0x0a9e('0x1b')]=_0x57b080[_0x0a9e('0x1c')];this[_0x0a9e('0x1d')]=_0x981158[_0x0a9e('0x1d')];this[_0x0a9e('0x1e')]=_0x981158[_0x0a9e('0x1e')];this[_0x0a9e('0x1f')]=_0x981158['callbackat'];this[_0x0a9e('0x20')]=_0x981158[_0x0a9e('0x20')];this['ContactId']=_0x981158[_0x0a9e('0x21')];this['ListId']=_0x981158['ListId'];this[_0x0a9e('0x22')]=_0x981158[_0x0a9e('0x22')];this[_0x0a9e('0x23')]=_0x981158[_0x0a9e('0x23')];this['CampaignId']=_0x981158[_0x0a9e('0x24')];}module[_0x0a9e('0x25')]=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d2d=['starttime','responsetime','endtime','ringtime','holdtime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','calleridname','name','calleridnum','number'];(function(_0x11c0cb,_0x4476aa){var _0x3dbf20=function(_0x58f366){while(--_0x58f366){_0x11c0cb['push'](_0x11c0cb['shift']());}};_0x3dbf20(++_0x4476aa);}(_0x0d2d,0x7a));var _0xd0d2=function(_0x513635,_0x315343){_0x513635=_0x513635-0x0;var _0x538254=_0x0d2d[_0x513635];return _0x538254;};'use strict';var util=require('util');var _=require(_0xd0d2('0x0'));var moment=require(_0xd0d2('0x1'));function getSeconds(_0x1b7fad,_0x321fda){var _0x22ab1d=moment(_0x1b7fad)[_0xd0d2('0x2')](0x0);var _0x556fc0=moment(_0x321fda)[_0xd0d2('0x2')](0x0);return _0x22ab1d[_0xd0d2('0x3')](_0x556fc0,_0xd0d2('0x4'));}function History(_0x374a08){this[_0xd0d2('0x5')]=_0x374a08[_0xd0d2('0x5')];this['scheduledat']=_0x374a08[_0xd0d2('0x6')]||undefined;this['type']=_0x374a08[_0xd0d2('0x7')];this['campaigntype']=_0x374a08[_0xd0d2('0x7')]===_0xd0d2('0x8')?_0xd0d2('0x9'):_0x374a08['type'];this[_0xd0d2('0xa')]=_0x374a08[_0xd0d2('0xa')];this[_0xd0d2('0xb')]=_0x374a08[_0xd0d2('0xb')];this[_0xd0d2('0xc')]=_0x374a08[_0xd0d2('0xc')];this[_0xd0d2('0xd')]=_0x374a08[_0xd0d2('0xa')]+_0x374a08[_0xd0d2('0xb')]+_0x374a08[_0xd0d2('0xc')];this['queue']=_0x374a08['queue'];this[_0xd0d2('0xe')]=_0x374a08[_0xd0d2('0xf')];this[_0xd0d2('0x10')]=_0x374a08[_0xd0d2('0x11')];this[_0xd0d2('0x12')]=_0x374a08[_0xd0d2('0x12')];this[_0xd0d2('0x13')]=_0x374a08[_0xd0d2('0x13')];this[_0xd0d2('0x14')]=_0x374a08['responsetime'];this[_0xd0d2('0x15')]=getSeconds(_0x374a08[_0xd0d2('0x13')],_0x374a08[_0xd0d2('0x12')]);this[_0xd0d2('0x16')]=0x0;this['talktime']=0x0;this['callback']=_0x374a08[_0xd0d2('0x17')];this[_0xd0d2('0x18')]=_0x374a08[_0xd0d2('0x18')];this['callbackat']=_0x374a08[_0xd0d2('0x19')];this[_0xd0d2('0x1a')]=_0x374a08[_0xd0d2('0x1a')];this['ContactId']=_0x374a08[_0xd0d2('0x1b')];this[_0xd0d2('0x1c')]=_0x374a08[_0xd0d2('0x1c')];this[_0xd0d2('0x1d')]=_0x374a08['UserId'];this[_0xd0d2('0x1e')]=_0x374a08[_0xd0d2('0x1e')];this[_0xd0d2('0x1f')]=_0x374a08[_0xd0d2('0x1f')];this[_0xd0d2('0x20')]=_0x374a08[_0xd0d2('0x20')]||'';this['originatecalleridname']=_0x374a08[_0xd0d2('0x21')]||'';}module[_0xd0d2('0x22')]=History;
\ No newline at end of file
+var _0x6bda=['callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','campaigntype','type','queue','countcongestionretry','countnoanswerretry','countglobal','calleridname','name','calleridnum','number','starttime','responsetime','ringtime','holdtime','talktime'];(function(_0x504df1,_0x289598){var _0x1063b5=function(_0x627abd){while(--_0x627abd){_0x504df1['push'](_0x504df1['shift']());}};_0x1063b5(++_0x289598);}(_0x6bda,0x15f));var _0xa6bd=function(_0x55d198,_0x5ba105){_0x55d198=_0x55d198-0x0;var _0x2dbfe7=_0x6bda[_0x55d198];return _0x2dbfe7;};'use strict';var util=require(_0xa6bd('0x0'));var _=require(_0xa6bd('0x1'));var moment=require(_0xa6bd('0x2'));function getSeconds(_0x20fa35,_0x2c3117){var _0x221aad=moment(_0x20fa35)[_0xa6bd('0x3')](0x0);var _0x2de142=moment(_0x2c3117)['milliseconds'](0x0);return _0x221aad[_0xa6bd('0x4')](_0x2de142,_0xa6bd('0x5'));}function History(_0x5164b1){this[_0xa6bd('0x6')]=_0x5164b1[_0xa6bd('0x6')];this[_0xa6bd('0x7')]=_0x5164b1[_0xa6bd('0x7')]||undefined;this['type']=_0x5164b1['type'];this[_0xa6bd('0x8')]=_0x5164b1[_0xa6bd('0x9')]==='outbound'?_0xa6bd('0xa'):_0x5164b1[_0xa6bd('0x9')];this['countbusyretry']=_0x5164b1['countbusyretry'];this[_0xa6bd('0xb')]=_0x5164b1[_0xa6bd('0xb')];this['countnoanswerretry']=_0x5164b1[_0xa6bd('0xc')];this[_0xa6bd('0xd')]=_0x5164b1['countbusyretry']+_0x5164b1[_0xa6bd('0xb')]+_0x5164b1[_0xa6bd('0xc')];this[_0xa6bd('0xa')]=_0x5164b1['queue'];this[_0xa6bd('0xe')]=_0x5164b1[_0xa6bd('0xf')];this[_0xa6bd('0x10')]=_0x5164b1[_0xa6bd('0x11')];this[_0xa6bd('0x12')]=_0x5164b1[_0xa6bd('0x12')];this[_0xa6bd('0x13')]=_0x5164b1[_0xa6bd('0x13')];this['endtime']=_0x5164b1['responsetime'];this[_0xa6bd('0x14')]=getSeconds(_0x5164b1[_0xa6bd('0x13')],_0x5164b1[_0xa6bd('0x12')]);this[_0xa6bd('0x15')]=0x0;this[_0xa6bd('0x16')]=0x0;this[_0xa6bd('0x17')]=_0x5164b1[_0xa6bd('0x17')];this[_0xa6bd('0x18')]=_0x5164b1['callbackuniqueid'];this[_0xa6bd('0x19')]=_0x5164b1[_0xa6bd('0x19')];this[_0xa6bd('0x1a')]=_0x5164b1[_0xa6bd('0x1a')];this[_0xa6bd('0x1b')]=_0x5164b1[_0xa6bd('0x1b')];this['ListId']=_0x5164b1['ListId'];this[_0xa6bd('0x1c')]=_0x5164b1[_0xa6bd('0x1c')];this[_0xa6bd('0x1d')]=_0x5164b1['VoiceQueueId'];this[_0xa6bd('0x1e')]=_0x5164b1[_0xa6bd('0x1e')];this['originatecalleridnum']=_0x5164b1[_0xa6bd('0x1f')]||'';this['originatecalleridname']=_0x5164b1[_0xa6bd('0x20')]||'';}module[_0xa6bd('0x21')]=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fcc=['OriginateError','endtime','[originate][error]','originate\x20action\x20Error','getQueue','isSuccess','response','[callProgressDetecting]\x20','checkRetriveMax','countbusyretry','dialGlobalMaxRetry','add','dialNoAnswerRetryFrequency','minutes','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','[rescheduleContact]\x20[Busy]','dialCongestionMaxRetry','countcongestionretry','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','callProgressDetecting','entity\x20is\x20undefine','[callProgressDetecting]','evt\x20is\x20undefine','NoSuchNumber','[syncAgentComplete][createHistory][0]','stateGlobal','reason\x200\x20no\x20such\x20number....','createStateFinal','countglobal','[syncAgentComplete][createHistory][3]','countnoanswerretry','dialNoAnswerMaxRetry','reason\x203\x20ringing\x20no\x20answer','outboundBusyCallsDay','Busy','Congestion','reason\x208\x20congestion','reason','[syncAgentComplete][createHistory][?]','Global','[moveContactManagedDialer][0]','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','talking','floor','erlangAbandonmentRate','predictiveIntervalHitRate','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','dialPredictiveInterval','erlangCalls','dialPredictiveOptimization','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','Dropped\x20calls\x20day','[stopMethodPredictive][ReStartProgressive][LowerLimitInterval]','agent\x20max\x20free\x20','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','[startMethodPredictive][StartPredictive][First]','getDataPredictive','[averageHandleTime][ErlangB]\x20','[startMethodPredictive][StartPredictive][Repeat]','startMethodPredictive','abandonmentRate','agentBusyFactor','outboundQueuePauses','busyFactor','[CatchErlangB]','[getDataPredictive]','[startMethodPredictive]','[handlePredictive]','[startMethodPredictive][milliseconds]\x20','Failure\x20','checkContactBlack','queueStatusComplete:\x20','Queue:\x20','queuestatus','[unlockOriginate][syncQueueStatusComplete]','[booked][checkContactBlack][else]','actionOriginate','scheduledat','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','BLACKLIST','Blacklist','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','handleIvr','limitCalls','temp','dialOrderByScheduledAt','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','Contact.phone','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','not_inuse','[getContactDialer2]','tryOriginatePredictive','[handlePredictive][limitChannel]','[actionOriginatePredictive]\x20','[getContactDialerPredictive]','[abandonmentRate]','\x20interval\x20=\x20','\x20Amax\x20=\x20','p\x20=\x20','interval\x20=\x20','Amax\x20=\x20','[busyFactor]','\x20m\x20=\x20','\x20Ts\x20=\x20','\x20p\x20=\x20','Ts\x20=\x20','exports','util','lodash','bluebird','uuid','moment','md5','../../../config/environment/','../../../config/logger','booked','predictive','redis','defaults','localhost','socket.io-emitter','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./final','./agentComplete','./queueCallerAbandon','env','roundrobin','prototype','enqueue','tail','finally','preview','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','optionPredictive','startPredictive','startProgressive','queueBookedRR','agentconnect','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','syncQueueSummary','hangup','syncHangup','newexten','varset','syncVarSet','syncQueueMember','queuestatuscomplete','syncQueueStatusComplete','loopCampaigns','loopClearZombieChannels','isUndefined','message','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','Interval','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','isEmpty','Intervals','[ifTime][Action]','Error','stringify','milliseconds','diff','seconds','emit','outbound','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','total','unmanaged','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalLowerLimit','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated','Trunk','active','callerid','format','voice:queue:%s','voice_queue:save','type','ivr','campaign:ivr:%s','campaign:save','info','[checkGetDataPredictive][avgTalktime]','[checkGetDataPredictive][avgHoldtime]','[checkGetDataPredictive][totalCalls]','[checkGetDataPredictive][objIsEmpty]','[checkGetDataPredictive][obj]','[ErlangB]','merge','handlePredictive','[freeVariablesPredictive]','string','\x22%s\x22\x20<%s>','error','inspect','length','hasOwnProperty','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','sendMessageOneNotActive','is\x20not\x20active','IS_DISACTIVED','[syncQueueSummary]\x20Campaign\x20Queue:\x20','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','state','statedesc','starttime','clearZombieChannels','[uniqueid]','isNil','status','channel','catch','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','[Dialer][checkChannel][ivr]','countReScheduled','resolve','[countReScheduled]\x20','checkIsBlackList','then','[checkIsBlackList]\x20','checkIsBlackListIvr','averageHandleTime','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','getContactDialer','getContactDialerIvr','[getContactDialer]\x20','getVoiceQueueRtPauses','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','notFound','saveInDb','pick','ContactId','ListId','UserId','VoiceQueueId','[emptyContact][createHistory]','Success','isTrunkReachable','SIP/%s','reachable','unmonitored','uniqueid','variable','exten','xcally-motion-dialer','dialAMDActive','HANGUP','HangupInAMD','membername','AMD','[syncHangupInAMD][createHistory]','[syncHangupInAMD]','value','Machine','[syncMachine]','[syncHangupInAMDIvr][createHistory]','MACHINE','[syncMachineIvr][createHistory]','[syncMachineIvr]','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','[syncHangupIvr]','dialQueueProject','AnswerAGI','AGI','Unknow','agent','dialQueueProject2','dialAgiAfterHangupAgent','YYYY-MM-DD\x20HH:mm:ss','[syncAgentComplete][createHistory]','[syncAgentComplete]','answertime','[syncQueueCallerAbandon]\x20[Drop]','droptime','responsetime','dialQueueTimeout','TIMEOUT','agiafterat','queueCallerAbandonCreateState','Abandoned','dropreason','CALLEREXIT','actionid','locked','stateinterface','queueBooked','push','idHopper','paused','[unlockQueueStatus][undefined]','queueStatusComplete','run','[Catch][Preview][syncQueueStatusComplete]','CampaignId','rrmemory','_rr','unlockRR','[booked][RR]','contactAgent-idHopper:\x20','[booked][RR][finaly]','Agent:\x20','[unlock][syncQueueStatusComplete]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','checkIsTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','checkIfTime','ifTime','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','Failure','\x20Intervals\x20is\x20empty\x20','timezones','TIMEZONE_UNKNOW','isArray','Action','command','iftime\x20%s,%s','interval','indexOf','content','true','all','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Timezone:\x20','checkDialMethod','handlePower','power','dialPowerLevel','Queue','launchHandleIvr','dialGlobalInterval','dialTimezone','[syncQueueSummary]','pow','replace','random','match','object','originate','voiceQueue\x20is\x20undefine','phone','contact\x20is\x20undefine','getCaller','NONE','\x22agi://%s/square,%s\x22','\x22%s,%s%s,,,%s\x22','ACTIVE','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','dialAMDMinWordLength','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','XMD-AMDMAXIMUMNUMBEROFWORDS','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','Contact','updatedAt','%s%s','toUpper','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','trim','dialCutDigit','SIP/%s/%s%s','from-sip','[originateError]:\x20%s'];(function(_0x2405de,_0x548637){var _0xeadb6e=function(_0x4ad187){while(--_0x4ad187){_0x2405de['push'](_0x2405de['shift']());}};_0xeadb6e(++_0x548637);}(_0x8fcc,0x7d));var _0xc8fc=function(_0x3ab164,_0x2fa5e9){_0x3ab164=_0x3ab164-0x0;var _0x39565e=_0x8fcc[_0x3ab164];return _0x39565e;};'use strict';var util=require(_0xc8fc('0x0'));var _=require(_0xc8fc('0x1'));var BPromise=require(_0xc8fc('0x2'));var uuid=require(_0xc8fc('0x3'));var moment=require(_0xc8fc('0x4'));var rr=require('rr');var md5=require(_0xc8fc('0x5'));var config=require(_0xc8fc('0x6'));var logger=require(_0xc8fc('0x7'))('dialer');var loggerBooked=require(_0xc8fc('0x7'))(_0xc8fc('0x8'));var loggerPredictive=require(_0xc8fc('0x7'))(_0xc8fc('0x9'));var loggerPredictiveCalls=require('../../../config/logger')('predictiveCalls');var loggerSyncQueueSummary=require(_0xc8fc('0x7'))('syncQueueSummary');var ami=require('../ami');config[_0xc8fc('0xa')]=_[_0xc8fc('0xb')](config['redis'],{'host':_0xc8fc('0xc'),'port':0x18eb});var io=require(_0xc8fc('0xd'))(config['redis']);var cmHopper=require(_0xc8fc('0xe'));var cmHopperFinal=require(_0xc8fc('0xf'));var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require(_0xc8fc('0x10'));var voiceQueueRt=require(_0xc8fc('0x11'));var Action=require('./action');var History=require('./history');var Final=require(_0xc8fc('0x12'));var AgentComplete=require(_0xc8fc('0x13'));var QueueCallerAbandon=require(_0xc8fc('0x14'));var Hangup=require('./hangup');var ipAgi=process[_0xc8fc('0x15')]['XCALLY_IP_AGI']||'127.0.0.1';var strategy={'rrmemory':'rrmemory','roundrobin':_0xc8fc('0x16')};var Sequence=function(){};Sequence[_0xc8fc('0x17')][_0xc8fc('0x18')]=function(_0x3b2547){this[_0xc8fc('0x19')]=this['tail']?this[_0xc8fc('0x19')][_0xc8fc('0x1a')](_0x3b2547):_0x3b2547();};function Dialer(_0x1dddd3,_0x1eccbb){this['sequence']=new Sequence();this[_0xc8fc('0x1b')]=_0x1eccbb;this[_0xc8fc('0x1c')]=_0x1dddd3['voiceQueues'];this[_0xc8fc('0x1d')]=_0x1dddd3[_0xc8fc('0x1d')];this[_0xc8fc('0x1e')]=_0x1dddd3['agents'];this[_0xc8fc('0x1f')]=_0x1dddd3[_0xc8fc('0x1f')];this['maxNumberOriginate']=config[_0xc8fc('0x20')]||0x2;this[_0xc8fc('0x21')]={};this[_0xc8fc('0x22')]={};this[_0xc8fc('0x23')]={};this[_0xc8fc('0x24')]={};this[_0xc8fc('0x25')]={};this[_0xc8fc('0x26')]={};this[_0xc8fc('0x27')]={};this['ivrOriginated']={};this['queueBooked']={};this[_0xc8fc('0x28')]={};ami['on'](_0xc8fc('0x29'),this[_0xc8fc('0x2a')][_0xc8fc('0x2b')](this));ami['on'](_0xc8fc('0x2c'),this[_0xc8fc('0x2d')]['bind'](this));ami['on'](_0xc8fc('0x2e'),this[_0xc8fc('0x2f')]['bind'](this));ami['on'](_0xc8fc('0x30'),this[_0xc8fc('0x31')][_0xc8fc('0x2b')](this));ami['on'](_0xc8fc('0x32'),this[_0xc8fc('0x33')][_0xc8fc('0x2b')](this));ami['on'](_0xc8fc('0x34'),this[_0xc8fc('0x35')]['bind'](this));ami['on'](_0xc8fc('0x36'),this['syncNewExten'][_0xc8fc('0x2b')](this));ami['on'](_0xc8fc('0x37'),this[_0xc8fc('0x38')][_0xc8fc('0x2b')](this));ami['on']('queuemember',this[_0xc8fc('0x39')][_0xc8fc('0x2b')](this));ami['on'](_0xc8fc('0x3a'),this[_0xc8fc('0x3b')][_0xc8fc('0x2b')](this));this[_0xc8fc('0x3c')]();this[_0xc8fc('0x3d')]();}function isNotNull(_0x129b4a){return _0x129b4a!==null&&!_[_0xc8fc('0x3e')](_0x129b4a);}function checkIsLoggedIn(_0x220e0,_0xc410b5){return function(){if(_0xc410b5<=0x0){_0x220e0[_0xc8fc('0x3f')]=_0xc8fc('0x40');throw _0x220e0[_0xc8fc('0x41')]+_0xc8fc('0x42');}};}function isActive(_0xea4ce1){return _0xea4ce1;}function checkIsActive(_0x501c1e,_0x4c962c){return function(){if(!isActive(_0x4c962c)){_0x501c1e['message']=_0xc8fc('0x43');throw _0x501c1e[_0xc8fc('0x41')]+'\x20NOT\x20Active';}};}function checkInterval(_0x2336e2){return function(){if(!isNotNull(_0x2336e2[_0xc8fc('0x44')])){_0x2336e2[_0xc8fc('0x3f')]=_0xc8fc('0x45');throw _0x2336e2['name']+_0xc8fc('0x46');}if(!isNotNull(_0x2336e2[_0xc8fc('0x44')]['Intervals'])){_0x2336e2[_0xc8fc('0x3f')]=_0xc8fc('0x45');throw _0x2336e2[_0xc8fc('0x41')]+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_[_0xc8fc('0x47')](_0x2336e2[_0xc8fc('0x44')][_0xc8fc('0x48')]))){_0x2336e2[_0xc8fc('0x3f')]=_0xc8fc('0x45');throw _0x2336e2[_0xc8fc('0x41')]+_0xc8fc('0x46');}};}function msgResponse(_0xfa043b,_0x3f4aab,_0x2682dd){return{'action':_0xfa043b,'response':_0x3f4aab,'message':_0x2682dd};}function myreject(_0x50180){return function(_0x4d6a57){return _0x50180(msgResponse(_0xc8fc('0x49'),_0xc8fc('0x4a'),JSON[_0xc8fc('0x4b')](_0x4d6a57)));};}function getSeconds(_0x4955eb,_0x51786d){var _0xa0d221=moment(_0x4955eb)[_0xc8fc('0x4c')](0x0);var _0x1dcd6a=moment(_0x51786d)[_0xc8fc('0x4c')](0x0);return _0xa0d221[_0xc8fc('0x4d')](_0x1dcd6a,_0xc8fc('0x4e'));}function emit(_0x48be37,_0x503e8a,_0xb73618){io['to'](_0x48be37)[_0xc8fc('0x4f')](_0x503e8a,_0xb73618);}function emitVoiceQueueSummary(_0x4207b1){if(_0x4207b1['type']===_0xc8fc('0x50')){var _0x48082d={'id':_0x4207b1['id'],'name':_0x4207b1[_0xc8fc('0x41')],'strategy':_0x4207b1[_0xc8fc('0x51')],'answered':_0x4207b1[_0xc8fc('0x52')],'available':_0x4207b1[_0xc8fc('0x53')],'loggedIn':_0x4207b1[_0xc8fc('0x54')],'pTalking':_0x4207b1[_0xc8fc('0x55')],'sumBillable':_0x4207b1[_0xc8fc('0x56')],'sumDuration':_0x4207b1[_0xc8fc('0x57')],'sumHoldTime':_0x4207b1['sumHoldTime']||0x0,'talking':_0x4207b1['talking'],'total':_0x4207b1[_0xc8fc('0x58')],'type':_0x4207b1['type'],'unmanaged':_0x4207b1[_0xc8fc('0x59')],'abandoned':_0x4207b1['abandoned'],'waiting':_0x4207b1[_0xc8fc('0x5a')],'loggedInDb':_0x4207b1[_0xc8fc('0x5b')],'dialActive':_0x4207b1[_0xc8fc('0x5c')],'dialMethod':_0x4207b1[_0xc8fc('0x5d')],'dialOriginateCallerIdName':_0x4207b1[_0xc8fc('0x5e')],'dialOriginateCallerIdNumber':_0x4207b1[_0xc8fc('0x5f')],'dialOriginateTimeout':_0x4207b1[_0xc8fc('0x60')],'dialPrefix':_0x4207b1[_0xc8fc('0x61')],'outboundAnswerAgiCallsDay':_0x4207b1[_0xc8fc('0x62')],'outboundAnswerCallsDay':_0x4207b1[_0xc8fc('0x63')],'outboundBlacklistCallsDay':_0x4207b1[_0xc8fc('0x64')],'outboundBusyCallsDay':_0x4207b1['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x4207b1[_0xc8fc('0x65')],'outboundDropCallsDayACS':_0x4207b1[_0xc8fc('0x66')],'outboundDropCallsDayCallersExit':_0x4207b1[_0xc8fc('0x67')],'outboundDropCallsDayTimeout':_0x4207b1[_0xc8fc('0x68')],'outboundNoAnswerCallsDay':_0x4207b1[_0xc8fc('0x69')],'outboundNoSuchCallsDay':_0x4207b1[_0xc8fc('0x6a')],'outboundOriginateFailureCallsDay':_0x4207b1[_0xc8fc('0x6b')],'outboundReCallsDay':_0x4207b1[_0xc8fc('0x6c')],'outboundRejectCallsDay':_0x4207b1['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x4207b1[_0xc8fc('0x6d')],'predictiveIntervalAnsweredCalls':_0x4207b1[_0xc8fc('0x6e')],'predictiveIntervalAvgHoldtime':_0x4207b1[_0xc8fc('0x6f')],'predictiveIntervalAvgTalktime':_0x4207b1[_0xc8fc('0x70')],'predictiveIntervalDroppedCallsCallersExit':_0x4207b1[_0xc8fc('0x71')],'predictiveIntervalDroppedCallsTimeout':_0x4207b1[_0xc8fc('0x72')],'predictiveIntervalErlangCalls':_0x4207b1[_0xc8fc('0x73')],'predictiveIntervalErlangCallsDroppedCalls':_0x4207b1[_0xc8fc('0x74')],'predictiveIntervalHitRate':_0x4207b1['predictiveIntervalHitRate'],'predictiveIntervalLowerLimit':_0x4207b1[_0xc8fc('0x75')],'predictiveIntervalMultiplicativeFactor':_0x4207b1[_0xc8fc('0x76')],'predictiveIntervalPauses':_0x4207b1[_0xc8fc('0x77')],'predictiveIntervalTotalCalls':_0x4207b1[_0xc8fc('0x78')],'message':_0x4207b1[_0xc8fc('0x3f')],'originated':_0x4207b1[_0xc8fc('0x79')]};if(_0x4207b1[_0xc8fc('0x7a')]){_0x48082d[_0xc8fc('0x7a')]={'id':_0x4207b1[_0xc8fc('0x7a')]['id'],'name':_0x4207b1['Trunk']['name'],'active':_0x4207b1['Trunk'][_0xc8fc('0x7b')],'callerid':_0x4207b1['Trunk'][_0xc8fc('0x7c')]};}if(_0x4207b1[_0xc8fc('0x44')]){_0x48082d[_0xc8fc('0x44')]={'id':_0x4207b1[_0xc8fc('0x44')]['id'],'name':_0x4207b1[_0xc8fc('0x44')][_0xc8fc('0x41')]};}var _0x30140b=md5(JSON[_0xc8fc('0x4b')](_0x48082d));if(_0x4207b1[_0xc8fc('0x5')]!==_0x30140b){_0x4207b1[_0xc8fc('0x5')]=_0x30140b;emit(util[_0xc8fc('0x7d')](_0xc8fc('0x7e'),_0x48082d[_0xc8fc('0x41')]),_0xc8fc('0x7f'),_0x48082d);}}}function emitCampaignSummary(_0x4c2e32){if(_0x4c2e32[_0xc8fc('0x80')]===_0xc8fc('0x81')){emit(util[_0xc8fc('0x7d')](_0xc8fc('0x82'),_0x4c2e32['name']),_0xc8fc('0x83'),_0x4c2e32);}}function checkGetDataPredictive(_0x5dfe32){if(isNotNull(_0x5dfe32)){if(!_[_0xc8fc('0x47')](_0x5dfe32)){if(_0x5dfe32[_0xc8fc('0x78')]>0x0){if(!_['isUndefined'](_0x5dfe32['predictiveIntervalAvgTalktime'])&&_0x5dfe32[_0xc8fc('0x70')]>0x0){return!![];}else{loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x85'),JSON[_0xc8fc('0x4b')](_0x5dfe32));}if(!_['isUndefined'](_0x5dfe32['predictiveIntervalAvgHoldtime'])&&_0x5dfe32['predictiveIntervalAvgHoldtime']>0x0){return!![];}else{loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x86'),JSON['stringify'](_0x5dfe32));}}else{loggerPredictive['info'](_0xc8fc('0x87'),JSON[_0xc8fc('0x4b')](_0x5dfe32));}}else{loggerPredictive['info'](_0xc8fc('0x88'),JSON[_0xc8fc('0x4b')](_0x5dfe32));}}else{loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x89'),JSON['stringify'](_0x5dfe32));}return![];}function mergeDataErlangB(_0x29bce3){return function(_0x284f2e){loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x8a'),JSON[_0xc8fc('0x4b')](_0x284f2e));_[_0xc8fc('0x8b')](_0x29bce3,_0x284f2e);};}function getDiff(_0x585186){var _0x222d0d=moment()['milliseconds'](0x0);var _0x56b0f3=moment(_0x585186)[_0xc8fc('0x4c')](0x0);return _0x222d0d[_0xc8fc('0x4d')](_0x56b0f3,_0xc8fc('0x4e'));}function ifInterval(_0x13839d,_0x42d088){if(_[_0xc8fc('0x3e')](_0x42d088)){return![];}if(getDiff(_0x42d088)<_0x13839d*0x3c){return!![];}else{return![];}}function freeVariablesPredictive(_0x599c37){if(isNotNull(_0x599c37)){if(!_[_0xc8fc('0x3e')](_0x599c37[_0xc8fc('0x27')])){_0x599c37[_0xc8fc('0x27')]=undefined;loggerPredictive[_0xc8fc('0x84')]('[freeVariablesPredictive]',_0xc8fc('0x27'),_0x599c37[_0xc8fc('0x41')]);}if(!_[_0xc8fc('0x3e')](_0x599c37[_0xc8fc('0x26')])){_0x599c37[_0xc8fc('0x26')]=undefined;loggerPredictive[_0xc8fc('0x84')]('[freeVariablesPredictive]',_0xc8fc('0x26'),_0x599c37[_0xc8fc('0x41')]);}if(!_['isUndefined'](_0x599c37[_0xc8fc('0x8c')])){clearInterval(_0x599c37[_0xc8fc('0x8c')]);_0x599c37[_0xc8fc('0x8c')]=undefined;loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x8d'),_0xc8fc('0x8c'),_0x599c37[_0xc8fc('0x41')]);}}}function erlangb(_0x168398,_0x5c8cc8){if(_0x5c8cc8===0x0){return 0x0;}var _0x4f2e81=0x1;for(var _0x13e98b=0x1;_0x13e98b<=_0x5c8cc8;_0x13e98b+=0x1){_0x4f2e81=0x1+_0x4f2e81*_0x13e98b/_0x168398;}return 0x1/_0x4f2e81;}function isVoiceQueueOutbound(_0x3dbe91){return _0x3dbe91==='outbound';}function isNotPreview(_0xc3941d){return _0xc3941d!==_0xc8fc('0x1b');}function isCampaignIvr(_0x2ce50d){return _0x2ce50d==='ivr';}function getCallerId(_0xec7486,_0x5057cf,_0x3f3bee){if(!_['isUndefined'](_0x3f3bee)&&_0xc8fc('0x8e')===typeof _0x3f3bee&&!_[_0xc8fc('0x47')](_0x3f3bee)){if(!_[_0xc8fc('0x3e')](_0x5057cf)&&_0xc8fc('0x8e')===typeof _0x5057cf&&!_[_0xc8fc('0x47')](_0x5057cf)){return util[_0xc8fc('0x7d')](_0xc8fc('0x8f'),_0x5057cf,_0x3f3bee);}return util['format'](_0xc8fc('0x8f'),_0x3f3bee,_0x3f3bee);}if(!_[_0xc8fc('0x3e')](_0xec7486)&&'string'===typeof _0xec7486&&!_[_0xc8fc('0x47')](_0xec7486)){return _0xec7486;}return'\x22\x22\x20<>';}function loggerCatchQueueSummary(_0x368b93,_0x175eda){return function(_0x3daca3){freeVariablesPredictive(_0x175eda);emitVoiceQueueSummary(_0x175eda);emitCampaignSummary(_0x175eda);loggerSyncQueueSummary[_0xc8fc('0x90')](_0x368b93,util[_0xc8fc('0x91')](_0x3daca3,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x1b566a,_0xf8889){return function(_0x50af39){loggerPredictive[_0xc8fc('0x90')](_0x1b566a,JSON[_0xc8fc('0x4b')](_0x50af39));freeVariablesPredictive(_0xf8889);};}function loggerCatch(_0x2273b8){return function(_0x4408ff){logger[_0xc8fc('0x90')](_0x2273b8,util[_0xc8fc('0x91')](_0x4408ff,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x2414a5){return _0x2414a5&&!_[_0xc8fc('0x3e')](_0x2414a5)&&_0x2414a5[_0xc8fc('0x92')]>0x0;}function decremetOriginate(_0x3d7d33){if(!_['isUndefined'](_0x3d7d33)&&_0x3d7d33!==null){if(_0x3d7d33[_0xc8fc('0x93')](_0xc8fc('0x79'))){if(_0x3d7d33['originated']>0x0){_0x3d7d33['originated']-=0x1;}else{logger['error']('[decremetOriginate]\x20object\x20originated\x20is\x20negative');}}}else{logger[_0xc8fc('0x90')](_0xc8fc('0x94'));}}function checkContactLowerLimitOriginate(_0x11e118,_0x37fca4,_0x51a1f5){if(_0x37fca4>_0x51a1f5){for(var _0x17e97d=0x0;_0x17e97d<_0x37fca4-_0x51a1f5;_0x17e97d+=0x1){decremetOriginate(_0x11e118);}}}function loggerGetContactDialer(_0x26e710,_0x202267,_0x1d3555){return function(_0x22d777){checkContactLowerLimitOriginate(_0x202267,_0x1d3555,0x0);logger[_0xc8fc('0x90')](_0x26e710,util[_0xc8fc('0x91')](_0x22d777,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x586f44){return function(_0x182b59){if(isNotNull(_0x182b59)&&isNotNull(_0x182b59[0x0])){if(_0x182b59[0x0][_0xc8fc('0x95')]>0x0){_0x586f44['message']=_0xc8fc('0x96');logger['info'](_0xc8fc('0x97')+_0x586f44['name'],_0x182b59[0x0][_0xc8fc('0x95')],_0xc8fc('0x98'));}else{_0x586f44['message']=_0xc8fc('0x99');logger[_0xc8fc('0x84')]('[getContactDialer2][Empty]'+_0x586f44[_0xc8fc('0x41')]);}}};}function notSendMessagesQueue(_0x5bdaac){if(_0x5bdaac[_0xc8fc('0x9a')]){freeVariablesPredictive(_0x5bdaac);if(_0x5bdaac[_0xc8fc('0x79')]===0x0&&_0x5bdaac['talking']===0x0&&_0x5bdaac[_0xc8fc('0x5a')]===0x0&&(_0x5bdaac[_0xc8fc('0x55')]||0x0)===0x0){_0x5bdaac['sendMessageOneNotActive']=![];_0x5bdaac[_0xc8fc('0x53')]=0x0;_0x5bdaac['message']=_0xc8fc('0x43');loggerSyncQueueSummary[_0xc8fc('0x90')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x5bdaac[_0xc8fc('0x41')],_0xc8fc('0x9b'));}else{_0x5bdaac['message']=_0xc8fc('0x9c');loggerSyncQueueSummary[_0xc8fc('0x90')](_0xc8fc('0x9d'),_0x5bdaac[_0xc8fc('0x41')],'is\x20disactive');}emitVoiceQueueSummary(_0x5bdaac);}}function notSendMessagesCampaign(_0x52ba01){if(_0x52ba01[_0xc8fc('0x9a')]){if(_0x52ba01[_0xc8fc('0x79')]===0x0){_0x52ba01[_0xc8fc('0x9a')]=![];_0x52ba01['message']=_0xc8fc('0x43');loggerSyncQueueSummary[_0xc8fc('0x90')](_0xc8fc('0x9e'),_0x52ba01['name'],_0xc8fc('0x9b'));}else{_0x52ba01[_0xc8fc('0x3f')]=_0xc8fc('0x9c');loggerSyncQueueSummary[_0xc8fc('0x90')](_0xc8fc('0x9e'),_0x52ba01[_0xc8fc('0x41')],'is\x20disactive');}emitCampaignSummary(_0x52ba01);}}function createObjHistory(_0x59eb87,_0x523597,_0x12c0a5,_0x6e4d2f,_0x55bf21){_0x59eb87['message']=_0x12c0a5;var _0x251f11=new Action(_0x59eb87,_0x523597);var _0x49b987=new History(_0x251f11);_0x49b987[_0xc8fc('0x9f')]=_0x6e4d2f;_0x49b987[_0xc8fc('0xa0')]=_0x55bf21;_0x49b987['endtime']=_0x251f11[_0xc8fc('0xa1')];return _0x49b987;}Dialer[_0xc8fc('0x17')][_0xc8fc('0x3d')]=function(){var _0x525fde=this;setInterval(function(){_0x525fde[_0xc8fc('0xa2')](_0x525fde[_0xc8fc('0x24')],_0xc8fc('0xa3'));_0x525fde[_0xc8fc('0xa2')](_0x525fde[_0xc8fc('0x22')],'[actions]');},0x32c8);};Dialer[_0xc8fc('0x17')][_0xc8fc('0xa2')]=function(_0x841391,_0x103dda){var _0x556500=this;for(var _0x3525ea in _0x841391){if(_0x841391[_0xc8fc('0x93')](_0x3525ea)){this['sequence']['enqueue'](function(){if(!_[_0xc8fc('0xa4')](_0x841391[_0x3525ea])){return ami['Action']({'action':_0xc8fc('0xa5'),'channel':_0x841391[_0x3525ea][_0xc8fc('0xa6')]})[_0xc8fc('0xa7')](function(_0x2850f6){if(_0x2850f6[_0xc8fc('0x3f')]===_0xc8fc('0xa8')){setTimeout(function(){if(_0x841391[_0x3525ea]&&_0x841391[_0x3525ea][_0xc8fc('0x80')]!==_0xc8fc('0x81')){_0x556500[_0xc8fc('0xa9')](_0x556500['voiceQueues'][_0x841391[_0x3525ea][_0xc8fc('0xaa')]]);logger[_0xc8fc('0x90')](_0xc8fc('0xab'),_0x103dda,_0x3525ea,_0x841391[_0x3525ea][_0xc8fc('0xaa')]);delete _0x841391[_0x3525ea];}if(_0x841391[_0x3525ea]&&_0x841391[_0x3525ea][_0xc8fc('0x80')]===_0xc8fc('0x81')){_0x556500[_0xc8fc('0xa9')](_0x556500[_0xc8fc('0x1d')][_0x841391[_0x3525ea][_0xc8fc('0xaa')]]);logger['error'](_0xc8fc('0xac'),_0x103dda,_0x3525ea,_0x841391[_0x3525ea][_0xc8fc('0xaa')]);delete _0x841391[_0x3525ea];}},0x2328);}});}});}}};Dialer[_0xc8fc('0x17')][_0xc8fc('0xad')]=function(_0x328efe){return BPromise[_0xc8fc('0xae')]()['then'](cmHopper[_0xc8fc('0xad')](_0x328efe))[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xaf')));};Dialer['prototype'][_0xc8fc('0xb0')]=function(_0xfc7c55){return BPromise[_0xc8fc('0xae')]()[_0xc8fc('0xb1')](cmHopperBlack[_0xc8fc('0xb0')](_0xfc7c55))['catch'](loggerCatch(_0xc8fc('0xb2')));};Dialer[_0xc8fc('0x17')]['checkIsBlackListIvr']=function(_0x332ea6){return BPromise[_0xc8fc('0xae')]()[_0xc8fc('0xb1')](cmHopperBlack[_0xc8fc('0xb3')](_0x332ea6))[_0xc8fc('0xa7')](loggerCatch('[checkIsBlackListIvr]\x20'));};Dialer['prototype'][_0xc8fc('0xb4')]=function(_0x11adad){return BPromise[_0xc8fc('0xae')]()[_0xc8fc('0xb1')](cmHopperHistory[_0xc8fc('0xb5')](_0x11adad))[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xb6')));};Dialer[_0xc8fc('0x17')][_0xc8fc('0xb7')]=function(_0x3f4802){return BPromise[_0xc8fc('0xae')]()['then'](cmHopper[_0xc8fc('0xb7')](_0x3f4802))[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xb8')));};Dialer[_0xc8fc('0x17')][_0xc8fc('0xb9')]=function(_0x3bd3b2,_0x4370ff,_0x2bf0a0,_0x1654ff){return BPromise['resolve']()[_0xc8fc('0xb1')](cmHopper[_0xc8fc('0xb9')](_0x3bd3b2,_0x4370ff,_0x2bf0a0,_0x1654ff))['catch'](loggerCatch('[getContactDialer]\x20'));};Dialer[_0xc8fc('0x17')][_0xc8fc('0xba')]=function(_0x4b5b22,_0x3b001,_0x1398c0){return BPromise['resolve']()['then'](cmHopper[_0xc8fc('0xba')](_0x4b5b22,_0x3b001,_0x1398c0))['catch'](loggerCatch(_0xc8fc('0xbb')));};Dialer[_0xc8fc('0x17')]['getVoiceQueueRtPauses']=function(_0x2916fb){return BPromise[_0xc8fc('0xae')]()[_0xc8fc('0xb1')](voiceQueueRt[_0xc8fc('0xbc')](_0x2916fb))[_0xc8fc('0xa7')](loggerCatch('[getVoiceQueueRtPauses]\x20'));};Dialer[_0xc8fc('0x17')][_0xc8fc('0xbd')]=function(_0x78ce3e){return BPromise[_0xc8fc('0xae')]()[_0xc8fc('0xb1')](cmHopper[_0xc8fc('0xbd')](_0x78ce3e))[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xbe')));};Dialer[_0xc8fc('0x17')][_0xc8fc('0xbf')]=function(_0x2348cb){return BPromise['resolve']()[_0xc8fc('0xb1')](cmHopperHistory[_0xc8fc('0xbf')](_0x2348cb))[_0xc8fc('0xa7')](loggerCatch('[createHistory]\x20'));};Dialer[_0xc8fc('0x17')][_0xc8fc('0xa9')]=function(_0x505063){if(!_['isUndefined'](_0x505063)&&_0x505063!==null){if(_0x505063['hasOwnProperty'](_0xc8fc('0x79'))){if(_0x505063['originated']>0x0){_0x505063[_0xc8fc('0x79')]-=0x1;}else{logger['error'](_0xc8fc('0xc0'));}}}else{logger['error'](_0xc8fc('0xc1'));}};Dialer[_0xc8fc('0x17')][_0xc8fc('0xc2')]=function(_0x254890,_0x28fe34){var _0x561a0e=this;return function(_0x3d2a4e){_0x561a0e[_0xc8fc('0xa9')](_0x28fe34);logger['error'](_0x254890,util[_0xc8fc('0x91')](_0x3d2a4e,{'showHidden':![],'depth':null}));};};Dialer['prototype'][_0xc8fc('0xc3')]=function(_0x1e34cc,_0x55545a,_0xff2907){var _0x401503={'state':0x19,'statedesc':_0xc8fc('0xc4')};this[_0xc8fc('0xa9')](_0x55545a);this[_0xc8fc('0xc5')](_[_0xc8fc('0x8b')](_0x401503,_[_0xc8fc('0xc6')](_0xff2907,[_0xc8fc('0xc7'),_0xc8fc('0xc8'),_0xc8fc('0xc9'),_0xc8fc('0xca'),'CampaignId'])),_0xc8fc('0xcb'),'[emptyContact]');logger[_0xc8fc('0x90')](_0x1e34cc);};Dialer[_0xc8fc('0x17')]['isSuccess']=function(_0x48fd05){return _0x48fd05===_0xc8fc('0xcc');};Dialer[_0xc8fc('0x17')][_0xc8fc('0xcd')]=function(_0x3ecd20){return!_[_0xc8fc('0x3e')](_0x3ecd20)&&_0x3ecd20&&!_['isUndefined'](_0x3ecd20['name'])&&!_[_0xc8fc('0x3e')](_0x3ecd20[_0xc8fc('0x7b')])&&_0x3ecd20[_0xc8fc('0x7b')]&&(this[_0xc8fc('0x1f')][util[_0xc8fc('0x7d')](_0xc8fc('0xce'),_0x3ecd20['name'])][_0xc8fc('0xa5')]===_0xc8fc('0xcf')||this[_0xc8fc('0x1f')][util[_0xc8fc('0x7d')](_0xc8fc('0xce'),_0x3ecd20[_0xc8fc('0x41')])][_0xc8fc('0xa5')]===_0xc8fc('0xd0'));};Dialer['prototype'][_0xc8fc('0xc5')]=function(_0x273470,_0x229e29,_0x11a1c0){this['createHistory'](_0x273470)[_0xc8fc('0xa7')](loggerCatch(_0x229e29));this[_0xc8fc('0xbd')](_0x273470)['catch'](loggerCatch(_0x11a1c0));};Dialer[_0xc8fc('0x17')][_0xc8fc('0x38')]=function(_0x54011e){var _0x4a028b=this[_0xc8fc('0x24')][_0x54011e[_0xc8fc('0xd1')]];var _0x447c09;if(!_[_0xc8fc('0xa4')](_0x54011e)&&!_[_0xc8fc('0xa4')](_0x54011e[_0xc8fc('0xd2')])&&!_['isNil'](_0x54011e[_0xc8fc('0xd2')]['amdstatus'])&&_0x54011e[_0xc8fc('0xd3')]===_0xc8fc('0xd4')&&_0x4a028b){if(_0x4a028b[_0xc8fc('0x80')]!==_0xc8fc('0x81')&&this[_0xc8fc('0x1c')][_0x4a028b[_0xc8fc('0xaa')]][_0xc8fc('0xd5')]&&_0x54011e['value']===_0xc8fc('0xd6')){delete this[_0xc8fc('0x24')][_0x54011e[_0xc8fc('0xd1')]];this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][_0x4a028b[_0xc8fc('0xaa')]]);this['voiceQueues'][_0x4a028b[_0xc8fc('0xaa')]][_0xc8fc('0x63')]+=0x1;this[_0xc8fc('0x1c')][_0x4a028b[_0xc8fc('0xaa')]]['outboundAnswerAgiCallsDay']+=0x1;_0x447c09=new Hangup(_0x4a028b,_0x54011e);_0x447c09['state']=0x12;_0x447c09['statedesc']=_0xc8fc('0xd7');_0x447c09[_0xc8fc('0xd8')]=_0xc8fc('0xd9');this[_0xc8fc('0xc5')](_0x447c09,_0xc8fc('0xda'),_0xc8fc('0xdb'));}if(_0x4a028b[_0xc8fc('0x80')]!==_0xc8fc('0x81')&&this[_0xc8fc('0x1c')][_0x4a028b['queue']][_0xc8fc('0xd5')]&&_0x54011e[_0xc8fc('0xdc')]==='MACHINE'){delete this[_0xc8fc('0x24')][_0x54011e[_0xc8fc('0xd1')]];this[_0xc8fc('0xa9')](this['voiceQueues'][_0x4a028b['queue']]);this['voiceQueues'][_0x4a028b[_0xc8fc('0xaa')]][_0xc8fc('0x63')]+=0x1;this[_0xc8fc('0x1c')][_0x4a028b['queue']][_0xc8fc('0x62')]+=0x1;_0x447c09=new Hangup(_0x4a028b,_0x54011e);_0x447c09[_0xc8fc('0x9f')]=0x13;_0x447c09['statedesc']=_0xc8fc('0xdd');_0x447c09['membername']=_0xc8fc('0xd9');_0x447c09['amd']=!![];this[_0xc8fc('0xc5')](_0x447c09,'[syncMachine][createHistory]',_0xc8fc('0xde'));}if(_0x4a028b[_0xc8fc('0x80')]==='ivr'&&this[_0xc8fc('0x1d')][_0x4a028b[_0xc8fc('0xaa')]][_0xc8fc('0xd5')]&&_0x54011e['value']===_0xc8fc('0xd6')){delete this['uniqueId'][_0x54011e[_0xc8fc('0xd1')]];this[_0xc8fc('0xa9')](this['campaigns'][_0x4a028b[_0xc8fc('0xaa')]]);_0x447c09=new Hangup(_0x4a028b,_0x54011e);_0x447c09[_0xc8fc('0x9f')]=0x12;_0x447c09[_0xc8fc('0xa0')]='HangupInAMD';_0x447c09[_0xc8fc('0xd8')]=_0xc8fc('0xd9');this[_0xc8fc('0xc5')](_0x447c09,_0xc8fc('0xdf'),'[syncHangupInAMDIvr]');}if(_0x4a028b['type']===_0xc8fc('0x81')&&this[_0xc8fc('0x1d')][_0x4a028b[_0xc8fc('0xaa')]]['dialAMDActive']&&_0x54011e[_0xc8fc('0xdc')]===_0xc8fc('0xe0')){delete this[_0xc8fc('0x24')][_0x54011e[_0xc8fc('0xd1')]];this[_0xc8fc('0xa9')](this[_0xc8fc('0x1d')][_0x4a028b['queue']]);_0x447c09=new Hangup(_0x4a028b,_0x54011e);_0x447c09[_0xc8fc('0x9f')]=0x13;_0x447c09[_0xc8fc('0xa0')]=_0xc8fc('0xdd');_0x447c09['membername']='AMD';_0x447c09['amd']=!![];this['saveInDb'](_0x447c09,_0xc8fc('0xe1'),_0xc8fc('0xe2'));}}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x35')]=function(_0x2e8023){var _0x58cb62=this[_0xc8fc('0x24')][_0x2e8023[_0xc8fc('0xd1')]];var _0x21017d=this;var _0x5cd96d;if(_0x58cb62&&_0x58cb62[_0xc8fc('0x80')]==='ivr'){delete this[_0xc8fc('0x24')][_0x2e8023[_0xc8fc('0xd1')]];this[_0xc8fc('0xa9')](this['campaigns'][_0x58cb62['queue']]);this['campaigns'][_0x58cb62[_0xc8fc('0xaa')]][_0xc8fc('0xe3')]+=0x1;_0x5cd96d=new Hangup(_0x58cb62,_0x2e8023);this[_0xc8fc('0xbf')](_0x5cd96d)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xe4')));this[_0xc8fc('0xbd')](_0x5cd96d)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xe5')));}if(_0x58cb62&&_0x58cb62[_0xc8fc('0x80')]!==_0xc8fc('0x81')&&isNotNull(this[_0xc8fc('0x1c')][_0x58cb62['queue']][_0xc8fc('0xe6')])){delete this[_0xc8fc('0x24')][_0x2e8023[_0xc8fc('0xd1')]];this['updateOriginated'](this[_0xc8fc('0x1c')][_0x58cb62['queue']]);this[_0xc8fc('0x1c')][_0x58cb62[_0xc8fc('0xaa')]][_0xc8fc('0x63')]+=0x1;this[_0xc8fc('0x1c')][_0x58cb62[_0xc8fc('0xaa')]][_0xc8fc('0x62')]+=0x1;_0x5cd96d=new Hangup(_0x58cb62,_0x2e8023);_0x5cd96d[_0xc8fc('0x9f')]=0x10;_0x5cd96d['statedesc']=_0xc8fc('0xe7');_0x5cd96d[_0xc8fc('0xd8')]=_0xc8fc('0xe8');this[_0xc8fc('0xbf')](_0x5cd96d)['catch'](loggerCatch(_0xc8fc('0xe4')));this['moveContactManagedDialer'](_0x5cd96d)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xe5')));}if(_0x58cb62&&_0x58cb62['type']!==_0xc8fc('0x81')&&!isNotNull(this[_0xc8fc('0x1c')][_0x58cb62[_0xc8fc('0xaa')]][_0xc8fc('0xe6')])){delete this['uniqueId'][_0x2e8023['uniqueid']];this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][_0x58cb62[_0xc8fc('0xaa')]]);this[_0xc8fc('0x1c')][_0x58cb62[_0xc8fc('0xaa')]][_0xc8fc('0x6d')]+=0x1;_0x5cd96d=new Hangup(_0x58cb62,_0x2e8023);_0x5cd96d[_0xc8fc('0x9f')]=0xc;_0x5cd96d[_0xc8fc('0xa0')]=_0x2e8023['cause-txt'];_0x5cd96d[_0xc8fc('0xd8')]=_0xc8fc('0xe9');this[_0xc8fc('0xbf')](_0x5cd96d)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xe4')));this['moveContactManagedDialer'](_0x5cd96d)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xe5')));}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x31')]=function(_0x332a37){var _0x1fb5a5=this['uniqueId'][_0x332a37['uniqueid']];var _0x3e0e78=this;if(this[_0xc8fc('0x1c')][_0x332a37[_0xc8fc('0xaa')]]){if(_0x1fb5a5&&_0x1fb5a5[_0xc8fc('0x80')]!==_0xc8fc('0x81')){delete this[_0xc8fc('0x24')][_0x332a37['uniqueid']];this['voiceQueues'][_0x332a37[_0xc8fc('0xaa')]][_0xc8fc('0x63')]+=0x1;var _0x4fb3e8=new AgentComplete(_0x1fb5a5,_0x332a37);if(_0x332a37['reason']===_0xc8fc('0xea')){_0x4fb3e8['agiafterat']=this['voiceQueues'][_0x332a37[_0xc8fc('0xaa')]][_0xc8fc('0xeb')]&&this['voiceQueues'][_0x332a37[_0xc8fc('0xaa')]][_0xc8fc('0xec')]?moment()[_0xc8fc('0x7d')](_0xc8fc('0xed')):undefined;}this[_0xc8fc('0xbf')](_0x4fb3e8)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xee')));this[_0xc8fc('0xbd')](_0x4fb3e8)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xef')));}}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x2a')]=function(_0xb75941){if(this[_0xc8fc('0x1c')][_0xb75941[_0xc8fc('0xaa')]]){if(this[_0xc8fc('0x24')][_0xb75941[_0xc8fc('0xd1')]]&&this[_0xc8fc('0x24')][_0xb75941['uniqueid']][_0xc8fc('0x80')]!==_0xc8fc('0x81')){this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][_0xb75941[_0xc8fc('0xaa')]]);this[_0xc8fc('0x24')][_0xb75941[_0xc8fc('0xd1')]][_0xc8fc('0xf0')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}}};Dialer[_0xc8fc('0x17')]['queueCallerAbandonCreateState']=function(_0x4f6da1){this[_0xc8fc('0xbf')](_0x4f6da1)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xee')));this[_0xc8fc('0xbd')](_0x4f6da1)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0xf1')));};Dialer[_0xc8fc('0x17')][_0xc8fc('0x2d')]=function(_0x48dfba){var _0x331dda=this[_0xc8fc('0x24')][_0x48dfba['uniqueid']];var _0xd61121=this;if(this['voiceQueues'][_0x48dfba[_0xc8fc('0xaa')]]){if(_0x331dda&&_0x331dda[_0xc8fc('0x80')]!==_0xc8fc('0x81')){delete this[_0xc8fc('0x24')][_0x48dfba[_0xc8fc('0xd1')]];this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][_0x48dfba[_0xc8fc('0xaa')]]);_0x331dda[_0xc8fc('0xf2')]=moment()[_0xc8fc('0x7d')]('YYYY-MM-DD\x20HH:mm:ss');var _0x3730b3=new QueueCallerAbandon(_0x331dda,_0x48dfba);if(getSeconds(_0x331dda[_0xc8fc('0xf2')],_0x331dda[_0xc8fc('0xf3')])>=_0x331dda[_0xc8fc('0xf4')]){this['voiceQueues'][_0x48dfba[_0xc8fc('0xaa')]]['predictiveIntervalDroppedCallsTimeout']+=0x1;this[_0xc8fc('0x1c')][_0x48dfba[_0xc8fc('0xaa')]]['outboundDropCallsDayTimeout']+=0x1;this[_0xc8fc('0x1c')][_0x48dfba[_0xc8fc('0xaa')]][_0xc8fc('0x74')]+=0x1;_0x3730b3['state']=0xa;_0x3730b3[_0xc8fc('0xa0')]='Drop';_0x3730b3['dropreason']=_0xc8fc('0xf5');_0x3730b3[_0xc8fc('0xf6')]=this[_0xc8fc('0x1c')][_0x48dfba[_0xc8fc('0xaa')]][_0xc8fc('0xeb')]?moment()[_0xc8fc('0x7d')](_0xc8fc('0xed')):undefined;this[_0xc8fc('0xf7')](_0x3730b3);}else{this[_0xc8fc('0x1c')][_0x48dfba[_0xc8fc('0xaa')]][_0xc8fc('0x71')]+=0x1;this['voiceQueues'][_0x48dfba['queue']]['outboundDropCallsDayCallersExit']+=0x1;_0x3730b3[_0xc8fc('0x9f')]=0xb;_0x3730b3[_0xc8fc('0xa0')]=_0xc8fc('0xf8');_0x3730b3[_0xc8fc('0xf9')]=_0xc8fc('0xfa');this['queueCallerAbandonCreateState'](_0x3730b3);}}}};Dialer[_0xc8fc('0x17')]['syncNewExten']=function(_0x5680d4){if(this[_0xc8fc('0x22')][_0x5680d4[_0xc8fc('0xd1')]]){this[_0xc8fc('0x22')][_0x5680d4['uniqueid']]['channel']=_0x5680d4[_0xc8fc('0xa6')];}if(this[_0xc8fc('0x24')][_0x5680d4[_0xc8fc('0xd1')]]){this[_0xc8fc('0x24')][_0x5680d4[_0xc8fc('0xd1')]][_0xc8fc('0xa6')]=_0x5680d4[_0xc8fc('0xa6')];}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x39')]=function(_0x3c9620){if(strategy[this[_0xc8fc('0x1c')][this[_0xc8fc('0x22')][_0x3c9620['actionid']]['queue']][_0xc8fc('0x51')]]===_0xc8fc('0x16')){if(this['actions'][_0x3c9620['actionid']]&&_[_0xc8fc('0xa4')](this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]][_0xc8fc('0xfc')])&&_0x3c9620['status']==='1'&&_0x3c9620['paused']==='0'){if(this[_0xc8fc('0x1e')][_0x3c9620[_0xc8fc('0xfd')]]){if(!this[_0xc8fc('0x1e')][_0x3c9620['stateinterface']][_0xc8fc('0xfc')]){this['agents'][_0x3c9620[_0xc8fc('0xfd')]][_0xc8fc('0xfc')]=!![];this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]][_0xc8fc('0xfc')]=!![];this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]]['stateinterface']=_0x3c9620[_0xc8fc('0xfd')];}}}}else if((strategy[this[_0xc8fc('0x1c')][this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]['strategy']]||'rrmemory')==='rrmemory'){if(this['actions'][_0x3c9620[_0xc8fc('0xfb')]]){if(this[_0xc8fc('0x1e')][_0x3c9620[_0xc8fc('0xfd')]]){this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]][_0xc8fc('0xfd')]=_0x3c9620['stateinterface'];if(_[_0xc8fc('0xa4')](this[_0xc8fc('0xfe')][this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]]['queue']])){this[_0xc8fc('0xfe')][this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]]['queue']]=[];}this[_0xc8fc('0xfe')][this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]][_0xc8fc('0xff')](_[_0xc8fc('0x8b')](_[_0xc8fc('0xc6')](this[_0xc8fc('0x22')][_0x3c9620[_0xc8fc('0xfb')]],[_0xc8fc('0x100'),_0xc8fc('0xfd')]),{'status':_0x3c9620['status'],'paused':_0x3c9620[_0xc8fc('0x101')]}));}}}};function unlockQueueStatus(_0x8693fa,_0x508ccb){setTimeout(function(){if(_[_0xc8fc('0x3e')](_0x8693fa['queueStatusComplete'])){loggerBooked['error'](_0xc8fc('0x102'),_0x508ccb);}_0x8693fa['queueStatusComplete']=!![];loggerBooked[_0xc8fc('0x84')]('[booked][unlockQueueStatus]',_0x508ccb,JSON[_0xc8fc('0x4b')](_[_0xc8fc('0xc6')](_0x8693fa,['name',_0xc8fc('0x103')])));},0x1f3);}Dialer[_0xc8fc('0x17')]['syncQueueStatusComplete']=function(_0x5c4579){var _0x3879c8=this;var _0x1287b0=_0x3879c8['voiceQueues'][_0x3879c8[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['queue']];if(strategy[this['voiceQueues'][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]][_0xc8fc('0x51')]]==='roundrobin'){if(this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]&&this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xfd')]){this[_0xc8fc('0x1b')][_0xc8fc('0x104')](this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0x100')],this[_0xc8fc('0x22')][_0x5c4579['actionid']][_0xc8fc('0xfd')])[_0xc8fc('0xa7')](function(_0x59b009){logger[_0xc8fc('0x90')](_0xc8fc('0x105'),util[_0xc8fc('0x91')](_0x59b009,{'showHidden':![],'depth':null}));})[_0xc8fc('0x1a')](function(){_0x3879c8[_0xc8fc('0xa9')](_0x3879c8[_0xc8fc('0x1c')][_0x3879c8[_0xc8fc('0x22')][_0x5c4579['actionid']][_0xc8fc('0xaa')]]);_0x3879c8[_0xc8fc('0x1e')][_0x3879c8[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['stateinterface']][_0xc8fc('0xfc')]=![];delete _0x3879c8[_0xc8fc('0x22')][_0x5c4579['actionid']];unlockQueueStatus(_0x1287b0);});}else{this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]);this[_0xc8fc('0xb7')]({'active':![],'ContactId':this[_0xc8fc('0x22')][_0x5c4579['actionid']][_0xc8fc('0xc7')],'ListId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xc8')],'VoiceQueueId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xca')]||undefined,'CampaignId':this['actions'][_0x5c4579['actionid']][_0xc8fc('0x106')]||undefined})[_0xc8fc('0xa7')](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]];unlockQueueStatus(_0x1287b0);}}else if((strategy[this[_0xc8fc('0x1c')][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]][_0xc8fc('0x51')]]||_0xc8fc('0x107'))==='rrmemory'){var _0x9f29cd;if(this['actions'][_0x5c4579['actionid']]&&!_[_0xc8fc('0x47')](this[_0xc8fc('0xfe')][this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]])){if(this[_0xc8fc('0x28')][_0x3879c8[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]){this[_0xc8fc('0x28')][_0x3879c8['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]=this[_0xc8fc('0x28')][this[_0xc8fc('0x22')][_0x5c4579['actionid']][_0xc8fc('0xaa')]]?this['queueBookedRR'][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['queue']]:this[_0xc8fc('0xfe')][this[_0xc8fc('0x22')][_0x5c4579['actionid']]['queue']]?this[_0xc8fc('0xfe')][this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]][_0xc8fc('0x108')]||0x0:0x0;}this[_0xc8fc('0xfe')][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['queue']]['_rr']=this['queueBookedRR'][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]];for(var _0x3d5574=0x0;_0x3d5574<this['queueBooked'][this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]][_0xc8fc('0x92')];_0x3d5574+=0x1){_0x9f29cd=rr(this['queueBooked'][this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]);this[_0xc8fc('0x28')][_0x3879c8[_0xc8fc('0x22')][_0x5c4579['actionid']]['queue']]=this['queueBooked'][this['actions'][_0x5c4579['actionid']][_0xc8fc('0xaa')]][_0xc8fc('0x108')];if(_0x9f29cd[_0xc8fc('0xa5')]==='1'&&_0x9f29cd[_0xc8fc('0x101')]==='0'){break;}}if(!_[_0xc8fc('0xa4')](_0x9f29cd)){this[_0xc8fc('0x1e')][_0x9f29cd['stateinterface']][_0xc8fc('0x109')]=_[_0xc8fc('0x3e')](this[_0xc8fc('0x1e')][_0x9f29cd['stateinterface']][_0xc8fc('0x109')])?!![]:this[_0xc8fc('0x1e')][_0x9f29cd[_0xc8fc('0xfd')]][_0xc8fc('0x109')];}loggerBooked[_0xc8fc('0x84')](_0xc8fc('0x10a'),_0x5c4579[_0xc8fc('0xfb')],'Agent:\x20',JSON[_0xc8fc('0x4b')](_[_0xc8fc('0xc6')](this['agents'][_0x9f29cd[_0xc8fc('0xfd')]],[_0xc8fc('0x41'),_0xc8fc('0x109')])),_0xc8fc('0x10b'),JSON[_0xc8fc('0x4b')](_0x9f29cd[_0xc8fc('0x100')]));if(!_[_0xc8fc('0xa4')](_0x9f29cd)&&_0x9f29cd[_0xc8fc('0xa5')]==='1'&&_0x9f29cd[_0xc8fc('0x101')]==='0'&&this[_0xc8fc('0x1e')][_0x9f29cd['stateinterface']][_0xc8fc('0x109')]){this['agents'][_0x9f29cd[_0xc8fc('0xfd')]][_0xc8fc('0x109')]=![];this[_0xc8fc('0xfe')][_0x3879c8['actions'][_0x5c4579[_0xc8fc('0xfb')]]['queue']]=[];this[_0xc8fc('0x1b')][_0xc8fc('0x104')](_0x9f29cd['idHopper'],_0x9f29cd[_0xc8fc('0xfd')])[_0xc8fc('0xa7')](function(_0x4a86f4){logger[_0xc8fc('0x90')](_0xc8fc('0x105'),util['inspect'](_0x4a86f4,{'showHidden':![],'depth':null}));})['finally'](function(){_0x3879c8[_0xc8fc('0xa9')](_0x3879c8[_0xc8fc('0x1c')][_0x3879c8[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]);setTimeout(function(){_0x3879c8[_0xc8fc('0x1e')][_0x9f29cd[_0xc8fc('0xfd')]]['unlockRR']=!![];loggerBooked[_0xc8fc('0x84')](_0xc8fc('0x10c'),_0x5c4579[_0xc8fc('0xfb')],_0xc8fc('0x10d'),JSON[_0xc8fc('0x4b')](_[_0xc8fc('0xc6')](_0x3879c8[_0xc8fc('0x1e')][_0x9f29cd[_0xc8fc('0xfd')]],[_0xc8fc('0x41'),'unlockRR'])),_0xc8fc('0x10b'),JSON['stringify'](_0x9f29cd[_0xc8fc('0x100')]));},0xc7);delete _0x3879c8[_0xc8fc('0x22')][_0x5c4579['actionid']];unlockQueueStatus(_0x1287b0,_0x5c4579[_0xc8fc('0xfb')]);});}else{loggerBooked['info']('[booked][unlock]');this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xc8fc('0x22')][_0x5c4579['actionid']]['ContactId'],'ListId':this['actions'][_0x5c4579[_0xc8fc('0xfb')]]['ListId'],'VoiceQueueId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['VoiceQueueId']||undefined,'CampaignId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0x106')]||undefined})['catch'](loggerCatch(_0xc8fc('0x10e')));delete this[_0xc8fc('0x22')][_0x5c4579['actionid']];unlockQueueStatus(_0x1287b0);}}else{loggerBooked[_0xc8fc('0x84')]('[booked][unlock2]');this[_0xc8fc('0xa9')](this[_0xc8fc('0x1c')][this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]);this[_0xc8fc('0xb7')]({'active':![],'ContactId':this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xc7')],'ListId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['ListId'],'VoiceQueueId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['VoiceQueueId']||undefined,'CampaignId':this[_0xc8fc('0x22')][_0x5c4579['actionid']][_0xc8fc('0x106')]||undefined})[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x10f')));delete this['actions'][_0x5c4579[_0xc8fc('0xfb')]];unlockQueueStatus(_0x1287b0);}}else{loggerBooked[_0xc8fc('0x84')](_0xc8fc('0x110'));this[_0xc8fc('0xa9')](this['voiceQueues'][this['actions'][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xaa')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xc8fc('0x22')][_0x5c4579['actionid']][_0xc8fc('0xc7')],'ListId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xc8')],'VoiceQueueId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]][_0xc8fc('0xca')]||undefined,'CampaignId':this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]]['CampaignId']||undefined})['catch'](loggerCatch(_0xc8fc('0x111')));delete this[_0xc8fc('0x22')][_0x5c4579[_0xc8fc('0xfb')]];unlockQueueStatus(_0x1287b0);}};Dialer['prototype'][_0xc8fc('0x3c')]=function(){var _0x1ced7b=this;setInterval(function(){_0x1ced7b[_0xc8fc('0x112')]();},0x3e8);};Dialer['prototype'][_0xc8fc('0x113')]=function(_0x479f45){var _0x100313=this;return function(){if(!_0x100313[_0xc8fc('0xcd')](_0x479f45['Trunk'])){if(!_0x100313[_0xc8fc('0xcd')](_0x479f45[_0xc8fc('0x114')])){_0x479f45[_0xc8fc('0x3f')]=_0xc8fc('0x115');throw _0x479f45[_0xc8fc('0x41')]+_0xc8fc('0x116');}}};};Dialer[_0xc8fc('0x17')][_0xc8fc('0x117')]=function(_0x219e98,_0x46e668,_0x2c056b,_0x39dd13){var _0x3dd468=this;return function(){var _0x2943cc=!![];return _0x3dd468[_0xc8fc('0x118')](_0x219e98,_0x46e668,_0x2c056b,_0x39dd13,_0x2943cc);};};Dialer['prototype']['checkIfTimeIntervals']=function(_0x2415b1,_0x56b82a,_0x1960a4,_0x3f3fa9){var _0x494da8=this;return function(){var _0x4e33e8=![];return _0x494da8[_0xc8fc('0x118')](_0x2415b1[_0xc8fc('0x48')],_0x56b82a,_0x1960a4,_0x3f3fa9,_0x4e33e8);};};Dialer[_0xc8fc('0x17')][_0xc8fc('0x118')]=function(_0x5ed020,_0x51ed4c,_0x3ea397,_0x50e53b,_0xf15a35){var _0x1bb892=[];return new BPromise(function(_0x3a2f1b,_0x119a31){if(!isNotNull(_0x5ed020)){_0x50e53b[_0xc8fc('0x3f')]=_0xc8fc('0x45');return _0x119a31(msgResponse(_0xc8fc('0x118'),'Failure',_0x3ea397+_0xc8fc('0x119')));}if(_[_0xc8fc('0x47')](_0x5ed020)){_0x50e53b[_0xc8fc('0x3f')]=_0xc8fc('0x11a');return _0x119a31(msgResponse(_0xc8fc('0x118'),_0xc8fc('0x11b'),_0x3ea397+_0xc8fc('0x11c')));}if(_0x51ed4c&&_['isUndefined'](config[_0xc8fc('0x11d')][_0x51ed4c])){_0x50e53b['message']=_0xc8fc('0x11e');return _0x119a31(msgResponse(_0xc8fc('0x118'),'Failure',_0x3ea397+'\x20Timezone\x20unknow\x20'+_0x51ed4c));}if(_[_0xc8fc('0x11f')](_0x5ed020)){for(var _0x4d1392=0x0;_0x4d1392<_0x5ed020[_0xc8fc('0x92')];_0x4d1392+=0x1){_0x1bb892[_0xc8fc('0xff')](ami[_0xc8fc('0x120')]({'action':_0xc8fc('0x121'),'command':util['format'](_0xc8fc('0x122'),_0x5ed020[_0x4d1392][_0xc8fc('0x123')],!_[_0xc8fc('0x3e')](config[_0xc8fc('0x11d')][_0x51ed4c])?_0x51ed4c:'')})[_0xc8fc('0xb1')](function(_0x35bc68){return _0x35bc68['content'][_0xc8fc('0x124')]('true')>=0x0?!![]:![];})[_0xc8fc('0xa7')](myreject(_0x119a31)));}}else{_0x1bb892[_0xc8fc('0xff')](ami[_0xc8fc('0x120')]({'action':_0xc8fc('0x121'),'command':util[_0xc8fc('0x7d')](_0xc8fc('0x122'),_0x5ed020,!_[_0xc8fc('0x3e')](config[_0xc8fc('0x11d')][_0x51ed4c])?_0x51ed4c:'')})[_0xc8fc('0xb1')](function(_0x42cc8d){return _0x42cc8d[_0xc8fc('0x125')]['indexOf'](_0xc8fc('0x126'))>=0x0?!![]:![];})['catch'](myreject(_0x119a31)));}BPromise[_0xc8fc('0x127')](_0x1bb892)[_0xc8fc('0xb1')](function(_0x3651ad){var _0x44df05=_['some'](_0x3651ad);if(_0x44df05){return _0x3a2f1b(_0x44df05);}else{_0x50e53b['message']=_0xf15a35?_0xc8fc('0x128'):_0xc8fc('0x129');return _0x119a31(msgResponse(_0xc8fc('0x12a'),_0xc8fc('0x11b'),'Global:\x20'+_0xf15a35+'\x20'+_0x3ea397+'\x20Interval\x20is\x20overtime:\x20'+util[_0xc8fc('0x91')](_0x5ed020,{'showHidden':![],'depth':null})+_0xc8fc('0x12b')+_0x51ed4c));}})[_0xc8fc('0xa7')](function(_0x6d2a17){return _0x119a31(msgResponse(_0xc8fc('0x118'),_0xc8fc('0x11b'),JSON[_0xc8fc('0x4b')](_0x6d2a17)));});});};Dialer['prototype'][_0xc8fc('0x12c')]=function(_0x3152be){var _0x14503b=this;return function(){switch(_0x3152be['dialMethod']){case'progressive':freeVariablesPredictive(_0x3152be);_0x14503b[_0xc8fc('0x12d')](_0x3152be,0x1);break;case _0xc8fc('0x12e'):freeVariablesPredictive(_0x3152be);_0x14503b[_0xc8fc('0x12d')](_0x3152be,_0x3152be[_0xc8fc('0x12f')]);break;case'predictive':_0x14503b['predictive'](_0x3152be);break;case'booked':freeVariablesPredictive(_0x3152be);_0x14503b[_0xc8fc('0x12d')](_0x3152be,0x1);break;default:freeVariablesPredictive(_0x3152be);logger[_0xc8fc('0x90')](_0xc8fc('0x130'),_0x3152be['name'],'method\x20not\x20recognized');}};};Dialer[_0xc8fc('0x17')][_0xc8fc('0x131')]=function(_0x40aba5){var _0x4926d9=this;return function(){_0x4926d9['handleIvr'](_0x40aba5);};};Dialer[_0xc8fc('0x17')]['syncQueueSummary']=function(_0x1159e9){var _0x34af95=this;if(isNotPreview(_0x1159e9[_0xc8fc('0x5d')])){if(isVoiceQueueOutbound(_0x1159e9[_0xc8fc('0x80')])&&isActive(_0x1159e9['dialActive'])){_0x1159e9[_0xc8fc('0x9a')]=!![];BPromise[_0xc8fc('0xae')]()['then'](checkIsLoggedIn(_0x1159e9,_0x1159e9[_0xc8fc('0x54')]))[_0xc8fc('0xb1')](checkIsActive(_0x1159e9,_0x1159e9['dialActive']))[_0xc8fc('0xb1')](checkInterval(_0x1159e9))[_0xc8fc('0xb1')](_0x34af95[_0xc8fc('0x113')](_0x1159e9))[_0xc8fc('0xb1')](_0x34af95[_0xc8fc('0x117')](_0x1159e9[_0xc8fc('0x132')],_0x1159e9[_0xc8fc('0x133')],_0x1159e9[_0xc8fc('0x41')],_0x1159e9))['then'](_0x34af95['checkIfTimeIntervals'](_0x1159e9[_0xc8fc('0x44')],_0x1159e9['dialTimezone'],_0x1159e9[_0xc8fc('0x41')],_0x1159e9))[_0xc8fc('0xb1')](_0x34af95[_0xc8fc('0x12c')](_0x1159e9))[_0xc8fc('0xa7')](loggerCatchQueueSummary(_0xc8fc('0x134'),_0x1159e9));}else{notSendMessagesQueue(_0x1159e9);}}else{freeVariablesPredictive(_0x1159e9);}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x112')]=function(){var _0x2bcae2=this;var _0x409b7b;for(var _0x3fec91 in this[_0xc8fc('0x1d')]){if(this[_0xc8fc('0x1d')][_0xc8fc('0x93')](_0x3fec91)){_0x409b7b=this[_0xc8fc('0x1d')][_0x3fec91];if(isCampaignIvr(_0x409b7b['type'])&&isActive(_0x409b7b['active'])){_0x409b7b[_0xc8fc('0x9a')]=!![];BPromise['resolve']()[_0xc8fc('0xb1')](checkIsActive(_0x409b7b,_0x409b7b['active']))[_0xc8fc('0xb1')](checkInterval(_0x409b7b))[_0xc8fc('0xb1')](_0x2bcae2[_0xc8fc('0x113')](_0x409b7b))[_0xc8fc('0xb1')](_0x2bcae2[_0xc8fc('0x117')](_0x409b7b[_0xc8fc('0x132')],_0x409b7b[_0xc8fc('0x133')],_0x409b7b[_0xc8fc('0x41')],_0x409b7b))['then'](_0x2bcae2['checkIfTimeIntervals'](_0x409b7b[_0xc8fc('0x44')],_0x409b7b[_0xc8fc('0x133')],_0x409b7b[_0xc8fc('0x41')],_0x409b7b))[_0xc8fc('0xb1')](_0x2bcae2[_0xc8fc('0x131')](_0x409b7b))[_0xc8fc('0xa7')](loggerCatchQueueSummary('[syncCampaigns]',_0x409b7b));}else{notSendMessagesCampaign(_0x409b7b);}}}};function getCallerIdRandom(_0x4349f4,_0x3b1967){var _0x11edbc,_0x3242e6,_0x1de33a;if(_0x3b1967<=0x0){_0x3b1967=0x1;}_0x11edbc=new RegExp('\x5cw{0,'+_0x3b1967+'}$');_0x3242e6=Math[_0xc8fc('0x135')](0xa,_0x3b1967-0x1);_0x1de33a=Math['pow'](0xa,_0x3b1967)-0x1;return util['format']('%s',_[_0xc8fc('0x136')](_0x4349f4,_0x11edbc,_[_0xc8fc('0x137')](_0x3242e6,_0x1de33a)));}function extractCalleridName(_0x1f8d3a){var _0x19780b=_0x1f8d3a[_0xc8fc('0x138')](/"(.*?)"/);return _0x19780b?_0x19780b[0x1]:_0x1f8d3a;}function extractCalleridNumber(_0x36b16f){var _0x3b03cd=_0x36b16f[_0xc8fc('0x138')](/<(.*?)>/);return _0x3b03cd?_0x3b03cd[0x1]:_0x36b16f;}Dialer[_0xc8fc('0x17')]['actionOriginate']=function(_0x26a1a,_0x22b78f){var _0x533730=this;var _0x58aa13=uuid['v4']();this[_0xc8fc('0x22')][_0x58aa13]=new Action(_0x26a1a,_0x22b78f,_0x58aa13);return new BPromise(function(_0x489f9b,_0x4f4f05){if(_[_0xc8fc('0x3e')](_0x26a1a)&&_0xc8fc('0x139')!==typeof _0x26a1a){return _0x4f4f05(msgResponse(_0xc8fc('0x13a'),_0xc8fc('0x11b'),_0xc8fc('0x13b')));}if(_[_0xc8fc('0x3e')](_0x22b78f['Contact'][_0xc8fc('0x13c')])||_0x22b78f['Contact'][_0xc8fc('0x13c')]===null){return _0x4f4f05(msgResponse(_0xc8fc('0x13a'),'Failure',_0xc8fc('0x13d')));}var _0x293d97={'XMD-CALLERID':_0x533730['actions'][_0x58aa13][_0xc8fc('0x13e')](),'XMD-AGI':_0x26a1a[_0xc8fc('0xe6')]?util[_0xc8fc('0x7d')]('\x22agi://%s/square,%s\x22',ipAgi,_0x26a1a[_0xc8fc('0xe6')]):_0xc8fc('0x13f'),'XMD-AGIAFTER':_0x26a1a[_0xc8fc('0xeb')]?util[_0xc8fc('0x7d')](_0xc8fc('0x140'),ipAgi,_0x26a1a[_0xc8fc('0xeb')]):_0xc8fc('0x13f'),'XMD-QUEUE':_0x26a1a['type']==='outbound'?util['format'](_0xc8fc('0x141'),_0x26a1a[_0xc8fc('0x41')],_0x26a1a['dialQueueOptions']||'',_0x26a1a[_0xc8fc('0xec')]?'c':'',_0x26a1a[_0xc8fc('0xf4')]||0x3):_0xc8fc('0x13f'),'XMD-CONTACTID':_0x22b78f[_0xc8fc('0xc7')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x533730['actions'][_0x58aa13][_0xc8fc('0x13e')](),'XMD-AMD':_0x26a1a[_0xc8fc('0xd5')]?_0xc8fc('0x142'):_0xc8fc('0x13f'),'XMD-DESTINATION':_0xc8fc('0xd4')};if(_0x26a1a[_0xc8fc('0xd5')]){_0x293d97[_0xc8fc('0x143')]=_0x26a1a[_0xc8fc('0x144')]||0x9c4;_0x293d97[_0xc8fc('0x145')]=_0x26a1a[_0xc8fc('0x146')]||0x5dc;_0x293d97['XMD-AMDAFTERGREETINGSILENCE']=_0x26a1a[_0xc8fc('0x147')]||0x320;_0x293d97['XMD-AMDTOTALANALYSISTIME']=_0x26a1a[_0xc8fc('0x148')]||0x1388;_0x293d97[_0xc8fc('0x149')]=_0x26a1a[_0xc8fc('0x14a')]||0x64;_0x293d97[_0xc8fc('0x14b')]=_0x26a1a[_0xc8fc('0x14c')]||0x32;_0x293d97[_0xc8fc('0x14d')]=_0x26a1a['dialAMDMaximumNumberOfWords']||0x3;_0x293d97[_0xc8fc('0x14e')]=_0x26a1a[_0xc8fc('0x14f')]||0x100;_0x293d97[_0xc8fc('0x150')]=_0x26a1a[_0xc8fc('0x151')]||0x1388;}if(_0x26a1a[_0xc8fc('0x80')]==='outbound'){_0x293d97[_0xc8fc('0x152')]=_0x22b78f[_0xc8fc('0xca')];}else{_0x293d97[_0xc8fc('0x153')]=_0x22b78f[_0xc8fc('0x106')];}for(var _0x172ad2 in _0x22b78f[_0xc8fc('0x154')]){if(_0x22b78f[_0xc8fc('0x154')][_0xc8fc('0x93')](_0x172ad2)){if(isNotNull(_0x22b78f['Contact'][_0x172ad2])&&_0x172ad2!=='id'&&_0x172ad2!=='tags'&&_0x172ad2!=='createdAt'&&_0x172ad2!==_0xc8fc('0x155')){_0x293d97[util[_0xc8fc('0x7d')](_0xc8fc('0x156'),'XMD-',_[_0xc8fc('0x157')](_0x172ad2))]=_0x22b78f[_0xc8fc('0x154')][_0x172ad2];}}}var _0x36d4cf=_0x533730[_0xc8fc('0xcd')](_0x26a1a['Trunk'])?getCallerId(_0x26a1a[_0xc8fc('0x7a')]['callerid'],_0x26a1a[_0xc8fc('0x5e')],_0x26a1a[_0xc8fc('0x158')]>0x0?getCallerIdRandom(_0x26a1a['dialOriginateCallerIdNumber'],_0x26a1a[_0xc8fc('0x158')]):_0x26a1a[_0xc8fc('0x5f')]):getCallerId(_['isNil'](_0x26a1a[_0xc8fc('0x114')])?_0x26a1a[_0xc8fc('0x7a')][_0xc8fc('0x7c')]:_0x26a1a[_0xc8fc('0x114')][_0xc8fc('0x7c')],_0x26a1a[_0xc8fc('0x5e')],_0x26a1a[_0xc8fc('0x158')]>0x0?getCallerIdRandom(_0x26a1a[_0xc8fc('0x5f')],_0x26a1a[_0xc8fc('0x158')]):_0x26a1a[_0xc8fc('0x5f')]);if(_0x36d4cf){_0x293d97[_0xc8fc('0x159')]=_0x533730[_0xc8fc('0x22')][_0x58aa13][_0xc8fc('0x15a')]=extractCalleridName(_0x36d4cf);_0x293d97[_0xc8fc('0x15b')]=_0x533730[_0xc8fc('0x22')][_0x58aa13][_0xc8fc('0x15c')]=extractCalleridNumber(_0x36d4cf);}return ami[_0xc8fc('0x120')]({'actionid':_0x58aa13,'action':'originate','channel':_0x533730['isTrunkReachable'](_0x26a1a[_0xc8fc('0x7a')])?util[_0xc8fc('0x7d')]('SIP/%s/%s%s',_0x26a1a[_0xc8fc('0x7a')][_0xc8fc('0x41')],isNotNull(_0x26a1a[_0xc8fc('0x61')])?_0x26a1a[_0xc8fc('0x61')][_0xc8fc('0x15d')]()||'':'',_0x26a1a[_0xc8fc('0x15e')]>0x0?_0x22b78f[_0xc8fc('0x154')][_0xc8fc('0x13c')]['substring'](_0x26a1a[_0xc8fc('0x15e')]):_0x22b78f[_0xc8fc('0x154')][_0xc8fc('0x13c')]):util[_0xc8fc('0x7d')](_0xc8fc('0x15f'),_[_0xc8fc('0xa4')](_0x26a1a['TrunkBackup'])?_0x26a1a[_0xc8fc('0x7a')]['name']:_0x26a1a[_0xc8fc('0x114')]['name'],isNotNull(_0x26a1a[_0xc8fc('0x61')])?_0x26a1a[_0xc8fc('0x61')][_0xc8fc('0x15d')]()||'':'',_0x26a1a[_0xc8fc('0x15e')]>0x0?_0x22b78f[_0xc8fc('0x154')]['phone']['substring'](_0x26a1a[_0xc8fc('0x15e')]):_0x22b78f[_0xc8fc('0x154')][_0xc8fc('0x13c')]),'callerid':_0x36d4cf,'Exten':_0xc8fc('0xd4'),'Context':_0xc8fc('0x160'),'Priority':'1','variable':_0x293d97,'timeout':(_0x26a1a[_0xc8fc('0x60')]||0x1e)*0x3e8,'async':!![],'channelid':_0x58aa13})[_0xc8fc('0xb1')](function(_0x53999c){return _0x489f9b(_0x53999c);})['catch'](function(_0x1b97ae){_0x26a1a[_0xc8fc('0x6b')]+=0x1;var _0x22cd45=new History(_0x533730[_0xc8fc('0x22')][_0x58aa13]);logger['error'](util[_0xc8fc('0x7d')](_0xc8fc('0x161'),JSON['stringify'](_0x1b97ae)));_0x22cd45[_0xc8fc('0x9f')]=0xe;_0x22cd45[_0xc8fc('0xa0')]=_0xc8fc('0x162');_0x22cd45[_0xc8fc('0xa1')]=moment()[_0xc8fc('0x7d')](_0xc8fc('0xed'));_0x22cd45[_0xc8fc('0x163')]=_0x22cd45[_0xc8fc('0xa1')];_0x533730[_0xc8fc('0xbf')](_0x22cd45)[_0xc8fc('0xa7')](loggerCatch('[originate][error]'));_0x533730['moveContactManagedDialer'](_0x22cd45)['catch'](loggerCatch(_0xc8fc('0x164')))[_0xc8fc('0x1a')](function(){delete _0x533730['actions'][_0x58aa13];return _0x4f4f05(msgResponse(_0xc8fc('0x13a'),'Error',_0xc8fc('0x165')));});});});};Dialer['prototype'][_0xc8fc('0x2f')]=function(_0x464b42){var _0x50da95=this[_0xc8fc('0x22')][_0x464b42['actionid']];var _0x51465e=this;if(_0x50da95){delete this[_0xc8fc('0x22')][_0x464b42[_0xc8fc('0xfb')]];_0x50da95[_0xc8fc('0xf3')]=moment()[_0xc8fc('0x7d')]('YYYY-MM-DD\x20HH:mm:ss');var _0x561f16=_0x50da95[_0xc8fc('0x80')]===_0xc8fc('0x81')?this['campaigns'][_0x50da95[_0xc8fc('0xaa')]]:this['voiceQueues'][_0x50da95[_0xc8fc('0x166')]()];if(!this[_0xc8fc('0x167')](_0x464b42[_0xc8fc('0x168')])){this[_0xc8fc('0xa9')](_0x561f16);return this['callProgressDetecting'](_0x50da95,_0x561f16,_0x464b42)[_0xc8fc('0xb1')](function(_0x11417e){})[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x169')));}else{this[_0xc8fc('0x24')][_0x464b42[_0xc8fc('0xd1')]]=_0x50da95;}}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x16a')]=function(_0x2fc4ab,_0x117348,_0x258f06){var _0x54f34e=new History(_0x117348);if(_0x54f34e[_0xc8fc('0x16b')]+_0x54f34e['countcongestionretry']+_0x54f34e['countnoanswerretry']>=_0x258f06[_0xc8fc('0x16c')]-0x1){return!![];}switch(_0x2fc4ab){case 0x3:if(_0x54f34e['countnoanswerretry']>=_0x258f06['dialNoAnswerMaxRetry']-0x1){return!![];}else{this[_0xc8fc('0xb7')]({'active':![],'countnoanswerretry':_0x54f34e['countnoanswerretry']+=0x1,'scheduledat':moment()[_0xc8fc('0x16d')](_0x258f06[_0xc8fc('0x16e')],_0xc8fc('0x16f'))[_0xc8fc('0x7d')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x54f34e[_0xc8fc('0xc7')],'ListId':_0x54f34e[_0xc8fc('0xc8')],'VoiceQueueId':_0x54f34e[_0xc8fc('0xca')]||undefined,'CampaignId':_0x54f34e[_0xc8fc('0x106')]||undefined})[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x170')));}break;case 0x5:if(_0x54f34e[_0xc8fc('0x16b')]>=_0x258f06[_0xc8fc('0x171')]-0x1){return!![];}else{this['rescheduleContact']({'active':![],'countbusyretry':_0x54f34e['countbusyretry']+=0x1,'scheduledat':moment()['add'](_0x258f06['dialBusyRetryFrequency'],_0xc8fc('0x16f'))[_0xc8fc('0x7d')](_0xc8fc('0xed')),'ContactId':_0x54f34e['ContactId'],'ListId':_0x54f34e[_0xc8fc('0xc8')],'VoiceQueueId':_0x54f34e['VoiceQueueId']||undefined,'CampaignId':_0x54f34e[_0xc8fc('0x106')]||undefined})['catch'](loggerCatch(_0xc8fc('0x172')));}break;case 0x8:if(_0x54f34e['countcongestionretry']>=_0x258f06[_0xc8fc('0x173')]-0x1){return!![];}else{this[_0xc8fc('0xb7')]({'active':![],'countcongestionretry':_0x54f34e[_0xc8fc('0x174')]+=0x1,'scheduledat':moment()[_0xc8fc('0x16d')](_0x258f06[_0xc8fc('0x175')],'minutes')['format'](_0xc8fc('0xed')),'ContactId':_0x54f34e[_0xc8fc('0xc7')],'ListId':_0x54f34e['ListId'],'VoiceQueueId':_0x54f34e[_0xc8fc('0xca')]||undefined,'CampaignId':_0x54f34e[_0xc8fc('0x106')]||undefined})[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x176')));}break;default:return!![];}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x177')]=function(_0x29aa8e,_0x1e30f9,_0x4d0574){var _0x1e39ef=this;var _0x4c2112=new History(_0x29aa8e);return new BPromise(function(_0xa27747,_0x4d465c){if(_[_0xc8fc('0x3e')](_0x1e30f9)&&_0xc8fc('0x139')!==typeof _0x1e30f9){return _0x4d465c(msgResponse('[callProgressDetecting]',_0xc8fc('0x11b'),_0xc8fc('0x178')));}if(_['isUndefined'](_0x4d0574)&&_0xc8fc('0x139')!==typeof _0x4d0574){return _0x4d465c(msgResponse(_0xc8fc('0x179'),'Failure',_0xc8fc('0x17a')));}switch(_0x4d0574['reason']){case'0':_0x1e30f9[_0xc8fc('0x6a')]+=0x1;_0x4c2112['state']=0x0;_0x4c2112[_0xc8fc('0xa0')]=_0xc8fc('0x17b');_0x1e39ef['createHistory'](_0x4c2112)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x17c')));if(_0x1e39ef[_0xc8fc('0x16a')](0x0,_0x29aa8e,_0x1e30f9)){if(_0x4c2112[_0xc8fc('0x16b')]+_0x4c2112[_0xc8fc('0x174')]+_0x4c2112['countnoanswerretry']>=_0x1e30f9[_0xc8fc('0x16c')]){_0x1e39ef[_0xc8fc('0x17d')](_0x4c2112,_0xa27747,_0x4d465c,_0xc8fc('0x17e'));}else{_0x1e39ef[_0xc8fc('0x17f')](_0x4c2112,_0xa27747,_0x4d465c,_0xc8fc('0x17e'));}}break;case'3':_0x1e30f9[_0xc8fc('0x69')]+=0x1;_0x4c2112[_0xc8fc('0x9f')]=0x3;_0x4c2112[_0xc8fc('0xa0')]='NoAnswer';_0x4c2112['countnoanswerretry']+=0x1;_0x4c2112[_0xc8fc('0x180')]+=0x1;_0x1e39ef[_0xc8fc('0xbf')](_0x4c2112)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x181')));if(_0x1e39ef['checkRetriveMax'](0x3,_0x29aa8e,_0x1e30f9)){if(_0x4c2112[_0xc8fc('0x182')]>=_0x1e30f9[_0xc8fc('0x183')]){_0x1e39ef['createStateFinal'](_0x4c2112,_0xa27747,_0x4d465c,'reason\x203\x20ringing\x20no\x20answer');}else{_0x1e39ef[_0xc8fc('0x17d')](_0x4c2112,_0xa27747,_0x4d465c,_0xc8fc('0x184'));}}break;case'5':_0x1e30f9[_0xc8fc('0x185')]+=0x1;_0x4c2112[_0xc8fc('0x9f')]=0x5;_0x4c2112['statedesc']=_0xc8fc('0x186');_0x4c2112[_0xc8fc('0x16b')]+=0x1;_0x4c2112[_0xc8fc('0x180')]+=0x1;_0x1e39ef[_0xc8fc('0xbf')](_0x4c2112)[_0xc8fc('0xa7')](loggerCatch('[syncAgentComplete][createHistory][5]'));if(_0x1e39ef[_0xc8fc('0x16a')](0x5,_0x29aa8e,_0x1e30f9)){if(_0x4c2112[_0xc8fc('0x16b')]>=_0x1e30f9[_0xc8fc('0x171')]){_0x1e39ef[_0xc8fc('0x17f')](_0x4c2112,_0xa27747,_0x4d465c,'reason\x205\x20busy');}else{_0x1e39ef[_0xc8fc('0x17d')](_0x4c2112,_0xa27747,_0x4d465c,'reason\x205\x20busy');}}break;case'8':_0x1e30f9['outboundCongestionCallsDay']+=0x1;_0x4c2112['state']=0x8;_0x4c2112[_0xc8fc('0xa0')]=_0xc8fc('0x187');_0x4c2112[_0xc8fc('0x174')]+=0x1;_0x4c2112[_0xc8fc('0x180')]+=0x1;_0x1e39ef[_0xc8fc('0xbf')](_0x4c2112)['catch'](loggerCatch('[syncAgentComplete][createHistory][8]'));if(_0x1e39ef[_0xc8fc('0x16a')](0x8,_0x29aa8e,_0x1e30f9)){if(_0x4c2112[_0xc8fc('0x174')]>=_0x1e30f9[_0xc8fc('0x173')]){_0x1e39ef[_0xc8fc('0x17f')](_0x4c2112,_0xa27747,_0x4d465c,_0xc8fc('0x188'));}else{_0x1e39ef[_0xc8fc('0x17d')](_0x4c2112,_0xa27747,_0x4d465c,_0xc8fc('0x188'));}}break;default:_0x1e30f9[_0xc8fc('0x6d')]+=0x1;_0x4c2112[_0xc8fc('0x9f')]=0xc;_0x4c2112[_0xc8fc('0xa0')]=_0x4d0574[_0xc8fc('0x189')];_0x1e39ef[_0xc8fc('0xbf')](_0x4c2112)[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x18a')));if(_0x1e39ef[_0xc8fc('0x16a')](_0x4d0574[_0xc8fc('0x189')],_0x29aa8e,_0x1e30f9)){if(_0x4c2112['countbusyretry']+_0x4c2112[_0xc8fc('0x174')]+_0x4c2112[_0xc8fc('0x182')]>=_0x1e30f9['dialGlobalMaxRetry']){_0x1e39ef['stateGlobal'](_0x4c2112,_0xa27747,_0x4d465c,_0x4d0574[_0xc8fc('0x189')]);}else{_0x1e39ef[_0xc8fc('0x17f')](_0x4c2112,_0xa27747,_0x4d465c,_0x4d0574[_0xc8fc('0x189')]);}}}});};Dialer['prototype']['stateGlobal']=function(_0x166129,_0x4d3506,_0x126308,_0x337dc1){var _0x3c8851=new Final(_0x166129);_0x3c8851[_0xc8fc('0x9f')]=0xf;_0x3c8851['statedesc']=_0xc8fc('0x18b');this[_0xc8fc('0x17f')](_0x3c8851,_0x4d3506,_0x126308,_0x337dc1);};Dialer[_0xc8fc('0x17')][_0xc8fc('0x17f')]=function(_0x59fddf,_0x5405f0,_0x1e6604,_0x2462a1){this[_0xc8fc('0xbd')](_0x59fddf)[_0xc8fc('0xb1')](function(_0x1441de){return _0x5405f0(msgResponse(_0xc8fc('0x179'),_0xc8fc('0xcc'),_0x2462a1));})[_0xc8fc('0xa7')](function(_0x42b13d){return _0x1e6604(msgResponse(_0xc8fc('0x18c'),'Failure',_0xc8fc('0x18d')));});};Dialer['prototype'][_0xc8fc('0x9')]=function(_0x39aceb){var _0x301f52=this;var _0x326346=_0x39aceb[_0xc8fc('0x18e')]/0x64;var _0x5a70a7=_0x39aceb[_0xc8fc('0x68')]/(_0x39aceb[_0xc8fc('0x68')]+_0x39aceb[_0xc8fc('0x63')]);var _0x4d2ce4=_0x39aceb[_0xc8fc('0x54')]-_0x39aceb[_0xc8fc('0x77')]-_0x39aceb[_0xc8fc('0x5a')]-_0x39aceb['originated']-_0x39aceb[_0xc8fc('0x18f')];var _0x32f20f=(_0x39aceb['loggedIn']-_0x39aceb['predictiveIntervalPauses'])*_0x39aceb[_0xc8fc('0x75')];var _0x380062=Math[_0xc8fc('0x190')](_0x39aceb['erlangCalls']*_0x39aceb[_0xc8fc('0x191')]*_0x39aceb[_0xc8fc('0x192')]*_0x39aceb['predictiveIntervalMultiplicativeFactor']);if(_[_0xc8fc('0x3e')](_0x39aceb[_0xc8fc('0x27')])){loggerPredictive[_0xc8fc('0x84')]('[startMethodPredictive][StartProgressive][First]');if(!_[_0xc8fc('0x3e')](_0x39aceb[_0xc8fc('0x26')])){_0x39aceb[_0xc8fc('0x26')]=undefined;loggerPredictive['error'](_0xc8fc('0x193'),_0xc8fc('0x194'));}if(!_[_0xc8fc('0x3e')](_0x39aceb[_0xc8fc('0x8c')])){loggerPredictive[_0xc8fc('0x90')](_0xc8fc('0x193'),_0xc8fc('0x195'));clearInterval(_0x39aceb['handlePredictive']);_0x39aceb[_0xc8fc('0x8c')]=undefined;}_0x39aceb[_0xc8fc('0x27')]=moment()[_0xc8fc('0x7d')](_0xc8fc('0xed'));loggerPredictive[_0xc8fc('0x84')]('[startMethodPredictive][StartProgressive][Date]',_0x39aceb[_0xc8fc('0x27')],_0x39aceb[_0xc8fc('0x41')]);this['handlePower'](_0x39aceb,0x1);}else if(ifInterval(_0x39aceb[_0xc8fc('0x196')],_0x39aceb[_0xc8fc('0x27')])){this[_0xc8fc('0x12d')](_0x39aceb,0x1);loggerPredictiveCalls[_0xc8fc('0x84')]('[startMethodPredictive][StartProgressive][Loop]',_0x39aceb[_0xc8fc('0x27')],_0x39aceb[_0xc8fc('0x41')]);_0x39aceb[_0xc8fc('0x197')]=0x0;_0x39aceb[_0xc8fc('0x74')]=0x0;}else if(_0x326346<_0x5a70a7&&_0x39aceb[_0xc8fc('0x198')]===_0xc8fc('0x199')){freeVariablesPredictive(_0x39aceb);loggerPredictive['info'](_0xc8fc('0x19a'),_0xc8fc('0x19b'),_0x5a70a7,_0xc8fc('0x27'),_0x39aceb[_0xc8fc('0x41')]);}else if(_0x4d2ce4>_0x32f20f){freeVariablesPredictive(_0x39aceb);loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x19c'),'Agent\x20free',_0x4d2ce4,_0xc8fc('0x19d'),_0x32f20f);}else if(_0x380062<_0x39aceb[_0xc8fc('0x74')]&&_0x39aceb[_0xc8fc('0x198')]===_0xc8fc('0x199')){freeVariablesPredictive(_0x39aceb);loggerPredictive[_0xc8fc('0x84')]('[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]',_0xc8fc('0x19e'),_0x380062,_0xc8fc('0x19f'),_0x39aceb[_0xc8fc('0x74')],_0xc8fc('0x27'),_0x39aceb[_0xc8fc('0x41')]);}else if(!ifInterval(_0x39aceb[_0xc8fc('0x196')],_0x39aceb['startProgressive'])&&_[_0xc8fc('0x3e')](_0x39aceb[_0xc8fc('0x26')])&&!_[_0xc8fc('0x3e')](_0x39aceb[_0xc8fc('0x27')])){_0x39aceb[_0xc8fc('0x26')]=moment()[_0xc8fc('0x7d')](_0xc8fc('0xed'));loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x1a0'),_0x39aceb[_0xc8fc('0x26')],_0x39aceb[_0xc8fc('0x41')]);this['averageHandleTime'](_0x39aceb[_0xc8fc('0x196')])[_0xc8fc('0xb1')](this[_0xc8fc('0x1a1')](_0x39aceb))[_0xc8fc('0xb1')](mergeDataErlangB(_0x39aceb))[_0xc8fc('0xb1')](this['startMethodPredictive'](_0x39aceb))['catch'](loggerCatchPredictive(_0xc8fc('0x1a2'),_0x39aceb));}else if(!ifInterval(_0x39aceb[_0xc8fc('0x196')],_0x39aceb[_0xc8fc('0x26')])){_0x39aceb['predictiveIntervalErlangCallsDroppedCalls']=0x0;_0x39aceb['startPredictive']=moment()[_0xc8fc('0x7d')](_0xc8fc('0xed'));loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x1a3'),_0x39aceb[_0xc8fc('0x26')],_0x39aceb[_0xc8fc('0x41')]);clearInterval(_0x39aceb['handlePredictive']);_0x39aceb['handlePredictive']=undefined;this['averageHandleTime'](_0x39aceb[_0xc8fc('0x196')])[_0xc8fc('0xb1')](this[_0xc8fc('0x1a1')](_0x39aceb))[_0xc8fc('0xb1')](mergeDataErlangB(_0x39aceb))[_0xc8fc('0xb1')](this[_0xc8fc('0x1a4')](_0x39aceb))[_0xc8fc('0xa7')](loggerCatchPredictive('[averageHandleTime][ErlangB]\x20',_0x39aceb));}};Dialer[_0xc8fc('0x17')]['getDataPredictive']=function(_0x5343f3){var _0x45265d=this;return function(_0x37a0dd){return new BPromise(function(_0x1b3d95,_0x2f2628){_[_0xc8fc('0x8b')](_0x5343f3,_0x37a0dd[0x0]);if(checkGetDataPredictive(_0x37a0dd[0x0])){loggerPredictive[_0xc8fc('0x84')](JSON[_0xc8fc('0x4b')](_0x37a0dd[0x0]));if(_0x5343f3[_0xc8fc('0x198')]===_0xc8fc('0x199')){return _0x45265d['getVoiceQueueRtPauses'](_0x5343f3['id'])[_0xc8fc('0xb1')](function(_0x38227a){var _0x282d72=_0x5343f3[_0xc8fc('0x54')]-_0x38227a[0x0]['outboundQueuePauses'];var _0x4a9948=_0x5343f3[_0xc8fc('0x196')]*0x3c;var _0x5e0fd5=_0x37a0dd[0x0][_0xc8fc('0x70')]+_0x37a0dd[0x0][_0xc8fc('0x6f')];var _0x3e7038=(_0x37a0dd[0x0]['predictiveIntervalAnsweredCalls']+_0x37a0dd[0x0][_0xc8fc('0x72')]+_0x37a0dd[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x37a0dd[0x0][_0xc8fc('0x78')];var _0x49e330=_0x5343f3[_0xc8fc('0x18e')]/0x64;_0x5343f3[_0xc8fc('0x77')]=_0x38227a[0x0]['outboundQueuePauses']||0x0;_0x5343f3[_0xc8fc('0x192')]=_0x3e7038>0x0?_0x3e7038:0x1;return _0x45265d[_0xc8fc('0x1a5')](_0x282d72,_0x4a9948,_0x5e0fd5,_0x3e7038,_0x49e330);})[_0xc8fc('0xb1')](function(_0x92612e){return _0x1b3d95(_0x92612e);})[_0xc8fc('0xa7')](function(_0x423675){return _0x2f2628(msgResponse('[CatchErlangB]',_0xc8fc('0x11b'),JSON[_0xc8fc('0x4b')](_0x423675)));});}if(_0x5343f3[_0xc8fc('0x198')]===_0xc8fc('0x1a6')){return _0x45265d['getVoiceQueueRtPauses'](_0x5343f3['id'])[_0xc8fc('0xb1')](function(_0x2918ce){var _0x38ee7a=_0x5343f3[_0xc8fc('0x54')]-_0x2918ce[0x0][_0xc8fc('0x1a7')];var _0x1699ec=_0x5343f3[_0xc8fc('0x196')]*0x3c;var _0x26caa7=_0x37a0dd[0x0][_0xc8fc('0x70')]+_0x37a0dd[0x0][_0xc8fc('0x6f')];var _0x5d4520=(_0x37a0dd[0x0]['predictiveIntervalAnsweredCalls']+_0x37a0dd[0x0][_0xc8fc('0x72')]+_0x37a0dd[0x0][_0xc8fc('0x71')])/_0x37a0dd[0x0][_0xc8fc('0x78')];var _0x3fe985=_0x5343f3[_0xc8fc('0x18e')]/0x64;_0x5343f3[_0xc8fc('0x77')]=_0x2918ce[0x0]['outboundQueuePauses']||0x0;_0x5343f3[_0xc8fc('0x192')]=_0x5d4520>0x0?_0x5d4520:0x1;return _0x45265d[_0xc8fc('0x1a8')](_0x38ee7a,_0x1699ec,_0x26caa7,_0x5d4520,_0x3fe985);})['then'](function(_0x28bd78){return _0x1b3d95(_0x28bd78);})[_0xc8fc('0xa7')](function(_0x28053a){return _0x2f2628(msgResponse(_0xc8fc('0x1a9'),_0xc8fc('0x11b'),JSON[_0xc8fc('0x4b')](_0x28053a)));});}}else{return _0x2f2628(msgResponse(_0xc8fc('0x1aa'),_0xc8fc('0x11b'),'check\x20failure'));}});};};Dialer[_0xc8fc('0x17')][_0xc8fc('0x1a4')]=function(_0x370a20){var _0x5102d9=this;return function(){var _0x2ca0f4=0x0;var _0x323b52=Math[_0xc8fc('0x190')](_0x370a20['erlangCallToSecond']*0x3e8);if(_0x323b52>0x0){_0x323b52=_0x323b52<0x64?0x64:_0x323b52;loggerPredictive['info'](_0xc8fc('0x1ab'),_0x323b52);_0x370a20[_0xc8fc('0x8c')]=setInterval(function(){_0x5102d9[_0xc8fc('0x8c')](_0x370a20);loggerPredictiveCalls[_0xc8fc('0x84')](_0xc8fc('0x1ac'),_0x2ca0f4+=0x1);},_0x323b52);}else{loggerPredictive['info'](_0xc8fc('0x1ad'),_0xc8fc('0x1ae'),_0x323b52);}};};Dialer['prototype'][_0xc8fc('0x1af')]=function(_0x4471da,_0x8dac24){var _0x33d921=this;return function(_0x588114){if(_['isEmpty'](_0x588114)){if(_['isNil'](_0x8dac24[_0xc8fc('0xc9')])||!_0x8dac24['recallme']){if(_0x4471da[_0xc8fc('0x5d')]===_0xc8fc('0x8')){_0x4471da[_0xc8fc('0x103')]=_['isUndefined'](_0x4471da[_0xc8fc('0x103')])?!![]:_0x4471da[_0xc8fc('0x103')];var _0x31df13=uuid['v4']();_0x33d921['actions'][_0x31df13]=new Action(_0x4471da,_0x8dac24,_0x31df13);loggerBooked[_0xc8fc('0x84')]('[booked][checkContactBlack]',_0x31df13,_0xc8fc('0x1b0'),JSON[_0xc8fc('0x4b')](_0x4471da[_0xc8fc('0x103')]),_0xc8fc('0x1b1'),_0x4471da['name']);if(_0x4471da[_0xc8fc('0x103')]){_0x4471da['queueStatusComplete']=![];_0x33d921[_0xc8fc('0xfe')][_0x33d921[_0xc8fc('0x22')][_0x31df13][_0xc8fc('0xaa')]]=[];ami[_0xc8fc('0x120')]({'actionid':_0x31df13,'action':_0xc8fc('0x1b2'),'queue':_0x4471da['name']})['catch'](function(_0x4d83fb){_0x33d921[_0xc8fc('0xa9')](_0x4471da);_0x33d921[_0xc8fc('0xb7')]({'active':![],'ContactId':_0x33d921[_0xc8fc('0x22')][_0x31df13][_0xc8fc('0xc7')],'ListId':_0x33d921['actions'][_0x31df13][_0xc8fc('0xc8')],'VoiceQueueId':_0x33d921['actions'][_0x31df13][_0xc8fc('0xca')]||undefined,'CampaignId':_0x33d921[_0xc8fc('0x22')][_0x31df13][_0xc8fc('0x106')]||undefined})[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x1b3')));delete _0x33d921[_0xc8fc('0x22')][_0x31df13];});}else{loggerBooked['info'](_0xc8fc('0x1b4'),JSON['stringify'](_0x4471da[_0xc8fc('0x103')]),_0xc8fc('0x1b1'),_0x4471da[_0xc8fc('0x41')]);_0x33d921['updateOriginated'](_0x4471da);_0x33d921['rescheduleContact']({'active':![],'ContactId':_0x33d921[_0xc8fc('0x22')][_0x31df13]['ContactId'],'ListId':_0x33d921[_0xc8fc('0x22')][_0x31df13][_0xc8fc('0xc8')],'VoiceQueueId':_0x33d921[_0xc8fc('0x22')][_0x31df13][_0xc8fc('0xca')]||undefined,'CampaignId':_0x33d921[_0xc8fc('0x22')][_0x31df13]['CampaignId']||undefined})['catch'](loggerCatch(_0xc8fc('0x1b3')));delete _0x33d921['actions'][_0x31df13];}}else{return _0x33d921[_0xc8fc('0x1b5')](_0x4471da,_0x8dac24);}}else{if(getDiff(_0x8dac24[_0xc8fc('0x1b6')])<_0x4471da['dialRecallMeTimeout']*0x3c){_0x33d921[_0xc8fc('0x1b')][_0xc8fc('0x104')](_0x8dac24['id'])['finally'](function(){_0x33d921[_0xc8fc('0xa9')](_0x4471da);});}else{_0x4471da[_0xc8fc('0x6c')]+=0x1;_0x33d921[_0xc8fc('0xa9')](_0x4471da);if(_0x4471da[_0xc8fc('0x1b7')]){_0x33d921['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0x8dac24[_0xc8fc('0xc7')],'ListId':_0x8dac24[_0xc8fc('0xc8')],'VoiceQueueId':_0x8dac24[_0xc8fc('0xca')]||undefined,'CampaignId':_0x8dac24[_0xc8fc('0x106')]||undefined})[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x1b8')));_0x33d921[_0xc8fc('0xbf')](createObjHistory(_0x4471da,_0x8dac24,_0xc8fc('0x1b9'),0x17,_0xc8fc('0x1ba')))[_0xc8fc('0xa7')](loggerCatch(_0xc8fc('0x1bb')));}else{_0x33d921['saveInDb'](createObjHistory(_0x4471da,_0x8dac24,'RECALLFAILEDTIMEOUT',0x16,_0xc8fc('0x1bc')),'[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]');}}}}else{_0x4471da['outboundBlacklistCallsDay']+=0x1;_0x33d921[_0xc8fc('0xc5')](createObjHistory(_0x4471da,_0x8dac24,_0xc8fc('0x1bd'),0xd,_0xc8fc('0x1be')),_0xc8fc('0x1bf'),_0xc8fc('0x1c0'));throw'inBlackList';}};};Dialer[_0xc8fc('0x17')][_0xc8fc('0x1c1')]=function(_0x1ca963){var _0x48d0c2=this;var _0xefc768=[];var _0x363e0e=_0x1ca963[_0xc8fc('0x1c2')]-_0x1ca963[_0xc8fc('0x79')]-_0x1ca963[_0xc8fc('0x1c3')];emitCampaignSummary(_0x1ca963);if(_0x363e0e>0x0){if(_0x363e0e>this[_0xc8fc('0x20')]){_0x363e0e=this[_0xc8fc('0x20')];}_0x1ca963['temp']+=_0x363e0e;this[_0xc8fc('0xba')](_0x1ca963['id'],_0x363e0e,_0x1ca963[_0xc8fc('0x1c4')])[_0xc8fc('0xb1')](function(_0x439e96){_0x1ca963['temp']-=_0x363e0e;_0x1ca963[_0xc8fc('0x1c3')]=_0x1ca963[_0xc8fc('0x1c3')]>0x0?_0x1ca963[_0xc8fc('0x1c3')]:0x0;if(!checkContactEmpty(_0x439e96)){_0x1ca963['message']=_0xc8fc('0x99');logger[_0xc8fc('0x84')](_0xc8fc('0x1c5')+_0x1ca963[_0xc8fc('0x41')]);}else{_0x1ca963['originated']+=_0x439e96[_0xc8fc('0x92')];_0x1ca963[_0xc8fc('0x3f')]=_0xc8fc('0x1c6');for(var _0x404aee=0x0;_0x404aee<_0x439e96[_0xc8fc('0x92')];_0x404aee+=0x1){_0x1ca963[_0xc8fc('0x1c7')]+=0x1;if(_['isNil'](_0x439e96[_0x404aee])||_[_0xc8fc('0xa4')](_0x439e96[_0x404aee][_0xc8fc('0x154')])||_[_0xc8fc('0xa4')](_0x439e96[_0x404aee][_0xc8fc('0x154')]['phone'])){_0x48d0c2[_0xc8fc('0xc3')](_0xc8fc('0x1c8'),_0x1ca963,_0x439e96[_0x404aee]);}else{_0x48d0c2[_0xc8fc('0xb3')](_[_0xc8fc('0xc6')](_0x439e96[_0x404aee],[_0xc8fc('0x106'),_0xc8fc('0x1c9')]))[_0xc8fc('0xb1')](_0x48d0c2[_0xc8fc('0x1af')](_0x1ca963,_0x439e96[_0x404aee]))['catch'](_0x48d0c2[_0xc8fc('0xc2')](_0xc8fc('0x1ca'),_0x1ca963));}}}})['catch'](loggerGetContactDialer(_0xc8fc('0x1cb'),_0x1ca963,_0x363e0e));}};Dialer['prototype'][_0xc8fc('0x12d')]=function(_0x5aecc7,_0x1c160d){var _0x8c8529=this;var _0x3f0bd0=[];var _0x59ce21=_0x1c160d>=0x1?_0x1c160d:0x1;var _0x5bc97c=[];if(_0x5aecc7['dialMethod']==='booked'){_0x59ce21=0x1;}var _0x3c7cb3=Math[_0xc8fc('0x190')](_0x5aecc7[_0xc8fc('0x53')]*_0x59ce21)-_0x5aecc7['originated']-_0x5aecc7[_0xc8fc('0x1c3')];emitVoiceQueueSummary(_0x5aecc7);if(_0x5aecc7[_0xc8fc('0x1cc')]>0x0){var _0x2337f4=_0x5aecc7[_0xc8fc('0x1cc')]-_0x5aecc7[_0xc8fc('0x79')]-_0x5aecc7[_0xc8fc('0x18f')]-_0x5aecc7['temp']-_0x5aecc7[_0xc8fc('0x55')];if(_0x3c7cb3>_0x2337f4){_0x3c7cb3=_0x2337f4;}}if(_0x3c7cb3>0x0){if(_0x5aecc7[_0xc8fc('0x5d')]===_0xc8fc('0x8')){_0x3c7cb3=0x1;}if(_0x3c7cb3>this[_0xc8fc('0x20')]){_0x3c7cb3=this[_0xc8fc('0x20')];}_0x5aecc7[_0xc8fc('0x1c3')]+=_0x3c7cb3;for(var _0x59d594 in this['agents']){if(this['agents'][_0xc8fc('0x93')](_0x59d594)){if(this[_0xc8fc('0x1e')][_0x59d594]['state']===_0xc8fc('0x1cd')&&this['agents'][_0x59d594]['status']===_0xc8fc('0xcf')){_0x3f0bd0[_0xc8fc('0xff')](this['agents'][_0x59d594]['id']);}}}this['getContactDialer'](_0x5aecc7['id'],_0x3f0bd0,_0x3c7cb3,_0x5aecc7[_0xc8fc('0x1c4')])[_0xc8fc('0xb1')](function(_0xe68219){_0x5aecc7[_0xc8fc('0x1c3')]-=_0x3c7cb3;_0x5aecc7[_0xc8fc('0x1c3')]=_0x5aecc7[_0xc8fc('0x1c3')]>0x0?_0x5aecc7[_0xc8fc('0x1c3')]:0x0;if(!checkContactEmpty(_0xe68219)){_0x8c8529['countReScheduled'](_0x5aecc7)[_0xc8fc('0xb1')](sendMessageReschedule(_0x5aecc7))[_0xc8fc('0xa7')](loggerCatch('[countReScheduled]\x20'));}else{_0x5aecc7[_0xc8fc('0x79')]+=_0xe68219[_0xc8fc('0x92')];_0x5aecc7[_0xc8fc('0x3f')]=_0x5aecc7[_0xc8fc('0x5d')]==='booked'?_0xc8fc('0x142'):_0xc8fc('0x1c6');for(var _0x5a020b=0x0;_0x5a020b<_0xe68219[_0xc8fc('0x92')];_0x5a020b+=0x1){if(_[_0xc8fc('0xa4')](_0xe68219[_0x5a020b])||_[_0xc8fc('0xa4')](_0xe68219[_0x5a020b][_0xc8fc('0x154')])||_[_0xc8fc('0xa4')](_0xe68219[_0x5a020b]['Contact'][_0xc8fc('0x13c')])){_0x8c8529['emptyContact']('[actionOriginate]\x20',_0x5aecc7,_0xe68219[_0x5a020b]);}else{_0x8c8529[_0xc8fc('0xb0')](_[_0xc8fc('0xc6')](_0xe68219[_0x5a020b],[_0xc8fc('0xca'),_0xc8fc('0x1c9')]))[_0xc8fc('0xb1')](_0x8c8529[_0xc8fc('0x1af')](_0x5aecc7,_0xe68219[_0x5a020b]))[_0xc8fc('0xa7')](_0x8c8529['loggerHandler'](_0xc8fc('0x1c8'),_0x5aecc7));}}}})['catch'](loggerGetContactDialer(_0xc8fc('0x1ce'),_0x5aecc7,_0x3c7cb3));}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x8c')]=function(_0x45a26b){var _0x83577e=this;if(_0x45a26b['dialLimitQueue']>0x0){var _0x2baf8d=_0x45a26b['dialLimitQueue']-_0x45a26b[_0xc8fc('0x79')]-_0x45a26b[_0xc8fc('0x18f')];if(_0x2baf8d>0x0){this[_0xc8fc('0x1cf')](_0x45a26b);}else{loggerPredictiveCalls['info'](_0xc8fc('0x1d0'));}}else{this[_0xc8fc('0x1cf')](_0x45a26b);}};Dialer[_0xc8fc('0x17')][_0xc8fc('0x1cf')]=function(_0x3bc4d8){var _0xaafb62=this;var _0x1bb427=[];_0x3bc4d8[_0xc8fc('0x79')]+=0x1;for(var _0x41f327 in this['agents']){if(this[_0xc8fc('0x1e')][_0xc8fc('0x93')](_0x41f327)){if(this[_0xc8fc('0x1e')][_0x41f327][_0xc8fc('0x9f')]===_0xc8fc('0x1cd')&&this['agents'][_0x41f327]['status']===_0xc8fc('0xcf')){_0x1bb427[_0xc8fc('0xff')](this[_0xc8fc('0x1e')][_0x41f327]['id']);}}}this['getContactDialer'](_0x3bc4d8['id'],_0x1bb427,0x1,_0x3bc4d8[_0xc8fc('0x1c4')])[_0xc8fc('0xb1')](function(_0x3cb5f6){if(!checkContactEmpty(_0x3cb5f6)){checkContactLowerLimitOriginate(_0x3bc4d8,0x1,0x0);_0xaafb62['countReScheduled'](_0x3bc4d8)[_0xc8fc('0xb1')](sendMessageReschedule(_0x3bc4d8))['catch'](loggerCatch('[countReScheduled]\x20'));}else{_0x3bc4d8[_0xc8fc('0x3f')]='RUNNING';if(_[_0xc8fc('0xa4')](_0x3cb5f6[0x0])||_['isNil'](_0x3cb5f6[0x0][_0xc8fc('0x154')])||_['isNil'](_0x3cb5f6[0x0][_0xc8fc('0x154')][_0xc8fc('0x13c')])){_0xaafb62[_0xc8fc('0xc3')](_0xc8fc('0x1c8'),_0x3bc4d8,_0x3cb5f6[0x0]);}else{_0xaafb62[_0xc8fc('0xb0')](_[_0xc8fc('0xc6')](_0x3cb5f6[0x0],[_0xc8fc('0xca'),_0xc8fc('0x1c9')]))['then'](_0xaafb62[_0xc8fc('0x1af')](_0x3bc4d8,_0x3cb5f6[0x0]))['catch'](_0xaafb62[_0xc8fc('0xc2')](_0xc8fc('0x1d1'),_0x3bc4d8));}}})[_0xc8fc('0xa7')](loggerGetContactDialer(_0xc8fc('0x1d2'),_0x3bc4d8,0x1));emitVoiceQueueSummary(_0x3bc4d8);};Dialer['prototype']['abandonmentRate']=function(_0x120bbc,_0x38a5fb,_0x156017,_0x5e75fd,_0x128739,_0x1c025c){loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x1d3'),'\x20m\x20=\x20',_0x120bbc,_0xc8fc('0x1d4'),_0x38a5fb,'\x20Ts\x20=\x20',_0x156017,'\x20p\x20=\x20',_0x5e75fd,_0xc8fc('0x1d5'),_0x128739);return new BPromise(function(_0x2ec3ce,_0x27da82){if(_0x120bbc<=0x0||isNaN(_0x120bbc)){return _0x27da82(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),'m\x20=\x20'+_0x120bbc));}if(_0x156017<=0x0||isNaN(_0x156017)){return _0x27da82(msgResponse('[abandonmentRate]',_0xc8fc('0x4a'),'Ts\x20=\x20'+_0x156017));}if(_0x5e75fd<=0x0||isNaN(_0x5e75fd)){return _0x27da82(msgResponse(_0xc8fc('0x1d3'),'Error',_0xc8fc('0x1d6')+_0x5e75fd));}if(_0x38a5fb<=0x0||isNaN(_0x38a5fb)){return _0x27da82(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),_0xc8fc('0x1d7')+_0x38a5fb));}if(_0x128739<=0x0||isNaN(_0x128739)){return _0x27da82(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),_0xc8fc('0x1d8')+_0x128739));}_0x1c025c=_0x1c025c||0x0;var _0x4bcaf5=0x1/_0x156017;var _0x581722=0x0;var _0x26bc22=0x0;var _0x5525a8=0x0;var _0x3006c8=0x0;for(var _0x12790a=0x0;_0x5525a8<_0x128739;_0x12790a+=0x1){_0x26bc22=_0x12790a/_0x38a5fb;_0x581722=(_0x5e75fd*_0x26bc22+_0x1c025c)/_0x4bcaf5;_0x5525a8=erlangb(_0x581722,_0x120bbc);_0x3006c8=_0x581722/_0x120bbc*(0x1-erlangb(_0x581722,_0x120bbc));}return _0x2ec3ce({'erlangCalls':_0x12790a,'erlangCallToSecond':_0x38a5fb/_0x12790a,'erlangAbandonmentRate':_0x5525a8,'erlangBusyFactor':_0x3006c8});});};Dialer[_0xc8fc('0x17')][_0xc8fc('0x1a8')]=function(_0x1f6579,_0x18370e,_0x37d317,_0x21e348,_0x419cf2,_0x1e7da4){loggerPredictive[_0xc8fc('0x84')](_0xc8fc('0x1d9'),_0xc8fc('0x1da'),_0x1f6579,_0xc8fc('0x1d4'),_0x18370e,_0xc8fc('0x1db'),_0x37d317,_0xc8fc('0x1dc'),_0x21e348,'\x20Umin\x20=\x20',_0x419cf2);return new BPromise(function(_0x203113,_0x251753){if(_0x1f6579<=0x0||isNaN(_0x1f6579)){return _0x251753(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),'m\x20=\x20'+_0x1f6579));}if(_0x37d317<=0x0||isNaN(_0x37d317)){return _0x251753(msgResponse('[abandonmentRate]',_0xc8fc('0x4a'),_0xc8fc('0x1dd')+_0x37d317));}if(_0x21e348<=0x0||isNaN(_0x21e348)){return _0x251753(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),'p\x20=\x20'+_0x21e348));}if(_0x18370e<=0x0||isNaN(_0x18370e)){return _0x251753(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),_0xc8fc('0x1d7')+_0x18370e));}if(_0x419cf2<=0x0||isNaN(_0x419cf2)){return _0x251753(msgResponse(_0xc8fc('0x1d3'),_0xc8fc('0x4a'),_0xc8fc('0x1d8')+_0x419cf2));}_0x1e7da4=_0x1e7da4||0x0;var _0x26c086=0x1/_0x37d317;var _0x1456c0=0x0;var _0x3f1bf4=0x0;var _0x148e11=0x0;var _0x23ce3c=0x0;for(var _0x3bc56a=0x0;_0x23ce3c<_0x419cf2;_0x3bc56a+=0x1){_0x3f1bf4=_0x3bc56a/_0x18370e;_0x1456c0=(_0x21e348*_0x3f1bf4+_0x1e7da4)/_0x26c086;_0x148e11=erlangb(_0x1456c0,_0x1f6579);_0x23ce3c=_0x1456c0/_0x1f6579*(0x1-erlangb(_0x1456c0,_0x1f6579));}return _0x203113({'erlangCalls':_0x3bc56a,'erlangCallToSecond':_0x18370e/_0x3bc56a,'erlangAbandonmentRate':_0x148e11,'erlangBusyFactor':_0x23ce3c});});};module[_0xc8fc('0x1de')]=Dialer;
\ No newline at end of file
+var _0xbaf0=['avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','getContactDialer','[getContactDialer]\x20','getContactDialerIvr','getVoiceQueueRtPauses','moveContactManagedDialer','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','notFound','saveInDb','pick','ListId','VoiceQueueId','[emptyContact][createHistory]','[emptyContact]','isSuccess','isTrunkReachable','SIP/%s','reachable','unmonitored','uniqueid','isNil','variable','amdstatus','exten','xcally-motion-dialer','dialAMDActive','value','HANGUP','membername','[syncHangupInAMD][createHistory]','MACHINE','Machine','[syncMachine][createHistory]','[syncMachine]','HangupInAMD','[syncHangupInAMDIvr]','AMD','amd','[syncMachineIvr][createHistory]','[syncHangupIvr]','dialQueueProject','AnswerAGI','AGI','[syncHangupIvr][createHistory]','cause-txt','Unknow','reason','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','syncAgentConnect','YYYY-MM-DD\x20HH:mm:ss','queueCallerAbandonCreateState','[syncQueueCallerAbandon]\x20[Drop]','droptime','responsetime','dialQueueTimeout','Drop','dropreason','TIMEOUT','CALLEREXIT','channel','actionid','paused','stateinterface','locked','rrmemory','push','idHopper','queueStatusComplete','[booked][unlockQueueStatus]','syncQueueStatusComplete','run','finally','ContactId','CampaignId','_rr','unlockRR','[booked][RR]','Agent:\x20','contactAgent-idHopper:\x20','[Catch][Preview][syncQueueStatusComplete]','[booked][RR][finaly]','[booked][unlock]','[unlock][syncQueueStatusComplete]','[booked][unlock2]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','syncCampaigns','checkIsTrunkReachable','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','checkIfTime','checkIfTimeIntervals','Intervals','ifTime','Failure','\x20Intervals\x20is\x20empty\x20','timezones','\x20Timezone\x20unknow\x20','isArray','command','iftime\x20%s,%s','interval','content','indexOf','true','all','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','progressive','handlePower','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','dialTimezone','[syncQueueSummary]','dialGlobalInterval','[syncCampaigns]','\x5cw{0,','pow','match','actionOriginate','object','voiceQueue\x20is\x20undefine','Contact','phone','originate','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','\x22%s,%s%s,,,%s\x22','NONE','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','XMD-AMDTOTALANALYSISTIME','XMD-AMDMINWORDLENGTH','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','XMD-CAMPAIGNID','tags','createdAt','updatedAt','%s%s','XMD-','toUpper','dialRandomLastDigitCallerIdNumber','TrunkBackup','dialOriginateCallerIdName','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','dialPrefix','trim','dialCutDigit','substring','SIP/%s/%s%s','from-sip','[originateError]:\x20%s','OriginateError','starttime','[originate][error]','originate\x20action\x20Error','response','callProgressDetecting','countbusyretry','countcongestionretry','countnoanswerretry','dialNoAnswerMaxRetry','add','dialNoAnswerRetryFrequency','minutes','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','dialBusyRetryFrequency','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','entity\x20is\x20undefine','evt\x20is\x20undefine','NoSuchNumber','checkRetriveMax','dialGlobalMaxRetry','stateGlobal','reason\x200\x20no\x20such\x20number....','createStateFinal','NoAnswer','countglobal','[syncAgentComplete][createHistory][3]','reason\x203\x20ringing\x20no\x20answer','Busy','reason\x205\x20busy','outboundCongestionCallsDay','Congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','[syncAgentComplete][createHistory][?]','Global','[callProgressDetecting]','[moveContactManagedDialer][0]','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','floor','erlangCalls','erlangAbandonmentRate','[startMethodPredictive][StartProgressive][First]','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','dropRate','Dropped\x20calls\x20day','[stopMethodPredictive][ReStartProgressive][LowerLimitInterval]','Agent\x20free','agent\x20max\x20free\x20','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Drop\x20in\x20this\x20interval','[startMethodPredictive][StartPredictive][First]','getDataPredictive','[averageHandleTime][ErlangB]\x20','[startMethodPredictive][StartPredictive][Repeat]','startMethodPredictive','outboundQueuePauses','abandonmentRate','[CatchErlangB]','agentBusyFactor','predictiveIntervalHitRate','busyFactor','[getDataPredictive]','erlangCallToSecond','[startMethodPredictive]','[handlePredictive]','[startMethodPredictive][milliseconds]\x20','Failure\x20','UserId','recallme','[booked][checkContactBlack]','scheduledat','dialRecallMeTimeout','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RECALLFAILEDTIMEOUT','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','Blacklist','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','temp','dialOrderByScheduledAt','AVAILABLE_CONTACTS_FINISHED','[getContactCampaign2][Empty]','ivrTotalCallsDays','Contact.phone','[getContactCampaign2]','dialLimitQueue','not_inuse','ACTIVE','RUNNING','[actionOriginate]\x20','checkContactBlack','[getContactDialer2]','tryOriginatePredictive','[handlePredictive][limitChannel]','[actionOriginatePredictive]\x20','[getContactDialerPredictive]','[abandonmentRate]','\x20m\x20=\x20','\x20interval\x20=\x20','\x20Ts\x20=\x20','\x20p\x20=\x20','p\x20=\x20','interval\x20=\x20','Amax\x20=\x20','Ts\x20=\x20','exports','lodash','bluebird','uuid','moment','md5','ioredis','../../../config/logger','dialer','booked','predictive','predictiveCalls','../ami','defaults','redis','localhost','socket.io-emitter','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./action','./agentComplete','./queueCallerAbandon','./hangup','env','127.0.0.1','roundrobin','prototype','enqueue','tail','sequence','preview','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','actions','contactsId','uniqueId','optionPredictive','startPredictive','startProgressive','ivrOriginated','queueBooked','queueBookedRR','agentconnect','bind','syncQueueCallerAbandon','syncOriginateResponse','syncAgentComplete','custom:queuesummary','syncQueueSummary','syncHangup','newexten','syncNewExten','varset','syncVarSet','queuemember','syncQueueMember','queuestatuscomplete','loopCampaigns','isUndefined','message','AGENTS_NOT_LOGGED','name','NOT_ACTIVE','\x20NOT\x20Active','Interval','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','isEmpty','[ifTime][Action]','Error','milliseconds','diff','seconds','emit','type','outbound','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','talking','total','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalLowerLimit','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','Trunk','active','callerid','stringify','format','voice_queue:save','ivr','campaign:ivr:%s','campaign:save','info','[checkGetDataPredictive][avgTalktime]','predictiveIntervalAvgHoldtime','[checkGetDataPredictive][avgHoldtime]','[checkGetDataPredictive][totalCalls]','[checkGetDataPredictive][objIsEmpty]','[ErlangB]','merge','[freeVariablesPredictive]','handlePredictive','\x22%s\x22\x20<%s>','string','error','inspect','length','hasOwnProperty','originated','[decremetOriginate]\x20object\x20originated\x20is\x20negative','[decremetOriginate]\x20is\x20null\x20or\x20undefined','[getContactDialer2][ReScheduled]','contactsRescheduled','contacts','[getContactDialer2][Empty]','sendMessageOneNotActive','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','is\x20not\x20active','IS_DISACTIVED','state','statedesc','loopClearZombieChannels','clearZombieChannels','[uniqueid]','[actions]','Action','status','catch','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','countReScheduled','resolve','then','[countReScheduled]\x20','checkIsBlackList','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','averageHandleTime'];(function(_0x43c1c5,_0x4a0817){var _0x2905dd=function(_0x5bd9b1){while(--_0x5bd9b1){_0x43c1c5['push'](_0x43c1c5['shift']());}};_0x2905dd(++_0x4a0817);}(_0xbaf0,0x12a));var _0x0baf=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xbaf0[_0x6c993a];return _0x27f547;};'use strict';var util=require('util');var _=require(_0x0baf('0x0'));var BPromise=require(_0x0baf('0x1'));var uuid=require(_0x0baf('0x2'));var moment=require(_0x0baf('0x3'));var rr=require('rr');var md5=require(_0x0baf('0x4'));var Redis=require(_0x0baf('0x5'));var config=require('../../../config/environment/');var logger=require(_0x0baf('0x6'))(_0x0baf('0x7'));var loggerBooked=require(_0x0baf('0x6'))(_0x0baf('0x8'));var loggerPredictive=require(_0x0baf('0x6'))(_0x0baf('0x9'));var loggerPredictiveCalls=require(_0x0baf('0x6'))(_0x0baf('0xa'));var loggerSyncQueueSummary=require(_0x0baf('0x6'))('syncQueueSummary');var ami=require(_0x0baf('0xb'));config['redis']=_[_0x0baf('0xc')](config[_0x0baf('0xd')],{'host':_0x0baf('0xe'),'port':0x18eb});var io=require(_0x0baf('0xf'))(new Redis(config[_0x0baf('0xd')]));var cmHopper=require(_0x0baf('0x10'));var cmHopperFinal=require(_0x0baf('0x11'));var cmHopperHistory=require(_0x0baf('0x12'));var cmHopperBlack=require(_0x0baf('0x13'));var voiceQueueRt=require(_0x0baf('0x14'));var Action=require(_0x0baf('0x15'));var History=require('./history');var Final=require('./final');var AgentComplete=require(_0x0baf('0x16'));var QueueCallerAbandon=require(_0x0baf('0x17'));var Hangup=require(_0x0baf('0x18'));var ipAgi=process[_0x0baf('0x19')]['XCALLY_IP_AGI']||_0x0baf('0x1a');var strategy={'rrmemory':'rrmemory','roundrobin':_0x0baf('0x1b')};var Sequence=function(){};Sequence[_0x0baf('0x1c')][_0x0baf('0x1d')]=function(_0x2bc381){this[_0x0baf('0x1e')]=this[_0x0baf('0x1e')]?this['tail']['finally'](_0x2bc381):_0x2bc381();};function Dialer(_0x2312c7,_0x38395b){this[_0x0baf('0x1f')]=new Sequence();this[_0x0baf('0x20')]=_0x38395b;this[_0x0baf('0x21')]=_0x2312c7[_0x0baf('0x21')];this['campaigns']=_0x2312c7[_0x0baf('0x22')];this[_0x0baf('0x23')]=_0x2312c7[_0x0baf('0x23')];this[_0x0baf('0x24')]=_0x2312c7[_0x0baf('0x24')];this[_0x0baf('0x25')]=config['maxNumberOriginate']||0x2;this['channels']={};this[_0x0baf('0x26')]={};this[_0x0baf('0x27')]={};this[_0x0baf('0x28')]={};this[_0x0baf('0x29')]={};this[_0x0baf('0x2a')]={};this[_0x0baf('0x2b')]={};this[_0x0baf('0x2c')]={};this[_0x0baf('0x2d')]={};this[_0x0baf('0x2e')]={};ami['on'](_0x0baf('0x2f'),this['syncAgentConnect'][_0x0baf('0x30')](this));ami['on']('queuecallerabandon',this[_0x0baf('0x31')]['bind'](this));ami['on']('originateresponse',this[_0x0baf('0x32')]['bind'](this));ami['on']('agentcomplete',this[_0x0baf('0x33')][_0x0baf('0x30')](this));ami['on'](_0x0baf('0x34'),this[_0x0baf('0x35')][_0x0baf('0x30')](this));ami['on']('hangup',this[_0x0baf('0x36')][_0x0baf('0x30')](this));ami['on'](_0x0baf('0x37'),this[_0x0baf('0x38')][_0x0baf('0x30')](this));ami['on'](_0x0baf('0x39'),this[_0x0baf('0x3a')]['bind'](this));ami['on'](_0x0baf('0x3b'),this[_0x0baf('0x3c')][_0x0baf('0x30')](this));ami['on'](_0x0baf('0x3d'),this['syncQueueStatusComplete'][_0x0baf('0x30')](this));this[_0x0baf('0x3e')]();this['loopClearZombieChannels']();}function isNotNull(_0x44ec31){return _0x44ec31!==null&&!_[_0x0baf('0x3f')](_0x44ec31);}function checkIsLoggedIn(_0x478ce8,_0xb4dbb1){return function(){if(_0xb4dbb1<=0x0){_0x478ce8[_0x0baf('0x40')]=_0x0baf('0x41');throw _0x478ce8[_0x0baf('0x42')]+'\x20AGENTS\x20NOT\x20LOGGED';}};}function isActive(_0xe92c2c){return _0xe92c2c;}function checkIsActive(_0x156ed7,_0x37be4e){return function(){if(!isActive(_0x37be4e)){_0x156ed7[_0x0baf('0x40')]=_0x0baf('0x43');throw _0x156ed7[_0x0baf('0x42')]+_0x0baf('0x44');}};}function checkInterval(_0x2f0a45){return function(){if(!isNotNull(_0x2f0a45[_0x0baf('0x45')])){_0x2f0a45[_0x0baf('0x40')]=_0x0baf('0x46');throw _0x2f0a45[_0x0baf('0x42')]+_0x0baf('0x47');}if(!isNotNull(_0x2f0a45[_0x0baf('0x45')]['Intervals'])){_0x2f0a45[_0x0baf('0x40')]='INTERVAL_IS_NULL';throw _0x2f0a45[_0x0baf('0x42')]+_0x0baf('0x47');}if(!isNotNull(_[_0x0baf('0x48')](_0x2f0a45[_0x0baf('0x45')]['Intervals']))){_0x2f0a45[_0x0baf('0x40')]=_0x0baf('0x46');throw _0x2f0a45['name']+_0x0baf('0x47');}};}function msgResponse(_0x2447c2,_0x62a2ed,_0xbaa9a7){return{'action':_0x2447c2,'response':_0x62a2ed,'message':_0xbaa9a7};}function myreject(_0x1f60bd){return function(_0x1b0991){return _0x1f60bd(msgResponse(_0x0baf('0x49'),_0x0baf('0x4a'),JSON['stringify'](_0x1b0991)));};}function getSeconds(_0x7e765b,_0x2ab8fa){var _0x5b991f=moment(_0x7e765b)[_0x0baf('0x4b')](0x0);var _0x57783c=moment(_0x2ab8fa)['milliseconds'](0x0);return _0x5b991f[_0x0baf('0x4c')](_0x57783c,_0x0baf('0x4d'));}function emit(_0x5d3ad1,_0x49e792,_0x628603){io['to'](_0x5d3ad1)[_0x0baf('0x4e')](_0x49e792,_0x628603);}function emitVoiceQueueSummary(_0x3412bc){if(_0x3412bc[_0x0baf('0x4f')]===_0x0baf('0x50')){var _0x2028ad={'id':_0x3412bc['id'],'name':_0x3412bc[_0x0baf('0x42')],'strategy':_0x3412bc[_0x0baf('0x51')],'answered':_0x3412bc[_0x0baf('0x52')],'available':_0x3412bc[_0x0baf('0x53')],'loggedIn':_0x3412bc[_0x0baf('0x54')],'pTalking':_0x3412bc[_0x0baf('0x55')],'sumBillable':_0x3412bc[_0x0baf('0x56')],'sumDuration':_0x3412bc[_0x0baf('0x57')],'sumHoldTime':_0x3412bc['sumHoldTime']||0x0,'talking':_0x3412bc[_0x0baf('0x58')],'total':_0x3412bc[_0x0baf('0x59')],'type':_0x3412bc['type'],'unmanaged':_0x3412bc[_0x0baf('0x5a')],'abandoned':_0x3412bc[_0x0baf('0x5b')],'waiting':_0x3412bc[_0x0baf('0x5c')],'loggedInDb':_0x3412bc[_0x0baf('0x5d')],'dialActive':_0x3412bc[_0x0baf('0x5e')],'dialMethod':_0x3412bc[_0x0baf('0x5f')],'dialOriginateCallerIdName':_0x3412bc['dialOriginateCallerIdName'],'dialOriginateCallerIdNumber':_0x3412bc[_0x0baf('0x60')],'dialOriginateTimeout':_0x3412bc[_0x0baf('0x61')],'dialPrefix':_0x3412bc['dialPrefix'],'outboundAnswerAgiCallsDay':_0x3412bc[_0x0baf('0x62')],'outboundAnswerCallsDay':_0x3412bc[_0x0baf('0x63')],'outboundBlacklistCallsDay':_0x3412bc[_0x0baf('0x64')],'outboundBusyCallsDay':_0x3412bc[_0x0baf('0x65')],'outboundCongestionCallsDay':_0x3412bc['outboundCongestionCallsDay'],'outboundDropCallsDayACS':_0x3412bc[_0x0baf('0x66')],'outboundDropCallsDayCallersExit':_0x3412bc[_0x0baf('0x67')],'outboundDropCallsDayTimeout':_0x3412bc[_0x0baf('0x68')],'outboundNoAnswerCallsDay':_0x3412bc[_0x0baf('0x69')],'outboundNoSuchCallsDay':_0x3412bc[_0x0baf('0x6a')],'outboundOriginateFailureCallsDay':_0x3412bc[_0x0baf('0x6b')],'outboundReCallsDay':_0x3412bc[_0x0baf('0x6c')],'outboundRejectCallsDay':_0x3412bc[_0x0baf('0x6d')],'outboundUnknownCallsDay':_0x3412bc[_0x0baf('0x6e')],'predictiveIntervalAnsweredCalls':_0x3412bc[_0x0baf('0x6f')],'predictiveIntervalAvgHoldtime':_0x3412bc['predictiveIntervalAvgHoldtime'],'predictiveIntervalAvgTalktime':_0x3412bc[_0x0baf('0x70')],'predictiveIntervalDroppedCallsCallersExit':_0x3412bc[_0x0baf('0x71')],'predictiveIntervalDroppedCallsTimeout':_0x3412bc[_0x0baf('0x72')],'predictiveIntervalErlangCalls':_0x3412bc[_0x0baf('0x73')],'predictiveIntervalErlangCallsDroppedCalls':_0x3412bc[_0x0baf('0x74')],'predictiveIntervalHitRate':_0x3412bc['predictiveIntervalHitRate'],'predictiveIntervalLowerLimit':_0x3412bc[_0x0baf('0x75')],'predictiveIntervalMultiplicativeFactor':_0x3412bc[_0x0baf('0x76')],'predictiveIntervalPauses':_0x3412bc[_0x0baf('0x77')],'predictiveIntervalTotalCalls':_0x3412bc[_0x0baf('0x78')],'message':_0x3412bc[_0x0baf('0x40')],'originated':_0x3412bc['originated']};if(_0x3412bc[_0x0baf('0x79')]){_0x2028ad[_0x0baf('0x79')]={'id':_0x3412bc[_0x0baf('0x79')]['id'],'name':_0x3412bc[_0x0baf('0x79')][_0x0baf('0x42')],'active':_0x3412bc[_0x0baf('0x79')][_0x0baf('0x7a')],'callerid':_0x3412bc['Trunk'][_0x0baf('0x7b')]};}if(_0x3412bc[_0x0baf('0x45')]){_0x2028ad[_0x0baf('0x45')]={'id':_0x3412bc['Interval']['id'],'name':_0x3412bc[_0x0baf('0x45')][_0x0baf('0x42')]};}var _0x10fa62=md5(JSON[_0x0baf('0x7c')](_0x2028ad));if(_0x3412bc[_0x0baf('0x4')]!==_0x10fa62){_0x3412bc[_0x0baf('0x4')]=_0x10fa62;emit(util[_0x0baf('0x7d')]('voice:queue:%s',_0x2028ad[_0x0baf('0x42')]),_0x0baf('0x7e'),_0x2028ad);}}}function emitCampaignSummary(_0x214a1d){if(_0x214a1d[_0x0baf('0x4f')]===_0x0baf('0x7f')){emit(util[_0x0baf('0x7d')](_0x0baf('0x80'),_0x214a1d[_0x0baf('0x42')]),_0x0baf('0x81'),_0x214a1d);}}function checkGetDataPredictive(_0x19c008){if(isNotNull(_0x19c008)){if(!_[_0x0baf('0x48')](_0x19c008)){if(_0x19c008['predictiveIntervalTotalCalls']>0x0){if(!_['isUndefined'](_0x19c008[_0x0baf('0x70')])&&_0x19c008[_0x0baf('0x70')]>0x0){return!![];}else{loggerPredictive[_0x0baf('0x82')](_0x0baf('0x83'),JSON[_0x0baf('0x7c')](_0x19c008));}if(!_[_0x0baf('0x3f')](_0x19c008[_0x0baf('0x84')])&&_0x19c008['predictiveIntervalAvgHoldtime']>0x0){return!![];}else{loggerPredictive[_0x0baf('0x82')](_0x0baf('0x85'),JSON[_0x0baf('0x7c')](_0x19c008));}}else{loggerPredictive[_0x0baf('0x82')](_0x0baf('0x86'),JSON[_0x0baf('0x7c')](_0x19c008));}}else{loggerPredictive['info'](_0x0baf('0x87'),JSON['stringify'](_0x19c008));}}else{loggerPredictive[_0x0baf('0x82')]('[checkGetDataPredictive][obj]',JSON[_0x0baf('0x7c')](_0x19c008));}return![];}function mergeDataErlangB(_0x5eaeb2){return function(_0x35b1a5){loggerPredictive['info'](_0x0baf('0x88'),JSON[_0x0baf('0x7c')](_0x35b1a5));_[_0x0baf('0x89')](_0x5eaeb2,_0x35b1a5);};}function getDiff(_0x4520d1){var _0x42a68b=moment()['milliseconds'](0x0);var _0x21f179=moment(_0x4520d1)[_0x0baf('0x4b')](0x0);return _0x42a68b[_0x0baf('0x4c')](_0x21f179,_0x0baf('0x4d'));}function ifInterval(_0x5fbabf,_0xa19b21){if(_['isUndefined'](_0xa19b21)){return![];}if(getDiff(_0xa19b21)<_0x5fbabf*0x3c){return!![];}else{return![];}}function freeVariablesPredictive(_0x402f4d){if(isNotNull(_0x402f4d)){if(!_[_0x0baf('0x3f')](_0x402f4d[_0x0baf('0x2b')])){_0x402f4d[_0x0baf('0x2b')]=undefined;loggerPredictive[_0x0baf('0x82')](_0x0baf('0x8a'),_0x0baf('0x2b'),_0x402f4d['name']);}if(!_['isUndefined'](_0x402f4d[_0x0baf('0x2a')])){_0x402f4d[_0x0baf('0x2a')]=undefined;loggerPredictive[_0x0baf('0x82')](_0x0baf('0x8a'),_0x0baf('0x2a'),_0x402f4d[_0x0baf('0x42')]);}if(!_[_0x0baf('0x3f')](_0x402f4d[_0x0baf('0x8b')])){clearInterval(_0x402f4d[_0x0baf('0x8b')]);_0x402f4d['handlePredictive']=undefined;loggerPredictive[_0x0baf('0x82')](_0x0baf('0x8a'),_0x0baf('0x8b'),_0x402f4d[_0x0baf('0x42')]);}}}function erlangb(_0x2024e2,_0xebfc0c){if(_0xebfc0c===0x0){return 0x0;}var _0x26f5c9=0x1;for(var _0x51d75f=0x1;_0x51d75f<=_0xebfc0c;_0x51d75f+=0x1){_0x26f5c9=0x1+_0x26f5c9*_0x51d75f/_0x2024e2;}return 0x1/_0x26f5c9;}function isVoiceQueueOutbound(_0x17189d){return _0x17189d===_0x0baf('0x50');}function isNotPreview(_0x437980){return _0x437980!==_0x0baf('0x20');}function isCampaignIvr(_0x1c7d88){return _0x1c7d88===_0x0baf('0x7f');}function getCallerId(_0x14e6d0,_0x12543e,_0x498405){if(!_[_0x0baf('0x3f')](_0x498405)&&'string'===typeof _0x498405&&!_[_0x0baf('0x48')](_0x498405)){if(!_['isUndefined'](_0x12543e)&&'string'===typeof _0x12543e&&!_[_0x0baf('0x48')](_0x12543e)){return util['format'](_0x0baf('0x8c'),_0x12543e,_0x498405);}return util[_0x0baf('0x7d')]('\x22%s\x22\x20<%s>',_0x498405,_0x498405);}if(!_[_0x0baf('0x3f')](_0x14e6d0)&&_0x0baf('0x8d')===typeof _0x14e6d0&&!_[_0x0baf('0x48')](_0x14e6d0)){return _0x14e6d0;}return'\x22\x22\x20<>';}function loggerCatchQueueSummary(_0x4d89f4,_0x2438df){return function(_0x7e8946){freeVariablesPredictive(_0x2438df);emitVoiceQueueSummary(_0x2438df);emitCampaignSummary(_0x2438df);loggerSyncQueueSummary[_0x0baf('0x8e')](_0x4d89f4,util[_0x0baf('0x8f')](_0x7e8946,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x784e1a,_0x588b88){return function(_0x1e669a){loggerPredictive['error'](_0x784e1a,JSON['stringify'](_0x1e669a));freeVariablesPredictive(_0x588b88);};}function loggerCatch(_0x59a0b2){return function(_0x427ed1){logger['error'](_0x59a0b2,util['inspect'](_0x427ed1,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x11a81e){return _0x11a81e&&!_[_0x0baf('0x3f')](_0x11a81e)&&_0x11a81e[_0x0baf('0x90')]>0x0;}function decremetOriginate(_0x3534c5){if(!_[_0x0baf('0x3f')](_0x3534c5)&&_0x3534c5!==null){if(_0x3534c5[_0x0baf('0x91')]('originated')){if(_0x3534c5[_0x0baf('0x92')]>0x0){_0x3534c5[_0x0baf('0x92')]-=0x1;}else{logger[_0x0baf('0x8e')](_0x0baf('0x93'));}}}else{logger[_0x0baf('0x8e')](_0x0baf('0x94'));}}function checkContactLowerLimitOriginate(_0x5cf3d3,_0x42e8ad,_0x468363){if(_0x42e8ad>_0x468363){for(var _0x29fd46=0x0;_0x29fd46<_0x42e8ad-_0x468363;_0x29fd46+=0x1){decremetOriginate(_0x5cf3d3);}}}function loggerGetContactDialer(_0x5d4053,_0x89484d,_0x1e474f){return function(_0x3d333d){checkContactLowerLimitOriginate(_0x89484d,_0x1e474f,0x0);logger[_0x0baf('0x8e')](_0x5d4053,util[_0x0baf('0x8f')](_0x3d333d,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x27a959){return function(_0x4cc046){if(isNotNull(_0x4cc046)&&isNotNull(_0x4cc046[0x0])){if(_0x4cc046[0x0]['contactsRescheduled']>0x0){_0x27a959['message']='RESCHEDULED_CONTACTS';logger[_0x0baf('0x82')](_0x0baf('0x95')+_0x27a959[_0x0baf('0x42')],_0x4cc046[0x0][_0x0baf('0x96')],_0x0baf('0x97'));}else{_0x27a959[_0x0baf('0x40')]='AVAILABLE_CONTACTS_FINISHED';logger['info'](_0x0baf('0x98')+_0x27a959['name']);}}};}function notSendMessagesQueue(_0x22cd07){if(_0x22cd07[_0x0baf('0x99')]){freeVariablesPredictive(_0x22cd07);if(_0x22cd07['originated']===0x0&&_0x22cd07[_0x0baf('0x58')]===0x0&&_0x22cd07[_0x0baf('0x5c')]===0x0&&(_0x22cd07[_0x0baf('0x55')]||0x0)===0x0){_0x22cd07[_0x0baf('0x99')]=![];_0x22cd07[_0x0baf('0x53')]=0x0;_0x22cd07[_0x0baf('0x40')]=_0x0baf('0x43');loggerSyncQueueSummary[_0x0baf('0x8e')](_0x0baf('0x9a'),_0x22cd07['name'],'is\x20not\x20active');}else{_0x22cd07['message']='IS_DISACTIVED';loggerSyncQueueSummary['error'](_0x0baf('0x9a'),_0x22cd07[_0x0baf('0x42')],_0x0baf('0x9b'));}emitVoiceQueueSummary(_0x22cd07);}}function notSendMessagesCampaign(_0x20a514){if(_0x20a514['sendMessageOneNotActive']){if(_0x20a514[_0x0baf('0x92')]===0x0){_0x20a514[_0x0baf('0x99')]=![];_0x20a514['message']='NOT_ACTIVE';loggerSyncQueueSummary[_0x0baf('0x8e')](_0x0baf('0x9c'),_0x20a514[_0x0baf('0x42')],_0x0baf('0x9d'));}else{_0x20a514[_0x0baf('0x40')]=_0x0baf('0x9e');loggerSyncQueueSummary[_0x0baf('0x8e')](_0x0baf('0x9c'),_0x20a514['name'],_0x0baf('0x9b'));}emitCampaignSummary(_0x20a514);}}function createObjHistory(_0x1a3b7b,_0x560c0f,_0xa82961,_0x2db4ec,_0x538f24){_0x1a3b7b[_0x0baf('0x40')]=_0xa82961;var _0x4043d5=new Action(_0x1a3b7b,_0x560c0f);var _0x421ca0=new History(_0x4043d5);_0x421ca0[_0x0baf('0x9f')]=_0x2db4ec;_0x421ca0[_0x0baf('0xa0')]=_0x538f24;_0x421ca0['endtime']=_0x4043d5['starttime'];return _0x421ca0;}Dialer[_0x0baf('0x1c')][_0x0baf('0xa1')]=function(){var _0x5dcd9e=this;setInterval(function(){_0x5dcd9e[_0x0baf('0xa2')](_0x5dcd9e[_0x0baf('0x28')],_0x0baf('0xa3'));_0x5dcd9e['clearZombieChannels'](_0x5dcd9e[_0x0baf('0x26')],_0x0baf('0xa4'));},0x32c8);};Dialer[_0x0baf('0x1c')]['clearZombieChannels']=function(_0x3c2bc1,_0x5008c5){var _0x316397=this;for(var _0x3fee46 in _0x3c2bc1){if(_0x3c2bc1[_0x0baf('0x91')](_0x3fee46)){this[_0x0baf('0x1f')][_0x0baf('0x1d')](function(){if(!_['isNil'](_0x3c2bc1[_0x3fee46])){return ami[_0x0baf('0xa5')]({'action':_0x0baf('0xa6'),'channel':_0x3c2bc1[_0x3fee46]['channel']})[_0x0baf('0xa7')](function(_0x205c3d){if(_0x205c3d[_0x0baf('0x40')]===_0x0baf('0xa8')){setTimeout(function(){if(_0x3c2bc1[_0x3fee46]&&_0x3c2bc1[_0x3fee46][_0x0baf('0x4f')]!==_0x0baf('0x7f')){_0x316397[_0x0baf('0xa9')](_0x316397[_0x0baf('0x21')][_0x3c2bc1[_0x3fee46][_0x0baf('0xaa')]]);logger[_0x0baf('0x8e')](_0x0baf('0xab'),_0x5008c5,_0x3fee46,_0x3c2bc1[_0x3fee46][_0x0baf('0xaa')]);delete _0x3c2bc1[_0x3fee46];}if(_0x3c2bc1[_0x3fee46]&&_0x3c2bc1[_0x3fee46]['type']==='ivr'){_0x316397[_0x0baf('0xa9')](_0x316397[_0x0baf('0x22')][_0x3c2bc1[_0x3fee46][_0x0baf('0xaa')]]);logger['error']('[Dialer][checkChannel][ivr]',_0x5008c5,_0x3fee46,_0x3c2bc1[_0x3fee46][_0x0baf('0xaa')]);delete _0x3c2bc1[_0x3fee46];}},0x2328);}});}});}}};Dialer[_0x0baf('0x1c')][_0x0baf('0xac')]=function(_0x371b78){return BPromise[_0x0baf('0xad')]()[_0x0baf('0xae')](cmHopper[_0x0baf('0xac')](_0x371b78))[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xaf')));};Dialer['prototype'][_0x0baf('0xb0')]=function(_0x1eb835){return BPromise[_0x0baf('0xad')]()[_0x0baf('0xae')](cmHopperBlack['checkIsBlackList'](_0x1eb835))['catch'](loggerCatch('[checkIsBlackList]\x20'));};Dialer[_0x0baf('0x1c')][_0x0baf('0xb1')]=function(_0x4ae032){return BPromise['resolve']()[_0x0baf('0xae')](cmHopperBlack[_0x0baf('0xb1')](_0x4ae032))['catch'](loggerCatch(_0x0baf('0xb2')));};Dialer[_0x0baf('0x1c')][_0x0baf('0xb3')]=function(_0x4082ce){return BPromise[_0x0baf('0xad')]()[_0x0baf('0xae')](cmHopperHistory[_0x0baf('0xb4')](_0x4082ce))[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xb5')));};Dialer[_0x0baf('0x1c')][_0x0baf('0xb6')]=function(_0x33124d){return BPromise['resolve']()[_0x0baf('0xae')](cmHopper[_0x0baf('0xb6')](_0x33124d))[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xb7')));};Dialer[_0x0baf('0x1c')][_0x0baf('0xb8')]=function(_0x49d411,_0x1bfb7c,_0x3f652b,_0x20e03a){return BPromise[_0x0baf('0xad')]()[_0x0baf('0xae')](cmHopper['getContactDialer'](_0x49d411,_0x1bfb7c,_0x3f652b,_0x20e03a))[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xb9')));};Dialer[_0x0baf('0x1c')][_0x0baf('0xba')]=function(_0x102c02,_0x5af0fc,_0x580954){return BPromise[_0x0baf('0xad')]()['then'](cmHopper[_0x0baf('0xba')](_0x102c02,_0x5af0fc,_0x580954))['catch'](loggerCatch(_0x0baf('0xb9')));};Dialer[_0x0baf('0x1c')][_0x0baf('0xbb')]=function(_0x2ddba5){return BPromise['resolve']()[_0x0baf('0xae')](voiceQueueRt[_0x0baf('0xbb')](_0x2ddba5))[_0x0baf('0xa7')](loggerCatch('[getVoiceQueueRtPauses]\x20'));};Dialer['prototype']['moveContactManagedDialer']=function(_0x4d4884){return BPromise[_0x0baf('0xad')]()[_0x0baf('0xae')](cmHopper[_0x0baf('0xbc')](_0x4d4884))[_0x0baf('0xa7')](loggerCatch('[moveContactManagedDialer]\x20'));};Dialer[_0x0baf('0x1c')][_0x0baf('0xbd')]=function(_0x1843eb){return BPromise['resolve']()[_0x0baf('0xae')](cmHopperHistory[_0x0baf('0xbd')](_0x1843eb))['catch'](loggerCatch(_0x0baf('0xbe')));};Dialer['prototype'][_0x0baf('0xa9')]=function(_0x419b50){if(!_[_0x0baf('0x3f')](_0x419b50)&&_0x419b50!==null){if(_0x419b50[_0x0baf('0x91')]('originated')){if(_0x419b50['originated']>0x0){_0x419b50[_0x0baf('0x92')]-=0x1;}else{logger['error'](_0x0baf('0xbf'));}}}else{logger[_0x0baf('0x8e')](_0x0baf('0xc0'));}};Dialer[_0x0baf('0x1c')][_0x0baf('0xc1')]=function(_0x49e05b,_0x12991a){var _0x56b05b=this;return function(_0x457b84){_0x56b05b['updateOriginated'](_0x12991a);logger[_0x0baf('0x8e')](_0x49e05b,util['inspect'](_0x457b84,{'showHidden':![],'depth':null}));};};Dialer[_0x0baf('0x1c')][_0x0baf('0xc2')]=function(_0x443f62,_0x5033f3,_0x4bdba0){var _0xf12b36={'state':0x19,'statedesc':_0x0baf('0xc3')};this[_0x0baf('0xa9')](_0x5033f3);this[_0x0baf('0xc4')](_[_0x0baf('0x89')](_0xf12b36,_[_0x0baf('0xc5')](_0x4bdba0,['ContactId',_0x0baf('0xc6'),'UserId',_0x0baf('0xc7'),'CampaignId'])),_0x0baf('0xc8'),_0x0baf('0xc9'));logger[_0x0baf('0x8e')](_0x443f62);};Dialer['prototype'][_0x0baf('0xca')]=function(_0x2bb6f6){return _0x2bb6f6==='Success';};Dialer['prototype'][_0x0baf('0xcb')]=function(_0xbb5a43){return!_[_0x0baf('0x3f')](_0xbb5a43)&&_0xbb5a43&&!_[_0x0baf('0x3f')](_0xbb5a43['name'])&&!_['isUndefined'](_0xbb5a43[_0x0baf('0x7a')])&&_0xbb5a43[_0x0baf('0x7a')]&&(this[_0x0baf('0x24')][util[_0x0baf('0x7d')](_0x0baf('0xcc'),_0xbb5a43[_0x0baf('0x42')])][_0x0baf('0xa6')]===_0x0baf('0xcd')||this[_0x0baf('0x24')][util[_0x0baf('0x7d')]('SIP/%s',_0xbb5a43[_0x0baf('0x42')])]['status']===_0x0baf('0xce'));};Dialer[_0x0baf('0x1c')][_0x0baf('0xc4')]=function(_0x2587a8,_0x4d7d29,_0x227fbd){this[_0x0baf('0xbd')](_0x2587a8)[_0x0baf('0xa7')](loggerCatch(_0x4d7d29));this[_0x0baf('0xbc')](_0x2587a8)[_0x0baf('0xa7')](loggerCatch(_0x227fbd));};Dialer[_0x0baf('0x1c')][_0x0baf('0x3a')]=function(_0x205075){var _0xb61593=this['uniqueId'][_0x205075[_0x0baf('0xcf')]];var _0x2d5063;if(!_['isNil'](_0x205075)&&!_[_0x0baf('0xd0')](_0x205075[_0x0baf('0xd1')])&&!_[_0x0baf('0xd0')](_0x205075[_0x0baf('0xd1')][_0x0baf('0xd2')])&&_0x205075[_0x0baf('0xd3')]===_0x0baf('0xd4')&&_0xb61593){if(_0xb61593[_0x0baf('0x4f')]!==_0x0baf('0x7f')&&this['voiceQueues'][_0xb61593[_0x0baf('0xaa')]][_0x0baf('0xd5')]&&_0x205075[_0x0baf('0xd6')]===_0x0baf('0xd7')){delete this[_0x0baf('0x28')][_0x205075[_0x0baf('0xcf')]];this['updateOriginated'](this[_0x0baf('0x21')][_0xb61593[_0x0baf('0xaa')]]);this[_0x0baf('0x21')][_0xb61593['queue']]['outboundAnswerCallsDay']+=0x1;this[_0x0baf('0x21')][_0xb61593[_0x0baf('0xaa')]][_0x0baf('0x62')]+=0x1;_0x2d5063=new Hangup(_0xb61593,_0x205075);_0x2d5063['state']=0x12;_0x2d5063[_0x0baf('0xa0')]='HangupInAMD';_0x2d5063[_0x0baf('0xd8')]='AMD';this[_0x0baf('0xc4')](_0x2d5063,_0x0baf('0xd9'),'[syncHangupInAMD]');}if(_0xb61593[_0x0baf('0x4f')]!==_0x0baf('0x7f')&&this[_0x0baf('0x21')][_0xb61593[_0x0baf('0xaa')]][_0x0baf('0xd5')]&&_0x205075[_0x0baf('0xd6')]===_0x0baf('0xda')){delete this['uniqueId'][_0x205075[_0x0baf('0xcf')]];this[_0x0baf('0xa9')](this[_0x0baf('0x21')][_0xb61593[_0x0baf('0xaa')]]);this[_0x0baf('0x21')][_0xb61593[_0x0baf('0xaa')]][_0x0baf('0x63')]+=0x1;this[_0x0baf('0x21')][_0xb61593[_0x0baf('0xaa')]][_0x0baf('0x62')]+=0x1;_0x2d5063=new Hangup(_0xb61593,_0x205075);_0x2d5063[_0x0baf('0x9f')]=0x13;_0x2d5063[_0x0baf('0xa0')]=_0x0baf('0xdb');_0x2d5063[_0x0baf('0xd8')]='AMD';_0x2d5063['amd']=!![];this[_0x0baf('0xc4')](_0x2d5063,_0x0baf('0xdc'),_0x0baf('0xdd'));}if(_0xb61593[_0x0baf('0x4f')]==='ivr'&&this[_0x0baf('0x22')][_0xb61593[_0x0baf('0xaa')]][_0x0baf('0xd5')]&&_0x205075[_0x0baf('0xd6')]===_0x0baf('0xd7')){delete this[_0x0baf('0x28')][_0x205075['uniqueid']];this[_0x0baf('0xa9')](this[_0x0baf('0x22')][_0xb61593[_0x0baf('0xaa')]]);_0x2d5063=new Hangup(_0xb61593,_0x205075);_0x2d5063['state']=0x12;_0x2d5063[_0x0baf('0xa0')]=_0x0baf('0xde');_0x2d5063[_0x0baf('0xd8')]='AMD';this['saveInDb'](_0x2d5063,'[syncHangupInAMDIvr][createHistory]',_0x0baf('0xdf'));}if(_0xb61593['type']===_0x0baf('0x7f')&&this[_0x0baf('0x22')][_0xb61593['queue']][_0x0baf('0xd5')]&&_0x205075['value']==='MACHINE'){delete this[_0x0baf('0x28')][_0x205075['uniqueid']];this[_0x0baf('0xa9')](this['campaigns'][_0xb61593['queue']]);_0x2d5063=new Hangup(_0xb61593,_0x205075);_0x2d5063['state']=0x13;_0x2d5063[_0x0baf('0xa0')]=_0x0baf('0xdb');_0x2d5063[_0x0baf('0xd8')]=_0x0baf('0xe0');_0x2d5063[_0x0baf('0xe1')]=!![];this[_0x0baf('0xc4')](_0x2d5063,_0x0baf('0xe2'),'[syncMachineIvr]');}}};Dialer[_0x0baf('0x1c')][_0x0baf('0x36')]=function(_0x1f9844){var _0x5cf14d=this[_0x0baf('0x28')][_0x1f9844[_0x0baf('0xcf')]];var _0x12311d=this;var _0x52c7f7;if(_0x5cf14d&&_0x5cf14d[_0x0baf('0x4f')]==='ivr'){delete this[_0x0baf('0x28')][_0x1f9844[_0x0baf('0xcf')]];this['updateOriginated'](this[_0x0baf('0x22')][_0x5cf14d[_0x0baf('0xaa')]]);this[_0x0baf('0x22')][_0x5cf14d[_0x0baf('0xaa')]]['ivrAnswerCallsDay']+=0x1;_0x52c7f7=new Hangup(_0x5cf14d,_0x1f9844);this[_0x0baf('0xbd')](_0x52c7f7)[_0x0baf('0xa7')](loggerCatch('[syncHangupIvr][createHistory]'));this['moveContactManagedDialer'](_0x52c7f7)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xe3')));}if(_0x5cf14d&&_0x5cf14d[_0x0baf('0x4f')]!==_0x0baf('0x7f')&&isNotNull(this['voiceQueues'][_0x5cf14d['queue']][_0x0baf('0xe4')])){delete this[_0x0baf('0x28')][_0x1f9844[_0x0baf('0xcf')]];this[_0x0baf('0xa9')](this[_0x0baf('0x21')][_0x5cf14d['queue']]);this[_0x0baf('0x21')][_0x5cf14d[_0x0baf('0xaa')]]['outboundAnswerCallsDay']+=0x1;this[_0x0baf('0x21')][_0x5cf14d[_0x0baf('0xaa')]]['outboundAnswerAgiCallsDay']+=0x1;_0x52c7f7=new Hangup(_0x5cf14d,_0x1f9844);_0x52c7f7[_0x0baf('0x9f')]=0x10;_0x52c7f7[_0x0baf('0xa0')]=_0x0baf('0xe5');_0x52c7f7[_0x0baf('0xd8')]=_0x0baf('0xe6');this[_0x0baf('0xbd')](_0x52c7f7)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xe7')));this['moveContactManagedDialer'](_0x52c7f7)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xe3')));}if(_0x5cf14d&&_0x5cf14d[_0x0baf('0x4f')]!==_0x0baf('0x7f')&&!isNotNull(this['voiceQueues'][_0x5cf14d[_0x0baf('0xaa')]][_0x0baf('0xe4')])){delete this['uniqueId'][_0x1f9844[_0x0baf('0xcf')]];this[_0x0baf('0xa9')](this[_0x0baf('0x21')][_0x5cf14d[_0x0baf('0xaa')]]);this['voiceQueues'][_0x5cf14d[_0x0baf('0xaa')]][_0x0baf('0x6e')]+=0x1;_0x52c7f7=new Hangup(_0x5cf14d,_0x1f9844);_0x52c7f7[_0x0baf('0x9f')]=0xc;_0x52c7f7[_0x0baf('0xa0')]=_0x1f9844[_0x0baf('0xe8')];_0x52c7f7['membername']=_0x0baf('0xe9');this[_0x0baf('0xbd')](_0x52c7f7)[_0x0baf('0xa7')](loggerCatch('[syncHangupIvr][createHistory]'));this[_0x0baf('0xbc')](_0x52c7f7)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xe3')));}};Dialer[_0x0baf('0x1c')][_0x0baf('0x33')]=function(_0x5d6253){var _0x553084=this[_0x0baf('0x28')][_0x5d6253[_0x0baf('0xcf')]];var _0x3e90bc=this;if(this['voiceQueues'][_0x5d6253[_0x0baf('0xaa')]]){if(_0x553084&&_0x553084[_0x0baf('0x4f')]!==_0x0baf('0x7f')){delete this[_0x0baf('0x28')][_0x5d6253[_0x0baf('0xcf')]];this[_0x0baf('0x21')][_0x5d6253[_0x0baf('0xaa')]][_0x0baf('0x63')]+=0x1;var _0x24b410=new AgentComplete(_0x553084,_0x5d6253);if(_0x5d6253[_0x0baf('0xea')]==='agent'){_0x24b410[_0x0baf('0xeb')]=this[_0x0baf('0x21')][_0x5d6253[_0x0baf('0xaa')]][_0x0baf('0xec')]&&this['voiceQueues'][_0x5d6253[_0x0baf('0xaa')]][_0x0baf('0xed')]?moment()[_0x0baf('0x7d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;}this[_0x0baf('0xbd')](_0x24b410)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xee')));this[_0x0baf('0xbc')](_0x24b410)[_0x0baf('0xa7')](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0x0baf('0x1c')][_0x0baf('0xef')]=function(_0x53df55){if(this['voiceQueues'][_0x53df55[_0x0baf('0xaa')]]){if(this[_0x0baf('0x28')][_0x53df55[_0x0baf('0xcf')]]&&this[_0x0baf('0x28')][_0x53df55[_0x0baf('0xcf')]][_0x0baf('0x4f')]!==_0x0baf('0x7f')){this['updateOriginated'](this['voiceQueues'][_0x53df55[_0x0baf('0xaa')]]);this[_0x0baf('0x28')][_0x53df55[_0x0baf('0xcf')]]['answertime']=moment()[_0x0baf('0x7d')](_0x0baf('0xf0'));}}};Dialer['prototype'][_0x0baf('0xf1')]=function(_0x405236){this['createHistory'](_0x405236)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xee')));this[_0x0baf('0xbc')](_0x405236)['catch'](loggerCatch(_0x0baf('0xf2')));};Dialer[_0x0baf('0x1c')][_0x0baf('0x31')]=function(_0x3de0f0){var _0x3021f7=this[_0x0baf('0x28')][_0x3de0f0[_0x0baf('0xcf')]];var _0x55bdcf=this;if(this[_0x0baf('0x21')][_0x3de0f0['queue']]){if(_0x3021f7&&_0x3021f7[_0x0baf('0x4f')]!==_0x0baf('0x7f')){delete this['uniqueId'][_0x3de0f0['uniqueid']];this[_0x0baf('0xa9')](this[_0x0baf('0x21')][_0x3de0f0[_0x0baf('0xaa')]]);_0x3021f7['droptime']=moment()[_0x0baf('0x7d')](_0x0baf('0xf0'));var _0x67acc7=new QueueCallerAbandon(_0x3021f7,_0x3de0f0);if(getSeconds(_0x3021f7[_0x0baf('0xf3')],_0x3021f7[_0x0baf('0xf4')])>=_0x3021f7[_0x0baf('0xf5')]){this[_0x0baf('0x21')][_0x3de0f0[_0x0baf('0xaa')]]['predictiveIntervalDroppedCallsTimeout']+=0x1;this['voiceQueues'][_0x3de0f0[_0x0baf('0xaa')]][_0x0baf('0x68')]+=0x1;this['voiceQueues'][_0x3de0f0[_0x0baf('0xaa')]][_0x0baf('0x74')]+=0x1;_0x67acc7[_0x0baf('0x9f')]=0xa;_0x67acc7[_0x0baf('0xa0')]=_0x0baf('0xf6');_0x67acc7[_0x0baf('0xf7')]=_0x0baf('0xf8');_0x67acc7['agiafterat']=this[_0x0baf('0x21')][_0x3de0f0['queue']][_0x0baf('0xec')]?moment()[_0x0baf('0x7d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;this['queueCallerAbandonCreateState'](_0x67acc7);}else{this[_0x0baf('0x21')][_0x3de0f0[_0x0baf('0xaa')]][_0x0baf('0x71')]+=0x1;this[_0x0baf('0x21')][_0x3de0f0[_0x0baf('0xaa')]][_0x0baf('0x67')]+=0x1;_0x67acc7[_0x0baf('0x9f')]=0xb;_0x67acc7['statedesc']='Abandoned';_0x67acc7['dropreason']=_0x0baf('0xf9');this['queueCallerAbandonCreateState'](_0x67acc7);}}}};Dialer[_0x0baf('0x1c')][_0x0baf('0x38')]=function(_0x47d5a5){if(this['actions'][_0x47d5a5[_0x0baf('0xcf')]]){this[_0x0baf('0x26')][_0x47d5a5[_0x0baf('0xcf')]][_0x0baf('0xfa')]=_0x47d5a5[_0x0baf('0xfa')];}if(this['uniqueId'][_0x47d5a5[_0x0baf('0xcf')]]){this[_0x0baf('0x28')][_0x47d5a5[_0x0baf('0xcf')]][_0x0baf('0xfa')]=_0x47d5a5[_0x0baf('0xfa')];}};Dialer[_0x0baf('0x1c')]['syncQueueMember']=function(_0xfad5df){if(strategy[this[_0x0baf('0x21')][this[_0x0baf('0x26')][_0xfad5df['actionid']][_0x0baf('0xaa')]][_0x0baf('0x51')]]==='roundrobin'){if(this[_0x0baf('0x26')][_0xfad5df[_0x0baf('0xfb')]]&&_[_0x0baf('0xd0')](this[_0x0baf('0x26')][_0xfad5df['actionid']]['locked'])&&_0xfad5df[_0x0baf('0xa6')]==='1'&&_0xfad5df[_0x0baf('0xfc')]==='0'){if(this['agents'][_0xfad5df[_0x0baf('0xfd')]]){if(!this[_0x0baf('0x23')][_0xfad5df[_0x0baf('0xfd')]][_0x0baf('0xfe')]){this[_0x0baf('0x23')][_0xfad5df['stateinterface']][_0x0baf('0xfe')]=!![];this[_0x0baf('0x26')][_0xfad5df[_0x0baf('0xfb')]][_0x0baf('0xfe')]=!![];this['actions'][_0xfad5df[_0x0baf('0xfb')]]['stateinterface']=_0xfad5df[_0x0baf('0xfd')];}}}}else if((strategy[this[_0x0baf('0x21')][this[_0x0baf('0x26')][_0xfad5df['actionid']][_0x0baf('0xaa')]][_0x0baf('0x51')]]||_0x0baf('0xff'))===_0x0baf('0xff')){if(this[_0x0baf('0x26')][_0xfad5df[_0x0baf('0xfb')]]){if(this[_0x0baf('0x23')][_0xfad5df[_0x0baf('0xfd')]]){this[_0x0baf('0x26')][_0xfad5df[_0x0baf('0xfb')]][_0x0baf('0xfd')]=_0xfad5df[_0x0baf('0xfd')];if(_['isNil'](this['queueBooked'][this[_0x0baf('0x26')][_0xfad5df['actionid']]['queue']])){this['queueBooked'][this['actions'][_0xfad5df[_0x0baf('0xfb')]][_0x0baf('0xaa')]]=[];}this['queueBooked'][this['actions'][_0xfad5df['actionid']]['queue']][_0x0baf('0x100')](_['merge'](_[_0x0baf('0xc5')](this[_0x0baf('0x26')][_0xfad5df[_0x0baf('0xfb')]],[_0x0baf('0x101'),_0x0baf('0xfd')]),{'status':_0xfad5df[_0x0baf('0xa6')],'paused':_0xfad5df[_0x0baf('0xfc')]}));}}}};function unlockQueueStatus(_0xd30f94,_0x588e61){setTimeout(function(){if(_['isUndefined'](_0xd30f94[_0x0baf('0x102')])){loggerBooked[_0x0baf('0x8e')]('[unlockQueueStatus][undefined]',_0x588e61);}_0xd30f94[_0x0baf('0x102')]=!![];loggerBooked['info'](_0x0baf('0x103'),_0x588e61,JSON['stringify'](_['pick'](_0xd30f94,[_0x0baf('0x42'),_0x0baf('0x102')])));},0x1f3);}Dialer[_0x0baf('0x1c')][_0x0baf('0x104')]=function(_0x2155db){var _0x25e86d=this;var _0x208773=_0x25e86d[_0x0baf('0x21')][_0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]];if(strategy[this[_0x0baf('0x21')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]][_0x0baf('0x51')]]==='roundrobin'){if(this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]&&this['actions'][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xfd')]){this['preview'][_0x0baf('0x105')](this['actions'][_0x2155db[_0x0baf('0xfb')]]['idHopper'],this[_0x0baf('0x26')][_0x2155db['actionid']][_0x0baf('0xfd')])[_0x0baf('0xa7')](function(_0x45015b){logger[_0x0baf('0x8e')]('[Catch][Preview][syncQueueStatusComplete]',util[_0x0baf('0x8f')](_0x45015b,{'showHidden':![],'depth':null}));})[_0x0baf('0x106')](function(){_0x25e86d[_0x0baf('0xa9')](_0x25e86d[_0x0baf('0x21')][_0x25e86d['actions'][_0x2155db['actionid']][_0x0baf('0xaa')]]);_0x25e86d[_0x0baf('0x23')][_0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['stateinterface']][_0x0baf('0xfe')]=![];delete _0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]];unlockQueueStatus(_0x208773);});}else{this['updateOriginated'](this['voiceQueues'][this[_0x0baf('0x26')][_0x2155db['actionid']][_0x0baf('0xaa')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0x107')],'ListId':this['actions'][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xc6')],'VoiceQueueId':this['actions'][_0x2155db['actionid']][_0x0baf('0xc7')]||undefined,'CampaignId':this['actions'][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0x108')]||undefined})['catch'](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]];unlockQueueStatus(_0x208773);}}else if((strategy[this['voiceQueues'][this[_0x0baf('0x26')][_0x2155db['actionid']][_0x0baf('0xaa')]][_0x0baf('0x51')]]||'rrmemory')===_0x0baf('0xff')){var _0x11b10f;if(this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]&&!_[_0x0baf('0x48')](this['queueBooked'][this[_0x0baf('0x26')][_0x2155db['actionid']]['queue']])){if(this['queueBookedRR'][_0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['queue']]){this[_0x0baf('0x2e')][_0x25e86d[_0x0baf('0x26')][_0x2155db['actionid']][_0x0baf('0xaa')]]=this[_0x0baf('0x2e')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]?this[_0x0baf('0x2e')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]:this[_0x0baf('0x2d')][this['actions'][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]?this[_0x0baf('0x2d')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['queue']][_0x0baf('0x109')]||0x0:0x0;}this['queueBooked'][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]][_0x0baf('0x109')]=this[_0x0baf('0x2e')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['queue']];for(var _0x2edcf9=0x0;_0x2edcf9<this[_0x0baf('0x2d')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]][_0x0baf('0x90')];_0x2edcf9+=0x1){_0x11b10f=rr(this[_0x0baf('0x2d')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]);this[_0x0baf('0x2e')][_0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]=this[_0x0baf('0x2d')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]['_rr'];if(_0x11b10f[_0x0baf('0xa6')]==='1'&&_0x11b10f[_0x0baf('0xfc')]==='0'){break;}}if(!_[_0x0baf('0xd0')](_0x11b10f)){this[_0x0baf('0x23')][_0x11b10f[_0x0baf('0xfd')]][_0x0baf('0x10a')]=_[_0x0baf('0x3f')](this['agents'][_0x11b10f[_0x0baf('0xfd')]][_0x0baf('0x10a')])?!![]:this[_0x0baf('0x23')][_0x11b10f[_0x0baf('0xfd')]][_0x0baf('0x10a')];}loggerBooked[_0x0baf('0x82')](_0x0baf('0x10b'),_0x2155db['actionid'],_0x0baf('0x10c'),JSON[_0x0baf('0x7c')](_[_0x0baf('0xc5')](this[_0x0baf('0x23')][_0x11b10f[_0x0baf('0xfd')]],[_0x0baf('0x42'),'unlockRR'])),_0x0baf('0x10d'),JSON[_0x0baf('0x7c')](_0x11b10f[_0x0baf('0x101')]));if(!_[_0x0baf('0xd0')](_0x11b10f)&&_0x11b10f[_0x0baf('0xa6')]==='1'&&_0x11b10f['paused']==='0'&&this['agents'][_0x11b10f[_0x0baf('0xfd')]][_0x0baf('0x10a')]){this[_0x0baf('0x23')][_0x11b10f[_0x0baf('0xfd')]][_0x0baf('0x10a')]=![];this[_0x0baf('0x2d')][_0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]=[];this[_0x0baf('0x20')][_0x0baf('0x105')](_0x11b10f[_0x0baf('0x101')],_0x11b10f[_0x0baf('0xfd')])[_0x0baf('0xa7')](function(_0x9c3772){logger[_0x0baf('0x8e')](_0x0baf('0x10e'),util[_0x0baf('0x8f')](_0x9c3772,{'showHidden':![],'depth':null}));})[_0x0baf('0x106')](function(){_0x25e86d[_0x0baf('0xa9')](_0x25e86d[_0x0baf('0x21')][_0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]);setTimeout(function(){_0x25e86d[_0x0baf('0x23')][_0x11b10f[_0x0baf('0xfd')]][_0x0baf('0x10a')]=!![];loggerBooked['info'](_0x0baf('0x10f'),_0x2155db[_0x0baf('0xfb')],_0x0baf('0x10c'),JSON[_0x0baf('0x7c')](_[_0x0baf('0xc5')](_0x25e86d['agents'][_0x11b10f[_0x0baf('0xfd')]],[_0x0baf('0x42'),_0x0baf('0x10a')])),_0x0baf('0x10d'),JSON[_0x0baf('0x7c')](_0x11b10f[_0x0baf('0x101')]));},0xc7);delete _0x25e86d[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]];unlockQueueStatus(_0x208773,_0x2155db[_0x0baf('0xfb')]);});}else{loggerBooked[_0x0baf('0x82')](_0x0baf('0x110'));this[_0x0baf('0xa9')](this[_0x0baf('0x21')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]);this[_0x0baf('0xb6')]({'active':![],'ContactId':this[_0x0baf('0x26')][_0x2155db['actionid']][_0x0baf('0x107')],'ListId':this['actions'][_0x2155db['actionid']][_0x0baf('0xc6')],'VoiceQueueId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['VoiceQueueId']||undefined,'CampaignId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0x108')]||undefined})[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x111')));delete this[_0x0baf('0x26')][_0x2155db['actionid']];unlockQueueStatus(_0x208773);}}else{loggerBooked[_0x0baf('0x82')](_0x0baf('0x112'));this[_0x0baf('0xa9')](this[_0x0baf('0x21')][this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['queue']]);this[_0x0baf('0xb6')]({'active':![],'ContactId':this['actions'][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0x107')],'ListId':this['actions'][_0x2155db['actionid']][_0x0baf('0xc6')],'VoiceQueueId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['VoiceQueueId']||undefined,'CampaignId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]]['CampaignId']||undefined})[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x113')));delete this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]];unlockQueueStatus(_0x208773);}}else{loggerBooked[_0x0baf('0x82')](_0x0baf('0x114'));this[_0x0baf('0xa9')](this['voiceQueues'][this['actions'][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xaa')]]);this[_0x0baf('0xb6')]({'active':![],'ContactId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0x107')],'ListId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0xc6')],'VoiceQueueId':this[_0x0baf('0x26')][_0x2155db['actionid']]['VoiceQueueId']||undefined,'CampaignId':this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]][_0x0baf('0x108')]||undefined})['catch'](loggerCatch('[unlock3][syncQueueStatusComplete]'));delete this[_0x0baf('0x26')][_0x2155db[_0x0baf('0xfb')]];unlockQueueStatus(_0x208773);}};Dialer[_0x0baf('0x1c')][_0x0baf('0x3e')]=function(){var _0x4a6a50=this;setInterval(function(){_0x4a6a50[_0x0baf('0x115')]();},0x3e8);};Dialer[_0x0baf('0x1c')][_0x0baf('0x116')]=function(_0x142122){var _0x211e6d=this;return function(){if(!_0x211e6d[_0x0baf('0xcb')](_0x142122[_0x0baf('0x79')])){if(!_0x211e6d[_0x0baf('0xcb')](_0x142122['TrunkBackup'])){_0x142122[_0x0baf('0x40')]=_0x0baf('0x117');throw _0x142122[_0x0baf('0x42')]+_0x0baf('0x118');}}};};Dialer[_0x0baf('0x1c')][_0x0baf('0x119')]=function(_0x57ee83,_0x3f45c2,_0x35babf,_0x4a92af){var _0x531a32=this;return function(){var _0x190469=!![];return _0x531a32['ifTime'](_0x57ee83,_0x3f45c2,_0x35babf,_0x4a92af,_0x190469);};};Dialer[_0x0baf('0x1c')][_0x0baf('0x11a')]=function(_0x13f2e1,_0x3dfad8,_0x480014,_0x109d29){var _0x1a7e30=this;return function(){var _0x32c2a8=![];return _0x1a7e30['ifTime'](_0x13f2e1[_0x0baf('0x11b')],_0x3dfad8,_0x480014,_0x109d29,_0x32c2a8);};};Dialer[_0x0baf('0x1c')]['ifTime']=function(_0x309cbe,_0x4d3ef9,_0x151095,_0x214b02,_0x392cba){var _0x42610f=[];return new BPromise(function(_0x5b8672,_0x119157){if(!isNotNull(_0x309cbe)){_0x214b02[_0x0baf('0x40')]='INTERVAL_IS_NULL';return _0x119157(msgResponse(_0x0baf('0x11c'),_0x0baf('0x11d'),_0x151095+'\x20Intervals\x20is\x20null\x20'));}if(_[_0x0baf('0x48')](_0x309cbe)){_0x214b02[_0x0baf('0x40')]='INTERVAL_IS_EMPTY';return _0x119157(msgResponse(_0x0baf('0x11c'),_0x0baf('0x11d'),_0x151095+_0x0baf('0x11e')));}if(_0x4d3ef9&&_[_0x0baf('0x3f')](config[_0x0baf('0x11f')][_0x4d3ef9])){_0x214b02[_0x0baf('0x40')]='TIMEZONE_UNKNOW';return _0x119157(msgResponse(_0x0baf('0x11c'),_0x0baf('0x11d'),_0x151095+_0x0baf('0x120')+_0x4d3ef9));}if(_[_0x0baf('0x121')](_0x309cbe)){for(var _0x297194=0x0;_0x297194<_0x309cbe[_0x0baf('0x90')];_0x297194+=0x1){_0x42610f[_0x0baf('0x100')](ami[_0x0baf('0xa5')]({'action':_0x0baf('0x122'),'command':util[_0x0baf('0x7d')](_0x0baf('0x123'),_0x309cbe[_0x297194][_0x0baf('0x124')],!_[_0x0baf('0x3f')](config[_0x0baf('0x11f')][_0x4d3ef9])?_0x4d3ef9:'')})[_0x0baf('0xae')](function(_0x13b7f4){return _0x13b7f4[_0x0baf('0x125')][_0x0baf('0x126')](_0x0baf('0x127'))>=0x0?!![]:![];})[_0x0baf('0xa7')](myreject(_0x119157)));}}else{_0x42610f[_0x0baf('0x100')](ami[_0x0baf('0xa5')]({'action':'command','command':util[_0x0baf('0x7d')](_0x0baf('0x123'),_0x309cbe,!_['isUndefined'](config['timezones'][_0x4d3ef9])?_0x4d3ef9:'')})['then'](function(_0x58594f){return _0x58594f['content']['indexOf']('true')>=0x0?!![]:![];})[_0x0baf('0xa7')](myreject(_0x119157)));}BPromise[_0x0baf('0x128')](_0x42610f)[_0x0baf('0xae')](function(_0x5ab269){var _0xab54=_['some'](_0x5ab269);if(_0xab54){return _0x5b8672(_0xab54);}else{_0x214b02['message']=_0x392cba?_0x0baf('0x129'):_0x0baf('0x12a');return _0x119157(msgResponse(_0x0baf('0x12b'),'Failure','Global:\x20'+_0x392cba+'\x20'+_0x151095+_0x0baf('0x12c')+util[_0x0baf('0x8f')](_0x309cbe,{'showHidden':![],'depth':null})+_0x0baf('0x12d')+_0x4d3ef9));}})[_0x0baf('0xa7')](function(_0x2839ee){return _0x119157(msgResponse(_0x0baf('0x11c'),'Failure',JSON['stringify'](_0x2839ee)));});});};Dialer[_0x0baf('0x1c')][_0x0baf('0x12e')]=function(_0x5f0333){var _0x303168=this;return function(){switch(_0x5f0333[_0x0baf('0x5f')]){case _0x0baf('0x12f'):freeVariablesPredictive(_0x5f0333);_0x303168[_0x0baf('0x130')](_0x5f0333,0x1);break;case'power':freeVariablesPredictive(_0x5f0333);_0x303168[_0x0baf('0x130')](_0x5f0333,_0x5f0333['dialPowerLevel']);break;case'predictive':_0x303168[_0x0baf('0x9')](_0x5f0333);break;case'booked':freeVariablesPredictive(_0x5f0333);_0x303168['handlePower'](_0x5f0333,0x1);break;default:freeVariablesPredictive(_0x5f0333);logger[_0x0baf('0x8e')](_0x0baf('0x131'),_0x5f0333['name'],_0x0baf('0x132'));}};};Dialer[_0x0baf('0x1c')][_0x0baf('0x133')]=function(_0x4447ef){var _0x8bf97a=this;return function(){_0x8bf97a[_0x0baf('0x134')](_0x4447ef);};};Dialer['prototype'][_0x0baf('0x35')]=function(_0x47fcb1){var _0x2a4997=this;if(isNotPreview(_0x47fcb1[_0x0baf('0x5f')])){if(isVoiceQueueOutbound(_0x47fcb1['type'])&&isActive(_0x47fcb1['dialActive'])){_0x47fcb1[_0x0baf('0x99')]=!![];BPromise[_0x0baf('0xad')]()['then'](checkIsLoggedIn(_0x47fcb1,_0x47fcb1[_0x0baf('0x54')]))[_0x0baf('0xae')](checkIsActive(_0x47fcb1,_0x47fcb1[_0x0baf('0x5e')]))[_0x0baf('0xae')](checkInterval(_0x47fcb1))[_0x0baf('0xae')](_0x2a4997[_0x0baf('0x116')](_0x47fcb1))[_0x0baf('0xae')](_0x2a4997[_0x0baf('0x119')](_0x47fcb1['dialGlobalInterval'],_0x47fcb1[_0x0baf('0x135')],_0x47fcb1[_0x0baf('0x42')],_0x47fcb1))['then'](_0x2a4997['checkIfTimeIntervals'](_0x47fcb1[_0x0baf('0x45')],_0x47fcb1[_0x0baf('0x135')],_0x47fcb1['name'],_0x47fcb1))[_0x0baf('0xae')](_0x2a4997[_0x0baf('0x12e')](_0x47fcb1))['catch'](loggerCatchQueueSummary(_0x0baf('0x136'),_0x47fcb1));}else{notSendMessagesQueue(_0x47fcb1);}}else{freeVariablesPredictive(_0x47fcb1);}};Dialer[_0x0baf('0x1c')][_0x0baf('0x115')]=function(){var _0x20a841=this;var _0x320e24;for(var _0x9f5f16 in this[_0x0baf('0x22')]){if(this[_0x0baf('0x22')][_0x0baf('0x91')](_0x9f5f16)){_0x320e24=this['campaigns'][_0x9f5f16];if(isCampaignIvr(_0x320e24[_0x0baf('0x4f')])&&isActive(_0x320e24[_0x0baf('0x7a')])){_0x320e24['sendMessageOneNotActive']=!![];BPromise['resolve']()[_0x0baf('0xae')](checkIsActive(_0x320e24,_0x320e24['active']))[_0x0baf('0xae')](checkInterval(_0x320e24))[_0x0baf('0xae')](_0x20a841[_0x0baf('0x116')](_0x320e24))[_0x0baf('0xae')](_0x20a841[_0x0baf('0x119')](_0x320e24[_0x0baf('0x137')],_0x320e24[_0x0baf('0x135')],_0x320e24[_0x0baf('0x42')],_0x320e24))[_0x0baf('0xae')](_0x20a841['checkIfTimeIntervals'](_0x320e24[_0x0baf('0x45')],_0x320e24[_0x0baf('0x135')],_0x320e24[_0x0baf('0x42')],_0x320e24))[_0x0baf('0xae')](_0x20a841['launchHandleIvr'](_0x320e24))[_0x0baf('0xa7')](loggerCatchQueueSummary(_0x0baf('0x138'),_0x320e24));}else{notSendMessagesCampaign(_0x320e24);}}}};function getCallerIdRandom(_0x1f6caf,_0x550db0){var _0x18f389,_0x996e84,_0x71ddfe;if(_0x550db0<=0x0){_0x550db0=0x1;}_0x18f389=new RegExp(_0x0baf('0x139')+_0x550db0+'}$');_0x996e84=Math['pow'](0xa,_0x550db0-0x1);_0x71ddfe=Math[_0x0baf('0x13a')](0xa,_0x550db0)-0x1;return util[_0x0baf('0x7d')]('%s',_['replace'](_0x1f6caf,_0x18f389,_['random'](_0x996e84,_0x71ddfe)));}function extractCalleridName(_0x569de4){var _0x274106=_0x569de4[_0x0baf('0x13b')](/"(.*?)"/);return _0x274106?_0x274106[0x1]:_0x569de4;}function extractCalleridNumber(_0x11b9bc){var _0x55a024=_0x11b9bc[_0x0baf('0x13b')](/<(.*?)>/);return _0x55a024?_0x55a024[0x1]:_0x11b9bc;}Dialer[_0x0baf('0x1c')][_0x0baf('0x13c')]=function(_0x124381,_0x1bf21d){var _0x57af39=this;var _0x1fbf46=uuid['v4']();this[_0x0baf('0x26')][_0x1fbf46]=new Action(_0x124381,_0x1bf21d,_0x1fbf46);return new BPromise(function(_0x1a9639,_0x1a4099){if(_[_0x0baf('0x3f')](_0x124381)&&_0x0baf('0x13d')!==typeof _0x124381){return _0x1a4099(msgResponse('originate',_0x0baf('0x11d'),_0x0baf('0x13e')));}if(_[_0x0baf('0x3f')](_0x1bf21d[_0x0baf('0x13f')][_0x0baf('0x140')])||_0x1bf21d[_0x0baf('0x13f')]['phone']===null){return _0x1a4099(msgResponse(_0x0baf('0x141'),_0x0baf('0x11d'),_0x0baf('0x142')));}var _0x50d3ba={'XMD-CALLERID':_0x57af39[_0x0baf('0x26')][_0x1fbf46][_0x0baf('0x143')](),'XMD-AGI':_0x124381[_0x0baf('0xe4')]?util[_0x0baf('0x7d')]('\x22agi://%s/square,%s\x22',ipAgi,_0x124381[_0x0baf('0xe4')]):'NONE','XMD-AGIAFTER':_0x124381[_0x0baf('0xec')]?util[_0x0baf('0x7d')](_0x0baf('0x144'),ipAgi,_0x124381['dialQueueProject2']):'NONE','XMD-QUEUE':_0x124381[_0x0baf('0x4f')]===_0x0baf('0x50')?util[_0x0baf('0x7d')](_0x0baf('0x145'),_0x124381['name'],_0x124381['dialQueueOptions']||'',_0x124381['dialAgiAfterHangupAgent']?'c':'',_0x124381[_0x0baf('0xf5')]||0x3):_0x0baf('0x146'),'XMD-CONTACTID':_0x1bf21d[_0x0baf('0x107')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x57af39[_0x0baf('0x26')][_0x1fbf46][_0x0baf('0x143')](),'XMD-AMD':_0x124381[_0x0baf('0xd5')]?'ACTIVE':_0x0baf('0x146'),'XMD-DESTINATION':_0x0baf('0xd4')};if(_0x124381[_0x0baf('0xd5')]){_0x50d3ba['XMD-AMDINITIALSILENCE']=_0x124381['dialAMDInitialSilence']||0x9c4;_0x50d3ba['XMD-AMDGREETING']=_0x124381['dialAMDGreeting']||0x5dc;_0x50d3ba[_0x0baf('0x147')]=_0x124381[_0x0baf('0x148')]||0x320;_0x50d3ba[_0x0baf('0x149')]=_0x124381['dialAMDTotalAnalysisTime']||0x1388;_0x50d3ba[_0x0baf('0x14a')]=_0x124381['dialAMDMinWordLength']||0x64;_0x50d3ba[_0x0baf('0x14b')]=_0x124381[_0x0baf('0x14c')]||0x32;_0x50d3ba['XMD-AMDMAXIMUMNUMBEROFWORDS']=_0x124381['dialAMDMaximumNumberOfWords']||0x3;_0x50d3ba[_0x0baf('0x14d')]=_0x124381[_0x0baf('0x14e')]||0x100;_0x50d3ba[_0x0baf('0x14f')]=_0x124381['dialAMDMaximumWordLength']||0x1388;}if(_0x124381[_0x0baf('0x4f')]===_0x0baf('0x50')){_0x50d3ba['XMD-VOICEQUEUEID']=_0x1bf21d['VoiceQueueId'];}else{_0x50d3ba[_0x0baf('0x150')]=_0x1bf21d[_0x0baf('0x108')];}for(var _0x12ece7 in _0x1bf21d[_0x0baf('0x13f')]){if(_0x1bf21d[_0x0baf('0x13f')][_0x0baf('0x91')](_0x12ece7)){if(isNotNull(_0x1bf21d[_0x0baf('0x13f')][_0x12ece7])&&_0x12ece7!=='id'&&_0x12ece7!==_0x0baf('0x151')&&_0x12ece7!==_0x0baf('0x152')&&_0x12ece7!==_0x0baf('0x153')){_0x50d3ba[util[_0x0baf('0x7d')](_0x0baf('0x154'),_0x0baf('0x155'),_[_0x0baf('0x156')](_0x12ece7))]=_0x1bf21d[_0x0baf('0x13f')][_0x12ece7];}}}var _0x5d0462=_0x57af39[_0x0baf('0xcb')](_0x124381[_0x0baf('0x79')])?getCallerId(_0x124381[_0x0baf('0x79')]['callerid'],_0x124381['dialOriginateCallerIdName'],_0x124381[_0x0baf('0x157')]>0x0?getCallerIdRandom(_0x124381[_0x0baf('0x60')],_0x124381[_0x0baf('0x157')]):_0x124381[_0x0baf('0x60')]):getCallerId(_[_0x0baf('0xd0')](_0x124381[_0x0baf('0x158')])?_0x124381[_0x0baf('0x79')][_0x0baf('0x7b')]:_0x124381[_0x0baf('0x158')][_0x0baf('0x7b')],_0x124381[_0x0baf('0x159')],_0x124381[_0x0baf('0x157')]>0x0?getCallerIdRandom(_0x124381[_0x0baf('0x60')],_0x124381[_0x0baf('0x157')]):_0x124381[_0x0baf('0x60')]);if(_0x5d0462){_0x50d3ba['XMD-ORIGINATECALLERIDNAME']=_0x57af39[_0x0baf('0x26')][_0x1fbf46][_0x0baf('0x15a')]=extractCalleridName(_0x5d0462);_0x50d3ba[_0x0baf('0x15b')]=_0x57af39[_0x0baf('0x26')][_0x1fbf46][_0x0baf('0x15c')]=extractCalleridNumber(_0x5d0462);}return ami[_0x0baf('0xa5')]({'actionid':_0x1fbf46,'action':_0x0baf('0x141'),'channel':_0x57af39['isTrunkReachable'](_0x124381['Trunk'])?util[_0x0baf('0x7d')]('SIP/%s/%s%s',_0x124381['Trunk'][_0x0baf('0x42')],isNotNull(_0x124381['dialPrefix'])?_0x124381[_0x0baf('0x15d')][_0x0baf('0x15e')]()||'':'',_0x124381[_0x0baf('0x15f')]>0x0?_0x1bf21d[_0x0baf('0x13f')][_0x0baf('0x140')][_0x0baf('0x160')](_0x124381[_0x0baf('0x15f')]):_0x1bf21d[_0x0baf('0x13f')]['phone']):util['format'](_0x0baf('0x161'),_[_0x0baf('0xd0')](_0x124381[_0x0baf('0x158')])?_0x124381[_0x0baf('0x79')][_0x0baf('0x42')]:_0x124381['TrunkBackup'][_0x0baf('0x42')],isNotNull(_0x124381[_0x0baf('0x15d')])?_0x124381[_0x0baf('0x15d')][_0x0baf('0x15e')]()||'':'',_0x124381[_0x0baf('0x15f')]>0x0?_0x1bf21d[_0x0baf('0x13f')][_0x0baf('0x140')][_0x0baf('0x160')](_0x124381[_0x0baf('0x15f')]):_0x1bf21d[_0x0baf('0x13f')][_0x0baf('0x140')]),'callerid':_0x5d0462,'Exten':_0x0baf('0xd4'),'Context':_0x0baf('0x162'),'Priority':'1','variable':_0x50d3ba,'timeout':(_0x124381[_0x0baf('0x61')]||0x1e)*0x3e8,'async':!![],'channelid':_0x1fbf46})[_0x0baf('0xae')](function(_0x165555){return _0x1a9639(_0x165555);})[_0x0baf('0xa7')](function(_0x151fa8){_0x124381[_0x0baf('0x6b')]+=0x1;var _0x45de47=new History(_0x57af39['actions'][_0x1fbf46]);logger[_0x0baf('0x8e')](util[_0x0baf('0x7d')](_0x0baf('0x163'),JSON['stringify'](_0x151fa8)));_0x45de47['state']=0xe;_0x45de47[_0x0baf('0xa0')]=_0x0baf('0x164');_0x45de47['starttime']=moment()[_0x0baf('0x7d')](_0x0baf('0xf0'));_0x45de47['endtime']=_0x45de47[_0x0baf('0x165')];_0x57af39[_0x0baf('0xbd')](_0x45de47)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x166')));_0x57af39[_0x0baf('0xbc')](_0x45de47)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x166')))['finally'](function(){delete _0x57af39['actions'][_0x1fbf46];return _0x1a4099(msgResponse(_0x0baf('0x141'),'Error',_0x0baf('0x167')));});});});};Dialer[_0x0baf('0x1c')][_0x0baf('0x32')]=function(_0x4bd15b){var _0x2dcb3d=this[_0x0baf('0x26')][_0x4bd15b['actionid']];var _0x37a60f=this;if(_0x2dcb3d){delete this[_0x0baf('0x26')][_0x4bd15b[_0x0baf('0xfb')]];_0x2dcb3d[_0x0baf('0xf4')]=moment()[_0x0baf('0x7d')](_0x0baf('0xf0'));var _0x348fb3=_0x2dcb3d[_0x0baf('0x4f')]===_0x0baf('0x7f')?this['campaigns'][_0x2dcb3d[_0x0baf('0xaa')]]:this[_0x0baf('0x21')][_0x2dcb3d['getQueue']()];if(!this['isSuccess'](_0x4bd15b[_0x0baf('0x168')])){this[_0x0baf('0xa9')](_0x348fb3);return this[_0x0baf('0x169')](_0x2dcb3d,_0x348fb3,_0x4bd15b)[_0x0baf('0xae')](function(_0x34d2db){})['catch'](loggerCatch('[callProgressDetecting]\x20'));}else{this[_0x0baf('0x28')][_0x4bd15b['uniqueid']]=_0x2dcb3d;}}};Dialer[_0x0baf('0x1c')]['checkRetriveMax']=function(_0x87c21a,_0xf9d8f0,_0x176b5e){var _0x5c62e6=new History(_0xf9d8f0);if(_0x5c62e6[_0x0baf('0x16a')]+_0x5c62e6[_0x0baf('0x16b')]+_0x5c62e6[_0x0baf('0x16c')]>=_0x176b5e['dialGlobalMaxRetry']-0x1){return!![];}switch(_0x87c21a){case 0x3:if(_0x5c62e6[_0x0baf('0x16c')]>=_0x176b5e[_0x0baf('0x16d')]-0x1){return!![];}else{this[_0x0baf('0xb6')]({'active':![],'countnoanswerretry':_0x5c62e6[_0x0baf('0x16c')]+=0x1,'scheduledat':moment()[_0x0baf('0x16e')](_0x176b5e[_0x0baf('0x16f')],_0x0baf('0x170'))[_0x0baf('0x7d')](_0x0baf('0xf0')),'ContactId':_0x5c62e6[_0x0baf('0x107')],'ListId':_0x5c62e6['ListId'],'VoiceQueueId':_0x5c62e6[_0x0baf('0xc7')]||undefined,'CampaignId':_0x5c62e6[_0x0baf('0x108')]||undefined})['catch'](loggerCatch(_0x0baf('0x171')));}break;case 0x5:if(_0x5c62e6[_0x0baf('0x16a')]>=_0x176b5e[_0x0baf('0x172')]-0x1){return!![];}else{this[_0x0baf('0xb6')]({'active':![],'countbusyretry':_0x5c62e6['countbusyretry']+=0x1,'scheduledat':moment()[_0x0baf('0x16e')](_0x176b5e[_0x0baf('0x173')],_0x0baf('0x170'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x5c62e6[_0x0baf('0x107')],'ListId':_0x5c62e6['ListId'],'VoiceQueueId':_0x5c62e6[_0x0baf('0xc7')]||undefined,'CampaignId':_0x5c62e6[_0x0baf('0x108')]||undefined})['catch'](loggerCatch('[rescheduleContact]\x20[Busy]'));}break;case 0x8:if(_0x5c62e6['countcongestionretry']>=_0x176b5e['dialCongestionMaxRetry']-0x1){return!![];}else{this[_0x0baf('0xb6')]({'active':![],'countcongestionretry':_0x5c62e6[_0x0baf('0x16b')]+=0x1,'scheduledat':moment()[_0x0baf('0x16e')](_0x176b5e[_0x0baf('0x174')],_0x0baf('0x170'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x5c62e6[_0x0baf('0x107')],'ListId':_0x5c62e6[_0x0baf('0xc6')],'VoiceQueueId':_0x5c62e6['VoiceQueueId']||undefined,'CampaignId':_0x5c62e6[_0x0baf('0x108')]||undefined})['catch'](loggerCatch(_0x0baf('0x175')));}break;default:return!![];}};Dialer[_0x0baf('0x1c')]['callProgressDetecting']=function(_0x3559f5,_0x332439,_0x54ea86){var _0x237d95=this;var _0x43955d=new History(_0x3559f5);return new BPromise(function(_0x4aa54,_0x3498eb){if(_['isUndefined'](_0x332439)&&_0x0baf('0x13d')!==typeof _0x332439){return _0x3498eb(msgResponse('[callProgressDetecting]',_0x0baf('0x11d'),_0x0baf('0x176')));}if(_[_0x0baf('0x3f')](_0x54ea86)&&'object'!==typeof _0x54ea86){return _0x3498eb(msgResponse('[callProgressDetecting]',_0x0baf('0x11d'),_0x0baf('0x177')));}switch(_0x54ea86[_0x0baf('0xea')]){case'0':_0x332439['outboundNoSuchCallsDay']+=0x1;_0x43955d[_0x0baf('0x9f')]=0x0;_0x43955d[_0x0baf('0xa0')]=_0x0baf('0x178');_0x237d95['createHistory'](_0x43955d)[_0x0baf('0xa7')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x237d95[_0x0baf('0x179')](0x0,_0x3559f5,_0x332439)){if(_0x43955d[_0x0baf('0x16a')]+_0x43955d[_0x0baf('0x16b')]+_0x43955d[_0x0baf('0x16c')]>=_0x332439[_0x0baf('0x17a')]){_0x237d95[_0x0baf('0x17b')](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x17c'));}else{_0x237d95[_0x0baf('0x17d')](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x17c'));}}break;case'3':_0x332439['outboundNoAnswerCallsDay']+=0x1;_0x43955d[_0x0baf('0x9f')]=0x3;_0x43955d[_0x0baf('0xa0')]=_0x0baf('0x17e');_0x43955d[_0x0baf('0x16c')]+=0x1;_0x43955d[_0x0baf('0x17f')]+=0x1;_0x237d95[_0x0baf('0xbd')](_0x43955d)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x180')));if(_0x237d95[_0x0baf('0x179')](0x3,_0x3559f5,_0x332439)){if(_0x43955d[_0x0baf('0x16c')]>=_0x332439['dialNoAnswerMaxRetry']){_0x237d95[_0x0baf('0x17d')](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x181'));}else{_0x237d95['stateGlobal'](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x181'));}}break;case'5':_0x332439[_0x0baf('0x65')]+=0x1;_0x43955d[_0x0baf('0x9f')]=0x5;_0x43955d[_0x0baf('0xa0')]=_0x0baf('0x182');_0x43955d[_0x0baf('0x16a')]+=0x1;_0x43955d[_0x0baf('0x17f')]+=0x1;_0x237d95[_0x0baf('0xbd')](_0x43955d)[_0x0baf('0xa7')](loggerCatch('[syncAgentComplete][createHistory][5]'));if(_0x237d95[_0x0baf('0x179')](0x5,_0x3559f5,_0x332439)){if(_0x43955d[_0x0baf('0x16a')]>=_0x332439[_0x0baf('0x172')]){_0x237d95[_0x0baf('0x17d')](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x183'));}else{_0x237d95['stateGlobal'](_0x43955d,_0x4aa54,_0x3498eb,'reason\x205\x20busy');}}break;case'8':_0x332439[_0x0baf('0x184')]+=0x1;_0x43955d['state']=0x8;_0x43955d[_0x0baf('0xa0')]=_0x0baf('0x185');_0x43955d[_0x0baf('0x16b')]+=0x1;_0x43955d[_0x0baf('0x17f')]+=0x1;_0x237d95[_0x0baf('0xbd')](_0x43955d)[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x186')));if(_0x237d95[_0x0baf('0x179')](0x8,_0x3559f5,_0x332439)){if(_0x43955d[_0x0baf('0x16b')]>=_0x332439['dialCongestionMaxRetry']){_0x237d95['createStateFinal'](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x187'));}else{_0x237d95[_0x0baf('0x17b')](_0x43955d,_0x4aa54,_0x3498eb,_0x0baf('0x187'));}}break;default:_0x332439[_0x0baf('0x6e')]+=0x1;_0x43955d['state']=0xc;_0x43955d[_0x0baf('0xa0')]=_0x54ea86['reason'];_0x237d95[_0x0baf('0xbd')](_0x43955d)['catch'](loggerCatch(_0x0baf('0x188')));if(_0x237d95[_0x0baf('0x179')](_0x54ea86[_0x0baf('0xea')],_0x3559f5,_0x332439)){if(_0x43955d['countbusyretry']+_0x43955d[_0x0baf('0x16b')]+_0x43955d[_0x0baf('0x16c')]>=_0x332439['dialGlobalMaxRetry']){_0x237d95['stateGlobal'](_0x43955d,_0x4aa54,_0x3498eb,_0x54ea86['reason']);}else{_0x237d95['createStateFinal'](_0x43955d,_0x4aa54,_0x3498eb,_0x54ea86[_0x0baf('0xea')]);}}}});};Dialer[_0x0baf('0x1c')][_0x0baf('0x17b')]=function(_0x27c810,_0x43977d,_0x37056a,_0xe9f561){var _0x1819a6=new Final(_0x27c810);_0x1819a6[_0x0baf('0x9f')]=0xf;_0x1819a6[_0x0baf('0xa0')]=_0x0baf('0x189');this[_0x0baf('0x17d')](_0x1819a6,_0x43977d,_0x37056a,_0xe9f561);};Dialer['prototype'][_0x0baf('0x17d')]=function(_0x587cbf,_0xf116d9,_0x319006,_0x93dcbd){this[_0x0baf('0xbc')](_0x587cbf)[_0x0baf('0xae')](function(_0x46f97){return _0xf116d9(msgResponse(_0x0baf('0x18a'),'Success',_0x93dcbd));})[_0x0baf('0xa7')](function(_0x5a93db){return _0x319006(msgResponse(_0x0baf('0x18b'),_0x0baf('0x11d'),_0x0baf('0x18c')));});};Dialer[_0x0baf('0x1c')][_0x0baf('0x9')]=function(_0x556854){var _0x579d21=this;var _0x218683=_0x556854[_0x0baf('0x18d')]/0x64;var _0x28c059=_0x556854['outboundDropCallsDayTimeout']/(_0x556854['outboundDropCallsDayTimeout']+_0x556854[_0x0baf('0x63')]);var _0x2849c1=_0x556854[_0x0baf('0x54')]-_0x556854[_0x0baf('0x77')]-_0x556854[_0x0baf('0x5c')]-_0x556854[_0x0baf('0x92')]-_0x556854[_0x0baf('0x58')];var _0x3bf581=(_0x556854[_0x0baf('0x54')]-_0x556854['predictiveIntervalPauses'])*_0x556854['predictiveIntervalLowerLimit'];var _0x31de0a=Math[_0x0baf('0x18e')](_0x556854[_0x0baf('0x18f')]*_0x556854[_0x0baf('0x190')]*_0x556854['predictiveIntervalHitRate']*_0x556854[_0x0baf('0x76')]);if(_[_0x0baf('0x3f')](_0x556854[_0x0baf('0x2b')])){loggerPredictive['info'](_0x0baf('0x191'));if(!_[_0x0baf('0x3f')](_0x556854[_0x0baf('0x2a')])){_0x556854[_0x0baf('0x2a')]=undefined;loggerPredictive['error'](_0x0baf('0x192'),_0x0baf('0x193'));}if(!_[_0x0baf('0x3f')](_0x556854['handlePredictive'])){loggerPredictive[_0x0baf('0x8e')](_0x0baf('0x192'),'check\x20handlePredictive\x20is\x20not\x20undefine');clearInterval(_0x556854[_0x0baf('0x8b')]);_0x556854[_0x0baf('0x8b')]=undefined;}_0x556854[_0x0baf('0x2b')]=moment()[_0x0baf('0x7d')](_0x0baf('0xf0'));loggerPredictive['info']('[startMethodPredictive][StartProgressive][Date]',_0x556854[_0x0baf('0x2b')],_0x556854['name']);this[_0x0baf('0x130')](_0x556854,0x1);}else if(ifInterval(_0x556854[_0x0baf('0x194')],_0x556854[_0x0baf('0x2b')])){this[_0x0baf('0x130')](_0x556854,0x1);loggerPredictiveCalls[_0x0baf('0x82')](_0x0baf('0x195'),_0x556854[_0x0baf('0x2b')],_0x556854[_0x0baf('0x42')]);_0x556854[_0x0baf('0x18f')]=0x0;_0x556854[_0x0baf('0x74')]=0x0;}else if(_0x218683<_0x28c059&&_0x556854[_0x0baf('0x196')]===_0x0baf('0x197')){freeVariablesPredictive(_0x556854);loggerPredictive[_0x0baf('0x82')]('[stopMethodPredictive][ReStartProgressive][ExceededDropDay]',_0x0baf('0x198'),_0x28c059,_0x0baf('0x2b'),_0x556854[_0x0baf('0x42')]);}else if(_0x2849c1>_0x3bf581){freeVariablesPredictive(_0x556854);loggerPredictive[_0x0baf('0x82')](_0x0baf('0x199'),_0x0baf('0x19a'),_0x2849c1,_0x0baf('0x19b'),_0x3bf581);}else if(_0x31de0a<_0x556854[_0x0baf('0x74')]&&_0x556854[_0x0baf('0x196')]===_0x0baf('0x197')){freeVariablesPredictive(_0x556854);loggerPredictive[_0x0baf('0x82')](_0x0baf('0x19c'),'Max\x20Drop\x20',_0x31de0a,_0x0baf('0x19d'),_0x556854[_0x0baf('0x74')],_0x0baf('0x2b'),_0x556854['name']);}else if(!ifInterval(_0x556854[_0x0baf('0x194')],_0x556854[_0x0baf('0x2b')])&&_['isUndefined'](_0x556854['startPredictive'])&&!_[_0x0baf('0x3f')](_0x556854[_0x0baf('0x2b')])){_0x556854['startPredictive']=moment()[_0x0baf('0x7d')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0x0baf('0x82')](_0x0baf('0x19e'),_0x556854[_0x0baf('0x2a')],_0x556854[_0x0baf('0x42')]);this[_0x0baf('0xb3')](_0x556854[_0x0baf('0x194')])[_0x0baf('0xae')](this[_0x0baf('0x19f')](_0x556854))[_0x0baf('0xae')](mergeDataErlangB(_0x556854))['then'](this['startMethodPredictive'](_0x556854))[_0x0baf('0xa7')](loggerCatchPredictive(_0x0baf('0x1a0'),_0x556854));}else if(!ifInterval(_0x556854[_0x0baf('0x194')],_0x556854[_0x0baf('0x2a')])){_0x556854[_0x0baf('0x74')]=0x0;_0x556854['startPredictive']=moment()['format'](_0x0baf('0xf0'));loggerPredictive['info'](_0x0baf('0x1a1'),_0x556854[_0x0baf('0x2a')],_0x556854['name']);clearInterval(_0x556854[_0x0baf('0x8b')]);_0x556854[_0x0baf('0x8b')]=undefined;this[_0x0baf('0xb3')](_0x556854[_0x0baf('0x194')])[_0x0baf('0xae')](this[_0x0baf('0x19f')](_0x556854))['then'](mergeDataErlangB(_0x556854))['then'](this[_0x0baf('0x1a2')](_0x556854))[_0x0baf('0xa7')](loggerCatchPredictive('[averageHandleTime][ErlangB]\x20',_0x556854));}};Dialer[_0x0baf('0x1c')]['getDataPredictive']=function(_0x83e0c8){var _0x20b1eb=this;return function(_0x475f3f){return new BPromise(function(_0x5d8345,_0x27912f){_[_0x0baf('0x89')](_0x83e0c8,_0x475f3f[0x0]);if(checkGetDataPredictive(_0x475f3f[0x0])){loggerPredictive[_0x0baf('0x82')](JSON['stringify'](_0x475f3f[0x0]));if(_0x83e0c8[_0x0baf('0x196')]===_0x0baf('0x197')){return _0x20b1eb['getVoiceQueueRtPauses'](_0x83e0c8['id'])[_0x0baf('0xae')](function(_0x590a5d){var _0x3d7abe=_0x83e0c8['loggedIn']-_0x590a5d[0x0][_0x0baf('0x1a3')];var _0x334688=_0x83e0c8[_0x0baf('0x194')]*0x3c;var _0x55fe67=_0x475f3f[0x0][_0x0baf('0x70')]+_0x475f3f[0x0][_0x0baf('0x84')];var _0xe4ca96=(_0x475f3f[0x0]['predictiveIntervalAnsweredCalls']+_0x475f3f[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x475f3f[0x0][_0x0baf('0x71')])/_0x475f3f[0x0][_0x0baf('0x78')];var _0x5b722a=_0x83e0c8[_0x0baf('0x18d')]/0x64;_0x83e0c8[_0x0baf('0x77')]=_0x590a5d[0x0][_0x0baf('0x1a3')]||0x0;_0x83e0c8['predictiveIntervalHitRate']=_0xe4ca96>0x0?_0xe4ca96:0x1;return _0x20b1eb[_0x0baf('0x1a4')](_0x3d7abe,_0x334688,_0x55fe67,_0xe4ca96,_0x5b722a);})['then'](function(_0x49f1b0){return _0x5d8345(_0x49f1b0);})[_0x0baf('0xa7')](function(_0x18779a){return _0x27912f(msgResponse(_0x0baf('0x1a5'),'Failure',JSON['stringify'](_0x18779a)));});}if(_0x83e0c8['dialPredictiveOptimization']===_0x0baf('0x1a6')){return _0x20b1eb[_0x0baf('0xbb')](_0x83e0c8['id'])[_0x0baf('0xae')](function(_0x4fe5ed){var _0x7c015a=_0x83e0c8[_0x0baf('0x54')]-_0x4fe5ed[0x0][_0x0baf('0x1a3')];var _0x1b09df=_0x83e0c8[_0x0baf('0x194')]*0x3c;var _0x14024d=_0x475f3f[0x0][_0x0baf('0x70')]+_0x475f3f[0x0][_0x0baf('0x84')];var _0x413c6a=(_0x475f3f[0x0][_0x0baf('0x6f')]+_0x475f3f[0x0][_0x0baf('0x72')]+_0x475f3f[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x475f3f[0x0][_0x0baf('0x78')];var _0x10f109=_0x83e0c8['dialPredictiveOptimizationPercentage']/0x64;_0x83e0c8[_0x0baf('0x77')]=_0x4fe5ed[0x0][_0x0baf('0x1a3')]||0x0;_0x83e0c8[_0x0baf('0x1a7')]=_0x413c6a>0x0?_0x413c6a:0x1;return _0x20b1eb[_0x0baf('0x1a8')](_0x7c015a,_0x1b09df,_0x14024d,_0x413c6a,_0x10f109);})[_0x0baf('0xae')](function(_0x3f29a9){return _0x5d8345(_0x3f29a9);})['catch'](function(_0x10f9e9){return _0x27912f(msgResponse(_0x0baf('0x1a5'),_0x0baf('0x11d'),JSON[_0x0baf('0x7c')](_0x10f9e9)));});}}else{return _0x27912f(msgResponse(_0x0baf('0x1a9'),_0x0baf('0x11d'),'check\x20failure'));}});};};Dialer[_0x0baf('0x1c')][_0x0baf('0x1a2')]=function(_0x3a9f2e){var _0x1e6ec3=this;return function(){var _0x4f7247=0x0;var _0x56f949=Math[_0x0baf('0x18e')](_0x3a9f2e[_0x0baf('0x1aa')]*0x3e8);if(_0x56f949>0x0){_0x56f949=_0x56f949<0x64?0x64:_0x56f949;loggerPredictive[_0x0baf('0x82')](_0x0baf('0x1ab'),_0x56f949);_0x3a9f2e['handlePredictive']=setInterval(function(){_0x1e6ec3[_0x0baf('0x8b')](_0x3a9f2e);loggerPredictiveCalls['info'](_0x0baf('0x1ac'),_0x4f7247+=0x1);},_0x56f949);}else{loggerPredictive[_0x0baf('0x82')](_0x0baf('0x1ad'),_0x0baf('0x1ae'),_0x56f949);}};};Dialer[_0x0baf('0x1c')]['checkContactBlack']=function(_0x26b694,_0x417ac1){var _0x297d67=this;return function(_0x48fde5){if(_[_0x0baf('0x48')](_0x48fde5)){if(_[_0x0baf('0xd0')](_0x417ac1[_0x0baf('0x1af')])||!_0x417ac1[_0x0baf('0x1b0')]){if(_0x26b694[_0x0baf('0x5f')]===_0x0baf('0x8')){_0x26b694['queueStatusComplete']=_[_0x0baf('0x3f')](_0x26b694[_0x0baf('0x102')])?!![]:_0x26b694[_0x0baf('0x102')];var _0x25cdaf=uuid['v4']();_0x297d67[_0x0baf('0x26')][_0x25cdaf]=new Action(_0x26b694,_0x417ac1,_0x25cdaf);loggerBooked[_0x0baf('0x82')](_0x0baf('0x1b1'),_0x25cdaf,'queueStatusComplete:\x20',JSON[_0x0baf('0x7c')](_0x26b694[_0x0baf('0x102')]),'Queue:\x20',_0x26b694[_0x0baf('0x42')]);if(_0x26b694[_0x0baf('0x102')]){_0x26b694[_0x0baf('0x102')]=![];_0x297d67[_0x0baf('0x2d')][_0x297d67[_0x0baf('0x26')][_0x25cdaf][_0x0baf('0xaa')]]=[];ami['Action']({'actionid':_0x25cdaf,'action':'queuestatus','queue':_0x26b694[_0x0baf('0x42')]})[_0x0baf('0xa7')](function(_0x3b9fb5){_0x297d67[_0x0baf('0xa9')](_0x26b694);_0x297d67[_0x0baf('0xb6')]({'active':![],'ContactId':_0x297d67[_0x0baf('0x26')][_0x25cdaf][_0x0baf('0x107')],'ListId':_0x297d67['actions'][_0x25cdaf][_0x0baf('0xc6')],'VoiceQueueId':_0x297d67[_0x0baf('0x26')][_0x25cdaf]['VoiceQueueId']||undefined,'CampaignId':_0x297d67[_0x0baf('0x26')][_0x25cdaf]['CampaignId']||undefined})[_0x0baf('0xa7')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x297d67['actions'][_0x25cdaf];});}else{loggerBooked[_0x0baf('0x82')]('[booked][checkContactBlack][else]',JSON['stringify'](_0x26b694[_0x0baf('0x102')]),'Queue:\x20',_0x26b694['name']);_0x297d67[_0x0baf('0xa9')](_0x26b694);_0x297d67['rescheduleContact']({'active':![],'ContactId':_0x297d67[_0x0baf('0x26')][_0x25cdaf][_0x0baf('0x107')],'ListId':_0x297d67['actions'][_0x25cdaf][_0x0baf('0xc6')],'VoiceQueueId':_0x297d67['actions'][_0x25cdaf][_0x0baf('0xc7')]||undefined,'CampaignId':_0x297d67[_0x0baf('0x26')][_0x25cdaf][_0x0baf('0x108')]||undefined})[_0x0baf('0xa7')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x297d67[_0x0baf('0x26')][_0x25cdaf];}}else{return _0x297d67[_0x0baf('0x13c')](_0x26b694,_0x417ac1);}}else{if(getDiff(_0x417ac1[_0x0baf('0x1b2')])<_0x26b694[_0x0baf('0x1b3')]*0x3c){_0x297d67[_0x0baf('0x20')][_0x0baf('0x105')](_0x417ac1['id'])[_0x0baf('0x106')](function(){_0x297d67[_0x0baf('0xa9')](_0x26b694);});}else{_0x26b694[_0x0baf('0x6c')]+=0x1;_0x297d67[_0x0baf('0xa9')](_0x26b694);if(_0x26b694[_0x0baf('0x1b4')]){_0x297d67['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0x417ac1[_0x0baf('0x107')],'ListId':_0x417ac1[_0x0baf('0xc6')],'VoiceQueueId':_0x417ac1[_0x0baf('0xc7')]||undefined,'CampaignId':_0x417ac1['CampaignId']||undefined})[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x1b5')));_0x297d67[_0x0baf('0xbd')](createObjHistory(_0x26b694,_0x417ac1,_0x0baf('0x1b6'),0x17,_0x0baf('0x1b7')))[_0x0baf('0xa7')](loggerCatch(_0x0baf('0x1b8')));}else{_0x297d67[_0x0baf('0xc4')](createObjHistory(_0x26b694,_0x417ac1,_0x0baf('0x1b9'),0x16,_0x0baf('0x1ba')),_0x0baf('0x1bb'),_0x0baf('0x1bc'));}}}}else{_0x26b694[_0x0baf('0x64')]+=0x1;_0x297d67['saveInDb'](createObjHistory(_0x26b694,_0x417ac1,_0x0baf('0x1bd'),0xd,_0x0baf('0x1be')),_0x0baf('0x1bf'),_0x0baf('0x1c0'));throw _0x0baf('0x1c1');}};};Dialer['prototype'][_0x0baf('0x134')]=function(_0x4829a9){var _0x321275=this;var _0x417250=[];var _0x4d53b9=_0x4829a9['limitCalls']-_0x4829a9['originated']-_0x4829a9[_0x0baf('0x1c2')];emitCampaignSummary(_0x4829a9);if(_0x4d53b9>0x0){if(_0x4d53b9>this[_0x0baf('0x25')]){_0x4d53b9=this['maxNumberOriginate'];}_0x4829a9[_0x0baf('0x1c2')]+=_0x4d53b9;this[_0x0baf('0xba')](_0x4829a9['id'],_0x4d53b9,_0x4829a9[_0x0baf('0x1c3')])[_0x0baf('0xae')](function(_0x29e46c){_0x4829a9['temp']-=_0x4d53b9;_0x4829a9[_0x0baf('0x1c2')]=_0x4829a9[_0x0baf('0x1c2')]>0x0?_0x4829a9[_0x0baf('0x1c2')]:0x0;if(!checkContactEmpty(_0x29e46c)){_0x4829a9[_0x0baf('0x40')]=_0x0baf('0x1c4');logger[_0x0baf('0x82')](_0x0baf('0x1c5')+_0x4829a9[_0x0baf('0x42')]);}else{_0x4829a9[_0x0baf('0x92')]+=_0x29e46c['length'];_0x4829a9[_0x0baf('0x40')]='RUNNING';for(var _0x28fe90=0x0;_0x28fe90<_0x29e46c[_0x0baf('0x90')];_0x28fe90+=0x1){_0x4829a9[_0x0baf('0x1c6')]+=0x1;if(_[_0x0baf('0xd0')](_0x29e46c[_0x28fe90])||_['isNil'](_0x29e46c[_0x28fe90][_0x0baf('0x13f')])||_['isNil'](_0x29e46c[_0x28fe90][_0x0baf('0x13f')][_0x0baf('0x140')])){_0x321275[_0x0baf('0xc2')]('[actionOriginate]\x20',_0x4829a9,_0x29e46c[_0x28fe90]);}else{_0x321275['checkIsBlackListIvr'](_[_0x0baf('0xc5')](_0x29e46c[_0x28fe90],[_0x0baf('0x108'),_0x0baf('0x1c7')]))['then'](_0x321275['checkContactBlack'](_0x4829a9,_0x29e46c[_0x28fe90]))['catch'](_0x321275[_0x0baf('0xc1')]('[actionOriginateIvr]\x20',_0x4829a9));}}}})[_0x0baf('0xa7')](loggerGetContactDialer(_0x0baf('0x1c8'),_0x4829a9,_0x4d53b9));}};Dialer[_0x0baf('0x1c')][_0x0baf('0x130')]=function(_0x340ee1,_0x2e4011){var _0x285565=this;var _0x2b2c7d=[];var _0x14ca8c=_0x2e4011>=0x1?_0x2e4011:0x1;var _0x4fb997=[];if(_0x340ee1[_0x0baf('0x5f')]===_0x0baf('0x8')){_0x14ca8c=0x1;}var _0x4ce657=Math[_0x0baf('0x18e')](_0x340ee1[_0x0baf('0x53')]*_0x14ca8c)-_0x340ee1['originated']-_0x340ee1['temp'];emitVoiceQueueSummary(_0x340ee1);if(_0x340ee1[_0x0baf('0x1c9')]>0x0){var _0x2f2fad=_0x340ee1['dialLimitQueue']-_0x340ee1['originated']-_0x340ee1[_0x0baf('0x58')]-_0x340ee1['temp']-_0x340ee1[_0x0baf('0x55')];if(_0x4ce657>_0x2f2fad){_0x4ce657=_0x2f2fad;}}if(_0x4ce657>0x0){if(_0x340ee1[_0x0baf('0x5f')]===_0x0baf('0x8')){_0x4ce657=0x1;}if(_0x4ce657>this[_0x0baf('0x25')]){_0x4ce657=this[_0x0baf('0x25')];}_0x340ee1[_0x0baf('0x1c2')]+=_0x4ce657;for(var _0x4ed8dc in this['agents']){if(this[_0x0baf('0x23')]['hasOwnProperty'](_0x4ed8dc)){if(this[_0x0baf('0x23')][_0x4ed8dc][_0x0baf('0x9f')]===_0x0baf('0x1ca')&&this[_0x0baf('0x23')][_0x4ed8dc][_0x0baf('0xa6')]==='reachable'){_0x2b2c7d[_0x0baf('0x100')](this['agents'][_0x4ed8dc]['id']);}}}this[_0x0baf('0xb8')](_0x340ee1['id'],_0x2b2c7d,_0x4ce657,_0x340ee1[_0x0baf('0x1c3')])['then'](function(_0xaa0a1){_0x340ee1[_0x0baf('0x1c2')]-=_0x4ce657;_0x340ee1[_0x0baf('0x1c2')]=_0x340ee1['temp']>0x0?_0x340ee1[_0x0baf('0x1c2')]:0x0;if(!checkContactEmpty(_0xaa0a1)){_0x285565[_0x0baf('0xac')](_0x340ee1)[_0x0baf('0xae')](sendMessageReschedule(_0x340ee1))[_0x0baf('0xa7')](loggerCatch(_0x0baf('0xaf')));}else{_0x340ee1[_0x0baf('0x92')]+=_0xaa0a1['length'];_0x340ee1['message']=_0x340ee1[_0x0baf('0x5f')]===_0x0baf('0x8')?_0x0baf('0x1cb'):_0x0baf('0x1cc');for(var _0x429d23=0x0;_0x429d23<_0xaa0a1[_0x0baf('0x90')];_0x429d23+=0x1){if(_[_0x0baf('0xd0')](_0xaa0a1[_0x429d23])||_['isNil'](_0xaa0a1[_0x429d23][_0x0baf('0x13f')])||_['isNil'](_0xaa0a1[_0x429d23]['Contact'][_0x0baf('0x140')])){_0x285565[_0x0baf('0xc2')](_0x0baf('0x1cd'),_0x340ee1,_0xaa0a1[_0x429d23]);}else{_0x285565[_0x0baf('0xb0')](_['pick'](_0xaa0a1[_0x429d23],['VoiceQueueId',_0x0baf('0x1c7')]))[_0x0baf('0xae')](_0x285565[_0x0baf('0x1ce')](_0x340ee1,_0xaa0a1[_0x429d23]))[_0x0baf('0xa7')](_0x285565['loggerHandler'](_0x0baf('0x1cd'),_0x340ee1));}}}})[_0x0baf('0xa7')](loggerGetContactDialer(_0x0baf('0x1cf'),_0x340ee1,_0x4ce657));}};Dialer[_0x0baf('0x1c')][_0x0baf('0x8b')]=function(_0x434352){var _0x3e9558=this;if(_0x434352[_0x0baf('0x1c9')]>0x0){var _0x39842d=_0x434352[_0x0baf('0x1c9')]-_0x434352[_0x0baf('0x92')]-_0x434352[_0x0baf('0x58')];if(_0x39842d>0x0){this[_0x0baf('0x1d0')](_0x434352);}else{loggerPredictiveCalls[_0x0baf('0x82')](_0x0baf('0x1d1'));}}else{this[_0x0baf('0x1d0')](_0x434352);}};Dialer[_0x0baf('0x1c')][_0x0baf('0x1d0')]=function(_0x59c2db){var _0x493b02=this;var _0x43f8e2=[];_0x59c2db[_0x0baf('0x92')]+=0x1;for(var _0x5f427e in this[_0x0baf('0x23')]){if(this[_0x0baf('0x23')][_0x0baf('0x91')](_0x5f427e)){if(this[_0x0baf('0x23')][_0x5f427e][_0x0baf('0x9f')]===_0x0baf('0x1ca')&&this['agents'][_0x5f427e][_0x0baf('0xa6')]===_0x0baf('0xcd')){_0x43f8e2[_0x0baf('0x100')](this[_0x0baf('0x23')][_0x5f427e]['id']);}}}this[_0x0baf('0xb8')](_0x59c2db['id'],_0x43f8e2,0x1,_0x59c2db['dialOrderByScheduledAt'])[_0x0baf('0xae')](function(_0x65d9c7){if(!checkContactEmpty(_0x65d9c7)){checkContactLowerLimitOriginate(_0x59c2db,0x1,0x0);_0x493b02[_0x0baf('0xac')](_0x59c2db)[_0x0baf('0xae')](sendMessageReschedule(_0x59c2db))[_0x0baf('0xa7')](loggerCatch('[countReScheduled]\x20'));}else{_0x59c2db[_0x0baf('0x40')]=_0x0baf('0x1cc');if(_['isNil'](_0x65d9c7[0x0])||_[_0x0baf('0xd0')](_0x65d9c7[0x0]['Contact'])||_[_0x0baf('0xd0')](_0x65d9c7[0x0][_0x0baf('0x13f')]['phone'])){_0x493b02[_0x0baf('0xc2')](_0x0baf('0x1cd'),_0x59c2db,_0x65d9c7[0x0]);}else{_0x493b02[_0x0baf('0xb0')](_[_0x0baf('0xc5')](_0x65d9c7[0x0],[_0x0baf('0xc7'),_0x0baf('0x1c7')]))[_0x0baf('0xae')](_0x493b02[_0x0baf('0x1ce')](_0x59c2db,_0x65d9c7[0x0]))[_0x0baf('0xa7')](_0x493b02['loggerHandler'](_0x0baf('0x1d2'),_0x59c2db));}}})[_0x0baf('0xa7')](loggerGetContactDialer(_0x0baf('0x1d3'),_0x59c2db,0x1));emitVoiceQueueSummary(_0x59c2db);};Dialer[_0x0baf('0x1c')]['abandonmentRate']=function(_0x185ff9,_0x46630d,_0x8c2702,_0x2c5575,_0x58d2e0,_0x5b0693){loggerPredictive['info'](_0x0baf('0x1d4'),_0x0baf('0x1d5'),_0x185ff9,_0x0baf('0x1d6'),_0x46630d,_0x0baf('0x1d7'),_0x8c2702,_0x0baf('0x1d8'),_0x2c5575,'\x20Amax\x20=\x20',_0x58d2e0);return new BPromise(function(_0x4670c5,_0x195161){if(_0x185ff9<=0x0||isNaN(_0x185ff9)){return _0x195161(msgResponse(_0x0baf('0x1d4'),_0x0baf('0x4a'),'m\x20=\x20'+_0x185ff9));}if(_0x8c2702<=0x0||isNaN(_0x8c2702)){return _0x195161(msgResponse(_0x0baf('0x1d4'),'Error','Ts\x20=\x20'+_0x8c2702));}if(_0x2c5575<=0x0||isNaN(_0x2c5575)){return _0x195161(msgResponse(_0x0baf('0x1d4'),'Error',_0x0baf('0x1d9')+_0x2c5575));}if(_0x46630d<=0x0||isNaN(_0x46630d)){return _0x195161(msgResponse(_0x0baf('0x1d4'),_0x0baf('0x4a'),_0x0baf('0x1da')+_0x46630d));}if(_0x58d2e0<=0x0||isNaN(_0x58d2e0)){return _0x195161(msgResponse(_0x0baf('0x1d4'),_0x0baf('0x4a'),_0x0baf('0x1db')+_0x58d2e0));}_0x5b0693=_0x5b0693||0x0;var _0x1136a2=0x1/_0x8c2702;var _0x36556b=0x0;var _0x2f2bcd=0x0;var _0x2a36db=0x0;var _0x35293e=0x0;for(var _0x44e9f8=0x0;_0x2a36db<_0x58d2e0;_0x44e9f8+=0x1){_0x2f2bcd=_0x44e9f8/_0x46630d;_0x36556b=(_0x2c5575*_0x2f2bcd+_0x5b0693)/_0x1136a2;_0x2a36db=erlangb(_0x36556b,_0x185ff9);_0x35293e=_0x36556b/_0x185ff9*(0x1-erlangb(_0x36556b,_0x185ff9));}return _0x4670c5({'erlangCalls':_0x44e9f8,'erlangCallToSecond':_0x46630d/_0x44e9f8,'erlangAbandonmentRate':_0x2a36db,'erlangBusyFactor':_0x35293e});});};Dialer[_0x0baf('0x1c')]['busyFactor']=function(_0x28c3a5,_0x28cc4f,_0x4db29a,_0x1a94db,_0x278912,_0x35c356){loggerPredictive['info']('[busyFactor]',_0x0baf('0x1d5'),_0x28c3a5,_0x0baf('0x1d6'),_0x28cc4f,'\x20Ts\x20=\x20',_0x4db29a,_0x0baf('0x1d8'),_0x1a94db,'\x20Umin\x20=\x20',_0x278912);return new BPromise(function(_0x2f3ec8,_0x3c2897){if(_0x28c3a5<=0x0||isNaN(_0x28c3a5)){return _0x3c2897(msgResponse(_0x0baf('0x1d4'),_0x0baf('0x4a'),'m\x20=\x20'+_0x28c3a5));}if(_0x4db29a<=0x0||isNaN(_0x4db29a)){return _0x3c2897(msgResponse(_0x0baf('0x1d4'),'Error',_0x0baf('0x1dc')+_0x4db29a));}if(_0x1a94db<=0x0||isNaN(_0x1a94db)){return _0x3c2897(msgResponse(_0x0baf('0x1d4'),_0x0baf('0x4a'),_0x0baf('0x1d9')+_0x1a94db));}if(_0x28cc4f<=0x0||isNaN(_0x28cc4f)){return _0x3c2897(msgResponse('[abandonmentRate]',_0x0baf('0x4a'),_0x0baf('0x1da')+_0x28cc4f));}if(_0x278912<=0x0||isNaN(_0x278912)){return _0x3c2897(msgResponse(_0x0baf('0x1d4'),'Error',_0x0baf('0x1db')+_0x278912));}_0x35c356=_0x35c356||0x0;var _0x4122e2=0x1/_0x4db29a;var _0x316eed=0x0;var _0xed37ee=0x0;var _0x3582e6=0x0;var _0x4d80e9=0x0;for(var _0x3cf27e=0x0;_0x4d80e9<_0x278912;_0x3cf27e+=0x1){_0xed37ee=_0x3cf27e/_0x28cc4f;_0x316eed=(_0x1a94db*_0xed37ee+_0x35c356)/_0x4122e2;_0x3582e6=erlangb(_0x316eed,_0x28c3a5);_0x4d80e9=_0x316eed/_0x28c3a5*(0x1-erlangb(_0x316eed,_0x28c3a5));}return _0x2f3ec8({'erlangCalls':_0x3cf27e,'erlangCallToSecond':_0x28cc4f/_0x3cf27e,'erlangAbandonmentRate':_0x3582e6,'erlangBusyFactor':_0x4d80e9});});};module[_0x0baf('0x1dd')]=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bac=['diff','seconds','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','uniqueid','calleridname','name','number','starttime','responsetime','droptime','endtime','ringtime','holdtime','talktime','membername','connectedlinename','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds'];(function(_0x5b9629,_0x498bdd){var _0xb3a5e1=function(_0x47fd96){while(--_0x47fd96){_0x5b9629['push'](_0x5b9629['shift']());}};_0xb3a5e1(++_0x498bdd);}(_0x7bac,0x1bf));var _0xc7ba=function(_0x2e0bd8,_0x11e41d){_0x2e0bd8=_0x2e0bd8-0x0;var _0x5cb4b5=_0x7bac[_0x2e0bd8];return _0x5cb4b5;};'use strict';var util=require(_0xc7ba('0x0'));var _=require(_0xc7ba('0x1'));var moment=require(_0xc7ba('0x2'));function getSeconds(_0x5cfeb1,_0x3735c0){var _0x428dae=moment(_0x5cfeb1)[_0xc7ba('0x3')](0x0);var _0x55235b=moment(_0x3735c0)['milliseconds'](0x0);return _0x428dae[_0xc7ba('0x4')](_0x55235b,_0xc7ba('0x5'));}function QueueCallerAbandon(_0x1fdb1c,_0x2268b5){this['scheduledat']=_0x1fdb1c[_0xc7ba('0x6')];this['type']=_0x1fdb1c[_0xc7ba('0x7')];this[_0xc7ba('0x8')]=_0x1fdb1c[_0xc7ba('0x7')]===_0xc7ba('0x9')?_0xc7ba('0xa'):_0x1fdb1c[_0xc7ba('0x7')];this[_0xc7ba('0xb')]=_0x1fdb1c[_0xc7ba('0xb')];this[_0xc7ba('0xc')]=_0x1fdb1c[_0xc7ba('0xc')];this[_0xc7ba('0xd')]=_0x1fdb1c[_0xc7ba('0xd')];this[_0xc7ba('0xe')]=_0x1fdb1c['countbusyretry']+_0x1fdb1c[_0xc7ba('0xc')]+_0x1fdb1c['countnoanswerretry'];this[_0xc7ba('0xf')]=_0x2268b5[_0xc7ba('0xf')];this[_0xc7ba('0x10')]=_0x1fdb1c[_0xc7ba('0x11')];this['calleridnum']=_0x1fdb1c[_0xc7ba('0x12')];this['starttime']=_0x1fdb1c[_0xc7ba('0x13')];this[_0xc7ba('0x14')]=_0x1fdb1c[_0xc7ba('0x14')];this[_0xc7ba('0x15')]=_0x1fdb1c[_0xc7ba('0x15')];this[_0xc7ba('0x16')]=this[_0xc7ba('0x15')];this[_0xc7ba('0x17')]=getSeconds(_0x1fdb1c[_0xc7ba('0x14')],_0x1fdb1c[_0xc7ba('0x13')]);this[_0xc7ba('0x18')]=getSeconds(this[_0xc7ba('0x15')],_0x1fdb1c[_0xc7ba('0x14')]);this[_0xc7ba('0x19')]=0x0;this[_0xc7ba('0xa')]=_0x2268b5[_0xc7ba('0xa')];this[_0xc7ba('0x1a')]=_0x2268b5[_0xc7ba('0x1b')];this[_0xc7ba('0x1c')]=_0x2268b5[_0xc7ba('0x1c')];this['callback']=_0x1fdb1c[_0xc7ba('0x1d')];this[_0xc7ba('0x1e')]=_0x1fdb1c['callbackuniqueid'];this[_0xc7ba('0x1f')]=_0x1fdb1c[_0xc7ba('0x1f')];this[_0xc7ba('0x20')]=_0x1fdb1c[_0xc7ba('0x20')];this[_0xc7ba('0x21')]=_0x1fdb1c[_0xc7ba('0x21')];this[_0xc7ba('0x22')]=_0x1fdb1c[_0xc7ba('0x22')];this[_0xc7ba('0x23')]=_0x1fdb1c[_0xc7ba('0x23')];this[_0xc7ba('0x24')]=_0x1fdb1c['VoiceQueueId'];this[_0xc7ba('0x25')]=_0x1fdb1c[_0xc7ba('0x25')];this[_0xc7ba('0x26')]=_0x1fdb1c[_0xc7ba('0x26')]||'';this[_0xc7ba('0x27')]=_0x1fdb1c[_0xc7ba('0x27')]||'';}module[_0xc7ba('0x28')]=QueueCallerAbandon;
\ No newline at end of file
+var _0xd798=['outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','uniqueid','name','calleridnum','number','starttime','droptime','ringtime','responsetime','talktime','membername','connectedlinename','callback','callbackuniqueid','recallme','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','milliseconds','diff','scheduledat','type','campaigntype'];(function(_0x392410,_0x34c923){var _0x1a14b7=function(_0x37054d){while(--_0x37054d){_0x392410['push'](_0x392410['shift']());}};_0x1a14b7(++_0x34c923);}(_0xd798,0x77));var _0x8d79=function(_0xf045c9,_0x3b37f8){_0xf045c9=_0xf045c9-0x0;var _0x45480b=_0xd798[_0xf045c9];return _0x45480b;};'use strict';var util=require('util');var _=require('lodash');var moment=require('moment');function getSeconds(_0x9b455a,_0x3664b2){var _0x5c34e2=moment(_0x9b455a)['milliseconds'](0x0);var _0x19cae2=moment(_0x3664b2)[_0x8d79('0x0')](0x0);return _0x5c34e2[_0x8d79('0x1')](_0x19cae2,'seconds');}function QueueCallerAbandon(_0x29c038,_0x310be1){this[_0x8d79('0x2')]=_0x29c038[_0x8d79('0x2')];this[_0x8d79('0x3')]=_0x29c038[_0x8d79('0x3')];this[_0x8d79('0x4')]=_0x29c038[_0x8d79('0x3')]===_0x8d79('0x5')?_0x8d79('0x6'):_0x29c038[_0x8d79('0x3')];this[_0x8d79('0x7')]=_0x29c038['countbusyretry'];this[_0x8d79('0x8')]=_0x29c038[_0x8d79('0x8')];this[_0x8d79('0x9')]=_0x29c038[_0x8d79('0x9')];this[_0x8d79('0xa')]=_0x29c038[_0x8d79('0x7')]+_0x29c038[_0x8d79('0x8')]+_0x29c038[_0x8d79('0x9')];this[_0x8d79('0xb')]=_0x310be1[_0x8d79('0xb')];this['calleridname']=_0x29c038[_0x8d79('0xc')];this[_0x8d79('0xd')]=_0x29c038[_0x8d79('0xe')];this[_0x8d79('0xf')]=_0x29c038[_0x8d79('0xf')];this['responsetime']=_0x29c038['responsetime'];this[_0x8d79('0x10')]=_0x29c038[_0x8d79('0x10')];this['endtime']=this['droptime'];this[_0x8d79('0x11')]=getSeconds(_0x29c038[_0x8d79('0x12')],_0x29c038[_0x8d79('0xf')]);this['holdtime']=getSeconds(this[_0x8d79('0x10')],_0x29c038['responsetime']);this[_0x8d79('0x13')]=0x0;this[_0x8d79('0x6')]=_0x310be1[_0x8d79('0x6')];this[_0x8d79('0x14')]=_0x310be1[_0x8d79('0x15')];this['reason']=_0x310be1['reason'];this['callback']=_0x29c038[_0x8d79('0x16')];this[_0x8d79('0x17')]=_0x29c038[_0x8d79('0x17')];this['callbackat']=_0x29c038['callbackat'];this['recallme']=_0x29c038[_0x8d79('0x18')];this['ContactId']=_0x29c038['ContactId'];this[_0x8d79('0x19')]=_0x29c038['ListId'];this[_0x8d79('0x1a')]=_0x29c038[_0x8d79('0x1a')];this['VoiceQueueId']=_0x29c038[_0x8d79('0x1b')];this[_0x8d79('0x1c')]=_0x29c038[_0x8d79('0x1c')];this[_0x8d79('0x1d')]=_0x29c038[_0x8d79('0x1d')]||'';this['originatecalleridname']=_0x29c038[_0x8d79('0x1e')]||'';}module['exports']=QueueCallerAbandon;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa748=['uniqueid','channel','%s/%s/%s','fax','localstationid','headerinfo','path','AttachmentId','exports','util','lodash','moment'];(function(_0x156792,_0x5c22ca){var _0xf6a038=function(_0x1cb52e){while(--_0x1cb52e){_0x156792['push'](_0x156792['shift']());}};_0xf6a038(++_0x5c22ca);}(_0xa748,0x14d));var _0x8a74=function(_0x14787f,_0x5da8ba){_0x14787f=_0x14787f-0x0;var _0x2a4003=_0xa748[_0x14787f];return _0x2a4003;};'use strict';var util=require(_0x8a74('0x0'));var _=require(_0x8a74('0x1'));var moment=require(_0x8a74('0x2'));function Action(_0x2811d8,_0x535087,_0x223f5a){this[_0x8a74('0x3')]=_0x2811d8||undefined;this[_0x8a74('0x4')]=util['format'](_0x8a74('0x5'),_0x535087['tech'],_0x535087['Trunk']['name'],_0x223f5a[_0x8a74('0x6')]);this[_0x8a74('0x7')]=_0x535087[_0x8a74('0x7')];this[_0x8a74('0x8')]=_0x535087[_0x8a74('0x8')];this[_0x8a74('0x9')]=_0x223f5a['path'];this['AttachmentId']=_0x223f5a[_0x8a74('0xa')];}module[_0x8a74('0xb')]=Action;
\ No newline at end of file
+var _0xec6d=['channel','format','%s/%s/%s','tech','Trunk','localstationid','headerinfo','path','AttachmentId','exports','lodash','moment'];(function(_0x5b4daa,_0xc385e4){var _0x9b569c=function(_0x76fdb6){while(--_0x76fdb6){_0x5b4daa['push'](_0x5b4daa['shift']());}};_0x9b569c(++_0xc385e4);}(_0xec6d,0x1a2));var _0xdec6=function(_0x49a085,_0x2eed0d){_0x49a085=_0x49a085-0x0;var _0x5878b8=_0xec6d[_0x49a085];return _0x5878b8;};'use strict';var util=require('util');var _=require(_0xdec6('0x0'));var moment=require(_0xdec6('0x1'));function Action(_0x18eae6,_0x10d796,_0x5cc4e5){this['uniqueid']=_0x18eae6||undefined;this[_0xdec6('0x2')]=util[_0xdec6('0x3')](_0xdec6('0x4'),_0x10d796[_0xdec6('0x5')],_0x10d796[_0xdec6('0x6')]['name'],_0x5cc4e5['fax']);this[_0xdec6('0x7')]=_0x10d796[_0xdec6('0x7')];this['headerinfo']=_0x10d796[_0xdec6('0x8')];this['path']=_0x5cc4e5[_0xdec6('0x9')];this[_0xdec6('0xa')]=_0x5cc4e5[_0xdec6('0xa')];}module[_0xdec6('0xb')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6bdb=['isNil','active','SIP/%s','reachable','unmonitored','\x20Trunk\x20is\x20not\x20active','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','exports','lodash','uuid','tiff2pdf','./util/gs','../../../config/logger','./rpcDb','./action','../rpc/faxAccount','../rpc/attachment','../rpc/faxMessage','faxAccounts','trunks','actions','newchannel','syncNewchannel','varset','bind','syncNewExten','faxstatus','syncFaxStatus','receivefax','syncReceiveFax','hangup','syncHangup','syncOriginateResponse','prototype','context','from-voip-provider','channels','uniqueid','channel','name','info','\x20syncNewchannel\x20','syncVarSet','hasOwnProperty','syncNewState','channelstate','channelstatedesc','variable','value','operation','status','localstationid','filename','\x20syncFaxStatus\x20','remotestationid','pagestransferred','resolution','transferrate','calleridnum','\x20result\x20conversion\x20file\x20','create','parse','.pdf','application/pdf','notify','fax','catch','error','\x20notify\x20','stringify','\x20receiveFax\x20','merge','pick','AttachmentId','update','then','logger','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','updateStatus','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','SUCCESS','faxstatusstring','SENDING\x20FAILED:\x20','SENDING\x20FAILED','send','[Fax][execOriginate][success]','message','Fax\x20received','Fax\x20failed','checkAfterSend','checkTrunk','FaxAccountId','Trunk','isValid','Trunk\x20Reachable','format','gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit','path','execute','%s/%s.tif','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','execOriginate','addVariables'];(function(_0x39772f,_0x5605cb){var _0xc9edbf=function(_0x106a39){while(--_0x106a39){_0x39772f['push'](_0x39772f['shift']());}};_0xc9edbf(++_0x5605cb);}(_0x6bdb,0x1d2));var _0xb6bd=function(_0x20cfb0,_0x26e45b){_0x20cfb0=_0x20cfb0-0x0;var _0x38b1fd=_0x6bdb[_0x20cfb0];return _0x38b1fd;};'use strict';var util=require('util');var _=require(_0xb6bd('0x0'));var BPromise=require('bluebird');var uuid=require(_0xb6bd('0x1'));var moment=require('moment');var path=require('path');var tiff2pdf=require(_0xb6bd('0x2'));var gs=require(_0xb6bd('0x3'));var logger=require(_0xb6bd('0x4'))('fax');var ami=require('../ami');var rpcDb=require(_0xb6bd('0x5'));var Channel=require('./channel');var ut=require('./util/util');var Action=require(_0xb6bd('0x6'));var faxAccount=require(_0xb6bd('0x7'));var attachment=require(_0xb6bd('0x8'));var faxMessage=require(_0xb6bd('0x9'));function Fax(_0x59cb92){this['channels']={};this[_0xb6bd('0xa')]=_0x59cb92['faxAccounts'];this[_0xb6bd('0xb')]=_0x59cb92[_0xb6bd('0xb')];this[_0xb6bd('0xc')]={};ami['on'](_0xb6bd('0xd'),this[_0xb6bd('0xe')]['bind'](this));ami['on'](_0xb6bd('0xf'),this['syncVarSet'][_0xb6bd('0x10')](this));ami['on']('newstate',this['syncNewState'][_0xb6bd('0x10')](this));ami['on']('newexten',this[_0xb6bd('0x11')][_0xb6bd('0x10')](this));ami['on'](_0xb6bd('0x12'),this[_0xb6bd('0x13')][_0xb6bd('0x10')](this));ami['on'](_0xb6bd('0x14'),this[_0xb6bd('0x15')]['bind'](this));ami['on'](_0xb6bd('0x16'),this[_0xb6bd('0x17')]['bind'](this));ami['on']('originateresponse',this[_0xb6bd('0x18')][_0xb6bd('0x10')](this));}Fax[_0xb6bd('0x19')]['syncNewchannel']=function(_0x4e7b0a){if(_0x4e7b0a[_0xb6bd('0x1a')]===_0xb6bd('0x1b')){for(var _0xb6668f in this[_0xb6bd('0xa')]){if(this[_0xb6bd('0xa')]['hasOwnProperty'](_0xb6668f)){if(_0x4e7b0a['exten']===this[_0xb6bd('0xa')][_0xb6668f]['localstationid']){this[_0xb6bd('0x1c')][_0x4e7b0a[_0xb6bd('0x1d')]]={};this[_0xb6bd('0x1c')][_0x4e7b0a[_0xb6bd('0x1d')]][_0xb6bd('0x1e')]=_0x4e7b0a[_0xb6bd('0x1e')];this[_0xb6bd('0x1c')][_0x4e7b0a[_0xb6bd('0x1d')]]['id']=this[_0xb6bd('0xa')][_0xb6668f]['id'];this[_0xb6bd('0x1c')][_0x4e7b0a[_0xb6bd('0x1d')]][_0xb6bd('0x1f')]=this[_0xb6bd('0xa')][_0xb6668f][_0xb6bd('0x1f')];logger[_0xb6bd('0x20')](_0x4e7b0a[_0xb6bd('0x1d')],_0xb6bd('0x21'));}}}}if(this['actions'][_0x4e7b0a[_0xb6bd('0x1d')]]){this[_0xb6bd('0x1c')][_0x4e7b0a[_0xb6bd('0x1d')]]={};this['channels'][_0x4e7b0a[_0xb6bd('0x1d')]]['channel']=_0x4e7b0a[_0xb6bd('0x1e')];logger['info'](_0x4e7b0a[_0xb6bd('0x1d')],_0xb6bd('0x21'));}};Fax[_0xb6bd('0x19')][_0xb6bd('0x22')]=function(_0x48c043){if(this[_0xb6bd('0x1c')][_0x48c043[_0xb6bd('0x1d')]]){for(var _0x5d1f08 in _0x48c043['variable']){if(_0x48c043['variable'][_0xb6bd('0x23')](_0x5d1f08)){this[_0xb6bd('0x1c')][_0x48c043['uniqueid']][_0x5d1f08]=_0x48c043['value'];}}}};Fax['prototype'][_0xb6bd('0x24')]=function(_0x55453d){if(this[_0xb6bd('0x1c')][_0x55453d[_0xb6bd('0x1d')]]){this[_0xb6bd('0x1c')][_0x55453d[_0xb6bd('0x1d')]][_0xb6bd('0x25')]=_0x55453d[_0xb6bd('0x25')];this[_0xb6bd('0x1c')][_0x55453d[_0xb6bd('0x1d')]][_0xb6bd('0x26')]=_0x55453d[_0xb6bd('0x26')];}};Fax[_0xb6bd('0x19')][_0xb6bd('0x11')]=function(_0x3a11e7){if(this[_0xb6bd('0x1c')][_0x3a11e7[_0xb6bd('0x1d')]]){for(var _0x2929f7 in _0x3a11e7[_0xb6bd('0x27')]){if(_0x3a11e7[_0xb6bd('0x27')][_0xb6bd('0x23')](_0x2929f7)){this[_0xb6bd('0x1c')][_0x3a11e7[_0xb6bd('0x1d')]][_0x2929f7]=_0x3a11e7[_0xb6bd('0x28')];}}}};Fax[_0xb6bd('0x19')][_0xb6bd('0x13')]=function(_0x40bd2f){if(this[_0xb6bd('0x1c')][_0x40bd2f[_0xb6bd('0x1d')]]){this[_0xb6bd('0x1c')][_0x40bd2f[_0xb6bd('0x1d')]][_0xb6bd('0x29')]=_0x40bd2f[_0xb6bd('0x29')];this[_0xb6bd('0x1c')][_0x40bd2f[_0xb6bd('0x1d')]][_0xb6bd('0x2a')]=_0x40bd2f[_0xb6bd('0x2a')];this[_0xb6bd('0x1c')][_0x40bd2f[_0xb6bd('0x1d')]][_0xb6bd('0x2b')]=_0x40bd2f[_0xb6bd('0x2b')];this['channels'][_0x40bd2f[_0xb6bd('0x1d')]][_0xb6bd('0x2c')]=_0x40bd2f['filename'];logger['info'](_0x40bd2f['uniqueid'],_0xb6bd('0x2d'));}};Fax[_0xb6bd('0x19')][_0xb6bd('0x15')]=function(_0xc35df3){var _0x5966f4=this;if(this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]]){var _0x472d65=this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]]['id'];this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]][_0xb6bd('0x2e')]=_0xc35df3[_0xb6bd('0x2e')];this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]][_0xb6bd('0x2f')]=_0xc35df3[_0xb6bd('0x2f')];this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]][_0xb6bd('0x2b')]=_0xc35df3[_0xb6bd('0x2b')];this['channels'][_0xc35df3[_0xb6bd('0x1d')]][_0xb6bd('0x30')]=_0xc35df3[_0xb6bd('0x30')];this['channels'][_0xc35df3['uniqueid']][_0xb6bd('0x31')]=_0xc35df3['transferrate'];this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]][_0xb6bd('0x2c')]=_0xc35df3[_0xb6bd('0x2c')];this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]][_0xb6bd('0x32')]=_0xc35df3['calleridnum'];if(this[_0xb6bd('0x1c')][_0xc35df3[_0xb6bd('0x1d')]]['pagestransferred']>0x0){tiff2pdf(_0xc35df3['filename'],'/var/opt/motion2/server/files/attachments/',function(_0x3ba6a4){logger[_0xb6bd('0x20')](_0xc35df3[_0xb6bd('0x1d')],_0xb6bd('0x33'),_0x3ba6a4['message']);attachment[_0xb6bd('0x34')]({'name':path[_0xb6bd('0x35')](_0xc35df3['filename'])['name'],'basename':path[_0xb6bd('0x35')](_0xc35df3[_0xb6bd('0x2c')])[_0xb6bd('0x1f')]+_0xb6bd('0x36'),'type':_0xb6bd('0x37')})['then'](function(_0xa9f8e){faxAccount[_0xb6bd('0x38')](_0x472d65,{'from':_0xc35df3['calleridnum'],'mapKey':_0xb6bd('0x39'),'body':path[_0xb6bd('0x35')](_0xc35df3['filename'])['name']+_0xb6bd('0x36'),'AttachmentId':_0xa9f8e['id']})[_0xb6bd('0x3a')](function(_0x3b6258){logger[_0xb6bd('0x3b')](_0xc35df3[_0xb6bd('0x1d')],_0xb6bd('0x3c'),JSON[_0xb6bd('0x3d')](_0x3b6258));});})['catch'](function(_0x399f06){logger[_0xb6bd('0x3b')](_0xc35df3[_0xb6bd('0x1d')],_0xb6bd('0x3e'),JSON[_0xb6bd('0x3d')](_0x399f06));});});}logger[_0xb6bd('0x20')](_0xc35df3[_0xb6bd('0x1d')],'\x20receiveFax\x20');}};Fax[_0xb6bd('0x19')]['syncOriginateResponse']=function(_0x50fb66){if(this[_0xb6bd('0xc')][_0x50fb66['uniqueid']]){_[_0xb6bd('0x3f')](this[_0xb6bd('0x1c')][_0x50fb66[_0xb6bd('0x1d')]],_[_0xb6bd('0x40')](_0x50fb66,['response','reason']));}};function updateStatus(_0x3d99b6){if(_0x3d99b6[_0xb6bd('0x41')]){faxMessage[_0xb6bd('0x42')](_0x3d99b6['AttachmentId'],{'failMessage':'SENDING\x20FAILED\x20'})[_0xb6bd('0x43')](function(_0x393ff6){ut[_0xb6bd('0x44')]('[Fax][Message][Error][Updated]',_0x393ff6);})[_0xb6bd('0x3a')](function(_0x173050){ut[_0xb6bd('0x44')](_0xb6bd('0x45'),_0x173050);});}else{ut[_0xb6bd('0x44')](_0xb6bd('0x46'));}}Fax[_0xb6bd('0x19')][_0xb6bd('0x47')]=function(_0x288474,_0x3d7b8e,_0x97bb9f){var _0x14bda3=this;var _0x318470={};if(_0x3d7b8e){_0x318470={'read':_0x3d7b8e};}else{_0x318470={'failMessage':_0x97bb9f};}if(this[_0xb6bd('0xc')][_0x288474][_0xb6bd('0x41')]){faxMessage[_0xb6bd('0x42')](this[_0xb6bd('0xc')][_0x288474][_0xb6bd('0x41')],_0x318470)['then'](function(_0x2a0960){ut[_0xb6bd('0x44')](_0xb6bd('0x48'),_0x2a0960);})[_0xb6bd('0x3a')](function(_0xf13c78){ut[_0xb6bd('0x44')](_0xb6bd('0x49'),_0xf13c78);})[_0xb6bd('0x4a')](function(){delete _0x14bda3['channels'][_0x288474];delete _0x14bda3['actions'][_0x288474];});}else{ut[_0xb6bd('0x44')]('[Fax][Message][NoUpdate2]');delete this[_0xb6bd('0x1c')][_0x288474];delete this['actions'][_0x288474];}};Fax['prototype']['syncHangup']=function(_0x262862){var _0xedc2fe=this;if(this[_0xb6bd('0x1c')][_0x262862[_0xb6bd('0x1d')]]){if(this[_0xb6bd('0xc')][_0x262862[_0xb6bd('0x1d')]]){this['channels'][_0x262862[_0xb6bd('0x1d')]]['id']=this[_0xb6bd('0xc')][_0x262862[_0xb6bd('0x1d')]]['id'];this['channels'][_0x262862[_0xb6bd('0x1d')]][_0xb6bd('0x1f')]=this['actions'][_0x262862[_0xb6bd('0x1d')]][_0xb6bd('0x1f')];}logger[_0xb6bd('0x20')](_0x262862[_0xb6bd('0x1d')],this[_0xb6bd('0xc')][_0x262862[_0xb6bd('0x1d')]]?_0xb6bd('0x4b'):_0xb6bd('0x4c'),JSON[_0xb6bd('0x3d')](this[_0xb6bd('0x1c')][_0x262862[_0xb6bd('0x1d')]]));if(this[_0xb6bd('0xc')][_0x262862[_0xb6bd('0x1d')]]){if(this[_0xb6bd('0x1c')][_0x262862[_0xb6bd('0x1d')]][_0xb6bd('0x4d')]>0x0&&this[_0xb6bd('0x1c')][_0x262862[_0xb6bd('0x1d')]][_0xb6bd('0x12')]===_0xb6bd('0x4e')){this['updateStatus'](_0x262862['uniqueid'],!![]);}else{this[_0xb6bd('0x47')](_0x262862[_0xb6bd('0x1d')],![],this[_0xb6bd('0x1c')][_0x262862[_0xb6bd('0x1d')]][_0xb6bd('0x4f')]?_0xb6bd('0x50')+this[_0xb6bd('0x1c')][_0x262862[_0xb6bd('0x1d')]][_0xb6bd('0x4f')]:_0xb6bd('0x51'));}}}};Fax[_0xb6bd('0x19')][_0xb6bd('0x52')]=function(_0x85b607){var _0x272d2c=this;return new BPromise(function(_0x193a3a,_0x5b29cc){_0x272d2c['execOriginate'](_0x85b607,_0x272d2c[_0xb6bd('0xa')][_0x85b607['FaxAccountId']])[_0xb6bd('0x43')](function(_0x311145){ut['logger'](_0xb6bd('0x53'),_0x311145);_0x193a3a(ut[_0xb6bd('0x54')](_0xb6bd('0x55')));})['catch'](function(_0x3665a2){ut[_0xb6bd('0x44')]('[Fax][execOriginate][failure]',_0x3665a2);updateStatus(_0x85b607);_0x5b29cc(ut['message'](_0xb6bd('0x56')));});});};Fax[_0xb6bd('0x19')][_0xb6bd('0x57')]=function(_0x4c53ce){var _0xa85429=this;return new BPromise(function(_0x4859f1,_0x49dd98){var _0x2c835e=_0xa85429[_0xb6bd('0x58')](_0xa85429[_0xb6bd('0xa')][_0x4c53ce[_0xb6bd('0x59')]][_0xb6bd('0x5a')],_0x4c53ce);if(_0x2c835e[_0xb6bd('0x5b')]){_0x4859f1(ut[_0xb6bd('0x54')](_0xb6bd('0x5c')));}else{_0x49dd98(ut[_0xb6bd('0x54')](_0x2c835e['message']));}});};function originate(_0x2100da,_0x287be5,_0xbe71c8){return new BPromise(function(_0x10bd28,_0x2f6573){if(_0xbe71c8){var _0x7a5491=util[_0xb6bd('0x5d')](_0xb6bd('0x5e'),path[_0xb6bd('0x35')](_0x2100da[_0xb6bd('0x5f')])['name'],_0x2100da['path']);gs[_0xb6bd('0x60')](_0x7a5491)[_0xb6bd('0x43')](function(){_0x2100da[_0xb6bd('0x5f')]=util['format'](_0xb6bd('0x61'),path[_0xb6bd('0x35')](_0x2100da[_0xb6bd('0x5f')])['dir'],path[_0xb6bd('0x35')](_0x2100da[_0xb6bd('0x5f')])['name']);_0x287be5[_0xb6bd('0x62')]=_0x2100da[_0xb6bd('0x5f')];ut['logger'](_0xb6bd('0x63'),'');ami['Action'](ut['variablesAction'](_0x2100da,_0x287be5))[_0xb6bd('0x43')](function(_0x124da3){_0x10bd28(_0x124da3);})['catch'](function(_0x4af225){_0x2f6573(_0x4af225);});})['catch'](function(_0x2880b6){_0x2f6573(_0x2880b6);});}else{ami[_0xb6bd('0x64')](ut[_0xb6bd('0x65')](_0x2100da,_0x287be5))[_0xb6bd('0x43')](function(_0x49ee0a){_0x10bd28(_0x49ee0a);})[_0xb6bd('0x3a')](function(_0x5800f2){_0x2f6573(_0x5800f2);});}});}Fax['prototype'][_0xb6bd('0x66')]=function(_0x364481,_0xe81d23){var _0x58b036=this;return new BPromise(function(_0x1633d0,_0x173f5b){var _0x1791d5=uuid['v4']();var _0x4bbb1=ut[_0xb6bd('0x67')](_0x364481,_0xe81d23);_0x58b036[_0xb6bd('0xc')][_0x1791d5]=new Action(_0x1791d5,_0xe81d23,_0x364481);var _0x56ee09=_0x58b036[_0xb6bd('0xc')][_0x1791d5];if(path[_0xb6bd('0x35')](_0x364481['path'])['ext']===_0xb6bd('0x36')){originate(_0x56ee09,_0x4bbb1,!![])[_0xb6bd('0x43')](function(_0x1c5c66){_0x1633d0(_0x1c5c66);})[_0xb6bd('0x3a')](function(_0x5f3808){_0x173f5b(_0x5f3808);});}else{originate(_0x56ee09,_0x4bbb1,![])['then'](function(_0x34274f){_0x1633d0(_0x34274f);})[_0xb6bd('0x3a')](function(_0x56d787){_0x173f5b(_0x56d787);});}});};Fax[_0xb6bd('0x19')]['isTrunkReachable']=function(_0x4d26e1){return!_['isNil'](_0x4d26e1)&&!_['isNil'](_0x4d26e1[_0xb6bd('0x1f')])&&!_[_0xb6bd('0x68')](_0x4d26e1[_0xb6bd('0x69')])&&_0x4d26e1[_0xb6bd('0x69')]&&!_[_0xb6bd('0x68')](this[_0xb6bd('0xb')][util['format'](_0xb6bd('0x6a'),_0x4d26e1[_0xb6bd('0x1f')])])&&!_[_0xb6bd('0x68')](this[_0xb6bd('0xb')][util['format'](_0xb6bd('0x6a'),_0x4d26e1['name'])]['status'])&&(this[_0xb6bd('0xb')][util[_0xb6bd('0x5d')](_0xb6bd('0x6a'),_0x4d26e1['name'])][_0xb6bd('0x2a')]===_0xb6bd('0x6b')||this[_0xb6bd('0xb')][util[_0xb6bd('0x5d')](_0xb6bd('0x6a'),_0x4d26e1[_0xb6bd('0x1f')])][_0xb6bd('0x2a')]===_0xb6bd('0x6c'));};Fax['prototype'][_0xb6bd('0x58')]=function(_0x9042a,_0x214482){if(!this['isTrunkReachable'](_0x9042a)){ut[_0xb6bd('0x44')]('[Fax][checkTrunk][Trunk\x20not\x20work]',_['isNil'](_0x9042a)?'':_0x9042a[_0xb6bd('0x1f')]+_0xb6bd('0x6d'));return{'isValid':![],'message':'Trunk\x20not\x20working'};}if(_[_0xb6bd('0x68')](_0x214482[_0xb6bd('0x39')])){ut[_0xb6bd('0x44')]('[Fax][checkTrunk][Empty\x20Fax]',JSON[_0xb6bd('0x3d')](_0x214482));return{'isValid':![],'message':_0xb6bd('0x6e')};}if(_[_0xb6bd('0x68')](_0x214482[_0xb6bd('0x5f')])){ut['logger'](_0xb6bd('0x6f'),JSON['stringify'](_0x214482));return{'isValid':![],'message':_0xb6bd('0x70')};}return{'isValid':!![],'message':'Is\x20Valid'};};module[_0xb6bd('0x71')]=Fax;
\ No newline at end of file
+var _0xef27=['./util/util','./action','../rpc/faxAccount','channels','faxAccounts','trunks','newchannel','bind','syncNewState','newexten','syncNewExten','receivefax','syncReceiveFax','syncHangup','originateresponse','syncOriginateResponse','prototype','syncNewchannel','context','from-voip-provider','hasOwnProperty','localstationid','uniqueid','name','info','\x20syncNewchannel\x20','channel','syncVarSet','variable','value','channelstate','channelstatedesc','syncFaxStatus','operation','status','filename','\x20syncFaxStatus\x20','remotestationid','resolution','calleridnum','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','message','create','parse','application/pdf','then','catch','error','\x20notify\x20','stringify','\x20receiveFax\x20','merge','pick','reason','AttachmentId','update','SENDING\x20FAILED\x20','logger','[Fax][Message][Error][Updated]','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','updateStatus','actions','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20faxRiceive\x20','faxpages','faxstatus','SUCCESS','faxstatusstring','SENDING\x20FAILED:\x20','SENDING\x20FAILED','send','FaxAccountId','[Fax][execOriginate][success]','Fax\x20received','Fax\x20failed','checkAfterSend','checkTrunk','isValid','Trunk\x20Reachable','format','gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit','%s/%s.tif','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','execOriginate','addVariables','ext','isTrunkReachable','isNil','active','SIP/%s','reachable','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','Empty\x20path','Is\x20Valid','exports','util','bluebird','moment','path','tiff2pdf','./util/gs','../../../config/logger','fax','../ami','./rpcDb'];(function(_0x107132,_0x13f848){var _0xeb25b1=function(_0xfe9356){while(--_0xfe9356){_0x107132['push'](_0x107132['shift']());}};_0xeb25b1(++_0x13f848);}(_0xef27,0x155));var _0x7ef2=function(_0x2079d7,_0x4fdfca){_0x2079d7=_0x2079d7-0x0;var _0x3d38ef=_0xef27[_0x2079d7];return _0x3d38ef;};'use strict';var util=require(_0x7ef2('0x0'));var _=require('lodash');var BPromise=require(_0x7ef2('0x1'));var uuid=require('uuid');var moment=require(_0x7ef2('0x2'));var path=require(_0x7ef2('0x3'));var tiff2pdf=require(_0x7ef2('0x4'));var gs=require(_0x7ef2('0x5'));var logger=require(_0x7ef2('0x6'))(_0x7ef2('0x7'));var ami=require(_0x7ef2('0x8'));var rpcDb=require(_0x7ef2('0x9'));var Channel=require('./channel');var ut=require(_0x7ef2('0xa'));var Action=require(_0x7ef2('0xb'));var faxAccount=require(_0x7ef2('0xc'));var attachment=require('../rpc/attachment');var faxMessage=require('../rpc/faxMessage');function Fax(_0x507979){this[_0x7ef2('0xd')]={};this[_0x7ef2('0xe')]=_0x507979[_0x7ef2('0xe')];this['trunks']=_0x507979[_0x7ef2('0xf')];this['actions']={};ami['on'](_0x7ef2('0x10'),this['syncNewchannel']['bind'](this));ami['on']('varset',this['syncVarSet'][_0x7ef2('0x11')](this));ami['on']('newstate',this[_0x7ef2('0x12')][_0x7ef2('0x11')](this));ami['on'](_0x7ef2('0x13'),this[_0x7ef2('0x14')][_0x7ef2('0x11')](this));ami['on']('faxstatus',this['syncFaxStatus'][_0x7ef2('0x11')](this));ami['on'](_0x7ef2('0x15'),this[_0x7ef2('0x16')][_0x7ef2('0x11')](this));ami['on']('hangup',this[_0x7ef2('0x17')][_0x7ef2('0x11')](this));ami['on'](_0x7ef2('0x18'),this[_0x7ef2('0x19')]['bind'](this));}Fax[_0x7ef2('0x1a')][_0x7ef2('0x1b')]=function(_0x11084b){if(_0x11084b[_0x7ef2('0x1c')]===_0x7ef2('0x1d')){for(var _0x5c2dd8 in this['faxAccounts']){if(this[_0x7ef2('0xe')][_0x7ef2('0x1e')](_0x5c2dd8)){if(_0x11084b['exten']===this[_0x7ef2('0xe')][_0x5c2dd8][_0x7ef2('0x1f')]){this['channels'][_0x11084b[_0x7ef2('0x20')]]={};this[_0x7ef2('0xd')][_0x11084b[_0x7ef2('0x20')]]['channel']=_0x11084b['channel'];this[_0x7ef2('0xd')][_0x11084b[_0x7ef2('0x20')]]['id']=this['faxAccounts'][_0x5c2dd8]['id'];this[_0x7ef2('0xd')][_0x11084b[_0x7ef2('0x20')]]['name']=this[_0x7ef2('0xe')][_0x5c2dd8][_0x7ef2('0x21')];logger[_0x7ef2('0x22')](_0x11084b['uniqueid'],_0x7ef2('0x23'));}}}}if(this['actions'][_0x11084b['uniqueid']]){this['channels'][_0x11084b[_0x7ef2('0x20')]]={};this[_0x7ef2('0xd')][_0x11084b[_0x7ef2('0x20')]][_0x7ef2('0x24')]=_0x11084b['channel'];logger['info'](_0x11084b[_0x7ef2('0x20')],'\x20syncNewchannel\x20');}};Fax['prototype'][_0x7ef2('0x25')]=function(_0xa5c9f4){if(this[_0x7ef2('0xd')][_0xa5c9f4[_0x7ef2('0x20')]]){for(var _0x1fe207 in _0xa5c9f4[_0x7ef2('0x26')]){if(_0xa5c9f4[_0x7ef2('0x26')][_0x7ef2('0x1e')](_0x1fe207)){this[_0x7ef2('0xd')][_0xa5c9f4['uniqueid']][_0x1fe207]=_0xa5c9f4[_0x7ef2('0x27')];}}}};Fax[_0x7ef2('0x1a')][_0x7ef2('0x12')]=function(_0x156e1b){if(this[_0x7ef2('0xd')][_0x156e1b['uniqueid']]){this[_0x7ef2('0xd')][_0x156e1b[_0x7ef2('0x20')]][_0x7ef2('0x28')]=_0x156e1b[_0x7ef2('0x28')];this[_0x7ef2('0xd')][_0x156e1b[_0x7ef2('0x20')]][_0x7ef2('0x29')]=_0x156e1b['channelstatedesc'];}};Fax[_0x7ef2('0x1a')][_0x7ef2('0x14')]=function(_0xdc5312){if(this['channels'][_0xdc5312[_0x7ef2('0x20')]]){for(var _0x2dc5e8 in _0xdc5312['variable']){if(_0xdc5312[_0x7ef2('0x26')][_0x7ef2('0x1e')](_0x2dc5e8)){this[_0x7ef2('0xd')][_0xdc5312[_0x7ef2('0x20')]][_0x2dc5e8]=_0xdc5312['value'];}}}};Fax['prototype'][_0x7ef2('0x2a')]=function(_0x20b9ed){if(this[_0x7ef2('0xd')][_0x20b9ed[_0x7ef2('0x20')]]){this[_0x7ef2('0xd')][_0x20b9ed[_0x7ef2('0x20')]][_0x7ef2('0x2b')]=_0x20b9ed[_0x7ef2('0x2b')];this[_0x7ef2('0xd')][_0x20b9ed[_0x7ef2('0x20')]][_0x7ef2('0x2c')]=_0x20b9ed['status'];this[_0x7ef2('0xd')][_0x20b9ed[_0x7ef2('0x20')]][_0x7ef2('0x1f')]=_0x20b9ed['localstationid'];this[_0x7ef2('0xd')][_0x20b9ed[_0x7ef2('0x20')]]['filename']=_0x20b9ed[_0x7ef2('0x2d')];logger['info'](_0x20b9ed[_0x7ef2('0x20')],_0x7ef2('0x2e'));}};Fax[_0x7ef2('0x1a')]['syncReceiveFax']=function(_0x3102c0){var _0x24aa0d=this;if(this[_0x7ef2('0xd')][_0x3102c0[_0x7ef2('0x20')]]){var _0x5049f7=this[_0x7ef2('0xd')][_0x3102c0['uniqueid']]['id'];this['channels'][_0x3102c0['uniqueid']]['remotestationid']=_0x3102c0[_0x7ef2('0x2f')];this[_0x7ef2('0xd')][_0x3102c0[_0x7ef2('0x20')]]['pagestransferred']=_0x3102c0['pagestransferred'];this[_0x7ef2('0xd')][_0x3102c0[_0x7ef2('0x20')]][_0x7ef2('0x1f')]=_0x3102c0[_0x7ef2('0x1f')];this[_0x7ef2('0xd')][_0x3102c0[_0x7ef2('0x20')]]['resolution']=_0x3102c0[_0x7ef2('0x30')];this['channels'][_0x3102c0['uniqueid']]['transferrate']=_0x3102c0['transferrate'];this[_0x7ef2('0xd')][_0x3102c0[_0x7ef2('0x20')]]['filename']=_0x3102c0[_0x7ef2('0x2d')];this['channels'][_0x3102c0['uniqueid']]['calleridnum']=_0x3102c0[_0x7ef2('0x31')];if(this[_0x7ef2('0xd')][_0x3102c0[_0x7ef2('0x20')]]['pagestransferred']>0x0){tiff2pdf(_0x3102c0[_0x7ef2('0x2d')],_0x7ef2('0x32'),function(_0x2e01b7){logger[_0x7ef2('0x22')](_0x3102c0[_0x7ef2('0x20')],_0x7ef2('0x33'),_0x2e01b7[_0x7ef2('0x34')]);attachment[_0x7ef2('0x35')]({'name':path[_0x7ef2('0x36')](_0x3102c0[_0x7ef2('0x2d')])[_0x7ef2('0x21')],'basename':path[_0x7ef2('0x36')](_0x3102c0[_0x7ef2('0x2d')])[_0x7ef2('0x21')]+'.pdf','type':_0x7ef2('0x37')})[_0x7ef2('0x38')](function(_0x18c9eb){faxAccount['notify'](_0x5049f7,{'from':_0x3102c0[_0x7ef2('0x31')],'mapKey':_0x7ef2('0x7'),'body':path['parse'](_0x3102c0[_0x7ef2('0x2d')])[_0x7ef2('0x21')]+'.pdf','AttachmentId':_0x18c9eb['id']})[_0x7ef2('0x39')](function(_0x2d0bea){logger[_0x7ef2('0x3a')](_0x3102c0[_0x7ef2('0x20')],_0x7ef2('0x3b'),JSON['stringify'](_0x2d0bea));});})['catch'](function(_0x1c1459){logger[_0x7ef2('0x3a')](_0x3102c0[_0x7ef2('0x20')],'\x20receiveFax\x20',JSON[_0x7ef2('0x3c')](_0x1c1459));});});}logger['info'](_0x3102c0['uniqueid'],_0x7ef2('0x3d'));}};Fax[_0x7ef2('0x1a')][_0x7ef2('0x19')]=function(_0x478f29){if(this['actions'][_0x478f29[_0x7ef2('0x20')]]){_[_0x7ef2('0x3e')](this['channels'][_0x478f29[_0x7ef2('0x20')]],_[_0x7ef2('0x3f')](_0x478f29,['response',_0x7ef2('0x40')]));}};function updateStatus(_0x57769f){if(_0x57769f[_0x7ef2('0x41')]){faxMessage[_0x7ef2('0x42')](_0x57769f[_0x7ef2('0x41')],{'failMessage':_0x7ef2('0x43')})['then'](function(_0x1a52ff){ut[_0x7ef2('0x44')](_0x7ef2('0x45'),_0x1a52ff);})[_0x7ef2('0x39')](function(_0x154833){ut[_0x7ef2('0x44')](_0x7ef2('0x46'),_0x154833);});}else{ut['logger'](_0x7ef2('0x47'));}}Fax[_0x7ef2('0x1a')][_0x7ef2('0x48')]=function(_0x817d1e,_0x44f2a8,_0x4e9efa){var _0xf7fc23=this;var _0xd95712={};if(_0x44f2a8){_0xd95712={'read':_0x44f2a8};}else{_0xd95712={'failMessage':_0x4e9efa};}if(this[_0x7ef2('0x49')][_0x817d1e]['AttachmentId']){faxMessage[_0x7ef2('0x42')](this['actions'][_0x817d1e]['AttachmentId'],_0xd95712)['then'](function(_0x525a07){ut['logger'](_0x7ef2('0x4a'),_0x525a07);})['catch'](function(_0x4f3a0d){ut[_0x7ef2('0x44')](_0x7ef2('0x4b'),_0x4f3a0d);})[_0x7ef2('0x4c')](function(){delete _0xf7fc23[_0x7ef2('0xd')][_0x817d1e];delete _0xf7fc23[_0x7ef2('0x49')][_0x817d1e];});}else{ut[_0x7ef2('0x44')](_0x7ef2('0x4d'));delete this['channels'][_0x817d1e];delete this[_0x7ef2('0x49')][_0x817d1e];}};Fax[_0x7ef2('0x1a')][_0x7ef2('0x17')]=function(_0x3ce8c1){var _0x4720b7=this;if(this[_0x7ef2('0xd')][_0x3ce8c1['uniqueid']]){if(this[_0x7ef2('0x49')][_0x3ce8c1[_0x7ef2('0x20')]]){this[_0x7ef2('0xd')][_0x3ce8c1[_0x7ef2('0x20')]]['id']=this[_0x7ef2('0x49')][_0x3ce8c1['uniqueid']]['id'];this[_0x7ef2('0xd')][_0x3ce8c1['uniqueid']]['name']=this[_0x7ef2('0x49')][_0x3ce8c1[_0x7ef2('0x20')]]['name'];}logger[_0x7ef2('0x22')](_0x3ce8c1['uniqueid'],this[_0x7ef2('0x49')][_0x3ce8c1[_0x7ef2('0x20')]]?'\x20hangup\x20sendFile\x20':_0x7ef2('0x4e'),JSON[_0x7ef2('0x3c')](this[_0x7ef2('0xd')][_0x3ce8c1[_0x7ef2('0x20')]]));if(this[_0x7ef2('0x49')][_0x3ce8c1[_0x7ef2('0x20')]]){if(this[_0x7ef2('0xd')][_0x3ce8c1[_0x7ef2('0x20')]][_0x7ef2('0x4f')]>0x0&&this['channels'][_0x3ce8c1[_0x7ef2('0x20')]][_0x7ef2('0x50')]===_0x7ef2('0x51')){this[_0x7ef2('0x48')](_0x3ce8c1[_0x7ef2('0x20')],!![]);}else{this[_0x7ef2('0x48')](_0x3ce8c1[_0x7ef2('0x20')],![],this[_0x7ef2('0xd')][_0x3ce8c1['uniqueid']][_0x7ef2('0x52')]?_0x7ef2('0x53')+this[_0x7ef2('0xd')][_0x3ce8c1[_0x7ef2('0x20')]][_0x7ef2('0x52')]:_0x7ef2('0x54'));}}}};Fax[_0x7ef2('0x1a')][_0x7ef2('0x55')]=function(_0x1871de){var _0x40887e=this;return new BPromise(function(_0x534a65,_0x2dac19){_0x40887e['execOriginate'](_0x1871de,_0x40887e['faxAccounts'][_0x1871de[_0x7ef2('0x56')]])[_0x7ef2('0x38')](function(_0x49784b){ut['logger'](_0x7ef2('0x57'),_0x49784b);_0x534a65(ut[_0x7ef2('0x34')](_0x7ef2('0x58')));})[_0x7ef2('0x39')](function(_0xf9a5b8){ut[_0x7ef2('0x44')]('[Fax][execOriginate][failure]',_0xf9a5b8);updateStatus(_0x1871de);_0x2dac19(ut[_0x7ef2('0x34')](_0x7ef2('0x59')));});});};Fax['prototype'][_0x7ef2('0x5a')]=function(_0x276c61){var _0x6a3639=this;return new BPromise(function(_0x2743bf,_0x1ed1e7){var _0x23a22c=_0x6a3639[_0x7ef2('0x5b')](_0x6a3639[_0x7ef2('0xe')][_0x276c61[_0x7ef2('0x56')]]['Trunk'],_0x276c61);if(_0x23a22c[_0x7ef2('0x5c')]){_0x2743bf(ut[_0x7ef2('0x34')](_0x7ef2('0x5d')));}else{_0x1ed1e7(ut[_0x7ef2('0x34')](_0x23a22c[_0x7ef2('0x34')]));}});};function originate(_0x52cea2,_0x3c2d6f,_0x2b5eda){return new BPromise(function(_0x4d8421,_0x4c1538){if(_0x2b5eda){var _0x164130=util[_0x7ef2('0x5e')](_0x7ef2('0x5f'),path[_0x7ef2('0x36')](_0x52cea2['path'])[_0x7ef2('0x21')],_0x52cea2[_0x7ef2('0x3')]);gs['execute'](_0x164130)['then'](function(){_0x52cea2[_0x7ef2('0x3')]=util[_0x7ef2('0x5e')](_0x7ef2('0x60'),path['parse'](_0x52cea2[_0x7ef2('0x3')])[_0x7ef2('0x61')],path[_0x7ef2('0x36')](_0x52cea2['path'])['name']);_0x3c2d6f[_0x7ef2('0x62')]=_0x52cea2['path'];ut[_0x7ef2('0x44')](_0x7ef2('0x63'),'');ami[_0x7ef2('0x64')](ut[_0x7ef2('0x65')](_0x52cea2,_0x3c2d6f))[_0x7ef2('0x38')](function(_0x26d907){_0x4d8421(_0x26d907);})[_0x7ef2('0x39')](function(_0x3fe212){_0x4c1538(_0x3fe212);});})[_0x7ef2('0x39')](function(_0x464237){_0x4c1538(_0x464237);});}else{ami[_0x7ef2('0x64')](ut['variablesAction'](_0x52cea2,_0x3c2d6f))[_0x7ef2('0x38')](function(_0x116bfc){_0x4d8421(_0x116bfc);})['catch'](function(_0x2b82f5){_0x4c1538(_0x2b82f5);});}});}Fax[_0x7ef2('0x1a')][_0x7ef2('0x66')]=function(_0x4d6d16,_0x1ac7e5){var _0x14a7c0=this;return new BPromise(function(_0x418ef0,_0x111490){var _0x2e95b7=uuid['v4']();var _0x3c5858=ut[_0x7ef2('0x67')](_0x4d6d16,_0x1ac7e5);_0x14a7c0[_0x7ef2('0x49')][_0x2e95b7]=new Action(_0x2e95b7,_0x1ac7e5,_0x4d6d16);var _0x5b8eb3=_0x14a7c0[_0x7ef2('0x49')][_0x2e95b7];if(path[_0x7ef2('0x36')](_0x4d6d16[_0x7ef2('0x3')])[_0x7ef2('0x68')]==='.pdf'){originate(_0x5b8eb3,_0x3c5858,!![])[_0x7ef2('0x38')](function(_0xd7ef48){_0x418ef0(_0xd7ef48);})[_0x7ef2('0x39')](function(_0x454717){_0x111490(_0x454717);});}else{originate(_0x5b8eb3,_0x3c5858,![])[_0x7ef2('0x38')](function(_0x39afb9){_0x418ef0(_0x39afb9);})[_0x7ef2('0x39')](function(_0x420172){_0x111490(_0x420172);});}});};Fax['prototype'][_0x7ef2('0x69')]=function(_0x413950){return!_[_0x7ef2('0x6a')](_0x413950)&&!_[_0x7ef2('0x6a')](_0x413950[_0x7ef2('0x21')])&&!_[_0x7ef2('0x6a')](_0x413950[_0x7ef2('0x6b')])&&_0x413950[_0x7ef2('0x6b')]&&!_['isNil'](this[_0x7ef2('0xf')][util[_0x7ef2('0x5e')](_0x7ef2('0x6c'),_0x413950[_0x7ef2('0x21')])])&&!_[_0x7ef2('0x6a')](this[_0x7ef2('0xf')][util[_0x7ef2('0x5e')](_0x7ef2('0x6c'),_0x413950[_0x7ef2('0x21')])][_0x7ef2('0x2c')])&&(this[_0x7ef2('0xf')][util[_0x7ef2('0x5e')](_0x7ef2('0x6c'),_0x413950['name'])]['status']===_0x7ef2('0x6d')||this[_0x7ef2('0xf')][util[_0x7ef2('0x5e')](_0x7ef2('0x6c'),_0x413950[_0x7ef2('0x21')])][_0x7ef2('0x2c')]==='unmonitored');};Fax[_0x7ef2('0x1a')][_0x7ef2('0x5b')]=function(_0x1ba5ad,_0x4b8ea0){if(!this[_0x7ef2('0x69')](_0x1ba5ad)){ut[_0x7ef2('0x44')]('[Fax][checkTrunk][Trunk\x20not\x20work]',_['isNil'](_0x1ba5ad)?'':_0x1ba5ad['name']+_0x7ef2('0x6e'));return{'isValid':![],'message':_0x7ef2('0x6f')};}if(_[_0x7ef2('0x6a')](_0x4b8ea0[_0x7ef2('0x7')])){ut[_0x7ef2('0x44')](_0x7ef2('0x70'),JSON['stringify'](_0x4b8ea0));return{'isValid':![],'message':_0x7ef2('0x71')};}if(_['isNil'](_0x4b8ea0[_0x7ef2('0x3')])){ut['logger']('[Fax][checkTrunk][Empty\x20path]',JSON['stringify'](_0x4b8ea0));return{'isValid':![],'message':_0x7ef2('0x72')};}return{'isValid':!![],'message':_0x7ef2('0x73')};};module[_0x7ef2('0x74')]=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7c6=['../rpc/faxAccount','inspect','resolve','then','notify','catch','[Notify]\x20','util','bluebird','preview','lodash'];(function(_0x374c7f,_0x216c8a){var _0x1ace10=function(_0x170d06){while(--_0x170d06){_0x374c7f['push'](_0x374c7f['shift']());}};_0x1ace10(++_0x216c8a);}(_0xc7c6,0x15c));var _0x6c7c=function(_0x2c676f,_0xfdf34e){_0x2c676f=_0x2c676f-0x0;var _0x42f969=_0xc7c6[_0x2c676f];return _0x42f969;};'use strict';var util=require(_0x6c7c('0x0'));var BPromise=require(_0x6c7c('0x1'));var logger=require('../../../config/logger')(_0x6c7c('0x2'));var _=require(_0x6c7c('0x3'));var faxAccount=require(_0x6c7c('0x4'));function loggerCatch(_0x51a1f0){return function(_0x10d4c2){logger['error'](_0x51a1f0,util[_0x6c7c('0x5')](_0x10d4c2,{'showHidden':![],'depth':null}));};}exports['notify']=function(_0x3468ce,_0x353dcc){return BPromise[_0x6c7c('0x6')]()[_0x6c7c('0x7')](faxAccount[_0x6c7c('0x8')](_0x3468ce,_0x353dcc))[_0x6c7c('0x9')](loggerCatch(_0x6c7c('0xa')));};
\ No newline at end of file
+var _0x6012=['notify','resolve','then','catch','[Notify]\x20','util','bluebird','../../../config/logger','preview','lodash','../rpc/faxAccount','error','inspect'];(function(_0x3e7ae6,_0x2e14d9){var _0xdfaa19=function(_0x2f9732){while(--_0x2f9732){_0x3e7ae6['push'](_0x3e7ae6['shift']());}};_0xdfaa19(++_0x2e14d9);}(_0x6012,0x17e));var _0x2601=function(_0x42bafd,_0x3f0fe3){_0x42bafd=_0x42bafd-0x0;var _0x2ed705=_0x6012[_0x42bafd];return _0x2ed705;};'use strict';var util=require(_0x2601('0x0'));var BPromise=require(_0x2601('0x1'));var logger=require(_0x2601('0x2'))(_0x2601('0x3'));var _=require(_0x2601('0x4'));var faxAccount=require(_0x2601('0x5'));function loggerCatch(_0x2cf9bf){return function(_0x5e0cf4){logger[_0x2601('0x6')](_0x2cf9bf,util[_0x2601('0x7')](_0x5e0cf4,{'showHidden':![],'depth':null}));};}exports[_0x2601('0x8')]=function(_0x3d10cf,_0x23d173){return BPromise[_0x2601('0x9')]()[_0x2601('0xa')](faxAccount[_0x2601('0x8')](_0x3d10cf,_0x23d173))[_0x2601('0xb')](loggerCatch(_0x2601('0xc')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e25=['util','fax','bluebird','child_process','info','Exec\x20gs','\x20Error\x20:','inspect'];(function(_0x268a1c,_0x31b416){var _0x11243b=function(_0x201494){while(--_0x201494){_0x268a1c['push'](_0x268a1c['shift']());}};_0x11243b(++_0x31b416);}(_0x6e25,0x130));var _0x56e2=function(_0x10b317,_0x2adf32){_0x10b317=_0x10b317-0x0;var _0x1e3054=_0x6e25[_0x10b317];return _0x1e3054;};'use strict';var util=require(_0x56e2('0x0'));var logger=require('../../../../config/logger')(_0x56e2('0x1'));var BPromise=require(_0x56e2('0x2'));var exec=require(_0x56e2('0x3'))['exec'];exports['execute']=function(_0x4eed31){return new BPromise(function(_0x194256,_0xbb0b56){exec(_0x4eed31,function(_0x313f2d,_0x51231d,_0x1686bb){logger[_0x56e2('0x4')](_0x56e2('0x5'),_0x51231d);if(_0x313f2d){logger[_0x56e2('0x4')](_0x56e2('0x5'),_0x56e2('0x6'),util[_0x56e2('0x7')](_0x313f2d,{'showHidden':![],'depth':null}),_0x51231d,_0x1686bb);_0xbb0b56(_0x313f2d);}_0x194256(_0x51231d);});});};
\ No newline at end of file
+var _0x80ab=['execute','info','Exec\x20gs','\x20Error\x20:','util','../../../../config/logger','fax','bluebird'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x80ab,0x1cc));var _0xb80a=function(_0x366565,_0x4beb91){_0x366565=_0x366565-0x0;var _0x5191c3=_0x80ab[_0x366565];return _0x5191c3;};'use strict';var util=require(_0xb80a('0x0'));var logger=require(_0xb80a('0x1'))(_0xb80a('0x2'));var BPromise=require(_0xb80a('0x3'));var exec=require('child_process')['exec'];exports[_0xb80a('0x4')]=function(_0x13f906){return new BPromise(function(_0x23f2c4,_0x9b5751){exec(_0x13f906,function(_0x46444c,_0x2c998e,_0x11abdd){logger[_0xb80a('0x5')](_0xb80a('0x6'),_0x2c998e);if(_0x46444c){logger['info'](_0xb80a('0x6'),_0xb80a('0x7'),util['inspect'](_0x46444c,{'showHidden':![],'depth':null}),_0x2c998e,_0x11abdd);_0x9b5751(_0x46444c);}_0x23f2c4(_0x2c998e);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x455e=['ecm','headerinfo','minrate','maxrate','\x22%s\x22','gateway','faxdetect','t38timeout','variablesAction','uniqueid','xcally-motion-fax','format','\x22%s\x22\x20<%s>','localstationid','lodash','moment','../../../../config/logger','fax','message','logger','inspect','addVariables'];(function(_0x2ab423,_0x5481bd){var _0x3d79a8=function(_0x93949a){while(--_0x93949a){_0x2ab423['push'](_0x2ab423['shift']());}};_0x3d79a8(++_0x5481bd);}(_0x455e,0xbe));var _0xe455=function(_0x3dd8b7,_0x5646c5){_0x3dd8b7=_0x3dd8b7-0x0;var _0x5145a9=_0x455e[_0x3dd8b7];return _0x5145a9;};'use strict';var util=require('util');var _=require(_0xe455('0x0'));var moment=require(_0xe455('0x1'));var logger=require(_0xe455('0x2'))(_0xe455('0x3'));exports[_0xe455('0x4')]=function(_0x5177ec){return{'message':_0x5177ec};};exports[_0xe455('0x5')]=function(_0x314dcc,_0x54bb96){logger['info'](_0x314dcc,util[_0xe455('0x6')](_0x54bb96,{'showHidden':![],'depth':null}));};exports[_0xe455('0x7')]=function(_0x2e614d,_0x45109d){var _0x271fb9={'XMF-ECM':_0x45109d[_0xe455('0x8')],'XMF-HEADERINFO':_0x45109d[_0xe455('0x9')],'XMF-MINRATE':_0x45109d[_0xe455('0xa')],'XMF-MAXRATE':_0x45109d[_0xe455('0xb')],'XMF-MODEM':util['format'](_0xe455('0xc'),_0x45109d['modem']),'XMF-GATEWAY':_0x45109d[_0xe455('0xd')],'XMF-FAXDETECT':_0x45109d[_0xe455('0xe')],'XMF-T38TIMEOUT':_0x45109d[_0xe455('0xf')],'XMF-LOCALSTATIONID':_0x45109d['localstationid'],'XMF-PATH':_0x2e614d['path']};return _0x271fb9;};exports[_0xe455('0x10')]=function(_0x13dd4d,_0x16cb95){return{'actionid':_0x13dd4d[_0xe455('0x11')],'action':'originate','channel':_0x13dd4d['channel'],'Exten':_0xe455('0x12'),'Context':'from-sip','Priority':'1','callerid':util[_0xe455('0x13')](_0xe455('0x14'),_0x13dd4d[_0xe455('0x9')]?_0x13dd4d[_0xe455('0x9')]:'',_0x13dd4d[_0xe455('0x15')]),'variable':_0x16cb95,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x13dd4d['uniqueid']};};
\ No newline at end of file
+var _0x208d=['xcally-motion-fax','from-sip','headerinfo','util','lodash','moment','fax','logger','info','inspect','addVariables','ecm','minrate','maxrate','format','\x22%s\x22','modem','gateway','faxdetect','t38timeout','localstationid','path','uniqueid','originate','channel'];(function(_0xc31519,_0x1edcc0){var _0x4b435e=function(_0x16124a){while(--_0x16124a){_0xc31519['push'](_0xc31519['shift']());}};_0x4b435e(++_0x1edcc0);}(_0x208d,0x67));var _0xd208=function(_0x5614a3,_0x1ebbb3){_0x5614a3=_0x5614a3-0x0;var _0x15f60c=_0x208d[_0x5614a3];return _0x15f60c;};'use strict';var util=require(_0xd208('0x0'));var _=require(_0xd208('0x1'));var moment=require(_0xd208('0x2'));var logger=require('../../../../config/logger')(_0xd208('0x3'));exports['message']=function(_0x43544b){return{'message':_0x43544b};};exports[_0xd208('0x4')]=function(_0x263332,_0x4fe586){logger[_0xd208('0x5')](_0x263332,util[_0xd208('0x6')](_0x4fe586,{'showHidden':![],'depth':null}));};exports[_0xd208('0x7')]=function(_0x1dc656,_0x120bdf){var _0x31e12f={'XMF-ECM':_0x120bdf[_0xd208('0x8')],'XMF-HEADERINFO':_0x120bdf['headerinfo'],'XMF-MINRATE':_0x120bdf[_0xd208('0x9')],'XMF-MAXRATE':_0x120bdf[_0xd208('0xa')],'XMF-MODEM':util[_0xd208('0xb')](_0xd208('0xc'),_0x120bdf[_0xd208('0xd')]),'XMF-GATEWAY':_0x120bdf[_0xd208('0xe')],'XMF-FAXDETECT':_0x120bdf[_0xd208('0xf')],'XMF-T38TIMEOUT':_0x120bdf[_0xd208('0x10')],'XMF-LOCALSTATIONID':_0x120bdf[_0xd208('0x11')],'XMF-PATH':_0x1dc656[_0xd208('0x12')]};return _0x31e12f;};exports['variablesAction']=function(_0x76beb2,_0x95f932){return{'actionid':_0x76beb2[_0xd208('0x13')],'action':_0xd208('0x14'),'channel':_0x76beb2[_0xd208('0x15')],'Exten':_0xd208('0x16'),'Context':_0xd208('0x17'),'Priority':'1','callerid':util[_0xd208('0xb')]('\x22%s\x22\x20<%s>',_0x76beb2[_0xd208('0x18')]?_0x76beb2[_0xd208('0x18')]:'',_0x76beb2[_0xd208('0x11')]),'variable':_0x95f932,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x76beb2[_0xd208('0x13')]};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f68=['./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/cmHopperHistory','./rpc/voiceExtension','./rpc/faxAccount','./rpc/integrations/zendesk','./rpc/integrations/salesforce','./rpc/integrations/freshdesk','./rpc/integrations/zoho','./rpc/integrations/vtiger','get','hour','resolve','then','getAgents','initAgents','getTelephones','initTelephones','initTrunks','getVoiceQueues','getTriggers','initTriggers','getTemplates','getZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','initDeskAccounts','initZohoAccounts','getVtigerAccounts','initVtigerAccounts','getCampaigns','initCampaigns','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','initCampaignHopperHistory','getVoiceCallReports','log','listen','sync','catch','bluebird','util','moment','./realtime','./report','./dialer','./preview','./fax','./rpc/user','./rpc/voiceQueueReport','./rpc/voiceCallReport'];(function(_0x3aabb0,_0x16038b){var _0x5790d2=function(_0x2fcc65){while(--_0x2fcc65){_0x3aabb0['push'](_0x3aabb0['shift']());}};_0x5790d2(++_0x16038b);}(_0x3f68,0x1e5));var _0x83f6=function(_0x3edf6a,_0x266a11){_0x3edf6a=_0x3edf6a-0x0;var _0x108e80=_0x3f68[_0x3edf6a];return _0x108e80;};'use strict';var BPromise=require(_0x83f6('0x0'));var util=require(_0x83f6('0x1'));var moment=require(_0x83f6('0x2'));var server=require('./server');var Realtime=require(_0x83f6('0x3'));var Report=require(_0x83f6('0x4'));var Acw=require('./acw');var Trigger=require('./trigger');var Dialer=require(_0x83f6('0x5'));var Preview=require(_0x83f6('0x6'));var Fax=require(_0x83f6('0x7'));var user=require(_0x83f6('0x8'));var voiceQueue=require('./rpc/voiceQueue');var voiceQueueReport=require(_0x83f6('0x9'));var voiceCallReport=require(_0x83f6('0xa'));var trunk=require(_0x83f6('0xb'));var trigger=require(_0x83f6('0xc'));var template=require(_0x83f6('0xd'));var cmHopperHistory=require(_0x83f6('0xe'));var campaign=require('./rpc/campaign');var voiceExtension=require(_0x83f6('0xf'));var faxAccount=require(_0x83f6('0x10'));var zendesk=require(_0x83f6('0x11'));var salesforce=require(_0x83f6('0x12'));var sugarcrm=require('./rpc/integrations/sugarcrm');var freshdesk=require(_0x83f6('0x13'));var desk=require('./rpc/integrations/desk');var zoho=require(_0x83f6('0x14'));var vtiger=require(_0x83f6('0x15'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()[_0x83f6('0x16')](_0x83f6('0x17'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x83f6('0x16')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x83f6('0x18')]()[_0x83f6('0x19')](user[_0x83f6('0x1a')]())[_0x83f6('0x19')](realtime[_0x83f6('0x1b')]())[_0x83f6('0x19')](user[_0x83f6('0x1c')]())[_0x83f6('0x19')](realtime[_0x83f6('0x1d')]())[_0x83f6('0x19')](trunk['getTrunks']())[_0x83f6('0x19')](realtime[_0x83f6('0x1e')]())['then'](voiceQueue[_0x83f6('0x1f')]())[_0x83f6('0x19')](realtime['initVoiceQueues']())[_0x83f6('0x19')](trigger[_0x83f6('0x20')]())['then'](realtime[_0x83f6('0x21')]())[_0x83f6('0x19')](template[_0x83f6('0x22')]())[_0x83f6('0x19')](realtime['initTemplates']())[_0x83f6('0x19')](zendesk[_0x83f6('0x23')]())[_0x83f6('0x19')](realtime['initZendeskAccounts']())[_0x83f6('0x19')](salesforce[_0x83f6('0x24')]())['then'](realtime[_0x83f6('0x25')]())[_0x83f6('0x19')](sugarcrm[_0x83f6('0x26')]())[_0x83f6('0x19')](realtime[_0x83f6('0x27')]())[_0x83f6('0x19')](freshdesk[_0x83f6('0x28')]())['then'](realtime[_0x83f6('0x29')]())[_0x83f6('0x19')](desk[_0x83f6('0x2a')]())[_0x83f6('0x19')](realtime[_0x83f6('0x2b')]())['then'](zoho['getZohoAccounts']())[_0x83f6('0x19')](realtime[_0x83f6('0x2c')]())[_0x83f6('0x19')](vtiger[_0x83f6('0x2d')]())['then'](realtime[_0x83f6('0x2e')]())[_0x83f6('0x19')](campaign[_0x83f6('0x2f')]())[_0x83f6('0x19')](realtime[_0x83f6('0x30')]())[_0x83f6('0x19')](voiceExtension['getVoiceExtensions']())[_0x83f6('0x19')](realtime[_0x83f6('0x31')]())[_0x83f6('0x19')](faxAccount[_0x83f6('0x32')]())[_0x83f6('0x19')](realtime[_0x83f6('0x33')]())[_0x83f6('0x19')](function(){return realtime;});}function initParams(){return BPromise['resolve']()[_0x83f6('0x19')](voiceQueueReport[_0x83f6('0x34')]())[_0x83f6('0x19')](realtime[_0x83f6('0x35')]())['then'](cmHopperHistory[_0x83f6('0x36')]())[_0x83f6('0x19')](realtime[_0x83f6('0x37')]())[_0x83f6('0x19')](cmHopperHistory['getCampaignHopperHistory']())[_0x83f6('0x19')](realtime[_0x83f6('0x38')]())[_0x83f6('0x19')](voiceCallReport[_0x83f6('0x39')]())['then'](realtime['initVoiceCallReports']())[_0x83f6('0x19')](function(_0x28e3c3){})['catch'](function(_0x50e3b2){console[_0x83f6('0x3a')](_0x50e3b2);});}function main(){return server[_0x83f6('0x3b')](realtime,preview,fax)['then'](function(_0x32d499){return initRealtime();})['then'](function(){return initParams();})[_0x83f6('0x19')](function(){report[_0x83f6('0x3c')]();setInterval(initRealtime,0x1388);})[_0x83f6('0x3d')](function(_0x586f63){console['log'](_0x586f63);});}main();
\ No newline at end of file
+var _0x6c3f=['./rpc/voiceCallReport','./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/cmHopperHistory','./rpc/voiceExtension','./rpc/faxAccount','./rpc/integrations/zendesk','./rpc/integrations/salesforce','./rpc/integrations/sugarcrm','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','get','hour','resolve','then','getAgents','initAgents','getTelephones','initTrunks','initVoiceQueues','getTriggers','initTemplates','getZendeskAccounts','initZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','getSugarcrmAccounts','initFreshdeskAccounts','getZohoAccounts','initZohoAccounts','getVtigerAccounts','initVtigerAccounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','catch','listen','log','util','moment','./realtime','./report','./acw','./dialer','./preview','./fax','./rpc/voiceQueue','./rpc/voiceQueueReport'];(function(_0x40459f,_0x4e3fe4){var _0x2e7cb9=function(_0x13ee26){while(--_0x13ee26){_0x40459f['push'](_0x40459f['shift']());}};_0x2e7cb9(++_0x4e3fe4);}(_0x6c3f,0x68));var _0xf6c3=function(_0x4bb2c6,_0x5e6957){_0x4bb2c6=_0x4bb2c6-0x0;var _0x1d8c4c=_0x6c3f[_0x4bb2c6];return _0x1d8c4c;};'use strict';var BPromise=require('bluebird');var util=require(_0xf6c3('0x0'));var moment=require(_0xf6c3('0x1'));var server=require('./server');var Realtime=require(_0xf6c3('0x2'));var Report=require(_0xf6c3('0x3'));var Acw=require(_0xf6c3('0x4'));var Trigger=require('./trigger');var Dialer=require(_0xf6c3('0x5'));var Preview=require(_0xf6c3('0x6'));var Fax=require(_0xf6c3('0x7'));var user=require('./rpc/user');var voiceQueue=require(_0xf6c3('0x8'));var voiceQueueReport=require(_0xf6c3('0x9'));var voiceCallReport=require(_0xf6c3('0xa'));var trunk=require(_0xf6c3('0xb'));var trigger=require(_0xf6c3('0xc'));var template=require(_0xf6c3('0xd'));var cmHopperHistory=require(_0xf6c3('0xe'));var campaign=require('./rpc/campaign');var voiceExtension=require(_0xf6c3('0xf'));var faxAccount=require(_0xf6c3('0x10'));var zendesk=require(_0xf6c3('0x11'));var salesforce=require(_0xf6c3('0x12'));var sugarcrm=require(_0xf6c3('0x13'));var freshdesk=require('./rpc/integrations/freshdesk');var desk=require(_0xf6c3('0x14'));var zoho=require(_0xf6c3('0x15'));var vtiger=require(_0xf6c3('0x16'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()[_0xf6c3('0x17')](_0xf6c3('0x18'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0xf6c3('0x17')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0xf6c3('0x19')]()[_0xf6c3('0x1a')](user[_0xf6c3('0x1b')]())['then'](realtime[_0xf6c3('0x1c')]())[_0xf6c3('0x1a')](user[_0xf6c3('0x1d')]())[_0xf6c3('0x1a')](realtime['initTelephones']())[_0xf6c3('0x1a')](trunk['getTrunks']())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x1e')]())[_0xf6c3('0x1a')](voiceQueue['getVoiceQueues']())['then'](realtime[_0xf6c3('0x1f')]())[_0xf6c3('0x1a')](trigger[_0xf6c3('0x20')]())['then'](realtime['initTriggers']())['then'](template['getTemplates']())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x21')]())[_0xf6c3('0x1a')](zendesk[_0xf6c3('0x22')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x23')]())[_0xf6c3('0x1a')](salesforce[_0xf6c3('0x24')]())['then'](realtime[_0xf6c3('0x25')]())['then'](sugarcrm[_0xf6c3('0x26')]())[_0xf6c3('0x1a')](realtime['initSugarcrmAccounts']())['then'](freshdesk['getFreshdeskAccounts']())['then'](realtime[_0xf6c3('0x27')]())[_0xf6c3('0x1a')](desk['getDeskAccounts']())[_0xf6c3('0x1a')](realtime['initDeskAccounts']())['then'](zoho[_0xf6c3('0x28')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x29')]())['then'](vtiger[_0xf6c3('0x2a')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x2b')]())['then'](campaign[_0xf6c3('0x2c')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x2d')]())[_0xf6c3('0x1a')](voiceExtension[_0xf6c3('0x2e')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x2f')]())[_0xf6c3('0x1a')](faxAccount[_0xf6c3('0x30')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x31')]())['then'](function(){return realtime;});}function initParams(){return BPromise['resolve']()[_0xf6c3('0x1a')](voiceQueueReport[_0xf6c3('0x32')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x33')]())[_0xf6c3('0x1a')](cmHopperHistory[_0xf6c3('0x34')]())[_0xf6c3('0x1a')](realtime[_0xf6c3('0x35')]())[_0xf6c3('0x1a')](cmHopperHistory['getCampaignHopperHistory']())[_0xf6c3('0x1a')](realtime['initCampaignHopperHistory']())['then'](voiceCallReport['getVoiceCallReports']())[_0xf6c3('0x1a')](realtime['initVoiceCallReports']())[_0xf6c3('0x1a')](function(_0x1f05b8){})[_0xf6c3('0x36')](function(_0x4630ca){console['log'](_0x4630ca);});}function main(){return server[_0xf6c3('0x37')](realtime,preview,fax)[_0xf6c3('0x1a')](function(_0x22bd96){return initRealtime();})[_0xf6c3('0x1a')](function(){return initParams();})[_0xf6c3('0x1a')](function(){report['sync']();setInterval(initRealtime,0x1388);})[_0xf6c3('0x36')](function(_0x3bf462){console[_0xf6c3('0x38')](_0x3bf462);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['moment','md5','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','email','accountcode','fullname','state','stateTime','status','unknown','address','phone','interface','online','voiceStatus','voiceStatusQueue','prototype','toLowerCase','not_inuse','idle','inuse','talking','statePause','voiceStatusTime','format','stringify','user:%s','user:save','exports'];(function(_0x52c1d7,_0x255d66){var _0x9bcf64=function(_0x410099){while(--_0x410099){_0x52c1d7['push'](_0x52c1d7['shift']());}};_0x9bcf64(++_0x255d66);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3071('0x0'));var md5=require(_0x3071('0x1'));var config=require(_0x3071('0x2'));config[_0x3071('0x3')]=_[_0x3071('0x4')](config['redis'],{'host':_0x3071('0x5'),'port':0x18eb});var io=require(_0x3071('0x6'))(config[_0x3071('0x3')]);function Agent(_0x3137c8){this['id']=_0x3137c8['id']||0x0;this[_0x3071('0x7')]=_0x3137c8[_0x3071('0x7')]||'';this[_0x3071('0x8')]=_0x3137c8[_0x3071('0x8')]||'';this[_0x3071('0x9')]=_0x3137c8[_0x3071('0x9')]||'';this[_0x3071('0xa')]=_0x3137c8[_0x3071('0xa')]||'';this[_0x3071('0xb')]='unknown';this[_0x3071('0xc')]=0x0;this[_0x3071('0xd')]=_0x3071('0xe');this[_0x3071('0xf')]='';this[_0x3071('0x10')]='';this['mobile']='';this[_0x3071('0x11')]='';this[_0x3071('0x12')]=_0x3137c8[_0x3071('0x12')]||![];this[_0x3071('0x13')]=_0x3071('0xe');this['voiceStatusTime']=0x0;this['voiceStatusCallerIdNumber']='';this[_0x3071('0x14')]='';this['local']=![];this[_0x3071('0x1')]='';}Agent[_0x3071('0x15')]['updateStatusRealtime']=function(_0x104e73){var _0x4e1219;if(_0x104e73&&_0x104e73[_0x3071('0xb')]){_0x4e1219=_0x104e73[_0x3071('0xb')][_0x3071('0x16')]();switch(_0x4e1219){case _0x3071('0x17'):_0x4e1219=_0x3071('0x18');break;case _0x3071('0x19'):_0x4e1219=_0x3071('0x1a');break;}}if(_0x4e1219&&this[_0x3071('0x13')]!==_0x4e1219||_0x104e73[_0x3071('0x1b')]){this[_0x3071('0x1c')]=_['toNumber'](moment()[_0x3071('0x1d')]('x'));}if(_0x4e1219){this[_0x3071('0x13')]=_0x4e1219;}var _0x1068d9={'id':this['id'],'name':this[_0x3071('0x7')],'email':this[_0x3071('0x8')],'accountcode':this[_0x3071('0x9')],'fullname':this[_0x3071('0xa')],'state':this[_0x3071('0xb')],'stateTime':this['stateTime'],'status':this[_0x3071('0xd')],'address':this[_0x3071('0xf')],'online':this[_0x3071('0x12')],'voiceStatus':this['voiceStatus'],'voiceStatusTime':this[_0x3071('0x1c')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x3071('0x14')],'interface':this[_0x3071('0x11')]};var _0x3762d8=md5(JSON[_0x3071('0x1e')](_0x1068d9));if(this[_0x3071('0x1')]!==_0x3762d8){this[_0x3071('0x1')]=_0x3762d8;io['to'](util[_0x3071('0x1d')](_0x3071('0x1f'),_0x1068d9['name']))['emit'](_0x3071('0x20'),_0x1068d9);}};module[_0x3071('0x21')]=Agent;
\ No newline at end of file
+var _0x8544=['emit','user:save','exports','util','moment','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','email','accountcode','fullname','state','unknown','address','mobile','interface','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','local','md5','prototype','updateStatusRealtime','toLowerCase','not_inuse','idle','inuse','statePause','stateTime','status','stringify','format','user:%s'];(function(_0x105a8a,_0x15a3a2){var _0x105a0e=function(_0x3beeb1){while(--_0x3beeb1){_0x105a8a['push'](_0x105a8a['shift']());}};_0x105a0e(++_0x15a3a2);}(_0x8544,0x1b0));var _0x4854=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0x8544[_0x138adb];return _0x1b27f2;};'use strict';var _=require('lodash');var util=require(_0x4854('0x0'));var moment=require(_0x4854('0x1'));var md5=require('md5');var Redis=require(_0x4854('0x2'));var config=require(_0x4854('0x3'));config['redis']=_['defaults'](config[_0x4854('0x4')],{'host':_0x4854('0x5'),'port':0x18eb});var io=require(_0x4854('0x6'))(new Redis(config[_0x4854('0x4')]));function Agent(_0x282127){this['id']=_0x282127['id']||0x0;this['name']=_0x282127[_0x4854('0x7')]||'';this[_0x4854('0x8')]=_0x282127[_0x4854('0x8')]||'';this[_0x4854('0x9')]=_0x282127['accountcode']||'';this['fullname']=_0x282127[_0x4854('0xa')]||'';this[_0x4854('0xb')]=_0x4854('0xc');this['stateTime']=0x0;this['status']=_0x4854('0xc');this[_0x4854('0xd')]='';this['phone']='';this[_0x4854('0xe')]='';this[_0x4854('0xf')]='';this[_0x4854('0x10')]=_0x282127[_0x4854('0x10')]||![];this[_0x4854('0x11')]=_0x4854('0xc');this[_0x4854('0x12')]=0x0;this[_0x4854('0x13')]='';this[_0x4854('0x14')]='';this[_0x4854('0x15')]=![];this[_0x4854('0x16')]=![];this[_0x4854('0x17')]='';}Agent[_0x4854('0x18')][_0x4854('0x19')]=function(_0x48b729){var _0x5c7524;if(_0x48b729&&_0x48b729['state']){_0x5c7524=_0x48b729['state'][_0x4854('0x1a')]();switch(_0x5c7524){case _0x4854('0x1b'):_0x5c7524=_0x4854('0x1c');break;case _0x4854('0x1d'):_0x5c7524='talking';break;}}if(_0x5c7524&&this[_0x4854('0x11')]!==_0x5c7524||_0x48b729[_0x4854('0x1e')]){this[_0x4854('0x12')]=_['toNumber'](moment()['format']('x'));}if(_0x5c7524){this[_0x4854('0x11')]=_0x5c7524;}var _0x12ff6b={'id':this['id'],'name':this[_0x4854('0x7')],'email':this[_0x4854('0x8')],'accountcode':this[_0x4854('0x9')],'fullname':this[_0x4854('0xa')],'state':this[_0x4854('0xb')],'stateTime':this[_0x4854('0x1f')],'status':this[_0x4854('0x20')],'address':this['address'],'online':this[_0x4854('0x10')],'voiceStatus':this[_0x4854('0x11')],'voiceStatusTime':this[_0x4854('0x12')],'voiceStatusCallerIdNumber':this[_0x4854('0x13')],'voiceStatusQueue':this[_0x4854('0x14')],'interface':this['interface'],'onhold':this[_0x4854('0x15')]};var _0xa5b873=md5(JSON[_0x4854('0x21')](_0x12ff6b));if(this['md5']!==_0xa5b873){this[_0x4854('0x17')]=_0xa5b873;io['to'](util[_0x4854('0x22')](_0x4854('0x23'),_0x12ff6b[_0x4854('0x7')]))[_0x4854('0x24')](_0x4854('0x25'),_0x12ff6b);}};module[_0x4854('0x26')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7633=['SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','exports','name','type','originated','temp','ivrTotalCallsDays','message','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval'];(function(_0x209941,_0x5c9988){var _0x1e8729=function(_0x51a9b8){while(--_0x51a9b8){_0x209941['push'](_0x209941['shift']());}};_0x1e8729(++_0x5c9988);}(_0x7633,0x1c4));var _0x3763=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0x7633[_0x160c73];return _0xd9302;};'use strict';function Campaign(_0x997ef){this['id']=_0x997ef['id']||0x0;this[_0x3763('0x0')]=_0x997ef[_0x3763('0x0')]||'';this[_0x3763('0x1')]=_0x997ef[_0x3763('0x1')]||'campaign';this[_0x3763('0x2')]=0x0;this[_0x3763('0x3')]=0x0;this['ivrAnswerCallsDay']=0x0;this[_0x3763('0x4')]=0x0;this[_0x3763('0x5')]='';this['sendMessageOneNotActive']=!![];this['active']=_0x997ef[_0x3763('0x6')];this[_0x3763('0x7')]=_0x997ef[_0x3763('0x7')];this[_0x3763('0x8')]=_0x997ef['dialTimezone']||null;this['dialGlobalInterval']=_0x997ef[_0x3763('0x9')]?_0x997ef[_0x3763('0x9')]:null;this['dialOriginateCallerIdName']=_0x997ef[_0x3763('0xa')];this[_0x3763('0xb')]=_0x997ef[_0x3763('0xb')];this[_0x3763('0xc')]=_0x997ef[_0x3763('0xc')]||0x1e;this[_0x3763('0xd')]=_0x997ef[_0x3763('0xd')];this[_0x3763('0xe')]=_0x997ef['dialCongestionRetryFrequency'];this[_0x3763('0xf')]=_0x997ef[_0x3763('0xf')];this[_0x3763('0x10')]=_0x997ef['dialBusyRetryFrequency'];this['dialNoAnswerMaxRetry']=_0x997ef[_0x3763('0x11')];this['dialNoAnswerRetryFrequency']=_0x997ef[_0x3763('0x12')];this[_0x3763('0x13')]=_0x997ef[_0x3763('0x13')];this[_0x3763('0x14')]=_0x997ef[_0x3763('0x14')]||_0x3763('0x15');this[_0x3763('0x16')]=_0x997ef['dialPrefix']||undefined;this[_0x3763('0x17')]=_0x997ef[_0x3763('0x17')]||undefined;this[_0x3763('0x18')]=_0x997ef['dialCutDigit']||undefined;this['TrunkBackup']=_0x997ef['TrunkBackup']?_0x997ef[_0x3763('0x19')]:undefined;this[_0x3763('0x1a')]=_0x997ef[_0x3763('0x1a')]?_0x997ef[_0x3763('0x1a')]:undefined;this[_0x3763('0x1b')]=_0x997ef[_0x3763('0x1b')]?_0x997ef[_0x3763('0x1b')]:undefined;this['SquareProject']=_0x997ef[_0x3763('0x1c')]?_0x997ef[_0x3763('0x1c')]:undefined;this[_0x3763('0x1d')]=_0x997ef[_0x3763('0x1c')]?_0x997ef['SquareProject']['name']:undefined;this[_0x3763('0x1e')]=_0x997ef[_0x3763('0x1e')]||![];this[_0x3763('0x1f')]=_0x997ef[_0x3763('0x1f')];this['dialAMDGreeting']=_0x997ef[_0x3763('0x20')];this['dialAMDAfterGreetingSilence']=_0x997ef[_0x3763('0x21')];this[_0x3763('0x22')]=_0x997ef['dialAMDTotalAnalysisTime'];this[_0x3763('0x23')]=_0x997ef[_0x3763('0x23')];this[_0x3763('0x24')]=_0x997ef[_0x3763('0x24')];this[_0x3763('0x25')]=_0x997ef[_0x3763('0x25')];this[_0x3763('0x26')]=_0x997ef['dialAMDSilenceThreshold'];this['dialAMDMaximumWordLength']=_0x997ef['dialAMDMaximumWordLength'];}module[_0x3763('0x27')]=Campaign;
\ No newline at end of file
+var _0x76dc=['dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','ivrAnswerCallsDay','sendMessageOneNotActive','active','dialTimezone','dialGlobalInterval'];(function(_0x56c419,_0x3c2b48){var _0x20ac96=function(_0x119467){while(--_0x119467){_0x56c419['push'](_0x56c419['shift']());}};_0x20ac96(++_0x3c2b48);}(_0x76dc,0x1f2));var _0xc76d=function(_0x346d0b,_0x89dee6){_0x346d0b=_0x346d0b-0x0;var _0x33c006=_0x76dc[_0x346d0b];return _0x33c006;};'use strict';function Campaign(_0x10240b){this['id']=_0x10240b['id']||0x0;this[_0xc76d('0x0')]=_0x10240b[_0xc76d('0x0')]||'';this[_0xc76d('0x1')]=_0x10240b['type']||_0xc76d('0x2');this[_0xc76d('0x3')]=0x0;this['temp']=0x0;this[_0xc76d('0x4')]=0x0;this['ivrTotalCallsDays']=0x0;this['message']='';this[_0xc76d('0x5')]=!![];this[_0xc76d('0x6')]=_0x10240b[_0xc76d('0x6')];this['limitCalls']=_0x10240b['limitCalls'];this[_0xc76d('0x7')]=_0x10240b[_0xc76d('0x7')]||null;this[_0xc76d('0x8')]=_0x10240b['dialGlobalInterval']?_0x10240b['dialGlobalInterval']:null;this[_0xc76d('0x9')]=_0x10240b[_0xc76d('0x9')];this['dialOriginateCallerIdNumber']=_0x10240b[_0xc76d('0xa')];this['dialOriginateTimeout']=_0x10240b[_0xc76d('0xb')]||0x1e;this[_0xc76d('0xc')]=_0x10240b[_0xc76d('0xc')];this[_0xc76d('0xd')]=_0x10240b[_0xc76d('0xd')];this[_0xc76d('0xe')]=_0x10240b[_0xc76d('0xe')];this[_0xc76d('0xf')]=_0x10240b[_0xc76d('0xf')];this[_0xc76d('0x10')]=_0x10240b[_0xc76d('0x10')];this[_0xc76d('0x11')]=_0x10240b[_0xc76d('0x11')];this[_0xc76d('0x12')]=_0x10240b['dialGlobalMaxRetry'];this[_0xc76d('0x13')]=_0x10240b[_0xc76d('0x13')]||'DESC';this[_0xc76d('0x14')]=_0x10240b[_0xc76d('0x14')]||undefined;this[_0xc76d('0x15')]=_0x10240b[_0xc76d('0x15')]||undefined;this['dialCutDigit']=_0x10240b[_0xc76d('0x16')]||undefined;this['TrunkBackup']=_0x10240b['TrunkBackup']?_0x10240b[_0xc76d('0x17')]:undefined;this[_0xc76d('0x18')]=_0x10240b[_0xc76d('0x18')]?_0x10240b[_0xc76d('0x18')]:undefined;this[_0xc76d('0x19')]=_0x10240b['Interval']?_0x10240b[_0xc76d('0x19')]:undefined;this[_0xc76d('0x1a')]=_0x10240b[_0xc76d('0x1a')]?_0x10240b[_0xc76d('0x1a')]:undefined;this[_0xc76d('0x1b')]=_0x10240b['SquareProject']?_0x10240b[_0xc76d('0x1a')][_0xc76d('0x0')]:undefined;this['dialAMDActive']=_0x10240b[_0xc76d('0x1c')]||![];this[_0xc76d('0x1d')]=_0x10240b[_0xc76d('0x1d')];this[_0xc76d('0x1e')]=_0x10240b[_0xc76d('0x1e')];this[_0xc76d('0x1f')]=_0x10240b[_0xc76d('0x1f')];this[_0xc76d('0x20')]=_0x10240b[_0xc76d('0x20')];this[_0xc76d('0x21')]=_0x10240b[_0xc76d('0x21')];this['dialAMDBetweenWordsSilence']=_0x10240b[_0xc76d('0x22')];this[_0xc76d('0x23')]=_0x10240b['dialAMDMaximumNumberOfWords'];this[_0xc76d('0x24')]=_0x10240b[_0xc76d('0x24')];this['dialAMDMaximumWordLength']=_0x10240b[_0xc76d('0x25')];}module[_0xc76d('0x26')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bab=['exports','starttime','channel','destinationchannel','calleridnum','connectedlinenum','connectedlinename','accountcode','uniqueid','linkedid','endtime','abandoned','duration','billableseconds','holdtime','type','disposition','monitor','monitors','transfercalleridnum','mohtime'];(function(_0x326040,_0x59def6){var _0x4384ab=function(_0x4f890f){while(--_0x4f890f){_0x326040['push'](_0x326040['shift']());}};_0x4384ab(++_0x59def6);}(_0x2bab,0x1ba));var _0xb2ba=function(_0x368470,_0x2835e5){_0x368470=_0x368470-0x0;var _0x5a6b67=_0x2bab[_0x368470];return _0x5a6b67;};'use strict';function Channel(){this[_0xb2ba('0x0')]=null;this[_0xb2ba('0x1')]='';this[_0xb2ba('0x2')]='';this[_0xb2ba('0x3')]=0x0;this['calleridname']='';this[_0xb2ba('0x4')]=undefined;this[_0xb2ba('0x5')]=undefined;this[_0xb2ba('0x6')]=0x0;this['context']='';this[_0xb2ba('0x7')]=0x0;this[_0xb2ba('0x8')]=0x0;this['exten']=0x0;this['answered']=![];this['answertime']=null;this[_0xb2ba('0x9')]=null;this['unmanaged']=![];this[_0xb2ba('0xa')]=![];this['lastapplication']='';this['lastdata']='';this[_0xb2ba('0xb')]=0x0;this[_0xb2ba('0xc')]=0x0;this[_0xb2ba('0xd')]=0x0;this[_0xb2ba('0xe')]=null;this['tag']=null;this[_0xb2ba('0xf')]=null;this[_0xb2ba('0x10')]=![];this['monitorFilename']=null;this['queue']=null;this[_0xb2ba('0x11')]=[];this[_0xb2ba('0x12')]=undefined;this['transferconnectedlinenum']=undefined;this[_0xb2ba('0x13')]=0x0;}module[_0xb2ba('0x14')]=Channel;
\ No newline at end of file
+var _0xa35e=['context','uniqueid','linkedid','exten','answered','answertime','endtime','unmanaged','lastapplication','lastdata','duration','holdtime','type','tag','monitor','monitorFilename','queue','monitors','transfercalleridnum','mohtime','exports','starttime','destinationchannel','calleridnum','calleridname','connectedlinenum','connectedlinename','accountcode'];(function(_0x3e8246,_0x16a4e5){var _0x504389=function(_0x1b0f46){while(--_0x1b0f46){_0x3e8246['push'](_0x3e8246['shift']());}};_0x504389(++_0x16a4e5);}(_0xa35e,0x111));var _0xea35=function(_0x4b3120,_0x5c6479){_0x4b3120=_0x4b3120-0x0;var _0x221f00=_0xa35e[_0x4b3120];return _0x221f00;};'use strict';function Channel(){this[_0xea35('0x0')]=null;this['channel']='';this[_0xea35('0x1')]='';this[_0xea35('0x2')]=0x0;this[_0xea35('0x3')]='';this[_0xea35('0x4')]=undefined;this[_0xea35('0x5')]=undefined;this[_0xea35('0x6')]=0x0;this[_0xea35('0x7')]='';this[_0xea35('0x8')]=0x0;this[_0xea35('0x9')]=0x0;this[_0xea35('0xa')]=0x0;this[_0xea35('0xb')]=![];this[_0xea35('0xc')]=null;this[_0xea35('0xd')]=null;this[_0xea35('0xe')]=![];this['abandoned']=![];this[_0xea35('0xf')]='';this[_0xea35('0x10')]='';this[_0xea35('0x11')]=0x0;this['billableseconds']=0x0;this[_0xea35('0x12')]=0x0;this[_0xea35('0x13')]=null;this[_0xea35('0x14')]=null;this['disposition']=null;this[_0xea35('0x15')]=![];this[_0xea35('0x16')]=null;this[_0xea35('0x17')]=null;this[_0xea35('0x18')]=[];this[_0xea35('0x19')]=undefined;this['transferconnectedlinenum']=undefined;this[_0xea35('0x1a')]=0x0;}module[_0xea35('0x1b')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8e7=['consumerSecret','token','type','serverUrl','Configurations','exports','name','username','remoteUri','authType','password','consumerKey'];(function(_0x5bc6cf,_0x11ecff){var _0xb448d1=function(_0xedbad3){while(--_0xedbad3){_0x5bc6cf['push'](_0x5bc6cf['shift']());}};_0xb448d1(++_0x11ecff);}(_0xa8e7,0xd2));var _0x7a8e=function(_0x401910,_0x3da8fa){_0x401910=_0x401910-0x0;var _0x4e1e3c=_0xa8e7[_0x401910];return _0x4e1e3c;};'use strict';function DeskAccount(_0xb0ff07){this['id']=_0xb0ff07['id']||0x0;this[_0x7a8e('0x0')]=_0xb0ff07[_0x7a8e('0x0')]||'';this['username']=_0xb0ff07[_0x7a8e('0x1')]||'';this[_0x7a8e('0x2')]=_0xb0ff07[_0x7a8e('0x2')]||'';this[_0x7a8e('0x3')]=_0xb0ff07[_0x7a8e('0x3')]||'';this['password']=_0xb0ff07[_0x7a8e('0x4')]||'';this[_0x7a8e('0x5')]=_0xb0ff07[_0x7a8e('0x5')]||'';this[_0x7a8e('0x6')]=_0xb0ff07[_0x7a8e('0x6')]||'';this[_0x7a8e('0x7')]=_0xb0ff07[_0x7a8e('0x7')]||'';this['tokenSecret']=_0xb0ff07['tokenSecret']||'';this[_0x7a8e('0x8')]=_0xb0ff07[_0x7a8e('0x8')]||'';this[_0x7a8e('0x9')]=_0xb0ff07[_0x7a8e('0x9')]||'';this[_0x7a8e('0xa')]=_0xb0ff07[_0x7a8e('0xa')]||{};}module[_0x7a8e('0xb')]=DeskAccount;
\ No newline at end of file
+var _0x15f6=['serverUrl','Configurations','exports','name','username','remoteUri','authType','password','consumerKey','consumerSecret','token','tokenSecret','type'];(function(_0x37b465,_0x5a9b5d){var _0x4129f4=function(_0x240148){while(--_0x240148){_0x37b465['push'](_0x37b465['shift']());}};_0x4129f4(++_0x5a9b5d);}(_0x15f6,0xed));var _0x615f=function(_0x106f5f,_0x53c5ff){_0x106f5f=_0x106f5f-0x0;var _0x54e879=_0x15f6[_0x106f5f];return _0x54e879;};'use strict';function DeskAccount(_0x256e83){this['id']=_0x256e83['id']||0x0;this[_0x615f('0x0')]=_0x256e83[_0x615f('0x0')]||'';this['username']=_0x256e83[_0x615f('0x1')]||'';this[_0x615f('0x2')]=_0x256e83[_0x615f('0x2')]||'';this[_0x615f('0x3')]=_0x256e83[_0x615f('0x3')]||'';this[_0x615f('0x4')]=_0x256e83['password']||'';this[_0x615f('0x5')]=_0x256e83[_0x615f('0x5')]||'';this[_0x615f('0x6')]=_0x256e83[_0x615f('0x6')]||'';this[_0x615f('0x7')]=_0x256e83[_0x615f('0x7')]||'';this[_0x615f('0x8')]=_0x256e83['tokenSecret']||'';this[_0x615f('0x9')]=_0x256e83['type']||'';this['serverUrl']=_0x256e83[_0x615f('0xa')]||'';this[_0x615f('0xb')]=_0x256e83[_0x615f('0xb')]||{};}module[_0x615f('0xc')]=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x702d=['SIP','Trunk','ListId','key','name','description','ecm','headerinfo','localstationid','minrate','maxrate','modem','v17,v27,v29','gateway','faxdetect','t38timeout','tech'];(function(_0x362dbb,_0x110bc3){var _0x493434=function(_0xf6a6fe){while(--_0xf6a6fe){_0x362dbb['push'](_0x362dbb['shift']());}};_0x493434(++_0x110bc3);}(_0x702d,0x147));var _0xd702=function(_0x55a122,_0x25da89){_0x55a122=_0x55a122-0x0;var _0x3e9613=_0x702d[_0x55a122];return _0x3e9613;};'use strict';function FaxAccount(_0x14de3f){this['id']=_0x14de3f['id']||0x0;this[_0xd702('0x0')]=_0x14de3f[_0xd702('0x0')]||'';this[_0xd702('0x1')]=_0x14de3f[_0xd702('0x1')];this['ecm']=_0x14de3f[_0xd702('0x2')];this[_0xd702('0x3')]=_0x14de3f[_0xd702('0x3')];this[_0xd702('0x4')]=_0x14de3f['localstationid'];this[_0xd702('0x5')]=_0x14de3f['minrate']||0x960;this[_0xd702('0x6')]=_0x14de3f[_0xd702('0x6')]||0x3840;this[_0xd702('0x7')]=_0x14de3f['modem']||_0xd702('0x8');this['gateway']=_0x14de3f[_0xd702('0x9')]||'no';this[_0xd702('0xa')]=_0x14de3f[_0xd702('0xa')]||'no';this[_0xd702('0xb')]=_0x14de3f[_0xd702('0xb')]||0x1388;this[_0xd702('0xc')]=_0x14de3f[_0xd702('0xc')]||_0xd702('0xd');this[_0xd702('0xe')]=_0x14de3f[_0xd702('0xe')]?_0x14de3f['Trunk']:undefined;this['ListId']=_0x14de3f[_0xd702('0xf')];this[_0xd702('0x10')]=_0x14de3f[_0xd702('0x10')];}module['exports']=FaxAccount;
\ No newline at end of file
+var _0x16d2=['ListId','key','name','description','ecm','headerinfo','localstationid','minrate','maxrate','modem','v17,v27,v29','gateway','faxdetect','t38timeout','tech','SIP','Trunk'];(function(_0x380a3f,_0x202483){var _0x2b4eca=function(_0x1e99b2){while(--_0x1e99b2){_0x380a3f['push'](_0x380a3f['shift']());}};_0x2b4eca(++_0x202483);}(_0x16d2,0x123));var _0x216d=function(_0x5c9026,_0x77f9e6){_0x5c9026=_0x5c9026-0x0;var _0x5d6d42=_0x16d2[_0x5c9026];return _0x5d6d42;};'use strict';function FaxAccount(_0x585a59){this['id']=_0x585a59['id']||0x0;this[_0x216d('0x0')]=_0x585a59[_0x216d('0x0')]||'';this[_0x216d('0x1')]=_0x585a59[_0x216d('0x1')];this[_0x216d('0x2')]=_0x585a59[_0x216d('0x2')];this[_0x216d('0x3')]=_0x585a59[_0x216d('0x3')];this['localstationid']=_0x585a59[_0x216d('0x4')];this[_0x216d('0x5')]=_0x585a59[_0x216d('0x5')]||0x960;this[_0x216d('0x6')]=_0x585a59[_0x216d('0x6')]||0x3840;this[_0x216d('0x7')]=_0x585a59[_0x216d('0x7')]||_0x216d('0x8');this['gateway']=_0x585a59[_0x216d('0x9')]||'no';this[_0x216d('0xa')]=_0x585a59[_0x216d('0xa')]||'no';this[_0x216d('0xb')]=_0x585a59[_0x216d('0xb')]||0x1388;this[_0x216d('0xc')]=_0x585a59['tech']||_0x216d('0xd');this['Trunk']=_0x585a59[_0x216d('0xe')]?_0x585a59[_0x216d('0xe')]:undefined;this[_0x216d('0xf')]=_0x585a59[_0x216d('0xf')];this[_0x216d('0x10')]=_0x585a59[_0x216d('0x10')];}module['exports']=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb58a=['name','username','apiKey','token','remoteUri','serverUrl','Configurations','exports'];(function(_0x4da1f4,_0x8e1a2a){var _0x22f7e9=function(_0x184902){while(--_0x184902){_0x4da1f4['push'](_0x4da1f4['shift']());}};_0x22f7e9(++_0x8e1a2a);}(_0xb58a,0x180));var _0xab58=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0xb58a[_0x43d11d];return _0x38cd08;};'use strict';function FreshdeskAccount(_0x58c2e0){this['id']=_0x58c2e0['id']||0x0;this[_0xab58('0x0')]=_0x58c2e0[_0xab58('0x0')]||'';this[_0xab58('0x1')]=_0x58c2e0[_0xab58('0x1')]||'';this[_0xab58('0x2')]=_0x58c2e0[_0xab58('0x3')]||'';this[_0xab58('0x4')]=_0x58c2e0[_0xab58('0x4')]||'';this[_0xab58('0x5')]=_0x58c2e0['serverUrl']||'';this['Configurations']=_0x58c2e0[_0xab58('0x6')]||{};}module[_0xab58('0x7')]=FreshdeskAccount;
\ No newline at end of file
+var _0x1f4a=['token','serverUrl','Configurations','exports','name','username','apiKey'];(function(_0x43fa03,_0x5316d0){var _0x3d09a5=function(_0x89b159){while(--_0x89b159){_0x43fa03['push'](_0x43fa03['shift']());}};_0x3d09a5(++_0x5316d0);}(_0x1f4a,0x6d));var _0xa1f4=function(_0x4eb451,_0x26d499){_0x4eb451=_0x4eb451-0x0;var _0x2832ec=_0x1f4a[_0x4eb451];return _0x2832ec;};'use strict';function FreshdeskAccount(_0xeea369){this['id']=_0xeea369['id']||0x0;this['name']=_0xeea369[_0xa1f4('0x0')]||'';this['username']=_0xeea369[_0xa1f4('0x1')]||'';this[_0xa1f4('0x2')]=_0xeea369[_0xa1f4('0x3')]||'';this['remoteUri']=_0xeea369['remoteUri']||'';this[_0xa1f4('0x4')]=_0xeea369[_0xa1f4('0x4')]||'';this[_0xa1f4('0x5')]=_0xeea369['Configurations']||{};}module[_0xa1f4('0x6')]=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05a2=['queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','originalposition','channel','connectedlinenum','accountcode','context','exten','priority','holdtime','assigned','lastAssignedTo','variables','exports','type','inbound','uniqueid','calleridname','queuecallerleaveAt','count','queuecallerabandon'];(function(_0x102b0c,_0x33dee4){var _0x9b15ca=function(_0x42d504){while(--_0x42d504){_0x102b0c['push'](_0x102b0c['shift']());}};_0x9b15ca(++_0x33dee4);}(_0x05a2,0x9a));var _0x205a=function(_0x3ff7c0,_0x3bc077){_0x3ff7c0=_0x3ff7c0-0x0;var _0x577281=_0x05a2[_0x3ff7c0];return _0x577281;};'use strict';function QueueReport(){this[_0x205a('0x0')]=_0x205a('0x1');this[_0x205a('0x2')]='';this['calleridnum']='';this[_0x205a('0x3')]='';this['queue']='';this['queuecallerjoinAt']=null;this[_0x205a('0x4')]=null;this['position']=0x1;this[_0x205a('0x5')]=0x1;this[_0x205a('0x6')]=![];this[_0x205a('0x7')]=null;this[_0x205a('0x8')]=![];this[_0x205a('0x9')]=null;this[_0x205a('0xa')]=![];this['queuecallerexitAt']=null;this[_0x205a('0xb')]=0x1;this[_0x205a('0xc')]='';this[_0x205a('0xd')]='';this['connectedlinename']='';this[_0x205a('0xe')]='';this[_0x205a('0xf')]='';this[_0x205a('0x10')]='';this[_0x205a('0x11')]='';this[_0x205a('0x12')]=0x0;this[_0x205a('0x13')]=![];this[_0x205a('0x14')]='';this['mohtime']=0x0;this[_0x205a('0x15')]={};}module[_0x205a('0x16')]=QueueReport;
\ No newline at end of file
+var _0x9763=['type','inbound','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','queuecallerleaveAt','queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','context','exten','holdtime','assigned','mohtime','exports'];(function(_0x4dd8fe,_0x18c473){var _0x2d8aca=function(_0x50d70d){while(--_0x50d70d){_0x4dd8fe['push'](_0x4dd8fe['shift']());}};_0x2d8aca(++_0x18c473);}(_0x9763,0x1cc));var _0x3976=function(_0x39db49,_0x5a1bfd){_0x39db49=_0x39db49-0x0;var _0x345c13=_0x9763[_0x39db49];return _0x345c13;};'use strict';function QueueReport(){this[_0x3976('0x0')]=_0x3976('0x1');this[_0x3976('0x2')]='';this[_0x3976('0x3')]='';this[_0x3976('0x4')]='';this[_0x3976('0x5')]='';this[_0x3976('0x6')]=null;this[_0x3976('0x7')]=null;this['position']=0x1;this['count']=0x1;this[_0x3976('0x8')]=![];this[_0x3976('0x9')]=null;this[_0x3976('0xa')]=![];this[_0x3976('0xb')]=null;this[_0x3976('0xc')]=![];this[_0x3976('0xd')]=null;this[_0x3976('0xe')]=0x1;this[_0x3976('0xf')]='';this[_0x3976('0x10')]='';this['connectedlinename']='';this['accountcode']='';this[_0x3976('0x11')]='';this[_0x3976('0x12')]='';this['priority']='';this[_0x3976('0x13')]=0x0;this[_0x3976('0x14')]=![];this['lastAssignedTo']='';this[_0x3976('0x15')]=0x0;this['variables']={};}module[_0x3976('0x16')]=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x86a3=['type','integrationTab','Configurations','exports','name','username','remoteUri','password','clientId','clientSecret','securityToken'];(function(_0x2ca208,_0x43058f){var _0x196c11=function(_0xb8aead){while(--_0xb8aead){_0x2ca208['push'](_0x2ca208['shift']());}};_0x196c11(++_0x43058f);}(_0x86a3,0x16f));var _0x386a=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0x86a3[_0x580576];return _0x3f55a0;};'use strict';function SalesforceAccount(_0x2e93a5){this['id']=_0x2e93a5['id']||0x0;this[_0x386a('0x0')]=_0x2e93a5['name']||'';this[_0x386a('0x1')]=_0x2e93a5[_0x386a('0x1')]||'';this[_0x386a('0x2')]=_0x2e93a5['remoteUri']||'';this[_0x386a('0x3')]=_0x2e93a5['password']||'';this[_0x386a('0x4')]=_0x2e93a5[_0x386a('0x4')]||'';this[_0x386a('0x5')]=_0x2e93a5['clientSecret']||'';this['securityToken']=_0x2e93a5[_0x386a('0x6')]||'';this[_0x386a('0x7')]=_0x2e93a5[_0x386a('0x7')]||_0x386a('0x8');this['serverUrl']=_0x2e93a5['serverUrl']||'';this['Configurations']=_0x2e93a5[_0x386a('0x9')]||{};}module[_0x386a('0xa')]=SalesforceAccount;
\ No newline at end of file
+var _0xe736=['remoteUri','password','clientId','clientSecret','securityToken','type','serverUrl','Configurations','exports','name','username'];(function(_0x558e04,_0x5372c5){var _0xc7bc45=function(_0x5acf8d){while(--_0x5acf8d){_0x558e04['push'](_0x558e04['shift']());}};_0xc7bc45(++_0x5372c5);}(_0xe736,0x1d7));var _0x6e73=function(_0x5d4f28,_0x36f345){_0x5d4f28=_0x5d4f28-0x0;var _0x45000c=_0xe736[_0x5d4f28];return _0x45000c;};'use strict';function SalesforceAccount(_0x5011f0){this['id']=_0x5011f0['id']||0x0;this[_0x6e73('0x0')]=_0x5011f0['name']||'';this[_0x6e73('0x1')]=_0x5011f0[_0x6e73('0x1')]||'';this[_0x6e73('0x2')]=_0x5011f0[_0x6e73('0x2')]||'';this[_0x6e73('0x3')]=_0x5011f0[_0x6e73('0x3')]||'';this[_0x6e73('0x4')]=_0x5011f0[_0x6e73('0x4')]||'';this[_0x6e73('0x5')]=_0x5011f0['clientSecret']||'';this[_0x6e73('0x6')]=_0x5011f0[_0x6e73('0x6')]||'';this['type']=_0x5011f0[_0x6e73('0x7')]||'integrationTab';this[_0x6e73('0x8')]=_0x5011f0[_0x6e73('0x8')]||'';this[_0x6e73('0x9')]=_0x5011f0[_0x6e73('0x9')]||{};}module[_0x6e73('0xa')]=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b48=['password','remoteUri','serverUrl','Configurations','name','username'];(function(_0x56e157,_0x3ffa75){var _0x4e64b7=function(_0x338a2a){while(--_0x338a2a){_0x56e157['push'](_0x56e157['shift']());}};_0x4e64b7(++_0x3ffa75);}(_0x2b48,0x76));var _0x82b4=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x2b48[_0x4a9fb1];return _0x348672;};'use strict';function SugarcrmAccount(_0xd944de){this['id']=_0xd944de['id']||0x0;this[_0x82b4('0x0')]=_0xd944de['name']||'';this[_0x82b4('0x1')]=_0xd944de[_0x82b4('0x1')]||'';this[_0x82b4('0x2')]=_0xd944de['password']||'';this['remoteUri']=_0xd944de[_0x82b4('0x3')]||'';this[_0x82b4('0x4')]=_0xd944de[_0x82b4('0x4')]||'';this[_0x82b4('0x5')]=_0xd944de['Configurations']||{};}module['exports']=SugarcrmAccount;
\ No newline at end of file
+var _0x9aa7=['username','password','remoteUri','serverUrl','Configurations','exports'];(function(_0x49c957,_0x3509d8){var _0x5b1d38=function(_0x219976){while(--_0x219976){_0x49c957['push'](_0x49c957['shift']());}};_0x5b1d38(++_0x3509d8);}(_0x9aa7,0x1f2));var _0x79aa=function(_0x54dea8,_0x2111b9){_0x54dea8=_0x54dea8-0x0;var _0x27868a=_0x9aa7[_0x54dea8];return _0x27868a;};'use strict';function SugarcrmAccount(_0x2e5f6c){this['id']=_0x2e5f6c['id']||0x0;this['name']=_0x2e5f6c['name']||'';this['username']=_0x2e5f6c[_0x79aa('0x0')]||'';this[_0x79aa('0x1')]=_0x2e5f6c['password']||'';this[_0x79aa('0x2')]=_0x2e5f6c[_0x79aa('0x2')]||'';this[_0x79aa('0x3')]=_0x2e5f6c[_0x79aa('0x3')]||'';this[_0x79aa('0x4')]=_0x2e5f6c[_0x79aa('0x4')]||{};}module[_0x79aa('0x5')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40ec=['stateTime','address','exports','name','accountcode','state','unknown'];(function(_0x2dc9ea,_0x46bca6){var _0x34c743=function(_0x2a60d2){while(--_0x2a60d2){_0x2dc9ea['push'](_0x2dc9ea['shift']());}};_0x34c743(++_0x46bca6);}(_0x40ec,0x168));var _0xc40e=function(_0x2b0eab,_0x2a1867){_0x2b0eab=_0x2b0eab-0x0;var _0x32d53c=_0x40ec[_0x2b0eab];return _0x32d53c;};'use strict';function Telephone(_0x2fbe05){this['id']=_0x2fbe05['id']||0x0;this[_0xc40e('0x0')]=_0x2fbe05[_0xc40e('0x0')]||'';this['accountcode']=_0x2fbe05[_0xc40e('0x1')]||'';this[_0xc40e('0x2')]=_0xc40e('0x3');this[_0xc40e('0x4')]=0x0;this['status']=_0xc40e('0x3');this[_0xc40e('0x5')]='';}module[_0xc40e('0x6')]=Telephone;
\ No newline at end of file
+var _0x00da=['state','unknown','stateTime','status','address','exports','name','accountcode'];(function(_0xfcbb6,_0x50d96f){var _0x2fa405=function(_0x5342cd){while(--_0x5342cd){_0xfcbb6['push'](_0xfcbb6['shift']());}};_0x2fa405(++_0x50d96f);}(_0x00da,0x17e));var _0xa00d=function(_0x11c933,_0x43af73){_0x11c933=_0x11c933-0x0;var _0x37e02c=_0x00da[_0x11c933];return _0x37e02c;};'use strict';function Telephone(_0x25aac7){this['id']=_0x25aac7['id']||0x0;this[_0xa00d('0x0')]=_0x25aac7[_0xa00d('0x0')]||'';this[_0xa00d('0x1')]=_0x25aac7[_0xa00d('0x1')]||'';this[_0xa00d('0x2')]=_0xa00d('0x3');this[_0xa00d('0x4')]=0x0;this[_0xa00d('0x5')]=_0xa00d('0x3');this[_0xa00d('0x6')]='';}module[_0xa00d('0x7')]=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x750a=['html','exports','name'];(function(_0x1efe8b,_0x3dd139){var _0x163bce=function(_0x1f857e){while(--_0x1f857e){_0x1efe8b['push'](_0x1efe8b['shift']());}};_0x163bce(++_0x3dd139);}(_0x750a,0x140));var _0xa750=function(_0x30387a,_0x58c188){_0x30387a=_0x30387a-0x0;var _0x31d201=_0x750a[_0x30387a];return _0x31d201;};'use strict';function template(_0x4eae95){this['id']=_0x4eae95['id']||0x0;this[_0xa750('0x0')]=_0x4eae95['name']||'';this['html']=_0x4eae95[_0xa750('0x1')]||'';}module[_0xa750('0x2')]=template;
\ No newline at end of file
+var _0xaa88=['html','exports','name'];(function(_0x3511d3,_0x4107ae){var _0x5d6321=function(_0x1a23da){while(--_0x1a23da){_0x3511d3['push'](_0x3511d3['shift']());}};_0x5d6321(++_0x4107ae);}(_0xaa88,0x137));var _0x8aa8=function(_0x5c9307,_0x5b97e4){_0x5c9307=_0x5c9307-0x0;var _0x373e29=_0xaa88[_0x5c9307];return _0x373e29;};'use strict';function template(_0x2d8583){this['id']=_0x2d8583['id']||0x0;this[_0x8aa8('0x0')]=_0x2d8583[_0x8aa8('0x0')]||'';this[_0x8aa8('0x1')]=_0x2d8583['html']||'';}module[_0x8aa8('0x2')]=template;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbefe=['AnyConditions','Actions','exports','name','channel','voice','status','AllConditions'];(function(_0x14f6a9,_0x98ff54){var _0x4282cc=function(_0x378499){while(--_0x378499){_0x14f6a9['push'](_0x14f6a9['shift']());}};_0x4282cc(++_0x98ff54);}(_0xbefe,0x12b));var _0xebef=function(_0x19cc92,_0x4df512){_0x19cc92=_0x19cc92-0x0;var _0x4c88d4=_0xbefe[_0x19cc92];return _0x4c88d4;};'use strict';function Trigger(_0x4721ce){this['id']=_0x4721ce['id']||0x0;this[_0xebef('0x0')]=_0x4721ce[_0xebef('0x0')]||'';this['channel']=_0x4721ce[_0xebef('0x1')]||_0xebef('0x2');this[_0xebef('0x3')]=_0x4721ce[_0xebef('0x3')]||![];this[_0xebef('0x4')]=_0x4721ce[_0xebef('0x4')]||[];this[_0xebef('0x5')]=_0x4721ce[_0xebef('0x5')]||[];this['Actions']=_0x4721ce[_0xebef('0x6')]||[];}module[_0xebef('0x7')]=Trigger;
\ No newline at end of file
+var _0xbd04=['exports','name','channel','status','AllConditions','AnyConditions','Actions'];(function(_0x17ce8c,_0x320423){var _0x526a34=function(_0x501f7d){while(--_0x501f7d){_0x17ce8c['push'](_0x17ce8c['shift']());}};_0x526a34(++_0x320423);}(_0xbd04,0x190));var _0x4bd0=function(_0x4fc9e6,_0xc51915){_0x4fc9e6=_0x4fc9e6-0x0;var _0x551d28=_0xbd04[_0x4fc9e6];return _0x551d28;};'use strict';function Trigger(_0x5199aa){this['id']=_0x5199aa['id']||0x0;this[_0x4bd0('0x0')]=_0x5199aa[_0x4bd0('0x0')]||'';this[_0x4bd0('0x1')]=_0x5199aa[_0x4bd0('0x1')]||'voice';this['status']=_0x5199aa[_0x4bd0('0x2')]||![];this[_0x4bd0('0x3')]=_0x5199aa['AllConditions']||[];this[_0x4bd0('0x4')]=_0x5199aa[_0x4bd0('0x4')]||[];this[_0x4bd0('0x5')]=_0x5199aa['Actions']||[];}module[_0x4bd0('0x6')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e89=['exports','active','name','state','unknown','status','registry','indexOf','split','host','port','domainport','refresh','stateRegistry','registrationtime','address'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0x8e89,0x1c1));var _0x98e8=function(_0x4ae829,_0x2c842c){_0x4ae829=_0x4ae829-0x0;var _0x256b31=_0x8e89[_0x4ae829];return _0x256b31;};'use strict';function Trunk(_0x1412ae){this['id']=_0x1412ae['id']||0x0;this[_0x98e8('0x0')]=_0x1412ae[_0x98e8('0x0')]||![];this[_0x98e8('0x1')]=_0x1412ae['name']||'';this[_0x98e8('0x2')]=_0x98e8('0x3');this['stateTime']=0x0;this[_0x98e8('0x4')]=_0x98e8('0x3');this[_0x98e8('0x5')]=_0x1412ae[_0x98e8('0x5')]&&_0x1412ae[_0x98e8('0x5')][_0x98e8('0x6')](':')?_0x1412ae[_0x98e8('0x5')][_0x98e8('0x7')](':')[0x0]:'';this[_0x98e8('0x8')]='';this[_0x98e8('0x9')]='';this['domain']='';this[_0x98e8('0xa')]='';this[_0x98e8('0xb')]='';this[_0x98e8('0xc')]=_0x98e8('0x3');this[_0x98e8('0xd')]='';this[_0x98e8('0xe')]='';}module[_0x98e8('0xf')]=Trunk;
\ No newline at end of file
+var _0xc9a2=['exports','active','name','state','unknown','status','registry','indexOf','split','host','domain','domainport','stateRegistry','registrationtime'];(function(_0x53bcc3,_0x364374){var _0x47c959=function(_0x40ef7d){while(--_0x40ef7d){_0x53bcc3['push'](_0x53bcc3['shift']());}};_0x47c959(++_0x364374);}(_0xc9a2,0x1eb));var _0x2c9a=function(_0x48caa7,_0x106979){_0x48caa7=_0x48caa7-0x0;var _0x5913e3=_0xc9a2[_0x48caa7];return _0x5913e3;};'use strict';function Trunk(_0x4c1c53){this['id']=_0x4c1c53['id']||0x0;this['active']=_0x4c1c53[_0x2c9a('0x0')]||![];this[_0x2c9a('0x1')]=_0x4c1c53[_0x2c9a('0x1')]||'';this[_0x2c9a('0x2')]=_0x2c9a('0x3');this['stateTime']=0x0;this[_0x2c9a('0x4')]=_0x2c9a('0x3');this['registry']=_0x4c1c53[_0x2c9a('0x5')]&&_0x4c1c53['registry'][_0x2c9a('0x6')](':')?_0x4c1c53[_0x2c9a('0x5')][_0x2c9a('0x7')](':')[0x0]:'';this[_0x2c9a('0x8')]='';this['port']='';this[_0x2c9a('0x9')]='';this[_0x2c9a('0xa')]='';this['refresh']='';this[_0x2c9a('0xb')]=_0x2c9a('0x3');this[_0x2c9a('0xc')]='';this['address']='';}module[_0x2c9a('0xd')]=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1339=['exports','exten','recordingFormat','none'];(function(_0x421cf8,_0x23152c){var _0x145c48=function(_0x565862){while(--_0x565862){_0x421cf8['push'](_0x421cf8['shift']());}};_0x145c48(++_0x23152c);}(_0x1339,0x1ed));var _0x9133=function(_0x8bab9e,_0x377901){_0x8bab9e=_0x8bab9e-0x0;var _0x37eaff=_0x1339[_0x8bab9e];return _0x37eaff;};'use strict';function voiceExtension(_0x421620){this['id']=_0x421620['id']||0x0;this['exten']=_0x421620[_0x9133('0x0')]||'';this[_0x9133('0x1')]=_0x421620[_0x9133('0x1')]||_0x9133('0x2');}module[_0x9133('0x3')]=voiceExtension;
\ No newline at end of file
+var _0xbec5=['exports','exten','recordingFormat','none'];(function(_0x3cede3,_0x468270){var _0x48e29c=function(_0x3e4193){while(--_0x3e4193){_0x3cede3['push'](_0x3cede3['shift']());}};_0x48e29c(++_0x468270);}(_0xbec5,0xe5));var _0x5bec=function(_0x1573ea,_0x434f02){_0x1573ea=_0x1573ea-0x0;var _0x51c0e2=_0xbec5[_0x1573ea];return _0x51c0e2;};'use strict';function voiceExtension(_0x19c132){this['id']=_0x19c132['id']||0x0;this[_0x5bec('0x0')]=_0x19c132['exten']||'';this[_0x5bec('0x1')]=_0x19c132[_0x5bec('0x1')]||_0x5bec('0x2');}module[_0x5bec('0x3')]=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd6d=['sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayACS','outboundReCallsDay','startProgressive','startPredictive','handlePredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalPauses','predictiveIntervalLowerLimit','predictiveIntervalErlangCalls','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','unknown','not_inuse','inuse','busy','invalid','ringing','onhold','wav49','gsm','rrmemory','name','monitor_format','type','inbound','waiting','talking','total','sumDuration','abandoned','available','acw','acwTimeout','autopause'];(function(_0x358a26,_0xeaf703){var _0x10507b=function(_0x38fe36){while(--_0x38fe36){_0x358a26['push'](_0x358a26['shift']());}};_0x10507b(++_0xeaf703);}(_0xbd6d,0x118));var _0xdbd6=function(_0x4a457d,_0x436b25){_0x4a457d=_0x4a457d-0x0;var _0x42ccd1=_0xbd6d[_0x4a457d];return _0x42ccd1;};'use strict';var statusDesc=[_0xdbd6('0x0'),_0xdbd6('0x1'),_0xdbd6('0x2'),_0xdbd6('0x3'),_0xdbd6('0x4'),'unavailable',_0xdbd6('0x5'),'ringinuse',_0xdbd6('0x6')];var monitorFormat={'wav':'wav','wav49':_0xdbd6('0x7'),'gsm':_0xdbd6('0x8')};var strategy={'rrmemory':_0xdbd6('0x9'),'roundrobin':'roundrobin'};function VoiceQueue(_0x2fe8a1){this['id']=_0x2fe8a1['id']||0x0;this[_0xdbd6('0xa')]=_0x2fe8a1[_0xdbd6('0xa')]||'';this[_0xdbd6('0xb')]=_0x2fe8a1[_0xdbd6('0xb')]||'';this[_0xdbd6('0xc')]=_0x2fe8a1[_0xdbd6('0xc')]||_0xdbd6('0xd');this[_0xdbd6('0xe')]=0x0;this[_0xdbd6('0xf')]=0x0;this[_0xdbd6('0x10')]=0x0;this['answered']=0x0;this[_0xdbd6('0x11')]=0x0;this['sumHoldTime']=0x0;this['sumBillable']=0x0;this['unmanaged']=0x0;this[_0xdbd6('0x12')]=0x0;this['loggedIn']=0x0;this[_0xdbd6('0x13')]=0x0;this[_0xdbd6('0x14')]=_0x2fe8a1[_0xdbd6('0x14')]||![];this['acwTimeout']=_0x2fe8a1[_0xdbd6('0x15')]||0xa;this[_0xdbd6('0x16')]=_0x2fe8a1['autopause']||'no';this[_0xdbd6('0x17')]=!![];this[_0xdbd6('0x18')]='';this[_0xdbd6('0x19')]=0x0;this[_0xdbd6('0x1a')]=0x0;this[_0xdbd6('0x1b')]=_0x2fe8a1[_0xdbd6('0x1b')]||null;this[_0xdbd6('0x1c')]=_0x2fe8a1[_0xdbd6('0x1c')]?_0x2fe8a1[_0xdbd6('0x1c')]:null;this['dialActive']=_0x2fe8a1[_0xdbd6('0x1d')];this[_0xdbd6('0x1e')]=_0x2fe8a1[_0xdbd6('0x1e')]||_0xdbd6('0x1f');this['dialLimitChannel']=_0x2fe8a1[_0xdbd6('0x20')]||0x0;this[_0xdbd6('0x21')]=_0x2fe8a1['dialLimitQueue']||0x0;this[_0xdbd6('0x22')]=_0x2fe8a1[_0xdbd6('0x22')]||0x1;this[_0xdbd6('0x23')]=_0x2fe8a1[_0xdbd6('0x23')]||_0xdbd6('0x24');this[_0xdbd6('0x25')]=_0x2fe8a1[_0xdbd6('0x25')]||0.03;this['dialPredictiveInterval']=_0x2fe8a1[_0xdbd6('0x26')]||0x258;this[_0xdbd6('0x27')]=_0x2fe8a1['dialOriginateCallerIdName']||_0xdbd6('0x28');this[_0xdbd6('0x29')]=_0x2fe8a1[_0xdbd6('0x29')]||'anonymous';this['dialOriginateTimeout']=_0x2fe8a1[_0xdbd6('0x2a')]||0x1e;this[_0xdbd6('0x2b')]=_0x2fe8a1[_0xdbd6('0x2b')]||'tTxX';this[_0xdbd6('0x2c')]=_0x2fe8a1['dialQueueTimeout']||0x3;this[_0xdbd6('0x2d')]=_0x2fe8a1['dialQueueProject']||undefined;this[_0xdbd6('0x2e')]=_0x2fe8a1[_0xdbd6('0x2e')]||0x3;this[_0xdbd6('0x2f')]=_0x2fe8a1[_0xdbd6('0x2f')]||0x96;this[_0xdbd6('0x30')]=_0x2fe8a1[_0xdbd6('0x30')]||0x3;this[_0xdbd6('0x31')]=_0x2fe8a1[_0xdbd6('0x31')]||0x96;this[_0xdbd6('0x32')]=_0x2fe8a1['dialNoAnswerMaxRetry']||0x3;this[_0xdbd6('0x33')]=_0x2fe8a1[_0xdbd6('0x33')]||0x96;this[_0xdbd6('0x34')]=_0x2fe8a1[_0xdbd6('0x34')]||0x4;this['Trunk']=_0x2fe8a1[_0xdbd6('0x35')]?_0x2fe8a1['Trunk']:undefined;this['TrunkBackup']=_0x2fe8a1[_0xdbd6('0x36')]?_0x2fe8a1[_0xdbd6('0x36')]:undefined;this[_0xdbd6('0x37')]=_0x2fe8a1[_0xdbd6('0x37')]||undefined;this[_0xdbd6('0x38')]=_0x2fe8a1['Interval']?_0x2fe8a1[_0xdbd6('0x38')]:undefined;this['dialOrderByScheduledAt']=_0x2fe8a1['dialOrderByScheduledAt']||_0xdbd6('0x39');this[_0xdbd6('0x3a')]=_0x2fe8a1['dialRandomLastDigitCallerIdNumber']||undefined;this['dialCutDigit']=_0x2fe8a1[_0xdbd6('0x3b')]||undefined;this[_0xdbd6('0x3c')]=strategy[_0x2fe8a1[_0xdbd6('0x3c')]]||_0xdbd6('0x9');this[_0xdbd6('0x3d')]=!![];this[_0xdbd6('0x3e')]=_0x2fe8a1['dialAMDActive']||![];this[_0xdbd6('0x3f')]=_0x2fe8a1[_0xdbd6('0x3f')];this['dialAMDGreeting']=_0x2fe8a1['dialAMDGreeting'];this['dialAMDAfterGreetingSilence']=_0x2fe8a1[_0xdbd6('0x40')];this[_0xdbd6('0x41')]=_0x2fe8a1[_0xdbd6('0x41')];this[_0xdbd6('0x42')]=_0x2fe8a1[_0xdbd6('0x42')];this[_0xdbd6('0x43')]=_0x2fe8a1[_0xdbd6('0x43')];this['dialAMDMaximumNumberOfWords']=_0x2fe8a1[_0xdbd6('0x44')];this[_0xdbd6('0x45')]=_0x2fe8a1[_0xdbd6('0x45')];this[_0xdbd6('0x46')]=_0x2fe8a1[_0xdbd6('0x46')];this[_0xdbd6('0x47')]=0x0;this[_0xdbd6('0x48')]=0x0;this[_0xdbd6('0x49')]=_0x2fe8a1[_0xdbd6('0x49')];this[_0xdbd6('0x4a')]=0x0;this[_0xdbd6('0x4b')]=0x0;this[_0xdbd6('0x4c')]=0x0;this['outboundBusyCallsDay']=0x0;this[_0xdbd6('0x4d')]=0x0;this[_0xdbd6('0x4e')]=0x0;this[_0xdbd6('0x4f')]=0x0;this[_0xdbd6('0x50')]=0x0;this[_0xdbd6('0x51')]=0x0;this[_0xdbd6('0x52')]=0x0;this['outboundDropCallsDayTimeout']=0x0;this[_0xdbd6('0x53')]=0x0;this[_0xdbd6('0x54')]=0x0;this[_0xdbd6('0x55')]=undefined;this[_0xdbd6('0x56')]=undefined;this[_0xdbd6('0x57')]=undefined;this[_0xdbd6('0x58')]=1.05;this[_0xdbd6('0x59')]=0x0;this[_0xdbd6('0x5a')]=0x0;this['predictiveIntervalDroppedCallsCallersExit']=0x0;this[_0xdbd6('0x5b')]=0x0;this[_0xdbd6('0x5c')]=0x0;this['predictiveIntervalAvgTalktime']=0x0;this[_0xdbd6('0x5d')]=0x0;this[_0xdbd6('0x5e')]=0.4;this[_0xdbd6('0x5f')]=0x0;this['predictiveIntervalErlangCallsDroppedCalls']=0x0;this['predictiveIntervalHitRate']=0x1;this['erlangCalls']=0x0;this['erlangCallToSecond']=0x0;this['erlangAbandonmentRate']=0x0;this['erlangBusyFactor']=0x0;this[_0xdbd6('0x60')]=_0x2fe8a1[_0xdbd6('0x60')]||0x1e;this[_0xdbd6('0x61')]=_0x2fe8a1[_0xdbd6('0x61')]||![];this[_0xdbd6('0x62')]=_0x2fe8a1['dialQueueProject2']||undefined;this['dialAgiAfterHangupClient']=_0x2fe8a1[_0xdbd6('0x63')]||![];this['dialAgiAfterHangupAgent']=_0x2fe8a1[_0xdbd6('0x64')]||![];this[_0xdbd6('0xb')]=monitorFormat[_0x2fe8a1[_0xdbd6('0xb')]]?monitorFormat[_0x2fe8a1[_0xdbd6('0xb')]]:undefined;}module['exports']=VoiceQueue;
\ No newline at end of file
+var _0xc125=['erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','exports','unknown','not_inuse','busy','invalid','ringing','ringinuse','onhold','wav49','rrmemory','name','monitor_format','type','inbound','answered','sumHoldTime','sumBillable','unmanaged','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','anonymous','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','dialAMDActive','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundDropCallsDayACS','outboundReCallsDay','startPredictive','handlePredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgTalktime','predictiveIntervalLowerLimit','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCallToSecond'];(function(_0x3ff9b3,_0x34ed66){var _0x4a8c6a=function(_0x316205){while(--_0x316205){_0x3ff9b3['push'](_0x3ff9b3['shift']());}};_0x4a8c6a(++_0x34ed66);}(_0xc125,0x19c));var _0x5c12=function(_0xf57639,_0x4c0837){_0xf57639=_0xf57639-0x0;var _0x24121b=_0xc125[_0xf57639];return _0x24121b;};'use strict';var statusDesc=[_0x5c12('0x0'),_0x5c12('0x1'),'inuse',_0x5c12('0x2'),_0x5c12('0x3'),'unavailable',_0x5c12('0x4'),_0x5c12('0x5'),_0x5c12('0x6')];var monitorFormat={'wav':'wav','wav49':_0x5c12('0x7'),'gsm':'gsm'};var strategy={'rrmemory':_0x5c12('0x8'),'roundrobin':'roundrobin'};function VoiceQueue(_0x22bff5){this['id']=_0x22bff5['id']||0x0;this[_0x5c12('0x9')]=_0x22bff5[_0x5c12('0x9')]||'';this['monitor_format']=_0x22bff5[_0x5c12('0xa')]||'';this['type']=_0x22bff5[_0x5c12('0xb')]||_0x5c12('0xc');this['waiting']=0x0;this['talking']=0x0;this['total']=0x0;this[_0x5c12('0xd')]=0x0;this['sumDuration']=0x0;this[_0x5c12('0xe')]=0x0;this[_0x5c12('0xf')]=0x0;this[_0x5c12('0x10')]=0x0;this['abandoned']=0x0;this['loggedIn']=0x0;this[_0x5c12('0x11')]=0x0;this['acw']=_0x22bff5[_0x5c12('0x12')]||![];this[_0x5c12('0x13')]=_0x22bff5['acwTimeout']||0xa;this[_0x5c12('0x14')]=_0x22bff5['autopause']||'no';this[_0x5c12('0x15')]=!![];this[_0x5c12('0x16')]='';this[_0x5c12('0x17')]=0x0;this[_0x5c12('0x18')]=0x0;this[_0x5c12('0x19')]=_0x22bff5[_0x5c12('0x19')]||null;this[_0x5c12('0x1a')]=_0x22bff5[_0x5c12('0x1a')]?_0x22bff5[_0x5c12('0x1a')]:null;this['dialActive']=_0x22bff5[_0x5c12('0x1b')];this[_0x5c12('0x1c')]=_0x22bff5['dialMethod']||_0x5c12('0x1d');this[_0x5c12('0x1e')]=_0x22bff5[_0x5c12('0x1e')]||0x0;this[_0x5c12('0x1f')]=_0x22bff5[_0x5c12('0x1f')]||0x0;this[_0x5c12('0x20')]=_0x22bff5[_0x5c12('0x20')]||0x1;this[_0x5c12('0x21')]=_0x22bff5['dialPredictiveOptimization']||_0x5c12('0x22');this['dialPredictiveOptimizationPercentage']=_0x22bff5[_0x5c12('0x23')]||0.03;this[_0x5c12('0x24')]=_0x22bff5[_0x5c12('0x24')]||0x258;this[_0x5c12('0x25')]=_0x22bff5['dialOriginateCallerIdName']||'anonymous';this[_0x5c12('0x26')]=_0x22bff5['dialOriginateCallerIdNumber']||_0x5c12('0x27');this[_0x5c12('0x28')]=_0x22bff5[_0x5c12('0x28')]||0x1e;this[_0x5c12('0x29')]=_0x22bff5['dialQueueOptions']||'tTxX';this[_0x5c12('0x2a')]=_0x22bff5[_0x5c12('0x2a')]||0x3;this[_0x5c12('0x2b')]=_0x22bff5[_0x5c12('0x2b')]||undefined;this[_0x5c12('0x2c')]=_0x22bff5['dialCongestionMaxRetry']||0x3;this[_0x5c12('0x2d')]=_0x22bff5[_0x5c12('0x2d')]||0x96;this[_0x5c12('0x2e')]=_0x22bff5['dialBusyMaxRetry']||0x3;this[_0x5c12('0x2f')]=_0x22bff5['dialBusyRetryFrequency']||0x96;this[_0x5c12('0x30')]=_0x22bff5[_0x5c12('0x30')]||0x3;this[_0x5c12('0x31')]=_0x22bff5[_0x5c12('0x31')]||0x96;this[_0x5c12('0x32')]=_0x22bff5['dialGlobalMaxRetry']||0x4;this[_0x5c12('0x33')]=_0x22bff5[_0x5c12('0x33')]?_0x22bff5[_0x5c12('0x33')]:undefined;this['TrunkBackup']=_0x22bff5[_0x5c12('0x34')]?_0x22bff5[_0x5c12('0x34')]:undefined;this[_0x5c12('0x35')]=_0x22bff5[_0x5c12('0x35')]||undefined;this[_0x5c12('0x36')]=_0x22bff5[_0x5c12('0x36')]?_0x22bff5[_0x5c12('0x36')]:undefined;this['dialOrderByScheduledAt']=_0x22bff5['dialOrderByScheduledAt']||'DESC';this['dialRandomLastDigitCallerIdNumber']=_0x22bff5[_0x5c12('0x37')]||undefined;this[_0x5c12('0x38')]=_0x22bff5[_0x5c12('0x38')]||undefined;this[_0x5c12('0x39')]=strategy[_0x22bff5['strategy']]||'rrmemory';this['queueStatusComplete']=!![];this[_0x5c12('0x3a')]=_0x22bff5[_0x5c12('0x3a')]||![];this['dialAMDInitialSilence']=_0x22bff5['dialAMDInitialSilence'];this[_0x5c12('0x3b')]=_0x22bff5[_0x5c12('0x3b')];this[_0x5c12('0x3c')]=_0x22bff5[_0x5c12('0x3c')];this[_0x5c12('0x3d')]=_0x22bff5[_0x5c12('0x3d')];this[_0x5c12('0x3e')]=_0x22bff5[_0x5c12('0x3e')];this[_0x5c12('0x3f')]=_0x22bff5[_0x5c12('0x3f')];this[_0x5c12('0x40')]=_0x22bff5[_0x5c12('0x40')];this['dialAMDSilenceThreshold']=_0x22bff5[_0x5c12('0x41')];this['dialAMDMaximumWordLength']=_0x22bff5[_0x5c12('0x42')];this[_0x5c12('0x43')]=0x0;this[_0x5c12('0x44')]=0x0;this[_0x5c12('0x45')]=_0x22bff5[_0x5c12('0x45')];this[_0x5c12('0x46')]=0x0;this[_0x5c12('0x47')]=0x0;this[_0x5c12('0x48')]=0x0;this[_0x5c12('0x49')]=0x0;this['outboundCongestionCallsDay']=0x0;this[_0x5c12('0x4a')]=0x0;this[_0x5c12('0x4b')]=0x0;this[_0x5c12('0x4c')]=0x0;this[_0x5c12('0x4d')]=0x0;this[_0x5c12('0x4e')]=0x0;this[_0x5c12('0x4f')]=0x0;this[_0x5c12('0x50')]=0x0;this[_0x5c12('0x51')]=0x0;this['startProgressive']=undefined;this[_0x5c12('0x52')]=undefined;this[_0x5c12('0x53')]=undefined;this[_0x5c12('0x54')]=1.05;this[_0x5c12('0x55')]=0x0;this[_0x5c12('0x56')]=0x0;this['predictiveIntervalDroppedCallsCallersExit']=0x0;this[_0x5c12('0x57')]=0x0;this['predictiveIntervalAvgHoldtime']=0x0;this[_0x5c12('0x58')]=0x0;this['predictiveIntervalPauses']=0x0;this[_0x5c12('0x59')]=0.4;this['predictiveIntervalErlangCalls']=0x0;this[_0x5c12('0x5a')]=0x0;this[_0x5c12('0x5b')]=0x1;this['erlangCalls']=0x0;this[_0x5c12('0x5c')]=0x0;this[_0x5c12('0x5d')]=0x0;this[_0x5c12('0x5e')]=0x0;this[_0x5c12('0x5f')]=_0x22bff5[_0x5c12('0x5f')]||0x1e;this['dialRecallInQueue']=_0x22bff5[_0x5c12('0x60')]||![];this[_0x5c12('0x61')]=_0x22bff5[_0x5c12('0x61')]||undefined;this[_0x5c12('0x62')]=_0x22bff5[_0x5c12('0x62')]||![];this[_0x5c12('0x63')]=_0x22bff5[_0x5c12('0x63')]||![];this[_0x5c12('0xa')]=monitorFormat[_0x22bff5[_0x5c12('0xa')]]?monitorFormat[_0x22bff5['monitor_format']]:undefined;}module[_0x5c12('0x64')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3cb8=['name','username','accessKey','remoteUri','Configurations','exports'];(function(_0x141894,_0x297466){var _0x96b434=function(_0x3d32da){while(--_0x3d32da){_0x141894['push'](_0x141894['shift']());}};_0x96b434(++_0x297466);}(_0x3cb8,0x186));var _0x83cb=function(_0x14e44a,_0x5e4cb5){_0x14e44a=_0x14e44a-0x0;var _0x1ba95f=_0x3cb8[_0x14e44a];return _0x1ba95f;};'use strict';function VtigerAccount(_0x4f5bc7){this['id']=_0x4f5bc7['id']||0x0;this[_0x83cb('0x0')]=_0x4f5bc7['name']||'';this[_0x83cb('0x1')]=_0x4f5bc7[_0x83cb('0x1')]||'';this[_0x83cb('0x2')]=_0x4f5bc7[_0x83cb('0x2')]||'';this[_0x83cb('0x3')]=_0x4f5bc7[_0x83cb('0x3')]||'';this['serverUrl']=_0x4f5bc7['serverUrl']||'';this[_0x83cb('0x4')]=_0x4f5bc7[_0x83cb('0x4')]||{};}module[_0x83cb('0x5')]=VtigerAccount;
\ No newline at end of file
+var _0xc725=['exports','name','username','accessKey','remoteUri','serverUrl','Configurations'];(function(_0x5650dc,_0x5cfccb){var _0x3e88ce=function(_0x56e346){while(--_0x56e346){_0x5650dc['push'](_0x5650dc['shift']());}};_0x3e88ce(++_0x5cfccb);}(_0xc725,0x1c8));var _0x5c72=function(_0x4405dc,_0x2ce0f5){_0x4405dc=_0x4405dc-0x0;var _0x9e5ab5=_0xc725[_0x4405dc];return _0x9e5ab5;};'use strict';function VtigerAccount(_0x28d544){this['id']=_0x28d544['id']||0x0;this['name']=_0x28d544[_0x5c72('0x0')]||'';this[_0x5c72('0x1')]=_0x28d544[_0x5c72('0x1')]||'';this[_0x5c72('0x2')]=_0x28d544[_0x5c72('0x2')]||'';this['remoteUri']=_0x28d544[_0x5c72('0x3')]||'';this[_0x5c72('0x4')]=_0x28d544[_0x5c72('0x4')]||'';this[_0x5c72('0x5')]=_0x28d544[_0x5c72('0x5')]||{};}module[_0x5c72('0x6')]=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b2d=['type','serverUrl','Configurations','exports','name','username','password','token','remoteUri','authType'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x0b2d,0x11c));var _0xd0b2=function(_0x1ab893,_0x29a305){_0x1ab893=_0x1ab893-0x0;var _0x3bfd=_0x0b2d[_0x1ab893];return _0x3bfd;};'use strict';function ZendeskAccount(_0x323442){this['id']=_0x323442['id']||0x0;this[_0xd0b2('0x0')]=_0x323442[_0xd0b2('0x0')]||'';this[_0xd0b2('0x1')]=_0x323442[_0xd0b2('0x1')]||'';this[_0xd0b2('0x2')]=_0x323442[_0xd0b2('0x2')]||'';this[_0xd0b2('0x3')]=_0x323442['token']||'';this[_0xd0b2('0x4')]=_0x323442['remoteUri']||'';this[_0xd0b2('0x5')]=_0x323442['authType']||'';this[_0xd0b2('0x6')]=_0x323442[_0xd0b2('0x6')]||'integrationTab';this[_0xd0b2('0x7')]=_0x323442[_0xd0b2('0x7')]||'';this[_0xd0b2('0x8')]=_0x323442[_0xd0b2('0x8')]||{};}module[_0xd0b2('0x9')]=ZendeskAccount;
\ No newline at end of file
+var _0xebdc=['password','token','remoteUri','type','integrationTab','serverUrl','Configurations','name','username'];(function(_0x4eb21b,_0xa9a8ce){var _0x14526b=function(_0xe014f5){while(--_0xe014f5){_0x4eb21b['push'](_0x4eb21b['shift']());}};_0x14526b(++_0xa9a8ce);}(_0xebdc,0x166));var _0xcebd=function(_0x49affd,_0x1f0e03){_0x49affd=_0x49affd-0x0;var _0x53d71b=_0xebdc[_0x49affd];return _0x53d71b;};'use strict';function ZendeskAccount(_0x52f655){this['id']=_0x52f655['id']||0x0;this[_0xcebd('0x0')]=_0x52f655['name']||'';this[_0xcebd('0x1')]=_0x52f655[_0xcebd('0x1')]||'';this[_0xcebd('0x2')]=_0x52f655[_0xcebd('0x2')]||'';this['token']=_0x52f655[_0xcebd('0x3')]||'';this['remoteUri']=_0x52f655[_0xcebd('0x4')]||'';this['authType']=_0x52f655['authType']||'';this[_0xcebd('0x5')]=_0x52f655['type']||_0xcebd('0x6');this['serverUrl']=_0x52f655[_0xcebd('0x7')]||'';this['Configurations']=_0x52f655[_0xcebd('0x8')]||{};}module['exports']=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['Configurations','serverUrl','name','authToken','host'];(function(_0xc23380,_0x18e158){var _0x4b1b26=function(_0x11796b){while(--_0x11796b){_0xc23380['push'](_0xc23380['shift']());}};_0x4b1b26(++_0x18e158);}(_0x53ec,0x192));var _0xc53e=function(_0x6cf2c7,_0x27a3a0){_0x6cf2c7=_0x6cf2c7-0x0;var _0x4d0752=_0x53ec[_0x6cf2c7];return _0x4d0752;};'use strict';function ZohoAccount(_0x10477f){this['id']=_0x10477f['id']||0x0;this[_0xc53e('0x0')]=_0x10477f[_0xc53e('0x0')]||'';this[_0xc53e('0x1')]=_0x10477f[_0xc53e('0x1')]||'';this[_0xc53e('0x2')]=_0x10477f['host']||'';this[_0xc53e('0x3')]=_0x10477f['Configurations']||{};this[_0xc53e('0x4')]=_0x10477f[_0xc53e('0x4')]||'';}module['exports']=ZohoAccount;
\ No newline at end of file
+var _0x53ec=['Configurations','serverUrl','name','authToken','host'];(function(_0x1ae7b0,_0x2301a2){var _0x2d83dc=function(_0x32a63f){while(--_0x32a63f){_0x1ae7b0['push'](_0x1ae7b0['shift']());}};_0x2d83dc(++_0x2301a2);}(_0x53ec,0x192));var _0xc53e=function(_0x1a7244,_0x3d99d9){_0x1a7244=_0x1a7244-0x0;var _0x5c4e9f=_0x53ec[_0x1a7244];return _0x5c4e9f;};'use strict';function ZohoAccount(_0x10477f){this['id']=_0x10477f['id']||0x0;this[_0xc53e('0x0')]=_0x10477f[_0xc53e('0x0')]||'';this[_0xc53e('0x1')]=_0x10477f[_0xc53e('0x1')]||'';this[_0xc53e('0x2')]=_0x10477f['host']||'';this[_0xc53e('0x3')]=_0x10477f['Configurations']||{};this[_0xc53e('0x4')]=_0x10477f[_0xc53e('0x4')]||'';}module['exports']=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ad5=['channelAgent','format','SIP/%s','calleridname','phone','Contact','calleridnum','scheduledat','countnoanswerretry','countglobal','countbusyretry','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','originatecalleridname','prototype','getCaller','number','util','moment','isNil','string','uniqueid','idContact','queue','type','campaigntype','membername','Agent'];(function(_0x3b90ab,_0x355d69){var _0x12acd1=function(_0x3b9278){while(--_0x3b9278){_0x3b90ab['push'](_0x3b90ab['shift']());}};_0x12acd1(++_0x355d69);}(_0x3ad5,0x130));var _0x53ad=function(_0x2ba9aa,_0x2025a5){_0x2ba9aa=_0x2ba9aa-0x0;var _0x2d0558=_0x3ad5[_0x2ba9aa];return _0x2d0558;};'use strict';var util=require(_0x53ad('0x0'));var _=require('lodash');var moment=require(_0x53ad('0x1'));function checkNameSurname(_0x29baa7,_0x279a38,_0x284ac9){var _0x59ed61='';if(!_[_0x53ad('0x2')](_0x279a38)&&'string'===typeof _0x279a38){_0x59ed61+=_0x279a38;}if(!_['isNil'](_0x284ac9)&&_0x53ad('0x3')===typeof _0x284ac9){_0x59ed61+='\x20'+_0x284ac9;}if(_0x59ed61!==''){return _0x59ed61;}return _0x29baa7;}function Action(_0x1453f0,_0x5a7017,_0x53c0d6,_0x586efb,_0x56ef4c){this[_0x53ad('0x4')]=_0x53c0d6||undefined;this[_0x53ad('0x5')]=_0x1453f0['id'];this[_0x53ad('0x6')]=_0x5a7017['name'];this[_0x53ad('0x7')]=_0x5a7017[_0x53ad('0x7')];this[_0x53ad('0x8')]='queue';this['dialAnswer']=![];this[_0x53ad('0x9')]=_['isNil'](_0x1453f0[_0x53ad('0xa')])?undefined:_0x1453f0[_0x53ad('0xa')]['name'];this[_0x53ad('0xb')]=this[_0x53ad('0x9')]?util[_0x53ad('0xc')](_0x53ad('0xd'),this[_0x53ad('0x9')]):_0x586efb||undefined;this[_0x53ad('0xe')]=checkNameSurname(_0x1453f0['Contact'][_0x53ad('0xf')],_0x1453f0[_0x53ad('0x10')]['firstName'],_0x1453f0['Contact']['lastName']);this['active']=_0x1453f0['active']||![];this[_0x53ad('0x11')]=_0x1453f0['Contact'][_0x53ad('0xf')];this[_0x53ad('0x12')]=_0x1453f0['scheduledat'];this['countbusyretry']=_0x1453f0['countbusyretry']||0x0;this['countcongestionretry']=_0x1453f0['countcongestionretry']||0x0;this['countnoanswerretry']=_0x1453f0[_0x53ad('0x13')]||0x0;this[_0x53ad('0x14')]=(_0x1453f0[_0x53ad('0x15')]||0x0)+(_0x1453f0['countcongestionretry']||0x0)+(_0x1453f0[_0x53ad('0x13')]||0x0);this[_0x53ad('0x16')]=_0x1453f0[_0x53ad('0x16')];this[_0x53ad('0x17')]=_0x1453f0[_0x53ad('0x17')];this[_0x53ad('0x18')]=_0x1453f0[_0x53ad('0x18')];this[_0x53ad('0x19')]=_0x1453f0['recallme'];this['ContactId']=_0x1453f0[_0x53ad('0x1a')];this[_0x53ad('0x1b')]=_0x1453f0[_0x53ad('0x1b')];this[_0x53ad('0x1c')]=_[_0x53ad('0x2')](_0x1453f0[_0x53ad('0xa')])?_0x1453f0[_0x53ad('0x1c')]:_0x1453f0[_0x53ad('0xa')]['id'];this[_0x53ad('0x1d')]=_0x1453f0[_0x53ad('0x1d')];this[_0x53ad('0x1e')]='';this[_0x53ad('0x1f')]='';}Action[_0x53ad('0x20')][_0x53ad('0x21')]=function(){return util[_0x53ad('0xc')]('\x22%s\x22\x20<%s>',this[_0x53ad('0xe')],this[_0x53ad('0x22')]);};module['exports']=Action;
\ No newline at end of file
+var _0xd910=['SIP/%s','calleridname','Contact','phone','firstName','lastName','active','calleridnum','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','originatecalleridname','prototype','getCaller','format','\x22%s\x22\x20<%s>','exports','util','lodash','isNil','string','uniqueid','idContact','queue','type','membername','Agent','channelAgent'];(function(_0x411289,_0x36dbc8){var _0x5e72ec=function(_0x4d415b){while(--_0x4d415b){_0x411289['push'](_0x411289['shift']());}};_0x5e72ec(++_0x36dbc8);}(_0xd910,0x1f0));var _0x0d91=function(_0x2121d9,_0x485e31){_0x2121d9=_0x2121d9-0x0;var _0x1b0a8e=_0xd910[_0x2121d9];return _0x1b0a8e;};'use strict';var util=require(_0x0d91('0x0'));var _=require(_0x0d91('0x1'));var moment=require('moment');function checkNameSurname(_0x286ddf,_0x3cb5d3,_0x5538ab){var _0xf67c6e='';if(!_[_0x0d91('0x2')](_0x3cb5d3)&&_0x0d91('0x3')===typeof _0x3cb5d3){_0xf67c6e+=_0x3cb5d3;}if(!_['isNil'](_0x5538ab)&&_0x0d91('0x3')===typeof _0x5538ab){_0xf67c6e+='\x20'+_0x5538ab;}if(_0xf67c6e!==''){return _0xf67c6e;}return _0x286ddf;}function Action(_0x1300c5,_0x40ac65,_0x4f291f,_0x3b591c,_0x679bcc){this[_0x0d91('0x4')]=_0x4f291f||undefined;this[_0x0d91('0x5')]=_0x1300c5['id'];this[_0x0d91('0x6')]=_0x40ac65['name'];this['type']=_0x40ac65[_0x0d91('0x7')];this['campaigntype']=_0x0d91('0x6');this['dialAnswer']=![];this[_0x0d91('0x8')]=_['isNil'](_0x1300c5[_0x0d91('0x9')])?undefined:_0x1300c5[_0x0d91('0x9')]['name'];this[_0x0d91('0xa')]=this[_0x0d91('0x8')]?util['format'](_0x0d91('0xb'),this[_0x0d91('0x8')]):_0x3b591c||undefined;this[_0x0d91('0xc')]=checkNameSurname(_0x1300c5[_0x0d91('0xd')][_0x0d91('0xe')],_0x1300c5[_0x0d91('0xd')][_0x0d91('0xf')],_0x1300c5[_0x0d91('0xd')][_0x0d91('0x10')]);this[_0x0d91('0x11')]=_0x1300c5['active']||![];this[_0x0d91('0x12')]=_0x1300c5[_0x0d91('0xd')]['phone'];this['scheduledat']=_0x1300c5[_0x0d91('0x13')];this[_0x0d91('0x14')]=_0x1300c5[_0x0d91('0x14')]||0x0;this['countcongestionretry']=_0x1300c5[_0x0d91('0x15')]||0x0;this[_0x0d91('0x16')]=_0x1300c5[_0x0d91('0x16')]||0x0;this[_0x0d91('0x17')]=(_0x1300c5[_0x0d91('0x14')]||0x0)+(_0x1300c5[_0x0d91('0x15')]||0x0)+(_0x1300c5['countnoanswerretry']||0x0);this[_0x0d91('0x18')]=_0x1300c5[_0x0d91('0x18')];this[_0x0d91('0x19')]=_0x1300c5[_0x0d91('0x19')];this[_0x0d91('0x1a')]=_0x1300c5[_0x0d91('0x1a')];this[_0x0d91('0x1b')]=_0x1300c5[_0x0d91('0x1b')];this[_0x0d91('0x1c')]=_0x1300c5['ContactId'];this['ListId']=_0x1300c5[_0x0d91('0x1d')];this[_0x0d91('0x1e')]=_[_0x0d91('0x2')](_0x1300c5[_0x0d91('0x9')])?_0x1300c5[_0x0d91('0x1e')]:_0x1300c5[_0x0d91('0x9')]['id'];this['VoiceQueueId']=_0x1300c5[_0x0d91('0x1f')];this[_0x0d91('0x20')]='';this[_0x0d91('0x21')]='';}Action[_0x0d91('0x22')][_0x0d91('0x23')]=function(){return util[_0x0d91('0x24')](_0x0d91('0x25'),this[_0x0d91('0xc')],this['number']);};module[_0x0d91('0x26')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25b3=['\x20is\x20not\x20active','IS_DISACTIVED','loopCampaigns','syncCampaigns','dialMethod','booked','clearZombieChannels','outbound','setMessage','recallMe','isNil','info','Queue','originated:\x20','queue','pTalking:\x20','dialAnswer','pick','contactId','UserId','VoiceQueueId','ListId','status','channel','No\x20such\x20channel','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','getContactRecallMe','agentReadyId','length','getDiff','scheduledat','dialRecallMeTimeout','run','then','logger2','[RecallMe]','catch','starttime','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createBody','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','createCustomerFinal','[HistoryRecallClose]','[getContactRecallMe]','IsNotLoggedIn','AGENTS_NOT_LOGGED','isActive','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','countglobal','totalGlobal','NoSuchNumber','dialGlobalMaxRetry','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','linkedid','ANSWER','responsetime','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','buildObj','connect','acw','custom:agentConnectPreview','buildAcw','complete','[16]','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','talktime','sumBillable','[syncHangup][talking][decrement]','BUSY','countbusyretry','[callProgressDetectingCustomer][logBusy]','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','rescheduleContact','scheduledAt','dialBusyRetryFrequency','activeContact','NOANSWER','countnoanswerretry','NoAnswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','unlockAgent','CONGESTION','countcongestionretry','Congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','CANCEL','AgentReject','[syncHangupRequest][logAgentReject]','idContact','disableContact','[default]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','dialstatus','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','updateOriginated','destlinkedid','callProgressDetectingAgent','isUndefined','object','logAgent','[callProgressDetectingAgent][logNoSuch]','createAgentHistory','[callProgressDetectingAgent][logNoAnswer]','Busy','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','reason','[callProgressDetectingAgent]','checkInBlack','Contact','phone','Contact\x20is\x20undefined','lookAgent','[Preview][execCall][success]','custom:agentcalled','called','[Preview][execCall][failure]','Call\x20failed','outboundBlacklistCallsDay','logBlacklist','createHistory','Contact\x20in\x20black\x20List','SIP/%s','unmonitored','execRun','unlock','unlockContact','getContactPreview','recallme','validateContact','checkIsBlackList','Contact.phone','Call\x20unsuccessful','[Preview][getContactPreview]','isEmpty','Agent','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','campaign\x20Name:\x20','execCall','dialPrefix','trim','dialCutDigit','substring','SIP/%s/%s%s','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','originatecalleridname','extractCalleridName','extractCalleridNumber','addVariables','merge','Action','variablesAction','[originated][increment]','OriginateError','logLookAgent','clone','isFailure','response','custom:agentringnoanswer','rejected','Answer','cause','[syncHangup][talking][cause]','channelstate','transfer','destuniqueid','addVariable','variables','filterKey','keys','variable','value','error','[syncVarSet][Preview]','inspect','syncAttendedTransfer','transfertargetlinkedid','exports','util','lodash','bluebird','uuid','moment','md5','../../../config/environment','../../../config/logger','preview','actionPreview','./rpcDb','./util/util','redis','defaults','socket.io-emitter','prototype','enqueue','tail','sequence','campaignsPreview','voiceQueues','trunks','actions','agents','clockClearZombieChannels','syncOriginateResponse','bind','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','syncVarSet','attendedtransfer','blindtransfer','emit','type','name','strategy','available','loggedIn','pTalking','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','waiting','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalHitRate','predictiveIntervalLowerLimit','predictiveIntervalPauses','predictiveIntervalTotalCalls','message','originated','Trunk','active','callerid','Interval','stringify','format','voice:queue:%s','voice_queue:save','voice_queue_channel:remove','sendMessageOneNotActive','paused','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20'];(function(_0x2d591f,_0x760132){var _0x43dc2c=function(_0x3bfc36){while(--_0x3bfc36){_0x2d591f['push'](_0x2d591f['shift']());}};_0x43dc2c(++_0x760132);}(_0x25b3,0xd9));var _0x325b=function(_0x43139e,_0x762629){_0x43139e=_0x43139e-0x0;var _0x2bc838=_0x25b3[_0x43139e];return _0x2bc838;};'use strict';var util=require(_0x325b('0x0'));var _=require(_0x325b('0x1'));var BPromise=require(_0x325b('0x2'));var uuid=require(_0x325b('0x3'));var moment=require(_0x325b('0x4'));var md5=require(_0x325b('0x5'));var config=require(_0x325b('0x6'));var logger=require(_0x325b('0x7'))(_0x325b('0x8'));var loggerAction=require(_0x325b('0x7'))(_0x325b('0x9'));var ami=require('../ami');var rpcDb=require(_0x325b('0xa'));var Action=require('./action');var ut=require(_0x325b('0xb'));config[_0x325b('0xc')]=_[_0x325b('0xd')](config[_0x325b('0xc')],{'host':'localhost','port':0x18eb});var io=require(_0x325b('0xe'))(config['redis']);var Sequence=function(){};Sequence[_0x325b('0xf')][_0x325b('0x10')]=function(_0x5a7f8e){this[_0x325b('0x11')]=this[_0x325b('0x11')]?this[_0x325b('0x11')]['finally'](_0x5a7f8e):_0x5a7f8e();};function Preview(_0x29c7c6){this[_0x325b('0x12')]=new Sequence();this[_0x325b('0x13')]=_0x29c7c6[_0x325b('0x14')];this['trunks']=_0x29c7c6[_0x325b('0x15')];this[_0x325b('0x16')]={};this[_0x325b('0x17')]=_0x29c7c6[_0x325b('0x17')];this[_0x325b('0x18')]=0x0;ami['on']('originateresponse',this[_0x325b('0x19')][_0x325b('0x1a')](this));ami['on']('hangup',this[_0x325b('0x1b')][_0x325b('0x1a')](this));ami['on'](_0x325b('0x1c'),this[_0x325b('0x1d')][_0x325b('0x1a')](this));ami['on'](_0x325b('0x1e'),this[_0x325b('0x1f')][_0x325b('0x1a')](this));ami['on'](_0x325b('0x20'),this[_0x325b('0x21')][_0x325b('0x1a')](this));ami['on']('varset',this[_0x325b('0x22')][_0x325b('0x1a')](this));ami['on'](_0x325b('0x23'),this['syncAttendedTransfer'][_0x325b('0x1a')](this));ami['on'](_0x325b('0x24'),this['syncBlindTransfer'][_0x325b('0x1a')](this));this['loopCampaigns'](this[_0x325b('0x13')]);}function emit(_0x36a949,_0x517bcf,_0x286e89){io['to'](_0x36a949)[_0x325b('0x25')](_0x517bcf,_0x286e89);}function emitCampaignPreview(_0x3f1a3f){if(_0x3f1a3f[_0x325b('0x26')]==='outbound'){var _0x352980={'id':_0x3f1a3f['id'],'name':_0x3f1a3f[_0x325b('0x27')],'strategy':_0x3f1a3f[_0x325b('0x28')],'answered':_0x3f1a3f['answered'],'available':_0x3f1a3f[_0x325b('0x29')],'loggedIn':_0x3f1a3f[_0x325b('0x2a')],'pTalking':_0x3f1a3f[_0x325b('0x2b')],'sumBillable':_0x3f1a3f['sumBillable'],'sumDuration':_0x3f1a3f[_0x325b('0x2c')],'sumHoldTime':_0x3f1a3f[_0x325b('0x2d')]||0x0,'talking':_0x3f1a3f[_0x325b('0x2e')],'total':_0x3f1a3f[_0x325b('0x2f')],'type':_0x3f1a3f[_0x325b('0x26')],'unmanaged':_0x3f1a3f[_0x325b('0x30')],'abandoned':_0x3f1a3f[_0x325b('0x31')],'waiting':_0x3f1a3f[_0x325b('0x32')],'loggedInDb':_0x3f1a3f['loggedInDb'],'dialActive':_0x3f1a3f[_0x325b('0x33')],'dialMethod':_0x3f1a3f['dialMethod'],'dialOriginateCallerIdName':_0x3f1a3f[_0x325b('0x34')],'dialOriginateCallerIdNumber':_0x3f1a3f[_0x325b('0x35')],'dialOriginateTimeout':_0x3f1a3f['dialOriginateTimeout'],'dialPrefix':_0x3f1a3f['dialPrefix'],'outboundAnswerAgiCallsDay':_0x3f1a3f[_0x325b('0x36')],'outboundAnswerCallsDay':_0x3f1a3f[_0x325b('0x37')],'outboundBlacklistCallsDay':_0x3f1a3f['outboundBlacklistCallsDay'],'outboundBusyCallsDay':_0x3f1a3f[_0x325b('0x38')],'outboundCongestionCallsDay':_0x3f1a3f[_0x325b('0x39')],'outboundDropCallsDayACS':_0x3f1a3f[_0x325b('0x3a')],'outboundDropCallsDayCallersExit':_0x3f1a3f[_0x325b('0x3b')],'outboundDropCallsDayTimeout':_0x3f1a3f[_0x325b('0x3c')],'outboundNoAnswerCallsDay':_0x3f1a3f[_0x325b('0x3d')],'outboundNoSuchCallsDay':_0x3f1a3f[_0x325b('0x3e')],'outboundOriginateFailureCallsDay':_0x3f1a3f[_0x325b('0x3f')],'outboundReCallsDay':_0x3f1a3f[_0x325b('0x40')],'outboundRejectCallsDay':_0x3f1a3f[_0x325b('0x41')],'outboundUnknownCallsDay':_0x3f1a3f[_0x325b('0x42')],'predictiveIntervalAnsweredCalls':_0x3f1a3f[_0x325b('0x43')],'predictiveIntervalAvgHoldtime':_0x3f1a3f[_0x325b('0x44')],'predictiveIntervalAvgTalktime':_0x3f1a3f[_0x325b('0x45')],'predictiveIntervalDroppedCallsCallersExit':_0x3f1a3f[_0x325b('0x46')],'predictiveIntervalDroppedCallsTimeout':_0x3f1a3f[_0x325b('0x47')],'predictiveIntervalErlangCalls':_0x3f1a3f['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x3f1a3f['predictiveIntervalErlangCallsDroppedCalls'],'predictiveIntervalHitRate':_0x3f1a3f[_0x325b('0x48')],'predictiveIntervalLowerLimit':_0x3f1a3f[_0x325b('0x49')],'predictiveIntervalMultiplicativeFactor':_0x3f1a3f['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x3f1a3f[_0x325b('0x4a')],'predictiveIntervalTotalCalls':_0x3f1a3f[_0x325b('0x4b')],'message':_0x3f1a3f[_0x325b('0x4c')],'originated':_0x3f1a3f[_0x325b('0x4d')]};if(_0x3f1a3f['Trunk']){_0x352980['Trunk']={'id':_0x3f1a3f[_0x325b('0x4e')]['id'],'name':_0x3f1a3f[_0x325b('0x4e')][_0x325b('0x27')],'active':_0x3f1a3f[_0x325b('0x4e')][_0x325b('0x4f')],'callerid':_0x3f1a3f[_0x325b('0x4e')][_0x325b('0x50')]};}if(_0x3f1a3f[_0x325b('0x51')]){_0x352980[_0x325b('0x51')]={'id':_0x3f1a3f[_0x325b('0x51')]['id'],'name':_0x3f1a3f[_0x325b('0x51')][_0x325b('0x27')]};}var _0x381456=md5(JSON[_0x325b('0x52')](_0x352980));if(_0x3f1a3f['md5']!==_0x381456){_0x3f1a3f['md5']=_0x381456;emit(util[_0x325b('0x53')](_0x325b('0x54'),_0x352980['name']),_0x325b('0x55'),_0x352980);}}}function emitVoiceQueueChannelRemove(_0x3dc79a){emit(util[_0x325b('0x53')](_0x325b('0x54'),_0x3dc79a[_0x325b('0x27')]),_0x325b('0x56'),_0x3dc79a);}function notSendMessagesQueue(_0x2faf90){if(_0x2faf90[_0x325b('0x57')]){if(_0x2faf90['originated']===0x0&&_0x2faf90[_0x325b('0x2b')]===0x0){_0x2faf90[_0x325b('0x57')]=![];_0x2faf90[_0x325b('0x29')]=0x0;_0x2faf90[_0x325b('0x58')]=0x0;_0x2faf90[_0x325b('0x4c')]=_0x325b('0x59');ut[_0x325b('0x5a')](_0x325b('0x5b'),_0x2faf90[_0x325b('0x27')]+_0x325b('0x5c'));}else{_0x2faf90[_0x325b('0x4c')]=_0x325b('0x5d');ut[_0x325b('0x5a')](_0x325b('0x5b'),_0x2faf90[_0x325b('0x27')]+'\x20is\x20disactive');}emitCampaignPreview(_0x2faf90);}}Preview[_0x325b('0xf')][_0x325b('0x5e')]=function(){var _0x5d52df=this;setInterval(function(){_0x5d52df['syncCampaigns']();},0x7cf);};Preview['prototype'][_0x325b('0x5f')]=function(){var _0x16e942=this['campaignsPreview'];this[_0x325b('0x18')]+=0x1;for(var _0x2047d7 in _0x16e942){if(_0x16e942['hasOwnProperty'](_0x2047d7)&&(_0x16e942[_0x2047d7][_0x325b('0x60')]===_0x325b('0x8')||_0x16e942[_0x2047d7][_0x325b('0x60')]===_0x325b('0x61'))&&_0x16e942[_0x2047d7]['type']==='outbound'){if(this['clockClearZombieChannels']>0x7){this['clockClearZombieChannels']=0x0;this[_0x325b('0x62')]();}}if(_0x16e942['hasOwnProperty'](_0x2047d7)&&_0x16e942[_0x2047d7][_0x325b('0x60')]===_0x325b('0x8')&&_0x16e942[_0x2047d7][_0x325b('0x26')]===_0x325b('0x63')){if(_0x16e942[_0x2047d7]['dialActive']){this[_0x325b('0x64')](_0x16e942[_0x2047d7]);this[_0x325b('0x65')](_0x16e942[_0x2047d7]);}else{notSendMessagesQueue(_0x16e942[_0x2047d7]);}}}};Preview['prototype']['clearZombieChannel']=function(_0xac4941){var _0x5eaa7f=this;this['sequence']['enqueue'](function(){if(!_[_0x325b('0x66')](_0x5eaa7f[_0x325b('0x16')][_0xac4941])){loggerAction[_0x325b('0x67')]('[clearZombieChannels][talking]',_0xac4941,_0x325b('0x68'),_0x5eaa7f[_0x325b('0x16')][_0xac4941]['queue'],_0x325b('0x69'),JSON[_0x325b('0x52')](_0x5eaa7f['campaignsPreview'][_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x6a')]][_0x325b('0x4d')]),_0x325b('0x6b'),JSON[_0x325b('0x52')](_0x5eaa7f[_0x325b('0x13')][_0x5eaa7f[_0x325b('0x16')][_0xac4941]['queue']][_0x325b('0x2b')]),JSON[_0x325b('0x52')](_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x6c')]),JSON[_0x325b('0x52')](_[_0x325b('0x6d')](_0x5eaa7f[_0x325b('0x16')][_0xac4941],[_0x325b('0x6e'),_0x325b('0x6f'),_0x325b('0x70'),_0x325b('0x71')])));return ami['Action']({'action':_0x325b('0x72'),'channel':_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x73')]})['catch'](function(_0x16f1eb){if(_0x16f1eb[_0x325b('0x4c')]===_0x325b('0x74')){setTimeout(function(){if(_0x5eaa7f[_0x325b('0x16')][_0xac4941]){ut['updateOriginated'](_0x5eaa7f['campaignsPreview'][_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x6a')]],_0x325b('0x75'));if(_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x6c')]===!![]){ut[_0x325b('0x76')](_0x5eaa7f[_0x325b('0x13')][_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x6a')]],'[clearZombieChannel]');ut[_0x325b('0x77')](_0x325b('0x78')+_0xac4941,_0x5eaa7f[_0x325b('0x16')][_0xac4941][_0x325b('0x6a')]);}ut[_0x325b('0x77')](_0x325b('0x79')+_0xac4941,_0x5eaa7f[_0x325b('0x16')][_0xac4941]['queue']);delete _0x5eaa7f['actions'][_0xac4941];}},0x2328);}});}});};Preview[_0x325b('0xf')][_0x325b('0x62')]=function(){var _0x462b65=this;loggerAction[_0x325b('0x67')](_0x325b('0x7a'),_[_0x325b('0x7b')](this[_0x325b('0x16')]));for(var _0x3af14b in this[_0x325b('0x16')]){if(_0x462b65[_0x325b('0x16')]['hasOwnProperty'](_0x3af14b)){_0x462b65['clearZombieChannel'](_0x3af14b);}}};Preview[_0x325b('0xf')][_0x325b('0x65')]=function(_0x41b716){var _0x3f0d1a=this;rpcDb[_0x325b('0x7c')](_0x41b716['id'],ut[_0x325b('0x7d')](this[_0x325b('0x17')]))['then'](function(_0x3567e8){if(!_[_0x325b('0x66')](_0x3567e8)){for(var _0x14e7fa=0x0;_0x14e7fa<_0x3567e8[_0x325b('0x7e')];_0x14e7fa+=0x1){if(ut[_0x325b('0x7f')](_0x3567e8[_0x14e7fa][_0x325b('0x80')])<_0x41b716[_0x325b('0x81')]*0x3c){_0x3f0d1a[_0x325b('0x82')](_0x3567e8[_0x14e7fa]['id'])[_0x325b('0x83')](ut[_0x325b('0x84')](_0x325b('0x85')))[_0x325b('0x86')](ut['logger2']('[RecallMe]'));}else{var _0x1f9175=new Action(_0x3567e8[_0x14e7fa],_0x41b716);_0x1f9175[_0x325b('0x87')]=moment()[_0x325b('0x53')](_0x325b('0x88'));_0x41b716[_0x325b('0x40')]+=0x1;ut[_0x325b('0x89')](_0x1f9175,0x17,_0x325b('0x8a'));if(_0x41b716[_0x325b('0x8b')]){rpcDb[_0x325b('0x8c')](ut[_0x325b('0x8d')](_0x3567e8[_0x14e7fa]));rpcDb[_0x325b('0x8e')](_0x1f9175,_0x325b('0x8f'));}else{ut[_0x325b('0x89')](_0x1f9175,0x16,_0x325b('0x90'));rpcDb['createCustomerHistory'](_0x1f9175,'[HistoryRecallClose]');rpcDb[_0x325b('0x91')](_0x1f9175,_0x325b('0x92'));}}}}})[_0x325b('0x86')](ut[_0x325b('0x84')](_0x325b('0x93')));};Preview[_0x325b('0xf')][_0x325b('0x64')]=function(_0x89647b){_0x89647b[_0x325b('0x57')]=!![];if(ut[_0x325b('0x94')](_0x89647b['loggedIn'])){_0x89647b[_0x325b('0x4c')]=_0x325b('0x95');}else if(!ut[_0x325b('0x96')](_0x89647b['dialActive'])){_0x89647b[_0x325b('0x4c')]='NOT_ACTIVE';}else if(!this[_0x325b('0x97')](_0x89647b[_0x325b('0x4e')])){if(!this['isTrunkReachable'](_0x89647b[_0x325b('0x98')])){_0x89647b[_0x325b('0x4c')]=_0x325b('0x99');}else{_0x89647b[_0x325b('0x4c')]=_0x325b('0x9a');}}else{_0x89647b[_0x325b('0x4c')]=_0x325b('0x9a');}emitCampaignPreview(_0x89647b);};Preview['prototype'][_0x325b('0x9b')]=function(_0x4987ce,_0x3997aa,_0x4126f2){var _0x40a66d=this;var _0x1b3fb3=this[_0x325b('0x16')][_0x3997aa];var _0x5adb23=this[_0x325b('0x13')][_0x1b3fb3[_0x325b('0x6a')]];var _0x25be61;if(_0x5adb23){switch(_0x4126f2){case'1':_0x5adb23[_0x325b('0x3e')]+=0x1;_0x1b3fb3[_0x325b('0x9c')]=ut[_0x325b('0x9d')](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0x0,_0x325b('0x9e'));rpcDb['createCustomerHistory'](_0x1b3fb3,'[callProgressDetectingCustomer][logNoSuch]');if(ut[_0x325b('0x9d')](_0x1b3fb3)>=_0x5adb23[_0x325b('0x9f')]){_0x25be61=ut[_0x325b('0xa0')](_0x1b3fb3,0xf,_0x325b('0xa1'));rpcDb[_0x325b('0x91')](_0x25be61,_0x325b('0xa2'));}else{rpcDb[_0x325b('0x91')](_0x1b3fb3,_0x325b('0xa2'));}delete this['actions'][_0x4987ce[_0x325b('0xa3')]];break;case _0x325b('0xa4'):var _0x6f0af2=moment()[_0x325b('0x53')]('YYYY-MM-DD\x20HH:mm:ss');_0x1b3fb3[_0x325b('0xa5')]=_0x6f0af2;_0x1b3fb3['answertime']=_0x6f0af2;_0x1b3fb3[_0x325b('0x6c')]=!![];_0x5adb23[_0x325b('0x2b')]+=0x1;logger[_0x325b('0x67')](_0x325b('0xa6'),_0x1b3fb3[_0x325b('0xa7')],_0x325b('0xa8'),_0x5adb23[_0x325b('0x27')],'pTalking:\x20',_0x5adb23[_0x325b('0x2b')]);ami[_0x325b('0x25')](_0x325b('0xa9'),ut[_0x325b('0xaa')](_0x1b3fb3,_0x325b('0xab')));if(_0x5adb23[_0x325b('0xac')]){ami[_0x325b('0x25')](_0x325b('0xad'),ut[_0x325b('0xae')](_0x1b3fb3));}break;case'16':ami[_0x325b('0x25')]('custom:agentcomplete',ut[_0x325b('0xaa')](_0x1b3fb3,'complete'));emitVoiceQueueChannelRemove(ut['buildObj'](_0x1b3fb3,_0x325b('0xaf')));_0x5adb23['outboundAnswerCallsDay']+=0x1;_0x5adb23[_0x325b('0x2f')]+=0x1;_0x5adb23['answered']+=0x1;ut['decrementTalkink'](_0x5adb23,_0x325b('0xb0'));_0x1b3fb3[_0x325b('0x9c')]=ut[_0x325b('0x9d')](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0x4,'Answer');rpcDb['createCustomerHistory'](_0x1b3fb3,_0x325b('0xb1'));rpcDb[_0x325b('0x91')](_0x1b3fb3,_0x325b('0xb2'));rpcDb['crateCustomerReportQueue'](_0x1b3fb3);_0x5adb23[_0x325b('0x2c')]+=_0x1b3fb3[_0x325b('0xb3')];_0x5adb23[_0x325b('0xb4')]+=_0x1b3fb3['talktime'];logger[_0x325b('0x67')](_0x325b('0xb5'),_0x1b3fb3[_0x325b('0xa7')],_0x325b('0xa8'),_0x5adb23['name'],_0x325b('0x6b'),_0x5adb23['pTalking']);delete this[_0x325b('0x16')][_0x4987ce[_0x325b('0xa3')]];break;case _0x325b('0xb6'):_0x5adb23[_0x325b('0x38')]+=0x1;_0x1b3fb3[_0x325b('0xb7')]+=0x1;_0x1b3fb3[_0x325b('0x9c')]=ut[_0x325b('0x9d')](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0x5,'Busy');rpcDb[_0x325b('0x8e')](_0x1b3fb3,_0x325b('0xb8'));if(ut[_0x325b('0x9d')](_0x1b3fb3)>=_0x5adb23[_0x325b('0x9f')]){_0x25be61=ut[_0x325b('0xa0')](_0x1b3fb3,0xf,_0x325b('0xa1'));rpcDb[_0x325b('0x91')](_0x25be61,_0x325b('0xb9'));}else{if(_0x1b3fb3[_0x325b('0xb7')]>=_0x5adb23[_0x325b('0xba')]){rpcDb[_0x325b('0x91')](_0x1b3fb3,_0x325b('0xb8'));}else{rpcDb[_0x325b('0xbb')](ut[_0x325b('0xbc')](_0x1b3fb3,'countbusyretry',_0x5adb23[_0x325b('0xbd')]),_0x1b3fb3['unlockAgent'],_0x1b3fb3[_0x325b('0xbe')]);}}break;case _0x325b('0xbf'):_0x5adb23[_0x325b('0x3d')]+=0x1;_0x1b3fb3[_0x325b('0xc0')]+=0x1;_0x1b3fb3['countglobal']=ut[_0x325b('0x9d')](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0x3,_0x325b('0xc1'));rpcDb[_0x325b('0x8e')](_0x1b3fb3,_0x325b('0xc2'));if(ut[_0x325b('0x9d')](_0x1b3fb3)>=_0x5adb23['dialGlobalMaxRetry']){_0x25be61=ut[_0x325b('0xa0')](_0x1b3fb3,0xf,_0x325b('0xa1'));rpcDb[_0x325b('0x91')](_0x25be61,_0x325b('0xc3'));}else{if(_0x1b3fb3['countnoanswerretry']>=_0x5adb23[_0x325b('0xc4')]){rpcDb[_0x325b('0x91')](_0x1b3fb3,_0x325b('0xc2'));}else{rpcDb['rescheduleContact'](ut['scheduledAt'](_0x1b3fb3,_0x325b('0xc0'),_0x5adb23['dialNoAnswerRetryFrequency']),_0x1b3fb3[_0x325b('0xc5')],_0x1b3fb3['activeContact']);}}break;case _0x325b('0xc6'):_0x5adb23[_0x325b('0x39')]+=0x1;_0x1b3fb3[_0x325b('0xc7')]+=0x1;_0x1b3fb3['countglobal']=ut[_0x325b('0x9d')](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0x8,_0x325b('0xc8'));rpcDb[_0x325b('0x8e')](_0x1b3fb3,_0x325b('0xc9'));if(ut[_0x325b('0x9d')](_0x1b3fb3)>=_0x5adb23['dialGlobalMaxRetry']){_0x25be61=ut[_0x325b('0xa0')](_0x1b3fb3,0xf,_0x325b('0xa1'));rpcDb[_0x325b('0x91')](_0x25be61,_0x325b('0xca'));}else{if(_0x1b3fb3['countcongestionretry']>=_0x5adb23['dialCongestionMaxRetry']){rpcDb['createCustomerFinal'](_0x1b3fb3,_0x325b('0xc9'));}else{rpcDb[_0x325b('0xbb')](ut[_0x325b('0xbc')](_0x1b3fb3,_0x325b('0xc7'),_0x5adb23[_0x325b('0xbd')]),_0x1b3fb3['unlockAgent'],_0x1b3fb3[_0x325b('0xbe')]);}}break;case _0x325b('0xcb'):_0x5adb23[_0x325b('0x41')]+=0x1;_0x1b3fb3[_0x325b('0x9c')]=ut['totalGlobal'](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0x14,_0x325b('0xcc'));rpcDb[_0x325b('0x8e')](_0x1b3fb3,_0x325b('0xcd'));if(_0x1b3fb3['unlockAgent']){rpcDb['unlockContact'](_0x1b3fb3[_0x325b('0xce')]);}if(_0x1b3fb3['activeContact']){rpcDb[_0x325b('0xcf')](_0x1b3fb3[_0x325b('0xce')]);}break;default:if(_0x1b3fb3[_0x325b('0x6c')]){ut['decrementTalkink'](_0x5adb23,_0x325b('0xd0'));ut[_0x325b('0x77')](_0x325b('0xd1')+_0x5adb23[_0x325b('0x27')],_0x4987ce);}_0x5adb23[_0x325b('0x42')]+=0x1;_0x1b3fb3[_0x325b('0x9c')]=ut['totalGlobal'](_0x1b3fb3);ut[_0x325b('0x89')](_0x1b3fb3,0xc,_0x4987ce['cause-txt']||_0x4987ce[_0x325b('0xd2')]);rpcDb[_0x325b('0x8e')](_0x1b3fb3,_0x325b('0xd3'));if(ut[_0x325b('0x9d')](_0x1b3fb3)>=_0x5adb23['dialGlobalMaxRetry']){_0x25be61=ut[_0x325b('0xa0')](_0x1b3fb3,0xf,'Global');rpcDb[_0x325b('0x91')](_0x25be61,_0x325b('0xd4'));}else{rpcDb[_0x325b('0x91')](_0x1b3fb3,_0x325b('0xd4'));}delete this[_0x325b('0x16')][_0x4987ce['linkedid']];}if(!(_0x1b3fb3[_0x325b('0x6c')]&&_0x4126f2==='16')){ut[_0x325b('0xd5')](_0x5adb23,'[callProgressDetectingCustomer]');logger[_0x325b('0x67')]('[originated][decrement][callProgressDetectingCustomer]',_0x1b3fb3['uniqueid'],'\x20Queue',_0x5adb23['name'],_0x325b('0x69'),_0x5adb23['originated']);}if(_0x4126f2!==_0x325b('0xa4')){delete this[_0x325b('0x16')][_0x4987ce[_0x325b('0xa3')]];delete this[_0x325b('0x16')][_0x4987ce[_0x325b('0xd6')]];}}};Preview[_0x325b('0xf')][_0x325b('0xd7')]=function(_0x5e9dde,_0x2c139d,_0x447a20){if(_[_0x325b('0xd8')](_0x2c139d)&&'object'!==typeof _0x2c139d){return;}if(_[_0x325b('0xd8')](_0x447a20)&&_0x325b('0xd9')!==typeof _0x447a20){return;}switch(_0x447a20['reason']){case'0':ut[_0x325b('0xda')](_0x5e9dde,0x0,_0x325b('0x9e'));rpcDb['createAgentHistory'](_0x5e9dde,_0x325b('0xdb'));break;case'3':ut[_0x325b('0xda')](_0x5e9dde,0x3,'NoAnswer');rpcDb[_0x325b('0xdc')](_0x5e9dde,_0x325b('0xdd'));break;case'5':ut[_0x325b('0xda')](_0x5e9dde,0x5,_0x325b('0xde'));rpcDb[_0x325b('0xdc')](_0x5e9dde,_0x325b('0xdf'));break;case'8':ut[_0x325b('0xda')](_0x5e9dde,0x8,_0x325b('0xc8'));rpcDb[_0x325b('0xdc')](_0x5e9dde,_0x325b('0xe0'));break;case'22':ut[_0x325b('0xda')](_0x5e9dde,0x16,_0x325b('0xe1'));rpcDb['createAgentHistory'](_0x5e9dde,_0x325b('0xe2'));break;default:ut['logAgent'](_0x5e9dde,0xc,_0x447a20[_0x325b('0xe3')]);rpcDb[_0x325b('0xdc')](_0x5e9dde,_0x325b('0xe0'));}ut[_0x325b('0xd5')](_0x2c139d,_0x325b('0xe4'));logger[_0x325b('0x67')]('[originated][decrement][callProgressDetectingAgent]',_0x5e9dde[_0x325b('0xa7')],'\x20Queue',_0x2c139d[_0x325b('0x27')],_0x325b('0x69'),_0x2c139d[_0x325b('0x4d')]);delete this[_0x325b('0x16')][_0x5e9dde[_0x325b('0xa7')]];};Preview[_0x325b('0xf')][_0x325b('0xe5')]=function(_0x44183a,_0x69fc4f,_0x169268,_0x401116,_0x583954){var _0x8d874a=this;return new BPromise(function(_0x2100d2,_0x13f3d4){if(_[_0x325b('0x66')](_0x69fc4f)||_[_0x325b('0x66')](_0x69fc4f[_0x325b('0xe6')])||_[_0x325b('0x66')](_0x69fc4f[_0x325b('0xe6')][_0x325b('0xe7')])||_[_0x325b('0x66')](_0x69fc4f[_0x325b('0x70')])){_0x13f3d4(ut[_0x325b('0x4c')](_0x325b('0xe8'),_0x401116,_0x583954));return;}var _0x2511b1=uuid['v4']();var _0x17d580=_0x8d874a[_0x325b('0x13')][_0x69fc4f[_0x325b('0x68')]['name']];var _0x5acf24=_0x169268?_0x8d874a[_0x325b('0x17')][_0x169268]['id']:undefined;_0x8d874a['actions'][_0x2511b1]=new Action(_0x69fc4f,_0x17d580,_0x2511b1,_0x169268,_0x5acf24);var _0x2af219=_0x8d874a['actions'][_0x2511b1];_0x2af219[_0x325b('0xc5')]=_0x401116;_0x2af219['activeContact']=_0x583954;_0x2af219[_0x325b('0xe9')]=_0x169268;if(_['isEmpty'](_0x44183a)){_0x8d874a['execCall'](_0x2af219,_0x17d580,_0x69fc4f,_0x169268)[_0x325b('0x83')](function(_0x5813c9){logger[_0x325b('0x67')](_0x325b('0xea'),'Queue:\x20'+_0x2af219['queue']+'\x20IdHopper:\x20'+_0x2af219['idContact'],JSON[_0x325b('0x52')](_0x5813c9));ami[_0x325b('0x25')](_0x325b('0xeb'),ut[_0x325b('0xaa')](_0x2af219,_0x325b('0xec')));_0x2100d2(ut[_0x325b('0x4c')]('Calling'));})[_0x325b('0x86')](function(_0x3611df){ut[_0x325b('0x5a')](_0x325b('0xed'),_0x3611df);_0x13f3d4(ut[_0x325b('0x4c')](_0x325b('0xee'),_0x401116,_0x583954));});}else{_0x17d580[_0x325b('0xef')]+=0x1;ut[_0x325b('0xf0')](_0x2af219);rpcDb[_0x325b('0xf1')](_0x2af219,'[Blacklist][error]');delete _0x8d874a['actions'][_0x2511b1];_0x13f3d4(ut[_0x325b('0x4c')](_0x325b('0xf2'),_0x401116,_0x583954));}});};Preview[_0x325b('0xf')][_0x325b('0x97')]=function(_0x2ff795){return!_['isNil'](_0x2ff795)&&!_['isNil'](_0x2ff795['name'])&&!_[_0x325b('0x66')](_0x2ff795[_0x325b('0x4f')])&&_0x2ff795[_0x325b('0x4f')]&&!_[_0x325b('0x66')](this[_0x325b('0x15')][util['format'](_0x325b('0xf3'),_0x2ff795[_0x325b('0x27')])])&&!_['isNil'](this[_0x325b('0x15')][util[_0x325b('0x53')](_0x325b('0xf3'),_0x2ff795[_0x325b('0x27')])][_0x325b('0x72')])&&(this['trunks'][util[_0x325b('0x53')](_0x325b('0xf3'),_0x2ff795[_0x325b('0x27')])][_0x325b('0x72')]==='reachable'||this[_0x325b('0x15')][util[_0x325b('0x53')](_0x325b('0xf3'),_0x2ff795[_0x325b('0x27')])][_0x325b('0x72')]===_0x325b('0xf4'));};Preview[_0x325b('0xf')][_0x325b('0x82')]=function(_0x58c1ea,_0x277117){var _0x368e77=this;return new BPromise(function(_0x22f998,_0x1c7e36){_0x368e77[_0x325b('0xf5')](_0x58c1ea,_0x277117)['then'](function(_0x45d5f1){_0x22f998(_[_0x325b('0x6d')](_0x45d5f1,[_0x325b('0x4c')]));})[_0x325b('0x86')](function(_0x4d553a){if(_0x4d553a[_0x325b('0xf6')]){rpcDb[_0x325b('0xf7')](_0x58c1ea);}if(_0x4d553a[_0x325b('0x4f')]){rpcDb['disableContact'](_0x58c1ea);}_0x1c7e36(_[_0x325b('0x6d')](_0x4d553a,[_0x325b('0x4c')]));});});};Preview[_0x325b('0xf')][_0x325b('0xf5')]=function(_0x3a562e,_0x14a734){var _0x1726c6=this;return new BPromise(function(_0x4122db,_0x1ae8a1){var _0x15faa2,_0x2e3048;rpcDb[_0x325b('0xf8')](_0x3a562e)[_0x325b('0x83')](function(_0x2e5d4a){if(!_[_0x325b('0x66')](_0x2e5d4a[0x0])){_0x2e3048=_0x2e5d4a[0x0]['recallme']?![]:!![];_0x15faa2=_0x2e5d4a[0x0][_0x325b('0xf9')]?!![]:![];_0x15faa2=_0x14a734?!![]:_0x15faa2;}var _0x5cab41=_0x1726c6[_0x325b('0xfa')](_0x2e5d4a);if(_0x5cab41['isValid']){rpcDb[_0x325b('0xfb')](_[_0x325b('0x6d')](_0x2e5d4a[0x0],[_0x325b('0x70'),_0x325b('0xfc')]))[_0x325b('0x83')](function(_0xcc64f3){_0x1726c6[_0x325b('0xe5')](_0xcc64f3,_0x2e5d4a[0x0],_0x14a734,_0x2e3048,_0x15faa2)['then'](function(_0x201d0e){_0x4122db(_0x201d0e);})[_0x325b('0x86')](function(_0x1e6d46){_0x1ae8a1(_0x1e6d46);});})[_0x325b('0x86')](function(_0x38ab79){ut[_0x325b('0x5a')]('[Preview][checkIsBlackList]',_0x38ab79);_0x1ae8a1(ut[_0x325b('0x4c')](_0x325b('0xfd'),_0x2e3048,_0x15faa2));});}else{_0x1ae8a1(ut[_0x325b('0x4c')](_0x5cab41[_0x325b('0x4c')],_0x2e3048,_0x15faa2));}})[_0x325b('0x86')](function(_0x30d262){ut['logger'](_0x325b('0xfe'),_0x30d262);_0x1ae8a1(ut['message'](_0x325b('0xfd'),![],!![]));});});};Preview['prototype'][_0x325b('0xfa')]=function(_0x3e551b){if(_[_0x325b('0x66')](_0x3e551b)||_[_0x325b('0xff')](_0x3e551b)||!_[_0x325b('0x66')](_0x3e551b[0x0][_0x325b('0x100')])&&_['isNil'](_0x3e551b[0x0][_0x325b('0x100')]['name'])){ut[_0x325b('0x5a')](_0x325b('0x101'),_0x3e551b);return{'isValid':![],'message':_0x325b('0x102')};}var _0x463492=this[_0x325b('0x13')][_0x3e551b[0x0][_0x325b('0x68')][_0x325b('0x27')]];_0x463492['message']='ACTIVE';if(_[_0x325b('0x66')](_0x463492)){ut[_0x325b('0x5a')](_0x325b('0x103'),_0x463492);return{'isValid':![],'message':_0x325b('0x104')};}if(!this[_0x325b('0x97')](_0x463492['Trunk'])){ut[_0x325b('0x5a')](_0x325b('0x105'),'campaign\x20Name:\x20'+_0x463492['name']+_0x325b('0x106'));if(!this[_0x325b('0x97')](_0x463492[_0x325b('0x98')])){ut[_0x325b('0x5a')]('[Preview][validateContact][Trunk\x20not\x20work]',_0x463492[_0x325b('0x27')]+_0x325b('0x107'));return{'isValid':![],'message':_0x325b('0x108')};}}if(!ut[_0x325b('0x96')](_0x463492[_0x325b('0x33')])){ut[_0x325b('0x5a')](_0x325b('0x109'),_0x463492['name']+_0x325b('0x10a'));return{'isValid':![],'message':_0x325b('0x10b')+_0x463492[_0x325b('0x27')]+_0x325b('0x10a')};}return{'isValid':!![],'message':'Is\x20Valid'};};Preview[_0x325b('0xf')][_0x325b('0x10c')]=function(_0x3c12ee,_0x5488f4,_0x5e12da,_0x306795){var _0x7f7702=this;return new BPromise(function(_0xa74c21,_0x1bea98){var _0x55d41f=_0x3c12ee[_0x325b('0xa7')];var _0x1248d7=_0x7f7702[_0x325b('0x97')](_0x5488f4[_0x325b('0x4e')])?util[_0x325b('0x53')]('SIP/%s/%s%s',_0x5488f4[_0x325b('0x4e')][_0x325b('0x27')],_[_0x325b('0x66')](_0x5488f4[_0x325b('0x10d')])?'':_0x5488f4[_0x325b('0x10d')][_0x325b('0x10e')]()||'',_0x5488f4[_0x325b('0x10f')]>0x0?_0x5e12da['Contact'][_0x325b('0xe7')][_0x325b('0x110')](_0x5488f4[_0x325b('0x10f')]):_0x5e12da[_0x325b('0xe6')][_0x325b('0xe7')]):util['format'](_0x325b('0x111'),_[_0x325b('0x66')](_0x5488f4[_0x325b('0x98')])?_0x5488f4['Trunk'][_0x325b('0x27')]:_0x5488f4[_0x325b('0x98')][_0x325b('0x27')],_[_0x325b('0x66')](_0x5488f4[_0x325b('0x10d')])?'':_0x5488f4['dialPrefix']['trim']()||'',_0x5488f4[_0x325b('0x10f')]>0x0?_0x5e12da[_0x325b('0xe6')][_0x325b('0xe7')][_0x325b('0x110')](_0x5488f4[_0x325b('0x10f')]):_0x5e12da[_0x325b('0xe6')][_0x325b('0xe7')]);var _0x4995f8=_0x7f7702[_0x325b('0x97')](_0x5488f4[_0x325b('0x4e')])?ut['getCallerId'](_0x5488f4[_0x325b('0x4e')][_0x325b('0x50')],_0x5488f4[_0x325b('0x34')],_0x5488f4[_0x325b('0x112')]>0x0?ut[_0x325b('0x113')](_0x5488f4[_0x325b('0x35')],_0x5488f4[_0x325b('0x112')]):_0x5488f4['dialOriginateCallerIdNumber']):ut['getCallerId'](_[_0x325b('0x66')](_0x5488f4[_0x325b('0x98')])?_0x5488f4[_0x325b('0x4e')][_0x325b('0x50')]:_0x5488f4[_0x325b('0x98')][_0x325b('0x50')],_0x5488f4[_0x325b('0x34')],_0x5488f4[_0x325b('0x112')]>0x0?ut[_0x325b('0x113')](_0x5488f4[_0x325b('0x35')],_0x5488f4[_0x325b('0x112')]):_0x5488f4[_0x325b('0x35')]);if(_0x4995f8){_0x3c12ee[_0x325b('0x114')]=ut[_0x325b('0x115')](_0x4995f8);_0x3c12ee['originatecalleridnum']=ut[_0x325b('0x116')](_0x4995f8);}var _0x22799d=ut[_0x325b('0x117')](_0x5488f4,_0x5e12da,_0x1248d7,_0x4995f8,_0x55d41f,_0x3c12ee);_[_0x325b('0x118')](_0x3c12ee,ut['toLowerVariables'](_0x22799d));_0x3c12ee[_0x325b('0x87')]=moment()[_0x325b('0x53')](_0x325b('0x88'));ami[_0x325b('0x119')](ut[_0x325b('0x11a')](_0x3c12ee,_0x5488f4,_0x22799d,_0x3c12ee[_0x325b('0xbe')],_0x306795))[_0x325b('0x83')](function(_0x1acd20){_0x5488f4['originated']+=0x1;logger[_0x325b('0x67')](_0x325b('0x11b'),_0x55d41f,'\x20Queue',_0x5488f4[_0x325b('0x27')],_0x325b('0x69'),_0x5488f4[_0x325b('0x4d')]);_0xa74c21(_0x1acd20);})[_0x325b('0x86')](function(_0x17b10d){ut[_0x325b('0xda')](_0x3c12ee,0xe,_0x325b('0x11c'));rpcDb['createAgentHistory'](_0x3c12ee,'[originateFailure][logOriginateFailure]');_0x1bea98(_0x17b10d);});});};Preview['prototype'][_0x325b('0x21')]=function(_0x5b812a){if(this[_0x325b('0x16')][_0x5b812a[_0x325b('0xa3')]]){this[_0x325b('0x16')][_0x5b812a[_0x325b('0xa3')]]['channel']=_0x5b812a[_0x325b('0x73')];}};Preview[_0x325b('0xf')][_0x325b('0x19')]=function(_0x25cfa6){var _0x3fde7a=this;var _0x152e28=this['actions'][_0x25cfa6['actionid']];if(_0x152e28){if(_0x152e28[_0x325b('0xe9')]&&this['agents'][_0x152e28[_0x325b('0xe9')]]){ut[_0x325b('0x11d')](_0x152e28,this['agents'][_0x152e28[_0x325b('0xe9')]]['name'],this[_0x325b('0x17')][_0x152e28[_0x325b('0xe9')]]['id']);}var _0x1b7e7b=_[_0x325b('0x11e')](_0x152e28);_0x1b7e7b[_0x325b('0xa5')]=moment()[_0x325b('0x53')](_0x325b('0x88'));var _0x5c98ea=_0x3fde7a[_0x325b('0x13')][_0x152e28['queue']];if(ut[_0x325b('0x11f')](_0x25cfa6[_0x325b('0x120')])){if(_0x152e28[_0x325b('0xc5')]){rpcDb['unlockContact'](_0x152e28[_0x325b('0xce')]);}if(_0x152e28[_0x325b('0xbe')]){rpcDb[_0x325b('0xcf')](_0x152e28['idContact']);}ami[_0x325b('0x25')](_0x325b('0x121'),ut['buildObj'](_0x152e28,_0x325b('0x122')));this[_0x325b('0xd7')](_0x1b7e7b,_0x5c98ea,_0x25cfa6);}else{_0x152e28['starttime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');ut[_0x325b('0xda')](_0x1b7e7b,0x4,_0x325b('0x123'));rpcDb[_0x325b('0xdc')](_0x1b7e7b,'[callProgressDetectingAgent][logAnswer]');}}};Preview['prototype'][_0x325b('0x1b')]=function(_0x5cb961){var _0x359ffa=this;var _0x42de33=this['actions'][_0x5cb961[_0x325b('0xa3')]];var _0x51fd17;if(_0x42de33){_0x51fd17=this[_0x325b('0x13')][_0x42de33[_0x325b('0x6a')]];logger[_0x325b('0x67')]('[syncHangup][talking]',_0x5cb961[_0x325b('0xa3')],'\x20Queue',_0x51fd17[_0x325b('0x27')],_0x325b('0x6b'),_0x51fd17[_0x325b('0x2b')]);}if(this[_0x325b('0x16')][_0x5cb961['linkedid']]&&_0x5cb961[_0x325b('0xa3')]!==_0x5cb961[_0x325b('0xa7')]){if(_0x5cb961[_0x325b('0x124')]==='16'&&this[_0x325b('0x16')][_0x5cb961[_0x325b('0xa3')]][_0x325b('0x6c')]){this[_0x325b('0x9b')](_0x5cb961,_0x5cb961[_0x325b('0xa3')],_0x5cb961[_0x325b('0x124')]);}else if(this[_0x325b('0x16')][_0x5cb961[_0x325b('0xa3')]]['dialAnswer']){logger['info'](_0x325b('0x125'),_0x5cb961[_0x325b('0xa3')],_0x5cb961['cause'],_0x325b('0xa8'),_0x51fd17[_0x325b('0x27')],'pTalking:\x20',_0x51fd17[_0x325b('0x2b')]);this[_0x325b('0x9b')](_0x5cb961,_0x5cb961[_0x325b('0xa3')],_0x5cb961[_0x325b('0x124')]);}}else if(_0x42de33&&_[_0x325b('0x66')](_0x42de33['statedesc'])&&_0x51fd17['dialQueueProject']&&_0x5cb961[_0x325b('0xa3')]===_0x5cb961['uniqueid']&&_[_0x325b('0x66')](_0x5cb961[_0x325b('0xe3')])&&_0x5cb961[_0x325b('0x124')]==='16'&&_0x5cb961[_0x325b('0x126')]==='6'&&_['isUndefined'](_0x42de33['transfer'])){if(_0x42de33['unlockAgent']){rpcDb['unlockContact'](_0x42de33[_0x325b('0xce')]);}if(_0x42de33[_0x325b('0xbe')]){rpcDb[_0x325b('0xcf')](_0x42de33['idContact']);}_0x5cb961['reason']='22';this[_0x325b('0xd7')](_0x42de33,_0x51fd17,_0x5cb961);}else if(_0x42de33&&_0x42de33[_0x325b('0x127')]){if(_0x5cb961[_0x325b('0x124')]==='16'&&this[_0x325b('0x16')][_0x5cb961[_0x325b('0xa3')]][_0x325b('0x6c')]){logger['info']('[syncHangup][talking][transfer]',_0x5cb961['linkedid'],_0x5cb961[_0x325b('0x124')],_0x325b('0xa8'),_0x51fd17[_0x325b('0x27')],'pTalking:\x20',_0x51fd17[_0x325b('0x2b')]);this['callProgressDetectingCustomer'](_0x5cb961,_0x5cb961[_0x325b('0xa3')],_0x5cb961['cause']);}else if(this[_0x325b('0x16')][_0x5cb961['linkedid']][_0x325b('0x6c')]){logger['info'](_0x325b('0x125'),_0x5cb961[_0x325b('0xa3')],_0x5cb961[_0x325b('0x124')],'\x20Queue',_0x51fd17[_0x325b('0x27')],_0x325b('0x6b'),_0x51fd17['pTalking']);this[_0x325b('0x9b')](_0x5cb961,_0x5cb961[_0x325b('0xa3')],_0x5cb961['cause']);}}};Preview[_0x325b('0xf')]['syncDialEnd']=function(_0x37d2e3){if(this[_0x325b('0x16')][_0x37d2e3['destlinkedid']]&&_0x37d2e3[_0x325b('0xd6')]!==_0x37d2e3[_0x325b('0x128')]){this[_0x325b('0x9b')](_0x37d2e3,_0x37d2e3['destlinkedid'],_0x37d2e3[_0x325b('0xd2')]);}};Preview[_0x325b('0xf')][_0x325b('0x1d')]=function(_0x5abc68){if(this[_0x325b('0x16')][_0x5abc68[_0x325b('0xa3')]]&&_0x5abc68['linkedid']!==_0x5abc68[_0x325b('0xa7')]&&!this[_0x325b('0x16')][_0x5abc68[_0x325b('0xa3')]][_0x325b('0x6c')]){if(_0x5abc68[_0x325b('0x124')]==='1'){this['callProgressDetectingCustomer'](_0x5abc68,_0x5abc68['linkedid'],_0x5abc68[_0x325b('0x124')]);}}};Preview[_0x325b('0xf')][_0x325b('0x129')]=function(_0x2de3c8,_0xc3bb12,_0x4bfa34){if(this[_0x325b('0x16')][_0x2de3c8]){if(_[_0x325b('0x66')](this[_0x325b('0x16')][_0x2de3c8][_0x325b('0x12a')])){this[_0x325b('0x16')][_0x2de3c8][_0x325b('0x12a')]={};}this[_0x325b('0x16')][_0x2de3c8][_0x325b('0x12a')][_0xc3bb12]=_0x4bfa34;}};Preview[_0x325b('0xf')]['syncVarSet']=function(_0x36a69c){try{if(!_[_0x325b('0x66')](_0x36a69c)){if(ut[_0x325b('0x12b')](_[_0x325b('0x12c')](_0x36a69c[_0x325b('0x12d')])[0x0])){this[_0x325b('0x129')](_0x36a69c['uniqueid'],_[_0x325b('0x12c')](_0x36a69c[_0x325b('0x12d')])[0x0],_0x36a69c[_0x325b('0x12e')]);}}}catch(_0x47e784){logger[_0x325b('0x12f')](_0x325b('0x130'),util[_0x325b('0x131')](_0x47e784,{'showHidden':![],'depth':null}));}};Preview[_0x325b('0xf')][_0x325b('0x132')]=function(_0x377081){if(_0x377081){if(this[_0x325b('0x16')][_0x377081[_0x325b('0x133')]]){this['actions'][_0x377081[_0x325b('0x133')]][_0x325b('0x127')]=!![];}}};Preview[_0x325b('0xf')]['syncBlindTransfer']=function(_0x1559ac){if(_0x1559ac){if(this[_0x325b('0x16')][_0x1559ac['transfererlinkedid']]){this[_0x325b('0x16')][_0x1559ac['transfererlinkedid']][_0x325b('0x127')]=!![];}}};module[_0x325b('0x134')]=Preview;
\ No newline at end of file
+var _0x8ab0=['custom:agentcomplete','complete','[16]','Answer','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','countbusyretry','Busy','[callProgressDetectingCustomer][logBusy]','cloneAction','Global','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','rescheduleContact','scheduledAt','activeContact','NOANSWER','countnoanswerretry','NoAnswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','unlockAgent','countcongestionretry','Congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','CANCEL','unlockContact','disableContact','[default]','cause-txt','dialstatus','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','ANSWER','destlinkedid','callProgressDetectingAgent','object','isUndefined','logAgent','NoSuchNumber','[callProgressDetectingAgent][logNoSuch]','createAgentHistory','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','reason','checkInBlack','Contact','phone','Contact\x20is\x20undefined','Queue','lookAgent','isEmpty','execCall','[Preview][execCall][success]','Queue:\x20','\x20IdHopper:\x20','idContact','custom:agentcalled','called','Calling','logBlacklist','createHistory','[Blacklist][error]','SIP/%s','reachable','unmonitored','execRun','unlock','getContactPreview','recallme','validateContact','isValid','checkIsBlackList','Contact.phone','[Preview][getContactPreview]','Call\x20unsuccessful','Agent','[Preview][validateContact][Empty\x20Contact]','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','TrunkBackup','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','SIP/%s/%s%s','trim','dialCutDigit','substring','getCallerId','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','originatecalleridname','extractCalleridName','extractCalleridNumber','addVariables','merge','Action','variablesAction','[originated][increment]','OriginateError','[originateFailure][logOriginateFailure]','actionid','logLookAgent','clone','responsetime','response','rejected','[callProgressDetectingAgent][logAnswer]','syncHangup','cause','[syncHangup][talking][cause]','callProgressDetectingCustomer','channelstate','transfer','addVariable','variables','filterKey','keys','variable','error','[syncVarSet][Preview]','transfertargetlinkedid','exports','util','lodash','uuid','md5','../../../config/environment','../../../config/logger','preview','actionPreview','../ami','./action','defaults','redis','localhost','socket.io-emitter','prototype','enqueue','tail','finally','sequence','campaignsPreview','trunks','actions','agents','clockClearZombieChannels','originateresponse','hangup','bind','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','varset','syncAttendedTransfer','syncBlindTransfer','emit','outbound','name','answered','available','loggedIn','pTalking','sumBillable','sumDuration','talking','total','type','unmanaged','abandoned','waiting','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalLowerLimit','predictiveIntervalPauses','predictiveIntervalTotalCalls','message','originated','Trunk','active','callerid','Interval','stringify','voice:queue:%s','voice_queue:save','voice_queue_channel:remove','sendMessageOneNotActive','paused','NOT_ACTIVE','logger','\x20is\x20not\x20active','IS_DISACTIVED','loopCampaigns','syncCampaigns','booked','clearZombieChannels','hasOwnProperty','setMessage','recallMe','clearZombieChannel','isNil','info','[clearZombieChannels][talking]','queue','originated:\x20','pTalking:\x20','dialAnswer','pick','contactId','UserId','VoiceQueueId','ListId','status','channel','catch','No\x20such\x20channel','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','getContactRecallMe','agentReadyId','then','length','getDiff','dialRecallMeTimeout','run','logger2','[RecallMe]','starttime','format','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','dialRecallInQueue','createCustomerHistory','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','isActive','isTrunkReachable','TRUNK_IS_NOT_REACHABLE','ACTIVE','countglobal','totalGlobal','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','[callProgressDetectingCustomer][logNoSuchGlobal]','linkedid','answertime','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','buildObj','connect','acw','custom:agentConnectPreview','buildAcw'];(function(_0x6e1479,_0x3ad729){var _0x4c3ac4=function(_0x51b27a){while(--_0x51b27a){_0x6e1479['push'](_0x6e1479['shift']());}};_0x4c3ac4(++_0x3ad729);}(_0x8ab0,0x1b9));var _0x08ab=function(_0x3ab4e9,_0x2a8193){_0x3ab4e9=_0x3ab4e9-0x0;var _0x554b05=_0x8ab0[_0x3ab4e9];return _0x554b05;};'use strict';var util=require(_0x08ab('0x0'));var _=require(_0x08ab('0x1'));var BPromise=require('bluebird');var uuid=require(_0x08ab('0x2'));var moment=require('moment');var md5=require(_0x08ab('0x3'));var Redis=require('ioredis');var config=require(_0x08ab('0x4'));var logger=require(_0x08ab('0x5'))(_0x08ab('0x6'));var loggerAction=require(_0x08ab('0x5'))(_0x08ab('0x7'));var ami=require(_0x08ab('0x8'));var rpcDb=require('./rpcDb');var Action=require(_0x08ab('0x9'));var ut=require('./util/util');config['redis']=_[_0x08ab('0xa')](config[_0x08ab('0xb')],{'host':_0x08ab('0xc'),'port':0x18eb});var io=require(_0x08ab('0xd'))(new Redis(config[_0x08ab('0xb')]));var Sequence=function(){};Sequence[_0x08ab('0xe')][_0x08ab('0xf')]=function(_0x1784f5){this['tail']=this[_0x08ab('0x10')]?this[_0x08ab('0x10')][_0x08ab('0x11')](_0x1784f5):_0x1784f5();};function Preview(_0x8fe0d7){this[_0x08ab('0x12')]=new Sequence();this[_0x08ab('0x13')]=_0x8fe0d7['voiceQueues'];this['trunks']=_0x8fe0d7[_0x08ab('0x14')];this[_0x08ab('0x15')]={};this[_0x08ab('0x16')]=_0x8fe0d7[_0x08ab('0x16')];this[_0x08ab('0x17')]=0x0;ami['on'](_0x08ab('0x18'),this['syncOriginateResponse']['bind'](this));ami['on'](_0x08ab('0x19'),this['syncHangup'][_0x08ab('0x1a')](this));ami['on'](_0x08ab('0x1b'),this[_0x08ab('0x1c')][_0x08ab('0x1a')](this));ami['on'](_0x08ab('0x1d'),this[_0x08ab('0x1e')][_0x08ab('0x1a')](this));ami['on'](_0x08ab('0x1f'),this[_0x08ab('0x20')][_0x08ab('0x1a')](this));ami['on'](_0x08ab('0x21'),this['syncVarSet'][_0x08ab('0x1a')](this));ami['on']('attendedtransfer',this[_0x08ab('0x22')][_0x08ab('0x1a')](this));ami['on']('blindtransfer',this[_0x08ab('0x23')][_0x08ab('0x1a')](this));this['loopCampaigns'](this['campaignsPreview']);}function emit(_0x57db4b,_0x3da7a9,_0x183721){io['to'](_0x57db4b)[_0x08ab('0x24')](_0x3da7a9,_0x183721);}function emitCampaignPreview(_0x12c1e1){if(_0x12c1e1['type']===_0x08ab('0x25')){var _0x52f772={'id':_0x12c1e1['id'],'name':_0x12c1e1[_0x08ab('0x26')],'strategy':_0x12c1e1['strategy'],'answered':_0x12c1e1[_0x08ab('0x27')],'available':_0x12c1e1[_0x08ab('0x28')],'loggedIn':_0x12c1e1[_0x08ab('0x29')],'pTalking':_0x12c1e1[_0x08ab('0x2a')],'sumBillable':_0x12c1e1[_0x08ab('0x2b')],'sumDuration':_0x12c1e1[_0x08ab('0x2c')],'sumHoldTime':_0x12c1e1['sumHoldTime']||0x0,'talking':_0x12c1e1[_0x08ab('0x2d')],'total':_0x12c1e1[_0x08ab('0x2e')],'type':_0x12c1e1[_0x08ab('0x2f')],'unmanaged':_0x12c1e1[_0x08ab('0x30')],'abandoned':_0x12c1e1[_0x08ab('0x31')],'waiting':_0x12c1e1[_0x08ab('0x32')],'loggedInDb':_0x12c1e1['loggedInDb'],'dialActive':_0x12c1e1[_0x08ab('0x33')],'dialMethod':_0x12c1e1[_0x08ab('0x34')],'dialOriginateCallerIdName':_0x12c1e1[_0x08ab('0x35')],'dialOriginateCallerIdNumber':_0x12c1e1[_0x08ab('0x36')],'dialOriginateTimeout':_0x12c1e1[_0x08ab('0x37')],'dialPrefix':_0x12c1e1[_0x08ab('0x38')],'outboundAnswerAgiCallsDay':_0x12c1e1[_0x08ab('0x39')],'outboundAnswerCallsDay':_0x12c1e1[_0x08ab('0x3a')],'outboundBlacklistCallsDay':_0x12c1e1[_0x08ab('0x3b')],'outboundBusyCallsDay':_0x12c1e1[_0x08ab('0x3c')],'outboundCongestionCallsDay':_0x12c1e1[_0x08ab('0x3d')],'outboundDropCallsDayACS':_0x12c1e1[_0x08ab('0x3e')],'outboundDropCallsDayCallersExit':_0x12c1e1['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x12c1e1[_0x08ab('0x3f')],'outboundNoAnswerCallsDay':_0x12c1e1[_0x08ab('0x40')],'outboundNoSuchCallsDay':_0x12c1e1['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x12c1e1[_0x08ab('0x41')],'outboundReCallsDay':_0x12c1e1[_0x08ab('0x42')],'outboundRejectCallsDay':_0x12c1e1[_0x08ab('0x43')],'outboundUnknownCallsDay':_0x12c1e1[_0x08ab('0x44')],'predictiveIntervalAnsweredCalls':_0x12c1e1[_0x08ab('0x45')],'predictiveIntervalAvgHoldtime':_0x12c1e1[_0x08ab('0x46')],'predictiveIntervalAvgTalktime':_0x12c1e1[_0x08ab('0x47')],'predictiveIntervalDroppedCallsCallersExit':_0x12c1e1[_0x08ab('0x48')],'predictiveIntervalDroppedCallsTimeout':_0x12c1e1[_0x08ab('0x49')],'predictiveIntervalErlangCalls':_0x12c1e1['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x12c1e1[_0x08ab('0x4a')],'predictiveIntervalHitRate':_0x12c1e1[_0x08ab('0x4b')],'predictiveIntervalLowerLimit':_0x12c1e1[_0x08ab('0x4c')],'predictiveIntervalMultiplicativeFactor':_0x12c1e1['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x12c1e1[_0x08ab('0x4d')],'predictiveIntervalTotalCalls':_0x12c1e1[_0x08ab('0x4e')],'message':_0x12c1e1[_0x08ab('0x4f')],'originated':_0x12c1e1[_0x08ab('0x50')]};if(_0x12c1e1[_0x08ab('0x51')]){_0x52f772[_0x08ab('0x51')]={'id':_0x12c1e1[_0x08ab('0x51')]['id'],'name':_0x12c1e1[_0x08ab('0x51')][_0x08ab('0x26')],'active':_0x12c1e1[_0x08ab('0x51')][_0x08ab('0x52')],'callerid':_0x12c1e1[_0x08ab('0x51')][_0x08ab('0x53')]};}if(_0x12c1e1[_0x08ab('0x54')]){_0x52f772['Interval']={'id':_0x12c1e1[_0x08ab('0x54')]['id'],'name':_0x12c1e1[_0x08ab('0x54')][_0x08ab('0x26')]};}var _0x153019=md5(JSON[_0x08ab('0x55')](_0x52f772));if(_0x12c1e1['md5']!==_0x153019){_0x12c1e1[_0x08ab('0x3')]=_0x153019;emit(util['format'](_0x08ab('0x56'),_0x52f772['name']),_0x08ab('0x57'),_0x52f772);}}}function emitVoiceQueueChannelRemove(_0x156d0b){emit(util['format'](_0x08ab('0x56'),_0x156d0b[_0x08ab('0x26')]),_0x08ab('0x58'),_0x156d0b);}function notSendMessagesQueue(_0x4dcab3){if(_0x4dcab3['sendMessageOneNotActive']){if(_0x4dcab3['originated']===0x0&&_0x4dcab3['pTalking']===0x0){_0x4dcab3[_0x08ab('0x59')]=![];_0x4dcab3[_0x08ab('0x28')]=0x0;_0x4dcab3[_0x08ab('0x5a')]=0x0;_0x4dcab3[_0x08ab('0x4f')]=_0x08ab('0x5b');ut[_0x08ab('0x5c')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x4dcab3[_0x08ab('0x26')]+_0x08ab('0x5d'));}else{_0x4dcab3[_0x08ab('0x4f')]=_0x08ab('0x5e');ut[_0x08ab('0x5c')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x4dcab3[_0x08ab('0x26')]+'\x20is\x20disactive');}emitCampaignPreview(_0x4dcab3);}}Preview[_0x08ab('0xe')][_0x08ab('0x5f')]=function(){var _0x5a66f3=this;setInterval(function(){_0x5a66f3[_0x08ab('0x60')]();},0x7cf);};Preview[_0x08ab('0xe')][_0x08ab('0x60')]=function(){var _0x3e9648=this[_0x08ab('0x13')];this[_0x08ab('0x17')]+=0x1;for(var _0xa440eb in _0x3e9648){if(_0x3e9648['hasOwnProperty'](_0xa440eb)&&(_0x3e9648[_0xa440eb][_0x08ab('0x34')]===_0x08ab('0x6')||_0x3e9648[_0xa440eb][_0x08ab('0x34')]===_0x08ab('0x61'))&&_0x3e9648[_0xa440eb][_0x08ab('0x2f')]===_0x08ab('0x25')){if(this['clockClearZombieChannels']>0x7){this['clockClearZombieChannels']=0x0;this[_0x08ab('0x62')]();}}if(_0x3e9648[_0x08ab('0x63')](_0xa440eb)&&_0x3e9648[_0xa440eb][_0x08ab('0x34')]===_0x08ab('0x6')&&_0x3e9648[_0xa440eb][_0x08ab('0x2f')]===_0x08ab('0x25')){if(_0x3e9648[_0xa440eb][_0x08ab('0x33')]){this[_0x08ab('0x64')](_0x3e9648[_0xa440eb]);this[_0x08ab('0x65')](_0x3e9648[_0xa440eb]);}else{notSendMessagesQueue(_0x3e9648[_0xa440eb]);}}}};Preview[_0x08ab('0xe')][_0x08ab('0x66')]=function(_0x5d89cd){var _0x3f44a4=this;this['sequence']['enqueue'](function(){if(!_[_0x08ab('0x67')](_0x3f44a4[_0x08ab('0x15')][_0x5d89cd])){loggerAction[_0x08ab('0x68')](_0x08ab('0x69'),_0x5d89cd,'Queue',_0x3f44a4[_0x08ab('0x15')][_0x5d89cd][_0x08ab('0x6a')],_0x08ab('0x6b'),JSON[_0x08ab('0x55')](_0x3f44a4[_0x08ab('0x13')][_0x3f44a4[_0x08ab('0x15')][_0x5d89cd][_0x08ab('0x6a')]]['originated']),_0x08ab('0x6c'),JSON['stringify'](_0x3f44a4[_0x08ab('0x13')][_0x3f44a4['actions'][_0x5d89cd][_0x08ab('0x6a')]]['pTalking']),JSON['stringify'](_0x3f44a4[_0x08ab('0x15')][_0x5d89cd][_0x08ab('0x6d')]),JSON[_0x08ab('0x55')](_[_0x08ab('0x6e')](_0x3f44a4[_0x08ab('0x15')][_0x5d89cd],[_0x08ab('0x6f'),_0x08ab('0x70'),_0x08ab('0x71'),_0x08ab('0x72')])));return ami['Action']({'action':_0x08ab('0x73'),'channel':_0x3f44a4['actions'][_0x5d89cd][_0x08ab('0x74')]})[_0x08ab('0x75')](function(_0x165cca){if(_0x165cca[_0x08ab('0x4f')]===_0x08ab('0x76')){setTimeout(function(){if(_0x3f44a4[_0x08ab('0x15')][_0x5d89cd]){ut[_0x08ab('0x77')](_0x3f44a4[_0x08ab('0x13')][_0x3f44a4[_0x08ab('0x15')][_0x5d89cd]['queue']],_0x08ab('0x78'));if(_0x3f44a4[_0x08ab('0x15')][_0x5d89cd][_0x08ab('0x6d')]===!![]){ut[_0x08ab('0x79')](_0x3f44a4[_0x08ab('0x13')][_0x3f44a4[_0x08ab('0x15')][_0x5d89cd]['queue']],_0x08ab('0x78'));ut[_0x08ab('0x7a')](_0x08ab('0x7b')+_0x5d89cd,_0x3f44a4['actions'][_0x5d89cd][_0x08ab('0x6a')]);}ut[_0x08ab('0x7a')](_0x08ab('0x7c')+_0x5d89cd,_0x3f44a4[_0x08ab('0x15')][_0x5d89cd][_0x08ab('0x6a')]);delete _0x3f44a4[_0x08ab('0x15')][_0x5d89cd];}},0x2328);}});}});};Preview[_0x08ab('0xe')][_0x08ab('0x62')]=function(){var _0x532ff6=this;loggerAction['info'](_0x08ab('0x7d'),_['size'](this['actions']));for(var _0x2046eb in this['actions']){if(_0x532ff6[_0x08ab('0x15')][_0x08ab('0x63')](_0x2046eb)){_0x532ff6[_0x08ab('0x66')](_0x2046eb);}}};Preview[_0x08ab('0xe')][_0x08ab('0x65')]=function(_0x5b0d61){var _0x5e35a3=this;rpcDb[_0x08ab('0x7e')](_0x5b0d61['id'],ut[_0x08ab('0x7f')](this[_0x08ab('0x16')]))[_0x08ab('0x80')](function(_0xe4c56a){if(!_[_0x08ab('0x67')](_0xe4c56a)){for(var _0xc18807=0x0;_0xc18807<_0xe4c56a[_0x08ab('0x81')];_0xc18807+=0x1){if(ut[_0x08ab('0x82')](_0xe4c56a[_0xc18807]['scheduledat'])<_0x5b0d61[_0x08ab('0x83')]*0x3c){_0x5e35a3[_0x08ab('0x84')](_0xe4c56a[_0xc18807]['id'])[_0x08ab('0x80')](ut[_0x08ab('0x85')](_0x08ab('0x86')))[_0x08ab('0x75')](ut[_0x08ab('0x85')](_0x08ab('0x86')));}else{var _0x53b6a5=new Action(_0xe4c56a[_0xc18807],_0x5b0d61);_0x53b6a5[_0x08ab('0x87')]=moment()[_0x08ab('0x88')](_0x08ab('0x89'));_0x5b0d61['outboundReCallsDay']+=0x1;ut[_0x08ab('0x8a')](_0x53b6a5,0x17,_0x08ab('0x8b'));if(_0x5b0d61[_0x08ab('0x8c')]){rpcDb['rescheduleContactInQueue'](ut['createBody'](_0xe4c56a[_0xc18807]));rpcDb[_0x08ab('0x8d')](_0x53b6a5,'[HistoryDialRecallInQueue][historyCatch]');}else{ut[_0x08ab('0x8a')](_0x53b6a5,0x16,_0x08ab('0x8e'));rpcDb[_0x08ab('0x8d')](_0x53b6a5,_0x08ab('0x8f'));rpcDb[_0x08ab('0x90')](_0x53b6a5,_0x08ab('0x8f'));}}}}})[_0x08ab('0x75')](ut[_0x08ab('0x85')]('[getContactRecallMe]'));};Preview[_0x08ab('0xe')][_0x08ab('0x64')]=function(_0x54c7fe){_0x54c7fe['sendMessageOneNotActive']=!![];if(ut['IsNotLoggedIn'](_0x54c7fe[_0x08ab('0x29')])){_0x54c7fe[_0x08ab('0x4f')]='AGENTS_NOT_LOGGED';}else if(!ut[_0x08ab('0x91')](_0x54c7fe[_0x08ab('0x33')])){_0x54c7fe['message']='NOT_ACTIVE';}else if(!this[_0x08ab('0x92')](_0x54c7fe[_0x08ab('0x51')])){if(!this['isTrunkReachable'](_0x54c7fe['TrunkBackup'])){_0x54c7fe['message']=_0x08ab('0x93');}else{_0x54c7fe[_0x08ab('0x4f')]='ACTIVE';}}else{_0x54c7fe[_0x08ab('0x4f')]=_0x08ab('0x94');}emitCampaignPreview(_0x54c7fe);};Preview[_0x08ab('0xe')]['callProgressDetectingCustomer']=function(_0xb9c8ad,_0x194ee6,_0x365a9d){var _0x4ae362=this;var _0x539ca3=this['actions'][_0x194ee6];var _0x354045=this[_0x08ab('0x13')][_0x539ca3[_0x08ab('0x6a')]];var _0x2623e0;if(_0x354045){switch(_0x365a9d){case'1':_0x354045['outboundNoSuchCallsDay']+=0x1;_0x539ca3[_0x08ab('0x95')]=ut[_0x08ab('0x96')](_0x539ca3);ut[_0x08ab('0x8a')](_0x539ca3,0x0,'NoSuchNumber');rpcDb[_0x08ab('0x8d')](_0x539ca3,_0x08ab('0x97'));if(ut['totalGlobal'](_0x539ca3)>=_0x354045[_0x08ab('0x98')]){_0x2623e0=ut['cloneAction'](_0x539ca3,0xf,'Global');rpcDb['createCustomerFinal'](_0x2623e0,_0x08ab('0x99'));}else{rpcDb[_0x08ab('0x90')](_0x539ca3,_0x08ab('0x99'));}delete this[_0x08ab('0x15')][_0xb9c8ad[_0x08ab('0x9a')]];break;case'ANSWER':var _0x29116b=moment()[_0x08ab('0x88')](_0x08ab('0x89'));_0x539ca3['responsetime']=_0x29116b;_0x539ca3[_0x08ab('0x9b')]=_0x29116b;_0x539ca3[_0x08ab('0x6d')]=!![];_0x354045[_0x08ab('0x2a')]+=0x1;logger[_0x08ab('0x68')](_0x08ab('0x9c'),_0x539ca3[_0x08ab('0x9d')],_0x08ab('0x9e'),_0x354045[_0x08ab('0x26')],_0x08ab('0x6c'),_0x354045[_0x08ab('0x2a')]);ami['emit'](_0x08ab('0x9f'),ut[_0x08ab('0xa0')](_0x539ca3,_0x08ab('0xa1')));if(_0x354045[_0x08ab('0xa2')]){ami[_0x08ab('0x24')](_0x08ab('0xa3'),ut[_0x08ab('0xa4')](_0x539ca3));}break;case'16':ami['emit'](_0x08ab('0xa5'),ut[_0x08ab('0xa0')](_0x539ca3,_0x08ab('0xa6')));emitVoiceQueueChannelRemove(ut['buildObj'](_0x539ca3,_0x08ab('0xa6')));_0x354045['outboundAnswerCallsDay']+=0x1;_0x354045[_0x08ab('0x2e')]+=0x1;_0x354045[_0x08ab('0x27')]+=0x1;ut[_0x08ab('0x79')](_0x354045,_0x08ab('0xa7'));_0x539ca3[_0x08ab('0x95')]=ut[_0x08ab('0x96')](_0x539ca3);ut[_0x08ab('0x8a')](_0x539ca3,0x4,_0x08ab('0xa8'));rpcDb[_0x08ab('0x8d')](_0x539ca3,_0x08ab('0xa9'));rpcDb['createCustomerFinal'](_0x539ca3,_0x08ab('0xaa'));rpcDb[_0x08ab('0xab')](_0x539ca3);_0x354045[_0x08ab('0x2c')]+=_0x539ca3[_0x08ab('0xac')];_0x354045[_0x08ab('0x2b')]+=_0x539ca3[_0x08ab('0xac')];logger['info'](_0x08ab('0xad'),_0x539ca3[_0x08ab('0x9d')],_0x08ab('0x9e'),_0x354045[_0x08ab('0x26')],_0x08ab('0x6c'),_0x354045[_0x08ab('0x2a')]);delete this[_0x08ab('0x15')][_0xb9c8ad[_0x08ab('0x9a')]];break;case'BUSY':_0x354045[_0x08ab('0x3c')]+=0x1;_0x539ca3[_0x08ab('0xae')]+=0x1;_0x539ca3[_0x08ab('0x95')]=ut['totalGlobal'](_0x539ca3);ut[_0x08ab('0x8a')](_0x539ca3,0x5,_0x08ab('0xaf'));rpcDb[_0x08ab('0x8d')](_0x539ca3,_0x08ab('0xb0'));if(ut[_0x08ab('0x96')](_0x539ca3)>=_0x354045[_0x08ab('0x98')]){_0x2623e0=ut[_0x08ab('0xb1')](_0x539ca3,0xf,_0x08ab('0xb2'));rpcDb['createCustomerFinal'](_0x2623e0,_0x08ab('0xb3'));}else{if(_0x539ca3[_0x08ab('0xae')]>=_0x354045[_0x08ab('0xb4')]){rpcDb[_0x08ab('0x90')](_0x539ca3,_0x08ab('0xb0'));}else{rpcDb[_0x08ab('0xb5')](ut[_0x08ab('0xb6')](_0x539ca3,_0x08ab('0xae'),_0x354045['dialBusyRetryFrequency']),_0x539ca3['unlockAgent'],_0x539ca3[_0x08ab('0xb7')]);}}break;case _0x08ab('0xb8'):_0x354045['outboundNoAnswerCallsDay']+=0x1;_0x539ca3[_0x08ab('0xb9')]+=0x1;_0x539ca3[_0x08ab('0x95')]=ut[_0x08ab('0x96')](_0x539ca3);ut[_0x08ab('0x8a')](_0x539ca3,0x3,_0x08ab('0xba'));rpcDb[_0x08ab('0x8d')](_0x539ca3,_0x08ab('0xbb'));if(ut[_0x08ab('0x96')](_0x539ca3)>=_0x354045['dialGlobalMaxRetry']){_0x2623e0=ut[_0x08ab('0xb1')](_0x539ca3,0xf,'Global');rpcDb['createCustomerFinal'](_0x2623e0,_0x08ab('0xbc'));}else{if(_0x539ca3[_0x08ab('0xb9')]>=_0x354045[_0x08ab('0xbd')]){rpcDb[_0x08ab('0x90')](_0x539ca3,_0x08ab('0xbb'));}else{rpcDb['rescheduleContact'](ut[_0x08ab('0xb6')](_0x539ca3,_0x08ab('0xb9'),_0x354045[_0x08ab('0xbe')]),_0x539ca3[_0x08ab('0xbf')],_0x539ca3['activeContact']);}}break;case'CONGESTION':_0x354045['outboundCongestionCallsDay']+=0x1;_0x539ca3[_0x08ab('0xc0')]+=0x1;_0x539ca3['countglobal']=ut['totalGlobal'](_0x539ca3);ut[_0x08ab('0x8a')](_0x539ca3,0x8,_0x08ab('0xc1'));rpcDb['createCustomerHistory'](_0x539ca3,_0x08ab('0xc2'));if(ut[_0x08ab('0x96')](_0x539ca3)>=_0x354045[_0x08ab('0x98')]){_0x2623e0=ut[_0x08ab('0xb1')](_0x539ca3,0xf,_0x08ab('0xb2'));rpcDb['createCustomerFinal'](_0x2623e0,_0x08ab('0xc3'));}else{if(_0x539ca3[_0x08ab('0xc0')]>=_0x354045[_0x08ab('0xc4')]){rpcDb[_0x08ab('0x90')](_0x539ca3,_0x08ab('0xc2'));}else{rpcDb[_0x08ab('0xb5')](ut[_0x08ab('0xb6')](_0x539ca3,_0x08ab('0xc0'),_0x354045['dialBusyRetryFrequency']),_0x539ca3['unlockAgent'],_0x539ca3[_0x08ab('0xb7')]);}}break;case _0x08ab('0xc5'):_0x354045['outboundRejectCallsDay']+=0x1;_0x539ca3[_0x08ab('0x95')]=ut[_0x08ab('0x96')](_0x539ca3);ut['logCustomer'](_0x539ca3,0x14,'AgentReject');rpcDb[_0x08ab('0x8d')](_0x539ca3,'[syncHangupRequest][logAgentReject]');if(_0x539ca3[_0x08ab('0xbf')]){rpcDb[_0x08ab('0xc6')](_0x539ca3['idContact']);}if(_0x539ca3[_0x08ab('0xb7')]){rpcDb[_0x08ab('0xc7')](_0x539ca3['idContact']);}break;default:if(_0x539ca3['dialAnswer']){ut[_0x08ab('0x79')](_0x354045,_0x08ab('0xc8'));ut[_0x08ab('0x7a')]('[Dialer][decrementTalkink][no\x20Hangup][Preview]'+_0x354045[_0x08ab('0x26')],_0xb9c8ad);}_0x354045[_0x08ab('0x44')]+=0x1;_0x539ca3[_0x08ab('0x95')]=ut[_0x08ab('0x96')](_0x539ca3);ut[_0x08ab('0x8a')](_0x539ca3,0xc,_0xb9c8ad[_0x08ab('0xc9')]||_0xb9c8ad[_0x08ab('0xca')]);rpcDb[_0x08ab('0x8d')](_0x539ca3,_0x08ab('0xcb'));if(ut['totalGlobal'](_0x539ca3)>=_0x354045[_0x08ab('0x98')]){_0x2623e0=ut[_0x08ab('0xb1')](_0x539ca3,0xf,_0x08ab('0xb2'));rpcDb[_0x08ab('0x90')](_0x2623e0,_0x08ab('0xcc'));}else{rpcDb[_0x08ab('0x90')](_0x539ca3,'[callProgressDetectingCustomer][logUnknownGlobal]');}delete this[_0x08ab('0x15')][_0xb9c8ad[_0x08ab('0x9a')]];}if(!(_0x539ca3[_0x08ab('0x6d')]&&_0x365a9d==='16')){ut[_0x08ab('0x77')](_0x354045,_0x08ab('0xcd'));logger[_0x08ab('0x68')](_0x08ab('0xce'),_0x539ca3[_0x08ab('0x9d')],_0x08ab('0x9e'),_0x354045['name'],_0x08ab('0x6b'),_0x354045[_0x08ab('0x50')]);}if(_0x365a9d!==_0x08ab('0xcf')){delete this[_0x08ab('0x15')][_0xb9c8ad[_0x08ab('0x9a')]];delete this[_0x08ab('0x15')][_0xb9c8ad[_0x08ab('0xd0')]];}}};Preview['prototype'][_0x08ab('0xd1')]=function(_0x172ede,_0xde6d53,_0x2f373f){if(_['isUndefined'](_0xde6d53)&&_0x08ab('0xd2')!==typeof _0xde6d53){return;}if(_[_0x08ab('0xd3')](_0x2f373f)&&_0x08ab('0xd2')!==typeof _0x2f373f){return;}switch(_0x2f373f['reason']){case'0':ut[_0x08ab('0xd4')](_0x172ede,0x0,_0x08ab('0xd5'));rpcDb['createAgentHistory'](_0x172ede,_0x08ab('0xd6'));break;case'3':ut[_0x08ab('0xd4')](_0x172ede,0x3,_0x08ab('0xba'));rpcDb[_0x08ab('0xd7')](_0x172ede,'[callProgressDetectingAgent][logNoAnswer]');break;case'5':ut[_0x08ab('0xd4')](_0x172ede,0x5,_0x08ab('0xaf'));rpcDb[_0x08ab('0xd7')](_0x172ede,_0x08ab('0xd8'));break;case'8':ut[_0x08ab('0xd4')](_0x172ede,0x8,'Congestion');rpcDb[_0x08ab('0xd7')](_0x172ede,_0x08ab('0xd9'));break;case'22':ut[_0x08ab('0xd4')](_0x172ede,0x16,_0x08ab('0xda'));rpcDb['createAgentHistory'](_0x172ede,_0x08ab('0xdb'));break;default:ut['logAgent'](_0x172ede,0xc,_0x2f373f[_0x08ab('0xdc')]);rpcDb[_0x08ab('0xd7')](_0x172ede,'[callProgressDetectingAgent][logCongestion]');}ut[_0x08ab('0x77')](_0xde6d53,'[callProgressDetectingAgent]');logger[_0x08ab('0x68')]('[originated][decrement][callProgressDetectingAgent]',_0x172ede['uniqueid'],_0x08ab('0x9e'),_0xde6d53[_0x08ab('0x26')],'originated:\x20',_0xde6d53[_0x08ab('0x50')]);delete this[_0x08ab('0x15')][_0x172ede[_0x08ab('0x9d')]];};Preview['prototype'][_0x08ab('0xdd')]=function(_0x2a8733,_0x139cca,_0x14b07b,_0x31053e,_0x1cb5d3){var _0x1ed0d6=this;return new BPromise(function(_0x43df3d,_0x1f0b0f){if(_[_0x08ab('0x67')](_0x139cca)||_[_0x08ab('0x67')](_0x139cca['Contact'])||_[_0x08ab('0x67')](_0x139cca[_0x08ab('0xde')][_0x08ab('0xdf')])||_[_0x08ab('0x67')](_0x139cca[_0x08ab('0x71')])){_0x1f0b0f(ut[_0x08ab('0x4f')](_0x08ab('0xe0'),_0x31053e,_0x1cb5d3));return;}var _0x28fad7=uuid['v4']();var _0x5d3424=_0x1ed0d6['campaignsPreview'][_0x139cca[_0x08ab('0xe1')]['name']];var _0x573b2c=_0x14b07b?_0x1ed0d6[_0x08ab('0x16')][_0x14b07b]['id']:undefined;_0x1ed0d6['actions'][_0x28fad7]=new Action(_0x139cca,_0x5d3424,_0x28fad7,_0x14b07b,_0x573b2c);var _0x3847ef=_0x1ed0d6[_0x08ab('0x15')][_0x28fad7];_0x3847ef[_0x08ab('0xbf')]=_0x31053e;_0x3847ef['activeContact']=_0x1cb5d3;_0x3847ef[_0x08ab('0xe2')]=_0x14b07b;if(_[_0x08ab('0xe3')](_0x2a8733)){_0x1ed0d6[_0x08ab('0xe4')](_0x3847ef,_0x5d3424,_0x139cca,_0x14b07b)['then'](function(_0x510f72){logger[_0x08ab('0x68')](_0x08ab('0xe5'),_0x08ab('0xe6')+_0x3847ef[_0x08ab('0x6a')]+_0x08ab('0xe7')+_0x3847ef[_0x08ab('0xe8')],JSON[_0x08ab('0x55')](_0x510f72));ami['emit'](_0x08ab('0xe9'),ut[_0x08ab('0xa0')](_0x3847ef,_0x08ab('0xea')));_0x43df3d(ut[_0x08ab('0x4f')](_0x08ab('0xeb')));})['catch'](function(_0x3d8564){ut['logger']('[Preview][execCall][failure]',_0x3d8564);_0x1f0b0f(ut[_0x08ab('0x4f')]('Call\x20failed',_0x31053e,_0x1cb5d3));});}else{_0x5d3424[_0x08ab('0x3b')]+=0x1;ut[_0x08ab('0xec')](_0x3847ef);rpcDb[_0x08ab('0xed')](_0x3847ef,_0x08ab('0xee'));delete _0x1ed0d6['actions'][_0x28fad7];_0x1f0b0f(ut[_0x08ab('0x4f')]('Contact\x20in\x20black\x20List',_0x31053e,_0x1cb5d3));}});};Preview[_0x08ab('0xe')][_0x08ab('0x92')]=function(_0x13da2a){return!_[_0x08ab('0x67')](_0x13da2a)&&!_['isNil'](_0x13da2a[_0x08ab('0x26')])&&!_[_0x08ab('0x67')](_0x13da2a[_0x08ab('0x52')])&&_0x13da2a[_0x08ab('0x52')]&&!_['isNil'](this[_0x08ab('0x14')][util['format'](_0x08ab('0xef'),_0x13da2a['name'])])&&!_[_0x08ab('0x67')](this[_0x08ab('0x14')][util[_0x08ab('0x88')](_0x08ab('0xef'),_0x13da2a[_0x08ab('0x26')])][_0x08ab('0x73')])&&(this['trunks'][util[_0x08ab('0x88')](_0x08ab('0xef'),_0x13da2a[_0x08ab('0x26')])][_0x08ab('0x73')]===_0x08ab('0xf0')||this['trunks'][util['format'](_0x08ab('0xef'),_0x13da2a[_0x08ab('0x26')])][_0x08ab('0x73')]===_0x08ab('0xf1'));};Preview[_0x08ab('0xe')]['run']=function(_0x14ae7c,_0x3579b2){var _0xdcabf4=this;return new BPromise(function(_0x91e5cd,_0x499ca1){_0xdcabf4[_0x08ab('0xf2')](_0x14ae7c,_0x3579b2)[_0x08ab('0x80')](function(_0x4e0d8e){_0x91e5cd(_[_0x08ab('0x6e')](_0x4e0d8e,['message']));})[_0x08ab('0x75')](function(_0x39413a){if(_0x39413a[_0x08ab('0xf3')]){rpcDb[_0x08ab('0xc6')](_0x14ae7c);}if(_0x39413a['active']){rpcDb[_0x08ab('0xc7')](_0x14ae7c);}_0x499ca1(_[_0x08ab('0x6e')](_0x39413a,['message']));});});};Preview['prototype'][_0x08ab('0xf2')]=function(_0x4368e4,_0x27bdc9){var _0x3276a4=this;return new BPromise(function(_0x4b07e0,_0x28c1e9){var _0x385edb,_0x3fd8f2;rpcDb[_0x08ab('0xf4')](_0x4368e4)[_0x08ab('0x80')](function(_0x46d7bd){if(!_[_0x08ab('0x67')](_0x46d7bd[0x0])){_0x3fd8f2=_0x46d7bd[0x0][_0x08ab('0xf5')]?![]:!![];_0x385edb=_0x46d7bd[0x0][_0x08ab('0xf5')]?!![]:![];_0x385edb=_0x27bdc9?!![]:_0x385edb;}var _0x671d18=_0x3276a4[_0x08ab('0xf6')](_0x46d7bd);if(_0x671d18[_0x08ab('0xf7')]){rpcDb[_0x08ab('0xf8')](_[_0x08ab('0x6e')](_0x46d7bd[0x0],['VoiceQueueId',_0x08ab('0xf9')]))[_0x08ab('0x80')](function(_0x33529d){_0x3276a4[_0x08ab('0xdd')](_0x33529d,_0x46d7bd[0x0],_0x27bdc9,_0x3fd8f2,_0x385edb)[_0x08ab('0x80')](function(_0x32d353){_0x4b07e0(_0x32d353);})[_0x08ab('0x75')](function(_0x11de98){_0x28c1e9(_0x11de98);});})[_0x08ab('0x75')](function(_0xe00d6){ut['logger']('[Preview][checkIsBlackList]',_0xe00d6);_0x28c1e9(ut[_0x08ab('0x4f')]('Call\x20unsuccessful',_0x3fd8f2,_0x385edb));});}else{_0x28c1e9(ut['message'](_0x671d18['message'],_0x3fd8f2,_0x385edb));}})[_0x08ab('0x75')](function(_0x12cd8f){ut[_0x08ab('0x5c')](_0x08ab('0xfa'),_0x12cd8f);_0x28c1e9(ut[_0x08ab('0x4f')](_0x08ab('0xfb'),![],!![]));});});};Preview[_0x08ab('0xe')][_0x08ab('0xf6')]=function(_0x3b8e28){if(_[_0x08ab('0x67')](_0x3b8e28)||_[_0x08ab('0xe3')](_0x3b8e28)||!_[_0x08ab('0x67')](_0x3b8e28[0x0][_0x08ab('0xfc')])&&_[_0x08ab('0x67')](_0x3b8e28[0x0][_0x08ab('0xfc')][_0x08ab('0x26')])){ut[_0x08ab('0x5c')](_0x08ab('0xfd'),_0x3b8e28);return{'isValid':![],'message':'Empty\x20Contact'};}var _0x114f08=this[_0x08ab('0x13')][_0x3b8e28[0x0]['Queue'][_0x08ab('0x26')]];_0x114f08[_0x08ab('0x4f')]=_0x08ab('0x94');if(_[_0x08ab('0x67')](_0x114f08)){ut[_0x08ab('0x5c')](_0x08ab('0xfe'),_0x114f08);return{'isValid':![],'message':_0x08ab('0xff')};}if(!this[_0x08ab('0x92')](_0x114f08['Trunk'])){ut['logger'](_0x08ab('0x100'),_0x08ab('0x101')+_0x114f08[_0x08ab('0x26')]+_0x08ab('0x102'));if(!this[_0x08ab('0x92')](_0x114f08[_0x08ab('0x103')])){ut[_0x08ab('0x5c')](_0x08ab('0x100'),_0x114f08[_0x08ab('0x26')]+_0x08ab('0x104'));return{'isValid':![],'message':_0x08ab('0x105')};}}if(!ut['isActive'](_0x114f08[_0x08ab('0x33')])){ut[_0x08ab('0x5c')](_0x08ab('0x106'),_0x114f08['name']+_0x08ab('0x107'));return{'isValid':![],'message':_0x08ab('0x101')+_0x114f08[_0x08ab('0x26')]+'\x20Not\x20Active'};}return{'isValid':!![],'message':'Is\x20Valid'};};Preview[_0x08ab('0xe')][_0x08ab('0xe4')]=function(_0x35112e,_0x244ad2,_0x2c0687,_0xc6f96){var _0x3cc3dc=this;return new BPromise(function(_0x3cc067,_0x85a0c5){var _0x4f00b9=_0x35112e['uniqueid'];var _0xab34f8=_0x3cc3dc['isTrunkReachable'](_0x244ad2[_0x08ab('0x51')])?util[_0x08ab('0x88')](_0x08ab('0x108'),_0x244ad2[_0x08ab('0x51')][_0x08ab('0x26')],_[_0x08ab('0x67')](_0x244ad2[_0x08ab('0x38')])?'':_0x244ad2[_0x08ab('0x38')][_0x08ab('0x109')]()||'',_0x244ad2[_0x08ab('0x10a')]>0x0?_0x2c0687[_0x08ab('0xde')]['phone'][_0x08ab('0x10b')](_0x244ad2['dialCutDigit']):_0x2c0687[_0x08ab('0xde')][_0x08ab('0xdf')]):util[_0x08ab('0x88')]('SIP/%s/%s%s',_[_0x08ab('0x67')](_0x244ad2[_0x08ab('0x103')])?_0x244ad2[_0x08ab('0x51')][_0x08ab('0x26')]:_0x244ad2['TrunkBackup'][_0x08ab('0x26')],_['isNil'](_0x244ad2['dialPrefix'])?'':_0x244ad2[_0x08ab('0x38')][_0x08ab('0x109')]()||'',_0x244ad2[_0x08ab('0x10a')]>0x0?_0x2c0687['Contact']['phone'][_0x08ab('0x10b')](_0x244ad2[_0x08ab('0x10a')]):_0x2c0687[_0x08ab('0xde')][_0x08ab('0xdf')]);var _0x13c2cf=_0x3cc3dc['isTrunkReachable'](_0x244ad2['Trunk'])?ut[_0x08ab('0x10c')](_0x244ad2['Trunk']['callerid'],_0x244ad2['dialOriginateCallerIdName'],_0x244ad2['dialRandomLastDigitCallerIdNumber']>0x0?ut['getCallerIdRandom'](_0x244ad2['dialOriginateCallerIdNumber'],_0x244ad2['dialRandomLastDigitCallerIdNumber']):_0x244ad2['dialOriginateCallerIdNumber']):ut[_0x08ab('0x10c')](_[_0x08ab('0x67')](_0x244ad2[_0x08ab('0x103')])?_0x244ad2[_0x08ab('0x51')]['callerid']:_0x244ad2[_0x08ab('0x103')]['callerid'],_0x244ad2[_0x08ab('0x35')],_0x244ad2[_0x08ab('0x10d')]>0x0?ut[_0x08ab('0x10e')](_0x244ad2[_0x08ab('0x36')],_0x244ad2[_0x08ab('0x10d')]):_0x244ad2[_0x08ab('0x36')]);if(_0x13c2cf){_0x35112e[_0x08ab('0x10f')]=ut[_0x08ab('0x110')](_0x13c2cf);_0x35112e['originatecalleridnum']=ut[_0x08ab('0x111')](_0x13c2cf);}var _0x1c3aa5=ut[_0x08ab('0x112')](_0x244ad2,_0x2c0687,_0xab34f8,_0x13c2cf,_0x4f00b9,_0x35112e);_[_0x08ab('0x113')](_0x35112e,ut['toLowerVariables'](_0x1c3aa5));_0x35112e[_0x08ab('0x87')]=moment()[_0x08ab('0x88')](_0x08ab('0x89'));ami[_0x08ab('0x114')](ut[_0x08ab('0x115')](_0x35112e,_0x244ad2,_0x1c3aa5,_0x35112e['activeContact'],_0xc6f96))[_0x08ab('0x80')](function(_0x3b1091){_0x244ad2[_0x08ab('0x50')]+=0x1;logger['info'](_0x08ab('0x116'),_0x4f00b9,_0x08ab('0x9e'),_0x244ad2['name'],'originated:\x20',_0x244ad2[_0x08ab('0x50')]);_0x3cc067(_0x3b1091);})[_0x08ab('0x75')](function(_0x1ee5c1){ut[_0x08ab('0xd4')](_0x35112e,0xe,_0x08ab('0x117'));rpcDb[_0x08ab('0xd7')](_0x35112e,_0x08ab('0x118'));_0x85a0c5(_0x1ee5c1);});});};Preview[_0x08ab('0xe')][_0x08ab('0x20')]=function(_0x3eeb3e){if(this[_0x08ab('0x15')][_0x3eeb3e['linkedid']]){this['actions'][_0x3eeb3e['linkedid']][_0x08ab('0x74')]=_0x3eeb3e[_0x08ab('0x74')];}};Preview['prototype']['syncOriginateResponse']=function(_0x149975){var _0x1370ab=this;var _0x267dd1=this[_0x08ab('0x15')][_0x149975[_0x08ab('0x119')]];if(_0x267dd1){if(_0x267dd1[_0x08ab('0xe2')]&&this[_0x08ab('0x16')][_0x267dd1[_0x08ab('0xe2')]]){ut[_0x08ab('0x11a')](_0x267dd1,this[_0x08ab('0x16')][_0x267dd1['lookAgent']][_0x08ab('0x26')],this[_0x08ab('0x16')][_0x267dd1['lookAgent']]['id']);}var _0x2784fa=_[_0x08ab('0x11b')](_0x267dd1);_0x2784fa[_0x08ab('0x11c')]=moment()[_0x08ab('0x88')]('YYYY-MM-DD\x20HH:mm:ss');var _0xef7777=_0x1370ab[_0x08ab('0x13')][_0x267dd1['queue']];if(ut['isFailure'](_0x149975[_0x08ab('0x11d')])){if(_0x267dd1['unlockAgent']){rpcDb[_0x08ab('0xc6')](_0x267dd1[_0x08ab('0xe8')]);}if(_0x267dd1[_0x08ab('0xb7')]){rpcDb[_0x08ab('0xc7')](_0x267dd1[_0x08ab('0xe8')]);}ami[_0x08ab('0x24')]('custom:agentringnoanswer',ut[_0x08ab('0xa0')](_0x267dd1,_0x08ab('0x11e')));this[_0x08ab('0xd1')](_0x2784fa,_0xef7777,_0x149975);}else{_0x267dd1[_0x08ab('0x87')]=moment()[_0x08ab('0x88')](_0x08ab('0x89'));ut[_0x08ab('0xd4')](_0x2784fa,0x4,'Answer');rpcDb[_0x08ab('0xd7')](_0x2784fa,_0x08ab('0x11f'));}}};Preview[_0x08ab('0xe')][_0x08ab('0x120')]=function(_0x166278){var _0x5a7902=this;var _0x145bd2=this[_0x08ab('0x15')][_0x166278['linkedid']];var _0xc88ee;if(_0x145bd2){_0xc88ee=this['campaignsPreview'][_0x145bd2[_0x08ab('0x6a')]];logger[_0x08ab('0x68')]('[syncHangup][talking]',_0x166278[_0x08ab('0x9a')],'\x20Queue',_0xc88ee[_0x08ab('0x26')],_0x08ab('0x6c'),_0xc88ee[_0x08ab('0x2a')]);}if(this['actions'][_0x166278[_0x08ab('0x9a')]]&&_0x166278[_0x08ab('0x9a')]!==_0x166278[_0x08ab('0x9d')]){if(_0x166278[_0x08ab('0x121')]==='16'&&this[_0x08ab('0x15')][_0x166278['linkedid']]['dialAnswer']){this['callProgressDetectingCustomer'](_0x166278,_0x166278[_0x08ab('0x9a')],_0x166278['cause']);}else if(this[_0x08ab('0x15')][_0x166278[_0x08ab('0x9a')]][_0x08ab('0x6d')]){logger['info'](_0x08ab('0x122'),_0x166278['linkedid'],_0x166278[_0x08ab('0x121')],_0x08ab('0x9e'),_0xc88ee[_0x08ab('0x26')],_0x08ab('0x6c'),_0xc88ee[_0x08ab('0x2a')]);this[_0x08ab('0x123')](_0x166278,_0x166278[_0x08ab('0x9a')],_0x166278['cause']);}}else if(_0x145bd2&&_[_0x08ab('0x67')](_0x145bd2['statedesc'])&&_0xc88ee['dialQueueProject']&&_0x166278['linkedid']===_0x166278[_0x08ab('0x9d')]&&_['isNil'](_0x166278[_0x08ab('0xdc')])&&_0x166278[_0x08ab('0x121')]==='16'&&_0x166278[_0x08ab('0x124')]==='6'&&_[_0x08ab('0xd3')](_0x145bd2[_0x08ab('0x125')])){if(_0x145bd2['unlockAgent']){rpcDb[_0x08ab('0xc6')](_0x145bd2[_0x08ab('0xe8')]);}if(_0x145bd2[_0x08ab('0xb7')]){rpcDb[_0x08ab('0xc7')](_0x145bd2[_0x08ab('0xe8')]);}_0x166278[_0x08ab('0xdc')]='22';this[_0x08ab('0xd1')](_0x145bd2,_0xc88ee,_0x166278);}else if(_0x145bd2&&_0x145bd2[_0x08ab('0x125')]){if(_0x166278[_0x08ab('0x121')]==='16'&&this[_0x08ab('0x15')][_0x166278[_0x08ab('0x9a')]][_0x08ab('0x6d')]){logger['info']('[syncHangup][talking][transfer]',_0x166278[_0x08ab('0x9a')],_0x166278['cause'],_0x08ab('0x9e'),_0xc88ee[_0x08ab('0x26')],'pTalking:\x20',_0xc88ee[_0x08ab('0x2a')]);this[_0x08ab('0x123')](_0x166278,_0x166278[_0x08ab('0x9a')],_0x166278[_0x08ab('0x121')]);}else if(this[_0x08ab('0x15')][_0x166278[_0x08ab('0x9a')]]['dialAnswer']){logger[_0x08ab('0x68')]('[syncHangup][talking][cause]',_0x166278['linkedid'],_0x166278['cause'],'\x20Queue',_0xc88ee[_0x08ab('0x26')],_0x08ab('0x6c'),_0xc88ee[_0x08ab('0x2a')]);this[_0x08ab('0x123')](_0x166278,_0x166278[_0x08ab('0x9a')],_0x166278[_0x08ab('0x121')]);}}};Preview['prototype'][_0x08ab('0x1e')]=function(_0x2b417c){if(this[_0x08ab('0x15')][_0x2b417c[_0x08ab('0xd0')]]&&_0x2b417c[_0x08ab('0xd0')]!==_0x2b417c['destuniqueid']){this[_0x08ab('0x123')](_0x2b417c,_0x2b417c[_0x08ab('0xd0')],_0x2b417c['dialstatus']);}};Preview[_0x08ab('0xe')]['syncHangupRequest']=function(_0x41e191){if(this['actions'][_0x41e191[_0x08ab('0x9a')]]&&_0x41e191['linkedid']!==_0x41e191[_0x08ab('0x9d')]&&!this[_0x08ab('0x15')][_0x41e191['linkedid']][_0x08ab('0x6d')]){if(_0x41e191['cause']==='1'){this[_0x08ab('0x123')](_0x41e191,_0x41e191['linkedid'],_0x41e191[_0x08ab('0x121')]);}}};Preview[_0x08ab('0xe')][_0x08ab('0x126')]=function(_0x33c41c,_0x401de9,_0x5c2276){if(this[_0x08ab('0x15')][_0x33c41c]){if(_[_0x08ab('0x67')](this[_0x08ab('0x15')][_0x33c41c][_0x08ab('0x127')])){this[_0x08ab('0x15')][_0x33c41c][_0x08ab('0x127')]={};}this[_0x08ab('0x15')][_0x33c41c][_0x08ab('0x127')][_0x401de9]=_0x5c2276;}};Preview[_0x08ab('0xe')]['syncVarSet']=function(_0x1b9c41){try{if(!_[_0x08ab('0x67')](_0x1b9c41)){if(ut[_0x08ab('0x128')](_[_0x08ab('0x129')](_0x1b9c41[_0x08ab('0x12a')])[0x0])){this[_0x08ab('0x126')](_0x1b9c41[_0x08ab('0x9d')],_[_0x08ab('0x129')](_0x1b9c41[_0x08ab('0x12a')])[0x0],_0x1b9c41['value']);}}}catch(_0x2956e1){logger[_0x08ab('0x12b')](_0x08ab('0x12c'),util['inspect'](_0x2956e1,{'showHidden':![],'depth':null}));}};Preview['prototype']['syncAttendedTransfer']=function(_0x13154d){if(_0x13154d){if(this[_0x08ab('0x15')][_0x13154d[_0x08ab('0x12d')]]){this[_0x08ab('0x15')][_0x13154d['transfertargetlinkedid']][_0x08ab('0x125')]=!![];}}};Preview['prototype'][_0x08ab('0x23')]=function(_0x52aa62){if(_0x52aa62){if(this[_0x08ab('0x15')][_0x52aa62['transfererlinkedid']]){this['actions'][_0x52aa62['transfererlinkedid']][_0x08ab('0x125')]=!![];}}};module[_0x08ab('0x12e')]=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3b9=['createCustomerHistory','createCustomerFinal','rescheduleContact','active','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','answertime','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt','connectedlinename','membername','context','from-sip','holdtime','assigned','lastAssignedTo','queuecallerexitreason','COMPLETED','create','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','util','bluebird','../../../config/logger','preview','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/voiceQueueRt','../rpc/agentReportPreview','error','inspect','resolve','then','createHistory','catch','[createHistory]\x20','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory'];(function(_0x5bf19e,_0x18e9ad){var _0x8304bb=function(_0x23071b){while(--_0x23071b){_0x5bf19e['push'](_0x5bf19e['shift']());}};_0x8304bb(++_0x18e9ad);}(_0xb3b9,0x172));var _0x9b3b=function(_0x25e683,_0x2a7c01){_0x25e683=_0x25e683-0x0;var _0x3eb72f=_0xb3b9[_0x25e683];return _0x3eb72f;};'use strict';var util=require(_0x9b3b('0x0'));var BPromise=require(_0x9b3b('0x1'));var logger=require(_0x9b3b('0x2'))(_0x9b3b('0x3'));var _=require('lodash');var cmHopper=require(_0x9b3b('0x4'));var cmHopperFinal=require(_0x9b3b('0x5'));var cmHopperHistory=require(_0x9b3b('0x6'));var cmHopperBlack=require('../rpc/cmHopperBlack');var voiceQueueRt=require(_0x9b3b('0x7'));var agentReportPreview=require(_0x9b3b('0x8'));var voiceQueueReport=require('../rpc/voiceQueueReport');function loggerCatch(_0x4cfebc){return function(_0x333c66){logger[_0x9b3b('0x9')](_0x4cfebc,util[_0x9b3b('0xa')](_0x333c66,{'showHidden':![],'depth':null}));};}function create(_0x10ffe4){return BPromise[_0x9b3b('0xb')]()[_0x9b3b('0xc')](cmHopperHistory[_0x9b3b('0xd')](_0x10ffe4))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0xf')));}function createAgent(_0x19eb16){return BPromise[_0x9b3b('0xb')]()['then'](agentReportPreview['createHistory'](_0x19eb16))[_0x9b3b('0xe')](loggerCatch('[createHistory]\x20'));}function moveContact(_0x549f66){return BPromise[_0x9b3b('0xb')]()[_0x9b3b('0xc')](cmHopper['moveContactManagedDialer'](_0x549f66,!![]))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x10')));}exports['checkIsBlackList']=function(_0x41fb11){return BPromise[_0x9b3b('0xb')]()[_0x9b3b('0xc')](cmHopperBlack[_0x9b3b('0x11')](_0x41fb11))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x12')));};exports[_0x9b3b('0x13')]=function(_0xcad2d3){return BPromise[_0x9b3b('0xb')]()[_0x9b3b('0xc')](cmHopper[_0x9b3b('0x13')](_0xcad2d3))['catch'](loggerCatch(_0x9b3b('0x14')));};exports[_0x9b3b('0xd')]=function(_0x4a8afd,_0x32148b){create(_0x4a8afd)['catch'](loggerCatch(_0x32148b));moveContact(_0x4a8afd)[_0x9b3b('0xe')](loggerCatch(_0x32148b));};exports[_0x9b3b('0x15')]=function(_0x2d3223,_0x42add0){createAgent(_0x2d3223)['catch'](loggerCatch(_0x42add0));};exports[_0x9b3b('0x16')]=function(_0x163b99,_0x51de70){create(_0x163b99)[_0x9b3b('0xe')](loggerCatch(_0x51de70));};exports[_0x9b3b('0x17')]=function(_0x7b285b,_0x4c8ab3){moveContact(_0x7b285b)['catch'](loggerCatch(_0x4c8ab3));};exports[_0x9b3b('0x18')]=function(_0x2217e5,_0x3d4693,_0x4f6813){if(_0x3d4693){_0x2217e5['UserId']=null;}if(_0x4f6813){_0x2217e5[_0x9b3b('0x19')]=![];}return BPromise['resolve']()[_0x9b3b('0xc')](cmHopper['rescheduleContact'](_0x2217e5))['catch'](loggerCatch('[rescheduleContact]\x20'));};exports[_0x9b3b('0x1a')]=function(_0x301692){return BPromise[_0x9b3b('0xb')]()['then'](cmHopper[_0x9b3b('0x1a')](_0x301692))['catch'](loggerCatch(_0x9b3b('0x1b')));};exports[_0x9b3b('0x1c')]=function(_0x22c739){return BPromise[_0x9b3b('0xb')]()[_0x9b3b('0xc')](cmHopper[_0x9b3b('0x1c')]({'UserId':null},_0x22c739,0x1))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x1d')));};exports['disableContact']=function(_0x4fdfe8){return BPromise[_0x9b3b('0xb')]()[_0x9b3b('0xc')](cmHopper[_0x9b3b('0x1c')]({'active':![]},_0x4fdfe8,0x1))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x1e')));};exports[_0x9b3b('0x1f')]=function(_0x388a52){var _0x33160f={};_0x33160f[_0x9b3b('0x20')]=_0x388a52[_0x9b3b('0x20')];_0x33160f[_0x9b3b('0x21')]=_0x388a52[_0x9b3b('0x21')];_0x33160f[_0x9b3b('0x22')]=_0x388a52[_0x9b3b('0x22')];_0x33160f['calleridname']=_0x388a52[_0x9b3b('0x23')];_0x33160f[_0x9b3b('0x24')]=_0x388a52[_0x9b3b('0x24')];_0x33160f['queuecallerjoinAt']=_0x388a52[_0x9b3b('0x25')];_0x33160f[_0x9b3b('0x26')]=_0x388a52['answertime'];_0x33160f[_0x9b3b('0x27')]=0x1;_0x33160f[_0x9b3b('0x28')]=_0x388a52['endtime'];_0x33160f[_0x9b3b('0x29')]=_0x388a52[_0x9b3b('0x2a')];_0x33160f[_0x9b3b('0x2b')]=_0x9b3b('0x2c');_0x33160f['exten']='xcally-motion-preview';_0x33160f[_0x9b3b('0x2d')]=0x0;_0x33160f[_0x9b3b('0x2e')]=0x1;_0x33160f[_0x9b3b('0x2f')]=_0x388a52[_0x9b3b('0x2a')];_0x33160f[_0x9b3b('0x30')]=_0x9b3b('0x31');return BPromise['resolve']()[_0x9b3b('0xc')](voiceQueueReport[_0x9b3b('0x32')](_0x33160f))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x33')));};exports['getContactRecallMe']=function(_0xfb2b4f,_0x342235){return BPromise['resolve']()[_0x9b3b('0xc')](cmHopper[_0x9b3b('0x34')](_0xfb2b4f,_0x342235))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x35')));};exports[_0x9b3b('0x36')]=function(_0x494072){return BPromise['resolve']()['then'](cmHopper[_0x9b3b('0x18')](_0x494072,!![],!![]))[_0x9b3b('0xe')](loggerCatch(_0x9b3b('0x37')));};
\ No newline at end of file
+var _0xfd31=['../rpc/voiceQueueReport','error','inspect','then','createHistory','resolve','catch','[moveContactManagedDialer]\x20','checkIsBlackList','getContactPreview','[getContactPreview]\x20','createAgentHistory','rescheduleContact','active','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','context','from-sip','exten','xcally-motion-preview','holdtime','lastAssignedTo','membername','queuecallerexitreason','COMPLETED','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','util','../../../config/logger','preview','lodash','../rpc/cmHopper','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/agentReportPreview'];(function(_0x3238ea,_0x91809d){var _0x4aaac2=function(_0xc5b102){while(--_0xc5b102){_0x3238ea['push'](_0x3238ea['shift']());}};_0x4aaac2(++_0x91809d);}(_0xfd31,0x1b8));var _0x1fd3=function(_0x4ad5d9,_0x3f60e1){_0x4ad5d9=_0x4ad5d9-0x0;var _0x466093=_0xfd31[_0x4ad5d9];return _0x466093;};'use strict';var util=require(_0x1fd3('0x0'));var BPromise=require('bluebird');var logger=require(_0x1fd3('0x1'))(_0x1fd3('0x2'));var _=require(_0x1fd3('0x3'));var cmHopper=require(_0x1fd3('0x4'));var cmHopperFinal=require('../rpc/cmHopperFinal');var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require(_0x1fd3('0x5'));var voiceQueueRt=require(_0x1fd3('0x6'));var agentReportPreview=require(_0x1fd3('0x7'));var voiceQueueReport=require(_0x1fd3('0x8'));function loggerCatch(_0x560382){return function(_0x14594c){logger[_0x1fd3('0x9')](_0x560382,util[_0x1fd3('0xa')](_0x14594c,{'showHidden':![],'depth':null}));};}function create(_0x18cec6){return BPromise['resolve']()[_0x1fd3('0xb')](cmHopperHistory[_0x1fd3('0xc')](_0x18cec6))['catch'](loggerCatch('[createHistory]\x20'));}function createAgent(_0x57b13b){return BPromise[_0x1fd3('0xd')]()['then'](agentReportPreview[_0x1fd3('0xc')](_0x57b13b))[_0x1fd3('0xe')](loggerCatch('[createHistory]\x20'));}function moveContact(_0x3db15e){return BPromise[_0x1fd3('0xd')]()[_0x1fd3('0xb')](cmHopper['moveContactManagedDialer'](_0x3db15e,!![]))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0xf')));}exports[_0x1fd3('0x10')]=function(_0x1ec2e9){return BPromise[_0x1fd3('0xd')]()['then'](cmHopperBlack[_0x1fd3('0x10')](_0x1ec2e9))['catch'](loggerCatch('[checkIsBlackList]\x20'));};exports[_0x1fd3('0x11')]=function(_0x2c3f3e){return BPromise[_0x1fd3('0xd')]()[_0x1fd3('0xb')](cmHopper['getContactPreview'](_0x2c3f3e))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x12')));};exports[_0x1fd3('0xc')]=function(_0x449d56,_0x4e6ecf){create(_0x449d56)[_0x1fd3('0xe')](loggerCatch(_0x4e6ecf));moveContact(_0x449d56)['catch'](loggerCatch(_0x4e6ecf));};exports[_0x1fd3('0x13')]=function(_0x5185b2,_0x39c5e2){createAgent(_0x5185b2)['catch'](loggerCatch(_0x39c5e2));};exports['createCustomerHistory']=function(_0x87607a,_0x1f52da){create(_0x87607a)[_0x1fd3('0xe')](loggerCatch(_0x1f52da));};exports['createCustomerFinal']=function(_0x2664dd,_0x4941ce){moveContact(_0x2664dd)['catch'](loggerCatch(_0x4941ce));};exports[_0x1fd3('0x14')]=function(_0x5ead88,_0x50a898,_0x174cac){if(_0x50a898){_0x5ead88['UserId']=null;}if(_0x174cac){_0x5ead88[_0x1fd3('0x15')]=![];}return BPromise[_0x1fd3('0xd')]()[_0x1fd3('0xb')](cmHopper['rescheduleContact'](_0x5ead88))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x16')));};exports['countReScheduled']=function(_0x59988a){return BPromise[_0x1fd3('0xd')]()[_0x1fd3('0xb')](cmHopper[_0x1fd3('0x17')](_0x59988a))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x18')));};exports['unlockContact']=function(_0x39c641){return BPromise['resolve']()[_0x1fd3('0xb')](cmHopper[_0x1fd3('0x19')]({'UserId':null},_0x39c641,0x1))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x1a')));};exports[_0x1fd3('0x1b')]=function(_0x46d265){return BPromise['resolve']()[_0x1fd3('0xb')](cmHopper[_0x1fd3('0x19')]({'active':![]},_0x46d265,0x1))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x1c')));};exports[_0x1fd3('0x1d')]=function(_0x31833d){var _0x1fa073={};_0x1fa073[_0x1fd3('0x1e')]=_0x31833d[_0x1fd3('0x1e')];_0x1fa073[_0x1fd3('0x1f')]=_0x31833d['uniqueid'];_0x1fa073[_0x1fd3('0x20')]=_0x31833d[_0x1fd3('0x20')];_0x1fa073[_0x1fd3('0x21')]=_0x31833d[_0x1fd3('0x21')];_0x1fa073[_0x1fd3('0x22')]=_0x31833d[_0x1fd3('0x22')];_0x1fa073[_0x1fd3('0x23')]=_0x31833d[_0x1fd3('0x24')];_0x1fa073[_0x1fd3('0x25')]=_0x31833d[_0x1fd3('0x24')];_0x1fa073[_0x1fd3('0x26')]=0x1;_0x1fa073[_0x1fd3('0x27')]=_0x31833d[_0x1fd3('0x28')];_0x1fa073[_0x1fd3('0x29')]=_0x31833d['membername'];_0x1fa073[_0x1fd3('0x2a')]=_0x1fd3('0x2b');_0x1fa073[_0x1fd3('0x2c')]=_0x1fd3('0x2d');_0x1fa073[_0x1fd3('0x2e')]=0x0;_0x1fa073['assigned']=0x1;_0x1fa073[_0x1fd3('0x2f')]=_0x31833d[_0x1fd3('0x30')];_0x1fa073[_0x1fd3('0x31')]=_0x1fd3('0x32');return BPromise['resolve']()['then'](voiceQueueReport['create'](_0x1fa073))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x33')));};exports[_0x1fd3('0x34')]=function(_0x2c071c,_0x5e7605){return BPromise['resolve']()[_0x1fd3('0xb')](cmHopper[_0x1fd3('0x34')](_0x2c071c,_0x5e7605))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x35')));};exports[_0x1fd3('0x36')]=function(_0x5837e7){return BPromise['resolve']()[_0x1fd3('0xb')](cmHopper[_0x1fd3('0x14')](_0x5837e7,!![],!![]))[_0x1fd3('0xe')](loggerCatch(_0x1fd3('0x37')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cf7=['dialAnswer','countglobal','callback','callbackuniqueid','callbackat','xmd-voicequeueid','xmd-queue','xmd-listid','xmd-dialurl','xmd-dialoptions','xmd-dialchannel','xmd-cdrtype','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','extractCalleridName','extractCalleridNumber','match','util','lodash','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','inspect','logger','info','loggerError','error','logger2','message','getCallerId','string','isEmpty','isUndefined','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isNil','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','createdAt','updatedAt','%s%s','toUpper','toLowerVariables','toLower','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','starttime','endtime','logAgent','statedesc','responsetime','logLookAgent','membername','UserId','logCustomer','talktime','answertime','isFailure','Failure','RECALL','BOOKED','uniqueid','originate','channelAgent','xcally-motion-preview','timeout','countbusyretry','countcongestionretry','countnoanswerretry','Global','active','scheduledat','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','queue','buildAcw','interface','agentReadyId','not_inuse','reachable','push','getDiff','CampaignId','filterKey','idContact','type','campaigntype'];(function(_0x541a41,_0x1ac1ff){var _0x1e49ea=function(_0x12d70e){while(--_0x12d70e){_0x541a41['push'](_0x541a41['shift']());}};_0x1e49ea(++_0x1ac1ff);}(_0x9cf7,0xaa));var _0x79cf=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x9cf7[_0x5b644e];return _0x49c6bf;};'use strict';var util=require(_0x79cf('0x0'));var _=require(_0x79cf('0x1'));var moment=require('moment');var logger=require('../../../../config/logger')('preview');var ipAgi=process[_0x79cf('0x2')][_0x79cf('0x3')]||_0x79cf('0x4');function getSeconds(_0x134b1a,_0x38956d){var _0x1978c8=moment(_0x134b1a)[_0x79cf('0x5')](0x0);var _0x3ac347=moment(_0x38956d)[_0x79cf('0x5')](0x0);return _0x1978c8[_0x79cf('0x6')](_0x3ac347,_0x79cf('0x7'));}exports[_0x79cf('0x8')]=function(_0x161851){return function(_0x59398a){logger['error'](_0x161851,util[_0x79cf('0x9')](_0x59398a,{'showHidden':![],'depth':null}));};};exports[_0x79cf('0xa')]=function(_0x2d4611,_0x560fb6){logger[_0x79cf('0xb')](_0x2d4611,util[_0x79cf('0x9')](_0x560fb6,{'showHidden':![],'depth':null}));};exports[_0x79cf('0xc')]=function(_0x2a6b07,_0x2bb961){logger[_0x79cf('0xd')](_0x2a6b07,util[_0x79cf('0x9')](_0x2bb961,{'showHidden':![],'depth':null}));};exports[_0x79cf('0xe')]=function(_0x26fe6b){return function(_0x4e5adf){logger[_0x79cf('0xb')](_0x26fe6b,util[_0x79cf('0x9')](_0x4e5adf,{'showHidden':![],'depth':null}));};};exports[_0x79cf('0xf')]=function(_0x337575,_0x40e38a,_0x517f8f){return{'message':_0x337575,'unlock':_0x40e38a,'active':_0x517f8f};};exports[_0x79cf('0x10')]=function(_0x1d525e,_0x2d2363,_0x11bcce){if(!_['isUndefined'](_0x11bcce)&&_0x79cf('0x11')===typeof _0x11bcce&&!_[_0x79cf('0x12')](_0x11bcce)){if(!_[_0x79cf('0x13')](_0x2d2363)&&_0x79cf('0x11')===typeof _0x2d2363&&!_[_0x79cf('0x12')](_0x2d2363)){return util[_0x79cf('0x14')](_0x79cf('0x15'),_0x2d2363,_0x11bcce);}return util[_0x79cf('0x14')](_0x79cf('0x15'),_0x11bcce,_0x11bcce);}if(!_[_0x79cf('0x13')](_0x1d525e)&&_0x79cf('0x11')===typeof _0x1d525e&&!_[_0x79cf('0x12')](_0x1d525e)){return _0x1d525e;}return _0x79cf('0x16');};exports['isActive']=function(_0x18e8af){if(_[_0x79cf('0x17')](_0x18e8af)){return![];}return _0x18e8af;};exports[_0x79cf('0x18')]=function(_0x423e8c,_0x5e600b,_0x1efa21,_0x119873,_0x5f4721,_0x2aed06){var _0x2b85fd={'XMD-QUEUE':_0x5e600b[_0x79cf('0x19')]?_0x5e600b['Queue'][_0x79cf('0x1a')]:'','XMD-CALLERID':_0x119873,'XMD-CALLERID-PREVIEW':_0x2aed06?util[_0x79cf('0x14')](_0x79cf('0x15'),_0x2aed06[_0x79cf('0x1b')],_0x2aed06[_0x79cf('0x1c')]):_0x119873,'XMD-DIALID':_0x5f4721,'XMD-CONTACTID':_0x5e600b[_0x79cf('0x1d')],'XMD-CDRTYPE':_0x79cf('0x1e'),'CALLERID(all)':_0x119873,'XMD-VOICEQUEUEID':_0x5e600b[_0x79cf('0x1f')],'XMD-DIALCHANNEL':_0x1efa21,'XMD-DIALTIMEOUT':_0x423e8c[_0x79cf('0x20')]||0x1e,'XMD-DIALOPTIONS':util[_0x79cf('0x14')](_0x79cf('0x21'),_0x423e8c[_0x79cf('0x22')]?'g':'',_[_0x79cf('0x12')](_0x423e8c[_0x79cf('0x23')])?'':_0x79cf('0x24')),'XMD-DIALURL':_0x423e8c[_0x79cf('0x25')]||'','XMD-AGI':_0x423e8c[_0x79cf('0x26')]?util[_0x79cf('0x14')](_0x79cf('0x27'),ipAgi,_0x423e8c[_0x79cf('0x26')]):_0x79cf('0x28'),'XMD-AGIAFTER':_0x423e8c[_0x79cf('0x22')]?util[_0x79cf('0x14')](_0x79cf('0x27'),ipAgi,_0x423e8c[_0x79cf('0x22')]):_0x79cf('0x28'),'XMD-ORIGINATECALLERIDNUM':_0x2aed06?_0x2aed06[_0x79cf('0x29')]:'','XMD-ORIGINATECALLERIDNAME':_0x2aed06?_0x2aed06[_0x79cf('0x2a')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_[_0x79cf('0x12')](_0x423e8c[_0x79cf('0x23')])){_0x2b85fd[util[_0x79cf('0x14')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x423e8c['monitor_format'];_0x2b85fd[util[_0x79cf('0x14')]('%s',_0x79cf('0x2b'))]=_0x5f4721;}if(_0x5e600b&&_0x5e600b[_0x79cf('0x2c')]){for(var _0x22fa63 in _0x5e600b[_0x79cf('0x2c')]){if(_0x5e600b[_0x79cf('0x2c')][_0x79cf('0x2d')](_0x22fa63)){if(!_[_0x79cf('0x17')](_0x5e600b['Contact'][_0x22fa63])&&_0x22fa63!=='id'&&_0x22fa63!=='tags'&&_0x22fa63!==_0x79cf('0x2e')&&_0x22fa63!==_0x79cf('0x2f')){_0x2b85fd[util[_0x79cf('0x14')](_0x79cf('0x30'),'XMD-',_[_0x79cf('0x31')](_0x22fa63))]=_0x5e600b[_0x79cf('0x2c')][_0x22fa63];}}}}return _0x2b85fd;};exports[_0x79cf('0x32')]=function(_0x13593d){var _0x5b5ce5={};for(var _0x75df9a in _0x13593d){if(_0x13593d[_0x79cf('0x2d')](_0x75df9a)){_0x5b5ce5[util[_0x79cf('0x14')]('%s',_[_0x79cf('0x33')](_0x75df9a))]=_0x13593d[_0x75df9a];}}return{'variables':_0x5b5ce5};};exports['updateOriginated']=function(_0x5a504c,_0x1bdd29){if(!_[_0x79cf('0x17')](_0x5a504c)){if(_0x5a504c[_0x79cf('0x2d')]('originated')){if(_0x5a504c[_0x79cf('0x34')]>0x0){_0x5a504c[_0x79cf('0x34')]-=0x1;}else{logger[_0x79cf('0xd')](_0x79cf('0x35'),_0x1bdd29);}}}else{logger[_0x79cf('0xd')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x1bdd29);}};exports[_0x79cf('0x36')]=function(_0x248ff4){var _0xcb9c0=moment()[_0x79cf('0x14')](_0x79cf('0x37'));_0x248ff4[_0x79cf('0x38')]=0xd;_0x248ff4['statedesc']=_0x79cf('0x39');_0x248ff4[_0x79cf('0x3a')]=_0xcb9c0;_0x248ff4['responsetime']=_0xcb9c0;_0x248ff4[_0x79cf('0x3b')]=_0xcb9c0;};exports[_0x79cf('0x3c')]=function(_0x43fb37,_0x33478c,_0x59701b){var _0x4c5580=moment()[_0x79cf('0x14')](_0x79cf('0x37'));_0x43fb37[_0x79cf('0x38')]=_0x33478c;_0x43fb37[_0x79cf('0x3d')]=_0x59701b;_0x43fb37[_0x79cf('0x3e')]=_0x4c5580;_0x43fb37['ringtime']=getSeconds(_0x43fb37[_0x79cf('0x3e')],_0x43fb37[_0x79cf('0x3a')]);};exports[_0x79cf('0x3f')]=function(_0x2d3d3f,_0x5f1234,_0x130a6e){_0x2d3d3f[_0x79cf('0x40')]=_0x5f1234;_0x2d3d3f[_0x79cf('0x41')]=_0x130a6e;};exports[_0x79cf('0x42')]=function(_0x5c188d,_0xf02849,_0x4ef213){var _0x200063=moment()[_0x79cf('0x14')](_0x79cf('0x37'));_0x5c188d[_0x79cf('0x38')]=_0xf02849;_0x5c188d[_0x79cf('0x3d')]=_0x4ef213;_0x5c188d[_0x79cf('0x3e')]=_0x5c188d['responsetime']?_0x5c188d['responsetime']:_0x200063;_0x5c188d[_0x79cf('0x3b')]=_0x5c188d[_0x79cf('0x3b')]?_0x5c188d[_0x79cf('0x3b')]:_0x200063;_0x5c188d['ringtime']=getSeconds(_0x5c188d[_0x79cf('0x3e')]||0x0,_0x5c188d['starttime']||0x0);_0x5c188d[_0x79cf('0x43')]=_0x5c188d[_0x79cf('0x44')]?getSeconds(_0x5c188d[_0x79cf('0x3b')],_0x5c188d[_0x79cf('0x44')]):0x0;};exports[_0x79cf('0x45')]=function(_0x541b2c){return _0x541b2c===_0x79cf('0x46');};exports['variablesAction']=function(_0x115666,_0x5d8008,_0x36cb9e,_0x1ae13d,_0x33dbc7){var _0x21f5d9=_0x1ae13d?_0x79cf('0x47'):_0x115666[_0x79cf('0x1b')];_0x21f5d9=_0x33dbc7?_0x79cf('0x48'):_0x21f5d9;return{'actionid':_0x115666[_0x79cf('0x49')],'action':_0x79cf('0x4a'),'channel':_0x115666[_0x79cf('0x4b')],'callerid':util[_0x79cf('0x14')](_0x79cf('0x15'),_0x21f5d9,_0x115666[_0x79cf('0x1c')]),'Exten':_0x79cf('0x4c'),'Context':'from-sip','Priority':'1','variable':_0x36cb9e,'timeout':(_0x5d8008[_0x79cf('0x4d')]||0x1e)*0x3e8,'async':!![],'channelid':_0x115666['uniqueid']};};exports['totalGlobal']=function(_0x204063){return _0x204063[_0x79cf('0x4e')]+_0x204063[_0x79cf('0x4f')]+_0x204063[_0x79cf('0x50')];};exports['cloneAction']=function(_0x1e379b){var _0x3858ef=_['clone'](_0x1e379b);_0x3858ef['state']=0xf;_0x3858ef[_0x79cf('0x3d')]=_0x79cf('0x51');return _0x3858ef;};exports['scheduledAt']=function(_0x5b6d98,_0x36e325,_0x497529){var _0x3aa8a5={};_0x3aa8a5[_0x36e325]=_0x5b6d98[_0x36e325];_0x3aa8a5[_0x79cf('0x52')]=![];_0x3aa8a5[_0x79cf('0x53')]=moment()[_0x79cf('0x54')](_0x497529,_0x79cf('0x55'))['format'](_0x79cf('0x37'));_0x3aa8a5[_0x79cf('0x1d')]=_0x5b6d98[_0x79cf('0x1d')];_0x3aa8a5[_0x79cf('0x56')]=_0x5b6d98['ListId'];_0x3aa8a5['VoiceQueueId']=_0x5b6d98[_0x79cf('0x1f')]||undefined;return _0x3aa8a5;};exports[_0x79cf('0x57')]=function(_0x1f16e9,_0x4c58a7){if(!_[_0x79cf('0x17')](_0x1f16e9)){if(_0x1f16e9[_0x79cf('0x58')]>0x0){_0x1f16e9[_0x79cf('0x58')]-=0x1;}else{logger[_0x79cf('0xd')](_0x4c58a7,_0x79cf('0x59'));}}else{logger[_0x79cf('0xd')](_0x4c58a7,_0x79cf('0x5a'));}};exports[_0x79cf('0x5b')]=function(_0x1882d1){if(_0x1882d1<=0x0){return!![];}return![];};exports[_0x79cf('0x5c')]=function(_0x28db3f,_0x27ae9e){_0x28db3f['lastevent']=_0x27ae9e;_0x28db3f[_0x79cf('0x1a')]=_0x28db3f[_0x79cf('0x5d')];_0x28db3f['interface']=_0x28db3f[_0x79cf('0x4b')];return _0x28db3f;};exports[_0x79cf('0x5e')]=function(_0x420055){var _0x2ac17c={};_0x2ac17c[_0x79cf('0x5d')]=_0x420055[_0x79cf('0x5d')];_0x2ac17c[_0x79cf('0x5f')]=_0x420055[_0x79cf('0x4b')];_0x2ac17c[_0x79cf('0x49')]=_0x420055['uniqueid'];return _0x2ac17c;};exports[_0x79cf('0x60')]=function(_0x3313dd){var _0x39bbb8=[];for(var _0x5c6e59 in _0x3313dd){if(_0x3313dd['hasOwnProperty'](_0x5c6e59)){if(!_[_0x79cf('0x17')](_0x3313dd[_0x5c6e59])&&_0x3313dd[_0x5c6e59][_0x79cf('0x38')]===_0x79cf('0x61')&&_0x3313dd[_0x5c6e59]['status']===_0x79cf('0x62')){_0x39bbb8[_0x79cf('0x63')](_0x3313dd[_0x5c6e59]['id']);}}}return _0x39bbb8;};exports[_0x79cf('0x64')]=function(_0x5e6b5d){var _0x1cb642=moment()[_0x79cf('0x5')](0x0);var _0x5de75c=moment(_0x5e6b5d)['milliseconds'](0x0);return _0x1cb642['diff'](_0x5de75c,_0x79cf('0x7'));};exports['createBody']=function(_0x5ecdc6){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x5ecdc6[_0x79cf('0x1d')],'ListId':_0x5ecdc6[_0x79cf('0x56')],'VoiceQueueId':_0x5ecdc6[_0x79cf('0x1f')]||undefined,'CampaignId':_0x5ecdc6[_0x79cf('0x65')]||undefined};};exports[_0x79cf('0x66')]=function(_0x5d51a7){if(_0x5d51a7===_0x79cf('0x49')||_0x5d51a7===_0x79cf('0x67')||_0x5d51a7==='queue'||_0x5d51a7===_0x79cf('0x68')||_0x5d51a7===_0x79cf('0x69')||_0x5d51a7===_0x79cf('0x6a')||_0x5d51a7==='membername'||_0x5d51a7===_0x79cf('0x4b')||_0x5d51a7==='calleridname'||_0x5d51a7===_0x79cf('0x52')||_0x5d51a7==='calleridnum'||_0x5d51a7===_0x79cf('0x53')||_0x5d51a7===_0x79cf('0x4e')||_0x5d51a7==='countcongestionretry'||_0x5d51a7===_0x79cf('0x50')||_0x5d51a7===_0x79cf('0x6b')||_0x5d51a7===_0x79cf('0x6c')||_0x5d51a7===_0x79cf('0x6d')||_0x5d51a7===_0x79cf('0x6e')||_0x5d51a7==='recallme'||_0x5d51a7===_0x79cf('0x1d')||_0x5d51a7===_0x79cf('0x56')||_0x5d51a7==='UserId'||_0x5d51a7==='VoiceQueueId'||_0x5d51a7==='sipcallid'||_0x5d51a7===_0x79cf('0x6f')||_0x5d51a7===_0x79cf('0x70')||_0x5d51a7==='xmd-phone'||_0x5d51a7===_0x79cf('0x71')||_0x5d51a7===_0x79cf('0x72')||_0x5d51a7==='xmd-dialtimeout'||_0x5d51a7===_0x79cf('0x73')||_0x5d51a7==='xmd-dialid'||_0x5d51a7===_0x79cf('0x74')||_0x5d51a7==='xmd-contactid'||_0x5d51a7===_0x79cf('0x75')||_0x5d51a7===_0x79cf('0x76')||_0x5d51a7===_0x79cf('0x77')||_0x5d51a7===_0x79cf('0x78')||_0x5d51a7===_0x79cf('0x79')||_0x5d51a7===_0x79cf('0x7a')||_0x5d51a7==='rtpaudioqosjitter'||_0x5d51a7==='rtpaudioqosjitterbridged'||_0x5d51a7===_0x79cf('0x7b')||_0x5d51a7===_0x79cf('0x7c')||_0x5d51a7===_0x79cf('0x7d')||_0x5d51a7===_0x79cf('0x7e')||_0x5d51a7==='rtpaudioqos'||_0x5d51a7===_0x79cf('0x7a')||_0x5d51a7===_0x79cf('0x7f')||_0x5d51a7===_0x79cf('0x80')||_0x5d51a7===_0x79cf('0x7b')||_0x5d51a7===_0x79cf('0x7c')||_0x5d51a7===_0x79cf('0x7d')||_0x5d51a7===_0x79cf('0x7e')||_0x5d51a7==='bridgepeer'||_0x5d51a7===_0x79cf('0x81')||_0x5d51a7===_0x79cf('0x38')||_0x5d51a7===_0x79cf('0x3d')){return![];}return!![];};exports[_0x79cf('0x82')]=function(_0x26772b,_0x45d874){var _0x3d700e,_0x23efbe,_0x39c03f;if(_0x45d874<=0x0){_0x45d874=0x1;}_0x3d700e=new RegExp(_0x79cf('0x83')+_0x45d874+'}$');_0x23efbe=Math[_0x79cf('0x84')](0xa,_0x45d874-0x1);_0x39c03f=Math[_0x79cf('0x84')](0xa,_0x45d874)-0x1;return util[_0x79cf('0x14')]('%s',_[_0x79cf('0x85')](_0x26772b,_0x3d700e,_[_0x79cf('0x86')](_0x23efbe,_0x39c03f)));};exports[_0x79cf('0x87')]=function(_0x25021b){var _0xd21584=_0x25021b['match'](/"(.*?)"/);return _0xd21584?_0xd21584[0x1]:_0x25021b;};exports[_0x79cf('0x88')]=function(_0x5fcbe8){var _0x274250=_0x5fcbe8[_0x79cf('0x89')](/<(.*?)>/);return _0x274250?_0x274250[0x1]:_0x5fcbe8;};
\ No newline at end of file
+var _0x767f=['calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','XMD-','toUpper','toLowerVariables','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','responsetime','endtime','ringtime','logLookAgent','membername','logCustomer','talktime','answertime','isFailure','variablesAction','RECALL','BOOKED','uniqueid','channelAgent','xcally-motion-preview','from-sip','timeout','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','cloneAction','clone','scheduledat','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','interface','queue','agentReadyId','not_inuse','reachable','push','getDiff','CampaignId','filterKey','idContact','type','campaigntype','dialAnswer','callback','callbackat','recallme','UserId','sipcallid','xmd-voicequeueid','xmd-queue','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialchannel','xmd-contactid','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosrtt','bridgepeer','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','random','extractCalleridNumber','match','util','lodash','moment','../../../../config/logger','preview','env','XCALLY_IP_AGI','milliseconds','diff','seconds','error','inspect','logger','loggerError','logger2','info','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isNil','addVariables','Queue','name'];(function(_0x26c8d7,_0x15dabc){var _0xa258eb=function(_0x5a28d8){while(--_0x5a28d8){_0x26c8d7['push'](_0x26c8d7['shift']());}};_0xa258eb(++_0x15dabc);}(_0x767f,0xfc));var _0xf767=function(_0x44bcb0,_0x235aa9){_0x44bcb0=_0x44bcb0-0x0;var _0xfaf881=_0x767f[_0x44bcb0];return _0xfaf881;};'use strict';var util=require(_0xf767('0x0'));var _=require(_0xf767('0x1'));var moment=require(_0xf767('0x2'));var logger=require(_0xf767('0x3'))(_0xf767('0x4'));var ipAgi=process[_0xf767('0x5')][_0xf767('0x6')]||'127.0.0.1';function getSeconds(_0x3774b0,_0x534a03){var _0x34357a=moment(_0x3774b0)['milliseconds'](0x0);var _0x383a92=moment(_0x534a03)[_0xf767('0x7')](0x0);return _0x34357a[_0xf767('0x8')](_0x383a92,_0xf767('0x9'));}exports['loggerCatch']=function(_0x23d522){return function(_0x3dd5fa){logger[_0xf767('0xa')](_0x23d522,util[_0xf767('0xb')](_0x3dd5fa,{'showHidden':![],'depth':null}));};};exports[_0xf767('0xc')]=function(_0x6b3800,_0xe8b325){logger['info'](_0x6b3800,util[_0xf767('0xb')](_0xe8b325,{'showHidden':![],'depth':null}));};exports[_0xf767('0xd')]=function(_0x1eeb74,_0x3f738a){logger[_0xf767('0xa')](_0x1eeb74,util[_0xf767('0xb')](_0x3f738a,{'showHidden':![],'depth':null}));};exports[_0xf767('0xe')]=function(_0x14047e){return function(_0x1c127d){logger[_0xf767('0xf')](_0x14047e,util[_0xf767('0xb')](_0x1c127d,{'showHidden':![],'depth':null}));};};exports[_0xf767('0x10')]=function(_0x267124,_0x429983,_0x12e3be){return{'message':_0x267124,'unlock':_0x429983,'active':_0x12e3be};};exports[_0xf767('0x11')]=function(_0xf6d149,_0x38053b,_0x5ac4a9){if(!_[_0xf767('0x12')](_0x5ac4a9)&&_0xf767('0x13')===typeof _0x5ac4a9&&!_[_0xf767('0x14')](_0x5ac4a9)){if(!_['isUndefined'](_0x38053b)&&_0xf767('0x13')===typeof _0x38053b&&!_[_0xf767('0x14')](_0x38053b)){return util[_0xf767('0x15')]('\x22%s\x22\x20<%s>',_0x38053b,_0x5ac4a9);}return util[_0xf767('0x15')](_0xf767('0x16'),_0x5ac4a9,_0x5ac4a9);}if(!_[_0xf767('0x12')](_0xf6d149)&&_0xf767('0x13')===typeof _0xf6d149&&!_[_0xf767('0x14')](_0xf6d149)){return _0xf6d149;}return _0xf767('0x17');};exports['isActive']=function(_0x20dbe3){if(_[_0xf767('0x18')](_0x20dbe3)){return![];}return _0x20dbe3;};exports[_0xf767('0x19')]=function(_0x44149c,_0x1d4f33,_0x516c81,_0x3eb6a5,_0x339002,_0x61bd2){var _0x38e3fd={'XMD-QUEUE':_0x1d4f33[_0xf767('0x1a')]?_0x1d4f33[_0xf767('0x1a')][_0xf767('0x1b')]:'','XMD-CALLERID':_0x3eb6a5,'XMD-CALLERID-PREVIEW':_0x61bd2?util['format']('\x22%s\x22\x20<%s>',_0x61bd2[_0xf767('0x1c')],_0x61bd2[_0xf767('0x1d')]):_0x3eb6a5,'XMD-DIALID':_0x339002,'XMD-CONTACTID':_0x1d4f33[_0xf767('0x1e')],'XMD-CDRTYPE':_0xf767('0x1f'),'CALLERID(all)':_0x3eb6a5,'XMD-VOICEQUEUEID':_0x1d4f33[_0xf767('0x20')],'XMD-DIALCHANNEL':_0x516c81,'XMD-DIALTIMEOUT':_0x44149c[_0xf767('0x21')]||0x1e,'XMD-DIALOPTIONS':util[_0xf767('0x15')](_0xf767('0x22'),_0x44149c[_0xf767('0x23')]?'g':'',_[_0xf767('0x14')](_0x44149c[_0xf767('0x24')])?'':_0xf767('0x25')),'XMD-DIALURL':_0x44149c[_0xf767('0x26')]||'','XMD-AGI':_0x44149c[_0xf767('0x27')]?util['format'](_0xf767('0x28'),ipAgi,_0x44149c['dialQueueProject']):'NONE','XMD-AGIAFTER':_0x44149c['dialQueueProject2']?util[_0xf767('0x15')]('\x22agi://%s/square,%s\x22',ipAgi,_0x44149c[_0xf767('0x23')]):_0xf767('0x29'),'XMD-ORIGINATECALLERIDNUM':_0x61bd2?_0x61bd2[_0xf767('0x2a')]:'','XMD-ORIGINATECALLERIDNAME':_0x61bd2?_0x61bd2[_0xf767('0x2b')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_[_0xf767('0x14')](_0x44149c['monitor_format'])){_0x38e3fd[util['format']('%s',_0xf767('0x2c'))]=_0x44149c[_0xf767('0x24')];_0x38e3fd[util[_0xf767('0x15')]('%s',_0xf767('0x2d'))]=_0x339002;}if(_0x1d4f33&&_0x1d4f33['Contact']){for(var _0x4e944a in _0x1d4f33[_0xf767('0x2e')]){if(_0x1d4f33[_0xf767('0x2e')][_0xf767('0x2f')](_0x4e944a)){if(!_[_0xf767('0x18')](_0x1d4f33[_0xf767('0x2e')][_0x4e944a])&&_0x4e944a!=='id'&&_0x4e944a!==_0xf767('0x30')&&_0x4e944a!==_0xf767('0x31')&&_0x4e944a!=='updatedAt'){_0x38e3fd[util[_0xf767('0x15')]('%s%s',_0xf767('0x32'),_[_0xf767('0x33')](_0x4e944a))]=_0x1d4f33[_0xf767('0x2e')][_0x4e944a];}}}}return _0x38e3fd;};exports[_0xf767('0x34')]=function(_0x59b27e){var _0x27aa50={};for(var _0x524ca0 in _0x59b27e){if(_0x59b27e[_0xf767('0x2f')](_0x524ca0)){_0x27aa50[util[_0xf767('0x15')]('%s',_['toLower'](_0x524ca0))]=_0x59b27e[_0x524ca0];}}return{'variables':_0x27aa50};};exports[_0xf767('0x35')]=function(_0x169b57,_0x597b94){if(!_[_0xf767('0x18')](_0x169b57)){if(_0x169b57[_0xf767('0x2f')]('originated')){if(_0x169b57['originated']>0x0){_0x169b57[_0xf767('0x36')]-=0x1;}else{logger[_0xf767('0xa')](_0xf767('0x37'),_0x597b94);}}}else{logger['error'](_0xf767('0x38'),_0x597b94);}};exports[_0xf767('0x39')]=function(_0xa24312){var _0x2f2904=moment()[_0xf767('0x15')](_0xf767('0x3a'));_0xa24312[_0xf767('0x3b')]=0xd;_0xa24312[_0xf767('0x3c')]=_0xf767('0x3d');_0xa24312[_0xf767('0x3e')]=_0x2f2904;_0xa24312[_0xf767('0x3f')]=_0x2f2904;_0xa24312[_0xf767('0x40')]=_0x2f2904;};exports['logAgent']=function(_0x43bd7d,_0x5d003f,_0x264a3c){var _0x3d4299=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x43bd7d['state']=_0x5d003f;_0x43bd7d[_0xf767('0x3c')]=_0x264a3c;_0x43bd7d[_0xf767('0x3f')]=_0x3d4299;_0x43bd7d[_0xf767('0x41')]=getSeconds(_0x43bd7d[_0xf767('0x3f')],_0x43bd7d[_0xf767('0x3e')]);};exports[_0xf767('0x42')]=function(_0x531376,_0xf5663c,_0x21b8f5){_0x531376[_0xf767('0x43')]=_0xf5663c;_0x531376['UserId']=_0x21b8f5;};exports[_0xf767('0x44')]=function(_0x27b15c,_0x3b4cf3,_0x554271){var _0x73eb38=moment()[_0xf767('0x15')](_0xf767('0x3a'));_0x27b15c[_0xf767('0x3b')]=_0x3b4cf3;_0x27b15c[_0xf767('0x3c')]=_0x554271;_0x27b15c['responsetime']=_0x27b15c['responsetime']?_0x27b15c[_0xf767('0x3f')]:_0x73eb38;_0x27b15c['endtime']=_0x27b15c['endtime']?_0x27b15c[_0xf767('0x40')]:_0x73eb38;_0x27b15c['ringtime']=getSeconds(_0x27b15c[_0xf767('0x3f')]||0x0,_0x27b15c[_0xf767('0x3e')]||0x0);_0x27b15c[_0xf767('0x45')]=_0x27b15c[_0xf767('0x46')]?getSeconds(_0x27b15c[_0xf767('0x40')],_0x27b15c[_0xf767('0x46')]):0x0;};exports[_0xf767('0x47')]=function(_0x27c757){return _0x27c757==='Failure';};exports[_0xf767('0x48')]=function(_0x5486fa,_0x33bbd5,_0xe0bc56,_0x16f8a3,_0x43eb1c){var _0x54a675=_0x16f8a3?_0xf767('0x49'):_0x5486fa['calleridname'];_0x54a675=_0x43eb1c?_0xf767('0x4a'):_0x54a675;return{'actionid':_0x5486fa[_0xf767('0x4b')],'action':'originate','channel':_0x5486fa[_0xf767('0x4c')],'callerid':util[_0xf767('0x15')](_0xf767('0x16'),_0x54a675,_0x5486fa[_0xf767('0x1d')]),'Exten':_0xf767('0x4d'),'Context':_0xf767('0x4e'),'Priority':'1','variable':_0xe0bc56,'timeout':(_0x33bbd5[_0xf767('0x4f')]||0x1e)*0x3e8,'async':!![],'channelid':_0x5486fa['uniqueid']};};exports[_0xf767('0x50')]=function(_0x40e262){return _0x40e262[_0xf767('0x51')]+_0x40e262[_0xf767('0x52')]+_0x40e262[_0xf767('0x53')];};exports[_0xf767('0x54')]=function(_0x298679){var _0x2cb19e=_[_0xf767('0x55')](_0x298679);_0x2cb19e[_0xf767('0x3b')]=0xf;_0x2cb19e[_0xf767('0x3c')]='Global';return _0x2cb19e;};exports['scheduledAt']=function(_0x509338,_0x5620fe,_0x1ce7bd){var _0x56a22c={};_0x56a22c[_0x5620fe]=_0x509338[_0x5620fe];_0x56a22c['active']=![];_0x56a22c[_0xf767('0x56')]=moment()[_0xf767('0x57')](_0x1ce7bd,_0xf767('0x58'))[_0xf767('0x15')](_0xf767('0x3a'));_0x56a22c[_0xf767('0x1e')]=_0x509338[_0xf767('0x1e')];_0x56a22c[_0xf767('0x59')]=_0x509338[_0xf767('0x59')];_0x56a22c[_0xf767('0x20')]=_0x509338['VoiceQueueId']||undefined;return _0x56a22c;};exports[_0xf767('0x5a')]=function(_0x646d99,_0x3d24c8){if(!_[_0xf767('0x18')](_0x646d99)){if(_0x646d99['pTalking']>0x0){_0x646d99[_0xf767('0x5b')]-=0x1;}else{logger[_0xf767('0xa')](_0x3d24c8,_0xf767('0x5c'));}}else{logger[_0xf767('0xa')](_0x3d24c8,_0xf767('0x5d'));}};exports[_0xf767('0x5e')]=function(_0x3e15b5){if(_0x3e15b5<=0x0){return!![];}return![];};exports[_0xf767('0x5f')]=function(_0x30b564,_0x4d70ba){_0x30b564['lastevent']=_0x4d70ba;_0x30b564[_0xf767('0x1b')]=_0x30b564['queue'];_0x30b564[_0xf767('0x60')]=_0x30b564[_0xf767('0x4c')];return _0x30b564;};exports['buildAcw']=function(_0x1d19d1){var _0x35a9dd={};_0x35a9dd[_0xf767('0x61')]=_0x1d19d1[_0xf767('0x61')];_0x35a9dd[_0xf767('0x60')]=_0x1d19d1[_0xf767('0x4c')];_0x35a9dd[_0xf767('0x4b')]=_0x1d19d1[_0xf767('0x4b')];return _0x35a9dd;};exports[_0xf767('0x62')]=function(_0x540ed7){var _0x444d7e=[];for(var _0x407cfe in _0x540ed7){if(_0x540ed7['hasOwnProperty'](_0x407cfe)){if(!_[_0xf767('0x18')](_0x540ed7[_0x407cfe])&&_0x540ed7[_0x407cfe][_0xf767('0x3b')]===_0xf767('0x63')&&_0x540ed7[_0x407cfe]['status']===_0xf767('0x64')){_0x444d7e[_0xf767('0x65')](_0x540ed7[_0x407cfe]['id']);}}}return _0x444d7e;};exports[_0xf767('0x66')]=function(_0x20040c){var _0x2e5298=moment()[_0xf767('0x7')](0x0);var _0xbce6d7=moment(_0x20040c)[_0xf767('0x7')](0x0);return _0x2e5298['diff'](_0xbce6d7,_0xf767('0x9'));};exports['createBody']=function(_0x4f3b66){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x4f3b66[_0xf767('0x1e')],'ListId':_0x4f3b66['ListId'],'VoiceQueueId':_0x4f3b66[_0xf767('0x20')]||undefined,'CampaignId':_0x4f3b66[_0xf767('0x67')]||undefined};};exports[_0xf767('0x68')]=function(_0x140ff2){if(_0x140ff2===_0xf767('0x4b')||_0x140ff2===_0xf767('0x69')||_0x140ff2===_0xf767('0x61')||_0x140ff2===_0xf767('0x6a')||_0x140ff2===_0xf767('0x6b')||_0x140ff2===_0xf767('0x6c')||_0x140ff2===_0xf767('0x43')||_0x140ff2===_0xf767('0x4c')||_0x140ff2==='calleridname'||_0x140ff2==='active'||_0x140ff2===_0xf767('0x1d')||_0x140ff2==='scheduledat'||_0x140ff2===_0xf767('0x51')||_0x140ff2===_0xf767('0x52')||_0x140ff2===_0xf767('0x53')||_0x140ff2==='countglobal'||_0x140ff2===_0xf767('0x6d')||_0x140ff2==='callbackuniqueid'||_0x140ff2===_0xf767('0x6e')||_0x140ff2===_0xf767('0x6f')||_0x140ff2===_0xf767('0x1e')||_0x140ff2===_0xf767('0x59')||_0x140ff2===_0xf767('0x70')||_0x140ff2===_0xf767('0x20')||_0x140ff2===_0xf767('0x71')||_0x140ff2===_0xf767('0x72')||_0x140ff2===_0xf767('0x73')||_0x140ff2==='xmd-phone'||_0x140ff2===_0xf767('0x74')||_0x140ff2===_0xf767('0x75')||_0x140ff2===_0xf767('0x76')||_0x140ff2==='xmd-dialoptions'||_0x140ff2==='xmd-dialid'||_0x140ff2===_0xf767('0x77')||_0x140ff2===_0xf767('0x78')||_0x140ff2==='xmd-cdrtype'||_0x140ff2===_0xf767('0x79')||_0x140ff2===_0xf767('0x7a')||_0x140ff2===_0xf767('0x7b')||_0x140ff2==='rtpaudioqos'||_0x140ff2==='rtpaudioqosbridged'||_0x140ff2===_0xf767('0x7c')||_0x140ff2===_0xf767('0x7d')||_0x140ff2===_0xf767('0x7e')||_0x140ff2===_0xf767('0x7f')||_0x140ff2==='rtpaudioqosrtt'||_0x140ff2==='rtpaudioqosrttbridged'||_0x140ff2===_0xf767('0x80')||_0x140ff2===_0xf767('0x81')||_0x140ff2==='rtpaudioqosjitter'||_0x140ff2===_0xf767('0x7d')||_0x140ff2===_0xf767('0x7e')||_0x140ff2===_0xf767('0x7f')||_0x140ff2===_0xf767('0x82')||_0x140ff2==='rtpaudioqosrttbridged'||_0x140ff2===_0xf767('0x83')||_0x140ff2===_0xf767('0x84')||_0x140ff2===_0xf767('0x3b')||_0x140ff2===_0xf767('0x3c')){return![];}return!![];};exports[_0xf767('0x85')]=function(_0x95126b,_0x339883){var _0x1cfea0,_0x389635,_0x55d423;if(_0x339883<=0x0){_0x339883=0x1;}_0x1cfea0=new RegExp(_0xf767('0x86')+_0x339883+'}$');_0x389635=Math[_0xf767('0x87')](0xa,_0x339883-0x1);_0x55d423=Math[_0xf767('0x87')](0xa,_0x339883)-0x1;return util[_0xf767('0x15')]('%s',_[_0xf767('0x88')](_0x95126b,_0x1cfea0,_[_0xf767('0x89')](_0x389635,_0x55d423)));};exports['extractCalleridName']=function(_0x63c643){var _0x90408c=_0x63c643['match'](/"(.*?)"/);return _0x90408c?_0x90408c[0x1]:_0x63c643;};exports[_0xf767('0x8a')]=function(_0x1a1991){var _0x50a252=_0x1a1991[_0xf767('0x8b')](/<(.*?)>/);return _0x50a252?_0x50a252[0x1]:_0x1a1991;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2ff=['voicechannel','voicequeuechannelhangup','voicequeuechannelredirect','queueadd','string','queuepause','boolean','voicequeuechannel'];(function(_0x139a3c,_0x4fc883){var _0x2b375b=function(_0x525dbf){while(--_0x525dbf){_0x139a3c['push'](_0x139a3c['shift']());}};_0x2b375b(++_0x4fc883);}(_0xb2ff,0x123));var _0xfb2f=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xb2ff[_0x42cae2];return _0x5f256f;};'use strict';exports[_0xfb2f('0x0')]={'queue':{'type':_0xfb2f('0x1'),'required':!![]},'interface':{'type':'string','required':!![]},'membername':{'type':_0xfb2f('0x1'),'required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':'boolean','required':![]}};exports['queueremove']={'queue':{'type':_0xfb2f('0x1'),'required':!![]},'interface':{'type':'string','required':!![]}};exports[_0xfb2f('0x2')]={'interface':{'type':_0xfb2f('0x1'),'required':!![]},'paused':{'type':_0xfb2f('0x3')},'reason':{'type':_0xfb2f('0x1'),'required':![]}};exports['reload']={'module':{'type':'string','required':![]}};exports[_0xfb2f('0x4')]={'uniqueid':{'type':'string','required':!![]}};exports[_0xfb2f('0x5')]={'uniqueid':{'type':_0xfb2f('0x1'),'required':!![]},'filename':{'type':_0xfb2f('0x1')},'format':{'type':_0xfb2f('0x1')},'mixmonitorid':{'type':'string'}};exports[_0xfb2f('0x6')]={'uniqueid':{'type':'string','required':!![]}};exports[_0xfb2f('0x7')]={'uniqueid':{'type':'string','required':!![]},'exten':{'type':_0xfb2f('0x1'),'required':!![]},'context':{'type':_0xfb2f('0x1')}};
\ No newline at end of file
+var _0xc978=['number','boolean','queuepause','reload','voicequeuechannel','voicechannel','voicequeuechannelredirect','queueadd','string'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xc978,0xcd));var _0x8c97=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xc978[_0x20a584];return _0x4b41a8;};'use strict';exports[_0x8c97('0x0')]={'queue':{'type':_0x8c97('0x1'),'required':!![]},'interface':{'type':_0x8c97('0x1'),'required':!![]},'membername':{'type':_0x8c97('0x1'),'required':!![]},'penalty':{'type':_0x8c97('0x2'),'required':![]},'paused':{'type':_0x8c97('0x3'),'required':![]}};exports['queueremove']={'queue':{'type':_0x8c97('0x1'),'required':!![]},'interface':{'type':_0x8c97('0x1'),'required':!![]}};exports[_0x8c97('0x4')]={'interface':{'type':_0x8c97('0x1'),'required':!![]},'paused':{'type':_0x8c97('0x3')},'reason':{'type':_0x8c97('0x1'),'required':![]}};exports[_0x8c97('0x5')]={'module':{'type':'string','required':![]}};exports[_0x8c97('0x6')]={'uniqueid':{'type':_0x8c97('0x1'),'required':!![]}};exports[_0x8c97('0x7')]={'uniqueid':{'type':_0x8c97('0x1'),'required':!![]},'filename':{'type':_0x8c97('0x1')},'format':{'type':_0x8c97('0x1')},'mixmonitorid':{'type':_0x8c97('0x1')}};exports['voicequeuechannelhangup']={'uniqueid':{'type':_0x8c97('0x1'),'required':!![]}};exports[_0x8c97('0x8')]={'uniqueid':{'type':_0x8c97('0x1'),'required':!![]},'exten':{'type':_0x8c97('0x1'),'required':!![]},'context':{'type':_0x8c97('0x1')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafba=['sumBillable','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','queueStatusComplete','mergeFromDatabase','prototype','initAgents','length','isUndefined','agents','initTelephones','trunks','initVoiceQueues','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','initVtigerAccounts','initVoiceQueueHopperHistory','merge','groupBy','queue','queuecallerexit','abandoned','sumHoldTime','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerexitAt','diff','answered','initVoiceCallReports','duration','disposition','ANSWERED','billableseconds','initCampaigns','initVoiceExtensions','initCampaignHopperHistory','faxAccounts','bluebird','util','lodash','../model/telephone','../model/voiceQueue','../model/trigger','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/zohoAccount','../model/deskAccount','telephones','voiceQueues','triggers','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','mapKeys','hasOwnProperty','SIP/%s','name','isNil','format','interface','total','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','sumDuration'];(function(_0x7f2168,_0x10def4){var _0x5ace0a=function(_0x49a7e0){while(--_0x49a7e0){_0x7f2168['push'](_0x7f2168['shift']());}};_0x5ace0a(++_0x10def4);}(_0xafba,0xee));var _0xaafb=function(_0x410119,_0x443433){_0x410119=_0x410119-0x0;var _0x529f07=_0xafba[_0x410119];return _0x529f07;};'use strict';var BPromise=require(_0xaafb('0x0'));var util=require(_0xaafb('0x1'));var _=require(_0xaafb('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Telephone=require(_0xaafb('0x3'));var Trunk=require('../model/trunk');var VoiceQueue=require(_0xaafb('0x4'));var Trigger=require(_0xaafb('0x5'));var Template=require('../model/template');var Campaign=require(_0xaafb('0x6'));var VoiceExtension=require(_0xaafb('0x7'));var ZendeskAccount=require(_0xaafb('0x8'));var SalesforceAccount=require(_0xaafb('0x9'));var FreshdeskAccount=require(_0xaafb('0xa'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0xaafb('0xb'));var DeskAccount=require(_0xaafb('0xc'));var VtigerAccount=require('../model/vtigerAccount');var FaxAccount=require('../model/faxAccount');var Realtime=function(){this['agents']={};this[_0xaafb('0xd')]={};this['trunks']={};this[_0xaafb('0xe')]={};this[_0xaafb('0xf')]={};this[_0xaafb('0x10')]={};this[_0xaafb('0x11')]={};this[_0xaafb('0x12')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xaafb('0x13')]={};this[_0xaafb('0x14')]={};this[_0xaafb('0x15')]={};this[_0xaafb('0x16')]={};this[_0xaafb('0x17')]={};this[_0xaafb('0x18')]={};this[_0xaafb('0x19')]={};this[_0xaafb('0x1a')]={};this[_0xaafb('0x1b')]={};this[_0xaafb('0x1c')]={};this[_0xaafb('0x1d')]={};this[_0xaafb('0x1e')]={};this['faxAccounts']={};};function freeIsNotKey(_0x99b9fb,_0x48dac8,_0x4aee2e){var _0x372676=_[_0xaafb('0x1f')](_0x99b9fb,function(_0x54c47c,_0x468838){return _0x54c47c[_0x4aee2e];});for(var _0x1bba9f in _0x48dac8){if(_0x48dac8[_0xaafb('0x20')](_0x1bba9f)){if(!_0x372676[_0x1bba9f]){delete _0x48dac8[_0x1bba9f];}}}}function freeIsNotKeySip(_0x113704,_0x49ef36){var _0x7c4f9e=_['mapKeys'](_0x113704,function(_0x4b2a63,_0x1a5ea9){return util['format'](_0xaafb('0x21'),_0x4b2a63[_0xaafb('0x22')]);});for(var _0x4ebd68 in _0x49ef36){if(_0x49ef36[_0xaafb('0x20')](_0x4ebd68)){if(!_0x7c4f9e[_0x4ebd68]){delete _0x49ef36[_0x4ebd68];}}}}function freeIsNotKeyAgent(_0x3d71d3,_0x224129){var _0x5b3260=_[_0xaafb('0x1f')](_0x3d71d3,function(_0x18e81c,_0x394ee3){var _0x19bb23=_[_0xaafb('0x23')](_0x18e81c['interface'])?util[_0xaafb('0x24')]('SIP/%s',_0x18e81c['name']):_0x18e81c[_0xaafb('0x25')];return _0x19bb23;});for(var _0x106c00 in _0x224129){if(_0x224129['hasOwnProperty'](_0x106c00)){if(!_0x5b3260[_0x106c00]){delete _0x224129[_0x106c00];}}}}function clearVoiceCallReports(_0x3b3c80){_0x3b3c80[_0xaafb('0x26')]=0x0;_0x3b3c80['answered']=0x0;_0x3b3c80['sumHoldTime']=0x0;_0x3b3c80['sumDuration']=0x0;_0x3b3c80['sumBillable']=0x0;}function clearCampaigns(_0x3772e8){if(!_[_0xaafb('0x27')](_0x3772e8)){for(var _0x43ae6a in _0x3772e8){if(_0x3772e8[_0xaafb('0x20')](_0x43ae6a)){_0x3772e8[_0x43ae6a][_0xaafb('0x28')]=0x0;_0x3772e8[_0x43ae6a][_0xaafb('0x29')]=0x0;}}}}function clearVoiceQueues(_0x5d2e75){if(!_[_0xaafb('0x27')](_0x5d2e75)){for(var _0x2aa465 in _0x5d2e75){if(_0x5d2e75[_0xaafb('0x20')](_0x2aa465)){_0x5d2e75[_0x2aa465]['total']=0x0;_0x5d2e75[_0x2aa465]['answered']=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x2a')]=0x0;_0x5d2e75[_0x2aa465]['abandoned']=0x0;_0x5d2e75[_0x2aa465]['sumHoldTime']=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x2b')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x2c')]=0x0;_0x5d2e75[_0x2aa465]['outboundAnswerAgiCallsDay']=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x2d')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x2e')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x2f')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x30')]=0x0;_0x5d2e75[_0x2aa465]['outboundUnknownCallsDay']=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x31')]=0x0;_0x5d2e75[_0x2aa465]['outboundDropCallsDayCallersExit']=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x32')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x33')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x34')]=0x0;_0x5d2e75[_0x2aa465]['outboundReCallsDay']=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x35')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x36')]=0x0;_0x5d2e75[_0x2aa465][_0xaafb('0x37')]=!![];}}}}Realtime['prototype'][_0xaafb('0x38')]=function(_0xcf8e19,_0x16b93d){for(var _0x38a72a in _0x16b93d){if(_0xcf8e19[_0xaafb('0x20')](_0x38a72a)){_0xcf8e19[_0x38a72a]=_0x16b93d[_0x38a72a];}}};Realtime[_0xaafb('0x39')][_0xaafb('0x3a')]=function(){var _0x565d6d=this;return function(_0x7b4e8a){if(_0x7b4e8a){freeIsNotKeyAgent(_0x7b4e8a,_0x565d6d['agents']);for(var _0x1f3619=0x0,_0x23619a={},_0x184fb2={};_0x1f3619<_0x7b4e8a[_0xaafb('0x3b')];_0x1f3619+=0x1){_0x23619a=_0x7b4e8a[_0x1f3619];var _0x3d9bef=_[_0xaafb('0x23')](_0x23619a['interface'])?util[_0xaafb('0x24')](_0xaafb('0x21'),_0x23619a[_0xaafb('0x22')]):_0x23619a[_0xaafb('0x25')];if(_[_0xaafb('0x3c')](_0x565d6d[_0xaafb('0x3d')][_0x3d9bef])){_0x565d6d[_0xaafb('0x3d')][_0x3d9bef]=new Agent(_0x23619a);}else{_0x565d6d[_0xaafb('0x38')](_0x565d6d[_0xaafb('0x3d')][_0x3d9bef],_0x23619a);}}}return _0x565d6d[_0xaafb('0x3d')];};};Realtime['prototype'][_0xaafb('0x3e')]=function(){var _0x4c78ee=this;return function(_0x3b4032){if(_0x3b4032){freeIsNotKeySip(_0x3b4032,_0x4c78ee[_0xaafb('0xd')]);for(var _0x33e691=0x0,_0x182f6d={},_0x1ddc61={};_0x33e691<_0x3b4032['length'];_0x33e691+=0x1){_0x182f6d=_0x3b4032[_0x33e691];if(_['isUndefined'](_0x4c78ee['telephones'][util[_0xaafb('0x24')](_0xaafb('0x21'),_0x182f6d[_0xaafb('0x22')])])){_0x4c78ee[_0xaafb('0xd')][util[_0xaafb('0x24')](_0xaafb('0x21'),_0x182f6d[_0xaafb('0x22')])]=new Telephone(_0x182f6d);}else{_0x4c78ee[_0xaafb('0x38')](_0x4c78ee['telephones'][util['format'](_0xaafb('0x21'),_0x182f6d[_0xaafb('0x22')])],_0x182f6d);}}}return _0x4c78ee['telephones'];};};Realtime[_0xaafb('0x39')]['initTrunks']=function(){var _0xd64124=this;return function(_0x515096){if(_0x515096){freeIsNotKeySip(_0x515096,_0xd64124[_0xaafb('0x3f')]);for(var _0x55f5d0=0x0,_0x4ae2eb={},_0x418d0e={};_0x55f5d0<_0x515096[_0xaafb('0x3b')];_0x55f5d0+=0x1){_0x4ae2eb=_0x515096[_0x55f5d0];if(_[_0xaafb('0x3c')](_0xd64124[_0xaafb('0x3f')][util[_0xaafb('0x24')](_0xaafb('0x21'),_0x4ae2eb[_0xaafb('0x22')])])){_0xd64124[_0xaafb('0x3f')][util[_0xaafb('0x24')]('SIP/%s',_0x4ae2eb['name'])]=new Trunk(_0x4ae2eb);}else{_0xd64124[_0xaafb('0x38')](_0xd64124[_0xaafb('0x3f')][util[_0xaafb('0x24')](_0xaafb('0x21'),_0x4ae2eb[_0xaafb('0x22')])],_0x4ae2eb);}}}return _0xd64124[_0xaafb('0x3f')];};};Realtime['prototype'][_0xaafb('0x40')]=function(){var _0xf016b4=this;return function(_0x5ac1fc){if(_0x5ac1fc){freeIsNotKey(_0x5ac1fc,_0xf016b4['voiceQueues'],_0xaafb('0x22'));for(var _0x24b77d=0x0,_0x694a0e={},_0xe39816={};_0x24b77d<_0x5ac1fc[_0xaafb('0x3b')];_0x24b77d+=0x1){_0x694a0e=_0x5ac1fc[_0x24b77d];if(_[_0xaafb('0x3c')](_0xf016b4['voiceQueues'][_0x694a0e[_0xaafb('0x22')]])){_0xf016b4[_0xaafb('0xe')][_0x694a0e[_0xaafb('0x22')]]=new VoiceQueue(_0x694a0e);}else{_0xf016b4[_0xaafb('0x38')](_0xf016b4['voiceQueues'][_0x694a0e[_0xaafb('0x22')]],_0x694a0e);}}}return _0xf016b4[_0xaafb('0xe')];};};Realtime[_0xaafb('0x39')]['initTriggers']=function(){var _0x270968=this;return function(_0x22d509){if(_0x22d509){freeIsNotKey(_0x22d509,_0x270968[_0xaafb('0xf')],'id');for(var _0x9a783a=0x0,_0x1a25fb={},_0x3cead0={};_0x9a783a<_0x22d509[_0xaafb('0x3b')];_0x9a783a+=0x1){_0x1a25fb=_0x22d509[_0x9a783a];if(_['isUndefined'](_0x270968['triggers'][_0x1a25fb['id']])){_0x270968[_0xaafb('0xf')][_0x1a25fb['id']]=new Trigger(_0x1a25fb);}else{_0x270968[_0xaafb('0x38')](_0x270968[_0xaafb('0xf')][_0x1a25fb['id']],_0x1a25fb);}}}return _0x270968[_0xaafb('0xf')];};};Realtime['prototype'][_0xaafb('0x41')]=function(){var _0x4925a5=this;return function(_0x3780ae){if(_0x3780ae){freeIsNotKey(_0x3780ae,_0x4925a5[_0xaafb('0x11')],'id');for(var _0xdb998e=0x0,_0x43e54e={},_0x4e0875={};_0xdb998e<_0x3780ae[_0xaafb('0x3b')];_0xdb998e+=0x1){_0x43e54e=_0x3780ae[_0xdb998e];if(_[_0xaafb('0x3c')](_0x4925a5[_0xaafb('0x11')][_0x43e54e['id']])){_0x4925a5[_0xaafb('0x11')][_0x43e54e['id']]=new Template(_0x43e54e);}else{_0x4925a5[_0xaafb('0x38')](_0x4925a5['templates'][_0x43e54e['id']],_0x43e54e);}}}return _0x4925a5[_0xaafb('0x11')];};};Realtime['prototype'][_0xaafb('0x42')]=function(){var _0x19853f=this;return function(_0x3dd021){if(_0x3dd021){freeIsNotKey(_0x3dd021,_0x19853f[_0xaafb('0x18')],'id');for(var _0x2b6557=0x0,_0x3141b8={},_0x2b06ac={};_0x2b6557<_0x3dd021[_0xaafb('0x3b')];_0x2b6557+=0x1){_0x3141b8=_0x3dd021[_0x2b6557];if(_['isUndefined'](_0x19853f[_0xaafb('0x18')][_0x3141b8['id']])){_0x19853f[_0xaafb('0x18')][_0x3141b8['id']]=new ZendeskAccount(_0x3141b8);}else{_0x19853f['mergeFromDatabase'](_0x19853f[_0xaafb('0x18')][_0x3141b8['id']],_0x3141b8);}}}return _0x19853f[_0xaafb('0x18')];};};Realtime[_0xaafb('0x39')][_0xaafb('0x43')]=function(){var _0x3cf3c3=this;return function(_0x1b7ea5){if(_0x1b7ea5){freeIsNotKey(_0x1b7ea5,_0x3cf3c3['salesforceAccounts'],'id');for(var _0x1a85fd=0x0,_0x50abe6={},_0x29ecb2={};_0x1a85fd<_0x1b7ea5[_0xaafb('0x3b')];_0x1a85fd+=0x1){_0x50abe6=_0x1b7ea5[_0x1a85fd];if(_[_0xaafb('0x3c')](_0x3cf3c3['salesforceAccounts'][_0x50abe6['id']])){_0x3cf3c3[_0xaafb('0x19')][_0x50abe6['id']]=new SalesforceAccount(_0x50abe6);}else{_0x3cf3c3['mergeFromDatabase'](_0x3cf3c3[_0xaafb('0x19')][_0x50abe6['id']],_0x50abe6);}}}return _0x3cf3c3[_0xaafb('0x19')];};};Realtime[_0xaafb('0x39')][_0xaafb('0x44')]=function(){var _0x5bd3d7=this;return function(_0x456eea){if(_0x456eea){freeIsNotKey(_0x456eea,_0x5bd3d7[_0xaafb('0x1b')],'id');for(var _0x5c51b4=0x0,_0x454e43={},_0x1d0c4e={};_0x5c51b4<_0x456eea[_0xaafb('0x3b')];_0x5c51b4+=0x1){_0x454e43=_0x456eea[_0x5c51b4];if(_['isUndefined'](_0x5bd3d7[_0xaafb('0x1b')][_0x454e43['id']])){_0x5bd3d7[_0xaafb('0x1b')][_0x454e43['id']]=new FreshdeskAccount(_0x454e43);}else{_0x5bd3d7['mergeFromDatabase'](_0x5bd3d7[_0xaafb('0x1b')][_0x454e43['id']],_0x454e43);}}}return _0x5bd3d7[_0xaafb('0x1b')];};};Realtime['prototype'][_0xaafb('0x45')]=function(){var _0x434677=this;return function(_0x52b050){if(_0x52b050){freeIsNotKey(_0x52b050,_0x434677[_0xaafb('0x1c')],'id');for(var _0x228cdb=0x0,_0x3b4390={},_0xb7d233={};_0x228cdb<_0x52b050['length'];_0x228cdb+=0x1){_0x3b4390=_0x52b050[_0x228cdb];if(_['isUndefined'](_0x434677['zohoAccounts'][_0x3b4390['id']])){_0x434677[_0xaafb('0x1c')][_0x3b4390['id']]=new ZohoAccount(_0x3b4390);}else{_0x434677['mergeFromDatabase'](_0x434677[_0xaafb('0x1c')][_0x3b4390['id']],_0x3b4390);}}}return _0x434677[_0xaafb('0x1c')];};};Realtime['prototype'][_0xaafb('0x46')]=function(){var _0x5502c2=this;return function(_0x5ed8f6){if(_0x5ed8f6){freeIsNotKey(_0x5ed8f6,_0x5502c2[_0xaafb('0x1d')],'id');for(var _0x2cb326=0x0,_0x3384c2={},_0x461287={};_0x2cb326<_0x5ed8f6[_0xaafb('0x3b')];_0x2cb326+=0x1){_0x3384c2=_0x5ed8f6[_0x2cb326];if(_['isUndefined'](_0x5502c2[_0xaafb('0x1d')][_0x3384c2['id']])){_0x5502c2[_0xaafb('0x1d')][_0x3384c2['id']]=new DeskAccount(_0x3384c2);}else{_0x5502c2[_0xaafb('0x38')](_0x5502c2['deskAccounts'][_0x3384c2['id']],_0x3384c2);}}}return _0x5502c2['deskAccounts'];};};Realtime[_0xaafb('0x39')]['initSugarcrmAccounts']=function(){var _0x5d59c0=this;return function(_0x1f699b){if(_0x1f699b){freeIsNotKey(_0x1f699b,_0x5d59c0['sugarcrmAccounts'],'id');for(var _0x4be2a3=0x0,_0x333ea2={},_0x2d6ceb={};_0x4be2a3<_0x1f699b[_0xaafb('0x3b')];_0x4be2a3+=0x1){_0x333ea2=_0x1f699b[_0x4be2a3];if(_[_0xaafb('0x3c')](_0x5d59c0[_0xaafb('0x1a')][_0x333ea2['id']])){_0x5d59c0[_0xaafb('0x1a')][_0x333ea2['id']]=new SugarcrmAccount(_0x333ea2);}else{_0x5d59c0[_0xaafb('0x38')](_0x5d59c0['sugarcrmAccounts'][_0x333ea2['id']],_0x333ea2);}}}return _0x5d59c0[_0xaafb('0x1a')];};};Realtime[_0xaafb('0x39')][_0xaafb('0x47')]=function(){var _0x5d34b8=this;return function(_0x4153ad){if(_0x4153ad){freeIsNotKey(_0x4153ad,_0x5d34b8['vtigerAccounts'],'id');for(var _0x826ec6=0x0,_0x5204b2={},_0x5f37c5={};_0x826ec6<_0x4153ad[_0xaafb('0x3b')];_0x826ec6+=0x1){_0x5204b2=_0x4153ad[_0x826ec6];if(_[_0xaafb('0x3c')](_0x5d34b8[_0xaafb('0x1e')][_0x5204b2['id']])){_0x5d34b8[_0xaafb('0x1e')][_0x5204b2['id']]=new VtigerAccount(_0x5204b2);}else{_0x5d34b8[_0xaafb('0x38')](_0x5d34b8[_0xaafb('0x1e')][_0x5204b2['id']],_0x5204b2);}}}return _0x5d34b8[_0xaafb('0x1e')];};};Realtime[_0xaafb('0x39')][_0xaafb('0x48')]=function(){var _0x196fd1=this;return function(_0x5b4a5a){for(var _0x10e15a=0x0;_0x10e15a<_0x5b4a5a[_0xaafb('0x3b')];_0x10e15a+=0x1){_[_0xaafb('0x49')](_0x196fd1['voiceQueues'][_0x5b4a5a[_0x10e15a][_0xaafb('0x22')]],_0x5b4a5a[_0x10e15a]);}return _0x196fd1[_0xaafb('0xe')];};};Realtime[_0xaafb('0x39')]['initVoiceQueueReports']=function(){var _0x3b4717=this;return function(_0x382fff){clearVoiceQueues(_0x3b4717[_0xaafb('0xe')]);if(_0x382fff){_0x382fff=_[_0xaafb('0x4a')](_0x382fff,'uniqueid');for(var _0x277dab in _0x382fff){if(_0x382fff[_0xaafb('0x20')](_0x277dab)){var _0x47fe3a={};for(var _0x2a269c=0x0;_0x2a269c<_0x382fff[_0x277dab][_0xaafb('0x3b')];_0x2a269c+=0x1){var _0x294378=_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x4b')];if(_0x3b4717[_0xaafb('0xe')][_0x294378]){if(_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x4c')]){_0x3b4717['voiceQueues'][_0x294378][_0xaafb('0x2a')]+=0x1;}if(_0x382fff[_0x277dab][_0x2a269c]['queuecallerabandon']){_0x3b4717[_0xaafb('0xe')][_0x294378][_0xaafb('0x4d')]+=0x1;}_0x3b4717['voiceQueues'][_0x294378][_0xaafb('0x4e')]+=moment(_0x382fff[_0x277dab][_0x2a269c]['queuecallerleaveAt'])['diff'](moment(_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x4f')]),_0xaafb('0x50'))||0x0;if(_0x2a269c===_0x382fff[_0x277dab][_0xaafb('0x3b')]-0x1){_0x3b4717['voiceQueues'][_0x294378][_0xaafb('0x2b')]+=moment(_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x51')]||_0x382fff[_0x277dab][_0x2a269c]['queuecallerabandonAt']||_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x52')])[_0xaafb('0x53')](moment(_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x4f')]),_0xaafb('0x50'))||0x0;_0x3b4717[_0xaafb('0xe')][_0x294378]['total']+=0x1;if(_0x382fff[_0x277dab][_0x2a269c]['queuecallercomplete']){_0x3b4717[_0xaafb('0xe')][_0x294378][_0xaafb('0x54')]+=0x1;_0x3b4717['voiceQueues'][_0x294378][_0xaafb('0x2c')]+=moment(_0x382fff[_0x277dab][_0x2a269c][_0xaafb('0x51')])[_0xaafb('0x53')](moment(_0x382fff[_0x277dab][_0x2a269c]['queuecallerleaveAt']),_0xaafb('0x50'))||0x0;}}else{_0x3b4717[_0xaafb('0xe')][_0x294378][_0xaafb('0x2b')]+=_0x3b4717[_0xaafb('0xe')][_0x294378][_0xaafb('0x4e')]||0x0;}}}}}}return _0x3b4717['voiceQueues'];};};Realtime['prototype'][_0xaafb('0x55')]=function(){var _0x4e5897=this;return function(_0x17a852){clearVoiceCallReports(_0x4e5897[_0xaafb('0x12')]);if(_0x17a852){for(var _0x1ff2ce=0x0;_0x1ff2ce<_0x17a852['length'];_0x1ff2ce+=0x1){_0x4e5897[_0xaafb('0x12')][_0xaafb('0x26')]+=0x1;_0x4e5897[_0xaafb('0x12')][_0xaafb('0x2b')]+=_0x17a852[_0x1ff2ce][_0xaafb('0x56')];if(_0x17a852[_0x1ff2ce][_0xaafb('0x57')]===_0xaafb('0x58')){_0x4e5897[_0xaafb('0x12')][_0xaafb('0x54')]+=0x1;_0x4e5897[_0xaafb('0x12')]['sumHoldTime']+=_0x17a852[_0x1ff2ce][_0xaafb('0x56')]-_0x17a852[_0x1ff2ce]['billableseconds']||0x0;_0x4e5897[_0xaafb('0x12')][_0xaafb('0x2c')]+=_0x17a852[_0x1ff2ce][_0xaafb('0x59')];}}}return _0x4e5897[_0xaafb('0x12')];};};Realtime[_0xaafb('0x39')][_0xaafb('0x5a')]=function(){var _0x346dda=this;return function(_0x3c907a){if(_0x3c907a){freeIsNotKey(_0x3c907a,_0x346dda['campaigns'],_0xaafb('0x22'));for(var _0x51bf3f=0x0,_0x4bfa14={};_0x51bf3f<_0x3c907a['length'];_0x51bf3f+=0x1){_0x4bfa14=_0x3c907a[_0x51bf3f];if(_[_0xaafb('0x3c')](_0x346dda[_0xaafb('0x10')][_0x4bfa14[_0xaafb('0x22')]])){_0x346dda[_0xaafb('0x10')][_0x4bfa14[_0xaafb('0x22')]]=new Campaign(_0x4bfa14);}else{_0x346dda[_0xaafb('0x38')](_0x346dda[_0xaafb('0x10')][_0x4bfa14[_0xaafb('0x22')]],_0x4bfa14);}}}return _0x346dda[_0xaafb('0x10')];};};Realtime[_0xaafb('0x39')][_0xaafb('0x5b')]=function(){var _0x34378c=this;return function(_0x23ace1){if(_0x23ace1){freeIsNotKey(_0x23ace1,_0x34378c[_0xaafb('0x13')],'id');for(var _0x2ea0f7=0x0,_0x1bb6ce={};_0x2ea0f7<_0x23ace1[_0xaafb('0x3b')];_0x2ea0f7+=0x1){_0x1bb6ce=_0x23ace1[_0x2ea0f7];if(_[_0xaafb('0x3c')](_0x34378c[_0xaafb('0x13')][_0x1bb6ce['id']])){_0x34378c[_0xaafb('0x13')][_0x1bb6ce['id']]=new VoiceExtension(_0x1bb6ce);}else{_0x34378c[_0xaafb('0x38')](_0x34378c[_0xaafb('0x13')][_0x1bb6ce['id']],_0x1bb6ce);}}}return _0x34378c[_0xaafb('0x13')];};};Realtime['prototype'][_0xaafb('0x5c')]=function(){var _0x4414d8=this;return function(_0x314184){clearCampaigns(_0x4414d8['campaigns']);for(var _0x20f322=0x0;_0x20f322<_0x314184[_0xaafb('0x3b')];_0x20f322+=0x1){_[_0xaafb('0x49')](_0x4414d8[_0xaafb('0x10')][_0x314184[_0x20f322][_0xaafb('0x22')]],_0x314184[_0x20f322]);}return _0x4414d8[_0xaafb('0x10')];};};Realtime[_0xaafb('0x39')]['initFaxAccounts']=function(){var _0x515691=this;return function(_0x2a540a){if(_0x2a540a){freeIsNotKey(_0x2a540a,_0x515691[_0xaafb('0x5d')],'id');for(var _0x28eb6d=0x0,_0x4d08ea={},_0x188e73={};_0x28eb6d<_0x2a540a[_0xaafb('0x3b')];_0x28eb6d+=0x1){_0x4d08ea=_0x2a540a[_0x28eb6d];if(_[_0xaafb('0x3c')](_0x515691[_0xaafb('0x5d')][_0x4d08ea['id']])){_0x515691[_0xaafb('0x5d')][_0x4d08ea['id']]=new FaxAccount(_0x4d08ea);}else{_0x515691[_0xaafb('0x38')](_0x515691[_0xaafb('0x5d')][_0x4d08ea['id']],_0x4d08ea);}}}return _0x515691['faxAccounts'];};};module['exports']=Realtime;
\ No newline at end of file
+var _0x91ce=['format','initTelephones','isUndefined','initTrunks','initVoiceQueues','initTriggers','initTemplates','initSalesforceAccounts','sugarcrmAccounts','initVtigerAccounts','initVoiceQueueHopperHistory','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','diff','queuecallerjoinAt','queuecallercompleteAt','queuecallerabandonAt','seconds','queuecallercomplete','queuecallerleaveAt','initVoiceCallReports','disposition','duration','initVoiceExtensions','voiceExtensions','initFaxAccounts','exports','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/vtigerAccount','../model/faxAccount','agents','telephones','trunks','voiceQueues','triggers','campaigns','templates','outbound','channels','queueChannels','outboundChannels','timers','zendeskAccounts','salesforceAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','faxAccounts','mapKeys','SIP/%s','name','hasOwnProperty','isNil','interface','total','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','answered','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length'];(function(_0x20e614,_0x3ac4ea){var _0x8c1d10=function(_0x1369d2){while(--_0x1369d2){_0x20e614['push'](_0x20e614['shift']());}};_0x8c1d10(++_0x3ac4ea);}(_0x91ce,0x1aa));var _0xe91c=function(_0x3145af,_0x53a1d5){_0x3145af=_0x3145af-0x0;var _0x37758a=_0x91ce[_0x3145af];return _0x37758a;};'use strict';var BPromise=require(_0xe91c('0x0'));var util=require(_0xe91c('0x1'));var _=require(_0xe91c('0x2'));var moment=require(_0xe91c('0x3'));var Agent=require(_0xe91c('0x4'));var Telephone=require(_0xe91c('0x5'));var Trunk=require(_0xe91c('0x6'));var VoiceQueue=require(_0xe91c('0x7'));var Trigger=require('../model/trigger');var Template=require(_0xe91c('0x8'));var Campaign=require(_0xe91c('0x9'));var VoiceExtension=require(_0xe91c('0xa'));var ZendeskAccount=require(_0xe91c('0xb'));var SalesforceAccount=require(_0xe91c('0xc'));var FreshdeskAccount=require(_0xe91c('0xd'));var SugarcrmAccount=require(_0xe91c('0xe'));var ZohoAccount=require(_0xe91c('0xf'));var DeskAccount=require('../model/deskAccount');var VtigerAccount=require(_0xe91c('0x10'));var FaxAccount=require(_0xe91c('0x11'));var Realtime=function(){this[_0xe91c('0x12')]={};this[_0xe91c('0x13')]={};this[_0xe91c('0x14')]={};this[_0xe91c('0x15')]={};this[_0xe91c('0x16')]={};this[_0xe91c('0x17')]={};this[_0xe91c('0x18')]={};this[_0xe91c('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this[_0xe91c('0x1a')]={};this[_0xe91c('0x1b')]={};this[_0xe91c('0x1c')]={};this[_0xe91c('0x1d')]={};this[_0xe91c('0x1e')]={};this[_0xe91c('0x1f')]={};this['sugarcrmAccounts']={};this[_0xe91c('0x20')]={};this[_0xe91c('0x21')]={};this[_0xe91c('0x22')]={};this[_0xe91c('0x23')]={};this[_0xe91c('0x24')]={};};function freeIsNotKey(_0x1e2b35,_0x1bfbc4,_0x548131){var _0x3d509b=_[_0xe91c('0x25')](_0x1e2b35,function(_0x5cfd1b,_0x459283){return _0x5cfd1b[_0x548131];});for(var _0x284c69 in _0x1bfbc4){if(_0x1bfbc4['hasOwnProperty'](_0x284c69)){if(!_0x3d509b[_0x284c69]){delete _0x1bfbc4[_0x284c69];}}}}function freeIsNotKeySip(_0x4010f7,_0x535fd5){var _0x4475cc=_['mapKeys'](_0x4010f7,function(_0x285e64,_0x96adbd){return util['format'](_0xe91c('0x26'),_0x285e64[_0xe91c('0x27')]);});for(var _0x161dee in _0x535fd5){if(_0x535fd5[_0xe91c('0x28')](_0x161dee)){if(!_0x4475cc[_0x161dee]){delete _0x535fd5[_0x161dee];}}}}function freeIsNotKeyAgent(_0x281819,_0x5e44ad){var _0x294748=_[_0xe91c('0x25')](_0x281819,function(_0x2de62e,_0xdd56e){var _0x3af164=_[_0xe91c('0x29')](_0x2de62e['interface'])?util['format']('SIP/%s',_0x2de62e[_0xe91c('0x27')]):_0x2de62e[_0xe91c('0x2a')];return _0x3af164;});for(var _0x45f68f in _0x5e44ad){if(_0x5e44ad['hasOwnProperty'](_0x45f68f)){if(!_0x294748[_0x45f68f]){delete _0x5e44ad[_0x45f68f];}}}}function clearVoiceCallReports(_0x1d53bb){_0x1d53bb[_0xe91c('0x2b')]=0x0;_0x1d53bb['answered']=0x0;_0x1d53bb[_0xe91c('0x2c')]=0x0;_0x1d53bb[_0xe91c('0x2d')]=0x0;_0x1d53bb[_0xe91c('0x2e')]=0x0;}function clearCampaigns(_0x1a1a37){if(!_[_0xe91c('0x2f')](_0x1a1a37)){for(var _0x13ea05 in _0x1a1a37){if(_0x1a1a37[_0xe91c('0x28')](_0x13ea05)){_0x1a1a37[_0x13ea05][_0xe91c('0x30')]=0x0;_0x1a1a37[_0x13ea05][_0xe91c('0x31')]=0x0;}}}}function clearVoiceQueues(_0x8588aa){if(!_[_0xe91c('0x2f')](_0x8588aa)){for(var _0x57b95b in _0x8588aa){if(_0x8588aa[_0xe91c('0x28')](_0x57b95b)){_0x8588aa[_0x57b95b][_0xe91c('0x2b')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x32')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x33')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x34')]=0x0;_0x8588aa[_0x57b95b]['sumHoldTime']=0x0;_0x8588aa[_0x57b95b]['sumDuration']=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x2e')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x35')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x36')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x37')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x38')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x39')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x3a')]=0x0;_0x8588aa[_0x57b95b]['outboundDropCallsDayTimeout']=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x3b')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x3c')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x3d')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x3e')]=0x0;_0x8588aa[_0x57b95b]['outboundReCallsDay']=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x35')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x3f')]=0x0;_0x8588aa[_0x57b95b][_0xe91c('0x40')]=!![];}}}}Realtime[_0xe91c('0x41')][_0xe91c('0x42')]=function(_0x5d6207,_0x43c6b3){for(var _0x35361a in _0x43c6b3){if(_0x5d6207[_0xe91c('0x28')](_0x35361a)){_0x5d6207[_0x35361a]=_0x43c6b3[_0x35361a];}}};Realtime[_0xe91c('0x41')][_0xe91c('0x43')]=function(){var _0x27126f=this;return function(_0x24e5a6){if(_0x24e5a6){freeIsNotKeyAgent(_0x24e5a6,_0x27126f[_0xe91c('0x12')]);for(var _0x2c012d=0x0,_0x478873={},_0x3db105={};_0x2c012d<_0x24e5a6[_0xe91c('0x44')];_0x2c012d+=0x1){_0x478873=_0x24e5a6[_0x2c012d];var _0x46d5fe=_[_0xe91c('0x29')](_0x478873['interface'])?util[_0xe91c('0x45')](_0xe91c('0x26'),_0x478873[_0xe91c('0x27')]):_0x478873[_0xe91c('0x2a')];if(_['isUndefined'](_0x27126f[_0xe91c('0x12')][_0x46d5fe])){_0x27126f[_0xe91c('0x12')][_0x46d5fe]=new Agent(_0x478873);}else{_0x27126f['mergeFromDatabase'](_0x27126f[_0xe91c('0x12')][_0x46d5fe],_0x478873);}}}return _0x27126f[_0xe91c('0x12')];};};Realtime[_0xe91c('0x41')][_0xe91c('0x46')]=function(){var _0x58e324=this;return function(_0x257d73){if(_0x257d73){freeIsNotKeySip(_0x257d73,_0x58e324[_0xe91c('0x13')]);for(var _0x1ad799=0x0,_0x31d90d={},_0x384d74={};_0x1ad799<_0x257d73[_0xe91c('0x44')];_0x1ad799+=0x1){_0x31d90d=_0x257d73[_0x1ad799];if(_[_0xe91c('0x47')](_0x58e324[_0xe91c('0x13')][util['format']('SIP/%s',_0x31d90d['name'])])){_0x58e324['telephones'][util[_0xe91c('0x45')](_0xe91c('0x26'),_0x31d90d['name'])]=new Telephone(_0x31d90d);}else{_0x58e324[_0xe91c('0x42')](_0x58e324[_0xe91c('0x13')][util['format'](_0xe91c('0x26'),_0x31d90d['name'])],_0x31d90d);}}}return _0x58e324[_0xe91c('0x13')];};};Realtime[_0xe91c('0x41')][_0xe91c('0x48')]=function(){var _0x242e2a=this;return function(_0xdc52f5){if(_0xdc52f5){freeIsNotKeySip(_0xdc52f5,_0x242e2a[_0xe91c('0x14')]);for(var _0x59f95d=0x0,_0x125614={},_0x40ba13={};_0x59f95d<_0xdc52f5['length'];_0x59f95d+=0x1){_0x125614=_0xdc52f5[_0x59f95d];if(_[_0xe91c('0x47')](_0x242e2a['trunks'][util['format']('SIP/%s',_0x125614[_0xe91c('0x27')])])){_0x242e2a[_0xe91c('0x14')][util['format'](_0xe91c('0x26'),_0x125614[_0xe91c('0x27')])]=new Trunk(_0x125614);}else{_0x242e2a['mergeFromDatabase'](_0x242e2a[_0xe91c('0x14')][util[_0xe91c('0x45')](_0xe91c('0x26'),_0x125614['name'])],_0x125614);}}}return _0x242e2a[_0xe91c('0x14')];};};Realtime[_0xe91c('0x41')][_0xe91c('0x49')]=function(){var _0x10c88f=this;return function(_0x2dfd4c){if(_0x2dfd4c){freeIsNotKey(_0x2dfd4c,_0x10c88f[_0xe91c('0x15')],_0xe91c('0x27'));for(var _0x3bcbb5=0x0,_0x9c2c21={},_0x467ca5={};_0x3bcbb5<_0x2dfd4c['length'];_0x3bcbb5+=0x1){_0x9c2c21=_0x2dfd4c[_0x3bcbb5];if(_[_0xe91c('0x47')](_0x10c88f[_0xe91c('0x15')][_0x9c2c21['name']])){_0x10c88f[_0xe91c('0x15')][_0x9c2c21[_0xe91c('0x27')]]=new VoiceQueue(_0x9c2c21);}else{_0x10c88f['mergeFromDatabase'](_0x10c88f[_0xe91c('0x15')][_0x9c2c21[_0xe91c('0x27')]],_0x9c2c21);}}}return _0x10c88f[_0xe91c('0x15')];};};Realtime[_0xe91c('0x41')][_0xe91c('0x4a')]=function(){var _0x15bb31=this;return function(_0x3858dc){if(_0x3858dc){freeIsNotKey(_0x3858dc,_0x15bb31[_0xe91c('0x16')],'id');for(var _0x29939b=0x0,_0x3a6c7b={},_0x40fd63={};_0x29939b<_0x3858dc[_0xe91c('0x44')];_0x29939b+=0x1){_0x3a6c7b=_0x3858dc[_0x29939b];if(_['isUndefined'](_0x15bb31[_0xe91c('0x16')][_0x3a6c7b['id']])){_0x15bb31[_0xe91c('0x16')][_0x3a6c7b['id']]=new Trigger(_0x3a6c7b);}else{_0x15bb31['mergeFromDatabase'](_0x15bb31[_0xe91c('0x16')][_0x3a6c7b['id']],_0x3a6c7b);}}}return _0x15bb31['triggers'];};};Realtime[_0xe91c('0x41')][_0xe91c('0x4b')]=function(){var _0x46abc3=this;return function(_0x56de4a){if(_0x56de4a){freeIsNotKey(_0x56de4a,_0x46abc3[_0xe91c('0x18')],'id');for(var _0xb94be2=0x0,_0x2afb39={},_0x4ab4aa={};_0xb94be2<_0x56de4a[_0xe91c('0x44')];_0xb94be2+=0x1){_0x2afb39=_0x56de4a[_0xb94be2];if(_[_0xe91c('0x47')](_0x46abc3[_0xe91c('0x18')][_0x2afb39['id']])){_0x46abc3['templates'][_0x2afb39['id']]=new Template(_0x2afb39);}else{_0x46abc3[_0xe91c('0x42')](_0x46abc3[_0xe91c('0x18')][_0x2afb39['id']],_0x2afb39);}}}return _0x46abc3[_0xe91c('0x18')];};};Realtime[_0xe91c('0x41')]['initZendeskAccounts']=function(){var _0x1a11fc=this;return function(_0x4dbbcb){if(_0x4dbbcb){freeIsNotKey(_0x4dbbcb,_0x1a11fc[_0xe91c('0x1e')],'id');for(var _0x54905f=0x0,_0x3c30ac={},_0x3716c0={};_0x54905f<_0x4dbbcb['length'];_0x54905f+=0x1){_0x3c30ac=_0x4dbbcb[_0x54905f];if(_[_0xe91c('0x47')](_0x1a11fc['zendeskAccounts'][_0x3c30ac['id']])){_0x1a11fc[_0xe91c('0x1e')][_0x3c30ac['id']]=new ZendeskAccount(_0x3c30ac);}else{_0x1a11fc[_0xe91c('0x42')](_0x1a11fc[_0xe91c('0x1e')][_0x3c30ac['id']],_0x3c30ac);}}}return _0x1a11fc['zendeskAccounts'];};};Realtime[_0xe91c('0x41')][_0xe91c('0x4c')]=function(){var _0x49ab85=this;return function(_0x39008f){if(_0x39008f){freeIsNotKey(_0x39008f,_0x49ab85['salesforceAccounts'],'id');for(var _0xf450e2=0x0,_0x54908c={},_0x1419c7={};_0xf450e2<_0x39008f[_0xe91c('0x44')];_0xf450e2+=0x1){_0x54908c=_0x39008f[_0xf450e2];if(_[_0xe91c('0x47')](_0x49ab85[_0xe91c('0x1f')][_0x54908c['id']])){_0x49ab85[_0xe91c('0x1f')][_0x54908c['id']]=new SalesforceAccount(_0x54908c);}else{_0x49ab85['mergeFromDatabase'](_0x49ab85[_0xe91c('0x1f')][_0x54908c['id']],_0x54908c);}}}return _0x49ab85[_0xe91c('0x1f')];};};Realtime['prototype']['initFreshdeskAccounts']=function(){var _0x4ff3cf=this;return function(_0x56047c){if(_0x56047c){freeIsNotKey(_0x56047c,_0x4ff3cf[_0xe91c('0x20')],'id');for(var _0x3898cc=0x0,_0xc38b09={},_0x2b35c0={};_0x3898cc<_0x56047c[_0xe91c('0x44')];_0x3898cc+=0x1){_0xc38b09=_0x56047c[_0x3898cc];if(_[_0xe91c('0x47')](_0x4ff3cf[_0xe91c('0x20')][_0xc38b09['id']])){_0x4ff3cf[_0xe91c('0x20')][_0xc38b09['id']]=new FreshdeskAccount(_0xc38b09);}else{_0x4ff3cf[_0xe91c('0x42')](_0x4ff3cf[_0xe91c('0x20')][_0xc38b09['id']],_0xc38b09);}}}return _0x4ff3cf[_0xe91c('0x20')];};};Realtime[_0xe91c('0x41')]['initZohoAccounts']=function(){var _0x529f4b=this;return function(_0x4a54fd){if(_0x4a54fd){freeIsNotKey(_0x4a54fd,_0x529f4b[_0xe91c('0x21')],'id');for(var _0x575974=0x0,_0x286b05={},_0x4fa637={};_0x575974<_0x4a54fd['length'];_0x575974+=0x1){_0x286b05=_0x4a54fd[_0x575974];if(_[_0xe91c('0x47')](_0x529f4b[_0xe91c('0x21')][_0x286b05['id']])){_0x529f4b['zohoAccounts'][_0x286b05['id']]=new ZohoAccount(_0x286b05);}else{_0x529f4b[_0xe91c('0x42')](_0x529f4b[_0xe91c('0x21')][_0x286b05['id']],_0x286b05);}}}return _0x529f4b['zohoAccounts'];};};Realtime[_0xe91c('0x41')]['initDeskAccounts']=function(){var _0x3efa2b=this;return function(_0x3c556a){if(_0x3c556a){freeIsNotKey(_0x3c556a,_0x3efa2b['deskAccounts'],'id');for(var _0x502076=0x0,_0x3906f0={},_0x15d3eb={};_0x502076<_0x3c556a[_0xe91c('0x44')];_0x502076+=0x1){_0x3906f0=_0x3c556a[_0x502076];if(_[_0xe91c('0x47')](_0x3efa2b[_0xe91c('0x22')][_0x3906f0['id']])){_0x3efa2b[_0xe91c('0x22')][_0x3906f0['id']]=new DeskAccount(_0x3906f0);}else{_0x3efa2b['mergeFromDatabase'](_0x3efa2b[_0xe91c('0x22')][_0x3906f0['id']],_0x3906f0);}}}return _0x3efa2b[_0xe91c('0x22')];};};Realtime[_0xe91c('0x41')]['initSugarcrmAccounts']=function(){var _0x24afe3=this;return function(_0x510583){if(_0x510583){freeIsNotKey(_0x510583,_0x24afe3['sugarcrmAccounts'],'id');for(var _0x1dbe79=0x0,_0x38fc6f={},_0x531c44={};_0x1dbe79<_0x510583[_0xe91c('0x44')];_0x1dbe79+=0x1){_0x38fc6f=_0x510583[_0x1dbe79];if(_[_0xe91c('0x47')](_0x24afe3[_0xe91c('0x4d')][_0x38fc6f['id']])){_0x24afe3['sugarcrmAccounts'][_0x38fc6f['id']]=new SugarcrmAccount(_0x38fc6f);}else{_0x24afe3['mergeFromDatabase'](_0x24afe3[_0xe91c('0x4d')][_0x38fc6f['id']],_0x38fc6f);}}}return _0x24afe3[_0xe91c('0x4d')];};};Realtime[_0xe91c('0x41')][_0xe91c('0x4e')]=function(){var _0x4f4465=this;return function(_0x136264){if(_0x136264){freeIsNotKey(_0x136264,_0x4f4465[_0xe91c('0x23')],'id');for(var _0x15ea4d=0x0,_0x5df14e={},_0x121f78={};_0x15ea4d<_0x136264[_0xe91c('0x44')];_0x15ea4d+=0x1){_0x5df14e=_0x136264[_0x15ea4d];if(_['isUndefined'](_0x4f4465[_0xe91c('0x23')][_0x5df14e['id']])){_0x4f4465[_0xe91c('0x23')][_0x5df14e['id']]=new VtigerAccount(_0x5df14e);}else{_0x4f4465[_0xe91c('0x42')](_0x4f4465[_0xe91c('0x23')][_0x5df14e['id']],_0x5df14e);}}}return _0x4f4465['vtigerAccounts'];};};Realtime[_0xe91c('0x41')][_0xe91c('0x4f')]=function(){var _0x565be2=this;return function(_0x446eda){for(var _0x12c5c5=0x0;_0x12c5c5<_0x446eda['length'];_0x12c5c5+=0x1){_['merge'](_0x565be2[_0xe91c('0x15')][_0x446eda[_0x12c5c5][_0xe91c('0x27')]],_0x446eda[_0x12c5c5]);}return _0x565be2[_0xe91c('0x15')];};};Realtime[_0xe91c('0x41')]['initVoiceQueueReports']=function(){var _0x4c20ee=this;return function(_0x3da5ed){clearVoiceQueues(_0x4c20ee[_0xe91c('0x15')]);if(_0x3da5ed){_0x3da5ed=_[_0xe91c('0x50')](_0x3da5ed,_0xe91c('0x51'));for(var _0x40310d in _0x3da5ed){if(_0x3da5ed['hasOwnProperty'](_0x40310d)){var _0x52fd55={};for(var _0x5a9dbf=0x0;_0x5a9dbf<_0x3da5ed[_0x40310d][_0xe91c('0x44')];_0x5a9dbf+=0x1){var _0x2f1832=_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x52')];if(_0x4c20ee[_0xe91c('0x15')][_0x2f1832]){if(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x53')]){_0x4c20ee['voiceQueues'][_0x2f1832][_0xe91c('0x33')]+=0x1;}if(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x54')]){_0x4c20ee['voiceQueues'][_0x2f1832][_0xe91c('0x34')]+=0x1;}_0x4c20ee['voiceQueues'][_0x2f1832][_0xe91c('0x2c')]+=moment(_0x3da5ed[_0x40310d][_0x5a9dbf]['queuecallerleaveAt'])[_0xe91c('0x55')](moment(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x56')]),'seconds')||0x0;if(_0x5a9dbf===_0x3da5ed[_0x40310d][_0xe91c('0x44')]-0x1){_0x4c20ee['voiceQueues'][_0x2f1832]['sumDuration']+=moment(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x57')]||_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x58')]||_0x3da5ed[_0x40310d][_0x5a9dbf]['queuecallerexitAt'])[_0xe91c('0x55')](moment(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x56')]),_0xe91c('0x59'))||0x0;_0x4c20ee[_0xe91c('0x15')][_0x2f1832][_0xe91c('0x2b')]+=0x1;if(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x5a')]){_0x4c20ee[_0xe91c('0x15')][_0x2f1832][_0xe91c('0x32')]+=0x1;_0x4c20ee['voiceQueues'][_0x2f1832][_0xe91c('0x2e')]+=moment(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x57')])[_0xe91c('0x55')](moment(_0x3da5ed[_0x40310d][_0x5a9dbf][_0xe91c('0x5b')]),_0xe91c('0x59'))||0x0;}}else{_0x4c20ee[_0xe91c('0x15')][_0x2f1832][_0xe91c('0x2d')]+=_0x4c20ee['voiceQueues'][_0x2f1832][_0xe91c('0x2c')]||0x0;}}}}}}return _0x4c20ee['voiceQueues'];};};Realtime['prototype'][_0xe91c('0x5c')]=function(){var _0x5390ce=this;return function(_0x6beb2){clearVoiceCallReports(_0x5390ce[_0xe91c('0x19')]);if(_0x6beb2){for(var _0x5581ce=0x0;_0x5581ce<_0x6beb2[_0xe91c('0x44')];_0x5581ce+=0x1){_0x5390ce['outbound']['total']+=0x1;_0x5390ce[_0xe91c('0x19')][_0xe91c('0x2d')]+=_0x6beb2[_0x5581ce]['duration'];if(_0x6beb2[_0x5581ce][_0xe91c('0x5d')]==='ANSWERED'){_0x5390ce[_0xe91c('0x19')]['answered']+=0x1;_0x5390ce[_0xe91c('0x19')][_0xe91c('0x2c')]+=_0x6beb2[_0x5581ce][_0xe91c('0x5e')]-_0x6beb2[_0x5581ce]['billableseconds']||0x0;_0x5390ce[_0xe91c('0x19')][_0xe91c('0x2e')]+=_0x6beb2[_0x5581ce]['billableseconds'];}}}return _0x5390ce[_0xe91c('0x19')];};};Realtime[_0xe91c('0x41')]['initCampaigns']=function(){var _0x4761b8=this;return function(_0x31722d){if(_0x31722d){freeIsNotKey(_0x31722d,_0x4761b8['campaigns'],_0xe91c('0x27'));for(var _0xac66ff=0x0,_0x14dc6c={};_0xac66ff<_0x31722d[_0xe91c('0x44')];_0xac66ff+=0x1){_0x14dc6c=_0x31722d[_0xac66ff];if(_[_0xe91c('0x47')](_0x4761b8['campaigns'][_0x14dc6c['name']])){_0x4761b8[_0xe91c('0x17')][_0x14dc6c[_0xe91c('0x27')]]=new Campaign(_0x14dc6c);}else{_0x4761b8[_0xe91c('0x42')](_0x4761b8[_0xe91c('0x17')][_0x14dc6c[_0xe91c('0x27')]],_0x14dc6c);}}}return _0x4761b8[_0xe91c('0x17')];};};Realtime['prototype'][_0xe91c('0x5f')]=function(){var _0x14b64b=this;return function(_0x7931b6){if(_0x7931b6){freeIsNotKey(_0x7931b6,_0x14b64b[_0xe91c('0x60')],'id');for(var _0x5cc910=0x0,_0x2e6238={};_0x5cc910<_0x7931b6[_0xe91c('0x44')];_0x5cc910+=0x1){_0x2e6238=_0x7931b6[_0x5cc910];if(_['isUndefined'](_0x14b64b[_0xe91c('0x60')][_0x2e6238['id']])){_0x14b64b['voiceExtensions'][_0x2e6238['id']]=new VoiceExtension(_0x2e6238);}else{_0x14b64b[_0xe91c('0x42')](_0x14b64b[_0xe91c('0x60')][_0x2e6238['id']],_0x2e6238);}}}return _0x14b64b['voiceExtensions'];};};Realtime[_0xe91c('0x41')]['initCampaignHopperHistory']=function(){var _0x356350=this;return function(_0x4ecaa2){clearCampaigns(_0x356350[_0xe91c('0x17')]);for(var _0x4421d4=0x0;_0x4421d4<_0x4ecaa2[_0xe91c('0x44')];_0x4421d4+=0x1){_['merge'](_0x356350['campaigns'][_0x4ecaa2[_0x4421d4][_0xe91c('0x27')]],_0x4ecaa2[_0x4421d4]);}return _0x356350[_0xe91c('0x17')];};};Realtime[_0xe91c('0x41')][_0xe91c('0x61')]=function(){var _0x575cb4=this;return function(_0xe7f408){if(_0xe7f408){freeIsNotKey(_0xe7f408,_0x575cb4[_0xe91c('0x24')],'id');for(var _0x1c81cb=0x0,_0x41fa64={},_0x4a7005={};_0x1c81cb<_0xe7f408[_0xe91c('0x44')];_0x1c81cb+=0x1){_0x41fa64=_0xe7f408[_0x1c81cb];if(_[_0xe91c('0x47')](_0x575cb4[_0xe91c('0x24')][_0x41fa64['id']])){_0x575cb4[_0xe91c('0x24')][_0x41fa64['id']]=new FaxAccount(_0x41fa64);}else{_0x575cb4[_0xe91c('0x42')](_0x575cb4[_0xe91c('0x24')][_0x41fa64['id']],_0x41fa64);}}}return _0x575cb4[_0xe91c('0x24')];};};module[_0xe91c('0x62')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x115d=['indexOf','mobile','phone','lastIndexOf','membername','blindTransfer','attendedTransfer','bluebird','lodash','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','accountcode','name','isNil','find','interface','format','length','findAgent','connectedlinenum','assigned','lastAssignedTo','SIP/%s','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','voiceQueueReport','create','match','destination','type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','channel','destinationchannel','calleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','monitors','monitorFilename','filename','createdAt','exten','connectedlinename','voiceDialReport','startsWith','Local','substring'];(function(_0x4a9d1c,_0x122fba){var _0x5ef6e4=function(_0x453f22){while(--_0x453f22){_0x4a9d1c['push'](_0x4a9d1c['shift']());}};_0x5ef6e4(++_0x122fba);}(_0x115d,0x1bd));var _0xd115=function(_0x37b3c0,_0x4dee31){_0x37b3c0=_0x37b3c0-0x0;var _0x2039f3=_0x115d[_0x37b3c0];return _0x2039f3;};'use strict';var BPromise=require(_0xd115('0x0'));var _=require(_0xd115('0x1'));var moment=require('moment');var util=require('util');var logger=require(_0xd115('0x2'))(_0xd115('0x3'));var ami=require(_0xd115('0x4'));var RpcVoiceAgentReport=require(_0xd115('0x5'));var RpcVoiceCallReport=require(_0xd115('0x6'));var RpcVoiceDialReport=require(_0xd115('0x7'));var RpcMemberReport=require(_0xd115('0x8'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xd115('0x9'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xd115('0xa'));var VoiceCallReport=require(_0xd115('0xb'));var VoiceAgentReport=require(_0xd115('0xc'));var VoiceDialReport=require(_0xd115('0xd'));var UserReport=require(_0xd115('0xe'));function Report(_0x155fe5){this[_0xd115('0xf')]=_0x155fe5;this[_0xd115('0x10')]=_0x155fe5[_0xd115('0x10')];this['telephones']=_0x155fe5[_0xd115('0x11')];}Report[_0xd115('0x12')]['sync']=function(_0xdb1bd3){var _0x51b223=new VoiceQueueReport(this[_0xd115('0xf')]);var _0x2bfbc5=new VoiceAgentReport(this['realtime']);var _0x25aa2c=new VoiceDialReport(this[_0xd115('0xf')]);var _0x24eb8f=new VoiceCallReport(this['realtime']);var _0x25e202=new UserReport(this['realtime']);};Report['prototype']['findAgent']=function(_0x1198bd){var _0x2c7825=undefined;_0x2c7825=_['find'](this[_0xd115('0x10')],function(_0x2ea660){return _0x2ea660[_0xd115('0x13')]==_0x1198bd||_0x2ea660[_0xd115('0x14')]==_0x1198bd;});if(_[_0xd115('0x15')](_0x2c7825)){var _0x524d56=_[_0xd115('0x16')](this[_0xd115('0x11')],function(_0x31d5b7){return _0x31d5b7['accountcode']==_0x1198bd||_0x31d5b7['name']==_0x1198bd;});if(_0x524d56){_0x2c7825=_['find'](this[_0xd115('0x10')],function(_0x360d8a){return _0x360d8a[_0xd115('0x17')]==util[_0xd115('0x18')]('SIP/%s',_0x524d56[_0xd115('0x14')]);});}}return _0x2c7825;};Report[_0xd115('0x12')]['voiceQueueReport']=function(_0x16c81f){for(var _0x5e7a28=0x0;_0x5e7a28<_0x16c81f[_0xd115('0x19')];_0x5e7a28+=0x1){var _0x2bf710=this[_0xd115('0x1a')](_0x16c81f[_0x5e7a28][_0xd115('0x1b')]);if(_0x2bf710){_0x16c81f[_0x5e7a28][_0xd115('0x13')]=_0x2bf710[_0xd115('0x13')];_0x16c81f[_0x5e7a28][_0xd115('0x1c')]=!![];_0x16c81f[_0x5e7a28][_0xd115('0x1d')]=_0x2bf710[_0xd115('0x14')];_0x16c81f[_0x5e7a28][_0xd115('0x17')]=_['isNil'](_0x2bf710[_0xd115('0x17')])?util[_0xd115('0x18')](_0xd115('0x1e'),_0x2bf710[_0xd115('0x14')]):_0x2bf710[_0xd115('0x17')];if(_0x16c81f[_0x5e7a28][_0xd115('0x1f')]){_0x16c81f[_0x5e7a28]['queuecallercompleteAt']=moment()[_0xd115('0x18')](_0xd115('0x20'));}if(_0x16c81f[_0x5e7a28][_0xd115('0x21')]){_0x16c81f[_0x5e7a28]['queuecallerexitAt']=moment()[_0xd115('0x18')](_0xd115('0x20'));}RpcMemberReport[_0xd115('0x22')](_0x16c81f[_0x5e7a28]);}RpcVoiceQueueReport[_0xd115('0x23')](_0x16c81f[_0x5e7a28]);}};function extractCalleridNumber(_0x44e30b){var _0x503619=_0x44e30b[_0xd115('0x24')](/<(.*?)>/);return _0x503619?_0x503619[0x1]:_0x44e30b;}Report[_0xd115('0x12')]['voiceCallReport']=function(_0x226f8f){_0x226f8f[_0xd115('0x25')]=_0x226f8f['destination']||_0x226f8f['exten'];if(_0x226f8f[_0xd115('0x26')]==_0xd115('0x27')){_0x226f8f['lastapplication']=_0xd115('0x28');_0x226f8f[_0xd115('0x29')]=_0x226f8f[_0xd115('0x28')];if(_0x226f8f[_0xd115('0x2a')]==_0xd115('0x2b')){_0x226f8f[_0xd115('0x13')]='';_0x226f8f[_0xd115('0x25')]=extractCalleridNumber(_0x226f8f[_0xd115('0x2c')]);}else if(_0x226f8f['context']==_0xd115('0x2d')){if(_0x226f8f[_0xd115('0x25')]==_0xd115('0x2e')){_0x226f8f[_0xd115('0x25')]=extractCalleridNumber(_0x226f8f[_0xd115('0x2f')]);_0x226f8f['calleridnum']=_0x226f8f[_0xd115('0x30')];_0x226f8f['destinationchannel']=[_0x226f8f[_0xd115('0x31')],_0x226f8f['channel']=_0x226f8f[_0xd115('0x32')]][0x0];_0x226f8f[_0xd115('0x2c')]=_0x226f8f[_0xd115('0x2f')];}else{_0x226f8f[_0xd115('0x25')]=_0x226f8f['calleridnum'];_0x226f8f[_0xd115('0x33')]=_0x226f8f[_0xd115('0x30')];if(_0x226f8f[_0xd115('0x34')]==_0xd115('0x35')){_0x226f8f[_0xd115('0x13')]=_0x226f8f['connectedlinenum'];}else{_0x226f8f[_0xd115('0x13')]='';}}}}else{_0x226f8f[_0xd115('0x2c')]=util[_0xd115('0x18')](_0xd115('0x36'),_0x226f8f[_0xd115('0x37')],_0x226f8f['calleridnum']);}RpcVoiceCallReport['create'](_0x226f8f);if(_0x226f8f['monitor']){for(var _0x29943d=0x0;_0x29943d<_0x226f8f[_0xd115('0x38')][_0xd115('0x19')];_0x29943d+=0x1){_0x226f8f[_0xd115('0x39')]=_0x226f8f[_0xd115('0x38')][_0x29943d][_0xd115('0x3a')];_0x226f8f[_0xd115('0x3b')]=_0x226f8f[_0xd115('0x38')][_0x29943d][_0xd115('0x3b')];if(_0x226f8f[_0xd115('0x3c')]==_0xd115('0x2e')){_0x226f8f[_0xd115('0x33')]=_0x226f8f[_0xd115('0x1b')];_0x226f8f['calleridname']=_0x226f8f[_0xd115('0x3d')];_0x226f8f['connectedlinenum']=_0x226f8f['accountcode'];_0x226f8f['connectedlinename']=_0x226f8f['membername'];_0x226f8f['exten']=_0x226f8f['originatecalleridnum'];}else if(_0x226f8f[_0xd115('0x3c')]=='xcally-motion-dialer'){_0x226f8f[_0xd115('0x33')]=_0x226f8f[_0xd115('0x25')];_0x226f8f[_0xd115('0x3c')]=_0x226f8f[_0xd115('0x30')];}RpcVoiceRecording['create'](_0x226f8f);}}};Report[_0xd115('0x12')]['voiceAgentReport']=function(_0x472a2b){RpcVoiceAgentReport[_0xd115('0x23')](_0x472a2b);};Report['prototype'][_0xd115('0x3e')]=function(_0x7bf54c){RpcVoiceDialReport[_0xd115('0x23')](_0x7bf54c);var _0x22367c=undefined;var _0xe56e52=_0x7bf54c[_0xd115('0x31')];if(_[_0xd115('0x3f')](_0xe56e52,_0xd115('0x40'))){var _0x27b4fb=_0xe56e52[_0xd115('0x41')](_0xe56e52[_0xd115('0x42')]('/')+0x1,_0xe56e52[_0xd115('0x42')]('@'));_0x22367c=_[_0xd115('0x16')](this[_0xd115('0x10')],function(_0x1ed290){return _0x1ed290[_0xd115('0x43')]==_0x27b4fb||_0x1ed290[_0xd115('0x44')]==_0x27b4fb||_0x1ed290[_0xd115('0x13')]==_0x27b4fb;});}else{var _0x27b4fb=_0xe56e52[_0xd115('0x41')](_0xe56e52[_0xd115('0x42')]('/')+0x1,_0xe56e52[_0xd115('0x45')]('-'));_0x22367c=this[_0xd115('0x1a')](_0x27b4fb);}if(_0x22367c){_0x7bf54c[_0xd115('0x17')]=_[_0xd115('0x15')](_0x22367c[_0xd115('0x17')])?util[_0xd115('0x18')](_0xd115('0x1e'),_0x22367c[_0xd115('0x14')]):_0x22367c[_0xd115('0x17')];_0x7bf54c[_0xd115('0x46')]=_0x22367c[_0xd115('0x14')];_0x7bf54c['accountcode']=_0x22367c[_0xd115('0x13')];RpcMemberReport['voiceDialReport'](_0x7bf54c);}};Report[_0xd115('0x12')]['blindTransfer']=function(_0x44cf9e){RpcVoiceTransferReport[_0xd115('0x47')](_0x44cf9e);};Report[_0xd115('0x12')][_0xd115('0x48')]=function(_0x18a843){RpcVoiceTransferReport[_0xd115('0x48')](_0x18a843);};module['exports']=Report;
\ No newline at end of file
+var _0xf8eb=['connectedlinename','membername','xcally-motion-dialer','originatecalleridnum','voiceDialReport','startsWith','Local','indexOf','phone','substring','blindTransfer','attendedTransfer','exports','lodash','moment','util','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','voiceQueueReport','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','voiceCallReport','destination','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridnum','channel','calleridpreview','callerid','\x22%s\x22\x20<%s>','monitor','monitors','filename','createdAt','exten'];(function(_0xa60623,_0x2d4e4f){var _0x4a6487=function(_0xba6cbe){while(--_0xba6cbe){_0xa60623['push'](_0xa60623['shift']());}};_0x4a6487(++_0x2d4e4f);}(_0xf8eb,0x9b));var _0xbf8e=function(_0x195a3e,_0x37fca9){_0x195a3e=_0x195a3e-0x0;var _0x1fba68=_0xf8eb[_0x195a3e];return _0x1fba68;};'use strict';var BPromise=require('bluebird');var _=require(_0xbf8e('0x0'));var moment=require(_0xbf8e('0x1'));var util=require(_0xbf8e('0x2'));var logger=require('../../../config/logger')('ami');var ami=require(_0xbf8e('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xbf8e('0x4'));var RpcVoiceDialReport=require(_0xbf8e('0x5'));var RpcMemberReport=require(_0xbf8e('0x6'));var RpcVoiceQueueReport=require(_0xbf8e('0x7'));var RpcVoiceRecording=require(_0xbf8e('0x8'));var RpcVoiceTransferReport=require(_0xbf8e('0x9'));var VoiceQueueReport=require(_0xbf8e('0xa'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0xbf8e('0xb'));var VoiceDialReport=require(_0xbf8e('0xc'));var UserReport=require(_0xbf8e('0xd'));function Report(_0x3fc598){this['realtime']=_0x3fc598;this[_0xbf8e('0xe')]=_0x3fc598['agents'];this['telephones']=_0x3fc598[_0xbf8e('0xf')];}Report[_0xbf8e('0x10')][_0xbf8e('0x11')]=function(_0x2b25da){var _0x1a25b3=new VoiceQueueReport(this[_0xbf8e('0x12')]);var _0x3b25a9=new VoiceAgentReport(this['realtime']);var _0x4d41f0=new VoiceDialReport(this['realtime']);var _0xb5f6a1=new VoiceCallReport(this[_0xbf8e('0x12')]);var _0x596b02=new UserReport(this[_0xbf8e('0x12')]);};Report['prototype'][_0xbf8e('0x13')]=function(_0xfbf8a5){var _0x3b2282=undefined;_0x3b2282=_[_0xbf8e('0x14')](this[_0xbf8e('0xe')],function(_0x2fe7b9){return _0x2fe7b9[_0xbf8e('0x15')]==_0xfbf8a5||_0x2fe7b9[_0xbf8e('0x16')]==_0xfbf8a5;});if(_[_0xbf8e('0x17')](_0x3b2282)){var _0x52ae00=_[_0xbf8e('0x14')](this[_0xbf8e('0xf')],function(_0x27933e){return _0x27933e['accountcode']==_0xfbf8a5||_0x27933e['name']==_0xfbf8a5;});if(_0x52ae00){_0x3b2282=_[_0xbf8e('0x14')](this['agents'],function(_0x39b1d3){return _0x39b1d3[_0xbf8e('0x18')]==util[_0xbf8e('0x19')](_0xbf8e('0x1a'),_0x52ae00[_0xbf8e('0x16')]);});}}return _0x3b2282;};Report[_0xbf8e('0x10')][_0xbf8e('0x1b')]=function(_0x514064){for(var _0xe46c0=0x0;_0xe46c0<_0x514064[_0xbf8e('0x1c')];_0xe46c0+=0x1){var _0x2b5414=this['findAgent'](_0x514064[_0xe46c0][_0xbf8e('0x1d')]);if(_0x2b5414){_0x514064[_0xe46c0][_0xbf8e('0x15')]=_0x2b5414[_0xbf8e('0x15')];_0x514064[_0xe46c0][_0xbf8e('0x1e')]=!![];_0x514064[_0xe46c0][_0xbf8e('0x1f')]=_0x2b5414[_0xbf8e('0x16')];_0x514064[_0xe46c0]['interface']=_[_0xbf8e('0x17')](_0x2b5414[_0xbf8e('0x18')])?util[_0xbf8e('0x19')](_0xbf8e('0x1a'),_0x2b5414[_0xbf8e('0x16')]):_0x2b5414[_0xbf8e('0x18')];if(_0x514064[_0xe46c0][_0xbf8e('0x20')]){_0x514064[_0xe46c0][_0xbf8e('0x21')]=moment()[_0xbf8e('0x19')](_0xbf8e('0x22'));}if(_0x514064[_0xe46c0][_0xbf8e('0x23')]){_0x514064[_0xe46c0][_0xbf8e('0x24')]=moment()[_0xbf8e('0x19')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0xbf8e('0x1b')](_0x514064[_0xe46c0]);}RpcVoiceQueueReport[_0xbf8e('0x25')](_0x514064[_0xe46c0]);}};function extractCalleridNumber(_0x1d49f6){var _0x1a4e8e=_0x1d49f6['match'](/<(.*?)>/);return _0x1a4e8e?_0x1a4e8e[0x1]:_0x1d49f6;}Report['prototype'][_0xbf8e('0x26')]=function(_0x52cc76){_0x52cc76[_0xbf8e('0x27')]=_0x52cc76[_0xbf8e('0x27')]||_0x52cc76['exten'];if(_0x52cc76['type']==_0xbf8e('0x28')){_0x52cc76[_0xbf8e('0x29')]=_0xbf8e('0x2a');_0x52cc76[_0xbf8e('0x2b')]=_0x52cc76['queue'];if(_0x52cc76[_0xbf8e('0x2c')]==_0xbf8e('0x2d')){_0x52cc76[_0xbf8e('0x15')]='';_0x52cc76[_0xbf8e('0x27')]=extractCalleridNumber(_0x52cc76['callerid']);}else if(_0x52cc76['context']==_0xbf8e('0x2e')){if(_0x52cc76[_0xbf8e('0x27')]==_0xbf8e('0x2f')){_0x52cc76[_0xbf8e('0x27')]=extractCalleridNumber(_0x52cc76['calleridpreview']);_0x52cc76[_0xbf8e('0x30')]=_0x52cc76['originatecalleridnum'];_0x52cc76['destinationchannel']=[_0x52cc76[_0xbf8e('0x31')],_0x52cc76[_0xbf8e('0x31')]=_0x52cc76['destinationchannel']][0x0];_0x52cc76['callerid']=_0x52cc76[_0xbf8e('0x32')];}else{_0x52cc76[_0xbf8e('0x27')]=_0x52cc76[_0xbf8e('0x30')];_0x52cc76['calleridnum']=_0x52cc76['originatecalleridnum'];if(_0x52cc76['disposition']=='ANSWERED'){_0x52cc76[_0xbf8e('0x15')]=_0x52cc76[_0xbf8e('0x1d')];}else{_0x52cc76[_0xbf8e('0x15')]='';}}}}else{_0x52cc76[_0xbf8e('0x33')]=util[_0xbf8e('0x19')](_0xbf8e('0x34'),_0x52cc76['calleridname'],_0x52cc76['calleridnum']);}RpcVoiceCallReport[_0xbf8e('0x25')](_0x52cc76);if(_0x52cc76[_0xbf8e('0x35')]){for(var _0x566c19=0x0;_0x566c19<_0x52cc76[_0xbf8e('0x36')][_0xbf8e('0x1c')];_0x566c19+=0x1){_0x52cc76['monitorFilename']=_0x52cc76[_0xbf8e('0x36')][_0x566c19][_0xbf8e('0x37')];_0x52cc76[_0xbf8e('0x38')]=_0x52cc76['monitors'][_0x566c19][_0xbf8e('0x38')];if(_0x52cc76[_0xbf8e('0x39')]==_0xbf8e('0x2f')){_0x52cc76[_0xbf8e('0x30')]=_0x52cc76[_0xbf8e('0x1d')];_0x52cc76['calleridname']=_0x52cc76[_0xbf8e('0x3a')];_0x52cc76['connectedlinenum']=_0x52cc76['accountcode'];_0x52cc76[_0xbf8e('0x3a')]=_0x52cc76[_0xbf8e('0x3b')];_0x52cc76['exten']=_0x52cc76['originatecalleridnum'];}else if(_0x52cc76['exten']==_0xbf8e('0x3c')){_0x52cc76[_0xbf8e('0x30')]=_0x52cc76[_0xbf8e('0x27')];_0x52cc76[_0xbf8e('0x39')]=_0x52cc76[_0xbf8e('0x3d')];}RpcVoiceRecording[_0xbf8e('0x25')](_0x52cc76);}}};Report['prototype']['voiceAgentReport']=function(_0x446289){RpcVoiceAgentReport[_0xbf8e('0x25')](_0x446289);};Report[_0xbf8e('0x10')][_0xbf8e('0x3e')]=function(_0x42ced5){RpcVoiceDialReport[_0xbf8e('0x25')](_0x42ced5);var _0x10ff4d=undefined;var _0x1fc7d5=_0x42ced5[_0xbf8e('0x31')];if(_[_0xbf8e('0x3f')](_0x1fc7d5,_0xbf8e('0x40'))){var _0x3068b7=_0x1fc7d5['substring'](_0x1fc7d5[_0xbf8e('0x41')]('/')+0x1,_0x1fc7d5[_0xbf8e('0x41')]('@'));_0x10ff4d=_[_0xbf8e('0x14')](this[_0xbf8e('0xe')],function(_0x102d4b){return _0x102d4b['mobile']==_0x3068b7||_0x102d4b[_0xbf8e('0x42')]==_0x3068b7||_0x102d4b['accountcode']==_0x3068b7;});}else{var _0x3068b7=_0x1fc7d5[_0xbf8e('0x43')](_0x1fc7d5['indexOf']('/')+0x1,_0x1fc7d5['lastIndexOf']('-'));_0x10ff4d=this[_0xbf8e('0x13')](_0x3068b7);}if(_0x10ff4d){_0x42ced5[_0xbf8e('0x18')]=_['isNil'](_0x10ff4d[_0xbf8e('0x18')])?util['format'](_0xbf8e('0x1a'),_0x10ff4d[_0xbf8e('0x16')]):_0x10ff4d[_0xbf8e('0x18')];_0x42ced5[_0xbf8e('0x3b')]=_0x10ff4d[_0xbf8e('0x16')];_0x42ced5[_0xbf8e('0x15')]=_0x10ff4d[_0xbf8e('0x15')];RpcMemberReport[_0xbf8e('0x3e')](_0x42ced5);}};Report['prototype'][_0xbf8e('0x44')]=function(_0x4559a4){RpcVoiceTransferReport[_0xbf8e('0x44')](_0x4559a4);};Report['prototype'][_0xbf8e('0x45')]=function(_0x24ef87){RpcVoiceTransferReport[_0xbf8e('0x45')](_0x24ef87);};module[_0xbf8e('0x46')]=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3d3=['prototype','actionSipShowRegistry','actionSipPeerStatus','isNotNull','isUndefined','emit','find','stateRegistry','state','merge','actionid','username','trunk:%s','name','trunk:save','[syncRegistry][UserReport]','device','local','toLowerCase','inuse','stateTime','toNumber','format','telephone:%s','Queue','startsWith','Local','indexOf','phone','accountcode','updateStatusRealtime','[syncDeviceState][UserReport]','peer','peerstatus','registered','status','address','exports','bluebird','util','../ami','redis','defaults','localhost','trunks','agents','telephones','registryentry','syncRegistry','registry','bind','devicestatechange','syncDeviceState','syncPeerStatus','loopSyncRealTimeShow','resolve','then','actionDeviceStateList','catch','[loopSyncRealTimeShow]','error','inspect'];(function(_0x84054a,_0x2df2a2){var _0x374e61=function(_0x139a0c){while(--_0x139a0c){_0x84054a['push'](_0x84054a['shift']());}};_0x374e61(++_0x2df2a2);}(_0xd3d3,0x19a));var _0x3d3d=function(_0x58dc25,_0x49b9d5){_0x58dc25=_0x58dc25-0x0;var _0x21b0a7=_0xd3d3[_0x58dc25];return _0x21b0a7;};'use strict';var _=require('lodash');var moment=require('moment');var BPromise=require(_0x3d3d('0x0'));var util=require(_0x3d3d('0x1'));var config=require('../../../config/environment');var logger=require('../../../config/logger')('ami');var ami=require(_0x3d3d('0x2'));config[_0x3d3d('0x3')]=_[_0x3d3d('0x4')](config['redis'],{'host':_0x3d3d('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(config[_0x3d3d('0x3')]);function UserReport(_0x2b6c5a){this[_0x3d3d('0x6')]=_0x2b6c5a[_0x3d3d('0x6')];this[_0x3d3d('0x7')]=_0x2b6c5a[_0x3d3d('0x7')];this[_0x3d3d('0x8')]=_0x2b6c5a['telephones'];ami['on'](_0x3d3d('0x9'),this[_0x3d3d('0xa')]['bind'](this));ami['on'](_0x3d3d('0xb'),this[_0x3d3d('0xa')][_0x3d3d('0xc')](this));ami['on'](_0x3d3d('0xd'),this[_0x3d3d('0xe')][_0x3d3d('0xc')](this));ami['on']('peerstatus',this[_0x3d3d('0xf')]['bind'](this));this[_0x3d3d('0x10')]();return BPromise[_0x3d3d('0x11')]()[_0x3d3d('0x12')](ami['actionSipShowRegistry']())[_0x3d3d('0x12')](ami[_0x3d3d('0x13')]())[_0x3d3d('0x12')](ami['actionSipPeerStatus']())[_0x3d3d('0x14')](loggerCatch(_0x3d3d('0x15')));}function loggerCatch(_0x234a86){return function(_0x16274f){logger[_0x3d3d('0x16')](_0x234a86,util[_0x3d3d('0x17')](_0x16274f,{'showHidden':![],'depth':null}));};}UserReport[_0x3d3d('0x18')]['loopSyncRealTimeShow']=function(){setInterval(function(){BPromise[_0x3d3d('0x11')]()[_0x3d3d('0x12')](ami[_0x3d3d('0x19')]())['then'](ami[_0x3d3d('0x13')]())[_0x3d3d('0x12')](ami[_0x3d3d('0x1a')]())[_0x3d3d('0x14')](loggerCatch(_0x3d3d('0x15')));},0x32c8);};UserReport[_0x3d3d('0x18')][_0x3d3d('0x1b')]=function(_0x4eff34){return _0x4eff34!==null&&!_[_0x3d3d('0x1c')](_0x4eff34);};UserReport['prototype'][_0x3d3d('0x1d')]=function(_0x18ae8c,_0x5691d9,_0x5ede83){io['to'](_0x18ae8c)[_0x3d3d('0x1d')](_0x5691d9,_0x5ede83);};UserReport[_0x3d3d('0x18')][_0x3d3d('0xa')]=function(_0x84fb01){try{if(this['isNotNull'](_0x84fb01)){var _0x4291cb=_[_0x3d3d('0x1e')](this[_0x3d3d('0x6')],{'registry':_0x84fb01['username']});if(_0x4291cb){_0x84fb01[_0x3d3d('0x1f')]=_0x84fb01[_0x3d3d('0x20')];_[_0x3d3d('0x21')](_0x4291cb,_['omit'](_0x84fb01,['event',_0x3d3d('0x22'),_0x3d3d('0x23'),_0x3d3d('0x20')]));this[_0x3d3d('0x1d')](util['format'](_0x3d3d('0x24'),_0x4291cb[_0x3d3d('0x25')]),_0x3d3d('0x26'),_0x4291cb);}}}catch(_0x16d8af){logger[_0x3d3d('0x16')](_0x3d3d('0x27'),util[_0x3d3d('0x17')](_0x16d8af,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncDeviceState']=function(_0x4b4e04){try{if(this['isNotNull'](_0x4b4e04)){if(this['agents'][_0x4b4e04['device']]){if(!this[_0x3d3d('0x7')][_0x4b4e04[_0x3d3d('0x28')]][_0x3d3d('0x29')]||_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]()==_0x3d3d('0x2b')){this[_0x3d3d('0x7')][_0x4b4e04['device']][_0x3d3d('0x29')]=![];if(this[_0x3d3d('0x7')][_0x4b4e04[_0x3d3d('0x28')]][_0x3d3d('0x20')]!==_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]()){this['agents'][_0x4b4e04[_0x3d3d('0x28')]][_0x3d3d('0x2c')]=_[_0x3d3d('0x2d')](moment()[_0x3d3d('0x2e')]('x'));}this[_0x3d3d('0x7')][_0x4b4e04['device']]['state']=_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]();this[_0x3d3d('0x7')][_0x4b4e04[_0x3d3d('0x28')]]['updateStatusRealtime'](_0x4b4e04);}}else if(this['telephones'][_0x4b4e04[_0x3d3d('0x28')]]){if(this[_0x3d3d('0x8')][_0x4b4e04[_0x3d3d('0x28')]][_0x3d3d('0x20')]!==_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]()){this[_0x3d3d('0x8')][_0x4b4e04[_0x3d3d('0x28')]][_0x3d3d('0x2c')]=_[_0x3d3d('0x2d')](moment()[_0x3d3d('0x2e')]('x'));}this['telephones'][_0x4b4e04[_0x3d3d('0x28')]][_0x3d3d('0x20')]=_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]();this[_0x3d3d('0x1d')](util[_0x3d3d('0x2e')](_0x3d3d('0x2f'),this[_0x3d3d('0x8')][_0x4b4e04[_0x3d3d('0x28')]]['name']),'telephone:save',this[_0x3d3d('0x8')][_0x4b4e04[_0x3d3d('0x28')]]);}else if(this['trunks'][_0x4b4e04[_0x3d3d('0x28')]]){if(this[_0x3d3d('0x6')][_0x4b4e04['device']][_0x3d3d('0x20')]!==_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]()){this[_0x3d3d('0x6')][_0x4b4e04['device']][_0x3d3d('0x2c')]=_[_0x3d3d('0x2d')](moment()[_0x3d3d('0x2e')]('x'));}this[_0x3d3d('0x6')][_0x4b4e04[_0x3d3d('0x28')]]['state']=_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]();this['emit'](util[_0x3d3d('0x2e')](_0x3d3d('0x24'),this[_0x3d3d('0x6')][_0x4b4e04['device']][_0x3d3d('0x25')]),'trunk:save',this[_0x3d3d('0x6')][_0x4b4e04[_0x3d3d('0x28')]]);}else if(_['startsWith'](_0x4b4e04[_0x3d3d('0x28')],_0x3d3d('0x30'))){}else if(_[_0x3d3d('0x31')](_0x4b4e04[_0x3d3d('0x28')],_0x3d3d('0x32'))){var _0x42dce9=_0x4b4e04['device'];var _0x478f40=_0x42dce9['substring'](_0x42dce9[_0x3d3d('0x33')]('/')+0x1,_0x42dce9[_0x3d3d('0x33')]('@'));var _0x460a20=_[_0x3d3d('0x1e')](this[_0x3d3d('0x7')],function(_0x214357){return _0x214357['mobile']==_0x478f40||_0x214357[_0x3d3d('0x34')]==_0x478f40||_0x214357[_0x3d3d('0x35')]==_0x478f40;});if(_0x460a20){if(_0x460a20[_0x3d3d('0x20')]!==_0x4b4e04[_0x3d3d('0x20')]['toLowerCase']()){_0x460a20[_0x3d3d('0x2c')]=_['toNumber'](moment()[_0x3d3d('0x2e')]('x'));}_0x460a20[_0x3d3d('0x20')]=_0x4b4e04[_0x3d3d('0x20')][_0x3d3d('0x2a')]();_0x460a20['local']=!![];_0x460a20[_0x3d3d('0x36')](_0x4b4e04);}}else{}}}catch(_0x8826ee){logger['error'](_0x3d3d('0x37'),util['inspect'](_0x8826ee,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncPeerStatus']=function(_0x35ab8f){try{if(this['isNotNull'](_0x35ab8f)&&this[_0x3d3d('0x1b')](_0x35ab8f['peerstatus'])){if(this['agents'][_0x35ab8f['peer']]){if(!this[_0x3d3d('0x7')][_0x35ab8f[_0x3d3d('0x38')]]['local']||_0x35ab8f[_0x3d3d('0x39')]['toLowerCase']()==_0x3d3d('0x3a')){this[_0x3d3d('0x7')][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x29')]=![];this[_0x3d3d('0x7')][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x3b')]=_0x35ab8f[_0x3d3d('0x39')][_0x3d3d('0x2a')]();this[_0x3d3d('0x7')][_0x35ab8f['peer']][_0x3d3d('0x3c')]=_0x35ab8f[_0x3d3d('0x3c')];this[_0x3d3d('0x7')][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x36')](_0x35ab8f);}}else if(this['telephones'][_0x35ab8f[_0x3d3d('0x38')]]){this[_0x3d3d('0x8')][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x3b')]=_0x35ab8f[_0x3d3d('0x39')][_0x3d3d('0x2a')]();this['telephones'][_0x35ab8f[_0x3d3d('0x38')]]['address']=_0x35ab8f[_0x3d3d('0x3c')];this[_0x3d3d('0x1d')](util['format']('telephone:%s',this['telephones'][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x25')]),'telephone:save',this['telephones'][_0x35ab8f[_0x3d3d('0x38')]]);}else if(this[_0x3d3d('0x6')][_0x35ab8f[_0x3d3d('0x38')]]){this[_0x3d3d('0x6')][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x3b')]=_0x35ab8f[_0x3d3d('0x39')][_0x3d3d('0x2a')]();this['trunks'][_0x35ab8f[_0x3d3d('0x38')]][_0x3d3d('0x3c')]=_0x35ab8f['address'];this[_0x3d3d('0x1d')](util[_0x3d3d('0x2e')](_0x3d3d('0x24'),this[_0x3d3d('0x6')][_0x35ab8f['peer']]['name']),'trunk:save',this['trunks'][_0x35ab8f[_0x3d3d('0x38')]]);}else{}}}catch(_0x5e212e){logger[_0x3d3d('0x16')]('[syncPeerStatus][UserReport]',util[_0x3d3d('0x17')](_0x5e212e,{'showHidden':![],'depth':null}));}};module[_0x3d3d('0x3d')]=UserReport;
\ No newline at end of file
+var _0x1f26=['find','stateRegistry','state','merge','omit','format','trunk:%s','name','trunk:save','error','[syncRegistry][UserReport]','device','toLowerCase','stateTime','toNumber','telephone:%s','telephone:save','startsWith','Queue','Local','substring','indexOf','mobile','phone','[syncDeviceState][UserReport]','peer','local','registered','address','updateStatusRealtime','status','[syncPeerStatus][UserReport]','moment','bluebird','util','ioredis','../../../config/environment','../../../config/logger','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','loopSyncRealTimeShow','resolve','then','actionSipShowRegistry','actionDeviceStateList','actionSipPeerStatus','catch','[loopSyncRealTimeShow]','inspect','prototype','isNotNull','isUndefined','emit'];(function(_0x216d45,_0x4989fe){var _0xbaac0b=function(_0x308a41){while(--_0x308a41){_0x216d45['push'](_0x216d45['shift']());}};_0xbaac0b(++_0x4989fe);}(_0x1f26,0x1a6));var _0x61f2=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x1f26[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var moment=require(_0x61f2('0x0'));var BPromise=require(_0x61f2('0x1'));var util=require(_0x61f2('0x2'));var Redis=require(_0x61f2('0x3'));var config=require(_0x61f2('0x4'));var logger=require(_0x61f2('0x5'))('ami');var ami=require(_0x61f2('0x6'));config[_0x61f2('0x7')]=_[_0x61f2('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x61f2('0x9'))(new Redis(config[_0x61f2('0x7')]));function UserReport(_0x461b0e){this[_0x61f2('0xa')]=_0x461b0e['trunks'];this['agents']=_0x461b0e[_0x61f2('0xb')];this[_0x61f2('0xc')]=_0x461b0e[_0x61f2('0xc')];ami['on'](_0x61f2('0xd'),this[_0x61f2('0xe')][_0x61f2('0xf')](this));ami['on'](_0x61f2('0x10'),this['syncRegistry']['bind'](this));ami['on'](_0x61f2('0x11'),this[_0x61f2('0x12')]['bind'](this));ami['on'](_0x61f2('0x13'),this['syncPeerStatus'][_0x61f2('0xf')](this));this[_0x61f2('0x14')]();return BPromise[_0x61f2('0x15')]()[_0x61f2('0x16')](ami[_0x61f2('0x17')]())[_0x61f2('0x16')](ami[_0x61f2('0x18')]())['then'](ami[_0x61f2('0x19')]())[_0x61f2('0x1a')](loggerCatch(_0x61f2('0x1b')));}function loggerCatch(_0x29f201){return function(_0x746731){logger['error'](_0x29f201,util[_0x61f2('0x1c')](_0x746731,{'showHidden':![],'depth':null}));};}UserReport[_0x61f2('0x1d')]['loopSyncRealTimeShow']=function(){setInterval(function(){BPromise[_0x61f2('0x15')]()[_0x61f2('0x16')](ami[_0x61f2('0x17')]())[_0x61f2('0x16')](ami[_0x61f2('0x18')]())[_0x61f2('0x16')](ami[_0x61f2('0x19')]())[_0x61f2('0x1a')](loggerCatch(_0x61f2('0x1b')));},0x32c8);};UserReport[_0x61f2('0x1d')][_0x61f2('0x1e')]=function(_0xa15d83){return _0xa15d83!==null&&!_[_0x61f2('0x1f')](_0xa15d83);};UserReport[_0x61f2('0x1d')][_0x61f2('0x20')]=function(_0x53264e,_0x37b705,_0x5914dd){io['to'](_0x53264e)[_0x61f2('0x20')](_0x37b705,_0x5914dd);};UserReport[_0x61f2('0x1d')][_0x61f2('0xe')]=function(_0x7f10b4){try{if(this[_0x61f2('0x1e')](_0x7f10b4)){var _0x5c2c5c=_[_0x61f2('0x21')](this[_0x61f2('0xa')],{'registry':_0x7f10b4['username']});if(_0x5c2c5c){_0x7f10b4[_0x61f2('0x22')]=_0x7f10b4[_0x61f2('0x23')];_[_0x61f2('0x24')](_0x5c2c5c,_[_0x61f2('0x25')](_0x7f10b4,['event','actionid','username','state']));this['emit'](util[_0x61f2('0x26')](_0x61f2('0x27'),_0x5c2c5c[_0x61f2('0x28')]),_0x61f2('0x29'),_0x5c2c5c);}}}catch(_0x35c19f){logger[_0x61f2('0x2a')](_0x61f2('0x2b'),util[_0x61f2('0x1c')](_0x35c19f,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x61f2('0x12')]=function(_0x8ac5bf){try{if(this[_0x61f2('0x1e')](_0x8ac5bf)){if(this[_0x61f2('0xb')][_0x8ac5bf['device']]){if(!this['agents'][_0x8ac5bf[_0x61f2('0x2c')]]['local']||_0x8ac5bf['state'][_0x61f2('0x2d')]()=='inuse'){this[_0x61f2('0xb')][_0x8ac5bf[_0x61f2('0x2c')]]['local']=![];if(this['agents'][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x23')]!==_0x8ac5bf[_0x61f2('0x23')][_0x61f2('0x2d')]()){this[_0x61f2('0xb')][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x2e')]=_[_0x61f2('0x2f')](moment()[_0x61f2('0x26')]('x'));}this['agents'][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x23')]=_0x8ac5bf['state'][_0x61f2('0x2d')]();this[_0x61f2('0xb')][_0x8ac5bf[_0x61f2('0x2c')]]['updateStatusRealtime'](_0x8ac5bf);}}else if(this['telephones'][_0x8ac5bf[_0x61f2('0x2c')]]){if(this[_0x61f2('0xc')][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x23')]!==_0x8ac5bf['state'][_0x61f2('0x2d')]()){this[_0x61f2('0xc')][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x2e')]=_[_0x61f2('0x2f')](moment()['format']('x'));}this[_0x61f2('0xc')][_0x8ac5bf[_0x61f2('0x2c')]]['state']=_0x8ac5bf[_0x61f2('0x23')][_0x61f2('0x2d')]();this[_0x61f2('0x20')](util[_0x61f2('0x26')](_0x61f2('0x30'),this[_0x61f2('0xc')][_0x8ac5bf[_0x61f2('0x2c')]]['name']),_0x61f2('0x31'),this[_0x61f2('0xc')][_0x8ac5bf[_0x61f2('0x2c')]]);}else if(this['trunks'][_0x8ac5bf[_0x61f2('0x2c')]]){if(this[_0x61f2('0xa')][_0x8ac5bf['device']]['state']!==_0x8ac5bf[_0x61f2('0x23')][_0x61f2('0x2d')]()){this[_0x61f2('0xa')][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x2e')]=_['toNumber'](moment()[_0x61f2('0x26')]('x'));}this[_0x61f2('0xa')][_0x8ac5bf['device']][_0x61f2('0x23')]=_0x8ac5bf[_0x61f2('0x23')][_0x61f2('0x2d')]();this[_0x61f2('0x20')](util[_0x61f2('0x26')](_0x61f2('0x27'),this['trunks'][_0x8ac5bf[_0x61f2('0x2c')]][_0x61f2('0x28')]),_0x61f2('0x29'),this[_0x61f2('0xa')][_0x8ac5bf['device']]);}else if(_[_0x61f2('0x32')](_0x8ac5bf[_0x61f2('0x2c')],_0x61f2('0x33'))){}else if(_[_0x61f2('0x32')](_0x8ac5bf[_0x61f2('0x2c')],_0x61f2('0x34'))){var _0x6f9d3e=_0x8ac5bf[_0x61f2('0x2c')];var _0x112610=_0x6f9d3e[_0x61f2('0x35')](_0x6f9d3e['indexOf']('/')+0x1,_0x6f9d3e[_0x61f2('0x36')]('@'));var _0x2d2c15=_['find'](this[_0x61f2('0xb')],function(_0x402534){return _0x402534[_0x61f2('0x37')]==_0x112610||_0x402534[_0x61f2('0x38')]==_0x112610||_0x402534['accountcode']==_0x112610;});if(_0x2d2c15){if(_0x2d2c15[_0x61f2('0x23')]!==_0x8ac5bf[_0x61f2('0x23')][_0x61f2('0x2d')]()){_0x2d2c15[_0x61f2('0x2e')]=_['toNumber'](moment()[_0x61f2('0x26')]('x'));}_0x2d2c15[_0x61f2('0x23')]=_0x8ac5bf[_0x61f2('0x23')][_0x61f2('0x2d')]();_0x2d2c15['local']=!![];_0x2d2c15['updateStatusRealtime'](_0x8ac5bf);}}else{}}}catch(_0x50a264){logger[_0x61f2('0x2a')](_0x61f2('0x39'),util['inspect'](_0x50a264,{'showHidden':![],'depth':null}));}};UserReport[_0x61f2('0x1d')]['syncPeerStatus']=function(_0x32ef46){try{if(this['isNotNull'](_0x32ef46)&&this[_0x61f2('0x1e')](_0x32ef46[_0x61f2('0x13')])){if(this[_0x61f2('0xb')][_0x32ef46[_0x61f2('0x3a')]]){if(!this[_0x61f2('0xb')][_0x32ef46[_0x61f2('0x3a')]][_0x61f2('0x3b')]||_0x32ef46[_0x61f2('0x13')][_0x61f2('0x2d')]()==_0x61f2('0x3c')){this[_0x61f2('0xb')][_0x32ef46[_0x61f2('0x3a')]][_0x61f2('0x3b')]=![];this[_0x61f2('0xb')][_0x32ef46[_0x61f2('0x3a')]]['status']=_0x32ef46[_0x61f2('0x13')][_0x61f2('0x2d')]();this[_0x61f2('0xb')][_0x32ef46['peer']][_0x61f2('0x3d')]=_0x32ef46[_0x61f2('0x3d')];this[_0x61f2('0xb')][_0x32ef46['peer']][_0x61f2('0x3e')](_0x32ef46);}}else if(this[_0x61f2('0xc')][_0x32ef46[_0x61f2('0x3a')]]){this[_0x61f2('0xc')][_0x32ef46[_0x61f2('0x3a')]][_0x61f2('0x3f')]=_0x32ef46[_0x61f2('0x13')][_0x61f2('0x2d')]();this['telephones'][_0x32ef46[_0x61f2('0x3a')]]['address']=_0x32ef46['address'];this[_0x61f2('0x20')](util[_0x61f2('0x26')](_0x61f2('0x30'),this['telephones'][_0x32ef46['peer']][_0x61f2('0x28')]),_0x61f2('0x31'),this[_0x61f2('0xc')][_0x32ef46[_0x61f2('0x3a')]]);}else if(this['trunks'][_0x32ef46[_0x61f2('0x3a')]]){this[_0x61f2('0xa')][_0x32ef46[_0x61f2('0x3a')]][_0x61f2('0x3f')]=_0x32ef46[_0x61f2('0x13')][_0x61f2('0x2d')]();this[_0x61f2('0xa')][_0x32ef46[_0x61f2('0x3a')]][_0x61f2('0x3d')]=_0x32ef46['address'];this['emit'](util[_0x61f2('0x26')](_0x61f2('0x27'),this[_0x61f2('0xa')][_0x32ef46['peer']][_0x61f2('0x28')]),_0x61f2('0x29'),this[_0x61f2('0xa')][_0x32ef46[_0x61f2('0x3a')]]);}else{}}}catch(_0x23e154){logger['error'](_0x61f2('0x40'),util[_0x61f2('0x1c')](_0x23e154,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa94a=['custom:agentringnoanswer','error','position','originalposition','CALLERABANDON','talktime','reason','agent','complete','acw','acwTimeout','agentcompleteAt','COMPLETE','clear','cause','answered_elsewhere','find','custom:agentcomplete','user:agentcomplete','custom:voiceAgentReport','cause-txt','recalculate','agentconnectAt','user:save','ATTENDED','secondtransfereruniqueid','secondtransfererexten','secondtransferercontext','transfer','transfertargetchannel','transfererchannel','BLIND','transfereeuniqueid','extension','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','sipcallid','sipuri','bridgepeer','bridgepvtcallid','memberdynamic','memberlastcall','memberpenalty','memberrealtime','keys','variable','includes','value','exports','lodash','moment','util','../../../config/environment','../../../config/logger','ami','defaults','localhost','socket.io-emitter','redis','voiceQueues','agents','agentcalled','syncAgentCalled','bind','agentconnect','agentringnoanswer','syncAgentRingNoAnswer','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','syncVarSet','hangup','syncHangup','attendedtransfer','syncAttendedTransfer','blindtransfer','prototype','log','%s|%s','uniqueid','membername','queue','exten','addTime','add','seconds','format','YYYY-MM-DD\x20HH:mm:ss','diffTime','diff','interface','assign','emit','channels','destchannel','calleridnum','calleridname','destcalleridnum','destcalleridname','destaccountcode','channel','destuniqueid','context','type','inbound','called','variables','custom:agentcalled','user:%s','user:called','CALLED','stack','syncAgentConnect','holdtime','ringtime','agentcalledAt','custom:agentconnect','user:agentconnect','CONNECT','isNil','agentringnoanswerAt'];(function(_0x4a73c5,_0x4747c9){var _0x199fe1=function(_0x5b676f){while(--_0x5b676f){_0x4a73c5['push'](_0x4a73c5['shift']());}};_0x199fe1(++_0x4747c9);}(_0xa94a,0x1ab));var _0xaa94=function(_0x20f0ed,_0x4c0879){_0x20f0ed=_0x20f0ed-0x0;var _0x2c6cb9=_0xa94a[_0x20f0ed];return _0x2c6cb9;};'use strict';var _=require(_0xaa94('0x0'));var moment=require(_0xaa94('0x1'));var util=require(_0xaa94('0x2'));var config=require(_0xaa94('0x3'));var logger=require(_0xaa94('0x4'))(_0xaa94('0x5'));var ami=require('../ami');config['redis']=_[_0xaa94('0x6')](config['redis'],{'host':_0xaa94('0x7'),'port':0x18eb});var io=require(_0xaa94('0x8'))(config[_0xaa94('0x9')]);function VoiceAgentReport(_0x395de2){this[_0xaa94('0xa')]=_0x395de2[_0xaa94('0xa')];this[_0xaa94('0xb')]=_0x395de2[_0xaa94('0xb')];this['channels']={};this['variables']={};ami['on'](_0xaa94('0xc'),this[_0xaa94('0xd')][_0xaa94('0xe')](this));ami['on'](_0xaa94('0xf'),this['syncAgentConnect'][_0xaa94('0xe')](this));ami['on'](_0xaa94('0x10'),this[_0xaa94('0x11')][_0xaa94('0xe')](this));ami['on'](_0xaa94('0x12'),this[_0xaa94('0x13')]['bind'](this));ami['on'](_0xaa94('0x14'),this[_0xaa94('0x15')][_0xaa94('0xe')](this));ami['on']('varset',this[_0xaa94('0x16')][_0xaa94('0xe')](this));ami['on'](_0xaa94('0x17'),this[_0xaa94('0x18')][_0xaa94('0xe')](this));ami['on'](_0xaa94('0x19'),this[_0xaa94('0x1a')][_0xaa94('0xe')](this));ami['on'](_0xaa94('0x1b'),this['syncBlindTransfer'][_0xaa94('0xe')](this));}VoiceAgentReport[_0xaa94('0x1c')][_0xaa94('0x1d')]=function(_0x2ba3e0,_0x3bc9ed){logger['info'](util['format'](_0xaa94('0x1e'),_0x2ba3e0,[_0x3bc9ed[_0xaa94('0x1f')],_0x3bc9ed[_0xaa94('0x20')],_0x3bc9ed[_0xaa94('0x21')],_0x3bc9ed[_0xaa94('0x22')],_0x3bc9ed['calleridnum']]['join']('|')));};VoiceAgentReport['prototype'][_0xaa94('0x23')]=function(_0x38bacf,_0x5075cd){return moment(_0x38bacf)[_0xaa94('0x24')](_0x5075cd,_0xaa94('0x25'))[_0xaa94('0x26')](_0xaa94('0x27'));};VoiceAgentReport['prototype'][_0xaa94('0x28')]=function(_0x4f9ab3,_0x1daa76){return moment(_0x4f9ab3)[_0xaa94('0x29')](moment(_0x1daa76),'seconds');};VoiceAgentReport['prototype'][_0xaa94('0xd')]=function(_0x384b90){try{var _0x15618c=this[_0xaa94('0xb')][_0x384b90[_0xaa94('0x2a')]];if(!_['isNil'](_0x15618c)){_0x15618c=_[_0xaa94('0x2b')](_0x15618c,{'queue':_0x384b90[_0xaa94('0x21')],'destconnectedlinenum':_0x384b90['calleridnum']});io[_0xaa94('0x2c')]('user:save',_0x15618c);}var _0x5baaf4=this[_0xaa94('0x2d')][_0x384b90[_0xaa94('0x2e')]]={'agentcalledAt':moment()[_0xaa94('0x26')]('YYYY-MM-DD\x20HH:mm:ss'),'calleridnum':_0x384b90[_0xaa94('0x2f')],'calleridname':_0x384b90[_0xaa94('0x30')],'connectedlinenum':_0x384b90[_0xaa94('0x31')],'connectedlinename':_0x384b90[_0xaa94('0x32')],'accountcode':_0x384b90['accountcode'],'destaccountcode':_0x384b90[_0xaa94('0x33')],'channel':_0x384b90[_0xaa94('0x34')],'destchannel':_0x384b90[_0xaa94('0x2e')],'uniqueid':_0x384b90[_0xaa94('0x1f')],'destuniqueid':_0x384b90[_0xaa94('0x35')],'context':_0x384b90[_0xaa94('0x36')],'exten':_0x384b90[_0xaa94('0x22')],'priority':_0x384b90['priority'],'queue':_0x384b90[_0xaa94('0x21')],'type':this[_0xaa94('0xa')][_0x384b90['queue']]?this['voiceQueues'][_0x384b90['queue']][_0xaa94('0x37')]||_0xaa94('0x38'):_0xaa94('0x38'),'interface':_0x384b90[_0xaa94('0x2a')],'membername':_0x384b90[_0xaa94('0x20')],'agentconnect':![],'agentconnectAt':null,'holdtime':0x0,'ringtime':0x0,'agentcomplete':![],'agentcompleteAt':null,'talktime':0x0,'agentringnoanswer':![],'agentringnoanswerAt':null,'reason':'agent','transfer':![],'transferAt':null,'transfertype':null,'transferuniqueid':null,'transfercontext':null,'transferextension':null,'position':null,'originalposition':null,'cause':'','cause-txt':'','UserId':this[_0xaa94('0xb')][_0x384b90[_0xaa94('0x2a')]]?this[_0xaa94('0xb')][_0x384b90[_0xaa94('0x2a')]]['id']:null,'lastevent':_0xaa94('0x39'),'agentacw':![],'acwtime':0x0,'variables':this[_0xaa94('0x3a')][_0x384b90['channel']]?this['variables'][_0x384b90[_0xaa94('0x34')]]:{}};ami['emit'](_0xaa94('0x3b'),_0x5baaf4);io['to'](util[_0xaa94('0x26')](_0xaa94('0x3c'),_0x5baaf4[_0xaa94('0x20')]))[_0xaa94('0x2c')](_0xaa94('0x3d'),_0x5baaf4);this[_0xaa94('0x1d')](_0xaa94('0x3e'),this[_0xaa94('0x2d')][_0x384b90[_0xaa94('0x2e')]]);}catch(_0x55a3be){logger['error'](_0x55a3be[_0xaa94('0x3f')]);}};VoiceAgentReport[_0xaa94('0x1c')][_0xaa94('0x40')]=function(_0x4b8d8f){try{var _0x11369d=this[_0xaa94('0x2d')][_0x4b8d8f[_0xaa94('0x2e')]];if(!_['isNil'](_0x11369d)){_0x11369d=_[_0xaa94('0x2b')](_0x11369d,{'holdtime':parseInt(_0x4b8d8f[_0xaa94('0x41')],0xa),'ringtime':parseInt(_0x4b8d8f[_0xaa94('0x42')],0xa),'agentconnect':!![],'lastevent':'connect'});_0x11369d['agentconnectAt']=this[_0xaa94('0x23')](_0x11369d[_0xaa94('0x43')],_0x11369d[_0xaa94('0x42')]);ami[_0xaa94('0x2c')](_0xaa94('0x44'),_0x11369d);io['to'](util['format']('user:%s',_0x11369d[_0xaa94('0x20')]))[_0xaa94('0x2c')](_0xaa94('0x45'),_0x11369d);this[_0xaa94('0x1d')](_0xaa94('0x46'),_0x11369d);}}catch(_0xdde09a){logger['error'](_0xdde09a[_0xaa94('0x3f')]);}};VoiceAgentReport['prototype'][_0xaa94('0x11')]=function(_0x3b9ade){try{var _0x409c46=this[_0xaa94('0x2d')][_0x3b9ade['destchannel']];if(!_[_0xaa94('0x47')](_0x409c46)){_0x409c46=_['assign'](_0x409c46,{'ringtime':parseInt(_0x3b9ade[_0xaa94('0x42')],0xa)/0x3e8,'agentringnoanswer':!![],'reason':'rejected','lastevent':'rejected'});_0x409c46[_0xaa94('0x48')]=this[_0xaa94('0x23')](_0x409c46[_0xaa94('0x43')],_0x409c46['ringtime']);ami[_0xaa94('0x2c')](_0xaa94('0x49'),_0x409c46);this['log']('RINGNOANSWER',_0x409c46);}}catch(_0x1d0b3a){logger[_0xaa94('0x4a')](_0x1d0b3a['stack']);}};VoiceAgentReport[_0xaa94('0x1c')][_0xaa94('0x13')]=function(_0x9782ff){try{for(var _0x12228d in this[_0xaa94('0x2d')]){var _0x3031f8=this['channels'][_0x12228d];if(!_[_0xaa94('0x47')](_0x3031f8)&&_0x3031f8[_0xaa94('0x34')]==_0x9782ff['channel']){_0x3031f8=_[_0xaa94('0x2b')](_0x3031f8,{'holdtime':parseInt(_0x9782ff[_0xaa94('0x41')],0xa),'position':parseInt(_0x9782ff[_0xaa94('0x4b')],0xa),'originalposition':parseInt(_0x9782ff[_0xaa94('0x4c')],0xa),'agentringnoanswer':!![],'agentringnoanswerAt':moment()[_0xaa94('0x26')](_0xaa94('0x27')),'reason':'abandoned','lastevent':'abandoned'});ami[_0xaa94('0x2c')]('custom:agentqueuecallerabandon',_0x3031f8);this[_0xaa94('0x1d')](_0xaa94('0x4d'),_0x3031f8);}}}catch(_0x2fea5d){logger[_0xaa94('0x4a')](_0x2fea5d[_0xaa94('0x3f')]);}};VoiceAgentReport[_0xaa94('0x1c')][_0xaa94('0x15')]=function(_0x190c13){try{var _0x344043=this[_0xaa94('0x2d')][_0x190c13[_0xaa94('0x2e')]];if(!_[_0xaa94('0x47')](_0x344043)){_0x344043=_['assign'](_0x344043,{'talktime':parseInt(_0x190c13[_0xaa94('0x4e')],0xa),'reason':_0x190c13[_0xaa94('0x4f')]=='transfer'?_0xaa94('0x50'):_0x190c13[_0xaa94('0x4f')],'agentcomplete':!![],'lastevent':_0xaa94('0x51'),'agentacw':this[_0xaa94('0xa')][_0x344043[_0xaa94('0x21')]]&&this[_0xaa94('0xa')][_0x344043[_0xaa94('0x21')]][_0xaa94('0x52')]?!![]:![],'acwtime':this[_0xaa94('0xa')][_0x344043[_0xaa94('0x21')]]&&this[_0xaa94('0xa')][_0x344043[_0xaa94('0x21')]][_0xaa94('0x52')]?this[_0xaa94('0xa')][_0x344043[_0xaa94('0x21')]][_0xaa94('0x53')]:0x0});_0x344043[_0xaa94('0x54')]=this[_0xaa94('0x23')](_0x344043['agentconnectAt'],_0x344043['talktime']);this[_0xaa94('0x1d')](_0xaa94('0x55'),_0x344043);}}catch(_0x353132){logger['error'](_0x353132[_0xaa94('0x3f')]);}};VoiceAgentReport[_0xaa94('0x1c')][_0xaa94('0x56')]=function(_0x3f61cd){try{switch(_0x3f61cd[_0xaa94('0x57')]){case 0x1a:_0x3f61cd=_[_0xaa94('0x2b')](_0x3f61cd,{'agentringnoanswer':!![],'reason':'answered_elsewhere','lastevent':_0xaa94('0x58')});var _0x59ebcc=_[_0xaa94('0x59')](this[_0xaa94('0x2d')],{'channel':_0x3f61cd[_0xaa94('0x34')],'agentconnect':!![]});if(!_[_0xaa94('0x47')](_0x59ebcc)){_0x3f61cd=_[_0xaa94('0x2b')](_0x3f61cd,{'agentringnoanswerAt':_0x59ebcc['agentconnectAt'],'answeredelsewheremembername':_0x59ebcc['membername'],'answeredelsewheredestinationuniqueid':_0x59ebcc['destuniqueid']});}ami[_0xaa94('0x2c')]('custom:agentansweredelsewhere',_0x3f61cd);break;}if(_0x3f61cd['agentcomplete']){ami['emit'](_0xaa94('0x5a'),_0x3f61cd);io['to'](util[_0xaa94('0x26')](_0xaa94('0x3c'),_0x3f61cd[_0xaa94('0x20')]))[_0xaa94('0x2c')](_0xaa94('0x5b'),_0x3f61cd);}this['log']('HANGUP',_0x3f61cd);ami[_0xaa94('0x2c')](_0xaa94('0x5c'),_0x3f61cd);if(this[_0xaa94('0x2d')][_0x3f61cd[_0xaa94('0x2e')]]){delete this['channels'][_0x3f61cd['destchannel']];}}catch(_0x5d1aaf){logger['error'](_0x5d1aaf);}};VoiceAgentReport[_0xaa94('0x1c')]['syncHangup']=function(_0x119bc1){try{var _0x27c760=this['channels'][_0x119bc1[_0xaa94('0x34')]];if(!_[_0xaa94('0x47')](_0x27c760)){_0x27c760=_[_0xaa94('0x2b')](_0x27c760,{'cause':parseInt(_0x119bc1['cause'],0xa),'cause-txt':_0x119bc1[_0xaa94('0x5d')]});if(_0x27c760[_0xaa94('0x5e')]){_0x27c760=_['assign'](_0x27c760,{'agentcomplete':!![],'agentcompleteAt':moment()[_0xaa94('0x26')]('YYYY-MM-DD\x20HH:mm:ss'),'lastevent':_0xaa94('0x51'),'agentacw':this[_0xaa94('0xa')][_0x27c760[_0xaa94('0x21')]]&&this['voiceQueues'][_0x27c760[_0xaa94('0x21')]][_0xaa94('0x52')]?!![]:![],'acwtime':this[_0xaa94('0xa')][_0x27c760[_0xaa94('0x21')]]&&this[_0xaa94('0xa')][_0x27c760['queue']]['acw']?this[_0xaa94('0xa')][_0x27c760[_0xaa94('0x21')]][_0xaa94('0x53')]:0x0});_0x27c760[_0xaa94('0x4e')]=this[_0xaa94('0x28')](_0x27c760[_0xaa94('0x54')],_0x27c760[_0xaa94('0x5f')]);}var _0x27f8d4=this['agents'][_0x27c760['interface']];if(!_['isNil'](_0x27f8d4)){_0x27f8d4=_[_0xaa94('0x2b')](_0x27f8d4,{'queue':null,'destconnectedlinenum':null});io[_0xaa94('0x2c')](_0xaa94('0x60'),_0x27f8d4);}setTimeout(this[_0xaa94('0x56')][_0xaa94('0xe')](this,_0x27c760),0x3e8);}if(this[_0xaa94('0x3a')][_0x119bc1[_0xaa94('0x34')]]){delete this[_0xaa94('0x3a')][_0x119bc1[_0xaa94('0x34')]];}}catch(_0x28f096){logger['error'](_0x28f096[_0xaa94('0x3f')]);}};VoiceAgentReport[_0xaa94('0x1c')]['syncAttendedTransfer']=function(_0x4c3f6e){try{var _0x2052c6=this[_0xaa94('0x2d')][_0x4c3f6e['origtransfererchannel']];if(!_[_0xaa94('0x47')](_0x2052c6)){_0x2052c6=_[_0xaa94('0x2b')](_0x2052c6,{'transfer':!![],'transferAt':moment()[_0xaa94('0x26')](_0xaa94('0x27')),'transfertype':_0xaa94('0x61'),'agentcomplete':!![],'agentcompleteAt':moment()[_0xaa94('0x26')](_0xaa94('0x27')),'transferuniqueid':_0x4c3f6e[_0xaa94('0x62')],'transfercontext':_0x4c3f6e[_0xaa94('0x63')],'transferextension':_0x4c3f6e[_0xaa94('0x64')],'reason':_0xaa94('0x65'),'lastevent':_0xaa94('0x51'),'agentacw':this[_0xaa94('0xa')][_0x2052c6[_0xaa94('0x21')]]&&this['voiceQueues'][_0x2052c6['queue']]['acw']?!![]:![],'acwtime':this[_0xaa94('0xa')][_0x2052c6[_0xaa94('0x21')]]&&this[_0xaa94('0xa')][_0x2052c6[_0xaa94('0x21')]][_0xaa94('0x52')]?this[_0xaa94('0xa')][_0x2052c6[_0xaa94('0x21')]][_0xaa94('0x53')]:0x0});_0x2052c6[_0xaa94('0x4e')]=this[_0xaa94('0x28')](_0x2052c6[_0xaa94('0x54')],_0x2052c6[_0xaa94('0x5f')]);this[_0xaa94('0x1d')](_0xaa94('0x61'),_0x2052c6);}if(!_[_0xaa94('0x47')](this['channels'][_0x4c3f6e[_0xaa94('0x66')]])){this[_0xaa94('0x2d')][_0x4c3f6e[_0xaa94('0x66')]]['recalculate']=!![];}}catch(_0x1039b5){logger[_0xaa94('0x4a')](_0x1039b5[_0xaa94('0x3f')]);}};VoiceAgentReport['prototype']['syncBlindTransfer']=function(_0x535d27){try{var _0x406a28=this[_0xaa94('0x2d')][_0x535d27[_0xaa94('0x67')]];if(!_[_0xaa94('0x47')](_0x406a28)){_0x406a28=_[_0xaa94('0x2b')](_0x406a28,{'transfer':!![],'transferAt':moment()[_0xaa94('0x26')](_0xaa94('0x27')),'transfertype':_0xaa94('0x68'),'transferuniqueid':_0x535d27[_0xaa94('0x69')],'transfercontext':_0x535d27[_0xaa94('0x36')],'transferextension':_0x535d27[_0xaa94('0x6a')],'agentcomplete':!![],'agentcompleteAt':moment()['format'](_0xaa94('0x27')),'reason':_0xaa94('0x65'),'lastevent':'complete','agentacw':this[_0xaa94('0xa')][_0x406a28[_0xaa94('0x21')]]&&this['voiceQueues'][_0x406a28[_0xaa94('0x21')]][_0xaa94('0x52')]?!![]:![],'acwtime':this[_0xaa94('0xa')][_0x406a28[_0xaa94('0x21')]]&&this[_0xaa94('0xa')][_0x406a28[_0xaa94('0x21')]][_0xaa94('0x52')]?this[_0xaa94('0xa')][_0x406a28[_0xaa94('0x21')]][_0xaa94('0x53')]:0x0});_0x406a28[_0xaa94('0x5e')]=!![];this[_0xaa94('0x1d')](_0xaa94('0x68'),_0x406a28);}}catch(_0x54aade){logger[_0xaa94('0x4a')](_0x54aade['stack']);}};VoiceAgentReport[_0xaa94('0x1c')][_0xaa94('0x16')]=function(_0x35c75c){var _0x4468d9=['rtpaudioqos',_0xaa94('0x6b'),_0xaa94('0x6c'),_0xaa94('0x6d'),_0xaa94('0x6e'),'rtpaudioqoslossbridged',_0xaa94('0x6f'),'rtpaudioqosrttbridged',_0xaa94('0x70'),_0xaa94('0x71'),_0xaa94('0x72'),_0xaa94('0x73'),'membercalls',_0xaa94('0x74'),'memberinterface',_0xaa94('0x75'),_0xaa94('0x20'),_0xaa94('0x76'),_0xaa94('0x77')];try{var _0x1510a6=_[_0xaa94('0x78')](_0x35c75c[_0xaa94('0x79')])[0x0];if(!_[_0xaa94('0x47')](_0x1510a6)&&!_[_0xaa94('0x7a')](_0x4468d9,_0x1510a6)){if(!this[_0xaa94('0x3a')][_0x35c75c[_0xaa94('0x34')]]){this[_0xaa94('0x3a')][_0x35c75c[_0xaa94('0x34')]]={};}this[_0xaa94('0x3a')][_0x35c75c[_0xaa94('0x34')]][_0x1510a6]=_0x35c75c[_0xaa94('0x7b')];}}catch(_0x1e4a2e){logger['error'](_0x1e4a2e['stack']);}};module[_0xaa94('0x7c')]=VoiceAgentReport;
\ No newline at end of file
+var _0xf0f6=['syncAgentComplete','varset','syncHangup','attendedtransfer','blindtransfer','syncBlindTransfer','syncMusicOnHoldStop','prototype','log','format','%s|%s','uniqueid','membername','queue','exten','calleridnum','addTime','add','seconds','YYYY-MM-DD\x20HH:mm:ss','diff','interface','isNil','emit','user:save','destchannel','calleridname','destcalleridnum','destaccountcode','channel','destuniqueid','priority','type','inbound','agent','called','variables','custom:agentcalled','user:called','stack','syncAgentConnect','holdtime','ringtime','connect','agentconnectAt','custom:agentconnect','user:%s','user:agentconnect','error','syncMusicOnHoldStart','find','onhold','updateStatusRealtime','rejected','agentringnoanswerAt','agentcalledAt','custom:agentringnoanswer','syncQueueCallerAbandon','position','originalposition','abandoned','custom:agentqueuecallerabandon','assign','reason','transfer','complete','acw','acwTimeout','agentcompleteAt','COMPLETE','clear','cause','answered_elsewhere','custom:agentcomplete','user:agentcomplete','HANGUP','custom:voiceAgentReport','cause-txt','recalculate','syncAttendedTransfer','ATTENDED','secondtransfereruniqueid','secondtransfererexten','secondtransferercontext','diffTime','transfertargetchannel','transfererchannel','BLIND','transfereeuniqueid','context','extension','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','keys','variable','value','exports','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','socket.io-emitter','voiceQueues','agents','channels','agentcalled','syncAgentCalled','bind','agentconnect','agentringnoanswer','syncAgentRingNoAnswer','queuecallerabandon','agentcomplete'];(function(_0x3f0b13,_0x40840f){var _0x1c0cb7=function(_0x5b4253){while(--_0x5b4253){_0x3f0b13['push'](_0x3f0b13['shift']());}};_0x1c0cb7(++_0x40840f);}(_0xf0f6,0x1ed));var _0x6f0f=function(_0x1e3370,_0x304314){_0x1e3370=_0x1e3370-0x0;var _0x2f2b3f=_0xf0f6[_0x1e3370];return _0x2f2b3f;};'use strict';var _=require('lodash');var moment=require('moment');var util=require(_0x6f0f('0x0'));var Redis=require(_0x6f0f('0x1'));var config=require(_0x6f0f('0x2'));var logger=require(_0x6f0f('0x3'))(_0x6f0f('0x4'));var ami=require(_0x6f0f('0x5'));config[_0x6f0f('0x6')]=_['defaults'](config[_0x6f0f('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x6f0f('0x7'))(new Redis(config['redis']));function VoiceAgentReport(_0x4a72e1){this[_0x6f0f('0x8')]=_0x4a72e1['voiceQueues'];this[_0x6f0f('0x9')]=_0x4a72e1['agents'];this[_0x6f0f('0xa')]={};this['variables']={};ami['on'](_0x6f0f('0xb'),this[_0x6f0f('0xc')][_0x6f0f('0xd')](this));ami['on'](_0x6f0f('0xe'),this['syncAgentConnect'][_0x6f0f('0xd')](this));ami['on'](_0x6f0f('0xf'),this[_0x6f0f('0x10')][_0x6f0f('0xd')](this));ami['on'](_0x6f0f('0x11'),this['syncQueueCallerAbandon'][_0x6f0f('0xd')](this));ami['on'](_0x6f0f('0x12'),this[_0x6f0f('0x13')][_0x6f0f('0xd')](this));ami['on'](_0x6f0f('0x14'),this['syncVarSet'][_0x6f0f('0xd')](this));ami['on']('hangup',this[_0x6f0f('0x15')][_0x6f0f('0xd')](this));ami['on'](_0x6f0f('0x16'),this['syncAttendedTransfer']['bind'](this));ami['on'](_0x6f0f('0x17'),this[_0x6f0f('0x18')][_0x6f0f('0xd')](this));ami['on']('musiconholdstart',this['syncMusicOnHoldStart'][_0x6f0f('0xd')](this));ami['on']('musiconholdstop',this[_0x6f0f('0x19')]['bind'](this));}VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x1b')]=function(_0x556c95,_0x1f9e76){logger['info'](util[_0x6f0f('0x1c')](_0x6f0f('0x1d'),_0x556c95,[_0x1f9e76[_0x6f0f('0x1e')],_0x1f9e76[_0x6f0f('0x1f')],_0x1f9e76[_0x6f0f('0x20')],_0x1f9e76[_0x6f0f('0x21')],_0x1f9e76[_0x6f0f('0x22')]]['join']('|')));};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x23')]=function(_0x53e421,_0x19acd3){return moment(_0x53e421)[_0x6f0f('0x24')](_0x19acd3,_0x6f0f('0x25'))[_0x6f0f('0x1c')](_0x6f0f('0x26'));};VoiceAgentReport['prototype']['diffTime']=function(_0x3660a7,_0x44d12f){return moment(_0x3660a7)[_0x6f0f('0x27')](moment(_0x44d12f),'seconds');};VoiceAgentReport['prototype'][_0x6f0f('0xc')]=function(_0x159f93){try{var _0x4cd6eb=this[_0x6f0f('0x9')][_0x159f93[_0x6f0f('0x28')]];if(!_[_0x6f0f('0x29')](_0x4cd6eb)){_0x4cd6eb=_['assign'](_0x4cd6eb,{'queue':_0x159f93[_0x6f0f('0x20')],'destconnectedlinenum':_0x159f93['calleridnum']});io[_0x6f0f('0x2a')](_0x6f0f('0x2b'),_0x4cd6eb);}var _0xa41578=this[_0x6f0f('0xa')][_0x159f93[_0x6f0f('0x2c')]]={'agentcalledAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'calleridnum':_0x159f93[_0x6f0f('0x22')],'calleridname':_0x159f93[_0x6f0f('0x2d')],'connectedlinenum':_0x159f93[_0x6f0f('0x2e')],'connectedlinename':_0x159f93['destcalleridname'],'accountcode':_0x159f93['accountcode'],'destaccountcode':_0x159f93[_0x6f0f('0x2f')],'channel':_0x159f93[_0x6f0f('0x30')],'destchannel':_0x159f93[_0x6f0f('0x2c')],'uniqueid':_0x159f93['uniqueid'],'destuniqueid':_0x159f93[_0x6f0f('0x31')],'context':_0x159f93['context'],'exten':_0x159f93[_0x6f0f('0x21')],'priority':_0x159f93[_0x6f0f('0x32')],'queue':_0x159f93[_0x6f0f('0x20')],'type':this[_0x6f0f('0x8')][_0x159f93[_0x6f0f('0x20')]]?this[_0x6f0f('0x8')][_0x159f93[_0x6f0f('0x20')]][_0x6f0f('0x33')]||'inbound':_0x6f0f('0x34'),'interface':_0x159f93[_0x6f0f('0x28')],'membername':_0x159f93[_0x6f0f('0x1f')],'agentconnect':![],'agentconnectAt':null,'holdtime':0x0,'ringtime':0x0,'agentcomplete':![],'agentcompleteAt':null,'talktime':0x0,'agentringnoanswer':![],'agentringnoanswerAt':null,'reason':_0x6f0f('0x35'),'transfer':![],'transferAt':null,'transfertype':null,'transferuniqueid':null,'transfercontext':null,'transferextension':null,'position':null,'originalposition':null,'cause':'','cause-txt':'','UserId':this['agents'][_0x159f93[_0x6f0f('0x28')]]?this[_0x6f0f('0x9')][_0x159f93[_0x6f0f('0x28')]]['id']:null,'lastevent':_0x6f0f('0x36'),'agentacw':![],'acwtime':0x0,'variables':this[_0x6f0f('0x37')][_0x159f93['channel']]?this[_0x6f0f('0x37')][_0x159f93[_0x6f0f('0x30')]]:{}};ami[_0x6f0f('0x2a')](_0x6f0f('0x38'),_0xa41578);io['to'](util[_0x6f0f('0x1c')]('user:%s',_0xa41578[_0x6f0f('0x1f')]))['emit'](_0x6f0f('0x39'),_0xa41578);this['log']('CALLED',this[_0x6f0f('0xa')][_0x159f93[_0x6f0f('0x2c')]]);}catch(_0x14e826){logger['error'](_0x14e826[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x3b')]=function(_0x3661fd){try{var _0x512959=this[_0x6f0f('0xa')][_0x3661fd[_0x6f0f('0x2c')]];if(!_[_0x6f0f('0x29')](_0x512959)){_0x512959=_['assign'](_0x512959,{'holdtime':parseInt(_0x3661fd[_0x6f0f('0x3c')],0xa),'ringtime':parseInt(_0x3661fd[_0x6f0f('0x3d')],0xa),'agentconnect':!![],'lastevent':_0x6f0f('0x3e')});_0x512959[_0x6f0f('0x3f')]=this[_0x6f0f('0x23')](_0x512959['agentcalledAt'],_0x512959[_0x6f0f('0x3d')]);ami[_0x6f0f('0x2a')](_0x6f0f('0x40'),_0x512959);io['to'](util['format'](_0x6f0f('0x41'),_0x512959[_0x6f0f('0x1f')]))[_0x6f0f('0x2a')](_0x6f0f('0x42'),_0x512959);this[_0x6f0f('0x1b')]('CONNECT',_0x512959);}}catch(_0x3d9373){logger[_0x6f0f('0x43')](_0x3d9373[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x44')]=function(_0x3542f6){try{var _0x168985=_[_0x6f0f('0x45')](this[_0x6f0f('0xa')],{'channel':_0x3542f6[_0x6f0f('0x30')],'agentconnect':!![]});if(!_[_0x6f0f('0x29')](_0x168985)){if(!_['isNil'](this['agents'][_0x168985[_0x6f0f('0x28')]])){this[_0x6f0f('0x9')][_0x168985[_0x6f0f('0x28')]][_0x6f0f('0x46')]=!![];this['agents'][_0x168985['interface']][_0x6f0f('0x47')]();}}}catch(_0x185be3){logger[_0x6f0f('0x43')](_0x185be3[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')]['syncMusicOnHoldStop']=function(_0x3b5700){try{var _0x6fb0bf=_[_0x6f0f('0x45')](this['channels'],{'channel':_0x3b5700[_0x6f0f('0x30')],'agentconnect':!![]});if(!_[_0x6f0f('0x29')](_0x6fb0bf)){if(!_[_0x6f0f('0x29')](this[_0x6f0f('0x9')][_0x6fb0bf[_0x6f0f('0x28')]])){this[_0x6f0f('0x9')][_0x6fb0bf[_0x6f0f('0x28')]][_0x6f0f('0x46')]=![];this[_0x6f0f('0x9')][_0x6fb0bf[_0x6f0f('0x28')]][_0x6f0f('0x47')]();}}}catch(_0x3079c0){logger[_0x6f0f('0x43')](_0x3079c0[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x10')]=function(_0x5061e0){try{var _0x2cf05d=this[_0x6f0f('0xa')][_0x5061e0[_0x6f0f('0x2c')]];if(!_[_0x6f0f('0x29')](_0x2cf05d)){_0x2cf05d=_['assign'](_0x2cf05d,{'ringtime':parseInt(_0x5061e0['ringtime'],0xa)/0x3e8,'agentringnoanswer':!![],'reason':_0x6f0f('0x48'),'lastevent':_0x6f0f('0x48')});_0x2cf05d[_0x6f0f('0x49')]=this[_0x6f0f('0x23')](_0x2cf05d[_0x6f0f('0x4a')],_0x2cf05d[_0x6f0f('0x3d')]);ami[_0x6f0f('0x2a')](_0x6f0f('0x4b'),_0x2cf05d);this[_0x6f0f('0x1b')]('RINGNOANSWER',_0x2cf05d);}}catch(_0x16ce60){logger[_0x6f0f('0x43')](_0x16ce60[_0x6f0f('0x3a')]);}};VoiceAgentReport['prototype'][_0x6f0f('0x4c')]=function(_0x3e7ae1){try{for(var _0x402cab in this[_0x6f0f('0xa')]){var _0x55a4f3=this['channels'][_0x402cab];if(!_['isNil'](_0x55a4f3)&&_0x55a4f3['channel']==_0x3e7ae1[_0x6f0f('0x30')]){_0x55a4f3=_['assign'](_0x55a4f3,{'holdtime':parseInt(_0x3e7ae1['holdtime'],0xa),'position':parseInt(_0x3e7ae1[_0x6f0f('0x4d')],0xa),'originalposition':parseInt(_0x3e7ae1[_0x6f0f('0x4e')],0xa),'agentringnoanswer':!![],'agentringnoanswerAt':moment()[_0x6f0f('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'reason':'abandoned','lastevent':_0x6f0f('0x4f')});ami[_0x6f0f('0x2a')](_0x6f0f('0x50'),_0x55a4f3);this[_0x6f0f('0x1b')]('CALLERABANDON',_0x55a4f3);}}}catch(_0x147e1a){logger[_0x6f0f('0x43')](_0x147e1a[_0x6f0f('0x3a')]);}};VoiceAgentReport['prototype'][_0x6f0f('0x13')]=function(_0x2f2a3f){try{var _0xb83850=this[_0x6f0f('0xa')][_0x2f2a3f['destchannel']];if(!_[_0x6f0f('0x29')](_0xb83850)){_0xb83850=_[_0x6f0f('0x51')](_0xb83850,{'talktime':parseInt(_0x2f2a3f['talktime'],0xa),'reason':_0x2f2a3f[_0x6f0f('0x52')]==_0x6f0f('0x53')?_0x6f0f('0x35'):_0x2f2a3f[_0x6f0f('0x52')],'agentcomplete':!![],'lastevent':_0x6f0f('0x54'),'agentacw':this[_0x6f0f('0x8')][_0xb83850[_0x6f0f('0x20')]]&&this[_0x6f0f('0x8')][_0xb83850[_0x6f0f('0x20')]][_0x6f0f('0x55')]?!![]:![],'acwtime':this[_0x6f0f('0x8')][_0xb83850[_0x6f0f('0x20')]]&&this[_0x6f0f('0x8')][_0xb83850[_0x6f0f('0x20')]][_0x6f0f('0x55')]?this['voiceQueues'][_0xb83850[_0x6f0f('0x20')]][_0x6f0f('0x56')]:0x0});_0xb83850[_0x6f0f('0x57')]=this[_0x6f0f('0x23')](_0xb83850['agentconnectAt'],_0xb83850['talktime']);this[_0x6f0f('0x1b')](_0x6f0f('0x58'),_0xb83850);}}catch(_0x462bb0){logger[_0x6f0f('0x43')](_0x462bb0[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x59')]=function(_0x56b386){try{switch(_0x56b386[_0x6f0f('0x5a')]){case 0x1a:_0x56b386=_[_0x6f0f('0x51')](_0x56b386,{'agentringnoanswer':!![],'reason':_0x6f0f('0x5b'),'lastevent':'answered_elsewhere'});var _0xc2825d=_[_0x6f0f('0x45')](this[_0x6f0f('0xa')],{'channel':_0x56b386[_0x6f0f('0x30')],'agentconnect':!![]});if(!_[_0x6f0f('0x29')](_0xc2825d)){_0x56b386=_[_0x6f0f('0x51')](_0x56b386,{'agentringnoanswerAt':_0xc2825d[_0x6f0f('0x3f')],'answeredelsewheremembername':_0xc2825d[_0x6f0f('0x1f')],'answeredelsewheredestinationuniqueid':_0xc2825d[_0x6f0f('0x31')]});}ami['emit']('custom:agentansweredelsewhere',_0x56b386);break;}if(_0x56b386[_0x6f0f('0x12')]){ami['emit'](_0x6f0f('0x5c'),_0x56b386);io['to'](util['format'](_0x6f0f('0x41'),_0x56b386[_0x6f0f('0x1f')]))['emit'](_0x6f0f('0x5d'),_0x56b386);}this[_0x6f0f('0x1b')](_0x6f0f('0x5e'),_0x56b386);ami[_0x6f0f('0x2a')](_0x6f0f('0x5f'),_0x56b386);if(this['channels'][_0x56b386['destchannel']]){delete this[_0x6f0f('0xa')][_0x56b386[_0x6f0f('0x2c')]];}}catch(_0x285d7c){logger[_0x6f0f('0x43')](_0x285d7c);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x15')]=function(_0x197b11){try{var _0x149744=this[_0x6f0f('0xa')][_0x197b11[_0x6f0f('0x30')]];if(!_[_0x6f0f('0x29')](_0x149744)){_0x149744=_[_0x6f0f('0x51')](_0x149744,{'cause':parseInt(_0x197b11[_0x6f0f('0x5a')],0xa),'cause-txt':_0x197b11[_0x6f0f('0x60')]});if(_0x149744[_0x6f0f('0x61')]){_0x149744=_[_0x6f0f('0x51')](_0x149744,{'agentcomplete':!![],'agentcompleteAt':moment()[_0x6f0f('0x1c')](_0x6f0f('0x26')),'lastevent':'complete','agentacw':this['voiceQueues'][_0x149744[_0x6f0f('0x20')]]&&this[_0x6f0f('0x8')][_0x149744[_0x6f0f('0x20')]][_0x6f0f('0x55')]?!![]:![],'acwtime':this[_0x6f0f('0x8')][_0x149744[_0x6f0f('0x20')]]&&this['voiceQueues'][_0x149744[_0x6f0f('0x20')]]['acw']?this['voiceQueues'][_0x149744[_0x6f0f('0x20')]][_0x6f0f('0x56')]:0x0});_0x149744['talktime']=this['diffTime'](_0x149744['agentcompleteAt'],_0x149744['agentconnectAt']);}var _0x162b9f=this[_0x6f0f('0x9')][_0x149744[_0x6f0f('0x28')]];if(!_[_0x6f0f('0x29')](_0x162b9f)){_0x162b9f=_[_0x6f0f('0x51')](_0x162b9f,{'queue':null,'destconnectedlinenum':null});io['emit'](_0x6f0f('0x2b'),_0x162b9f);}setTimeout(this['clear'][_0x6f0f('0xd')](this,_0x149744),0x3e8);}if(this[_0x6f0f('0x37')][_0x197b11[_0x6f0f('0x30')]]){delete this[_0x6f0f('0x37')][_0x197b11[_0x6f0f('0x30')]];}}catch(_0x2f333b){logger[_0x6f0f('0x43')](_0x2f333b[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x62')]=function(_0x17e23c){try{var _0x5f02db=this[_0x6f0f('0xa')][_0x17e23c['origtransfererchannel']];if(!_[_0x6f0f('0x29')](_0x5f02db)){_0x5f02db=_['assign'](_0x5f02db,{'transfer':!![],'transferAt':moment()[_0x6f0f('0x1c')](_0x6f0f('0x26')),'transfertype':_0x6f0f('0x63'),'agentcomplete':!![],'agentcompleteAt':moment()[_0x6f0f('0x1c')](_0x6f0f('0x26')),'transferuniqueid':_0x17e23c[_0x6f0f('0x64')],'transfercontext':_0x17e23c[_0x6f0f('0x65')],'transferextension':_0x17e23c[_0x6f0f('0x66')],'reason':'transfer','lastevent':_0x6f0f('0x54'),'agentacw':this[_0x6f0f('0x8')][_0x5f02db[_0x6f0f('0x20')]]&&this['voiceQueues'][_0x5f02db[_0x6f0f('0x20')]]['acw']?!![]:![],'acwtime':this[_0x6f0f('0x8')][_0x5f02db[_0x6f0f('0x20')]]&&this[_0x6f0f('0x8')][_0x5f02db[_0x6f0f('0x20')]][_0x6f0f('0x55')]?this[_0x6f0f('0x8')][_0x5f02db[_0x6f0f('0x20')]][_0x6f0f('0x56')]:0x0});_0x5f02db['talktime']=this[_0x6f0f('0x67')](_0x5f02db[_0x6f0f('0x57')],_0x5f02db['agentconnectAt']);this['log'](_0x6f0f('0x63'),_0x5f02db);}if(!_[_0x6f0f('0x29')](this['channels'][_0x17e23c[_0x6f0f('0x68')]])){this[_0x6f0f('0xa')][_0x17e23c[_0x6f0f('0x68')]][_0x6f0f('0x61')]=!![];}}catch(_0x18c598){logger[_0x6f0f('0x43')](_0x18c598[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')][_0x6f0f('0x18')]=function(_0x1332c9){try{var _0x25f800=this[_0x6f0f('0xa')][_0x1332c9[_0x6f0f('0x69')]];if(!_['isNil'](_0x25f800)){_0x25f800=_['assign'](_0x25f800,{'transfer':!![],'transferAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'transfertype':_0x6f0f('0x6a'),'transferuniqueid':_0x1332c9[_0x6f0f('0x6b')],'transfercontext':_0x1332c9[_0x6f0f('0x6c')],'transferextension':_0x1332c9[_0x6f0f('0x6d')],'agentcomplete':!![],'agentcompleteAt':moment()[_0x6f0f('0x1c')](_0x6f0f('0x26')),'reason':'transfer','lastevent':_0x6f0f('0x54'),'agentacw':this[_0x6f0f('0x8')][_0x25f800[_0x6f0f('0x20')]]&&this[_0x6f0f('0x8')][_0x25f800[_0x6f0f('0x20')]][_0x6f0f('0x55')]?!![]:![],'acwtime':this['voiceQueues'][_0x25f800[_0x6f0f('0x20')]]&&this[_0x6f0f('0x8')][_0x25f800[_0x6f0f('0x20')]]['acw']?this['voiceQueues'][_0x25f800[_0x6f0f('0x20')]][_0x6f0f('0x56')]:0x0});_0x25f800['recalculate']=!![];this[_0x6f0f('0x1b')](_0x6f0f('0x6a'),_0x25f800);}}catch(_0x134bf5){logger[_0x6f0f('0x43')](_0x134bf5[_0x6f0f('0x3a')]);}};VoiceAgentReport[_0x6f0f('0x1a')]['syncVarSet']=function(_0x3bad2f){var _0xf7999b=['rtpaudioqos',_0x6f0f('0x6e'),_0x6f0f('0x6f'),_0x6f0f('0x70'),_0x6f0f('0x71'),_0x6f0f('0x72'),_0x6f0f('0x73'),_0x6f0f('0x74'),_0x6f0f('0x75'),'sipuri','bridgepeer',_0x6f0f('0x76'),_0x6f0f('0x77'),_0x6f0f('0x78'),_0x6f0f('0x79'),_0x6f0f('0x7a'),_0x6f0f('0x1f'),_0x6f0f('0x7b'),'memberrealtime'];try{var _0x493949=_[_0x6f0f('0x7c')](_0x3bad2f[_0x6f0f('0x7d')])[0x0];if(!_[_0x6f0f('0x29')](_0x493949)&&!_['includes'](_0xf7999b,_0x493949)){if(!this[_0x6f0f('0x37')][_0x3bad2f[_0x6f0f('0x30')]]){this[_0x6f0f('0x37')][_0x3bad2f[_0x6f0f('0x30')]]={};}this[_0x6f0f('0x37')][_0x3bad2f['channel']][_0x493949]=_0x3bad2f[_0x6f0f('0x7e')];}}catch(_0x4eec57){logger[_0x6f0f('0x43')](_0x4eec57[_0x6f0f('0x3a')]);}};module[_0x6f0f('0x7f')]=VoiceAgentReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38ac=['syncNewExten','bind','newexten','newchannel','newstate','syncNewState','syncVarSet','hangup','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','musiconholdstop','syncMusicOnHoldStop','resolve','then','catch','log','prototype','isNotNull','uniqueid','linkedid','isUndefined','merge','error','inspect','syncNewChannel','OutgoingSpoolFailed','starttime','YYYY-MM-DD\x20HH:mm:ss','toNumber','channelstate','context','channel','split','destconnectedlinenum','exten','emit','user:%s','name','accountcode','application','toLowerCase','applicationdata','appdata','duration','subtract','seconds','format','disposition','pick','keys','includes','lastapplication','lastdata','startsWith','cdr(','match','[syncNewExten][VoiceCallReport]','answered','answertime','holdtime','calleridnum','xcally-motion-preview','connectedlinenum','connectedlinename','calleridname','destinationchannel','membername','UserId','[syncNewState][VoiceCallReport]','syncMixMonitorFilename','endsWith','.wav49','.WAV','monitorFilename','monitors','isNil','rec','variable','mixmonitor_filename','xmd-phone','value','callerid','xmd-cdrtype','xmd-originatecalleridnum','originatecalleridnum','xmd-destination','destination','calleridpreview','sipcallid','sipcalluniqueid','parse','sipcalllinkedid','[syncVarSet][VoiceCallReport]','endtime','diff','billableseconds','from-sip','omit','user:agentcomplete','custom:voiceCallReport','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','transfertargetcalleridnum','secondtransfereruniqueid','transfertargetuniqueid','origtransferercalleridnum','origtransfereruniqueid','[syncAttendedTransfer][VoiceCallReport]','transfereecalleridnum','extension','BlindTransfer','transfererchannel','[syncBlindTransfer][VoiceCallReport]','syncMusicOnHoldStart','mohstarttime','[syncMusicOnHoldStart][VoiceCallReport]','mohtime','milliseconds','[syncMusicOnHoldStop][VoiceCallReport]','bluebird','util','path','../../../config/logger','ami','../ami','../model/channel','unknown','not_inuse','inuse','busy','invalid','unavailable','onhold','set','queue','dial','playback','voicemail','NO\x20ANSWER','FAILED','ANSWERED','defaults','redis','channels','agents','coreshowchannel'];(function(_0x4eba75,_0x3c58bc){var _0x28d30f=function(_0x31df8c){while(--_0x31df8c){_0x4eba75['push'](_0x4eba75['shift']());}};_0x28d30f(++_0x3c58bc);}(_0x38ac,0x7d));var _0xc38a=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0x38ac[_0x199572];return _0x13cfa3;};'use strict';var BPromise=require(_0xc38a('0x0'));var _=require('lodash');var moment=require('moment');var util=require(_0xc38a('0x1'));var path=require(_0xc38a('0x2'));var config=require('../../../config/environment');var logger=require(_0xc38a('0x3'))(_0xc38a('0x4'));var ami=require(_0xc38a('0x5'));var Channel=require(_0xc38a('0x6'));var statusDesc=[_0xc38a('0x7'),_0xc38a('0x8'),_0xc38a('0x9'),_0xc38a('0xa'),_0xc38a('0xb'),_0xc38a('0xc'),'ringing','ringinuse',_0xc38a('0xd')];var applications=[_0xc38a('0xe'),_0xc38a('0xf'),'agi',_0xc38a('0x10'),_0xc38a('0x11'),_0xc38a('0x12')];var dispositions=[_0xc38a('0x13'),_0xc38a('0x14'),_0xc38a('0x14'),_0xc38a('0x13'),_0xc38a('0x13'),_0xc38a('0x13'),_0xc38a('0x15'),'BUSY',_0xc38a('0x14'),_0xc38a('0x14'),'FAILED'];var actions={};config['redis']=_[_0xc38a('0x16')](config[_0xc38a('0x17')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(config['redis']);function VoiceCallReport(_0x4679f9){this['channels']=_0x4679f9[_0xc38a('0x18')];this[_0xc38a('0x19')]=_0x4679f9[_0xc38a('0x19')];ami['on'](_0xc38a('0x1a'),this[_0xc38a('0x1b')][_0xc38a('0x1c')](this));ami['on'](_0xc38a('0x1d'),this['syncNewExten']['bind'](this));ami['on'](_0xc38a('0x1e'),this['syncNewChannel']['bind'](this));ami['on'](_0xc38a('0x1f'),this[_0xc38a('0x20')][_0xc38a('0x1c')](this));ami['on']('varset',this[_0xc38a('0x21')][_0xc38a('0x1c')](this));ami['on'](_0xc38a('0x22'),this[_0xc38a('0x23')][_0xc38a('0x1c')](this));ami['on'](_0xc38a('0x24'),this[_0xc38a('0x25')][_0xc38a('0x1c')](this));ami['on'](_0xc38a('0x26'),this[_0xc38a('0x27')][_0xc38a('0x1c')](this));ami['on'](_0xc38a('0x28'),this[_0xc38a('0x29')][_0xc38a('0x1c')](this));ami['on']('musiconholdstart',this['syncMusicOnHoldStart'][_0xc38a('0x1c')](this));ami['on'](_0xc38a('0x2a'),this[_0xc38a('0x2b')]['bind'](this));return BPromise[_0xc38a('0x2c')]()[_0xc38a('0x2d')](ami['actionCoreShowChannels']())[_0xc38a('0x2e')](function(_0x2897ee){console[_0xc38a('0x2f')](_0x2897ee);});}VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x31')]=function(_0x395928){return _0x395928!==null&&!_['isUndefined'](_0x395928);};VoiceCallReport['prototype']['emit']=function(_0x4ec294,_0x4d3017,_0x3d50c9){io['to'](_0x4ec294)['emit'](_0x4d3017,_0x3d50c9);};VoiceCallReport['prototype']['syncNewCallerId']=function(_0x2fd2d8){try{if(this[_0xc38a('0x31')](_0x2fd2d8)){if(_0x2fd2d8[_0xc38a('0x32')]===_0x2fd2d8[_0xc38a('0x33')]){if(!_[_0xc38a('0x34')](this[_0xc38a('0x18')][_0x2fd2d8['uniqueid']])){_[_0xc38a('0x35')](this[_0xc38a('0x18')][_0x2fd2d8[_0xc38a('0x32')]],_['pick'](_0x2fd2d8,_['keys'](this['channels'][_0x2fd2d8['uniqueid']])));}}}}catch(_0x4938de){logger[_0xc38a('0x36')]('[syncNewCallerId][VoiceCallReport]',util[_0xc38a('0x37')](_0x4938de,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x38')]=function(_0x46fc21){try{if(this[_0xc38a('0x31')](_0x46fc21)){if(_0x46fc21[_0xc38a('0x32')]===_0x46fc21[_0xc38a('0x33')]&&_0x46fc21['channel']!=_0xc38a('0x39')){if(_[_0xc38a('0x34')](this[_0xc38a('0x18')][_0x46fc21[_0xc38a('0x32')]])){this['channels'][_0x46fc21[_0xc38a('0x32')]]=new Channel();this[_0xc38a('0x18')][_0x46fc21[_0xc38a('0x32')]][_0xc38a('0x3a')]=moment()['format'](_0xc38a('0x3b'));this[_0xc38a('0x18')][_0x46fc21[_0xc38a('0x32')]]['disposition']=dispositions[_[_0xc38a('0x3c')](_0x46fc21[_0xc38a('0x3d')])];_[_0xc38a('0x35')](this[_0xc38a('0x18')][_0x46fc21[_0xc38a('0x32')]],_['pick'](_0x46fc21,_['keys'](this[_0xc38a('0x18')][_0x46fc21['uniqueid']])));if(_0x46fc21[_0xc38a('0x3e')]==='from-sip'){if(this['agents'][_0x46fc21[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]]){this[_0xc38a('0x19')][_0x46fc21['channel'][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x41')]=_0x46fc21[_0xc38a('0x42')];this[_0xc38a('0x43')](util['format'](_0xc38a('0x44'),this['agents'][_0x46fc21[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x45')]),'user:agentconnect',{'destaccountcode':this[_0xc38a('0x19')][_0x46fc21[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x46')],'destconnectedlinenum':_0x46fc21['exten']});}}}}}}catch(_0xed6e10){logger['error']('[syncNewChannel][VoiceCallReport]',util[_0xc38a('0x37')](_0xed6e10,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x1b')]=function(_0x2cd652){try{if(this['isNotNull'](_0x2cd652)){if(_0x2cd652['uniqueid']===_0x2cd652[_0xc38a('0x33')]&&_0x2cd652[_0xc38a('0x42')]!='h'&&_0x2cd652[_0xc38a('0x3f')]!=_0xc38a('0x39')){_0x2cd652[_0xc38a('0x47')]=_0x2cd652[_0xc38a('0x47')][_0xc38a('0x48')]();_0x2cd652[_0xc38a('0x49')]=(_0x2cd652[_0xc38a('0x4a')]||_0x2cd652[_0xc38a('0x49')])[_0xc38a('0x48')]();if(_[_0xc38a('0x34')](this[_0xc38a('0x18')][_0x2cd652['uniqueid']])){this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]]=new Channel();this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]][_0xc38a('0x3a')]=_0x2cd652[_0xc38a('0x4b')]?moment()[_0xc38a('0x4c')](moment[_0xc38a('0x4b')](_0x2cd652[_0xc38a('0x4b')])[_0xc38a('0x4d')](),_0xc38a('0x4d'))[_0xc38a('0x4e')](_0xc38a('0x3b')):moment()[_0xc38a('0x4e')](_0xc38a('0x3b'));this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]][_0xc38a('0x4f')]=_0xc38a('0x13');}_[_0xc38a('0x35')](this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]],_[_0xc38a('0x50')](_0x2cd652,_[_0xc38a('0x51')](this[_0xc38a('0x18')][_0x2cd652['uniqueid']])));if(_[_0xc38a('0x52')](applications,_0x2cd652[_0xc38a('0x47')])){this[_0xc38a('0x18')][_0x2cd652['uniqueid']][_0xc38a('0x53')]=_0x2cd652[_0xc38a('0x47')];this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]][_0xc38a('0x54')]=_0x2cd652['applicationdata'];if(_0x2cd652[_0xc38a('0x47')]===_0xc38a('0xe')&&_[_0xc38a('0x55')](_0x2cd652[_0xc38a('0x49')],_0xc38a('0x56'))){var _0x5e3ea1=_0x2cd652['applicationdata'][_0xc38a('0x40')]('=');var _0x54871c=_0x5e3ea1[0x0][_0xc38a('0x57')](/cdr\((.*)\)/);if(_0x54871c){this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]][_0x54871c[0x1]]=_0x5e3ea1[0x1];}}else if(_0x2cd652['application']===_0xc38a('0xf')){this[_0xc38a('0x18')][_0x2cd652[_0xc38a('0x32')]]['queue']=_0x2cd652[_0xc38a('0x49')][_0xc38a('0x40')](',')[0x0];}}}}}catch(_0x153ce8){logger[_0xc38a('0x36')](_0xc38a('0x58'),util[_0xc38a('0x37')](_0x153ce8,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x20')]=function(_0x498428){try{if(this[_0xc38a('0x31')](_0x498428)){if(_0x498428[_0xc38a('0x32')]!==_0x498428['linkedid']){if(this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]]){if(_0x498428[_0xc38a('0x3d')]==='6'){if(!this['channels'][_0x498428[_0xc38a('0x33')]]['answered']){var _0x514801=moment();this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]][_0xc38a('0x59')]=!![];this['channels'][_0x498428[_0xc38a('0x33')]][_0xc38a('0x5a')]=_0x514801[_0xc38a('0x4e')](_0xc38a('0x3b'));if(this['channels'][_0x498428['linkedid']][_0xc38a('0x3a')]){this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]][_0xc38a('0x5b')]=_0x514801['diff'](this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]][_0xc38a('0x3a')],'seconds');}}this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]][_0xc38a('0x33')]=_0x498428['uniqueid'];if(_0x498428[_0xc38a('0x5c')]!==_0xc38a('0x5d')){this[_0xc38a('0x18')][_0x498428['linkedid']][_0xc38a('0x5e')]=_0x498428['calleridnum'];}this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]][_0xc38a('0x5f')]=_0x498428[_0xc38a('0x60')];this[_0xc38a('0x18')][_0x498428['linkedid']][_0xc38a('0x61')]=_0x498428['channel'];this['channels'][_0x498428[_0xc38a('0x33')]][_0xc38a('0x4f')]=dispositions[_[_0xc38a('0x3c')](_0x498428[_0xc38a('0x3d')])];if(this[_0xc38a('0x19')][_0x498428[_0xc38a('0x3f')]['split']('-')[0x0]]){this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]]['UserId']=this['agents'][_0x498428['channel'][_0xc38a('0x40')]('-')[0x0]]['id'];this[_0xc38a('0x18')][_0x498428[_0xc38a('0x33')]][_0xc38a('0x62')]=this[_0xc38a('0x19')][_0x498428[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x45')];}}}}else{if(this[_0xc38a('0x18')][_0x498428[_0xc38a('0x32')]]){if(_0x498428[_0xc38a('0x3d')]==='6'){if(this['agents'][_0x498428[_0xc38a('0x3f')]['split']('-')[0x0]]){this['channels'][_0x498428[_0xc38a('0x32')]][_0xc38a('0x63')]=this[_0xc38a('0x19')][_0x498428[_0xc38a('0x3f')]['split']('-')[0x0]]['id'];this[_0xc38a('0x18')][_0x498428['uniqueid']][_0xc38a('0x62')]=this[_0xc38a('0x19')][_0x498428[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x45')];}}}}}}catch(_0x17a86d){logger[_0xc38a('0x36')](_0xc38a('0x64'),util[_0xc38a('0x37')](_0x17a86d,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0xc38a('0x65')]=function(_0x254031,_0x1de8fe){if(this[_0xc38a('0x18')][_0x254031]){this[_0xc38a('0x18')][_0x254031]['monitor']=!![];if(_[_0xc38a('0x66')](_0x1de8fe,'.wav49')){_0x1de8fe=_0x1de8fe['replace'](_0xc38a('0x67'),_0xc38a('0x68'));}this[_0xc38a('0x18')][_0x254031][_0xc38a('0x69')]=_0x1de8fe;var _0x20cc92=_['find'](this[_0xc38a('0x18')][_0x254031][_0xc38a('0x6a')],{'filename':_0x1de8fe});if(_[_0xc38a('0x6b')](_0x20cc92)){this[_0xc38a('0x18')][_0x254031][_0xc38a('0x6a')]['push']({'filename':_0x1de8fe,'createdAt':moment()[_0xc38a('0x4e')](_0xc38a('0x3b')),'mixmonitorid':'','status':_0xc38a('0x6c')});}}};VoiceCallReport[_0xc38a('0x30')]['syncVarSet']=function(_0x10c9b7){try{if(this[_0xc38a('0x31')](_0x10c9b7)){if(this[_0xc38a('0x18')][_0x10c9b7[_0xc38a('0x32')]]&&_0x10c9b7[_0xc38a('0x3f')]!=_0xc38a('0x39')){if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')])){if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x6e')])){this[_0xc38a('0x65')](_0x10c9b7['uniqueid'],_0x10c9b7['value']);}else if(this[_0xc38a('0x31')](_0x10c9b7['variable'][_0xc38a('0x6f')])){this[_0xc38a('0x18')][_0x10c9b7[_0xc38a('0x32')]][_0xc38a('0x5c')]=_0x10c9b7[_0xc38a('0x70')];}else if(this['isNotNull'](_0x10c9b7[_0xc38a('0x6d')]['xmd-callerid'])){this[_0xc38a('0x18')][_0x10c9b7[_0xc38a('0x32')]][_0xc38a('0x71')]=_0x10c9b7[_0xc38a('0x70')];}else if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x72')])){this['channels'][_0x10c9b7[_0xc38a('0x32')]]['type']=_0x10c9b7[_0xc38a('0x70')];}else if(this[_0xc38a('0x31')](_0x10c9b7['variable']['xmd-queue'])){this[_0xc38a('0x18')][_0x10c9b7[_0xc38a('0x32')]][_0xc38a('0xf')]=_0x10c9b7[_0xc38a('0x70')][_0xc38a('0x40')](',')[0x0];}else if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x73')])){this[_0xc38a('0x18')][_0x10c9b7[_0xc38a('0x32')]][_0xc38a('0x74')]=_0x10c9b7[_0xc38a('0x70')];}else if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x75')])){this[_0xc38a('0x18')][_0x10c9b7['uniqueid']][_0xc38a('0x76')]=_0x10c9b7[_0xc38a('0x70')];}else if(this['isNotNull'](_0x10c9b7[_0xc38a('0x6d')]['xmd-callerid-preview'])){this[_0xc38a('0x18')][_0x10c9b7[_0xc38a('0x32')]][_0xc38a('0x77')]=_0x10c9b7['value'];}else if(this['isNotNull'](_0x10c9b7['variable']['xmcs-queue'])){this[_0xc38a('0x18')][_0x10c9b7['uniqueid']][_0xc38a('0xf')]=_0x10c9b7[_0xc38a('0x70')];}else if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x78')])){this['channels'][_0x10c9b7[_0xc38a('0x32')]][_0xc38a('0x79')]=_0x10c9b7['value'];}}}else if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x6e')])){if(_0x10c9b7[_0xc38a('0x70')]){var _0x16ca3d=path[_0xc38a('0x7a')](_0x10c9b7[_0xc38a('0x70')])['name'];this[_0xc38a('0x65')](_0x16ca3d,_0x10c9b7[_0xc38a('0x70')]);}}else if(this[_0xc38a('0x18')][_0x10c9b7['linkedid']]){if(this[_0xc38a('0x31')](_0x10c9b7['variable'])){if(this[_0xc38a('0x31')](_0x10c9b7[_0xc38a('0x6d')][_0xc38a('0x78')])){this['channels'][_0x10c9b7[_0xc38a('0x33')]][_0xc38a('0x7b')]=_0x10c9b7['value'];}}}}}catch(_0xbbb17f){logger[_0xc38a('0x36')](_0xc38a('0x7c'),util[_0xc38a('0x37')](_0xbbb17f,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')]['syncHangup']=function(_0x549999){try{if(this[_0xc38a('0x31')](_0x549999)){if(this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]]){var _0x11a032=moment();this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]][_0xc38a('0x7d')]=_0x11a032[_0xc38a('0x4e')](_0xc38a('0x3b'));this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]][_0xc38a('0x4b')]=_0x11a032[_0xc38a('0x7e')](this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]]['starttime'],_0xc38a('0x4d'));if(this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]][_0xc38a('0x59')]){this[_0xc38a('0x18')][_0x549999['uniqueid']]['billableseconds']=_0x11a032['diff'](this['channels'][_0x549999[_0xc38a('0x32')]]['answertime'],'seconds');this['channels'][_0x549999['uniqueid']]['holdtime']=this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]][_0xc38a('0x4b')]-this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]][_0xc38a('0x7f')];}if(_0x549999[_0xc38a('0x3e')]===_0xc38a('0x80')){if(this[_0xc38a('0x19')][_0x549999['channel'][_0xc38a('0x40')]('-')[0x0]]){this['agents'][_0x549999[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]]=_[_0xc38a('0x81')](this[_0xc38a('0x19')][_0x549999[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]],[_0xc38a('0x41')]);this[_0xc38a('0x43')](util['format']('user:%s',this[_0xc38a('0x19')][_0x549999[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x45')]),_0xc38a('0x82'),{'destaccountcode':this[_0xc38a('0x19')][_0x549999[_0xc38a('0x3f')][_0xc38a('0x40')]('-')[0x0]][_0xc38a('0x46')]});}}ami[_0xc38a('0x43')](_0xc38a('0x83'),this[_0xc38a('0x18')][_0x549999[_0xc38a('0x32')]]);delete this[_0xc38a('0x18')][_0x549999['uniqueid']];}}}catch(_0x2cd92c){logger[_0xc38a('0x36')]('[syncHangup][VoiceCallReport]',util['inspect'](_0x2cd92c,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x27')]=function(_0x437d27){try{if(this[_0xc38a('0x31')](_0x437d27)){if(this[_0xc38a('0x18')][_0x437d27['transfereeuniqueid']]){this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x84')]][_0xc38a('0x85')]=_0x437d27['origtransferercalleridnum'];this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x84')]][_0xc38a('0x86')]=_0x437d27[_0xc38a('0x87')];if(this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x88')]]){var _0x76980c=this[_0xc38a('0x18')][_0x437d27['secondtransfereruniqueid']];this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x88')]]=this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x84')]];this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x84')]]=_0x76980c;}}else if(this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x89')]]){this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x89')]]['transfercalleridnum']=_0x437d27[_0xc38a('0x8a')];this['channels'][_0x437d27[_0xc38a('0x89')]][_0xc38a('0x86')]=_0x437d27[_0xc38a('0x87')];if(this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x8b')]]){var _0x76980c=this['channels'][_0x437d27[_0xc38a('0x8b')]];this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x8b')]]=this[_0xc38a('0x18')][_0x437d27[_0xc38a('0x89')]];this['channels'][_0x437d27['transfertargetuniqueid']]=_0x76980c;}}}}catch(_0x4a791a){logger[_0xc38a('0x36')](_0xc38a('0x8c'),util['inspect'](_0x4a791a,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')]['syncBlindTransfer']=function(_0x1c450e){try{if(this[_0xc38a('0x31')](_0x1c450e)){if(this[_0xc38a('0x18')][_0x1c450e['transfereeuniqueid']]){this['channels'][_0x1c450e[_0xc38a('0x84')]][_0xc38a('0x85')]=_0x1c450e[_0xc38a('0x8d')];this[_0xc38a('0x18')][_0x1c450e[_0xc38a('0x84')]][_0xc38a('0x86')]=_0x1c450e[_0xc38a('0x8e')];this[_0xc38a('0x23')]({'event':_0xc38a('0x8f'),'uniqueid':_0x1c450e['transfereeuniqueid'],'context':_0x1c450e[_0xc38a('0x3e')],'channel':_0x1c450e[_0xc38a('0x90')]});}}}catch(_0x4fa2cc){logger['error'](_0xc38a('0x91'),util[_0xc38a('0x37')](_0x4fa2cc,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x92')]=function(_0x572338){try{if(this[_0xc38a('0x31')](_0x572338)){if(this[_0xc38a('0x18')][_0x572338[_0xc38a('0x32')]]){if(!_[_0xc38a('0x6b')](this['channels'][_0x572338[_0xc38a('0x32')]]['answertime'])){this[_0xc38a('0x18')][_0x572338['uniqueid']][_0xc38a('0x93')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}}}}catch(_0x12c899){logger[_0xc38a('0x36')](_0xc38a('0x94'),util['inspect'](_0x12c899,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xc38a('0x30')][_0xc38a('0x2b')]=function(_0x47a2f2){try{if(this[_0xc38a('0x31')](_0x47a2f2)){if(this['channels'][_0x47a2f2[_0xc38a('0x32')]]){if(!_[_0xc38a('0x6b')](this['channels'][_0x47a2f2['uniqueid']][_0xc38a('0x93')])){this[_0xc38a('0x18')][_0x47a2f2[_0xc38a('0x32')]][_0xc38a('0x95')]+=moment()[_0xc38a('0x96')](0x0)[_0xc38a('0x7e')](this[_0xc38a('0x18')][_0x47a2f2[_0xc38a('0x32')]][_0xc38a('0x93')],'seconds');delete this[_0xc38a('0x18')][_0x47a2f2[_0xc38a('0x32')]][_0xc38a('0x93')];}}}}catch(_0x20756e){logger[_0xc38a('0x36')](_0xc38a('0x97'),util[_0xc38a('0x37')](_0x20756e,{'showHidden':![],'depth':null}));}};module['exports']=VoiceCallReport;
\ No newline at end of file
+var _0x453d=['syncNewChannel','varset','syncVarSet','hangup','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','resolve','then','actionCoreShowChannels','catch','isNotNull','prototype','emit','uniqueid','linkedid','isUndefined','merge','pick','keys','[syncNewCallerId][VoiceCallReport]','inspect','channel','OutgoingSpoolFailed','format','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','context','from-sip','split','user:%s','name','user:agentconnect','exten','error','application','toLowerCase','applicationdata','appdata','starttime','subtract','seconds','includes','lastapplication','lastdata','startsWith','cdr(','match','[syncNewExten][VoiceCallReport]','syncNewState','answered','answertime','diff','xcally-motion-preview','connectedlinenum','calleridnum','connectedlinename','calleridname','UserId','membername','.wav49','replace','.WAV','monitors','rec','variable','mixmonitor_filename','syncMixMonitorFilename','xmd-phone','value','xmd-callerid','callerid','xmd-cdrtype','xmd-originatecalleridnum','originatecalleridnum','destination','xmd-callerid-preview','calleridpreview','sipcalluniqueid','parse','sipcallid','sipcalllinkedid','[syncVarSet][VoiceCallReport]','endtime','billableseconds','holdtime','duration','omit','destconnectedlinenum','user:agentcomplete','accountcode','custom:voiceCallReport','[syncHangup][VoiceCallReport]','transfereeuniqueid','transfercalleridnum','transfertargetcalleridnum','secondtransfereruniqueid','transfertargetuniqueid','origtransferercalleridnum','transferconnectedlinenum','origtransfereruniqueid','transfereecalleridnum','BlindTransfer','transfererchannel','[syncBlindTransfer][VoiceCallReport]','isNil','mohstarttime','[syncMusicOnHoldStart][VoiceCallReport]','mohtime','[syncMusicOnHoldStop][VoiceCallReport]','exports','lodash','moment','ioredis','../../../config/environment','../../../config/logger','ami','not_inuse','inuse','invalid','unavailable','ringing','onhold','set','queue','agi','dial','playback','FAILED','NO\x20ANSWER','BUSY','redis','defaults','socket.io-emitter','channels','agents','coreshowchannel','syncNewExten','bind','newexten','newchannel'];(function(_0x5a6376,_0x260ff6){var _0x433156=function(_0x387ba5){while(--_0x387ba5){_0x5a6376['push'](_0x5a6376['shift']());}};_0x433156(++_0x260ff6);}(_0x453d,0x110));var _0xd453=function(_0x1e0f92,_0x14b225){_0x1e0f92=_0x1e0f92-0x0;var _0x5b7b39=_0x453d[_0x1e0f92];return _0x5b7b39;};'use strict';var BPromise=require('bluebird');var _=require(_0xd453('0x0'));var moment=require(_0xd453('0x1'));var util=require('util');var path=require('path');var Redis=require(_0xd453('0x2'));var config=require(_0xd453('0x3'));var logger=require(_0xd453('0x4'))(_0xd453('0x5'));var ami=require('../ami');var Channel=require('../model/channel');var statusDesc=['unknown',_0xd453('0x6'),_0xd453('0x7'),'busy',_0xd453('0x8'),_0xd453('0x9'),_0xd453('0xa'),'ringinuse',_0xd453('0xb')];var applications=[_0xd453('0xc'),_0xd453('0xd'),_0xd453('0xe'),_0xd453('0xf'),_0xd453('0x10'),'voicemail'];var dispositions=['NO\x20ANSWER',_0xd453('0x11'),_0xd453('0x11'),_0xd453('0x12'),_0xd453('0x12'),_0xd453('0x12'),'ANSWERED',_0xd453('0x13'),_0xd453('0x11'),_0xd453('0x11'),_0xd453('0x11')];var actions={};config[_0xd453('0x14')]=_[_0xd453('0x15')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xd453('0x16'))(new Redis(config[_0xd453('0x14')]));function VoiceCallReport(_0x4909ee){this[_0xd453('0x17')]=_0x4909ee[_0xd453('0x17')];this['agents']=_0x4909ee[_0xd453('0x18')];ami['on'](_0xd453('0x19'),this[_0xd453('0x1a')][_0xd453('0x1b')](this));ami['on'](_0xd453('0x1c'),this[_0xd453('0x1a')][_0xd453('0x1b')](this));ami['on'](_0xd453('0x1d'),this[_0xd453('0x1e')][_0xd453('0x1b')](this));ami['on']('newstate',this['syncNewState'][_0xd453('0x1b')](this));ami['on'](_0xd453('0x1f'),this[_0xd453('0x20')]['bind'](this));ami['on'](_0xd453('0x21'),this[_0xd453('0x22')]['bind'](this));ami['on'](_0xd453('0x23'),this[_0xd453('0x24')]['bind'](this));ami['on'](_0xd453('0x25'),this[_0xd453('0x26')][_0xd453('0x1b')](this));ami['on'](_0xd453('0x27'),this[_0xd453('0x28')][_0xd453('0x1b')](this));ami['on'](_0xd453('0x29'),this[_0xd453('0x2a')][_0xd453('0x1b')](this));ami['on'](_0xd453('0x2b'),this[_0xd453('0x2c')][_0xd453('0x1b')](this));return BPromise[_0xd453('0x2d')]()[_0xd453('0x2e')](ami[_0xd453('0x2f')]())[_0xd453('0x30')](function(_0x3a652e){console['log'](_0x3a652e);});}VoiceCallReport['prototype'][_0xd453('0x31')]=function(_0x31cd6d){return _0x31cd6d!==null&&!_['isUndefined'](_0x31cd6d);};VoiceCallReport[_0xd453('0x32')][_0xd453('0x33')]=function(_0x59c09a,_0x556644,_0x5e82b8){io['to'](_0x59c09a)[_0xd453('0x33')](_0x556644,_0x5e82b8);};VoiceCallReport[_0xd453('0x32')]['syncNewCallerId']=function(_0x676df0){try{if(this['isNotNull'](_0x676df0)){if(_0x676df0[_0xd453('0x34')]===_0x676df0[_0xd453('0x35')]){if(!_[_0xd453('0x36')](this[_0xd453('0x17')][_0x676df0[_0xd453('0x34')]])){_[_0xd453('0x37')](this[_0xd453('0x17')][_0x676df0[_0xd453('0x34')]],_[_0xd453('0x38')](_0x676df0,_[_0xd453('0x39')](this[_0xd453('0x17')][_0x676df0[_0xd453('0x34')]])));}}}}catch(_0x5dc17c){logger['error'](_0xd453('0x3a'),util[_0xd453('0x3b')](_0x5dc17c,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0xd453('0x1e')]=function(_0x4b1af7){try{if(this[_0xd453('0x31')](_0x4b1af7)){if(_0x4b1af7[_0xd453('0x34')]===_0x4b1af7[_0xd453('0x35')]&&_0x4b1af7[_0xd453('0x3c')]!=_0xd453('0x3d')){if(_[_0xd453('0x36')](this[_0xd453('0x17')][_0x4b1af7['uniqueid']])){this[_0xd453('0x17')][_0x4b1af7[_0xd453('0x34')]]=new Channel();this[_0xd453('0x17')][_0x4b1af7[_0xd453('0x34')]]['starttime']=moment()[_0xd453('0x3e')](_0xd453('0x3f'));this['channels'][_0x4b1af7['uniqueid']][_0xd453('0x40')]=dispositions[_[_0xd453('0x41')](_0x4b1af7[_0xd453('0x42')])];_[_0xd453('0x37')](this[_0xd453('0x17')][_0x4b1af7[_0xd453('0x34')]],_[_0xd453('0x38')](_0x4b1af7,_[_0xd453('0x39')](this['channels'][_0x4b1af7['uniqueid']])));if(_0x4b1af7[_0xd453('0x43')]===_0xd453('0x44')){if(this[_0xd453('0x18')][_0x4b1af7[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]){this[_0xd453('0x18')][_0x4b1af7[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]['destconnectedlinenum']=_0x4b1af7['exten'];this[_0xd453('0x33')](util['format'](_0xd453('0x46'),this[_0xd453('0x18')][_0x4b1af7[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]][_0xd453('0x47')]),_0xd453('0x48'),{'destaccountcode':this[_0xd453('0x18')][_0x4b1af7[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x4b1af7[_0xd453('0x49')]});}}}}}}catch(_0x18bd51){logger[_0xd453('0x4a')]('[syncNewChannel][VoiceCallReport]',util[_0xd453('0x3b')](_0x18bd51,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')][_0xd453('0x1a')]=function(_0x26f71d){try{if(this[_0xd453('0x31')](_0x26f71d)){if(_0x26f71d[_0xd453('0x34')]===_0x26f71d[_0xd453('0x35')]&&_0x26f71d[_0xd453('0x49')]!='h'&&_0x26f71d['channel']!=_0xd453('0x3d')){_0x26f71d[_0xd453('0x4b')]=_0x26f71d['application'][_0xd453('0x4c')]();_0x26f71d[_0xd453('0x4d')]=(_0x26f71d[_0xd453('0x4e')]||_0x26f71d[_0xd453('0x4d')])['toLowerCase']();if(_[_0xd453('0x36')](this[_0xd453('0x17')][_0x26f71d['uniqueid']])){this['channels'][_0x26f71d[_0xd453('0x34')]]=new Channel();this['channels'][_0x26f71d[_0xd453('0x34')]][_0xd453('0x4f')]=_0x26f71d['duration']?moment()[_0xd453('0x50')](moment['duration'](_0x26f71d['duration'])[_0xd453('0x51')](),_0xd453('0x51'))[_0xd453('0x3e')](_0xd453('0x3f')):moment()['format'](_0xd453('0x3f'));this['channels'][_0x26f71d[_0xd453('0x34')]][_0xd453('0x40')]='NO\x20ANSWER';}_[_0xd453('0x37')](this['channels'][_0x26f71d['uniqueid']],_['pick'](_0x26f71d,_['keys'](this[_0xd453('0x17')][_0x26f71d[_0xd453('0x34')]])));if(_[_0xd453('0x52')](applications,_0x26f71d[_0xd453('0x4b')])){this[_0xd453('0x17')][_0x26f71d[_0xd453('0x34')]][_0xd453('0x53')]=_0x26f71d['application'];this[_0xd453('0x17')][_0x26f71d['uniqueid']][_0xd453('0x54')]=_0x26f71d[_0xd453('0x4d')];if(_0x26f71d[_0xd453('0x4b')]==='set'&&_[_0xd453('0x55')](_0x26f71d[_0xd453('0x4d')],_0xd453('0x56'))){var _0x43a55a=_0x26f71d[_0xd453('0x4d')][_0xd453('0x45')]('=');var _0x7525e5=_0x43a55a[0x0][_0xd453('0x57')](/cdr\((.*)\)/);if(_0x7525e5){this[_0xd453('0x17')][_0x26f71d['uniqueid']][_0x7525e5[0x1]]=_0x43a55a[0x1];}}else if(_0x26f71d[_0xd453('0x4b')]===_0xd453('0xd')){this['channels'][_0x26f71d[_0xd453('0x34')]]['queue']=_0x26f71d[_0xd453('0x4d')][_0xd453('0x45')](',')[0x0];}}}}}catch(_0x3fb2bf){logger[_0xd453('0x4a')](_0xd453('0x58'),util[_0xd453('0x3b')](_0x3fb2bf,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')][_0xd453('0x59')]=function(_0x4f2c5d){try{if(this[_0xd453('0x31')](_0x4f2c5d)){if(_0x4f2c5d[_0xd453('0x34')]!==_0x4f2c5d[_0xd453('0x35')]){if(this[_0xd453('0x17')][_0x4f2c5d['linkedid']]){if(_0x4f2c5d[_0xd453('0x42')]==='6'){if(!this['channels'][_0x4f2c5d['linkedid']]['answered']){var _0x44eae2=moment();this[_0xd453('0x17')][_0x4f2c5d['linkedid']][_0xd453('0x5a')]=!![];this[_0xd453('0x17')][_0x4f2c5d[_0xd453('0x35')]][_0xd453('0x5b')]=_0x44eae2['format'](_0xd453('0x3f'));if(this[_0xd453('0x17')][_0x4f2c5d['linkedid']][_0xd453('0x4f')]){this['channels'][_0x4f2c5d[_0xd453('0x35')]]['holdtime']=_0x44eae2[_0xd453('0x5c')](this[_0xd453('0x17')][_0x4f2c5d['linkedid']][_0xd453('0x4f')],_0xd453('0x51'));}}this['channels'][_0x4f2c5d['linkedid']]['linkedid']=_0x4f2c5d[_0xd453('0x34')];if(_0x4f2c5d['calleridnum']!==_0xd453('0x5d')){this['channels'][_0x4f2c5d[_0xd453('0x35')]][_0xd453('0x5e')]=_0x4f2c5d[_0xd453('0x5f')];}this[_0xd453('0x17')][_0x4f2c5d['linkedid']][_0xd453('0x60')]=_0x4f2c5d[_0xd453('0x61')];this[_0xd453('0x17')][_0x4f2c5d[_0xd453('0x35')]]['destinationchannel']=_0x4f2c5d[_0xd453('0x3c')];this[_0xd453('0x17')][_0x4f2c5d[_0xd453('0x35')]][_0xd453('0x40')]=dispositions[_[_0xd453('0x41')](_0x4f2c5d[_0xd453('0x42')])];if(this[_0xd453('0x18')][_0x4f2c5d[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]){this['channels'][_0x4f2c5d[_0xd453('0x35')]][_0xd453('0x62')]=this[_0xd453('0x18')][_0x4f2c5d['channel'][_0xd453('0x45')]('-')[0x0]]['id'];this['channels'][_0x4f2c5d[_0xd453('0x35')]][_0xd453('0x63')]=this['agents'][_0x4f2c5d[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]['name'];}}}}else{if(this[_0xd453('0x17')][_0x4f2c5d[_0xd453('0x34')]]){if(_0x4f2c5d[_0xd453('0x42')]==='6'){if(this[_0xd453('0x18')][_0x4f2c5d[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]){this[_0xd453('0x17')][_0x4f2c5d['uniqueid']][_0xd453('0x62')]=this[_0xd453('0x18')][_0x4f2c5d[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]['id'];this[_0xd453('0x17')][_0x4f2c5d[_0xd453('0x34')]][_0xd453('0x63')]=this[_0xd453('0x18')][_0x4f2c5d[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]['name'];}}}}}}catch(_0x4d35bd){logger[_0xd453('0x4a')]('[syncNewState][VoiceCallReport]',util['inspect'](_0x4d35bd,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')]['syncMixMonitorFilename']=function(_0x4be4e0,_0x3d0610){if(this['channels'][_0x4be4e0]){this[_0xd453('0x17')][_0x4be4e0]['monitor']=!![];if(_['endsWith'](_0x3d0610,_0xd453('0x64'))){_0x3d0610=_0x3d0610[_0xd453('0x65')](_0xd453('0x64'),_0xd453('0x66'));}this[_0xd453('0x17')][_0x4be4e0]['monitorFilename']=_0x3d0610;var _0x4eece2=_['find'](this['channels'][_0x4be4e0][_0xd453('0x67')],{'filename':_0x3d0610});if(_['isNil'](_0x4eece2)){this['channels'][_0x4be4e0][_0xd453('0x67')]['push']({'filename':_0x3d0610,'createdAt':moment()[_0xd453('0x3e')](_0xd453('0x3f')),'mixmonitorid':'','status':_0xd453('0x68')});}}};VoiceCallReport[_0xd453('0x32')]['syncVarSet']=function(_0x2c6114){try{if(this[_0xd453('0x31')](_0x2c6114)){if(this[_0xd453('0x17')][_0x2c6114[_0xd453('0x34')]]&&_0x2c6114[_0xd453('0x3c')]!=_0xd453('0x3d')){if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')])){if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x6a')])){this[_0xd453('0x6b')](_0x2c6114[_0xd453('0x34')],_0x2c6114['value']);}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x6c')])){this['channels'][_0x2c6114[_0xd453('0x34')]][_0xd453('0x5f')]=_0x2c6114[_0xd453('0x6d')];}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x6e')])){this[_0xd453('0x17')][_0x2c6114[_0xd453('0x34')]][_0xd453('0x6f')]=_0x2c6114['value'];}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x70')])){this[_0xd453('0x17')][_0x2c6114[_0xd453('0x34')]]['type']=_0x2c6114[_0xd453('0x6d')];}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')]['xmd-queue'])){this[_0xd453('0x17')][_0x2c6114[_0xd453('0x34')]][_0xd453('0xd')]=_0x2c6114['value'][_0xd453('0x45')](',')[0x0];}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x71')])){this[_0xd453('0x17')][_0x2c6114['uniqueid']][_0xd453('0x72')]=_0x2c6114['value'];}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')]['xmd-destination'])){this[_0xd453('0x17')][_0x2c6114[_0xd453('0x34')]][_0xd453('0x73')]=_0x2c6114[_0xd453('0x6d')];}else if(this[_0xd453('0x31')](_0x2c6114['variable'][_0xd453('0x74')])){this['channels'][_0x2c6114[_0xd453('0x34')]][_0xd453('0x75')]=_0x2c6114[_0xd453('0x6d')];}else if(this[_0xd453('0x31')](_0x2c6114['variable']['xmcs-queue'])){this['channels'][_0x2c6114[_0xd453('0x34')]][_0xd453('0xd')]=_0x2c6114[_0xd453('0x6d')];}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')]['sipcallid'])){this[_0xd453('0x17')][_0x2c6114[_0xd453('0x34')]][_0xd453('0x76')]=_0x2c6114[_0xd453('0x6d')];}}}else if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x6a')])){if(_0x2c6114[_0xd453('0x6d')]){var _0x6b08ae=path[_0xd453('0x77')](_0x2c6114['value'])[_0xd453('0x47')];this['syncMixMonitorFilename'](_0x6b08ae,_0x2c6114[_0xd453('0x6d')]);}}else if(this[_0xd453('0x17')][_0x2c6114[_0xd453('0x35')]]){if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')])){if(this[_0xd453('0x31')](_0x2c6114[_0xd453('0x69')][_0xd453('0x78')])){this[_0xd453('0x17')][_0x2c6114[_0xd453('0x35')]][_0xd453('0x79')]=_0x2c6114['value'];}}}}}catch(_0x447a88){logger['error'](_0xd453('0x7a'),util[_0xd453('0x3b')](_0x447a88,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0xd453('0x22')]=function(_0x3c2cb4){try{if(this[_0xd453('0x31')](_0x3c2cb4)){if(this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]]){var _0x3cfb03=moment();this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]][_0xd453('0x7b')]=_0x3cfb03['format'](_0xd453('0x3f'));this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]]['duration']=_0x3cfb03[_0xd453('0x5c')](this[_0xd453('0x17')][_0x3c2cb4['uniqueid']][_0xd453('0x4f')],'seconds');if(this[_0xd453('0x17')][_0x3c2cb4['uniqueid']]['answered']){this[_0xd453('0x17')][_0x3c2cb4['uniqueid']][_0xd453('0x7c')]=_0x3cfb03[_0xd453('0x5c')](this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]][_0xd453('0x5b')],_0xd453('0x51'));this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]][_0xd453('0x7d')]=this['channels'][_0x3c2cb4[_0xd453('0x34')]][_0xd453('0x7e')]-this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]][_0xd453('0x7c')];}if(_0x3c2cb4['context']===_0xd453('0x44')){if(this[_0xd453('0x18')][_0x3c2cb4[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]){this[_0xd453('0x18')][_0x3c2cb4[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]]=_[_0xd453('0x7f')](this[_0xd453('0x18')][_0x3c2cb4['channel'][_0xd453('0x45')]('-')[0x0]],[_0xd453('0x80')]);this[_0xd453('0x33')](util[_0xd453('0x3e')](_0xd453('0x46'),this[_0xd453('0x18')][_0x3c2cb4['channel'][_0xd453('0x45')]('-')[0x0]][_0xd453('0x47')]),_0xd453('0x81'),{'destaccountcode':this[_0xd453('0x18')][_0x3c2cb4[_0xd453('0x3c')][_0xd453('0x45')]('-')[0x0]][_0xd453('0x82')]});}}ami['emit'](_0xd453('0x83'),this[_0xd453('0x17')][_0x3c2cb4[_0xd453('0x34')]]);delete this[_0xd453('0x17')][_0x3c2cb4['uniqueid']];}}}catch(_0xdaa08b){logger['error'](_0xd453('0x84'),util['inspect'](_0xdaa08b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')][_0xd453('0x26')]=function(_0x331537){try{if(this['isNotNull'](_0x331537)){if(this[_0xd453('0x17')][_0x331537[_0xd453('0x85')]]){this[_0xd453('0x17')][_0x331537[_0xd453('0x85')]][_0xd453('0x86')]=_0x331537['origtransferercalleridnum'];this[_0xd453('0x17')][_0x331537[_0xd453('0x85')]]['transferconnectedlinenum']=_0x331537[_0xd453('0x87')];if(this[_0xd453('0x17')][_0x331537[_0xd453('0x88')]]){var _0x1d82c8=this['channels'][_0x331537[_0xd453('0x88')]];this[_0xd453('0x17')][_0x331537[_0xd453('0x88')]]=this[_0xd453('0x17')][_0x331537[_0xd453('0x85')]];this[_0xd453('0x17')][_0x331537[_0xd453('0x85')]]=_0x1d82c8;}}else if(this[_0xd453('0x17')][_0x331537[_0xd453('0x89')]]){this[_0xd453('0x17')][_0x331537[_0xd453('0x89')]][_0xd453('0x86')]=_0x331537[_0xd453('0x8a')];this[_0xd453('0x17')][_0x331537[_0xd453('0x89')]][_0xd453('0x8b')]=_0x331537['transfertargetcalleridnum'];if(this[_0xd453('0x17')][_0x331537[_0xd453('0x8c')]]){var _0x1d82c8=this[_0xd453('0x17')][_0x331537[_0xd453('0x8c')]];this[_0xd453('0x17')][_0x331537['origtransfereruniqueid']]=this['channels'][_0x331537[_0xd453('0x89')]];this['channels'][_0x331537[_0xd453('0x89')]]=_0x1d82c8;}}}}catch(_0x399fea){logger[_0xd453('0x4a')]('[syncAttendedTransfer][VoiceCallReport]',util[_0xd453('0x3b')](_0x399fea,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')][_0xd453('0x28')]=function(_0x366f31){try{if(this[_0xd453('0x31')](_0x366f31)){if(this[_0xd453('0x17')][_0x366f31[_0xd453('0x85')]]){this[_0xd453('0x17')][_0x366f31[_0xd453('0x85')]][_0xd453('0x86')]=_0x366f31[_0xd453('0x8d')];this[_0xd453('0x17')][_0x366f31[_0xd453('0x85')]][_0xd453('0x8b')]=_0x366f31['extension'];this[_0xd453('0x22')]({'event':_0xd453('0x8e'),'uniqueid':_0x366f31[_0xd453('0x85')],'context':_0x366f31['context'],'channel':_0x366f31[_0xd453('0x8f')]});}}}catch(_0x33897b){logger['error'](_0xd453('0x90'),util[_0xd453('0x3b')](_0x33897b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')]['syncMusicOnHoldStart']=function(_0x139392){try{if(this['isNotNull'](_0x139392)){if(this['channels'][_0x139392[_0xd453('0x34')]]){if(!_[_0xd453('0x91')](this[_0xd453('0x17')][_0x139392[_0xd453('0x34')]][_0xd453('0x5b')])){this['channels'][_0x139392[_0xd453('0x34')]][_0xd453('0x92')]=moment()[_0xd453('0x3e')](_0xd453('0x3f'));}}}}catch(_0x2ffeaf){logger[_0xd453('0x4a')](_0xd453('0x93'),util[_0xd453('0x3b')](_0x2ffeaf,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xd453('0x32')][_0xd453('0x2c')]=function(_0x33ba5c){try{if(this[_0xd453('0x31')](_0x33ba5c)){if(this[_0xd453('0x17')][_0x33ba5c[_0xd453('0x34')]]){if(!_[_0xd453('0x91')](this[_0xd453('0x17')][_0x33ba5c[_0xd453('0x34')]][_0xd453('0x92')])){this[_0xd453('0x17')][_0x33ba5c[_0xd453('0x34')]][_0xd453('0x94')]+=moment()['milliseconds'](0x0)[_0xd453('0x5c')](this['channels'][_0x33ba5c[_0xd453('0x34')]][_0xd453('0x92')],_0xd453('0x51'));delete this['channels'][_0x33ba5c[_0xd453('0x34')]]['mohstarttime'];}}}}catch(_0x4ed783){logger[_0xd453('0x4a')](_0xd453('0x95'),util[_0xd453('0x3b')](_0x4ed783,{'showHidden':![],'depth':null}));}};module[_0xd453('0x96')]=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9b7=['channels','merge','format','YYYY-MM-DD\x20HH:mm:ss','called','substring','channel','lastIndexOf','omit','event','privilege','emit','voice:outbound','voice_outbound_channel:save','uniqueid','custom:dialbegin','error','[syncDialBegin][VoiceDialReport]','inspect','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','lastevent','connect','addVariable','value','variable','outboundrouteid','[syncVarSet][VoiceDialReport]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipuri','membercalls','memberdynamic','memberlastcall','membername','memberpenalty','memberrealtime','isNil','includes','variables','endtime','diff','seconds','total','holdtime','starttime','billableseconds','sumHoldTime','sumBillable','sumDuration','custom:voiceDialReport','custom:dialend','voice_outbound:save','voice_outbound_channel:remove','[syncHangup][VoiceDialReport]','exports','lodash','util','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','outboundChannels','outbound','dialbegin','syncDialBegin','dialend','syncDialEnd','bind','varset','syncVarSet','hangup','syncHangup','prototype','isNotNull','isUndefined'];(function(_0xa578a4,_0x4fc9d2){var _0x56d1f0=function(_0x40d97e){while(--_0x40d97e){_0xa578a4['push'](_0xa578a4['shift']());}};_0x56d1f0(++_0x4fc9d2);}(_0xc9b7,0x1f2));var _0x7c9b=function(_0x158cfc,_0x3ff9e0){_0x158cfc=_0x158cfc-0x0;var _0x38baee=_0xc9b7[_0x158cfc];return _0x38baee;};'use strict';var _=require(_0x7c9b('0x0'));var moment=require('moment');var util=require(_0x7c9b('0x1'));var config=require(_0x7c9b('0x2'));var logger=require(_0x7c9b('0x3'))(_0x7c9b('0x4'));var ami=require(_0x7c9b('0x5'));config[_0x7c9b('0x6')]=_[_0x7c9b('0x7')](config[_0x7c9b('0x6')],{'host':_0x7c9b('0x8'),'port':0x18eb});var io=require(_0x7c9b('0x9'))(config[_0x7c9b('0x6')]);function VoiceDialReport(_0x4a81c0){this['channels']=_0x4a81c0[_0x7c9b('0xa')];this[_0x7c9b('0xb')]=_0x4a81c0[_0x7c9b('0xb')];this['variables']={};ami['on'](_0x7c9b('0xc'),this[_0x7c9b('0xd')]['bind'](this));ami['on'](_0x7c9b('0xe'),this[_0x7c9b('0xf')][_0x7c9b('0x10')](this));ami['on'](_0x7c9b('0x11'),this[_0x7c9b('0x12')][_0x7c9b('0x10')](this));ami['on'](_0x7c9b('0x13'),this[_0x7c9b('0x14')][_0x7c9b('0x10')](this));}VoiceDialReport[_0x7c9b('0x15')][_0x7c9b('0x16')]=function(_0x14694b){return _0x14694b!==null&&!_[_0x7c9b('0x17')](_0x14694b);};VoiceDialReport[_0x7c9b('0x15')]['emit']=function(_0x270446,_0x316bad,_0x417650){io['to'](_0x270446)['emit'](_0x316bad,_0x417650);};VoiceDialReport[_0x7c9b('0x15')][_0x7c9b('0xd')]=function(_0x5829b5){try{if(this['isNotNull'](_0x5829b5)){if(this[_0x7c9b('0x18')][_0x5829b5['uniqueid']]){_[_0x7c9b('0x19')](this['channels'][_0x5829b5['uniqueid']],{'starttime':moment()[_0x7c9b('0x1a')](_0x7c9b('0x1b')),'lastevent':_0x7c9b('0x1c'),'interface':_0x5829b5['channel'][_0x7c9b('0x1d')](0x0,_0x5829b5[_0x7c9b('0x1e')][_0x7c9b('0x1f')]('-')),'membername':_0x5829b5['channel']['substring'](_0x5829b5['channel'][_0x7c9b('0x1f')]('/')+0x1,_0x5829b5[_0x7c9b('0x1e')][_0x7c9b('0x1f')]('-'))},_[_0x7c9b('0x20')](_0x5829b5,[_0x7c9b('0x21'),_0x7c9b('0x22')]));this[_0x7c9b('0x23')](_0x7c9b('0x24'),_0x7c9b('0x25'),this[_0x7c9b('0x18')][_0x5829b5[_0x7c9b('0x26')]]);ami[_0x7c9b('0x23')](_0x7c9b('0x27'),this[_0x7c9b('0x18')][_0x5829b5[_0x7c9b('0x26')]]);}}}catch(_0x27b585){logger[_0x7c9b('0x28')](_0x7c9b('0x29'),util[_0x7c9b('0x2a')](_0x27b585,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7c9b('0x15')]['syncDialEnd']=function(_0x52af90){try{if(this['isNotNull'](_0x52af90)){if(this[_0x7c9b('0x18')][_0x52af90[_0x7c9b('0x26')]]){this[_0x7c9b('0x18')][_0x52af90[_0x7c9b('0x26')]][_0x7c9b('0x2b')]=_0x52af90[_0x7c9b('0x2b')];if(_0x52af90[_0x7c9b('0x2b')]===_0x7c9b('0x2c')){this[_0x7c9b('0x18')][_0x52af90[_0x7c9b('0x26')]][_0x7c9b('0x2d')]=_0x52af90[_0x7c9b('0x2d')];this[_0x7c9b('0x18')][_0x52af90[_0x7c9b('0x26')]][_0x7c9b('0x2e')]=_0x52af90['connectedlinename'];this[_0x7c9b('0x18')][_0x52af90['uniqueid']][_0x7c9b('0x2f')]=moment()[_0x7c9b('0x1a')](_0x7c9b('0x1b'));this['channels'][_0x52af90[_0x7c9b('0x26')]][_0x7c9b('0x30')]=_0x7c9b('0x31');ami[_0x7c9b('0x23')]('custom:dialconnect',this[_0x7c9b('0x18')][_0x52af90[_0x7c9b('0x26')]]);}this[_0x7c9b('0x23')]('voice:outbound',_0x7c9b('0x25'),this[_0x7c9b('0x18')][_0x52af90[_0x7c9b('0x26')]]);}}}catch(_0x17cf1f){logger['error']('[syncDialEnd][VoiceDialReport]',util[_0x7c9b('0x2a')](_0x17cf1f,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7c9b('0x15')][_0x7c9b('0x12')]=function(_0x4614c6){try{if(this['isNotNull'](_0x4614c6)){this[_0x7c9b('0x32')](_0x4614c6['uniqueid'],_['keys'](_0x4614c6['variable'])[0x0],_0x4614c6[_0x7c9b('0x33')]);if(this[_0x7c9b('0x16')](_0x4614c6[_0x7c9b('0x34')])&&this[_0x7c9b('0x16')](_0x4614c6[_0x7c9b('0x34')][_0x7c9b('0x35')])){if(_[_0x7c9b('0x17')](this[_0x7c9b('0x18')][_0x4614c6[_0x7c9b('0x26')]])){this[_0x7c9b('0x18')][_0x4614c6[_0x7c9b('0x26')]]={'routeId':_0x4614c6[_0x7c9b('0x33')],'variables':this['variables'][_0x4614c6['uniqueid']]};this[_0x7c9b('0x23')]('voice:outbound',_0x7c9b('0x25'),this[_0x7c9b('0x18')][_0x4614c6[_0x7c9b('0x26')]]);}}}}catch(_0x44da24){logger[_0x7c9b('0x28')](_0x7c9b('0x36'),util[_0x7c9b('0x2a')](_0x44da24,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x7c9b('0x15')]['addVariable']=function(_0x2d9b2d,_0x31ba1e,_0x437396){var _0x296fae=[_0x7c9b('0x37'),_0x7c9b('0x38'),'rtpaudioqosjitter','rtpaudioqosjitterbridged',_0x7c9b('0x39'),_0x7c9b('0x3a'),_0x7c9b('0x3b'),_0x7c9b('0x3c'),'sipcallid',_0x7c9b('0x3d'),'bridgepeer','bridgepvtcallid',_0x7c9b('0x3e'),_0x7c9b('0x3f'),'memberinterface',_0x7c9b('0x40'),_0x7c9b('0x41'),_0x7c9b('0x42'),_0x7c9b('0x43')];if(!_[_0x7c9b('0x44')](_0x31ba1e)&&!_[_0x7c9b('0x45')](_0x296fae,_0x31ba1e)){if(_['isUndefined'](this[_0x7c9b('0x46')][_0x2d9b2d])){this[_0x7c9b('0x46')][_0x2d9b2d]={};}this[_0x7c9b('0x46')][_0x2d9b2d][_0x31ba1e]=_0x437396;}};VoiceDialReport[_0x7c9b('0x15')][_0x7c9b('0x14')]=function(_0x199028){try{if(this[_0x7c9b('0x16')](_0x199028)){if(this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]]){this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]]['endtime']=moment()[_0x7c9b('0x1a')](_0x7c9b('0x1b'));this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]]['duration']=moment(this[_0x7c9b('0x18')][_0x199028['uniqueid']][_0x7c9b('0x47')])[_0x7c9b('0x48')](this[_0x7c9b('0x18')][_0x199028['uniqueid']]['starttime'],_0x7c9b('0x49'));this['channels'][_0x199028[_0x7c9b('0x26')]]['lastevent']='complete';this['outbound'][_0x7c9b('0x4a')]+=0x1;if(this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]][_0x7c9b('0x2f')]){this[_0x7c9b('0xb')]['answered']+=0x1;this[_0x7c9b('0x18')][_0x199028['uniqueid']][_0x7c9b('0x4b')]=moment(this[_0x7c9b('0x18')][_0x199028['uniqueid']][_0x7c9b('0x2f')])[_0x7c9b('0x48')](this[_0x7c9b('0x18')][_0x199028['uniqueid']][_0x7c9b('0x4c')],'seconds');this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]][_0x7c9b('0x4d')]=moment(this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]][_0x7c9b('0x47')])[_0x7c9b('0x48')](this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]][_0x7c9b('0x2f')],_0x7c9b('0x49'));this[_0x7c9b('0xb')][_0x7c9b('0x4e')]+=this[_0x7c9b('0x18')][_0x199028['uniqueid']][_0x7c9b('0x4b')]||0x0;this[_0x7c9b('0xb')][_0x7c9b('0x4f')]+=this[_0x7c9b('0x18')][_0x199028['uniqueid']][_0x7c9b('0x4d')];}this['outbound'][_0x7c9b('0x50')]+=this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]]['duration'];ami['emit'](_0x7c9b('0x51'),this[_0x7c9b('0x18')][_0x199028['uniqueid']]);ami[_0x7c9b('0x23')](_0x7c9b('0x52'),this[_0x7c9b('0x18')][_0x199028[_0x7c9b('0x26')]]);this[_0x7c9b('0x23')]('voice:outbound',_0x7c9b('0x53'),this[_0x7c9b('0xb')]);this['emit'](_0x7c9b('0x24'),_0x7c9b('0x54'),this['channels'][_0x199028[_0x7c9b('0x26')]]);delete this[_0x7c9b('0x18')][_0x199028['uniqueid']];}if(this['variables'][_0x199028[_0x7c9b('0x26')]]){delete this[_0x7c9b('0x46')][_0x199028[_0x7c9b('0x26')]];}}}catch(_0x4f26d0){logger[_0x7c9b('0x28')](_0x7c9b('0x55'),util[_0x7c9b('0x2a')](_0x4f26d0,{'showHidden':![],'depth':null}));}};module[_0x7c9b('0x56')]=VoiceDialReport;
\ No newline at end of file
+var _0x1352=['isNil','includes','duration','diff','starttime','lastevent','complete','total','answered','holdtime','seconds','sumHoldTime','sumBillable','billableseconds','sumDuration','custom:voiceDialReport','voice_outbound_channel:remove','[syncHangup][VoiceDialReport]','exports','moment','util','ioredis','../../../config/environment','../../../config/logger','../ami','defaults','localhost','socket.io-emitter','redis','outbound','variables','dialbegin','syncDialBegin','bind','dialend','syncDialEnd','syncVarSet','hangup','syncHangup','prototype','isUndefined','emit','isNotNull','uniqueid','channels','format','YYYY-MM-DD\x20HH:mm:ss','channel','substring','lastIndexOf','omit','voice:outbound','voice_outbound_channel:save','error','inspect','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','connect','custom:dialconnect','[syncDialEnd][VoiceDialReport]','keys','variable','value','outboundrouteid','[syncVarSet][VoiceDialReport]','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','membername','memberpenalty','memberrealtime'];(function(_0x5372bf,_0x458467){var _0x60bb3f=function(_0x48744e){while(--_0x48744e){_0x5372bf['push'](_0x5372bf['shift']());}};_0x60bb3f(++_0x458467);}(_0x1352,0xbd));var _0x2135=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0x1352[_0x297fd3];return _0x2af381;};'use strict';var _=require('lodash');var moment=require(_0x2135('0x0'));var util=require(_0x2135('0x1'));var Redis=require(_0x2135('0x2'));var config=require(_0x2135('0x3'));var logger=require(_0x2135('0x4'))('ami');var ami=require(_0x2135('0x5'));config['redis']=_[_0x2135('0x6')](config['redis'],{'host':_0x2135('0x7'),'port':0x18eb});var io=require(_0x2135('0x8'))(new Redis(config[_0x2135('0x9')]));function VoiceDialReport(_0x54942d){this['channels']=_0x54942d['outboundChannels'];this['outbound']=_0x54942d[_0x2135('0xa')];this[_0x2135('0xb')]={};ami['on'](_0x2135('0xc'),this[_0x2135('0xd')][_0x2135('0xe')](this));ami['on'](_0x2135('0xf'),this[_0x2135('0x10')][_0x2135('0xe')](this));ami['on']('varset',this[_0x2135('0x11')][_0x2135('0xe')](this));ami['on'](_0x2135('0x12'),this[_0x2135('0x13')][_0x2135('0xe')](this));}VoiceDialReport[_0x2135('0x14')]['isNotNull']=function(_0x57d67f){return _0x57d67f!==null&&!_[_0x2135('0x15')](_0x57d67f);};VoiceDialReport['prototype'][_0x2135('0x16')]=function(_0x1fe464,_0x3113dc,_0x4602b7){io['to'](_0x1fe464)['emit'](_0x3113dc,_0x4602b7);};VoiceDialReport[_0x2135('0x14')][_0x2135('0xd')]=function(_0xf46a5c){try{if(this[_0x2135('0x17')](_0xf46a5c)){if(this['channels'][_0xf46a5c[_0x2135('0x18')]]){_['merge'](this[_0x2135('0x19')][_0xf46a5c['uniqueid']],{'starttime':moment()[_0x2135('0x1a')](_0x2135('0x1b')),'lastevent':'called','interface':_0xf46a5c[_0x2135('0x1c')][_0x2135('0x1d')](0x0,_0xf46a5c['channel']['lastIndexOf']('-')),'membername':_0xf46a5c[_0x2135('0x1c')][_0x2135('0x1d')](_0xf46a5c[_0x2135('0x1c')][_0x2135('0x1e')]('/')+0x1,_0xf46a5c[_0x2135('0x1c')]['lastIndexOf']('-'))},_[_0x2135('0x1f')](_0xf46a5c,['event','privilege']));this['emit'](_0x2135('0x20'),_0x2135('0x21'),this[_0x2135('0x19')][_0xf46a5c[_0x2135('0x18')]]);ami['emit']('custom:dialbegin',this[_0x2135('0x19')][_0xf46a5c['uniqueid']]);}}}catch(_0x336f05){logger[_0x2135('0x22')]('[syncDialBegin][VoiceDialReport]',util[_0x2135('0x23')](_0x336f05,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype']['syncDialEnd']=function(_0x1ca818){try{if(this[_0x2135('0x17')](_0x1ca818)){if(this[_0x2135('0x19')][_0x1ca818[_0x2135('0x18')]]){this[_0x2135('0x19')][_0x1ca818[_0x2135('0x18')]]['dialstatus']=_0x1ca818[_0x2135('0x24')];if(_0x1ca818['dialstatus']===_0x2135('0x25')){this[_0x2135('0x19')][_0x1ca818[_0x2135('0x18')]][_0x2135('0x26')]=_0x1ca818[_0x2135('0x26')];this['channels'][_0x1ca818['uniqueid']][_0x2135('0x27')]=_0x1ca818['connectedlinename'];this[_0x2135('0x19')][_0x1ca818['uniqueid']][_0x2135('0x28')]=moment()[_0x2135('0x1a')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x2135('0x19')][_0x1ca818['uniqueid']]['lastevent']=_0x2135('0x29');ami[_0x2135('0x16')](_0x2135('0x2a'),this[_0x2135('0x19')][_0x1ca818[_0x2135('0x18')]]);}this[_0x2135('0x16')]('voice:outbound','voice_outbound_channel:save',this['channels'][_0x1ca818[_0x2135('0x18')]]);}}}catch(_0x469143){logger[_0x2135('0x22')](_0x2135('0x2b'),util[_0x2135('0x23')](_0x469143,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x2135('0x14')][_0x2135('0x11')]=function(_0x20499a){try{if(this[_0x2135('0x17')](_0x20499a)){this['addVariable'](_0x20499a[_0x2135('0x18')],_[_0x2135('0x2c')](_0x20499a[_0x2135('0x2d')])[0x0],_0x20499a[_0x2135('0x2e')]);if(this[_0x2135('0x17')](_0x20499a[_0x2135('0x2d')])&&this[_0x2135('0x17')](_0x20499a[_0x2135('0x2d')][_0x2135('0x2f')])){if(_[_0x2135('0x15')](this[_0x2135('0x19')][_0x20499a[_0x2135('0x18')]])){this[_0x2135('0x19')][_0x20499a[_0x2135('0x18')]]={'routeId':_0x20499a['value'],'variables':this['variables'][_0x20499a[_0x2135('0x18')]]};this[_0x2135('0x16')](_0x2135('0x20'),_0x2135('0x21'),this[_0x2135('0x19')][_0x20499a[_0x2135('0x18')]]);}}}}catch(_0x5b2818){logger['error'](_0x2135('0x30'),util[_0x2135('0x23')](_0x5b2818,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x2135('0x14')][_0x2135('0x31')]=function(_0xd0b816,_0x4a9310,_0x2ee8de){var _0x36a073=[_0x2135('0x32'),_0x2135('0x33'),_0x2135('0x34'),_0x2135('0x35'),_0x2135('0x36'),'rtpaudioqoslossbridged',_0x2135('0x37'),_0x2135('0x38'),_0x2135('0x39'),'sipuri',_0x2135('0x3a'),_0x2135('0x3b'),_0x2135('0x3c'),_0x2135('0x3d'),_0x2135('0x3e'),'memberlastcall',_0x2135('0x3f'),_0x2135('0x40'),_0x2135('0x41')];if(!_[_0x2135('0x42')](_0x4a9310)&&!_[_0x2135('0x43')](_0x36a073,_0x4a9310)){if(_[_0x2135('0x15')](this[_0x2135('0xb')][_0xd0b816])){this[_0x2135('0xb')][_0xd0b816]={};}this['variables'][_0xd0b816][_0x4a9310]=_0x2ee8de;}};VoiceDialReport[_0x2135('0x14')][_0x2135('0x13')]=function(_0x2bfd22){try{if(this['isNotNull'](_0x2bfd22)){if(this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]]){this['channels'][_0x2bfd22[_0x2135('0x18')]]['endtime']=moment()[_0x2135('0x1a')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x44')]=moment(this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]]['endtime'])[_0x2135('0x45')](this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x46')],'seconds');this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x47')]=_0x2135('0x48');this[_0x2135('0xa')][_0x2135('0x49')]+=0x1;if(this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x28')]){this[_0x2135('0xa')][_0x2135('0x4a')]+=0x1;this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x4b')]=moment(this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x28')])[_0x2135('0x45')](this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]]['starttime'],'seconds');this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]]['billableseconds']=moment(this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]]['endtime'])[_0x2135('0x45')](this[_0x2135('0x19')][_0x2bfd22['uniqueid']]['answertime'],_0x2135('0x4c'));this[_0x2135('0xa')][_0x2135('0x4d')]+=this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x4b')]||0x0;this[_0x2135('0xa')][_0x2135('0x4e')]+=this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]][_0x2135('0x4f')];}this[_0x2135('0xa')][_0x2135('0x50')]+=this[_0x2135('0x19')][_0x2bfd22['uniqueid']][_0x2135('0x44')];ami[_0x2135('0x16')](_0x2135('0x51'),this['channels'][_0x2bfd22['uniqueid']]);ami[_0x2135('0x16')]('custom:dialend',this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]]);this[_0x2135('0x16')]('voice:outbound','voice_outbound:save',this[_0x2135('0xa')]);this['emit'](_0x2135('0x20'),_0x2135('0x52'),this[_0x2135('0x19')][_0x2bfd22['uniqueid']]);delete this[_0x2135('0x19')][_0x2bfd22[_0x2135('0x18')]];}if(this['variables'][_0x2bfd22[_0x2135('0x18')]]){delete this[_0x2135('0xb')][_0x2bfd22[_0x2135('0x18')]];}}}catch(_0x50fa75){logger['error'](_0x2135('0x53'),util[_0x2135('0x23')](_0x50fa75,{'showHidden':![],'depth':null}));}};module[_0x2135('0x54')]=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca58=['queue','countBy','callers','toNumber','loggedin','available','loggedIn','custom:queuesummary','[syncQueueSummary][VoiceQueueReport]','syncNewExten','uniqueid','queuecallerjoinAt','position','count','pick','keys','[syncQueueCallerJoin][VoiceQueueReport]','last','queuecallercomplete','holdtime','originalposition','queuecallerabandonAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitreason','queuecallerleaveAt','connectedlinenum','connectedlinename','COMPLETEDBYAGENT','lastAssignedTo','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','startsWith','linkedid','seconds','FORWARDTRANSFER','transfertype','FORWARD','transferexten','transferuniqueid','COMPLETEDBY','[syncAgentComplete][VoiceQueueReport]','addVariable','variable','value','queuestatus','CONTINUE','queueposition','[syncVarSet][VoiceQueueReport]','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','membercalls','memberinterface','membername','memberpenalty','memberrealtime','diff','length','milliseconds','total','queuecallercompleteAt','custom:queuecallerunmanaged','lastevent','custom:voiceQueueReport','[syncHangup][VoiceQueueReport]','syncAttendedTransfer','transfereeuniqueid','secondtransfererexten','secondtransfereruniqueid','ATTENDED','transfertargetuniqueid','origtransfereruniqueid','ATTENDEDTRANSFER','[syncAttendedTransfer][VoiceQueueReport]','BLINDTRANSFER','BLIND','extension','BlindTransfer','context','[syncBlindTransfer][VoiceQueueReport]','mohstarttime','[syncMusicOnHoldStart][VoiceQueueReport]','mohtime','[syncMusicOnHoldStop][VoiceQueueReport]','exports','moment','bluebird','../../../config/environment','../../../config/logger','../ami','../model/queueReport','redis','localhost','socket.io-emitter','prototype','enqueue','tail','finally','sequence','queueReports','agents','queueChannels','voiceQueues','campaigns','variables','queuesummary','syncQueueSummary','bind','queuesummarycomplete','syncQueueSummaryComplete','queuecallerjoin','syncQueueCallerJoin','queuecallerabandon','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','syncAgentComplete','agentconnect','syncAgentConnect','varset','syncVarSet','hangup','syncHangup','fullybooted','syncFullyBooted','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','loopQueueShow','isUndefined','hasOwnProperty','isEmpty','originated','pTalking','waiting','queueStatusComplete','unlockRR','clearZombieChannels','channels','switch','isNil','channel','catch','message','No\x20such\x20channel','error','[voiceQueueReport][checkChannel]','[voiceQueueReport][checkQueueReport]','[voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','inspect','emit','emitVoiceQueueChannelSave','format','voice:queue:%s','name','voice_queue_channel:save','emitVoiceQueueSummary','type','inbound','strategy','answered','sumBillable','sumDuration','sumHoldTime','talking','unmanaged','abandoned','Trunk','callerid','Interval','stringify','md5','voice_queue:save','isNotNull','queues','loopQueueSummary','flagQueueSummary','then'];(function(_0x28d18d,_0x55896b){var _0x470640=function(_0x57e78b){while(--_0x57e78b){_0x28d18d['push'](_0x28d18d['shift']());}};_0x470640(++_0x55896b);}(_0xca58,0x1da));var _0x8ca5=function(_0x3c0d9d,_0x572b40){_0x3c0d9d=_0x3c0d9d-0x0;var _0x447ed1=_0xca58[_0x3c0d9d];return _0x447ed1;};'use strict';var _=require('lodash');var moment=require(_0x8ca5('0x0'));var BPromise=require(_0x8ca5('0x1'));var util=require('util');var md5=require('md5');var config=require(_0x8ca5('0x2'));var logger=require(_0x8ca5('0x3'))('ami');var ami=require(_0x8ca5('0x4'));var QueueReport=require(_0x8ca5('0x5'));config['redis']=_['defaults'](config[_0x8ca5('0x6')],{'host':_0x8ca5('0x7'),'port':0x18eb});var io=require(_0x8ca5('0x8'))(config['redis']);var Sequence=function(){};Sequence[_0x8ca5('0x9')][_0x8ca5('0xa')]=function(_0x131590){this['tail']=this[_0x8ca5('0xb')]?this[_0x8ca5('0xb')][_0x8ca5('0xc')](_0x131590):_0x131590();};function VoiceQueueReport(_0x176dca){this[_0x8ca5('0xd')]=new Sequence();this[_0x8ca5('0xe')]={};this[_0x8ca5('0xf')]=_0x176dca[_0x8ca5('0xf')];this['channels']=_0x176dca[_0x8ca5('0x10')];this[_0x8ca5('0x11')]=_0x176dca['voiceQueues'];this['flagQueueSummary']=!![];this[_0x8ca5('0x12')]=_0x176dca['campaigns'];this[_0x8ca5('0x13')]={};ami['on'](_0x8ca5('0x14'),this[_0x8ca5('0x15')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x17'),this[_0x8ca5('0x18')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x19'),this[_0x8ca5('0x1a')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x1b'),this[_0x8ca5('0x1c')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x1d'),this[_0x8ca5('0x1e')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x1f'),this[_0x8ca5('0x20')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x21'),this[_0x8ca5('0x22')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x23'),this[_0x8ca5('0x24')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x25'),this[_0x8ca5('0x26')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x27'),this[_0x8ca5('0x28')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x29'),this[_0x8ca5('0x2a')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x2b'),this[_0x8ca5('0x2c')][_0x8ca5('0x16')](this));ami['on'](_0x8ca5('0x2d'),this['syncAttendedTransfer'][_0x8ca5('0x16')](this));ami['on']('blindtransfer',this['syncBlindTransfer'][_0x8ca5('0x16')](this));this['loopQueueSummary']();this[_0x8ca5('0x2e')]();}function isNotNull(_0x3771b1){return _0x3771b1!==null&&!_[_0x8ca5('0x2f')](_0x3771b1);}function clearChannels(_0x22228c){if(!_['isEmpty'](_0x22228c)){for(var _0x10c805 in _0x22228c){if(_0x22228c[_0x8ca5('0x30')](_0x10c805)){delete _0x22228c[_0x10c805];}}}}function clearCampaigns(_0x1e79cc){if(!_[_0x8ca5('0x31')](_0x1e79cc)){for(var _0xf11936 in _0x1e79cc){if(_0x1e79cc[_0x8ca5('0x30')](_0xf11936)){_0x1e79cc[_0xf11936][_0x8ca5('0x32')]=0x0;}}}}function clearVoiceQueues(_0x14523d){if(!_['isEmpty'](_0x14523d)){for(var _0x34b2af in _0x14523d){if(_0x14523d['hasOwnProperty'](_0x34b2af)){_0x14523d[_0x34b2af][_0x8ca5('0x32')]=0x0;_0x14523d[_0x34b2af]['talking']=0x0;_0x14523d[_0x34b2af][_0x8ca5('0x33')]=0x0;_0x14523d[_0x34b2af][_0x8ca5('0x34')]=0x0;_0x14523d[_0x34b2af][_0x8ca5('0x35')]=!![];}}}}function clearAgentBooked(_0x3cf0ab){if(!_[_0x8ca5('0x31')](_0x3cf0ab)){for(var _0x3b8687 in _0x3cf0ab){if(_0x3cf0ab[_0x8ca5('0x30')](_0x3b8687)){_0x3cf0ab[_0x3b8687][_0x8ca5('0x36')]=!![];}}}}VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x37')]=function(){var _0x3f1cf3=this;for(var _0x1a419b in this[_0x8ca5('0x38')]){if(this[_0x8ca5('0x38')]['hasOwnProperty'](_0x1a419b)&&!this[_0x8ca5('0x38')][_0x1a419b][_0x8ca5('0x39')]){this[_0x8ca5('0xd')]['enqueue'](function(){if(!_[_0x8ca5('0x3a')](_0x3f1cf3[_0x8ca5('0x38')][_0x1a419b])){return ami['Action']({'action':'status','channel':_0x3f1cf3[_0x8ca5('0x38')][_0x1a419b][_0x8ca5('0x3b')]})[_0x8ca5('0x3c')](function(_0x44e3ad){if(_0x44e3ad[_0x8ca5('0x3d')]===_0x8ca5('0x3e')){setTimeout(function(){if(_0x3f1cf3['channels'][_0x1a419b]){delete _0x3f1cf3[_0x8ca5('0x38')][_0x1a419b];logger[_0x8ca5('0x3f')](_0x8ca5('0x40'),_0x1a419b);}if(_0x3f1cf3[_0x8ca5('0xe')][_0x1a419b]){delete _0x3f1cf3['queueReports'][_0x1a419b];logger[_0x8ca5('0x3f')](_0x8ca5('0x41'),_0x1a419b);}if(_0x3f1cf3[_0x8ca5('0x13')][_0x1a419b]){delete _0x3f1cf3[_0x8ca5('0x13')][_0x1a419b];logger[_0x8ca5('0x3f')](_0x8ca5('0x42'),_0x1a419b);}},0x1f40);}});}});}}};VoiceQueueReport[_0x8ca5('0x9')]['syncFullyBooted']=function(){logger['error'](_0x8ca5('0x43'));clearChannels(this['channels']);this['clearQueueReport'](this[_0x8ca5('0xe')]);clearAgentBooked(this[_0x8ca5('0xf')]);clearVoiceQueues(this['voiceQueues']);clearCampaigns(this[_0x8ca5('0x12')]);};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x44')]=function(_0x34b671){var _0x401cd7=this;if(!_[_0x8ca5('0x31')](_0x34b671)){for(var _0x42dbd1 in _0x34b671){if(_0x34b671[_0x8ca5('0x30')](_0x42dbd1)){_0x401cd7[_0x8ca5('0x45')](_0x34b671[_0x42dbd1]);delete _0x34b671[_0x42dbd1];}}}};function loggerCatch(_0x2bd114){return function(_0x53352e){logger[_0x8ca5('0x3f')](_0x2bd114,util[_0x8ca5('0x46')](_0x53352e,{'showHidden':![],'depth':null}));};}VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x47')]=function(_0xdcb384,_0xe9e4c1,_0x2117ce){io['to'](_0xdcb384)[_0x8ca5('0x47')](_0xe9e4c1,_0x2117ce);};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x48')]=function(_0x4480c7){this[_0x8ca5('0x47')](util[_0x8ca5('0x49')](_0x8ca5('0x4a'),_0x4480c7[_0x8ca5('0x4b')]),_0x8ca5('0x4c'),_0x4480c7);};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x45')]=function(_0xc4f031){this['emit'](util[_0x8ca5('0x49')]('voice:queue:%s',_0xc4f031[_0x8ca5('0x4b')]),'voice_queue_channel:remove',_0xc4f031);};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x4d')]=function(_0x33b46d){if(_0x33b46d[_0x8ca5('0x4e')]===_0x8ca5('0x4f')){var _0x227758={'id':_0x33b46d['id'],'name':_0x33b46d[_0x8ca5('0x4b')],'strategy':_0x33b46d[_0x8ca5('0x50')],'answered':_0x33b46d[_0x8ca5('0x51')],'available':_0x33b46d['available'],'loggedIn':_0x33b46d['loggedIn'],'pTalking':_0x33b46d[_0x8ca5('0x33')],'sumBillable':_0x33b46d[_0x8ca5('0x52')],'sumDuration':_0x33b46d[_0x8ca5('0x53')],'sumHoldTime':_0x33b46d[_0x8ca5('0x54')]||0x0,'talking':_0x33b46d[_0x8ca5('0x55')],'total':_0x33b46d['total'],'type':_0x33b46d[_0x8ca5('0x4e')],'unmanaged':_0x33b46d[_0x8ca5('0x56')],'abandoned':_0x33b46d[_0x8ca5('0x57')],'waiting':_0x33b46d[_0x8ca5('0x34')]};if(_0x33b46d[_0x8ca5('0x58')]){_0x227758[_0x8ca5('0x58')]={'id':_0x33b46d['Trunk']['id'],'name':_0x33b46d[_0x8ca5('0x58')][_0x8ca5('0x4b')],'active':_0x33b46d['Trunk']['active'],'callerid':_0x33b46d[_0x8ca5('0x58')][_0x8ca5('0x59')]};}if(_0x33b46d[_0x8ca5('0x5a')]){_0x227758['Interval']={'id':_0x33b46d[_0x8ca5('0x5a')]['id'],'name':_0x33b46d[_0x8ca5('0x5a')]['name']};}var _0x8aa774=md5(JSON[_0x8ca5('0x5b')](_0x227758));if(_0x33b46d[_0x8ca5('0x5c')]!==_0x8aa774){_0x33b46d['md5']=_0x8aa774;this['emit'](util[_0x8ca5('0x49')](_0x8ca5('0x4a'),_0x227758[_0x8ca5('0x4b')]),_0x8ca5('0x5d'),_0x227758);}}};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x5e')]=function(_0x19e607){return _0x19e607!==null&&!_[_0x8ca5('0x2f')](_0x19e607);};VoiceQueueReport[_0x8ca5('0x9')]['loopQueueShow']=function(){var _0x21863c=this;setInterval(function(){_0x21863c[_0x8ca5('0x37')]();ami['Action']({'action':_0x8ca5('0x5f')})[_0x8ca5('0x3c')](loggerCatch('[queues]'));},0x2710);};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x60')]=function(){var _0xb4cc07=this;setInterval(function(){if(_0xb4cc07[_0x8ca5('0x61')]){return ami['Action']({'action':_0x8ca5('0x14')})[_0x8ca5('0x62')](function(_0x3b0b88){_0xb4cc07[_0x8ca5('0x61')]=![];})[_0x8ca5('0x3c')](loggerCatch('[queuesummary]'));}},0x3e8);};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x15')]=function(_0x265d7d){try{if(this[_0x8ca5('0x5e')](_0x265d7d)&&this[_0x8ca5('0x5e')](_0x265d7d[_0x8ca5('0x63')])){if(this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]]){var _0xb3a882=_[_0x8ca5('0x64')](this[_0x8ca5('0x38')],'queue')[_0x265d7d['queue']]||0x0;var _0x23f05c=_0xb3a882-_0x265d7d[_0x8ca5('0x65')];if(this[_0x8ca5('0x11')][_0x265d7d['queue']][_0x8ca5('0x34')]!==_['toNumber'](_0x265d7d[_0x8ca5('0x65')])||this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]]['loggedIn']!==_[_0x8ca5('0x66')](_0x265d7d[_0x8ca5('0x67')])||this['voiceQueues'][_0x265d7d[_0x8ca5('0x63')]]['available']!==_[_0x8ca5('0x66')](_0x265d7d[_0x8ca5('0x68')])||this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]][_0x8ca5('0x55')]!==_0x23f05c){this[_0x8ca5('0x11')][_0x265d7d['queue']][_0x8ca5('0x34')]=_[_0x8ca5('0x66')](_0x265d7d['callers']);this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]][_0x8ca5('0x69')]=_[_0x8ca5('0x66')](_0x265d7d[_0x8ca5('0x67')]);this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]]['available']=_[_0x8ca5('0x66')](_0x265d7d['available']);this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]]['talking']=_0x23f05c>0x0?_0x23f05c:0x0;this[_0x8ca5('0x11')][_0x265d7d['queue']][_0x8ca5('0x55')]=this[_0x8ca5('0x11')][_0x265d7d['queue']][_0x8ca5('0x55')]>_[_0x8ca5('0x66')](_0x265d7d[_0x8ca5('0x67')])?_[_0x8ca5('0x66')](_0x265d7d[_0x8ca5('0x67')]):this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]][_0x8ca5('0x55')];this[_0x8ca5('0x4d')](this['voiceQueues'][_0x265d7d['queue']]);}ami['emit'](_0x8ca5('0x6a'),this[_0x8ca5('0x11')][_0x265d7d[_0x8ca5('0x63')]]);}}}catch(_0x46c7cb){logger[_0x8ca5('0x3f')](_0x8ca5('0x6b'),util[_0x8ca5('0x46')](_0x46c7cb,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8ca5('0x9')]['syncQueueSummaryComplete']=function(_0x408a37){this[_0x8ca5('0x61')]=!![];};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x6c')]=function(_0x536368){};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x1a')]=function(_0x2b0312){try{if(this['isNotNull'](_0x2b0312)){if(_[_0x8ca5('0x2f')](this[_0x8ca5('0xe')][_0x2b0312[_0x8ca5('0x6d')]])){this[_0x8ca5('0xe')][_0x2b0312[_0x8ca5('0x6d')]]=[];this[_0x8ca5('0x38')][_0x2b0312['uniqueid']]={};}var _0x15905b=new QueueReport();_0x15905b['name']=_0x2b0312[_0x8ca5('0x63')];_0x15905b[_0x8ca5('0x4e')]=this[_0x8ca5('0x11')][_0x15905b[_0x8ca5('0x4b')]]&&this['voiceQueues'][_0x15905b['name']][_0x8ca5('0x4e')]?this[_0x8ca5('0x11')][_0x15905b[_0x8ca5('0x4b')]][_0x8ca5('0x4e')]||'inbound':_0x8ca5('0x4f');_0x15905b[_0x8ca5('0x63')]=_0x2b0312[_0x8ca5('0x63')];_0x15905b[_0x8ca5('0x6e')]=moment()[_0x8ca5('0x49')]('YYYY-MM-DD\x20HH:mm:ss');_0x15905b[_0x8ca5('0x6f')]=_0x2b0312['position'];_0x15905b[_0x8ca5('0x70')]=_0x2b0312[_0x8ca5('0x70')];_['merge'](_0x15905b,_[_0x8ca5('0x71')](_0x2b0312,_[_0x8ca5('0x72')](_0x15905b)));this[_0x8ca5('0xe')][_0x2b0312[_0x8ca5('0x6d')]]['push'](_0x15905b);this[_0x8ca5('0x38')][_0x2b0312[_0x8ca5('0x6d')]]=_0x15905b;this['emitVoiceQueueChannelSave'](_0x15905b);}}catch(_0x596d59){logger[_0x8ca5('0x3f')](_0x8ca5('0x73'),util['inspect'](_0x596d59,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x1c')]=function(_0x57e0f0){try{if(this[_0x8ca5('0x5e')](_0x57e0f0)){if(this['queueReports'][_0x57e0f0[_0x8ca5('0x6d')]]){var _0x3447b0=_[_0x8ca5('0x74')](this['queueReports'][_0x57e0f0[_0x8ca5('0x6d')]]);_0x3447b0[_0x8ca5('0x75')]=![];_0x3447b0['queuecallercompleteAt']=null;_0x3447b0['holdtime']=_0x57e0f0[_0x8ca5('0x76')];_0x3447b0['originalposition']=_0x57e0f0[_0x8ca5('0x77')];_0x3447b0[_0x8ca5('0x1b')]=!![];_0x3447b0[_0x8ca5('0x78')]=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));_0x3447b0[_0x8ca5('0x7a')]='ABANDONED';_0x3447b0['lastAssignedTo']=null;this['channels'][_0x57e0f0[_0x8ca5('0x6d')]]=_0x3447b0;this[_0x8ca5('0x45')](_0x3447b0);}}}catch(_0x511eb6){logger[_0x8ca5('0x3f')]('[syncQueueCallerAbandon][VoiceQueueReport]',util[_0x8ca5('0x46')](_0x511eb6,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x8ca5('0x1e')]=function(_0x380c59){try{if(this[_0x8ca5('0x5e')](_0x380c59)){if(this[_0x8ca5('0xe')][_0x380c59['uniqueid']]){var _0x1fa380=_['last'](this['queueReports'][_0x380c59['uniqueid']]);_0x1fa380[_0x8ca5('0x7b')]=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));_0x1fa380[_0x8ca5('0x7c')]=_0x380c59['connectedlinenum'];_0x1fa380[_0x8ca5('0x7d')]=_0x380c59[_0x8ca5('0x7d')];this[_0x8ca5('0x38')][_0x380c59[_0x8ca5('0x6d')]]=_0x1fa380;this[_0x8ca5('0x48')](_0x1fa380);}}}catch(_0xe8098a){logger[_0x8ca5('0x3f')]('[syncQueueCallerLeave][VoiceQueueReport]',util[_0x8ca5('0x46')](_0xe8098a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x22')]=function(_0x337e34){try{if(this['isNotNull'](_0x337e34)){if(this[_0x8ca5('0xe')][_0x337e34[_0x8ca5('0x6d')]]){var _0x5d9b93=_[_0x8ca5('0x74')](this[_0x8ca5('0xe')][_0x337e34['uniqueid']]);_0x5d9b93[_0x8ca5('0x75')]=!![];_0x5d9b93['queuecallerexitreason']=_0x8ca5('0x7e');}}}catch(_0x41043f){logger['error']('[syncAgentConnect][VoiceQueueReport]',util[_0x8ca5('0x46')](_0x41043f,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncAgentComplete']=function(_0x4458fb){try{if(this[_0x8ca5('0x5e')](_0x4458fb)){if(this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x6d')]]){var _0x238acd=_['last'](this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x6d')]]);_0x238acd[_0x8ca5('0x1b')]=![];_0x238acd[_0x8ca5('0x78')]=null;_0x238acd['assigned']=!![];_0x238acd[_0x8ca5('0x7f')]=_0x4458fb['membername'];_0x238acd[_0x8ca5('0x76')]=_0x4458fb[_0x8ca5('0x76')];_0x238acd[_0x8ca5('0x75')]=!![];_0x238acd[_0x8ca5('0x80')]=![];_0x238acd[_0x8ca5('0x81')]=null;if(!_0x238acd[_0x8ca5('0x82')]){if(_0x4458fb[_0x8ca5('0x83')]==_0x8ca5('0x82')){_0x238acd[_0x8ca5('0x7a')]=_0x8ca5('0x84');}else{if(_[_0x8ca5('0x85')](_0x4458fb[_0x8ca5('0x3b')]['toLowerCase'](),'local/')){if(this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x86')]]){var _0x587b60=_[_0x8ca5('0x74')](this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x86')]]);_0x587b60[_0x8ca5('0x75')]=![];_0x587b60['queuecallerexit']=!![];_0x587b60[_0x8ca5('0x81')]=moment(_0x238acd[_0x8ca5('0x6e')])['add'](_0x4458fb[_0x8ca5('0x76')],_0x8ca5('0x87'))[_0x8ca5('0x49')](_0x8ca5('0x79'));_0x587b60[_0x8ca5('0x7a')]=_0x8ca5('0x88');_0x587b60[_0x8ca5('0x82')]=!![];_0x587b60[_0x8ca5('0x89')]=_0x8ca5('0x8a');_0x587b60[_0x8ca5('0x8b')]=_0x4458fb['destexten'];_0x587b60[_0x8ca5('0x8c')]=_0x4458fb[_0x8ca5('0x6d')];var _0x34686c=this['queueReports'][_0x4458fb[_0x8ca5('0x86')]];this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x86')]]=this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x6d')]];this[_0x8ca5('0xe')][_0x4458fb[_0x8ca5('0x6d')]]=_0x34686c;}}else{_0x238acd[_0x8ca5('0x7a')]=_0x8ca5('0x8d')+_0x4458fb[_0x8ca5('0x83')]['toUpperCase']();}}}this['channels'][_0x4458fb[_0x8ca5('0x6d')]]=_0x238acd;this[_0x8ca5('0x45')](_0x238acd);}}}catch(_0x414d1e){logger['error'](_0x8ca5('0x8e'),util[_0x8ca5('0x46')](_0x414d1e,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x8ca5('0x24')]=function(_0x5f4e84){try{if(this[_0x8ca5('0x5e')](_0x5f4e84)){this[_0x8ca5('0x8f')](_0x5f4e84[_0x8ca5('0x6d')],_['keys'](_0x5f4e84[_0x8ca5('0x90')])[0x0],_0x5f4e84[_0x8ca5('0x91')]);if(this['queueReports'][_0x5f4e84[_0x8ca5('0x6d')]]){var _0x480ce2=_['last'](this[_0x8ca5('0xe')][_0x5f4e84['uniqueid']]);if(_0x480ce2){if(this[_0x8ca5('0x5e')](_0x5f4e84[_0x8ca5('0x90')])&&this[_0x8ca5('0x5e')](_0x5f4e84['variable'][_0x8ca5('0x92')])){switch(_0x5f4e84[_0x8ca5('0x91')]){case _0x8ca5('0x93'):_0x480ce2[_0x8ca5('0x80')]=![];_0x480ce2[_0x8ca5('0x81')]=null;break;default:_0x480ce2[_0x8ca5('0x80')]=!![];_0x480ce2[_0x8ca5('0x81')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x480ce2['queuecallerleaveAt']=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));}_0x480ce2['queuecallerabandon']=![];_0x480ce2[_0x8ca5('0x78')]=null;_0x480ce2[_0x8ca5('0x7a')]=_0x5f4e84[_0x8ca5('0x91')];this[_0x8ca5('0x38')][_0x5f4e84[_0x8ca5('0x6d')]]=_0x480ce2;this['emitVoiceQueueChannelRemove'](_0x480ce2);}else if(this[_0x8ca5('0x5e')](_0x5f4e84['variable'])&&this[_0x8ca5('0x5e')](_0x5f4e84[_0x8ca5('0x90')][_0x8ca5('0x94')])){if(!_0x480ce2[_0x8ca5('0x1b')]){_0x480ce2[_0x8ca5('0x80')]=!![];_0x480ce2['queuecallerexitAt']=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));_0x480ce2[_0x8ca5('0x7a')]='EXITWITHKEY';_0x480ce2[_0x8ca5('0x7b')]=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));this[_0x8ca5('0x38')][_0x5f4e84['uniqueid']]=_0x480ce2;}}_0x480ce2[_0x8ca5('0x13')]=this[_0x8ca5('0x13')][_0x5f4e84[_0x8ca5('0x6d')]];}}}}catch(_0x5b4eb7){logger[_0x8ca5('0x3f')](_0x8ca5('0x95'),util['inspect'](_0x5b4eb7,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['addVariable']=function(_0x259ab2,_0x5406c9,_0x489bbd){var _0x1aac0f=['rtpaudioqos',_0x8ca5('0x96'),_0x8ca5('0x97'),'rtpaudioqosjitterbridged','rtpaudioqosloss',_0x8ca5('0x98'),_0x8ca5('0x99'),_0x8ca5('0x9a'),_0x8ca5('0x9b'),_0x8ca5('0x9c'),'bridgepeer','bridgepvtcallid',_0x8ca5('0x9d'),'memberdynamic',_0x8ca5('0x9e'),'memberlastcall',_0x8ca5('0x9f'),_0x8ca5('0xa0'),_0x8ca5('0xa1')];if(!_['isNil'](_0x5406c9)&&!_['includes'](_0x1aac0f,_0x5406c9)){if(_[_0x8ca5('0x2f')](this[_0x8ca5('0x13')][_0x259ab2])){this[_0x8ca5('0x13')][_0x259ab2]={};}this[_0x8ca5('0x13')][_0x259ab2][_0x5406c9]=_0x489bbd;}};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0x26')]=function(_0x41f82f){try{if(this[_0x8ca5('0x5e')](_0x41f82f)){if(this[_0x8ca5('0xe')][_0x41f82f['uniqueid']]){for(var _0x59669d=0x0,_0x15ae57={};_0x59669d<this['queueReports'][_0x41f82f[_0x8ca5('0x6d')]]['length'];_0x59669d+=0x1){_0x15ae57=this[_0x8ca5('0xe')][_0x41f82f[_0x8ca5('0x6d')]][_0x59669d];if(this[_0x8ca5('0x11')][_0x15ae57[_0x8ca5('0x63')]]){if(_0x15ae57[_0x8ca5('0x80')]){this['voiceQueues'][_0x15ae57[_0x8ca5('0x63')]]['unmanaged']+=0x1;}if(_0x15ae57['queuecallerabandon']){this[_0x8ca5('0x11')][_0x15ae57['queue']][_0x8ca5('0x57')]+=0x1;}this[_0x8ca5('0x11')][_0x15ae57['queue']][_0x8ca5('0x54')]+=moment(_0x15ae57['queuecallerleaveAt'])[_0x8ca5('0xa2')](_0x15ae57['queuecallerjoinAt'],'seconds')||0x0;if(_0x59669d===this['queueReports'][_0x41f82f[_0x8ca5('0x6d')]][_0x8ca5('0xa3')]-0x1){this[_0x8ca5('0x11')][_0x15ae57[_0x8ca5('0x63')]][_0x8ca5('0x53')]+=moment()[_0x8ca5('0xa4')](0x0)[_0x8ca5('0xa2')](_0x15ae57['queuecallerjoinAt'],_0x8ca5('0x87'));this[_0x8ca5('0x11')][_0x15ae57[_0x8ca5('0x63')]][_0x8ca5('0xa5')]+=0x1;if(_0x15ae57[_0x8ca5('0x75')]){this[_0x8ca5('0x11')][_0x15ae57['queue']]['answered']+=0x1;this['voiceQueues'][_0x15ae57[_0x8ca5('0x63')]]['sumBillable']+=moment()['milliseconds'](0x0)['diff'](_0x15ae57[_0x8ca5('0x7b')],'seconds');_0x15ae57[_0x8ca5('0xa6')]=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));_0x15ae57[_0x8ca5('0x80')]=![];_0x15ae57[_0x8ca5('0x81')]=null;}if(_0x15ae57[_0x8ca5('0x80')]){_0x15ae57['lastevent']='unmanaged';ami['emit'](_0x8ca5('0xa7'),_0x15ae57);}if(_0x15ae57[_0x8ca5('0x1b')]){_0x15ae57[_0x8ca5('0xa8')]=_0x8ca5('0x57');ami[_0x8ca5('0x47')]('custom:queuecallerabandon',_0x15ae57);}}else{this[_0x8ca5('0x11')][_0x15ae57[_0x8ca5('0x63')]][_0x8ca5('0x53')]+=this[_0x8ca5('0x11')][_0x15ae57['queue']]['sumHoldTime'];}this['channels'][_0x41f82f[_0x8ca5('0x6d')]]=_0x15ae57;this[_0x8ca5('0x45')](_0x15ae57);this[_0x8ca5('0x4d')](this[_0x8ca5('0x11')][_0x15ae57[_0x8ca5('0x63')]]);}}ami[_0x8ca5('0x47')](_0x8ca5('0xa9'),this['queueReports'][_0x41f82f[_0x8ca5('0x6d')]]);delete this[_0x8ca5('0xe')][_0x41f82f[_0x8ca5('0x6d')]];delete this[_0x8ca5('0x38')][_0x41f82f['uniqueid']];}if(this[_0x8ca5('0x13')][_0x41f82f[_0x8ca5('0x6d')]]){delete this[_0x8ca5('0x13')][_0x41f82f[_0x8ca5('0x6d')]];}}}catch(_0x341a0c){logger[_0x8ca5('0x3f')](_0x8ca5('0xaa'),util[_0x8ca5('0x46')](_0x341a0c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8ca5('0x9')][_0x8ca5('0xab')]=function(_0x1972dc){try{if(this[_0x8ca5('0x5e')](_0x1972dc)){var _0x2ffd84;if(this['queueReports'][_0x1972dc['transfereeuniqueid']]){_0x2ffd84=_[_0x8ca5('0x74')](this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xac')]]);_0x2ffd84['transferexten']=_0x1972dc[_0x8ca5('0xad')];_0x2ffd84['transferuniqueid']=_0x1972dc[_0x8ca5('0xae')];_0x2ffd84[_0x8ca5('0x7a')]='ATTENDEDTRANSFER';_0x2ffd84[_0x8ca5('0x82')]=!![];_0x2ffd84[_0x8ca5('0x89')]=_0x8ca5('0xaf');if(this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xae')]]){var _0x4ced94=this['queueReports'][_0x1972dc[_0x8ca5('0xae')]];this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xae')]]=this[_0x8ca5('0xe')][_0x1972dc['transfereeuniqueid']];this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xac')]]=_0x4ced94;var _0x49da8b=_[_0x8ca5('0x74')](this['queueReports'][_0x1972dc[_0x8ca5('0xac')]]);_0x49da8b[_0x8ca5('0x39')]=!![];}}else if(this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xb0')]]){_0x2ffd84=_['last'](this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xb0')]]);_0x2ffd84[_0x8ca5('0x8b')]=_0x1972dc['origtransfererexten'];_0x2ffd84[_0x8ca5('0x8c')]=_0x1972dc[_0x8ca5('0xb1')];_0x2ffd84[_0x8ca5('0x7a')]=_0x8ca5('0xb2');_0x2ffd84[_0x8ca5('0x82')]=!![];_0x2ffd84[_0x8ca5('0x89')]=_0x8ca5('0xaf');if(this['queueReports'][_0x1972dc[_0x8ca5('0xb1')]]){var _0x4ced94=this[_0x8ca5('0xe')][_0x1972dc['origtransfereruniqueid']];this['queueReports'][_0x1972dc[_0x8ca5('0xb1')]]=this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xb0')]];this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xb0')]]=_0x4ced94;var _0x49da8b=_[_0x8ca5('0x74')](this[_0x8ca5('0xe')][_0x1972dc[_0x8ca5('0xb0')]]);_0x49da8b[_0x8ca5('0x39')]=!![];}}}}catch(_0x27933f){logger[_0x8ca5('0x3f')](_0x8ca5('0xb3'),util['inspect'](_0x27933f,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8ca5('0x9')]['syncBlindTransfer']=function(_0x10117c){try{if(this[_0x8ca5('0x5e')](_0x10117c)){if(this[_0x8ca5('0xe')][_0x10117c['transfereeuniqueid']]){var _0x166988=_[_0x8ca5('0x74')](this[_0x8ca5('0xe')][_0x10117c[_0x8ca5('0xac')]]);_0x166988[_0x8ca5('0x7a')]=_0x8ca5('0xb4');_0x166988[_0x8ca5('0x82')]=!![];_0x166988[_0x8ca5('0x89')]=_0x8ca5('0xb5');_0x166988[_0x8ca5('0x8b')]=_0x10117c[_0x8ca5('0xb6')];_0x166988[_0x8ca5('0x8c')]=_0x10117c['transfereeuniqueid'];this['syncHangup']({'event':_0x8ca5('0xb7'),'uniqueid':_0x10117c['transfereeuniqueid'],'context':_0x10117c[_0x8ca5('0xb8')],'channel':_0x10117c['transfererchannel']});}}}catch(_0xa614d8){logger[_0x8ca5('0x3f')](_0x8ca5('0xb9'),util['inspect'](_0xa614d8,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x8ca5('0x2a')]=function(_0x1e24ca){try{if(this[_0x8ca5('0x5e')](_0x1e24ca)){if(this[_0x8ca5('0xe')][_0x1e24ca['uniqueid']]){var _0x56cb10=_[_0x8ca5('0x74')](this['queueReports'][_0x1e24ca[_0x8ca5('0x6d')]]);if(!_[_0x8ca5('0x3a')](_0x56cb10['queuecallerleaveAt'])){_0x56cb10[_0x8ca5('0xba')]=moment()[_0x8ca5('0x49')](_0x8ca5('0x79'));}}}}catch(_0x29fc67){logger[_0x8ca5('0x3f')](_0x8ca5('0xbb'),util['inspect'](_0x29fc67,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncMusicOnHoldStop']=function(_0x1c9160){try{if(this[_0x8ca5('0x5e')](_0x1c9160)){if(this['queueReports'][_0x1c9160[_0x8ca5('0x6d')]]){var _0x2f8642=_['last'](this[_0x8ca5('0xe')][_0x1c9160[_0x8ca5('0x6d')]]);if(!_[_0x8ca5('0x3a')](_0x2f8642[_0x8ca5('0xba')])){_0x2f8642[_0x8ca5('0xbc')]+=moment()[_0x8ca5('0xa4')](0x0)['diff'](_0x2f8642[_0x8ca5('0xba')],_0x8ca5('0x87'));delete _0x2f8642[_0x8ca5('0xba')];}}}}catch(_0x57a823){logger[_0x8ca5('0x3f')](_0x8ca5('0xbd'),util[_0x8ca5('0x46')](_0x57a823,{'showHidden':![],'depth':null}));}};module[_0x8ca5('0xbe')]=VoiceQueueReport;
\ No newline at end of file
+var _0x850e=['add','seconds','FORWARDTRANSFER','transfertype','FORWARD','transferexten','destexten','transferuniqueid','COMPLETEDBY','toUpperCase','[syncAgentComplete][VoiceQueueReport]','syncVarSet','addVariable','keys','variable','value','queuestatus','CONTINUE','queueposition','[syncVarSet][VoiceQueueReport]','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','syncHangup','length','diff','milliseconds','lastevent','custom:queuecallerunmanaged','custom:voiceQueueReport','[syncHangup][VoiceQueueReport]','syncAttendedTransfer','transfereeuniqueid','secondtransfererexten','secondtransfereruniqueid','ATTENDEDTRANSFER','ATTENDED','transfertargetuniqueid','origtransfereruniqueid','[syncAttendedTransfer][VoiceQueueReport]','BLIND','extension','BlindTransfer','context','transfererchannel','[syncBlindTransfer][VoiceQueueReport]','mohstarttime','mohtime','[syncMusicOnHoldStop][VoiceQueueReport]','bluebird','util','md5','../../../config/environment','../../../config/logger','ami','../ami','../model/queueReport','redis','defaults','socket.io-emitter','enqueue','tail','finally','agents','channels','queueChannels','voiceQueues','flagQueueSummary','campaigns','variables','syncQueueSummary','queuesummarycomplete','syncQueueSummaryComplete','bind','queuecallerjoin','syncQueueCallerJoin','queuecallerleave','syncQueueCallerLeave','agentcomplete','syncAgentComplete','agentconnect','syncAgentConnect','varset','hangup','fullybooted','syncFullyBooted','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','blindtransfer','loopQueueShow','isUndefined','isEmpty','hasOwnProperty','originated','pTalking','waiting','queueStatusComplete','unlockRR','prototype','clearZombieChannels','switch','sequence','isNil','status','channel','catch','No\x20such\x20channel','[voiceQueueReport][checkChannel]','error','[voiceQueueReport][checkQueueReport]','[voiceQueueReport][checkVariables]','clearQueueReport','emitVoiceQueueChannelRemove','inspect','emitVoiceQueueChannelSave','emit','name','voice_queue_channel:save','format','voice:queue:%s','voice_queue_channel:remove','emitVoiceQueueSummary','type','strategy','available','loggedIn','sumBillable','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','Trunk','active','callerid','Interval','stringify','isNotNull','Action','queues','[queues]','loopQueueSummary','then','[queuesummary]','queue','countBy','callers','toNumber','loggedin','custom:queuesummary','[syncQueueSummary][VoiceQueueReport]','syncNewExten','queueReports','uniqueid','inbound','YYYY-MM-DD\x20HH:mm:ss','position','merge','pick','push','[syncQueueCallerJoin][VoiceQueueReport]','queuecallercompleteAt','holdtime','originalposition','queuecallerabandon','queuecallerabandonAt','queuecallerexitreason','ABANDONED','lastAssignedTo','[syncQueueCallerAbandon][VoiceQueueReport]','queuecallerleaveAt','connectedlinenum','connectedlinename','[syncQueueCallerLeave][VoiceQueueReport]','COMPLETEDBYAGENT','[syncAgentConnect][VoiceQueueReport]','assigned','membername','queuecallercomplete','queuecallerexit','queuecallerexitAt','transfer','COMPLETED','startsWith','toLowerCase','local/','linkedid','last','queuecallerjoinAt'];(function(_0x5945d3,_0x42c4a1){var _0xe3819a=function(_0x41c155){while(--_0x41c155){_0x5945d3['push'](_0x5945d3['shift']());}};_0xe3819a(++_0x42c4a1);}(_0x850e,0x1d7));var _0xe850=function(_0x16c4b2,_0x2f0449){_0x16c4b2=_0x16c4b2-0x0;var _0x4bbf84=_0x850e[_0x16c4b2];return _0x4bbf84;};'use strict';var _=require('lodash');var moment=require('moment');var BPromise=require(_0xe850('0x0'));var util=require(_0xe850('0x1'));var md5=require(_0xe850('0x2'));var Redis=require('ioredis');var config=require(_0xe850('0x3'));var logger=require(_0xe850('0x4'))(_0xe850('0x5'));var ami=require(_0xe850('0x6'));var QueueReport=require(_0xe850('0x7'));config[_0xe850('0x8')]=_[_0xe850('0x9')](config[_0xe850('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0xe850('0xa'))(new Redis(config['redis']));var Sequence=function(){};Sequence['prototype'][_0xe850('0xb')]=function(_0x87c851){this[_0xe850('0xc')]=this[_0xe850('0xc')]?this[_0xe850('0xc')][_0xe850('0xd')](_0x87c851):_0x87c851();};function VoiceQueueReport(_0x5be512){this['sequence']=new Sequence();this['queueReports']={};this[_0xe850('0xe')]=_0x5be512[_0xe850('0xe')];this[_0xe850('0xf')]=_0x5be512[_0xe850('0x10')];this[_0xe850('0x11')]=_0x5be512[_0xe850('0x11')];this[_0xe850('0x12')]=!![];this[_0xe850('0x13')]=_0x5be512[_0xe850('0x13')];this[_0xe850('0x14')]={};ami['on']('queuesummary',this[_0xe850('0x15')]['bind'](this));ami['on'](_0xe850('0x16'),this[_0xe850('0x17')][_0xe850('0x18')](this));ami['on'](_0xe850('0x19'),this[_0xe850('0x1a')][_0xe850('0x18')](this));ami['on']('queuecallerabandon',this['syncQueueCallerAbandon'][_0xe850('0x18')](this));ami['on'](_0xe850('0x1b'),this[_0xe850('0x1c')][_0xe850('0x18')](this));ami['on'](_0xe850('0x1d'),this[_0xe850('0x1e')][_0xe850('0x18')](this));ami['on'](_0xe850('0x1f'),this[_0xe850('0x20')][_0xe850('0x18')](this));ami['on'](_0xe850('0x21'),this['syncVarSet'][_0xe850('0x18')](this));ami['on'](_0xe850('0x22'),this['syncHangup'][_0xe850('0x18')](this));ami['on'](_0xe850('0x23'),this[_0xe850('0x24')][_0xe850('0x18')](this));ami['on'](_0xe850('0x25'),this[_0xe850('0x26')][_0xe850('0x18')](this));ami['on'](_0xe850('0x27'),this[_0xe850('0x28')]['bind'](this));ami['on'](_0xe850('0x29'),this['syncAttendedTransfer'][_0xe850('0x18')](this));ami['on'](_0xe850('0x2a'),this['syncBlindTransfer']['bind'](this));this['loopQueueSummary']();this[_0xe850('0x2b')]();}function isNotNull(_0x519382){return _0x519382!==null&&!_[_0xe850('0x2c')](_0x519382);}function clearChannels(_0x3aa40c){if(!_[_0xe850('0x2d')](_0x3aa40c)){for(var _0x3cfab8 in _0x3aa40c){if(_0x3aa40c[_0xe850('0x2e')](_0x3cfab8)){delete _0x3aa40c[_0x3cfab8];}}}}function clearCampaigns(_0x57a476){if(!_[_0xe850('0x2d')](_0x57a476)){for(var _0x240376 in _0x57a476){if(_0x57a476[_0xe850('0x2e')](_0x240376)){_0x57a476[_0x240376][_0xe850('0x2f')]=0x0;}}}}function clearVoiceQueues(_0x331b3e){if(!_[_0xe850('0x2d')](_0x331b3e)){for(var _0x1e6b36 in _0x331b3e){if(_0x331b3e[_0xe850('0x2e')](_0x1e6b36)){_0x331b3e[_0x1e6b36][_0xe850('0x2f')]=0x0;_0x331b3e[_0x1e6b36]['talking']=0x0;_0x331b3e[_0x1e6b36][_0xe850('0x30')]=0x0;_0x331b3e[_0x1e6b36][_0xe850('0x31')]=0x0;_0x331b3e[_0x1e6b36][_0xe850('0x32')]=!![];}}}}function clearAgentBooked(_0x525ee8){if(!_[_0xe850('0x2d')](_0x525ee8)){for(var _0xf5c545 in _0x525ee8){if(_0x525ee8['hasOwnProperty'](_0xf5c545)){_0x525ee8[_0xf5c545][_0xe850('0x33')]=!![];}}}}VoiceQueueReport[_0xe850('0x34')][_0xe850('0x35')]=function(){var _0x22466a=this;for(var _0x1d5845 in this[_0xe850('0xf')]){if(this[_0xe850('0xf')][_0xe850('0x2e')](_0x1d5845)&&!this[_0xe850('0xf')][_0x1d5845][_0xe850('0x36')]){this[_0xe850('0x37')][_0xe850('0xb')](function(){if(!_[_0xe850('0x38')](_0x22466a['channels'][_0x1d5845])){return ami['Action']({'action':_0xe850('0x39'),'channel':_0x22466a[_0xe850('0xf')][_0x1d5845][_0xe850('0x3a')]})[_0xe850('0x3b')](function(_0x2fbfe6){if(_0x2fbfe6['message']===_0xe850('0x3c')){setTimeout(function(){if(_0x22466a['channels'][_0x1d5845]){delete _0x22466a[_0xe850('0xf')][_0x1d5845];logger['error'](_0xe850('0x3d'),_0x1d5845);}if(_0x22466a['queueReports'][_0x1d5845]){delete _0x22466a['queueReports'][_0x1d5845];logger[_0xe850('0x3e')](_0xe850('0x3f'),_0x1d5845);}if(_0x22466a[_0xe850('0x14')][_0x1d5845]){delete _0x22466a[_0xe850('0x14')][_0x1d5845];logger['error'](_0xe850('0x40'),_0x1d5845);}},0x1f40);}});}});}}};VoiceQueueReport[_0xe850('0x34')]['syncFullyBooted']=function(){logger[_0xe850('0x3e')]('[FullyBooted]\x20clear\x20realtime');clearChannels(this[_0xe850('0xf')]);this[_0xe850('0x41')](this['queueReports']);clearAgentBooked(this[_0xe850('0xe')]);clearVoiceQueues(this[_0xe850('0x11')]);clearCampaigns(this[_0xe850('0x13')]);};VoiceQueueReport['prototype'][_0xe850('0x41')]=function(_0x30e5ef){var _0x55b088=this;if(!_[_0xe850('0x2d')](_0x30e5ef)){for(var _0xb152b8 in _0x30e5ef){if(_0x30e5ef[_0xe850('0x2e')](_0xb152b8)){_0x55b088[_0xe850('0x42')](_0x30e5ef[_0xb152b8]);delete _0x30e5ef[_0xb152b8];}}}};function loggerCatch(_0x32983b){return function(_0x37891a){logger[_0xe850('0x3e')](_0x32983b,util[_0xe850('0x43')](_0x37891a,{'showHidden':![],'depth':null}));};}VoiceQueueReport[_0xe850('0x34')]['emit']=function(_0x1a09de,_0x1aa143,_0x5b55b5){io['to'](_0x1a09de)['emit'](_0x1aa143,_0x5b55b5);};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x44')]=function(_0x1f5b1a){this[_0xe850('0x45')](util['format']('voice:queue:%s',_0x1f5b1a[_0xe850('0x46')]),_0xe850('0x47'),_0x1f5b1a);};VoiceQueueReport['prototype'][_0xe850('0x42')]=function(_0xed70b6){this[_0xe850('0x45')](util[_0xe850('0x48')](_0xe850('0x49'),_0xed70b6[_0xe850('0x46')]),_0xe850('0x4a'),_0xed70b6);};VoiceQueueReport['prototype'][_0xe850('0x4b')]=function(_0x5521d4){if(_0x5521d4[_0xe850('0x4c')]==='inbound'){var _0xa2709a={'id':_0x5521d4['id'],'name':_0x5521d4[_0xe850('0x46')],'strategy':_0x5521d4[_0xe850('0x4d')],'answered':_0x5521d4['answered'],'available':_0x5521d4[_0xe850('0x4e')],'loggedIn':_0x5521d4[_0xe850('0x4f')],'pTalking':_0x5521d4[_0xe850('0x30')],'sumBillable':_0x5521d4[_0xe850('0x50')],'sumDuration':_0x5521d4[_0xe850('0x51')],'sumHoldTime':_0x5521d4[_0xe850('0x52')]||0x0,'talking':_0x5521d4[_0xe850('0x53')],'total':_0x5521d4[_0xe850('0x54')],'type':_0x5521d4[_0xe850('0x4c')],'unmanaged':_0x5521d4[_0xe850('0x55')],'abandoned':_0x5521d4[_0xe850('0x56')],'waiting':_0x5521d4['waiting']};if(_0x5521d4[_0xe850('0x57')]){_0xa2709a[_0xe850('0x57')]={'id':_0x5521d4['Trunk']['id'],'name':_0x5521d4['Trunk'][_0xe850('0x46')],'active':_0x5521d4[_0xe850('0x57')][_0xe850('0x58')],'callerid':_0x5521d4[_0xe850('0x57')][_0xe850('0x59')]};}if(_0x5521d4[_0xe850('0x5a')]){_0xa2709a[_0xe850('0x5a')]={'id':_0x5521d4[_0xe850('0x5a')]['id'],'name':_0x5521d4[_0xe850('0x5a')][_0xe850('0x46')]};}var _0x153596=md5(JSON[_0xe850('0x5b')](_0xa2709a));if(_0x5521d4[_0xe850('0x2')]!==_0x153596){_0x5521d4[_0xe850('0x2')]=_0x153596;this[_0xe850('0x45')](util['format']('voice:queue:%s',_0xa2709a[_0xe850('0x46')]),'voice_queue:save',_0xa2709a);}}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x5c')]=function(_0x46ecc7){return _0x46ecc7!==null&&!_[_0xe850('0x2c')](_0x46ecc7);};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x2b')]=function(){var _0x49d1e1=this;setInterval(function(){_0x49d1e1[_0xe850('0x35')]();ami[_0xe850('0x5d')]({'action':_0xe850('0x5e')})[_0xe850('0x3b')](loggerCatch(_0xe850('0x5f')));},0x2710);};VoiceQueueReport['prototype'][_0xe850('0x60')]=function(){var _0x4c79e1=this;setInterval(function(){if(_0x4c79e1[_0xe850('0x12')]){return ami[_0xe850('0x5d')]({'action':'queuesummary'})[_0xe850('0x61')](function(_0x3ba7a0){_0x4c79e1[_0xe850('0x12')]=![];})[_0xe850('0x3b')](loggerCatch(_0xe850('0x62')));}},0x3e8);};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x15')]=function(_0x41730c){try{if(this[_0xe850('0x5c')](_0x41730c)&&this[_0xe850('0x5c')](_0x41730c[_0xe850('0x63')])){if(this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]]){var _0x383ede=_[_0xe850('0x64')](this[_0xe850('0xf')],'queue')[_0x41730c[_0xe850('0x63')]]||0x0;var _0x21be19=_0x383ede-_0x41730c[_0xe850('0x65')];if(this['voiceQueues'][_0x41730c[_0xe850('0x63')]][_0xe850('0x31')]!==_[_0xe850('0x66')](_0x41730c[_0xe850('0x65')])||this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]][_0xe850('0x4f')]!==_[_0xe850('0x66')](_0x41730c[_0xe850('0x67')])||this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]][_0xe850('0x4e')]!==_[_0xe850('0x66')](_0x41730c[_0xe850('0x4e')])||this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]][_0xe850('0x53')]!==_0x21be19){this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]][_0xe850('0x31')]=_[_0xe850('0x66')](_0x41730c[_0xe850('0x65')]);this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]][_0xe850('0x4f')]=_['toNumber'](_0x41730c[_0xe850('0x67')]);this['voiceQueues'][_0x41730c[_0xe850('0x63')]]['available']=_[_0xe850('0x66')](_0x41730c[_0xe850('0x4e')]);this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]][_0xe850('0x53')]=_0x21be19>0x0?_0x21be19:0x0;this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]]['talking']=this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]]['talking']>_['toNumber'](_0x41730c[_0xe850('0x67')])?_[_0xe850('0x66')](_0x41730c['loggedin']):this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]]['talking'];this['emitVoiceQueueSummary'](this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]]);}ami[_0xe850('0x45')](_0xe850('0x68'),this[_0xe850('0x11')][_0x41730c[_0xe850('0x63')]]);}}}catch(_0x4eb93c){logger[_0xe850('0x3e')](_0xe850('0x69'),util['inspect'](_0x4eb93c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x17')]=function(_0x4817d2){this[_0xe850('0x12')]=!![];};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x6a')]=function(_0x5547a1){};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x1a')]=function(_0x55e981){try{if(this[_0xe850('0x5c')](_0x55e981)){if(_['isUndefined'](this['queueReports'][_0x55e981['uniqueid']])){this[_0xe850('0x6b')][_0x55e981[_0xe850('0x6c')]]=[];this[_0xe850('0xf')][_0x55e981[_0xe850('0x6c')]]={};}var _0x59d48c=new QueueReport();_0x59d48c[_0xe850('0x46')]=_0x55e981['queue'];_0x59d48c[_0xe850('0x4c')]=this[_0xe850('0x11')][_0x59d48c['name']]&&this['voiceQueues'][_0x59d48c['name']][_0xe850('0x4c')]?this[_0xe850('0x11')][_0x59d48c[_0xe850('0x46')]][_0xe850('0x4c')]||_0xe850('0x6d'):'inbound';_0x59d48c[_0xe850('0x63')]=_0x55e981[_0xe850('0x63')];_0x59d48c['queuecallerjoinAt']=moment()[_0xe850('0x48')](_0xe850('0x6e'));_0x59d48c[_0xe850('0x6f')]=_0x55e981['position'];_0x59d48c['count']=_0x55e981['count'];_[_0xe850('0x70')](_0x59d48c,_[_0xe850('0x71')](_0x55e981,_['keys'](_0x59d48c)));this[_0xe850('0x6b')][_0x55e981['uniqueid']][_0xe850('0x72')](_0x59d48c);this[_0xe850('0xf')][_0x55e981['uniqueid']]=_0x59d48c;this[_0xe850('0x44')](_0x59d48c);}}catch(_0x4fe54e){logger[_0xe850('0x3e')](_0xe850('0x73'),util[_0xe850('0x43')](_0x4fe54e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')]['syncQueueCallerAbandon']=function(_0x4af9c4){try{if(this['isNotNull'](_0x4af9c4)){if(this[_0xe850('0x6b')][_0x4af9c4[_0xe850('0x6c')]]){var _0x249db7=_['last'](this['queueReports'][_0x4af9c4['uniqueid']]);_0x249db7['queuecallercomplete']=![];_0x249db7[_0xe850('0x74')]=null;_0x249db7[_0xe850('0x75')]=_0x4af9c4['holdtime'];_0x249db7[_0xe850('0x76')]=_0x4af9c4[_0xe850('0x76')];_0x249db7[_0xe850('0x77')]=!![];_0x249db7[_0xe850('0x78')]=moment()[_0xe850('0x48')](_0xe850('0x6e'));_0x249db7[_0xe850('0x79')]=_0xe850('0x7a');_0x249db7[_0xe850('0x7b')]=null;this[_0xe850('0xf')][_0x4af9c4[_0xe850('0x6c')]]=_0x249db7;this['emitVoiceQueueChannelRemove'](_0x249db7);}}}catch(_0xfdf1e7){logger[_0xe850('0x3e')](_0xe850('0x7c'),util[_0xe850('0x43')](_0xfdf1e7,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x1c')]=function(_0x1d5038){try{if(this['isNotNull'](_0x1d5038)){if(this[_0xe850('0x6b')][_0x1d5038[_0xe850('0x6c')]]){var _0x41580a=_['last'](this[_0xe850('0x6b')][_0x1d5038[_0xe850('0x6c')]]);_0x41580a[_0xe850('0x7d')]=moment()[_0xe850('0x48')]('YYYY-MM-DD\x20HH:mm:ss');_0x41580a['connectedlinenum']=_0x1d5038[_0xe850('0x7e')];_0x41580a[_0xe850('0x7f')]=_0x1d5038[_0xe850('0x7f')];this[_0xe850('0xf')][_0x1d5038['uniqueid']]=_0x41580a;this[_0xe850('0x44')](_0x41580a);}}}catch(_0x5070e9){logger[_0xe850('0x3e')](_0xe850('0x80'),util['inspect'](_0x5070e9,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x20')]=function(_0x1da3be){try{if(this[_0xe850('0x5c')](_0x1da3be)){if(this['queueReports'][_0x1da3be[_0xe850('0x6c')]]){var _0x3be053=_['last'](this[_0xe850('0x6b')][_0x1da3be[_0xe850('0x6c')]]);_0x3be053['queuecallercomplete']=!![];_0x3be053['queuecallerexitreason']=_0xe850('0x81');}}}catch(_0x5c82a2){logger[_0xe850('0x3e')](_0xe850('0x82'),util[_0xe850('0x43')](_0x5c82a2,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xe850('0x1e')]=function(_0x226efc){try{if(this['isNotNull'](_0x226efc)){if(this['queueReports'][_0x226efc[_0xe850('0x6c')]]){var _0x380f63=_['last'](this['queueReports'][_0x226efc[_0xe850('0x6c')]]);_0x380f63[_0xe850('0x77')]=![];_0x380f63[_0xe850('0x78')]=null;_0x380f63[_0xe850('0x83')]=!![];_0x380f63[_0xe850('0x7b')]=_0x226efc[_0xe850('0x84')];_0x380f63['holdtime']=_0x226efc['holdtime'];_0x380f63[_0xe850('0x85')]=!![];_0x380f63[_0xe850('0x86')]=![];_0x380f63[_0xe850('0x87')]=null;if(!_0x380f63['transfer']){if(_0x226efc['reason']==_0xe850('0x88')){_0x380f63[_0xe850('0x79')]=_0xe850('0x89');}else{if(_[_0xe850('0x8a')](_0x226efc['channel'][_0xe850('0x8b')](),_0xe850('0x8c'))){if(this[_0xe850('0x6b')][_0x226efc[_0xe850('0x8d')]]){var _0x1a031c=_[_0xe850('0x8e')](this[_0xe850('0x6b')][_0x226efc[_0xe850('0x8d')]]);_0x1a031c[_0xe850('0x85')]=![];_0x1a031c['queuecallerexit']=!![];_0x1a031c['queuecallerexitAt']=moment(_0x380f63[_0xe850('0x8f')])[_0xe850('0x90')](_0x226efc['holdtime'],_0xe850('0x91'))[_0xe850('0x48')](_0xe850('0x6e'));_0x1a031c[_0xe850('0x79')]=_0xe850('0x92');_0x1a031c[_0xe850('0x88')]=!![];_0x1a031c[_0xe850('0x93')]=_0xe850('0x94');_0x1a031c[_0xe850('0x95')]=_0x226efc[_0xe850('0x96')];_0x1a031c[_0xe850('0x97')]=_0x226efc['uniqueid'];var _0x1c4961=this[_0xe850('0x6b')][_0x226efc[_0xe850('0x8d')]];this[_0xe850('0x6b')][_0x226efc['linkedid']]=this['queueReports'][_0x226efc[_0xe850('0x6c')]];this['queueReports'][_0x226efc['uniqueid']]=_0x1c4961;}}else{_0x380f63[_0xe850('0x79')]=_0xe850('0x98')+_0x226efc['reason'][_0xe850('0x99')]();}}}this[_0xe850('0xf')][_0x226efc[_0xe850('0x6c')]]=_0x380f63;this[_0xe850('0x42')](_0x380f63);}}}catch(_0x49f26f){logger[_0xe850('0x3e')](_0xe850('0x9a'),util[_0xe850('0x43')](_0x49f26f,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xe850('0x9b')]=function(_0x23d68f){try{if(this[_0xe850('0x5c')](_0x23d68f)){this[_0xe850('0x9c')](_0x23d68f[_0xe850('0x6c')],_[_0xe850('0x9d')](_0x23d68f[_0xe850('0x9e')])[0x0],_0x23d68f[_0xe850('0x9f')]);if(this[_0xe850('0x6b')][_0x23d68f[_0xe850('0x6c')]]){var _0x30a113=_[_0xe850('0x8e')](this[_0xe850('0x6b')][_0x23d68f['uniqueid']]);if(_0x30a113){if(this[_0xe850('0x5c')](_0x23d68f[_0xe850('0x9e')])&&this[_0xe850('0x5c')](_0x23d68f[_0xe850('0x9e')][_0xe850('0xa0')])){switch(_0x23d68f[_0xe850('0x9f')]){case _0xe850('0xa1'):_0x30a113[_0xe850('0x86')]=![];_0x30a113[_0xe850('0x87')]=null;break;default:_0x30a113['queuecallerexit']=!![];_0x30a113[_0xe850('0x87')]=moment()['format'](_0xe850('0x6e'));_0x30a113['queuecallerleaveAt']=moment()[_0xe850('0x48')]('YYYY-MM-DD\x20HH:mm:ss');}_0x30a113[_0xe850('0x77')]=![];_0x30a113[_0xe850('0x78')]=null;_0x30a113[_0xe850('0x79')]=_0x23d68f[_0xe850('0x9f')];this['channels'][_0x23d68f[_0xe850('0x6c')]]=_0x30a113;this[_0xe850('0x42')](_0x30a113);}else if(this[_0xe850('0x5c')](_0x23d68f['variable'])&&this[_0xe850('0x5c')](_0x23d68f[_0xe850('0x9e')][_0xe850('0xa2')])){if(!_0x30a113['queuecallerabandon']){_0x30a113[_0xe850('0x86')]=!![];_0x30a113['queuecallerexitAt']=moment()[_0xe850('0x48')](_0xe850('0x6e'));_0x30a113[_0xe850('0x79')]='EXITWITHKEY';_0x30a113[_0xe850('0x7d')]=moment()[_0xe850('0x48')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xe850('0xf')][_0x23d68f[_0xe850('0x6c')]]=_0x30a113;}}_0x30a113[_0xe850('0x14')]=this['variables'][_0x23d68f['uniqueid']];}}}}catch(_0x47ae81){logger['error'](_0xe850('0xa3'),util[_0xe850('0x43')](_0x47ae81,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x9c')]=function(_0x51ded8,_0x3b4f8f,_0x493a66){var _0x1035fb=[_0xe850('0xa4'),'rtpaudioqosbridged',_0xe850('0xa5'),_0xe850('0xa6'),_0xe850('0xa7'),'rtpaudioqoslossbridged',_0xe850('0xa8'),_0xe850('0xa9'),_0xe850('0xaa'),_0xe850('0xab'),_0xe850('0xac'),_0xe850('0xad'),'membercalls',_0xe850('0xae'),_0xe850('0xaf'),_0xe850('0xb0'),_0xe850('0x84'),_0xe850('0xb1'),_0xe850('0xb2')];if(!_['isNil'](_0x3b4f8f)&&!_['includes'](_0x1035fb,_0x3b4f8f)){if(_[_0xe850('0x2c')](this[_0xe850('0x14')][_0x51ded8])){this[_0xe850('0x14')][_0x51ded8]={};}this[_0xe850('0x14')][_0x51ded8][_0x3b4f8f]=_0x493a66;}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0xb3')]=function(_0x567085){try{if(this[_0xe850('0x5c')](_0x567085)){if(this['queueReports'][_0x567085[_0xe850('0x6c')]]){for(var _0xe5346c=0x0,_0x52e25c={};_0xe5346c<this[_0xe850('0x6b')][_0x567085[_0xe850('0x6c')]][_0xe850('0xb4')];_0xe5346c+=0x1){_0x52e25c=this[_0xe850('0x6b')][_0x567085[_0xe850('0x6c')]][_0xe5346c];if(this[_0xe850('0x11')][_0x52e25c[_0xe850('0x63')]]){if(_0x52e25c[_0xe850('0x86')]){this[_0xe850('0x11')][_0x52e25c[_0xe850('0x63')]][_0xe850('0x55')]+=0x1;}if(_0x52e25c[_0xe850('0x77')]){this[_0xe850('0x11')][_0x52e25c[_0xe850('0x63')]][_0xe850('0x56')]+=0x1;}this[_0xe850('0x11')][_0x52e25c['queue']]['sumHoldTime']+=moment(_0x52e25c[_0xe850('0x7d')])[_0xe850('0xb5')](_0x52e25c[_0xe850('0x8f')],_0xe850('0x91'))||0x0;if(_0xe5346c===this[_0xe850('0x6b')][_0x567085[_0xe850('0x6c')]][_0xe850('0xb4')]-0x1){this['voiceQueues'][_0x52e25c[_0xe850('0x63')]][_0xe850('0x51')]+=moment()[_0xe850('0xb6')](0x0)['diff'](_0x52e25c[_0xe850('0x8f')],'seconds');this[_0xe850('0x11')][_0x52e25c[_0xe850('0x63')]]['total']+=0x1;if(_0x52e25c[_0xe850('0x85')]){this[_0xe850('0x11')][_0x52e25c[_0xe850('0x63')]]['answered']+=0x1;this[_0xe850('0x11')][_0x52e25c[_0xe850('0x63')]][_0xe850('0x50')]+=moment()[_0xe850('0xb6')](0x0)[_0xe850('0xb5')](_0x52e25c[_0xe850('0x7d')],_0xe850('0x91'));_0x52e25c[_0xe850('0x74')]=moment()[_0xe850('0x48')](_0xe850('0x6e'));_0x52e25c['queuecallerexit']=![];_0x52e25c['queuecallerexitAt']=null;}if(_0x52e25c[_0xe850('0x86')]){_0x52e25c[_0xe850('0xb7')]='unmanaged';ami[_0xe850('0x45')](_0xe850('0xb8'),_0x52e25c);}if(_0x52e25c[_0xe850('0x77')]){_0x52e25c[_0xe850('0xb7')]=_0xe850('0x56');ami[_0xe850('0x45')]('custom:queuecallerabandon',_0x52e25c);}}else{this['voiceQueues'][_0x52e25c['queue']][_0xe850('0x51')]+=this['voiceQueues'][_0x52e25c['queue']][_0xe850('0x52')];}this[_0xe850('0xf')][_0x567085[_0xe850('0x6c')]]=_0x52e25c;this[_0xe850('0x42')](_0x52e25c);this[_0xe850('0x4b')](this['voiceQueues'][_0x52e25c[_0xe850('0x63')]]);}}ami[_0xe850('0x45')](_0xe850('0xb9'),this[_0xe850('0x6b')][_0x567085[_0xe850('0x6c')]]);delete this['queueReports'][_0x567085[_0xe850('0x6c')]];delete this[_0xe850('0xf')][_0x567085[_0xe850('0x6c')]];}if(this[_0xe850('0x14')][_0x567085[_0xe850('0x6c')]]){delete this['variables'][_0x567085['uniqueid']];}}}catch(_0x44c55b){logger['error'](_0xe850('0xba'),util['inspect'](_0x44c55b,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0xbb')]=function(_0x46caa3){try{if(this[_0xe850('0x5c')](_0x46caa3)){var _0x166c52;if(this['queueReports'][_0x46caa3[_0xe850('0xbc')]]){_0x166c52=_[_0xe850('0x8e')](this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xbc')]]);_0x166c52[_0xe850('0x95')]=_0x46caa3[_0xe850('0xbd')];_0x166c52['transferuniqueid']=_0x46caa3[_0xe850('0xbe')];_0x166c52[_0xe850('0x79')]=_0xe850('0xbf');_0x166c52['transfer']=!![];_0x166c52[_0xe850('0x93')]=_0xe850('0xc0');if(this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xbe')]]){var _0x3a4468=this[_0xe850('0x6b')][_0x46caa3['secondtransfereruniqueid']];this['queueReports'][_0x46caa3['secondtransfereruniqueid']]=this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xbc')]];this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xbc')]]=_0x3a4468;var _0x3420d3=_['last'](this['queueReports'][_0x46caa3['transfereeuniqueid']]);_0x3420d3[_0xe850('0x36')]=!![];}}else if(this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc1')]]){_0x166c52=_[_0xe850('0x8e')](this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc1')]]);_0x166c52[_0xe850('0x95')]=_0x46caa3['origtransfererexten'];_0x166c52[_0xe850('0x97')]=_0x46caa3[_0xe850('0xc2')];_0x166c52[_0xe850('0x79')]='ATTENDEDTRANSFER';_0x166c52['transfer']=!![];_0x166c52[_0xe850('0x93')]=_0xe850('0xc0');if(this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc2')]]){var _0x3a4468=this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc2')]];this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc2')]]=this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc1')]];this['queueReports'][_0x46caa3['transfertargetuniqueid']]=_0x3a4468;var _0x3420d3=_['last'](this[_0xe850('0x6b')][_0x46caa3[_0xe850('0xc1')]]);_0x3420d3[_0xe850('0x36')]=!![];}}}}catch(_0x3caf65){logger[_0xe850('0x3e')](_0xe850('0xc3'),util[_0xe850('0x43')](_0x3caf65,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncBlindTransfer']=function(_0x25f32c){try{if(this[_0xe850('0x5c')](_0x25f32c)){if(this[_0xe850('0x6b')][_0x25f32c[_0xe850('0xbc')]]){var _0x3195cd=_[_0xe850('0x8e')](this[_0xe850('0x6b')][_0x25f32c['transfereeuniqueid']]);_0x3195cd['queuecallerexitreason']='BLINDTRANSFER';_0x3195cd[_0xe850('0x88')]=!![];_0x3195cd[_0xe850('0x93')]=_0xe850('0xc4');_0x3195cd[_0xe850('0x95')]=_0x25f32c[_0xe850('0xc5')];_0x3195cd[_0xe850('0x97')]=_0x25f32c[_0xe850('0xbc')];this[_0xe850('0xb3')]({'event':_0xe850('0xc6'),'uniqueid':_0x25f32c[_0xe850('0xbc')],'context':_0x25f32c[_0xe850('0xc7')],'channel':_0x25f32c[_0xe850('0xc8')]});}}}catch(_0x57b277){logger[_0xe850('0x3e')](_0xe850('0xc9'),util[_0xe850('0x43')](_0x57b277,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xe850('0x26')]=function(_0x4f17e4){try{if(this[_0xe850('0x5c')](_0x4f17e4)){if(this[_0xe850('0x6b')][_0x4f17e4[_0xe850('0x6c')]]){var _0x25aa36=_[_0xe850('0x8e')](this['queueReports'][_0x4f17e4[_0xe850('0x6c')]]);if(!_[_0xe850('0x38')](_0x25aa36[_0xe850('0x7d')])){_0x25aa36['mohstarttime']=moment()['format'](_0xe850('0x6e'));}}}}catch(_0x4e62f2){logger[_0xe850('0x3e')]('[syncMusicOnHoldStart][VoiceQueueReport]',util[_0xe850('0x43')](_0x4e62f2,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xe850('0x34')][_0xe850('0x28')]=function(_0x37aa0b){try{if(this[_0xe850('0x5c')](_0x37aa0b)){if(this['queueReports'][_0x37aa0b[_0xe850('0x6c')]]){var _0x4807c6=_[_0xe850('0x8e')](this['queueReports'][_0x37aa0b[_0xe850('0x6c')]]);if(!_['isNil'](_0x4807c6[_0xe850('0xca')])){_0x4807c6[_0xe850('0xcb')]+=moment()[_0xe850('0xb6')](0x0)[_0xe850('0xb5')](_0x4807c6['mohstarttime'],_0xe850('0x91'));delete _0x4807c6[_0xe850('0xca')];}}}}catch(_0x3616e7){logger[_0xe850('0x3e')](_0xe850('0xcc'),util['inspect'](_0x3616e7,{'showHidden':![],'depth':null}));}};module['exports']=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x425d=['../client','campaign','queue','Request','CreateReportAgentPreview'];(function(_0x233036,_0x3ecc40){var _0x4ace9d=function(_0x40e350){while(--_0x40e350){_0x233036['push'](_0x233036['shift']());}};_0x4ace9d(++_0x3ecc40);}(_0x425d,0x1e0));var _0xd425=function(_0x16e6db,_0x2e5a01){_0x16e6db=_0x16e6db-0x0;var _0x5a9151=_0x425d[_0x16e6db];return _0x5a9151;};'use strict';var client=require(_0xd425('0x0'));exports['createHistory']=function(_0x322866){return function(){_0x322866[_0xd425('0x1')]=_0x322866[_0xd425('0x2')];return client[_0xd425('0x3')](_0xd425('0x4'),{'body':_0x322866,'log':_0xd425('0x4')});};};
\ No newline at end of file
+var _0x032e=['CreateReportAgentPreview','../client','campaign'];(function(_0x1285fb,_0x2c0d02){var _0x241f9c=function(_0x281f33){while(--_0x281f33){_0x1285fb['push'](_0x1285fb['shift']());}};_0x241f9c(++_0x2c0d02);}(_0x032e,0x124));var _0xe032=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x032e[_0x3b380d];return _0x54502b;};'use strict';var client=require(_0xe032('0x0'));exports['createHistory']=function(_0x299adf){return function(){_0x299adf[_0xe032('0x1')]=_0x299adf['queue'];return client['Request'](_0xe032('0x2'),{'body':_0x299adf,'log':_0xe032('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae0e=['CreateAttachment','../client','create','Request'];(function(_0x9ad1e1,_0x375db7){var _0x5da13d=function(_0x4f1556){while(--_0x4f1556){_0x9ad1e1['push'](_0x9ad1e1['shift']());}};_0x5da13d(++_0x375db7);}(_0xae0e,0x1e1));var _0xeae0=function(_0x38a267,_0x279489){_0x38a267=_0x38a267-0x0;var _0x233ab5=_0xae0e[_0x38a267];return _0x233ab5;};'use strict';var client=require(_0xeae0('0x0'));exports[_0xeae0('0x1')]=function(_0x4c9c1c){return client[_0xeae0('0x2')](_0xeae0('0x3'),{'body':_0x4c9c1c,'log':_0xeae0('0x3')});};
\ No newline at end of file
+var _0x49b8=['CreateAttachment','../client','Request'];(function(_0x2d0f1d,_0x34ea6f){var _0x42866f=function(_0x4055f4){while(--_0x4055f4){_0x2d0f1d['push'](_0x2d0f1d['shift']());}};_0x42866f(++_0x34ea6f);}(_0x49b8,0x9d));var _0x849b=function(_0x3979e6,_0xffbb97){_0x3979e6=_0x3979e6-0x0;var _0x36e7b2=_0x49b8[_0x3979e6];return _0x36e7b2;};'use strict';var client=require(_0x849b('0x0'));exports['create']=function(_0x2fb834){return client[_0x849b('0x1')]('CreateAttachment',{'body':_0x2fb834,'log':_0x849b('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb785=['dialTimezone','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialPrefix','dialRandomLastDigitCallerIdNumber','Trunk','name','TrunkBackup','Interval','Intervals','SquareProject','getCampaign','getCampaigns','Request','GetCampaign','type','active','limitCalls','dialOriginateCallerIdName','dialOriginateTimeout','dialCongestionMaxRetry','dialBusyMaxRetry','dialBusyRetryFrequency','dialGlobalMaxRetry'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xb785,0x8a));var _0x5b78=function(_0x4a80a8,_0x2a944c){_0x4a80a8=_0x4a80a8-0x0;var _0x5c26ea=_0xb785[_0x4a80a8];return _0x5c26ea;};'use strict';var client=require('../client');exports[_0x5b78('0x0')]=function(){return function(){return client[_0x5b78('0x1')](_0x5b78('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x5b78('0x3'),_0x5b78('0x4'),_0x5b78('0x5'),_0x5b78('0x6'),'dialOriginateCallerIdNumber',_0x5b78('0x7'),_0x5b78('0x8'),'dialCongestionRetryFrequency',_0x5b78('0x9'),_0x5b78('0xa'),'dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency',_0x5b78('0xb'),_0x5b78('0xc'),'dialGlobalInterval','dialAMDActive',_0x5b78('0xd'),'dialAMDGreeting',_0x5b78('0xe'),_0x5b78('0xf'),_0x5b78('0x10'),_0x5b78('0x11'),_0x5b78('0x12'),_0x5b78('0x13'),_0x5b78('0x14'),'dialOrderByScheduledAt',_0x5b78('0x15'),_0x5b78('0x16'),'dialCutDigit'],'include':[{'model':_0x5b78('0x17'),'as':_0x5b78('0x17'),'attributes':['id',_0x5b78('0x18'),'callerid','active']},{'model':_0x5b78('0x17'),'as':_0x5b78('0x19'),'attributes':['id',_0x5b78('0x18'),'callerid',_0x5b78('0x4')]},{'model':_0x5b78('0x1a'),'as':_0x5b78('0x1a'),'attributes':['id','name'],'include':[{'model':_0x5b78('0x1a'),'as':_0x5b78('0x1b'),'attributes':['id','name','interval']}]},{'model':_0x5b78('0x1c'),'as':_0x5b78('0x1c'),'attributes':['id','name']}]},'log':_0x5b78('0x1d')});};};
\ No newline at end of file
+var _0x6f6c=['dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumWordLength','dialOrderByScheduledAt','dialRandomLastDigitCallerIdNumber','dialCutDigit','callerid','Trunk','TrunkBackup','Intervals','interval','SquareProject','getCampaign','../client','GetCampaign','name','type','active','dialOriginateCallerIdName','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDInitialSilence','dialAMDGreeting'];(function(_0x1224dc,_0x443366){var _0xdb7c15=function(_0x575202){while(--_0x575202){_0x1224dc['push'](_0x1224dc['shift']());}};_0xdb7c15(++_0x443366);}(_0x6f6c,0x6f));var _0xc6f6=function(_0xbb297a,_0x231520){_0xbb297a=_0xbb297a-0x0;var _0x50a14c=_0x6f6c[_0xbb297a];return _0x50a14c;};'use strict';var client=require(_0xc6f6('0x0'));exports['getCampaigns']=function(){return function(){return client['Request'](_0xc6f6('0x1'),{'options':{'raw':![],'attributes':['id',_0xc6f6('0x2'),_0xc6f6('0x3'),_0xc6f6('0x4'),'limitCalls',_0xc6f6('0x5'),'dialOriginateCallerIdNumber',_0xc6f6('0x6'),_0xc6f6('0x7'),_0xc6f6('0x8'),_0xc6f6('0x9'),_0xc6f6('0xa'),_0xc6f6('0xb'),_0xc6f6('0xc'),'dialGlobalMaxRetry',_0xc6f6('0xd'),_0xc6f6('0xe'),'dialAMDActive',_0xc6f6('0xf'),_0xc6f6('0x10'),_0xc6f6('0x11'),_0xc6f6('0x12'),_0xc6f6('0x13'),_0xc6f6('0x14'),'dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold',_0xc6f6('0x15'),_0xc6f6('0x16'),'dialPrefix',_0xc6f6('0x17'),_0xc6f6('0x18')],'include':[{'model':'Trunk','as':'Trunk','attributes':['id','name',_0xc6f6('0x19'),_0xc6f6('0x4')]},{'model':_0xc6f6('0x1a'),'as':_0xc6f6('0x1b'),'attributes':['id','name',_0xc6f6('0x19'),_0xc6f6('0x4')]},{'model':'Interval','as':'Interval','attributes':['id',_0xc6f6('0x2')],'include':[{'model':'Interval','as':_0xc6f6('0x1c'),'attributes':['id',_0xc6f6('0x2'),_0xc6f6('0x1d')]}]},{'model':_0xc6f6('0x1e'),'as':_0xc6f6('0x1e'),'attributes':['id',_0xc6f6('0x2')]}]},'log':_0xc6f6('0x1f')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78f3=['Request','CreateCmContact','ShowCmContact','createContact'];(function(_0x19faf6,_0x4a8c61){var _0x2f5f72=function(_0x15932e){while(--_0x15932e){_0x19faf6['push'](_0x19faf6['shift']());}};_0x2f5f72(++_0x4a8c61);}(_0x78f3,0x9b));var _0x378f=function(_0x5004dd,_0x1fa630){_0x5004dd=_0x5004dd-0x0;var _0x55626a=_0x78f3[_0x5004dd];return _0x55626a;};'use strict';var client=require('../client');exports[_0x378f('0x0')]=function(_0x3e109b){return function(){return client[_0x378f('0x1')](_0x378f('0x2'),{'body':_0x3e109b,'log':_0x378f('0x2')});};};exports['showContact']=function(_0x197bf1){return function(){return client[_0x378f('0x1')](_0x378f('0x3'),{'options':_0x197bf1,'log':_0x378f('0x3')});};};
\ No newline at end of file
+var _0x61c5=['Request','ShowCmContact','../client','CreateCmContact','showContact'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x61c5,0x156));var _0x561c=function(_0x56c445,_0x3b5b87){_0x56c445=_0x56c445-0x0;var _0x5d729a=_0x61c5[_0x56c445];return _0x5d729a;};'use strict';var client=require(_0x561c('0x0'));exports['createContact']=function(_0x48e58f){return function(){return client['Request'](_0x561c('0x1'),{'body':_0x48e58f,'log':_0x561c('0x1')});};};exports[_0x561c('0x2')]=function(_0x438456){return function(){return client[_0x561c('0x3')](_0x561c('0x4'),{'options':_0x438456,'log':_0x561c('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba34=['db.CmHopper.UserId','../client','moment','lodash','getContacts','CmContact','Contact','getCmHopper','updateContacts','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','rescheduleContact','Request','ContactId','ListId','VoiceQueueId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','priority','DESC','scheduledat','ASC','getContactDialerIvr','moveContactManagedDialer','campaign','queue','CampaignId','countReScheduled','CountReScheduled','getContactPreview','GetCmHopper','User','Agent','name','Queue','getContactRecallMe','GetContactRecallMe'];(function(_0x5d43e7,_0x40d02b){var _0x4c1041=function(_0x62e559){while(--_0x62e559){_0x5d43e7['push'](_0x5d43e7['shift']());}};_0x4c1041(++_0x40d02b);}(_0xba34,0x119));var _0x4ba3=function(_0x1533b2,_0x1f546d){_0x1533b2=_0x1533b2-0x0;var _0x1c5065=_0xba34[_0x1533b2];return _0x1c5065;};'use strict';var client=require(_0x4ba3('0x0'));var moment=require(_0x4ba3('0x1'));var _=require(_0x4ba3('0x2'));exports[_0x4ba3('0x3')]=function(_0xeb0ac4,_0x4d6e75){return function(){return client['Request']('GetCmHopper',{'options':{'where':{'VoiceQueueId':_0xeb0ac4},'include':[{'model':_0x4ba3('0x4'),'as':_0x4ba3('0x5')}],'limit':_0x4d6e75,'raw':![]},'log':_0x4ba3('0x6')});};};exports[_0x4ba3('0x7')]=function(_0x3590a1,_0xb88621,_0xe5f99a){return function(){return client['Request'](_0x4ba3('0x8'),{'body':_0x3590a1,'options':{'where':{'VoiceQueueId':_0xb88621,'scheduledat':{'$lte':moment()[_0x4ba3('0x9')](_0x4ba3('0xa'))}},'limit':_0xe5f99a},'log':_0x4ba3('0x8')});};};exports[_0x4ba3('0xb')]=function(_0xcf1ec3){return function(){return client[_0x4ba3('0xc')](_0x4ba3('0x8'),{'body':_0xcf1ec3,'options':{'where':{'ContactId':_0xcf1ec3[_0x4ba3('0xd')],'ListId':_0xcf1ec3[_0x4ba3('0xe')],'VoiceQueueId':_0xcf1ec3[_0x4ba3('0xf')],'CampaignId':_0xcf1ec3['CampaignId']}},'log':_0x4ba3('0xb')});};};exports[_0x4ba3('0x10')]=function(_0x485782,_0x3ff93a,_0x567709){return function(){return client[_0x4ba3('0xc')]('DestroyCmHopper',{'options':{'where':{'VoiceQueueId':_0x485782,'ListId':_0x3ff93a,'ContactId':_0x567709}},'log':_0x4ba3('0x11')});};};exports[_0x4ba3('0x12')]=function(_0x29e498,_0x3515e9,_0x2bc796,_0x3d2ace){return function(){return client[_0x4ba3('0xc')](_0x4ba3('0x13'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x29e498,'active':![],'scheduledat':{'$lte':moment()[_0x4ba3('0x9')](_0x4ba3('0xa'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x3515e9}}]},'include':[{'model':_0x4ba3('0x4'),'as':_0x4ba3('0x5')}],'order':[[_0x4ba3('0x14'),_0x4ba3('0x15')],[_0x4ba3('0x16'),_0x3d2ace],['id',_0x4ba3('0x17')]],'raw':!![],'limit':_0x2bc796},'log':'GetContactDialer'});};};exports[_0x4ba3('0x18')]=function(_0x788277,_0x5ff7ce,_0x451c92){return function(){return client['Request'](_0x4ba3('0x13'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x788277,'active':![],'scheduledat':{'$lte':moment()[_0x4ba3('0x9')](_0x4ba3('0xa'))}},'include':[{'model':_0x4ba3('0x4'),'as':_0x4ba3('0x5')}],'order':[[_0x4ba3('0x14'),'DESC'],['scheduledat',_0x451c92],['id',_0x4ba3('0x17')]],'raw':!![],'limit':_0x5ff7ce},'log':'GetContactDialerIvr'});};};exports[_0x4ba3('0x19')]=function(_0x163967,_0x413bb3){return function(){_0x163967[_0x4ba3('0x1a')]=_0x163967[_0x4ba3('0x1b')];return client[_0x4ba3('0xc')]('MoveContactManagedDialer',{'body':_0x163967,'options':{'where':{'ContactId':_0x163967[_0x4ba3('0xd')],'ListId':_0x163967[_0x4ba3('0xe')],'VoiceQueueId':_0x163967['VoiceQueueId'],'CampaignId':_0x163967[_0x4ba3('0x1c')],'active':_0x413bb3?undefined:!![]}},'log':'MoveContactManagedDialer'});};};exports[_0x4ba3('0x1d')]=function(_0x18abb3){return function(){return client[_0x4ba3('0xc')](_0x4ba3('0x1e'),{'options':{'where':{'VoiceQueueId':_0x18abb3['id']?_0x18abb3['id']||null:null}},'log':_0x4ba3('0x1d')});};};exports[_0x4ba3('0x1f')]=function(_0x159596){return function(){return client[_0x4ba3('0xc')](_0x4ba3('0x20'),{'options':{'where':{'id':_0x159596},'include':[{'model':_0x4ba3('0x4'),'as':'Contact'},{'model':_0x4ba3('0x21'),'as':_0x4ba3('0x22'),'attributes':['id',_0x4ba3('0x23')]},{'model':'VoiceQueue','as':_0x4ba3('0x24'),'attributes':['id',_0x4ba3('0x23')]}],'raw':!![]},'log':_0x4ba3('0x6')});};};exports['unlockContact']=function(_0x10cae6,_0x843276,_0x34ecb4){return function(){return client[_0x4ba3('0xc')]('UpdateCmHopper',{'body':_0x10cae6,'options':{'where':{'id':_0x843276},'limit':_0x34ecb4},'log':'UpdateCmHopper'});};};exports[_0x4ba3('0x25')]=function(_0x33cad6,_0x15cfae){return function(){return client[_0x4ba3('0xc')](_0x4ba3('0x26'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x33cad6,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x4ba3('0x9')]('YYYY-MM-DD\x20HH:mm:ss')},'UserId':{'$in':_0x15cfae}},'order':[[_0x4ba3('0x14'),_0x4ba3('0x15')],[_0x4ba3('0x16'),_0x4ba3('0x15')],['id',_0x4ba3('0x17')]],'include':[{'model':_0x4ba3('0x4'),'as':_0x4ba3('0x5')}],'group':_0x4ba3('0x27'),'raw':!![]},'log':_0x4ba3('0x13')});};};
\ No newline at end of file
+var _0x46ed=['../client','moment','getContacts','GetCmHopper','CmContact','getCmHopper','updateContacts','Request','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','rescheduleContact','ListId','VoiceQueueId','CampaignId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','Contact','priority','DESC','ASC','getContactDialerIvr','scheduledat','GetContactDialerIvr','moveContactManagedDialer','queue','MoveContactManagedDialer','ContactId','countReScheduled','getContactPreview','User','name','VoiceQueue','Queue','unlockContact','getContactRecallMe','GetContactRecallMe','db.CmHopper.UserId'];(function(_0x2c7618,_0x26be9c){var _0x5ce3f0=function(_0x1837b3){while(--_0x1837b3){_0x2c7618['push'](_0x2c7618['shift']());}};_0x5ce3f0(++_0x26be9c);}(_0x46ed,0x168));var _0xd46e=function(_0x4ae6ef,_0xc2af80){_0x4ae6ef=_0x4ae6ef-0x0;var _0x3cbb4e=_0x46ed[_0x4ae6ef];return _0x3cbb4e;};'use strict';var client=require(_0xd46e('0x0'));var moment=require(_0xd46e('0x1'));var _=require('lodash');exports[_0xd46e('0x2')]=function(_0x1df30e,_0x1f15e7){return function(){return client['Request'](_0xd46e('0x3'),{'options':{'where':{'VoiceQueueId':_0x1df30e},'include':[{'model':_0xd46e('0x4'),'as':'Contact'}],'limit':_0x1f15e7,'raw':![]},'log':_0xd46e('0x5')});};};exports[_0xd46e('0x6')]=function(_0x160bcf,_0x25cf78,_0x45e680){return function(){return client[_0xd46e('0x7')](_0xd46e('0x8'),{'body':_0x160bcf,'options':{'where':{'VoiceQueueId':_0x25cf78,'scheduledat':{'$lte':moment()[_0xd46e('0x9')](_0xd46e('0xa'))}},'limit':_0x45e680},'log':_0xd46e('0x8')});};};exports[_0xd46e('0xb')]=function(_0x59c88d){return function(){return client[_0xd46e('0x7')](_0xd46e('0x8'),{'body':_0x59c88d,'options':{'where':{'ContactId':_0x59c88d['ContactId'],'ListId':_0x59c88d[_0xd46e('0xc')],'VoiceQueueId':_0x59c88d[_0xd46e('0xd')],'CampaignId':_0x59c88d[_0xd46e('0xe')]}},'log':_0xd46e('0xb')});};};exports[_0xd46e('0xf')]=function(_0x2d95a9,_0x4920b6,_0x24c54b){return function(){return client['Request']('DestroyCmHopper',{'options':{'where':{'VoiceQueueId':_0x2d95a9,'ListId':_0x4920b6,'ContactId':_0x24c54b}},'log':_0xd46e('0x10')});};};exports[_0xd46e('0x11')]=function(_0x53b309,_0x5a3076,_0xacd799,_0x4688ae){return function(){return client[_0xd46e('0x7')](_0xd46e('0x12'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x53b309,'active':![],'scheduledat':{'$lte':moment()['format'](_0xd46e('0xa'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x5a3076}}]},'include':[{'model':_0xd46e('0x4'),'as':_0xd46e('0x13')}],'order':[[_0xd46e('0x14'),_0xd46e('0x15')],['scheduledat',_0x4688ae],['id',_0xd46e('0x16')]],'raw':!![],'limit':_0xacd799},'log':_0xd46e('0x12')});};};exports[_0xd46e('0x17')]=function(_0x551358,_0x5ddd04,_0x2e8f6d){return function(){return client[_0xd46e('0x7')]('GetContactDialer',{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x551358,'active':![],'scheduledat':{'$lte':moment()['format'](_0xd46e('0xa'))}},'include':[{'model':_0xd46e('0x4'),'as':_0xd46e('0x13')}],'order':[[_0xd46e('0x14'),_0xd46e('0x15')],[_0xd46e('0x18'),_0x2e8f6d],['id',_0xd46e('0x16')]],'raw':!![],'limit':_0x5ddd04},'log':_0xd46e('0x19')});};};exports[_0xd46e('0x1a')]=function(_0x3c7e91,_0x468aba){return function(){_0x3c7e91['campaign']=_0x3c7e91[_0xd46e('0x1b')];return client[_0xd46e('0x7')](_0xd46e('0x1c'),{'body':_0x3c7e91,'options':{'where':{'ContactId':_0x3c7e91[_0xd46e('0x1d')],'ListId':_0x3c7e91[_0xd46e('0xc')],'VoiceQueueId':_0x3c7e91[_0xd46e('0xd')],'CampaignId':_0x3c7e91[_0xd46e('0xe')],'active':_0x468aba?undefined:!![]}},'log':_0xd46e('0x1c')});};};exports[_0xd46e('0x1e')]=function(_0x4cf899){return function(){return client[_0xd46e('0x7')]('CountReScheduled',{'options':{'where':{'VoiceQueueId':_0x4cf899['id']?_0x4cf899['id']||null:null}},'log':'countReScheduled'});};};exports[_0xd46e('0x1f')]=function(_0x2a5271){return function(){return client[_0xd46e('0x7')](_0xd46e('0x3'),{'options':{'where':{'id':_0x2a5271},'include':[{'model':_0xd46e('0x4'),'as':_0xd46e('0x13')},{'model':_0xd46e('0x20'),'as':'Agent','attributes':['id',_0xd46e('0x21')]},{'model':_0xd46e('0x22'),'as':_0xd46e('0x23'),'attributes':['id',_0xd46e('0x21')]}],'raw':!![]},'log':_0xd46e('0x5')});};};exports[_0xd46e('0x24')]=function(_0x58aeef,_0x465d54,_0x3a1ced){return function(){return client[_0xd46e('0x7')](_0xd46e('0x8'),{'body':_0x58aeef,'options':{'where':{'id':_0x465d54},'limit':_0x3a1ced},'log':_0xd46e('0x8')});};};exports[_0xd46e('0x25')]=function(_0x147da3,_0x2c5ec7){return function(){return client[_0xd46e('0x7')](_0xd46e('0x26'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x147da3,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0xd46e('0x9')](_0xd46e('0xa'))},'UserId':{'$in':_0x2c5ec7}},'order':[[_0xd46e('0x14'),'DESC'],[_0xd46e('0x18'),_0xd46e('0x15')],['id',_0xd46e('0x16')]],'include':[{'model':_0xd46e('0x4'),'as':'Contact'}],'group':_0xd46e('0x27'),'raw':!![]},'log':_0xd46e('0x12')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b57=['VoiceQueueId','Contact','phone','checkIsBlackListIvr','Request','CampaignId','../client','checkIsBlackList','GetCmHopperBlack'];(function(_0x4135a8,_0x4330a0){var _0x177a8c=function(_0x1e049d){while(--_0x1e049d){_0x4135a8['push'](_0x4135a8['shift']());}};_0x177a8c(++_0x4330a0);}(_0x5b57,0x19b));var _0x75b5=function(_0x1bda98,_0x23c676){_0x1bda98=_0x1bda98-0x0;var _0x1e7fe6=_0x5b57[_0x1bda98];return _0x1e7fe6;};'use strict';var client=require(_0x75b5('0x0'));exports[_0x75b5('0x1')]=function(_0x3568ba){return function(){return client['Request'](_0x75b5('0x2'),{'options':{'where':{'VoiceQueueId':_0x3568ba[_0x75b5('0x3')],'phone':_0x3568ba[_0x75b5('0x4')][_0x75b5('0x5')]},'raw':![]},'log':_0x75b5('0x2')});};};exports[_0x75b5('0x6')]=function(_0x388ec8){return function(){return client[_0x75b5('0x7')](_0x75b5('0x2'),{'options':{'where':{'CampaignId':_0x388ec8[_0x75b5('0x8')],'phone':_0x388ec8[_0x75b5('0x4')]['phone']},'raw':![]},'log':'GetCmHopperBlackIvr'});};};
\ No newline at end of file
+var _0x4639=['GetCmHopperBlack','VoiceQueueId','Contact','phone','checkIsBlackListIvr','CampaignId','GetCmHopperBlackIvr','checkIsBlackList','Request'];(function(_0x376d55,_0x146ace){var _0xa7e023=function(_0x303637){while(--_0x303637){_0x376d55['push'](_0x376d55['shift']());}};_0xa7e023(++_0x146ace);}(_0x4639,0xc4));var _0x9463=function(_0x266098,_0x10fbbb){_0x266098=_0x266098-0x0;var _0x492415=_0x4639[_0x266098];return _0x492415;};'use strict';var client=require('../client');exports[_0x9463('0x0')]=function(_0x2c7634){return function(){return client[_0x9463('0x1')](_0x9463('0x2'),{'options':{'where':{'VoiceQueueId':_0x2c7634[_0x9463('0x3')],'phone':_0x2c7634[_0x9463('0x4')][_0x9463('0x5')]},'raw':![]},'log':_0x9463('0x2')});};};exports[_0x9463('0x6')]=function(_0x546a2b){return function(){return client['Request'](_0x9463('0x2'),{'options':{'where':{'CampaignId':_0x546a2b[_0x9463('0x7')],'phone':_0x546a2b['Contact'][_0x9463('0x5')]},'raw':![]},'log':_0x9463('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96ae=['../client','createContact','queue','Request','CreateCmHopperFinal'];(function(_0x4bd6fa,_0x1dbd44){var _0x168d37=function(_0x377b4e){while(--_0x377b4e){_0x4bd6fa['push'](_0x4bd6fa['shift']());}};_0x168d37(++_0x1dbd44);}(_0x96ae,0xc8));var _0xe96a=function(_0x4702ee,_0xaf6a45){_0x4702ee=_0x4702ee-0x0;var _0x62ca7d=_0x96ae[_0x4702ee];return _0x62ca7d;};'use strict';var client=require(_0xe96a('0x0'));exports[_0xe96a('0x1')]=function(_0x4ca74d){return function(){_0x4ca74d['campaign']=_0x4ca74d[_0xe96a('0x2')];return client[_0xe96a('0x3')](_0xe96a('0x4'),{'body':_0x4ca74d,'log':'CreateCmHopperFinal'});};};
\ No newline at end of file
+var _0xd31c=['queue','Request','CreateCmHopperFinal','../client','createContact','campaign'];(function(_0xed5f9c,_0x5a25cd){var _0x3a1c43=function(_0x251202){while(--_0x251202){_0xed5f9c['push'](_0xed5f9c['shift']());}};_0x3a1c43(++_0x5a25cd);}(_0xd31c,0x19b));var _0xcd31=function(_0x437545,_0x4ab48b){_0x437545=_0x437545-0x0;var _0x408060=_0xd31c[_0x437545];return _0x408060;};'use strict';var client=require(_0xcd31('0x0'));exports[_0xcd31('0x1')]=function(_0x5a0c8a){return function(){_0x5a0c8a[_0xcd31('0x2')]=_0x5a0c8a[_0xcd31('0x3')];return client[_0xcd31('0x4')](_0xcd31('0x5'),{'body':_0x5a0c8a,'log':_0xcd31('0x5')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3b3=['Request','CreateCmHopperHistory','avgHandleTime','AvgHandleTime','subtract','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','day','endOf','getCampaignHopperHistory','GetCampaignHopperHistory','startOf','../client','moment','createHistory','campaign','queue'];(function(_0x497c5f,_0x51d764){var _0x139e2d=function(_0x4a89c3){while(--_0x4a89c3){_0x497c5f['push'](_0x497c5f['shift']());}};_0x139e2d(++_0x51d764);}(_0xe3b3,0x1b3));var _0x3e3b=function(_0x7b8072,_0xbfb671){_0x7b8072=_0x7b8072-0x0;var _0x255217=_0xe3b3[_0x7b8072];return _0x255217;};'use strict';var client=require(_0x3e3b('0x0'));var moment=require(_0x3e3b('0x1'));exports[_0x3e3b('0x2')]=function(_0x7ace1){return function(){_0x7ace1[_0x3e3b('0x3')]=_0x7ace1[_0x3e3b('0x4')];return client[_0x3e3b('0x5')](_0x3e3b('0x6'),{'body':_0x7ace1,'log':_0x3e3b('0x6')});};};exports[_0x3e3b('0x7')]=function(_0x5e3212){return function(){return client[_0x3e3b('0x5')](_0x3e3b('0x8'),{'options':{'where':{'endtime':{'$between':[moment()[_0x3e3b('0x9')](_0x5e3212,'minutes')[_0x3e3b('0xa')](_0x3e3b('0xb')),moment()[_0x3e3b('0xa')](_0x3e3b('0xb'))]}},'raw':![]},'log':_0x3e3b('0xc')});};};exports[_0x3e3b('0xd')]=function(_0x214205){return function(){return client[_0x3e3b('0x5')](_0x3e3b('0xe'),{'options':{'where':{'createdAt':{'$between':[moment()['startOf'](_0x3e3b('0xf'))['format'](_0x3e3b('0xb')),moment()[_0x3e3b('0x10')](_0x3e3b('0xf'))[_0x3e3b('0xa')](_0x3e3b('0xb'))]},'campaigntype':_0x3e3b('0x4')},'raw':![]},'log':_0x3e3b('0xe')});};};exports[_0x3e3b('0x11')]=function(_0x107dce){return function(){return client[_0x3e3b('0x5')](_0x3e3b('0x12'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x3e3b('0x13')](_0x3e3b('0xf'))[_0x3e3b('0xa')](_0x3e3b('0xb')),moment()[_0x3e3b('0x10')](_0x3e3b('0xf'))['format'](_0x3e3b('0xb'))]},'campaigntype':'ivr'},'raw':![]},'log':_0x3e3b('0x12')});};};
\ No newline at end of file
+var _0x29b7=['getCampaignHopperHistory','GetCampaignHopperHistory','startOf','moment','createHistory','campaign','queue','Request','CreateCmHopperHistory','subtract','minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','day','endOf'];(function(_0x145ea0,_0x1158b1){var _0x280868=function(_0x1088a3){while(--_0x1088a3){_0x145ea0['push'](_0x145ea0['shift']());}};_0x280868(++_0x1158b1);}(_0x29b7,0x17d));var _0x729b=function(_0x469d1a,_0x6efe2c){_0x469d1a=_0x469d1a-0x0;var _0x125bb6=_0x29b7[_0x469d1a];return _0x125bb6;};'use strict';var client=require('../client');var moment=require(_0x729b('0x0'));exports[_0x729b('0x1')]=function(_0x378bf1){return function(){_0x378bf1[_0x729b('0x2')]=_0x378bf1[_0x729b('0x3')];return client[_0x729b('0x4')](_0x729b('0x5'),{'body':_0x378bf1,'log':_0x729b('0x5')});};};exports['avgHandleTime']=function(_0x385175){return function(){return client[_0x729b('0x4')]('AvgHandleTime',{'options':{'where':{'endtime':{'$between':[moment()[_0x729b('0x6')](_0x385175,_0x729b('0x7'))[_0x729b('0x8')](_0x729b('0x9')),moment()['format'](_0x729b('0x9'))]}},'raw':![]},'log':_0x729b('0xa')});};};exports[_0x729b('0xb')]=function(_0x1ae4e3){return function(){return client[_0x729b('0x4')](_0x729b('0xc'),{'options':{'where':{'createdAt':{'$between':[moment()['startOf'](_0x729b('0xd'))['format'](_0x729b('0x9')),moment()[_0x729b('0xe')](_0x729b('0xd'))['format'](_0x729b('0x9'))]},'campaigntype':_0x729b('0x3')},'raw':![]},'log':_0x729b('0xc')});};};exports[_0x729b('0xf')]=function(_0x17a664){return function(){return client['Request'](_0x729b('0x10'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x729b('0x11')]('day')[_0x729b('0x8')](_0x729b('0x9')),moment()[_0x729b('0xe')](_0x729b('0xd'))[_0x729b('0x8')]('YYYY-MM-DD\x20HH:mm:ss')]},'campaigntype':'ivr'},'raw':![]},'log':_0x729b('0x10')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['gateway','faxdetect','t38timeout','key','Trunk','callerid','getFaxAccount','notify','Request','NotifyFaxAccount','../client','GetFaxAccount','ecm','headerinfo','localstationid','minrate','maxrate','modem'];(function(_0x30cc1f,_0x7c7185){var _0x1e12d7=function(_0x3d9176){while(--_0x3d9176){_0x30cc1f['push'](_0x30cc1f['shift']());}};_0x1e12d7(++_0x7c7185);}(_0x0295,0x1f0));var _0x5029=function(_0x208d39,_0x5de94f){_0x208d39=_0x208d39-0x0;var _0x3f96cb=_0x0295[_0x208d39];return _0x3f96cb;};'use strict';var client=require(_0x5029('0x0'));exports['getFaxAccounts']=function(){return function(){return client['Request'](_0x5029('0x1'),{'options':{'raw':![],'attributes':['id','name','description',_0x5029('0x2'),_0x5029('0x3'),_0x5029('0x4'),_0x5029('0x5'),_0x5029('0x6'),_0x5029('0x7'),_0x5029('0x8'),_0x5029('0x9'),_0x5029('0xa'),'tech','TrunkId','ListId',_0x5029('0xb')],'include':[{'model':'Trunk','as':_0x5029('0xc'),'attributes':['id','name',_0x5029('0xd'),'active']}]},'log':_0x5029('0xe')});};};exports[_0x5029('0xf')]=function(_0x12834c,_0x52fa95){return client[_0x5029('0x10')](_0x5029('0x11'),{'account':{'id':_0x12834c},'body':_0x52fa95,'log':_0x5029('0x11')});};
\ No newline at end of file
+var _0x2ef3=['name','description','headerinfo','localstationid','maxrate','modem','t38timeout','tech','TrunkId','ListId','key','Trunk','callerid','active','NotifyFaxAccount','../client','getFaxAccounts','Request','GetFaxAccount'];(function(_0x1fc284,_0x9c86a5){var _0x1bd498=function(_0x29ecfb){while(--_0x29ecfb){_0x1fc284['push'](_0x1fc284['shift']());}};_0x1bd498(++_0x9c86a5);}(_0x2ef3,0xba));var _0x32ef=function(_0x3f6018,_0x54cf01){_0x3f6018=_0x3f6018-0x0;var _0x3d63a6=_0x2ef3[_0x3f6018];return _0x3d63a6;};'use strict';var client=require(_0x32ef('0x0'));exports[_0x32ef('0x1')]=function(){return function(){return client[_0x32ef('0x2')](_0x32ef('0x3'),{'options':{'raw':![],'attributes':['id',_0x32ef('0x4'),_0x32ef('0x5'),'ecm',_0x32ef('0x6'),_0x32ef('0x7'),'minrate',_0x32ef('0x8'),_0x32ef('0x9'),'gateway','faxdetect',_0x32ef('0xa'),_0x32ef('0xb'),_0x32ef('0xc'),_0x32ef('0xd'),_0x32ef('0xe')],'include':[{'model':_0x32ef('0xf'),'as':_0x32ef('0xf'),'attributes':['id',_0x32ef('0x4'),_0x32ef('0x10'),_0x32ef('0x11')]}]},'log':'getFaxAccount'});};};exports['notify']=function(_0x401d0b,_0x33281d){return client[_0x32ef('0x2')](_0x32ef('0x12'),{'account':{'id':_0x401d0b},'body':_0x33281d,'log':'NotifyFaxAccount'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe944=['../client','UpdateFaxMessage'];(function(_0x5e5f5a,_0x5cb19a){var _0x4141ae=function(_0x4bb2ea){while(--_0x4bb2ea){_0x5e5f5a['push'](_0x5e5f5a['shift']());}};_0x4141ae(++_0x5cb19a);}(_0xe944,0x174));var _0x4e94=function(_0x206cd2,_0x312034){_0x206cd2=_0x206cd2-0x0;var _0x27af0d=_0xe944[_0x206cd2];return _0x27af0d;};'use strict';var client=require(_0x4e94('0x0'));exports['update']=function(_0x490afd,_0x7a5f23){return client['Request']('UpdateFaxMessage',{'body':_0x7a5f23,'options':{'where':{'AttachmentId':_0x490afd}},'log':_0x4e94('0x1')});};
\ No newline at end of file
+var _0x9a5a=['../client','update','Request','UpdateFaxMessage'];(function(_0x9adcd6,_0x36278b){var _0xdf8ff2=function(_0x4f7087){while(--_0x4f7087){_0x9adcd6['push'](_0x9adcd6['shift']());}};_0xdf8ff2(++_0x36278b);}(_0x9a5a,0x194));var _0xa9a5=function(_0x1d61e6,_0x1139d3){_0x1d61e6=_0x1d61e6-0x0;var _0x6d2fd8=_0x9a5a[_0x1d61e6];return _0x6d2fd8;};'use strict';var client=require(_0xa9a5('0x0'));exports[_0xa9a5('0x1')]=function(_0x24b651,_0x15c2b6){return client[_0xa9a5('0x2')]('UpdateFaxMessage',{'body':_0x15c2b6,'options':{'where':{'AttachmentId':_0x24b651}},'log':_0xa9a5('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd609=['serverUrl','DeskConfiguration','Configurations','DeskField','Subjects','content','variableName','Variable','key','keyType','Fields','idField','customField','Tags','GetDeskAccount','name','description','username','password','remoteUri','type'];(function(_0x352fa1,_0x39fa3f){var _0x1ec12f=function(_0x35aeec){while(--_0x35aeec){_0x352fa1['push'](_0x352fa1['shift']());}};_0x1ec12f(++_0x39fa3f);}(_0xd609,0x10b));var _0x9d60=function(_0x4cefa0,_0x358fb7){_0x4cefa0=_0x4cefa0-0x0;var _0xc53fa=_0xd609[_0x4cefa0];return _0xc53fa;};'use strict';var client=require('../../client');exports['getDeskAccounts']=function(){return function(_0x282fd7){return client['Request']('GetDeskAccount',{'options':{'raw':![],'attributes':['id',_0x9d60('0x0'),_0x9d60('0x1'),_0x9d60('0x2'),_0x9d60('0x3'),_0x9d60('0x4'),'authType',_0x9d60('0x5'),_0x9d60('0x6')],'include':[{'model':_0x9d60('0x7'),'as':_0x9d60('0x8'),'attributes':['id','name'],'include':[{'model':_0x9d60('0x9'),'as':_0x9d60('0xa'),'attributes':['id','type',_0x9d60('0xb'),_0x9d60('0xc')],'include':[{'model':_0x9d60('0xd'),'as':_0x9d60('0xd'),'attributes':['id',_0x9d60('0x0')]}]},{'model':'DeskField','as':'Descriptions','attributes':['id',_0x9d60('0x5'),'content',_0x9d60('0xe'),_0x9d60('0xf'),'keyContent',_0x9d60('0xc')],'include':[{'model':_0x9d60('0xd'),'as':_0x9d60('0xd'),'attributes':['id',_0x9d60('0x0')]}]},{'model':_0x9d60('0x9'),'as':_0x9d60('0x10'),'attributes':['id',_0x9d60('0x5'),_0x9d60('0xb'),_0x9d60('0x11'),'nameField',_0x9d60('0x12'),_0x9d60('0xc')],'include':[{'model':_0x9d60('0xd'),'as':_0x9d60('0xd'),'attributes':['id','name']}]},{'model':'Tag','as':_0x9d60('0x13'),'attributes':['id','name']}]}]},'log':_0x9d60('0x14')});};};
\ No newline at end of file
+var _0xcc15=['DeskField','Subjects','variableName','Variable','Descriptions','content','key','keyType','keyContent','idField','nameField','customField','Tag','Tags','getDeskAccounts','Request','GetDeskAccount','name','password','remoteUri','authType','type','DeskConfiguration','Configurations'];(function(_0x237393,_0xbed155){var _0xdf0fdd=function(_0x5d5d89){while(--_0x5d5d89){_0x237393['push'](_0x237393['shift']());}};_0xdf0fdd(++_0xbed155);}(_0xcc15,0x15e));var _0x5cc1=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0xcc15[_0x178e48];return _0x440d7e;};'use strict';var client=require('../../client');exports[_0x5cc1('0x0')]=function(){return function(_0x6b1423){return client[_0x5cc1('0x1')](_0x5cc1('0x2'),{'options':{'raw':![],'attributes':['id',_0x5cc1('0x3'),'description','username',_0x5cc1('0x4'),_0x5cc1('0x5'),_0x5cc1('0x6'),_0x5cc1('0x7'),'serverUrl'],'include':[{'model':_0x5cc1('0x8'),'as':_0x5cc1('0x9'),'attributes':['id',_0x5cc1('0x3')],'include':[{'model':_0x5cc1('0xa'),'as':_0x5cc1('0xb'),'attributes':['id',_0x5cc1('0x7'),'content',_0x5cc1('0xc')],'include':[{'model':_0x5cc1('0xd'),'as':_0x5cc1('0xd'),'attributes':['id',_0x5cc1('0x3')]}]},{'model':_0x5cc1('0xa'),'as':_0x5cc1('0xe'),'attributes':['id',_0x5cc1('0x7'),_0x5cc1('0xf'),_0x5cc1('0x10'),_0x5cc1('0x11'),_0x5cc1('0x12'),_0x5cc1('0xc')],'include':[{'model':_0x5cc1('0xd'),'as':'Variable','attributes':['id',_0x5cc1('0x3')]}]},{'model':_0x5cc1('0xa'),'as':'Fields','attributes':['id',_0x5cc1('0x7'),_0x5cc1('0xf'),_0x5cc1('0x13'),_0x5cc1('0x14'),_0x5cc1('0x15'),_0x5cc1('0xc')],'include':[{'model':_0x5cc1('0xd'),'as':_0x5cc1('0xd'),'attributes':['id',_0x5cc1('0x3')]}]},{'model':_0x5cc1('0x16'),'as':_0x5cc1('0x17'),'attributes':['id',_0x5cc1('0x3')]}]}]},'log':_0x5cc1('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5075=['keyContent','variableName','Fields','nameField','customField','../../client','getFreshdeskAccounts','Request','GetFreshdeskAccount','name','username','remoteUri','serverUrl','FreshdeskConfiguration','Tag','Subjects','type','content','Variable','FreshdeskField','Descriptions','key'];(function(_0x56916d,_0x37b935){var _0x2b7f1f=function(_0x206eb1){while(--_0x206eb1){_0x56916d['push'](_0x56916d['shift']());}};_0x2b7f1f(++_0x37b935);}(_0x5075,0x73));var _0x5507=function(_0x1c206c,_0x30bdcf){_0x1c206c=_0x1c206c-0x0;var _0x188aaa=_0x5075[_0x1c206c];return _0x188aaa;};'use strict';var client=require(_0x5507('0x0'));exports[_0x5507('0x1')]=function(){return function(_0x701161){return client[_0x5507('0x2')](_0x5507('0x3'),{'options':{'raw':![],'attributes':['id',_0x5507('0x4'),_0x5507('0x5'),'apiKey',_0x5507('0x6'),_0x5507('0x7')],'include':[{'model':_0x5507('0x8'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0x5507('0x9'),'attributes':['id',_0x5507('0x4')]},{'model':'FreshdeskField','as':_0x5507('0xa'),'attributes':['id',_0x5507('0xb'),_0x5507('0xc'),'variableName'],'include':[{'model':'Variable','as':_0x5507('0xd'),'attributes':['id',_0x5507('0x4')]}]},{'model':_0x5507('0xe'),'as':_0x5507('0xf'),'attributes':['id','type',_0x5507('0xc'),_0x5507('0x10'),'keyType',_0x5507('0x11'),_0x5507('0x12')],'include':[{'model':'Variable','as':_0x5507('0xd'),'attributes':['id',_0x5507('0x4')]}]},{'model':_0x5507('0xe'),'as':_0x5507('0x13'),'attributes':['id',_0x5507('0xb'),_0x5507('0xc'),'idField',_0x5507('0x14'),_0x5507('0x15'),_0x5507('0x12')],'include':[{'model':_0x5507('0xd'),'as':'Variable','attributes':['id',_0x5507('0x4')]}]}]}]},'log':_0x5507('0x3')});};};
\ No newline at end of file
+var _0x2d17=['name','Subjects','type','content','Variable','Descriptions','key','keyType','keyContent','variableName','Fields','idField','nameField','customField','../../client','getFreshdeskAccounts','Request','GetFreshdeskAccount','username','apiKey','serverUrl','Configurations','Tag'];(function(_0x1a0d09,_0x228e8f){var _0x507f0a=function(_0x1af1fd){while(--_0x1af1fd){_0x1a0d09['push'](_0x1a0d09['shift']());}};_0x507f0a(++_0x228e8f);}(_0x2d17,0x17e));var _0x72d1=function(_0x1acf62,_0x5351a1){_0x1acf62=_0x1acf62-0x0;var _0x8f9c12=_0x2d17[_0x1acf62];return _0x8f9c12;};'use strict';var client=require(_0x72d1('0x0'));exports[_0x72d1('0x1')]=function(){return function(_0x52078d){return client[_0x72d1('0x2')](_0x72d1('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x72d1('0x4'),_0x72d1('0x5'),'remoteUri',_0x72d1('0x6')],'include':[{'model':'FreshdeskConfiguration','as':_0x72d1('0x7'),'attributes':['id','name'],'include':[{'model':_0x72d1('0x8'),'attributes':['id',_0x72d1('0x9')]},{'model':'FreshdeskField','as':_0x72d1('0xa'),'attributes':['id',_0x72d1('0xb'),_0x72d1('0xc'),'variableName'],'include':[{'model':_0x72d1('0xd'),'as':_0x72d1('0xd'),'attributes':['id',_0x72d1('0x9')]}]},{'model':'FreshdeskField','as':_0x72d1('0xe'),'attributes':['id',_0x72d1('0xb'),_0x72d1('0xc'),_0x72d1('0xf'),_0x72d1('0x10'),_0x72d1('0x11'),_0x72d1('0x12')],'include':[{'model':_0x72d1('0xd'),'as':_0x72d1('0xd'),'attributes':['id',_0x72d1('0x9')]}]},{'model':'FreshdeskField','as':_0x72d1('0x13'),'attributes':['id',_0x72d1('0xb'),_0x72d1('0xc'),_0x72d1('0x14'),_0x72d1('0x15'),_0x72d1('0x16'),_0x72d1('0x12')],'include':[{'model':_0x72d1('0xd'),'as':_0x72d1('0xd'),'attributes':['id',_0x72d1('0x9')]}]}]}]},'log':_0x72d1('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe81a=['Subjects','Variable','Descriptions','Fields','../../client','getSalesforceAccounts','Request','GetSalesforceAccount','name','username','password','remoteUri','clientId','clientSecret','securityToken','type','SalesforceConfiguration','Configurations','SalesforceField'];(function(_0x3387ae,_0x1368ca){var _0x3385c6=function(_0x4622ef){while(--_0x4622ef){_0x3387ae['push'](_0x3387ae['shift']());}};_0x3385c6(++_0x1368ca);}(_0xe81a,0x89));var _0xae81=function(_0x1c7d93,_0x3c5644){_0x1c7d93=_0x1c7d93-0x0;var _0x2b51aa=_0xe81a[_0x1c7d93];return _0x2b51aa;};'use strict';var client=require(_0xae81('0x0'));exports[_0xae81('0x1')]=function(){return function(_0x3b1a4e){return client[_0xae81('0x2')](_0xae81('0x3'),{'options':{'raw':![],'attributes':['id',_0xae81('0x4'),_0xae81('0x5'),_0xae81('0x6'),_0xae81('0x7'),_0xae81('0x8'),_0xae81('0x9'),_0xae81('0xa'),'serverUrl',_0xae81('0xb')],'include':[{'model':_0xae81('0xc'),'as':_0xae81('0xd'),'attributes':['id','name','moduleSearch','moduleCreate'],'include':[{'model':_0xae81('0xe'),'as':_0xae81('0xf'),'include':[{'model':_0xae81('0x10'),'as':_0xae81('0x10'),'attributes':['id',_0xae81('0x4')]}]},{'model':_0xae81('0xe'),'as':_0xae81('0x11'),'include':[{'model':_0xae81('0x10'),'as':_0xae81('0x10'),'attributes':['id',_0xae81('0x4')]}]},{'model':_0xae81('0xe'),'as':_0xae81('0x12'),'include':[{'model':_0xae81('0x10'),'as':_0xae81('0x10'),'attributes':['id',_0xae81('0x4')]}]}]}]},'log':'GetSalesforceAccount'});};};
\ No newline at end of file
+var _0x694f=['remoteUri','clientSecret','securityToken','type','SalesforceConfiguration','Configurations','moduleSearch','moduleCreate','SalesforceField','Variable','Descriptions','Fields','../../client','getSalesforceAccounts','Request','GetSalesforceAccount','name','username','password'];(function(_0x467d32,_0x2c7659){var _0x5760c0=function(_0x3692fd){while(--_0x3692fd){_0x467d32['push'](_0x467d32['shift']());}};_0x5760c0(++_0x2c7659);}(_0x694f,0xdd));var _0xf694=function(_0x1902ac,_0x36fafa){_0x1902ac=_0x1902ac-0x0;var _0x271ff4=_0x694f[_0x1902ac];return _0x271ff4;};'use strict';var client=require(_0xf694('0x0'));exports[_0xf694('0x1')]=function(){return function(_0xce1ac9){return client[_0xf694('0x2')](_0xf694('0x3'),{'options':{'raw':![],'attributes':['id',_0xf694('0x4'),_0xf694('0x5'),_0xf694('0x6'),_0xf694('0x7'),'clientId',_0xf694('0x8'),_0xf694('0x9'),'serverUrl',_0xf694('0xa')],'include':[{'model':_0xf694('0xb'),'as':_0xf694('0xc'),'attributes':['id',_0xf694('0x4'),_0xf694('0xd'),_0xf694('0xe')],'include':[{'model':_0xf694('0xf'),'as':'Subjects','include':[{'model':_0xf694('0x10'),'as':'Variable','attributes':['id',_0xf694('0x4')]}]},{'model':_0xf694('0xf'),'as':_0xf694('0x11'),'include':[{'model':_0xf694('0x10'),'as':_0xf694('0x10'),'attributes':['id',_0xf694('0x4')]}]},{'model':_0xf694('0xf'),'as':_0xf694('0x12'),'include':[{'model':'Variable','as':'Variable','attributes':['id',_0xf694('0x4')]}]}]}]},'log':_0xf694('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa48f=['name','username','password','remoteUri','serverUrl','SugarcrmConfiguration','Configurations','SugarcrmField','type','content','variableName','Variable','Descriptions','key','keyType','keyContent','Fields','customField','../../client','getSugarcrmAccounts','Request','GetSugarcrmAccount'];(function(_0x5466b9,_0x4b8f43){var _0x2dbe4e=function(_0x20cb4e){while(--_0x20cb4e){_0x5466b9['push'](_0x5466b9['shift']());}};_0x2dbe4e(++_0x4b8f43);}(_0xa48f,0x1b4));var _0xfa48=function(_0x3c1389,_0x4f1a58){_0x3c1389=_0x3c1389-0x0;var _0x1d6e00=_0xa48f[_0x3c1389];return _0x1d6e00;};'use strict';var client=require(_0xfa48('0x0'));exports[_0xfa48('0x1')]=function(){return function(_0x2c8296){return client[_0xfa48('0x2')](_0xfa48('0x3'),{'options':{'raw':![],'attributes':['id',_0xfa48('0x4'),_0xfa48('0x5'),_0xfa48('0x6'),_0xfa48('0x7'),_0xfa48('0x8')],'include':[{'model':_0xfa48('0x9'),'as':_0xfa48('0xa'),'attributes':['id',_0xfa48('0x4')],'include':[{'model':_0xfa48('0xb'),'as':'Subjects','attributes':['id',_0xfa48('0xc'),_0xfa48('0xd'),_0xfa48('0xe')],'include':[{'model':_0xfa48('0xf'),'as':_0xfa48('0xf'),'attributes':['id',_0xfa48('0x4')]}]},{'model':_0xfa48('0xb'),'as':_0xfa48('0x10'),'attributes':['id',_0xfa48('0xc'),_0xfa48('0xd'),_0xfa48('0x11'),_0xfa48('0x12'),_0xfa48('0x13'),_0xfa48('0xe')],'include':[{'model':_0xfa48('0xf'),'as':'Variable','attributes':['id',_0xfa48('0x4')]}]},{'model':'SugarcrmField','as':_0xfa48('0x14'),'attributes':['id',_0xfa48('0xc'),'content','idField','nameField',_0xfa48('0x15'),_0xfa48('0xe')],'include':[{'model':_0xfa48('0xf'),'as':'Variable','attributes':['id',_0xfa48('0x4')]}]}]}]},'log':_0xfa48('0x3')});};};
\ No newline at end of file
+var _0x7b77=['type','content','variableName','Variable','Descriptions','key','Fields','idField','nameField','customField','GetSugarcrmAccount','../../client','getSugarcrmAccounts','Request','name','username','remoteUri','serverUrl','SugarcrmConfiguration','Configurations','Subjects'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0x7b77,0xb3));var _0x77b7=function(_0x36ed48,_0x1ee0d4){_0x36ed48=_0x36ed48-0x0;var _0x51c63a=_0x7b77[_0x36ed48];return _0x51c63a;};'use strict';var client=require(_0x77b7('0x0'));exports[_0x77b7('0x1')]=function(){return function(_0x260d5a){return client[_0x77b7('0x2')]('GetSugarcrmAccount',{'options':{'raw':![],'attributes':['id',_0x77b7('0x3'),_0x77b7('0x4'),'password',_0x77b7('0x5'),_0x77b7('0x6')],'include':[{'model':_0x77b7('0x7'),'as':_0x77b7('0x8'),'attributes':['id',_0x77b7('0x3')],'include':[{'model':'SugarcrmField','as':_0x77b7('0x9'),'attributes':['id',_0x77b7('0xa'),_0x77b7('0xb'),_0x77b7('0xc')],'include':[{'model':_0x77b7('0xd'),'as':_0x77b7('0xd'),'attributes':['id',_0x77b7('0x3')]}]},{'model':'SugarcrmField','as':_0x77b7('0xe'),'attributes':['id',_0x77b7('0xa'),'content',_0x77b7('0xf'),'keyType','keyContent',_0x77b7('0xc')],'include':[{'model':_0x77b7('0xd'),'as':_0x77b7('0xd'),'attributes':['id',_0x77b7('0x3')]}]},{'model':'SugarcrmField','as':_0x77b7('0x10'),'attributes':['id','type',_0x77b7('0xb'),_0x77b7('0x11'),_0x77b7('0x12'),_0x77b7('0x13'),_0x77b7('0xc')],'include':[{'model':'Variable','as':_0x77b7('0xd'),'attributes':['id','name']}]}]}]},'log':_0x77b7('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd187=['keyType','keyContent','VtigerField','Fields','idField','customField','../../client','getVtigerAccounts','Request','GetVtigerAccount','name','description','username','accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','Subjects','type','variableName','Variable','content'];(function(_0x5afe83,_0x1be9cf){var _0x4f92a4=function(_0x4ccaa8){while(--_0x4ccaa8){_0x5afe83['push'](_0x5afe83['shift']());}};_0x4f92a4(++_0x1be9cf);}(_0xd187,0x18d));var _0x7d18=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0xd187[_0x220dbb];return _0x2b77de;};'use strict';var client=require(_0x7d18('0x0'));exports[_0x7d18('0x1')]=function(){return function(_0x443f7f){return client[_0x7d18('0x2')](_0x7d18('0x3'),{'options':{'raw':![],'attributes':['id',_0x7d18('0x4'),_0x7d18('0x5'),_0x7d18('0x6'),_0x7d18('0x7'),_0x7d18('0x8'),_0x7d18('0x9')],'include':[{'model':_0x7d18('0xa'),'as':_0x7d18('0xb'),'attributes':['id','name'],'include':[{'model':'VtigerField','as':_0x7d18('0xc'),'attributes':['id',_0x7d18('0xd'),'content',_0x7d18('0xe')],'include':[{'model':_0x7d18('0xf'),'as':'Variable','attributes':['id',_0x7d18('0x4')]}]},{'model':'VtigerField','as':'Descriptions','attributes':['id','type',_0x7d18('0x10'),'key',_0x7d18('0x11'),_0x7d18('0x12'),_0x7d18('0xe')],'include':[{'model':_0x7d18('0xf'),'as':_0x7d18('0xf'),'attributes':['id','name']}]},{'model':_0x7d18('0x13'),'as':_0x7d18('0x14'),'attributes':['id',_0x7d18('0xd'),_0x7d18('0x10'),_0x7d18('0x15'),'nameField',_0x7d18('0x16'),_0x7d18('0xe')],'include':[{'model':_0x7d18('0xf'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x7d18('0x3')});};};
\ No newline at end of file
+var _0x40ad=['keyContent','Fields','type','nameField','customField','GetVtigerAccount','../../client','getVtigerAccounts','Request','name','description','username','accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','VtigerField','Subjects','content','variableName','Variable','Descriptions'];(function(_0x41b66e,_0x103310){var _0x390cfa=function(_0x3fe783){while(--_0x3fe783){_0x41b66e['push'](_0x41b66e['shift']());}};_0x390cfa(++_0x103310);}(_0x40ad,0x1bb));var _0xd40a=function(_0x456a84,_0x46bc0b){_0x456a84=_0x456a84-0x0;var _0x1117d6=_0x40ad[_0x456a84];return _0x1117d6;};'use strict';var client=require(_0xd40a('0x0'));exports[_0xd40a('0x1')]=function(){return function(_0x4bb1c2){return client[_0xd40a('0x2')]('GetVtigerAccount',{'options':{'raw':![],'attributes':['id',_0xd40a('0x3'),_0xd40a('0x4'),_0xd40a('0x5'),_0xd40a('0x6'),_0xd40a('0x7'),_0xd40a('0x8')],'include':[{'model':_0xd40a('0x9'),'as':_0xd40a('0xa'),'attributes':['id',_0xd40a('0x3')],'include':[{'model':_0xd40a('0xb'),'as':_0xd40a('0xc'),'attributes':['id','type',_0xd40a('0xd'),_0xd40a('0xe')],'include':[{'model':_0xd40a('0xf'),'as':'Variable','attributes':['id',_0xd40a('0x3')]}]},{'model':_0xd40a('0xb'),'as':_0xd40a('0x10'),'attributes':['id','type',_0xd40a('0xd'),'key','keyType',_0xd40a('0x11'),_0xd40a('0xe')],'include':[{'model':_0xd40a('0xf'),'as':_0xd40a('0xf'),'attributes':['id',_0xd40a('0x3')]}]},{'model':'VtigerField','as':_0xd40a('0x12'),'attributes':['id',_0xd40a('0x13'),'content','idField',_0xd40a('0x14'),_0xd40a('0x15'),'variableName'],'include':[{'model':'Variable','as':_0xd40a('0xf'),'attributes':['id',_0xd40a('0x3')]}]}]}]},'log':_0xd40a('0x16')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b64=['customField','../../client','getZendeskAccounts','Request','GetZendeskAccount','username','password','token','remoteUri','authType','serverUrl','ZendeskConfiguration','Configurations','name','ZendeskField','Subjects','type','content','variableName','Variable','Descriptions','key','keyContent'];(function(_0x24d15e,_0x242fa4){var _0x9dcd72=function(_0x18b894){while(--_0x18b894){_0x24d15e['push'](_0x24d15e['shift']());}};_0x9dcd72(++_0x242fa4);}(_0x6b64,0x143));var _0x46b6=function(_0x45ae0d,_0x1ea3b9){_0x45ae0d=_0x45ae0d-0x0;var _0x371826=_0x6b64[_0x45ae0d];return _0x371826;};'use strict';var client=require(_0x46b6('0x0'));exports[_0x46b6('0x1')]=function(){return function(_0x4b6a71){return client[_0x46b6('0x2')](_0x46b6('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x46b6('0x4'),_0x46b6('0x5'),_0x46b6('0x6'),_0x46b6('0x7'),_0x46b6('0x8'),_0x46b6('0x9'),'type'],'include':[{'model':_0x46b6('0xa'),'as':_0x46b6('0xb'),'attributes':['id','name'],'include':[{'model':'Tag','attributes':['id',_0x46b6('0xc')]},{'model':_0x46b6('0xd'),'as':_0x46b6('0xe'),'attributes':['id',_0x46b6('0xf'),_0x46b6('0x10'),_0x46b6('0x11')],'include':[{'model':_0x46b6('0x12'),'as':_0x46b6('0x12'),'attributes':['id',_0x46b6('0xc')]}]},{'model':_0x46b6('0xd'),'as':_0x46b6('0x13'),'attributes':['id',_0x46b6('0xf'),_0x46b6('0x10'),_0x46b6('0x14'),'keyType',_0x46b6('0x15'),_0x46b6('0x11')],'include':[{'model':_0x46b6('0x12'),'as':_0x46b6('0x12'),'attributes':['id','name']}]},{'model':'ZendeskField','as':'Fields','attributes':['id',_0x46b6('0xf'),_0x46b6('0x10'),'idField','nameField',_0x46b6('0x16'),_0x46b6('0x11')],'include':[{'model':'Variable','as':_0x46b6('0x12'),'attributes':['id',_0x46b6('0xc')]}]}]}]},'log':_0x46b6('0x3')});};};
\ No newline at end of file
+var _0xfcf9=['Request','username','remoteUri','authType','ZendeskConfiguration','Configurations','name','Tag','ZendeskField','type','content','Variable','Descriptions','key','keyType','keyContent','variableName','Fields','idField','customField','GetZendeskAccount','../../client'];(function(_0x3e91a9,_0x53c466){var _0x25c9ad=function(_0x69ee2d){while(--_0x69ee2d){_0x3e91a9['push'](_0x3e91a9['shift']());}};_0x25c9ad(++_0x53c466);}(_0xfcf9,0x11d));var _0x9fcf=function(_0x1f3596,_0x2cf6bb){_0x1f3596=_0x1f3596-0x0;var _0x409d82=_0xfcf9[_0x1f3596];return _0x409d82;};'use strict';var client=require(_0x9fcf('0x0'));exports['getZendeskAccounts']=function(){return function(_0x4cab55){return client[_0x9fcf('0x1')]('GetZendeskAccount',{'options':{'raw':![],'attributes':['id','name',_0x9fcf('0x2'),'password','token',_0x9fcf('0x3'),_0x9fcf('0x4'),'serverUrl','type'],'include':[{'model':_0x9fcf('0x5'),'as':_0x9fcf('0x6'),'attributes':['id',_0x9fcf('0x7')],'include':[{'model':_0x9fcf('0x8'),'attributes':['id',_0x9fcf('0x7')]},{'model':_0x9fcf('0x9'),'as':'Subjects','attributes':['id',_0x9fcf('0xa'),_0x9fcf('0xb'),'variableName'],'include':[{'model':_0x9fcf('0xc'),'as':_0x9fcf('0xc'),'attributes':['id','name']}]},{'model':_0x9fcf('0x9'),'as':_0x9fcf('0xd'),'attributes':['id',_0x9fcf('0xa'),'content',_0x9fcf('0xe'),_0x9fcf('0xf'),_0x9fcf('0x10'),_0x9fcf('0x11')],'include':[{'model':_0x9fcf('0xc'),'as':_0x9fcf('0xc'),'attributes':['id',_0x9fcf('0x7')]}]},{'model':_0x9fcf('0x9'),'as':_0x9fcf('0x12'),'attributes':['id',_0x9fcf('0xa'),_0x9fcf('0xb'),_0x9fcf('0x13'),'nameField',_0x9fcf('0x14'),_0x9fcf('0x11')],'include':[{'model':_0x9fcf('0xc'),'as':_0x9fcf('0xc'),'attributes':['id','name']}]}]}]},'log':_0x9fcf('0x15')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb8b=['GetZohoAccount','description','authToken','serverUrl','ZohoConfiguration','Configurations','name','ZohoField','Subjects','type','content','variableName','Variable','Descriptions','keyContent','Fields','idField','nameField','customField','../../client','getZohoAccounts','Request'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xbb8b,0xd9));var _0xbbb8=function(_0x4e6b34,_0x69387b){_0x4e6b34=_0x4e6b34-0x0;var _0x59f599=_0xbb8b[_0x4e6b34];return _0x59f599;};'use strict';var client=require(_0xbbb8('0x0'));exports[_0xbbb8('0x1')]=function(){return function(_0x4e7060){return client[_0xbbb8('0x2')](_0xbbb8('0x3'),{'options':{'raw':![],'attributes':['id','name',_0xbbb8('0x4'),_0xbbb8('0x5'),'host',_0xbbb8('0x6')],'include':[{'model':_0xbbb8('0x7'),'as':_0xbbb8('0x8'),'attributes':['id',_0xbbb8('0x9')],'include':[{'model':_0xbbb8('0xa'),'as':_0xbbb8('0xb'),'attributes':['id',_0xbbb8('0xc'),_0xbbb8('0xd'),_0xbbb8('0xe')],'include':[{'model':_0xbbb8('0xf'),'as':'Variable','attributes':['id',_0xbbb8('0x9')]}]},{'model':_0xbbb8('0xa'),'as':_0xbbb8('0x10'),'attributes':['id',_0xbbb8('0xc'),_0xbbb8('0xd'),'key','keyType',_0xbbb8('0x11'),_0xbbb8('0xe')],'include':[{'model':_0xbbb8('0xf'),'as':'Variable','attributes':['id','name']}]},{'model':'ZohoField','as':_0xbbb8('0x12'),'attributes':['id',_0xbbb8('0xc'),'content',_0xbbb8('0x13'),_0xbbb8('0x14'),_0xbbb8('0x15'),_0xbbb8('0xe')],'include':[{'model':'Variable','as':'Variable','attributes':['id','name']}]}]}]},'log':_0xbbb8('0x3')});};};
\ No newline at end of file
+var _0x2625=['GetZohoAccount','name','description','authToken','host','ZohoConfiguration','Configurations','ZohoField','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','keyContent','Fields','nameField','getZohoAccounts'];(function(_0x2ac25b,_0x6c16cc){var _0x122369=function(_0x8002e9){while(--_0x8002e9){_0x2ac25b['push'](_0x2ac25b['shift']());}};_0x122369(++_0x6c16cc);}(_0x2625,0x1cb));var _0x5262=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0x2625[_0x297fd3];return _0x2af381;};'use strict';var client=require('../../client');exports[_0x5262('0x0')]=function(){return function(_0x351d1c){return client['Request'](_0x5262('0x1'),{'options':{'raw':![],'attributes':['id',_0x5262('0x2'),_0x5262('0x3'),_0x5262('0x4'),_0x5262('0x5'),'serverUrl'],'include':[{'model':_0x5262('0x6'),'as':_0x5262('0x7'),'attributes':['id','name'],'include':[{'model':_0x5262('0x8'),'as':_0x5262('0x9'),'attributes':['id',_0x5262('0xa'),_0x5262('0xb'),_0x5262('0xc')],'include':[{'model':_0x5262('0xd'),'as':_0x5262('0xd'),'attributes':['id',_0x5262('0x2')]}]},{'model':_0x5262('0x8'),'as':_0x5262('0xe'),'attributes':['id',_0x5262('0xa'),_0x5262('0xb'),_0x5262('0xf'),_0x5262('0x10'),_0x5262('0x11'),_0x5262('0xc')],'include':[{'model':_0x5262('0xd'),'as':_0x5262('0xd'),'attributes':['id',_0x5262('0x2')]}]},{'model':_0x5262('0x8'),'as':_0x5262('0x12'),'attributes':['id','type',_0x5262('0xb'),'idField',_0x5262('0x13'),'customField','variableName'],'include':[{'model':_0x5262('0xd'),'as':_0x5262('0xd'),'attributes':['id',_0x5262('0x2')]}]}]}]},'log':_0x5262('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0071=['format','SIP/%s','lastAssignedTo','interface','TALKING','queuecallerleaveAt','seconds','inbound','calleridnum','exten','queue','agent','accountcode','toNumber','uniqueid','voice','starttime','endtime','diff','dialstring','lodash','util','../client','voiceQueueReport','queuecallerexitAt','Request','CreateMemberReport','isNil'];(function(_0x2b7fbe,_0x37861e){var _0x9fe59e=function(_0x3fe5fa){while(--_0x3fe5fa){_0x2b7fbe['push'](_0x2b7fbe['shift']());}};_0x9fe59e(++_0x37861e);}(_0x0071,0x68));var _0x1007=function(_0x58a309,_0x594edf){_0x58a309=_0x58a309-0x0;var _0x1db24b=_0x0071[_0x58a309];return _0x1db24b;};'use strict';var moment=require('moment');var _=require(_0x1007('0x0'));var util=require(_0x1007('0x1'));var client=require(_0x1007('0x2'));exports[_0x1007('0x3')]=function(_0x2375ad){var _0x4eb509=_0x2375ad['queuecallercompleteAt']||_0x2375ad[_0x1007('0x4')];return client[_0x1007('0x5')](_0x1007('0x6'),{'body':{'channel':'voice','membername':_0x2375ad['lastAssignedTo'],'interface':_[_0x1007('0x7')](_0x2375ad['interface'])?util[_0x1007('0x8')](_0x1007('0x9'),_0x2375ad[_0x1007('0xa')]):_0x2375ad[_0x1007('0xb')],'type':_0x1007('0xc'),'enterAt':_0x2375ad[_0x1007('0xd')],'exitAt':_0x4eb509,'duration':moment(_0x4eb509)['diff'](_0x2375ad[_0x1007('0xd')],_0x1007('0xe')),'data1':_0x1007('0xf'),'data2':_0x2375ad[_0x1007('0x10')],'data3':_0x2375ad[_0x1007('0x11')],'data4':null,'data5':_0x2375ad[_0x1007('0x12')],'role':_0x1007('0x13'),'internal':_0x2375ad[_0x1007('0x14')]?_[_0x1007('0x15')](_0x2375ad[_0x1007('0x14')]):undefined,'uniqueid':_0x2375ad[_0x1007('0x16')]},'log':_0x1007('0x6')});};exports['voiceDialReport']=function(_0x262bc5){return client[_0x1007('0x5')](_0x1007('0x6'),{'body':{'channel':_0x1007('0x17'),'membername':_0x262bc5['membername'],'interface':_0x262bc5[_0x1007('0xb')],'type':'TALKING','enterAt':_0x262bc5[_0x1007('0x18')],'exitAt':_0x262bc5[_0x1007('0x19')],'duration':moment(_0x262bc5['endtime'])['diff'](_0x262bc5[_0x1007('0x18')],_0x1007('0xe'))>=0x0?moment(_0x262bc5['endtime'])[_0x1007('0x1a')](_0x262bc5[_0x1007('0x18')],_0x1007('0xe')):null,'data1':'outbound','data2':_0x262bc5[_0x1007('0x14')],'data3':_0x262bc5[_0x1007('0x11')],'data4':_0x262bc5[_0x1007('0x1b')]||null,'role':_0x1007('0x13'),'internal':_0x262bc5[_0x1007('0x14')]?_['toNumber'](_0x262bc5[_0x1007('0x14')]):undefined,'uniqueid':_0x262bc5[_0x1007('0x16')]},'log':_0x1007('0x6')});};
\ No newline at end of file
+var _0xc9f1=['toNumber','CreateMemberReport','membername','starttime','endtime','outbound','dialstring','uniqueid','moment','lodash','voiceQueueReport','queuecallercompleteAt','queuecallerexitAt','Request','voice','isNil','format','SIP/%s','interface','TALKING','diff','queuecallerleaveAt','seconds','inbound','calleridnum','exten','queue','agent','accountcode'];(function(_0x479650,_0x2bee99){var _0x26b288=function(_0x1ba49f){while(--_0x1ba49f){_0x479650['push'](_0x479650['shift']());}};_0x26b288(++_0x2bee99);}(_0xc9f1,0xb6));var _0x1c9f=function(_0x18951f,_0x43960f){_0x18951f=_0x18951f-0x0;var _0x29fa31=_0xc9f1[_0x18951f];return _0x29fa31;};'use strict';var moment=require(_0x1c9f('0x0'));var _=require(_0x1c9f('0x1'));var util=require('util');var client=require('../client');exports[_0x1c9f('0x2')]=function(_0x193767){var _0x45cc5d=_0x193767[_0x1c9f('0x3')]||_0x193767[_0x1c9f('0x4')];return client[_0x1c9f('0x5')]('CreateMemberReport',{'body':{'channel':_0x1c9f('0x6'),'membername':_0x193767['lastAssignedTo'],'interface':_[_0x1c9f('0x7')](_0x193767['interface'])?util[_0x1c9f('0x8')](_0x1c9f('0x9'),_0x193767['lastAssignedTo']):_0x193767[_0x1c9f('0xa')],'type':_0x1c9f('0xb'),'enterAt':_0x193767['queuecallerleaveAt'],'exitAt':_0x45cc5d,'duration':moment(_0x45cc5d)[_0x1c9f('0xc')](_0x193767[_0x1c9f('0xd')],_0x1c9f('0xe')),'data1':_0x1c9f('0xf'),'data2':_0x193767[_0x1c9f('0x10')],'data3':_0x193767[_0x1c9f('0x11')],'data4':null,'data5':_0x193767[_0x1c9f('0x12')],'role':_0x1c9f('0x13'),'internal':_0x193767[_0x1c9f('0x14')]?_[_0x1c9f('0x15')](_0x193767[_0x1c9f('0x14')]):undefined,'uniqueid':_0x193767['uniqueid']},'log':_0x1c9f('0x16')});};exports['voiceDialReport']=function(_0x4450eb){return client['Request'](_0x1c9f('0x16'),{'body':{'channel':_0x1c9f('0x6'),'membername':_0x4450eb[_0x1c9f('0x17')],'interface':_0x4450eb[_0x1c9f('0xa')],'type':_0x1c9f('0xb'),'enterAt':_0x4450eb[_0x1c9f('0x18')],'exitAt':_0x4450eb[_0x1c9f('0x19')],'duration':moment(_0x4450eb[_0x1c9f('0x19')])[_0x1c9f('0xc')](_0x4450eb[_0x1c9f('0x18')],_0x1c9f('0xe'))>=0x0?moment(_0x4450eb[_0x1c9f('0x19')])['diff'](_0x4450eb[_0x1c9f('0x18')],_0x1c9f('0xe')):null,'data1':_0x1c9f('0x1a'),'data2':_0x4450eb[_0x1c9f('0x14')],'data3':_0x4450eb[_0x1c9f('0x11')],'data4':_0x4450eb[_0x1c9f('0x1b')]||null,'role':'agent','internal':_0x4450eb[_0x1c9f('0x14')]?_[_0x1c9f('0x15')](_0x4450eb['accountcode']):undefined,'uniqueid':_0x4450eb[_0x1c9f('0x1c')]},'log':_0x1c9f('0x16')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a5e=['GetTemplate','../client','Request','name'];(function(_0x50593a,_0x5d356a){var _0x24a17d=function(_0x45f511){while(--_0x45f511){_0x50593a['push'](_0x50593a['shift']());}};_0x24a17d(++_0x5d356a);}(_0x5a5e,0x17d));var _0xe5a5=function(_0xcfd89f,_0x106e8f){_0xcfd89f=_0xcfd89f-0x0;var _0x59acd4=_0x5a5e[_0xcfd89f];return _0x59acd4;};'use strict';var client=require(_0xe5a5('0x0'));exports['getTemplates']=function(_0x59b57b){return function(_0x369550){return client[_0xe5a5('0x1')]('GetTemplate',{'options':{'raw':!![],'attributes':['id',_0xe5a5('0x2'),'html']},'log':_0xe5a5('0x3')});};};
\ No newline at end of file
+var _0x9859=['../client','getTemplates','Request','GetTemplate','name'];(function(_0x1f7e5b,_0x4ecd61){var _0x49a977=function(_0x5238cb){while(--_0x5238cb){_0x1f7e5b['push'](_0x1f7e5b['shift']());}};_0x49a977(++_0x4ecd61);}(_0x9859,0xd2));var _0x9985=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0x9859[_0xbd08b4];return _0x314f1e;};'use strict';var client=require(_0x9985('0x0'));exports[_0x9985('0x1')]=function(_0x1b76e3){return function(_0x2072c7){return client[_0x9985('0x2')](_0x9985('0x3'),{'options':{'raw':!![],'attributes':['id',_0x9985('0x4'),'html']},'log':_0x9985('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['data3','data4','data5','../client','getTriggers','GetTrigger','channel','status','Condition','AllConditions','field','value','AnyConditions','action','data1','data2'];(function(_0x302785,_0x584e13){var _0x2cd566=function(_0xd91a23){while(--_0xd91a23){_0x302785['push'](_0x302785['shift']());}};_0x2cd566(++_0x584e13);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xa9e0[_0x5ddb1c];return _0x354adc;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(_0x29929c){return function(_0x5dd881){return client['Request'](_0x0a9e('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x0a9e('0x3'),_0x0a9e('0x4')],'include':[{'model':_0x0a9e('0x5'),'as':_0x0a9e('0x6'),'attributes':['id',_0x0a9e('0x7'),'operator',_0x0a9e('0x8')]},{'model':_0x0a9e('0x5'),'as':_0x0a9e('0x9'),'attributes':['id','field','operator',_0x0a9e('0x8')]},{'model':'Action','as':'Actions','attributes':['id',_0x0a9e('0xa'),_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),'data6','data7']}]},'log':'GetTrigger'});};};
\ No newline at end of file
+var _0xa9e0=['data3','data4','data5','../client','getTriggers','GetTrigger','channel','status','Condition','AllConditions','field','value','AnyConditions','action','data1','data2'];(function(_0x6cc46,_0x30f73e){var _0x3c61bd=function(_0x3374f3){while(--_0x3374f3){_0x6cc46['push'](_0x6cc46['shift']());}};_0x3c61bd(++_0x30f73e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x102e37,_0x14a181){_0x102e37=_0x102e37-0x0;var _0x35a07c=_0xa9e0[_0x102e37];return _0x35a07c;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(_0x29929c){return function(_0x5dd881){return client['Request'](_0x0a9e('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x0a9e('0x3'),_0x0a9e('0x4')],'include':[{'model':_0x0a9e('0x5'),'as':_0x0a9e('0x6'),'attributes':['id',_0x0a9e('0x7'),'operator',_0x0a9e('0x8')]},{'model':_0x0a9e('0x5'),'as':_0x0a9e('0x9'),'attributes':['id','field','operator',_0x0a9e('0x8')]},{'model':'Action','as':'Actions','attributes':['id',_0x0a9e('0xa'),_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),'data6','data7']}]},'log':'GetTrigger'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa949=['GetTrunk','name','registry','../client','getTrunks','Request'];(function(_0x6e285e,_0x489ad6){var _0x3d8a1d=function(_0x5077cc){while(--_0x5077cc){_0x6e285e['push'](_0x6e285e['shift']());}};_0x3d8a1d(++_0x489ad6);}(_0xa949,0xc3));var _0x9a94=function(_0x28cc37,_0x3109f6){_0x28cc37=_0x28cc37-0x0;var _0x449949=_0xa949[_0x28cc37];return _0x449949;};'use strict';var client=require(_0x9a94('0x0'));exports[_0x9a94('0x1')]=function(_0x39f313){return function(_0x2fa741){return client[_0x9a94('0x2')](_0x9a94('0x3'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0x9a94('0x4'),_0x9a94('0x5')]},'log':_0x9a94('0x3')});};};
\ No newline at end of file
+var _0x0ebd=['name','registry','GetTrunk','../client','getTrunks','Request'];(function(_0x91d019,_0x5223c4){var _0x19de1f=function(_0x3e1311){while(--_0x3e1311){_0x91d019['push'](_0x91d019['shift']());}};_0x19de1f(++_0x5223c4);}(_0x0ebd,0x1ad));var _0xd0eb=function(_0xa946ff,_0x17ba6f){_0xa946ff=_0xa946ff-0x0;var _0x334f36=_0x0ebd[_0xa946ff];return _0x334f36;};'use strict';var client=require(_0xd0eb('0x0'));exports[_0xd0eb('0x1')]=function(_0x119b04){return function(_0x12cbf6){return client[_0xd0eb('0x2')]('GetTrunk',{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0xd0eb('0x3'),_0xd0eb('0x4')]},'log':_0xd0eb('0x5')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c55=['voicePause','interface','getAgent','getAgents','Request','GetUser','email','accountcode','fullname','online','lastLoginAt','pauseType','lastPauseAt','phone','mobile','getTelephones','name','PauseUser','savePause','UnpauseUser'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x7c55,0xcb));var _0x57c5=function(_0x516c58,_0x361641){_0x516c58=_0x516c58-0x0;var _0x3af076=_0x7c55[_0x516c58];return _0x3af076;};'use strict';var client=require('../client');exports[_0x57c5('0x0')]=function(){return function(){return client[_0x57c5('0x1')](_0x57c5('0x2'),{'options':{'raw':![],'where':{'role':'agent'},'attributes':['id','name',_0x57c5('0x3'),_0x57c5('0x4'),_0x57c5('0x5'),_0x57c5('0x6'),_0x57c5('0x7'),_0x57c5('0x8'),_0x57c5('0x9'),'voicePause',_0x57c5('0xa'),_0x57c5('0xb'),'interface']},'log':_0x57c5('0x0')});};};exports[_0x57c5('0xc')]=function(){return function(){return client[_0x57c5('0x1')](_0x57c5('0x2'),{'options':{'raw':!![],'where':{'role':'telephone'},'attributes':['id',_0x57c5('0xd'),_0x57c5('0x4'),'internal']},'log':'getTelephones'});};};exports['savePause']=function(_0x313de3,_0x3230e2,_0x45369d){return client[_0x57c5('0x1')](_0x57c5('0xe'),{'body':{'type':_0x3230e2,'uniqueid':_0x45369d},'options':{'where':{'id':_0x313de3['id']}},'log':_0x57c5('0xf')});};exports['saveUnpause']=function(_0x527fc6){return client['Request'](_0x57c5('0x10'),{'body':{},'options':{'where':{'id':_0x527fc6['id']}},'log':_0x57c5('0xf')});};exports['getAgent']=function(_0x25b107){return client[_0x57c5('0x1')]('ShowUser',{'options':{'raw':![],'where':{'role':'agent','id':_0x25b107},'attributes':['id',_0x57c5('0xd'),'email',_0x57c5('0x4'),_0x57c5('0x5'),_0x57c5('0x6'),_0x57c5('0x7'),_0x57c5('0x8'),_0x57c5('0x9'),_0x57c5('0x11'),_0x57c5('0x12')]},'log':_0x57c5('0x13')});};
\ No newline at end of file
+var _0x0c79=['savePause','PauseUser','getAgent','ShowUser','email','online','voicePause','../client','getAgents','Request','GetUser','agent','name','accountcode','fullname','lastLoginAt','pauseType','lastPauseAt','phone','interface','telephone','getTelephones'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x0c79,0xe3));var _0x90c7=function(_0x2073e1,_0x990841){_0x2073e1=_0x2073e1-0x0;var _0x52cbc1=_0x0c79[_0x2073e1];return _0x52cbc1;};'use strict';var client=require(_0x90c7('0x0'));exports[_0x90c7('0x1')]=function(){return function(){return client[_0x90c7('0x2')](_0x90c7('0x3'),{'options':{'raw':![],'where':{'role':_0x90c7('0x4')},'attributes':['id',_0x90c7('0x5'),'email',_0x90c7('0x6'),_0x90c7('0x7'),'online',_0x90c7('0x8'),_0x90c7('0x9'),_0x90c7('0xa'),'voicePause',_0x90c7('0xb'),'mobile',_0x90c7('0xc')]},'log':_0x90c7('0x1')});};};exports['getTelephones']=function(){return function(){return client[_0x90c7('0x2')](_0x90c7('0x3'),{'options':{'raw':!![],'where':{'role':_0x90c7('0xd')},'attributes':['id',_0x90c7('0x5'),_0x90c7('0x6'),'internal']},'log':_0x90c7('0xe')});};};exports[_0x90c7('0xf')]=function(_0x41bfe4,_0x246038,_0x18486e){return client['Request'](_0x90c7('0x10'),{'body':{'type':_0x246038,'uniqueid':_0x18486e},'options':{'where':{'id':_0x41bfe4['id']}},'log':_0x90c7('0xf')});};exports['saveUnpause']=function(_0x2c07db){return client[_0x90c7('0x2')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x2c07db['id']}},'log':'savePause'});};exports[_0x90c7('0x11')]=function(_0x233a98){return client['Request'](_0x90c7('0x12'),{'options':{'raw':![],'where':{'role':'agent','id':_0x233a98},'attributes':['id','name',_0x90c7('0x13'),_0x90c7('0x6'),_0x90c7('0x7'),_0x90c7('0x14'),_0x90c7('0x8'),_0x90c7('0x9'),_0x90c7('0xa'),_0x90c7('0x15'),_0x90c7('0xc')]},'log':_0x90c7('0x11')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ee4=['CreateVoiceAgentReport','update','Request','UpdateVoiceAgentReport','../client','create'];(function(_0x2adbeb,_0x5581be){var _0x5e18a6=function(_0x84e42b){while(--_0x84e42b){_0x2adbeb['push'](_0x2adbeb['shift']());}};_0x5e18a6(++_0x5581be);}(_0x1ee4,0x1e4));var _0x41ee=function(_0x3c0698,_0x1d4ba9){_0x3c0698=_0x3c0698-0x0;var _0x51266c=_0x1ee4[_0x3c0698];return _0x51266c;};'use strict';var client=require(_0x41ee('0x0'));exports[_0x41ee('0x1')]=function(_0x4183a6){return client['Request'](_0x41ee('0x2'),{'body':_0x4183a6,'log':_0x41ee('0x2')});};exports[_0x41ee('0x3')]=function(_0x2830e7,_0x3b5064,_0x30983e){return client[_0x41ee('0x4')](_0x41ee('0x5'),{'body':_0x2830e7,'options':{'where':{'uniqueid':_0x3b5064,'interface':_0x30983e}},'log':_0x41ee('0x5')});};
\ No newline at end of file
+var _0x3394=['create','Request','CreateVoiceAgentReport','UpdateVoiceAgentReport','../client'];(function(_0x36f599,_0x215a6b){var _0x109dc0=function(_0x66e81f){while(--_0x66e81f){_0x36f599['push'](_0x36f599['shift']());}};_0x109dc0(++_0x215a6b);}(_0x3394,0x171));var _0x4339=function(_0x4f0960,_0xff5d8d){_0x4f0960=_0x4f0960-0x0;var _0x4f389a=_0x3394[_0x4f0960];return _0x4f389a;};'use strict';var client=require(_0x4339('0x0'));exports[_0x4339('0x1')]=function(_0x280899){return client[_0x4339('0x2')]('CreateVoiceAgentReport',{'body':_0x280899,'log':_0x4339('0x3')});};exports['update']=function(_0x37904f,_0x35961e,_0x11565d){return client[_0x4339('0x2')](_0x4339('0x4'),{'body':_0x37904f,'options':{'where':{'uniqueid':_0x35961e,'interface':_0x11565d}},'log':_0x4339('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ef6=['GetVoiceCallReport','outbound','startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','type','disposition','duration','billableseconds','util','lodash','../client','create','Request','CreateVoiceCallReport','merge','context','callerid','getVoiceCallReports'];(function(_0x1964b4,_0x5796f4){var _0x509a77=function(_0x247257){while(--_0x247257){_0x1964b4['push'](_0x1964b4['shift']());}};_0x509a77(++_0x5796f4);}(_0x5ef6,0xd2));var _0x65ef=function(_0x4738b7,_0x9096f0){_0x4738b7=_0x4738b7-0x0;var _0x47cb9e=_0x5ef6[_0x4738b7];return _0x47cb9e;};'use strict';var moment=require('moment');var util=require(_0x65ef('0x0'));var _=require(_0x65ef('0x1'));var client=require(_0x65ef('0x2'));exports[_0x65ef('0x3')]=function(_0x61f18a){return client[_0x65ef('0x4')](_0x65ef('0x5'),{'body':_[_0x65ef('0x6')](_0x61f18a,{'source':_0x61f18a['calleridnum'],'destinationcontext':_0x61f18a[_0x65ef('0x7')],'callerid':_0x61f18a[_0x65ef('0x8')],'amaflags':'DOCUMENTATION'}),'log':'CreateVoiceCallReport'});};exports[_0x65ef('0x9')]=function(){return function(){return client['Request'](_0x65ef('0xa'),{'options':{'where':{'type':[_0x65ef('0xb')],'createdAt':{'$between':[moment()[_0x65ef('0xc')](_0x65ef('0xd'))[_0x65ef('0xe')]('YYYY-MM-DD\x20HH:mm:ss'),moment()['endOf'](_0x65ef('0xd'))['format'](_0x65ef('0xf'))]}},'attributes':[_0x65ef('0x10'),_0x65ef('0x11'),_0x65ef('0x12'),_0x65ef('0x13')]},'log':'GetVoiceCallReports'});};};
\ No newline at end of file
+var _0x7a5f=['startOf','format','endOf','day','YYYY-MM-DD\x20HH:mm:ss','type','disposition','duration','billableseconds','moment','util','lodash','create','Request','CreateVoiceCallReport','merge','context','callerid','DOCUMENTATION','GetVoiceCallReport','outbound'];(function(_0x5207a2,_0x316913){var _0x314716=function(_0x2ca663){while(--_0x2ca663){_0x5207a2['push'](_0x5207a2['shift']());}};_0x314716(++_0x316913);}(_0x7a5f,0xb1));var _0xf7a5=function(_0x256684,_0x529c1e){_0x256684=_0x256684-0x0;var _0x37a0c9=_0x7a5f[_0x256684];return _0x37a0c9;};'use strict';var moment=require(_0xf7a5('0x0'));var util=require(_0xf7a5('0x1'));var _=require(_0xf7a5('0x2'));var client=require('../client');exports[_0xf7a5('0x3')]=function(_0x4bb3a3){return client[_0xf7a5('0x4')](_0xf7a5('0x5'),{'body':_[_0xf7a5('0x6')](_0x4bb3a3,{'source':_0x4bb3a3['calleridnum'],'destinationcontext':_0x4bb3a3[_0xf7a5('0x7')],'callerid':_0x4bb3a3[_0xf7a5('0x8')],'amaflags':_0xf7a5('0x9')}),'log':_0xf7a5('0x5')});};exports['getVoiceCallReports']=function(){return function(){return client[_0xf7a5('0x4')](_0xf7a5('0xa'),{'options':{'where':{'type':[_0xf7a5('0xb')],'createdAt':{'$between':[moment()[_0xf7a5('0xc')]('day')[_0xf7a5('0xd')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xf7a5('0xe')](_0xf7a5('0xf'))[_0xf7a5('0xd')](_0xf7a5('0x10'))]}},'attributes':[_0xf7a5('0x11'),_0xf7a5('0x12'),_0xf7a5('0x13'),_0xf7a5('0x14')]},'log':'GetVoiceCallReports'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bfa=['CreateVoiceDialReport','Request'];(function(_0x55c1ba,_0x4bfeac){var _0x28b685=function(_0x4d53d0){while(--_0x4d53d0){_0x55c1ba['push'](_0x55c1ba['shift']());}};_0x28b685(++_0x4bfeac);}(_0x0bfa,0x1a3));var _0xa0bf=function(_0x15a634,_0x4feb86){_0x15a634=_0x15a634-0x0;var _0xf4f7a0=_0x0bfa[_0x15a634];return _0xf4f7a0;};'use strict';var client=require('../client');exports['create']=function(_0x134a88){return client[_0xa0bf('0x0')]('CreateVoiceDialReport',{'body':_0x134a88,'log':_0xa0bf('0x1')});};
\ No newline at end of file
+var _0x997e=['CreateVoiceDialReport','../client','create','Request'];(function(_0xb761d,_0x16a9e9){var _0x56833c=function(_0x576427){while(--_0x576427){_0xb761d['push'](_0xb761d['shift']());}};_0x56833c(++_0x16a9e9);}(_0x997e,0xdd));var _0xe997=function(_0x58e636,_0x1ab83b){_0x58e636=_0x58e636-0x0;var _0x26f262=_0x997e[_0x58e636];return _0x26f262;};'use strict';var client=require(_0xe997('0x0'));exports[_0xe997('0x1')]=function(_0x8e9505){return client[_0xe997('0x2')]('CreateVoiceDialReport',{'body':_0x8e9505,'log':_0xe997('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12e9=['getVoiceExtensions','Request','GetVoiceExtension','exten','recordingFormat','../client'];(function(_0x208505,_0x241a77){var _0x1a985f=function(_0x4a5110){while(--_0x4a5110){_0x208505['push'](_0x208505['shift']());}};_0x1a985f(++_0x241a77);}(_0x12e9,0x119));var _0x912e=function(_0xf1d604,_0x3e9f92){_0xf1d604=_0xf1d604-0x0;var _0x53a14f=_0x12e9[_0xf1d604];return _0x53a14f;};'use strict';var client=require(_0x912e('0x0'));exports[_0x912e('0x1')]=function(){return function(){return client[_0x912e('0x2')](_0x912e('0x3'),{'options':{'raw':!![],'attributes':['id',_0x912e('0x4'),_0x912e('0x5')],'where':{'VoiceExtensionId':null}},'log':_0x912e('0x1')});};};
\ No newline at end of file
+var _0xc8b5=['getVoiceExtensions','GetVoiceExtension','exten'];(function(_0x2b91ac,_0x310741){var _0xe88814=function(_0x59c51b){while(--_0x59c51b){_0x2b91ac['push'](_0x2b91ac['shift']());}};_0xe88814(++_0x310741);}(_0xc8b5,0xab));var _0x5c8b=function(_0x186433,_0x4a1dde){_0x186433=_0x186433-0x0;var _0x2dfc68=_0xc8b5[_0x186433];return _0x2dfc68;};'use strict';var client=require('../client');exports[_0x5c8b('0x0')]=function(){return function(){return client['Request'](_0x5c8b('0x1'),{'options':{'raw':!![],'attributes':['id',_0x5c8b('0x2'),'recordingFormat'],'where':{'VoiceExtensionId':null}},'log':_0x5c8b('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x081e=['dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialBusyRetryFrequency','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDInitialSilence','dialAMDGreeting','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','name','callerid','active','TrunkBackup','Interval','interval','../client','getVoiceQueues','GetVoiceQueue','acw','acwTimeout','autopause','monitor_format','type','dialActive','dialMethod','dialLimitQueue','dialOriginateCallerIdName','dialOriginateTimeout'];(function(_0x4c12ec,_0x2e9103){var _0x3ae42c=function(_0x5a728f){while(--_0x5a728f){_0x4c12ec['push'](_0x4c12ec['shift']());}};_0x3ae42c(++_0x2e9103);}(_0x081e,0xc5));var _0xe081=function(_0x3dfb56,_0xfe844d){_0x3dfb56=_0x3dfb56-0x0;var _0x5e6e1b=_0x081e[_0x3dfb56];return _0x5e6e1b;};'use strict';var client=require(_0xe081('0x0'));exports[_0xe081('0x1')]=function(){return function(){return client['Request'](_0xe081('0x2'),{'options':{'raw':![],'attributes':['id','name',_0xe081('0x3'),_0xe081('0x4'),_0xe081('0x5'),_0xe081('0x6'),_0xe081('0x7'),_0xe081('0x8'),_0xe081('0x9'),'dialLimitChannel',_0xe081('0xa'),'dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval',_0xe081('0xb'),'dialOriginateCallerIdNumber',_0xe081('0xc'),'dialQueueOptions',_0xe081('0xd'),_0xe081('0xe'),_0xe081('0xf'),'dialCongestionRetryFrequency','dialBusyMaxRetry',_0xe081('0x10'),'dialNoAnswerMaxRetry',_0xe081('0x11'),_0xe081('0x12'),_0xe081('0x13'),_0xe081('0x14'),_0xe081('0x15'),_0xe081('0x16'),'dialAMDActive',_0xe081('0x17'),_0xe081('0x18'),'dialAMDAfterGreetingSilence',_0xe081('0x19'),_0xe081('0x1a'),_0xe081('0x1b'),'dialAMDMaximumNumberOfWords',_0xe081('0x1c'),'dialAMDMaximumWordLength','timeout','dialRecallMeTimeout','dialRecallInQueue',_0xe081('0x1d'),_0xe081('0x1e'),_0xe081('0x1f'),'dialQueueProject2','monitor_format',_0xe081('0x20'),_0xe081('0x21'),_0xe081('0x22')],'include':[{'model':'Trunk','as':_0xe081('0x23'),'attributes':['id',_0xe081('0x24'),_0xe081('0x25'),_0xe081('0x26')]},{'model':_0xe081('0x23'),'as':_0xe081('0x27'),'attributes':['id',_0xe081('0x24'),_0xe081('0x25'),_0xe081('0x26')]},{'model':'Interval','as':_0xe081('0x28'),'attributes':['id',_0xe081('0x24')],'include':[{'model':_0xe081('0x28'),'as':'Intervals','attributes':['id','name',_0xe081('0x29')]}]}]},'log':_0xe081('0x1')});};};
\ No newline at end of file
+var _0xbca0=['dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','timeout','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialQueueProject2','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','name','callerid','active','Interval','interval','../client','getVoiceQueues','acw','acwTimeout','autopause','monitor_format','dialMethod','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialOriginateCallerIdName'];(function(_0x14c563,_0x63977a){var _0x1e41fb=function(_0x33fe56){while(--_0x33fe56){_0x14c563['push'](_0x14c563['shift']());}};_0x1e41fb(++_0x63977a);}(_0xbca0,0x8b));var _0x0bca=function(_0x113414,_0x2d27de){_0x113414=_0x113414-0x0;var _0x367e45=_0xbca0[_0x113414];return _0x367e45;};'use strict';var client=require(_0x0bca('0x0'));exports[_0x0bca('0x1')]=function(){return function(){return client['Request']('GetVoiceQueue',{'options':{'raw':![],'attributes':['id','name',_0x0bca('0x2'),_0x0bca('0x3'),_0x0bca('0x4'),_0x0bca('0x5'),'type','dialActive',_0x0bca('0x6'),_0x0bca('0x7'),_0x0bca('0x8'),_0x0bca('0x9'),'dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval',_0x0bca('0xa'),_0x0bca('0xb'),_0x0bca('0xc'),_0x0bca('0xd'),_0x0bca('0xe'),'dialQueueProject','dialCongestionMaxRetry',_0x0bca('0xf'),_0x0bca('0x10'),_0x0bca('0x11'),_0x0bca('0x12'),_0x0bca('0x13'),_0x0bca('0x14'),_0x0bca('0x15'),_0x0bca('0x16'),_0x0bca('0x17'),_0x0bca('0x18'),_0x0bca('0x19'),_0x0bca('0x1a'),_0x0bca('0x1b'),_0x0bca('0x1c'),_0x0bca('0x1d'),_0x0bca('0x1e'),_0x0bca('0x1f'),_0x0bca('0x20'),_0x0bca('0x21'),'dialAMDMaximumWordLength',_0x0bca('0x22'),_0x0bca('0x23'),_0x0bca('0x24'),_0x0bca('0x25'),_0x0bca('0x26'),_0x0bca('0x27'),_0x0bca('0x28'),'monitor_format',_0x0bca('0x29'),_0x0bca('0x2a'),_0x0bca('0x2b')],'include':[{'model':_0x0bca('0x2c'),'as':_0x0bca('0x2c'),'attributes':['id',_0x0bca('0x2d'),_0x0bca('0x2e'),'active']},{'model':_0x0bca('0x2c'),'as':'TrunkBackup','attributes':['id','name',_0x0bca('0x2e'),_0x0bca('0x2f')]},{'model':_0x0bca('0x30'),'as':_0x0bca('0x30'),'attributes':['id',_0x0bca('0x2d')],'include':[{'model':_0x0bca('0x30'),'as':'Intervals','attributes':['id',_0x0bca('0x2d'),_0x0bca('0x31')]}]}]},'log':'getVoiceQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf23=['GetVoiceQueueReports','moment','lodash','../client','create','CreateVoiceQueueReport','Request','GetVoiceQueueReport','startOf','format','endOf','day','queue','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt','queuecallerabandonAt'];(function(_0x48d12f,_0x5b66db){var _0x47fadc=function(_0x408a80){while(--_0x408a80){_0x48d12f['push'](_0x48d12f['shift']());}};_0x47fadc(++_0x5b66db);}(_0xbf23,0x19f));var _0x3bf2=function(_0x1ea6eb,_0x33d3d4){_0x1ea6eb=_0x1ea6eb-0x0;var _0x127200=_0xbf23[_0x1ea6eb];return _0x127200;};'use strict';var moment=require(_0x3bf2('0x0'));var _=require(_0x3bf2('0x1'));var client=require(_0x3bf2('0x2'));exports[_0x3bf2('0x3')]=function(_0x489e70){return client['Request']('CreateVoiceQueueReport',{'body':_0x489e70,'log':_0x3bf2('0x4')});};exports['getVoiceQueueReports']=function(){return function(){return client[_0x3bf2('0x5')](_0x3bf2('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x3bf2('0x7')]('day')[_0x3bf2('0x8')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0x3bf2('0x9')](_0x3bf2('0xa'))['format']('YYYY-MM-DD\x20HH:mm:ss')]}},'attributes':['uniqueid',_0x3bf2('0xb'),_0x3bf2('0xc'),_0x3bf2('0xd'),_0x3bf2('0xe'),_0x3bf2('0xf'),'queuecallerexit','queuecallerexitAt','queuecallerabandon',_0x3bf2('0x10')]},'log':_0x3bf2('0x11')});};};
\ No newline at end of file
+var _0xc191=['queuecallercomplete','queuecallerabandon','queuecallerabandonAt','GetVoiceQueueReports','moment','lodash','create','CreateVoiceQueueReport','getVoiceQueueReports','Request','GetVoiceQueueReport','startOf','day','format','endOf','queuecallerleaveAt'];(function(_0x39a8bc,_0x4ebbb7){var _0x3fc689=function(_0xd8e78b){while(--_0xd8e78b){_0x39a8bc['push'](_0x39a8bc['shift']());}};_0x3fc689(++_0x4ebbb7);}(_0xc191,0xd4));var _0x1c19=function(_0x5a95fa,_0x4a2fc9){_0x5a95fa=_0x5a95fa-0x0;var _0x1a61b8=_0xc191[_0x5a95fa];return _0x1a61b8;};'use strict';var moment=require(_0x1c19('0x0'));var _=require(_0x1c19('0x1'));var client=require('../client');exports[_0x1c19('0x2')]=function(_0x39ad9c){return client['Request'](_0x1c19('0x3'),{'body':_0x39ad9c,'log':'CreateVoiceQueueReport'});};exports[_0x1c19('0x4')]=function(){return function(){return client[_0x1c19('0x5')](_0x1c19('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x1c19('0x7')](_0x1c19('0x8'))[_0x1c19('0x9')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0x1c19('0xa')](_0x1c19('0x8'))[_0x1c19('0x9')]('YYYY-MM-DD\x20HH:mm:ss')]}},'attributes':['uniqueid','queue','queuecallerjoinAt',_0x1c19('0xb'),_0x1c19('0xc'),'queuecallercompleteAt','queuecallerexit','queuecallerexitAt',_0x1c19('0xd'),_0x1c19('0xe')]},'log':_0x1c19('0xf')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x574b=['getVoiceQueueRtPauses','Request','GetVoiceQueueRtPauses','../client'];(function(_0x369440,_0x20f6c5){var _0x5c0959=function(_0x546763){while(--_0x546763){_0x369440['push'](_0x369440['shift']());}};_0x5c0959(++_0x20f6c5);}(_0x574b,0xbb));var _0xb574=function(_0x1fa1a6,_0x18f633){_0x1fa1a6=_0x1fa1a6-0x0;var _0x4b0329=_0x574b[_0x1fa1a6];return _0x4b0329;};'use strict';var client=require(_0xb574('0x0'));exports[_0xb574('0x1')]=function(_0x2d364a){return function(){return client[_0xb574('0x2')](_0xb574('0x3'),{'options':{'where':{'VoiceQueueId':_0x2d364a,'paused':!![]},'raw':!![]},'log':'getVoiceQueueRtPauses'});};};
\ No newline at end of file
+var _0xe489=['GetVoiceQueueRtPauses','getVoiceQueueRtPauses','Request'];(function(_0x1a35ab,_0x22eb08){var _0x1cd127=function(_0x5ebe21){while(--_0x5ebe21){_0x1a35ab['push'](_0x1a35ab['shift']());}};_0x1cd127(++_0x22eb08);}(_0xe489,0x85));var _0x9e48=function(_0x9b9e6b,_0x188999){_0x9b9e6b=_0x9b9e6b-0x0;var _0x1cb445=_0xe489[_0x9b9e6b];return _0x1cb445;};'use strict';var client=require('../client');exports[_0x9e48('0x0')]=function(_0xe663bd){return function(){return client[_0x9e48('0x1')](_0x9e48('0x2'),{'options':{'where':{'VoiceQueueId':_0xe663bd,'paused':!![]},'raw':!![]},'log':_0x9e48('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x86d8=['create','Request','CreateVoiceRecording','merge','monitorFilename','lodash','../client'];(function(_0x4df85c,_0x248dfb){var _0x4e2a61=function(_0x4e2c8e){while(--_0x4e2c8e){_0x4df85c['push'](_0x4df85c['shift']());}};_0x4e2a61(++_0x248dfb);}(_0x86d8,0x67));var _0x886d=function(_0x474791,_0x3a2e1a){_0x474791=_0x474791-0x0;var _0x20cca5=_0x86d8[_0x474791];return _0x20cca5;};'use strict';var _=require(_0x886d('0x0'));var client=require(_0x886d('0x1'));exports[_0x886d('0x2')]=function(_0x2ba310){return client[_0x886d('0x3')](_0x886d('0x4'),{'body':_[_0x886d('0x5')](_0x2ba310,{'value':_0x2ba310[_0x886d('0x6')]}),'log':_0x886d('0x4')});};
\ No newline at end of file
+var _0xa6f3=['../client','create','Request','CreateVoiceRecording','merge','monitorFilename','lodash'];(function(_0x5bcb11,_0x5b5d84){var _0x3daa19=function(_0x1e3715){while(--_0x1e3715){_0x5bcb11['push'](_0x5bcb11['shift']());}};_0x3daa19(++_0x5b5d84);}(_0xa6f3,0x7d));var _0x3a6f=function(_0x2e8418,_0x58c529){_0x2e8418=_0x2e8418-0x0;var _0x548fe6=_0xa6f3[_0x2e8418];return _0x548fe6;};'use strict';var _=require(_0x3a6f('0x0'));var client=require(_0x3a6f('0x1'));exports[_0x3a6f('0x2')]=function(_0x37a506){return client[_0x3a6f('0x3')](_0x3a6f('0x4'),{'body':_[_0x3a6f('0x5')](_0x37a506,{'value':_0x37a506[_0x3a6f('0x6')]}),'log':'CreateVoiceRecording'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7212=['transferercalleridnum','transferercalleridname','transfererconnectedlinename','transfereraccountcode','transfererexten','transfereechannel','transfereecalleridname','transfereeconnectedlinenum','transfereeaccountcode','transfereecontext','transfereelinkedid','isexternal','extension','CreateVoiceTransferReport','attendedTransfer','origtransfererchannel','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinename','transfertargetcontext','transfertargetexten','transfertargetlinkedid','origtransfererexten','attended','../client','blindTransfer','Request','transfererchannel'];(function(_0x165834,_0x49e6d7){var _0x2f8df1=function(_0x224230){while(--_0x224230){_0x165834['push'](_0x165834['shift']());}};_0x2f8df1(++_0x49e6d7);}(_0x7212,0x17d));var _0x2721=function(_0x52a0f5,_0x12d338){_0x52a0f5=_0x52a0f5-0x0;var _0x97d4f1=_0x7212[_0x52a0f5];return _0x97d4f1;};'use strict';var client=require(_0x2721('0x0'));exports[_0x2721('0x1')]=function(_0x4db675){return client[_0x2721('0x2')]('CreateVoiceTransferReport',{'body':{'result':_0x4db675['result'],'transfererchannel':_0x4db675[_0x2721('0x3')],'transferercalleridnum':_0x4db675[_0x2721('0x4')],'transferercalleridname':_0x4db675[_0x2721('0x5')],'transfererconnectedlinenum':_0x4db675['transfererconnectedlinenum'],'transfererconnectedlinename':_0x4db675[_0x2721('0x6')],'transfereraccountcode':_0x4db675[_0x2721('0x7')],'transferercontext':_0x4db675['transferercontext'],'transfererexten':_0x4db675[_0x2721('0x8')],'transfererlinkedid':_0x4db675['transfererlinkedid'],'transfereechannel':_0x4db675[_0x2721('0x9')],'transfereecalleridnum':_0x4db675['transfereecalleridnum'],'transfereecalleridname':_0x4db675[_0x2721('0xa')],'transfereeconnectedlinenum':_0x4db675[_0x2721('0xb')],'transfereeconnectedlinename':_0x4db675['transfereeconnectedlinename'],'transfereeaccountcode':_0x4db675[_0x2721('0xc')],'transfereecontext':_0x4db675[_0x2721('0xd')],'transfereeexten':_0x4db675['transfereeexten'],'transfereelinkedid':_0x4db675[_0x2721('0xe')],'isexternal':_0x4db675[_0x2721('0xf')],'context':_0x4db675['context'],'extension':_0x4db675[_0x2721('0x10')],'type':'blind'},'log':_0x2721('0x11')});};exports[_0x2721('0x12')]=function(_0x383edd){return client[_0x2721('0x2')](_0x2721('0x11'),{'body':{'result':_0x383edd['result'],'transfererchannel':_0x383edd[_0x2721('0x13')],'transferercalleridnum':_0x383edd['origtransferercalleridnum'],'transferercalleridname':_0x383edd[_0x2721('0x14')],'transfererconnectedlinenum':_0x383edd[_0x2721('0x15')],'transfererconnectedlinename':_0x383edd[_0x2721('0x16')],'transfereraccountcode':_0x383edd[_0x2721('0x17')],'transferercontext':_0x383edd[_0x2721('0x18')],'transfererexten':_0x383edd[_0x2721('0x19')],'transfererlinkedid':_0x383edd['origtransfererlinkedid'],'transfereechannel':_0x383edd[_0x2721('0x1a')],'transfereecalleridnum':_0x383edd[_0x2721('0x1b')],'transfereecalleridname':_0x383edd[_0x2721('0x1c')],'transfereeconnectedlinenum':_0x383edd['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x383edd[_0x2721('0x1d')],'transfereeaccountcode':_0x383edd['transfertargetaccountcode'],'transfereecontext':_0x383edd[_0x2721('0x1e')],'transfereeexten':_0x383edd[_0x2721('0x1f')],'transfereelinkedid':_0x383edd[_0x2721('0x20')],'isexternal':_0x383edd[_0x2721('0xf')],'context':_0x383edd['origtransferercontext'],'extension':_0x383edd[_0x2721('0x21')],'type':_0x2721('0x22')},'log':'CreateVoiceTransferReport'});};
\ No newline at end of file
+var _0xaa8b=['transfereeconnectedlinename','transfereeaccountcode','transfereecontext','transfereeexten','transfereelinkedid','context','blind','origtransfererchannel','origtransferercalleridnum','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','isexternal','origtransfererexten','attended','../client','blindTransfer','Request','CreateVoiceTransferReport','result','transfererchannel','transferercalleridname','transfererconnectedlinenum','transfererconnectedlinename','transfereraccountcode','transferercontext','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereecalleridname','transfereeconnectedlinenum'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xaa8b,0x6d));var _0xbaa8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaa8b[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xbaa8('0x0'));exports[_0xbaa8('0x1')]=function(_0x4db356){return client[_0xbaa8('0x2')](_0xbaa8('0x3'),{'body':{'result':_0x4db356[_0xbaa8('0x4')],'transfererchannel':_0x4db356[_0xbaa8('0x5')],'transferercalleridnum':_0x4db356['transferercalleridnum'],'transferercalleridname':_0x4db356[_0xbaa8('0x6')],'transfererconnectedlinenum':_0x4db356[_0xbaa8('0x7')],'transfererconnectedlinename':_0x4db356[_0xbaa8('0x8')],'transfereraccountcode':_0x4db356[_0xbaa8('0x9')],'transferercontext':_0x4db356[_0xbaa8('0xa')],'transfererexten':_0x4db356[_0xbaa8('0xb')],'transfererlinkedid':_0x4db356[_0xbaa8('0xc')],'transfereechannel':_0x4db356[_0xbaa8('0xd')],'transfereecalleridnum':_0x4db356[_0xbaa8('0xe')],'transfereecalleridname':_0x4db356[_0xbaa8('0xf')],'transfereeconnectedlinenum':_0x4db356[_0xbaa8('0x10')],'transfereeconnectedlinename':_0x4db356[_0xbaa8('0x11')],'transfereeaccountcode':_0x4db356[_0xbaa8('0x12')],'transfereecontext':_0x4db356[_0xbaa8('0x13')],'transfereeexten':_0x4db356[_0xbaa8('0x14')],'transfereelinkedid':_0x4db356[_0xbaa8('0x15')],'isexternal':_0x4db356['isexternal'],'context':_0x4db356[_0xbaa8('0x16')],'extension':_0x4db356['extension'],'type':_0xbaa8('0x17')},'log':_0xbaa8('0x3')});};exports['attendedTransfer']=function(_0x4bebbf){return client['Request'](_0xbaa8('0x3'),{'body':{'result':_0x4bebbf['result'],'transfererchannel':_0x4bebbf[_0xbaa8('0x18')],'transferercalleridnum':_0x4bebbf[_0xbaa8('0x19')],'transferercalleridname':_0x4bebbf['origtransferercalleridname'],'transfererconnectedlinenum':_0x4bebbf[_0xbaa8('0x1a')],'transfererconnectedlinename':_0x4bebbf[_0xbaa8('0x1b')],'transfereraccountcode':_0x4bebbf[_0xbaa8('0x1c')],'transferercontext':_0x4bebbf[_0xbaa8('0x1d')],'transfererexten':_0x4bebbf[_0xbaa8('0x1e')],'transfererlinkedid':_0x4bebbf['origtransfererlinkedid'],'transfereechannel':_0x4bebbf[_0xbaa8('0x1f')],'transfereecalleridnum':_0x4bebbf[_0xbaa8('0x20')],'transfereecalleridname':_0x4bebbf[_0xbaa8('0x21')],'transfereeconnectedlinenum':_0x4bebbf['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x4bebbf[_0xbaa8('0x22')],'transfereeaccountcode':_0x4bebbf[_0xbaa8('0x23')],'transfereecontext':_0x4bebbf[_0xbaa8('0x24')],'transfereeexten':_0x4bebbf[_0xbaa8('0x25')],'transfereelinkedid':_0x4bebbf[_0xbaa8('0x26')],'isexternal':_0x4bebbf[_0xbaa8('0x27')],'context':_0x4bebbf['origtransferercontext'],'extension':_0x4bebbf[_0xbaa8('0x28')],'type':_0xbaa8('0x29')},'log':_0xbaa8('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7039=['active','callerid','Interval','push','values','length','find','uniqueid','%s.%s','filename','format','MixMonitor','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','mixmonitorid','status','rec','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','voicechannel','map','channels','channel','StopMixMonitor','destinationchannel','stop','wav','StopMixMonitor\x20Success','voicequeuechannel','queueChannels','voicequeuechannelhangup','Hangup','Redirect','exten','context','trunks','campaigns','run','event','emit','faxAccounts','send','checkAfterSend','server','listen','127.0.0.1','RPC\x20listening\x20on\x20port:','util','jayson/promise','validate','bluebird','../../../config/environment','../ami','%s/%s','SIP','timers','timer','updateAcw','agents','QueuePause','isConnected','error','asterisk','username','ami\x20disconnected','join','keys','action','Reload','Action','then','message','catch','command','Command','content','voiceQueues','hasOwnProperty','name','strategy','answered','pTalking','sumBillable','sumDuration','sumHoldTime','type','unmanaged','abandoned','waiting','outbound','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalLowerLimit','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','originated','Trunk'];(function(_0x475b7d,_0x3e1f95){var _0x2ad527=function(_0x191883){while(--_0x191883){_0x475b7d['push'](_0x475b7d['shift']());}};_0x2ad527(++_0x3e1f95);}(_0x7039,0x121));var _0x9703=function(_0x3ed47f,_0x10db92){_0x3ed47f=_0x3ed47f-0x0;var _0x402d01=_0x7039[_0x3ed47f];return _0x402d01;};'use strict';var _=require('lodash');var util=require(_0x9703('0x0'));var jayson=require(_0x9703('0x1'));var schema=require(_0x9703('0x2'));var BPromise=require(_0x9703('0x3'));var moment=require('moment');var config=require(_0x9703('0x4'));var properties=require('../properties');var ami=require(_0x9703('0x5'));exports['listen']=function(_0x8fcc01,_0x3cd594,_0x49b9d3){return new BPromise(function(_0x4b4069,_0x89ad08){var _0x1dfe39={'QueuePause':function(_0x5cf1ba){return new Promise(function(_0x46afb2,_0x246c70){var _0x19fc69=util['format'](_0x9703('0x6'),_0x9703('0x7'),_0x5cf1ba['name']);if(_0x8fcc01['timers']&&_0x8fcc01[_0x9703('0x8')][_0x19fc69]&&_0x8fcc01['timers'][_0x19fc69][_0x9703('0x9')]){_0x8fcc01[_0x9703('0x8')][_0x19fc69][_0x9703('0xa')]();}if(_0x8fcc01['agents'][_0x19fc69]){_0x8fcc01[_0x9703('0xb')][_0x19fc69]['updateStatusRealtime']({'statePause':_0x5cf1ba['pause']?!![]:![]});}_0x46afb2({'code':0xc8,'message':_0x9703('0xc')});});},'Reload':function(_0x21ade5){var _0x563621=this;return new Promise(function(_0x10fd0b,_0xc83a08){if(ami[_0x9703('0xd')]()==![]){return _0xc83a08(_0x563621[_0x9703('0xe')](0x1f4,[config[_0x9703('0xf')]['ip'],config[_0x9703('0xf')][_0x9703('0x10')],_0x9703('0x11')][_0x9703('0x12')]('\x20')));}_0x21ade5=_['pick'](_0x21ade5,_[_0x9703('0x13')](properties['module']));_0x21ade5[_0x9703('0x14')]=_0x9703('0x15');return ami[_0x9703('0x16')](_0x21ade5)[_0x9703('0x17')](function(_0x56ef68){_0x10fd0b({'code':0xc8,'message':_0x56ef68[_0x9703('0x18')]});})[_0x9703('0x19')](function(_0x4027aa){_0xc83a08(_0x563621[_0x9703('0xe')](0x1f5,_0x4027aa[_0x9703('0x18')]));});});},'Command':function(_0x4f0e4d){var _0x2a917e=this;return new Promise(function(_0x499241,_0x44787d){if(ami['isConnected']()==![]){return _0x44787d(_0x2a917e['error'](0x1f4,[config['asterisk']['ip'],config[_0x9703('0xf')]['username'],_0x9703('0x11')][_0x9703('0x12')]('\x20')));}_0x4f0e4d=_['pick'](_0x4f0e4d,_0x9703('0x1a'));_0x4f0e4d['action']=_0x9703('0x1b');return ami[_0x9703('0x16')](_0x4f0e4d)[_0x9703('0x17')](function(_0x18b8bf){_0x499241({'code':0xc8,'message':_0x18b8bf[_0x9703('0x1c')]});})[_0x9703('0x19')](function(_0x2efae1){_0x44787d(_0x2a917e['error'](0x1f5,_0x2efae1['message']));});});},'VoiceQueues':function(_0x488972){return new Promise(function(_0x4c5871,_0x3eb6b5){var _0x2e59f1=[];for(var _0x3e5928 in _0x8fcc01[_0x9703('0x1d')]){if(_0x8fcc01[_0x9703('0x1d')][_0x9703('0x1e')](_0x3e5928)){var _0x1b3db5=_0x8fcc01[_0x9703('0x1d')][_0x3e5928];var _0x4d6a1={'id':_0x1b3db5['id'],'name':_0x1b3db5[_0x9703('0x1f')],'strategy':_0x1b3db5[_0x9703('0x20')],'answered':_0x1b3db5[_0x9703('0x21')],'available':_0x1b3db5['available'],'loggedIn':_0x1b3db5['loggedIn'],'pTalking':_0x1b3db5[_0x9703('0x22')],'sumBillable':_0x1b3db5[_0x9703('0x23')],'sumDuration':_0x1b3db5[_0x9703('0x24')],'sumHoldTime':_0x1b3db5[_0x9703('0x25')]||0x0,'talking':_0x1b3db5['talking'],'total':_0x1b3db5['total'],'type':_0x1b3db5[_0x9703('0x26')],'unmanaged':_0x1b3db5[_0x9703('0x27')],'abandoned':_0x1b3db5[_0x9703('0x28')],'waiting':_0x1b3db5[_0x9703('0x29')],'loggedInDb':_0x1b3db5['loggedInDb']};if(_0x1b3db5[_0x9703('0x26')]===_0x9703('0x2a')){_0x4d6a1[_0x9703('0x2b')]=_0x1b3db5[_0x9703('0x2b')];_0x4d6a1['dialMethod']=_0x1b3db5['dialMethod'];_0x4d6a1[_0x9703('0x2c')]=_0x1b3db5['dialOriginateCallerIdName'];_0x4d6a1[_0x9703('0x2d')]=_0x1b3db5[_0x9703('0x2d')];_0x4d6a1[_0x9703('0x2e')]=_0x1b3db5[_0x9703('0x2e')];_0x4d6a1[_0x9703('0x2f')]=_0x1b3db5[_0x9703('0x2f')];_0x4d6a1['outboundAnswerAgiCallsDay']=_0x1b3db5[_0x9703('0x30')];_0x4d6a1[_0x9703('0x31')]=_0x1b3db5[_0x9703('0x31')];_0x4d6a1[_0x9703('0x32')]=_0x1b3db5[_0x9703('0x32')];_0x4d6a1['outboundBusyCallsDay']=_0x1b3db5['outboundBusyCallsDay'];_0x4d6a1[_0x9703('0x33')]=_0x1b3db5['outboundCongestionCallsDay'];_0x4d6a1[_0x9703('0x34')]=_0x1b3db5['outboundDropCallsDayACS'];_0x4d6a1[_0x9703('0x35')]=_0x1b3db5[_0x9703('0x35')];_0x4d6a1['outboundDropCallsDayTimeout']=_0x1b3db5[_0x9703('0x36')];_0x4d6a1[_0x9703('0x37')]=_0x1b3db5[_0x9703('0x37')];_0x4d6a1[_0x9703('0x38')]=_0x1b3db5['outboundNoSuchCallsDay'];_0x4d6a1[_0x9703('0x39')]=_0x1b3db5[_0x9703('0x39')];_0x4d6a1[_0x9703('0x3a')]=_0x1b3db5[_0x9703('0x3a')];_0x4d6a1['outboundRejectCallsDay']=_0x1b3db5[_0x9703('0x3b')];_0x4d6a1[_0x9703('0x3c')]=_0x1b3db5[_0x9703('0x3c')];_0x4d6a1['predictiveIntervalAnsweredCalls']=_0x1b3db5['predictiveIntervalAnsweredCalls'];_0x4d6a1[_0x9703('0x3d')]=_0x1b3db5[_0x9703('0x3d')];_0x4d6a1['predictiveIntervalAvgTalktime']=_0x1b3db5['predictiveIntervalAvgTalktime'];_0x4d6a1['predictiveIntervalDroppedCallsCallersExit']=_0x1b3db5['predictiveIntervalDroppedCallsCallersExit'];_0x4d6a1[_0x9703('0x3e')]=_0x1b3db5['predictiveIntervalDroppedCallsTimeout'];_0x4d6a1[_0x9703('0x3f')]=_0x1b3db5[_0x9703('0x3f')];_0x4d6a1[_0x9703('0x40')]=_0x1b3db5['predictiveIntervalErlangCallsDroppedCalls'];_0x4d6a1['predictiveIntervalHitRate']=_0x1b3db5[_0x9703('0x41')];_0x4d6a1[_0x9703('0x42')]=_0x1b3db5[_0x9703('0x42')];_0x4d6a1[_0x9703('0x43')]=_0x1b3db5[_0x9703('0x43')];_0x4d6a1['predictiveIntervalPauses']=_0x1b3db5['predictiveIntervalPauses'];_0x4d6a1[_0x9703('0x44')]=_0x1b3db5[_0x9703('0x44')];_0x4d6a1[_0x9703('0x18')]=_0x1b3db5[_0x9703('0x18')];_0x4d6a1[_0x9703('0x45')]=_0x1b3db5[_0x9703('0x45')];}if(_0x1b3db5[_0x9703('0x46')]){_0x4d6a1[_0x9703('0x46')]={'id':_0x1b3db5['Trunk']['id'],'name':_0x1b3db5['Trunk'][_0x9703('0x1f')],'active':_0x1b3db5['Trunk'][_0x9703('0x47')],'callerid':_0x1b3db5['Trunk'][_0x9703('0x48')]};}if(_0x1b3db5[_0x9703('0x49')]){_0x4d6a1[_0x9703('0x49')]={'id':_0x1b3db5[_0x9703('0x49')]['id'],'name':_0x1b3db5['Interval'][_0x9703('0x1f')]};}_0x2e59f1[_0x9703('0x4a')](_0x4d6a1);}}_0x4c5871({'count':_0x2e59f1['length'],'rows':_0x2e59f1});});},'VoiceChannels':function(_0x22f155){return new Promise(function(_0x4e5ea2,_0x47d69e){var _0x973164=_[_0x9703('0x4b')](_0x8fcc01['channels']);_0x4e5ea2({'count':_0x973164[_0x9703('0x4c')],'rows':_0x973164});});},'VoiceChannelMixMonitor':function(_0x182660){var _0x306892=this;return new Promise(function(_0x2c2f9f,_0xd4e81e){if(ami[_0x9703('0xd')]()==![]){return _0xd4e81e(_0x306892[_0x9703('0xe')](0x1f4,[config[_0x9703('0xf')]['ip'],config['asterisk'][_0x9703('0x10')],_0x9703('0x11')]['join']('\x20')));}var _0x287628=schema(properties['voicechannel'])['validate'](_0x182660);if(_0x287628[_0x9703('0x4c')]>0x0){return _0xd4e81e(_0x306892['error'](0x1f4,_['map'](_0x287628,_0x9703('0x18'))[_0x9703('0x12')](',\x20')));}var _0x3af635=_[_0x9703('0x4d')](_0x8fcc01['channels'],{'uniqueid':_0x182660[_0x9703('0x4e')]});if(_0x3af635&&_0x3af635['channel']){var _0x2d95b5=util['format'](_0x9703('0x4f'),_0x182660[_0x9703('0x50')]||_0x182660[_0x9703('0x4e')],_0x182660[_0x9703('0x51')]||'wav');return ami[_0x9703('0x16')]({'action':_0x9703('0x52'),'channel':_0x3af635['channel'],'file':_0x2d95b5,'options':'ai(mixmonitorid)'})[_0x9703('0x17')](function(_0x2ce595){var _0x4ebd90=_[_0x9703('0x4d')](_0x3af635[_0x9703('0x53')],{'filename':_0x9703('0x54')+_0x2d95b5[_0x9703('0x55')]()});if(_[_0x9703('0x56')](_0x4ebd90)){_0x3af635['monitors'][_0x9703('0x4a')]({'filename':_0x9703('0x54')+_0x2d95b5[_0x9703('0x55')](),'createdAt':moment()[_0x9703('0x51')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x2ce595[_0x9703('0x57')],'status':'rec'});}else{_0x4ebd90[_0x9703('0x57')]=_0x2ce595[_0x9703('0x57')];_0x4ebd90[_0x9703('0x58')]=_0x9703('0x59');}_0x2c2f9f({'code':0xc8,'message':[_0x182660['uniqueid'],_0x9703('0x5a'),_0x2ce595[_0x9703('0x57')]][_0x9703('0x12')]('\x20'),'mixmonitorid':_0x2ce595[_0x9703('0x57')]});})['catch'](function(_0x4fd32d){_0xd4e81e(_0x306892[_0x9703('0xe')](0x1f5,[_0x182660[_0x9703('0x4e')],_0x4fd32d[_0x9703('0x18')][_0x9703('0x55')]()]['join']('\x20')));});}else{return _0xd4e81e(_0x306892[_0x9703('0xe')](0x1f5,_0x9703('0x5b')));}});},'VoiceChannelStopMixMonitor':function(_0x369e79){var _0x5275a4=this;return new Promise(function(_0x333410,_0x133905){if(ami[_0x9703('0xd')]()==![]){return _0x133905(_0x5275a4[_0x9703('0xe')](0x1f4,[config[_0x9703('0xf')]['ip'],config[_0x9703('0xf')][_0x9703('0x10')],_0x9703('0x11')][_0x9703('0x12')]('\x20')));}var _0xb08ff9=schema(properties[_0x9703('0x5c')])[_0x9703('0x2')](_0x369e79);if(_0xb08ff9[_0x9703('0x4c')]>0x0){return _0x133905(_0x5275a4['error'](0x1f4,_[_0x9703('0x5d')](_0xb08ff9,_0x9703('0x18'))[_0x9703('0x12')](',\x20')));}var _0x1c56bc=_['find'](_0x8fcc01[_0x9703('0x5e')],{'uniqueid':_0x369e79['uniqueid']});if(_0x1c56bc){return BPromise['resolve']()['then'](function(){if(_0x1c56bc[_0x9703('0x5f')]){return ami['Action']({'action':_0x9703('0x60'),'channel':_0x1c56bc['channel'],'mixmonitorid':_0x369e79[_0x9703('0x57')]})[_0x9703('0x19')](function(_0x414354){});}})[_0x9703('0x17')](function(){if(_0x1c56bc[_0x9703('0x61')]){return ami[_0x9703('0x16')]({'action':_0x9703('0x60'),'channel':_0x1c56bc[_0x9703('0x61')],'mixmonitorid':_0x369e79[_0x9703('0x57')]})[_0x9703('0x19')](function(_0x25e7dc){});}})[_0x9703('0x17')](function(_0x2d5f05){var _0x86b3f2=_[_0x9703('0x4d')](_0x1c56bc[_0x9703('0x53')],{'mixmonitorid':_0x369e79[_0x9703('0x57')]});if(_0x86b3f2){_0x86b3f2[_0x9703('0x58')]=_0x9703('0x62');}})['then'](function(){var _0x4db499=util[_0x9703('0x51')](_0x9703('0x4f'),_0x369e79['filename']||_0x369e79[_0x9703('0x4e')],_0x369e79['format']||_0x9703('0x63'));var _0x12e767=_['find'](_0x1c56bc[_0x9703('0x53')],{'filename':'/var/spool/asterisk/monitor/'+_0x4db499[_0x9703('0x55')]()});if(_0x12e767){_0x12e767[_0x9703('0x58')]='stop';}})[_0x9703('0x17')](function(){_0x333410({'code':0xc8,'message':[_0x369e79[_0x9703('0x4e')],_0x9703('0x64')][_0x9703('0x12')]('\x20')});})[_0x9703('0x19')](function(_0x5a66c6){_0x133905(_0x5275a4[_0x9703('0xe')](0x1f5,[_0x369e79[_0x9703('0x4e')],_0x5a66c6[_0x9703('0x18')]['toLowerCase']()][_0x9703('0x12')]('\x20')));});}else{return _0x133905(_0x5275a4['error'](0x1f5,_0x9703('0x5b')));}});},'VoiceQueuesChannels':function(_0x2546c4){return new Promise(function(_0x5927af,_0x521b58){var _0x59adf3=_[_0x9703('0x4b')](_0x8fcc01['queueChannels']);_0x5927af({'count':_0x59adf3['length'],'rows':_0x59adf3});});},'VoiceQueuesChannel':function(_0x461461){var _0x6348d1=this;return new Promise(function(_0x3e3a51,_0x4791d0){var _0x26b5c9=schema(properties[_0x9703('0x65')])[_0x9703('0x2')](_0x461461);if(_0x26b5c9[_0x9703('0x4c')]>0x0){return _0x4791d0(_0x6348d1[_0x9703('0xe')](0x1f4,_[_0x9703('0x5d')](_0x26b5c9,_0x9703('0x18'))[_0x9703('0x12')](',\x20')));}var _0x464298=_[_0x9703('0x4d')](_0x8fcc01[_0x9703('0x66')],{'uniqueid':_0x461461[_0x9703('0x4e')]});if(_0x464298){_0x3e3a51(_0x464298);}else{return _0x4791d0(_0x6348d1[_0x9703('0xe')](0x1f5,_0x9703('0x5b')));}});},'VoiceQueuesChannelHangup':function(_0x5cad7e){var _0xcc0edb=this;return new Promise(function(_0x5ced08,_0x3ea0e4){if(ami['isConnected']()==![]){return _0x3ea0e4(_0xcc0edb['error'](0x1f4,[config[_0x9703('0xf')]['ip'],config['asterisk'][_0x9703('0x10')],_0x9703('0x11')][_0x9703('0x12')]('\x20')));}var _0x16d4d7=schema(properties[_0x9703('0x67')])[_0x9703('0x2')](_0x5cad7e);if(_0x16d4d7[_0x9703('0x4c')]>0x0){return _0x3ea0e4(_0xcc0edb[_0x9703('0xe')](0x1f4,_[_0x9703('0x5d')](_0x16d4d7,_0x9703('0x18'))[_0x9703('0x12')](',\x20')));}var _0x40a26c=_['find'](_0x8fcc01[_0x9703('0x66')],{'uniqueid':_0x5cad7e[_0x9703('0x4e')]});if(_0x40a26c&&_0x40a26c[_0x9703('0x5f')]){return ami[_0x9703('0x16')]({'action':_0x9703('0x68'),'channel':_0x40a26c['channel']})[_0x9703('0x17')](function(_0x5f241b){_0x5ced08({'code':0xc8,'message':[_0x5cad7e[_0x9703('0x4e')],_0x5f241b['message']['toLowerCase']()][_0x9703('0x12')]('\x20')});})[_0x9703('0x19')](function(_0x52b163){_0x3ea0e4(_0xcc0edb[_0x9703('0xe')](0x1f5,[_0x5cad7e['uniqueid'],_0x52b163[_0x9703('0x18')][_0x9703('0x55')]()][_0x9703('0x12')]('\x20')));});}else{return _0x3ea0e4(_0xcc0edb[_0x9703('0xe')](0x1f5,_0x9703('0x5b')));}});},'VoiceQueuesChannelRedirect':function(_0x5d6061){var _0x1de87f=this;return new Promise(function(_0x240ea9,_0x4c423a){if(ami[_0x9703('0xd')]()==![]){return _0x4c423a(_0x1de87f[_0x9703('0xe')](0x1f4,[config['asterisk']['ip'],config['asterisk'][_0x9703('0x10')],_0x9703('0x11')]['join']('\x20')));}var _0x3d443c=schema(properties['voicequeuechannelredirect'])['validate'](_0x5d6061);if(_0x3d443c['length']>0x0){return _0x4c423a(_0x1de87f['error'](0x1f4,_[_0x9703('0x5d')](_0x3d443c,_0x9703('0x18'))['join'](',\x20')));}var _0x3f8f38=_[_0x9703('0x4d')](_0x8fcc01['queueChannels'],{'uniqueid':_0x5d6061['uniqueid']});if(_0x3f8f38&&_0x3f8f38[_0x9703('0x5f')]){return ami['Action']({'action':_0x9703('0x69'),'channel':_0x3f8f38[_0x9703('0x5f')],'exten':_0x5d6061[_0x9703('0x6a')],'context':_0x5d6061[_0x9703('0x6b')]||_0x3f8f38[_0x9703('0x6b')],'priority':0x1})[_0x9703('0x17')](function(_0x43c975){_0x240ea9({'code':0xc8,'message':[_0x5d6061[_0x9703('0x4e')],_0x43c975[_0x9703('0x18')]['toLowerCase']()][_0x9703('0x12')]('\x20')});})[_0x9703('0x19')](function(_0x4aaf87){_0x4c423a(_0x1de87f[_0x9703('0xe')](0x1f5,[_0x5d6061['uniqueid'],_0x4aaf87[_0x9703('0x18')]['toLowerCase']()][_0x9703('0x12')]('\x20')));});}else{return _0x4c423a(_0x1de87f['error'](0x1f5,_0x9703('0x5b')));}});},'Agents':function(_0x39118b){return new Promise(function(_0x1607e7,_0x2ebb16){var _0x2b925f=_[_0x9703('0x4b')](_0x8fcc01[_0x9703('0xb')]);_0x1607e7({'count':_0x2b925f[_0x9703('0x4c')],'rows':_0x2b925f});});},'Telephones':function(_0x378c24){return new Promise(function(_0x4d0b74,_0x575e36){var _0x26f487=_[_0x9703('0x4b')](_0x8fcc01['telephones']);_0x4d0b74({'count':_0x26f487['length'],'rows':_0x26f487});});},'Trunks':function(_0x3ffe13){return new Promise(function(_0x4a615b,_0x7cc33e){var _0xc48400=_[_0x9703('0x4b')](_0x8fcc01[_0x9703('0x6c')]);_0x4a615b({'count':_0xc48400[_0x9703('0x4c')],'rows':_0xc48400});});},'OutboundChannels':function(_0x150744){return new Promise(function(_0x1e8caf,_0x5e823f){var _0x37ced6=_[_0x9703('0x4b')](_0x8fcc01['outboundChannels']);_0x1e8caf({'count':_0x37ced6['length'],'rows':_0x37ced6});});},'Outbound':function(_0x28bba5){return new Promise(function(_0x255832,_0x53a4df){_0x255832(_0x8fcc01[_0x9703('0x2a')]);});},'Campaigns':function(_0x306360){return new Promise(function(_0x10f41a,_0x1df96f){var _0x504c7d=_[_0x9703('0x4b')](_0x8fcc01[_0x9703('0x6d')]);_0x10f41a({'count':_0x504c7d[_0x9703('0x4c')],'rows':_0x504c7d});});},'VoiceQueuesPreview':function(_0x5a3f9f){var _0x2af4b3=this;return new Promise(function(_0xa6abc6,_0x3fe8eb){_0x3cd594[_0x9703('0x6e')](_0x5a3f9f['id'])[_0x9703('0x17')](function(_0x3e47ea){_0xa6abc6({'code':0xc8,'message':_0x3e47ea[_0x9703('0x18')]});})[_0x9703('0x19')](function(_0x1c8cda){_0x3fe8eb(_0x2af4b3[_0x9703('0xe')](0x1f4,_0x1c8cda['message']));});});},'EventManager':function(_0x17c2a6){var _0x39feae=this;return new Promise(function(_0xc09696,_0xada0cf){if(!_0x17c2a6[_0x9703('0x6f')]){return _0xada0cf(_0x39feae['error'](0x1f4,'Event\x20name\x20mandatory'));}ami[_0x9703('0x70')]('custom:'+_0x17c2a6[_0x9703('0x6f')],_0x17c2a6['message']);_0xc09696({'code':0xc8,'message':_0x17c2a6});});},'FaxAccounts':function(_0x1522b1){return new Promise(function(_0x11fbde,_0x284e29){var _0x398cae=_[_0x9703('0x4b')](_0x8fcc01[_0x9703('0x71')]);_0x11fbde({'count':_0x398cae[_0x9703('0x4c')],'rows':_0x398cae});});},'SendFax':function(_0x419061){var _0x1d8888=this;return new Promise(function(_0x5b0540,_0xab0a17){_0x49b9d3[_0x9703('0x72')](_0x419061)[_0x9703('0x17')](function(_0x5cc1d6){_0x5b0540({'code':0xc8,'message':_0x5cc1d6['message']});})[_0x9703('0x19')](function(_0x5e17eb){_0xab0a17(_0x1d8888[_0x9703('0xe')](0x1f4,_0x5e17eb[_0x9703('0x18')]));});});},'CheckAfterSend':function(_0x44732c){var _0xf6e49e=this;return new Promise(function(_0x3373e8,_0x322246){_0x49b9d3[_0x9703('0x73')](_0x44732c)[_0x9703('0x17')](function(_0xa8eb52){_0x3373e8({'code':0xc8,'message':_0xa8eb52[_0x9703('0x18')]});})[_0x9703('0x19')](function(_0x14411f){_0x322246(_0xf6e49e['error'](0x1f4,_0x14411f['message']));});});}};var _0x41e052=jayson[_0x9703('0x74')](_0x1dfe39)['http']();_0x41e052['on'](_0x9703('0xe'),function(_0x357d53){return _0x89ad08(_0x357d53);});_0x41e052[_0x9703('0x75')](0x232a,_0x9703('0x76'),function(){console['log']('AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232a);return _0x4b4069(_0x9703('0x77')+0x232a);});});};
\ No newline at end of file
+var _0xd5b4=['timers','timer','updateAcw','agents','QueuePause','isConnected','error','asterisk','username','join','pick','module','action','Reload','Action','then','message','Command','content','catch','voiceQueues','hasOwnProperty','strategy','answered','available','pTalking','sumBillable','sumDuration','sumHoldTime','talking','total','waiting','loggedInDb','type','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalLowerLimit','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated','Trunk','name','callerid','Interval','push','length','values','channels','ami\x20disconnected','voicechannel','validate','map','uniqueid','%s.%s','filename','wav','MixMonitor','ai(mixmonitorid)','find','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','mixmonitorid','rec','status','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','resolve','channel','StopMixMonitor','destinationchannel','stop','StopMixMonitor\x20Success','queueChannels','voicequeuechannel','Hangup','voicequeuechannelredirect','Redirect','exten','context','telephones','trunks','outboundChannels','run','event','Event\x20name\x20mandatory','emit','faxAccounts','send','checkAfterSend','server','127.0.0.1','lodash','jayson/promise','moment','../../../config/environment','../properties','../ami','listen','format','%s/%s','SIP'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0xd5b4,0xf8));var _0x4d5b=function(_0x37d546,_0x30348e){_0x37d546=_0x37d546-0x0;var _0x4705ea=_0xd5b4[_0x37d546];return _0x4705ea;};'use strict';var _=require(_0x4d5b('0x0'));var util=require('util');var jayson=require(_0x4d5b('0x1'));var schema=require('validate');var BPromise=require('bluebird');var moment=require(_0x4d5b('0x2'));var config=require(_0x4d5b('0x3'));var properties=require(_0x4d5b('0x4'));var ami=require(_0x4d5b('0x5'));exports[_0x4d5b('0x6')]=function(_0x7c54b9,_0x19449e,_0x576819){return new BPromise(function(_0x4fd696,_0x2fd828){var _0x2aaf1d={'QueuePause':function(_0x265e03){return new Promise(function(_0x5eb9ff,_0x2b5771){var _0x40cec7=util[_0x4d5b('0x7')](_0x4d5b('0x8'),_0x4d5b('0x9'),_0x265e03['name']);if(_0x7c54b9['timers']&&_0x7c54b9[_0x4d5b('0xa')][_0x40cec7]&&_0x7c54b9[_0x4d5b('0xa')][_0x40cec7][_0x4d5b('0xb')]){_0x7c54b9[_0x4d5b('0xa')][_0x40cec7][_0x4d5b('0xc')]();}if(_0x7c54b9['agents'][_0x40cec7]){_0x7c54b9[_0x4d5b('0xd')][_0x40cec7]['updateStatusRealtime']({'statePause':_0x265e03['pause']?!![]:![]});}_0x5eb9ff({'code':0xc8,'message':_0x4d5b('0xe')});});},'Reload':function(_0x138504){var _0xd9f954=this;return new Promise(function(_0x1d37bc,_0x1090bf){if(ami[_0x4d5b('0xf')]()==![]){return _0x1090bf(_0xd9f954[_0x4d5b('0x10')](0x1f4,[config[_0x4d5b('0x11')]['ip'],config[_0x4d5b('0x11')][_0x4d5b('0x12')],'ami\x20disconnected'][_0x4d5b('0x13')]('\x20')));}_0x138504=_[_0x4d5b('0x14')](_0x138504,_['keys'](properties[_0x4d5b('0x15')]));_0x138504[_0x4d5b('0x16')]=_0x4d5b('0x17');return ami[_0x4d5b('0x18')](_0x138504)[_0x4d5b('0x19')](function(_0x350c78){_0x1d37bc({'code':0xc8,'message':_0x350c78[_0x4d5b('0x1a')]});})['catch'](function(_0x5cf917){_0x1090bf(_0xd9f954[_0x4d5b('0x10')](0x1f5,_0x5cf917[_0x4d5b('0x1a')]));});});},'Command':function(_0x68803e){var _0x532a0b=this;return new Promise(function(_0x35a623,_0x120c84){if(ami[_0x4d5b('0xf')]()==![]){return _0x120c84(_0x532a0b[_0x4d5b('0x10')](0x1f4,[config[_0x4d5b('0x11')]['ip'],config[_0x4d5b('0x11')][_0x4d5b('0x12')],'ami\x20disconnected'][_0x4d5b('0x13')]('\x20')));}_0x68803e=_[_0x4d5b('0x14')](_0x68803e,'command');_0x68803e[_0x4d5b('0x16')]=_0x4d5b('0x1b');return ami[_0x4d5b('0x18')](_0x68803e)[_0x4d5b('0x19')](function(_0x18ccae){_0x35a623({'code':0xc8,'message':_0x18ccae[_0x4d5b('0x1c')]});})[_0x4d5b('0x1d')](function(_0x16d1bf){_0x120c84(_0x532a0b[_0x4d5b('0x10')](0x1f5,_0x16d1bf[_0x4d5b('0x1a')]));});});},'VoiceQueues':function(_0x166cf2){return new Promise(function(_0xecab80,_0x4d47a0){var _0x2f4d55=[];for(var _0x253743 in _0x7c54b9[_0x4d5b('0x1e')]){if(_0x7c54b9[_0x4d5b('0x1e')][_0x4d5b('0x1f')](_0x253743)){var _0x2832b6=_0x7c54b9[_0x4d5b('0x1e')][_0x253743];var _0x3a1c56={'id':_0x2832b6['id'],'name':_0x2832b6['name'],'strategy':_0x2832b6[_0x4d5b('0x20')],'answered':_0x2832b6[_0x4d5b('0x21')],'available':_0x2832b6[_0x4d5b('0x22')],'loggedIn':_0x2832b6['loggedIn'],'pTalking':_0x2832b6[_0x4d5b('0x23')],'sumBillable':_0x2832b6[_0x4d5b('0x24')],'sumDuration':_0x2832b6[_0x4d5b('0x25')],'sumHoldTime':_0x2832b6[_0x4d5b('0x26')]||0x0,'talking':_0x2832b6[_0x4d5b('0x27')],'total':_0x2832b6[_0x4d5b('0x28')],'type':_0x2832b6['type'],'unmanaged':_0x2832b6['unmanaged'],'abandoned':_0x2832b6['abandoned'],'waiting':_0x2832b6[_0x4d5b('0x29')],'loggedInDb':_0x2832b6[_0x4d5b('0x2a')]};if(_0x2832b6[_0x4d5b('0x2b')]===_0x4d5b('0x2c')){_0x3a1c56[_0x4d5b('0x2d')]=_0x2832b6['dialActive'];_0x3a1c56[_0x4d5b('0x2e')]=_0x2832b6['dialMethod'];_0x3a1c56['dialOriginateCallerIdName']=_0x2832b6[_0x4d5b('0x2f')];_0x3a1c56[_0x4d5b('0x30')]=_0x2832b6[_0x4d5b('0x30')];_0x3a1c56[_0x4d5b('0x31')]=_0x2832b6[_0x4d5b('0x31')];_0x3a1c56['dialPrefix']=_0x2832b6[_0x4d5b('0x32')];_0x3a1c56[_0x4d5b('0x33')]=_0x2832b6[_0x4d5b('0x33')];_0x3a1c56[_0x4d5b('0x34')]=_0x2832b6[_0x4d5b('0x34')];_0x3a1c56[_0x4d5b('0x35')]=_0x2832b6[_0x4d5b('0x35')];_0x3a1c56[_0x4d5b('0x36')]=_0x2832b6['outboundBusyCallsDay'];_0x3a1c56[_0x4d5b('0x37')]=_0x2832b6['outboundCongestionCallsDay'];_0x3a1c56[_0x4d5b('0x38')]=_0x2832b6[_0x4d5b('0x38')];_0x3a1c56[_0x4d5b('0x39')]=_0x2832b6[_0x4d5b('0x39')];_0x3a1c56[_0x4d5b('0x3a')]=_0x2832b6['outboundDropCallsDayTimeout'];_0x3a1c56['outboundNoAnswerCallsDay']=_0x2832b6[_0x4d5b('0x3b')];_0x3a1c56[_0x4d5b('0x3c')]=_0x2832b6[_0x4d5b('0x3c')];_0x3a1c56['outboundOriginateFailureCallsDay']=_0x2832b6[_0x4d5b('0x3d')];_0x3a1c56['outboundReCallsDay']=_0x2832b6[_0x4d5b('0x3e')];_0x3a1c56['outboundRejectCallsDay']=_0x2832b6['outboundRejectCallsDay'];_0x3a1c56[_0x4d5b('0x3f')]=_0x2832b6['outboundUnknownCallsDay'];_0x3a1c56['predictiveIntervalAnsweredCalls']=_0x2832b6[_0x4d5b('0x40')];_0x3a1c56['predictiveIntervalAvgHoldtime']=_0x2832b6[_0x4d5b('0x41')];_0x3a1c56['predictiveIntervalAvgTalktime']=_0x2832b6['predictiveIntervalAvgTalktime'];_0x3a1c56[_0x4d5b('0x42')]=_0x2832b6[_0x4d5b('0x42')];_0x3a1c56[_0x4d5b('0x43')]=_0x2832b6[_0x4d5b('0x43')];_0x3a1c56[_0x4d5b('0x44')]=_0x2832b6['predictiveIntervalErlangCalls'];_0x3a1c56[_0x4d5b('0x45')]=_0x2832b6[_0x4d5b('0x45')];_0x3a1c56[_0x4d5b('0x46')]=_0x2832b6['predictiveIntervalHitRate'];_0x3a1c56[_0x4d5b('0x47')]=_0x2832b6[_0x4d5b('0x47')];_0x3a1c56[_0x4d5b('0x48')]=_0x2832b6[_0x4d5b('0x48')];_0x3a1c56['predictiveIntervalPauses']=_0x2832b6[_0x4d5b('0x49')];_0x3a1c56[_0x4d5b('0x4a')]=_0x2832b6[_0x4d5b('0x4a')];_0x3a1c56[_0x4d5b('0x1a')]=_0x2832b6[_0x4d5b('0x1a')];_0x3a1c56[_0x4d5b('0x4b')]=_0x2832b6[_0x4d5b('0x4b')];}if(_0x2832b6['Trunk']){_0x3a1c56[_0x4d5b('0x4c')]={'id':_0x2832b6[_0x4d5b('0x4c')]['id'],'name':_0x2832b6[_0x4d5b('0x4c')][_0x4d5b('0x4d')],'active':_0x2832b6[_0x4d5b('0x4c')]['active'],'callerid':_0x2832b6[_0x4d5b('0x4c')][_0x4d5b('0x4e')]};}if(_0x2832b6[_0x4d5b('0x4f')]){_0x3a1c56[_0x4d5b('0x4f')]={'id':_0x2832b6[_0x4d5b('0x4f')]['id'],'name':_0x2832b6[_0x4d5b('0x4f')][_0x4d5b('0x4d')]};}_0x2f4d55[_0x4d5b('0x50')](_0x3a1c56);}}_0xecab80({'count':_0x2f4d55[_0x4d5b('0x51')],'rows':_0x2f4d55});});},'VoiceChannels':function(_0x232094){return new Promise(function(_0x4d0dda,_0x1f995d){var _0x1a8999=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0x53')]);_0x4d0dda({'count':_0x1a8999[_0x4d5b('0x51')],'rows':_0x1a8999});});},'VoiceChannelMixMonitor':function(_0x19123d){var _0x21b289=this;return new Promise(function(_0xf0e88f,_0x61bc0){if(ami[_0x4d5b('0xf')]()==![]){return _0x61bc0(_0x21b289[_0x4d5b('0x10')](0x1f4,[config[_0x4d5b('0x11')]['ip'],config['asterisk'][_0x4d5b('0x12')],_0x4d5b('0x54')][_0x4d5b('0x13')]('\x20')));}var _0x5ea5dd=schema(properties[_0x4d5b('0x55')])[_0x4d5b('0x56')](_0x19123d);if(_0x5ea5dd[_0x4d5b('0x51')]>0x0){return _0x61bc0(_0x21b289['error'](0x1f4,_[_0x4d5b('0x57')](_0x5ea5dd,_0x4d5b('0x1a'))[_0x4d5b('0x13')](',\x20')));}var _0x436335=_['find'](_0x7c54b9[_0x4d5b('0x53')],{'uniqueid':_0x19123d[_0x4d5b('0x58')]});if(_0x436335&&_0x436335['channel']){var _0xc2e8c4=util[_0x4d5b('0x7')](_0x4d5b('0x59'),_0x19123d[_0x4d5b('0x5a')]||_0x19123d[_0x4d5b('0x58')],_0x19123d[_0x4d5b('0x7')]||_0x4d5b('0x5b'));return ami[_0x4d5b('0x18')]({'action':_0x4d5b('0x5c'),'channel':_0x436335['channel'],'file':_0xc2e8c4,'options':_0x4d5b('0x5d')})[_0x4d5b('0x19')](function(_0x43cbdd){var _0x5c0a75=_[_0x4d5b('0x5e')](_0x436335[_0x4d5b('0x5f')],{'filename':_0x4d5b('0x60')+_0xc2e8c4[_0x4d5b('0x61')]()});if(_[_0x4d5b('0x62')](_0x5c0a75)){_0x436335[_0x4d5b('0x5f')]['push']({'filename':_0x4d5b('0x60')+_0xc2e8c4['toLowerCase'](),'createdAt':moment()[_0x4d5b('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x43cbdd[_0x4d5b('0x63')],'status':_0x4d5b('0x64')});}else{_0x5c0a75['mixmonitorid']=_0x43cbdd[_0x4d5b('0x63')];_0x5c0a75[_0x4d5b('0x65')]=_0x4d5b('0x64');}_0xf0e88f({'code':0xc8,'message':[_0x19123d['uniqueid'],_0x4d5b('0x66'),_0x43cbdd[_0x4d5b('0x63')]][_0x4d5b('0x13')]('\x20'),'mixmonitorid':_0x43cbdd['mixmonitorid']});})['catch'](function(_0x196940){_0x61bc0(_0x21b289[_0x4d5b('0x10')](0x1f5,[_0x19123d['uniqueid'],_0x196940[_0x4d5b('0x1a')][_0x4d5b('0x61')]()][_0x4d5b('0x13')]('\x20')));});}else{return _0x61bc0(_0x21b289[_0x4d5b('0x10')](0x1f5,_0x4d5b('0x67')));}});},'VoiceChannelStopMixMonitor':function(_0x1393c7){var _0x9af707=this;return new Promise(function(_0x22984e,_0x47498b){if(ami[_0x4d5b('0xf')]()==![]){return _0x47498b(_0x9af707[_0x4d5b('0x10')](0x1f4,[config[_0x4d5b('0x11')]['ip'],config['asterisk'][_0x4d5b('0x12')],_0x4d5b('0x54')][_0x4d5b('0x13')]('\x20')));}var _0x4284f0=schema(properties[_0x4d5b('0x55')])[_0x4d5b('0x56')](_0x1393c7);if(_0x4284f0[_0x4d5b('0x51')]>0x0){return _0x47498b(_0x9af707['error'](0x1f4,_[_0x4d5b('0x57')](_0x4284f0,_0x4d5b('0x1a'))[_0x4d5b('0x13')](',\x20')));}var _0x5b6d08=_[_0x4d5b('0x5e')](_0x7c54b9[_0x4d5b('0x53')],{'uniqueid':_0x1393c7[_0x4d5b('0x58')]});if(_0x5b6d08){return BPromise[_0x4d5b('0x68')]()['then'](function(){if(_0x5b6d08[_0x4d5b('0x69')]){return ami[_0x4d5b('0x18')]({'action':_0x4d5b('0x6a'),'channel':_0x5b6d08[_0x4d5b('0x69')],'mixmonitorid':_0x1393c7[_0x4d5b('0x63')]})['catch'](function(_0x37cef2){});}})[_0x4d5b('0x19')](function(){if(_0x5b6d08['destinationchannel']){return ami[_0x4d5b('0x18')]({'action':_0x4d5b('0x6a'),'channel':_0x5b6d08[_0x4d5b('0x6b')],'mixmonitorid':_0x1393c7[_0x4d5b('0x63')]})[_0x4d5b('0x1d')](function(_0x43ed9b){});}})[_0x4d5b('0x19')](function(_0x3fb6b1){var _0x3f9460=_[_0x4d5b('0x5e')](_0x5b6d08[_0x4d5b('0x5f')],{'mixmonitorid':_0x1393c7[_0x4d5b('0x63')]});if(_0x3f9460){_0x3f9460[_0x4d5b('0x65')]='stop';}})[_0x4d5b('0x19')](function(){var _0x4ab082=util[_0x4d5b('0x7')](_0x4d5b('0x59'),_0x1393c7[_0x4d5b('0x5a')]||_0x1393c7[_0x4d5b('0x58')],_0x1393c7[_0x4d5b('0x7')]||_0x4d5b('0x5b'));var _0x12172e=_['find'](_0x5b6d08[_0x4d5b('0x5f')],{'filename':_0x4d5b('0x60')+_0x4ab082[_0x4d5b('0x61')]()});if(_0x12172e){_0x12172e['status']=_0x4d5b('0x6c');}})[_0x4d5b('0x19')](function(){_0x22984e({'code':0xc8,'message':[_0x1393c7['uniqueid'],_0x4d5b('0x6d')][_0x4d5b('0x13')]('\x20')});})[_0x4d5b('0x1d')](function(_0x32ddf8){_0x47498b(_0x9af707[_0x4d5b('0x10')](0x1f5,[_0x1393c7[_0x4d5b('0x58')],_0x32ddf8['message'][_0x4d5b('0x61')]()]['join']('\x20')));});}else{return _0x47498b(_0x9af707[_0x4d5b('0x10')](0x1f5,_0x4d5b('0x67')));}});},'VoiceQueuesChannels':function(_0x258e1a){return new Promise(function(_0x46f9eb,_0x2bff29){var _0x8be666=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0x6e')]);_0x46f9eb({'count':_0x8be666[_0x4d5b('0x51')],'rows':_0x8be666});});},'VoiceQueuesChannel':function(_0x504981){var _0x38b56d=this;return new Promise(function(_0x2c7130,_0x481f3c){var _0x5c4f1b=schema(properties[_0x4d5b('0x6f')])[_0x4d5b('0x56')](_0x504981);if(_0x5c4f1b[_0x4d5b('0x51')]>0x0){return _0x481f3c(_0x38b56d[_0x4d5b('0x10')](0x1f4,_[_0x4d5b('0x57')](_0x5c4f1b,'message')[_0x4d5b('0x13')](',\x20')));}var _0x227783=_[_0x4d5b('0x5e')](_0x7c54b9[_0x4d5b('0x6e')],{'uniqueid':_0x504981[_0x4d5b('0x58')]});if(_0x227783){_0x2c7130(_0x227783);}else{return _0x481f3c(_0x38b56d['error'](0x1f5,_0x4d5b('0x67')));}});},'VoiceQueuesChannelHangup':function(_0x3c98d0){var _0x41c15c=this;return new Promise(function(_0x3377cd,_0x1c956c){if(ami['isConnected']()==![]){return _0x1c956c(_0x41c15c[_0x4d5b('0x10')](0x1f4,[config['asterisk']['ip'],config[_0x4d5b('0x11')][_0x4d5b('0x12')],'ami\x20disconnected'][_0x4d5b('0x13')]('\x20')));}var _0x398c89=schema(properties['voicequeuechannelhangup'])[_0x4d5b('0x56')](_0x3c98d0);if(_0x398c89[_0x4d5b('0x51')]>0x0){return _0x1c956c(_0x41c15c[_0x4d5b('0x10')](0x1f4,_[_0x4d5b('0x57')](_0x398c89,'message')[_0x4d5b('0x13')](',\x20')));}var _0x582f6b=_[_0x4d5b('0x5e')](_0x7c54b9[_0x4d5b('0x6e')],{'uniqueid':_0x3c98d0[_0x4d5b('0x58')]});if(_0x582f6b&&_0x582f6b[_0x4d5b('0x69')]){return ami[_0x4d5b('0x18')]({'action':_0x4d5b('0x70'),'channel':_0x582f6b['channel']})[_0x4d5b('0x19')](function(_0x5d7f5f){_0x3377cd({'code':0xc8,'message':[_0x3c98d0[_0x4d5b('0x58')],_0x5d7f5f['message'][_0x4d5b('0x61')]()][_0x4d5b('0x13')]('\x20')});})[_0x4d5b('0x1d')](function(_0x5c1b00){_0x1c956c(_0x41c15c[_0x4d5b('0x10')](0x1f5,[_0x3c98d0[_0x4d5b('0x58')],_0x5c1b00[_0x4d5b('0x1a')][_0x4d5b('0x61')]()]['join']('\x20')));});}else{return _0x1c956c(_0x41c15c['error'](0x1f5,_0x4d5b('0x67')));}});},'VoiceQueuesChannelRedirect':function(_0x16aa25){var _0x4ccc64=this;return new Promise(function(_0x9b790e,_0x4e0aab){if(ami[_0x4d5b('0xf')]()==![]){return _0x4e0aab(_0x4ccc64[_0x4d5b('0x10')](0x1f4,[config['asterisk']['ip'],config[_0x4d5b('0x11')][_0x4d5b('0x12')],_0x4d5b('0x54')][_0x4d5b('0x13')]('\x20')));}var _0x51de71=schema(properties[_0x4d5b('0x71')])[_0x4d5b('0x56')](_0x16aa25);if(_0x51de71['length']>0x0){return _0x4e0aab(_0x4ccc64[_0x4d5b('0x10')](0x1f4,_[_0x4d5b('0x57')](_0x51de71,_0x4d5b('0x1a'))[_0x4d5b('0x13')](',\x20')));}var _0x5ef522=_[_0x4d5b('0x5e')](_0x7c54b9['queueChannels'],{'uniqueid':_0x16aa25[_0x4d5b('0x58')]});if(_0x5ef522&&_0x5ef522[_0x4d5b('0x69')]){return ami['Action']({'action':_0x4d5b('0x72'),'channel':_0x5ef522['channel'],'exten':_0x16aa25[_0x4d5b('0x73')],'context':_0x16aa25[_0x4d5b('0x74')]||_0x5ef522[_0x4d5b('0x74')],'priority':0x1})[_0x4d5b('0x19')](function(_0x13248c){_0x9b790e({'code':0xc8,'message':[_0x16aa25[_0x4d5b('0x58')],_0x13248c[_0x4d5b('0x1a')]['toLowerCase']()][_0x4d5b('0x13')]('\x20')});})['catch'](function(_0xfb2e6c){_0x4e0aab(_0x4ccc64[_0x4d5b('0x10')](0x1f5,[_0x16aa25[_0x4d5b('0x58')],_0xfb2e6c['message'][_0x4d5b('0x61')]()]['join']('\x20')));});}else{return _0x4e0aab(_0x4ccc64['error'](0x1f5,_0x4d5b('0x67')));}});},'Agents':function(_0xf67cfd){return new Promise(function(_0x492e01,_0xcc6f13){var _0x481a0f=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0xd')]);_0x492e01({'count':_0x481a0f['length'],'rows':_0x481a0f});});},'Telephones':function(_0x4f27e4){return new Promise(function(_0x4079d1,_0x2a87c3){var _0x493542=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0x75')]);_0x4079d1({'count':_0x493542[_0x4d5b('0x51')],'rows':_0x493542});});},'Trunks':function(_0x1081e6){return new Promise(function(_0x4c9c8c,_0x1e595c){var _0x389930=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0x76')]);_0x4c9c8c({'count':_0x389930[_0x4d5b('0x51')],'rows':_0x389930});});},'OutboundChannels':function(_0x1800ce){return new Promise(function(_0x5508ee,_0x459971){var _0x423c4b=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0x77')]);_0x5508ee({'count':_0x423c4b[_0x4d5b('0x51')],'rows':_0x423c4b});});},'Outbound':function(_0x323b49){return new Promise(function(_0x57ac6e,_0x1b038a){_0x57ac6e(_0x7c54b9['outbound']);});},'Campaigns':function(_0x25dd78){return new Promise(function(_0x8e35d6,_0x4f831a){var _0x2f0eb0=_[_0x4d5b('0x52')](_0x7c54b9['campaigns']);_0x8e35d6({'count':_0x2f0eb0[_0x4d5b('0x51')],'rows':_0x2f0eb0});});},'VoiceQueuesPreview':function(_0x1440b7){var _0x367d9e=this;return new Promise(function(_0x2a08cb,_0x538dd4){_0x19449e[_0x4d5b('0x78')](_0x1440b7['id'])[_0x4d5b('0x19')](function(_0x468cbb){_0x2a08cb({'code':0xc8,'message':_0x468cbb[_0x4d5b('0x1a')]});})['catch'](function(_0x195395){_0x538dd4(_0x367d9e[_0x4d5b('0x10')](0x1f4,_0x195395['message']));});});},'EventManager':function(_0x16d19d){var _0x770da=this;return new Promise(function(_0x3aeb3a,_0x6bd420){if(!_0x16d19d[_0x4d5b('0x79')]){return _0x6bd420(_0x770da[_0x4d5b('0x10')](0x1f4,_0x4d5b('0x7a')));}ami[_0x4d5b('0x7b')]('custom:'+_0x16d19d[_0x4d5b('0x79')],_0x16d19d['message']);_0x3aeb3a({'code':0xc8,'message':_0x16d19d});});},'FaxAccounts':function(_0x36249e){return new Promise(function(_0x3527d7,_0x9a3a86){var _0x5be6d8=_[_0x4d5b('0x52')](_0x7c54b9[_0x4d5b('0x7c')]);_0x3527d7({'count':_0x5be6d8[_0x4d5b('0x51')],'rows':_0x5be6d8});});},'SendFax':function(_0xcdb59c){var _0x2a93cf=this;return new Promise(function(_0x501eb6,_0x1eccd5){_0x576819[_0x4d5b('0x7d')](_0xcdb59c)[_0x4d5b('0x19')](function(_0xf2c0cf){_0x501eb6({'code':0xc8,'message':_0xf2c0cf['message']});})['catch'](function(_0x46bfa9){_0x1eccd5(_0x2a93cf[_0x4d5b('0x10')](0x1f4,_0x46bfa9[_0x4d5b('0x1a')]));});});},'CheckAfterSend':function(_0x3c7110){var _0x28fb57=this;return new Promise(function(_0xb6287e,_0x558c4){_0x576819[_0x4d5b('0x7e')](_0x3c7110)[_0x4d5b('0x19')](function(_0x43db22){_0xb6287e({'code':0xc8,'message':_0x43db22[_0x4d5b('0x1a')]});})[_0x4d5b('0x1d')](function(_0x4520c9){_0x558c4(_0x28fb57[_0x4d5b('0x10')](0x1f4,_0x4520c9[_0x4d5b('0x1a')]));});});}};var _0x518894=jayson[_0x4d5b('0x7f')](_0x2aaf1d)['http']();_0x518894['on']('error',function(_0x4533ec){return _0x2fd828(_0x4533ec);});_0x518894[_0x4d5b('0x6')](0x232a,_0x4d5b('0x80'),function(){console['log']('AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232a);return _0x4fd696('RPC\x20listening\x20on\x20port:'+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef66=['defaults','localhost','socket.io-emitter','emit','exec','data2','data1','isNil','routeId','firstName','calleridname','<unknown>','calleridnum','uniqueid','destcalleridname','phone','destcalleridnum','resolve','then','omit','xmd-contactid2','format','user:%s','trigger:%s','action','toLowerCase','merge','catch','error','stringify','name','bluebird','util','lodash','../../../../config/environment','../../../../config/logger','redis'];(function(_0x365143,_0x46fd86){var _0x45bb49=function(_0x20bb4b){while(--_0x20bb4b){_0x365143['push'](_0x365143['shift']());}};_0x45bb49(++_0x46fd86);}(_0xef66,0x1db));var _0x6ef6=function(_0x4ef420,_0x593987){_0x4ef420=_0x4ef420-0x0;var _0x44d59d=_0xef66[_0x4ef420];return _0x44d59d;};'use strict';var BPromise=require(_0x6ef6('0x0'));var util=require(_0x6ef6('0x1'));var _=require(_0x6ef6('0x2'));var config=require(_0x6ef6('0x3'));var logger=require(_0x6ef6('0x4'))('trigger');var cmContactRpc=require('../../rpc/cmContact');config[_0x6ef6('0x5')]=_[_0x6ef6('0x6')](config[_0x6ef6('0x5')],{'host':_0x6ef6('0x7'),'port':0x18eb});var io=require(_0x6ef6('0x8'))(config[_0x6ef6('0x5')]);function emit(_0x32baa0,_0x1830aa,_0x3755b5){logger['info'](_0x32baa0,_0x1830aa,JSON['stringify'](_0x3755b5));io['to'](_0x32baa0)[_0x6ef6('0x9')](_0x1830aa,_0x3755b5);}exports[_0x6ef6('0xa')]=function(_0x1be0c5,_0x391e0e,_0xc0ace){_0xc0ace['autoCreate']=0x0;if(_0x391e0e[_0x6ef6('0xb')]&&parseInt(_0x391e0e['data2'],0xa)){var _0x53db5e={'ListId':parseInt(_0x391e0e[_0x6ef6('0xc')],0xa),'phone':_0xc0ace['calleridnum']};if(_[_0x6ef6('0xd')](_0xc0ace[_0x6ef6('0xe')])){_0x53db5e[_0x6ef6('0xf')]=_0xc0ace[_0x6ef6('0x10')]&&_0xc0ace['calleridname']!==_0x6ef6('0x11')?_0xc0ace[_0x6ef6('0x10')]:_0xc0ace[_0x6ef6('0x12')]||_0xc0ace[_0x6ef6('0x13')];}else{_0x53db5e['firstName']=_0xc0ace[_0x6ef6('0x14')]&&_0xc0ace['destcalleridname']!==_0x6ef6('0x11')?_0xc0ace[_0x6ef6('0x14')]:_0xc0ace['destcalleridnum']||_0xc0ace[_0x6ef6('0x13')];_0x53db5e[_0x6ef6('0x15')]=_0xc0ace[_0x6ef6('0x14')]&&_0xc0ace[_0x6ef6('0x14')]!==_0x6ef6('0x11')?_0xc0ace[_0x6ef6('0x14')]:_0xc0ace[_0x6ef6('0x16')]||_0xc0ace[_0x6ef6('0x13')];}BPromise[_0x6ef6('0x17')]()[_0x6ef6('0x18')](cmContactRpc['showContact']({'where':_[_0x6ef6('0x19')](_0x53db5e,[_0x6ef6('0xf')])}))[_0x6ef6('0x18')](function(_0x37d2ef){if(_0x37d2ef){_0xc0ace[_0x6ef6('0x1a')]=_0x37d2ef['id'];emit(util[_0x6ef6('0x1b')](_0x6ef6('0x1c'),_0x1be0c5['name']),util[_0x6ef6('0x1b')](_0x6ef6('0x1d'),_0x391e0e[_0x6ef6('0x1e')][_0x6ef6('0x1f')]()),_['merge'](_0xc0ace,{'ListId':parseInt(_0x391e0e[_0x6ef6('0xc')],0xa)}));return;}else{return BPromise[_0x6ef6('0x17')]()[_0x6ef6('0x18')](cmContactRpc['createContact'](_0x53db5e));}})[_0x6ef6('0x18')](function(_0x1096de){if(_0x1096de){_0xc0ace['xmd-contactid2']=_0x1096de['id'];emit(util[_0x6ef6('0x1b')](_0x6ef6('0x1c'),_0x1be0c5['name']),util[_0x6ef6('0x1b')](_0x6ef6('0x1d'),_0x391e0e[_0x6ef6('0x1e')][_0x6ef6('0x1f')]()),_[_0x6ef6('0x20')](_0xc0ace,{'ListId':parseInt(_0x391e0e[_0x6ef6('0xc')],0xa)}));}})[_0x6ef6('0x21')](function(_0x499d4f){logger[_0x6ef6('0x22')]('Error\x20creating\x20contact',JSON[_0x6ef6('0x23')](_0x499d4f));});}else{if(_0x1be0c5){emit(util[_0x6ef6('0x1b')](_0x6ef6('0x1c'),_0x1be0c5[_0x6ef6('0x24')]),util[_0x6ef6('0x1b')](_0x6ef6('0x1d'),_0x391e0e[_0x6ef6('0x1e')][_0x6ef6('0x1f')]()),_[_0x6ef6('0x20')]({'ListId':parseInt(_0x391e0e[_0x6ef6('0xc')],0xa)},_0xc0ace));}}};
\ No newline at end of file
+var _0x53c9=['resolve','then','showContact','omit','xmd-contactid2','format','user:%s','trigger:%s','action','toLowerCase','merge','name','catch','error','Error\x20creating\x20contact','bluebird','lodash','ioredis','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','redis','defaults','localhost','socket.io-emitter','info','stringify','exec','data2','data1','calleridnum','isNil','routeId','calleridname','<unknown>','firstName','destcalleridname','uniqueid','phone','destcalleridnum'];(function(_0x2d9c6c,_0x3e668a){var _0x47fbe4=function(_0x885e6a){while(--_0x885e6a){_0x2d9c6c['push'](_0x2d9c6c['shift']());}};_0x47fbe4(++_0x3e668a);}(_0x53c9,0x180));var _0x953c=function(_0x25b854,_0x2e19ff){_0x25b854=_0x25b854-0x0;var _0x35bcd8=_0x53c9[_0x25b854];return _0x35bcd8;};'use strict';var BPromise=require(_0x953c('0x0'));var util=require('util');var _=require(_0x953c('0x1'));var Redis=require(_0x953c('0x2'));var config=require(_0x953c('0x3'));var logger=require(_0x953c('0x4'))(_0x953c('0x5'));var cmContactRpc=require(_0x953c('0x6'));config[_0x953c('0x7')]=_[_0x953c('0x8')](config['redis'],{'host':_0x953c('0x9'),'port':0x18eb});var io=require(_0x953c('0xa'))(new Redis(config[_0x953c('0x7')]));function emit(_0x335545,_0x23efbf,_0x41eef1){logger[_0x953c('0xb')](_0x335545,_0x23efbf,JSON[_0x953c('0xc')](_0x41eef1));io['to'](_0x335545)['emit'](_0x23efbf,_0x41eef1);}exports[_0x953c('0xd')]=function(_0x50bdf2,_0x357324,_0x713142){_0x713142['autoCreate']=0x0;if(_0x357324[_0x953c('0xe')]&&parseInt(_0x357324[_0x953c('0xe')],0xa)){var _0x538d7b={'ListId':parseInt(_0x357324[_0x953c('0xf')],0xa),'phone':_0x713142[_0x953c('0x10')]};if(_[_0x953c('0x11')](_0x713142[_0x953c('0x12')])){_0x538d7b['firstName']=_0x713142[_0x953c('0x13')]&&_0x713142[_0x953c('0x13')]!==_0x953c('0x14')?_0x713142[_0x953c('0x13')]:_0x713142[_0x953c('0x10')]||_0x713142['uniqueid'];}else{_0x538d7b[_0x953c('0x15')]=_0x713142[_0x953c('0x16')]&&_0x713142[_0x953c('0x16')]!=='<unknown>'?_0x713142[_0x953c('0x16')]:_0x713142['destcalleridnum']||_0x713142[_0x953c('0x17')];_0x538d7b[_0x953c('0x18')]=_0x713142[_0x953c('0x16')]&&_0x713142['destcalleridname']!==_0x953c('0x14')?_0x713142[_0x953c('0x16')]:_0x713142[_0x953c('0x19')]||_0x713142[_0x953c('0x17')];}BPromise[_0x953c('0x1a')]()[_0x953c('0x1b')](cmContactRpc[_0x953c('0x1c')]({'where':_[_0x953c('0x1d')](_0x538d7b,['firstName'])}))[_0x953c('0x1b')](function(_0x452ae0){if(_0x452ae0){_0x713142[_0x953c('0x1e')]=_0x452ae0['id'];emit(util[_0x953c('0x1f')](_0x953c('0x20'),_0x50bdf2['name']),util[_0x953c('0x1f')](_0x953c('0x21'),_0x357324[_0x953c('0x22')][_0x953c('0x23')]()),_[_0x953c('0x24')](_0x713142,{'ListId':parseInt(_0x357324[_0x953c('0xf')],0xa)}));return;}else{return BPromise[_0x953c('0x1a')]()['then'](cmContactRpc['createContact'](_0x538d7b));}})[_0x953c('0x1b')](function(_0x42a920){if(_0x42a920){_0x713142[_0x953c('0x1e')]=_0x42a920['id'];emit(util[_0x953c('0x1f')]('user:%s',_0x50bdf2[_0x953c('0x25')]),util[_0x953c('0x1f')](_0x953c('0x21'),_0x357324[_0x953c('0x22')][_0x953c('0x23')]()),_[_0x953c('0x24')](_0x713142,{'ListId':parseInt(_0x357324[_0x953c('0xf')],0xa)}));}})[_0x953c('0x26')](function(_0x42ed8c){logger[_0x953c('0x27')](_0x953c('0x28'),JSON[_0x953c('0xc')](_0x42ed8c));});}else{if(_0x50bdf2){emit(util[_0x953c('0x1f')]('user:%s',_0x50bdf2[_0x953c('0x25')]),util[_0x953c('0x1f')](_0x953c('0x21'),_0x357324[_0x953c('0x22')]['toLowerCase']()),_[_0x953c('0x24')]({'ListId':parseInt(_0x357324[_0x953c('0xf')],0xa)},_0x713142));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac9d=['trigger:%s:%s','trigger:%s','exec','integration','queue','buildUri','AllConditions','length','every','checkConditions','channel','AnyConditions','field','account','chat','ChatWebsiteId','operator','value','AccountId','upperFirst','interaction','event','lastevent','routeId','util','lodash','url','mustache','./urlforward','./integration','./cmContact','../rpc/cmContact','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','accounts','salesforceAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:queuecallerabandon','custom:dialbegin','custom:dialconnect','custom:dialend','custom:newinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','info','stringify','prototype','clone','checkTriggers','hasOwnProperty','checkTrigger','merge','variables','Actions','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','data2','html','render','template\x20not\x20found','uri','isNil','data3','location','uriLocation','data4','windowWidth','800','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name'];(function(_0x42bbf8,_0x45da78){var _0x1e0bd0=function(_0x11c0a0){while(--_0x11c0a0){_0x42bbf8['push'](_0x42bbf8['shift']());}};_0x1e0bd0(++_0x45da78);}(_0xac9d,0x14d));var _0xdac9=function(_0x533990,_0x21fe8d){_0x533990=_0x533990-0x0;var _0x5a5e2a=_0xac9d[_0x533990];return _0x5a5e2a;};'use strict';var util=require(_0xdac9('0x0'));var _=require(_0xdac9('0x1'));var url=require(_0xdac9('0x2'));var Mustache=require(_0xdac9('0x3'));var urlforward=require(_0xdac9('0x4'));var integration=require(_0xdac9('0x5'));var cmContact=require(_0xdac9('0x6'));var cmContactRpc=require(_0xdac9('0x7'));var config=require('../../../config/environment');var logger=require(_0xdac9('0x8'))('trigger');var ami=require(_0xdac9('0x9'));config[_0xdac9('0xa')]=_[_0xdac9('0xb')](config[_0xdac9('0xa')],{'host':_0xdac9('0xc'),'port':0x18eb});var io=require(_0xdac9('0xd'))(config['redis']);var operators={'equals':function(_0x2b1d6f,_0x47d9fd){return _0x2b1d6f==_0x47d9fd;},'not_equals':function(_0xfc30fe,_0x3a013b){return _0xfc30fe!=_0x3a013b;}};var barAndWebActions=[_0xdac9('0xe'),_0xdac9('0x2'),_0xdac9('0xf')];function Trigger(_0x2859bf){this[_0xdac9('0x10')]=_0x2859bf[_0xdac9('0x10')];this[_0xdac9('0x11')]=_0x2859bf['agents'];this[_0xdac9('0x12')]=_0x2859bf[_0xdac9('0x12')];this['templates']=_0x2859bf[_0xdac9('0x13')];this[_0xdac9('0x14')]=_0x2859bf[_0xdac9('0x14')];this['zendeskAccounts']=_0x2859bf[_0xdac9('0x15')];this[_0xdac9('0x16')]=_0x2859bf[_0xdac9('0x16')];this['salesforceAccounts']=_0x2859bf['salesforceAccounts'];this[_0xdac9('0x17')]=_0x2859bf[_0xdac9('0x17')];this['zohoAccounts']=_0x2859bf[_0xdac9('0x18')];this[_0xdac9('0x19')]=_0x2859bf[_0xdac9('0x19')];this[_0xdac9('0x1a')]=_0x2859bf[_0xdac9('0x1a')];this[_0xdac9('0x1b')]={'zendesk':this[_0xdac9('0x15')],'salesforce':this[_0xdac9('0x1c')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xdac9('0x17')],'zoho':this[_0xdac9('0x18')],'desk':this['deskAccounts'],'vtiger':this[_0xdac9('0x1a')]};ami['on'](_0xdac9('0x1d'),this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0xdac9('0x1f')](this));ami['on'](_0xdac9('0x20'),this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on']('custom:agentcomplete',this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on'](_0xdac9('0x21'),this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on'](_0xdac9('0x22'),this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on'](_0xdac9('0x23'),this[_0xdac9('0x1e')]['bind'](this));ami['on'](_0xdac9('0x24'),this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on'](_0xdac9('0x25'),this['syncCustomEvent'][_0xdac9('0x1f')](this));ami['on']('custom:closedinteraction',this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on']('custom:incomingmessage',this[_0xdac9('0x1e')]['bind'](this));ami['on'](_0xdac9('0x26'),this[_0xdac9('0x1e')][_0xdac9('0x1f')](this));ami['on'](_0xdac9('0x27'),this['syncCustomEvent']['bind'](this));ami['on'](_0xdac9('0x28'),this[_0xdac9('0x1e')]['bind'](this));}Trigger['prototype'][_0xdac9('0x29')]=function(_0x3505c5,_0x13efba,_0x2dbb7a){logger[_0xdac9('0x2a')](_0x3505c5,_0x13efba,JSON[_0xdac9('0x2b')](_0x2dbb7a));io['to'](_0x3505c5)[_0xdac9('0x29')](_0x13efba,_0x2dbb7a);};Trigger[_0xdac9('0x2c')][_0xdac9('0x1e')]=function(_0x2f36f4){var _0xb49c21=_[_0xdac9('0x2d')](_0x2f36f4);this[_0xdac9('0x2e')](_0xb49c21);};Trigger[_0xdac9('0x2c')][_0xdac9('0x2e')]=function(_0x446080){var _0x372f02;for(var _0x44eff2 in this[_0xdac9('0x10')]){if(this[_0xdac9('0x10')][_0xdac9('0x2f')](_0x44eff2)){if(this['triggers'][_0x44eff2]['status']){_0x372f02=this[_0xdac9('0x30')](this[_0xdac9('0x10')][_0x44eff2],_0x446080);if(_0x372f02){_[_0xdac9('0x31')](_0x446080,_0x446080[_0xdac9('0x32')]);for(var _0x15dc5f=0x0,_0x49d59f,_0x1d125a,_0x5934d8;_0x15dc5f<this[_0xdac9('0x10')][_0x44eff2][_0xdac9('0x33')]['length'];_0x15dc5f+=0x1){_0x49d59f=this[_0xdac9('0x10')][_0x44eff2]['Actions'][_0x15dc5f];if(this['agents'][_0x446080[_0xdac9('0x34')]]){switch(_0x49d59f[_0xdac9('0x35')][_0xdac9('0x36')]()){case _0xdac9('0x37'):break;case _0xdac9('0x38'):case _0xdac9('0x39'):var _0x51cde6={};switch(barAndWebActions[_0x49d59f[_0xdac9('0x3a')]]){case _0xdac9('0xe'):_0x51cde6['TemplateId']=_0x49d59f[_0xdac9('0x3b')];_0x51cde6[_0xdac9('0x3c')]=this[_0xdac9('0x13')][_0x49d59f[_0xdac9('0x3b')]]?Mustache[_0xdac9('0x3d')](this[_0xdac9('0x13')][_0x49d59f[_0xdac9('0x3b')]]['html'],_0x446080):_0xdac9('0x3e');break;case _0xdac9('0x2'):_0x51cde6[_0xdac9('0x3f')]=this['buildUri'](_0x49d59f[_0xdac9('0x3b')],_0x446080,_[_0xdac9('0x40')](_0x49d59f[_0xdac9('0x41')])?!![]:parseInt(_0x49d59f[_0xdac9('0x41')],0xa));if(_['isNil'](_0x49d59f['data4'])){_0x51cde6[_0xdac9('0x42')]='0';}else{_0x51cde6[_0xdac9('0x43')]=_0x49d59f[_0xdac9('0x44')];_0x51cde6[_0xdac9('0x45')]=_[_0xdac9('0x40')](_0x49d59f['data5'])?_0xdac9('0x46'):_0x49d59f['data5'];_0x51cde6[_0xdac9('0x47')]=_[_0xdac9('0x40')](_0x49d59f[_0xdac9('0x48')])?_0xdac9('0x49'):_0x49d59f[_0xdac9('0x48')];}break;case _0xdac9('0xf'):_0x51cde6[_0xdac9('0x4a')]=_0x49d59f[_0xdac9('0x3b')]?Mustache[_0xdac9('0x3d')](_0x49d59f[_0xdac9('0x3b')],_0x446080):'';_0x51cde6[_0xdac9('0x4b')]=_0x49d59f[_0xdac9('0x41')]?Mustache[_0xdac9('0x3d')](_0x49d59f[_0xdac9('0x41')],_0x446080):'';break;}this['emit'](util[_0xdac9('0x4c')](_0xdac9('0x4d'),this['agents'][_0x446080[_0xdac9('0x34')]][_0xdac9('0x4e')]),util[_0xdac9('0x4c')](_0xdac9('0x4f'),_0x49d59f[_0xdac9('0x35')][_0xdac9('0x36')](),barAndWebActions[_0x49d59f['data1']]),_[_0xdac9('0x31')](_0x51cde6,_0x446080));break;case'jscripty':this[_0xdac9('0x29')](util[_0xdac9('0x4c')](_0xdac9('0x4d'),this[_0xdac9('0x11')][_0x446080['interface']]['name']),util['format'](_0xdac9('0x50'),_0x49d59f['action']['toLowerCase']()),_[_0xdac9('0x31')]({'ProjectId':parseInt(_0x49d59f[_0xdac9('0x3a')],0xa)},_0x446080));break;default:this['emit'](util['format'](_0xdac9('0x4d'),this[_0xdac9('0x11')][_0x446080[_0xdac9('0x34')]][_0xdac9('0x4e')]),util[_0xdac9('0x4c')](_0xdac9('0x50'),_0x49d59f[_0xdac9('0x35')][_0xdac9('0x36')]()),_['merge']({},_0x49d59f,_0x446080));}}switch(_0x49d59f[_0xdac9('0x35')][_0xdac9('0x36')]()){case _0xdac9('0x37'):cmContact[_0xdac9('0x51')](this[_0xdac9('0x11')][_0x446080[_0xdac9('0x34')]],_0x49d59f,_0x446080,cmContactRpc);break;case _0xdac9('0x52'):integration[_0xdac9('0x51')](_0x49d59f,_0x446080,this[_0xdac9('0x1b')],this[_0xdac9('0x11')][_0x446080[_0xdac9('0x34')]],this[_0xdac9('0x12')][_0x446080[_0xdac9('0x53')]],this[_0xdac9('0x14')][_0x446080['routeId']]);break;case'urlforward':urlforward['exec'](_0x49d59f,_0x446080);break;}}}}}}};Trigger[_0xdac9('0x2c')][_0xdac9('0x54')]=function(_0x59478e,_0x2a60bd,_0x2843f2){var _0x45c869=url['parse'](Mustache[_0xdac9('0x3d')](_0x59478e,_0x2a60bd),!![]);if(_0x2843f2){_[_0xdac9('0x31')](_0x45c869['query'],_0x2a60bd);}delete _0x45c869['search'];return url[_0xdac9('0x4c')](_0x45c869);};Trigger[_0xdac9('0x2c')][_0xdac9('0x30')]=function(_0x370532,_0x39df88){var _0x426774=!![],_0x7a40ac=!![];if(_0x370532[_0xdac9('0x55')][_0xdac9('0x56')]){_0x426774=_[_0xdac9('0x57')](_0x370532[_0xdac9('0x55')],this[_0xdac9('0x58')](_0x39df88,_0x370532[_0xdac9('0x59')]));}if(_0x370532[_0xdac9('0x5a')][_0xdac9('0x56')]){_0x7a40ac=_['some'](_0x370532[_0xdac9('0x5a')],this[_0xdac9('0x58')](_0x39df88,_0x370532[_0xdac9('0x59')]));}return _0x426774&&_0x7a40ac;};Trigger[_0xdac9('0x2c')][_0xdac9('0x58')]=function(_0x3a391a,_0x4b118e){return function(_0x3ecdf7){switch(_0x3ecdf7[_0xdac9('0x5b')]){case _0xdac9('0x5c'):if(_0x3a391a[_0xdac9('0x59')]===_0x4b118e){if(_0x4b118e===_0xdac9('0x5d')){return _0x3a391a[_0xdac9('0x5e')]?operators[_0x3ecdf7[_0xdac9('0x5f')]](Number(_0x3ecdf7[_0xdac9('0x60')]),_0x3a391a[_0xdac9('0x5e')]):![];}else{return _0x3a391a[_['upperFirst'](_0x4b118e)+_0xdac9('0x61')]?operators[_0x3ecdf7[_0xdac9('0x5f')]](Number(_0x3ecdf7[_0xdac9('0x60')]),_0x3a391a[_[_0xdac9('0x62')](_0x4b118e)+_0xdac9('0x61')]):![];}}break;case _0xdac9('0x63'):case'message':if(_0x3a391a['channel']===_0x4b118e){return _0x3a391a[_0xdac9('0x64')]?operators[_0x3ecdf7[_0xdac9('0x5f')]](_0x3ecdf7[_0xdac9('0x60')],_0x3a391a[_0xdac9('0x64')]):![];}break;case _0xdac9('0x53'):return _0x3a391a[_0xdac9('0x53')]?operators[_0x3ecdf7['operator']](_0x3ecdf7['value'],_0x3a391a['queue']):![];case _0xdac9('0x65'):return _0x3a391a[_0xdac9('0x65')]?operators[_0x3ecdf7[_0xdac9('0x5f')]](_0x3ecdf7[_0xdac9('0x60')],_0x3a391a['lastevent']):![];case _0xdac9('0x66'):return _0x3a391a[_0xdac9('0x66')]?operators[_0x3ecdf7[_0xdac9('0x5f')]](_0x3ecdf7[_0xdac9('0x60')],_0x3a391a[_0xdac9('0x66')]):![];}return![];};};module['exports']=Trigger;
\ No newline at end of file
+var _0xb171=['prototype','clone','checkTriggers','hasOwnProperty','checkTrigger','merge','length','Actions','interface','action','toLowerCase','motionbar','data1','TemplateId','data2','html','uri','isNil','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','winApplication','render','winArguments','data3','format','user:%s','name','trigger:%s:%s','jscripty','trigger:%s','exec','queue','routeId','urlforward','buildUri','parse','query','search','AllConditions','checkConditions','AnyConditions','some','field','account','channel','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','message','event','lastevent','exports','util','mustache','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','defaults','redis','socket.io-emitter','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:queuecallerabandon','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','stringify'];(function(_0xa1cfe8,_0xf92c6){var _0x56fcff=function(_0x5e317a){while(--_0x5e317a){_0xa1cfe8['push'](_0xa1cfe8['shift']());}};_0x56fcff(++_0xf92c6);}(_0xb171,0x1d9));var _0x1b17=function(_0x252f3a,_0x343f2b){_0x252f3a=_0x252f3a-0x0;var _0xceff54=_0xb171[_0x252f3a];return _0xceff54;};'use strict';var util=require(_0x1b17('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0x1b17('0x1'));var Redis=require(_0x1b17('0x2'));var urlforward=require(_0x1b17('0x3'));var integration=require(_0x1b17('0x4'));var cmContact=require(_0x1b17('0x5'));var cmContactRpc=require('../rpc/cmContact');var config=require(_0x1b17('0x6'));var logger=require(_0x1b17('0x7'))(_0x1b17('0x8'));var ami=require('../ami');config['redis']=_[_0x1b17('0x9')](config[_0x1b17('0xa')],{'host':'localhost','port':0x18eb});var io=require(_0x1b17('0xb'))(new Redis(config[_0x1b17('0xa')]));var operators={'equals':function(_0x11e51f,_0x25fd35){return _0x11e51f==_0x25fd35;},'not_equals':function(_0x4f1d37,_0x18b69a){return _0x4f1d37!=_0x18b69a;}};var barAndWebActions=['popup',_0x1b17('0xc'),_0x1b17('0xd')];function Trigger(_0x2faa4e){this['triggers']=_0x2faa4e[_0x1b17('0xe')];this[_0x1b17('0xf')]=_0x2faa4e[_0x1b17('0xf')];this[_0x1b17('0x10')]=_0x2faa4e[_0x1b17('0x10')];this[_0x1b17('0x11')]=_0x2faa4e['templates'];this[_0x1b17('0x12')]=_0x2faa4e['voiceExtensions'];this[_0x1b17('0x13')]=_0x2faa4e[_0x1b17('0x13')];this[_0x1b17('0x14')]=_0x2faa4e[_0x1b17('0x14')];this[_0x1b17('0x15')]=_0x2faa4e[_0x1b17('0x15')];this[_0x1b17('0x16')]=_0x2faa4e['sugarcrmAccounts'];this[_0x1b17('0x17')]=_0x2faa4e[_0x1b17('0x17')];this[_0x1b17('0x18')]=_0x2faa4e[_0x1b17('0x18')];this[_0x1b17('0x19')]=_0x2faa4e['vtigerAccounts'];this['accounts']={'zendesk':this[_0x1b17('0x13')],'salesforce':this[_0x1b17('0x15')],'freshdesk':this[_0x1b17('0x14')],'sugarcrm':this[_0x1b17('0x16')],'zoho':this[_0x1b17('0x17')],'desk':this[_0x1b17('0x18')],'vtiger':this[_0x1b17('0x19')]};ami['on'](_0x1b17('0x1a'),this[_0x1b17('0x1b')]['bind'](this));ami['on'](_0x1b17('0x1c'),this['syncCustomEvent'][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x1e'),this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x1f'),this['syncCustomEvent'][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x20'),this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on']('custom:dialbegin',this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x21'),this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x22'),this[_0x1b17('0x1b')]['bind'](this));ami['on'](_0x1b17('0x23'),this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x24'),this[_0x1b17('0x1b')]['bind'](this));ami['on']('custom:incomingmessage',this['syncCustomEvent'][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x25'),this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x26'),this[_0x1b17('0x1b')][_0x1b17('0x1d')](this));ami['on'](_0x1b17('0x27'),this['syncCustomEvent']['bind'](this));}Trigger['prototype'][_0x1b17('0x28')]=function(_0x5775f5,_0x99b9fa,_0x292a95){logger['info'](_0x5775f5,_0x99b9fa,JSON[_0x1b17('0x29')](_0x292a95));io['to'](_0x5775f5)[_0x1b17('0x28')](_0x99b9fa,_0x292a95);};Trigger[_0x1b17('0x2a')][_0x1b17('0x1b')]=function(_0x3318e2){var _0x52ab08=_[_0x1b17('0x2b')](_0x3318e2);this[_0x1b17('0x2c')](_0x52ab08);};Trigger[_0x1b17('0x2a')][_0x1b17('0x2c')]=function(_0x536c6e){var _0x2371c3;for(var _0x1b340a in this[_0x1b17('0xe')]){if(this[_0x1b17('0xe')][_0x1b17('0x2d')](_0x1b340a)){if(this[_0x1b17('0xe')][_0x1b340a]['status']){_0x2371c3=this[_0x1b17('0x2e')](this[_0x1b17('0xe')][_0x1b340a],_0x536c6e);if(_0x2371c3){_[_0x1b17('0x2f')](_0x536c6e,_0x536c6e['variables']);for(var _0x15e74b=0x0,_0x4c5df7,_0x3236df,_0x1e9c39;_0x15e74b<this[_0x1b17('0xe')][_0x1b340a]['Actions'][_0x1b17('0x30')];_0x15e74b+=0x1){_0x4c5df7=this['triggers'][_0x1b340a][_0x1b17('0x31')][_0x15e74b];if(this[_0x1b17('0xf')][_0x536c6e[_0x1b17('0x32')]]){switch(_0x4c5df7[_0x1b17('0x33')][_0x1b17('0x34')]()){case'contactmanager':break;case _0x1b17('0x35'):case'browser':var _0x59e730={};switch(barAndWebActions[_0x4c5df7[_0x1b17('0x36')]]){case'popup':_0x59e730[_0x1b17('0x37')]=_0x4c5df7[_0x1b17('0x38')];_0x59e730[_0x1b17('0x39')]=this[_0x1b17('0x11')][_0x4c5df7['data2']]?Mustache['render'](this[_0x1b17('0x11')][_0x4c5df7[_0x1b17('0x38')]][_0x1b17('0x39')],_0x536c6e):'template\x20not\x20found';break;case _0x1b17('0xc'):_0x59e730[_0x1b17('0x3a')]=this['buildUri'](_0x4c5df7[_0x1b17('0x38')],_0x536c6e,_['isNil'](_0x4c5df7['data3'])?!![]:parseInt(_0x4c5df7['data3'],0xa));if(_[_0x1b17('0x3b')](_0x4c5df7[_0x1b17('0x3c')])){_0x59e730[_0x1b17('0x3d')]='0';}else{_0x59e730[_0x1b17('0x3e')]=_0x4c5df7[_0x1b17('0x3c')];_0x59e730[_0x1b17('0x3f')]=_[_0x1b17('0x3b')](_0x4c5df7[_0x1b17('0x40')])?_0x1b17('0x41'):_0x4c5df7[_0x1b17('0x40')];_0x59e730[_0x1b17('0x42')]=_[_0x1b17('0x3b')](_0x4c5df7[_0x1b17('0x43')])?'600':_0x4c5df7[_0x1b17('0x43')];}break;case'winapp':_0x59e730[_0x1b17('0x44')]=_0x4c5df7[_0x1b17('0x38')]?Mustache[_0x1b17('0x45')](_0x4c5df7[_0x1b17('0x38')],_0x536c6e):'';_0x59e730[_0x1b17('0x46')]=_0x4c5df7[_0x1b17('0x47')]?Mustache[_0x1b17('0x45')](_0x4c5df7[_0x1b17('0x47')],_0x536c6e):'';break;}this[_0x1b17('0x28')](util[_0x1b17('0x48')](_0x1b17('0x49'),this[_0x1b17('0xf')][_0x536c6e[_0x1b17('0x32')]][_0x1b17('0x4a')]),util[_0x1b17('0x48')](_0x1b17('0x4b'),_0x4c5df7[_0x1b17('0x33')]['toLowerCase'](),barAndWebActions[_0x4c5df7[_0x1b17('0x36')]]),_[_0x1b17('0x2f')](_0x59e730,_0x536c6e));break;case _0x1b17('0x4c'):this[_0x1b17('0x28')](util[_0x1b17('0x48')](_0x1b17('0x49'),this[_0x1b17('0xf')][_0x536c6e['interface']][_0x1b17('0x4a')]),util[_0x1b17('0x48')](_0x1b17('0x4d'),_0x4c5df7[_0x1b17('0x33')][_0x1b17('0x34')]()),_[_0x1b17('0x2f')]({'ProjectId':parseInt(_0x4c5df7[_0x1b17('0x36')],0xa)},_0x536c6e));break;default:this[_0x1b17('0x28')](util['format'](_0x1b17('0x49'),this[_0x1b17('0xf')][_0x536c6e[_0x1b17('0x32')]][_0x1b17('0x4a')]),util[_0x1b17('0x48')](_0x1b17('0x4d'),_0x4c5df7[_0x1b17('0x33')]['toLowerCase']()),_[_0x1b17('0x2f')]({},_0x4c5df7,_0x536c6e));}}switch(_0x4c5df7[_0x1b17('0x33')][_0x1b17('0x34')]()){case'contactmanager':cmContact[_0x1b17('0x4e')](this[_0x1b17('0xf')][_0x536c6e[_0x1b17('0x32')]],_0x4c5df7,_0x536c6e,cmContactRpc);break;case'integration':integration['exec'](_0x4c5df7,_0x536c6e,this['accounts'],this['agents'][_0x536c6e[_0x1b17('0x32')]],this['voiceQueues'][_0x536c6e[_0x1b17('0x4f')]],this[_0x1b17('0x12')][_0x536c6e[_0x1b17('0x50')]]);break;case _0x1b17('0x51'):urlforward[_0x1b17('0x4e')](_0x4c5df7,_0x536c6e);break;}}}}}}};Trigger['prototype'][_0x1b17('0x52')]=function(_0x6c85b5,_0x314b14,_0x24ea7b){var _0x5c620d=url[_0x1b17('0x53')](Mustache[_0x1b17('0x45')](_0x6c85b5,_0x314b14),!![]);if(_0x24ea7b){_['merge'](_0x5c620d[_0x1b17('0x54')],_0x314b14);}delete _0x5c620d[_0x1b17('0x55')];return url['format'](_0x5c620d);};Trigger['prototype'][_0x1b17('0x2e')]=function(_0x102b8a,_0x2ed8ff){var _0x53a04c=!![],_0x265430=!![];if(_0x102b8a[_0x1b17('0x56')][_0x1b17('0x30')]){_0x53a04c=_['every'](_0x102b8a[_0x1b17('0x56')],this[_0x1b17('0x57')](_0x2ed8ff,_0x102b8a['channel']));}if(_0x102b8a[_0x1b17('0x58')][_0x1b17('0x30')]){_0x265430=_[_0x1b17('0x59')](_0x102b8a[_0x1b17('0x58')],this[_0x1b17('0x57')](_0x2ed8ff,_0x102b8a['channel']));}return _0x53a04c&&_0x265430;};Trigger[_0x1b17('0x2a')]['checkConditions']=function(_0x4a2772,_0x255eaa){return function(_0x13bdeb){switch(_0x13bdeb[_0x1b17('0x5a')]){case _0x1b17('0x5b'):if(_0x4a2772[_0x1b17('0x5c')]===_0x255eaa){if(_0x255eaa===_0x1b17('0x5d')){return _0x4a2772[_0x1b17('0x5e')]?operators[_0x13bdeb[_0x1b17('0x5f')]](Number(_0x13bdeb['value']),_0x4a2772['ChatWebsiteId']):![];}else{return _0x4a2772[_[_0x1b17('0x60')](_0x255eaa)+_0x1b17('0x61')]?operators[_0x13bdeb[_0x1b17('0x5f')]](Number(_0x13bdeb[_0x1b17('0x62')]),_0x4a2772[_[_0x1b17('0x60')](_0x255eaa)+'AccountId']):![];}}break;case'interaction':case _0x1b17('0x63'):if(_0x4a2772['channel']===_0x255eaa){return _0x4a2772['event']?operators[_0x13bdeb[_0x1b17('0x5f')]](_0x13bdeb['value'],_0x4a2772[_0x1b17('0x64')]):![];}break;case _0x1b17('0x4f'):return _0x4a2772[_0x1b17('0x4f')]?operators[_0x13bdeb[_0x1b17('0x5f')]](_0x13bdeb[_0x1b17('0x62')],_0x4a2772[_0x1b17('0x4f')]):![];case _0x1b17('0x65'):return _0x4a2772[_0x1b17('0x65')]?operators[_0x13bdeb['operator']](_0x13bdeb[_0x1b17('0x62')],_0x4a2772[_0x1b17('0x65')]):![];case _0x1b17('0x50'):return _0x4a2772[_0x1b17('0x50')]?operators[_0x13bdeb['operator']](_0x13bdeb[_0x1b17('0x62')],_0x4a2772[_0x1b17('0x50')]):![];}return![];};};module[_0x1b17('0x66')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe06f=['error','Desk\x20account\x20type\x20not\x20recognized','catch','outbound','recordingFormat','none','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','abandoned','[ABANDONED]','calleridnum','request-promise','util','./util','../../../../config/logger','redis','defaults','localhost','socket.io-emitter','application/json','info','Getting\x20agent\x20with\x20email','format','%s/users','remoteUri','then','total_entries','find','_embedded','entries','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','debug','stringify','GET','authType','basic','username','password','token','toString','base64','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','work','map','length','type','nameField','customField','content','string','idField','variableName','customVariable','Variable','name','toLowerCase','priority','Creating\x20new\x20ticket...','getString','Subjects','phone','new','xCALLY','Motion','CTI','concat','Tags','Descriptions','/api/v2/users/%d','Fields','%s/customers/%d/cases','POST','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','calleridname','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','trigger:desk:display','newTab','user:%s','https://xcally.desk.com/web/agent/case/%d'];(function(_0x46c9cc,_0xd27dca){var _0x21b46e=function(_0x33b2f5){while(--_0x33b2f5){_0x46c9cc['push'](_0x46c9cc['shift']());}};_0x21b46e(++_0xd27dca);}(_0xe06f,0xd6));var _0xfe06=function(_0xefc30e,_0x7199c0){_0xefc30e=_0xefc30e-0x0;var _0x41bac6=_0xe06f[_0xefc30e];return _0x41bac6;};'use strict';var _=require('lodash');var rp=require(_0xfe06('0x0'));var md5=require('md5');var util=require(_0xfe06('0x1'));var intUtil=require(_0xfe06('0x2'));var config=require('../../../../config/environment');var logger=require(_0xfe06('0x3'))('desk');config[_0xfe06('0x4')]=_[_0xfe06('0x5')](config[_0xfe06('0x4')],{'host':_0xfe06('0x6'),'port':0x18eb});var io=require(_0xfe06('0x7'))(config[_0xfe06('0x4')]);function emit(_0x144d1f,_0x29780c,_0x4678d6){io['to'](_0x144d1f)['emit'](_0x29780c,_0x4678d6);}var headers={'Content-Type':_0xfe06('0x8'),'Accept':'application/json'};function getUser(_0x172379,_0x5ed676){logger[_0xfe06('0x9')](_0xfe06('0xa'),_0x5ed676);return request({'uri':util[_0xfe06('0xb')](_0xfe06('0xc'),_0x172379[_0xfe06('0xd')])})[_0xfe06('0xe')](function(_0x83d112){if(_0x83d112[_0xfe06('0xf')]){return _[_0xfe06('0x10')](_0x83d112[_0xfe06('0x11')][_0xfe06('0x12')],{'email':_0x5ed676});}})[_0xfe06('0xe')](function(_0x4689d4){if(_0x4689d4){logger['info'](_0xfe06('0x13'));return _0x4689d4;}else{logger[_0xfe06('0x9')](_0xfe06('0x14'));return request({'uri':util['format'](_0xfe06('0x15'),_0x172379[_0xfe06('0xd')])});}});}function request(_0x1441aa){logger[_0xfe06('0x16')]('[HTTP]',JSON[_0xfe06('0x17')](_0x1441aa));return rp(_[_0xfe06('0x5')](_0x1441aa,{'method':_0xfe06('0x18'),'headers':headers,'json':!![]}));}function getAuth(_0x245427){var _0x1a1de5;if(_0x245427[_0xfe06('0x19')]===_0xfe06('0x1a')){_0x1a1de5=util[_0xfe06('0xb')]('%s:%s',_0x245427[_0xfe06('0x1b')],_0x245427[_0xfe06('0x1c')]);}else if(_0x245427[_0xfe06('0x19')]===_0xfe06('0x1d')){_0x1a1de5=util[_0xfe06('0xb')]('%s/token:%s',_0x245427['username'],_0x245427[_0xfe06('0x1d')]);}return util[_0xfe06('0xb')]('Basic\x20%s',new Buffer(_0x1a1de5)[_0xfe06('0x1e')](_0xfe06('0x1f')));}function getEndUser(_0x21a176,_0x58020c,_0xe22897){logger[_0xfe06('0x9')]('Searching\x20enduser\x20with\x20phone',_0xe22897);return request({'uri':util['format']('%s/customers/search',_0x21a176[_0xfe06('0xd')]),'qs':{'phone':_0xe22897}})[_0xfe06('0xe')](function(_0x51ad4e){if(_0x51ad4e[_0xfe06('0xf')]){logger[_0xfe06('0x9')](_0xfe06('0x20'));return _0x51ad4e[_0xfe06('0x11')]['entries'][0x0];}else{logger[_0xfe06('0x9')](_0xfe06('0x21'));return request({'uri':util[_0xfe06('0xb')](_0xfe06('0x22'),_0x21a176[_0xfe06('0xd')]),'method':'POST','body':{'first_name':_0x58020c,'title':_0x58020c,'phone_numbers':[{'type':_0xfe06('0x23'),'value':_0xe22897}]}});}});}function getTags(_0x4001ca,_0x57d7f7){var _0x155ac4=[];if(_0x4001ca&&_0x4001ca['length']>0x0){_0x155ac4=_[_0xfe06('0x24')](_0x4001ca,_0x57d7f7);}return _0x155ac4;}function getCustomFields(_0x37b01b,_0x1ff9ef){var _0x3c8a09=[];var _0x2a9898={'custom_fields':{}};if(_0x37b01b[_0xfe06('0x25')]>0x0){_['forEach'](_0x37b01b,function(_0x4e632c){if(_0x4e632c[_0xfe06('0x26')]==='string'&&_0x4e632c[_0xfe06('0x27')]&&!_0x4e632c[_0xfe06('0x28')]){_0x2a9898[_0x4e632c[_0xfe06('0x27')]['toLowerCase']()]=_0x4e632c[_0xfe06('0x29')][_0xfe06('0x1e')]();}else if(_0x4e632c['type']===_0xfe06('0x2a')&&_0x4e632c[_0xfe06('0x2b')]&&_0x4e632c[_0xfe06('0x28')]){_0x2a9898['custom_fields'][_0x4e632c[_0xfe06('0x2b')]]=_0x4e632c['content'][_0xfe06('0x1e')]();}else if(_0x4e632c[_0xfe06('0x26')]==='variable'&&_0x4e632c[_0xfe06('0x2c')]&&_0x4e632c[_0xfe06('0x2b')]&&_0x4e632c[_0xfe06('0x28')]){_0x1ff9ef[_0x4e632c['variableName']]&&(_0x2a9898['custom_fields'][_0x4e632c[_0xfe06('0x2b')]]=_0x1ff9ef[_0x4e632c[_0xfe06('0x2c')]][_0xfe06('0x1e')]());}else if(_0x4e632c[_0xfe06('0x26')]===_0xfe06('0x2d')&&_0x4e632c[_0xfe06('0x2e')]&&_0x4e632c[_0xfe06('0x2e')]['name']&&_0x4e632c[_0xfe06('0x2b')]&&_0x4e632c[_0xfe06('0x28')]){_0x1ff9ef[_0x4e632c[_0xfe06('0x2e')][_0xfe06('0x2f')][_0xfe06('0x30')]()]&&(_0x2a9898['custom_fields'][_0x4e632c[_0xfe06('0x2b')]]=_0x1ff9ef[_0x4e632c[_0xfe06('0x2e')]['name']['toLowerCase']()][_0xfe06('0x1e')]());}});}if(_0x2a9898[_0xfe06('0x31')]){_0x2a9898['priority']=Number(_0x2a9898[_0xfe06('0x31')]);}return _0x2a9898;}function getTicket(_0x238f79,_0x384e9,_0x19f24b,_0x1f00ad,_0x30da08){logger['info'](_0xfe06('0x32'));var _0x535670=_['merge']({'subject':intUtil[_0xfe06('0x33')](_0x1f00ad[_0xfe06('0x34')],_0x30da08,'\x20'),'type':_0xfe06('0x35'),'status':_0xfe06('0x36'),'labels':[_0xfe06('0x37'),_0xfe06('0x38'),_0xfe06('0x39')][_0xfe06('0x3a')](getTags(_0x1f00ad[_0xfe06('0x3b')],_0xfe06('0x2f'))),'description':intUtil[_0xfe06('0x33')](_0x1f00ad[_0xfe06('0x3c')],_0x30da08,'\x0a'),'_links':{'assigned_user':{'href':util[_0xfe06('0xb')](_0xfe06('0x3d'),_0x384e9['id']),'class':'user'}},'message':{'direction':'in','body':intUtil[_0xfe06('0x33')](_0x1f00ad[_0xfe06('0x3c')],_0x30da08,'\x0a')}},getCustomFields(_0x1f00ad[_0xfe06('0x3e')],_0x30da08));return request({'uri':util[_0xfe06('0xb')](_0xfe06('0x3f'),_0x238f79[_0xfe06('0xd')],_0x19f24b['id']),'method':_0xfe06('0x40'),'body':_0x535670});}exports[_0xfe06('0x41')]=function(_0x65552d,_0x2284ad,_0x597364,_0x326fb4,_0x29a0ff,_0x55cf5f){var _0x9bc6,_0x41b02e;_0x55cf5f[_0xfe06('0xd')]=intUtil[_0xfe06('0x42')](_0x55cf5f[_0xfe06('0xd')]);_0x55cf5f[_0xfe06('0x43')]=intUtil[_0xfe06('0x42')](_0x55cf5f['serverUrl']);if(_0x29a0ff&&_0x29a0ff[_0xfe06('0x44')]){logger['info'](_0xfe06('0x45'),_0xfe06('0x46'));_0x2284ad[_0xfe06('0x47')]=util['format'](_0xfe06('0x48'),_0x55cf5f['serverUrl'],_0x2284ad[_0xfe06('0x49')],md5(_0x2284ad[_0xfe06('0x49')]));}else{_0x2284ad[_0xfe06('0x47')]='';}headers[_0xfe06('0x4a')]=getAuth(_0x55cf5f);return getUser(_0x55cf5f,_0x326fb4[_0xfe06('0x4b')])['then'](function(_0x37ed2e){_0x9bc6=_0x37ed2e;logger[_0xfe06('0x9')]('The\x20User\x20ID\x20is:',_0x9bc6['id']);return getEndUser(_0x55cf5f,_0x2284ad[_0xfe06('0x4c')],_0x2284ad['calleridnum']);})[_0xfe06('0xe')](function(_0x39c1a9){_0x41b02e=_0x39c1a9;logger['info'](_0xfe06('0x4d'),_0x41b02e['id']);return getTicket(_0x55cf5f,_0x9bc6,_0x41b02e,_0x597364,_0x2284ad);})[_0xfe06('0xe')](function(_0x1a679d){if(_0x1a679d){logger[_0xfe06('0x9')](_0xfe06('0x4e'));logger[_0xfe06('0x9')](_0xfe06('0x4f'),_0x1a679d['id']);switch(_0x55cf5f[_0xfe06('0x26')]){case _0xfe06('0x50'):logger[_0xfe06('0x9')](_0xfe06('0x45'),_0xfe06('0x51'));emit(util[_0xfe06('0xb')]('user:%s',_0x326fb4[_0xfe06('0x2f')]),_0xfe06('0x52'),{'recordId':_0x1a679d['id']});break;case _0xfe06('0x53'):logger[_0xfe06('0x9')](_0xfe06('0x45'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xfe06('0xb')](_0xfe06('0x54'),_0x326fb4[_0xfe06('0x2f')]),'trigger:browser:url',{'uri':util['format'](_0xfe06('0x55'),_0x1a679d['id'])});break;default:logger[_0xfe06('0x56')]('[QUEUE]',_0xfe06('0x57'));}}})[_0xfe06('0x58')](function(_0x249185){console[_0xfe06('0x56')](_0x249185);logger[_0xfe06('0x56')]('[QUEUE]',JSON[_0xfe06('0x17')](_0x249185));});};exports[_0xfe06('0x59')]=function(_0x330c94,_0x283aa3,_0xc30fd9,_0x303888,_0x2869b4,_0x324ce4,_0x5bc5f0){var _0x383716,_0x4b7eef;_0x324ce4[_0xfe06('0xd')]=intUtil[_0xfe06('0x42')](_0x324ce4[_0xfe06('0xd')]);_0x324ce4['serverUrl']=intUtil[_0xfe06('0x42')](_0x324ce4[_0xfe06('0x43')]);if(_0x5bc5f0&&_0x5bc5f0[_0xfe06('0x5a')]&&_0x5bc5f0[_0xfe06('0x5a')]!==_0xfe06('0x5b')){logger[_0xfe06('0x9')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x283aa3[_0xfe06('0x47')]=util[_0xfe06('0xb')](_0xfe06('0x48'),_0x324ce4[_0xfe06('0x43')],_0x283aa3[_0xfe06('0x49')],md5(_0x283aa3['uniqueid']));}headers[_0xfe06('0x4a')]=getAuth(_0x324ce4);return getUser(_0x324ce4,_0x303888['email'])[_0xfe06('0xe')](function(_0x1630f2){_0x383716=_0x1630f2;logger[_0xfe06('0x9')](_0xfe06('0x5c'),_0x383716['id']);return getEndUser(_0x324ce4,_0x283aa3[_0xfe06('0x5d')],_0x283aa3[_0xfe06('0x5e')]);})['then'](function(_0x16b3d0){_0x4b7eef=_0x16b3d0;logger[_0xfe06('0x9')]('The\x20Enduser\x20ID\x20is:',_0x4b7eef['id']);return getTicket(_0x324ce4,_0x383716,_0x4b7eef,_0xc30fd9,_0x283aa3);})[_0xfe06('0xe')](function(_0x4a557b){if(_0x4a557b){logger[_0xfe06('0x9')]('Ticket\x20created!');logger[_0xfe06('0x9')](_0xfe06('0x4f'),_0x4a557b['id']);switch(_0x324ce4[_0xfe06('0x26')]){case _0xfe06('0x50'):logger['info'](_0xfe06('0x45'),_0xfe06('0x51'));emit(util['format'](_0xfe06('0x54'),_0x303888[_0xfe06('0x2f')]),_0xfe06('0x52'),{'recordId':_0x4a557b['id']});break;case _0xfe06('0x53'):logger['info'](_0xfe06('0x45'),_0xfe06('0x5f'));emit(util[_0xfe06('0xb')](_0xfe06('0x54'),_0x303888[_0xfe06('0x2f')]),_0xfe06('0x60'),{'uri':util['format']('%s/agent/tickets/%s',_0x324ce4['remoteUri'],_0x4a557b['id'])});break;default:logger[_0xfe06('0x56')]('[OUTBOUND]',_0xfe06('0x57'));}}})[_0xfe06('0x58')](function(_0x505501){logger[_0xfe06('0x56')]('[OUTBOUND]',JSON['stringify'](_0x505501));});};exports[_0xfe06('0x61')]=function(_0x524859,_0x494bd9,_0x4da185,_0x118b2f,_0x27f265,_0x31b99b){var _0x3afe18,_0x2c0830;_0x31b99b[_0xfe06('0xd')]=intUtil['stripTrailingSlash'](_0x31b99b['remoteUri']);_0x31b99b[_0xfe06('0x43')]=intUtil['stripTrailingSlash'](_0x31b99b[_0xfe06('0x43')]);if(_0x27f265&&_0x27f265['monitor_format']){logger[_0xfe06('0x9')](_0xfe06('0x62'),_0xfe06('0x46'));_0x494bd9[_0xfe06('0x47')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x31b99b[_0xfe06('0x43')],_0x494bd9[_0xfe06('0x49')],md5(_0x494bd9['uniqueid']));}else{_0x494bd9['recordingURL']='';}headers[_0xfe06('0x4a')]=getAuth(_0x31b99b);return getUser(_0x31b99b)[_0xfe06('0xe')](function(_0x5885e5){_0x3afe18=_0x5885e5;logger['info'](_0xfe06('0x5c'),_0x3afe18['id']);return getEndUser(_0x31b99b,_0x494bd9[_0xfe06('0x4c')],_0x494bd9[_0xfe06('0x63')]);})[_0xfe06('0xe')](function(_0x1c5fdf){_0x2c0830=_0x1c5fdf;logger['info'](_0xfe06('0x4d'),_0x2c0830['id']);return getTicket(_0x31b99b,_0x3afe18,_0x2c0830,_0x4da185,_0x494bd9);})[_0xfe06('0xe')](function(_0x488bd9){if(_0x488bd9){logger[_0xfe06('0x9')](_0xfe06('0x4e'));logger['info'](_0xfe06('0x4f'),_0x488bd9['id']);}})[_0xfe06('0x58')](function(_0x2d9903){logger['error']('[ABANDONED]',JSON[_0xfe06('0x17')](_0x2d9903));});};
\ No newline at end of file
+var _0xce22=['%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','Authorization','email','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','integrationTab','[QUEUE]','Displaying\x20ticket\x20to\x20agent...','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','https://xcally.desk.com/web/agent/case/%d','error','catch','outbound','recordingFormat','none','[OUTBOUND]','uniqueid','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','%s/agent/tickets/%s','abandoned','[ABANDONED]','calleridname','lodash','request-promise','md5','util','ioredis','../../../../config/environment','desk','redis','defaults','localhost','socket.io-emitter','emit','application/json','info','Getting\x20agent\x20with\x20email','%s/users','remoteUri','total_entries','find','_embedded','then','%s/users/me','debug','[HTTP]','stringify','authType','basic','format','%s:%s','username','%s/token:%s','token','Basic\x20%s','Enduser\x20found!','entries','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','work','length','forEach','type','string','customField','nameField','toLowerCase','content','toString','idField','custom_fields','variableName','customVariable','Variable','name','priority','Creating\x20new\x20ticket...','merge','Subjects','phone','xCALLY','Motion','CTI','concat','Tags','getString','Descriptions','user','Fields','%s/customers/%d/cases','stripTrailingSlash','serverUrl','monitor_format','Recording\x20is\x20enabled!','recordingURL'];(function(_0x1a8b19,_0x47207c){var _0x490181=function(_0x5b8459){while(--_0x5b8459){_0x1a8b19['push'](_0x1a8b19['shift']());}};_0x490181(++_0x47207c);}(_0xce22,0xea));var _0x2ce2=function(_0x391448,_0x54b4d2){_0x391448=_0x391448-0x0;var _0x5b10bb=_0xce22[_0x391448];return _0x5b10bb;};'use strict';var _=require(_0x2ce2('0x0'));var rp=require(_0x2ce2('0x1'));var md5=require(_0x2ce2('0x2'));var util=require(_0x2ce2('0x3'));var Redis=require(_0x2ce2('0x4'));var intUtil=require('./util');var config=require(_0x2ce2('0x5'));var logger=require('../../../../config/logger')(_0x2ce2('0x6'));config[_0x2ce2('0x7')]=_[_0x2ce2('0x8')](config[_0x2ce2('0x7')],{'host':_0x2ce2('0x9'),'port':0x18eb});var io=require(_0x2ce2('0xa'))(new Redis(config[_0x2ce2('0x7')]));function emit(_0x4d0c17,_0x225737,_0x111f56){io['to'](_0x4d0c17)[_0x2ce2('0xb')](_0x225737,_0x111f56);}var headers={'Content-Type':_0x2ce2('0xc'),'Accept':_0x2ce2('0xc')};function getUser(_0x1dff2c,_0x56b53e){logger[_0x2ce2('0xd')](_0x2ce2('0xe'),_0x56b53e);return request({'uri':util['format'](_0x2ce2('0xf'),_0x1dff2c[_0x2ce2('0x10')])})['then'](function(_0xaa959){if(_0xaa959[_0x2ce2('0x11')]){return _[_0x2ce2('0x12')](_0xaa959[_0x2ce2('0x13')]['entries'],{'email':_0x56b53e});}})[_0x2ce2('0x14')](function(_0x112244){if(_0x112244){logger[_0x2ce2('0xd')]('Agent\x20found!');return _0x112244;}else{logger[_0x2ce2('0xd')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util['format'](_0x2ce2('0x15'),_0x1dff2c[_0x2ce2('0x10')])});}});}function request(_0x447eb7){logger[_0x2ce2('0x16')](_0x2ce2('0x17'),JSON[_0x2ce2('0x18')](_0x447eb7));return rp(_[_0x2ce2('0x8')](_0x447eb7,{'method':'GET','headers':headers,'json':!![]}));}function getAuth(_0x4d0a0f){var _0x515f90;if(_0x4d0a0f[_0x2ce2('0x19')]===_0x2ce2('0x1a')){_0x515f90=util[_0x2ce2('0x1b')](_0x2ce2('0x1c'),_0x4d0a0f[_0x2ce2('0x1d')],_0x4d0a0f['password']);}else if(_0x4d0a0f[_0x2ce2('0x19')]==='token'){_0x515f90=util[_0x2ce2('0x1b')](_0x2ce2('0x1e'),_0x4d0a0f[_0x2ce2('0x1d')],_0x4d0a0f[_0x2ce2('0x1f')]);}return util[_0x2ce2('0x1b')](_0x2ce2('0x20'),new Buffer(_0x515f90)['toString']('base64'));}function getEndUser(_0x114473,_0x3d07ec,_0x3328ad){logger[_0x2ce2('0xd')]('Searching\x20enduser\x20with\x20phone',_0x3328ad);return request({'uri':util['format']('%s/customers/search',_0x114473[_0x2ce2('0x10')]),'qs':{'phone':_0x3328ad}})[_0x2ce2('0x14')](function(_0x4ae9b9){if(_0x4ae9b9[_0x2ce2('0x11')]){logger[_0x2ce2('0xd')](_0x2ce2('0x21'));return _0x4ae9b9[_0x2ce2('0x13')][_0x2ce2('0x22')][0x0];}else{logger[_0x2ce2('0xd')](_0x2ce2('0x23'));return request({'uri':util['format']('%s/customers',_0x114473[_0x2ce2('0x10')]),'method':'POST','body':{'first_name':_0x3d07ec,'title':_0x3d07ec,'phone_numbers':[{'type':_0x2ce2('0x24'),'value':_0x3328ad}]}});}});}function getTags(_0x2e3296,_0x3a701e){var _0x44018f=[];if(_0x2e3296&&_0x2e3296[_0x2ce2('0x25')]>0x0){_0x44018f=_['map'](_0x2e3296,_0x3a701e);}return _0x44018f;}function getCustomFields(_0x585752,_0x2cd71d){var _0x561548=[];var _0xcaef4c={'custom_fields':{}};if(_0x585752[_0x2ce2('0x25')]>0x0){_[_0x2ce2('0x26')](_0x585752,function(_0x137d06){if(_0x137d06[_0x2ce2('0x27')]===_0x2ce2('0x28')&&_0x137d06['nameField']&&!_0x137d06[_0x2ce2('0x29')]){_0xcaef4c[_0x137d06[_0x2ce2('0x2a')][_0x2ce2('0x2b')]()]=_0x137d06[_0x2ce2('0x2c')][_0x2ce2('0x2d')]();}else if(_0x137d06[_0x2ce2('0x27')]===_0x2ce2('0x28')&&_0x137d06[_0x2ce2('0x2e')]&&_0x137d06['customField']){_0xcaef4c[_0x2ce2('0x2f')][_0x137d06['idField']]=_0x137d06['content'][_0x2ce2('0x2d')]();}else if(_0x137d06[_0x2ce2('0x27')]==='variable'&&_0x137d06[_0x2ce2('0x30')]&&_0x137d06[_0x2ce2('0x2e')]&&_0x137d06[_0x2ce2('0x29')]){_0x2cd71d[_0x137d06[_0x2ce2('0x30')]]&&(_0xcaef4c[_0x2ce2('0x2f')][_0x137d06[_0x2ce2('0x2e')]]=_0x2cd71d[_0x137d06['variableName']][_0x2ce2('0x2d')]());}else if(_0x137d06[_0x2ce2('0x27')]===_0x2ce2('0x31')&&_0x137d06[_0x2ce2('0x32')]&&_0x137d06['Variable'][_0x2ce2('0x33')]&&_0x137d06[_0x2ce2('0x2e')]&&_0x137d06[_0x2ce2('0x29')]){_0x2cd71d[_0x137d06[_0x2ce2('0x32')][_0x2ce2('0x33')][_0x2ce2('0x2b')]()]&&(_0xcaef4c[_0x2ce2('0x2f')][_0x137d06[_0x2ce2('0x2e')]]=_0x2cd71d[_0x137d06[_0x2ce2('0x32')][_0x2ce2('0x33')][_0x2ce2('0x2b')]()]['toString']());}});}if(_0xcaef4c[_0x2ce2('0x34')]){_0xcaef4c[_0x2ce2('0x34')]=Number(_0xcaef4c[_0x2ce2('0x34')]);}return _0xcaef4c;}function getTicket(_0x365f1a,_0x2db87a,_0x25202d,_0x2a098d,_0x1612ea){logger[_0x2ce2('0xd')](_0x2ce2('0x35'));var _0x2a4d3f=_[_0x2ce2('0x36')]({'subject':intUtil['getString'](_0x2a098d[_0x2ce2('0x37')],_0x1612ea,'\x20'),'type':_0x2ce2('0x38'),'status':'new','labels':[_0x2ce2('0x39'),_0x2ce2('0x3a'),_0x2ce2('0x3b')][_0x2ce2('0x3c')](getTags(_0x2a098d[_0x2ce2('0x3d')],'name')),'description':intUtil[_0x2ce2('0x3e')](_0x2a098d[_0x2ce2('0x3f')],_0x1612ea,'\x0a'),'_links':{'assigned_user':{'href':util[_0x2ce2('0x1b')]('/api/v2/users/%d',_0x2db87a['id']),'class':_0x2ce2('0x40')}},'message':{'direction':'in','body':intUtil[_0x2ce2('0x3e')](_0x2a098d[_0x2ce2('0x3f')],_0x1612ea,'\x0a')}},getCustomFields(_0x2a098d[_0x2ce2('0x41')],_0x1612ea));return request({'uri':util[_0x2ce2('0x1b')](_0x2ce2('0x42'),_0x365f1a[_0x2ce2('0x10')],_0x25202d['id']),'method':'POST','body':_0x2a4d3f});}exports['queue']=function(_0x28a48d,_0x41ae64,_0x3a7d2b,_0x13d3a6,_0x43874b,_0x2d6208){var _0x586d42,_0x611fe8;_0x2d6208[_0x2ce2('0x10')]=intUtil[_0x2ce2('0x43')](_0x2d6208[_0x2ce2('0x10')]);_0x2d6208['serverUrl']=intUtil['stripTrailingSlash'](_0x2d6208[_0x2ce2('0x44')]);if(_0x43874b&&_0x43874b[_0x2ce2('0x45')]){logger[_0x2ce2('0xd')]('[QUEUE]',_0x2ce2('0x46'));_0x41ae64[_0x2ce2('0x47')]=util[_0x2ce2('0x1b')](_0x2ce2('0x48'),_0x2d6208[_0x2ce2('0x44')],_0x41ae64['uniqueid'],md5(_0x41ae64['uniqueid']));}else{_0x41ae64[_0x2ce2('0x47')]='';}headers[_0x2ce2('0x49')]=getAuth(_0x2d6208);return getUser(_0x2d6208,_0x13d3a6[_0x2ce2('0x4a')])[_0x2ce2('0x14')](function(_0x13ab26){_0x586d42=_0x13ab26;logger[_0x2ce2('0xd')]('The\x20User\x20ID\x20is:',_0x586d42['id']);return getEndUser(_0x2d6208,_0x41ae64['calleridname'],_0x41ae64[_0x2ce2('0x4b')]);})[_0x2ce2('0x14')](function(_0x2b2c18){_0x611fe8=_0x2b2c18;logger[_0x2ce2('0xd')](_0x2ce2('0x4c'),_0x611fe8['id']);return getTicket(_0x2d6208,_0x586d42,_0x611fe8,_0x3a7d2b,_0x41ae64);})[_0x2ce2('0x14')](function(_0x59fe0c){if(_0x59fe0c){logger[_0x2ce2('0xd')](_0x2ce2('0x4d'));logger['info'](_0x2ce2('0x4e'),_0x59fe0c['id']);switch(_0x2d6208[_0x2ce2('0x27')]){case _0x2ce2('0x4f'):logger['info'](_0x2ce2('0x50'),_0x2ce2('0x51'));emit(util[_0x2ce2('0x1b')]('user:%s',_0x13d3a6['name']),_0x2ce2('0x52'),{'recordId':_0x59fe0c['id']});break;case _0x2ce2('0x53'):logger[_0x2ce2('0xd')](_0x2ce2('0x50'),_0x2ce2('0x54'));emit(util['format'](_0x2ce2('0x55'),_0x13d3a6[_0x2ce2('0x33')]),_0x2ce2('0x56'),{'uri':util[_0x2ce2('0x1b')](_0x2ce2('0x57'),_0x59fe0c['id'])});break;default:logger[_0x2ce2('0x58')]('[QUEUE]','Desk\x20account\x20type\x20not\x20recognized');}}})[_0x2ce2('0x59')](function(_0x1e4463){console[_0x2ce2('0x58')](_0x1e4463);logger[_0x2ce2('0x58')](_0x2ce2('0x50'),JSON[_0x2ce2('0x18')](_0x1e4463));});};exports[_0x2ce2('0x5a')]=function(_0x5037d8,_0x4b630f,_0x4f5a05,_0x8f2768,_0x3a68ea,_0x67a663,_0x3791fd){var _0x64015,_0x168917;_0x67a663[_0x2ce2('0x10')]=intUtil[_0x2ce2('0x43')](_0x67a663['remoteUri']);_0x67a663[_0x2ce2('0x44')]=intUtil[_0x2ce2('0x43')](_0x67a663[_0x2ce2('0x44')]);if(_0x3791fd&&_0x3791fd[_0x2ce2('0x5b')]&&_0x3791fd[_0x2ce2('0x5b')]!==_0x2ce2('0x5c')){logger[_0x2ce2('0xd')](_0x2ce2('0x5d'),_0x2ce2('0x46'));_0x4b630f[_0x2ce2('0x47')]=util[_0x2ce2('0x1b')](_0x2ce2('0x48'),_0x67a663[_0x2ce2('0x44')],_0x4b630f['uniqueid'],md5(_0x4b630f[_0x2ce2('0x5e')]));}headers[_0x2ce2('0x49')]=getAuth(_0x67a663);return getUser(_0x67a663,_0x8f2768[_0x2ce2('0x4a')])['then'](function(_0x3264a9){_0x64015=_0x3264a9;logger['info'](_0x2ce2('0x5f'),_0x64015['id']);return getEndUser(_0x67a663,_0x4b630f[_0x2ce2('0x60')],_0x4b630f[_0x2ce2('0x61')]);})[_0x2ce2('0x14')](function(_0x8374f9){_0x168917=_0x8374f9;logger[_0x2ce2('0xd')](_0x2ce2('0x4c'),_0x168917['id']);return getTicket(_0x67a663,_0x64015,_0x168917,_0x4f5a05,_0x4b630f);})[_0x2ce2('0x14')](function(_0x44b1bc){if(_0x44b1bc){logger['info'](_0x2ce2('0x4d'));logger[_0x2ce2('0xd')]('The\x20Ticket\x20ID\x20is:',_0x44b1bc['id']);switch(_0x67a663[_0x2ce2('0x27')]){case _0x2ce2('0x4f'):logger[_0x2ce2('0xd')](_0x2ce2('0x50'),_0x2ce2('0x51'));emit(util[_0x2ce2('0x1b')]('user:%s',_0x8f2768[_0x2ce2('0x33')]),_0x2ce2('0x52'),{'recordId':_0x44b1bc['id']});break;case _0x2ce2('0x53'):logger[_0x2ce2('0xd')](_0x2ce2('0x50'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x2ce2('0x1b')](_0x2ce2('0x55'),_0x8f2768[_0x2ce2('0x33')]),'trigger:browser:url',{'uri':util[_0x2ce2('0x1b')](_0x2ce2('0x62'),_0x67a663[_0x2ce2('0x10')],_0x44b1bc['id'])});break;default:logger[_0x2ce2('0x58')]('[OUTBOUND]','Desk\x20account\x20type\x20not\x20recognized');}}})['catch'](function(_0x2f1cec){logger['error'](_0x2ce2('0x5d'),JSON[_0x2ce2('0x18')](_0x2f1cec));});};exports[_0x2ce2('0x63')]=function(_0xc47e99,_0x1a1fbc,_0x54ce48,_0x210f65,_0x583a87,_0x62bc0a){var _0x1b600a,_0x172398;_0x62bc0a[_0x2ce2('0x10')]=intUtil[_0x2ce2('0x43')](_0x62bc0a['remoteUri']);_0x62bc0a['serverUrl']=intUtil['stripTrailingSlash'](_0x62bc0a['serverUrl']);if(_0x583a87&&_0x583a87[_0x2ce2('0x45')]){logger[_0x2ce2('0xd')](_0x2ce2('0x64'),_0x2ce2('0x46'));_0x1a1fbc[_0x2ce2('0x47')]=util['format'](_0x2ce2('0x48'),_0x62bc0a['serverUrl'],_0x1a1fbc[_0x2ce2('0x5e')],md5(_0x1a1fbc[_0x2ce2('0x5e')]));}else{_0x1a1fbc[_0x2ce2('0x47')]='';}headers[_0x2ce2('0x49')]=getAuth(_0x62bc0a);return getUser(_0x62bc0a)[_0x2ce2('0x14')](function(_0x1a42d8){_0x1b600a=_0x1a42d8;logger['info'](_0x2ce2('0x5f'),_0x1b600a['id']);return getEndUser(_0x62bc0a,_0x1a1fbc[_0x2ce2('0x65')],_0x1a1fbc[_0x2ce2('0x4b')]);})['then'](function(_0x33d67f){_0x172398=_0x33d67f;logger[_0x2ce2('0xd')](_0x2ce2('0x4c'),_0x172398['id']);return getTicket(_0x62bc0a,_0x1b600a,_0x172398,_0x54ce48,_0x1a1fbc);})['then'](function(_0x158894){if(_0x158894){logger[_0x2ce2('0xd')](_0x2ce2('0x4d'));logger[_0x2ce2('0xd')](_0x2ce2('0x4e'),_0x158894['id']);}})['catch'](function(_0x24be35){logger['error']('[ABANDONED]',JSON[_0x2ce2('0x18')](_0x24be35));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['keyBy','%s/api/v2/tickets','remoteUri','POST','then','Getting\x20agent\x20with\x20email','%s/api/v2/agents','length','Agent\x20found!','contact','email','Admin\x20account\x20selected.','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','find','Enduser\x20created.','Basic\x20%s','base64','[HTTP]','stringify','map','forEach','string','customField','nameField','toLowerCase','content','toString','type','idField','custom_fields','push','variable','variableName','customVariable','Variable','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d','catch','error','outbound','recordingFormat','none','[OUTBOUND]','Authorization','destcalleridname','destcalleridnum','[ABANDONED]','Recording\x20is\x20enabled!','lodash','md5','util','./util','../../../../config/environment','../../../../config/logger','defaults','redis','localhost','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','merge','format','Caller\x20-\x20%s','calleridname','calleridnum','Subjects','getString','<br>','Tags','name','Fields','mapValues'];(function(_0x1747ec,_0x7a205b){var _0x4e81a4=function(_0x38f287){while(--_0x38f287){_0x1747ec['push'](_0x1747ec['shift']());}};_0x4e81a4(++_0x7a205b);}(_0x7217,0x19e));var _0x7721=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x7217[_0x6c993a];return _0x27f547;};'use strict';var _=require(_0x7721('0x0'));var rp=require('request-promise');var md5=require(_0x7721('0x1'));var util=require(_0x7721('0x2'));var intUtil=require(_0x7721('0x3'));var config=require(_0x7721('0x4'));var logger=require(_0x7721('0x5'))('freshdesk');config['redis']=_[_0x7721('0x6')](config[_0x7721('0x7')],{'host':_0x7721('0x8'),'port':0x18eb});var io=require(_0x7721('0x9'))(config[_0x7721('0x7')]);var headers={'Content-Type':_0x7721('0xa'),'Accept':_0x7721('0xa')};function emit(_0x21f680,_0x225610,_0x2f99ed){io['to'](_0x21f680)[_0x7721('0xb')](_0x225610,_0x2f99ed);}function getTicket(_0x2a66cb,_0xfa8835,_0x138740,_0x2c3986,_0x578d59){logger[_0x7721('0xc')](_0x7721('0xd'));var _0x8729a6=_[_0x7721('0xe')]({'responder_id':_0xfa8835['id'],'requester_id':_0x138740['id'],'name':util[_0x7721('0xf')](_0x7721('0x10'),_0x578d59[_0x7721('0x11')]),'phone':_0x578d59[_0x7721('0x12')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil['getString'](_0x2c3986[_0x7721('0x13')],_0x578d59,'\x20'),'description':intUtil[_0x7721('0x14')](_0x2c3986['Descriptions'],_0x578d59,_0x7721('0x15')),'tags':getTags(_0x2c3986[_0x7721('0x16')],_0x7721('0x17'))},getCustomFields(_0x2c3986[_0x7721('0x18')],_0x578d59));_0x8729a6['custom_fields']=_[_0x7721('0x19')](_[_0x7721('0x1a')](_0x8729a6['custom_fields'],'id'),'value');return request({'uri':util['format'](_0x7721('0x1b'),_0x2a66cb[_0x7721('0x1c')]),'method':_0x7721('0x1d'),'body':_0x8729a6})[_0x7721('0x1e')](function(_0x5ed94b){logger[_0x7721('0xc')]('Ticket\x20created!');return _0x5ed94b;});}function getUser(_0x3fc09e,_0x5cb0e6){logger[_0x7721('0xc')](_0x7721('0x1f'),_0x5cb0e6);return request({'uri':util[_0x7721('0xf')](_0x7721('0x20'),_0x3fc09e[_0x7721('0x1c')]),'qs':{'email':_0x5cb0e6}})[_0x7721('0x1e')](function(_0x402820){if(_0x402820[_0x7721('0x21')]){logger[_0x7721('0xc')](_0x7721('0x22'));return _['find'](_0x402820,function(_0x288f7e){return _0x288f7e[_0x7721('0x23')][_0x7721('0x24')]===_0x5cb0e6;});}else{logger[_0x7721('0xc')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0x7721('0xf')]('%s/api/v2/agents/me',_0x3fc09e[_0x7721('0x1c')])})[_0x7721('0x1e')](function(_0x3e8a4e){logger[_0x7721('0xc')](_0x7721('0x25'));return _0x3e8a4e;});}});}function getEndUser(_0x395b15,_0x2c6b7b,_0x5b4d74){logger[_0x7721('0xc')](_0x7721('0x26'),_0x5b4d74);return request({'uri':util[_0x7721('0xf')](_0x7721('0x27'),_0x395b15[_0x7721('0x1c')]),'qs':{'phone':_0x5b4d74}})[_0x7721('0x1e')](function(_0x424e05){if(_0x424e05[_0x7721('0x21')]){logger[_0x7721('0xc')]('Enduser\x20found!');return _[_0x7721('0x28')](_0x424e05,{'phone':_0x5b4d74});}else{logger['info']('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0x7721('0xf')](_0x7721('0x27'),_0x395b15[_0x7721('0x1c')]),'method':_0x7721('0x1d'),'body':{'name':_0x2c6b7b,'phone':_0x5b4d74}})[_0x7721('0x1e')](function(_0x37b9f0){logger[_0x7721('0xc')](_0x7721('0x29'));return _0x37b9f0;});}});}function getAuth(_0x5c54f0){return util[_0x7721('0xf')](_0x7721('0x2a'),new Buffer(_0x5c54f0['apiKey']+':X')['toString'](_0x7721('0x2b')));}function request(_0x220bbf){logger['debug'](_0x7721('0x2c'),JSON[_0x7721('0x2d')](_0x220bbf));return rp(_[_0x7721('0x6')](_0x220bbf,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0x3d9a32,_0x1ff31b){var _0x1492d4=[];if(_0x3d9a32&&_0x3d9a32[_0x7721('0x21')]>0x0){_0x1492d4=_[_0x7721('0x2e')](_0x3d9a32,_0x1ff31b);}return _0x1492d4;}function getCustomFields(_0x508202,_0x195ffb){var _0x3e4e56=[];var _0xb2386d={'custom_fields':[]};if(_0x508202['length']>0x0){_[_0x7721('0x2f')](_0x508202,function(_0x213a2e){if(_0x213a2e['type']===_0x7721('0x30')&&_0x213a2e['nameField']&&!_0x213a2e[_0x7721('0x31')]){_0xb2386d[_0x213a2e[_0x7721('0x32')][_0x7721('0x33')]()]=_0x213a2e[_0x7721('0x34')][_0x7721('0x35')]();}else if(_0x213a2e[_0x7721('0x36')]===_0x7721('0x30')&&_0x213a2e[_0x7721('0x37')]&&_0x213a2e[_0x7721('0x31')]){_0xb2386d[_0x7721('0x38')][_0x7721('0x39')]({'id':_0x213a2e['idField'],'value':_0x213a2e[_0x7721('0x34')]['toString']()});}else if(_0x213a2e[_0x7721('0x36')]===_0x7721('0x3a')&&_0x213a2e[_0x7721('0x3b')]&&_0x213a2e[_0x7721('0x37')]&&_0x213a2e[_0x7721('0x31')]){_0x195ffb[_0x213a2e[_0x7721('0x3b')]]&&_0xb2386d['custom_fields']['push']({'id':_0x213a2e['idField'],'value':_0x195ffb[_0x213a2e['variableName']][_0x7721('0x35')]()});}else if(_0x213a2e[_0x7721('0x36')]===_0x7721('0x3c')&&_0x213a2e[_0x7721('0x3d')]&&_0x213a2e['Variable'][_0x7721('0x17')]&&_0x213a2e['idField']&&_0x213a2e[_0x7721('0x31')]){_0x195ffb[_0x213a2e[_0x7721('0x3d')]['name'][_0x7721('0x33')]()]&&_0xb2386d[_0x7721('0x38')]['push']({'id':_0x213a2e['idField'],'value':_0x195ffb[_0x213a2e[_0x7721('0x3d')][_0x7721('0x17')][_0x7721('0x33')]()][_0x7721('0x35')]()});}});}return _0xb2386d;}exports['queue']=function(_0x2db173,_0x120de9,_0x40ce8c,_0x337abf,_0x196051,_0x52ab67){var _0x490d4,_0x4a2c28;_0x52ab67[_0x7721('0x1c')]=intUtil['stripTrailingSlash'](_0x52ab67[_0x7721('0x1c')]);_0x52ab67[_0x7721('0x3e')]=intUtil[_0x7721('0x3f')](_0x52ab67['serverUrl']);if(_0x196051&&_0x196051[_0x7721('0x40')]){logger[_0x7721('0xc')](_0x7721('0x41'),'Recording\x20is\x20enabled!');_0x120de9[_0x7721('0x42')]=util[_0x7721('0xf')](_0x7721('0x43'),_0x52ab67[_0x7721('0x3e')],_0x120de9[_0x7721('0x44')],md5(_0x120de9[_0x7721('0x44')]));}else{_0x120de9[_0x7721('0x42')]='';}headers['Authorization']=getAuth(_0x52ab67);return getUser(_0x52ab67,_0x337abf['email'])[_0x7721('0x1e')](function(_0x1fdc79){_0x490d4=_0x1fdc79;logger[_0x7721('0xc')](_0x7721('0x45'),_0x490d4['id']);return getEndUser(_0x52ab67,_0x120de9[_0x7721('0x11')],_0x120de9[_0x7721('0x12')]);})[_0x7721('0x1e')](function(_0x2966fe){_0x4a2c28=_0x2966fe;logger[_0x7721('0xc')](_0x7721('0x46'),_0x4a2c28['id']);return getTicket(_0x52ab67,_0x490d4,_0x4a2c28,_0x40ce8c,_0x120de9);})['then'](function(_0x578867){if(_0x578867&&_0x578867['id']){logger[_0x7721('0xc')](_0x7721('0x47'));logger[_0x7721('0xc')](_0x7721('0x48'),_0x578867['id']);logger['info'](_0x7721('0x41'),_0x7721('0x49'));emit(util['format'](_0x7721('0x4a'),_0x337abf['name']),_0x7721('0x4b'),{'uri':util['format'](_0x7721('0x4c'),_0x52ab67[_0x7721('0x1c')],_0x578867['id'])});}})[_0x7721('0x4d')](function(_0x4eda58){logger[_0x7721('0x4e')](_0x7721('0x41'),JSON['stringify'](_0x4eda58));});};exports[_0x7721('0x4f')]=function(_0x1196c2,_0xf88e8c,_0x5c4078,_0x20ba21,_0x5a32b6,_0xdb1ca8,_0x310549){var _0x4738ef,_0x443503;_0xdb1ca8[_0x7721('0x1c')]=intUtil[_0x7721('0x3f')](_0xdb1ca8[_0x7721('0x1c')]);_0xdb1ca8[_0x7721('0x3e')]=intUtil[_0x7721('0x3f')](_0xdb1ca8[_0x7721('0x3e')]);if(_0x310549&&_0x310549[_0x7721('0x50')]&&_0x310549[_0x7721('0x50')]!==_0x7721('0x51')){logger[_0x7721('0xc')](_0x7721('0x52'),'Recording\x20is\x20enabled!');_0xf88e8c[_0x7721('0x42')]=util[_0x7721('0xf')](_0x7721('0x43'),_0xdb1ca8[_0x7721('0x3e')],_0xf88e8c[_0x7721('0x44')],md5(_0xf88e8c[_0x7721('0x44')]));}headers[_0x7721('0x53')]=getAuth(_0xdb1ca8);return getUser(_0xdb1ca8,_0x20ba21['email'])[_0x7721('0x1e')](function(_0x17036e){_0x4738ef=_0x17036e;logger[_0x7721('0xc')](_0x7721('0x45'),_0x4738ef['id']);return getEndUser(_0xdb1ca8,_0xf88e8c[_0x7721('0x54')],_0xf88e8c[_0x7721('0x55')]);})[_0x7721('0x1e')](function(_0x33287d){_0x443503=_0x33287d;logger[_0x7721('0xc')](_0x7721('0x46'),_0x443503['id']);return getTicket(_0xdb1ca8,_0x4738ef,_0x443503,_0x5c4078,_0xf88e8c);})[_0x7721('0x1e')](function(_0x52e870){if(_0x52e870&&_0x52e870['id']){logger[_0x7721('0xc')](_0x7721('0x47'));logger[_0x7721('0xc')](_0x7721('0x48'),_0x52e870['id']);logger[_0x7721('0xc')](_0x7721('0x52'),_0x7721('0x49'));emit(util[_0x7721('0xf')](_0x7721('0x4a'),_0x20ba21[_0x7721('0x17')]),_0x7721('0x4b'),{'uri':util[_0x7721('0xf')](_0x7721('0x4c'),_0xdb1ca8[_0x7721('0x1c')],_0x52e870['id'])});}})[_0x7721('0x4d')](function(_0x577f47){logger['error']('[OUTBOUND]',JSON[_0x7721('0x2d')](_0x577f47));});};exports['abandoned']=function(_0x4a46db,_0x57348c,_0x5d7036,_0x47925a,_0x219181,_0x13f254){var _0x5343a1,_0x5181d7;_0x13f254['remoteUri']=intUtil['stripTrailingSlash'](_0x13f254['remoteUri']);_0x13f254[_0x7721('0x3e')]=intUtil['stripTrailingSlash'](_0x13f254['serverUrl']);if(_0x219181&&_0x219181['monitor_format']){logger[_0x7721('0xc')](_0x7721('0x56'),_0x7721('0x57'));_0x57348c['recordingURL']=util[_0x7721('0xf')](_0x7721('0x43'),_0x13f254[_0x7721('0x3e')],_0x57348c[_0x7721('0x44')],md5(_0x57348c[_0x7721('0x44')]));}else{_0x57348c[_0x7721('0x42')]='';}headers[_0x7721('0x53')]=getAuth(_0x13f254);return getUser(_0x13f254,_0x47925a[_0x7721('0x24')])[_0x7721('0x1e')](function(_0x197b73){_0x5343a1=_0x197b73;logger[_0x7721('0xc')](_0x7721('0x45'),_0x5343a1['id']);return getEndUser(_0x13f254,_0x57348c[_0x7721('0x11')],_0x57348c[_0x7721('0x12')]);})[_0x7721('0x1e')](function(_0x4cbd28){_0x5181d7=_0x4cbd28;logger[_0x7721('0xc')](_0x7721('0x46'),_0x5181d7['id']);return getTicket(_0x13f254,_0x5343a1,_0x5181d7,_0x5d7036,_0x57348c);})[_0x7721('0x1e')](function(_0xb6db23){if(_0xb6db23){logger['info'](_0x7721('0x47'));logger[_0x7721('0xc')]('The\x20Ticket\x20ID\x20is:',_0xb6db23['id']);}})[_0x7721('0x4d')](function(_0x5d37ad){logger[_0x7721('0x4e')](_0x7721('0x56'),JSON[_0x7721('0x2d')](_0x5d37ad));});};
\ No newline at end of file
+var _0x4a70=['remoteUri','then','Ticket\x20created!','Getting\x20agent\x20with\x20email','%s/api/v2/agents','length','Agent\x20found!','find','contact','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Admin\x20account\x20selected.','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','apiKey','toString','base64','debug','stringify','GET','map','type','nameField','customField','content','string','idField','variableName','push','Variable','toLowerCase','queue','stripTrailingSlash','serverUrl','[QUEUE]','recordingURL','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','outbound','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','%s/helpdesk/tickets/%d','abandoned','monitor_format','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','[ABANDONED]','lodash','request-promise','md5','util','./util','../../../../config/environment','../../../../config/logger','freshdesk','defaults','redis','localhost','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','format','Caller\x20-\x20%s','calleridname','calleridnum','getString','Subjects','Descriptions','Tags','name','Fields','custom_fields','mapValues','value','%s/api/v2/tickets'];(function(_0x3c7a6f,_0x53cd66){var _0x242364=function(_0x30c448){while(--_0x30c448){_0x3c7a6f['push'](_0x3c7a6f['shift']());}};_0x242364(++_0x53cd66);}(_0x4a70,0x1a4));var _0x04a7=function(_0x967959,_0x53c5c1){_0x967959=_0x967959-0x0;var _0x5c4489=_0x4a70[_0x967959];return _0x5c4489;};'use strict';var _=require(_0x04a7('0x0'));var rp=require(_0x04a7('0x1'));var md5=require(_0x04a7('0x2'));var util=require(_0x04a7('0x3'));var Redis=require('ioredis');var intUtil=require(_0x04a7('0x4'));var config=require(_0x04a7('0x5'));var logger=require(_0x04a7('0x6'))(_0x04a7('0x7'));config['redis']=_[_0x04a7('0x8')](config[_0x04a7('0x9')],{'host':_0x04a7('0xa'),'port':0x18eb});var io=require(_0x04a7('0xb'))(new Redis(config[_0x04a7('0x9')]));var headers={'Content-Type':'application/json','Accept':_0x04a7('0xc')};function emit(_0x5579f8,_0x123866,_0x29fb52){io['to'](_0x5579f8)[_0x04a7('0xd')](_0x123866,_0x29fb52);}function getTicket(_0xcb13c0,_0x97aa0e,_0x2e6a19,_0x6f5cf7,_0x2b3a87){logger[_0x04a7('0xe')](_0x04a7('0xf'));var _0x474f54=_['merge']({'responder_id':_0x97aa0e['id'],'requester_id':_0x2e6a19['id'],'name':util[_0x04a7('0x10')](_0x04a7('0x11'),_0x2b3a87[_0x04a7('0x12')]),'phone':_0x2b3a87[_0x04a7('0x13')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x04a7('0x14')](_0x6f5cf7[_0x04a7('0x15')],_0x2b3a87,'\x20'),'description':intUtil[_0x04a7('0x14')](_0x6f5cf7[_0x04a7('0x16')],_0x2b3a87,'<br>'),'tags':getTags(_0x6f5cf7[_0x04a7('0x17')],_0x04a7('0x18'))},getCustomFields(_0x6f5cf7[_0x04a7('0x19')],_0x2b3a87));_0x474f54[_0x04a7('0x1a')]=_[_0x04a7('0x1b')](_['keyBy'](_0x474f54[_0x04a7('0x1a')],'id'),_0x04a7('0x1c'));return request({'uri':util['format'](_0x04a7('0x1d'),_0xcb13c0[_0x04a7('0x1e')]),'method':'POST','body':_0x474f54})[_0x04a7('0x1f')](function(_0x132b1b){logger[_0x04a7('0xe')](_0x04a7('0x20'));return _0x132b1b;});}function getUser(_0x417116,_0x12a84a){logger['info'](_0x04a7('0x21'),_0x12a84a);return request({'uri':util[_0x04a7('0x10')](_0x04a7('0x22'),_0x417116[_0x04a7('0x1e')]),'qs':{'email':_0x12a84a}})[_0x04a7('0x1f')](function(_0x4ba02b){if(_0x4ba02b[_0x04a7('0x23')]){logger['info'](_0x04a7('0x24'));return _[_0x04a7('0x25')](_0x4ba02b,function(_0x1992c0){return _0x1992c0[_0x04a7('0x26')]['email']===_0x12a84a;});}else{logger[_0x04a7('0xe')](_0x04a7('0x27'));return request({'uri':util[_0x04a7('0x10')]('%s/api/v2/agents/me',_0x417116['remoteUri'])})[_0x04a7('0x1f')](function(_0x9d388d){logger[_0x04a7('0xe')](_0x04a7('0x28'));return _0x9d388d;});}});}function getEndUser(_0x45b216,_0x539ba9,_0x368199){logger[_0x04a7('0xe')]('Searching\x20enduser\x20with\x20phone',_0x368199);return request({'uri':util['format'](_0x04a7('0x29'),_0x45b216[_0x04a7('0x1e')]),'qs':{'phone':_0x368199}})[_0x04a7('0x1f')](function(_0x1d757c){if(_0x1d757c[_0x04a7('0x23')]){logger[_0x04a7('0xe')](_0x04a7('0x2a'));return _[_0x04a7('0x25')](_0x1d757c,{'phone':_0x368199});}else{logger['info'](_0x04a7('0x2b'));return request({'uri':util['format']('%s/api/v2/contacts',_0x45b216[_0x04a7('0x1e')]),'method':'POST','body':{'name':_0x539ba9,'phone':_0x368199}})[_0x04a7('0x1f')](function(_0x1ac369){logger['info'](_0x04a7('0x2c'));return _0x1ac369;});}});}function getAuth(_0x2d97b2){return util['format'](_0x04a7('0x2d'),new Buffer(_0x2d97b2[_0x04a7('0x2e')]+':X')[_0x04a7('0x2f')](_0x04a7('0x30')));}function request(_0x48741b){logger[_0x04a7('0x31')]('[HTTP]',JSON[_0x04a7('0x32')](_0x48741b));return rp(_[_0x04a7('0x8')](_0x48741b,{'method':_0x04a7('0x33'),'headers':headers,'json':!![]}));}function getTags(_0x4fa294,_0x1010e7){var _0x466f85=[];if(_0x4fa294&&_0x4fa294['length']>0x0){_0x466f85=_[_0x04a7('0x34')](_0x4fa294,_0x1010e7);}return _0x466f85;}function getCustomFields(_0x3262ce,_0xa9f8aa){var _0x339a89=[];var _0x284e1f={'custom_fields':[]};if(_0x3262ce[_0x04a7('0x23')]>0x0){_['forEach'](_0x3262ce,function(_0x9b9f7){if(_0x9b9f7[_0x04a7('0x35')]==='string'&&_0x9b9f7[_0x04a7('0x36')]&&!_0x9b9f7[_0x04a7('0x37')]){_0x284e1f[_0x9b9f7[_0x04a7('0x36')]['toLowerCase']()]=_0x9b9f7[_0x04a7('0x38')][_0x04a7('0x2f')]();}else if(_0x9b9f7['type']===_0x04a7('0x39')&&_0x9b9f7[_0x04a7('0x3a')]&&_0x9b9f7[_0x04a7('0x37')]){_0x284e1f[_0x04a7('0x1a')]['push']({'id':_0x9b9f7[_0x04a7('0x3a')],'value':_0x9b9f7[_0x04a7('0x38')][_0x04a7('0x2f')]()});}else if(_0x9b9f7[_0x04a7('0x35')]==='variable'&&_0x9b9f7[_0x04a7('0x3b')]&&_0x9b9f7[_0x04a7('0x3a')]&&_0x9b9f7[_0x04a7('0x37')]){_0xa9f8aa[_0x9b9f7[_0x04a7('0x3b')]]&&_0x284e1f[_0x04a7('0x1a')][_0x04a7('0x3c')]({'id':_0x9b9f7[_0x04a7('0x3a')],'value':_0xa9f8aa[_0x9b9f7[_0x04a7('0x3b')]][_0x04a7('0x2f')]()});}else if(_0x9b9f7[_0x04a7('0x35')]==='customVariable'&&_0x9b9f7[_0x04a7('0x3d')]&&_0x9b9f7[_0x04a7('0x3d')][_0x04a7('0x18')]&&_0x9b9f7[_0x04a7('0x3a')]&&_0x9b9f7['customField']){_0xa9f8aa[_0x9b9f7[_0x04a7('0x3d')][_0x04a7('0x18')][_0x04a7('0x3e')]()]&&_0x284e1f[_0x04a7('0x1a')]['push']({'id':_0x9b9f7[_0x04a7('0x3a')],'value':_0xa9f8aa[_0x9b9f7[_0x04a7('0x3d')]['name'][_0x04a7('0x3e')]()][_0x04a7('0x2f')]()});}});}return _0x284e1f;}exports[_0x04a7('0x3f')]=function(_0x216b23,_0x2d89f9,_0x373f81,_0x3addb5,_0x1f29e0,_0x175062){var _0x2dfee4,_0x2bf0bf;_0x175062[_0x04a7('0x1e')]=intUtil[_0x04a7('0x40')](_0x175062[_0x04a7('0x1e')]);_0x175062[_0x04a7('0x41')]=intUtil[_0x04a7('0x40')](_0x175062[_0x04a7('0x41')]);if(_0x1f29e0&&_0x1f29e0['monitor_format']){logger[_0x04a7('0xe')](_0x04a7('0x42'),'Recording\x20is\x20enabled!');_0x2d89f9[_0x04a7('0x43')]=util[_0x04a7('0x10')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x175062[_0x04a7('0x41')],_0x2d89f9[_0x04a7('0x44')],md5(_0x2d89f9[_0x04a7('0x44')]));}else{_0x2d89f9[_0x04a7('0x43')]='';}headers[_0x04a7('0x45')]=getAuth(_0x175062);return getUser(_0x175062,_0x3addb5[_0x04a7('0x46')])[_0x04a7('0x1f')](function(_0x53581d){_0x2dfee4=_0x53581d;logger[_0x04a7('0xe')](_0x04a7('0x47'),_0x2dfee4['id']);return getEndUser(_0x175062,_0x2d89f9[_0x04a7('0x12')],_0x2d89f9['calleridnum']);})['then'](function(_0x511a8c){_0x2bf0bf=_0x511a8c;logger['info'](_0x04a7('0x48'),_0x2bf0bf['id']);return getTicket(_0x175062,_0x2dfee4,_0x2bf0bf,_0x373f81,_0x2d89f9);})[_0x04a7('0x1f')](function(_0xa60369){if(_0xa60369&&_0xa60369['id']){logger['info'](_0x04a7('0x20'));logger[_0x04a7('0xe')]('The\x20Ticket\x20ID\x20is:',_0xa60369['id']);logger[_0x04a7('0xe')](_0x04a7('0x42'),_0x04a7('0x49'));emit(util[_0x04a7('0x10')](_0x04a7('0x4a'),_0x3addb5['name']),_0x04a7('0x4b'),{'uri':util[_0x04a7('0x10')]('%s/helpdesk/tickets/%d',_0x175062[_0x04a7('0x1e')],_0xa60369['id'])});}})[_0x04a7('0x4c')](function(_0x5d5f36){logger[_0x04a7('0x4d')]('[QUEUE]',JSON[_0x04a7('0x32')](_0x5d5f36));});};exports[_0x04a7('0x4e')]=function(_0x1d7fdb,_0x11c8b1,_0x44d6f2,_0x1daf2f,_0x5c9558,_0x38e238,_0x451a67){var _0x55daf8,_0x5c808c;_0x38e238['remoteUri']=intUtil[_0x04a7('0x40')](_0x38e238[_0x04a7('0x1e')]);_0x38e238[_0x04a7('0x41')]=intUtil[_0x04a7('0x40')](_0x38e238[_0x04a7('0x41')]);if(_0x451a67&&_0x451a67[_0x04a7('0x4f')]&&_0x451a67[_0x04a7('0x4f')]!==_0x04a7('0x50')){logger['info'](_0x04a7('0x51'),_0x04a7('0x52'));_0x11c8b1[_0x04a7('0x43')]=util[_0x04a7('0x10')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x38e238['serverUrl'],_0x11c8b1[_0x04a7('0x44')],md5(_0x11c8b1[_0x04a7('0x44')]));}headers[_0x04a7('0x45')]=getAuth(_0x38e238);return getUser(_0x38e238,_0x1daf2f[_0x04a7('0x46')])[_0x04a7('0x1f')](function(_0x4ec3a7){_0x55daf8=_0x4ec3a7;logger[_0x04a7('0xe')]('The\x20User\x20ID\x20is:',_0x55daf8['id']);return getEndUser(_0x38e238,_0x11c8b1[_0x04a7('0x53')],_0x11c8b1[_0x04a7('0x54')]);})[_0x04a7('0x1f')](function(_0x3a7be2){_0x5c808c=_0x3a7be2;logger['info'](_0x04a7('0x48'),_0x5c808c['id']);return getTicket(_0x38e238,_0x55daf8,_0x5c808c,_0x44d6f2,_0x11c8b1);})[_0x04a7('0x1f')](function(_0x2555ed){if(_0x2555ed&&_0x2555ed['id']){logger[_0x04a7('0xe')](_0x04a7('0x20'));logger[_0x04a7('0xe')]('The\x20Ticket\x20ID\x20is:',_0x2555ed['id']);logger[_0x04a7('0xe')](_0x04a7('0x51'),_0x04a7('0x49'));emit(util[_0x04a7('0x10')](_0x04a7('0x4a'),_0x1daf2f[_0x04a7('0x18')]),'trigger:browser:url',{'uri':util['format'](_0x04a7('0x55'),_0x38e238['remoteUri'],_0x2555ed['id'])});}})[_0x04a7('0x4c')](function(_0x581469){logger[_0x04a7('0x4d')](_0x04a7('0x51'),JSON[_0x04a7('0x32')](_0x581469));});};exports[_0x04a7('0x56')]=function(_0x5889d0,_0x33f7f7,_0x3b8ce0,_0x5dbbb1,_0xfe95fa,_0x472da6){var _0x4d8ea2,_0x2d2e89;_0x472da6[_0x04a7('0x1e')]=intUtil['stripTrailingSlash'](_0x472da6[_0x04a7('0x1e')]);_0x472da6[_0x04a7('0x41')]=intUtil[_0x04a7('0x40')](_0x472da6[_0x04a7('0x41')]);if(_0xfe95fa&&_0xfe95fa[_0x04a7('0x57')]){logger[_0x04a7('0xe')]('[ABANDONED]',_0x04a7('0x52'));_0x33f7f7[_0x04a7('0x43')]=util['format'](_0x04a7('0x58'),_0x472da6[_0x04a7('0x41')],_0x33f7f7[_0x04a7('0x44')],md5(_0x33f7f7[_0x04a7('0x44')]));}else{_0x33f7f7[_0x04a7('0x43')]='';}headers[_0x04a7('0x45')]=getAuth(_0x472da6);return getUser(_0x472da6,_0x5dbbb1['email'])[_0x04a7('0x1f')](function(_0x2cd148){_0x4d8ea2=_0x2cd148;logger[_0x04a7('0xe')](_0x04a7('0x47'),_0x4d8ea2['id']);return getEndUser(_0x472da6,_0x33f7f7[_0x04a7('0x12')],_0x33f7f7[_0x04a7('0x13')]);})['then'](function(_0x5cf226){_0x2d2e89=_0x5cf226;logger[_0x04a7('0xe')](_0x04a7('0x48'),_0x2d2e89['id']);return getTicket(_0x472da6,_0x4d8ea2,_0x2d2e89,_0x3b8ce0,_0x33f7f7);})[_0x04a7('0x1f')](function(_0xbbed98){if(_0xbbed98){logger[_0x04a7('0xe')](_0x04a7('0x20'));logger['info']('The\x20Ticket\x20ID\x20is:',_0xbbed98['id']);}})[_0x04a7('0x4c')](function(_0x346f75){logger[_0x04a7('0x4d')](_0x04a7('0x59'),JSON[_0x04a7('0x32')](_0x346f75));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7c3=['unknown\x20integration','../../../../config/logger','error','[EXEC]','format','%s\x20configuration\x20#%s\x20not\x20found','%s\x20account\x20#%s\x20not\x20found','lodash','util','./zendesk','./salesforce','./freshdesk','./zoho','./desk','./vtiger','zendesk','sugarcrm','zoho','desk','exec','includes','data1','toLowerCase','data2','find','Configurations','data3','queue','routeId','outbound','log','EVENT\x20UNKNOWN','abandoned'];(function(_0x56b540,_0x37f450){var _0xf62ffc=function(_0x2a8224){while(--_0x2a8224){_0x56b540['push'](_0x56b540['shift']());}};_0xf62ffc(++_0x37f450);}(_0xb7c3,0x1b4));var _0x3b7c=function(_0x497ede,_0x50a298){_0x497ede=_0x497ede-0x0;var _0x332039=_0xb7c3[_0x497ede];return _0x332039;};'use strict';var _=require(_0x3b7c('0x0'));var util=require(_0x3b7c('0x1'));var zendesk=require(_0x3b7c('0x2'));var salesforce=require(_0x3b7c('0x3'));var sugarcrm=require('./sugarcrm');var freshdesk=require(_0x3b7c('0x4'));var zoho=require(_0x3b7c('0x5'));var desk=require(_0x3b7c('0x6'));var vtiger=require(_0x3b7c('0x7'));var integrations=[_0x3b7c('0x8'),'salesforce',_0x3b7c('0x9'),'freshdesk',_0x3b7c('0xa'),_0x3b7c('0xb'),'vtiger'];exports[_0x3b7c('0xc')]=function(_0x3cae20,_0x4e71f8,_0xa3af14,_0x5a7d80,_0x45224c,_0x19e54b){if(_0xa3af14){if(_[_0x3b7c('0xd')](integrations,_0x3cae20[_0x3b7c('0xe')]['toLowerCase']())){try{var _0xb799fc=null;var _0x17efc6='';var _0x224008=_0xa3af14[_0x3cae20['data1'][_0x3b7c('0xf')]()];if(_0x224008){var _0x45c336=_0x224008[_0x3cae20[_0x3b7c('0x10')]];if(_0x45c336){var _0x55e212=_[_0x3b7c('0x11')](_0x45c336[_0x3b7c('0x12')],{'id':parseInt(_0x3cae20[_0x3b7c('0x13')],0xa)});if(_0x55e212){if(_0x5a7d80){if(_0x45224c&&_0x4e71f8['queue']){_0x17efc6=_0x3b7c('0x14');}else if(_0x4e71f8[_0x3b7c('0x15')]){_0x17efc6=_0x3b7c('0x16');}else{console[_0x3b7c('0x17')](_0x3b7c('0x18'),_0x4e71f8);}}else{_0x17efc6=_0x3b7c('0x19');}switch(_0x3cae20[_0x3b7c('0xe')][_0x3b7c('0xf')]()){case _0x3b7c('0x8'):zendesk[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;case'salesforce':salesforce[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;case _0x3b7c('0x9'):sugarcrm[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;case'freshdesk':freshdesk[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;case _0x3b7c('0xa'):zoho[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;case _0x3b7c('0xb'):desk[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;case'vtiger':vtiger[_0x17efc6](_0x3cae20,_0x4e71f8,_0x55e212,_0x5a7d80,_0x45224c,_0x45c336,_0x19e54b);break;default:console[_0x3b7c('0x17')](_0x3b7c('0x1a'));}}else{_0xb799fc=require(_0x3b7c('0x1b'))(_0x3cae20[_0x3b7c('0xe')]['toLowerCase']());_0xb799fc[_0x3b7c('0x1c')](_0x3b7c('0x1d'),util[_0x3b7c('0x1e')](_0x3b7c('0x1f'),_0x3cae20[_0x3b7c('0xe')]['toLowerCase'](),_0x3cae20[_0x3b7c('0x13')]));}}else{_0xb799fc=require(_0x3b7c('0x1b'))(_0x3cae20[_0x3b7c('0xe')][_0x3b7c('0xf')]());_0xb799fc[_0x3b7c('0x1c')](_0x3b7c('0x1d'),util[_0x3b7c('0x1e')](_0x3b7c('0x20'),_0x3cae20[_0x3b7c('0xe')][_0x3b7c('0xf')](),_0x3cae20[_0x3b7c('0x10')]));}}else{}}catch(_0x283c06){console[_0x3b7c('0x1c')](_0x283c06);}}}};
\ No newline at end of file
+var _0x3f23=['data1','toLowerCase','data2','Configurations','queue','routeId','outbound','log','EVENT\x20UNKNOWN','abandoned','salesforce','sugarcrm','unknown\x20integration','../../../../config/logger','[EXEC]','format','data3','error','%s\x20account\x20#%s\x20not\x20found','lodash','./zendesk','./salesforce','./sugarcrm','./freshdesk','./zoho','./desk','./vtiger','zendesk','freshdesk','zoho','desk','vtiger','exec','includes'];(function(_0x26230d,_0x340c33){var _0x15d361=function(_0x574f63){while(--_0x574f63){_0x26230d['push'](_0x26230d['shift']());}};_0x15d361(++_0x340c33);}(_0x3f23,0x189));var _0x33f2=function(_0x312750,_0x30c584){_0x312750=_0x312750-0x0;var _0x271c47=_0x3f23[_0x312750];return _0x271c47;};'use strict';var _=require(_0x33f2('0x0'));var util=require('util');var zendesk=require(_0x33f2('0x1'));var salesforce=require(_0x33f2('0x2'));var sugarcrm=require(_0x33f2('0x3'));var freshdesk=require(_0x33f2('0x4'));var zoho=require(_0x33f2('0x5'));var desk=require(_0x33f2('0x6'));var vtiger=require(_0x33f2('0x7'));var integrations=[_0x33f2('0x8'),'salesforce','sugarcrm',_0x33f2('0x9'),_0x33f2('0xa'),_0x33f2('0xb'),_0x33f2('0xc')];exports[_0x33f2('0xd')]=function(_0x26fb89,_0x40fa4f,_0x36d037,_0x5df7e1,_0xff604a,_0x3fd8b4){if(_0x36d037){if(_[_0x33f2('0xe')](integrations,_0x26fb89[_0x33f2('0xf')][_0x33f2('0x10')]())){try{var _0x84e060=null;var _0x40e459='';var _0x54c328=_0x36d037[_0x26fb89[_0x33f2('0xf')][_0x33f2('0x10')]()];if(_0x54c328){var _0x2a3758=_0x54c328[_0x26fb89[_0x33f2('0x11')]];if(_0x2a3758){var _0x4808de=_['find'](_0x2a3758[_0x33f2('0x12')],{'id':parseInt(_0x26fb89['data3'],0xa)});if(_0x4808de){if(_0x5df7e1){if(_0xff604a&&_0x40fa4f[_0x33f2('0x13')]){_0x40e459='queue';}else if(_0x40fa4f[_0x33f2('0x14')]){_0x40e459=_0x33f2('0x15');}else{console[_0x33f2('0x16')](_0x33f2('0x17'),_0x40fa4f);}}else{_0x40e459=_0x33f2('0x18');}switch(_0x26fb89[_0x33f2('0xf')][_0x33f2('0x10')]()){case _0x33f2('0x8'):zendesk[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;case _0x33f2('0x19'):salesforce[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;case _0x33f2('0x1a'):sugarcrm[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;case _0x33f2('0x9'):freshdesk[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;case _0x33f2('0xa'):zoho[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;case _0x33f2('0xb'):desk[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;case _0x33f2('0xc'):vtiger[_0x40e459](_0x26fb89,_0x40fa4f,_0x4808de,_0x5df7e1,_0xff604a,_0x2a3758,_0x3fd8b4);break;default:console[_0x33f2('0x16')](_0x33f2('0x1b'));}}else{_0x84e060=require(_0x33f2('0x1c'))(_0x26fb89[_0x33f2('0xf')][_0x33f2('0x10')]());_0x84e060['error'](_0x33f2('0x1d'),util[_0x33f2('0x1e')]('%s\x20configuration\x20#%s\x20not\x20found',_0x26fb89['data1'][_0x33f2('0x10')](),_0x26fb89[_0x33f2('0x1f')]));}}else{_0x84e060=require('../../../../config/logger')(_0x26fb89['data1'][_0x33f2('0x10')]());_0x84e060[_0x33f2('0x20')](_0x33f2('0x1d'),util['format'](_0x33f2('0x21'),_0x26fb89[_0x33f2('0xf')][_0x33f2('0x10')](),_0x26fb89[_0x33f2('0x11')]));}}else{}}catch(_0x146475){console[_0x33f2('0x20')](_0x146475);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../../../config/logger','salesforce','redis','localhost','socket.io-emitter','getString','Subjects','Descriptions','WhoId','sobject','create','User','execute','length','find','Email','info','Agent\x20%s\x20found.','resolve','Name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','then','user_id','moduleSearch','contact_lead','Contact','Lead','lead','Phone','Enduser\x20with\x20phone\x20%s\x20found.','Enduser\x20with\x20phone\x20%s\x20not\x20found.','<unknown>','Caller\x20-\x20%s','moduleCreate','contact','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','Company','No\x20Company','upperFirst','forEach','string','idField','content','variable','variableName','type','customVariable','Variable','name','toLowerCase','toString','securityToken','remoteUri','https://login.salesforce.com','clientId','login','username','Connection\x20established.','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','format','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','email','calleridname','calleridnum','Fields','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','user:%s','trigger:salesforce:display','newTab','trigger:browser:url','%s/%s/e','instanceUrl','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','stringify','outbound','recordingFormat','destcalleridnum','error','[OUTBOUND]','[ABANDONED]','[ABANDONED]\x20Ticket\x20%s\x20created.','[ABANDONED]\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','moment','jsforce','./util','../../../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b78e8,_0x55096b){_0x5b78e8=_0x5b78e8-0x0;var _0xf2c321=_0xa9e0[_0x5b78e8];return _0xf2c321;};'use strict';var _=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var md5=require('md5');var jsforce=require(_0x0a9e('0x3'));var util=require('util');var intUtil=require(_0x0a9e('0x4'));var config=require(_0x0a9e('0x5'));var logger=require(_0x0a9e('0x6'))(_0x0a9e('0x7'));config[_0x0a9e('0x8')]=_['defaults'](config[_0x0a9e('0x8')],{'host':_0x0a9e('0x9'),'port':0x18eb});var io=require(_0x0a9e('0xa'))(config['redis']);function emit(_0x503809,_0xe42b77,_0x56465b){io['to'](_0x503809)['emit'](_0xe42b77,_0x56465b);}function getTicket(_0x39753a,_0xf81284,_0x307b3e,_0x3ab53f,_0xfeb75b,_0xbd1168,_0x4a4c56){var _0x50dfb2=_['merge']({'OwnerId':_0xf81284['id'],'ActivityDate':moment['utc'](),'IsReminderSet':![],'IsRecurrence':![],'Subject':intUtil[_0x0a9e('0xb')](_0x3ab53f[_0x0a9e('0xc')],_0xfeb75b,'\x20'),'Description':intUtil[_0x0a9e('0xb')](_0x3ab53f[_0x0a9e('0xd')],_0xfeb75b,'\x0a')},getCustomFields(_0xbd1168,_0xfeb75b));if(_0x307b3e){_0x50dfb2[_0x0a9e('0xe')]=_0x307b3e['id'];}return _0x4a4c56[_0x0a9e('0xf')]('Task')[_0x0a9e('0x10')](_0x50dfb2);}function getUser(_0x239b12,_0x2b4227,_0x281129){var _0x44dcfd={'Email':_0x2b4227};var _0x4d5611={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x281129['sobject'](_0x0a9e('0x11'))['find'](_0x44dcfd,_0x4d5611)[_0x0a9e('0x12')]()['then'](function(_0x16033c){if(_0x16033c[_0x0a9e('0x13')]){var _0x48f32d=_[_0x0a9e('0x14')](_0x16033c,function(_0x5a0a06){return _0x5a0a06[_0x0a9e('0x15')]===_0x2b4227;});if(_0x48f32d){logger[_0x0a9e('0x16')](_0x0a9e('0x17'),_0x2b4227);return BPromise[_0x0a9e('0x18')]({'id':_0x48f32d['Id'],'name':_0x48f32d[_0x0a9e('0x19')]});}}else{logger[_0x0a9e('0x16')](_0x0a9e('0x1a'),_0x2b4227);return _0x281129[_0x0a9e('0x1b')]()[_0x0a9e('0x1c')](function(_0x112016){return BPromise[_0x0a9e('0x18')]({'id':_0x112016[_0x0a9e('0x1d')],'name':_0x112016['display_name']});});}});}function getEndUser(_0x2c3407,_0x155cce,_0x53682f,_0x20f109,_0x5a09ef){var _0x588269={'Phone':_0x20f109};var _0x3a02e1={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x0a9e('0x18')]()[_0x0a9e('0x1c')](function(){logger[_0x0a9e('0x16')]('Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.',_0x20f109,_0x155cce[_0x0a9e('0x1e')]);switch(_0x155cce[_0x0a9e('0x1e')]){case _0x0a9e('0x1f'):return _0x5a09ef[_0x0a9e('0xf')](_0x0a9e('0x20'))[_0x0a9e('0x14')](_0x588269,_0x3a02e1)[_0x0a9e('0x12')]()['then'](function(_0x59181e){if(_0x59181e&&_0x59181e[_0x0a9e('0x13')]){return _0x59181e;}else{return _0x5a09ef[_0x0a9e('0xf')](_0x0a9e('0x21'))[_0x0a9e('0x14')](_0x588269,_0x3a02e1);}});case'contact':return _0x5a09ef[_0x0a9e('0xf')]('Contact')[_0x0a9e('0x14')](_0x588269,_0x3a02e1)['execute']();case _0x0a9e('0x22'):return _0x5a09ef[_0x0a9e('0xf')](_0x0a9e('0x21'))[_0x0a9e('0x14')](_0x588269,_0x3a02e1);default:return null;}})[_0x0a9e('0x1c')](function(_0x1538a4){if(_0x1538a4&&_0x1538a4[_0x0a9e('0x13')]){var _0x14de77=_['find'](_0x1538a4,function(_0x3652a7){return _0x3652a7[_0x0a9e('0x23')]===_0x20f109;});if(_0x14de77){return BPromise[_0x0a9e('0x18')]({'id':_0x14de77['Id'],'name':_0x14de77[_0x0a9e('0x19')],'phone':_0x14de77['Phone']});}}})[_0x0a9e('0x1c')](function(_0x40e7a3){if(_0x40e7a3){logger[_0x0a9e('0x16')](_0x0a9e('0x24'),_0x20f109);return BPromise[_0x0a9e('0x18')](_0x40e7a3);}else{logger[_0x0a9e('0x16')](_0x0a9e('0x25'),_0x20f109);var _0x2e8759={'LastName':_0x53682f!==_0x0a9e('0x26')?_0x53682f:util['format'](_0x0a9e('0x27'),_0x20f109),'Phone':_0x20f109};if(_0x155cce['moduleCreate']){switch(_0x155cce[_0x0a9e('0x28')]){case _0x0a9e('0x29'):logger[_0x0a9e('0x16')](_0x0a9e('0x2a'),_0x20f109,_0x155cce[_0x0a9e('0x28')]);break;case'lead':logger[_0x0a9e('0x16')](_0x0a9e('0x2a'),_0x20f109,_0x155cce[_0x0a9e('0x28')]);_0x2e8759[_0x0a9e('0x2b')]=_0x0a9e('0x2c');break;default:return null;}}return _0x5a09ef[_0x0a9e('0xf')](_[_0x0a9e('0x2d')](_0x155cce[_0x0a9e('0x28')]))['create'](_0x2e8759);}});}function getCustomFields(_0x44295a,_0x5e7238){var _0x2cc7a0={};if(_0x44295a[_0x0a9e('0x13')]>0x0){_[_0x0a9e('0x2e')](_0x44295a,function(_0x3f3d41){if(_0x3f3d41['type']===_0x0a9e('0x2f')&&_0x3f3d41[_0x0a9e('0x30')]){_0x2cc7a0[_0x3f3d41[_0x0a9e('0x30')]]=_0x3f3d41[_0x0a9e('0x31')]['toString']();}else if(_0x3f3d41['type']===_0x0a9e('0x32')&&_0x3f3d41['variableName']&&_0x3f3d41[_0x0a9e('0x30')]){_0x5e7238[_0x3f3d41[_0x0a9e('0x33')]]&&(_0x2cc7a0[_0x3f3d41[_0x0a9e('0x30')]]=_0x5e7238[_0x3f3d41[_0x0a9e('0x33')]]['toString']());}else if(_0x3f3d41[_0x0a9e('0x34')]===_0x0a9e('0x35')&&_0x3f3d41[_0x0a9e('0x36')]&&_0x3f3d41['Variable'][_0x0a9e('0x37')]&&_0x3f3d41[_0x0a9e('0x30')]){_0x5e7238[_0x3f3d41[_0x0a9e('0x36')]['name']['toLowerCase']()]&&(_0x2cc7a0[_0x3f3d41[_0x0a9e('0x30')]]=_0x5e7238[_0x3f3d41[_0x0a9e('0x36')]['name'][_0x0a9e('0x38')]()][_0x0a9e('0x39')]());}});}return _0x2cc7a0;}function getConnection(_0x2e1b3a){var _0x148f55=_0x2e1b3a['password']['concat'](_0x2e1b3a[_0x0a9e('0x3a')]);var _0x45b3d0=new jsforce['Connection']({'oauth2':{'loginUrl':_0x2e1b3a[_0x0a9e('0x3b')]||_0x0a9e('0x3c'),'clientId':_0x2e1b3a[_0x0a9e('0x3d')],'clientSecret':_0x2e1b3a['clientSecret']}});return _0x45b3d0[_0x0a9e('0x3e')](_0x2e1b3a[_0x0a9e('0x3f')],_0x148f55)[_0x0a9e('0x1c')](function(){logger[_0x0a9e('0x16')](_0x0a9e('0x40'));return _0x45b3d0;});}exports[_0x0a9e('0x41')]=function(_0x2881b3,_0x45a9b8,_0x23b089,_0x3da2cd,_0x2c3711,_0x148007){var _0x1a7bce,_0x11ca30,_0x37f6cc,_0x4d04c8;_0x148007['serverUrl']=intUtil[_0x0a9e('0x42')](_0x148007[_0x0a9e('0x43')]);if(_0x2c3711&&_0x2c3711[_0x0a9e('0x44')]){logger[_0x0a9e('0x16')](_0x0a9e('0x45'),_0x0a9e('0x46'));_0x45a9b8[_0x0a9e('0x47')]=util[_0x0a9e('0x48')](_0x0a9e('0x49'),_0x148007[_0x0a9e('0x43')],_0x45a9b8[_0x0a9e('0x4a')],md5(_0x45a9b8[_0x0a9e('0x4a')]));}else{_0x45a9b8['recordingURL']='';}return getConnection(_0x148007)[_0x0a9e('0x1c')](function(_0x138b8b){_0x4d04c8=_0x138b8b;return getUser(_0x148007,_0x3da2cd[_0x0a9e('0x4b')],_0x4d04c8);})[_0x0a9e('0x1c')](function(_0x2e8caf){_0x1a7bce=_0x2e8caf;return getEndUser(_0x148007,_0x23b089,_0x45a9b8[_0x0a9e('0x4c')],_0x45a9b8[_0x0a9e('0x4d')],_0x4d04c8);})[_0x0a9e('0x1c')](function(_0x59afe8){_0x11ca30=_0x59afe8;return getTicket(_0x148007,_0x1a7bce,_0x11ca30,_0x23b089,_0x45a9b8,_0x23b089[_0x0a9e('0x4e')],_0x4d04c8);})['then'](function(_0x473dc8){_0x37f6cc=_0x473dc8;logger[_0x0a9e('0x16')](_0x0a9e('0x4f'),_0x37f6cc['id']);logger['info'](_0x0a9e('0x50'),_0x37f6cc['id'],_0x3da2cd[_0x0a9e('0x37')],_0x148007[_0x0a9e('0x34')]);switch(_0x148007[_0x0a9e('0x34')]){case _0x0a9e('0x51'):emit(util[_0x0a9e('0x48')](_0x0a9e('0x52'),_0x3da2cd['name']),_0x0a9e('0x53'),{'recordId':_0x37f6cc['id']});break;case _0x0a9e('0x54'):emit(util[_0x0a9e('0x48')](_0x0a9e('0x52'),_0x3da2cd[_0x0a9e('0x37')]),_0x0a9e('0x55'),{'uri':util[_0x0a9e('0x48')](_0x0a9e('0x56'),_0x4d04c8[_0x0a9e('0x57')],_0x37f6cc['id'])});break;default:logger['error'](_0x0a9e('0x58'));}})[_0x0a9e('0x59')](function(_0x4f7240){logger['error']('[QUEUE]',JSON[_0x0a9e('0x5a')](_0x4f7240));});};exports[_0x0a9e('0x5b')]=function(_0x37edaa,_0x11545a,_0x61bb17,_0x30decb,_0x2e5165,_0x375c18,_0x5d38ae){var _0x4b1b9f,_0x53975a,_0x39d77d,_0x204173;_0x375c18[_0x0a9e('0x43')]=intUtil['stripTrailingSlash'](_0x375c18[_0x0a9e('0x43')]);if(_0x5d38ae&&_0x5d38ae[_0x0a9e('0x5c')]&&_0x5d38ae['recordingFormat']!=='none'){logger[_0x0a9e('0x16')]('[OUTBOUND]',_0x0a9e('0x46'));_0x11545a['recordingURL']=util[_0x0a9e('0x48')](_0x0a9e('0x49'),_0x375c18[_0x0a9e('0x43')],_0x11545a['uniqueid'],md5(_0x11545a[_0x0a9e('0x4a')]));}return getConnection(_0x375c18)[_0x0a9e('0x1c')](function(_0x508b47){_0x204173=_0x508b47;return getUser(_0x375c18,_0x30decb['email'],_0x204173);})[_0x0a9e('0x1c')](function(_0x3aedd0){_0x4b1b9f=_0x3aedd0;return getEndUser(_0x375c18,_0x61bb17,_0x11545a['destcalleridname'],_0x11545a[_0x0a9e('0x5d')],_0x204173);})['then'](function(_0x211ef9){_0x53975a=_0x211ef9;return getTicket(_0x375c18,_0x4b1b9f,_0x53975a,_0x61bb17,_0x11545a,_0x61bb17['Fields'],_0x204173);})[_0x0a9e('0x1c')](function(_0x4a6deb){_0x39d77d=_0x4a6deb;logger['info']('[OUTBOUND]\x20Ticket\x20%s\x20created.',_0x39d77d['id']);logger[_0x0a9e('0x16')]('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x39d77d['id'],_0x30decb[_0x0a9e('0x37')],_0x375c18[_0x0a9e('0x34')]);switch(_0x375c18[_0x0a9e('0x34')]){case _0x0a9e('0x51'):emit(util[_0x0a9e('0x48')](_0x0a9e('0x52'),_0x30decb[_0x0a9e('0x37')]),_0x0a9e('0x53'),{'recordId':_0x39d77d['id']});break;case'newTab':emit(util[_0x0a9e('0x48')](_0x0a9e('0x52'),_0x30decb[_0x0a9e('0x37')]),_0x0a9e('0x55'),{'uri':util[_0x0a9e('0x48')](_0x0a9e('0x56'),_0x204173['instanceUrl'],_0x39d77d['id'])});break;default:logger[_0x0a9e('0x5e')](_0x0a9e('0x5f'),'Salesforce\x20account\x20type\x20not\x20recognized');}})[_0x0a9e('0x59')](function(_0x5cc8fb){logger[_0x0a9e('0x5e')]('[OUTBOUND]',JSON['stringify'](_0x5cc8fb));});};exports['abandoned']=function(_0x273cb5,_0x49d231,_0x2244d6,_0x1fc70e,_0x261adb,_0x7be420){var _0x1cca9f,_0x26d7db,_0x49eed0,_0x1627a7;_0x7be420['serverUrl']=intUtil[_0x0a9e('0x42')](_0x7be420[_0x0a9e('0x43')]);if(_0x261adb&&_0x261adb[_0x0a9e('0x44')]){logger['info'](_0x0a9e('0x60'),_0x0a9e('0x46'));_0x49d231[_0x0a9e('0x47')]=util[_0x0a9e('0x48')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x7be420[_0x0a9e('0x43')],_0x49d231[_0x0a9e('0x4a')],md5(_0x49d231['uniqueid']));}else{_0x49d231[_0x0a9e('0x47')]='';}return getConnection(_0x7be420)[_0x0a9e('0x1c')](function(_0x88dcbf){_0x1627a7=_0x88dcbf;return getUser(_0x7be420,_0x1fc70e[_0x0a9e('0x4b')],_0x1627a7);})[_0x0a9e('0x1c')](function(_0x4d4a35){_0x1cca9f=_0x4d4a35;return getEndUser(_0x7be420,_0x2244d6,_0x49d231[_0x0a9e('0x4c')],_0x49d231[_0x0a9e('0x4d')],_0x1627a7);})[_0x0a9e('0x1c')](function(_0x47bb43){_0x26d7db=_0x47bb43;return getTicket(_0x7be420,_0x1cca9f,_0x26d7db,_0x2244d6,_0x49d231,_0x2244d6[_0x0a9e('0x4e')],_0x1627a7);})['then'](function(_0x5211e3){_0x49eed0=_0x5211e3;logger[_0x0a9e('0x16')](_0x0a9e('0x61'),_0x49eed0['id']);logger[_0x0a9e('0x16')](_0x0a9e('0x62'),_0x7be420[_0x0a9e('0x34')]);})[_0x0a9e('0x59')](function(_0x387489){logger[_0x0a9e('0x5e')](_0x0a9e('0x60'),JSON[_0x0a9e('0x5a')](_0x387489));});};
\ No newline at end of file
+var _0x4dac=['emit','merge','Subjects','getString','WhoId','sobject','Task','User','find','execute','Email','info','Agent\x20%s\x20found.','resolve','Name','then','display_name','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','length','Lead','contact','lead','Phone','Enduser\x20with\x20phone\x20%s\x20not\x20found.','format','Caller\x20-\x20%s','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','Company','No\x20Company','upperFirst','create','type','string','idField','content','toString','variable','variableName','customVariable','Variable','name','toLowerCase','password','concat','securityToken','Connection','remoteUri','https://login.salesforce.com','clientId','login','username','Connection\x20established.','queue','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','uniqueid','recordingURL','email','calleridname','Fields','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','user:%s','trigger:salesforce:display','trigger:browser:url','instanceUrl','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','error','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','[OUTBOUND]\x20Ticket\x20%s\x20created.','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','newTab','Salesforce\x20account\x20type\x20not\x20recognized','[ABANDONED]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','calleridnum','[ABANDONED]\x20Ticket\x20%s\x20created.','[ABANDONED]\x20Integration\x20account\x20type\x20%s.','stringify','lodash','request-promise','moment','jsforce','util','ioredis','./util','../../../../config/environment','redis','defaults','localhost','socket.io-emitter'];(function(_0x32e555,_0x265534){var _0x44dbf8=function(_0x50049c){while(--_0x50049c){_0x32e555['push'](_0x32e555['shift']());}};_0x44dbf8(++_0x265534);}(_0x4dac,0x190));var _0xc4da=function(_0x2f57b2,_0xa8e91a){_0x2f57b2=_0x2f57b2-0x0;var _0x5ace77=_0x4dac[_0x2f57b2];return _0x5ace77;};'use strict';var _=require(_0xc4da('0x0'));var rp=require(_0xc4da('0x1'));var moment=require(_0xc4da('0x2'));var BPromise=require('bluebird');var md5=require('md5');var jsforce=require(_0xc4da('0x3'));var util=require(_0xc4da('0x4'));var Redis=require(_0xc4da('0x5'));var intUtil=require(_0xc4da('0x6'));var config=require(_0xc4da('0x7'));var logger=require('../../../../config/logger')('salesforce');config[_0xc4da('0x8')]=_[_0xc4da('0x9')](config['redis'],{'host':_0xc4da('0xa'),'port':0x18eb});var io=require(_0xc4da('0xb'))(new Redis(config[_0xc4da('0x8')]));function emit(_0x2f3bef,_0x47539f,_0x130fa6){io['to'](_0x2f3bef)[_0xc4da('0xc')](_0x47539f,_0x130fa6);}function getTicket(_0x36523b,_0x525590,_0x29366,_0xce6778,_0x15740a,_0xe04a36,_0xd79194){var _0x56c611=_[_0xc4da('0xd')]({'OwnerId':_0x525590['id'],'ActivityDate':moment['utc'](),'IsReminderSet':![],'IsRecurrence':![],'Subject':intUtil['getString'](_0xce6778[_0xc4da('0xe')],_0x15740a,'\x20'),'Description':intUtil[_0xc4da('0xf')](_0xce6778['Descriptions'],_0x15740a,'\x0a')},getCustomFields(_0xe04a36,_0x15740a));if(_0x29366){_0x56c611[_0xc4da('0x10')]=_0x29366['id'];}return _0xd79194[_0xc4da('0x11')](_0xc4da('0x12'))['create'](_0x56c611);}function getUser(_0x42e394,_0x289e18,_0x35c7fc){var _0x536c71={'Email':_0x289e18};var _0x16b59a={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x35c7fc[_0xc4da('0x11')](_0xc4da('0x13'))[_0xc4da('0x14')](_0x536c71,_0x16b59a)[_0xc4da('0x15')]()['then'](function(_0x4c00a5){if(_0x4c00a5['length']){var _0x528e60=_[_0xc4da('0x14')](_0x4c00a5,function(_0x5dad94){return _0x5dad94[_0xc4da('0x16')]===_0x289e18;});if(_0x528e60){logger[_0xc4da('0x17')](_0xc4da('0x18'),_0x289e18);return BPromise[_0xc4da('0x19')]({'id':_0x528e60['Id'],'name':_0x528e60[_0xc4da('0x1a')]});}}else{logger[_0xc4da('0x17')]('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x289e18);return _0x35c7fc['identity']()[_0xc4da('0x1b')](function(_0x56835b){return BPromise[_0xc4da('0x19')]({'id':_0x56835b['user_id'],'name':_0x56835b[_0xc4da('0x1c')]});});}});}function getEndUser(_0xdd6aea,_0x369984,_0x57bac6,_0x5b195f,_0x1c1677){var _0x529206={'Phone':_0x5b195f};var _0x23b762={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0xc4da('0x19')]()[_0xc4da('0x1b')](function(){logger[_0xc4da('0x17')](_0xc4da('0x1d'),_0x5b195f,_0x369984['moduleSearch']);switch(_0x369984[_0xc4da('0x1e')]){case _0xc4da('0x1f'):return _0x1c1677[_0xc4da('0x11')]('Contact')[_0xc4da('0x14')](_0x529206,_0x23b762)['execute']()[_0xc4da('0x1b')](function(_0x324c71){if(_0x324c71&&_0x324c71[_0xc4da('0x20')]){return _0x324c71;}else{return _0x1c1677[_0xc4da('0x11')](_0xc4da('0x21'))[_0xc4da('0x14')](_0x529206,_0x23b762);}});case _0xc4da('0x22'):return _0x1c1677[_0xc4da('0x11')]('Contact')['find'](_0x529206,_0x23b762)[_0xc4da('0x15')]();case _0xc4da('0x23'):return _0x1c1677['sobject'](_0xc4da('0x21'))[_0xc4da('0x14')](_0x529206,_0x23b762);default:return null;}})[_0xc4da('0x1b')](function(_0x3142fe){if(_0x3142fe&&_0x3142fe[_0xc4da('0x20')]){var _0x802e61=_[_0xc4da('0x14')](_0x3142fe,function(_0x11f504){return _0x11f504[_0xc4da('0x24')]===_0x5b195f;});if(_0x802e61){return BPromise[_0xc4da('0x19')]({'id':_0x802e61['Id'],'name':_0x802e61[_0xc4da('0x1a')],'phone':_0x802e61[_0xc4da('0x24')]});}}})[_0xc4da('0x1b')](function(_0x1b3964){if(_0x1b3964){logger[_0xc4da('0x17')]('Enduser\x20with\x20phone\x20%s\x20found.',_0x5b195f);return BPromise[_0xc4da('0x19')](_0x1b3964);}else{logger[_0xc4da('0x17')](_0xc4da('0x25'),_0x5b195f);var _0x1d22ab={'LastName':_0x57bac6!=='<unknown>'?_0x57bac6:util[_0xc4da('0x26')](_0xc4da('0x27'),_0x5b195f),'Phone':_0x5b195f};if(_0x369984[_0xc4da('0x28')]){switch(_0x369984['moduleCreate']){case'contact':logger[_0xc4da('0x17')](_0xc4da('0x29'),_0x5b195f,_0x369984[_0xc4da('0x28')]);break;case _0xc4da('0x23'):logger[_0xc4da('0x17')](_0xc4da('0x29'),_0x5b195f,_0x369984[_0xc4da('0x28')]);_0x1d22ab[_0xc4da('0x2a')]=_0xc4da('0x2b');break;default:return null;}}return _0x1c1677[_0xc4da('0x11')](_[_0xc4da('0x2c')](_0x369984[_0xc4da('0x28')]))[_0xc4da('0x2d')](_0x1d22ab);}});}function getCustomFields(_0x5b0b5d,_0x46d04d){var _0x569534={};if(_0x5b0b5d[_0xc4da('0x20')]>0x0){_['forEach'](_0x5b0b5d,function(_0x538036){if(_0x538036[_0xc4da('0x2e')]===_0xc4da('0x2f')&&_0x538036[_0xc4da('0x30')]){_0x569534[_0x538036['idField']]=_0x538036[_0xc4da('0x31')][_0xc4da('0x32')]();}else if(_0x538036[_0xc4da('0x2e')]===_0xc4da('0x33')&&_0x538036[_0xc4da('0x34')]&&_0x538036[_0xc4da('0x30')]){_0x46d04d[_0x538036[_0xc4da('0x34')]]&&(_0x569534[_0x538036['idField']]=_0x46d04d[_0x538036[_0xc4da('0x34')]][_0xc4da('0x32')]());}else if(_0x538036[_0xc4da('0x2e')]===_0xc4da('0x35')&&_0x538036[_0xc4da('0x36')]&&_0x538036['Variable'][_0xc4da('0x37')]&&_0x538036['idField']){_0x46d04d[_0x538036[_0xc4da('0x36')][_0xc4da('0x37')]['toLowerCase']()]&&(_0x569534[_0x538036[_0xc4da('0x30')]]=_0x46d04d[_0x538036[_0xc4da('0x36')][_0xc4da('0x37')][_0xc4da('0x38')]()][_0xc4da('0x32')]());}});}return _0x569534;}function getConnection(_0x2565c0){var _0x57e7ce=_0x2565c0[_0xc4da('0x39')][_0xc4da('0x3a')](_0x2565c0[_0xc4da('0x3b')]);var _0x4812b7=new jsforce[(_0xc4da('0x3c'))]({'oauth2':{'loginUrl':_0x2565c0[_0xc4da('0x3d')]||_0xc4da('0x3e'),'clientId':_0x2565c0[_0xc4da('0x3f')],'clientSecret':_0x2565c0['clientSecret']}});return _0x4812b7[_0xc4da('0x40')](_0x2565c0[_0xc4da('0x41')],_0x57e7ce)['then'](function(){logger[_0xc4da('0x17')](_0xc4da('0x42'));return _0x4812b7;});}exports[_0xc4da('0x43')]=function(_0x1da624,_0x31846f,_0x261983,_0x5e8c75,_0x16c350,_0x3c8de4){var _0x4a4ac5,_0x226b62,_0x1eda01,_0x16ae67;_0x3c8de4[_0xc4da('0x44')]=intUtil[_0xc4da('0x45')](_0x3c8de4[_0xc4da('0x44')]);if(_0x16c350&&_0x16c350[_0xc4da('0x46')]){logger[_0xc4da('0x17')](_0xc4da('0x47'),_0xc4da('0x48'));_0x31846f['recordingURL']=util[_0xc4da('0x26')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x3c8de4[_0xc4da('0x44')],_0x31846f['uniqueid'],md5(_0x31846f[_0xc4da('0x49')]));}else{_0x31846f[_0xc4da('0x4a')]='';}return getConnection(_0x3c8de4)['then'](function(_0x187dac){_0x16ae67=_0x187dac;return getUser(_0x3c8de4,_0x5e8c75[_0xc4da('0x4b')],_0x16ae67);})[_0xc4da('0x1b')](function(_0x4aaccf){_0x4a4ac5=_0x4aaccf;return getEndUser(_0x3c8de4,_0x261983,_0x31846f[_0xc4da('0x4c')],_0x31846f['calleridnum'],_0x16ae67);})[_0xc4da('0x1b')](function(_0x4df629){_0x226b62=_0x4df629;return getTicket(_0x3c8de4,_0x4a4ac5,_0x226b62,_0x261983,_0x31846f,_0x261983[_0xc4da('0x4d')],_0x16ae67);})[_0xc4da('0x1b')](function(_0x1f73bd){_0x1eda01=_0x1f73bd;logger[_0xc4da('0x17')](_0xc4da('0x4e'),_0x1eda01['id']);logger['info'](_0xc4da('0x4f'),_0x1eda01['id'],_0x5e8c75[_0xc4da('0x37')],_0x3c8de4['type']);switch(_0x3c8de4[_0xc4da('0x2e')]){case _0xc4da('0x50'):emit(util[_0xc4da('0x26')](_0xc4da('0x51'),_0x5e8c75[_0xc4da('0x37')]),_0xc4da('0x52'),{'recordId':_0x1eda01['id']});break;case'newTab':emit(util[_0xc4da('0x26')]('user:%s',_0x5e8c75[_0xc4da('0x37')]),_0xc4da('0x53'),{'uri':util['format']('%s/%s/e',_0x16ae67[_0xc4da('0x54')],_0x1eda01['id'])});break;default:logger['error'](_0xc4da('0x55'));}})['catch'](function(_0xec5935){logger[_0xc4da('0x56')](_0xc4da('0x47'),JSON['stringify'](_0xec5935));});};exports[_0xc4da('0x57')]=function(_0x4642f9,_0xe1f50b,_0x5aee71,_0x442490,_0x2ae9c2,_0x396143,_0x2ad7fa){var _0x35ab41,_0x35b43e,_0x476334,_0x1ae0bd;_0x396143['serverUrl']=intUtil['stripTrailingSlash'](_0x396143[_0xc4da('0x44')]);if(_0x2ad7fa&&_0x2ad7fa[_0xc4da('0x58')]&&_0x2ad7fa[_0xc4da('0x58')]!==_0xc4da('0x59')){logger[_0xc4da('0x17')](_0xc4da('0x5a'),_0xc4da('0x48'));_0xe1f50b[_0xc4da('0x4a')]=util[_0xc4da('0x26')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x396143[_0xc4da('0x44')],_0xe1f50b[_0xc4da('0x49')],md5(_0xe1f50b[_0xc4da('0x49')]));}return getConnection(_0x396143)[_0xc4da('0x1b')](function(_0x25cd53){_0x1ae0bd=_0x25cd53;return getUser(_0x396143,_0x442490[_0xc4da('0x4b')],_0x1ae0bd);})[_0xc4da('0x1b')](function(_0x50646d){_0x35ab41=_0x50646d;return getEndUser(_0x396143,_0x5aee71,_0xe1f50b[_0xc4da('0x5b')],_0xe1f50b[_0xc4da('0x5c')],_0x1ae0bd);})[_0xc4da('0x1b')](function(_0x1fc923){_0x35b43e=_0x1fc923;return getTicket(_0x396143,_0x35ab41,_0x35b43e,_0x5aee71,_0xe1f50b,_0x5aee71['Fields'],_0x1ae0bd);})[_0xc4da('0x1b')](function(_0x545c45){_0x476334=_0x545c45;logger['info'](_0xc4da('0x5d'),_0x476334['id']);logger[_0xc4da('0x17')](_0xc4da('0x5e'),_0x476334['id'],_0x442490[_0xc4da('0x37')],_0x396143[_0xc4da('0x2e')]);switch(_0x396143[_0xc4da('0x2e')]){case _0xc4da('0x50'):emit(util['format'](_0xc4da('0x51'),_0x442490[_0xc4da('0x37')]),'trigger:salesforce:display',{'recordId':_0x476334['id']});break;case _0xc4da('0x5f'):emit(util[_0xc4da('0x26')](_0xc4da('0x51'),_0x442490[_0xc4da('0x37')]),_0xc4da('0x53'),{'uri':util[_0xc4da('0x26')]('%s/%s/e',_0x1ae0bd[_0xc4da('0x54')],_0x476334['id'])});break;default:logger['error']('[OUTBOUND]',_0xc4da('0x60'));}})['catch'](function(_0x17e3de){logger[_0xc4da('0x56')]('[OUTBOUND]',JSON['stringify'](_0x17e3de));});};exports['abandoned']=function(_0x328ba1,_0x314c86,_0x2bec50,_0x40cf6e,_0x546cde,_0x5d717d){var _0x1aecff,_0x50d6ad,_0x368e8c,_0xb04327;_0x5d717d['serverUrl']=intUtil[_0xc4da('0x45')](_0x5d717d[_0xc4da('0x44')]);if(_0x546cde&&_0x546cde[_0xc4da('0x46')]){logger[_0xc4da('0x17')](_0xc4da('0x61'),_0xc4da('0x48'));_0x314c86[_0xc4da('0x4a')]=util[_0xc4da('0x26')](_0xc4da('0x62'),_0x5d717d['serverUrl'],_0x314c86['uniqueid'],md5(_0x314c86[_0xc4da('0x49')]));}else{_0x314c86[_0xc4da('0x4a')]='';}return getConnection(_0x5d717d)['then'](function(_0xb521fd){_0xb04327=_0xb521fd;return getUser(_0x5d717d,_0x40cf6e[_0xc4da('0x4b')],_0xb04327);})['then'](function(_0x53c859){_0x1aecff=_0x53c859;return getEndUser(_0x5d717d,_0x2bec50,_0x314c86[_0xc4da('0x4c')],_0x314c86[_0xc4da('0x63')],_0xb04327);})[_0xc4da('0x1b')](function(_0x5a7cd2){_0x50d6ad=_0x5a7cd2;return getTicket(_0x5d717d,_0x1aecff,_0x50d6ad,_0x2bec50,_0x314c86,_0x2bec50['Fields'],_0xb04327);})[_0xc4da('0x1b')](function(_0xf95101){_0x368e8c=_0xf95101;logger[_0xc4da('0x17')](_0xc4da('0x64'),_0x368e8c['id']);logger[_0xc4da('0x17')](_0xc4da('0x65'),_0x5d717d['type']);})['catch'](function(_0x10f20e){logger['error'](_0xc4da('0x61'),JSON[_0xc4da('0x66')](_0x10f20e));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe30a=['Searching\x20enduser\x20with\x20phone','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','entry_list','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','first_name','<unknown>','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','map','string','customField','nameField','toLowerCase','content','type','idField','custom_fields','variable','customVariable','Variable','POST','login','username','PLAIN','xCALLY\x20Motion\x20integration','Account\x20%d\x20is\x20not\x20valid','set_relationship','Calls','queue','remoteUri','stripTrailingSlash','serverUrl','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','then','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','The\x20Ticket\x20ID\x20is:','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','trigger:browser:url','catch','error','outbound','uri','recordingFormat','[OUTBOUND]','uniqueid','Ticket\x20created!','users','contacts','version','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','abandoned','[ABANDONED]','The\x20User\x20ID\x20is:','lodash','bluebird','util','./util','../../../../config/environment','../../../../config/logger','sugarcrm','redis','defaults','localhost','emit','info','Creating\x20new\x20ticket...','getString','Subjects','created_by','description','date_start','slice','replace','duration_hours','duration_minutes','parent_id','parent_type','Contacts','parent_name','name','length','forEach','variableName','push','set_entry','format','Basic\x20%s','toString','get_server_info','JSON','stringify','get_entry_list','Employees','name_value_list','user_name','resolve','value','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe30a,0xb0));var _0xae30=function(_0xfd0ddf,_0x2471eb){_0xfd0ddf=_0xfd0ddf-0x0;var _0x1ab94e=_0xe30a[_0xfd0ddf];return _0x1ab94e;};'use strict';var _=require(_0xae30('0x0'));var rp=require('request-promise');var BPromise=require(_0xae30('0x1'));var md5=require('md5');var util=require(_0xae30('0x2'));var intUtil=require(_0xae30('0x3'));var config=require(_0xae30('0x4'));var logger=require(_0xae30('0x5'))(_0xae30('0x6'));config[_0xae30('0x7')]=_[_0xae30('0x8')](config[_0xae30('0x7')],{'host':_0xae30('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(config[_0xae30('0x7')]);var def={'method':'POST','json':!![]};function emit(_0x25d528,_0x35a688,_0x4ea05b){io['to'](_0x25d528)[_0xae30('0xa')](_0x35a688,_0x4ea05b);}function getTicket(_0x323412,_0x321b74,_0x346018,_0x1226a0,_0x572187,_0x3019e1,_0x177105){logger[_0xae30('0xb')](_0xae30('0xc'));var _0x3d9baf=new Date();var _0x21dcc1=[{'name':'name','value':intUtil[_0xae30('0xd')](_0x1226a0[_0xae30('0xe')],_0x572187,'\x20')},{'name':'assigned_user_id','value':_0x321b74['id']},{'name':_0xae30('0xf'),'value':_0x321b74['id']},{'name':_0xae30('0x10'),'value':intUtil[_0xae30('0xd')](_0x1226a0['Descriptions'],_0x572187,'\x0a')},{'name':_0xae30('0x11'),'value':_0x3d9baf['toISOString']()[_0xae30('0x12')](0x0,0x13)[_0xae30('0x13')]('T','\x20')},{'name':_0xae30('0x14'),'value':'0'},{'name':_0xae30('0x15'),'value':'15'},{'name':_0xae30('0x16'),'value':_0x346018['id']},{'name':_0xae30('0x17'),'value':_0xae30('0x18')},{'name':_0xae30('0x19'),'value':_0x346018[_0xae30('0x1a')]}];if(_0x3019e1[_0xae30('0x1b')]){_[_0xae30('0x1c')](_0x3019e1,function(_0x5cae5f){if(_0x572187[_0x5cae5f[_0xae30('0x1d')]]){_0x21dcc1[_0xae30('0x1e')]({'name':_0x5cae5f['idField'],'value':_0x572187[_0x5cae5f[_0xae30('0x1d')]]});}});}return request({'form':{'method':_0xae30('0x1f'),'input_type':'JSON','response_type':'JSON','rest_data':JSON['stringify']({'session':_0x177105['id'],'module_name':'Calls','name_value_list':_0x21dcc1})}});}function getAuth(_0x558381){return util[_0xae30('0x20')](_0xae30('0x21'),new Buffer(_0x558381['apiKey']+':X')[_0xae30('0x22')]('base64'));}function getServerInfo(_0x40089f){return request({'form':{'method':_0xae30('0x23'),'input_type':_0xae30('0x24'),'response_type':_0xae30('0x24'),'rest_data':JSON[_0xae30('0x25')]({'session':_0x40089f['id']})}});}function getUser(_0x1da04a,_0xad14e,_0x461101){logger[_0xae30('0xb')]('Getting\x20agent\x20with\x20name',_0xad14e);return request({'form':{'method':_0xae30('0x26'),'input_type':_0xae30('0x24'),'response_type':_0xae30('0x24'),'rest_data':JSON[_0xae30('0x25')]({'session':_0x461101['id'],'module_name':_0xae30('0x27'),'query':util[_0xae30('0x20')]('INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200',_0xad14e),'order_by':'','offset':'0','select_fields':['id',_0xae30('0x1a'),'user_name'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x169f88){if(_0x169f88['entry_list'][_0xae30('0x1b')]){var _0x436f88=_['find'](_0x169f88['entry_list'],function(_0x5228c2){return _0x5228c2[_0xae30('0x28')][_0xae30('0x29')]['value']===_0xad14e;});if(_0x436f88){logger['info']('Agent\x20found!');return BPromise[_0xae30('0x2a')]({'id':_0x436f88[_0xae30('0x28')]['id'][_0xae30('0x2b')],'name':_0x436f88[_0xae30('0x28')][_0xae30('0x1a')][_0xae30('0x2b')]});}}else{logger[_0xae30('0xb')](_0xae30('0x2c'));return BPromise[_0xae30('0x2a')]({'id':_0x461101[_0xae30('0x28')][_0xae30('0x2d')]['id'],'name':_0x461101['name_value_list'][_0xae30('0x29')]['id']});}});}function getEndUser(_0x250c2f,_0x36bccc,_0x2f3ce0,_0x221b16){logger[_0xae30('0xb')](_0xae30('0x2e'),_0x2f3ce0);return request({'form':{'method':_0xae30('0x26'),'input_type':'JSON','response_type':_0xae30('0x24'),'rest_data':JSON[_0xae30('0x25')]({'session':_0x221b16['id'],'module_name':'Contacts','query':util[_0xae30('0x20')](_0xae30('0x2f'),_0x2f3ce0),'order_by':'','offset':'0','select_fields':['id',_0xae30('0x1a'),_0xae30('0x30')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x20ea97){if(_0x20ea97[_0xae30('0x31')][_0xae30('0x1b')]){var _0x2f27e6=_['find'](_0x20ea97[_0xae30('0x31')],function(_0x5aa29d){return _0x5aa29d[_0xae30('0x28')][_0xae30('0x30')][_0xae30('0x2b')]===_0x2f3ce0;});if(_0x2f27e6){logger[_0xae30('0xb')]('Enduser\x20found!');return BPromise[_0xae30('0x2a')]({'id':_0x2f27e6['name_value_list']['id']['value'],'name':_0x2f27e6[_0xae30('0x28')][_0xae30('0x1a')]['value'],'phone':_0x2f27e6[_0xae30('0x28')][_0xae30('0x30')][_0xae30('0x2b')]});}}else{logger['info'](_0xae30('0x32'));return request({'form':{'method':'set_entry','input_type':_0xae30('0x24'),'response_type':_0xae30('0x24'),'rest_data':JSON[_0xae30('0x25')]({'session':_0x221b16['id'],'module_name':'Contacts','name_value_list':[{'name':_0xae30('0x33'),'value':_0x36bccc!==_0xae30('0x34')?_0x36bccc:util[_0xae30('0x20')](_0xae30('0x35'),_0x2f3ce0)},{'name':_0xae30('0x30'),'value':_0x2f3ce0}]})}})['then'](function(_0x542365){logger['info'](_0xae30('0x36'));return BPromise['resolve']({'id':_0x542365['id'],'name':_0x542365[_0xae30('0x31')][_0xae30('0x33')][_0xae30('0x2b')],'phone':_0x542365[_0xae30('0x31')][_0xae30('0x30')][_0xae30('0x2b')]});});}});}function request(_0x2f0827){logger[_0xae30('0x37')](_0xae30('0x38'),JSON[_0xae30('0x25')](_0x2f0827));return rp(_['merge'](def,_0x2f0827));}function getTags(_0x5ba12d,_0x251eff){var _0x4b99e7=[];if(_0x5ba12d&&_0x5ba12d[_0xae30('0x1b')]>0x0){_0x4b99e7=_[_0xae30('0x39')](_0x5ba12d,_0x251eff);}return _0x4b99e7;}function getCustomFields(_0x2d3d66,_0x1a424a){var _0x4c1b74=[];var _0x1d5e9a={'custom_fields':[]};if(_0x2d3d66[_0xae30('0x1b')]>0x0){_[_0xae30('0x1c')](_0x2d3d66,function(_0x1c96dc){if(_0x1c96dc['type']===_0xae30('0x3a')&&_0x1c96dc['nameField']&&!_0x1c96dc[_0xae30('0x3b')]){_0x1d5e9a[_0x1c96dc[_0xae30('0x3c')][_0xae30('0x3d')]()]=_0x1c96dc[_0xae30('0x3e')][_0xae30('0x22')]();}else if(_0x1c96dc[_0xae30('0x3f')]===_0xae30('0x3a')&&_0x1c96dc[_0xae30('0x40')]&&_0x1c96dc[_0xae30('0x3b')]){_0x1d5e9a[_0xae30('0x41')][_0xae30('0x1e')]({'id':_0x1c96dc['idField'],'value':_0x1c96dc[_0xae30('0x3e')][_0xae30('0x22')]()});}else if(_0x1c96dc['type']===_0xae30('0x42')&&_0x1c96dc[_0xae30('0x1d')]&&_0x1c96dc['idField']&&_0x1c96dc[_0xae30('0x3b')]){_0x1a424a[_0x1c96dc['variableName']]&&_0x1d5e9a[_0xae30('0x41')][_0xae30('0x1e')]({'id':_0x1c96dc[_0xae30('0x40')],'value':_0x1a424a[_0x1c96dc[_0xae30('0x1d')]][_0xae30('0x22')]()});}else if(_0x1c96dc[_0xae30('0x3f')]===_0xae30('0x43')&&_0x1c96dc[_0xae30('0x44')]&&_0x1c96dc[_0xae30('0x44')]['name']&&_0x1c96dc[_0xae30('0x40')]&&_0x1c96dc[_0xae30('0x3b')]){_0x1a424a[_0x1c96dc[_0xae30('0x44')]['name'][_0xae30('0x3d')]()]&&_0x1d5e9a['custom_fields']['push']({'id':_0x1c96dc[_0xae30('0x40')],'value':_0x1a424a[_0x1c96dc[_0xae30('0x44')][_0xae30('0x1a')][_0xae30('0x3d')]()][_0xae30('0x22')]()});}});}return _0x1d5e9a;}function getConnection(_0x1d5865){return request({'method':_0xae30('0x45'),'form':{'method':_0xae30('0x46'),'input_type':_0xae30('0x24'),'response_type':_0xae30('0x24'),'rest_data':JSON[_0xae30('0x25')]({'user_auth':{'user_name':_0x1d5865[_0xae30('0x47')],'password':_0x1d5865['password'],'encryption':_0xae30('0x48')},'application':_0xae30('0x49')})}})['then'](function(_0x5a6c88){var _0x1e0643=_0x5a6c88;if(_0x1e0643['id']){def['sessionID']=_0x1e0643['id'];return BPromise[_0xae30('0x2a')](_0x1e0643);}else{throw new Error(util['format'](_0xae30('0x4a'),_0x1d5865['id']));}});}function setRelationship(_0x1bc086,_0x5b76df,_0x251c5b,_0x434b38){return request({'form':{'method':_0xae30('0x4b'),'input_type':_0xae30('0x24'),'response_type':_0xae30('0x24'),'rest_data':JSON['stringify']({'session':_0x1bc086['id'],'module_name':_0xae30('0x4c'),'module_id':_0x251c5b['id'],'link_field_name':_0x434b38,'related_ids':[_0x5b76df['id']]})}});}exports[_0xae30('0x4d')]=function(_0xc6c055,_0x295ad7,_0x13a542,_0x5f1850,_0x30615e,_0x227345){var _0x331671,_0x39331c,_0x1e85d7,_0x39adf0;_0x227345[_0xae30('0x4e')]=intUtil[_0xae30('0x4f')](_0x227345[_0xae30('0x4e')]);_0x227345[_0xae30('0x50')]=intUtil[_0xae30('0x4f')](_0x227345[_0xae30('0x50')]);def['uri']=util[_0xae30('0x20')](_0xae30('0x51'),_0x227345['remoteUri']);if(_0x30615e&&_0x30615e[_0xae30('0x52')]){logger['info'](_0xae30('0x53'),_0xae30('0x54'));_0x295ad7[_0xae30('0x55')]=util[_0xae30('0x20')](_0xae30('0x56'),_0x227345[_0xae30('0x50')],_0x295ad7['uniqueid'],md5(_0x295ad7['uniqueid']));}else{_0x295ad7['recordingURL']='';}return getConnection(_0x227345)[_0xae30('0x57')](function(_0x439d5a){_0x39adf0=_0x439d5a;return getUser(_0x227345,_0x5f1850[_0xae30('0x1a')],_0x39adf0);})[_0xae30('0x57')](function(_0x217e7f){_0x331671=_0x217e7f;logger[_0xae30('0xb')]('The\x20User\x20ID\x20is:',_0x331671['id']);return getEndUser(_0x227345,_0x295ad7[_0xae30('0x58')],_0x295ad7[_0xae30('0x59')],_0x39adf0);})['then'](function(_0x1ed505){_0x39331c=_0x1ed505;logger[_0xae30('0xb')](_0xae30('0x5a'),_0x39331c['id']);return getTicket(_0x227345,_0x331671,_0x39331c,_0x13a542,_0x295ad7,_0x13a542[_0xae30('0x5b')],_0x39adf0);})['then'](function(_0x588bcc){_0x1e85d7=_0x588bcc;logger['info']('Ticket\x20created!');logger[_0xae30('0xb')](_0xae30('0x5c'),_0x1e85d7['id']);return setRelationship(_0x39adf0,_0x331671,_0x1e85d7,'users');})['then'](function(){return setRelationship(_0x39adf0,_0x39331c,_0x1e85d7,'contacts');})[_0xae30('0x57')](function(){return getServerInfo(_0x39adf0);})[_0xae30('0x57')](function(_0x34abdb){var _0x595153=parseInt(_0x34abdb['version']['charAt'](0x0));var _0x29ba60=util[_0xae30('0x20')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x227345[_0xae30('0x4e')],_0x1e85d7['id']);if(_0x595153>0x6){_0x29ba60=util[_0xae30('0x20')](_0xae30('0x5d'),_0x227345[_0xae30('0x4e')],_0x1e85d7['id']);}logger[_0xae30('0xb')]('[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xae30('0x20')]('user:%s',_0x5f1850[_0xae30('0x1a')]),_0xae30('0x5e'),{'uri':_0x29ba60});})[_0xae30('0x5f')](function(_0x55e8f9){logger[_0xae30('0x60')](_0xae30('0x53'),JSON[_0xae30('0x25')](_0x55e8f9));});};exports[_0xae30('0x61')]=function(_0x30340a,_0x52a529,_0xfe0f67,_0x5b4843,_0x538997,_0x3e4216,_0x11410a){var _0x4ef140,_0x56b57b,_0x5b4a4e,_0xee65cd;_0x3e4216[_0xae30('0x4e')]=intUtil[_0xae30('0x4f')](_0x3e4216[_0xae30('0x4e')]);_0x3e4216[_0xae30('0x50')]=intUtil['stripTrailingSlash'](_0x3e4216[_0xae30('0x50')]);def[_0xae30('0x62')]=util[_0xae30('0x20')](_0xae30('0x51'),_0x3e4216['remoteUri']);if(_0x11410a&&_0x11410a[_0xae30('0x63')]&&_0x11410a[_0xae30('0x63')]!=='none'){logger[_0xae30('0xb')](_0xae30('0x64'),_0xae30('0x54'));_0x52a529[_0xae30('0x55')]=util[_0xae30('0x20')](_0xae30('0x56'),_0x3e4216[_0xae30('0x50')],_0x52a529['uniqueid'],md5(_0x52a529[_0xae30('0x65')]));}return getConnection(_0x3e4216)['then'](function(_0x46503a){_0xee65cd=_0x46503a;return getUser(_0x3e4216,_0x5b4843[_0xae30('0x1a')],_0xee65cd);})[_0xae30('0x57')](function(_0x2dc617){_0x4ef140=_0x2dc617;logger[_0xae30('0xb')]('The\x20User\x20ID\x20is:',_0x4ef140['id']);return getEndUser(_0x3e4216,_0x52a529['destcalleridname'],_0x52a529['destcalleridnum'],_0xee65cd);})[_0xae30('0x57')](function(_0x4c47dd){_0x56b57b=_0x4c47dd;logger[_0xae30('0xb')](_0xae30('0x5a'),_0x56b57b['id']);return getTicket(_0x3e4216,_0x4ef140,_0x56b57b,_0xfe0f67,_0x52a529,_0xfe0f67[_0xae30('0x5b')],_0xee65cd);})[_0xae30('0x57')](function(_0x4c374e){_0x5b4a4e=_0x4c374e;logger[_0xae30('0xb')](_0xae30('0x66'));logger[_0xae30('0xb')]('The\x20Ticket\x20ID\x20is:',_0x5b4a4e['id']);return setRelationship(_0xee65cd,_0x4ef140,_0x5b4a4e,_0xae30('0x67'));})[_0xae30('0x57')](function(){return setRelationship(_0xee65cd,_0x56b57b,_0x5b4a4e,_0xae30('0x68'));})[_0xae30('0x57')](function(){return getServerInfo(_0xee65cd);})[_0xae30('0x57')](function(_0x582fbf){var _0x34650=parseInt(_0x582fbf[_0xae30('0x69')]['charAt'](0x0));var _0x3488b4=util[_0xae30('0x20')](_0xae30('0x6a'),_0x3e4216[_0xae30('0x4e')],_0x5b4a4e['id']);if(_0x34650>0x6){_0x3488b4=util[_0xae30('0x20')](_0xae30('0x5d'),_0x3e4216[_0xae30('0x4e')],_0x5b4a4e['id']);}logger[_0xae30('0xb')](_0xae30('0x64'),_0xae30('0x6b'));emit(util[_0xae30('0x20')]('user:%s',_0x5b4843[_0xae30('0x1a')]),_0xae30('0x5e'),{'uri':_0x3488b4});})['catch'](function(_0x16790e){logger[_0xae30('0x60')](_0xae30('0x64'),JSON['stringify'](_0x16790e));});};exports[_0xae30('0x6c')]=function(_0xd13b77,_0x4192e1,_0x306411,_0x1ada9c,_0x4d5412,_0x1e49e3){var _0x42cb40,_0x5e3c3f,_0x170474,_0x5bef66;_0x1e49e3[_0xae30('0x4e')]=intUtil[_0xae30('0x4f')](_0x1e49e3[_0xae30('0x4e')]);_0x1e49e3[_0xae30('0x50')]=intUtil[_0xae30('0x4f')](_0x1e49e3[_0xae30('0x50')]);def[_0xae30('0x62')]=util[_0xae30('0x20')]('%s/service/v4_1/rest.php',_0x1e49e3['remoteUri']);if(_0x4d5412&&_0x4d5412[_0xae30('0x52')]){logger[_0xae30('0xb')](_0xae30('0x6d'),'Recording\x20is\x20enabled!');_0x4192e1[_0xae30('0x55')]=util[_0xae30('0x20')](_0xae30('0x56'),_0x1e49e3[_0xae30('0x50')],_0x4192e1[_0xae30('0x65')],md5(_0x4192e1[_0xae30('0x65')]));}else{_0x4192e1[_0xae30('0x55')]='';}return getConnection(_0x1e49e3)[_0xae30('0x57')](function(_0x1ae1e8){_0x5bef66=_0x1ae1e8;return getUser(_0x1e49e3,_0x1ada9c[_0xae30('0x1a')],_0x5bef66);})[_0xae30('0x57')](function(_0xdc64f3){_0x42cb40=_0xdc64f3;logger['info'](_0xae30('0x6e'),_0x42cb40['id']);return getEndUser(_0x1e49e3,_0x4192e1[_0xae30('0x58')],_0x4192e1['calleridnum'],_0x5bef66);})['then'](function(_0x588ce6){_0x5e3c3f=_0x588ce6;logger['info'](_0xae30('0x5a'),_0x5e3c3f['id']);return getTicket(_0x1e49e3,_0x42cb40,_0x5e3c3f,_0x306411,_0x4192e1,_0x306411[_0xae30('0x5b')],_0x5bef66);})[_0xae30('0x57')](function(_0x1aea35){_0x170474=_0x1aea35;logger['info']('Ticket\x20created!');logger[_0xae30('0xb')](_0xae30('0x5c'),_0x170474['id']);return setRelationship(_0x5bef66,_0x42cb40,_0x170474,_0xae30('0x67'));})[_0xae30('0x57')](function(){return setRelationship(_0x5bef66,_0x5e3c3f,_0x170474,_0xae30('0x68'));})[_0xae30('0x57')](function(){return getServerInfo(_0x5bef66);})[_0xae30('0x5f')](function(_0x825a6e){logger['error'](_0xae30('0x6d'),JSON[_0xae30('0x25')](_0x825a6e));});};
\ No newline at end of file
+var _0x53ec=['format','Basic\x20%s','apiKey','toString','base64','get_server_info','Getting\x20agent\x20with\x20name','get_entry_list','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','user_name','then','entry_list','name_value_list','value','resolve','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id','contacts.phone_home\x20=\x20\x22%s\x22','find','Enduser\x20found!','phone_home','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','set_entry','first_name','Enduser\x20created.','debug','string','content','type','customField','variable','custom_fields','Variable','toLowerCase','POST','login','password','PLAIN','xCALLY\x20Motion\x20integration','Account\x20%d\x20is\x20not\x20valid','queue','remoteUri','stripTrailingSlash','serverUrl','uri','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','The\x20Ticket\x20ID\x20is:','users','contacts','version','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','outbound','%s/service/v4_1/rest.php','recordingFormat','none','[OUTBOUND]','The\x20User\x20ID\x20is:','destcalleridname','Ticket\x20created!','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','catch','error','monitor_format','[ABANDONED]','lodash','request-promise','bluebird','md5','util','ioredis','../../../../config/environment','sugarcrm','redis','socket.io-emitter','emit','info','name','getString','Subjects','description','Descriptions','date_start','toISOString','slice','replace','duration_hours','duration_minutes','parent_id','Contacts','parent_name','length','forEach','variableName','push','idField','JSON','stringify','Calls'];(function(_0xd2c423,_0x572acf){var _0xed48ff=function(_0x15ae55){while(--_0x15ae55){_0xd2c423['push'](_0xd2c423['shift']());}};_0xed48ff(++_0x572acf);}(_0x53ec,0x192));var _0xc53e=function(_0x3f558f,_0x338b4c){_0x3f558f=_0x3f558f-0x0;var _0x4c8cf2=_0x53ec[_0x3f558f];return _0x4c8cf2;};'use strict';var _=require(_0xc53e('0x0'));var rp=require(_0xc53e('0x1'));var BPromise=require(_0xc53e('0x2'));var md5=require(_0xc53e('0x3'));var util=require(_0xc53e('0x4'));var Redis=require(_0xc53e('0x5'));var intUtil=require('./util');var config=require(_0xc53e('0x6'));var logger=require('../../../../config/logger')(_0xc53e('0x7'));config[_0xc53e('0x8')]=_['defaults'](config[_0xc53e('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0xc53e('0x9'))(new Redis(config[_0xc53e('0x8')]));var def={'method':'POST','json':!![]};function emit(_0x1616ac,_0x1ac6c0,_0x8b231f){io['to'](_0x1616ac)[_0xc53e('0xa')](_0x1ac6c0,_0x8b231f);}function getTicket(_0xd9612,_0x2c88cb,_0xd82002,_0x361e9d,_0xa98198,_0x4b7cfa,_0x57e818){logger[_0xc53e('0xb')]('Creating\x20new\x20ticket...');var _0x54e3ba=new Date();var _0x20878d=[{'name':_0xc53e('0xc'),'value':intUtil[_0xc53e('0xd')](_0x361e9d[_0xc53e('0xe')],_0xa98198,'\x20')},{'name':'assigned_user_id','value':_0x2c88cb['id']},{'name':'created_by','value':_0x2c88cb['id']},{'name':_0xc53e('0xf'),'value':intUtil[_0xc53e('0xd')](_0x361e9d[_0xc53e('0x10')],_0xa98198,'\x0a')},{'name':_0xc53e('0x11'),'value':_0x54e3ba[_0xc53e('0x12')]()[_0xc53e('0x13')](0x0,0x13)[_0xc53e('0x14')]('T','\x20')},{'name':_0xc53e('0x15'),'value':'0'},{'name':_0xc53e('0x16'),'value':'15'},{'name':_0xc53e('0x17'),'value':_0xd82002['id']},{'name':'parent_type','value':_0xc53e('0x18')},{'name':_0xc53e('0x19'),'value':_0xd82002[_0xc53e('0xc')]}];if(_0x4b7cfa[_0xc53e('0x1a')]){_[_0xc53e('0x1b')](_0x4b7cfa,function(_0x270c78){if(_0xa98198[_0x270c78[_0xc53e('0x1c')]]){_0x20878d[_0xc53e('0x1d')]({'name':_0x270c78[_0xc53e('0x1e')],'value':_0xa98198[_0x270c78['variableName']]});}});}return request({'form':{'method':'set_entry','input_type':_0xc53e('0x1f'),'response_type':_0xc53e('0x1f'),'rest_data':JSON[_0xc53e('0x20')]({'session':_0x57e818['id'],'module_name':_0xc53e('0x21'),'name_value_list':_0x20878d})}});}function getAuth(_0x20066e){return util[_0xc53e('0x22')](_0xc53e('0x23'),new Buffer(_0x20066e[_0xc53e('0x24')]+':X')[_0xc53e('0x25')](_0xc53e('0x26')));}function getServerInfo(_0x17d825){return request({'form':{'method':_0xc53e('0x27'),'input_type':_0xc53e('0x1f'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x17d825['id']})}});}function getUser(_0x531ede,_0x4f4304,_0x384218){logger[_0xc53e('0xb')](_0xc53e('0x28'),_0x4f4304);return request({'form':{'method':_0xc53e('0x29'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0xc53e('0x20')]({'session':_0x384218['id'],'module_name':'Employees','query':util[_0xc53e('0x22')](_0xc53e('0x2a'),_0x4f4304),'order_by':'','offset':'0','select_fields':['id',_0xc53e('0xc'),_0xc53e('0x2b')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xc53e('0x2c')](function(_0x4df8cf){if(_0x4df8cf[_0xc53e('0x2d')]['length']){var _0x4d9a68=_['find'](_0x4df8cf[_0xc53e('0x2d')],function(_0x57a1f5){return _0x57a1f5[_0xc53e('0x2e')]['user_name'][_0xc53e('0x2f')]===_0x4f4304;});if(_0x4d9a68){logger['info']('Agent\x20found!');return BPromise[_0xc53e('0x30')]({'id':_0x4d9a68[_0xc53e('0x2e')]['id'][_0xc53e('0x2f')],'name':_0x4d9a68[_0xc53e('0x2e')][_0xc53e('0xc')][_0xc53e('0x2f')]});}}else{logger[_0xc53e('0xb')](_0xc53e('0x31'));return BPromise['resolve']({'id':_0x384218[_0xc53e('0x2e')][_0xc53e('0x32')]['id'],'name':_0x384218[_0xc53e('0x2e')]['user_name']['id']});}});}function getEndUser(_0x4057f9,_0x495756,_0x4572e,_0x2467f4){logger['info']('Searching\x20enduser\x20with\x20phone',_0x4572e);return request({'form':{'method':_0xc53e('0x29'),'input_type':_0xc53e('0x1f'),'response_type':_0xc53e('0x1f'),'rest_data':JSON[_0xc53e('0x20')]({'session':_0x2467f4['id'],'module_name':_0xc53e('0x18'),'query':util[_0xc53e('0x22')](_0xc53e('0x33'),_0x4572e),'order_by':'','offset':'0','select_fields':['id',_0xc53e('0xc'),'phone_home'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xc53e('0x2c')](function(_0x3bae8a){if(_0x3bae8a[_0xc53e('0x2d')][_0xc53e('0x1a')]){var _0x1eca5b=_[_0xc53e('0x34')](_0x3bae8a[_0xc53e('0x2d')],function(_0x16942c){return _0x16942c[_0xc53e('0x2e')]['phone_home'][_0xc53e('0x2f')]===_0x4572e;});if(_0x1eca5b){logger['info'](_0xc53e('0x35'));return BPromise[_0xc53e('0x30')]({'id':_0x1eca5b['name_value_list']['id'][_0xc53e('0x2f')],'name':_0x1eca5b[_0xc53e('0x2e')][_0xc53e('0xc')]['value'],'phone':_0x1eca5b[_0xc53e('0x2e')][_0xc53e('0x36')][_0xc53e('0x2f')]});}}else{logger[_0xc53e('0xb')](_0xc53e('0x37'));return request({'form':{'method':_0xc53e('0x38'),'input_type':_0xc53e('0x1f'),'response_type':'JSON','rest_data':JSON[_0xc53e('0x20')]({'session':_0x2467f4['id'],'module_name':_0xc53e('0x18'),'name_value_list':[{'name':_0xc53e('0x39'),'value':_0x495756!=='<unknown>'?_0x495756:util[_0xc53e('0x22')]('Caller\x20-\x20%s',_0x4572e)},{'name':_0xc53e('0x36'),'value':_0x4572e}]})}})[_0xc53e('0x2c')](function(_0x40c4f5){logger[_0xc53e('0xb')](_0xc53e('0x3a'));return BPromise['resolve']({'id':_0x40c4f5['id'],'name':_0x40c4f5[_0xc53e('0x2d')][_0xc53e('0x39')]['value'],'phone':_0x40c4f5['entry_list']['phone_home']['value']});});}});}function request(_0x1e2ea3){logger[_0xc53e('0x3b')]('[HTTP]',JSON[_0xc53e('0x20')](_0x1e2ea3));return rp(_['merge'](def,_0x1e2ea3));}function getTags(_0x55d07d,_0x53447e){var _0x255794=[];if(_0x55d07d&&_0x55d07d['length']>0x0){_0x255794=_['map'](_0x55d07d,_0x53447e);}return _0x255794;}function getCustomFields(_0x433a44,_0x53a82f){var _0x422088=[];var _0x360af9={'custom_fields':[]};if(_0x433a44['length']>0x0){_[_0xc53e('0x1b')](_0x433a44,function(_0x3a4ebc){if(_0x3a4ebc['type']===_0xc53e('0x3c')&&_0x3a4ebc['nameField']&&!_0x3a4ebc['customField']){_0x360af9[_0x3a4ebc['nameField']['toLowerCase']()]=_0x3a4ebc[_0xc53e('0x3d')][_0xc53e('0x25')]();}else if(_0x3a4ebc[_0xc53e('0x3e')]==='string'&&_0x3a4ebc[_0xc53e('0x1e')]&&_0x3a4ebc[_0xc53e('0x3f')]){_0x360af9['custom_fields']['push']({'id':_0x3a4ebc[_0xc53e('0x1e')],'value':_0x3a4ebc[_0xc53e('0x3d')][_0xc53e('0x25')]()});}else if(_0x3a4ebc['type']===_0xc53e('0x40')&&_0x3a4ebc[_0xc53e('0x1c')]&&_0x3a4ebc[_0xc53e('0x1e')]&&_0x3a4ebc[_0xc53e('0x3f')]){_0x53a82f[_0x3a4ebc[_0xc53e('0x1c')]]&&_0x360af9[_0xc53e('0x41')][_0xc53e('0x1d')]({'id':_0x3a4ebc['idField'],'value':_0x53a82f[_0x3a4ebc[_0xc53e('0x1c')]][_0xc53e('0x25')]()});}else if(_0x3a4ebc[_0xc53e('0x3e')]==='customVariable'&&_0x3a4ebc[_0xc53e('0x42')]&&_0x3a4ebc[_0xc53e('0x42')][_0xc53e('0xc')]&&_0x3a4ebc[_0xc53e('0x1e')]&&_0x3a4ebc[_0xc53e('0x3f')]){_0x53a82f[_0x3a4ebc[_0xc53e('0x42')]['name'][_0xc53e('0x43')]()]&&_0x360af9[_0xc53e('0x41')][_0xc53e('0x1d')]({'id':_0x3a4ebc['idField'],'value':_0x53a82f[_0x3a4ebc[_0xc53e('0x42')][_0xc53e('0xc')][_0xc53e('0x43')]()][_0xc53e('0x25')]()});}});}return _0x360af9;}function getConnection(_0x293f36){return request({'method':_0xc53e('0x44'),'form':{'method':_0xc53e('0x45'),'input_type':_0xc53e('0x1f'),'response_type':_0xc53e('0x1f'),'rest_data':JSON[_0xc53e('0x20')]({'user_auth':{'user_name':_0x293f36['username'],'password':_0x293f36[_0xc53e('0x46')],'encryption':_0xc53e('0x47')},'application':_0xc53e('0x48')})}})[_0xc53e('0x2c')](function(_0x136544){var _0x52dac7=_0x136544;if(_0x52dac7['id']){def['sessionID']=_0x52dac7['id'];return BPromise[_0xc53e('0x30')](_0x52dac7);}else{throw new Error(util['format'](_0xc53e('0x49'),_0x293f36['id']));}});}function setRelationship(_0x575a13,_0x3a49a4,_0x12d901,_0xd0bc44){return request({'form':{'method':'set_relationship','input_type':_0xc53e('0x1f'),'response_type':_0xc53e('0x1f'),'rest_data':JSON[_0xc53e('0x20')]({'session':_0x575a13['id'],'module_name':'Calls','module_id':_0x12d901['id'],'link_field_name':_0xd0bc44,'related_ids':[_0x3a49a4['id']]})}});}exports[_0xc53e('0x4a')]=function(_0x501f0a,_0x2be75c,_0x3f1ca5,_0x5ce90c,_0x15a96a,_0x1515ea){var _0x5bba72,_0x44f7cc,_0x36d321,_0x27a620;_0x1515ea[_0xc53e('0x4b')]=intUtil[_0xc53e('0x4c')](_0x1515ea[_0xc53e('0x4b')]);_0x1515ea[_0xc53e('0x4d')]=intUtil[_0xc53e('0x4c')](_0x1515ea[_0xc53e('0x4d')]);def[_0xc53e('0x4e')]=util[_0xc53e('0x22')]('%s/service/v4_1/rest.php',_0x1515ea[_0xc53e('0x4b')]);if(_0x15a96a&&_0x15a96a['monitor_format']){logger[_0xc53e('0xb')]('[QUEUE]',_0xc53e('0x4f'));_0x2be75c[_0xc53e('0x50')]=util['format'](_0xc53e('0x51'),_0x1515ea[_0xc53e('0x4d')],_0x2be75c[_0xc53e('0x52')],md5(_0x2be75c[_0xc53e('0x52')]));}else{_0x2be75c['recordingURL']='';}return getConnection(_0x1515ea)[_0xc53e('0x2c')](function(_0x335427){_0x27a620=_0x335427;return getUser(_0x1515ea,_0x5ce90c['name'],_0x27a620);})['then'](function(_0x3c0aa1){_0x5bba72=_0x3c0aa1;logger['info']('The\x20User\x20ID\x20is:',_0x5bba72['id']);return getEndUser(_0x1515ea,_0x2be75c['calleridname'],_0x2be75c[_0xc53e('0x53')],_0x27a620);})['then'](function(_0x32b390){_0x44f7cc=_0x32b390;logger['info'](_0xc53e('0x54'),_0x44f7cc['id']);return getTicket(_0x1515ea,_0x5bba72,_0x44f7cc,_0x3f1ca5,_0x2be75c,_0x3f1ca5[_0xc53e('0x55')],_0x27a620);})[_0xc53e('0x2c')](function(_0x5cd004){_0x36d321=_0x5cd004;logger[_0xc53e('0xb')]('Ticket\x20created!');logger['info'](_0xc53e('0x56'),_0x36d321['id']);return setRelationship(_0x27a620,_0x5bba72,_0x36d321,_0xc53e('0x57'));})[_0xc53e('0x2c')](function(){return setRelationship(_0x27a620,_0x44f7cc,_0x36d321,_0xc53e('0x58'));})[_0xc53e('0x2c')](function(){return getServerInfo(_0x27a620);})[_0xc53e('0x2c')](function(_0x31f72e){var _0x5e3bc3=parseInt(_0x31f72e[_0xc53e('0x59')][_0xc53e('0x5a')](0x0));var _0x30333b=util[_0xc53e('0x22')](_0xc53e('0x5b'),_0x1515ea['remoteUri'],_0x36d321['id']);if(_0x5e3bc3>0x6){_0x30333b=util[_0xc53e('0x22')]('%s/#bwc/index.php?module=Calls&action=EditView&record=%s',_0x1515ea[_0xc53e('0x4b')],_0x36d321['id']);}logger[_0xc53e('0xb')](_0xc53e('0x5c'),_0xc53e('0x5d'));emit(util[_0xc53e('0x22')](_0xc53e('0x5e'),_0x5ce90c[_0xc53e('0xc')]),_0xc53e('0x5f'),{'uri':_0x30333b});})['catch'](function(_0x4843cb){logger['error'](_0xc53e('0x5c'),JSON[_0xc53e('0x20')](_0x4843cb));});};exports[_0xc53e('0x60')]=function(_0x25e4b6,_0x247d99,_0x160ca3,_0x3581ab,_0x5a9596,_0x4e1222,_0x5961bb){var _0x40c8ba,_0x150212,_0x5bcc80,_0x1a03ba;_0x4e1222[_0xc53e('0x4b')]=intUtil[_0xc53e('0x4c')](_0x4e1222[_0xc53e('0x4b')]);_0x4e1222[_0xc53e('0x4d')]=intUtil[_0xc53e('0x4c')](_0x4e1222['serverUrl']);def['uri']=util[_0xc53e('0x22')](_0xc53e('0x61'),_0x4e1222[_0xc53e('0x4b')]);if(_0x5961bb&&_0x5961bb[_0xc53e('0x62')]&&_0x5961bb[_0xc53e('0x62')]!==_0xc53e('0x63')){logger['info'](_0xc53e('0x64'),_0xc53e('0x4f'));_0x247d99[_0xc53e('0x50')]=util[_0xc53e('0x22')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4e1222[_0xc53e('0x4d')],_0x247d99[_0xc53e('0x52')],md5(_0x247d99[_0xc53e('0x52')]));}return getConnection(_0x4e1222)[_0xc53e('0x2c')](function(_0x32f954){_0x1a03ba=_0x32f954;return getUser(_0x4e1222,_0x3581ab[_0xc53e('0xc')],_0x1a03ba);})['then'](function(_0x1020a0){_0x40c8ba=_0x1020a0;logger[_0xc53e('0xb')](_0xc53e('0x65'),_0x40c8ba['id']);return getEndUser(_0x4e1222,_0x247d99[_0xc53e('0x66')],_0x247d99['destcalleridnum'],_0x1a03ba);})['then'](function(_0x57edb){_0x150212=_0x57edb;logger[_0xc53e('0xb')](_0xc53e('0x54'),_0x150212['id']);return getTicket(_0x4e1222,_0x40c8ba,_0x150212,_0x160ca3,_0x247d99,_0x160ca3[_0xc53e('0x55')],_0x1a03ba);})['then'](function(_0x7f7b2){_0x5bcc80=_0x7f7b2;logger['info'](_0xc53e('0x67'));logger['info'](_0xc53e('0x56'),_0x5bcc80['id']);return setRelationship(_0x1a03ba,_0x40c8ba,_0x5bcc80,'users');})[_0xc53e('0x2c')](function(){return setRelationship(_0x1a03ba,_0x150212,_0x5bcc80,_0xc53e('0x58'));})['then'](function(){return getServerInfo(_0x1a03ba);})[_0xc53e('0x2c')](function(_0xfd2140){var _0x4d13a0=parseInt(_0xfd2140['version'][_0xc53e('0x5a')](0x0));var _0x319e02=util['format']('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x4e1222[_0xc53e('0x4b')],_0x5bcc80['id']);if(_0x4d13a0>0x6){_0x319e02=util['format'](_0xc53e('0x68'),_0x4e1222['remoteUri'],_0x5bcc80['id']);}logger[_0xc53e('0xb')](_0xc53e('0x64'),_0xc53e('0x5d'));emit(util[_0xc53e('0x22')](_0xc53e('0x5e'),_0x3581ab[_0xc53e('0xc')]),_0xc53e('0x5f'),{'uri':_0x319e02});})[_0xc53e('0x69')](function(_0x258be8){logger[_0xc53e('0x6a')]('[OUTBOUND]',JSON[_0xc53e('0x20')](_0x258be8));});};exports['abandoned']=function(_0x174cf9,_0x1e8679,_0xdf84f4,_0x2c027c,_0x466d8f,_0x33fbab){var _0x1e3499,_0x3cc2c7,_0x105cc3,_0x1f572b;_0x33fbab['remoteUri']=intUtil[_0xc53e('0x4c')](_0x33fbab['remoteUri']);_0x33fbab[_0xc53e('0x4d')]=intUtil[_0xc53e('0x4c')](_0x33fbab[_0xc53e('0x4d')]);def['uri']=util[_0xc53e('0x22')](_0xc53e('0x61'),_0x33fbab[_0xc53e('0x4b')]);if(_0x466d8f&&_0x466d8f[_0xc53e('0x6b')]){logger[_0xc53e('0xb')]('[ABANDONED]',_0xc53e('0x4f'));_0x1e8679[_0xc53e('0x50')]=util['format'](_0xc53e('0x51'),_0x33fbab[_0xc53e('0x4d')],_0x1e8679[_0xc53e('0x52')],md5(_0x1e8679['uniqueid']));}else{_0x1e8679[_0xc53e('0x50')]='';}return getConnection(_0x33fbab)[_0xc53e('0x2c')](function(_0x49bed2){_0x1f572b=_0x49bed2;return getUser(_0x33fbab,_0x2c027c[_0xc53e('0xc')],_0x1f572b);})[_0xc53e('0x2c')](function(_0x4d03cd){_0x1e3499=_0x4d03cd;logger['info'](_0xc53e('0x65'),_0x1e3499['id']);return getEndUser(_0x33fbab,_0x1e8679['calleridname'],_0x1e8679[_0xc53e('0x53')],_0x1f572b);})[_0xc53e('0x2c')](function(_0x263d97){_0x3cc2c7=_0x263d97;logger['info'](_0xc53e('0x54'),_0x3cc2c7['id']);return getTicket(_0x33fbab,_0x1e3499,_0x3cc2c7,_0xdf84f4,_0x1e8679,_0xdf84f4[_0xc53e('0x55')],_0x1f572b);})[_0xc53e('0x2c')](function(_0x4c8112){_0x105cc3=_0x4c8112;logger[_0xc53e('0xb')](_0xc53e('0x67'));logger[_0xc53e('0xb')](_0xc53e('0x56'),_0x105cc3['id']);return setRelationship(_0x1f572b,_0x1e3499,_0x105cc3,_0xc53e('0x57'));})['then'](function(){return setRelationship(_0x1f572b,_0x3cc2c7,_0x105cc3,_0xc53e('0x58'));})[_0xc53e('0x2c')](function(){return getServerInfo(_0x1f572b);})[_0xc53e('0x69')](function(_0x2f0a47){logger[_0xc53e('0x6a')](_0xc53e('0x6c'),JSON[_0xc53e('0x20')](_0x2f0a47));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8729=['length','sortBy','type','string','content','variable','variableName','push','toString','customVariable','Variable','name','toLowerCase','keyValue','format','%s:\x20%s','key','keyContent','keyType','join','substr','util'];(function(_0xe07eba,_0x25413d){var _0x2e7312=function(_0x197388){while(--_0x197388){_0xe07eba['push'](_0xe07eba['shift']());}};_0x2e7312(++_0x25413d);}(_0x8729,0x149));var _0x9872=function(_0x33400c,_0x3cd256){_0x33400c=_0x33400c-0x0;var _0x15c3a6=_0x8729[_0x33400c];return _0x15c3a6;};'use strict';var _=require('lodash');var util=require(_0x9872('0x0'));exports['getString']=function(_0x38defb,_0x287f33,_0x2e9fe0){var _0x4af693=[];if(_0x38defb[_0x9872('0x1')]>0x0){var _0x23fa41=_[_0x9872('0x2')](_0x38defb,['id']);for(var _0x56ac5e=0x0;_0x56ac5e<_0x23fa41[_0x9872('0x1')];_0x56ac5e++){var _0x164cc5=_0x23fa41[_0x56ac5e];if(_0x164cc5[_0x9872('0x3')]===_0x9872('0x4')){_0x4af693['push'](_0x164cc5[_0x9872('0x5')]);}else if(_0x164cc5[_0x9872('0x3')]===_0x9872('0x6')&&_0x164cc5[_0x9872('0x7')]){_0x287f33[_0x164cc5[_0x9872('0x7')]]&&_0x4af693[_0x9872('0x8')](_0x287f33[_0x164cc5['variableName']][_0x9872('0x9')]());}else if(_0x164cc5['type']===_0x9872('0xa')&&_0x164cc5['Variable']&&_0x164cc5[_0x9872('0xb')][_0x9872('0xc')]){_0x287f33[_0x164cc5[_0x9872('0xb')][_0x9872('0xc')][_0x9872('0xd')]()]&&_0x4af693[_0x9872('0x8')](_0x287f33[_0x164cc5[_0x9872('0xb')][_0x9872('0xc')][_0x9872('0xd')]()][_0x9872('0x9')]());}else if(_0x164cc5['type']===_0x9872('0xe')){if(_0x164cc5['keyType']==='string'&&_0x164cc5['key']){_0x4af693['push'](util[_0x9872('0xf')](_0x9872('0x10'),_0x164cc5[_0x9872('0x11')],_0x164cc5[_0x9872('0x12')]));}else if(_0x164cc5[_0x9872('0x13')]==='variable'&&_0x164cc5[_0x9872('0x7')]&&_0x164cc5[_0x9872('0x11')]){_0x287f33[_0x164cc5[_0x9872('0x7')]]&&_0x4af693['push'](util[_0x9872('0xf')](_0x9872('0x10'),_0x164cc5[_0x9872('0x11')],_0x287f33[_0x164cc5[_0x9872('0x7')]]));}else if(_0x164cc5[_0x9872('0x13')]===_0x9872('0xa')&&_0x164cc5[_0x9872('0xb')]&&_0x164cc5[_0x9872('0xb')][_0x9872('0xc')]&&_0x164cc5[_0x9872('0x11')]){_0x287f33[_0x164cc5[_0x9872('0xb')]['name'][_0x9872('0xd')]()]&&_0x4af693['push'](util['format']('%s:\x20%s',_0x164cc5['key'],_0x287f33[_0x164cc5[_0x9872('0xb')][_0x9872('0xc')][_0x9872('0xd')]()]));}}}}return _0x4af693[_0x9872('0x14')](_0x2e9fe0);};exports['stripTrailingSlash']=function(_0x337c36){if(_0x337c36&&_0x337c36[_0x9872('0x15')](-0x1)==='/'){return _0x337c36[_0x9872('0x15')](0x0,_0x337c36['length']-0x1);}return _0x337c36;};
\ No newline at end of file
+var _0xb34a=['variable','variableName','customVariable','Variable','name','toLowerCase','toString','keyValue','keyType','key','format','%s:\x20%s','keyContent','join','substr','getString','length','sortBy','type','string','push','content'];(function(_0x58108c,_0x18a935){var _0x375bbe=function(_0x1888f5){while(--_0x1888f5){_0x58108c['push'](_0x58108c['shift']());}};_0x375bbe(++_0x18a935);}(_0xb34a,0x117));var _0xab34=function(_0x2fd959,_0x14af3e){_0x2fd959=_0x2fd959-0x0;var _0xdfce5e=_0xb34a[_0x2fd959];return _0xdfce5e;};'use strict';var _=require('lodash');var util=require('util');exports[_0xab34('0x0')]=function(_0x58e2c7,_0x360720,_0x49f120){var _0x409042=[];if(_0x58e2c7[_0xab34('0x1')]>0x0){var _0x366a92=_[_0xab34('0x2')](_0x58e2c7,['id']);for(var _0x5d3caa=0x0;_0x5d3caa<_0x366a92[_0xab34('0x1')];_0x5d3caa++){var _0x4d0c3f=_0x366a92[_0x5d3caa];if(_0x4d0c3f[_0xab34('0x3')]===_0xab34('0x4')){_0x409042[_0xab34('0x5')](_0x4d0c3f[_0xab34('0x6')]);}else if(_0x4d0c3f[_0xab34('0x3')]===_0xab34('0x7')&&_0x4d0c3f[_0xab34('0x8')]){_0x360720[_0x4d0c3f[_0xab34('0x8')]]&&_0x409042[_0xab34('0x5')](_0x360720[_0x4d0c3f[_0xab34('0x8')]]['toString']());}else if(_0x4d0c3f[_0xab34('0x3')]===_0xab34('0x9')&&_0x4d0c3f[_0xab34('0xa')]&&_0x4d0c3f[_0xab34('0xa')][_0xab34('0xb')]){_0x360720[_0x4d0c3f[_0xab34('0xa')]['name'][_0xab34('0xc')]()]&&_0x409042[_0xab34('0x5')](_0x360720[_0x4d0c3f[_0xab34('0xa')]['name']['toLowerCase']()][_0xab34('0xd')]());}else if(_0x4d0c3f['type']===_0xab34('0xe')){if(_0x4d0c3f[_0xab34('0xf')]===_0xab34('0x4')&&_0x4d0c3f[_0xab34('0x10')]){_0x409042[_0xab34('0x5')](util[_0xab34('0x11')](_0xab34('0x12'),_0x4d0c3f[_0xab34('0x10')],_0x4d0c3f[_0xab34('0x13')]));}else if(_0x4d0c3f[_0xab34('0xf')]==='variable'&&_0x4d0c3f[_0xab34('0x8')]&&_0x4d0c3f[_0xab34('0x10')]){_0x360720[_0x4d0c3f[_0xab34('0x8')]]&&_0x409042[_0xab34('0x5')](util[_0xab34('0x11')]('%s:\x20%s',_0x4d0c3f[_0xab34('0x10')],_0x360720[_0x4d0c3f[_0xab34('0x8')]]));}else if(_0x4d0c3f[_0xab34('0xf')]==='customVariable'&&_0x4d0c3f['Variable']&&_0x4d0c3f[_0xab34('0xa')][_0xab34('0xb')]&&_0x4d0c3f[_0xab34('0x10')]){_0x360720[_0x4d0c3f[_0xab34('0xa')]['name']['toLowerCase']()]&&_0x409042[_0xab34('0x5')](util[_0xab34('0x11')]('%s:\x20%s',_0x4d0c3f[_0xab34('0x10')],_0x360720[_0x4d0c3f['Variable']['name'][_0xab34('0xc')]()]));}}}}return _0x409042[_0xab34('0x14')](_0x49f120);};exports['stripTrailingSlash']=function(_0x31b023){if(_0x31b023&&_0x31b023[_0xab34('0x15')](-0x1)==='/'){return _0x31b023[_0xab34('0x15')](0x0,_0x31b023[_0xab34('0x1')]-0x1);}return _0x31b023;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x334c=['SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','POST','Enduser\x20created.','phone','getEndUser','getchallenge','login','getConnection','queue','stripTrailingSlash','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','recordingURL','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','Fields','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','abandoned','monitor_format','[ABANDONED]','The\x20Enduser\x20ID\x20is:','request-promise','bluebird','md5','./util','../../../../config/logger','vTiger','redis','localhost','socket.io-emitter','emit','length','string','idField','content','type','variableName','toString','Variable','name','info','Normal','Open','getString','Subjects','Descriptions','%s/webservice.php','admin','sessionName','HelpDesk','stringify','then','success','resolve','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','error','catch','test','statusCode','[vTiger],\x20%s,\x20%s,\x20%s','Getting\x20agent\x20with\x20email','GET','format','remoteUri','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','Agent\x20found!','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','username','getUser','Searching\x20end\x20user\x20with\x20phone'];(function(_0x2ac347,_0x15eb57){var _0x7ee73b=function(_0x452ddc){while(--_0x452ddc){_0x2ac347['push'](_0x2ac347['shift']());}};_0x7ee73b(++_0x15eb57);}(_0x334c,0xe4));var _0xc334=function(_0x21c2c8,_0x44257e){_0x21c2c8=_0x21c2c8-0x0;var _0x4dd745=_0x334c[_0x21c2c8];return _0x4dd745;};'use strict';var _=require('lodash');var rp=require(_0xc334('0x0'));var BPromise=require(_0xc334('0x1'));var md5=require(_0xc334('0x2'));var util=require('util');var intUtil=require(_0xc334('0x3'));var config=require('../../../../config/environment');var logger=require(_0xc334('0x4'))(_0xc334('0x5'));config[_0xc334('0x6')]=_['defaults'](config[_0xc334('0x6')],{'host':_0xc334('0x7'),'port':0x18eb});var io=require(_0xc334('0x8'))(config[_0xc334('0x6')]);function emit(_0x53335f,_0x2a89cd,_0x3a7d58){io['to'](_0x53335f)[_0xc334('0x9')](_0x2a89cd,_0x3a7d58);}function getCustomFields(_0x266c7e,_0x306dc1){var _0x301728={};if(_0x266c7e[_0xc334('0xa')]>0x0){_['forEach'](_0x266c7e,function(_0xd7cd4a){if(_0xd7cd4a['type']===_0xc334('0xb')&&_0xd7cd4a[_0xc334('0xc')]){_0x301728[_0xd7cd4a[_0xc334('0xc')]]=_0xd7cd4a[_0xc334('0xd')]['toString']();}else if(_0xd7cd4a[_0xc334('0xe')]==='variable'&&_0xd7cd4a[_0xc334('0xf')]&&_0xd7cd4a[_0xc334('0xc')]&&_0x306dc1[_0xd7cd4a[_0xc334('0xf')]]){_0x301728[_0xd7cd4a[_0xc334('0xc')]]=_0x306dc1[_0xd7cd4a['variableName']][_0xc334('0x10')]();}else if(_0xd7cd4a[_0xc334('0xe')]==='customVariable'&&_0xd7cd4a['Variable']&&_0xd7cd4a[_0xc334('0x11')][_0xc334('0x12')]&&_0xd7cd4a[_0xc334('0xc')]&&_0x306dc1[_0xd7cd4a['Variable']['name']['toLowerCase']()]){_0x301728[_0xd7cd4a[_0xc334('0xc')]]=_0x306dc1[_0xd7cd4a[_0xc334('0x11')][_0xc334('0x12')]['toLowerCase']()][_0xc334('0x10')]();}});}return _0x301728;}function createTicket(_0x52c0ab,_0x987d40,_0xe86fd2,_0x2dee7f,_0x37d8ba,_0x4129c3,_0x186042){logger[_0xc334('0x13')]('Creating\x20new\x20ticket...');var _0x3ff4b3=_['merge']({'parent_id':'','assigned_user_id':_0x987d40['id'],'ticketpriorities':_0xc334('0x14'),'ticketstatus':_0xc334('0x15'),'ticket_title':intUtil[_0xc334('0x16')](_0x2dee7f[_0xc334('0x17')],_0x37d8ba,'\x20'),'description':intUtil[_0xc334('0x16')](_0x2dee7f[_0xc334('0x18')],_0x37d8ba,'\x0a'),'contact_id':_0xe86fd2['id']},getCustomFields(_0x4129c3,_0x37d8ba));var _0x224188={'method':'POST','uri':util['format'](_0xc334('0x19'),_0x52c0ab['remoteUri']),'form':{'operation':'create','username':_0xc334('0x1a'),'sessionName':_0x186042[_0xc334('0x1b')],'elementType':_0xc334('0x1c'),'element':JSON[_0xc334('0x1d')](_0x3ff4b3)},'json':!![]};return request(_0x224188)[_0xc334('0x1e')](function(_0x6db38c){if(_0x6db38c[_0xc334('0x1f')]){return BPromise[_0xc334('0x20')]({'id':_0x6db38c[_0xc334('0x21')]['id']});}else{throw new Error(util['format'](_0xc334('0x22'),JSON[_0xc334('0x1d')](_0x6db38c[_0xc334('0x23')])));}})[_0xc334('0x24')](function(_0xb1d696){var _0x37311c=req['query'][_0xc334('0x25')]?0x1f4:_0xb1d696[_0xc334('0x26')]||0x1f4;logger[_0xc334('0x23')](_0xc334('0x27'),'createTicket',_0x37311c,JSON[_0xc334('0x1d')](_0xb1d696));});}function getUser(_0x55647e,_0x1e55e1,_0xfb8a73){logger[_0xc334('0x13')](_0xc334('0x28'),_0x1e55e1);return request({'method':_0xc334('0x29'),'uri':util[_0xc334('0x2a')]('%s/webservice.php',_0x55647e[_0xc334('0x2b')]),'qs':{'operation':_0xc334('0x2c'),'username':'admin','sessionName':_0xfb8a73['sessionName'],'query':util[_0xc334('0x2a')](_0xc334('0x2d'),_0x1e55e1)},'json':!![]})[_0xc334('0x1e')](function(_0x3ed084){if(_0x3ed084['success']&&_0x3ed084['result'][_0xc334('0xa')]){logger[_0xc334('0x13')](_0xc334('0x2e'));return BPromise['resolve']({'id':_0x3ed084[_0xc334('0x21')][0x0]['id'],'email':_0x3ed084[_0xc334('0x21')][0x0][_0xc334('0x2f')],'name':_0x3ed084[_0xc334('0x21')][0x0]['first_name']+'\x20'+_0x3ed084[_0xc334('0x21')][_0xc334('0x30')]});}else{logger[_0xc334('0x13')](_0xc334('0x31'));return BPromise['resolve']({'id':_0xfb8a73[_0xc334('0x32')],'email':_0x55647e[_0xc334('0x33')],'name':_0xc334('0x1a')});}})[_0xc334('0x24')](function(_0x9356bd){var _0x20a649=req[_0xc334('0x2c')]['test']?0x1f4:_0x9356bd[_0xc334('0x26')]||0x1f4;logger[_0xc334('0x23')](_0xc334('0x27'),_0xc334('0x34'),_0x20a649,JSON[_0xc334('0x1d')](_0x9356bd));});}function getEndUser(_0x3436c6,_0x4d4cbe,_0x326d7e,_0x4ec37e){logger[_0xc334('0x13')](_0xc334('0x35'),_0x326d7e);return request({'method':_0xc334('0x29'),'uri':util[_0xc334('0x2a')]('%s/webservice.php',_0x3436c6[_0xc334('0x2b')]),'qs':{'operation':_0xc334('0x2c'),'username':'admin','sessionName':_0x4ec37e[_0xc334('0x1b')],'query':util[_0xc334('0x2a')](_0xc334('0x36'),_0x326d7e,_0x326d7e,_0x326d7e,_0x326d7e,_0x326d7e)},'json':!![]})[_0xc334('0x1e')](function(_0x112095){if(_0x112095['success']&&_0x112095[_0xc334('0x21')][_0xc334('0xa')]){logger[_0xc334('0x13')](_0xc334('0x37'));return BPromise[_0xc334('0x20')]({'id':_0x112095['result'][0x0]['id'],'name':_0x112095[_0xc334('0x21')][0x0][_0xc334('0x38')]+'\x20'+_0x112095[_0xc334('0x21')][0x0][_0xc334('0x39')],'phone':_0x326d7e});}else{logger[_0xc334('0x13')](_0xc334('0x3a'));return request({'method':_0xc334('0x3b'),'uri':util['format'](_0xc334('0x19'),_0x3436c6['remoteUri']),'form':{'operation':'create','sessionName':_0x4ec37e['sessionName'],'elementType':'Contacts','element':JSON[_0xc334('0x1d')]({'lastname':_0x4d4cbe,'phone':_0x326d7e,'assigned_user_id':'\x20'})},'json':!![]})['then'](function(_0x259a8c){logger[_0xc334('0x13')](_0xc334('0x3c'));return BPromise[_0xc334('0x20')]({'id':_0x259a8c[_0xc334('0x21')]['id'],'name':_0x259a8c[_0xc334('0x21')]['lastname'],'phone':_0x259a8c[_0xc334('0x21')][_0xc334('0x3d')]});})[_0xc334('0x24')](function(_0x2e09a9){var _0x5372d3=req[_0xc334('0x2c')][_0xc334('0x25')]?0x1f4:_0x2e09a9[_0xc334('0x26')]||0x1f4;logger[_0xc334('0x23')]('[vTiger],\x20%s,\x20%s,\x20%s',_0xc334('0x3e'),_0x5372d3,JSON[_0xc334('0x1d')](_0x2e09a9));});}});}function getConnection(_0x487b87){var _0x1850fd=_0x487b87[_0xc334('0x33')];var _0x40e479=_0x487b87['accessKey'];return request({'method':_0xc334('0x29'),'uri':util[_0xc334('0x2a')](_0xc334('0x19'),_0x487b87[_0xc334('0x2b')]),'qs':{'operation':_0xc334('0x3f'),'username':_0x1850fd},'json':!![]})[_0xc334('0x1e')](function(_0x4e6157){if(_0x4e6157[_0xc334('0x1f')]){return request({'method':_0xc334('0x3b'),'uri':util[_0xc334('0x2a')](_0xc334('0x19'),_0x487b87[_0xc334('0x2b')]),'form':{'operation':_0xc334('0x40'),'username':'admin','accessKey':md5(_0x4e6157[_0xc334('0x21')]['token']+_0x40e479)},'json':!![]});}})[_0xc334('0x1e')](function(_0x3a4576){if(_0x3a4576['success']){return BPromise[_0xc334('0x20')](_0x3a4576[_0xc334('0x21')]);}else{throw new Error(util[_0xc334('0x2a')]('Account\x20%d\x20is\x20not\x20valid',_0x487b87['id']));}})[_0xc334('0x24')](function(_0xebbbc){var _0x3fe337=req[_0xc334('0x2c')][_0xc334('0x25')]?0x1f4:_0xebbbc[_0xc334('0x26')]||0x1f4;logger[_0xc334('0x23')](_0xc334('0x27'),_0xc334('0x41'),_0x3fe337,JSON['stringify'](_0xebbbc));});}function request(_0x5748df){logger[_0xc334('0x13')]('[HTTP]',JSON[_0xc334('0x1d')](_0x5748df));return rp(_0x5748df);}exports[_0xc334('0x42')]=function(_0x2e8102,_0x1e9860,_0x29bec5,_0x37652d,_0x4e58c9,_0x19429b){var _0x1eb8d4,_0x3080cc,_0x39f3fa,_0x41dd47;_0x19429b['remoteUri']=intUtil[_0xc334('0x43')](_0x19429b[_0xc334('0x2b')]);if(_0x4e58c9&&_0x4e58c9['monitor_format']){logger[_0xc334('0x13')](_0xc334('0x44'),'Recording\x20is\x20enabled!');_0x1e9860['recordingURL']=util[_0xc334('0x2a')](_0xc334('0x45'),_0x19429b[_0xc334('0x46')],_0x1e9860['uniqueid'],md5(_0x1e9860[_0xc334('0x47')]));}else{_0x1e9860[_0xc334('0x48')]='';}return getConnection(_0x19429b)[_0xc334('0x1e')](function(_0x1f60c2){_0x41dd47=_0x1f60c2;return getUser(_0x19429b,_0x37652d?_0x37652d[_0xc334('0x49')]:'',_0x41dd47);})[_0xc334('0x1e')](function(_0x2a857f){_0x1eb8d4=_0x2a857f;logger[_0xc334('0x13')](_0xc334('0x4a'),_0x1eb8d4['id']);return getEndUser(_0x19429b,_0x1e9860[_0xc334('0x4b')],_0x1e9860[_0xc334('0x4c')],_0x41dd47);})['then'](function(_0x562e6c){_0x3080cc=_0x562e6c;logger[_0xc334('0x13')]('The\x20Enduser\x20ID\x20is:',_0x3080cc['id']);return createTicket(_0x19429b,_0x1eb8d4,_0x3080cc,_0x29bec5,_0x1e9860,_0x29bec5[_0xc334('0x4d')],_0x41dd47);})[_0xc334('0x1e')](function(_0x30d24a){_0x39f3fa=_0x30d24a;logger[_0xc334('0x13')](_0xc334('0x4e'));logger[_0xc334('0x13')](_0xc334('0x4f'),_0x39f3fa['id']);var _0x2f47e1=util[_0xc334('0x2a')]('%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT',_0x19429b['remoteUri'],_[_0xc334('0x50')](_0x39f3fa['id'],'x')[0x1]);logger[_0xc334('0x13')](_0xc334('0x44'),_0xc334('0x51'));emit(util[_0xc334('0x2a')](_0xc334('0x52'),_0x37652d[_0xc334('0x12')]),_0xc334('0x53'),{'uri':_0x2f47e1});})[_0xc334('0x24')](function(_0x3068fc){logger['error']('[QUEUE]',JSON[_0xc334('0x1d')](_0x3068fc));});};exports['outbound']=function(_0x2f7215,_0x259f6e,_0x1d6aa6,_0x5a6e7d,_0x56560b,_0x7a4919,_0x3d1961){var _0x826e08,_0x2715a2,_0x2ecb4f,_0x5b4c7f;_0x7a4919['remoteUri']=intUtil[_0xc334('0x43')](_0x7a4919[_0xc334('0x2b')]);_0x7a4919[_0xc334('0x46')]=intUtil[_0xc334('0x43')](_0x7a4919[_0xc334('0x46')]);if(_0x3d1961&&_0x3d1961[_0xc334('0x54')]&&_0x3d1961['recordingFormat']!==_0xc334('0x55')){logger[_0xc334('0x13')](_0xc334('0x56'),_0xc334('0x57'));_0x259f6e[_0xc334('0x48')]=util[_0xc334('0x2a')](_0xc334('0x45'),_0x7a4919[_0xc334('0x46')],_0x259f6e[_0xc334('0x47')],md5(_0x259f6e[_0xc334('0x47')]));}return getConnection(_0x7a4919)[_0xc334('0x1e')](function(_0x26418a){_0x5b4c7f=_0x26418a;return getUser(_0x7a4919,_0x5a6e7d?_0x5a6e7d[_0xc334('0x49')]:'',_0x5b4c7f);})[_0xc334('0x1e')](function(_0x2a1ba0){_0x826e08=_0x2a1ba0;logger['info'](_0xc334('0x4a'),_0x826e08['id']);return getEndUser(_0x7a4919,_0x259f6e[_0xc334('0x58')],_0x259f6e['destcalleridnum'],_0x5b4c7f);})[_0xc334('0x1e')](function(_0x5582bb){_0x2715a2=_0x5582bb;logger['info']('The\x20Enduser\x20ID\x20is:',_0x2715a2['id']);return createTicket(_0x7a4919,_0x826e08,_0x2715a2,_0x1d6aa6,_0x259f6e,_0x1d6aa6[_0xc334('0x4d')],_0x5b4c7f);})[_0xc334('0x1e')](function(_0x5b5c54){_0x2ecb4f=_0x5b5c54;logger[_0xc334('0x13')]('Ticket\x20created!');logger['info']('The\x20Ticket\x20ID\x20is:',_0x2ecb4f['id']);var _0x5dd6ac=util[_0xc334('0x2a')](_0xc334('0x59'),_0x7a4919[_0xc334('0x2b')],_[_0xc334('0x50')](_0x2ecb4f['id'],'x')[0x1]);logger[_0xc334('0x13')](_0xc334('0x56'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0xc334('0x52'),_0x5a6e7d[_0xc334('0x12')]),_0xc334('0x53'),{'uri':_0x5dd6ac});})[_0xc334('0x24')](function(_0x2645fb){logger['error'](_0xc334('0x56'),JSON[_0xc334('0x1d')](_0x2645fb));});};exports[_0xc334('0x5a')]=function(_0x238b2e,_0x44c225,_0x52a161,_0x5d4209,_0xfb870a,_0x830b01){var _0x4f3131,_0x5c58a6,_0x3a568e,_0x1fc242;_0x830b01[_0xc334('0x2b')]=intUtil[_0xc334('0x43')](_0x830b01[_0xc334('0x2b')]);_0x830b01[_0xc334('0x46')]=intUtil[_0xc334('0x43')](_0x830b01[_0xc334('0x46')]);if(_0xfb870a&&_0xfb870a[_0xc334('0x5b')]){logger[_0xc334('0x13')](_0xc334('0x5c'),_0xc334('0x57'));_0x44c225[_0xc334('0x48')]=util[_0xc334('0x2a')](_0xc334('0x45'),_0x830b01[_0xc334('0x46')],_0x44c225['uniqueid'],md5(_0x44c225[_0xc334('0x47')]));}else{_0x44c225['recordingURL']='';}return getConnection(_0x830b01)[_0xc334('0x1e')](function(_0x139990){_0x1fc242=_0x139990;return getUser(_0x830b01,_0x5d4209?_0x5d4209[_0xc334('0x49')]:'',_0x1fc242);})['then'](function(_0x58e0ab){_0x4f3131=_0x58e0ab;logger[_0xc334('0x13')]('The\x20User\x20ID\x20is:',_0x4f3131['id']);return getEndUser(_0x830b01,_0x44c225[_0xc334('0x4b')],_0x44c225[_0xc334('0x4c')],_0x1fc242);})[_0xc334('0x1e')](function(_0xf26db){_0x5c58a6=_0xf26db;logger['info'](_0xc334('0x5d'),_0x5c58a6['id']);return createTicket(_0x830b01,_0x4f3131,_0x5c58a6,_0x52a161,_0x44c225,_0x52a161[_0xc334('0x4d')],_0x1fc242);})[_0xc334('0x1e')](function(_0x1a0517){_0x3a568e=_0x1a0517;logger['info'](_0xc334('0x4e'));logger['info'](_0xc334('0x4f'),_0x3a568e['id']);})[_0xc334('0x24')](function(_0x13748c){logger['error']('[ABANDONED]',JSON[_0xc334('0x1d')](_0x13748c));});};
\ No newline at end of file
+var _0x0713=['result','error','catch','query','test','statusCode','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','GET','admin','info','Agent\x20found!','email1','first_name','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','username','getUser','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','create','phone','accessKey','login','token','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Ticket\x20created!','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','outbound','serverUrl','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','[ABANDONED]','Recording\x20is\x20enabled!','bluebird','md5','util','ioredis','./util','../../../../config/logger','vTiger','redis','defaults','localhost','socket.io-emitter','emit','length','forEach','type','idField','content','toString','variableName','Variable','name','toLowerCase','Creating\x20new\x20ticket...','merge','Open','Subjects','getString','Descriptions','POST','format','%s/webservice.php','remoteUri','sessionName','HelpDesk','stringify','then','success','resolve'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var rp=require('request-promise');var BPromise=require(_0x3071('0x0'));var md5=require(_0x3071('0x1'));var util=require(_0x3071('0x2'));var Redis=require(_0x3071('0x3'));var intUtil=require(_0x3071('0x4'));var config=require('../../../../config/environment');var logger=require(_0x3071('0x5'))(_0x3071('0x6'));config[_0x3071('0x7')]=_[_0x3071('0x8')](config[_0x3071('0x7')],{'host':_0x3071('0x9'),'port':0x18eb});var io=require(_0x3071('0xa'))(new Redis(config[_0x3071('0x7')]));function emit(_0xbd737f,_0x22274c,_0x3e9a5e){io['to'](_0xbd737f)[_0x3071('0xb')](_0x22274c,_0x3e9a5e);}function getCustomFields(_0x1a868e,_0x4a36ec){var _0x3457cd={};if(_0x1a868e[_0x3071('0xc')]>0x0){_[_0x3071('0xd')](_0x1a868e,function(_0xff9a29){if(_0xff9a29[_0x3071('0xe')]==='string'&&_0xff9a29[_0x3071('0xf')]){_0x3457cd[_0xff9a29[_0x3071('0xf')]]=_0xff9a29[_0x3071('0x10')][_0x3071('0x11')]();}else if(_0xff9a29[_0x3071('0xe')]==='variable'&&_0xff9a29['variableName']&&_0xff9a29[_0x3071('0xf')]&&_0x4a36ec[_0xff9a29['variableName']]){_0x3457cd[_0xff9a29[_0x3071('0xf')]]=_0x4a36ec[_0xff9a29[_0x3071('0x12')]]['toString']();}else if(_0xff9a29[_0x3071('0xe')]==='customVariable'&&_0xff9a29[_0x3071('0x13')]&&_0xff9a29[_0x3071('0x13')][_0x3071('0x14')]&&_0xff9a29[_0x3071('0xf')]&&_0x4a36ec[_0xff9a29[_0x3071('0x13')][_0x3071('0x14')][_0x3071('0x15')]()]){_0x3457cd[_0xff9a29[_0x3071('0xf')]]=_0x4a36ec[_0xff9a29[_0x3071('0x13')][_0x3071('0x14')]['toLowerCase']()][_0x3071('0x11')]();}});}return _0x3457cd;}function createTicket(_0x17dbda,_0x1068d9,_0x108a83,_0x3acf0e,_0x17aee2,_0x105bbb,_0x26f113){logger['info'](_0x3071('0x16'));var _0x2bfa33=_[_0x3071('0x17')]({'parent_id':'','assigned_user_id':_0x1068d9['id'],'ticketpriorities':'Normal','ticketstatus':_0x3071('0x18'),'ticket_title':intUtil['getString'](_0x3acf0e[_0x3071('0x19')],_0x17aee2,'\x20'),'description':intUtil[_0x3071('0x1a')](_0x3acf0e[_0x3071('0x1b')],_0x17aee2,'\x0a'),'contact_id':_0x108a83['id']},getCustomFields(_0x105bbb,_0x17aee2));var _0x457b57={'method':_0x3071('0x1c'),'uri':util[_0x3071('0x1d')](_0x3071('0x1e'),_0x17dbda[_0x3071('0x1f')]),'form':{'operation':'create','username':'admin','sessionName':_0x26f113[_0x3071('0x20')],'elementType':_0x3071('0x21'),'element':JSON[_0x3071('0x22')](_0x2bfa33)},'json':!![]};return request(_0x457b57)[_0x3071('0x23')](function(_0x2793ef){if(_0x2793ef[_0x3071('0x24')]){return BPromise[_0x3071('0x25')]({'id':_0x2793ef[_0x3071('0x26')]['id']});}else{throw new Error(util[_0x3071('0x1d')]('Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s',JSON[_0x3071('0x22')](_0x2793ef[_0x3071('0x27')])));}})[_0x3071('0x28')](function(_0x4d5c4b){var _0x4fb1ca=req[_0x3071('0x29')][_0x3071('0x2a')]?0x1f4:_0x4d5c4b[_0x3071('0x2b')]||0x1f4;logger[_0x3071('0x27')](_0x3071('0x2c'),_0x3071('0x2d'),_0x4fb1ca,JSON[_0x3071('0x22')](_0x4d5c4b));});}function getUser(_0x32f1b4,_0x292205,_0x254fc8){logger['info']('Getting\x20agent\x20with\x20email',_0x292205);return request({'method':_0x3071('0x2e'),'uri':util[_0x3071('0x1d')](_0x3071('0x1e'),_0x32f1b4[_0x3071('0x1f')]),'qs':{'operation':_0x3071('0x29'),'username':_0x3071('0x2f'),'sessionName':_0x254fc8[_0x3071('0x20')],'query':util[_0x3071('0x1d')]('SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;',_0x292205)},'json':!![]})['then'](function(_0x4ab983){if(_0x4ab983[_0x3071('0x24')]&&_0x4ab983[_0x3071('0x26')]['length']){logger[_0x3071('0x30')](_0x3071('0x31'));return BPromise[_0x3071('0x25')]({'id':_0x4ab983[_0x3071('0x26')][0x0]['id'],'email':_0x4ab983['result'][0x0][_0x3071('0x32')],'name':_0x4ab983[_0x3071('0x26')][0x0][_0x3071('0x33')]+'\x20'+_0x4ab983[_0x3071('0x26')][_0x3071('0x34')]});}else{logger[_0x3071('0x30')](_0x3071('0x35'));return BPromise[_0x3071('0x25')]({'id':_0x254fc8['userId'],'email':_0x32f1b4[_0x3071('0x36')],'name':'admin'});}})['catch'](function(_0x1a1a64){var _0xa3a7ae=req['query'][_0x3071('0x2a')]?0x1f4:_0x1a1a64[_0x3071('0x2b')]||0x1f4;logger[_0x3071('0x27')](_0x3071('0x2c'),_0x3071('0x37'),_0xa3a7ae,JSON[_0x3071('0x22')](_0x1a1a64));});}function getEndUser(_0x5610ab,_0x36afdc,_0xd7971f,_0x4ce6d4){logger[_0x3071('0x30')]('Searching\x20end\x20user\x20with\x20phone',_0xd7971f);return request({'method':_0x3071('0x2e'),'uri':util[_0x3071('0x1d')]('%s/webservice.php',_0x5610ab['remoteUri']),'qs':{'operation':_0x3071('0x29'),'username':_0x3071('0x2f'),'sessionName':_0x4ce6d4[_0x3071('0x20')],'query':util['format'](_0x3071('0x38'),_0xd7971f,_0xd7971f,_0xd7971f,_0xd7971f,_0xd7971f)},'json':!![]})['then'](function(_0x1ac90a){if(_0x1ac90a['success']&&_0x1ac90a[_0x3071('0x26')][_0x3071('0xc')]){logger[_0x3071('0x30')](_0x3071('0x39'));return BPromise[_0x3071('0x25')]({'id':_0x1ac90a['result'][0x0]['id'],'name':_0x1ac90a['result'][0x0][_0x3071('0x3a')]+'\x20'+_0x1ac90a[_0x3071('0x26')][0x0][_0x3071('0x3b')],'phone':_0xd7971f});}else{logger[_0x3071('0x30')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'method':_0x3071('0x1c'),'uri':util[_0x3071('0x1d')](_0x3071('0x1e'),_0x5610ab[_0x3071('0x1f')]),'form':{'operation':_0x3071('0x3c'),'sessionName':_0x4ce6d4[_0x3071('0x20')],'elementType':'Contacts','element':JSON[_0x3071('0x22')]({'lastname':_0x36afdc,'phone':_0xd7971f,'assigned_user_id':'\x20'})},'json':!![]})['then'](function(_0x4c8b1f){logger['info']('Enduser\x20created.');return BPromise[_0x3071('0x25')]({'id':_0x4c8b1f[_0x3071('0x26')]['id'],'name':_0x4c8b1f[_0x3071('0x26')][_0x3071('0x3b')],'phone':_0x4c8b1f[_0x3071('0x26')][_0x3071('0x3d')]});})[_0x3071('0x28')](function(_0x2e6c70){var _0x56589e=req[_0x3071('0x29')][_0x3071('0x2a')]?0x1f4:_0x2e6c70[_0x3071('0x2b')]||0x1f4;logger[_0x3071('0x27')](_0x3071('0x2c'),'getEndUser',_0x56589e,JSON['stringify'](_0x2e6c70));});}});}function getConnection(_0x1721d0){var _0x3c2f5e=_0x1721d0[_0x3071('0x36')];var _0x5c5865=_0x1721d0[_0x3071('0x3e')];return request({'method':'GET','uri':util[_0x3071('0x1d')]('%s/webservice.php',_0x1721d0[_0x3071('0x1f')]),'qs':{'operation':'getchallenge','username':_0x3c2f5e},'json':!![]})['then'](function(_0x874522){if(_0x874522['success']){return request({'method':_0x3071('0x1c'),'uri':util['format'](_0x3071('0x1e'),_0x1721d0[_0x3071('0x1f')]),'form':{'operation':_0x3071('0x3f'),'username':_0x3071('0x2f'),'accessKey':md5(_0x874522['result'][_0x3071('0x40')]+_0x5c5865)},'json':!![]});}})['then'](function(_0xd273ec){if(_0xd273ec['success']){return BPromise[_0x3071('0x25')](_0xd273ec[_0x3071('0x26')]);}else{throw new Error(util['format'](_0x3071('0x41'),_0x1721d0['id']));}})[_0x3071('0x28')](function(_0x224a70){var _0x38bcc2=req[_0x3071('0x29')][_0x3071('0x2a')]?0x1f4:_0x224a70[_0x3071('0x2b')]||0x1f4;logger['error'](_0x3071('0x2c'),_0x3071('0x42'),_0x38bcc2,JSON[_0x3071('0x22')](_0x224a70));});}function request(_0xda07a4){logger['info'](_0x3071('0x43'),JSON[_0x3071('0x22')](_0xda07a4));return rp(_0xda07a4);}exports[_0x3071('0x44')]=function(_0x2307dd,_0x22aade,_0x26c8e4,_0x3ab6d4,_0x390944,_0xbf014e){var _0x886f7,_0x4371e7,_0x111115,_0x24977b;_0xbf014e[_0x3071('0x1f')]=intUtil[_0x3071('0x45')](_0xbf014e[_0x3071('0x1f')]);if(_0x390944&&_0x390944['monitor_format']){logger['info'](_0x3071('0x46'),'Recording\x20is\x20enabled!');_0x22aade[_0x3071('0x47')]=util[_0x3071('0x1d')](_0x3071('0x48'),_0xbf014e['serverUrl'],_0x22aade[_0x3071('0x49')],md5(_0x22aade[_0x3071('0x49')]));}else{_0x22aade['recordingURL']='';}return getConnection(_0xbf014e)['then'](function(_0x1b89ea){_0x24977b=_0x1b89ea;return getUser(_0xbf014e,_0x3ab6d4?_0x3ab6d4[_0x3071('0x4a')]:'',_0x24977b);})[_0x3071('0x23')](function(_0x3206c3){_0x886f7=_0x3206c3;logger['info'](_0x3071('0x4b'),_0x886f7['id']);return getEndUser(_0xbf014e,_0x22aade[_0x3071('0x4c')],_0x22aade[_0x3071('0x4d')],_0x24977b);})[_0x3071('0x23')](function(_0x123323){_0x4371e7=_0x123323;logger['info'](_0x3071('0x4e'),_0x4371e7['id']);return createTicket(_0xbf014e,_0x886f7,_0x4371e7,_0x26c8e4,_0x22aade,_0x26c8e4[_0x3071('0x4f')],_0x24977b);})[_0x3071('0x23')](function(_0x27bad1){_0x111115=_0x27bad1;logger[_0x3071('0x30')](_0x3071('0x50'));logger[_0x3071('0x30')]('The\x20Ticket\x20ID\x20is:',_0x111115['id']);var _0x4d6ed0=util[_0x3071('0x1d')]('%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT',_0xbf014e[_0x3071('0x1f')],_[_0x3071('0x51')](_0x111115['id'],'x')[0x1]);logger['info'](_0x3071('0x46'),_0x3071('0x52'));emit(util['format'](_0x3071('0x53'),_0x3ab6d4[_0x3071('0x14')]),_0x3071('0x54'),{'uri':_0x4d6ed0});})[_0x3071('0x28')](function(_0x2aaccb){logger['error'](_0x3071('0x46'),JSON[_0x3071('0x22')](_0x2aaccb));});};exports[_0x3071('0x55')]=function(_0x48ee42,_0x1b0f81,_0x238fa9,_0x291e28,_0x25680e,_0x379723,_0x210123){var _0xe93f28,_0x2e39ff,_0x3b47e8,_0x5cb3b3;_0x379723[_0x3071('0x1f')]=intUtil[_0x3071('0x45')](_0x379723[_0x3071('0x1f')]);_0x379723[_0x3071('0x56')]=intUtil[_0x3071('0x45')](_0x379723[_0x3071('0x56')]);if(_0x210123&&_0x210123[_0x3071('0x57')]&&_0x210123[_0x3071('0x57')]!==_0x3071('0x58')){logger[_0x3071('0x30')](_0x3071('0x59'),'Recording\x20is\x20enabled!');_0x1b0f81[_0x3071('0x47')]=util[_0x3071('0x1d')](_0x3071('0x48'),_0x379723[_0x3071('0x56')],_0x1b0f81[_0x3071('0x49')],md5(_0x1b0f81[_0x3071('0x49')]));}return getConnection(_0x379723)[_0x3071('0x23')](function(_0xd77655){_0x5cb3b3=_0xd77655;return getUser(_0x379723,_0x291e28?_0x291e28['email']:'',_0x5cb3b3);})[_0x3071('0x23')](function(_0x1ebd77){_0xe93f28=_0x1ebd77;logger['info']('The\x20User\x20ID\x20is:',_0xe93f28['id']);return getEndUser(_0x379723,_0x1b0f81[_0x3071('0x5a')],_0x1b0f81[_0x3071('0x5b')],_0x5cb3b3);})[_0x3071('0x23')](function(_0x38bc1f){_0x2e39ff=_0x38bc1f;logger['info']('The\x20Enduser\x20ID\x20is:',_0x2e39ff['id']);return createTicket(_0x379723,_0xe93f28,_0x2e39ff,_0x238fa9,_0x1b0f81,_0x238fa9[_0x3071('0x4f')],_0x5cb3b3);})['then'](function(_0x518bb5){_0x3b47e8=_0x518bb5;logger['info']('Ticket\x20created!');logger[_0x3071('0x30')](_0x3071('0x5c'),_0x3b47e8['id']);var _0xd928e8=util['format'](_0x3071('0x5d'),_0x379723[_0x3071('0x1f')],_[_0x3071('0x51')](_0x3b47e8['id'],'x')[0x1]);logger[_0x3071('0x30')]('[OUTBOUND]',_0x3071('0x52'));emit(util[_0x3071('0x1d')]('user:%s',_0x291e28[_0x3071('0x14')]),_0x3071('0x54'),{'uri':_0xd928e8});})[_0x3071('0x28')](function(_0x40c258){logger[_0x3071('0x27')](_0x3071('0x59'),JSON[_0x3071('0x22')](_0x40c258));});};exports['abandoned']=function(_0x5dde93,_0x21c1e3,_0x168025,_0x1456ce,_0x4bf839,_0x53ebfe){var _0x9f49f0,_0x3d91cf,_0x3bad84,_0x3e733c;_0x53ebfe[_0x3071('0x1f')]=intUtil[_0x3071('0x45')](_0x53ebfe[_0x3071('0x1f')]);_0x53ebfe[_0x3071('0x56')]=intUtil['stripTrailingSlash'](_0x53ebfe[_0x3071('0x56')]);if(_0x4bf839&&_0x4bf839['monitor_format']){logger[_0x3071('0x30')](_0x3071('0x5e'),_0x3071('0x5f'));_0x21c1e3[_0x3071('0x47')]=util[_0x3071('0x1d')](_0x3071('0x48'),_0x53ebfe[_0x3071('0x56')],_0x21c1e3[_0x3071('0x49')],md5(_0x21c1e3['uniqueid']));}else{_0x21c1e3[_0x3071('0x47')]='';}return getConnection(_0x53ebfe)[_0x3071('0x23')](function(_0x1da477){_0x3e733c=_0x1da477;return getUser(_0x53ebfe,_0x1456ce?_0x1456ce['email']:'',_0x3e733c);})[_0x3071('0x23')](function(_0x22ec7b){_0x9f49f0=_0x22ec7b;logger[_0x3071('0x30')]('The\x20User\x20ID\x20is:',_0x9f49f0['id']);return getEndUser(_0x53ebfe,_0x21c1e3['calleridname'],_0x21c1e3[_0x3071('0x4d')],_0x3e733c);})['then'](function(_0x288bfc){_0x3d91cf=_0x288bfc;logger[_0x3071('0x30')](_0x3071('0x4e'),_0x3d91cf['id']);return createTicket(_0x53ebfe,_0x9f49f0,_0x3d91cf,_0x168025,_0x21c1e3,_0x168025[_0x3071('0x4f')],_0x3e733c);})[_0x3071('0x23')](function(_0x437098){_0x3bad84=_0x437098;logger[_0x3071('0x30')]('Ticket\x20created!');logger[_0x3071('0x30')](_0x3071('0x5c'),_0x3bad84['id']);})[_0x3071('0x28')](function(_0x3cc937){logger[_0x3071('0x27')](_0x3071('0x5e'),JSON[_0x3071('0x22')](_0x3cc937));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01d3=['Enduser\x20created.','authType','username','password','token','Basic\x20%s','toString','base64','debug','[HTTP]','stringify','forEach','string','nameField','customField','toLowerCase','content','type','custom_fields','push','idField','variable','variableName','Variable','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','POST','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/agent/tickets/%s','Zendesk\x20account\x20type\x20not\x20recognized','catch','error','inspect','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','abandoned','[ABANDONED]','calleridnum','[ABANDONED]\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','md5','util','../../../../config/environment','../../../../config/logger','redis','defaults','localhost','emit','application/json','info','Creating\x20new\x20ticket...','%s/tickets.json','remoteUri','name','getString','Subjects','Descriptions','Ticket\x20created!','Getting\x20agent\x20with\x20email','format','%s/search.json','type:user\x20role:agent\x20email:%s','Agent\x20found!','find','agent','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','then','Admin\x20account\x20selected.','user','Searching\x20enduser\x20with\x20phone','type:user\x20role:end-user\x20phone:%s','results','length','filter','end-user','first','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json'];(function(_0xc04612,_0x101289){var _0x2e707e=function(_0x1ed0a4){while(--_0x1ed0a4){_0xc04612['push'](_0xc04612['shift']());}};_0x2e707e(++_0x101289);}(_0x01d3,0xa2));var _0x301d=function(_0x32dbc4,_0x9ae4ab){_0x32dbc4=_0x32dbc4-0x0;var _0x56de45=_0x01d3[_0x32dbc4];return _0x56de45;};'use strict';var _=require(_0x301d('0x0'));var rp=require(_0x301d('0x1'));var md5=require(_0x301d('0x2'));var util=require(_0x301d('0x3'));var intUtil=require('./util');var config=require(_0x301d('0x4'));var logger=require(_0x301d('0x5'))('zendesk');config[_0x301d('0x6')]=_[_0x301d('0x7')](config[_0x301d('0x6')],{'host':_0x301d('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(config[_0x301d('0x6')]);function emit(_0x2d8fc2,_0xe2b2d8,_0x3bbbde){io['to'](_0x2d8fc2)[_0x301d('0x9')](_0xe2b2d8,_0x3bbbde);}var headers={'Content-Type':_0x301d('0xa'),'Accept':_0x301d('0xa')};function getTicket(_0x26ce06,_0x35ae14,_0x18b853,_0x4c2760,_0x1f33fa){logger[_0x301d('0xb')](_0x301d('0xc'));return request({'uri':util['format'](_0x301d('0xd'),_0x26ce06[_0x301d('0xe')]),'method':'POST','body':{'ticket':_['merge']({'requester_id':_0x18b853['id'],'submitter_id':_0x35ae14?_0x35ae14['id']:undefined,'assignee_id':_0x35ae14?_0x35ae14['id']:undefined,'tags':getTags(_0x4c2760['Tags'],_0x301d('0xf')),'subject':intUtil[_0x301d('0x10')](_0x4c2760[_0x301d('0x11')],_0x1f33fa,'\x20'),'description':intUtil[_0x301d('0x10')](_0x4c2760[_0x301d('0x12')],_0x1f33fa,'\x0a'),'comment':{'public':![],'body':intUtil[_0x301d('0x10')](_0x4c2760[_0x301d('0x12')],_0x1f33fa,'\x0a')}},getCustomFields(_0x4c2760['Fields'],_0x1f33fa))}})['then'](function(_0xdb0cf1){logger[_0x301d('0xb')](_0x301d('0x13'));return _0xdb0cf1['ticket'];});}function getUser(_0x4d89a0,_0x4f0f10){logger['info'](_0x301d('0x14'),_0x4f0f10);return request({'uri':util[_0x301d('0x15')](_0x301d('0x16'),_0x4d89a0[_0x301d('0xe')]),'qs':{'query':util[_0x301d('0x15')](_0x301d('0x17'),_0x4f0f10)}})['then'](function(_0x40a9ed){if(_0x40a9ed['count']){logger['info'](_0x301d('0x18'));return _[_0x301d('0x19')](_0x40a9ed['results'],{'email':_0x4f0f10,'role':_0x301d('0x1a')});}else{logger['info'](_0x301d('0x1b'));return request({'uri':util[_0x301d('0x15')](_0x301d('0x1c'),_0x4d89a0['remoteUri'])})[_0x301d('0x1d')](function(_0x53ed76){logger[_0x301d('0xb')](_0x301d('0x1e'));return _0x53ed76[_0x301d('0x1f')];});}});}function getEndUser(_0x48cd08,_0x36ff9b,_0x37ea05){logger[_0x301d('0xb')](_0x301d('0x20'),_0x37ea05);return request({'uri':util[_0x301d('0x15')](_0x301d('0x16'),_0x48cd08[_0x301d('0xe')]),'qs':{'query':util['format'](_0x301d('0x21'),_0x37ea05)}})[_0x301d('0x1d')](function(_0x45e7e3){var _0x5a53b5;if(_0x45e7e3[_0x301d('0x22')][_0x301d('0x23')]){_0x45e7e3['results']=_[_0x301d('0x24')](_0x45e7e3['results'],{'suspended':![],'role':_0x301d('0x25')});if(_0x45e7e3[_0x301d('0x22')]['length']){_0x5a53b5=_[_0x301d('0x26')](_0x45e7e3['results']);}}if(_0x5a53b5){logger['info'](_0x301d('0x27'));return _0x5a53b5;}else{logger[_0x301d('0xb')](_0x301d('0x28'));return request({'uri':util['format'](_0x301d('0x29'),_0x48cd08['remoteUri']),'method':'POST','body':{'user':{'role':'end-user','name':util[_0x301d('0x15')]('Caller\x20-\x20%s',_0x36ff9b||_0x37ea05),'phone':_0x37ea05}}})[_0x301d('0x1d')](function(_0xa06831){logger[_0x301d('0xb')](_0x301d('0x2a'));return _0xa06831[_0x301d('0x1f')];});}});}function getAuth(_0x2801d8){var _0x21e7b2;if(_0x2801d8[_0x301d('0x2b')]==='password'){_0x21e7b2=util[_0x301d('0x15')]('%s:%s',_0x2801d8[_0x301d('0x2c')],_0x2801d8[_0x301d('0x2d')]);}else if(_0x2801d8['authType']==='token'){_0x21e7b2=util[_0x301d('0x15')]('%s/token:%s',_0x2801d8[_0x301d('0x2c')],_0x2801d8[_0x301d('0x2e')]);}return util[_0x301d('0x15')](_0x301d('0x2f'),new Buffer(_0x21e7b2)[_0x301d('0x30')](_0x301d('0x31')));}function request(_0x2c74b5){logger[_0x301d('0x32')](_0x301d('0x33'),JSON[_0x301d('0x34')](_0x2c74b5));return rp(_['defaults'](_0x2c74b5,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0x47f5b2,_0x1246a0){var _0x475209=[];if(_0x47f5b2&&_0x47f5b2[_0x301d('0x23')]>0x0){_0x475209=_['map'](_0x47f5b2,_0x1246a0);}return _0x475209;}function getCustomFields(_0x9ff020,_0xb6bee3){var _0x143f3e=[];var _0x4ca338={'custom_fields':[]};if(_0x9ff020[_0x301d('0x23')]>0x0){_[_0x301d('0x35')](_0x9ff020,function(_0x3b25f5){if(_0x3b25f5['type']===_0x301d('0x36')&&_0x3b25f5[_0x301d('0x37')]&&!_0x3b25f5[_0x301d('0x38')]){_0x4ca338[_0x3b25f5[_0x301d('0x37')][_0x301d('0x39')]()]=_0x3b25f5[_0x301d('0x3a')][_0x301d('0x30')]();}else if(_0x3b25f5[_0x301d('0x3b')]===_0x301d('0x36')&&_0x3b25f5['idField']&&_0x3b25f5['customField']){_0x4ca338[_0x301d('0x3c')][_0x301d('0x3d')]({'id':_0x3b25f5[_0x301d('0x3e')],'value':_0x3b25f5[_0x301d('0x3a')][_0x301d('0x30')]()});}else if(_0x3b25f5[_0x301d('0x3b')]===_0x301d('0x3f')&&_0x3b25f5['variableName']&&_0x3b25f5[_0x301d('0x3e')]&&_0x3b25f5['customField']){_0xb6bee3[_0x3b25f5['variableName']]&&_0x4ca338[_0x301d('0x3c')]['push']({'id':_0x3b25f5[_0x301d('0x3e')],'value':_0xb6bee3[_0x3b25f5[_0x301d('0x40')]][_0x301d('0x30')]()});}else if(_0x3b25f5['type']==='customVariable'&&_0x3b25f5[_0x301d('0x41')]&&_0x3b25f5[_0x301d('0x41')]['name']&&_0x3b25f5['idField']&&_0x3b25f5[_0x301d('0x38')]){_0xb6bee3[_0x3b25f5['Variable']['name'][_0x301d('0x39')]()]&&_0x4ca338[_0x301d('0x3c')][_0x301d('0x3d')]({'id':_0x3b25f5[_0x301d('0x3e')],'value':_0xb6bee3[_0x3b25f5[_0x301d('0x41')][_0x301d('0xf')]['toLowerCase']()]['toString']()});}});}return _0x4ca338;}exports['queue']=function(_0x4fe2c1,_0x882108,_0xa09bf0,_0x3f69e6,_0x190fc7,_0x39c818){var _0x9549a1,_0x57c90f;_0x39c818[_0x301d('0xe')]=intUtil[_0x301d('0x42')](_0x39c818[_0x301d('0xe')]);_0x39c818[_0x301d('0x43')]=intUtil[_0x301d('0x42')](_0x39c818[_0x301d('0x43')]);if(_0x190fc7&&_0x190fc7[_0x301d('0x44')]){logger['info'](_0x301d('0x45'),_0x301d('0x46'));_0x882108[_0x301d('0x47')]=util['format'](_0x301d('0x48'),_0x39c818[_0x301d('0x43')],_0x882108[_0x301d('0x49')],md5(_0x882108[_0x301d('0x49')]));}else{_0x882108[_0x301d('0x47')]='';}headers[_0x301d('0x4a')]=getAuth(_0x39c818);return getUser(_0x39c818,_0x3f69e6[_0x301d('0x4b')])[_0x301d('0x1d')](function(_0x4c1a8b){_0x9549a1=_0x4c1a8b;logger[_0x301d('0xb')](_0x301d('0x4c'),_0x9549a1['id']);return getEndUser(_0x39c818,_0x882108[_0x301d('0x4d')],_0x882108['calleridnum']);})[_0x301d('0x1d')](function(_0x53da8c){_0x57c90f=_0x53da8c;logger[_0x301d('0xb')](_0x301d('0x4e'),_0x57c90f['id']);return getTicket(_0x39c818,_0x9549a1,_0x57c90f,_0xa09bf0,_0x882108);})['then'](function(_0x4d3038){if(_0x4d3038){logger[_0x301d('0xb')]('The\x20Ticket\x20ID\x20is:',_0x4d3038['id']);switch(_0x39c818[_0x301d('0x3b')]){case _0x301d('0x4f'):logger['info'](_0x301d('0x45'),_0x301d('0x50'));return request({'uri':util[_0x301d('0x15')](_0x301d('0x51'),_0x39c818[_0x301d('0xe')],_0x9549a1['id'],_0x4d3038['id']),'method':_0x301d('0x52')});case _0x301d('0x53'):logger[_0x301d('0xb')](_0x301d('0x45'),_0x301d('0x54'));emit(util[_0x301d('0x15')](_0x301d('0x55'),_0x3f69e6['name']),_0x301d('0x56'),{'uri':util[_0x301d('0x15')](_0x301d('0x57'),_0x39c818['remoteUri'],_0x4d3038['id'])});break;default:logger['error'](_0x301d('0x45'),_0x301d('0x58'));}}})[_0x301d('0x59')](function(_0x28cb9a){logger[_0x301d('0x5a')]('[QUEUE]\x20Error\x20running\x20Zendesk\x20integration',util[_0x301d('0x5b')](_0x28cb9a,{'showHidden':!![],'depth':null}));});};exports[_0x301d('0x5c')]=function(_0x2c0e9d,_0x3d0c2a,_0x5f2468,_0x314075,_0x1db4c6,_0x548c1e,_0x2258bb){var _0x201718,_0x24dc60;_0x548c1e[_0x301d('0xe')]=intUtil[_0x301d('0x42')](_0x548c1e[_0x301d('0xe')]);_0x548c1e[_0x301d('0x43')]=intUtil['stripTrailingSlash'](_0x548c1e[_0x301d('0x43')]);if(_0x2258bb&&_0x2258bb[_0x301d('0x5d')]&&_0x2258bb[_0x301d('0x5d')]!==_0x301d('0x5e')){logger['info'](_0x301d('0x5f'),'Recording\x20is\x20enabled!');_0x3d0c2a['recordingURL']=util[_0x301d('0x15')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x548c1e[_0x301d('0x43')],_0x3d0c2a['uniqueid'],md5(_0x3d0c2a[_0x301d('0x49')]));}headers[_0x301d('0x4a')]=getAuth(_0x548c1e);return getUser(_0x548c1e,_0x314075[_0x301d('0x4b')])[_0x301d('0x1d')](function(_0x4334ff){_0x201718=_0x4334ff;logger[_0x301d('0xb')](_0x301d('0x4c'),_0x201718['id']);return getEndUser(_0x548c1e,_0x3d0c2a[_0x301d('0x60')],_0x3d0c2a['destcalleridnum']);})[_0x301d('0x1d')](function(_0x3cfcc0){_0x24dc60=_0x3cfcc0;logger['info'](_0x301d('0x4e'),_0x24dc60['id']);return getTicket(_0x548c1e,_0x201718,_0x24dc60,_0x5f2468,_0x3d0c2a);})['then'](function(_0x390731){if(_0x390731){logger[_0x301d('0xb')]('The\x20Ticket\x20ID\x20is:',_0x390731['id']);switch(_0x548c1e[_0x301d('0x3b')]){case _0x301d('0x4f'):logger[_0x301d('0xb')](_0x301d('0x5f'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util['format']('%s/channels/voice/agents/%d/tickets/%d/display.json',_0x548c1e[_0x301d('0xe')],_0x201718['id'],_0x390731['id']),'method':_0x301d('0x52')});case _0x301d('0x53'):logger[_0x301d('0xb')](_0x301d('0x5f'),_0x301d('0x54'));emit(util[_0x301d('0x15')](_0x301d('0x55'),_0x314075[_0x301d('0xf')]),_0x301d('0x56'),{'uri':util[_0x301d('0x15')]('%s/agent/tickets/%s',_0x548c1e[_0x301d('0xe')],_0x390731['id'])});break;default:logger[_0x301d('0x5a')]('[OUTBOUND]',_0x301d('0x58'));}}})[_0x301d('0x59')](function(_0x2943f3){logger['error'](_0x301d('0x61'),util[_0x301d('0x5b')](_0x2943f3,{'showHidden':!![],'depth':null}));});};exports[_0x301d('0x62')]=function(_0x41780e,_0x4e9278,_0x47a072,_0x3b89bc,_0x27b651,_0x66157a){var _0x1fbfec,_0x42001d;_0x66157a['remoteUri']=intUtil[_0x301d('0x42')](_0x66157a[_0x301d('0xe')]);_0x66157a[_0x301d('0x43')]=intUtil['stripTrailingSlash'](_0x66157a[_0x301d('0x43')]);if(_0x27b651&&_0x27b651['monitor_format']){logger['info'](_0x301d('0x63'),_0x301d('0x46'));_0x4e9278[_0x301d('0x47')]=util['format'](_0x301d('0x48'),_0x66157a[_0x301d('0x43')],_0x4e9278[_0x301d('0x49')],md5(_0x4e9278[_0x301d('0x49')]));}else{_0x4e9278[_0x301d('0x47')]='';}headers[_0x301d('0x4a')]=getAuth(_0x66157a);return getUser(_0x66157a)[_0x301d('0x1d')](function(_0x395bc4){_0x1fbfec=_0x395bc4;logger['info'](_0x301d('0x4c'),_0x1fbfec['id']);return getEndUser(_0x66157a,_0x4e9278['calleridname'],_0x4e9278[_0x301d('0x64')]);})[_0x301d('0x1d')](function(_0x4e51f6){_0x42001d=_0x4e51f6;logger[_0x301d('0xb')](_0x301d('0x4e'),_0x42001d['id']);return getTicket(_0x66157a,_0x1fbfec,_0x42001d,_0x47a072,_0x4e9278);})[_0x301d('0x1d')](function(_0x2d9fb9){if(_0x2d9fb9){logger['info']('The\x20Ticket\x20ID\x20is:',_0x2d9fb9['id']);}})[_0x301d('0x59')](function(_0x37d554){logger[_0x301d('0x5a')](_0x301d('0x65'),util[_0x301d('0x5b')](_0x37d554,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x6144=['The\x20User\x20ID\x20is:','calleridname','integrationTab','[QUEUE]','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/agent/tickets/%s','error','Zendesk\x20account\x20type\x20not\x20recognized','catch','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','inspect','outbound','recordingFormat','[OUTBOUND]','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','abandoned','[ABANDONED]','calleridnum','[ABANDONED]\x20Error\x20running\x20Zendesk\x20integration','lodash','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','zendesk','redis','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...','%s/tickets.json','remoteUri','merge','Tags','name','Subjects','getString','Descriptions','Fields','then','Ticket\x20created!','Getting\x20agent\x20with\x20email','%s/search.json','format','Agent\x20found!','find','results','agent','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','user','type:user\x20role:end-user\x20phone:%s','length','end-user','first','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','POST','Enduser\x20created.','password','%s:%s','username','authType','token','%s/token:%s','Basic\x20%s','toString','debug','[HTTP]','stringify','GET','forEach','string','customField','toLowerCase','content','type','idField','push','variableName','custom_fields','customVariable','Variable','queue','stripTrailingSlash','serverUrl','monitor_format','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','Authorization','email'];(function(_0x45e8e4,_0x56c8c1){var _0x4fcfb8=function(_0x26a743){while(--_0x26a743){_0x45e8e4['push'](_0x45e8e4['shift']());}};_0x4fcfb8(++_0x56c8c1);}(_0x6144,0x84));var _0x4614=function(_0x13b283,_0x25705f){_0x13b283=_0x13b283-0x0;var _0x1beef5=_0x6144[_0x13b283];return _0x1beef5;};'use strict';var _=require(_0x4614('0x0'));var rp=require('request-promise');var md5=require(_0x4614('0x1'));var util=require(_0x4614('0x2'));var Redis=require(_0x4614('0x3'));var intUtil=require(_0x4614('0x4'));var config=require(_0x4614('0x5'));var logger=require(_0x4614('0x6'))(_0x4614('0x7'));config[_0x4614('0x8')]=_['defaults'](config[_0x4614('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x4614('0x9'))(new Redis(config[_0x4614('0x8')]));function emit(_0x2b403c,_0x4c4297,_0x42184a){io['to'](_0x2b403c)[_0x4614('0xa')](_0x4c4297,_0x42184a);}var headers={'Content-Type':_0x4614('0xb'),'Accept':_0x4614('0xb')};function getTicket(_0x2d20e5,_0x27f3ec,_0x5aaddf,_0x431661,_0xd2d6a3){logger[_0x4614('0xc')](_0x4614('0xd'));return request({'uri':util['format'](_0x4614('0xe'),_0x2d20e5[_0x4614('0xf')]),'method':'POST','body':{'ticket':_[_0x4614('0x10')]({'requester_id':_0x5aaddf['id'],'submitter_id':_0x27f3ec?_0x27f3ec['id']:undefined,'assignee_id':_0x27f3ec?_0x27f3ec['id']:undefined,'tags':getTags(_0x431661[_0x4614('0x11')],_0x4614('0x12')),'subject':intUtil['getString'](_0x431661[_0x4614('0x13')],_0xd2d6a3,'\x20'),'description':intUtil[_0x4614('0x14')](_0x431661[_0x4614('0x15')],_0xd2d6a3,'\x0a'),'comment':{'public':![],'body':intUtil[_0x4614('0x14')](_0x431661[_0x4614('0x15')],_0xd2d6a3,'\x0a')}},getCustomFields(_0x431661[_0x4614('0x16')],_0xd2d6a3))}})[_0x4614('0x17')](function(_0x17a8b7){logger[_0x4614('0xc')](_0x4614('0x18'));return _0x17a8b7['ticket'];});}function getUser(_0x7c0661,_0x54394e){logger[_0x4614('0xc')](_0x4614('0x19'),_0x54394e);return request({'uri':util['format'](_0x4614('0x1a'),_0x7c0661[_0x4614('0xf')]),'qs':{'query':util[_0x4614('0x1b')]('type:user\x20role:agent\x20email:%s',_0x54394e)}})[_0x4614('0x17')](function(_0x24ab1f){if(_0x24ab1f['count']){logger['info'](_0x4614('0x1c'));return _[_0x4614('0x1d')](_0x24ab1f[_0x4614('0x1e')],{'email':_0x54394e,'role':_0x4614('0x1f')});}else{logger[_0x4614('0xc')](_0x4614('0x20'));return request({'uri':util[_0x4614('0x1b')](_0x4614('0x21'),_0x7c0661[_0x4614('0xf')])})[_0x4614('0x17')](function(_0xc834){logger['info']('Admin\x20account\x20selected.');return _0xc834[_0x4614('0x22')];});}});}function getEndUser(_0xddb4d6,_0x3ffafe,_0x2866d5){logger[_0x4614('0xc')]('Searching\x20enduser\x20with\x20phone',_0x2866d5);return request({'uri':util[_0x4614('0x1b')](_0x4614('0x1a'),_0xddb4d6['remoteUri']),'qs':{'query':util[_0x4614('0x1b')](_0x4614('0x23'),_0x2866d5)}})['then'](function(_0x1d272a){var _0x31c3c7;if(_0x1d272a[_0x4614('0x1e')][_0x4614('0x24')]){_0x1d272a[_0x4614('0x1e')]=_['filter'](_0x1d272a[_0x4614('0x1e')],{'suspended':![],'role':_0x4614('0x25')});if(_0x1d272a['results']['length']){_0x31c3c7=_[_0x4614('0x26')](_0x1d272a[_0x4614('0x1e')]);}}if(_0x31c3c7){logger[_0x4614('0xc')]('Enduser\x20found!');return _0x31c3c7;}else{logger[_0x4614('0xc')](_0x4614('0x27'));return request({'uri':util[_0x4614('0x1b')]('%s/users.json',_0xddb4d6[_0x4614('0xf')]),'method':_0x4614('0x28'),'body':{'user':{'role':_0x4614('0x25'),'name':util[_0x4614('0x1b')]('Caller\x20-\x20%s',_0x3ffafe||_0x2866d5),'phone':_0x2866d5}}})[_0x4614('0x17')](function(_0xdb28bf){logger[_0x4614('0xc')](_0x4614('0x29'));return _0xdb28bf[_0x4614('0x22')];});}});}function getAuth(_0x1bd0e8){var _0x4432e5;if(_0x1bd0e8['authType']===_0x4614('0x2a')){_0x4432e5=util[_0x4614('0x1b')](_0x4614('0x2b'),_0x1bd0e8[_0x4614('0x2c')],_0x1bd0e8[_0x4614('0x2a')]);}else if(_0x1bd0e8[_0x4614('0x2d')]===_0x4614('0x2e')){_0x4432e5=util[_0x4614('0x1b')](_0x4614('0x2f'),_0x1bd0e8['username'],_0x1bd0e8[_0x4614('0x2e')]);}return util[_0x4614('0x1b')](_0x4614('0x30'),new Buffer(_0x4432e5)[_0x4614('0x31')]('base64'));}function request(_0x3c0be3){logger[_0x4614('0x32')](_0x4614('0x33'),JSON[_0x4614('0x34')](_0x3c0be3));return rp(_['defaults'](_0x3c0be3,{'method':_0x4614('0x35'),'headers':headers,'json':!![]}));}function getTags(_0x30d64d,_0x279ca6){var _0x224b0d=[];if(_0x30d64d&&_0x30d64d['length']>0x0){_0x224b0d=_['map'](_0x30d64d,_0x279ca6);}return _0x224b0d;}function getCustomFields(_0x45ec88,_0x34205f){var _0x4b9b5e=[];var _0x321b0e={'custom_fields':[]};if(_0x45ec88[_0x4614('0x24')]>0x0){_[_0x4614('0x36')](_0x45ec88,function(_0x203ec0){if(_0x203ec0['type']===_0x4614('0x37')&&_0x203ec0['nameField']&&!_0x203ec0[_0x4614('0x38')]){_0x321b0e[_0x203ec0['nameField'][_0x4614('0x39')]()]=_0x203ec0[_0x4614('0x3a')][_0x4614('0x31')]();}else if(_0x203ec0[_0x4614('0x3b')]===_0x4614('0x37')&&_0x203ec0[_0x4614('0x3c')]&&_0x203ec0[_0x4614('0x38')]){_0x321b0e['custom_fields'][_0x4614('0x3d')]({'id':_0x203ec0['idField'],'value':_0x203ec0[_0x4614('0x3a')][_0x4614('0x31')]()});}else if(_0x203ec0[_0x4614('0x3b')]==='variable'&&_0x203ec0[_0x4614('0x3e')]&&_0x203ec0[_0x4614('0x3c')]&&_0x203ec0['customField']){_0x34205f[_0x203ec0[_0x4614('0x3e')]]&&_0x321b0e[_0x4614('0x3f')]['push']({'id':_0x203ec0[_0x4614('0x3c')],'value':_0x34205f[_0x203ec0[_0x4614('0x3e')]][_0x4614('0x31')]()});}else if(_0x203ec0[_0x4614('0x3b')]===_0x4614('0x40')&&_0x203ec0[_0x4614('0x41')]&&_0x203ec0[_0x4614('0x41')][_0x4614('0x12')]&&_0x203ec0[_0x4614('0x3c')]&&_0x203ec0[_0x4614('0x38')]){_0x34205f[_0x203ec0[_0x4614('0x41')][_0x4614('0x12')]['toLowerCase']()]&&_0x321b0e['custom_fields'][_0x4614('0x3d')]({'id':_0x203ec0[_0x4614('0x3c')],'value':_0x34205f[_0x203ec0['Variable'][_0x4614('0x12')][_0x4614('0x39')]()][_0x4614('0x31')]()});}});}return _0x321b0e;}exports[_0x4614('0x42')]=function(_0x50807a,_0x27e276,_0x27db49,_0x523c5f,_0x402242,_0x4bde6d){var _0x3c740d,_0x2dfb7b;_0x4bde6d['remoteUri']=intUtil[_0x4614('0x43')](_0x4bde6d[_0x4614('0xf')]);_0x4bde6d[_0x4614('0x44')]=intUtil[_0x4614('0x43')](_0x4bde6d[_0x4614('0x44')]);if(_0x402242&&_0x402242[_0x4614('0x45')]){logger[_0x4614('0xc')]('[QUEUE]',_0x4614('0x46'));_0x27e276['recordingURL']=util[_0x4614('0x1b')](_0x4614('0x47'),_0x4bde6d[_0x4614('0x44')],_0x27e276[_0x4614('0x48')],md5(_0x27e276[_0x4614('0x48')]));}else{_0x27e276[_0x4614('0x49')]='';}headers[_0x4614('0x4a')]=getAuth(_0x4bde6d);return getUser(_0x4bde6d,_0x523c5f[_0x4614('0x4b')])['then'](function(_0x50db6c){_0x3c740d=_0x50db6c;logger[_0x4614('0xc')](_0x4614('0x4c'),_0x3c740d['id']);return getEndUser(_0x4bde6d,_0x27e276[_0x4614('0x4d')],_0x27e276['calleridnum']);})['then'](function(_0x2c3895){_0x2dfb7b=_0x2c3895;logger['info']('The\x20Enduser\x20ID\x20is:',_0x2dfb7b['id']);return getTicket(_0x4bde6d,_0x3c740d,_0x2dfb7b,_0x27db49,_0x27e276);})[_0x4614('0x17')](function(_0x493c35){if(_0x493c35){logger[_0x4614('0xc')]('The\x20Ticket\x20ID\x20is:',_0x493c35['id']);switch(_0x4bde6d[_0x4614('0x3b')]){case _0x4614('0x4e'):logger[_0x4614('0xc')](_0x4614('0x4f'),_0x4614('0x50'));return request({'uri':util[_0x4614('0x1b')](_0x4614('0x51'),_0x4bde6d['remoteUri'],_0x3c740d['id'],_0x493c35['id']),'method':_0x4614('0x28')});case _0x4614('0x52'):logger['info'](_0x4614('0x4f'),_0x4614('0x53'));emit(util[_0x4614('0x1b')](_0x4614('0x54'),_0x523c5f[_0x4614('0x12')]),_0x4614('0x55'),{'uri':util[_0x4614('0x1b')](_0x4614('0x56'),_0x4bde6d[_0x4614('0xf')],_0x493c35['id'])});break;default:logger[_0x4614('0x57')](_0x4614('0x4f'),_0x4614('0x58'));}}})[_0x4614('0x59')](function(_0xc8b376){logger[_0x4614('0x57')](_0x4614('0x5a'),util[_0x4614('0x5b')](_0xc8b376,{'showHidden':!![],'depth':null}));});};exports[_0x4614('0x5c')]=function(_0x50e3c9,_0x4b631c,_0x14ce0a,_0x10597f,_0x187424,_0x1b6052,_0x5f63c5){var _0x29c02a,_0x2fd6e9;_0x1b6052[_0x4614('0xf')]=intUtil[_0x4614('0x43')](_0x1b6052[_0x4614('0xf')]);_0x1b6052[_0x4614('0x44')]=intUtil['stripTrailingSlash'](_0x1b6052['serverUrl']);if(_0x5f63c5&&_0x5f63c5[_0x4614('0x5d')]&&_0x5f63c5[_0x4614('0x5d')]!=='none'){logger['info'](_0x4614('0x5e'),'Recording\x20is\x20enabled!');_0x4b631c[_0x4614('0x49')]=util[_0x4614('0x1b')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x1b6052[_0x4614('0x44')],_0x4b631c[_0x4614('0x48')],md5(_0x4b631c[_0x4614('0x48')]));}headers[_0x4614('0x4a')]=getAuth(_0x1b6052);return getUser(_0x1b6052,_0x10597f[_0x4614('0x4b')])['then'](function(_0x278db8){_0x29c02a=_0x278db8;logger['info'](_0x4614('0x4c'),_0x29c02a['id']);return getEndUser(_0x1b6052,_0x4b631c[_0x4614('0x5f')],_0x4b631c[_0x4614('0x60')]);})[_0x4614('0x17')](function(_0x1f287e){_0x2fd6e9=_0x1f287e;logger[_0x4614('0xc')](_0x4614('0x61'),_0x2fd6e9['id']);return getTicket(_0x1b6052,_0x29c02a,_0x2fd6e9,_0x14ce0a,_0x4b631c);})[_0x4614('0x17')](function(_0x25809e){if(_0x25809e){logger[_0x4614('0xc')](_0x4614('0x62'),_0x25809e['id']);switch(_0x1b6052['type']){case _0x4614('0x4e'):logger[_0x4614('0xc')]('[OUTBOUND]','Displaying\x20ticket\x20to\x20agent...');return request({'uri':util['format'](_0x4614('0x51'),_0x1b6052[_0x4614('0xf')],_0x29c02a['id'],_0x25809e['id']),'method':_0x4614('0x28')});case'newTab':logger[_0x4614('0xc')](_0x4614('0x5e'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x4614('0x1b')](_0x4614('0x54'),_0x10597f[_0x4614('0x12')]),'trigger:browser:url',{'uri':util[_0x4614('0x1b')](_0x4614('0x56'),_0x1b6052[_0x4614('0xf')],_0x25809e['id'])});break;default:logger[_0x4614('0x57')]('[OUTBOUND]','Zendesk\x20account\x20type\x20not\x20recognized');}}})['catch'](function(_0x4376f0){logger[_0x4614('0x57')](_0x4614('0x63'),util[_0x4614('0x5b')](_0x4376f0,{'showHidden':!![],'depth':null}));});};exports[_0x4614('0x64')]=function(_0x283963,_0x18093b,_0x15bfa5,_0xe27c87,_0x51b119,_0x122f81){var _0x1b343e,_0x105d13;_0x122f81[_0x4614('0xf')]=intUtil[_0x4614('0x43')](_0x122f81[_0x4614('0xf')]);_0x122f81[_0x4614('0x44')]=intUtil['stripTrailingSlash'](_0x122f81[_0x4614('0x44')]);if(_0x51b119&&_0x51b119[_0x4614('0x45')]){logger[_0x4614('0xc')](_0x4614('0x65'),_0x4614('0x46'));_0x18093b[_0x4614('0x49')]=util[_0x4614('0x1b')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x122f81[_0x4614('0x44')],_0x18093b[_0x4614('0x48')],md5(_0x18093b[_0x4614('0x48')]));}else{_0x18093b[_0x4614('0x49')]='';}headers[_0x4614('0x4a')]=getAuth(_0x122f81);return getUser(_0x122f81)[_0x4614('0x17')](function(_0x1ce5d5){_0x1b343e=_0x1ce5d5;logger[_0x4614('0xc')](_0x4614('0x4c'),_0x1b343e['id']);return getEndUser(_0x122f81,_0x18093b[_0x4614('0x4d')],_0x18093b[_0x4614('0x66')]);})['then'](function(_0x411b9b){_0x105d13=_0x411b9b;logger[_0x4614('0xc')]('The\x20Enduser\x20ID\x20is:',_0x105d13['id']);return getTicket(_0x122f81,_0x1b343e,_0x105d13,_0x15bfa5,_0x18093b);})['then'](function(_0x4a9834){if(_0x4a9834){logger[_0x4614('0xc')](_0x4614('0x62'),_0x4a9834['id']);}})[_0x4614('0x59')](function(_0x3c5d2a){logger['error'](_0x4614('0x67'),util[_0x4614('0x5b')](_0x3c5d2a,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb0=['trigger:browser:url','https://crm.%s/crm/EntityInfo.do?module=Calls&id=%s','recordingFormat','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Outbound','[OUTBOUND]','catch','abandoned','monitor_format','[ABANDONED]','lodash','request-promise','md5','./util','xml2json','entities','moment','../../../../config/environment','zoho','defaults','localhost','socket.io-emitter','redis','emit','application/json','merge','inbound','outbound','starttime','format','YYYY-MM-DD\x20HH:mm:ss','getString','Fields','lastevent','called','Call\x20Result','Called','complete','connect','Answered','Rejected','talktime','Call\x20Duration','utc','mm:ss','endtime','diff','CONTACTID','LEADID','SEMODULE','Leads','SEID','<Calls><row\x20no=\x221\x22>','hasOwnProperty','<FL\x20val=\x22%s\x22>%s</FL>','encodeXML','POST','host','authToken','crmapi','then','parse','response','result','recorddetail','info','Call\x20created!','Error\x20on\x20call\x20creation:\x20','stringify','Getting\x20agent\x20with\x20email','GET','https://crm.%s/crm/private/json/Users/getUsers','AllUsers','users','find','user','Standard','Agent\x20found!','Using\x20the\x20admin\x20account!','Administrator','error','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','Searching\x20enduser\x20with\x20phone','https://crm.%s/crm/private/json/Contacts/searchRecords','((Phone:%s))','row','Contacts','length','val','content','https://crm.%s/crm/private/json/Leads/searchRecords','https://crm.%s/crm/private/xml/Leads/insertRecords','Enduser\x20created.','https://crm.%s/crm/private/json/Leads/getRecordById','Error\x20on\x20Lead\x20creation:\x20','Error\x20on\x20Lead\x20retrieve:\x20','debug','[HTTP]','forEach','type','string','idField','toString','variableName','customVariable','Variable','name','toLowerCase','indexOf','split','queue','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','recordingURL','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Inbound','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s'];(function(_0x31bee2,_0xbddb9c){var _0x11acfe=function(_0xdf65d2){while(--_0xdf65d2){_0x31bee2['push'](_0x31bee2['shift']());}};_0x11acfe(++_0xbddb9c);}(_0xbdb0,0x189));var _0x0bdb=function(_0x468a77,_0x1382be){_0x468a77=_0x468a77-0x0;var _0x2d1c33=_0xbdb0[_0x468a77];return _0x2d1c33;};'use strict';var _=require(_0x0bdb('0x0'));var rp=require(_0x0bdb('0x1'));var md5=require(_0x0bdb('0x2'));var util=require('util');var intUtil=require(_0x0bdb('0x3'));var parser=require(_0x0bdb('0x4'));var entities=require(_0x0bdb('0x5'));var moment=require(_0x0bdb('0x6'));var config=require(_0x0bdb('0x7'));var logger=require('../../../../config/logger')(_0x0bdb('0x8'));config['redis']=_[_0x0bdb('0x9')](config['redis'],{'host':_0x0bdb('0xa'),'port':0x18eb});var io=require(_0x0bdb('0xb'))(config[_0x0bdb('0xc')]);function emit(_0x3afa5e,_0x3889d4,_0xc8984d){io['to'](_0x3afa5e)[_0x0bdb('0xd')](_0x3889d4,_0xc8984d);}var headers={'Content-Type':'application/json','Accept':_0x0bdb('0xe')};function getCall(_0x5f5a16,_0x4cd1fc,_0x3306a5,_0x4a9579,_0x55ce82,_0x3712d4){logger['info']('Creating\x20new\x20call...');var _0x7870ce=_[_0x0bdb('0xf')]({'SMOWNERID':_0x4cd1fc['id'],'Call Type':_0x3712d4||_0x0bdb('0x10'),'Call Start Time':(_0x3712d4===_0x0bdb('0x11')?_0x55ce82[_0x0bdb('0x12')]:_0x55ce82['agentcalledAt'])||moment()[_0x0bdb('0x13')](_0x0bdb('0x14')),'Subject':intUtil[_0x0bdb('0x15')](_0x4a9579['Subjects'],_0x55ce82,'\x20'),'Description':intUtil['getString'](_0x4a9579['Descriptions'],_0x55ce82,'\x0a')},getCustomFields(_0x4a9579[_0x0bdb('0x16')],_0x55ce82));switch(_0x55ce82[_0x0bdb('0x17')]){case _0x0bdb('0x18'):_0x7870ce[_0x0bdb('0x19')]=_0x0bdb('0x1a');break;case _0x0bdb('0x1b'):case _0x0bdb('0x1c'):_0x7870ce[_0x0bdb('0x19')]=_0x0bdb('0x1d');break;case'rejected':_0x7870ce['Call\x20Result']=_0x0bdb('0x1e');break;case'abandoned':_0x7870ce['Call\x20Result']='Abandoned';break;default:}if(_0x55ce82[_0x0bdb('0x1f')]){_0x7870ce[_0x0bdb('0x20')]=moment[_0x0bdb('0x21')](parseInt(_0x55ce82['talktime'])*0x3e8)[_0x0bdb('0x13')](_0x0bdb('0x22'));}else if(_0x55ce82['answertime']&&_0x55ce82[_0x0bdb('0x23')]){_0x7870ce['Call\x20Duration']=moment[_0x0bdb('0x21')](moment(_0x55ce82['endtime'],_0x0bdb('0x14'))[_0x0bdb('0x24')](moment(_0x55ce82[_0x0bdb('0x12')],'YYYY-MM-DD\x20HH:mm:ss')))[_0x0bdb('0x13')](_0x0bdb('0x22'));}if(_0x3306a5['CONTACTID']){_0x7870ce[_0x0bdb('0x25')]=_0x3306a5[_0x0bdb('0x25')];}else if(_0x3306a5[_0x0bdb('0x26')]){_0x7870ce[_0x0bdb('0x27')]=_0x0bdb('0x28');_0x7870ce[_0x0bdb('0x29')]=_0x3306a5[_0x0bdb('0x26')];}var _0x128959=_0x0bdb('0x2a');for(var _0x41eb9a in _0x7870ce){if(_0x7870ce[_0x0bdb('0x2b')](_0x41eb9a)){_0x128959+=util[_0x0bdb('0x13')](_0x0bdb('0x2c'),entities[_0x0bdb('0x2d')](_0x41eb9a),entities['encodeXML'](_0x7870ce[_0x41eb9a]));}}_0x128959+='</row></Calls>';return request({'method':_0x0bdb('0x2e'),'uri':util['format']('https://crm.%s/crm/private/xml/Calls/insertRecords',_0x5f5a16[_0x0bdb('0x2f')]),'qs':{'authtoken':_0x5f5a16[_0x0bdb('0x30')],'scope':_0x0bdb('0x31'),'xmlData':_0x128959},'json':!![]})[_0x0bdb('0x32')](function(_0x6271d9){_0x6271d9=JSON[_0x0bdb('0x33')](parser['toJson'](_0x6271d9));if(_0x6271d9['response']){if(_0x6271d9[_0x0bdb('0x34')][_0x0bdb('0x35')]&&_0x6271d9['response']['result'][_0x0bdb('0x36')]){logger[_0x0bdb('0x37')](_0x0bdb('0x38'));return{'id':_0x6271d9[_0x0bdb('0x34')]['result']['recorddetail']['FL'][0x0]['$t']};}}throw new Error(_0x0bdb('0x39')+JSON[_0x0bdb('0x3a')](_0x6271d9));});}function getUser(_0x463045,_0x3cdd87){_0x3cdd87&&logger[_0x0bdb('0x37')](_0x0bdb('0x3b'),_0x3cdd87);return request({'method':_0x0bdb('0x3c'),'uri':util['format'](_0x0bdb('0x3d'),_0x463045['host']),'qs':{'type':_0x0bdb('0x3e'),'authtoken':_0x463045[_0x0bdb('0x30')],'scope':_0x0bdb('0x31')},'json':!![]})[_0x0bdb('0x32')](function(_0xba8d98){if(_0xba8d98[_0x0bdb('0x3f')]&&_0xba8d98[_0x0bdb('0x3f')]['user']){var _0x496844;if(_0x3cdd87){_0x496844=_[_0x0bdb('0x40')](_0xba8d98['users'][_0x0bdb('0x41')],{'email':_0x3cdd87,'profile':_0x0bdb('0x42')});}if(_0x496844){logger[_0x0bdb('0x37')](_0x0bdb('0x43'));}else{logger[_0x0bdb('0x37')](_0x0bdb('0x44'));_0x496844=_['find'](_0xba8d98[_0x0bdb('0x3f')][_0x0bdb('0x41')],{'profile':_0x0bdb('0x45')});}return _0x496844;}else{logger[_0x0bdb('0x46')]('The\x20failing\x20result\x20is',JSON[_0x0bdb('0x3a')](_0xba8d98));throw new Error(_0x0bdb('0x47')+JSON[_0x0bdb('0x3a')](_0xba8d98));}});}function getEndUser(_0x23ace5,_0x445353,_0x15cc71){logger[_0x0bdb('0x37')](_0x0bdb('0x48'),_0x15cc71);return request({'method':_0x0bdb('0x3c'),'uri':util['format'](_0x0bdb('0x49'),_0x23ace5[_0x0bdb('0x2f')]),'qs':{'authtoken':_0x23ace5[_0x0bdb('0x30')],'scope':_0x0bdb('0x31'),'criteria':util['format'](_0x0bdb('0x4a'),_0x15cc71)},'json':!![]})[_0x0bdb('0x32')](function(_0x4f60c5){if(_0x4f60c5[_0x0bdb('0x34')]&&_0x4f60c5[_0x0bdb('0x34')][_0x0bdb('0x35')]){logger[_0x0bdb('0x37')]('Enduser\x20found\x20in\x20Contacts!');var _0x279c14={};var _0x3b2aec=_0x4f60c5[_0x0bdb('0x34')][_0x0bdb('0x35')]['Contacts'][_0x0bdb('0x4b')]['no']?_0x4f60c5[_0x0bdb('0x34')][_0x0bdb('0x35')][_0x0bdb('0x4c')][_0x0bdb('0x4b')]['FL']:_0x4f60c5[_0x0bdb('0x34')][_0x0bdb('0x35')][_0x0bdb('0x4c')]['row'][0x0]['FL'];for(var _0x273c9f=0x0,_0x4eeda4=_0x3b2aec[_0x0bdb('0x4d')];_0x273c9f<_0x4eeda4;_0x273c9f++){_0x279c14[_0x3b2aec[_0x273c9f][_0x0bdb('0x4e')]]=_0x3b2aec[_0x273c9f][_0x0bdb('0x4f')];}return _0x279c14;}else{return request({'method':_0x0bdb('0x3c'),'uri':util[_0x0bdb('0x13')](_0x0bdb('0x50'),_0x23ace5[_0x0bdb('0x2f')]),'qs':{'authtoken':_0x23ace5[_0x0bdb('0x30')],'scope':_0x0bdb('0x31'),'criteria':util[_0x0bdb('0x13')]('((Phone:%s))',_0x15cc71)},'json':!![]})[_0x0bdb('0x32')](function(_0x1d733f){if(_0x1d733f[_0x0bdb('0x34')]&&_0x1d733f['response'][_0x0bdb('0x35')]){logger[_0x0bdb('0x37')]('Enduser\x20found\x20in\x20Leads!');var _0x1ec822={};var _0x246730=_0x1d733f[_0x0bdb('0x34')]['result'][_0x0bdb('0x28')][_0x0bdb('0x4b')]['no']?_0x1d733f['response']['result'][_0x0bdb('0x28')][_0x0bdb('0x4b')]['FL']:_0x1d733f['response'][_0x0bdb('0x35')][_0x0bdb('0x28')]['row'][0x0]['FL'];for(var _0x40bc29=0x0,_0x5054a8=_0x246730[_0x0bdb('0x4d')];_0x40bc29<_0x5054a8;_0x40bc29++){_0x1ec822[_0x246730[_0x40bc29][_0x0bdb('0x4e')]]=_0x246730[_0x40bc29][_0x0bdb('0x4f')];}return _0x1ec822;}else{logger['info']('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');_0x445353=getName(_0x445353);return request({'method':_0x0bdb('0x2e'),'uri':util['format'](_0x0bdb('0x51'),_0x23ace5[_0x0bdb('0x2f')]),'qs':{'authtoken':_0x23ace5[_0x0bdb('0x30')],'scope':'crmapi','xmlData':util[_0x0bdb('0x13')]('<Leads><row\x20no=\x221\x22><FL\x20val=\x22First\x20Name\x22>%s</FL><FL\x20val=\x22Last\x20Name\x22>%s</FL><FL\x20val=\x22Phone\x22>%s</FL></row></Leads>',entities[_0x0bdb('0x2d')](_0x445353[0x0]),entities[_0x0bdb('0x2d')](_0x445353[0x1]),_0x15cc71)},'json':!![]})['then'](function(_0x3daa03){_0x3daa03=JSON['parse'](parser['toJson'](_0x3daa03));if(_0x3daa03['response']){if(_0x3daa03[_0x0bdb('0x34')][_0x0bdb('0x35')]&&_0x3daa03[_0x0bdb('0x34')][_0x0bdb('0x35')][_0x0bdb('0x36')]){logger['info'](_0x0bdb('0x52'));return request({'method':_0x0bdb('0x3c'),'uri':util[_0x0bdb('0x13')](_0x0bdb('0x53'),_0x23ace5[_0x0bdb('0x2f')]),'qs':{'authtoken':_0x23ace5[_0x0bdb('0x30')],'scope':_0x0bdb('0x31'),'id':_0x3daa03[_0x0bdb('0x34')][_0x0bdb('0x35')][_0x0bdb('0x36')]['FL'][0x0]['$t']},'json':!![]});}}throw new Error(_0x0bdb('0x54')+JSON[_0x0bdb('0x3a')](_0x3daa03));})[_0x0bdb('0x32')](function(_0x4faed9){if(_0x4faed9[_0x0bdb('0x34')]){if(_0x4faed9[_0x0bdb('0x34')][_0x0bdb('0x35')]){var _0x1a8728={};for(var _0x5da01c=0x0,_0x36244a=_0x4faed9['response'][_0x0bdb('0x35')][_0x0bdb('0x28')][_0x0bdb('0x4b')]['FL'][_0x0bdb('0x4d')];_0x5da01c<_0x36244a;_0x5da01c++){_0x1a8728[_0x4faed9['response'][_0x0bdb('0x35')]['Leads'][_0x0bdb('0x4b')]['FL'][_0x5da01c][_0x0bdb('0x4e')]]=_0x4faed9['response'][_0x0bdb('0x35')]['Leads'][_0x0bdb('0x4b')]['FL'][_0x5da01c][_0x0bdb('0x4f')];}return _0x1a8728;}}throw new Error(_0x0bdb('0x55')+JSON['stringify'](_0x4faed9));});}});}});}function request(_0x14cf48){logger[_0x0bdb('0x56')](_0x0bdb('0x57'),JSON[_0x0bdb('0x3a')](_0x14cf48));return rp(_0x14cf48);}function getCustomFields(_0x2b95e8,_0x4ebc69){var _0x9baab9={};if(_0x2b95e8['length']>0x0){_[_0x0bdb('0x58')](_0x2b95e8,function(_0x2827ea){if(_0x2827ea[_0x0bdb('0x59')]===_0x0bdb('0x5a')&&_0x2827ea[_0x0bdb('0x5b')]){_0x9baab9[_0x2827ea[_0x0bdb('0x5b')]]=_0x2827ea['content'][_0x0bdb('0x5c')]();}else if(_0x2827ea['type']==='variable'&&_0x2827ea[_0x0bdb('0x5d')]&&_0x2827ea[_0x0bdb('0x5b')]&&_0x4ebc69[_0x2827ea[_0x0bdb('0x5d')]]){_0x9baab9[_0x2827ea[_0x0bdb('0x5b')]]=_0x4ebc69[_0x2827ea[_0x0bdb('0x5d')]][_0x0bdb('0x5c')]();}else if(_0x2827ea[_0x0bdb('0x59')]===_0x0bdb('0x5e')&&_0x2827ea['Variable']&&_0x2827ea[_0x0bdb('0x5f')][_0x0bdb('0x60')]&&_0x2827ea[_0x0bdb('0x5b')]&&_0x4ebc69[_0x2827ea[_0x0bdb('0x5f')][_0x0bdb('0x60')]['toLowerCase']()]){_0x9baab9[_0x2827ea[_0x0bdb('0x5b')]]=_0x4ebc69[_0x2827ea[_0x0bdb('0x5f')][_0x0bdb('0x60')][_0x0bdb('0x61')]()][_0x0bdb('0x5c')]();}});}return _0x9baab9;}function getName(_0x33cf6f){if(_0x33cf6f[_0x0bdb('0x62')]('\x20')>0x0){var _0x2f3f9d=_0x33cf6f[_0x0bdb('0x63')](/ (.+)/);if(_0x2f3f9d[0x1]){return _0x2f3f9d;}}return[_0x33cf6f,_0x33cf6f];}exports[_0x0bdb('0x64')]=function(_0x288e22,_0xae7db9,_0xfc2724,_0x3ddb06,_0x47ea51,_0x3527c5){var _0x5496f7,_0x4fab30;if(_0x47ea51&&_0x47ea51['monitor_format']){logger[_0x0bdb('0x37')](_0x0bdb('0x65'),'Recording\x20is\x20enabled!');_0xae7db9['recordingURL']=util['format'](_0x0bdb('0x66'),_0x3527c5[_0x0bdb('0x67')],_0xae7db9[_0x0bdb('0x68')],md5(_0xae7db9[_0x0bdb('0x68')]));}else{_0xae7db9[_0x0bdb('0x69')]='';}return getUser(_0x3527c5,_0x3ddb06[_0x0bdb('0x6a')])[_0x0bdb('0x32')](function(_0x26a98d){_0x5496f7=_0x26a98d;logger[_0x0bdb('0x37')](_0x0bdb('0x6b'),_0x5496f7['id']);return getEndUser(_0x3527c5,_0xae7db9[_0x0bdb('0x6c')],_0xae7db9[_0x0bdb('0x6d')]);})[_0x0bdb('0x32')](function(_0x414646){_0x4fab30=_0x414646;logger[_0x0bdb('0x37')](_0x0bdb('0x6e'),_0x4fab30['CONTACTID']||_0x4fab30[_0x0bdb('0x26')]);return getCall(_0x3527c5,_0x5496f7,_0x4fab30,_0xfc2724,_0xae7db9,_0x0bdb('0x6f'));})[_0x0bdb('0x32')](function(_0x3579a0){if(_0x3579a0){logger['info'](_0x0bdb('0x70'),_0x3579a0['id']);logger[_0x0bdb('0x37')](_0x0bdb('0x65'),_0x0bdb('0x71'));emit(util['format'](_0x0bdb('0x72'),_0x3ddb06[_0x0bdb('0x60')]),_0x0bdb('0x73'),{'uri':util[_0x0bdb('0x13')](_0x0bdb('0x74'),_0x3527c5[_0x0bdb('0x2f')],_0x3579a0['id'])});}})['catch'](function(_0xf5d267){logger[_0x0bdb('0x46')](_0x0bdb('0x65'),JSON[_0x0bdb('0x3a')](_0xf5d267));});};exports[_0x0bdb('0x11')]=function(_0x2cc1e9,_0x359f6d,_0x5c6db3,_0x4a4da2,_0x303d6f,_0x4765e8,_0xa08087){var _0x117117,_0x4789cc;if(_0xa08087&&_0xa08087[_0x0bdb('0x75')]&&_0xa08087[_0x0bdb('0x75')]!=='none'){logger[_0x0bdb('0x37')]('[OUTBOUND]',_0x0bdb('0x76'));_0x359f6d[_0x0bdb('0x69')]=util[_0x0bdb('0x13')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4765e8['serverUrl'],_0x359f6d['uniqueid'],md5(_0x359f6d[_0x0bdb('0x68')]));}return getUser(_0x4765e8,_0x4a4da2[_0x0bdb('0x6a')])[_0x0bdb('0x32')](function(_0x452e93){_0x117117=_0x452e93;logger[_0x0bdb('0x37')]('The\x20User\x20ID\x20is:',_0x117117['id']);return getEndUser(_0x4765e8,_0x359f6d[_0x0bdb('0x77')],_0x359f6d[_0x0bdb('0x78')]);})[_0x0bdb('0x32')](function(_0x2ae3ad){_0x4789cc=_0x2ae3ad;logger[_0x0bdb('0x37')](_0x0bdb('0x6e'),_0x4789cc[_0x0bdb('0x25')]||_0x4789cc['LEADID']);return getCall(_0x4765e8,_0x117117,_0x4789cc,_0x5c6db3,_0x359f6d,_0x0bdb('0x79'));})[_0x0bdb('0x32')](function(_0x14eda4){if(_0x14eda4){logger[_0x0bdb('0x37')](_0x0bdb('0x70'),_0x14eda4['id']);logger[_0x0bdb('0x37')](_0x0bdb('0x7a'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x0bdb('0x13')]('user:%s',_0x4a4da2[_0x0bdb('0x60')]),_0x0bdb('0x73'),{'uri':util[_0x0bdb('0x13')](_0x0bdb('0x74'),_0x4765e8[_0x0bdb('0x2f')],_0x14eda4['id'])});}})[_0x0bdb('0x7b')](function(_0x3b3c75){logger['error'](_0x0bdb('0x7a'),JSON[_0x0bdb('0x3a')](_0x3b3c75));});};exports[_0x0bdb('0x7c')]=function(_0x429756,_0x16aecf,_0x44a8ca,_0x1fb59e,_0x39e274,_0x3e6eec){var _0x12cb9a,_0x18155c;if(_0x39e274&&_0x39e274[_0x0bdb('0x7d')]){logger[_0x0bdb('0x37')](_0x0bdb('0x7e'),_0x0bdb('0x76'));_0x16aecf[_0x0bdb('0x69')]=util[_0x0bdb('0x13')](_0x0bdb('0x66'),_0x3e6eec[_0x0bdb('0x67')],_0x16aecf['uniqueid'],md5(_0x16aecf[_0x0bdb('0x68')]));}else{_0x16aecf[_0x0bdb('0x69')]='';}return getUser(_0x3e6eec)[_0x0bdb('0x32')](function(_0x35112d){_0x12cb9a=_0x35112d;logger[_0x0bdb('0x37')](_0x0bdb('0x6b'),_0x12cb9a['id']);return getEndUser(_0x3e6eec,_0x16aecf[_0x0bdb('0x6c')],_0x16aecf[_0x0bdb('0x6d')]);})[_0x0bdb('0x32')](function(_0x3a2bc5){_0x18155c=_0x3a2bc5;logger['info']('The\x20Enduser\x20ID\x20is:',_0x18155c[_0x0bdb('0x25')]||_0x18155c[_0x0bdb('0x26')]);return getCall(_0x3e6eec,_0x12cb9a,_0x18155c,_0x44a8ca,_0x16aecf,'Inbound');})[_0x0bdb('0x32')](function(_0x80b351){if(_0x80b351){logger[_0x0bdb('0x37')](_0x0bdb('0x70'),_0x80b351['id']);}})[_0x0bdb('0x7b')](function(_0x299d3b){logger[_0x0bdb('0x46')]('[ABANDONED]',JSON[_0x0bdb('0x3a')](_0x299d3b));});};
\ No newline at end of file
+var _0x5fc3=['[HTTP]','forEach','string','idField','toString','type','variable','variableName','customVariable','Variable','name','toLowerCase','split','queue','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','serverUrl','uniqueid','recordingURL','calleridname','Inbound','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','https://crm.%s/crm/EntityInfo.do?module=Calls&id=%s','outbound','recordingFormat','none','[OUTBOUND]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','email','destcalleridname','The\x20Enduser\x20ID\x20is:','Outbound','catch','[ABANDONED]','The\x20User\x20ID\x20is:','calleridnum','lodash','request-promise','util','./util','xml2json','entities','moment','../../../../config/environment','../../../../config/logger','zoho','redis','socket.io-emitter','emit','application/json','info','Creating\x20new\x20call...','inbound','starttime','agentcalledAt','format','YYYY-MM-DD\x20HH:mm:ss','getString','lastevent','called','Call\x20Result','Called','complete','connect','Answered','rejected','Rejected','abandoned','talktime','Call\x20Duration','utc','mm:ss','answertime','endtime','diff','CONTACTID','SEMODULE','Leads','LEADID','<Calls><row\x20no=\x221\x22>','hasOwnProperty','<FL\x20val=\x22%s\x22>%s</FL>','encodeXML','POST','https://crm.%s/crm/private/xml/Calls/insertRecords','host','crmapi','then','parse','toJson','response','result','recorddetail','Error\x20on\x20call\x20creation:\x20','stringify','Getting\x20agent\x20with\x20email','GET','authToken','users','find','user','Standard','Using\x20the\x20admin\x20account!','error','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','Searching\x20enduser\x20with\x20phone','https://crm.%s/crm/private/json/Contacts/searchRecords','((Phone:%s))','Enduser\x20found\x20in\x20Contacts!','Contacts','row','length','val','content','https://crm.%s/crm/private/json/Leads/searchRecords','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','https://crm.%s/crm/private/xml/Leads/insertRecords','<Leads><row\x20no=\x221\x22><FL\x20val=\x22First\x20Name\x22>%s</FL><FL\x20val=\x22Last\x20Name\x22>%s</FL><FL\x20val=\x22Phone\x22>%s</FL></row></Leads>','Enduser\x20created.','https://crm.%s/crm/private/json/Leads/getRecordById','Error\x20on\x20Lead\x20creation:\x20','Error\x20on\x20Lead\x20retrieve:\x20','debug'];(function(_0x1e6737,_0x3a00b9){var _0x13209b=function(_0x161523){while(--_0x161523){_0x1e6737['push'](_0x1e6737['shift']());}};_0x13209b(++_0x3a00b9);}(_0x5fc3,0xa8));var _0x35fc=function(_0x269ee8,_0x477226){_0x269ee8=_0x269ee8-0x0;var _0x4d98bd=_0x5fc3[_0x269ee8];return _0x4d98bd;};'use strict';var _=require(_0x35fc('0x0'));var rp=require(_0x35fc('0x1'));var md5=require('md5');var util=require(_0x35fc('0x2'));var intUtil=require(_0x35fc('0x3'));var parser=require(_0x35fc('0x4'));var entities=require(_0x35fc('0x5'));var moment=require(_0x35fc('0x6'));var Redis=require('ioredis');var config=require(_0x35fc('0x7'));var logger=require(_0x35fc('0x8'))(_0x35fc('0x9'));config['redis']=_['defaults'](config[_0x35fc('0xa')],{'host':'localhost','port':0x18eb});var io=require(_0x35fc('0xb'))(new Redis(config[_0x35fc('0xa')]));function emit(_0xc72d93,_0x1e5f90,_0x34ff19){io['to'](_0xc72d93)[_0x35fc('0xc')](_0x1e5f90,_0x34ff19);}var headers={'Content-Type':_0x35fc('0xd'),'Accept':'application/json'};function getCall(_0x1083a9,_0x2a1084,_0x4fdca1,_0x471549,_0x33f491,_0x5021d4){logger[_0x35fc('0xe')](_0x35fc('0xf'));var _0x5469f5=_['merge']({'SMOWNERID':_0x2a1084['id'],'Call Type':_0x5021d4||_0x35fc('0x10'),'Call Start Time':(_0x5021d4==='outbound'?_0x33f491[_0x35fc('0x11')]:_0x33f491[_0x35fc('0x12')])||moment()[_0x35fc('0x13')](_0x35fc('0x14')),'Subject':intUtil[_0x35fc('0x15')](_0x471549['Subjects'],_0x33f491,'\x20'),'Description':intUtil['getString'](_0x471549['Descriptions'],_0x33f491,'\x0a')},getCustomFields(_0x471549['Fields'],_0x33f491));switch(_0x33f491[_0x35fc('0x16')]){case _0x35fc('0x17'):_0x5469f5[_0x35fc('0x18')]=_0x35fc('0x19');break;case _0x35fc('0x1a'):case _0x35fc('0x1b'):_0x5469f5['Call\x20Result']=_0x35fc('0x1c');break;case _0x35fc('0x1d'):_0x5469f5['Call\x20Result']=_0x35fc('0x1e');break;case _0x35fc('0x1f'):_0x5469f5[_0x35fc('0x18')]='Abandoned';break;default:}if(_0x33f491[_0x35fc('0x20')]){_0x5469f5[_0x35fc('0x21')]=moment[_0x35fc('0x22')](parseInt(_0x33f491['talktime'])*0x3e8)[_0x35fc('0x13')](_0x35fc('0x23'));}else if(_0x33f491[_0x35fc('0x24')]&&_0x33f491[_0x35fc('0x25')]){_0x5469f5[_0x35fc('0x21')]=moment[_0x35fc('0x22')](moment(_0x33f491[_0x35fc('0x25')],_0x35fc('0x14'))[_0x35fc('0x26')](moment(_0x33f491[_0x35fc('0x11')],'YYYY-MM-DD\x20HH:mm:ss')))[_0x35fc('0x13')](_0x35fc('0x23'));}if(_0x4fdca1[_0x35fc('0x27')]){_0x5469f5[_0x35fc('0x27')]=_0x4fdca1[_0x35fc('0x27')];}else if(_0x4fdca1['LEADID']){_0x5469f5[_0x35fc('0x28')]=_0x35fc('0x29');_0x5469f5['SEID']=_0x4fdca1[_0x35fc('0x2a')];}var _0x5a93df=_0x35fc('0x2b');for(var _0x51cfec in _0x5469f5){if(_0x5469f5[_0x35fc('0x2c')](_0x51cfec)){_0x5a93df+=util['format'](_0x35fc('0x2d'),entities[_0x35fc('0x2e')](_0x51cfec),entities['encodeXML'](_0x5469f5[_0x51cfec]));}}_0x5a93df+='</row></Calls>';return request({'method':_0x35fc('0x2f'),'uri':util['format'](_0x35fc('0x30'),_0x1083a9[_0x35fc('0x31')]),'qs':{'authtoken':_0x1083a9['authToken'],'scope':_0x35fc('0x32'),'xmlData':_0x5a93df},'json':!![]})[_0x35fc('0x33')](function(_0x383837){_0x383837=JSON[_0x35fc('0x34')](parser[_0x35fc('0x35')](_0x383837));if(_0x383837[_0x35fc('0x36')]){if(_0x383837[_0x35fc('0x36')][_0x35fc('0x37')]&&_0x383837['response'][_0x35fc('0x37')][_0x35fc('0x38')]){logger[_0x35fc('0xe')]('Call\x20created!');return{'id':_0x383837[_0x35fc('0x36')][_0x35fc('0x37')][_0x35fc('0x38')]['FL'][0x0]['$t']};}}throw new Error(_0x35fc('0x39')+JSON[_0x35fc('0x3a')](_0x383837));});}function getUser(_0x103181,_0x222ddb){_0x222ddb&&logger[_0x35fc('0xe')](_0x35fc('0x3b'),_0x222ddb);return request({'method':_0x35fc('0x3c'),'uri':util['format']('https://crm.%s/crm/private/json/Users/getUsers',_0x103181[_0x35fc('0x31')]),'qs':{'type':'AllUsers','authtoken':_0x103181[_0x35fc('0x3d')],'scope':_0x35fc('0x32')},'json':!![]})[_0x35fc('0x33')](function(_0x227471){if(_0x227471[_0x35fc('0x3e')]&&_0x227471[_0x35fc('0x3e')]['user']){var _0x3fe193;if(_0x222ddb){_0x3fe193=_[_0x35fc('0x3f')](_0x227471[_0x35fc('0x3e')][_0x35fc('0x40')],{'email':_0x222ddb,'profile':_0x35fc('0x41')});}if(_0x3fe193){logger[_0x35fc('0xe')]('Agent\x20found!');}else{logger[_0x35fc('0xe')](_0x35fc('0x42'));_0x3fe193=_[_0x35fc('0x3f')](_0x227471['users'][_0x35fc('0x40')],{'profile':'Administrator'});}return _0x3fe193;}else{logger[_0x35fc('0x43')](_0x35fc('0x44'),JSON[_0x35fc('0x3a')](_0x227471));throw new Error(_0x35fc('0x45')+JSON['stringify'](_0x227471));}});}function getEndUser(_0x54fcf1,_0x59e4fb,_0x20f5fe){logger['info'](_0x35fc('0x46'),_0x20f5fe);return request({'method':'GET','uri':util[_0x35fc('0x13')](_0x35fc('0x47'),_0x54fcf1[_0x35fc('0x31')]),'qs':{'authtoken':_0x54fcf1[_0x35fc('0x3d')],'scope':_0x35fc('0x32'),'criteria':util[_0x35fc('0x13')](_0x35fc('0x48'),_0x20f5fe)},'json':!![]})['then'](function(_0x4467f8){if(_0x4467f8[_0x35fc('0x36')]&&_0x4467f8['response'][_0x35fc('0x37')]){logger[_0x35fc('0xe')](_0x35fc('0x49'));var _0x1d2ffe={};var _0x813866=_0x4467f8[_0x35fc('0x36')]['result'][_0x35fc('0x4a')][_0x35fc('0x4b')]['no']?_0x4467f8[_0x35fc('0x36')]['result'][_0x35fc('0x4a')][_0x35fc('0x4b')]['FL']:_0x4467f8['response'][_0x35fc('0x37')][_0x35fc('0x4a')][_0x35fc('0x4b')][0x0]['FL'];for(var _0x41e199=0x0,_0x331439=_0x813866[_0x35fc('0x4c')];_0x41e199<_0x331439;_0x41e199++){_0x1d2ffe[_0x813866[_0x41e199][_0x35fc('0x4d')]]=_0x813866[_0x41e199][_0x35fc('0x4e')];}return _0x1d2ffe;}else{return request({'method':'GET','uri':util['format'](_0x35fc('0x4f'),_0x54fcf1[_0x35fc('0x31')]),'qs':{'authtoken':_0x54fcf1['authToken'],'scope':'crmapi','criteria':util['format'](_0x35fc('0x48'),_0x20f5fe)},'json':!![]})[_0x35fc('0x33')](function(_0x4e56ed){if(_0x4e56ed[_0x35fc('0x36')]&&_0x4e56ed[_0x35fc('0x36')][_0x35fc('0x37')]){logger[_0x35fc('0xe')]('Enduser\x20found\x20in\x20Leads!');var _0x57105c={};var _0x5bf2f4=_0x4e56ed['response']['result'][_0x35fc('0x29')][_0x35fc('0x4b')]['no']?_0x4e56ed['response'][_0x35fc('0x37')]['Leads'][_0x35fc('0x4b')]['FL']:_0x4e56ed[_0x35fc('0x36')][_0x35fc('0x37')][_0x35fc('0x29')][_0x35fc('0x4b')][0x0]['FL'];for(var _0x5d3d0f=0x0,_0x64d381=_0x5bf2f4[_0x35fc('0x4c')];_0x5d3d0f<_0x64d381;_0x5d3d0f++){_0x57105c[_0x5bf2f4[_0x5d3d0f]['val']]=_0x5bf2f4[_0x5d3d0f][_0x35fc('0x4e')];}return _0x57105c;}else{logger[_0x35fc('0xe')](_0x35fc('0x50'));_0x59e4fb=getName(_0x59e4fb);return request({'method':_0x35fc('0x2f'),'uri':util['format'](_0x35fc('0x51'),_0x54fcf1['host']),'qs':{'authtoken':_0x54fcf1['authToken'],'scope':_0x35fc('0x32'),'xmlData':util[_0x35fc('0x13')](_0x35fc('0x52'),entities[_0x35fc('0x2e')](_0x59e4fb[0x0]),entities[_0x35fc('0x2e')](_0x59e4fb[0x1]),_0x20f5fe)},'json':!![]})[_0x35fc('0x33')](function(_0x405320){_0x405320=JSON[_0x35fc('0x34')](parser['toJson'](_0x405320));if(_0x405320[_0x35fc('0x36')]){if(_0x405320[_0x35fc('0x36')][_0x35fc('0x37')]&&_0x405320[_0x35fc('0x36')][_0x35fc('0x37')][_0x35fc('0x38')]){logger[_0x35fc('0xe')](_0x35fc('0x53'));return request({'method':_0x35fc('0x3c'),'uri':util[_0x35fc('0x13')](_0x35fc('0x54'),_0x54fcf1[_0x35fc('0x31')]),'qs':{'authtoken':_0x54fcf1[_0x35fc('0x3d')],'scope':_0x35fc('0x32'),'id':_0x405320['response']['result'][_0x35fc('0x38')]['FL'][0x0]['$t']},'json':!![]});}}throw new Error(_0x35fc('0x55')+JSON[_0x35fc('0x3a')](_0x405320));})[_0x35fc('0x33')](function(_0x3ee296){if(_0x3ee296[_0x35fc('0x36')]){if(_0x3ee296['response']['result']){var _0x388521={};for(var _0x19b2ce=0x0,_0x395d63=_0x3ee296[_0x35fc('0x36')]['result'][_0x35fc('0x29')][_0x35fc('0x4b')]['FL']['length'];_0x19b2ce<_0x395d63;_0x19b2ce++){_0x388521[_0x3ee296[_0x35fc('0x36')][_0x35fc('0x37')]['Leads'][_0x35fc('0x4b')]['FL'][_0x19b2ce][_0x35fc('0x4d')]]=_0x3ee296[_0x35fc('0x36')][_0x35fc('0x37')]['Leads']['row']['FL'][_0x19b2ce]['content'];}return _0x388521;}}throw new Error(_0x35fc('0x56')+JSON[_0x35fc('0x3a')](_0x3ee296));});}});}});}function request(_0x5ce231){logger[_0x35fc('0x57')](_0x35fc('0x58'),JSON[_0x35fc('0x3a')](_0x5ce231));return rp(_0x5ce231);}function getCustomFields(_0x145854,_0x46c59b){var _0x538be0={};if(_0x145854[_0x35fc('0x4c')]>0x0){_[_0x35fc('0x59')](_0x145854,function(_0x39d470){if(_0x39d470['type']===_0x35fc('0x5a')&&_0x39d470[_0x35fc('0x5b')]){_0x538be0[_0x39d470['idField']]=_0x39d470[_0x35fc('0x4e')][_0x35fc('0x5c')]();}else if(_0x39d470[_0x35fc('0x5d')]===_0x35fc('0x5e')&&_0x39d470[_0x35fc('0x5f')]&&_0x39d470[_0x35fc('0x5b')]&&_0x46c59b[_0x39d470[_0x35fc('0x5f')]]){_0x538be0[_0x39d470[_0x35fc('0x5b')]]=_0x46c59b[_0x39d470['variableName']][_0x35fc('0x5c')]();}else if(_0x39d470[_0x35fc('0x5d')]===_0x35fc('0x60')&&_0x39d470['Variable']&&_0x39d470[_0x35fc('0x61')]['name']&&_0x39d470['idField']&&_0x46c59b[_0x39d470['Variable'][_0x35fc('0x62')][_0x35fc('0x63')]()]){_0x538be0[_0x39d470[_0x35fc('0x5b')]]=_0x46c59b[_0x39d470[_0x35fc('0x61')][_0x35fc('0x62')]['toLowerCase']()]['toString']();}});}return _0x538be0;}function getName(_0x5353ea){if(_0x5353ea['indexOf']('\x20')>0x0){var _0x51d231=_0x5353ea[_0x35fc('0x64')](/ (.+)/);if(_0x51d231[0x1]){return _0x51d231;}}return[_0x5353ea,_0x5353ea];}exports[_0x35fc('0x65')]=function(_0xd470e8,_0x3ef680,_0x511e8b,_0x458eb8,_0x20b042,_0x390e16){var _0x1b0063,_0x37bea1;if(_0x20b042&&_0x20b042[_0x35fc('0x66')]){logger[_0x35fc('0xe')](_0x35fc('0x67'),_0x35fc('0x68'));_0x3ef680['recordingURL']=util[_0x35fc('0x13')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x390e16[_0x35fc('0x69')],_0x3ef680[_0x35fc('0x6a')],md5(_0x3ef680[_0x35fc('0x6a')]));}else{_0x3ef680[_0x35fc('0x6b')]='';}return getUser(_0x390e16,_0x458eb8['email'])[_0x35fc('0x33')](function(_0x4af592){_0x1b0063=_0x4af592;logger['info']('The\x20User\x20ID\x20is:',_0x1b0063['id']);return getEndUser(_0x390e16,_0x3ef680[_0x35fc('0x6c')],_0x3ef680['calleridnum']);})[_0x35fc('0x33')](function(_0x48c7a5){_0x37bea1=_0x48c7a5;logger[_0x35fc('0xe')]('The\x20Enduser\x20ID\x20is:',_0x37bea1[_0x35fc('0x27')]||_0x37bea1[_0x35fc('0x2a')]);return getCall(_0x390e16,_0x1b0063,_0x37bea1,_0x511e8b,_0x3ef680,_0x35fc('0x6d'));})[_0x35fc('0x33')](function(_0x5c2ec0){if(_0x5c2ec0){logger[_0x35fc('0xe')](_0x35fc('0x6e'),_0x5c2ec0['id']);logger[_0x35fc('0xe')]('[QUEUE]',_0x35fc('0x6f'));emit(util[_0x35fc('0x13')](_0x35fc('0x70'),_0x458eb8[_0x35fc('0x62')]),_0x35fc('0x71'),{'uri':util[_0x35fc('0x13')](_0x35fc('0x72'),_0x390e16[_0x35fc('0x31')],_0x5c2ec0['id'])});}})['catch'](function(_0x28a44b){logger[_0x35fc('0x43')](_0x35fc('0x67'),JSON['stringify'](_0x28a44b));});};exports[_0x35fc('0x73')]=function(_0x1b76f0,_0x586729,_0x4d09d4,_0x3969d3,_0x4835c2,_0x223ad3,_0x2dbc81){var _0x43638e,_0x10952a;if(_0x2dbc81&&_0x2dbc81[_0x35fc('0x74')]&&_0x2dbc81[_0x35fc('0x74')]!==_0x35fc('0x75')){logger[_0x35fc('0xe')](_0x35fc('0x76'),_0x35fc('0x68'));_0x586729[_0x35fc('0x6b')]=util[_0x35fc('0x13')](_0x35fc('0x77'),_0x223ad3[_0x35fc('0x69')],_0x586729[_0x35fc('0x6a')],md5(_0x586729[_0x35fc('0x6a')]));}return getUser(_0x223ad3,_0x3969d3[_0x35fc('0x78')])[_0x35fc('0x33')](function(_0x3b2160){_0x43638e=_0x3b2160;logger[_0x35fc('0xe')]('The\x20User\x20ID\x20is:',_0x43638e['id']);return getEndUser(_0x223ad3,_0x586729[_0x35fc('0x79')],_0x586729['destcalleridnum']);})[_0x35fc('0x33')](function(_0x6c5ef){_0x10952a=_0x6c5ef;logger[_0x35fc('0xe')](_0x35fc('0x7a'),_0x10952a[_0x35fc('0x27')]||_0x10952a[_0x35fc('0x2a')]);return getCall(_0x223ad3,_0x43638e,_0x10952a,_0x4d09d4,_0x586729,_0x35fc('0x7b'));})[_0x35fc('0x33')](function(_0x2fed7b){if(_0x2fed7b){logger[_0x35fc('0xe')](_0x35fc('0x6e'),_0x2fed7b['id']);logger['info'](_0x35fc('0x76'),_0x35fc('0x6f'));emit(util[_0x35fc('0x13')](_0x35fc('0x70'),_0x3969d3[_0x35fc('0x62')]),_0x35fc('0x71'),{'uri':util['format'](_0x35fc('0x72'),_0x223ad3[_0x35fc('0x31')],_0x2fed7b['id'])});}})[_0x35fc('0x7c')](function(_0x23206d){logger[_0x35fc('0x43')](_0x35fc('0x76'),JSON[_0x35fc('0x3a')](_0x23206d));});};exports[_0x35fc('0x1f')]=function(_0xa92234,_0x5f23d8,_0x28f02b,_0x5539f0,_0x1c7d01,_0x23be75){var _0x52272e,_0x1ce050;if(_0x1c7d01&&_0x1c7d01[_0x35fc('0x66')]){logger[_0x35fc('0xe')](_0x35fc('0x7d'),_0x35fc('0x68'));_0x5f23d8[_0x35fc('0x6b')]=util[_0x35fc('0x13')](_0x35fc('0x77'),_0x23be75[_0x35fc('0x69')],_0x5f23d8['uniqueid'],md5(_0x5f23d8['uniqueid']));}else{_0x5f23d8['recordingURL']='';}return getUser(_0x23be75)['then'](function(_0x160a6f){_0x52272e=_0x160a6f;logger[_0x35fc('0xe')](_0x35fc('0x7e'),_0x52272e['id']);return getEndUser(_0x23be75,_0x5f23d8[_0x35fc('0x6c')],_0x5f23d8[_0x35fc('0x7f')]);})['then'](function(_0x226fdf){_0x1ce050=_0x226fdf;logger[_0x35fc('0xe')](_0x35fc('0x7a'),_0x1ce050[_0x35fc('0x27')]||_0x1ce050['LEADID']);return getCall(_0x23be75,_0x52272e,_0x1ce050,_0x28f02b,_0x5f23d8,_0x35fc('0x6d'));})[_0x35fc('0x33')](function(_0x32b2df){if(_0x32b2df){logger['info'](_0x35fc('0x6e'),_0x32b2df['id']);}})[_0x35fc('0x7c')](function(_0x319033){logger[_0x35fc('0x43')](_0x35fc('0x7d'),JSON[_0x35fc('0x3a')](_0x319033));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08a9=['message','util','mustache','../../../../config/logger','trigger','exec','data1','toUpperCase','GET','POST','body','data7','render','then','info','format','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20body:\x20%s','data2','statusCode','catch','error','%s\x20%s\x20%s\x20[%s]:%s','name'];(function(_0x58004b,_0x3ef629){var _0x57bd08=function(_0x547484){while(--_0x547484){_0x58004b['push'](_0x58004b['shift']());}};_0x57bd08(++_0x3ef629);}(_0x08a9,0x12c));var _0x908a=function(_0x178001,_0x5af99f){_0x178001=_0x178001-0x0;var _0x2e786e=_0x08a9[_0x178001];return _0x2e786e;};'use strict';var rp=require('request-promise');var util=require(_0x908a('0x0'));var Mustache=require(_0x908a('0x1'));var logger=require(_0x908a('0x2'))(_0x908a('0x3'));exports[_0x908a('0x4')]=function(_0x315dd9,_0x10843f){var _0x55fbc3={'method':_0x315dd9['data1']['toUpperCase'](),'uri':encodeURI(Mustache['render'](_0x315dd9['data2'],_0x10843f)),'json':!![],'resolveWithFullResponse':!![]};switch(_0x315dd9[_0x908a('0x5')][_0x908a('0x6')]()){case _0x908a('0x7'):_0x55fbc3['qs']=_0x10843f;break;case _0x908a('0x8'):_0x55fbc3[_0x908a('0x9')]=_0x315dd9[_0x908a('0xa')]?Mustache[_0x908a('0xb')](_0x315dd9[_0x908a('0xa')],_0x10843f):_0x10843f;break;}rp(_0x55fbc3)[_0x908a('0xc')](function(_0x5ba250){logger[_0x908a('0xd')](util[_0x908a('0xe')](_0x908a('0xf'),_0x315dd9[_0x908a('0x5')],_0x315dd9[_0x908a('0x10')],_0x5ba250[_0x908a('0x11')],_0x5ba250[_0x908a('0x9')]));})[_0x908a('0x12')](function(_0x227fbb){logger[_0x908a('0x13')](util[_0x908a('0xe')](_0x908a('0x14'),_0x315dd9[_0x908a('0x5')],_0x315dd9[_0x908a('0x10')],_0x227fbb[_0x908a('0x11')],_0x227fbb[_0x908a('0x15')],_0x227fbb[_0x908a('0x16')]));});};
\ No newline at end of file
+var _0x6762=['info','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20body:\x20%s','statusCode','catch','error','format','name','message','request-promise','util','../../../../config/logger','trigger','exec','data1','toUpperCase','render','data2','GET','POST','body','data7'];(function(_0x3bd998,_0x5429bb){var _0x1d9afb=function(_0x4e946d){while(--_0x4e946d){_0x3bd998['push'](_0x3bd998['shift']());}};_0x1d9afb(++_0x5429bb);}(_0x6762,0x197));var _0x2676=function(_0x1819bd,_0x15e90e){_0x1819bd=_0x1819bd-0x0;var _0x5b5f76=_0x6762[_0x1819bd];return _0x5b5f76;};'use strict';var rp=require(_0x2676('0x0'));var util=require(_0x2676('0x1'));var Mustache=require('mustache');var logger=require(_0x2676('0x2'))(_0x2676('0x3'));exports[_0x2676('0x4')]=function(_0x3e0c28,_0x4599d1){var _0x549cb9={'method':_0x3e0c28[_0x2676('0x5')][_0x2676('0x6')](),'uri':encodeURI(Mustache[_0x2676('0x7')](_0x3e0c28[_0x2676('0x8')],_0x4599d1)),'json':!![],'resolveWithFullResponse':!![]};switch(_0x3e0c28[_0x2676('0x5')][_0x2676('0x6')]()){case _0x2676('0x9'):_0x549cb9['qs']=_0x4599d1;break;case _0x2676('0xa'):_0x549cb9[_0x2676('0xb')]=_0x3e0c28[_0x2676('0xc')]?Mustache[_0x2676('0x7')](_0x3e0c28[_0x2676('0xc')],_0x4599d1):_0x4599d1;break;}rp(_0x549cb9)['then'](function(_0x46ca78){logger[_0x2676('0xd')](util['format'](_0x2676('0xe'),_0x3e0c28[_0x2676('0x5')],_0x3e0c28[_0x2676('0x8')],_0x46ca78[_0x2676('0xf')],_0x46ca78[_0x2676('0xb')]));})[_0x2676('0x10')](function(_0x4d2a7b){logger[_0x2676('0x11')](util[_0x2676('0x12')]('%s\x20%s\x20%s\x20[%s]:%s',_0x3e0c28['data1'],_0x3e0c28[_0x2676('0x8')],_0x4d2a7b['statusCode'],_0x4d2a7b[_0x2676('0x13')],_0x4d2a7b[_0x2676('0x14')]));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62c8=['then','debug','rpc','routing','error','message','result','catch','exports','../../config/logger','http','Request'];(function(_0x49ec6b,_0x28f7ae){var _0x3e0d25=function(_0x468a4d){while(--_0x468a4d){_0x49ec6b['push'](_0x49ec6b['shift']());}};_0x3e0d25(++_0x28f7ae);}(_0x62c8,0x1ad));var _0x862c=function(_0xa53fa3,_0x32b3b2){_0xa53fa3=_0xa53fa3-0x0;var _0xa86056=_0x62c8[_0xa53fa3];return _0xa86056;};'use strict';var jayson=require('jayson/promise');var BPromise=require('bluebird');var logger=require(_0x862c('0x0'))('routing');var client=jayson['client'][_0x862c('0x1')]({'port':0x2329});client[_0x862c('0x2')]=function(_0x34d6ee,_0x2b628c){return new BPromise(function(_0x67570,_0x2aa8a8){return client['request'](_0x34d6ee,_0x2b628c)[_0x862c('0x3')](function(_0x2c6929){logger[_0x862c('0x4')](_0x862c('0x5'),_0x862c('0x6'),_0x34d6ee,_0x2b628c,_0x2c6929);if(_0x2c6929[_0x862c('0x7')]){logger[_0x862c('0x7')](_0x862c('0x5'),_0x862c('0x6'),_0x34d6ee,_0x2c6929[_0x862c('0x7')][_0x862c('0x8')],_0x2b628c);return _0x2aa8a8(_0x2c6929['error'][_0x862c('0x8')]);}else{return _0x67570(_0x2c6929[_0x862c('0x9')]);}})[_0x862c('0xa')](function(_0x305555){logger[_0x862c('0x7')]('rpc',_0x862c('0x6'),_0x34d6ee,_0x305555,_0x2b628c);return _0x2aa8a8(_0x305555);});});};module[_0x862c('0xb')]=client;
\ No newline at end of file
+var _0x323b=['jayson/promise','../../config/logger','routing','client','Request','request','then','error','rpc','message','result','catch','exports'];(function(_0x58a087,_0x3cd5b4){var _0xe1360d=function(_0x53febc){while(--_0x53febc){_0x58a087['push'](_0x58a087['shift']());}};_0xe1360d(++_0x3cd5b4);}(_0x323b,0x1ad));var _0xb323=function(_0x54b843,_0x459759){_0x54b843=_0x54b843-0x0;var _0x2d0b09=_0x323b[_0x54b843];return _0x2d0b09;};'use strict';var jayson=require(_0xb323('0x0'));var BPromise=require('bluebird');var logger=require(_0xb323('0x1'))(_0xb323('0x2'));var client=jayson[_0xb323('0x3')]['http']({'port':0x2329});client[_0xb323('0x4')]=function(_0x4532c7,_0x3bcab5){return new BPromise(function(_0x2132bd,_0x38f1d0){return client[_0xb323('0x5')](_0x4532c7,_0x3bcab5)[_0xb323('0x6')](function(_0x4620a0){logger['debug']('rpc',_0xb323('0x2'),_0x4532c7,_0x3bcab5,_0x4620a0);if(_0x4620a0[_0xb323('0x7')]){logger[_0xb323('0x7')](_0xb323('0x8'),'routing',_0x4532c7,_0x4620a0[_0xb323('0x7')][_0xb323('0x9')],_0x3bcab5);return _0x38f1d0(_0x4620a0[_0xb323('0x7')]['message']);}else{return _0x2132bd(_0x4620a0[_0xb323('0xa')]);}})[_0xb323('0xb')](function(_0x25dcd1){logger[_0xb323('0x7')](_0xb323('0x8'),'routing',_0x4532c7,_0x25dcd1,_0x3bcab5);return _0x38f1d0(_0x25dcd1);});});};module[_0xb323('0xc')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0dd5=['mailAccounts','catch','log','bluebird','./server','./realtime','./lib/email','./rpc/mailAccount','then','getMailAccounts','initMailAccounts','refresh'];(function(_0x3ffe50,_0x201df4){var _0x353829=function(_0x53a0f7){while(--_0x53a0f7){_0x3ffe50['push'](_0x3ffe50['shift']());}};_0x353829(++_0x201df4);}(_0x0dd5,0xff));var _0x50dd=function(_0x259f7e,_0x51bc58){_0x259f7e=_0x259f7e-0x0;var _0x2507d9=_0x0dd5[_0x259f7e];return _0x2507d9;};'use strict';var BPromise=require(_0x50dd('0x0'));var server=require(_0x50dd('0x1'));var Realtime=require(_0x50dd('0x2'));var EmailChannel=require(_0x50dd('0x3'));var mailAccount=require(_0x50dd('0x4'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise['resolve']()[_0x50dd('0x5')](mailAccount[_0x50dd('0x6')]())[_0x50dd('0x5')](realtime[_0x50dd('0x7')]())[_0x50dd('0x5')](function(){email[_0x50dd('0x8')](realtime[_0x50dd('0x9')]);return realtime;});}function main(){return server['listen'](realtime,email)['then'](function(_0x44b494){return initRealtime();})[_0x50dd('0x5')](function(_0x5a4c3f){return setInterval(initRealtime,0x2710);})[_0x50dd('0xa')](function(_0x4341a8){console[_0x50dd('0xb')](_0x4341a8);});}main();
\ No newline at end of file
+var _0x7bdd=['log','./server','./realtime','./lib/email','./rpc/mailAccount','resolve','getMailAccounts','initMailAccounts','refresh','mailAccounts','listen','then','catch'];(function(_0x3f12af,_0x4d050c){var _0x430123=function(_0x282666){while(--_0x282666){_0x3f12af['push'](_0x3f12af['shift']());}};_0x430123(++_0x4d050c);}(_0x7bdd,0x112));var _0xd7bd=function(_0x1b2d20,_0x4ded3f){_0x1b2d20=_0x1b2d20-0x0;var _0x5c8aed=_0x7bdd[_0x1b2d20];return _0x5c8aed;};'use strict';var BPromise=require('bluebird');var server=require(_0xd7bd('0x0'));var Realtime=require(_0xd7bd('0x1'));var EmailChannel=require(_0xd7bd('0x2'));var mailAccount=require(_0xd7bd('0x3'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0xd7bd('0x4')]()['then'](mailAccount[_0xd7bd('0x5')]())['then'](realtime[_0xd7bd('0x6')]())['then'](function(){email[_0xd7bd('0x7')](realtime[_0xd7bd('0x8')]);return realtime;});}function main(){return server[_0xd7bd('0x9')](realtime,email)['then'](function(_0x34e5fd){return initRealtime();})[_0xd7bd('0xa')](function(_0x288462){return setInterval(initRealtime,0x2710);})[_0xd7bd('0xb')](function(_0x5d11f6){console[_0xd7bd('0xc')](_0x5d11f6);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0be9=['mailAccount:update','refresh','hasOwnProperty','email','handleImapBox','bind','handleImapEmail','end','handleImapEnd','error','handleImapError','disabled','connected','messages','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','lastName','notify','then','Mail\x20accepted\x20from\x20routing','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','lastSync','send','Smtp','verify','verified','exports','moment','bluebird','md5','redis','defaults','socket.io-emitter','./imap','./smtp','info','mailAccounts','imapAccounts','smtp','prototype','emit','name','active','Imap','status','messageStatus','total','isNil','stringify'];(function(_0x2c1d97,_0x39dcf7){var _0x3afdf2=function(_0x23fae4){while(--_0x23fae4){_0x2c1d97['push'](_0x2c1d97['shift']());}};_0x3afdf2(++_0x39dcf7);}(_0x0be9,0x80));var _0x90be=function(_0x1ef399,_0x26b1f8){_0x1ef399=_0x1ef399-0x0;var _0x139784=_0x0be9[_0x1ef399];return _0x139784;};'use strict';var _=require('lodash');var moment=require(_0x90be('0x0'));var BPromise=require(_0x90be('0x1'));var md5=require(_0x90be('0x2'));var config=require('../../../config/environment');var logger=require('../../../config/logger')('email');config[_0x90be('0x3')]=_[_0x90be('0x4')](config[_0x90be('0x3')],{'host':'localhost','port':0x18eb});var io=require(_0x90be('0x5'))(config['redis']);var EmailImap=require(_0x90be('0x6'));var EmailSmtp=require(_0x90be('0x7'));var mailAccount=require('../rpc/mailAccount');var md5Accounts={};function EmailChannel(_0x35c12d){logger[_0x90be('0x8')]('start\x20email\x20channel');this[_0x90be('0x9')]=_0x35c12d[_0x90be('0x9')];this[_0x90be('0xa')]={};this[_0x90be('0xb')]=new EmailSmtp();}EmailChannel[_0x90be('0xc')][_0x90be('0xd')]=function(_0xcd4582){var _0x1ff460=this[_0x90be('0x9')][_0xcd4582];var _0x5c0ccd={'id':_0x1ff460['id'],'name':_0x1ff460[_0x90be('0xe')],'key':_0x1ff460['key'],'active':_0x1ff460[_0x90be('0xf')],'Imap':{'status':_0x1ff460[_0x90be('0x10')][_0x90be('0x11')],'messageStatus':_0x1ff460[_0x90be('0x10')][_0x90be('0x12')],'total':_0x1ff460[_0x90be('0x10')][_0x90be('0x13')]}};if(_[_0x90be('0x14')](md5Accounts[_0xcd4582])){md5Accounts[_0xcd4582]={};}var _0x2300f7=md5(JSON[_0x90be('0x15')](_0x5c0ccd));if(md5Accounts[_0xcd4582][_0x90be('0x2')]!==_0x2300f7){md5Accounts[_0xcd4582][_0x90be('0x2')]=_0x2300f7;io[_0x90be('0xd')](_0x90be('0x16'),_0x5c0ccd);}};EmailChannel[_0x90be('0xc')][_0x90be('0x17')]=function(_0x5737b3){for(var _0x4a17f2 in _0x5737b3){if(_0x5737b3[_0x90be('0x18')](_0x4a17f2)){if(_0x5737b3[_0x4a17f2][_0x90be('0x10')]&&_0x5737b3[_0x4a17f2][_0x90be('0xf')]){var _0x193148=_0x5737b3[_0x4a17f2][_0x90be('0x10')];if(!this[_0x90be('0xa')][_0x90be('0x18')](_0x193148['id'])){this['imapAccounts'][_0x193148['id']]=new EmailImap(_0x193148,_0x5737b3[_0x4a17f2][_0x90be('0x19')]);this[_0x90be('0xa')][_0x193148['id']]['on']('box',this[_0x90be('0x1a')][_0x90be('0x1b')](this,_0x4a17f2));this[_0x90be('0xa')][_0x193148['id']]['on'](_0x90be('0x19'),this[_0x90be('0x1c')]['bind'](this,_0x4a17f2));this[_0x90be('0xa')][_0x193148['id']]['on'](_0x90be('0x1d'),this[_0x90be('0x1e')][_0x90be('0x1b')](this,_0x4a17f2));this[_0x90be('0xa')][_0x193148['id']]['on'](_0x90be('0x1f'),this[_0x90be('0x20')][_0x90be('0x1b')](this,_0x4a17f2));}}else{if(_[_0x90be('0x14')](this[_0x90be('0x9')][_0x4a17f2][_0x90be('0x10')])){this['mailAccounts'][_0x4a17f2][_0x90be('0x10')]={};}this['mailAccounts'][_0x4a17f2][_0x90be('0x10')][_0x90be('0x11')]=_0x90be('0x21');this[_0x90be('0x9')][_0x4a17f2]['Imap']['messageStatus']='';this[_0x90be('0xd')](_0x4a17f2);}}}};EmailChannel[_0x90be('0xc')][_0x90be('0x1a')]=function(_0x141faf,_0x47d072){if(this[_0x90be('0x9')][_0x141faf]){this[_0x90be('0x9')][_0x141faf][_0x90be('0x10')][_0x90be('0x11')]=_0x90be('0x22');this[_0x90be('0x9')][_0x141faf][_0x90be('0x10')]['messageStatus']=_0x47d072[_0x90be('0xe')];if(_0x47d072[_0x90be('0x23')]){this[_0x90be('0x9')][_0x141faf][_0x90be('0x10')][_0x90be('0x13')]=_0x47d072[_0x90be('0x23')][_0x90be('0x13')];}return this['emit'](_0x141faf);}};EmailChannel['prototype'][_0x90be('0x1c')]=function(_0x53049f,_0x46a9e4){logger[_0x90be('0x8')](_0x90be('0x24'),_0x46a9e4[_0x90be('0x25')],_0x46a9e4[_0x90be('0x26')],_0x46a9e4['from'],_0x53049f);if(this[_0x90be('0x9')][_0x53049f]){return mailAccount[_0x90be('0x27')](_0x53049f,_0x46a9e4)[_0x90be('0x28')](function(_0x3a8dac){if(_0x3a8dac){logger[_0x90be('0x8')](_0x90be('0x29'));}})[_0x90be('0x2a')](function(_0xf13f83){logger['error'](_0x90be('0x2b'),JSON[_0x90be('0x15')](_0xf13f83));});}};EmailChannel[_0x90be('0xc')][_0x90be('0x1e')]=function(_0x39a355){if(this[_0x90be('0x9')][_0x39a355]&&this[_0x90be('0x9')][_0x39a355][_0x90be('0x10')]){if(this[_0x90be('0xa')][this['mailAccounts'][_0x39a355]['Imap']['id']]){delete this[_0x90be('0xa')][this[_0x90be('0x9')][_0x39a355][_0x90be('0x10')]['id']];}this[_0x90be('0x9')][_0x39a355][_0x90be('0x10')][_0x90be('0x2c')]=moment();this[_0x90be('0xd')](_0x39a355);}};EmailChannel[_0x90be('0xc')][_0x90be('0x20')]=function(_0x432db0,_0x236363){if(this['mailAccounts'][_0x432db0]){this[_0x90be('0x9')][_0x432db0]['Imap']['status']=_0x90be('0x1f');this['mailAccounts'][_0x432db0]['Imap'][_0x90be('0x12')]=_0x236363;return this[_0x90be('0xd')](_0x432db0);}};EmailChannel[_0x90be('0xc')]['sendMail']=function(_0x539ee3,_0x2b6145){return this[_0x90be('0xb')][_0x90be('0x2d')](_0x539ee3,_0x2b6145);};EmailChannel['prototype']['verifySmtp']=function(_0x5d32d8){var _0x250eaa=this;if(this[_0x90be('0x9')][_0x5d32d8['id']]){if(_[_0x90be('0x14')](this[_0x90be('0x9')][_0x5d32d8['id']]['Smtp'])){this[_0x90be('0x9')][_0x5d32d8['id']]['Smtp']={};}this[_0x90be('0x9')][_0x5d32d8['id']][_0x90be('0x2e')][_0x90be('0x2c')]=moment();return new BPromise(function(_0x311528,_0x45f4ab){return _0x250eaa[_0x90be('0xb')][_0x90be('0x2f')](_0x5d32d8)[_0x90be('0x28')](function(_0x268c45){_0x250eaa[_0x90be('0x9')][_0x5d32d8['id']][_0x90be('0x2e')][_0x90be('0x11')]=_0x90be('0x30');_0x250eaa[_0x90be('0x9')][_0x5d32d8['id']][_0x90be('0x2e')]['messageStatus']='';_0x250eaa[_0x90be('0xd')](_0x5d32d8['id']);_0x311528(_0x268c45);})['catch'](function(_0x260e75){_0x250eaa['mailAccounts'][_0x5d32d8['id']]['Smtp'][_0x90be('0x11')]='error';_0x250eaa[_0x90be('0x9')][_0x5d32d8['id']][_0x90be('0x2e')]['messageStatus']=_0x260e75;_0x250eaa[_0x90be('0xd')](_0x5d32d8['id']);_0x45f4ab(_0x260e75);});});}return this[_0x90be('0xb')][_0x90be('0x2f')](_0x5d32d8);};module[_0x90be('0x31')]=EmailChannel;
\ No newline at end of file
+var _0xf61e=['email','redis','defaults','localhost','./imap','../rpc/mailAccount','info','mailAccounts','imapAccounts','smtp','prototype','emit','name','key','active','Imap','status','messageStatus','total','isNil','stringify','mailAccount:update','hasOwnProperty','box','bind','handleImapEmail','end','handleImapError','handleImapBox','connected','messages','firstName','lastName','Mail\x20accepted\x20from\x20routing','error','Mail\x20not\x20accepted\x20from\x20routing\x20%s','handleImapEnd','lastSync','sendMail','send','Smtp','verified','catch','exports','lodash','moment','bluebird','md5','ioredis','../../../config/environment','../../../config/logger'];(function(_0x5b2038,_0xeeecb4){var _0x1245d0=function(_0x24b47c){while(--_0x24b47c){_0x5b2038['push'](_0x5b2038['shift']());}};_0x1245d0(++_0xeeecb4);}(_0xf61e,0x191));var _0xef61=function(_0x9865e2,_0x118807){_0x9865e2=_0x9865e2-0x0;var _0x455556=_0xf61e[_0x9865e2];return _0x455556;};'use strict';var _=require(_0xef61('0x0'));var moment=require(_0xef61('0x1'));var BPromise=require(_0xef61('0x2'));var md5=require(_0xef61('0x3'));var Redis=require(_0xef61('0x4'));var config=require(_0xef61('0x5'));var logger=require(_0xef61('0x6'))(_0xef61('0x7'));config[_0xef61('0x8')]=_[_0xef61('0x9')](config[_0xef61('0x8')],{'host':_0xef61('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xef61('0x8')]));var EmailImap=require(_0xef61('0xb'));var EmailSmtp=require('./smtp');var mailAccount=require(_0xef61('0xc'));var md5Accounts={};function EmailChannel(_0x277fa1){logger[_0xef61('0xd')]('start\x20email\x20channel');this['mailAccounts']=_0x277fa1[_0xef61('0xe')];this[_0xef61('0xf')]={};this[_0xef61('0x10')]=new EmailSmtp();}EmailChannel[_0xef61('0x11')][_0xef61('0x12')]=function(_0xdcd707){var _0x1394af=this[_0xef61('0xe')][_0xdcd707];var _0x237f43={'id':_0x1394af['id'],'name':_0x1394af[_0xef61('0x13')],'key':_0x1394af[_0xef61('0x14')],'active':_0x1394af[_0xef61('0x15')],'Imap':{'status':_0x1394af[_0xef61('0x16')][_0xef61('0x17')],'messageStatus':_0x1394af['Imap'][_0xef61('0x18')],'total':_0x1394af['Imap'][_0xef61('0x19')]}};if(_[_0xef61('0x1a')](md5Accounts[_0xdcd707])){md5Accounts[_0xdcd707]={};}var _0x370ee0=md5(JSON[_0xef61('0x1b')](_0x237f43));if(md5Accounts[_0xdcd707]['md5']!==_0x370ee0){md5Accounts[_0xdcd707][_0xef61('0x3')]=_0x370ee0;io[_0xef61('0x12')](_0xef61('0x1c'),_0x237f43);}};EmailChannel[_0xef61('0x11')]['refresh']=function(_0x66fa62){for(var _0xbe23a7 in _0x66fa62){if(_0x66fa62['hasOwnProperty'](_0xbe23a7)){if(_0x66fa62[_0xbe23a7][_0xef61('0x16')]&&_0x66fa62[_0xbe23a7][_0xef61('0x15')]){var _0x36f558=_0x66fa62[_0xbe23a7][_0xef61('0x16')];if(!this[_0xef61('0xf')][_0xef61('0x1d')](_0x36f558['id'])){this[_0xef61('0xf')][_0x36f558['id']]=new EmailImap(_0x36f558,_0x66fa62[_0xbe23a7]['email']);this[_0xef61('0xf')][_0x36f558['id']]['on'](_0xef61('0x1e'),this['handleImapBox'][_0xef61('0x1f')](this,_0xbe23a7));this[_0xef61('0xf')][_0x36f558['id']]['on'](_0xef61('0x7'),this[_0xef61('0x20')][_0xef61('0x1f')](this,_0xbe23a7));this[_0xef61('0xf')][_0x36f558['id']]['on'](_0xef61('0x21'),this['handleImapEnd']['bind'](this,_0xbe23a7));this[_0xef61('0xf')][_0x36f558['id']]['on']('error',this[_0xef61('0x22')]['bind'](this,_0xbe23a7));}}else{if(_['isNil'](this[_0xef61('0xe')][_0xbe23a7]['Imap'])){this['mailAccounts'][_0xbe23a7][_0xef61('0x16')]={};}this[_0xef61('0xe')][_0xbe23a7][_0xef61('0x16')][_0xef61('0x17')]='disabled';this[_0xef61('0xe')][_0xbe23a7]['Imap'][_0xef61('0x18')]='';this[_0xef61('0x12')](_0xbe23a7);}}}};EmailChannel[_0xef61('0x11')][_0xef61('0x23')]=function(_0x2155f1,_0x45ece2){if(this[_0xef61('0xe')][_0x2155f1]){this[_0xef61('0xe')][_0x2155f1][_0xef61('0x16')][_0xef61('0x17')]=_0xef61('0x24');this[_0xef61('0xe')][_0x2155f1][_0xef61('0x16')][_0xef61('0x18')]=_0x45ece2[_0xef61('0x13')];if(_0x45ece2[_0xef61('0x25')]){this[_0xef61('0xe')][_0x2155f1][_0xef61('0x16')][_0xef61('0x19')]=_0x45ece2[_0xef61('0x25')][_0xef61('0x19')];}return this[_0xef61('0x12')](_0x2155f1);}};EmailChannel['prototype']['handleImapEmail']=function(_0x38b522,_0x36713e){logger[_0xef61('0xd')]('New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s',_0x36713e[_0xef61('0x26')],_0x36713e[_0xef61('0x27')],_0x36713e['from'],_0x38b522);if(this[_0xef61('0xe')][_0x38b522]){return mailAccount['notify'](_0x38b522,_0x36713e)['then'](function(_0x307b70){if(_0x307b70){logger['info'](_0xef61('0x28'));}})['catch'](function(_0x41d9e9){logger[_0xef61('0x29')](_0xef61('0x2a'),JSON[_0xef61('0x1b')](_0x41d9e9));});}};EmailChannel[_0xef61('0x11')][_0xef61('0x2b')]=function(_0xf8cca2){if(this[_0xef61('0xe')][_0xf8cca2]&&this[_0xef61('0xe')][_0xf8cca2][_0xef61('0x16')]){if(this['imapAccounts'][this[_0xef61('0xe')][_0xf8cca2][_0xef61('0x16')]['id']]){delete this[_0xef61('0xf')][this[_0xef61('0xe')][_0xf8cca2][_0xef61('0x16')]['id']];}this['mailAccounts'][_0xf8cca2][_0xef61('0x16')][_0xef61('0x2c')]=moment();this[_0xef61('0x12')](_0xf8cca2);}};EmailChannel['prototype']['handleImapError']=function(_0x509cbc,_0x1bd9af){if(this['mailAccounts'][_0x509cbc]){this['mailAccounts'][_0x509cbc]['Imap'][_0xef61('0x17')]=_0xef61('0x29');this[_0xef61('0xe')][_0x509cbc]['Imap']['messageStatus']=_0x1bd9af;return this['emit'](_0x509cbc);}};EmailChannel[_0xef61('0x11')][_0xef61('0x2d')]=function(_0x5e1128,_0x41aaeb){return this[_0xef61('0x10')][_0xef61('0x2e')](_0x5e1128,_0x41aaeb);};EmailChannel[_0xef61('0x11')]['verifySmtp']=function(_0xbc7323){var _0x184063=this;if(this[_0xef61('0xe')][_0xbc7323['id']]){if(_[_0xef61('0x1a')](this['mailAccounts'][_0xbc7323['id']]['Smtp'])){this[_0xef61('0xe')][_0xbc7323['id']][_0xef61('0x2f')]={};}this[_0xef61('0xe')][_0xbc7323['id']]['Smtp'][_0xef61('0x2c')]=moment();return new BPromise(function(_0x361705,_0x1d8a77){return _0x184063[_0xef61('0x10')]['verify'](_0xbc7323)['then'](function(_0x52bbe3){_0x184063[_0xef61('0xe')][_0xbc7323['id']][_0xef61('0x2f')][_0xef61('0x17')]=_0xef61('0x30');_0x184063[_0xef61('0xe')][_0xbc7323['id']][_0xef61('0x2f')][_0xef61('0x18')]='';_0x184063['emit'](_0xbc7323['id']);_0x361705(_0x52bbe3);})[_0xef61('0x31')](function(_0x2f1b49){_0x184063[_0xef61('0xe')][_0xbc7323['id']][_0xef61('0x2f')]['status']=_0xef61('0x29');_0x184063[_0xef61('0xe')][_0xbc7323['id']][_0xef61('0x2f')][_0xef61('0x18')]=_0x2f1b49;_0x184063[_0xef61('0x12')](_0xbc7323['id']);_0x1d8a77(_0x2f1b49);});});}return this[_0xef61('0x10')]['verify'](_0xbc7323);};module[_0xef61('0x32')]=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa629=['autotls','required','getHost','anonymous@xcally.com','openBox','handleOpenBox','emit','box','readUnseen','handleCloseBox','search','handleReadUnseen','length','message','handleFetchError','handleFetchEnd','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','stringify','textCode','hasOwnProperty','upperFirst','exports','path','util','lodash','randomstring','mailparser','events','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX','account','getAccount','imap','once','ready','bind','end','handleEnd','error','handleError','connect','prototype','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls'];(function(_0x100471,_0x224c66){var _0x3ac4cb=function(_0x14e31e){while(--_0x14e31e){_0x100471['push'](_0x100471['shift']());}};_0x3ac4cb(++_0x224c66);}(_0xa629,0x158));var _0x9a62=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xa629[_0x321bb2];return _0x9c12ed;};'use strict';var fs=require('fs');var path=require(_0x9a62('0x0'));var util=require(_0x9a62('0x1'));var Imap=require('imap');var _=require(_0x9a62('0x2'));var rs=require(_0x9a62('0x3'));var simpleParser=require(_0x9a62('0x4'))['simpleParser'];var EventEmitter=require(_0x9a62('0x5'))[_0x9a62('0x6')];var utils=require(_0x9a62('0x7'));var logger=require(_0x9a62('0x8'))(_0x9a62('0x9'));function EmailImap(_0x65ba1a,_0x153b66){this[_0x9a62('0xa')]=_0x9a62('0xb');this[_0x9a62('0xc')]=this[_0x9a62('0xd')](_0x65ba1a,_0x153b66);this[_0x9a62('0xe')]=new Imap(this['account']);this[_0x9a62('0xe')][_0x9a62('0xf')](_0x9a62('0x10'),this['handleReady'][_0x9a62('0x11')](this));this[_0x9a62('0xe')]['once'](_0x9a62('0x12'),this[_0x9a62('0x13')][_0x9a62('0x11')](this));this[_0x9a62('0xe')]['on'](_0x9a62('0x14'),this[_0x9a62('0x15')]['bind'](this));this[_0x9a62('0xe')][_0x9a62('0x16')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x9a62('0x17')][_0x9a62('0xd')]=function(_0x5c2c18,_0x595794){var _0x26f096={'connTimeout':_0x5c2c18['connTimeout']?_0x5c2c18[_0x9a62('0x18')]*0x3e8:0x2710,'authTimeout':_0x5c2c18['authTimeout']?_0x5c2c18[_0x9a62('0x19')]*0x3e8:0x1388};if(_[_0x9a62('0x1a')](_0x5c2c18[_0x9a62('0x1b')])){if(_0x5c2c18[_0x9a62('0x1c')]){_0x26f096[_0x9a62('0x1d')]=_0x5c2c18[_0x9a62('0x1d')];_0x26f096['password']=_0x5c2c18[_0x9a62('0x1e')];}_0x26f096[_0x9a62('0x1f')]=_0x5c2c18[_0x9a62('0x1f')];_0x26f096[_0x9a62('0x20')]=_0x5c2c18[_0x9a62('0x20')]||0x3e1;if(_0x5c2c18[_0x9a62('0x21')]){_0x26f096[_0x9a62('0x21')]=!![];}else{_0x26f096[_0x9a62('0x21')]=![];_0x26f096[_0x9a62('0x22')]=_0x9a62('0x23');}}else{_0x26f096['user']=_0x5c2c18[_0x9a62('0x1d')];_0x26f096[_0x9a62('0x1e')]=_0x5c2c18[_0x9a62('0x1e')];_0x26f096[_0x9a62('0x1f')]=utils[_0x9a62('0x24')](_0x5c2c18[_0x9a62('0x1b')]);_0x26f096[_0x9a62('0x20')]=0x3e1;_0x26f096['tls']=!![];}_0x26f096[_0x9a62('0x9')]=_0x595794||_0x5c2c18[_0x9a62('0x1d')]||_0x9a62('0x25');return _0x26f096;};EmailImap[_0x9a62('0x17')]['handleReady']=function(){this[_0x9a62('0xe')][_0x9a62('0x26')](this[_0x9a62('0xa')],![],this[_0x9a62('0x27')][_0x9a62('0x11')](this));};EmailImap[_0x9a62('0x17')][_0x9a62('0x27')]=function(_0x1d0b2d,_0x690d7c){if(_0x1d0b2d){this['handleError'](_0x1d0b2d,!![]);}else{this[_0x9a62('0x28')](_0x9a62('0x29'),_0x690d7c);this[_0x9a62('0x2a')]();}};EmailImap[_0x9a62('0x17')][_0x9a62('0x2b')]=function(_0x555217){if(_0x555217){this[_0x9a62('0x15')](_0x555217,!![]);}else{this['imap'][_0x9a62('0x12')]();}};EmailImap['prototype'][_0x9a62('0x2a')]=function(){this[_0x9a62('0xe')][_0x9a62('0x2c')](['UNSEEN'],this[_0x9a62('0x2d')]['bind'](this));};EmailImap[_0x9a62('0x17')][_0x9a62('0x2d')]=function(_0x2c118b,_0x24b738){if(_0x2c118b){this[_0x9a62('0x15')](_0x2c118b,!![]);}else{if(_0x24b738[_0x9a62('0x2e')]){try{var _0xc7db42=this['imap']['fetch'](_0x24b738,{'bodies':'','markSeen':!![]});_0xc7db42['on'](_0x9a62('0x2f'),this['handleFetchMessage'][_0x9a62('0x11')](this));_0xc7db42[_0x9a62('0xf')]('error',this[_0x9a62('0x30')]['bind'](this));_0xc7db42['once'](_0x9a62('0x12'),this[_0x9a62('0x31')][_0x9a62('0x11')](this));}catch(_0x4c2e11){logger[_0x9a62('0x14')](_0x4c2e11);}}else{this[_0x9a62('0xe')][_0x9a62('0x32')](!![],this['handleCloseBox'][_0x9a62('0x11')](this));}}};EmailImap[_0x9a62('0x17')]['handleFetchMessage']=function(_0x23baf2,_0x4fc273){_0x23baf2['on'](_0x9a62('0x33'),this[_0x9a62('0x34')][_0x9a62('0x11')](this));_0x23baf2[_0x9a62('0xf')](_0x9a62('0x35'),this[_0x9a62('0x36')]['bind'](this));_0x23baf2[_0x9a62('0xf')](_0x9a62('0x12'),this[_0x9a62('0x37')][_0x9a62('0x11')](this));};EmailImap['prototype'][_0x9a62('0x34')]=function(_0x553cc1,_0x1c405d){simpleParser(_0x553cc1,this['handleSimpleParser'][_0x9a62('0x11')](this));};EmailImap[_0x9a62('0x17')][_0x9a62('0x36')]=function(_0x98d6aa){};EmailImap[_0x9a62('0x17')][_0x9a62('0x37')]=function(){};EmailImap['prototype'][_0x9a62('0x38')]=function(_0x51c038,_0x48963b){if(_0x51c038){logger[_0x9a62('0x14')](_0x51c038);}else{var _0xb5634a=this;utils[_0x9a62('0x39')](this[_0x9a62('0xc')],_0x48963b,function(_0x331d98){_0xb5634a[_0x9a62('0x28')]('email',_0x331d98);});}};EmailImap[_0x9a62('0x17')]['handleFetchEnd']=function(){this[_0x9a62('0xe')][_0x9a62('0x32')](!![],this[_0x9a62('0x2b')][_0x9a62('0x11')](this));};EmailImap[_0x9a62('0x17')][_0x9a62('0x30')]=function(_0x3619ad){this[_0x9a62('0x15')](_0x3619ad);this[_0x9a62('0xe')]['closeBox'](!![],this[_0x9a62('0x2b')][_0x9a62('0x11')](this));};EmailImap[_0x9a62('0x17')]['handleEnd']=function(){this[_0x9a62('0x28')](_0x9a62('0x12'));};EmailImap['prototype'][_0x9a62('0x15')]=function(_0x1f2ec6,_0x3ef69c){logger[_0x9a62('0x14')](_0x9a62('0x15'),this[_0x9a62('0xc')][_0x9a62('0x9')],JSON[_0x9a62('0x3a')](_0x1f2ec6));var _0x2eda8a='';if(_0x1f2ec6){if(_0x1f2ec6[_0x9a62('0x3b')]){_0x2eda8a=_0x1f2ec6[_0x9a62('0x3b')];}else{for(var _0xd29e61 in _0x1f2ec6){if(_0x1f2ec6[_0x9a62('0x3c')](_0xd29e61)){_0x2eda8a+=_[_0x9a62('0x3d')](_0xd29e61)+':\x20'+_0x1f2ec6[_0xd29e61]+'\x0a';}}}}if(_0x3ef69c){this[_0x9a62('0xe')][_0x9a62('0x12')]();}else{this[_0x9a62('0x28')](_0x9a62('0x14'),_0x2eda8a);this[_0x9a62('0x28')](_0x9a62('0x12'));}};module[_0x9a62('0x3e')]=EmailImap;
\ No newline at end of file
+var _0xbf70=['handleMessageBody','attributes','handleMessageEnd','handleSimpleParser','handleMessageAttributes','parser','stringify','textCode','hasOwnProperty','exports','path','util','imap','randomstring','mailparser','events','../../../config/logger','email','mailbox','INBOX','getAccount','account','once','ready','handleReady','bind','handleEnd','error','handleError','connect','inherits','connTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','anonymous@xcally.com','prototype','openBox','handleOpenBox','emit','box','handleCloseBox','end','search','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','body'];(function(_0x159704,_0x36bba4){var _0x68693f=function(_0x3c23bf){while(--_0x3c23bf){_0x159704['push'](_0x159704['shift']());}};_0x68693f(++_0x36bba4);}(_0xbf70,0x102));var _0x0bf7=function(_0x353672,_0x1cf6f4){_0x353672=_0x353672-0x0;var _0x311452=_0xbf70[_0x353672];return _0x311452;};'use strict';var fs=require('fs');var path=require(_0x0bf7('0x0'));var util=require(_0x0bf7('0x1'));var Imap=require(_0x0bf7('0x2'));var _=require('lodash');var rs=require(_0x0bf7('0x3'));var simpleParser=require(_0x0bf7('0x4'))['simpleParser'];var EventEmitter=require(_0x0bf7('0x5'))['EventEmitter'];var utils=require('./utils');var logger=require(_0x0bf7('0x6'))(_0x0bf7('0x7'));function EmailImap(_0x1606e2,_0x5319fc){this[_0x0bf7('0x8')]=_0x0bf7('0x9');this['account']=this[_0x0bf7('0xa')](_0x1606e2,_0x5319fc);this[_0x0bf7('0x2')]=new Imap(this[_0x0bf7('0xb')]);this[_0x0bf7('0x2')][_0x0bf7('0xc')](_0x0bf7('0xd'),this[_0x0bf7('0xe')][_0x0bf7('0xf')](this));this[_0x0bf7('0x2')][_0x0bf7('0xc')]('end',this[_0x0bf7('0x10')][_0x0bf7('0xf')](this));this[_0x0bf7('0x2')]['on'](_0x0bf7('0x11'),this[_0x0bf7('0x12')][_0x0bf7('0xf')](this));this[_0x0bf7('0x2')][_0x0bf7('0x13')]();}util[_0x0bf7('0x14')](EmailImap,EventEmitter);EmailImap['prototype']['getAccount']=function(_0x37ccc2,_0x2d4cdc){var _0x43b854={'connTimeout':_0x37ccc2[_0x0bf7('0x15')]?_0x37ccc2[_0x0bf7('0x15')]*0x3e8:0x2710,'authTimeout':_0x37ccc2['authTimeout']?_0x37ccc2['authTimeout']*0x3e8:0x1388};if(_[_0x0bf7('0x16')](_0x37ccc2[_0x0bf7('0x17')])){if(_0x37ccc2[_0x0bf7('0x18')]){_0x43b854[_0x0bf7('0x19')]=_0x37ccc2[_0x0bf7('0x19')];_0x43b854[_0x0bf7('0x1a')]=_0x37ccc2['password'];}_0x43b854['host']=_0x37ccc2[_0x0bf7('0x1b')];_0x43b854['port']=_0x37ccc2[_0x0bf7('0x1c')]||0x3e1;if(_0x37ccc2[_0x0bf7('0x1d')]){_0x43b854['tls']=!![];}else{_0x43b854[_0x0bf7('0x1d')]=![];_0x43b854[_0x0bf7('0x1e')]=_0x0bf7('0x1f');}}else{_0x43b854[_0x0bf7('0x19')]=_0x37ccc2[_0x0bf7('0x19')];_0x43b854['password']=_0x37ccc2['password'];_0x43b854['host']=utils[_0x0bf7('0x20')](_0x37ccc2[_0x0bf7('0x17')]);_0x43b854[_0x0bf7('0x1c')]=0x3e1;_0x43b854[_0x0bf7('0x1d')]=!![];}_0x43b854[_0x0bf7('0x7')]=_0x2d4cdc||_0x37ccc2[_0x0bf7('0x19')]||_0x0bf7('0x21');return _0x43b854;};EmailImap[_0x0bf7('0x22')][_0x0bf7('0xe')]=function(){this[_0x0bf7('0x2')][_0x0bf7('0x23')](this[_0x0bf7('0x8')],![],this[_0x0bf7('0x24')][_0x0bf7('0xf')](this));};EmailImap[_0x0bf7('0x22')]['handleOpenBox']=function(_0x495be9,_0x1a7f60){if(_0x495be9){this['handleError'](_0x495be9,!![]);}else{this[_0x0bf7('0x25')](_0x0bf7('0x26'),_0x1a7f60);this['readUnseen']();}};EmailImap[_0x0bf7('0x22')][_0x0bf7('0x27')]=function(_0x2796d3){if(_0x2796d3){this[_0x0bf7('0x12')](_0x2796d3,!![]);}else{this[_0x0bf7('0x2')][_0x0bf7('0x28')]();}};EmailImap[_0x0bf7('0x22')]['readUnseen']=function(){this[_0x0bf7('0x2')][_0x0bf7('0x29')]([_0x0bf7('0x2a')],this[_0x0bf7('0x2b')][_0x0bf7('0xf')](this));};EmailImap[_0x0bf7('0x22')][_0x0bf7('0x2b')]=function(_0x5e6fb9,_0x2b5f11){if(_0x5e6fb9){this[_0x0bf7('0x12')](_0x5e6fb9,!![]);}else{if(_0x2b5f11[_0x0bf7('0x2c')]){try{var _0x5bfddc=this[_0x0bf7('0x2')][_0x0bf7('0x2d')](_0x2b5f11,{'bodies':'','markSeen':!![]});_0x5bfddc['on'](_0x0bf7('0x2e'),this[_0x0bf7('0x2f')][_0x0bf7('0xf')](this));_0x5bfddc[_0x0bf7('0xc')](_0x0bf7('0x11'),this[_0x0bf7('0x30')][_0x0bf7('0xf')](this));_0x5bfddc['once']('end',this[_0x0bf7('0x31')]['bind'](this));}catch(_0x207317){logger[_0x0bf7('0x11')](_0x207317);}}else{this['imap'][_0x0bf7('0x32')](!![],this[_0x0bf7('0x27')][_0x0bf7('0xf')](this));}}};EmailImap['prototype'][_0x0bf7('0x2f')]=function(_0x202a70,_0x5aae8b){_0x202a70['on'](_0x0bf7('0x33'),this[_0x0bf7('0x34')][_0x0bf7('0xf')](this));_0x202a70['once'](_0x0bf7('0x35'),this['handleMessageAttributes'][_0x0bf7('0xf')](this));_0x202a70[_0x0bf7('0xc')](_0x0bf7('0x28'),this[_0x0bf7('0x36')][_0x0bf7('0xf')](this));};EmailImap[_0x0bf7('0x22')][_0x0bf7('0x34')]=function(_0x5b6cf0,_0x14fd70){simpleParser(_0x5b6cf0,this[_0x0bf7('0x37')]['bind'](this));};EmailImap['prototype'][_0x0bf7('0x38')]=function(_0x20fea6){};EmailImap['prototype']['handleMessageEnd']=function(){};EmailImap['prototype'][_0x0bf7('0x37')]=function(_0x4e6713,_0x13e1c5){if(_0x4e6713){logger['error'](_0x4e6713);}else{var _0x32276c=this;utils[_0x0bf7('0x39')](this[_0x0bf7('0xb')],_0x13e1c5,function(_0x4cde86){_0x32276c[_0x0bf7('0x25')](_0x0bf7('0x7'),_0x4cde86);});}};EmailImap['prototype'][_0x0bf7('0x31')]=function(){this[_0x0bf7('0x2')][_0x0bf7('0x32')](!![],this[_0x0bf7('0x27')][_0x0bf7('0xf')](this));};EmailImap[_0x0bf7('0x22')][_0x0bf7('0x30')]=function(_0x2836ed){this['handleError'](_0x2836ed);this[_0x0bf7('0x2')][_0x0bf7('0x32')](!![],this[_0x0bf7('0x27')]['bind'](this));};EmailImap[_0x0bf7('0x22')]['handleEnd']=function(){this[_0x0bf7('0x25')](_0x0bf7('0x28'));};EmailImap[_0x0bf7('0x22')][_0x0bf7('0x12')]=function(_0x1bf4af,_0x50d924){logger[_0x0bf7('0x11')](_0x0bf7('0x12'),this['account'][_0x0bf7('0x7')],JSON[_0x0bf7('0x3a')](_0x1bf4af));var _0x1fb01c='';if(_0x1bf4af){if(_0x1bf4af[_0x0bf7('0x3b')]){_0x1fb01c=_0x1bf4af[_0x0bf7('0x3b')];}else{for(var _0x5c3d54 in _0x1bf4af){if(_0x1bf4af[_0x0bf7('0x3c')](_0x5c3d54)){_0x1fb01c+=_['upperFirst'](_0x5c3d54)+':\x20'+_0x1bf4af[_0x5c3d54]+'\x0a';}}}}if(_0x50d924){this[_0x0bf7('0x2')][_0x0bf7('0x28')]();}else{this['emit'](_0x0bf7('0x11'),_0x1fb01c);this['emit'](_0x0bf7('0x28'));}};module[_0x0bf7('0x3d')]=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36f1=['bluebird','nodemailer-plugin-inline-base64','prototype','send','createTransport','use','compile','sendMail','toString','verify','Not\x20verifired','exports','nodemailer'];(function(_0xd80435,_0x1393f9){var _0x58a4b7=function(_0x2304e7){while(--_0x2304e7){_0xd80435['push'](_0xd80435['shift']());}};_0x58a4b7(++_0x1393f9);}(_0x36f1,0x137));var _0x136f=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0x36f1[_0x2b5eae];return _0x5f3ac9;};'use strict';var nodemailer=require(_0x136f('0x0'));var BPromise=require(_0x136f('0x1'));var inlineBase64=require(_0x136f('0x2'));function EmailSmtp(){}EmailSmtp[_0x136f('0x3')][_0x136f('0x4')]=function(_0xd6695a,_0x103583){return new BPromise(function(_0x4b9c3b,_0xd62f4a){var _0x422581=nodemailer[_0x136f('0x5')](_0xd6695a);_0x422581[_0x136f('0x6')](_0x136f('0x7'),inlineBase64());_0x422581[_0x136f('0x8')](_0x103583,function(_0x1588e8,_0x174308){if(_0x1588e8){_0xd62f4a(_0x1588e8[_0x136f('0x9')]());}else{_0x4b9c3b(_0x174308);}});});};EmailSmtp[_0x136f('0x3')][_0x136f('0xa')]=function(_0x1a36a3){return new BPromise(function(_0x5e8af2,_0x4cd441){var _0x3c1256=nodemailer['createTransport'](_0x1a36a3);_0x3c1256['verify'](function(_0xa5e2d8,_0xe8e64a){if(_0xa5e2d8){_0x4cd441(_0xa5e2d8[_0x136f('0x9')]());}else{if(_0xe8e64a){_0x5e8af2(_0xe8e64a);}else{_0x4cd441(_0x136f('0xb'));}}});});};module[_0x136f('0xc')]=EmailSmtp;
\ No newline at end of file
+var _0x5a9d=['exports','nodemailer','nodemailer-plugin-inline-base64','prototype','send','createTransport','use','compile','toString','verify'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x5a9d,0x169));var _0xd5a9=function(_0x5c06af,_0x4cf3a4){_0x5c06af=_0x5c06af-0x0;var _0x27993d=_0x5a9d[_0x5c06af];return _0x27993d;};'use strict';var nodemailer=require(_0xd5a9('0x0'));var BPromise=require('bluebird');var inlineBase64=require(_0xd5a9('0x1'));function EmailSmtp(){}EmailSmtp[_0xd5a9('0x2')][_0xd5a9('0x3')]=function(_0x10a5fa,_0x410220){return new BPromise(function(_0xf426eb,_0xeaf365){var _0x4dee1e=nodemailer[_0xd5a9('0x4')](_0x10a5fa);_0x4dee1e[_0xd5a9('0x5')](_0xd5a9('0x6'),inlineBase64());_0x4dee1e['sendMail'](_0x410220,function(_0x5ad11a,_0x23bd57){if(_0x5ad11a){_0xeaf365(_0x5ad11a[_0xd5a9('0x7')]());}else{_0xf426eb(_0x23bd57);}});});};EmailSmtp[_0xd5a9('0x2')]['verify']=function(_0x1406be){return new BPromise(function(_0x2df85a,_0x331dab){var _0x500597=nodemailer[_0xd5a9('0x4')](_0x1406be);_0x500597[_0xd5a9('0x8')](function(_0x45c36c,_0x22d302){if(_0x45c36c){_0x331dab(_0x45c36c[_0xd5a9('0x7')]());}else{if(_0x22d302){_0x2df85a(_0x22d302);}else{_0x331dab('Not\x20verifired');}}});});};module[_0xd5a9('0x9')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc04=['body','<a\x20target=\x22_blank\x22\x20','originTo','message','originCc','includes','attachments','attach','type','filename','attachment-','format','now','join','root','server/files/attachments/','push','contentType','parser','from','subject','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','first','content','Attachments','Title','Data','<p>Empty\x20message</p>','getHost','gmail','imap.gmail.com','yahoo','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','path','../../../config/logger','email','../../../config/environment','head','value','address','generate','@xcally.com','name','split','length','Anonymous','pop','isEmpty','html','test','replace','textAsHtml'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xcc04,0x1ab));var _0x4cc0=function(_0x3c9706,_0x372f68){_0x3c9706=_0x3c9706-0x0;var _0x144f63=_0xcc04[_0x3c9706];return _0x144f63;};'use strict';var _=require(_0x4cc0('0x0'));var moment=require(_0x4cc0('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x4cc0('0x2'));var util=require('util');var tnef=require('node-tnef');var logger=require(_0x4cc0('0x3'))(_0x4cc0('0x4'));var config=require(_0x4cc0('0x5'));function getAddress(_0x3c7bc5){var _0x2b8c5b=_[_0x4cc0('0x6')](_0x3c7bc5[_0x4cc0('0x7')]);return _0x2b8c5b&&_0x2b8c5b[_0x4cc0('0x8')]?_0x2b8c5b[_0x4cc0('0x8')]:'anonymous'+random[_0x4cc0('0x9')](0x6)+_0x4cc0('0xa');}function getFirstName(_0x44f4cf){var _0x4235d7=_['head'](_0x44f4cf[_0x4cc0('0x7')]);if(_0x4235d7&&_0x4235d7[_0x4cc0('0xb')]){var _0x28955f=_0x4235d7[_0x4cc0('0xb')][_0x4cc0('0xc')](/\s+/);return _0x28955f[_0x4cc0('0xd')]?_0x28955f['slice'](0x0,-0x1)['join']('\x20'):_0x4235d7[_0x4cc0('0xb')];}return _0x4cc0('0xe');}function getLastName(_0x4e876f){var _0x357873=_['head'](_0x4e876f['value']);if(_0x357873&&_0x357873['name']){var _0x290d3b=_0x357873[_0x4cc0('0xb')][_0x4cc0('0xc')](/\s+/);return _0x290d3b[_0x4cc0('0xd')]>0x1?_0x290d3b[_0x4cc0('0xf')]():'';}return'';}function getMails(_0x488128,_0x37ec00){var _0x570a3c='';for(var _0x5589be=0x0;_0x5589be<_0x37ec00['value'][_0x4cc0('0xd')];_0x5589be+=0x1){if(_0x37ec00[_0x4cc0('0x7')][_0x5589be][_0x4cc0('0x8')]!==_0x488128){if(!_[_0x4cc0('0x10')](_0x570a3c)){_0x570a3c+=',';}_0x570a3c+=_0x37ec00['value'][_0x5589be][_0x4cc0('0xb')]||_0x37ec00[_0x4cc0('0x7')][_0x5589be][_0x4cc0('0x8')]||'';_0x570a3c+='\x20<';_0x570a3c+=_0x37ec00[_0x4cc0('0x7')][_0x5589be]['address']?_0x37ec00[_0x4cc0('0x7')][_0x5589be][_0x4cc0('0x8')]:'anonymous'+random[_0x4cc0('0x9')](0x6)+'@xcally.com';_0x570a3c+='>';}}return _0x570a3c;}function parseEmail(_0xbdab87,_0x3e239e,_0x8e2667){if(_0x3e239e[_0x4cc0('0x11')]){var _0x37dc0d=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x37dc0d[_0x4cc0('0x12')](_0x3e239e[_0x4cc0('0x11')])){_0x3e239e[_0x4cc0('0x11')]=_0x3e239e[_0x4cc0('0x11')][_0x4cc0('0x13')](_0x37dc0d,'');}_0x8e2667['body']=_0x3e239e[_0x4cc0('0x11')];}else{_0x8e2667['body']=_0x3e239e[_0x4cc0('0x14')];}if(_0x8e2667[_0x4cc0('0x15')]){_0x8e2667[_0x4cc0('0x15')]=_0x8e2667[_0x4cc0('0x15')][_0x4cc0('0x13')](/<a\s+/gi,_0x4cc0('0x16'));}if(_0x3e239e['to']){_0x8e2667['message'][_0x4cc0('0x17')]=getMails(null,_0x3e239e['to']);var _0x209303=getMails(_0xbdab87['email'],_0x3e239e['to']);if(!_['isEmpty'](_0x209303)){_0x8e2667[_0x4cc0('0x18')]['cc']+=_0x209303;}}if(_0x3e239e['cc']){_0x8e2667[_0x4cc0('0x18')][_0x4cc0('0x19')]=getMails(null,_0x3e239e['cc']);var _0xa1bd2f=getMails(_0xbdab87[_0x4cc0('0x4')],_0x3e239e['cc']);if(!_[_0x4cc0('0x10')](_0xa1bd2f)){if(!_[_0x4cc0('0x10')](_0x8e2667[_0x4cc0('0x18')]['cc'])){_0x8e2667[_0x4cc0('0x18')]['cc']+=',';}_0x8e2667[_0x4cc0('0x18')]['cc']+=_0xa1bd2f;}}if(!_[_0x4cc0('0x1a')](_0x8e2667[_0x4cc0('0x18')][_0x4cc0('0x17')],_0xbdab87['email'])&&!_['includes'](_0x8e2667['message'][_0x4cc0('0x19')],_0xbdab87[_0x4cc0('0x4')])){_0x8e2667[_0x4cc0('0x18')]['bcc']=_0xbdab87[_0x4cc0('0x4')];}if(_0x3e239e['attachments']&&_0x3e239e[_0x4cc0('0x1b')][_0x4cc0('0xd')]){_0x8e2667[_0x4cc0('0x18')][_0x4cc0('0x1c')]=_0x3e239e['attachments']['length'];for(var _0x27a52f=0x0,_0x37b810,_0x3f22fd,_0xe31cac;_0x27a52f<_0x3e239e[_0x4cc0('0x1b')][_0x4cc0('0xd')];_0x27a52f+=0x1){if(_0x3e239e[_0x4cc0('0x1b')][_0x27a52f][_0x4cc0('0x1d')]==='attachment'){_0xe31cac=_0x3e239e[_0x4cc0('0x1b')][_0x27a52f][_0x4cc0('0x1e')]||_0x4cc0('0x1f')+_0x27a52f;_0x37b810=util[_0x4cc0('0x20')]('%s-%s',Date[_0x4cc0('0x21')](),_0xe31cac);_0x3f22fd=path[_0x4cc0('0x22')](config[_0x4cc0('0x23')],_0x4cc0('0x24'),_0x37b810);fs['writeFileSync'](_0x3f22fd,_0x3e239e[_0x4cc0('0x1b')][_0x27a52f]['content']);_0x8e2667['message'][_0x4cc0('0x1b')][_0x4cc0('0x25')]({'name':_0xe31cac,'basename':_0x37b810,'type':_0x3e239e['attachments'][_0x27a52f][_0x4cc0('0x26')],'filepath':_0x3f22fd});}}}return _0x8e2667;}exports[_0x4cc0('0x27')]=function(_0x5c1452,_0x2d5997,_0x344a2d){var _0x23d929={'from':getAddress(_0x2d5997[_0x4cc0('0x28')]),'firstName':getFirstName(_0x2d5997[_0x4cc0('0x28')]),'lastName':getLastName(_0x2d5997[_0x4cc0('0x28')]),'mapKey':_0x4cc0('0x4'),'message':{'from':getMails(_0x5c1452[_0x4cc0('0x4')],_0x2d5997[_0x4cc0('0x28')]),'to':_0x5c1452[_0x4cc0('0x4')],'cc':'','subject':_0x2d5997[_0x4cc0('0x29')]||'','messageId':_0x2d5997['messageId'],'inReplyTo':_0x2d5997['inReplyTo'],'sentAt':moment(_0x2d5997[_0x4cc0('0x2a')])[_0x4cc0('0x20')](_0x4cc0('0x2b')),'attach':![],'attachments':[]}};if(!_0x2d5997[_0x4cc0('0x11')]&&!_0x2d5997[_0x4cc0('0x14')]){var _0x2ade3b=_[_0x4cc0('0x2c')](_0x2d5997['attachments'],{'contentType':_0x4cc0('0x2d')});if(_0x2ade3b['length']){logger[_0x4cc0('0x2e')](util[_0x4cc0('0x20')](_0x4cc0('0x2f'),_0x2d5997[_0x4cc0('0x30')]));tnef['parseBuffer'](_[_0x4cc0('0x31')](_0x2ade3b)[_0x4cc0('0x32')],function(_0x4c36b3,_0x18f89b){if(_0x18f89b){_0x2d5997['html']=_0x18f89b['BodyHTML']||'<p>Empty\x20message</p>';if(_0x18f89b['Attachments']){for(var _0xef7d0a=0x0;_0xef7d0a<_0x18f89b[_0x4cc0('0x33')]['length'];_0xef7d0a++){var _0x24224b=_0x18f89b[_0x4cc0('0x33')][_0xef7d0a];_0x23d929[_0x4cc0('0x18')]['attachments'][_0x4cc0('0x25')]({'filename':_0x24224b[_0x4cc0('0x34')],'content':new Buffer(_0x24224b[_0x4cc0('0x35')])});}}}_0x344a2d(parseEmail(_0x5c1452,_0x2d5997,_0x23d929));});}else{_0x2d5997[_0x4cc0('0x11')]=_0x4cc0('0x36');_0x344a2d(parseEmail(_0x5c1452,_0x2d5997,_0x23d929));}}else{_0x344a2d(parseEmail(_0x5c1452,_0x2d5997,_0x23d929));}};exports[_0x4cc0('0x37')]=function(_0x1e5f5a){switch(_0x1e5f5a){case _0x4cc0('0x38'):return _0x4cc0('0x39');case _0x4cc0('0x3a'):return'imap.mail.yahoo.com';case _0x4cc0('0x3b'):return _0x4cc0('0x3c');case _0x4cc0('0x3d'):return _0x4cc0('0x3e');}return _0x4cc0('0x3f');};
\ No newline at end of file
+var _0x1691=['messageId','inReplyTo','date','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','first','content','BodyHTML','<p>Empty\x20message</p>','Attachments','push','Title','Data','getHost','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook.office365.com','127.0.0.1','lodash','moment','path','util','node-tnef','../../../config/logger','email','../../../config/environment','value','address','generate','@xcally.com','head','name','split','length','join','Anonymous','pop','isEmpty','test','html','replace','body','textAsHtml','originTo','originCc','message','includes','attachments','attach','type','filename','attachment-','format','%s-%s','now','root','server/files/attachments/','writeFileSync','contentType','parser','from'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x1691,0x1ed));var _0x1169=function(_0x25d6db,_0x46e420){_0x25d6db=_0x25d6db-0x0;var _0x2210a2=_0x1691[_0x25d6db];return _0x2210a2;};'use strict';var _=require(_0x1169('0x0'));var moment=require(_0x1169('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x1169('0x2'));var util=require(_0x1169('0x3'));var tnef=require(_0x1169('0x4'));var logger=require(_0x1169('0x5'))(_0x1169('0x6'));var config=require(_0x1169('0x7'));function getAddress(_0x28e2df){var _0x304321=_['head'](_0x28e2df[_0x1169('0x8')]);return _0x304321&&_0x304321['address']?_0x304321[_0x1169('0x9')]:'anonymous'+random[_0x1169('0xa')](0x6)+_0x1169('0xb');}function getFirstName(_0x58879c){var _0x216548=_[_0x1169('0xc')](_0x58879c[_0x1169('0x8')]);if(_0x216548&&_0x216548[_0x1169('0xd')]){var _0x179363=_0x216548['name'][_0x1169('0xe')](/\s+/);return _0x179363[_0x1169('0xf')]?_0x179363['slice'](0x0,-0x1)[_0x1169('0x10')]('\x20'):_0x216548['name'];}return _0x1169('0x11');}function getLastName(_0x35c0cc){var _0x51839d=_['head'](_0x35c0cc['value']);if(_0x51839d&&_0x51839d[_0x1169('0xd')]){var _0x57e4e9=_0x51839d[_0x1169('0xd')][_0x1169('0xe')](/\s+/);return _0x57e4e9['length']>0x1?_0x57e4e9[_0x1169('0x12')]():'';}return'';}function getMails(_0x32636b,_0x17003c){var _0x233a54='';for(var _0x4fc690=0x0;_0x4fc690<_0x17003c['value'][_0x1169('0xf')];_0x4fc690+=0x1){if(_0x17003c[_0x1169('0x8')][_0x4fc690][_0x1169('0x9')]!==_0x32636b){if(!_[_0x1169('0x13')](_0x233a54)){_0x233a54+=',';}_0x233a54+=_0x17003c[_0x1169('0x8')][_0x4fc690][_0x1169('0xd')]||_0x17003c[_0x1169('0x8')][_0x4fc690][_0x1169('0x9')]||'';_0x233a54+='\x20<';_0x233a54+=_0x17003c['value'][_0x4fc690][_0x1169('0x9')]?_0x17003c['value'][_0x4fc690][_0x1169('0x9')]:'anonymous'+random['generate'](0x6)+_0x1169('0xb');_0x233a54+='>';}}return _0x233a54;}function parseEmail(_0x54f260,_0x539535,_0x35f0be){if(_0x539535['html']){var _0x3e6e45=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x3e6e45[_0x1169('0x14')](_0x539535[_0x1169('0x15')])){_0x539535[_0x1169('0x15')]=_0x539535[_0x1169('0x15')][_0x1169('0x16')](_0x3e6e45,'');}_0x35f0be[_0x1169('0x17')]=_0x539535[_0x1169('0x15')];}else{_0x35f0be['body']=_0x539535[_0x1169('0x18')];}if(_0x35f0be[_0x1169('0x17')]){_0x35f0be[_0x1169('0x17')]=_0x35f0be[_0x1169('0x17')][_0x1169('0x16')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x539535['to']){_0x35f0be['message'][_0x1169('0x19')]=getMails(null,_0x539535['to']);var _0x5e235c=getMails(_0x54f260[_0x1169('0x6')],_0x539535['to']);if(!_[_0x1169('0x13')](_0x5e235c)){_0x35f0be['message']['cc']+=_0x5e235c;}}if(_0x539535['cc']){_0x35f0be['message'][_0x1169('0x1a')]=getMails(null,_0x539535['cc']);var _0x27e54b=getMails(_0x54f260[_0x1169('0x6')],_0x539535['cc']);if(!_['isEmpty'](_0x27e54b)){if(!_[_0x1169('0x13')](_0x35f0be[_0x1169('0x1b')]['cc'])){_0x35f0be['message']['cc']+=',';}_0x35f0be['message']['cc']+=_0x27e54b;}}if(!_['includes'](_0x35f0be['message'][_0x1169('0x19')],_0x54f260[_0x1169('0x6')])&&!_[_0x1169('0x1c')](_0x35f0be[_0x1169('0x1b')][_0x1169('0x1a')],_0x54f260[_0x1169('0x6')])){_0x35f0be[_0x1169('0x1b')]['bcc']=_0x54f260['email'];}if(_0x539535[_0x1169('0x1d')]&&_0x539535[_0x1169('0x1d')][_0x1169('0xf')]){_0x35f0be[_0x1169('0x1b')][_0x1169('0x1e')]=_0x539535[_0x1169('0x1d')][_0x1169('0xf')];for(var _0x57ae1c=0x0,_0x5ed51d,_0x582758,_0x4b6051;_0x57ae1c<_0x539535['attachments'][_0x1169('0xf')];_0x57ae1c+=0x1){if(_0x539535[_0x1169('0x1d')][_0x57ae1c][_0x1169('0x1f')]==='attachment'){_0x4b6051=_0x539535[_0x1169('0x1d')][_0x57ae1c][_0x1169('0x20')]||_0x1169('0x21')+_0x57ae1c;_0x5ed51d=util[_0x1169('0x22')](_0x1169('0x23'),Date[_0x1169('0x24')](),_0x4b6051);_0x582758=path[_0x1169('0x10')](config[_0x1169('0x25')],_0x1169('0x26'),_0x5ed51d);fs[_0x1169('0x27')](_0x582758,_0x539535[_0x1169('0x1d')][_0x57ae1c]['content']);_0x35f0be['message'][_0x1169('0x1d')]['push']({'name':_0x4b6051,'basename':_0x5ed51d,'type':_0x539535[_0x1169('0x1d')][_0x57ae1c][_0x1169('0x28')],'filepath':_0x582758});}}}return _0x35f0be;}exports[_0x1169('0x29')]=function(_0x1eaa12,_0x11b63e,_0x537ea0){var _0x1af9fc={'from':getAddress(_0x11b63e['from']),'firstName':getFirstName(_0x11b63e[_0x1169('0x2a')]),'lastName':getLastName(_0x11b63e['from']),'mapKey':_0x1169('0x6'),'message':{'from':getMails(_0x1eaa12[_0x1169('0x6')],_0x11b63e[_0x1169('0x2a')]),'to':_0x1eaa12[_0x1169('0x6')],'cc':'','subject':_0x11b63e['subject']||'','messageId':_0x11b63e[_0x1169('0x2b')],'inReplyTo':_0x11b63e[_0x1169('0x2c')],'sentAt':moment(_0x11b63e[_0x1169('0x2d')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x11b63e[_0x1169('0x15')]&&!_0x11b63e[_0x1169('0x18')]){var _0xb5b441=_[_0x1169('0x2e')](_0x11b63e[_0x1169('0x1d')],{'contentType':_0x1169('0x2f')});if(_0xb5b441['length']){logger[_0x1169('0x30')](util['format'](_0x1169('0x31'),_0x11b63e[_0x1169('0x2b')]));tnef['parseBuffer'](_[_0x1169('0x32')](_0xb5b441)[_0x1169('0x33')],function(_0x390d55,_0x28329b){if(_0x28329b){_0x11b63e['html']=_0x28329b[_0x1169('0x34')]||_0x1169('0x35');if(_0x28329b['Attachments']){for(var _0x488fe1=0x0;_0x488fe1<_0x28329b[_0x1169('0x36')][_0x1169('0xf')];_0x488fe1++){var _0x488025=_0x28329b['Attachments'][_0x488fe1];_0x1af9fc['message']['attachments'][_0x1169('0x37')]({'filename':_0x488025[_0x1169('0x38')],'content':new Buffer(_0x488025[_0x1169('0x39')])});}}}_0x537ea0(parseEmail(_0x1eaa12,_0x11b63e,_0x1af9fc));});}else{_0x11b63e[_0x1169('0x15')]=_0x1169('0x35');_0x537ea0(parseEmail(_0x1eaa12,_0x11b63e,_0x1af9fc));}}else{_0x537ea0(parseEmail(_0x1eaa12,_0x11b63e,_0x1af9fc));}};exports[_0x1169('0x3a')]=function(_0x2fed73){switch(_0x2fed73){case _0x1169('0x3b'):return _0x1169('0x3c');case _0x1169('0x3d'):return _0x1169('0x3e');case _0x1169('0x3f'):return _0x1169('0x40');case'outlook365':return _0x1169('0x41');}return _0x1169('0x42');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce7e=['SERV','Imap','exports','lodash','name','Service','key'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xce7e,0x153));var _0xece7=function(_0x4964d6,_0x4c94c4){_0x4964d6=_0x4964d6-0x0;var _0x4d8ae3=_0xce7e[_0x4964d6];return _0x4d8ae3;};'use strict';var _=require(_0xece7('0x0'));function MailAccount(_0x18f9b2){this['id']=_0x18f9b2['id']||0x0;this[_0xece7('0x1')]=_0x18f9b2[_0xece7('0x1')]||_0xece7('0x2');this[_0xece7('0x3')]=_0x18f9b2[_0xece7('0x3')]||_0xece7('0x4');this['active']=_0x18f9b2['active']||![];this['Imap']=_0x18f9b2[_0xece7('0x5')]||[];this['Smtp']=_0x18f9b2['Smtp']||[];}module[_0xece7('0x6')]=MailAccount;
\ No newline at end of file
+var _0xd76e=['name','key','SERV','active','Imap','Smtp','exports'];(function(_0x556918,_0x4882eb){var _0x1950fc=function(_0x192326){while(--_0x192326){_0x556918['push'](_0x556918['shift']());}};_0x1950fc(++_0x4882eb);}(_0xd76e,0x13b));var _0xed76=function(_0x1f7a8f,_0x2a6979){_0x1f7a8f=_0x1f7a8f-0x0;var _0x3acac4=_0xd76e[_0x1f7a8f];return _0x3acac4;};'use strict';var _=require('lodash');function MailAccount(_0x4aeb0c){this['id']=_0x4aeb0c['id']||0x0;this['name']=_0x4aeb0c[_0xed76('0x0')]||'Service';this[_0xed76('0x1')]=_0x4aeb0c[_0xed76('0x1')]||_0xed76('0x2');this['active']=_0x4aeb0c[_0xed76('0x3')]||![];this['Imap']=_0x4aeb0c[_0xed76('0x4')]||[];this[_0xed76('0x5')]=_0x4aeb0c[_0xed76('0x5')]||[];}module[_0xed76('0x6')]=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9582=['prototype','mergeFromDatabase','initMailAccounts','length','isUndefined','exports','lodash','../model/mailAccount','mailAccounts','mapKeys','hasOwnProperty'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x9582,0x95));var _0x2958=function(_0x215961,_0x2b32a8){_0x215961=_0x215961-0x0;var _0x3e35be=_0x9582[_0x215961];return _0x3e35be;};'use strict';var _=require(_0x2958('0x0'));var MailAccount=require(_0x2958('0x1'));var Realtime=function(){this[_0x2958('0x2')]={};};function freeIsNotKey(_0x3d6d1f,_0x42752c,_0x176287){var _0x559a01=_[_0x2958('0x3')](_0x3d6d1f,function(_0x3b907e,_0x136c77){return _0x3b907e[_0x176287];});for(var _0x195138 in _0x42752c){if(_0x42752c[_0x2958('0x4')](_0x195138)){if(!_0x559a01[_0x195138]){delete _0x42752c[_0x195138];}}}}Realtime[_0x2958('0x5')][_0x2958('0x6')]=function(_0x309525,_0xa385ec){for(var _0x2e571b in _0xa385ec){if(_0x309525['hasOwnProperty'](_0x2e571b)){_0x309525[_0x2e571b]=_0xa385ec[_0x2e571b];}}};Realtime['prototype'][_0x2958('0x7')]=function(){var _0x52076d=this;return function(_0x10db1e){if(_0x10db1e){freeIsNotKey(_0x10db1e,_0x52076d['mailAccounts'],'id');for(var _0x44cccc=0x0,_0x5ef23c={},_0x3aacfa={};_0x44cccc<_0x10db1e[_0x2958('0x8')];_0x44cccc+=0x1){_0x5ef23c=_0x10db1e[_0x44cccc];if(_[_0x2958('0x9')](_0x52076d[_0x2958('0x2')][_0x5ef23c['id']])){_0x52076d[_0x2958('0x2')][_0x5ef23c['id']]=new MailAccount(_0x5ef23c);}else{_['merge'](_0x52076d[_0x2958('0x2')][_0x5ef23c['id']],_0x5ef23c);}}}return _0x52076d[_0x2958('0x2')];};};module[_0x2958('0xa')]=Realtime;
\ No newline at end of file
+var _0xd7d1=['prototype','initMailAccounts','length','merge','exports','lodash','../model/mailAccount','mailAccounts','mapKeys','hasOwnProperty'];(function(_0x48be00,_0x42ff02){var _0x37faa3=function(_0x25d39a){while(--_0x25d39a){_0x48be00['push'](_0x48be00['shift']());}};_0x37faa3(++_0x42ff02);}(_0xd7d1,0x1b3));var _0x1d7d=function(_0x34e8c6,_0x190574){_0x34e8c6=_0x34e8c6-0x0;var _0x1bb738=_0xd7d1[_0x34e8c6];return _0x1bb738;};'use strict';var _=require(_0x1d7d('0x0'));var MailAccount=require(_0x1d7d('0x1'));var Realtime=function(){this[_0x1d7d('0x2')]={};};function freeIsNotKey(_0x447083,_0x1d1926,_0x3c3a27){var _0x222e84=_[_0x1d7d('0x3')](_0x447083,function(_0x1ac097,_0x1adb6b){return _0x1ac097[_0x3c3a27];});for(var _0x3c0839 in _0x1d1926){if(_0x1d1926[_0x1d7d('0x4')](_0x3c0839)){if(!_0x222e84[_0x3c0839]){delete _0x1d1926[_0x3c0839];}}}}Realtime[_0x1d7d('0x5')]['mergeFromDatabase']=function(_0x462ef8,_0x1aa456){for(var _0x14dbf6 in _0x1aa456){if(_0x462ef8[_0x1d7d('0x4')](_0x14dbf6)){_0x462ef8[_0x14dbf6]=_0x1aa456[_0x14dbf6];}}};Realtime[_0x1d7d('0x5')][_0x1d7d('0x6')]=function(){var _0x155bfb=this;return function(_0xa44223){if(_0xa44223){freeIsNotKey(_0xa44223,_0x155bfb[_0x1d7d('0x2')],'id');for(var _0x8b258b=0x0,_0x2765fe={},_0x547f7b={};_0x8b258b<_0xa44223[_0x1d7d('0x7')];_0x8b258b+=0x1){_0x2765fe=_0xa44223[_0x8b258b];if(_['isUndefined'](_0x155bfb[_0x1d7d('0x2')][_0x2765fe['id']])){_0x155bfb[_0x1d7d('0x2')][_0x2765fe['id']]=new MailAccount(_0x2765fe);}else{_[_0x1d7d('0x8')](_0x155bfb[_0x1d7d('0x2')][_0x2765fe['id']],_0x2765fe);}}}return _0x155bfb['mailAccounts'];};};module[_0x1d7d('0x9')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa38a=['notify','NotifyMailAccount','../client','getMailAccounts','Request','GetMailAccount','name','service','active','key','ListId','TemplateId','MailServerIn','MailServerOut','Smtp','getMailAccount'];(function(_0x1fe942,_0x3a108b){var _0x199693=function(_0x4bbf18){while(--_0x4bbf18){_0x1fe942['push'](_0x1fe942['shift']());}};_0x199693(++_0x3a108b);}(_0xa38a,0x142));var _0xaa38=function(_0x2e3df8,_0x54af83){_0x2e3df8=_0x2e3df8-0x0;var _0x326c47=_0xa38a[_0x2e3df8];return _0x326c47;};'use strict';var client=require(_0xaa38('0x0'));exports[_0xaa38('0x1')]=function(){return function(){return client[_0xaa38('0x2')](_0xaa38('0x3'),{'options':{'attributes':['id',_0xaa38('0x4'),_0xaa38('0x5'),'email',_0xaa38('0x6'),_0xaa38('0x7'),_0xaa38('0x8'),_0xaa38('0x9')],'raw':![],'include':[{'model':_0xaa38('0xa'),'as':'Imap'},{'model':_0xaa38('0xb'),'as':_0xaa38('0xc')}]},'log':_0xaa38('0xd')});};};exports[_0xaa38('0xe')]=function(_0x987ce,_0x401b27){return client['Request']('NotifyMailAccount',{'account':{'id':_0x987ce},'body':_0x401b27,'log':_0xaa38('0xf')});};
\ No newline at end of file
+var _0xc44b=['Imap','notify','../client','getMailAccounts','Request','name','key','ListId','MailServerIn'];(function(_0x4568b6,_0x3a234f){var _0x54cd25=function(_0x25e0f8){while(--_0x25e0f8){_0x4568b6['push'](_0x4568b6['shift']());}};_0x54cd25(++_0x3a234f);}(_0xc44b,0xad));var _0xbc44=function(_0x3f3c46,_0x33e972){_0x3f3c46=_0x3f3c46-0x0;var _0x7d1132=_0xc44b[_0x3f3c46];return _0x7d1132;};'use strict';var client=require(_0xbc44('0x0'));exports[_0xbc44('0x1')]=function(){return function(){return client[_0xbc44('0x2')]('GetMailAccount',{'options':{'attributes':['id',_0xbc44('0x3'),'service','email','active',_0xbc44('0x4'),_0xbc44('0x5'),'TemplateId'],'raw':![],'include':[{'model':_0xbc44('0x6'),'as':_0xbc44('0x7')},{'model':'MailServerOut','as':'Smtp'}]},'log':'getMailAccount'});};};exports[_0xbc44('0x8')]=function(_0x2ee207,_0x2192b1){return client['Request']('NotifyMailAccount',{'account':{'id':_0x2ee207},'body':_0x2192b1,'log':'NotifyMailAccount'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ac2=['mailAccounts','length','Imap','password','Smtp','pass','stringify','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','jayson/promise','lodash','../../../config/logger','email','listen','sendMail','account','message','then','error','verifySmtp','catch'];(function(_0x9efe0,_0x1e7272){var _0x232a0f=function(_0x377439){while(--_0x377439){_0x9efe0['push'](_0x9efe0['shift']());}};_0x232a0f(++_0x1e7272);}(_0x6ac2,0x184));var _0x26ac=function(_0x52953e,_0x5dcd81){_0x52953e=_0x52953e-0x0;var _0x47ba23=_0x6ac2[_0x52953e];return _0x47ba23;};'use strict';var jayson=require(_0x26ac('0x0'));var BPromise=require('bluebird');var _=require(_0x26ac('0x1'));var logger=require(_0x26ac('0x2'))(_0x26ac('0x3'));exports[_0x26ac('0x4')]=function(_0x277a0b,_0x2a650c){return new BPromise(function(_0x595aa9,_0x40d8d0){var _0x5b40f6={'SendMail':function(_0x3a72ea){var _0x4168ff=this;return new Promise(function(_0x1cc988,_0x159ba6){_0x2a650c[_0x26ac('0x5')](_0x3a72ea[_0x26ac('0x6')],_0x3a72ea[_0x26ac('0x7')])[_0x26ac('0x8')](function(_0x50816d){_0x1cc988({'code':0xc8,'message':_0x50816d});})['catch'](function(_0x27ff15){_0x159ba6(_0x4168ff[_0x26ac('0x9')](0x1f4,_0x27ff15));});});},'VerifySmtp':function(_0x23b65b){var _0x3eb7da=this;return new Promise(function(_0x59f3fc,_0x11e8a1){_0x2a650c[_0x26ac('0xa')](_0x23b65b[_0x26ac('0x6')])[_0x26ac('0x8')](function(_0x55a3cd){_0x59f3fc({'code':0xc8,'message':'Verified'});})[_0x26ac('0xb')](function(_0x46cda7){_0x11e8a1(_0x3eb7da[_0x26ac('0x9')](0x1f4,_0x46cda7));});});},'MailAccounts':function(_0x2790e6){return new Promise(function(_0x2d060c,_0x447b48){var _0x332627=_['values'](_0x277a0b[_0x26ac('0xc')]);for(var _0x3ec6e6=0x0;_0x3ec6e6<_0x332627[_0x26ac('0xd')];_0x3ec6e6+=0x1){if(_0x332627[_0x3ec6e6][_0x26ac('0xe')]&&_0x332627[_0x3ec6e6]['Imap'][_0x26ac('0xf')]){delete _0x332627[_0x3ec6e6][_0x26ac('0xe')]['password'];}if(_0x332627[_0x3ec6e6][_0x26ac('0x10')]&&_0x332627[_0x3ec6e6][_0x26ac('0x10')][_0x26ac('0x11')]){delete _0x332627[_0x3ec6e6][_0x26ac('0x10')]['pass'];}}_0x2d060c({'count':_0x332627[_0x26ac('0xd')],'rows':_0x332627});});}};var _0xb03bbc=jayson['server'](_0x5b40f6)['http']();_0xb03bbc['on'](_0x26ac('0x9'),function(_0x181c5a){logger['error'](JSON[_0x26ac('0x12')](_0x181c5a));return _0x40d8d0(_0x181c5a);});_0xb03bbc['listen'](0x232b,'127.0.0.1',function(){console['log'](_0x26ac('0x13'),0x232b);return _0x595aa9('RPC\x20listening\x20on\x20port:'+0x232b);});});};
\ No newline at end of file
+var _0x0137=['values','mailAccounts','length','password','Imap','Smtp','pass','server','http','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','jayson/promise','bluebird','lodash','../../../config/logger','email','account','message','then','catch','error','verifySmtp'];(function(_0x627e09,_0x1ea438){var _0x33e1b4=function(_0x2d3244){while(--_0x2d3244){_0x627e09['push'](_0x627e09['shift']());}};_0x33e1b4(++_0x1ea438);}(_0x0137,0x1d8));var _0x7013=function(_0x2729cd,_0x462966){_0x2729cd=_0x2729cd-0x0;var _0x1c259=_0x0137[_0x2729cd];return _0x1c259;};'use strict';var jayson=require(_0x7013('0x0'));var BPromise=require(_0x7013('0x1'));var _=require(_0x7013('0x2'));var logger=require(_0x7013('0x3'))(_0x7013('0x4'));exports['listen']=function(_0x357739,_0x23a553){return new BPromise(function(_0x1d35c3,_0x72e6a9){var _0x17462b={'SendMail':function(_0x17c3c8){var _0x50b822=this;return new Promise(function(_0x24cb85,_0x346a4d){_0x23a553['sendMail'](_0x17c3c8[_0x7013('0x5')],_0x17c3c8[_0x7013('0x6')])[_0x7013('0x7')](function(_0x56d571){_0x24cb85({'code':0xc8,'message':_0x56d571});})[_0x7013('0x8')](function(_0x551b8a){_0x346a4d(_0x50b822[_0x7013('0x9')](0x1f4,_0x551b8a));});});},'VerifySmtp':function(_0xaae132){var _0x5a4d9d=this;return new Promise(function(_0x3a66c4,_0x2b74b3){_0x23a553[_0x7013('0xa')](_0xaae132[_0x7013('0x5')])[_0x7013('0x7')](function(_0x306eca){_0x3a66c4({'code':0xc8,'message':'Verified'});})[_0x7013('0x8')](function(_0x3ea7f0){_0x2b74b3(_0x5a4d9d[_0x7013('0x9')](0x1f4,_0x3ea7f0));});});},'MailAccounts':function(_0x307cd3){return new Promise(function(_0x9f9b2d,_0x34a5fc){var _0x1032c1=_[_0x7013('0xb')](_0x357739[_0x7013('0xc')]);for(var _0x710f8a=0x0;_0x710f8a<_0x1032c1[_0x7013('0xd')];_0x710f8a+=0x1){if(_0x1032c1[_0x710f8a]['Imap']&&_0x1032c1[_0x710f8a]['Imap'][_0x7013('0xe')]){delete _0x1032c1[_0x710f8a][_0x7013('0xf')][_0x7013('0xe')];}if(_0x1032c1[_0x710f8a][_0x7013('0x10')]&&_0x1032c1[_0x710f8a][_0x7013('0x10')]['pass']){delete _0x1032c1[_0x710f8a]['Smtp'][_0x7013('0x11')];}}_0x9f9b2d({'count':_0x1032c1[_0x7013('0xd')],'rows':_0x1032c1});});}};var _0x161a19=jayson[_0x7013('0x12')](_0x17462b)[_0x7013('0x13')]();_0x161a19['on']('error',function(_0x25a64d){logger[_0x7013('0x9')](JSON['stringify'](_0x25a64d));return _0x72e6a9(_0x25a64d);});_0x161a19['listen'](0x232b,_0x7013('0x14'),function(){console[_0x7013('0x15')](_0x7013('0x16'),0x232b);return _0x1d35c3('RPC\x20listening\x20on\x20port:'+0x232b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90df=['exports','lodash','express','../../config/environment','timeout','listen','port','socket.io','redis','defaults','localhost','../../config/triggers','default','../../config/socketio','once','listening','log'];(function(_0x13e078,_0x578a26){var _0x14f2a9=function(_0x2d84ee){while(--_0x2d84ee){_0x13e078['push'](_0x13e078['shift']());}};_0x14f2a9(++_0x578a26);}(_0x90df,0x144));var _0xf90d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x90df[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf90d('0x0'));var http=require('http');var express=require(_0xf90d('0x1'));var sticky=require('sticky-session');var config=require(_0xf90d('0x2'));var app=express();var server=http['createServer'](app);server[_0xf90d('0x3')]=0xdbba0;if(sticky[_0xf90d('0x4')](server,config[_0xf90d('0x5')])){var socketio=require(_0xf90d('0x6'))(server,{'transports':['websocket','polling']});config[_0xf90d('0x7')]=_[_0xf90d('0x8')](config[_0xf90d('0x7')],{'host':_0xf90d('0x9'),'port':0x18eb});socketio['adapter'](require('socket.io-redis')(config[_0xf90d('0x7')]));require(_0xf90d('0xa'))[_0xf90d('0xb')]();require(_0xf90d('0xc'))[_0xf90d('0xb')](socketio);require('../../config/express')['default'](app);require('../../routes')[_0xf90d('0xb')](app);}else{server[_0xf90d('0xd')](_0xf90d('0xe'),function(){console[_0xf90d('0xf')]('Express\x20server\x20listening\x20on\x20port\x20%d!',config[_0xf90d('0x5')]);});}exports=module[_0xf90d('0x10')]=app;
\ No newline at end of file
+var _0x55e0=['lodash','http','express','sticky-session','createServer','timeout','listen','port','socket.io','websocket','defaults','localhost','adapter','socket.io-redis','redis','default','../../config/socketio','../../config/express','once','log','Express\x20server\x20listening\x20on\x20port\x20%d!','exports'];(function(_0xbe200f,_0x4b50eb){var _0x192597=function(_0x106cfd){while(--_0x106cfd){_0xbe200f['push'](_0xbe200f['shift']());}};_0x192597(++_0x4b50eb);}(_0x55e0,0xdc));var _0x055e=function(_0x401fd6,_0xb28d69){_0x401fd6=_0x401fd6-0x0;var _0x451f8f=_0x55e0[_0x401fd6];return _0x451f8f;};'use strict';var _=require(_0x055e('0x0'));var http=require(_0x055e('0x1'));var express=require(_0x055e('0x2'));var sticky=require(_0x055e('0x3'));var Redis=require('ioredis');var config=require('../../config/environment');var app=express();var server=http[_0x055e('0x4')](app);server[_0x055e('0x5')]=0xdbba0;if(sticky[_0x055e('0x6')](server,config[_0x055e('0x7')])){var socketio=require(_0x055e('0x8'))(server,{'transports':[_0x055e('0x9'),'polling']});config['redis']=_[_0x055e('0xa')](config['redis'],{'host':_0x055e('0xb'),'port':0x18eb});socketio[_0x055e('0xc')](require(_0x055e('0xd'))({'pubClient':new Redis(config[_0x055e('0xe')]),'subClient':new Redis(config[_0x055e('0xe')])}));require('../../config/triggers')[_0x055e('0xf')]();require(_0x055e('0x10'))[_0x055e('0xf')](socketio);require(_0x055e('0x11'))[_0x055e('0xf')](app);require('../../routes')['default'](app);}else{server[_0x055e('0x12')]('listening',function(){console[_0x055e('0x13')](_0x055e('0x14'),config[_0x055e('0x7')]);});}exports=module[_0x055e('0x15')]=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x097c=['error','message','result','catch','jayson/promise','bluebird','../../config/logger','client','http','Request','request','then','debug','routing','rpc'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x097c,0x1d5));var _0xc097=function(_0x4183f3,_0x272228){_0x4183f3=_0x4183f3-0x0;var _0x3fbf7e=_0x097c[_0x4183f3];return _0x3fbf7e;};'use strict';var jayson=require(_0xc097('0x0'));var BPromise=require(_0xc097('0x1'));var logger=require(_0xc097('0x2'))('routing');var client=jayson[_0xc097('0x3')][_0xc097('0x4')]({'port':0x2329});client[_0xc097('0x5')]=function(_0x1b9efd,_0x5aa3c1){return new BPromise(function(_0x265284,_0x4ac03b){return client[_0xc097('0x6')](_0x1b9efd,_0x5aa3c1)[_0xc097('0x7')](function(_0x31bc9a){logger[_0xc097('0x8')]('rpc',_0xc097('0x9'),_0x1b9efd,_0x5aa3c1,_0x31bc9a);if(_0x31bc9a['error']){logger['error'](_0xc097('0xa'),_0xc097('0x9'),_0x1b9efd,_0x31bc9a[_0xc097('0xb')][_0xc097('0xc')],_0x5aa3c1);return _0x4ac03b(_0x31bc9a[_0xc097('0xb')][_0xc097('0xc')]);}else{return _0x265284(_0x31bc9a[_0xc097('0xd')]);}})[_0xc097('0xe')](function(_0x3a2da3){logger['error'](_0xc097('0xa'),_0xc097('0x9'),_0x1b9efd,_0x3a2da3,_0x5aa3c1);return _0x4ac03b(_0x3a2da3);});});};module['exports']=client;
\ No newline at end of file
+var _0x5af0=['client','http','Request','request','then','rpc','error','message','result','catch','exports','jayson/promise','bluebird','../../config/logger','routing'];(function(_0x2fa43e,_0x8b9018){var _0x557517=function(_0x408a8a){while(--_0x408a8a){_0x2fa43e['push'](_0x2fa43e['shift']());}};_0x557517(++_0x8b9018);}(_0x5af0,0x1eb));var _0x05af=function(_0x3d21c1,_0x3cae3c){_0x3d21c1=_0x3d21c1-0x0;var _0x4d5151=_0x5af0[_0x3d21c1];return _0x4d5151;};'use strict';var jayson=require(_0x05af('0x0'));var BPromise=require(_0x05af('0x1'));var logger=require(_0x05af('0x2'))(_0x05af('0x3'));var client=jayson[_0x05af('0x4')][_0x05af('0x5')]({'port':0x2329});client[_0x05af('0x6')]=function(_0x8c87f7,_0x518abd){return new BPromise(function(_0x3b00d9,_0x5751d0){return client[_0x05af('0x7')](_0x8c87f7,_0x518abd)[_0x05af('0x8')](function(_0x2a8ef6){logger['debug'](_0x05af('0x9'),'routing',_0x8c87f7,_0x518abd,_0x2a8ef6);if(_0x2a8ef6[_0x05af('0xa')]){logger[_0x05af('0xa')](_0x05af('0x9'),'routing',_0x8c87f7,_0x2a8ef6['error']['message'],_0x518abd);return _0x5751d0(_0x2a8ef6['error'][_0x05af('0xb')]);}else{return _0x3b00d9(_0x2a8ef6[_0x05af('0xc')]);}})[_0x05af('0xd')](function(_0x48680f){logger[_0x05af('0xa')]('rpc','routing',_0x8c87f7,_0x48680f,_0x518abd);return _0x5751d0(_0x48680f);});});};module[_0x05af('0xe')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb00e=['./realtime','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/mailQueue','then','getAgents','getIntervals','initIntervals','getOpenchannelQueues','getChatQueues','initChatQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','listen','catch','log','bluebird','./server'];(function(_0x45f0e2,_0x12026e){var _0x5c2103=function(_0x2eb050){while(--_0x2eb050){_0x45f0e2['push'](_0x45f0e2['shift']());}};_0x5c2103(++_0x12026e);}(_0xb00e,0x1b6));var _0xeb00=function(_0x5eb22e,_0x27cbac){_0x5eb22e=_0x5eb22e-0x0;var _0x27fed5=_0xb00e[_0x5eb22e];return _0x27fed5;};'use strict';var BPromise=require(_0xeb00('0x0'));var server=require(_0xeb00('0x1'));var Realtime=require(_0xeb00('0x2'));var user=require('./rpc/user');var interval=require('./rpc/interval');var openchannelQueue=require(_0xeb00('0x3'));var chatQueue=require(_0xeb00('0x4'));var smsQueue=require('./rpc/smsQueue');var mailQueue=require(_0xeb00('0x5'));var faxQueue=require('./rpc/faxQueue');var realtime=new Realtime();function initRealtime(){return BPromise['resolve']()[_0xeb00('0x6')](user[_0xeb00('0x7')]())[_0xeb00('0x6')](realtime['initAgents']())[_0xeb00('0x6')](interval[_0xeb00('0x8')]())[_0xeb00('0x6')](realtime[_0xeb00('0x9')]())[_0xeb00('0x6')](openchannelQueue[_0xeb00('0xa')]())[_0xeb00('0x6')](realtime['initOpenchannelQueues']())[_0xeb00('0x6')](chatQueue[_0xeb00('0xb')]())['then'](realtime[_0xeb00('0xc')]())['then'](smsQueue[_0xeb00('0xd')]())[_0xeb00('0x6')](realtime[_0xeb00('0xe')]())[_0xeb00('0x6')](mailQueue[_0xeb00('0xf')]())[_0xeb00('0x6')](realtime[_0xeb00('0x10')]())['then'](faxQueue['getFaxQueues']())[_0xeb00('0x6')](realtime['initFaxQueues']())[_0xeb00('0x6')](function(){return realtime;});}function main(){return server[_0xeb00('0x11')](realtime)[_0xeb00('0x6')](function(_0x4cf149){return initRealtime();})[_0xeb00('0x6')](function(_0x4b2e12){return setInterval(initRealtime,0x1388);})[_0xeb00('0x12')](function(_0x2df3b9){console[_0xeb00('0x13')](_0x2df3b9);});}main();
\ No newline at end of file
+var _0xf917=['./server','./realtime','./rpc/user','./rpc/interval','./rpc/chatQueue','./rpc/smsQueue','./rpc/faxQueue','resolve','getAgents','then','initAgents','initIntervals','getOpenchannelQueues','initOpenchannelQueues','getChatQueues','getMailQueues','initMailQueues','getFaxQueues','initFaxQueues','listen','catch','bluebird'];(function(_0x57a274,_0x362aaf){var _0x5dcddf=function(_0x123c4b){while(--_0x123c4b){_0x57a274['push'](_0x57a274['shift']());}};_0x5dcddf(++_0x362aaf);}(_0xf917,0x15f));var _0x7f91=function(_0x43c8de,_0x4ac946){_0x43c8de=_0x43c8de-0x0;var _0x17430a=_0xf917[_0x43c8de];return _0x17430a;};'use strict';var BPromise=require(_0x7f91('0x0'));var server=require(_0x7f91('0x1'));var Realtime=require(_0x7f91('0x2'));var user=require(_0x7f91('0x3'));var interval=require(_0x7f91('0x4'));var openchannelQueue=require('./rpc/openchannelQueue');var chatQueue=require(_0x7f91('0x5'));var smsQueue=require(_0x7f91('0x6'));var mailQueue=require('./rpc/mailQueue');var faxQueue=require(_0x7f91('0x7'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x7f91('0x8')]()['then'](user[_0x7f91('0x9')]())[_0x7f91('0xa')](realtime[_0x7f91('0xb')]())[_0x7f91('0xa')](interval['getIntervals']())[_0x7f91('0xa')](realtime[_0x7f91('0xc')]())['then'](openchannelQueue[_0x7f91('0xd')]())[_0x7f91('0xa')](realtime[_0x7f91('0xe')]())[_0x7f91('0xa')](chatQueue[_0x7f91('0xf')]())['then'](realtime['initChatQueues']())['then'](smsQueue['getSmsQueues']())['then'](realtime['initSmsQueues']())[_0x7f91('0xa')](mailQueue[_0x7f91('0x10')]())['then'](realtime[_0x7f91('0x11')]())['then'](faxQueue[_0x7f91('0x12')]())[_0x7f91('0xa')](realtime[_0x7f91('0x13')]())[_0x7f91('0xa')](function(){return realtime;});}function main(){return server[_0x7f91('0x14')](realtime)[_0x7f91('0xa')](function(_0x43755a){return initRealtime();})[_0x7f91('0xa')](function(_0x3b7be0){return setInterval(initRealtime,0x1388);})[_0x7f91('0x15')](function(_0x4127f3){console['log'](_0x4127f3);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa58f=['asc','execute','result','clone','consequence','ruleRef','index_','nextTick','call','next','restart','length','condition','matchPath','findRules','matches','filter','turn','priority','toJSON','toString','fromJSON','object','exports','lodash','events','EventEmitter','init','isNil','register','ignoreFactChanges','prototype','rules','isArray','concat','isObject','push','sync','orderBy','activeRules'];(function(_0x2f2efc,_0x481250){var _0x3ad32b=function(_0x46f4e3){while(--_0x46f4e3){_0x2f2efc['push'](_0x2f2efc['shift']());}};_0x3ad32b(++_0x481250);}(_0xa58f,0x130));var _0xfa58=function(_0x5d963e,_0x38f1ee){_0x5d963e=_0x5d963e-0x0;var _0x585a3d=_0xa58f[_0x5d963e];return _0x585a3d;};'use strict';var _=require(_0xfa58('0x0'));var util=require('util');var EventEmitter=require(_0xfa58('0x1'))[_0xfa58('0x2')];function RuleEngine(_0x40aa16,_0x3c9743){this[_0xfa58('0x3')]();if(!_[_0xfa58('0x4')](_0x40aa16)){this[_0xfa58('0x5')](_0x40aa16);}if(_0x3c9743){this[_0xfa58('0x6')]=_0x3c9743['ignoreFactChanges'];}return this;}util['inherits'](RuleEngine,EventEmitter);RuleEngine[_0xfa58('0x7')][_0xfa58('0x3')]=function(_0x571e72){this[_0xfa58('0x8')]=[];this['activeRules']=[];};RuleEngine[_0xfa58('0x7')][_0xfa58('0x5')]=function(_0x1cd1fd){if(Array[_0xfa58('0x9')](_0x1cd1fd)){this[_0xfa58('0x8')]=this['rules'][_0xfa58('0xa')](_0x1cd1fd);}else if(_0x1cd1fd!==null&&_[_0xfa58('0xb')](_0x1cd1fd)){this[_0xfa58('0x8')][_0xfa58('0xc')](_0x1cd1fd);}this[_0xfa58('0xd')]();};RuleEngine[_0xfa58('0x7')]['sync']=function(){this['activeRules']=this[_0xfa58('0x8')]['filter'](function(_0x2d4858){if(_[_0xfa58('0x4')](_0x2d4858['on'])){_0x2d4858['on']=!![];}if(_0x2d4858['on']===!![]){return _0x2d4858;}});this['activeRules']=_[_0xfa58('0xe')](this[_0xfa58('0xf')],['p'],[_0xfa58('0x10')]);};RuleEngine[_0xfa58('0x7')][_0xfa58('0x11')]=function(_0x943770,_0x2e0d7a){var _0x1093cf=![];_0x943770[_0xfa58('0x12')]=!![];var _0x52ab00=_[_0xfa58('0x13')](_0x943770);var _0x63fc39=_[_0xfa58('0x13')](_0x943770);var _0x33df77=this[_0xfa58('0xf')];var _0x52d455=[];var _0x4a5528=this['ignoreFactChanges'];(function FnRuleLoop(_0x5bf5dc){var _0x32f857={'rules':function(){return _0x33df77;},'rule':function(){return _0x33df77[_0x5bf5dc];},'when':function(_0x48f834){if(_0x48f834){var _0x1d9aea=_0x33df77[_0x5bf5dc][_0xfa58('0x14')];_0x1d9aea[_0xfa58('0x15')]=_0x33df77[_0x5bf5dc]['id']||_0x33df77[_0x5bf5dc]['name']||_0xfa58('0x16')+_0x5bf5dc;process[_0xfa58('0x17')](function(){_0x52d455[_0xfa58('0xc')](_0x1d9aea[_0xfa58('0x15')]);_0x1d9aea[_0xfa58('0x18')](_0x52ab00,_0x32f857);});}else{process[_0xfa58('0x17')](function(){_0x32f857[_0xfa58('0x19')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x1093cf=!![];return FnRuleLoop(0x0);},'next':function(_0x3ead66){if(!_0x4a5528&&!_['isEqual'](_0x63fc39,_0x52ab00)){_0x63fc39=_[_0xfa58('0x13')](_0x52ab00);process[_0xfa58('0x17')](function(){_0x32f857[_0xfa58('0x1a')]();});}else{process[_0xfa58('0x17')](function(){if(_[_0xfa58('0x4')](_0x3ead66)){return FnRuleLoop(_0x5bf5dc+0x1);}else{return FnRuleLoop(_0x3ead66);}});}}};if(_0x5bf5dc<_0x33df77[_0xfa58('0x1b')]&&_0x1093cf===![]){var _0x153221=_0x33df77[_0x5bf5dc][_0xfa58('0x1c')];_0x153221[_0xfa58('0x18')](_0x52ab00,_0x32f857);}else{process[_0xfa58('0x17')](function(){_0x52ab00[_0xfa58('0x1d')]=_0x52d455;return _0x2e0d7a?_0x2e0d7a(_0x52ab00):_['noop']();});}}(0x0));};RuleEngine[_0xfa58('0x7')][_0xfa58('0x1e')]=function(_0x1caf20){if(_[_0xfa58('0x4')](_0x1caf20)){return this[_0xfa58('0x8')];}else{var _0x4162c6=_[_0xfa58('0x1f')](_0x1caf20);return _[_0xfa58('0x20')](this['rules'],_0x4162c6);}};RuleEngine[_0xfa58('0x7')][_0xfa58('0x21')]=function(_0x51302b,_0x25858a){var _0x51302b=_0x51302b==='on'||_0x51302b==='ON'?!![]:![];var _0x40e1d9=this[_0xfa58('0x1e')](_0x25858a);for(var _0x2276f1=0x0,_0x536767=_0x40e1d9[_0xfa58('0x1b')];_0x2276f1<_0x536767;_0x2276f1+=0x1){_0x40e1d9[_0x2276f1]['on']=_0x51302b;}this[_0xfa58('0xd')]();};RuleEngine['prototype']['prioritize']=function(_0x555337,_0x3a2533){_0x555337=parseInt(_0x555337,0xa);var _0x14a100=this['findRules'](_0x3a2533);for(var _0x528c64=0x0,_0x2ee6ad=_0x14a100[_0xfa58('0x1b')];_0x528c64<_0x2ee6ad;_0x528c64+=0x1){_0x14a100[_0x528c64][_0xfa58('0x22')]=_0x555337;}this[_0xfa58('0xd')]();};RuleEngine['prototype'][_0xfa58('0x23')]=function(){var _0x5bd77e=this[_0xfa58('0x8')];if(_0x5bd77e instanceof Array){_0x5bd77e=_0x5bd77e['map'](function(_0x437d9d){_0x437d9d[_0xfa58('0x1c')]=_0x437d9d['condition']['toString']();_0x437d9d[_0xfa58('0x14')]=_0x437d9d[_0xfa58('0x14')][_0xfa58('0x24')]();return _0x437d9d;});}else if(!_[_0xfa58('0x4')](_0x5bd77e)){_0x5bd77e[_0xfa58('0x1c')]=_0x5bd77e[_0xfa58('0x1c')][_0xfa58('0x24')]();_0x5bd77e[_0xfa58('0x14')]=_0x5bd77e[_0xfa58('0x14')][_0xfa58('0x24')]();}return _0x5bd77e;};RuleEngine['prototype'][_0xfa58('0x25')]=function(_0x4a1584){this[_0xfa58('0x3')]();if(_['isString'](_0x4a1584)){_0x4a1584=JSON['parse'](_0x4a1584);}if(_0x4a1584 instanceof Array){_0x4a1584=_0x4a1584['map'](function(_0x2e73da){_0x2e73da[_0xfa58('0x1c')]=eval('('+_0x2e73da[_0xfa58('0x1c')]+')');_0x2e73da[_0xfa58('0x14')]=eval('('+_0x2e73da[_0xfa58('0x14')]+')');return _0x2e73da;});}else if(_0x4a1584!==null&&typeof _0x4a1584==_0xfa58('0x26')){_0x4a1584[_0xfa58('0x1c')]=eval('('+_0x4a1584[_0xfa58('0x1c')]+')');_0x4a1584[_0xfa58('0x14')]=eval('('+_0x4a1584[_0xfa58('0x14')]+')');}this[_0xfa58('0x5')](_0x4a1584);};module[_0xfa58('0x27')]=RuleEngine;
\ No newline at end of file
+var _0x7cda=['name','index_','nextTick','next','isEqual','clone','condition','call','matchPath','noop','findRules','matches','priority','toJSON','toString','consequence','fromJSON','isString','parse','map','object','lodash','util','events','EventEmitter','init','isNil','register','ignoreFactChanges','prototype','activeRules','isArray','rules','concat','isObject','push','sync','filter','asc','result','ruleRef'];(function(_0x1ecab3,_0x5e9dec){var _0x1a77a8=function(_0x50d2d3){while(--_0x50d2d3){_0x1ecab3['push'](_0x1ecab3['shift']());}};_0x1a77a8(++_0x5e9dec);}(_0x7cda,0xb9));var _0xa7cd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7cda[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xa7cd('0x0'));var util=require(_0xa7cd('0x1'));var EventEmitter=require(_0xa7cd('0x2'))[_0xa7cd('0x3')];function RuleEngine(_0x4bf23e,_0xb0eec9){this[_0xa7cd('0x4')]();if(!_[_0xa7cd('0x5')](_0x4bf23e)){this[_0xa7cd('0x6')](_0x4bf23e);}if(_0xb0eec9){this[_0xa7cd('0x7')]=_0xb0eec9['ignoreFactChanges'];}return this;}util['inherits'](RuleEngine,EventEmitter);RuleEngine[_0xa7cd('0x8')]['init']=function(_0x1734e4){this['rules']=[];this[_0xa7cd('0x9')]=[];};RuleEngine['prototype'][_0xa7cd('0x6')]=function(_0x37bd85){if(Array[_0xa7cd('0xa')](_0x37bd85)){this[_0xa7cd('0xb')]=this[_0xa7cd('0xb')][_0xa7cd('0xc')](_0x37bd85);}else if(_0x37bd85!==null&&_[_0xa7cd('0xd')](_0x37bd85)){this[_0xa7cd('0xb')][_0xa7cd('0xe')](_0x37bd85);}this[_0xa7cd('0xf')]();};RuleEngine['prototype'][_0xa7cd('0xf')]=function(){this[_0xa7cd('0x9')]=this[_0xa7cd('0xb')][_0xa7cd('0x10')](function(_0x448268){if(_[_0xa7cd('0x5')](_0x448268['on'])){_0x448268['on']=!![];}if(_0x448268['on']===!![]){return _0x448268;}});this[_0xa7cd('0x9')]=_['orderBy'](this[_0xa7cd('0x9')],['p'],[_0xa7cd('0x11')]);};RuleEngine['prototype']['execute']=function(_0x2cd138,_0x4f7237){var _0x378cd5=![];_0x2cd138[_0xa7cd('0x12')]=!![];var _0x586a3d=_['clone'](_0x2cd138);var _0x4f6078=_['clone'](_0x2cd138);var _0x6200c9=this[_0xa7cd('0x9')];var _0x172d0d=[];var _0x4eeefc=this['ignoreFactChanges'];(function FnRuleLoop(_0x32cd89){var _0x1dfff3={'rules':function(){return _0x6200c9;},'rule':function(){return _0x6200c9[_0x32cd89];},'when':function(_0x1ddc0d){if(_0x1ddc0d){var _0xf995d8=_0x6200c9[_0x32cd89]['consequence'];_0xf995d8[_0xa7cd('0x13')]=_0x6200c9[_0x32cd89]['id']||_0x6200c9[_0x32cd89][_0xa7cd('0x14')]||_0xa7cd('0x15')+_0x32cd89;process[_0xa7cd('0x16')](function(){_0x172d0d[_0xa7cd('0xe')](_0xf995d8[_0xa7cd('0x13')]);_0xf995d8['call'](_0x586a3d,_0x1dfff3);});}else{process[_0xa7cd('0x16')](function(){_0x1dfff3[_0xa7cd('0x17')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x378cd5=!![];return FnRuleLoop(0x0);},'next':function(_0x17964c){if(!_0x4eeefc&&!_[_0xa7cd('0x18')](_0x4f6078,_0x586a3d)){_0x4f6078=_[_0xa7cd('0x19')](_0x586a3d);process[_0xa7cd('0x16')](function(){_0x1dfff3['restart']();});}else{process['nextTick'](function(){if(_[_0xa7cd('0x5')](_0x17964c)){return FnRuleLoop(_0x32cd89+0x1);}else{return FnRuleLoop(_0x17964c);}});}}};if(_0x32cd89<_0x6200c9['length']&&_0x378cd5===![]){var _0x5253cc=_0x6200c9[_0x32cd89][_0xa7cd('0x1a')];_0x5253cc[_0xa7cd('0x1b')](_0x586a3d,_0x1dfff3);}else{process[_0xa7cd('0x16')](function(){_0x586a3d[_0xa7cd('0x1c')]=_0x172d0d;return _0x4f7237?_0x4f7237(_0x586a3d):_[_0xa7cd('0x1d')]();});}}(0x0));};RuleEngine[_0xa7cd('0x8')][_0xa7cd('0x1e')]=function(_0x1562c2){if(_[_0xa7cd('0x5')](_0x1562c2)){return this[_0xa7cd('0xb')];}else{var _0x4131ba=_[_0xa7cd('0x1f')](_0x1562c2);return _[_0xa7cd('0x10')](this[_0xa7cd('0xb')],_0x4131ba);}};RuleEngine[_0xa7cd('0x8')]['turn']=function(_0x3c7cd3,_0x527939){var _0x3c7cd3=_0x3c7cd3==='on'||_0x3c7cd3==='ON'?!![]:![];var _0x5b3a3a=this[_0xa7cd('0x1e')](_0x527939);for(var _0x3b46d1=0x0,_0x4c3ec2=_0x5b3a3a['length'];_0x3b46d1<_0x4c3ec2;_0x3b46d1+=0x1){_0x5b3a3a[_0x3b46d1]['on']=_0x3c7cd3;}this[_0xa7cd('0xf')]();};RuleEngine[_0xa7cd('0x8')]['prioritize']=function(_0x233ce2,_0x203047){_0x233ce2=parseInt(_0x233ce2,0xa);var _0x3af458=this[_0xa7cd('0x1e')](_0x203047);for(var _0x5e6ce2=0x0,_0x20d41c=_0x3af458['length'];_0x5e6ce2<_0x20d41c;_0x5e6ce2+=0x1){_0x3af458[_0x5e6ce2][_0xa7cd('0x20')]=_0x233ce2;}this[_0xa7cd('0xf')]();};RuleEngine[_0xa7cd('0x8')][_0xa7cd('0x21')]=function(){var _0x26bc63=this[_0xa7cd('0xb')];if(_0x26bc63 instanceof Array){_0x26bc63=_0x26bc63['map'](function(_0x540fde){_0x540fde[_0xa7cd('0x1a')]=_0x540fde[_0xa7cd('0x1a')][_0xa7cd('0x22')]();_0x540fde[_0xa7cd('0x23')]=_0x540fde[_0xa7cd('0x23')][_0xa7cd('0x22')]();return _0x540fde;});}else if(!_[_0xa7cd('0x5')](_0x26bc63)){_0x26bc63[_0xa7cd('0x1a')]=_0x26bc63[_0xa7cd('0x1a')]['toString']();_0x26bc63[_0xa7cd('0x23')]=_0x26bc63['consequence']['toString']();}return _0x26bc63;};RuleEngine[_0xa7cd('0x8')][_0xa7cd('0x24')]=function(_0x45a476){this[_0xa7cd('0x4')]();if(_[_0xa7cd('0x25')](_0x45a476)){_0x45a476=JSON[_0xa7cd('0x26')](_0x45a476);}if(_0x45a476 instanceof Array){_0x45a476=_0x45a476[_0xa7cd('0x27')](function(_0x206dbe){_0x206dbe[_0xa7cd('0x1a')]=eval('('+_0x206dbe[_0xa7cd('0x1a')]+')');_0x206dbe['consequence']=eval('('+_0x206dbe['consequence']+')');return _0x206dbe;});}else if(_0x45a476!==null&&typeof _0x45a476==_0xa7cd('0x28')){_0x45a476[_0xa7cd('0x1a')]=eval('('+_0x45a476[_0xa7cd('0x1a')]+')');_0x45a476['consequence']=eval('('+_0x45a476[_0xa7cd('0x23')]+')');}this['register'](_0x45a476);};module['exports']=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['result','catch','sendMailMessage','SendMail','bluebird','jayson/promise','client','http','request','error','message'];(function(_0x54c7b2,_0x851dc0){var _0x35f2ae=function(_0x1212bb){while(--_0x1212bb){_0x54c7b2['push'](_0x54c7b2['shift']());}};_0x35f2ae(++_0x851dc0);}(_0x9957,0x93));var _0x7995=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x9957[_0x3b380d];return _0x54502b;};'use strict';var BPromise=require(_0x7995('0x0'));var jayson=require(_0x7995('0x1'));var client=jayson[_0x7995('0x2')][_0x7995('0x3')]({'port':0x232b});function request(_0x5b96eb,_0x86c128){return new BPromise(function(_0x3c58eb,_0x1902b4){return client[_0x7995('0x4')](_0x5b96eb,_0x86c128)['then'](function(_0x744bea){if(_0x744bea[_0x7995('0x5')]){return _0x1902b4(_0x744bea[_0x7995('0x5')][_0x7995('0x6')]);}else{return _0x3c58eb(_0x744bea[_0x7995('0x7')]);}})[_0x7995('0x8')](function(_0x4996ca){return _0x1902b4(_0x4996ca);});});}exports[_0x7995('0x9')]=function(_0x1cad37,_0x4a64f7){return request(_0x7995('0xa'),{'account':_0x1cad37,'message':_0x4a64f7});};
\ No newline at end of file
+var _0x814b=['bluebird','jayson/promise','client','http','request','then','error','result','catch','sendMailMessage','SendMail'];(function(_0x30b769,_0x3b319b){var _0x1b073f=function(_0x3a13f3){while(--_0x3a13f3){_0x30b769['push'](_0x30b769['shift']());}};_0x1b073f(++_0x3b319b);}(_0x814b,0x1a2));var _0xb814=function(_0x422b48,_0xf131fb){_0x422b48=_0x422b48-0x0;var _0x4a6f67=_0x814b[_0x422b48];return _0x4a6f67;};'use strict';var BPromise=require(_0xb814('0x0'));var jayson=require(_0xb814('0x1'));var client=jayson[_0xb814('0x2')][_0xb814('0x3')]({'port':0x232b});function request(_0xfbb64b,_0x477725){return new BPromise(function(_0x4a98af,_0x38c21a){return client[_0xb814('0x4')](_0xfbb64b,_0x477725)[_0xb814('0x5')](function(_0x4237bc){if(_0x4237bc[_0xb814('0x6')]){return _0x38c21a(_0x4237bc[_0xb814('0x6')]['message']);}else{return _0x4a98af(_0x4237bc[_0xb814('0x7')]);}})[_0xb814('0x8')](function(_0x5c8539){return _0x38c21a(_0x5c8539);});});}exports[_0xb814('0x9')]=function(_0x2913a6,_0x186d5a){return request(_0xb814('0xa'),{'account':_0x2913a6,'message':_0x186d5a});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04d9=['Capacity','maxcapacity','working','idle','mail','chat','fax','sms','length','getChannelStatus','Status','StatusTime','toNumber','chatPause','mailCurrentCapacity','busyQueue','stringify','user:save','exports','moment','md5','redis','localhost','socket.io-emitter','name','online','voicePause','mailPause','smsPause','openchannelPause','chatStatus','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','faxStatus','unknown','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','updateRealtime','CurrentCapacity'];(function(_0x3a7634,_0x2db384){var _0x23bbe9=function(_0x226734){while(--_0x226734){_0x3a7634['push'](_0x3a7634['shift']());}};_0x23bbe9(++_0x2db384);}(_0x04d9,0x1f0));var _0x904d=function(_0x40d778,_0x1e1315){_0x40d778=_0x40d778-0x0;var _0x1cfb3a=_0x04d9[_0x40d778];return _0x1cfb3a;};'use strict';var _=require('lodash');var moment=require(_0x904d('0x0'));var md5=require(_0x904d('0x1'));var config=require('../../../config/environment');config[_0x904d('0x2')]=_['defaults'](config['redis'],{'host':_0x904d('0x3'),'port':0x18eb});var io=require(_0x904d('0x4'))(config['redis']);function Agent(_0x18dbfd){this['id']=_0x18dbfd['id']||0x0;this[_0x904d('0x5')]=_0x18dbfd[_0x904d('0x5')]||'';this[_0x904d('0x6')]=_0x18dbfd[_0x904d('0x6')]||!![];this[_0x904d('0x7')]=_0x18dbfd[_0x904d('0x7')]||![];this['chatPause']=_0x18dbfd['chatPause']||![];this[_0x904d('0x8')]=_0x18dbfd[_0x904d('0x8')]||![];this['faxPause']=_0x18dbfd['faxPause']||![];this[_0x904d('0x9')]=_0x18dbfd[_0x904d('0x9')]||![];this[_0x904d('0xa')]=_0x18dbfd[_0x904d('0xa')]||![];this[_0x904d('0xb')]='unknown';this[_0x904d('0xc')]=0x0;this[_0x904d('0xd')]=_0x18dbfd[_0x904d('0xd')]||0x0;this[_0x904d('0xe')]=0x0;this[_0x904d('0xf')]='unknown';this[_0x904d('0x10')]=0x0;this[_0x904d('0x11')]=_0x18dbfd[_0x904d('0x11')]||0x0;this['mailCurrentCapacity']=0x0;this[_0x904d('0x12')]=_0x904d('0x13');this[_0x904d('0x14')]=0x0;this[_0x904d('0x15')]=_0x18dbfd[_0x904d('0x15')]||0x0;this[_0x904d('0x16')]=0x0;this[_0x904d('0x17')]='unknown';this[_0x904d('0x18')]=0x0;this[_0x904d('0x19')]=_0x18dbfd[_0x904d('0x19')]||0x0;this[_0x904d('0x1a')]=0x0;this[_0x904d('0x1b')]=_0x904d('0x13');this[_0x904d('0x1c')]=0x0;this[_0x904d('0x1d')]=_0x18dbfd['openchannelCapacity']||0x0;this[_0x904d('0x1e')]=0x0;this[_0x904d('0x1f')]=![];this['busyQueue']=undefined;this[_0x904d('0x1')]='';this[_0x904d('0x20')]();}Agent['prototype']['getChannelStatus']=function(_0x20f96f){if(this[_0x20f96f+_0x904d('0x21')]>0x0){if(this[_0x20f96f+_0x904d('0x22')]>0x0&&this[_0x20f96f+'CurrentCapacity']>=this[_0x20f96f+_0x904d('0x22')]){return _0x904d('0x23');}else{return _0x904d('0x24');}}else{return _0x904d('0x25');}};Agent['prototype'][_0x904d('0x20')]=function(){var _0x54f911=[_0x904d('0x26'),_0x904d('0x27'),'openchannel',_0x904d('0x28'),_0x904d('0x29')];for(var _0x436190=0x0;_0x436190<_0x54f911[_0x904d('0x2a')];_0x436190+=0x1){var _0x1a291a=this[_0x904d('0x2b')](_0x54f911[_0x436190]);if(this[_0x54f911[_0x436190]+_0x904d('0x2c')]!==_0x1a291a){this[_0x54f911[_0x436190]+_0x904d('0x2d')]=_[_0x904d('0x2e')](moment()['format']('x'));}this[_0x54f911[_0x436190]+'Status']=_0x1a291a;}var _0x432da2={'id':this['id'],'name':this[_0x904d('0x5')],'online':this['online'],'voicePause':this[_0x904d('0x7')],'chatPause':this[_0x904d('0x2f')],'mailPause':this[_0x904d('0x8')],'smsPause':this[_0x904d('0x9')],'faxPause':this['faxPause'],'openchannelPause':this[_0x904d('0xa')],'chatStatus':this[_0x904d('0xb')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0x904d('0xd')],'chatCurrentCapacity':this[_0x904d('0xe')],'mailStatus':this[_0x904d('0xf')],'mailStatusTime':this['mailStatusTime'],'mailCapacity':this[_0x904d('0x11')],'mailCurrentCapacity':this[_0x904d('0x30')],'faxStatus':this[_0x904d('0x12')],'faxStatusTime':this['faxStatusTime'],'faxCapacity':this['faxCapacity'],'faxCurrentCapacity':this[_0x904d('0x16')],'smsStatus':this[_0x904d('0x17')],'smsStatusTime':this[_0x904d('0x18')],'smsCapacity':this[_0x904d('0x19')],'smsCurrentCapacity':this[_0x904d('0x1a')],'openchannelStatus':this[_0x904d('0x1b')],'openchannelStatusTime':this[_0x904d('0x1c')],'openchannelCapacity':this[_0x904d('0x1d')],'openchannelCurrentCapacity':this[_0x904d('0x1e')],'busy':this[_0x904d('0x1f')],'busyQueue':this[_0x904d('0x31')]};var _0x597b66=md5(JSON[_0x904d('0x32')](_0x432da2));if(this['md5']!==_0x597b66){this['md5']=_0x597b66;io['emit'](_0x904d('0x33'),_0x432da2);}};module[_0x904d('0x34')]=Agent;
\ No newline at end of file
+var _0x8888=['redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','working','idle','mail','chat','openchannel','fax','Status','StatusTime','toNumber','format','stringify','exports','lodash','moment','md5','../../../config/environment'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x8888,0xa7));var _0x8888=function(_0x530156,_0x1d6ba){_0x530156=_0x530156-0x0;var _0x28b381=_0x8888[_0x530156];return _0x28b381;};'use strict';var _=require(_0x8888('0x0'));var moment=require(_0x8888('0x1'));var md5=require(_0x8888('0x2'));var Redis=require('ioredis');var config=require(_0x8888('0x3'));config[_0x8888('0x4')]=_[_0x8888('0x5')](config['redis'],{'host':_0x8888('0x6'),'port':0x18eb});var io=require(_0x8888('0x7'))(new Redis(config[_0x8888('0x4')]));function Agent(_0x4350b6){this['id']=_0x4350b6['id']||0x0;this[_0x8888('0x8')]=_0x4350b6[_0x8888('0x8')]||'';this[_0x8888('0x9')]=_0x4350b6[_0x8888('0x9')]||!![];this['voicePause']=_0x4350b6[_0x8888('0xa')]||![];this[_0x8888('0xb')]=_0x4350b6[_0x8888('0xb')]||![];this[_0x8888('0xc')]=_0x4350b6[_0x8888('0xc')]||![];this['faxPause']=_0x4350b6[_0x8888('0xd')]||![];this[_0x8888('0xe')]=_0x4350b6[_0x8888('0xe')]||![];this[_0x8888('0xf')]=_0x4350b6[_0x8888('0xf')]||![];this[_0x8888('0x10')]=_0x8888('0x11');this[_0x8888('0x12')]=0x0;this[_0x8888('0x13')]=_0x4350b6['chatCapacity']||0x0;this[_0x8888('0x14')]=0x0;this[_0x8888('0x15')]=_0x8888('0x11');this[_0x8888('0x16')]=0x0;this[_0x8888('0x17')]=_0x4350b6['mailCapacity']||0x0;this[_0x8888('0x18')]=0x0;this[_0x8888('0x19')]=_0x8888('0x11');this[_0x8888('0x1a')]=0x0;this[_0x8888('0x1b')]=_0x4350b6['faxCapacity']||0x0;this[_0x8888('0x1c')]=0x0;this[_0x8888('0x1d')]='unknown';this[_0x8888('0x1e')]=0x0;this[_0x8888('0x1f')]=_0x4350b6[_0x8888('0x1f')]||0x0;this[_0x8888('0x20')]=0x0;this[_0x8888('0x21')]='unknown';this[_0x8888('0x22')]=0x0;this[_0x8888('0x23')]=_0x4350b6[_0x8888('0x23')]||0x0;this[_0x8888('0x24')]=0x0;this[_0x8888('0x25')]=![];this[_0x8888('0x26')]=undefined;this[_0x8888('0x2')]='';this[_0x8888('0x27')]();}Agent[_0x8888('0x28')][_0x8888('0x29')]=function(_0x382ec5){if(this[_0x382ec5+_0x8888('0x2a')]>0x0){if(this[_0x382ec5+_0x8888('0x2b')]>0x0&&this[_0x382ec5+_0x8888('0x2a')]>=this[_0x382ec5+_0x8888('0x2b')]){return _0x8888('0x2c');}else{return _0x8888('0x2d');}}else{return _0x8888('0x2e');}};Agent[_0x8888('0x28')]['updateRealtime']=function(){var _0x12bb4c=[_0x8888('0x2f'),_0x8888('0x30'),_0x8888('0x31'),_0x8888('0x32'),'sms'];for(var _0x53621d=0x0;_0x53621d<_0x12bb4c['length'];_0x53621d+=0x1){var _0xd61727=this['getChannelStatus'](_0x12bb4c[_0x53621d]);if(this[_0x12bb4c[_0x53621d]+_0x8888('0x33')]!==_0xd61727){this[_0x12bb4c[_0x53621d]+_0x8888('0x34')]=_[_0x8888('0x35')](moment()[_0x8888('0x36')]('x'));}this[_0x12bb4c[_0x53621d]+_0x8888('0x33')]=_0xd61727;}var _0x53d4ad={'id':this['id'],'name':this[_0x8888('0x8')],'online':this[_0x8888('0x9')],'voicePause':this[_0x8888('0xa')],'chatPause':this[_0x8888('0xb')],'mailPause':this['mailPause'],'smsPause':this[_0x8888('0xe')],'faxPause':this[_0x8888('0xd')],'openchannelPause':this[_0x8888('0xf')],'chatStatus':this[_0x8888('0x10')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0x8888('0x13')],'chatCurrentCapacity':this['chatCurrentCapacity'],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0x8888('0x16')],'mailCapacity':this[_0x8888('0x17')],'mailCurrentCapacity':this['mailCurrentCapacity'],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0x8888('0x1a')],'faxCapacity':this['faxCapacity'],'faxCurrentCapacity':this[_0x8888('0x1c')],'smsStatus':this[_0x8888('0x1d')],'smsStatusTime':this[_0x8888('0x1e')],'smsCapacity':this[_0x8888('0x1f')],'smsCurrentCapacity':this['smsCurrentCapacity'],'openchannelStatus':this['openchannelStatus'],'openchannelStatusTime':this[_0x8888('0x22')],'openchannelCapacity':this[_0x8888('0x23')],'openchannelCurrentCapacity':this[_0x8888('0x24')],'busy':this[_0x8888('0x25')],'busyQueue':this[_0x8888('0x26')]};var _0x528ab9=md5(JSON[_0x8888('0x37')](_0x53d4ad));if(this[_0x8888('0x2')]!==_0x528ab9){this[_0x8888('0x2')]=_0x528ab9;io['emit']('user:save',_0x53d4ad);}};module[_0x8888('0x38')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd95d=['socket.io-emitter','name','timeout','strategy','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','paused','length','chatPause','available','stringify','md5','format','chat:queue:%s','emit','chat_queue:save','exports','lodash','util','redis','localhost'];(function(_0x10f789,_0x175b13){var _0x3a1c3d=function(_0x3be758){while(--_0x3be758){_0x10f789['push'](_0x10f789['shift']());}};_0x3a1c3d(++_0x175b13);}(_0xd95d,0x14c));var _0xdd95=function(_0x147d4f,_0x27fb8c){_0x147d4f=_0x147d4f-0x0;var _0x17e15a=_0xd95d[_0x147d4f];return _0x17e15a;};'use strict';var _=require(_0xdd95('0x0'));var md5=require('md5');var util=require(_0xdd95('0x1'));var config=require('../../../config/environment');config[_0xdd95('0x2')]=_['defaults'](config[_0xdd95('0x2')],{'host':_0xdd95('0x3'),'port':0x18eb});var io=require(_0xdd95('0x4'))(config[_0xdd95('0x2')]);function ChatQueue(_0x18c73b){this['id']=_0x18c73b['id']||0x0;this[_0xdd95('0x5')]=_0x18c73b['name']||'';this[_0xdd95('0x6')]=_0x18c73b[_0xdd95('0x6')]||0xa;this['strategy']=_0x18c73b[_0xdd95('0x7')]||'beepall';this[_0xdd95('0x8')]=_0x18c73b[_0xdd95('0x8')];this[_0xdd95('0x9')]={};this[_0xdd95('0xa')]=0x0;this['md5']='';this[_0xdd95('0xb')]();this[_0xdd95('0xc')]();}ChatQueue[_0xdd95('0xd')][_0xdd95('0xb')]=function(){var _0x3cf248=this['mapAgentsId'][_0xdd95('0xe')];this[_0xdd95('0x9')]=_[_0xdd95('0xf')](this['Agents'],'id');this[_0xdd95('0x9')]['_rr']=_0x3cf248;};ChatQueue[_0xdd95('0xd')][_0xdd95('0xc')]=function(){this[_0xdd95('0x10')]=0x0;this[_0xdd95('0x11')]=0x0;for(var _0x25c983=0x0;_0x25c983<this[_0xdd95('0x8')][_0xdd95('0x12')];_0x25c983+=0x1){if(this['Agents'][_0x25c983]['online']){this['loggedIn']+=0x1;}if(this[_0xdd95('0x8')][_0x25c983][_0xdd95('0x13')]){this[_0xdd95('0x11')]+=0x1;}}this[_0xdd95('0x14')]=this[_0xdd95('0x10')]-this['paused'];this[_0xdd95('0x14')]=this['available']>=0x0?this[_0xdd95('0x14')]:0x0;var _0x52a332={'id':this['id'],'available':this['available'],'loggedIn':this[_0xdd95('0x10')],'name':this[_0xdd95('0x5')],'paused':this[_0xdd95('0x11')],'waiting':this[_0xdd95('0xa')]};var _0x246484=md5(JSON[_0xdd95('0x15')](_0x52a332));if(this['md5']!==_0x246484){this[_0xdd95('0x16')]=_0x246484;io['to'](util[_0xdd95('0x17')](_0xdd95('0x18'),_0x52a332[_0xdd95('0x5')]))[_0xdd95('0x19')](_0xdd95('0x1a'),_0x52a332);}};module[_0xdd95('0x1b')]=ChatQueue;
\ No newline at end of file
+var _0xe530=['timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','_rr','map','prototype','updateRealtime','loggedIn','paused','length','online','chatPause','available','stringify','format','exports','lodash','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name'];(function(_0x3a9468,_0x2b6266){var _0x1d2345=function(_0x499728){while(--_0x499728){_0x3a9468['push'](_0x3a9468['shift']());}};_0x1d2345(++_0x2b6266);}(_0xe530,0x1d6));var _0x0e53=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xe530[_0x465028];return _0xb783d4;};'use strict';var _=require(_0x0e53('0x0'));var md5=require(_0x0e53('0x1'));var util=require(_0x0e53('0x2'));var Redis=require(_0x0e53('0x3'));var config=require(_0x0e53('0x4'));config[_0x0e53('0x5')]=_[_0x0e53('0x6')](config[_0x0e53('0x5')],{'host':_0x0e53('0x7'),'port':0x18eb});var io=require(_0x0e53('0x8'))(new Redis(config[_0x0e53('0x5')]));function ChatQueue(_0x11bd5e){this['id']=_0x11bd5e['id']||0x0;this[_0x0e53('0x9')]=_0x11bd5e[_0x0e53('0x9')]||'';this[_0x0e53('0xa')]=_0x11bd5e['timeout']||0xa;this[_0x0e53('0xb')]=_0x11bd5e[_0x0e53('0xb')]||_0x0e53('0xc');this[_0x0e53('0xd')]=_0x11bd5e[_0x0e53('0xd')];this[_0x0e53('0xe')]={};this[_0x0e53('0xf')]=0x0;this[_0x0e53('0x1')]='';this[_0x0e53('0x10')]();this['updateRealtime']();}ChatQueue['prototype'][_0x0e53('0x10')]=function(){var _0x11c7ea=this[_0x0e53('0xe')][_0x0e53('0x11')];this[_0x0e53('0xe')]=_[_0x0e53('0x12')](this[_0x0e53('0xd')],'id');this[_0x0e53('0xe')][_0x0e53('0x11')]=_0x11c7ea;};ChatQueue[_0x0e53('0x13')][_0x0e53('0x14')]=function(){this[_0x0e53('0x15')]=0x0;this[_0x0e53('0x16')]=0x0;for(var _0xf72689=0x0;_0xf72689<this[_0x0e53('0xd')][_0x0e53('0x17')];_0xf72689+=0x1){if(this[_0x0e53('0xd')][_0xf72689][_0x0e53('0x18')]){this['loggedIn']+=0x1;}if(this[_0x0e53('0xd')][_0xf72689][_0x0e53('0x19')]){this[_0x0e53('0x16')]+=0x1;}}this[_0x0e53('0x1a')]=this[_0x0e53('0x15')]-this[_0x0e53('0x16')];this[_0x0e53('0x1a')]=this['available']>=0x0?this[_0x0e53('0x1a')]:0x0;var _0x1fe641={'id':this['id'],'available':this[_0x0e53('0x1a')],'loggedIn':this['loggedIn'],'name':this[_0x0e53('0x9')],'paused':this[_0x0e53('0x16')],'waiting':this[_0x0e53('0xf')]};var _0x4ed47e=md5(JSON[_0x0e53('0x1b')](_0x1fe641));if(this[_0x0e53('0x1')]!==_0x4ed47e){this[_0x0e53('0x1')]=_0x4ed47e;io['to'](util[_0x0e53('0x1c')]('chat:queue:%s',_0x1fe641['name']))['emit']('chat_queue:save',_0x1fe641);}};module[_0x0e53('0x1d')]=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde70=['../../../config/environment','redis','name','timeout','strategy','beepall','Agents','waiting','updateRouting','updateRealtime','prototype','_rr','mapAgentsId','map','loggedIn','paused','length','online','available','fax:queue:%s','emit','exports','lodash','md5','util'];(function(_0x2e32a5,_0xc5e0e4){var _0xeaf48a=function(_0x2a0592){while(--_0x2a0592){_0x2e32a5['push'](_0x2e32a5['shift']());}};_0xeaf48a(++_0xc5e0e4);}(_0xde70,0x93));var _0x0de7=function(_0x16a751,_0x1b8432){_0x16a751=_0x16a751-0x0;var _0x211682=_0xde70[_0x16a751];return _0x211682;};'use strict';var _=require(_0x0de7('0x0'));var md5=require(_0x0de7('0x1'));var util=require(_0x0de7('0x2'));var config=require(_0x0de7('0x3'));config['redis']=_['defaults'](config[_0x0de7('0x4')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(config['redis']);function FaxQueue(_0x3b32e2){this['id']=_0x3b32e2['id']||0x0;this[_0x0de7('0x5')]=_0x3b32e2['name']||'';this['timeout']=_0x3b32e2[_0x0de7('0x6')]||0xa;this[_0x0de7('0x7')]=_0x3b32e2[_0x0de7('0x7')]||_0x0de7('0x8');this[_0x0de7('0x9')]=_0x3b32e2['Agents'];this['mapAgentsId']={};this[_0x0de7('0xa')]=0x0;this[_0x0de7('0x1')]='';this[_0x0de7('0xb')]();this[_0x0de7('0xc')]();}FaxQueue[_0x0de7('0xd')][_0x0de7('0xb')]=function(){var _0x4784da=this['mapAgentsId'][_0x0de7('0xe')];this[_0x0de7('0xf')]=_[_0x0de7('0x10')](this[_0x0de7('0x9')],'id');this[_0x0de7('0xf')]['_rr']=_0x4784da;};FaxQueue[_0x0de7('0xd')][_0x0de7('0xc')]=function(){this[_0x0de7('0x11')]=0x0;this[_0x0de7('0x12')]=0x0;for(var _0x4f2a5d=0x0;_0x4f2a5d<this[_0x0de7('0x9')][_0x0de7('0x13')];_0x4f2a5d+=0x1){if(this[_0x0de7('0x9')][_0x4f2a5d][_0x0de7('0x14')]){this['loggedIn']+=0x1;}if(this[_0x0de7('0x9')][_0x4f2a5d]['faxPause']){this['paused']+=0x1;}}this[_0x0de7('0x15')]=this[_0x0de7('0x11')]-this['paused'];this[_0x0de7('0x15')]=this[_0x0de7('0x15')]>=0x0?this[_0x0de7('0x15')]:0x0;var _0x55c600={'id':this['id'],'available':this['available'],'loggedIn':this[_0x0de7('0x11')],'name':this['name'],'paused':this[_0x0de7('0x12')],'waiting':this['waiting']};var _0x3c14d2=md5(JSON['stringify'](_0x55c600));if(this[_0x0de7('0x1')]!==_0x3c14d2){this[_0x0de7('0x1')]=_0x3c14d2;io['to'](util['format'](_0x0de7('0x16'),_0x55c600[_0x0de7('0x5')]))[_0x0de7('0x17')]('fax_queue:save',_0x55c600);}};module[_0x0de7('0x18')]=FaxQueue;
\ No newline at end of file
+var _0xbb07=['length','online','available','stringify','format','fax:queue:%s','fax_queue:save','exports','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','strategy','beepall','Agents','waiting','updateRouting','prototype','mapAgentsId','_rr','map','loggedIn','paused'];(function(_0xb00f73,_0x567d32){var _0x2c401f=function(_0x48ce30){while(--_0x48ce30){_0xb00f73['push'](_0xb00f73['shift']());}};_0x2c401f(++_0x567d32);}(_0xbb07,0x190));var _0x7bb0=function(_0x3d310e,_0x200571){_0x3d310e=_0x3d310e-0x0;var _0x23ff86=_0xbb07[_0x3d310e];return _0x23ff86;};'use strict';var _=require('lodash');var md5=require(_0x7bb0('0x0'));var util=require(_0x7bb0('0x1'));var Redis=require(_0x7bb0('0x2'));var config=require(_0x7bb0('0x3'));config[_0x7bb0('0x4')]=_[_0x7bb0('0x5')](config['redis'],{'host':_0x7bb0('0x6'),'port':0x18eb});var io=require(_0x7bb0('0x7'))(new Redis(config[_0x7bb0('0x4')]));function FaxQueue(_0x43ef8f){this['id']=_0x43ef8f['id']||0x0;this[_0x7bb0('0x8')]=_0x43ef8f[_0x7bb0('0x8')]||'';this['timeout']=_0x43ef8f['timeout']||0xa;this[_0x7bb0('0x9')]=_0x43ef8f[_0x7bb0('0x9')]||_0x7bb0('0xa');this[_0x7bb0('0xb')]=_0x43ef8f[_0x7bb0('0xb')];this['mapAgentsId']={};this[_0x7bb0('0xc')]=0x0;this[_0x7bb0('0x0')]='';this[_0x7bb0('0xd')]();this['updateRealtime']();}FaxQueue[_0x7bb0('0xe')][_0x7bb0('0xd')]=function(){var _0x47ba68=this[_0x7bb0('0xf')][_0x7bb0('0x10')];this[_0x7bb0('0xf')]=_[_0x7bb0('0x11')](this[_0x7bb0('0xb')],'id');this[_0x7bb0('0xf')][_0x7bb0('0x10')]=_0x47ba68;};FaxQueue['prototype']['updateRealtime']=function(){this[_0x7bb0('0x12')]=0x0;this[_0x7bb0('0x13')]=0x0;for(var _0xd2ffcb=0x0;_0xd2ffcb<this['Agents'][_0x7bb0('0x14')];_0xd2ffcb+=0x1){if(this[_0x7bb0('0xb')][_0xd2ffcb][_0x7bb0('0x15')]){this[_0x7bb0('0x12')]+=0x1;}if(this[_0x7bb0('0xb')][_0xd2ffcb]['faxPause']){this[_0x7bb0('0x13')]+=0x1;}}this[_0x7bb0('0x16')]=this['loggedIn']-this[_0x7bb0('0x13')];this[_0x7bb0('0x16')]=this['available']>=0x0?this[_0x7bb0('0x16')]:0x0;var _0x1f15a3={'id':this['id'],'available':this['available'],'loggedIn':this[_0x7bb0('0x12')],'name':this['name'],'paused':this[_0x7bb0('0x13')],'waiting':this[_0x7bb0('0xc')]};var _0x1461af=md5(JSON[_0x7bb0('0x17')](_0x1f15a3));if(this[_0x7bb0('0x0')]!==_0x1461af){this[_0x7bb0('0x0')]=_0x1461af;io['to'](util[_0x7bb0('0x18')](_0x7bb0('0x19'),_0x1f15a3[_0x7bb0('0x8')]))['emit'](_0x7bb0('0x1a'),_0x1f15a3);}};module[_0x7bb0('0x1b')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf04e=['exports','name','Intervals'];(function(_0x56482c,_0x16118d){var _0x5aae7a=function(_0x52512f){while(--_0x52512f){_0x56482c['push'](_0x56482c['shift']());}};_0x5aae7a(++_0x16118d);}(_0xf04e,0x1bd));var _0xef04=function(_0x561867,_0x243d59){_0x561867=_0x561867-0x0;var _0x3cc87b=_0xf04e[_0x561867];return _0x3cc87b;};'use strict';function Interval(_0x2b21d2){this['id']=_0x2b21d2['id']||0x0;this[_0xef04('0x0')]=_0x2b21d2[_0xef04('0x0')]||'';this[_0xef04('0x1')]=_0x2b21d2[_0xef04('0x1')]||{};}module[_0xef04('0x2')]=Interval;
\ No newline at end of file
+var _0x2819=['exports','name','Intervals'];(function(_0x38cd1a,_0xfd5008){var _0x43b6ce=function(_0xd25289){while(--_0xd25289){_0x38cd1a['push'](_0x38cd1a['shift']());}};_0x43b6ce(++_0xfd5008);}(_0x2819,0x1e1));var _0x9281=function(_0x171de5,_0x260fd1){_0x171de5=_0x171de5-0x0;var _0x1c2d68=_0x2819[_0x171de5];return _0x1c2d68;};'use strict';function Interval(_0x1be37a){this['id']=_0x1be37a['id']||0x0;this['name']=_0x1be37a[_0x9281('0x0')]||'';this[_0x9281('0x1')]=_0x1be37a[_0x9281('0x1')]||{};}module[_0x9281('0x2')]=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a75=['waiting','updateRouting','updateRealtime','prototype','_rr','loggedIn','paused','online','available','stringify','format','mail:queue:%s','emit','mail_queue:save','exports','lodash','md5','util','../../../config/environment','defaults','redis','name','timeout','strategy','beepall','Agents','mapAgentsId'];(function(_0x408bfd,_0x44022a){var _0xf893e9=function(_0x532b6e){while(--_0x532b6e){_0x408bfd['push'](_0x408bfd['shift']());}};_0xf893e9(++_0x44022a);}(_0x4a75,0x1a4));var _0x54a7=function(_0x9cd4c3,_0x1c9b2c){_0x9cd4c3=_0x9cd4c3-0x0;var _0x4c9025=_0x4a75[_0x9cd4c3];return _0x4c9025;};'use strict';var _=require(_0x54a7('0x0'));var md5=require(_0x54a7('0x1'));var util=require(_0x54a7('0x2'));var config=require(_0x54a7('0x3'));config['redis']=_[_0x54a7('0x4')](config[_0x54a7('0x5')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(config[_0x54a7('0x5')]);function MailQueue(_0x2c2a45){this['id']=_0x2c2a45['id']||0x0;this['name']=_0x2c2a45[_0x54a7('0x6')]||'';this[_0x54a7('0x7')]=_0x2c2a45['timeout']||0xa;this[_0x54a7('0x8')]=_0x2c2a45['strategy']||_0x54a7('0x9');this['Agents']=_0x2c2a45[_0x54a7('0xa')];this[_0x54a7('0xb')]={};this[_0x54a7('0xc')]=0x0;this[_0x54a7('0x1')]='';this[_0x54a7('0xd')]();this[_0x54a7('0xe')]();}MailQueue[_0x54a7('0xf')][_0x54a7('0xd')]=function(){var _0x528477=this['mapAgentsId']['_rr'];this[_0x54a7('0xb')]=_['map'](this[_0x54a7('0xa')],'id');this['mapAgentsId'][_0x54a7('0x10')]=_0x528477;};MailQueue[_0x54a7('0xf')][_0x54a7('0xe')]=function(){this[_0x54a7('0x11')]=0x0;this[_0x54a7('0x12')]=0x0;for(var _0x1c0a9f=0x0;_0x1c0a9f<this[_0x54a7('0xa')]['length'];_0x1c0a9f+=0x1){if(this[_0x54a7('0xa')][_0x1c0a9f][_0x54a7('0x13')]){this[_0x54a7('0x11')]+=0x1;}if(this['Agents'][_0x1c0a9f]['mailPause']){this[_0x54a7('0x12')]+=0x1;}}this[_0x54a7('0x14')]=this[_0x54a7('0x11')]-this[_0x54a7('0x12')];this[_0x54a7('0x14')]=this[_0x54a7('0x14')]>=0x0?this['available']:0x0;var _0x326283={'id':this['id'],'available':this[_0x54a7('0x14')],'loggedIn':this[_0x54a7('0x11')],'name':this[_0x54a7('0x6')],'paused':this[_0x54a7('0x12')],'waiting':this[_0x54a7('0xc')]};var _0xe6745b=md5(JSON[_0x54a7('0x15')](_0x326283));if(this['md5']!==_0xe6745b){this[_0x54a7('0x1')]=_0xe6745b;io['to'](util[_0x54a7('0x16')](_0x54a7('0x17'),_0x326283['name']))[_0x54a7('0x18')](_0x54a7('0x19'),_0x326283);}};module[_0x54a7('0x1a')]=MailQueue;
\ No newline at end of file
+var _0x0958=['loggedIn','length','online','mailPause','paused','available','waiting','stringify','format','mail:queue:%s','emit','exports','lodash','md5','util','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','Agents','updateRealtime','prototype','updateRouting','mapAgentsId','_rr'];(function(_0x51d049,_0x551738){var _0x423c36=function(_0xcf3fd5){while(--_0xcf3fd5){_0x51d049['push'](_0x51d049['shift']());}};_0x423c36(++_0x551738);}(_0x0958,0x7c));var _0x8095=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x0958[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8095('0x0'));var md5=require(_0x8095('0x1'));var util=require(_0x8095('0x2'));var Redis=require('ioredis');var config=require(_0x8095('0x3'));config[_0x8095('0x4')]=_['defaults'](config['redis'],{'host':_0x8095('0x5'),'port':0x18eb});var io=require(_0x8095('0x6'))(new Redis(config['redis']));function MailQueue(_0x4f028f){this['id']=_0x4f028f['id']||0x0;this[_0x8095('0x7')]=_0x4f028f[_0x8095('0x7')]||'';this[_0x8095('0x8')]=_0x4f028f[_0x8095('0x8')]||0xa;this[_0x8095('0x9')]=_0x4f028f['strategy']||'beepall';this[_0x8095('0xa')]=_0x4f028f[_0x8095('0xa')];this['mapAgentsId']={};this['waiting']=0x0;this[_0x8095('0x1')]='';this['updateRouting']();this[_0x8095('0xb')]();}MailQueue[_0x8095('0xc')][_0x8095('0xd')]=function(){var _0x38982d=this[_0x8095('0xe')]['_rr'];this[_0x8095('0xe')]=_['map'](this[_0x8095('0xa')],'id');this[_0x8095('0xe')][_0x8095('0xf')]=_0x38982d;};MailQueue[_0x8095('0xc')][_0x8095('0xb')]=function(){this[_0x8095('0x10')]=0x0;this['paused']=0x0;for(var _0x8f6b26=0x0;_0x8f6b26<this[_0x8095('0xa')][_0x8095('0x11')];_0x8f6b26+=0x1){if(this['Agents'][_0x8f6b26][_0x8095('0x12')]){this[_0x8095('0x10')]+=0x1;}if(this[_0x8095('0xa')][_0x8f6b26][_0x8095('0x13')]){this[_0x8095('0x14')]+=0x1;}}this['available']=this[_0x8095('0x10')]-this[_0x8095('0x14')];this['available']=this['available']>=0x0?this[_0x8095('0x15')]:0x0;var _0x51c65a={'id':this['id'],'available':this[_0x8095('0x15')],'loggedIn':this[_0x8095('0x10')],'name':this[_0x8095('0x7')],'paused':this['paused'],'waiting':this[_0x8095('0x16')]};var _0x40ec4d=md5(JSON[_0x8095('0x17')](_0x51c65a));if(this['md5']!==_0x40ec4d){this[_0x8095('0x1')]=_0x40ec4d;io['to'](util[_0x8095('0x18')](_0x8095('0x19'),_0x51c65a['name']))[_0x8095('0x1a')]('mail_queue:save',_0x51c65a);}};module[_0x8095('0x1b')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a39=['mapAgentsId','md5','updateRouting','updateRealtime','prototype','_rr','map','paused','length','openchannelPause','available','loggedIn','waiting','format','openchannel:queue:%s','emit','exports','util','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','Agents'];(function(_0x2f01e5,_0x281a09){var _0x44a02f=function(_0xd99116){while(--_0xd99116){_0x2f01e5['push'](_0x2f01e5['shift']());}};_0x44a02f(++_0x281a09);}(_0x8a39,0x17d));var _0x98a3=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8a39[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var md5=require('md5');var util=require(_0x98a3('0x0'));var config=require(_0x98a3('0x1'));config[_0x98a3('0x2')]=_['defaults'](config[_0x98a3('0x2')],{'host':_0x98a3('0x3'),'port':0x18eb});var io=require(_0x98a3('0x4'))(config[_0x98a3('0x2')]);function OpenchannelQueue(_0x48109f){this['id']=_0x48109f['id']||0x0;this[_0x98a3('0x5')]=_0x48109f[_0x98a3('0x5')]||'';this[_0x98a3('0x6')]=_0x48109f[_0x98a3('0x6')]||0xa;this[_0x98a3('0x7')]=_0x48109f[_0x98a3('0x7')]||'beepall';this[_0x98a3('0x8')]=_0x48109f[_0x98a3('0x8')];this[_0x98a3('0x9')]={};this['waiting']=0x0;this[_0x98a3('0xa')]='';this[_0x98a3('0xb')]();this[_0x98a3('0xc')]();}OpenchannelQueue[_0x98a3('0xd')][_0x98a3('0xb')]=function(){var _0x34e4db=this[_0x98a3('0x9')][_0x98a3('0xe')];this[_0x98a3('0x9')]=_[_0x98a3('0xf')](this['Agents'],'id');this[_0x98a3('0x9')][_0x98a3('0xe')]=_0x34e4db;};OpenchannelQueue['prototype'][_0x98a3('0xc')]=function(){this['loggedIn']=0x0;this[_0x98a3('0x10')]=0x0;for(var _0x4d0527=0x0;_0x4d0527<this[_0x98a3('0x8')][_0x98a3('0x11')];_0x4d0527+=0x1){if(this[_0x98a3('0x8')][_0x4d0527]['online']){this['loggedIn']+=0x1;}if(this[_0x98a3('0x8')][_0x4d0527][_0x98a3('0x12')]){this[_0x98a3('0x10')]+=0x1;}}this[_0x98a3('0x13')]=this[_0x98a3('0x14')]-this['paused'];this['available']=this[_0x98a3('0x13')]>=0x0?this[_0x98a3('0x13')]:0x0;var _0x5fb0be={'id':this['id'],'available':this[_0x98a3('0x13')],'loggedIn':this['loggedIn'],'name':this[_0x98a3('0x5')],'paused':this[_0x98a3('0x10')],'waiting':this[_0x98a3('0x15')]};var _0x3e100d=md5(JSON['stringify'](_0x5fb0be));if(this['md5']!==_0x3e100d){this[_0x98a3('0xa')]=_0x3e100d;io['to'](util[_0x98a3('0x16')](_0x98a3('0x17'),_0x5fb0be[_0x98a3('0x5')]))[_0x98a3('0x18')]('openchannel_queue:save',_0x5fb0be);}};module[_0x98a3('0x19')]=OpenchannelQueue;
\ No newline at end of file
+var _0x29a0=['mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','online','paused','available','stringify','format','emit','openchannel_queue:save','md5','util','ioredis','redis','defaults','localhost','name','timeout','beepall','Agents'];(function(_0x37d3e0,_0x51d1f4){var _0x5512a3=function(_0x496e6b){while(--_0x496e6b){_0x37d3e0['push'](_0x37d3e0['shift']());}};_0x5512a3(++_0x51d1f4);}(_0x29a0,0x8c));var _0x029a=function(_0x36dd24,_0x53bf96){_0x36dd24=_0x36dd24-0x0;var _0xe95e18=_0x29a0[_0x36dd24];return _0xe95e18;};'use strict';var _=require('lodash');var md5=require(_0x029a('0x0'));var util=require(_0x029a('0x1'));var Redis=require(_0x029a('0x2'));var config=require('../../../config/environment');config[_0x029a('0x3')]=_[_0x029a('0x4')](config[_0x029a('0x3')],{'host':_0x029a('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function OpenchannelQueue(_0x302526){this['id']=_0x302526['id']||0x0;this[_0x029a('0x6')]=_0x302526[_0x029a('0x6')]||'';this[_0x029a('0x7')]=_0x302526[_0x029a('0x7')]||0xa;this['strategy']=_0x302526['strategy']||_0x029a('0x8');this[_0x029a('0x9')]=_0x302526['Agents'];this[_0x029a('0xa')]={};this[_0x029a('0xb')]=0x0;this[_0x029a('0x0')]='';this[_0x029a('0xc')]();this[_0x029a('0xd')]();}OpenchannelQueue[_0x029a('0xe')][_0x029a('0xc')]=function(){var _0x2ff3ec=this['mapAgentsId'][_0x029a('0xf')];this[_0x029a('0xa')]=_[_0x029a('0x10')](this[_0x029a('0x9')],'id');this[_0x029a('0xa')][_0x029a('0xf')]=_0x2ff3ec;};OpenchannelQueue[_0x029a('0xe')][_0x029a('0xd')]=function(){this[_0x029a('0x11')]=0x0;this['paused']=0x0;for(var _0x1cb71a=0x0;_0x1cb71a<this[_0x029a('0x9')]['length'];_0x1cb71a+=0x1){if(this['Agents'][_0x1cb71a][_0x029a('0x12')]){this['loggedIn']+=0x1;}if(this[_0x029a('0x9')][_0x1cb71a]['openchannelPause']){this[_0x029a('0x13')]+=0x1;}}this[_0x029a('0x14')]=this[_0x029a('0x11')]-this['paused'];this[_0x029a('0x14')]=this[_0x029a('0x14')]>=0x0?this[_0x029a('0x14')]:0x0;var _0x4ea2df={'id':this['id'],'available':this[_0x029a('0x14')],'loggedIn':this[_0x029a('0x11')],'name':this[_0x029a('0x6')],'paused':this['paused'],'waiting':this[_0x029a('0xb')]};var _0x3d689e=md5(JSON[_0x029a('0x15')](_0x4ea2df));if(this[_0x029a('0x0')]!==_0x3d689e){this[_0x029a('0x0')]=_0x3d689e;io['to'](util[_0x029a('0x16')]('openchannel:queue:%s',_0x4ea2df['name']))[_0x029a('0x17')](_0x029a('0x18'),_0x4ea2df);}};module['exports']=OpenchannelQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b88=['smsPause','available','waiting','stringify','format','sms:queue:%s','exports','md5','util','../../../config/environment','redis','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','updateRouting','updateRealtime','_rr','map','prototype','loggedIn','paused','length','online'];(function(_0x12ca5f,_0x223d98){var _0xfc3ae9=function(_0x1928fb){while(--_0x1928fb){_0x12ca5f['push'](_0x12ca5f['shift']());}};_0xfc3ae9(++_0x223d98);}(_0x1b88,0x166));var _0x81b8=function(_0x2c7618,_0x26be9c){_0x2c7618=_0x2c7618-0x0;var _0x5ce3f0=_0x1b88[_0x2c7618];return _0x5ce3f0;};'use strict';var _=require('lodash');var md5=require(_0x81b8('0x0'));var util=require(_0x81b8('0x1'));var config=require(_0x81b8('0x2'));config[_0x81b8('0x3')]=_['defaults'](config['redis'],{'host':_0x81b8('0x4'),'port':0x18eb});var io=require('socket.io-emitter')(config[_0x81b8('0x3')]);function SmsQueue(_0x377944){this['id']=_0x377944['id']||0x0;this['name']=_0x377944[_0x81b8('0x5')]||'';this['timeout']=_0x377944[_0x81b8('0x6')]||0xa;this[_0x81b8('0x7')]=_0x377944[_0x81b8('0x7')]||_0x81b8('0x8');this[_0x81b8('0x9')]=_0x377944['Agents'];this[_0x81b8('0xa')]={};this['waiting']=0x0;this[_0x81b8('0x0')]='';this[_0x81b8('0xb')]();this[_0x81b8('0xc')]();}SmsQueue['prototype'][_0x81b8('0xb')]=function(){var _0x56adb0=this['mapAgentsId'][_0x81b8('0xd')];this[_0x81b8('0xa')]=_[_0x81b8('0xe')](this['Agents'],'id');this['mapAgentsId'][_0x81b8('0xd')]=_0x56adb0;};SmsQueue[_0x81b8('0xf')][_0x81b8('0xc')]=function(){this[_0x81b8('0x10')]=0x0;this[_0x81b8('0x11')]=0x0;for(var _0xd44af3=0x0;_0xd44af3<this[_0x81b8('0x9')][_0x81b8('0x12')];_0xd44af3+=0x1){if(this[_0x81b8('0x9')][_0xd44af3][_0x81b8('0x13')]){this[_0x81b8('0x10')]+=0x1;}if(this[_0x81b8('0x9')][_0xd44af3][_0x81b8('0x14')]){this[_0x81b8('0x11')]+=0x1;}}this[_0x81b8('0x15')]=this[_0x81b8('0x10')]-this['paused'];this[_0x81b8('0x15')]=this[_0x81b8('0x15')]>=0x0?this[_0x81b8('0x15')]:0x0;var _0x149c61={'id':this['id'],'available':this['available'],'loggedIn':this[_0x81b8('0x10')],'name':this[_0x81b8('0x5')],'paused':this['paused'],'waiting':this[_0x81b8('0x16')]};var _0x3f6c96=md5(JSON[_0x81b8('0x17')](_0x149c61));if(this['md5']!==_0x3f6c96){this['md5']=_0x3f6c96;io['to'](util[_0x81b8('0x18')](_0x81b8('0x19'),_0x149c61[_0x81b8('0x5')]))['emit']('sms_queue:save',_0x149c61);}};module[_0x81b8('0x1a')]=SmsQueue;
\ No newline at end of file
+var _0x8281=['format','sms:queue:%s','emit','exports','md5','ioredis','../../../config/environment','redis','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','map','_rr','loggedIn','paused','smsPause','available'];(function(_0x59ac4f,_0xa1c039){var _0x7fb93d=function(_0x555821){while(--_0x555821){_0x59ac4f['push'](_0x59ac4f['shift']());}};_0x7fb93d(++_0xa1c039);}(_0x8281,0x149));var _0x1828=function(_0x36bb10,_0x5c4fa0){_0x36bb10=_0x36bb10-0x0;var _0x11b71d=_0x8281[_0x36bb10];return _0x11b71d;};'use strict';var _=require('lodash');var md5=require(_0x1828('0x0'));var util=require('util');var Redis=require(_0x1828('0x1'));var config=require(_0x1828('0x2'));config[_0x1828('0x3')]=_['defaults'](config[_0x1828('0x3')],{'host':_0x1828('0x4'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1828('0x3')]));function SmsQueue(_0xc06fc5){this['id']=_0xc06fc5['id']||0x0;this[_0x1828('0x5')]=_0xc06fc5[_0x1828('0x5')]||'';this[_0x1828('0x6')]=_0xc06fc5[_0x1828('0x6')]||0xa;this[_0x1828('0x7')]=_0xc06fc5[_0x1828('0x7')]||_0x1828('0x8');this[_0x1828('0x9')]=_0xc06fc5[_0x1828('0x9')];this[_0x1828('0xa')]={};this[_0x1828('0xb')]=0x0;this['md5']='';this[_0x1828('0xc')]();this[_0x1828('0xd')]();}SmsQueue[_0x1828('0xe')][_0x1828('0xc')]=function(){var _0x1b1581=this[_0x1828('0xa')]['_rr'];this['mapAgentsId']=_[_0x1828('0xf')](this[_0x1828('0x9')],'id');this['mapAgentsId'][_0x1828('0x10')]=_0x1b1581;};SmsQueue[_0x1828('0xe')]['updateRealtime']=function(){this[_0x1828('0x11')]=0x0;this[_0x1828('0x12')]=0x0;for(var _0x51fb24=0x0;_0x51fb24<this[_0x1828('0x9')]['length'];_0x51fb24+=0x1){if(this[_0x1828('0x9')][_0x51fb24]['online']){this['loggedIn']+=0x1;}if(this[_0x1828('0x9')][_0x51fb24][_0x1828('0x13')]){this[_0x1828('0x12')]+=0x1;}}this[_0x1828('0x14')]=this[_0x1828('0x11')]-this['paused'];this[_0x1828('0x14')]=this[_0x1828('0x14')]>=0x0?this[_0x1828('0x14')]:0x0;var _0x4ffb8e={'id':this['id'],'available':this[_0x1828('0x14')],'loggedIn':this['loggedIn'],'name':this[_0x1828('0x5')],'paused':this[_0x1828('0x12')],'waiting':this['waiting']};var _0x2fb83e=md5(JSON['stringify'](_0x4ffb8e));if(this[_0x1828('0x0')]!==_0x2fb83e){this[_0x1828('0x0')]=_0x2fb83e;io['to'](util[_0x1828('0x15')](_0x1828('0x16'),_0x4ffb8e['name']))[_0x1828('0x17')]('sms_queue:save',_0x4ffb8e);}};module[_0x1828('0x18')]=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd607=['moment','../model/interval','../model/smsQueue','../model/mailQueue','agents','intervals','openchannelQueues','chatQueues','smsQueues','mailQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','mapKeys','hasOwnProperty','prototype','initAgents','isUndefined','mergeFromDatabase','length','initOpenchannelQueues','updateRouting','updateRealtime','initChatQueues','initSmsQueues','initMailQueues','initFaxQueues','exports','bluebird','util','lodash'];(function(_0x2e0bf0,_0x28dab6){var _0x54a963=function(_0x14e1a5){while(--_0x14e1a5){_0x2e0bf0['push'](_0x2e0bf0['shift']());}};_0x54a963(++_0x28dab6);}(_0xd607,0x147));var _0x7d60=function(_0x259fdc,_0x58d517){_0x259fdc=_0x259fdc-0x0;var _0x4bb0d5=_0xd607[_0x259fdc];return _0x4bb0d5;};'use strict';var BPromise=require(_0x7d60('0x0'));var util=require(_0x7d60('0x1'));var _=require(_0x7d60('0x2'));var moment=require(_0x7d60('0x3'));var Agent=require('../model/agent');var Interval=require(_0x7d60('0x4'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require('../model/chatQueue');var SmsQueue=require(_0x7d60('0x5'));var MailQueue=require(_0x7d60('0x6'));var FaxQueue=require('../model/faxQueue');var Realtime=function(){this[_0x7d60('0x7')]={};this[_0x7d60('0x8')]={};this[_0x7d60('0x9')]={};this[_0x7d60('0xa')]={};this[_0x7d60('0xb')]={};this[_0x7d60('0xc')]={};this[_0x7d60('0xd')]={};this[_0x7d60('0xe')]={};this[_0x7d60('0xf')]={};this['openchannelQueuesWaitingInteractions']={};this[_0x7d60('0x10')]={};this[_0x7d60('0x11')]={};};function freeIsNotKey(_0x4e700d,_0x83e004,_0x3c244a){var _0x52a982=_[_0x7d60('0x12')](_0x4e700d,function(_0x596619,_0x24707c){return _0x596619[_0x3c244a];});for(var _0x4f97cc in _0x83e004){if(_0x83e004[_0x7d60('0x13')](_0x4f97cc)){if(!_0x52a982[_0x4f97cc]){delete _0x83e004[_0x4f97cc];}}}}Realtime['prototype']['mergeFromDatabase']=function(_0x22ac38,_0x2a5e9c){for(var _0x315d35 in _0x2a5e9c){if(_0x22ac38[_0x7d60('0x13')](_0x315d35)){_0x22ac38[_0x315d35]=_0x2a5e9c[_0x315d35];}}};Realtime[_0x7d60('0x14')][_0x7d60('0x15')]=function(){var _0x5353c0=this;return function(_0x330de9){if(_0x330de9){freeIsNotKey(_0x330de9,_0x5353c0[_0x7d60('0x7')],'id');for(var _0x24b957=0x0,_0x24ba38={},_0x26b034={};_0x24b957<_0x330de9['length'];_0x24b957+=0x1){_0x24ba38=_0x330de9[_0x24b957];if(_[_0x7d60('0x16')](_0x5353c0[_0x7d60('0x7')][_0x24ba38['id']])){_0x5353c0[_0x7d60('0x7')][_0x24ba38['id']]=new Agent(_0x24ba38);}else{_0x5353c0[_0x7d60('0x17')](_0x5353c0[_0x7d60('0x7')][_0x24ba38['id']],_0x24ba38);}}}return _0x5353c0[_0x7d60('0x7')];};};Realtime[_0x7d60('0x14')]['initIntervals']=function(){var _0x38737e=this;return function(_0x21a2c7){if(_0x21a2c7){freeIsNotKey(_0x21a2c7,_0x38737e[_0x7d60('0x8')],'id');for(var _0x239884=0x0,_0x31eadf={},_0xa9b535={};_0x239884<_0x21a2c7[_0x7d60('0x18')];_0x239884+=0x1){_0x31eadf=_0x21a2c7[_0x239884];if(_[_0x7d60('0x16')](_0x38737e['intervals'][_0x31eadf['id']])){_0x38737e[_0x7d60('0x8')][_0x31eadf['id']]=new Interval(_0x31eadf);}else{_0x38737e[_0x7d60('0x17')](_0x38737e[_0x7d60('0x8')][_0x31eadf['id']],_0x31eadf);}}}return _0x38737e[_0x7d60('0x8')];};};Realtime[_0x7d60('0x14')][_0x7d60('0x19')]=function(){var _0x519229=this;return function(_0x54f348){if(_0x54f348){freeIsNotKey(_0x54f348,_0x519229[_0x7d60('0x9')],'id');for(var _0x5b7177=0x0,_0x48e1f8={},_0x5297b6={};_0x5b7177<_0x54f348[_0x7d60('0x18')];_0x5b7177+=0x1){_0x48e1f8=_0x54f348[_0x5b7177];if(_['isUndefined'](_0x519229[_0x7d60('0x9')][_0x48e1f8['id']])){_0x519229['openchannelQueues'][_0x48e1f8['id']]=new OpenchannelQueue(_0x48e1f8);}else{_0x519229[_0x7d60('0x17')](_0x519229[_0x7d60('0x9')][_0x48e1f8['id']],_0x48e1f8);}_0x519229[_0x7d60('0x9')][_0x48e1f8['id']][_0x7d60('0x1a')]();_0x519229[_0x7d60('0x9')][_0x48e1f8['id']][_0x7d60('0x1b')]();}}return _0x519229[_0x7d60('0x9')];};};Realtime[_0x7d60('0x14')][_0x7d60('0x1c')]=function(){var _0x3bdcf7=this;return function(_0x1382d0){if(_0x1382d0){freeIsNotKey(_0x1382d0,_0x3bdcf7[_0x7d60('0xa')],'id');for(var _0x48ee12=0x0,_0x87d15d={},_0x161e26={};_0x48ee12<_0x1382d0[_0x7d60('0x18')];_0x48ee12+=0x1){_0x87d15d=_0x1382d0[_0x48ee12];if(_[_0x7d60('0x16')](_0x3bdcf7[_0x7d60('0xa')][_0x87d15d['id']])){_0x3bdcf7[_0x7d60('0xa')][_0x87d15d['id']]=new ChatQueue(_0x87d15d);}else{_0x3bdcf7[_0x7d60('0x17')](_0x3bdcf7[_0x7d60('0xa')][_0x87d15d['id']],_0x87d15d);}_0x3bdcf7[_0x7d60('0xa')][_0x87d15d['id']][_0x7d60('0x1a')]();_0x3bdcf7[_0x7d60('0xa')][_0x87d15d['id']]['updateRealtime']();}}return _0x3bdcf7[_0x7d60('0xa')];};};Realtime[_0x7d60('0x14')][_0x7d60('0x1d')]=function(){var _0x1d9cf7=this;return function(_0x249eb5){if(_0x249eb5){freeIsNotKey(_0x249eb5,_0x1d9cf7[_0x7d60('0xb')],'id');for(var _0x5b4955=0x0,_0x4b6499={},_0xbe02f={};_0x5b4955<_0x249eb5['length'];_0x5b4955+=0x1){_0x4b6499=_0x249eb5[_0x5b4955];if(_['isUndefined'](_0x1d9cf7[_0x7d60('0xb')][_0x4b6499['id']])){_0x1d9cf7[_0x7d60('0xb')][_0x4b6499['id']]=new SmsQueue(_0x4b6499);}else{_0x1d9cf7[_0x7d60('0x17')](_0x1d9cf7[_0x7d60('0xb')][_0x4b6499['id']],_0x4b6499);}_0x1d9cf7['smsQueues'][_0x4b6499['id']][_0x7d60('0x1a')]();_0x1d9cf7[_0x7d60('0xb')][_0x4b6499['id']]['updateRealtime']();}}return _0x1d9cf7[_0x7d60('0xb')];};};Realtime[_0x7d60('0x14')][_0x7d60('0x1e')]=function(){var _0x342430=this;return function(_0x169f1f){if(_0x169f1f){freeIsNotKey(_0x169f1f,_0x342430['mailQueues'],'id');for(var _0xeeeeff=0x0,_0xcc873d={},_0x269be1={};_0xeeeeff<_0x169f1f['length'];_0xeeeeff+=0x1){_0xcc873d=_0x169f1f[_0xeeeeff];if(_['isUndefined'](_0x342430[_0x7d60('0xc')][_0xcc873d['id']])){_0x342430['mailQueues'][_0xcc873d['id']]=new MailQueue(_0xcc873d);}else{_0x342430['mergeFromDatabase'](_0x342430['mailQueues'][_0xcc873d['id']],_0xcc873d);}_0x342430['mailQueues'][_0xcc873d['id']]['updateRouting']();_0x342430[_0x7d60('0xc')][_0xcc873d['id']][_0x7d60('0x1b')]();}}return _0x342430[_0x7d60('0xc')];};};Realtime[_0x7d60('0x14')][_0x7d60('0x1f')]=function(){var _0x453501=this;return function(_0x3092f5){if(_0x3092f5){freeIsNotKey(_0x3092f5,_0x453501[_0x7d60('0xd')],'id');for(var _0x29df9d=0x0,_0x478231={},_0x166b00={};_0x29df9d<_0x3092f5[_0x7d60('0x18')];_0x29df9d+=0x1){_0x478231=_0x3092f5[_0x29df9d];if(_[_0x7d60('0x16')](_0x453501[_0x7d60('0xd')][_0x478231['id']])){_0x453501['faxQueues'][_0x478231['id']]=new FaxQueue(_0x478231);}else{_0x453501[_0x7d60('0x17')](_0x453501[_0x7d60('0xd')][_0x478231['id']],_0x478231);}_0x453501[_0x7d60('0xd')][_0x478231['id']]['updateRouting']();_0x453501['faxQueues'][_0x478231['id']][_0x7d60('0x1b')]();}}return _0x453501[_0x7d60('0xd')];};};module[_0x7d60('0x20')]=Realtime;
\ No newline at end of file
+var _0x0a05=['faxQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','mapKeys','hasOwnProperty','prototype','initAgents','isUndefined','agents','mergeFromDatabase','initIntervals','length','initOpenchannelQueues','openchannelQueues','updateRealtime','initChatQueues','updateRouting','initMailQueues','exports','util','moment','../model/agent','../model/interval','../model/openchannelQueue','../model/chatQueue','../model/mailQueue','intervals','chatQueues','smsQueues','mailQueues'];(function(_0x2080a3,_0x48acfa){var _0x8d7d17=function(_0x2dbc06){while(--_0x2dbc06){_0x2080a3['push'](_0x2080a3['shift']());}};_0x8d7d17(++_0x48acfa);}(_0x0a05,0x175));var _0x50a0=function(_0x186376,_0x5d988a){_0x186376=_0x186376-0x0;var _0x2dbdd9=_0x0a05[_0x186376];return _0x2dbdd9;};'use strict';var BPromise=require('bluebird');var util=require(_0x50a0('0x0'));var _=require('lodash');var moment=require(_0x50a0('0x1'));var Agent=require(_0x50a0('0x2'));var Interval=require(_0x50a0('0x3'));var OpenchannelQueue=require(_0x50a0('0x4'));var ChatQueue=require(_0x50a0('0x5'));var SmsQueue=require('../model/smsQueue');var MailQueue=require(_0x50a0('0x6'));var FaxQueue=require('../model/faxQueue');var Realtime=function(){this['agents']={};this[_0x50a0('0x7')]={};this['openchannelQueues']={};this[_0x50a0('0x8')]={};this[_0x50a0('0x9')]={};this[_0x50a0('0xa')]={};this[_0x50a0('0xb')]={};this[_0x50a0('0xc')]={};this['mailQueuesWaitingInteractions']={};this[_0x50a0('0xd')]={};this[_0x50a0('0xe')]={};this[_0x50a0('0xf')]={};};function freeIsNotKey(_0x12bba4,_0x14ca39,_0x5d9f5a){var _0x3c2e7d=_[_0x50a0('0x10')](_0x12bba4,function(_0x21dfd9,_0x4ff9c3){return _0x21dfd9[_0x5d9f5a];});for(var _0x1900f5 in _0x14ca39){if(_0x14ca39[_0x50a0('0x11')](_0x1900f5)){if(!_0x3c2e7d[_0x1900f5]){delete _0x14ca39[_0x1900f5];}}}}Realtime['prototype']['mergeFromDatabase']=function(_0x4f1e83,_0xb23650){for(var _0x5e4b77 in _0xb23650){if(_0x4f1e83[_0x50a0('0x11')](_0x5e4b77)){_0x4f1e83[_0x5e4b77]=_0xb23650[_0x5e4b77];}}};Realtime[_0x50a0('0x12')][_0x50a0('0x13')]=function(){var _0x3f0354=this;return function(_0x3aec69){if(_0x3aec69){freeIsNotKey(_0x3aec69,_0x3f0354['agents'],'id');for(var _0x300a96=0x0,_0x4cee4c={},_0x35c1d7={};_0x300a96<_0x3aec69['length'];_0x300a96+=0x1){_0x4cee4c=_0x3aec69[_0x300a96];if(_[_0x50a0('0x14')](_0x3f0354[_0x50a0('0x15')][_0x4cee4c['id']])){_0x3f0354['agents'][_0x4cee4c['id']]=new Agent(_0x4cee4c);}else{_0x3f0354[_0x50a0('0x16')](_0x3f0354['agents'][_0x4cee4c['id']],_0x4cee4c);}}}return _0x3f0354[_0x50a0('0x15')];};};Realtime[_0x50a0('0x12')][_0x50a0('0x17')]=function(){var _0x30cfac=this;return function(_0x4b7e9d){if(_0x4b7e9d){freeIsNotKey(_0x4b7e9d,_0x30cfac[_0x50a0('0x7')],'id');for(var _0x480861=0x0,_0xc4f46f={},_0x52b03a={};_0x480861<_0x4b7e9d[_0x50a0('0x18')];_0x480861+=0x1){_0xc4f46f=_0x4b7e9d[_0x480861];if(_[_0x50a0('0x14')](_0x30cfac[_0x50a0('0x7')][_0xc4f46f['id']])){_0x30cfac[_0x50a0('0x7')][_0xc4f46f['id']]=new Interval(_0xc4f46f);}else{_0x30cfac[_0x50a0('0x16')](_0x30cfac[_0x50a0('0x7')][_0xc4f46f['id']],_0xc4f46f);}}}return _0x30cfac[_0x50a0('0x7')];};};Realtime[_0x50a0('0x12')][_0x50a0('0x19')]=function(){var _0x2c10b7=this;return function(_0x88e3f9){if(_0x88e3f9){freeIsNotKey(_0x88e3f9,_0x2c10b7['openchannelQueues'],'id');for(var _0x28dcc0=0x0,_0x3a2397={},_0xffb1f0={};_0x28dcc0<_0x88e3f9[_0x50a0('0x18')];_0x28dcc0+=0x1){_0x3a2397=_0x88e3f9[_0x28dcc0];if(_[_0x50a0('0x14')](_0x2c10b7[_0x50a0('0x1a')][_0x3a2397['id']])){_0x2c10b7[_0x50a0('0x1a')][_0x3a2397['id']]=new OpenchannelQueue(_0x3a2397);}else{_0x2c10b7[_0x50a0('0x16')](_0x2c10b7[_0x50a0('0x1a')][_0x3a2397['id']],_0x3a2397);}_0x2c10b7['openchannelQueues'][_0x3a2397['id']]['updateRouting']();_0x2c10b7['openchannelQueues'][_0x3a2397['id']][_0x50a0('0x1b')]();}}return _0x2c10b7[_0x50a0('0x1a')];};};Realtime[_0x50a0('0x12')][_0x50a0('0x1c')]=function(){var _0xaf265b=this;return function(_0x490af0){if(_0x490af0){freeIsNotKey(_0x490af0,_0xaf265b[_0x50a0('0x8')],'id');for(var _0x1291ba=0x0,_0x538389={},_0x507f5e={};_0x1291ba<_0x490af0['length'];_0x1291ba+=0x1){_0x538389=_0x490af0[_0x1291ba];if(_[_0x50a0('0x14')](_0xaf265b[_0x50a0('0x8')][_0x538389['id']])){_0xaf265b[_0x50a0('0x8')][_0x538389['id']]=new ChatQueue(_0x538389);}else{_0xaf265b['mergeFromDatabase'](_0xaf265b[_0x50a0('0x8')][_0x538389['id']],_0x538389);}_0xaf265b[_0x50a0('0x8')][_0x538389['id']][_0x50a0('0x1d')]();_0xaf265b[_0x50a0('0x8')][_0x538389['id']][_0x50a0('0x1b')]();}}return _0xaf265b[_0x50a0('0x8')];};};Realtime[_0x50a0('0x12')]['initSmsQueues']=function(){var _0x202a21=this;return function(_0x449b17){if(_0x449b17){freeIsNotKey(_0x449b17,_0x202a21[_0x50a0('0x9')],'id');for(var _0xd9408e=0x0,_0x35f71c={},_0x5c58cd={};_0xd9408e<_0x449b17[_0x50a0('0x18')];_0xd9408e+=0x1){_0x35f71c=_0x449b17[_0xd9408e];if(_[_0x50a0('0x14')](_0x202a21['smsQueues'][_0x35f71c['id']])){_0x202a21[_0x50a0('0x9')][_0x35f71c['id']]=new SmsQueue(_0x35f71c);}else{_0x202a21[_0x50a0('0x16')](_0x202a21[_0x50a0('0x9')][_0x35f71c['id']],_0x35f71c);}_0x202a21[_0x50a0('0x9')][_0x35f71c['id']][_0x50a0('0x1d')]();_0x202a21[_0x50a0('0x9')][_0x35f71c['id']]['updateRealtime']();}}return _0x202a21[_0x50a0('0x9')];};};Realtime[_0x50a0('0x12')][_0x50a0('0x1e')]=function(){var _0x3a2702=this;return function(_0x8d50c3){if(_0x8d50c3){freeIsNotKey(_0x8d50c3,_0x3a2702[_0x50a0('0xa')],'id');for(var _0x2438ef=0x0,_0x5bda54={},_0x173e63={};_0x2438ef<_0x8d50c3[_0x50a0('0x18')];_0x2438ef+=0x1){_0x5bda54=_0x8d50c3[_0x2438ef];if(_['isUndefined'](_0x3a2702['mailQueues'][_0x5bda54['id']])){_0x3a2702[_0x50a0('0xa')][_0x5bda54['id']]=new MailQueue(_0x5bda54);}else{_0x3a2702[_0x50a0('0x16')](_0x3a2702[_0x50a0('0xa')][_0x5bda54['id']],_0x5bda54);}_0x3a2702['mailQueues'][_0x5bda54['id']][_0x50a0('0x1d')]();_0x3a2702[_0x50a0('0xa')][_0x5bda54['id']][_0x50a0('0x1b')]();}}return _0x3a2702[_0x50a0('0xa')];};};Realtime[_0x50a0('0x12')]['initFaxQueues']=function(){var _0x4ff283=this;return function(_0x33f8f1){if(_0x33f8f1){freeIsNotKey(_0x33f8f1,_0x4ff283[_0x50a0('0xb')],'id');for(var _0x4370fa=0x0,_0x281568={},_0x351fbd={};_0x4370fa<_0x33f8f1[_0x50a0('0x18')];_0x4370fa+=0x1){_0x281568=_0x33f8f1[_0x4370fa];if(_[_0x50a0('0x14')](_0x4ff283[_0x50a0('0xb')][_0x281568['id']])){_0x4ff283[_0x50a0('0xb')][_0x281568['id']]=new FaxQueue(_0x281568);}else{_0x4ff283['mergeFromDatabase'](_0x4ff283[_0x50a0('0xb')][_0x281568['id']],_0x281568);}_0x4ff283[_0x50a0('0xb')][_0x281568['id']][_0x50a0('0x1d')]();_0x4ff283[_0x50a0('0xb')][_0x281568['id']][_0x50a0('0x1b')]();}}return _0x4ff283['faxQueues'];};};module[_0x50a0('0x1f')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe36b=['addTagsToChatInteraction','../client','update','UpdateChatInteraction','updateChatInteraction','addTags','Request','AddTagsToChatInteraction'];(function(_0x43bac6,_0x1ca0e0){var _0x34d696=function(_0x14b1cf){while(--_0x14b1cf){_0x43bac6['push'](_0x43bac6['shift']());}};_0x34d696(++_0x1ca0e0);}(_0xe36b,0xa9));var _0xbe36=function(_0x3039a1,_0x3a8d18){_0x3039a1=_0x3039a1-0x0;var _0x501a12=_0xe36b[_0x3039a1];return _0x501a12;};'use strict';var client=require(_0xbe36('0x0'));exports[_0xbe36('0x1')]=function(_0x4bb884,_0x2cebff){return client['Request'](_0xbe36('0x2'),{'body':_0x2cebff,'options':{'where':{'id':_0x4bb884}},'log':_0xbe36('0x3')});};exports[_0xbe36('0x4')]=function(_0x4658e4,_0x180727){return client[_0xbe36('0x5')](_0xbe36('0x6'),{'body':_0x180727,'options':{'where':{'id':_0x4658e4}},'log':_0xbe36('0x7')});};
\ No newline at end of file
+var _0x5a21=['Request','updateChatInteraction','addTags','AddTagsToChatInteraction','../client','update'];(function(_0x3b1648,_0x4504c0){var _0x44225e=function(_0x16481a){while(--_0x16481a){_0x3b1648['push'](_0x3b1648['shift']());}};_0x44225e(++_0x4504c0);}(_0x5a21,0x1e4));var _0x15a2=function(_0x2fe5b9,_0x127e48){_0x2fe5b9=_0x2fe5b9-0x0;var _0x6f874=_0x5a21[_0x2fe5b9];return _0x6f874;};'use strict';var client=require(_0x15a2('0x0'));exports[_0x15a2('0x1')]=function(_0xcd784a,_0x13299b){return client[_0x15a2('0x2')]('UpdateChatInteraction',{'body':_0x13299b,'options':{'where':{'id':_0xcd784a}},'log':_0x15a2('0x3')});};exports[_0x15a2('0x4')]=function(_0x5747a6,_0x3e875d){return client[_0x15a2('0x2')](_0x15a2('0x5'),{'body':_0x3e875d,'options':{'where':{'id':_0x5747a6}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd586=['../client','create','CreateChatMessage','createChatMessage'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd586,0x10c));var _0x6d58=function(_0x1a36a8,_0x81b508){_0x1a36a8=_0x1a36a8-0x0;var _0xd8cd42=_0xd586[_0x1a36a8];return _0xd8cd42;};'use strict';var client=require(_0x6d58('0x0'));exports[_0x6d58('0x1')]=function(_0x4c4efd){return client['Request'](_0x6d58('0x2'),{'body':_0x4c4efd,'log':_0x6d58('0x3')});};
\ No newline at end of file
+var _0xae98=['createChatMessage','../client','create','Request'];(function(_0x525d35,_0xe67489){var _0x4813d2=function(_0x4a6dc8){while(--_0x4a6dc8){_0x525d35['push'](_0x525d35['shift']());}};_0x4813d2(++_0xe67489);}(_0xae98,0x135));var _0x8ae9=function(_0x80128c,_0x19ba19){_0x80128c=_0x80128c-0x0;var _0x50d23a=_0xae98[_0x80128c];return _0x50d23a;};'use strict';var client=require(_0x8ae9('0x0'));exports[_0x8ae9('0x1')]=function(_0x231b9c){return client[_0x8ae9('0x2')]('CreateChatMessage',{'body':_0x231b9c,'log':_0x8ae9('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a09=['chatPause','../client','Request','GetChatQueue','name','timeout','strategy','User','Agents','online'];(function(_0x3e0934,_0x41f928){var _0x538bc2=function(_0x5abbaa){while(--_0x5abbaa){_0x3e0934['push'](_0x3e0934['shift']());}};_0x538bc2(++_0x41f928);}(_0x0a09,0x1cd));var _0x90a0=function(_0x37b3e5,_0x33b516){_0x37b3e5=_0x37b3e5-0x0;var _0x207f20=_0x0a09[_0x37b3e5];return _0x207f20;};'use strict';var client=require(_0x90a0('0x0'));exports['getChatQueues']=function(){return function(){return client[_0x90a0('0x1')](_0x90a0('0x2'),{'options':{'raw':![],'attributes':['id',_0x90a0('0x3'),_0x90a0('0x4'),_0x90a0('0x5')],'include':[{'model':_0x90a0('0x6'),'as':_0x90a0('0x7'),'attributes':['id',_0x90a0('0x3'),_0x90a0('0x8'),_0x90a0('0x9')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0x9135=['timeout','strategy','User','Agents','online','chatPause','getChatQueues','Request','GetChatQueue','name'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x9135,0x75));var _0x5913=function(_0x3cd395,_0x472607){_0x3cd395=_0x3cd395-0x0;var _0x56fd86=_0x9135[_0x3cd395];return _0x56fd86;};'use strict';var client=require('../client');exports['getChatQueues']=function(){return function(){return client[_0x5913('0x0')](_0x5913('0x1'),{'options':{'raw':![],'attributes':['id',_0x5913('0x2'),_0x5913('0x3'),_0x5913('0x4')],'include':[{'model':_0x5913('0x5'),'as':_0x5913('0x6'),'attributes':['id',_0x5913('0x2'),_0x5913('0x7'),_0x5913('0x8')]}]},'log':_0x5913('0x9')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe009=['UpdateChatQueueReport','DESC','../client','create','Request','CreateChatQueueReport'];(function(_0x83af7f,_0x49c6fd){var _0x32d85c=function(_0xf0e8bc){while(--_0xf0e8bc){_0x83af7f['push'](_0x83af7f['shift']());}};_0x32d85c(++_0x49c6fd);}(_0xe009,0x122));var _0x9e00=function(_0x3403ef,_0x5e8b28){_0x3403ef=_0x3403ef-0x0;var _0xf71397=_0xe009[_0x3403ef];return _0xf71397;};'use strict';var client=require(_0x9e00('0x0'));exports[_0x9e00('0x1')]=function(_0x1b8c63){return client[_0x9e00('0x2')]('CreateChatQueueReport',{'body':_0x1b8c63,'log':_0x9e00('0x3')});};exports['update']=function(_0x49a072,_0x24d136){return client[_0x9e00('0x2')](_0x9e00('0x4'),{'body':_0x24d136,'options':{'where':{'uniqueid':_0x49a072},'order':[['id',_0x9e00('0x5')]],'limit':0x1},'log':_0x9e00('0x4')});};
\ No newline at end of file
+var _0xf6d1=['create','Request','CreateChatQueueReport','update','UpdateChatQueueReport','DESC','../client'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xf6d1,0x99));var _0x1f6d=function(_0x311c35,_0x534915){_0x311c35=_0x311c35-0x0;var _0x5cc50c=_0xf6d1[_0x311c35];return _0x5cc50c;};'use strict';var client=require(_0x1f6d('0x0'));exports[_0x1f6d('0x1')]=function(_0x32feaa){return client[_0x1f6d('0x2')](_0x1f6d('0x3'),{'body':_0x32feaa,'log':_0x1f6d('0x3')});};exports[_0x1f6d('0x4')]=function(_0x4fa5a2,_0x1b8190){return client['Request'](_0x1f6d('0x5'),{'body':_0x1b8190,'options':{'where':{'uniqueid':_0x4fa5a2},'order':[['id',_0x1f6d('0x6')]],'limit':0x1},'log':_0x1f6d('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02d7=['updateFaxInteraction','addTags','addTagsToFaxInteraction','UpdateFaxInteraction'];(function(_0x429473,_0x27a188){var _0x13bd19=function(_0x57e6e5){while(--_0x57e6e5){_0x429473['push'](_0x429473['shift']());}};_0x13bd19(++_0x27a188);}(_0x02d7,0xf3));var _0x702d=function(_0x3d8f53,_0x42f231){_0x3d8f53=_0x3d8f53-0x0;var _0x1c559a=_0x02d7[_0x3d8f53];return _0x1c559a;};'use strict';var client=require('../client');exports['update']=function(_0x23da98,_0x3116ef){return client['Request'](_0x702d('0x0'),{'body':_0x3116ef,'options':{'where':{'id':_0x23da98}},'log':_0x702d('0x1')});};exports[_0x702d('0x2')]=function(_0xbecad6,_0x41a807){return client['Request']('AddTagsToFaxInteraction',{'body':_0x41a807,'options':{'where':{'id':_0xbecad6}},'log':_0x702d('0x3')});};
\ No newline at end of file
+var _0x17d7=['AddTagsToFaxInteraction','update','Request','updateFaxInteraction','addTags'];(function(_0x2b7e7c,_0x540895){var _0x4b4bf9=function(_0x2fffe9){while(--_0x2fffe9){_0x2b7e7c['push'](_0x2b7e7c['shift']());}};_0x4b4bf9(++_0x540895);}(_0x17d7,0x132));var _0x717d=function(_0x302df5,_0x2bb8cb){_0x302df5=_0x302df5-0x0;var _0x1552d4=_0x17d7[_0x302df5];return _0x1552d4;};'use strict';var client=require('../client');exports[_0x717d('0x0')]=function(_0x935a80,_0x52f5d9){return client[_0x717d('0x1')]('UpdateFaxInteraction',{'body':_0x52f5d9,'options':{'where':{'id':_0x935a80}},'log':_0x717d('0x2')});};exports[_0x717d('0x3')]=function(_0x2c9d49,_0x5c4c2b){return client['Request'](_0x717d('0x4'),{'body':_0x5c4c2b,'options':{'where':{'id':_0x2c9d49}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2547=['../client','create','Request','CreateFaxMessage'];(function(_0x595f52,_0x5b683d){var _0x4bc1bc=function(_0x3a596d){while(--_0x3a596d){_0x595f52['push'](_0x595f52['shift']());}};_0x4bc1bc(++_0x5b683d);}(_0x2547,0x118));var _0x7254=function(_0x301345,_0x3c8808){_0x301345=_0x301345-0x0;var _0xda5099=_0x2547[_0x301345];return _0xda5099;};'use strict';var client=require(_0x7254('0x0'));exports[_0x7254('0x1')]=function(_0xdb2a06){return client[_0x7254('0x2')](_0x7254('0x3'),{'body':_0xdb2a06,'log':'createFaxMessage'});};
\ No newline at end of file
+var _0x45c2=['../client','create','createFaxMessage'];(function(_0x4c5c65,_0x56c639){var _0x162a1c=function(_0x3c77d8){while(--_0x3c77d8){_0x4c5c65['push'](_0x4c5c65['shift']());}};_0x162a1c(++_0x56c639);}(_0x45c2,0xd5));var _0x245c=function(_0x137da3,_0xa6277a){_0x137da3=_0x137da3-0x0;var _0x1ac46c=_0x45c2[_0x137da3];return _0x1ac46c;};'use strict';var client=require(_0x245c('0x0'));exports[_0x245c('0x1')]=function(_0x81c440){return client['Request']('CreateFaxMessage',{'body':_0x81c440,'log':_0x245c('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4e5=['Agents','online','../client','getFaxQueues','Request','GetFaxQueue','name','strategy','User'];(function(_0x76a765,_0x1b44b8){var _0x53a3e3=function(_0x1723a7){while(--_0x1723a7){_0x76a765['push'](_0x76a765['shift']());}};_0x53a3e3(++_0x1b44b8);}(_0xf4e5,0x92));var _0x5f4e=function(_0x254c3d,_0x53db85){_0x254c3d=_0x254c3d-0x0;var _0x295fc1=_0xf4e5[_0x254c3d];return _0x295fc1;};'use strict';var client=require(_0x5f4e('0x0'));exports[_0x5f4e('0x1')]=function(){return function(){return client[_0x5f4e('0x2')](_0x5f4e('0x3'),{'options':{'raw':![],'attributes':['id',_0x5f4e('0x4'),'timeout',_0x5f4e('0x5')],'include':[{'model':_0x5f4e('0x6'),'as':_0x5f4e('0x7'),'attributes':['id',_0x5f4e('0x4'),_0x5f4e('0x8'),'faxPause']}]},'log':'getFaxQueues'});};};
\ No newline at end of file
+var _0x6876=['GetFaxQueue','timeout','strategy','online','faxPause','getFaxQueues'];(function(_0xc2c89,_0x22c701){var _0x4f9032=function(_0x1fbeae){while(--_0x1fbeae){_0xc2c89['push'](_0xc2c89['shift']());}};_0x4f9032(++_0x22c701);}(_0x6876,0x119));var _0x6687=function(_0xf27a5d,_0x5a3b2f){_0xf27a5d=_0xf27a5d-0x0;var _0x217da7=_0x6876[_0xf27a5d];return _0x217da7;};'use strict';var client=require('../client');exports[_0x6687('0x0')]=function(){return function(){return client['Request'](_0x6687('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x6687('0x2'),_0x6687('0x3')],'include':[{'model':'User','as':'Agents','attributes':['id','name',_0x6687('0x4'),_0x6687('0x5')]}]},'log':_0x6687('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74ae=['DESC','UpdateFaxQueueReport','../client','create','Request','CreateFaxQueueReport'];(function(_0x17e735,_0x328f40){var _0x1824d6=function(_0x4460fe){while(--_0x4460fe){_0x17e735['push'](_0x17e735['shift']());}};_0x1824d6(++_0x328f40);}(_0x74ae,0x1d6));var _0xe74a=function(_0x5e6e2a,_0x54984e){_0x5e6e2a=_0x5e6e2a-0x0;var _0x9ca794=_0x74ae[_0x5e6e2a];return _0x9ca794;};'use strict';var client=require(_0xe74a('0x0'));exports[_0xe74a('0x1')]=function(_0x3e154e){return client[_0xe74a('0x2')]('CreateFaxQueueReport',{'body':_0x3e154e,'log':_0xe74a('0x3')});};exports['update']=function(_0x5298a3,_0x250626){return client[_0xe74a('0x2')]('UpdateFaxQueueReport',{'body':_0x250626,'options':{'where':{'uniqueid':_0x5298a3},'order':[['id',_0xe74a('0x4')]],'limit':0x1},'log':_0xe74a('0x5')});};
\ No newline at end of file
+var _0xf2a5=['Request','UpdateFaxQueueReport','create'];(function(_0x3438cf,_0x73b174){var _0x278698=function(_0xbba932){while(--_0xbba932){_0x3438cf['push'](_0x3438cf['shift']());}};_0x278698(++_0x73b174);}(_0xf2a5,0xc8));var _0x5f2a=function(_0x20540c,_0x3a3e9c){_0x20540c=_0x20540c-0x0;var _0x4fa909=_0xf2a5[_0x20540c];return _0x4fa909;};'use strict';var client=require('../client');exports[_0x5f2a('0x0')]=function(_0x5940d){return client['Request']('CreateFaxQueueReport',{'body':_0x5940d,'log':'CreateFaxQueueReport'});};exports['update']=function(_0x32d490,_0x1650fe){return client[_0x5f2a('0x1')](_0x5f2a('0x2'),{'body':_0x1650fe,'options':{'where':{'uniqueid':_0x32d490},'order':[['id','DESC']],'limit':0x1},'log':_0x5f2a('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd4f=['interval','getIntervals','../client','name','Interval'];(function(_0x239786,_0x471f27){var _0x3f15e2=function(_0x1c3781){while(--_0x1c3781){_0x239786['push'](_0x239786['shift']());}};_0x3f15e2(++_0x471f27);}(_0xdd4f,0x1ce));var _0xfdd4=function(_0x580b93,_0x335dfd){_0x580b93=_0x580b93-0x0;var _0x24fb2a=_0xdd4f[_0x580b93];return _0x24fb2a;};'use strict';var client=require(_0xfdd4('0x0'));exports['getIntervals']=function(){return function(){return client['Request']('GetInterval',{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0xfdd4('0x1')],'include':[{'model':_0xfdd4('0x2'),'as':'Intervals','attributes':['id',_0xfdd4('0x1'),_0xfdd4('0x3')]}]},'log':_0xfdd4('0x4')});};};
\ No newline at end of file
+var _0x93e9=['Intervals','../client','getIntervals','Request','GetInterval','name','Interval'];(function(_0x2080a3,_0x48acfa){var _0x8d7d17=function(_0x2dbc06){while(--_0x2dbc06){_0x2080a3['push'](_0x2080a3['shift']());}};_0x8d7d17(++_0x48acfa);}(_0x93e9,0xcc));var _0x993e=function(_0x230977,_0x297427){_0x230977=_0x230977-0x0;var _0x2692f8=_0x93e9[_0x230977];return _0x2692f8;};'use strict';var client=require(_0x993e('0x0'));exports[_0x993e('0x1')]=function(){return function(){return client[_0x993e('0x2')](_0x993e('0x3'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x993e('0x4')],'include':[{'model':_0x993e('0x5'),'as':_0x993e('0x6'),'attributes':['id','name','interval']}]},'log':_0x993e('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a5d=['Request','UpdateMailInteraction','updateMailInteraction','AddTagsToMailInteraction','addTagsToChatInteraction','../client','update'];(function(_0x5b6ebb,_0x11443f){var _0x30d3a0=function(_0x5162c8){while(--_0x5162c8){_0x5b6ebb['push'](_0x5b6ebb['shift']());}};_0x30d3a0(++_0x11443f);}(_0x6a5d,0xe5));var _0xd6a5=function(_0x1188f7,_0x223187){_0x1188f7=_0x1188f7-0x0;var _0x3c546d=_0x6a5d[_0x1188f7];return _0x3c546d;};'use strict';var client=require(_0xd6a5('0x0'));exports[_0xd6a5('0x1')]=function(_0x351805,_0x5a280d){return client[_0xd6a5('0x2')](_0xd6a5('0x3'),{'body':_0x5a280d,'options':{'where':{'id':_0x351805}},'log':_0xd6a5('0x4')});};exports['addTags']=function(_0x4fae65,_0x2bee44){return client[_0xd6a5('0x2')](_0xd6a5('0x5'),{'body':_0x2bee44,'options':{'where':{'id':_0x4fae65}},'log':_0xd6a5('0x6')});};
\ No newline at end of file
+var _0x02ed=['update','Request','UpdateMailInteraction','updateMailInteraction','AddTagsToMailInteraction','addTagsToChatInteraction','../client'];(function(_0x491ecc,_0x5a6e47){var _0x6d6ca1=function(_0x2c922a){while(--_0x2c922a){_0x491ecc['push'](_0x491ecc['shift']());}};_0x6d6ca1(++_0x5a6e47);}(_0x02ed,0x16b));var _0xd02e=function(_0xb5f04b,_0x51d4b4){_0xb5f04b=_0xb5f04b-0x0;var _0x16573b=_0x02ed[_0xb5f04b];return _0x16573b;};'use strict';var client=require(_0xd02e('0x0'));exports[_0xd02e('0x1')]=function(_0xb65977,_0x2a43a7){return client[_0xd02e('0x2')](_0xd02e('0x3'),{'body':_0x2a43a7,'options':{'where':{'id':_0xb65977}},'log':_0xd02e('0x4')});};exports['addTags']=function(_0xd83069,_0x1f15c9){return client['Request'](_0xd02e('0x5'),{'body':_0x1f15c9,'options':{'where':{'id':_0xd83069}},'log':_0xd02e('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3325=['createMailMessage','create','Request'];(function(_0x1dd6c9,_0x274f20){var _0x7c4535=function(_0x291547){while(--_0x291547){_0x1dd6c9['push'](_0x1dd6c9['shift']());}};_0x7c4535(++_0x274f20);}(_0x3325,0x1a2));var _0x5332=function(_0x236654,_0x16e44f){_0x236654=_0x236654-0x0;var _0x27653b=_0x3325[_0x236654];return _0x27653b;};'use strict';var client=require('../client');exports[_0x5332('0x0')]=function(_0x2bc019){return client[_0x5332('0x1')]('CreateMailMessage',{'body':_0x2bc019,'log':_0x5332('0x2')});};
\ No newline at end of file
+var _0xa6cf=['createMailMessage','../client','Request'];(function(_0x1a7fe0,_0x349c84){var _0x2ee091=function(_0x181b0f){while(--_0x181b0f){_0x1a7fe0['push'](_0x1a7fe0['shift']());}};_0x2ee091(++_0x349c84);}(_0xa6cf,0x9a));var _0xfa6c=function(_0x52896b,_0x35333b){_0x52896b=_0x52896b-0x0;var _0x582787=_0xa6cf[_0x52896b];return _0x582787;};'use strict';var client=require(_0xfa6c('0x0'));exports['create']=function(_0x3f3220){return client[_0xfa6c('0x1')]('CreateMailMessage',{'body':_0x3f3220,'log':_0xfa6c('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2066=['mailPause','../client','getMailQueues','Request','GetMailQueue','name','timeout','strategy'];(function(_0x3cf1dc,_0x1d3274){var _0xb97c58=function(_0x1460d7){while(--_0x1460d7){_0x3cf1dc['push'](_0x3cf1dc['shift']());}};_0xb97c58(++_0x1d3274);}(_0x2066,0x109));var _0x6206=function(_0x4c3497,_0x22216b){_0x4c3497=_0x4c3497-0x0;var _0x3ca3a8=_0x2066[_0x4c3497];return _0x3ca3a8;};'use strict';var client=require(_0x6206('0x0'));exports[_0x6206('0x1')]=function(){return function(){return client[_0x6206('0x2')](_0x6206('0x3'),{'options':{'raw':![],'attributes':['id',_0x6206('0x4'),_0x6206('0x5'),_0x6206('0x6')],'include':[{'model':'User','as':'Agents','attributes':['id',_0x6206('0x4'),'online',_0x6206('0x7')]}]},'log':_0x6206('0x1')});};};
\ No newline at end of file
+var _0xae49=['Agents','online','../client','getMailQueues','Request','GetMailQueue','name','timeout'];(function(_0x112008,_0x43cd30){var _0x39e845=function(_0x55e12d){while(--_0x55e12d){_0x112008['push'](_0x112008['shift']());}};_0x39e845(++_0x43cd30);}(_0xae49,0xaa));var _0x9ae4=function(_0x3ba188,_0x348dce){_0x3ba188=_0x3ba188-0x0;var _0x237a9e=_0xae49[_0x3ba188];return _0x237a9e;};'use strict';var client=require(_0x9ae4('0x0'));exports[_0x9ae4('0x1')]=function(){return function(){return client[_0x9ae4('0x2')](_0x9ae4('0x3'),{'options':{'raw':![],'attributes':['id',_0x9ae4('0x4'),_0x9ae4('0x5'),'strategy'],'include':[{'model':'User','as':_0x9ae4('0x6'),'attributes':['id',_0x9ae4('0x4'),_0x9ae4('0x7'),'mailPause']}]},'log':_0x9ae4('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31ed=['Request','CreateMailQueueReport','update','UpdateMailQueueReport','DESC','create'];(function(_0x19159a,_0x1cb5c3){var _0xa677f4=function(_0x24bb85){while(--_0x24bb85){_0x19159a['push'](_0x19159a['shift']());}};_0xa677f4(++_0x1cb5c3);}(_0x31ed,0xa7));var _0xd31e=function(_0x2ecde9,_0x1cb04e){_0x2ecde9=_0x2ecde9-0x0;var _0x1a2719=_0x31ed[_0x2ecde9];return _0x1a2719;};'use strict';var client=require('../client');exports[_0xd31e('0x0')]=function(_0x18c030){return client[_0xd31e('0x1')](_0xd31e('0x2'),{'body':_0x18c030,'log':_0xd31e('0x2')});};exports[_0xd31e('0x3')]=function(_0x932f08,_0x3448f7){return client[_0xd31e('0x1')](_0xd31e('0x4'),{'body':_0x3448f7,'options':{'where':{'uniqueid':_0x932f08},'order':[['id',_0xd31e('0x5')]],'limit':0x1},'log':_0xd31e('0x4')});};
\ No newline at end of file
+var _0x6b4f=['CreateMailQueueReport','update','DESC','UpdateMailQueueReport','../client','Request'];(function(_0x27d97a,_0x381694){var _0x56e58e=function(_0x3ae9a1){while(--_0x3ae9a1){_0x27d97a['push'](_0x27d97a['shift']());}};_0x56e58e(++_0x381694);}(_0x6b4f,0x10c));var _0xf6b4=function(_0x4a4146,_0x25bfad){_0x4a4146=_0x4a4146-0x0;var _0x280bea=_0x6b4f[_0x4a4146];return _0x280bea;};'use strict';var client=require(_0xf6b4('0x0'));exports['create']=function(_0x5b68ca){return client[_0xf6b4('0x1')](_0xf6b4('0x2'),{'body':_0x5b68ca,'log':'CreateMailQueueReport'});};exports[_0xf6b4('0x3')]=function(_0x4aa044,_0x426eb1){return client[_0xf6b4('0x1')]('UpdateMailQueueReport',{'body':_0x426eb1,'options':{'where':{'uniqueid':_0x4aa044},'order':[['id',_0xf6b4('0x4')]],'limit':0x1},'log':_0xf6b4('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0ba=['addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','Request','UpdateOpenchannelInteraction','updateOpenchannelInteraction'];(function(_0x52db10,_0x3060b1){var _0x566e95=function(_0x298651){while(--_0x298651){_0x52db10['push'](_0x52db10['shift']());}};_0x566e95(++_0x3060b1);}(_0xa0ba,0x10d));var _0xaa0b=function(_0x3653c7,_0xadb356){_0x3653c7=_0x3653c7-0x0;var _0x58a021=_0xa0ba[_0x3653c7];return _0x58a021;};'use strict';var client=require(_0xaa0b('0x0'));exports['update']=function(_0x4fe1c0,_0x31b400){return client[_0xaa0b('0x1')](_0xaa0b('0x2'),{'body':_0x31b400,'options':{'where':{'id':_0x4fe1c0}},'log':_0xaa0b('0x3')});};exports[_0xaa0b('0x4')]=function(_0x10859c,_0x59e92a){return client[_0xaa0b('0x1')](_0xaa0b('0x5'),{'body':_0x59e92a,'options':{'where':{'id':_0x10859c}},'log':_0xaa0b('0x6')});};
\ No newline at end of file
+var _0x95aa=['AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','update','UpdateOpenchannelInteraction','addTags'];(function(_0x3ad7ad,_0x291a8d){var _0x225a60=function(_0xca7354){while(--_0xca7354){_0x3ad7ad['push'](_0x3ad7ad['shift']());}};_0x225a60(++_0x291a8d);}(_0x95aa,0x14c));var _0xa95a=function(_0x361d3f,_0x3be2aa){_0x361d3f=_0x361d3f-0x0;var _0x320229=_0x95aa[_0x361d3f];return _0x320229;};'use strict';var client=require(_0xa95a('0x0'));exports[_0xa95a('0x1')]=function(_0x25c65d,_0x42dc21){return client['Request'](_0xa95a('0x2'),{'body':_0x42dc21,'options':{'where':{'id':_0x25c65d}},'log':'updateOpenchannelInteraction'});};exports[_0xa95a('0x3')]=function(_0x380993,_0x562e4a){return client['Request'](_0xa95a('0x4'),{'body':_0x562e4a,'options':{'where':{'id':_0x380993}},'log':_0xa95a('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbec5=['create','Request','CreateOpenchannelMessage','createOpenchannelMessage','../client'];(function(_0x27ba3a,_0x29ac05){var _0x418cd2=function(_0x4bc79b){while(--_0x4bc79b){_0x27ba3a['push'](_0x27ba3a['shift']());}};_0x418cd2(++_0x29ac05);}(_0xbec5,0xe5));var _0x5bec=function(_0x547add,_0x387042){_0x547add=_0x547add-0x0;var _0x2ed1f3=_0xbec5[_0x547add];return _0x2ed1f3;};'use strict';var client=require(_0x5bec('0x0'));exports[_0x5bec('0x1')]=function(_0x4cfc3b){return client[_0x5bec('0x2')](_0x5bec('0x3'),{'body':_0x4cfc3b,'log':_0x5bec('0x4')});};
\ No newline at end of file
+var _0xbec5=['create','Request','CreateOpenchannelMessage','createOpenchannelMessage','../client'];(function(_0x291597,_0xe57bd){var _0x36464f=function(_0x388c74){while(--_0x388c74){_0x291597['push'](_0x291597['shift']());}};_0x36464f(++_0xe57bd);}(_0xbec5,0xe5));var _0x5bec=function(_0x466bc5,_0x3a0f2a){_0x466bc5=_0x466bc5-0x0;var _0x138952=_0xbec5[_0x466bc5];return _0x138952;};'use strict';var client=require(_0x5bec('0x0'));exports[_0x5bec('0x1')]=function(_0x4cfc3b){return client[_0x5bec('0x2')](_0x5bec('0x3'),{'body':_0x4cfc3b,'log':_0x5bec('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d5e=['strategy','User','Agents','name','online','openchannelPause','getOpenchannelQueues','../client','GetOpenchannelQueue'];(function(_0x5468d1,_0x19b293){var _0x5766fc=function(_0x3e92aa){while(--_0x3e92aa){_0x5468d1['push'](_0x5468d1['shift']());}};_0x5766fc(++_0x19b293);}(_0x0d5e,0xd6));var _0xe0d5=function(_0x2726e1,_0x5d94ce){_0x2726e1=_0x2726e1-0x0;var _0x497916=_0x0d5e[_0x2726e1];return _0x497916;};'use strict';var client=require(_0xe0d5('0x0'));exports['getOpenchannelQueues']=function(){return function(){return client['Request'](_0xe0d5('0x1'),{'options':{'raw':![],'attributes':['id','name','timeout',_0xe0d5('0x2')],'include':[{'model':_0xe0d5('0x3'),'as':_0xe0d5('0x4'),'attributes':['id',_0xe0d5('0x5'),_0xe0d5('0x6'),_0xe0d5('0x7')]}]},'log':_0xe0d5('0x8')});};};
\ No newline at end of file
+var _0xcdf2=['Request','GetOpenchannelQueue','name','timeout','Agents','online','../client'];(function(_0x4d0d85,_0x1d2bdb){var _0xf8b08e=function(_0xd33fc2){while(--_0xd33fc2){_0x4d0d85['push'](_0x4d0d85['shift']());}};_0xf8b08e(++_0x1d2bdb);}(_0xcdf2,0x1e9));var _0x2cdf=function(_0x50f0a9,_0x2b0c57){_0x50f0a9=_0x50f0a9-0x0;var _0x5a33d9=_0xcdf2[_0x50f0a9];return _0x5a33d9;};'use strict';var client=require(_0x2cdf('0x0'));exports['getOpenchannelQueues']=function(){return function(){return client[_0x2cdf('0x1')](_0x2cdf('0x2'),{'options':{'raw':![],'attributes':['id',_0x2cdf('0x3'),_0x2cdf('0x4'),'strategy'],'include':[{'model':'User','as':_0x2cdf('0x5'),'attributes':['id',_0x2cdf('0x3'),_0x2cdf('0x6'),'openchannelPause']}]},'log':'getOpenchannelQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd37=['update','Request','UpdateOpenchannelQueueReport','../client','create','CreateOpenchannelQueueReport'];(function(_0x2369de,_0x5e3e41){var _0x5cf9b2=function(_0x5eee75){while(--_0x5eee75){_0x2369de['push'](_0x2369de['shift']());}};_0x5cf9b2(++_0x5e3e41);}(_0xfd37,0x195));var _0x7fd3=function(_0xf5e80e,_0x529bb8){_0xf5e80e=_0xf5e80e-0x0;var _0x397082=_0xfd37[_0xf5e80e];return _0x397082;};'use strict';var client=require(_0x7fd3('0x0'));exports[_0x7fd3('0x1')]=function(_0x31d2d3){return client['Request'](_0x7fd3('0x2'),{'body':_0x31d2d3,'log':_0x7fd3('0x2')});};exports[_0x7fd3('0x3')]=function(_0x19f57e,_0x5bca7c){return client[_0x7fd3('0x4')](_0x7fd3('0x5'),{'body':_0x5bca7c,'options':{'where':{'uniqueid':_0x19f57e},'order':[['id','DESC']],'limit':0x1},'log':_0x7fd3('0x5')});};
\ No newline at end of file
+var _0xeb53=['UpdateOpenchannelQueueReport','../client','CreateOpenchannelQueueReport','update'];(function(_0x566572,_0x2be63d){var _0x3554c0=function(_0x290c3f){while(--_0x290c3f){_0x566572['push'](_0x566572['shift']());}};_0x3554c0(++_0x2be63d);}(_0xeb53,0x1e5));var _0x3eb5=function(_0x18ea7b,_0x2e548d){_0x18ea7b=_0x18ea7b-0x0;var _0x411552=_0xeb53[_0x18ea7b];return _0x411552;};'use strict';var client=require(_0x3eb5('0x0'));exports['create']=function(_0x31c0e7){return client['Request']('CreateOpenchannelQueueReport',{'body':_0x31c0e7,'log':_0x3eb5('0x1')});};exports[_0x3eb5('0x2')]=function(_0x4ed43e,_0x5f20ca){return client['Request'](_0x3eb5('0x3'),{'body':_0x5f20ca,'options':{'where':{'uniqueid':_0x4ed43e},'order':[['id','DESC']],'limit':0x1},'log':_0x3eb5('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x705d=['AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','update','addTags','Request'];(function(_0x23e2bb,_0xd82b6d){var _0x2dd8ed=function(_0x4af0ce){while(--_0x4af0ce){_0x23e2bb['push'](_0x23e2bb['shift']());}};_0x2dd8ed(++_0xd82b6d);}(_0x705d,0x13a));var _0xd705=function(_0x3a5bde,_0x4fffb1){_0x3a5bde=_0x3a5bde-0x0;var _0x428917=_0x705d[_0x3a5bde];return _0x428917;};'use strict';var client=require(_0xd705('0x0'));exports[_0xd705('0x1')]=function(_0x5ef7c3,_0x9d070a){return client['Request']('UpdateSmsInteraction',{'body':_0x9d070a,'options':{'where':{'id':_0x5ef7c3}},'log':'updateSmsInteraction'});};exports[_0xd705('0x2')]=function(_0xa9af86,_0x192d3f){return client[_0xd705('0x3')](_0xd705('0x4'),{'body':_0x192d3f,'options':{'where':{'id':_0xa9af86}},'log':_0xd705('0x5')});};
\ No newline at end of file
+var _0x7965=['updateSmsInteraction','addTags','AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','Request','UpdateSmsInteraction'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7965,0x15b));var _0x5796=function(_0x403c20,_0x4a7b99){_0x403c20=_0x403c20-0x0;var _0x2b271a=_0x7965[_0x403c20];return _0x2b271a;};'use strict';var client=require(_0x5796('0x0'));exports['update']=function(_0x49df93,_0x25903a){return client[_0x5796('0x1')](_0x5796('0x2'),{'body':_0x25903a,'options':{'where':{'id':_0x49df93}},'log':_0x5796('0x3')});};exports[_0x5796('0x4')]=function(_0x45992f,_0xe9de8c){return client[_0x5796('0x1')](_0x5796('0x5'),{'body':_0xe9de8c,'options':{'where':{'id':_0x45992f}},'log':_0x5796('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x305f=['createSmsMessage','Request','CreateSmsMessage'];(function(_0x7ef147,_0x3135b9){var _0x11467a=function(_0x590a85){while(--_0x590a85){_0x7ef147['push'](_0x7ef147['shift']());}};_0x11467a(++_0x3135b9);}(_0x305f,0x97));var _0xf305=function(_0x2125a0,_0x3ac7f5){_0x2125a0=_0x2125a0-0x0;var _0x158ceb=_0x305f[_0x2125a0];return _0x158ceb;};'use strict';var client=require('../client');exports['create']=function(_0x224f85){return client[_0xf305('0x0')](_0xf305('0x1'),{'body':_0x224f85,'log':_0xf305('0x2')});};
\ No newline at end of file
+var _0x82e1=['CreateSmsMessage','createSmsMessage','create','Request'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x82e1,0x16e));var _0x182e=function(_0xbebf50,_0x44ec09){_0xbebf50=_0xbebf50-0x0;var _0xce1496=_0x82e1[_0xbebf50];return _0xce1496;};'use strict';var client=require('../client');exports[_0x182e('0x0')]=function(_0x47ef68){return client[_0x182e('0x1')](_0x182e('0x2'),{'body':_0x47ef68,'log':_0x182e('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x582a=['strategy','Agents','smsPause','../client','getSmsQueues','Request','GetSmsQueue','name','timeout'];(function(_0x33a432,_0x1acced){var _0x45bd47=function(_0x215360){while(--_0x215360){_0x33a432['push'](_0x33a432['shift']());}};_0x45bd47(++_0x1acced);}(_0x582a,0x135));var _0xa582=function(_0x29fc45,_0x1d010b){_0x29fc45=_0x29fc45-0x0;var _0x512a89=_0x582a[_0x29fc45];return _0x512a89;};'use strict';var client=require(_0xa582('0x0'));exports[_0xa582('0x1')]=function(){return function(){return client[_0xa582('0x2')](_0xa582('0x3'),{'options':{'raw':![],'attributes':['id',_0xa582('0x4'),_0xa582('0x5'),_0xa582('0x6')],'include':[{'model':'User','as':_0xa582('0x7'),'attributes':['id',_0xa582('0x4'),'online',_0xa582('0x8')]}]},'log':_0xa582('0x1')});};};
\ No newline at end of file
+var _0x50a1=['User','Agents','online','smsPause','../client','getSmsQueues','Request','GetSmsQueue','name','strategy'];(function(_0x1f79c9,_0x21021b){var _0x1cfcf9=function(_0x3aa650){while(--_0x3aa650){_0x1f79c9['push'](_0x1f79c9['shift']());}};_0x1cfcf9(++_0x21021b);}(_0x50a1,0x9a));var _0x150a=function(_0x287426,_0xcf0871){_0x287426=_0x287426-0x0;var _0x9460e5=_0x50a1[_0x287426];return _0x9460e5;};'use strict';var client=require(_0x150a('0x0'));exports[_0x150a('0x1')]=function(){return function(){return client[_0x150a('0x2')](_0x150a('0x3'),{'options':{'raw':![],'attributes':['id',_0x150a('0x4'),'timeout',_0x150a('0x5')],'include':[{'model':_0x150a('0x6'),'as':_0x150a('0x7'),'attributes':['id','name',_0x150a('0x8'),_0x150a('0x9')]}]},'log':_0x150a('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71f6=['CreateSmsQueueReport','UpdateSmsQueueReport','DESC','create','Request'];(function(_0x2ee822,_0x4c15ab){var _0x3df987=function(_0x29e89a){while(--_0x29e89a){_0x2ee822['push'](_0x2ee822['shift']());}};_0x3df987(++_0x4c15ab);}(_0x71f6,0x1ac));var _0x671f=function(_0x24615f,_0x20abb0){_0x24615f=_0x24615f-0x0;var _0x5a91d4=_0x71f6[_0x24615f];return _0x5a91d4;};'use strict';var client=require('../client');exports[_0x671f('0x0')]=function(_0x5a4e6d){return client[_0x671f('0x1')](_0x671f('0x2'),{'body':_0x5a4e6d,'log':_0x671f('0x2')});};exports['update']=function(_0x3b869f,_0x19fefa){return client[_0x671f('0x1')](_0x671f('0x3'),{'body':_0x19fefa,'options':{'where':{'uniqueid':_0x3b869f},'order':[['id',_0x671f('0x4')]],'limit':0x1},'log':_0x671f('0x3')});};
\ No newline at end of file
+var _0x3256=['update','UpdateSmsQueueReport','DESC','Request','CreateSmsQueueReport'];(function(_0x2a819a,_0x4b9a8e){var _0x2aced7=function(_0xbf5233){while(--_0xbf5233){_0x2a819a['push'](_0x2a819a['shift']());}};_0x2aced7(++_0x4b9a8e);}(_0x3256,0xee));var _0x6325=function(_0x593135,_0x371d83){_0x593135=_0x593135-0x0;var _0x4efba7=_0x3256[_0x593135];return _0x4efba7;};'use strict';var client=require('../client');exports['create']=function(_0x2e5ff7){return client[_0x6325('0x0')]('CreateSmsQueueReport',{'body':_0x2e5ff7,'log':_0x6325('0x1')});};exports[_0x6325('0x2')]=function(_0x2c2c77,_0x602333){return client['Request'](_0x6325('0x3'),{'body':_0x602333,'options':{'where':{'uniqueid':_0x2c2c77},'order':[['id',_0x6325('0x4')]],'limit':0x1},'log':_0x6325('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x627e=['smsPause','openchannelPause','chatCapacity','faxCapacity','openchannelCapacity','../client','getAgents','Request','name','online','pauseType','lastPauseAt','voicePause','mailPause','faxPause'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0x627e,0x18b));var _0xe627=function(_0x56f6f0,_0x430722){_0x56f6f0=_0x56f6f0-0x0;var _0x388969=_0x627e[_0x56f6f0];return _0x388969;};'use strict';var client=require(_0xe627('0x0'));exports[_0xe627('0x1')]=function(){return function(){return client[_0xe627('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0xe627('0x3'),_0xe627('0x4'),_0xe627('0x5'),_0xe627('0x6'),_0xe627('0x7'),'chatPause',_0xe627('0x8'),_0xe627('0x9'),_0xe627('0xa'),_0xe627('0xb'),_0xe627('0xc'),'mailCapacity',_0xe627('0xd'),'smsCapacity',_0xe627('0xe')]},'log':_0xe627('0x1')});};};
\ No newline at end of file
+var _0x53fa=['chatCapacity','mailCapacity','faxCapacity','smsCapacity','../client','getAgents','Request','GetUser','agent','name','online','lastPauseAt','voicePause','chatPause','mailPause','smsPause','openchannelPause'];(function(_0x220a88,_0x380306){var _0x501ecb=function(_0x1fae2c){while(--_0x1fae2c){_0x220a88['push'](_0x220a88['shift']());}};_0x501ecb(++_0x380306);}(_0x53fa,0x147));var _0xa53f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x53fa[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xa53f('0x0'));exports[_0xa53f('0x1')]=function(){return function(){return client[_0xa53f('0x2')](_0xa53f('0x3'),{'options':{'raw':!![],'where':{'role':_0xa53f('0x4')},'attributes':['id',_0xa53f('0x5'),_0xa53f('0x6'),'pauseType',_0xa53f('0x7'),_0xa53f('0x8'),_0xa53f('0x9'),_0xa53f('0xa'),'faxPause',_0xa53f('0xb'),_0xa53f('0xc'),_0xa53f('0xd'),_0xa53f('0xe'),_0xa53f('0xf'),_0xa53f('0x10'),'openchannelCapacity']},'log':'getAgents'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b8d=['createQueue','atimeout','channel','START:%s','end','close','rules','[%s][AGENT]\x20ROUTING\x20STOPPED','stop','[%s][AGENT]\x20ROUTING\x20END','next','agent','error','log','[%s][QUEUE]\x20%s','stack','lodash','util','seq-queue','../../../../config/logger','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','info','format','name','toLowerCase','consequence','validate','[%s][AGENT]\x20%s','map','message','join','find','timeout'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x8b8d,0x7f));var _0xd8b8=function(_0x59c301,_0x359c50){_0x59c301=_0x59c301-0x0;var _0x3866b9=_0x8b8d[_0x59c301];return _0x3866b9;};'use strict';var schema=require('validate');var _=require(_0xd8b8('0x0'));var util=require(_0xd8b8('0x1'));var seqqueue=require(_0xd8b8('0x2'));var logger=require(_0xd8b8('0x3'))(_0xd8b8('0x4'));var strategy=require(_0xd8b8('0x5'));var queue=schema({'name':{'type':_0xd8b8('0x6'),'required':!![],'message':_0xd8b8('0x7')},'timeout':{'type':_0xd8b8('0x8'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x10cd07,_0x100be4,_0x458ad7){return logger[_0xd8b8('0x9')](util[_0xd8b8('0xa')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x10cd07,_0x100be4[_0xd8b8('0xb')],_0x458ad7));}function handleFindAgent(_0x566433){return function(_0x16b643){return _0x16b643[_0xd8b8('0xb')][_0xd8b8('0xc')]()===_0x566433[_0xd8b8('0xc')]();};}exports[_0xd8b8('0xd')]=function(_0x32efc2,_0x2a350d,_0x38eebc,_0xef66d1){return function(_0x499adf){try{var _0x2cd318={'name':_0x2a350d[0x0],'timeout':_0x2a350d[0x1]};var _0x2d3e2d=queue[_0xd8b8('0xe')](_0x2cd318,{'typecast':!![]});if(_0x2d3e2d['length']){logger['error'](_0xd8b8('0xf'),_0x32efc2,_[_0xd8b8('0x10')](_0x2d3e2d,_0xd8b8('0x11'))[_0xd8b8('0x12')](',\x20'));_0x499adf['stop']();}else{var _0x51054e=_[_0xd8b8('0x13')](_0x38eebc['agents'],handleFindAgent(_0x2cd318[_0xd8b8('0xb')]));if(_0x51054e){var _0x392bb1=(_0x2cd318[_0xd8b8('0x14')]||0xa)*0x3e8;var _0x34bb00,_0x9a8fbc;var _0x44107f=seqqueue[_0xd8b8('0x15')](_0x392bb1);_0x44107f['id']=_0x32efc2;_0x44107f[_0xd8b8('0x16')]=_0x392bb1;_0x44107f[_0xd8b8('0x17')]=_0xef66d1[_0xd8b8('0x17')];writeLog(_0x32efc2,_0x51054e,util['format'](_0xd8b8('0x18'),_0x392bb1));_0x38eebc['rules'][_0x32efc2]['on'](_0xd8b8('0x19'),function(){_0x44107f[_0xd8b8('0x1a')]();clearTimeout(_0x9a8fbc);_0x9a8fbc=undefined;if(_0x38eebc[_0xd8b8('0x1b')][_0x32efc2]){delete _0x38eebc['rules'][_0x32efc2];}logger[_0xd8b8('0x9')](_0xd8b8('0x1c'),_0x32efc2);_0x499adf[_0xd8b8('0x1d')]();});_0x9a8fbc=setTimeout(function(){clearTimeout(_0x9a8fbc);_0x44107f[_0xd8b8('0x1a')]();logger['info'](_0xd8b8('0x1e'),_0x32efc2);_0x499adf[_0xd8b8('0x1f')]();},_0x392bb1);strategy[_0xd8b8('0x20')](_0x44107f,_0x51054e,_0x38eebc,_0xef66d1);}else{logger[_0xd8b8('0x21')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x32efc2,_0x2cd318['name']);_0x499adf[_0xd8b8('0x1d')]();}}}catch(_0x54c0b8){console[_0xd8b8('0x22')](_0x54c0b8);logger[_0xd8b8('0x21')](_0xd8b8('0x23'),_0x32efc2,_0x54c0b8[_0xd8b8('0x24')]);_0x499adf[_0xd8b8('0x1d')]();}};};
\ No newline at end of file
+var _0x9349=['routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','info','format','name','toLowerCase','consequence','length','error','map','join','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','end','close','[%s][AGENT]\x20ROUTING\x20STOPPED','[%s][AGENT]\x20ROUTING\x20END','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','stop','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue','../../../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9349,0x123));var _0x9934=function(_0x5350e0,_0xab0e7){_0x5350e0=_0x5350e0-0x0;var _0x1ec696=_0x9349[_0x5350e0];return _0x1ec696;};'use strict';var schema=require(_0x9934('0x0'));var _=require(_0x9934('0x1'));var util=require(_0x9934('0x2'));var seqqueue=require(_0x9934('0x3'));var logger=require(_0x9934('0x4'))(_0x9934('0x5'));var strategy=require(_0x9934('0x6'));var queue=schema({'name':{'type':_0x9934('0x7'),'required':!![],'message':_0x9934('0x8')},'timeout':{'type':'number','message':_0x9934('0x9')}});function writeLog(_0x5c74bf,_0x2abb25,_0x26a654){return logger[_0x9934('0xa')](util[_0x9934('0xb')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x5c74bf,_0x2abb25['name'],_0x26a654));}function handleFindAgent(_0x249af1){return function(_0x1fac39){return _0x1fac39[_0x9934('0xc')][_0x9934('0xd')]()===_0x249af1[_0x9934('0xd')]();};}exports[_0x9934('0xe')]=function(_0x46e2b2,_0x33eb9b,_0xdebbee,_0x3f5a02){return function(_0x457ae8){try{var _0xf0963c={'name':_0x33eb9b[0x0],'timeout':_0x33eb9b[0x1]};var _0x5ac541=queue[_0x9934('0x0')](_0xf0963c,{'typecast':!![]});if(_0x5ac541[_0x9934('0xf')]){logger[_0x9934('0x10')]('[%s][AGENT]\x20%s',_0x46e2b2,_[_0x9934('0x11')](_0x5ac541,'message')[_0x9934('0x12')](',\x20'));_0x457ae8['stop']();}else{var _0x36eef0=_[_0x9934('0x13')](_0xdebbee[_0x9934('0x14')],handleFindAgent(_0xf0963c['name']));if(_0x36eef0){var _0x1a8afc=(_0xf0963c[_0x9934('0x15')]||0xa)*0x3e8;var _0x375c3a,_0x3c5bcc;var _0x160acc=seqqueue[_0x9934('0x16')](_0x1a8afc);_0x160acc['id']=_0x46e2b2;_0x160acc[_0x9934('0x17')]=_0x1a8afc;_0x160acc[_0x9934('0x18')]=_0x3f5a02[_0x9934('0x18')];writeLog(_0x46e2b2,_0x36eef0,util[_0x9934('0xb')](_0x9934('0x19'),_0x1a8afc));_0xdebbee[_0x9934('0x1a')][_0x46e2b2]['on'](_0x9934('0x1b'),function(){_0x160acc[_0x9934('0x1c')]();clearTimeout(_0x3c5bcc);_0x3c5bcc=undefined;if(_0xdebbee[_0x9934('0x1a')][_0x46e2b2]){delete _0xdebbee[_0x9934('0x1a')][_0x46e2b2];}logger['info'](_0x9934('0x1d'),_0x46e2b2);_0x457ae8['stop']();});_0x3c5bcc=setTimeout(function(){clearTimeout(_0x3c5bcc);_0x160acc['close']();logger['info'](_0x9934('0x1e'),_0x46e2b2);_0x457ae8[_0x9934('0x1f')]();},_0x1a8afc);strategy[_0x9934('0x20')](_0x160acc,_0x36eef0,_0xdebbee,_0x3f5a02);}else{logger[_0x9934('0x10')](_0x9934('0x21'),_0x46e2b2,_0xf0963c[_0x9934('0xc')]);_0x457ae8[_0x9934('0x22')]();}}}catch(_0x39944d){console['log'](_0x39944d);logger[_0x9934('0x10')](_0x9934('0x23'),_0x46e2b2,_0x39944d[_0x9934('0x24')]);_0x457ae8['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33c6=['YYYY-MM-DD\x20HH:mm:ss','channel','chat','ChatWebsiteId','account','AccountId','upperFirst','interaction','isEmpty','body','getMustacheRender','Message','create','then','catch','error','stringify','finally','info','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','LexRuntime','$LATEST','toString','message','Failed','lodash','moment','aws-sdk','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','consequence','UserId','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','format'];(function(_0x35e61f,_0x4ac08){var _0x7708cc=function(_0x5d678f){while(--_0x5d678f){_0x35e61f['push'](_0x35e61f['shift']());}};_0x7708cc(++_0x4ac08);}(_0x33c6,0x9c));var _0x633c=function(_0x543acf,_0x5b87af){_0x543acf=_0x543acf-0x0;var _0x7357de=_0x33c6[_0x543acf];return _0x7357de;};'use strict';var _=require(_0x633c('0x0'));var moment=require(_0x633c('0x1'));var AWS=require(_0x633c('0x2'));var utils=require(_0x633c('0x3'));var logger=require(_0x633c('0x4'))(_0x633c('0x5'));var rpc={'chatMessage':require(_0x633c('0x6')),'openchannelMessage':require(_0x633c('0x7')),'mailMessage':require(_0x633c('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x633c('0x9'))};exports[_0x633c('0xa')]=function(_0x460627,_0x35c517){return function(_0x560708){try{if(!_['isNil'](this['interaction'][_0x633c('0xb')])){logger['info'](_0x633c('0xc'),_0x460627,_0x633c('0xd'));return _0x560708[_0x633c('0xe')]();}var _0x3ffd0a={'ContactId':this['contact']['id'],'sentAt':moment()[_0x633c('0xf')](_0x633c('0x10')),'direction':'out'};var _0x50071a=this[_0x633c('0x11')];if(_0x50071a===_0x633c('0x12')){_0x3ffd0a[_0x633c('0x13')]=this[_0x633c('0x14')]['id'];}else{_0x3ffd0a[_['upperFirst'](_0x50071a)+_0x633c('0x15')]=this[_0x633c('0x14')]['id'];}_0x3ffd0a[_[_0x633c('0x16')](_0x50071a)+'InteractionId']=this['interaction']['id'];if(this[_0x633c('0x17')]['created']){var _0x1f049c=_0x35c517[0x4];if(!_[_0x633c('0x18')](_0x1f049c)){_0x3ffd0a[_0x633c('0x19')]=utils[_0x633c('0x1a')](_0x1f049c,this);return rpc[_0x50071a+_0x633c('0x1b')][_0x633c('0x1c')](_0x3ffd0a)[_0x633c('0x1d')](function(_0x4cc0a7){logger['info'](_0x633c('0xc'),_0x460627,_0x3ffd0a[_0x633c('0x19')]);})[_0x633c('0x1e')](function(_0x4439f9){logger[_0x633c('0x1f')]('[%s][AMAZONLEX]\x20%s',_0x460627,JSON[_0x633c('0x20')](_0x4439f9));})[_0x633c('0x21')](function(){logger[_0x633c('0x22')](_0x633c('0x23'),_0x460627);_0x560708['stop']();});}else{logger[_0x633c('0x22')](_0x633c('0x24'),_0x460627);_0x560708[_0x633c('0x25')]();}}else{var _0x395734=this;var _0x24180e=new AWS[(_0x633c('0x26'))]({'accessKeyId':_0x35c517[0x0],'secretAccessKey':_0x35c517[0x1],'region':_0x35c517[0x2]});var _0x39204a={'botAlias':_0x633c('0x27'),'botName':_0x35c517[0x3],'inputText':this['message'][_0x633c('0x19')],'userId':this[_0x633c('0x17')]['id'][_0x633c('0x28')]()};_0x24180e['postText'](_0x39204a,function(_0x1fbd95,_0x38c8b4){if(_0x1fbd95){logger[_0x633c('0x1f')](_0x633c('0xc'),_0x460627,_0x1fbd95[_0x633c('0x29')]);_0x560708[_0x633c('0xe')]();}else if(_0x38c8b4&&_0x38c8b4[_0x633c('0x29')]){_0x395734[_0x633c('0x19')]['amazonlex']=_0x38c8b4;_0x3ffd0a['body']=_0x38c8b4[_0x633c('0x29')];return rpc[_0x50071a+_0x633c('0x1b')][_0x633c('0x1c')](_0x3ffd0a)[_0x633c('0x1d')](function(_0x49c9a2){logger[_0x633c('0x22')](_0x633c('0xc'),_0x460627,_0x3ffd0a[_0x633c('0x19')]);if(_0x38c8b4['dialogState']==_0x633c('0x2a')){_0x560708[_0x633c('0xe')]();}else{_0x560708[_0x633c('0x25')]();}})[_0x633c('0x1e')](function(_0x5e3697){logger[_0x633c('0x1f')]('[%s][AMAZONLEX]\x20%s',_0x460627,JSON[_0x633c('0x20')](_0x5e3697));_0x560708['next']();});}else{_0x560708[_0x633c('0xe')]();}});}}catch(_0xadd619){logger[_0x633c('0x1f')]('[%s][AMAZONLEX]\x20%s',_0x460627,JSON[_0x633c('0x20')](_0xadd619));_0x560708[_0x633c('0x25')]();}};};
\ No newline at end of file
+var _0xb68e=['toString','message','amazonlex','info','lodash','moment','aws-sdk','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','isNil','interaction','[%s][AMAZONLEX]\x20%s','next','YYYY-MM-DD\x20HH:mm:ss','out','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','catch','error','stringify','finally','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','$LATEST'];(function(_0x2c507b,_0x343d21){var _0x346f0d=function(_0x26c941){while(--_0x26c941){_0x2c507b['push'](_0x2c507b['shift']());}};_0x346f0d(++_0x343d21);}(_0xb68e,0x1e4));var _0xeb68=function(_0x1ec3a8,_0x1dba60){_0x1ec3a8=_0x1ec3a8-0x0;var _0x3f782d=_0xb68e[_0x1ec3a8];return _0x3f782d;};'use strict';var _=require(_0xeb68('0x0'));var moment=require(_0xeb68('0x1'));var AWS=require(_0xeb68('0x2'));var utils=require(_0xeb68('0x3'));var logger=require(_0xeb68('0x4'))(_0xeb68('0x5'));var rpc={'chatMessage':require(_0xeb68('0x6')),'openchannelMessage':require(_0xeb68('0x7')),'mailMessage':require(_0xeb68('0x8')),'smsMessage':require(_0xeb68('0x9')),'faxMessage':require('../../rpc/faxMessage')};exports['consequence']=function(_0x5ed69d,_0x46ca77){return function(_0xea33e9){try{if(!_[_0xeb68('0xa')](this[_0xeb68('0xb')]['UserId'])){logger['info'](_0xeb68('0xc'),_0x5ed69d,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0xea33e9[_0xeb68('0xd')]();}var _0x54cec4={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0xeb68('0xe')),'direction':_0xeb68('0xf')};var _0x1e52ec=this['channel'];if(_0x1e52ec==='chat'){_0x54cec4[_0xeb68('0x10')]=this[_0xeb68('0x11')]['id'];}else{_0x54cec4[_[_0xeb68('0x12')](_0x1e52ec)+_0xeb68('0x13')]=this['account']['id'];}_0x54cec4[_[_0xeb68('0x12')](_0x1e52ec)+_0xeb68('0x14')]=this[_0xeb68('0xb')]['id'];if(this[_0xeb68('0xb')][_0xeb68('0x15')]){var _0x1b6e99=_0x46ca77[0x4];if(!_[_0xeb68('0x16')](_0x1b6e99)){_0x54cec4[_0xeb68('0x17')]=utils[_0xeb68('0x18')](_0x1b6e99,this);return rpc[_0x1e52ec+_0xeb68('0x19')][_0xeb68('0x1a')](_0x54cec4)[_0xeb68('0x1b')](function(_0x38484f){logger['info'](_0xeb68('0xc'),_0x5ed69d,_0x54cec4[_0xeb68('0x17')]);})[_0xeb68('0x1c')](function(_0x2eb0b9){logger[_0xeb68('0x1d')](_0xeb68('0xc'),_0x5ed69d,JSON[_0xeb68('0x1e')](_0x2eb0b9));})[_0xeb68('0x1f')](function(){logger['info']('[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x5ed69d);_0xea33e9[_0xeb68('0x20')]();});}else{logger['info'](_0xeb68('0x21'),_0x5ed69d);_0xea33e9[_0xeb68('0x20')]();}}else{var _0xa7ed45=this;var _0x54f3d8=new AWS[(_0xeb68('0x22'))]({'accessKeyId':_0x46ca77[0x0],'secretAccessKey':_0x46ca77[0x1],'region':_0x46ca77[0x2]});var _0x4ba42b={'botAlias':_0xeb68('0x23'),'botName':_0x46ca77[0x3],'inputText':this['message'][_0xeb68('0x17')],'userId':this[_0xeb68('0xb')]['id'][_0xeb68('0x24')]()};_0x54f3d8['postText'](_0x4ba42b,function(_0x4856fb,_0x4bee8d){if(_0x4856fb){logger[_0xeb68('0x1d')](_0xeb68('0xc'),_0x5ed69d,_0x4856fb[_0xeb68('0x25')]);_0xea33e9['next']();}else if(_0x4bee8d&&_0x4bee8d[_0xeb68('0x25')]){_0xa7ed45['body'][_0xeb68('0x26')]=_0x4bee8d;_0x54cec4['body']=_0x4bee8d[_0xeb68('0x25')];return rpc[_0x1e52ec+_0xeb68('0x19')][_0xeb68('0x1a')](_0x54cec4)[_0xeb68('0x1b')](function(_0x4e19a7){logger[_0xeb68('0x27')](_0xeb68('0xc'),_0x5ed69d,_0x54cec4[_0xeb68('0x17')]);if(_0x4bee8d['dialogState']=='Failed'){_0xea33e9['next']();}else{_0xea33e9[_0xeb68('0x20')]();}})[_0xeb68('0x1c')](function(_0x6af790){logger[_0xeb68('0x1d')](_0xeb68('0xc'),_0x5ed69d,JSON[_0xeb68('0x1e')](_0x6af790));_0xea33e9[_0xeb68('0xd')]();});}else{_0xea33e9['next']();}});}}catch(_0x435f77){logger[_0xeb68('0x1d')]('[%s][AMAZONLEX]\x20%s',_0x5ed69d,JSON[_0xeb68('0x1e')](_0x435f77));_0xea33e9[_0xeb68('0x20')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['messageId','html','replace','body','<div\x20id=\x22xm-mail-content\x22','<div','sendMailMessage','then','info','[%s][AUTOREPLY]\x20SMTP\x20SENT','stringify','catch','[RPC][%s][AUTOREPLY]\x20%s','finally','create','error','lodash','moment','./utils','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../mailRpc','consequence','isNil','interaction','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','next','channel','out','message','from','phone','read','subject','Re:','Re:\x20','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','Message','service','Smtp','host','port','secure','authentication','user','pass','inReplyTo'];(function(_0x5739f3,_0x44437a){var _0x485638=function(_0x1b2a79){while(--_0x1b2a79){_0x5739f3['push'](_0x5739f3['shift']());}};_0x485638(++_0x44437a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3a6efd,_0x2a5102){_0x3a6efd=_0x3a6efd-0x0;var _0x487b9a=_0xa9e0[_0x3a6efd];return _0x487b9a;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var utils=require(_0x0a9e('0x2'));var logger=require('../../../../config/logger')('routing');var rpc={'chatMessage':require(_0x0a9e('0x3')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x0a9e('0x4')),'smsMessage':require(_0x0a9e('0x5')),'faxMessage':require(_0x0a9e('0x6'))};var mailRpc=require(_0x0a9e('0x7'));exports[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return function(_0x441e3a){try{if(_0x219af0[0x0]==='1'&&(_[_0x0a9e('0x9')](this['interaction']['created'])||!this[_0x0a9e('0xa')]['created'])){logger['info'](_0x0a9e('0xb'),_0x57b080,_0x0a9e('0xc'));return _0x441e3a[_0x0a9e('0xd')]();}var _0x3ab53f=this[_0x0a9e('0xe')];var _0xbd1168={'body':utils['getMustacheRender'](_0x219af0[0x1],this),'ContactId':this['contact']['id'],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x0a9e('0xf')};if(this[_0x0a9e('0x10')]){_0xbd1168['to']=this[_0x0a9e('0x10')][_0x0a9e('0x11')]||'';_0xbd1168['cc']=this[_0x0a9e('0x10')]['cc']||'';_0xbd1168[_0x0a9e('0x11')]=this['message']['to']||'';_0xbd1168[_0x0a9e('0x12')]=this[_0x0a9e('0x10')][_0x0a9e('0x12')]||'';_0xbd1168[_0x0a9e('0x13')]=!![];if(this[_0x0a9e('0x10')][_0x0a9e('0x14')]){_0xbd1168['subject']='';_0xbd1168[_0x0a9e('0x14')]+=_['startsWith'](this[_0x0a9e('0x10')]['subject'],_0x0a9e('0x15'))?'':_0x0a9e('0x16');_0xbd1168['subject']+=this[_0x0a9e('0x10')]['subject'];}}if(this[_0x0a9e('0xe')]===_0x0a9e('0x17')){_0xbd1168[_0x0a9e('0x18')]=this[_0x0a9e('0x19')]['id'];}else{_0xbd1168[_[_0x0a9e('0x1a')](this[_0x0a9e('0xe')])+_0x0a9e('0x1b')]=this[_0x0a9e('0x19')]['id'];}_0xbd1168[_[_0x0a9e('0x1a')](this[_0x0a9e('0xe')])+_0x0a9e('0x1c')]=this[_0x0a9e('0xa')]['id'];if(rpc[this['channel']+_0x0a9e('0x1d')]){if(this[_0x0a9e('0xe')]==='mail'){var _0x20f109={'tls':{'rejectUnauthorized':![]}};if(this['account']['Smtp'][_0x0a9e('0x1e')]){_0x20f109[_0x0a9e('0x1e')]=this[_0x0a9e('0x19')][_0x0a9e('0x1f')]['service'];}else{_0x20f109[_0x0a9e('0x20')]=this[_0x0a9e('0x19')][_0x0a9e('0x1f')][_0x0a9e('0x20')];_0x20f109[_0x0a9e('0x21')]=this[_0x0a9e('0x19')][_0x0a9e('0x1f')]['port'];_0x20f109['secure']=this[_0x0a9e('0x19')][_0x0a9e('0x1f')][_0x0a9e('0x22')];}if(this[_0x0a9e('0x19')]['Smtp'][_0x0a9e('0x23')]){_0x20f109['auth']={'user':this[_0x0a9e('0x19')]['Smtp'][_0x0a9e('0x24')],'pass':this[_0x0a9e('0x19')][_0x0a9e('0x1f')][_0x0a9e('0x25')]};}_0xbd1168[_0x0a9e('0x26')]=this[_0x0a9e('0x10')][_0x0a9e('0x27')];_0xbd1168[_0x0a9e('0x28')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0x0a9e('0x29')](_0xbd1168[_0x0a9e('0x2a')],_0x0a9e('0x2b'),_0x0a9e('0x2c'))+'</div>';return mailRpc[_0x0a9e('0x2d')](_0x20f109,_0xbd1168)[_0x0a9e('0x2e')](function(_0x1843b2){logger[_0x0a9e('0x2f')](_0x0a9e('0x30'),_0x57b080);_0xbd1168[_0x0a9e('0x27')]=_0x1843b2[_0x0a9e('0x10')][_0x0a9e('0x27')];return rpc[_0x3ab53f+_0x0a9e('0x1d')]['create'](_0xbd1168);})[_0x0a9e('0x2e')](function(_0x5d1e0e){logger[_0x0a9e('0x2f')](_0x0a9e('0xb'),_0x57b080,JSON[_0x0a9e('0x31')](_0x5d1e0e));})[_0x0a9e('0x32')](function(_0x25ce3a){logger['error'](_0x0a9e('0x33'),_0x57b080,JSON[_0x0a9e('0x31')](_0x25ce3a));})[_0x0a9e('0x34')](function(){_0x441e3a[_0x0a9e('0xd')]();});}else{return rpc[this[_0x0a9e('0xe')]+_0x0a9e('0x1d')][_0x0a9e('0x35')](_0xbd1168)[_0x0a9e('0x2e')](function(_0x5583a4){logger[_0x0a9e('0x2f')]('[%s][AUTOREPLY]\x20%s',_0x57b080,_0xbd1168[_0x0a9e('0x2a')]);})[_0x0a9e('0x32')](function(_0x2b7e7f){logger[_0x0a9e('0x36')]('[%s][AUTOREPLY]\x20%s',_0x57b080,JSON[_0x0a9e('0x31')](_0x2b7e7f));})[_0x0a9e('0x34')](function(){_0x441e3a[_0x0a9e('0xd')]();});}}}catch(_0x15de0e){logger['error']('[%s][AUTOREPLY]\x20%s',_0x57b080,JSON[_0x0a9e('0x31')](_0x15de0e));_0x441e3a['stop']();}};};
\ No newline at end of file
+var _0xe706=['next','channel','getMustacheRender','YYYY-MM-DD\x20HH:mm:ss','out','message','from','read','subject','Re:','Re:\x20','chat','ChatWebsiteId','AccountId','account','upperFirst','InteractionId','Message','Smtp','service','host','port','secure','auth','user','pass','inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','body','<div\x20id=\x22xm-mail-content\x22','<div','sendMailMessage','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','finally','then','lodash','moment','./utils','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../mailRpc','consequence','isNil','interaction','created','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent'];(function(_0x3c9114,_0x5f0270){var _0x11b7bf=function(_0x3bf214){while(--_0x3bf214){_0x3c9114['push'](_0x3c9114['shift']());}};_0x11b7bf(++_0x5f0270);}(_0xe706,0xa3));var _0x6e70=function(_0x11db48,_0x363415){_0x11db48=_0x11db48-0x0;var _0x2cc224=_0xe706[_0x11db48];return _0x2cc224;};'use strict';var _=require(_0x6e70('0x0'));var moment=require(_0x6e70('0x1'));var utils=require(_0x6e70('0x2'));var logger=require('../../../../config/logger')(_0x6e70('0x3'));var rpc={'chatMessage':require(_0x6e70('0x4')),'openchannelMessage':require(_0x6e70('0x5')),'mailMessage':require(_0x6e70('0x6')),'smsMessage':require(_0x6e70('0x7')),'faxMessage':require(_0x6e70('0x8'))};var mailRpc=require(_0x6e70('0x9'));exports[_0x6e70('0xa')]=function(_0x1b0389,_0x4381d1){return function(_0x36357b){try{if(_0x4381d1[0x0]==='1'&&(_[_0x6e70('0xb')](this[_0x6e70('0xc')][_0x6e70('0xd')])||!this[_0x6e70('0xc')][_0x6e70('0xd')])){logger[_0x6e70('0xe')](_0x6e70('0xf'),_0x1b0389,_0x6e70('0x10'));return _0x36357b[_0x6e70('0x11')]();}var _0x743eb5=this[_0x6e70('0x12')];var _0x37b3e0={'body':utils[_0x6e70('0x13')](_0x4381d1[0x1],this),'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x6e70('0x14')),'direction':_0x6e70('0x15')};if(this[_0x6e70('0x16')]){_0x37b3e0['to']=this[_0x6e70('0x16')][_0x6e70('0x17')]||'';_0x37b3e0['cc']=this[_0x6e70('0x16')]['cc']||'';_0x37b3e0[_0x6e70('0x17')]=this[_0x6e70('0x16')]['to']||'';_0x37b3e0['phone']=this['message']['phone']||'';_0x37b3e0[_0x6e70('0x18')]=!![];if(this['message']['subject']){_0x37b3e0[_0x6e70('0x19')]='';_0x37b3e0[_0x6e70('0x19')]+=_['startsWith'](this[_0x6e70('0x16')]['subject'],_0x6e70('0x1a'))?'':_0x6e70('0x1b');_0x37b3e0['subject']+=this['message'][_0x6e70('0x19')];}}if(this['channel']===_0x6e70('0x1c')){_0x37b3e0[_0x6e70('0x1d')]=this['account']['id'];}else{_0x37b3e0[_['upperFirst'](this[_0x6e70('0x12')])+_0x6e70('0x1e')]=this[_0x6e70('0x1f')]['id'];}_0x37b3e0[_[_0x6e70('0x20')](this[_0x6e70('0x12')])+_0x6e70('0x21')]=this[_0x6e70('0xc')]['id'];if(rpc[this[_0x6e70('0x12')]+_0x6e70('0x22')]){if(this[_0x6e70('0x12')]==='mail'){var _0x228350={'tls':{'rejectUnauthorized':![]}};if(this[_0x6e70('0x1f')][_0x6e70('0x23')]['service']){_0x228350[_0x6e70('0x24')]=this[_0x6e70('0x1f')][_0x6e70('0x23')]['service'];}else{_0x228350[_0x6e70('0x25')]=this['account']['Smtp']['host'];_0x228350[_0x6e70('0x26')]=this[_0x6e70('0x1f')]['Smtp'][_0x6e70('0x26')];_0x228350[_0x6e70('0x27')]=this['account'][_0x6e70('0x23')][_0x6e70('0x27')];}if(this[_0x6e70('0x1f')]['Smtp']['authentication']){_0x228350[_0x6e70('0x28')]={'user':this[_0x6e70('0x1f')][_0x6e70('0x23')][_0x6e70('0x29')],'pass':this[_0x6e70('0x1f')]['Smtp'][_0x6e70('0x2a')]};}_0x37b3e0[_0x6e70('0x2b')]=this[_0x6e70('0x16')][_0x6e70('0x2c')];_0x37b3e0[_0x6e70('0x2d')]=_0x6e70('0x2e')+_[_0x6e70('0x2f')](_0x37b3e0[_0x6e70('0x30')],_0x6e70('0x31'),_0x6e70('0x32'))+'</div>';return mailRpc[_0x6e70('0x33')](_0x228350,_0x37b3e0)['then'](function(_0x259486){logger['info'](_0x6e70('0x34'),_0x1b0389);_0x37b3e0[_0x6e70('0x2c')]=_0x259486[_0x6e70('0x16')]['messageId'];return rpc[_0x743eb5+_0x6e70('0x22')][_0x6e70('0x35')](_0x37b3e0);})['then'](function(_0x13d673){logger[_0x6e70('0xe')]('[%s][AUTOREPLY]\x20%s',_0x1b0389,JSON[_0x6e70('0x36')](_0x13d673));})[_0x6e70('0x37')](function(_0x2d52bd){logger[_0x6e70('0x38')](_0x6e70('0x39'),_0x1b0389,JSON[_0x6e70('0x36')](_0x2d52bd));})[_0x6e70('0x3a')](function(){_0x36357b[_0x6e70('0x11')]();});}else{return rpc[this[_0x6e70('0x12')]+_0x6e70('0x22')]['create'](_0x37b3e0)[_0x6e70('0x3b')](function(_0x4795a0){logger[_0x6e70('0xe')](_0x6e70('0xf'),_0x1b0389,_0x37b3e0[_0x6e70('0x30')]);})[_0x6e70('0x37')](function(_0x233a83){logger[_0x6e70('0x38')](_0x6e70('0xf'),_0x1b0389,JSON[_0x6e70('0x36')](_0x233a83));})[_0x6e70('0x3a')](function(){_0x36357b[_0x6e70('0x11')]();});}}}catch(_0x2a5444){logger[_0x6e70('0x38')](_0x6e70('0xf'),_0x1b0389,JSON['stringify'](_0x2a5444));_0x36357b['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcff=['stringify','stop','moment','../../../../config/logger','routing','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','consequence','[%s][CLOSE]\x20reason\x20%s','YYYY-MM-DD\x20HH:mm:ss','channel','Interaction','update','interaction','then','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','catch','error','[%s][CLOSE]\x20%s'];(function(_0x8e8ca7,_0x5a5e07){var _0x561381=function(_0x2f4bda){while(--_0x2f4bda){_0x8e8ca7['push'](_0x8e8ca7['shift']());}};_0x561381(++_0x5a5e07);}(_0xbcff,0x12e));var _0xfbcf=function(_0x1d1b88,_0x3cc451){_0x1d1b88=_0x1d1b88-0x0;var _0x2edfc8=_0xbcff[_0x1d1b88];return _0x2edfc8;};'use strict';var moment=require(_0xfbcf('0x0'));var logger=require(_0xfbcf('0x1'))(_0xfbcf('0x2'));var rpc={'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require(_0xfbcf('0x3')),'smsInteraction':require(_0xfbcf('0x4')),'mailInteraction':require(_0xfbcf('0x5')),'faxInteraction':require('../../rpc/faxInteraction')};exports[_0xfbcf('0x6')]=function(_0x24bf8a,_0x51d140,_0x4b7c0c,_0x2d8044){return function(_0x3b30c8){try{logger['info'](_0xfbcf('0x7'),_0x24bf8a,_0x51d140[0x0]);var _0x470fa8={'closed':0x1,'closedAt':moment()['format'](_0xfbcf('0x8')),'closeReason':'system','disposition':_0x51d140[0x0]};if(rpc[_0x2d8044[_0xfbcf('0x9')]+_0xfbcf('0xa')]){rpc[_0x2d8044['channel']+'Interaction'][_0xfbcf('0xb')](_0x2d8044[_0xfbcf('0xc')]['id'],_0x470fa8)[_0xfbcf('0xd')](function(_0x2f42e6){logger['info'](_0xfbcf('0xe'),_0x24bf8a,_0x2d8044[_0xfbcf('0xc')]['id']);})[_0xfbcf('0xf')](function(_0x3e03b3){logger[_0xfbcf('0x10')](_0xfbcf('0x11'),_0x24bf8a,JSON[_0xfbcf('0x12')](_0x3e03b3));})['finally'](function(){_0x3b30c8[_0xfbcf('0x13')]();});}}catch(_0x4a1829){logger[_0xfbcf('0x10')](_0xfbcf('0x11'),_0x24bf8a,JSON[_0xfbcf('0x12')](_0x4a1829));_0x3b30c8[_0xfbcf('0x13')]();}};};
\ No newline at end of file
+var _0xa702=['interaction','then','info','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','catch','error','[%s][CLOSE]\x20%s','stringify','finally','stop','moment','../../../../config/logger','routing','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','[%s][CLOSE]\x20reason\x20%s','YYYY-MM-DD\x20HH:mm:ss','channel','Interaction','update'];(function(_0x23beb1,_0x59a925){var _0x22620c=function(_0xb2943d){while(--_0xb2943d){_0x23beb1['push'](_0x23beb1['shift']());}};_0x22620c(++_0x59a925);}(_0xa702,0x1ae));var _0x2a70=function(_0x1e70d2,_0x44c496){_0x1e70d2=_0x1e70d2-0x0;var _0x5617d8=_0xa702[_0x1e70d2];return _0x5617d8;};'use strict';var moment=require(_0x2a70('0x0'));var logger=require(_0x2a70('0x1'))(_0x2a70('0x2'));var rpc={'chatInteraction':require(_0x2a70('0x3')),'openchannelInteraction':require(_0x2a70('0x4')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x2a70('0x5')),'faxInteraction':require('../../rpc/faxInteraction')};exports['consequence']=function(_0x3c1629,_0x512935,_0x31e4df,_0x16cdc3){return function(_0x4b2915){try{logger['info'](_0x2a70('0x6'),_0x3c1629,_0x512935[0x0]);var _0x261c54={'closed':0x1,'closedAt':moment()['format'](_0x2a70('0x7')),'closeReason':'system','disposition':_0x512935[0x0]};if(rpc[_0x16cdc3[_0x2a70('0x8')]+_0x2a70('0x9')]){rpc[_0x16cdc3[_0x2a70('0x8')]+_0x2a70('0x9')][_0x2a70('0xa')](_0x16cdc3[_0x2a70('0xb')]['id'],_0x261c54)[_0x2a70('0xc')](function(_0x109086){logger[_0x2a70('0xd')](_0x2a70('0xe'),_0x3c1629,_0x16cdc3[_0x2a70('0xb')]['id']);})[_0x2a70('0xf')](function(_0x5b3ea2){logger[_0x2a70('0x10')](_0x2a70('0x11'),_0x3c1629,JSON[_0x2a70('0x12')](_0x5b3ea2));})[_0x2a70('0x13')](function(){_0x4b2915[_0x2a70('0x14')]();});}}catch(_0x5c7e28){logger[_0x2a70('0x10')](_0x2a70('0x11'),_0x3c1629,JSON['stringify'](_0x5c7e28));_0x4b2915[_0x2a70('0x14')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4448=['channel','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','interaction','created','isEmpty','Message','create','then','[%s][DIALOGFLOW]\x20%s','body','catch','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','textRequest','result','fulfillment','metadata','endConversation','error','message','moment','apiai-promise','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','consequence','isNil','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','format','YYYY-MM-DD\x20HH:mm:ss','out'];(function(_0x571c30,_0x2766cc){var _0x41d582=function(_0x10c551){while(--_0x10c551){_0x571c30['push'](_0x571c30['shift']());}};_0x41d582(++_0x2766cc);}(_0x4448,0x19e));var _0x8444=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x4448[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var moment=require(_0x8444('0x0'));var apiai=require(_0x8444('0x1'));var utils=require('./utils');var logger=require(_0x8444('0x2'))(_0x8444('0x3'));var rpc={'chatMessage':require(_0x8444('0x4')),'openchannelMessage':require(_0x8444('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x8444('0x6')),'faxMessage':require('../../rpc/faxMessage')};exports[_0x8444('0x7')]=function(_0x134865,_0x44fdb8){return function(_0x1565f0){try{if(!_[_0x8444('0x8')](this['interaction'][_0x8444('0x9')])){logger[_0x8444('0xa')]('[%s][DIALOGFLOW]\x20%s',_0x134865,_0x8444('0xb'));return _0x1565f0[_0x8444('0xc')]();}var _0x9347c3={'ContactId':this['contact']['id'],'sentAt':moment()[_0x8444('0xd')](_0x8444('0xe')),'direction':_0x8444('0xf')};var _0x5611af=this[_0x8444('0x10')];if(_0x5611af==='chat'){_0x9347c3[_0x8444('0x11')]=this[_0x8444('0x12')]['id'];}else{_0x9347c3[_[_0x8444('0x13')](_0x5611af)+_0x8444('0x14')]=this[_0x8444('0x12')]['id'];}_0x9347c3[_['upperFirst'](_0x5611af)+_0x8444('0x15')]=this[_0x8444('0x16')]['id'];if(this[_0x8444('0x16')][_0x8444('0x17')]){var _0x10a46e=_0x44fdb8[0x2];if(!_[_0x8444('0x18')](_0x10a46e)){_0x9347c3['body']=utils['getMustacheRender'](_0x10a46e,this);return rpc[_0x5611af+_0x8444('0x19')][_0x8444('0x1a')](_0x9347c3)[_0x8444('0x1b')](function(_0x3e6c10){logger['info'](_0x8444('0x1c'),_0x134865,_0x9347c3[_0x8444('0x1d')]);})[_0x8444('0x1e')](function(_0x19e8aa){logger['error'](_0x8444('0x1c'),_0x134865,JSON[_0x8444('0x1f')](_0x19e8aa));})[_0x8444('0x20')](function(){logger[_0x8444('0xa')](_0x8444('0x21'),_0x134865);_0x1565f0['stop']();});}else{logger['info'](_0x8444('0x22'),_0x134865);_0x1565f0[_0x8444('0x23')]();}}else{var _0x4644bd=this;var _0x5ecb58=apiai(_0x44fdb8[0x0],{'language':_0x44fdb8[0x1]||'en'});return _0x5ecb58[_0x8444('0x24')](this['message']['body'],{'sessionId':this[_0x8444('0x16')]['id']})[_0x8444('0x1b')](function(_0x19efc9){_0x4644bd[_0x8444('0x1d')]['dialogflow']=_0x19efc9;_0x9347c3[_0x8444('0x1d')]=_0x19efc9[_0x8444('0x25')][_0x8444('0x26')]['speech'];return rpc[_0x5611af+_0x8444('0x19')][_0x8444('0x1a')](_0x9347c3)[_0x8444('0x1b')](function(_0x189596){logger[_0x8444('0xa')]('[%s][DIALOGFLOW]\x20%s',_0x134865,_0x9347c3[_0x8444('0x1d')]);if(_0x19efc9['result'][_0x8444('0x27')][_0x8444('0x28')]){_0x1565f0[_0x8444('0xc')]();}else{_0x1565f0[_0x8444('0x23')]();}})[_0x8444('0x1e')](function(_0x65694f){logger['error'](_0x8444('0x1c'),_0x134865,JSON[_0x8444('0x1f')](_0x65694f));_0x1565f0[_0x8444('0xc')]();});})[_0x8444('0x1e')](function(_0x5eb17a){logger[_0x8444('0x29')](_0x8444('0x1c'),_0x134865,_0x5eb17a[_0x8444('0x2a')]);_0x1565f0[_0x8444('0xc')]();});}}catch(_0x52276c){logger[_0x8444('0x29')](_0x8444('0x1c'),_0x134865,JSON[_0x8444('0x1f')](_0x52276c));_0x1565f0[_0x8444('0x23')]();}};};
\ No newline at end of file
+var _0xe478=['YYYY-MM-DD\x20HH:mm:ss','out','account','upperFirst','AccountId','interaction','created','isEmpty','body','getMustacheRender','create','then','catch','[%s][DIALOGFLOW]\x20%s','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','result','speech','Message','endConversation','error','stringify','message','lodash','moment','md5','./utils','routing','../../rpc/openchannelMessage','../../rpc/smsMessage','consequence','isNil','UserId','info','next','format'];(function(_0x37b1d4,_0x3ab179){var _0x52651b=function(_0x41ab46){while(--_0x41ab46){_0x37b1d4['push'](_0x37b1d4['shift']());}};_0x52651b(++_0x3ab179);}(_0xe478,0x11b));var _0x8e47=function(_0x16b9ed,_0x56517a){_0x16b9ed=_0x16b9ed-0x0;var _0x66b1f8=_0xe478[_0x16b9ed];return _0x66b1f8;};'use strict';var _=require(_0x8e47('0x0'));var moment=require(_0x8e47('0x1'));var apiai=require('apiai-promise');var md5=require(_0x8e47('0x2'));var utils=require(_0x8e47('0x3'));var logger=require('../../../../config/logger')(_0x8e47('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x8e47('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x8e47('0x6')),'faxMessage':require('../../rpc/faxMessage')};exports[_0x8e47('0x7')]=function(_0x4cec61,_0x57387a){return function(_0x5d3f17){try{if(!_[_0x8e47('0x8')](this['interaction'][_0x8e47('0x9')])){logger[_0x8e47('0xa')]('[%s][DIALOGFLOW]\x20%s',_0x4cec61,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x5d3f17[_0x8e47('0xb')]();}var _0x37e464={'ContactId':this['contact']['id'],'sentAt':moment()[_0x8e47('0xc')](_0x8e47('0xd')),'direction':_0x8e47('0xe')};var _0x36bbd6=this['channel'];if(_0x36bbd6==='chat'){_0x37e464['ChatWebsiteId']=this[_0x8e47('0xf')]['id'];}else{_0x37e464[_[_0x8e47('0x10')](_0x36bbd6)+_0x8e47('0x11')]=this[_0x8e47('0xf')]['id'];}_0x37e464[_[_0x8e47('0x10')](_0x36bbd6)+'InteractionId']=this[_0x8e47('0x12')]['id'];if(this[_0x8e47('0x12')][_0x8e47('0x13')]){var _0xa3a3cf=_0x57387a[0x2];if(!_[_0x8e47('0x14')](_0xa3a3cf)){_0x37e464[_0x8e47('0x15')]=utils[_0x8e47('0x16')](_0xa3a3cf,this);return rpc[_0x36bbd6+'Message'][_0x8e47('0x17')](_0x37e464)[_0x8e47('0x18')](function(_0x4eefc1){logger[_0x8e47('0xa')]('[%s][DIALOGFLOW]\x20%s',_0x4cec61,_0x37e464[_0x8e47('0x15')]);})[_0x8e47('0x19')](function(_0x48a22d){logger['error'](_0x8e47('0x1a'),_0x4cec61,JSON['stringify'](_0x48a22d));})['finally'](function(){logger[_0x8e47('0xa')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x4cec61);_0x5d3f17[_0x8e47('0x1b')]();});}else{logger[_0x8e47('0xa')](_0x8e47('0x1c'),_0x4cec61);_0x5d3f17[_0x8e47('0x1b')]();}}else{var _0x55e810=this;var _0x229873=apiai(_0x57387a[0x0],{'language':_0x57387a[0x1]||'en'});return _0x229873[_0x8e47('0x1d')](this['message'][_0x8e47('0x15')],{'sessionId':md5(this[_0x8e47('0x12')]['id'])})[_0x8e47('0x18')](function(_0x2948d2){_0x55e810['body']['dialogflow']=_0x2948d2;_0x37e464[_0x8e47('0x15')]=_0x2948d2[_0x8e47('0x1e')]['fulfillment'][_0x8e47('0x1f')];return rpc[_0x36bbd6+_0x8e47('0x20')][_0x8e47('0x17')](_0x37e464)['then'](function(_0xd539b3){logger[_0x8e47('0xa')]('[%s][DIALOGFLOW]\x20%s',_0x4cec61,_0x37e464[_0x8e47('0x15')]);if(_0x2948d2[_0x8e47('0x1e')]['metadata'][_0x8e47('0x21')]){_0x5d3f17['next']();}else{_0x5d3f17['stop']();}})[_0x8e47('0x19')](function(_0x2da0d0){logger[_0x8e47('0x22')]('[%s][DIALOGFLOW]\x20%s',_0x4cec61,JSON[_0x8e47('0x23')](_0x2da0d0));_0x5d3f17['next']();});})['catch'](function(_0x2ae48d){logger[_0x8e47('0x22')]('[%s][DIALOGFLOW]\x20%s',_0x4cec61,_0x2ae48d[_0x8e47('0x24')]);_0x5d3f17[_0x8e47('0xb')]();});}}catch(_0x28c32b){logger[_0x8e47('0x22')](_0x8e47('0x1a'),_0x4cec61,JSON[_0x8e47('0x23')](_0x28c32b));_0x5d3f17[_0x8e47('0x1b')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87a7=['./utils','../../../../config/logger','routing','string','number','priority\x20false\x20is\x20a\x20number','consequence','fromString','getMustacheRender','replace','validate','error','[%s][GOTOIF]\x20%s','map','join','priorityTrue','priorityFalse','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','condition','findIndex','rules','next','[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','stop','[%s][GOTOIF]\x20eval\x20error:\x20%s','message','lodash','html-to-text'];(function(_0x319fce,_0x1f0612){var _0x25a9d9=function(_0x48c4f1){while(--_0x48c4f1){_0x319fce['push'](_0x319fce['shift']());}};_0x25a9d9(++_0x1f0612);}(_0x87a7,0x72));var _0x787a=function(_0x313adc,_0x525590){_0x313adc=_0x313adc-0x0;var _0xc00d3b=_0x87a7[_0x313adc];return _0xc00d3b;};'use strict';var schema=require('validate');var _=require(_0x787a('0x0'));var htmlToText=require(_0x787a('0x1'));var utils=require(_0x787a('0x2'));var logger=require(_0x787a('0x3'))(_0x787a('0x4'));var gotoif=schema({'condition':{'type':_0x787a('0x5'),'required':!![],'message':'condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'priorityTrue':{'type':_0x787a('0x6'),'message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':_0x787a('0x6'),'message':_0x787a('0x7')}});exports[_0x787a('0x8')]=function(_0x4fadc9,_0x126fe8){return function(_0x250f38){try{var _0x3b21ab={'condition':htmlToText[_0x787a('0x9')](utils[_0x787a('0xa')](_0x126fe8[0x0],this),{'wordwrap':![]})[_0x787a('0xb')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x126fe8[0x1],'priorityFalse':_0x126fe8[0x2]};var _0x1b0cea=gotoif[_0x787a('0xc')](_0x3b21ab,{'typecast':!![]});if(_0x1b0cea['length']){logger[_0x787a('0xd')](_0x787a('0xe'),_0x4fadc9,_[_0x787a('0xf')](_0x1b0cea,'message')[_0x787a('0x10')](',\x20'));_0x250f38['stop']();}else{try{var _0x18085b=eval('('+_0x3b21ab['condition']+')');var _0x46589a=_0x18085b?_0x3b21ab[_0x787a('0x11')]:_0x3b21ab[_0x787a('0x12')];logger[_0x787a('0x13')](_0x787a('0x14'),_0x4fadc9,_0x3b21ab[_0x787a('0x15')],_0x18085b,_0x46589a||'next');if(_0x46589a){var _0x2f4f33=_[_0x787a('0x16')](_0x250f38[_0x787a('0x17')](),{'p':_0x46589a});if(_0x2f4f33>=0x0){logger[_0x787a('0x13')]('[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s',_0x4fadc9,_0x46589a||_0x787a('0x18'),_0x2f4f33);_0x250f38['next'](_0x2f4f33);}else{logger[_0x787a('0x13')](_0x787a('0x19'),_0x4fadc9,_0x46589a||_0x787a('0x18'));_0x250f38[_0x787a('0x1a')]();}}else{_0x250f38[_0x787a('0x18')]();}}catch(_0x4a3fb2){logger[_0x787a('0xd')](_0x787a('0x1b'),_0x4fadc9,_0x4a3fb2[_0x787a('0x1c')]);_0x250f38[_0x787a('0x1a')]();}}}catch(_0x32a2bb){logger[_0x787a('0xd')](_0x787a('0xe'),_0x4fadc9,JSON['stringify'](_0x32a2bb));_0x250f38[_0x787a('0x1a')]();}};};
\ No newline at end of file
+var _0x1372=['fromString','length','error','[%s][GOTOIF]\x20%s','map','message','join','stop','condition','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','findIndex','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','lodash','html-to-text','./utils','../../../../config/logger','routing','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','priority\x20false\x20is\x20a\x20number','consequence'];(function(_0x19a8f6,_0x52396c){var _0x458846=function(_0x2224b1){while(--_0x2224b1){_0x19a8f6['push'](_0x19a8f6['shift']());}};_0x458846(++_0x52396c);}(_0x1372,0x19a));var _0x2137=function(_0x4a48bb,_0x5891ff){_0x4a48bb=_0x4a48bb-0x0;var _0x579604=_0x1372[_0x4a48bb];return _0x579604;};'use strict';var schema=require(_0x2137('0x0'));var _=require(_0x2137('0x1'));var htmlToText=require(_0x2137('0x2'));var utils=require(_0x2137('0x3'));var logger=require(_0x2137('0x4'))(_0x2137('0x5'));var gotoif=schema({'condition':{'type':_0x2137('0x6'),'required':!![],'message':_0x2137('0x7')},'priorityTrue':{'type':'number','message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':'number','message':_0x2137('0x8')}});exports[_0x2137('0x9')]=function(_0x144e03,_0x48f6ea){return function(_0x4e7e8c){try{var _0x5c2963={'condition':htmlToText[_0x2137('0xa')](utils['getMustacheRender'](_0x48f6ea[0x0],this),{'wordwrap':![]})['replace'](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x48f6ea[0x1],'priorityFalse':_0x48f6ea[0x2]};var _0x34f493=gotoif[_0x2137('0x0')](_0x5c2963,{'typecast':!![]});if(_0x34f493[_0x2137('0xb')]){logger[_0x2137('0xc')](_0x2137('0xd'),_0x144e03,_[_0x2137('0xe')](_0x34f493,_0x2137('0xf'))[_0x2137('0x10')](',\x20'));_0x4e7e8c[_0x2137('0x11')]();}else{try{var _0x4b98e6=eval('('+_0x5c2963[_0x2137('0x12')]+')');var _0xfa29a0=_0x4b98e6?_0x5c2963['priorityTrue']:_0x5c2963['priorityFalse'];logger[_0x2137('0x13')](_0x2137('0x14'),_0x144e03,_0x5c2963[_0x2137('0x12')],_0x4b98e6,_0xfa29a0||'next');if(_0xfa29a0){var _0x115bee=_[_0x2137('0x15')](_0x4e7e8c[_0x2137('0x16')](),{'p':_0xfa29a0});if(_0x115bee>=0x0){logger['info'](_0x2137('0x17'),_0x144e03,_0xfa29a0||_0x2137('0x18'),_0x115bee);_0x4e7e8c[_0x2137('0x18')](_0x115bee);}else{logger[_0x2137('0x13')](_0x2137('0x19'),_0x144e03,_0xfa29a0||_0x2137('0x18'));_0x4e7e8c[_0x2137('0x11')]();}}else{_0x4e7e8c['next']();}}catch(_0x4f8442){logger[_0x2137('0xc')](_0x2137('0x1a'),_0x144e03,_0x4f8442[_0x2137('0xf')]);_0x4e7e8c[_0x2137('0x11')]();}}}catch(_0x550c4a){logger[_0x2137('0xc')](_0x2137('0xd'),_0x144e03,JSON[_0x2137('0x1b')](_0x550c4a));_0x4e7e8c['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71ff=['info','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','next','stringify','validate','routing','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','length','error','[%s][GOTOP]\x20%s','message','join','stop','[%s][GOTOP]\x20priority\x20%s','priority','rules'];(function(_0x26020f,_0x50c3ac){var _0x47c4e8=function(_0x4b1daf){while(--_0x4b1daf){_0x26020f['push'](_0x26020f['shift']());}};_0x47c4e8(++_0x50c3ac);}(_0x71ff,0x77));var _0xf71f=function(_0x5c5c52,_0x36d085){_0x5c5c52=_0x5c5c52-0x0;var _0x4229ff=_0x71ff[_0x5c5c52];return _0x4229ff;};'use strict';var schema=require(_0xf71f('0x0'));var _=require('lodash');var logger=require('../../../../config/logger')(_0xf71f('0x1'));var gotop=schema({'priority':{'type':_0xf71f('0x2'),'required':!![],'message':_0xf71f('0x3')}});exports[_0xf71f('0x4')]=function(_0x333b41,_0x2409a8){return function(_0x28b73b){try{var _0xcd200b={'priority':_0x2409a8[0x0]};var _0x30425d=gotop['validate'](_0xcd200b,{'typecast':!![]});if(_0x30425d[_0xf71f('0x5')]){logger[_0xf71f('0x6')](_0xf71f('0x7'),_0x333b41,_['map'](_0x30425d,_0xf71f('0x8'))[_0xf71f('0x9')](',\x20'));_0x28b73b[_0xf71f('0xa')]();}else{logger['info'](_0xf71f('0xb'),_0x333b41,_0xcd200b['priority']);if(_0xcd200b[_0xf71f('0xc')]){var _0x12aa1a=_['findIndex'](_0x28b73b[_0xf71f('0xd')](),{'p':_0xcd200b['priority']});if(_0x12aa1a>=0x0){logger[_0xf71f('0xe')](_0xf71f('0xf'),_0x333b41,_0xcd200b[_0xf71f('0xc')]||'next',_0x12aa1a);_0x28b73b['next'](_0x12aa1a);}else{logger[_0xf71f('0xe')](_0xf71f('0x10'),_0x333b41,_0xcd200b[_0xf71f('0xc')]||'next');_0x28b73b[_0xf71f('0xa')]();}}else{_0x28b73b[_0xf71f('0x11')]();}}}catch(_0x54c529){logger[_0xf71f('0x6')](_0xf71f('0x7'),_0x333b41,JSON[_0xf71f('0x12')](_0x54c529));_0x28b73b['stop']();}};};
\ No newline at end of file
+var _0x2f2b=['info','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','[%s][GOTOP]\x20%s','stringify','validate','../../../../config/logger','routing','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','error','map','message','join','stop','[%s][GOTOP]\x20priority\x20%s','priority','findIndex'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2f2b,0x11e));var _0xb2f2=function(_0x34b9ff,_0x4fcc89){_0x34b9ff=_0x34b9ff-0x0;var _0x499c2e=_0x2f2b[_0x34b9ff];return _0x499c2e;};'use strict';var schema=require(_0xb2f2('0x0'));var _=require('lodash');var logger=require(_0xb2f2('0x1'))(_0xb2f2('0x2'));var gotop=schema({'priority':{'type':_0xb2f2('0x3'),'required':!![],'message':_0xb2f2('0x4')}});exports[_0xb2f2('0x5')]=function(_0x31aadf,_0x2ee215){return function(_0x46f679){try{var _0x580420={'priority':_0x2ee215[0x0]};var _0x367305=gotop[_0xb2f2('0x0')](_0x580420,{'typecast':!![]});if(_0x367305['length']){logger[_0xb2f2('0x6')]('[%s][GOTOP]\x20%s',_0x31aadf,_[_0xb2f2('0x7')](_0x367305,_0xb2f2('0x8'))[_0xb2f2('0x9')](',\x20'));_0x46f679[_0xb2f2('0xa')]();}else{logger['info'](_0xb2f2('0xb'),_0x31aadf,_0x580420['priority']);if(_0x580420[_0xb2f2('0xc')]){var _0x3b3361=_[_0xb2f2('0xd')](_0x46f679['rules'](),{'p':_0x580420[_0xb2f2('0xc')]});if(_0x3b3361>=0x0){logger[_0xb2f2('0xe')](_0xb2f2('0xf'),_0x31aadf,_0x580420[_0xb2f2('0xc')]||'next',_0x3b3361);_0x46f679[_0xb2f2('0x10')](_0x3b3361);}else{logger[_0xb2f2('0xe')](_0xb2f2('0x11'),_0x31aadf,_0x580420['priority']||_0xb2f2('0x10'));_0x46f679[_0xb2f2('0xa')]();}}else{_0x46f679[_0xb2f2('0x10')]();}}}catch(_0x52a998){logger[_0xb2f2('0x6')](_0xb2f2('0x12'),_0x31aadf,JSON[_0xb2f2('0x13')](_0x52a998));_0x46f679[_0xb2f2('0xa')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41e8=['lodash','../../../../config/logger','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','consequence','contact','chat','ChatWebsiteId','upperFirst','channel','AccountId','account','InteractionId','interaction','Message','create','info','body','next','catch','error','stringify','stop','[%s][MESSAGE]\x20%s'];(function(_0x1bd323,_0x1c16ab){var _0x13097b=function(_0x4cc5de){while(--_0x4cc5de){_0x1bd323['push'](_0x1bd323['shift']());}};_0x13097b(++_0x1c16ab);}(_0x41e8,0x1ee));var _0x841e=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0x41e8[_0xa1e3e3];return _0xc980e9;};'use strict';var _=require(_0x841e('0x0'));var utils=require('./utils');var logger=require(_0x841e('0x1'))('routing');var rpc={'chatMessage':require(_0x841e('0x2')),'openchannelMessage':require(_0x841e('0x3')),'mailMessage':require(_0x841e('0x4')),'smsMessage':require(_0x841e('0x5')),'faxMessage':require('../../rpc/faxMessage')};exports[_0x841e('0x6')]=function(_0x4b2c4f,_0x43874){return function(_0x4f6d13){try{var _0x39b733={'body':utils['getMustacheRender'](_0x43874[0x0],this),'ContactId':this[_0x841e('0x7')]['id']};if(this['channel']===_0x841e('0x8')){_0x39b733[_0x841e('0x9')]=this['account']['id'];}else{_0x39b733[_[_0x841e('0xa')](this[_0x841e('0xb')])+_0x841e('0xc')]=this[_0x841e('0xd')]['id'];}_0x39b733[_[_0x841e('0xa')](this[_0x841e('0xb')])+_0x841e('0xe')]=this[_0x841e('0xf')]['id'];if(rpc[this[_0x841e('0xb')]+_0x841e('0x10')]){return rpc[this['channel']+'Message'][_0x841e('0x11')](_0x39b733)['then'](function(_0x2028f5){logger[_0x841e('0x12')]('[%s][MESSAGE]\x20%s',_0x4b2c4f,_0x39b733[_0x841e('0x13')]);_0x4f6d13[_0x841e('0x14')]();})[_0x841e('0x15')](function(_0x564f9b){logger[_0x841e('0x16')]('[%s][MESSAGE]\x20%s',_0x4b2c4f,JSON[_0x841e('0x17')](_0x564f9b));_0x4f6d13[_0x841e('0x18')]();});}}catch(_0x5ebfd4){logger['error'](_0x841e('0x19'),_0x4b2c4f,JSON[_0x841e('0x17')](_0x5ebfd4));_0x4f6d13[_0x841e('0x18')]();}};};
\ No newline at end of file
+var _0xca4a=['Message','create','info','[%s][MESSAGE]\x20%s','body','next','catch','stringify','stop','error','lodash','./utils','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','consequence','getMustacheRender','contact','channel','chat','ChatWebsiteId','account','upperFirst','AccountId','interaction'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0xca4a,0x192));var _0xaca4=function(_0x1f3d81,_0x45ada8){_0x1f3d81=_0x1f3d81-0x0;var _0x1c08d1=_0xca4a[_0x1f3d81];return _0x1c08d1;};'use strict';var _=require(_0xaca4('0x0'));var utils=require(_0xaca4('0x1'));var logger=require(_0xaca4('0x2'))(_0xaca4('0x3'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xaca4('0x4')),'mailMessage':require(_0xaca4('0x5')),'smsMessage':require(_0xaca4('0x6')),'faxMessage':require(_0xaca4('0x7'))};exports[_0xaca4('0x8')]=function(_0x1336cc,_0x5cc60b){return function(_0x296eac){try{var _0x2d270a={'body':utils[_0xaca4('0x9')](_0x5cc60b[0x0],this),'ContactId':this[_0xaca4('0xa')]['id']};if(this[_0xaca4('0xb')]===_0xaca4('0xc')){_0x2d270a[_0xaca4('0xd')]=this[_0xaca4('0xe')]['id'];}else{_0x2d270a[_[_0xaca4('0xf')](this['channel'])+_0xaca4('0x10')]=this['account']['id'];}_0x2d270a[_['upperFirst'](this['channel'])+'InteractionId']=this[_0xaca4('0x11')]['id'];if(rpc[this[_0xaca4('0xb')]+'Message']){return rpc[this[_0xaca4('0xb')]+_0xaca4('0x12')][_0xaca4('0x13')](_0x2d270a)['then'](function(_0xd99638){logger[_0xaca4('0x14')](_0xaca4('0x15'),_0x1336cc,_0x2d270a[_0xaca4('0x16')]);_0x296eac[_0xaca4('0x17')]();})[_0xaca4('0x18')](function(_0x510eca){logger['error'](_0xaca4('0x15'),_0x1336cc,JSON[_0xaca4('0x19')](_0x510eca));_0x296eac[_0xaca4('0x1a')]();});}}catch(_0x2c53d4){logger[_0xaca4('0x1b')](_0xaca4('0x15'),_0x1336cc,JSON[_0xaca4('0x19')](_0x2c53d4));_0x296eac[_0xaca4('0x1a')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0dcd=['stop','./utils','../../../../config/logger','routing','info','[%s][NOOP]\x20%s','getMustacheRender','next','stringify'];(function(_0x37fa15,_0x10248b){var _0x4bd041=function(_0x22a0e6){while(--_0x22a0e6){_0x37fa15['push'](_0x37fa15['shift']());}};_0x4bd041(++_0x10248b);}(_0x0dcd,0xb5));var _0xd0dc=function(_0xb3e002,_0x2db56e){_0xb3e002=_0xb3e002-0x0;var _0x1d7005=_0x0dcd[_0xb3e002];return _0x1d7005;};'use strict';var utils=require(_0xd0dc('0x0'));var logger=require(_0xd0dc('0x1'))(_0xd0dc('0x2'));exports['consequence']=function(_0x3ac1fe,_0xa34367){return function(_0x3aaee6){try{logger[_0xd0dc('0x3')](_0xd0dc('0x4'),_0x3ac1fe,utils[_0xd0dc('0x5')](_0xa34367[0x0],this));_0x3aaee6[_0xd0dc('0x6')]();}catch(_0x1e0a04){logger['error']('[%s][NOOP]\x20%s',_0x3ac1fe,JSON[_0xd0dc('0x7')](_0x1e0a04));_0x3aaee6[_0xd0dc('0x8')]();}};};
\ No newline at end of file
+var _0xc329=['../../../../config/logger','routing','consequence','info','[%s][NOOP]\x20%s','getMustacheRender','next','stop','./utils'];(function(_0x4ae829,_0x2c842c){var _0x256b31=function(_0x34f104){while(--_0x34f104){_0x4ae829['push'](_0x4ae829['shift']());}};_0x256b31(++_0x2c842c);}(_0xc329,0x1c1));var _0x9c32=function(_0xfe26da,_0x5ac1b7){_0xfe26da=_0xfe26da-0x0;var _0x2abe6e=_0xc329[_0xfe26da];return _0x2abe6e;};'use strict';var utils=require(_0x9c32('0x0'));var logger=require(_0x9c32('0x1'))(_0x9c32('0x2'));exports[_0x9c32('0x3')]=function(_0x5b6770,_0x2f3005){return function(_0x537707){try{logger[_0x9c32('0x4')](_0x9c32('0x5'),_0x5b6770,utils[_0x9c32('0x6')](_0x2f3005[0x0],this));_0x537707[_0x9c32('0x7')]();}catch(_0x1ee98e){logger['error'](_0x9c32('0x5'),_0x5b6770,JSON['stringify'](_0x1ee98e));_0x537707[_0x9c32('0x8')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x917d=['QueueReport','catch','create\x20queue\x20report','accepted','[%s][STOP:QUEUE][NAME:%s]','update','error','update\x20queue\x20report','timeout','info','toLowerCase','consequence','[%s][QUEUE]\x20%s','map','stop','find','Queues','createQueue','rules','end','close','[%s][QUEUE]\x20ROUTING\x20END','next','strategy','rrmemory','log','stack','validate','lodash','moment','../../../../config/environment','routing','./strategy','redis','localhost','socket.io-emitter','queue_id','account','joinAt','emit','%sQueuesWaitingInteractions','pick','format','%s:queue:%s','%s_queue_waiting_interaction:%s','save','remove','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','string','timeout\x20is\x20a\x20number','waiting','body','from','YYYY-MM-DD\x20HH:mm:ss','contact','list','channel','QueueId','InteractionId','interaction','upperFirst','message','chat','AccountId','WebsiteId','name'];(function(_0x119b52,_0x2b5050){var _0x15a794=function(_0x1e403b){while(--_0x1e403b){_0x119b52['push'](_0x119b52['shift']());}};_0x15a794(++_0x2b5050);}(_0x917d,0xa5));var _0xd917=function(_0x124b57,_0x1e3190){_0x124b57=_0x124b57-0x0;var _0x36a02c=_0x917d[_0x124b57];return _0x36a02c;};'use strict';var schema=require(_0xd917('0x0'));var _=require(_0xd917('0x1'));var util=require('util');var seqqueue=require('seq-queue');var moment=require(_0xd917('0x2'));var config=require(_0xd917('0x3'));var logger=require('../../../../config/logger')(_0xd917('0x4'));var strategy=require(_0xd917('0x5'));config[_0xd917('0x6')]=_['defaults'](config[_0xd917('0x6')],{'host':_0xd917('0x7'),'port':0x18eb});var io=require(_0xd917('0x8'))(config[_0xd917('0x6')]);var attributes=['id',_0xd917('0x9'),_0xd917('0xa'),'queue','from',_0xd917('0xb')];function emit(_0x465911,_0x43ebe6,_0x3c2f56){io['to'](_0x465911)[_0xd917('0xc')](_0x43ebe6,_0x3c2f56);}function emitChannelQueueInteraction(_0x498d01,_0x7c4062,_0x1982df,_0x55437c,_0x418d95,_0x39599b,_0x5ae53a,_0x1794fc){_0x1982df['queue_id']=_0x1794fc;_0x1982df['queue']=_0x7c4062;_0x1982df['account']=_0x55437c;_0x1982df['id']=_0x418d95;if(_0x39599b){_0x5ae53a[util['format'](_0xd917('0xd'),_0x498d01)][_0x418d95]=_[_0xd917('0xe')](_0x1982df,attributes);}else{delete _0x5ae53a[util['format']('%sQueuesWaitingInteractions',_0x498d01)][_0x418d95];}emit(util[_0xd917('0xf')](_0xd917('0x10'),_0x498d01,_0x7c4062),util[_0xd917('0xf')](_0xd917('0x11'),_0x498d01,_0x39599b?_0xd917('0x12'):_0xd917('0x13')),_[_0xd917('0xe')](_0x1982df,attributes));}var rpc={'openchannelQueueReport':require('../../rpc/openchannelQueueReport'),'mailQueueReport':require(_0xd917('0x14')),'chatQueueReport':require(_0xd917('0x15')),'smsQueueReport':require(_0xd917('0x16')),'faxQueueReport':require(_0xd917('0x17'))};var queue=schema({'name':{'type':_0xd917('0x18'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':'number','message':_0xd917('0x19')}});function startRouting(_0x5cb5ad,_0x5492bc,_0x4770e1,_0x453151){if(_0x5cb5ad&&_0x5492bc&&_0x4770e1){_0x5492bc[_0xd917('0x1a')]+=0x1;var _0x5f3679={'uniqueid':_0x5cb5ad,'from':_0x4770e1[_0xd917('0x1b')]?_0x4770e1[_0xd917('0x1b')][_0xd917('0x1c')]:'','joinAt':moment()[_0xd917('0xf')](_0xd917('0x1d')),'ContactId':_0x4770e1[_0xd917('0x1e')]?_0x4770e1[_0xd917('0x1e')]['id']:null,'ListId':_0x4770e1[_0xd917('0x1f')]?_0x4770e1['list']['id']:null};_0x5f3679[_['upperFirst'](_0x4770e1[_0xd917('0x20')])+_0xd917('0x21')]=_0x5492bc['id']||null;_0x5f3679[_['upperFirst'](_0x4770e1[_0xd917('0x20')])+_0xd917('0x22')]=_0x4770e1[_0xd917('0x23')]?_0x4770e1['interaction']['id']:null;_0x5f3679[_[_0xd917('0x24')](_0x4770e1[_0xd917('0x20')])+'MessageId']=_0x4770e1[_0xd917('0x25')]?_0x4770e1[_0xd917('0x25')]['id']:null;_0x5f3679[_[_0xd917('0x24')](_0x4770e1[_0xd917('0x20')])+(_0x4770e1[_0xd917('0x20')]!==_0xd917('0x26')?_0xd917('0x27'):_0xd917('0x28'))]=_0x4770e1[_0xd917('0xa')]?_0x4770e1[_0xd917('0xa')]['id']:null;logger['info'](util[_0xd917('0xf')]('[%s][START:QUEUE][NAME:%s]',_0x5cb5ad,_0x5492bc[_0xd917('0x29')]));emitChannelQueueInteraction(_0x4770e1[_0xd917('0x20')],_0x5492bc[_0xd917('0x29')],_0x5f3679,_0x4770e1[_0xd917('0xa')][_0xd917('0x29')],_0x4770e1[_0xd917('0x25')]['id'],!![],_0x453151,_0x5492bc['id']);if(rpc[_0x4770e1[_0xd917('0x20')]+_0xd917('0x2a')]){return rpc[_0x4770e1[_0xd917('0x20')]+_0xd917('0x2a')]['create'](_0x5f3679)[_0xd917('0x2b')](function(_0x228b33){logger['error'](_0xd917('0x2c'));});}}}function stopRouting(_0x319474,_0x16c0ce,_0x3b2f1d,_0x3a617e){if(_0x319474&&_0x16c0ce){_0x16c0ce[_0xd917('0x1a')]-=0x1;var _0x4c9ba9={'leaveAt':moment()[_0xd917('0xf')](_0xd917('0x1d')),'acceptAt':moment()[_0xd917('0xf')]('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0xd917('0x2d')};logger['info'](util['format'](_0xd917('0x2e'),_0x319474,_0x16c0ce[_0xd917('0x29')]));emitChannelQueueInteraction(_0x3b2f1d[_0xd917('0x20')],_0x16c0ce[_0xd917('0x29')],_0x3b2f1d['body'],_0x3b2f1d[_0xd917('0xa')][_0xd917('0x29')],_0x3b2f1d[_0xd917('0x25')]['id'],![],_0x3a617e,_0x16c0ce['id']);if(rpc[_0x3b2f1d[_0xd917('0x20')]+_0xd917('0x2a')]){return rpc[_0x3b2f1d['channel']+_0xd917('0x2a')][_0xd917('0x2f')](_0x319474,_0x4c9ba9)[_0xd917('0x2b')](function(_0x48c48a){logger[_0xd917('0x30')](_0xd917('0x31'));});}}}function endRouting(_0x845560,_0x150f05,_0x148a65,_0x42df20){if(_0x845560&&_0x150f05){_0x150f05[_0xd917('0x1a')]-=0x1;var _0x2725ab={'leaveAt':moment()[_0xd917('0xf')](_0xd917('0x1d')),'exitAt':moment()[_0xd917('0xf')](_0xd917('0x1d')),'reason':_0xd917('0x32')};logger[_0xd917('0x33')](util[_0xd917('0xf')]('[%s][END:QUEUE][NAME:%s]',_0x845560,_0x150f05[_0xd917('0x29')]));emitChannelQueueInteraction(_0x148a65[_0xd917('0x20')],_0x150f05[_0xd917('0x29')],_0x148a65[_0xd917('0x1b')],_0x148a65[_0xd917('0xa')]['name'],_0x148a65['message']['id'],![],_0x42df20);if(rpc[_0x148a65[_0xd917('0x20')]+_0xd917('0x2a')]){return rpc[_0x148a65[_0xd917('0x20')]+'QueueReport']['update'](_0x845560,_0x2725ab)['catch'](function(_0x1f2ac6){logger[_0xd917('0x30')](_0xd917('0x31'));});}}}function handleFindQueue(_0x44d822){return function(_0x31d112){return _0x31d112[_0xd917('0x29')][_0xd917('0x34')]()===_0x44d822['toLowerCase']();};}exports[_0xd917('0x35')]=function(_0x250ebf,_0x3f9450,_0x3fefd4,_0x34c8a8){return function(_0x5c9144){try{var _0x5a3c88={'name':_0x3f9450[0x0],'timeout':_0x3f9450[0x1]};var _0x3e82dc=queue[_0xd917('0x0')](_0x5a3c88,{'typecast':!![]});if(_0x3e82dc['length']){logger[_0xd917('0x30')](_0xd917('0x36'),_0x250ebf,_[_0xd917('0x37')](_0x3e82dc,_0xd917('0x25'))['join'](',\x20'));_0x5c9144[_0xd917('0x38')]();}else{var _0x2f1ece=_[_0xd917('0x39')](_0x3fefd4[_0x34c8a8[_0xd917('0x20')]+_0xd917('0x3a')],handleFindQueue(_0x5a3c88[_0xd917('0x29')]));if(_0x2f1ece){startRouting(_0x250ebf,_0x2f1ece,_0x34c8a8,_0x3fefd4);var _0x5a520c=(_0x2f1ece['timeout']||0xa)*0x3e8;var _0x12b18b=(_0x5a3c88['timeout']||0x14)*0x3e8;var _0x2a2968,_0x64bb87;if(_0x5a520c>_0x12b18b){_0x12b18b=_0x5a520c;}var _0x259db9=seqqueue[_0xd917('0x3b')](_0x5a520c);_0x259db9['id']=_0x250ebf;_0x259db9['atimeout']=_0x5a520c;_0x259db9['qtimeout']=_0x12b18b;_0x259db9[_0xd917('0x20')]=_0x34c8a8['channel'];_0x3fefd4[_0xd917('0x3c')][_0x250ebf]['on'](_0xd917('0x3d'),function(){stopRouting(_0x250ebf,_0x2f1ece,_0x34c8a8,_0x3fefd4);_0x259db9[_0xd917('0x3e')](!![]);clearTimeout(_0x2a2968);_0x2a2968=undefined;if(_0x3fefd4['rules'][_0x250ebf]){delete _0x3fefd4[_0xd917('0x3c')][_0x250ebf];}logger['info']('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x250ebf);_0x5c9144['stop']();});_0x2a2968=setTimeout(function(){endRouting(_0x250ebf,_0x2f1ece,_0x34c8a8,_0x3fefd4);clearTimeout(_0x2a2968);_0x259db9[_0xd917('0x3e')](!![]);logger[_0xd917('0x33')](_0xd917('0x3f'),_0x250ebf);_0x5c9144[_0xd917('0x40')]();},_0x12b18b);switch(_0x2f1ece[_0xd917('0x41')]){case _0xd917('0x42'):strategy['rrmemory'](_0x259db9,_0x2f1ece,_0x3fefd4,_0x34c8a8);break;default:strategy['beepall'](_0x259db9,_0x2f1ece,_0x3fefd4,_0x34c8a8);}}else{logger[_0xd917('0x30')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x250ebf,_0x5a3c88[_0xd917('0x29')]);_0x5c9144['stop']();}}}catch(_0x270e4e){console[_0xd917('0x43')](_0x270e4e);logger[_0xd917('0x30')]('[%s][QUEUE]\x20%s',_0x250ebf,_0x270e4e[_0xd917('0x44')]);_0x5c9144[_0xd917('0x38')]();}};};
\ No newline at end of file
+var _0x3908=['InteractionId','interaction','message','chat','AccountId','WebsiteId','info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','error','create\x20queue\x20report','waiting','accepted','[%s][STOP:QUEUE][NAME:%s]','update\x20queue\x20report','timeout','body','update','toLowerCase','consequence','validate','length','join','stop','find','atimeout','qtimeout','end','rules','[%s][QUEUE]\x20ROUTING\x20STOPPED','close','strategy','rrmemory','log','stack','lodash','util','seq-queue','moment','ioredis','../../../../config/logger','routing','./strategy','redis','defaults','localhost','queue_id','account','queue','from','emit','format','%sQueuesWaitingInteractions','pick','%s_queue_waiting_interaction:%s','save','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','YYYY-MM-DD\x20HH:mm:ss','contact','list','upperFirst','channel','QueueId'];(function(_0x129c9b,_0x298d44){var _0x3e926d=function(_0xc25128){while(--_0xc25128){_0x129c9b['push'](_0x129c9b['shift']());}};_0x3e926d(++_0x298d44);}(_0x3908,0xb6));var _0x8390=function(_0x9cfe28,_0x1a335c){_0x9cfe28=_0x9cfe28-0x0;var _0x54a1d0=_0x3908[_0x9cfe28];return _0x54a1d0;};'use strict';var schema=require('validate');var _=require(_0x8390('0x0'));var util=require(_0x8390('0x1'));var seqqueue=require(_0x8390('0x2'));var moment=require(_0x8390('0x3'));var Redis=require(_0x8390('0x4'));var config=require('../../../../config/environment');var logger=require(_0x8390('0x5'))(_0x8390('0x6'));var strategy=require(_0x8390('0x7'));config[_0x8390('0x8')]=_[_0x8390('0x9')](config[_0x8390('0x8')],{'host':_0x8390('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x8390('0x8')]));var attributes=['id',_0x8390('0xb'),_0x8390('0xc'),_0x8390('0xd'),_0x8390('0xe'),'joinAt'];function emit(_0x565931,_0x58b4a2,_0x1c7c7e){io['to'](_0x565931)[_0x8390('0xf')](_0x58b4a2,_0x1c7c7e);}function emitChannelQueueInteraction(_0x484bda,_0x2bf779,_0x4da228,_0x19de04,_0x15bc7b,_0x264c42,_0x1d3bf0,_0x17e8be){_0x4da228[_0x8390('0xb')]=_0x17e8be;_0x4da228['queue']=_0x2bf779;_0x4da228['account']=_0x19de04;_0x4da228['id']=_0x15bc7b;if(_0x264c42){_0x1d3bf0[util[_0x8390('0x10')](_0x8390('0x11'),_0x484bda)][_0x15bc7b]=_[_0x8390('0x12')](_0x4da228,attributes);}else{delete _0x1d3bf0[util[_0x8390('0x10')](_0x8390('0x11'),_0x484bda)][_0x15bc7b];}emit(util[_0x8390('0x10')]('%s:queue:%s',_0x484bda,_0x2bf779),util[_0x8390('0x10')](_0x8390('0x13'),_0x484bda,_0x264c42?_0x8390('0x14'):'remove'),_[_0x8390('0x12')](_0x4da228,attributes));}var rpc={'openchannelQueueReport':require(_0x8390('0x15')),'mailQueueReport':require(_0x8390('0x16')),'chatQueueReport':require('../../rpc/chatQueueReport'),'smsQueueReport':require(_0x8390('0x17')),'faxQueueReport':require(_0x8390('0x18'))};var queue=schema({'name':{'type':_0x8390('0x19'),'required':!![],'message':_0x8390('0x1a')},'timeout':{'type':'number','message':_0x8390('0x1b')}});function startRouting(_0x468f22,_0x39a989,_0xce98ba,_0x3c90aa){if(_0x468f22&&_0x39a989&&_0xce98ba){_0x39a989['waiting']+=0x1;var _0x33f959={'uniqueid':_0x468f22,'from':_0xce98ba['body']?_0xce98ba['body'][_0x8390('0xe')]:'','joinAt':moment()[_0x8390('0x10')](_0x8390('0x1c')),'ContactId':_0xce98ba[_0x8390('0x1d')]?_0xce98ba[_0x8390('0x1d')]['id']:null,'ListId':_0xce98ba[_0x8390('0x1e')]?_0xce98ba['list']['id']:null};_0x33f959[_[_0x8390('0x1f')](_0xce98ba[_0x8390('0x20')])+_0x8390('0x21')]=_0x39a989['id']||null;_0x33f959[_['upperFirst'](_0xce98ba[_0x8390('0x20')])+_0x8390('0x22')]=_0xce98ba['interaction']?_0xce98ba[_0x8390('0x23')]['id']:null;_0x33f959[_[_0x8390('0x1f')](_0xce98ba[_0x8390('0x20')])+'MessageId']=_0xce98ba['message']?_0xce98ba[_0x8390('0x24')]['id']:null;_0x33f959[_[_0x8390('0x1f')](_0xce98ba[_0x8390('0x20')])+(_0xce98ba[_0x8390('0x20')]!==_0x8390('0x25')?_0x8390('0x26'):_0x8390('0x27'))]=_0xce98ba[_0x8390('0xc')]?_0xce98ba[_0x8390('0xc')]['id']:null;logger[_0x8390('0x28')](util[_0x8390('0x10')](_0x8390('0x29'),_0x468f22,_0x39a989[_0x8390('0x2a')]));emitChannelQueueInteraction(_0xce98ba['channel'],_0x39a989[_0x8390('0x2a')],_0x33f959,_0xce98ba[_0x8390('0xc')]['name'],_0xce98ba[_0x8390('0x24')]['id'],!![],_0x3c90aa,_0x39a989['id']);if(rpc[_0xce98ba[_0x8390('0x20')]+_0x8390('0x2b')]){return rpc[_0xce98ba[_0x8390('0x20')]+_0x8390('0x2b')][_0x8390('0x2c')](_0x33f959)[_0x8390('0x2d')](function(_0x1266ea){logger[_0x8390('0x2e')](_0x8390('0x2f'));});}}}function stopRouting(_0x3e3764,_0x520348,_0x313614,_0x47e446){if(_0x3e3764&&_0x520348){_0x520348[_0x8390('0x30')]-=0x1;var _0xbcbdff={'leaveAt':moment()[_0x8390('0x10')](_0x8390('0x1c')),'acceptAt':moment()[_0x8390('0x10')](_0x8390('0x1c')),'reason':_0x8390('0x31')};logger[_0x8390('0x28')](util[_0x8390('0x10')](_0x8390('0x32'),_0x3e3764,_0x520348[_0x8390('0x2a')]));emitChannelQueueInteraction(_0x313614[_0x8390('0x20')],_0x520348[_0x8390('0x2a')],_0x313614['body'],_0x313614[_0x8390('0xc')][_0x8390('0x2a')],_0x313614['message']['id'],![],_0x47e446,_0x520348['id']);if(rpc[_0x313614[_0x8390('0x20')]+_0x8390('0x2b')]){return rpc[_0x313614[_0x8390('0x20')]+_0x8390('0x2b')]['update'](_0x3e3764,_0xbcbdff)[_0x8390('0x2d')](function(_0x2136fc){logger[_0x8390('0x2e')](_0x8390('0x33'));});}}}function endRouting(_0x4cc35e,_0x586f90,_0x2c09c1,_0x5a6e3){if(_0x4cc35e&&_0x586f90){_0x586f90[_0x8390('0x30')]-=0x1;var _0x44167d={'leaveAt':moment()[_0x8390('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()[_0x8390('0x10')](_0x8390('0x1c')),'reason':_0x8390('0x34')};logger[_0x8390('0x28')](util[_0x8390('0x10')]('[%s][END:QUEUE][NAME:%s]',_0x4cc35e,_0x586f90[_0x8390('0x2a')]));emitChannelQueueInteraction(_0x2c09c1[_0x8390('0x20')],_0x586f90[_0x8390('0x2a')],_0x2c09c1[_0x8390('0x35')],_0x2c09c1[_0x8390('0xc')]['name'],_0x2c09c1[_0x8390('0x24')]['id'],![],_0x5a6e3);if(rpc[_0x2c09c1[_0x8390('0x20')]+'QueueReport']){return rpc[_0x2c09c1[_0x8390('0x20')]+'QueueReport'][_0x8390('0x36')](_0x4cc35e,_0x44167d)[_0x8390('0x2d')](function(_0x5d47f9){logger[_0x8390('0x2e')]('update\x20queue\x20report');});}}}function handleFindQueue(_0x229b5f){return function(_0x169032){return _0x169032[_0x8390('0x2a')]['toLowerCase']()===_0x229b5f[_0x8390('0x37')]();};}exports[_0x8390('0x38')]=function(_0x19f953,_0x3dfd4e,_0x47cb28,_0x21d744){return function(_0x11223d){try{var _0x1ee6e5={'name':_0x3dfd4e[0x0],'timeout':_0x3dfd4e[0x1]};var _0xd688f1=queue[_0x8390('0x39')](_0x1ee6e5,{'typecast':!![]});if(_0xd688f1[_0x8390('0x3a')]){logger[_0x8390('0x2e')]('[%s][QUEUE]\x20%s',_0x19f953,_['map'](_0xd688f1,_0x8390('0x24'))[_0x8390('0x3b')](',\x20'));_0x11223d[_0x8390('0x3c')]();}else{var _0x518f50=_[_0x8390('0x3d')](_0x47cb28[_0x21d744['channel']+'Queues'],handleFindQueue(_0x1ee6e5[_0x8390('0x2a')]));if(_0x518f50){startRouting(_0x19f953,_0x518f50,_0x21d744,_0x47cb28);var _0x311d1a=(_0x518f50[_0x8390('0x34')]||0xa)*0x3e8;var _0xdcea4c=(_0x1ee6e5[_0x8390('0x34')]||0x14)*0x3e8;var _0x47c10e,_0x3fcda9;if(_0x311d1a>_0xdcea4c){_0xdcea4c=_0x311d1a;}var _0x40ce5a=seqqueue['createQueue'](_0x311d1a);_0x40ce5a['id']=_0x19f953;_0x40ce5a[_0x8390('0x3e')]=_0x311d1a;_0x40ce5a[_0x8390('0x3f')]=_0xdcea4c;_0x40ce5a[_0x8390('0x20')]=_0x21d744[_0x8390('0x20')];_0x47cb28['rules'][_0x19f953]['on'](_0x8390('0x40'),function(){stopRouting(_0x19f953,_0x518f50,_0x21d744,_0x47cb28);_0x40ce5a['close'](!![]);clearTimeout(_0x47c10e);_0x47c10e=undefined;if(_0x47cb28[_0x8390('0x41')][_0x19f953]){delete _0x47cb28[_0x8390('0x41')][_0x19f953];}logger[_0x8390('0x28')](_0x8390('0x42'),_0x19f953);_0x11223d[_0x8390('0x3c')]();});_0x47c10e=setTimeout(function(){endRouting(_0x19f953,_0x518f50,_0x21d744,_0x47cb28);clearTimeout(_0x47c10e);_0x40ce5a[_0x8390('0x43')](!![]);logger[_0x8390('0x28')]('[%s][QUEUE]\x20ROUTING\x20END',_0x19f953);_0x11223d['next']();},_0xdcea4c);switch(_0x518f50[_0x8390('0x44')]){case _0x8390('0x45'):strategy['rrmemory'](_0x40ce5a,_0x518f50,_0x47cb28,_0x21d744);break;default:strategy['beepall'](_0x40ce5a,_0x518f50,_0x47cb28,_0x21d744);}}else{logger['error']('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x19f953,_0x1ee6e5['name']);_0x11223d['stop']();}}}catch(_0x5c7645){console[_0x8390('0x46')](_0x5c7645);logger[_0x8390('0x2e')]('[%s][QUEUE]\x20%s',_0x19f953,_0x5c7645[_0x8390('0x47')]);_0x11223d[_0x8390('0x3c')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd90=['agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','isAgentAvailable','busy','busyQueue','showNotification','writeLog','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','isNil','[%s][AGENT]\x20timeout\x20with\x20%s','STOP','TIMEOUT','exports','lodash','uuid','./util','routing','notificationId','squeue','agent','push','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','info','[%s][AGENT]\x20try\x20with\x20%s','realtime'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcd90,0x10e));var _0x0cd9=function(_0x484e36,_0x4482d8){_0x484e36=_0x484e36-0x0;var _0xafc85d=_0xcd90[_0x484e36];return _0xafc85d;};'use strict';var _=require(_0x0cd9('0x0'));var uuid=require(_0x0cd9('0x1'));var util=require(_0x0cd9('0x2'));var logger=require('../../../../../config/logger')(_0x0cd9('0x3'));var Agent=function(_0x30b3ab,_0x2aca89,_0x11d556,_0x10c0f3){this[_0x0cd9('0x4')]=uuid['v4']();this[_0x0cd9('0x5')]=_0x30b3ab;this[_0x0cd9('0x6')]=_0x2aca89;this['realtime']=_0x11d556;this[_0x0cd9('0x3')]=_0x10c0f3;this[_0x0cd9('0x5')][_0x0cd9('0x7')](this[_0x0cd9('0x8')][_0x0cd9('0x9')](this),this[_0x0cd9('0xa')][_0x0cd9('0x9')](this));this['squeue']['on'](_0x0cd9('0xb'),this[_0x0cd9('0xa')][_0x0cd9('0x9')](this));this[_0x0cd9('0x5')]['on'](_0x0cd9('0xc'),this[_0x0cd9('0xd')]['bind'](this));};Agent[_0x0cd9('0xe')][_0x0cd9('0x7')]=function(){this['squeue'][_0x0cd9('0x7')](this[_0x0cd9('0x8')]['bind'](this),this['handleTimeout'][_0x0cd9('0x9')](this));};Agent[_0x0cd9('0xe')]['handleDrained']=function(){this[_0x0cd9('0xa')](!![]);};Agent['prototype'][_0x0cd9('0x8')]=function(_0x5aa726){logger[_0x0cd9('0xf')](_0x0cd9('0x10'),this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x6')]['id']);if(_['isNil'](this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']])){logger['info'](_0x0cd9('0x13'),this['squeue']['id'],this[_0x0cd9('0x6')]['id']);setTimeout(this[_0x0cd9('0x7')][_0x0cd9('0x9')](this),0x3e8);}else{if(this[_0x0cd9('0x3')][_0x0cd9('0x14')]||util[_0x0cd9('0x15')](this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x11')]['agents'][this[_0x0cd9('0x6')]['id']],this['squeue']['channel'],![])){this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']][_0x0cd9('0x16')]=!![];this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']][_0x0cd9('0x17')]=undefined;util[_0x0cd9('0x18')](this[_0x0cd9('0x4')],this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']],null,this[_0x0cd9('0x3')]);util[_0x0cd9('0x19')](this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x11')]['agents'][this['agent']['id']],'RINGING'+(this['routing'][_0x0cd9('0x14')]?':FORCED':''));}else{logger[_0x0cd9('0xf')](_0x0cd9('0x1a'),this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x6')]['id']);setTimeout(this[_0x0cd9('0x7')]['bind'](this),0x3e8);}}};Agent[_0x0cd9('0xe')][_0x0cd9('0xa')]=function(_0x65a7d8){if(_[_0x0cd9('0x1b')](this[_0x0cd9('0x11')][_0x0cd9('0x12')][this['agent']['id']])){return logger['info']('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x6')]['id']);}else{logger[_0x0cd9('0xf')](_0x0cd9('0x1c'),this[_0x0cd9('0x5')]['id'],this['agent']['id']);util['hideNotification'](this['notificationId'],this[_0x0cd9('0x5')]['id'],this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']],null,this['routing']);this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']]['busy']=![];this[_0x0cd9('0x11')][_0x0cd9('0x12')][this[_0x0cd9('0x6')]['id']][_0x0cd9('0x17')]=undefined;util[_0x0cd9('0x19')](this[_0x0cd9('0x5')]['id'],this['realtime']['agents'][this['agent']['id']],_0x65a7d8?_0x0cd9('0x1d'):_0x0cd9('0x1e'));}if(!_0x65a7d8){setTimeout(this[_0x0cd9('0x7')]['bind'](this),0x3e8);}};function agent(_0x102e8c,_0xc16bfa,_0x23d4f0,_0x4ef084){return new Agent(_0x102e8c,_0xc16bfa,_0x23d4f0,_0x4ef084);}module[_0x0cd9('0x1f')]=agent;
\ No newline at end of file
+var _0xe79c=['./util','../../../../../config/logger','routing','notificationId','squeue','realtime','push','bind','handleTimeout','timeout','handleDrained','prototype','handleRun','info','agent','isNil','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','channel','busy','busyQueue','showNotification','writeLog','RINGING','forcedOwnership',':FORCED','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','exports','lodash','uuid'];(function(_0x500a6c,_0x3d0f6c){var _0x5d9083=function(_0x1212e1){while(--_0x1212e1){_0x500a6c['push'](_0x500a6c['shift']());}};_0x5d9083(++_0x3d0f6c);}(_0xe79c,0x106));var _0xce79=function(_0x15e82b,_0x36459f){_0x15e82b=_0x15e82b-0x0;var _0x5f3e37=_0xe79c[_0x15e82b];return _0x5f3e37;};'use strict';var _=require(_0xce79('0x0'));var uuid=require(_0xce79('0x1'));var util=require(_0xce79('0x2'));var logger=require(_0xce79('0x3'))(_0xce79('0x4'));var Agent=function(_0x342fee,_0x5eff8d,_0x2ea7e9,_0x420b8f){this[_0xce79('0x5')]=uuid['v4']();this[_0xce79('0x6')]=_0x342fee;this['agent']=_0x5eff8d;this[_0xce79('0x7')]=_0x2ea7e9;this[_0xce79('0x4')]=_0x420b8f;this[_0xce79('0x6')][_0xce79('0x8')](this['handleRun'][_0xce79('0x9')](this),this[_0xce79('0xa')][_0xce79('0x9')](this));this[_0xce79('0x6')]['on'](_0xce79('0xb'),this[_0xce79('0xa')]['bind'](this));this[_0xce79('0x6')]['on']('drained',this[_0xce79('0xc')]['bind'](this));};Agent[_0xce79('0xd')][_0xce79('0x8')]=function(){this[_0xce79('0x6')][_0xce79('0x8')](this[_0xce79('0xe')][_0xce79('0x9')](this),this[_0xce79('0xa')]['bind'](this));};Agent[_0xce79('0xd')][_0xce79('0xc')]=function(){this['handleTimeout'](!![]);};Agent[_0xce79('0xd')][_0xce79('0xe')]=function(_0x284654){logger[_0xce79('0xf')]('[%s][AGENT]\x20try\x20with\x20%s',this[_0xce79('0x6')]['id'],this[_0xce79('0x10')]['id']);if(_[_0xce79('0x11')](this[_0xce79('0x7')][_0xce79('0x12')][this[_0xce79('0x10')]['id']])){logger['info'](_0xce79('0x13'),this[_0xce79('0x6')]['id'],this[_0xce79('0x10')]['id']);setTimeout(this[_0xce79('0x8')][_0xce79('0x9')](this),0x3e8);}else{if(this[_0xce79('0x4')]['forcedOwnership']||util[_0xce79('0x14')](this[_0xce79('0x6')]['id'],this[_0xce79('0x7')][_0xce79('0x12')][this['agent']['id']],this['squeue'][_0xce79('0x15')],![])){this['realtime'][_0xce79('0x12')][this[_0xce79('0x10')]['id']][_0xce79('0x16')]=!![];this[_0xce79('0x7')][_0xce79('0x12')][this[_0xce79('0x10')]['id']][_0xce79('0x17')]=undefined;util[_0xce79('0x18')](this[_0xce79('0x5')],this['squeue']['id'],this[_0xce79('0x7')][_0xce79('0x12')][this['agent']['id']],null,this['routing']);util[_0xce79('0x19')](this[_0xce79('0x6')]['id'],this[_0xce79('0x7')]['agents'][this[_0xce79('0x10')]['id']],_0xce79('0x1a')+(this[_0xce79('0x4')][_0xce79('0x1b')]?_0xce79('0x1c'):''));}else{logger['info']('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this['squeue']['id'],this['agent']['id']);setTimeout(this[_0xce79('0x8')][_0xce79('0x9')](this),0x3e8);}}};Agent['prototype'][_0xce79('0xa')]=function(_0x266846){if(_[_0xce79('0x11')](this[_0xce79('0x7')][_0xce79('0x12')][this[_0xce79('0x10')]['id']])){return logger[_0xce79('0xf')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xce79('0x6')]['id'],this[_0xce79('0x10')]['id']);}else{logger[_0xce79('0xf')](_0xce79('0x1d'),this['squeue']['id'],this['agent']['id']);util[_0xce79('0x1e')](this[_0xce79('0x5')],this[_0xce79('0x6')]['id'],this[_0xce79('0x7')][_0xce79('0x12')][this['agent']['id']],null,this['routing']);this[_0xce79('0x7')][_0xce79('0x12')][this[_0xce79('0x10')]['id']][_0xce79('0x16')]=![];this['realtime'][_0xce79('0x12')][this[_0xce79('0x10')]['id']][_0xce79('0x17')]=undefined;util[_0xce79('0x19')](this[_0xce79('0x6')]['id'],this[_0xce79('0x7')]['agents'][this['agent']['id']],_0x266846?'STOP':_0xce79('0x1f'));}if(!_0x266846){setTimeout(this['push'][_0xce79('0x9')](this),0x3e8);}};function agent(_0xaa01f3,_0x4ca643,_0x33dbbd,_0x2e1e4d){return new Agent(_0xaa01f3,_0x4ca643,_0x33dbbd,_0x2e1e4d);}module[_0xce79('0x20')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6a0=['[%s][QUEUE]\x20EMPTY','hideNotification','STOP','TIMEOUT','exports','./util','squeue','realtime','routing','push','handleRun','bind','handleTimeout','timeout','prototype','handleDrained','isNil','queue','Agents','length','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','channel','writeLog','RINGING','busy','name','showNotification','notificationId','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY'];(function(_0x4e20d1,_0x4ea6cd){var _0x4ce0b7=function(_0x2ceb65){while(--_0x2ceb65){_0x4e20d1['push'](_0x4e20d1['shift']());}};_0x4ce0b7(++_0x4ea6cd);}(_0xd6a0,0x145));var _0x0d6a=function(_0x10848a,_0x531a91){_0x10848a=_0x10848a-0x0;var _0x138fed=_0xd6a0[_0x10848a];return _0x138fed;};'use strict';var _=require('lodash');var uuid=require('uuid');var util=require(_0x0d6a('0x0'));var logger=require('../../../../../config/logger')('routing');var Beepall=function(_0x16f334,_0x2875e0,_0x165cb5,_0x54519a){this['notificationId']=uuid['v4']();this[_0x0d6a('0x1')]=_0x16f334;this['queue']=_0x2875e0;this[_0x0d6a('0x2')]=_0x165cb5;this[_0x0d6a('0x3')]=_0x54519a;this[_0x0d6a('0x1')][_0x0d6a('0x4')](this[_0x0d6a('0x5')][_0x0d6a('0x6')](this),this[_0x0d6a('0x7')][_0x0d6a('0x6')](this));this[_0x0d6a('0x1')]['on'](_0x0d6a('0x8'),this[_0x0d6a('0x7')][_0x0d6a('0x6')](this));this[_0x0d6a('0x1')]['on']('drained',this['handleDrained'][_0x0d6a('0x6')](this));};Beepall[_0x0d6a('0x9')]['push']=function(){this[_0x0d6a('0x1')][_0x0d6a('0x4')](this[_0x0d6a('0x5')]['bind'](this),this[_0x0d6a('0x7')][_0x0d6a('0x6')](this));};Beepall[_0x0d6a('0x9')][_0x0d6a('0xa')]=function(_0x1e72f7){this['handleTimeout'](!![]);};Beepall[_0x0d6a('0x9')][_0x0d6a('0x5')]=function(_0x2cfe6e){var _0x4aab9f=!![];if(!_[_0x0d6a('0xb')](this[_0x0d6a('0xc')])&&!_[_0x0d6a('0xb')](this[_0x0d6a('0xc')][_0x0d6a('0xd')])&&this['queue']['Agents'][_0x0d6a('0xe')]>0x0){for(var _0x21a3c3=0x0,_0x5166a7;_0x21a3c3<this[_0x0d6a('0xc')][_0x0d6a('0xd')]['length'];_0x21a3c3+=0x1){_0x5166a7=this[_0x0d6a('0xc')]['Agents'][_0x21a3c3]['id'];if(_['isNil'](this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x5166a7])){logger[_0x0d6a('0x10')](_0x0d6a('0x11'),this[_0x0d6a('0x1')]['id'],_0x5166a7);}else{if(util[_0x0d6a('0x12')](this['squeue']['id'],this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x5166a7],this[_0x0d6a('0x1')][_0x0d6a('0x13')],!![])){_0x4aab9f=![];util[_0x0d6a('0x14')](this[_0x0d6a('0x1')]['id'],this[_0x0d6a('0x2')]['agents'][_0x5166a7],_0x0d6a('0x15'));this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x5166a7][_0x0d6a('0x16')]=!![];this['realtime'][_0x0d6a('0xf')][_0x5166a7]['busyQueue']=this['queue'][_0x0d6a('0x17')];util[_0x0d6a('0x18')](this[_0x0d6a('0x19')],this[_0x0d6a('0x1')]['id'],this[_0x0d6a('0x2')]['agents'][_0x5166a7],this[_0x0d6a('0xc')],this[_0x0d6a('0x3')]);}}}if(_0x4aab9f){logger[_0x0d6a('0x10')](_0x0d6a('0x1a'),this[_0x0d6a('0x1')]['id']);setTimeout(this[_0x0d6a('0x4')][_0x0d6a('0x6')](this),0x3e8);}}else{logger[_0x0d6a('0x10')](_0x0d6a('0x1b'),this['squeue']['id']);setTimeout(this[_0x0d6a('0x4')][_0x0d6a('0x6')](this),0x3e8);}};Beepall[_0x0d6a('0x9')][_0x0d6a('0x7')]=function(_0x495166){if(!_['isNil'](this[_0x0d6a('0xc')])&&!_['isNil'](this[_0x0d6a('0xc')][_0x0d6a('0xd')])){for(var _0x39577e=0x0,_0x10f976;_0x39577e<this[_0x0d6a('0xc')]['Agents'][_0x0d6a('0xe')];_0x39577e+=0x1){_0x10f976=this[_0x0d6a('0xc')]['Agents'][_0x39577e]['id'];if(_[_0x0d6a('0xb')](this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x10f976])){logger[_0x0d6a('0x10')](_0x0d6a('0x11'),this['squeue']['id'],_0x10f976);}else{util[_0x0d6a('0x1c')](this[_0x0d6a('0x19')],this[_0x0d6a('0x1')]['id'],this['realtime'][_0x0d6a('0xf')][_0x10f976],this['queue'],this[_0x0d6a('0x3')]);util['writeLog'](this[_0x0d6a('0x1')]['id'],this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x10f976],_0x495166?_0x0d6a('0x1d'):_0x0d6a('0x1e'));this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x10f976][_0x0d6a('0x16')]=![];this[_0x0d6a('0x2')][_0x0d6a('0xf')][_0x10f976]['busyQueue']=undefined;}}}if(!_0x495166){setTimeout(this[_0x0d6a('0x4')][_0x0d6a('0x6')](this),0x3e8);}};function beepall(_0x14bc0d,_0xc4565,_0x5dcf67,_0x6ad0c0){return new Beepall(_0x14bc0d,_0xc4565,_0x5dcf67,_0x6ad0c0);}module[_0x0d6a('0x1f')]=beepall;
\ No newline at end of file
+var _0x28be=['writeLog','agents','RINGING','busy','busyQueue','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','TIMEOUT','exports','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','push','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','isNil','Agents','length','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','channel'];(function(_0x22dac7,_0x45d32a){var _0x3e6cfa=function(_0x4c2e9d){while(--_0x4c2e9d){_0x22dac7['push'](_0x22dac7['shift']());}};_0x3e6cfa(++_0x45d32a);}(_0x28be,0xbb));var _0xe28b=function(_0x5d18f7,_0x1a9cce){_0x5d18f7=_0x5d18f7-0x0;var _0x530287=_0x28be[_0x5d18f7];return _0x530287;};'use strict';var _=require('lodash');var uuid=require(_0xe28b('0x0'));var util=require(_0xe28b('0x1'));var logger=require(_0xe28b('0x2'))(_0xe28b('0x3'));var Beepall=function(_0x224220,_0x1379c5,_0x371678,_0x3dfd35){this[_0xe28b('0x4')]=uuid['v4']();this[_0xe28b('0x5')]=_0x224220;this[_0xe28b('0x6')]=_0x1379c5;this[_0xe28b('0x7')]=_0x371678;this[_0xe28b('0x3')]=_0x3dfd35;this[_0xe28b('0x5')][_0xe28b('0x8')](this[_0xe28b('0x9')][_0xe28b('0xa')](this),this[_0xe28b('0xb')][_0xe28b('0xa')](this));this[_0xe28b('0x5')]['on'](_0xe28b('0xc'),this[_0xe28b('0xb')][_0xe28b('0xa')](this));this['squeue']['on'](_0xe28b('0xd'),this[_0xe28b('0xe')]['bind'](this));};Beepall[_0xe28b('0xf')][_0xe28b('0x8')]=function(){this['squeue'][_0xe28b('0x8')](this['handleRun'][_0xe28b('0xa')](this),this['handleTimeout']['bind'](this));};Beepall[_0xe28b('0xf')][_0xe28b('0xe')]=function(_0x4fa759){this[_0xe28b('0xb')](!![]);};Beepall[_0xe28b('0xf')][_0xe28b('0x9')]=function(_0x2b8e9d){var _0x1501af=!![];if(!_[_0xe28b('0x10')](this[_0xe28b('0x6')])&&!_[_0xe28b('0x10')](this['queue']['Agents'])&&this['queue'][_0xe28b('0x11')]['length']>0x0){for(var _0x3ecc36=0x0,_0xa7d8b1;_0x3ecc36<this[_0xe28b('0x6')][_0xe28b('0x11')][_0xe28b('0x12')];_0x3ecc36+=0x1){_0xa7d8b1=this[_0xe28b('0x6')][_0xe28b('0x11')][_0x3ecc36]['id'];if(_[_0xe28b('0x10')](this[_0xe28b('0x7')]['agents'][_0xa7d8b1])){logger[_0xe28b('0x13')](_0xe28b('0x14'),this[_0xe28b('0x5')]['id'],_0xa7d8b1);}else{if(util[_0xe28b('0x15')](this[_0xe28b('0x5')]['id'],this['realtime']['agents'][_0xa7d8b1],this[_0xe28b('0x5')][_0xe28b('0x16')],!![])){_0x1501af=![];util[_0xe28b('0x17')](this[_0xe28b('0x5')]['id'],this[_0xe28b('0x7')][_0xe28b('0x18')][_0xa7d8b1],_0xe28b('0x19'));this[_0xe28b('0x7')]['agents'][_0xa7d8b1][_0xe28b('0x1a')]=!![];this['realtime']['agents'][_0xa7d8b1][_0xe28b('0x1b')]=this[_0xe28b('0x6')][_0xe28b('0x1c')];util[_0xe28b('0x1d')](this[_0xe28b('0x4')],this['squeue']['id'],this[_0xe28b('0x7')]['agents'][_0xa7d8b1],this[_0xe28b('0x6')],this[_0xe28b('0x3')]);}}}if(_0x1501af){logger['info'](_0xe28b('0x1e'),this[_0xe28b('0x5')]['id']);setTimeout(this[_0xe28b('0x8')]['bind'](this),0x3e8);}}else{logger[_0xe28b('0x13')](_0xe28b('0x1f'),this[_0xe28b('0x5')]['id']);setTimeout(this[_0xe28b('0x8')][_0xe28b('0xa')](this),0x3e8);}};Beepall[_0xe28b('0xf')][_0xe28b('0xb')]=function(_0x1f2208){if(!_['isNil'](this[_0xe28b('0x6')])&&!_[_0xe28b('0x10')](this[_0xe28b('0x6')]['Agents'])){for(var _0x1a4301=0x0,_0x7dc1d5;_0x1a4301<this[_0xe28b('0x6')][_0xe28b('0x11')][_0xe28b('0x12')];_0x1a4301+=0x1){_0x7dc1d5=this['queue'][_0xe28b('0x11')][_0x1a4301]['id'];if(_[_0xe28b('0x10')](this[_0xe28b('0x7')][_0xe28b('0x18')][_0x7dc1d5])){logger[_0xe28b('0x13')](_0xe28b('0x14'),this[_0xe28b('0x5')]['id'],_0x7dc1d5);}else{util[_0xe28b('0x20')](this[_0xe28b('0x4')],this[_0xe28b('0x5')]['id'],this[_0xe28b('0x7')][_0xe28b('0x18')][_0x7dc1d5],this[_0xe28b('0x6')],this[_0xe28b('0x3')]);util['writeLog'](this['squeue']['id'],this[_0xe28b('0x7')][_0xe28b('0x18')][_0x7dc1d5],_0x1f2208?'STOP':_0xe28b('0x21'));this[_0xe28b('0x7')][_0xe28b('0x18')][_0x7dc1d5][_0xe28b('0x1a')]=![];this['realtime'][_0xe28b('0x18')][_0x7dc1d5][_0xe28b('0x1b')]=undefined;}}}if(!_0x1f2208){setTimeout(this[_0xe28b('0x8')][_0xe28b('0xa')](this),0x3e8);}};function beepall(_0x59bc15,_0x5a5685,_0x1ff07e,_0x1aebeb){return new Beepall(_0x59bc15,_0x5a5685,_0x1ff07e,_0x1aebeb);}module[_0xe28b('0x22')]=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e02=['./agent','exports','./rrmemory','./beepall'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7e02,0x71));var _0x27e0=function(_0x1230d7,_0x532598){_0x1230d7=_0x1230d7-0x0;var _0x3fbcf1=_0x7e02[_0x1230d7];return _0x3fbcf1;};'use strict';module[_0x27e0('0x0')]={'rrmemory':require(_0x27e0('0x1')),'beepall':require(_0x27e0('0x2')),'agent':require(_0x27e0('0x3'))};
\ No newline at end of file
+var _0xd67b=['./agent','./rrmemory'];(function(_0x462fe4,_0x394d3e){var _0x82b23a=function(_0x2c071f){while(--_0x2c071f){_0x462fe4['push'](_0x462fe4['shift']());}};_0x82b23a(++_0x394d3e);}(_0xd67b,0x133));var _0xbd67=function(_0x4e7344,_0x3f7ec6){_0x4e7344=_0x4e7344-0x0;var _0x80f092=_0xd67b[_0x4e7344];return _0x80f092;};'use strict';module['exports']={'rrmemory':require(_0xbd67('0x0')),'beepall':require('./beepall'),'agent':require(_0xbd67('0x1'))};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb2d=['hideNotification','busy','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','realtime','push','handleRun','bind','handleTimeout','handleDrained','prototype','agentId','queue','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','isNil','agents','info','isAgentAvailable','channel','busyQueue','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s'];(function(_0x5c883f,_0x38f092){var _0x4210cc=function(_0x51be71){while(--_0x51be71){_0x5c883f['push'](_0x5c883f['shift']());}};_0x4210cc(++_0x38f092);}(_0xcb2d,0xfb));var _0xdcb2=function(_0x37a507,_0x2596a2){_0x37a507=_0x37a507-0x0;var _0x317d9f=_0xcb2d[_0x37a507];return _0x317d9f;};'use strict';var rr=require('rr');var _=require(_0xdcb2('0x0'));var uuid=require(_0xdcb2('0x1'));var util=require(_0xdcb2('0x2'));var logger=require(_0xdcb2('0x3'))(_0xdcb2('0x4'));var RRMemory=function(_0x18a38f,_0x549853,_0xc0ec91,_0x3509ae){this[_0xdcb2('0x5')]=uuid['v4']();this[_0xdcb2('0x6')]=_0x18a38f;this['queue']=_0x549853;this[_0xdcb2('0x7')]=_0xc0ec91;this['routing']=_0x3509ae;this[_0xdcb2('0x6')][_0xdcb2('0x8')](this[_0xdcb2('0x9')][_0xdcb2('0xa')](this),this[_0xdcb2('0xb')][_0xdcb2('0xa')](this),this['module']);this[_0xdcb2('0x6')]['on']('timeout',this[_0xdcb2('0xb')][_0xdcb2('0xa')](this));this[_0xdcb2('0x6')]['on']('drained',this[_0xdcb2('0xc')][_0xdcb2('0xa')](this));};RRMemory[_0xdcb2('0xd')][_0xdcb2('0x8')]=function(){this[_0xdcb2('0x6')][_0xdcb2('0x8')](this[_0xdcb2('0x9')][_0xdcb2('0xa')](this),this[_0xdcb2('0xb')][_0xdcb2('0xa')](this));};RRMemory[_0xdcb2('0xd')][_0xdcb2('0xc')]=function(_0x50e0d6){this['handleTimeout'](!![]);};RRMemory[_0xdcb2('0xd')][_0xdcb2('0x9')]=function(_0x85fa78){this[_0xdcb2('0xe')]=rr(this[_0xdcb2('0xf')][_0xdcb2('0x10')]);logger['info'](_0xdcb2('0x11'),this[_0xdcb2('0x6')]['id'],this['agentId']);if(_[_0xdcb2('0x12')](this['realtime'][_0xdcb2('0x13')][this[_0xdcb2('0xe')]])){logger[_0xdcb2('0x14')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],this[_0xdcb2('0xe')]);setTimeout(this[_0xdcb2('0x8')][_0xdcb2('0xa')](this),0x3e8);}else{if(util[_0xdcb2('0x15')](this[_0xdcb2('0x6')]['id'],this[_0xdcb2('0x7')][_0xdcb2('0x13')][this['agentId']],this[_0xdcb2('0x6')][_0xdcb2('0x16')],!![])){this['realtime']['agents'][this[_0xdcb2('0xe')]]['busy']=!![];this[_0xdcb2('0x7')]['agents'][this[_0xdcb2('0xe')]][_0xdcb2('0x17')]=this[_0xdcb2('0xf')]['name'];util[_0xdcb2('0x18')](this[_0xdcb2('0x5')],this[_0xdcb2('0x6')]['id'],this[_0xdcb2('0x7')][_0xdcb2('0x13')][this[_0xdcb2('0xe')]],this[_0xdcb2('0xf')],this[_0xdcb2('0x4')]);util[_0xdcb2('0x19')](this[_0xdcb2('0x6')]['id'],this[_0xdcb2('0x7')][_0xdcb2('0x13')][this['agentId']],_0xdcb2('0x1a'));}else{setTimeout(this[_0xdcb2('0x8')]['bind'](this),0x3e8);}}};RRMemory[_0xdcb2('0xd')]['handleTimeout']=function(){logger['info']('[%s][QUEUE]\x20timeout\x20with\x20%s',this['squeue']['id'],this[_0xdcb2('0xe')]);if(_[_0xdcb2('0x12')](this[_0xdcb2('0x7')][_0xdcb2('0x13')][this['agentId']])){logger[_0xdcb2('0x14')](_0xdcb2('0x1b'),this['squeue']['id'],this['agentId']);}else{util[_0xdcb2('0x1c')](this[_0xdcb2('0x5')],this[_0xdcb2('0x6')]['id'],this[_0xdcb2('0x7')][_0xdcb2('0x13')][this[_0xdcb2('0xe')]],this['queue'],this[_0xdcb2('0x4')]);util[_0xdcb2('0x19')](this[_0xdcb2('0x6')]['id'],this[_0xdcb2('0x7')]['agents'][this[_0xdcb2('0xe')]],'TIMEOUT');this[_0xdcb2('0x7')][_0xdcb2('0x13')][this[_0xdcb2('0xe')]][_0xdcb2('0x1d')]=![];this[_0xdcb2('0x7')][_0xdcb2('0x13')][this[_0xdcb2('0xe')]]['busyQueue']=undefined;}};function rrmemory(_0x316d51,_0x38c3ee,_0x1f5e3b,_0x23a31d){return new RRMemory(_0x316d51,_0x38c3ee,_0x1f5e3b,_0x23a31d);}module[_0xdcb2('0x1e')]=rrmemory;
\ No newline at end of file
+var _0x7862=['squeue','queue','routing','push','handleRun','bind','handleTimeout','module','timeout','drained','handleDrained','prototype','agentId','mapAgentsId','info','realtime','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','busy','busyQueue','name','showNotification','writeLog','[%s][QUEUE]\x20timeout\x20with\x20%s','isNil','hideNotification','TIMEOUT','uuid','./util','notificationId'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0x7862,0x1ed));var _0x2786=function(_0x2ea16b,_0x5bc541){_0x2ea16b=_0x2ea16b-0x0;var _0x984d5f=_0x7862[_0x2ea16b];return _0x984d5f;};'use strict';var rr=require('rr');var _=require('lodash');var uuid=require(_0x2786('0x0'));var util=require(_0x2786('0x1'));var logger=require('../../../../../config/logger')('routing');var RRMemory=function(_0x53531c,_0x25b1f4,_0x2b87f0,_0x4dd773){this[_0x2786('0x2')]=uuid['v4']();this[_0x2786('0x3')]=_0x53531c;this[_0x2786('0x4')]=_0x25b1f4;this['realtime']=_0x2b87f0;this[_0x2786('0x5')]=_0x4dd773;this[_0x2786('0x3')][_0x2786('0x6')](this[_0x2786('0x7')][_0x2786('0x8')](this),this[_0x2786('0x9')][_0x2786('0x8')](this),this[_0x2786('0xa')]);this[_0x2786('0x3')]['on'](_0x2786('0xb'),this[_0x2786('0x9')][_0x2786('0x8')](this));this['squeue']['on'](_0x2786('0xc'),this[_0x2786('0xd')][_0x2786('0x8')](this));};RRMemory[_0x2786('0xe')][_0x2786('0x6')]=function(){this[_0x2786('0x3')][_0x2786('0x6')](this[_0x2786('0x7')]['bind'](this),this[_0x2786('0x9')][_0x2786('0x8')](this));};RRMemory[_0x2786('0xe')][_0x2786('0xd')]=function(_0x238ceb){this[_0x2786('0x9')](!![]);};RRMemory[_0x2786('0xe')][_0x2786('0x7')]=function(_0x3d2d55){this[_0x2786('0xf')]=rr(this[_0x2786('0x4')][_0x2786('0x10')]);logger[_0x2786('0x11')]('[%s][QUEUE]\x20try\x20with\x20%s',this[_0x2786('0x3')]['id'],this[_0x2786('0xf')]);if(_['isNil'](this[_0x2786('0x12')][_0x2786('0x13')][this[_0x2786('0xf')]])){logger[_0x2786('0x11')](_0x2786('0x14'),this['squeue']['id'],this[_0x2786('0xf')]);setTimeout(this[_0x2786('0x6')][_0x2786('0x8')](this),0x3e8);}else{if(util['isAgentAvailable'](this[_0x2786('0x3')]['id'],this['realtime']['agents'][this[_0x2786('0xf')]],this['squeue'][_0x2786('0x15')],!![])){this['realtime'][_0x2786('0x13')][this[_0x2786('0xf')]][_0x2786('0x16')]=!![];this[_0x2786('0x12')][_0x2786('0x13')][this['agentId']][_0x2786('0x17')]=this[_0x2786('0x4')][_0x2786('0x18')];util[_0x2786('0x19')](this[_0x2786('0x2')],this['squeue']['id'],this['realtime'][_0x2786('0x13')][this['agentId']],this[_0x2786('0x4')],this['routing']);util[_0x2786('0x1a')](this[_0x2786('0x3')]['id'],this[_0x2786('0x12')][_0x2786('0x13')][this[_0x2786('0xf')]],'RINGING');}else{setTimeout(this[_0x2786('0x6')][_0x2786('0x8')](this),0x3e8);}}};RRMemory[_0x2786('0xe')]['handleTimeout']=function(){logger[_0x2786('0x11')](_0x2786('0x1b'),this[_0x2786('0x3')]['id'],this['agentId']);if(_[_0x2786('0x1c')](this['realtime'][_0x2786('0x13')][this[_0x2786('0xf')]])){logger[_0x2786('0x11')](_0x2786('0x14'),this['squeue']['id'],this[_0x2786('0xf')]);}else{util[_0x2786('0x1d')](this[_0x2786('0x2')],this['squeue']['id'],this[_0x2786('0x12')][_0x2786('0x13')][this[_0x2786('0xf')]],this[_0x2786('0x4')],this['routing']);util[_0x2786('0x1a')](this[_0x2786('0x3')]['id'],this[_0x2786('0x12')][_0x2786('0x13')][this['agentId']],_0x2786('0x1e'));this[_0x2786('0x12')]['agents'][this['agentId']][_0x2786('0x16')]=![];this['realtime'][_0x2786('0x13')][this['agentId']][_0x2786('0x17')]=undefined;}};function rrmemory(_0x317244,_0x4039e8,_0x209843,_0x50b0b1){return new RRMemory(_0x317244,_0x4039e8,_0x209843,_0x50b0b1);}module['exports']=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3899=['info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','Pause','hasOwnProperty','CurrentCapacity','Capacity','showNotification','hideNotification','writeLog','lodash','../utils','mustache','../../../../../config/environment','../../../../../config/logger','routing','redis','localhost','socket.io-emitter','emit','format','user:%s','name','user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','notificationTemplate','error','[%s][QUEUE]\x20%s','notification:%s','remove'];(function(_0x1a9204,_0x1c9e00){var _0x17ca68=function(_0x1f4399){while(--_0x1f4399){_0x1a9204['push'](_0x1a9204['shift']());}};_0x17ca68(++_0x1c9e00);}(_0x3899,0xb2));var _0x9389=function(_0x49d590,_0x5ceb02){_0x49d590=_0x49d590-0x0;var _0x297482=_0x3899[_0x49d590];return _0x297482;};'use strict';var _=require(_0x9389('0x0'));var util=require('util');var utils=require(_0x9389('0x1'));var Mustache=require(_0x9389('0x2'));var config=require(_0x9389('0x3'));var logger=require(_0x9389('0x4'))(_0x9389('0x5'));config[_0x9389('0x6')]=_['defaults'](config[_0x9389('0x6')],{'host':_0x9389('0x7'),'port':0x18eb});var io=require(_0x9389('0x8'))(config[_0x9389('0x6')]);function emit(_0x2222e3,_0x1f8b6d,_0x7d2be6){io['to'](_0x2222e3)[_0x9389('0x9')](_0x1f8b6d,_0x7d2be6);}function sendNotification(_0x2db08e,_0x23a6fa,_0xd28103,_0x8bd3e9,_0x1ef67d,_0x12ff9c){io['to'](util[_0x9389('0xa')](_0x9389('0xb'),_0x8bd3e9[_0x9389('0xc')]))[_0x9389('0x9')](_0x9389('0xd'),_0x8bd3e9);var _0x2da795=_0x12ff9c||{};var _0x15355d=_0xd28103[_0x9389('0xe')]('.');var _0x4c7b39={'uniqueid':_0x23a6fa,'channel':_0x15355d[0x0],'id':_0x15355d[0x1],'title':_0x15355d[0x0]+_0x9389('0xf'),'interactionId':_0x15355d[0x2],'queue':_0x1ef67d?_0x1ef67d[_0x9389('0xc')]:null,'sound':_0x2da795[_0x9389('0x10')][_0x9389('0x11')],'shake':_0x2da795[_0x9389('0x10')][_0x9389('0x12')]};try{if(!_0x2da795[_0x9389('0x13')]){_0x2da795[_0x9389('0x13')]={};}if(_0x1ef67d){_0x2da795['body'][_0x9389('0x14')]=_0x1ef67d;}else if(_0x2da795[_0x9389('0x13')][_0x9389('0x14')]){delete _0x2da795[_0x9389('0x13')][_0x9389('0x14')];}_0x4c7b39[_0x9389('0x15')]=utils['getMustacheRender'](_0x2da795[_0x9389('0x10')][_0x9389('0x16')],_0x2da795);}catch(_0x5e9dd8){_0x4c7b39[_0x9389('0x15')]='I\x20can\x27t\x20render\x20your\x20template';logger[_0x9389('0x17')](util[_0x9389('0xa')](_0x9389('0x18'),_0x23a6fa,_0x5e9dd8['message']));}io['to'](util[_0x9389('0xa')]('user:%s',_0x8bd3e9['name']))[_0x9389('0x9')](util['format'](_0x9389('0x19'),_0x2db08e?'save':_0x9389('0x1a')),_0x4c7b39);}function writeLog(_0x11c12f,_0x361e90,_0x4121e){return logger[_0x9389('0x1b')](util[_0x9389('0xa')](_0x9389('0x1c'),_0x11c12f,_0x361e90[_0x9389('0xc')],_0x4121e));}exports[_0x9389('0x1d')]=function(_0x4da64a,_0x3a5b69,_0x8c150c,_0x474fa1){if(_0x3a5b69[_0x9389('0x1e')]){writeLog(_0x4da64a,_0x3a5b69,_0x9389('0x1f'));return![];}if(!_0x3a5b69[_0x9389('0x20')]){writeLog(_0x4da64a,_0x3a5b69,_0x9389('0x21'));return![];}if(_0x3a5b69[_0x8c150c+_0x9389('0x22')]){writeLog(_0x4da64a,_0x3a5b69,'PAUSE');return![];}if(_0x474fa1&&_0x3a5b69[_0x9389('0x23')](_0x8c150c+'Capacity')&&_0x3a5b69['hasOwnProperty'](_0x8c150c+_0x9389('0x24'))){if(_0x3a5b69[_0x8c150c+_0x9389('0x25')]>0x0&&_0x3a5b69[_0x8c150c+_0x9389('0x24')]>=_0x3a5b69[_0x8c150c+'Capacity']){writeLog(_0x4da64a,_0x3a5b69,_0x8c150c['toUpperCase']()+'\x20MAXCAPACITY');return![];}}return!![];};exports[_0x9389('0x26')]=function(_0x43cf01,_0x595cbb,_0x231a4d,_0x1f1a5b,_0x10fe27){return sendNotification(!![],_0x43cf01,_0x595cbb,_0x231a4d,_0x1f1a5b,_0x10fe27);};exports[_0x9389('0x27')]=function(_0x614871,_0x40fe43,_0x1e3341,_0x5947d1,_0x44d828){return sendNotification(![],_0x614871,_0x40fe43,_0x1e3341,_0x5947d1,_0x44d828);};exports[_0x9389('0x28')]=writeLog;
\ No newline at end of file
+var _0x3a44=['BUSY','OFFLINE','Pause','PAUSE','CurrentCapacity','Capacity','toUpperCase','showNotification','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','redis','defaults','localhost','socket.io-emitter','emit','user:save','\x20interaction','name','notificationSound','account','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','message','user:%s','notification:%s','remove','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy'];(function(_0x5dd33c,_0x552a45){var _0x5d5b6f=function(_0x436aca){while(--_0x436aca){_0x5dd33c['push'](_0x5dd33c['shift']());}};_0x5d5b6f(++_0x552a45);}(_0x3a44,0x18d));var _0x43a4=function(_0x3a0828,_0x3aff72){_0x3a0828=_0x3a0828-0x0;var _0x48b80a=_0x3a44[_0x3a0828];return _0x48b80a;};'use strict';var _=require(_0x43a4('0x0'));var util=require(_0x43a4('0x1'));var utils=require(_0x43a4('0x2'));var Mustache=require(_0x43a4('0x3'));var Redis=require(_0x43a4('0x4'));var config=require(_0x43a4('0x5'));var logger=require(_0x43a4('0x6'))('routing');config[_0x43a4('0x7')]=_[_0x43a4('0x8')](config[_0x43a4('0x7')],{'host':_0x43a4('0x9'),'port':0x18eb});var io=require(_0x43a4('0xa'))(new Redis(config['redis']));function emit(_0x24f6c8,_0x249203,_0x412b1b){io['to'](_0x24f6c8)[_0x43a4('0xb')](_0x249203,_0x412b1b);}function sendNotification(_0x20954c,_0x1bf0e1,_0x569bf2,_0x285039,_0x1ac77e,_0x53fd37){io['to'](util['format']('user:%s',_0x285039['name']))[_0x43a4('0xb')](_0x43a4('0xc'),_0x285039);var _0x1358a2=_0x53fd37||{};var _0x1df4f4=_0x569bf2['split']('.');var _0x108095={'uniqueid':_0x1bf0e1,'channel':_0x1df4f4[0x0],'id':_0x1df4f4[0x1],'title':_0x1df4f4[0x0]+_0x43a4('0xd'),'interactionId':_0x1df4f4[0x2],'queue':_0x1ac77e?_0x1ac77e[_0x43a4('0xe')]:null,'sound':_0x1358a2['account'][_0x43a4('0xf')],'shake':_0x1358a2[_0x43a4('0x10')][_0x43a4('0x11')]};try{if(!_0x1358a2['body']){_0x1358a2[_0x43a4('0x12')]={};}if(_0x1ac77e){_0x1358a2['body'][_0x43a4('0x13')]=_0x1ac77e;}else if(_0x1358a2[_0x43a4('0x12')][_0x43a4('0x13')]){delete _0x1358a2[_0x43a4('0x12')][_0x43a4('0x13')];}_0x108095[_0x43a4('0x14')]=utils[_0x43a4('0x15')](_0x1358a2['account'][_0x43a4('0x16')],_0x1358a2);}catch(_0x4ed5dd){_0x108095[_0x43a4('0x14')]=_0x43a4('0x17');logger[_0x43a4('0x18')](util[_0x43a4('0x19')]('[%s][QUEUE]\x20%s',_0x1bf0e1,_0x4ed5dd[_0x43a4('0x1a')]));}io['to'](util[_0x43a4('0x19')](_0x43a4('0x1b'),_0x285039[_0x43a4('0xe')]))[_0x43a4('0xb')](util[_0x43a4('0x19')](_0x43a4('0x1c'),_0x20954c?'save':_0x43a4('0x1d')),_0x108095);}function writeLog(_0x56bfb2,_0x168e00,_0x4f8330){return logger['info'](util[_0x43a4('0x19')](_0x43a4('0x1e'),_0x56bfb2,_0x168e00['name'],_0x4f8330));}exports[_0x43a4('0x1f')]=function(_0x57d7f8,_0x200aa2,_0x2d8bec,_0x5c2dee){if(_0x200aa2[_0x43a4('0x20')]){writeLog(_0x57d7f8,_0x200aa2,_0x43a4('0x21'));return![];}if(!_0x200aa2['online']){writeLog(_0x57d7f8,_0x200aa2,_0x43a4('0x22'));return![];}if(_0x200aa2[_0x2d8bec+_0x43a4('0x23')]){writeLog(_0x57d7f8,_0x200aa2,_0x43a4('0x24'));return![];}if(_0x5c2dee&&_0x200aa2['hasOwnProperty'](_0x2d8bec+'Capacity')&&_0x200aa2['hasOwnProperty'](_0x2d8bec+_0x43a4('0x25'))){if(_0x200aa2[_0x2d8bec+_0x43a4('0x26')]>0x0&&_0x200aa2[_0x2d8bec+_0x43a4('0x25')]>=_0x200aa2[_0x2d8bec+_0x43a4('0x26')]){writeLog(_0x57d7f8,_0x200aa2,_0x2d8bec[_0x43a4('0x27')]()+'\x20MAXCAPACITY');return![];}}return!![];};exports[_0x43a4('0x28')]=function(_0x281e19,_0x5833ae,_0x4ab7bc,_0x2e570f,_0x27ef68){return sendNotification(!![],_0x281e19,_0x5833ae,_0x4ab7bc,_0x2e570f,_0x27ef68);};exports[_0x43a4('0x29')]=function(_0x4879e5,_0x423358,_0x44a939,_0x4aa80a,_0x39a1f5){return sendNotification(![],_0x4879e5,_0x423358,_0x44a939,_0x4aa80a,_0x39a1f5);};exports[_0x43a4('0x2a')]=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x743e=['../../../../config/logger','routing','string','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','error','[%s][SYSTEM]\x20%s','join','info','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','next','getMustacheRender','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isEmpty','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','isObject','stringify','validate','shelljs','./utils'];(function(_0x46facc,_0x504892){var _0x236cab=function(_0x92e770){while(--_0x92e770){_0x46facc['push'](_0x46facc['shift']());}};_0x236cab(++_0x504892);}(_0x743e,0x9e));var _0xe743=function(_0xac8464,_0x41e1a3){_0xac8464=_0xac8464-0x0;var _0x20bce3=_0x743e[_0xac8464];return _0x20bce3;};'use strict';var schema=require(_0xe743('0x0'));var sh=require(_0xe743('0x1'));var _=require('lodash');var utils=require(_0xe743('0x2'));var logger=require(_0xe743('0x3'))(_0xe743('0x4'));var system=schema({'command':{'type':_0xe743('0x5'),'required':!![],'message':_0xe743('0x6')}});exports[_0xe743('0x7')]=function(_0x149fcc,_0x4b0fec){return function(_0x58f8e6){try{var _0x53af0c={'command':_0x4b0fec[0x0]};var _0x5a0ad3=system[_0xe743('0x0')](_0x53af0c,{'typecast':!![]});if(_0x5a0ad3['length']){logger[_0xe743('0x8')](_0xe743('0x9'),_0x149fcc,_['map'](_0x5a0ad3,'message')[_0xe743('0xa')](',\x20'));logger[_0xe743('0xb')](_0xe743('0xc'),_0x149fcc);_0x58f8e6[_0xe743('0xd')]();}else{var _0x7400dc=this;var _0x64d35=utils[_0xe743('0xe')](_0x4b0fec[0x0],this);logger[_0xe743('0xb')]('[%s][SYSTEM]\x20commnad:\x20%s',_0x149fcc,_0x64d35);sh['exec'](_['trim'](_0x64d35),function(_0x4038ac,_0x4f417d){logger[_0xe743('0xb')](_0xe743('0xf'),_0x149fcc,_0x4038ac);if(_0x4038ac==0x0){var _0x904368=_0x4f417d[_0xe743('0x10')](/(\r\n|\n|\r)/gm,'');if(_['isNil'](_0x4b0fec[0x1])||_[_0xe743('0x11')](_0x4b0fec[0x1])){logger[_0xe743('0xb')](_0xe743('0x12'),_0x149fcc);_0x7400dc[_0xe743('0x13')][_0x4b0fec[0x1]]=_0x904368;}else{logger[_0xe743('0xb')](_0xe743('0x14'),_0x149fcc,_0x4b0fec[0x1],_0x904368);_0x7400dc[_0xe743('0x13')][_0x4b0fec[0x1]]=_0x904368;}}_0x58f8e6['next']();});}}catch(_0x2d3712){logger[_0xe743('0x8')](_0xe743('0x9'),_0x149fcc,_[_0xe743('0x15')](_0x2d3712)?JSON[_0xe743('0x16')](_0x2d3712):_0x2d3712);logger[_0xe743('0xb')](_0xe743('0xc'),_0x149fcc);_0x58f8e6[_0xe743('0xd')]();}};};
\ No newline at end of file
+var _0x1a03=['[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','error','[%s][SYSTEM]\x20%s','isObject','validate','shelljs','lodash','./utils','../../../../config/logger','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','map','message','join','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','next','getMustacheRender','info','[%s][SYSTEM]\x20commnad:\x20%s','exec'];(function(_0x375cd2,_0x54baa5){var _0x14c2a7=function(_0x250571){while(--_0x250571){_0x375cd2['push'](_0x375cd2['shift']());}};_0x14c2a7(++_0x54baa5);}(_0x1a03,0x181));var _0x31a0=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x1a03[_0x19950b];return _0x3c6b41;};'use strict';var schema=require(_0x31a0('0x0'));var sh=require(_0x31a0('0x1'));var _=require(_0x31a0('0x2'));var utils=require(_0x31a0('0x3'));var logger=require(_0x31a0('0x4'))('routing');var system=schema({'command':{'type':'string','required':!![],'message':_0x31a0('0x5')}});exports['consequence']=function(_0x55561f,_0x2ba7db){return function(_0x525e3c){try{var _0xe55f7b={'command':_0x2ba7db[0x0]};var _0x5a53e7=system[_0x31a0('0x0')](_0xe55f7b,{'typecast':!![]});if(_0x5a53e7['length']){logger['error']('[%s][SYSTEM]\x20%s',_0x55561f,_[_0x31a0('0x6')](_0x5a53e7,_0x31a0('0x7'))[_0x31a0('0x8')](',\x20'));logger['info'](_0x31a0('0x9'),_0x55561f);_0x525e3c[_0x31a0('0xa')]();}else{var _0x534fce=this;var _0x467c1a=utils[_0x31a0('0xb')](_0x2ba7db[0x0],this);logger[_0x31a0('0xc')](_0x31a0('0xd'),_0x55561f,_0x467c1a);sh[_0x31a0('0xe')](_['trim'](_0x467c1a),function(_0x15b578,_0x250cb2){logger[_0x31a0('0xc')](_0x31a0('0xf'),_0x55561f,_0x15b578);if(_0x15b578==0x0){var _0x5562d9=_0x250cb2[_0x31a0('0x10')](/(\r\n|\n|\r)/gm,'');if(_[_0x31a0('0x11')](_0x2ba7db[0x1])||_[_0x31a0('0x12')](_0x2ba7db[0x1])){logger[_0x31a0('0xc')](_0x31a0('0x13'),_0x55561f);_0x534fce[_0x31a0('0x14')][_0x2ba7db[0x1]]=_0x5562d9;}else{logger[_0x31a0('0xc')](_0x31a0('0x15'),_0x55561f,_0x2ba7db[0x1],_0x5562d9);_0x534fce['body'][_0x2ba7db[0x1]]=_0x5562d9;}}_0x525e3c[_0x31a0('0xa')]();});}}catch(_0x123554){logger[_0x31a0('0x16')](_0x31a0('0x17'),_0x55561f,_[_0x31a0('0x18')](_0x123554)?JSON['stringify'](_0x123554):_0x123554);logger['info'](_0x31a0('0x9'),_0x55561f);_0x525e3c[_0x31a0('0xa')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['finally','error','validate','lodash','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../../../config/logger','routing','number','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','[%s][TAG]\x20%s','map','join','next','channel','Interaction','addTags','then','info','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','interaction','catch','stringify','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next'];(function(_0x120834,_0x1cc25f){var _0x3a665c=function(_0x465840){while(--_0x465840){_0x120834['push'](_0x120834['shift']());}};_0x3a665c(++_0x1cc25f);}(_0x7a54,0x106));var _0x47a5=function(_0x210213,_0x5ec581){_0x210213=_0x210213-0x0;var _0x2c1ef3=_0x7a54[_0x210213];return _0x2c1ef3;};'use strict';var schema=require(_0x47a5('0x0'));var _=require(_0x47a5('0x1'));var rpc={'chatInteraction':require(_0x47a5('0x2')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require(_0x47a5('0x3')),'mailInteraction':require(_0x47a5('0x4')),'faxInteraction':require('../../rpc/faxInteraction')};var logger=require(_0x47a5('0x5'))(_0x47a5('0x6'));var tag=schema({'tag':{'type':_0x47a5('0x7'),'required':!![],'message':_0x47a5('0x8')}});exports[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629,_0x59199c,_0x343372){return function(_0x30e405){try{var _0x506eda={'tag':_0x3d5629[0x0]};var _0x194fb0=tag['validate'](_0x506eda,{'typecast':!![]});if(_0x194fb0['length']){logger['error'](_0x47a5('0xa'),_0x545a97,_[_0x47a5('0xb')](_0x194fb0,'message')[_0x47a5('0xc')](',\x20'));logger['info']('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x545a97);_0x30e405[_0x47a5('0xd')]();}else{var _0x69e4d4={'ids':[_0x3d5629[0x0]]};if(rpc[_0x343372[_0x47a5('0xe')]+_0x47a5('0xf')]){rpc[_0x343372[_0x47a5('0xe')]+_0x47a5('0xf')][_0x47a5('0x10')](_0x343372['interaction']['id'],_0x69e4d4)[_0x47a5('0x11')](function(_0x221b54){logger[_0x47a5('0x12')](_0x47a5('0x13'),_0x545a97,_0x3d5629[0x1],_0x343372[_0x47a5('0xe')],_0x343372[_0x47a5('0x14')]['id']);})[_0x47a5('0x15')](function(_0x190faa){logger['error'](_0x47a5('0xa'),_0x545a97,JSON[_0x47a5('0x16')](_0x190faa));logger[_0x47a5('0x12')](_0x47a5('0x17'),_0x545a97);})[_0x47a5('0x18')](function(){_0x30e405['next']();});}}}catch(_0x549de3){logger[_0x47a5('0x19')]('[%s][TAG]\x20%s',_0x545a97,_['isObject'](_0x549de3)?JSON[_0x47a5('0x16')](_0x549de3):_0x549de3);logger[_0x47a5('0x12')](_0x47a5('0x17'),_0x545a97);_0x30e405[_0x47a5('0xd')]();}};};
\ No newline at end of file
+var _0x9957=['join','info','next','Interaction','channel','addTags','interaction','then','catch','stringify','finally','isObject','validate','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../../../config/logger','routing','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','length','error','[%s][TAG]\x20%s','map','message'];(function(_0x1b2844,_0x24f744){var _0x477498=function(_0x2b45a3){while(--_0x2b45a3){_0x1b2844['push'](_0x1b2844['shift']());}};_0x477498(++_0x24f744);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var schema=require(_0x7995('0x0'));var _=require(_0x7995('0x1'));var rpc={'chatInteraction':require(_0x7995('0x2')),'openchannelInteraction':require(_0x7995('0x3')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x7995('0x4')),'faxInteraction':require(_0x7995('0x5'))};var logger=require(_0x7995('0x6'))(_0x7995('0x7'));var tag=schema({'tag':{'type':'number','required':!![],'message':_0x7995('0x8')}});exports[_0x7995('0x9')]=function(_0x137b6b,_0x219534,_0xbda126,_0x326741){return function(_0x4996ca){try{var _0x465276={'tag':_0x219534[0x0]};var _0x1cad37=tag['validate'](_0x465276,{'typecast':!![]});if(_0x1cad37[_0x7995('0xa')]){logger[_0x7995('0xb')](_0x7995('0xc'),_0x137b6b,_[_0x7995('0xd')](_0x1cad37,_0x7995('0xe'))[_0x7995('0xf')](',\x20'));logger[_0x7995('0x10')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x137b6b);_0x4996ca[_0x7995('0x11')]();}else{var _0x41c652={'ids':[_0x219534[0x0]]};if(rpc[_0x326741['channel']+_0x7995('0x12')]){rpc[_0x326741[_0x7995('0x13')]+_0x7995('0x12')][_0x7995('0x14')](_0x326741[_0x7995('0x15')]['id'],_0x41c652)[_0x7995('0x16')](function(_0x2bbe7a){logger['info']('[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s',_0x137b6b,_0x219534[0x1],_0x326741[_0x7995('0x13')],_0x326741[_0x7995('0x15')]['id']);})[_0x7995('0x17')](function(_0x321ae8){logger[_0x7995('0xb')](_0x7995('0xc'),_0x137b6b,JSON[_0x7995('0x18')](_0x321ae8));logger[_0x7995('0x10')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x137b6b);})[_0x7995('0x19')](function(){_0x4996ca['next']();});}}}catch(_0x2f832e){logger[_0x7995('0xb')](_0x7995('0xc'),_0x137b6b,_[_0x7995('0x1a')](_0x2f832e)?JSON[_0x7995('0x18')](_0x2f832e):_0x2f832e);logger[_0x7995('0x10')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x137b6b);_0x4996ca['next']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa2f=['exports','render','merge','contact','message','account','interaction','list'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0xfa2f,0xe8));var _0xffa2=function(_0x1e72e4,_0x1ea582){_0x1e72e4=_0x1e72e4-0x0;var _0x572a61=_0xfa2f[_0x1e72e4];return _0x572a61;};'use strict';var Mustache=require('mustache');var _=require('lodash');module[_0xffa2('0x0')]={'getMustacheRender':function(_0x555a17,_0x2411c2){return Mustache[_0xffa2('0x1')](_0x555a17,_[_0xffa2('0x2')](_0x2411c2['body'],{'contact':_0x2411c2[_0xffa2('0x3')],'message':_0x2411c2[_0xffa2('0x4')],'account':_0x2411c2[_0xffa2('0x5')],'interaction':_0x2411c2[_0xffa2('0x6')],'list':_0x2411c2[_0xffa2('0x7')]}))||'';}};
\ No newline at end of file
+var _0xb717=['message','account','interaction','list','mustache','exports','render','merge','contact'];(function(_0x2b31b0,_0x49861f){var _0x124614=function(_0x1f777a){while(--_0x1f777a){_0x2b31b0['push'](_0x2b31b0['shift']());}};_0x124614(++_0x49861f);}(_0xb717,0x1b4));var _0x7b71=function(_0x23c08f,_0x2b97e4){_0x23c08f=_0x23c08f-0x0;var _0x2d8525=_0xb717[_0x23c08f];return _0x2d8525;};'use strict';var Mustache=require(_0x7b71('0x0'));var _=require('lodash');module[_0x7b71('0x1')]={'getMustacheRender':function(_0x4966bf,_0x42a694){return Mustache[_0x7b71('0x2')](_0x4966bf,_[_0x7b71('0x3')](_0x42a694['body'],{'contact':_0x42a694[_0x7b71('0x4')],'message':_0x42a694[_0x7b71('0x5')],'account':_0x42a694[_0x7b71('0x6')],'interaction':_0x42a694[_0x7b71('0x7')],'list':_0x42a694[_0x7b71('0x8')]}))||'';}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a64=['stack','routing\x20is\x20empty','emit','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','busyQueue','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','values','chatQueues','available','loggedIn','paused','waiting','mailQueues','name','openchannelQueues','smsQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','lodash','util','path','bluebird','uuid','../../../config/environment','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','channel','message','interaction','applications','isArray','length','existsSync','join','app','toLowerCase','autoreply','appdata','push','slice','dialogflow','split','tag','TagId','%s:%s:%s','./interval','intervals','./applications/','consequence','priority','info','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','.js','rules','execute','stringify','end','No\x20applications\x20to\x20execute'];(function(_0x1d8474,_0x28038d){var _0x5200ff=function(_0x34a642){while(--_0x34a642){_0x1d8474['push'](_0x1d8474['shift']());}};_0x5200ff(++_0x28038d);}(_0x2a64,0x1ef));var _0x42a6=function(_0x3c19b3,_0xc481d4){_0x3c19b3=_0x3c19b3-0x0;var _0x23cf20=_0x2a64[_0x3c19b3];return _0x23cf20;};'use strict';var _=require(_0x42a6('0x0'));var util=require(_0x42a6('0x1'));var path=require(_0x42a6('0x2'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0x42a6('0x3'));var uuid=require(_0x42a6('0x4'));var config=require(_0x42a6('0x5'));var logger=require(_0x42a6('0x6'))(_0x42a6('0x7'));var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport')};var rpc={'openchannelQueueReport':require(_0x42a6('0x8')),'mailQueueReport':require(_0x42a6('0x9')),'chatQueueReport':require(_0x42a6('0xa')),'smsQueueReport':require(_0x42a6('0xb')),'faxQueueReport':require(_0x42a6('0xc'))};var RuleEngine=require(_0x42a6('0xd'));function getId(_0x3ff804,_0x48737d,_0x1b5f17){return util[_0x42a6('0xe')](_0x42a6('0xf'),_0x3ff804,_0x48737d||0x0,_0x1b5f17||0x0);}function getIntervals(_0x164db3,_0x6c6b87){var _0x1d4ee6=[];if(!_[_0x42a6('0x10')](_0x6c6b87[_0x42a6('0x11')])&&!_[_0x42a6('0x10')](_0x164db3[_0x6c6b87['IntervalId']])&&!_[_0x42a6('0x10')](_0x164db3[_0x6c6b87[_0x42a6('0x11')]][_0x42a6('0x12')])){_0x1d4ee6=_[_0x42a6('0x13')](_0x164db3[_0x6c6b87['IntervalId']][_0x42a6('0x12')],_0x42a6('0x14'));}else if(!_[_0x42a6('0x10')](_0x6c6b87[_0x42a6('0x14')])){_0x1d4ee6=[_0x6c6b87[_0x42a6('0x14')]];}return _0x1d4ee6;}exports[_0x42a6('0x15')]=function(_0x3282c8){_0x3282c8['rules']={};return new BPromise(function(_0x471842,_0x42bb8c){var _0x15de20={'Start':function(_0x578baa){var _0x1e1ecd=this;return new Promise(function(_0x44f6e1,_0x33e460){if(_0x578baa){try{var _0x2b31c9=[];var _0x44a3fd=getId(_0x578baa[_0x42a6('0x16')],_0x578baa[_0x42a6('0x17')]?_0x578baa['message']['id']:0x0,_0x578baa[_0x42a6('0x18')]?_0x578baa['interaction']['id']:0x0);if(_0x578baa[_0x42a6('0x19')]&&_[_0x42a6('0x1a')](_0x578baa[_0x42a6('0x19')])&&_0x578baa['applications'][_0x42a6('0x1b')]){for(var _0x33e6d0=0x0;_0x33e6d0<_0x578baa[_0x42a6('0x19')][_0x42a6('0x1b')];_0x33e6d0+=0x1){var _0x22f6aa=_0x578baa[_0x42a6('0x19')][_0x33e6d0];if(fs[_0x42a6('0x1c')](path[_0x42a6('0x1d')](__dirname,_0x42a6('0x19'),_0x22f6aa[_0x42a6('0x1e')]+'.js'))){var _0x2f3219=[];switch(_0x22f6aa['app'][_0x42a6('0x1f')]()){case _0x42a6('0x20'):var _0x81bf87=_0x22f6aa[_0x42a6('0x21')]['split'](',');_0x2f3219[_0x42a6('0x22')](_0x81bf87[0x0]);_0x2f3219['push'](_0x81bf87[_0x42a6('0x23')](0x1,_0x81bf87[_0x42a6('0x1b')])[_0x42a6('0x1d')](','));break;case _0x42a6('0x24'):var _0x81bf87=_0x22f6aa['appdata']['split'](',');_0x2f3219['push'](_0x81bf87[0x0]);_0x2f3219[_0x42a6('0x22')](_0x81bf87[0x1]);_0x2f3219[_0x42a6('0x22')](_0x81bf87['slice'](0x2,_0x81bf87['length'])[_0x42a6('0x1d')](','));break;case'amazonlex':var _0x81bf87=_0x22f6aa[_0x42a6('0x21')][_0x42a6('0x25')](',');_0x2f3219[_0x42a6('0x22')](_0x81bf87[0x0]);_0x2f3219['push'](_0x81bf87[0x1]);_0x2f3219[_0x42a6('0x22')](_0x81bf87[0x2]);_0x2f3219[_0x42a6('0x22')](_0x81bf87[0x3]);_0x2f3219[_0x42a6('0x22')](_0x81bf87[_0x42a6('0x23')](0x4,_0x81bf87[_0x42a6('0x1b')])[_0x42a6('0x1d')](','));break;case _0x42a6('0x17'):_0x2f3219[_0x42a6('0x22')](_0x22f6aa[_0x42a6('0x21')]);break;case _0x42a6('0x26'):_0x2f3219['push'](_0x22f6aa[_0x42a6('0x27')]);_0x2f3219[_0x42a6('0x22')](_0x22f6aa[_0x42a6('0x21')]);break;default:_0x2f3219=_[_0x42a6('0x10')](_0x22f6aa[_0x42a6('0x21')])?[]:_0x22f6aa['appdata']['split'](',');}var _0x896681={'id':util[_0x42a6('0xe')](_0x42a6('0x28'),_0x44a3fd,_0x22f6aa['id'],_0x22f6aa[_0x42a6('0x1e')]),'condition':require(_0x42a6('0x29'))['condition'](_0x44a3fd,getIntervals(_0x3282c8[_0x42a6('0x2a')],_0x22f6aa),_0x3282c8),'consequence':require(_0x42a6('0x2b')+_0x22f6aa['app'])[_0x42a6('0x2c')](_0x44a3fd,_0x2f3219,_0x3282c8,_0x578baa),'p':_0x22f6aa[_0x42a6('0x2d')]||0x0};logger[_0x42a6('0x2e')]('Push\x20new\x20rule',_0x896681['id'],_0x42a6('0x2f'),getIntervals(_0x3282c8['intervals'],_0x22f6aa)['join'](_0x42a6('0x30')));_0x2b31c9[_0x42a6('0x22')](_0x896681);}else{logger[_0x42a6('0x31')](_0x42a6('0x32'),path[_0x42a6('0x1d')](__dirname,_0x42a6('0x19'),_0x22f6aa[_0x42a6('0x1e')]+_0x42a6('0x33')));}}_0x3282c8[_0x42a6('0x34')][_0x44a3fd]=new RuleEngine(_0x2b31c9);_0x3282c8['rules'][_0x44a3fd][_0x42a6('0x35')](_0x578baa,function(_0x2a8476){logger[_0x42a6('0x2e')]('Applications\x20executed',JSON[_0x42a6('0x36')](_0x2a8476['matchPath']));if(_0x3282c8[_0x42a6('0x34')][_0x44a3fd]){_0x3282c8[_0x42a6('0x34')][_0x44a3fd]['emit'](_0x42a6('0x37'));}});return _0x44f6e1({'code':0xc8,'message':_0x578baa});}else{logger['info'](_0x42a6('0x38'));return _0x44f6e1({'code':0xc8,'message':_0x578baa});}}catch(_0x335962){logger[_0x42a6('0x31')](_0x335962[_0x42a6('0x39')]);return _0x33e460(_0x1e1ecd[_0x42a6('0x31')](0x1f4,_0x335962));}}return _0x33e460(_0x42a6('0x3a'));});},'AcceptMessage':function(_0x369f24){var _0x1f716d=this;return new Promise(function(_0x5e7aaf,_0x5ddd4a){if(_0x369f24['message']&&_0x369f24[_0x42a6('0x17')]['id']){try{var _0x5261fe=getId(_0x369f24[_0x42a6('0x16')],_0x369f24[_0x42a6('0x17')]?_0x369f24[_0x42a6('0x17')]['id']:0x0,_0x369f24[_0x42a6('0x18')]?_0x369f24['interaction']['id']:0x0);if(_0x3282c8[_0x42a6('0x34')][_0x5261fe]){_0x3282c8['rules'][_0x5261fe][_0x42a6('0x3b')](_0x42a6('0x37'));if(rpc[_0x369f24['channel']+'QueueReport']){rpc[_0x369f24[_0x42a6('0x16')]+'QueueReport'][_0x42a6('0x3c')](_0x5261fe,{'UserId':_0x369f24['message'][_0x42a6('0x3d')]})[_0x42a6('0x3e')](function(_0xbeb9aa){logger[_0x42a6('0x31')](_0x42a6('0x3f'));});}}return _0x5e7aaf({'code':0xc8,'message':_0x369f24});}catch(_0x4321a5){logger[_0x42a6('0x31')](_0x4321a5[_0x42a6('0x39')]);return _0x5ddd4a(_0x1f716d[_0x42a6('0x31')](0x1f4,_0x4321a5));}}logger[_0x42a6('0x31')](_0x42a6('0x40'));return _0x5ddd4a(_0x1f716d[_0x42a6('0x31')](0x1f4,_0x42a6('0x40')));});},'RejectMessage':function(_0x3c8a9e){var _0x501f9f=this;return new Promise(function(_0x370951,_0x315afa){if(_0x3c8a9e[_0x42a6('0x41')]&&_0x3c8a9e[_0x42a6('0x41')]['id']){try{if(_0x3282c8['agents'][_0x3c8a9e[_0x42a6('0x41')]['id']]){_0x3282c8[_0x42a6('0x42')][_0x3c8a9e['agent']['id']][_0x42a6('0x43')]=![];_0x3282c8[_0x42a6('0x42')][_0x3c8a9e[_0x42a6('0x41')]['id']][_0x42a6('0x44')]=undefined;}return _0x370951({'code':0xc8,'message':_0x3c8a9e});}catch(_0x42238c){logger['error'](_0x42238c[_0x42a6('0x39')]);return _0x315afa(_0x501f9f[_0x42a6('0x31')](0x1f4,_0x42238c));}}logger['error'](_0x42a6('0x40'));return _0x315afa(_0x501f9f[_0x42a6('0x31')](0x1f4,_0x42a6('0x40')));});},'AbandonInteraction':function(_0x48b332){var _0x38b6af=this;return new Promise(function(_0x1d3a7e,_0x3dd744){if(_0x48b332[_0x42a6('0x16')]&&_0x48b332['interaction']&&_0x48b332[_0x42a6('0x18')]['id']){try{var _0x5287b4=getId(_0x48b332[_0x42a6('0x16')],_0x48b332[_0x42a6('0x17')]?_0x48b332['message']['id']:0x0,_0x48b332[_0x42a6('0x18')]?_0x48b332['interaction']['id']:0x0);if(_0x3282c8[_0x42a6('0x34')][_0x5287b4]){_0x3282c8[_0x42a6('0x34')][_0x5287b4]['emit']('end');}return _0x1d3a7e({'code':0xc8,'message':_0x48b332});}catch(_0x582397){logger[_0x42a6('0x31')](_0x582397[_0x42a6('0x39')]);return _0x3dd744(_0x38b6af[_0x42a6('0x31')](0x1f4,_0x582397));}}logger[_0x42a6('0x31')](_0x42a6('0x40'));return _0x3dd744(_0x38b6af[_0x42a6('0x31')](0x1f4,_0x42a6('0x40')));});},'AgentCapacity':function(_0x1a6465){var _0x5640eb=this;return new Promise(function(_0x1a19a3,_0x4a1324){if(_0x3282c8['agents'][_0x42a6('0x45')](_0x1a6465['id'])){for(var _0x3b9817 in _0x1a6465[_0x42a6('0x46')]){if(_0x1a6465[_0x42a6('0x46')]['hasOwnProperty'](_0x3b9817)){if(_0x3282c8[_0x42a6('0x42')][_0x1a6465['id']][_0x42a6('0x45')](_0x3b9817+_0x42a6('0x47'))){_0x3282c8[_0x42a6('0x42')][_0x1a6465['id']][_0x3b9817+_0x42a6('0x47')]=parseInt(_0x1a6465[_0x42a6('0x46')][_0x3b9817],0xa);}}}_0x3282c8[_0x42a6('0x42')][_0x1a6465['id']][_0x42a6('0x48')]();return _0x1a19a3({'code':0xc8,'message':_0x3282c8[_0x42a6('0x42')][_0x1a6465['id']]});}else{return _0x4a1324(_0x5640eb[_0x42a6('0x31')](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0x38a495){return new Promise(function(_0x671977,_0x360bf1){var _0x1df2c3=_[_0x42a6('0x49')](_0x3282c8['agents']);_0x671977({'count':_0x1df2c3[_0x42a6('0x1b')],'rows':_0x1df2c3});});},'ChatQueues':function(_0x228449){return new Promise(function(_0x43bb36,_0x3e258a){var _0x2939fd=[];for(var _0x1f12ad in _0x3282c8[_0x42a6('0x4a')]){if(_0x3282c8['chatQueues'][_0x42a6('0x45')](_0x1f12ad)){var _0xfb867a=_0x3282c8[_0x42a6('0x4a')][_0x1f12ad];var _0x38d15c={'id':_0xfb867a['id'],'available':_0xfb867a[_0x42a6('0x4b')],'loggedIn':_0xfb867a[_0x42a6('0x4c')],'name':_0xfb867a['name'],'paused':_0xfb867a[_0x42a6('0x4d')],'waiting':_0xfb867a[_0x42a6('0x4e')]};_0x2939fd['push'](_0x38d15c);}}_0x43bb36({'count':_0x2939fd[_0x42a6('0x1b')],'rows':_0x2939fd});});},'MailQueues':function(_0x5b2d4a){return new Promise(function(_0x536e8f,_0x367367){var _0x2565be=[];for(var _0x4d0a26 in _0x3282c8['mailQueues']){if(_0x3282c8[_0x42a6('0x4f')][_0x42a6('0x45')](_0x4d0a26)){var _0x78479c=_0x3282c8[_0x42a6('0x4f')][_0x4d0a26];var _0xceb491={'id':_0x78479c['id'],'available':_0x78479c[_0x42a6('0x4b')],'loggedIn':_0x78479c['loggedIn'],'name':_0x78479c[_0x42a6('0x50')],'paused':_0x78479c[_0x42a6('0x4d')],'waiting':_0x78479c[_0x42a6('0x4e')]};_0x2565be['push'](_0xceb491);}}_0x536e8f({'count':_0x2565be[_0x42a6('0x1b')],'rows':_0x2565be});});},'OpenchannelQueues':function(_0x7ef095){return new Promise(function(_0x266841,_0x3efe20){var _0x2a9c2c=[];for(var _0x40b219 in _0x3282c8['openchannelQueues']){if(_0x3282c8['openchannelQueues'][_0x42a6('0x45')](_0x40b219)){var _0x11adfe=_0x3282c8[_0x42a6('0x51')][_0x40b219];var _0x14ac1c={'id':_0x11adfe['id'],'available':_0x11adfe[_0x42a6('0x4b')],'loggedIn':_0x11adfe['loggedIn'],'name':_0x11adfe['name'],'paused':_0x11adfe[_0x42a6('0x4d')],'waiting':_0x11adfe[_0x42a6('0x4e')]};_0x2a9c2c[_0x42a6('0x22')](_0x14ac1c);}}_0x266841({'count':_0x2a9c2c[_0x42a6('0x1b')],'rows':_0x2a9c2c});});},'SmsQueues':function(_0x1d0a7e){return new Promise(function(_0x1fc61f,_0x411bb5){var _0x312114=[];for(var _0x1cda20 in _0x3282c8[_0x42a6('0x52')]){if(_0x3282c8[_0x42a6('0x52')][_0x42a6('0x45')](_0x1cda20)){var _0x49f245=_0x3282c8[_0x42a6('0x52')][_0x1cda20];var _0x5882fe={'id':_0x49f245['id'],'available':_0x49f245[_0x42a6('0x4b')],'loggedIn':_0x49f245['loggedIn'],'name':_0x49f245[_0x42a6('0x50')],'paused':_0x49f245[_0x42a6('0x4d')],'waiting':_0x49f245[_0x42a6('0x4e')]};_0x312114[_0x42a6('0x22')](_0x5882fe);}}_0x1fc61f({'count':_0x312114[_0x42a6('0x1b')],'rows':_0x312114});});},'FaxQueues':function(_0x395337){return new Promise(function(_0x4cacd6,_0x4f5d19){var _0x271125=[];for(var _0x55f343 in _0x3282c8[_0x42a6('0x53')]){if(_0x3282c8['faxQueues'][_0x42a6('0x45')](_0x55f343)){var _0x5e414b=_0x3282c8['faxQueues'][_0x55f343];var _0x4ea864={'id':_0x5e414b['id'],'available':_0x5e414b[_0x42a6('0x4b')],'loggedIn':_0x5e414b[_0x42a6('0x4c')],'name':_0x5e414b['name'],'paused':_0x5e414b['paused'],'waiting':_0x5e414b['waiting']};_0x271125[_0x42a6('0x22')](_0x4ea864);}}_0x4cacd6({'count':_0x271125[_0x42a6('0x1b')],'rows':_0x271125});});},'ChatQueuesWaitingInteractions':function(_0x545456){return new Promise(function(_0x3b90f8,_0x3b3257){var _0x531c27=_[_0x42a6('0x49')](_0x3282c8[_0x42a6('0x54')]);_0x3b90f8({'count':_0x531c27['length'],'rows':_0x531c27});});},'MailQueuesWaitingInteractions':function(_0x11456c){return new Promise(function(_0x256a1b,_0x1b3c8d){var _0x40da5b=_[_0x42a6('0x49')](_0x3282c8[_0x42a6('0x55')]);_0x256a1b({'count':_0x40da5b['length'],'rows':_0x40da5b});});},'OpenchannelQueuesWaitingInteractions':function(_0x2d9876){return new Promise(function(_0x3d3fd3,_0x5273d3){var _0x471f1e=_[_0x42a6('0x49')](_0x3282c8['openchannelQueuesWaitingInteractions']);_0x3d3fd3({'count':_0x471f1e['length'],'rows':_0x471f1e});});},'SmsQueuesWaitingInteractions':function(_0x44802a){return new Promise(function(_0x5f0810,_0x1422a6){var _0x15fa7f=_[_0x42a6('0x49')](_0x3282c8[_0x42a6('0x56')]);_0x5f0810({'count':_0x15fa7f[_0x42a6('0x1b')],'rows':_0x15fa7f});});},'FaxQueuesWaitingInteractions':function(_0x4e7993){return new Promise(function(_0x3a6c40,_0x4a50e6){var _0xb9a24f=_[_0x42a6('0x49')](_0x3282c8[_0x42a6('0x57')]);_0x3a6c40({'count':_0xb9a24f['length'],'rows':_0xb9a24f});});}};var _0x44eda1=jayson[_0x42a6('0x58')](_0x15de20)['http']();_0x44eda1['on'](_0x42a6('0x31'),function(_0x564061){logger[_0x42a6('0x31')](JSON['stringify'](_0x564061));return _0x42bb8c(_0x564061);});_0x44eda1[_0x42a6('0x15')](0x232c,_0x42a6('0x59'),function(){console[_0x42a6('0x5a')](_0x42a6('0x5b'),0x232c);return _0x471842('RPC\x20listening\x20on\x20port:'+0x232c);});});};
\ No newline at end of file
+var _0xa17e=['QueueReport','update','catch','error\x20update\x20queue\x20report','stack','message\x20is\x20empty','agent','agents','busy','busyQueue','end','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','name','paused','waiting','mailQueues','available','openchannelQueues','loggedIn','smsQueues','faxQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','http','stringify','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','path','jayson/promise','bluebird','uuid','../../../config/environment','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','format','isNil','IntervalId','Intervals','interval','listen','channel','message','interaction','applications','isArray','length','existsSync','join','app','.js','toLowerCase','autoreply','appdata','split','push','dialogflow','amazonlex','slice','tag','TagId','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','priority','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','rules','execute','info','Applications\x20executed','matchPath','emit','No\x20applications\x20to\x20execute','error','routing\x20is\x20empty'];(function(_0x16db8b,_0xca7d28){var _0x5ba017=function(_0x35b933){while(--_0x35b933){_0x16db8b['push'](_0x16db8b['shift']());}};_0x5ba017(++_0xca7d28);}(_0xa17e,0x142));var _0xea17=function(_0x2aa819,_0x2c55a0){_0x2aa819=_0x2aa819-0x0;var _0x305b8c=_0xa17e[_0x2aa819];return _0x305b8c;};'use strict';var _=require(_0xea17('0x0'));var util=require('util');var path=require(_0xea17('0x1'));var fs=require('fs');var jayson=require(_0xea17('0x2'));var BPromise=require(_0xea17('0x3'));var uuid=require(_0xea17('0x4'));var config=require(_0xea17('0x5'));var logger=require(_0xea17('0x6'))(_0xea17('0x7'));var rpc={'openchannelQueueReport':require(_0xea17('0x8'))};var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport'),'mailQueueReport':require(_0xea17('0x9')),'chatQueueReport':require(_0xea17('0xa')),'smsQueueReport':require(_0xea17('0xb')),'faxQueueReport':require(_0xea17('0xc'))};var RuleEngine=require('../lib/rule-engine');function getId(_0x5c9e91,_0x23f660,_0x78ead5){return util[_0xea17('0xd')]('%s.%s.%s',_0x5c9e91,_0x23f660||0x0,_0x78ead5||0x0);}function getIntervals(_0x29c9e9,_0x475440){var _0x119083=[];if(!_[_0xea17('0xe')](_0x475440[_0xea17('0xf')])&&!_[_0xea17('0xe')](_0x29c9e9[_0x475440[_0xea17('0xf')]])&&!_[_0xea17('0xe')](_0x29c9e9[_0x475440['IntervalId']][_0xea17('0x10')])){_0x119083=_['map'](_0x29c9e9[_0x475440[_0xea17('0xf')]]['Intervals'],'interval');}else if(!_['isNil'](_0x475440[_0xea17('0x11')])){_0x119083=[_0x475440[_0xea17('0x11')]];}return _0x119083;}exports[_0xea17('0x12')]=function(_0x25c2c2){_0x25c2c2['rules']={};return new BPromise(function(_0x41c8d1,_0x39bf9a){var _0x3b060b={'Start':function(_0x3ae7a6){var _0x165056=this;return new Promise(function(_0x5751c6,_0x4396ae){if(_0x3ae7a6){try{var _0x5d3866=[];var _0x3841be=getId(_0x3ae7a6[_0xea17('0x13')],_0x3ae7a6['message']?_0x3ae7a6[_0xea17('0x14')]['id']:0x0,_0x3ae7a6[_0xea17('0x15')]?_0x3ae7a6[_0xea17('0x15')]['id']:0x0);if(_0x3ae7a6[_0xea17('0x16')]&&_[_0xea17('0x17')](_0x3ae7a6['applications'])&&_0x3ae7a6['applications'][_0xea17('0x18')]){for(var _0xc0c2f4=0x0;_0xc0c2f4<_0x3ae7a6[_0xea17('0x16')][_0xea17('0x18')];_0xc0c2f4+=0x1){var _0x172084=_0x3ae7a6[_0xea17('0x16')][_0xc0c2f4];if(fs[_0xea17('0x19')](path[_0xea17('0x1a')](__dirname,_0xea17('0x16'),_0x172084[_0xea17('0x1b')]+_0xea17('0x1c')))){var _0x4b607b=[];switch(_0x172084[_0xea17('0x1b')][_0xea17('0x1d')]()){case _0xea17('0x1e'):var _0x27644b=_0x172084[_0xea17('0x1f')][_0xea17('0x20')](',');_0x4b607b[_0xea17('0x21')](_0x27644b[0x0]);_0x4b607b[_0xea17('0x21')](_0x27644b['slice'](0x1,_0x27644b[_0xea17('0x18')])['join'](','));break;case _0xea17('0x22'):var _0x27644b=_0x172084[_0xea17('0x1f')][_0xea17('0x20')](',');_0x4b607b['push'](_0x27644b[0x0]);_0x4b607b[_0xea17('0x21')](_0x27644b[0x1]);_0x4b607b[_0xea17('0x21')](_0x27644b['slice'](0x2,_0x27644b[_0xea17('0x18')])[_0xea17('0x1a')](','));break;case _0xea17('0x23'):var _0x27644b=_0x172084[_0xea17('0x1f')][_0xea17('0x20')](',');_0x4b607b[_0xea17('0x21')](_0x27644b[0x0]);_0x4b607b['push'](_0x27644b[0x1]);_0x4b607b[_0xea17('0x21')](_0x27644b[0x2]);_0x4b607b[_0xea17('0x21')](_0x27644b[0x3]);_0x4b607b[_0xea17('0x21')](_0x27644b[_0xea17('0x24')](0x4,_0x27644b[_0xea17('0x18')])[_0xea17('0x1a')](','));break;case _0xea17('0x14'):_0x4b607b[_0xea17('0x21')](_0x172084['appdata']);break;case _0xea17('0x25'):_0x4b607b[_0xea17('0x21')](_0x172084[_0xea17('0x26')]);_0x4b607b[_0xea17('0x21')](_0x172084[_0xea17('0x1f')]);break;default:_0x4b607b=_[_0xea17('0xe')](_0x172084[_0xea17('0x1f')])?[]:_0x172084[_0xea17('0x1f')][_0xea17('0x20')](',');}var _0x396217={'id':util[_0xea17('0xd')](_0xea17('0x27'),_0x3841be,_0x172084['id'],_0x172084['app']),'condition':require(_0xea17('0x28'))[_0xea17('0x29')](_0x3841be,getIntervals(_0x25c2c2[_0xea17('0x2a')],_0x172084),_0x25c2c2),'consequence':require(_0xea17('0x2b')+_0x172084[_0xea17('0x1b')])[_0xea17('0x2c')](_0x3841be,_0x4b607b,_0x25c2c2,_0x3ae7a6),'p':_0x172084[_0xea17('0x2d')]||0x0};logger['info']('Push\x20new\x20rule',_0x396217['id'],_0xea17('0x2e'),getIntervals(_0x25c2c2[_0xea17('0x2a')],_0x172084)['join'](_0xea17('0x2f')));_0x5d3866[_0xea17('0x21')](_0x396217);}else{logger['error'](_0xea17('0x30'),path[_0xea17('0x1a')](__dirname,'applications',_0x172084[_0xea17('0x1b')]+'.js'));}}_0x25c2c2[_0xea17('0x31')][_0x3841be]=new RuleEngine(_0x5d3866);_0x25c2c2[_0xea17('0x31')][_0x3841be][_0xea17('0x32')](_0x3ae7a6,function(_0x57bbdc){logger[_0xea17('0x33')](_0xea17('0x34'),JSON['stringify'](_0x57bbdc[_0xea17('0x35')]));if(_0x25c2c2[_0xea17('0x31')][_0x3841be]){_0x25c2c2['rules'][_0x3841be][_0xea17('0x36')]('end');}});return _0x5751c6({'code':0xc8,'message':_0x3ae7a6});}else{logger[_0xea17('0x33')](_0xea17('0x37'));return _0x5751c6({'code':0xc8,'message':_0x3ae7a6});}}catch(_0x409c44){logger[_0xea17('0x38')](_0x409c44['stack']);return _0x4396ae(_0x165056[_0xea17('0x38')](0x1f4,_0x409c44));}}return _0x4396ae(_0xea17('0x39'));});},'AcceptMessage':function(_0x428ecd){var _0x5b24ca=this;return new Promise(function(_0x202f51,_0x287d04){if(_0x428ecd['message']&&_0x428ecd[_0xea17('0x14')]['id']){try{var _0x5bc797=getId(_0x428ecd[_0xea17('0x13')],_0x428ecd[_0xea17('0x14')]?_0x428ecd['message']['id']:0x0,_0x428ecd[_0xea17('0x15')]?_0x428ecd[_0xea17('0x15')]['id']:0x0);if(_0x25c2c2[_0xea17('0x31')][_0x5bc797]){_0x25c2c2[_0xea17('0x31')][_0x5bc797][_0xea17('0x36')]('end');if(rpc[_0x428ecd[_0xea17('0x13')]+_0xea17('0x3a')]){rpc[_0x428ecd[_0xea17('0x13')]+_0xea17('0x3a')][_0xea17('0x3b')](_0x5bc797,{'UserId':_0x428ecd[_0xea17('0x14')]['UserId']})[_0xea17('0x3c')](function(_0x27d38c){logger['error'](_0xea17('0x3d'));});}}return _0x202f51({'code':0xc8,'message':_0x428ecd});}catch(_0x442f7a){logger['error'](_0x442f7a[_0xea17('0x3e')]);return _0x287d04(_0x5b24ca['error'](0x1f4,_0x442f7a));}}logger['error']('message\x20is\x20empty');return _0x287d04(_0x5b24ca[_0xea17('0x38')](0x1f4,_0xea17('0x3f')));});},'RejectMessage':function(_0x176cb7){var _0x290173=this;return new Promise(function(_0x1b03e5,_0xb340f0){if(_0x176cb7['agent']&&_0x176cb7[_0xea17('0x40')]['id']){try{if(_0x25c2c2[_0xea17('0x41')][_0x176cb7['agent']['id']]){_0x25c2c2[_0xea17('0x41')][_0x176cb7[_0xea17('0x40')]['id']][_0xea17('0x42')]=![];_0x25c2c2[_0xea17('0x41')][_0x176cb7['agent']['id']][_0xea17('0x43')]=undefined;}return _0x1b03e5({'code':0xc8,'message':_0x176cb7});}catch(_0x44e699){logger['error'](_0x44e699[_0xea17('0x3e')]);return _0xb340f0(_0x290173[_0xea17('0x38')](0x1f4,_0x44e699));}}logger['error']('message\x20is\x20empty');return _0xb340f0(_0x290173[_0xea17('0x38')](0x1f4,_0xea17('0x3f')));});},'AbandonInteraction':function(_0x1676e3){var _0x22a686=this;return new Promise(function(_0x289fed,_0x380591){if(_0x1676e3[_0xea17('0x13')]&&_0x1676e3['interaction']&&_0x1676e3['interaction']['id']){try{var _0x5d35a6=getId(_0x1676e3['channel'],_0x1676e3['message']?_0x1676e3['message']['id']:0x0,_0x1676e3[_0xea17('0x15')]?_0x1676e3[_0xea17('0x15')]['id']:0x0);if(_0x25c2c2[_0xea17('0x31')][_0x5d35a6]){_0x25c2c2[_0xea17('0x31')][_0x5d35a6]['emit'](_0xea17('0x44'));}return _0x289fed({'code':0xc8,'message':_0x1676e3});}catch(_0x1da9d2){logger['error'](_0x1da9d2[_0xea17('0x3e')]);return _0x380591(_0x22a686[_0xea17('0x38')](0x1f4,_0x1da9d2));}}logger[_0xea17('0x38')](_0xea17('0x3f'));return _0x380591(_0x22a686[_0xea17('0x38')](0x1f4,'message\x20is\x20empty'));});},'AgentCapacity':function(_0x221fcd){var _0xea0082=this;return new Promise(function(_0x3ac444,_0x435431){if(_0x25c2c2[_0xea17('0x41')][_0xea17('0x45')](_0x221fcd['id'])){for(var _0x2b23a in _0x221fcd[_0xea17('0x46')]){if(_0x221fcd[_0xea17('0x46')][_0xea17('0x45')](_0x2b23a)){if(_0x25c2c2[_0xea17('0x41')][_0x221fcd['id']][_0xea17('0x45')](_0x2b23a+_0xea17('0x47'))){_0x25c2c2[_0xea17('0x41')][_0x221fcd['id']][_0x2b23a+_0xea17('0x47')]=parseInt(_0x221fcd[_0xea17('0x46')][_0x2b23a],0xa);}}}_0x25c2c2[_0xea17('0x41')][_0x221fcd['id']][_0xea17('0x48')]();return _0x3ac444({'code':0xc8,'message':_0x25c2c2[_0xea17('0x41')][_0x221fcd['id']]});}else{return _0x435431(_0xea0082[_0xea17('0x38')](0x1f4,_0xea17('0x49')));}});},'Agents':function(_0x33574c){return new Promise(function(_0x5b9c2f,_0x220790){var _0x5d2c00=_[_0xea17('0x4a')](_0x25c2c2[_0xea17('0x41')]);_0x5b9c2f({'count':_0x5d2c00[_0xea17('0x18')],'rows':_0x5d2c00});});},'ChatQueues':function(_0x5bc6a2){return new Promise(function(_0x2c7579,_0x3ffebf){var _0x416ed0=[];for(var _0x3cd52e in _0x25c2c2[_0xea17('0x4b')]){if(_0x25c2c2[_0xea17('0x4b')][_0xea17('0x45')](_0x3cd52e)){var _0x5a36a5=_0x25c2c2[_0xea17('0x4b')][_0x3cd52e];var _0x58e4ae={'id':_0x5a36a5['id'],'available':_0x5a36a5['available'],'loggedIn':_0x5a36a5['loggedIn'],'name':_0x5a36a5[_0xea17('0x4c')],'paused':_0x5a36a5[_0xea17('0x4d')],'waiting':_0x5a36a5[_0xea17('0x4e')]};_0x416ed0['push'](_0x58e4ae);}}_0x2c7579({'count':_0x416ed0[_0xea17('0x18')],'rows':_0x416ed0});});},'MailQueues':function(_0x4a0f4a){return new Promise(function(_0x49a1b1,_0x31f464){var _0xffa36a=[];for(var _0xe91376 in _0x25c2c2['mailQueues']){if(_0x25c2c2[_0xea17('0x4f')][_0xea17('0x45')](_0xe91376)){var _0x2e2d23=_0x25c2c2[_0xea17('0x4f')][_0xe91376];var _0x24e4ab={'id':_0x2e2d23['id'],'available':_0x2e2d23[_0xea17('0x50')],'loggedIn':_0x2e2d23['loggedIn'],'name':_0x2e2d23['name'],'paused':_0x2e2d23['paused'],'waiting':_0x2e2d23[_0xea17('0x4e')]};_0xffa36a[_0xea17('0x21')](_0x24e4ab);}}_0x49a1b1({'count':_0xffa36a['length'],'rows':_0xffa36a});});},'OpenchannelQueues':function(_0x28b1cb){return new Promise(function(_0x4a3853,_0x15ccf6){var _0x1dd0fb=[];for(var _0x2df91a in _0x25c2c2[_0xea17('0x51')]){if(_0x25c2c2['openchannelQueues'][_0xea17('0x45')](_0x2df91a)){var _0x26bcd4=_0x25c2c2['openchannelQueues'][_0x2df91a];var _0x35d472={'id':_0x26bcd4['id'],'available':_0x26bcd4[_0xea17('0x50')],'loggedIn':_0x26bcd4[_0xea17('0x52')],'name':_0x26bcd4[_0xea17('0x4c')],'paused':_0x26bcd4[_0xea17('0x4d')],'waiting':_0x26bcd4[_0xea17('0x4e')]};_0x1dd0fb['push'](_0x35d472);}}_0x4a3853({'count':_0x1dd0fb['length'],'rows':_0x1dd0fb});});},'SmsQueues':function(_0x29bc73){return new Promise(function(_0x469f94,_0x416e97){var _0x501db0=[];for(var _0x30c9f3 in _0x25c2c2['smsQueues']){if(_0x25c2c2[_0xea17('0x53')][_0xea17('0x45')](_0x30c9f3)){var _0x2c1813=_0x25c2c2['smsQueues'][_0x30c9f3];var _0x25b120={'id':_0x2c1813['id'],'available':_0x2c1813[_0xea17('0x50')],'loggedIn':_0x2c1813['loggedIn'],'name':_0x2c1813[_0xea17('0x4c')],'paused':_0x2c1813[_0xea17('0x4d')],'waiting':_0x2c1813[_0xea17('0x4e')]};_0x501db0[_0xea17('0x21')](_0x25b120);}}_0x469f94({'count':_0x501db0[_0xea17('0x18')],'rows':_0x501db0});});},'FaxQueues':function(_0x3b2c20){return new Promise(function(_0x3a448e,_0x3c69c4){var _0x47ec87=[];for(var _0x315226 in _0x25c2c2[_0xea17('0x54')]){if(_0x25c2c2[_0xea17('0x54')][_0xea17('0x45')](_0x315226)){var _0x3a8a19=_0x25c2c2[_0xea17('0x54')][_0x315226];var _0x2eb7ef={'id':_0x3a8a19['id'],'available':_0x3a8a19[_0xea17('0x50')],'loggedIn':_0x3a8a19[_0xea17('0x52')],'name':_0x3a8a19[_0xea17('0x4c')],'paused':_0x3a8a19[_0xea17('0x4d')],'waiting':_0x3a8a19['waiting']};_0x47ec87[_0xea17('0x21')](_0x2eb7ef);}}_0x3a448e({'count':_0x47ec87[_0xea17('0x18')],'rows':_0x47ec87});});},'ChatQueuesWaitingInteractions':function(_0xa4443e){return new Promise(function(_0x280646,_0x4a15e6){var _0x187ec5=_[_0xea17('0x4a')](_0x25c2c2[_0xea17('0x55')]);_0x280646({'count':_0x187ec5[_0xea17('0x18')],'rows':_0x187ec5});});},'MailQueuesWaitingInteractions':function(_0x2549a5){return new Promise(function(_0x1a8dc6,_0x518df6){var _0xe05d4a=_[_0xea17('0x4a')](_0x25c2c2[_0xea17('0x56')]);_0x1a8dc6({'count':_0xe05d4a[_0xea17('0x18')],'rows':_0xe05d4a});});},'OpenchannelQueuesWaitingInteractions':function(_0x2267da){return new Promise(function(_0x4c61a5,_0x1589a5){var _0x5984de=_[_0xea17('0x4a')](_0x25c2c2[_0xea17('0x57')]);_0x4c61a5({'count':_0x5984de[_0xea17('0x18')],'rows':_0x5984de});});},'SmsQueuesWaitingInteractions':function(_0x5305eb){return new Promise(function(_0x7d2e17,_0x1d4163){var _0x58571f=_[_0xea17('0x4a')](_0x25c2c2[_0xea17('0x58')]);_0x7d2e17({'count':_0x58571f[_0xea17('0x18')],'rows':_0x58571f});});},'FaxQueuesWaitingInteractions':function(_0x258b79){return new Promise(function(_0x345c5c,_0x550760){var _0x5b92af=_[_0xea17('0x4a')](_0x25c2c2[_0xea17('0x59')]);_0x345c5c({'count':_0x5b92af[_0xea17('0x18')],'rows':_0x5b92af});});}};var _0x33afd1=jayson[_0xea17('0x5a')](_0x3b060b)[_0xea17('0x5b')]();_0x33afd1['on'](_0xea17('0x38'),function(_0x297cc0){logger[_0xea17('0x38')](JSON[_0xea17('0x5c')](_0x297cc0));return _0x39bf9a(_0x297cc0);});_0x33afd1[_0xea17('0x12')](0x232c,'127.0.0.1',function(){console['log'](_0xea17('0x5d'),0x232c);return _0x41c8d1(_0xea17('0x5e')+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x942c=['info','stop','push','format','[%s][INTERVAL]\x20%s','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','stack','bluebird','lodash','../../../config/logger','client','http','request','then','error','message','catch','rules'];(function(_0x20cc4e,_0x567a65){var _0x3c8b6e=function(_0x13f2f6){while(--_0x13f2f6){_0x20cc4e['push'](_0x20cc4e['shift']());}};_0x3c8b6e(++_0x567a65);}(_0x942c,0x1d8));var _0xc942=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x942c[_0x14add3];return _0x4a174f;};'use strict';var util=require('util');var BPromise=require(_0xc942('0x0'));var jayson=require('jayson/promise');var _=require(_0xc942('0x1'));var logger=require(_0xc942('0x2'))('routing');var client=jayson[_0xc942('0x3')][_0xc942('0x4')]({'port':0x232a});function request(_0x3b469c,_0xfeab4b){return new BPromise(function(_0x1ded2d,_0x164bc3){return client[_0xc942('0x5')](_0x3b469c,_0xfeab4b)[_0xc942('0x6')](function(_0x3e31cc){if(_0x3e31cc[_0xc942('0x7')]){return _0x164bc3(_0x3e31cc[_0xc942('0x7')][_0xc942('0x8')]);}else{return _0x1ded2d(_0x3e31cc['result']);}})[_0xc942('0x9')](function(_0x111676){return _0x164bc3(_0x111676);});});}exports['condition']=function(_0x152858,_0x1d74e5,_0x4dfdca){return function(_0xe37aab){if(_0x4dfdca[_0xc942('0xa')]&&!_0x4dfdca[_0xc942('0xa')][_0x152858]){logger[_0xc942('0xb')]('[%s][INTERVAL]\x20ROUTING\x20STOPPED',_0x152858);return _0xe37aab[_0xc942('0xc')]();}var _0x984584=[];for(var _0x36709e=0x0;_0x36709e<_0x1d74e5['length'];_0x36709e+=0x1){_0x984584[_0xc942('0xd')](request('Command',{'command':util[_0xc942('0xe')]('iftime\x20%s',_0x1d74e5[_0x36709e])})[_0xc942('0x6')](function(_0x4b4f60){return _0x4b4f60&&_0x4b4f60[_0xc942('0x8')]&&_0x4b4f60[_0xc942('0x8')]['indexOf']('true')>=0x0?!![]:![];})['catch'](function(_0x45c7c3){logger['error'](_0xc942('0xf'),_0x152858,_0x1d74e5[_0x36709e]);}));}BPromise['all'](_0x984584)[_0xc942('0x6')](function(_0x4c113f){var _0xb1d13a=_[_0xc942('0x10')](_0x4c113f);logger[_0xc942('0xb')](_0xc942('0x11'),_0x152858,_0x1d74e5[_0xc942('0x12')](_0xc942('0x13')),_0xb1d13a);_0xe37aab[_0xc942('0x14')](_0xb1d13a);})[_0xc942('0x9')](function(_0x2d61f8){console[_0xc942('0x15')](_0x2d61f8);logger[_0xc942('0x7')](_0xc942('0x11'),_0x152858,_0x1d74e5['join'](_0xc942('0x13')),_0x2d61f8[_0xc942('0x16')]);_0xe37aab[_0xc942('0xc')]();});};};
\ No newline at end of file
+var _0x3837=['../../../config/logger','client','error','message','result','catch','rules','info','[%s][INTERVAL]\x20ROUTING\x20STOPPED','length','Command','format','indexOf','true','all','then','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','util','bluebird','jayson/promise','lodash'];(function(_0x104ae8,_0x2cb72a){var _0xc60036=function(_0x4fc44d){while(--_0x4fc44d){_0x104ae8['push'](_0x104ae8['shift']());}};_0xc60036(++_0x2cb72a);}(_0x3837,0x79));var _0x7383=function(_0x10d00b,_0x1586e5){_0x10d00b=_0x10d00b-0x0;var _0x91864b=_0x3837[_0x10d00b];return _0x91864b;};'use strict';var util=require(_0x7383('0x0'));var BPromise=require(_0x7383('0x1'));var jayson=require(_0x7383('0x2'));var _=require(_0x7383('0x3'));var logger=require(_0x7383('0x4'))('routing');var client=jayson[_0x7383('0x5')]['http']({'port':0x232a});function request(_0x46ac76,_0x64462b){return new BPromise(function(_0x28fe7b,_0xf6d3b6){return client['request'](_0x46ac76,_0x64462b)['then'](function(_0x1fd38f){if(_0x1fd38f[_0x7383('0x6')]){return _0xf6d3b6(_0x1fd38f[_0x7383('0x6')][_0x7383('0x7')]);}else{return _0x28fe7b(_0x1fd38f[_0x7383('0x8')]);}})[_0x7383('0x9')](function(_0x374b19){return _0xf6d3b6(_0x374b19);});});}exports['condition']=function(_0x3abf86,_0x289fe8,_0x887878){return function(_0x5c729c){if(_0x887878[_0x7383('0xa')]&&!_0x887878[_0x7383('0xa')][_0x3abf86]){logger[_0x7383('0xb')](_0x7383('0xc'),_0x3abf86);return _0x5c729c['stop']();}var _0x3f055d=[];for(var _0x1f11bf=0x0;_0x1f11bf<_0x289fe8[_0x7383('0xd')];_0x1f11bf+=0x1){_0x3f055d['push'](request(_0x7383('0xe'),{'command':util[_0x7383('0xf')]('iftime\x20%s',_0x289fe8[_0x1f11bf])})['then'](function(_0x3f8b64){return _0x3f8b64&&_0x3f8b64[_0x7383('0x7')]&&_0x3f8b64[_0x7383('0x7')][_0x7383('0x10')](_0x7383('0x11'))>=0x0?!![]:![];})[_0x7383('0x9')](function(_0xb2b972){logger[_0x7383('0x6')]('[%s][INTERVAL]\x20%s',_0x3abf86,_0x289fe8[_0x1f11bf]);}));}BPromise[_0x7383('0x12')](_0x3f055d)[_0x7383('0x13')](function(_0x335b01){var _0x4d7e63=_['some'](_0x335b01);logger[_0x7383('0xb')](_0x7383('0x14'),_0x3abf86,_0x289fe8[_0x7383('0x15')](_0x7383('0x16')),_0x4d7e63);_0x5c729c[_0x7383('0x17')](_0x4d7e63);})[_0x7383('0x9')](function(_0x35490e){console[_0x7383('0x18')](_0x35490e);logger[_0x7383('0x6')](_0x7383('0x14'),_0x3abf86,_0x289fe8[_0x7383('0x15')](_0x7383('0x16')),_0x35490e['stack']);_0x5c729c['stop']();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0064=['transfertargetconnectedlinenum','secondtransfererchannel','transfereecalleridname','transfereeconnectedlinenum','destinationchannel','agentconnectAt','diffTime','agentcalledAt','complete','answertime','starttime','transfer','lodash','util','info','format','AGENT|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','calleridnum','connectedlinenum','lastevent','queue','then','type','agentacw','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','agentringnoanswer','agentconnect','agentcomplete','destchannel','assign','now','called','isNil','rejected','queuecallerabandon','forIn','abandon','connect','answered_elsewhere','blindtransfer','transfererchannel','cdr','attendedtransfer','origtransfererchannel','clone','transfertargetchannel','transfertargetcalleridname'];(function(_0xca35c,_0x488e06){var _0xaf1a96=function(_0x28f266){while(--_0x28f266){_0xca35c['push'](_0xca35c['shift']());}};_0xaf1a96(++_0x488e06);}(_0x0064,0x76));var _0x4006=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0064[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x4006('0x0'));var util=require(_0x4006('0x1'));var utils=require('./utils');var agents={};var transfers={};function writeDB(_0x31bafc){utils[_0x4006('0x2')](util[_0x4006('0x3')](_0x4006('0x4'),_0x31bafc[_0x4006('0x5')],_0x31bafc[_0x4006('0x6')],_0x31bafc['queue'],_0x31bafc['membername'],_0x31bafc['interface'],_0x31bafc[_0x4006('0x7')],_0x31bafc[_0x4006('0x8')],_0x31bafc[_0x4006('0x9')]));if(_0x31bafc[_0x4006('0xa')]){utils['getVoiceQueueByName'](_0x31bafc[_0x4006('0xa')])[_0x4006('0xb')](function(_0xf6bb8d){if(_0xf6bb8d){_0x31bafc[_0x4006('0xc')]=_0xf6bb8d[_0x4006('0xc')];_0x31bafc[_0x4006('0xd')]=_0x31bafc['agentcomplete']?_0xf6bb8d[_0x4006('0xe')]:![];_0x31bafc[_0x4006('0xf')]=_0x31bafc[_0x4006('0xd')]?_0xf6bb8d[_0x4006('0x10')]:null;}utils[_0x4006('0x11')](_0x4006('0x12'),_0x31bafc);});}else{utils[_0x4006('0x11')](_0x4006('0x12'),_0x31bafc);}delete agents[_0x31bafc['destchannel']];}function isClosed(_0x4cf078){return _0x4cf078[_0x4006('0x13')]||_0x4cf078[_0x4006('0x14')]||_0x4cf078[_0x4006('0x15')];}exports['agentcalled']=function(_0x1cb663){agents[_0x1cb663[_0x4006('0x16')]]=_[_0x4006('0x17')](_0x1cb663,{'agentcalled':!![],'agentcalledAt':utils[_0x4006('0x18')](),'lastevent':_0x4006('0x19')});};exports['agentringnoanswer']=function(_0xea0e18){if(!_[_0x4006('0x1a')](agents[_0xea0e18[_0x4006('0x16')]])){agents[_0xea0e18[_0x4006('0x16')]]=_[_0x4006('0x17')](agents[_0xea0e18[_0x4006('0x16')]],_0xea0e18,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0x4006('0x18')](),'lastevent':_0x4006('0x1b'),'reason':_0x4006('0x1b')});}};exports[_0x4006('0x1c')]=function(_0x49348c){_[_0x4006('0x1d')](agents,function(_0x155abd,_0x8f9dcd){if(_0x155abd[_0x4006('0x6')]==_0x49348c[_0x4006('0x6')]){if(!isClosed(_0x155abd)){_0x155abd=_[_0x4006('0x17')](_0x155abd,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0x4006('0x18')](),'lastevent':'abandon','reason':_0x4006('0x1e')});}}});};exports['agentconnect']=function(_0x27cbb0){if(!_[_0x4006('0x1a')](agents[_0x27cbb0[_0x4006('0x16')]])){agents[_0x27cbb0[_0x4006('0x16')]]=_[_0x4006('0x17')](agents[_0x27cbb0['destchannel']],_0x27cbb0,{'agentconnect':!![],'agentconnectAt':utils[_0x4006('0x18')](),'lastevent':_0x4006('0x1f')});_[_0x4006('0x1d')](agents,function(_0x584388,_0x3217d3){if(_0x584388['channel']==_0x27cbb0['channel']){if(!isClosed(_0x584388)){_0x584388=_[_0x4006('0x17')](_0x584388,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0x4006('0x18')](),'lastevent':_0x4006('0x20'),'reason':_0x4006('0x20'),'answeredelsewheredestinationuniqueid':_0x27cbb0['destuniqueid'],'answeredelsewheremembername':_0x27cbb0['membername']});}}});}};exports[_0x4006('0x15')]=function(_0x19ae3c){if(!_[_0x4006('0x1a')](agents[_0x19ae3c[_0x4006('0x16')]])){agents[_0x19ae3c[_0x4006('0x16')]]=_[_0x4006('0x17')](agents[_0x19ae3c['destchannel']],_0x19ae3c,{'agentcomplete':!![],'agentcompleteAt':utils[_0x4006('0x18')](),'lastevent':'complete'});}};exports[_0x4006('0x21')]=function(_0x229bb6){if(!_[_0x4006('0x1a')](agents[_0x229bb6[_0x4006('0x22')]])){this[_0x4006('0x23')]({'destinationchannel':_0x229bb6['transfererchannel']});}};exports[_0x4006('0x24')]=function(_0x5bd51f){_[_0x4006('0x1d')](agents,function(_0xcb5008){if(_0xcb5008['channel']==_0x5bd51f[_0x4006('0x25')]){transfers[_0xcb5008[_0x4006('0x16')]]=_[_0x4006('0x26')](_0xcb5008);transfers[_0xcb5008[_0x4006('0x16')]]=_[_0x4006('0x17')](transfers[_0xcb5008[_0x4006('0x16')]],{'channel':_0x5bd51f[_0x4006('0x27')],'calleridname':_0x5bd51f[_0x4006('0x28')],'calleridnum':_0x5bd51f[_0x4006('0x29')]});}else if(_0xcb5008[_0x4006('0x6')]==_0x5bd51f[_0x4006('0x2a')]){transfers[_0xcb5008['destchannel']]=_[_0x4006('0x26')](_0xcb5008);transfers[_0xcb5008[_0x4006('0x16')]]=_[_0x4006('0x17')](transfers[_0xcb5008[_0x4006('0x16')]],{'channel':_0x5bd51f['transfereechannel'],'calleridname':_0x5bd51f[_0x4006('0x2b')],'calleridnum':_0x5bd51f[_0x4006('0x2c')]});}});};exports[_0x4006('0x23')]=function(_0x14a5cf){if(!_['isNil'](agents[_0x14a5cf[_0x4006('0x2d')]])){if(!_['isNil'](agents[_0x14a5cf[_0x4006('0x2d')]][_0x4006('0x2e')])){agents[_0x14a5cf[_0x4006('0x2d')]]=_['assign'](agents[_0x14a5cf['destinationchannel']],{'agentcomplete':!![],'agentcompleteAt':_0x14a5cf['endtime'],'holdtime':utils[_0x4006('0x2f')](agents[_0x14a5cf[_0x4006('0x2d')]]['agentconnectAt'],agents[_0x14a5cf[_0x4006('0x2d')]][_0x4006('0x30')]),'talktime':utils['diffTime'](_0x14a5cf['endtime'],agents[_0x14a5cf['destinationchannel']][_0x4006('0x2e')]),'lastevent':_0x4006('0x31')});}else if(_[_0x4006('0x1a')](agents[_0x14a5cf[_0x4006('0x2d')]]['agentringnoanswerAt'])){agents[_0x14a5cf[_0x4006('0x2d')]]=_[_0x4006('0x17')](agents[_0x14a5cf['destinationchannel']],{'agentringnoanswer':!![],'agentringnoanswerAt':_0x14a5cf[_0x4006('0x32')]||_0x14a5cf[_0x4006('0x33')],'reason':'unknown'});}writeDB(agents[_0x14a5cf[_0x4006('0x2d')]]);if(!_[_0x4006('0x1a')](transfers[_0x14a5cf[_0x4006('0x2d')]])){agents[_0x14a5cf[_0x4006('0x2d')]]=_[_0x4006('0x17')](transfers[_0x14a5cf[_0x4006('0x2d')]],{'agentcalledAt':utils[_0x4006('0x18')](),'agentconnectAt':transfers[_0x14a5cf[_0x4006('0x2d')]]['agentconnect']?utils[_0x4006('0x18')]():null,'lastevent':_0x4006('0x1f'),'reason':_0x4006('0x34')});delete transfers[_0x14a5cf[_0x4006('0x2d')]];}}};
\ No newline at end of file
+var _0x647e=['answered_elsewhere','destuniqueid','complete','transfererchannel','cdr','origtransfererchannel','clone','transfertargetcalleridname','transfertargetconnectedlinenum','transfereeconnectedlinenum','destinationchannel','endtime','diffTime','agentconnectAt','agentringnoanswerAt','unknown','transfer','lodash','format','AGENT|%s|%s|%s|%s|%s|%s|%s|%s','channel','interface','calleridnum','connectedlinenum','lastevent','getVoiceQueueByName','queue','then','type','agentcomplete','acw','acwtime','agentacw','acwTimeout','request','CreateVoiceAgentReport','destchannel','agentringnoanswer','agentconnect','agentcalled','assign','now','rejected','queuecallerabandon','abandon','isNil','forIn'];(function(_0x38e2f5,_0x2f822b){var _0x351562=function(_0x5c58aa){while(--_0x5c58aa){_0x38e2f5['push'](_0x38e2f5['shift']());}};_0x351562(++_0x2f822b);}(_0x647e,0xfc));var _0xe647=function(_0x35699c,_0x239c32){_0x35699c=_0x35699c-0x0;var _0x23650e=_0x647e[_0x35699c];return _0x23650e;};'use strict';var _=require(_0xe647('0x0'));var util=require('util');var utils=require('./utils');var agents={};var transfers={};function writeDB(_0x3fed3b){utils['info'](util[_0xe647('0x1')](_0xe647('0x2'),_0x3fed3b['uniqueid'],_0x3fed3b[_0xe647('0x3')],_0x3fed3b['queue'],_0x3fed3b['membername'],_0x3fed3b[_0xe647('0x4')],_0x3fed3b[_0xe647('0x5')],_0x3fed3b[_0xe647('0x6')],_0x3fed3b[_0xe647('0x7')]));if(_0x3fed3b['queue']){utils[_0xe647('0x8')](_0x3fed3b[_0xe647('0x9')])[_0xe647('0xa')](function(_0x5877df){if(_0x5877df){_0x3fed3b[_0xe647('0xb')]=_0x5877df[_0xe647('0xb')];_0x3fed3b['agentacw']=_0x3fed3b[_0xe647('0xc')]?_0x5877df[_0xe647('0xd')]:![];_0x3fed3b[_0xe647('0xe')]=_0x3fed3b[_0xe647('0xf')]?_0x5877df[_0xe647('0x10')]:null;}utils[_0xe647('0x11')](_0xe647('0x12'),_0x3fed3b);});}else{utils[_0xe647('0x11')](_0xe647('0x12'),_0x3fed3b);}delete agents[_0x3fed3b[_0xe647('0x13')]];}function isClosed(_0x437b3f){return _0x437b3f[_0xe647('0x14')]||_0x437b3f[_0xe647('0x15')]||_0x437b3f['agentcomplete'];}exports[_0xe647('0x16')]=function(_0x5026e1){agents[_0x5026e1[_0xe647('0x13')]]=_[_0xe647('0x17')](_0x5026e1,{'agentcalled':!![],'agentcalledAt':utils[_0xe647('0x18')](),'lastevent':'called'});};exports['agentringnoanswer']=function(_0x169050){if(!_['isNil'](agents[_0x169050[_0xe647('0x13')]])){agents[_0x169050['destchannel']]=_[_0xe647('0x17')](agents[_0x169050[_0xe647('0x13')]],_0x169050,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0xe647('0x18')](),'lastevent':_0xe647('0x19'),'reason':_0xe647('0x19')});}};exports[_0xe647('0x1a')]=function(_0x47872c){_['forIn'](agents,function(_0x515a8b,_0x1554aa){if(_0x515a8b['channel']==_0x47872c[_0xe647('0x3')]){if(!isClosed(_0x515a8b)){_0x515a8b=_[_0xe647('0x17')](_0x515a8b,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0xe647('0x18')](),'lastevent':_0xe647('0x1b'),'reason':_0xe647('0x1b')});}}});};exports[_0xe647('0x15')]=function(_0x3863a8){if(!_[_0xe647('0x1c')](agents[_0x3863a8['destchannel']])){agents[_0x3863a8[_0xe647('0x13')]]=_[_0xe647('0x17')](agents[_0x3863a8[_0xe647('0x13')]],_0x3863a8,{'agentconnect':!![],'agentconnectAt':utils[_0xe647('0x18')](),'lastevent':'connect'});_[_0xe647('0x1d')](agents,function(_0x44f39f,_0x10b6e9){if(_0x44f39f[_0xe647('0x3')]==_0x3863a8['channel']){if(!isClosed(_0x44f39f)){_0x44f39f=_[_0xe647('0x17')](_0x44f39f,{'agentringnoanswer':!![],'agentringnoanswerAt':utils['now'](),'lastevent':_0xe647('0x1e'),'reason':_0xe647('0x1e'),'answeredelsewheredestinationuniqueid':_0x3863a8[_0xe647('0x1f')],'answeredelsewheremembername':_0x3863a8['membername']});}}});}};exports[_0xe647('0xc')]=function(_0x143947){if(!_[_0xe647('0x1c')](agents[_0x143947['destchannel']])){agents[_0x143947[_0xe647('0x13')]]=_[_0xe647('0x17')](agents[_0x143947['destchannel']],_0x143947,{'agentcomplete':!![],'agentcompleteAt':utils[_0xe647('0x18')](),'lastevent':_0xe647('0x20')});}};exports['blindtransfer']=function(_0x48e8dd){if(!_['isNil'](agents[_0x48e8dd[_0xe647('0x21')]])){this[_0xe647('0x22')]({'destinationchannel':_0x48e8dd['transfererchannel']});}};exports['attendedtransfer']=function(_0x1d7284){_[_0xe647('0x1d')](agents,function(_0x2e5fb1){if(_0x2e5fb1[_0xe647('0x3')]==_0x1d7284[_0xe647('0x23')]){transfers[_0x2e5fb1[_0xe647('0x13')]]=_[_0xe647('0x24')](_0x2e5fb1);transfers[_0x2e5fb1['destchannel']]=_[_0xe647('0x17')](transfers[_0x2e5fb1[_0xe647('0x13')]],{'channel':_0x1d7284['transfertargetchannel'],'calleridname':_0x1d7284[_0xe647('0x25')],'calleridnum':_0x1d7284[_0xe647('0x26')]});}else if(_0x2e5fb1[_0xe647('0x3')]==_0x1d7284['secondtransfererchannel']){transfers[_0x2e5fb1['destchannel']]=_[_0xe647('0x24')](_0x2e5fb1);transfers[_0x2e5fb1[_0xe647('0x13')]]=_[_0xe647('0x17')](transfers[_0x2e5fb1[_0xe647('0x13')]],{'channel':_0x1d7284['transfereechannel'],'calleridname':_0x1d7284['transfereecalleridname'],'calleridnum':_0x1d7284[_0xe647('0x27')]});}});};exports[_0xe647('0x22')]=function(_0x5ec3a8){if(!_[_0xe647('0x1c')](agents[_0x5ec3a8[_0xe647('0x28')]])){if(!_[_0xe647('0x1c')](agents[_0x5ec3a8[_0xe647('0x28')]]['agentconnectAt'])){agents[_0x5ec3a8[_0xe647('0x28')]]=_[_0xe647('0x17')](agents[_0x5ec3a8['destinationchannel']],{'agentcomplete':!![],'agentcompleteAt':_0x5ec3a8[_0xe647('0x29')],'holdtime':utils[_0xe647('0x2a')](agents[_0x5ec3a8[_0xe647('0x28')]][_0xe647('0x2b')],agents[_0x5ec3a8[_0xe647('0x28')]]['agentcalledAt']),'talktime':utils['diffTime'](_0x5ec3a8['endtime'],agents[_0x5ec3a8['destinationchannel']]['agentconnectAt']),'lastevent':_0xe647('0x20')});}else if(_[_0xe647('0x1c')](agents[_0x5ec3a8['destinationchannel']][_0xe647('0x2c')])){agents[_0x5ec3a8[_0xe647('0x28')]]=_[_0xe647('0x17')](agents[_0x5ec3a8['destinationchannel']],{'agentringnoanswer':!![],'agentringnoanswerAt':_0x5ec3a8['answertime']||_0x5ec3a8['starttime'],'reason':_0xe647('0x2d')});}writeDB(agents[_0x5ec3a8[_0xe647('0x28')]]);if(!_[_0xe647('0x1c')](transfers[_0x5ec3a8['destinationchannel']])){agents[_0x5ec3a8[_0xe647('0x28')]]=_[_0xe647('0x17')](transfers[_0x5ec3a8[_0xe647('0x28')]],{'agentcalledAt':utils[_0xe647('0x18')](),'agentconnectAt':transfers[_0x5ec3a8[_0xe647('0x28')]]['agentconnect']?utils[_0xe647('0x18')]():null,'lastevent':'connect','reason':_0xe647('0x2e')});delete transfers[_0x5ec3a8[_0xe647('0x28')]];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4613=['cdr','split','lastIndexOf','agentcomplete','queue','assign','isBefore','starttime','isAfter','endtime','destinationchannel','Local/_attended@transfer','hangup','lastdata','lodash','util','./utils','answertime','info','CALL|%s|%s|%s|%s|%s|%s|%s|%s','channel','type','accountcode','source','then','request','CreateVoiceCallReport','newchannel','isNil','musiconholdstart','musiconholdstartAt','now','musiconholdstop','mohtime','diffTime','varset','variable','destination','value','xmd-callerid','callerid','xmd-queue','lastapplication','Queue','xmd-contactid','ContactId','outboundrouteid','routeid','application','set','startsWith','appdata','toLowerCase'];(function(_0x3e6bb1,_0x4f4e42){var _0x577865=function(_0x2f512d){while(--_0x2f512d){_0x3e6bb1['push'](_0x3e6bb1['shift']());}};_0x577865(++_0x4f4e42);}(_0x4613,0x181));var _0x3461=function(_0x16bec6,_0x235033){_0x16bec6=_0x16bec6-0x0;var _0x4e1d0a=_0x4613[_0x16bec6];return _0x4e1d0a;};'use strict';var _=require(_0x3461('0x0'));var util=require(_0x3461('0x1'));var utils=require(_0x3461('0x2'));var channels={};var timeouts={};function writeDB(_0x356b52){return function(){_0x356b52[_0x3461('0x3')]=_0x356b52['answertime']||null;utils[_0x3461('0x4')](util['format'](_0x3461('0x5'),_0x356b52['uniqueid'],_0x356b52[_0x3461('0x6')],_0x356b52[_0x3461('0x7')],_0x356b52[_0x3461('0x8')],_0x356b52[_0x3461('0x9')],_0x356b52['destination'],_0x356b52['callerid'],_0x356b52['disposition']));if(_0x356b52[_0x3461('0x8')]){utils['getUserByInternal'](_0x356b52[_0x3461('0x8')])[_0x3461('0xa')](function(_0x4aa012){if(_0x4aa012){_0x356b52['UserId']=_0x4aa012['id'];}utils[_0x3461('0xb')](_0x3461('0xc'),_0x356b52);});}else{utils[_0x3461('0xb')](_0x3461('0xc'),_0x356b52);}if(channels[_0x356b52[_0x3461('0x6')]]){delete channels[_0x356b52['channel']];}if(timeouts[_0x356b52['channel']]){delete timeouts[_0x356b52[_0x3461('0x6')]];}};}exports[_0x3461('0xd')]=function(_0x2c64e0){if(_[_0x3461('0xe')](channels[_0x2c64e0[_0x3461('0x6')]])){channels[_0x2c64e0[_0x3461('0x6')]]={'mohtime':0x0};}};exports[_0x3461('0xf')]=function(_0x20020c){if(!_['isNil'](channels[_0x20020c[_0x3461('0x6')]])){channels[_0x20020c['channel']][_0x3461('0x10')]=utils[_0x3461('0x11')]();}};exports[_0x3461('0x12')]=function(_0x3fa44b){if(!_['isNil'](channels[_0x3fa44b['channel']])){if(!_[_0x3461('0xe')](channels[_0x3fa44b['channel']][_0x3461('0x10')])){channels[_0x3fa44b[_0x3461('0x6')]][_0x3461('0x13')]+=utils[_0x3461('0x14')](utils[_0x3461('0x11')](),channels[_0x3fa44b[_0x3461('0x6')]]['musiconholdstartAt']);delete channels[_0x3fa44b[_0x3461('0x6')]][_0x3461('0x10')];}}};exports[_0x3461('0x15')]=function(_0x452ff3){if(!_[_0x3461('0xe')](channels[_0x452ff3[_0x3461('0x6')]])){if(!_[_0x3461('0xe')](_0x452ff3['variable']['xmd-originatecalleridnum'])){channels[_0x452ff3['channel']][_0x3461('0x9')]=_0x452ff3['value'];}if(!_[_0x3461('0xe')](_0x452ff3[_0x3461('0x16')]['xmd-phone'])){channels[_0x452ff3[_0x3461('0x6')]][_0x3461('0x17')]=_0x452ff3[_0x3461('0x18')];}if(!_[_0x3461('0xe')](_0x452ff3[_0x3461('0x16')]['xmd-callerid-preview'])||!_['isNil'](_0x452ff3['variable'][_0x3461('0x19')])){channels[_0x452ff3[_0x3461('0x6')]][_0x3461('0x1a')]=_0x452ff3[_0x3461('0x18')];}if(!_[_0x3461('0xe')](_0x452ff3['variable'][_0x3461('0x1b')])){channels[_0x452ff3['channel']][_0x3461('0x1c')]=_0x3461('0x1d');channels[_0x452ff3[_0x3461('0x6')]]['lastdata']=_0x452ff3['value'];channels[_0x452ff3['channel']]['queue']=!![];}if(!_[_0x3461('0xe')](_0x452ff3['variable'][_0x3461('0x1e')])){channels[_0x452ff3[_0x3461('0x6')]][_0x3461('0x1f')]=_0x452ff3[_0x3461('0x18')];}if(!_[_0x3461('0xe')](_0x452ff3[_0x3461('0x16')][_0x3461('0x20')])){channels[_0x452ff3[_0x3461('0x6')]][_0x3461('0x21')]=_0x452ff3[_0x3461('0x18')];}}};exports['newexten']=function(_0x3b3860){if(!_[_0x3461('0xe')](channels[_0x3b3860['channel']])){if(_0x3b3860[_0x3461('0x22')]['toLowerCase']()==_0x3461('0x23')&&_[_0x3461('0x24')](_0x3b3860[_0x3461('0x25')][_0x3461('0x26')](),_0x3461('0x27'))){var _0x380164=_0x3b3860['appdata'][_0x3461('0x28')]('=');var _0x1730bd=_0x380164[0x0]['substring'](_0x380164[0x0][_0x3461('0x29')]('(')+0x1,_0x380164[0x0]['lastIndexOf'](')'));var _0x5a3d0e=_0x380164[0x1];channels[_0x3b3860[_0x3461('0x6')]][_0x1730bd]=_0x5a3d0e;}}};exports[_0x3461('0x2a')]=function(_0x576203){if(!_[_0x3461('0xe')](channels[_0x576203[_0x3461('0x6')]])&&!_[_0x3461('0xe')](channels[_0x576203[_0x3461('0x6')]][_0x3461('0x2b')])){channels[_0x576203[_0x3461('0x6')]][_0x3461('0x8')]=_0x576203['connectedlinenum'];}};exports[_0x3461('0x27')]=function(_0x2780bd){if(!_[_0x3461('0xe')](channels[_0x2780bd[_0x3461('0x6')]])){if(_['isNil'](timeouts[_0x2780bd[_0x3461('0x6')]])){channels[_0x2780bd['channel']]=_[_0x3461('0x2c')](_0x2780bd,channels[_0x2780bd[_0x3461('0x6')]]);}else{clearTimeout(timeouts[_0x2780bd[_0x3461('0x6')]]);channels[_0x2780bd[_0x3461('0x6')]]=_[_0x3461('0x2c')](channels[_0x2780bd['channel']],{'starttime':utils[_0x3461('0x2d')](_0x2780bd[_0x3461('0x2e')],channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x2e')])?_0x2780bd[_0x3461('0x2e')]:channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x2e')],'answertime':utils[_0x3461('0x2d')](_0x2780bd[_0x3461('0x3')],channels[_0x2780bd[_0x3461('0x6')]]['answertime'])?_0x2780bd[_0x3461('0x3')]:channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x3')]});if(utils[_0x3461('0x2f')](_0x2780bd['endtime'],channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x30')])){channels[_0x2780bd[_0x3461('0x6')]]=_['assign'](channels[_0x2780bd[_0x3461('0x6')]],{'endtime':_0x2780bd[_0x3461('0x30')],'destinationchannel':_[_0x3461('0x24')](_0x2780bd[_0x3461('0x31')],_0x3461('0x32'))?channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x31')]:_0x2780bd[_0x3461('0x31')]});}channels[_0x2780bd[_0x3461('0x6')]]['duration']=utils[_0x3461('0x14')](channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x30')],channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x2e')]);channels[_0x2780bd[_0x3461('0x6')]]['billableseconds']=utils[_0x3461('0x14')](channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x30')],channels[_0x2780bd['channel']][_0x3461('0x3')]);if(_0x2780bd[_0x3461('0x1c')][_0x3461('0x26')]()!=_0x3461('0x33')){channels[_0x2780bd[_0x3461('0x6')]][_0x3461('0x34')]=_0x2780bd[_0x3461('0x34')];channels[_0x2780bd['channel']][_0x3461('0x1c')]=_0x2780bd[_0x3461('0x1c')];}}timeouts[_0x2780bd[_0x3461('0x6')]]=setTimeout(writeDB(channels[_0x2780bd['channel']]),0x3e8);}};
\ No newline at end of file
+var _0x282a=['value','variable','xmd-phone','xmd-queue','Queue','lastdata','queue','xmd-contactid','ContactId','outboundrouteid','newexten','toLowerCase','set','startsWith','appdata','cdr','split','lastIndexOf','agentcomplete','starttime','isBefore','isAfter','endtime','assign','destinationchannel','Local/_attended@transfer','billableseconds','lastapplication','hangup','lodash','util','answertime','info','format','uniqueid','channel','type','accountcode','source','destination','callerid','disposition','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','isNil','musiconholdstart','musiconholdstartAt','now','musiconholdstop','mohtime','diffTime'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x282a,0xf9));var _0xa282=function(_0x5f3f88,_0x562baf){_0x5f3f88=_0x5f3f88-0x0;var _0xd08119=_0x282a[_0x5f3f88];return _0xd08119;};'use strict';var _=require(_0xa282('0x0'));var util=require(_0xa282('0x1'));var utils=require('./utils');var channels={};var timeouts={};function writeDB(_0x15765c){return function(){_0x15765c[_0xa282('0x2')]=_0x15765c[_0xa282('0x2')]||null;utils[_0xa282('0x3')](util[_0xa282('0x4')]('CALL|%s|%s|%s|%s|%s|%s|%s|%s',_0x15765c[_0xa282('0x5')],_0x15765c[_0xa282('0x6')],_0x15765c[_0xa282('0x7')],_0x15765c[_0xa282('0x8')],_0x15765c[_0xa282('0x9')],_0x15765c[_0xa282('0xa')],_0x15765c[_0xa282('0xb')],_0x15765c[_0xa282('0xc')]));if(_0x15765c[_0xa282('0x8')]){utils[_0xa282('0xd')](_0x15765c['accountcode'])[_0xa282('0xe')](function(_0x21343d){if(_0x21343d){_0x15765c[_0xa282('0xf')]=_0x21343d['id'];}utils['request']('CreateVoiceCallReport',_0x15765c);});}else{utils[_0xa282('0x10')](_0xa282('0x11'),_0x15765c);}if(channels[_0x15765c[_0xa282('0x6')]]){delete channels[_0x15765c[_0xa282('0x6')]];}if(timeouts[_0x15765c[_0xa282('0x6')]]){delete timeouts[_0x15765c[_0xa282('0x6')]];}};}exports[_0xa282('0x12')]=function(_0x132016){if(_[_0xa282('0x13')](channels[_0x132016[_0xa282('0x6')]])){channels[_0x132016[_0xa282('0x6')]]={'mohtime':0x0};}};exports[_0xa282('0x14')]=function(_0x3ff7e2){if(!_[_0xa282('0x13')](channels[_0x3ff7e2[_0xa282('0x6')]])){channels[_0x3ff7e2['channel']][_0xa282('0x15')]=utils[_0xa282('0x16')]();}};exports[_0xa282('0x17')]=function(_0x410117){if(!_[_0xa282('0x13')](channels[_0x410117['channel']])){if(!_[_0xa282('0x13')](channels[_0x410117[_0xa282('0x6')]]['musiconholdstartAt'])){channels[_0x410117[_0xa282('0x6')]][_0xa282('0x18')]+=utils[_0xa282('0x19')](utils[_0xa282('0x16')](),channels[_0x410117[_0xa282('0x6')]][_0xa282('0x15')]);delete channels[_0x410117[_0xa282('0x6')]][_0xa282('0x15')];}}};exports['varset']=function(_0x20185c){if(!_['isNil'](channels[_0x20185c[_0xa282('0x6')]])){if(!_[_0xa282('0x13')](_0x20185c['variable']['xmd-originatecalleridnum'])){channels[_0x20185c['channel']][_0xa282('0x9')]=_0x20185c[_0xa282('0x1a')];}if(!_[_0xa282('0x13')](_0x20185c[_0xa282('0x1b')][_0xa282('0x1c')])){channels[_0x20185c[_0xa282('0x6')]][_0xa282('0xa')]=_0x20185c[_0xa282('0x1a')];}if(!_[_0xa282('0x13')](_0x20185c[_0xa282('0x1b')]['xmd-callerid-preview'])||!_[_0xa282('0x13')](_0x20185c[_0xa282('0x1b')]['xmd-callerid'])){channels[_0x20185c[_0xa282('0x6')]][_0xa282('0xb')]=_0x20185c['value'];}if(!_[_0xa282('0x13')](_0x20185c['variable'][_0xa282('0x1d')])){channels[_0x20185c['channel']]['lastapplication']=_0xa282('0x1e');channels[_0x20185c['channel']][_0xa282('0x1f')]=_0x20185c[_0xa282('0x1a')];channels[_0x20185c[_0xa282('0x6')]][_0xa282('0x20')]=!![];}if(!_[_0xa282('0x13')](_0x20185c[_0xa282('0x1b')][_0xa282('0x21')])){channels[_0x20185c[_0xa282('0x6')]][_0xa282('0x22')]=_0x20185c[_0xa282('0x1a')];}if(!_[_0xa282('0x13')](_0x20185c[_0xa282('0x1b')][_0xa282('0x23')])){channels[_0x20185c[_0xa282('0x6')]]['routeid']=_0x20185c[_0xa282('0x1a')];}}};exports[_0xa282('0x24')]=function(_0x1d36bc){if(!_[_0xa282('0x13')](channels[_0x1d36bc[_0xa282('0x6')]])){if(_0x1d36bc['application'][_0xa282('0x25')]()==_0xa282('0x26')&&_[_0xa282('0x27')](_0x1d36bc[_0xa282('0x28')][_0xa282('0x25')](),_0xa282('0x29'))){var _0x2c77d4=_0x1d36bc['appdata'][_0xa282('0x2a')]('=');var _0x544823=_0x2c77d4[0x0]['substring'](_0x2c77d4[0x0][_0xa282('0x2b')]('(')+0x1,_0x2c77d4[0x0]['lastIndexOf'](')'));var _0x389ab5=_0x2c77d4[0x1];channels[_0x1d36bc[_0xa282('0x6')]][_0x544823]=_0x389ab5;}}};exports[_0xa282('0x2c')]=function(_0x26d3f9){if(!_[_0xa282('0x13')](channels[_0x26d3f9['channel']])&&!_[_0xa282('0x13')](channels[_0x26d3f9[_0xa282('0x6')]][_0xa282('0x20')])){channels[_0x26d3f9[_0xa282('0x6')]]['accountcode']=_0x26d3f9['connectedlinenum'];}};exports['cdr']=function(_0x1feff7){if(!_[_0xa282('0x13')](channels[_0x1feff7[_0xa282('0x6')]])){if(_[_0xa282('0x13')](timeouts[_0x1feff7['channel']])){channels[_0x1feff7['channel']]=_['assign'](_0x1feff7,channels[_0x1feff7[_0xa282('0x6')]]);}else{clearTimeout(timeouts[_0x1feff7[_0xa282('0x6')]]);channels[_0x1feff7['channel']]=_['assign'](channels[_0x1feff7[_0xa282('0x6')]],{'starttime':utils['isBefore'](_0x1feff7['starttime'],channels[_0x1feff7[_0xa282('0x6')]]['starttime'])?_0x1feff7[_0xa282('0x2d')]:channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x2d')],'answertime':utils[_0xa282('0x2e')](_0x1feff7[_0xa282('0x2')],channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x2')])?_0x1feff7[_0xa282('0x2')]:channels[_0x1feff7['channel']][_0xa282('0x2')]});if(utils[_0xa282('0x2f')](_0x1feff7[_0xa282('0x30')],channels[_0x1feff7['channel']][_0xa282('0x30')])){channels[_0x1feff7[_0xa282('0x6')]]=_[_0xa282('0x31')](channels[_0x1feff7[_0xa282('0x6')]],{'endtime':_0x1feff7['endtime'],'destinationchannel':_[_0xa282('0x27')](_0x1feff7[_0xa282('0x32')],_0xa282('0x33'))?channels[_0x1feff7['channel']]['destinationchannel']:_0x1feff7[_0xa282('0x32')]});}channels[_0x1feff7[_0xa282('0x6')]]['duration']=utils[_0xa282('0x19')](channels[_0x1feff7[_0xa282('0x6')]]['endtime'],channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x2d')]);channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x34')]=utils[_0xa282('0x19')](channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x30')],channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x2')]);if(_0x1feff7[_0xa282('0x35')][_0xa282('0x25')]()!=_0xa282('0x36')){channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x1f')]=_0x1feff7['lastdata'];channels[_0x1feff7[_0xa282('0x6')]][_0xa282('0x35')]=_0x1feff7[_0xa282('0x35')];}}timeouts[_0x1feff7[_0xa282('0x6')]]=setTimeout(writeDB(channels[_0x1feff7[_0xa282('0x6')]]),0x3e8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e0=['close','managerevent','connect','CONNECTED','shutdown','info','SHUTDOWN','fullybooted','FULLYBOOTED','error'];(function(_0x3e0fab,_0x285e29){var _0x36cde8=function(_0x124a10){while(--_0x124a10){_0x3e0fab['push'](_0x3e0fab['shift']());}};_0x36cde8(++_0x285e29);}(_0xb7e0,0xde));var _0x0b7e=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xb7e0[_0x2dafbe];return _0x58a45a;};'use strict';var utils=require('./utils');exports[_0x0b7e('0x0')]=function(){utils['info'](_0x0b7e('0x1'));};exports[_0x0b7e('0x2')]=function(){utils[_0x0b7e('0x3')](_0x0b7e('0x4'));};exports[_0x0b7e('0x5')]=function(){utils[_0x0b7e('0x3')](_0x0b7e('0x6'));};exports[_0x0b7e('0x7')]=function(_0x35f7e0){utils[_0x0b7e('0x7')](_0x35f7e0);};exports[_0x0b7e('0x8')]=function(){utils[_0x0b7e('0x3')]('CLOSE');};exports[_0x0b7e('0x9')]=function(_0x3332a3){};
\ No newline at end of file
+var _0xc793=['fullybooted','FULLYBOOTED','error','CLOSE','./utils','connect','info','shutdown','SHUTDOWN'];(function(_0x432fca,_0xb0b1b5){var _0x3adba4=function(_0x5e3ae4){while(--_0x5e3ae4){_0x432fca['push'](_0x432fca['shift']());}};_0x3adba4(++_0xb0b1b5);}(_0xc793,0x151));var _0x3c79=function(_0x4e0247,_0x1e5d66){_0x4e0247=_0x4e0247-0x0;var _0x4ce70d=_0xc793[_0x4e0247];return _0x4ce70d;};'use strict';var utils=require(_0x3c79('0x0'));exports[_0x3c79('0x1')]=function(){utils[_0x3c79('0x2')]('CONNECTED');};exports[_0x3c79('0x3')]=function(){utils[_0x3c79('0x2')](_0x3c79('0x4'));};exports[_0x3c79('0x5')]=function(){utils[_0x3c79('0x2')](_0x3c79('0x6'));};exports[_0x3c79('0x7')]=function(_0x113e5a){utils[_0x3c79('0x7')](_0x113e5a);};exports['close']=function(){utils[_0x3c79('0x2')](_0x3c79('0x8'));};exports['managerevent']=function(_0x14cf8f){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['application','toLowerCase','cdr(routeid)','appdata','split','routeid','variable','outboundrouteid','dialbegin','destcontext','from-voip-provider','assign','called','dialend','dialstatus','ANSWER','now','connect','complete','duration','diffTime','starttime','holdtime','billableseconds','answertime','lodash','util','./utils','format','uniqueid','channel','dialstring','calleridnum','connectedlinenum','request','CreateVoiceDialReport','isNil','newexten'];(function(_0x42ce25,_0x7f11aa){var _0x14b4cd=function(_0x9e4b0c){while(--_0x9e4b0c){_0x42ce25['push'](_0x42ce25['shift']());}};_0x14b4cd(++_0x7f11aa);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0xa9e0[_0x2763f2];return _0x3ef471;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var utils=require(_0x0a9e('0x2'));var dials={};var channels={};function writeDB(_0x5dd881){utils['info'](util[_0x0a9e('0x3')]('DIAL|%s|%s|%s|%s|%s|%s',_0x5dd881[_0x0a9e('0x4')],_0x5dd881[_0x0a9e('0x5')],_0x5dd881[_0x0a9e('0x6')],_0x5dd881[_0x0a9e('0x7')],_0x5dd881[_0x0a9e('0x8')],_0x5dd881['dialstatus']));utils[_0x0a9e('0x9')](_0x0a9e('0xa'),_0x5dd881);delete dials[_0x5dd881[_0x0a9e('0x5')]];}exports['newchannel']=function(_0x503809){if(_[_0x0a9e('0xb')](channels[_0x503809['channel']])){channels[_0x503809['channel']]={'routeid':null};}};exports[_0x0a9e('0xc')]=function(_0xf81284){if(!_[_0x0a9e('0xb')](channels[_0xf81284[_0x0a9e('0x5')]])){if(_0xf81284[_0x0a9e('0xd')][_0x0a9e('0xe')]()=='set'&&_['startsWith'](_0xf81284['appdata']['toLowerCase'](),_0x0a9e('0xf'))){var _0x36471c=_0xf81284[_0x0a9e('0x10')][_0x0a9e('0x11')]('=');channels[_0xf81284[_0x0a9e('0x5')]][_0x0a9e('0x12')]=_0x36471c[0x1];}}};exports['varset']=function(_0x4283ce){if(!_[_0x0a9e('0xb')](channels[_0x4283ce[_0x0a9e('0x5')]])){if(!_[_0x0a9e('0xb')](_0x4283ce[_0x0a9e('0x13')][_0x0a9e('0x14')])){channels[_0x4283ce['channel']][_0x0a9e('0x12')]=_0x4283ce['value'];}}};exports[_0x0a9e('0x15')]=function(_0x519dfd){if(_0x519dfd[_0x0a9e('0x16')]==_0x0a9e('0x17')){dials[_0x519dfd['channel']]=_[_0x0a9e('0x18')](_0x519dfd,{'starttime':utils['now'](),'lastevent':_0x0a9e('0x19')});}};exports[_0x0a9e('0x1a')]=function(_0x106033){if(!_[_0x0a9e('0xb')](dials[_0x106033[_0x0a9e('0x5')]])){dials[_0x106033[_0x0a9e('0x5')]]=_[_0x0a9e('0x18')](dials[_0x106033[_0x0a9e('0x5')]],_0x106033,{'answertime':_0x106033[_0x0a9e('0x1b')]==_0x0a9e('0x1c')?utils[_0x0a9e('0x1d')]():null,'lastevent':_0x106033[_0x0a9e('0x1b')]=='ANSWER'?_0x0a9e('0x1e'):_0x0a9e('0x19')});}};exports['cdr']=function(_0x20f109){if(!_['isNil'](channels[_0x20f109['channel']])){if(!_[_0x0a9e('0xb')](dials[_0x20f109[_0x0a9e('0x5')]])){dials[_0x20f109[_0x0a9e('0x5')]]=_[_0x0a9e('0x18')](dials[_0x20f109['channel']],{'endtime':utils[_0x0a9e('0x1d')](),'routeId':channels[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x12')],'lastevent':_0x0a9e('0x1f')});dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x20')]=utils[_0x0a9e('0x21')](dials[_0x20f109['channel']]['endtime'],dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x22')]);dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x23')]=utils['diffTime'](dials[_0x20f109[_0x0a9e('0x5')]]['answertime']||dials[_0x20f109[_0x0a9e('0x5')]]['endtime'],dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x22')]);dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x24')]=dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x25')]?utils[_0x0a9e('0x21')](dials[_0x20f109[_0x0a9e('0x5')]]['endtime'],dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x25')]):0x0;writeDB(dials[_0x20f109[_0x0a9e('0x5')]]);}delete channels[_0x20f109[_0x0a9e('0x5')]];}};
\ No newline at end of file
+var _0xa9e0=['application','toLowerCase','cdr(routeid)','appdata','split','routeid','variable','outboundrouteid','dialbegin','destcontext','from-voip-provider','assign','called','dialend','dialstatus','ANSWER','now','connect','complete','duration','diffTime','starttime','holdtime','billableseconds','answertime','lodash','util','./utils','format','uniqueid','channel','dialstring','calleridnum','connectedlinenum','request','CreateVoiceDialReport','isNil','newexten'];(function(_0x37f053,_0x4b2ad0){var _0x78f6a0=function(_0x84b926){while(--_0x84b926){_0x37f053['push'](_0x37f053['shift']());}};_0x78f6a0(++_0x4b2ad0);}(_0xa9e0,0x123));var _0x0a9e=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0xa9e0[_0x37c22c];return _0x119d79;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var utils=require(_0x0a9e('0x2'));var dials={};var channels={};function writeDB(_0x5dd881){utils['info'](util[_0x0a9e('0x3')]('DIAL|%s|%s|%s|%s|%s|%s',_0x5dd881[_0x0a9e('0x4')],_0x5dd881[_0x0a9e('0x5')],_0x5dd881[_0x0a9e('0x6')],_0x5dd881[_0x0a9e('0x7')],_0x5dd881[_0x0a9e('0x8')],_0x5dd881['dialstatus']));utils[_0x0a9e('0x9')](_0x0a9e('0xa'),_0x5dd881);delete dials[_0x5dd881[_0x0a9e('0x5')]];}exports['newchannel']=function(_0x503809){if(_[_0x0a9e('0xb')](channels[_0x503809['channel']])){channels[_0x503809['channel']]={'routeid':null};}};exports[_0x0a9e('0xc')]=function(_0xf81284){if(!_[_0x0a9e('0xb')](channels[_0xf81284[_0x0a9e('0x5')]])){if(_0xf81284[_0x0a9e('0xd')][_0x0a9e('0xe')]()=='set'&&_['startsWith'](_0xf81284['appdata']['toLowerCase'](),_0x0a9e('0xf'))){var _0x36471c=_0xf81284[_0x0a9e('0x10')][_0x0a9e('0x11')]('=');channels[_0xf81284[_0x0a9e('0x5')]][_0x0a9e('0x12')]=_0x36471c[0x1];}}};exports['varset']=function(_0x4283ce){if(!_[_0x0a9e('0xb')](channels[_0x4283ce[_0x0a9e('0x5')]])){if(!_[_0x0a9e('0xb')](_0x4283ce[_0x0a9e('0x13')][_0x0a9e('0x14')])){channels[_0x4283ce['channel']][_0x0a9e('0x12')]=_0x4283ce['value'];}}};exports[_0x0a9e('0x15')]=function(_0x519dfd){if(_0x519dfd[_0x0a9e('0x16')]==_0x0a9e('0x17')){dials[_0x519dfd['channel']]=_[_0x0a9e('0x18')](_0x519dfd,{'starttime':utils['now'](),'lastevent':_0x0a9e('0x19')});}};exports[_0x0a9e('0x1a')]=function(_0x106033){if(!_[_0x0a9e('0xb')](dials[_0x106033[_0x0a9e('0x5')]])){dials[_0x106033[_0x0a9e('0x5')]]=_[_0x0a9e('0x18')](dials[_0x106033[_0x0a9e('0x5')]],_0x106033,{'answertime':_0x106033[_0x0a9e('0x1b')]==_0x0a9e('0x1c')?utils[_0x0a9e('0x1d')]():null,'lastevent':_0x106033[_0x0a9e('0x1b')]=='ANSWER'?_0x0a9e('0x1e'):_0x0a9e('0x19')});}};exports['cdr']=function(_0x20f109){if(!_['isNil'](channels[_0x20f109['channel']])){if(!_[_0x0a9e('0xb')](dials[_0x20f109[_0x0a9e('0x5')]])){dials[_0x20f109[_0x0a9e('0x5')]]=_[_0x0a9e('0x18')](dials[_0x20f109['channel']],{'endtime':utils[_0x0a9e('0x1d')](),'routeId':channels[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x12')],'lastevent':_0x0a9e('0x1f')});dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x20')]=utils[_0x0a9e('0x21')](dials[_0x20f109['channel']]['endtime'],dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x22')]);dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x23')]=utils['diffTime'](dials[_0x20f109[_0x0a9e('0x5')]]['answertime']||dials[_0x20f109[_0x0a9e('0x5')]]['endtime'],dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x22')]);dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x24')]=dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x25')]?utils[_0x0a9e('0x21')](dials[_0x20f109[_0x0a9e('0x5')]]['endtime'],dials[_0x20f109[_0x0a9e('0x5')]][_0x0a9e('0x25')]):0x0;writeDB(dials[_0x20f109[_0x0a9e('0x5')]]);}delete channels[_0x20f109[_0x0a9e('0x5')]];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x39a9=['connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','agentcalled','agentringnoanswer','agentconnect','agentcomplete','queuecallerabandon','queuecallerjoin','queuecallerleave','musiconholdstart','musiconholdstop','cdr','blindtransfer','attendedtransfer','varset','newexten','newchannel','dialbegin','dialend','asterisk-manager','../../config/environment','./agents.controller','./calls.controller','./queues.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller','./core.controller','./utils','port','asterisk','username','password','keepConnected'];(function(_0x1dd5d2,_0x100f48){var _0x4f24e2=function(_0x14e673){while(--_0x14e673){_0x1dd5d2['push'](_0x1dd5d2['shift']());}};_0x4f24e2(++_0x100f48);}(_0x39a9,0x1d0));var _0x939a=function(_0x4f8f3b,_0x43281b){_0x4f8f3b=_0x4f8f3b-0x0;var _0x4c250c=_0x39a9[_0x4f8f3b];return _0x4c250c;};var AsteriskManager=require(_0x939a('0x0'));var config=require(_0x939a('0x1'));var agents=require(_0x939a('0x2'));var calls=require(_0x939a('0x3'));var queues=require(_0x939a('0x4'));var recordings=require(_0x939a('0x5'));var members=require(_0x939a('0x6'));var dials=require(_0x939a('0x7'));var transfers=require(_0x939a('0x8'));var core=require(_0x939a('0x9'));var utils=require(_0x939a('0xa'));var ami=new AsteriskManager(config['asterisk'][_0x939a('0xb')],config[_0x939a('0xc')]['ip'],config[_0x939a('0xc')][_0x939a('0xd')],config[_0x939a('0xc')][_0x939a('0xe')],!![]);ami[_0x939a('0xf')]();ami['on'](_0x939a('0x10'),core['connect']);ami['on'](_0x939a('0x11'),core[_0x939a('0x11')]);ami['on'](_0x939a('0x12'),core['fullybooted']);ami['on'](_0x939a('0x13'),core[_0x939a('0x13')]);ami['on'](_0x939a('0x14'),core['close']);ami['on'](_0x939a('0x15'),core[_0x939a('0x15')]);ami['on'](_0x939a('0x16'),function(_0x51ea50){try{members['devicestatechange'](_0x51ea50);}catch(_0x3538e1){utils[_0x939a('0x13')](_0x3538e1);}});ami['on'](_0x939a('0x17'),function(_0x5e22be){try{agents[_0x939a('0x17')](_0x5e22be);}catch(_0x1aed14){utils[_0x939a('0x13')](_0x1aed14);}});ami['on'](_0x939a('0x18'),function(_0x328d84){try{agents[_0x939a('0x18')](_0x328d84);}catch(_0x10481a){utils['error'](_0x10481a);}});ami['on'](_0x939a('0x19'),function(_0x5cf40e){try{agents[_0x939a('0x19')](_0x5cf40e);recordings['agentconnect'](_0x5cf40e);queues[_0x939a('0x19')](_0x5cf40e);}catch(_0x38c889){utils[_0x939a('0x13')](_0x38c889);}});ami['on'](_0x939a('0x1a'),function(_0x48741c){try{agents['agentcomplete'](_0x48741c);queues[_0x939a('0x1a')](_0x48741c);members['agentcomplete'](_0x48741c);calls['agentcomplete'](_0x48741c);}catch(_0x3e00d8){utils[_0x939a('0x13')](_0x3e00d8);}});ami['on'](_0x939a('0x1b'),function(_0xa5f77e){try{agents[_0x939a('0x1b')](_0xa5f77e);queues['queuecallerabandon'](_0xa5f77e);}catch(_0x203ba4){utils['error'](_0x203ba4);}});ami['on'](_0x939a('0x1c'),function(_0x540514){try{queues['queuecallerjoin'](_0x540514);}catch(_0x379f52){utils[_0x939a('0x13')](_0x379f52);}});ami['on'](_0x939a('0x1d'),function(_0x4f723e){try{queues['queuecallerleave'](_0x4f723e);}catch(_0x55028c){utils[_0x939a('0x13')](_0x55028c);}});ami['on']('musiconholdstart',function(_0x1d8166){try{queues[_0x939a('0x1e')](_0x1d8166);calls['musiconholdstart'](_0x1d8166);}catch(_0x2b345c){utils['error'](_0x2b345c);}});ami['on'](_0x939a('0x1f'),function(_0x576f3d){try{queues[_0x939a('0x1f')](_0x576f3d);calls[_0x939a('0x1f')](_0x576f3d);}catch(_0x81412a){utils[_0x939a('0x13')](_0x81412a);}});ami['on'](_0x939a('0x20'),function(_0x27cd47){try{calls[_0x939a('0x20')](_0x27cd47);agents[_0x939a('0x20')](_0x27cd47);queues[_0x939a('0x20')](_0x27cd47);recordings[_0x939a('0x20')](_0x27cd47);dials[_0x939a('0x20')](_0x27cd47);members[_0x939a('0x20')](_0x27cd47);}catch(_0x3df36b){utils[_0x939a('0x13')](_0x3df36b);}});ami['on'](_0x939a('0x21'),function(_0x5add13){try{queues[_0x939a('0x21')](_0x5add13);agents['blindtransfer'](_0x5add13);transfers[_0x939a('0x21')](_0x5add13);}catch(_0xccb577){utils[_0x939a('0x13')](_0xccb577);}});ami['on'](_0x939a('0x22'),function(_0x48d585){try{queues['attendedtransfer'](_0x48d585);transfers[_0x939a('0x22')](_0x48d585);agents[_0x939a('0x22')](_0x48d585);}catch(_0x4ab516){utils[_0x939a('0x13')](_0x4ab516);}});ami['on']('varset',function(_0x4d18a4){try{queues[_0x939a('0x23')](_0x4d18a4);recordings[_0x939a('0x23')](_0x4d18a4);calls[_0x939a('0x23')](_0x4d18a4);dials['varset'](_0x4d18a4);}catch(_0x378b87){utils[_0x939a('0x13')](_0x378b87);}});ami['on'](_0x939a('0x24'),function(_0x31d096){try{calls[_0x939a('0x24')](_0x31d096);dials[_0x939a('0x24')](_0x31d096);}catch(_0x28bc0f){utils['error'](_0x28bc0f);}});ami['on'](_0x939a('0x25'),function(_0xce9be8){try{calls['newchannel'](_0xce9be8);dials[_0x939a('0x25')](_0xce9be8);}catch(_0x6a2601){utils['error'](_0x6a2601);}});ami['on'](_0x939a('0x26'),function(_0x56caf5){try{dials[_0x939a('0x26')](_0x56caf5);}catch(_0xada62b){utils[_0x939a('0x13')](_0xada62b);}});ami['on'](_0x939a('0x27'),function(_0x100ac5){try{dials[_0x939a('0x27')](_0x100ac5);}catch(_0x347a3d){utils[_0x939a('0x13')](_0x347a3d);}});
\ No newline at end of file
+var _0x5ab4=['blindtransfer','attendedtransfer','varset','newexten','newchannel','dialbegin','dialend','asterisk-manager','../../config/environment','./agents.controller','./calls.controller','./queues.controller','./members.controller','./dials.controller','./transfers.controller','./core.controller','./utils','asterisk','username','password','keepConnected','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','agentcalled','agentringnoanswer','agentconnect','agentcomplete','queuecallerabandon','queuecallerjoin','queuecallerleave','musiconholdstart','musiconholdstop','cdr'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x5ab4,0x9f));var _0x45ab=function(_0x49a076,_0xe894b4){_0x49a076=_0x49a076-0x0;var _0x5dbff4=_0x5ab4[_0x49a076];return _0x5dbff4;};var AsteriskManager=require(_0x45ab('0x0'));var config=require(_0x45ab('0x1'));var agents=require(_0x45ab('0x2'));var calls=require(_0x45ab('0x3'));var queues=require(_0x45ab('0x4'));var recordings=require('./recordings.controller');var members=require(_0x45ab('0x5'));var dials=require(_0x45ab('0x6'));var transfers=require(_0x45ab('0x7'));var core=require(_0x45ab('0x8'));var utils=require(_0x45ab('0x9'));var ami=new AsteriskManager(config[_0x45ab('0xa')]['port'],config[_0x45ab('0xa')]['ip'],config[_0x45ab('0xa')][_0x45ab('0xb')],config[_0x45ab('0xa')][_0x45ab('0xc')],!![]);ami[_0x45ab('0xd')]();ami['on'](_0x45ab('0xe'),core[_0x45ab('0xe')]);ami['on'](_0x45ab('0xf'),core[_0x45ab('0xf')]);ami['on'](_0x45ab('0x10'),core[_0x45ab('0x10')]);ami['on'](_0x45ab('0x11'),core['error']);ami['on'](_0x45ab('0x12'),core[_0x45ab('0x12')]);ami['on'](_0x45ab('0x13'),core[_0x45ab('0x13')]);ami['on'](_0x45ab('0x14'),function(_0x447a64){try{members[_0x45ab('0x14')](_0x447a64);}catch(_0x46bbc4){utils[_0x45ab('0x11')](_0x46bbc4);}});ami['on']('agentcalled',function(_0x5ad2a5){try{agents[_0x45ab('0x15')](_0x5ad2a5);}catch(_0x3402ca){utils[_0x45ab('0x11')](_0x3402ca);}});ami['on'](_0x45ab('0x16'),function(_0x31eeb1){try{agents[_0x45ab('0x16')](_0x31eeb1);}catch(_0x1e6325){utils[_0x45ab('0x11')](_0x1e6325);}});ami['on']('agentconnect',function(_0x40611f){try{agents[_0x45ab('0x17')](_0x40611f);recordings['agentconnect'](_0x40611f);queues[_0x45ab('0x17')](_0x40611f);}catch(_0x57ffea){utils['error'](_0x57ffea);}});ami['on'](_0x45ab('0x18'),function(_0x46ef46){try{agents[_0x45ab('0x18')](_0x46ef46);queues[_0x45ab('0x18')](_0x46ef46);members[_0x45ab('0x18')](_0x46ef46);calls['agentcomplete'](_0x46ef46);}catch(_0x3f984f){utils[_0x45ab('0x11')](_0x3f984f);}});ami['on'](_0x45ab('0x19'),function(_0x7a8b5e){try{agents['queuecallerabandon'](_0x7a8b5e);queues[_0x45ab('0x19')](_0x7a8b5e);}catch(_0x54fdab){utils[_0x45ab('0x11')](_0x54fdab);}});ami['on'](_0x45ab('0x1a'),function(_0x2515ce){try{queues[_0x45ab('0x1a')](_0x2515ce);}catch(_0xc5353e){utils['error'](_0xc5353e);}});ami['on'](_0x45ab('0x1b'),function(_0x1b3017){try{queues['queuecallerleave'](_0x1b3017);}catch(_0x3896d3){utils[_0x45ab('0x11')](_0x3896d3);}});ami['on'](_0x45ab('0x1c'),function(_0x5b4859){try{queues[_0x45ab('0x1c')](_0x5b4859);calls['musiconholdstart'](_0x5b4859);}catch(_0x577a3a){utils['error'](_0x577a3a);}});ami['on'](_0x45ab('0x1d'),function(_0x5d6aca){try{queues['musiconholdstop'](_0x5d6aca);calls[_0x45ab('0x1d')](_0x5d6aca);}catch(_0x4cad75){utils[_0x45ab('0x11')](_0x4cad75);}});ami['on'](_0x45ab('0x1e'),function(_0x4711b1){try{calls[_0x45ab('0x1e')](_0x4711b1);agents[_0x45ab('0x1e')](_0x4711b1);queues[_0x45ab('0x1e')](_0x4711b1);recordings['cdr'](_0x4711b1);dials['cdr'](_0x4711b1);members[_0x45ab('0x1e')](_0x4711b1);}catch(_0x2c70cd){utils[_0x45ab('0x11')](_0x2c70cd);}});ami['on'](_0x45ab('0x1f'),function(_0x48fb25){try{queues['blindtransfer'](_0x48fb25);agents['blindtransfer'](_0x48fb25);transfers[_0x45ab('0x1f')](_0x48fb25);}catch(_0x2b33a0){utils[_0x45ab('0x11')](_0x2b33a0);}});ami['on'](_0x45ab('0x20'),function(_0x3994cf){try{queues[_0x45ab('0x20')](_0x3994cf);transfers[_0x45ab('0x20')](_0x3994cf);agents[_0x45ab('0x20')](_0x3994cf);}catch(_0xb7a809){utils['error'](_0xb7a809);}});ami['on'](_0x45ab('0x21'),function(_0x1638ee){try{queues['varset'](_0x1638ee);recordings[_0x45ab('0x21')](_0x1638ee);calls[_0x45ab('0x21')](_0x1638ee);dials[_0x45ab('0x21')](_0x1638ee);}catch(_0x557f63){utils['error'](_0x557f63);}});ami['on']('newexten',function(_0x31f312){try{calls['newexten'](_0x31f312);dials[_0x45ab('0x22')](_0x31f312);}catch(_0x576704){utils['error'](_0x576704);}});ami['on'](_0x45ab('0x23'),function(_0x33d9ad){try{calls[_0x45ab('0x23')](_0x33d9ad);dials['newchannel'](_0x33d9ad);}catch(_0xfdf987){utils[_0x45ab('0x11')](_0xfdf987);}});ami['on'](_0x45ab('0x24'),function(_0x321cd2){try{dials[_0x45ab('0x24')](_0x321cd2);}catch(_0x5a2102){utils[_0x45ab('0x11')](_0x5a2102);}});ami['on'](_0x45ab('0x25'),function(_0x58bd17){try{dials[_0x45ab('0x25')](_0x58bd17);}catch(_0x52591d){utils[_0x45ab('0x11')](_0x52591d);}});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a42=['internal','request','CreateMemberReport','getUserByName','split','catch','error','state','INUSE','device','voice','TALKING','now','agent','isNil','exitAt','duration','diffTime','enterAt','agentcomplete','assign','queue','cdr','data1','source','destination','destinationchannel','data3','lodash','util','./utils','Local/_attended@transfer','Queue:','info','format','uniqueid','interface','channel','data2','membername','type','getUserByInterface','then','name'];(function(_0x13ea00,_0x12f610){var _0x1f7347=function(_0x34ae63){while(--_0x34ae63){_0x13ea00['push'](_0x13ea00['shift']());}};_0x1f7347(++_0x12f610);}(_0x2a42,0x1a8));var _0x22a4=function(_0x309111,_0x464bf9){_0x309111=_0x309111-0x0;var _0x205bb1=_0x2a42[_0x309111];return _0x205bb1;};'use strict';var _=require(_0x22a4('0x0'));var util=require(_0x22a4('0x1'));var utils=require(_0x22a4('0x2'));var members={};var exclude=[_0x22a4('0x3'),_0x22a4('0x4')];function writeDB(_0x31abaf){utils[_0x22a4('0x5')](util[_0x22a4('0x6')]('MEMBER|%s|%s|%s|%s|%s|%s',_0x31abaf[_0x22a4('0x7')],_0x31abaf[_0x22a4('0x8')],_0x31abaf[_0x22a4('0x9')],_0x31abaf[_0x22a4('0xa')],_0x31abaf[_0x22a4('0xb')],_0x31abaf[_0x22a4('0xc')]));if(_0x31abaf[_0x22a4('0x8')]){utils[_0x22a4('0xd')](_0x31abaf['interface'])[_0x22a4('0xe')](function(_0x188297){if(_0x188297){_0x31abaf['membername']=_0x188297[_0x22a4('0xf')];_0x31abaf['internal']=_0x188297[_0x22a4('0x10')];utils[_0x22a4('0x11')](_0x22a4('0x12'),_0x31abaf);}else{utils[_0x22a4('0x13')](_0x31abaf[_0x22a4('0x8')][_0x22a4('0x14')]('/')[0x1])[_0x22a4('0xe')](function(_0x4562e9){if(_0x4562e9){_0x31abaf[_0x22a4('0xb')]=_0x4562e9[_0x22a4('0xf')];_0x31abaf[_0x22a4('0x10')]=_0x4562e9[_0x22a4('0x10')];utils[_0x22a4('0x11')](_0x22a4('0x12'),_0x31abaf);}});}})[_0x22a4('0x15')](function(_0x181fa2){utils[_0x22a4('0x16')](_0x181fa2);});}delete members[_0x31abaf[_0x22a4('0x8')]];}function startsWith(_0x4ea8fe,_0x366539){return _['some'](_0x4ea8fe,function(_0x2f4dc9){return _['startsWith'](_0x366539,_0x2f4dc9);});}exports['devicestatechange']=function(_0x557d04){switch(_0x557d04[_0x22a4('0x17')]){case _0x22a4('0x18'):if(!startsWith(exclude,_0x557d04['device'])){members[_0x557d04[_0x22a4('0x19')]]={'channel':_0x22a4('0x1a'),'interface':_0x557d04['device'],'type':_0x22a4('0x1b'),'enterAt':utils[_0x22a4('0x1c')](),'role':_0x22a4('0x1d'),'data1':_0x22a4('0x10')};}break;case'NOT_INUSE':if(!_[_0x22a4('0x1e')](members[_0x557d04['device']])){members[_0x557d04[_0x22a4('0x19')]][_0x22a4('0x1f')]=utils[_0x22a4('0x1c')]();members[_0x557d04[_0x22a4('0x19')]][_0x22a4('0x20')]=utils[_0x22a4('0x21')](members[_0x557d04[_0x22a4('0x19')]][_0x22a4('0x1f')],members[_0x557d04[_0x22a4('0x19')]][_0x22a4('0x22')]);}default:break;}};exports[_0x22a4('0x23')]=function(_0x3c6f62){if(!_[_0x22a4('0x1e')](members[_0x3c6f62[_0x22a4('0x8')]])){members[_0x3c6f62[_0x22a4('0x8')]]=_[_0x22a4('0x24')](members[_0x3c6f62[_0x22a4('0x8')]],{'data4':_0x3c6f62[_0x22a4('0x25')]});}};exports[_0x22a4('0x26')]=function(_0x514cee){if(_0x514cee[_0x22a4('0x9')]){var _0x34bb6b=_0x514cee['channel'][_0x22a4('0x14')]('-')[0x0];if(!_[_0x22a4('0x1e')](members[_0x34bb6b])){members[_0x34bb6b]=_[_0x22a4('0x24')](members[_0x34bb6b],{'data1':members[_0x34bb6b][_0x22a4('0x27')]||_0x514cee['type'],'data2':members[_0x34bb6b][_0x22a4('0xa')]||_0x514cee[_0x22a4('0x28')],'data3':members[_0x34bb6b]['data3']||_0x514cee[_0x22a4('0x29')],'uniqueid':members[_0x34bb6b]['uniqueid']||_0x514cee[_0x22a4('0x7')]});if(members[_0x34bb6b]['exitAt']){writeDB(members[_0x34bb6b]);}}}if(_0x514cee[_0x22a4('0x2a')]){var _0x348605=_0x514cee['destinationchannel'][_0x22a4('0x14')]('-')[0x0];if(!_[_0x22a4('0x1e')](members[_0x348605])){members[_0x348605]=_[_0x22a4('0x24')](members[_0x348605],{'data1':members[_0x348605][_0x22a4('0x27')]||_0x514cee[_0x22a4('0xc')],'data2':members[_0x348605]['data2']||_0x514cee[_0x22a4('0x28')],'data3':members[_0x348605][_0x22a4('0x2b')]||_0x514cee[_0x22a4('0x29')],'uniqueid':members[_0x348605][_0x22a4('0x7')]||_0x514cee[_0x22a4('0x7')]});if(members[_0x348605]['exitAt']){writeDB(members[_0x348605]);}}}};
\ No newline at end of file
+var _0x6779=['duration','diffTime','agentcomplete','assign','queue','split','data1','type','source','data3','destinationchannel','lodash','util','./utils','Local/_attended@transfer','Queue:','info','format','MEMBER|%s|%s|%s|%s|%s|%s','uniqueid','interface','channel','data2','getUserByInterface','then','name','CreateMemberReport','getUserByName','membername','internal','catch','error','some','startsWith','devicestatechange','INUSE','device','voice','now','agent','NOT_INUSE','isNil','exitAt'];(function(_0x273305,_0x57815f){var _0x12cf22=function(_0x308154){while(--_0x308154){_0x273305['push'](_0x273305['shift']());}};_0x12cf22(++_0x57815f);}(_0x6779,0xe2));var _0x9677=function(_0x30a918,_0x3e15c0){_0x30a918=_0x30a918-0x0;var _0x16b9a5=_0x6779[_0x30a918];return _0x16b9a5;};'use strict';var _=require(_0x9677('0x0'));var util=require(_0x9677('0x1'));var utils=require(_0x9677('0x2'));var members={};var exclude=[_0x9677('0x3'),_0x9677('0x4')];function writeDB(_0x2e7dbf){utils[_0x9677('0x5')](util[_0x9677('0x6')](_0x9677('0x7'),_0x2e7dbf[_0x9677('0x8')],_0x2e7dbf[_0x9677('0x9')],_0x2e7dbf[_0x9677('0xa')],_0x2e7dbf[_0x9677('0xb')],_0x2e7dbf['membername'],_0x2e7dbf['type']));if(_0x2e7dbf[_0x9677('0x9')]){utils[_0x9677('0xc')](_0x2e7dbf[_0x9677('0x9')])[_0x9677('0xd')](function(_0x150c97){if(_0x150c97){_0x2e7dbf['membername']=_0x150c97[_0x9677('0xe')];_0x2e7dbf['internal']=_0x150c97['internal'];utils['request'](_0x9677('0xf'),_0x2e7dbf);}else{utils[_0x9677('0x10')](_0x2e7dbf[_0x9677('0x9')]['split']('/')[0x1])[_0x9677('0xd')](function(_0x499e1c){if(_0x499e1c){_0x2e7dbf[_0x9677('0x11')]=_0x499e1c[_0x9677('0xe')];_0x2e7dbf[_0x9677('0x12')]=_0x499e1c[_0x9677('0x12')];utils['request'](_0x9677('0xf'),_0x2e7dbf);}});}})[_0x9677('0x13')](function(_0x496a76){utils[_0x9677('0x14')](_0x496a76);});}delete members[_0x2e7dbf['interface']];}function startsWith(_0x376d6a,_0x531cce){return _[_0x9677('0x15')](_0x376d6a,function(_0x49a231){return _[_0x9677('0x16')](_0x531cce,_0x49a231);});}exports[_0x9677('0x17')]=function(_0x217e77){switch(_0x217e77['state']){case _0x9677('0x18'):if(!startsWith(exclude,_0x217e77[_0x9677('0x19')])){members[_0x217e77['device']]={'channel':_0x9677('0x1a'),'interface':_0x217e77[_0x9677('0x19')],'type':'TALKING','enterAt':utils[_0x9677('0x1b')](),'role':_0x9677('0x1c'),'data1':'internal'};}break;case _0x9677('0x1d'):if(!_[_0x9677('0x1e')](members[_0x217e77['device']])){members[_0x217e77['device']][_0x9677('0x1f')]=utils[_0x9677('0x1b')]();members[_0x217e77['device']][_0x9677('0x20')]=utils[_0x9677('0x21')](members[_0x217e77[_0x9677('0x19')]][_0x9677('0x1f')],members[_0x217e77[_0x9677('0x19')]]['enterAt']);}default:break;}};exports[_0x9677('0x22')]=function(_0xe987e6){if(!_['isNil'](members[_0xe987e6[_0x9677('0x9')]])){members[_0xe987e6[_0x9677('0x9')]]=_[_0x9677('0x23')](members[_0xe987e6['interface']],{'data4':_0xe987e6[_0x9677('0x24')]});}};exports['cdr']=function(_0x2d0e6f){if(_0x2d0e6f[_0x9677('0xa')]){var _0x1703cb=_0x2d0e6f[_0x9677('0xa')][_0x9677('0x25')]('-')[0x0];if(!_[_0x9677('0x1e')](members[_0x1703cb])){members[_0x1703cb]=_['assign'](members[_0x1703cb],{'data1':members[_0x1703cb][_0x9677('0x26')]||_0x2d0e6f[_0x9677('0x27')],'data2':members[_0x1703cb]['data2']||_0x2d0e6f[_0x9677('0x28')],'data3':members[_0x1703cb][_0x9677('0x29')]||_0x2d0e6f['destination'],'uniqueid':members[_0x1703cb][_0x9677('0x8')]||_0x2d0e6f[_0x9677('0x8')]});if(members[_0x1703cb][_0x9677('0x1f')]){writeDB(members[_0x1703cb]);}}}if(_0x2d0e6f[_0x9677('0x2a')]){var _0x2e46a0=_0x2d0e6f[_0x9677('0x2a')][_0x9677('0x25')]('-')[0x0];if(!_[_0x9677('0x1e')](members[_0x2e46a0])){members[_0x2e46a0]=_[_0x9677('0x23')](members[_0x2e46a0],{'data1':members[_0x2e46a0][_0x9677('0x26')]||_0x2d0e6f[_0x9677('0x27')],'data2':members[_0x2e46a0][_0x9677('0xb')]||_0x2d0e6f[_0x9677('0x28')],'data3':members[_0x2e46a0][_0x9677('0x29')]||_0x2d0e6f['destination'],'uniqueid':members[_0x2e46a0][_0x9677('0x8')]||_0x2d0e6f[_0x9677('0x8')]});if(members[_0x2e46a0][_0x9677('0x1f')]){writeDB(members[_0x2e46a0]);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bd4=['connectedlinename','membername','agentcomplete','reason','COMPLETEDBY','toUpperCase','blindtransfer','transfereechannel','BLIND','extension','transfereeuniqueid','BLINDTRANSFER','attendedtransfer','forIn','origtransfererchannel','transfertargetchannel','transfertargetcalleridname','transfertargetcalleridnum','ATTENDED','origtransfereruniqueid','transfereecalleridname','transfereecalleridnum','ATTENDEDTRANSFER','secondtransfererexten','secondtransfereruniqueid','secondtransfererchannel','musiconholdstart','musiconholdstartAt','musiconholdstop','mohtime','cdr','assigned','COMPLETED','lodash','util','./utils','info','format','uniqueid','lastAssignedTo','calleridnum','accountcode','queuecallerexitreason','queue','getVoiceQueueByName','type','request','CreateVoiceQueueReport','channel','queuecallerjoin','isNil','clone','position','now','varset','queuestatus','value','CONTINUE','queuecallerabandon','assign','queuecallerleave','queuecallerjoinAt','diffTime','connectedlinenum'];(function(_0x45ea71,_0x40efcc){var _0x3c26b8=function(_0x2d2a00){while(--_0x2d2a00){_0x45ea71['push'](_0x45ea71['shift']());}};_0x3c26b8(++_0x40efcc);}(_0x7bd4,0x1a1));var _0x47bd=function(_0x1477fc,_0x46f3f7){_0x1477fc=_0x1477fc-0x0;var _0x212663=_0x7bd4[_0x1477fc];return _0x212663;};'use strict';var _=require(_0x47bd('0x0'));var util=require(_0x47bd('0x1'));var utils=require(_0x47bd('0x2'));var queues={};var transfers={};function writeDB(_0xf01373,_0x16656e){utils[_0x47bd('0x3')](util[_0x47bd('0x4')]('QUEUE|%s|%s|%s|%s|%s|%s|%s',_0xf01373[_0x47bd('0x5')],_0xf01373['channel'],_0xf01373['queue'],_0xf01373[_0x47bd('0x6')],_0xf01373[_0x47bd('0x7')],_0xf01373[_0x47bd('0x8')],_0xf01373[_0x47bd('0x9')]));if(_0xf01373[_0x47bd('0xa')]){utils[_0x47bd('0xb')](_0xf01373[_0x47bd('0xa')])['then'](function(_0x254d5d){if(_0x254d5d){_0xf01373[_0x47bd('0xc')]=_0x254d5d['type'];}utils[_0x47bd('0xd')](_0x47bd('0xe'),_0xf01373);});}else{utils[_0x47bd('0xd')]('CreateVoiceQueueReport',_0xf01373);}if(_0x16656e){delete queues[_0xf01373[_0x47bd('0xf')]];}}exports[_0x47bd('0x10')]=function(_0x2e1313){if(!_[_0x47bd('0x11')](queues[_0x2e1313[_0x47bd('0xf')]])){writeDB(_[_0x47bd('0x12')](queues[_0x2e1313[_0x47bd('0xf')]]),![]);}queues[_0x2e1313[_0x47bd('0xf')]]=_['assign'](_0x2e1313,{'originalposition':_0x2e1313[_0x47bd('0x13')],'queuecallerjoinAt':utils[_0x47bd('0x14')](),'mohtime':0x0});};exports[_0x47bd('0x15')]=function(_0x209f4a){if(!_['isNil'](queues[_0x209f4a[_0x47bd('0xf')]])){if(!_[_0x47bd('0x11')](_0x209f4a['variable'][_0x47bd('0x16')])){if(_0x209f4a[_0x47bd('0x17')]!=_0x47bd('0x18')){queues[_0x209f4a['channel']]=_['assign'](queues[_0x209f4a[_0x47bd('0xf')]],{'queuecallerabandon':![],'queuecallerabandonAt':null,'queuecallerexit':!![],'queuecallerexitAt':utils['now'](),'queuecallerexitreason':_0x209f4a['value']['toUpperCase']()});}}}};exports[_0x47bd('0x19')]=function(_0x1668f7){var _0x48890f={'queuecallerabandon':!![],'queuecallerabandonAt':utils[_0x47bd('0x14')](),'queuecallerexitreason':'ABANDONED'};if(!_['isNil'](queues[_0x1668f7[_0x47bd('0xf')]])){queues[_0x1668f7['channel']]=_[_0x47bd('0x1a')](queues[_0x1668f7[_0x47bd('0xf')]],_0x48890f);}if(!_['isNil'](transfers[_0x1668f7[_0x47bd('0xf')]])){transfers[_0x1668f7[_0x47bd('0xf')]]=_['assign'](transfers[_0x1668f7['channel']],_0x48890f);}};exports[_0x47bd('0x1b')]=function(_0x247400){if(!_[_0x47bd('0x11')](queues[_0x247400[_0x47bd('0xf')]])){queues[_0x247400[_0x47bd('0xf')]]=_[_0x47bd('0x1a')](queues[_0x247400[_0x47bd('0xf')]],{'queuecallerleave':!![],'queuecallerleaveAt':utils[_0x47bd('0x14')](),'holdtime':utils['diffTime'](utils['now'](),queues[_0x247400['channel']][_0x47bd('0x1c')])});}if(!_['isNil'](transfers[_0x247400[_0x47bd('0xf')]])){transfers[_0x247400[_0x47bd('0xf')]]=_[_0x47bd('0x1a')](transfers[_0x247400[_0x47bd('0xf')]],{'queuecallerleave':!![],'queuecallerleaveAt':utils['now'](),'holdtime':utils[_0x47bd('0x1d')](utils[_0x47bd('0x14')](),transfers[_0x247400[_0x47bd('0xf')]]['queuecallerjoinAt'])});}};exports['agentconnect']=function(_0x499950){var _0x294e7b={'connectedlinenum':_0x499950[_0x47bd('0x1e')],'connectedlinename':_0x499950[_0x47bd('0x1f')],'assigned':!![],'lastAssignedTo':_0x499950[_0x47bd('0x20')]};if(!_[_0x47bd('0x11')](queues[_0x499950[_0x47bd('0xf')]])){queues[_0x499950[_0x47bd('0xf')]]=_['assign'](queues[_0x499950[_0x47bd('0xf')]],_0x294e7b);}if(!_[_0x47bd('0x11')](transfers[_0x499950[_0x47bd('0xf')]])){transfers[_0x499950[_0x47bd('0xf')]]=_[_0x47bd('0x1a')](transfers[_0x499950['channel']],_0x294e7b);}};exports[_0x47bd('0x21')]=function(_0x10715e){var _0x23de3d={'queuecallercomplete':!![],'queuecallercompleteAt':utils[_0x47bd('0x14')]()};if(_0x10715e[_0x47bd('0x22')]!='transfer'){_0x23de3d[_0x47bd('0x9')]=_0x47bd('0x23')+_0x10715e[_0x47bd('0x22')][_0x47bd('0x24')]();}if(!_[_0x47bd('0x11')](queues[_0x10715e[_0x47bd('0xf')]])){queues[_0x10715e['channel']]=_['assign'](queues[_0x10715e['channel']],_0x23de3d);writeDB(queues[_0x10715e['channel']],!![]);}};exports[_0x47bd('0x25')]=function(_0x2bd72b){if(!_[_0x47bd('0x11')](queues[_0x2bd72b[_0x47bd('0x26')]])){queues[_0x2bd72b[_0x47bd('0x26')]]=_[_0x47bd('0x1a')](queues[_0x2bd72b[_0x47bd('0x26')]],{'transfer':!![],'transfertype':_0x47bd('0x27'),'transferexten':_0x2bd72b[_0x47bd('0x28')],'transferuniqueid':_0x2bd72b[_0x47bd('0x29')],'queuecallerexitreason':_0x47bd('0x2a')});}};exports[_0x47bd('0x2b')]=function(_0x2e480f){_[_0x47bd('0x2c')](queues,function(_0x243889){if(_0x243889[_0x47bd('0xf')]==_0x2e480f[_0x47bd('0x2d')]){transfers[_0x2e480f['transfertargetchannel']]=_[_0x47bd('0x12')](_0x243889);transfers[_0x2e480f['transfertargetchannel']]=_['assign'](transfers[_0x2e480f[_0x47bd('0x2e')]],{'queuecallerjoinAt':utils[_0x47bd('0x14')](),'queuecallerleaveAt':utils[_0x47bd('0x14')](),'channel':_0x2e480f[_0x47bd('0x2e')],'calleridname':_0x2e480f[_0x47bd('0x2f')],'calleridnum':_0x2e480f[_0x47bd('0x30')],'queuecallerenterreason':0x2});queues[_0x2e480f['transfertargetchannel']]=_[_0x47bd('0x1a')](queues[_0x2e480f[_0x47bd('0x2e')]],{'transfer':!![],'transfertype':_0x47bd('0x31'),'queuecallerexitreason':'ATTENDEDTRANSFER','transferexten':_0x2e480f['origtransfererexten'],'transferuniqueid':_0x2e480f[_0x47bd('0x32')]});queues[_0x2e480f[_0x47bd('0x2d')]]=_['assign'](queues[_0x2e480f['origtransfererchannel']],{'queuecallerexitreason':_0x47bd('0x31'),'queuecallerenterreason':0x1});}else if(_0x243889['channel']==_0x2e480f['secondtransfererchannel']){transfers[_0x2e480f[_0x47bd('0x26')]]=_[_0x47bd('0x12')](_0x243889);transfers[_0x2e480f['transfereechannel']]=_['assign'](transfers[_0x2e480f['transfereechannel']],{'queuecallerjoinAt':utils['now'](),'queuecallerleaveAt':utils[_0x47bd('0x14')](),'channel':_0x2e480f[_0x47bd('0x26')],'calleridname':_0x2e480f[_0x47bd('0x33')],'calleridnum':_0x2e480f[_0x47bd('0x34')],'queuecallerenterreason':0x2});queues[_0x2e480f[_0x47bd('0x26')]]=_[_0x47bd('0x1a')](queues[_0x2e480f[_0x47bd('0x26')]],{'transfer':!![],'transfertype':_0x47bd('0x31'),'queuecallerexitreason':_0x47bd('0x35'),'transferexten':_0x2e480f[_0x47bd('0x36')],'transferuniqueid':_0x2e480f[_0x47bd('0x37')]});queues[_0x2e480f[_0x47bd('0x38')]]=_[_0x47bd('0x1a')](queues[_0x2e480f['secondtransfererchannel']],{'queuecallerexitreason':_0x47bd('0x31'),'queuecallerenterreason':0x1});}});};exports[_0x47bd('0x39')]=function(_0x20b886){if(!_[_0x47bd('0x11')](queues[_0x20b886[_0x47bd('0xf')]])){queues[_0x20b886['channel']][_0x47bd('0x3a')]=utils['now']();}};exports[_0x47bd('0x3b')]=function(_0x5aec29){if(!_[_0x47bd('0x11')](queues[_0x5aec29[_0x47bd('0xf')]])){if(!_[_0x47bd('0x11')](queues[_0x5aec29[_0x47bd('0xf')]][_0x47bd('0x3a')])){queues[_0x5aec29[_0x47bd('0xf')]][_0x47bd('0x3c')]+=utils['diffTime'](utils[_0x47bd('0x14')](),queues[_0x5aec29[_0x47bd('0xf')]][_0x47bd('0x3a')]);delete queues[_0x5aec29[_0x47bd('0xf')]]['musiconholdstartAt'];}}};exports[_0x47bd('0x3d')]=function(_0x20830d){if(!_[_0x47bd('0x11')](queues[_0x20830d[_0x47bd('0xf')]])){writeDB(queues[_0x20830d[_0x47bd('0xf')]],!![]);}if(!_[_0x47bd('0x11')](transfers[_0x20830d['channel']])){if(transfers[_0x20830d[_0x47bd('0xf')]][_0x47bd('0x3e')]){transfers[_0x20830d['channel']]=_[_0x47bd('0x1a')](transfers[_0x20830d[_0x47bd('0xf')]],{'queuecallercomplete':!![],'queuecallercompleteAt':utils['now'](),'queuecallerexitreason':_0x47bd('0x3f')});}writeDB(transfers[_0x20830d[_0x47bd('0xf')]],![]);delete transfers[_0x20830d['channel']];}};
\ No newline at end of file
+var _0x5aa1=['BLIND','extension','transfereeuniqueid','BLINDTRANSFER','attendedtransfer','forIn','origtransfererchannel','transfertargetchannel','transfertargetcalleridname','origtransfererexten','ATTENDED','transfereecalleridname','transfereecalleridnum','ATTENDEDTRANSFER','secondtransfereruniqueid','secondtransfererchannel','musiconholdstart','musiconholdstartAt','assigned','util','info','format','QUEUE|%s|%s|%s|%s|%s|%s|%s','channel','queue','lastAssignedTo','queuecallerexitreason','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','queuecallerjoin','isNil','clone','assign','now','varset','queuestatus','value','CONTINUE','toUpperCase','queuecallerleave','queuecallerjoinAt','agentconnect','connectedlinenum','connectedlinename','membername','reason','transfer','COMPLETEDBY','transfereechannel'];(function(_0x43b548,_0x30ea37){var _0x37f928=function(_0x320477){while(--_0x320477){_0x43b548['push'](_0x43b548['shift']());}};_0x37f928(++_0x30ea37);}(_0x5aa1,0xe3));var _0x15aa=function(_0x2c8d8f,_0x1e8e38){_0x2c8d8f=_0x2c8d8f-0x0;var _0x1272d4=_0x5aa1[_0x2c8d8f];return _0x1272d4;};'use strict';var _=require('lodash');var util=require(_0x15aa('0x0'));var utils=require('./utils');var queues={};var transfers={};function writeDB(_0x274a26,_0x43441b){utils[_0x15aa('0x1')](util[_0x15aa('0x2')](_0x15aa('0x3'),_0x274a26['uniqueid'],_0x274a26[_0x15aa('0x4')],_0x274a26[_0x15aa('0x5')],_0x274a26[_0x15aa('0x6')],_0x274a26['calleridnum'],_0x274a26['accountcode'],_0x274a26[_0x15aa('0x7')]));if(_0x274a26[_0x15aa('0x5')]){utils[_0x15aa('0x8')](_0x274a26[_0x15aa('0x5')])[_0x15aa('0x9')](function(_0xdbc92a){if(_0xdbc92a){_0x274a26['type']=_0xdbc92a[_0x15aa('0xa')];}utils[_0x15aa('0xb')](_0x15aa('0xc'),_0x274a26);});}else{utils[_0x15aa('0xb')](_0x15aa('0xc'),_0x274a26);}if(_0x43441b){delete queues[_0x274a26[_0x15aa('0x4')]];}}exports[_0x15aa('0xd')]=function(_0x2127d6){if(!_[_0x15aa('0xe')](queues[_0x2127d6[_0x15aa('0x4')]])){writeDB(_[_0x15aa('0xf')](queues[_0x2127d6[_0x15aa('0x4')]]),![]);}queues[_0x2127d6[_0x15aa('0x4')]]=_[_0x15aa('0x10')](_0x2127d6,{'originalposition':_0x2127d6['position'],'queuecallerjoinAt':utils[_0x15aa('0x11')](),'mohtime':0x0});};exports[_0x15aa('0x12')]=function(_0x398262){if(!_[_0x15aa('0xe')](queues[_0x398262['channel']])){if(!_['isNil'](_0x398262['variable'][_0x15aa('0x13')])){if(_0x398262[_0x15aa('0x14')]!=_0x15aa('0x15')){queues[_0x398262['channel']]=_[_0x15aa('0x10')](queues[_0x398262[_0x15aa('0x4')]],{'queuecallerabandon':![],'queuecallerabandonAt':null,'queuecallerexit':!![],'queuecallerexitAt':utils[_0x15aa('0x11')](),'queuecallerexitreason':_0x398262['value'][_0x15aa('0x16')]()});}}}};exports['queuecallerabandon']=function(_0x2d37fa){var _0x36cf79={'queuecallerabandon':!![],'queuecallerabandonAt':utils['now'](),'queuecallerexitreason':'ABANDONED'};if(!_[_0x15aa('0xe')](queues[_0x2d37fa[_0x15aa('0x4')]])){queues[_0x2d37fa[_0x15aa('0x4')]]=_[_0x15aa('0x10')](queues[_0x2d37fa[_0x15aa('0x4')]],_0x36cf79);}if(!_['isNil'](transfers[_0x2d37fa[_0x15aa('0x4')]])){transfers[_0x2d37fa[_0x15aa('0x4')]]=_[_0x15aa('0x10')](transfers[_0x2d37fa[_0x15aa('0x4')]],_0x36cf79);}};exports[_0x15aa('0x17')]=function(_0x3700b7){if(!_['isNil'](queues[_0x3700b7[_0x15aa('0x4')]])){queues[_0x3700b7['channel']]=_[_0x15aa('0x10')](queues[_0x3700b7['channel']],{'queuecallerleave':!![],'queuecallerleaveAt':utils[_0x15aa('0x11')](),'holdtime':utils['diffTime'](utils[_0x15aa('0x11')](),queues[_0x3700b7[_0x15aa('0x4')]]['queuecallerjoinAt'])});}if(!_[_0x15aa('0xe')](transfers[_0x3700b7['channel']])){transfers[_0x3700b7[_0x15aa('0x4')]]=_[_0x15aa('0x10')](transfers[_0x3700b7['channel']],{'queuecallerleave':!![],'queuecallerleaveAt':utils[_0x15aa('0x11')](),'holdtime':utils['diffTime'](utils[_0x15aa('0x11')](),transfers[_0x3700b7['channel']][_0x15aa('0x18')])});}};exports[_0x15aa('0x19')]=function(_0x28e73c){var _0x5e39e2={'connectedlinenum':_0x28e73c[_0x15aa('0x1a')],'connectedlinename':_0x28e73c[_0x15aa('0x1b')],'assigned':!![],'lastAssignedTo':_0x28e73c[_0x15aa('0x1c')]};if(!_[_0x15aa('0xe')](queues[_0x28e73c[_0x15aa('0x4')]])){queues[_0x28e73c[_0x15aa('0x4')]]=_[_0x15aa('0x10')](queues[_0x28e73c[_0x15aa('0x4')]],_0x5e39e2);}if(!_[_0x15aa('0xe')](transfers[_0x28e73c[_0x15aa('0x4')]])){transfers[_0x28e73c[_0x15aa('0x4')]]=_[_0x15aa('0x10')](transfers[_0x28e73c[_0x15aa('0x4')]],_0x5e39e2);}};exports['agentcomplete']=function(_0x3e15e9){var _0x499f68={'queuecallercomplete':!![],'queuecallercompleteAt':utils[_0x15aa('0x11')]()};if(_0x3e15e9[_0x15aa('0x1d')]!=_0x15aa('0x1e')){_0x499f68['queuecallerexitreason']=_0x15aa('0x1f')+_0x3e15e9[_0x15aa('0x1d')][_0x15aa('0x16')]();}if(!_['isNil'](queues[_0x3e15e9[_0x15aa('0x4')]])){queues[_0x3e15e9[_0x15aa('0x4')]]=_[_0x15aa('0x10')](queues[_0x3e15e9['channel']],_0x499f68);writeDB(queues[_0x3e15e9[_0x15aa('0x4')]],!![]);}};exports['blindtransfer']=function(_0x33d9ca){if(!_[_0x15aa('0xe')](queues[_0x33d9ca['transfereechannel']])){queues[_0x33d9ca[_0x15aa('0x20')]]=_['assign'](queues[_0x33d9ca['transfereechannel']],{'transfer':!![],'transfertype':_0x15aa('0x21'),'transferexten':_0x33d9ca[_0x15aa('0x22')],'transferuniqueid':_0x33d9ca[_0x15aa('0x23')],'queuecallerexitreason':_0x15aa('0x24')});}};exports[_0x15aa('0x25')]=function(_0x4739ed){_[_0x15aa('0x26')](queues,function(_0x61cade){if(_0x61cade[_0x15aa('0x4')]==_0x4739ed[_0x15aa('0x27')]){transfers[_0x4739ed[_0x15aa('0x28')]]=_[_0x15aa('0xf')](_0x61cade);transfers[_0x4739ed[_0x15aa('0x28')]]=_[_0x15aa('0x10')](transfers[_0x4739ed[_0x15aa('0x28')]],{'queuecallerjoinAt':utils[_0x15aa('0x11')](),'queuecallerleaveAt':utils[_0x15aa('0x11')](),'channel':_0x4739ed['transfertargetchannel'],'calleridname':_0x4739ed[_0x15aa('0x29')],'calleridnum':_0x4739ed['transfertargetcalleridnum'],'queuecallerenterreason':0x2});queues[_0x4739ed['transfertargetchannel']]=_['assign'](queues[_0x4739ed[_0x15aa('0x28')]],{'transfer':!![],'transfertype':'ATTENDED','queuecallerexitreason':'ATTENDEDTRANSFER','transferexten':_0x4739ed[_0x15aa('0x2a')],'transferuniqueid':_0x4739ed['origtransfereruniqueid']});queues[_0x4739ed[_0x15aa('0x27')]]=_['assign'](queues[_0x4739ed['origtransfererchannel']],{'queuecallerexitreason':_0x15aa('0x2b'),'queuecallerenterreason':0x1});}else if(_0x61cade['channel']==_0x4739ed['secondtransfererchannel']){transfers[_0x4739ed[_0x15aa('0x20')]]=_[_0x15aa('0xf')](_0x61cade);transfers[_0x4739ed[_0x15aa('0x20')]]=_[_0x15aa('0x10')](transfers[_0x4739ed[_0x15aa('0x20')]],{'queuecallerjoinAt':utils[_0x15aa('0x11')](),'queuecallerleaveAt':utils['now'](),'channel':_0x4739ed[_0x15aa('0x20')],'calleridname':_0x4739ed[_0x15aa('0x2c')],'calleridnum':_0x4739ed[_0x15aa('0x2d')],'queuecallerenterreason':0x2});queues[_0x4739ed['transfereechannel']]=_[_0x15aa('0x10')](queues[_0x4739ed['transfereechannel']],{'transfer':!![],'transfertype':_0x15aa('0x2b'),'queuecallerexitreason':_0x15aa('0x2e'),'transferexten':_0x4739ed['secondtransfererexten'],'transferuniqueid':_0x4739ed[_0x15aa('0x2f')]});queues[_0x4739ed[_0x15aa('0x30')]]=_[_0x15aa('0x10')](queues[_0x4739ed[_0x15aa('0x30')]],{'queuecallerexitreason':_0x15aa('0x2b'),'queuecallerenterreason':0x1});}});};exports[_0x15aa('0x31')]=function(_0x26907d){if(!_['isNil'](queues[_0x26907d[_0x15aa('0x4')]])){queues[_0x26907d[_0x15aa('0x4')]][_0x15aa('0x32')]=utils['now']();}};exports['musiconholdstop']=function(_0x2e3adc){if(!_[_0x15aa('0xe')](queues[_0x2e3adc[_0x15aa('0x4')]])){if(!_[_0x15aa('0xe')](queues[_0x2e3adc['channel']][_0x15aa('0x32')])){queues[_0x2e3adc[_0x15aa('0x4')]]['mohtime']+=utils['diffTime'](utils['now'](),queues[_0x2e3adc[_0x15aa('0x4')]][_0x15aa('0x32')]);delete queues[_0x2e3adc[_0x15aa('0x4')]][_0x15aa('0x32')];}}};exports['cdr']=function(_0x619723){if(!_[_0x15aa('0xe')](queues[_0x619723[_0x15aa('0x4')]])){writeDB(queues[_0x619723['channel']],!![]);}if(!_[_0x15aa('0xe')](transfers[_0x619723[_0x15aa('0x4')]])){if(transfers[_0x619723[_0x15aa('0x4')]][_0x15aa('0x33')]){transfers[_0x619723[_0x15aa('0x4')]]=_[_0x15aa('0x10')](transfers[_0x619723[_0x15aa('0x4')]],{'queuecallercomplete':!![],'queuecallercompleteAt':utils['now'](),'queuecallerexitreason':'COMPLETED'});}writeDB(transfers[_0x619723[_0x15aa('0x4')]],![]);delete transfers[_0x619723[_0x15aa('0x4')]];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x743a=['./utils','accountcode','getUserByInternal','then','UserId','request','CreateVoiceRecording','channel','variable','isNil','mixmonitor_filename','endsWith','value','.wav49','replace','assign','membername','queue','cdr','type','destinationchannel','lodash'];(function(_0x1caf6a,_0x26a5bf){var _0x1bf493=function(_0x3982f5){while(--_0x3982f5){_0x1caf6a['push'](_0x1caf6a['shift']());}};_0x1bf493(++_0x26a5bf);}(_0x743a,0x1e3));var _0xa743=function(_0x328420,_0xe84b67){_0x328420=_0x328420-0x0;var _0x45e2fa=_0x743a[_0x328420];return _0x45e2fa;};'use strict';var _=require(_0xa743('0x0'));var utils=require(_0xa743('0x1'));var recordings={};function writeDB(_0x240c09,_0x3e3227){utils['debug'](_0x240c09);if(_0x240c09[_0xa743('0x2')]){utils[_0xa743('0x3')](_0x240c09[_0xa743('0x2')])[_0xa743('0x4')](function(_0x927693){if(_0x927693){_0x240c09[_0xa743('0x5')]=_0x927693['id'];}utils[_0xa743('0x6')]('CreateVoiceRecording',_0x240c09);});}else{utils[_0xa743('0x6')](_0xa743('0x7'),_0x240c09);}delete recordings[_0x3e3227?_0x3e3227:_0x240c09[_0xa743('0x8')]];}exports['varset']=function(_0x1927fd){if(!_['isNil'](_0x1927fd[_0xa743('0x9')])&&!_[_0xa743('0xa')](_0x1927fd[_0xa743('0x9')][_0xa743('0xb')])){if(!_[_0xa743('0xa')](recordings[_0x1927fd[_0xa743('0x8')]])){writeDB(recordings[_0x1927fd[_0xa743('0x8')]]);}if(_[_0xa743('0xc')](_0x1927fd[_0xa743('0xd')],_0xa743('0xe'))){_0x1927fd[_0xa743('0xd')]=_0x1927fd[_0xa743('0xd')][_0xa743('0xf')](_0xa743('0xe'),'.WAV');}recordings[_0x1927fd[_0xa743('0x8')]]=_[_0xa743('0x10')](_0x1927fd,{});}};exports['agentconnect']=function(_0xe208e3){if(!_[_0xa743('0xa')](recordings[_0xe208e3[_0xa743('0x8')]])){recordings[_0xe208e3[_0xa743('0x8')]]=_[_0xa743('0x10')](recordings[_0xe208e3[_0xa743('0x8')]],{'membername':_0xe208e3[_0xa743('0x11')],'queue':_0xe208e3[_0xa743('0x12')]});}};exports[_0xa743('0x13')]=function(_0x3a429f){if(!_['isNil'](recordings[_0x3a429f[_0xa743('0x8')]])){recordings[_0x3a429f[_0xa743('0x8')]]=_[_0xa743('0x10')](recordings[_0x3a429f['channel']],{'type':_0x3a429f[_0xa743('0x14')]});writeDB(recordings[_0x3a429f[_0xa743('0x8')]]);}else if(!_[_0xa743('0xa')](recordings[_0x3a429f[_0xa743('0x15')]])){recordings[_0x3a429f[_0xa743('0x15')]]=_[_0xa743('0x10')](recordings[_0x3a429f[_0xa743('0x15')]],{'type':_0x3a429f[_0xa743('0x14')]});writeDB(recordings[_0x3a429f[_0xa743('0x15')]],_0x3a429f['destinationchannel']);}};
\ No newline at end of file
+var _0xdca7=['connectedlinename','calleridnum','calleridname','./utils','debug','accountcode','getUserByInternal','membername','name','UserId','CreateVoiceRecording','request','channel','varset','isNil','variable','mixmonitor_filename','value','.wav49','.WAV','assign','agentconnect','queue','cdr','destinationchannel','type','destinationcontext','uniqueid'];(function(_0x18398f,_0x3dbe75){var _0x4714f1=function(_0x94963d){while(--_0x94963d){_0x18398f['push'](_0x18398f['shift']());}};_0x4714f1(++_0x3dbe75);}(_0xdca7,0x11b));var _0x7dca=function(_0x3f1e1e,_0x2d8ee1){_0x3f1e1e=_0x3f1e1e-0x0;var _0x4215b5=_0xdca7[_0x3f1e1e];return _0x4215b5;};'use strict';var _=require('lodash');var utils=require(_0x7dca('0x0'));var recordings={};function writeDB(_0x389e9f){utils[_0x7dca('0x1')](_0x389e9f);if(_0x389e9f[_0x7dca('0x2')]){utils[_0x7dca('0x3')](_0x389e9f[_0x7dca('0x2')])['then'](function(_0x31b21a){if(_0x31b21a){_0x389e9f[_0x7dca('0x4')]=_0x31b21a[_0x7dca('0x5')];_0x389e9f[_0x7dca('0x6')]=_0x31b21a['id'];}utils['request'](_0x7dca('0x7'),_0x389e9f);});}else{utils[_0x7dca('0x8')](_0x7dca('0x7'),_0x389e9f);}if(recordings[_0x389e9f[_0x7dca('0x9')]]){delete recordings[_0x389e9f[_0x7dca('0x9')]];}}exports[_0x7dca('0xa')]=function(_0x50e4ab){if(!_[_0x7dca('0xb')](_0x50e4ab[_0x7dca('0xc')])&&!_[_0x7dca('0xb')](_0x50e4ab['variable'][_0x7dca('0xd')])){if(!_[_0x7dca('0xb')](recordings[_0x50e4ab[_0x7dca('0x9')]])){writeDB(recordings[_0x50e4ab[_0x7dca('0x9')]]);}if(_['endsWith'](_0x50e4ab[_0x7dca('0xe')],_0x7dca('0xf'))){_0x50e4ab['value']=_0x50e4ab[_0x7dca('0xe')]['replace'](_0x7dca('0xf'),_0x7dca('0x10'));}recordings[_0x50e4ab['channel']]=_[_0x7dca('0x11')](_0x50e4ab,{});}};exports[_0x7dca('0x12')]=function(_0x5030f4){if(!_[_0x7dca('0xb')](recordings[_0x5030f4[_0x7dca('0x9')]])){recordings[_0x5030f4[_0x7dca('0x9')]]=_['assign'](recordings[_0x5030f4['channel']],{'membername':_0x5030f4[_0x7dca('0x4')],'queue':_0x5030f4[_0x7dca('0x13')],'accountcode':_0x5030f4['connectedlinenum']});}};exports[_0x7dca('0x14')]=function(_0x5cf9a7){if(!_[_0x7dca('0xb')](recordings[_0x5cf9a7[_0x7dca('0x9')]])){recordings[_0x5cf9a7[_0x7dca('0x9')]]=_[_0x7dca('0x11')](recordings[_0x5cf9a7[_0x7dca('0x9')]],{'type':_0x5cf9a7['type']});writeDB(recordings[_0x5cf9a7[_0x7dca('0x9')]]);}else if(!_[_0x7dca('0xb')](recordings[_0x5cf9a7[_0x7dca('0x15')]])){recordings[_0x5cf9a7[_0x7dca('0x9')]]=recordings[_0x5cf9a7[_0x7dca('0x15')]];delete recordings[_0x5cf9a7[_0x7dca('0x15')]];recordings[_0x5cf9a7[_0x7dca('0x9')]]=_['assign'](recordings[_0x5cf9a7['channel']],{'type':_0x5cf9a7[_0x7dca('0x16')],'channel':_0x5cf9a7['channel'],'exten':_0x5cf9a7['destination'],'context':_0x5cf9a7[_0x7dca('0x17')],'uniqueid':_0x5cf9a7[_0x7dca('0x18')],'calleridnum':recordings[_0x5cf9a7[_0x7dca('0x9')]]['connectedlinenum'],'calleridname':recordings[_0x5cf9a7[_0x7dca('0x9')]][_0x7dca('0x19')],'connectedlinenum':recordings[_0x5cf9a7['channel']][_0x7dca('0x1a')],'connectedlinename':recordings[_0x5cf9a7['channel']][_0x7dca('0x1b')]});writeDB(recordings[_0x5cf9a7['channel']]);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0f5=['lodash','util','./utils','info','format','TRANSFER|%s','type','request','CreateVoiceTransferReport','blindtransfer','blind','attendedtransfer','assign','origtransfererchannel','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','origtransfererlinkedid','attended','isNil','transfereechannel','transfertargetchannel','transfertargetcalleridnum','transfertargetconnectedlinenum','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid'];(function(_0x1a7d6a,_0x530317){var _0x3bd7a7=function(_0x29e0c0){while(--_0x29e0c0){_0x1a7d6a['push'](_0x1a7d6a['shift']());}};_0x3bd7a7(++_0x530317);}(_0xf0f5,0x168));var _0x5f0f=function(_0x61151d,_0x1eaadf){_0x61151d=_0x61151d-0x0;var _0x57752d=_0xf0f5[_0x61151d];return _0x57752d;};'use strict';var _=require(_0x5f0f('0x0'));var util=require(_0x5f0f('0x1'));var utils=require(_0x5f0f('0x2'));function writeDB(_0xbb2ffd){utils[_0x5f0f('0x3')](util[_0x5f0f('0x4')](_0x5f0f('0x5'),_0xbb2ffd[_0x5f0f('0x6')]));utils[_0x5f0f('0x7')](_0x5f0f('0x8'),_0xbb2ffd);}exports[_0x5f0f('0x9')]=function(_0x4643ba){_0x4643ba[_0x5f0f('0x6')]=_0x5f0f('0xa');writeDB(_0x4643ba);};exports[_0x5f0f('0xb')]=function(_0x257560){_0x257560=_[_0x5f0f('0xc')](_0x257560,{'transfererchannel':_0x257560[_0x5f0f('0xd')],'transferercalleridnum':_0x257560[_0x5f0f('0xe')],'transferercalleridname':_0x257560[_0x5f0f('0xf')],'transfererconnectedlinenum':_0x257560[_0x5f0f('0x10')],'transfererconnectedlinename':_0x257560[_0x5f0f('0x11')],'transfereraccountcode':_0x257560[_0x5f0f('0x12')],'transferercontext':_0x257560['secondtransferercontext'],'transfererexten':_0x257560['secondtransfererexten'],'transfererlinkedid':_0x257560[_0x5f0f('0x13')],'context':_0x257560['origtransferercontext'],'extension':_0x257560['origtransfererexten'],'type':_0x5f0f('0x14')});if(_[_0x5f0f('0x15')](_0x257560[_0x5f0f('0x16')])){_0x257560=_[_0x5f0f('0xc')](_0x257560,{'transfereechannel':_0x257560[_0x5f0f('0x17')],'transfereecalleridnum':_0x257560[_0x5f0f('0x18')],'transfereecalleridname':_0x257560['transfertargetcalleridname'],'transfereeconnectedlinenum':_0x257560[_0x5f0f('0x19')],'transfereeconnectedlinename':_0x257560['transfertargetconnectedlinename'],'transfereeaccountcode':_0x257560[_0x5f0f('0x1a')],'transfereecontext':_0x257560[_0x5f0f('0x1b')],'transfereeexten':_0x257560[_0x5f0f('0x1c')],'transfereelinkedid':_0x257560[_0x5f0f('0x1d')]});}writeDB(_0x257560);};
\ No newline at end of file
+var _0xea9a=['origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransfererexten','origtransfererlinkedid','origtransferercontext','origtransfererexten','attended','isNil','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','lodash','util','./utils','info','format','type','CreateVoiceTransferReport','blind','assign','origtransfererchannel','origtransferercalleridnum'];(function(_0x23d24b,_0x2db1fb){var _0xa4e84=function(_0x3be9cf){while(--_0x3be9cf){_0x23d24b['push'](_0x23d24b['shift']());}};_0xa4e84(++_0x2db1fb);}(_0xea9a,0x1a8));var _0xaea9=function(_0x55fb33,_0x540543){_0x55fb33=_0x55fb33-0x0;var _0x28614d=_0xea9a[_0x55fb33];return _0x28614d;};'use strict';var _=require(_0xaea9('0x0'));var util=require(_0xaea9('0x1'));var utils=require(_0xaea9('0x2'));function writeDB(_0x269408){utils[_0xaea9('0x3')](util[_0xaea9('0x4')]('TRANSFER|%s',_0x269408[_0xaea9('0x5')]));utils['request'](_0xaea9('0x6'),_0x269408);}exports['blindtransfer']=function(_0x3802d0){_0x3802d0[_0xaea9('0x5')]=_0xaea9('0x7');writeDB(_0x3802d0);};exports['attendedtransfer']=function(_0x2cb3ad){_0x2cb3ad=_[_0xaea9('0x8')](_0x2cb3ad,{'transfererchannel':_0x2cb3ad[_0xaea9('0x9')],'transferercalleridnum':_0x2cb3ad[_0xaea9('0xa')],'transferercalleridname':_0x2cb3ad[_0xaea9('0xb')],'transfererconnectedlinenum':_0x2cb3ad[_0xaea9('0xc')],'transfererconnectedlinename':_0x2cb3ad[_0xaea9('0xd')],'transfereraccountcode':_0x2cb3ad[_0xaea9('0xe')],'transferercontext':_0x2cb3ad['secondtransferercontext'],'transfererexten':_0x2cb3ad[_0xaea9('0xf')],'transfererlinkedid':_0x2cb3ad[_0xaea9('0x10')],'context':_0x2cb3ad[_0xaea9('0x11')],'extension':_0x2cb3ad[_0xaea9('0x12')],'type':_0xaea9('0x13')});if(_[_0xaea9('0x14')](_0x2cb3ad['transfereechannel'])){_0x2cb3ad=_[_0xaea9('0x8')](_0x2cb3ad,{'transfereechannel':_0x2cb3ad[_0xaea9('0x15')],'transfereecalleridnum':_0x2cb3ad[_0xaea9('0x16')],'transfereecalleridname':_0x2cb3ad[_0xaea9('0x17')],'transfereeconnectedlinenum':_0x2cb3ad[_0xaea9('0x18')],'transfereeconnectedlinename':_0x2cb3ad['transfertargetconnectedlinename'],'transfereeaccountcode':_0x2cb3ad[_0xaea9('0x19')],'transfereecontext':_0x2cb3ad[_0xaea9('0x1a')],'transfereeexten':_0x2cb3ad[_0xaea9('0x1b')],'transfereelinkedid':_0x2cb3ad[_0xaea9('0x1c')]});}writeDB(_0x2cb3ad);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58b1=['getVoiceQueueByName','GetVoiceQueue','type','acw','GETVOICEQUEUEBYNAME|','addTime','add','format','YYYY-MM-DD\x20HH:mm:ss','subtractTime','seconds','diffTime','sumTime','now','isAfter','isBefore','jayson/promise','moment','bluebird','client','info','debug','stringify','error','stack','request','then','GetUser','internal','name','result','FOUND','NOTFOUND','length','getUserByInternal','getUserByInterface','catch','getUserByName'];(function(_0x4a85a6,_0x2bda1c){var _0x5b7080=function(_0xc4b84e){while(--_0xc4b84e){_0x4a85a6['push'](_0x4a85a6['shift']());}};_0x5b7080(++_0x2bda1c);}(_0x58b1,0x1d8));var _0x158b=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0x58b1[_0x3635ce];return _0x97ecd0;};'use strict';var jayson=require(_0x158b('0x0'));var moment=require(_0x158b('0x1'));var BPromise=require(_0x158b('0x2'));var client=jayson[_0x158b('0x3')]['http']({'port':0x2329});var logger=require('../../config/logger')('xdr');exports[_0x158b('0x4')]=function(_0x2db6bc){logger[_0x158b('0x4')](_0x2db6bc);};exports[_0x158b('0x5')]=function(_0x4653c5){logger[_0x158b('0x5')](JSON[_0x158b('0x6')](_0x4653c5));};exports[_0x158b('0x7')]=function(_0x37660e){logger['error'](_0x37660e[_0x158b('0x8')]);};exports[_0x158b('0x9')]=function(_0x2c3f3b,_0x5096c8){return client[_0x158b('0x9')](_0x2c3f3b,{'body':_0x5096c8})[_0x158b('0xa')](function(_0x51828f){logger[_0x158b('0x5')](JSON['stringify'](_0x51828f));})['catch'](function(_0x39aca4){logger[_0x158b('0x7')](_0x39aca4[_0x158b('0x8')]);});};function getUser(_0x4208cc){return client['request'](_0x158b('0xb'),{'options':{'raw':!![],'attributes':['id',_0x158b('0xc'),_0x158b('0xd'),'interface'],'where':_0x4208cc,'limit':0x1}})[_0x158b('0xa')](function(_0x33903e){logger[_0x158b('0x4')]('GETUSER|'+JSON[_0x158b('0x6')](_0x4208cc)+'|'+(_0x33903e[_0x158b('0xe')]['length']?_0x158b('0xf'):_0x158b('0x10')));return _0x33903e[_0x158b('0xe')][_0x158b('0x11')]?_0x33903e[_0x158b('0xe')][0x0]:null;});}exports[_0x158b('0x12')]=function(_0x8a124c){return new BPromise(function(_0x31f38c,_0x5efb49){if(_0x8a124c){return getUser({'internal':_0x8a124c})[_0x158b('0xa')](function(_0x13ef30){return _0x31f38c(_0x13ef30);})['catch'](function(_0x43093a){logger[_0x158b('0x7')](_0x43093a[_0x158b('0x8')]);return _0x31f38c(null);});}else{return _0x31f38c(null);}});};exports[_0x158b('0x13')]=function(_0x24b9a2){return new BPromise(function(_0x59fd17,_0x2a7e7c){if(_0x24b9a2){return getUser({'interface':_0x24b9a2})[_0x158b('0xa')](function(_0x33d537){return _0x59fd17(_0x33d537);})[_0x158b('0x14')](function(_0x9f1aea){logger[_0x158b('0x7')](_0x9f1aea[_0x158b('0x8')]);return _0x59fd17(null);});}else{return _0x59fd17(null);}});};exports[_0x158b('0x15')]=function(_0x181de2){return new BPromise(function(_0x45ba88,_0x5136f4){if(_0x181de2){return getUser({'name':_0x181de2})[_0x158b('0xa')](function(_0x5cbb4d){return _0x45ba88(_0x5cbb4d);})[_0x158b('0x14')](function(_0x204277){logger[_0x158b('0x7')](_0x204277[_0x158b('0x8')]);return _0x45ba88(null);});}else{return _0x45ba88(null);}});};exports[_0x158b('0x16')]=function(_0x11f0ec){return new BPromise(function(_0x2da701,_0x562ed9){if(_0x11f0ec){return client[_0x158b('0x9')](_0x158b('0x17'),{'options':{'raw':!![],'attributes':['id',_0x158b('0xd'),_0x158b('0x18'),_0x158b('0x19'),'acwTimeout'],'where':{'name':_0x11f0ec},'limit':0x1}})[_0x158b('0xa')](function(_0x202a12){logger[_0x158b('0x4')](_0x158b('0x1a')+_0x11f0ec+'|'+(_0x202a12[_0x158b('0xe')][_0x158b('0x11')]?_0x158b('0xf'):_0x158b('0x10')));return _0x2da701(_0x202a12[_0x158b('0xe')][_0x158b('0x11')]?_0x202a12['result'][0x0]:null);})[_0x158b('0x14')](function(_0x283200){logger[_0x158b('0x7')](_0x283200[_0x158b('0x8')]);return _0x2da701(null);});}else{return _0x2da701(null);}});};exports[_0x158b('0x1b')]=function(_0x91808,_0xe0b5d4){return moment(_0x91808)[_0x158b('0x1c')](_0xe0b5d4,'seconds')[_0x158b('0x1d')](_0x158b('0x1e'));};exports[_0x158b('0x1f')]=function(_0x230ab7,_0x3a0baf){return moment(_0x230ab7)['subtract'](_0x3a0baf,_0x158b('0x20'))[_0x158b('0x1d')](_0x158b('0x1e'));};exports[_0x158b('0x21')]=function(_0xb7c1f0,_0x2449f6){return moment(_0xb7c1f0)['diff'](moment(_0x2449f6),_0x158b('0x20'));};exports[_0x158b('0x22')]=function(_0x1329a9,_0x58279c){return parseInt(_0x1329a9,0xa)+parseInt(_0x58279c,0xa);};exports[_0x158b('0x23')]=function(){return moment()['format'](_0x158b('0x1e'));};exports[_0x158b('0x24')]=function(_0x4f5a04,_0x3d00a8){if(_0x3d00a8){return moment(_0x4f5a04)[_0x158b('0x24')](_0x3d00a8);}else{return!![];}};exports['isBefore']=function(_0xdbb8c,_0x271f85){if(_0x271f85){return moment(_0xdbb8c)[_0x158b('0x25')](_0x271f85);}else if(_0xdbb8c){return!![];}else{return![];}};
\ No newline at end of file
+var _0xafe0=['internal','interface','GETUSER|','result','length','NOTFOUND','getUserByInternal','getUserByInterface','getUserByName','getVoiceQueueByName','name','type','acw','GETVOICEQUEUEBYNAME|','addTime','add','seconds','format','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','diff','sumTime','isAfter','isBefore','jayson/promise','bluebird','http','../../config/logger','xdr','info','stringify','error','stack','request','then','debug','catch','GetUser'];(function(_0x475360,_0x42c588){var _0x4db9cd=function(_0x1df707){while(--_0x1df707){_0x475360['push'](_0x475360['shift']());}};_0x4db9cd(++_0x42c588);}(_0xafe0,0xb5));var _0x0afe=function(_0x392f82,_0x4dc713){_0x392f82=_0x392f82-0x0;var _0x3ad0b8=_0xafe0[_0x392f82];return _0x3ad0b8;};'use strict';var jayson=require(_0x0afe('0x0'));var moment=require('moment');var BPromise=require(_0x0afe('0x1'));var client=jayson['client'][_0x0afe('0x2')]({'port':0x2329});var logger=require(_0x0afe('0x3'))(_0x0afe('0x4'));exports['info']=function(_0x5017f8){logger[_0x0afe('0x5')](_0x5017f8);};exports['debug']=function(_0x80148f){logger['debug'](JSON[_0x0afe('0x6')](_0x80148f));};exports[_0x0afe('0x7')]=function(_0x41b6e4){logger[_0x0afe('0x7')](_0x41b6e4[_0x0afe('0x8')]);};exports[_0x0afe('0x9')]=function(_0x306752,_0x2a8ff2){return client[_0x0afe('0x9')](_0x306752,{'body':_0x2a8ff2})[_0x0afe('0xa')](function(_0x5e9698){logger[_0x0afe('0xb')](JSON[_0x0afe('0x6')](_0x5e9698));})[_0x0afe('0xc')](function(_0x435687){logger[_0x0afe('0x7')](_0x435687[_0x0afe('0x8')]);});};function getUser(_0x5cbccd){return client[_0x0afe('0x9')](_0x0afe('0xd'),{'options':{'raw':!![],'attributes':['id',_0x0afe('0xe'),'name',_0x0afe('0xf')],'where':_0x5cbccd,'limit':0x1}})[_0x0afe('0xa')](function(_0x238f73){logger[_0x0afe('0x5')](_0x0afe('0x10')+JSON['stringify'](_0x5cbccd)+'|'+(_0x238f73[_0x0afe('0x11')][_0x0afe('0x12')]?'FOUND':_0x0afe('0x13')));return _0x238f73[_0x0afe('0x11')]['length']?_0x238f73[_0x0afe('0x11')][0x0]:null;});}exports[_0x0afe('0x14')]=function(_0x904396){return new BPromise(function(_0x139160,_0x187240){if(_0x904396){return getUser({'internal':_0x904396})[_0x0afe('0xa')](function(_0x2b84c7){return _0x139160(_0x2b84c7);})[_0x0afe('0xc')](function(_0x566b42){logger[_0x0afe('0x7')](_0x566b42[_0x0afe('0x8')]);return _0x139160(null);});}else{return _0x139160(null);}});};exports[_0x0afe('0x15')]=function(_0x5d9783){return new BPromise(function(_0x135efc,_0x2acb71){if(_0x5d9783){return getUser({'interface':_0x5d9783})[_0x0afe('0xa')](function(_0x12d2b6){return _0x135efc(_0x12d2b6);})['catch'](function(_0x312c7e){logger[_0x0afe('0x7')](_0x312c7e['stack']);return _0x135efc(null);});}else{return _0x135efc(null);}});};exports[_0x0afe('0x16')]=function(_0x3a8ff8){return new BPromise(function(_0x3e6b04,_0x5c495e){if(_0x3a8ff8){return getUser({'name':_0x3a8ff8})['then'](function(_0x5c66d9){return _0x3e6b04(_0x5c66d9);})[_0x0afe('0xc')](function(_0x2b931e){logger[_0x0afe('0x7')](_0x2b931e['stack']);return _0x3e6b04(null);});}else{return _0x3e6b04(null);}});};exports[_0x0afe('0x17')]=function(_0x5197d5){return new BPromise(function(_0x1c2a29,_0x5d8fa4){if(_0x5197d5){return client[_0x0afe('0x9')]('GetVoiceQueue',{'options':{'raw':!![],'attributes':['id',_0x0afe('0x18'),_0x0afe('0x19'),_0x0afe('0x1a'),'acwTimeout'],'where':{'name':_0x5197d5},'limit':0x1}})['then'](function(_0x4c6a65){logger[_0x0afe('0x5')](_0x0afe('0x1b')+_0x5197d5+'|'+(_0x4c6a65[_0x0afe('0x11')][_0x0afe('0x12')]?'FOUND':'NOTFOUND'));return _0x1c2a29(_0x4c6a65[_0x0afe('0x11')]['length']?_0x4c6a65[_0x0afe('0x11')][0x0]:null);})['catch'](function(_0x39ee4d){logger[_0x0afe('0x7')](_0x39ee4d[_0x0afe('0x8')]);return _0x1c2a29(null);});}else{return _0x1c2a29(null);}});};exports[_0x0afe('0x1c')]=function(_0x4fae69,_0x53f357){return moment(_0x4fae69)[_0x0afe('0x1d')](_0x53f357,_0x0afe('0x1e'))[_0x0afe('0x1f')](_0x0afe('0x20'));};exports[_0x0afe('0x21')]=function(_0x3771bc,_0x4521b4){return moment(_0x3771bc)[_0x0afe('0x22')](_0x4521b4,'seconds')[_0x0afe('0x1f')]('YYYY-MM-DD\x20HH:mm:ss');};exports['diffTime']=function(_0x4853ae,_0x5967d6){return moment(_0x4853ae)[_0x0afe('0x23')](moment(_0x5967d6),_0x0afe('0x1e'));};exports[_0x0afe('0x24')]=function(_0x735fcb,_0x1e5f7a){return parseInt(_0x735fcb,0xa)+parseInt(_0x1e5f7a,0xa);};exports['now']=function(){return moment()['format'](_0x0afe('0x20'));};exports[_0x0afe('0x25')]=function(_0x437b73,_0x1c26ea){if(_0x1c26ea){return moment(_0x437b73)[_0x0afe('0x25')](_0x1c26ea);}else{return!![];}};exports['isBefore']=function(_0x5c4ed9,_0x4ab860){if(_0x4ab860){return moment(_0x5c4ed9)[_0x0afe('0x26')](_0x4ab860);}else if(_0x5c4ed9){return!![];}else{return![];}};
\ No newline at end of file